{"version":3,"mappings":"ypBAEI,OAAO,OAAW,MAEpB,CAAC,OAAO,WAAa,CAAC,GAAG,IAAM,IAAI,KAAO,OAAkB,ECH9D,IAAW,EAAkB,GAElB,EAAmB,GAEnB,EAAoB,GAW/B,SAAgB,GAA0B,CACzC,EAAmB,EACpB,CChBA,EAAwB,EC0BxB,IAAa,EAAkB,CAAC,EAMnB,EAAgB,OAAO,EAGvB,EAAW,OAAO,UAAU,EAG5B,EAAiB,+BACjB,EAAgB,6BAChB,EAAmB,qCCzChC,EAA2B,GCChBA,EAAW,MAAM,QACjB,EAAW,MAAM,UAAU,QAC3B,EAAW,MAAM,UAAU,SAC3B,EAAa,MAAM,KAEnBC,EAAkB,OAAO,eACzB,EAAiB,OAAO,yBACxB,EAAkB,OAAO,0BACzB,EAAmB,OAAO,UAC1B,EAAkB,MAAM,UACxB,GAAmB,OAAO,eAC1B,GAAgB,OAAO,aAOlC,SAAgB,GAAY,EAAO,CAClC,OAAO,OAAO,GAAU,UACzB,CAEA,IAAaC,MAAa,CAAC,EAU3B,SAAgB,GAAW,EAAO,CACjC,OAAO,OAAO,GAAO,MAAS,UAC/B,CAGA,SAAgB,GAAI,EAAI,CACvB,OAAO,EAAG,CACX,CAGA,SAAgBC,GAAQ,EAAK,CAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC/B,EAAI,GAAG,CAET,CAMA,SAAgB,IAAW,CAE1B,IAAI,EAGA,EASJ,MAAO,CAAE,YANS,SAAS,EAAK,IAAQ,CACvC,EAAU,EACV,EAAS,CACV,CAGe,EAAG,UAAS,QAAO,CACnC,CASA,SAAgBC,GAAS,EAAO,EAAU,EAAO,GAAO,CACvD,OAAO,IAAU,OACd,EACyB,EAAU,EAChB,EACnB,CACJ,CAWA,SAAgB,GAAS,EAAO,EAAG,CAElC,GAAI,MAAM,QAAQ,CAAK,EACtB,OAAO,EAMR,GAAI,IAAM,QAAa,EAAE,OAAO,YAAY,GAC3C,OAAO,MAAM,KAAK,CAAK,EAMxB,IAAM,EAAQ,CAAC,EAEf,IAAK,IAAM,KAAW,EAErB,GADA,EAAM,KAAK,CAAO,EACd,EAAM,SAAW,EAAG,MAGzB,OAAO,CACR,CC/GA,IAAa,GAAiB,GAAK,GAgBtB,GAAQ,KACR,GAAQ,KACR,GAAc,KACd,GAAQ,KACR,GAAY,MAEZ,GAAe,MAEf,GAAa,GAAK,GAOlB,GAAqB,MAErB,GAAc,GAAK,GACnB,GAAmB,GAAK,GACxB,GAAc,GAAK,GACnB,GAAmB,GAAK,GASxB,GAAa,MAGb,GAAuB,GAAK,GAC5B,GAAQ,GAAK,GAEb,GAAc,GAAK,GAEnB,GAAe,OAAO,QAAQ,EAC9B,GAAe,OAAO,cAAc,EACpC,GAAsB,OAAO,EAAE,EAC/B,GAAoB,OAAO,YAAY,EACvC,GAAmB,OAAO,YAAY,EACtC,GAAc,OAAO,OAAO,EAC5B,GAAc,OAAO,OAAO,EAC5B,GAAa,OAAO,MAAM,EAC1B,GAAqB,OAAO,YAAY,EAExC,GAAa,OAAO,YAAY,EAGhC,GAAiB,IAAK,cAAiC,KAAM,CACzE,KAAO,qBACP,QAAU,qEACX,EAEa,GAEZ,CAAC,CAAC,WAAW,UAAU,aACP,WAAW,SAAS,YAAY,SAAS,KAAK,ECxB/D,SAAgB,GAAoB,EAAS,CAC5C,GAAIC,EAAK,CACR,IAAM,EAAY,MAAM,+OAA+O,EAAQ,4CAA4C,EAI3T,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,0CAA0C,CAE5D,CAOA,SAAgB,GAA4B,EAAM,CACjD,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,kCAAkC,EAAK,2GAA2G,EAI1K,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,kDAAkD,CAEpE,CC3EA,SAAgB,IAAuB,CACtC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,uJAA2J,EAInL,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,2CAA2C,CAE7D,CAMA,SAAgB,IAA8B,CAC7C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,6KAAiL,EAIzM,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,kDAAkD,CAEpE,CAgFA,SAAgB,IAA0B,CACzC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM;;6CAA4H,EAIpJ,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,8CAA8C,CAEhE,CASA,SAAgB,GAAmB,EAAG,EAAG,EAAO,CAC/C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,uBAAuB,EAC5C,wCAAwC,EAAM,gBAAgB,EAAE,OAAO,IACvE,iDAAiD,EAAE,OAAO,IAAI,0CAA0C,EAI3G,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,yCAAyC,CAE3D,CASA,SAAgB,GAAkB,EAAO,EAAG,EAAG,CAC9C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,kGAAkG,EAAM,SAAS,EAAE,kBAAkB,EAAE,6FAA6F,EAI5P,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,wCAAwC,CAE1D,CAOA,SAAgB,GAAmB,EAAM,CACxC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,yBAAyB,EAAK,6FAA6F,EAInJ,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,yCAAyC,CAE3D,CAMA,SAAgB,IAA4B,CAC3C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM;;+CAA8K,EAItM,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,gDAAgD,CAElE,CAOA,SAAgB,GAAc,EAAM,CACnC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,oBAAoB,EAAK,gHAAgH,EAIjK,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,oCAAoC,CAEtD,CAsBA,SAAgB,IAA+B,CAC9C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM;;kDAAkM,EAI1N,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,mDAAmD,CAErE,CAuFA,SAAgB,IAAmB,CAClC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM;;sCAA4F,EAIpH,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,uCAAuC,CAEzD,CAMA,SAAgB,IAAkB,CACjC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,kMAA0M,EAIlO,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,sCAAsC,CAExD,CAOA,SAAgB,GAAsB,EAAM,CAC3C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,4BAA4B,EAAK,iFAAiF,EAI1I,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,4CAA4C,CAE9D,CAOA,SAAgB,GAAoB,EAAK,CACxC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,yCAAyC,EAAI,wBAAwB,EAAI,kEAAkE,EAInK,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,0CAA0C,CAE5D,CAOA,SAAgB,GAAoB,EAAU,CAC7C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,0EAA0E,EAAS,0DAA0D,EAIrK,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,0CAA0C,CAE5D,CAOA,SAAgBC,GAAoB,EAAM,CACzC,GAAID,EAAK,CACR,IAAM,EAAY,MAAM,8BAA8B,EAAK,mHAAmH,EAI9K,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,0CAA0C,CAE5D,CAMA,SAAgB,IAAyB,CACxC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,gMAAoM,EAI5N,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,6CAA6C,CAE/D,CAMA,SAAgB,IAA0B,CACzC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,yMAAmN,EAI3O,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,8CAA8C,CAEhE,CAMA,SAAgB,IAAwB,CACvC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM;;2CAA8G,EAItI,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,4CAA4C,CAE9D,CAMA,SAAgB,IAAwB,CACvC,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,mOAAyO,EAIjQ,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,4CAA4C,CAE9D,CAMA,SAAgB,IAAgC,CAC/C,GAAIA,EAAK,CACR,IAAM,EAAY,MAAM,kLAAsL,EAI9M,KAFA,GAAM,KAAO,eAEP,CACP,MACC,MAAU,MAAM,oDAAoD,CAEtE,CCzfA,IAAI,GAAO,oBACPE,GAAS,sBAmBb,SAAgB,GAAsB,EAAM,CACvCF,EACH,QAAQ,KAAK,+EAA+E,EAAK,iIAAkI,GAAME,EAAM,EAE/O,QAAQ,KAAK,4CAA4C,CAE3D,CAOA,SAAgB,GAAgB,EAAM,EAAU,CAC3CF,EACH,QAAQ,KAAK,qDAAqD,EAAK,MAAM,EAAS,iKAAkK,GAAME,EAAM,EAEpQ,QAAQ,KAAK,sCAAsC,CAErD,CAoCA,SAAgB,IAAgB,CAC3BF,EACH,QAAQ,KAAK;;oCAAoJ,GAAME,EAAM,EAE7K,QAAQ,KAAK,oCAAoC,CAEnD,CAiCA,SAAgB,GAA4B,EAAW,EAAM,EAAO,CAC/DF,EACH,QAAQ,KAAK,mDAAmD,EAAU,oBAAoB,EAAK,8EAA8E,EAAM,qGAAsG,GAAME,EAAM,EAEzS,QAAQ,KAAK,kDAAkD,CAEjE,CAMA,SAAgB,GAAuB,EAAU,CAC5CF,EACH,QAAQ,KACP,wCAAwC,EACrC,yCAAyC,EAAS,4GAClD,gJAAgJ,+CACnJ,GACAE,EACD,EAEA,QAAQ,KAAK,6CAA6C,CAE5D,CAMA,SAAgB,GAAmB,EAAU,CACxCF,EACH,QAAQ,KACP,oCAAoC,EACjC,mHAAmH,IACnH,yFAAyF,2CAC5F,GACAE,EACD,EAEA,QAAQ,KAAK,yCAAyC,CAExD,CA4BA,SAAgB,IAA2B,CACtCF,EACH,QAAQ,KAAK;;+CAA2I,GAAME,EAAM,EAEpK,QAAQ,KAAK,+CAA+C,CAE9D,CAmCA,SAAgB,IAAgC,CAC3CF,EACH,QAAQ,KAAK,iPAAsP,GAAME,EAAM,EAE/Q,QAAQ,KAAK,oDAAoD,CAEnE,CAMA,SAAgB,GAA8B,EAAU,CACnDF,EACH,QAAQ,KAAK,yKAAyK,EAAS,wFAAyF,GAAME,EAAM,EAEpS,QAAQ,KAAK,oDAAoD,CAEnE,CAKA,SAAgB,IAAsB,CACjCF,EACH,QAAQ,KAAK;;0CAAuI,GAAME,EAAM,EAEhK,QAAQ,KAAK,0CAA0C,CAEzD,CAKA,SAAgB,IAA6B,CACxCF,EACH,QAAQ,KAAK,wLAA6L,GAAME,EAAM,EAEtN,QAAQ,KAAK,iDAAiD,CAEhE,CC7PA,IAAW,GAAY,GAGvB,SAAgB,GAAc,EAAO,CACpC,GAAY,CACb,CASA,IAAW,GAGX,SAAgB,GAAiB,EAAM,CACtC,GAAI,IAAS,KAEZ,MADA,GAAqB,EACf,EAGP,MAAQ,IAAe,CACxB,CAEA,SAAgB,IAAe,CAC9B,OAAO,GAAiB,GAAiB,EAAY,CAAC,CACvD,CAGA,SAAgB,EAAM,EAAM,CACtB,MAGL,IAAI,GAAiB,EAAY,IAAM,KAEtC,MADA,GAAqB,EACf,EAGP,GAAe,CAFf,CAGD,CAYA,SAAgB,GAAK,EAAQ,EAAG,CAC/B,GAAI,GAAW,CAId,IAHA,IAAI,EAAI,EACJ,EAAO,GAEJ,KACN,EAAoC,GAAiB,CAAI,EAG1D,GAAe,CAChB,CACD,CAMA,SAAgB,GAAW,EAAS,GAAM,CAIzC,IAHA,IAAI,EAAQ,EACR,EAAO,KAEE,CACZ,GAAI,EAAK,aAA2B,CACnC,IAAI,EAA+B,EAAM,KAEzC,GAAI,QAAwB,CAC3B,GAAI,IAAU,EAAG,OAAO,EACxB,GACD,OACC,SACA,UAEC,EAAK,KAAO,KAAO,CAAC,MAAM,OAAO,EAAK,MAAM,CAAC,CAAC,CAAC,KAEhD,GAAS,EAEX,CAEA,IAAI,EAAoC,GAAiB,CAAI,EACzD,GAAQ,EAAK,OAAO,EACxB,EAAO,CACR,CACD,CAMA,SAAgB,GAA2B,EAAM,CAChD,GAAI,CAAC,GAAQ,EAAK,aAEjB,MADA,GAAqB,EACf,EAGP,OAA+B,EAAM,IACtC,CCzHA,SAAgB,GAAO,EAAO,CAC7B,OAAO,IAAU,KAAK,CACvB,CAOA,SAAgB,GAAe,EAAG,EAAG,CACpC,OAAO,GAAK,EAET,IAAM,GAAoB,OAAO,GAAM,YAA3B,GAAwC,OAAO,GAAM,WADjE,GAAK,CAET,CAYA,SAAgB,GAAY,EAAO,CAClC,MAAO,CAAC,GAAe,EAAO,KAAK,CAAC,CACrC,CChBA,IAAW,GAAsB,KA0HjC,SAAgBC,GAAI,EAAQ,EAAO,CAIlC,MAHA,GAAO,MAAQ,EACf,GAAU,EAAO,EAAG,CAAK,EAElB,CACR,CAMA,SAAgB,GAAU,EAAO,EAAO,CAGvC,OADA,IAAQ,MAAqB,CAAK,EAC3B,CACR,CAKA,SAAgB,GAAM,EAAO,CAI5B,OAHI,OAAO,GAAU,SAAiB,UAAU,EAAM,YAAY,GAC9D,OAAO,GAAU,WAAmB,aACpC,OAAO,GAAU,UAAY,EAAc,WACxC,OAAO,CAAK,CACpB,CCzJA,SAAgB,GAAU,EAAO,CAChC,IAAM,EAAY,MAAM,EAClB,EAAQ,GAAU,EAgBxB,OAdI,EAAM,SAAW,EACb,MAGR,EAAM,QAAQ;CAAI,EAElB,EAAgB,EAAO,QAAS,CAC/B,MAAO,EAAM,KAAK;CAAI,CACvB,CAAC,EAED,EAAgB,EAAO,OAAQ,CAC9B,MAAO,CACR,CAAC,EAEgD,EAClD,CAKA,SAAgB,IAAY,CAE3B,IAAM,EAAQ,MAAM,gBAEpB,MAAM,gBAAkB,IACxB,IAAM,EAAY,MAAM,EAAE,MAI1B,GAFA,MAAM,gBAAkB,EAEpB,CAAC,EAAO,MAAO,CAAC,EAEpB,IAAM,EAAQ,EAAM,MAAM;CAAI,EACxB,EAAY,CAAC,EAEnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAO,EAAM,GACb,EAAa,EAAK,WAAW,KAAM,GAAG,EAExC,KAAK,KAAK,IAAM,QAIpB,IAAI,EAAK,SAAS,oBAAoB,EACrC,MAAO,CAAC,EAGL,EAAW,SAAS,qBAAqB,GAAK,EAAW,SAAS,oBAAoB,GAI1F,EAAU,KAAK,CAAI,CAPV,CAQV,CAEA,OAAO,CACR,CAMA,SAAgB,GAAU,EAAW,EAAS,CAC7C,GAAI,CAACH,EACJ,MAAU,MAAM,4CAA4C,EAGxD,GAAW,GAAsB,CAAO,CAC9C,CCpEA,IAAW,GAAoB,KAG/B,SAAgB,GAAsB,EAAS,CAC9C,GAAoB,CACrB,CAGA,IAAW,GAAY,KAGvB,SAAgB,GAAc,EAAO,CACpC,GAAY,CACb,CAyCA,IAAW,GAAiC,KAG5C,SAAgB,GAAmC,EAAI,CACtD,GAAiC,CAClC,CAoCA,SAAgB,GAAW,EAAK,CAG/B,OAFoB,GAAwB,YACD,EAAE,IAAI,CACrC,CACb,CAgBA,SAAgBI,GAAW,EAAK,EAAS,CACxC,IAAM,EAAc,GAAwB,YAAY,EAExD,GAAI,EAAiB,CACpB,IAAI,EAA+B,GAAe,EAEjD,CAAC,IACA,MAED,CAAmC,GAAmB,GAGtD,GAAyB,CAE3B,CAGA,OADA,EAAY,IAAI,EAAK,CAAO,EACrB,CACR,CAiCA,SAAgB,EAAK,EAAO,EAAQ,GAAO,EAAI,CAC9C,GAAoB,CACnB,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,KACH,EAAG,EACH,EAAG,KACH,EAA0B,GAC1B,EAAG,GAAoB,CAAC,EAAQ,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,CAAC,CAAE,EAAI,IAC/D,EAEIJ,IAEH,GAAkB,SAAW,EAC7B,GAAiC,EAEnC,CAOA,SAAgB,EAAI,EAAW,CAC9B,IAAI,EAA2C,GAC3C,EAAU,EAAQ,EAEtB,GAAI,IAAY,KAAM,CACrB,EAAQ,EAAI,KAEZ,IAAK,IAAI,KAAM,EACd,GAAmB,CAAE,CAEvB,CAcA,OAZI,IAAc,SACjB,EAAQ,EAAI,GAGb,EAAQ,EAAI,GAEZ,GAAoB,EAAQ,EAExBA,IACH,GAAiC,IAAmB,UAAY,MAG1D,GAA+B,CAAC,CACxC,CAGA,SAAgB,IAAW,CAC1B,MAAO,CAAC,GAAqB,KAAsB,MAAQ,GAAkB,IAAM,IACpF,CAMA,SAAS,GAAwB,EAAM,CAKtC,OAJI,KAAsB,MACzB,GAA8B,CAAI,EAG3B,GAAkB,IAAM,IAAI,IAAI,GAAmB,EAAiB,GAAK,MAAS,CAC3F,CAMA,SAAS,GAAmB,EAAmB,CAC9C,IAAI,EAAS,EAAkB,EAC/B,KAAO,IAAW,MAAM,CACvB,IAAM,EAAc,EAAO,EAC3B,GAAI,IAAgB,KACnB,OAAO,EAER,EAAS,EAAO,CACjB,CACA,OAAO,IACR,CC9PA,IAAIK,GAAc,CAAC,EAEnB,SAASC,IAAkB,CAC1B,IAAI,EAAQD,GACZ,GAAc,CAAC,EACf,GAAQ,CAAK,CACd,CAKA,SAAgBE,GAAiB,EAAI,CACpC,GAAIF,GAAY,SAAW,GAAK,CAAC,GAAkB,CAClD,IAAI,EAAQA,GACZ,mBAAqB,CAShB,IAAUA,IAAa,GAAgB,CAC5C,CAAC,CACF,CAEA,GAAY,KAAK,CAAE,CACpB,CAKA,SAAgB,IAAc,CAC7B,KAAOA,GAAY,OAAS,GAC3B,GAAgB,CAElB,CChCA,IAAM,GAAc,IAAI,QAKxB,SAAgB,GAAa,EAAO,CACnC,IAAI,EAAS,GAGb,GAAI,IAAW,KAEd,MADuB,IAAkB,GAAK,GACvC,EAUR,GAPIL,GAAO,aAAiB,OAAS,CAAC,GAAY,IAAI,CAAK,GAC1D,GAAY,IAAI,EAAO,GAAgB,EAAO,CAAM,CAAC,EAMtD,EAAK,EAAO,UAAsB,EAAM,EAAO,KAK9C,MAJIA,GAAO,CAAC,EAAO,QAAU,aAAiB,OAC7C,GAAkB,CAAK,EAGlB,EAIP,GAAsB,EAAO,CAAM,CACpC,CAMA,SAAgB,GAAsB,EAAO,EAAQ,CACpD,KAAO,IAAW,MAAM,CACvB,GAAK,EAAO,MAA4B,CACvC,KAAK,EAAO,SAEX,MAAM,EAGP,GAAI,CACqB,EAAQ,EAAG,MAAM,CAAK,EAC9C,MACD,OAAS,EAAG,CACX,EAAQ,CACT,CACD,CAEA,EAAS,EAAO,MACjB,CAMA,MAJIA,GAAO,aAAiB,OAC3B,GAAkB,CAAK,EAGlB,CACP,CAOA,SAAS,GAAgB,EAAO,EAAQ,CACvC,IAAM,EAAqB,EAAe,EAAO,SAAS,EAItD,QAAsB,CAAC,EAAmB,cAM9C,KAJA,IAAI,EAAS,GAAa,KAAO,IAC7B,EAAkB,KAAK,EAAO,KAAK,EAAO,IAAI,MAAQ,cACtD,EAAU,EAAO,IAEd,IAAY,MAClB,GAAmB,KAAK,EAAO,KAAK,EAAQ,WAAW,GAAU,MAAM,GAAG,EAAE,IAAI,IAChF,EAAU,EAAQ,EAGnB,MAAO,CACN,QAAS,EAAM,QAAU,KAAK,EAAgB,IAC9C,MAAO,EAAM,OACV,MAAM;CAAI,EACX,OAAQ,GAAS,CAAC,EAAK,SAAS,qBAAqB,CAAC,EACtD,KAAK;CAAI,CACZ,CARA,CASD,CAKA,SAAS,GAAkB,EAAO,CACjC,IAAM,EAAW,GAAY,IAAI,CAAK,EAElC,IACH,EAAgB,EAAO,UAAW,CACjC,MAAO,EAAS,OACjB,CAAC,EAED,EAAgB,EAAO,QAAS,CAC/B,MAAO,EAAS,KACjB,CAAC,EAEH,CClHA,IAAM,GAAc,EAAE,GAAQ,GAAc,IAM5C,SAAgB,GAAkB,EAAQ,EAAQ,CACjD,EAAO,EAAK,EAAO,EAAI,GAAe,CACvC,CAMA,SAAgB,GAAsB,EAAS,CAEzC,EAAQ,OAAwB,EAAQ,OAAS,KACrD,GAAkB,EAAS,EAAK,EAEhC,GAAkB,EAAS,EAAW,CAExC,CCjBA,SAAS,GAAa,EAAM,CACvB,OAAS,KAEb,IAAK,IAAM,KAAO,EACjB,EAAK,EAAI,MAAiB,EAAM,EAAI,WAIpC,EAAI,GAAK,GAET,GAAqC,EAAK,IAAI,EAEhD,CAOA,SAAgB,GAAa,EAAQ,EAAe,EAAqB,CACnE,EAAO,OACX,EAAc,IAAI,CAAM,EACb,EAAO,QAClB,EAAoB,IAAI,CAAM,EAK/B,GAAa,EAAO,IAAI,EAGxB,GAAkB,EAAQ,EAAK,CAChC,CC5BA,SAAgB,GAAmB,EAAO,EAAK,EAAY,CAC1D,GAAI,GAAS,KAOZ,OALA,EAAI,MAAS,EAGT,GAAY,EAAW,MAAS,EAE7BH,EAKR,IAAM,EAAQ,OACb,EAAM,UACL,EAEA,CACD,CACD,EAIA,OAAO,EAAM,gBAAoB,EAAM,YAAY,EAAI,CACxD,CC1BA,IAAM,GAAmB,CAAC,EAU1B,SAAgB,GAAS,EAAO,EAAO,CACtC,MAAO,CACN,UAAW,GAAS,EAAO,CAAK,EAAE,SACnC,CACD,CAUA,SAAgB,GAAS,EAAO,EAAQA,EAAM,CAE7C,IAAI,EAAO,KAGL,EAAc,IAAI,IAMxB,SAAS,EAAI,EAAW,CACvB,GAAI,GAAe,EAAO,CAAS,IAClC,EAAQ,EACJ,GAAM,CAET,IAAM,EAAY,CAAC,GAAiB,OACpC,IAAK,IAAM,KAAc,EACxB,EAAW,GAAG,EACd,GAAiB,KAAK,EAAY,CAAK,EAExC,GAAI,EAAW,CACd,IAAK,IAAI,EAAI,EAAG,EAAI,GAAiB,OAAQ,GAAK,EACjD,GAAiB,GAAG,GAAG,GAAiB,EAAI,EAAE,EAE/C,GAAiB,OAAS,CAC3B,CACD,CAEF,CAMA,SAAS,EAAO,EAAI,CACnB,EAAI,EAAqB,CAAM,CAAC,CACjC,CAOA,SAAS,EAAU,EAAK,EAAaA,EAAM,CAE1C,IAAM,EAAa,CAAC,EAAK,CAAU,EAMnC,OALA,EAAY,IAAI,CAAU,EACtB,EAAY,OAAS,IACxB,EAAO,EAAM,EAAK,CAAM,GAAKA,GAE9B,EAAsB,CAAM,MACf,CACZ,EAAY,OAAO,CAAU,EACzB,EAAY,OAAS,GAAK,IAC7B,EAAK,EACL,EAAO,KAET,CACD,CACA,MAAO,CAAE,MAAK,SAAQ,WAAU,CACjC,CAkCA,SAAgBW,GAAQ,EAAQ,EAAI,EAAe,CAClD,IAAM,EAAS,CAAC,MAAM,QAAQ,CAAM,EAE9B,EAAe,EAAS,CAAC,CAAM,EAAI,EACzC,GAAI,CAAC,EAAa,MAAM,OAAO,EAC9B,MAAU,MAAM,sDAAsD,EAEvE,IAAM,EAAO,EAAG,OAAS,EACzB,OAAO,GAAS,GAAgB,EAAK,IAAW,CAC/C,IAAI,EAAU,GAER,EAAS,CAAC,EACZ,EAAU,EACV,EAAUX,EACR,MAAa,CAClB,GAAI,EACH,OAED,EAAQ,EACR,IAAM,EAAS,EAAG,EAAS,EAAO,GAAK,EAAQ,EAAK,CAAM,EACtD,EACH,EAAI,CAAM,EAEV,EAAU,OAAO,GAAW,WAAa,EAASA,CAEpD,EACM,EAAgB,EAAa,KAAK,EAAO,IAC9C,GACC,EACC,GAAU,CACV,EAAO,GAAK,EACZ,GAAW,EAAE,GAAK,GACd,GACH,EAAK,CAEP,MACM,CACL,GAAW,GAAK,CACjB,CACD,CACD,EAGA,MAFA,GAAU,GACV,EAAK,EACE,UAAgB,CACtB,GAAQ,CAAa,EACrB,EAAQ,EAIR,EAAU,EACX,CACD,CAAC,CACF,CASA,SAAgB,GAAS,EAAO,CAC/B,MAAO,CAEN,UAAW,EAAM,UAAU,KAAK,CAAK,CACtC,CACD,CASA,SAAgBY,GAAI,EAAO,CAC1B,IAAI,EAGJ,OAFA,GAAmB,EAAQ,GAAO,EAAQ,CAAE,EAAE,EAEvC,CACR,CClMA,IAAW,GAA2B,GAOlC,GAAmB,GAEnB,GAAe,OAAO,EAY1B,SAAgB,GAAU,EAAO,EAAY,EAAQ,CACpD,IAAM,EAAS,EAAO,KAAgB,CACrC,MAAO,KACP,OAAQ,GAAe,MAAS,EAChC,YAAaZ,CACd,EAOA,GALIG,IACH,EAAM,OAAO,MAAQ,GAIlB,EAAM,QAAU,GAAS,EAAE,MAAgB,GAI9C,GAHA,EAAM,YAAY,EAClB,EAAM,MAAQ,GAAS,KAEnB,GAAS,KACZ,EAAM,OAAO,EAAI,OACjB,EAAM,YAAcH,MACd,CACN,IAAI,EAA0B,GAE9B,EAAM,YAAc,GAAmB,EAAQ,GAAM,CAChD,EAGH,EAAM,OAAO,EAAI,EAEjB,EAAI,EAAM,OAAQ,CAAC,CAErB,CAAC,EAED,EAA0B,EAC3B,CAUD,OAJI,GAAS,MAAgB,EACrBa,GAAU,CAAK,EAGhB,EAAI,EAAM,MAAM,CACxB,CAkDA,SAAgB,IAAe,CAE9B,IAAM,EAAS,CAAC,EAEhB,SAAS,GAAU,CAClB,OAAe,CACd,IAAK,IAAI,KAAc,EAEtB,EADmB,GACf,YAAY,EAEjB,EAAgB,EAAQ,GAAc,CACrC,WAAY,GACZ,MAAO,EACR,CAAC,CACF,CAAC,CACF,CAEA,MAAO,CAAC,EAAQ,CAAO,CACxB,CAmEA,SAAgB,GAAsB,EAAI,CACzC,IAAI,EAA4B,GAEhC,GAAI,CAEH,MADA,IAAmB,GACZ,CAAC,EAAG,EAAG,EAAgB,CAC/B,QAAU,CACT,GAAmB,CACpB,CACD,CClLA,IAAI,GAAc,KAGd,GAAa,KAGN,GAAgB,KAMhB,GAAiB,KAQjB,GAAe,KAGtB,GAAwB,KAEjB,GAAmB,GAC1B,GAAgB,GAQT,GAAoB,KASpB,GAAiB,KAExB,GAAc,EAGd,GAAgB,IAAI,IAEpBC,IAAM,EAEG,GAAb,MAAa,CAAM,CAClB,GAAK,MAGL,GAAW,GAEX,OAAS,GAGT,GAAQ,KAGR,GAAQ,KAGR,eAAiB,IAAI,IAQrB,QAAU,IAAI,IAOd,SAAW,IAAI,IAOf,UAAY,IAAI,IAOhB,GAAoB,IAAI,IAMxB,GAAqB,IAAI,IAMzB,GAAyB,IAAI,IAK7B,GAAW,EAMX,GAAoB,IAAI,IAOxB,GAAY,KAMZ,GAAS,CAAC,EAMV,GAAe,CAAC,EAMhB,GAAiB,IAAI,IAMrB,GAAuB,IAAI,IAS3B,GAAoB,IAAI,IAMxB,GAAsB,IAAI,IAE1B,QAAU,GAEV,GAAoB,GAEpB,IAAe,CACd,GAAI,KAAK,QAAS,MAAO,GAEzB,IAAK,IAAM,KAAU,KAAKC,GAAkB,KAAK,EAAG,CAInD,IAHA,IAAI,EAAI,EACJ,EAAU,GAEP,EAAE,SAAW,MAAM,CACzB,GAAI,KAAKC,GAAkB,IAAI,CAAC,EAAG,CAClC,EAAU,GACV,KACD,CAEA,EAAI,EAAE,MACP,CAEA,GAAI,CAAC,EACJ,MAAO,EAET,CAEA,MAAO,EACR,CAMA,YAAY,EAAQ,CACd,KAAKA,GAAkB,IAAI,CAAM,GACrC,KAAKA,GAAkB,IAAI,EAAQ,CAAE,EAAG,CAAC,EAAG,EAAG,CAAC,CAAE,CAAC,EAEpD,KAAKC,GAAoB,OAAO,CAAM,CACvC,CAQA,cAAc,EAAQ,EAAY,GAAM,KAAK,SAAS,CAAC,EAAG,CACzD,IAAI,EAAU,KAAKD,GAAkB,IAAI,CAAM,EAC/C,GAAI,EAAS,CACZ,KAAKA,GAAkB,OAAO,CAAM,EAEpC,IAAK,IAAI,KAAK,EAAQ,EACrB,GAAkB,EAAG,EAAK,EAC1B,EAAS,CAAC,EAGX,IAAK,KAAK,EAAQ,EACjB,GAAkB,EAAG,EAAW,EAChC,EAAS,CAAC,CAEZ,CACA,KAAKC,GAAoB,IAAI,CAAM,CACpC,CAEA,IAAW,CAQV,GAPA,KAAKC,GAAW,GAEZ,KAAgB,MACnB,KAAKC,GAAQ,EACb,IAAoB,GAGjBhB,EAGH,IAAK,IAAM,KAAS,KAAK,QAAQ,KAAK,EACrC,GAAc,IAAI,CAAK,EAMzB,GAAI,CAAC,KAAKiB,GAAa,EAAG,CACzB,IAAK,IAAM,KAAK,KAAKC,GACpB,KAAKC,GAAqB,OAAO,CAAC,EAClC,GAAkB,EAAG,EAAK,EAC1B,KAAK,SAAS,CAAC,EAGhB,IAAK,IAAM,KAAK,KAAKA,GACpB,GAAkB,EAAG,EAAW,EAChC,KAAK,SAAS,CAAC,CAEjB,CAEA,IAAM,EAAQ,KAAKC,GACnB,KAAKA,GAAS,CAAC,EAEf,KAAK,MAAM,EAGX,IAAI,EAAW,GAAoB,CAAC,EAGhC,EAAiB,CAAC,EAMlB,EAAW,GAAiB,CAAC,EAEjC,IAAK,IAAM,KAAQ,EAClB,GAAI,CACH,KAAKC,GAAU,EAAM,EAAS,CAAc,CAC7C,OAAS,EAAG,CAEX,MADA,GAAU,CAAI,EACR,CACP,CAMD,GAFA,GAAgB,KAEZ,EAAQ,OAAS,EAAG,CACvB,IAAI,EAAQ,EAAM,OAAO,EACzB,IAAK,IAAM,KAAK,EACf,EAAM,SAAS,CAAC,CAElB,CAMA,GAJA,GAAoB,KACpB,GAAiB,KAGb,KAAKJ,GAAa,EAAG,CACxB,KAAKK,GAAe,CAAc,EAClC,KAAKA,GAAe,CAAO,EAE3B,IAAK,GAAM,CAAC,EAAG,KAAM,KAAKT,GACzB,GAAa,EAAG,CAAC,EAGd,EAAQ,OAAS,GACC,GAAyCU,GAAS,EAGxE,MACD,CAEA,IAAM,EAAgB,KAAKC,GAAoB,EAE/C,GAAI,EAAe,CAClB,EAAcC,GAAO,IAAI,EACzB,MACD,CAGA,KAAKP,GAAe,MAAM,EAC1B,KAAKC,GAAqB,MAAM,EAGhC,IAAK,IAAM,KAAM,KAAKO,GAAmB,EAAG,IAAI,EAChD,KAAKA,GAAkB,MAAM,EAE7B,GAAiB,KACjB,GAAqB,CAAc,EACnC,GAAqB,CAAO,EAC5B,GAAiB,KAEjB,KAAKC,IAAW,QAAQ,EAExB,IAAI,EAAkE,GAmBtE,GAjBI,KAAK,QAAU,KAAKC,KAAa,GACpC,KAAKZ,GAAQ,EAOV,GAAmB,CAAC,KAAK,SAC5B,KAAKa,GAAQ,EAEb,GAAgB,GAMb,KAAKT,GAAO,OAAS,EAAG,CACvB,IAAe,OAClB,EAAa,KACb,KAAKU,GAAM,GAGZ,IAAM,EAAQ,EACd,EAAMV,GAAO,KAAK,GAAG,KAAKA,GAAO,OAAQ,GAAM,CAAC,EAAMA,GAAO,SAAS,CAAC,CAAC,CAAC,CAC1E,CAEI,IAAe,MAClB,EAAWG,GAAS,CAEtB,CASA,GAAU,EAAM,EAAS,EAAgB,CACxC,EAAK,GAAK,GAIV,IAFA,IAAI,EAAS,EAAK,MAEX,IAAW,MAAM,CACvB,IAAI,EAAQ,EAAO,EACf,GAAa,OAA2C,EAK5D,GAAI,EAJsB,GAAc,QAEL,QAAwB,KAAKV,GAAkB,IAAI,CAAM,IAE/E,EAAO,KAAO,KAAM,CAC5B,EACH,EAAO,GAAK,GACD,IACX,EAAQ,KAAK,CAAM,EACT,GAAoB,WAC9B,EAAe,KAAK,CAAM,EAChB,GAAS,CAAM,IACpB,MAA6B,KAAKM,GAAqB,IAAI,CAAM,EACtE,GAAc,CAAM,GAGrB,IAAI,EAAQ,EAAO,MAEnB,GAAI,IAAU,KAAM,CACnB,EAAS,EACT,QACD,CACD,CAEA,KAAO,IAAW,MAAM,CACvB,IAAI,EAAO,EAAO,KAElB,GAAI,IAAS,KAAM,CAClB,EAAS,EACT,KACD,CAEA,EAAS,EAAO,MACjB,CACD,CACD,CAEA,IAAsB,CAGrB,IAFA,IAAI,EAAQ,KAAKY,GAEV,IAAU,MAAM,CACtB,GAAI,CAAC,EAAM,aAEL,GAAM,CAAC,EAAO,EAAG,MAAgB,KAAK,QAC1C,GAAI,EAAM,QAAQ,IAAI,CAAK,GAAK,CAAC,EAChC,OAAO,EAKV,EAAQ,EAAMA,EACf,CAEA,OAAO,IACR,CAKA,GAAO,EAAO,CACb,IAAK,GAAM,CAAC,EAAQ,KAAU,EAAM,QAC/B,CAAC,KAAK,SAAS,IAAI,CAAM,GAAK,EAAM,SAAS,IAAI,CAAM,GAC1D,KAAK,SAAS,IAAI,EAAQ,EAAM,SAAS,IAAI,CAAM,CAAC,EAGrD,KAAK,QAAQ,IAAI,EAAQ,CAAK,EAG/B,IAAK,GAAM,CAAC,EAAQ,KAAa,EAAM,eAAgB,CACtD,IAAM,EAAI,KAAK,eAAe,IAAI,CAAM,EACpC,GAAG,EAAS,QAAQ,KAAK,EAAE,OAAO,CACvC,CAUA,IAAM,EAAQ,GAAU,CACvB,IAAI,EAAY,EAAM,UAClB,OAAc,KAElB,IAAK,IAAM,KAAY,EAAW,CACjC,IAAI,EAAQ,EAAS,EAErB,GAAK,IACJ,EAA6B,CAAS,MAChC,CACN,IAAI,EAAgC,EAEhC,WAAkC,CAAC,KAAK,eAAe,IAAI,CAAM,IACpE,KAAKZ,GAAqB,OAAO,CAAM,EACvC,GAAkB,EAAQ,EAAK,EAC/B,KAAK,SAAS,CAAM,EAEtB,CACD,CACD,EAEA,IAAK,IAAM,KAAU,KAAK,QAAQ,KAAK,EACtC,EAAK,CAAM,EAGZ,KAAK,aAAe,EAAM,QAAQ,CAAC,EACnC,EAAMH,GAAQ,EAEd,GAAgB,KAChB,KAAKO,GAAS,CACf,CAKA,GAAe,EAAS,CACvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACxC,GAAa,EAAQ,GAAI,KAAKL,GAAgB,KAAKC,EAAoB,CAEzE,CASA,QAAQ,EAAQ,EAAO,EAAa,GAAO,CACtC,EAAO,IAAM,GAAiB,CAAC,KAAK,SAAS,IAAI,CAAM,GAC1D,KAAK,SAAS,IAAI,EAAQ,EAAO,CAAC,EAI9B,EAAO,YACX,KAAK,QAAQ,IAAI,EAAQ,CAAC,EAAO,CAAU,CAAC,EAC5C,IAAc,IAAI,EAAQ,CAAK,GAG3B,KAAK,UACT,EAAO,EAAI,EAEb,CAEA,UAAW,CACV,GAAgB,IACjB,CAEA,YAAa,CACZ,GAAgB,KAChB,GAAe,IAChB,CAEA,OAAQ,CACP,GAAI,CACCnB,GACH,GAAc,MAAM,EAGrB,GAAgB,GAChB,GAAgB,KAEhB,KAAKuB,GAAS,CACf,QAAU,CAYT,GAXA,GAAc,EACd,GAAwB,KACxB,GAAoB,KACpB,GAAiB,KACjB,GAAgB,GAEhB,GAAgB,KAChB,GAAe,KAEf,GAAW,MAAM,EAEbvB,EACH,IAAK,IAAM,KAAU,GACpB,EAAO,QAAU,IAGpB,CACD,CAEA,SAAU,CACT,IAAK,IAAM,KAAM,KAAKgC,GAAoB,EAAG,IAAI,EACjD,KAAKA,GAAmB,MAAM,EAC9B,KAAKC,GAAuB,MAAM,EAElC,KAAKjB,GAAQ,CACd,CAKA,wBAAwB,EAAQ,CAC/B,KAAKkB,GAAa,KAAK,CAAM,CAC9B,CAEA,IAAU,CACT,KAAKlB,GAAQ,EAMb,IAAK,IAAI,EAAQ,GAAa,IAAU,KAAM,EAAQ,EAAMmB,GAAO,CAClE,IAAI,EAAa,EAAM,GAAK,KAAK,GAG7B,EAAU,CAAC,EAEf,IAAK,GAAM,CAAC,EAAQ,CAAC,EAAO,MAAgB,KAAK,QAAS,CACzD,GAAI,EAAM,QAAQ,IAAI,CAAM,EAAG,CAC9B,IAAI,EAA6C,EAAM,QAAQ,IAAI,CAAM,EAAG,GAE5E,GAAI,GAAc,IAAU,EAE3B,EAAM,QAAQ,IAAI,EAAQ,CAAC,EAAO,CAAU,CAAC,OAI7C,QAEF,CAEA,EAAQ,KAAK,CAAM,CACpB,CAEA,GAAI,EAGH,IAAK,GAAM,CAAC,EAAQ,KAAa,KAAK,eAAgB,CACrD,IAAM,EAAI,EAAM,eAAe,IAAI,CAAM,EACrC,GAAG,EAAS,QAAQ,KAAK,EAAE,OAAO,CACvC,CAGI,KAAMpB,GAGX,KAAI,EAAS,CAAC,GAAG,EAAM,QAAQ,KAAK,CAAC,EAAE,OAAQ,GAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,EAEzE,GAAI,EAAO,SAAW,EACjB,GAEH,EAAM,QAAQ,OAET,GAAI,EAAQ,OAAS,EAAG,CAM9B,GALIf,GACH,GAAU,EAAMoB,GAAO,SAAW,EAAG,2BAA2B,EAI7D,EACH,IAAK,IAAM,KAAa,KAAKN,GAC5B,EAAM,cAAc,EAAY,GAAM,CAChC,EAAE,UACN,EAAM,SAAS,CAAC,EAEhB,EAAMQ,GAAe,CAAC,CAAC,CAAC,CAE1B,CAAC,EAIH,EAAM,SAAS,EAGf,IAAI,EAAS,IAAI,IAGb,EAAU,IAAI,IAElB,IAAK,IAAI,KAAU,EAClB,GAAa,EAAQ,EAAQ,EAAQ,CAAO,EAG7C,EAAU,IAAI,IACd,IAAI,EAAkB,CAAC,GAAG,EAAM,QAAQ,KAAK,CAAC,EAAE,OAAQ,GACvD,KAAK,QAAQ,IAAI,CAAC,EACgB,KAAK,QAAQ,IAAI,CAAC,EAAG,KAAO,EAAE,EAC7D,EACJ,EAEA,GAAI,EAAgB,OAAS,MACvB,IAAM,KAAU,KAAKY,GACzB,EACE,EAAO,WACR,GAAW,EAAQ,EAAiB,CAAO,IAEtC,EAAO,WACX,GAAkB,EAAQ,EAAK,EAC/B,EAAM,SAAS,CAAM,GAErB,EAAMhB,GAAe,IAAI,CAAM,GAOnC,GAAI,EAAME,GAAO,OAAS,EAAG,CAC5B,EAAM,MAAM,EAEZ,IAAK,IAAI,KAAQ,EAAMA,GACtB,EAAMC,GAAU,EAAM,CAAC,EAAG,CAAC,CAAC,EAG7B,EAAMD,GAAS,CAAC,CACjB,CAEA,EAAM,WAAW,CAClB,CAxEyE,CAyE1E,CACD,CAMA,UAAU,EAAU,EAAQ,CAG3B,GAFA,KAAKQ,IAAY,EAEb,EAAU,CACb,IAAI,EAAyB,KAAKhB,GAAkB,IAAI,CAAM,GAAK,EACnE,KAAKA,GAAkB,IAAI,EAAQ,EAAyB,CAAC,CAC9D,CACD,CAMA,UAAU,EAAU,EAAQ,CAG3B,GAFA,OAAKgB,GAED,EAAU,CACb,IAAI,EAAyB,KAAKhB,GAAkB,IAAI,CAAM,GAAK,EAE/D,IAA2B,EAC9B,KAAKA,GAAkB,OAAO,CAAM,EAEpC,KAAKA,GAAkB,IAAI,EAAQ,EAAyB,CAAC,CAE/D,CAEI,KAAKwB,KACT,KAAKA,GAAoB,GAEzB,OAAuB,CACtB,KAAKA,GAAoB,GAErB,KAAK,QACR,KAAK,MAAM,CAEb,CAAC,EACF,CAMA,iBAAiB,EAAe,EAAqB,CACpD,IAAK,IAAM,KAAK,EACf,KAAKlB,GAAe,IAAI,CAAC,EAG1B,IAAK,IAAM,KAAK,EACf,KAAKC,GAAqB,IAAI,CAAC,EAGhC,EAAc,MAAM,EACpB,EAAoB,MAAM,CAC3B,CAGA,SAAS,EAAI,CACZ,KAAKO,GAAkB,IAAI,CAAE,CAC9B,CAGA,UAAU,EAAI,CACb,KAAKM,GAAmB,IAAI,CAAE,CAC/B,CAGA,eAAe,EAAI,CAClB,KAAKC,GAAuB,IAAI,CAAE,CACnC,CAEA,2BAA4B,CAC3B,IAAK,IAAM,KAAM,KAAKA,GAAwB,EAAG,IAAI,EACrD,KAAKA,GAAuB,MAAM,CACnC,CAEA,SAAU,CACT,OAAQ,KAAKN,KAAc,GAAS,GAAG,OACxC,CAEA,OAAO,QAAS,CACf,GAAI,KAAkB,KAAM,CAC3B,IAAM,EAAS,GAAgB,IAAI,EACnC,EAAMG,GAAM,EAER,CAAC,IAAiB,CAAC,IACtB,OAAuB,CACjB,EAAMf,IACV,EAAM,MAAM,CAEd,CAAC,CAEH,CAEA,OAAO,EACR,CAEA,OAAQ,CACP,GAAI,CAAC,GAAoB,CAAC,KAAK,SAAW,KAAKgB,KAAU,MAAQ,KAAKI,KAAU,KAAO,CACtF,GAAe,KACf,MACD,CAIA,GAAe,IAAI,IACnB,IAAK,GAAM,CAAC,EAAQ,CAAC,MAAW,KAAK,QACpC,GAAa,IAAI,EAAQ,CAAK,EAI/B,IAAK,IAAI,EAAQ,GAAa,IAAU,KAAM,EAAQ,EAAMA,GACvD,SAAU,MAAQ,EAAM,SAI5B,KAAI,EAAa,GAEjB,GAAI,EAAM,GAAK,KAAK,GACnB,KAAK,GAAM,CAAC,EAAQ,EAAG,MAAgB,EAAM,QAGxC,OAEA,KAAK,QAAQ,IAAI,CAAM,EAAG,CAC7B,EAAa,GACb,KACD,CACD,CAQD,GAAI,CAAC,MACC,GAAM,CAAC,EAAQ,KAAa,EAAM,SACjC,GAAa,IAAI,CAAM,GAC3B,GAAa,IAAI,EAAQ,CAAQ,CAvBnB,CA4BnB,CAMA,SAAS,EAAQ,CAKhB,GAJA,GAAwB,EAKvB,EAAO,GAAG,YACT,EAAO,YAAmD,EAC1D,EAAO,SACP,CACD,EAAO,EAAE,aAAa,CAAM,EAC5B,MACD,CAIA,IAFA,IAAI,EAAI,EAED,EAAE,SAAW,MAAM,CACzB,EAAI,EAAE,OACN,IAAI,EAAQ,EAAE,EAKd,GAAI,KAAsB,MAAQ,IAAM,KACnC,IASF,KAAoB,QAAS,GAAgB,OAC9C,CAAC,IAED,OAIF,GAAK,KAA8C,CAClD,KAAK,QAEJ,OAGD,EAAE,GAAK,EACR,CACD,CAEA,KAAKf,GAAO,KAAK,CAAC,CACnB,CAEA,IAAQ,CACH,KAAe,KAClB,GAAc,GAAa,MAE3B,GAAWe,GAAQ,KACnB,KAAKJ,GAAQ,IAGd,GAAa,IACd,CAEA,IAAU,CACT,IAAI,EAAO,KAAKA,GACZ,EAAO,KAAKI,GAEZ,IAAS,KACZ,GAAc,EAEd,EAAKA,GAAQ,EAGV,IAAS,KACZ,GAAa,EAEb,EAAKJ,GAAQ,EAGd,KAAK,OAAS,EACf,CACD,EAUA,SAAgB,GAAU,EAAI,CAC7B,IAAI,EAAoB,GACxB,GAAmB,GAEnB,GAAI,CACH,IAAI,EAUJ,IARI,IACC,KAAkB,MAAQ,CAAC,GAAc,SAC5C,GAAc,MAAM,EAGrB,EAAS,EAAG,KAGA,CAGZ,GAFA,GAAY,EAER,KAAkB,KACrB,OAAyB,EAG1B,GAAc,MAAM,CACrB,CACD,QAAU,CACT,GAAmB,CACpB,CACD,CAEA,SAAS,KAAsB,CAC9B,GAAI/B,EAAK,CACR,IAAI,EAAU,IAAI,IAElB,IAAK,IAAM,KAAgC,GAAe,QAAQ,KAAK,EACtE,IAAK,GAAM,CAAC,EAAO,KAAW,EAAO,SAAW,CAAC,EAAG,CACnD,IAAI,EAAQ,EAAQ,IAAI,CAAK,EAExB,IACJ,EAAQ,CAAE,MAAO,EAAO,MAAO,MAAO,CAAE,EACxC,EAAQ,IAAI,EAAO,CAAK,GAGzB,EAAM,OAAS,EAAO,KACvB,CAGD,IAAK,IAAM,KAAU,EAAQ,OAAO,EAC/B,EAAO,OAEV,QAAQ,MAAM,EAAO,KAAK,CAG7B,CAEA,GAAI,CACH,GAA+B,CAChC,OAAS,EAAO,CACXA,GAEH,EAAgB,EAAO,QAAS,CAAE,MAAO,EAAG,CAAC,EAK9C,GAAsB,EAAO,EAAqB,CACnD,CACD,CAGA,IAAW,GAAsB,KAMjC,SAAS,GAAqB,EAAS,CACtC,IAAI,EAAS,EAAQ,OACjB,OAAW,EAIf,KAFA,IAAI,EAAI,EAED,EAAI,GAAQ,CAClB,IAAI,EAAS,EAAQ,KAErB,KAAK,EAAO,UAAkC,GAAS,CAAM,IAC5D,GAAsB,IAAI,IAE1B,GAAc,CAAM,EAQnB,EAAO,OAAS,MAChB,EAAO,QAAU,MACjB,EAAO,QAAU,MACjB,EAAO,WAAa,MACpB,EAAO,KAAO,MAGd,GAAc,CAAM,EAKjB,IAAqB,KAAO,GAAG,CAClC,GAAW,MAAM,EAEjB,IAAK,IAAM,KAAK,GAAqB,CAEpC,GAAK,EAAE,QAAgC,SAIvC,IAAM,EAAkB,CAAC,CAAC,EACtB,EAAW,EAAE,OACjB,KAAO,IAAa,MACf,GAAoB,IAAI,CAAQ,IACnC,GAAoB,OAAO,CAAQ,EACnC,EAAgB,KAAK,CAAQ,GAE9B,EAAW,EAAS,OAGrB,IAAK,IAAI,EAAI,EAAgB,OAAS,EAAG,GAAK,EAAG,IAAK,CACrD,IAAM,EAAI,EAAgB,GAErB,EAAE,SACP,GAAc,CAAC,CAChB,CACD,CAEA,GAAoB,MAAM,CAC3B,CAEF,CAEA,GAAsB,IAFtB,CAGD,CAWA,SAAS,GAAa,EAAO,EAAS,EAAQ,EAAS,CAClD,MAAO,IAAI,CAAK,IACpB,EAAO,IAAI,CAAK,EAEZ,EAAM,YAAc,MACvB,IAAK,IAAM,KAAY,EAAM,UAAW,CACvC,IAAM,EAAQ,EAAS,EAElB,IACJ,GAAqC,EAAW,EAAS,EAAQ,CAAO,EAEvE,WAAoC,EACpC,SACD,GAAW,EAAU,EAAS,CAAO,IAErC,GAAkB,EAAU,EAAK,EACjC,GAAuC,CAAS,EAElD,CAEF,CA6BA,SAAS,GAAW,EAAU,EAAS,EAAS,CAC/C,IAAM,EAAU,EAAQ,IAAI,CAAQ,EACpC,GAAI,IAAY,OAAW,OAAO,EAElC,GAAI,EAAS,OAAS,KACrB,IAAK,IAAM,KAAO,EAAS,KAAM,CAChC,GAAI,EAAS,KAAK,EAAS,CAAG,EAC7B,MAAO,GAGR,GAAK,EAAI,KAAsB,GAAmC,EAAM,EAAS,CAAO,EAEvF,OADA,EAAQ,IAA4B,EAAM,EAAI,EACvC,EAET,CAKD,OAFA,EAAQ,IAAI,EAAU,EAAK,EAEpB,EACR,CAMA,SAAgB,GAAgB,EAAQ,CAClB,GAAgB,SAAS,CAAM,CACrD,CAiFA,SAAS,GAAa,EAAQ,EAAS,CAEtC,KAAK,EAAO,MAA6B,EAAO,QAUhD,CANK,EAAO,OACX,EAAQ,EAAE,KAAK,CAAM,EACV,EAAO,QAClB,EAAQ,EAAE,KAAK,CAAM,EAGtB,GAAkB,EAAQ,EAAK,EAG/B,IADA,IAAI,EAAI,EAAO,MACR,IAAM,MACZ,GAAa,EAAG,CAAO,EACvB,EAAI,EAAE,IALwB,CAOhC,CAMA,SAAS,GAAU,EAAQ,CAC1B,GAAkB,EAAQ,EAAK,EAG/B,IADA,IAAI,EAAI,EAAO,MACR,IAAM,MACZ,GAAU,CAAC,EACX,EAAI,EAAE,IAER,CCnwCA,SAAgB,GAAiB,EAAO,CACvC,IAAI,EAAc,EACd,EAAU,GAAO,CAAC,EAElB,EAMJ,OAJIA,GACH,GAAI,EAAS,0BAA0B,MAG3B,CACR,GAAgB,IACnB,EAAI,CAAO,EAEX,QACK,IAAgB,IACnB,EAAO,OAAc,MAAY,GAAU,CAAO,CAAC,CAAC,GAGrD,GAAe,MAEF,CACZ,OAAuB,CAItB,IAEI,IAAgB,IACnB,IAAO,EACP,EAAO,OAIP,GAAU,CAAO,EAEnB,CAAC,CACF,EACA,EAEH,CACD,CC1CA,IAAI,IAAQ,GAAqB,GASjC,SAAgB,GAAS,EAAM,EAAO,EAAU,EAAiB,CAChE,IAAI,IAAS,EAAM,EAAO,EAAU,CAAe,CACpD,CAEA,IAAa,IAAb,KAAsB,CAErB,OAEA,WAAa,GAOb,gBAGA,GAGA,GAAgB,GAAY,GAAe,KAG3C,GAGA,GAGA,GAGA,GAAe,KAGf,GAAkB,KAGlB,GAAiB,KAGjB,GAAsB,KAEtB,GAAuB,EACvB,GAAiB,EACjB,GAA+B,GAG/B,GAAiB,IAAI,IAGrB,GAAuB,IAAI,IAS3B,GAAkB,KAElB,GAA6B,QAC5B,KAAKqC,GAAkB,GAAO,KAAKC,EAAoB,EAEnDtC,GACH,GAAI,KAAKqC,GAAiB,mBAAmB,MAGjC,CACZ,KAAKA,GAAkB,IACxB,EACA,EAQD,YAAY,EAAM,EAAO,EAAU,EAAiB,CACnD,KAAKE,GAAU,EACf,KAAKC,GAAS,EAEd,KAAKC,GAAa,GAAW,CAC5B,IAAI,EAAgC,GAEpC,EAAO,EAAI,KACX,EAAO,OAEP,EAAS,CAAM,CAChB,EAEA,KAAK,OAAgC,GAAe,EAGpD,KAAK,gBAAkB,GAAmB,KAAK,QAAQ,kBAAqB,GAAM,GAElF,KAAKC,GAAU,OAAY,CAC1B,GAAI,GAAW,CACd,IAAM,EAAkC,KAAKC,GAC7C,GAAa,EAEb,IAAM,EAA0B,EAAQ,YAGxC,GAF+B,EAAQ,KAAK,eAEnB,EAAG,CAG3B,IAAM,EAAmB,KAAK,MAAM,EAAQ,KAAK,OAAmC,CAAC,EACrF,KAAKC,GAAwB,CAAgB,CAC9C,MAAW,EACV,KAAKC,GAAyB,EAE9B,KAAKC,GAA0B,CAEjC,MACC,KAAKC,GAAQ,CAEf,EAAG,GAAK,EAEJ,KACH,KAAKR,GAAU,GAEjB,CAEA,IAA4B,CAC3B,GAAI,CACH,KAAKS,GAAe,OAAa,KAAKP,GAAU,KAAKF,EAAO,CAAC,CAC9D,OAAS,EAAO,CACf,KAAK,MAAM,CAAK,CACjB,CACD,CAKA,GAAwB,EAAO,CAC9B,IAAM,EAAS,KAAKC,GAAO,OACtB,IAEL,KAAKS,GAAiB,OAAa,CAClC,EACC,KAAKV,OACC,UACM,CAAC,CACd,CACD,CAAC,EACF,CAEA,IAA2B,CAC1B,IAAM,EAAU,KAAKC,GAAO,QACvB,IAEL,KAAK,WAAa,GAClB,KAAKU,GAAkB,OAAa,EAAQ,KAAKX,EAAO,CAAC,EAEzD,OAAuB,CACtB,IAAI,EAAY,KAAKY,GAAsB,SAAS,uBAAuB,EACvE,EAAS,GAAY,EAEzB,EAAS,OAAO,CAAM,EAEtB,KAAKH,GAAe,KAAKI,OACjB,OAAa,KAAKX,GAAU,CAAM,CAAC,CAC1C,EAEG,KAAKY,KAAmB,IAC3B,KAAKd,GAAQ,OAAO,CAAQ,EAC5B,KAAKY,GAAsB,KAE3B,GAAoC,KAAKD,OAAwB,CAChE,KAAKA,GAAkB,IACxB,CAAC,EAED,KAAKI,GAA+B,EAAc,EAEpD,CAAC,EACF,CAEA,IAAU,CACT,GAAI,CASH,GARA,KAAK,WAAa,KAAK,oBAAoB,EAC3C,KAAKD,GAAiB,EACtB,KAAKf,GAAuB,EAE5B,KAAKU,GAAe,OAAa,CAChC,KAAKP,GAAU,KAAKF,EAAO,CAC5B,CAAC,EAEG,KAAKc,GAAiB,EAAG,CAC5B,IAAI,EAAY,KAAKF,GAAsB,SAAS,uBAAuB,EAC3E,GAAY,KAAKH,GAAc,CAAQ,EAEvC,IAAM,EAAiD,KAAKR,GAAO,QACnE,KAAKU,GAAkB,OAAa,EAAQ,KAAKX,EAAO,CAAC,CAC1D,MACC,KAAKe,GAA+B,EAAc,CAEpD,OAAS,EAAO,CACf,KAAK,MAAM,CAAK,CACjB,CACD,CAKA,GAAS,EAAO,CACf,KAAK,WAAa,GAIlB,EAAM,iBAAiB,KAAKpC,GAAgB,KAAKC,EAAoB,CACtE,CAMA,aAAa,EAAQ,CACpB,GAAa,EAAQ,KAAKD,GAAgB,KAAKC,EAAoB,CACpE,CAMA,aAAc,CACb,MAAO,CAAC,KAAK,aAAe,CAAC,KAAK,QAAU,KAAK,OAAO,YAAY,EACrE,CAEA,qBAAsB,CACrB,MAAO,CAAC,CAAC,KAAKqB,GAAO,OACtB,CAMA,GAAK,EAAI,CACR,IAAI,EAAkB,GAClB,EAAoB,GACpB,EAAe,GAEnB,GAAkB,KAAKE,EAAO,EAC9B,GAAoB,KAAKA,EAAO,EAChC,GAAsB,KAAKA,GAAQ,GAAG,EAEtC,GAAI,CAEH,OADA,GAAM,OAAO,EACN,EAAG,CACX,OAAS,EAAG,CAEX,OADA,GAAa,CAAC,EACP,IACR,QAAU,CACT,GAAkB,CAAe,EACjC,GAAoB,CAAiB,EACrC,GAAsB,CAAY,CACnC,CACD,CAQA,GAAsB,EAAG,EAAO,CAC/B,GAAI,CAAC,KAAK,oBAAoB,EAAG,CAC5B,KAAK,QACR,KAAK,OAAOa,GAAsB,EAAG,CAAK,EAI3C,MACD,CAEA,KAAKF,IAAkB,EAEnB,KAAKA,KAAmB,IAC3B,KAAKC,GAAS,CAAK,EAEf,KAAKJ,IACR,GAAa,KAAKA,OAAuB,CACxC,KAAKA,GAAkB,IACxB,CAAC,EAGF,IAEC,CAAKC,MADL,KAAKZ,GAAQ,OAAO,KAAKY,EAAmB,EACjB,MAG9B,CASA,qBAAqB,EAAG,EAAO,CAC9B,KAAKI,GAAsB,EAAG,CAAK,EAEnC,KAAKjB,IAAwB,EAEzB,GAAC,KAAKD,IAAmB,KAAKmB,MAClC,KAAKA,GAA+B,GAEpC,OAAuB,CACtB,KAAKA,GAA+B,GAChC,KAAKnB,IACR,GAAa,KAAKA,GAAiB,KAAKC,EAAoB,CAE9D,CAAC,EACF,CAEA,oBAAqB,CAEpB,OADA,KAAKmB,GAA2B,EACzB,EAAmC,KAAKpB,EAAgB,CAChE,CAGA,MAAM,EAAO,CAGZ,GAAI,CAAC,KAAKG,GAAO,SAAW,CAAC,KAAKA,GAAO,OACxC,MAAM,EAGH,IAAe,SACd,KAAKQ,IAAc,GAAc,YAAY,KAAKA,EAAY,EAC9D,KAAKE,IAAiB,GAAc,YAAY,KAAKA,EAAe,EACpE,KAAKD,IAAgB,GAAc,YAAY,KAAKA,EAAc,EAEtE,GAAc,mBAAqB,CAClC,KAAKS,GAAc,CAAK,CACzB,CAAC,GAED,KAAKA,GAAc,CAAK,CAE1B,CAKA,GAAc,EAAO,CACpB,IAEC,CAAKV,MADL,GAAe,KAAKA,EAAY,EACZ,MAGrB,IAEC,CAAKE,MADL,GAAe,KAAKA,EAAe,EACZ,MAGxB,IAEC,CAAKD,MADL,GAAe,KAAKA,EAAc,EACZ,MAGnB,KACH,GAA8C,KAAKN,EAAc,EACjE,GAAK,EACL,GAAiB,GAAW,CAAC,GAG9B,IAAI,EAAU,KAAKH,GAAO,QAC1B,IAAI,EAAS,KAAKA,GAAO,OACzB,IAAI,EAAY,GACZ,EAAmB,GAEvB,IAAM,MAAc,CACnB,GAAI,EAAW,CACd,GAA6B,EAC7B,MACD,CAEA,EAAY,GAER,GACH,GAAgC,EAG7B,KAAKS,KAAmB,MAC3B,GAAa,KAAKA,OAAsB,CACvC,KAAKA,GAAiB,IACvB,CAAC,EAGF,KAAKG,OAAW,CACf,KAAKL,GAAQ,CACd,CAAC,CACF,EAGM,EAAuB,GAAsB,CAClD,GAAI,CACH,EAAmB,GACnB,IAAU,EAAmB,CAAK,EAClC,EAAmB,EACpB,OAAS,EAAO,CACf,GAAsB,EAAO,KAAKL,IAAW,KAAKA,GAAQ,MAAM,CACjE,CAEI,IACH,KAAKO,GAAiB,KAAKG,OAAW,CACrC,GAAI,CACH,OAAO,OAAa,CAGnB,IAAI,EAAgC,GAEpC,EAAO,EAAI,KACX,EAAO,OAEP,EACC,KAAKb,OACC,MACA,CACP,CACD,CAAC,CACF,OAAS,EAAO,CAEf,OADA,GAAsB,EAA8B,KAAKG,GAAQ,MAAO,EACjE,IACR,CACD,CAAC,EAEH,EAEA,OAAuB,CAGtB,IAAI,EACJ,GAAI,CACH,EAAS,KAAK,gBAAgB,CAAK,CACpC,OAAS,EAAG,CACX,GAAsB,EAAG,KAAKA,IAAW,KAAKA,GAAQ,MAAM,EAC5D,MACD,CAIC,OAAO,GAAW,UADlB,GAEA,OAA4B,EAAQ,MAAU,WAG3B,EAAS,KAC3B,EAEC,GAAM,GAAsB,EAAG,KAAKA,IAAW,KAAKA,GAAQ,MAAM,CACpE,EAGA,EAAoB,CAAM,CAE5B,CAAC,CACF,CACD,ECxeA,SAAgB,GAAQ,EAAU,EAAM,EAAO,EAAI,CAClD,IAAM,EAAI,GAAS,EAAI,GAAU,GAGjC,IAAI,EAAU,EAAS,OAAQ,GAAM,CAAC,EAAE,OAAO,EAE/C,GAAI,EAAM,SAAW,GAAK,EAAQ,SAAW,EAAG,CAC/C,EAAG,EAAK,IAAI,CAAC,CAAC,EACd,MACD,CAEA,IAAI,EAAgC,GAEhC,EAAU,GAAQ,EAClB,EACH,EAAQ,SAAW,EAChB,EAAQ,GAAG,QACX,EAAQ,OAAS,EAChB,QAAQ,IAAI,EAAQ,IAAK,GAAM,EAAE,OAAO,CAAC,EACzC,KAGL,SAAS,EAAO,EAAQ,CAClB,OAAO,SAIZ,GAAQ,EAER,GAAI,CACH,EAAG,CAAM,CACV,OAAS,EAAO,CACf,GAAsB,EAAO,CAAM,CACpC,CAEA,GAAc,CARN,CAST,CAEA,IAAI,EAAoB,GAAkB,EAG1C,GAAI,EAAM,SAAW,EAAG,CACK,EAC1B,SAAW,EAAO,EAAK,IAAI,CAAC,CAAC,CAAC,EAC9B,QAAQ,CAAiB,EAE3B,MACD,CAGA,SAAS,GAAM,CACd,QAAQ,IAAI,EAAM,IAAK,GAAe,IAAc,CAAU,CAAC,CAAC,EAC9D,KAAM,GAAW,EAAO,CAAC,GAAG,EAAK,IAAI,CAAC,EAAG,GAAG,CAAM,CAAC,CAAC,EACpD,MAAO,GAAU,GAAsB,EAAO,CAAM,CAAC,EACrD,QAAQ,CAAiB,CAC5B,CAEI,EACH,EAAgB,SAAW,CAC1B,EAAQ,EACR,EAAI,EACJ,GAAc,CACf,CAAC,EAED,EAAI,CAEN,CAeA,SAAgB,IAAU,CACzB,IAAI,EAAyC,GACzC,EAAoB,GACpB,EAA6B,GAC7B,EAAuC,GAE3C,GAAI1C,EACH,IAAI,EAAqB,GAG1B,OAAO,SAAiB,EAAiB,GAAM,CAC9C,GAAkB,CAAe,EACjC,GAAoB,CAAiB,EACrC,GAAsB,CAA0B,EAE5C,KAAmB,EAAgB,WAGtC,GAAgB,SAAS,EACzB,GAAgB,MAAM,GAGnBA,IACH,GAA4B,IAAI,EAChC,GAAc,CAAkB,EAElC,CACD,CAiHA,SAAgB,GAAc,EAAmB,GAAM,CACtD,GAAkB,IAAI,EACtB,GAAoB,IAAI,EACxB,GAAsB,IAAI,EACtB,GAAkB,IAAe,WAAW,EAE5CA,IACH,GAA4B,IAAI,EAChC,GAAc,IAAI,EAEpB,CAgFA,SAAgB,IAAoB,CACnC,IAAI,EAAgC,GAChC,EAAoC,EAAO,EAC3C,EAA8B,GAC9B,EAAW,EAAS,YAAY,EAKpC,OAHA,EAAS,qBAAqB,EAAG,CAAK,EACtC,EAAM,UAAU,EAAU,CAAM,MAEnB,CACZ,EAAS,qBAAqB,GAAI,CAAK,EACvC,EAAM,UAAU,EAAU,CAAM,CACjC,CACD,CC/SA,IAAW,GAA0B,KAGrC,SAAgB,GAA4B,EAAG,CAC9C,GAA0B,CAC3B,CAEA,IAAa,GAAwB,IAAI,IAQzC,SAAgB,GAAQ,EAAI,CAC3B,IAAI,IAAkB,GAElB,KAAkB,OAGrB,GAAc,GAAK,IAIpB,IAAM,EAAS,CACd,IAAK,GACL,KAAM,KACN,QAAS,KACT,UACA,EAAG,EACH,KACA,UAAW,KACX,GAAI,EACJ,EAAqB,EACrB,GAAI,EACJ,OAAQ,GACR,GAAI,IACL,EAMA,OAJIA,GAAO,IACV,EAAO,QAAU,GAAU,YAAY,GAGjC,CACR,CAEA,IAAa,GAAW,OAAO,UAAU,EAUzC,SAAgB,IAAc,EAAI,EAAO,EAAU,CAClD,IAAI,EAAuC,GAEvC,IAAW,MACd,GAAuB,EAGxB,IAAI,EAA6D,OAC7D,EAAS,GAAyB,CAAc,EAEhDA,IAAK,EAAO,MAAQ,GAAS,EAAG,SAAS,GAG7C,IAAI,EAAiB,CAAC,GAGlB,EAAY,IAAI,IAqIpB,OAnIA,QAAmB,CAClB,IAAI,EAAgC,GAEhCA,IACH,GAA0B,CAAE,SAAQ,YAAa,IAAI,IAAO,OAAQ,EAAM,GAI3E,IAAI,EAAI,GAAS,EACjB,EAAU,EAAE,QAEZ,GAAI,CAIH,QAAQ,QAAQ,EAAG,CAAC,EAClB,KAAK,EAAE,QAAU,GAAM,CAGnB,IAAM,IAAgB,EAAE,OAAO,CAAC,CACrC,CAAC,EACA,QAAQ,EAAa,CACxB,OAAS,EAAO,CACf,EAAE,OAAO,CAAK,EACd,GAAc,CACf,CAEA,GAAIA,EAAK,CACR,GAAI,GAAyB,CAI5B,GAAI,EAAO,OAAS,KACnB,IAAK,IAAI,EAAI,EAAG,EAAI,GAAc,GAAK,EACtC,GAAwB,YAAY,IAAI,EAAO,KAAK,EAAE,EAKxD,GAAI,KAAa,KAChB,IAAK,IAAI,EAAI,EAAG,EAAI,GAAS,OAAQ,GAAK,EACzC,GAAwB,YAAY,IAAI,GAAS,EAAE,CAGtD,CAEA,GAA0B,IAC3B,CAEA,IAAI,EAA8B,GAElC,GAAI,EAAgB,CAInB,GAAK,EAAO,QACX,IAAI,EAAoB,GAAkB,EAG3C,GAA6B,EAAO,EAAG,YAAY,EAClD,EAAM,eAAe,IAAI,CAAM,GAAG,OAAO,EAAQ,OAIjD,IAAK,IAAM,KAAK,EAAU,OAAO,EAChC,EAAE,OAAO,EAAQ,EAInB,EAAU,IAAI,CAAC,EACf,EAAM,eAAe,IAAI,EAAQ,CAAC,CACnC,CAMA,IAAM,GAAW,EAAO,EAAQ,SAAc,CACzCA,IACH,GAA0B,MAG3B,IAAoB,EACpB,EAAU,OAAO,CAAC,EAEd,IAAU,KAEd,EAAM,SAAS,EAEX,GACH,EAAO,GAAK,GAGZ,GAAa,EAAQ,CAAK,IAErB,EAAO,YACX,EAAO,GAAK,IAGb,GAAa,EAAQ,CAAK,EAEtBA,GAAO,IAAa,SACvB,GAAsB,IAAI,CAAM,EAEhC,eAAiB,CACZ,GAAsB,IAAI,CAAM,KAAM,EAAO,WAChD,GAAyC,EAAO,MAAQ,CAAQ,EAChE,GAAsB,OAAO,CAAM,EAErC,CAAC,IAIH,EAAM,WAAW,EAClB,EAEA,EAAE,QAAQ,KAAK,EAAU,GAAM,EAAQ,KAAM,GAAK,SAAS,CAAC,CAC7D,CAAC,EAED,OAAe,CACd,IAAK,IAAM,KAAK,EACf,EAAE,OAAO,EAAQ,CAEnB,CAAC,EAEGA,IAGH,EAAO,GAAK,IAGN,IAAI,QAAS,GAAW,CAE9B,SAAS,EAAK,EAAG,CAChB,SAAS,GAAK,CACT,IAAM,EACT,EAAO,CAAM,EAIb,EAAK,CAAO,CAEd,CAEA,EAAE,KAAK,EAAI,CAAE,CACd,CAEA,EAAK,CAAO,CACb,CAAC,CACF,CAQA,SAAgB,EAAa,EAAI,CAChC,IAAM,EAAI,GAAQ,CAAE,EAIpB,OAFK,GAAiB,GAAoB,CAAC,EAEpC,CACR,CAQA,SAAgB,GAAmB,EAAI,CACtC,IAAM,EAAS,GAAQ,CAAE,EAEzB,MADA,GAAO,OAAS,GACT,CACR,CAMA,SAAgB,GAAwB,EAAS,CAChD,IAAI,EAAU,EAAQ,QAEtB,GAAI,IAAY,KAAM,CACrB,EAAQ,QAAU,KAElB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACxC,GAAsC,EAAQ,EAAG,CAEnD,CACD,CAOA,IAAI,GAAQ,CAAC,EAOb,SAAgB,GAAgB,EAAS,CACxC,IAAI,EACA,EAAqB,GACrB,EAAS,EAAQ,OAErB,GAAI,CAAC,IAAwB,IAAW,MAAS,EAAO,QAGvD,OAFA,GAAgB,EAET,EAAQ,EAKhB,GAFA,GAAkB,CAAM,EAEpBA,EAAK,CACR,IAAI,EAAqB,GACzB,GAAkB,IAAI,GAAK,EAC3B,GAAI,CACC,EAAS,KAAK,GAAO,CAAO,GAC/B,GAA0B,EAG3B,GAAM,KAAK,CAAO,EAElB,EAAQ,GAAK,CAAC,GACd,GAAwB,CAAO,EAC/B,EAAQ,GAAgB,CAAO,CAChC,QAAU,CACT,GAAkB,CAAkB,EACpC,GAAkB,CAAkB,EACpC,GAAM,IAAI,CACX,CACD,MACC,GAAI,CACH,EAAQ,GAAK,CAAC,GACd,GAAwB,CAAO,EAC/B,EAAQ,GAAgB,CAAO,CAChC,QAAU,CACT,GAAkB,CAAkB,CACrC,CAGD,OAAO,CACR,CAMA,SAAgB,GAAe,EAAS,CACvC,IAAI,EAAQ,GAAgB,CAAO,EAEnC,GAAI,CAAC,EAAQ,OAAO,CAAK,IACxB,EAAQ,GAAK,GAAwB,GAMjC,CAAC,IAAe,SAAW,EAAQ,OAAS,QAC3C,KAAkB,KAUrB,EAAQ,EAAI,GAHZ,GAAc,QAAQ,EAAS,EAAO,EAAI,EAC1C,IAAgB,QAAQ,EAAS,EAAO,EAAI,GAMzC,EAAQ,OAAS,OAAM,CAC1B,GAAkB,EAAS,EAAK,EAChC,MACD,CAME,KAMA,KAAiB,KAOpB,GAAsB,CAAO,GAJzB,GAAgB,GAAK,IAAe,UACvC,GAAa,IAAI,EAAS,CAAK,EAKlC,CAKA,SAAgB,IAAuB,EAAS,CAC3C,KAAQ,UAAY,KAExB,IAAK,IAAM,KAAK,EAAQ,SAEnB,EAAE,UAAY,EAAE,MACnB,EAAE,WAAW,EACb,EAAE,IAAI,MAAM,EAAc,EAM1B,EAAE,SAAWH,EACb,EAAE,GAAK,KAEP,GAAiB,EAAG,CAAC,EACrB,GAAwB,CAAC,EAG5B,CAKA,SAAgB,GAAyB,EAAS,CAC7C,KAAQ,UAAY,KAExB,IAAK,IAAM,KAAK,EAAQ,QAGnB,EAAE,UACL,GAAc,CAAC,CAGlB,CCtaA,IAAW,GAAgB,IAAI,IAGlB,GAAa,IAAI,IAK9B,SAAgB,GAAkB,EAAG,CACpC,GAAgB,CACjB,CAEA,IAAI,GAAyB,GAE7B,SAAgB,KAA6B,CAC5C,GAAyB,EAC1B,CASA,SAAgB,GAAO,EAAG,EAAO,CAEhC,IAAI,EAAS,CACZ,EAAG,EACH,IACA,UAAW,KACX,UACA,GAAI,EACJ,GAAI,CACL,EASA,OAPIG,GAAO,IACV,EAAO,QAAU,GAAS,GAAU,YAAY,EAChD,EAAO,QAAU,KACjB,EAAO,kBAAoB,GAC3B,EAAO,MAAQ,MAGT,CACR,CAQA,SAAgB2D,EAAM,EAAG,EAAO,CAC/B,IAAM,EAAI,GAAO,EAAG,CAAK,EAIzB,OAFA,GAAoB,CAAC,EAEd,CACR,CASA,SAAgB,GAAe,EAAe,EAAY,GAAO,EAAY,GAAM,CAClF,IAAM,EAAI,GAAO,CAAa,EAW9B,OAVK,IACJ,EAAE,OAAS,IAKR,GAAoB,GAAa,KAAsB,MAAQ,GAAkB,IAAM,OACzF,GAAkB,EAAE,IAAM,CAAC,GAAG,KAAK,CAAC,EAG/B,CACR,CAOA,SAAgB,GAAO,EAAQ,EAAO,CAKrC,OAJA,EACC,EACA,OAAc,EAAI,CAAM,CAAC,CAC1B,EACO,CACR,CASA,SAAgBC,EAAI,EAAQ,EAAO,EAAe,GAAO,CAEvD,KAAoB,OAGnB,CAAC,IAAe,GAAgB,WACjC,GAAS,GACR,GAAgB,YAChB,KAAoB,MAAQ,CAAC,EAAS,KAAK,GAAiB,CAAM,IAEnE,GAAwB,EAGzB,IAAI,EAAY,EAAe,GAAM,CAAK,EAAI,EAM9C,OAJI5D,GACH,GAAU,EAAkC,EAAO,KAAM,EAGnD,GAAa,EAAQ,EAAW,EAAc,CACtD,CASA,SAAgB,GAAa,EAAQ,EAAO,EAA2B,KAAM,CAC5E,GAAI,CAAC,EAAO,OAAO,CAAK,EAAG,CAC1B,GAAW,IAAI,EAAQ,GAAuB,EAAQ,EAAO,CAAC,EAE9D,IAAI,EAAQ,GAAM,OAAO,EAGzB,GAFA,EAAM,QAAQ,EAAQ,CAAK,EAEvBA,EAAK,CACR,GAAI,GAAqB,KAAkB,KAAM,CAChD,EAAO,UAAY,IAAI,IAIvB,IAAM,GAAS,EAAO,QAAQ,IAAI,EAAE,GAAG,OAAS,GAAK,EAGrD,GAFA,EAAO,QAAQ,IAAI,GAAI,CAAE,MAA2B,KAAO,OAAM,CAAC,EAE9D,GAAqB,EAAQ,EAAG,CACnC,IAAM,EAAQ,GAAU,YAAY,EAEpC,GAAI,IAAU,KAAM,CACnB,IAAI,EAAQ,EAAO,QAAQ,IAAI,EAAM,KAAK,EAErC,IACJ,EAAQ,CAAE,QAAO,MAAO,CAAE,EAC1B,EAAO,QAAQ,IAAI,EAAM,MAAO,CAAK,GAGtC,EAAM,OACP,CACD,CACD,CAEI,KAAkB,OACrB,EAAO,kBAAoB,GAE7B,CAEA,GAAK,EAAO,IAAoB,CAC/B,IAAM,EAAkC,EAGnC,EAAO,QACX,GAAgB,CAAO,EAKpB,KAAiB,MACpB,GAAsB,CAAO,CAE/B,CAEA,EAAO,GAAK,GAAwB,EAIpC,GAAe,EAAQ,GAAO,CAAwB,EAOrD,GAAS,GACT,KAAkB,MACjB,GAAc,QAAe,EAC7B,GAAc,QAEX,KAAqB,KACxB,IAAqB,CAAC,CAAM,CAAC,EAE7B,GAAiB,KAAK,CAAM,GAI1B,CAAC,EAAM,SAAW,GAAc,KAAO,GAAK,CAAC,IAChD,GAAoB,CAEtB,CAEA,OAAO,CACR,CAEA,SAAgB,IAAsB,CACrC,GAAyB,GAEzB,IAAK,IAAM,KAAU,GAAe,CAG9B,EAAO,QACX,GAAkB,EAAQ,EAAW,EAGtC,IAAI,EAEJ,GAAI,CACH,EAAQ,GAAS,CAAM,CACxB,MAAQ,CAIP,EAAQ,EACT,CAEI,GACH,GAAc,CAAM,CAEtB,CAEA,GAAc,MAAM,CACrB,CAQA,SAAgB,GAAO,EAAQ,EAAI,EAAG,CACrC,IAAI,EAAQ,EAAI,CAAM,EAClB,EAAS,IAAM,EAAI,IAAU,IAKjC,OAHA,EAAI,EAAQ,CAAK,EAGV,CACR,CAQA,SAAgB,IAAW,EAAQ,EAAI,EAAG,CACzC,IAAI,EAAQ,EAAI,CAAM,EAItB,OAAO4D,EAAI,EAAQ,IAAM,EAAI,EAAE,EAAQ,EAAE,CAAK,CAC/C,CAMA,SAAgB,GAAU,EAAQ,CACjC,EAAI,EAAQ,EAAO,EAAI,CAAC,CACzB,CAQA,SAAS,GAAe,EAAQ,EAAQ,EAA0B,CACjE,IAAI,EAAY,EAAO,UACnB,OAAc,KAKlB,IAAK,IAHD,EAAQ,GAAS,EACjB,EAAS,EAAU,OAEd,EAAI,EAAG,EAAI,EAAQ,IAAK,CAChC,IAAI,EAAW,EAAU,GACrB,EAAQ,EAAS,EAGjB,MAAC,GAAS,IAAa,IAE3B,KAAI,GAAa,EAAQ,MAAW,EAOpC,GAJI,GACH,GAAkB,EAAU,CAAM,EAG9B,SAIJ,GAAc,IAA2B,CAAS,OAC5C,GAAK,IAAwB,CACnC,IAAI,EAAkC,EAEtC,IAAc,OAAO,CAAO,EAEvB,UAGH,QACC,KAAkB,QAAS,GAAc,cAE1C,EAAS,GAAK,IAGf,GAAe,EAAS,GAAa,CAAwB,EAE/D,MAAO,GAAI,EAAW,CACrB,IAAI,EAAgC,EAE/B,MAA+B,KAAwB,MAC3D,GAAoB,IAAI,CAAM,EAG3B,IAA6B,KAGhC,GAAgB,CAAM,EAFtB,EAAyB,KAAK,CAAM,CAItC,CAxCoC,CAyCrC,CACD,CCzWA,IAAM,IAA4B,6BAOlC,SAAgB,GAAM,EAAO,CAE5B,GAAI,OAAO,GAAU,WAAY,GAAkB,MAAgB,EAClE,OAAO,EAGR,IAAM,EAAY,GAAiB,CAAK,EAExC,GAAI,IAAc,GAAoB,IAAc,EACnD,OAAO,EAIR,IAAI,EAAU,IAAI,IACd,EAAmBjE,EAAS,CAAK,EACjC,EAAU,EAAO,CAAC,EAElB,EAAQK,GAAO,EAAoB,GAAU,YAAY,EAAI,KAC7D,EAAiB,GAOjB,EAAe,GAAO,CACzB,GAAI,KAAmB,EACtB,OAAO,EAAG,EAKX,IAAI,EAAW,GACX,EAAU,GAEd,GAAoB,IAAI,EACxB,GAAmB,CAAc,EAEjC,IAAI,EAAS,EAAG,EAKhB,OAHA,GAAoB,CAAQ,EAC5B,GAAmB,CAAO,EAEnB,CACR,EAEI,IAGH,EAAQ,IAAI,SAAU,EAA6B,EAAO,OAAQ,CAAK,CAAC,EACpEA,IACH,EAA4B,IAAwC,CAAM,IAK5E,IAAI,EAAO,GACX,IAAI,EAAW,GAEf,SAAS,EAAY,EAAU,CAC1B,MAIJ,CAHA,EAAW,GACX,EAAO,EAEP,GAAI,EAAS,GAAG,EAAK,SAAS,EAG9B,IAAK,GAAM,CAAC,EAAM,KAAW,EAC5B,GAAI,EAAQ,GAAU,EAAM,CAAI,CAAC,EAElC,EAAW,EANmB,CAO/B,CAEA,OAAO,IAAI,MAA0B,EAAQ,CAC5C,eAAe,EAAG,EAAM,EAAY,EAElC,EAAE,UAAW,IACb,EAAW,eAAiB,IAC5B,EAAW,aAAe,IAC1B,EAAW,WAAa,KAMxB,GAA0B,EAE3B,IAAI,EAAI,EAAQ,IAAI,CAAI,EAcxB,OAbI,IAAM,OACT,MAAkB,CACjB,IAAI,EAAI,EAAO,EAAW,MAAO,CAAK,EAKtC,OAJA,EAAQ,IAAI,EAAM,CAAC,EACfA,GAAO,OAAO,GAAS,UAC1B,GAAI,EAAG,GAAU,EAAM,CAAI,CAAC,EAEtB,CACR,CAAC,EAED,EAAI,EAAG,EAAW,MAAO,EAAI,EAGvB,EACR,EAEA,eAAe,EAAQ,EAAM,CAC5B,IAAI,EAAI,EAAQ,IAAI,CAAI,EAExB,GAAI,IAAM,WACL,KAAQ,EAAQ,CACnB,IAAM,EAAI,MAAkB,EAAO,EAAe,CAAK,CAAC,EACxD,EAAQ,IAAI,EAAM,CAAC,EACnB,GAAU,CAAO,EAEbA,GACH,GAAI,EAAG,GAAU,EAAM,CAAI,CAAC,CAE9B,OAEA,EAAI,EAAG,CAAa,EACpB,GAAU,CAAO,EAGlB,MAAO,EACR,EAEA,IAAI,EAAQ,EAAM,EAAU,CAC3B,GAAI,IAAS,GACZ,OAAO,EAGR,GAAIA,GAAO,IAAS,GACnB,OAAO,EAGR,IAAI,EAAI,EAAQ,IAAI,CAAI,EACpB,EAAS,KAAQ,EAkBrB,GAfI,IAAM,SAAc,CAAC,GAAU,EAAe,EAAQ,CAAI,GAAG,YAChE,EAAI,MAAkB,CAErB,IAAI,EAAI,EADA,GAAM,EAAS,EAAO,GAAQ,CACvB,EAAG,CAAK,EAMvB,OAJIA,GACH,GAAI,EAAG,GAAU,EAAM,CAAI,CAAC,EAGtB,CACR,CAAC,EAED,EAAQ,IAAI,EAAM,CAAC,GAGhB,IAAM,OAAW,CACpB,IAAI,EAAI,EAAI,CAAC,EACb,OAAO,IAAM,EAAgB,OAAY,CAC1C,CAEA,OAAO,QAAQ,IAAI,EAAQ,EAAM,CAAQ,CAC1C,EAEA,yBAAyB,EAAQ,EAAM,CACtC,IAAI,EAAa,QAAQ,yBAAyB,EAAQ,CAAI,EAE9D,GAAI,GAAc,UAAW,EAAY,CACxC,IAAI,EAAI,EAAQ,IAAI,CAAI,EACpB,IAAG,EAAW,MAAQ,EAAI,CAAC,EAChC,MAAO,GAAI,IAAe,OAAW,CACpC,IAAI,EAAS,EAAQ,IAAI,CAAI,EACzB,EAAQ,GAAQ,EAEpB,GAAI,IAAW,QAAa,IAAU,EACrC,MAAO,CACN,WAAY,GACZ,aAAc,GACd,QACA,SAAU,EACX,CAEF,CAEA,OAAO,CACR,EAEA,IAAI,EAAQ,EAAM,CACjB,GAAI,IAAS,GACZ,MAAO,GAGR,IAAI,EAAI,EAAQ,IAAI,CAAI,EACpB,EAAO,IAAM,QAAa,EAAE,IAAM,GAAkB,QAAQ,IAAI,EAAQ,CAAI,EA2BhF,OAxBC,IAAM,QACL,KAAkB,OAAS,CAAC,GAAO,EAAe,EAAQ,CAAI,GAAG,aAE9D,IAAM,SACT,EAAI,MAAkB,CAErB,IAAI,EAAI,EADA,EAAM,GAAM,EAAO,EAAK,EAAI,EAClB,CAAK,EAMvB,OAJIA,GACH,GAAI,EAAG,GAAU,EAAM,CAAI,CAAC,EAGtB,CACR,CAAC,EAED,EAAQ,IAAI,EAAM,CAAC,GAGR,EAAI,CACR,IAAM,GACN,GAIF,CACR,EAEA,IAAI,EAAQ,EAAM,EAAO,EAAU,CAClC,IAAI,EAAI,EAAQ,IAAI,CAAI,EACpB,EAAM,KAAQ,EAGlB,GAAI,GAAoB,IAAS,SAChC,IAAK,IAAI,EAAI,EAAO,EAAmC,EAAG,EAAG,GAAK,EAAG,CACpE,IAAI,EAAU,EAAQ,IAAI,EAAI,EAAE,EAC5B,IAAY,OAEL,KAAK,IAIf,EAAU,MAAkB,EAAO,EAAe,CAAK,CAAC,EACxD,EAAQ,IAAI,EAAI,GAAI,CAAO,EAEvBA,GACH,GAAI,EAAS,GAAU,EAAM,CAAC,CAAC,GAThC,EAAI,EAAS,CAAa,CAY5B,CAOD,GAAI,IAAM,QACL,CAAC,GAAO,EAAe,EAAQ,CAAI,GAAG,YACzC,EAAI,MAAkB,EAAO,OAAW,CAAK,CAAC,EAE1CA,GACH,GAAI,EAAG,GAAU,EAAM,CAAI,CAAC,EAE7B,EAAI,EAAG,GAAM,CAAK,CAAC,EAEnB,EAAQ,IAAI,EAAM,CAAC,OAEd,CACN,EAAM,EAAE,IAAM,EAEd,IAAI,EAAI,MAAkB,GAAM,CAAK,CAAC,EACtC,EAAI,EAAG,CAAC,CACT,CAEA,IAAI,EAAa,QAAQ,yBAAyB,EAAQ,CAAI,EAO9D,GAJI,GAAY,KACf,EAAW,IAAI,KAAK,EAAU,CAAK,EAGhC,CAAC,EAAK,CAKT,GAAI,GAAoB,OAAO,GAAS,SAAU,CACjD,IAAI,EAAoC,EAAQ,IAAI,QAAQ,EACxD,EAAI,OAAO,CAAI,EAEf,OAAO,UAAU,CAAC,GAAK,GAAK,EAAG,GAClC,EAAI,EAAI,EAAI,CAAC,CAEf,CAEA,GAAU,CAAO,CAClB,CAEA,MAAO,EACR,EAEA,QAAQ,EAAQ,CACf,EAAI,CAAO,EAEX,IAAI,EAAW,QAAQ,QAAQ,CAAM,EAAE,OAAQ,GAAQ,CACtD,IAAI,EAAS,EAAQ,IAAI,CAAG,EAC5B,OAAO,IAAW,QAAa,EAAO,IAAM,CAC7C,CAAC,EAED,IAAK,GAAI,CAAC,EAAK,KAAW,EACrB,EAAO,IAAM,GAAiB,EAAE,KAAO,IAC1C,EAAS,KAAK,CAAG,EAInB,OAAO,CACR,EAEA,gBAAiB,CAChB,GAAwB,CACzB,CACD,CAAC,CACF,CAMA,SAAS,GAAU,EAAM,EAAM,CAG9B,OAFI,OAAO,GAAS,SAAiB,GAAG,EAAK,UAAU,EAAK,aAAe,GAAG,IAC1E,IAA0B,KAAK,CAAI,EAAU,GAAG,EAAK,GAAG,IACrD,QAAQ,KAAK,CAAI,EAAI,GAAG,EAAK,GAAG,EAAK,GAAK,GAAG,EAAK,IAAI,EAAK,GACnE,CAKA,SAAgB,GAAkB,EAAO,CACxC,GAAI,CACH,GAAsB,OAAO,GAAU,UAAnC,GAA+C,MAAgB,EAClE,OAAO,EAAM,GAEf,MAAQ,CAQR,CAEA,OAAO,CACR,CAMA,SAAgB6D,IAAG,EAAG,EAAG,CACxB,OAAO,OAAO,GAAG,GAAkB,CAAC,EAAG,GAAkB,CAAC,CAAC,CAC5D,CAEA,IAAM,IAAyB,IAAI,IAAI,CACtC,aACA,OACA,MACA,OACA,UACA,QACA,OACA,SACA,SACD,CAAC,EAOD,SAAS,IAAkB,EAAO,CACjC,OAAO,IAAI,MAAM,EAAO,CACvB,IAAI,EAAQ,EAAM,EAAU,CAC3B,IAAI,EAAQ,QAAQ,IAAI,EAAQ,EAAM,CAAQ,EAS9C,OARK,IAAuB,IAA2B,CAAK,EAQrD,SAAU,GAAG,EAAM,CACzB,IAA2B,EAC3B,IAAI,EAAS,EAAM,MAAM,KAAM,CAAI,EAEnC,OADA,GAAoB,EACb,CACR,EAZQ,CAaT,CACD,CAAC,CACF,CC5aA,SAAgB,KAAgC,CAC/C,IAAM,EAAkB,MAAM,UAIxB,EAAU,MAAM,iBAClB,GACH,EAAQ,EAGT,GAAM,CAAE,UAAS,cAAa,YAAa,EAE3C,EAAgB,QAAU,SAAU,EAAM,EAAY,CACrD,IAAM,EAAQ,EAAQ,KAAK,KAAM,EAAM,CAAU,EAEjD,GAAI,IAAU,QACR,IAAI,EAAI,GAAc,EAAG,EAAI,KAAK,OAAQ,GAAK,EACnD,GAAI,GAAkB,KAAK,EAAE,IAAM,EAAM,CACxC,GAAgC,oBAAoB,EACpD,KACD,EAIF,OAAO,CACR,EAEA,EAAgB,YAAc,SAAU,EAAM,EAAY,CAGzD,IAAM,EAAQ,EAAY,KAAK,KAAM,EAAM,GAAc,KAAK,OAAS,CAAC,EAExE,GAAI,IAAU,QACR,IAAI,EAAI,EAAG,IAAM,GAAc,KAAK,OAAS,GAAI,GAAK,EAC1D,GAAI,GAAkB,KAAK,EAAE,IAAM,EAAM,CACxC,GAAgC,wBAAwB,EACxD,KACD,EAIF,OAAO,CACR,EAEA,EAAgB,SAAW,SAAU,EAAM,EAAY,CACtD,IAAM,EAAM,EAAS,KAAK,KAAM,EAAM,CAAU,EAEhD,GAAI,CAAC,OACC,IAAI,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,GAAkB,KAAK,EAAE,IAAM,EAAM,CACxC,GAAgC,qBAAqB,EACrD,KACD,EAIF,OAAO,CACR,EAGA,MAAM,qBAAyB,CAC9B,EAAgB,QAAU,EAC1B,EAAgB,YAAc,EAC9B,EAAgB,SAAW,CAC5B,CACD,CChDA,IAAW,GAGA,GAGA,GAGP,GAEA,GAMJ,SAAgB,IAAkB,CAC7B,QAAY,OAMhB,CAFA,GAAU,OACV,GAAY,SACZ,GAAa,UAAU,KAAK,UAAU,SAAS,EAE/C,IAAI,EAAoB,QAAQ,UAC5B,EAAiB,KAAK,UACtB,EAAiB,KAAK,UAG1B,GAAqB,EAAe,EAAgB,YAAY,EAAE,IAElE,GAAsB,EAAe,EAAgB,aAAa,EAAE,IAEhE,GAAc,CAAiB,IAEf,EAAoB,IAAe,OACnC,EAAoB,IAAoB,KACxC,EAAoB,IAAe,OAEtD,EAAkB,IAAM,QAGrB,GAAc,CAAc,IACZ,EAAiB,IAAc,QAG/C7D,IAEH,EAAkB,cAAgB,KAElC,IAA8B,EA5BgB,CA8BhD,CAMA,SAAgB,GAAY,EAAQ,GAAI,CACvC,OAAO,SAAS,eAAe,CAAK,CACrC,CAOA,SAAgB,GAAgB,EAAM,CACrC,OAA2C,GAAmB,KAAK,CAAI,CACxE,CAOA,SAAgB,GAAiB,EAAM,CACtC,OAA2C,GAAoB,KAAK,CAAI,CACzE,CASA,SAAgB,EAAM,EAAM,EAAS,CACpC,GAAI,CAAC,GACJ,OAAO,GAAgB,CAAI,EAG5B,IAAI,EAAQ,GAAgB,EAAY,EAGxC,GAAI,IAAU,KACb,EAAQ,GAAa,YAAY,GAAY,CAAC,OACxC,GAAI,GAAW,EAAM,aAAwB,CACnD,IAAI,EAAO,GAAY,EAGvB,OAFA,GAAO,OAAO,CAAI,EAClB,GAAiB,CAAI,EACd,CACR,CAOA,OALI,GACH,GAAsC,CAAM,EAG7C,GAAiB,CAAK,EACf,CACR,CAQA,SAAgB,EAAY,EAAM,EAAU,GAAO,CAClD,GAAI,CAAC,GAAW,CACf,IAAI,EAAQ,GAAgB,CAAI,EAKhC,OAFI,aAAiB,SAAW,EAAM,OAAS,GAAW,GAAiB,CAAK,EAEzE,CACR,CAEA,GAAI,EAAS,CAGZ,GAAI,IAAc,aAAwB,CACzC,IAAI,EAAO,GAAY,EAIvB,OAFA,IAAc,OAAO,CAAI,EACzB,GAAiB,CAAI,EACd,CACR,CAEA,GAAsC,EAAa,CACpD,CAEA,OAAO,EACR,CASA,SAAgB,EAAQ,EAAM,EAAQ,EAAG,EAAU,GAAO,CACzD,IAAI,EAAe,GAAY,GAAe,EAG9C,IAFA,IAAI,EAEG,KACN,EAAe,EACf,EAA4C,GAAiB,CAAY,EAG1E,GAAI,CAAC,GACJ,OAAO,EAGR,GAAI,EAAS,CAGZ,GAAI,GAAc,aAAwB,CACzC,IAAI,EAAO,GAAY,EAUvB,OANI,IAAiB,KACpB,GAAc,MAAM,CAAI,EAExB,EAAa,OAAO,CAAI,EAEzB,GAAiB,CAAI,EACd,CACR,CAEA,GAAsC,CAAa,CACpD,CAGA,OADA,GAAiB,CAAY,EACtB,CACR,CAOA,SAAgB,GAAmB,EAAM,CACxC,EAAK,YAAc,EACpB,CAQA,SAAgB,IAAsB,CAKrC,MAJI,CAAC,GACD,KAAwB,KAAa,IAEN,GAAe,EAClC,MAAkB,CACnC,CASA,SAAgB,GAAe,EAAK,EAAW,EAAI,CAClD,IAAI,EAAU,EAAK,CAAE,IAAG,EAAI,OAC5B,OACC,SAAS,gBAAgB,kCAA6B,EAAK,CAAO,CAEpE,CAiCA,SAAgB,GAAiB,EAAM,CACtC,GAA2B,EAAK,UAAW,OAAS,MACnD,OAGD,IAAI,EAAO,EAAK,YAEhB,KAAO,IAAS,MAAQ,EAAK,cAC5B,EAAK,OAAO,EAEU,EAAM,WAAqC,EAAK,UAEtE,EAAO,EAAK,WAEd,CC3RA,SAAgB,IAAU,EAAK,EAAO,CACrC,GAAI,EAAO,CACV,IAAM,EAAO,SAAS,KACtB,EAAI,UAAY,GAEhB,OAAuB,CAClB,SAAS,gBAAkB,GAC9B,EAAI,MAAM,CAEZ,CAAC,CACF,CACD,CAQA,SAAgB,GAAsB,EAAK,CACtC,IAAa,GAAgB,CAAG,IAAM,MACzC,GAAmB,CAAG,CAExB,CAEA,IAAI,GAA0B,GAE9B,SAAgB,IAA0B,CACpC,KACJ,GAA0B,GAC1B,SAAS,iBACR,QACC,GAAQ,CAGR,QAAQ,QAAQ,EAAE,SAAW,CAC5B,GAAI,CAAC,EAAI,iBACR,IAAK,IAAM,KAAoC,EAAI,OAAQ,SACvC,EAAI,MAAsB,CAGhD,CAAC,CACF,EAEA,CAAE,QAAS,EAAK,CACjB,EAEF,CCnBA,SAAgB8D,GAAyB,EAAI,CAC5C,IAAI,EAAoB,GACpB,EAAkB,GACtB,GAAoB,IAAI,EACxB,GAAkB,IAAI,EACtB,GAAI,CACH,OAAO,EAAG,CACX,QAAU,CACT,GAAoB,CAAiB,EACrC,GAAkB,CAAe,CAClC,CACD,CAUA,SAAgB,GAAgC,EAAS,EAAO,EAAS,EAAW,EAAS,CAC5F,EAAQ,iBAAiB,MAAaA,GAAyB,CAAO,CAAC,EACvE,IAAM,EAA2B,EAAS,IACtC,EAEgB,EAAU,QAA4B,CACxD,EAAK,EACL,EAAS,EAAI,CACd,EAEmB,EAAU,QAA4B,EAAS,EAAI,EAGvE,GAAwB,CACzB,CCrBA,SAAgB,GAAgB,EAAM,CACjC,KAAkB,OACjB,KAAoB,MACvB,GAAgB,CAAI,EAGrB,GAA4B,GAGzB,IACH,GAAqB,CAAI,CAE3B,CAMA,SAAS,IAAY,EAAQ,EAAe,CAC3C,IAAI,EAAc,EAAc,KAC5B,IAAgB,KACnB,EAAc,KAAO,EAAc,MAAQ,GAE3C,EAAY,KAAO,EACnB,EAAO,KAAO,EACd,EAAc,KAAO,EAEvB,CAOA,SAAS,GAAc,EAAM,EAAI,CAChC,IAAI,EAAS,GAEb,GAAI9D,EAEH,KAAO,IAAW,MAAS,EAAO,UACjC,EAAS,EAAO,OAId,IAAW,MAAS,EAAO,SAC9B,GAAQ,IAIT,IAAI,EAAS,CACZ,IAAK,GACL,KAAM,KACN,MAAO,KACP,EAAG,EAAO,OACV,MAAO,KACP,KACA,KAAM,KACN,KAAM,KACN,SACA,EAAG,GAAU,EAAO,EACpB,KAAM,KACN,SAAU,KACV,GAAI,EACJ,GAAI,IACL,EAEIA,IACH,EAAO,mBAAqB,IAG7B,IAAe,wBAAwB,CAAM,EAG7C,IAAI,EAAI,EAER,GAAK,IACA,KAAsB,KAKzB,GAAM,OAAO,EAAE,SAAS,CAAM,EAH9B,GAAkB,KAAK,CAAM,OAKxB,GAAI,IAAO,KAAM,CACvB,GAAI,CACH,GAAc,CAAM,CACrB,OAAS,EAAG,CAEX,MADA,GAAe,CAAM,EACf,CACP,CAMC,EAAE,OAAS,MACX,EAAE,WAAa,MACf,EAAE,QAAU,MACZ,EAAE,QAAU,EAAE,QACb,EAAE,YAEH,EAAI,EAAE,MACD,MAA+B,SAAoC,IAAM,OAC7E,EAAE,GAAK,IAGV,CAEA,GAAI,IAAM,OACT,EAAE,OAAS,EAEP,IAAW,MACd,IAAY,EAAG,CAAM,EAKrB,KAAoB,MACnB,GAAgB,KAAiB,EACjC,OACA,CACD,IAAI,EAAkC,IACrC,EAAQ,UAAY,CAAC,GAAG,KAAK,CAAC,CAChC,CAGD,OAAO,CACR,CAMA,SAAgB,IAAkB,CACjC,OAAO,KAAoB,MAAQ,CAAC,EACrC,CAKA,SAAgB,GAAS,EAAI,CAC5B,IAAM,EAAS,KAA6B,IAAI,EAGhD,OAFA,GAAkB,EAAQ,EAAK,EAC/B,EAAO,SAAW,EACX,CACR,CAMA,SAAgB,GAAY,EAAI,CAC/B,GAAgB,SAAS,EAErBA,GACH,EAAgB,EAAI,OAAQ,CAC3B,MAAO,SACR,CAAC,EAKF,IAAI,EAA+B,GAAe,EAGlD,GAFY,CAAC,IAAoB,MAA2B,EAAM,SAEvD,CAEV,IAAI,EAA2C,IAC9C,EAAQ,IAAM,CAAC,GAAG,KAAK,CAAE,CAC3B,MAEC,OAAO,GAAmB,CAAE,CAE9B,CAKA,SAAgB,GAAmB,EAAI,CACtC,OAAO,KAAuB,GAAa,CAAE,CAC9C,CAOA,SAAgB,GAAgB,EAAI,CAOnC,OANA,GAAgB,aAAa,EACzBA,GACH,EAAgB,EAAI,OAAQ,CAC3B,MAAO,aACR,CAAC,EAEK,KAA8B,GAAa,CAAE,CACrD,CAYA,SAAgB,IAAY,EAAI,CAC/B,GAAM,OAAO,EACb,IAAM,EAAS,MAA4B,GAAkB,CAAE,EAE/D,UAAa,CACZ,GAAe,CAAM,CACtB,CACD,CAOA,SAAgB,IAAe,EAAI,CAClC,GAAM,OAAO,EACb,IAAM,EAAS,MAA4B,GAAkB,CAAE,EAE/D,OAAQ,EAAU,CAAC,IACX,IAAI,QAAS,GAAW,CAC1B,EAAQ,MACX,GAAa,MAAc,CAC1B,GAAe,CAAM,EACrB,EAAO,MAAS,CACjB,CAAC,GAED,GAAe,CAAM,EACrB,EAAO,MAAS,EAElB,CAAC,CAEH,CAMA,SAAgB+D,GAAO,EAAI,CAC1B,OAAO,KAAsB,CAAE,CAChC,CAOA,SAAgB,GAAkB,EAAM,EAAI,CAC3C,IAAI,EAAiD,GAGjD,EAAQ,CAAE,OAAQ,KAAM,IAAK,GAAO,MAAK,EAE7C,EAAQ,EAAE,EAAE,KAAK,CAAK,EAEtB,EAAM,OAAS,OAAoB,CAClC,KAAK,EAID,GAAM,IAEV,GAAM,IAAM,GAEZ,IAAI,EAAgC,GAMpC,GAAI,CACH,GAAkB,EAAO,MAAM,EAC/B,GAAQ,CAAE,CACX,QAAU,CACT,GAAkB,CAAM,CACzB,CAbY,CAcb,CAAC,CACF,CAEA,SAAgB,IAA0B,CACzC,IAAI,EAAiD,GAErD,OAAoB,CAEnB,IAAK,IAAI,KAAS,EAAQ,EAAE,EAAG,CAC9B,EAAM,KAAK,EAEX,IAAI,EAAS,EAAM,OAId,EAAO,QAAoB,EAAO,OAAS,MAC/C,GAAkB,EAAQ,EAAW,EAGlC,GAAS,CAAM,GAClB,GAAc,CAAM,EAGrB,EAAM,IAAM,EACb,CACD,CAAC,CACF,CAMA,SAAgB,IAAa,EAAI,CAChC,OAAO,GAAc,GAAQ,GAAkB,CAAE,CAClD,CAMA,SAAgB,GAAc,EAAI,EAAQ,EAAG,CAC5C,OAAO,KAA8B,EAAO,CAAE,CAC/C,CAQA,SAAgB,EAAgB,EAAI,EAAO,CAAC,EAAG,EAAQ,CAAC,EAAG,EAAW,CAAC,EAAG,CACzE,GAAQ,EAAU,EAAM,EAAQ,GAAW,CAC1C,SAAmC,EAAG,GAAG,EAAO,IAAI,CAAG,CAAC,CAAC,CAC1D,CAAC,CACF,CASA,SAAgB,IAAyB,EAAI,EAAO,CAAC,EAAG,EAAQ,CAAC,EAAG,EAAW,CAAC,EAAG,CAClF,GAAQ,EAAU,EAAM,EAAQ,GAAW,CAC1C,SAA4B,EAAG,GAAG,EAAO,IAAI,CAAG,CAAC,CAAC,CACnD,CAAC,CACF,CAMA,SAAgB,GAAM,EAAI,EAAQ,EAAG,CACpC,IAAI,EAAS,MAA6B,EAAO,CAAE,EAInD,OAHI/D,IACH,EAAO,UAAY,IAEb,CACR,CAMA,SAAgB,GAAQ,EAAI,EAAQ,EAAG,CACtC,IAAI,EAAS,GAAc,GAAiB,EAAO,CAAE,EAIrD,OAHIA,IACH,EAAO,UAAY,IAEb,CACR,CAKA,SAAgB,GAAO,EAAI,CAC1B,OAAO,MAA8B,GAAkB,CAAE,CAC1D,CAKA,SAAgB,GAAwB,EAAQ,CAC/C,IAAI,EAAW,EAAO,SACtB,GAAI,IAAa,KAAM,CACtB,IAAM,EAA+B,GAC/B,EAAoB,GAC1B,GAAyB,EAAI,EAC7B,GAAoB,IAAI,EACxB,GAAI,CACH,EAAS,KAAK,IAAI,CACnB,QAAU,CACT,GAAyB,CAA4B,EACrD,GAAoB,CAAiB,CACtC,CACD,CACD,CAOA,SAAgB,GAAwB,EAAQ,EAAa,GAAO,CACnE,IAAI,EAAS,EAAO,MAGpB,IAFA,EAAO,MAAQ,EAAO,KAAO,KAEtB,IAAW,MAAM,CACvB,IAAM,EAAa,EAAO,GAEtB,IAAe,MAClB,OAA+B,CAC9B,EAAW,MAAM,EAAc,CAChC,CAAC,EAGF,IAAI,EAAO,EAAO,KAEb,EAAO,KAEX,EAAO,OAAS,KAEhB,GAAe,EAAQ,CAAU,EAGlC,EAAS,CACV,CACD,CAMA,SAAgB,IAA8B,EAAQ,CAGrD,IAFA,IAAI,EAAS,EAAO,MAEb,IAAW,MAAM,CACvB,IAAI,EAAO,EAAO,KACb,EAAO,MACX,GAAe,CAAM,EAEtB,EAAS,CACV,CACD,CAOA,SAAgB,GAAe,EAAQ,EAAa,GAAM,CACzD,IAAI,EAAU,IAGZ,GAAe,EAAO,WACvB,EAAO,QAAU,MACjB,EAAO,MAAM,MAAQ,OAErB,GAAkB,EAAO,MAAM,MAAoC,EAAO,MAAM,GAAI,EACpF,EAAU,IAGX,GAAkB,EAAQ,EAAU,EACpC,GAAwB,EAAQ,GAAc,CAAC,CAAO,EACtD,GAAiB,EAAQ,CAAC,EAE1B,IAAI,EAAc,EAAO,OAAS,EAAO,MAAM,EAE/C,GAAI,IAAgB,KACnB,IAAK,IAAM,KAAc,EACxB,EAAW,KAAK,EAIlB,GAAwB,CAAM,EAE9B,EAAO,GAAK,GACZ,EAAO,GAAK,GAEZ,IAAI,EAAS,EAAO,OAGhB,IAAW,MAAQ,EAAO,QAAU,MACvC,GAAc,CAAM,EAGjBA,IACH,EAAO,mBAAqB,MAK7B,EAAO,KACN,EAAO,KACP,EAAO,SACP,EAAO,IACP,EAAO,KACP,EAAO,GACP,EAAO,MACP,EAAO,GACP,EAAO,EACN,IACH,CAOA,SAAgB,GAAkB,EAAM,EAAK,CAC5C,KAAO,IAAS,MAAM,CAErB,IAAI,EAAO,IAAS,EAAM,KAAO,GAAiB,CAAI,EAEtD,EAAK,OAAO,EACZ,EAAO,CACR,CACD,CAOA,SAAgB,GAAc,EAAQ,CACrC,IAAI,EAAS,EAAO,OAChB,EAAO,EAAO,KACd,EAAO,EAAO,KAEd,IAAS,OAAM,EAAK,KAAO,GAC3B,IAAS,OAAM,EAAK,KAAO,GAE3B,IAAW,OACV,EAAO,QAAU,IAAQ,EAAO,MAAQ,GACxC,EAAO,OAAS,IAAQ,EAAO,KAAO,GAE5C,CAYA,SAAgB,GAAa,EAAQ,EAAU,EAAU,GAAM,CAE9D,IAAI,EAAc,CAAC,EAEnB,GAAe,EAAQ,EAAa,EAAI,EAExC,IAAI,MAAW,CACV,GAAS,GAAe,CAAM,EAC9B,GAAU,EAAS,CACxB,EAEI,EAAY,EAAY,OAC5B,GAAI,EAAY,EAAG,CAClB,IAAI,MAAc,EAAE,GAAa,EAAG,EACpC,IAAK,IAAI,KAAc,EACtB,EAAW,IAAI,CAAK,CAEtB,MACC,EAAG,CAEL,CAOA,SAAS,GAAe,EAAQ,EAAa,EAAO,CAC9C,OAAO,QACZ,GAAO,GAAK,GAEZ,IAAI,EAAI,EAAO,OAAS,EAAO,MAAM,EAErC,GAAI,IAAM,SACJ,IAAM,KAAc,GACpB,EAAW,WAAa,IAC3B,EAAY,KAAK,CAAU,EAO9B,IAFA,IAAI,EAAQ,EAAO,MAEZ,IAAU,MAAM,CACtB,IAAI,EAAU,EAAM,KAIpB,KAAK,EAAM,MAAwB,CAClC,IAAI,GACF,EAAM,UAA4B,IAIjC,EAAM,OAAuB,IAAM,EAAO,OAAsB,EAInE,GAAe,EAAO,EAAa,EAAc,EAAQ,EAAK,CAC/D,CAEA,EAAQ,CACT,CAjCY,CAkCb,CAOA,SAAgB,GAAc,EAAQ,CACrC,GAAgB,EAAQ,EAAI,CAC7B,CAMA,SAAS,GAAgB,EAAQ,EAAO,CAClC,KAAO,OAOZ,CANA,EAAO,GAAK,GAMP,EAAO,SACX,GAAkB,EAAQ,EAAK,EAC/B,GAAM,OAAO,EAAE,SAAS,CAAM,GAK/B,IAFA,IAAI,EAAQ,EAAO,MAEZ,IAAU,MAAM,CACtB,IAAI,EAAU,EAAM,KAChB,GAAe,EAAM,UAA4B,IAAM,EAAM,OAAuB,EAIxF,GAAgB,EAAO,EAAc,EAAQ,EAAK,EAClD,EAAQ,CACT,CAEA,IAAI,EAAI,EAAO,OAAS,EAAO,MAAM,EAErC,GAAI,IAAM,SACJ,IAAM,KAAc,GACpB,EAAW,WAAa,IAC3B,EAAW,GAAG,CAnBjB,CAuBD,CAUA,SAAgB,GAAY,EAAQ,EAAU,CACxC,KAAO,MAMZ,IAHA,IAAI,EAAO,EAAO,MAAM,MACpB,EAAM,EAAO,MAAM,IAEhB,IAAS,MAAM,CAErB,IAAI,EAAO,IAAS,EAAM,KAAO,GAAiB,CAAI,EAEtD,EAAS,OAAO,CAAI,EACpB,EAAO,CACR,CACD,CC3tBA,IAAW,IAAmB,KCsD1B,GAAqB,GAEd,GAAuB,GAGlC,SAAgB,GAAyB,EAAO,CAC/C,GAAuB,CACxB,CAGA,IAAW,GAAkB,KAElB,GAAa,GAGxB,SAAgB,GAAoB,EAAU,CAC7C,GAAkB,CACnB,CAGA,IAAW,GAAgB,KAG3B,SAAgB,GAAkB,EAAQ,CACzC,GAAgB,CACjB,CAOA,IAAW,GAAkB,KAG7B,SAAgB,GAAoB,EAAO,CACtC,KAAoB,OAAS,CAAC,GAAoB,GAAgB,OACjE,KAAoB,KACvB,GAAkB,CAAC,CAAK,EAExB,GAAgB,KAAK,CAAK,EAG7B,CAQA,IAAW,GAAW,KAEX,GAAe,EAOf,GAAmB,KAG9B,SAAgB,IAAqB,EAAO,CAC3C,GAAmB,CACpB,CAMA,IAAW,GAAgB,EAGvB,GAAe,EAER,GAAiB,GAG5B,SAAgB,GAAmB,EAAO,CACzC,GAAiB,CAClB,CAEA,SAAgB,IAA0B,CACzC,MAAO,EAAE,EACV,CAQA,SAAgB,GAAS,EAAU,CAClC,IAAI,EAAQ,EAAS,EAErB,GAAK,OACJ,MAAO,GAOR,GAJI,MACH,EAAS,GAAK,CAAC,IAGX,OAA4B,CAIhC,IAAK,IAHD,EAAuC,EAAS,KAChD,EAAS,EAAa,OAEjB,EAAI,EAAG,EAAI,EAAQ,IAAK,CAChC,IAAI,EAAa,EAAa,GAM9B,GAJI,GAAiC,CAAW,GAC/C,GAAuC,CAAW,EAG/C,EAAW,GAAK,EAAS,GAC5B,MAAO,EAET,CAGE,OAGD,KAAiB,MAEjB,GAAkB,EAAU,EAAK,CAEnC,CAEA,MAAO,EACR,CAOA,SAAS,GAA2C,EAAQ,EAAQ,EAAO,GAAM,CAChF,IAAI,EAAY,EAAO,UACnB,OAAc,MAEd,GAAC,GAAmB,KAAoB,MAAQ,EAAS,KAAK,GAAiB,CAAM,GAIzF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAI,EAAW,EAAU,GAEpB,EAAS,IACb,GAAmE,EAAW,EAAQ,EAAK,EACjF,IAAW,IACjB,EACH,GAAkB,EAAU,EAAK,EACtB,EAAS,QACpB,GAAkB,EAAU,EAAW,EAExC,GAAuC,CAAS,EAElD,CACD,CAGA,SAAgB,GAAgB,EAAU,CACzC,IAAI,EAAgB,GAChB,EAAwB,GACxB,EAA4B,GAC5B,EAAoB,GACpB,EAAmB,GACnB,EAA6B,GAC7B,EAAsB,GACtB,EAA0B,GAE1B,EAAQ,EAAS,EAErB,GAA0C,KAC1C,GAAe,EACf,GAAmB,KACnB,GAAmB,KAA0D,KAAX,EAElE,GAAkB,KAClB,GAAsB,EAAS,GAAG,EAClC,GAAa,GACb,GAAiB,EAAE,GAEf,EAAS,KAAO,OACnB,OAA+B,CACC,EAAU,GAAI,MAAM,EAAc,CAClE,CAAC,EAED,EAAS,GAAK,MAGf,GAAI,CACH,EAAS,GAAK,GACd,IAAI,EAA8B,EAAS,GACvC,EAAS,EAAG,EAChB,EAAS,GAAK,GACd,IAAI,EAAO,EAAS,KAIhB,EAAU,IAAe,QAE7B,GAAI,KAAa,KAAM,CACtB,IAAI,EAMJ,GAJK,GACJ,GAAiB,EAAU,EAAY,EAGpC,IAAS,MAAQ,GAAe,EAEnC,IADA,EAAK,OAAS,GAAe,GAAS,OACjC,EAAI,EAAG,EAAI,GAAS,OAAQ,IAChC,EAAK,GAAe,GAAK,GAAS,QAGnC,EAAS,KAAO,EAAO,GAGxB,GAAI,GAAgB,GAAM,EAAS,MAClC,IAAK,EAAI,GAAc,EAAI,EAAK,OAAQ,KACtC,EAAK,GAAG,YAAc,CAAC,GAAG,KAAK,CAAQ,CAG3C,MAAW,CAAC,GAAW,IAAS,MAAQ,GAAe,EAAK,SAC3D,GAAiB,EAAU,EAAY,EACvC,EAAK,OAAS,IAMf,GACC,GAAS,GACT,KAAqB,MACrB,CAAC,IACD,IAAS,QACR,EAAS,QAEV,IAAK,EAAI,EAAG,EAA6B,GAAkB,OAAQ,IAClE,GACC,GAAiB,GACM,CACxB,EAQF,GAAI,IAAsB,MAAQ,IAAsB,EAAU,CAKjE,GAJA,KAII,EAAkB,OAAS,KAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAuB,GAAK,EAC/C,EAAkB,KAAK,GAAG,GAAK,GAIjC,GAAI,IAAkB,KACrB,IAAK,IAAM,KAAO,EACjB,EAAI,GAAK,GAIP,KAAqB,OACpB,IAA8B,KACjC,EAA4B,GAE5B,EAA0B,KAAK,GAA4B,EAAiB,EAG/E,CAMA,OAJK,EAAS,YACb,EAAS,GAAK,IAGR,CACR,OAAS,EAAO,CACf,OAAO,GAAa,CAAK,CAC1B,QAAU,CACT,EAAS,GAAK,GACd,GAAW,EACX,GAAe,EACf,GAAmB,EACnB,GAAkB,EAClB,GAAkB,EAClB,GAAsB,CAA0B,EAChD,GAAa,EACb,GAAiB,CAClB,CACD,CAQA,SAAS,IAAgB,EAAQ,EAAY,CAC5C,IAAI,EAAY,EAAW,UAC3B,GAAI,IAAc,KAAM,CACvB,IAAI,EAAQ,EAAS,KAAK,EAAW,CAAM,EAC3C,GAAI,IAAU,GAAI,CACjB,IAAI,EAAa,EAAU,OAAS,EAChC,IAAe,EAClB,EAAY,EAAW,UAAY,MAGnC,EAAU,GAAS,EAAU,GAC7B,EAAU,IAAI,EAEhB,CACD,CAIA,GACC,IAAc,MACb,EAAW,MAIX,KAAa,MAAQ,CAAC,EAAS,KAAK,GAAU,CAAU,GACxD,CACD,IAAI,EAAkC,EAIjC,EAAQ,QACZ,EAAQ,OACR,EAAQ,GAAK,CAAC,IAQX,EAAQ,IAAM,GACjB,GAAsB,CAAO,EAI9B,IAAuB,CAAO,EAG9B,GAAiB,EAAS,CAAC,CAC5B,CACD,CAOA,SAAgB,GAAiB,EAAQ,EAAa,CACrD,IAAI,EAAe,EAAO,KACtB,OAAiB,KAErB,IAAK,IAAI,EAAI,EAAa,EAAI,EAAa,OAAQ,IAClD,IAAgB,EAAQ,EAAa,EAAE,CAEzC,CAMA,SAAgB,GAAc,EAAQ,CACrC,IAAI,EAAQ,EAAO,EAEd,cAIL,IAAkB,EAAQ,EAAK,EAE/B,IAAI,EAAkB,GAClB,EAAsB,GAK1B,GAHA,GAAgB,EAChB,GAAqB,GAEjBA,EAAK,CACR,IAAI,EAAwB,GAC5B,GAAmC,EAAO,kBAAkB,EAC5D,IAAI,EAAqC,GAEzC,GAAc,EAAO,WAAa,EAAS,CAC5C,CAEA,GAAI,CACE,WACJ,IAA8B,CAAM,EAEpC,GAAwB,CAAM,EAG/B,GAAwB,CAAM,EAC9B,IAAI,EAAW,GAAgB,CAAM,EAMrC,GALA,EAAO,SAAW,OAAO,GAAa,WAAa,EAAW,KAC9D,EAAO,GAAK,GAIRA,GAAO,GAAsB,EAAO,QAAoB,EAAO,OAAS,SACtE,IAAI,KAAO,EAAO,KACtB,CAEC,CAAI,qBADJ,EAAI,GAAK,GAAwB,EACT,GAI5B,QAAU,CACT,GAAqB,EACrB,GAAgB,EAEZA,IACH,GAAmC,CAAqB,EACxD,GAAc,CAAc,EAE9B,CA9C+B,CA+ChC,CAMA,eAAsB,IAAO,CAC5B,GAAI,EACH,OAAO,IAAI,QAAS,GAAM,CAIzB,0BAA4B,EAAE,CAAC,EAC/B,eAAiB,EAAE,CAAC,CACrB,CAAC,EAGF,MAAM,QAAQ,QAAQ,EAItB,GAAU,CACX,CAiBA,SAAgB,EAAI,EAAQ,CAE3B,IAAI,GADQ,EAAO,MACoB,EAKvC,GAHA,KAAkB,IAAI,CAAM,EAGxB,KAAoB,MAAQ,CAAC,IAM5B,EAFY,KAAkB,MAAS,GAAc,WAEtC,KAAoB,MAAQ,CAAC,EAAS,KAAK,GAAiB,CAAM,GAAI,CACxF,IAAI,EAAO,GAAgB,KAE3B,GAAK,GAAgB,UAEhB,EAAO,GAAK,KACf,EAAO,GAAK,GAKR,KAAa,MAAQ,IAAS,MAAQ,EAAK,MAAkB,EAChE,KACU,KAAa,KACvB,GAAW,CAAC,CAAM,EAElB,GAAS,KAAK,CAAM,OAGhB,EAGL,GAAgB,OAAS,CAAC,GAAG,KAAK,CAAM,EAEzC,IAAI,EAAY,EAAO,UAEnB,IAAc,KACjB,EAAO,UAAY,CAAC,EAAe,EACxB,EAAS,KAAK,EAAW,EAAe,GACnD,EAAU,KAAK,EAAe,CAEhC,CACD,CAGD,GAAIA,EAAK,CACR,GACC,CAAC,IACD,IACA,CAAC,GAAwB,UACxB,GAAwB,OAAO,YAChC,CAAC,GAAwB,YAAY,IAAI,CAAM,EAC9C,CACD,GAAwB,OAAS,GAEjC,GAA+C,EAAO,KAAM,EAE5D,IAAI,EAAQ,GAAU,WAAW,EAE7B,GAAO,QAAQ,KAAK,CAAK,CAC9B,CAIA,GAFA,GAAsB,OAAO,CAAM,EAGlC,GACA,CAAC,IACD,KAAwB,MACxB,KAAoB,MACpB,GAAoB,WAAa,GAGjC,IAAI,EAAO,MACV,EAAO,MAAM,OAIb,GAFA,EAAQ,GAAU,WAAW,EAEzB,EAAO,CACV,IAAI,EAAQ,GAAoB,QAAQ,IAAI,CAAM,EAE9C,IAAU,SACb,EAAQ,CAAE,OAAQ,CAAC,CAAE,EACrB,GAAoB,QAAQ,IAAI,EAAQ,CAAK,GAG9C,IAAI,EAAO,EAAM,OAAO,EAAM,OAAO,OAAS,GAI1C,EAAM,QAAU,GAAM,OACzB,EAAM,OAAO,KAAK,CAAK,CAEzB,CACD,CAEF,CAEA,GAAI,IAAwB,GAAW,IAAI,CAAM,EAChD,OAAO,GAAW,IAAI,CAAM,EAG7B,GAAI,EAAY,CACf,IAAI,EAAkC,EAEtC,GAAI,GAAsB,CACzB,IAAI,EAAQ,EAAQ,EAapB,OATA,EACG,EAAQ,SAAoB,EAAQ,YAAc,MACpD,GAAsB,CAAO,KAE7B,EAAQ,GAAgB,CAAO,GAGhC,GAAW,IAAI,EAAS,CAAK,EAEtB,CACR,CAIA,IAAI,GACF,EAAQ,QAAmB,GAC5B,CAAC,IACD,KAAoB,OACnB,KAAuB,GAAgB,QAAmB,GAExD,GAAU,EAAQ,EAAI,MAAkB,EAExC,GAAS,CAAO,IACf,IAGH,EAAQ,QAGT,GAAe,CAAO,GAGnB,GAAkB,CAAC,IACtB,GAAyB,CAAO,EAChC,GAAU,CAAO,EAEnB,CAEA,GAAI,IAAc,IAAI,CAAM,EAC3B,OAAO,GAAa,IAAI,CAAM,EAG/B,GAAK,EAAO,UACX,MAAM,EAAO,EAGd,OAAO,EAAO,CACf,CAOA,SAAS,GAAU,EAAS,CAC3B,KAAQ,OAEJ,EAAQ,OAAS,KAErB,IAAK,IAAM,KAAO,EAAQ,MACxB,EAAI,YAAc,CAAC,GAAG,KAAK,CAAO,EAE9B,EAAI,KAAiB,EAAM,EAAI,SACnC,GAAiD,CAAI,EACrD,GAAkC,CAAI,EAGzC,CAGA,SAAS,GAAsB,EAAS,CACvC,GAAI,EAAQ,IAAM,EAAe,MAAO,GACxC,GAAI,EAAQ,OAAS,KAAM,MAAO,GAElC,IAAK,IAAM,KAAO,EAAQ,KAKzB,GAJI,GAAW,IAAI,CAAG,GAIjB,EAAI,KAAsB,GAA8C,CAAI,EAChF,MAAO,GAIT,MAAO,EACR,CA4BA,SAAgB,GAAQ,EAAI,CAC3B,IAAI,EAAsB,GAC1B,GAAI,CAEH,MADA,IAAa,GACN,EAAG,CACX,QAAU,CACT,GAAa,CACd,CACD,CAQA,SAAgB,GAAgB,EAAO,CAClC,YAAO,GAAU,UAAY,CAAC,GAAS,aAAiB,aAI5D,IAAI,MAAgB,EACnB,GAAU,CAAK,OACT,GAAI,CAAC,MAAM,QAAQ,CAAK,EAC9B,IAAK,IAAI,KAAO,EAAO,CACtB,IAAM,EAAO,EAAM,GACf,OAAO,GAAS,UAAY,GAAQ,MAAgB,GACvD,GAAU,CAAI,CAEhB,EAEF,CASA,SAAgB,GAAU,EAAO,EAAU,IAAI,IAAO,CACrD,GACC,OAAO,GAAU,UACjB,GAEA,EAAE,aAAiB,cACnB,CAAC,EAAQ,IAAI,CAAK,EACjB,CACD,EAAQ,IAAI,CAAK,EAGb,aAAiB,MACpB,EAAM,QAAQ,EAEf,IAAK,IAAI,KAAO,EACf,GAAI,CACH,GAAU,EAAM,GAAM,CAAO,CAC9B,MAAY,CAEZ,CAED,IAAM,EAAQ,GAAiB,CAAK,EACpC,GACC,IAAU,OAAO,WACjB,IAAU,MAAM,WAChB,IAAU,IAAI,WACd,IAAU,IAAI,WACd,IAAU,KAAK,UACd,CACD,IAAM,EAAc,EAAgB,CAAK,EACzC,IAAK,IAAI,KAAO,EAAa,CAC5B,IAAM,EAAM,EAAY,GAAK,IAC7B,GAAI,EACH,GAAI,CACH,EAAI,KAAK,CAAK,CACf,MAAY,CAEZ,CAEF,CACD,CACD,CACD,CClzBA,IAAa,GAAe,OAAO,QAAQ,EAG9B,GAAwB,IAAI,IAG5B,GAAqB,IAAI,IA+BtC,SAAgBgE,GAAa,EAAY,EAAK,EAAS,EAAU,CAAC,EAAG,CAIpE,SAAS,EAAoC,EAAO,CAKnD,GAJK,EAAQ,SAEZ,GAAyB,KAAK,EAAK,CAAK,EAErC,CAAC,EAAM,aACV,OAAOF,OACC,GAAS,KAAK,KAAM,CAAK,CAChC,CAEH,CAkBA,OAXC,EAAW,WAAW,SAAS,GAC/B,EAAW,WAAW,OAAO,GAC7B,IAAe,QAEf,OAAuB,CACtB,EAAI,iBAAiB,EAAY,EAAgB,CAAO,CACzD,CAAC,EAED,EAAI,iBAAiB,EAAY,EAAgB,CAAO,EAGlD,CACR,CA4BA,SAAgB,GAAM,EAAY,EAAK,EAAS,EAAS,EAAS,CACjE,IAAI,EAAU,CAAE,UAAS,SAAQ,EAC7B,EAAiBE,GAAa,EAAY,EAAK,EAAS,CAAO,GAGlE,IAAQ,SAAS,MAEjB,IAAQ,QAER,IAAQ,UAER,aAAe,mBAEf,OAAe,CACd,EAAI,oBAAoB,EAAY,EAAgB,CAAO,CAC5D,CAAC,CAEH,CAQA,SAAgB,EAAU,EAAY,EAAS,EAAS,CAEvD,CAAC,EAAQ,MAAkB,CAAC,GAAG,GAAc,CAC9C,CAMA,SAAgB,GAAS,EAAQ,CAChC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAClC,GAAsB,IAAI,EAAO,EAAE,EAGpC,IAAK,IAAI,KAAM,GACd,EAAG,CAAM,CAEX,CAOA,IAAIC,GAAwB,KAO5B,SAAgBC,GAAyB,EAAO,CAC/C,IAAI,EAAkB,KAClB,EAAsC,EAAiB,cACvD,EAAa,EAAM,KACnB,EAAO,EAAM,eAAe,GAAK,CAAC,EAClC,EAAgD,EAAK,IAAM,EAAM,OAErE,GAAwB,EAMxB,IAAI,EAAW,EAMX,EAAaD,KAA0B,GAAS,EAAM,IAE1D,GAAI,EAAY,CACf,IAAI,EAAS,EAAK,QAAQ,CAAU,EACpC,GACC,IAAW,KACV,IAAoB,UAAY,IAAwC,QACxE,CAKD,EAAM,IAAgB,EACtB,MACD,CAOA,IAAI,EAAc,EAAK,QAAQ,CAAe,EAC9C,GAAI,IAAgB,GAGnB,OAGG,GAAU,IACb,EAAW,EAEb,CAEA,KAAyC,EAAK,IAAa,EAAM,OAI7D,IAAmB,EAGvB,GAAgB,EAAO,gBAAiB,CACvC,aAAc,GACd,KAAM,CACL,OAAO,GAAkB,CAC1B,CACD,CAAC,EAOD,IAAI,EAAoB,GACpB,EAAkB,GACtB,GAAoB,IAAI,EACxB,GAAkB,IAAI,EAEtB,GAAI,CAUH,IANA,IAAI,EAIA,EAAe,CAAC,EAEb,IAAmB,MAAM,CAE/B,IAAI,EACH,EAAe,cACf,EAAe,YACK,EAAgB,MACpC,KAED,GAAI,CAEH,IAAI,EAAY,EAAe,MAAgB,GAG9C,GAAa,OACZ,CAAsB,EAAgB,UAGtC,EAAM,SAAW,IAElB,EAAU,KAAK,EAAgB,CAAK,CAEtC,OAAS,EAAO,CACX,EACH,EAAa,KAAK,CAAK,EAEvB,EAAc,CAEhB,CACA,GAAI,EAAM,cAAgB,IAAmB,GAAmB,IAAmB,KAClF,MAED,EAAiB,CAClB,CAEA,GAAI,EAAa,CAChB,IAAK,IAAI,KAAS,EAEjB,mBAAqB,CACpB,MAAM,CACP,CAAC,EAEF,MAAM,CACP,CACD,QAAU,CAET,EAAM,IAAgB,EAEtB,OAAO,EAAM,cACb,GAAoB,CAAiB,EACrC,GAAkB,CAAe,CAClC,CAxEC,CAyEF,CCnTA,IAAM,IAEL,YAAY,QAAQ,cACJ,WAAW,OAAO,aAAa,aAAa,sBAAuB,CAElF,WAAa,GACL,CAET,CAAC,EAGF,SAAgB,IAAoB,EAAM,CACzC,OAA8B,KAAQ,WAAW,CAAI,GAAK,CAC3D,CAKA,SAAgB,GAA0B,EAAM,CAC/C,IAAI,EAAO,GAAe,UAAU,EAEpC,MADA,GAAK,UAAY,IAAoB,EAAK,WAAW,MAAO,SAAS,CAAC,EAC/D,EAAK,OACb,CCeA,SAAgB,GAAa,EAAO,EAAK,CACxC,IAAI,EAAgC,GAChC,EAAO,QAAU,OACpB,EAAO,MAAQ,CAAE,QAAO,MAAK,EAAG,KAAM,EAAG,IAAK,EAEhD,CAQA,SAAgB,EAAU,EAAS,EAAO,CACzC,IAAI,GAAe,MAA+B,EAC9C,GAAmB,MAAsC,EAGzD,EAMA,EAAY,CAAC,EAAQ,WAAW,KAAK,EAEzC,UAAa,CACZ,GAAI,GAEH,OADA,GAAa,GAAc,IAAI,EACxB,GAGJ,IAAS,SACZ,EAAO,GAA0B,EAAY,EAAU,MAAQ,CAAO,EACjE,IAAa,EAAoC,GAAgB,CAAI,IAG3E,IAAI,EACH,GAAmB,GAAa,SAAS,WAAW,EAAM,EAAI,EAAI,EAAK,UAAU,EAAI,EAGtF,GAAI,EAAa,CAChB,IAAI,EAAqC,GAAgB,CAAK,EAC1D,EAAmC,EAAM,UAE7C,GAAa,EAAO,CAAG,CACxB,MACC,GAAa,EAAO,CAAK,EAG1B,OAAO,CACR,CACD,CASA,SAAS,IAAe,EAAS,EAAO,EAAK,MAAO,CAKnD,IAAI,EAAY,CAAC,EAAQ,WAAW,KAAK,EAErC,GAAe,MAA+B,EAC9C,EAAU,IAAI,EAAG,GAAG,EAAY,EAAU,MAAQ,EAAQ,IAAI,EAAG,GAGjE,EAEJ,UAAa,CACZ,GAAI,GAEH,OADA,GAAa,GAAc,IAAI,EACxB,GAGR,GAAI,CAAC,EAAM,CAEV,IAAI,EAA+B,GADa,GAA0B,CAChB,CAAC,EAE3D,GAAI,EAEH,IADA,EAAO,SAAS,uBAAuB,EAChC,GAAgB,CAAI,GAC1B,EAAK,YAAyC,GAAgB,CAAI,CAAE,OAGrE,EAA+B,GAAgB,CAAI,CAErD,CAEA,IAAI,EAAqC,EAAK,UAAU,EAAI,EAE5D,GAAI,EAAa,CAChB,IAAI,EAAqC,GAAgB,CAAK,EAC1D,EAAmC,EAAM,UAE7C,GAAa,EAAO,CAAG,CACxB,MACC,GAAa,EAAO,CAAK,EAG1B,OAAO,CACR,CACD,CAOA,SAAgB,GAAS,EAAS,EAAO,CACxC,OAAO,IAAe,EAAS,EAAO,KAAK,CAC5C,CA2JA,SAAgBE,GAAK,EAAQ,GAAI,CAChC,GAAI,CAAC,GAAW,CACf,IAAI,EAAI,GAAY,EAAQ,EAAE,EAE9B,OADA,GAAa,EAAG,CAAC,EACV,CACR,CAEA,IAAI,EAAO,GAWX,OATI,EAAK,aAKR,GAAsC,CAAK,GAH3C,EAAK,OAAQ,EAAO,GAAY,CAAE,EAClC,GAAiB,CAAI,GAKtB,GAAa,EAAM,CAAI,EAChB,CACR,CAKA,SAAgB,GAAU,CAEzB,GAAI,GAEH,OADA,GAAa,GAAc,IAAI,EACxB,GAGR,IAAI,EAAO,SAAS,uBAAuB,EACvC,EAAQ,SAAS,cAAc,EAAE,EACjC,EAAS,GAAY,EAKzB,OAJA,EAAK,OAAO,EAAO,CAAM,EAEzB,GAAa,EAAO,CAAM,EAEnB,CACR,CAQA,SAAgB,EAAO,EAAQ,EAAK,CACnC,GAAI,GAAW,CACd,IAAI,EAAyD,IAK7D,EAAK,EAAO,UAA2B,EAAO,MAAM,MAAQ,QAC3D,EAAO,MAAM,IAAM,IAGpB,GAAa,EACb,MACD,CAEI,IAAW,MAKf,EAAO,OAA4B,CAAI,CACxC,CAKA,SAAgB,IAAW,CAC1B,GACC,IACA,IACA,GAAa,cACb,GAAa,aAAa,WAAW,GAAG,EACvC,CACD,IAAM,EAAK,GAAa,YAAY,UAAU,CAAC,EAE/C,OADA,GAAa,EACN,CACR,CAMA,MAHA,CAAC,OAAO,WAAa,CAAC,GAAG,MAAQ,EAG1B,IAAI,OAAO,SAAS,OAC5B,CChZA,IAAM,IAA0B,MAMhC,SAAgB,IAAK,EAAK,CACzB,EAAM,EAAI,QAAQ,IAAyB,EAAE,EAC7C,IAAI,EAAO,KACP,EAAI,EAAI,OAEZ,KAAO,KAAK,GAAS,GAAQ,GAAK,EAAQ,EAAI,WAAW,CAAC,EAC1D,OAAQ,IAAS,GAAG,SAAS,EAAE,CAChC,CA2FA,SAAgB,IAAiB,EAAM,CACtC,OAAO,EAAK,SAAS,SAAS,GAAK,IAAS,qBAAuB,IAAS,oBAC7E,CAGA,IAAM,IAAmB,CACxB,cACA,QACA,SACA,WACA,cACA,UACA,WACA,QACA,UACA,QACA,YACA,YACA,WACA,YACA,UACA,cACA,cACA,aACA,cACA,YACA,WACA,YACA,YACD,EAMA,SAAgB,IAAmB,EAAY,CAC9C,OAAO,IAAiB,SAAS,CAAU,CAC5C,CAKA,IAAM,IAAyB,ySA6B/B,EAgBM,IAAoB,CAEzB,eAAgB,iBAChB,MAAO,QACP,SAAU,WACV,YAAa,cACb,SAAU,WACV,aAAc,eACd,eAAgB,iBAChB,UAAW,YACX,WAAY,aACZ,gBAAiB,kBACjB,wBAAyB,0BACzB,sBAAuB,uBACxB,EAKA,SAAgB,IAAoB,EAAM,CAEzC,MADA,GAAO,EAAK,YAAY,EACjB,IAAkB,IAAS,CACnC,CAEuB,CACtB,GAAG,GAeJ,EA6BA,IAAM,GAAiB,CAAC,aAAc,WAAW,EAMjD,SAAgB,GAAiB,EAAM,CACtC,OAAO,GAAe,SAAS,CAAI,CACpC,CA+MA,IAAM,GAA0C,CAAC,WAAY,SAAU,QAAS,OAAO,EAGvF,SAAgB,GAAoB,EAAM,CACzC,OAAO,GAAkB,SAA0D,CAAK,CACzF,CAqBA,SAAgB,GAAkB,EAAU,CAC3C,OAAyB,GAAU,QAAQ,MAAO,IAAS,CAC5D,CCtdA,IAAW,GAAe,GAG1B,SAAgB,GAAiB,EAAO,CACvC,GAAe,CAChB,CAOA,SAAgB,EAAS,EAAM,EAAO,CAErC,IAAI,EAAM,GAAS,KAAO,GAAK,OAAO,GAAU,SAAW,GAAG,IAAU,EAEpE,KAA4B,EAAO,MAAgB,EAAK,aACxC,EAAO,IAAc,EACxC,EAAK,UAAY,GAAG,IAEtB,CAYA,SAAgB,GAAM,EAAW,EAAS,CACzC,OAAO,GAAO,EAAW,CAAO,CACjC,CA2BA,SAAgB,IAAQ,EAAW,EAAS,CAC3C,GAAgB,EAChB,EAAQ,MAAQ,EAAQ,OAAS,GACjC,IAAM,EAAS,EAAQ,OACjB,EAAgB,GAChB,EAAwB,GAE9B,GAAI,CAGH,IAFA,IAAI,EAAS,GAAgB,CAAM,EAGlC,IACC,EAAO,cAAqD,EAAQ,aAErE,EAAS,GAAiB,CAAM,EAGjC,GAAI,CAAC,EACJ,MAAM,EAGP,GAAc,EAAI,EAClB,GAAyC,CAAO,EAEhD,IAAM,EAAW,GAAO,EAAW,CAAE,GAAG,EAAS,QAAO,CAAC,EAIzD,OAFA,GAAc,EAAK,EAEa,CACjC,OAAS,EAAO,CAEf,GACC,aAAiB,OACjB,EAAM,QAAQ,MAAM;CAAI,EAAE,KAAM,GAAS,EAAK,WAAW,uBAAuB,CAAC,EAEjF,MAAM,EAgBP,OAdI,IAAU,GAEb,QAAQ,KAAK,sBAAuB,CAAK,EAGtC,EAAQ,UAAY,IACvB,GAAmB,EAIpB,GAAgB,EAChB,GAAmB,CAAM,EAEzB,GAAc,EAAK,EACZ,GAAM,EAAW,CAAO,CAChC,QAAU,CACT,GAAc,CAAa,EAC3B,GAAiB,CAAqB,CACvC,CACD,CAGA,IAAM,GAAY,IAAI,IAQtB,SAAS,GACR,EACA,CAAE,SAAQ,SAAQ,QAAQ,CAAC,EAAG,SAAQ,UAAS,QAAQ,GAAM,kBAC5D,CACD,GAAgB,EAIhB,IAAI,EAAY,OAEZ,EAAU,QAAqB,CAClC,IAAI,EAAc,GAAU,EAAO,YAAY,GAAY,CAAC,EAE5D,GAC8B,EAC7B,CACC,YAAe,CAAC,CACjB,EACC,GAAgB,CAChB,EAAK,CAAC,CAAC,EACP,IAAI,EAAuC,GAiB3C,GAhBI,IAAS,EAAI,EAAI,GAEjB,IAEgB,EAAQ,SAAW,GAGnC,IACH,GAA0C,EAAc,IAAI,EAG7D,GAAe,EAEf,EAAY,EAAU,EAAa,CAAK,GAAK,CAAC,EAC9C,GAAe,GAEX,KAC4C,GAAgB,MAAM,IAAM,GAG1E,KAAiB,MACjB,GAAa,cACW,GAAc,YAGtC,MADA,GAAqB,EACf,EAIR,EAAI,CACL,EACA,CACD,EAIA,IAAI,EAAoB,IAAI,IAGxB,EAAgB,GAAW,CAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACvC,IAAI,EAAa,EAAO,GAEpB,MAAkB,IAAI,CAAU,EACpC,GAAkB,IAAI,CAAU,EAEhC,IAAI,EAAU,GAAiB,CAAU,EAQzC,IAAK,IAAM,IAAQ,CAAC,EAAQ,QAAQ,EAAG,CACtC,IAAI,EAAS,GAAU,IAAI,CAAI,EAE3B,IAAW,SACd,EAAS,IAAI,IACb,GAAU,IAAI,EAAM,CAAM,GAG3B,IAAI,EAAQ,EAAO,IAAI,CAAU,EAE7B,IAAU,QACb,EAAK,iBAAiB,EAAYD,GAA0B,CAAE,SAAQ,CAAC,EACvE,EAAO,IAAI,EAAY,CAAC,GAExB,EAAO,IAAI,EAAY,EAAQ,CAAC,CAElC,CA1BgC,CA2BjC,CACD,EAKA,OAHA,EAAa,EAAW,EAAqB,CAAC,EAC9C,GAAmB,IAAI,CAAY,MAEtB,CACZ,IAAK,IAAI,KAAc,EACtB,IAAK,IAAM,IAAQ,CAAC,EAAQ,QAAQ,EAAG,CACtC,IAAI,EAA6C,GAAU,IAAI,CAAI,EAC/D,EAA+B,EAAO,IAAI,CAAU,EAEpD,EAAE,GAAS,GACd,EAAK,oBAAoB,EAAYA,EAAwB,EAC7D,EAAO,OAAO,CAAU,EAEpB,EAAO,OAAS,GACnB,GAAU,OAAO,CAAI,GAGtB,EAAO,IAAI,EAAY,CAAK,CAE9B,CAGD,GAAmB,OAAO,CAAY,EAElC,IAAgB,GACnB,EAAY,YAAY,YAAY,CAAW,CAEjD,CACD,CAAC,EAGD,OADA,GAAmB,IAAI,EAAW,CAAO,EAClC,CACR,CAMA,IAAI,GAAqB,IAAI,QAsB7B,SAAgB,IAAQ,EAAW,EAAS,CAC3C,IAAM,EAAK,GAAmB,IAAI,CAAS,EAe3C,OAbI,GACH,GAAmB,OAAO,CAAS,EAC5B,EAAG,CAAO,IAGdlE,IACC,MAAgB,EACnB,GAAsB,EAEtB,GAA2B,GAItB,QAAQ,QAAQ,EACxB,CCxTA,IAAa,GAAb,KAA2B,CAE1B,OAGA,GAAW,IAAI,IAgBf,GAAY,IAAI,IAOhB,GAAa,IAAI,IAMjB,GAAY,IAAI,IAMhB,GAAc,GAMd,YAAY,EAAQ,EAAa,GAAM,CACtC,KAAK,OAAS,EACd,KAAKoE,GAAc,CACpB,CAKA,GAAW,GAAU,CAEf,QAAKC,GAAS,IAAI,CAAK,EAE5B,KAAI,EAA0B,KAAKA,GAAS,IAAI,CAAK,EAEjD,EAAW,KAAKC,GAAU,IAAI,CAAG,EAErC,GAAI,EAEH,GAAc,CAAQ,EACtB,KAAKC,GAAU,OAAO,CAAG,MACnB,CAEN,IAAI,EAAY,KAAKC,GAAW,IAAI,CAAG,EAEnC,IACH,KAAKF,GAAU,IAAI,EAAK,EAAU,MAAM,EACxC,KAAKE,GAAW,OAAO,CAAG,EAEtBxE,IAGgB,EAAW,SAAS,UAAW,IAAc,KAAK,QAI1C,EAAW,SAAS,UAAW,OAAO,EAGlE,KAAK,OAAO,OAAO,EAAU,QAAQ,EACrC,EAAW,EAAU,OAEvB,CAEA,IAAK,GAAM,CAAC,EAAG,KAAM,KAAKqE,GAAU,CAGnC,GAFA,KAAKA,GAAS,OAAO,CAAC,EAElB,IAAM,EAET,MAGD,IAAM,EAAY,KAAKG,GAAW,IAAI,CAAC,EAEnC,IAGH,GAAe,EAAU,MAAM,EAC/B,KAAKA,GAAW,OAAO,CAAC,EAE1B,CAGA,IAAK,GAAM,CAAC,EAAG,KAAW,KAAKF,GAAW,CAGzC,GAAI,IAAM,GAAO,KAAKC,GAAU,IAAI,CAAC,EAAG,SAExC,IAAM,MAAmB,CAGxB,GAFa,MAAM,KAAK,KAAKF,GAAS,OAAO,CAEtC,EAAE,SAAS,CAAC,EAAG,CAErB,IAAI,EAAW,SAAS,uBAAuB,EAC/C,GAAY,EAAQ,CAAQ,EAE5B,EAAS,OAAO,GAAY,CAAC,EAE7B,KAAKG,GAAW,IAAI,EAAG,CAAE,SAAQ,UAAS,CAAC,CAC5C,MACC,GAAe,CAAM,EAGtB,KAAKD,GAAU,OAAO,CAAC,EACvB,KAAKD,GAAU,OAAO,CAAC,CACxB,EAEI,KAAKF,IAAe,CAAC,GACxB,KAAKG,GAAU,IAAI,CAAC,EACpB,GAAa,EAAQ,EAAY,EAAK,GAEtC,EAAW,CAEb,CAhFqD,CAiFtD,EAKA,GAAY,GAAU,CACrB,KAAKF,GAAS,OAAO,CAAK,EAE1B,IAAM,EAAO,MAAM,KAAK,KAAKA,GAAS,OAAO,CAAC,EAE9C,IAAK,GAAM,CAAC,EAAG,KAAW,KAAKG,GACzB,EAAK,SAAS,CAAC,IACnB,GAAe,EAAO,MAAM,EAC5B,KAAKA,GAAW,OAAO,CAAC,EAG3B,EAOA,OAAO,EAAK,EAAI,CACf,IAAI,EAA8B,GAC9B,EAAQ,GAAoB,EAEhC,GAAI,GAAM,CAAC,KAAKF,GAAU,IAAI,CAAG,GAAK,CAAC,KAAKE,GAAW,IAAI,CAAG,EAC7D,GAAI,EAAO,CACV,IAAI,EAAW,SAAS,uBAAuB,EAC3C,EAAS,GAAY,EAEzB,EAAS,OAAO,CAAM,EAEtB,KAAKA,GAAW,IAAI,EAAK,CACxB,OAAQ,OAAa,EAAG,CAAM,CAAC,EAC/B,UACD,CAAC,CACF,MACC,KAAKF,GAAU,IACd,EACA,OAAa,EAAG,KAAK,MAAM,CAAC,CAC7B,EAMF,GAFA,KAAKD,GAAS,IAAI,EAAO,CAAG,EAExB,EAAO,CACV,IAAK,GAAM,CAAC,EAAG,KAAW,KAAKC,GAC1B,IAAM,EACT,EAAM,cAAc,CAAM,EAE1B,EAAM,YAAY,CAAM,EAI1B,IAAK,GAAM,CAAC,EAAG,KAAW,KAAKE,GAC1B,IAAM,EACT,EAAM,cAAc,EAAO,MAAM,EAEjC,EAAM,YAAY,EAAO,MAAM,EAIjC,EAAM,SAAS,KAAK3C,EAAO,EAC3B,EAAM,UAAU,KAAK4C,EAAQ,CAC9B,MACK,KACH,KAAK,OAAS,IAGf,KAAK5C,GAAQ,CAAK,CAEpB,CACD,ECjNA,SAAgB,GAAQ,EAAM,EAAa,GAAG,EAAM,CACnD,IAAI,EAAW,IAAI,GAAc,CAAI,EAErC,OAAY,CACX,IAAM,EAAU,EAAY,GAAK,KAE7B7B,GAAO,GAAW,MACrB,GAAkB,EAGnB,EAAS,OAAO,EAAS,IAAa,GAAW,EAAQ,EAAQ,GAAG,CAAI,EAAE,CAC3E,EAAG,EAAkB,CACtB,CC3BA,GAAIA,EAAK,CAIR,SAAS,EAAiB,EAAM,CAC/B,GAAI,EAAE,KAAQ,YAAa,CAG1B,IAAI,EACJ,OAAO,eAAe,WAAY,EAAM,CACvC,aAAc,GAEd,QAAW,CACV,GAAI,IAAU,OACb,OAAO,EAGR,GAAsB,CAAI,CAC3B,EACA,IAAM,GAAM,CACX,EAAQ,CACT,CACD,CAAC,CACF,CACD,CAEA,EAAiB,QAAQ,EACzB,EAAiB,SAAS,EAC1B,EAAiB,UAAU,EAC3B,EAAiB,UAAU,EAC3B,EAAiB,QAAQ,EACzB,EAAiB,WAAW,CAC7B,CA+CA,SAAgB,GAAQ,EAAI,CACvB,KAAsB,MACzB,GAA8B,SAAS,EAGpC,GAAoB,GAAkB,IAAM,KAC/C,GAAsB,EAAiB,EAAE,EAAE,KAAK,CAAE,EAElD,OAAkB,CACjB,IAAM,EAAU,GAAQ,CAAE,EAC1B,GAAI,OAAO,GAAY,WAAY,OAAkC,CACtE,CAAC,CAEH,CAWA,SAAgB,GAAU,EAAI,CACzB,KAAsB,MACzB,GAA8B,WAAW,EAG1C,WAAoB,GAAQ,CAAE,CAAC,CAChC,CASA,SAAS,IAAoB,EAAM,EAAQ,CAAE,UAAU,GAAO,aAAa,IAAU,CAAC,EAAG,CACxF,OAAO,IAAI,YAAY,EAAM,CAAE,SAAQ,UAAS,YAAW,CAAC,CAC7D,CAyBA,SAAgB,KAAwB,CACvC,IAAM,EAA2B,GASjC,OARI,IAA6B,MAChC,GAA8B,uBAAuB,GAO9C,EAAM,EAAQ,IAAY,CACjC,IAAM,EACL,EAAyB,EAAE,WACD,GAE3B,GAAI,EAAQ,CACX,IAAM,EAAYL,EAAS,CAAM,EAAI,EAAO,MAAM,EAAI,CAAC,CAAM,EAGvD,EAAQ,IAA2C,EAAO,EAAQ,CAAO,EAC/E,IAAK,IAAM,KAAM,EAChB,EAAG,KAAK,EAAyB,EAAG,CAAK,EAE1C,MAAO,CAAC,EAAM,gBACf,CAEA,MAAO,EACR,CACD,CAeA,SAAgB,IAAa,EAAI,CAC5B,KAAsB,MACzB,GAA8B,cAAc,EAGzC,GAAkB,IAAM,MAC3B,GAAwB,cAAc,EAGvC,GAAsB,EAAiB,EAAE,EAAE,KAAK,CAAE,CACnD,CA6BA,SAAS,GAAsB,EAAS,CACvC,IAAI,EAA2C,EAAS,EACxD,MAAQ,GAAE,IAAM,CAAE,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,EAAG,CAAC,CAAE,CACvC,CC/NA,IAAM,GAAU,EACV,GAAO,EACP,IAAQ,EAad,SAAgB,IAAY,EAAM,EAAW,EAAY,EAAS,EAAU,CACvE,IACH,GAAa,EAGd,IAAI,EAAQ,GAAS,EAEjB,EAAsB,EACtB,EAAQ,EAAQ,GAAO,CAAC,EAAI,GAAe,EAAG,GAAO,EAAK,EAC1D,EAAQ,EAAQ,GAAO,CAAC,EAAI,GAAe,EAAG,GAAO,EAAK,EAE1D,EAAW,IAAI,GAAc,CAAI,EAErC,OAAY,CACX,IAAI,EAA8B,GAIlC,EAAM,WAAW,EACjB,IAAI,EAAQ,EAAU,EACtB,EAAM,SAAS,EAEf,IAAI,EAAY,GAIhB,IAAI,EAAW,IAAa,GAAW,CAAK,KAAO,EAAK,aAQxD,GANI,IAEH,GAAiB,GAAW,CAAC,EAC7B,GAAc,EAAK,GAGhB,GAAW,CAAK,EAAG,CACtB,IAAI,EAAU,GAAQ,EAClB,EAAW,GAKf,IAAM,EAAW,GAAO,CACnB,MASJ,CAPA,EAAW,GAGX,EAAQ,EAAK,EAEb,GAAM,OAAO,EAET,IAGH,GAAc,EAAK,EAGpB,GAAI,CACH,EAAG,CACJ,QAAU,CACT,GAAc,EAAK,EAId,IAAkB,GAAU,CAClC,CAXoB,CAYrB,EAEA,EAAM,KACJ,GAAM,CACN,MAAc,CACb,GAAa,EAAO,CAAC,EACrB,EAAS,OAAO,GAAM,IAAa,GAAW,EAAQ,EAAQ,CAAK,EAAE,CACtE,CAAC,CACF,EACC,GAAM,CACN,MAAc,CAIb,GAHA,GAAa,EAAO,CAAC,EACrB,EAAS,OAAO,IAAO,IAAc,GAAW,EAAS,EAAQ,CAAK,EAAE,EAEpE,CAAC,EAEJ,MAAM,EAAM,CAEd,CAAC,CACF,CACD,EAEI,GACH,EAAS,OAAO,GAAS,CAAU,EAInC,OAAuB,CACjB,GACJ,MAAc,CACb,EAAS,OAAO,GAAS,CAAU,CACpC,CAAC,CAEH,CAAC,CAEH,MACC,GAAa,EAAO,CAAK,EACzB,EAAS,OAAO,GAAM,IAAa,GAAW,EAAQ,EAAQ,CAAK,EAAE,EAQtE,OALI,GAEH,GAAc,EAAI,MAGN,CACZ,EAAY,EACb,CACD,CAAC,CACF,CChIA,SAAgB,EAAS,EAAM,EAAI,EAAS,GAAO,CAElD,IAAI,EACA,KACH,EAAS,GACT,GAAa,GAGd,IAAI,EAAW,IAAI,GAAc,CAAI,EACjC,EAAQ,EAAS,GAAqB,EAM1C,SAAS,EAAc,EAAK,EAAI,CAC/B,GAAI,GAAW,CACd,IAAI,EAAO,GAAwD,CAAO,EAG1E,GAAI,IAAQ,SAAS,EAAK,UAAU,CAAC,CAAC,EAAG,CAGxC,IAAI,EAAS,GAAW,EAExB,GAAiB,CAAM,EACvB,EAAS,OAAS,EAElB,GAAc,EAAK,EACnB,EAAS,OAAO,EAAK,CAAE,EACvB,GAAc,EAAI,EAElB,MACD,CACD,CAEA,EAAS,OAAO,EAAK,CAAE,CACxB,CAEA,OAAY,CACX,IAAI,EAAa,GAEjB,GAAI,EAAI,EAAM,IAAM,CACnB,EAAa,GACb,EAAc,EAAK,CAAE,CACtB,CAAC,EAEI,GACJ,EAAc,GAAI,IAAI,CAExB,EAAG,CAAK,CACT,CCjEA,IAAM+E,IAAM,OAAO,KAAK,EASxB,SAAgB,GAAI,EAAM,EAAS,EAAW,CACzC,IACH,GAAa,EAGd,IAAI,EAAW,IAAI,GAAc,CAAI,EAEjC,EAAS,CAAC,GAAS,EAEvB,OAAY,CACX,IAAI,EAAM,EAAQ,EAGd,IAAQ,IACX,EAA0BA,KAIvB,GAA0B,OAAO,GAAQ,UAA/B,IACb,EAAwB,CAAC,GAG1B,EAAS,OAAO,EAAK,CAAS,CAC/B,CAAC,CACF,CCeA,SAAgBC,GAAM,EAAG,EAAG,CAC3B,OAAO,CACR,CASA,SAAS,IAAc,EAAO,EAAY,EAAmB,CAS5D,IAAK,IAPD,EAAc,CAAC,EACf,EAAS,EAAW,OAGpB,EACA,EAAY,EAAW,OAElB,EAAI,EAAG,EAAI,EAAQ,IAAK,CAChC,IAAI,EAAS,EAAW,GAExB,GACC,MACM,CACL,GAAI,EAIH,IAHA,EAAM,QAAQ,OAAO,CAAM,EAC3B,EAAM,KAAK,IAAI,CAAM,EAEjB,EAAM,QAAQ,OAAS,EAAG,CAC7B,IAAI,EAA6C,EAAM,YAEvD,GAAgB,EAAO,EAAW,EAAM,IAAI,CAAC,EAC7C,EAAO,OAAO,CAAK,EAEf,EAAO,OAAS,IACnB,EAAM,YAAc,KAEtB,OAEA,GAEF,EACA,EACD,CACD,CAEA,GAAI,IAAc,EAAG,CAIpB,IAAI,EAAY,EAAY,SAAW,GAAK,IAAsB,KAElE,GAAI,EAAW,CACd,IAAI,EAAiC,EACjC,EAAsC,EAAO,WAEjD,GAAmB,CAAW,EAC9B,EAAY,OAAO,CAAM,EAEzB,EAAM,MAAM,MAAM,CACnB,CAEA,GAAgB,EAAO,EAAY,CAAC,CAAS,CAC9C,MACC,EAAQ,CACP,QAAS,IAAI,IAAI,CAAU,EAC3B,KAAM,IAAI,GACX,GAEC,EAAM,cAAgB,IAAI,KAAO,IAAI,CAAK,CAE7C,CAOA,SAAS,GAAgB,EAAO,EAAY,EAAa,GAAM,CAE9D,IAAI,EAGJ,GAAI,EAAM,QAAQ,KAAO,EAAG,CAC3B,EAAoB,IAAI,IAExB,IAAK,IAAM,KAAQ,EAAM,QAAQ,OAAO,EACvC,IAAK,IAAM,KAAO,EACjB,EAAkB,IAA6B,EAAM,MAAM,IAAI,CAAG,EAAG,CAAC,CAGzE,CAEA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAC3C,IAAI,EAAI,EAAW,GAEf,GAAmB,IAAI,CAAC,GAC3B,EAAE,GAAK,GAGP,GAAY,EADK,SAAS,uBACJ,CAAC,GAEvB,GAAe,EAAW,GAAI,CAAU,CAE1C,CACD,CAGA,IAAI,GAYJ,SAAgBC,GAAK,EAAM,EAAO,EAAgB,EAAS,EAAW,EAAc,KAAM,CACzF,IAAI,EAAS,EAGT,EAAQ,IAAI,IAIhB,GAFqB,IAEF,CAClB,IAAI,EAAsC,EAE1C,EAAS,GACN,GAAiB,GAAgB,CAAW,CAAC,EAC7C,EAAY,YAAY,GAAY,CAAC,CACzC,CAEI,IACH,GAAa,EAId,IAAI,EAAW,KAKX,EAAa,OAAyB,CACzC,IAAI,EAAa,EAAe,EAEhC,OAAOjF,EAAS,CAAU,EAAI,EAAa,GAAc,KAAO,CAAC,EAAI,EAAW,CAAU,CAC3F,CAAC,EAEGK,GACH,GAAI,EAAY,aAAa,EAI9B,IAAI,EAGA,EAAU,IAAI,IAEd,EAAY,GAKhB,SAAS,EAAO,EAAO,CACjB,EAAM,OAAO,UAIlB,EAAM,QAAQ,OAAO,CAAK,EAE1B,EAAM,SAAW,EACjB,IAAU,EAAO,EAAO,EAAQ,EAAO,CAAO,EAE1C,IAAa,OACZ,EAAM,SAAW,EACf,EAAS,YAGb,EAAS,GAAK,GACd,GAAK,EAAU,KAAM,CAAM,GAH3B,GAAc,CAAQ,EAMvB,GAAa,MAAgB,CAI5B,EAAW,IACZ,CAAC,GAGJ,CAKA,SAAS,EAAQ,EAAO,CACvB,EAAM,QAAQ,OAAO,CAAK,CAC3B,CAyIA,IAAI,EAAQ,CAAE,OAvID,OAAY,CACxB,EAA4B,EAAI,CAAU,EAC1C,IAAI,EAAS,EAAM,OAGnB,IAAI,EAAW,GAEX,IACW,GAA2B,CAAM,WAE9B,IAAW,KAE3B,EAAS,GAAW,EAEpB,GAAiB,CAAM,EACvB,GAAc,EAAK,EACnB,EAAW,IAQb,IAAK,IAJD,EAAO,IAAI,IACX,EAA8B,GAC9B,EAAQ,GAAoB,EAEvB,EAAQ,EAAG,EAAQ,EAAQ,GAAS,EAAG,CAE9C,IACA,GAAa,cACW,GAAc,aAItC,EAAiC,GACjC,EAAW,GACX,GAAc,EAAK,GAGpB,IAAI,EAAQ,EAAM,GACd,EAAM,EAAQ,EAAO,CAAK,EAE9B,GAAIA,EAAK,CAER,IAAI,EAAY,EAAQ,EAAO,CAAK,EAChC,IAAQ,GACX,GAAoB,OAAO,CAAK,EAAG,OAAO,CAAG,EAAG,OAAO,CAAS,CAAC,CAEnE,CAEA,IAAI,EAAO,EAAY,KAAO,EAAM,IAAI,CAAG,EAEvC,GAEC,EAAK,GAAG,GAAa,EAAK,EAAG,CAAK,EAClC,EAAK,GAAG,GAAa,EAAK,EAAG,CAAK,EAElC,GACH,EAAM,cAAc,EAAK,CAAC,IAG3B,EAAO,IACN,EACA,EAAY,EAAU,KAAqB,GAAY,EACvD,EACA,EACA,EACA,EACA,EACA,CACD,EAEK,IACJ,EAAK,EAAE,GAAK,IAGb,EAAM,IAAI,EAAK,CAAI,GAGpB,EAAK,IAAI,CAAG,CACb,CAyBA,GAvBI,IAAW,GAAK,GAAe,CAAC,IAC/B,EACH,EAAW,OAAa,EAAY,CAAM,CAAC,GAE3C,EAAW,OAAa,EAAa,KAAqB,GAAY,CAAE,CAAC,EACzE,EAAS,GAAK,KAIZ,EAAS,EAAK,OACbA,EACH,IAAmB,EAAO,CAAO,EAGjC,GAAqB,GAAI,GAAI,EAAE,GAK7B,IAAa,EAAS,GACzB,GAAiB,GAAW,CAAC,EAG1B,CAAC,EAGJ,GAFA,EAAQ,IAAI,EAAO,CAAI,EAEnB,EAAO,CACV,IAAK,GAAM,CAAC,EAAK,KAAS,EACpB,EAAK,IAAI,CAAG,GAChB,EAAM,YAAY,EAAK,CAAC,EAI1B,EAAM,SAAS,CAAM,EACrB,EAAM,UAAU,CAAO,CACxB,MACC,EAAO,CAAK,EAIV,GAEH,GAAc,EAAI,EASnB,EAAI,CAAU,CACf,CAGmB,EAAG,QAAO,QAAO,UAAS,YAAa,KAAM,UAAS,EAEzE,EAAY,GAER,KACH,EAAS,GAEX,CAOA,SAAS,GAAe,EAAQ,CAC/B,KAAO,IAAW,QAAS,EAAO,OACjC,EAAS,EAAO,KAEjB,OAAO,CACR,CAYA,SAAS,IAAU,EAAO,EAAO,EAAQ,EAAO,EAAS,CACxD,IAAI,GAAe,MAA8B,EAE7C,EAAS,EAAM,OACf,EAAQ,EAAM,MACd,EAAU,GAAe,EAAM,OAAO,KAAK,EAG3C,EAGA,EAAO,KAGP,EAGA,EAAU,CAAC,EAGX,EAAU,CAAC,EAGX,EAGA,EAGA,EAGA,EAEJ,GAAI,EACH,IAAK,EAAI,EAAG,EAAI,EAAQ,GAAK,EAC5B,EAAQ,EAAM,GACd,EAAM,EAAQ,EAAO,CAAC,EACtB,EAAkC,EAAM,IAAI,CAAG,EAAG,EAI7C,EAAO,aACX,EAAO,OAAO,GAAG,QAAQ,GACxB,IAAe,IAAI,KAAO,IAAI,CAAM,GAKxC,IAAK,EAAI,EAAG,EAAI,EAAQ,GAAK,EAAG,CAM/B,GALA,EAAQ,EAAM,GACd,EAAM,EAAQ,EAAO,CAAC,EAEtB,EAAkC,EAAM,IAAI,CAAG,EAAG,EAE9C,EAAM,cAAgB,KACzB,IAAK,IAAM,KAAS,EAAM,YACzB,EAAM,QAAQ,OAAO,CAAM,EAC3B,EAAM,KAAK,OAAO,CAAM,EAY1B,GARK,EAAO,SACX,GAAc,CAAM,EAChB,IACH,EAAO,OAAO,GAAG,MAAM,GACtB,IAAe,IAAI,KAAO,OAAO,CAAM,IAIrC,EAAO,WAGX,GAFA,EAAO,GAAK,GAER,IAAW,EACd,GAAK,EAAQ,KAAM,CAAM,MACnB,CACN,IAAI,EAAO,EAAO,EAAK,KAAO,EAE1B,IAAW,EAAM,OAAO,OAC3B,EAAM,OAAO,KAAO,EAAO,MAGxB,EAAO,OAAM,EAAO,KAAK,KAAO,EAAO,MACvC,EAAO,OAAM,EAAO,KAAK,KAAO,EAAO,MAC3C,GAAK,EAAO,EAAM,CAAM,EACxB,GAAK,EAAO,EAAQ,CAAI,EAExB,GAAK,EAAQ,EAAM,CAAM,EACzB,EAAO,EAEP,EAAU,CAAC,EACX,EAAU,CAAC,EAEX,EAAU,GAAe,EAAK,IAAI,EAClC,QACD,CAGD,GAAI,IAAW,EAAS,CACvB,GAAI,IAAS,QAAa,EAAK,IAAI,CAAM,EAAG,CAC3C,GAAI,EAAQ,OAAS,EAAQ,OAAQ,CAEpC,IAAI,EAAQ,EAAQ,GAChB,EAEJ,EAAO,EAAM,KAEb,IAAI,EAAI,EAAQ,GACZ,EAAI,EAAQ,EAAQ,OAAS,GAEjC,IAAK,EAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACpC,GAAK,EAAQ,GAAI,EAAO,CAAM,EAG/B,IAAK,EAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACpC,EAAK,OAAO,EAAQ,EAAE,EAGvB,GAAK,EAAO,EAAE,KAAM,EAAE,IAAI,EAC1B,GAAK,EAAO,EAAM,CAAC,EACnB,GAAK,EAAO,EAAG,CAAK,EAEpB,EAAU,EACV,EAAO,EACP,IAEA,EAAU,CAAC,EACX,EAAU,CAAC,CACZ,MAEC,EAAK,OAAO,CAAM,EAClB,GAAK,EAAQ,EAAS,CAAM,EAE5B,GAAK,EAAO,EAAO,KAAM,EAAO,IAAI,EACpC,GAAK,EAAO,EAAQ,IAAS,KAAO,EAAM,OAAO,MAAQ,EAAK,IAAI,EAClE,GAAK,EAAO,EAAM,CAAM,EAExB,EAAO,EAGR,QACD,CAKA,IAHA,EAAU,CAAC,EACX,EAAU,CAAC,EAEJ,IAAY,MAAQ,IAAY,IACrC,IAAS,IAAI,KAAO,IAAI,CAAO,EAChC,EAAQ,KAAK,CAAO,EACpB,EAAU,GAAe,EAAQ,IAAI,EAGtC,GAAI,IAAY,KACf,QAEF,CAEK,EAAO,YACX,EAAQ,KAAK,CAAM,EAGpB,EAAO,EACP,EAAU,GAAe,EAAO,IAAI,CACrC,CAEA,GAAI,EAAM,cAAgB,KAAM,CAC/B,IAAK,IAAM,KAAS,EAAM,YACrB,EAAM,QAAQ,OAAS,IAC1B,GAAgB,EAAO,EAAW,EAAM,IAAI,CAAC,EAC7C,EAAM,aAAa,OAAO,CAAK,GAI7B,EAAM,YAAY,OAAS,IAC9B,EAAM,YAAc,KAEtB,CAEA,GAAI,IAAY,MAAQ,IAAS,OAAW,CAE3C,IAAI,EAAa,CAAC,EAElB,GAAI,IAAS,WACP,KAAU,EACT,EAAO,QACX,EAAW,KAAK,CAAM,EAKzB,KAAO,IAAY,MAElB,EAAK,EAAQ,SAAoB,IAAY,EAAM,UAClD,EAAW,KAAK,CAAO,EAGxB,EAAU,GAAe,EAAQ,IAAI,EAGtC,IAAI,EAAiB,EAAW,OAEhC,GAAI,EAAiB,EAAG,CACvB,IAAI,EAAqB,KAAqC,IAAW,EAAI,EAAS,KAEtF,GAAI,EAAa,CAChB,IAAK,EAAI,EAAG,EAAI,EAAgB,GAAK,EACpC,EAAW,GAAG,OAAO,GAAG,QAAQ,EAGjC,IAAK,EAAI,EAAG,EAAI,EAAgB,GAAK,EACpC,EAAW,GAAG,OAAO,GAAG,IAAI,CAE9B,CAEA,IAAc,EAAO,EAAY,CAAiB,CACnD,CACD,CAEI,GACH,OAAuB,CAClB,OAAe,OACnB,IAAK,KAAU,EACd,EAAO,OAAO,GAAG,MAAM,CAEzB,CAAC,CAEH,CAcA,SAAS,IAAY,EAAO,EAAQ,EAAO,EAAK,EAAO,EAAW,EAAO,EAAgB,CACxF,IAAI,EACF,IACG,KAEA,GAAO,CAAK,EADZ,GAAe,EAAO,GAAO,EAAK,EAEnC,KAEA,EAAK,IAAqC,GAAO,CAAK,EAAI,KAW9D,OATIA,GAAO,IAGV,EAAE,UAAc,CAEf,EAAe,EAAE,GAAG,GAAK,EAC1B,GAGM,CACN,IACA,IACA,EAAG,QACF,EAAU,EAAQ,GAAK,EAAO,GAAK,EAAO,CAAc,MAE3C,CACZ,EAAM,OAAO,CAAG,CACjB,EACA,CACF,CACD,CAOA,SAAS,GAAK,EAAQ,EAAM,EAAQ,CAC9B,KAAO,MAUZ,IARA,IAAI,EAAO,EAAO,MAAM,MACpB,EAAM,EAAO,MAAM,IAEnB,EACH,KAAS,EAAK,YACiB,EAAK,MAAO,MACxC,EAEG,IAAS,MAAM,CACrB,IAAI,EAAyC,GAAiB,CAAI,EAGlE,GAFA,EAAK,OAAO,CAAI,EAEZ,IAAS,EACZ,OAGD,EAAO,CACR,CACD,CAOA,SAAS6E,GAAK,EAAO,EAAM,EAAM,CAC5B,IAAS,KACZ,EAAM,OAAO,MAAQ,EAErB,EAAK,KAAO,EAGT,IAAS,KACZ,EAAM,OAAO,KAAO,EAEpB,EAAK,KAAO,CAEd,CAOA,SAAS,IAAmB,EAAO,EAAQ,CAC1C,IAAM,EAAO,IAAI,IACX,EAAS,EAAM,OAErB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,CAChC,IAAM,EAAM,EAAO,EAAM,GAAI,CAAC,EAE9B,GAAI,EAAK,IAAI,CAAG,EAAG,CAClB,IAAM,EAAI,OAAO,EAAK,IAAI,CAAG,CAAC,EACxB,EAAI,OAAO,CAAC,EAGd,EAAI,OAAO,CAAG,EACd,EAAE,WAAW,UAAU,IAAG,EAAI,MAElC,GAAqB,EAAG,EAAG,CAAC,CAC7B,CAEA,EAAK,IAAI,EAAK,CAAC,CAChB,CACD,CCxuBA,SAAS,IAAW,EAAS,EAAa,EAAO,CAChD,GAAI,CAAC,GAAe,IAAgB,IAAK,OAAO,GAAS,EAAE,CAAC,EAAG,OAE/D,IAAI,EAGE,EAAM,EAAQ,eAAe,IAC/B,EACH,EAAW,QAAQ,EAAI,KAAK,GAAG,EAAI,KAAK,GAAG,EAAI,SACrC,KAAiC,KAC3C,EAAW,MAAM,GAA+B,MAGjD,GAAyB,GAAkB,CAAQ,CAAC,CACrD,CAWA,SAAgB,GACf,EACA,EACA,EAAgB,GAChB,EAAM,GACN,EAAS,GACT,EAAe,GACd,CACD,IAAI,EAAS,EAGT,EAAQ,GAEZ,GAAI,EAAe,CAClB,IAAI,EAAsC,EAEtC,KACH,EAAS,GAAiB,GAAgB,CAAW,CAAC,EAExD,CAEA,MAAsB,CACrB,IAAI,EAAgC,GAEpC,GAAI,KAAW,EAAQ,EAAU,GAAK,IAAK,CACtC,IAAW,GAAa,EAC5B,MACD,CAEA,GAAI,GAAiB,CAAC,GAAW,CAGhC,EAAO,MAAQ,KACf,EAAY,UAAmC,EAE3C,IAAU,IACb,GAC8B,GAAgB,CAAW,EAC3B,EAAY,SAC1C,EAGD,MACD,CAEA,GAAI,EAAO,QAAU,OACpB,GAAkB,EAAO,MAAM,MAAoC,EAAO,MAAM,GAAI,EACpF,EAAO,MAAQ,MAGZ,IAAU,GAEd,IAAI,GAAW,CASd,IANA,IAAI,EAA+B,GAAc,KAG7C,EAAO,GAAa,EACpB,EAAO,EAGV,IAAS,OACR,EAAK,cAAqD,EAAM,OAAS,KAE1E,EAAO,EACP,EAAO,GAAiB,CAAI,EAG7B,GAAI,IAAS,KAEZ,MADA,GAAqB,EACf,EAGH7E,GAAO,CAAC,GACX,IAAmC,EAAK,WAAa,EAAM,CAAK,EAGjE,GAAa,GAAc,CAAI,EAC/B,EAAS,GAAiB,CAAI,EAC9B,MACD,CAOA,IAAI,EACH,GAAe,EAAM,MAAQ,EAAS,OAAS,WAFvC,EAAM,EAAgB,EAAS,EAAmB,MAEG,EAE9D,EAAQ,UAAgC,EAGxC,IAAI,EAAO,GAAO,EAAS,EAA8C,EAAS,QAOlF,GALA,GAC8B,GAAgB,CAAI,EACpB,EAAK,SACnC,EAEI,GAAO,EACV,KAAO,GAAgB,CAAI,GAC1B,EAAO,OAAoC,GAAgB,CAAI,CAAE,OAGlE,EAAO,OAAO,CAAI,CAzBnB,CA2BD,CAAC,CACF,CCtJA,SAAgB,GAAK,EAAQ,EAAS,EAAM,EAAY,EAAa,CAChE,IACH,GAAa,EAGd,IAAI,EAAU,EAAQ,UAAU,GAE5B,EAAa,GACb,IAAY,KACf,EAAU,EAAQ,IAAS,UAAY,WAAa,GACpD,EAAa,IAGV,IAAY,OACX,IAAgB,MACnB,EAAY,CAAM,EAGnB,EAAQ,EAAQ,MAAmB,EAAa,CAAU,CAE5D,CAMA,SAAgB,IAAe,EAAO,CAErC,IAAM,EAAY,CAAC,EACf,EAAM,WAAU,EAAU,QAAU,IACxC,IAAK,IAAM,KAAO,EAAM,QACvB,EAAU,GAAO,GAElB,OAAO,CACR,CCpBA,SAAgB,GAAU,EAAM,EAAe,EAAW,CAEzD,IAAI,EAEA,KACH,EAAuB,GACvB,GAAa,GAGd,IAAI,EAAW,IAAI,GAAc,CAAI,EAErC,OAAY,CACX,IAAI,EAAY,EAAc,GAAK,KAEnC,GAAI,IACQ,GAAwD,CAErC,UACH,IAAc,MAEU,CAElD,IAAI,EAAS,GAAW,EAExB,GAAiB,CAAM,EACvB,EAAS,OAAS,EAElB,GAAc,EAAK,EACnB,EAAS,OAAO,EAAW,IAAe,GAAW,EAAU,EAAQ,CAAS,EAAE,EAClF,GAAc,EAAI,EAElB,MACD,CAGD,EAAS,OAAO,EAAW,IAAe,GAAW,EAAU,EAAQ,CAAS,EAAE,CACnF,EAAG,EAAkB,CACtB,CCvDA,IAAM8E,QAAsB,YAAY,IAAI,EAG/B,GAAM,CAIlB,KAA6B,GAAiB,sBAA8B,CAAC,EAC7E,QAAWA,IAAI,EACf,MAAO,IAAI,GACZ,ECPA,SAAS,IAAY,CAGpB,IAAM,EAAM,GAAI,IAAI,EAEpB,GAAI,MAAM,QAAS,GAAS,CACtB,EAAK,EAAE,CAAG,IACd,GAAI,MAAM,OAAO,CAAI,EACrB,EAAK,EAAE,EAET,CAAC,EAEG,GAAI,MAAM,OAAS,GACtB,GAAI,KAAK,EAAS,CAEpB,CAQA,SAAgB,IAAK,EAAU,CAE9B,IAAI,EAMJ,OAJI,GAAI,MAAM,OAAS,GACtB,GAAI,KAAK,EAAS,EAGZ,CACN,QAAS,IAAI,QAAS,GAAY,CACjC,GAAI,MAAM,IAAK,EAAO,CAAE,EAAG,EAAU,EAAG,CAAQ,CAAE,CACnD,CAAC,EACD,OAAQ,CACP,GAAI,MAAM,OAAO,CAAI,CACtB,CACD,CACD,CC/BA,SAAS,GAAe,EAAS,EAAM,CACtC,OAA+B,CAC9B,EAAQ,cAAc,IAAI,YAAY,CAAI,CAAC,CAC5C,CAAC,CACF,CAOA,SAAS,IAA0B,EAAO,CAEzC,GAAI,IAAU,QAAS,MAAO,WAC9B,GAAI,IAAU,SAAU,MAAO,YAG/B,GAAI,EAAM,WAAW,IAAI,EAAG,OAAO,EAEnC,IAAM,EAAQ,EAAM,MAAM,GAAG,EAE7B,OADI,EAAM,SAAW,EAAU,EAAM,GAEpC,EAAM,GACN,EACE,MAAM,CAAC,EACP,IAA8B,GAAS,EAAK,GAAG,YAAY,EAAI,EAAK,MAAM,CAAC,CAAC,EAC5E,KAAK,EAAE,CAEX,CAMA,SAAS,GAAgB,EAAK,CAE7B,IAAM,EAAW,CAAC,EACZ,EAAQ,EAAI,MAAM,GAAG,EAC3B,IAAK,IAAM,KAAQ,EAAO,CACzB,GAAM,CAAC,EAAU,GAAS,EAAK,MAAM,GAAG,EACxC,GAAI,CAAC,GAAY,IAAU,OAAW,MAEtC,IAAM,EAAqB,IAA0B,EAAS,KAAK,CAAC,EACpE,EAAS,GAAsB,EAAM,KAAK,CAC3C,CACA,OAAO,CACR,CAGA,IAAMC,IAAU,GAAM,EA+HtB,SAAgB,GAAW,EAAO,EAAS,EAAQ,EAAY,CAC9D,IAAI,GAAY,MAA2B,EACvC,GAAY,MAA4B,EACxC,EAAU,GAAY,EACtB,GAAa,MAA+B,EAG5C,EAAY,EAAU,OAAS,EAAW,KAAO,MAGjD,EAEA,EAAQ,EAAQ,MAOhB,EAAW,EAAQ,MAAM,SAGzB,EAGA,EAEJ,SAAS,GAAc,CACtB,OAAOjB,OAIE,IAAoB,EAAO,EAAE,EAAS,IAAa,GAAuB,CAAC,EAAI,CACtF,WACD,CAAC,CACD,CACF,CAGA,IAAI,EAAa,CAChB,YACA,IAAK,CAGJ,GAFA,EAAQ,MAAQ,EAEZ,CAAC,EAAU,CACd,GAAO,MAAM,EACb,GAAO,QAAQ,EACf,MACD,CAEK,GAGJ,GAAO,MAAM,EAGd,EAAQ,GACP,EACA,EAAY,EACZ,EACA,MACM,CACL,GAAe,EAAS,YAAY,CACrC,MACM,CACL,GAAe,EAAS,UAAU,EAGlC,GAAO,MAAM,EACb,EAAQ,EAAkB,OAE1B,EAAQ,MAAM,SAAW,CAC1B,CACD,CACD,EACA,IAAI,EAAI,CACP,GAAI,CAAC,EAAU,CACd,IAAK,EACL,EAAkB,OAClB,MACD,CAEA,EAAQ,MAAQ,GAEhB,EAAQ,GACP,EACA,EAAY,EACZ,EACA,MACM,CACL,GAAe,EAAS,YAAY,CACrC,MACM,CACL,GAAe,EAAS,UAAU,EAClC,IAAK,CACN,CACD,CACD,EACA,SAAY,CACX,GAAO,MAAM,EACb,GAAO,MAAM,CACd,CACD,EAEI,EAAoD,GAOxD,IALC,EAAE,MAAM,IAAM,CAAC,GAAG,KAAK,CAAU,EAK9B,GAAY,GAAc,CAC7B,IAAI,EAAM,EAEV,GAAI,CAAC,EAAK,CAIT,IAHA,IAAI,EAAsC,EAAE,OAGrC,GAAU,EAAM,SACtB,MAAQ,EAAQ,EAAM,SAChB,IAAM,QAIb,EAAM,CAAC,IAAU,EAAM,UAAsB,CAC9C,CAEI,GACH,OAAa,CACZ,OAAc,EAAW,GAAG,CAAC,CAC9B,CAAC,CAEH,CACD,CAYA,SAAS,GAAQ,EAAS,EAAS,EAAa,EAAI,EAAU,EAAW,CACxE,IAAI,EAAW,IAAO,EAEtB,GAAI,GAAY,CAAO,EAAG,CAKzB,IAAI,EACA,EAAU,GAUd,OARA,OAAuB,CAClB,IAEJ,EAAI,GAAQ,EADJ,EAAQ,CAAE,UAAW,EAAW,KAAO,KAAM,CAChC,EAAG,EAAa,EAAI,EAAU,CAAS,EAC7D,CAAC,EAIM,CACN,UAAa,CACZ,EAAU,GACV,GAAG,MAAM,CACV,EACA,eAAkB,EAAE,WAAW,EAC/B,UAAa,EAAE,MAAM,EACrB,MAAS,EAAE,EAAE,CACd,CACD,CAIA,GAFA,GAAa,WAAW,EAEpB,CAAC,GAAS,UAAY,CAAC,GAAS,MAInC,OAHA,EAAS,EACT,EAAU,EAEH,CACN,MAAOjE,EACP,WAAYA,EACZ,MAAOA,EACP,MAAS,CACV,EAGD,GAAM,CAAE,QAAQ,EAAG,MAAK,OAAM,SAASkF,KAAW,EAElD,IAAI,EAAY,CAAC,EAEjB,GAAI,GAAY,IAAgB,SAC3B,GACH,EAAK,EAAG,CAAC,EAGN,GAAK,CACR,IAAI,EAAS,GAAgB,EAAI,EAAG,CAAC,CAAC,EACtC,EAAU,KAAK,EAAQ,CAAM,CAC9B,CAGD,IAAI,MAAc,EAAI,EAQlB,EAAY,EAAQ,QAAQ,EAAW,CAAE,SAAU,EAAO,KAAM,UAAW,CAAC,EAsEhF,MApEA,GAAU,aAAiB,CAE1B,EAAU,OAAO,EAEjB,EAAS,EAIT,IAAI,EAAK,GAAa,EAAE,GAAK,EAAI,EACjC,GAAa,MAAM,EAEnB,IAAI,EAAQ,EAAK,EACb,EAAkC,EAAQ,SAAY,KAAK,IAAI,CAAK,EACpE,EAAY,CAAC,EAEjB,GAAI,EAAW,EAAG,CAMjB,IAAI,EAAwB,GAE5B,GAAI,EAGH,IAAK,IAFD,EAAI,KAAK,KAAK,GAAY,IAAO,GAAG,EAE/B,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,CAC/B,IAAI,EAAI,EAAK,EAAQ,EAAO,EAAI,CAAC,EAC7B,EAAS,GAAgB,EAAI,EAAG,EAAI,CAAC,CAAC,EAC1C,EAAU,KAAK,CAAM,EAErB,IAA0B,EAAO,WAAa,QAC/C,CAGG,IACwB,EAAU,MAAM,SAAW,UAGvD,MAAc,CACb,IAAI,EACkC,EAAW,YAGjD,OAAO,EAAK,EAAQ,EAAO,EAAO,CAAQ,CAC3C,EAEI,GACH,QAAW,CACV,GAAI,EAAU,YAAc,UAAW,MAAO,GAE9C,IAAI,EAAI,EAAM,EAGd,OAFA,EAAK,EAAG,EAAI,CAAC,EAEN,EACR,CAAC,CAEH,CAEA,EAAY,EAAQ,QAAQ,EAAW,CAAE,WAAU,KAAM,UAAW,CAAC,EAErE,EAAU,aAAiB,CAC1B,MAAc,EACd,IAAO,EAAI,EAAI,CAAE,EACjB,EAAU,CACX,CACD,EAEO,CACN,UAAa,CACR,IACH,EAAU,OAAO,EAEjB,EAAU,OAAS,KAInB,EAAU,SAAWlF,EAEvB,EACA,eAAkB,CACjB,EAAYA,CACb,EACA,UAAa,CACR,IAAO,GACV,IAAO,EAAG,CAAC,CAEb,EACA,MAAS,EAAM,CAChB,CACD,CCldA,SAAgB,GAAQ,EAAM,EAAS,EAAQ,EAAW,EAAe,EAAU,CAClF,IAAI,EAAgB,GAEhB,IACH,GAAa,EAGd,IAAI,EAAWG,GAAO,GAAY,IAAmB,SAAS,GAG1D,EAAU,KAEV,IAAa,GAAa,eAC7B,EAAkC,GAClC,GAAa,GAGd,IAAI,EAAsC,GAAY,GAAe,EAQjE,EAAW,IAAI,GAAc,EAAQ,EAAK,EAE9C,OAAY,CACX,IAAM,EAAW,EAAQ,GAAK,KAC9B,IAAI,EAAK,EACN,EAAc,EACd,GAAU,IAAa,MACtB,EACA,OAEJ,GAAI,IAAa,KAAM,CACtB,EAAS,OAAO,KAAM,IAAI,EAC1B,GAAiB,EAAI,EACrB,MACD,CAiEA,OA/DA,EAAS,OAAO,EAAW,GAAW,CACrC,GAAI,EAAU,CAiBb,GAhBA,EAAU,GAAoC,EAAW,GAAe,EAAU,CAAE,EAEhFA,GAAO,IAEV,EAAQ,cAAgB,CACvB,OAAQ,GACR,IAAK,CACJ,KAAM,EACN,KAAM,EAAS,GACf,OAAQ,EAAS,EAClB,CACD,GAGD,GAAa,EAAS,CAAO,EAEzB,EAAW,CACV,IAAa,GAAoB,CAAQ,GAE5C,EAAQ,OAAO,SAAS,cAAc,EAAE,CAAC,EAK1C,IAAI,EAAe,GAChB,GAAgB,CAAO,EACvB,EAAQ,YAAY,GAAY,CAAC,EAEhC,KACC,IAAiB,KACpB,GAAc,EAAK,EAEnB,GAAiB,CAAY,GAU/B,EAAU,EAAS,CAAY,CAGhC,CAG+C,GAAgB,MAAM,IAAM,EAE3E,EAAO,OAAO,CAAO,CACtB,CAEI,IACH,GAAiB,CAAM,CAEzB,CAAC,EAGD,GAAiB,EAAI,MAER,CACR,GAGH,GAAiB,EAAK,CAExB,CACD,EAAG,EAAkB,EAErB,OAAe,CACd,GAAiB,EAAI,CACtB,CAAC,EAEG,IACH,GAAc,EAAI,EAClB,GAAiB,CAAM,EAEzB,CC5IA,SAAgB,GAAK,EAAM,EAAW,CAGrC,IAAI,EAAwB,KACxB,EAAgB,GAGpB,IAAI,EAEJ,GAAI,GAAW,CACd,EAAwB,GAMxB,IAJA,IAAI,EAAc,GAAgB,SAAS,IAAI,EAK9C,IAAgB,OACf,EAAY,cAAqD,EAAa,OAAS,IAExF,EAAc,GAAiB,CAAW,EAK3C,GAAI,IAAgB,KACnB,GAAc,EAAK,MACb,CACN,IAAI,EAAqC,GAAiB,CAAW,EACrE,EAAY,OAAO,EAEnB,GAAiB,CAAK,CACvB,CACD,CAEK,KACJ,EAAS,SAAS,KAAK,YAAY,GAAY,CAAC,GAGjD,GAAI,CACH,OAAY,CACX,IAAI,EAAI,OAAa,EAAU,CAAM,CAAC,EACtC,EAAE,GAAK,EACR,CAAC,CACF,QAAU,CACL,IACH,GAAc,EAAI,EAClB,GAA8C,CAAsB,EAEtE,CACD,CCjDA,SAAgB,GAAO,EAAK,EAAQ,EAAW,CAC9C,OAAa,CACZ,IAAI,EAAU,OAAc,EAAO,EAAK,IAAY,CAAC,GAAK,CAAC,CAAC,EAE5D,GAAI,GAAa,GAAS,OAAQ,CACjC,IAAI,EAAS,GAET,EAA2B,CAAC,EAEhC,OAAoB,CACnB,IAAI,EAAQ,EAAU,EAKtB,GAAgB,CAAK,EAEjB,GAAU,GAAe,EAAM,CAAK,IACvC,EAAO,EACiB,EAAS,OAAQ,CAAK,EAEhD,CAAC,EAED,EAAS,EACV,CAEA,GAAI,GAAS,QACZ,UAAsC,EAAQ,QAAS,CAEzD,CAAC,CACF,CC/BA,SAAgB,IAAO,EAAM,EAAQ,CAEpC,IAAI,EAAK,OAGL,EAEJ,OAAc,CACT,KAAQ,EAAK,EAAO,KACvB,CAEC,IADA,GAAe,CAAC,EACZ,MAGD,IACH,EAAI,OAAa,CAChB,OAAqD,EAAI,CAAI,CAAC,CAC/D,CAAC,GAGJ,CAAC,CACF,CChCA,SAASgF,GAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,GAAa,OAAO,GAAjB,UAA8B,OAAO,GAAjB,SAAmB,GAAG,OAAO,GAAa,OAAO,GAAjB,SAAmB,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAEA,GAAE,EAAE,EAAE,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,CAAC,SAAgBC,IAAM,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,MAAM,EAAED,GAAE,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,CCyC/W,SAAgB,GAAK,EAAO,CAI1B,OAHG,OAAO,GAAU,SACbE,GAAM,CAAK,EAEX,GAAS,EAElB,CAEA,IAAM,GAAa,CAAC,GAAG;YAA6B,EAQpD,SAAgB,GAAS,EAAO,EAAM,EAAY,CACjD,IAAI,EAAY,GAAS,KAAO,GAAK,GAAK,EAM1C,GAJI,IACH,EAAY,EAAY,EAAY,IAAM,EAAO,GAG9C,OACE,IAAI,KAAO,OAAO,KAAK,CAAU,EACrC,GAAI,EAAW,GACd,EAAY,EAAY,EAAY,IAAM,EAAM,OAC1C,GAAI,EAAU,OAIpB,IAHA,IAAI,EAAM,EAAI,OACV,EAAI,GAEA,EAAI,EAAU,QAAQ,EAAK,CAAC,IAAM,GAAG,CAC5C,IAAI,EAAI,EAAI,GAGV,IAAM,GAAK,GAAW,SAAS,EAAU,EAAI,EAAE,KAC/C,IAAM,EAAU,QAAU,GAAW,SAAS,EAAU,EAAE,GAE3D,GAAa,IAAM,EAAI,GAAK,EAAU,UAAU,EAAG,CAAC,GAAK,EAAU,UAAU,EAAI,CAAC,EAElF,EAAI,CAEN,CACD,CAIF,OAAO,IAAc,GAAK,KAAO,CAClC,CAOA,SAAS,GAAc,EAAQ,EAAY,GAAO,CACjD,IAAI,EAAY,EAAY,eAAiB,IACzC,EAAM,GAEV,IAAK,IAAI,KAAO,OAAO,KAAK,CAAM,EAAG,CACpC,IAAI,EAAQ,EAAO,GACf,GAAS,MAAQ,IAAU,KAC9B,GAAO,IAAM,EAAM,KAAO,EAAQ,EAEpC,CAEA,OAAO,CACR,CAMA,SAAS,GAAY,EAAM,CAI1B,OAHI,EAAK,KAAO,KAAO,EAAK,KAAO,IAC3B,EAAK,YAAY,EAElB,CACR,CAOA,SAAgB,GAAS,EAAO,EAAQ,CACvC,GAAI,EAAQ,CACX,IAAI,EAAY,GAGZ,EAGA,EASJ,GAPI,MAAM,QAAQ,CAAM,GACvB,EAAgB,EAAO,GACvB,EAAmB,EAAO,IAE1B,EAAgB,EAGb,EAAO,CACV,EAAQ,OAAO,CAAK,EAClB,WAAW,qBAAsB,EAAE,EACnC,KAAK,EAGP,IAAI,EAAS,GACT,EAAS,EACT,EAAa,GAEb,EAAiB,CAAC,EAElB,GACH,EAAe,KAAK,GAAG,OAAO,KAAK,CAAa,EAAE,IAAI,EAAW,CAAC,EAE/D,GACH,EAAe,KAAK,GAAG,OAAO,KAAK,CAAgB,EAAE,IAAI,EAAW,CAAC,EAGtE,IAAI,EAAc,EACd,EAAa,GAEjB,IAAM,EAAM,EAAM,OAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC7B,IAAI,EAAI,EAAM,GAoBd,GAlBI,EACC,IAAM,KAAO,EAAM,EAAI,KAAO,MACjC,EAAa,IAEJ,EACN,IAAW,IACd,EAAS,IAEA,IAAM,KAAO,EAAM,EAAI,KAAO,IACxC,EAAa,GACH,IAAM,KAAO,IAAM,IAC7B,EAAS,EACC,IAAM,IAChB,IACU,IAAM,KAChB,IAGG,CAAC,GAAc,IAAW,IAAS,IAAW,MAC7C,IAAM,KAAO,IAAe,GAC/B,EAAa,OACP,GAAI,IAAM,KAAO,IAAM,EAAM,EAAG,CACtC,GAAI,IAAe,GAAI,CACtB,IAAI,EAAO,GAAY,EAAM,UAAU,EAAa,CAAU,EAAE,KAAK,CAAC,EAEtE,GAAI,CAAC,EAAe,SAAS,CAAI,EAAG,CAC/B,IAAM,KACT,IAGD,IAAI,EAAW,EAAM,UAAU,EAAa,CAAC,EAAE,KAAK,EACpD,GAAa,IAAM,EAAW,GAC/B,CACD,CAEA,EAAc,EAAI,EAClB,EAAa,EACd,EAEF,CACD,CAWA,OATI,IACH,GAAa,GAAc,CAAa,GAGrC,IACH,GAAa,GAAc,EAAkB,EAAI,GAGlD,EAAY,EAAU,KAAK,EACpB,IAAc,GAAK,KAAO,CAClC,CAEA,OAAO,GAAS,KAAO,KAAO,OAAO,CAAK,CAC3C,CCnNA,SAAgB,EAAU,EAAK,EAAS,EAAO,EAAM,EAAc,EAAc,CAChF,IAAI,EAA2B,EAAK,IAEpC,GACC,IACA,IAAS,GACT,IAAS,OACR,CACD,IAAI,EAAkB,GAAS,EAAO,EAAM,CAAY,GAEpD,CAAC,IAAa,IAAoB,EAAI,aAAa,OAAO,KAKzD,GAAmB,KACtB,EAAI,gBAAgB,OAAO,EACjB,EACV,EAAI,UAAY,EAEhB,EAAI,aAAa,QAAS,CAAe,GAIxB,EAAM,IAAe,CACzC,MAAO,GAAI,GAAgB,IAAiB,EAC3C,IAAK,IAAI,KAAO,EAAc,CAC7B,IAAI,EAAa,CAAC,CAAC,EAAa,IAE5B,GAAgB,MAAQ,IAAe,CAAC,CAAC,EAAa,KACzD,EAAI,UAAU,OAAO,EAAK,CAAU,CAEtC,CAGD,OAAO,CACR,CCvCA,SAAS,GAAc,EAAK,EAAO,CAAC,EAAG,EAAM,EAAU,CACtD,IAAK,IAAI,KAAO,EAAM,CACrB,IAAI,EAAQ,EAAK,GAEb,EAAK,KAAS,IACb,EAAK,IAAQ,KAChB,EAAI,MAAM,eAAe,CAAG,EAE5B,EAAI,MAAM,YAAY,EAAK,EAAO,CAAQ,EAG7C,CACD,CAQA,SAAgB,GAAU,EAAK,EAAO,EAAa,EAAa,CAC/D,IAAI,EAA2B,EAAK,IAEpC,GAAI,IAAa,IAAS,EAAO,CAChC,IAAI,EAAkB,GAAS,EAAO,CAAW,GAE7C,CAAC,IAAa,IAAoB,EAAI,aAAa,OAAO,KACzD,GAAmB,KACtB,EAAI,gBAAgB,OAAO,EAE3B,EAAI,MAAM,QAAU,GAIH,EAAM,IAAe,CACzC,MAAW,IACN,MAAM,QAAQ,CAAW,GAC5B,GAAc,EAAK,IAAc,GAAI,EAAY,EAAE,EACnD,GAAc,EAAK,IAAc,GAAI,EAAY,GAAI,WAAW,GAEhE,GAAc,EAAK,EAAa,CAAW,GAI7C,OAAO,CACR,CCxCA,SAAgB,GAAc,EAAQ,EAAO,EAAW,GAAO,CAC9D,GAAI,EAAO,SAAU,CAEpB,GAAI,GAAS,KACZ,OAID,GAAI,CAACvF,EAAS,CAAK,EAClB,OAAOwF,GAAgC,EAIxC,IAAK,IAAI,KAAU,EAAO,QACzB,EAAO,SAAW,EAAM,SAAS,GAAiB,CAAM,CAAC,EAG1D,MACD,CAEA,IAAK,KAAU,EAAO,QAErB,GAAItB,IADe,GAAiB,CAClB,EAAG,CAAK,EAAG,CAC5B,EAAO,SAAW,GAClB,MACD,EAGG,CAAC,GAAY,IAAU,UAC1B,EAAO,cAAgB,GAEzB,CAUA,SAAgB,GAAY,EAAQ,CACnC,IAAI,EAAW,IAAI,qBAAuB,CAEzC,GAAc,EAAQ,EAAO,OAAO,CAGrC,CAAC,EAED,EAAS,QAAQ,EAAQ,CAExB,UAAW,GACX,QAAS,GAIT,WAAY,GACZ,gBAAiB,CAAC,OAAO,CAC1B,CAAC,EAED,OAAe,CACd,EAAS,WAAW,CACrB,CAAC,CACF,CAQA,SAAgB,IAAkB,EAAQ,EAAK,EAAM,EAAK,CACzD,IAAI,EAAU,IAAI,QACd,EAAW,GAEf,GAAgC,EAAQ,SAAW,GAAa,CAC/D,IAAI,EAAQ,EAAW,aAAe,WAElC,EAEJ,GAAI,EAAO,SACV,EAAQ,CAAC,EAAE,IAAI,KAAK,EAAO,iBAAiB,CAAK,EAAG,EAAgB,MAC9D,CAEN,IAAI,EACH,EAAO,cAAc,CAAK,GAE1B,EAAO,cAAc,wBAAwB,EAC9C,EAAQ,GAAmB,GAAiB,CAAe,CAC5D,CAEA,EAAI,CAAK,EAGT,EAAO,QAAU,EAEb,KAAkB,MACrB,EAAQ,IAAI,EAAa,CAE3B,CAAC,EAGD,OAAa,CACZ,IAAI,EAAQ,EAAI,EAEhB,GAAI,IAAW,SAAS,cAAe,CAGtC,IAAI,EAA8B,EAAkB,GAAiB,GAOrE,GAAI,EAAQ,IAAI,CAAK,EACpB,MAEF,CAKA,GAHA,GAAc,EAAQ,EAAO,CAAQ,EAGjC,GAAY,IAAU,OAAW,CAEpC,IAAI,EAAkB,EAAO,cAAc,UAAU,EACjD,IAAoB,OACvB,EAAQ,GAAiB,CAAe,EACxC,EAAI,CAAK,EAEX,CAGA,EAAO,QAAU,EACjB,EAAW,EACZ,CAAC,EAED,GAAY,CAAM,CACnB,CAGA,SAAS,GAAiB,EAAQ,CAKhC,MAHG,YAAa,EACT,EAAO,QAEP,EAAO,KAEhB,CCpIA,IAAa,GAAQ,OAAO,OAAO,EACtB,GAAQ,OAAO,OAAO,EAE7B,GAAoB,OAAO,mBAAmB,EAC9C,GAAU,OAAO,SAAS,EAE1B,IAAW,GAAW,OAAS,OAC/B,IAAY,GAAW,QAAU,QACjC,IAAa,GAAW,SAAW,SACnC,IAAa,GAAW,SAAW,SACnC,IAAe,GAAW,WAAa,WAQ7C,SAAgB,GAAsB,EAAO,CACvC,MAEL,KAAI,EAAkB,GAMlB,MAAwB,CACvB,MAIJ,IAHA,EAAkB,GAGd,EAAM,aAAa,OAAO,EAAG,CAChC,IAAI,EAAQ,EAAM,MAClB,EAAc,EAAO,QAAS,IAAI,EAClC,EAAM,MAAQ,CACf,CAEA,GAAI,EAAM,aAAa,SAAS,EAAG,CAClC,IAAI,EAAU,EAAM,QACpB,EAAc,EAAO,UAAW,IAAI,EACpC,EAAM,QAAU,CACjB,CANA,CAOD,EAEmB,EAAQ,IAAsB,EACjD,GAAiB,CAAe,EAChC,GAAwB,CA1BF,CA2BvB,CAMA,SAAgB,GAAU,EAAS,EAAO,CACzC,IAAI,EAAa,GAAe,CAAO,EAGtC,EAAW,SACT,EAAW,MAEX,GAAS,SAGV,EAAQ,QAAU,IAAU,IAAU,GAAK,EAAQ,WAAa,OAMlE,EAAQ,MAAQ,GAAS,GAC1B,CAMA,SAAgB,GAAY,EAAS,EAAS,CAC7C,IAAI,EAAa,GAAe,CAAO,EAGtC,EAAW,WACV,EAAW,QAEX,GAAW,UAMb,EAAQ,QAAU,EACnB,CASA,SAAgB,IAAa,EAAS,EAAU,CAC3C,EAGE,EAAQ,aAAa,UAAU,GACnC,EAAQ,aAAa,WAAY,EAAE,EAGpC,EAAQ,gBAAgB,UAAU,CAEpC,CA8BA,SAAgB,EAAc,EAAS,EAAW,EAAO,EAAc,CACtE,IAAI,EAAa,GAAe,CAAO,EAEvC,GAAI,KACH,EAAW,GAAa,EAAQ,aAAa,CAAS,EAGrD,IAAc,OACd,IAAc,UACb,IAAc,QAAU,EAAQ,WAAa,KAC7C,CACI,GACJ,IAA2B,EAAS,EAAW,GAAS,EAAE,EAO3D,MACD,CAGG,EAAW,MAAgB,EAAW,GAAa,KAEnD,IAAc,YAEjB,EAAQ,IAAuB,GAG5B,GAAS,KACZ,EAAQ,gBAAgB,CAAS,EACvB,OAAO,GAAU,UAAY,GAAY,CAAO,EAAE,SAAS,CAAS,EAE9E,EAAQ,GAAa,EAErB,EAAQ,aAAa,EAAW,CAAK,EAEvC,CA2EA,SAAS,IACR,EACA,EACA,EACA,EACA,EAAyB,GACzB,EAAe,GACd,CACD,GAAI,IAAa,GAA0B,EAAQ,WAAa,IAAW,CAC1E,IAAI,EAAyC,GAC7B,EAAM,OAAS,WAAa,iBAAmB,kBAE5C,GAClB,GAAsB,CAAK,CAE7B,CAEA,IAAI,EAAa,GAAe,CAAO,EAEnC,EAAoB,EAAW,IAC/B,EAA0B,CAAC,EAAW,IAI1C,IAAI,EAA8B,IAAa,EAC3C,GACH,GAAc,EAAK,EAGpB,IAAI,EAAU,GAAQ,CAAC,EACnB,EAAoB,EAAQ,WAAa,IAE7C,IAAK,IAAI,KAAO,EACT,KAAO,IACZ,EAAK,GAAO,MAIV,EAAK,MACR,EAAK,MAAQ,GAAK,EAAK,KAAK,GAClB,GAAY,EAAK,OAC3B,EAAK,MAAQ,MAGV,EAAK,MACR,EAAK,QAAU,MAGhB,IAAI,EAAU,GAAY,CAAO,EAGjC,IAAK,IAAM,KAAO,EAAM,CAEvB,IAAI,EAAQ,EAAK,GAIjB,GAAI,GAAqB,IAAQ,SAAW,GAAS,KAAM,CAY1D,EAAQ,MAAQ,EAAQ,QAAU,GAClC,EAAQ,GAAO,EACf,QACD,CAEA,GAAI,IAAQ,QAAS,CAEpB,EAAU,EADI,EAAQ,eAAiB,+BACX,EAAO,EAAU,IAAO,IAAQ,EAAK,GAAM,EACvE,EAAQ,GAAO,EACf,EAAQ,IAAS,EAAK,IACtB,QACD,CAEA,GAAI,IAAQ,QAAS,CACpB,GAAU,EAAS,EAAO,IAAO,IAAQ,EAAK,GAAM,EACpD,EAAQ,GAAO,EACf,EAAQ,IAAS,EAAK,IACtB,QACD,CAEA,IAAI,EAAa,EAAQ,GAGrB,SAAU,GAAc,EAAE,IAAU,QAAa,EAAQ,aAAa,CAAG,IAI7E,GAAQ,GAAO,EAEf,IAAI,EAAS,EAAI,GAAK,EAAI,GACtB,OAAW,KAEf,GAAI,IAAW,KAAM,CAEpB,IAAM,EAAO,CAAC,EACR,EAAmB,KAAO,EAC5B,EAAa,EAAI,MAAM,CAAC,EAC5B,IAAI,EAAe,IAAmB,CAAU,EAOhD,GALI,IAAiB,CAAU,IAC9B,EAAa,EAAW,MAAM,EAAG,EAAE,EACnC,EAAK,QAAU,IAGZ,CAAC,GAAgB,EAAY,CAKhC,GAAI,GAAS,KAAM,SAEnB,EAAQ,oBAAoB,EAAY,EAAQ,GAAmB,CAAI,EACvE,EAAQ,GAAoB,IAC7B,CAEA,GAAI,EACH,EAAU,EAAY,EAAS,CAAK,EACpC,GAAS,CAAC,CAAU,CAAC,OACf,GAAI,GAAS,KAAM,CAKzB,SAAS,EAAO,EAAK,CACpB,EAAQ,GAAK,KAAK,KAAM,CAAG,CAC5B,CAEA,EAAQ,GAAoBG,GAAa,EAAY,EAAS,EAAQ,CAAI,CAC3E,CACD,MAAO,GAAI,IAAQ,QAElB,EAAc,EAAS,EAAK,CAAK,OAC3B,GAAI,IAAQ,YAClB,IAAsC,EAAU,EAAQ,CAAM,OACxD,GAAI,CAAC,IAAsB,IAAQ,WAAc,IAAQ,SAAW,GAAS,MAGnF,EAAQ,MAAQ,EAAQ,QAAU,OAC5B,GAAI,IAAQ,YAAc,EAChC,IAA+C,EAAU,CAAK,MACxD,CACN,IAAI,EAAO,EACN,IACJ,EAAO,IAAoB,CAAI,GAGhC,IAAI,EAAa,IAAS,gBAAkB,IAAS,iBAErD,GAAI,GAAS,MAAQ,CAAC,GAAqB,CAAC,EAG3C,GAFA,EAAW,GAAO,KAEd,IAAS,SAAW,IAAS,UAAW,CAE3C,IAAI,EAAyC,EACvC,EAAc,IAAS,OAC7B,GAAI,IAAS,QAAS,CACrB,IAAI,EAAW,EAAM,aACrB,EAAM,gBAAgB,CAAI,EAC1B,EAAM,aAAe,EAErB,EAAM,MAAQ,EAAM,QAAU,EAAc,EAAW,IACxD,KAAO,CACN,IAAI,EAAW,EAAM,eACrB,EAAM,gBAAgB,CAAI,EAC1B,EAAM,eAAiB,EACvB,EAAM,QAAU,EAAc,EAAW,EAC1C,CACD,MACC,EAAQ,gBAAgB,CAAG,OAG5B,GACC,EAAQ,SAAS,CAAI,IAAM,GAAqB,OAAO,GAAU,WAGlE,EAAQ,GAAQ,EAEZ,KAAQ,IAAY,EAAW,GAAQ,IACjC,OAAO,GAAU,YAC3B,EAAc,EAAS,EAAM,EAAO,CAAY,CAElD,CA9Fe,CA+FhB,CAMA,OAJI,GACH,GAAc,EAAI,EAGZ,CACR,CAYA,SAAgB,GACf,EACA,EACA,EAAO,CAAC,EACR,EAAQ,CAAC,EACT,EAAW,CAAC,EACZ,EACA,EAAyB,GACzB,EAAe,GACd,CACD,GAAQ,EAAU,EAAM,EAAQ,GAAW,CAE1C,IAAI,EAAO,OAGP,EAAU,CAAC,EAEX,EAAY,EAAQ,WAAa,IACjC,EAAS,GAoCb,GAlCA,OAAc,CACb,IAAI,EAAO,EAAG,GAAG,EAAO,IAAI,CAAG,CAAC,EAE5B,EAAU,IACb,EACA,EACA,EACA,EACA,EACA,CACD,EAEI,GAAU,GAAa,UAAW,GACrC,GAAgD,EAAU,EAAK,KAAK,EAGrE,IAAK,IAAI,KAAU,OAAO,sBAAsB,CAAO,EACjD,EAAK,IAAS,GAAe,EAAQ,EAAO,EAGlD,IAAK,IAAI,KAAU,OAAO,sBAAsB,CAAI,EAAG,CACtD,IAAI,EAAI,EAAK,GAET,EAAO,0BAAmC,CAAC,GAAQ,IAAM,EAAK,MAC7D,EAAQ,IAAS,GAAe,EAAQ,EAAO,EACnD,EAAQ,GAAU,OAAa,IAAO,MAAe,CAAC,CAAC,GAGxD,EAAQ,GAAU,CACnB,CAEA,EAAO,CACR,CAAC,EAEG,EAAW,CACd,IAAI,EAA2C,EAE/C,OAAa,CACZ,GAAc,EAAqD,EAAM,MAAO,EAAI,EACpF,GAAY,CAAM,CACnB,CAAC,CACF,CAEA,EAAS,EACV,CAAC,CACF,CAMA,SAAS,GAAe,EAAS,CAChC,MACoB,GAAU,MAAsB,EACjD,IAAoB,EAAQ,SAAS,SAAS,GAAG,GACjD,IAAU,EAAQ,eAAiB,CACrC,CAEF,CAGA,IAAI,GAAgB,IAAI,IAGxB,SAAS,GAAY,EAAS,CAC7B,IAAI,EAAY,EAAQ,aAAa,IAAI,GAAK,EAAQ,SAClD,EAAU,GAAc,IAAI,CAAS,EACzC,GAAI,EAAS,OAAO,EACpB,GAAc,IAAI,EAAY,EAAU,CAAC,CAAE,EAQ3C,IANA,IAAI,EACA,EAAQ,EACR,EAAgB,QAAQ,UAIrB,IAAkB,GAAO,CAG/B,IAAK,IAAI,IAFT,GAAc,EAAgB,CAAK,EAEnB,EAEd,EAAY,GAAK,KAEjB,IAAQ,aACR,IAAQ,eACR,IAAQ,aAER,EAAQ,KAAK,CAAG,EAIlB,EAAQ,GAAiB,CAAK,CAC/B,CAEA,OAAO,CACR,CAOA,SAAS,IAA2B,EAAS,EAAW,EAAO,CACzDhE,IACD,IAAc,UAAY,IAAiB,EAAS,CAAK,GACzD,GAAc,EAAQ,aAAa,CAAS,GAAK,GAAI,CAAK,GAE9D,GACC,EACA,EAAQ,UAAU,QAAQ,EAAQ,UAAW,EAAQ,WAAa,KAAK,EACvE,OAAO,CAAK,CACb,EACD,CAOA,SAAS,GAAc,EAAa,EAAK,CAExC,OADI,IAAgB,EAAY,GACzB,IAAI,IAAI,EAAa,SAAS,OAAO,EAAE,OAAS,IAAI,IAAI,EAAK,SAAS,OAAO,EAAE,IACvF,CAGA,SAAS,GAAa,EAAQ,CAC7B,OAAO,EAAO,MAAM,GAAG,EAAE,IAAK,GAAQ,EAAI,KAAK,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,CAC5E,CAOA,SAAS,IAAiB,EAAS,EAAQ,CAC1C,IAAI,EAAe,GAAa,EAAQ,MAAM,EAC1C,EAAO,GAAa,CAAM,EAE9B,OACC,EAAK,SAAW,EAAa,QAC7B,EAAK,OACH,CAAC,EAAK,GAAQ,IACd,IAAU,EAAa,GAAG,KAMzB,GAAc,EAAa,GAAG,GAAI,CAAG,GAAK,GAAc,EAAK,EAAa,GAAG,EAAE,EAClF,CAEF,CCtoBA,SAAgB,GAAW,EAAO,EAAK,EAAM,EAAK,CACjD,IAAI,EAAU,IAAI,QAElB,GAAgC,EAAO,QAAS,KAAO,IAAa,CAC/DA,GAAO,EAAM,OAAS,YAEzB,GAA8B,EAI/B,IAAI,EAAQ,EAAW,EAAM,aAAe,EAAM,MAclD,GAbA,EAAQ,GAAoB,CAAK,EAAI,GAAU,CAAK,EAAI,EACxD,EAAI,CAAK,EAEL,KAAkB,MACrB,EAAQ,IAAI,EAAa,EAM1B,MAAM,GAAK,EAGP,KAAW,EAAQ,EAAI,GAAI,CAC9B,IAAI,EAAQ,EAAM,eACd,EAAM,EAAM,aACZ,EAAS,EAAM,MAAM,OAMzB,GAHA,EAAM,MAAQ,GAAS,GAGnB,IAAQ,KAAM,CACjB,IAAI,EAAa,EAAM,MAAM,OAEzB,IAAU,GAAO,IAAQ,GAAU,EAAa,GACnD,EAAM,eAAiB,EACvB,EAAM,aAAe,IAErB,EAAM,eAAiB,EACvB,EAAM,aAAe,KAAK,IAAI,EAAK,CAAU,EAE/C,CACD,CACD,CAAC,GAKC,IAAa,EAAM,eAAiB,EAAM,OAG1C,GAAQ,CAAG,GAAK,MAAQ,EAAM,SAE/B,EAAI,GAAoB,CAAK,EAAI,GAAU,EAAM,KAAK,EAAI,EAAM,KAAK,EAEjE,KAAkB,MACrB,EAAQ,IAAI,EAAa,GAI3B,OAAoB,CACfA,GAAO,EAAM,OAAS,YAEzB,GAA8B,EAG/B,IAAI,EAAQ,EAAI,EAEhB,GAAI,IAAU,SAAS,cAAe,CAGrC,IAAI,EAA8B,EAAkB,GAAiB,GAOrE,GAAI,EAAQ,IAAI,CAAK,EACpB,MAEF,CAEI,GAAoB,CAAK,GAAK,IAAU,GAAU,EAAM,KAAK,GAK7D,EAAM,OAAS,QAAU,CAAC,GAAS,CAAC,EAAM,OAQ1C,IAAU,EAAM,QAEnB,EAAM,MAAQ,GAAS,GAEzB,CAAC,CACF,CA2GA,SAAgB,IAAa,EAAO,EAAK,EAAM,EAAK,CACnD,GAAgC,EAAO,SAAW,GAAa,CAE9D,EADY,EAAW,EAAM,eAAiB,EAAM,OAC3C,CACV,CAAC,GAKC,IAAa,EAAM,iBAAmB,EAAM,SAE7C,GAAQ,CAAG,GAAK,OAEhB,EAAI,EAAM,OAAO,EAGlB,OAAoB,CAEnB,EAAM,QAAU,EADJ,EACY,CACzB,CAAC,CACF,CA8BA,SAAS,GAAoB,EAAO,CACnC,IAAI,EAAO,EAAM,KACjB,OAAO,IAAS,UAAY,IAAS,OACtC,CAKA,SAAS,GAAU,EAAO,CACzB,OAAO,IAAU,GAAK,KAAO,CAAC,CAC/B,CCrRA,SAAgB,GAAU,EAAO,EAAM,EAAO,CAC7C,IAAI,EAAO,EAAe,EAAO,CAAI,EAEjC,GAAQ,EAAK,MAChB,EAAM,GAAQ,EACd,OAAe,CACd,EAAM,GAAQ,IACf,CAAC,EAEH,CC+CA,IAAI,IAA6C,IAAI,MA7D/C,CAAwB,CAE7B,GAAa,IAAI,QAGjB,GAGA,GAGA,OAAO,QAAU,IAAI,QAGrB,YAAY,EAAS,CACpB,KAAKoF,GAAW,CACjB,CAMA,QAAQ,EAAS,EAAU,CAC1B,IAAI,EAAY,KAAKC,GAAW,IAAI,CAAO,GAAK,IAAI,IAMpD,OALA,EAAU,IAAI,CAAQ,EAEtB,KAAKA,GAAW,IAAI,EAAS,CAAS,EACtC,KAAKC,GAAa,EAAE,QAAQ,EAAS,KAAKF,EAAQ,MAErC,CACZ,IAAI,EAAY,KAAKC,GAAW,IAAI,CAAO,EAC3C,EAAU,OAAO,CAAQ,EAErB,EAAU,OAAS,IACtB,KAAKA,GAAW,OAAO,CAAO,EACA,KAAME,GAAW,UAAU,CAAO,EAElE,CACD,CAEA,IAAe,CACd,MACC,CACC,KAAKA,KAAY,IAAI,eACQ,GAAY,CACxC,IAAK,IAAI,KAAS,EAAS,CAC1B,EAAwB,QAAQ,IAAI,EAAM,OAAQ,CAAK,EACvD,IAAK,IAAI,KAAY,KAAKF,GAAW,IAAI,EAAM,MAAM,GAAK,CAAC,EAC1D,EAAS,CAAK,CAEhB,CACD,CACD,CAEF,CACD,EAM6E,CAC5E,IAAK,YACN,CAAC,EA4BD,SAAgB,IAAkB,EAAS,EAAM,EAAK,CACrD,IAAI,EAAQ,IAA2B,QAAQ,MAAe,EAAI,EAAQ,EAAK,CAAC,EAEhF,QAEC,OAAc,EAAI,EAAQ,EAAK,CAAC,EACzB,EACP,CACF,CC/FA,SAAS,GAAc,EAAa,EAAsB,CACzD,OACC,IAAgB,GAAwB,IAAc,MAAkB,CAE1E,CAUA,SAAgB,GAAU,EAAuB,CAAC,EAAG,EAAQ,EAAW,EAAW,CAClF,IAAI,EAAoD,GAAmB,EACvE,EAAgC,GAiDpC,OA/CA,OAAa,CAEZ,IAAI,EAGA,EAmBJ,OAjBA,OAAoB,CACnB,EAAY,EAEZ,EAAQ,IAAY,GAAK,CAAC,EAE1B,OAAc,CACR,GAAc,EAAU,GAAG,CAAK,EAAG,CAAoB,IAC3D,EAAO,EAAsB,GAAG,CAAK,EAGjC,GAAa,GAAc,EAAU,GAAG,CAAS,EAAG,CAAoB,GAC3E,EAAO,KAAM,GAAG,CAAS,EAG5B,CAAC,CACF,CAAC,MAEY,CAMZ,IAAI,EAAI,EACR,KAAO,IAAM,GAAoB,EAAE,SAAW,MAAQ,EAAE,OAAO,YAC9D,EAAI,EAAE,OAEP,IAAM,MAAiB,CAClB,GAAS,GAAc,EAAU,GAAG,CAAK,EAAG,CAAoB,GACnE,EAAO,KAAM,GAAG,CAAK,CAEvB,EACM,EAAoB,EAAE,SAC5B,EAAE,aAAiB,CAClB,EAAS,EACT,IAAoB,CACrB,CACD,CACD,CAAC,EAEM,CACR,CCrCA,SAAgB,IAAc,EAAU,EAAY,EAAS,EAAK,EAAK,CACtE,IAAI,MAAgB,CAEnB,EAAI,EAAQ,EAAS,CACtB,EAEA,EAAQ,iBAAiB,EAAY,CAAO,EAExC,EACH,OAAoB,CAEnB,EAAQ,GAAY,EAAI,CACzB,CAAC,EAED,EAAQ,GAIL,IAAY,SAAS,MAAQ,IAAY,QAAU,IAAY,WAClE,OAAe,CACd,EAAQ,oBAAoB,EAAY,CAAO,CAChD,CAAC,CAEH,CCpBA,SAAgB,GAAgB,EAAI,CACnC,OAAO,SAAU,GAAG,EAAM,CAIzB,OAFA,EADuC,GACjC,gBAAgB,EAEf,GAAI,MAAM,KAAM,CAAI,CAC5B,CACD,CAyCA,SAAgB,GAAe,EAAI,CAClC,OAAO,SAAU,GAAG,EAAM,CAIzB,OAFA,EADuC,GACjC,eAAe,EAEd,GAAI,MAAM,KAAM,CAAI,CAC5B,CACD,CCvFA,SAAgBG,GAAK,EAAY,GAAO,CACvC,IAAM,EAAiD,GAEjD,EAAY,EAAQ,EAAE,EAC5B,GAAI,CAAC,EAAW,OAEhB,IAAI,MAAc,GAAgB,EAAQ,CAAC,EAE3C,GAAI,EAAW,CACd,IAAI,EAAU,EACV,EAA2C,CAAC,EAG1C,EAAI,OAAc,CACvB,IAAI,EAAU,GACR,EAAQ,EAAQ,EACtB,IAAK,IAAM,KAAO,EACb,EAAM,KAAS,EAAK,KACvB,EAAK,GAAO,EAAM,GAClB,EAAU,IAIZ,OADI,GAAS,IACN,CACR,CAAC,EAED,MAAc,EAAI,CAAC,CACpB,CAGI,EAAU,EAAE,QACf,OAAsB,CACrB,GAAY,EAAS,CAAK,EAC1B,GAAQ,EAAU,CAAC,CACpB,CAAC,EAIF,OAAkB,CACjB,IAAM,EAAM,OAAc,EAAU,EAAE,IAAI,EAAG,CAAC,EAC9C,UAAa,CACZ,IAAK,IAAM,KAAM,EACZ,OAAO,GAAO,YACjB,EAAG,CAGN,CACD,CAAC,EAGG,EAAU,EAAE,QACf,OAAkB,CACjB,GAAY,EAAS,CAAK,EAC1B,GAAQ,EAAU,CAAC,CACpB,CAAC,CAEH,CAQA,SAAS,GAAY,EAAS,EAAO,CACpC,GAAI,EAAQ,EAAE,EACb,IAAK,IAAM,KAAU,EAAQ,EAAE,EAAG,EAAI,CAAM,EAG7C,EAAM,CACP,CCpDA,SAAgB,GAAa,EAAS,EAAO,CAC5C,IAAI,EAA+D,EAAQ,WAC1E,EAAM,MAKP,IAAK,IAAI,KAFO7F,EAAS,CAAM,EAAI,EAAO,MAAM,EAAI,GAAU,KAAO,CAAC,EAAI,CAAC,CAAM,EAIhF,EAAG,KAAK,KAAM,CAAK,CAErB,CCaA,IAAM,IAAqB,CAC1B,IAAI,EAAQ,EAAK,CACZ,MAAO,QAAQ,SAAS,CAAG,EAC/B,OAAO,EAAO,MAAM,EACrB,EACA,IAAI,EAAQ,EAAK,CAMhB,OALIK,GAEH,GAAsB,GAAG,EAAO,KAAK,GAAG,OAAO,CAAG,GAAG,EAG/C,EACR,EACA,yBAAyB,EAAQ,EAAK,CACjC,MAAO,QAAQ,SAAS,CAAG,GAC3B,KAAO,EAAO,MACjB,MAAO,CACN,WAAY,GACZ,aAAc,GACd,MAAO,EAAO,MAAM,EACrB,CAEF,EACA,IAAI,EAAQ,EAAK,CAEhB,OADI,EAAO,QAAQ,SAAS,CAAG,EAAU,GAClC,KAAO,EAAO,KACtB,EACA,QAAQ,EAAQ,CACf,OAAO,QAAQ,QAAQ,EAAO,KAAK,EAAE,OAAQ,GAAQ,CAAC,EAAO,QAAQ,SAAS,CAAG,CAAC,CACnF,CACD,EASA,SAAgB,GAAW,EAAO,EAAS,EAAM,CAChD,OAAO,IAAI,MACVA,EAAM,CAAE,QAAO,UAAS,OAAM,MAAO,CAAC,EAAG,SAAU,CAAC,CAAE,EAAI,CAAE,QAAO,SAAQ,EAC3E,GACD,CACD,CA4FA,IAAM,IAAuB,CAC5B,IAAI,EAAQ,EAAK,CAChB,IAAI,EAAI,EAAO,MAAM,OACrB,KAAO,KAAK,CACX,IAAI,EAAI,EAAO,MAAM,GAErB,GADI,GAAY,CAAC,IAAG,EAAI,EAAE,GACtB,OAAO,GAAM,UAAY,GAAc,KAAO,EAAG,OAAO,EAAE,EAC/D,CACD,EACA,IAAI,EAAQ,EAAK,EAAO,CACvB,IAAI,EAAI,EAAO,MAAM,OACrB,KAAO,KAAK,CACX,IAAI,EAAI,EAAO,MAAM,GACjB,GAAY,CAAC,IAAG,EAAI,EAAE,GAC1B,IAAM,EAAO,EAAe,EAAG,CAAG,EAClC,GAAI,GAAQ,EAAK,IAEhB,OADA,EAAK,IAAI,CAAK,EACP,EAET,CACA,MAAO,EACR,EACA,yBAAyB,EAAQ,EAAK,CACrC,IAAI,EAAI,EAAO,MAAM,OACrB,KAAO,KAAK,CACX,IAAI,EAAI,EAAO,MAAM,GAErB,GADI,GAAY,CAAC,IAAG,EAAI,EAAE,GACtB,OAAO,GAAM,UAAY,GAAc,KAAO,EAAG,CACpD,IAAM,EAAa,EAAe,EAAG,CAAG,EAOxC,OANI,GAAc,CAAC,EAAW,eAI7B,EAAW,aAAe,IAEpB,CACR,CACD,CACD,EACA,IAAI,EAAQ,EAAK,CAEhB,GAAI,IAAQ,IAAgB,IAAQ,GAAc,MAAO,GAEzD,IAAK,IAAI,KAAK,EAAO,MAEpB,GADI,GAAY,CAAC,IAAG,EAAI,EAAE,GACtB,GAAK,MAAQ,KAAO,EAAG,MAAO,GAGnC,MAAO,EACR,EACA,QAAQ,EAAQ,CAEf,IAAM,EAAO,CAAC,EAEd,IAAK,IAAI,KAAK,EAAO,MACpB,GAAI,GAAY,CAAC,IAAG,EAAI,EAAE,GACrB,EAEL,KAAK,IAAM,KAAO,EACZ,EAAK,SAAS,CAAG,GAAG,EAAK,KAAK,CAAG,EAGvC,IAAK,IAAM,KAAO,OAAO,sBAAsB,CAAC,EAC1C,EAAK,SAAS,CAAG,GAAG,EAAK,KAAK,CAAG,CAJA,CAQxC,OAAO,CACR,CACD,EAMA,SAAgB,GAAa,GAAG,EAAO,CACtC,OAAO,IAAI,MAAM,CAAE,OAAM,EAAG,GAAoB,CACjD,CAYA,SAAgB,EAAK,EAAO,EAAK,EAAO,EAAU,CACjD,IAAI,EAAQ,CAAC,IAAqB,MAA4B,EAC1D,GAAY,MAA+B,EAC3C,GAAQ,OAAmC,EAE3C,EAAmC,EACnC,EAAiB,GACjB,EAAyD,OAEzD,MACC,GAAQ,GACX,IAAoB,GAAgC,CAAS,EACtD,EAAI,CAAe,IAGvB,IACH,EAAiB,GAEjB,EAAiB,EACd,GAAgC,CAAS,EACvB,GAGf,GAIR,IAAI,EAEJ,GAAI,EAAU,CAGb,IAAI,EAAiB,MAAgB,GAAS,MAAgB,EAE9D,EACC,EAAe,EAAO,CAAG,GAAG,MAC3B,GAAkB,KAAO,EAAS,GAAO,EAAM,GAAO,EAAK,OAC9D,CAGA,IAAI,EACA,EAAe,GAEf,EACH,CAAC,EAAe,GAAgB,OAA8C,EAAM,EAAK,EAEzF,EAAkC,EAAM,GAGrC,IAAkB,QAAa,IAAa,SAC/C,EAAgB,EAAa,EAEzB,IACC,GAAO,GAAsB,CAAG,EACpC,EAAO,CAAa,IAKtB,IAAI,EAEA,MACY,CACd,IAAI,EAA0B,EAAM,GAGpC,OAFI,IAAU,OAAkB,EAAa,GAC7C,EAAiB,GACV,EACR,MAEe,CACd,IAAI,EAA0B,EAAM,GAUpC,OARI,IAAU,SAKb,EAAmC,QAG7B,IAAU,OAAY,EAAiB,CAC/C,EAID,GAAI,KAAU,KACb,OAAO,EAKR,GAAI,EAAQ,CACX,IAAI,EAAgB,EAAM,SAC1B,OACC,SAA2B,EAA8B,EAAU,CAalE,OAZI,UAAU,OAAS,IAKlB,CAAC,GAAS,CAAC,GAAY,GAAiB,IACnB,EAAS,EAAW,EAAO,EAAI,CAAK,EAGtD,GAGD,EAAO,CACf,EAEF,CAMA,IAAI,EAAa,GAEb,GAAM,IAAoC,GAAU,SACvD,EAAa,GACN,EAAO,EACd,EAEGA,IACH,EAAE,MAAQ,GAIP,GAAU,EAAI,CAAC,EAEnB,IAAI,EAAuC,GAE3C,OACC,SAA6B,EAA8B,EAAU,CACpE,GAAI,UAAU,OAAS,EAAG,CACzB,IAAM,EAAY,EAAW,EAAI,CAAC,EAAI,GAAS,EAAW,GAAM,CAAK,EAAI,EASzE,OAPA,EAAI,EAAG,CAAS,EAChB,EAAa,GAET,IAAmB,SACtB,EAAiB,GAGX,CACR,CASA,OAJK,IAAwB,GAAgB,EAAc,QACnD,EAAE,EAGH,EAAI,CAAC,CACb,EAEF,CCpTA,SAAgB,GAAU,EAAO,CAChC,IAAI,EAEE,EAAY,GAAkB,GAAW,CAC9C,IAAI,EAAM,GAEJ,EAAc,EAAM,UAAW,GAAM,CAC1C,EAAQ,EACJ,GAAK,EAAO,CACjB,CAAC,EAID,MAFA,GAAM,GAEC,CACR,CAAC,EAED,SAAS,GAAU,CAMlB,OALI,GAAgB,GACnB,EAAU,EACH,GAGDS,GAAI,CAAK,CACjB,CAaA,MAXI,QAAS,EACL,CACN,IAAI,SAAU,CACb,OAAO,EAAQ,CAChB,EACA,IAAI,QAAQ,EAAG,CACd,EAAM,IAAI,CAAC,CACZ,CACD,EAGM,CACN,IAAI,SAAU,CACb,OAAO,EAAQ,CAChB,CACD,CACD,CCjJA,IAAM,GAAY,OAAO,OAAW,IAChC,GAAU,GAAY,OAAO,SAAS,OAAS,GAC/C,GAAyB,CAAC,EACxB,IAAkB,CAAC,WAAW,EAChC,IAAyB,CAAC,SAAU,WAAW,EAG7C,GAAiB,IACjB,IAAkB,GAClB,IAAmB,GACrB,GAAkB,KAAK,IAAI,EAC3B,GAAa,EACX,GAAe,IAAI,IACnB,GAQD,CAAC,EAEA,QAAqB,CACzB,IAAM,EAAY,MAAM,EAAE,MAErB,KAEL,OAAO,EACJ,MAAM;CAAI,EACV,MAAM,EAAG,EAAE,EACX,IAAK,GAAS,EAAK,KAAK,CAAC,CAC9B,EAYa,GAAW,GAT4B,CAClD,KAAM,IAAY,OAAO,SAAS,UAAkB,IACpD,OAAQ,IAAY,OAAO,SAAS,QAAe,GACnD,KAAM,IAAY,OAAO,SAAS,MAAa,GAC/C,KAAM,GACN,IAAK,GACL,IAAK,GAAG,KAAU,IAAY,OAAO,SAAS,UAAkB,KAClE,CAEuE,EACnE,GAAiC,KAE/B,KAAoB,EAAc,EAAgB,IACtD,GAAG,EAAK,IAAI,GAAU,GAAG,IAAI,GAAQ,KAEvB,IACd,GAAS,UAAW,GAAU,MAA4C,EAG5E,IAAM,GAAS,IAAI,IAEN,IAA2B,EAAY,KAClD,GAAO,IAAI,EAAI,CAAK,MAEP,GAAO,OAAO,CAAE,GAqBlB,GAAyB,GACpC,IAAgB,SAAS,CAAG,GAAK,IAAuB,KAAM,GAAW,EAAI,WAAW,CAAM,CAAC,EAE3F,KAA6B,EAAyB,IAA8B,CACxF,MAAM,KAAK,EAAO,KAAK,CAAC,EAAE,QAAS,GAAQ,CACrC,CAAC,EAAa,IAAI,CAAG,GAAK,GAAsB,CAAG,GACrD,EAAO,OAAO,CAAG,CAErB,CAAC,CACH,EAEa,IAAuC,GAAsC,CACxF,IAAM,EAAa,OAAO,GAAW,SAAW,EAAO,QAAQ,MAAO,EAAE,EAAI,GAE5E,GAAI,CAAC,EAAY,MAAO,GAExB,IAAM,EAAS,IAAI,gBAAgB,CAAU,EAC7C,MAAM,KAAK,EAAO,KAAK,CAAC,EAAE,QAAS,GAAQ,CACrC,GAAsB,CAAG,GAC3B,EAAO,OAAO,CAAG,CAErB,CAAC,EAED,IAAM,EAAa,EAAO,SAAS,EAEnC,OAAO,EAAa,IAAI,IAAe,EACzC,EAEM,IAAa,EAAY,EAA8B,IAAwB,CACnF,IAAK,IAAM,KAAS,GAAO,OAAO,EAChC,GAAI,EAAM,EAAI,EAAS,CAAM,IAAM,GACjC,MAAO,GAIX,MAAO,EACT,EAEM,IAAmB,GAClB,GAEE,EAAM,QAAQ,OAAQ,EAAE,GAFZ,GAKf,IAAiB,IAChB,EAAM,WAAW,GAAG,IACvB,EAAQ,IAAI,KAGV,EAAM,OAAS,GAAK,EAAM,SAAS,GAAG,IACxC,EAAQ,EAAM,MAAM,EAAG,EAAE,GAGpB,GAAS,KAGZ,GAAe,GAAoB,CACvC,IAAI,EAAO,EACP,EAAS,GACT,EAAO,GAEX,GAAI,OAAO,GAAS,UAAY,EAAK,OAAS,EAAG,CAC/C,IAAM,EAAY,EAAK,QAAQ,GAAG,EAE9B,IAAc,KAChB,EAAO,EAAK,MAAM,CAAS,EAC3B,EAAO,EAAK,MAAM,EAAG,CAAS,GAGhC,IAAM,EAAa,EAAK,QAAQ,GAAG,EAE/B,IAAe,KACjB,EAAS,EAAK,MAAM,CAAU,EAC9B,EAAO,EAAK,MAAM,EAAG,CAAU,EAEnC,MAAW,IACT,EAAO,OAAO,SAAS,SACvB,EAAS,OAAO,SAAS,QAAU,GACnC,EAAO,OAAO,SAAS,MAAQ,IAE/B,EAAO,IAKT,MAAO,CACL,KAAM,GAAQ,IACd,SACA,MACF,CACF,EAEM,GAAmB,GAAoB,CAC3C,GAAM,CAAE,OAAM,SAAQ,QAAS,GAAY,CAAM,EAC7C,EAAiB,EAEjB,EAAe,WAAW,EAAO,IACnC,EAAiB,EAAe,MAAM,GAAQ,MAAM,GAAK,KAGtD,EAAe,WAAW,GAAG,IAChC,EAAiB,IAAI,KAGvB,IAAM,EAAU,IAAiB,EAAgB,GAAU,GAAI,GAAQ,EAAE,EAEzE,GAAI,IAAY,GAGd,OAGF,GAAkB,EAElB,IAAM,EAAM,KAAK,IAAI,EAEjB,EAAM,GAAkB,KAC1B,GAAkB,EAClB,GAAa,GAGf,IAAc,EACd,IAAM,EAAQ,IAAa,EAC3B,GAAgB,KAAK,CAAE,GAAI,EAAK,IAAK,EAAS,SAAQ,iBAAgB,SAAQ,OAAM,OAAM,CAAC,EAEvF,GAAgB,OAAS,IAC3B,GAAgB,MAAM,EAGxB,GAAa,IAAI,GAAU,GAAa,IAAI,CAAO,GAAK,GAAK,CAAC,EAC9D,IAAM,EAAW,GAAa,IAAI,CAAO,GAAK,GAE1C,GAAa,KAAmB,EAAW,MAC7C,QAAQ,MAAM,qCAAsC,CAClD,cACA,SAAU,GACV,QAAS,EACT,aAAc,MAAM,KAAK,GAAa,QAAQ,CAAC,EAC/C,kBACF,CAAC,EAeH,GAAS,IAAI,CACX,KAAM,EACN,OAAQ,GAAU,GAClB,KAAM,GAAQ,GACd,KAAM,EAAQ,EACd,IAAK,CAAC,EACN,IAAK,GAAG,KAAU,IAAiB,IAAS,GAC9C,CAAC,CACH,EAEI,GAAiB,GACjB,GAA+C,KAC/C,GAAqD,KAInD,GAAkB,sBAClB,GAAoB,GAAkC,CAC1D,IAAM,EACJ,GAAS,OAAO,GAAU,SAAY,EAAkC,IAAmB,KAE7F,OAAO,OAAO,GAAU,UAAY,OAAO,cAAc,CAAK,EAAI,EAAQ,IAC5E,EACI,GAAsB,GAAa,GAAiB,QAAQ,KAAK,GAAK,EAAK,EAC3E,GAAsB,EACtB,GACF,KACE,GAAmC,KAEjC,GAA0B,GAAyB,CACvD,IAAM,EAAY,GAAiB,EAAM,KAAK,EAE9C,GAAI,IAAsB,IAAc,KAAM,CAC5C,IAAM,EAAU,GAEhB,GAAI,IAAc,EAAQ,OAAQ,CAChC,QAAQ,GAAG,EAAQ,OAAS,CAAS,EAErC,MACF,CAEA,GAAqB,KACrB,IAAM,MAAe,CACf,EAAQ,aAAe,IAEtB,GAAU,EAAQ,IAAK,OAAW,CAAM,IAE7C,IAAuB,EACvB,GAAoB,EAAQ,OAC5B,QAAQ,GAAG,EAAQ,OAAS,EAAQ,MAAM,EAC5C,EACA,EAAO,EAEP,MACF,CAEA,GAAI,IAAc,MAAQ,KAAsB,EAAW,CACzD,GAAoB,KACpB,GAAsB,EACtB,GAAgB,EAEhB,MACF,CAKA,GAHA,GAAoB,KACpB,IAAuB,EAEnB,GAAO,MAAQ,IAAc,MAAQ,IAAc,GAAqB,CAC1E,GAAqB,CACnB,OAAQ,GACR,OAAQ,EACR,IAAK,OAAO,SAAS,SAAW,OAAO,SAAS,OAAS,OAAO,SAAS,KACzE,WAAY,EACd,EACA,QAAQ,GAAG,GAAsB,CAAS,EAE1C,MACF,CAEA,GAAsB,GAAa,GACnC,GAAgB,CAClB,EAEM,GAA8B,gCAC9B,GAAkC,6BAElC,OAAiC,CACjC,CAAC,IAAa,CAAC,KAElB,OAA+D,IAC9D,GACJ,EAEM,OAAuC,CAC3C,GAAI,CAAC,GAAW,MAAO,GAEvB,IAAM,EAAO,OAA8C,IAE3D,OAAO,OAAO,GAAQ,UAAY,OAAO,SAAS,CAAG,EAAI,EAAM,CACjE,EAEM,GAAkC,GAAkB,CACnD,KAEJ,OAA8C,IAAmC,KAAK,IACrF,EACA,CACF,EACF,EAEM,IAAgC,GAAyB,CAC7D,IAAM,EAAW,GAA+B,EAChD,GAA+B,EAAW,CAAC,EAC3C,GAAI,CACF,EAAS,CACX,QAAU,CACR,GAA+B,CAAQ,CACzC,CACF,EAEa,IAAiB,GAA4D,CAOxF,GANA,GAAU,IAAgB,GAAS,OAAO,EAEtC,GAAS,eACX,GAAe,EAAQ,cAGrB,CAAC,GAAW,CACd,GAAgB,EAEhB,MACF,CAEA,GAAI,CAAC,GAAgB,CAWnB,GAVA,GAAiB,GACjB,GAAkB,QAAQ,UAC1B,GAAqB,QAAQ,aAC7B,GAAyB,EACzB,GAAmB,KACjB,QACA,CAAE,GAAI,QAAQ,OAAS,CAAC,GAAK,IAAkB,EAAoB,EACnE,EACF,EAEI,OAAO,MAAU,IAAa,CAChC,IAAM,GAAgB,EAAa,EAAc,IAAyB,CACxE,IAAM,EAAS,GAAiB,EAAc,QAAU,EAAI,EAAc,GAAK,OACzE,EAAY,IAAW,GAAkB,GAAsB,EAAI,GAKzE,GAJA,EAAc,GAAK,CAAE,GAAI,EAAc,IAAM,CAAC,GAAK,IAAkB,CAAU,EAC/E,GAAsB,EACtB,IAAuB,EAEnB,GAA+B,EAAI,EAAG,CACxC,QAAQ,MAAM,EAAQ,EAAS,CAAa,EAE5C,MACF,CAEA,GAAgB,CAAM,EACtB,QAAQ,MAAM,EAAQ,EAAS,CAAa,CAC9C,EAEA,QAAQ,UAAY,IAAI,MAAM,GAAiB,CAAE,MAAO,CAAa,CAAC,EACtE,QAAQ,aAAe,IAAI,MAAM,GAAoB,CAAE,MAAO,CAAa,CAAC,CAC9E,MACE,QAAQ,UAAY,SAAmB,EAAW,EAAe,EAA2B,CAW1F,MAVA,KAAuB,EACvB,IAAuB,EACvB,UAAU,GAAK,CAAE,GAAI,GAAQ,CAAC,GAAK,IAAkB,EAAoB,EAErE,GAA+B,EAAI,GAIvC,GAAgB,OAAO,GAAQ,SAAW,EAAM,GAAK,SAAS,CAAC,EAHtD,GAAiB,MAAM,QAAS,SAA8C,CAMzF,EAEA,QAAQ,aAAe,SACrB,EACA,EACA,EACA,CAUA,MATA,KAAuB,EACvB,UAAU,GAAK,CAAE,GAAI,GAAQ,CAAC,GAAK,IAAkB,EAAoB,EAErE,GAA+B,EAAI,GAIvC,GAAgB,OAAO,GAAQ,SAAW,EAAM,GAAK,SAAS,CAAC,EAHtD,GAAoB,MAAM,QAAS,SAA8C,CAM5F,EAGF,OAAO,iBAAiB,WAAY,EAAsB,CAC5D,CAEA,GAAgB,CAClB,EAEa,IAA+B,GAAoB,CAC9D,GAAI,CAAC,GAAW,OAKhB,IAAM,EAFJ,OACA,KAC0C,IAAsB,QAAQ,aAC1E,QAAmC,CACjC,QAAQ,MAAM,EAAc,QAAS,CAAC,QAAQ,MAAO,SAAS,MAAO,CAAO,CAAC,CAC/E,CAAC,CACH,EAEM,KAAqB,EAAgB,IAAiC,CAC1E,GAAI,CAAC,GACH,OAAO,EAGT,IAAM,EAAY,EAAO,QAAQ,GAAG,EAC9B,EAAO,IAAc,GAA+B,GAA1B,EAAO,MAAM,CAAS,EAChD,EAAO,IAAc,GAAkC,EAA7B,EAAO,MAAM,EAAG,CAAS,EACnD,EAAa,EAAK,QAAQ,GAAG,EAC7B,EAAW,IAAe,GAAiC,EAA5B,EAAK,MAAM,EAAG,CAAU,EACvD,EAAc,IAAe,GAAkC,GAA7B,EAAK,MAAM,EAAa,CAAC,EAE3D,EAAe,IAAI,gBAAgB,CAAW,EAC9C,EAAa,IAAI,IACvB,EAAa,SAAS,EAAG,IAAQ,EAAW,IAAI,CAAG,CAAC,EACpD,IAAM,EAAgB,IAAI,gBAAgB,OAAO,SAAS,QAAU,EAAE,EAChD,GAAS,eAAiB,GAkBrC,GAAa,QACtB,GAAa,QAAS,GAAU,EAAa,OAAO,CAAK,CAAC,GAhB1D,EAAc,SAAS,EAAO,IAAQ,CAC/B,EAAa,IAAI,CAAG,GACvB,EAAa,OAAO,EAAK,CAAK,CAElC,CAAC,EAED,GAAa,QAAS,GAAU,CAC9B,GAAI,CAAC,EAAa,IAAI,CAAK,EAAG,CAC5B,IAAM,EAAc,EAAc,IAAI,CAAK,EAEvC,IAAgB,MAClB,EAAa,IAAI,EAAO,CAAW,CAEvC,CACF,CAAC,GAKH,IAA0B,EAAc,CAAU,EAElD,IAAM,EAAa,EAAa,SAAS,EAEzC,MAAO,GAAG,IAAW,EAAa,IAAI,IAAe,KAAK,GAC5D,EAEa,IAAe,EAAY,EAA8B,IAA6B,CACjG,GAAI,CAAC,GAAW,OAEhB,GAAM,CAAE,OAAM,SAAQ,QAAS,GAAY,CAAE,EAEzC,EAAa,IAAkB,GADZ,IAAc,CACC,IAAiB,IAAS,IAAQ,CAAO,EAE1E,GAAU,EAAY,MAAe,GAAY,EAAI,EAAS,CAAQ,CAAC,IAM5E,IAAW,EAEP,GAAS,QACX,OAAO,QAAQ,aAAa,KAAM,GAAI,CAAU,EAEhD,OAAO,QAAQ,UAAU,KAAM,GAAI,CAAU,EAG/C,GAAgB,CAAU,EAC1B,OAAO,cACL,IAAI,YAAY,eAAgB,CAC9B,OAAQ,CAAE,GAAI,CAAW,CAC3B,CAAC,CACH,EACF,EAEa,QAAgB,CACvB,OAAO,OAAW,KAEtB,OAAO,QAAQ,KAAK,CACtB,EAEa,IACX,EACA,IACG,CACH,IAAM,EAAW,GAAsB,CACrC,GAAI,EAAK,QAAQ,YAAc,EAAK,QAAQ,aAAe,QACzD,OAGF,IAAM,EAAS,EAAM,cAErB,IACG,EAAO,SAAW,IAAM,EAAO,SAAW,UAC3C,EAAO,KAAK,WAAW,OAAO,SAAS,MAAM,EAC7C,CAKA,GAJA,EAAM,eAAe,EACF,OAAO,SAAS,SAAW,OAAO,SAAS,OAAS,OAAO,SAAS,OACxE,EAAO,SAAW,EAAO,OAAS,EAAO,KAE7B,OAE3B,GAAY,EAAO,SAAW,EAAO,OAAS,EAAO,IAAI,CAC3D,CACF,EAEM,EAAkB,GAAsB,CAC5C,GAAO,UAAU,CAAK,EACtB,EAAQ,CAAK,CACf,EAIA,OAFA,EAAK,iBAAiB,QAAS,CAAc,EAEtC,CACL,SAAU,CACR,EAAK,oBAAoB,QAAS,CAAc,CAClD,CACF,CACF,ECtkBI,IAAW,UAAY,CACvB,GAAI,OAAO,IAAQ,IACf,OAAO,IASX,SAAS,EAAS,EAAK,EAAK,CACxB,IAAI,EAAS,GAQb,OAPA,EAAI,KAAK,SAAU,EAAO,EAAO,CAK7B,OAJI,EAAM,KAAO,GACb,EAAS,EACF,IAEJ,EACX,CAAC,EACM,CACX,CACA,OAAsB,UAAY,CAC9B,SAAS,GAAU,CACf,KAAK,YAAc,CAAC,CACxB,CAsEA,OArEA,OAAO,eAAe,EAAQ,UAAW,OAAQ,CAI7C,IAAK,UAAY,CACb,OAAO,KAAK,YAAY,MAC5B,EACA,WAAY,GACZ,aAAc,EAClB,CAAC,EAKD,EAAQ,UAAU,IAAM,SAAU,EAAK,CACnC,IAAI,EAAQ,EAAS,KAAK,YAAa,CAAG,EACtC,EAAQ,KAAK,YAAY,GAC7B,OAAO,GAAS,EAAM,EAC1B,EAMA,EAAQ,UAAU,IAAM,SAAU,EAAK,EAAO,CAC1C,IAAI,EAAQ,EAAS,KAAK,YAAa,CAAG,EACtC,CAAC,EACD,KAAK,YAAY,GAAO,GAAK,EAG7B,KAAK,YAAY,KAAK,CAAC,EAAK,CAAK,CAAC,CAE1C,EAKA,EAAQ,UAAU,OAAS,SAAU,EAAK,CACtC,IAAI,EAAU,KAAK,YACf,EAAQ,EAAS,EAAS,CAAG,EAC7B,CAAC,GACD,EAAQ,OAAO,EAAO,CAAC,CAE/B,EAKA,EAAQ,UAAU,IAAM,SAAU,EAAK,CACnC,MAAO,CAAC,CAAC,CAAC,EAAS,KAAK,YAAa,CAAG,CAC5C,EAIA,EAAQ,UAAU,MAAQ,UAAY,CAClC,KAAK,YAAY,OAAO,CAAC,CAC7B,EAMA,EAAQ,UAAU,QAAU,SAAU,EAAU,EAAK,CAC7C,IAAQ,IAAK,KAAK,EAAM,MAC5B,IAAK,IAAI,EAAK,EAAG,EAAK,KAAK,YAAa,EAAK,EAAG,OAAQ,IAAM,CAC1D,IAAI,EAAQ,EAAG,GACf,EAAS,KAAK,EAAK,EAAM,GAAI,EAAM,EAAE,CACzC,CACJ,EACO,CACX,EAAE,CACN,GAAG,EAKCgF,GAAY,OAAO,OAAW,KAAe,OAAO,SAAa,KAAe,OAAO,WAAa,SAGpG,IAAY,UAAY,CAWxB,OAVI,OAAO,OAAW,KAAe,OAAO,OAAS,KAC1C,OAEP,OAAO,KAAS,KAAe,KAAK,OAAS,KACtC,KAEP,OAAO,OAAW,KAAe,OAAO,OAAS,KAC1C,OAGJ,SAAS,aAAa,EAAE,CACnC,GAAG,EAQC,KAA2B,UAAY,CAOvC,OANI,OAAO,uBAA0B,WAI1B,sBAAsB,KAAK,EAAQ,EAEvC,SAAU,EAAU,CAAE,OAAO,WAAW,UAAY,CAAE,OAAO,EAAS,KAAK,IAAI,CAAC,CAAG,EAAG,IAAO,EAAE,CAAG,CAC7G,GAAG,EAGC,IAAkB,EAStB,SAASC,IAAU,EAAU,EAAO,CAChC,IAAI,EAAc,GAAO,EAAe,GAAO,EAAe,EAO9D,SAAS,GAAiB,CAClB,IACA,EAAc,GACd,EAAS,GAET,GACA,EAAM,CAEd,CAQA,SAAS,GAAkB,CACvB,IAAwB,CAAc,CAC1C,CAMA,SAAS,GAAQ,CACb,IAAI,EAAY,KAAK,IAAI,EACzB,GAAI,EAAa,CAEb,GAAI,EAAY,EAAe,IAC3B,OAMJ,EAAe,EACnB,MAEI,EAAc,GACd,EAAe,GACf,WAAW,EAAiB,CAAK,EAErC,EAAe,CACnB,CACA,OAAO,CACX,CAGA,IAAI,IAAgB,GAGhB,IAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,QAAQ,EAEvF,IAA4B,OAAO,iBAAqB,IAIxD,IAA0C,UAAY,CAMtD,SAAS,GAA2B,CAMhC,KAAK,WAAa,GAMlB,KAAK,qBAAuB,GAM5B,KAAK,mBAAqB,KAM1B,KAAK,WAAa,CAAC,EACnB,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,QAAUA,IAAS,KAAK,QAAQ,KAAK,IAAI,EAAG,GAAa,CAClE,CA+JA,MAxJA,GAAyB,UAAU,YAAc,SAAU,EAAU,CAC5D,CAAC,KAAK,WAAW,QAAQ,CAAQ,GAClC,KAAK,WAAW,KAAK,CAAQ,EAG5B,KAAK,YACN,KAAK,SAAS,CAEtB,EAOA,EAAyB,UAAU,eAAiB,SAAU,EAAU,CACpE,IAAI,EAAY,KAAK,WACjB,EAAQ,EAAU,QAAQ,CAAQ,EAElC,CAAC,GACD,EAAU,OAAO,EAAO,CAAC,EAGzB,CAAC,EAAU,QAAU,KAAK,YAC1B,KAAK,YAAY,CAEzB,EAOA,EAAyB,UAAU,QAAU,UAAY,CAC/B,KAAK,iBAGT,GACd,KAAK,QAAQ,CAErB,EASA,EAAyB,UAAU,iBAAmB,UAAY,CAE9D,IAAI,EAAkB,KAAK,WAAW,OAAO,SAAU,EAAU,CAC7D,OAAO,EAAS,aAAa,EAAG,EAAS,UAAU,CACvD,CAAC,EAOD,OADA,EAAgB,QAAQ,SAAU,EAAU,CAAE,OAAO,EAAS,gBAAgB,CAAG,CAAC,EAC3E,EAAgB,OAAS,CACpC,EAOA,EAAyB,UAAU,SAAW,UAAY,CAGlD,CAACD,IAAa,KAAK,aAMvB,SAAS,iBAAiB,gBAAiB,KAAK,gBAAgB,EAChE,OAAO,iBAAiB,SAAU,KAAK,OAAO,EAC1C,KACA,KAAK,mBAAqB,IAAI,iBAAiB,KAAK,OAAO,EAC3D,KAAK,mBAAmB,QAAQ,SAAU,CACtC,WAAY,GACZ,UAAW,GACX,cAAe,GACf,QAAS,EACb,CAAC,IAGD,SAAS,iBAAiB,qBAAsB,KAAK,OAAO,EAC5D,KAAK,qBAAuB,IAEhC,KAAK,WAAa,GACtB,EAOA,EAAyB,UAAU,YAAc,UAAY,CAGrD,CAACA,IAAa,CAAC,KAAK,aAGxB,SAAS,oBAAoB,gBAAiB,KAAK,gBAAgB,EACnE,OAAO,oBAAoB,SAAU,KAAK,OAAO,EAC7C,KAAK,oBACL,KAAK,mBAAmB,WAAW,EAEnC,KAAK,sBACL,SAAS,oBAAoB,qBAAsB,KAAK,OAAO,EAEnE,KAAK,mBAAqB,KAC1B,KAAK,qBAAuB,GAC5B,KAAK,WAAa,GACtB,EAQA,EAAyB,UAAU,iBAAmB,SAAU,EAAI,CAChE,IAAI,EAAK,EAAG,aAAc,EAAe,IAAO,IAAK,GAAI,GAAK,EAEvC,IAAe,KAAK,SAAU,EAAK,CACtD,MAAO,CAAC,CAAC,CAAC,EAAa,QAAQ,CAAG,CACtC,CACmB,GACf,KAAK,QAAQ,CAErB,EAMA,EAAyB,YAAc,UAAY,CAI/C,MAHA,CACI,KAAK,YAAY,IAAI,EAElB,KAAK,SAChB,EAMA,EAAyB,UAAY,KAC9B,CACX,EAAE,EASE,IAAsB,SAAU,EAAQ,EAAO,CAC/C,IAAK,IAAI,EAAK,EAAG,EAAK,OAAO,KAAK,CAAK,EAAG,EAAK,EAAG,OAAQ,IAAM,CAC5D,IAAI,EAAM,EAAG,GACb,OAAO,eAAe,EAAQ,EAAK,CAC/B,MAAO,EAAM,GACb,WAAY,GACZ,SAAU,GACV,aAAc,EAClB,CAAC,CACL,CACA,OAAO,CACX,GAQI,IAAe,SAAU,EAAQ,CAOjC,OAHkB,GAAU,EAAO,eAAiB,EAAO,cAAc,aAGnD,EAC1B,GAGI,GAAY,GAAe,EAAG,EAAG,EAAG,CAAC,EAOzC,SAAS,GAAQ,EAAO,CACpB,OAAO,WAAW,CAAK,GAAK,CAChC,CAQA,SAAS,GAAe,EAAQ,CAK5B,UAFwB,kBAEjB,EAAU,OAAO,SAAU,EAAM,EAAU,CAC9C,IAAI,EAAQ,EAAO,UAAY,EAAW,UAC1C,OAAO,EAAO,GAAQ,CAAK,CAC/B,EAAG,CAAC,CACR,CAOA,SAAS,IAAY,EAAQ,CAGzB,IAAK,IAFD,EAAY,CAAC,MAAO,QAAS,SAAU,MAAM,EAC7C,EAAW,CAAC,EACP,EAAK,EAAG,EAAc,EAAW,EAAK,EAAY,OAAQ,IAAM,CACrE,IAAI,EAAW,EAAY,GACvB,EAAQ,EAAO,WAAa,GAChC,EAAS,GAAY,GAAQ,CAAK,CACtC,CACA,OAAO,CACX,CAQA,SAAS,IAAkB,EAAQ,CAC/B,IAAI,EAAO,EAAO,QAAQ,EAC1B,OAAO,GAAe,EAAG,EAAG,EAAK,MAAO,EAAK,MAAM,CACvD,CAOA,SAAS,IAA0B,EAAQ,CAGvC,IAAI,EAAc,EAAO,YAAa,EAAe,EAAO,aAS5D,GAAI,CAAC,GAAe,CAAC,EACjB,OAAO,GAEX,IAAI,EAAS,GAAY,CAAM,EAAE,iBAAiB,CAAM,EACpD,EAAW,IAAY,CAAM,EAC7B,EAAW,EAAS,KAAO,EAAS,MACpC,EAAU,EAAS,IAAM,EAAS,OAKlC,EAAQ,GAAQ,EAAO,KAAK,EAAG,EAAS,GAAQ,EAAO,MAAM,EAqBjE,GAlBI,EAAO,YAAc,eAOjB,KAAK,MAAM,EAAQ,CAAQ,IAAM,IACjC,GAAS,GAAe,EAAQ,OAAQ,OAAO,EAAI,GAEnD,KAAK,MAAM,EAAS,CAAO,IAAM,IACjC,GAAU,GAAe,EAAQ,MAAO,QAAQ,EAAI,IAOxD,CAAC,IAAkB,CAAM,EAAG,CAK5B,IAAI,EAAgB,KAAK,MAAM,EAAQ,CAAQ,EAAI,EAC/C,EAAiB,KAAK,MAAM,EAAS,CAAO,EAAI,EAMhD,KAAK,IAAI,CAAa,IAAM,IAC5B,GAAS,GAET,KAAK,IAAI,CAAc,IAAM,IAC7B,GAAU,EAElB,CACA,OAAO,GAAe,EAAS,KAAM,EAAS,IAAK,EAAO,CAAM,CACpE,CAOA,IAAI,KAAwB,UAAY,CASpC,OANI,OAAO,mBAAuB,IACvB,SAAU,EAAQ,CAAE,OAAO,aAAkB,GAAY,CAAM,EAAE,kBAAoB,EAKzF,SAAU,EAAQ,CAAE,OAAQ,aAAkB,GAAY,CAAM,EAAE,YACrE,OAAO,EAAO,SAAY,UAAa,CAC/C,GAAG,EAOH,SAAS,IAAkB,EAAQ,CAC/B,OAAO,IAAW,GAAY,CAAM,EAAE,SAAS,eACnD,CAOA,SAAS,IAAe,EAAQ,CAO5B,OANKA,GAGD,IAAqB,CAAM,EACpB,IAAkB,CAAM,EAE5B,IAA0B,CAAM,EAL5B,EAMf,CAQA,SAAS,IAAmB,EAAI,CAC5B,IAAI,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAQ,EAAG,MAAO,EAAS,EAAG,OAGlD,EAAO,OAAO,QADL,OAAO,gBAAoB,IAAc,gBAAkB,QACxC,SAAS,EASzC,OAPA,GAAmB,EAAM,CAClB,IAAM,IAAU,QAAe,SAClC,IAAK,EACL,MAAO,EAAI,EACX,OAAQ,EAAS,EACjB,KAAM,CACV,CAAC,EACM,CACX,CAWA,SAAS,GAAe,EAAG,EAAG,EAAO,EAAQ,CACzC,MAAO,CAAK,IAAM,IAAU,QAAe,QAAO,CACtD,CAMA,IAAI,IAAmC,UAAY,CAM/C,SAAS,EAAkB,EAAQ,CAM/B,KAAK,eAAiB,EAMtB,KAAK,gBAAkB,EAMvB,KAAK,aAAe,GAAe,EAAG,EAAG,EAAG,CAAC,EAC7C,KAAK,OAAS,CAClB,CAyBA,MAlBA,GAAkB,UAAU,SAAW,UAAY,CAC/C,IAAI,EAAO,IAAe,KAAK,MAAM,EAErC,MADA,MAAK,aAAe,EACZ,EAAK,QAAU,KAAK,gBACxB,EAAK,SAAW,KAAK,eAC7B,EAOA,EAAkB,UAAU,cAAgB,UAAY,CACpD,IAAI,EAAO,KAAK,aAGhB,MAFA,MAAK,eAAiB,EAAK,MAC3B,KAAK,gBAAkB,EAAK,OACrB,CACX,EACO,CACX,EAAE,EAEE,IAAqC,UAAY,CAOjD,SAAS,EAAoB,EAAQ,EAAU,CAC3C,IAAI,EAAc,IAAmB,CAAQ,EAO7C,GAAmB,KAAM,CAAU,SAAqB,aAAY,CAAC,CACzE,CACA,OAAO,CACX,EAAE,EAEE,IAAmC,UAAY,CAW/C,SAAS,EAAkB,EAAU,EAAY,EAAa,CAc1D,GAPA,KAAK,oBAAsB,CAAC,EAM5B,KAAK,cAAgB,IAAI,GACrB,OAAO,GAAa,WACpB,MAAU,UAAU,yDAAyD,EAEjF,KAAK,UAAY,EACjB,KAAK,YAAc,EACnB,KAAK,aAAe,CACxB,CAmHA,MA5GA,GAAkB,UAAU,QAAU,SAAU,EAAQ,CACpD,GAAI,CAAC,UAAU,OACX,MAAU,UAAU,0CAA0C,EAG9D,YAAO,QAAY,KAAe,EAAE,mBAAmB,SAG3D,IAAI,EAAE,aAAkB,GAAY,CAAM,EAAE,SACxC,MAAU,UAAU,uCAAuC,EAE/D,IAAI,EAAe,KAAK,cAEpB,EAAa,IAAI,CAAM,IAG3B,EAAa,IAAI,EAAQ,IAAI,IAAkB,CAAM,CAAC,EACtD,KAAK,YAAY,YAAY,IAAI,EAEjC,KAAK,YAAY,QAAQ,EAVsC,CAWnE,EAOA,EAAkB,UAAU,UAAY,SAAU,EAAQ,CACtD,GAAI,CAAC,UAAU,OACX,MAAU,UAAU,0CAA0C,EAG9D,YAAO,QAAY,KAAe,EAAE,mBAAmB,SAG3D,IAAI,EAAE,aAAkB,GAAY,CAAM,EAAE,SACxC,MAAU,UAAU,uCAAuC,EAE/D,IAAI,EAAe,KAAK,cAEnB,EAAa,IAAI,CAAM,IAG5B,EAAa,OAAO,CAAM,EACrB,EAAa,MACd,KAAK,YAAY,eAAe,IAAI,EATuB,CAWnE,EAMA,EAAkB,UAAU,WAAa,UAAY,CACjD,KAAK,YAAY,EACjB,KAAK,cAAc,MAAM,EACzB,KAAK,YAAY,eAAe,IAAI,CACxC,EAOA,EAAkB,UAAU,aAAe,UAAY,CACnD,IAAI,EAAQ,KACZ,KAAK,YAAY,EACjB,KAAK,cAAc,QAAQ,SAAU,EAAa,CAC1C,EAAY,SAAS,GACrB,EAAM,oBAAoB,KAAK,CAAW,CAElD,CAAC,CACL,EAOA,EAAkB,UAAU,gBAAkB,UAAY,CAEjD,QAAK,UAAU,EAGpB,KAAI,EAAM,KAAK,aAEX,EAAU,KAAK,oBAAoB,IAAI,SAAU,EAAa,CAC9D,OAAO,IAAI,IAAoB,EAAY,OAAQ,EAAY,cAAc,CAAC,CAClF,CAAC,EACD,KAAK,UAAU,KAAK,EAAK,EAAS,CAAG,EACrC,KAAK,YAAY,CANF,CAOnB,EAMA,EAAkB,UAAU,YAAc,UAAY,CAClD,KAAK,oBAAoB,OAAO,CAAC,CACrC,EAMA,EAAkB,UAAU,UAAY,UAAY,CAChD,OAAO,KAAK,oBAAoB,OAAS,CAC7C,EACO,CACX,EAAE,EAKE,GAAY,OAAO,QAAY,IAAc,IAAI,QAAY,IAAI,GAKjEE,GAAgC,UAAY,CAO5C,SAAS,EAAe,EAAU,CAC9B,GAAI,EAAE,gBAAgB,GAClB,MAAU,UAAU,oCAAoC,EAE5D,GAAI,CAAC,UAAU,OACX,MAAU,UAAU,0CAA0C,EAGlE,IAAI,EAAW,IAAI,IAAkB,EADpB,IAAyB,YACc,EAAG,IAAI,EAC/D,GAAU,IAAI,KAAM,CAAQ,CAChC,CACA,OAAO,CACX,EAAE,EAEF,CACI,UACA,YACA,YACJ,EAAE,QAAQ,SAAU,EAAQ,CACxB,GAAe,UAAU,GAAU,UAAY,CAC3C,IAAI,EACJ,OAAQ,EAAK,GAAU,IAAI,IAAI,GAAG,GAAQ,MAAM,EAAI,SAAS,CACjE,CACJ,CAAC,EAED,IAAIhB,KAAS,UAAY,CAKrB,OAHW,GAAS,iBAAmB,OAGhCgB,GAFI,GAAS,cAGxB,GAAG,ECl4BG,QACA,OAAO,OAAW,KAAe,OAAO,OAAO,YAAe,WACzD,OAAO,WAAW,EAGpB,WAAW,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAG9D,IAAgB,GAChB,OAAO,EAAM,QAAW,UACnB,EAAM,OAGR,GAGH,KAAyB,EAAgB,IACzC,OAAO,GAAU,UAAY,OAAO,GAAU,WACzC,GAGT,QAAQ,MAAM,wBAAyB,CACrC,YACA,UAAW,IAAU,KAAO,OAAS,OAAO,CAC9C,CAAC,EAEM,UAGI,IAAqB,EAAa,IAAyC,CACtF,IAAM,EAAQ,OAAO,WAAe,IAAc,WAAa,OAO/D,MANA,GAAK,kBAAoB,EAAK,mBAAqB,CAAC,EAE/C,EAAK,kBAAkB,KAC1B,EAAK,kBAAkB,GAAO,EAAK,GAG9B,EAAK,kBAAkB,EAChC,EAEa,GAAW,GAA+B,eACrD,GAAyB,CAAC,CAAC,CAC7B,EACa,GAAW,GAAwB,eAAkB,GAAS,EAAK,CAAC,EAE3E,GAAuB,GAA4B,CACvD,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAU,EAAM,QAElB,UAAO,GAAY,WAEvB,GAAI,CACF,QAAQ,QAAQ,EAAQ,CAAC,EAAE,MAAO,GAAU,CAC1C,QAAQ,MAAM,0BAA2B,CAAE,UAAW,EAAM,GAAI,OAAM,CAAC,CACzE,CAAC,CACH,OAAS,EAAO,CACd,QAAQ,MAAM,0BAA2B,CAAE,UAAW,EAAM,GAAI,OAAM,CAAC,CACzE,CACF,CACF,EAEM,IAA8B,GAAqB,CACvD,IAAI,EAAgC,CAAC,EACrC,GAAS,OAAQ,GAAY,CAC3B,EAAgB,EAAQ,OAAQ,GAAU,EAAI,IAAI,EAAM,EAAE,CAAC,EAC3D,IAAM,EAAO,EAAQ,OAAQ,GAAU,CAAC,EAAI,IAAI,EAAM,EAAE,CAAC,EAMzD,OAJI,EAAK,SACP,EAAK,EAAK,OAAS,GAAK,CAAE,GAAG,EAAK,EAAK,OAAS,GAAI,OAAQ,EAAK,GAG5D,CACT,CAAC,EACD,GAAoB,CAAa,CACnC,EAEM,GAAuB,GAA4B,CACvD,IAAM,EAAgB,MAAM,KAAK,IAAI,IAAI,EAAQ,IAAK,GAAU,CAAC,EAAM,GAAI,CAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAC5F,IAA2B,IAAI,IAAI,EAAc,IAAK,GAAU,EAAM,EAAE,CAAC,CAAC,CAC5E,EAEM,GAAgB,GAAgD,CACpE,GAAS,IAAI,EAAM,OAAO,CAC5B,EAEA,GAAI,OAAO,OAAW,IAAa,CACjC,OAAO,eAAiB,OAAO,gBAAkB,IACjD,IAAM,EAAU,OAAO,WAAW,oBAAoB,EACtD,GAAa,CAAO,EACpB,EAAQ,iBAAiB,SAAU,EAAY,CACjD,CAEA,IAAa,GAAe,GAAuB,CACjD,IAAM,EAAK,EAAM,IAAM,IAAgB,EACnC,EAAgC,CAAC,EAmCrC,OAlCA,GAAS,OAAQ,GAAY,CAC3B,IAAI,EAAO,EASX,OAPI,EAAM,mBACR,EAAgB,EAChB,EAAO,CAAC,GACC,EAAK,SACd,EAAO,EAAK,IAAK,IAAU,CAAE,GAAG,EAAM,OAAQ,EAAM,EAAE,GAGjD,CACL,GAAG,EACH,CACE,KACA,MAAO,IAAsB,EAAM,MAAO,CAAE,EAC5C,QAAS,EAAM,QACf,WAAY,EAAM,YAAc,KAChC,kBAAmB,EAAM,kBACzB,OAAQ,IAAa,CAAK,EAC1B,iBAAkB,EAAM,iBACxB,OAAQ,EAAM,OACd,OAAQ,EAAM,OACd,YAAa,EAAM,SAAW,SAAW,OAAU,EAAM,aAAe,UACxE,OAAQ,EAAM,QAAU,UACxB,kBAAmB,EAAM,kBACzB,wBAAyB,EAAM,wBAC/B,cAAe,EAAM,eAAiB,GACtC,YAAa,EAAM,aAAe,KAClC,QAAS,EAAM,SAAW,IAC5B,CACF,CACF,CAAC,EACD,GAAoB,CAAa,EAE1B,CACT,EAEa,GAAoB,GAAe,CAC9C,GAAoB,GAAI,EAAQ,EAAE,OAAQ,GAAU,EAAM,KAAO,CAAE,CAAC,CACtE,EAEa,KAA2B,EAAY,IAA2B,CAC7E,GAAS,OAAQ,GACf,EAAQ,IAAK,GAAW,EAAM,KAAO,EAAK,CAAE,GAAG,EAAO,eAAc,EAAI,CAAM,CAChF,CACF,EAOM,GAAuB,IAAI,IAGpB,GAAgC,MAC3C,EACA,EAAQ,KACa,CACrB,IAAM,EAAU,GAAI,EAAQ,EAAE,MAAM,KAAK,IAAI,EAAG,CAAU,CAAC,EAE3D,GACE,CAAC,EAAQ,QACT,EAAQ,KAAM,GAAU,GAAqB,IAAI,EAAM,EAAE,GAAM,CAAC,GAAS,EAAM,aAAc,EAE7F,MAAO,GAET,EAAQ,QAAS,GAAU,GAAqB,IAAI,EAAM,EAAE,CAAC,EAC7D,GAAI,CACF,IAAK,IAAM,IAAS,CAAC,GAAG,CAAO,EAAE,QAAQ,EACvC,GAAI,EAAM,aAAe,CAAE,MAAM,EAAM,YAAY,EAAI,MAAO,GAEhE,IAAM,EAAU,GAAI,EAAQ,EAAE,MAAM,KAAK,IAAI,EAAG,CAAU,CAAC,EAU3D,OAPE,EAAQ,SAAW,EAAQ,QAC3B,EAAQ,MAAM,EAAO,IAAU,EAAM,KAAO,EAAQ,IAAQ,EAAE,EAEvD,IAET,GAAoB,CAAO,EAEpB,GACT,QAAU,CACR,EAAQ,QAAS,GAAU,GAAqB,OAAO,EAAM,EAAE,CAAC,CAClE,CACF,EAEa,OAAsB,CACjC,GAAoB,GAAI,EAAQ,CAAC,CACnC,EAOM,GAAiC,CAAE,IAAK,EAAG,KAAM,CAAE,EAE5C,KAAiB,EAA2B,KAAmB,CACtE,OAAO,OAAW,MAEtB,EAAS,IAAM,OAAO,QACtB,EAAS,KAAO,OAAO,QACvB,SAAS,KAAK,UAAU,IAAI,WAAW,EACvC,SAAS,KAAK,MAAM,SAAW,QAC/B,SAAS,KAAK,MAAM,IAAM,IAAI,EAAS,IAAI,IAC3C,SAAS,KAAK,MAAM,KAAO,IAAI,EAAS,KAAK,IAC7C,SAAS,KAAK,MAAM,MAAQ,IAC5B,SAAS,KAAK,MAAM,OAAS,IAC/B,EAEa,KAAmB,EAA2B,KAAmB,CACxE,OAAO,OAAW,MAEtB,SAAS,KAAK,UAAU,OAAO,WAAW,EAC1C,SAAS,KAAK,MAAM,SAAW,GAC/B,SAAS,KAAK,MAAM,IAAM,GAC1B,SAAS,KAAK,MAAM,KAAO,GAC3B,SAAS,KAAK,MAAM,MAAQ,GAC5B,SAAS,KAAK,MAAM,OAAS,GAC7B,OAAO,SAAS,EAAS,KAAM,EAAS,GAAG,EAC7C,EAEa,IAAqB,GAAoB,CACpD,GAAI,OAAO,OAAW,IAAa,OAEnC,IAAM,EAAS,SAAS,KAAK,UAAU,SAAS,WAAW,EAEvD,GAAU,CAAC,EACb,IAAc,EACL,CAAC,GAAU,GACpB,IAAgB,CAEpB,ECxOM,IAA2B,CAC/B,yCACA,2CACA,iEACA,8DACF,EAIM,IAAmB,GAAgC,CACvD,IAAM,EAAY,EACZ,EAAM,GAAW,YAAc,GAAW,QAAU,GAAW,mBAErE,OAAO,OAAO,GAAQ,SAAW,EAAM,IACzC,EAEM,IAAgB,GAA4B,CAChD,GAAI,OAAO,GAAW,SAAU,OAAO,EAEvC,GAAI,CAAC,GAAU,OAAO,GAAW,SAAU,MAAO,GAElD,IAAM,EAAS,EAEf,GAAI,OAAO,EAAO,QAAW,SAAU,OAAO,EAAO,OAErD,GAAI,OAAO,EAAO,SAAY,SAAU,OAAO,EAAO,QAEtD,GAAI,CACF,OAAO,KAAK,UAAU,CAAM,CAC9B,MAAQ,CACN,MAAO,EACT,CACF,EAEM,IAAe,GAAyB,CAC5C,IAAM,EAAS,EAOf,MAAO,CAAC,GAAQ,OAAQ,GAAQ,QAAS,GAAQ,aAAc,GAAQ,OAAO,EAC3E,IAAI,GAAY,EAChB,OAAO,OAAO,EACd,KAAK,GAAG,EACR,YAAY,CACjB,EAEa,IAAiC,GAAoD,CAChG,IAAM,EAAe,GAAU,WAE1B,GAMa,IAAI,KAAK,CAAY,EAAE,QAAQ,CAEnD,EASa,IAAyB,GAA0B,CAC9D,GAAI,IAAgB,CAAG,IAAM,IAAK,MAAO,GAEzC,IAAM,EAAO,IAAY,CAAG,EAE5B,OAAO,IAAyB,KAAM,GAAY,EAAK,SAAS,CAAO,CAAC,CAC1E,EAEa,IAA2B,MACtC,EACA,IAC2B,CAC3B,GAAI,CACF,OAAO,MAAM,EAAO,CACtB,OAAS,EAAK,CACZ,GAAI,CAAC,IAAsB,CAAG,EAAG,MAAM,EAOvC,OAFK,MAFkB,EAAc,EAI9B,MAAM,EAAO,EAFL,MAGjB,CACF,ow1LCpHW,IAAe,sPACf,IAAY,uJACZ,IAAiB,4XACjB,IAAiB,gOACjB,IAAuB,0PACvB,IAAiB,wVACjB,IAAiB,ooBACjB,IAAsB,oqBACtB,IAAsB,2nBACtB,IAAwB,quBACxB,IAA2B,u4BAC3B,IAAoB,grBACpB,IAAqB,mpBACrB,IAAuB,2vBACvB,IAAa,iIACb,IAAkB,oKAClB,IAAyB,0UACzB,IAAsB,8MACtB,IAA6B,oUAC7B,IAAsB,8MACtB,IAA6B,oUAC7B,IAAuB,8MACvB,IAA8B,oUAC9B,IAAoB,8MACpB,IAA2B,oUAC3B,IAAkB,2OAClB,IAAyB,4XACzB,IAAgB,qMAChB,IAA2B,+rBAC3B,IAA4B,0kBAC5B,IAAwB,yOACxB,IAA+B,6TAC/B,IAAuB,oRACvB,IAA2B,kmBAC3B,IAAmB,kfACnB,IAA0B,snBAC1B,IAAiB,wNACjB,IAAwB,2UACxB,IAAiB,8XACjB,IAAwB,kbACxB,IAAkB,uMAClB,IAAyB,+UACzB,IAAkB,8iBAClB,IAAwB,ynBACxB,IAAyB,krBACzB,IAAmB,iQACnB,IAA0B,qkBAC1B,IAAkB,omBAClB,IAAyB,0iBACzB,IAAgB,4nCAChB,IAAuB,uqCACvB,IAAoB,8WACpB,IAA2B,yhBAC3B,IAAsB,mVACtB,IAA6B,kdAC7B,IAAuB,yOACvB,IAA8B,4VAC9B,IAAoB,yLACpB,IAA2B,0TAC3B,IAAiB,gUACjB,IAAwB,4cACxB,IAAgB,seAChB,IAAuB,uoBACvB,IAAiB,2RACjB,IAAwB,yaACxB,IAAqB,mUACrB,IAA4B,2bAC5B,IAAmB,6RACnB,IAA0B,iZAC1B,IAAkB,mkBAClB,IAAyB,68BACzB,IAAoB,uRACpB,IAA2B,yXAC3B,IAAkB,kRAClB,IAAyB,6cACzB,IAAmB,yYACnB,IAA0B,ilBAC1B,IAAgB,2RAChB,IAAuB,wcACvB,IAAiB,idACjB,IAAqB,0bACrB,IAA4B,ujBAC5B,IAAwB,wkBACxB,IAAkB,iJAClB,IAAyB,uUACzB,IAAqB,oPACrB,IAA0B,ySAC1B,IAAiC,+YACjC,IAA0B,gPAC1B,IAAiC,sVACjC,IAA4B,yVAC5B,IAAyB,mQACzB,IAAgC,yWAChC,IAA2B,kfAC3B,IAAkC,goBAClC,IAAkB,+eAClB,IAAyB,4cACzB,IAAoB,8PACpB,IAAuB,6aACvB,IAA8B,qkBAC9B,IAA2B,4ZAC3B,IAAgB,mPAChB,IAAuB,0YACvB,GAAoB,iRACpB,GAAiB,oKACjB,IAAwB,yVACxB,GAAqB,2YACrB,IAA4B,6iBAC5B,IAAuB,6XACvB,IAA8B,inBAC9B,IAAmB,8PACnB,IAA0B,qbAC1B,IAAmB,uKACnB,IAA0B,sYAC1B,IAAmB,gdACnB,IAA0B,ylBAC1B,IAAqB,oLACrB,IAA4B,kUAC5B,IAAiB,yOACjB,IAAwB,6ZACxB,IAAuB,qUACvB,IAA6B,ymBAC7B,IAAoC,wuBACpC,IAA8B,wdAC9B,IAAmB,iUACnB,GAA0B,obAC1B,IAAiB,4dACjB,IAAwB,klBACxB,IAAgB,+gBAChB,IAAuB,ioBACvB,IAAgB,0RAChB,IAAmB,kgBACnB,IAA0B,ymBAC1B,IAAuB,sdACvB,IAAqB,kdACrB,IAAwB,kmBACxB,IAA+B,2sBAC/B,IAA4B,8kBAC5B,IAAqB,yVACrB,IAAkB,6TAClB,IAAqB,ybACrB,IAAmB,+YACnB,IAA0B,mhBAC1B,IAAY,+OACZ,IAAoB,2QACpB,IAAuB,sWACvB,IAAoB,krBACpB,IAAe,0vCACf,IAAa,iZACb,IAAmB,oVACnB,IAAsB,ubACtB,IAAiB,uVACjB,IAAoB,ueACpB,IAAY,qYACZ,IAAgB,sdAChB,IAAuB,ivBACvB,IAAc,6OACd,IAAmB,8QACnB,IAAmB,4UACnB,IAAmB,qbACnB,IAAiB,u+BACjB,IAAkB,6ZAClB,IAAqB,gOACrB,IAAoB,wcACpB,IAAmB,oRACnB,IAAiB,mUACjB,IAAkB,4SAClB,IAAoB,kZACpB,IAAoB,+dACpB,IAAsB,kSACtB,IAAqB,gPACrB,IAAa,+OACb,IAAW,0RACX,IAAe,mbACf,IAAgB,yTAChB,IAAgB,0PAChB,IAAmB,gSACnB,IAA0B,iYAC1B,IAAuB,sSACvB,IAAmB,scACnB,IAAe,0bACf,IAAkB,+qBAClB,IAAc,6fACd,IAAgB,wRAChB,IAAuB,oTACvB,IAAe,sQACf,IAAiB,yRACjB,IAAW,mQACX,IAAW,mDACX,IAAc,iHACd,IAAqB,kIACrB,IAAiB,4GACjB,IAAsB,ySACtB,IAA6B,4XAC7B,GAAwB,sLACxB,IAAmB,2OACnB,IAA0B,4aAC1B,IAAgB,yIAChB,IAAuB,4MACvB,IAAkB,+FAClB,IAAyB,+JACzB,IAAmB,+MACnB,IAA0B,kWAC1B,IAAkB,iEAClB,IAAe,iKACf,IAAsB,oOACtB,IAAiB,uQACjB,IAAwB,0UACxB,IAAkB,0OAClB,IAAyB,0PACzB,IAAW,oeACX,IAAkB,ikBAClB,IAA2B,gEAC3B,IAA+B,wDAC/B,IAAyB,kDACzB,IAA0B,mDAC1B,IAAyB,oDACzB,IAAyB,mEACzB,IAA6B,wDAC7B,IAAsB,kDACtB,IAAkB,mjBAClB,IAAqB,4mBACrB,IAA4B,grBAC5B,IAAa,4gBACb,IAAW,uuBACX,IAAY,6EACZ,IAAe,4JACf,IAAsB,0KACtB,IAAkB,wJAClB,IAAyB,4NACzB,IAAY,6IACZ,IAAe,uNACf,IAAsB,0OACtB,IAAkB,wNAClB,IAAyB,2RACzB,IAAY,wGACZ,IAAe,kLACf,IAAsB,qMACtB,IAAkB,mLAClB,IAAyB,sPACzB,IAAY,iEACZ,IAAe,2IACf,IAAsB,8JACtB,IAAkB,4IAClB,IAAyB,+MACzB,IAAY,yCACZ,IAAe,mHACf,IAAsB,sIACtB,IAAkB,oHAClB,IAAyB,uLACzB,IAAY,mCACZ,IAAe,6GACf,IAAsB,gIACtB,IAAkB,8GAClB,IAAyB,iLACzB,IAAY,mFACZ,IAAe,6JACf,IAAsB,gLACtB,IAAkB,8JAClB,IAAyB,iOACzB,IAAY,yCACZ,IAAe,mHACf,IAAsB,sIACtB,IAAkB,oHAClB,IAAyB,uLACzB,IAAY,0CACZ,IAAe,oHACf,IAAsB,kIACtB,IAAkB,qHAClB,IAAyB,wLACzB,IAAY,+DACZ,IAAe,yIACf,IAAsB,uJACtB,IAAkB,0IAClB,IAAyB,6MACzB,IAAY,wDACZ,IAAe,kIACf,IAAsB,gJACtB,IAAkB,mIAClB,IAAyB,sMACzB,IAAY,wBACZ,IAAe,kGACf,IAAsB,gHACtB,IAAkB,mGAClB,IAAyB,sKACzB,IAAY,oEACZ,IAAe,8IACf,IAAsB,4JACtB,IAAkB,+IAClB,IAAyB,kNACzB,IAAY,yCACZ,IAAe,mHACf,IAAsB,iIACtB,IAAkB,oHAClB,IAAyB,uLACzB,IAAY,iGACZ,IAAe,2KACf,IAAsB,yLACtB,IAAkB,4KAClB,IAAyB,+OACzB,IAAY,uEACZ,IAAe,iJACf,IAAsB,+JACtB,IAAkB,kJAClB,IAAyB,qNACzB,IAAY,uGACZ,IAAe,iLACf,IAAsB,+LACtB,IAAkB,kLAClB,IAAyB,qPACzB,IAAY,wGACZ,IAAe,kLACf,IAAsB,gMACtB,IAAkB,mLAClB,IAAyB,4PACzB,IAAY,wGACZ,IAAe,kLACf,IAAsB,gMACtB,IAAkB,mLAClB,IAAyB,sPACzB,IAAY,4BACZ,IAAe,sGACf,IAAsB,oHACtB,IAAkB,uGAClB,IAAyB,0KACzB,IAAY,6DACZ,IAAe,uIACf,IAAsB,qJACtB,IAAkB,wIAClB,IAAyB,2MACzB,IAAY,sCACZ,IAAe,gHACf,IAAsB,8HACtB,IAAkB,iHAClB,IAAyB,oLACzB,IAAY,uEACZ,IAAe,iJACf,IAAsB,+JACtB,IAAkB,kJAClB,IAAyB,qNACzB,IAAY,mEACZ,IAAe,6IACf,IAAsB,2JACtB,IAAkB,8IAClB,IAAyB,iNACzB,IAAY,4CACZ,IAAe,sHACf,IAAsB,oIACtB,IAAkB,uHAClB,IAAyB,0LACzB,IAAY,uCACZ,IAAe,iHACf,IAAsB,+HACtB,IAAkB,kHAClB,IAAyB,qLACzB,IAAsB,8EACtB,IAAsB,8YACtB,IAAmB,+eACnB,IAAmB,iZACnB,IAAmB,oQACnB,IAAqB,sOACrB,IAAkB,qOAClB,IAAqB,mVACrB,IAAyB,0SACzB,IAA4B,oXAC5B,IAAe,4IACf,IAAe,8WACf,IAAgB,6RAChB,IAAe,6wBACf,IAAe,oXACf,IAAkB,gbAClB,IAAY,0oBACZ,IAAa,ulBACb,IAAmB,ifACnB,IAAgB,gMAChB,IAAiB,uNACjB,IAAgB,6CAChB,IAAa,kKACb,IAAe,4NACf,IAAe,8LACf,IAAsB,wKACtB,IAAmB,mNACnB,IAA0B,6LAC1B,IAAa,gWACb,IAAa,6rBACb,IAAW,6GACX,IAAiB,m3CACjB,GAAS,wKACT,IAAY,8OACZ,IAAW,ohBACX,IAAiB,05BACjB,IAAiB,8TACjB,IAAc,w0BACd,IAAuB,uGACvB,IAA0B,4cAC1B,IAA0B,2EAC1B,IAAyB,4DACzB,IAAwB,wEACxB,IAAiB,+eACjB,IAAiB,6GACjB,IAAsB,qKACtB,IAA6B,oKAC7B,IAAuB,udACvB,IAA8B,0ZAC9B,IAAyB,yMACzB,IAAgC,mMAChC,IAAoB,i4BACpB,IAA2B,k3BAC3B,IAAqB,gWACrB,IAA4B,uTAC5B,IAAuB,0MACvB,IAAuB,qLACvB,IAAwB,+GACxB,IAA4B,uUAC5B,IAAmC,0TACnC,IAAyB,6JACzB,IAAgC,+JAChC,IAAyB,2ZACzB,IAAgC,6YAChC,IAAwB,ucACxB,IAA2B,wjBAC3B,IAAU,8HACV,IAAa,8NACb,IAAU,+cACV,IAAa,gGACb,IAAkB,yIAClB,IAAyB,mJACzB,IAAsB,gEACtB,IAA6B,wFAC7B,IAAoB,uDACpB,IAA2B,wFAC3B,IAAmB,yeACnB,IAA0B,ihBAC1B,IAAkB,mQAClB,IAAyB,+SACzB,IAAkB,6TAClB,IAAyB,gXACzB,IAAgB,45BAChB,IAAuB,q8BACvB,IAAiB,gVACjB,IAAwB,0XACxB,IAAgB,oeAChB,IAAuB,weACvB,IAAiB,ifACjB,IAAqB,yeACrB,IAA4B,2aAC5B,IAAwB,+aACxB,IAAmB,gaACnB,IAA0B,kYAC1B,IAAkB,4MAClB,IAAyB,oPACzB,IAAkB,iSAClB,IAAyB,8TACzB,IAAgB,wKAChB,IAAuB,8NACvB,IAAoB,iIACpB,IAAiB,qOACjB,IAAwB,8QACxB,IAAoB,0bACpB,IAA2B,keAC3B,IAAmB,2UACnB,IAA0B,qXAC1B,IAAmB,6WACnB,IAA0B,2aAC1B,IAAqB,wJACrB,IAA4B,mLAC5B,IAAiB,2SACjB,IAAwB,oVACxB,IAAiB,qiBACjB,IAAwB,ulBACxB,IAAa,qJACb,IAAoB,2cACpB,IAAyB,mDACzB,IAAyB,gFACzB,IAAyB,qDACzB,IAAuB,mGACvB,IAAc,wPACd,IAAqB,sDACrB,IAA4B,0JAC5B,IAAmC,kKACnC,IAAgC,iKAChC,IAA0B,+EAC1B,IAAyB,8DACzB,IAAsC,6RACtC,IAAsB,qDACtB,IAA6B,uJAC7B,IAAoC,gKACpC,IAAiC,+JACjC,IAA2B,gFAC3B,IAA0B,+DAC1B,IAAuC,4RACvC,GAAmB,iHACnB,IAAsB,wOACtB,IAAuB,0GACvB,IAA6B,yGAC7B,GAAuB,qGACvB,GAAwB,yGACxB,IAAqB,oGACrB,IAA2B,4FAC3B,IAAmB,iZACnB,IAAuB,mXACvB,IAA8B,obAC9B,IAA0B,kdAC1B,GAAe,0EACf,IAAmB,yCACnB,IAAsB,6GACtB,IAA6B,2HAC7B,IAAyB,8GACzB,IAAgC,iLAChC,IAAiC,uXACjC,IAA0B,iEAC1B,IAAkB,yJAClB,IAAqB,sJACrB,IAA4B,0NAC5B,IAAyB,kGACzB,IAAgC,qKAChC,IAAmB,0HACnB,IAAuB,uFACvB,IAAoB,sIACpB,IAAwB,6FACxB,IAAoB,wEACpB,IAAmB,0DACnB,IAAgC,wQAChC,GAAiB,qHACjB,IAAoB,6OACpB,IAAqB,wFACrB,IAA2B,6EAC3B,IAAqB,uFACrB,IAAsB,uFACtB,IAAmB,sFACnB,IAAyB,2EACzB,IAAyB,iQACzB,GAAe,yEACf,IAAmB,0CACnB,IAAsB,6GACtB,IAA6B,4HAC7B,IAAyB,8GACzB,IAAgC,kLAChC,IAAiC,sXACjC,IAA0B,gEAC1B,IAAqB,kIACrB,IAAyB,mGACzB,IAAkB,uJAClB,IAAqB,sJACrB,IAA4B,yNAC5B,IAAyB,kGACzB,IAAgC,sKAChC,IAAoB,8IACpB,IAAwB,8CACxB,IAA+B,0FAC/B,IAAoB,2EACpB,IAAmB,2DACnB,IAAgC,sQAChC,IAAkB,8HAClB,IAAsB,6FACtB,IAAsB,gJACtB,IAAyB,yOACzB,IAAqB,kFACrB,IAA6B,iMAC7B,GAAgB,0EAChB,IAAoB,0CACpB,IAAuB,8GACvB,IAA8B,6HAC9B,IAA0B,8GAC1B,IAAiC,iLACjC,IAAkC,uXAClC,IAA2B,gEAC3B,IAAsB,kIACtB,IAA0B,0FAC1B,IAAmB,4JACnB,IAAsB,sJACtB,IAA6B,0NAC7B,IAA0B,mGAC1B,IAAiC,sKACjC,IAAqB,wEACrB,IAAoB,oDACpB,IAAiC,wQACjC,IAAmB,0HACnB,IAAuB,yFACvB,IAA0B,mFAC1B,IAAwB,oFACxB,IAAkB,uDAClB,IAAyB,sJACzB,IAAgC,mKAChC,IAA6B,kKAC7B,IAA6B,gEAC7B,IAAiC,wFACjC,IAAuB,iFACvB,IAAsB,4DACtB,IAAmC,4RACnC,IAAmB,sDACnB,IAA0B,qJAC1B,IAAiC,+JACjC,IAA8B,qKAC9B,IAA6B,gEAC7B,IAAiC,yFACjC,IAAwB,+EACxB,IAAuB,mEACvB,IAAoC,2RACpC,IAAoB,0JACpB,IAAwB,0HACxB,IAAqB,+JACrB,IAAyB,iIACzB,IAAsB,wKACtB,IAA0B,yIAC1B,IAAmB,qKACnB,IAAuB,gIACvB,IAAuB,2JACvB,IAA2B,yHAC3B,IAAoB,2JACpB,IAAwB,iIACxB,IAAkB,0JAClB,IAAsB,yIACtB,IAAmB,gKACnB,IAAuB,+HACvB,GAAa,yEACb,IAAiB,2CACjB,IAAoB,8GACpB,IAA2B,8HAC3B,IAAuB,8GACvB,IAA8B,kLAC9B,IAA+B,sXAC/B,IAAwB,gEACxB,IAAgB,0JAChB,IAAmB,sJACnB,IAA0B,yNAC1B,IAAiB,+IACjB,IAAqB,8CACrB,IAA4B,2FAC5B,IAAuB,mGACvB,IAA8B,uKAC9B,IAAiB,4HACjB,IAAqB,+FACrB,IAAkB,sIAClB,IAAsB,gGACtB,IAAkB,2EAClB,IAAiB,4DACjB,IAA8B,sQAC9B,IAAuB,sRACvB,IAAc,0JACd,IAAgB,8PAChB,IAAiB,yIACjB,IAAe,gKACf,IAAc,oJACd,IAA2B,2UAC3B,IAAQ,m6BACR,IAAe,icACf,IAAS,8MACT,IAAU,2pCACV,IAAiB,y2BACjB,IAAgB,yRAChB,IAAqB,ihBACrB,IAAoB,qoBACpB,IAAqB,ydACrB,IAAmB,qgBACnB,IAAoB,seACpB,IAAsB,ulBACtB,IAAS,uXACT,IAAmB,yQACnB,IAA8B,uIAC9B,IAAmB,saACnB,IAAgB,+TAChB,IAAmB,+YACnB,IAAsB,+SACtB,IAAY,ijBACZ,IAAkB,kJAClB,GAAa,0aACb,IAAc,6hBACd,IAAgB,iIAChB,IAAe,6OACf,IAAkB,ueAClB,IAAa,0ZACb,IAAY,mgBACZ,IAAmB,8kCACnB,IAAS,onHACT,IAAS,gGACT,IAAe,wOACf,IAAU,iFACV,IAAe,qJACf,IAAmB,sMACnB,IAAmB,2YACnB,IAAc,0TACd,IAAgB,6GAChB,IAAoB,+XACpB,IAA0B,saAC1B,IAAiC,6aACjC,IAAqB,6XACrB,IAAgB,kHAChB,IAAoB,sVACpB,IAA0B,obAC1B,IAAiC,gaACjC,IAAgB,0FAChB,IAAoB,kUACpB,IAA0B,mTAC1B,IAAiC,uTACjC,IAAW,qkIACX,IAAU,2WACV,IAAgB,0eAChB,IAAuB,05BACvB,IAAe,qfACf,IAAkB,olBAClB,IAAkB,odAClB,IAAqB,6dACrB,IAAc,0uBACd,IAAqB,0rBACrB,IAAgB,2FAChB,IAAe,uNACf,IAAsB,0PACtB,IAAsB,oMACtB,IAA6B,4PAC7B,IAAmB,wPACnB,IAAc,g+BACd,IAAqB,ipCACrB,IAAkB,2QAClB,IAAuB,0SACvB,IAA8B,kTAC9B,IAA4B,uRAC5B,IAAmC,gSACnC,IAAyB,mRACzB,IAAe,ysCACf,IAAgB,wXAChB,IAAqB,kSACrB,IAAmB,4VACnB,IAAgB,saAChB,IAAiB,uLACjB,IAAoB,0QACpB,IAA2B,wVAC3B,IAAwB,oOACxB,IAAqB,iSACrB,IAA4B,oVAC5B,IAAoB,+kBACpB,IAA2B,8jBAC3B,IAAiB,wVACjB,IAAoB,2cACpB,IAA2B,qfAC3B,IAAwB,uVACxB,IAAc,8oBACd,IAAa,wPACb,IAAa,qMACb,IAAY,0LACZ,IAAmB,6MACnB,IAAmB,wgBACnB,IAA0B,ugBAC1B,IAAa,yyBACb,IAAU,gFACV,IAAe,yQACf,IAAgB,iKAChB,IAAuB,+NACvB,IAAe,0NACf,IAAa,iLACb,IAAoB,+NACpB,IAAiB,oJACjB,IAAc,kPACd,IAAgB,wVAChB,IAAkB,2LAClB,IAAoB,uIACpB,IAAqB,kIACrB,IAAa,4GACb,IAAgB,kWAChB,IAAiB,wOACjB,IAAY,qzBACZ,IAAe,o2BACf,IAAU,+IACV,IAAY,6WACZ,IAAmB,qcACnB,IAAc,kiCACd,IAAiB,mcACjB,IAAqB,wRACrB,IAA4B,iWAC5B,IAAqB,8hCACrB,IAAU,yNACV,IAAY,gUACZ,IAAiB,6bACjB,IAAwB,wfACxB,IAAgB,8PAChB,IAAiB,6XACjB,IAAwB,4ZACxB,IAAe,wbACf,IAAsB,qfACtB,IAAmB,oXACnB,IAAgB,qZAChB,IAAuB,obACvB,IAAkB,2fAClB,IAAyB,0hBACzB,IAAkB,gQAClB,IAAgB,olCAChB,IAAoB,qMACpB,IAA2B,2MAC3B,IAAS,+RACT,IAAa,0iBACb,IAAoB,2jBACpB,IAAa,uIACb,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,oJACf,IAAwB,gVACxB,IAAe,mJACf,IAAwB,+UACxB,IAAe,mJACf,IAAwB,+UACxB,IAAkB,2JAClB,IAA2B,4TAC3B,IAAyB,sKACzB,IAAgC,kLAChC,IAAsB,0NACtB,IAA6B,4OAC7B,IAAoB,0NACpB,IAA2B,4OAC3B,IAAsB,kUACtB,IAA6B,yVAC7B,IAAqB,gKACrB,IAAuB,qNACvB,IAAwB,gKACxB,IAAuB,sNACvB,IAAuB,mLACvB,IAAuB,kJACvB,IAAuB,6KACvB,IAAuB,mLACvB,IAAuB,mLACvB,IAAuB,4KACvB,IAAuB,4KACvB,IAAyB,+NACzB,IAAwB,yLACxB,IAA2B,gNAC3B,IAA4B,qNAC5B,IAA6B,sSAC7B,IAA+B,0TAC/B,IAA+B,sTAC/B,IAA+B,sTAC/B,IAA+B,0TAC/B,IAA+B,sTAC/B,IAA+B,0TAC/B,IAA+B,sTAC/B,IAA+B,oTAC/B,IAA+B,wTAC/B,IAAkC,2SAClC,IAAoC,sTACpC,IAAkB,qOAClB,IAAyB,0PACzB,IAAkB,0TAClB,IAAyB,yXACzB,IAAkB,uTAClB,IAAyB,2TACzB,IAAyB,iUACzB,IAAiB,yMACjB,IAAiB,+bACjB,IAAqB,0eACrB,IAAgB,kKAChB,IAAmB,0LACnB,IAAkB,gLAClB,IAAyB,kMACzB,IAAyB,oJACzB,IAAqB,0KACrB,IAAgB,sLAChB,IAAuB,0NACvB,IAAoB,oJACpB,IAAiB,wMACjB,IAAwB,0NACxB,IAAwB,+KACxB,IAAqB,iMACrB,IAAmB,8SACnB,IAA0B,gUAC1B,IAAiB,qXACjB,IAAwB,uYACxB,IAAoB,sYACpB,IAA6B,0iBAC7B,IAAW,wYACX,IAAY,gKACZ,IAAiB,mNACjB,IAAwB,2MACxB,IAAiB,yRACjB,IAAwB,qRACxB,IAAiB,iOACjB,IAAwB,0NACxB,IAAmB,oJACnB,IAAgB,yPAChB,IAAuB,qPACvB,IAAoB,sdACpB,IAA2B,idAC3B,IAAkB,+VAClB,IAAyB,2VACzB,IAAS,yHACT,IAAc,6TACd,IAAe,6JACf,IAAsB,oQACtB,IAAc,sDACd,IAAa,iQACb,IAAoB,0KACpB,IAAgB,gRAChB,IAAc,+IACd,IAAqB,4JACrB,IAAe,oKACf,IAAsB,8KACtB,IAAS,u0BACT,IAAe,o4CACf,IAAuB,+1BACvB,IAAoB,q4BACpB,IAAe,6fACf,IAAU,kHACV,IAAiB,kYACjB,IAAU,iMACV,IAAe,qNACf,IAAsB,0QACtB,IAAe,iUACf,IAAsB,sSACtB,IAAgB,gjBAChB,IAAuB,wlBACvB,IAAe,gWACf,IAAsB,kYACtB,IAAgB,kUAChB,IAAuB,qYACvB,IAAa,wrCACb,IAAoB,4vCACpB,IAAe,qWACf,IAAsB,6WACtB,IAAa,sSACb,IAAoB,4YACpB,IAAiB,yMACjB,IAAc,sSACd,IAAqB,8aACrB,IAAgB,odAChB,IAAuB,igBACvB,IAAc,gVACd,IAAqB,gYACrB,IAAe,qPACf,IAAsB,iSACtB,IAAW,2CACX,IAAe,mKACf,IAAU,krBACV,IAAa,gOACb,IAAc,2rBACd,IAAa,mtBACb,IAAmB,oyBACnB,IAAkB,khBAClB,IAAqB,wtBACrB,IAA0B,8iBAC1B,IAAU,2lBACV,IAAc,41BACd,IAAe,0QACf,IAAuB,maACvB,IAAuB,qcACvB,IAAe,4MACf,IAAe,+WACf,IAAmB,03BACnB,IAAgB,+LAChB,IAAS,sPACT,IAAe,6tCACf,IAAU,iWACV,IAAe,2PACf,IAAa,g4BACb,IAAe,2LACf,IAAa,oUACb,IAAoB,kYACpB,IAAqB,+2CACrB,IAAY,4RACZ,IAAsB,gPACtB,IAA4B,8NAC5B,IAAgB,oWAChB,IAAoB,gDACpB,IAA0B,uGAC1B,IAAiB,wPACjB,IAAc,6WACd,IAAe,wKACf,IAAoB,2YACpB,IAAsB,8MACtB,IAAkB,2LAClB,IAAuB,iOACvB,IAAuB,kPACvB,IAAU,+3DACV,IAAgB,i9BAChB,IAAa,4sDACb,IAAgB,2oCAChB,IAAU,yLACV,IAAU,qaACV,IAAa,sfACb,IAAU,0WACV,IAAa,uUACb,IAAU,wGACV,IAAiB,2LACjB,IAAwB,yMACxB,IAAe,wJACf,IAAsB,2KACtB,IAAkB,0QAClB,IAAmB,oNACnB,IAA0B,mPAC1B,IAAmB,oNACnB,IAA0B,mPAC1B,IAAoB,oNACpB,IAA2B,mPAC3B,IAAiB,oNACjB,IAAwB,mPACxB,IAAgB,ieAChB,IAAuB,0fACvB,IAAe,4PACf,IAAsB,mPACtB,IAAe,uTACf,IAAsB,qcACtB,IAAa,u5BACb,IAAoB,g7BACpB,IAAe,mKACf,IAAc,0UACd,IAAqB,iVACrB,IAAmB,8NACnB,IAA0B,8NAC1B,IAAe,4UACf,IAAsB,4UACtB,IAA4B,gpBAC5B,IAAc,qdACd,IAAkB,2cAClB,IAAyB,4aACzB,IAAqB,ubACrB,IAAgB,wXAChB,IAAuB,6YACvB,IAAe,qMACf,IAAuB,iQACvB,IAA8B,4QAC9B,IAAsB,oOACtB,IAAkB,uIAClB,IAAyB,oJACzB,IAAe,8RACf,IAAsB,wSACtB,IAAa,wOACb,IAAoB,mQACpB,IAAc,8IACd,IAA0B,2gBAC1B,IAAiC,ynBACjC,IAAqB,6KACrB,IAAyB,gbACzB,IAAgC,mhBAChC,IAAqB,s8BACrB,IAA4B,2iCAC5B,IAAiB,qHACjB,IAAc,wMACd,IAAqB,uOACrB,IAAc,6NACd,IAAsB,6MACtB,IAA6B,mPAC7B,IAAqB,4PACrB,IAAiB,kbACjB,IAAwB,2cACxB,IAAgB,mUAChB,IAAwB,0SACxB,IAA+B,gVAC/B,IAAuB,kWACvB,IAAgB,saAChB,IAAuB,kaACvB,IAAkB,2KAClB,IAAyB,iMACzB,IAAc,ogBACd,IAAqB,uhBACrB,IAAiB,uGACjB,IAAc,8DACd,IAAiB,6HACjB,IAAyB,mKACzB,IAAgC,kLAChC,IAAwB,uNACxB,IAAmB,sHACnB,IAA0B,mJAC1B,IAAmB,yEACnB,IAA0B,2GAC1B,IAAsB,gHACtB,IAA6B,8IAC7B,IAAmB,2JACnB,IAA0B,qMAC1B,IAAiB,6IACjB,IAAwB,wLACxB,IAAqB,uFACrB,IAAkB,iGAClB,IAAyB,6HACzB,IAAoB,iMACpB,IAA2B,8NAC3B,IAAe,0EACf,IAAc,iUACd,IAAmB,4ZACnB,IAA0B,0cAC1B,IAAuB,4cACvB,IAA8B,uhBAC9B,IAAqB,4cACrB,IAA4B,kgBAC5B,IAAqB,mXACrB,IAAgB,uXAChB,IAAuB,qaACvB,IAAa,wjBACb,IAAe,8JACf,IAAe,sdACf,IAAe,2EACf,IAAsB,iCACtB,IAAkB,kOAClB,IAAyB,wJACzB,IAAiB,4IACjB,IAAsB,kOACtB,IAAkB,kMAClB,IAAgB,6OAChB,IAAuB,uKACvB,IAAgB,yRAChB,IAAuB,mNACvB,IAAmB,qGACnB,IAAkB,gPAClB,IAAiB,iOACjB,IAAwB,2JACxB,IAAiB,uHACjB,IAAe,0OACf,IAAsB,oKACtB,IAAoB,gOACpB,IAAgB,0IAChB,IAAuB,gKACvB,IAA8B,0YAC9B,IAAuB,6NACvB,IAAiB,kGACjB,IAAwB,iKACxB,IAAqB,0IACrB,IAA4B,0MAC5B,IAAsB,ycACtB,IAA6B,ugBAC7B,IAAgB,2IAChB,IAAuB,ugBACvB,IAAc,qXACd,IAAY,iEACZ,IAAU,8DACV,IAAa,0GACb,IAAoB,oKACpB,IAAiB,sHACjB,IAAa,kXACb,IAAS,0yCACT,IAAe,kVACf,IAAkB,qbAClB,IAAe,8KACf,IAAiB,wLACjB,IAAa,mlBACb,IAAW,inEACX,IAAgB,6HAChB,IAAuB,kPACvB,IAAY,iVACZ,IAAe,kJACf,IAAsB,mTACtB,IAA6B,kiBAC7B,IAA6B,2SAC7B,IAAoC,gSACpC,IAA0B,2SAC1B,IAAiC,gSACjC,IAAoB,0MACpB,IAA2B,2aAC3B,IAAoB,oOACpB,IAA2B,ofAC3B,IAAuB,kLACvB,IAA8B,+LAC9B,IAAmB,8XACnB,IAA0B,4VAC1B,IAAkB,qeAClB,IAAyB,+jBACzB,IAAoB,+NACpB,IAA2B,mNAC3B,IAAkB,wNAClB,IAAyB,wYACzB,IAAsB,gWACtB,IAAmB,uPACnB,IAA0B,2OAC1B,IAAqB,6VACrB,IAA4B,iVAC5B,IAAqB,qdACrB,IAA4B,gdAC5B,IAAqB,gLACrB,IAA4B,8LAC5B,IAAsB,2NACtB,IAAyB,0TACzB,IAAgC,iYAChC,IAA6B,0QAC7B,IAAiB,+EACjB,IAAiB,uIACjB,IAAiB,8IACjB,IAAiB,8PACjB,IAAiB,mLACjB,IAAiB,uJACjB,IAAiB,qPACjB,IAAoB,sMACpB,IAAuB,oaACvB,IAAe,gbACf,IAAkB,olBAClB,IAAW,+OACX,IAAW,6MACX,IAAc,iRACd,IAAkB,6WAClB,IAAkB,oMAClB,IAAY,oCACZ,IAAmB,uEACnB,IAAY,kXACZ,IAAS,obACT,IAAc,2cACd,IAAqB,gmBACrB,IAAgB,ogBAChB,IAAc,kaACd,IAAqB,0jBACrB,IAAa,sZACb,IAAoB,8iBACpB,IAAa,mZACb,IAAoB,2iBACpB,IAAW,yVACX,IAAmB,kpBACnB,IAAe,6UACf,IAAY,uGACZ,IAAmB,+LACnB,IAAc,wKACd,IAAqB,0MACrB,IAAqB,+JACrB,IAA4B,qLAC5B,IAAc,8VACd,IAAmB,seACnB,IAAW,4EACX,IAAa,2RACb,IAAoB,2cACpB,IAAS,sYACT,IAAc,yxBACd,IAAuB,iSACvB,IAAyB,kaACzB,IAAc,0yCACd,IAAqB,ofACrB,IAAiB,oaACjB,IAAe,2bACf,IAAiB,8jBACjB,IAAe,wZACf,IAAa,mZACb,IAAa,ymBACb,IAAa,2gBACb,IAAoB,iRACpB,IAAsB,gQACtB,IAAe,svBACf,IAAe,0ZACf,IAAsB,0oBACtB,IAAkB,maAClB,IAAmB,6TACnB,IAAiB,wHACjB,IAAe,2tBACf,IAAY,+NACZ,IAAY,+MACZ,IAAU,saACV,IAAiB,kPACjB,IAAiB,ilBACjB,IAAwB,gjBACxB,IAAgB,oPAChB,IAAuB,gUACvB,IAA8B,oVAC9B,IAAc,sIACd,IAAqB,6RACrB,IAA4B,sTAC5B,IAAmB,sKACnB,IAA0B,kLAC1B,IAAuB,uKACvB,IAAwB,uKACxB,IAAmB,2SACnB,IAA0B,sTAC1B,IAAmB,mHACnB,IAA2B,2KAC3B,IAA0B,oJAC1B,IAAmB,6LACnB,GAA0B,mOAC1B,GAAmB,yaACnB,GAA0B,8cAC1B,IAAgC,0LAChC,IAAuC,4MACvC,IAAoB,ggBACpB,IAA2B,0cAC3B,GAAkB,mRAClB,IAAyB,uSACzB,IAAiB,4KACjB,IAAwB,0KACxB,IAA8B,wKAC9B,IAAqC,2LACrC,IAAoB,+KACpB,IAA2B,wLAC3B,IAAoB,oOACpB,IAA2B,0UAC3B,IAAmB,qVACnB,IAA0B,qVAC1B,IAAoB,oKACpB,IAA2B,mLAC3B,IAAkB,uXAClB,IAAsB,kXACtB,IAA6B,+XAC7B,IAAyB,kYACzB,IAAmB,8JACnB,IAA0B,oKAC1B,GAAmB,4NACnB,IAA0B,wPAC1B,IAAsB,iLACtB,IAA2B,+OAC3B,IAAyB,+LACzB,IAAgC,mNAChC,IAAqB,gKACrB,IAAkB,4LAClB,IAAyB,6LACzB,IAAsB,4qBACtB,IAA6B,gvBAC7B,IAAmB,uKACnB,IAA0B,qMAC1B,IAAqB,sYACrB,IAA4B,kZAC5B,IAAoB,uPACpB,IAA2B,ySAC3B,GAAoB,maACpB,IAA2B,mYAC3B,IAAkB,oOAClB,IAA4B,qWAC5B,IAAyB,uNACzB,IAAmB,gLACnB,IAA0B,0KAC1B,IAAkB,sXAClB,IAAyB,iYACzB,IAAkB,gJAClB,IAAyB,kLACzB,GAAmB,8HACnB,IAA0B,+JAC1B,IAAkB,oJAClB,IAAuB,mIACvB,IAA8B,mKAC9B,IAAyB,iKACzB,IAAqB,sKACrB,IAA4B,oLAC5B,IAAc,+CACd,IAAe,6FACf,IAAgB,8DAChB,IAAkB,6CAClB,IAAe,gHACf,IAAe,gSACf,IAAkB,obAClB,IAAY,kOACZ,IAAmB,6NACnB,IAAiB,0JACjB,IAAmB,mfACnB,IAAoB,4MACpB,IAAuB,+TACvB,IAAmB,yOACnB,IAA0B,uXAC1B,IAAgB,4ZAChB,IAAuB,ycACvB,IAAiB,2PACjB,IAAwB,2PACxB,IAAiB,yVACjB,IAAiB,wKACjB,IAAgB,ibAChB,IAAgB,unBAChB,IAAoB,glBACpB,IAA2B,8oBAC3B,IAAuB,krBACvB,IAAkB,wlBAClB,IAAyB,smBACzB,IAA0B,mbAC1B,IAA0B,oaAC1B,IAA2B,mVAC3B,IAAwB,4LACxB,IAAe,odACf,IAAsB,0kBACtB,IAAmB,oRACnB,IAAqB,6VACrB,IAAgB,mTAChB,IAAuB,6VACvB,IAAgB,yMAChB,IAAuB,+KACvB,IAAkB,mUAClB,IAAyB,gXACzB,IAAkB,yJAClB,IAAyB,wMACzB,IAAiB,yYACjB,IAAoB,mYACpB,IAA2B,+WAC3B,IAAc,o9BACd,GAAY,yOACZ,IAAgB,keAChB,IAAoB,4oCACpB,IAAY,2UACZ,IAAW,wkBACX,IAAc,6jBACd,IAAqB,qqBACrB,IAAkB,qrBAClB,IAAe,kXACf,IAAc,2bACd,IAAiB,+fACjB,IAAc,uNACd,IAAS,oXACT,IAAc,yaACd,IAAc,qcACd,IAAkB,gWAClB,IAAmB,gWACnB,IAAa,oOACb,IAAgB,6GAChB,IAAiB,s9BACjB,IAAmB,8dACnB,IAAwB,ovBACxB,IAAkB,6bAClB,IAAyB,+lBACzB,IAAqB,6eACrB,IAAsB,g8BACtB,IAAyB,kmBACzB,IAAyB,8wBACzB,IAAkB,kbAClB,IAAc,ssBACd,IAAe,2GACf,IAAY,yvCACZ,IAAkB,wnBAClB,IAAoB,sWACpB,IAAqB,sUACrB,IAAsB,giBACtB,IAAqB,kyCACrB,IAAoB,6pCACpB,IAAa,sFACb,IAAiB,0YACjB,IAAqB,ybACrB,IAAiB,yYACjB,IAAwB,0aACxB,IAAkB,wgBAClB,IAAY,81BACZ,IAAe,wXACf,IAAkB,+WAClB,IAAa,6QACb,IAAY,8eACZ,IAAqB,+9CACrB,IAAmB,2VACnB,IAAoB,iYACpB,IAAiB,wVACjB,IAAkB,6VAClB,IAAkB,6RAClB,IAAiB,sjBACjB,IAAY,mcACZ,IAAgB,wXAChB,IAAsB,oqBACtB,IAAe,sVACf,IAAe,krBACf,IAAsB,moBACtB,IAAa,+MACb,IAAmB,osBACnB,IAAmB,uaACnB,IAAe,mWACf,IAAiB,sZACjB,IAAqB,qIACrB,IAAa,wYACb,IAAqB,gpBACrB,IAAe,+ZACf,IAAkB,wTAClB,IAAwB,qpBACxB,IAAqB,myBACrB,IAAa,goBACb,IAAmB,6NACnB,IAA0B,qVAC1B,IAAiB,6mBACjB,IAAe,+oBACf,IAAe,6lBACf,IAAa,yMACb,IAAU,gFACV,IAAwB,qRACxB,IAA+B,+VAC/B,IAA4B,mdAC5B,IAAmC,yhBACnC,IAAqB,qOACrB,IAA4B,mZAC5B,IAAsB,uZACtB,IAA6B,8iBAC7B,IAAkB,8IAClB,IAAqB,0RACrB,IAA4B,6TAC5B,IAAyB,iKACzB,IAA0B,kMAC1B,IAAiC,oNACjC,IAAe,mLACf,IAAsB,6MACtB,IAAkB,qTAClB,IAAyB,qQACzB,IAAa,0NACb,IAAoB,mRACpB,IAAiB,8FACjB,IAAc,8MACd,IAAqB,wIACrB,IAAgB,8SAChB,IAAuB,wUACvB,IAAgB,mUAChB,IAAuB,+UACvB,IAAc,8GACd,IAAqB,4HACrB,IAAW,sYACX,IAAe,uUACf,IAAsB,ypBACtB,IAAkB,yBAClB,IAAyB,yDACzB,IAAgB,yLAChB,IAAuB,8WACvB,IAAkB,oaAClB,IAAkB,sWAClB,IAAsB,8UACtB,IAA8B,2WAC9B,IAAqC,iYACrC,IAA6B,oWAC7B,IAAyB,2HACzB,IAAiC,gKACjC,IAAwC,+KACxC,IAAgC,0IAChC,IAAuB,gQACvB,IAA+B,sSAC/B,IAAsC,mTACtC,IAA8B,6QAC9B,IAAyB,wfACzB,IAAuB,0RACvB,IAA+B,+TAC/B,IAAsC,gVACtC,IAA8B,2SAC9B,IAAgB,kJAChB,IAAuB,uQACvB,IAAkB,4LAClB,IAAY,oeACZ,IAAU,uZACV,IAAmB,4UACnB,IAAoB,saACpB,IAAiB,0UACjB,IAAe,gXACf,IAAe,+cACf,IAAe,sUACf,IAAa,0cACb,IAAiB,saACjB,IAAiB,8eACjB,IAAc,2VACd,IAAgB,kaAChB,IAAiB,8iBACjB,IAAsB,0UACtB,IAAU,iKACV,IAAa,2jBACb,IAAe,2XACf,IAAe,6gBACf,IAAc,ipBACd,IAAc,ulBACd,IAAc,0eACd,IAAkB,ueAClB,IAAgB,+dAChB,IAAe,sUACf,IAAkB,uLAClB,IAAa,ieACb,IAAc,8VACd,IAAgB,uNAChB,IAAkB,mOAClB,IAAgB,ubAChB,IAAc,8fACd,IAAc,ySACd,IAAU,0MACV,IAAe,sgBACf,IAAsB,guBACtB,IAAmB,wPACnB,IAAmB,uRACnB,IAAa,gRACb,IAAiB,kHACjB,IAAY,wLACZ,IAAS,2xBACT,IAAU,2XACV,IAAa,uaACb,IAAgB,6VAChB,IAAqB,wfACrB,IAAkB,0EAClB,IAA0B,wIAC1B,IAAiC,6KACjC,IAAyB,sHACzB,IAAe,qGACf,IAAwB,8HACxB,IAA+B,uJAC/B,IAAoB,kUACpB,IAAuB,+HACvB,IAAoB,+NACpB,IAAkB,w8BAClB,IAAmB,qHACnB,IAA0B,gJAC1B,IAAkB,8QAClB,IAAmB,4IACnB,IAAsB,+PACtB,IAAmB,6TACnB,IAAqB,0ZACrB,IAAsB,qMACtB,IAAyB,yUACzB,IAAkB,8PAClB,IAAqB,iZACrB,IAAkB,8LAClB,IAAmB,kIACnB,IAAqB,sSACrB,IAAyB,iJACzB,IAAuB,yIACvB,IAAoB,oQACpB,IAAmB,qIACnB,IAAuB,wfACvB,IAAY,gsCACZ,IAAiB,8NACjB,IAAwB,yNACxB,IAAkB,oJAClB,IAAiB,kOACjB,IAAgB,21BAChB,IAAa,i8CACb,IAAmB,kqCACnB,IAAc,obACd,IAAqB,4IACrB,IAA4B,gEAC5B,IAAc,qDACd,IAAqB,0IACrB,IAAoB,8OACpB,IAA8B,uHAC9B,IAAc,iJACd,IAAsB,8KACtB,IAA6B,0LAC7B,IAAqB,mKACrB,IAAyB,mLACzB,IAAiB,wTACjB,IAAgB,0SAChB,IAAuB,0jBACvB,IAAgB,qGAChB,IAAoB,uCACpB,IAAe,mGACf,IAAsB,8HACtB,IAAsB,kFACtB,IAAoB,2RACpB,IAAmB,oHACnB,IAAc,4HACd,IAAqB,wdACrB,IAAc,2GACd,IAAiB,sHACjB,IAAwB,wJACxB,IAAsB,gOACtB,IAA4B,oLAC5B,IAAmB,+EACnB,IAA0B,+bAC1B,IAAiC,ucACjC,IAAe,6EACf,IAAoB,qFACpB,IAAU,6KACV,IAAe,gNACf,IAAsB,sRACtB,IAAe,2QACf,IAAsB,qWACtB,IAAiB,mRACjB,IAAc,mSACd,IAAqB,4YACrB,IAAoB,gOACpB,IAA2B,sSAC3B,GAAkB,wlBAClB,IAAyB,6pBACzB,IAAgB,yYAChB,IAAuB,kfACvB,IAAe,qNACf,IAAsB,iSACtB,GAAW,0DACX,IAAc,8IACd,GAAe,wEACf,IAAiB,sHACjB,IAAwB,+LACxB,IAAmB,6PACnB,IAA0B,mZAC1B,IAAkB,wPAClB,IAAyB,iQACzB,IAAkB,4IAClB,IAAoB,0EACpB,IAA0B,yJAC1B,IAAiC,sPACjC,IAAe,kEACf,IAAwB,yNACxB,IAAyB,yNACzB,IAAmB,wFACnB,IAAwB,yOACxB,IAA+B,6QAC/B,IAAyB,+EACzB,IAAgC,mJAChC,IAAsB,4KACtB,IAA6B,sKAC7B,IAA0B,uGAC1B,IAA0B,+GAC1B,IAAiC,wHACjC,IAAoB,uIACpB,IAA0B,8HAC1B,IAAqC,+VACrC,IAAsC,uSACtC,IAAiC,0OACjC,IAAqC,kTACrC,IAA2B,gJAC3B,IAA2B,6HAC3B,IAAiC,gSACjC,IAAwC,iXACxC,IAAkC,6IAClC,IAA4B,oLAC5B,IAAkC,wVAClC,IAAyC,6bACzC,IAAmC,2LACnC,IAA6B,4MAC7B,IAAqB,4IACrB,IAAkB,uHAClB,IAAuB,kKACvB,IAAsB,qMACtB,IAAwB,6QACxB,IAAY,omBACZ,IAAe,4nBACf,IAAa,6UACb,IAAoB,g9BACpB,IAAiB,4RACjB,IAAe,iNACf,IAAiB,sQACjB,IAAe,kNACf,IAAgB,6UAChB,IAAe,wEACf,IAAuB,yHACvB,IAAuB,0HACvB,IAAwB,uHACxB,IAAqB,0HACrB,GAAiB,6DACjB,IAAoB,2JACpB,IAA2B,4KAC3B,IAAuB,+HACvB,IAA8B,mMAC9B,GAAiB,gEACjB,IAAoB,iKACpB,IAA2B,gLAC3B,IAAuB,qIACvB,IAA8B,yMAC9B,GAAkB,8DAClB,IAAqB,0JACrB,IAA4B,6KAC5B,IAAwB,gIACxB,IAA+B,uMAC/B,IAAuB,+KACvB,IAAuB,gLACvB,IAAwB,kLACxB,IAAqB,mLACrB,IAAe,+DACf,IAAkB,iKAClB,IAAyB,iLACzB,IAAqB,oIACrB,IAA4B,wMAC5B,IAAgB,2SAChB,IAAuB,0WACvB,IAAc,k0BACd,IAAqB,+3BACrB,IAAiB,wiBACjB,IAAwB,umBACxB,IAAe,4QACf,IAAsB,gVACtB,IAAc,mVACd,IAAqB,iZACrB,IAAU,0JACV,IAAY,+NACZ,IAAmB,yYACnB,IAAW,2dACX,IAAc,y5BACd,IAAY,+EACZ,IAAe,uKACf,IAAsB,oLACtB,IAAkB,wRAClB,IAAuB,sSACvB,IAAkB,iUAClB,IAAgB,8CAChB,IAAoB,sHACpB,IAAkB,uEAClB,IAAoB,yGACpB,IAA2B,4PAC3B,IAAsB,gaACtB,IAAmB,wkBACnB,IAAmB,mJACnB,IAAkB,6NAClB,IAAkB,kNAClB,IAAkB,sPAClB,IAAkB,uOAClB,IAAkB,4QAClB,IAAkB,+PAClB,IAAkB,8RAClB,IAAkB,6QAClB,IAAiB,yFACjB,IAAiB,wjBACjB,IAAU,+JACV,IAAgB,6KAChB,IAAiB,2PACjB,IAAwB,kSACxB,IAAe,kMACf,IAAsB,kUACtB,IAA6B,uVAC7B,IAAoB,gOACpB,IAA2B,8PAC3B,IAAwB,4NACxB,IAA+B,yPAC/B,IAAwB,+NACxB,IAA+B,wPAC/B,IAAyB,4NACzB,IAAgC,wQAChC,IAAsB,iOACtB,IAA6B,wPAC7B,IAAoB,kPACpB,IAA4B,uTAC5B,IAAmC,sXACnC,IAA2B,4QAC3B,IAAoB,+YACpB,IAA2B,ofAC3B,IAAmB,obACnB,IAA0B,0cAC1B,IAAmB,yXACnB,IAA0B,mXAC1B,IAAmB,6PACnB,IAA0B,qSAC1B,IAAmB,oWACnB,IAA0B,6XAC1B,IAAoB,iOACpB,IAA2B,yPAC3B,IAAuB,qQACvB,IAA8B,4SAC9B,IAAkB,yRAClB,IAAyB,gUACzB,IAAsB,0NACtB,IAAmB,iOACnB,IAA2B,kRAC3B,IAAkC,0SAClC,IAA0B,wPAC1B,IAAmB,2OACnB,IAA0B,+QAC1B,IAAoB,6TACpB,IAA2B,2VAC3B,IAAqB,0VACrB,IAA4B,mXAC5B,IAAqB,2gBACrB,IAA4B,+hBAC5B,IAAmB,2OACnB,IAAwB,2gBACxB,IAA+B,0iBAC/B,IAA2B,+RAC3B,IAAkC,yUAClC,IAAsB,gXACtB,IAA6B,+YAC7B,IAA0B,qQAC1B,IAAuB,sVACvB,IAA8B,4QAC9B,IAAyB,moBACzB,IAAgC,yrBAChC,IAAY,4sCACZ,IAAW,6HACX,IAAgB,8KAChB,IAAuB,0PACvB,IAAgB,6RAChB,IAAuB,uYACvB,IAAkB,iSAClB,IAAe,6WACf,IAAsB,kbACtB,IAAc,qSACd,IAAe,uXACf,IAAa,6SACb,IAAgB,uRAChB,IAAuB,gZACvB,IAAc,sTACd,GAAkB,qMAClB,IAAe,+SACf,IAAsB,waACtB,IAAiB,qZACjB,IAAwB,8gBACxB,IAAyB,uVACzB,IAAgC,+bAChC,IAAgB,gSAChB,IAAoB,6HACpB,IAA2B,6LAC3B,IAAqB,2HACrB,IAA4B,yLAC5B,IAAmB,0HACnB,IAA0B,6LAC1B,IAAmB,gIACnB,IAA0B,6LAC1B,IAAmB,4GACnB,IAA0B,0KAC1B,IAAkB,8HAClB,IAAyB,sMACzB,IAAoB,8HACpB,IAA2B,0LAC3B,IAAkB,qGAClB,IAAyB,mKACzB,IAAkB,8HAClB,IAAyB,6LACzB,IAAoB,2GACpB,IAA2B,4KAC3B,IAAqB,qGACrB,IAA4B,gLAC5B,IAAkB,gIAClB,IAAyB,8MACzB,GAAW,gHACX,IAAc,mNACd,IAAsB,mQACtB,IAA6B,8RAC7B,IAAqB,8LACrB,IAAiB,2MACjB,IAAyB,4RACzB,IAAgC,iXAChC,GAAwB,uSACxB,IAAkB,gSAClB,IAAyB,uUACzB,IAAkB,+JAClB,IAAyB,yPACzB,IAAkB,mPAClB,IAAgB,8GAChB,IAAmB,kTACnB,IAA0B,2vBAC1B,IAAW,kOACX,GAAgB,mXAChB,IAAuB,krBACvB,IAAoB,sYACpB,IAA2B,opBAC3B,IAAoB,sYACpB,IAA2B,0lBAC3B,IAAqB,sYACrB,IAA4B,opBAC5B,IAAkB,sYAClB,IAAyB,opBACzB,IAAiB,srBACjB,IAAiB,ipBACjB,IAAwB,y3BACxB,IAAgB,+aAChB,GAAuB,wrBACvB,IAAuB,+RACvB,IAA8B,qgBAC9B,IAAiB,0eACjB,IAAwB,gzBACxB,IAAgB,kgBAChB,IAAuB,yxBACvB,IAAc,kwCACd,IAAqB,i/CACrB,IAAmB,mSACnB,IAA0B,2iBAC1B,IAAc,8iBACd,IAAqB,qxBACrB,IAAe,khBACf,IAAmB,+gBACnB,IAA0B,urBAC1B,IAAsB,yrBACtB,IAAgB,uXAChB,IAAuB,goBACvB,IAAc,iUACd,IAAqB,unBACrB,IAAkB,wcAClB,IAAkB,8pBAClB,IAAyB,+9BACzB,IAAe,+YACf,IAAsB,wpBACtB,IAAgB,8ZAChB,IAAuB,wuBACvB,IAAmB,u2BACnB,IAA0B,krCAC1B,IAAkB,kmBAClB,IAAyB,00BACzB,IAAyB,2jBACzB,IAAgC,i4BAChC,IAAiB,qfACjB,IAAwB,8vBACxB,IAAiB,qiBACjB,IAAwB,i2BACxB,GAAe,inBACf,IAAsB,s0BACtB,IAAe,wdACf,IAAiB,0RACjB,IAAwB,kiBACxB,IAAY,kcACZ,IAAY,kpBACZ,IAAmB,63EACnB,IAAe,mHACf,IAAsB,qJACtB,IAAc,4OACd,IAAe,uIACf,IAAqB,sVACrB,IAAuB,yJACvB,IAA0B,gSAC1B,IAAmB,8NACnB,IAAgB,uQAChB,IAAmB,oZACnB,IAAkB,kDAClB,IAAe,uIACf,IAAqB,qIACrB,IAA4B,qKAC5B,IAAc,4dACd,IAAkB,yIAClB,IAAyB,wKACzB,IAAkB,qIAClB,IAAyB,2KACzB,IAAqB,iQACrB,IAAwB,ySACxB,IAAgB,gYAChB,IAAc,yGACd,IAAmB,iMACnB,IAAa,w0CACb,IAAY,qHACZ,IAAiB,uPACjB,IAAsB,0VACtB,IAA6B,2ZAC7B,IAAwB,6SACxB,IAAe,6OACf,IAAsB,oSACtB,IAAmB,mKACnB,IAAgB,6LAChB,IAAuB,gPACvB,IAAY,sEACZ,IAAS,84BACT,IAAY,4+BACZ,IAAkB,2kCAClB,IAAyB,2kCACzB,IAAY,49BACZ,IAAmB,81CACnB,GAAgB,otCAChB,IAAc,83BACd,IAAqB,ipCACrB,IAAa,u1BACb,IAAoB,goCACpB,IAAgB,w3BAChB,IAAuB,ilCACvB,IAAa,+2BACb,IAAoB,koCACpB,IAAa,u8BACb,IAAoB,gqCACpB,IAAiB,orBACjB,IAAwB,sxCACxB,IAAU,8nDACV,IAAa,+HACb,IAAiB,0KACjB,IAAwB,0LACxB,IAAiB,oBACjB,IAAW,kDACX,IAAc,6GACd,IAAqB,2HACrB,IAAiB,8GACjB,IAAwB,iLACxB,IAAa,gJACb,IAAoB,+QACpB,IAA2B,iTAC3B,IAAkB,4LAClB,IAAyB,qNACzB,IAAsB,uNACtB,IAA6B,uPAC7B,IAAuB,uNACvB,IAA8B,qPAC9B,IAAqB,0LACrB,IAA4B,0NAC5B,IAAkB,kOAClB,IAAyB,iQACzB,IAAiB,wUACjB,IAAwB,4WACxB,IAAgB,qgBAChB,IAAuB,6fACvB,IAAkB,oLAClB,IAAyB,8MACzB,IAAkB,qLAClB,IAAyB,qNACzB,IAAqB,iLACrB,IAA4B,wNAC5B,IAAgB,sOAChB,IAAuB,kTACvB,IAAoB,kLACpB,IAAiB,kLACjB,IAAwB,uNACxB,IAAuB,gMACvB,IAA8B,kOAC9B,IAAqB,4pBACrB,IAA4B,utBAC5B,IAAkB,qOAClB,IAAyB,uQACzB,IAAmB,0PACnB,IAA0B,4RAC1B,IAAmB,gcACnB,IAA0B,+aAC1B,IAAiB,2LACjB,IAAyB,+MACzB,IAAgC,iPAChC,IAAwB,+MACxB,IAAa,+IACb,IAAuB,+DACvB,IAAmB,sTACnB,IAAqB,+DACrB,IAAa,+MACb,IAAgB,sQAChB,IAAuB,6aACvB,GAAoB,qRACpB,IAAiB,uSACjB,IAAa,8sBACb,IAAU,0WACV,IAAa,wiBACb,IAAgB,mWAChB,IAAa,yMACb,IAAiB,2GACjB,IAAoB,2QACpB,IAA2B,oTAC3B,IAAiB,0LACjB,IAAwB,+zCACxB,IAA8B,ugBAC9B,IAAqC,0kBACrC,IAAc,sRACd,IAAqB,qaACrB,IAAa,wGACb,IAAgB,kFAChB,IAAkB,6EAClB,GAAiB,6HACjB,IAAgB,kgBAChB,IAAsB,0KACtB,IAAkB,yNAClB,IAAiB,yJACjB,IAAsB,kMACtB,IAA6B,6NAC7B,IAAoB,gMACpB,IAA2B,6OAC3B,IAAsB,8SACtB,IAA6B,mWAC7B,IAAoB,o8BACpB,IAA2B,i/BAC3B,IAAqB,sXACrB,IAA4B,ubAC5B,IAAsB,iQACtB,IAA6B,wRAC7B,IAAqB,mQACrB,IAA4B,gUAC5B,IAAoB,2SACpB,IAA2B,gVAC3B,GAAwB,qMACxB,IAAqB,yRACrB,IAA4B,gTAC5B,IAAyB,gNACzB,IAAgC,uPAChC,IAAc,gJACd,IAAiB,gKACjB,IAAoB,iOACpB,IAAgB,0sBAChB,IAAuB,iYACvB,IAA8B,ukBAC9B,IAAmB,guBACnB,IAAY,2nBACZ,IAAiB,qiBACjB,IAAwB,owBACxB,IAAiB,6xBACjB,IAAwB,qlCACxB,IAAiB,owBACjB,IAAwB,83BACxB,IAAe,q2CACf,IAAsB,ukDACtB,IAAgB,8zBAChB,IAAuB,ogCACvB,IAAgB,6yBAChB,IAAuB,wgCACvB,IAAiB,suBACjB,IAAwB,6hCACxB,IAAe,wwBACf,IAAsB,ymCACtB,IAAmB,60BACnB,IAAgB,8vBAChB,IAAuB,ijCACvB,IAAmB,o2BACnB,IAA0B,soCAC1B,IAAkB,g2BAClB,IAAyB,2pCACzB,IAAoB,omBACpB,IAA2B,41BAC3B,IAAwB,67CACxB,IAAc,2sBACd,IAAe,2tBACf,IAAa,mgBACb,IAAU,ybACV,IAAa,shBACb,IAAgB,6NAChB,IAAa,ypBACb,IAAgB,8KAChB,IAAuB,0MACvB,IAAS,isCACT,IAAY,whCACZ,IAAc,mWACd,IAAc,yUACd,IAAY,kSACZ,IAAmB,wUACnB,IAAW,ipBACX,IAAc,mMACd,IAAqB,gRACrB,IAAqB,ukCACrB,IAAgB,4FAChB,IAAqB,oPACrB,IAA4B,sQAC5B,IAAoB,wHACpB,IAA2B,+IAC3B,IAAqB,8RACrB,IAA4B,kWAC5B,IAAoB,yVACpB,IAA2B,iSAC3B,IAAoB,sSACpB,IAA2B,4TAC3B,IAAoB,8cACpB,IAA2B,yaAC3B,IAAsB,4YACtB,IAA6B,iZAC7B,IAAqB,gMACrB,IAA4B,6HAC5B,IAAwB,6HACxB,IAA+B,0JAC/B,IAAmB,4LACnB,IAA0B,8PAC1B,IAAuB,kHACvB,IAAoB,qLACpB,IAA2B,kJAC3B,IAAuB,obACvB,IAA8B,0cAC9B,IAAsB,4KACtB,IAA6B,mMAC7B,IAAsB,kRACtB,IAA6B,gVAC7B,IAAoB,uOACpB,IAA2B,yPAC3B,IAAsB,waACtB,IAA6B,wdAC7B,IAAwB,4IACxB,IAA+B,qKAC/B,IAAoB,igBACpB,IAA2B,+gBAC3B,IAAwB,gTACxB,IAA2B,2aAC3B,IAAkC,ocAClC,IAA+B,uSAC/B,IAAa,qUACb,IAAU,kGACV,IAAc,+IACd,IAAmB,iGACnB,IAAkB,iGAClB,IAAgB,2UAChB,IAAgB,iGAChB,IAAW,mDACX,IAAkB,mwBAClB,IAAiB,qeACjB,IAAkB,+FAClB,IAAgB,6OAChB,IAAmB,gTACnB,IAAmB,qeACnB,IAAwB,odACxB,IAAW,gqCACX,IAAW,wGACX,IAAiB,8LACjB,IAAwB,gRACxB,IAAkB,4JAClB,IAAe,stBACf,IAAiB,gjBACjB,IAAU,gVACV,IAAa,4YACb,IAAoB,ufACpB,IAAiB,0ZACjB,IAAc,qsBACd,IAAc,gLACd,IAAkB,yIAClB,IAAS,uGACT,IAAY,+KACZ,IAAmB,oLACnB,IAAgB,yGAChB,IAAc,qLACd,IAAc,qLACd,IAAqB,kNACrB,IAAa,iSACb,IAAa,0PACb,IAAiB,gfACjB,IAAiB,ggBACjB,IAAiB,iRACjB,IAAiB,gFACjB,IAAiB,8CACjB,IAAiB,iYACjB,IAAoB,uhBACpB,IAAiB,uDACjB,IAAiB,2WACjB,IAAiB,sHACjB,IAAiB,wMACjB,IAAiB,uGACjB,IAAiB,yWACjB,IAAiB,yCACjB,IAAiB,4IACjB,IAAiB,0LACjB,IAAiB,2RACjB,IAAkB,qQAClB,IAAiB,0JACjB,IAAmB,2LACnB,IAAkB,waAClB,IAAiB,6QACjB,IAAiB,iLACjB,IAAiB,8FACjB,IAAiB,4ZACjB,IAAiB,yVACjB,IAAoB,yWACpB,IAAe,sOACf,IAAe,mEACf,IAAmB,2TACnB,IAAwB,wkBACxB,IAA+B,4wBAC/B,IAA0B,2qCAC1B,IAAiC,sxCACjC,IAA0B,0eAC1B,IAAgB,mIAChB,IAAmB,yTACnB,IAAgB,+MAChB,IAAc,6GACd,IAAoB,iDACpB,IAAc,sYACd,IAAiB,ukBACjB,IAAmB,wqBACnB,IAAe,8WACf,IAAgB,0RAChB,IAAoB,0bACpB,IAAqB,8WACrB,IAAoB,sYACpB,IAAsB,sdACtB,IAAoB,4VACpB,GAAc,oSACd,IAAmB,gSACnB,GAA0B,kYAC1B,IAAuB,scACvB,IAA8B,qfAC9B,IAAuB,ycACvB,IAA8B,qfAC9B,IAAwB,ycACxB,IAA+B,qfAC/B,IAAqB,scACrB,IAA4B,qfAC5B,IAAmB,0VACnB,GAA0B,6hBAC1B,IAAmB,ojBACnB,GAA0B,spBAC1B,IAAiB,umCACjB,IAAwB,8qCACxB,IAAkB,seAClB,IAAyB,qkBACzB,IAAoB,8aACpB,IAA2B,ujBAC3B,GAAiB,mkBACjB,IAAoB,k1BACpB,IAA2B,g4BAC3B,IAAwB,knBACxB,IAAoB,8ZACpB,IAA2B,6gBAC3B,IAAkB,oiBAClB,IAAyB,wtBACzB,IAAoB,8kBACpB,IAA2B,8tBAC3B,IAAmB,gSACnB,IAA0B,seAC1B,IAAiB,8hBACjB,IAAwB,knBACxB,IAAqB,yXACrB,IAAkB,gWAClB,IAAyB,8fACzB,IAAqB,8nBACrB,IAA4B,ktBAC5B,IAAoB,icACpB,IAA2B,gmBAC3B,GAAoB,4tBACpB,GAA2B,yqBAC3B,IAAsB,qWACtB,IAA6B,waAC7B,IAAkB,mpBAClB,IAAyB,m0BACzB,IAAe,yOACf,IAAsB,sVACtB,IAAoB,+WACpB,IAAY,24EACZ,IAAmB,4IACnB,IAAkB,6IAClB,IAAmB,mPACnB,IAAc,wMACd,IAAqB,2YACrB,IAAa,2OACb,IAAkB,uRAClB,IAA0B,4IAC1B,IAA0B,yPAC1B,IAAqB,8OACrB,IAAqB,8XACrB,IAAY,oFACZ,IAAiB,kIACjB,IAAwB,mJACxB,IAAkB,mLAClB,IAAyB,yOACzB,IAAiB,wTACjB,IAAwB,sXACxB,IAAiB,6JACjB,IAAwB,uLACxB,IAAmB,mOACnB,IAA0B,kPAC1B,IAAe,0MACf,IAAsB,mQACtB,GAAmB,sGACnB,IAAmB,oLACnB,IAAiB,kIACjB,IAAwB,mJACxB,IAAmB,2KACnB,IAAW,8CACX,IAAU,8QACV,IAAc,sWACd,IAAiB,oaACjB,IAAgB,ibAChB,IAAe,8PACf,IAAoB,kSACpB,IAAkB,4HAClB,IAAyB,mOACzB,IAAa,+CACb,IAAW,48BACX,IAAoB,iMACpB,IAAgB,4DAChB,IAAa,+YACb,IAAkB,86BAClB,IAAc,0UACd,IAAa,spBACb,IAAc,0HACd,IAAqB,8LACrB,IAAqB,0YACrB,IAAa,8BACb,IAAoB,2EACpB,IAAkB,kHAClB,IAAmB,+aACnB,IAAW,oJACX,IAAkB,gNAClB,IAAW,gNACX,IAAkB,mSAClB,IAAW,sRACX,IAAkB,4WAClB,IAAW,kVACX,IAAkB,idAClB,IAAW,wZACX,IAAkB,6gBAClB,IAAW,ydACX,IAAkB,mmBAClB,IAAa,2iBACb,IAAoB,8jBACpB,IAAa,sUACb,IAAoB,oXACpB,IAAa,syBACb,IAAoB,s3BACpB,IAAY,4PACZ,IAAmB,6UACnB,IAAY,qbACZ,IAAmB,8cACnB,IAAY,ktBACZ,IAAmB,uuBACnB,IAAkB,ylCAClB,IAAyB,srBACzB,IAAkB,kLAClB,IAAe,wRACf,IAAgB,0PAChB,IAAoB,6LACpB,IAAU,oKACV,IAAe,kLACf,IAAgB,qYAChB,IAAgB,ubAChB,IAAqB,0dACrB,IAAmB,udACnB,IAAY,kVACZ,IAAgC,0EAChC,IAA8B,sDAC9B,IAA+B,wDAC/B,IAA8B,sDAC9B,IAA8B,0EAC9B,IAA2B,wDAC3B,IAAe,2QACf,IAAY,gaACZ,IAAoB,+uBACpB,IAAkB,yfAClB,IAAiB,sSACjB,IAAqB,gCACrB,IAAqB,0fACrB,IAAqB,+QACrB,IAA6B,mYAC7B,IAAmB,wkBACnB,IAAc,4JACd,IAAiB,gPACjB,IAAU,ghCACV,IAAS,yzBACT,IAAS,2RACT,IAAgB,8WAChB,IAAgB,4FAChB,GAAc,4FACd,IAAe,4FACf,IAAa,qHACb,IAAgB,6HAChB,IAAY,67DACZ,IAAY,+PACZ,IAAS,8wBACT,IAAgB,8SAChB,IAAa,yGACb,IAAgB,qMAChB,IAAW,wJACX,IAAW,wlBACX,IAAa,mTACb,IAAY,8LACZ,IAAe,kPACf,IAAgB,uTAChB,IAAkB,oZAClB,IAAkB,kMAClB,IAAe,8UACf,IAAgB,0cAChB,IAAY,mYACZ,IAAU,yFACV,IAAgB,2GAChB,IAAsB,gZACtB,IAAoB,8NACpB,IAAc,0GACd,IAAiB,oIACjB,IAAqB,yYACrB,IAAqB,oIACrB,IAAc,qLACd,IAAmB,iRACnB,IAAY,yKACZ,IAAgB,wfAChB,IAAc,8jBACd,IAAiB,icACjB,GAAoB,iNACpB,IAA0B,8WAC1B,IAAiC,ibACjC,IAAgB,wfAChB,IAAkB,6YAClB,IAAkB,iNAClB,IAAwB,8WACxB,IAA+B,ibAC/B,GAAc,4CACd,IAAiB,qJACjB,IAAwB,mKACxB,IAAoB,0IACpB,IAA2B,qOAC3B,IAAkB,kNAClB,IAAyB,gQACzB,IAAsB,8DACtB,IAA6B,yGAC7B,IAAqB,4NACrB,IAA4B,+NAC5B,IAAiB,uIACjB,IAAwB,uJACxB,IAAqB,uFACrB,IAAU,oMACV,IAAoB,uKACpB,IAA2B,qCAC3B,IAAiB,oVACjB,IAAkB,kKAClB,IAAyB,oCACzB,IAAgB,4hCAChB,IAAU,qnBACV,IAAa,8yBACb,IAAa,8IACb,IAAgB,yPAChB,IAAa,mMACb,IAAoB,mNACpB,IAAW,iYACX,IAAa,2MACb,IAAY,4lBACZ,IAAU,ySACV,IAAc,wRACd,IAAe,qWACf,IAAgB,4oBAChB,IAAoB,qsBACpB,IAAmB,iwBACnB,IAAa,gVACb,IAAgB,6cAChB,IAAuB,0tBACvB,IAAoB,mhBACpB,GAAW,0UACX,IAAoB,kZACpB,IAAoB,kZACpB,IAAqB,kZACrB,IAAkB,kZAClB,IAAc,oTACd,IAAmB,oXACnB,IAAiB,sZACjB,IAAkB,4YAClB,IAAoB,kfACpB,IAAgB,qZAChB,IAAc,0lBACd,IAAe,6aACf,IAAiB,mhBACjB,IAAS,4GACT,IAAe,siBACf,IAAc,gmBACd,IAAY,gOACZ,IAAmB,gaACnB,IAAgB,2MAChB,IAAiB,sUACjB,IAAgB,qGAChB,IAAW,uCACX,IAAiB,gHACjB,IAAwB,qLACxB,IAAkB,wEAClB,IAAoB,mZACpB,IAA0B,2LAC1B,IAAuB,2+EACvB,IAAc,yNACd,IAAsB,0HACtB,IAAmB,6HACnB,IAAc,wJACd,IAAkB,iLAClB,IAAuB,4SACvB,IAA0B,2TAC1B,IAAiC,8UACjC,IAA8B,6TAC9B,IAAgB,+KAChB,IAAa,2FACb,IAAoB,sLACpB,IAAW,oHACX,IAAgB,2JAChB,IAAuB,yKACvB,IAAoB,8NACpB,IAA2B,+OAC3B,IAAqB,8NACrB,IAA4B,+OAC5B,IAAc,yOACd,IAAgB,sQAChB,IAAuB,uRACvB,IAAe,sYACf,IAAsB,4TACtB,IAAe,iXACf,IAAsB,kYACtB,IAAuB,gZACvB,IAAe,6bACf,IAAsB,+ZACtB,IAAuB,8PACvB,IAAgB,+MAChB,IAAuB,gOACvB,IAAmB,uJACnB,IAA0B,gLAC1B,IAAqB,+OACrB,IAAc,8NACd,IAAqB,qOACrB,IAAe,iJACf,IAA2B,geAC3B,IAAuB,mLACvB,IAA8B,gOAC9B,IAAsB,wLACtB,GAAkB,yIAClB,IAAe,uOACf,IAAsB,wPACtB,IAAiB,2UACjB,IAAwB,8VACxB,IAAe,kwCACf,IAAsB,6rCACtB,IAAiB,2bACjB,IAAwB,6dACxB,IAAe,8fACf,IAAsB,8fACtB,IAAkB,kJAClB,IAAW,qgBACX,IAAU,gGACV,IAAc,6UACd,IAAmB,6VACnB,IAA0B,2ZAC1B,IAAsB,sMACtB,IAA6B,6OAC7B,IAAkB,meAClB,IAAyB,wgBACzB,IAAiB,2rBACjB,IAAwB,6uBACxB,IAAkB,saAClB,IAAyB,meACzB,IAAmB,ujBACnB,IAA0B,0nBAC1B,IAAqB,sSACrB,IAA4B,yWAC5B,IAAmB,8RACnB,IAA0B,iXAC1B,IAAmB,qaACnB,IAA0B,0eAC1B,IAAkB,y0BAClB,IAAyB,uuBACzB,IAAiB,gdACjB,IAAwB,ooBACxB,IAAmB,0gBACnB,IAA0B,6lBAC1B,IAAqB,qRACrB,IAA4B,yVAC5B,IAAqB,mZACrB,IAAkB,kiBAClB,IAAyB,qnBACzB,IAAkB,4wDAClB,IAAyB,ooFACzB,IAAoB,woBACpB,IAA2B,2tBAC3B,IAAiB,4ZACjB,IAAwB,2dACxB,IAAkB,2rBAClB,IAAyB,89BACzB,IAAoB,ubACpB,IAA2B,qfAC3B,IAAkB,qVAClB,IAAyB,0ZACzB,IAAY,6FACZ,IAAe,yJACf,IAAsB,oNACtB,IAAmB,qHACnB,IAAa,qaACb,IAAW,qCACX,IAAc,yHACd,IAAe,oDACf,IAAsB,sGACtB,IAAY,kRACZ,IAAmB,mMACnB,IAAe,6OACf,IAAkB,2PAClB,IAAmB,yVACnB,IAAiB,yVACjB,IAAY,0vBACZ,IAAQ,6gBACR,IAAc,kGACd,IAAc,yLACd,IAAmB,6DACnB,IAAsB,oHACtB,IAAiB,8QACjB,IAAgB,i7BAChB,IAAgB,yrCAChB,IAAmB,0gCACnB,IAAiB,06BACjB,IAAiB,6fACjB,IAAiB,4tBACjB,IAAe,2aACf,IAAc,w1BACd,IAAe,odACf,IAAiB,2EACjB,IAAsB,sCACtB,IAAa,udACb,IAAe,yLACf,IAAe,kMACf,IAAsB,kNACtB,GAAmB,kKACnB,GAA0B,yFAC1B,GAAc,kTACd,GAAiB,kYACjB,GAAY,iIACZ,GAAmB,+HACnB,GAAS,oPACT,GAAkB,6dAClB,GAAyB,geACzB,GAAmB,qZACnB,GAA0B,qZAC1B,GAAc,0bACd,GAAqB,oaACrB,GAAe,sqBACf,GAAsB,gaACtB,GAAe,gHACf,GAAa,okBACb,GAAiB,4lBACjB,GAAwB,0kBACxB,GAAoB,ikBACpB,GAAc,iTACd,GAAqB,0TACrB,GAAY,mkBACZ,GAAmB,wjBACnB,GAAgB,4SAChB,GAAa,kfACb,GAAoB,ggBACpB,GAAgB,6jBAChB,GAAuB,gkBACvB,GAAe,sjBACf,GAAsB,2kBACtB,GAAiB,uTACjB,GAAwB,wXACxB,GAAgB,+QAChB,GAAqB,gRACrB,GAAmB,uZACnB,GAAoB,gSACpB,GAAsB,0XACtB,GAAuB,qOACvB,GAAe,m7BACf,GAAa,weACb,GAAoB,8pBACpB,GAAoB,0YACpB,GAAoB,gmBACpB,GAA2B,qwBAC3B,GAAc,wkBACd,GAAqB,8qBACrB,GAAqB,wnBACrB,GAAe,mbACf,GAAsB,yqBACtB,GAAsB,yWACtB,GAAsB,skBACtB,GAA6B,o4BAC7B,GAAc,gSACd,GAAoB,wEACpB,GAAuB,sfACvB,GAAuB,wzBACvB,GAAa,wIACb,GAAgB,wzCAChB,GAAS,4jBACT,GAAc,olBACd,GAAa,4zBACb,GAAoB,mxBACpB,GAAkB,mxBAClB,GAAc,+jBACd,GAAc,ouBACd,GAAY,idACZ,GAAa,4vBACb,GAAe,k2BACf,GAAe,0uBACf,GAAe,i0BACf,GAAe,m2BACf,GAAiB,wCACjB,GAAmB,8RACnB,GAAmB,oQACnB,GAAmB,kYACnB,GAAmB,uPACnB,GAAkB,2OAClB,GAAmB,wXACnB,GAAwB,2FACxB,GAAY,qKACZ,GAAmB,+RACnB,GAAS,ihBACT,GAAa,uVACb,GAAmB,kXACnB,GAA0B,8UAC1B,GAAY,yvBACZ,GAAW,iNACX,GAAmB,wOACnB,GAAa,udACb,GAAiB,2pDACjB,GAAW,ohBACX,GAAU,wFACV,GAAiB,iOACjB,GAAwB,iOACxB,GAAe,oIACf,GAAsB,oIACtB,GAAwB,mPACxB,GAA+B,6PAC/B,GAAqB,qPACrB,GAA4B,2PAC5B,GAAiB,mKACjB,GAAa,ypBACb,GAAgB,mlBAChB,GAAgB,2XAChB,GAAuB,wXACvB,GAAqB,gKACrB,GAA4B,mSAC5B,GAAe,mJACf,GAAoB,6OACpB,GAA2B,gPAC3B,GAAsB,yJACtB,GAAe,yNACf,GAAsB,gOACtB,GAAe,yPACf,GAAsB,kRACtB,GAAe,8PACf,GAAsB,gSACtB,GAAc,6PACd,GAAqB,+PACrB,GAAa,qlCACb,GAAoB,+hCACpB,GAAiB,yMACjB,GAAmB,oIACnB,GAA0B,qIAC1B,GAAkB,kIAClB,GAAuB,4KACvB,GAA8B,8JAC9B,GAA4B,6PAC5B,GAAmC,kPACnC,GAAuB,kTACvB,GAA8B,4PAC9B,GAAsB,mVACtB,GAA6B,4SAC7B,GAAuB,yQACvB,GAA8B,mNAC9B,GAA0B,+KAC1B,GAAiC,+KACjC,GAAyB,uHACzB,GAAsB,gSACtB,GAA6B,2OAC7B,GAAyB,8cACzB,GAAgC,ikBAChC,GAAwB,8XACxB,GAA+B,wUAC/B,GAAkB,8IAClB,GAAyB,8HACzB,GAAc,wQACd,GAAqB,wQACrB,GAAe,8KACf,GAAkB,kKAClB,GAAyB,oMACzB,GAAsB,mMACtB,GAAgB,qJAChB,GAAuB,8JACvB,GAAa,yfACb,GAAoB,gcACpB,GAAc,sRACd,GAAqB,ihBACrB,GAAgB,uSAChB,GAAgB,wWAChB,GAAe,kMACf,GAAqB,gdACrB,GAA4B,igBAC5B,GAAoB,iUACpB,GAA2B,kUAC3B,GAAsB,6MACtB,GAAmB,yVACnB,GAA0B,0VAC1B,GAAqB,+bACrB,GAA4B,gcAC5B,GAAgB,qJAChB,GAAuB,oLACvB,GAAgB,oaAChB,GAAa,sSACb,GAAoB,2KACpB,GAAc,+VACd,GAAqB,sZACrB,GAAc,icACd,GAAkB,8aAClB,GAAyB,mVACzB,GAAqB,sWACrB,GAAgB,8XAChB,GAAuB,4WACvB,GAAe,wLACf,GAAsB,0LACtB,GAAc,0LACd,GAAqB,qPACrB,GAAkB,8HAClB,GAAyB,2IACzB,GAAe,kLACf,GAAsB,oLACtB,GAAiB,0FACjB,GAAgB,+UAChB,GAAiB,6TACjB,GAAwB,0TACxB,GAAe,ucACf,GAAsB,icACtB,GAAc,gNACd,GAAqB,kNACrB,GAAgB,6YAChB,GAAoB,6WACpB,GAAuB,gXACvB,GAA8B,sZAC9B,GAA2B,sXAC3B,GAAyB,qGACzB,GAAkB,qRAClB,GAAyB,8SACzB,GAAiB,kbACjB,GAAwB,+ZACxB,GAAgB,sTAChB,GAAuB,wTACvB,GAAiB,uLACjB,GAAwB,yKACxB,GAAiB,8RACjB,GAAwB,+XACxB,GAAoB,mMACpB,GAA2B,8LAC3B,GAAqB,sMACrB,GAA4B,6LAC5B,GAAgB,6aAChB,GAAuB,2aACvB,GAAc,6JACd,GAAqB,sKACrB,GAAkB,+IAClB,IAAyB,0IACzB,IAAc,ogBACd,IAAc,qMACd,IAAwB,6PACxB,IAA+B,gLAC/B,IAAqB,mMACrB,IAAc,yHACd,IAAqB,gIACrB,IAAc,6cACd,IAAqB,ubACrB,IAAe,iMACf,IAAkB,qMAClB,IAA0B,kPAC1B,IAAiC,8PACjC,IAAyB,0NACzB,IAAsB,mMACtB,IAAc,yFACd,IAAqB,qIACrB,IAAc,mRACd,IAAqB,iSACrB,IAAgB,8HAChB,IAAuB,8HACvB,IAAe,uIACf,IAAsB,qIACtB,IAAc,yLACd,GAAiB,2KACjB,IAAwB,8MACxB,IAAqB,+NACrB,IAAgB,kSAChB,IAAU,sRACV,IAAe,wIACf,IAAkB,4LAClB,IAA0B,kNAC1B,IAAkB,0NAClB,IAAY,sRACZ,IAAiB,qVACjB,IAAwB,oYACxB,IAAe,msCACf,IAAsB,mvCACtB,IAAgB,wMAChB,IAAuB,sPACvB,IAAiB,qSACjB,IAAwB,oVACxB,IAAoB,6eACpB,IAA2B,yiBAC3B,IAAe,+TACf,IAAsB,8XACtB,IAAmB,mUACnB,IAAgB,yTAChB,IAAuB,4WACvB,IAAkB,iaAClB,IAAyB,+cACzB,IAAoB,yTACpB,IAA2B,oWAC3B,GAAmB,8CACnB,IAAwB,2GACxB,GAAuB,mIACvB,IAAyB,yOACzB,IAAa,+JACb,IAAiB,0VACjB,IAAiB,gpEACjB,IAAoB,8+DACpB,IAAU,s2BACV,IAAe,o4BACf,IAAgB,+7BAChB,IAAsB,+IACtB,IAAiB,6QACjB,IAAsB,0SACtB,IAAoB,oZACpB,IAAa,44BACb,IAAiB,s4BACjB,IAAe,4fACf,IAAc,sTACd,IAAa,okDACb,IAAe,+yBACf,IAAkB,gGAClB,IAAc,yTACd,IAAc,6kBACd,IAAiB,soBACjB,IAAU,8dACV,IAAa,+dACb,IAAc,0gBACd,IAAqB,ouBACrB,IAAe,wMACf,IAAsB,6NACtB,IAAiB,+KACjB,IAAwB,gMACxB,IAAU,+CACV,IAAmB,uKACnB,IAAe,iEACf,IAAsB,yGACtB,IAAa,sIACb,IAAoB,2LACpB,IAAiB,sFACjB,IAAc,sHACd,IAAqB,6NACrB,IAAgB,4NAChB,IAAuB,mUACvB,IAAkB,uCAClB,IAAiB,yJACjB,IAAsB,sKACtB,IAA6B,qRAC7B,IAAoB,kLACpB,IAA2B,0UAC3B,IAAwB,iRACxB,IAAqB,8LACrB,IAA4B,6SAC5B,IAAuB,8QACvB,IAA8B,6XAC9B,IAAW,qWACX,IAAW,iCACX,IAAgB,gEAChB,IAAuB,sGACvB,IAAe,wGACf,IAAc,wGACd,IAAqB,4IACrB,IAAkB,wEAClB,IAAiB,sXACjB,IAAmB,+DACnB,IAA0B,qEAC1B,IAAgB,4HAChB,IAAmB,gIACnB,IAAW,yYACX,IAAgB,2LAChB,IAAqB,kPACrB,IAA4B,yUAC5B,IAAmB,iOACnB,IAA0B,gVAC1B,IAAuB,wTACvB,IAAoB,0QACpB,IAA2B,iWAC3B,IAAsB,gXACtB,IAA6B,ucAC7B,IAAgB,yaAChB,IAAuB,4fACvB,IAAc,qUACd,IAAqB,sXACrB,IAAkB,0cAClB,IAAe,icACf,IAAsB,ohBACtB,IAAiB,uiBACjB,IAAwB,0nBACxB,IAAsB,2ZACtB,IAA2B,iLAC3B,IAAkC,mSAClC,IAA6B,yZAC7B,IAAgB,mQAChB,IAAoB,8MACpB,IAAgB,wPAChB,IAAiB,sNACjB,IAAkB,gNAClB,IAAe,iDACf,IAAmB,4LACnB,IAA0B,sRAC1B,IAAsB,uEACtB,IAAwB,oDACxB,IAA+B,8EAC/B,IAA+B,0FAC/B,IAAsC,+HACtC,IAAe,qGACf,IAAY,6KACZ,IAAmB,oKACnB,IAAY,muBACZ,IAAmB,w+CACnB,IAAkB,sgCAClB,IAAyB,6sDACzB,IAAiB,4aACjB,IAAiB,qPACjB,IAAwB,weACxB,IAAe,sQACf,IAAgB,2SAChB,IAA0B,8MAC1B,IAAwB,8MACxB,GAAY,gGACZ,IAAmB,qOACnB,IAA0B,iRAC1B,IAAiB,oQACjB,IAAwB,sVACxB,IAAqB,wMACrB,IAA4B,gOAC5B,IAAqB,wMACrB,IAA4B,gOAC5B,IAA0B,oPAC1B,IAAiC,4QACjC,IAAsB,yMACtB,IAA6B,iOAC7B,IAAmB,wMACnB,IAAuB,kPACvB,IAA8B,0QAC9B,IAA0B,gOAC1B,IAAkB,sdAClB,IAAyB,0eACzB,IAAiB,kPACjB,IAAwB,0QACxB,IAAiB,kRACjB,IAAwB,8VACxB,IAAe,4lCACf,IAAsB,ijCACtB,IAAoB,kIACpB,IAA2B,iIAC3B,IAAgB,0VAChB,IAAuB,6VACvB,IAAe,saACf,IAAsB,qbACtB,IAAgB,qQAChB,IAAuB,6OACvB,IAAuB,iOACvB,IAAiB,oUACjB,IAAwB,4UACxB,IAAkB,8TAClB,IAAgB,+HAChB,IAAuB,4IACvB,IAAiB,2HACjB,IAAuB,uQACvB,IAA8B,wVAC9B,IAAe,ySACf,IAAsB,8YACtB,IAA6B,gZAC7B,IAAsB,8SACtB,IAAgB,uaAChB,IAAoB,kaACpB,IAA2B,+WAC3B,IAAuB,wXACvB,IAAkB,oZAClB,IAAyB,+YACzB,IAAiB,0LACjB,IAAwB,kNACxB,IAAgB,0HAChB,IAAuB,4JACvB,GAAoB,8HACpB,IAAyB,kKACzB,IAA2B,4IAC3B,IAAwB,0QACxB,IAA+B,mMAC/B,IAAiB,sPACjB,IAAwB,2PACxB,IAAmB,wLACnB,IAA0B,wPAC1B,IAAe,mMACf,IAAsB,wOACtB,IAAgB,2IAChB,IAAuB,mJACvB,IAAmB,6GACnB,IAAgB,4LAChB,IAAuB,oNACvB,IAAgB,kNAChB,IAAuB,0OACvB,IAAiB,sRACjB,IAAwB,sSACxB,IAAoB,2RACpB,IAA2B,8SAC3B,IAAmB,ubACnB,IAA0B,sbAC1B,IAAkB,wTAClB,IAAyB,gVACzB,IAAkB,2ZAClB,IAAyB,4ZACzB,IAAoB,kJACpB,IAA2B,+JAC3B,IAAgB,wMAChB,IAAwB,kQACxB,IAA+B,qRAC/B,IAAuB,+OACvB,IAAgB,8HAChB,IAAuB,2IACvB,IAAgB,4cAChB,IAAuB,0gBACvB,IAAiB,uMACjB,IAAwB,qNACxB,IAAgB,yHAChB,IAAuB,sIACvB,IAAkB,yHAClB,GAAyB,iIACzB,IAAkB,6eAClB,IAAyB,mfACzB,IAAe,wKACf,IAAsB,oMACtB,IAAiB,0sBACjB,IAAU,wRACV,IAAe,2KACf,IAAsB,ikBACtB,IAAmB,+HACnB,IAAmB,mlBACnB,IAAsB,2hBACtB,IAA6B,q7BAC7B,IAA0B,w/BAC1B,IAAmB,scACnB,IAAe,2fACf,IAAgB,onBAChB,IAAgB,sWAChB,IAAa,6NACb,IAAoB,4SACpB,IAAiB,sRACjB,IAAe,olBACf,IAAkB,i8BAClB,IAAoB,sHACpB,IAA2B,uNAC3B,IAAgB,irCAChB,IAAiB,iNACjB,IAAoB,0VACpB,IAAe,ucACf,IAAc,kcACd,IAAwB,ghBACxB,IAAoB,4ZACpB,IAAY,yIACZ,IAAmB,iMACnB,IAAc,kWACd,IAAkB,8NAClB,IAAgB,mLAChB,IAAkB,qOAClB,IAAiB,oQACjB,IAAqB,skBACrB,IAAyB,gdACzB,IAAuB,oGACvB,IAAuB,8EACvB,IAAwB,8EACxB,IAAqB,8EACrB,IAAuB,2IACvB,IAAsB,8EACtB,IAAoB,sGACpB,IAA2B,gGAC3B,IAA0B,oHAC1B,IAAgB,6QAChB,IAAiB,iJACjB,IAAqB,sTACrB,IAA0B,uQAC1B,IAA6B,mjBAC7B,IAAqB,kFACrB,IAAmB,kKACnB,IAAuB,+DACvB,IAAqB,+FACrB,IAAqB,gFACrB,IAAsB,8FACtB,IAAgB,6JAChB,IAA4B,uJAC5B,IAA4B,sJAC5B,IAAmB,yFACnB,IAAmB,uOACnB,IAAmB,qJACnB,IAAmB,qGACnB,IAAmB,2LACnB,IAAmB,qKACnB,IAA0B,mGAC1B,IAAuB,0EACvB,IAA0B,mGAC1B,IAAuB,iPACvB,IAAiC,+EACjC,IAA+B,iDAC/B,IAAgC,mDAChC,IAA0B,sFAC1B,IAA0B,sFAC1B,IAAkB,0DAClB,IAAsB,u3BACtB,IAA2B,24BAC3B,IAA2B,u4BAC3B,IAA0B,8GAC1B,IAAyB,mHACzB,IAAyB,qLACzB,IAAgC,oHAChC,IAA4B,6GAC5B,IAAsB,sHACtB,IAAuB,8FACvB,IAAqB,8LACrB,IAAsB,iEACtB,IAAwB,6TACxB,IAA8B,0FAC9B,IAAgC,uHAChC,IAA4B,qJAC5B,IAAwB,uTACxB,IAAsB,qHACtB,IAAqB,0EACrB,IAAyB,kMACzB,IAAwB,0MACxB,IAA2B,kOAC3B,IAAoB,kFACpB,IAAoB,+FACpB,IAAqB,oLACrB,IAAqB,0LACrB,IAAiB,uIACjB,IAAqB,kGACrB,IAA4B,2FAC5B,IAAmB,mEACnB,IAA4B,8FAC5B,IAA6B,0FAC7B,IAAsB,yDACtB,IAA6B,4JAC7B,IAAqB,+DACrB,IAA4B,+JAC5B,IAAoB,oYACpB,IAAmB,wuBACnB,IAAgB,uDAChB,IAAyB,yDACzB,IAAgC,0aAChC,IAAqB,mkBACrB,IAAuB,sgBACvB,IAAgB,6RAChB,IAAiC,mMACjC,IAA+B,+LAC/B,IAA4B,6IAC5B,IAAoC,6JACpC,IAA4B,2IAC5B,IAA0B,4IAC1B,IAAgC,wIAChC,IAAuB,yEACvB,IAA8B,+SAC9B,IAA4B,6CAC5B,IAAgC,kFAChC,IAA4B,sKAC5B,IAAmB,sLACnB,IAAiB,gCACjB,IAAqB,sHACrB,IAAyB,oeACzB,IAA+B,mDAC/B,IAA+B,8EAC/B,IAA4B,+CAC5B,IAAsB,mEACtB,IAAsB,gJACtB,IAAqB,gJACrB,IAAyB,mDACzB,IAAW,+HACX,IAAgB,mOAChB,IAAuB,4PACvB,GAAkB,wJAClB,IAAe,2PACf,IAAsB,oRACtB,IAAiB,iWACjB,IAAwB,0XACxB,IAAa,iCACb,IAAmB,4FACnB,IAAc,4pBACd,IAAiB,wRACjB,IAAoB,+QACpB,IAAqB,2LACrB,IAAa,8mBACb,IAAiB,sTACjB,GAA8B,yoBAC9B,IAAY,4IACZ,IAAiB,gMACjB,IAAwB,8MACxB,IAAkB,4IAClB,IAAsB,qIACtB,IAA2B,qKAC3B,IAAkC,oLAClC,IAAyB,0OACzB,IAAgC,yQAChC,IAA6B,qJAC7B,IAAe,kRACf,IAAsB,qRACtB,IAAmB,0JACnB,IAAe,yIACf,IAAmB,wJACnB,IAAwB,uLACxB,IAA+B,+LAC/B,IAAsB,2RACtB,IAA6B,4TAC7B,IAA0B,+JAC1B,IAAmB,wkBACnB,IAAsB,gwBACtB,IAAiB,2qBACjB,IAAoB,s0BACpB,IAAiB,2oBACjB,IAAwB,wwCACxB,IAAe,sUACf,IAAoB,0uBACpB,IAAqB,omBACrB,IAAU,uYACV,IAAc,4RACd,GAAgB,yFAChB,GAAoB,wFACpB,IAAc,4VACd,IAAqB,ieACrB,IAAwB,yaACxB,IAAsB,icACtB,IAAU,8JACV,IAAe,sNACf,IAAe,mLACf,IAAa,wNACb,IAAa,+GACb,IAAmB,4QACnB,IAAuB,odACvB,IAAuB,ydACvB,IAA0B,0hBAC1B,IAAwB,odACxB,IAAqB,ydACrB,IAAiB,+IACjB,IAAiB,4IACjB,IAAoB,mMACpB,IAAkB,+IAClB,IAAkB,kKAClB,IAAsB,oLACtB,IAAsB,iLACtB,IAAyB,yMACzB,IAAuB,oLACvB,IAAoB,iLACpB,IAAmB,+SACnB,IAA0B,0TAC1B,IAAe,4IACf,IAAoB,qWACpB,IAA2B,wdAC3B,IAAW,kSACX,IAAiB,84BACjB,IAAY,uFACZ,IAAiB,0GACjB,IAAwB,2GACxB,IAAgB,mYAChB,IAAgB,sDAChB,IAAuB,sDACvB,IAAmB,wFACnB,IAAuB,6bACvB,IAAe,ggCACf,IAAiB,+HACjB,IAAgB,yaAChB,IAAqB,s3BACrB,IAA4B,woCAC5B,IAAmB,khBACnB,IAA0B,qjBAC1B,IAAuB,ubACvB,IAAU,iNACV,IAAe,2LACf,IAAa,0FACb,IAAmB,iQACnB,IAAoB,+QACpB,IAAgB,kDAChB,IAAc,wRACd,IAAa,iTACb,IAAa,6NACb,IAAc,6GACd,IAAY,oIACZ,IAAc,yVACd,IAAa,uKACb,IAAY,oVACZ,IAAW,grBACX,IAAgB,grBAChB,IAAe,krBACf,IAAc,+qBACd,IAAW,knBACX,IAAkB,oMAClB,IAAgB,mNAChB,IAAsB,4QACtB,IAA6B,0OAC7B,IAAqB,8SACrB,IAAuB,uZACvB,IAAqB,qbACrB,IAAuB,0RACvB,IAAyB,8OACzB,IAAY,yvBACZ,IAAa,kxBACb,IAAsB,slBACtB,IAAkB,gnBAClB,IAAmB,inBACnB,IAAkB,yqBAClB,IAAsB,+PACtB,IAA4B,+PAC5B,IAAsB,+PACtB,IAAuB,gQACvB,IAAoB,+PACpB,IAA0B,+PAC1B,IAAgB,wZAChB,IAAmB,wgBACnB,IAAsB,0jBACtB,IAAoB,wWACpB,IAAyB,4uBACzB,IAAmB,irBACnB,IAAW,mNACX,IAAc,4UACd,IAAqB,ynBACrB,IAAkB,qXAClB,IAAU,mZACV,IAAa,4pBACb,IAAoB,gnBACpB,IAAc,gtBACd,IAAqB,q0BACrB,IAAiB,6cACjB,IAAS,ghBACT,IAAY,8uBACZ,IAAY,wtBACZ,IAAmB,uEACnB,IAAsB,gMACtB,IAAgB,8XAChB,IAAkB,wRAClB,IAAc,yJACd,IAAiB,+PACjB,IAAqB,8XACrB,IAAwB,0hBACxB,IAAsB,oDACtB,IAAiB,iCACjB,IAAgB,gcAChB,IAAe,kVACf,IAAa,o4BACb,IAAgB,iKAChB,IAAuB,6NACvB,IAAgB,oZAChB,IAAW,iJACX,IAAW,mlBACX,IAAY,kbACZ,IAAiB,qpBACjB,IAAS,4mDACT,IAAU,0KACV,IAAU,oOACV,IAAc,0VACd,IAAa,mxBACb,IAAa,kcACb,IAAe,uXACf,IAAY,0SACZ,IAAe,+WACf,IAAqB,kYACrB,IAAqB,+TACrB,IAAqB,8gBACrB,IAAkB,kfAClB,IAAmB,qVACnB,IAA8B,8XAC9B,IAA2B,2hBAC3B,IAAwB,mdACxB,IAAqB,+rBACrB,IAAiB,mbACjB,IAAqB,4LACrB,IAAiB,iHACjB,IAAiB,glCACjB,IAAe,gZACf,IAAiB,uMACjB,IAAoB,6KACpB,IAAgB,uVAChB,IAAgB,mQAChB,IAAgB,m4BAChB,IAAsB,oiCACtB,IAAkB,0QAClB,IAAgB,wSAChB,IAAgB,mRAChB,IAAmB,ovCACnB,IAAuB,uOACvB,IAAsB,0sBACtB,IAAqB,4xBACrB,IAAwB,gRACxB,IAAsB,yRACtB,IAAW,0hBACX,IAAW,y/BACX,IAAkB,kjDAClB,IAAa,w7BACb,IAAW,ogBACX,IAAgB,mMAChB,IAAkB,sUAClB,IAAiB,+DACjB,IAAwB,mFACxB,IAAgB,0IAChB,IAAU,mOACV,IAAe,mJACf,IAAa,4WACb,IAAW,q2CACX,IAAkB,iuBAClB,IAAW,8IACX,IAAoB,+VACpB,IAAoB,qaACpB,IAAgB,wRAChB,IAAuB,0nBACvB,IAAmB,4hBACnB,IAAgB,wIAChB,IAAU,uWACV,IAAe,ohBACf,IAAsB,qnBACtB,IAAe,8eACf,IAAe,+MACf,IAAoB,wXACpB,IAAoB,gUACpB,IAAkB,+YAClB,IAAmB,wVACnB,IAAqB,8bACrB,IAAY,2LACZ,IAAuB,mWACvB,IAAkB,ooBAClB,IAAkB,ieAClB,IAAkB,2XAClB,IAAqB,8gBACrB,IAA4B,wxBAC5B,IAAyB,0qBACzB,IAAmB,2XACnB,IAAsB,6fACtB,IAA6B,o0BAC7B,IAA0B,2qBAC1B,IAAc,wlCACd,IAAiB,ypCACjB,IAAc,qTACd,IAAqB,4cACrB,IAAe,qsBACf,IAAkB,wMAClB,IAAyB,uRACzB,IAAmB,gYACnB,IAA0B,qoBAC1B,IAAoB,iZACpB,IAA2B,8oBAC3B,IAAe,0UACf,IAAsB,0oBACtB,IAAc,oxBACd,IAAe,+lBACf,IAAsB,wYACtB,IAAsB,gQACtB,IAAsB,6OACtB,IAAuB,0OACvB,IAAoB,+OACpB,IAAa,mMACb,IAAc,idACd,IAAqB,opBACrB,IAAe,mqBACf,IAAc,2qBACd,IAAqB,qlCACrB,IAAc,6YACd,IAAe,w+BACf,IAAe,05BACf,IAAe,4TACf,IAAsB,sxBACtB,IAAY,qPACZ,IAAa,+ZACb,IAAc,8cACd,IAAkB,0bAClB,IAAoB,khBACpB,IAAe,mlBACf,IAAkB,+FAClB,IAAc,gOACd,IAAS,gRACT,IAAY,uUACZ,IAAU,4IACV,IAAe,gLACf,IAAsB,8UACtB,IAAe,yNACf,IAAsB,sZACtB,IAAa,ogCACb,IAAoB,mtCACpB,IAAwB,gXACxB,IAA+B,2eAC/B,IAAe,yLACf,IAAsB,6VACtB,IAAe,4WACf,IAAsB,2jBACtB,IAAmB,8SACnB,IAA0B,gbAC1B,IAAe,6JACf,IAAsB,6TACtB,IAAiB,8SACjB,IAAc,mLACd,IAAqB,mVACrB,IAAkB,2rBAClB,IAAyB,04BACzB,IAAgB,8PAChB,IAAuB,6ZACvB,IAAmB,mrBACnB,IAA0B,s3BAC1B,IAAc,mdACd,IAAqB,uqBACrB,IAAgB,kIAChB,IAAyB,0UACzB,IAAmB,qPACnB,IAAmB,oUACnB,IAAwB,oLACxB,IAAa,8IACb,IAAiB,6MACjB,IAAgB,0UAChB,IAAW,yLACX,IAAc,gRACd,IAAqB,8RACrB,IAAiB,8PACjB,IAAwB,kZACxB,IAAiB,sRACjB,IAAwB,wVACxB,IAAc,+qCACd,IAAqB,k3CACrB,IAAgB,4OAChB,IAAe,4GACf,IAAmB,2QACnB,IAAsB,wLACtB,IAAgB,wRAChB,IAAuB,4bACvB,IAAmB,qRACnB,IAA0B,4bAC1B,IAAc,4RACd,IAAqB,uiBACrB,IAAkB,8WAClB,IAAe,gTACf,IAAsB,odACtB,IAAgB,qdAChB,IAAiB,sZACjB,IAAwB,0jBACxB,IAAiB,geACjB,IAAmB,0OACnB,IAA0B,6ZAC1B,IAAc,+mBACd,IAAqB,kuBACrB,IAAc,+OACd,IAAiB,4eACjB,IAAgB,sUAChB,IAAU,gPACV,IAAa,oNACb,IAAqB,ikBACrB,IAA4B,8kBAC5B,IAAoB,yPACpB,IAAgB,oUAChB,GAAuB,iTACvB,IAAiB,6sBACjB,IAAwB,ivBACxB,IAAiB,oeACjB,IAAwB,0fACxB,IAAiB,6NACjB,IAAa,oSACb,IAAqB,gqBACrB,IAA4B,k0BAC5B,IAAoB,wVACpB,IAAmB,oXACnB,IAAmB,0XACnB,IAAmB,4XACnB,IAAmB,6YACnB,IAAmB,+YACnB,IAAmB,4YACnB,IAAc,8HACd,IAAqB,0MACrB,IAAoB,sIACpB,IAAuB,6MACvB,IAAa,8HACb,IAAY,mlBACZ,GAAa,wOACb,IAAgB,uRAChB,IAAkB,6dAClB,IAAc,wRACd,GAAU,8CACV,IAAiB,oNACjB,IAAe,oEACf,IAAsB,gGACtB,IAAmB,qEACnB,IAAmB,s4BACnB,IAAoB,4dACpB,IAAiB,gNACjB,IAAwB,wNACxB,IAAgB,yRAChB,IAAuB,yKACvB,IAAc,0IACd,IAAqB,4LACrB,IAAe,iPACf,IAAsB,oUACtB,IAAc,uQACd,IAAqB,maACrB,IAAuB,oGACvB,IAAe,4vBACf,IAAgB,oIAChB,IAAgB,uDAChB,IAAgB,sHAChB,IAAgB,gKAChB,IAAgB,iHAChB,IAAgB,oKAChB,IAAgB,4HAChB,IAAgB,qDAChB,IAAwB,yEACxB,IAAe,iIACf,IAAoB,oMACpB,IAAmB,4NACnB,IAAqB,4SACrB,IAAe,qOACf,IAAuB,iGACvB,IAAmB,yFACnB,IAA0B,iQAC1B,IAAuB,mEACvB,IAA8B,uGAC9B,IAAc,6IACd,IAAkB,2HAClB,IAAmB,uOACnB,IAAe,qGACf,IAAsB,yGACtB,IAAgB,iHAChB,IAAa,8IACb,IAAoB,iPACpB,IAAiB,sFACjB,IAAiB,smBACjB,IAAwB,uoBACxB,IAAc,6HACd,IAAqB,iIACrB,IAAgB,mOAChB,IAAuB,uOACvB,IAAc,8DACd,IAAgB,uVAChB,IAAuB,oWACvB,IAAc,kOACd,IAAqB,oRACrB,IAAiB,wgBACjB,IAAwB,yiBACxB,IAAkB,khBAClB,IAAyB,mjBACzB,IAAgB,mIAChB,IAAuB,6KACvB,IAAqB,sTACrB,IAA4B,+TAC5B,IAAiB,qCACjB,IAAwB,+DACxB,IAAU,yPACV,IAAa,sYACb,IAAe,8NACf,IAAU,qoBACV,IAA+B,6RAC/B,IAAsC,mSACtC,IAAW,+rBACX,IAAgB,05BAChB,IAAkB,+IAClB,IAAsB,wVACtB,IAAe,klBACf,IAAc,wCACd,IAAiB,6HACjB,IAAwB,oJACxB,IAAsB,4LACtB,IAAoB,wHACpB,IAAY,gtBACZ,IAAa,sfACb,IAAa,8kBACb,IAAS,4oBACT,IAAgB,ujCAChB,IAAa,wpBACb,IAAU,mKACV,IAAW,kHACX,IAA4B,kZAC5B,IAAe,mxBACf,IAA2B,q7BAC3B,IAA2B,+gCAC3B,IAAgB,2GAChB,IAAgB,m7BAChB,IAAe,mVACf,IAAiB,wKACjB,IAAoB,uQACpB,IAAsB,wqBACtB,IAAuB,+SACvB,IAA4B,gdAC5B,IAAqB,2QACrB,IAAmB,yLACnB,IAA4B,6cAC5B,IAA0B,sLAC1B,IAAoB,yNACpB,IAAkB,sMAClB,IAAe,4IACf,IAAoB,kMACpB,IAAwB,uPACxB,IAAkB,0PAClB,IAAoB,mVACpB,IAAqB,6SACrB,IAA0B,qdAC1B,IAAmB,8PACnB,IAAqB,2OACrB,IAA4B,6MAC5B,IAAmB,mRACnB,IAAwB,gdACxB,IAAoB,iKACpB,IAAmB,0KACnB,IAAgB,maAChB,IAAkB,6yBAClB,IAAiB,qfACjB,IAAqB,8UACrB,IAAoB,okBACpB,IAAkB,ucAClB,IAAU,2XACV,IAAa,0kBACb,IAAuB,8MACvB,IAA6B,2VAC7B,IAAgB,mjCAChB,IAAqB,8cACrB,IAAc,+SACd,IAAiB,kWACjB,IAAY,sMACZ,IAAY,uLACZ,IAAgB,+GAChB,IAAiB,0GACjB,IAAwB,gWACxB,IAAW,sHACX,IAAgB,oJAChB,IAAe,8HACf,IAAoB,uIACpB,IAAqB,yPACrB,IAAiB,wQACjB,IAAwB,8KACxB,IAAgB,oXAChB,IAAuB,+XACvB,IAAe,0TACf,IAAsB,uXACtB,IAA2B,2GAC3B,IAA4B,8MAC5B,IAAkC,yOAClC,IAAyC,yTACzC,IAAgC,iRAChC,IAAsB,kRACtB,IAA6B,yfAC7B,IAAuB,0IACvB,IAAoB,sEACpB,IAA2B,iHAC3B,IAAqB,8HACrB,IAA0B,guBAC1B,IAAwB,6xBACxB,IAAgB,wVAChB,IAAe,wbACf,IAAsB,uiBACtB,IAAiB,iZACjB,IAAwB,gdACxB,IAAgB,uOAChB,IAAuB,+PACvB,IAAe,0MACf,IAAmB,+IACnB,IAA0B,wLAC1B,IAAc,+JACd,IAAqB,qLACrB,IAAkB,uJAClB,IAAe,+PACf,IAAsB,yRACtB,IAAkB,ueAClB,IAAyB,ufACzB,IAAiB,6UACjB,IAAwB,+XACxB,IAAiB,gbACjB,IAAwB,2uBACxB,IAA2B,qHAC3B,IAA0B,mSAC1B,IAA0B,wRAC1B,IAAe,4hBACf,IAAsB,gmBACtB,IAAe,+LACf,IAAY,iIACZ,IAAW,iIACX,IAAoB,0JACpB,IAA2B,wNAC3B,IAAkB,uKAClB,IAAyB,wNACzB,IAAe,iMACf,IAAsB,4QACtB,IAAmB,+MACnB,IAA0B,obAC1B,IAAkB,gMAClB,IAAiB,iQACjB,IAAwB,2VACxB,IAAe,4qBACf,IAAqB,u3BACrB,IAAwB,y6BACxB,IAAkB,47BAClB,IAAe,8qBACf,IAAc,gkBACd,GAAiB,2GACjB,IAAoB,2MACpB,IAA2B,2NAC3B,IAAoB,sPACpB,IAA2B,qYAC3B,GAAwB,0MACxB,IAAwB,6NACxB,IAA+B,6OAC/B,IAA2B,2IAC3B,IAAkC,uOAClC,IAA2B,uDAC3B,GAAuB,qCACvB,IAAwB,mfACxB,IAA2B,u6BAC3B,IAAkC,u+BAClC,IAA8B,q4BAC9B,IAAqC,i+BACrC,IAAe,odACf,IAAwB,wKACxB,IAA2B,0SAC3B,IAAkB,qRAClB,IAAqB,kZACrB,IAAa,mDACb,IAAsB,+JACtB,IAA6B,0MAC7B,IAAuB,+JACvB,IAA8B,0MAC9B,IAAkB,iMAClB,IAAyB,4OACzB,IAAkB,iRAClB,IAAyB,iZACzB,IAAiB,0TACjB,IAAwB,kVACxB,IAA0B,kNAC1B,IAAiB,8MACjB,IAAwB,wQACxB,IAAmB,qHACnB,IAA0B,+LAC1B,IAAiB,kHACjB,IAAwB,qLACxB,IAAkB,4IAClB,IAAyB,2LACzB,IAAqB,sFACrB,IAA4B,8IAC5B,IAAoB,qHACpB,IAAiB,oKACjB,IAAwB,mNACxB,IAAmB,mPACnB,IAA0B,8RAC1B,IAAiB,kFACjB,IAAwB,uHACxB,IAAiB,gFACjB,IAA0B,0LAC1B,IAAiC,2OACjC,IAA2B,0LAC3B,IAAkC,2OAClC,IAAsB,8NACtB,IAA6B,2QAC7B,IAAsB,mVACtB,IAA6B,ybAC7B,IAAqB,yVACrB,IAA4B,6XAC5B,IAAqB,+OACrB,IAA4B,ySAC5B,IAAsB,0KACtB,IAA6B,0NAC7B,IAAyB,0HACzB,IAAgC,kLAChC,IAAwB,gJACxB,IAAqB,kMACrB,IAA4B,kPAC5B,IAAuB,gRACvB,IAA8B,6TAC9B,IAAqB,wGACrB,IAA4B,sJAC5B,IAAc,weACd,IAAQ,yKACR,IAAe,kQACf,IAAsB,qRACtB,IAAe,2MACf,IAAU,uOACV,IAAU,+OACV,IAAe,4WACf,IAAiB,mRACjB,IAAY,ynCACZ,IAAmB,yZACnB,IAAW,6PACX,IAAY,+pCACZ,IAAa,wbACb,IAAe,+8BACf,IAAsB,09BACtB,IAAU,8WACV,IAAY,weACZ,IAAc,6nDACd,IAAc,glBACd,IAAa,ysBACb,IAAc,ggCACd,IAAY,+MACZ,IAAc,y1BACd,IAAS,mKACT,IAAY,ufACZ,IAAiB,gbACjB,IAAwB,gbACxB,IAAe,igBACf,IAAsB,8kBACtB,IAAmB,wYACnB,IAAoB,gTACpB,IAAiB,syBACjB,IAAwB,swBACxB,IAAgB,yYAChB,IAAS,wKACT,IAAc,+MACd,IAAqB,+YACrB,IAAmB,kMACnB,IAAc,o4BACd,IAAqB,+6BACrB,IAAe,+VACf,IAAa,kYACb,IAAc,mLACd,IAAgB,wVAChB,IAAa,2MACb,IAAe,uQACf,IAAa,gQACb,IAAgB,0MAChB,IAAiB,8VACjB,IAAc,6OACd,GAAuB,kEACvB,IAAkB,2EAClB,IAAmB,iPACnB,IAA0B,2RAC1B,IAAiB,2RACjB,IAAgB,sDAChB,IAAiB,0KACjB,IAAiB,yEACjB,IAAiB,6JACjB,IAAgB,0IAChB,IAAgB,8KAChB,IAAgB,kEAChB,IAAgB,uHAChB,IAAgB,uKAChB,IAAgB,+DAChB,IAAgB,4RAChB,IAAgB,qKAChB,IAAiB,kWACjB,IAAwB,0XACxB,IAAqB,4QACrB,IAAoB,oEACpB,IAAsB,uRACtB,IAA6B,+TAC7B,IAAmB,wEACnB,IAAiB,yFACjB,IAAwB,8EACxB,IAAqB,gSACrB,IAAY,81BACZ,IAAiB,mSACjB,IAAU,kjBACV,IAAiB,slBACjB,IAAiB,uwBACjB,IAAa,06CACb,IAAW,oFACX,IAAmB,oKACnB,IAAU,kHACV,IAAW,yyBACX,IAAU,m4CACV,IAAgB,y/IAChB,IAAW,8HACX,IAAmB,+MACnB,IAA0B,qOAC1B,IAAc,+LACd,IAAqB,iPACrB,IAAkB,oJAClB,IAAkB,uYAClB,IAAyB,0bACzB,IAAkB,+GAClB,IAAyB,2IACzB,IAAY,4FACZ,IAAa,iaACb,IAAY,yIACZ,IAAU,oDACV,IAAiB,wFACjB,IAAW,+FACX,IAAkB,qKAClB,IAAS,6YACT,IAAc,8TACd,IAAgB,gSAChB,IAAmB,yYACnB,IAAgB,kVAChB,IAAgB,seAChB,IAAe,4JACf,IAAqB,6OACrB,IAA4B,mOAC5B,IAAqB,sjBACrB,IAAwB,wKACxB,IAAsB,2KACtB,IAAe,6NACf,IAAsB,8VACtB,IAAe,2eACf,IAAiB,qiBACjB,IAAoB,osBACpB,IAAkB,iKAClB,IAAqB,qMACrB,IAAgB,szCAChB,IAAqB,6MACrB,IAAmB,gMACnB,IAAkB,mxCAClB,IAAwB,4pBACxB,IAAoB,yBACpB,IAAiB,0RACjB,IAAsB,+RACtB,IAA6B,ocAC7B,IAAiB,ioCACjB,IAAoB,+wBACpB,IAAe,ssBACf,IAAkB,0XAClB,IAAyB,s4BACzB,IAAkB,mkHAClB,IAAmB,6fACnB,IAAwB,8hBACxB,IAAkB,itCAClB,IAAY,gHACZ,IAAmB,2PACnB,IAAe,iNACf,IAAa,w2DACb,IAAkB,0WAClB,IAAW,wgDACX,IAAc,+NACd,IAAc,qQACd,IAAY,wIACZ,IAAc,kWACd,IAAY,iHACZ,IAAgB,mTAChB,IAAiB,wIACjB,IAAe,2PACf,IAAsB,6TACtB,IAAmB,wIACnB,IAAgB,gKAChB,IAAkB,sQAClB,IAAkB,+bAClB,IAAyB,mdACzB,IAAkB,4KAClB,IAAyB,iMACzB,IAAgB,oSAChB,IAAU,iLACV,IAAgB,gTAChB,IAAuB,4XACvB,IAAe,6LACf,IAAkB,0PAClB,IAAa,+aACb,IAAU,sOACV,IAAa,umBACb,IAAa,uNACb,IAAY,kFACZ,IAAW,oOACX,IAAgB,+HAChB,IAAc,2aACd,IAAqB,kkBACrB,IAAwB,inBACxB,IAAmB,oLACnB,IAAkB,gFAClB,IAAuB,2HACvB,IAAU,2MACV,IAAc,qEACd,IAAqB,qFACrB,IAAa,sLACb,IAAoB,8qBACpB,IAAoB,kJACpB,IAAa,0iBACb,IAAc,qiBACd,IAAoB,0WACpB,IAAkB,6WAClB,IAAmB,6YACnB,IAAiB,8OACjB,IAAoB,+PACpB,IAAe,sLACf,IAAoB,0OACpB,IAA2B,2UAC3B,IAAmB,mTACnB,IAA0B,8ZAC1B,IAAkB,wUAClB,IAAqB,2XACrB,IAAwB,ygBACxB,IAA2B,+gBAC3B,IAA8B,qOAC9B,IAAqC,oTACrC,IAAoB,iaACpB,IAAuB,6uBACvB,IAA8B,+6BAC9B,IAA2B,geAC3B,IAAuB,mcACvB,IAA0B,qmBAC1B,IAAiC,o1BACjC,IAA8B,olBAC9B,IAAoB,ujBACpB,IAA2B,kpBAC3B,IAAkB,4PAClB,IAAyB,sYACzB,IAAiB,6UACjB,IAAmB,4aACnB,IAAmB,0YACnB,IAAmB,qaACnB,IAAmB,yaACnB,IAAmB,waACnB,IAAmB,+WACnB,IAAmB,4XACnB,IAAmB,2XACnB,IAAmB,2XACnB,IAAwB,obACxB,IAAsB,0RACtB,IAAuB,mcACvB,IAA8B,kiBAC9B,IAAmB,iHACnB,IAAsB,wMACtB,IAAsB,yYACtB,IAA6B,gfAC7B,IAAgB,sLAChB,IAAkB,2LAClB,IAAmB,+BACnB,IAAyB,4OACzB,IAA0B,wEAC1B,IAAc,qSACd,IAAc,gdACd,IAAU,gPACV,IAAa,8TACb,IAAoB,8UACpB,IAAoB,slCACpB,IAA2B,qmCAC3B,IAAgB,0kBAChB,IAAuB,+yBACvB,IAAc,yeACd,IAAc,oUACd,IAAa,8VACb,IAAc,2LACd,IAAiB,+sBACjB,IAAsB,gfACtB,IAAoB,wvBACpB,IAAqB,wgBACrB,IAAuB,ilBACvB,IAAc,uZACd,IAAW,g0BACX,IAAe,o5BACf,IAAc,oPACd,IAAgB,6jCAChB,IAAY,6bACZ,IAAa,4LACb,IAAoB,2MACpB,IAAgB,oMAChB,IAAc,gRACd,IAAa,6CACb,IAAmB,oGACnB,IAAkB,8EAClB,IAAU,8OACV,IAAe,wSACf,IAAsB,uTACtB,IAAe,uZACf,IAAsB,6bACtB,IAAe,kWACf,IAAe,gWACf,IAAsB,qYACtB,IAAa,6YACb,IAAoB,gbACpB,IAAc,gOACd,IAAmB,0QACnB,IAA0B,yRAC1B,IAAmB,4XACnB,IAA0B,sZAC1B,IAAmB,qUACnB,IAA0B,8VAC1B,IAAqB,iPACrB,IAAkB,6VAClB,IAAyB,sXACzB,IAAoB,gcACpB,IAA2B,4dAC3B,IAAqB,qSACrB,IAA4B,2RAC5B,GAAiB,6QACjB,IAAiB,wdACjB,IAAiB,sXACjB,IAAqB,8WACrB,IAA4B,+XAC5B,IAA4B,yXAC5B,IAAmC,0YACnC,IAAwB,yYACxB,IAAc,wXACd,IAAqB,0ZACrB,IAAkB,+uBAClB,IAAgB,2dAChB,IAAuB,mgBACvB,GAAe,wkBACf,IAAe,8RACf,IAAY,iJACZ,IAAoB,6MACpB,GAAW,kIACX,IAAkB,yLAClB,GAAY,2HACZ,GAAmB,4MACnB,IAAe,kUACf,IAAW,mLACX,IAAY,4UACZ,IAAmB,qaACnB,IAAgB,mXAChB,IAAuB,4cACvB,IAAW,sNACX,IAAU,6TACV,IAAW,ykBACX,IAAU,mpBACV,IAAoB,+IACpB,IAAmB,sFACnB,IAAgB,4WAChB,IAAY,0GACZ,IAAc,0IACd,GAAa,oQACb,IAAkB,qRAClB,IAAmB,mUACnB,IAAkB,oKAClB,IAAwB,8MACxB,IAAyB,qRACzB,IAAiB,wLACjB,IAAuB,qOACvB,IAAwB,2SACxB,IAAyB,gVACzB,IAA0B,uXAC1B,IAAiB,wjBACjB,IAAU,gIACV,IAAa,gJACb,IAAiB,oIACjB,IAAwB,+LACxB,IAAmB,kIACnB,IAA0B,4PAC1B,IAAoB,wMACpB,IAAe,2IACf,IAAsB,sMACtB,IAAa,wEACb,IAAS,wOACT,IAAc,4VACd,IAAqB,uYACrB,IAAc,oZACd,IAAqB,2fACrB,IAAe,gcACf,IAAe,0KACf,IAAsB,sQACtB,IAA6B,0UAC7B,IAAoB,8GACpB,IAA2B,sLAC3B,IAAoB,qJACpB,IAA2B,4NAC3B,IAAqB,wVACrB,IAAuB,+xBACvB,IAAmB,uGACnB,IAAmB,oLACnB,IAA0B,wQAC1B,IAAoB,0LACpB,IAA2B,+OAC3B,IAAuB,sRACvB,IAA8B,qcAC9B,IAAkB,yUAClB,IAAyB,+ZACzB,IAAsB,+OACtB,IAAmB,kvBACnB,IAAmB,kNACnB,IAA0B,uQAC1B,IAAuB,0SACvB,IAA8B,qaAC9B,IAAqB,8YACrB,IAA4B,qaAC5B,IAAqB,wSACrB,IAA4B,6UAC5B,IAA4B,gNAC5B,IAAoB,qLACpB,IAA2B,iQAC3B,IAAmB,mKACnB,IAA0B,8OAC1B,IAAiB,qGACjB,IAAc,+TACd,IAAgB,+RAChB,IAAa,yUACb,IAAe,4fACf,IAAsB,ojBACtB,IAAY,wUACZ,IAAY,mVACZ,IAAY,gSACZ,IAAkB,irBAClB,IAAiB,qLACjB,IAAc,0yBACd,IAAoB,qmBACpB,IAAgB,6OAChB,IAAiB,oUACjB,IAAa,iSACb,IAAkB,8SAClB,IAAqB,0aACrB,IAAa,mOACb,IAAc,oCACd,IAAiB,gIACjB,IAAa,4KACb,IAAa,yIACb,IAAY,+eACZ,IAAW,0RACX,IAAkB,8PAClB,IAAgB,uLAChB,IAAuB,0LACvB,IAAgB,gKAChB,IAAuB,iLACvB,IAAgB,6gBAChB,IAAY,qNACZ,IAAqB,kUACrB,IAAa,oXACb,IAAiB,mjDACjB,GAAU,iDACV,IAAe,uGACf,IAAc,uBACd,IAAqB,kEACrB,IAAc,sBACd,IAAqB,mEACrB,IAAc,8GACd,IAAe,wBACf,IAAsB,iEACtB,IAAc,yCACd,IAAqB,6HACrB,IAAY,uBACZ,IAAmB,mEACnB,IAAW,4IACX,IAAa,0EACb,IAAkB,8GAClB,IAAyB,gIACzB,IAAsB,4IACtB,IAA6B,qKAC7B,IAAuB,4IACvB,IAA8B,mKAC9B,IAAkB,uLAClB,IAAyB,gMACzB,IAAqB,+GACrB,IAA4B,uIAC5B,IAAqB,gKACrB,IAAwB,qMACxB,IAAkB,iJAClB,IAAyB,uKACzB,IAAgB,s6BAChB,IAAuB,0wBACvB,IAAiB,0MACjB,IAAiB,iNACjB,IAAwB,2OACxB,IAAkB,wGAClB,IAAyB,6HACzB,IAAkB,4GAClB,IAAyB,2IACzB,IAAiB,sQACjB,IAAwB,0QACxB,IAAkB,mGAClB,IAAyB,wHACzB,IAAgB,0KAChB,IAAuB,4PACvB,IAAoB,0GACpB,IAAiB,6GACjB,IAAwB,+IACxB,IAAuB,iHACvB,IAA8B,gJAC9B,IAAqB,ygBACrB,IAA4B,oiBAC5B,IAAkB,0EAClB,IAAyB,2GACzB,IAAsB,oHACtB,IAA6B,0IAC7B,IAAqB,wHACrB,IAA4B,4JAC5B,IAAiB,wKACjB,IAAwB,6LACxB,IAAiB,0GACjB,IAAsB,iaACtB,IAA6B,qcAC7B,IAAqB,kPACrB,IAA4B,qRAC5B,IAAqB,iTACrB,IAA4B,0TAC5B,GAAwB,8HACxB,IAAkB,2GAClB,IAAY,urBACZ,IAAmB,uQACnB,IAA0B,mUAC1B,IAAc,qQACd,IAAqB,0VACrB,IAAe,4YACf,IAAmB,iOACnB,IAAa,iIACb,IAAgB,wLAChB,IAAuB,uSACvB,IAA0B,+UAC1B,IAAqB,gMACrB,IAAmB,iXACnB,IAAuB,uVACvB,IAAoB,qNACpB,IAAwB,2dACxB,IAA+B,+kBAC/B,IAAwB,4PACxB,IAAuB,sUACvB,IAA0B,ueAC1B,IAAgB,qUAChB,IAAe,qEACf,IAAqB,4tEACrB,IAAoB,+GACpB,IAA0B,uIAC1B,IAAmB,sFACnB,IAA0B,oEAC1B,IAAmB,4lBACnB,IAAoB,4lBACpB,IAA+B,6oBAC/B,IAAqB,izBACrB,IAAuB,2xCACvB,IAAsB,2gBACtB,IAAsB,uzCACtB,IAAyB,wyCACzB,GAAyB,i5EACzB,IAAoB,+hEACpB,IAA2B,wIAC3B,IAA+B,6XAC/B,IAAsB,6HACtB,IAA6B,g2EAC7B,IAAmB,6cACnB,IAAmB,43BACnB,IAA6B,uQAC7B,IAAyC,iWACzC,IAA4C,sWAC5C,IAAyC,+TACzC,IAAwC,8SACxC,IAAuC,+TACvC,IAA0C,+TAC1C,IAA2C,g2BAC3C,IAAiC,4HACjC,IAAgC,wSAChC,IAAiC,oIACjC,IAAe,mPACf,IAAkB,kYAClB,IAAgB,0IAChB,IAAuB,sOACvB,IAAU,mQACV,IAAc,mxBACd,IAAU,+cACV,IAAe,0IACf,IAAY,oIACZ,IAAc,kSACd,IAAW,qBACX,IAAc,sGACd,IAAsB,uJACtB,IAA6B,uKAC7B,IAAqB,mHACrB,IAAiB,6FACjB,IAAyB,6LACzB,IAAgC,mQAChC,IAAoB,oPACpB,IAA2B,+YAC3B,GAAwB,uLACxB,IAAkB,qMAClB,IAAyB,+MACzB,IAAgB,iBAChB,IAAY,4TACZ,IAAqB,4IACrB,IAAmB,+MACnB,IAAsB,2eACtB,IAAkB,oSAClB,IAAc,yrBACd,IAAgB,qLAChB,IAAiB,4QACjB,IAAa,4HACb,IAAoB,oTACpB,IAAsB,iKACtB,IAA6B,8KAC7B,IAAsB,iNACtB,IAA0B,0SAC1B,IAAsB,6MACtB,IAAiB,+SACjB,IAAgB,y2BAChB,IAAiB,6UACjB,IAAqB,oKACrB,IAAgB,yLAChB,IAAuB,+JACvB,IAAkB,oKAClB,IAAoB,wSACpB,IAAkB,4IAClB,IAAoB,2eACpB,IAAuB,ghBACvB,IAAiB,yNACjB,IAAqB,4IACrB,IAAsB,6BACtB,IAAc,2CACd,IAAqB,2BACrB,IAAa,kFACb,IAAwB,mEACxB,IAAuB,6EACvB,IAAwB,qEACxB,IAAuB,uEACvB,IAAW,6WACX,IAAmB,mXACnB,IAA0B,kZAC1B,IAAkB,6XAClB,IAAU,sZACV,IAAkB,yEAClB,IAAsB,kHACtB,IAAY,uZACZ,IAAmB,oiBACnB,IAAiB,+gBACjB,IAAiB,spBACjB,IAAY,8XACZ,IAAmB,gdACnB,IAAiB,ghBACjB,IAAwB,kbACxB,IAAgB,qgBAChB,IAAuB,ibACvB,IAAkB,ubAClB,IAAqB,mhBACrB,IAAe,idACf,IAAuB,mcACvB,IAAkB,0cAClB,IAAW,sHACX,IAAoB,sTACpB,IAAoB,+SACpB,IAA2B,obAC3B,IAAmB,uJACnB,IAAiB,wJACjB,IAAuB,sKACvB,IAAc,8RACd,IAAkB,khBAClB,IAAqB,yTACrB,IAA4B,0aAC5B,IAAsB,2ZACtB,IAAkB,2QAClB,IAAqB,0ZACrB,IAAgB,kQAChB,IAAuB,qKACvB,IAAW,6GACX,IAAgB,kQAChB,IAAuB,qSACvB,IAAc,45BACd,IAAqB,67BACrB,IAAe,yUACf,IAAsB,yVACtB,IAAiB,+RACjB,IAAwB,ySACxB,IAAgB,0MAChB,IAAuB,6OACvB,IAAc,mNACd,IAAqB,+PACrB,IAAe,uRACf,IAAoB,maACpB,IAA2B,qaAC3B,IAAkB,+jCAClB,IAAyB,6jCACzB,IAAmB,qcACnB,IAA0B,6cAC1B,IAAoB,2WACpB,IAA2B,iXAC3B,IAAkB,oRAClB,IAAyB,gUACzB,IAAsB,iTACtB,IAAmB,6WACnB,IAA0B,iXAC1B,IAAmB,mYACnB,IAA0B,qYAC1B,IAAqB,yeACrB,IAA4B,2eAC5B,IAAuB,8UACvB,IAA8B,gWAC9B,IAAmB,ycACnB,IAA0B,2cAC1B,IAAkB,kIAClB,IAAe,4MACf,IAAsB,+OACtB,IAAe,kOACf,IAAsB,qQACtB,IAAiB,wUACjB,IAAwB,2WACxB,IAAe,2zBACf,IAAiB,uaACjB,IAAwB,uYACxB,IAAmB,gLACnB,IAA0B,2MAC1B,IAAe,wSACf,IAAsB,2UACtB,IAAW,mdACX,IAAc,8hBACd,IAAgB,6hBAChB,IAAa,4dACb,IAAY,2KACZ,IAAe,sOACf,IAAgB,mkBAChB,IAAoB,oJACpB,IAAuB,6OACvB,IAAc,qXACd,IAAiB,ggBACjB,IAAwB,+lBACxB,IAAqB,qeACrB,IAAW,+NACX,IAA+B,0ZAC/B,IAAgC,yIAChC,IAAyB,gNACzB,IAA4B,0FAC5B,IAA0B,kMAC1B,IAAc,+LACd,IAAsB,gOACtB,IAA6B,iPAC7B,IAAqB,+MACrB,IAAiB,iMACjB,IAAwB,oQACxB,IAAmB,wMACnB,IAAmB,gQACnB,IAAqB,+oBACrB,IAAe,sGACf,IAAwB,4UACxB,IAA2B,yZAC3B,IAAqB,sGACrB,IAA2B,0FAC3B,IAAmB,gGACnB,IAAyB,oJACzB,IAAoB,kHACpB,IAAkB,wKAClB,IAAyB,gNACzB,IAAsB,4EACtB,IAAmB,wIACnB,IAAsB,iGACtB,IAA4B,+GAC5B,IAAwB,iHACxB,IAA8B,qGAC9B,IAAoB,gFACpB,IAA0B,mIAC1B,IAAc,uSACd,IAAqB,sGACrB,IAAmB,+BACnB,IAAsB,mWACtB,IAAwB,iMACxB,IAAoB,+BACpB,IAAc,8IACd,IAAU,iDACV,IAAS,sRACT,IAAkB,sUAClB,IAAY,yJACZ,IAAmB,uYACnB,IAAkB,iSAClB,IAAyB,ssBACzB,IAAgB,0DAChB,IAAuB,mHACvB,IAAuB,oDACvB,IAA8B,qIAC9B,IAAY,oDACZ,IAAc,qNACd,IAAY,oTACZ,IAAe,gVACf,IAAa,gIACb,IAAa,qLACb,IAAgB,gTAChB,IAAuB,kWACvB,IAAoB,gMACpB,IAAgB,iWAChB,IAAsB,iCACtB,IAA2B,qEAC3B,IAAsB,iCACtB,IAA2B,qEAC3B,IAAsB,gCACtB,IAA2B,oEAC3B,IAAsB,aACtB,IAA2B,gDAC3B,IAAyB,u0BACzB,IAAwB,oFACxB,IAA+B,oIAC/B,IAA4B,0BAC5B,IAAY,gUACZ,IAAe,gNACf,IAAoB,kXACpB,IAAoB,iTACpB,IAAmB,yUACnB,IAAqB,ybACrB,IAAsB,uKACtB,IAA8B,4NAC9B,IAAqC,2OACrC,IAA6B,+LAC7B,IAAS,mwBACT,IAAsB,inBACtB,IAAY,gQACZ,IAAgB,kQAChB,IAAmB,6WACnB,IAAW,4hBACX,IAAqB,kWACrB,IAAoB,uhBACpB,IAAiB,6lBACjB,IAAkB,2PAClB,IAAS,sbACT,IAAY,q5CACZ,IAAa,iOACb,IAAc,iEACd,IAAqB,sIACrB,IAAU,0FACV,IAAe,4IACf,IAAsB,kKACtB,IAAe,gPACf,IAAsB,uOACtB,IAAc,wTACd,IAAqB,oVACrB,IAAe,yLACf,IAAsB,gLACtB,IAAkB,8HAClB,IAAyB,kJACzB,IAAa,6MACb,IAAoB,gTACpB,IAAiB,sHACjB,IAAc,iNACd,IAAqB,wMACrB,IAAgB,oTAChB,IAAuB,2SACvB,IAAgB,iZAChB,IAAuB,ueACvB,IAAc,kIACd,IAAqB,mHACrB,IAAc,gMACd,IAAmB,oUACnB,IAA0B,+TAC1B,IAAkB,wYAClB,IAAyB,iZACzB,IAAmB,waACnB,IAA0B,8ZAC1B,IAAmB,yPACnB,IAA0B,oPAC1B,IAAsB,ySACtB,IAAqB,6MACrB,IAAkB,iRAClB,IAAyB,4QACzB,IAAoB,iWACpB,IAA2B,4VAC3B,IAA0B,wCAC1B,IAAS,wIACT,IAAU,8XACV,IAAU,mZACV,IAAa,sPACb,IAAc,iGACd,IAAiB,4KACjB,IAAyB,+MACzB,IAAgC,+NAChC,IAAwB,4LACxB,IAAoB,4KACpB,IAA2B,+OAC3B,IAAc,yBACd,IAAiB,kGACjB,IAAyB,uIACzB,IAAgC,iJAChC,IAAwB,8GACxB,IAAoB,oGACpB,IAA2B,uKAC3B,IAAe,8IACf,IAAkB,4NAClB,IAA0B,uRAC1B,IAAiC,qSACjC,IAAyB,oOACzB,IAAqB,6MACrB,IAA4B,8QAC5B,IAAc,6FACd,IAAiB,6KACjB,IAAyB,2MACzB,IAAgC,qNAChC,IAAwB,mLACxB,IAAoB,wKACpB,IAA2B,2OAC3B,IAAc,8HACd,IAAiB,8NACjB,IAAyB,4OACzB,IAAgC,uPAChC,IAAwB,uNACxB,IAAoB,0MACpB,IAA2B,wQAC3B,IAAc,mCACd,IAAiB,6GACjB,IAAyB,kJACzB,IAAgC,4JAChC,IAAwB,yHACxB,IAAoB,8GACpB,IAA2B,iLAC3B,IAAc,wEACd,IAAiB,yJACjB,IAAyB,6LACzB,IAAgC,wMAChC,IAAwB,yKACxB,IAAoB,mJACpB,IAA2B,sNAC3B,IAAc,+GACd,IAAiB,kMACjB,IAAyB,yOACzB,IAAgC,mPAChC,IAAwB,iNACxB,IAAoB,0LACpB,IAA2B,6PAC3B,IAAc,4BACd,IAAiB,2GACjB,IAAyB,+IACzB,IAAgC,yJAChC,IAAwB,qHACxB,IAAoB,2GACpB,IAA2B,8KAC3B,IAAc,yNACd,IAAiB,0SACjB,IAAyB,6UACzB,IAAgC,qVAChC,IAAwB,kTACxB,IAAoB,0SACpB,IAA2B,mWAC3B,IAAc,8GACd,IAAiB,kMACjB,IAAyB,qOACzB,IAAgC,gPAChC,IAAwB,4MACxB,IAAoB,yLACpB,IAA2B,4PAC3B,IAAkB,uKAClB,IAAqB,sOACrB,IAA6B,wQAC7B,IAAoC,6QACpC,IAA4B,gPAC5B,IAAwB,sOACxB,IAA+B,ySAC/B,IAAsB,0CACtB,IAAgB,0TAChB,IAAsB,6DACtB,IAAS,uWACT,IAAe,6LACf,IAAU,wcACV,IAAS,kLACT,IAAa,wrBACb,IAAS,uJACT,IAAS,qRACT,IAAa,yDACb,IAAoB,6HACpB,IAAc,4KACd,IAAkB,mXAClB,IAAyB,kdACzB,IAAmB,4PACnB,IAA0B,sZAC1B,IAAqB,iUACrB,IAAkB,oRAClB,IAAyB,8aACzB,IAAgB,4aAChB,IAAmB,qkBACnB,IAAmB,0wBACnB,IAAW,gNACX,GAAoB,2MACpB,IAAuB,0mCACvB,IAA8B,6sCAC9B,IAA0B,8fAC1B,IAAiC,+bACjC,IAAyB,mRACzB,IAAgC,qUAChC,GAA2B,8NAC3B,IAAwB,2SACxB,IAA+B,6VAC/B,IAA0B,2XAC1B,IAAiC,6aACjC,IAAS,giBACT,IAAa,qQACb,IAAc,opCACd,IAAoB,oiBACpB,IAAQ,wVACR,IAAW,+aACX,IAAW,wqBACX,IAAiB,uTACjB,IAAa,yRACb,GAAe,iIACf,GAAe,uIACf,IAA0B,w3BAC1B,IAAY,sRACZ,IAAW,wXACX,IAAW,udACX,IAAkB,iUAClB,IAAgC,uJAChC,IAAiC,4JACjC,IAAwB,uOACxB,IAA+B,qTAC/B,IAAyB,iPACzB,IAAgC,iTAChC,IAA2B,mQAC3B,IAA4B,gQAC5B,IAAY,4cACZ,IAAc,2fACd,IAAqB,8mBACrB,IAAiB,uNACjB,IAAc,uMACd,IAAS,+sBACT,IAAY,iLACZ,IAAa,kOACb,IAAkB,kUAClB,IAAiB,qPACjB,IAAe,wPACf,IAAoB,unBACpB,IAA0B,2cAC1B,IAA+B,kcAC/B,IAA+B,2YAC/B,IAA8B,waAC9B,IAAgC,mfAChC,IAAyB,ihBACzB,IAAwB,yiBACxB,IAA0B,ynBAC1B,IAAe,8EACf,IAAc,2EACd,IAAoB,4FACpB,IAAsB,8FACtB,IAAsB,2FACtB,IAA4B,oIAC5B,IAA2B,4FAC3B,IAA4B,8FAC5B,IAAc,wKACd,IAAqB,iLACrB,IAAkB,uKAClB,IAAyB,+KACzB,IAAU,gTACV,IAAe,6XACf,IAAsB,qVACtB,IAAa,qcACb,IAAoB,2YACpB,IAAiB,oPACjB,IAAc,qZACd,IAAqB,6WACrB,IAAgB,2fAChB,IAAuB,mdACvB,IAAa,+iBACb,IAAqB,8KACrB,IAAoB,8uBACpB,IAAmB,yfACnB,IAA0B,0dAC1B,IAA0B,0SAC1B,IAAc,yqBACd,IAAS,2JACT,IAAmB,wGACnB,IAAoB,2GACpB,IAAa,+FACb,IAAmB,iHACnB,IAAa,4FACb,IAAc,+FACd,IAAgB,sGAChB,IAAiB,yGACjB,IAAW,+FACX,IAAiB,oHACjB,IAAW,ihCACX,IAAa,qGACb,IAAc,iHACd,IAAqB,2LACrB,IAAwB,iNACxB,IAA+B,4dAC/B,IAAqB,wJACrB,IAAoB,gcACpB,IAA2B,2hBAC3B,IAAqB,2SACrB,IAA4B,sXAC5B,IAAsB,oNACtB,IAA6B,6dAC7B,IAAuB,+JACvB,IAA8B,whBAC9B,IAAsB,srBACtB,IAAe,gZACf,IAAsB,8aACtB,IAAe,6RACf,IAAoB,uhBACpB,IAAmB,smBACnB,IAAoB,keACpB,IAAkB,qiBAClB,IAAmB,0fACnB,IAAqB,kmBACrB,IAAe,wZACf,IAAsB,kkBACtB,IAAiB,qgBACjB,IAAa,gHACb,IAAiB,myBACjB,IAAc,4+BACd,IAAmB,uyCACnB,IAAuB,yRACvB,IAAoB,6oDACpB,IAAmB,+1CACnB,IAAmB,wgDACnB,IAAkB,61CAClB,IAAoB,m8CACpB,IAAW,wfACX,IAAiB,kLACjB,IAAa,gKACb,IAAW,iCACX,IAAc,oIACd,IAAqB,8IACrB,IAAiB,0GACjB,GAAwB,kLACxB,IAAkB,mGAClB,IAAyB,wJACzB,IAAS,+wBACT,IAAY,4tBACZ,IAAmB,y1EACnB,IAAgB,onFAChB,IAAW,kVACX,IAAY,8VACZ,IAAe,2eACf,IAAsB,g+BACtB,IAAmB,y5BACnB,IAAS,gVACT,IAAa,sbACb,IAAc,yRACd,IAAY,uVACZ,IAAa,ySACb,IAAe,iYACf,GAAY,sJACZ,IAAe,wPACf,IAAuB,oUACvB,IAA8B,mUAC9B,IAAsB,wQACtB,IAAkB,wSAClB,IAAyB,oTACzB,IAAgB,0WAChB,IAAuB,2WACvB,IAAiB,yIACjB,IAAwB,8MACxB,IAAe,uSACf,IAAsB,2SACtB,GAAmB,qOACnB,IAAgB,yJAChB,IAAuB,8NACvB,IAAkB,2NAClB,IAAyB,gSACzB,IAAiB,kYACjB,IAAwB,ycACxB,IAAa,igBACb,IAAc,6CACd,IAAqB,wFACrB,IAAe,uVACf,IAAa,4KACb,IAAgB,wZAChB,IAAuB,waACvB,IAAmB,oXACnB,IAA0B,qeAC1B,IAAoB,2ZACpB,IAAmB,qaACnB,IAAqB,iHACrB,IAAqB,iHACrB,IAAQ,6HACR,IAAW,0RACX,IAAgB,+TAChB,IAAuB,qbACvB,IAAoB,gcACpB,IAA2B,6jBAC3B,IAAiB,0kBACjB,IAAwB,mqBACxB,IAAgB,2SAChB,IAAuB,+aACvB,IAAkB,2tBAClB,IAAqB,+0BACrB,IAAgB,gdAChB,IAAe,0zBACf,IAAsB,q8BACtB,IAAkB,oTAClB,IAAyB,ibACzB,IAAiB,4gBACjB,IAAwB,ogBACxB,IAAiB,oXACjB,IAAwB,ifACxB,IAAmB,gUACnB,IAA2B,iZAC3B,IAAkC,2eAClC,IAA0B,icAC1B,IAAe,0dACf,IAAsB,ulBACtB,IAAc,sWACd,IAAqB,oeACrB,IAAkB,8UAClB,IAAyB,iiBACzB,IAAgB,4RAChB,IAAuB,gaACvB,IAAiB,slBACjB,IAAwB,2eACxB,IAAc,+ZACd,IAAqB,6gBACrB,IAAmB,gUACnB,IAA0B,icAC1B,IAAkB,6aAClB,IAAiB,qTACjB,IAAwB,kbACxB,IAAe,iTACf,IAAsB,qbACtB,IAAkB,0hBAClB,IAAyB,mnBACzB,IAAiB,+WACjB,IAAwB,mgBACxB,IAAiB,8WACjB,IAAwB,qeACxB,IAAe,wgBACf,IAAsB,0qBACtB,IAA0B,4OAC1B,IAAyB,4OACzB,IAAmB,mUACnB,IAA0B,gcAC1B,IAAe,+lBACf,IAAsB,wrBACtB,IAAe,+pBACf,IAAQ,kGACR,IAAW,8KACX,IAAY,yoBACZ,IAAW,sSACX,IAAc,iWACd,IAAa,2TACb,IAAiC,0HACjC,IAAwC,2IACxC,IAA8B,+GAC9B,IAAqC,0IACrC,IAAU,oUACV,IAAe,03BACf,IAAS,i9BACT,IAAgB,0SAChB,IAAuB,0cACvB,IAAe,wTACf,IAAsB,udACtB,IAAU,uUACV,IAAkB,mgBAClB,IAAa,0bACb,IAAY,kIACZ,IAAS,8DACT,IAAY,8HACZ,GAAmB,oKACnB,IAAgB,mGAChB,IAAc,kEACd,IAAiB,6IACjB,IAAkB,o7BAClB,IAAqB,yDACrB,IAA4B,mHAC5B,IAAe,wuBACf,IAAc,oNACd,IAAqB,4dACrB,IAAU,sGACV,IAAsB,wHACtB,IAAc,4JACd,IAAe,uRACf,IAAgB,qQAChB,IAAY,41BACZ,IAAY,uSACZ,IAAY,oVACZ,IAAe,2UACf,IAAW,kNACX,IAAc,gsBACd,IAAgB,miBAChB,IAAU,iCACV,IAAa,+GACb,IAAwB,oUACxB,IAAiB,qbACjB,IAAqB,kaACrB,IAA4B,uXAC5B,IAAwB,+XACxB,IAAqB,2IACrB,IAA4B,8KAC5B,IAAoB,oHACpB,IAAgB,iGAChB,IAAuB,qMACvB,IAAiB,qMACjB,IAAwB,oNACxB,IAAiB,qDACjB,IAAe,2CACf,IAA0B,0IAC1B,IAAe,mfACf,IAAmB,yGACnB,IAAkB,uOAClB,IAAmB,6DACnB,IAAmB,mJACnB,IAA0B,yNAC1B,IAAkB,sEAClB,IAAkB,qFAClB,IAAoB,2JACpB,IAAkB,mJAClB,IAAU,sJACV,IAAY,mlBACZ,GAAU,4CACV,IAAa,6HACb,IAAqB,oJACrB,IAA4B,6LAC5B,IAAoB,yIACpB,IAAgB,oHAChB,IAAwB,4LACxB,IAA+B,gVAC/B,GAAuB,kNACvB,IAAc,iVACd,IAAkB,uUAClB,IAAe,yDACf,IAAkB,uIAClB,IAAsB,uFACtB,IAAiB,2NACjB,IAAwB,sOACxB,IAAiB,8EACjB,IAAe,4CACf,IAAY,iFACZ,IAAa,qpBACb,IAAY,kWACZ,IAAkB,yLAClB,IAAgB,0LAChB,IAAkB,+LAClB,IAAiB,ycACjB,IAAc,wYACd,IAAe,yiBACf,IAAe,gpBACf,IAAc,4FACd,IAAiB,8SACjB,IAAwB,kmBACxB,IAAmB,unBACnB,IAAU,qDACV,IAAU,kIACV,IAAa,0FACb,IAAU,+eACV,IAAqB,wqBACrB,IAAa,2fACb,IAAU,oEACV,IAAc,sHACd,IAAiB,oFACjB,IAAkB,4hBAClB,IAAS,yEACT,IAAY,+GACZ,IAAmB,oIACnB,IAAgB,wFAChB,IAAc,gYACd,IAAqB,4ZACrB,IAAW,4OACX,IAAc,mTACd,IAAqB,0RACrB,IAAW,wNACX,IAAgB,4JAChB,IAAc,2IACd,IAAa,oBACb,IAAe,uFACf,IAAsB,0WACtB,IAA6B,0aAC7B,IAAkB,qMAClB,IAAyB,4TACzB,IAAsB,2MACtB,IAAmB,sQACnB,IAAgB,gLAChB,IAAiB,oGACjB,IAAmB,gSACnB,IAAmB,8kBACnB,IAAmB,0ZACnB,IAAmB,2XACnB,IAAmB,odACnB,IAAmB,2iBACnB,IAAmB,oOACnB,IAAmB,+JACnB,IAAmB,qSACnB,IAAkB,uQAClB,IAAgB,sjBAChB,IAAkB,0NAClB,IAAkB,uHAClB,IAAsB,uUACtB,IAAa,uiBACb,IAAa,6JACb,IAAe,6hBACf,IAAqB,uGACrB,IAA0B,sJAC1B,IAAiC,+LACjC,IAAyB,sNACzB,IAAgC,+PAChC,IAAwB,iLACxB,IAA+B,wPAC/B,IAA4B,gJAC5B,IAAkB,8gBAClB,IAAkB,sMAClB,IAAkB,gTAClB,IAAgB,8eAChB,IAAgB,sPAChB,IAAuB,yYACvB,IAAoB,+SACpB,IAAgB,+EAChB,IAAqB,iIACrB,IAA4B,6JAC5B,IAAsB,+dACtB,IAA6B,gdAC7B,IAAqB,+NACrB,IAA4B,sRAC5B,IAAmB,u3BACnB,IAA0B,42BAC1B,IAAoB,yUACpB,IAA2B,kWAC3B,IAAqB,uKACrB,IAA4B,6NAC5B,IAAuB,wNACvB,IAA8B,iPAC9B,IAAmB,uLACnB,IAA0B,2NAC1B,IAAuB,2HACvB,IAAqB,4LACrB,IAA4B,kPAC5B,IAAoB,6KACpB,IAA2B,iOAC3B,IAAoB,+LACpB,IAA2B,qPAC3B,IAAuB,gbACvB,IAA8B,saAC9B,IAAsB,qSACtB,IAA6B,4VAC7B,IAAoB,qQACpB,IAA2B,6TAC3B,IAAoB,uKACpB,IAA2B,6NAC3B,IAAoB,+fACpB,IAA2B,kjBAC3B,IAAsB,udACtB,IAA6B,ufAC7B,IAAmB,+XACnB,IAAqB,oNACrB,IAAqB,wUACrB,IAAkB,8KAClB,IAAiB,+KACjB,IAAyB,syBACzB,IAAmB,yfACnB,IAAmB,oiBACnB,IAAmB,0gBACnB,IAAmB,+jBACnB,IAAsB,kgBACtB,IAAoB,mdACpB,IAAoB,+nBACpB,IAAsB,6lBACtB,IAAkB,mkBAClB,IAA4B,oiBAC5B,IAAiB,2wBACjB,IAAoB,igBACpB,IAAoB,0uBACpB,IAAe,icACf,IAAkB,uzBAClB,IAAqB,6KACrB,IAAwB,iOACxB,IAA+B,0QAC/B,IAA4B,kNAC5B,IAA4B,2GAC5B,IAA+B,qLAC/B,IAAsC,6NACtC,IAAmC,0HACnC,IAAiB,+NACjB,IAAwB,8TACxB,IAAc,uNACd,IAAa,8CACb,IAAgB,gIAChB,IAAW,4GACX,IAAU,2gBACV,IAAa,2eACb,IAAa,2VACb,IAAW,gKACX,IAAkB,kLAClB,IAAY,uTACZ,IAAiB,0ZACjB,IAAwB,8mBACxB,IAAgB,ycAChB,IAAuB,4rBACvB,IAAiB,qiBACjB,IAAwB,yuBACxB,IAAiB,6YACjB,IAAwB,qlBACxB,IAAmB,miBACnB,IAAgB,qaAChB,IAAuB,6mBACvB,IAAkB,2gBAClB,IAAyB,mtBACzB,IAAgB,seAChB,IAAuB,2qBACvB,IAAa,kVACb,IAAgB,6cAChB,IAAQ,2qBACR,IAAY,goBACZ,IAAY,4OACZ,IAAgB,wWAChB,IAAiB,gNACjB,IAAgB,qOAChB,IAAkB,yUAClB,IAAgB,6XAChB,IAAgB,gsDAChB,IAAiB,6PACjB,IAAgB,yPAChB,IAAmB,8SACnB,IAAyB,0FACzB,IAAW,ygCACX,IAAY,mhCACZ,IAAmB,m6BACnB,IAA0B,unCAC1B,IAAkB,ucAClB,IAAiB,ouBACjB,IAAW,qdACX,IAAc,ynBACd,IAAsB,yWACtB,IAAiB,0sBACjB,IAAW,mNACX,IAAa,wIACb,IAAa,mGACb,IAAmB,qJACnB,IAAc,yTACd,IAAgB,yhBAChB,IAAiB,2UACjB,IAAuB,2YACvB,IAA8B,2dAC9B,IAAoB,kYACpB,IAAmB,mJACnB,IAAkC,2rBAClC,IAAoB,sNACpB,IAAkB,khBAClB,IAAyB,siBACzB,IAAY,wMACZ,IAAmB,4QACnB,IAAmB,+kBACnB,IAAU,2UACV,IAAiB,6RACjB,IAAS,8SACT,IAAY,8SACZ,IAAY,0GACZ,IAAiB,sHACjB,IAAc,iGACd,IAAmB,iHACnB,IAAiB,uLACjB,IAAuB,8RACvB,IAAe,yIACf,IAAqB,oXACrB,IAAqB,oOACrB,IAAW,sxEACX,IAAU,oMACV,IAAa,qLACb,IAAkB,okBAClB,IAAyB,oqBACzB,IAAoB,6MACpB,IAAiB,+LACjB,IAAwB,sMACxB,IAAiB,iOACjB,IAA0B,sVAC1B,IAAiC,+UACjC,IAA2B,sVAC3B,IAAkC,mVAClC,IAAsB,mXACtB,IAA6B,qWAC7B,IAAsB,ssBACtB,IAA6B,qvBAC7B,IAAqB,iaACrB,IAA4B,0cAC5B,IAAsB,uUACtB,IAA6B,8TAC7B,IAAwB,oPACxB,IAAqB,+VACrB,IAA4B,sVAC5B,IAAuB,qcACvB,IAA8B,4bAC9B,IAAqB,mOACrB,IAA4B,+PAC5B,IAAY,gGACZ,IAAkB,kJAClB,IAAyB,qNACzB,IAAkB,+XAClB,IAAe,oUACf,IAAe,kBACf,IAAsB,kCACtB,IAAa,6eACb,IAAoB,saACpB,IAAY,0tCACZ,IAAY,8lBACZ,IAAU,gKACV,IAAiB,sLACjB,IAAuB,iVACvB,IAAqB,iYACrB,GAAa,qNACb,IAAiB,mSACjB,IAAmB,6JACnB,IAAW,6lBACX,IAAyB,+hBACzB,IAAe,sNACf,IAAwB,2DACxB,IAAuB,iEACvB,IAA6B,6EAC7B,IAA2B,yFAC3B,IAA8B,iKAC9B,IAA6B,uKAC7B,IAA6B,wEAC7B,IAA4B,8EAC5B,IAAkC,0FAClC,IAAgC,sGAChC,IAAmC,8KACnC,IAAkC,oLAClC,IAAuB,+DACvB,IAAsB,qEACtB,IAA4B,iFAC5B,IAA0B,6FAC1B,IAA6B,qKAC7B,IAA4B,2KAC5B,IAA2B,gFAC3B,IAA0B,sFAC1B,IAAgC,kGAChC,IAA8B,8GAC9B,IAAiC,sLACjC,IAAgC,4LAChC,IAA8B,qJAC9B,IAA6B,2JAC7B,IAAmC,uKACnC,IAAiC,mLACjC,IAAoC,2PACpC,IAAmC,iQACnC,IAA6B,yJAC7B,IAA4B,+JAC5B,IAAkC,2KAClC,IAAgC,uLAChC,IAAmC,+PACnC,IAAkC,qQAClC,IAAmB,iKACnB,GAAY,wNACZ,IAAiB,4MACjB,IAAc,soBACd,IAAY,wZACZ,IAAmB,gNACnB,IAAe,wdACf,IAAc,yNACd,IAAiB,0QACjB,IAAY,sNACZ,IAAe,wNACf,IAAsB,2NACtB,IAAmB,gQACnB,IAAuB,gEACvB,IAAqB,+DACrB,GAAY,oEACZ,IAAe,4JACf,IAAgB,gGAChB,IAAmB,4IACnB,IAAY,uHACZ,IAAW,oEACX,IAAc,gGACd,IAAqB,+LACrB,IAAiB,8IACjB,IAAkB,iKAClB,IAAkB,4kBAClB,IAAc,4EACd,IAAmB,uhBACnB,IAAY,+GACZ,IAAuB,gHACvB,IAAgB,2aAChB,IAAa,sUACb,IAAkB,qbAClB,IAAgB,2YAChB,GAAa,qMACb,IAAkB,8MAClB,IAAY,yCACZ,IAAc,8RACd,IAAc,oQACd,IAAc,kYACd,IAAc,qPACd,IAAa,2OACb,IAAc,sXACd,IAAmB,8FACnB,IAAa,wMACb,IAAmB,kOACnB,IAA0B,4QAC1B,IAAoB,8NACpB,IAAkB,kWAClB,IAAyB,6XACzB,IAAY,kTACZ,IAAU,iRACV,IAAc,wjBACd,IAAsB,mlBACtB,IAAU,6NACV,IAAW,mNACX,IAAU,8DACV,IAAiB,+MACjB,IAAY,wdACZ,IAAW,qbACX,IAAgB,kfAChB,IAAuB,wmBACvB,IAAmB,wnBACnB,IAA0B,uwBAC1B,IAAe,olBACf,IAAsB,wqBACtB,IAAkB,4cAClB,IAAyB,2hBACzB,IAAgB,4mBAChB,IAAuB,0uBACvB,IAAqB,gYACrB,IAA4B,ycAC5B,IAAe,mqBACf,IAAsB,mvBACtB,IAAgB,2RAChB,IAAuB,qYACvB,IAAc,8mBACd,IAAqB,isBACrB,GAAkB,ukBAClB,IAAiB,gkBACjB,IAAsB,ohBACtB,IAAoB,2rBACpB,IAAwB,mPACxB,IAA6B,4QAC7B,IAA2B,wYAC3B,IAAY,yWACZ,IAAkB,8qBAClB,IAAyB,o4BACzB,IAAmB,kdACnB,IAAY,yjBACZ,IAAiB,8JACjB,IAAuB,6HACvB,IAAiB,8WACjB,IAAoB,gfACpB,IAAiB,qcACjB,IAAoB,wlBACpB,IAAc,4eACd,IAAa,ulBACb,IAAoB,wmBACpB,IAAmB,0CACnB,IAAoB,mEACpB,IAAmB,6EACnB,IAAmB,+GACnB,IAAmB,2EACnB,IAAmB,sCACnB,IAAmB,yEACnB,IAAmB,6GACnB,IAAmB,+IACnB,IAAmB,yGACnB,IAAiB,qKACjB,IAAwB,2OACxB,IAAe,iMACf,IAAc,ylEACd,IAAqB,wPACrB,IAAgB,wZAChB,IAAuB,oMACvB,IAAiB,8nBACjB,IAAiB,maACjB,IAAwB,mMACxB,IAAmB,iPACnB,IAAY,+RACZ,IAAmB,wRACnB,IAA2B,4qBAC3B,IAAoB,8YACpB,IAAuB,+bACvB,IAA4B,icAC5B,IAAY,kHACZ,IAAiB,6UACjB,IAAY,uZACZ,IAAS,qPACT,IAAY,8PACZ,IAAY,kXACZ,IAAS,sgBACT,IAAW,mrBACX,IAAW,uTACX,IAAiB,0LACjB,IAAwB,8VACxB,IAAS,6WACT,IAAa,obACb,IAAa,sQACb,IAAU,8HACV,IAAiB,qkBACjB,IAAiB,kXACjB,IAAU,+TACV,IAAgB,8jBAChB,IAAuB,ilBACvB,IAAmB,0ZACnB,IAAc,0lBACd,IAAkB,mfAClB,IAAU,2bACV,IAAiB,soBACjB,IAAgB,qfAChB,IAAU,isCACV,IAAe,qLACf,IAAqB,+ZACrB,IAAsB,weACtB,IAAa,2LACb,IAAgB,oTAChB,IAAc,0VACd,IAAkB,sDAClB,IAAe,iTACf,IAAW,gcACX,IAAkB,yYAClB,IAAmB,2JACnB,IAAc,8WACd,IAAqB,+aACrB,IAAgB,gJAChB,IAAa,2JACb,IAAgB,ySAChB,IAAiB,wPACjB,IAAwB,yeACxB,IAAW,+5BACX,IAAc,ugCACd,IAAY,qFACZ,IAAmB,0JACnB,IAAqB,0uBACrB,IAAa,geACb,IAAqB,2fACrB,IAAgB,2eAChB,IAAuB,mfACvB,IAAoB,4aACpB,IAAwB,8jBACxB,IAAkB,0QAClB,IAAc,uLACd,IAAyB,uQACzB,IAA0B,gPAC1B,IAAmB,mPACnB,IAAiB,uOACjB,IAAY,8NACZ,IAAmB,uLACnB,IAAgB,2PAChB,IAAmB,ucACnB,IAA0B,2fAC1B,IAAuB,oOACvB,IAAoB,oQACpB,IAA2B,mTAC3B,IAAQ,6GACR,IAAU,+RACV,IAAiB,2wBACjB,IAAe,ugCACf,IAAU,gHACV,IAAc,iLACd,IAAoB,wQACpB,IAAyB,8GACzB,IAAsB,qOACtB,IAAuB,mKACvB,IAAwB,gMACxB,IAAiB,4HACjB,IAAmB,0TACnB,IAAsB,gdACtB,IAAuB,kZACvB,IAAc,w0BACd,IAAc,sIACd,IAAqB,kPACrB,IAAU,+IACV,IAAa,uUACb,IAAoB,6dACpB,IAAiB,mSACjB,IAAc,iSACd,IAAqB,mZACrB,IAAY,4SACZ,IAAa,yCACb,IAAY,sTACZ,IAAe,wRACf,IAAqB,2RACrB,IAAmB,2RACnB,IAAiB,4jBACjB,IAAmB,wOACnB,IAAgB,kLAChB,IAAiB,kTACjB,IAAmB,kKACnB,IAAkB,sdAClB,IAAoB,+WACpB,IAA0B,ofAC1B,IAAe,6SACf,IAAiB,uRACjB,IAAkB,0bAClB,IAAkB,ggBAClB,IAAe,4NACf,IAAmB,qKACnB,IAAsB,0wBACtB,IAAiC,0hBACjC,IAA4B,s3BAC5B,IAAqB,gcACrB,IAAuB,8TACvB,IAA6B,miBAC7B,IAAkB,oRAClB,IAAqB,gVACrB,IAAqB,mgBACrB,IAAiB,+NACjB,IAAU,oCACV,IAAe,+EACf,IAAsB,kIACtB,IAAgB,gIAChB,IAAuB,mMACvB,IAAe,iNACf,IAAsB,sTACtB,IAAc,qOACd,IAAqB,wUACrB,IAAiB,0GACjB,IAAiB,+BACjB,IAAsB,wnBACtB,IAA6B,8sBAC7B,IAAwB,iEACxB,IAAgB,mFAChB,IAAY,4TACZ,IAAiB,qHACjB,IAAwB,8KACxB,GAAmB,mTACnB,IAAsB,kcACtB,IAA0B,gRAC1B,IAAe,qcACf,IAAmB,qUACnB,IAAgB,6IAChB,IAAuB,kMACvB,IAAkB,sNAClB,IAAoB,+cACpB,IAAY,ueACZ,IAAe,qcACf,IAAoB,mbACpB,IAAa,+aACb,IAAmB,gbACnB,IAAkB,6RAClB,IAAc,4FACd,IAAa,mjBACb,IAAc,kYACd,IAAc,kGACd,IAAe,kNACf,IAAe,gUACf,IAAoB,uDACpB,IAAY,kfACZ,IAAmB,uoBACnB,IAAW,yIACX,IAAqB,gJACrB,IAAkB,4RAClB,IAAmB,wOACnB,IAAe,gKACf,IAAsB,8OACtB,IAAsB,4GACtB,IAAwB,wEACxB,IAAqB,wEACrB,IAA4B,iMAC5B,IAAW,iEACX,IAAc,iGACd,IAAqB,2LACrB,IAAiB,2IACjB,IAAc,4JACd,IAAqB,6OACrB,IAAkB,kLAClB,IAAkB,6bAClB,IAAyB,moBACzB,IAAW,4jBACX,IAAc,gnBACd,IAAqB,ylBACrB,IAAc,qoBACd,IAAW,gqCACX,IAAY,2EACZ,GAAmB,qUACnB,IAA0B,0hBAC1B,IAA0B,0bAC1B,IAAiC,kjBACjC,IAAoB,oRACpB,IAA2B,oWAC3B,IAAiB,kGACjB,IAAwB,6LACxB,IAAe,sVACf,IAAsB,iaACtB,IAAe,+aACf,IAAiB,0HACjB,IAAwB,yMACxB,IAAiB,2GACjB,IAAwB,mLACxB,IAAiB,wOACjB,IAAwB,gVACxB,IAAgB,wNAChB,IAAuB,kSACvB,IAAgB,wCAChB,IAAoB,4HACpB,IAAgB,qHAChB,IAAuB,oMACvB,IAAe,8PACf,IAAsB,6UACtB,IAAuB,2lCACvB,IAA8B,sqCAC9B,IAAgB,mTAChB,IAAoB,6RACpB,IAA2B,sWAC3B,IAAuB,uYACvB,IAAgB,6RAChB,IAAuB,sWACvB,IAAe,+KACf,IAAsB,4TACtB,IAAmB,2JACnB,IAAgB,0MAChB,IAAuB,iSACvB,IAAmB,iZACnB,IAA0B,2aAC1B,IAAkB,wSAClB,IAAyB,+XACzB,IAAkB,oVAClB,IAAgB,wLAChB,IAAuB,yQACvB,IAAe,qrBACf,IAAsB,qwBACtB,IAAiB,gIACjB,IAAwB,0MACxB,IAAgB,iWAChB,IAAuB,wXACvB,IAAa,wLACb,IAAe,kyCACf,IAAoB,iGACpB,IAAgB,02BAChB,IAAe,gxBACf,IAAgB,8HAChB,IAAc,+FACd,IAAe,4dACf,IAAiB,moBACjB,IAAc,qOACd,IAAmB,kLACnB,IAAqB,gRACrB,IAAoB,uYACpB,IAA2B,spBAC3B,IAAW,0UACX,IAAY,qUACZ,IAAe,iZACf,IAAY,kXACZ,IAAgB,q5BAChB,IAAc,2MACd,IAAa,qLACb,IAAqB,+DACrB,IAAoB,wKACpB,IAAc,yLACd,IAAY,mKACZ,IAAW,2DACX,IAAgB,gNAChB,IAAiB,6KACjB,IAAmB,wGACnB,IAAwB,iGACxB,IAAuB,yJACvB,IAAyB,sPACzB,IAAkB,+tBAClB,IAAyB,82BACzB,IAAc,qEACd,IAAoB,8JACpB,IAAc,yKACd,IAAe,+KACf,IAAY,4DACZ,IAAc,0MACd,IAAc,iPACd,IAAc,0JACd,IAAc,iNACd,IAAqB,4GACrB,IAAqB,8EACrB,IAAqB,kDACrB,IAA2B,uIAC3B,IAA2B,gJAC3B,IAAgB,uEAChB,IAAoB,4FACpB,IAAe,wJACf,IAAmB,mLACnB,IAAe,4JACf,IAAuB,i5BACvB,IAAoB,4PACpB,IAAmB,4YACnB,IAAU,iNACV,IAAiB,8NACjB,IAAgB,wSAChB,IAAqB,wdACrB,IAAoB,0PACpB,IAAyB,gJACzB,IAAqB,wLACrB,IAAuB,wWACvB,IAAS,mLACT,IAAc,iHACd,IAAqB,yIACrB,IAAY,gLACZ,IAAmB,6OACnB,IAAgB,0OAChB,IAAiB,6uBACjB,IAAe,w0BACf,IAAc,oOACd,IAAa,4IACb,IAAoB,gNACpB,IAAW,wBACX,IAAW,2EACX,IAAW,8HACX,IAAY,oFACZ,IAAY,8LACZ,IAAa,8IACb,IAAa,wPACb,IAAc,mNACd,IAAW,8TACX,IAAc,qbACd,IAAgB,oeAChB,IAAmB,slCACnB,IAAc,qFACd,IAAc,qFACd,IAAS,wuBACT,IAAqB,mZACrB,IAAc,6cACd,IAAkB,yCAClB,IAAyB,wGACzB,GAAiB,2CACjB,IAAwB,uGACxB,GAAc,sCACd,IAAoB,2GACpB,IAA2B,mMAC3B,GAAqB,0DACrB,IAAkB,wCAClB,IAAwB,wGACxB,IAA+B,mMAC/B,IAAyB,8DACzB,IAAW,8RACX,IAAqB,ybACrB,IAA4B,4gBAC5B,IAAkB,8XAClB,IAAe,qbACf,IAAsB,kiBACtB,IAAW,8uBACX,IAAmB,w/BACnB,IAAW,sgBACX,IAAkB,4BAClB,IAAqB,yHACrB,IAAc,y5BACd,IAAW,uIACX,IAAc,0LACd,IAAW,sWACX,IAAmB,6NACnB,IAAiB,oOACjB,IAAiB,8WACjB,IAAwB,6XACxB,IAAe,kNACf,IAAkB,uYAClB,IAAyB,wbACzB,IAAsB,iPACtB,IAAqB,4NACrB,IAA4B,mOAC5B,IAAU,kTACV,IAAW,ycACX,IAAmB,yOACnB,IAAwB,kRACxB,IAA+B,mSAC/B,IAAsB,0hBACtB,IAA6B,ikBAC7B,IAA0B,oRAC1B,IAA0B,wqCAC1B,IAA+B,iiCAC/B,IAA6B,i6CAC7B,IAAa,ifACb,IAAgB,qeAChB,IAAiB,2pBACjB,IAAoB,0yBACpB,IAAW,s3BACX,IAAW,yeACX,IAAc,irGACd,IAAe,++BACf,IAAe,mlBACf,IAAoB,0bACpB,IAAoB,qnBACpB,IAAmB,okBACnB,IAAkB,knBAClB,IAA0B,6lBAC1B,IAAsB,qZACtB,IAAa,wkBACb,IAAgB,+bAChB,IAAiB,wpBACjB,IAAY,o2BACZ,IAAiB,+aACjB,IAA2B,wlBAC3B,IAAyB,4mBACzB,IAAU,sXACV,IAAiB,ohBACjB,IAAgB,sRAChB,IAAuB,saACvB,IAAgB,8KAChB,IAAqB,uSACrB,IAAgB,sOAChB,IAAuB,sSACvB,IAA8B,4WAC9B,IAAmB,sZACnB,IAAW,eACX,IAAqB,+qBACrB,IAAU,kFACV,IAA+B,8IAC/B,IAAsC,yPACtC,IAAgC,4IAChC,IAAuC,6PACvC,IAA6B,2RAC7B,IAAmB,uEACnB,IAAuB,oNACvB,IAA8B,+TAC9B,IAAwB,iRACxB,IAA+B,0SAC/B,IAA2B,iMAC3B,IAA4B,8LAC5B,IAAwB,oLACxB,IAA+B,wSAC/B,IAAyB,iLACzB,IAAgC,qSAChC,IAAoB,qEACpB,IAA0B,uQAC1B,IAAiC,+wCACjC,IAA2B,6PAC3B,IAAkC,oxCAClC,IAAwB,y0CACxB,IAAwB,yCACxB,IAAiB,2CACjB,IAAqB,+RACrB,IAAyB,4RACzB,IAAoB,sJACpB,IAAuB,0LACvB,IAAc,+pBACd,IAAgB,oqBAChB,IAAkB,sjBAClB,IAAuB,qoBACvB,IAAuB,8kBACvB,IAAsB,smBACtB,IAAyB,yxBACzB,IAAwB,4sBACxB,IAAsB,68BACtB,IAAkB,uMAClB,IAAqB,sKACrB,IAA0B,yJAC1B,IAAuB,2KACvB,IAA2B,wLAC3B,IAAuB,2KACvB,IAAgC,4JAChC,IAAgB,iuBAChB,IAAiB,ihBACjB,IAAgB,ogBAChB,IAAsB,o1BACtB,IAA8B,o4BAC9B,IAAc,yRACd,IAAiB,yWACjB,IAAS,wPACT,IAAgB,icAChB,IAAmB,4LACnB,IAAkB,4tBAClB,IAAW,2QACX,IAAa,8SACb,IAAsB,ycACtB,IAAoB,qWACpB,IAAqB,yTACrB,IAAgB,wbAChB,IAAkB,yeAClB,IAAiB,6dACjB,IAAiB,0dACjB,IAAqB,6jBACrB,IAAW,gEACX,IAAiB,whBACjB,IAAuB,8fACvB,IAAqB,6gBACrB,IAAgB,sJAChB,IAAY,gZACZ,IAAe,0vBACf,IAAY,uZACZ,IAAmB,wtCACnB,IAAkB,4fAClB,IAAe,0wDACf,IAAiB,sHACjB,IAAgB,0MAChB,IAAa,8oBACb,IAAe,wbACf,IAAmB,gSACnB,IAAW,iMACX,IAAiB,0OACjB,IAAe,kJACf,IAAmB,sPACnB,IAAsB,2OACtB,IAAY,wRACZ,IAAmB,2kBACnB,IAAY,eACZ,IAAkB,oGAClB,IAAyB,qNACzB,IAAuB,wQACvB,IAAkB,mBAClB,IAAyB,qCACzB,IAAe,4FACf,IAAsB,gIACtB,IAAmB,6SACnB,IAAmB,gCACnB,IAAgB,kNAChB,IAAmB,kRACnB,IAAmB,sGACnB,IAAwB,kQACxB,IAA+B,gWAC/B,IAA0B,wMAC1B,IAAiB,sBACjB,IAAgB,wCAChB,IAAc,uFACd,IAAS,0XACT,IAAmB,+OACnB,IAAmB,kTACnB,IAAe,4nCACf,IAAa,gOACb,IAAoB,iVACpB,IAAoB,ibACpB,IAAY,oDACZ,IAAe,uJACf,IAAgB,uHAChB,IAAc,wHACd,IAAa,gIACb,IAAwB,kMACxB,IAAU,uGACV,IAAa,iMACb,IAAqB,yOACrB,IAA4B,uPAC5B,IAAoB,+MACpB,IAAe,gKACf,IAAsB,kRACtB,IAAgB,0LAChB,IAAuB,sQACvB,IAAa,siCACb,IAAoB,0rCACpB,IAAkB,kPAClB,IAAe,mSACf,IAAc,iaACd,IAAoB,mDACpB,IAAuB,sPACvB,IAA8B,qQAC9B,IAA0B,waAC1B,IAAiC,6oBACjC,IAA2B,wIAC3B,IAAyB,sFACzB,IAAc,wDACd,IAAkB,iKAClB,IAAe,mHACf,IAAsB,qOACtB,IAAa,mJACb,IAAoB,iQACpB,IAAiB,kNACjB,IAAc,2IACd,IAAqB,6PACrB,IAAgB,2NAChB,IAAuB,6UACvB,IAAkB,yJAClB,IAAyB,qRACzB,IAAkB,+gBAClB,IAAyB,mvBACzB,IAAqB,sDACrB,IAA4B,iHAC5B,IAAkB,sdAClB,IAAW,s4BACX,IAAc,6lBACd,IAAiB,suBACjB,IAAkB,6BAClB,IAAmB,sDACnB,IAAiB,4BACjB,IAAkB,kDAClB,IAAiB,qZACjB,IAAa,yIACb,IAAkB,4KAClB,IAAyB,2PACzB,IAAkB,gMAClB,IAAyB,oRACzB,IAA0B,2eAC1B,IAAkB,kpBAClB,IAAkB,yJAClB,IAAyB,wOACzB,IAAoB,qNACpB,IAAiB,iLACjB,IAAwB,gQACxB,IAAmB,yPACnB,IAA0B,uTAC1B,IAAiB,uLACjB,IAAwB,sQACxB,IAAc,mNACd,IAAa,0TACb,IAAW,yJACX,IAAkB,sMAClB,IAAU,oBACV,IAAgB,0FAChB,IAAuB,qLACvB,IAAiB,gKACjB,IAAwB,gPACxB,IAAW,+EACX,IAAiB,uGACjB,IAAgB,qHAChB,IAAuB,wJACvB,IAAgB,6QAChB,IAAuB,2SACvB,IAAgB,qRAChB,IAAuB,wTACvB,IAAc,i6BACd,IAAqB,q8BACrB,IAAe,2TACf,IAAsB,kWACtB,IAAiB,0VACjB,IAAwB,4XACxB,IAAgB,wNAChB,IAAuB,yPACvB,IAAc,iLACd,IAAqB,2OACrB,IAAkB,sHAClB,IAAe,gPACf,IAAsB,iRACtB,IAAiB,yUACjB,IAAwB,uXACxB,IAAiB,uYACjB,IAAwB,mcACxB,IAAmB,wIACnB,IAA0B,4KAC1B,IAAgB,41CAChB,IAAqB,0zCACrB,IAA4B,spCAC5B,IAAoB,67CACpB,IAA2B,0tCAC3B,IAAqB,yzCACrB,IAA4B,ypCAC5B,IAAuB,6jCACvB,IAAoB,6zCACpB,IAA2B,6pCAC3B,IAAsB,u7CACtB,IAA6B,uxCAC7B,IAAW,sbACX,IAAc,odACd,IAAmB,oUACnB,IAA0B,mVAC1B,IAAkB,w4BAClB,IAAqB,8jCACrB,IAA2B,yEAC3B,IAA4B,2EAC5B,IAAe,uTACf,IAAe,mJACf,IAAsB,kKACtB,IAAY,2cACZ,IAAwB,gXACxB,IAAmB,gVACnB,IAAY,8DACZ,IAAc,mTACd,IAAqB,oXACrB,IAAc,gjBACd,IAAqB,qxBACrB,IAAgB,g3BAChB,IAAkB,oVAClB,IAAyB,wyBACzB,IAAoB,+jBACpB,IAA2B,gkBAC3B,IAAiB,qnBACjB,IAAwB,wrBACxB,IAAgB,geAChB,IAAa,mxBACb,IAAmB,ofACnB,IAAqB,8NACrB,IAAqB,qIACrB,IAAqB,oKACrB,IAAqB,sHACrB,IAAsB,mOACtB,IAAqB,iEACrB,IAAS,m4BACT,IAAoB,yDACpB,IAAwB,oEACxB,IAA0B,8IAC1B,IAAiC,gNACjC,IAA0B,2GAC1B,IAA2B,+KAC3B,IAAkB,0DAClB,IAAsB,qEACtB,IAAwB,4IACxB,IAA+B,gNAC/B,IAAyB,gLACzB,IAAU,2bACV,IAAY,2OACZ,IAAW,+OACX,IAAgB,8cAChB,IAAqB,wPACrB,IAAuB,soBACvB,IAAuB,gIACvB,IAAgC,kHAChC,IAAY,8SACZ,IAAa,k4CACb,IAAe,sRACf,IAAsB,yaACtB,GAAU,qOACV,GAAe,+SACf,IAAgB,uPAChB,IAAa,ofACb,IAAS,oGACT,IAAc,iHACd,IAAa,0IACb,IAAe,2OACf,IAAe,mXACf,IAAmB,uRACnB,IAAW,8IACX,IAAkB,uUAClB,IAAgB,oMAChB,IAAoB,qQACpB,IAAoB,wPACpB,IAAqB,wPACrB,IAAkB,qQAClB,IAAiB,4RACjB,IAAiB,ofACjB,IAAgB,2GAChB,IAAgB,+QAChB,IAAgB,wbAChB,IAAc,umCACd,IAAiB,2HACjB,IAA0B,wIAC1B,IAA2B,wIAC3B,IAAuB,4OACvB,IAAsB,6KACtB,IAAe,yTACf,IAAc,omBACd,IAAiB,yrBACjB,IAAiB,kQACjB,IAAoB,8FACpB,IAAqB,4RACrB,IAAwB,4dACxB,IAAgB,sXAChB,IAAc,4XACd,IAAgB,kOAChB,IAAoB,uWACpB,IAAsB,6cACtB,IAAe,ocACf,IAAqB,qJACrB,IAAgB,2NAChB,IAAmB,2MACnB,IAAkB,+RAClB,IAAqB,oGACrB,IAAc,uQACd,IAAiB,wHACjB,IAAgB,wRAChB,IAAe,uOACf,IAAmB,yfACnB,IAAkB,+eAClB,IAAiB,6UACjB,IAAc,qIACd,IAAoB,wKACpB,IAAuB,wKACvB,IAAwB,6KACxB,IAAoB,uOACpB,IAAiB,wjBACjB,IAAmB,iMACnB,IAAoB,qHACpB,IAAe,6SACf,IAAe,ghBACf,IAAiB,6QACjB,IAAY,qGACZ,IAAqB,iLACrB,IAAqB,qKACrB,IAAU,+RACV,IAAS,8UACT,IAAkB,mZAClB,IAAyB,ikBACzB,IAAkB,oZAClB,IAAyB,ikBACzB,IAAmB,oZACnB,IAA0B,ikBAC1B,IAAgB,mZAChB,IAAuB,ikBACvB,IAAc,8bACd,IAAqB,2mBACrB,IAAa,owBACb,IAAoB,g2BACpB,IAAc,qdACd,IAAc,oiBACd,IAAqB,0kBACrB,IAAe,+5BACf,IAAc,uaACd,IAAqB,sjBACrB,IAAiB,odACjB,GAAwB,kYACxB,IAAY,0SACZ,IAAmB,kcACnB,IAAgB,0PAChB,IAAa,2bACb,IAAoB,gcACpB,IAAe,yhBACf,IAAsB,shBACtB,IAAe,8rBACf,IAAsB,8sBACtB,IAAa,4SACb,IAAoB,8WACpB,IAAc,ucACd,IAAgB,qBAChB,IAAgB,oCAChB,IAAgB,kDAChB,IAAgB,iEAChB,IAAgB,mMAChB,IAAa,sUACb,IAAU,qVACV,IAAiB,wZACjB,IAAe,oSACf,IAAiB,iKACjB,IAAY,gZACZ,IAAmB,keACnB,IAAmB,0WACnB,IAAU,6XACV,IAAS,oWACT,IAAgB,wdAChB,IAAgB,mYAChB,IAAe,g6CACf,IAAe,sTACf,IAAgB,uGAChB,IAA4B,mZAC5B,IAAmB,4IACnB,IAAuB,8UACvB,IAA0B,0aAC1B,IAAqB,yKACrB,IAAmB,4NACnB,IAAqB,8IACrB,IAAoB,4HACpB,IAAuB,6RACvB,IAAuB,qeACvB,IAA0B,0fAC1B,IAAoB,wIACpB,IAAwB,gWACxB,IAA2B,8JAC3B,IAAuB,0EACvB,IAAoB,sRACpB,IAA2B,qXAC3B,IAAiB,mHACjB,IAAwB,4LACxB,IAAY,ugBACZ,IAAgB,wbAChB,IAAuB,izBACvB,IAAU,4IACV,IAAe,2IACf,IAAa,sEACb,IAAc,mQACd,IAAmB,qGACnB,IAAiB,+UACjB,IAAU,kDACV,IAAiB,+KACjB,IAAa,gIACb,IAAkB,4QAClB,GAAyB,6SACzB,IAAiB,kZACjB,IAAwB,kaACxB,IAAkB,sOAClB,IAAyB,+PACzB,IAAqB,8KACrB,IAA4B,0LAC5B,IAAoB,iKACpB,IAAiB,8PACjB,IAAwB,uRACxB,IAAmB,oWACnB,IAA0B,6XAC1B,IAAmB,6dACnB,IAA0B,0fAC1B,IAAc,+DACd,IAAqB,4LACrB,IAAgB,mYAChB,IAAuB,uTACvB,IAAgB,gJAChB,IAAe,kCACf,IAAa,8RACb,IAAgB,oNAChB,IAAa,+QACb,IAAoB,mpBACpB,IAAiB,uFACjB,IAAsB,+MACtB,IAAqB,8OACrB,IAA0B,oXAC1B,IAAsB,+PACtB,IAA4B,iPAC5B,IAA0B,8PAC1B,IAAqB,mFACrB,IAAsB,gYACtB,IAAoB,wFACpB,IAAsB,yMACtB,IAAoB,oQACpB,IAAqB,6NACrB,IAAsB,oVACtB,IAAyB,uVACzB,IAAsB,iQACtB,IAAgB,6XAChB,IAAoB,ghBACpB,IAAmB,4XACnB,IAAuB,2ZACvB,IAAmB,+rDACnB,IAAmB,ghBACnB,IAA0B,mjCAC1B,IAAe,4PACf,IAAsB,wRACtB,IAAa,kQACb,IAAoB,yRACpB,IAAkB,0bAClB,IAAyB,4jBACzB,IAAY,qQACZ,IAAmB,qVACnB,IAAwB,6NACxB,IAA+B,qVAC/B,IAAmB,oRACnB,IAAmB,gdACnB,IAA0B,qjBAC1B,IAAS,wCACT,IAAW,4IACX,IAAc,8PACd,IAAe,uQACf,IAAc,oOACd,IAAmB,sQACnB,IAA0B,sRAC1B,IAAmB,gTACnB,IAA0B,8TAC1B,IAAmB,yRACnB,IAA0B,sXAC1B,IAAmB,sPACnB,IAA0B,sQAC1B,IAAqB,oPACrB,IAAkB,6QAClB,IAAyB,6RACzB,IAAsB,khBACtB,IAA6B,yjBAC7B,IAAoB,6WACpB,IAA2B,gYAC3B,IAAkB,sQAClB,IAAyB,6SACzB,IAAW,yMACX,IAAa,ilFACb,IAAY,q6FACZ,IAAgB,0OAChB,IAAuB,6SACvB,IAAiB,glBACjB,IAAwB,kpBACxB,IAAgB,+XAChB,IAAuB,0bACvB,IAAc,k9BACd,IAAqB,6+BACrB,IAAe,uaACf,IAAsB,2eACtB,IAAe,wkBACf,IAAmB,6jBACnB,IAA0B,knBAC1B,IAAsB,goBACtB,IAAiB,8eACjB,IAAwB,0kBACxB,IAAgB,uUAChB,IAAuB,kYACvB,IAAgB,4YAChB,IAAuB,qeACvB,IAAc,oUACd,IAAqB,2eACrB,IAAkB,wQAClB,IAAgB,uXAChB,IAAuB,obACvB,IAAe,0UACf,IAAsB,sYACtB,IAAe,+VACf,IAAsB,0ZACtB,IAAkB,iiBAClB,IAAyB,mmBACzB,IAAiB,qcACjB,IAAwB,wgBACxB,GAAe,iKACf,IAAuB,6HACvB,IAAoB,kIACpB,IAAmB,iEACnB,IAAqB,wIACrB,IAAmB,oNACnB,IAA0B,gRAC1B,IAAe,qaACf,IAAsB,geACtB,IAAe,mVACf,IAAsB,8YACtB,IAAe,mnBACf,IAAsB,0sBACtB,IAAe,0aACf,IAAU,usBACV,IAAa,mJACb,IAAgB,2RAChB,IAAiB,iPACjB,GAAkB,gJAClB,GAAqB,4IACrB,IAA4B,0MAC5B,IAAyB,0OACzB,IAAyB,mRACzB,IAA4B,0XAC5B,IAAY,iOACZ,IAAa,+KACb,IAAoB,+LACpB,IAAW,iWACX,IAAa,4FACb,IAAoB,8PACpB,IAAsB,qPACtB,IAAkB,sLAClB,IAAyB,sOACzB,IAAiB,qRACjB,IAAwB,0TACxB,IAAkB,mLAClB,IAAyB,iPACzB,IAAkB,iIAClB,IAAyB,wKACzB,IAAoB,iIACpB,IAAiB,iIACjB,IAAwB,sKACxB,IAAqB,wvBACrB,IAA4B,4xBAC5B,IAAmB,wPACnB,IAA0B,8RAC1B,IAAiB,uIACjB,IAAwB,8JACxB,IAAW,iLACX,IAAkB,wdAClB,IAAgB,2LAChB,IAAwB,+PACxB,IAAqB,yUACrB,IAAW,8nBACX,IAAc,oYACd,IAAa,+RACb,IAAsB,ohBACtB,IAAgB,yMAChB,IAAc,4zBACd,IAAgB,iPAChB,IAAe,sPACf,IAAc,0QACd,IAAc,6FACd,IAAoB,6VACpB,IAA2B,mVAC3B,IAAmB,sNACnB,IAA0B,gOAC1B,IAAqB,0GACrB,IAAkB,gLAClB,IAAyB,oJACzB,IAAoB,6QACpB,IAA2B,8PAC3B,IAAoB,kOACpB,IAA2B,uQAC3B,IAAgB,qRAChB,IAAmB,0WACnB,IAAc,8HACd,IAAkB,qXAClB,IAAa,yeACb,IAAoB,0/BACpB,IAAe,kJACf,IAAiB,8EACjB,IAAkB,0gBAClB,IAAyB,+jBACzB,IAAW,0WACX,IAAc,u1BACd,IAAc,wkBACd,IAAsB,ytBACtB,IAAiB,8FACjB,IAAqB,0HACrB,IAAqB,8GACrB,IAAqB,qMACrB,IAAwB,2GACxB,IAA4B,kPAC5B,IAAuB,uJACvB,IAAqB,mGACrB,IAAwB,+gBACxB,IAAyB,2dACzB,IAAqB,8JACrB,IAAyB,yMACzB,IAAoB,iJACpB,IAA2B,qMAC3B,IAAwB,2LACxB,IAAwB,0JACxB,IAAuB,kLACvB,IAA2B,mMAC3B,IAA+B,mLAC/B,IAA8B,oKAC9B,IAAkB,6MAClB,IAAkB,8NAClB,IAAU,oUACV,IAAc,iQACd,IAAgB,8NAChB,IAAqB,wOACrB,IAAc,gKACd,IAAkB,oEAClB,IAAkB,uEAClB,IAAmB,8EACnB,IAAgB,qEAChB,IAAuB,qaACvB,IAAiC,0YACjC,IAA8B,6lBAC9B,IAAmB,+fACnB,IAAiB,wcACjB,IAAqB,iYACrB,IAAgB,0mBAChB,IAAsB,uYACtB,GAAe,iUACf,IAAkB,+bAClB,IAAsB,6dACtB,IAAuB,gYACvB,IAA6B,kZAC7B,IAA6B,4aAC7B,IAA0B,+YAC1B,IAAc,iGACd,GAAqB,+GACrB,IAAU,2DACV,IAAe,wFACf,IAAmB,qJACnB,IAAiB,kJACjB,IAAc,iGACd,IAAe,wEACf,IAAc,8FACd,IAAgB,oLAChB,IAAmB,mHACnB,IAA0B,oSAC1B,IAAU,4PACV,IAAiB,kfACjB,IAAY,0YACZ,IAAkB,mGAClB,IAAqB,mCACrB,IAAgB,iGAChB,IAAc,gBACd,IAAkB,gBAClB,IAAyB,mCACzB,IAAqB,mCACrB,IAAuB,gBACvB,IAAqB,gBACrB,IAAkB,8DAClB,IAAc,kDACd,IAAY,iOACZ,IAAiB,yKACjB,IAAkB,kTAClB,IAAmB,kSACnB,IAAmB,mOACnB,IAA0B,sRAC1B,IAAW,uUACX,IAAgB,wVAChB,IAAuB,kZACvB,IAAyB,kWACzB,IAAgB,6XAChB,IAAuB,shBACvB,IAAmB,0VACnB,IAA0B,2gBAC1B,IAAe,2YACf,IAAsB,wjBACtB,IAAkB,+vBAClB,IAAgB,4VAChB,IAAuB,kYACvB,IAAkB,onCAClB,IAAqB,mtCACrB,IAAkB,seAClB,IAAe,kXACf,IAAsB,sZACtB,IAAiB,idACjB,IAAwB,ghBACxB,IAAoB,muBACpB,IAAkB,yJAClB,IAAa,4dACb,IAAgB,8RAChB,IAAuB,kbACvB,IAAa,2SACb,IAAoB,4YACpB,IAAa,iuBACb,IAAiB,yjBACjB,IAAsB,wlBACtB,IAAoB,snBACpB,IAAU,gIACV,IAAiB,4YACjB,IAAkB,iIAClB,IAAyB,sXACzB,IAAY,qdACZ,IAAmB,6gBACnB,IAAa,8uBACb,IAAY,+jBACZ,IAAe,qJACf,IAAsB,yQACtB,IAAY,q8BACZ,IAAY,oLACZ,IAAa,qoBACb,IAA6B,4LAC7B,IAAgB,yfAChB,IAAa,o4BACb,IAAY,wsCACZ,IAAS,yJACT,IAAgB,8QAChB,IAAyB,yNACzB,IAAa,6WACb,IAAc,0HACd,IAAmB,gSACnB,IAA0B,8dAC1B,IAAoB,wKACpB,IAA2B,mMAC3B,IAA2B,yOAC3B,IAAqB,kLACrB,IAAsB,0aACtB,IAAU,6JACV,GAAiB,oLACjB,IAA0B,wHAC1B,IAAwB,mIACxB,IAA0B,oHAC1B,IAAwB,6HACxB,IAAa,yNACb,IAAa,w7CACb,IAAa,itBACb,IAAoB,iKACpB,IAAc,0SACd,IAAW,yQACX,IAAY,gnCACZ,IAAY,gVACZ,GAAY,iDACZ,IAAe,sJACf,IAAsB,mKACtB,IAAkB,6IAClB,IAAyB,qOACzB,IAAgB,mRAChB,IAAuB,wTACvB,IAAoB,gEACpB,IAA2B,wGAC3B,IAAmB,2NACnB,IAA0B,8NAC1B,IAAe,mJACf,IAAsB,0MACtB,IAAmB,sFACnB,IAAS,0TACT,IAAc,4SACd,IAAmB,+mBACnB,IAA0B,yuBAC1B,IAAa,mHACb,IAAY,ufACZ,IAAmB,0nBACnB,IAAW,2IACX,IAAiB,qFACjB,IAAe,0FACf,IAAkB,+XAClB,IAAgB,4VAChB,IAAY,kSACZ,IAAmB,yEACnB,IAAiB,qUACjB,IAAc,sYACd,IAAiB,mXACjB,IAAwB,6PACxB,IAAwB,qPACxB,IAAkB,mTAClB,IAAkB,uYAClB,IAAyB,+OACzB,IAAmB,qXACnB,IAAiB,4lBACjB,IAAsB,2TACtB,IAAwB,gVACxB,IAAwB,0VACxB,IAAmB,ySACnB,IAAwB,2dACxB,IAAgB,wEAChB,IAAgB,8OAChB,IAAiB,oCACjB,IAAqB,sNACrB,IAAsB,sDACtB,IAAqB,8EACrB,IAAuB,gFACvB,IAAmB,2OACnB,IAA0B,kNAC1B,IAAoB,wHACpB,IAAwB,gVACxB,IAAyB,mJACzB,IAAwB,2KACxB,IAA0B,gPAC1B,IAAkB,qHAClB,IAAqB,8JACrB,IAAqB,wYACrB,IAAkB,yJAClB,IAAuB,2JACvB,IAAsB,gWACtB,IAAuB,oOACvB,IAAsB,4IACtB,IAAsB,4PACtB,IAAwB,4UACxB,IAAoB,mIACpB,IAAiB,kLACjB,IAAS,0OACT,IAAa,kLACb,IAAgB,0VAChB,IAAW,2GACX,IAAa,gOACb,IAAa,mKACb,IAAgB,kYAChB,IAAoB,6TACpB,IAAgB,oMAChB,IAAkB,0OAClB,IAAc,sHACd,IAAiB,mNACjB,IAAgB,mMAChB,IAAuB,8MACvB,IAAyB,uTACzB,IAAgB,oLAChB,IAAuB,kUACvB,IAAyB,mYACzB,IAAoB,2GACpB,IAAqB,kKACrB,IAAsB,soBACtB,IAAiB,4WACjB,IAAwB,kWACxB,IAAgB,4HAChB,IAAuB,gKACvB,IAAc,kKACd,IAAqB,sOACrB,IAAkB,uHAClB,IAAe,iJACf,IAAsB,qLACtB,IAAwB,kJACxB,IAA6B,gZAC7B,IAAiB,0JACjB,IAAwB,mLACxB,IAAkB,2YAClB,IAAmB,yQACnB,IAA0B,gSAC1B,IAAgB,kMAChB,IAAuB,wLACvB,IAAe,2CACf,IAAsB,gEACtB,IAAkB,2CAClB,IAAyB,8DACzB,IAAgB,6CAChB,IAAuB,gEACvB,IAAe,iMACf,IAAsB,0RACtB,IAAiB,mDACjB,IAAwB,iEACxB,IAAmB,2DACnB,IAAuB,ySACvB,IAA8B,+WAC9B,GAA0B,kIAC1B,IAA0B,iFAC1B,IAAiC,qGACjC,IAAa,0GACb,IAAoB,uJACpB,IAAiB,sFACjB,IAAwB,qGACxB,IAAc,wDACd,IAAqB,8iBACrB,IAAqB,2GACrB,IAAkB,4FAClB,IAAyB,oHACzB,IAAkB,wDAClB,IAAc,8EACd,IAAqB,4GACrB,IAAgB,uFAChB,IAAuB,iIACvB,IAAkB,iDAClB,IAAyB,kEACzB,IAAe,6DACf,IAAsB,6FACtB,IAAoB,iDACpB,IAA2B,iEAC3B,IAAyB,gDACzB,IAAuB,gFACvB,IAAgB,gCAChB,IAAuB,kDACvB,IAAc,sOACd,IAAqB,uJACrB,IAAW,kiBACX,IAAY,kYACZ,IAAoB,gQACpB,IAAW,mnDACX,IAAc,43CACd,IAAqB,+uDACrB,IAAkB,48DAClB,IAAS,glBACT,IAAe,wYACf,IAAa,0JACb,IAAoB,sNACpB,IAAgB,qaAChB,IAAiB,wDACjB,IAAgB,0NAChB,IAAe,6BACf,IAAkB,+FAClB,IAAiB,6CACjB,IAAgB,4IAChB,IAAe,2YACf,IAAgB,oEAChB,IAAkB,6DAClB,IAAsB,gHACtB,IAAmB,yJACnB,IAAU,2UACV,IAAiB,yWACjB,IAAS,6oBACT,IAAW,mFACX,IAAa,8FACb,IAAU,8RACV,IAAU,mHACV,IAAc,y8BACd,IAAgB,yDAChB,IAAoB,mJACpB,IAA2B,iKAC3B,IAA2B,6IAC3B,IAAkC,6JAClC,IAAuB,2FACvB,IAAqB,kMACrB,IAA4B,6VAC5B,IAA4B,2LAC5B,IAAmC,2VACnC,IAAY,+OACZ,IAAkB,2QAClB,IAAyB,8VACzB,IAAoB,4dACpB,IAAsB,sJACtB,IAAmB,uTACnB,IAAgB,4TAChB,IAAuB,8VACvB,IAAkB,iNAClB,IAAe,sRACf,IAAS,u/BACT,IAAc,qKACd,IAAqB,qLACrB,IAAe,yKACf,IAAoB,4WACpB,IAAyB,uYACzB,IAAuB,4gBACvB,IAAW,+NACX,IAAiB,4SACjB,IAAwB,yPACxB,IAAiB,oSACjB,IAAwB,wOACxB,IAAkB,gJAClB,IAAkB,qXAClB,IAAqB,2hBACrB,IAAW,kFACX,IAAgB,4HAChB,IAAuB,4NACvB,IAAiB,6RACjB,IAAsB,+UACtB,IAAqB,oYACrB,IAAoB,+XACpB,IAAgB,4MAChB,IAAuB,6SACvB,IAAiB,2JACjB,IAAgB,2KAChB,IAAuB,uPACvB,IAAc,oOACd,IAAqB,qgBACrB,IAAkB,mYAClB,IAAkB,wXAClB,IAAkB,uWAClB,IAAuB,6WACvB,IAAe,gMACf,IAAsB,gRACtB,IAAe,ioCACf,IAAe,mTACf,IAAkB,4OAClB,IAAiB,sSACjB,IAAwB,sXACxB,IAAe,6WACf,IAAsB,iSACtB,IAA6B,qgBAC7B,IAAe,uaACf,IAAsB,6dACtB,IAAe,gaACf,IAAiB,8XACjB,IAAwB,0YACxB,IAAe,iGACf,IAAU,yLACV,IAAmB,wMACnB,IAAiB,wMACjB,IAAsB,weACtB,IAAc,+MACd,IAAW,0hBACX,IAAoB,0YACpB,IAAqB,4YACrB,IAAkB,iaAClB,IAAU,ooDACV,IAAmB,6QACnB,IAAwB,4SACxB,IAA6B,2TAC7B,IAAwB,qdACxB,IAAiB,6/BACjB,IAAgB,ghBAChB,IAAiB,mkBACjB,IAAiB,2lBACjB,IAAsB,+VACtB,IAA6B,kvBAC7B,IAAsB,8WACtB,IAA2B,uiBAC3B,IAAoB,oxBACpB,IAAwB,qkBACxB,IAAsB,kkBACtB,IAAkB,2nBAClB,IAA8B,0zCAC9B,IAAyB,61BACzB,IAA4B,k8BAC5B,IAAwB,0kCACxB,IAAwB,mkDACxB,IAA6B,kuDAC7B,IAAoB,k5BACpB,IAAkB,8xBAClB,IAAkB,m2BAClB,IAAuB,m7CACvB,IAAuB,o/BACvB,IAAkB,woBAClB,IAAuB,weACvB,IAAqB,22BACrB,IAAmB,uhBACnB,IAAuB,4nBACvB,IAAqB,ynBACrB,IAAoB,2WACpB,IAAkB,2pBAClB,IAAyB,qgBACzB,GAAS,u5BACT,IAAY,8yBACZ,IAAe,ouCACf,IAAc,2gCACd,IAAc,o5BACd,IAAc,o9BACd,IAAY,0kCACZ,IAAa,4+BACb,IAAgB,yrCAChB,IAAe,+kCACf,IAAa,usCACb,IAAY,qXACZ,IAAe,ooBACf,IAAa,k3CACb,IAAa,iaACb,IAAY,wgBACZ,IAAY,iqBACZ,IAAY,8SACZ,IAAgB,oYAChB,IAAoB,kcACpB,IAAkB,oQAClB,IAAiB,yeACjB,IAAc,0pCACd,IAAiB,yWACjB,IAAgB,qXAChB,IAA6B,wxBAC7B,IAAa,oOACb,IAAoB,sMACpB,IAAsB,+PACtB,IAA8B,uSAC9B,IAA4B,gRAC5B,IAAuB,oTACvB,IAAa,gGACb,IAAoB,0LACpB,IAAU,6TACV,IAAe,6VACf,IAAmB,ubACnB,IAAmB,yaACnB,IAAwB,odACxB,IAAoB,ubACpB,IAAiB,yaACjB,IAAqB,kdACrB,IAAgB,2tBAChB,IAAe,kdACf,IAAa,2mCACb,IAAc,+mBACd,IAAkB,wmBAClB,IAAgB,+kBAChB,IAAe,0ZACf,IAAa,udACb,IAAc,gcACd,IAAiB,8pBACjB,IAAgB,whBAChB,IAAkB,oVAClB,IAAc,ydACd,IAAmB,4PACnB,IAAwB,8QACxB,IAAuB,0lBACvB,IAA2B,wjBAC3B,IAAmB,4PACnB,IAAwB,qRACxB,IAAuB,4lBACvB,IAA2B,8jBAC3B,IAAmB,8OACnB,IAAwB,wQACxB,IAAuB,wiBACvB,IAA2B,+iBAC3B,IAAmB,sHACnB,IAAwB,kKACxB,IAAuB,icACvB,IAA2B,qbAC3B,IAA8B,yOAC9B,IAAiC,mgBACjC,IAA6B,ihBAC7B,IAAqB,kNACrB,IAA4B,8XAC5B,IAAyB,2MACzB,IAAc,muBACd,IAAe,kzBACf,IAAe,k3BACf,IAAsB,ykCACtB,IAAiB,qeACjB,IAAsB,4eACtB,IAAsB,8gBACtB,GAAiB,iHACjB,IAAkB,yHAClB,IAAyB,kFACzB,IAAoB,gCACpB,IAAoB,iBACpB,IAAgB,sIAChB,IAAuB,6FACvB,IAAmB,iEACnB,IAAmB,mGACnB,IAAwB,uGACxB,IAAuB,iOACvB,IAAsB,67BACtB,IAAuB,mDACvB,IAA2B,sJAC3B,IAAc,4JACd,IAAW,qWACX,IAAe,ipBACf,IAAoB,mqBACpB,IAAe,6ZACf,IAAe,09BACf,IAAU,8JACV,IAAkB,iEAClB,IAAY,kNACZ,IAAiB,sNACjB,IAAwB,wXACxB,IAAiB,wWACjB,IAAwB,mgBACxB,IAAe,ykCACf,IAAsB,2uCACtB,IAAmB,8fACnB,IAAa,kfACb,IAAS,0JACT,IAAU,8RACV,IAAW,wQACX,IAAW,qfACX,IAAa,2WACb,IAAU,4MACV,IAAa,6jBACb,IAAmB,kOACnB,IAAmB,qyBACnB,IAAyB,0IACzB,IAAe,kSACf,IAAU,qWACV,IAAW,yWACX,IAAU,sTACV,IAAY,smBACZ,IAAY,iKACZ,IAAmB,8MACnB,IAAa,6IACb,IAAoB,sRACpB,IAAiB,oYACjB,IAAkB,smBAClB,IAAqB,gXACrB,IAAkB,2WAClB,IAAe,4lBACf,IAAiB,6QACjB,IAAkB,6SAClB,IAAuB,yIACvB,IAAmB,iTACnB,IAAkB,kRAClB,IAAiB,8iBCvxO5B,KAEI,EAAI,aAAG,MAAM,EAGb,EAAK,cAAG,cAAc,EACtB,EAAO,gBAAG,WAAW,EAajB,EAAa,eAAqB,EAAI,GACtC,EAAc,gBAAsB,EAAI,8BAI7C,EAAG,SACG,EADN,CACE,OAAI,0BAA2B,EAAK,OADtC,CAAG,WAAH,EAAG,UAAQ,CAAa,KAAxB,EAAG,WAA+B,CAAc,KAAhD,EAAG,UAAgD,EAAO,SAA1D,CAAG,gCAHE,CCrBR,IAAM,IAAe,IAAI,IAAI,CAC3B,IACA,IACA,KACA,OACA,MACA,KACA,IACA,KACA,OACA,KACA,IACA,MACA,IACA,QACA,OACA,SACA,MACA,MACA,IACA,IACF,CAAC,EAEK,IAAyB,IAAI,IAAI,CAAC,QAAS,SAAU,SAAU,SAAU,QAAS,UAAU,CAAC,EAE7F,IAAoB,IAAI,IAAI,CAAC,aAAc,OAAQ,OAAO,CAAC,EAC3D,IAAoB,IAAI,IAAI,CAAC,OAAQ,MAAO,SAAU,OAAO,CAAC,EAC9D,IAAqB,IAAI,IAAI,CAAC,QAAS,SAAU,UAAW,MAAM,CAAC,EAS5D,GAAc,GACzB,EACG,QAAQ,KAAM,OAAO,EACrB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,OAAO,EAEpB,IAAc,GAA0B,CAC5C,IAAM,EAAU,EAAK,KAAK,EAE1B,GAAI,CAAC,EAAS,MAAO,GAIrB,GAFI,EAAQ,WAAW,GAAG,GAEtB,EAAQ,WAAW,GAAG,GAAK,CAAC,EAAQ,WAAW,IAAI,EAAG,MAAO,GAEjE,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,EAAS,6BAA6B,EAE1D,OAAO,IAAmB,IAAI,EAAI,QAAQ,CAC5C,MAAQ,CACN,MAAO,EACT,CACF,EAEM,IAA6B,GAAqB,CACtD,IAAK,IAAM,KAAa,MAAM,KAAK,EAAQ,UAAU,EAAG,CACtD,IAAM,EAAO,EAAU,KAAK,YAAY,EAClC,EAAQ,EAAU,MAClB,EAAW,EAAQ,UAAY,IAGrC,GAAI,EAFc,IAAkB,IAAI,CAAI,GAAM,GAAY,IAAkB,IAAI,CAAI,IAEtE,EAAK,WAAW,IAAI,GAAK,IAAS,SAAW,IAAS,SAAU,CAChF,EAAQ,gBAAgB,EAAU,IAAI,EACtC,QACF,CAEI,IAAS,QAAU,CAAC,IAAW,CAAK,GACtC,EAAQ,gBAAgB,EAAU,IAAI,CAE1C,CAEI,EAAQ,UAAY,KAAO,EAAQ,aAAa,QAAQ,IAAM,UAChE,EAAQ,aAAa,MAAO,qBAAqB,CAErD,EAEM,GAAgB,GAAe,CACnC,IAAK,IAAM,KAAS,MAAM,KAAK,EAAK,UAAU,EAAG,CAC/C,GAAI,EAAM,WAAa,KAAK,UAC1B,SAGF,GAAI,EAAM,WAAa,KAAK,aAAc,CACxC,EAAM,OAAO,EACb,QACF,CAEA,IAAM,EAAU,EACV,EAAU,EAAQ,QAExB,GAAI,IAAuB,IAAI,CAAO,EAAG,CACvC,EAAQ,OAAO,EACf,QACF,CAIA,GAFA,GAAa,CAAO,EAEhB,CAAC,IAAa,IAAI,CAAO,EAAG,CAC9B,EAAQ,YAAY,GAAG,MAAM,KAAK,EAAQ,UAAU,CAAC,EACrD,QACF,CAEA,IAA0B,CAAO,CACnC,CACF,EAYa,GAAgB,GAA6C,CACxE,IAAM,EAAQ,GAAS,GAEvB,GAAI,CAAC,EAAO,MAAO,GAEnB,GAAI,OAAO,SAAa,IACtB,OAAO,GAAW,CAAK,EAGzB,IAAM,EAAW,SAAS,cAAc,UAAU,EAIlD,MAHA,GAAS,UAAY,EACrB,GAAa,EAAS,OAAO,EAEtB,EAAS,SAClB,4EC1IA,aAIU,EAAI,aAAG,EAAE,EAIb,EAAU,EAAO,EAAK,EAE1B,OAAc,GACZ,EAAU,GACZ,CAAC,MAEK,EAAS,QAAY,CAAO,EAAG,GAAa,EAAI,GAAI,GAAW,EAAI,GAAI,EAAE,OAGhF,EAAI,SAAJ,MAAI,EAA6B,CAAS,QAA1C,CAAI,MAAJ,CAAI,KAFG,CCPR,IAAMC,GAAM,KAAK,IACXC,GAAM,KAAK,IACXC,GAAQ,KAAK,MACbC,GAAQ,KAAK,MACb,GAAe,IAAM,CACzB,EAAG,EACH,EAAG,CACL,GACM,IAAkB,CACtB,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACA,SAASC,IAAM,EAAO,EAAO,EAAK,CAChC,OAAOH,GAAI,EAAOD,GAAI,EAAO,CAAG,CAAC,CACnC,CACA,SAAS,GAAS,EAAO,EAAO,CAC9B,OAAO,OAAO,GAAU,WAAa,EAAM,CAAK,EAAI,CACtD,CACA,SAAS,GAAQ,EAAW,CAC1B,OAAO,EAAU,MAAM,GAAG,EAAE,EAC9B,CACA,SAAS,GAAa,EAAW,CAC/B,OAAO,EAAU,MAAM,GAAG,EAAE,EAC9B,CACA,SAAS,GAAgB,EAAM,CAC7B,OAAO,IAAS,IAAM,IAAM,GAC9B,CACA,SAAS,GAAc,EAAM,CAC3B,OAAO,IAAS,IAAM,SAAW,OACnC,CACA,SAAS,GAAY,EAAW,CAC9B,IAAM,EAAY,EAAU,GAC5B,OAAO,IAAc,KAAO,IAAc,IAAM,IAAM,GACxD,CACA,SAAS,GAAiB,EAAW,CACnC,OAAO,GAAgB,GAAY,CAAS,CAAC,CAC/C,CACA,SAAS,IAAkB,EAAW,EAAO,EAAK,CAC5C,IAAQ,IAAK,KACf,EAAM,IAER,IAAM,EAAY,GAAa,CAAS,EAClC,EAAgB,GAAiB,CAAS,EAC1C,EAAS,GAAc,CAAa,EACtC,EAAoB,IAAkB,IAAM,KAAe,EAAM,MAAQ,SAAW,QAAU,OAAS,IAAc,QAAU,SAAW,MAI9I,OAHI,EAAM,UAAU,GAAU,EAAM,SAAS,KAC3C,EAAoB,GAAqB,CAAiB,GAErD,CAAC,EAAmB,GAAqB,CAAiB,CAAC,CACpE,CACA,SAAS,IAAsB,EAAW,CACxC,IAAM,EAAoB,GAAqB,CAAS,EACxD,MAAO,CAAC,GAA8B,CAAS,EAAG,EAAmB,GAA8B,CAAiB,CAAC,CACvH,CACA,SAAS,GAA8B,EAAW,CAChD,OAAO,EAAU,SAAS,OAAO,EAAI,EAAU,QAAQ,QAAS,KAAK,EAAI,EAAU,QAAQ,MAAO,OAAO,CAC3G,CACA,IAAM,GAAc,CAAC,OAAQ,OAAO,EAC9B,GAAc,CAAC,QAAS,MAAM,EAC9B,IAAc,CAAC,MAAO,QAAQ,EAC9B,IAAc,CAAC,SAAU,KAAK,EACpC,SAAS,IAAY,EAAM,EAAS,EAAK,CACvC,OAAQ,EAAR,CACE,IAAK,MACL,IAAK,SAEH,OADI,EAAY,EAAU,GAAc,GACjC,EAAU,GAAc,GACjC,IAAK,OACL,IAAK,QACH,OAAO,EAAU,IAAc,IACjC,QACE,MAAO,CAAC,CACZ,CACF,CACA,SAAS,IAA0B,EAAW,EAAe,EAAW,EAAK,CAC3E,IAAM,EAAY,GAAa,CAAS,EACpC,EAAO,IAAY,GAAQ,CAAS,EAAG,IAAc,QAAS,CAAG,EAOrE,OANI,IACF,EAAO,EAAK,IAAI,GAAQ,EAAO,IAAM,CAAS,EAC1C,IACF,EAAO,EAAK,OAAO,EAAK,IAAI,EAA6B,CAAC,IAGvD,CACT,CACA,SAAS,GAAqB,EAAW,CACvC,IAAM,EAAO,GAAQ,CAAS,EAC9B,OAAO,IAAgB,GAAQ,EAAU,MAAM,EAAK,MAAM,CAC5D,CACA,SAAS,IAAoB,EAAS,CAEpC,MAAO,CACL,IAAqB,EAAQ,KAA8B,EAC3D,MAAyB,EAAQ,OAAkC,EACnE,OAA2B,EAAQ,QAAoC,EACvE,KAAuB,EAAQ,MAAgC,CACjE,CACF,CACA,SAAS,IAAiB,EAAS,CACjC,OAAO,OAAO,GAAY,SAA0C,CAClE,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,CACR,EALqC,IAAoB,CAAO,CAMlE,CACA,SAAS,GAAiB,EAAM,CAC9B,GAAM,CACJ,IACA,IACA,QACA,UACE,EACJ,MAAO,CACL,QACA,SACA,IAAK,EACL,KAAM,EACN,MAAO,EAAI,EACX,OAAQ,EAAI,EACZ,IACA,GACF,CACF,CClIA,SAAS,GAA2B,EAAM,EAAW,EAAK,CACxD,GAAI,CACF,YACA,YACE,EACE,EAAW,GAAY,CAAS,EAChC,EAAgB,GAAiB,CAAS,EAC1C,EAAc,GAAc,CAAa,EACzC,EAAO,GAAQ,CAAS,EACxB,EAAa,IAAa,IAC1B,EAAU,EAAU,EAAI,EAAU,MAAQ,EAAI,EAAS,MAAQ,EAC/D,EAAU,EAAU,EAAI,EAAU,OAAS,EAAI,EAAS,OAAS,EACjE,EAAc,EAAU,GAAe,EAAI,EAAS,GAAe,EACrE,EACJ,OAAQ,EAAR,CACE,IAAK,MACH,EAAS,CACP,EAAG,EACH,EAAG,EAAU,EAAI,EAAS,MAC5B,EACA,MACF,IAAK,SACH,EAAS,CACP,EAAG,EACH,EAAG,EAAU,EAAI,EAAU,MAC7B,EACA,MACF,IAAK,QACH,EAAS,CACP,EAAG,EAAU,EAAI,EAAU,MAC3B,EAAG,CACL,EACA,MACF,IAAK,OACH,EAAS,CACP,EAAG,EAAU,EAAI,EAAS,MAC1B,EAAG,CACL,EACA,MACF,QACE,EAAS,CACP,EAAG,EAAU,EACb,EAAG,EAAU,CACf,CACJ,CACA,IAAM,EAAY,GAAa,CAAS,EAIxC,OAHI,IACF,EAAO,IAAkB,GAAe,IAAc,MAAQ,EAAI,KAAO,GAAO,EAAa,GAAK,IAE7F,CACT,CAUA,eAAe,IAAe,EAAO,EAAS,CAExC,IAAY,IAAK,KACnB,EAAU,CAAC,GAEb,GAAM,CACJ,IACA,IACA,WACA,QACA,WACA,YACE,EACE,CACJ,WAAW,oBACX,eAAe,WACf,iBAAiB,WACjB,cAAc,GACd,UAAU,GACR,GAAS,EAAS,CAAK,EACrB,EAAgB,IAAiB,CAAO,EAExC,EAAU,EAAS,EADN,IAAmB,WAAa,YAAc,WACb,GAC9C,EAAqB,GAAiB,MAAM,EAAS,gBAAgB,CACzE,QAAmC,MAAO,EAAS,WAAa,KAAO,IAAK,GAAI,EAAS,UAAU,CAAO,IAAsC,GAAQ,EAAU,EAAQ,gBAAmB,MAAO,EAAS,oBAAsB,KAAO,IAAK,GAAI,EAAS,mBAAmB,EAAS,QAAQ,GAChS,WACA,eACA,UACF,CAAC,CAAC,EACI,EAAO,IAAmB,WAAa,CAC3C,IACA,IACA,MAAO,EAAM,SAAS,MACtB,OAAQ,EAAM,SAAS,MACzB,EAAI,EAAM,UACJ,EAAe,MAAO,EAAS,iBAAmB,KAAO,IAAK,GAAI,EAAS,gBAAgB,EAAS,QAAQ,GAC5G,EAAe,MAAO,EAAS,WAAa,KAAO,IAAK,GAAI,EAAS,UAAU,CAAY,IAAQ,MAAO,EAAS,UAAY,KAAO,IAAK,GAAI,EAAS,SAAS,CAAY,IAAO,CACxL,EAAG,EACH,EAAG,CACL,EACM,EAAoB,GAAiB,EAAS,sDAAwD,MAAM,EAAS,sDAAsD,CAC/K,WACA,OACA,eACA,UACF,CAAC,EAAI,CAAI,EACT,MAAO,CACL,KAAM,EAAmB,IAAM,EAAkB,IAAM,EAAc,KAAO,EAAY,EACxF,QAAS,EAAkB,OAAS,EAAmB,OAAS,EAAc,QAAU,EAAY,EACpG,MAAO,EAAmB,KAAO,EAAkB,KAAO,EAAc,MAAQ,EAAY,EAC5F,OAAQ,EAAkB,MAAQ,EAAmB,MAAQ,EAAc,OAAS,EAAY,CAClG,CACF,CAGA,IAAM,IAAkB,GASlBK,IAAkB,MAAO,EAAW,EAAU,IAAW,CAC7D,GAAM,CACJ,YAAY,SACZ,WAAW,WACX,aAAa,CAAC,EACd,YACE,EACE,EAA6B,EAAS,eAAiB,EAAW,CACtE,GAAG,EACH,kBACF,EACM,EAAM,MAAO,EAAS,OAAS,KAAO,IAAK,GAAI,EAAS,MAAM,CAAQ,GACxE,EAAQ,MAAM,EAAS,gBAAgB,CACzC,YACA,WACA,UACF,CAAC,EACG,CACF,IACA,KACE,GAA2B,EAAO,EAAW,CAAG,EAChD,EAAoB,EACpB,EAAa,EACX,EAAiB,CAAC,EACxB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAC1C,IAAM,EAAoB,EAAW,GACrC,GAAI,CAAC,EACH,SAEF,GAAM,CACJ,OACA,MACE,EACE,CACJ,EAAG,EACA,EACH,OACA,SACE,MAAM,EAAG,CACX,IACA,IACA,iBAAkB,EAClB,UAAW,EACX,WACA,iBACA,QACA,SAAU,EACV,SAAU,CACR,YACA,UACF,CACF,CAAC,EACD,EAAI,GAAwB,EAC5B,EAAI,GAAwB,EAC5B,EAAe,GAAQ,CACrB,GAAG,EAAe,GAClB,GAAG,CACL,EACI,GAAS,EAAa,MACxB,IACI,OAAO,GAAU,WACf,EAAM,YACR,EAAoB,EAAM,WAExB,EAAM,QACR,EAAQ,EAAM,QAAU,GAAO,MAAM,EAAS,gBAAgB,CAC5D,YACA,WACA,UACF,CAAC,EAAI,EAAM,OAEZ,UAGG,GAA2B,EAAO,EAAmB,CAAG,GAE9D,EAAI,GAER,CACA,MAAO,CACL,IACA,IACA,UAAW,EACX,WACA,gBACF,CACF,EAgMMC,IAAO,SAAU,EAAS,CAI9B,OAHI,IAAY,IAAK,KACnB,EAAU,CAAC,GAEN,CACL,KAAM,OACN,UACA,MAAM,GAAG,EAAO,CACd,IAAI,EACJ,GAAM,CACJ,YACA,iBACA,QACA,mBACA,WACA,YACE,EACE,CACJ,SAAU,EAAgB,GAC1B,UAAW,EAAiB,GAC5B,mBAAoB,EACpB,mBAAmB,UACnB,4BAA4B,OAC5B,gBAAgB,GAChB,GAAG,GACD,GAAS,EAAS,CAAK,EAM3B,IAAK,EAAwB,EAAe,QAAU,MAAQ,EAAsB,gBAClF,MAAO,CAAC,EAEV,IAAM,EAAO,GAAQ,CAAS,EACxB,EAAkB,GAAY,CAAgB,EAC9C,EAAkB,GAAQ,CAAgB,IAAM,EAChD,EAAM,MAAO,EAAS,OAAS,KAAO,IAAK,GAAI,EAAS,MAAM,EAAS,QAAQ,GAC/E,EAAqB,IAAgC,GAAmB,CAAC,EAAgB,CAAC,GAAqB,CAAgB,CAAC,EAAI,IAAsB,CAAgB,GAC1K,EAA+B,IAA8B,OAC/D,CAAC,GAA+B,GAClC,EAAmB,KAAK,GAAG,IAA0B,EAAkB,EAAe,EAA2B,CAAG,CAAC,EAEvH,IAAM,EAAa,CAAC,EAAkB,GAAG,CAAkB,EACrD,EAAW,MAAM,EAAS,eAAe,EAAO,CAAqB,EACrE,EAAY,CAAC,EACf,EAAyC,EAAe,MAA8C,WAAc,CAAC,EAIzH,GAHI,GACF,EAAU,KAAK,EAAS,EAAK,EAE3B,EAAgB,CAClB,IAAM,EAAQ,IAAkB,EAAW,EAAO,CAAG,EACrD,EAAU,KAAK,EAAS,EAAM,IAAK,EAAS,EAAM,GAAG,CACvD,CAOA,GANA,EAAgB,CAAC,GAAG,EAAe,CACjC,YACA,WACF,CAAC,EAGG,CAAC,EAAU,MAAM,GAAQ,GAAQ,CAAC,EAAG,CAEvC,IAAM,GAAuC,EAAe,MAA+C,OAAU,GAAK,EACpH,EAAgB,EAAW,GACjC,GAAI,IAEE,EAD4B,IAAmB,aAAc,IAAoB,GAAY,CAAa,IAI9G,EAAc,MAAM,GAAK,GAAY,EAAE,SAAS,IAAM,EAAkB,EAAE,UAAU,GAAK,EAAI,EAAI,GAE/F,MAAO,CACL,KAAM,CACJ,MAAO,EACP,UAAW,CACb,EACA,MAAO,CACL,UAAW,CACb,CACF,EAMJ,IAAI,EAA0C,EAAc,OAAO,GAAK,EAAE,UAAU,IAAM,CAAC,EAAE,MAAM,EAAG,IAAM,EAAE,UAAU,GAAK,EAAE,UAAU,EAAE,EAAE,IAA6C,UAG1L,GAAI,CAAC,EACH,OAAQ,EAAR,CACE,IAAK,UACH,CAEE,IAAM,EAAsC,EAAc,OAAO,GAAK,CACpE,GAAI,EAA8B,CAChC,IAAM,EAAkB,GAAY,EAAE,SAAS,EAC/C,OAAO,IAAoB,GAG3B,IAAoB,GACtB,CACA,MAAO,EACT,CAAC,EAAE,IAAI,GAAK,CAAC,EAAE,UAAW,EAAE,UAAU,OAAO,GAAY,EAAW,CAAC,EAAE,QAAQ,EAAK,IAAa,EAAM,EAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAE,EAAE,KAA8C,GAC5L,IACF,EAAiB,GAEnB,KACF,CACF,IAAK,mBACH,EAAiB,EACjB,KACJ,CAEF,GAAI,IAAc,EAChB,MAAO,CACL,MAAO,CACL,UAAW,CACb,CACF,CAEJ,CACA,MAAO,CAAC,CACV,CACF,CACF,EAoMM,IAA2B,IAAI,IAAI,CAAC,OAAQ,KAAK,CAAC,EAKxD,eAAe,IAAqB,EAAO,EAAS,CAClD,GAAM,CACJ,YACA,WACA,YACE,EACE,EAAM,MAAO,EAAS,OAAS,KAAO,IAAK,GAAI,EAAS,MAAM,EAAS,QAAQ,GAC/E,EAAO,GAAQ,CAAS,EACxB,EAAY,GAAa,CAAS,EAClC,EAAa,GAAY,CAAS,IAAM,IACxC,EAAgB,IAAY,IAAI,CAAI,EAAI,GAAK,EAC7C,EAAiB,GAAO,EAAa,GAAK,EAC1C,EAAW,GAAS,EAAS,CAAK,EAGpC,CACF,WACA,YACA,iBACE,OAAO,GAAa,SAAW,CACjC,SAAU,EACV,UAAW,EACX,cAAe,IACjB,EAAI,CACF,SAAU,EAAS,UAAY,EAC/B,UAAW,EAAS,WAAa,EACjC,cAAe,EAAS,aAC1B,EAIA,OAHI,GAAa,OAAO,GAAkB,WACxC,EAAY,IAAc,MAAQ,EAAgB,GAAK,GAElD,EAAa,CAClB,EAAG,EAAY,EACf,EAAG,EAAW,CAChB,EAAI,CACF,EAAG,EAAW,EACd,EAAG,EAAY,CACjB,CACF,CASA,IAAMC,IAAS,SAAU,EAAS,CAIhC,OAHI,IAAY,IAAK,KACnB,EAAU,GAEL,CACL,KAAM,SACN,UACA,MAAM,GAAG,EAAO,CACd,IAA2B,EAC3B,GAAM,CACJ,IACA,IACA,YACA,kBACE,EACE,EAAa,MAAM,IAAqB,EAAO,CAAO,EAO5D,OAHI,IAAwC,EAAe,QAAiD,YAAe,EAAwB,EAAe,QAAU,MAAQ,EAAsB,gBACjM,CAAC,EAEH,CACL,EAAG,EAAI,EAAW,EAClB,EAAG,EAAI,EAAW,EAClB,KAAM,CACJ,GAAG,EACH,WACF,CACF,CACF,CACF,CACF,EAOMC,IAAQ,SAAU,EAAS,CAI/B,OAHI,IAAY,IAAK,KACnB,EAAU,CAAC,GAEN,CACL,KAAM,QACN,UACA,MAAM,GAAG,EAAO,CACd,GAAM,CACJ,IACA,IACA,YACA,YACE,EACE,CACJ,SAAU,EAAgB,GAC1B,UAAW,EAAiB,GAC5B,UAAU,CACR,GAAI,GAAQ,CACV,GAAI,CACF,IACA,KACE,EACJ,MAAO,CACL,IACA,GACF,CACF,CACF,EACA,GAAG,GACD,GAAS,EAAS,CAAK,EACrB,EAAS,CACb,IACA,GACF,EACM,EAAW,MAAM,EAAS,eAAe,EAAO,CAAqB,EACrE,EAAY,GAAY,CAAS,EACjC,EAAW,GAAgB,CAAS,EACtC,EAAgB,EAAO,GACvB,EAAiB,EAAO,GACtB,GAAc,EAAM,IAAUJ,IAAM,EAAQ,EAAS,IAAS,IAAM,MAAQ,QAAS,EAAO,EAAQ,EAAS,IAAS,IAAM,SAAW,QAAQ,EACjJ,IACF,EAAgB,EAAW,EAAU,CAAa,GAEhD,IACF,EAAiB,EAAW,EAAW,CAAc,GAEvD,IAAM,EAAgB,EAAQ,GAAG,CAC/B,GAAG,GACF,GAAW,GACX,GAAY,CACf,CAAC,EACD,MAAO,CACL,GAAG,EACH,KAAM,CACJ,EAAG,EAAc,EAAI,EACrB,EAAG,EAAc,EAAI,EACrB,QAAS,EACN,GAAW,GACX,GAAY,CACf,CACF,CACF,CACF,CACF,CACF,EAkFMK,IAAO,SAAU,EAAS,CAI9B,OAHI,IAAY,IAAK,KACnB,EAAU,CAAC,GAEN,CACL,KAAM,OACN,UACA,MAAM,GAAG,EAAO,CACd,GAAM,CACJ,YACA,QACA,WACA,YACE,EACE,CACJ,YAAc,CAAC,EACf,GAAG,GACD,GAAS,EAAS,CAAK,EACrB,EAAW,MAAM,EAAS,eAAe,EAAO,CAAqB,EACrE,EAAO,GAAQ,CAAS,EACxB,EAAY,GAAa,CAAS,EAClC,EAAU,GAAY,CAAS,IAAM,IACrC,CACJ,QACA,UACE,EAAM,SACN,EACA,EACA,IAAS,OAAS,IAAS,UAC7B,EAAa,EACb,EAAY,KAAgB,MAAO,EAAS,OAAS,KAAO,IAAK,GAAI,EAAS,MAAM,EAAS,QAAQ,GAAM,QAAU,OAAS,OAAS,UAEvI,EAAY,EACZ,EAAa,IAAc,MAAQ,MAAQ,UAE7C,IAAM,EAAwB,EAAS,EAAS,IAAM,EAAS,OACzD,EAAuB,EAAQ,EAAS,KAAO,EAAS,MACxD,EAA0BT,GAAI,EAAS,EAAS,GAAa,CAAqB,EAClF,EAAyBA,GAAI,EAAQ,EAAS,GAAY,CAAoB,EAC9E,EAAY,EAAM,eAAe,MACjC,EAAU,CAAC,EACb,EAAkB,EAClB,EAAiB,EACjB,GAAa,MAAQ,EAAU,QAAQ,IACzC,EAAiB,GAEf,GAAa,MAAQ,EAAU,QAAQ,IACzC,EAAkB,GAEhB,GAAW,CAAC,IACV,EACF,EAAiB,EAAQ,EAAIC,GAAI,EAAS,KAAM,EAAS,KAAK,EAE9D,EAAkB,EAAS,EAAIA,GAAI,EAAS,IAAK,EAAS,MAAM,GAGpE,MAAM,EAAM,CACV,GAAG,EACH,iBACA,iBACF,CAAC,EACD,IAAM,EAAiB,MAAM,EAAS,cAAc,EAAS,QAAQ,EAQrE,OAPI,IAAU,EAAe,OAAS,IAAW,EAAe,OACvD,CACL,MAAO,CACL,MAAO,EACT,CACF,EAEK,CAAC,CACV,CACF,CACF,EC3gCA,SAAS,IAAY,CACnB,OAAO,OAAO,OAAW,GAC3B,CACA,SAAS,GAAY,EAAM,CAOzB,OANI,GAAO,CAAI,GACL,EAAK,UAAY,IAAI,YAAY,EAKpC,WACT,CACA,SAAS,GAAU,EAAM,CACvB,IAAI,EACJ,OAAQ,GAAQ,OAAS,EAAsB,EAAK,gBAAkB,KAAO,IAAK,GAAI,EAAoB,cAAgB,MAC5H,CACA,SAAS,GAAmB,EAAM,CAEhC,QAAgB,GAAO,CAAI,EAAI,EAAK,cAAgB,EAAK,WAAa,OAAO,WAAkC,eACjH,CACA,SAAS,GAAO,EAAO,CAIrB,OAHK,GAAU,EAGR,aAAiB,MAAQ,aAAiB,GAAU,CAAK,EAAE,KAFzD,EAGX,CACA,SAASS,GAAU,EAAO,CAIxB,OAHK,GAAU,EAGR,aAAiB,SAAW,aAAiB,GAAU,CAAK,EAAE,QAF5D,EAGX,CACA,SAAS,GAAc,EAAO,CAI5B,OAHK,GAAU,EAGR,aAAiB,aAAe,aAAiB,GAAU,CAAK,EAAE,YAFhE,EAGX,CACA,SAASC,GAAa,EAAO,CAI3B,MAHI,CAAC,GAAU,GAAK,OAAO,WAAe,IACjC,GAEF,aAAiB,YAAc,aAAiB,GAAU,CAAK,EAAE,UAC1E,CACA,SAAS,GAAkB,EAAS,CAClC,GAAM,CACJ,WACA,YACA,YACA,WACEC,GAAiB,CAAO,EAC5B,MAAO,kCAAkC,KAAK,EAAW,EAAY,CAAS,GAAK,IAAY,UAAY,IAAY,UACzH,CACA,SAAS,IAAe,EAAS,CAC/B,MAAO,kBAAkB,KAAK,GAAY,CAAO,CAAC,CACpD,CACA,SAAS,GAAW,EAAS,CAC3B,GAAI,CACF,GAAI,EAAQ,QAAQ,eAAe,EACjC,MAAO,EAEX,MAAa,CAEb,CACA,GAAI,CACF,OAAO,EAAQ,QAAQ,QAAQ,CACjC,MAAa,CACX,MAAO,EACT,CACF,CACA,IAAM,IAAe,sDACf,IAAY,8BACZ,GAAY,GAAS,CAAC,CAAC,GAAS,IAAU,OAC5C,GACJ,SAAS,GAAkB,EAAc,CACvC,IAAM,EAAMF,GAAU,CAAY,EAAIE,GAAiB,CAAY,EAAI,EAIvE,OAAO,GAAU,EAAI,SAAS,GAAK,GAAU,EAAI,SAAS,GAAK,GAAU,EAAI,KAAK,GAAK,GAAU,EAAI,MAAM,GAAK,GAAU,EAAI,WAAW,GAAK,CAAC,GAAS,IAAM,GAAU,EAAI,cAAc,GAAK,GAAU,EAAI,MAAM,IAAM,IAAa,KAAK,EAAI,YAAc,EAAE,GAAK,IAAU,KAAK,EAAI,SAAW,EAAE,CACtS,CACA,SAAS,IAAmB,EAAS,CACnC,IAAI,EAAc,GAAc,CAAO,EACvC,KAAO,GAAc,CAAW,GAAK,CAAC,GAAsB,CAAW,GAAG,CACxE,GAAI,GAAkB,CAAW,EAC/B,OAAO,EACF,GAAI,GAAW,CAAW,EAC/B,OAAO,KAET,EAAc,GAAc,CAAW,CACzC,CACA,OAAO,IACT,CACA,SAAS,IAAW,CAIlB,MAHA,CACE,KAAgB,OAAO,IAAQ,KAAe,IAAI,UAAY,IAAI,SAAS,0BAA2B,MAAM,EAEvG,EACT,CACA,SAAS,GAAsB,EAAM,CACnC,MAAO,0BAA0B,KAAK,GAAY,CAAI,CAAC,CACzD,CACA,SAASA,GAAiB,EAAS,CACjC,OAAO,GAAU,CAAO,EAAE,iBAAiB,CAAO,CACpD,CACA,SAAS,GAAc,EAAS,CAO9B,OANIF,GAAU,CAAO,EACZ,CACL,WAAY,EAAQ,WACpB,UAAW,EAAQ,SACrB,EAEK,CACL,WAAY,EAAQ,QACpB,UAAW,EAAQ,OACrB,CACF,CACA,SAAS,GAAc,EAAM,CAC3B,GAAI,GAAY,CAAI,IAAM,OACxB,OAAO,EAET,IAAM,EAEN,EAAK,cAEL,EAAK,YAELC,GAAa,CAAI,GAAK,EAAK,MAE3B,GAAmB,CAAI,EACvB,OAAOA,GAAa,CAAM,EAAI,EAAO,KAAO,CAC9C,CACA,SAAS,GAA2B,EAAM,CACxC,IAAM,EAAa,GAAc,CAAI,EAOrC,OANI,GAAsB,CAAU,GAC1B,EAAK,eAAiB,GAAM,KAElC,GAAc,CAAU,GAAK,GAAkB,CAAU,EACpD,EAEF,GAA2B,CAAU,CAC9C,CACA,SAAS,GAAqB,EAAM,EAAM,EAAiB,CAErD,IAAS,IAAK,KAChB,EAAO,CAAC,GAEN,IAAoB,IAAK,KAC3B,EAAkB,IAEpB,IAAM,EAAqB,GAA2B,CAAI,EACpD,EAAS,IAAgD,EAAK,eAAuD,KACrH,EAAM,GAAU,CAAkB,EACxC,GAAI,EAAQ,CACV,IAAM,EAAe,GAAgB,CAAG,EACxC,OAAO,EAAK,OAAO,EAAK,EAAI,gBAAkB,CAAC,EAAG,GAAkB,CAAkB,EAAI,EAAqB,CAAC,EAAG,GAAgB,EAAkB,GAAqB,CAAY,EAAI,CAAC,CAAC,CAC9L,MACE,OAAO,EAAK,OAAO,EAAoB,GAAqB,EAAoB,CAAC,EAAG,CAAe,CAAC,CAExG,CACA,SAAS,GAAgB,EAAK,CAC5B,OAAO,EAAI,QAAU,OAAO,eAAe,EAAI,MAAM,EAAI,EAAI,aAAe,IAC9E,CC7JA,SAAS,GAAiB,EAAS,CACjC,IAAM,EAAME,GAAmB,CAAO,EAGlC,EAAQ,WAAW,EAAI,KAAK,GAAK,EACjC,EAAS,WAAW,EAAI,MAAM,GAAK,EACjC,EAAY,GAAc,CAAO,EACjC,EAAc,EAAY,EAAQ,YAAc,EAChD,EAAe,EAAY,EAAQ,aAAe,EAClD,EAAiBX,GAAM,CAAK,IAAM,GAAeA,GAAM,CAAM,IAAM,EAKzE,OAJI,IACF,EAAQ,EACR,EAAS,GAEJ,CACL,QACA,SACA,EAAG,CACL,CACF,CAEA,SAAS,GAAc,EAAS,CAC9B,OAAQQ,GAAU,CAAO,EAA6B,EAAzB,EAAQ,cACvC,CAEA,SAAS,GAAS,EAAS,CACzB,IAAM,EAAa,GAAc,CAAO,EACxC,GAAI,CAAC,GAAc,CAAU,EAC3B,OAAO,GAAa,CAAC,EAEvB,IAAM,EAAO,EAAW,sBAAsB,EACxC,CACJ,QACA,SACA,KACE,GAAiB,CAAU,EAC3B,GAAK,EAAIR,GAAM,EAAK,KAAK,EAAI,EAAK,OAAS,EAC3C,GAAK,EAAIA,GAAM,EAAK,MAAM,EAAI,EAAK,QAAU,EAUjD,OANI,CAAC,GAAK,CAAC,OAAO,SAAS,CAAC,KAC1B,EAAI,IAEF,CAAC,GAAK,CAAC,OAAO,SAAS,CAAC,KAC1B,EAAI,GAEC,CACL,IACA,GACF,CACF,CAEA,IAAM,IAAyB,GAAa,CAAC,EAC7C,SAAS,GAAiB,EAAS,CACjC,IAAM,EAAM,GAAU,CAAO,EAI7B,MAHI,CAAC,GAAS,GAAK,CAAC,EAAI,eACf,IAEF,CACL,EAAG,EAAI,eAAe,WACtB,EAAG,EAAI,eAAe,SACxB,CACF,CACA,SAAS,IAAuB,EAAS,EAAS,EAAsB,CAItE,OAHI,IAAY,IAAK,KACnB,EAAU,IAEL,CAAC,CAAC,GAAwB,GAAW,IAAyB,GAAU,CAAO,CACxF,CAEA,SAAS,GAAsB,EAAS,EAAc,EAAiB,EAAc,CAC/E,IAAiB,IAAK,KACxB,EAAe,IAEb,IAAoB,IAAK,KAC3B,EAAkB,IAEpB,IAAM,EAAa,EAAQ,sBAAsB,EAC3C,EAAa,GAAc,CAAO,EACpC,EAAQ,GAAa,CAAC,EACtB,IACE,EACEQ,GAAU,CAAY,IACxB,EAAQ,GAAS,CAAY,GAG/B,EAAQ,GAAS,CAAO,GAG5B,IAAM,EAAgB,IAAuB,EAAY,EAAiB,CAAY,EAAI,GAAiB,CAAU,EAAI,GAAa,CAAC,EACnI,GAAK,EAAW,KAAO,EAAc,GAAK,EAAM,EAChD,GAAK,EAAW,IAAM,EAAc,GAAK,EAAM,EAC/C,EAAQ,EAAW,MAAQ,EAAM,EACjC,EAAS,EAAW,OAAS,EAAM,EACvC,GAAI,GAAc,EAAc,CAC9B,IAAM,EAAM,GAAU,CAAU,EAC1B,EAAYA,GAAU,CAAY,EAAI,GAAU,CAAY,EAAI,EAClE,EAAa,EACb,EAAgB,GAAgB,CAAU,EAC9C,KAAO,GAAiB,IAAc,GAAY,CAChD,IAAM,EAAc,GAAS,CAAa,EACpC,EAAa,EAAc,sBAAsB,EACjD,EAAMG,GAAmB,CAAa,EACtC,EAAO,EAAW,MAAQ,EAAc,WAAa,WAAW,EAAI,WAAW,GAAK,EAAY,EAChG,EAAM,EAAW,KAAO,EAAc,UAAY,WAAW,EAAI,UAAU,GAAK,EAAY,EAClG,GAAK,EAAY,EACjB,GAAK,EAAY,EACjB,GAAS,EAAY,EACrB,GAAU,EAAY,EACtB,GAAK,EACL,GAAK,EACL,EAAa,GAAU,CAAa,EACpC,EAAgB,GAAgB,CAAU,CAC5C,CACF,CACA,OAAO,GAAiB,CACtB,QACA,SACA,IACA,GACF,CAAC,CACH,CAIA,SAAS,GAAoB,EAAS,EAAM,CAC1C,IAAM,EAAa,GAAc,CAAO,EAAE,WAI1C,OAHK,EAGE,EAAK,KAAO,EAFV,GAAsB,GAAmB,CAAO,CAAC,EAAE,KAAO,CAGrE,CAEA,SAAS,GAAc,EAAiB,EAAQ,CAC9C,IAAM,EAAW,EAAgB,sBAAsB,EAGvD,MAAO,CACL,EAHQ,EAAS,KAAO,EAAO,WAAa,GAAoB,EAAiB,CAAQ,EAIzF,EAHQ,EAAS,IAAM,EAAO,SAIhC,CACF,CAEA,SAAS,IAAsD,EAAM,CACnE,GAAI,CACF,WACA,OACA,eACA,YACE,EACE,EAAU,IAAa,QACvB,EAAkB,GAAmB,CAAY,EACjD,EAAW,EAAW,GAAW,EAAS,QAAQ,EAAI,GAC5D,GAAI,IAAiB,GAAmB,GAAY,EAClD,OAAO,EAET,IAAI,EAAS,CACX,WAAY,EACZ,UAAW,CACb,EACI,EAAQ,GAAa,CAAC,EACpB,EAAU,GAAa,CAAC,EACxB,EAA0B,GAAc,CAAY,EAC1D,IAAI,GAA2B,CAAC,MAC1B,GAAY,CAAY,IAAM,QAAU,GAAkB,CAAe,KAC3E,EAAS,GAAc,CAAY,GAEjC,GAAyB,CAC3B,IAAM,EAAa,GAAsB,CAAY,EACrD,EAAQ,GAAS,CAAY,EAC7B,EAAQ,EAAI,EAAW,EAAI,EAAa,WACxC,EAAQ,EAAI,EAAW,EAAI,EAAa,SAC1C,CAEF,IAAM,EAAa,GAAmB,CAAC,GAA2B,CAAC,EAAU,GAAc,EAAiB,CAAM,EAAI,GAAa,CAAC,EACpI,MAAO,CACL,MAAO,EAAK,MAAQ,EAAM,EAC1B,OAAQ,EAAK,OAAS,EAAM,EAC5B,EAAG,EAAK,EAAI,EAAM,EAAI,EAAO,WAAa,EAAM,EAAI,EAAQ,EAAI,EAAW,EAC3E,EAAG,EAAK,EAAI,EAAM,EAAI,EAAO,UAAY,EAAM,EAAI,EAAQ,EAAI,EAAW,CAC5E,CACF,CAEA,SAAS,IAAe,EAAS,CAC/B,OAAO,EAAQ,eAAiB,MAAM,KAAK,EAAQ,eAAe,CAAC,EAAI,CAAC,CAC1E,CAIA,SAAS,IAAgB,EAAM,CAC7B,IAAM,EAAS,GAAc,CAAI,EAC3B,EAAO,EAAK,cAAc,KAC1B,EAAQZ,GAAI,EAAK,YAAa,EAAK,YAAa,EAAK,YAAa,EAAK,WAAW,EAClF,EAASA,GAAI,EAAK,aAAc,EAAK,aAAc,EAAK,aAAc,EAAK,YAAY,EACzF,EAAI,CAAC,EAAO,WAAa,GAAoB,CAAI,EAC/C,EAAI,CAAC,EAAO,UAIlB,OAHIY,GAAmB,CAAI,EAAE,YAAc,QACzC,GAAKZ,GAAI,EAAK,YAAa,EAAK,WAAW,EAAI,GAE1C,CACL,QACA,SACA,IACA,GACF,CACF,CAKA,IAAM,IAAgB,GACtB,SAAS,IAAgB,EAAS,EAAU,EAAc,CACpD,IAAiB,IAAK,KACxB,EAAe,YAEjB,IAAM,EAAmB,IAAiB,iBACpC,EAAM,GAAU,CAAO,EACvB,EAAO,GAAmB,CAAO,EACjC,EAAiB,EAAI,eACvB,EAAQ,EAAK,YACb,EAAS,EAAK,aACd,EAAI,EACJ,EAAI,EACR,GAAI,EAAgB,CAIlB,IAAM,EAA6B,CAAC,GAAS,GAAK,IAAa,QAC3D,EACG,IACH,EAAI,CAAC,EAAe,WACpB,EAAI,CAAC,EAAe,YAGtB,EAAQ,EAAe,MACvB,EAAS,EAAe,OACpB,IACF,EAAI,EAAe,WACnB,EAAI,EAAe,WAGzB,CASA,GARyB,GAAoB,CAQ1B,GAAK,EAAG,CACzB,IAAM,EAAM,EAAK,cACX,EAAO,EAAI,KACX,EAAa,iBAAiB,CAAI,EAClC,EAAmB,EAAI,aAAe,cAAe,WAAW,EAAW,UAAU,EAAI,WAAW,EAAW,WAAW,GAAS,EACnI,EAAgB,KAAK,IAAI,EAAK,YAAc,EAAK,YAAc,CAAgB,EAC/E,EAAS,iBAAiB,CAAI,EAAE,kBAAoB,oBAAsB,EAAgB,EAAI,EAChG,GAAU,MACZ,GAAS,EAEb,CACA,MAAO,CACL,QACA,SACA,IACA,GACF,CACF,CAGA,SAAS,IAA2B,EAAS,EAAU,CACrD,IAAM,EAAa,GAAsB,EAAS,GAAM,IAAa,OAAO,EACtE,EAAM,EAAW,IAAM,EAAQ,UAC/B,EAAO,EAAW,KAAO,EAAQ,WACjC,EAAQ,GAAS,CAAO,EAK9B,MAAO,CACL,MALY,EAAQ,YAAc,EAAM,EAMxC,OALa,EAAQ,aAAe,EAAM,EAM1C,EALQ,EAAO,EAAM,EAMrB,EALQ,EAAM,EAAM,CAMtB,CACF,CACA,SAAS,GAAkC,EAAS,EAAkB,EAAU,CAC9E,IAAI,EACJ,GAAI,IAAqB,YAAc,IAAqB,iBAC1D,EAAO,IAAgB,EAAS,EAAU,CAAgB,OACrD,GAAI,IAAqB,WAC9B,EAAO,IAAgB,GAAmB,CAAO,CAAC,OAC7C,GAAIS,GAAU,CAAgB,EACnC,EAAO,IAA2B,EAAkB,CAAQ,MACvD,CACL,IAAM,EAAgB,GAAiB,CAAO,EAC9C,EAAO,CACL,EAAG,EAAiB,EAAI,EAAc,EACtC,EAAG,EAAiB,EAAI,EAAc,EACtC,MAAO,EAAiB,MACxB,OAAQ,EAAiB,MAC3B,CACF,CACA,OAAO,GAAiB,CAAI,CAC9B,CAKA,SAAS,IAA4B,EAAS,EAAO,CACnD,IAAM,EAAe,EAAM,IAAI,CAAO,EACtC,GAAI,EACF,OAAO,EAET,IAAI,EAAS,GAAqB,EAAS,CAAC,EAAG,EAAK,EAAE,OAAO,GAAMA,GAAU,CAAE,GAAK,GAAY,CAAE,IAAM,MAAM,EAC1G,EAAwB,KACtB,EAAiBG,GAAmB,CAAO,EAAE,WAAa,QAC5D,EAAc,EAAiB,GAAc,CAAO,EAAI,EAG5D,KAAOH,GAAU,CAAW,GAAK,CAAC,GAAsB,CAAW,GAAG,CACpE,IAAM,EAAgBG,GAAmB,CAAW,EAC9C,EAA0B,GAAkB,CAAW,EAGvD,EAAe,EAAwB,EAAsB,SAAW,EAAiB,QAAU,GAK3E,CAAC,IAA4B,IAAiB,SAAW,IAAiB,YAAc,EAAc,WAAa,UAG/I,EAAS,EAAO,OAAO,GAAY,IAAa,CAAW,EAG3D,EAAwB,EAE1B,EAAc,GAAc,CAAW,CACzC,CAEA,OADA,EAAM,IAAI,EAAS,CAAM,EAClB,CACT,CAIA,SAAS,IAAgB,EAAM,CAC7B,GAAI,CACF,UACA,WACA,eACA,YACE,EAEE,EAAoB,CAAC,GADM,IAAa,oBAAsB,GAAW,CAAO,EAAI,CAAC,EAAI,IAA4B,EAAS,KAAK,EAAE,EAAI,CAAC,EAAE,OAAO,CAAQ,EACzG,CAAY,EAC9D,EAAY,GAAkC,EAAS,EAAkB,GAAI,CAAQ,EACvF,EAAM,EAAU,IAChB,EAAQ,EAAU,MAClB,EAAS,EAAU,OACnB,EAAO,EAAU,KACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAkB,OAAQ,IAAK,CACjD,IAAM,EAAO,GAAkC,EAAS,EAAkB,GAAI,CAAQ,EACtF,EAAMZ,GAAI,EAAK,IAAK,CAAG,EACvB,EAAQD,GAAI,EAAK,MAAO,CAAK,EAC7B,EAASA,GAAI,EAAK,OAAQ,CAAM,EAChC,EAAOC,GAAI,EAAK,KAAM,CAAI,CAC5B,CACA,MAAO,CACL,MAAO,EAAQ,EACf,OAAQ,EAAS,EACjB,EAAG,EACH,EAAG,CACL,CACF,CAEA,SAAS,IAAc,EAAS,CAC9B,GAAM,CACJ,QACA,UACE,GAAiB,CAAO,EAC5B,MAAO,CACL,QACA,QACF,CACF,CAEA,SAAS,IAA8B,EAAS,EAAc,EAAU,CACtE,IAAM,EAA0B,GAAc,CAAY,EACpD,EAAkB,GAAmB,CAAY,EACjD,EAAU,IAAa,QACvB,EAAO,GAAsB,EAAS,GAAM,EAAS,CAAY,EACnE,EAAS,CACX,WAAY,EACZ,UAAW,CACb,EACM,EAAU,GAAa,CAAC,EAC9B,IAAI,GAA2B,CAAC,MAC1B,GAAY,CAAY,IAAM,QAAU,GAAkB,CAAe,KAC3E,EAAS,GAAc,CAAY,GAEjC,GAAyB,CAC3B,IAAM,EAAa,GAAsB,EAAc,GAAM,EAAS,CAAY,EAClF,EAAQ,EAAI,EAAW,EAAI,EAAa,WACxC,EAAQ,EAAI,EAAW,EAAI,EAAa,SAC1C,CAKE,CAAC,GAA2B,IAC9B,EAAQ,EAAI,GAAoB,CAAe,GAEjD,IAAM,EAAa,GAAmB,CAAC,GAA2B,CAAC,EAAU,GAAc,EAAiB,CAAM,EAAI,GAAa,CAAC,EAGpI,MAAO,CACL,EAHQ,EAAK,KAAO,EAAO,WAAa,EAAQ,EAAI,EAAW,EAI/D,EAHQ,EAAK,IAAM,EAAO,UAAY,EAAQ,EAAI,EAAW,EAI7D,MAAO,EAAK,MACZ,OAAQ,EAAK,MACf,CACF,CAEA,SAAS,GAAmB,EAAS,CACnC,OAAOY,GAAmB,CAAO,EAAE,WAAa,QAClD,CAEA,SAAS,GAAoB,EAAS,EAAU,CAC9C,GAAI,CAAC,GAAc,CAAO,GAAKA,GAAmB,CAAO,EAAE,WAAa,QACtE,OAAO,KAET,GAAI,EACF,OAAO,EAAS,CAAO,EAEzB,IAAI,EAAkB,EAAQ,aAS9B,OAHI,GAAmB,CAAO,IAAM,IAClC,EAAkB,EAAgB,cAAc,MAE3C,CACT,CAIA,SAAS,GAAgB,EAAS,EAAU,CAC1C,IAAM,EAAM,GAAU,CAAO,EAC7B,GAAI,GAAW,CAAO,EACpB,OAAO,EAET,GAAI,CAAC,GAAc,CAAO,EAAG,CAC3B,IAAI,EAAkB,GAAc,CAAO,EAC3C,KAAO,GAAmB,CAAC,GAAsB,CAAe,GAAG,CACjE,GAAIH,GAAU,CAAe,GAAK,CAAC,GAAmB,CAAe,EACnE,OAAO,EAET,EAAkB,GAAc,CAAe,CACjD,CACA,OAAO,CACT,CACA,IAAI,EAAe,GAAoB,EAAS,CAAQ,EACxD,KAAO,GAAgB,IAAe,CAAY,GAAK,GAAmB,CAAY,GACpF,EAAe,GAAoB,EAAc,CAAQ,EAK3D,OAHI,GAAgB,GAAsB,CAAY,GAAK,GAAmB,CAAY,GAAK,CAAC,GAAkB,CAAY,EACrH,EAEF,GAAgB,IAAmB,CAAO,GAAK,CACxD,CAEA,IAAM,IAAkB,eAAgB,EAAM,CAC5C,IAAM,EAAoB,KAAK,iBAAmB,GAC5C,EAAkB,KAAK,cACvB,EAAqB,MAAM,EAAgB,EAAK,QAAQ,EAC9D,MAAO,CACL,UAAW,IAA8B,EAAK,UAAW,MAAM,EAAkB,EAAK,QAAQ,EAAG,EAAK,QAAQ,EAC9G,SAAU,CACR,EAAG,EACH,EAAG,EACH,MAAO,EAAmB,MAC1B,OAAQ,EAAmB,MAC7B,CACF,CACF,EAEA,SAAS,IAAM,EAAS,CACtB,OAAOG,GAAmB,CAAO,EAAE,YAAc,KACnD,CAEA,IAAM,IAAW,CACf,0DACA,sBACA,oBACA,mBACA,oBACA,mBACA,kBACA,YACA,aACA,SACF,EAEA,SAAS,GAAc,EAAG,EAAG,CAC3B,OAAO,EAAE,IAAM,EAAE,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,QAAU,EAAE,OAAS,EAAE,SAAW,EAAE,MAC7E,CAGA,SAAS,IAAY,EAAS,EAAQ,EAAgB,CACpD,IAAI,EAAK,KACL,EACE,EAAO,GAAmB,CAAO,EACvC,SAAS,GAAU,CACjB,IAAI,EACJ,aAAa,CAAS,GACrB,EAAM,IAAO,MAAQ,EAAI,WAAW,EACrC,EAAK,IACP,CACA,SAAS,EAAQ,EAAM,EAAW,CAC5B,IAAS,IAAK,KAChB,EAAO,IAEL,IAAc,IAAK,KACrB,EAAY,GAEd,EAAQ,EACR,IAAM,EAA2B,EAAQ,sBAAsB,EACzD,CACJ,OACA,MACA,QACA,UACE,EAIJ,GAHK,GACH,EAAO,EAEL,CAAC,GAAS,CAAC,EACb,OAEF,IAAM,EAAWV,GAAM,CAAG,EACpB,EAAaA,GAAM,EAAK,aAAe,EAAO,EAAM,EACpD,EAAcA,GAAM,EAAK,cAAgB,EAAM,EAAO,EACtD,EAAYA,GAAM,CAAI,EAEtB,EAAU,CACd,WAFiB,CAAC,EAAW,MAAQ,CAAC,EAAa,MAAQ,CAAC,EAAc,MAAQ,CAAC,EAAY,KAG/F,UAAWF,GAAI,EAAGD,GAAI,EAAG,CAAS,CAAC,GAAK,CAC1C,EACI,EAAgB,GACpB,SAAS,EAAc,EAAS,CAC9B,IAAM,EAAQ,EAAQ,GAAG,kBAOzB,GAAI,CAAC,GAAc,EAA0B,EAAQ,sBAAsB,CAAC,EAC1E,OAAO,EAAQ,EAEjB,GAAI,IAAU,EAAW,CACvB,GAAI,CAAC,EACH,OAAO,EAAQ,EAEZ,EAOH,EAAQ,GAAO,CAAK,EAJpB,EAAY,eAAiB,CAC3B,EAAQ,GAAO,IAAI,CACrB,EAAG,GAAI,CAIX,CACA,EAAgB,EAClB,CAIA,GAAI,CACF,EAAK,IAAI,qBAAqB,EAAe,CAC3C,GAAG,EAEH,KAAM,EAAK,aACb,CAAC,CACH,MAAa,CACX,EAAK,IAAI,qBAAqB,EAAe,CAAO,CACtD,CACA,EAAG,QAAQ,CAAO,CACpB,CACA,IAAM,EAAM,GAAU,CAAO,EAKvB,MAAqB,EAAQ,CAAc,EAGjD,OAFA,EAAI,iBAAiB,SAAU,CAAY,EAC3C,EAAQ,EAAI,MACC,CACX,EAAI,oBAAoB,SAAU,CAAY,EAC9C,EAAQ,CACV,CACF,CAUA,SAAS,GAAW,EAAW,EAAU,EAAQ,EAAS,CACpD,IAAY,IAAK,KACnB,EAAU,CAAC,GAEb,GAAM,CACJ,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,OAAO,gBAAmB,WAC1C,cAAc,OAAO,sBAAyB,WAC9C,iBAAiB,IACf,EACE,EAAc,GAAc,CAAS,EACrC,EAAY,GAAkB,EAAiB,CAAC,GAAI,EAAc,GAAqB,CAAW,EAAI,CAAC,EAAI,GAAI,EAAW,GAAqB,CAAQ,EAAI,CAAC,CAAE,EAAI,CAAC,EACzK,EAAU,QAAQ,GAAY,CAC5B,GAAkB,EAAS,iBAAiB,SAAU,CAAM,EAC5D,GAAkB,EAAS,iBAAiB,SAAU,CAAM,CAC9D,CAAC,EACD,IAAM,EAAY,GAAe,EAAc,IAAY,EAAa,EAAQ,CAAc,EAAI,KAC9F,EAAiB,GACjB,EAAiB,KACjB,IACF,EAAiB,IAAI,eAAe,GAAQ,CAC1C,GAAI,CAAC,GAAc,EACf,GAAc,EAAW,SAAW,GAAe,GAAkB,IAGvE,EAAe,UAAU,CAAQ,EACjC,qBAAqB,CAAc,EACnC,EAAiB,0BAA4B,CAC3C,IAAI,GACH,EAAkB,IAAmB,MAAQ,EAAgB,QAAQ,CAAQ,CAChF,CAAC,GAEH,EAAO,CACT,CAAC,EACG,GAAe,CAAC,GAClB,EAAe,QAAQ,CAAW,EAEhC,GACF,EAAe,QAAQ,CAAQ,GAGnC,IAAI,EACA,EAAc,EAAiB,GAAsB,CAAS,EAAI,KAClE,GACF,EAAU,EAEZ,SAAS,GAAY,CACnB,IAAM,EAAc,GAAsB,CAAS,EAC/C,GAAe,CAAC,GAAc,EAAa,CAAW,GACxD,EAAO,EAET,EAAc,EACd,EAAU,sBAAsB,CAAS,CAC3C,CAEA,OADA,EAAO,MACM,CACX,IAAI,EACJ,EAAU,QAAQ,GAAY,CAC5B,GAAkB,EAAS,oBAAoB,SAAU,CAAM,EAC/D,GAAkB,EAAS,oBAAoB,SAAU,CAAM,CACjE,CAAC,EACD,IAA+B,GAC9B,EAAmB,IAAmB,MAAQ,EAAiB,WAAW,EAC3E,EAAiB,KACb,GACF,qBAAqB,CAAO,CAEhC,CACF,CAmBA,IAAM,GAAS,IAeT,GAAQ,IAQR,GAAO,IAQP,IAAO,IAgCP,IAAmB,EAAW,EAAU,IAAY,CAIxD,IAAM,EAAQ,IAAI,IACZ,EAAgB,GAA4B,CAAC,EAC7C,EAAoB,CACxB,GAAG,IACH,GAAG,EAAc,SACjB,GAAI,CACN,EACA,OAAO,IAAkB,EAAW,EAAU,CAC5C,GAAG,EACH,SAAU,CACZ,CAAC,CACH,EC/wBI,IAAiB,EAuCrB,SAAS,GAAkB,EAAqB,CAC9C,OAAO,EAAY,QAAQ,OAAQ,EAAE,CACvC,CAEA,IAAM,IAAe,EAAmB,IAAiB,CACvD,IAAM,EAAW,SAAS,cAAc,UAAU,EAClD,EAAS,UAAY,GAAa,CAAI,EACtC,EAAK,gBAAgB,GAAG,MAAM,KAAK,EAAS,QAAQ,UAAU,CAAC,CACjE,EAEM,KAAc,EAAmB,IAAiB,CACtD,IAAM,EAAW,SAAS,cAAc,UAAU,EAClD,EAAS,UAAY,GAAa,CAAI,EACtC,EAAK,OAAO,GAAG,MAAM,KAAK,EAAS,QAAQ,UAAU,CAAC,CACxD,EAEM,GAAmB,uBAEzB,SAAS,KAAsB,CAG7B,GAFI,OAAO,SAAa,KAEpB,SAAS,eAAe,EAAgB,EAAG,OAE/C,IAAM,EAAQ,SAAS,cAAc,OAAO,EAC5C,EAAM,GAAK,GACX,EAAM,YAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFpB,SAAS,KAAK,YAAY,CAAK,CACjC,CAqBA,SAAgB,GAAQ,EAAY,EAAuB,CACzD,IAAI,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAAmC,KACnC,EAAuB,GACvB,EACA,EACA,EACA,EACA,EACE,MAAyB,CAC7B,GAAI,CAAC,GAAmB,CAAC,EAAe,OAExC,IAAM,GAAa,EAAgB,aAAa,kBAAkB,GAAK,IACpE,MAAM,KAAK,EACX,OAAQ,GAAO,GAAM,IAAO,CAAa,EAExC,EAAU,OAAQ,EAAgB,aAAa,mBAAoB,EAAU,KAAK,GAAG,CAAC,EACrF,EAAgB,gBAAgB,kBAAkB,EAEvD,EAAkB,MACpB,EACM,MAA6B,CAC7B,OAAO,OAAW,MAElB,GAAQ,SACN,GAAQ,EAAK,oBAAoB,QAAS,EAAQ,EAAI,EAEtD,GAAc,OAAO,oBAAoB,QAAS,EAA+B,EAAI,IAErF,IACF,EAAK,oBAAoB,YAAa,EAAQ,EAAI,EAClD,EAAK,oBAAoB,YAAa,EAAQ,EAAI,GAGhD,GAAY,EAAK,oBAAoB,WAAY,EAAY,EAAI,EAEjE,GAAc,SAAS,oBAAoB,YAAa,EAAc,EAAI,EAE9E,CAEE,IADA,aAAa,CAAiB,EACV,OAIxB,CAEE,IADA,SAAS,oBAAoB,UAAW,CAAc,EACrC,QAGf,GAAW,EAAK,oBAAoB,UAAW,CAA0B,EAEzE,GAAY,EAAK,oBAAoB,WAAY,CAA2B,EAEhF,EAAY,OACZ,EAAa,OACb,EAAiB,EAEjB,EAAS,OACT,EAAU,OACV,EAAa,OACb,EAAe,OACf,EAAe,OACf,EAAuB,GACzB,EAEA,GAAI,GAAQ,CAAC,EAAK,QAAS,OAE3B,SAAS,EAAqB,EAAe,CAG3C,GAFI,CAAC,GAED,OAAO,WAAa,MAAQ,CAAC,EAAK,MACpC,OAKF,GAFA,IAAoB,EAEhB,OAAO,EAAK,SAAY,aAGtB,CAFgB,GAAkB,EAAK,OAEtC,EAAc,OAAQ,YACtB,GAAI,OAAO,GAAM,SAAS,OAAO,OAAU,UAG5C,CAFgB,GAAkB,EAAK,QAAQ,MAAM,KAEpD,EAAc,OAAQ,OAG7B,IAAM,EAAY,EAAK,MAAQ,QAC/B,EAAO,EACP,IAAM,EAAO,SAAS,cAAc,KAAK,EAErC,EAAK,QACP,EAAK,GAAK,cAAc,EAAE,MAC1B,EAAK,aAAa,OAAQ,SAAS,EACnC,EAAgB,EAAK,IAGvB,IAAM,EAAa,SAAS,cAAc,KAAK,EAC/C,EAAW,UAAY,aACvB,EAAK,YAAY,CAAU,EAE3B,IAAM,EAAU,SAAS,cAAc,KAAK,EAC5C,EAAQ,UAAY,UACpB,EAAK,YAAY,CAAO,EAGxB,EAAK,UADa,mBAAqB,EAAK,WAAa,IAGrD,EAAK,QAAO,EAAK,MAAM,QAAU,EAAK,OAE1C,IAAI,EAAW,GAET,MAA2B,CAC/B,GAAI,OAAO,SAAa,IAAa,OAAO,KAE5C,GAAI,aAAgB,YAAa,CAC/B,IAAM,EAAY,EAAK,QAAQ,mBAAmB,EAElD,GAAI,EAAW,OAAO,CACxB,CAEA,OAAO,SAAS,cAA2B,cAAc,CAC3D,EAEM,MAAwB,CAC5B,CAEE,IADA,aAAa,CAAiB,EACV,KAExB,EACM,MACJ,GAAQ,EAAK,OAAS,aAAgB,aAAe,EAAK,SAAS,SAAS,aAAa,GAErF,EAAuB,GAAsB,CACjD,GAAI,CAAC,GAAM,WAAY,OAEvB,IAAM,EAAS,EAAM,OACf,EAAc,aAAgB,aAAe,CAAC,CAAC,GAAU,EAAK,SAAS,CAAM,EAC7E,EAAc,CAAC,CAAC,GAAU,EAAK,SAAS,CAAM,EAEhD,CAAC,GAAe,CAAC,GAAe,CAAC,EAAiB,GACpD,EAAgB,EAChB,EAAoB,OAAO,eAAiB,CACtC,GAAM,YAAc,CAAC,EAAiB,GACxC,IAAU,CAEd,EAAG,GAAG,GAEN,EAAgB,CAEpB,EAEM,MAA2B,CAC3B,IAAc,SAAW,IAE7B,EAAe,EACf,SAAS,iBAAiB,YAAa,EAAqB,EAAI,EAChE,EAAuB,GACzB,EAEM,MAA2B,CAC3B,CAAC,GAAwB,CAAC,IAE9B,SAAS,oBAAoB,YAAa,EAAc,EAAI,EAC5D,EAAuB,GACvB,EAAgB,EAClB,EAEM,EAAe,GAA4C,CAG/D,GAFA,EAAgB,EAGd,EAAK,mBACJ,EAAE,aAAgB,cAAgB,EAAK,aAAe,EAAK,aAC5D,CACA,IAAU,EAEV,MACF,CAEA,GAAI,OAAO,EAAK,SAAW,SAAU,CAInC,GAHA,EAAQ,gBAAgB,EAGpB,EAAK,YAAc,EAAK,aAAe,CAAC,EAAK,UAC3C,EAAK,iBAAmB,EAAK,kBAAoB,aACnD,GAAY,EAAS,8BAA+B,CAAC,EAAK,gBAAkB,QAAQ,OAEtF,GAAI,GAAM,SAAW,UAAW,CAC9B,IAAU,EAEV,MACF,CAGE,EAAK,UAAY,WAAa,EAAQ,WAAW,OAAS,EAC5D,IAAW,EAAS,SAAW,EAAK,OAAO,EACpC,EAAK,UAAY,WAAW,GAAY,EAAS,EAAK,OAAO,CACxE,MAAO,GAAI,OAAO,EAAK,SAAW,UAAY,CAAC,EAAU,CACvD,GACE,GAAM,SAAS,OAAO,OAAS,WAC9B,GAAM,iBAAmB,EAAK,kBAAoB,aAAe,GAAM,SAGxE,GAAI,EAAK,YAAc,EAAK,YAAa,EAAK,QAAQ,MAAM,MAAQ,OAC/D,CACH,IAAU,EAEV,MACF,CAGF,EAAW,EACb,CAEA,IAAM,EAAc,EAAmB,EAKjC,EAAW,OAAO,WAClB,EAAa,OAAO,YACpB,EAAe,CAAE,EAAG,EAAG,EAAG,CAAE,EAE5B,EAAS,EAAE,QACX,EAAS,EAAE,QAEjB,eAAiB,CACf,IAGI,EAAa,EAEb,EAAS,MACX,EAAa,IAAgB,GAG3B,EAAS,OAAO,WAAa,MAC/B,EAAa,MAAsB,EAAW,IAGhD,EAAW,MAAM,KAAO,IAAqB,EAAa,KAC1D,EAAK,MAAM,KAAO,EAAS,EAAa,EAAa,EAAI,KAEzD,IAAM,MAAmB,CACvB,EAAK,UAAU,OAAO,QAAQ,EAC9B,EAAK,MAAM,IAAM,GACjB,EAAK,MAAM,OAAS,EAAa,EAAS,GAAK,EAAa,EAAI,IAClE,EAEM,MAAmB,CACvB,EAAK,UAAU,IAAI,QAAQ,EAC3B,EAAK,MAAM,OAAS,OACpB,EAAK,MAAM,IAAM,EAAS,GAAK,EAAa,EAAI,IAClD,EAEA,EAAW,EACX,IAAM,EAAc,EAAK,sBAAsB,EACzC,EAAc,EAAK,WAAW,SAAS,QAAQ,GAAK,GACpD,EAAqB,EAAY,IAAM,EACzB,GAAe,EAGjC,EAAW,EAEX,EAAW,CAEf,EAAG,CAAC,EAEC,EAAK,YACJ,SAAS,uBAAuB,SAAS,EAAE,QAAU,IACnD,EACF,EAAY,YAAY,CAAI,EAE5B,SAAS,KAAK,YAAY,CAAI,EAGhC,EAAmB,EAGzB,EACA,EAAU,GAAU,CACd,aAAiB,YAAY,EAAY,CAAK,CACpD,EACA,MAAgB,CACd,EAAgB,EAChB,EAAmB,EACnB,EAAK,OAAO,EACZ,EAAiB,CACnB,EACA,MAAmB,CACZ,EAAiB,GAAG,IAAU,CACrC,EAEA,GAAgB,CAAE,YAAa,CACxB,EAAK,SAAS,CAAc,GAC/B,IAAU,CAEd,EAEA,IAAM,EAAW,SAAS,cAAc,MAAM,EA6D9C,MA5DA,GAAS,YAAc,IACvB,EAAS,UAAY,gBACrB,EAAS,MAAM,SAAW,WAC1B,EAAS,MAAM,IAAM,MACrB,EAAS,MAAM,MAAQ,MACvB,EAAS,MAAM,MAAQ,UACvB,EAAS,MAAM,OAAS,UACxB,EAAS,iBAAiB,QAAS,CAAO,EAEtC,GAAa,UAAS,EAAS,WAAa,eAEhD,EAAK,YAAY,CAAQ,EAErB,OAAO,OAAW,MAChB,GAAa,SACf,EAAK,iBAAiB,QAAS,EAAQ,EAAI,EAC3C,OAAO,iBAAiB,QAAS,EAAc,EAAI,IAEnD,EAAK,iBAAiB,YAAa,EAAQ,EAAI,EAC/C,EAAK,iBAAiB,WAAY,EAAY,EAAI,GAGhD,EAAK,QACP,EAAa,GAAU,CACrB,IAAM,EAAS,EAAM,kBAAkB,YAAc,EAAM,OAAS,KAEpE,GAAI,CAAC,EAAQ,OAEb,EAAiB,EACjB,IAAM,EAAO,EAAO,sBAAsB,EAG1C,GAFA,EAAY,CAAE,QAAS,EAAK,KAAO,EAAK,MAAQ,EAAG,QAAS,EAAK,IAAM,EAAK,OAAS,CAAE,CAAC,EAEpF,CAAC,EAAK,WAAY,OAEtB,EAAkB,EAClB,IAAM,GAAO,EAAO,aAAa,kBAAkB,GAAK,IAAI,MAAM,KAAK,EAAE,OAAO,OAAO,EACvF,EAAO,aAAa,mBAAoB,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAK,EAAK,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CACnF,EACA,EAAc,GAAU,CAClB,EAAM,yBAAyB,MAAQ,EAAK,SAAS,EAAM,aAAa,GAE5E,IAAU,CACZ,EACA,EAAK,iBAAiB,UAAW,CAA0B,EAC3D,EAAK,iBAAiB,WAAY,CAA2B,GAG/D,EAAkB,GAAyB,CACrC,EAAM,MAAQ,WACZ,EAAK,OAAS,EAAK,aACrB,EAAM,eAAe,EACrB,EAAM,gBAAgB,GAGxB,IAAU,EAEd,EACA,SAAS,iBAAiB,UAAW,CAAc,GAG9C,CACT,CAMA,OAJI,IACF,EAAO,EAAqB,CAAI,GAG3B,CACL,OAAO,EAAkB,CACnB,GAAQ,EAAK,YACf,IAAU,EAGZ,EAAqB,EACrB,EAAO,EAAqB,CAAW,CACzC,EACA,SAAU,CACR,IAAU,EAEV,EAAqB,CACvB,CACF,CACF,iiBCtjBA,KAoCQ,EAAE,iBA4FA,EAAa,QACpB,2DAMY,EAAO,SAAP,CAAO,aANnB,0BAC4B,EAAY,iCADxC,EAGQ,EAAY,GAAI,MAAS,IAHjC,oCAQQ,EAAc,EAAG,OAAS,WARlC,kBAUgB,CAAE,IAVlB,kBAWgB,CAAE,IAXlB,oBAYgB,CAAI,GAZpB,aAaW,CAAc,2BAXF,EAAQ,EAAY,QAE7B,EAAY,sBAJ1B,+BAc4C,EAAI,mBAdhD,+BAe4C,EAAK,aAfjD,EAgBW,GAAU,CAClB,EAAM,eAAc,EACpB,EAAM,gBAAe,KAEjB,CAAc,IAElB,EAAY,KACZ,CAAI,GAAE,cAAa,EACrB,CAAC,cAxBF,EAyBa,GAAU,GAChB,CAAc,GAAK,EAAM,MAAQ,aAAe,EAAM,MAAQ,YAElE,EAAM,eAAc,EACpB,EAAM,gBAAe,EACrB,EAAY,EAAM,MAAQ,YAC1B,CAAI,GAAE,YAAW,EACnB,CAAC,MAhCF,IApHC,EAAQ,iBAAG,EAAK,EAChB,EAAS,kBAAG,YAAY,EACxB,EAAY,qBAAG,EAAK,EAGpB,EAAY,qBAAG,EAAE,EACjB,EAAY,qBAAG,EAAE,EACjB,EAAc,uBAAG,EAAK,EAiBpB,EAAO,EAAM,QACb,EAAU,EAAM,QAChB,EAAO,EAAO,EAAK,EACnB,EAAa,EAAO,EAAK,EACzB,EAAY,GACV,EAAc,MAAY,EAAQ,YAAW,MAAM,WAEhD,GAAiB,QACjB,MAAM,KAAI,EAAC,CAAI,GAAE,iBAA8B,kCAAkC,MAC1F,UACS,EAAM,EAAe,GAAM,GAClC,CAAI,GAAE,YAAW,EAEb,GAAY,EAAE,CAAO,GAAE,MAAK,CAClC,UACS,EAAK,EAAsB,CAClC,EAAM,gBAAe,MACf,EAAU,EAAc,EACxB,EAAQ,EAAQ,QAAQ,SAAS,aAAa,EAChD,EAAI,GAEJ,EAAM,MAAQ,cAAa,GAAQ,EAAQ,GAAK,EAAQ,QAExD,EAAM,MAAQ,YAAW,GAAQ,EAAQ,EAAI,EAAQ,QAAU,EAAQ,QAEvE,EAAM,MAAQ,SAAQ,EAAO,GAE7B,EAAM,MAAQ,QAAO,EAAO,EAAQ,OAAS,GAE7C,EAAM,MAAQ,WAChB,EAAM,eAAc,EACpB,EAAK,GAGH,EAAM,MAAQ,OAAO,EAAM,EAAK,EAEhC,EAAM,MAAQ,KAAO,EAAQ,aAAkB,oBACjD,EAAM,eAAc,EACpB,EAAQ,GAAO,MAAK,GAGlB,GAAQ,IACV,EAAM,eAAc,EACpB,EAAQ,IAAO,MAAK,EAExB,CACA,OAAc,IACP,CAAc,MAAK,CAAI,IAE5B,EAAM,EAAK,EAEP,EAAc,KAAE,CAAO,GAAE,eAAe,MAAK,EACnD,CAAC,EACD,OAAc,OACP,CAAI,MAAK,CAAI,MAAK,CAAO,aAExB,EAAK,EAAG,GACR,EAAM,EAAG,GACX,EAAS,GACT,EAAU,GACR,EAAU,GAAW,EAAQ,MAAa,CACzC,GAAgB,EAAQ,EAAK,CAChC,SAAU,QACV,YAAS,EACT,WAAU,CAAG,GAAO,CAAC,EAAG,GAAI,EAAI,GAAK,CAAG,QAAS,CAAC,MACjD,KAAI,OAAU,IAAG,OAAQ,CACrB,OAEL,EAAM,MAAM,KAAO,EAAI,KACvB,EAAM,MAAM,IAAM,EAAI,OACtB,EAAa,KAER,GAAS,IACZ,EAAU,SACJ,GAAI,GAEL,EAAM,WAEL,EAAU,EAAc,EAC9B,EAAQ,EAAY,EAAQ,OAAS,EAAI,IAAI,MAAK,CACpD,CACF,CAAC,CACH,CAAC,YAEY,CACX,EAAS,GACT,EAAO,CACT,CACF,CAAC,+BAyCA,cAMuC,IANvC,CAMoD,KANpD,yBAMc,CAAc,aAN5B,+DAEgB,CAAc,MAF9B,WAGO,CAAc,EAAG,QAAU,MAAS,IAH3C,iBAIa,CAAc,UAAW,MAAS,IAJ/C,eAKW,CAAc,EAAG,EAAI,MAAS,QALzC,UASQ,EAAa,YAXnB,EAAc,qBAalB,oCAec,EAAG,WAAH,oBAAG,MAAH,CAAG,qDACA,GAAM,EAAK,IAAE,EAAb,IAAI,8BACY,IAAH,CAAG,aAAzB,CAAI,EAAC,iBAAe,8BAEtB,+BAmBiB,GAAI,uBAAO,CAAI,EAAC,mBAA3B,CAAI,EAAC,MAAI,WAAgC,EAAI,SAAJ,EAAI,MAAJ,CAAI,IAnBnD,+DASgB,QAAO,EAAE,CAAI,EAAC,QAAM,EAAI,CAAI,EAAC,MAAO,UAAS,EAAE,CAAI,EAAC,+BATpE,uDAGe,CAAI,EAAC,OAAS,QAAQ,KAHrC,WAIO,CAAI,EAAC,IAAI,IAJhB,aAKS,CAAI,EAAC,MAAM,IALpB,UAMM,CAAI,EAAC,SAAW,SAAW,sBAAwB,MAAS,IANlE,kBAOc,CAAI,EAAC,MAAM,QAY4B,CAAI,EAAC,KAAK,cAnB/D,EAUW,GAAU,CAClB,EAAM,gBAAe,KAEjB,CAAI,EAAC,WAET,EAAK,IACL,CAAI,EAAC,QAAO,EACd,CAAC,MAjBF,cAsBA,+BAiBiB,GAAI,uBAAO,CAAI,EAAC,mBAA3B,CAAI,EAAC,MAAI,WAAgC,EAAI,SAAJ,EAAI,MAAJ,CAAI,IAjBnD,+BAOgB,QAAO,EAAE,CAAI,EAAC,QAAM,EAAI,CAAI,EAAC,MAAO,UAAS,EAAE,CAAI,EAAC,+BAPpE,uDAIe,CAAI,EAAC,OAAS,QAAQ,GAJrC,aAKW,CAAI,EAAC,WALhB,kBAMc,CAAI,EAAC,MAAM,QAW4B,CAAI,EAAC,KAAK,cAjB/D,EAQW,GAAU,CAClB,EAAM,gBAAe,KAEjB,CAAI,EAAC,WAET,EAAK,IACL,CAAI,EAAC,QAAO,EACd,CAAC,MAfF,cAvBE,CAAI,EAAC,MAAI,GAAK,CAAI,EAAC,SAAQ,0BAlBnC,aACY,EAAI,SAAJ,CAAI,YADhB,OAEE,CAAE,MAFJ,oGASY,CAAI,cAThB,EAUY,GAAU,GACnB,EAAO,EAAM,WAAa,MAAK,IAC/B,EAAa,GACf,CAAC,YAhEK,8IC9HR,KA6IQ,EAAS,iBA4FP,GAAa,EAAC,EAAmB,SACxC,mEA0B6B,EAAS,EAAG,SAAW,MAAM,EAApD,GAAI,qBAAO,EAAI,uCADb,EAAI,oFADC,EAAI,GAAI,UAAQ,mEAQzB,EAAC,MAAE,KAAH,CAAW,qBAAO,EAAO,OAAzB,CAAC,MAAD,CAAC,WADC,EAAO,YA/Bb,6BAsBc,EAAU,IAAG,EAAY,EAAG,EAAK,WAtB/C,SACK,EAAU,EAAG,EAAY,MAAS,IADvC,gBAEc,EAAU,KAFxB,iBAGa,EAAkB,KAH/B,iBAIe,EAAW,OAJ1B,+BAQwB,EAAY,EAAG,eAAiB,GAAE,kDADvC,EAAQ,uBAGX,EAAO,KAAK,EAAU,GAAI,EAAQ,kBAC9B,EAAU,6FAX9B,uBAY0B,EAAU,GAAI,KAAE,MAAG,EAAK,UAZlD,WAgBE,EAAQ,cAhBV,EAiBU,EAAW,kBAjBrB,EAkBe,EAAgB,kBAlB/B,EAmBe,EAAgB,MAnB/B,IAlNK,EAGL,CACC,mBAAkB,CAChB,KAAI,CAAI,KAAM,EAAI,EAClB,MAAK,CAAI,KAAM,EAAK,GAEtB,OAAM,CACJ,KAAI,CAAI,KAAM,EAAK,EACnB,MAAK,CAAI,KAAM,EAAK,GAEtB,cAAa,CACX,KAAI,CAAI,KAAM,EAAI,EAClB,MAAK,CAAI,KAAM,EAAI,GAErB,gBAAe,CACb,KAAI,CAAI,KAAM,GAAO,MAAO,EAAI,EAChC,MAAK,CAAI,KAAM,EAAI,GAErB,eAAc,CACZ,KAAI,CAAI,KAAM,GAAM,MAAO,EAAK,EAChC,MAAK,CAAI,KAAM,GAAO,MAAO,EAAI,GAEnC,YAAW,CACT,KAAI,CAAI,KAAM,GAAM,MAAO,EAAK,EAChC,MAAK,CAAI,KAAM,GAAO,MAAO,EAAI,GAEnC,YAAW,CACT,KAAI,CAAI,KAAM,GAAM,MAAO,EAAK,EAChC,MAAK,CAAI,KAAM,GAAO,MAAO,EAAI,GAEnC,mBAAkB,CAChB,KAAI,CAAI,KAAM,GAAO,MAAO,EAAI,EAChC,MAAK,CAAI,KAAM,GAAO,MAAO,EAAI,GAEnC,kBAAiB,CACf,KAAI,CAAI,KAAM,EAAI,EAClB,MAAK,CAAI,KAAM,EAAK,GAEtB,uBAAsB,CACpB,KAAI,CAAI,KAAM,GAAO,MAAO,EAAI,EAChC,MAAK,CAAI,KAAM,GAAO,MAAO,EAAI,GAEnC,aAAY,CACV,KAAI,CAAI,KAAM,GAAM,MAAO,EAAK,EAChC,MAAK,CAAI,KAAM,GAAM,MAAO,EAAK,GAEnC,OAAM,CACJ,KAAI,CAAI,KAAM,EAAK,EACnB,MAAK,CAAI,KAAM,EAAK,IAIlB,EAAmF,CACvF,uBAAsB,CACpB,KAAM,GACN,MAAO,EAAI,GAMb,EAAI,aAAG,EAAE,EACT,EAAQ,iBAAG,EAAK,EAChB,EAAO,gBAAG,EAAE,EACZ,EAAU,mBAAG,EAAE,EACf,EAAQ,iBAAG,EAAK,EAChB,EAAiB,0BAAG,EAAK,EACzB,EAAmB,4BAAG,EAAK,EAC3B,EAAO,gBAAG,EAAK,EACf,EAAK,cAAG,EAAK,EAEb,EAAO,gBAAI,GAAW,CAAC,CAAC,EACxB,EAAO,gBAAG,MAAS,EACnB,EAAS,kBAAG,EAAK,EACjB,EAAK,cAAG,EAAE,EACV,EAAM,eAAG,EAAK,EACd,EAAQ,iBAAG,EAAI,EACf,EAAc,uBAAG,IAAI,EACrB,EAAgB,yBAAG,EAAE,EACrB,EAAU,mBAAG,MAAS,EACtB,EAAS,kBAAG,MAAS,EACrB,EAAW,oBAAG,MAAS,EACvB,EAAS,kBAAG,MAAS,EACrB,EAAS,kBAAG,EAAK,EA8Bf,EAAU,EAAO,EAAK,EACtB,EAAiB,EAAO,EAAK,EAE3B,GAAU,MAAY,EAAO,WAAU,MAAM,MAAM,EACnD,GAAc,MAClB,GAAO,WAAU,UAAQ,YAAc,MAAM,KAAM,GAAI,CAAM,EAAK,QAAQ,IAEtE,GAAc,QAClB,QAAO,EAAE,eACI,gBAAc,WAAa,gBAAc,WAAa,OAAS,cAC/D,gBAAc,WAAa,OAAS,GACjD,UAAS,WAAW,iBACpB,MAAO,MAEH,GAAY,MAChB,KAEM,QAAS,EAAc,EACvB,UAAW,EAAgB,GAE7B,EAAK,WAGF,GACP,EACA,EACA,EACA,EACA,KACM,EAAkB,EAAS,OAAS,QACpC,EAAW,EAAuB,KAAe,OAElD,QACI,OAGH,EAAiB,EAAqB,KAAe,UAEvD,GAAY,IAAmB,OAC1B,EAGL,GAAa,EAAS,QAAU,OAC3B,EAAS,MAGX,EAAS,IAClB,KAEM,GAAY,MAChB,GAAmB,OAAO,EAAQ,IAAE,CAAO,OAAM,EAAU,GAAI,EAAQ,GAAG,EAAM,IAE5E,GAAmB,MACvB,GAAmB,OAAO,EAAQ,IAAE,CAAc,MAAK,EAAc,IAAK,EAAO,EAAE,EAAM,IAErF,GAAY,cAGd,MACA,MACA,QACA,iBACA,EAAQ,EAAG,WAAa,cACxB,EAAmB,EAAG,eAAiB,GACvC,EAAK,EAAG,QAAU,GAClB,EAAQ,EAAG,WAAa,GACxB,EAAO,KAAI,EAAc,EAAG,UAAY,GACxC,EAAU,EAAG,aAAe,GAC5B,EAAM,EAAG,SAAW,IAEnB,OAAO,OAAO,EACd,KAAK,GAAG,GAEP,GAAkB,MAAY,EAAS,GAAI,EAAS,YAEjD,IAAmB,CACtB,EAAO,KAEX,EAAU,GACZ,UAES,IAAmB,CACtB,EAAO,KAEX,EAAU,GACZ,UAES,GAAY,EAAmB,CAClC,EAAQ,IAEV,EAAO,GAAI,EAAO,GAAE,CAAK,CAC7B,gCA0CC,EAAI,gBAEF,IAFF,CAAI,QAUQ,IARV,CAQuB,MAAC,EAAK,IAR7B,+BAMc,EAAY,QAAQ,EAAY,EAAE,MAAO,EAAI,EAAK,EAAK,UANrE,UAsBW,EAAc,IAAI,GAAI,qBAAO,qCARpB,WAAa,YAAY,8BAEV,EAAU,GAAI,GAAE,GAAI,EAAK,KAN5D,mCACgB,oCACA,+BACL,EAAc,4DAEV,EAAY,iEAEV,EAAc,wBACP,GAAU,GAC/B,EAAiB,KACnB,EAEU,iDAxBb,CAAI,aAAJ,EAAI,0CAEF,yCAEgB,EAAQ,MAFxB,SAGO,EAAQ,KAAI,EAAY,EAAG,QAAU,MAAS,IAHrD,oBAIkB,EAAQ,KAAI,EAAY,EAAG,EAAY,MAAS,IAJlE,aAKW,EAAQ,KAAI,EAAY,EAAG,EAAI,MAAS,QAPrD,CAAI,UA4BI,EAAa,MAAC,EAAI,cA7BxB,EAAU,yCAxCP,eCxNR,IAAa,IAAmD,CAC9D,MAAO,CACL,QAAS,YACT,MAAO,CACL,CAAE,EAAG,UAAW,YAAa,UAAW,cAAe,QAAS,eAAgB,OAAQ,EACxF,CACE,EAAG,wKACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CAAE,EAAG,UAAW,YAAa,UAAW,cAAe,QAAS,eAAgB,OAAQ,EACxF,CAAE,EAAG,WAAY,YAAa,UAAW,cAAe,QAAS,eAAgB,OAAQ,CAC3F,CACF,EACA,MAAO,CACL,QAAS,YACT,MAAO,CACL,CACE,EAAG,4KACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,6MACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,6OACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,4MACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,CACF,CACF,CACF,ECjDa,IAAsD,CACjE,QAAS,GACT,SAAU,GACV,GAAI,GACJ,IAAK,GACL,OAAQ,GACR,SAAU,GACV,IAAK,GACL,MAAO,EACT,iTCnBA,aAsCI,EAAO,yBACP,EAAK,eAAwC,MAAS,EACtD,EAAQ,iBAAG,EAAI,EACf,EAAQ,iBAAG,EAAK,EACT,EAAS,cAAG,EAAE,EACd,EAAS,cAAG,EAAE,EACrB,EAAa,sBAAG,EAAK,EACrB,EAAmB,4BAAG,EAAK,EAE3B,EAAK,cAAG,EAAK,EACb,EAAU,mBAAG,MAAS,EAGlB,EAAoD,CACxD,QAAS,yEACT,SAAU,iFAGN,EAAe,MACnB,IACG,OAAQ,GAAK,EAAO,GAAO,KAAK,EAChC,IAAK,GAAU,KACR,EAAG,GAAM,EAAM,QAAQ,YAAW,EAClC,EAAO,EAAM,gBAAkB,EAAM,SAAW,EAA6B,GAC7E,EAAO,EAAM,WAAa,EAAM,gBAGjC,EACH,KAAM,EAAM,OAAS,EAAM,IAAM,OAAY,IAAkB,IAC/D,IAAK,EAAM,KAAO,IAAsB,GACxC,eAAgB,aACD,GAAW,CAAI,mBAAmB,IAC7C,GAAW,CAAI,EAEvB,CAAC,GAGC,EAAe,aAAmB,EAAK,GAAK,UAAY,EAAK,EAAG,EAAK,EAAG,IAAI,EAC5E,EAAc,QAEhB,CAAe,IAAK,MAAI,EACxB,CAAe,EAAC,KAAM,GAAU,EAAM,QAAK,EAAK,CAAe,KAExD,GAGL,EAAmB,EAAS,OAEzB,CAAe,EAAC,IAAI,OAAS,IACrC,EAEK,EAAgB,GAAuB,CACvC,OAAQ,GAAI,EAAK,cAEjB,EAAK,QAAK,EAAK,CAAc,EAAE,CAC7B,EAAa,cAAW,EAAK,KAAK,QAGxC,CAEA,EAAQ,EAAK,kBACJ,EAAK,KAAK,CAHnB,CAIF,MAGD,4BAQQ,CAAe,EAAI,GAAQ,EAAO,OAAK,EAApB,IAAM,KACtB,EAAoB,QAAG,CAAM,EAAC,gBAAkB,IAAI,EACpD,EAAM,QAAG,CAAc,MAAK,CAAM,EAAC,KAAK,EACxC,EAAO,MAAG,GAAO,EAAC,CAAM,EAAC,MAAI,EAAI,CAAM,EAAC,IAAG,EAC3C,EAAc,MAAG,EAAQ,GAAI,EAAO,EAAC,CAAM,EAAC,QAAQ,MAE3D,8BAuBa,EAAW,+BAEhB,EAAI,MACD,KADH,CACO,uBAAO,CAAM,EAAC,sBADrB,CAAI,MAAJ,CAAI,aAIJ,EAAI,MACF,IADF,CAAI,KACF,WAOQ,CAAM,EAAC,IAAI,OAAK,SAAU,IAAO,KACrC,+BACI,CAAO,EAAC,CAAC,IADb,mBAGe,CAAO,EAAC,WAAW,IAHlC,qBAIiB,CAAO,EAAC,aAAa,IAJtC,sBAKkB,CAAO,EAAC,cAAc,IALxC,WAMO,CAAO,EAAC,MAAQ,MAAM,OAN7B,eAOa,CAAO,EAAC,MAAQ,MAAM,SAPnC,OARJ,KADF,CAAI,WACF,YACQ,CAAM,EAAC,IAAI,OAAS,MAAM,IADlC,aAES,CAAM,EAAC,IAAI,QAAU,MAAM,IAFpC,cAGU,CAAM,EAAC,IAAI,SAAW,WAAW,QAJ7C,CAAI,aALF,CAAM,EAAC,KAAI,OAIN,CAAM,EAAC,KAAG,2BAfb,CAAM,MAAK,CAAO,IAAG,CAAM,EAAC,MAAQ,EAAE,YAKpC,CAAM,EAAC,WAAS,EAAI,CAAM,EAAC,KAAK,YAG/B,CAAM,EAAC,aAAe,EAAU,KAAM,EAAU,OAAI,CAAM,EAAC,QAAU,OAAS,EAV3F,qEAGE,EAAQ,yBACR,CAAM,2BACG,CAAc,sBACvB,EAAK,2DAEO,CAAM,eACJ,EAAY,EAAC,CAAM,iCAGxB,2CAvBb,+BASc,CAAoB,GAAK,QAAO,EAAE,CAAoB,EAAE,MAAO,EAAI,EAAK,EAAK,aAT3F,iFAEqC,CAAM,EAAC,8CACH,CAAM,EAAC,OAAS,+CAChB,CAAM,EAAC,OAAS,8CACjB,CAAM,EAAC,OAAS,aALxD,WAMO,CAAc,EAAG,QAAU,MAAS,IAN3C,iBAOa,CAAc,IAAI,CAAM,EAAC,WAAS,EAAI,CAAM,EAAC,MAAS,MAAS,IAP5E,eAQW,CAAc,KAAI,CAAoB,EAAG,EAAI,MAAS,QARjE,OAdJ,iCACqB,CAAe,EAAC,SAAW,EAAI,iBAAmB,KAAK,EAAS,MAAO,EAAS,IAAK,KAAE,gDAD5G,EAIQ,EAAS,KAJjB,eAKa,EAAQ,EAAG,OAAS,OAAO,IALxC,gBAMc,EAAU,SANxB,MAFO,4GCrGR,KAMC,QAQE,KARF,CAQM,gDARN,uCAGyB,qBAAuB,iBAAiB,IAHjE,8HAFO,eCMR,IAAa,GAAgB,GAA8B,CAAC,CAAC,EAE7D,SAAgB,GAAgB,EAAyC,CAkBvE,OAjBA,GAAc,OAAQ,GAAY,CAChC,EAAQ,KAAK,CAAC,EACd,IAAI,EAAU,EAAE,QAYhB,OAVI,IAAY,SACd,EAAU,EAAE,QAAU,QAAU,IAAO,MAGrC,EAAU,GACZ,eAAiB,CACf,GAAmB,CAAC,CACtB,EAAG,CAAO,EAGL,CACT,CAAC,EAEM,CACT,CAEA,SAAgB,GAAmB,EAAsB,CACvD,GAAc,OAAQ,GAAY,EAAQ,OAAQ,GAAU,IAAU,CAAC,CAAC,CAC1E,CCtBA,IAAM,IAAkB,GAA0C,CAChE,IAAM,EAAO,SAAS,eAAe,CAAS,EAE9C,GAAI,EAAM,OAAO,EAEjB,IAAM,EAAa,SAAS,cAAc,mBAAmB,EAAU,GAAG,EAE1E,GAAI,aAAsB,YAAa,OAAO,EAE9C,IAAM,EAAS,SAAS,cAAc,UAAU,EAAU,GAAG,EAI7D,OAFI,aAAkB,YAAoB,EAEnC,IACT,EAEM,KAAiB,EAAsB,IAC3C,GAAY,EAAQ,QAAQ,OAAO,GAAK,EAAQ,eAAiB,OAEnE,SAAgB,IACd,EACA,EACA,EACA,CACA,IAAM,EAAS,IAAc,EAAS,CAAQ,EAE9C,GAAI,CAAC,EAAQ,OAEb,IAAM,EAAoB,EAAO,cAAc,gBAAgB,EAE/D,GAAI,EAAmB,CACrB,EAAkB,YAAc,EAEhC,MACF,CAEA,IAAM,EAAY,SAAS,cAAc,KAAK,EAC9C,EAAU,UAAY,gBACtB,EAAU,YAAc,EACxB,EAAO,YAAY,CAAS,CAC9B,CAEA,SAAgB,IAAgB,EAAsB,CACpD,EAAQ,UAAU,OAAO,OAAO,EAChC,EAAQ,gBAAgB,cAAc,IACvB,EAAQ,QAAQ,OAAO,GAAK,EAAQ,gBACzB,cAAc,gBAAgB,IAC7C,OAAO,CACpB,CAQA,SAAgB,GAAgB,EAA2B,CACzD,IAAM,EAAO,GAAQ,SAErB,EADwB,iBAAiB,gBACzC,EAAW,QAAS,GAAS,EAAK,OAAO,CAAC,EAG1C,EADqB,iBAAiB,QACtC,EAAQ,QAAS,GAAU,CACrB,aAAiB,cACnB,EAAM,UAAU,OAAO,OAAO,EAC9B,EAAM,gBAAgB,cAAc,EAExC,CAAC,CACH,CAEA,SAAgB,GACd,EACA,EACA,EACS,CACT,IAAM,EAAU,IAAe,CAAS,EAClC,EAAQ,EAAU,CAAK,EAkB7B,OAhBI,GACE,IACF,EAAQ,UAAU,IAAI,OAAO,EAC7B,EAAQ,aAAa,eAAgB,MAAM,EAC3C,IAAmB,EAAS,CAAK,GAGnC,GAAgB,CAAE,KAAM,EAAO,MAAO,OAAQ,CAAC,EAExC,KAGL,GACF,IAAgB,CAAO,EAGlB,GACT,CAEA,SAAgB,GAAc,EAAuC,CACnE,OAAO,GAAiC,MAAQ,OAAO,CAAK,EAAE,KAAK,EAAE,SAAW,EAC5E,gCACA,IACN,CC7GA,IAAa,IAAkB,EAAe,EAAyB,WACrE,IAAW,SAAW,IAAI,EAAM,GAAK,KAAK,EAAM,IAErC,GAAgB,GACvB,GAAU,KAAoC,GAE9C,OAAO,GAAU,SAAiB,EAEA,GAAG,IAK9B,IAAqB,GAAgC,CAChE,GAAI,CAAC,EACH,MAAO,CAAC,CAAE,KAAM,OAAQ,KAAM,EAAG,CAAC,EAGpC,IAAM,EAAsB,CAAC,EACvB,EAAQ,mDACV,EAAY,EAChB,IAAK,IAAM,KAAS,EAAM,SAAS,CAAK,EAAG,CACzC,IAAM,EAAa,EAAM,OAAS,EAClC,EAAM,KAAK,CAAE,KAAM,OAAQ,KAAM,EAAM,MAAM,EAAW,CAAU,CAAE,CAAC,EACrE,IAAM,GAAe,EAAM,IAAM,IAAI,KAAK,EACpC,GAAe,EAAM,IAAM,IAAI,KAAK,EACpC,EAAyB,EAAc,SAAW,SACxD,EAAM,KAAK,CAAE,KAAM,QAAS,MAAO,GAAe,EAAa,QAAO,CAAC,EACvE,EAAY,EAAa,EAAM,GAAG,MACpC,CAGA,OAFA,EAAM,KAAK,CAAE,KAAM,OAAQ,KAAM,EAAM,MAAM,CAAS,CAAE,CAAC,EAElD,CACT,EAEa,IAAiB,EAAY,IAAsC,CAC9E,GAAI,EAAK,WAAa,KAAK,UASzB,OARuB,EAAK,YAAqC,OAE9C,SAAS,cAAgB,OACnC,IAGK,EAAK,aAAe,IAAI,QAAQ,UAAW,GAAG,EAAE,QAAQ,UAAW,EAE1E,EAGT,GAAI,EAAK,WAAa,KAAK,aAAc,CACvC,IAAM,EAAU,EAEhB,GAAI,EAAQ,QAAQ,cAAgB,OAClC,MAAO,GAGT,GAAI,EAAQ,QAAQ,MAAO,CACzB,IAAM,EAAyB,EAAQ,QAAQ,cAAgB,SAAW,SAAW,SAErF,OAAO,GAAe,EAAQ,QAAQ,MAAO,CAAM,CACrD,CAEA,IAAM,EAAU,EAAQ,QAExB,GAAI,IAAY,KAAM,MAAO;EAE7B,IAAI,EAAS,GASb,OARA,EAAQ,WAAW,QAAS,GAAU,CACpC,GAAU,GAAc,EAAO,CAAI,CACrC,CAAC,EAEG,IAAY,OAAS,GAAQ,IAAS,IACxC,GAAU;GAGL,CACT,CAEA,GAAI,EAAK,WAAa,KAAK,uBAAwB,CACjD,IAAI,EAAS,GAKb,OAJA,EAAK,WAAW,QAAS,GAAU,CACjC,GAAU,GAAc,EAAO,CAAI,CACrC,CAAC,EAEM,CACT,CAEA,MAAO,EACT,EAEa,IAAqB,EAA4B,IAAmC,CAC/F,GAAI,CAAC,EAAQ,OAAO,EAEpB,IAAM,EAAY,OAAO,aAAa,EAEtC,GAAI,CAAC,GAAa,EAAU,aAAe,EAAG,OAAO,EAErD,IAAM,EAAQ,EAAU,WAAW,CAAC,EAEpC,GAAI,CAAC,EAAO,SAAS,EAAM,cAAc,EAAG,OAAO,EAEnD,IAAM,EAAW,EAAM,WAAW,EAKlC,OAJA,EAAS,mBAAmB,CAAM,EAClC,EAAS,OAAO,EAAM,eAAgB,EAAM,WAAW,EAGhD,GAFU,EAAS,cAEL,EAA6B,CAAM,EAAE,MAC5D,EAEa,IAAoB,GAA2D,CAC1F,GAAI,CAAC,EAAM,OAAO,KAElB,GAAI,EAAK,WAAa,KAAK,aAAc,CACvC,IAAM,EAAU,EAEhB,GAAI,EAAQ,QAAQ,MAAO,OAAO,CACpC,CAEA,OAAO,IACT,EAEM,GAAwB,GAC5B,CAAC,CAAC,GACF,EAAK,WAAa,KAAK,cACtB,EAAqB,SAAS,cAAgB,OAE3C,GAAmB,GAAgD,CACvE,GAAI,CAAC,EAAM,MAAO,GAIlB,GAFI,EAAK,WAAa,KAAK,cAEvB,GAAqB,CAAI,EAAG,MAAO,GAEvC,GAAI,EAAK,WAAa,KAAK,UAAW,CACpC,IAAM,GAAW,EAAK,aAAe,IAAI,QAAQ,UAAW,EAAE,EAK9D,OAFI,GAFmB,EAAK,YAAqC,IAE3B,EAAU,GAEzC,CAAC,EAAQ,KAAK,CACvB,CAEA,MAAO,EACT,EAEM,IACJ,EACA,EACA,IACG,CACH,IAAI,EAAS,EACb,KAAO,GAAU,GAAK,EAAS,EAAS,QAAQ,CAC9C,IAAM,EAAY,EAAS,GACrB,EAAQ,IAAiB,CAAS,EAExC,GAAI,EAAO,OAAO,EAElB,GAAI,GAAgB,CAAS,EAAG,CAC9B,GAAU,IAAc,WAAa,GAAK,EAC1C,QACF,CAEA,OAAO,IACT,CAEA,OAAO,IACT,EAEa,IACX,EACA,IACuB,CAEvB,GAAM,CAAE,iBAAgB,eADV,EAAU,WAAW,CACK,EAExC,GAAI,EAAe,WAAa,KAAK,UAAW,CAC9C,IAAM,EAAS,EAAe,WAE9B,GAAI,CAAC,EAAQ,OAAO,KAEpB,IAAM,EAAW,MAAM,KAAK,EAAO,UAAU,EACvC,EAAc,EACd,EAAQ,EAAS,QAAQ,CAAW,EACpC,EAAa,EAAe,aAAa,QAAU,EACnD,EAAa,IAAc,WAAa,IAAgB,EAAI,IAAgB,EASlF,OANI,GAAgB,CAAW,GAAK,EAG3B,GAAoB,EAFR,IAAc,WAAa,EAAQ,EAAI,EAAQ,EAEjB,CAAS,EAGrD,IACT,CAEA,GAAI,EAAe,WAAa,KAAK,aAAc,CACjD,IAAM,EAAU,EAIhB,OAAO,GAHU,MAAM,KAAK,EAAQ,UAGT,EAFR,IAAc,WAAa,EAAc,EAAI,EAEf,CAAS,CAC5D,CAEA,OAAO,IACT,EAEa,GAAuB,GAI3B,GAHO,EAAU,QAAQ,OAAS,GACV,EAAU,QAAQ,cAAgB,SAAW,SAAW,QAEpD,EAAE,OCvN5B,GAAQ,CACf,WACA,UACA,cACA,YACA,YACA,gBACA,SACA,gBACA,UACA,gBACA,eACA,uBACJ,EACWc,GAAW,CAClB,SAAU,CAAC,EACX,WAAY,GACZ,oBAAqB,GACrB,UAAW,SACX,SAAU,GACV,cAAe,qBACf,QAAS,OAAO,QAAW,UACvB,OAAO,UAAU,UAAU,QAAQ,MAAM,IAAM,GACnD,eAAgB,SAChB,oBAAqB,GACrB,WAAY,GACZ,cAAe,GACf,YAAa,KACb,WAAY,QACZ,YAAa,GACb,cAAe,EACf,eAAgB,EAChB,QAAS,CAAC,EACV,cAAe,GACf,cAAe,GACf,WAAY,GACZ,aAAc,SAAU,EAAK,CACzB,OAAO,OAAO,QAAY,KAAe,QAAQ,KAAK,CAAG,CAC7D,EACA,QAAS,SAAU,EAAW,CAC1B,IAAI,EAAO,IAAI,KAAK,EAAU,QAAQ,CAAC,EACvC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACxB,EAAK,QAAQ,EAAK,QAAQ,EAAI,GAAM,EAAK,OAAO,EAAI,GAAK,CAAE,EAC3D,IAAI,EAAQ,IAAI,KAAK,EAAK,YAAY,EAAG,EAAG,CAAC,EAC7C,MAAQ,GACJ,KAAK,QAAQ,EAAK,QAAQ,EAAI,EAAM,QAAQ,GAAK,MAC7C,GACE,EAAM,OAAO,EAAI,GAAK,GACxB,CAAC,CACb,EACA,cAAe,EACf,qBAAsB,CAAC,EACvB,OAAQ,GACR,OAAQ,UACR,gBAAiB,EACjB,KAAM,SACN,kBAAmB,WACnB,UAAW,yOACX,WAAY,GACZ,IAAK,IAAI,KACT,SAAU,CAAC,EACX,QAAS,CAAC,EACV,YAAa,CAAC,EACd,UAAW,CAAC,EACZ,UAAW,CAAC,EACZ,cAAe,CAAC,EAChB,OAAQ,CAAC,EACT,cAAe,CAAC,EAChB,QAAS,CAAC,EACV,cAAe,CAAC,EAChB,aAAc,CAAC,EACf,sBAAuB,CAAC,EACxB,QAAS,CAAC,EACV,SAAU,OACV,gBAAiB,OACjB,UAAW,uOACX,sBAAuB,GACvB,WAAY,EACZ,OAAQ,GACR,UAAW,GACX,YAAa,GACb,KAAM,EACV,EClFW,GAAU,CACjB,SAAU,CACN,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3D,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,UACJ,CACJ,EACA,OAAQ,CACJ,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EACA,SAAU,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACJ,CACJ,EACA,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC5D,eAAgB,EAChB,QAAS,SAAU,EAAK,CACpB,IAAI,EAAI,EAAM,IACd,GAAI,EAAI,GAAK,EAAI,GACb,MAAO,KACX,OAAQ,EAAI,GAAZ,CACI,IAAK,GACD,MAAO,KACX,IAAK,GACD,MAAO,KACX,IAAK,GACD,MAAO,KACX,QACI,MAAO,IACf,CACJ,EACA,eAAgB,OAChB,iBAAkB,KAClB,YAAa,sBACb,YAAa,kBACb,KAAM,CAAC,KAAM,IAAI,EACjB,cAAe,OACf,eAAgB,QAChB,cAAe,OACf,gBAAiB,SACjB,UAAW,EACf,ECtEW,GAAM,SAAU,EAAQ,EAAQ,CAEvC,OADI,IAAW,IAAK,KAAK,EAAS,IAC1B,MAAQ,GAAQ,MAAM,EAAS,EAAE,CAC7C,EACW,GAAM,SAAU,EAAM,CAAE,MAAQ,MAAS,GAAe,EACnE,SAAgBC,GAAS,EAAI,EAAM,CAC/B,IAAI,EACJ,OAAO,UAAY,CACf,IAAI,EAAQ,KACR,EAAO,UACX,aAAa,CAAC,EACd,EAAI,WAAW,UAAY,CAAE,OAAO,EAAG,MAAM,EAAO,CAAI,CAAG,EAAG,CAAI,CACtE,CACJ,CACA,IAAW,GAAW,SAAU,EAAK,CACjC,OAAO,aAAe,MAAQ,EAAM,CAAC,CAAG,CAC5C,EChBA,SAAgB,GAAY,EAAM,EAAW,EAAM,CAC/C,GAAI,IAAS,GACT,OAAO,EAAK,UAAU,IAAI,CAAS,EACvC,EAAK,UAAU,OAAO,CAAS,CACnC,CACA,SAAgB,GAAc,EAAK,EAAW,EAAS,CACnD,IAAI,EAAI,OAAO,SAAS,cAAc,CAAG,EAMzC,MALA,KAAyB,GACzB,IAAqB,GACrB,EAAE,UAAY,EACV,IAAY,SACZ,EAAE,YAAc,GACb,CACX,CACA,SAAgB,GAAU,EAAM,CAC5B,KAAO,EAAK,YACR,EAAK,YAAY,EAAK,UAAU,CACxC,CACA,SAAgB,GAAW,EAAM,EAAW,CACxC,GAAI,EAAU,CAAI,EACd,OAAO,EACN,GAAI,EAAK,WACV,OAAO,GAAW,EAAK,WAAY,CAAS,CAEpD,CACA,SAAgB,GAAkB,EAAgB,EAAM,CACpD,IAAI,EAAU,GAAc,MAAO,iBAAiB,EAAG,EAAW,GAAc,QAAS,YAAc,CAAc,EAAG,EAAU,GAAc,OAAQ,SAAS,EAAG,EAAY,GAAc,OAAQ,WAAW,EAQjN,GAPI,UAAU,UAAU,QAAQ,UAAU,IAAM,GAC5C,EAAS,KAAO,UAGhB,EAAS,KAAO,OAChB,EAAS,QAAU,QAEnB,IAAS,OACT,IAAK,IAAI,KAAO,EACZ,EAAS,aAAa,EAAK,EAAK,EAAI,EAI5C,OAHA,EAAQ,YAAY,CAAQ,EAC5B,EAAQ,YAAY,CAAO,EAC3B,EAAQ,YAAY,CAAS,EACtB,CACX,CACA,SAAgBC,GAAe,EAAO,CAClC,GAAI,CAKA,OAJI,OAAO,EAAM,cAAiB,WACnB,EAAM,aACP,EAAE,GAET,EAAM,MACjB,MACc,CACV,OAAO,EAAM,MACjB,CACJ,CCpDA,IAAI,GAAY,UAAY,CAAoB,EACrC,GAAa,SAAU,EAAa,EAAW,EAAQ,CAAE,OAAO,EAAO,OAAO,EAAY,YAAc,YAAY,EAAc,EAClI,IAAY,CACnB,EAAG,GACH,EAAG,SAAU,EAAS,EAAW,EAAQ,CACrC,EAAQ,SAAS,EAAO,OAAO,SAAS,QAAQ,CAAS,CAAC,CAC9D,EACA,EAAG,SAAU,EAAS,EAAM,CACxB,EAAQ,UAAU,EAAQ,SAAS,GAAK,GAAK,GAAK,GAAK,WAAW,CAAI,CAAC,CAC3E,EACA,EAAG,SAAU,EAAS,EAAM,CACxB,EAAQ,SAAS,WAAW,CAAI,CAAC,CACrC,EACA,EAAG,SAAU,EAAS,EAAK,CACvB,EAAQ,QAAQ,WAAW,CAAG,CAAC,CACnC,EACA,EAAG,SAAU,EAAS,EAAM,EAAQ,CAChC,EAAQ,SAAU,EAAQ,SAAS,EAAI,GACnC,GAAK,GAAI,IAAI,OAAO,EAAO,KAAK,GAAI,GAAG,EAAE,KAAK,CAAI,CAAC,CAAC,CAC5D,EACA,EAAG,SAAU,EAAS,EAAY,EAAQ,CACtC,EAAQ,SAAS,EAAO,OAAO,UAAU,QAAQ,CAAU,CAAC,CAChE,EACA,EAAG,SAAU,EAAS,EAAS,CAC3B,EAAQ,WAAW,WAAW,CAAO,CAAC,CAC1C,EACA,EAAG,SAAU,EAAG,EAAa,CAAE,OAAO,IAAI,KAAK,WAAW,CAAW,EAAI,GAAI,CAAG,EAChF,EAAG,SAAU,EAAS,EAAS,EAAQ,CACnC,IAAI,EAAa,SAAS,CAAO,EAC7B,EAAO,IAAI,KAAK,EAAQ,YAAY,EAAG,EAAG,GAAK,EAAa,GAAK,EAAG,EAAG,EAAG,EAAG,CAAC,EAElF,OADA,EAAK,QAAQ,EAAK,QAAQ,EAAI,EAAK,OAAO,EAAI,EAAO,cAAc,EAC5D,CACX,EACA,EAAG,SAAU,EAAS,EAAM,CACxB,EAAQ,YAAY,WAAW,CAAI,CAAC,CACxC,EACA,EAAG,SAAU,EAAG,EAAS,CAAE,OAAO,IAAI,KAAK,CAAO,CAAG,EACrD,EAAG,SAAU,EAAS,EAAK,CACvB,EAAQ,QAAQ,WAAW,CAAG,CAAC,CACnC,EACA,EAAG,SAAU,EAAS,EAAM,CACxB,EAAQ,UAAU,EAAQ,SAAS,GAAK,GAAK,GAAK,GAAK,WAAW,CAAI,CAAC,CAC3E,EACA,EAAG,SAAU,EAAS,EAAS,CAC3B,EAAQ,WAAW,WAAW,CAAO,CAAC,CAC1C,EACA,EAAG,SAAU,EAAS,EAAK,CACvB,EAAQ,QAAQ,WAAW,CAAG,CAAC,CACnC,EACA,EAAG,GACH,EAAG,SAAU,EAAS,EAAO,CACzB,EAAQ,SAAS,WAAW,CAAK,EAAI,CAAC,CAC1C,EACA,EAAG,SAAU,EAAS,EAAO,CACzB,EAAQ,SAAS,WAAW,CAAK,EAAI,CAAC,CAC1C,EACA,EAAG,SAAU,EAAS,EAAS,CAC3B,EAAQ,WAAW,WAAW,CAAO,CAAC,CAC1C,EACA,EAAG,SAAU,EAAG,EAAiB,CAC7B,OAAO,IAAI,KAAK,WAAW,CAAe,CAAC,CAC/C,EACA,EAAG,GACH,EAAG,SAAU,EAAS,EAAM,CACxB,EAAQ,YAAY,IAAO,WAAW,CAAI,CAAC,CAC/C,CACJ,EACW,GAAa,CACpB,EAAG,GACH,EAAG,GACH,EAAG,eACH,EAAG,eACH,EAAG,mBACH,EAAG,GACH,EAAG,GACH,EAAG,eACH,EAAG,OACH,EAAG,eACH,EAAG,WACH,EAAG,OACH,EAAG,eACH,EAAG,eACH,EAAG,eACH,EAAG,eACH,EAAG,GACH,EAAG,eACH,EAAG,eACH,EAAG,eACH,EAAG,OACH,EAAG,eACH,EAAG,UACP,EACW,GAAU,CACjB,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,YAAY,CAAG,EAChD,EAAG,SAAU,EAAM,EAAQ,EAAS,CAChC,OAAO,EAAO,SAAS,UAAU,GAAQ,EAAE,EAAM,EAAQ,CAAO,EACpE,EACA,EAAG,SAAU,EAAM,EAAQ,EAAS,CAChC,OAAO,GAAW,GAAQ,EAAE,EAAM,EAAQ,CAAO,EAAI,EAAG,GAAO,CAAM,CACzE,EACA,EAAG,SAAU,EAAM,EAAQ,EAAS,CAChC,OAAO,GAAI,GAAQ,EAAE,EAAM,EAAQ,CAAO,CAAC,CAC/C,EACA,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,SAAS,CAAC,CAAG,EAClD,EAAG,SAAU,EAAM,EAAQ,CACvB,OAAO,EAAO,UAAY,OAEpB,EAAK,QAAQ,EADb,EAAK,QAAQ,EAAI,EAAO,QAAQ,EAAK,QAAQ,CAAC,CAExD,EACA,EAAG,SAAU,EAAM,EAAQ,CAAE,OAAO,EAAO,KAAK,GAAI,EAAK,SAAS,EAAI,EAAE,EAAI,EAC5E,EAAG,SAAU,EAAM,EAAQ,CACvB,OAAO,GAAW,EAAK,SAAS,EAAG,GAAM,CAAM,CACnD,EACA,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,WAAW,CAAC,CAAG,EACpD,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,QAAQ,EAAI,GAAM,EACnD,EAAG,SAAU,EAAM,EAAG,EAAS,CAC3B,OAAO,EAAQ,QAAQ,CAAI,CAC/B,EACA,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,YAAY,EAAG,CAAC,CAAG,EACxD,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,QAAQ,CAAC,CAAG,EACjD,EAAG,SAAU,EAAM,CAAE,OAAQ,EAAK,SAAS,EAAI,GAAK,EAAK,SAAS,EAAI,GAAK,EAAK,EAChF,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,WAAW,CAAC,CAAG,EACpD,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,QAAQ,CAAG,EAC5C,EAAG,SAAU,EAAM,EAAQ,CACvB,OAAO,EAAO,SAAS,SAAS,EAAK,OAAO,EAChD,EACA,EAAG,SAAU,EAAM,CAAE,OAAO,GAAI,EAAK,SAAS,EAAI,CAAC,CAAG,EACtD,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,SAAS,EAAI,CAAG,EACjD,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,WAAW,CAAG,EAC/C,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,QAAQ,CAAG,EAC5C,EAAG,SAAU,EAAM,CAAE,OAAO,EAAK,OAAO,CAAG,EAC3C,EAAG,SAAU,EAAM,CAAE,OAAO,OAAO,EAAK,YAAY,CAAC,EAAE,UAAU,CAAC,CAAG,CACzE,EClIW,GAAsB,SAAU,EAAI,CAC3C,IAAI,EAAK,EAAG,OAAQ,EAAS,IAAO,IAAK,GAAIF,GAAW,EAAI,EAAK,EAAG,KAAM,EAAO,IAAO,IAAK,GAAI,GAAU,EAAI,EAAK,EAAG,SAAU,EAAW,IAAO,IAAK,GAAI,GAAQ,EACpK,OAAO,SAAU,EAAS,EAAM,EAAgB,CAC5C,IAAI,EAAS,GAAkB,EAI/B,OAHI,EAAO,aAAe,QAAa,CAAC,EAC7B,EAAO,WAAW,EAAS,EAAM,CAAM,EAE3C,EACF,MAAM,EAAE,EACR,IAAI,SAAU,EAAG,EAAG,EAAK,CAC1B,OAAO,GAAQ,IAAM,EAAI,EAAI,KAAO,KAC9B,GAAQ,GAAG,EAAS,EAAQ,CAAM,EAClC,IAAM,KAEF,GADA,CAEd,CAAC,EACI,KAAK,EAAE,CAChB,CACJ,EACW,GAAmB,SAAU,EAAI,CACxC,IAAI,EAAK,EAAG,OAAQ,EAAS,IAAO,IAAK,GAAIA,GAAW,EAAI,EAAK,EAAG,KAAM,EAAO,IAAO,IAAK,GAAI,GAAU,EAC3G,OAAO,SAAU,EAAM,EAAa,EAAU,EAAc,CACpD,SAAS,GAAK,CAAC,GAEnB,KAAI,EAAS,GAAgB,EACzB,EACA,EAAW,EACf,GAAI,aAAgB,KAChB,EAAa,IAAI,KAAK,EAAK,QAAQ,CAAC,OACnC,GAAI,OAAO,GAAS,UACrB,EAAK,UAAY,OACjB,EAAa,IAAI,KAAK,CAAI,OACzB,GAAI,OAAO,GAAS,SAAU,CAC/B,IAAI,EAAS,IAAgB,GAAUA,IAAU,WAC7C,EAAU,OAAO,CAAI,EAAE,KAAK,EAChC,GAAI,IAAY,QACZ,EAAa,IAAI,KACjB,EAAW,QAEV,GAAI,GAAU,EAAO,UACtB,EAAa,EAAO,UAAU,EAAM,CAAM,OAEzC,GAAI,KAAK,KAAK,CAAO,GACtB,OAAO,KAAK,CAAO,EACnB,EAAa,IAAI,KAAK,CAAI,MAEzB,CAED,IAAK,IADD,EAAU,IAAK,GAAG,EAAM,CAAC,EACpB,EAAI,EAAG,EAAa,EAAG,EAAW,GAAI,EAAI,EAAO,OAAQ,IAAK,CACnE,IAAI,EAAQ,EAAO,GACf,EAAc,IAAU,KACxB,EAAU,EAAO,EAAI,KAAO,MAAQ,EACxC,GAAI,GAAW,IAAU,CAAC,EAAS,CAC/B,GAAY,GAAW,GACvB,IAAI,EAAQ,IAAI,OAAO,CAAQ,EAAE,KAAK,CAAI,EACtC,IAAU,EAAU,KACpB,EAAI,IAAU,IAAe,UAAT,QAAoB,CACpC,GAAI,IAAU,GACd,IAAK,EAAM,EAAE,EACjB,CAAC,CAET,MACU,IACN,GAAY,IACpB,CACA,EACI,CAAC,GAAU,CAAC,EAAO,WACb,IAAI,KAAK,IAAI,KAAK,EAAE,YAAY,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACnD,IAAI,KAAK,IAAI,KAAK,EAAE,SAAS,EAAG,EAAG,EAAG,CAAC,CAAC,EAClD,EAAI,QAAQ,SAAU,EAAI,CACtB,IAAI,EAAK,EAAG,GAAI,EAAM,EAAG,IACzB,MAAQ,GAAa,EAAG,EAAY,EAAK,CAAM,GAAK,CACxD,CAAC,EACD,EAAa,EAAU,EAAa,MACxC,CACJ,CACA,GAAI,EAAE,aAAsB,MAAQ,CAAC,MAAM,EAAW,QAAQ,CAAC,GAAI,CAC/D,EAAO,aAAiB,MAAM,0BAA4B,CAAQ,CAAC,EACnE,MACJ,CAGA,OAFI,IAAa,IACb,EAAW,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3B,CA1DsB,CA2DjC,CACJ,EACA,SAAgB,GAAa,EAAO,EAAO,EAAU,CAMjD,OALI,IAAa,IAAK,KAAK,EAAW,IAClC,IAAa,GAIV,EAAM,QAAQ,EAAI,EAAM,QAAQ,EAH3B,IAAI,KAAK,EAAM,QAAQ,CAAC,EAAE,SAAS,EAAG,EAAG,EAAG,CAAC,EACjD,IAAI,KAAK,EAAM,QAAQ,CAAC,EAAE,SAAS,EAAG,EAAG,EAAG,CAAC,CAGzD,CAOA,IAAW,IAAY,SAAU,EAAI,EAAK,EAAK,CAC3C,OAAO,EAAK,KAAK,IAAI,EAAK,CAAG,GAAK,EAAK,KAAK,IAAI,EAAK,CAAG,CAC5D,EACW,GAAgC,SAAU,EAAO,EAAS,EAAS,CAC1E,OAAO,EAAQ,KAAO,EAAU,GAAK,CACzC,EACW,IAAe,SAAU,EAAsB,CACtD,IAAI,EAAQ,KAAK,MAAM,EAAuB,IAAI,EAAG,GAAW,EAAuB,EAAQ,MAAQ,GACvG,MAAO,CAAC,EAAO,EAAS,EAAuB,EAAQ,KAAO,EAAU,EAAE,CAC9E,EACW,IAAW,CAClB,IAAK,KACT,EACA,SAAgB,GAAgB,EAAQ,CACpC,IAAI,EAAQ,EAAO,YACf,EAAU,EAAO,cACjB,EAAU,EAAO,eACrB,GAAI,EAAO,UAAY,OAAW,CAC9B,IAAI,EAAU,EAAO,QAAQ,SAAS,EAClC,EAAa,EAAO,QAAQ,WAAW,EACvC,EAAa,EAAO,QAAQ,WAAW,EACvC,EAAQ,IACR,EAAQ,GAER,IAAU,GAAW,EAAU,IAC/B,EAAU,GAEV,IAAU,GAAW,IAAY,GAAc,EAAU,IACzD,EAAU,EAAO,QAAQ,WAAW,EAC5C,CACA,GAAI,EAAO,UAAY,OAAW,CAC9B,IAAI,EAAQ,EAAO,QAAQ,SAAS,EAChC,EAAa,EAAO,QAAQ,WAAW,EAC3C,EAAQ,KAAK,IAAI,EAAO,CAAK,EACzB,IAAU,IACV,EAAU,KAAK,IAAI,EAAY,CAAO,GACtC,IAAU,GAAS,IAAY,IAC/B,EAAU,EAAO,QAAQ,WAAW,EAC5C,CACA,MAAO,CAAS,QAAgB,UAAkB,SAAQ,CAC9D,CC7II,OAAO,OAAO,QAAW,aACzB,OAAO,OAAS,SAAU,EAAQ,CAEzB,IADD,MAEe,oBAEnB,GAAI,CAAC,EACD,MAAM,UAAU,4CAA4C,EAOhE,IAAK,IALD,EAAU,SAAU,EAAQ,CACxB,GACA,OAAO,KAAK,CAAM,EAAE,QAAQ,SAAU,EAAK,CAAE,MAAQ,GAAO,GAAO,EAAO,EAAO,CAAC,CAE1F,EACS,EAAK,EAAG,EAAS,EAAM,EAAK,EAAO,OAAQ,IAAM,CACtD,IAAI,EAAS,EAAO,GACpB,EAAQ,CAAM,CAClB,CACA,OAAO,CACX,GCpBJ,IAAIG,GAAsC,UAAY,CASlD,MARA,IAAW,OAAO,QAAU,SAAS,EAAG,CACpC,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,IADT,GAAI,UAAU,GACA,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAC1D,EAAE,GAAK,EAAE,IAEjB,OAAO,CACX,EACOA,GAAS,MAAM,KAAM,SAAS,CACzC,EACI,GAAkD,UAAY,CAC9D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,IAAK,IAAI,EAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,IAAK,IAAI,EAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,OAAO,CACX,EAQI,IAAsB,IAC1B,SAAS,IAAkB,EAAS,EAAgB,CAChD,IAAI,EAAO,CACP,OAAQA,GAASA,GAAS,CAAC,EAAGC,EAAc,EAAG,GAAU,aAAa,EACtE,KAAMC,EACV,EACA,EAAK,UAAY,GAAiB,CAAE,OAAQ,EAAK,OAAQ,KAAM,EAAK,IAAK,CAAC,EAC1E,EAAK,UAAY,CAAC,EAClB,EAAK,eAAiB,CAAC,EACvB,EAAK,cAAgB,CAAC,EACtB,EAAK,MAAQ,EACb,EAAK,kBAAoB,EACzB,EAAK,kBAAoB,GACzB,EAAK,YAAc,GACnB,EAAK,WAAa,GAClB,EAAK,MAAQ,GACb,EAAK,MAAQ,GACb,EAAK,YAAc,GACnB,EAAK,eAAiB,GACtB,EAAK,UAAY,EACjB,EAAK,QAAU,GACf,EAAK,UAAY,GACjB,EAAK,WAAa,EAClB,EAAK,YAAc,GACnB,EAAK,KAAO,GACZ,EAAK,OAAS,GACd,EAAK,IAAM,GACX,EAAK,QAAU,GACf,EAAK,OAAS,GACd,SAAS,GAAuB,CAC5B,EAAK,MAAQ,CACT,eAAgB,SAAU,EAAO,EAAI,CAKjC,OAJI,IAAU,IAAK,KAAK,EAAQ,EAAK,cACjC,IAAO,IAAK,KAAK,EAAK,EAAK,aAC3B,IAAU,IAAO,EAAK,GAAM,GAAK,EAAK,KAAQ,GAAM,EAAK,KAAQ,GAC1D,GACJ,EAAK,KAAK,YAAY,EACjC,CACJ,CACJ,CACA,SAAS,GAAO,CACZ,EAAK,QAAU,EAAK,MAAQ,EAC5B,EAAK,OAAS,GACd,GAAY,EACZ,GAAY,EACZ,GAAY,EACZ,GAAW,EACX,EAAqB,EAChB,EAAK,UACN,EAAM,EACV,EAAW,GACP,EAAK,cAAc,QAAU,EAAK,OAAO,cACrC,EAAK,OAAO,YACZ,EAAiB,EAAK,OAAO,WAAa,EAAK,sBAAwB,MAAS,EAEpF,GAAY,EAAK,GAErB,EAAiB,EACjB,IAAI,EAAW,iCAAiC,KAAK,UAAU,SAAS,EACpE,CAAC,EAAK,UAAY,GAClB,GAAiB,EAErB,GAAa,SAAS,CAC1B,CACA,SAAS,GAA0B,CAE/B,OAAe,EAAK,mBAA2D,YAAY,GACtF,eAAiB,SAAS,aACnC,CACA,SAAS,EAAe,EAAI,CACxB,OAAO,EAAG,KAAK,CAAI,CACvB,CACA,SAAS,GAAmB,CACxB,IAAI,EAAS,EAAK,OACd,EAAO,cAAgB,IAAS,EAAO,aAAe,GAGjD,EAAO,aAAe,IAC3B,OAAO,sBAAsB,UAAY,CAKrC,GAJI,EAAK,oBAAsB,SAC3B,EAAK,kBAAkB,MAAM,WAAa,SAC1C,EAAK,kBAAkB,MAAM,QAAU,SAEvC,EAAK,gBAAkB,OAAW,CAClC,IAAI,GAAa,EAAK,KAAK,YAAc,GAAK,EAAO,WACrD,EAAK,cAAc,MAAM,MAAQ,EAAY,KAC7C,EAAK,kBAAkB,MAAM,MACzB,GACK,EAAK,cAAgB,OAEhB,EADA,EAAK,YAAY,aAEvB,KACR,EAAK,kBAAkB,MAAM,eAAe,YAAY,EACxD,EAAK,kBAAkB,MAAM,eAAe,SAAS,CACzD,CACJ,CAAC,CAET,CACA,SAAS,EAAW,EAAG,CACnB,GAAI,EAAK,cAAc,SAAW,EAAG,CACjC,IAAI,EAAc,EAAK,OAAO,UAAY,QACtC,GAAa,IAAI,KAAQ,EAAK,OAAO,OAAO,GAAK,EAC/C,IAAI,KACJ,IAAI,KAAK,EAAK,OAAO,QAAQ,QAAQ,CAAC,EACxC,EAAW,GAAgB,EAAK,MAAM,EAC1C,EAAY,SAAS,EAAS,MAAO,EAAS,QAAS,EAAS,QAAS,EAAY,gBAAgB,CAAC,EACtG,EAAK,cAAgB,CAAC,CAAW,EACjC,EAAK,sBAAwB,CACjC,CACI,IAAM,QAAa,EAAE,OAAS,QAC9B,GAAY,CAAC,EAEjB,IAAI,EAAY,EAAK,OAAO,MAC5B,EAAmB,EACnB,GAAY,EACR,EAAK,OAAO,QAAU,GACtB,EAAK,iBAAiB,CAE9B,CACA,SAAS,EAAc,EAAM,EAAM,CAC/B,OAAQ,EAAO,GAAM,GAAK,GAAI,IAAS,EAAK,KAAK,KAAK,EAAE,CAC5D,CACA,SAAS,EAAc,EAAM,CACzB,OAAQ,EAAO,GAAf,CACI,IAAK,GACL,IAAK,IACD,MAAO,IACX,QACI,OAAO,EAAO,EACtB,CACJ,CACA,SAAS,GAAqB,CACtB,OAAK,cAAgB,QAAa,EAAK,gBAAkB,QAE7D,KAAI,GAAS,SAAS,EAAK,YAAY,MAAM,MAAM,EAAE,EAAG,EAAE,GAAK,GAAK,GAAI,GAAW,SAAS,EAAK,cAAc,MAAO,EAAE,GAAK,GAAK,GAAI,EAAU,EAAK,gBAAkB,OAEjK,GADC,SAAS,EAAK,cAAc,MAAO,EAAE,GAAK,GAAK,GAElD,EAAK,OAAS,SACd,EAAQ,EAAc,EAAO,EAAK,KAAK,WAAW,GAEtD,IAAI,EAAgB,EAAK,OAAO,UAAY,QACvC,EAAK,OAAO,SACT,EAAK,gBACL,EAAK,uBACL,GAAa,EAAK,sBAAuB,EAAK,OAAO,QAAS,EAAI,IAC9D,EACR,EAAgB,EAAK,OAAO,UAAY,QACvC,EAAK,OAAO,SACT,EAAK,gBACL,EAAK,uBACL,GAAa,EAAK,sBAAuB,EAAK,OAAO,QAAS,EAAI,IAC9D,EACZ,GAAI,EAAK,OAAO,UAAY,QACxB,EAAK,OAAO,UAAY,QACxB,EAAK,OAAO,QAAU,EAAK,OAAO,QAAS,CAC3C,IAAI,EAAW,GAA8B,EAAK,OAAO,QAAQ,SAAS,EAAG,EAAK,OAAO,QAAQ,WAAW,EAAG,EAAK,OAAO,QAAQ,WAAW,CAAC,EAC3I,EAAW,GAA8B,EAAK,OAAO,QAAQ,SAAS,EAAG,EAAK,OAAO,QAAQ,WAAW,EAAG,EAAK,OAAO,QAAQ,WAAW,CAAC,EAC3I,EAAc,GAA8B,EAAO,EAAS,CAAO,EACvE,GAAI,EAAc,GAAY,EAAc,EAAU,CAClD,IAAI,EAAS,IAAa,CAAQ,EAClC,EAAQ,EAAO,GACf,EAAU,EAAO,GACjB,EAAU,EAAO,EACrB,CACJ,KACK,CACD,GAAI,EAAe,CACf,IAAI,EAAU,EAAK,OAAO,UAAY,OAEhC,EAAK,OAAO,QADZ,EAAK,OAAO,QAElB,EAAQ,KAAK,IAAI,EAAO,EAAQ,SAAS,CAAC,EACtC,IAAU,EAAQ,SAAS,IAC3B,EAAU,KAAK,IAAI,EAAS,EAAQ,WAAW,CAAC,GAChD,IAAY,EAAQ,WAAW,IAC/B,EAAU,KAAK,IAAI,EAAS,EAAQ,WAAW,CAAC,EACxD,CACA,GAAI,EAAe,CACf,IAAI,EAAU,EAAK,OAAO,UAAY,OAEhC,EAAK,OAAO,QADZ,EAAK,OAAO,QAElB,EAAQ,KAAK,IAAI,EAAO,EAAQ,SAAS,CAAC,EACtC,IAAU,EAAQ,SAAS,GAAK,EAAU,EAAQ,WAAW,IAC7D,EAAU,EAAQ,WAAW,GAC7B,IAAY,EAAQ,WAAW,IAC/B,EAAU,KAAK,IAAI,EAAS,EAAQ,WAAW,CAAC,EACxD,CACJ,CACA,EAAS,EAAO,EAAS,CAAO,CAnD1B,CAoDV,CACA,SAAS,EAAiB,EAAS,CAC/B,IAAI,EAAO,GAAW,EAAK,sBACvB,GAAQ,aAAgB,MACxB,EAAS,EAAK,SAAS,EAAG,EAAK,WAAW,EAAG,EAAK,WAAW,CAAC,CAEtE,CACA,SAAS,EAAS,EAAO,EAAS,EAAS,CACnC,EAAK,wBAA0B,QAC/B,EAAK,sBAAsB,SAAS,EAAQ,GAAI,EAAS,GAAW,EAAG,CAAC,EAExE,GAAC,EAAK,aAAe,CAAC,EAAK,eAAiB,EAAK,YAErD,EAAK,YAAY,MAAQ,GAAK,EAAK,OAAO,UAEpC,GADE,GAAK,GAAS,GAAM,GAAK,GAAI,EAAQ,IAAO,CAAC,CAC1C,EACX,EAAK,cAAc,MAAQ,GAAI,CAAO,EAClC,EAAK,OAAS,SACd,EAAK,KAAK,YAAc,EAAK,KAAK,KAAK,GAAI,GAAS,EAAE,IACtD,EAAK,gBAAkB,SACvB,EAAK,cAAc,MAAQ,GAAI,CAAO,GAC9C,CACA,SAAS,EAAY,EAAO,CACxB,IAAI,EAAcH,GAAe,CAAK,EAClC,EAAO,SAAS,EAAY,KAAK,GAAK,EAAM,OAAS,IACrD,EAAO,IAAO,GACb,EAAM,MAAQ,SAAW,CAAC,QAAQ,KAAK,EAAK,SAAS,CAAC,IACvD,GAAW,CAAI,CAEvB,CACA,SAAS,EAAK,EAAS,EAAO,EAAS,EAAS,CAC5C,GAAI,aAAiB,MACjB,OAAO,EAAM,QAAQ,SAAU,EAAI,CAAE,OAAO,EAAK,EAAS,EAAI,EAAS,CAAO,CAAG,CAAC,EACtF,GAAI,aAAmB,MACnB,OAAO,EAAQ,QAAQ,SAAU,EAAI,CAAE,OAAO,EAAK,EAAI,EAAO,EAAS,CAAO,CAAG,CAAC,EACtF,EAAQ,iBAAiB,EAAO,EAAS,CAAO,EAChD,EAAK,UAAU,KAAK,CAChB,OAAQ,UAAY,CAAE,OAAO,EAAQ,oBAAoB,EAAO,EAAS,CAAO,CAAG,CACvF,CAAC,CACL,CACA,SAAS,GAAgB,CACrB,GAAa,UAAU,CAC3B,CACA,SAAS,GAAa,CAQlB,GAPI,EAAK,OAAO,MACZ,CAAC,OAAQ,QAAS,SAAU,OAAO,EAAE,QAAQ,SAAU,EAAK,CACxD,MAAM,UAAU,QAAQ,KAAK,EAAK,QAAQ,iBAAiB,SAAW,EAAM,GAAG,EAAG,SAAU,EAAI,CAC5F,OAAO,EAAK,EAAI,QAAS,EAAK,EAAI,CACtC,CAAC,CACL,CAAC,EAED,EAAK,SAAU,CACf,GAAY,EACZ,MACJ,CACA,IAAI,EAAkBD,GAAS,GAAU,EAAE,EAC3C,EAAK,iBAAmBA,GAAS,EAAe,GAAmB,EAC/D,EAAK,eAAiB,CAAC,oBAAoB,KAAK,UAAU,SAAS,GACnE,EAAK,EAAK,cAAe,YAAa,SAAU,EAAG,CAC3C,EAAK,OAAO,OAAS,SACrB,GAAYC,GAAe,CAAC,CAAC,CACrC,CAAC,EACL,EAAK,EAAK,OAAQ,UAAW,EAAS,EAClC,EAAK,oBAAsB,QAC3B,EAAK,EAAK,kBAAmB,UAAW,EAAS,EAEjD,CAAC,EAAK,OAAO,QAAU,CAAC,EAAK,OAAO,QACpC,EAAK,OAAQ,SAAU,CAAe,EACtC,OAAO,eAAiB,OAGxB,EAAK,OAAO,SAAU,YAAa,EAAa,EAFhD,EAAK,OAAO,SAAU,aAAc,EAAa,EAGrD,EAAK,OAAO,SAAU,QAAS,GAAe,CAAE,QAAS,EAAK,CAAC,EAC3D,EAAK,OAAO,aAAe,KAC3B,EAAK,EAAK,OAAQ,QAAS,EAAK,IAAI,EACpC,EAAK,EAAK,OAAQ,QAAS,EAAK,IAAI,GAEpC,EAAK,gBAAkB,SACvB,EAAK,EAAK,SAAU,QAAS,EAAe,EAC5C,EAAK,EAAK,SAAU,CAAC,QAAS,WAAW,EAAG,CAAW,EACvD,EAAK,EAAK,cAAe,QAAS,EAAU,GAE5C,EAAK,gBAAkB,QACvB,EAAK,gBAAkB,QACvB,EAAK,cAAgB,SAIrB,EAAK,EAAK,cAAe,CAAC,WAAW,EAAG,CAAU,EAClD,EAAK,EAAK,cAAe,OAAQ,EAAY,CAAE,QAAS,EAAK,CAAC,EAC9D,EAAK,EAAK,cAAe,QAAS,CAAa,EAC/C,EAAK,CAAC,EAAK,YAAa,EAAK,aAAa,EAAG,CAAC,QAAS,OAAO,EAAG,SANzC,EAAG,CACvB,OAAOA,GAAe,CAAC,EAAE,OAAO,CACpC,CAIwE,EACpE,EAAK,gBAAkB,QACvB,EAAK,EAAK,cAAe,QAAS,UAAY,CAAE,OAAO,EAAK,eAAiB,EAAK,cAAc,OAAO,CAAG,CAAC,EAC3G,EAAK,OAAS,QACd,EAAK,EAAK,KAAM,QAAS,SAAU,EAAG,CAClC,EAAW,CAAC,CAChB,CAAC,GAGL,EAAK,OAAO,YACZ,EAAK,EAAK,OAAQ,OAAQ,EAAM,CAExC,CACA,SAAS,EAAW,EAAU,EAAe,CACzC,IAAI,EAAS,IAAa,OAEpB,EAAK,wBACF,EAAK,OAAO,SAAW,EAAK,OAAO,QAAU,EAAK,IAC7C,EAAK,OAAO,QACZ,EAAK,OAAO,SAAW,EAAK,OAAO,QAAU,EAAK,IAC9C,EAAK,OAAO,QACZ,EAAK,KANjB,EAAK,UAAU,CAAQ,EAOzB,EAAU,EAAK,YACf,EAAW,EAAK,aACpB,GAAI,CACI,IAAW,SACX,EAAK,YAAc,EAAO,YAAY,EACtC,EAAK,aAAe,EAAO,SAAS,EAE5C,OACO,EAAG,CACN,EAAE,QAAU,0BAA4B,EACxC,EAAK,OAAO,aAAa,CAAC,CAC9B,CACI,GAAiB,EAAK,cAAgB,IACtC,GAAa,cAAc,EAC3B,EAAiB,GAEjB,IACC,EAAK,cAAgB,GAAW,EAAK,eAAiB,IACvD,GAAa,eAAe,EAEhC,EAAK,OAAO,CAChB,CACA,SAAS,EAAc,EAAG,CACtB,IAAI,EAAcA,GAAe,CAAC,EAC9B,CAAC,EAAY,UAAU,QAAQ,OAAO,GACtC,EAAkB,EAAG,EAAY,UAAU,SAAS,SAAS,EAAI,EAAI,EAAE,CAC/E,CACA,SAAS,EAAkB,EAAG,EAAO,EAAW,CAC5C,IAAI,EAAS,GAAKA,GAAe,CAAC,EAC9B,EAAQ,GACP,GAAU,EAAO,YAAc,EAAO,WAAW,WAClD,EAAQ,GAAY,WAAW,EACnC,EAAM,MAAQ,EACd,GAAS,EAAM,cAAc,CAAK,CACtC,CACA,SAAS,GAAQ,CACb,IAAI,EAAW,OAAO,SAAS,uBAAuB,EAGtD,GAFA,EAAK,kBAAoB,GAAc,MAAO,oBAAoB,EAClE,EAAK,kBAAkB,SAAW,GAC9B,CAAC,EAAK,OAAO,WAAY,CAGzB,GAFA,EAAS,YAAY,GAAc,CAAC,EACpC,EAAK,eAAiB,GAAc,MAAO,0BAA0B,EACjE,EAAK,OAAO,YAAa,CACzB,IAAI,EAAK,GAAW,EAAG,EAAc,EAAG,YAAa,EAAc,EAAG,YACtE,EAAK,eAAe,YAAY,CAAW,EAC3C,EAAK,YAAc,EACnB,EAAK,YAAc,CACvB,CACA,EAAK,WAAa,GAAc,MAAO,sBAAsB,EAC7D,EAAK,WAAW,YAAY,GAAc,CAAC,EACtC,EAAK,gBACN,EAAK,cAAgB,GAAc,MAAO,gBAAgB,EAC1D,EAAK,cAAc,SAAW,IAElC,EAAU,EACV,EAAK,WAAW,YAAY,EAAK,aAAa,EAC9C,EAAK,eAAe,YAAY,EAAK,UAAU,EAC/C,EAAS,YAAY,EAAK,cAAc,CAC5C,CACI,EAAK,OAAO,YACZ,EAAS,YAAY,EAAU,CAAC,EAEpC,GAAY,EAAK,kBAAmB,YAAa,EAAK,OAAO,OAAS,OAAO,EAC7E,GAAY,EAAK,kBAAmB,UAAW,EAAK,OAAO,UAAY,EAAI,EAC3E,GAAY,EAAK,kBAAmB,aAAc,EAAK,OAAO,WAAa,CAAC,EAC5E,EAAK,kBAAkB,YAAY,CAAQ,EAC3C,IAAI,EAAe,EAAK,OAAO,WAAa,QACxC,EAAK,OAAO,SAAS,WAAa,OACtC,IAAI,EAAK,OAAO,QAAU,EAAK,OAAO,UAClC,EAAK,kBAAkB,UAAU,IAAI,EAAK,OAAO,OAAS,SAAW,QAAQ,EACzE,EAAK,OAAO,SACR,CAAC,GAAgB,EAAK,QAAQ,WAC9B,EAAK,QAAQ,WAAW,aAAa,EAAK,kBAAmB,EAAK,OAAO,WAAW,EAC/E,EAAK,OAAO,WAAa,QAC9B,EAAK,OAAO,SAAS,YAAY,EAAK,iBAAiB,GAE3D,EAAK,OAAO,QAAQ,CACpB,IAAI,EAAU,GAAc,MAAO,mBAAmB,EAClD,EAAK,QAAQ,YACb,EAAK,QAAQ,WAAW,aAAa,EAAS,EAAK,OAAO,EAC9D,EAAQ,YAAY,EAAK,OAAO,EAC5B,EAAK,UACL,EAAQ,YAAY,EAAK,QAAQ,EACrC,EAAQ,YAAY,EAAK,iBAAiB,CAC9C,CAEA,CAAC,EAAK,OAAO,QAAU,CAAC,EAAK,OAAO,SACnC,EAAK,OAAO,WAAa,OAEpB,OAAO,SAAS,KADhB,EAAK,OAAO,UACU,YAAY,EAAK,iBAAiB,CACtE,CACA,SAAS,EAAU,EAAW,EAAM,EAAY,EAAG,CAC/C,IAAI,EAAgB,GAAU,EAAM,EAAI,EAAG,EAAa,GAAc,OAAQ,EAAW,EAAK,QAAQ,EAAE,SAAS,CAAC,EAuClH,MAtCA,GAAW,QAAU,EACrB,EAAW,GAAK,EAChB,EAAW,aAAa,aAAc,EAAK,WAAW,EAAM,EAAK,OAAO,cAAc,CAAC,EACnF,EAAU,QAAQ,QAAQ,IAAM,IAChC,GAAa,EAAM,EAAK,GAAG,IAAM,IACjC,EAAK,cAAgB,EACrB,EAAW,UAAU,IAAI,OAAO,EAChC,EAAW,aAAa,eAAgB,MAAM,GAE9C,GACA,EAAW,SAAW,GAClB,GAAe,CAAI,IACnB,EAAW,UAAU,IAAI,UAAU,EACnC,EAAK,iBAAmB,EACpB,EAAK,OAAO,OAAS,UACrB,GAAY,EAAY,aAAc,EAAK,cAAc,IACrD,GAAa,EAAM,EAAK,cAAc,GAAI,EAAI,IAAM,CAAC,EACzD,GAAY,EAAY,WAAY,EAAK,cAAc,IACnD,GAAa,EAAM,EAAK,cAAc,GAAI,EAAI,IAAM,CAAC,EACrD,IAAc,gBACd,EAAW,UAAU,IAAI,SAAS,KAK9C,EAAW,UAAU,IAAI,oBAAoB,EAE7C,EAAK,OAAO,OAAS,SACjB,GAAc,CAAI,GAAK,CAAC,GAAe,CAAI,GAC3C,EAAW,UAAU,IAAI,SAAS,EAEtC,EAAK,aACL,EAAK,OAAO,aAAe,GAC3B,IAAc,gBACd,EAAI,GAAM,GACV,EAAK,YAAY,mBAAmB,YAAa,+BAAiC,EAAK,OAAO,QAAQ,CAAI,EAAI,SAAS,EAE3H,GAAa,cAAe,CAAU,EAC/B,CACX,CACA,SAAS,EAAe,EAAY,CAChC,EAAW,MAAM,EACb,EAAK,OAAO,OAAS,SACrB,GAAY,CAAU,CAC9B,CACA,SAAS,EAAqB,EAAO,CAGjC,IAAK,IAFD,EAAa,EAAQ,EAAI,EAAI,EAAK,OAAO,WAAa,EACtD,EAAW,EAAQ,EAAI,EAAK,OAAO,WAAa,GAC3C,EAAI,EAAY,GAAK,EAAU,GAAK,EAIzC,IAAK,IAHD,EAAQ,EAAK,cAAc,SAAS,GACpC,EAAa,EAAQ,EAAI,EAAI,EAAM,SAAS,OAAS,EACrD,EAAW,EAAQ,EAAI,EAAM,SAAS,OAAS,GAC1C,EAAI,EAAY,GAAK,EAAU,GAAK,EAAO,CAChD,IAAI,EAAI,EAAM,SAAS,GACvB,GAAI,EAAE,UAAU,QAAQ,QAAQ,IAAM,IAAM,GAAU,EAAE,OAAO,EAC3D,OAAO,CACf,CAGR,CACA,SAAS,EAAoB,EAAS,EAAO,CAMzC,IAAK,IALD,EAAa,EAAQ,UAAU,QAAQ,OAAO,IAAM,GAClD,EAAQ,QAAQ,SAAS,EACzB,EAAK,aACP,EAAW,EAAQ,EAAI,EAAK,OAAO,WAAa,GAChD,EAAY,EAAQ,EAAI,EAAI,GACvB,EAAI,EAAa,EAAK,aAAc,GAAK,EAAU,GAAK,EAQ7D,IAAK,IAPD,EAAQ,EAAK,cAAc,SAAS,GACpC,EAAa,EAAa,EAAK,eAAiB,EAC9C,EAAQ,GAAK,EACb,EAAQ,EACJ,EAAM,SAAS,OAAS,EACxB,EACN,EAAe,EAAM,SAAS,OACzB,EAAI,EAAY,GAAK,GAAK,EAAI,GAAgB,IAAM,EAAQ,EAAI,EAAe,IAAK,GAAK,EAAW,CACzG,IAAI,EAAI,EAAM,SAAS,GACvB,GAAI,EAAE,UAAU,QAAQ,QAAQ,IAAM,IAClC,GAAU,EAAE,OAAO,GACnB,KAAK,IAAI,EAAQ,GAAK,CAAC,GAAK,KAAK,IAAI,CAAK,EAC1C,OAAO,EAAe,CAAC,CAC/B,CAEJ,EAAK,YAAY,CAAS,EAC1B,EAAW,EAAqB,CAAS,EAAG,CAAC,CAEjD,CACA,SAAS,EAAW,EAAS,EAAQ,CACjC,IAAI,EAAgB,EAAwB,EACxC,EAAa,GAAS,GAAiB,SAAS,IAAI,EACpD,EAAY,IAAY,OAEtB,EACI,EACA,EAAK,mBAAqB,QAAa,GAAS,EAAK,gBAAgB,EACjE,EAAK,iBACL,EAAK,gBAAkB,QAAa,GAAS,EAAK,aAAa,EAC3D,EAAK,cACL,EAAqB,EAAS,EAAI,EAAI,EAAE,EAPpD,EAQF,IAAc,OACd,EAAK,OAAO,MAAM,EAEZ,EAIN,EAAoB,EAAW,CAAM,EAHrC,EAAe,CAAS,CAKhC,CACA,SAAS,EAAe,EAAM,EAAO,CAKjC,IAJA,IAAI,GAAgB,IAAI,KAAK,EAAM,EAAO,CAAC,EAAE,OAAO,EAAI,EAAK,KAAK,eAAiB,GAAK,EACpF,EAAgB,EAAK,MAAM,gBAAgB,EAAQ,EAAI,IAAM,GAAI,CAAI,EACrE,EAAc,EAAK,MAAM,eAAe,EAAO,CAAI,EAAG,EAAO,OAAO,SAAS,uBAAuB,EAAG,EAAe,EAAK,OAAO,WAAa,EAAG,EAAoB,EAAe,sBAAwB,eAAgB,EAAoB,EAAe,sBAAwB,eACxR,EAAY,EAAgB,EAAI,EAAc,EAAW,EACtD,GAAa,EAAe,IAAa,IAC5C,EAAK,YAAY,EAAU,iBAAmB,EAAmB,IAAI,KAAK,EAAM,EAAQ,EAAG,CAAS,EAAG,EAAW,CAAQ,CAAC,EAE/H,IAAK,EAAY,EAAG,GAAa,EAAa,IAAa,IACvD,EAAK,YAAY,EAAU,gBAAiB,IAAI,KAAK,EAAM,EAAO,CAAS,EAAG,EAAW,CAAQ,CAAC,EAEtG,IAAK,IAAI,EAAS,EAAc,EAAG,GAAU,GAAK,IAC7C,EAAK,OAAO,aAAe,GAAK,EAAW,GAAM,GAAI,IAAU,IAChE,EAAK,YAAY,EAAU,iBAAmB,EAAmB,IAAI,KAAK,EAAM,EAAQ,EAAG,EAAS,CAAW,EAAG,EAAQ,CAAQ,CAAC,EAEvI,IAAI,EAAe,GAAc,MAAO,cAAc,EAEtD,OADA,EAAa,YAAY,CAAI,EACtB,CACX,CACA,SAAS,GAAY,CACb,KAAK,gBAAkB,OAI3B,CADA,GAAU,EAAK,aAAa,EACxB,EAAK,aACL,GAAU,EAAK,WAAW,EAE9B,IAAK,IADD,EAAO,SAAS,uBAAuB,EAClC,EAAI,EAAG,EAAI,EAAK,OAAO,WAAY,IAAK,CAC7C,IAAI,EAAI,IAAI,KAAK,EAAK,YAAa,EAAK,aAAc,CAAC,EACvD,EAAE,SAAS,EAAK,aAAe,CAAC,EAChC,EAAK,YAAY,EAAe,EAAE,YAAY,EAAG,EAAE,SAAS,CAAC,CAAC,CAClE,CACA,EAAK,cAAc,YAAY,CAAI,EACnC,EAAK,KAAO,EAAK,cAAc,WAC3B,EAAK,OAAO,OAAS,SAAW,EAAK,cAAc,SAAW,GAC9D,GAAY,CAVc,CAYlC,CACA,SAAS,GAAmB,CACpB,OAAK,OAAO,WAAa,GACzB,EAAK,OAAO,oBAAsB,YAEtC,KAAI,EAAmB,SAAU,EAAO,CAMpC,OALI,EAAK,OAAO,UAAY,QACxB,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,GACrD,EAAQ,EAAK,OAAO,QAAQ,SAAS,EAC9B,GAEJ,EAAE,EAAK,OAAO,UAAY,QAC7B,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,GACrD,EAAQ,EAAK,OAAO,QAAQ,SAAS,EAC7C,EACA,EAAK,wBAAwB,SAAW,GACxC,EAAK,wBAAwB,UAAY,GACzC,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IACf,KAAiB,CAAC,EAEvB,KAAI,EAAQ,GAAc,SAAU,+BAA+B,EACnE,EAAM,MAAQ,IAAI,KAAK,EAAK,YAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAChE,EAAM,YAAc,GAAW,EAAG,EAAK,OAAO,sBAAuB,EAAK,IAAI,EAC9E,EAAM,SAAW,GACb,EAAK,eAAiB,IACtB,EAAM,SAAW,IAErB,EAAK,wBAAwB,YAAY,CAAK,CAPqB,CANvE,CAeJ,CACA,SAAS,IAAa,CAClB,IAAI,EAAY,GAAc,MAAO,iBAAiB,EAClD,EAAmB,OAAO,SAAS,uBAAuB,EAC1D,EACA,EAAK,OAAO,WAAa,GACzB,EAAK,OAAO,oBAAsB,SAClC,EAAe,GAAc,OAAQ,WAAW,GAGhD,EAAK,wBAA0B,GAAc,SAAU,gCAAgC,EACvF,EAAK,wBAAwB,aAAa,aAAc,EAAK,KAAK,cAAc,EAChF,EAAK,EAAK,wBAAyB,SAAU,SAAU,EAAG,CACtD,IAAI,EAASA,GAAe,CAAC,EACzB,EAAgB,SAAS,EAAO,MAAO,EAAE,EAC7C,EAAK,YAAY,EAAgB,EAAK,YAAY,EAClD,GAAa,eAAe,CAChC,CAAC,EACD,EAAiB,EACjB,EAAe,EAAK,yBAExB,IAAI,EAAY,GAAkB,WAAY,CAAE,SAAU,IAAK,CAAC,EAC5D,EAAc,EAAU,qBAAqB,OAAO,EAAE,GAC1D,EAAY,aAAa,aAAc,EAAK,KAAK,aAAa,EAC1D,EAAK,OAAO,SACZ,EAAY,aAAa,MAAO,EAAK,OAAO,QAAQ,YAAY,EAAE,SAAS,CAAC,EAE5E,EAAK,OAAO,UACZ,EAAY,aAAa,MAAO,EAAK,OAAO,QAAQ,YAAY,EAAE,SAAS,CAAC,EAC5E,EAAY,SACR,CAAC,CAAC,EAAK,OAAO,SACV,EAAK,OAAO,QAAQ,YAAY,IAAM,EAAK,OAAO,QAAQ,YAAY,GAElF,IAAI,EAAe,GAAc,MAAO,yBAAyB,EAKjE,OAJA,EAAa,YAAY,CAAY,EACrC,EAAa,YAAY,CAAS,EAClC,EAAiB,YAAY,CAAY,EACzC,EAAU,YAAY,CAAgB,EAC/B,CACQ,YACE,cACC,cAClB,CACJ,CACA,SAAS,IAAc,CACnB,GAAU,EAAK,QAAQ,EACvB,EAAK,SAAS,YAAY,EAAK,YAAY,EACvC,EAAK,OAAO,aACZ,EAAK,aAAe,CAAC,EACrB,EAAK,cAAgB,CAAC,GAE1B,IAAK,IAAI,EAAI,EAAK,OAAO,WAAY,KAAM,CACvC,IAAI,EAAQ,GAAW,EACvB,EAAK,aAAa,KAAK,EAAM,WAAW,EACxC,EAAK,cAAc,KAAK,EAAM,YAAY,EAC1C,EAAK,SAAS,YAAY,EAAM,SAAS,CAC7C,CACA,EAAK,SAAS,YAAY,EAAK,YAAY,CAC/C,CACA,SAAS,IAAgB,CA6BrB,MA5BA,GAAK,SAAW,GAAc,MAAO,kBAAkB,EACvD,EAAK,aAAe,CAAC,EACrB,EAAK,cAAgB,CAAC,EACtB,EAAK,aAAe,GAAc,OAAQ,sBAAsB,EAChE,EAAK,aAAa,UAAY,EAAK,OAAO,UAC1C,EAAK,aAAe,GAAc,OAAQ,sBAAsB,EAChE,EAAK,aAAa,UAAY,EAAK,OAAO,UAC1C,GAAY,EACZ,OAAO,eAAe,EAAM,sBAAuB,CAC/C,IAAK,UAAY,CAAE,OAAO,EAAK,oBAAsB,EACrD,IAAK,SAAU,EAAM,CACb,EAAK,uBAAyB,IAC9B,GAAY,EAAK,aAAc,qBAAsB,CAAI,EACzD,EAAK,qBAAuB,EAEpC,CACJ,CAAC,EACD,OAAO,eAAe,EAAM,sBAAuB,CAC/C,IAAK,UAAY,CAAE,OAAO,EAAK,oBAAsB,EACrD,IAAK,SAAU,EAAM,CACb,EAAK,uBAAyB,IAC9B,GAAY,EAAK,aAAc,qBAAsB,CAAI,EACzD,EAAK,qBAAuB,EAEpC,CACJ,CAAC,EACD,EAAK,mBAAqB,EAAK,aAAa,GAC5C,GAA6B,EACtB,EAAK,QAChB,CACA,SAAS,GAAY,CACjB,EAAK,kBAAkB,UAAU,IAAI,SAAS,EAC1C,EAAK,OAAO,YACZ,EAAK,kBAAkB,UAAU,IAAI,YAAY,EACrD,IAAI,EAAW,GAAgB,EAAK,MAAM,EAC1C,EAAK,cAAgB,GAAc,MAAO,gBAAgB,EAC1D,EAAK,cAAc,SAAW,GAC9B,IAAI,EAAY,GAAc,OAAQ,2BAA4B,GAAG,EACjE,EAAY,GAAkB,iBAAkB,CAChD,aAAc,EAAK,KAAK,aAC5B,CAAC,EACD,EAAK,YAAc,EAAU,qBAAqB,OAAO,EAAE,GAC3D,IAAI,EAAc,GAAkB,mBAAoB,CACpD,aAAc,EAAK,KAAK,eAC5B,CAAC,EAwBD,GAvBA,EAAK,cAAgB,EAAY,qBAAqB,OAAO,EAAE,GAC/D,EAAK,YAAY,SAAW,EAAK,cAAc,SAAW,GAC1D,EAAK,YAAY,MAAQ,GAAI,EAAK,sBAC5B,EAAK,sBAAsB,SAAS,EACpC,EAAK,OAAO,UACR,EAAS,MACT,EAAc,EAAS,KAAK,CAAC,EACvC,EAAK,cAAc,MAAQ,GAAI,EAAK,sBAC9B,EAAK,sBAAsB,WAAW,EACtC,EAAS,OAAO,EACtB,EAAK,YAAY,aAAa,OAAQ,EAAK,OAAO,cAAc,SAAS,CAAC,EAC1E,EAAK,cAAc,aAAa,OAAQ,EAAK,OAAO,gBAAgB,SAAS,CAAC,EAC9E,EAAK,YAAY,aAAa,MAAO,EAAK,OAAO,UAAY,IAAM,GAAG,EACtE,EAAK,YAAY,aAAa,MAAO,EAAK,OAAO,UAAY,KAAO,IAAI,EACxE,EAAK,YAAY,aAAa,YAAa,GAAG,EAC9C,EAAK,cAAc,aAAa,MAAO,GAAG,EAC1C,EAAK,cAAc,aAAa,MAAO,IAAI,EAC3C,EAAK,cAAc,aAAa,YAAa,GAAG,EAChD,EAAK,cAAc,YAAY,CAAS,EACxC,EAAK,cAAc,YAAY,CAAS,EACxC,EAAK,cAAc,YAAY,CAAW,EACtC,EAAK,OAAO,WACZ,EAAK,cAAc,UAAU,IAAI,UAAU,EAC3C,EAAK,OAAO,cAAe,CAC3B,EAAK,cAAc,UAAU,IAAI,YAAY,EAC7C,IAAI,EAAc,GAAkB,kBAAkB,EACtD,EAAK,cAAgB,EAAY,qBAAqB,OAAO,EAAE,GAC/D,EAAK,cAAc,MAAQ,GAAI,EAAK,sBAC9B,EAAK,sBAAsB,WAAW,EACtC,EAAS,OAAO,EACtB,EAAK,cAAc,aAAa,OAAQ,EAAK,cAAc,aAAa,MAAM,CAAC,EAC/E,EAAK,cAAc,aAAa,MAAO,GAAG,EAC1C,EAAK,cAAc,aAAa,MAAO,IAAI,EAC3C,EAAK,cAAc,aAAa,YAAa,GAAG,EAChD,EAAK,cAAc,YAAY,GAAc,OAAQ,2BAA4B,GAAG,CAAC,EACrF,EAAK,cAAc,YAAY,CAAW,CAC9C,CASA,OARK,EAAK,OAAO,YACb,EAAK,KAAO,GAAc,OAAQ,kBAAmB,EAAK,KAAK,KAAK,IAAK,EAAK,sBACxE,EAAK,YAAY,MACjB,EAAK,OAAO,aAAe,EAAE,EAAE,EACrC,EAAK,KAAK,MAAQ,EAAK,KAAK,YAC5B,EAAK,KAAK,SAAW,GACrB,EAAK,cAAc,YAAY,EAAK,IAAI,GAErC,EAAK,aAChB,CACA,SAAS,IAAgB,CAChB,EAAK,iBAGN,GAAU,EAAK,gBAAgB,EAF/B,EAAK,iBAAmB,GAAc,MAAO,oBAAoB,EAGrE,IAAK,IAAI,EAAI,EAAK,OAAO,WAAY,KAAM,CACvC,IAAI,EAAY,GAAc,MAAO,4BAA4B,EACjE,EAAK,iBAAiB,YAAY,CAAS,CAC/C,CAEA,OADA,GAAe,EACR,EAAK,gBAChB,CACA,SAAS,IAAiB,CACjB,KAAK,iBAGV,KAAI,EAAiB,EAAK,KAAK,eAC3B,EAAW,GAAe,EAAK,KAAK,SAAS,SAAS,EACtD,EAAiB,GAAK,EAAiB,EAAS,SAChD,EAAW,GAAe,EAAS,OAAO,EAAgB,EAAS,MAAM,EAAG,EAAS,OAAO,EAAG,CAAc,CAAC,GAElH,IAAK,IAAI,EAAI,EAAK,OAAO,WAAY,KACjC,EAAK,iBAAiB,SAAS,GAAG,UAAY;;UAAuD,EAAS,KAAK,yCAAyC,EAAI;;OANrI,CAQnC,CACA,SAAS,IAAa,CAClB,EAAK,kBAAkB,UAAU,IAAI,UAAU,EAC/C,IAAI,EAAc,GAAc,MAAO,uBAAuB,EAC9D,EAAY,YAAY,GAAc,OAAQ,oBAAqB,EAAK,KAAK,gBAAgB,CAAC,EAC9F,IAAI,EAAc,GAAc,MAAO,iBAAiB,EAExD,OADA,EAAY,YAAY,CAAW,EAC5B,CACU,cACA,aACjB,CACJ,CACA,SAAS,GAAY,EAAO,EAAU,CAC9B,IAAa,IAAK,KAAK,EAAW,IACtC,IAAI,EAAQ,EAAW,EAAQ,EAAQ,EAAK,aACvC,EAAQ,GAAK,EAAK,sBAAwB,IAC1C,EAAQ,GAAK,EAAK,sBAAwB,KAE/C,EAAK,cAAgB,GACjB,EAAK,aAAe,GAAK,EAAK,aAAe,MAC7C,EAAK,aAAe,EAAK,aAAe,GAAK,EAAI,GACjD,EAAK,cAAgB,EAAK,aAAe,IAAM,GAC/C,GAAa,cAAc,EAC3B,EAAiB,GAErB,EAAU,EACV,GAAa,eAAe,EAC5B,GAA6B,EACjC,CACA,SAAS,GAAM,EAAoB,EAAW,CAc1C,GAbI,IAAuB,IAAK,KAAK,EAAqB,IACtD,IAAc,IAAK,KAAK,EAAY,IACxC,EAAK,MAAM,MAAQ,GACf,EAAK,WAAa,SAClB,EAAK,SAAS,MAAQ,IACtB,EAAK,cAAgB,SACrB,EAAK,YAAY,MAAQ,IAC7B,EAAK,cAAgB,CAAC,EACtB,EAAK,sBAAwB,OACzB,IAAc,KACd,EAAK,YAAc,EAAK,aAAa,YAAY,EACjD,EAAK,aAAe,EAAK,aAAa,SAAS,GAE/C,EAAK,OAAO,aAAe,GAAM,CACjC,IAAI,EAAK,GAAgB,EAAK,MAAM,EAAG,EAAQ,EAAG,MAAO,EAAU,EAAG,QAAS,EAAU,EAAG,QAC5F,EAAS,EAAO,EAAS,CAAO,CACpC,CACA,EAAK,OAAO,EACR,GACA,GAAa,UAAU,CAC/B,CACA,SAAS,IAAQ,CACb,EAAK,OAAS,GACT,EAAK,WACF,EAAK,oBAAsB,QAC3B,EAAK,kBAAkB,UAAU,OAAO,MAAM,EAE9C,EAAK,SAAW,QAChB,EAAK,OAAO,UAAU,OAAO,QAAQ,GAG7C,GAAa,SAAS,CAC1B,CACA,SAAS,IAAU,CACX,EAAK,SAAW,QAChB,GAAa,WAAW,EAC5B,IAAK,IAAI,EAAI,EAAK,UAAU,OAAQ,KAChC,EAAK,UAAU,GAAG,OAAO,EAG7B,GADA,EAAK,UAAY,CAAC,EACd,EAAK,YACD,EAAK,YAAY,YACjB,EAAK,YAAY,WAAW,YAAY,EAAK,WAAW,EAC5D,EAAK,YAAc,YAElB,GAAI,EAAK,mBAAqB,EAAK,kBAAkB,WACtD,GAAI,EAAK,OAAO,QAAU,EAAK,kBAAkB,WAAY,CACzD,IAAI,EAAU,EAAK,kBAAkB,WAErC,GADA,EAAQ,WAAa,EAAQ,YAAY,EAAQ,SAAS,EACtD,EAAQ,WAAY,CACpB,KAAO,EAAQ,YACX,EAAQ,WAAW,aAAa,EAAQ,WAAY,CAAO,EAC/D,EAAQ,WAAW,YAAY,CAAO,CAC1C,CACJ,MAEI,EAAK,kBAAkB,WAAW,YAAY,EAAK,iBAAiB,EAExE,EAAK,WACL,EAAK,MAAM,KAAO,OACd,EAAK,SAAS,YACd,EAAK,SAAS,WAAW,YAAY,EAAK,QAAQ,EACtD,OAAO,EAAK,UAEZ,EAAK,QACL,EAAK,MAAM,KAAO,EAAK,MAAM,MAC7B,EAAK,MAAM,UAAU,OAAO,iBAAiB,EAC7C,EAAK,MAAM,gBAAgB,UAAU,GAEzC,wcA8BA,EAAE,QAAQ,SAAU,EAAG,CACnB,GAAI,CACA,OAAO,EAAK,EAChB,MACU,CAAE,CAChB,CAAC,CACL,CACA,SAAS,GAAe,EAAM,CAC1B,OAAO,EAAK,kBAAkB,SAAS,CAAI,CAC/C,CACA,SAAS,GAAc,EAAG,CACtB,GAAI,EAAK,QAAU,CAAC,EAAK,OAAO,OAAQ,CACpC,IAAI,EAAgBA,GAAe,CAAC,EAChC,EAAoB,GAAe,CAAa,EAQhD,EAAY,EAPF,IAAkB,EAAK,OACjC,IAAkB,EAAK,UACvB,EAAK,QAAQ,SAAS,CAAa,GAClC,EAAE,MACC,EAAE,KAAK,UACN,CAAC,EAAE,KAAK,QAAQ,EAAK,KAAK,GACvB,CAAC,EAAE,KAAK,QAAQ,EAAK,QAAQ,KAErC,CAAC,GACD,CAAC,GAAe,EAAE,aAAa,EAC/B,EAAY,CAAC,EAAK,OAAO,qBAAqB,KAAK,SAAU,EAAM,CACnE,OAAO,EAAK,SAAS,CAAa,CACtC,CAAC,EACG,GAAa,IACT,EAAK,OAAO,YACZ,EAAK,QAAQ,EAAK,OAAO,MAAO,GAAO,EAAK,OAAO,SAC7C,EAAK,OAAO,UACZ,EAAK,OAAO,UAAU,EAE5B,EAAK,gBAAkB,QACvB,EAAK,gBAAkB,QACvB,EAAK,cAAgB,QACrB,EAAK,MAAM,QAAU,IACrB,EAAK,MAAM,QAAU,QACrB,EAAW,EAEf,EAAK,MAAM,EACP,EAAK,QACL,EAAK,OAAO,OAAS,SACrB,EAAK,cAAc,SAAW,GAC9B,EAAK,MAAM,EAAK,EAE5B,CACJ,CACA,SAAS,GAAW,EAAS,CACrB,MAAC,GACA,EAAK,OAAO,SAAW,EAAU,EAAK,OAAO,QAAQ,YAAY,GACjE,EAAK,OAAO,SAAW,EAAU,EAAK,OAAO,QAAQ,YAAY,GAEtE,KAAI,EAAa,EAAS,EAAY,EAAK,cAAgB,EAC3D,EAAK,YAAc,GAAc,EAAK,YAClC,EAAK,OAAO,SACZ,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,EACrD,EAAK,aAAe,KAAK,IAAI,EAAK,OAAO,QAAQ,SAAS,EAAG,EAAK,YAAY,EAEzE,EAAK,OAAO,SACjB,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,IACrD,EAAK,aAAe,KAAK,IAAI,EAAK,OAAO,QAAQ,SAAS,EAAG,EAAK,YAAY,GAE9E,IACA,EAAK,OAAO,EACZ,GAAa,cAAc,EAC3B,EAAiB,EAbsC,CAe/D,CACA,SAAS,GAAU,EAAM,EAAU,CAE3B,IAAa,IAAK,KAAK,EAAW,IACtC,IAAI,EAAc,EAAK,UAAU,EAAM,OAAW,CAAQ,EAC1D,GAAK,EAAK,OAAO,SACb,GACA,GAAa,EAAa,EAAK,OAAO,QAAS,IAAa,OAAuB,CAAC,EAAK,eAAjB,CAA+B,EAAI,GAC1G,EAAK,OAAO,SACT,GACA,GAAa,EAAa,EAAK,OAAO,QAAS,IAAa,OAAuB,CAAC,EAAK,eAAjB,CAA+B,EAAI,EAC/G,MAAO,GACX,GAAI,CAAC,EAAK,OAAO,QAAU,EAAK,OAAO,QAAQ,SAAW,EACtD,MAAO,GACX,GAAI,IAAgB,OAChB,MAAO,GAEX,IAAK,IADD,EAAO,CAAC,CAAC,EAAK,OAAO,OAAQ,EAAc,EAAK,OAAO,QAAyC,EAAK,OAAO,QACvG,EAAI,EAAG,EAAI,IAAK,GAAG,EAAI,EAAM,OAAQ,IAAK,CAK1C,GAJL,EAAI,EAAM,GACN,OAAO,GAAM,YACb,EAAE,CAAW,GAER,aAAa,MAClB,IAAgB,QAChB,EAAE,QAAQ,IAAM,EAAY,QAAQ,EACpC,OAAO,EACN,GAAI,OAAO,GAAM,SAAU,CAC5B,IAAI,EAAS,EAAK,UAAU,EAAG,OAAW,EAAI,EAC9C,OAAO,GAAU,EAAO,QAAQ,IAAM,EAAY,QAAQ,EACpD,EACA,CAAC,CACX,MACK,GAAI,OAAO,GAAM,UAClB,IAAgB,QAChB,EAAE,MACF,EAAE,IACF,EAAY,QAAQ,GAAK,EAAE,KAAK,QAAQ,GACxC,EAAY,QAAQ,GAAK,EAAE,GAAG,QAAQ,EACtC,OAAO,CACf,CACA,MAAO,CAAC,CACZ,CACA,SAAS,GAAS,EAAM,CAKpB,OAJI,EAAK,gBAAkB,OAIpB,GAHK,EAAK,UAAU,QAAQ,QAAQ,IAAM,IACzC,EAAK,UAAU,QAAQ,oBAAoB,IAAM,IACjD,EAAK,cAAc,SAAS,CAAI,CAE5C,CACA,SAAS,GAAO,EAAG,CACf,IAAI,EAAU,EAAE,SAAW,EAAK,OAC5B,EAAe,EAAK,OAAO,MAAM,QAAQ,IAAM,GAAW,EAC1D,GACA,GACA,EAAE,EAAE,eAAiB,GAAe,EAAE,aAAa,IACnD,EAAK,QAAQ,EAAK,OAAO,MAAO,GAAM,EAAE,SAAW,EAAK,SAClD,EAAK,OAAO,UACZ,EAAK,OAAO,UAAU,CAEpC,CACA,SAAS,GAAU,EAAG,CAClB,IAAI,EAAcA,GAAe,CAAC,EAC9B,EAAU,EAAK,OAAO,KACpB,EAAQ,SAAS,CAAW,EAC5B,IAAgB,EAAK,OACvB,EAAa,EAAK,OAAO,WACzB,EAAe,EAAK,SAAW,CAAC,GAAc,CAAC,GAC/C,EAAqB,EAAK,OAAO,QAAU,GAAW,CAAC,EAC3D,GAAI,EAAE,UAAY,IAAM,EACpB,IAAI,EAKA,OAJA,EAAK,QAAQ,EAAK,OAAO,MAAO,GAAM,IAAgB,EAAK,SACrD,EAAK,OAAO,UACZ,EAAK,OAAO,UAAU,EAC5B,EAAK,MAAM,EACJ,EAAY,KAAK,EAGxB,EAAK,KAAK,OAGb,GAAI,GAAe,CAAW,GAC/B,GACA,EAAoB,CACpB,IAAI,EAAY,CAAC,CAAC,EAAK,eACnB,EAAK,cAAc,SAAS,CAAW,EAC3C,OAAQ,EAAE,QAAV,CACI,IAAK,IACG,GACA,EAAE,eAAe,EACjB,EAAW,EACX,GAAc,GAGd,GAAW,CAAC,EAChB,MACJ,IAAK,IACD,EAAE,eAAe,EACjB,GAAc,EACd,MACJ,IAAK,GACL,IAAK,IACG,GAAW,CAAC,EAAK,OAAO,aACxB,EAAE,eAAe,EACjB,EAAK,MAAM,GAEf,MACJ,IAAK,IACL,IAAK,IACD,GAAI,CAAC,GAAa,CAAC,EAAS,CACxB,EAAE,eAAe,EACjB,IAAI,EAAgB,EAAwB,EAC5C,GAAI,EAAK,gBAAkB,SACtB,IAAe,IACX,GAAiB,GAAS,CAAa,GAAK,CACjD,IAAI,EAAU,EAAE,UAAY,GAAK,EAAI,GAChC,EAAE,SAGH,EAAE,gBAAgB,EAClB,GAAY,CAAO,EACnB,EAAW,EAAqB,CAAC,EAAG,CAAC,GAJrC,EAAW,OAAW,CAAO,CAMrC,CACJ,MACS,EAAK,aACV,EAAK,YAAY,MAAM,EAC3B,MACJ,IAAK,IACL,IAAK,IACD,EAAE,eAAe,EACjB,IAAI,EAAQ,EAAE,UAAY,GAAK,EAAI,GAC9B,EAAK,eACN,EAAY,KAAO,QACnB,IAAgB,EAAK,OACrB,IAAgB,EAAK,SACjB,EAAE,SACF,EAAE,gBAAgB,EAClB,GAAW,EAAK,YAAc,CAAK,EACnC,EAAW,EAAqB,CAAC,EAAG,CAAC,GAE/B,GACN,EAAW,OAAW,EAAQ,CAAC,EAE9B,IAAgB,EAAK,mBAC1B,GAAW,EAAK,YAAc,CAAK,EAE9B,EAAK,OAAO,aACb,CAAC,GAAa,EAAK,aACnB,EAAK,YAAY,MAAM,EAC3B,EAAW,CAAC,EACZ,EAAK,iBAAiB,GAE1B,MACJ,IAAK,GACD,GAAI,EAAW,CACX,IAAI,EAAQ,CACR,EAAK,YACL,EAAK,cACL,EAAK,cACL,EAAK,IACT,EACK,OAAO,EAAK,cAAc,EAC1B,OAAO,SAAU,EAAG,CAAE,OAAO,CAAG,CAAC,EAClC,EAAI,EAAM,QAAQ,CAAW,EACjC,GAAI,IAAM,GAAI,CACV,IAAI,EAAS,EAAM,GAAK,EAAE,SAAW,GAAK,IAC1C,EAAE,eAAe,GAChB,GAAU,EAAK,QAAQ,MAAM,CAClC,CACJ,MACS,CAAC,EAAK,OAAO,YAClB,EAAK,eACL,EAAK,cAAc,SAAS,CAAW,GACvC,EAAE,WACF,EAAE,eAAe,EACjB,EAAK,OAAO,MAAM,GAEtB,MACJ,QACI,KACR,CACJ,CACA,GAAI,EAAK,OAAS,QAAa,IAAgB,EAAK,KAChD,OAAQ,EAAE,IAAV,CACI,KAAK,EAAK,KAAK,KAAK,GAAG,OAAO,CAAC,EAC/B,KAAK,EAAK,KAAK,KAAK,GAAG,OAAO,CAAC,EAAE,YAAY,EACzC,EAAK,KAAK,YAAc,EAAK,KAAK,KAAK,GACvC,EAAmB,EACnB,GAAY,EACZ,MACJ,KAAK,EAAK,KAAK,KAAK,GAAG,OAAO,CAAC,EAC/B,KAAK,EAAK,KAAK,KAAK,GAAG,OAAO,CAAC,EAAE,YAAY,EACzC,EAAK,KAAK,YAAc,EAAK,KAAK,KAAK,GACvC,EAAmB,EACnB,GAAY,EACZ,KACR,EAEA,GAAW,GAAe,CAAW,IACrC,GAAa,YAAa,CAAC,CAEnC,CACA,SAAS,GAAY,EAAM,EAAW,CAClC,GAAI,IAAc,IAAK,KAAK,EAAY,iBACpC,IAAK,cAAc,SAAW,GAC7B,IACI,CAAC,EAAK,UAAU,SAAS,CAAS,GAC/B,EAAK,UAAU,SAAS,oBAAoB,IAOxD,KAAK,IALD,EAAY,EACV,EAAK,QAAQ,QAAQ,EACrB,EAAK,KAAK,kBAAkB,QAAQ,QAAQ,EAAG,EAAc,EAAK,UAAU,EAAK,cAAc,GAAI,OAAW,EAAI,EAAE,QAAQ,EAAG,EAAiB,KAAK,IAAI,EAAW,EAAK,cAAc,GAAG,QAAQ,CAAC,EAAG,EAAe,KAAK,IAAI,EAAW,EAAK,cAAc,GAAG,QAAQ,CAAC,EAC1Q,EAAmB,GACnB,EAAW,EAAG,EAAW,EACpB,EAAI,EAAgB,EAAI,EAAc,GAAK,IAAS,IACpD,GAAU,IAAI,KAAK,CAAC,EAAG,EAAI,IAC5B,IACyB,EAAI,GAAkB,EAAI,EAC/C,EAAI,IAAgB,CAAC,GAAY,EAAI,GACrC,EAAW,EACN,EAAI,IAAgB,CAAC,GAAY,EAAI,KAC1C,EAAW,IAIvB,MAD2B,KAAK,EAAK,WAAW,iBAAiB,kBAAoB,EAAK,OAAO,WAAa,QAAU,CAAS,CACpH,EAAE,QAAQ,SAAU,EAAS,CAEtC,IAAI,EADO,EAAQ,QACE,QAAQ,EACzB,EAAc,EAAW,GAAK,EAAY,GACzC,EAAW,GAAK,EAAY,EACjC,GAAI,EAAY,CACZ,EAAQ,UAAU,IAAI,YAAY,EAClC,CAAC,UAAW,aAAc,UAAU,EAAE,QAAQ,SAAU,EAAG,CACvD,EAAQ,UAAU,OAAO,CAAC,CAC9B,CAAC,EACD,MACJ,MACK,GAAI,GAAoB,CAAC,EAC1B,OACJ,CAAC,aAAc,UAAW,WAAY,YAAY,EAAE,QAAQ,SAAU,EAAG,CACrE,EAAQ,UAAU,OAAO,CAAC,CAC9B,CAAC,EACG,IAAS,SACT,EAAK,UAAU,IAAI,GAAa,EAAK,cAAc,GAAG,QAAQ,EACxD,aACA,UAAU,EACZ,EAAc,GAAa,IAAc,EACzC,EAAQ,UAAU,IAAI,YAAY,EAC7B,EAAc,GAAa,IAAc,GAC9C,EAAQ,UAAU,IAAI,UAAU,EAChC,GAAa,IACZ,IAAa,GAAK,GAAa,IAChC,IAAU,EAAW,EAAa,CAAS,GAC3C,EAAQ,UAAU,IAAI,SAAS,EAE3C,CAAC,CAjCG,CAkCR,CACA,SAAS,IAAW,CACZ,EAAK,QAAU,CAAC,EAAK,OAAO,QAAU,CAAC,EAAK,OAAO,QACnD,GAAiB,CACzB,CACA,SAAS,GAAK,EAAG,EAAiB,CAE9B,GADI,IAAoB,IAAK,KAAK,EAAkB,EAAK,kBACrD,EAAK,WAAa,GAAM,CACxB,GAAI,EAAG,CACH,EAAE,eAAe,EACjB,IAAI,EAAcA,GAAe,CAAC,EAC9B,GACA,EAAY,KAAK,CAEzB,CACI,EAAK,cAAgB,SACrB,EAAK,YAAY,MAAM,EACvB,EAAK,YAAY,MAAM,GAE3B,GAAa,QAAQ,EACrB,MACJ,MACK,GAAI,EAAK,OAAO,UAAY,EAAK,OAAO,OACzC,OAEJ,IAAI,EAAU,EAAK,OACnB,EAAK,OAAS,GACT,IACD,EAAK,kBAAkB,UAAU,IAAI,MAAM,EAC3C,EAAK,OAAO,UAAU,IAAI,QAAQ,EAClC,GAAa,QAAQ,EACrB,GAAiB,CAAe,GAEhC,EAAK,OAAO,aAAe,IAAQ,EAAK,OAAO,aAAe,IAC1D,EAAK,OAAO,aAAe,KAC1B,IAAM,QACH,CAAC,EAAK,cAAc,SAAS,EAAE,aAAa,IAChD,WAAW,UAAY,CAAE,OAAO,EAAK,YAAY,OAAO,CAAG,EAAG,EAAE,CAG5E,CACA,SAAS,GAAiB,EAAM,CAC5B,OAAO,SAAU,EAAM,CACnB,IAAI,EAAW,EAAK,OAAO,IAAM,EAAO,QAAU,EAAK,UAAU,EAAM,EAAK,OAAO,UAAU,EACzF,EAAiB,EAAK,OAAO,KAAO,IAAS,MAAQ,MAAQ,OAAS,QACtE,IAAY,SACZ,EAAK,IAAS,MAAQ,iBAAmB,kBACrC,EAAQ,SAAS,EAAI,GACjB,EAAQ,WAAW,EAAI,GACvB,EAAQ,WAAW,EAAI,GAE/B,EAAK,gBACL,EAAK,cAAgB,EAAK,cAAc,OAAO,SAAU,EAAG,CAAE,OAAO,GAAU,CAAC,CAAG,CAAC,EAChF,CAAC,EAAK,cAAc,QAAU,IAAS,OACvC,EAAiB,CAAO,EAC5B,GAAY,GAEZ,EAAK,gBACL,GAAO,EACH,IAAY,OAGZ,EAAK,mBAAmB,gBAAgB,CAAI,EAF5C,EAAK,mBAAmB,GAAQ,EAAQ,YAAY,EAAE,SAAS,EAGnE,EAAK,mBAAmB,SACpB,CAAC,CAAC,GACE,IAAY,QACZ,EAAe,YAAY,IAAM,EAAQ,YAAY,EAErE,CACJ,CACA,SAAS,IAAc,CACnB,IAAI,EAAW,CACX,OACA,cACA,aACA,sBACA,aACA,YACA,aACA,aACA,WACA,wBACA,SACA,SACA,gBACA,eACJ,EACI,EAAaC,GAASA,GAAS,CAAC,EAAG,KAAK,MAAM,KAAK,UAAU,EAAQ,SAAW,CAAC,CAAC,CAAC,CAAC,EAAG,CAAc,EACrG,EAAU,CAAC,EACf,EAAK,OAAO,UAAY,EAAW,UACnC,EAAK,OAAO,WAAa,EAAW,WACpC,OAAO,eAAe,EAAK,OAAQ,SAAU,CACzC,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,OAAS,EAC/C,IAAK,SAAU,EAAO,CAClB,EAAK,OAAO,QAAU,GAAe,CAAK,CAC9C,CACJ,CAAC,EACD,OAAO,eAAe,EAAK,OAAQ,UAAW,CAC1C,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,QAAU,EAChD,IAAK,SAAU,EAAO,CAClB,EAAK,OAAO,SAAW,GAAe,CAAK,CAC/C,CACJ,CAAC,EACD,IAAI,EAAW,EAAW,OAAS,OACnC,GAAI,CAAC,EAAW,aAAe,EAAW,YAAc,GAAW,CAC/D,IAAI,EAAoB,GAAU,cAAc,YAAcC,GAAe,WAC7E,EAAQ,WACJ,EAAW,YAAc,EACnB,OAAS,EAAW,cAAgB,KAAO,IAC3C,EAAoB,QAAU,EAAW,cAAgB,KAAO,GAC9E,CACA,GAAI,EAAW,WACV,EAAW,YAAc,IAC1B,CAAC,EAAW,UAAW,CACvB,IAAI,EAAmB,GAAU,cAAc,WAAaA,GAAe,UAC3E,EAAQ,UACJ,EAAW,YAAc,EACnB,OAAS,EAAW,cAAgB,OAAS,MAC7C,GAAoB,QAAU,EAAW,cAAgB,KAAO,IAAM,KACpF,CACA,OAAO,eAAe,EAAK,OAAQ,UAAW,CAC1C,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,QAAU,EAChD,IAAK,GAAiB,KAAK,CAC/B,CAAC,EACD,OAAO,eAAe,EAAK,OAAQ,UAAW,CAC1C,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,QAAU,EAChD,IAAK,GAAiB,KAAK,CAC/B,CAAC,EACD,IAAI,EAAmB,SAAU,EAAM,CAAE,OAAO,SAAU,EAAK,CAC3D,EAAK,OAAO,IAAS,MAAQ,WAAa,YAAc,EAAK,UAAU,EAAK,OAAO,CACvF,CAAG,EACH,OAAO,eAAe,EAAK,OAAQ,UAAW,CAC1C,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,QAAU,EAChD,IAAK,EAAiB,KAAK,CAC/B,CAAC,EACD,OAAO,eAAe,EAAK,OAAQ,UAAW,CAC1C,IAAK,UAAY,CAAE,OAAO,EAAK,OAAO,QAAU,EAChD,IAAK,EAAiB,KAAK,CAC/B,CAAC,EACG,EAAW,OAAS,SACpB,EAAK,OAAO,WAAa,GACzB,EAAK,OAAO,WAAa,IAE7B,OAAO,OAAO,EAAK,OAAQ,EAAS,CAAU,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IACjC,EAAK,OAAO,EAAS,IACjB,EAAK,OAAO,EAAS,MAAQ,IACzB,EAAK,OAAO,EAAS,MAAQ,OACzC,GAAM,OAAO,SAAU,EAAM,CAAE,OAAO,EAAK,OAAO,KAAU,MAAW,CAAC,EAAE,QAAQ,SAAU,EAAM,CAC9F,EAAK,OAAO,GAAQ,GAAS,EAAK,OAAO,IAAS,CAAC,CAAC,EAAE,IAAI,CAAc,CAC5E,CAAC,EACD,EAAK,SACD,CAAC,EAAK,OAAO,eACT,CAAC,EAAK,OAAO,QACb,EAAK,OAAO,OAAS,UACrB,CAAC,EAAK,OAAO,QAAQ,QACrB,CAAC,EAAK,OAAO,QACb,CAAC,EAAK,OAAO,aACb,iEAAiE,KAAK,UAAU,SAAS,EACjG,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAO,QAAQ,OAAQ,IAAK,CACjD,IAAI,EAAa,EAAK,OAAO,QAAQ,GAAG,CAAI,GAAK,CAAC,EAClD,IAAK,IAAI,KAAO,EACR,GAAM,QAAQ,CAAG,EAAI,GACrB,EAAK,OAAO,GAAO,GAAS,EAAW,EAAI,EACtC,IAAI,CAAc,EAClB,OAAO,EAAK,OAAO,EAAI,EAEhB,EAAW,KAAS,SAChC,EAAK,OAAO,GAAO,EAAW,GAE1C,CACK,EAAW,gBACZ,EAAK,OAAO,cACR,GAAa,EAAE,UAAY,IAAM,EAAK,OAAO,eAErD,GAAa,eAAe,CAChC,CACA,SAAS,IAAe,CACpB,OAAO,EAAK,OAAO,KACb,EAAQ,cAAc,cAAc,EACpC,CACV,CACA,SAAS,IAAc,CACf,OAAO,EAAK,OAAO,QAAW,UACvB,GAAU,MAAM,EAAK,OAAO,UAAY,QAC/C,EAAK,OAAO,aAAiB,MAAM,6BAA+B,EAAK,OAAO,MAAM,CAAC,EACzF,EAAK,KAAOD,GAASA,GAAS,CAAC,EAAG,GAAU,MAAM,OAAO,EAAI,OAAO,EAAK,OAAO,QAAW,SACrF,EAAK,OAAO,OACZ,EAAK,OAAO,SAAW,UAEnB,OADA,GAAU,MAAM,EAAK,OAAO,OAClB,EACpB,GAAW,EAAI,IAAM,EAAK,KAAK,SAAS,UAAU,KAAK,GAAG,EAAI,IAC9D,GAAW,EAAI,IAAM,EAAK,KAAK,SAAS,SAAS,KAAK,GAAG,EAAI,IAC7D,GAAW,EAAI,IAAM,EAAK,KAAK,OAAO,UAAU,KAAK,GAAG,EAAI,IAC5D,GAAW,EAAI,IAAM,EAAK,KAAK,OAAO,SAAS,KAAK,GAAG,EAAI,IAC3D,GAAW,EAAI,IAAM,EAAK,KAAK,KAAK,GAAK,IAAM,EAAK,KAAK,KAAK,GAAK,IAAM,EAAK,KAAK,KAAK,GAAG,YAAY,EAAI,IAAM,EAAK,KAAK,KAAK,GAAG,YAAY,EAAI,IAClIA,GAASA,GAAS,CAAC,EAAG,CAAc,EAAG,KAAK,MAAM,KAAK,UAAU,EAAQ,SAAW,CAAC,CAAC,CAAC,CAC3F,EAAE,YAAc,QACzB,GAAU,cAAc,YAAc,SACtC,EAAK,OAAO,UAAY,EAAK,KAAK,WAEtC,EAAK,WAAa,GAAoB,CAAI,EAC1C,EAAK,UAAY,GAAiB,CAAE,OAAQ,EAAK,OAAQ,KAAM,EAAK,IAAK,CAAC,CAC9E,CACA,SAAS,GAAiB,EAAuB,CAC7C,GAAI,OAAO,EAAK,OAAO,UAAa,WAAY,CACrC,EAAU,OAAO,SAAS,EAAM,CAAqB,EAA5D,MACJ,CACI,KAAK,oBAAsB,OAE/B,IAAa,uBAAuB,EACpC,IAAI,EAAkB,GAAyB,EAAK,iBAChD,EAAiB,MAAM,UAAU,OAAO,KAAK,EAAK,kBAAkB,UAAW,SAAU,EAAK,EAAO,CAAE,OAAO,EAAM,EAAM,YAAc,GAAI,CAAC,EAAG,EAAgB,EAAK,kBAAkB,YAAa,EAAY,EAAK,OAAO,SAAS,MAAM,GAAG,EAAG,EAAoB,EAAU,GAAI,EAAsB,EAAU,OAAS,EAAI,EAAU,GAAK,KAAM,EAAc,EAAgB,sBAAsB,EAAG,EAAqB,OAAO,YAAc,EAAY,OAAQ,EAAY,IAAsB,SAC3e,IAAsB,SACnB,EAAqB,GACrB,EAAY,IAAM,EACtB,EAAM,OAAO,YACb,EAAY,KACV,EAA+C,CAAC,EAAiB,EAArD,EAAgB,aAAe,GACjD,MAAY,EAAK,kBAAmB,WAAY,CAAC,CAAS,EAC1D,GAAY,EAAK,kBAAmB,cAAe,CAAS,EACxD,GAAK,OAAO,OAEhB,KAAI,EAAO,OAAO,YAAc,EAAY,KACxC,EAAW,GACX,EAAU,GACV,IAAwB,UACxB,IAAS,EAAgB,EAAY,OAAS,EAC9C,EAAW,IAEN,IAAwB,UAC7B,GAAQ,EAAgB,EAAY,MACpC,EAAU,IAEd,GAAY,EAAK,kBAAmB,YAAa,CAAC,GAAY,CAAC,CAAO,EACtE,GAAY,EAAK,kBAAmB,cAAe,CAAQ,EAC3D,GAAY,EAAK,kBAAmB,aAAc,CAAO,EACzD,IAAI,EAAQ,OAAO,SAAS,KAAK,aAC5B,OAAO,YAAc,EAAY,OAClC,EAAY,EAAO,EAAgB,OAAO,SAAS,KAAK,YACxD,EAAa,EAAQ,EAAgB,OAAO,SAAS,KAAK,YAC9D,MAAY,EAAK,kBAAmB,YAAa,CAAS,EACtD,GAAK,OAAO,OAGhB,GADA,EAAK,kBAAkB,MAAM,IAAM,EAAM,KACrC,CAAC,EACD,EAAK,kBAAkB,MAAM,KAAO,EAAO,KAC3C,EAAK,kBAAkB,MAAM,MAAQ,YAEpC,GAAI,CAAC,EACN,EAAK,kBAAkB,MAAM,KAAO,OACpC,EAAK,kBAAkB,MAAM,MAAQ,EAAQ,SAE5C,CACD,IAAI,EAAM,GAAsB,EAChC,GAAI,IAAQ,OACR,OACJ,IAAI,EAAY,OAAO,SAAS,KAAK,YACjC,EAAa,KAAK,IAAI,EAAG,EAAY,EAAI,EAAgB,CAAC,EAC1D,EAAe,wCACf,EAAc,uCACd,EAAc,EAAI,SAAS,OAC3B,EAAc,SAAW,EAAY,KAAO,kBAChD,GAAY,EAAK,kBAAmB,YAAa,EAAK,EACtD,GAAY,EAAK,kBAAmB,aAAc,EAAI,EACtD,EAAI,WAAW,EAAe,IAAM,EAAc,EAAa,CAAW,EAC1E,EAAK,kBAAkB,MAAM,KAAO,EAAa,KACjD,EAAK,kBAAkB,MAAM,MAAQ,MACzC,CA7C4C,CAbR,CA2DxC,CACA,SAAS,IAAwB,CAE7B,IAAK,IADD,EAAgB,KACX,EAAI,EAAG,EAAI,SAAS,YAAY,OAAQ,IAAK,CAClD,IAAI,EAAQ,SAAS,YAAY,GAC5B,KAAM,SAEX,IAAI,CACA,EAAM,QACV,MACY,CACR,QACJ,CACA,EAAgB,EAChB,KAFA,CAGJ,CACA,OAAO,GAAwC,GAAiB,CACpE,CACA,SAAS,IAAmB,CACxB,IAAI,EAAQ,SAAS,cAAc,OAAO,EAE1C,OADA,SAAS,KAAK,YAAY,CAAK,EACxB,EAAM,KACjB,CACA,SAAS,IAAS,CACV,EAAK,OAAO,YAAc,EAAK,WAEnC,EAAiB,EACjB,GAA6B,EAC7B,EAAU,EACd,CACA,SAAS,IAAgB,CACrB,EAAK,OAAO,MAAM,EACd,OAAO,UAAU,UAAU,QAAQ,MAAM,IAAM,IAC/C,UAAU,mBAAqB,OAC/B,WAAW,EAAK,MAAO,CAAC,EAGxB,EAAK,MAAM,CAEnB,CACA,SAAS,GAAW,EAAG,CACnB,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAOlB,IAAI,EAAI,GAAWD,GAAe,CAAC,EAAG,SANT,EAAK,CAC9B,OAAO,EAAI,WACP,EAAI,UAAU,SAAS,eAAe,GACtC,CAAC,EAAI,UAAU,SAAS,oBAAoB,GAC5C,CAAC,EAAI,UAAU,SAAS,YAAY,CAC5C,CACkD,EAC9C,OAAM,OAEV,KAAI,EAAS,EACT,EAAgB,EAAK,sBAAwB,IAAI,KAAK,EAAO,QAAQ,QAAQ,CAAC,EAC9E,GAAqB,EAAa,SAAS,EAAI,EAAK,cACpD,EAAa,SAAS,EAClB,EAAK,aAAe,EAAK,OAAO,WAAa,IACjD,EAAK,OAAO,OAAS,QAEzB,GADA,EAAK,iBAAmB,EACpB,EAAK,OAAO,OAAS,SACrB,EAAK,cAAgB,CAAC,CAAY,OACjC,GAAI,EAAK,OAAO,OAAS,WAAY,CACtC,IAAI,EAAgB,GAAe,CAAY,EAC3C,EACA,EAAK,cAAc,OAAO,SAAS,CAAa,EAAG,CAAC,EAEpD,EAAK,cAAc,KAAK,CAAY,CAC5C,MACS,EAAK,OAAO,OAAS,UACtB,EAAK,cAAc,SAAW,GAC9B,EAAK,MAAM,GAAO,EAAK,EAE3B,EAAK,sBAAwB,EAC7B,EAAK,cAAc,KAAK,CAAY,EAChC,GAAa,EAAc,EAAK,cAAc,GAAI,EAAI,IAAM,GAC5D,EAAK,cAAc,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,QAAQ,EAAI,EAAE,QAAQ,CAAG,CAAC,GAGrF,GADA,EAAmB,EACf,EAAmB,CACnB,IAAI,EAAY,EAAK,cAAgB,EAAa,YAAY,EAC9D,EAAK,YAAc,EAAa,YAAY,EAC5C,EAAK,aAAe,EAAa,SAAS,EACtC,IACA,GAAa,cAAc,EAC3B,EAAiB,GAErB,GAAa,eAAe,CAChC,CAcA,GAbA,GAA6B,EAC7B,EAAU,EACV,GAAY,EACR,CAAC,GACD,EAAK,OAAO,OAAS,SACrB,EAAK,OAAO,aAAe,EAC3B,EAAe,CAAM,EAChB,EAAK,mBAAqB,QAC/B,EAAK,cAAgB,QACrB,EAAK,kBAAoB,EAAK,iBAAiB,MAAM,EAErD,EAAK,cAAgB,QACrB,EAAK,cAAgB,QAAa,EAAK,YAAY,MAAM,EACzD,EAAK,OAAO,cAAe,CAC3B,IAAI,EAAS,EAAK,OAAO,OAAS,UAAY,CAAC,EAAK,OAAO,WACvD,EAAQ,EAAK,OAAO,OAAS,SAC7B,EAAK,cAAc,SAAW,GAC9B,CAAC,EAAK,OAAO,YACb,GAAU,IACV,GAAc,CAEtB,CACA,EAAc,CA1DD,CA2DjB,CACA,IAAI,GAAY,CACZ,OAAQ,CAAC,GAAa,EAAc,EACpC,WAAY,CAAC,GAAa,EAAkB,EAAa,EACzD,QAAS,CAAC,CAAU,EACpB,QAAS,CAAC,CAAU,EACpB,gBAAiB,CAAC,EAAqB,EACvC,WAAY,CACR,UAAY,CACJ,EAAK,OAAO,aAAe,IAC3B,EAAK,EAAK,OAAQ,QAAS,EAAK,IAAI,EACpC,EAAK,EAAK,OAAQ,QAAS,EAAK,IAAI,IAGpC,EAAK,OAAO,oBAAoB,QAAS,EAAK,IAAI,EAClD,EAAK,OAAO,oBAAoB,QAAS,EAAK,IAAI,EAE1D,CACJ,CACJ,EACA,SAAS,GAAI,EAAQ,EAAO,CACxB,GAAuB,OAAO,GAAW,UAArC,EAEA,IAAK,IAAI,KADT,OAAO,OAAO,EAAK,OAAQ,CAAM,EACjB,EACR,GAAU,KAAS,QACnB,GAAU,GAAK,QAAQ,SAAU,EAAG,CAAE,OAAO,EAAE,CAAG,CAAC,OAI3D,EAAK,OAAO,GAAU,EAClB,GAAU,KAAY,OAEjB,GAAM,QAAQ,CAAM,EAAI,KAC7B,EAAK,OAAO,GAAU,GAAS,CAAK,GAFpC,GAAU,GAAQ,QAAQ,SAAU,EAAG,CAAE,OAAO,EAAE,CAAG,CAAC,EAI9D,EAAK,OAAO,EACZ,GAAY,EAAI,CACpB,CACA,SAAS,GAAgB,EAAW,EAAQ,CACxC,IAAI,EAAQ,CAAC,EACb,GAAI,aAAqB,MACrB,EAAQ,EAAU,IAAI,SAAU,EAAG,CAAE,OAAO,EAAK,UAAU,EAAG,CAAM,CAAG,CAAC,OACvE,GAAI,aAAqB,MAAQ,OAAO,GAAc,SACvD,EAAQ,CAAC,EAAK,UAAU,EAAW,CAAM,CAAC,OACzC,GAAI,OAAO,GAAc,SAC1B,OAAQ,EAAK,OAAO,KAApB,CACI,IAAK,SACL,IAAK,OACD,EAAQ,CAAC,EAAK,UAAU,EAAW,CAAM,CAAC,EAC1C,MACJ,IAAK,WACD,EAAQ,EACH,MAAM,EAAK,OAAO,WAAW,EAC7B,IAAI,SAAU,EAAM,CAAE,OAAO,EAAK,UAAU,EAAM,CAAM,CAAG,CAAC,EACjE,MACJ,IAAK,QACD,EAAQ,EACH,MAAM,EAAK,KAAK,cAAc,EAC9B,IAAI,SAAU,EAAM,CAAE,OAAO,EAAK,UAAU,EAAM,CAAM,CAAG,CAAC,EACjE,MACJ,QACI,KACR,MAGA,EAAK,OAAO,aAAiB,MAAM,0BAA4B,KAAK,UAAU,CAAS,CAAC,CAAC,EAC7F,EAAK,cAAiB,EAAK,OAAO,oBAC5B,EACA,EAAM,OAAO,SAAU,EAAG,CAAE,OAAO,aAAa,MAAQ,GAAU,EAAG,EAAK,CAAG,CAAC,EAChF,EAAK,OAAO,OAAS,SACrB,EAAK,cAAc,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,QAAQ,EAAI,EAAE,QAAQ,CAAG,CAAC,CACrF,CACA,SAAS,GAAQ,EAAM,EAAe,EAAQ,CAG1C,GAFI,IAAkB,IAAK,KAAK,EAAgB,IAC5C,IAAW,IAAK,KAAK,EAAS,EAAK,OAAO,YACzC,IAAS,GAAK,CAAC,GAAU,aAAgB,OAAS,EAAK,SAAW,EACnE,OAAO,EAAK,MAAM,CAAa,EACnC,GAAgB,EAAM,CAAM,EAC5B,EAAK,sBACD,EAAK,cAAc,EAAK,cAAc,OAAS,GACnD,EAAK,OAAO,EACZ,EAAW,OAAW,CAAa,EACnC,EAAiB,EACb,EAAK,cAAc,SAAW,GAC9B,EAAK,MAAM,EAAK,EAEpB,GAAY,CAAa,EACrB,GACA,GAAa,UAAU,CAC/B,CACA,SAAS,GAAe,EAAK,CACzB,OAAO,EACF,MAAM,EACN,IAAI,SAAU,EAAM,CAcrB,OAbI,OAAO,GAAS,UAChB,OAAO,GAAS,UAChB,aAAgB,KACT,EAAK,UAAU,EAAM,OAAW,EAAI,EAEtC,GACL,OAAO,GAAS,UAChB,EAAK,MACL,EAAK,GACE,CACH,KAAM,EAAK,UAAU,EAAK,KAAM,MAAS,EACzC,GAAI,EAAK,UAAU,EAAK,GAAI,MAAS,CACzC,EACG,CACX,CAAC,EACI,OAAO,SAAU,EAAG,CAAE,OAAO,CAAG,CAAC,CAC1C,CACA,SAAS,IAAa,CAClB,EAAK,cAAgB,CAAC,EACtB,EAAK,IAAM,EAAK,UAAU,EAAK,OAAO,GAAG,GAAK,IAAI,KAClD,IAAI,EAAgB,EAAK,OAAO,eAC1B,EAAK,MAAM,WAAa,SACtB,EAAK,MAAM,WAAa,aACxB,EAAK,MAAM,aACX,EAAK,MAAM,QAAU,EAAK,MAAM,YAC9B,KACA,EAAK,MAAM,OACjB,GACA,GAAgB,EAAe,EAAK,OAAO,UAAU,EACzD,EAAK,aACD,EAAK,cAAc,OAAS,EACtB,EAAK,cAAc,GACnB,EAAK,OAAO,SACV,EAAK,OAAO,QAAQ,QAAQ,EAAI,EAAK,IAAI,QAAQ,EAC/C,EAAK,OAAO,QACZ,EAAK,OAAO,SACV,EAAK,OAAO,QAAQ,QAAQ,EAAI,EAAK,IAAI,QAAQ,EAC/C,EAAK,OAAO,QACZ,EAAK,IACvB,EAAK,YAAc,EAAK,aAAa,YAAY,EACjD,EAAK,aAAe,EAAK,aAAa,SAAS,EAC3C,EAAK,cAAc,OAAS,IAC5B,EAAK,sBAAwB,EAAK,cAAc,IAChD,EAAK,OAAO,UAAY,SACxB,EAAK,OAAO,QAAU,EAAK,UAAU,EAAK,OAAO,QAAS,KAAK,GAC/D,EAAK,OAAO,UAAY,SACxB,EAAK,OAAO,QAAU,EAAK,UAAU,EAAK,OAAO,QAAS,KAAK,GACnE,EAAK,eACD,CAAC,CAAC,EAAK,OAAO,UACT,EAAK,OAAO,QAAQ,SAAS,EAAI,GAC9B,EAAK,OAAO,QAAQ,WAAW,EAAI,GACnC,EAAK,OAAO,QAAQ,WAAW,EAAI,GAC/C,EAAK,eACD,CAAC,CAAC,EAAK,OAAO,UACT,EAAK,OAAO,QAAQ,SAAS,EAAI,GAC9B,EAAK,OAAO,QAAQ,WAAW,EAAI,GACnC,EAAK,OAAO,QAAQ,WAAW,EAAI,EACnD,CACA,SAAS,IAAc,CAEnB,GADA,EAAK,MAAQ,GAAa,EACtB,CAAC,EAAK,MAAO,CACb,EAAK,OAAO,aAAiB,MAAM,iCAAiC,CAAC,EACrE,MACJ,CACA,EAAK,MAAM,MAAQ,EAAK,MAAM,KAC9B,EAAK,MAAM,KAAO,OAClB,EAAK,MAAM,UAAU,IAAI,iBAAiB,EAC1C,EAAK,OAAS,EAAK,MACf,EAAK,OAAO,WACZ,EAAK,SAAW,GAAc,EAAK,MAAM,SAAU,EAAK,OAAO,aAAa,EAC5E,EAAK,OAAS,EAAK,SACnB,EAAK,SAAS,YAAc,EAAK,MAAM,YACvC,EAAK,SAAS,SAAW,EAAK,MAAM,SACpC,EAAK,SAAS,SAAW,EAAK,MAAM,SACpC,EAAK,SAAS,SAAW,EAAK,MAAM,SACpC,EAAK,SAAS,KAAO,OACrB,EAAK,MAAM,aAAa,OAAQ,QAAQ,EACpC,CAAC,EAAK,OAAO,QAAU,EAAK,MAAM,YAClC,EAAK,MAAM,WAAW,aAAa,EAAK,SAAU,EAAK,MAAM,WAAW,GAE3E,EAAK,OAAO,YACb,EAAK,OAAO,aAAa,WAAY,UAAU,EACnD,GAAsB,CAC1B,CACA,SAAS,IAAwB,CAC7B,EAAK,iBAAmB,EAAK,OAAO,iBAAmB,EAAK,MAChE,CACA,SAAS,IAAc,CACnB,IAAI,EAAY,EAAK,OAAO,WACtB,EAAK,OAAO,WACR,OACA,iBACJ,OACN,EAAK,YAAc,GAAc,QAAS,EAAK,MAAM,UAAY,mBAAmB,EACpF,EAAK,YAAY,SAAW,EAC5B,EAAK,YAAY,KAAO,EACxB,EAAK,YAAY,SAAW,EAAK,MAAM,SACvC,EAAK,YAAY,SAAW,EAAK,MAAM,SACvC,EAAK,YAAY,YAAc,EAAK,MAAM,YAC1C,EAAK,gBACD,IAAc,iBACR,gBACA,IAAc,OACV,QACA,QACV,EAAK,cAAc,OAAS,IAC5B,EAAK,YAAY,aAAe,EAAK,YAAY,MAAQ,EAAK,WAAW,EAAK,cAAc,GAAI,EAAK,eAAe,GAEpH,EAAK,OAAO,UACZ,EAAK,YAAY,IAAM,EAAK,WAAW,EAAK,OAAO,QAAS,OAAO,GACnE,EAAK,OAAO,UACZ,EAAK,YAAY,IAAM,EAAK,WAAW,EAAK,OAAO,QAAS,OAAO,GACnE,EAAK,MAAM,aAAa,MAAM,IAC9B,EAAK,YAAY,KAAO,OAAO,EAAK,MAAM,aAAa,MAAM,CAAC,GAClE,EAAK,MAAM,KAAO,SACd,EAAK,WAAa,SAClB,EAAK,SAAS,KAAO,UACzB,GAAI,CACI,EAAK,MAAM,YACX,EAAK,MAAM,WAAW,aAAa,EAAK,YAAa,EAAK,MAAM,WAAW,CACnF,MACW,CAAE,CACb,EAAK,EAAK,YAAa,SAAU,SAAU,EAAG,CAC1C,EAAK,QAAQA,GAAe,CAAC,EAAE,MAAO,GAAO,EAAK,eAAe,EACjE,GAAa,UAAU,EACvB,GAAa,SAAS,CAC1B,CAAC,CACL,CACA,SAAS,GAAO,EAAG,CACf,GAAI,EAAK,SAAW,GAChB,OAAO,EAAK,MAAM,EACtB,EAAK,KAAK,CAAC,CACf,CACA,SAAS,GAAa,EAAO,EAAM,CAC3B,KAAK,SAAW,OAEpB,KAAI,EAAQ,EAAK,OAAO,GACxB,GAAI,IAAU,QAAa,EAAM,OAAS,EACtC,IAAK,IAAI,EAAI,EAAG,EAAM,IAAM,EAAI,EAAM,OAAQ,IAC1C,EAAM,GAAG,EAAK,cAAe,EAAK,MAAM,MAAO,EAAM,CAAI,EAE7D,IAAU,aACV,EAAK,MAAM,cAAc,GAAY,QAAQ,CAAC,EAC9C,EAAK,MAAM,cAAc,GAAY,OAAO,CAAC,EAPzB,CAS5B,CACA,SAAS,GAAY,EAAM,CACvB,IAAI,EAAI,SAAS,YAAY,OAAO,EAEpC,OADA,EAAE,UAAU,EAAM,GAAM,EAAI,EACrB,CACX,CACA,SAAS,GAAe,EAAM,CAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,cAAc,OAAQ,IAAK,CAChD,IAAI,EAAe,EAAK,cAAc,GACtC,GAAI,aAAwB,MACxB,GAAa,EAAc,CAAI,IAAM,EACrC,MAAO,GAAK,CACpB,CACA,MAAO,EACX,CACA,SAAS,GAAc,EAAM,CAGzB,OAFI,EAAK,OAAO,OAAS,SAAW,EAAK,cAAc,OAAS,EACrD,GACH,GAAa,EAAM,EAAK,cAAc,EAAE,GAAK,GACjD,GAAa,EAAM,EAAK,cAAc,EAAE,GAAK,CACrD,CACA,SAAS,IAA+B,CAChC,EAAK,OAAO,YAAc,EAAK,UAAY,CAAC,EAAK,WAErD,EAAK,aAAa,QAAQ,SAAU,EAAa,EAAG,CAChD,IAAI,EAAI,IAAI,KAAK,EAAK,YAAa,EAAK,aAAc,CAAC,EACvD,EAAE,SAAS,EAAK,aAAe,CAAC,EAC5B,EAAK,OAAO,WAAa,GACzB,EAAK,OAAO,oBAAsB,SAClC,EAAK,cAAc,GAAG,YAClB,GAAW,EAAE,SAAS,EAAG,EAAK,OAAO,sBAAuB,EAAK,IAAI,EAAI,IAG7E,EAAK,wBAAwB,MAAQ,EAAE,SAAS,EAAE,SAAS,EAE/D,EAAY,MAAQ,EAAE,YAAY,EAAE,SAAS,CACjD,CAAC,EACD,EAAK,oBACD,EAAK,OAAO,UAAY,SACnB,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,EAChD,EAAK,cAAgB,EAAK,OAAO,QAAQ,SAAS,EAClD,EAAK,YAAc,EAAK,OAAO,QAAQ,YAAY,GACjE,EAAK,oBACD,EAAK,OAAO,UAAY,SACnB,EAAK,cAAgB,EAAK,OAAO,QAAQ,YAAY,EAChD,EAAK,aAAe,EAAI,EAAK,OAAO,QAAQ,SAAS,EACrD,EAAK,YAAc,EAAK,OAAO,QAAQ,YAAY,GACrE,CACA,SAAS,GAAW,EAAgB,CAChC,IAAI,EAAS,IACR,EAAK,OAAO,SAAW,EAAK,OAAO,UAAY,EAAK,OAAO,YAChE,OAAO,EAAK,cACP,IAAI,SAAU,EAAM,CAAE,OAAO,EAAK,WAAW,EAAM,CAAM,CAAG,CAAC,EAC7D,OAAO,SAAU,EAAG,EAAG,EAAK,CAC7B,OAAO,EAAK,OAAO,OAAS,SACxB,EAAK,OAAO,YACZ,EAAI,QAAQ,CAAC,IAAM,CAC3B,CAAC,EACI,KAAK,EAAK,OAAO,OAAS,QAEzB,EAAK,KAAK,eADV,EAAK,OAAO,WACY,CAClC,CACA,SAAS,GAAY,EAAe,CAC5B,IAAkB,IAAK,KAAK,EAAgB,IAC5C,EAAK,cAAgB,QAAa,EAAK,kBACvC,EAAK,YAAY,MACb,EAAK,wBAA0B,OAEzB,GADA,EAAK,WAAW,EAAK,sBAAuB,EAAK,eAAe,GAG9E,EAAK,MAAM,MAAQ,GAAW,EAAK,OAAO,UAAU,EAChD,EAAK,WAAa,SAClB,EAAK,SAAS,MAAQ,GAAW,EAAK,OAAO,SAAS,GAEtD,IAAkB,IAClB,GAAa,eAAe,CACpC,CACA,SAAS,GAAgB,EAAG,CACxB,IAAI,EAAcA,GAAe,CAAC,EAC9B,EAAc,EAAK,aAAa,SAAS,CAAW,EACpD,EAAc,EAAK,aAAa,SAAS,CAAW,EACpD,GAAe,EACf,GAAY,EAAc,GAAK,CAAC,EAE3B,EAAK,aAAa,QAAQ,CAAW,GAAK,EAC/C,EAAY,OAAO,EAEd,EAAY,UAAU,SAAS,SAAS,EAC7C,EAAK,WAAW,EAAK,YAAc,CAAC,EAE/B,EAAY,UAAU,SAAS,WAAW,GAC/C,EAAK,WAAW,EAAK,YAAc,CAAC,CAE5C,CACA,SAAS,GAAY,EAAG,CACpB,EAAE,eAAe,EACjB,IAAI,EAAY,EAAE,OAAS,UAAW,EAAcA,GAAe,CAAC,EAAG,EAAQ,EAC3E,EAAK,OAAS,QAAa,IAAgB,EAAK,OAChD,EAAK,KAAK,YACN,EAAK,KAAK,KAAK,GAAI,EAAK,KAAK,cAAgB,EAAK,KAAK,KAAK,EAAE,IAEtE,IAAI,EAAM,WAAW,EAAM,aAAa,KAAK,CAAC,EAAG,EAAM,WAAW,EAAM,aAAa,KAAK,CAAC,EAAG,EAAO,WAAW,EAAM,aAAa,MAAM,CAAC,EAAG,EAAW,SAAS,EAAM,MAAO,EAAE,EAE5K,EAAW,EAAW,GAFiK,EAAE,QACxL,EAAa,EAAE,QAAU,GAAK,EAAI,GAAM,IAE7C,GAAW,EAAM,QAAU,QAAe,EAAM,MAAM,SAAW,EAAG,CAChE,IAAI,EAAa,IAAU,EAAK,YAAa,EAAe,IAAU,EAAK,cACvE,EAAW,GACX,EACI,EACI,EACA,GAAI,CAAC,CAAU,GACd,GAAI,CAAU,GAAK,GAAI,CAAC,EAAK,IAAI,GACtC,GACA,EAAkB,OAAW,GAAI,EAAK,WAAW,GAEhD,EAAW,IAChB,EACI,IAAU,EAAK,YAAc,EAAW,EAAM,GAAI,CAAC,EAAK,IAAI,EAAI,EAChE,GACA,EAAkB,OAAW,EAAG,EAAK,WAAW,GAEpD,EAAK,MACL,IACC,IAAS,EACJ,EAAW,IAAa,GACxB,KAAK,IAAI,EAAW,CAAQ,EAAI,KACtC,EAAK,KAAK,YACN,EAAK,KAAK,KAAK,GAAI,EAAK,KAAK,cAAgB,EAAK,KAAK,KAAK,EAAE,IAEtE,EAAM,MAAQ,GAAI,CAAQ,CAC9B,CACJ,CAEA,OADA,EAAK,EACE,CACX,CACA,SAAS,GAAW,EAAU,EAAQ,CAKlC,IAAK,IAJD,EAAQ,MAAM,UAAU,MACvB,KAAK,CAAQ,EACb,OAAO,SAAU,EAAG,CAAE,OAAO,aAAa,WAAa,CAAC,EACzD,EAAY,CAAC,EACR,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACnC,IAAI,EAAO,EAAM,GACjB,GAAI,CACA,GAAI,EAAK,aAAa,cAAc,IAAM,KACtC,SACA,EAAK,aAAe,SACpB,EAAK,WAAW,QAAQ,EACxB,EAAK,WAAa,QAEtB,EAAK,WAAa,IAAkB,EAAM,GAAU,CAAC,CAAC,EACtD,EAAU,KAAK,EAAK,UAAU,CAClC,OACO,EAAG,CACN,QAAQ,MAAM,CAAC,CACnB,CACJ,CACA,OAAO,EAAU,SAAW,EAAI,EAAU,GAAK,CACnD,CACI,OAAO,YAAgB,KACvB,OAAO,eAAmB,KAC1B,OAAO,SAAa,MACpB,eAAe,UAAU,UAAY,SAAS,UAAU,UAAY,SAAU,EAAQ,CAClF,OAAO,GAAW,KAAM,CAAM,CAClC,EACA,YAAY,UAAU,UAAY,SAAU,EAAQ,CAChD,OAAO,GAAW,CAAC,IAAI,EAAG,CAAM,CACpC,GAEJ,IAAI,GAAY,SAAU,EAAU,EAAQ,CAQpC,OAPA,OAAO,GAAa,SACb,GAAW,OAAO,SAAS,iBAAiB,CAAQ,EAAG,CAAM,EAE/D,aAAoB,KAClB,GAAW,CAAC,CAAQ,EAAG,CAAM,EAG7B,GAAW,EAAU,CAAM,CAE1C,EACA,GAAU,cAAgB,CAAC,EAC3B,GAAU,MAAQ,CACd,GAAIC,GAAS,CAAC,EAAGE,EAAO,EACxB,QAASF,GAAS,CAAC,EAAGE,EAAO,CACjC,EACA,GAAU,SAAW,SAAU,EAAM,CACjC,GAAU,MAAM,QAAUF,GAASA,GAAS,CAAC,EAAG,GAAU,MAAM,OAAO,EAAG,CAAI,CAClF,EACA,GAAU,YAAc,SAAU,EAAQ,CACtC,GAAU,cAAgBA,GAASA,GAAS,CAAC,EAAG,GAAU,aAAa,EAAG,CAAM,CACpF,EACA,GAAU,UAAY,GAAiB,CAAC,CAAC,EACzC,GAAU,WAAa,GAAoB,CAAC,CAAC,EAC7C,GAAU,aAAe,GACrB,OAAO,OAAW,KAAsB,OAAO,KAAO,SACtD,OAAO,GAAG,UAAY,SAAU,EAAQ,CACpC,OAAO,GAAW,KAAM,CAAM,CAClC,GAEJ,KAAK,UAAU,QAAU,SAAU,EAAM,CACrC,OAAO,IAAI,KAAK,KAAK,YAAY,EAAG,KAAK,SAAS,EAAG,KAAK,QAAQ,GAAK,OAAO,GAAS,SAAW,SAAS,EAAM,EAAE,EAAI,EAAK,CAChI,EACI,OAAO,OAAW,MAClB,OAAO,UAAY,wBC3/DtB,SAAU,EAAQ,EAAS,CAC1B,OAAO,GAAY,UAAmB,IAAW,OAAc,EAAQ,CAAO,EAC9E,OAAO,QAAW,YAAc,OAAO,IAAM,OAAO,CAAC,SAAS,EAAG,CAAO,GACvE,EAAS,OAAO,WAAe,IAAc,WAAa,GAAU,KAAM,EAAQ,EAAO,GAAK,CAAC,CAAC,EACnG,MAAS,SAAU,EAAS,CAE1B,IAAI,EAAK,OAAO,OAAW,KAAe,OAAO,YAAc,OACzD,OAAO,UACP,CACE,MAAO,CAAC,CACZ,EACA,EAAS,CACT,SAAU,CACN,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACpD,SAAU,CACN,UACA,SACA,WACA,WACA,aACA,UACA,SACJ,CACJ,EACA,OAAQ,CACJ,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EACA,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACJ,CACJ,EACA,eAAgB,EAChB,iBAAkB,KAClB,eAAgB,QAChB,YAAa,sBACb,YAAa,yBACb,UAAW,EACf,EACA,EAAG,MAAM,GAAK,EACd,IAAI,EAAK,EAAG,MAEZ,EAAQ,OAAS,EACjB,EAAQ,QAAU,EAElB,OAAO,eAAeG,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAE9D,EAAE,qBCrED,SAAU,EAAQ,EAAS,CACxB,OAAO,GAAY,UAAmB,IAAW,OAAc,EAAO,QAAU,EAAQ,EACxF,OAAO,QAAW,YAAc,OAAO,IAAM,OAAO,CAAO,GAC1D,EAAS,OAAO,WAAe,IAAc,WAAa,GAAU,KAAM,EAAO,kBAAoB,EAAQ,EAClH,MAAS,UAAY,CAiBjB,IAAI,EAAW,UAAW,CAQtB,MAPA,GAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,IADT,GAAI,UAAU,GACA,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAAG,EAAE,GAAK,EAAE,IAE9E,OAAO,CACX,EACO,EAAS,MAAM,KAAM,SAAS,CACzC,EAEI,EAAa,SAAU,EAAa,EAAW,EAAQ,CAAE,OAAO,EAAO,OAAO,EAAY,YAAc,YAAY,EAAc,EAEtI,SAAS,EAAU,EAAM,CACrB,KAAO,EAAK,YACR,EAAK,YAAY,EAAK,UAAU,CACxC,CACA,SAAS,EAAe,EAAO,CAC3B,GAAI,CAKA,OAJI,OAAO,EAAM,cAAiB,WACnB,EAAM,aACP,EAAE,GAET,EAAM,MACjB,MACc,CACV,OAAO,EAAM,MACjB,CACJ,CAEA,IAAI,EAAgB,CAChB,UAAW,GACX,WAAY,MACZ,UAAW,MACX,MAAO,OACX,EACA,SAAS,EAAkB,EAAc,CACrC,IAAI,EAAS,EAAS,EAAS,CAAC,EAAG,CAAa,EAAG,CAAY,EAC/D,OAAO,SAAU,EAAI,CACjB,EAAG,OAAO,WAAa,EAAO,WAC9B,EAAG,OAAO,UAAY,EAAO,UAC7B,IAAI,EAAO,CAAE,gBAAiB,IAAK,EACnC,SAAS,GAA8B,CAC9B,KAAG,WAER,GAAU,EAAG,UAAU,EACvB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAG,cAAc,OAAQ,IAAS,CAC1D,IAAI,EAAU,EAAG,cAAc,GAC1B,EAAQ,YAEb,EAAQ,WAAW,YAAY,CAAO,CAC1C,CANuB,CAO3B,CACA,SAAS,GAAQ,CACR,EAAG,aAER,EAAK,gBAAkB,EAAG,eAAe,MAAO,8BAA8B,EAC9E,EAAK,gBAAgB,SAAW,GAChC,EAAY,EACZ,EAAG,WAAW,YAAY,EAAK,eAAe,EAC9C,EAAG,kBAAkB,UAAU,IAAI,+BAAiC,EAAO,KAAK,EACpF,CACA,SAAS,GAAc,CACd,KAAK,gBAEV,GAAU,EAAK,eAAe,EAE9B,IAAK,IADD,EAAO,SAAS,uBAAuB,EAClC,EAAI,EAAG,EAAI,GAAI,IAAK,CACzB,IAAI,EAAQ,EAAG,UAAU,8BAA+B,IAAI,KAAK,EAAG,YAAa,CAAC,EAAG,EAAG,CAAC,EACrF,EAAM,QAAQ,SAAS,IAAM,IAAI,KAAK,EAAE,SAAS,GACjD,EAAM,QAAQ,YAAY,IAAM,IAAI,KAAK,EAAE,YAAY,GACvD,EAAM,UAAU,IAAI,OAAO,EAC/B,EAAM,YAAc,EAAW,EAAG,EAAO,UAAW,EAAG,IAAI,EAC3D,EAAM,iBAAiB,QAAS,CAAW,EAC3C,EAAK,YAAY,CAAK,CAC1B,CACA,EAAK,gBAAgB,YAAY,CAAI,EACjC,EAAG,OAAO,SACV,EAAG,cAAgB,EAAG,OAAO,QAAQ,YAAY,EACjD,EAAG,aAAa,UAAU,IAAI,oBAAoB,EAElD,EAAG,aAAa,UAAU,OAAO,oBAAoB,EACrD,EAAG,OAAO,SACV,EAAG,cAAgB,EAAG,OAAO,QAAQ,YAAY,EACjD,EAAG,aAAa,UAAU,IAAI,oBAAoB,EAElD,EAAG,aAAa,UAAU,OAAO,oBAAoB,CArB3B,CAsBlC,CACA,SAAS,GAAa,CAClB,EAAG,MAAM,EAAG,aAAc,QAAS,SAAU,EAAG,CAC5C,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAG,WAAW,EAAG,YAAc,CAAC,EAChC,EAAW,EACX,EAAY,CAChB,CAAC,EACD,EAAG,MAAM,EAAG,aAAc,QAAS,SAAU,EAAG,CAC5C,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAG,WAAW,EAAG,YAAc,CAAC,EAChC,EAAW,EACX,EAAY,CAChB,CAAC,EACD,EAAG,MAAM,EAAK,gBAAiB,YAAa,SAAU,EAAG,CACjD,EAAG,OAAO,OAAS,SACnB,EAAG,YAAY,EAAe,CAAC,EAAG,6BAA6B,CACvE,CAAC,CACL,CACA,SAAS,GAAuB,CACvB,KAAG,YAEH,EAAG,cAAc,OAGtB,KAAK,IADD,EAAoB,EAAG,WAAW,iBAAiB,uCAAuC,EACrF,EAAQ,EAAG,EAAQ,EAAkB,OAAQ,IAClD,EAAkB,GAAO,UAAU,OAAO,UAAU,EAExD,IAAI,EAAc,EAAG,cAAc,GAAG,SAAS,EAC3C,EAAQ,EAAG,WAAW,cAAc,2CAA6C,EAAc,GAAK,GAAG,EACvG,GACA,EAAM,UAAU,IAAI,UAAU,CALsB,CAO5D,CACA,SAAS,GAAa,CAClB,IAAI,EAAe,EAAG,cAAc,GAChC,IACA,EAAe,IAAI,KAAK,CAAY,EACpC,EAAa,YAAY,EAAG,WAAW,EACnC,EAAG,OAAO,SAAW,EAAe,EAAG,OAAO,UAC9C,EAAe,EAAG,OAAO,SAEzB,EAAG,OAAO,SAAW,EAAe,EAAG,OAAO,UAC9C,EAAe,EAAG,OAAO,SAE7B,EAAG,YAAc,EAAa,YAAY,GAE9C,EAAG,mBAAmB,MAAQ,OAAO,EAAG,WAAW,EAC/C,EAAG,YAEH,EADgB,WAAW,iBAAiB,8BACvC,EAAE,QAAQ,SAAU,EAAO,CAC5B,EAAM,QAAQ,YAAY,EAAG,WAAW,EACnC,EAAG,OAAO,SAAW,EAAM,QAAU,EAAG,OAAO,SAC/C,EAAG,OAAO,SAAW,EAAM,QAAU,EAAG,OAAO,QAChD,EAAM,UAAU,IAAI,oBAAoB,EAGxC,EAAM,UAAU,OAAO,oBAAoB,CAEnD,CAAC,EAEL,EAAqB,CACzB,CACA,SAAS,EAAY,EAAG,CACpB,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,IAAI,EAAc,EAAe,CAAC,EAC5B,gBAAuB,SAEzB,GAAY,UAAU,SAAS,oBAAoB,GAEnD,GAAY,UAAU,SAAS,YAAY,IAE/C,EAAS,EAAY,OAAO,EACxB,EAAG,OAAO,eAAe,CACzB,IAAI,EAAS,EAAG,OAAO,OAAS,SAC5B,EAAQ,EAAG,OAAO,OAAS,SAAW,EAAG,cAAc,SAAW,GAClE,GAAU,IACV,EAAG,MAAM,CACjB,CACJ,CACA,SAAS,EAAS,EAAM,CACpB,IAAI,EAAe,IAAI,KAAK,EAAG,YAAa,EAAK,SAAS,EAAG,EAAK,QAAQ,CAAC,EACvE,EAAgB,CAAC,EACrB,OAAQ,EAAG,OAAO,KAAlB,CACI,IAAK,SACD,EAAgB,CAAC,CAAY,EAC7B,MACJ,IAAK,WACD,EAAc,KAAK,CAAY,EAC/B,MACJ,IAAK,QACG,EAAG,cAAc,SAAW,EAC5B,EAAgB,CAAC,CAAY,GAG7B,EAAgB,EAAG,cAAc,OAAO,CAAC,CAAY,CAAC,EACtD,EAAc,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,QAAQ,EAAI,EAAE,QAAQ,CAAG,CAAC,GAE5E,KACR,CACA,EAAG,QAAQ,EAAe,EAAI,EAC9B,EAAqB,CACzB,CACA,IAAI,EAAS,CACT,GAAI,GACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACR,EACA,SAAS,EAAU,EAAG,EAAI,EAAK,EAAG,CAC9B,IAAI,EAAa,EAAO,EAAE,WAAa,OACnC,MAAC,GAAc,EAAE,UAAY,KAG7B,GAAC,EAAG,YAAc,CAAC,EAAK,iBAE5B,KAAI,EAAoB,EAAG,WAAW,cAAc,uCAAuC,EACvF,EAAQ,MAAM,UAAU,QAAQ,KAAK,EAAK,gBAAgB,SAAU,SAAS,aAAa,EAC9F,GAAI,IAAU,GAAI,CACd,IAAI,EAAS,GAAqB,EAAK,gBAAgB,kBACvD,EAAO,MAAM,EACb,EAAQ,EAAO,EACnB,CACI,EACA,EAAK,gBAAgB,UAAU,GAAK,EAAQ,EAAO,EAAE,UAAY,IAAI,MAAM,EAEtE,EAAE,UAAY,IACnB,EAAK,gBAAgB,SAAS,SAAS,aAAa,GACpD,EAAS,SAAS,cAAc,OAAO,CAZgD,CAc/F,CACA,SAAS,GAAY,CAEN,EAAG,QAAgD,OAAU,SAAW,EAAG,cAAc,SAAW,GAC3G,EAAG,MAAM,EAAK,EACb,EAAG,cAAc,QAClB,EAAY,CACpB,CAEA,SAAS,GAAmB,CACxB,EAAO,qBAAuB,EAAG,aAAa,SAAS,EACvD,EAAG,aAAa,SAAS,EAAO,oBAAoB,EACpD,EAAG,aAAe,EAAO,oBAC7B,CACA,SAAS,GAAqB,CACrB,EAAO,uBAEZ,EAAG,aAAa,SAAS,EAAO,oBAAoB,EACpD,EAAG,aAAe,EAAO,qBACzB,OAAO,EAAO,qBAClB,CACA,SAAS,GAAwB,CAC7B,GAAI,EAAK,kBAAoB,KAEzB,IAAK,IADD,EAAS,EAAK,gBAAgB,iBAAiB,8BAA8B,EACxE,EAAQ,EAAG,EAAQ,EAAO,OAAQ,IACvC,EAAO,GAAO,oBAAoB,QAAS,CAAW,CAGlE,CACA,MAAO,CACH,cAAe,UAAY,CACvB,EAAG,OAAO,WAAa,EAC3B,EACA,cAAe,EACJ,YACX,QAAS,CACL,EACA,EACA,EACA,EACA,EACA,UAAY,CACR,EAAG,OAAO,QAAQ,KAAK,CAAS,EAChC,EAAG,cAAc,KAAK,aAAa,CACvC,CACJ,EACA,UAAW,CACP,EACA,EACA,UAAY,CACR,EAAG,OAAO,QAAU,EAAG,OAAO,QAAQ,OAAO,SAAU,EAAM,CAAE,OAAO,IAAS,CAAW,CAAC,CAC/F,CACJ,CACJ,CACJ,CACJ,CAEA,OAAO,CAEX,EAAE,KCjSI,KAAS,GAAG,IAAoB,QAAQ,MAAM,qBAAsB,GAAG,CAAI,EAE3E,IAAiB,IAAI,KAAK,eAAe,QAAS,CACtD,MAAO,OACP,KAAM,SACR,CAAC,EAEY,IACX,EACA,EACA,EAA+B,QACpB,CACX,GAAI,CAAC,EAAM,MAAO,GAElB,GAAI,IAAgB,QAClB,OAAO,IAAe,OAAO,CAAI,EAGnC,IAAM,EAAM,EAAK,mBAAmB,QAAS,CAC3C,IAAK,UACL,MAAO,UACP,KAAM,SACR,CAAC,EAMD,OAJK,EAIE,GAAG,EAAI,KAFD,EAAK,mBAAmB,QAAS,CAAE,KAAM,UAAW,OAAQ,SAAU,CAEhE,IAJM,CAK3B,EAEa,GAAiB,GAAiC,CAC7D,GAAI,GAAU,MAA+B,IAAU,GAAI,OAAO,KAElE,GAAI,aAAiB,KACnB,OAAO,OAAO,MAAM,EAAM,QAAQ,CAAC,EAAI,KAAO,EAGhD,GAAI,OAAO,GAAU,UAAY,OAAO,GAAU,SAAU,CAC1D,IAAM,EAAS,IAAI,KAAK,CAAK,EAE7B,OAAO,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAI,KAAO,CACjD,CAEA,OAAO,IACT,EAEa,IACX,EACA,EAA+B,MAC/B,EAA4B,UAEvB,EAED,IAAgB,QAIhB,IAAa,MACR,IAAI,KAAK,EAAM,YAAY,EAAG,EAAM,SAAS,EAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAG,EAGxE,IAAI,KAAK,EAAM,YAAY,EAAG,EAAM,SAAS,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAP3D,IAAI,KAAK,EAAM,QAAQ,CAAC,EAHd,KAaR,IAAsB,GAC5B,EAED,MAAM,QAAQ,CAAK,EACd,CACL,MAAO,GAAc,EAAM,EAAE,EAC7B,IAAK,GAAc,EAAM,EAAE,CAC7B,EAGE,eAAgB,GAAS,aAAc,EAClC,CACL,MAAO,GAAc,EAAM,UAAU,EACrC,IAAK,GAAc,EAAM,QAAQ,CACnC,EAGK,CACL,MAAO,GAAc,UAAW,EAAQ,EAAM,MAAQ,IAAI,EAC1D,IAAK,GAAc,QAAS,EAAQ,EAAM,IAAM,IAAI,CACtD,EAnBmB,CAAE,MAAO,KAAM,IAAK,IAAK,EAsBjC,IACX,EACA,EAA+B,SAChB,CACf,MAAO,GAA4B,EAAM,MAAO,EAAa,OAAO,EACpE,IAAK,GAA4B,EAAM,IAAK,EAAa,KAAK,CAChE,GAEa,IAAc,EAAgB,IACrC,CAAC,GAAK,CAAC,EAAU,GAEjB,CAAC,GAAK,CAAC,EAAU,GAEd,EAAE,QAAQ,IAAM,EAAE,QAAQ,EAGtB,KAAmB,EAAc,IAC5C,GAAW,EAAE,MAAO,EAAE,KAAK,GAAK,GAAW,EAAE,IAAK,EAAE,GAAG,EAE5C,IAAgB,GAA6B,CACxD,IAAM,EAAgB,CAAC,EAMvB,OAJI,EAAM,OAAO,EAAM,KAAK,EAAM,KAAK,EAEnC,EAAM,KAAK,EAAM,KAAK,EAAM,GAAG,EAE5B,CACT,EAEa,KACX,EACA,EACA,EAA+B,QACpB,CACX,IAAM,EAAQ,GAAc,EAAM,MAAO,EAAa,CAAW,EAC3D,EAAM,GAAc,EAAM,IAAK,EAAa,CAAW,EAI7D,OAFI,GAAS,EAAY,GAAG,EAAM,OAAO,IAElC,GAAS,CAClB,EAEa,IAAsB,GAC7B,CAAC,EAAM,OAAS,CAAC,EAAM,IAAY,GAEhC,KAAK,UAAU,CACpB,MAAO,EAAM,MAAQ,EAAM,MAAM,YAAY,EAAI,KACjD,IAAK,EAAM,IAAM,EAAM,IAAI,YAAY,EAAI,IAC7C,CAAC,EAGU,QAA4B,CACvC,GAAI,OAAO,SAAa,IAGtB,OAFA,IAAM,8CAA8C,EAE7C,KAGT,IAAM,EAAW,SAAS,eAAe,qBAAqB,EAE9D,GAAI,EAQF,MAPA,GAAS,MAAM,SAAW,QAC1B,EAAS,MAAM,IAAM,IACrB,EAAS,MAAM,KAAO,IACtB,EAAS,MAAM,MAAQ,OACvB,EAAS,MAAM,OAAS,IACxB,EAAS,MAAM,OAAS,QAEjB,EAGT,IAAM,EAAS,SAAS,cAAc,KAAK,EAU3C,MATA,GAAO,GAAK,sBACZ,EAAO,MAAM,SAAW,QACxB,EAAO,MAAM,IAAM,IACnB,EAAO,MAAM,KAAO,IACpB,EAAO,MAAM,MAAQ,OACrB,EAAO,MAAM,OAAS,IACtB,EAAO,MAAM,OAAS,QACtB,SAAS,KAAK,YAAY,CAAM,EAEzB,CACT,2BCjJM,GAAwB,EACxB,GAAqB,EACrB,IAA2B,IAC3B,IAA0B,IAK1B,KAAkB,EAAW,IACjC,EAAE,SAAW,EAAE,QAAU,EAAE,OAAO,EAAM,IAAU,EAAK,QAAQ,IAAM,EAAE,IAAQ,QAAQ,CAAC,EAEpF,GAA4B,GAC3B,OAAO,SAAS,CAAK,EAEnB,KAAK,IAAI,EAAG,KAAK,MAAM,CAAe,CAAC,EAFV,EAKhC,GAAqB,GACrB,EAAO,cAAgB,QAAgB,MAEpC,EAAO,SAAW,cAAgB,QAGrC,KACJ,EACA,IAC8B,CAC9B,IAAM,EAAuB,EAAQ,cAAgB,QAE/C,EAAqC,CACzC,KAAM,EAAQ,KACd,WAAY,EAAuB,GAAQ,EAAQ,SACnD,UAAW,GACX,WAAY,GACZ,cAAe,GACf,WAAY,CAAC,EAAQ,SACrB,OAAQ,WACR,WAAY,GAAkB,CAAO,EACrC,YAAa,EAAQ,MAAM,OAAS,EAAI,EAAQ,MAAQ,OACxD,SAAU,GAAiB,OAC3B,QAAS,EACL,iBACoB,CAChB,UAAW,GACX,WAAY,MACZ,UAAW,MACX,MAAO,EAAQ,iBAAmB,QAAU,MAC9C,CAAC,CACH,EACA,CAAC,EACL,UAAW,EAA6B,IAAwC,CAC9E,GAAiB,EAAU,CAAqB,CAClD,EACA,SAAU,EAAwB,EAAkB,IAAgC,CAClF,GAAmB,EAAU,EAAQ,gBAAgB,CACvD,EACA,QAAS,EAAwB,EAAkB,IAAgC,CACjF,EAAQ,SAAS,EACjB,GAAmB,EAAU,EAAQ,gBAAgB,CACvD,EACA,YAAe,CACb,EAAQ,UAAU,CACpB,EACA,SAAW,GAAkB,CAC3B,EAAQ,WAAW,EAAM,OAAQ,GAAS,aAAgB,IAAI,CAAC,CACjE,CACF,EAMA,MAJI,CAAC,GAAwB,EAAQ,WACnC,EAAQ,gBAAkB,GAAyB,EAAQ,eAAe,GAGrE,CACT,EAEM,GACJ,GAEI,CAAC,GAAY,MAAM,QAAQ,CAAQ,EAAU,KAE1C,EAGH,IAAsB,EAAoC,IAA8B,CAC5F,IAAM,EAAmB,GAAyB,CAAQ,EAE1D,GAAI,CAAC,EAAkB,OAGvB,IAAM,EAAa,EAAmB,uBAAyB,qBACzD,EAAY,EAAiB,kBACnC,EAAU,MAAM,SAAW,QAC3B,EAAU,UAAU,IAAI,cAAc,EACtC,EAAU,UAAU,OAAO,uBAAwB,oBAAoB,EACvE,EAAU,UAAU,IAAI,CAAU,CACpC,EAEM,IAAS,EAAe,EAAa,IAAgB,KAAK,IAAI,KAAK,IAAI,EAAO,CAAG,EAAG,CAAG,EAEvF,IACJ,GACmE,CACnE,GAAM,CAAC,EAAc,OAAQ,EAAgB,QAAU,EAAI,KAAK,EAAE,MAAM,KAAK,EAU7E,MAAO,CAAE,SARP,IAAgB,SAAW,IAAgB,SAAW,IAAgB,OAClE,EACA,OAMa,WAJjB,IAAkB,UAAY,IAAkB,SAAW,IAAkB,OACzE,EACA,MAEwB,CAChC,EAEM,IAAyB,GAA2B,CACxD,IAAM,EAAS,OAAO,iBAAiB,CAAS,EAC1C,EAAa,OAAO,WAAW,EAAO,YAAc,GAAG,EACvD,EAAgB,OAAO,WAAW,EAAO,eAAiB,GAAG,EAM7D,EALqB,MAAM,KAAK,EAAU,QAAQ,EAAE,QAAQ,EAAO,IAGhE,EAAQ,EAAQ,aACtB,CACuB,EAAqB,EAAa,EAE5D,OAAO,KAAK,IAAI,EAAU,aAAc,CAAiB,GAAK,GAChE,EAEM,IACJ,EACA,IACG,CACH,IAAM,EAAmB,GAAyB,CAAQ,EAE1D,GAAI,CAAC,EAAkB,OAEvB,IAAM,EAAY,EAAiB,kBAEnC,GAAI,CAAC,EAAW,OAEhB,IAAM,EACJ,EACA,iBACI,EAAkB,GAAyB,GAA2B,EAAiB,MAE7F,GAAI,CAAC,EAAiB,OAEtB,IAAM,EAAO,EAAgB,sBAAsB,EAC7C,EAAiB,IAAsB,CAAS,EAChD,EAAgB,EAAU,aAAe,IACzC,EAAiB,OAAO,YACxB,EAAgB,OAAO,WAIvB,CAAE,WAAU,cAAe,IAD/B,OAAO,EAAiB,OAAO,UAAa,SAAW,EAAiB,OAAO,SAAW,MAClC,EACpD,EAAiB,EAAK,IAAM,GAC5B,EAAiB,EAAiB,EAAK,OAAS,GAChD,EAAY,GAAkB,EAAiB,GAC/C,EAAY,GAAkB,EAAiB,GAEjD,EAEJ,CASE,CATE,IAAa,QACF,GACJ,IAAa,SAEb,EADI,GAGJ,EACI,GAEA,EAAiB,EAGhC,IAAM,EAAY,EACd,EAAK,IAAM,EAAiB,GAC5B,EAAK,OAAS,GACZ,EAAS,EAAiB,EAAiB,GAC3C,EACJ,EAAS,GACL,GACA,GAAM,EAAW,GAAuB,CAAM,EAEhD,EAAa,EAAK,KAElB,IAAe,SACjB,IAAe,EAAgB,EAAK,OAAS,EACpC,IAAe,UACxB,GAAc,EAAgB,EAAK,OAGrC,IAAM,EAAU,EAAgB,EAAgB,GAC1C,EACJ,EAAU,GACN,GACA,GAAM,EAAY,GAAuB,CAAO,EAEtD,EAAU,MAAM,IAAM,GAAG,KAAK,MAAM,CAAG,EAAE,IACzC,EAAU,MAAM,KAAO,GAAG,KAAK,MAAM,CAAI,EAAE,IAC3C,EAAU,MAAM,MAAQ,OAExB,EAAU,UAAU,OAAO,WAAY,CAAC,CAAU,EAClD,EAAU,UAAU,OAAO,cAAe,CAAU,EACpD,EAAU,UAAU,OAAO,YAAa,IAAe,MAAM,EAC7D,EAAU,UAAU,OAAO,cAAe,IAAe,QAAQ,EACjE,EAAU,UAAU,OAAO,aAAc,IAAe,OAAO,EAC/D,EAAU,UAAU,OAAO,YAAa,YAAY,CACtD,EAEa,KAAmB,EAAwB,IAA4B,CAClF,IAAI,EAAU,EAER,EAAS,EAAK,QAAQ,QAAQ,EAC9B,EAAgB,GAAU,IAAoB,EAChD,EAAsB,EAAQ,MAAM,IAAK,GAAS,IAAI,KAAK,EAAK,QAAQ,CAAC,CAAC,EAE1E,EAAqC,KAEnC,MAAuB,CAC3B,EAAW,GAAU,EAAM,IAAa,EAAe,CAAO,CAAC,EAC/D,EAAiB,CACnB,EAEM,MAAyB,CAEzB,EAAQ,eAAiB,SAAW,EAAK,MAAQ,EAAQ,aAC/D,EAEM,MAAuB,CAC3B,IAAM,EAAmB,GAAyB,CAAQ,EAErD,IAEL,GAAmB,EAAU,EAAQ,gBAAgB,EACpD,EAAc,aAAe,EAC7B,EAAc,2BAA+B,GAAiB,CAAQ,EACzE,EAEM,MAAwB,CAC5B,GAAyB,CAAQ,GAAG,QAAQ,EAEvC,EAAa,cAChB,OAAQ,EAAa,aAGlB,EAAa,wBAChB,OAAQ,EAAa,sBAEzB,EAEM,MAAyB,CAC7B,IAAM,EAAU,EAAQ,GAAyB,CAAQ,GAAG,OAC5D,EAAgB,EAChB,EAAe,EACf,EAAe,EAEX,GAAW,CAAC,EAAQ,UACtB,GAAyB,CAAQ,GAAG,KAAK,CAE7C,EAEA,EAAe,EACf,EAAe,EAEf,IAAM,MAA+B,CAC/B,GAAyB,CAAQ,GAAG,QAAQ,GAAiB,CAAQ,CAC3E,EACA,GAAQ,iBAAiB,SAAU,EAAwB,EAAI,EAE/D,IAAM,EAAe,GAAiB,CACpC,IAAM,EAAmB,GAAyB,CAAQ,EAErD,IAED,IAAe,EAAM,CAAW,IAEpC,EAAc,EAAK,IAAK,GAAS,IAAI,KAAK,EAAK,QAAQ,CAAC,CAAC,EAErD,EAAK,OAAS,EAChB,EAAiB,QAAQ,EAAM,EAAK,EAEpC,EAAiB,QAAQ,CAAC,EAAG,EAAK,GAEtC,EAEA,MAAO,CACL,OAAO,EAA6B,CAClC,IAAM,EACJ,EAAQ,cAAgB,EAAW,aAClC,EAAW,cAAgB,SAC1B,EAAQ,mBAAqB,EAAW,iBAE5C,EAAU,EAEV,IAAM,EAAmB,GAAyB,CAAQ,EAE1D,GAAI,GAAsB,CAAC,EAAkB,CAC3C,EAAc,EAAQ,MAAM,IAAK,GAAS,IAAI,KAAK,EAAK,QAAQ,CAAC,CAAC,EAClE,EAAiB,EAEjB,MACF,CAEA,EAAiB,IAAI,OAAQ,EAAQ,IAAI,EACzC,EAAiB,IAAI,aAAc,EAAQ,cAAgB,QAAU,GAAQ,EAAQ,QAAQ,EAEzF,EAAQ,cAAgB,SAAW,EAAQ,UAC7C,EAAiB,IAAI,kBAAmB,GAAyB,EAAQ,eAAe,CAAC,EAG3F,EAAiB,IAAI,aAAc,GAAkB,CAAO,CAAC,EAC7D,EAAiB,IAAI,aAAc,CAAC,EAAQ,QAAQ,EACpD,EAAY,EAAQ,KAAK,EACzB,GAAmB,EAAU,EAAQ,gBAAgB,EACrD,EAAiB,CACnB,EACA,SAAU,CACR,GAAQ,oBAAoB,SAAU,EAAwB,EAAI,EAClE,EAAgB,CAClB,CACF,CACF,wWCvWA,aAwDI,EAAK,eAAuC,IAAI,EAChD,EAAW,oBAAG,OAAO,EACrB,EAAS,kBAAG,MAAS,EACrB,EAAQ,iBAAG,EAAK,EAChB,EAAI,aAAG,EAAE,EACT,EAAE,gBAAG,cAAgB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,GAC/D,EAAS,kBAAG,EAAE,EACd,EAAQ,iBAAG,EAAK,EAChB,EAAgB,yBAAG,EAAK,EACxB,EAAW,oBAAG,MAAM,EACpB,EAAQ,iBAAG,EAAI,EACf,EAAe,wBAAG,MAAS,EAC3B,EAAS,kBAAG,EAAK,EACjB,EAAK,cAAG,EAAK,EACb,EAAe,wBAAG,MAAS,EAC3B,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAa,0BAAS,CAAC,CAAC,EAGtB,EAAwC,EAAO,IAAI,EACnD,EAAiB,EAAO,EAAK,EAC7B,EAAc,EAAO,EAAK,EAC1B,EAAe,EAAO,EAAK,EACzB,EAAwB,MAC5B,EAAe,IAAK,EAAK,EAAG,QAAU,MAAK,EAEzC,EAAgC,KAE9B,EAAwB,QAC1B,MAAO,MAAO,MAAO,MAAO,WAAQ,IACpC,MAAO,QAAS,MAAO,QAAS,WAAQ,KAG5C,OAAc,KACN,EAAW,EAAG,CAAY,GAAE,UAAU,OAAO,OACnD,EAAc,EAAK,KACnB,EAAW,EAAK,GAAa,UAAU,SAAS,OAAO,GAEnD,EAAK,aAEH,EAAa,GACjB,GAAc,EAAK,KACnB,CAAwB,GAEL,GAAU,EAAM,EAAK,YAAY,OAGpD,GAAkB,EAAY,EAAK,CAEvC,CAAC,MAGK,EAAyB,MAAY,EAAgB,MAAK,CAAW,MAAK,CAAc,GACxF,EAAoB,MAAY,EAAW,IAAK,OAAS,OAAY,EAAW,GAChF,EAAiB,QAAY,CAAwB,IAAK,QAAU,GAAQ,EAAQ,GACpF,EAAY,MAChB,GAA4B,GAAc,EAAK,KAAe,CAAwB,IAElF,GAAa,MACjB,GACE,IAAmB,EAAK,KACxB,CAAwB,IAItB,GAAa,MACjB,EAAK,EAAG,IAAY,EAAC,EAAa,KAAI,CAAY,KAAI,CAAY,OAE9D,GAAY,MAChB,IACI,IAAkB,EAAC,EAAa,IAAE,CAAiB,IAAE,CAAwB,GAC7E,GAAa,EAAC,CAAY,IAAE,CAAiB,IAAE,CAAwB,IAEvE,EAAgB,MACpB,KAAK,IAAI,EAAK,EAAG,GAAE,EAAG,CAAiB,EAAG,GAAK,IAAE,EAAG,EAAY,GAAI,EAAW,GAAI,IAAI,MAAM,GAEzF,GAAW,MACf,EAAK,EAAG,IAAkB,EAAC,EAAa,KAAI,CAAY,IAAG,CAAY,EAAC,YAAW,EAAK,EAAE,EAEtF,GAAQ,MAAY,EAAK,OAAM,EAAa,EAAC,OAAK,EAAI,EAAa,EAAC,SAAS,CAAY,GACzF,GAAW,OACd,EAAK,GAAI,EAAS,KAAI,EAAQ,EAAG,GAA0B,EAAe,EAGvE,OAA6B,KAE3B,EADQ,EAAI,CAAY,GAAU,cACZ,yBAErB,aAAqB,YAAc,EAAY,IACxD,EAEM,OAA2B,QACpB,OAAW,KAEtB,OAAO,0BAA4B,KAC3B,EAAU,EAAI,CAAY,GAAU,uBAC1C,IAAU,CACZ,CAAC,CACH,EAEM,OAAmC,KACjC,EAAY,GAAoB,MAEjC,EAAS,OAAS,SAEjB,EAAW,EAAU,cAAc,iCAAiC,KAEtE,aAAoB,eAAc,OAAS,MAEzC,EAAO,SAAS,cAAc,KAAK,QACzC,GAAK,UAAY,iCACjB,EAAU,aAAa,EAAM,EAAU,UAAU,EAE1C,CACT,EAEM,OAAiC,KAChC,EAAwB,OAE7B,IAAQ,CAAwB,EAChC,EAA2B,SAGrB,EADY,GACL,GAAW,cAAc,iCAAiC,EAEnE,aAAgB,gBAAkB,EAAK,oBAAsB,GAC/D,EAAK,OAAM,CAEf,EAEM,OAA+B,KAC9B,EAAK,MAAK,CAAY,SAE3B,GAAwB,MAElB,EAAO,GAA0B,EAElC,IAEL,EAA2B,GAAM,GAAS,CACxC,OAAQ,EACR,MAAK,CACH,QAAO,EAAE,CAAwB,EACjC,MAAK,EAAE,CAAwB,EAC/B,SAAQ,GAAG,CAAyB,EACpC,MAAO,GACP,SAAU,MAId,GAAkB,EACpB,EAEM,OAAyB,GAC7B,EAAe,GACjB,EAEM,OAA0B,GAC9B,EAAe,GACjB,EAEA,OAAgB,CACd,GAAwB,CAC1B,CAAC,EAED,OAAc,KACP,EAAK,MAAK,CAAY,EAAE,CAC3B,GAAwB,QAG1B,UAEA,KACA,KACA,GACA,GAAsB,MAET,CACX,GAAwB,CAC1B,CACF,CAAC,MAEK,GAAe,QACnB,MAAK,EAAE,EAAa,EACpB,aAAY,EAAZ,EAAY,EACZ,KAAM,EAAK,EAAG,QAAU,SACxB,SAAQ,EAAE,CAAiB,EAC3B,kBAAe,EACf,WAAQ,EACR,iBAAgB,EAAE,CAAyB,EAC3C,YAAW,EAAE,CAAwB,EACrC,OAAQ,GACR,QAAS,GACT,SAAW,GAAc,IACnB,EAAK,EAAE,CACT,GACE,GAAgC,CAE5B,MAAO,EAAU,IAAM,KACvB,IAAK,EAAU,IAAM,IAAI,IAE3B,CAAwB,GAE1B,EAAI,QAIR,CAEA,GACE,GAA4B,EAAU,IAAM,KAAI,EAAE,CAAwB,GAC1E,EAAI,CAER,KAGI,IAAqB,EAAmB,IAA2B,IACvE,EAAQ,GACR,EAAa,EAAC,CAAI,EAEd,EAAe,KACX,EAAW,IAAO,YAAY,SAAQ,CAAI,OAAM,CAAI,MAAO,CAAI,IACrE,EAAQ,EAAC,CAAW,CACtB,CACF,EAEM,IAAoB,EAAiB,IAA2B,IACpE,EAAQ,GACR,EAAa,EAAC,CAAI,EAEd,EAAe,KACX,EAAW,IAAO,YAAY,SAAQ,CAAI,OAAM,CAAI,MAAO,CAAI,IACrE,EAAQ,EAAC,CAAW,CACtB,CACF,EAEM,OAAmB,CACnB,EAAQ,MAEZ,CAAY,GAAE,MAAK,GACL,EAAI,CAAY,GAAU,eAC9B,OAAI,EAChB,EAEM,OAAoB,EACV,EAAI,CAAY,GAAU,eAC9B,QAAK,CACjB,EAEM,GAAa,GAAkB,CACnC,GAAO,gBAAe,EAElB,GAAQ,IAER,EAAK,EACP,GAAgB,CAAG,MAAO,KAAM,IAAK,IAAI,EAAI,EAAI,EAEjD,GAAkB,KAAM,EAAI,EAG9B,GAAW,EACb,EAEM,GAAsB,GAAiB,CAC3C,KAAM,gBAAe,EAEjB,GAAQ,OAEP,EAAK,GAAI,EAAS,EAAE,MACnB,CAAY,EAAE,CAChB,GAAS,QAGX,KAEM,EAAG,IAAO,KAChB,GAAkB,EAAK,EAAI,GACb,EAAI,CAAY,GAAU,eAC9B,UAAU,EAAK,EAAK,QAGhC,CAEA,GAAU,CAFV,CAGF,EAEM,GAAiB,GAAyB,CAC9C,EAAM,gBAAe,GAEjB,EAAM,MAAQ,SAAW,EAAM,MAAQ,OACzC,EAAM,eAAc,EACpB,GAAU,GAGR,EAAM,MAAQ,UAAQ,EAAI,CAAY,IACxC,EAAM,eAAc,EACpB,GAAW,EAEf,EAEM,GAAmB,GACnB,IAAU,OAAS,IAAU,QAAgB,EAE1C,KAGH,GAAkB,GAA+B,KAC/C,EAAkB,GAAgB,CAAS,KAE7C,EAAQ,IAAK,GAAmB,IAAe,EAAK,CAAwB,aAI1E,EAAa,EAAG,IAChB,EAAY,EAAG,MACrB,EAAkB,GAEd,EAAK,EAAE,KACH,EAAkB,GAAiC,EAAe,CAAe,EAElF,IAAgB,EAAiB,CAAa,GACjD,GAAiB,EAAiB,EAAI,QAI1C,KAEM,EAAiB,GAA4B,EAAc,CAAe,EAE3E,GAAW,EAAgB,CAAY,GAC1C,GAAkB,EAAgB,EAAI,CAE1C,EAEM,GAA2B,GAAkB,KAC3C,EAAkB,GAAgB,CAAK,EAExC,GAEL,GAAe,CAAe,CAChC,EAEM,GAAoB,IACxB,EAAK,iBAAiB,UAAW,EAAa,GAG5C,SAAU,CACR,EAAK,oBAAoB,UAAW,EAAa,CACnD,IAIE,GAAmB,IACvB,EAAK,iBAAiB,QAAS,EAAS,GAGtC,SAAU,CACR,EAAK,oBAAoB,QAAS,EAAS,CAC7C,QAKL,GAAG,MACD,KADF,EAAG,kBACD,IAUE,4BACO,EAAW,0BAChB,EAAS,2BACT,EAAQ,yBACR,EAAQ,WACA,SAGV,gDAKsB,EAAe,MALrC,0BAOY,EAAY,SAAZ,CAAY,YAPxB,iBAmBE,QAME,KANF,CAMM,qBAAO,sBANb,2CAGa,EAAK,EAAG,mBAAqB,eAAe,OAHzD,eADE,EAAQ,IAAK,EAAQ,eAWzB,GAAK,WAAL,EAAK,IA/CP,MADF,EAAG,aACD,+CAEyB,CAAyB,kCAFlD,yBAKoB,CAAoB,MALxC,kCAMqC,CAAgB,UANrD,mBAQgB,EAAQ,KAUtB,QACE,EAAE,KADJ,aAIU,EAAE,eAJZ,iBAQE,EAAW,MARb,KASQ,EAAY,KATpB,YAUO,CAAgB,GAVvB,YAYE,EAAQ,IAZV,gBAaa,EAAS,GAAI,EAAW,KAgBrC,GAAK,OAAqB,EAAI,GAAI,EAAE,MAApC,GAAK,EAAwC,EAAW,GAAxD,GAAK,SAAsD,EAAQ,EAAnE,GAAK,SAAiE,EAAQ,yBA9C1D,EAAS,IAAG,KAAI,SAFxC,EAAG,KAFI,CC9ZR,IAAa,IAAyB,GAAgB,CAClD,IAAI,EACA,EACE,EAAiB,CACnB,WAAY,EAChB,EACI,EAAU,GAAe,CAAC,EACxB,EAAc,IACT,CAAE,GAAG,EAAgB,GAAI,GAAe,CAAC,EAAI,GAAI,GAAS,CAAC,CAAG,GAEnE,EAAU,GAAkB,CAC1B,GAAoB,IACpB,EAAU,EAAW,CAAa,EAClC,GAAgB,EAAkB,EAAiB,CAAO,EAAE,KAAM,GAAM,CACpE,OAAO,OAAO,EAAgB,MAAO,CACjC,SAAU,EAAE,SACZ,KAAM,GAAG,EAAE,EAAE,IACb,IAAK,GAAG,EAAE,EAAE,GAChB,CAAC,EACD,GAAS,YAAc,EAAQ,WAAW,CAAC,CAC/C,CAAC,EAET,EACM,EAAmB,GAAS,CAC9B,GAAI,cAAe,EAEf,OADA,EAA4B,CAAI,EACzB,CAAC,EAGR,EAAmB,EACnB,EAAO,CAEf,EACM,GAAiB,EAAM,IAAmB,CAC5C,IAAI,EACJ,EAAkB,EAClB,EAAU,EAAW,CAAc,EACnC,eAAiB,EAAO,CAAc,EAAG,CAAC,EAC1C,EAAO,CAAc,EACrB,IAAM,MAA0B,CAC5B,CAEI,IADA,EAAkB,EACE,OAE5B,EACM,GAAkB,EAAW,IACxB,IAAI,QAAS,GAAY,CAC5B,GAAM,CAAE,cAAe,GAAY,CAAC,EACpC,EAAkB,EACdC,IAAe,IACf,GAAK,EAAE,SAAW,CACd,EAAQC,GAAmB,EAAkB,MAAuB,EAAO,CAAQ,EAAGD,IAAe,GAAO,CAAC,EAAIA,CAAU,CAAC,CAChI,CAAC,CAET,CAAC,EAGL,OADA,EAAe,EAAE,KAAM,GAAa,EAAoB,CAAQ,EACzD,CACH,OAAO,EAAgB,CACnB,EAAO,CAAc,EACrB,EAAe,EAAE,KAAM,GAAa,EAAoB,CAAQ,CACpE,EACA,SAAU,CACN,EAAkB,CACtB,CACJ,CACJ,EACM,EAA+B,GAAS,CAY1C,GAXoB,EAAK,UAAW,GAAU,CACtC,IAAqB,QACrB,EAAmB,EACnB,EAAO,IAIP,OAAO,OAAO,EAAkB,CAAK,EACrC,EAAO,EAEf,CACoB,CAAC,CACzB,EACA,MAAO,CAAC,EAAiB,EAAe,CAAM,CAClD,ECrFA,SAAwB,IAAO,CAC3B,cACA,aACA,QACA,WACA,QACA,SACA,UACA,sBACA,aACA,8BACA,qBACA,SACD,CACC,GAAI,GAAS,EAAa,OAAO,EACjC,GAAI,CAAC,EAAO,MAAO,CAAC,EAEhB,GAAS,EAAM,OAAS,GAAK,OAAO,EAAM,IAAO,WACjD,EAAQ,EAA4B,CAAK,GAG7C,IAAI,EAAgB,EAAM,OAAQ,GAAS,CACvC,IAAI,EAAgB,EAAW,EAAK,GAAQ,EAAY,CAAI,EAO5D,OANI,GAAiB,GAAY,GAAO,SACpC,EAAgB,CAAC,EAAM,KAAM,GAClB,EAAsB,EAAE,KAAY,EAAK,GAAU,EAC7D,GAGE,CACX,CAAC,EAMD,OAJI,IACA,EAAgB,EAAmB,CAAa,GAG7C,CACX,CCrCA,eAA8B,IAAS,CAAE,WAAU,cAAa,8BAA6B,cAAc,CACvG,IAAI,EAAM,MAAM,EAAY,CAAU,EAAE,MAAO,GAAQ,CACnD,QAAQ,KAAK,uCAAwC,CAAG,EACxD,EAAS,QAAS,CAAE,KAAM,cAAe,QAAS,CAAI,CAAC,CAC3D,CAAC,EAED,GAAI,GAAO,CAAC,EAAI,UAWZ,OAVI,GACI,GAAO,EAAI,OAAS,GAAK,OAAO,EAAI,IAAO,WAC3C,EAAM,EAA4B,CAAG,GAGzC,EAAS,SAAU,CAAE,MAAO,CAAI,CAAC,GAEjC,EAAM,CAAC,EAGJ,CACH,cAAe,EACf,QAAS,GACT,QAAS,GACT,SAAU,EACd,CAER;;;;8FCxBC;+FCAA,6PCAG,IAAH,CAAG,0uCCAJ,yFAKU,EAAW,IAAqB,EAS3B,EAAS,mBAAG,MAEZ,EAAM,eAAG,GAAO,EAChB,EAAQ,iBAAG,GAAS,EAEpB,EAAE,WAAG,IAAI,EACT,EAAI,aAAG,IAAI,EACX,EAAS,mBAAG,MAAS,EACrB,EAAK,eAAG,MAAS,EACjB,EAAQ,iBAAG,EAAK,EAChB,EAAsB,+BAAG,EAAK,EAC9B,EAAQ,iBAAG,EAAK,EAChB,EAAO,iBAAG,EAAK,EACf,EAAK,eAAG,IAAI,EACZ,EAAU,oBAAG,EAAE,EACf,EAAW,oBAAG,eAAe,EAC7B,EAAqB,8BAAG,EAAK,EAC7B,EAAK,eAAG,IAAI,EACZ,EAAK,cAAG,OAAO,EACf,GAAU,oBAAI,EAAO,EAAY,IAAM,GAAQ,IAAQ,YAAW,EAAG,SAAS,EAAW,YAAW,IACpG,GAAO,gBAAG,MAAS,EACnB,GAAW,oBAAI,GAAW,CAAM,EAChC,EAAqB,8BAAG,EAAK,EAC7B,GAAM,eAAG,OAAO,EAChB,GAAW,oBAAG,MAAS,EACvB,GAAe,wBAAG,EAAE,EACpB,GAAQ,iBAAG,EAAK,EAChB,GAAmB,4BAAG,EAAI,EAC1B,GAAQ,iBAAG,EAAK,EAChB,GAAiB,0BAAG,EAAI,EACxB,GAAqB,8BAAG,EAAI,EAE5B,GAAqB,+BAAI,EAAY,MAExC,MAAO,GACN,EAAK,GAAG,CAAU,EAE1B,EAEY,SACF,CAAa,EAGb,GAAU,mBAAG,EAAI,EACjB,GAAW,oBAAG,EAAE,EAChB,GAAS,kBAAG,EAAI,EAChB,GAAO,iBAAG,EAAK,EACf,GAAQ,kBAAG,EAAK,EAEvB,GACO,GAAQ,kBAAI,EAAI,EAAO,IAAM,CACpC,aAAa,EAAO,EACpB,GAAU,WAAW,EAAI,CAAI,CACjC,CAAC,EAEU,GAAY,qBAAG,GAAG,EAClB,GAAc,uBAAG,EAAK,EACtB,GAAe,mCACf,GAAa,sBAAG,EAAI,EACpB,GAAW,oBAAG,EAAK,EACnB,GAAU,mBAAG,CAAC,EACd,GAAc,wBAAG,CAAC,EAClB,GAAc,kCAIrB,GAAgB,cAAG,EAAE,EACrB,GAAW,KACX,GAAU,KACV,GAAe,KACf,GAAa,cAER,IAAW,QACL,EAAK,GAAK,SAEjB,GADY,EAAK,OAAQ,KAAM,GAAS,EAAK,GAAM,KAAM,EAAK,CACtD,GAAI,EACP,GAAM,GAAG,EAAK,EACf,MAAO,EAAK,IAET,EAAQ,GAAI,MAAM,QAAQ,EAAK,IAAK,EAAK,EAAC,OAAS,GAC1D,EAAQ,EAAK,EAAC,IAAK,GAAI,OAAa,GAAS,SAAQ,CAAK,MAAO,EAAM,MAAO,CAAI,EAAK,CAAI,EAEnG,KAEI,GAAgB,cACX,IAAwB,GAC7B,GAAmB,OAAO,QAElB,eAAgB,OAChB,aAAc,MACd,YAAa,MACb,WAAY,GACZ,SAAU,EACV,KAAM,OACN,oBAAqB,QAEzB,OAGA,EAAE,MACF,GAAgB,EAAhB,EAAgB,EAAC,GAAQ,EAAE,GAG1B,GAAU,MACX,GAAgB,EAAhB,EAAgB,EAAC,SAAc,EAAI,CAE3C,UAES,GAA4B,EAAQ,QAClC,EAAO,KAAK,EAAM,MAEjB,QACA,MAAO,EACP,MAAK,GAAK,GAAI,EAErB,CACL,UAES,GAAmB,EAAQ,KAC1B,EAAW,GACX,EAAM,GAEZ,EAAO,QAAS,GAAS,KACf,EAAa,GAAO,EAAC,CAAI,EAE1B,EAAY,SAAS,CAAU,IAChC,EAAY,KAAK,CAAU,EAC3B,EAAO,GAAU,GAEb,GACA,EAAO,GAAY,KACf,OAAO,OAAO,GAAqB,EAAC,EAAY,CAAI,GAChD,GAAI,EACJ,YAAa,GACb,WAAY,EAAqB,MAMjD,EAAO,GAAY,KAAK,OAAO,OAAM,CAAG,UAAS,EAAI,CAAU,EAAI,CAAI,EAC3E,CAAC,MAEK,EAAkB,UAExB,GAAW,EAAC,CAAW,EAAE,QAAS,GAAe,CACzC,EAAO,IAAa,EAAmB,KAAI,GAAI,EAAO,EAAU,CACxE,CAAC,EAEM,CACX,UAES,IAAuB,IACxB,EAAQ,EAAE,CACN,KAAK,UAAU,EAAK,KAAM,KAAK,UAAS,EAAC,EAAU,IAC/C,GAAuB,GACvB,EAAS,QAAS,EAAK,SAInC,KAEK,EAAU,GAAI,KAAK,UAAU,EAAK,EAAC,GAAM,MAAO,KAAK,UAAS,EAAC,EAAU,EAAC,GAAM,MACjF,EAAS,QAAS,EAAK,EAE/B,UAES,IAAa,CACd,EAAK,IACD,MAAM,QAAQ,EAAK,GACnB,EAAK,IAAO,EAAK,IAEjB,EAAK,CAAI,EAAK,IAG1B,UAES,IAAc,CACf,EAAK,GAAE,EAAQ,IAAI,CAC3B,UAcS,IAA4B,CAKjC,GAJgB,EAAG,CAAa,EAAC,UAAW,GACjC,EAAE,GAAM,KAAM,EAAK,EAAC,GAAM,EAGhB,EAAY,EAAI,CACzC,UAES,GAAc,EAAG,CACtB,EAAS,YAAa,CAAC,CAC3B,UAES,GAAqB,EAAgB,EAAG,EAAa,CAC1D,GAAiB,EAAgB,EAAI,EAAI,CAAa,GACjD,GAAe,GAAO,KAAI,CAAa,EAAC,GAAc,OAAM,CAAa,EAAC,GAAc,GAAE,YAC3F,GAAc,CAAC,CAEvB,UAES,IAAkB,EAClB,GAAW,GAAI,EAAU,EAAC,SAAW,IAEtC,GAAW,EACX,GAAQ,kBAAmB,CACvB,GAAU,EAAI,MACV,EAAG,MAAS,EAAQ,GACpB,WACA,eAAW,EACX,+BACA,aAAU,IAGV,GACA,GAAU,EAAI,OAAO,EACrB,GAAW,GAAQ,EAAG,EAAI,SAAW,EAAU,EAAC,OAAS,CAAgB,EACzE,EAAU,GAAQ,GAAI,EAAI,OAAO,EACjC,EAAQ,GAAO,EAAG,GAAmB,EAAI,aAAa,EAAI,EAAI,aAAa,IAE3E,GAAU,EAAK,EACf,EAAU,EAAI,EACd,GAAW,EAAI,EAEvB,EAAG,GAAY,IAEf,GAAW,EAAI,EAEX,EAAQ,KACR,GAAc,MAAS,GAGnC,UA2CS,GAAkB,EAAO,CAC1B,GAAQ,GAAE,EAAS,SAAU,CAAK,CAC1C,CAEA,IAAY,SAAa,GACrB,GAAa,EAAK,KAClB,GAAkB,EAAU,KAC5B,GAAgB,EAAQ,EAC5B,CAAC,WAEQ,IAAmB,QACpB,EAAQ,EAAS,EAAK,EAAG,EAAK,EAAC,IAAK,GAAS,EAAK,GAAM,IAAK,KAC1D,EAAK,EAAG,EAAK,EAAC,GAAM,GAAI,EAAK,CACxC,UAES,IAA0B,KAC3B,EAAe,MACf,EAAK,EAAE,KACD,EAAG,GACH,EAAY,GAElB,EAAK,EAAC,QAAS,GAAQ,CACd,EAAI,SAAS,EAAI,GAAM,IAIxB,EAAe,IAHf,EAAI,KAAK,EAAI,GAAM,IACnB,EAAa,KAAK,CAAG,EAI7B,CAAC,EAEI,GAAc,EAAQ,CAAY,CAC3C,QACO,CACX,UAES,GAAS,EAAW,KACrB,EAAU,EAAY,EAAU,GAAM,GAAI,EAAK,EAAC,GAAM,UACnD,EAAK,EAAC,KAAM,GAAS,EAAK,GAAM,KAAM,CAAO,CACxD,UAES,GAAmB,EAAO,EAC1B,GAAS,EAAM,SAAW,GAAK,EAAM,KAAM,GAAI,OAAY,GAAS,QAAQ,IAC5E,EAAK,IAAK,EAAQ,EAAG,EAAK,EAAC,KAAM,GAAS,CAAM,GAAS,CAAK,EAAU,GAAM,KAAM,EAAK,EAAC,GAAM,MAEjG,MAAM,QAAQ,EAAK,GACnB,EAAQ,EAAK,EAAC,IAAK,GAAc,GAAS,CAAS,GAAK,CAAS,GAEjE,EAAQ,GAAQ,GAAM,EAAK,GAEnC,gBAEe,GAAqB,EAAG,KAC7B,EAAe,EAAK,EAAC,GAEvB,EAAK,EAAC,SAAW,EACjB,EAAQ,MAAS,EAEjB,EAAQ,EAAK,EAAC,OAAQ,GACX,IAAS,CACnB,GAGL,EAAS,QAAS,CAAY,CAClC,UAES,GAAc,EAAG,CACjB,KAAO,SACZ,EAAE,gBAAe,EACT,EAAE,SACD,SACD,EAAE,eAAc,EAChB,GAAS,YAER,WACD,EAAE,eAAc,EAEZ,GAAQ,EAAE,MACN,CAAa,EAAC,SAAW,EAAC,UACxB,EAAS,EAAG,CAAa,EAAC,GAAc,MAE1C,EAAK,IAAK,EAAQ,GAAI,EAAK,EAAC,GAAM,KAAM,EAAU,GAAM,GAAG,CAC3D,GAAS,OAEb,MACI,GAAY,EAAC,CAAa,EAAC,GAAc,GAEjD,WAGC,YACD,EAAE,eAAc,EAEZ,GAAQ,EACR,GAAc,CAAC,GAEf,GAAW,EAAI,IACf,GAAc,MAAS,aAI1B,UACD,EAAE,eAAc,EAEZ,GAAQ,EACR,GAAa,EAAG,GAEhB,GAAW,EAAI,IACf,GAAc,MAAS,aAI1B,SACG,GAAQ,GAAI,EAAO,EAAE,MAEjB,CAAa,EAAC,SAAW,GACxB,EAAK,GAAI,EAAK,EAAC,GAAM,OAAM,CAAa,EAAC,GAAc,GAAE,GAAM,UAEzD,GAAS,EAEpB,EAAE,eAAc,EAChB,GAAY,EAAC,CAAa,EAAC,GAAc,IACzC,GAAS,CACb,WAGC,gBACI,EAAQ,GAAI,EAAU,EAAC,OAAS,EAAC,UAElC,EAAQ,GAAI,EAAK,GAAI,EAAK,EAAC,OAAS,EAAG,IACvC,GAAoB,EAAC,EAAW,IAAK,OAA0B,EAAK,EAAC,OAAS,EAAhC,EAAG,EAAW,CAAmB,IAC3E,EAAW,IAAK,GAAC,EAAI,EAAW,IAAK,OAAS,QAClD,GAAc,EAAK,EAAC,OAAM,EAAG,EAAW,IAAG,EAAW,EAAG,EAAI,MAAS,CAC1E,WAGC,gBACI,EAAK,IAAK,EAAQ,GAAI,EAAU,EAAC,OAAS,EAAC,SAC5C,EAAW,IAAK,SAChB,GAAc,EAAK,EAAC,OAAS,CAAC,EACvB,EAAK,EAAC,OAAM,EAAG,EAAW,KAAI,EAAW,IAAK,KACrD,GAAW,EAAX,EAAW,EAAI,CAAC,YAGnB,iBACI,EAAK,IAAK,EAAQ,GAAI,EAAU,EAAC,OAAS,GAAC,EAAI,EAAW,IAAK,OAAS,SACzE,EAAW,IAAK,EAAK,EAAC,OAAS,IAC/B,GAAc,MAAS,EAC1B,EAAU,EAAW,EAAG,EAAK,EAAC,OAAS,KACpC,GAAW,EAAX,EAAW,EAAI,CAAC,QAIhC,UAES,GAAY,EAAG,CAChB,EAAO,GAAI,EAAK,IAAK,UAAU,gBAC/B,GAAG,EAAS,QAAS,CAAC,EAC1B,EAAK,GAAE,MAAK,EACZ,EAAU,EAAI,EAClB,gBAEe,GAAW,EAAG,CACrB,KACA,GAAQ,GAAI,EAAO,KACnB,EAAS,OAAQ,CAAC,EAClB,GAAS,EACT,EAAU,EAAK,IACf,GAAc,MAAS,EACvB,EAAK,GAAE,KAAI,EAEnB,UAES,IAAc,CACf,MAAQ,MACR,EAAU,EAAC,OAAS,EAAC,OAAS,GAAW,EAAI,EACjD,GAAQ,CAAI,GAAQ,EAD6B,CAErD,UAEgB,IAAc,CAC1B,EAAS,QAAS,EAAK,GACvB,EAAQ,MAAS,EACjB,GAAS,EACT,GAAW,CACf,CAEA,OAAc,CACN,GAAQ,GAAE,EAAU,EAAI,EACxB,EAAO,GAAI,EAAK,GAAE,EAAK,EAAC,MAAK,CACrC,CAAC,WAEQ,GAAa,EAAW,IACzB,EAAW,CACX,EAAa,EAAE,MACT,EAAO,OAAO,OAAM,GAAK,CAAS,KAEpC,EAAK,aAAW,CAAK,EAAK,WAAU,OACxC,EAAQ,EAAQ,EAAI,EAAK,EAAG,EAAK,EAAC,OAAM,CAAE,CAAI,IAAM,CAAI,EAAM,EAAQ,CAAI,GAE1E,eAAiB,CACT,GAAiB,GAAE,GAAS,IAChC,GAAc,MAAS,EACvB,EAAS,SAAU,EAAK,GACxB,EAAS,SAAU,CAAS,CAChC,CAAC,CACL,CACJ,UAES,IAAY,CACb,GAAqB,GACrB,EAAa,EAAE,EAEnB,GAAW,EAAK,CACpB,KAEW,GAAU,mBAAI,aACJ,EAAM,YAC1B,EAEU,GAAY,sBAAI,EAAO,2CACgB,EAAK,cAAe,EAAK,oBAC1E,EAEU,GAAW,8FAErB,WAEQ,GAAoB,EAAW,KAChC,SAKA,EAHA,GAAa,EAAK,EAAC,OAAS,EACjB,EAAK,EAAC,IAAK,GAAM,EAAE,EAAK,IAAG,KAAK,IAAI,EAEpC,EAAK,EAAC,EAAK,GAGnB,GAAU,EAAC,CAAQ,CAC9B,UAES,IAAoB,OACpB,CAAa,KAAI,CAAa,EAAC,SAAW,EAAC,MAAS,OACrD,EAAK,EAAG,CAAa,EAAC,GAAc,MACpC,GAAQ,GAAI,EAAO,KACf,EAAK,EAAG,CAAa,IAAG,CAAa,EAAC,OAAS,SAC5C,GAAY,EAAC,EAAM,EAAK,GAAG,CAAK,CAC3C,aACW,GAAW,GAE1B,KAEI,GAAI,GAAG,IAAI,EAEX,YACK,IAAmB,CACxB,aAAa,EAAgB,EAC7B,GAAmB,eAAiB,CAChC,GAAc,EAClB,EAAG,IACP,UAES,GAAmB,EAAO,EAC1B,GAAQ,IAAK,EAAO,GAAI,EAAS,IAAK,EAAS,EAAC,SAAS,EAAM,MAAM,MAAM,EAAI,GAAE,SAAS,EAAM,MAAM,GACvG,GAAU,CAElB,CAEA,OAAgB,GACZ,EAAI,GAAE,OAAM,CAChB,CAAC,MAEG,GAAc,YAET,GAAa,EAAM,EACnB,GAAQ,EAAK,aAAe,IACjC,GAAa,CAAI,CACrB,UAES,GAAY,EAAG,CAChB,IACJ,GAAiB,CAAC,CACtB,UAES,GAAgB,EAAM,KACnB,OAAM,KAAM,EAChB,MAAM,aAAe,OACrB,EAAK,IAAK,EAAQ,GAAI,EAAK,EAAC,GAAM,KAAM,EAAK,GAAM,UAAU,GAAS,EACtE,GAAiB,CAAI,IACrB,GAAiB,CAAC,EAClB,GAAa,CAAI,EAHqD,CAK9E,UAES,GAAc,EAAW,IACH,EAAG,CAAa,EAAC,OACvC,GAAI,CAAM,OAAO,OAAO,EAAM,YAAY,GAAK,EAAK,aAAe,EAGpE,EAAwB,SAAW,SAC3B,GAAiB,CAAC,EAG1B,EAAY,GAAK,GAAc,MAAK,CAAa,EAAC,OAAS,EAC3D,GAAiB,CAAC,EACX,EAAY,GAAK,GAAc,IAAK,EAC3C,GAAc,EAAG,CAAa,EAAC,OAAS,CAAC,EAEzC,GAAiB,GAAc,EAAG,CAAS,MAGzC,EAAK,EAAG,CAAa,EAAC,GAAc,MAEtC,GAAS,EAAM,aAAe,GAAO,EACjC,IAAc,GAAK,IAAS,KAAS,GAAc,CAAS,QAEpE,CACJ,UAES,GAAa,EAAM,EAAO,EAAQ,CACnC,MAAQ,SACL,GAAS,EAAM,KAAY,EAAK,EAC3C,UAES,GAAY,EAAW,QACrB,IAAc,CACzB,UAES,GAAiB,EAAM,QACpB,EAAK,aAAe,EAAK,YAAe,EAAK,YAAU,CAAK,EAAK,eAAe,YAAY,CACxG,KAEM,GAAe,GACf,GAAc,YAEX,GAAa,EAAM,QAEpB,OAAO,EAAM,CACL,EAAK,SACL,GAAgB,EAChB,EAAK,eAAc,CAAG,SAAU,OAAQ,MAAO,SAAS,GAEhE,EAER,UAES,IAAe,KACZ,SAAU,EAAS,EAAC,sBAAqB,KACjD,GAAI,EAAJ,EAAI,EAAC,MAAM,MAAQ,GAAa,EAAG,EAAQ,KAAO,MAAM,CAC5D,KAEI,GAAe,IACf,SAAU,WACV,UAAW,eACX,WAAU,CAAG,GAAO,GAAU,GAAG,GAAI,EAAI,GAAK,GAC9C,WAAY,MAGT,GAAa,GAAiB,IAAkB,IAAqB,EAAC,EAAe,GAMxF,GAAQ,GAAG,EAAI,WACV,GAAY,EAAM,EAAU,KAC5B,GAAI,CAAK,EAAQ,SAAU,GAAW,EAAI,EAC/C,eAAiB,GACb,GAAW,EAAK,CACpB,EAAG,EACP,+BAxdQ,EAAK,EAAE,EAAK,GAAG,GAAQ,qCACxB,GAAe,IAAK,GAAU,IAAE,GAAqB,wBACrD,EAAQ,GAAE,GAAU,kCACpB,EAAa,IAAK,EAAQ,GAAE,GAAW,kCACvC,EAAQ,GAAI,EAAK,GAAI,EAAK,EAAC,OAAS,GAAG,GAAuB,wBAC9D,EAAK,GAAE,GAAoB,yCAC1B,EAAK,GAAI,EAAQ,KAAI,EAAU,GAAE,EAAS,QAAS,EAAK,oCACxD,EAAO,GAAI,EAAK,GAAE,GAAS,gCAC5B,EAAU,MAAK,EAAe,GAAE,GAAe,iHAwEnD,EAAgB,EAAM,GACrB,eAAW,EACX,aAAU,EACV,QAAK,EACL,WAAQ,EACR,QAAK,EACL,UAAM,EACN,WAAO,EACP,QAAK,EACL,uBAAmB,EACnB,cAAU,EACV,+BACA,wEAnFI,EAAQ,GAAI,GAAQ,GAAI,EAAK,KAAI,CAAa,GAAE,GAAyB,mCA4F1E,GAAQ,GAAI,EAAQ,GAAE,GAAiB,CAAC,wBAExC,EAAU,GAAE,GAAiB,CAAC,yBA7FlC,GAAc,GAAc,qCAsD5B,EAAW,EAAQ,EAAG,EAAK,GAAI,EAAK,EAAC,OAAS,EAAI,EAAK,kCACvD,EAAgB,EAAG,CAAQ,GAAI,EAAU,EAAC,OAAS,CAAC,mDACpD,EAAS,EAAG,CAAQ,GAAI,GAAS,IAAK,EAAQ,IAAK,GAAO,qDAC1D,EACC,EAAqB,GAAI,KAEnB,EAAQ,GAAI,EAAK,GAAE,SAAW,EAD9B,IAGA,IACA,GACA,EAAW,qCAClB,EAAgB,EAAK,EAAG,GAAoB,EAAQ,GAAI,EAAE,mDAC1D,EAAc,GAAiB,CAAG,cAAa,EAAb,CAAa,EAAE,kBAAc,EAAE,UAAO,EAAE,YAAQ,2BAClF,GAAmB,EAAK,4CACxB,EAAY,GAAiB,EAAQ,EAAE,EAAK,EAAE,GAAM,2CAC/C,EAAQ,KAAI,EAAU,IAAK,EAAK,GAAE,EAAS,QAAS,EAAK,iDAe1D,GAAQ,KAAI,CAAa,IAAK,EAAQ,IAAK,EAAK,GAAE,GAAoB,qBAC1E,GAAiB,EAAC,CAAa,0CAC3B,EAAS,GAAI,GAAc,GAAE,GAAe,OAAO,OAAM,EAAC,EAAe,EAAE,GAAc,0BAC7F,EAAO,IAAK,EAAI,kCAChB,GAAW,EAAC,EAAI,EAAE,GAAQ,0CACtB,GAAQ,GAAI,EAAS,KAAI,EAAI,GAAE,GAAY,2BAC/C,EAAoB,GAAc,4CAE9B,EAAK,GAAI,GAAQ,IAAK,EAAO,GAAE,GAAW,mCAwW1C,EAAS,GAAI,GAAc,GAAE,aAAe,WAC/C,GAAe,EAAf,EAAe,EAAC,WAAa,EAAI,8DAcxC,uBAFwB,EAAkB,kBAAc,EAAa,kBAErE,eAcQ,kGASQ,EAAQ,eAAc,sFACU,CAAa,kDAEvC,CAAa,QAAI,EAAI,SACvB,QAQI,IARJ,cAQI,iCAUsB,CAAI,SAAS,+BAnBpB,CAAI,KA1pB7B,EAAK,YA8qBa,CAAI,IAAG,EAAK,kBAXpB,+BACuB,OAAQ,GAAY,EAAC,CAAI,EAAE,EAAK,EAAE,GAAM,GAAG,QAAO,EAAP,CAAO,QADzE,yBAEsB,OAAM,EAAE,CAAiB,IAAK,EAAG,QAAO,EAAP,CAAO,OAVlE,YAQI,gEAI2B,CAAI,EAAC,mBACf,GAAY,EAAC,CAAI,EAAE,EAAK,EAAE,GAAM,SACjC,GAAY,CAAC,QACb,GAAc,IAAK,iBACd,CAAI,EAAC,6BACD,CAAI,GAAE,aAAe,sBAjBlD,MACuB,GAAY,CAAC,cADpC,MAEmB,GAAY,CAAC,cAFhC,SAGmC,GAAe,CAAG,KAAI,EAAJ,CAAI,EAAE,GAAC,kBAH5D,wGA0BG,IAAH,CAAG,2BA7BP,EAAQ,IAAI,UAratB,CAAa,WAsaE,CAAa,EAAC,OAAS,CAAC,SA0BvB,GAAc,kGAKpB,EAAQ,cAAa,YA1C7B,8BAEc,GAAI,SAAJ,EAAI,sBAFlB,EAKc,EAAgB,yBAL9B,yMADA,GAAQ,eA+CZ,GAAI,aAAJ,EAAI,qBAEI,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,eADsB,CAAa,SAEnC,CAAW,sBAHf,EAAO,aADf,EAAI,MASJ,GAAG,EATH,GAAI,QASJ,6BAAG,MAIH,GAAG,EAJH,GAAG,QAIH,EAAG,oDAGe,EAAK,MAAI,EAAI,SACf,kBAOI,EAAI,EAPR,QAOI,2CACqC,CAAI,SAAS,+BAT3C,CAAI,KA5sBrB,EAAK,YAstBa,CAAI,EAAC,EAAK,kBAFlB,CAAI,UAAJ,EAAI,aAOA,4CAIQ,GAAS,UAJjB,8BAEsD,GAAqB,CAAC,SAF5E,aADC,EAAQ,IAAK,EAAsB,GAAI,IAAS,SAbzD,8DAEiB,EAAW,IAAK,EAAC,2BAFlC,SAImC,EAAsB,EAAG,GAAqB,CAAC,oBAJlF,qEAyBJ,EAAG,iBAAH,yCACqC,EAAK,iCA5uB5C,EAAK,MAKL,EAAK,UAwuBK,EAAK,EAAC,EAAK,kBAFnB,CAAG,YAAH,EAAG,gEAAiD,CAAgB,SAApE,CAAG,WA3BH,EAAQ,oCADZ,CAAQ,eAoCZ,iCAIc,GAAU,OACjB,EAAgB,gBAGP,CAAe,QACrB,GAAW,WACjB,EAAQ,iDAVZ,MAMc,EAAK,OAAL,EAAK,KA3CvB,EAAG,MAkDH,GAAG,EAlDH,GAAG,QAkDH,EAAG,aAEK,EAAG,WAAH,2BAEQ,IAAW,UAFnB,CAAG,MAAH,CAAG,YADH,GAAO,qCASP,EAAM,WAAN,yBAEQ,GAAS,UAFjB,CAAM,aAAN,EAAyD,EAAW,MAApE,CAAM,cADN,CAAS,qCAST,EAAG,WAAH,2CAC8B,GAAQ,QAC9B,IAAW,UAFnB,CAAG,MAAH,CAAG,YADH,GAAW,aAjBnB,EAAG,WAAH,GAAG,8CA0BuB,EAAK,YAC3B,EAAK,SAAL,CAAK,UAAL,EAAK,OAAE,EAAI,MAAX,EAAK,aA3xBC,EAAK,UA2xBuB,EAAK,EAAG,KAAK,UAAU,EAAK,GAAI,IAAI,SAAtE,CAAK,6EAIiB,EAAK,YACjB,IAAN,CAAM,+BAjxBJ,GAAQ,MAfR,EAAK,UA8xBX,GAAQ,KAAM,EAAK,GAAI,EAAK,EAAC,SAAW,EAAC,aAzJjD,gCASgC,EAAW,OAT3C,MAUc,EAAS,OAAT,EAAS,MAVvB,iDACyB,GAAgB,mCACzB,EAAQ,uCAGJ,GAAQ,iBACL,GAAW,QAClB,GAAQ,OAPxB,GAQU,GAAe,kBAsGjB,GACe,EAAa,YAD5B,GAEY,EAAU,aAFtB,GAGa,EAAW,KAHxB,GAOe,CAAU,MArHjC,4DAJO,CCzpBR,SAAgB,IACd,EACA,EACA,EACQ,CACR,GAAI,CAAC,EAAO,OAAQ,OAAO,GAAe,UAE1C,IAAM,EAAS,IAAI,IAAI,EAAM,IAAK,GAAS,CAAC,EAAK,MAAO,EAAK,KAAK,CAAC,CAAC,EAKpE,OAHI,EAAO,OAAS,GAAK,EAAO,KAAM,GAAU,CAAC,EAAO,IAAI,CAAK,CAAC,EACzD,GAAG,EAAO,OAAO,aAEnB,EAAO,IAAK,GAAU,EAAO,IAAI,CAAK,CAAC,EAAE,KAAK,IAAI,CAC3D,CAGA,SAAgB,GACd,EACA,EACA,EACA,EACkB,CAClB,IAAM,EAAS,IAAI,IACnB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAQ,IAAU,CAAI,GAAK,OAC3B,EAAU,EAAO,IAAI,CAAK,GAAK,CAAC,EACtC,EAAQ,KAAK,CAAI,EACjB,EAAO,IAAI,EAAO,CAAO,CAC3B,CACA,IAAM,EAAQ,EAAO,YAAY,EAC3B,EAAyB,CAAC,EAChC,IAAK,GAAM,CAAC,EAAO,KAAY,EAAQ,CACrC,IAAM,EAAU,EAAQ,OAAQ,GAAS,EAAK,MAAM,YAAY,EAAE,SAAS,CAAK,CAAC,EAE5E,KAAQ,OAEb,CAAI,GACF,EAAK,KAAK,CACR,IAAK,SAAS,IACd,KAAM,CACJ,MAAO,EACP,MAAO,EACP,KAAM,EACN,GAAI,EACJ,YAAa,GACb,WAAY,CACd,EACA,YAAa,EACf,CAAC,EAGH,IAAK,IAAM,KAAQ,EACjB,EAAK,KAAK,CACR,IAAK,UAAU,EAAK,QACpB,KAAM,CAAE,UAAW,CAAC,CAAC,EAAO,GAAG,CAAK,EACpC,YAAa,EACf,CAAC,CARA,CASL,CAEA,OAAO,CACT,CC/DA,IAAM,GAAmB,mBAEzB,SAAgB,IAAgD,CAC9D,GAAI,OAAO,SAAa,IAAa,OAAO,KAE5C,IAAM,EAAW,SAAS,eAAe,EAAgB,EAEzD,GAAI,EAAU,OAAO,EAErB,IAAM,EAAS,SAAS,cAAc,KAAK,EAa3C,MAZA,GAAO,GAAK,GACZ,OAAO,OAAO,EAAO,MAAO,CAC1B,SAAU,QACV,IAAK,IACL,KAAM,IACN,MAAO,OACP,OAAQ,IACR,OAAQ,QACR,cAAe,MACjB,CAAC,EACD,SAAS,KAAK,YAAY,CAAM,EAEzB,CACT,CAEA,SAAgB,GAAuB,EAAqB,EAA2B,CACrF,GAAI,OAAO,OAAW,IAAa,OAEnC,IAAM,EAAS,OAAO,iBAAiB,CAAM,EAC7C,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAW,EAAO,KAAK,CAAK,EAE9B,EAAS,WAAW,IAAI,GAC1B,EAAO,MAAM,YAAY,EAAU,EAAO,iBAAiB,CAAQ,CAAC,CACxE,CACA,EAAO,MAAM,YAAY,eAAgB,iBAAiB,EAC1D,EAAO,MAAM,YAAY,qBAAsB,iBAAiB,EAChE,EAAO,MAAM,YAAY,yBAA0B,iBAAiB,EACpE,EAAO,MAAM,YACX,iCACA,8CACF,EACA,EAAO,MAAM,YAAY,qBAAsB,8CAA8C,CAC/F,orDC3CA,aAqDM,EAAO,EAAO,EAAK,EACnB,EAAS,EAAO,EAAE,EAClB,EAAY,EAAsB,IAAI,EACtC,EAAsB,EAAO,EAAK,EAClC,EACA,EACA,EAAc,EAAM,QACpB,EAAU,EAAM,QAEd,EAAM,yBACN,EAAO,MAAY,GAAoB,0CAAwC,EAAE,GACjF,EAAO,MACX,IAAkB,WAEhB,CAAO,EAAC,IAAK,GAAQ,EAAI,IAAI,kBAI3B,EAAY,MAAqB,cACzB,QAAM,SAAW,OAAS,EAAC,aAEjC,EAAM,IAAO,IAAG,EAAC,CAAO,EAAC,IAAK,GAAG,CAAM,EAAI,KAAK,MAAO,EAAI,KAAK,KAAK,oBAEhE,KAAM,GAAK,CAAM,EAAO,IAAI,CAAK,eAE9B,IAAK,IAAK,CAAQ,QAAO,MAAO,EAAO,IAAI,CAAK,GAAK,CAAK,GAC1E,CAAC,EACK,EAAI,MAAY,GAAoB,4CAAwC,CAAM,IAClF,EAAc,QAAY,CAAI,EAAC,OAAQ,GAAQ,EAAI,KAAK,aAAe,EAAK,GAC5E,EAAS,QACb,CAAc,EAAC,KAAM,GAAQ,EAAI,MAAG,EAAK,CAAS,MAAK,CAAc,EAAC,EAAC,EAEnE,EAAW,QAAY,CAAS,IAAG,CAAI,EAAC,QAAO,EAAC,CAAS,KAAM,EAC/D,EAAO,QAAY,CAAmB,yBAAwB,MAAM,EAG1E,OAAc,aACE,EAAS,CACzB,CAAC,iBAEc,GAAW,gBAGxB,EAAS,EAAC,IACV,EAAY,QACZ,EAAO,UACD,GAAI,IAEN,CAAI,kBAAe,CAAW,GAAE,MAAK,EAC3C,UAES,EAAU,EAAc,GAAO,GACtC,EAAO,MACP,EAAS,EAAC,IACV,EAAY,MAER,GAAa,GAAS,MAAK,CACjC,UAES,EAAU,EAAqB,gBACtB,EAAI,KAAK,aAAe,GAAK,SAE7C,EAAY,EAAI,YACV,EAAI,SAAU,SAAS,EAAI,KAAK,KAAK,WAChC,OAAQ,GAAU,IAAU,EAAI,KAAK,KAAK,eACrC,EAAI,KAAK,KAAK,EACxB,EAAO,IAAO,IAAG,EAAC,CAAO,EAAC,IAAK,GAAK,CAAM,EAAM,KAAK,MAAO,EAAM,IAAI,qBAE1E,EACA,EAAK,IAAK,GAAU,EAAQ,IAAI,CAAK,GAAG,OAAQ,GAAI,EAA2B,CAAI,EAEvF,UAES,GAAiB,kEAKpB,CAAI,IAAE,CAAW,GAAE,MAAK,EACvB,GAAS,MAAK,EACrB,gBAEe,EAAW,EAAmB,OACtC,CAAc,EAAC,OAAM,WAGpB,GADO,EAAG,CAAc,EAAC,UAAW,GAAQ,EAAI,MAAG,EAAK,CAAS,GAAE,GAC3D,EAAU,EAAS,EAAG,CAAc,EAAC,QAAM,EAAI,CAAc,EAAC,SAC5E,EAAS,EAAG,CAAc,EAAC,GAAM,cAC3B,GAAI,EACV,SAAS,eAAc,KAAI,CAAM,OAAI,CAAW,MAAK,iBAAc,CAAK,MAAO,SAAS,EAC1F,UAES,EAAoB,EAAsB,CAC7C,EAAM,MAAQ,aAAe,EAAM,MAAQ,WAC7C,EAAM,eAAc,IACpB,GACG,EAAM,MAAQ,cAAc,CAAc,EAAC,KAAK,CAAc,IAAC,CAAc,EAAC,OAAS,KACpF,KAAO,WACb,CAAO,GAAE,MAAK,GACL,EAAM,MAAQ,UACvB,EAAM,eAAc,IAEhB,CAAS,GAAE,EAAS,EAAC,CAAS,GAEtC,UAES,EAAkB,EAAsB,CAC3C,EAAM,MAAQ,aAAe,EAAM,MAAQ,WAC7C,EAAM,eAAc,EACf,EAAW,EAAM,MAAQ,YAAc,EAAC,EAAK,GACzC,EAAM,MAAQ,QAAU,EAAM,MAAQ,OAC/C,EAAM,eAAc,IACpB,GACG,EAAM,MAAQ,SAAS,CAAc,EAAC,KAAK,CAAc,IAAC,CAAc,EAAC,OAAS,KAC/E,KAAO,WACJ,EAAM,MAAQ,KAAO,EAAM,MAAQ,WAC5C,EAAM,eAAc,IAEhB,CAAS,GAAE,EAAS,EAAC,CAAS,GAEtC,UAES,EAAkB,EAAsB,CAC3C,EAAM,MAAQ,WAElB,EAAM,eAAc,EACpB,EAAM,gBAAe,EACrB,EAAU,EAAI,EAChB,UAES,EAAa,EAAmB,KAEjC,EAAS,EAAK,QAAQ,QAAQ,GAElC,EAAK,QAAqB,4CAA4C,GACtE,GAAyB,IACnB,YAAY,CAAI,EACxB,GAAuB,EAAM,CAAI,MAC7B,EAAW,GACT,EAAc,SAAe,KAC3B,EAAM,MAAS,GAAgB,EAAM,EAAI,CAC7C,SAAU,QACV,UAAW,eACX,WAAU,CACR,GAAO,CAAC,EACR,GAAI,EACJ,GAAK,CAAG,QAAS,CAAC,GAClB,IAAI,CACF,QAAS,EACT,MAAK,CAAG,iBAAgB,kBAAiB,SAAS,CAChD,EAAK,MAAM,MAAK,GAAM,KAAK,IAAI,KAAK,IAAI,EAAM,UAAU,MAAO,GAAG,EAAG,KAAK,IAAI,EAAG,CAAc,OAC/F,EAAK,MAAM,UAAS,GAAM,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,CAAe,MACrE,OAKD,GAAU,OAAO,OAAO,EAAK,MAAK,CAAI,KAAI,GAAK,EAAO,EAAC,IAAM,IAAG,GAAK,EAAO,EAAC,KACpF,EACM,EAAkB,GACtB,EACA,MACM,CACC,EAAc,CACrB,GAEE,cAAa,OAAS,eAAmB,IACzC,YAAW,OAAS,qBAAyB,MAG3C,EAAgB,GAAiB,KAC/B,EAAS,EAAM,OAEjB,aAAkB,MAAI,CAAK,EAAK,SAAS,CAAM,IAAM,EAAK,SAAS,CAAM,GAAG,EAAS,CAC3F,EACA,SAAS,iBAAiB,cAAe,EAAc,EAAI,EAC3D,SAAS,iBAAiB,UAAW,EAAc,EAAI,MACjD,MAAwB,EAAS,SACvC,GAAQ,iBAAiB,QAAS,CAAe,GAG/C,SAAU,CACR,EAAW,GACX,EAAe,EACf,SAAS,oBAAoB,cAAe,EAAc,EAAI,EAC9D,SAAS,oBAAoB,UAAW,EAAc,EAAI,EAC1D,GAAQ,oBAAoB,QAAS,CAAe,EACpD,EAAK,OAAM,CACb,EAEJ,aAGD,kBAOE,KAPF,cA6BI,IAtBF,oBAsBE,qCAMU,CAAY,EAAI,GAAa,EAAK,OAAK,EAAvB,EAAI,kCACT,IAAJ,CAAI,aAAX,CAAK,cAA8D,+BAGpE,0FAHoE,uCAKvD,QAAS,GAAU,EAAC,CAAI,EAAC,KAAK,EAAG,iBAAkB,kBAChE,CAAI,EAAC,KAAK,+BAIf,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAoC,CAAO,QAA/C,CAAI,cAZF,CAAY,EAAC,OAAM,mBALzB,OAoBA,GAAI,EApBJ,KAqBG,KADH,EACO,qBAAO,oBADd,EAAI,IA1CN,aACY,EAAO,MAAP,CAAO,WADnB,iBA+CE,QAOE,KAPF,CAOM,qBAAO,oBAPb,4CAKU,CAAc,MALxB,gDADmC,QAAM,kCAYzC,mCAGe,OAAS,WAAa,EAAE,EAHvC,uCAQa,GAAU,CACpB,EAAM,eAAc,IACpB,EAAsB,IACjB,EAAQ,CACf,CAAC,MAZF,mCAjEJ,WACY,EAAI,MAAJ,CAAI,WADhB,gBAkFE,EAAI,cAAJ,EAAI,gCAAJ,CAAI,cADF,CAAO,qCAOT,QAME,EAAG,EANL,GAOI,EAAI,EADN,CAAG,EACwB,KAAzB,CAA6B,qBAAO,oBAApC,CAAI,MACJ,IADA,EAAI,MACJ,aACY,EAAW,SAAX,CAAW,KAHzB,CAAG,MAcH,IAdA,EAAG,OAcH,iBAaQ,CAAI,EAAI,GAAY,EAAI,KAAG,EAAnB,EAAG,SACR,EAAQ,eAAU,SAAQ,EAAC,CAAG,EAAC,KAAK,KAAK,GACzC,EAAY,QAAG,CAAG,EAAC,KAAK,aAAe,EAAK,EAC5C,EAAI,QAAG,KACV,CAAG,EAAC,KAAK,gBAAc,EAAI,CAAG,EAAC,KAAK,SAAO,EAAI,CAAG,EAAC,KAAK,YACzD,EAAE,6BAEH,EAAG,UAAH,EAAG,MAAH,CAAG,cAA0D,CAAG,EAAC,KAAK,KAAK,OAA3E,CAAG,aAEH,kBAiBE,EAAI,EAjBN,OAiBE,CAAI,QACY,GAAI,qBAAO,gCAArB,CAAQ,YADd,CAAI,MAGJ,EAAI,EAHJ,EAAI,OAGJ,CAAI,mDAEuB,KAAI,EAAE,CAAG,EAAC,KAAM,SAAQ,EAAE,CAAY,EAAE,OAAM,EAAE,CAAQ,4CAE5D,GAAI,uBAAO,CAAG,EAAC,KAAK,kCAAnC,CAAG,EAAC,KAAK,MAAI,WACjB,EAAI,WAAJ,EAAI,MAAJ,CAAI,cAAE,CAAG,EAAC,KAAK,KAAK,sCAJD,CAAG,EAAC,YAAW,iBADtC,CAAI,IApBN,sCAaqB,CAAI,GAAK,UAAQ,EAAI,CAAI,EAAC,KAAI,GAAO,QAAO,EAAE,CAAI,EAAC,KAAI,GAAO,EAAK,WAbxF,YACQ,CAAM,OAAI,CAAK,OADvB,oBAIgB,CAAQ,KAJxB,oBAKgB,CAAY,KAL5B,iBAMa,CAAG,EAAC,KAAK,KAAK,MAN3B,iFAUe,CAAS,GAAE,MAAG,EAAK,CAAG,EAAC,kBAClB,CAAY,UAClB,CAAG,EAAC,gCAZlB,EAciB,GAAU,EAAM,eAAc,aAd/C,MAegB,EAAS,EAAC,CAAG,QAf7B,cAHE,CAAG,EAAC,aAAW,EAAI,CAAY,iDAmCnC,EAAG,UAAH,EAAG,MAAH,CAAG,cACD,CAAM,EAAG,2BAA6B,0BAA0B,OADlE,CAAG,aADA,CAAI,EAAC,QAAM,SArDlB,aACY,EAAO,SAAP,CAAO,KArBrB,4BAQI,wEAIgB,CAAM,KAQxB,SAEK,CAAM,KAFX,iFAQe,CAAO,GAAI,MAAS,IARnC,4BASwB,CAAW,GAAI,EAAC,KAAM,CAAM,OAAI,CAAW,IAAK,MAAS,gBA7BnF,EAGY,CAAiB,YAKzB,QAQiB,EAAY,IAAI,eARjC,EASY,CAAmB,KAT/B,QAEa,CAAM,OAAN,EAAM,gBAUrB,EAWY,CAAiB,MA/B/B,eADE,CAAI,oCAvFR,uEAEyE,wBAA0B,wBAAqB,gBAAmB,OAAS,GAAE,4EACtI,CAAI,uDAIlB,oGAIkD,OAAS,kBACrC,WALtB,oDAOgB,CAAI,kBAPpB,qBASgB,CAAM,KATtB,wBAUmB,CAAO,0DAV1B,yBAsBE,+DAG0B,CAAY,EAAC,QAAU,CAAC,eAzBpD,SAYiB,CAAI,EAAG,EAAS,OAAU,EAAQ,eAZnD,GAaa,GAAU,CAChB,EAAM,MAAQ,aAAe,EAAM,MAAQ,WAC7C,EAAM,eAAc,EACf,EAAQ,GACJ,EAAM,MAAQ,UAAQ,EAAI,CAAI,GACvC,EAAkB,CAAK,CAE3B,CAAC,YA7BG,wvBCpPR,aA2CI,EAAK,eAA0B,EAAE,EACjC,EAAE,gBAAG,SAAW,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,GAC1D,EAAS,kBAAG,EAAE,EACd,EAAW,oBAAG,SAAS,EACvB,EAAS,kBAAG,MAAS,EACrB,EAAQ,iBAAG,EAAK,EAChB,EAAI,aAAG,EAAE,EACT,EAAO,yBACP,EAAmB,mCAAK,EACxB,EAAY,qBAAG,KAAK,EACpB,EAAQ,iBAAG,EAAK,EAChB,EAAS,kBAAG,EAAI,EAChB,EAAQ,iBAAG,EAAK,EAChB,EAAW,oBAAG,EAAE,EAChB,EAAgB,yBAAG,EAAK,EACxB,EAAW,oBAAG,MAAM,EACpB,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAO,gBAAI,GAAqB,EAAK,KAAK,EAC1C,EAAqB,8BAAG,EAAK,EAC7B,EAAe,wBAAG,EAAK,EACvB,EAAiB,0BAAG,MAAS,EAC7B,EAAY,qBAAG,MAAS,EACxB,EAAa,sBAAG,MAAS,EACzB,EAAW,qBAAG,CAAE,EAChB,EAAU,mBAAG,MAAS,EAGlB,EAAkB,GAA4B,WACvC,GAAU,SAAU,KACvB,EAAM,QAEJ,IAAqB,KACrB,EAAY,IAAO,iBAEX,GAAc,SAAW,EAAY,EACrD,CACF,QAEO,CACT,EAEM,EAAiB,MAAyB,MAAM,QAAQ,EAAO,GAAI,EAAO,MAC5E,EAAW,MAA0B,GAAiB,EAAC,CAAiB,IACtE,GAAoB,MAAY,EAAW,IAAK,OAAS,OAAY,EAAW,GAChF,GAAgB,MACpB,EAAW,IAAK,OAAS,GAAE,2BAA8B,EAAW,KAEhE,GAAS,MAAY,EAAe,EAAO,IAC3C,EAAoB,CACxB,SAAU,OAAO,EAGb,GAAa,MACb,EAAQ,EACH,GAAmB,EAAK,IAAE,CAAW,EAAE,EAAmB,GAG5D,GAAoB,EAAK,IAAE,CAAW,EAAE,EAAmB,GAAE,OACrE,EAEK,GAAU,OAAa,EAAI,GAAI,EAAE,IAAK,EAAE,GAC1C,GAAwC,EAAO,IAAI,EACnD,GAAyC,EAAO,IAAI,EACpD,GAAwC,KACtC,GAAe,MAAa,MAAM,QAAO,EAAC,EAAa,GAAoB,KAApB,EAAI,EAAa,CAAO,EAC/E,GAAgB,QACpB,EAAe,GAAE,OAAK,EAAI,EAAe,GAAE,MAAI,EAAI,EAAe,GAAE,OAAS,EAAE,EAE3E,GAAkB,MAAY,EAAO,EAAC,EAAe,GAAE,IAAI,EAC3D,GAAwB,MAC5B,GAAQ,EAAe,IAAK,EAAQ,KAAI,EAAgB,IAEpD,GAAmB,MAAY,EAAW,EAAC,KAAI,GAC/C,GAAW,MACX,EAAQ,EAAS,GAAoB,EAAK,GAAE,KAAK,GAAG,KAGrD,EAAa,IAAK,MAAM,QAAO,EAAC,EAAa,KAC1C,EAAa,EAAC,MACd,GAAqB,EAAK,KAAM,EAEvC,EAEK,OAA6B,OAC5B,EAAe,aAEd,EAAI,EAAG,EAAe,EAAC,cAA2B,8BAA8B,MAEjF,GAAQ,EAAK,QAAQ,mBAAqB,OAAM,WAG/C,EAAM,EAAG,EAAe,EAAC,QAAQ,QAAQ,GAAK,GAAyB,MAExE,EAAM,OAEX,GAAsB,EAAC,EAAe,EAAE,CAAI,MACtC,EAAe,KAAK,KAAI,EAAC,EAAe,EAAC,sBAAqB,EAAG,KAAK,EAExE,EAAe,IACjB,EAAK,MAAM,SAAQ,GAAM,EAAY,KAGvC,EAAK,QAAQ,iBAAmB,OAChC,EAAK,UAAU,IAAI,gBAAgB,EACnC,EAAK,MAAM,cAAgB,OAC3B,EAAO,YAAY,CAAI,CACzB,EAEM,GAAqB,GAAqC,CAC9D,IAAc,WAAU,EACxB,GAAe,QAEV,GAAS,OAAW,iBAAqB,OAE9C,GAAY,IAAO,qBAAuB,CACnC,GAAI,EAAG,KAAK,EAAoB,CACvC,CAAC,EACD,GAAa,QAAQ,EAAS,CAAI,UAAW,EAAI,GAC5C,GAAI,EAAG,KAAK,EAAoB,EACvC,EAEA,QACE,GAAiB,EAAC,EAAe,OAEpB,CACX,IAAc,WAAU,EACxB,GAAe,IACjB,EACD,EAED,OAAgB,CACd,IAAc,WAAU,EACxB,GAAe,IACjB,CAAC,WAEQ,IAAkB,KACnB,EAAW,IAAO,YAAY,SAAQ,CAC1C,OAAM,CACJ,QAAK,EACL,OAAQ,EAAQ,EAAG,GAAoB,EAAK,IAAK,GAAqB,EAAK,KAE7E,QAAS,UAGP,EAAY,EAAE,GAChB,EAAY,EAAC,MAAK,EAAG,MACrB,EAAY,EAAC,cAAc,CAAW,QAGxC,CAEA,EAAQ,EAAC,CAAW,CACtB,UAES,GAAmB,EAAc,IACpC,aAAiB,aAAe,EAAM,OAAQ,CAChD,EAAQ,EAAC,CAAK,QAGhB,CAEA,GAAmB,CAAK,CAC1B,UAES,GAA0B,EAAgD,KAC3E,EAAS,EAAM,WAEhB,EAAM,OAAS,EAAQ,KAAQ,QAEhC,EAAQ,GAAI,aAAkB,kBAAmB,KAC7C,EAAiB,MAAM,KAAK,EAAO,eAAe,EAAE,IAAK,GAAW,EAAO,KAAK,WAE/E,CAAW,EAAC,OAAQ,GAAS,EAAe,SAAS,EAAK,KAAK,EACxE,KAEM,EAAY,EAAO,OAAS,YAE3B,CAAW,EAAC,KAAM,GAAS,EAAK,QAAU,CAAS,GAAK,IACjE,UAES,GAAmB,EAA8D,KAClF,EAAY,WAAY,EAAQ,EAAM,OAAS,GAA0B,CAAK,KAEhF,EAAQ,EAAE,KACN,EAAgB,MAAM,QAAQ,CAAS,EAAI,EAAS,GAC1D,EAAQ,EAAc,IAAK,GAAS,EAAK,KAAK,GAC9C,EAAa,IAAG,EAAK,EAAE,CAAa,CACtC,KAAO,KACC,EAAe,MAAM,QAAQ,CAAS,EAAI,EAAU,GAAK,EAC/D,EAAQ,GAAc,OAAS,EAAC,EAChC,EAAa,IAAG,EAAK,EAAE,GAAgB,IAAI,CAC7C,CAEA,GAAe,CACjB,UAES,GAAwB,EAAsB,EAA6B,CAClF,EAAQ,GACR,EAAa,IAAG,EAAK,EAAE,CAAa,EACpC,GAAe,CACjB,UAES,IAAuB,CAC1B,EAAQ,GAAI,EAAQ,IAAK,EAAS,IAEtC,EAAQ,EAAC,EACT,EAAa,IAAG,EAAK,EAAE,IAAI,EAC3B,GAAe,EACjB,UAES,GAAkB,EAA6C,QACjE,MAAM,QAAQ,CAAM,EAMlB,EAAO,IAAK,GAAW,KACtB,EAAI,IACL,EACH,MAAO,EAAO,OAAS,EAAO,MAAQ,EAAO,MAC7C,KAAM,EAAO,OAAS,EAAO,MAAQ,EAAO,cAG1C,EAAK,aAAe,eACf,EAAK,WAGP,CACT,CAAC,GAjBC,QAAQ,KAAK,yCAA0C,CAAM,KAkBjE,UAES,GAAqB,EAAwB,QAChD,MAAM,QAAQ,CAAK,EACd,EAAM,IAAM,GAGjB,GAAiC,KAC5B,MAGC,GACZ,UAES,GAAoB,EAA0B,QACjD,MAAM,QAAQ,CAAK,EACd,EAAM,OAAQ,GAAK,OAA6B,GAAU,QAAQ,EAGvE,GAAiC,MAAQ,IAAU,UAI5C,GAAK,CAClB,UAES,GACP,EACA,EACA,EACuD,KACjD,EAAa,GAAqB,CAAY,KAEhD,SAGO,QAFK,EAAM,KAAM,GAAS,EAAK,QAAU,CAEhC,GAAS,KAAM,aAAc,EAAK,MAGhD,EAAe,GAAiB,EAAI,EAAM,GAAiB,cAE7D,GACO,QAAS,EAAc,aAAc,EAAI,GAG3C,QAAS,KAAM,aAAc,EAAK,CAC7C,UAES,GACP,EACA,EACA,EACc,KACR,EAAa,GAAoB,CAAY,KAE/C,EAAW,SAAW,eAIpB,EAAe,EAClB,IAAK,GAAU,EAAM,KAAM,GAAS,EAAK,QAAU,CAAK,GACxD,OAAQ,GAAI,EAA2B,CAAI,KAE1C,EAAa,OAAS,SACjB,MAGH,EAAW,EAAM,UAEhB,EAAQ,CAAI,CAAQ,IAC7B,UAES,GAA6B,EAAkB,EAA+B,KAChF,EAAY,MAAS,OAEpB,EAAU,EAAK,gBAAkB,EAAK,SAAW,EAAK,aAAe,iBAE7D,GAAY,SAAW,EAAQ,KAAI,EAAK,EACxD,KAGD,SAOE,KAPF,OAOE,eAEY,GAAY,SAAZ,EAAY,YAFxB,iBAeE,yBAMQ,IAAJ,CAAI,aADF,EAAkB,cAGtB,EAAI,WAAJ,EAAI,MAAJ,CAAI,UARN,gCAGgB,EAAkB,EAAG,OAAS,MAAS,QAKf,EAAgB,SARxD,eADE,EAAwB,8CAiBjB,GAAoB,EAAK,YAGtB,EAAS,GAAI,EAAW,GALpC,4BACQ,CAAW,6CAEd,EAAW,4BACd,EAAW,sDAEX,EAAQ,yBACR,EAAQ,0BACR,EAAS,0BACT,EAAS,iCACT,EAAgB,4BAChB,EAAW,0BACH,EAAS,sCACjB,EAAqB,6BACrB,EAAY,kBACG,8BAIN,EAAS,KAAM,EAAS,KAAM,KAAE,EAAG,EAAwB,EAAG,+BAAiC,KAAK,EAAgB,EAAG,wBAA0B,wBAAqB,EAAG,EAAgB,aAQxL,EAAS,IAAK,EAAQ,aAMd,eAAY,EAAE,aAAc,EAAS,GAAI,EAAW,KAfxE,qDAEQ,CAAW,wCAEX,EAAa,yBACnB,EAAQ,uBACH,EAAU,mBACZ,EAAW,yBACd,EAAQ,oFAKA,EAAS,sCACjB,EAAqB,kEAEN,eACH,qBACM,OANnB,WAAc,UAAE,EAAe,OAA/B,UAAc,KAAE,GAAe,wBAOpB,GAAkB,MACnB,EAAoB,+FAIjB,OAAiB,CAAG,UAAS,EAAT,CAAS,uBAErC,EAAG,UAAH,CAAG,YAEC,EAAI,MACF,KADF,CACM,uBAAO,CAAS,EAAC,yBADvB,CAAI,MAAJ,CAAI,aADF,CAAS,GAAE,MAAI,WAKnB,EAAI,WAAJ,EAAI,MAAJ,CAAI,IANN,CAAG,cAOE,CAAS,GAAE,OAAK,EAAI,CAAS,GAAE,MAAI,EAAI,CAAS,GAAE,OAAS,EAAE,OAPlE,CAAG,WAHD,EAAiB,0DAiBd,EAAY,QAAG,CAAI,EAAC,aAAe,EAAK,EACxC,EAAU,MAAG,MAAM,QAAO,EAAC,EAAa,KAC5C,EAAa,EAAC,KAAM,GAAU,EAAM,QAAK,EAAK,CAAI,EAAC,KAAK,IACxD,EAAa,GAAE,QAAK,EAAK,CAAI,EAAC,KAAK,2CAE5B,OAAY,CAAG,KAAI,EAAJ,CAAI,EAAE,SAAQ,EAAE,CAAY,EAAE,OAAM,EAAE,CAAU,uBAEhE,EAAkB,MAAG,GAA4B,EAAC,CAAI,IAAE,CAAY,QAC3E,mCAOI,EAAI,MACF,KADF,CACM,uBAAO,CAAI,EAAC,yBADlB,CAAI,MAAJ,CAAI,aADF,CAAI,EAAC,MAAI,WAKb,EAAI,WAAJ,EAAI,MAAJ,CAAI,IAXN,+BAIc,CAAkB,GAAK,QAAO,EAAE,CAAkB,GAAK,EAAK,aAJ1E,oDAE8B,CAAY,0BACd,CAAU,UAQH,CAAI,EAAC,OAAK,EAAI,CAAI,EAAC,MAAI,EAAI,CAAI,EAAC,KAAK,QAXxE,YAJE,EAAY,2CAmBf,IAAH,CAAG,iBAlFH,EAAQ,qBAnCd,mBAEQ,EAAmB,KAF3B,iBAGc,EAAU,KAHxB,yBAIoB,EAAoB,KAJxC,8BAKyB,EAAwB,EAAG,OAAS,MAAS,IAEpE,QAGK,EAAW,KAHhB,mBAIgB,EAAW,KAJ3B,iBAKc,EAAU,KALxB,YAMO,EAAU,MANjB,KAOQ,EAAW,KAPnB,gBAQa,EAAS,GAAI,EAAW,GARrC,YASE,EAAQ,IATV,kBAUE,EAAY,gBAVd,GAWW,EAAkB,MAlB/B,OAFO,gBCnTR,IAAM,GAAmB,GAAyD,CAChF,GAAI,CAAC,EAAO,OAGZ,IAAM,EACH,GAFgB,EAAM,QAAQ,QAAS,EAEI,IAC3C,GAA2C,GAE9C,OAAO,OAAO,GAAW,UAAY,EAAO,OAAS,EAAS,CAChE,EAEM,IAAe,GAA4D,CAC/E,IAAM,GAAQ,GAAc,CAAC,GAAG,OAAO,OAAO,EAEzC,KAAK,OAEV,MAAQ,IACC,EAAK,MAAO,GACD,EAAoC,EAAK,UACxC,EAAK,QAAU,GAGjC,CAEL,EAEa,IAA6B,IAAmD,CAC3F,MAAO,EAAO,MACd,KAAM,EAAO,MAAQ,OACrB,KAAM,EAAO,KACb,eAAgB,EAAO,gBAAkB,OACzC,UAAW,EAAO,UACd,CACE,KAAM,EAAO,UAAU,KACvB,KAAM,GAAgB,EAAO,UAAU,MAAQ,MAAS,CAC1D,EACA,OACJ,UAAW,EAAO,UAAY,CAAC,GAAG,IAAK,IAAa,CAClD,MAAO,EAAQ,MACf,KAAM,GAAgB,EAAQ,MAAQ,MAAS,EAC/C,SAAU,EAAQ,UAAY,OAC9B,OAAQ,EAAQ,QAAU,OAC1B,MAAO,EAAQ,MACX,CACE,IAAK,EAAQ,MAAM,IACnB,IAAK,EAAQ,MAAM,IACnB,QAAS,EAAQ,MAAM,OACzB,EACA,OACJ,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAK,IAAU,CAC1C,KAAM,EAAK,KACX,KAAM,IAAY,EAAK,QAAQ,CACjC,EAAE,CACJ,EAAE,CACJ,GAEa,IACX,GACqC,CACrC,IAAM,EAA+C,CAAC,EAKtD,OAJA,OAAO,QAAQ,GAAW,CAAC,CAAC,EAAE,SAAS,CAAC,EAAI,KAAY,CACtD,EAAW,GAAM,IAA0B,CAAM,CACnD,CAAC,EAEM,CACT,EAEa,GAAoB,GAA2C,CAAC,CAAC,EACjE,GAAmB,GAAuC,IAAI,EAE9D,IAAqB,GAChC,CAAC,GAAkB,EAAiB,GACnC,CAAC,EAAQ,KAAc,CACtB,GAAI,CAAC,EAAQ,OAAO,KAEpB,IAAM,EAAS,EAAO,gBAAkB,EAAS,EAAO,IAIxD,OAFK,EAEE,CACL,GAAI,EAAO,GACX,SACA,QAAS,EAAO,SAAW,CAAC,CAC9B,EANoB,IAOtB,CACF,EAEa,IAAkB,GAC7B,GAAkB,IAAI,GAAW,CAAC,CAAC,EAExB,IACX,EACA,EAA+E,CAAC,IAC7E,CACH,GAAiB,IAAI,CACnB,KACA,QAAS,EAAQ,QACjB,eAAgB,EAAQ,UAAY,IACtC,CAAC,CACH,EAEa,QAAwB,GAAiB,IAAI,IAAI,koBClJ9D,aA6JU,EAAY,QACnB,6DAG6B,MAAK,QAAE,YAAS,QAH7C,0BAIe,CAAO,IAAK,EAAS,KAAI,CAAgB,GAAK,QAAO,SAAY,EAAK,aAJrF,wEAEiB,EAAS,uBAF1B,IAUO,EAAM,QACb,EAAM,SAAN,gBAAc,CAAW,wBAA6B,mDAAtD,CAAM,YAEF,EAAG,UAAH,CAAG,YAEC,EAAK,UAAL,EAAK,MAAL,CAAK,YAAE,EAAQ,QAAf,CAAK,WADH,EAAQ,iCAIV,EAAG,WAAH,GACU,CAAY,IADtB,CAAG,MAAH,CAAG,WADD,EAAY,YAJlB,CAAG,MAAH,CAAG,YADD,EAAQ,GAAI,EAAY,eAY5B,EAAE,WAAF,CAAE,YAEE,eAWU,EAAY,OACpB,EAAI,OACF,KADF,CACM,qBAAO,uBADb,CAAI,IAZN,+BAKG,QAAS,EAAe,EAAG,+BAAiC,EAAc,EAC1E,KAAM,EAAe,EAAG,QAAU,QAClC,MAAO,cAPV,kBAGgB,EAAe,EAAG,SAAW,MAAS,aAHtD,kBASU,EAAe,EAAG,GAAkB,SAAS,oBATvD,UAiBQ,EAAY,cAlBlB,CAAO,mBADb,CAAE,UAAF,EAAE,aAuBA,EAAC,UAAD,EAAC,MAAD,CAAC,YAAE,EAAW,QAAd,CAAC,WADC,EAAW,0BAGP,CAAW,QAtCrB,CAAM,MAAN,CAAM,GAvIL,EAAS,kBAAG,EAAI,EAChB,EAAmB,4BAAG,EAAI,EAC1B,EAAQ,iBAAG,EAAE,EACb,EAAW,oBAAG,EAAE,EAChB,EAAgB,yBAAG,EAAK,EACxB,EAAQ,iBAAG,EAAI,EACR,EAAS,cAAG,EAAE,EAErB,EAAc,uBAAG,IAAI,EACrB,EAAQ,iBAAG,IAAI,EACf,EAAa,sBAAG,IAAI,EACpB,EAAY,qBAAG,IAAI,EACnB,EAAU,mBAAG,EAAE,EACf,EAAe,wBAAG,EAAE,EACpB,EAAc,uBAAG,EAAE,EACnB,EAAgB,yBAAG,MAAS,EAC5B,EAAiB,0BAAG,IAAI,EACW,yBAAG,EAAE,EAC3B,cAAG,EAAI,MACjB,wUAGD,EAAU,MAAY,EAAgB,IAAK,EAAQ,EAAG,YAAc,UAAU,EAE9E,EAAW,OACZ,mBAAoB,QAAO,EAAE,CAAU,EAAE,EAAS,GAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAEzE,EAAO,MAAY,GAAQ,EAAe,GAAI,EAAc,IAE9D,EAAW,MAAY,EAAc,GAAI,EAAQ,GACjD,EAAmB,EAAO,EAAK,EAC/B,EAAuB,EAA8B,IAAI,EACzD,EAAoB,EAA8B,IAAI,EACtD,EAAqB,EAAO,CAAC,EAC7B,EAAiB,EAAO,CAAC,EAEvB,GAAyB,GAA6B,KACrD,GAAQ,EAAS,EAAE,GACtB,EAAmB,UAGrB,GAEA,EAAmB,EAAK,YAAc,EAAK,YAC7C,EAEM,IACJ,EACA,IACG,IACH,GAAsB,CAAI,SAEf,gBAAmB,sBAIxB,EAAQ,IAAO,mBAAqB,GAAsB,CAAI,UACpE,EAAS,QAAQ,CAAI,GAGnB,WAAc,GAAsB,CAAI,EACxC,YAAe,EAAS,WAAU,EAEtC,EAEM,OAAwB,CACvB,EAAe,GAEpB,GAAe,EAAe,GAC5B,QAAS,EAAgB,EACzB,SAAU,EAAiB,GAAI,QAEnC,EAEM,OAAyB,OACxB,CAAoB,MAAK,CAAiB,EAAE,GAC/C,EAAqB,KACrB,EAAiB,SAGnB,KAEM,EAAgB,KAAK,KAAI,EAAC,CAAiB,EAAC,sBAAqB,EAAG,KAAK,EACzE,EAAc,KAAK,KAAI,EAAC,CAAiB,EAAC,WAAW,EACvD,EAAkB,EAChB,EAAgB,MAAM,KAAI,EAAC,CAAiB,EAAC,QAAQ,UAChD,KAAS,EAAe,KAC3B,EAAO,EAAM,sBAAqB,EAClC,EAAc,iBAAiB,CAAK,EACpC,EAAa,OAAO,WAAW,EAAY,UAAU,GAAK,EAC1D,EAAc,OAAO,WAAW,EAAY,WAAW,GAAK,EAClE,EAAkB,KAAK,IAAI,EAAiB,KAAK,KAAK,EAAK,MAAQ,EAAa,CAAW,EAC7F,GACA,EAAqB,KAAK,IAAI,EAAe,EAAa,CAAe,UAEnE,EAAS,iBAAgB,EAAC,CAAoB,GAC9C,EAAS,EAAO,WAAa,EAAO,KAAO,IAC3C,EAAY,OAAO,WAAW,CAAM,IAC1C,EAAiB,OAAO,SAAS,CAAS,EAAI,KAAK,KAAK,CAAS,EAAI,KACvE,EAEA,OAAc,KACP,EAAa,MAAK,CAAoB,MAAK,CAAiB,EAAE,GACjE,EAAqB,KACrB,EAAiB,SAGnB,IAEA,GAAgB,SAEL,gBAAmB,sBAIxB,EAAQ,IAAO,mBAAqB,GAAgB,UAC1D,EAAS,QAAO,EAAC,CAAoB,GACrC,EAAS,QAAO,EAAC,CAAiB,OAErB,EAAS,WAAU,CAClC,CAAC,iCA0DA,yBAOU,EAAM,OACd,EAAG,YAAH,GACU,CAAa,IADvB,CAAG,KAAH,EAAG,KAAmC,EAAiB,SAAjB,CAAiB,KARzD,aAKY,EAAoB,SAApB,CAAoB,cALhC,8DAEiB,EAAS,gBACN,EAAmB,OAHvC,KAIW,EAAU,wCAAqC,CAAkB,wCAAqC,CAAc,cAJ/H,WAaQ,EAAM,aAdZ,EAAa,8BAxDV,2eC3JR,KAiCQ,EAAU,iBAzBd,EAAS,kBAAG,EAAI,EAChB,EAAO,oBAAS,CAAC,CAAC,EAClB,EAAI,aAAG,QAAQ,EACf,EAAU,mBAAG,WAAW,EAwBtB,EAAmC,KACnC,EAAO,EAA8B,IAAI,EACzC,EAAqB,GACrB,EAGJ,OAAc,gBACO,QAAS,EAAI,CAAI,kBAAmB,MACrD,CAAI,EAAC,UAAY,EACjB,EAAmB,aAEvB,CAAC,MAEK,MAAoB,CACxB,EAAO,GACT,EAEM,MAAc,CACd,GAAQ,OACV,EAAqB,GACrB,EAAO,MAAK,GAGd,EAAW,CACb,EAEM,MAA0B,IAC1B,EAAoB,CACtB,EAAqB,SAGvB,CAEA,EAAW,CACb,EAEM,EAAsB,GAAiB,CAC3C,EAAM,eAAc,EACpB,EAAK,CACP,EAEM,EAAqB,GAAyB,KAE/C,GACD,EAAM,MAAQ,OAAK,EACjB,EAAM,kBAAkB,UAC1B,EAAM,OAAO,QAAQ,QAAQ,IAAM,aAI/B,EAAW,MAAM,KACrB,EAAO,iBACL,qGAAqG,GAEvG,OACC,GACC,EAAQ,UAAY,GAAC,CACpB,EAAQ,QAAQ,WAAW,GAC5B,EAAQ,eAAc,EAAG,OAAS,CAAC,EAEjC,EAAQ,EAAS,GACjB,EAAO,EAAS,GAAE,EAAG,EAGzB,GACA,IACE,EAAM,UAAY,SAAS,gBAAkB,GAAK,CAChD,EAAM,UAAY,SAAS,gBAAkB,KAEjD,EAAM,eAAc,GACA,EAAM,SAAW,EAAO,GAChC,MAAK,EAErB,EAEA,OAAc,KACN,EAAgB,EAChB,EAAS,SAAS,yBAAyB,YAAc,SAAS,cAAgB,YAEpF,GAAa,OAAW,EAAc,WAAc,YAAU,CAAK,EAAc,MACnF,EAAc,UAAS,GAGF,GAAe,cACpC,yKAAyK,IAE3J,MAAK,MAER,CAEP,GAAe,OACjB,EAAqB,GACrB,EAAc,MAAK,GAGrB,mBAAqB,CAEjB,GAAQ,aACR,SAAS,gBAAkB,SAAS,MAAI,CACvC,SAAS,cAAc,cAAc,GAEtC,EAAO,MAAK,CAEhB,CAAC,CACH,CACF,CAAC,MAGF,QAaE,EAAM,EAbR,GAcI,EAAG,EADL,CAAM,MACJ,CAAG,oCAE+C,QAAQ,EAAtD,GAAY,uEADV,EAAS,YADf,CAAG,MAKH,EAAM,EALN,EAAG,OAKH,EAAM,aAEJ,EAAG,WAAH,gCAAG,UAAH,EAAG,QAAmC,EAAU,oBAAhD,CAAG,0CARP,CAAM,UAAN,EAAM,aAcJ,EAAG,WAAH,+BAAG,MAAH,CAAG,2CAEL,EAAG,WAAH,CAAG,+CAEoB,OAAK,2DAEJ,OAAK,gDAJ7B,CAAG,KAAH,EAAG,KAAgC,EAAI,SAAJ,CAAI,YAAvC,EAAG,cAQD,EAAM,WAAN,6BAAsD,OAAK,MAA3D,CAAM,MAAN,CAAM,uCArCV,WACY,EAAM,MAAN,CAAM,WADlB,6CAEiD,EAAI,8CAFrD,oBAGkB,EAAS,KAAM,EAAU,QAAW,MAAS,IAH/D,eAIa,EAAS,EAAG,OAAS,WAJlC,6CAK2C,EAAU,cAAiB,MAAS,IAS3E,EAAG,KAA6B,EAAS,KAAM,EAAU,QAAW,MAAS,IAK7E,EAAM,aAAgE,EAAU,eAnBpF,EAMW,GAAM,EAAE,gBAAe,iBANlC,EAOe,GAAM,EAAE,gBAAe,eAPtC,EAQa,GAAM,EAAE,gBAAe,eARpC,EASY,CAAiB,cAT7B,EAUW,CAAkB,aAV7B,EAWU,CAAiB,YAQvB,EAAmD,CAAK,MAnB5D,MAFO,+CClIR,IAAa,GAAuB,GAClC,MAAM,QAAQ,CAAO,EAAI,EAAQ,OAAQ,GAAgC,IAAY,CAAM,CAAC,EAAI,CAAC,EAEtF,IAAsB,EAA+B,IAClD,OAAO,GAAQ,OAAS,GAAQ,MAAQ,EAAE,EAAE,KAEnD,GAAS,EAGZ,IAAe,GAAyC,CAC5D,GAAI,CAAC,GAAU,OAAO,GAAW,SAAU,MAAO,GAElD,IAAM,EAAS,EAA+B,MAE9C,OAAO,OAAO,GAAU,UAAY,EAAM,OAAS,CACrD;kOC1BA,aAsBI,EAAI,cAAa,EAAK,EACtB,EAAO,yBACP,EAAK,cAAG,sBAAsB,EAC9B,EAAW,oBAAG,QAAQ,EACtB,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAO,oBAAS,CAAC,CAAC,EAGd,EAAiB,MAAyB,GAAoB,EAAO,IACrE,EAAa,QACjB,CAAiB,EAAC,OAAQ,GAAW,EAAO,aAAe,EAAK,GAG9D,EAAgB,EAAe,EAAE,EACjC,EAAQ,EAAe,EAAE,EAEvB,EAAe,GAAsB,GAAmB,EAAQ,EAAO,KAAK,EAC5E,EAAe,GAAsB,GAAe,EAAO,MAAO,EAAW,GAE7E,EAAe,QAAY,CAAK,EAAC,KAAI,EAAG,kBAAkB,OAAO,GACjE,EAAU,QAAY,CAAa,EAAC,QAAU,CAAgB,EAE9D,EAAe,QACd,CAAe,IAEb,CAAa,EAAC,OAAQ,GACP,CAClB,EAAY,CAAM,EAClB,EAAO,YACP,EAAO,QACP,EAAO,MACP,EAAO,MACP,EAAY,CAAM,GAEjB,OAAO,OAAO,EACd,KAAK,GAAG,EACR,kBAAkB,OAEd,EAAe,SAAQ,EAAC,CAAe,EAC/C,EAhBmB,EAAS,EAiB9B,EAEK,EAAS,QACT,CAAe,EAAC,KAAM,GAAW,EAAO,QAAK,EAAK,CAAa,KAAU,KAEtE,CAAe,EAAC,IAAI,OAAS,EACrC,EAEK,EAAc,MAAqB,KACjC,EAAM,IAAO,YACR,KAAM,EAAI,CAAe,EAAE,KAC9B,EAAQ,OAAO,EAAO,OAAS,SAAS,EAAE,KAAI,GAAM,UAC1D,EAAO,IAAI,EAAK,IAAO,EAAO,IAAI,CAAK,MAAU,CAAM,EACzD,QAEO,MAAM,KAAK,EAAO,QAAO,GAAI,KAAG,CAAG,EAAO,MAAO,CAAS,QAAO,SAAO,GACjF,CAAC,EAEK,MAAoB,CACxB,EAAO,MACP,EAAgB,EAAC,IACjB,EAAQ,EAAC,EACT,EAAO,GACT,EAEM,MAAyB,CAC7B,EAAO,MACP,EAAgB,EAAC,IACjB,EAAQ,EAAC,CACX,EAEM,EAAuB,GAAkB,KACvC,EAAM,EAAG,CAAa,EAAC,KAAM,GAAU,EAAM,QAAU,CAAK,EAE7D,IAEL,EAAgB,EAChB,EAAQ,EAAC,CAAM,EACjB,EAEM,EAA2B,GAAkB,GACjD,EAAgB,MAChB,EAAoB,CAAK,CAC3B,EAEM,EAAiB,GAAyB,CAC1C,EAAM,MAAQ,SAAW,EAAM,aAAW,GAAK,CAAS,IAE5D,EAAM,eAAc,EACpB,EAAmB,EAAC,CAAS,GAC/B,yBAIC,GAAW,yCAAqB,EAAK,wBAAwB,EAClD,QAAO,QACd,EAAG,YAAH,CAAG,eASC,EAAK,MAEH,MAFF,CAAK,QAEH,KAFF,CAAK,cAEH,EAKY,CAAa,KALzB,QAEa,CAAK,OAAL,EAAK,QAJpB,CAAK,aADH,CAAU,cAad,EAAG,WAAH,CAAG,mCAEO,CAAc,EAAI,GAAO,EAAM,OAAK,EAAlB,IAAK,KAC3B,EAAO,MACL,EAAE,EADJ,CAAO,MACL,EAAE,MAAF,CAAE,OAAF,EAAE,YACI,CAAK,EAAC,QAAW,GAAQ,EAAO,OAAK,EAApB,IAAM,KAC3B,kBAWE,EAAI,EAXN,GAYI,EAAI,EADN,CAAI,MACF,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAEE,IAAJ,CAAI,aADF,CAAS,MAAK,CAAM,EAAC,OAAK,SAFhC,CAAI,UAAJ,EAAI,aAOF,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAyC,CAAM,EAAC,WAAW,OAA/D,CAAI,aADF,CAAM,EAAC,aAAW,8BAIpB,EAAI,YAAJ,CAAI,KAAJ,CAAI,kBAEF,CAAM,EAAC,SAAO,WAFhB,CAAI,aADF,CAAM,EAAC,SAAO,SApBpB,+BAIgB,CAAS,MAAK,CAAM,EAAC,KAAK,MAJ1C,0BAGiB,CAAS,MAAK,CAAM,EAAC,KAAK,gBASA,EAAW,EAAC,CAAM,eAZ7D,MAKgB,GACb,EAAa,EAAG,CAAM,EAAC,SACzB,CAAC,cAPF,EAQY,CAAa,eARzB,MASmB,EAAuB,EAAC,CAAM,EAAC,KAAK,OATvD,OAHJ,CAAO,WAAP,EAAO,eAA8C,CAAK,EAAC,KAAK,QAC1D,CAAK,EAAC,KAAK,QADjB,CAAO,sBAkCR,IAAD,CAAC,aApCC,CAAc,EAAC,OAAS,EAAC,iBAD/B,CAAG,IArBL,CAAG,MAAH,CAAG,GAgEI,cAAa,QACpB,EAAG,UAAH,CAAG,kBAKW,CAAS,GAJrB,eACW,2FAIK,EAAmB,EAAC,CAAS,OAN/C,CAAG,MAAH,CAAG,oDApEL,EAAI,oBAFD,gICjHR,aAmCI,EAAK,eAAa,EAAE,EACpB,EAAW,oBAAG,SAAS,EACvB,EAAS,kBAAG,MAAS,EACrB,EAAQ,iBAAG,EAAK,EAChB,EAAE,gBAAG,aAAe,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,GAC9D,EAAO,yBACP,EAAW,oBAAG,QAAQ,EACtB,EAAgB,yBAAG,EAAK,EACxB,EAAY,yBAAS,CAAC,CAAC,EACvB,EAAa,0BAAS,CAAC,CAAC,EACxB,EAAa,0BAAS,CAAC,CAAC,EAGpB,EAAe,MAAoB,GAAa,EAAK,IACrD,EAAQ,MAA0B,IAAiB,EAAC,CAAe,IACnE,EAAU,QAAY,CAAe,EAAC,OAAS,CAAC,EAChD,EAAiB,MAAyB,GAAoB,EAAO,IACrE,EAAa,UACP,IAAG,EAAC,CAAiB,EAAC,IAAK,GAAM,CAAM,EAAO,MAAO,CAAM,KAGnE,EAAgC,EAAO,IAAI,EAC3C,EAA4B,EAAO,IAAI,EAErC,GAAc,EAAc,EAAgB,KAAU,KACpD,EAAa,GAAa,CAAI,EACpC,EAAQ,GACR,EAAY,EAAC,CAAU,EAEnB,GACF,EAAa,EAAC,CAAU,CAE5B,EAEM,EAAe,GAAyB,GAC5C,EAAa,MACb,EAAa,EAAC,CAAK,CACrB,EAEM,MAAoB,KAClB,EAAY,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAAM,EAClE,EAAY,CAAS,MACf,EAAY,GAAsB,EACxC,EAAW,EAAW,EAAK,EAE3B,GAAI,EAAG,SAAW,OACX,CAAM,MAAK,CAAM,EAAC,SAAS,SAAS,aAAa,aAEhD,EAAS,GAAa,EAAU,OACtC,GAAa,CAAM,EACnB,EAAY,CAAM,CACpB,CAAC,CACH,EAEM,MAAmB,CACvB,EAAW,GAAsB,EAAI,EAAI,CAC3C,EAEM,EAAiB,GAAyB,IAC1C,EAAM,MAAQ,QAAS,CACzB,EAAM,eAAc,EACpB,GAAkB;CAAI,MAChB,EAAY,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAAM,EAClE,EAAY,CAAS,MACf,EAAY,GAAsB,EACxC,EAAW,EAAW,EAAK,EAE3B,GAAI,EAAG,SAAW,OACX,CAAM,MAAK,CAAM,EAAC,SAAS,SAAS,aAAa,aAEhD,EAAS,GAAa,EAAU,OACtC,GAAa,CAAM,EACnB,EAAY,CAAM,CACpB,CAAC,QAGH,IAEI,EAAM,MAAQ,aAAe,EAAM,MAAQ,aAE1C,CAAM,aAEL,EAAY,OAAO,aAAY,MAGlC,GACD,EAAU,aAAe,GAAC,CACzB,EAAU,aAAW,GACrB,CAAM,EAAC,SAAS,EAAU,UAAU,aAKjC,EACJ,EAAM,MAAQ,YACV,GAAkB,EAAW,UAAU,EACvC,GAAkB,EAAW,MAAM,MAEpC,EAAS,OAEd,EAAM,eAAc,MACd,EAAe,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAAM,EAC/D,EAAc,GAAoB,CAAS,EAEjD,EAAU,OAAM,MACV,EAAY,GAAsB,EAClC,EACJ,EAAM,MAAQ,YACV,KAAK,IAAI,GAAI,GAAgB,GAAK,CAAW,EAC5C,GAAgB,EAEvB,EAAW,EAAW,EAAI,EAE1B,GAAI,EAAG,SAAW,CAChB,GAAa,CAAS,EACtB,EAAY,CAAS,CACvB,CAAC,CACH,EAEM,EAAe,GAA0B,OACxC,CAAM,IAAK,EAAM,cAAa,OAEnC,EAAM,eAAc,EAEpB,GADa,EAAM,cAAc,QAAQ,YACvB,CAAI,MAChB,EAAY,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAAM,EAClE,EAAY,CAAS,MACf,EAAY,GAAsB,EACxC,EAAW,EAAW,EAAK,EAE3B,GAAI,EAAG,SAAW,OACX,CAAM,MAAK,CAAM,EAAC,SAAS,SAAS,aAAa,aAEhD,EAAS,GAAa,EAAU,OACtC,GAAa,CAAM,EACnB,EAAY,CAAM,CACpB,CAAC,CACH,EAEM,EAAkB,GAAoC,KACpD,EAAW,SAAiB,sBAAsB,EAAM,QAAS,EAAM,OAAO,KAEhF,EAAO,OAAS,KAEf,SAAiB,uBAAwB,KACtC,EAAO,SAAiB,uBAAuB,EAAM,QAAS,EAAM,OAAO,MAE5E,EAAG,OAAS,SAEX,EAAQ,SAAS,YAAW,SAClC,EAAM,SAAS,EAAI,WAAY,EAAI,MAAM,EACzC,EAAM,SAAS,EAAI,EAEZ,CACT,QAEO,IACT,EAEM,EAAqB,GAA0C,KAC/D,EAAuB,OACpB,GAAW,IAAO,EAAK,CAAM,GAAE,IAChC,EAAQ,WAAa,KAAK,aAAc,KACpC,EAAU,KAEZ,EAAQ,QAAQ,MAAK,OAAS,CACpC,CAEA,EAAU,EAAQ,UACpB,QAEO,IACT,EAEM,EAAyB,GAAqD,OAC7E,CAAM,SAAS,SAEd,EAAQ,SAAS,YAAW,KAC9B,QACF,EAAM,SAAQ,EAAC,CAAM,EAAE,CAAC,EACxB,EAAU,CAAK,EAGR,GAFU,EAAM,cAEF,EAAQ,EAAqB,CAAM,GAAE,MAC5D,OAAS,EAAK,QACZ,QAAQ,KAAK,iDAAkD,CAAG,EAE3D,IACT,CACF,EAEM,EAAuB,GAAqC,OAC3D,CAAM,SAAS,SAEd,EAAI,EAAG,CAAM,EAAC,sBAAqB,EACnC,EACJ,EAAM,SAAW,EAAK,MACtB,EAAM,SAAW,EAAK,OACtB,EAAM,SAAW,EAAK,KACtB,EAAM,SAAW,EAAK,OAClB,EAAa,EAAe,CAAK,MAElC,GAAU,GAAK,CAAM,EAAC,SAAS,EAAW,cAAc,SACpD,EAAS,EAAG,CAAe,EAAC,OAAS,SAGxC,EAAQ,EAAkB,EAAW,cAAc,KAErD,EAAO,KACH,EAAO,EAAM,sBAAqB,EAClC,EAAc,EAAM,SAAW,EAAK,KAAO,EAAK,MAAQ,SAEvD,EAAuB,GAAU,CACtC,EAAc,EAAM,YAAY,CAAK,EAAI,EAAM,aAAa,CAAK,CACnE,CAAC,CACH,QAEO,EAAuB,GAAU,CACtC,EAAM,OAAO,EAAW,eAAgB,EAAW,WAAW,CAChE,CAAC,CACH,EAEM,GAAmB,GAAsB,OACxC,CAAM,GAAI,EAAQ,IAET,EAAkB,EAAM,MAEjC,aAMC,EADiB,EAAoB,CACvB,GAAc,EAAI,CAAU,KAAI,CAAe,EAAC,OAEpE,EAAM,eAAc,EACpB,EAAM,gBAAe,EAErB,EAAY,CAAW,CACzB,EAEM,GAAqB,GAAiB,KACpC,EAAY,OAAO,aAAY,MAEhC,GAAa,EAAU,aAAe,GAAC,GAAK,CAAM,aAEjD,EAAQ,EAAU,WAAW,CAAC,EACpC,EAAM,eAAc,EACpB,EAAM,WAAW,SAAS,eAAe,CAAI,GAE7C,EAAM,SAAS,EAAK,EACpB,EAAU,gBAAe,EACzB,EAAU,SAAS,CAAK,CAC1B,EAEM,OAA8B,OAC7B,CAAM,aAEL,EAAY,OAAO,aAAY,MAEhC,GAAa,EAAU,aAAe,EAAC,WAEtC,EAAQ,EAAU,WAAW,CAAC,IAE/B,CAAM,EAAC,SAAS,EAAM,cAAc,GAGzC,EADkB,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAChD,CAAS,CACvB,WAEgB,EAAY,EAA6B,KAAM,IACxD,CAAM,GAAI,EAAQ,MAEvB,CAAM,EAAC,MAAK,EAER,IAAgB,MAClB,GAAI,EAAG,SAAW,CAChB,GAAa,CAAW,EACxB,EAAY,CAAW,CACzB,CAAC,EAEL,UAEgB,IAAwB,OACjC,CAAM,WAAS,CAAe,EAAC,YAEhC,CAAU,IAAK,KAAI,SAAS,OAE1B,EAAY,OAAO,aAAY,MAEhC,GAAa,EAAU,aAAe,EAAC,SAAS,CAAe,EAAC,WAE/D,EAAQ,EAAU,WAAW,CAAC,WAE/B,CAAM,EAAC,SAAS,EAAM,cAAc,EAElC,GAAiB,EAAC,CAAM,IAAE,CAAe,EAAC,MAAM,EAFd,EAAU,CAAe,EAAC,MAGrE,UAEgB,GAAa,EAAqB,OAC3C,CAAM,aAEL,EAAY,OAAO,aAAY,MAEhC,EAAS,WAER,EAAQ,SAAS,YAAW,EAC9B,EAAY,KAAK,IAAI,EAAG,CAAW,EACnC,EAAS,GAEP,GAAqB,EAAc,IAA2B,IAC9D,GAAU,EAAC,MAAS,OAEpB,EAAW,UACN,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,KACvB,EAAK,KAEL,MACX,GAAY,GAGV,GAAY,SACP,EAAI,SAIR,EAAK,MACd,EAEM,EAAQ,GAAwB,IAChC,EAAK,WAAa,KAAK,UAAW,KAC9B,GAAc,EAAK,aAAe,IACrC,QAAQ,UAAW,EAAE,EACrB,QAAQ,UAAW,GAAG,EAAE,UAEvB,IAAe,SACb,IAAc,GAChB,EAAM,SAAS,EAAM,CAAC,EACtB,EAAM,SAAS,EAAI,EACnB,EAAS,GAEF,IAGF,MAGL,GAAa,EAAY,KACrB,EAAe,EAAkB,EAAK,aAAe,GAAI,CAAS,SACxE,EAAM,SAAS,EAAM,CAAY,EACjC,EAAM,SAAS,EAAI,EACnB,EAAS,GAEF,EACT,OAEA,IAAa,EAEN,EACT,IAEI,EAAK,WAAa,KAAK,aAAc,KACjC,EAAU,KAEZ,EAAQ,QAAQ,cAAgB,aAC3B,MAGL,EAAQ,QAAQ,MAAO,KACnB,EAAW,GAAoB,CAAO,KAExC,IAAc,EAAG,KACb,EAAS,EAAQ,YAAU,EAAI,GAC/B,EAAQ,MAAM,KAAK,EAAO,UAAU,EAAE,QAAQ,CAAO,SAC3D,EAAM,SAAS,EAAQ,CAAK,EAC5B,EAAM,SAAS,EAAI,EACnB,EAAS,GAEF,EACT,IAEI,GAAa,EAAU,KACnB,EAAS,EAAQ,YAAU,EAAI,GAC/B,EAAW,MAAM,KAAK,EAAO,UAAU,EACvC,EAAQ,EAAS,QAAQ,CAAO,EAChC,EAAc,EAAS,EAAQ,UAEjC,GAAe,EAAY,WAAa,KAAK,UAC/C,EAAM,SAAS,EAAa,CAAC,EAE7B,EAAM,SAAS,EAAQ,EAAQ,CAAC,EAGlC,EAAM,SAAS,EAAI,EACnB,EAAS,GAEF,EACT,OAEA,IAAa,EAEN,EACT,SAEW,KAAS,MAAM,KAAK,EAAK,UAAU,KACxC,EAAK,CAAK,QAAU,EAE5B,OAEO,EACT,EAEA,EAAI,EAAC,CAAM,GAEN,IACH,EAAM,mBAAkB,EAAC,CAAM,GAC/B,EAAM,SAAS,EAAK,GAGtB,EAAU,gBAAe,EACzB,EAAU,SAAS,CAAK,CAC1B,UAEgB,GAAY,EAAoB,KACxC,EAAY,GAAe,EAAY,EAAW,GAClD,EAAO,GAAa,EAAK,GACzB,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,GAAa,EAAI,EAAK,MAAM,GACzD,EAAY,EAAK,MAAM,EAAG,CAAK,EAAI,EAAY,EAAK,MAAM,CAAK,EAC/D,EAAc,EAAQ,EAAU,OAEtC,EAAW,EAAW,EAAI,EAE1B,GAAI,EAAG,SAAW,CAChB,EAAW,EACX,GAAa,CAAW,EACxB,EAAY,CAAW,CACzB,CAAC,CACH,KAEM,SACC,CAAM,EAEJ,GAAa,EAAC,CAAM,IAAE,CAAM,GAFxB,EAAS,GAKhB,GAAgB,GACR,EAAG,CAAa,EAAC,IAAI,CACjB,GAAQ,SAAS,KAAI,GAI/B,QAAS,6DACT,UAAW,UAEb,GAIN,OAAc,KACN,EAAM,EAAG,GACT,EAAe,EAAG,GAClB,EAAc,EAAG,OAElB,EAAM,WAEL,EAAW,SAAS,uBAAsB,EAC1C,EAAsC,WACjC,KAAW,EAAiB,KAC/B,EAAO,SAAS,cAAc,MAAM,KAEtC,EAAQ,OAAS,OACnB,EAAK,UAAY,eACjB,EAAK,QAAQ,UAAY,OAAO,EAAQ,KAAK,SAAW,CAAC,EACzD,EAAK,YAAc,EAAQ,KAAK,SAAW,EAAI,IAAW,EAAQ,SAC7D,CACL,EAAK,UAAY,QACjB,EAAK,QAAQ,MAAQ,EAAQ,MAC7B,EAAK,QAAQ,YAAc,EAAQ,OACnC,EAAK,gBAAkB,YACjB,EAAQ,SAAS,cAAc,MAAM,EAC3C,EAAM,UAAY,iBACZ,EAAS,EAAe,IAAI,EAAQ,KAAK,EAC/C,EAAM,YACJ,GAAQ,SAAS,KAAI,GACrB,GAAmB,EAAQ,GAAe,EAAQ,MAAO,EAAQ,MAAM,GACzE,EAAK,OAAO,CAAK,EACjB,EAAS,KAAK,GAAQ,EAAM,GAAa,EAAQ,KAAK,GACxD,CAEA,EAAS,OAAO,CAAI,CACtB,QACA,EAAO,gBAAgB,CAAQ,MAElB,EAAS,QAAS,GAAU,EAAM,QAAO,EACxD,CAAC,yEAGF,kCAGY,EAAM,SAAN,CAAM,eAHlB,wFAImB,EAAQ,KAJ3B,gBAOa,EAAS,GAAI,EAAW,KAPrC,QASE,EAAE,KATJ,mBAUc,CAAU,KAVxB,sBAWmB,EAAW,eAX9B,GAYU,CAAW,cAZrB,GAaY,CAAa,aAbzB,GAcU,CAAW,gBAdrB,GAec,EAAe,YAf7B,GAgBW,GAAU,CACd,EAAQ,GAEZ,EAAM,gBAAe,CACvB,CAAC,cApBF,GAqBY,EAAqB,YArBjC,GAsBU,EAAqB,aAtB/B,GAuBU,EAAqB,YAvB/B,GAwBS,CAAU,MAxBnB,SAFO,2PClhBR,aAYI,EAAQ,iBAAG,EAAK,EAChB,EAAU,mBAAG,EAAI,EACjB,EAAgB,yBAAG,EAAK,EACxB,EAAO,oBAAS,CAAC,CAAC,EAGd,EAAe,GAAsB,CACzC,EAAO,EAAC,CAAK,CACf,MAGD,yBASE,GAAI,qBAAO,yBACX,EAAI,OACF,KADF,CACM,qBAAO,uBADb,CAAI,IAVN,wFAOW,EAAQ,IAAK,EAAU,cAPlC,EAIU,CAAW,MAJrB,MAFO,gMCrBR,aAuBI,EAAK,eAAa,EAAE,EACpB,EAAW,oBAAG,SAAS,EACvB,EAAS,kBAAG,MAAS,EACrB,EAAQ,iBAAG,EAAK,EAChB,EAAI,aAAG,EAAE,EACT,EAAE,gBAAG,aAAe,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,GAC9D,EAAO,yBACP,EAAW,oBAAG,QAAQ,EACtB,EAAgB,yBAAG,EAAK,EACxB,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAa,0BAAS,CAAC,CAAC,EAGpB,EAAiB,MAAyB,GAAoB,EAAO,IACrE,EAAe,MAAoB,GAAa,EAAK,IACvD,EAAa,EAAO,EAAK,EACvB,EAAU,QAAY,CAAiB,EAAC,KAAM,GAAW,EAAO,aAAe,EAAK,GACpF,EAAa,QAAY,CAAU,IAAK,EAAQ,KAAI,CAAU,GAC9D,EAAY,SAAwB,EAAE,iBAExC,EAA4B,EAAO,IAAI,EACvC,EAAqB,EAAO,EAAK,EACjC,EAAmB,EAAO,CAAC,EAC3B,EAA8C,EAAO,IAAI,EAEvD,GAAe,EAAc,EAAgB,KAAU,KACrD,EAAa,GAAa,CAAI,KACpC,EAAQ,GACR,EAAa,EAAC,CAAU,EAEpB,EAAe,KACX,EAAW,IAAO,YAAY,SAAQ,CAAI,OAAM,CAAI,MAAO,CAAU,IAC3E,EAAQ,EAAC,CAAW,CACtB,CACF,EAEM,EAAqB,GAAiB,EAAY,EAAM,EAAK,EAC7D,EAAsB,GAAiB,EAAY,EAAM,EAAI,EAC7D,EAAqB,GAAwB,GACjD,EAAa,KACf,EAEM,EAAc,GAAsB,CACxC,EAAM,gBAAe,MACf,EAAM,YAAY,IAAG,EAEvB,EAAQ,MAAK,CAAU,KAAI,CAAU,KAAI,CAAkB,GAAI,EAAG,EAAG,CAAgB,MAGzF,EAAU,EAAG,CAAe,GAAE,cAAa,KAAM,SACjD,EAAa,IACf,EAEM,MAAoB,GACxB,EAAmB,YAAY,IAAG,EAAK,OACvC,EAAqB,MACrB,EAAa,IACb,GAAI,EAAG,SAAW,GAChB,EAAqB,MACrB,CAAe,GAAE,YAAW,CAC9B,CAAC,CACH,EAEM,MAAkC,GACtC,EAAmB,KACnB,EAAqB,MACrB,EAAa,GACf,EAEM,GAAmB,GAAsB,CAC7C,EAAyB,IAEpB,CAAe,MAEhB,CAAU,IAAK,QACjB,CAAe,EAAC,aAAY,EAAC,CAAU,KAGzC,CAAe,EAAC,YAAY,EAAO,KAAK,EAC1C,eAKD,+BAME,wBAGE,EAAE,4BACF,EAAW,0BACX,EAAS,yBACT,EAAQ,0BACA,CAAiB,4BACzB,EAAW,iCACX,EAAgB,gBACH,gBACC,gBACA,MAVf,OAAK,iBAAL,MAAK,gBADM,EAAe,YAAf,CAAe,OAc3B,sBASA,IAAgB,kCAAE,EAAgB,yBAAG,EAAQ,6BAAG,CAAU,WAAW,QAErE,GAAK,WAAL,EAAK,IAhCP,IAmCA,MAnCA,IAmCA,uBACO,CAAa,0BACV,CAAiB,4BACzB,EAAW,YACF,WACD,eAxCV,mFAqBE,UACK,CAAY,KAUjB,GAAK,OAAqB,EAAI,GAAI,EAAE,MAApC,GAAK,EAAwC,CAAe,eAhC9D,GAIW,GAAM,EAAE,gBAAe,cAiBhC,SAMgB,CAAe,GAAE,YAAW,EAAC,CAAU,KAAI,CAAe,EAAC,MAAM,cA/B5E,6uCCvGR,aAsFI,EAAK,eAAa,EAAE,EACpB,EAAE,gBAAG,SAAW,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,GAC1D,EAAS,kBAAG,EAAE,EACd,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAa,0BAAS,CAAC,CAAC,EACxB,EAAK,cAAG,EAAE,EACV,EAAI,aAAG,MAAM,EACb,EAAW,oBAAG,SAAS,EACvB,EAAQ,iBAAG,EAAK,EAChB,EAAI,aAAG,EAAE,EACT,EAAO,yBACP,EAAW,oBAAG,QAAQ,EACtB,EAAmB,mCAAK,EACd,mBAAG,EAAE,MACf,EAAK,cAAG,MAAS,EACjB,EAAY,qBAAG,EAAE,EACjB,EAAS,kBAAG,MAAS,EACrB,EAAG,YAAG,MAAS,EACf,EAAG,YAAG,MAAS,EACf,EAAI,aAAG,MAAS,EAChB,EAAQ,iBAAG,EAAK,EAChB,EAAS,kBAAG,MAAS,EACrB,EAAS,kBAAG,MAAS,EACrB,EAAO,gBAAG,MAAS,EACnB,EAAU,mBAAG,MAAS,EACF,EAAe,yBAAG,MAAS,EAC/C,EAAS,kBAAG,EAAI,EAChB,EAAW,oBAAG,EAAE,EAChB,EAAQ,iBAAG,EAAK,EAChB,GAAa,sBAAG,EAAK,EACrB,GAAgB,yBAAG,EAAK,EACxB,GAAW,oBAAG,MAAM,EACpB,EAAe,wBAAG,UAAU,EACnB,GAAc,gBAAG,IAAI,EAC9B,GAAS,kBAAG,IAAI,EAChB,GAAO,gBAAG,MAAS,EACnB,GAAqB,8BAAG,EAAK,EAC7B,GAAS,kBAAG,EAAK,EACjB,GAAQ,iBAAG,MAAS,EACpB,GAAe,wBAAG,MAAS,EAC3B,GAAe,wBAAG,MAAS,EAC3B,GAAe,wBAAG,EAAK,EACvB,GAAU,mBAAG,MAAS,EAGlB,GAAY,GACE,OAAW,GAAc,YAA3C,GAAmD,CAAK,MAAM,QAAQ,CAAS,EAoB7E,GAAU,MAlBkB,KACzB,GAAS,SAAS,OAEnB,GAAS,EAAK,GAAG,KACb,EAAY,EAAK,EAAC,GAAS,UAE7B,GAAc,KAAwC,UAE5C,GAAc,UAAQ,OAAW,GAAc,SACzD,EACA,OAAO,CAAS,CACtB,QAEI,EAAK,IAAK,MAAQ,EAAK,IAAK,OAAkB,UAEpC,EAAK,GAAK,UAAQ,OAAW,EAAK,GAAK,SAAW,EAAK,EAAG,OAAO,EAAK,EACtF,CAE2C,EAErC,GAAiB,GAAc,KAC9B,GAAS,EAAE,CACd,EAAQ,SAGV,KAEM,EAAO,GAAS,EAAK,OAAS,EAAK,MACzC,EAAK,GAAS,GAAI,EAClB,EAAQ,EACV,EAEM,GAAsB,GACtB,MAAM,QAAQ,CAAK,EAAU,EAAM,KAAM,GAAU,GAAmB,CAAK,GAE3E,aAAiB,KAAI,CAAU,OAAO,MAAM,EAAM,QAAO,GAEzD,GAAS,CAAK,EAAU,OAAO,OAAO,CAAK,EAAE,KAAM,GAAU,GAAmB,CAAK,GAElF,GAAiC,MAAQ,IAAU,GAGxD,GAAQ,MAAY,GAAmB,GAAS,IAAG,EAAU,EAAG,EAAK,IACnE,GAAoB,MAAY,GAAW,IAAK,OAAS,OAAY,GAAW,GAChF,GAAe,MAAY,EAAK,GAAI,EAAW,GAC/C,GAAkB,MAAY,EAAe,IAAK,SAAW,GAAK,EAAW,GAE7E,GAAoB,MAAqB,IACzC,EAAY,IAAK,QAAa,EAAY,IAAK,MAAQ,EAAY,IAAK,GAAE,OACrE,OAEL,EAAI,IAAK,YAAc,EAAI,IAAK,kBAAiB,MAAS,kBAE1D,EAAI,IAAK,SAAQ,MAAS,KAGhC,CAAC,EAEK,GAAU,QACd,KAAE,EACF,gBAAiB,EAAE,EACnB,cAAe,GAAU,EACzB,MAAO,EAAS,EAChB,YAAW,EAAE,EAAkB,EAC/B,aAAY,EAAE,EAAe,EAC7B,YAAS,EACT,KAAM,EAAI,GAAI,EAAE,EAChB,SAAQ,EAAI,EAAQ,EACpB,aAAY,EAAE,EAAoB,EAClC,MAAG,EACH,MAAG,EACH,OAAI,EACJ,WAAQ,EACR,YAAS,EACT,YAAS,EACT,UAAO,EACP,aAAU,EACV,mBAAoB,EAAe,KAG/B,OAA2B,GAAS,IAAG,EAAU,EAAG,EAAK,EAEzD,GAAwB,GACxB,aAAiB,KAAI,IAAa,KAAK,EAAM,QAAO,GAEpD,MAAM,QAAQ,CAAK,EAAU,EAAM,IAAK,GAAU,GAAqB,CAAK,GAE5E,GAAS,CAAK,EACT,OAAO,YACZ,OAAO,QAAQ,CAAK,EAAE,KAAG,CAAG,EAAK,KAAK,CAAO,EAAK,GAAqB,CAAK,KAIzE,EAGH,IAAkB,EAAY,IAAwB,IACtD,OAAO,GAAG,EAAG,CAAC,QAAU,MAExB,aAAa,MAAQ,aAAa,KAAI,OAAS,EAAE,QAAO,IAAO,EAAE,QAAO,KAExE,MAAM,QAAQ,CAAC,GAAK,MAAM,QAAQ,CAAC,SACjC,EAAE,SAAW,EAAE,OAEZ,EAAE,OAAO,EAAO,IAAU,GAAe,EAAO,EAAE,EAAK,GAF5B,MAKhC,GAAS,CAAC,GAAK,GAAS,CAAC,EAAG,KACxB,EAAQ,OAAO,KAAK,CAAC,EACrB,EAAQ,OAAO,KAAK,CAAC,SAEvB,EAAM,SAAW,EAAM,OAEpB,EAAM,MAAO,GAAQ,GAAe,EAAE,GAAM,EAAE,EAAG,GAFd,EAG5C,OAEO,EACT,EAEI,GAA4B,EAAM,GAAC,GAAqB,GAAiB,KACzE,GAAuB,EAAO,EAAK,EAEjC,OAAuB,GAC3B,GAAuB,GACzB,EAEM,IAAsB,EAAc,IAA4B,KAC9D,EAAe,GAAiB,GAAiB,OAElD,EAAoB,MAIrB,GAAe,EAAY,EAAE,EAAgB,GAAG,GAClD,GAAuB,UAGzB,GAEA,GAAmB,GAAqB,CAAY,QACpD,GAAuB,IACvB,EAAQ,EAAC,CAAK,CAJd,CAKF,EAEM,GAAmB,GAAiB,CACxC,GAAc,MACR,EAAO,GAAqB,CAAK,KAEnC,EAAK,MAAO,CACV,GAAS,KACX,GAAa,EAAK,OAClB,GAAc,EAAK,KAAK,GAExB,EAAQ,EAAK,OAGf,GAAmB,EAAO,EAAK,KAAK,QAGtC,CAEA,GAAmB,CAAK,CAC1B,EAEM,GAAkB,GACrB,EAAM,QAA0D,OAAS,GAEtE,GAAwB,GAAqD,KAC3E,EAAU,EAA6D,UAEzE,GAAM,OAAW,GAAW,SAAU,IACpC,EAAQ,GAAI,MAAM,QAAQ,EAAO,MAAM,SAAY,MAAO,GAAM,MAAO,EAAO,MAAM,KAEpF,UAAW,EAAM,OAAW,MAAO,GAAM,MAAO,EAAO,OAAS,EAAE,CACxE,KAEM,EAAS,EAAM,cAEjB,GAAU,UAAW,EAAM,CAAW,MAAO,GAAM,MAAO,EAAO,KAAK,GAEjE,MAAO,GAAO,MAAO,MAAS,CACzC,EAEM,GAAoB,GAAiB,KACnC,EAAO,GAAe,CAAK,EACjC,GAAc,IACd,GAAa,GACb,GAAc,CAAI,CACpB,EAEM,GAA2B,GAAiB,CAChD,GAAiB,CAAK,EACtB,GAAmB,EAAO,GAAS,IAAG,EAAU,EAAG,MAAS,CAC9D,EAEM,GAAsB,GAAiB,KACrC,EAAO,GAAe,CAAK,EACjC,GAAc,EACd,EAAQ,GACR,GAAmB,EAAO,CAAI,CAChC,EAEM,GAA0B,GAAiB,KACzC,EAAO,GAAe,CAAK,EACjC,GAAc,EACd,EAAQ,EACV,EAEI,GAAgB,EAAgC,IAAI,EAElD,GAAwB,GAAiB,KACvC,EAAW,EAAM,cAAmC,UAC1D,GAAmB,GAAoB,CAAE,CAAO,MAChD,GAAc,EACd,EAAQ,GACR,EAAa,EAAC,CAAO,EACrB,GAAmB,EAAO,CAAO,CACnC,EAEM,GAAoB,GAAsB,CAC9C,EAAM,eAAc,EACpB,EAAM,gBAAe,EAEjB,GAAQ,KAEZ,EAAa,GAAE,MAAK,CACtB,EAEM,GAAY,WACT,KACC,EAAU,GAAS,IAAG,EAAU,EAAG,WAErC,GAAY,KAAsC,UAExC,GAAY,SAAW,EAAU,OAAO,CAAO,CAC/D,GAAC,GAGC,GAAkB,EAAO,EAAK,EAE5B,GAAkB,QACtB,OAAM,EAAE,EAAY,EAAC,QAAU,GAC/B,OAAQ,KAAK,KAAI,EAAC,EAAY,UAIjC,wCAaI,6FAEiB,EAAQ,GAAI,EAAI,IAAK,SAAS,MAF/C,EAGQ,EAAI,GAAI,SAAW,yBAA2B,EAAE,MAAG,EAAK,GAAI,EAAW,SAH/E,aADE,EAAI,IAAK,YAAc,EAAe,IAAK,UAAQ,kCAQrD,QAOE,KAPF,CAOM,qBAAO,QAPb,+BAKgB,QAAS,GAAc,SALvC,aADE,GAAc,GAAI,EAAI,IAAK,YAAU,kCAY9B,EAAQ,gBACf,8DAIK,EAAU,WACJ,iDALX,OACY,GAAa,SAAb,EAAa,OAQzB,IATA,aASA,uCAKa,EAAe,GAAI,SAAS,IALzC,kBAMgB,EAAQ,KANxB,aAOW,EAAQ,KAAQ,CAAC,EAP5B,WAQE,EAAQ,QAJK,GAAa,EAAG,QAAU,EAAQ,EAAK,QAbtD,EAMe,CAAK,+BANpB,mBASA,EASU,EAAgB,qCAI1B,EAAG,oBAAH,CAAG,EACO,EAAQ,0BAEd,EAAC,MAAyB,KAA1B,CAAkC,qBAAO,EAAW,OAApD,CAAC,MAAD,CAAC,WADC,EAAW,iCAIb,QAOE,KAPF,CAOM,qBAAO,QAPb,+BAKgB,QAAS,GAAc,SALvC,YADE,GAAc,YALpB,CAAG,YAAH,EAAG,gDAAsC,EAAQ,SAAjD,CAAG,SAkBK,EAAQ,YAnBd,EAAW,GAAI,GAAc,oCAsBjC,EAAG,UAAH,CAAG,YAEC,wBACK,EAAU,SACR,EAAe,EAAG,OAAS,sCAEzB,YAEE,WACD,iDAPV,QAKa,EAAU,OAAV,GAAU,QALvB,cAUA,wBACK,EAAU,SACR,EAAe,EAAG,OAAS,sCAEzB,YAEE,WACD,iDAPV,qBAXE,GAAS,qBAqBb,+BAaa,EAAe,EAAG,GAAmB,EAAa,EAA7D,GAAI,+BAbN,KAtBF,CAAG,WAsBD,iBAGa,EAAe,EAAG,sBAAwB,mBAAmB,IAH1E,mBAIe,EAAe,eAJ9B,QAKiB,GAAe,GAAI,EAAe,gBALnD,EAMa,GAAU,EAChB,EAAM,MAAQ,SAAW,EAAM,MAAQ,OACzC,EAAM,eAAc,IACpB,GAAe,GAAI,KAEvB,CAAC,MAjCJ,CAAG,sBAuCH,EAAG,SAAH,CAAG,YAEC,wBACK,EAAU,SACR,EAAe,EAAG,OAAS,sCAEzB,YAEE,WACD,iDAPV,QAKa,EAAU,OAAV,GAAU,QALvB,cAUA,wBACK,EAAU,SACR,EAAe,EAAG,OAAS,sCAEzB,YAEE,WACD,iDAPV,qBAXE,GAAS,qBAqBb,+BAaa,EAAe,EAAG,GAAmB,EAAa,EAA7D,GAAI,+BAbN,KAtBF,CAAG,MAsCH,EAAE,EAtCF,EAAG,GAuCD,EAAE,EADJ,CAAE,gBACA,CAAE,iBACW,EAAkB,EAAC,OAAS,GAAW,EAAQ,EAA1D,GAAI,oDADN,CAAE,MAIF,EAAE,EAJF,EAAE,iBAIF,CAAE,iBACW,EAAkB,EAAC,OAAS,GAAW,EAAQ,EAA1D,GAAI,oDADN,CAAE,IALJ,CAAE,WAhBA,iBAGa,EAAe,EAAG,sBAAwB,mBAAmB,IAH1E,mBAIe,EAAe,OAa9B,EAAE,gCAAY,EAAkB,EAAC,MAAM,OAIvC,EAAE,gCAAY,EAAkB,EAAC,MAAM,eArBvC,QAKiB,GAAe,GAAI,EAAe,gBALnD,EAMa,GAAU,EAChB,EAAM,MAAQ,SAAW,EAAM,MAAQ,OACzC,EAAM,eAAc,IACpB,GAAe,GAAI,KAEvB,CAAC,4CAiBF,0BACS,QACJ,EAAU,UAEL,YACC,iDALX,QAGa,EAAU,OAAV,GAAU,QAHvB,cAQA,0BACS,QACJ,EAAU,WAEJ,WACD,iDALV,qBATE,GAAS,2DAmBX,gCACS,QACJ,EAAU,UAEL,YACC,8CALX,QAGa,EAAU,OAAV,GAAU,QAHvB,cAQA,gCACS,QACJ,EAAU,WAEJ,WACD,8CALV,qBATE,GAAS,oCAkBb,0BACS,sBAEJ,EAAU,WAEJ,WACD,iDANV,iCAUQ,GAAS,IAAG,EAAU,EAAG,EAAK,WAK/B,EAAI,GAAI,EAAE,WAQT,EAAI,GAAI,WAAW,UAChB,GAAe,IAAK,QAC1B,GACC,GAAQ,IAAK,EAAI,IAAK,QAAU,EAAI,IAAK,YAAW,EAjB1D,gDAEE,EAAE,8BACU,EAAkB,4BACpB,EAAe,yBACzB,EAAQ,kDAER,EAAS,yBACT,EAAQ,iCACR,GAAgB,4BAChB,GAAW,0BACX,GAAS,gCACT,GAAe,gCACf,GAAe,iEAKN,iBACM,GAAc,CAC5B,GAAc,EAEV,GAAS,KACX,GAAa,GACb,GAAc,CAAS,GAEvB,EAAQ,EAEZ,iBAGD,EAAG,UAAH,CAAG,yCACG,EAAE,EAAC,SAAS,MAAM,qCAGb,EAAC,EAAU,IAAI,EAAU,EAAG,GAAG,6CAE9B,EAAK,EAAI,EAAK,EAAG,GAAG,6BAHrB,GAAS,qBAHpB,CAAG,MAAH,CAAG,UAUH,sBAEE,EAAE,4BACU,EAAE,0BACd,EAAS,8BACG,EAAkB,4BACpB,EAAe,yBACzB,EAAQ,qBACR,EAAI,wBACJ,EAAO,oCACP,EAAmB,6BACnB,EAAY,yBACZ,EAAQ,0BACR,EAAS,yBACT,EAAQ,iCACR,GAAgB,4BAChB,GAAW,wBACX,GAAO,4BACP,EAAW,gCACX,GAAe,sCACf,GAAqB,2BACrB,GAAU,iBACK,GAAc,CAC5B,GAAc,EAEV,GAAS,KACX,GAAa,GACb,GAAc,CAAS,GAEvB,EAAQ,GAGV,EAAa,EAAC,CAAS,CACzB,WACU,OAjCV,OAAK,iBAAL,MAAK,gCAqCE,GAAS,IAAG,EAAU,EAAG,EAAK,WAK/B,EAAI,GAAI,EAAE,GANjB,gDAEE,EAAE,8BACU,EAAkB,4BACpB,EAAe,yBACzB,EAAQ,gDAER,EAAO,4BACP,EAAW,iCACX,GAAgB,YACP,iBACM,GAAc,CAC5B,GAAc,EAEV,GAAS,KACX,GAAa,GACb,GAAc,CAAS,GAEvB,EAAQ,EAEZ,iBAGD,0BACS,QACJ,EAAU,WAEJ,WACD,QACR,EAAI,gDANN,sBAvRE,EAAI,GAAI,WAAU,MA4Cb,EAAI,GAAI,kBAAiB,QAuCzB,EAAI,GAAI,WAAU,QAiDlB,EAAI,GAAI,OAAM,QAkBd,EAAI,GAAI,WAAU,QAkBlB,EAAI,GAAI,SAAQ,QAShB,EAAI,GAAI,QAAU,EAAI,GAAI,kBAAoB,EAAI,GAAI,YAAc,EAAI,GAAI,YAAW,QA+BvF,EAAI,GAAI,UAAS,QAUjB,EAAI,GAAI,SAAQ,QAqChB,EAAI,GAAI,iBAAgB,qBA7RnC,gCACgB,EAAE,KADlB,yBAEoB,EAAoB,MAFxC,GAGE,EAAK,QAHP,uCAIiB,EAAI,GAAI,yBACH,EAAI,GAAI,6BACV,EAAI,IAAK,UAAY,EAAQ,WAChC,EAAI,GAAI,sCAEH,EAAI,GAAI,YAAc,EAAI,GAAI,mCAC3B,GAAc,GAAI,EAAI,IAAK,mBAVpD,OAFO,qaC1XR,aAwBI,EAAW,oBAAG,oBAAoB,EAClC,EAAW,oBAAG,WAAW,EACzB,EAAM,eAAG,yBAAyB,EAElC,EAAU,uBAAS,CAAC,CAAC,EACrB,EAAe,4BAAS,CAAC,CAAC,EAC1B,EAAa,0BAAS,CAAC,CAAC,EAGtB,EAAW,EAAO,EAAE,EACpB,EAAO,EAAO,EAAK,EACnB,EAAQ,EAAsB,IAAI,EAClC,EAAW,GAET,EAAe,GAAwC,CACvD,IAEJ,EAAW,GACX,EAAU,EAAC,CAAM,EACnB,EAEM,MAAc,GAClB,EAAW,EAAC,EACZ,EAAW,CAAG,GAAI,EAAK,GACvB,EAAe,GACjB,EAEM,EAAM,SAAe,MACrB,CAAI,aAEF,EAAe,EAAG,CAAQ,EAAC,KAAI,MAEhC,EAAiB,GACpB,EAAQ,oCAAmC,QAG7C,GAEA,EAAO,MACP,EAAQ,SACJ,KACI,EAAQ,uBAAwB,CAAe,IACrD,EAAW,EAAC,EACZ,EAAW,CAAG,GAAI,GAAM,UAAQ,GAChC,EAAe,GACjB,OAAS,EAAK,CACZ,QAAQ,MAAM,iCAAkC,CAAG,IACnD,EAAQ,yCAAwC,CAClD,QAAU,GACR,EAAO,GACT,CACF,EAEA,OAAc,CACZ,EAAa,GACf,CAAC,EAED,OAAgB,GACd,EAAW,EAAC,EACZ,EAAW,CAAG,GAAI,EAAK,EACzB,CAAC,MAGF,QAME,EAAC,EANH,OAME,EAAC,MAAD,CAAC,MACD,IADA,EAAC,OACD,GAOE,4JAMW,CAAI,mDADd,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,gCAKnB,EAAC,UAAD,EAAC,MAAD,CAAC,cAAuE,CAAK,QAA7E,CAAC,aADC,CAAK,cAGT,EAAG,WAAH,CAAG,EACD,GAAG,+CAAiC,EAAW,WAAW,0BAAiB,CAAI,GACpE,YAAW,IAClB,GAAI,qBAAO,oDASJ,EAAW,IAClB,GAAI,qBAAO,iBALL,CAAI,EAAG,kBAAoB,EAAW,GAFhD,uEAGqB,EAAM,0BAChB,CAAI,GAEJ,2CAZb,CAAG,IAnBL,KAPF,6BAEe,EAAM,oCAKnB,EAEY,GAAU,CACnB,EAAM,eAAc,EACf,EAAM,CACb,CAAC,MAZJ,MAFO,CC7DR,IAAI,GAA2D,KAElD,IAAkC,GAA+C,CAC5F,GAAgB,CAClB,EAEM,QAAiE,CACrE,GAAI,CAAC,GACH,MAAU,MAAM,wCAAwC,EAG1D,OAAO,EACT,EAEa,GACX,GAEA,IAAI,QAAS,GAAY,CACvB,IAAM,EAAU,IAAqB,EACrC,GAAY,CACV,MAAO,EAAO,MACd,QAAS,IACT,kBAAmB,CAAC,EAAO,eAC3B,WAAY,CACV,OAAQ,0BACR,YAAa,EAAO,YACpB,YAAa,EAAO,aAAe,qBACnC,YAAa,EAAO,aAAe,YACnC,eAAgB,EAAQ,eACxB,WAAa,GAAwC,CAC/C,EAAO,IACT,IAA8B,EAAO,QAAQ,EAG/C,EAAQ,EAAO,EAAE,CACnB,CACF,CACF,CAAC,CACH,CAAC,EAEU,IAA+B,MAC1C,EACA,IAC2B,CAGtB,SAFkB,GAA6B,CAAM,EAI1D,OAAO,IAAyB,MAAc,GAA6B,CAAM,CAAC,CACpF,ECxEM,GAA2B,OAAO,OAAO,CAC7C,KAAM,8BACN,IAAK,6BACP,CAAC,EAED,SAAgB,GAAwB,EAA2C,CACjF,GAAI,IAAU,QAAU,IAAU,MAAO,MAAO,GAEhD,GAAI,CAGF,OAFI,OAAO,aAAiB,IAAoB,GAEzC,aAAa,QAAQ,GAAyB,EAAM,IAAM,MACnE,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAAgB,GAAyB,EAAkC,EAAoB,CACxF,SAAU,QAAU,IAAU,OAAU,OAAO,GAAc,WAElE,GAAI,CACF,GAAI,OAAO,aAAiB,IAAa,OAEzC,aAAa,QAAQ,GAAyB,GAAQ,OAAO,CAAS,CAAC,CACzE,MAAQ,CAAC,CACX,4fC1BA,aAQI,EAAK,cAAG,EAAE,EACV,EAAO,gBAAG,EAAK,EACf,EAAQ,iBAAG,EAAE,EACb,EAAY,qBAAG,EAAK,EAIpB,EAAI,aAAG,EAAE,EACT,EAAe,wBAAG,EAAE,EACpB,EAAgB,yBAAG,MAAS,EAC5B,EAAiB,0BAAG,IAAI,EACxB,EAAgB,yBAAG,EAAE,EAgBjB,MAAwB,CACvB,EAAe,GAEpB,GAAe,EAAe,GAC5B,QAAS,EAAgB,EACzB,SAAU,EAAiB,GAAI,QAEnC,MAGD,EAAO,gBACL,EAAG,EADL,CAAO,gBACL,CAAG,sHAKC,EAAC,MACC,KADF,CACM,qBAAO,aADb,CAAC,KAAD,EAAC,oBAAD,EAAC,OAAO,EAAI,QAAZ,CAAC,WADC,EAAI,cAMR,EAAG,OACD,EAAG,EADL,CAAG,MACD,CAAG,YACU,EAAE,MACT,EAAI,EADG,CAAE,MACT,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAEF,4BAQS,EAAO,EAAG,GAAuB,EAAkB,UACnD,EAAO,EAAG,WAAa,QAAQ,EAFtC,0DAPF,qBAIQ,EAAgB,GAAI,cAAc,aAJ1C,EAKU,CAAe,MALzB,YADE,EAAe,YAFZ,CAAE,YACH,EAAK,QADJ,CAAE,WAAT,EAAK,iCAkBP,EAAC,UAAD,EAAC,MAAD,CAAC,YAAmB,EAAQ,QAA5B,CAAC,WADC,EAAQ,YAlBd,CAAG,UAAH,EAAG,0FADL,CAAG,UAAH,EAAG,kGAVL,CAAG,IADL,CAAO,aAAP,EAAO,6CACL,EAAG,4DADL,CAAO,KAFA,oYC3CR,KAOQ,EAAU,iBAKd,EAAI,aAAG,YAAY,EACnB,EAAK,cAAG,kBAAkB,EAC1B,EAAQ,iBAAG,CAAU,EAenB,EAAmC,EAAM,QAEvC,EAAU,GAAe,OACxB,CAAI,aAEH,EAAS,MAAM,KAAI,EAAC,CAAI,EAAC,iBAAoC,iBAAiB,GAAG,KACpF,GAAS,EAAK,QAAQ,UAAY,CAAE,MAGlC,EAAM,WAEL,EAAU,EAAO,sBAAqB,EACtC,EAAQ,EAAG,CAAI,EAAC,sBAAqB,EAEvC,EAAQ,KAAO,EAAS,KAAI,EAAE,CAAI,EAAC,YAAc,EAAQ,KAAO,EAAS,KACpE,EAAQ,MAAQ,EAAS,QAAK,EAAE,CAAI,EAAC,YAAc,EAAQ,MAAQ,EAAS,MACvF,EAEM,EAAgB,GAAyB,WAClC,gBAAmB,WAAU,WAElC,EAAQ,IAAO,mBAAqB,EAAM,oBAChD,EAAS,QAAQ,CAAI,GAEZ,YAAe,EAAS,WAAU,EAC7C,EAGA,OAAc,KACN,EAAE,mBACF,WACF,EAAU,UACd,GAAI,EAAG,SAAW,CACZ,GAAS,EAAO,CAAE,CACxB,CAAC,MAEY,CACX,EAAU,EACZ,CACF,CAAC,MAEK,GAAa,EAAsB,IAAkB,KACrD,KAEA,EAAM,MAAQ,aAAc,GAAU,EAAQ,GAAC,QAAU,eACpD,EAAM,MAAQ,YAAa,GAAU,EAAQ,EAAC,QAAS,QAAM,QAAU,eACvE,EAAM,MAAQ,OAAQ,EAAS,UAC/B,EAAM,MAAQ,MAAO,EAAM,QAAS,OAAS,cAGtD,EAAM,eAAc,IACpB,CAAI,GAAE,iBAAoC,iBAAiB,EAAE,IAAS,MAAK,CAC7E,MAGD,EAAG,MACD,IADF,CAAG,KACD,iBAOiB,GAAa,EAAK,IAAE,EAApB,EAAI,SACjB,mCAgBI,EAAI,MAAqB,KAAzB,CAA6B,uBAAO,CAAI,EAAC,sBAAzC,CAAI,MAAJ,CAAI,aAEJ,EAAI,MACF,KADF,CACM,qBAAO,oBADb,CAAI,KAAJ,GAAI,sBAAgB,QAAO,EAAE,CAAI,EAAC,OAAO,QAAzC,CAAI,aAHF,CAAI,EAAC,KAAI,OAEJ,CAAI,EAAC,KAAE,cAAiB,CAAI,EAAC,SAAO,sBAjB/C,qBAEO,EAAI,IAAK,OAAS,MAAQ,MAAS,IAF1C,UAGQ,EAAQ,WAAQ,CAAI,EAAC,IAAE,IAH/B,oBAIgB,CAAI,EAAC,EAAE,IAJvB,kBAKc,CAAI,EAAC,MAAM,IALzB,iBAOe,EAAI,IAAK,cAAY,EAAI,CAAI,EAAC,KAAE,WAAgB,OAAS,MAAS,IAPjF,kBAQgB,EAAI,IAAK,OAAM,EAAG,CAAI,EAAC,KAAE,WAAgB,MAAS,IARlE,kBASgB,EAAI,IAAK,OAAM,UAAa,MAAS,IATrD,aAUW,EAAI,IAAK,QAAM,EAAI,CAAI,EAAC,KAAE,cAAqB,CAAC,MAV3D,sCAMe,CAAI,EAAC,KAAE,uBAgBpB,CAAI,EAAC,OAAK,kBAtBZ,mBAWyB,CAAI,EAAC,EAAE,eAXhC,EAYa,GAAU,EAAU,EAAK,EAAE,CAAK,eAZ7C,MAagB,EAAM,EAAC,CAAI,EAAC,EAAE,OAb9B,OARJ,aAIY,EAAI,SAAJ,CAAI,MAJhB,oCAkCW,EAAG,WAAH,mBAAG,MAAH,CAAG,6BAnChB,CAAG,WAAH,EAAG,wBAA0C,MAAS,IACpD,SAEO,EAAI,IAAK,OAAS,UAAY,YAAY,IAFjD,eAGa,EAAK,SAJpB,CAAG,KAFI,miBClFR,yDAuBQ,EAAiB,GAAkB,EAAM,MAAM,GAAG,EAAE,IAAM,EAC1D,GAAiB,EAAgB,IAAgB,KAChD,EAAG,OAAS,SAEX,EAAgB,OAAU,GAAW,SAAW,EAAO,QAAQ,MAAO,EAAE,EAAI,GAE5E,EAAS,IADI,gBAAgB,CACpB,EAAO,IAAI,KAAK,KAE3B,IAAW,KAAI,OAAS,SAEtB,EAAY,OAAO,CAAM,SAE3B,OAAO,UAAU,CAAS,GAAK,GAAa,GAAK,EAAY,EACxD,EAGF,IACT,WACS,GAA6B,KAC9B,EAAc,EAAc,EAAc,EAAC,IAAI,EACjD,EAAY,EACZ,EAAe,WAEV,EAAI,EAAG,EAAI,EAAM,EAAC,OAAQ,IAAK,KAChC,EAAa,EAAc,EAAM,EAAC,GAAG,IAAI,MAE1C,EAAU,aAET,EAAa,IAAgB,EAC7B,EAAc,EAAY,WAC9B,EAAW,SAAS,GAAG,EAAI,EAAU,GAAM,EAAU,OAGnD,GAAc,EAAa,KACvB,EAAc,EAAW,OAE3B,EAAc,IAChB,EAAkB,EAClB,EAAY,EAEhB,CACF,QAEO,CACT,KAEM,GAAG,GAAO,IAAoB,QACvB,QAAY,KAAe,QAAQ,OAC5C,QAAQ,MAAM,mBAAkB,GAAK,CAAI,CAE7C,WAES,EAAW,EAAe,KAC3B,EAAM,EAAM,EAAC,GAEf,MACF,EAAgB,CACd,SAAU,EAAc,EAAC,KACzB,QACA,KAAM,EAAI,IAAI,MAEhB,GAAY,EAAI,IAAI,EACpB,EAAI,YAAW,CAAI,QAAO,KAAM,EAAI,IAAI,GAE5C,KAGE,EAAO,gBAAG,EAAK,EACf,EAAM,wBACN,EAAa,sBAAG,EAAe,EAC/B,EAAW,oBAAG,IAAI,EAClB,EAAM,eAAG,EAAE,EAGT,EAAmB,EAAiE,IAAI,EAEtF,MAAyB,WAClB,EAAW,GAAK,UAAY,EAAW,GAAI,GAAK,EAAW,EAAG,EAAM,EAAC,cACvE,QAGH,EAAgB,EAAc,EAAc,EAAC,QAAU,GAAI,EAAM,EAAC,MAAM,SAE1E,IAAkB,KAEf,EAAkB,EAFU,CAGrC,EAEM,EAAS,MAAqB,KAC5B,EAAW,EAAgB,gBAEtB,EAAW,GAAK,UAAY,EAAW,GAAI,GAAK,EAAW,EAAG,EAAM,EAAC,WAG3E,CAAgB,EAAS,GAEV,EAAa,EAAC,CAAgB,EAAC,IAAI,EACnC,EAAc,EAAc,EAAC,IAG/C,IAAgB,EAAa,EAAC,CAAgB,EAAC,QAAQ,GACvD,EAAM,IAAC,CAAgB,EAAC,QAAQ,OAAI,EAAK,CAAgB,EAAC,OAEnD,CAAgB,EAAC,MAGc,EAG1C,CAAC,sCAKQ,EAAM,EAAC,KAAK,EAAM,KAAK,CAC5B,GAAE,GAAK,IACP,MAAO,EAAK,MACZ,QAAS,EAAK,QACd,OAAQ,EAAK,SAAW,EAAM,KAAM,EAAM,SAAQ,IAAU,yBAEjD,CAAS,KAPvB,oEAQY,GAAO,EAAW,OAAO,CAAE,uBACrC,EAAM,6CAIR,EAAG,MACD,EAAE,EADJ,CAAG,KACD,EAAE,GACM,GAAU,EAAI,IAAK,EAAK,MAAQ,GAAC,EAAvB,EAAI,SAClB,EAAE,MACA,IADF,CAAE,YASE,EAAC,EARH,OAQE,CAAC,YAEG,QAIE,KAJF,CAIM,qBAAO,QAJb,+BAEgB,QAAO,EAAE,CAAI,EAAC,OAAO,QAFrC,cADE,CAAS,KAAI,CAAC,KAAI,CAAI,EAAC,SAAO,oBADpC,CAAC,MAYD,IAZA,EAAC,WARH,KADF,CAAE,WACA,iBAEa,CAAI,EAAC,KAAK,IAFvB,mBAGe,CAAS,MAAK,CAAC,EAAG,OAAS,MAAS,IAHnD,kBAMc,CAAI,EAAC,SAAW,EAAM,KAAM,EAAM,WAAQ,CAAC,IAAK,OAAS,MANvE,qCAIe,CAAS,MAAK,CAAC,cAa1B,CAAI,EAAC,OAAK,UAGZ,sCACgB,CAAS,MAAK,CAAC,gBArBjC,MAKgB,EAAU,EAAC,CAAC,QAN9B,CAAE,MAFN,CAAE,UAAF,EAAE,aAwCS,EAAG,WAAH,mBAAG,MAAH,CAAG,6BAzChB,CAAG,UAAH,EAAG,cAAiC,EAAM,GAAI,MAAS,OAAvD,CAAG,WAdD,EAAO,+BAFJ,m7CCrIR,KAII,EAAK,cAAG,EAAI,EACZ,EAAW,oBAAG,EAAI,EAClB,EAAU,mBAAG,EAAK,MAcrB,EAAG,gBACD,EAAG,EADL,CAAG,gBACD,CAAG,+DAIC,EAAG,cAAH,EAAG,uCAAH,CAAG,aAEH,kBAoCA,kBAoCA,yDAzEO,EAAK,GAAI,EAAW,SAoCpB,EAAK,IAAK,EAAW,UAoCpB,EAAK,GAAI,EAAW,UAUpB,EAAK,IAAK,EAAW,cAvFjC,CAAG,MAyFH,EAAG,EAzFH,EAAG,OAyFH,CAAG,+EAAH,CAAG,IA1FL,CAAG,aAAH,EAAG,+CACD,EAAG,qEADL,CAAG,CAFI,4LClBR,aAmBI,EAAgB,yBAAG,EAAK,EACxB,EAAS,kBAAG,EAAI,EAChB,EAAI,aAAG,IAAI,EACX,EAAU,mBAAG,EAAK,EAClB,EAAmB,4BAAG,EAAK,EAC3B,EAAqB,8BAAG,EAAK,EACtB,EAAS,cAAG,EAAE,EAErB,EAAW,oBAAG,EAAK,EACnB,EAAc,uBAAG,IAAI,EACrB,EAAQ,iBAAG,IAAI,EAEX,EAAe,MACnB,EAAgB,EAAG,8BAAgC,2BAA2B,EAE5E,EAAY,OAEZ,wBACA,CAAe,EACf,EAAmB,GAAI,EAAqB,EAAG,4BAA8B,GAC7E,EAAS,GAER,OAAO,OAAO,EACd,KAAK,GAAG,GAET,EAAW,MAAY,EAAc,GAAI,EAAQ,8BAIpD,EAAO,oBAAP,CAAO,YAEH,EAAG,MACD,EAAG,EADL,CAAG,EAED,IADA,EAAG,iBACH,iBAI6C,EAAgB,GAA3D,IAAe,SAAQ,oDAAuC,EAAI,2BAAG,EAAU,OAJjF,KAFF,CAAG,WACD,EAAG,gCAAkC,CAAe,kCACpD,+FAE4C,EAAU,UAJxD,CAAG,WADA,EAAW,iCAYd,EAAG,MACD,EAAG,EADL,CAAG,aACD,SACU,CAAW,QADrB,CAAG,IADL,CAAG,WAAH,EAAG,oCAAsC,CAAe,sCACtD,EAAG,iGADL,CAAG,iCAMK,CAAW,sBAPjB,EAAmB,GAAI,EAAqB,mBAZlD,CAAO,aAAP,EAAO,OAAQ,CAAY,2CAA3B,EAAO,eAAP,CAAO,iCAuBC,CAAW,sBAxBjB,EAAS,2BAFN,CCtCR,IAAa,GAAiB,GAAS,EAAK,EAExC,GAAqC,KAcrC,OAAO,SAAa,KACtB,GAAe,UAbO,GAAoB,CACtC,OAAO,SAAa,MAEpB,KAAwB,OAC1B,GAAsB,SAAS,KAAK,MAAM,UAAY,IAGxD,SAAS,KAAK,UAAU,OAAO,iBAAkB,CAAM,EACvD,SAAS,KAAK,MAAM,SAAW,EAAS,SAAW,GACrD,CAIyC,EAOzC,IAAa,IAAwB,GAC9B,EAIE,IAFY,gBAAgB,EAAO,WAAW,GAAG,EAAI,EAAO,MAAM,CAAC,EAAI,CAEvE,EAAO,IAAI,YAAY,IAAM,OAJhB,GAOT,GAAsB,GAAoB,CACrD,GAAI,OAAO,OAAW,IAAa,OAEnC,IAAM,EAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAErD,EAAQ,EAAO,IAAI,aAAc,MAAM,EACtC,EAAO,OAAO,YAAY,EAE/B,IAAM,EAAa,EAAO,SAAS,EAC7B,EAAU,GAAG,OAAO,SAAS,WAAW,EAAa,IAAI,IAAe,KAAK,OAAO,SAAS,MAAQ,KAC3G,OAAO,QAAQ,aAAa,OAAO,QAAQ,MAAO,SAAS,MAAO,CAAO,CAC3E,mGClDA,yDAcI,EAAU,mBAAG,UAAU,EACvB,EAAS,kBAAG,oBAAoB,EAChC,EAAa,sBAAG,EAAe,EAO3B,EAAiB,GAAoB,CAGrC,IAFY,EAED,IAEf,GAAe,IAAI,CAAM,EACzB,GAAmB,CAAM,EAC3B,EAEM,MAAyB,EAAa,CAAE,EAAe,GAEvD,EAA4B,GAAsC,KAChE,EAAc,GAAU,GACxB,EAAgB,OAAU,GAAgB,SAAW,EAAY,QAAQ,MAAO,EAAE,EAAI,GAEtF,EAAqB,IADR,gBAAgB,CACR,EAAO,IAAI,YAAY,IAAM,OAEpD,IAAuB,GAAI,EAAc,GAC3C,GAAe,IAAI,CAAkB,CAEzC,EAEA,OACsB,EAAa,EAAC,UAAW,GAAU,CACrD,EAAyB,EAAM,MAAM,CACvC,CAEO,CACR,MAEK,EAAY,EAAY,CAAe,EAE7C,OAAgB,CACd,GAAe,IAAI,EAAK,EACxB,GAAmB,EAAK,CAC1B,CAAC,MAGF,wCAOa,CAAY,EAAG,GAAoB,EAAa,EAA3D,GAAI,+CACJ,EAAI,WAAJ,EAAI,MAAJ,CAAI,IARN,kFAE0B,CAAY,MAFtC,mBAIe,CAAY,SAInB,CAAY,EAAG,EAAS,EAAG,EAAU,eAR7C,EAKU,CAAgB,MAL1B,UAFO,swBC3DR,KAMQ,EAAgB,iBAIpB,EAAQ,iBAAG,EAAI,EACf,EAAO,gBAAG,CAAgB,MAW7B,EAAG,gBACD,EAAG,EADL,CAAG,EAEC,EAAG,EADL,CAAG,OACD,sBAAG,UAAH,EAAG,aAED,EAAG,KACD,EAAG,EADL,CAAG,EAEC,EAAK,EADP,CAAG,EAEC,EAAM,EADR,CAAK,EAED,EAAG,EADL,CAAM,EAEF,EAAE,EADJ,CAAG,MACD,EAAE,MAAF,CAAE,UAAF,EAAE,aACkB,EAAC,UAAD,EAAC,MAAD,CAAC,oBAAQ,QAAQ,OAAjB,CAAC,mBAAX,UAAQ,SAFpB,CAAG,MAIH,IAJA,EAAG,GAUiB,KANpB,CAMwB,qBAAO,QAN/B,KALF,CAAM,MAeN,IAfA,EAAM,QAeN,eAMgB,OAAO,IANvB,0BASE,EAAM,WAAN,eAAqD,MAAM,IAA3D,CAAM,MAAN,CAAM,mBADE,QAAM,SAxBlB,CAAK,IADP,CAAG,IADL,CAAG,SAAH,EAAG,OAA6C,EAAQ,IAAxD,EAAG,eAAqE,EAAQ,KAE5E,EAAK,KAAK,EAAO,KAAjB,EAAK,qBAAgC,KAAK,cAG1B,KAAK,IAGjB,0BAEsB,MAAK,eAF3B,qBAGiB,MAAK,eAHtB,kBAIgB,EAAO,KAJvB,kBAKgB,EAAQ,KAK1B,kCAG8B,OAAK,cAbjC,gDARR,CAAG,6BAHP,CAAG,IADL,CAAG,YAAH,EAAG,8DAAkD,KAAI,oBAAzD,CAAG,KAFI,obCpBR,KAqBQ,EAAO,iBA8DL,EAAK,+BAEV,8BASa,CAAO,EAAG,GAAmB,EAAc,EAAtD,GAAI,+CATN,aACY,EAAW,SAAX,CAAW,YADvB,iBAIa,CAAO,EAAG,4BAA8B,8BAA8B,IAJnF,YAKQ,CAAO,EAAG,4BAA8B,8BAA8B,IAL9E,mBAMe,CAAO,eANtB,EAOU,CAAW,MAPrB,YADG,EAAU,kBA3Ed,EAAK,cAAG,IAAI,EAIZ,EAAU,mBAAG,EAAK,EAWd,EAAiB,OAAc,EAAK,GACpC,EAAW,MAAY,EAAK,IAAK,EAAiB,KAAO,EAAK,GAChE,EAAU,EAAO,EAAK,EACtB,EAAc,EAAO,EAAI,EACzB,EAAO,EAAM,QACb,EAAc,EAAM,QAClB,EAAM,QAAY,CAAO,GAAI,EAAU,GAE7C,OAAc,GACP,CAAM,KAEX,IACI,iBAA8B,kCAAkC,EACjE,QAAS,GAAU,EAAM,YAAW,EACzC,CAAC,iBAEc,GAAc,GAC3B,EAAc,UACR,GAAI,MACJ,EAAY,EAAG,CAAI,GAAE,cAAa,QAAsB,EAAO,KACrE,GAAc,MAAK,CAAG,cAAe,EAAI,GACzC,GAAc,iBAAc,CAAK,MAAO,SAAS,EACnD,gBACe,GAAe,GAC5B,EAAc,UACR,GAAI,IACV,CAAI,GAAE,cAA2B,+BAA+B,GAAG,MAAK,CAC1E,UACS,GAAc,GACrB,EAAO,GAAI,MACX,CAAW,GAAE,MAAK,CAAG,cAAe,EAAI,EAC1C,UACS,EAAY,EAAsB,IACpC,CAAO,GAAI,EAAM,MAAQ,UAAY,EAAM,mBAEjC,EAAM,kBAAkB,QAAU,EAAM,OAAS,OAGtD,QACN,sGAAsG,GAMxG,SAAS,cACP,4EAA4E,IAKhF,EAAM,eAAc,IACpB,EAAU,MACV,CAAW,GAAE,MAAK,CAAG,cAAe,EAAI,GAC1C,KAqBD,EAAG,sBAlBsB,CAAW,MAoBlC,EAAG,EAFL,CAAG,YAGC,EAAG,EADL,CAAG,OACD,sBAEG,iBAAgB,EAAE,CAAW,GAAI,KACjC,YAAW,EAAX,CAAW,EACX,eAAgB,EAChB,cAAe,OALlB,CAAG,IADL,CAAG,MAUH,EAAG,EAVH,EAAG,QAUH,wBAA0D,CAAK,IAA/D,CAAG,MACH,EAAG,EADH,EAAG,OACH,CAAG,iBAIU,CAAW,MAAK,CAAM,GAHjC,4BACQ,CAAW,wBACjB,uCAEQ,uBAER,EAAG,WAAH,sBAAG,MAAH,CAAG,4BAPP,CAAG,IAbL,CAAG,KAAH,EAAG,KAAkC,EAAI,SAAJ,CAAI,cAEvC,EAAG,4DAAgD,CAAM,IAAzD,EAAG,QAA+D,CAAM,IAAxE,EAAG,gBAAoF,CAAM,SAF/F,CAAG,KApBI,wqDC/ER,aAiBI,EAAO,gBAAG,EAAK,EACf,EAAO,yBAOP,EAAgB,yBAAG,EAAK,EACxB,EAAW,oBAAG,EAAK,EAGnB,EAAO,gBAAG,MAAM,EAChB,EAAY,0BAAG,EAAO,IAAK,UAAY,EAAI,CAAC,EAsBxC,EAAM,qBAAyB,OAAO,OAAQ,GAAU,EAAM,MAAM,KAAI,EAAG,OAAS,CAAC,GAErF,EAAY,EACd,MAAO,OAAQ,MAAO,OAAO,GAC7B,MAAO,OAAQ,MAAO,OAAO,GAC7B,MAAO,OAAQ,MAAO,MAAM,GAC5B,MAAO,OAAQ,MAAO,MAAM,YAGvB,GAAW,oBAGlB,GAAc,mBACZ,QAAO,mBACP,SAAQ,qBAAuB,QAEnC,KAGD,mCAMyB,EAAG,WAAH,+BAAG,MAAH,CAAG,2CAC1B,EAAG,OACD,KADF,CACM,oCAAoB,0BAD1B,CAAG,MAGH,EAAG,EAHH,EAAG,OAGH,CAAG,eACwB,EAAY,2HAEnC,EAAI,UAAJ,EAAI,MAAJ,CAAI,WAAJ,EAAI,2BAAuD,OAAO,MAAQ,SAAS,qBACpE,OAAO,KAAK,QAD3B,CAAI,YADD,EAAO,kBAAiB,QAAQ,OAAK,SAF5C,CAAG,MAQH,EAAG,EARH,EAAG,OAQH,CAAG,YAEC,QAME,KANF,CAMM,qBAAO,wBANb,yCAG4B,cAAc,aAH1C,EAIU,CAAQ,MAJlB,6DAUA,QAO0B,KAP1B,CAO8B,qBAAO,wBAPrC,4HADE,EAAgB,IAAK,EAAW,6BAYlC,GAAO,gDAAkC,EAAO,GACrC,eAAc,IAAI,GAAI,qBAAO,+DAFrC,EAAO,GAAI,EAAO,EAAC,QAAM,SAtBhC,CAAG,UAAH,EAAG,aA6BD,EAAC,UAAD,EAAC,MAAD,CAAC,2BAA+C,QAAQ,OAAxD,CAAC,YADE,EAAO,kBAAiB,UAAQ,+BAInC,EAAG,SAAH,EAAG,OACK,EAAY,MAAI,IAAW,KAC/B,EAAG,MACD,EAAI,EADN,CAAG,YAED,IADA,EAAI,WADN,CAAG,cACD,EAAI,cAAiD,CAAW,EAAC,KAAK,QACtE,gBAEc,CAAW,EAAC,KAAK,SAJjC,CAAG,MAFP,CAAG,MAAH,CAAG,cAYH,EAAE,SAAF,EAAE,SACM,CAAM,EAAI,GAAO,EAAM,IAAE,EAAf,IAAK,KACnB,EAAG,gBACD,IADF,CAAG,MACD,SACmB,GAAI,uBAAO,CAAK,EAAC,+BAA7B,CAAK,EAAC,MAAI,WAA6C,EAAI,SAAJ,EAAI,MAAJ,CAAI,IADlE,OAIA,EAAE,EAJF,KAME,IAFF,CAAE,MAEA,oBAMyB,EAAI,UAAJ,EAAI,MAAJ,CAAI,cACtB,CAAK,EAAC,WAAW,OADC,CAAI,aAAvB,CAAK,EAAC,aAAW,SANvB,+BAGc,CAAK,EAAC,QAAO,CAAK,QAAO,EAAE,CAAK,EAAC,OAAO,EAAK,EAAK,UAHhE,eAWE,EAAI,WAAJ,4BAAgE,CAAK,KAArE,CAAI,MAAJ,CAAI,WADF,EAAO,IAAK,WAAS,yBAZ3B,CAAE,IALJ,CAAG,YAAH,EAAG,uDAEmE,CAAK,EAAC,KAAK,IAK7E,eAEW,CAAK,EAAC,QAAU,EAAI,MAAS,WAGtC,CAAK,EAAC,OAAK,2BAZgC,EAAO,EAAC,CAAK,EAAC,IAAI,SAAnE,CAAG,MAFP,CAAE,MAAF,CAAE,WAbA,EAAO,UAYF,CAAM,EAAC,QAAM,kCA4BC,EAAG,WAAH,+BAAG,MAAH,CAAG,0CAzF5B,kFAE+B,EAAO,IAAK,SAAS,KAFpD,cAIY,EAAO,GAAI,MAAS,QAJhC,MAFO,eCbR,IAAM,GAAgB,OAAO,cAAc,EACrC,GAAkB,OAAO,gBAAgB,EACzC,GAA2B,OAAO,yBAAyB,EAIpD,IAA6B,GACxC,GAAW,GAA0B,CAAK,EAC/B,QACX,GAA2C,EAAwB,EAGrE,SAAS,IAAuB,CAC9B,IAAM,EAAQ,GAAmB,IAAI,EACjC,EAA6B,KAEjC,MAAO,CACL,UAAW,EAAM,UACjB,SAAS,EAAe,EAAU,CAIhC,MAHA,GAAc,EACd,EAAM,IAAI,CAAK,MAEF,CACP,IAAgB,IAEpB,EAAc,KACd,EAAM,IAAI,IAAI,EAChB,CACF,CACF,CACF,CAEA,SAAgB,IAAsB,MAA6C,OAAW,CAC5F,MAAO,CACL,UAAW,GAA4C,EACvD,KAAM,GAAuC,EAC7C,QAAS,GAAoC,EAC7C,aAAc,GAA+C,EAC7D,IAAI,QAAS,CACX,OAAO,EAAU,CACnB,CACF,CACF,CAGA,IAAa,IAAmB,GAA6B,GAAW,GAAe,CAAO,EACjF,OAAoB,GAAwC,EAAa,EACzE,IAAqB,GAChC,GAAW,GAAiB,CAAS,EAC1B,QAAsB,GAAiD,EAAe,EC9D7F,IAAgD,CACpD,gBAAiB,sBACjB,aAAc,6BACd,cAAe,8BACf,gBAAiB,wBACnB,EAEM,IAAsD,CAC1D,gBAAiB,MACjB,aAAc,aACd,cAAe,cACf,gBAAiB,QACnB,EAEM,GAAmB,GAAoD,CAC3E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,OAAO,KAErB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,EAAQ,SAAS,KAAK,EAAI,EAAU,WAAW,GAAS,EAK5E,MAJA,GAAI,SAAW,IACf,EAAI,OAAS,GACb,EAAI,KAAO,GAEJ,EAAI,MACb,MAAQ,CACN,OAAO,EAAQ,QAAQ,OAAQ,EAAE,CACnC,CACF,EAEM,IAAoB,CACxB,gBACA,iBACA,aACA,cACA,cACA,eACA,gBACA,gBACA,QACF,EAEM,KAAmB,EAAkB,IAAmC,CAC5E,IAAM,EAAc,IAAoB,GACxC,IAAK,IAAM,KAAS,IAClB,GAAI,EAAS,SAAS,CAAK,EACzB,OAAO,EAAS,QAAQ,EAAO,CAAW,EAI9C,GAAI,IAAa,YACf,MAAO,GAAG,EAAY,YAGxB,GAAI,EAAS,SAAS,YAAY,EAAG,CACnC,IAAM,EAAQ,EAAS,MAAM,GAAG,EAGhC,MAFA,GAAM,GAAK,EAEJ,EAAM,KAAK,GAAG,CACvB,CAEA,IAAM,EAAS,EAAS,MAAM,GAAG,EAQjC,OANI,EAAO,OAAS,GAClB,EAAO,GAAK,EAEL,EAAO,OAAO,OAAO,EAAE,KAAK,GAAG,GAGjC,CACT,EAEM,KACJ,EACA,EACA,IACkB,CAClB,IAAM,EAAW,GAAgB,IAAU,IAAW,IAAI,EAE1D,GAAI,EAAU,OAAO,EAErB,IAAM,EAAO,GACX,IAAkB,OAAO,OAAW,IAAc,OAAO,SAAS,OAAS,KAC7E,EAEA,GAAI,EACF,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAI,EAGxB,MAFA,GAAI,SAAW,IAAgB,EAAI,SAAU,CAAM,EAE5C,EAAI,MACb,MAAQ,CACN,OAAO,CACT,CAGF,OAAO,GAAgB,IAAc,EAAO,CAC9C,EAEM,KAAsB,EAAuB,IAAyB,CAC1E,IAAM,EAAiB,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,IAIzD,OAFK,EAEE,GAAG,EAAO,QAAQ,OAAQ,EAAE,IAAI,IAFnB,CAGtB,EAEM,IAAqB,GAAoD,CAC7E,GAAI,CAAC,EAAO,OAAO,KAEnB,GAAI,CACF,OAAO,mBAAmB,CAAK,CACjC,MAAQ,CACN,OAAO,CACT,CACF,EAEM,QACA,OAAO,OAAW,IAAoB,KAInC,KAFQ,OAAO,SAAS,UAAY,IAAI,MAAM,4BAE5B,IAAQ,IAAM,IAAI,EAGvC,IAAoC,IACtB,GAAS,IAAI,KAE3B,GAEG,IAA6B,EAGhC,GAA+C,CACnD,gBAAiB,gBACjB,aAAc,aACd,cAAe,cACf,gBAAiB,oBACnB,EAEM,KAA4B,EAAuB,IAA0C,CACjG,IAAM,EAAa,CAAC,EAAQ,CAAc,EAC1C,IAAK,IAAM,KAAa,EACjB,KAEL,GAAI,CACF,IAAM,EAAW,IAAI,IAAI,CAAS,EAAE,SAAS,YAAY,EAEzD,GAAI,EAAS,SAAS,WAAW,EAAG,MAAO,mBAE3C,GAAI,EAAS,SAAS,WAAW,GAAK,EAAS,SAAS,YAAY,EAClE,MAAO,mBAET,GAAI,EAAS,SAAS,aAAa,EAAG,MAAO,oBAC/C,MAAQ,CACN,QACF,CAGF,OAAO,GAAa,gBACtB,EAEM,IAAwB,GAA6B,CACzD,GAAI,IAAa,gBAAiB,OAAO,EAEzC,GAAI,EAAS,SAAS,YAAY,EAAG,CACnC,IAAM,EAAS,EAAS,MAAM,GAAG,EAGjC,MAFA,GAAO,GAAK,MAEL,EAAO,KAAK,GAAG,CACxB,CAEA,IAAM,EAAS,EAAS,MAAM,GAAG,EAQjC,OANI,EAAO,OAAS,GAClB,EAAO,GAAK,MAEL,EAAO,OAAO,OAAO,EAAE,KAAK,GAAG,GAGjC,EAAS,SAAS,MAAM,EAAI,EAAW,OAAO,GACvD,EAEM,IAAkB,GAA6C,CACnE,GAAI,CAAC,EAAY,OAAO,KAExB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAU,EAG9B,MAFA,GAAI,SAAW,IAAqB,EAAI,QAAQ,EAEzC,EAAI,MACb,MAAQ,CACN,OAAO,IACT,CACF,EAEM,IAA6B,8BAE7B,KACJ,EACA,IACkB,CAClB,IAAM,EAAW,GAAgB,IAAU,kBAAoB,IAAI,EAEnE,GAAI,EAAU,OAAO,EAErB,IAAM,EAAO,GACX,IAAkB,OAAO,OAAW,IAAc,OAAO,SAAS,OAAS,KAC7E,EAEA,GAAI,EAAM,CACR,IAAM,EAAY,IAAe,CAAI,EAErC,GAAI,EAAW,OAAO,CACxB,CAEA,OAAO,GAAgB,GAA0B,CACnD,EAYa,KAAsB,CACjC,aAAa,KACb,YAAY,KACZ,cAAc,KACd,UAAU,KACV,aAAa,KACb,SAAS,KACT,mBAAmB,QAC4B,CAC/C,IAAM,EAAoB,GAAa,GAAe,KAChD,EAA4B,IAAiC,CAAgB,EAC7E,EAAsD,CAC1D,gBAAiB,IACjB,aAAc,YACd,cAAe,IACf,gBAAiB,GACnB,EACM,EAAsB,GAAwB,CAClD,GAAI,IAAQ,gBAAiB,CAC3B,IAAM,EAAS,IAAI,gBAEf,GAA2B,EAAO,IAAI,eAAgB,CAAyB,EAE/E,GAAmB,EAAO,IAAI,UAAW,CAAiB,EAE9D,IAAM,EAAa,EAAO,SAAS,EAEnC,OAAO,EAAa,KAAK,IAAe,GAC1C,CAcA,OAZI,EACK,aAAa,mBAAmB,CAAiB,IAGtD,IAAQ,cACN,EACK,kBAAkB,mBAAmB,CAAyB,IAGhE,IAGF,EAAoB,EAC7B,EACM,EACJ,IAAe,OAAO,OAAW,IAAc,OAAO,SAAS,OAAS,WAC3C,CAC7B,GAAI,CACF,OAAO,EACH,IAAI,IAAI,CAAa,EAAE,SACvB,OAAO,OAAW,IAChB,OAAO,SAAS,SAChB,IACR,MAAQ,CACN,OAAO,IACT,CACF,GAAG,EACH,IAAM,EAAkB,EACpB,EACE,kBAAkB,mBAAmB,CAAyB,EAAE,SAAS,mBAAmB,CAAM,EAAE,UACpG,UAAU,mBAAmB,CAAM,EAAE,UACvC,KAEJ,OAAQ,OAAO,KAAK,EAAY,EAAuB,IAAK,GAAQ,CAClE,IAAM,EACJ,IAAQ,gBACJ,IAAwB,EAAS,CAAa,EAC9C,IAAmB,EAAK,EAAS,CAAa,EAC9C,EAAc,EAAmB,CAAG,EACpC,EAAW,IAAe,EAC1B,EAAiB,IAAQ,iBAAmB,GAAY,EAAQ,EAChE,EAAO,IACX,EACA,GAAkB,EAAkB,EAAkB,CACxD,EACM,EACJ,IAAQ,gBAAkB,IAAyB,EAAQ,CAAa,EAAI,GAAa,GACrF,EAAQ,EAAiB,sBAAwB,EAAW,YAAc,EAC1E,EACJ,OAAO,OAAW,KAAe,EAC7B,CAAC,EAAO,SAAS,OAAO,SAAS,QAAQ,EACzC,GAAQ,GAAU,IAAW,GAEnC,MAAO,CACL,MACA,QACA,OACA,OAAQ,QACR,YAAa,EAAW,EAAmB,KAC3C,WACA,YACF,CACF,CAAC,CACH,ECjWa,GAAsB,GAAiC,CALlE,MAAO,CAAC,EACR,KAAM,IACN,OAAQ,EAG0D,CAAY,ECe1E,GAAqB,IAAI,QAKlB,KACX,EACA,IAC0C,CAC1C,IAAM,EACJ,OAAO,GAAgB,WAAa,MAAoB,EAG1D,OAAS,GACN,EACC,EACA,CACF,EACJ,EAMa,KACX,EACA,IAC0C,CAC1C,IAAI,EAAW,GAAmB,IAAI,CAAO,EAExC,IACH,EAAW,IAAI,IACf,GAAmB,IAAI,EAAS,CAAQ,GAG1C,IAAM,EAAW,EAAS,IAAI,CAAK,EAEnC,GAAI,EAAU,OAAO,EAErB,IAAM,EAAU,IAAY,EAAS,CAAK,EAG1C,OAFA,EAAS,IAAI,EAAO,CAAO,EAEpB,CACT,EAEa,KACX,EACA,IAEA,EAAK,IAAK,IAAS,CACjB,GAAG,EACH,QAAS,IAAgB,EAAS,EAAI,EAAE,CAC1C,EAAE,EAES,KAA+D,CAC1E,OACA,UACA,QACA,kBAM4E,CAC5E,IAAM,EAAO,EAAK,YAAY,CAAK,EAInC,GAFI,CAAC,GAED,EAAK,SAAW,CAAC,EAAK,QAAQ,EAAc,CAAO,EAAG,OAAO,KAEjE,IAAM,EAAsE,CAC1E,UACA,QACA,cACF,EACM,EACJ,GAEA,OAAO,GAAU,WACZ,EAA6E,CAAY,EAC1F,EAEA,EAAO,EAAK,QAAQ,CAAO,EAIjC,OAFK,EAAK,OAEH,CACL,GAAI,EAAK,GACT,MAAO,EAAa,EAAK,KAAK,GAAK,GACnC,OACA,KAAM,EAAa,EAAK,IAAI,EAC5B,QAAS,EAAa,EAAK,OAAO,EAClC,UAAW,EAAa,EAAK,SAAS,EACtC,OAAQ,EAAa,EAAK,MAAM,EAChC,MACF,EAXyB,IAY3B,EAEa,IAA6D,GAMxC,CAChC,IAAM,EAAQ,IAAiB,CAAI,EAEnC,OAAO,EAAQ,CAAE,GAAG,EAAO,KAAM,IAAe,EAAM,MAAQ,CAAC,EAAG,EAAK,OAAO,CAAE,EAAI,IACtF,EAEa,IAAkE,CAC7E,QACA,UACA,QACA,eACA,cAQA,EACG,IAAK,GAAS,CACb,IAAM,EAAU,EAAS,EAAK,IAI9B,OAFK,EAEE,IAAe,CACpB,OACA,UACA,QACA,eACA,SACF,CAAC,EARoB,IASvB,CAAC,EACA,OAAQ,GAAwC,EAAQ,CAAM,63CCnKnE,wHAyiBU,EAAW,mDAEX,EAAgB,8BAAU,EAAa,8BAD1C,EAAa,kBAKV,EAAO,QACd,EAAG,oBAAH,CAAG,YAEC,EAAG,SAAH,EAAG,SACK,EAAe,EAAI,GAAM,EAAK,IAAE,EAAb,IAAI,KAC3B,qBAQiB,GAAI,uBAAO,CAAI,EAAC,iCAA3B,CAAI,EAAC,MAAI,WAA8C,EAAI,SAAJ,EAAI,MAAJ,CAAI,IARjE,uCAEO,CAAI,EAAC,IAAI,IAFhB,0BAQmE,CAAI,EAAC,KAAK,UAL9D,CAAI,EAAC,MAAE,EAAM,EAAU,GAAE,IAAE,EAAI,EAAU,GAAE,OACzD,GAAc,EAAC,CAAI,EAAC,IAAI,EAAE,OAAS,GAAc,EAAC,EAAU,GAAE,IAAI,EAAE,KAChE,OACA,aANL,OAFJ,CAAG,MAAH,CAAG,aADD,EAAmB,cAiBvB,SAME,IANF,SAWY,IALV,CAKqB,KALrB,KANF,KAlBF,CAAG,aAAH,EAAG,sEAAuD,EAAmB,MAkB3E,wBAEsB,SAAW,MAAS,IAF1C,8BAG4B,kBAAoB,MAAS,IAHzD,4BAI0B,EAAI,MAAS,MAErC,oDAEc,EAAe,IAAK,SAAO,GAAK,EAAY,MAF1D,kBAGc,EAAmB,GAAI,MAAS,QA3BlD,CAAG,GAmCI,GAAY,EAAC,EAAoC,kCAKhC,OAAO,EAJ/B,6BACE,EAAK,4CACsB,4CACL,yKAItB,EAAe,iCACf,EAAgB,kCAChB,EAAiB,iCACjB,EAAgB,IACb,MAIE,GAAgB,EAAC,EAAc,SAC7B,EAAe,6BACC,GAAgB,8BAAE,EAAa,gBAAlD,EAAiB,oBACb,CAAK,qCAGb,wCAQW,EAAY,OAAQ,EAAS,WAG7B,EAAM,KAAM,EAAM,SAAU,MAAS,EAL9C,sEAGE,EAAa,8BACD,EAAc,gDAEpB,OAZV,uFAE8B,EAAmB,SAFjD,cAgBA,EAAG,MACQ,IADX,CAC0B,KAD1B,CAAG,MAAH,CAAG,aAjBD,EAAQ,yBAniBX,EAAK,cAAG,EAAE,EACV,EAAQ,iBAAG,EAAE,EACb,EAAc,gCAGd,EAAU,mBAAG,EAAE,EACf,EAAa,sBAAG,EAAe,EAI/B,EAAyB,kCAAG,EAAK,EACjC,EAAmC,4CAAG,EAAK,EAC3C,EAAe,wBAAG,EAAE,EACpB,EAAgB,yBAAG,MAAS,EAC5B,EAAiB,0BAAG,IAAI,EACxB,EAAgB,yBAAG,EAAE,EACrB,EAAM,eAAG,EAAE,EAGP,EAAW,GAAW,EACtB,EAAe,GAAU,cAAgB,GAA6C,IAAI,EAC1F,EAAa,IAAa,EAC1B,EAAoB,OAAO,eAAe,EAC1C,EAAO,MAAY,IAAU,GAC7B,EAAM,QAAa,CAAO,EAAsB,OAAnB,GAAU,MAAkB,EAEzD,EAAmB,GAAgC,OAChD,GAAU,SAAW,EAAM,QAAQ,MAAO,EAAE,EAAI,GAEnD,GAAkB,GAAqC,KACrD,EAAG,OAAU,GAAU,SAAW,EAAQ,GAC1C,EAAY,EAAI,QAAQ,GAAG,EAC3B,EAAU,IAAS,GACnB,EAAO,EAAU,EAAI,MAAM,CAAS,EAAI,GACxC,EAAc,EAAU,EAAI,MAAM,EAAG,CAAS,EAAI,EAElD,EAAa,EAAY,QAAQ,GAAG,EACpC,EAAW,IAAU,GACrB,EAAS,EAAW,EAAY,MAAM,CAAU,EAAI,UAGjD,MAFI,EAAW,EAAY,MAAM,EAAG,CAAU,EAAI,IAEpC,IAAK,SAAQ,MAAI,CAC1C,EAEM,IAAiB,GAAO,IAA+C,KACrE,EAAM,IAAO,uBACnB,EAAS,QAAS,GAAU,KACpB,EAAa,EAAgB,CAAK,EAEnC,GAGL,IADmB,gBAAgB,CACnC,EAAO,SAAS,EAAO,IAAQ,CAC7B,EAAO,IAAI,EAAK,CAAK,CACvB,CAAC,CACH,CAAC,EAEM,CACT,EAEM,GAAmB,GACvB,IAAoC,CAAM,WAEnC,GAAuB,EAA8B,EAA8B,KACrF,EAAM,OAAM,MAAS,OAEpB,EAAc,GAAe,MAAQ,IACvC,EAAY,EACZ,EAAe,UAEnB,EAAM,SAAS,EAAM,IAAU,KACvB,EAAiB,GAAe,GAAM,IAAI,EAAE,SAE7C,EAAc,WAEb,EAAa,IAAgB,EAC7B,EAAc,EAAY,SAAS,CAAc,GAEnD,GAAc,IACZ,EAAe,OAAS,IAC1B,EAAY,EACZ,EAAkB,EAAe,gBAI1B,KAAO,EAAK,MAAI,GAAQ,WACtB,EAAI,MAAS,UAAQ,CAAK,EAAI,KAAK,KAAI,eAE5C,EAAU,GAAe,EAAI,IAAI,EAAE,KACnC,EAAe,EAAQ,SAAS,GAAG,EAAI,EAAO,GAAM,EAAO,IAG9D,IAAgB,GAAW,EAAY,WAAW,CAAY,IAC/D,EAAQ,OAAS,IAEjB,EAAY,EACZ,EAAkB,EAAQ,OAE9B,CACF,CAAC,EAEM,CACT,UAES,GACP,EACA,EACA,EACA,EACA,KACK,EAAK,OAAM,MAAS,MAEE,EAAK,KAC7B,GAAG,OAAY,EAAI,MAAS,UAAY,EAAI,KAAK,KAAI,EAAG,MAGvD,EAAoB,KAClB,EAAY,EACZ,EAAe,MAEnB,EAAK,SAAS,EAAK,IAAU,KACrB,EAAa,OACV,EAAI,MAAS,UAAY,EAAI,KAAK,KAAI,EAAG,OAC5C,GAAe,EAAI,IAAI,EAAE,KACzB,GAAe,GAAgB,EAAM,EAAO,CAAM,GAAG,SAEtD,EAAa,WAEZ,EAAa,IAAS,EACtB,EAAc,EAAK,WACvB,EAAc,SAAS,GAAG,EAAI,EAAa,GAAM,EAAa,OAG5D,GAAc,EAAa,KACvB,EAAc,EAAc,OAE9B,EAAc,IAChB,EAAY,EACZ,EAAkB,EAEtB,CACF,CAAC,EAEG,GAAmB,SACd,CAEX,KAEM,EAAM,IAAO,gBAAgB,EAAgB,CAAM,GACnD,EAAY,OAAO,EAAO,IAAI,KAAK,UAErC,OAAO,UAAU,CAAS,GAAK,GAAa,GAAK,EAAY,EAAK,OAC7D,EAGF,CACT,KAEM,GAA0B,GAC9B,IAAU,SAAW,IAAU,UAAY,IAAU,QAEjD,IACJ,EACA,EACA,IACyB,KACnB,EAAY,EAAK,OAAU,EAAK,IAAW,WAAa,GAAM,UAAa,GAAM,iBAEhF,GAAuB,CAAS,EAAI,EAAY,QACzD,EAEM,IACJ,EACA,EACA,IACG,KACK,OAAQ,GAAe,GAAe,GAAM,IAAI,EAClD,EAAS,GAAkB,EAAY,GAAgB,CAAa,GACpE,EAAW,GAAM,MAAM,QAAU,KACf,EAAW,GAEhB,OAAW,GAAa,SAAU,KAC7C,EAAW,KAAK,IAAI,EAAG,EAAW,CAAC,EACnC,EAAY,KAAK,IAAI,EAAU,CAAQ,EAC7C,EAAO,IAAI,MAAO,OAAO,CAAS,EACpC,MACE,EAAO,OAAO,KAAK,MAGf,EAAa,EAAO,SAAQ,SAE3B,EAAU,IAAO,IAAe,EACzC,EAEM,IAA6B,EAAgB,IAA6C,KACtF,KAAM,EAAU,OAAQ,EAAc,QAAS,GAAe,CAAM,EAEtE,EADS,GAAkB,EAAc,GAAgB,CAAa,CACzD,EAAO,SAAQ,WAExB,IAAW,EAAU,IAAO,IAAe,KAAK,GAAQ,IACpE,EAEM,IACJ,EACA,EACA,IACG,KACE,EAAI,MAAS,OAEV,KAAM,EAAU,QAAS,GAAe,EAAK,IAAI,WAG/C,IAFY,GAAmB,EAAM,EAAU,CAEpC,IAAgB,GAAQ,IAC/C,EAEM,IACJ,EACA,EACA,KAEK,GAAI,CAAK,EAAK,OAAM,GAElB,EAAK,KAAK,EAAK,KAAK,CACzB,MAAO,EAAI,MACX,QAAS,EAAI,QACb,OAAQ,EAAI,OACZ,KAAI,OACK,EAAI,MAAS,UAAY,EAAI,KAAK,KAAI,EAAG,OAC5C,GAA0B,EAAI,KAAM,CAAM,EAC1C,GAAgB,EAAM,EAAO,CAAM,KAIvC,IAAe,EAA2B,IAAkB,KAC1D,EAAa,IAAK,EAAK,EAAe,IAAG,EAAc,EAAG,EAC1D,EAAM,GAAM,OAAO,UAErB,GAAG,OAAW,EAAI,MAAS,UAAY,EAAI,KAAK,KAAI,EAAG,OAClD,GAA0B,EAAI,KAAM,EAAc,EAAC,MAAM,EAG3D,GAAgB,EAAM,EAAY,EAAc,EAAC,MAAM,CAChE,EAEM,IAAsB,EAAmB,EAA2B,IAAkB,CAC1F,EAAM,eAAc,CACtB,EAEM,IAAiB,EAAkC,WAC5C,GAAU,UAAQ,CAAK,EAAM,KAAI,EAAW,EAEhD,GAAe,CAAK,EAAE,MAAQ,EAGjC,GAAe,MACnB,MAAM,QAAQ,EAAc,GAAI,EAAc,EAAC,OAAO,OAAO,MAE3D,GAAe,EAAM,GAAC,GAAwB,MAAM,IAClD,GAAe,MAAY,GAAuB,EAAc,IAAE,EAAe,IACjF,GAAU,QAAY,EAAe,IAAC,EAAe,MAAK,EAAe,EAAC,EAAC,EAC3E,GAAe,QAAY,EAAU,GAAE,eAAe,EACtD,GAAQ,QAAY,EAAe,GAAE,QAAK,EAAK,CAAO,EAAG,EAAK,EAAG,GAAE,EACnE,GAAe,QACnB,KACI,EAAe,EAAC,KAAK,EAAM,KAAK,CAC9B,GAAI,EAAK,IAAM,EAAK,KACpB,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,KAAM,GAAY,EAAM,CAAK,OAE9B,EAAe,GAAE,iBAAe,IAEjC,GAAU,QAAY,EAAU,GAAE,MAAI,IACtC,GAAc,MAClB,GAAqB,EAAC,EAAU,IAAE,EAAU,EAAE,EAAc,EAAC,KAAM,EAAc,EAAC,MAAM,GAEpF,GAAS,MAAY,GAAc,EAAC,EAAU,IAAE,EAAU,EAAE,EAAc,EAAC,MAAM,GACjF,GAAQ,QAAY,EAAU,EAAC,OAAS,CAAC,EACzC,GAAe,MAAY,GAAsB,EAAC,EAAU,IAAE,EAAU,IAAE,EAAc,IACxF,GAAa,SAChB,EAAU,EAAC,SAAS,EAAU,IAAC,EAAc,IAAG,UAAU,EAAU,GAAE,UAAY,IAAI,EAEnF,GAAmB,SAEpB,EAAU,EAAC,SAAS,EAAU,IAAC,EAAc,IAAG,SAAS,EAAU,GAAE,UACrE,EAAM,KAAM,EAAM,YAAa,GAAE,EAGhC,GAAgB,MAAqB,KACnC,EAAO,EACX,EAAU,GAAE,YAAc,GAAa,EAAC,EAAU,GAAE,KAAI,UAAU,EAAe,KAC7E,EAAM,EACV,EAAU,EAAC,OAAS,IACf,EAAU,IAAC,EAAc,IAAG,YAC7B,GAAa,EAAC,EAAU,IAAC,EAAc,IAAG,KAAI,SAAS,EAAc,KACrE,sCAEgB,EAAO,IAAK,GACpC,CAAC,EAEK,IAAY,GAAO,IACJ,EAChB,IAAK,GAAI,OAAa,GAAS,SAAW,EAAK,KAAI,EAAK,EAAE,EAC1D,OAAQ,GAAyB,EAAQ,CAC7B,EAAW,QAAQ,EAAM,EAAO,IAAU,EAAM,QAAQ,CAAI,IAAM,CAE1E,EAAO,KAAK,KAAK,EAGtB,GAA0C,EAAO,IAAI,EACrD,GAAgC,EAAM,QACtC,GAAkD,KAEhD,IAAyB,EAAiB,IAC9C,EAAK,SAAW,EAAM,QAAU,EAAK,OAAO,EAAO,IAAU,IAAU,EAAM,EAAK,EAE9E,OAAiC,MACjC,EAAY,KAAI,EAAY,EAAE,GAC5B,EAAkB,EAAC,QAAM,EAAE,GAAkB,aAGnD,OAEK,EAAc,EAAE,GACf,EAAkB,EAAC,QAAM,EAAE,GAAkB,aAGnD,KAKM,EAAO,MAFR,EAAc,EAAC,iBAAoC,wBAAwB,CAEnE,EAAQ,IAAK,GAAW,KAC7B,EAAQ,EAAO,cAA2B,QAAQ,SAEnD,EAEE,EAAM,YAAc,EAAM,YAFd,EAGrB,CAAC,EAEI,GAAqB,EAAC,EAAkB,EAAE,CAAI,KACjD,GAAqB,KAEzB,EAEM,OAAyC,QAClC,sBAA0B,KAErC,sBAAsB,EAAwB,CAChD,EAEA,OAAc,aACD,eAAmB,KAAW,GAAK,EAAc,KAAI,EAAY,KAAI,EAAY,UAG5F,IAA0B,WAAU,EACpC,GAAwB,IAAO,eAAe,EAAgC,EAC9E,GAAyB,QAAO,EAAC,EAAc,OAElC,CACX,IAA0B,WAAU,EACpC,GAA2B,IAC7B,CACF,CAAC,EAED,OAAc,aACD,OAAW,YAEtB,GAAgC,EAChC,OAAO,iBAAiB,SAAU,EAAgC,MAErD,OAAO,oBAAoB,SAAU,EAAgC,CACpF,CAAC,EAED,OAAc,GACZ,MACA,MACA,MACA,IACA,GAAgC,CAClC,CAAC,MAEK,GAAa,MAAqB,KAChC,EAAQ,EAAG,EAAU,IAAC,EAAc,IAAG,MACvC,EAAS,EAAG,EAAU,GAAE,aACb,GAAa,EAAU,EAAW,EAAK,CAEjD,GAAY,GAAa,EAAK,GAAI,GAAY,EACvD,CAAC,EAEK,GAAiB,MAAY,EAAQ,EAAyB,GAC9D,GAAY,QAAY,EAAiB,GAAI,EAAe,GAC5D,GAAmB,QAAY,EAAe,EAAC,OAAS,GAAC,GAAK,EAAY,GAC1E,GAAqB,MACzB,GACE,EAAmC,KACnC,EAAe,EAAC,QAAU,GAAC,EAC3B,EAAQ,MACP,EAAY,IAGX,GAAc,QAAY,EAAY,EAAG,GAAkB,EAAc,EACzE,GAAc,QAAY,EAAY,EAAG,wBAA0B,uBAAuB,EAC1F,GAAoB,QAAY,EAAY,EAAG,aAAe,YAAY,EAE1E,OAAyB,GAC7B,GAAY,GAAI,KAEhB,GAAyB,OAAM,EAAE,EAAY,EAC/C,EAEA,OAAc,CACR,GAEJ,GAAoB,IAAG,CACrB,MAAK,EAAE,EAAe,EACtB,KAAM,EAAc,GAAE,MAAQ,IAC9B,OAAQ,EAAc,GAAE,QAAU,IAEtC,CAAC,EAED,OAAgB,CACV,GAEJ,GAAoB,IAAG,CAAG,MAAK,GAAM,KAAM,IAAK,OAAQ,EAAE,EAC5D,CAAC,EAED,OAAc,OACP,GAAQ,EAAI,CAAO,UAEjB,EAAS,UAAU,SAAS,EAAiB,CAClD,QAAK,EACL,MAAK,uBACkB,OAAK,EAC1B,EAAe,EAAC,KAAK,EAAM,KAAK,CAC9B,GAAI,EAAK,IAAM,EAAK,KACpB,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,KAAM,GAAY,EAAM,CAAK,KAEjC,YAAW,uBAAuB,aAEtC,CAAC,EAED,OAAc,KACP,GAAQ,EAAI,CAAM,aAEjB,EAAM,EACV,CAAO,GAAE,cAAY,EACrB,EAAe,GAAE,cAAY,EAC7B,EAAU,GAAE,IAAE,EACd,EAAU,GAAE,MACZ,UAEK,EAAS,KAAK,SAAS,EAAiB,CAC7C,MAAK,EAAE,EAAe,GAAE,OAAS,EAAK,EACtC,aAAc,EACd,cAAa,eAAiB,SAAW,OACzC,YAAW,oBAET,EAAe,GAAE,cAAW,EAC3B,SAES,CAAO,EAAC,iBAGJ,MAAK,EAAE,CAAO,EAAC,eACf,KAAI,EAAE,CAAO,EAAC,YAAc,EAAU,GAAI,aAIhD,QAAK,MAEN,MAAK,EAAE,EAAU,GAAE,OAAS,EAAK,MAE9C,CAAC,aAGF,GAAW,iDAEP,MAAK,EAAE,EAAa,mBADlB,EAAa,MAAK,CAAM,sFA6FlB,CAAM,qBAEd,oEAMsB,IAAG,IACnB,0BACQ,EAAa,uBACZ,2BACI,6BACA,EAAY,oBAEf,EAAO,uDAInB,EAAG,SAAH,CAAG,YAEC,EAAG,MACD,KADF,CACE,mCAEQ,EAAQ,yBACd,EAAQ,oLAIR,EAAe,iCACf,EAAgB,kCAChB,EAAiB,iCACjB,EAAgB,OAXpB,CAAG,MAAH,CAAG,cADA,EAAY,MAAK,EAAQ,GAAI,EAAQ,6FAgBnB,EAAG,MACrB,KADkB,CACF,8BAAE,EAAa,OADb,CAAG,MAAH,CAAG,aAAtB,EAAiB,iCAInB,sCAWW,EAAM,KAAM,EAAM,SAAU,MAAS,EAL9C,uCAES,EAAS,8BAChB,EAAa,8BACD,EAAc,iCAV9B,uFAE8B,EAAmB,SAFjD,cADE,EAAQ,MAAK,EAAY,YApB/B,CAAG,EAqCK,IArCR,EAAG,CAqCY,mDAtDnB,oFAE6B,EAAY,qBAChB,EAAO,uBAHhC,cAHE,CAAM,yDA+DR,yBACE,EAAK,yBACL,EAAQ,qBACH,EAAU,oLAIf,EAAe,iCACf,EAAgB,kCAChB,EAAiB,iCACjB,EAAgB,gBAXf,EAAY,iCAgBf,EAAG,gBACD,EAAG,EADL,CAAG,EAEC,KADF,CACkB,8BAAE,EAAa,OADjC,CAAG,IADL,CAAG,YAAH,EAAG,gDAAkD,EAAY,SAAjE,CAAG,aADD,EAAiB,iEAcR,EAAM,KAAM,EAAM,SAAU,MAAS,EAJ9C,4BACS,EAAS,8BAChB,EAAa,8BACD,EAAc,2CAI5B,gCAGc,EAAM,KAAM,EAAM,YAAa,MAAS,OAHtD,cARE,EAAQ,mCADT,EAAY,kCAwBJ,EAAc,QACrB,mCAQI,kBAKE,IALF,aAWI,EAAE,EANJ,aAOI,IADF,CAAE,EAQE,EAAI,EAPN,GAQI,KADF,CACM,uBAAO,EAAc,OAD3B,CAAI,MAGJ,EAAI,EAHJ,EAAI,OAGJ,EAAI,MAAJ,CAAI,IAVN,KADF,CAAE,OAAF,EAAE,YAcI,EAAe,EAAI,GAAa,EAAK,IAAM,EAAK,MAAI,EAAjC,EAAI,SAC3B,EAAE,gBACA,IADF,CAAE,MACA,aASI,EAAI,MACF,KADF,CACM,uBAAO,CAAI,EAAC,UADlB,CAAI,MAAJ,CAAI,aADF,CAAI,EAAC,MAAI,WAKb,EAAI,WAAJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAEF,QAIE,KAJF,CAIM,qBAAO,QAJb,+BAEgB,QAAO,EAAE,CAAI,EAAC,OAAO,QAFrC,cADE,CAAK,MAAK,EAAe,KAAI,CAAI,EAAC,SAAO,SAd/C,gDAKc,EAAkB,IAAC,CAAK,IAAM,QAAO,EAAE,CAAI,EAAC,KAAK,EAAK,EAAK,IAN3E,CAAE,YAAF,EAAE,oCAAe,CAAK,MAAK,EAAe,MACxC,iCAIe,CAAK,MAAK,EAAe,EAAG,OAAS,MAAS,IAJ7D,kBAMc,CAAI,EAAC,SAAW,EAAM,KAAM,EAAM,YAAS,CAAK,IAAK,OAAS,QAOtD,CAAI,EAAC,KAAK,QAZzB,GAAW,EAAC,CAAI,IAAE,CAAK,eAD9B,EAGW,GAAU,GAAmB,EAAK,EAAE,CAAI,IAAE,CAAK,QAJ5D,CAAE,MArBN,aACY,GAAc,SAAd,EAAc,KAN5B,8EAEkB,EAAY,MAF9B,gBAGc,EAAM,KAAM,EAAM,eAAgB,MAAS,MAEvD,6CAGkB,EAAY,MAH9B,gBAIc,EAAM,KAAM,EAAM,oBAAqB,MAAS,MAE5D,EAAE,mDAAsC,EAAY,MAClD,qBAGiB,EAAY,KAH7B,iBAIa,EAAc,KAJ3B,gBAKc,EAAM,KAAM,EAAM,sBAAuB,MAAS,QAK1C,EAAoB,eAV1C,EAEU,EAAgB,MAdhC,eADG,EAAY,MAAK,EAAqB,cAwD3C,EAAG,iBACD,IADF,CAAG,QAQS,IAPV,CAOqB,KAPrB,KADF,CAAG,IA/DL,8EAEmB,EAAY,cACb,EAAY,MAAK,EAAqB,wBAC5B,EAAqB,MAJjD,gBAKc,EAAM,KAAM,EAAM,WAAY,MAAS,MA0DnD,EAAG,6DAAgD,EAAY,QAC7D,iEAEmB,EAAY,WAChB,EAAY,KAAI,EAAe,IAAK,iBACpC,EAAY,KAAI,EAAe,IAAK,YAJnD,kBAKc,EAAmB,GAAI,MAAS,QArElD,uCAH6B,EAAY,EAAG,cAAgB,KAAK,KAAI,GAJzE,uBACmB,eACL,uBACQ,4BAGX,2DAPT,EAAa,2BAvGf,EAAQ,gCA9FL,+dCtiBR,aA4CU,GAAW,EAAC,EAAwB,gCAEzC,4BAUa,EAAI,EAAC,sNAAyB,EAAzC,GAAI,gDACJ,EAAI,qBAAJ,EAAI,MAAJ,CAAI,IAXN,sCAEO,EAAI,EAAC,IAAI,IAFhB,WAGS,EAAI,EAAC,MAAM,IAHpB,QAIM,EAAI,EAAC,SAAW,SAAW,sBAAwB,MAAS,IAJlE,iBAKe,EAAI,EAAC,KAAE,eAAoB,OAAS,MAAS,IAL5D,UAMQ,EAAO,EAAG,EAAI,EAAC,MAAQ,MAAS,MAKtC,EAAI,4CAAwB,EAAO,QAAG,EAAI,EAAC,KAAK,cAXlD,sCAQY,CAAkB,MAR9B,cAcA,4BAMa,EAAI,EAAC,sNAAyB,EAAzC,GAAI,gDACJ,EAAI,qBAAJ,EAAI,MAAJ,CAAI,IAPN,sBAEQ,EAAO,EAAG,EAAI,EAAC,MAAQ,MAAS,MAKtC,EAAI,4CAAwB,EAAO,QAAG,EAAI,EAAC,KAAK,cAPlD,MAGgB,EAAS,EAAI,gBAH7B,EAIY,CAAkB,MAJ9B,YAfE,SAAU,EAAI,yBAnCjB,EAAO,gBAAG,EAAK,EACf,EAAK,cAAG,2BAA2B,WAY5B,EAAS,EAA0B,kBAGpC,SAAU,GACd,EAAK,QAAO,CAEhB,UAES,EAAmB,EAAsB,IAC5C,EAAM,MAAQ,SAAQ,WAEpB,EAAS,EAAM,cAA8B,QAAQ,SAAS,EAE/D,IAEL,EAAM,eAAc,EACpB,EAAM,KAAO,GACb,EAAM,cAAc,SAAS,GAAG,MAAK,EACvC,KA+BD,EAAG,eAAH,EAAG,eACc,GAAM,EAAK,IAAE,EAAb,IAAI,0EAIX,EAAG,UAAH,CAAG,OAaU,EAAc,mBACV,CAAI,EAAC,sNAAyB,EAAzC,GAAI,wDAVA,CAAI,EAAC,MAAM,IAAK,IAAK,CAC1B,GAAI,EAAM,GACV,MAAO,EAAM,MACb,KAAM,EAAM,MAAQ,UAChB,SAAU,GACR,KAAM,EAAM,KAAM,OAAQ,EAAM,OAAQ,YAAO,mBAC/C,YAAe,EAAS,CAAK,OATtC,2BACQ,CAAI,EAAC,sDAWF,iDAbb,CAAG,MAAH,CAAG,aAmBH,EAAO,MACL,EAAO,EADT,CAAO,MACL,CAAO,iBACM,CAAI,EAAC,sNAAyB,EAAzC,GAAI,gDACJ,EAAI,WAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,GACkB,KAAtB,CAA0B,qBAAO,oBAAjC,CAAI,IAHN,CAAO,MAKP,EAAG,EALH,EAAO,MAKP,EAAG,SACK,CAAI,EAAC,MAAS,GAAO,EAAM,IAAE,EAAf,IAAK,CAAqB,EAAW,QAAC,CAAK,OADjE,CAAG,IANL,CAAO,cAGG,CAAI,EAAC,KAAK,eAFlB,EAAmB,CAAkB,MADvC,CAAO,WApBL,EAAO,mCADT,CAAI,EAAC,MAAM,QAAM,qBAkCb,EAAW,QAAC,CAAI,YAnCtB,UAAO,EAAI,CAAI,4BAFvB,CAAG,WAAH,EAAG,aAAa,EAAK,OAArB,EAAG,8CAAH,CAAG,KA9BI,0CC1CR,SAUE,IAAyB,KACnB,SAAU,iBAEd,EACA,eAAU,6DAEN,86CChBR,8JAwGU,GAAU,EAAC,EAAgB,WAAE,EAAQ,gBAAG,EAAK,eACpD,EAAG,mBAAH,CAAG,YACa,EAAG,WAAH,sBAAG,MAAH,CAAG,WAAZ,EAAO,cACZ,+BAgBa,CAAQ,EAAG,GAAW,EAAW,EAA5C,GAAI,8CAhBN,KAFF,CAAG,UAAH,EAAG,aAqBiC,EAAG,UAAH,EAAG,MAAH,CAAG,YAClC,EAAU,GAAE,OAAS,EAAE,OADQ,CAAG,YAAlC,EAAO,GAAI,EAAkB,cAGlC,EAAG,gBAAH,EAAG,MACK,EAAU,GAAE,OAAK,GAAU,GAAM,EAAK,IAAE,EAAb,IAAI,KACnC,qBAMiB,GAAI,uBAAO,CAAI,EAAC,kCAA3B,CAAI,EAAC,MAAI,WACb,EAAI,qBAAJ,EAAI,MAAJ,CAAI,IAPN,wCAEO,CAAI,EAAC,IAAI,IAFhB,mBAGe,CAAY,MAAK,CAAI,EAAC,GAAK,OAAS,MAAS,IAH5D,UAIQ,EAAO,IAAG,CAAI,EAAC,MAAQ,MAAS,MAGtC,EAAI,6CAAwB,EAAO,UAAG,CAAI,EAAC,KAAK,QAPlD,OAFJ,CAAG,MAaH,EAAG,EAbH,EAAG,OAaH,CAAG,oBAGC,mCACQ,CAAY,+BAClB,CAAY,wBACZ,EAAO,kBACU,GACZ,CAAU,GAAE,EAAW,CAC7B,sBARC,CAAY,EAAC,QAAM,8BAYrB,EAAO,UAAP,CAAO,YACW,IAAF,CAAE,WAAX,EAAO,6BAEV,2BACQ,CAAW,2DAEjB,CAAY,wBACZ,EAAO,kBACU,GACZ,CAAU,GAAE,EAAW,CAC7B,eARC,CAAW,EAAC,QAAM,OAWtB,iCACE,EAAO,kBACU,GACZ,CAAU,GAAE,EAAW,CAC7B,uBAEC,EAAG,WAAH,uBAAG,MAAH,CAAG,4BAnBP,CAAO,MAAP,CAAO,cADL,CAAW,EAAC,QAAM,oBAZxB,CAAG,aArCH,EAAG,qEAED,iBAIa,GACR,uBACA,IACE,wBACA,uBAAuB,IAR9B,YASQ,GACH,uBACA,IACE,wBACA,uBAAuB,IAb9B,oBAcgB,CAAQ,EAAG,OAAS,CAAI,EAAO,OAQjD,EAAG,mFAtBD,oBAGU,CAAQ,EAAG,EAAc,IAAe,wBAjGnD,EAAkB,2BAAG,EAAI,EAerB,EAAQ,IAAgB,QAAqB,WAC7C,EAAY,EAAM,UAClB,EAAO,EAAM,KACb,EAAU,EAAM,QAChB,EAAY,MAAY,EAAQ,GAAE,cAAgB,EAAK,GAAE,YAAY,EACrE,EAAY,OACf,EAAU,GAAE,aAAW,IAAQ,OAAQ,GAAS,EAAK,YAAc,QAAQ,GAExE,EAAW,OACd,EAAU,GAAE,aAAW,IAAQ,OAAQ,GAAS,EAAK,YAAc,QAAQ,GAE1E,EAAY,EAAO,EAAK,EACxB,EAAwC,EAAM,QAC9C,EAA+C,EAAM,QACrD,EAAa,EAAO,EAAK,EACzB,EAAqC,EAAM,QAC3C,EAAe,EAAO,EAAE,EACtB,EAAW,MAAqB,KAC9B,EACJ,EAAK,GAAE,cACN,EAAQ,GAAE,iBACJ,MAAO,EAAQ,EAAC,eAAgB,KAAM,EAAQ,EAAC,iBAElD,GAAe,EAAU,GAAE,aAAW,IAAQ,QAAS,GAC3D,UAAW,EACP,EAAK,MAAM,OAAQ,GAAU,SAAU,CAAK,EAC5C,SAAU,GACP,CAAI,MAGP,EAAM,IAAQ,EAAU,GAAE,OAAK,MAAY,CAAW,EAAE,KAC3D,GAAS,EAAK,KAAE,EAAK,CAAY,UAG7B,GAAU,EAAO,IAAI,QAAU,EAAO,QACtC,MAAO,EAAO,MAAO,KAAM,EAAO,IAAI,KAAO,CAAM,EACtD,CACN,CAAC,EACD,OAAc,GACZ,EAAY,GAAwB,KAAK,KAC3C,CAAC,EAED,OAAc,OACP,CAAM,UAAW,eAAmB,IAAW,WAE9C,EAAO,EAAG,GACV,EAAQ,IAAO,mBAAqB,GACxC,EAAe,EAAQ,sBAAqB,EAAG,UACjD,CAAC,SACD,EAAS,QAAQ,CAAO,MAEX,EAAS,WAAU,CAClC,CAAC,WAEQ,GAAkB,GACzB,EAAS,GAAI,IACb,GAAyB,MAAK,EAAE,CAAS,EAC3C,UACS,GAAc,GACrB,CAAM,GAAE,MAAK,IACb,EAAa,MACb,CAAa,GAAE,MAAK,CACtB,UACS,GAAa,GACpB,CAAM,GAAE,UAAS,IACjB,EAAa,GACf,CACA,OAAc,CACZ,EAAS,EAAC,KACV,EAAS,EAAC,OACV,OAAc,GACR,CAAU,GAAE,EAAW,CAC7B,CAAC,CACH,CAAC,MAgFF,gDAWI,EAAK,KACK,IADV,CACoB,QAAC,CAAS,KAD9B,CAAK,MAGL,IAHA,EAAK,GAWK,IARV,CAQoB,MAAC,OAAO,EAAI,IARhC,aACY,EAAM,SAAN,CAAM,cADlB,MAGgB,GACb,EAAa,MACb,CAAa,GAAE,MAAK,CACtB,CAAC,mBAVC,EAAe,eAepB,GAAG,aAAH,EAAG,aAEC,EAAG,MACD,IADF,CAAG,EAOsB,KANvB,CAM2B,qBAAO,QANlC,aACY,EAAa,SAAb,CAAa,OAOzB,EAAG,EARH,KASE,IADF,CAAG,KACD,WACS,CAAW,QAAI,EAAK,SACzB,qBACkB,GAAI,qBAAO,2BAAtB,EAAQ,GAAC,8BACE,EAAC,UAAD,EAAC,MAAD,CAAC,KAAD,EAAC,qBAAD,EAAC,SAAmB,CAAK,EAAC,IAAI,QAAG,CAAK,EAAC,KAAK,QAA5C,CAAC,aAAwD,iDACxD,IAAK,EAAK,CAAW,EAAC,OAAS,EAAI,OAAS,MAAS,QACjE,CAAK,EAAC,KAAK,QAFyD,cAArE,CAAK,EAAC,KAAI,iBAFhB,cAFJ,KADF,CAAG,MAaH,EAAG,EAbH,EAAG,QAaH,wBAAG,IAtBL,CAAG,KAAH,EAAG,KAAY,EAAM,SAAN,CAAM,WACnB,oBAKgB,CAAU,cAL1B,EAMU,CAAU,MAPtB,CAAG,YADA,EAAe,eA0BpB,GAAI,aAAJ,wBAAI,IA3BN,EAAG,IAzBL,+EAGmB,EAAe,gBACd,EAAK,GAAE,gBAAkB,aAJ7C,6DAMsB,EAAK,GAAE,eAAiB,MAAM,QANpD,oCAO+B,CAAY,oCACP,EAAe,EAAG,MAAK,KAAM,CAAY,cAR7E,UA/EO,6KCtGR,aAKI,EAAY,qBAAG,EAAK,EACpB,EAAK,cAAG,EAAK,EACb,EAAG,YAAG,EAAE,EACR,EAAK,cAAG,MAAM,EACd,EAAI,aAAG,EAAE,EACT,EAAc,uBAAG,EAAE,EACnB,EAAgB,yBAAG,EAAE,EACrB,EAAO,gBAAG,OAAO,EAYb,EAAO,MAAY,GAAQ,EAAY,GAAI,EAAK,IAChD,EAAW,MACf,EAAc,GAAE,KAAI,GAAO,QAAS,EAAc,EAAE,UAAW,EAAgB,GAAK,EAAK,MAI5F,kBAOE,EAAE,EAPJ,OAOE,EAAE,MAAF,CAAE,UAAF,EAAE,aAIA,EAAI,UAAJ,CAAI,iBACqB,CAAO,EAAG,UAAY,MAAM,EAAnD,GAAI,qBAAO,EAAI,oDADjB,CAAI,MAAJ,CAAI,WADF,EAAI,YAVV,+BAKc,CAAW,aALzB,aACe,EAAK,kCAOhB,EAAG,0BANc,CAAO,OACf,EAAO,IAAK,qBACL,EAAO,EAAC,CAAW,UAJvC,MAFO,0NC5BR,KAoBI,EAAK,cAAG,EAAE,EACV,EAAG,YAAG,EAAE,EACR,EAAQ,iBAAG,KAAK,EAChB,EAAO,gBAAG,EAAE,EACZ,EAAU,mBAAG,OAAO,EACpB,EAAiB,0BAAG,EAAE,EACtB,EAAmB,4BAAG,EAAE,EACxB,EAAQ,iBAAG,EAAI,EACf,EAAO,gBAAG,EAAK,EACf,EAAY,qBAAG,EAAK,MAMvB,mCAQI,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAgB,EAAK,QAAzB,CAAI,WADF,EAAK,iCAIP,EAAI,MACF,MADF,CACE,oBACE,EAAG,sBACG,EAAQ,qBACT,EAAO,wBACJ,EAAU,+BACH,EAAiB,iCACf,EAAmB,gBACvB,OARjB,CAAI,MAAJ,CAAI,WADF,EAAG,sEAeL,EAAG,WAAH,2BAAG,MAAH,CAAG,qCAzBP,kDAEa,EAAQ,SACN,EAAQ,kBACD,EAAY,aACjB,EAAO,SALxB,EAFO,86DCjCR,aAMQ,EAAW,CAAK,KAAM,eAAgB,KAAM,UAAW,OAAQ,WAAW,EAC1E,EAAW,CAAK,uBAAwB,sBAAuB,cAAe,eAGrF,EAAO,UAAP,CAAO,EACL,gDAEmB,SACX,sDAGR,GAAS,2BACE,SAAQ,QACf,EAAE,MACA,EAAG,EADL,CAAE,EAC4B,EAAE,IAA9B,CAAG,OAAyB,EAAE,MAAF,CAAE,IAA9B,CAAG,UAAH,EAAG,aAEE,IAAH,CAAG,qBAGH,EAAG,UAA0B,EAAE,IAA/B,CAAG,OAA0B,EAAE,MAAF,CAAE,IAA/B,CAAG,YAA8B,EAAW,UAAS,QAAQ,KAAI,6BAEjE,EAAG,KAAuB,EAAE,IAA5B,CAAG,OAAuB,EAAE,MAAF,CAAE,IAA5B,CAAG,MACH,EAAG,EADH,EAAG,GACqB,EAAE,IAA1B,CAAG,GAAyB,EAAI,EAAR,CAAE,MAAE,EAAI,MAAJ,CAAI,IAAR,CAAE,IAA1B,CAAG,MACH,EAAG,EADH,EAAG,GAC6B,EAAE,IAAlC,CAAG,OAA6B,EAAE,MAAF,CAAE,IAAlC,CAAG,UAAH,EAAG,qBAED,EAAG,KAA2B,EAAE,IAAhC,CAAG,OAA2B,EAAE,MAAF,CAAE,IAAhC,CAAG,MACH,EAAG,EADH,EAAG,GAGD,EAAE,IAFJ,CAAG,KAEG,EAAI,EAAR,CAAE,MAAE,EAAI,MAAJ,CAAI,IAAR,CAAE,IAFJ,CAAG,MAIH,EAAG,EAJH,EAAG,GAIuB,EAAE,IAA5B,CAAG,OAAuB,EAAE,MAAF,CAAE,IAA5B,CAAG,MACH,EAAG,EADH,EAAG,GAGD,EAAE,IAFJ,CAAG,KAGC,EAAI,EADN,CAAE,MACA,EAAI,MAAJ,CAAI,IADN,CAAE,IAFJ,CAAG,uBANuC,KAAK,KAAK,gBAGhC,QAAQ,WAAW,mBAAmB,gBAEpB,QAAQ,WAAW,MAAM,IAI3D,EAAI,qBAAmB,QAAQ,WAAW,UAAU,gBAC1C,QAAQ,WAAW,UAAU,8BAXjC,QAAQ,YAAU,4BAHQ,QAAQ,iBAAiB,gBACrB,QAAQ,aAAa,gBACnB,QAAQ,SAAS,8BARnD,yBAAwB,eAEnB,QAAQ,OAAS,WAAU,mBAJ9C,CAAE,sBACwC,KAAK,KAAK,OADpD,CAAE,iDAiCG,EAAY,gBAAW,QAAQ,YAAY,MAClD,EAAG,MACD,KADF,CACW,wBACE,SAAQ,sCAGZ,IAAD,CAAC,aAED,EAAE,SAAF,EAAE,SACM,CAAY,EAAI,GAAO,EAAM,KAAG,EAAhB,IAAK,KACzB,EAAE,MACA,EAAI,EADN,CAAE,MACA,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,CAAI,IAAJ,CAAI,IAFN,CAAE,eACM,CAAK,EAAC,GAAG,SAEb,EAAW,EAAC,CAAK,EAAC,QAAK,OAAG,CAAK,EAAC,cACvB,CAAK,EAAC,QAAU,MAAQ,SAAW,SACzC,IAAE,QALT,CAAE,MAFN,CAAE,MAAF,CAAE,aAHA,CAAY,EAAC,SAAW,EAAC,uBAFd,yBAFrB,CAAG,MAAH,CAAG,sBAFQ,0BAAwB,UAAY,QAAQ,OAAS,gBAAc,SAzClF,CAAO,MAAP,CAAO,KAFA;gpCCRR,KAuBQ,EAAG,iBAZP,EAAyB,kCAAG,IAAI,EAW5B,EAAI,MAAY,GAAS,SAAQ,KAAK,GAExC,EAA6C,EAAM,QACnD,EAAS,EAAsE,IAAI,EACjF,EAAU,GACd,EAAO,OAAS,+BACI,EAAO,4BACX,EAAO,gBACnB,EAAQ,MAAqB,KAC3B,EAAO,EAAG,CAAI,EAAC,QAAQ,SAAO,QAEhC,CAAM,GAAE,UAAY,EAAO,OACtB,EAAQ,KAAM,GAAW,EAAO,CAAM,MAAM,CAAM,GAAE,GAAG,GAAK,SAE/D,EAAsB,EAAyB,GAAE,KAAI,EAAG,YAAW,GAAM,MAE3E,EAAqB,KACjB,EAAY,EAAQ,KACvB,GACC,EAAO,OAAS,gBAChB,EAAO,kBAAkB,KAAI,EAAG,YAAW,IAAO,CAAmB,KAGrE,EAAS,OAAS,CACxB,QAEO,EAAQ,SAAW,EAAI,EAAQ,GAAK,IAC7C,CAAC,EACK,EAAI,QAAY,CAAI,EAAC,QAAQ,SAAW,WAAS,EAAI,CAAI,EAAC,QAAQ,SAAW,WAAW,EACxF,EAAM,CACV,eAAgB,sCAChB,iBAAkB,wCAClB,kBAAmB,8BACnB,iBAAkB,4CAClB,gBAAiB,0BAEb,EAAU,GAAuB,CACrC,EAAM,eAAc,OAEf,CAAQ,KAAI,CAAI,KAAI,CAAI,EAAC,QAAQ,SAAW,uBAErC,OAAM,EAChB,CAAQ,EAAC,OAAS,gBACZ,KAAM,eAAgB,cAAa,EAAE,CAAQ,EAAC,gBAC9C,KAAM,WAAY,cAAa,EAAE,CAAQ,EAAC,eAEpD,EACM,MAAgB,KACd,EAAiB,EAAG,CAAI,EAAC,QAAQ,iBAChC,WAAW,QAAQ,cAChB,CAAiB,CAC7B,MAGD,EAAO,UAAP,CAAO,oBAEH,EAAC,SAAD,EAAC,MAAD,CAAC,MAGD,EAAG,EAHH,EAAC,GAIC,KADF,CACK,kCAAiC,8BAAmC,MADzE,CAAG,cAFD,CAAI,EAAC,QAAQ,SAAW,YAAc,0BAA4B,sBAAsB,oCAM1F,IAAc,0BAAU,CAAI,EAAC,QAAQ,eACrC,EAAG,WAAH,CAAG,EACD,GAAG,kCAAiC,8BAAmC,IACvE,2CAEW,kDAEY,YAAW,MANpC,CAAG,4BAWH,EAAG,cAAH,CAAG,EACD,GAAG,kCAAiC,8BAAmC,IACvE,yCAEW,4EAJb,CAAG,mDAgBD,EAAG,cAAH,CAAG,EACD,GAAG,kCAAiC,8BAAmC,QACvE,EAAG,WAAH,CAAG,QAEC,sCAEW,gHAKb,2CAEW,qBACJ,6CAEgB,cAAa,MAdtC,CAAG,IAFL,CAAG,oBAqBH,QAQE,EAAQ,IARV,SAQE,EAAQ,SACA,CAAI,EAAC,QAAQ,QAAW,GAAQ,EAAO,CAAM,KAArB,IAAM,KAClC,EAAK,gBACH,EAAI,EADN,CAAK,EAEA,IADH,CAAI,KACD,KADH,CAAI,UAAJ,EAAI,kBAWG,CAAM,EAAC,OAAS,eAAiB,GAAoB,EAAgB,EAD5E,mDAIA,EAAI,OACF,IADF,CAAI,MACF,eAGA,IAHA,SAGA,aAJF,CAAI,IAfN,CAAK,aAAL,EAAK,qCAAiB,CAAQ,MAAK,CAAM,MAEpC,SAEM,CAAG,KAFT,IAGS,CAAQ,MAAK,CAAM,SAY1B,CAAM,EAAC,OAAS,eAAc,EAAG,CAAM,EAAC,kBAAoB,WAAW,QAGvE,CAAM,EAAC,OAAS,mCACI,CAAM,EAAC,cACzB,CAAM,EAAC,OAAS,gBACd,kBACA,6BAA6B,eAtBnC,MAIgB,GACd,EAAM,CAAK,QAAO,EAAE,CAAI,EAAC,QAAQ,QAAU,IAAK,EAAM,EAAC,CAAM,IAC/D,CAAC,MARN,CAAK,MAFT,CAAQ,MAgCR,EAAG,EAhCH,EAAQ,OAgCR,CAAG,EACD,GAAG,kCAAiC,8BAAmC,iCAK3D,CAAQ,KAAI,CAAI,GAJ5B,oCAEW,wDAGA,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAa,GAAE,cAAa,CAC9B,MAVH,CAAG,MAaH,IAbA,EAAG,KAxCL,aAIY,EAAa,SAAb,CAAa,YAJzB,gBAGY,CAAI,GAkDd,cAKY,CAAQ,KAAI,CAAI,gBA1D9B,EAKW,CAAM,MALjB,cA3BE,CAAI,EAAC,QAAQ,QAAQ,SAAW,EAAC,0DA0Fb,EAAC,UAAD,EAAC,MAAD,CAAC,YAAkC,EAAM,EAAC,CAAI,EAAC,QAAQ,MAAK,OAA5D,CAAC,aAArB,CAAI,EAAC,QAAQ,OAAK,WACtB,EAAG,WAAH,CAAG,EACD,GAAG,kCAAiC,8BAAmC,QACvE,EAAG,WAAH,CAAG,QAEC,sCAEW,iDAEY,cAAa,eALlC,CAAI,EAAC,QAAQ,SAAW,SAAO,OAQnC,2CAEW,qBACJ,qDAEgB,QAAO,MAdhC,CAAG,IAFL,CAAG,oBAzHD,CAAI,SAOC,CAAI,EAAC,QAAQ,SAAW,SAAO,EAAI,CAAI,EAAC,QAAQ,QAAO,SAWvD,CAAI,EAAC,QAAQ,SAAW,kBAAiB,SAWzC,CAAI,EAAC,QAAQ,SAAW,aAAW,EAAI,CAAI,EAAC,QAAQ,QAAO,mBA9BtE,CAAO,UAAP,EAAO,cAAuD,CAAI,QAAlE,CAAO,KAFA,8nBC1ER,aAQI,EAAY,qBAAG,IAAI,EAMf,EAAI,MAAY,GAAS,QAAO,KAAK,GACvC,EAAQ,EAAM,GAAC,OAAc,EAAY,IAAK,EAAE,GAChD,EAAW,EAAO,EAAE,EACpB,EAAO,EAAO,EAAE,EAChB,EAAoC,EAAM,QAC1C,EAAc,EAAO,EAAK,EACxB,EAAI,QAAY,CAAI,EAAC,QAAQ,SAAW,YAAY,EACpD,EAAS,QAAY,CAAI,EAAC,QAAQ,SAAW,WAAW,EACxD,EAAM,KAAU,IAAuB,IAC3C,EAAM,eAAc,IAEhB,CAAI,MAAK,CAAI,GAAE,cAAa,MAEhC,EAAW,EAAG,CAAS,IAAK,gBAAgB,KAAI,EAAC,CAAI,SAEjD,CAAW,cAET,EAAO,CACX,MAAK,EAAL,CAAK,EACL,SAAQ,EAAR,CAAQ,EACR,oBAAqB,QACjB,CAAS,GAAK,gBAAe,EAAE,CAAI,SAEzC,EAAO,EAAC,gBACI,OAAO,CAAO,IAEtB,CAAI,EAAC,QAAQ,SAAW,aAAW,EAAE,EAAW,EAAC,CACvD,EACA,OAAgB,GACd,EAAW,EAAC,IACZ,EAAO,EAAC,CACV,CAAC,MAGF,EAAI,UAAJ,CAAI,YACsC,IAAD,CAAC,aAApC,CAAI,EAAC,QAAQ,SAAW,WAAS,8BACZ,IAAD,CAAC,aAArB,CAAI,EAAC,QAAQ,OAAK,WACtB,EAAG,WAAH,CAAG,iBASU,CAAI,KAAI,CAAS,GAR5B,wLAMC,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,qCAYP,CAAI,KAAI,CAAS,GAR5B,4MAMC,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,WAjBvB,CAAG,UAAH,EAAG,aAuBD,EAAG,MACD,KADF,CACE,8LAQW,CAAI,OAFd,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,WAPnB,CAAG,MAAH,CAAG,aADD,CAAS,iCAcK,IAAD,CAAC,aAAd,CAAW,cACf,EAAG,WAAH,CAAG,QACc,sCAEF,4BAEA,GAAsB,CAC9B,EAAM,eAAc,UACd,MAAK,IACX,EAAW,EAAC,IACZ,EAAO,EAAC,CACV,eATC,CAAS,sCAcH,CAAI,EAAG,oBAAoB,CAAS,EAAG,aAAe,iBAAiB,YACrE,CAAI,EAAG,oBAAoB,CAAS,EAAG,aAAe,UAAU,EAJ5E,oCAEW,mFAGA,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAI,GAAE,cAAa,CACrB,MArBH,CAAG,MAwBH,EAAM,EAxBN,EAAG,KAxCL,CAAI,KAAJ,EAAI,KAA8B,EAAI,SAAJ,CAAI,YAAtC,EAAI,cAAuF,CAAI,GAgE7F,EAAM,WAA+E,CAAI,gBAhE3F,EAAkD,CAAM,MAAxD,CAAI,KAFG,+CC9CR,aAMI,EAAI,aAAG,SAAS,EACT,EAAS,cAAG,EAAE,EAElB,wEAQN,EAAI,SAAJ,kBAAiF,CAAI,YAArE,cAAe,EAAI,EAAE,EAAS,GAAE,OAAO,OAAO,EAAE,KAAK,GAAG,0CAAxE,yBAAI,MAAJ,CAAI,KAFG,CCTR,IAAa,IACX,EACA,EACA,EAAW,KACR,CACH,IAAM,EAAU,IAAmB,UAC7B,EAAS,GAAW,EAAK,gBAAkB,SAC3C,EAAU,EAAK,gBAAkB,UACjC,EAAY,EAAK,cACnB,EAAK,gBAAkB,YACvB,EAAK,iBAAmB,OAW5B,MAAO,CAAE,SAAQ,UAAS,YAAW,QAVrB,CAAC,IAAW,GAAa,IAAY,GAAa,IAUpB,MAThC,EAAS,SAAW,EAAU,UAAY,EAAY,OAAS,OASxB,WARlC,EACf,WACA,EACE,eACA,EACE,gBACA,EAEwD,CAClE,+1BC5BA,KAqCQ,EAAU,iBAvBd,EAAK,uBACL,EAAW,oBAAG,CAAC,EACf,EAAQ,qBAAS,CAAC,CAAC,EACnB,EAAQ,iBAAG,EAAK,EAChB,EAAU,mBAAG,QAAQ,EACrB,EAAc,uBAAG,MAAM,EACvB,EAAiB,0BAAG,2FAA2F,EAC/G,EAAmB,4BAAG,IAAI,EAE1B,EAAQ,iBAAG,EAAK,EAeZ,EAAQ,6BAAmC,GAAU,EACvD,EAAmC,EAAM,QACzC,EAAgB,EAAO,EAAK,EAC5B,EAAmB,EAAO,EAAK,EAC/B,EAAiB,EAAsB,IAAI,EAGzC,GAAkB,EAAe,IACjC,EAAc,IAAK,WAAa,EAAK,cACnC,EAAK,gBAAkB,aAAe,EAAK,gBAAkB,UAAkB,OAE5E,EAAK,gBAAkB,UAAY,SAAW,UAGnD,EAAU,IAAK,YAAc,EAAK,eAAuB,EAAK,eAE3D,EAAQ,EAAW,EAAG,OAAS,IAAU,EAAW,EAAG,SAAW,UAGrE,EAAgB,GAAkB,KAChC,EAAO,EAAK,EAAC,MAEf,GAAyB,EAAM,EAAc,EAAE,EAAQ,GAAE,OAAQ,CACnE,EAAmB,IAAG,EAAO,CAAI,EACjC,GAAe,CAAG,MAAO,QAAS,KAAM,EAAiB,UAG3D,CAEA,EAAQ,EAAC,CAAK,CAChB,EAEM,MAAuB,GACtB,CAAI,MAET,EAAa,EAAG,CAAI,EAAC,WAAa,KAClC,EAAgB,EAAG,CAAI,EAAC,WAAU,EAAG,CAAI,EAAC,YAAW,EAAG,CAAI,EAAC,YAAc,GAC7E,EAEM,EAAa,GAAkB,OAC9B,CAAI,aAEH,EAAG,EAAG,CAAI,EAAC,iBAAoC,YAAY,EAAE,OAE9D,EAAG,WAEF,EAAU,EAAI,sBAAqB,EACnC,EAAQ,EAAG,CAAI,EAAC,sBAAqB,EAEvC,EAAQ,MAAQ,EAAS,OAAS,EAAQ,KAAO,EAAS,KAAI,EAChE,CAAI,EAAC,YAAc,EAAQ,KAAO,EAAS,KACpC,EAAQ,MAAQ,EAAS,QAAK,EAAE,CAAI,EAAC,YAAc,EAAQ,MAAQ,EAAS,OAErF,EAAc,CAChB,EAEM,EAAmB,GAAyB,KAC1C,EAAQ,IAAO,mBAAqB,CACxC,EAAc,EACd,EAAU,EAAW,EACvB,CAAC,SACD,EAAS,QAAQ,CAAI,EACrB,EAAc,GAEL,YAAe,EAAS,WAAU,EAC7C,EAEA,OAAc,KACN,EAAQ,IACd,EAAK,EAAC,OACN,GAAI,EAAG,SAAW,EAAU,CAAK,EACnC,CAAC,MAEK,GAAa,EAAsB,IAAkB,KACrD,KAEA,EAAM,MAAQ,aAAc,GAAU,EAAQ,GAAK,EAAK,EAAC,eACpD,EAAM,MAAQ,YAAa,GAAU,EAAQ,EAAI,EAAK,EAAC,QAAU,EAAK,EAAC,eACvE,EAAM,MAAQ,OAAQ,EAAS,UAC/B,EAAM,MAAQ,MAAO,EAAS,EAAK,EAAC,OAAS,cAGtD,EAAM,eAAc,IACpB,CAAI,GAAE,iBAAoC,YAAY,EAAE,IAAS,MAAK,EACtE,EAAU,CAAM,CAClB,EAEM,EAAU,GAAsB,GACpC,CAAI,GAAE,SAAQ,CAAG,KAAM,EAAS,EAAG,CAAI,EAAC,YAAc,IAAM,SAAU,UACxE,MAGD,EAAG,oBAAH,CAAG,YAEC,QAM6B,KAN7B,CAMiC,qBAAO,oBANxC,uBAKY,CAAa,aALzB,MAMgB,EAAM,EAAG,OANzB,eADE,CAAa,KAAI,CAAgB,eAUrC,iBAQQ,EAAS,GAAa,EAAK,IAAE,EAApB,EAAI,SACV,EAAY,MAAG,GAAwB,EAAC,CAAI,EAAE,EAAc,EAAE,EAAQ,gBAC7E,OAyBE,EAAI,EAzBN,OAyBE,CAAI,QACuB,GAAI,qBAAO,yBACH,GAAI,qBAAO,yBACb,GAAI,qBAAO,6BAFtC,CAAY,EAAC,OAAM,OACd,CAAY,EAAC,UAAS,SACtB,CAAY,EAAC,SAAO,aAC7B,EAAI,WAAJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,aACyB,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAkB,CAAY,EAAC,UAAU,OAA7C,CAAI,aAA7B,CAAY,EAAC,YAAU,8BACG,IAAJ,CAAI,aAA1B,CAAY,EAAC,SAAO,SAN1B,CAAI,IAzBN,0BAmCE,EAAI,UAAJ,EAAI,MAAJ,CAAI,WAAJ,EAAI,UAAwB,CAAQ,YAAS,CAAK,SAAK,EAAiB,SAAxE,CAAI,aADF,CAAY,EAAC,QAAM,eAlCvB,YAIQ,CAAQ,WAAQ,CAAK,OAJ7B,mDAMgB,CAAK,IAAK,EAAW,KANrC,oBAOgB,CAAY,EAAC,MAAM,IAPnC,uBAQmB,CAAY,EAAC,OAAM,KAAM,CAAQ,YAAS,CAAK,IAAK,MAAS,IARhF,eASW,CAAK,IAAK,EAAW,EAAG,EAAC,EAAK,IATzC,sCAWa,CAAY,EAAC,KAAK,IAX/B,0BAYsB,CAAI,EAAC,eAAiB,EAAE,IAZ9C,mBAae,CAAI,EAAC,EAAE,IAbtB,iBAce,EAAc,IAAK,WAAS,EAAI,CAAI,EAAC,gBAAkB,SAAS,QAerE,CAAI,EAAC,KAAK,QAnBN,EAAc,EAAC,CAAK,IAAE,CAAI,eAVxC,MAegB,EAAY,EAAC,CAAK,gBAflC,EAgBa,GAAU,EAAU,EAAK,EAAE,CAAK,eAhB7C,MAiBgB,GACb,EAAc,EAAG,CAAY,EAAC,OAAM,EAAG,CAAK,EAAG,SAC/C,EAAS,EAAC,CAAK,EACjB,CAAC,YApBF,QAqBgB,EAAiB,IAAI,mBArBrC,QAsBsB,EAAc,EAAG,CAAY,EAAC,OAAM,EAAG,CAAK,EAAG,KAAI,qBAtBzE,QAuBsB,EAAiB,IAAI,cAjC/C,aAIY,EAAI,SAAJ,CAAI,MAJhB,qCAkDE,QAM4B,KAN5B,CAMgC,qBAAO,oBANvC,uBAKY,CAAgB,aAL5B,MAMgB,EAAO,CAAC,OANxB,eADE,CAAa,KAAI,CAAgB,qCAWnC,EAAG,UAAH,EAAG,MAAH,CAAG,YAA4C,EAAiB,QAAhE,CAAG,cADD,CAAc,IAAK,MAAI,UAtE7B,CAAG,YAAH,EAAG,qEAWD,EAMW,CAAc,MAjB3B,CAAG,KAFI,kRChIR,KAmBU,EAAO,iCAEZ,EAAC,UAAD,EAAC,MAAD,CAAC,YACC,EAAa,IAAK,YACf,8BACA,EAAa,IAAK,UAChB,6BACA,aAAa,OALpB,CAAC,WADC,EAAQ,4CAdX,EAAQ,iBAAG,EAAK,EAChB,EAAa,sBAAG,IAAI,6BA0BrB,QAOU,IAPV,CAOiB,KAPjB,sFAUA,EAAG,MAAmC,IAAtC,CAA6C,KAA7C,CAAG,MAAH,CAAG,0CA1BE,yXCbR,KA4DQ,EAAU,6DAnBd,EAAK,uBACL,EAAS,kBAAG,UAAU,EACtB,EAAa,sBAAG,EAAe,EAC/B,EAAY,qBAAG,CAAC,EAChB,EAAY,qBAAG,EAAI,EACnB,EAAa,sBAAG,QAAQ,EACxB,EAAQ,iBAAG,EAAK,EAChB,EAAO,gBAAG,EAAI,EACd,EAAU,mBAAG,QAAQ,EACrB,EAAc,uBAAG,MAAM,EACvB,EAAa,sBAAG,IAAI,EACpB,EAAqB,8BAAG,IAAI,EAC5B,EAAiB,0BAAG,2FAA2F,EAC/G,EAAmB,4BAAG,IAAI,EAGxB,EAAgB,EAAM,GAAC,OAAc,EAAY,KACjD,EAAY,EAAsB,IAAI,EACtC,EAAU,EAAO,EAAK,EAEpB,EAAO,kBAAqB,IAE5B,EAAU,MAAY,EAAK,EAAC,MAAM,EAClC,EAAgB,OAAa,EAAc,GAAE,QAAU,IAAI,QAAQ,MAAO,EAAE,GAC5E,EAAc,MAClB,EAAc,GAAE,OAAI,OAAY,OAAW,IAAc,OAAO,SAAS,SAAW,IAAG,EAGnF,EAAc,KACb,CAAU,EAER,KAAK,IAAI,KAAK,IAAI,EAAO,CAAC,IAAG,CAAU,EAAG,CAAC,EAF1B,EAKpB,EAAkB,GAAmB,OACpC,CAAU,SAAS,SAGlB,EAAM,IADO,gBAAgB,CACvB,EAAO,IAAI,EAAS,MAE5B,IAAQ,KAAI,OAAS,SAEnB,EAAS,OAAO,CAAG,KAErB,OAAO,UAAU,CAAM,EAAG,KACtB,EAAU,EAAW,CAAM,KAE7B,IAAY,EAAM,OAAS,CACjC,QAEO,IACT,EAEM,EAAuB,GAAiB,OACvC,CAAU,eAET,EAAa,EAAK,MAAM,GAAG,EAAE,IAAM,IACrC,EAAS,GACT,EAAe,UACnB,EAAK,EAAC,SAAS,EAAM,IAAQ,KACtB,GAAM,KAAI,WAET,EACJ,EAAK,KAAK,SAAS,GAAG,GAAK,EAAK,OAAS,IAAM,EAAK,KAAK,MAAM,EAAC,EAAI,EAAI,EAAK,KAE1E,IAGH,IAAe,GACf,EAAW,WAAW,EAAO,SAAS,GAAG,EAAI,EAAM,GAAM,EAAM,MAE3D,EAAO,OAAS,IAClB,EAAY,EACZ,EAAkB,EAAO,OAG/B,CAAC,EAEM,CACT,EAEM,GAAa,MAAqB,KACjC,EAAO,SAAS,EAAW,EAAY,OAEtC,EAAY,EAAc,EAAC,CAAgB,MAE7C,IAAc,KAAI,OAAS,MAEzB,EAAW,EAAmB,EAAC,CAAc,UAE/C,IAAQ,GAEL,EAAW,EAAY,GAFF,CAG9B,CAAC,EACK,GAAW,MACf,EAAa,IAAK,MAAQ,EAAa,IAAK,OACxC,EAAW,EAAa,GACxB,IACE,EAAU,EAAC,EAAa,GACxB,EAAU,EAAC,CAAa,IAE1B,GAAU,MAAY,EAAK,IAAC,EAAW,IAAK,IAAI,EAEhD,EAAkB,GAAkB,OACnC,CAAU,QAAS,QAElB,EAAU,EAAW,CAAK,EAC1B,EAAO,EAAK,EAAC,GACb,EAAM,IAAO,gBAAe,EAAC,CAAgB,GACnD,EAAO,IAAI,EAAS,EAAE,OAAO,CAAO,OAC9B,EAAO,GAAM,MAAI,EAAI,CAAc,GAAI,IACvC,EAAS,EAAO,SAAQ,EACxB,EAAO,EAAc,GAAE,MAAQ,YAE3B,IAAO,EAAM,IAAO,IAAW,KAAK,GAAQ,IACxD,EAEM,IAAqB,EAAe,IAAoC,QACjE,OAAW,KAGtB,GADe,EAAe,CAClB,EAAM,CAAI,QAAS,GAAS,SAAW,GAAM,cAAe,EAAI,EAC9E,EAEM,IAAoB,EAAe,IAAuB,CAC9D,EAAmB,IAAG,EAAO,CAAI,EACjC,GAAe,CAAG,MAAO,QAAS,KAAM,EAAiB,GAC3D,EAEM,GAAiB,GAAkB,KACjC,EAAO,EAAK,EAAC,EAAW,CAAK,UAE5B,EAAc,IAAK,WAAa,GAAM,gBAAkB,QACjE,EAEM,IAAY,EAAe,IAAoC,OAC9D,CAAU,aAET,EAAU,EAAW,CAAK,EAC1B,EAAO,EAAK,EAAC,OAEd,GAAc,CAAO,EAAG,CAC3B,GAAiB,EAAS,CAAI,QAGhC,GAEA,EAAgB,QAChB,EAAY,MACZ,EAAqB,IAAG,CAAO,EAE3B,EAAO,GACT,GAAkB,EAAS,CAAO,CAEtC,EAEM,OAAwB,GACxB,EAAW,GAAI,GAEnB,GAAQ,EAAC,EAAW,EAAG,EAAC,CAAI,QAAS,EAAK,EAC5C,EAEM,GAAyB,GACzB,EAAc,IAAK,WAAS,CAAK,GAAM,cAAsB,KAE7D,EAAK,gBAAkB,aAAe,EAAK,gBAAkB,UAAkB,OAE/E,EAAK,gBAAkB,UAAkB,SAEtC,UAGH,IAAkB,EAAe,EAAqB,EAAK,EAAC,KACzC,GAAsB,CAEzC,IAEA,EAAU,IAAK,YAAc,GAAM,eAAuB,EAAK,eAE/D,EAAK,EAAG,EAAW,EAAS,OAE5B,IAAK,EAAK,EAAW,EAAS,SAE3B,WAGH,GAAqB,GACzB,EAAc,IAAK,YAClB,GAAM,gBAAkB,aAAe,GAAM,gBAAkB,WAC5D,UACA,OAEA,GACJ,GAEA,EAAc,IAAK,UAAa,GAAM,eAAiB,KAAQ,KAE3D,GAAmB,GAA6B,WACzC,GAAW,SAAQ,OAAW,GAAI,GAAO,QAAS,CAAM,YAExD,GAAW,UAAS,OAAW,GAAI,EAAQ,QAAS,EAAS,KAAO,MAAS,KAEpF,GAAM,OAAW,GAAW,SAAU,IACpC,OAAQ,GAAM,OAAW,EAAO,IAAO,iBAChC,GAAI,EAAO,GAAI,QAAS,EAAO,SAAW,EAAO,KAAK,KAG7D,YAAa,GAAM,OAAW,EAAO,SAAY,iBAC1C,GAAI,EAAO,QAAS,QAAS,EAAO,SAAW,EAAO,KAAK,KAGlE,UAAW,GAAM,OAAW,EAAO,OAAU,UAAY,EAAO,MAAM,KAAI,SACnE,GAAI,GAAO,QAAS,EAAO,KAAK,CAE7C,QAES,GAAI,GAAM,QAAS,IAAI,CAClC,EAEM,OAAyC,KACvC,EAAI,EAAG,EAAU,GAAI,EAAK,EAAC,EAAU,EAAC,EAAW,IACjD,EAAa,GAAkB,CAAI,SAGvC,OACA,UAAS,EAAE,EAAW,EACtB,QAAO,EAAE,EAAW,IAAK,EACzB,OAAM,EAAE,EAAW,KAAI,CAAU,EAAG,EACpC,OAAQ,GAAc,EAAC,EAAW,EAAE,CAAI,EACxC,cAAe,GAAqB,CAAI,EACxC,aACA,SAAU,IAAe,UACzB,WAAY,GACZ,eACA,mBACA,YACA,SAAW,GAAO,EAAM,EAAY,EAAO,IAC3C,QAAO,EAAP,CAAO,EACP,MAAK,EAAE,CAAS,EAEpB,iBAEe,IAAc,OACtB,EAAU,KAAI,CAAO,aAEpB,EAAU,EAAG,EAAW,KAAI,CAAU,EAAG,IAC/C,EAAY,QACZ,EAAU,OACN,MACE,EAAU,EAAC,OAAQ,KACf,EAAU,GAAe,QAAO,EAAU,EAAC,OAAO,GAAW,QAE9D,EAAQ,GAAI,GACf,EAAY,EAAQ,SAAW,6CAA2C,UAG5E,CACF,CAEK,GACH,GAAQ,EAAC,EAAW,EAAG,EAAC,CAAI,QAAS,EAAK,EAE9C,OAAS,EAAK,GAKZ,EAHE,aAAe,OACX,EAAI,SACJ,6CACM,GACd,QAAU,GACR,EAAU,GACZ,CACF,CAEA,OAAc,GACP,CAAU,GAEE,EAAc,EAAC,CAAgB,KAAM,MAGhD,EAAO,GACT,GAAiB,EAAC,EAAW,GAAI,QAAS,EAAI,EAGpD,CAAC,iCAIA,EAAG,oBAAH,CAAG,EACD,0BACE,EAAK,8BACL,EAAW,yBACX,EAAQ,2BACR,EAAU,+BACV,EAAc,kCACd,EAAiB,oCACjB,EAAmB,wBACnB,YACU,GAAU,GAAS,EAAK,CAAI,QAAS,EAAK,kCAKtC,EAAO,SAAQ,EAAW,aAC/B,GAAiB,EAAC,EAAU,KAAM,SAAS,UACtC,GAAoB,EAAC,EAAU,IAJ/C,4BACE,mHAKA,EAAG,UAAH,CAAG,YAEC,EAAG,UAAH,CAAG,WAC0B,EAAW,aAA9B,EAAU,EAAC,YAAO,QAD5B,CAAG,MAAH,CAAG,aADD,EAAU,iCAOZ,EAAC,UAAD,EAAC,MAAD,CAAC,cAA8C,CAAS,QAAxD,CAAC,aADC,CAAS,iCAKX,EAAG,UAAH,CAAG,iBAKU,EAAW,IAAK,GAAC,EAAI,CAAO,GAJvC,8CAEU,EAAa,WACb,6DAKA,EAAU,EAAC,aAAe,QAAQ,YAEjC,CAAO,KAAI,EAAU,EAAC,WAAW,EAJ5C,8DAGU,mCAVZ,CAAG,MAAH,CAAG,WADD,EAAY,KAAI,EAAU,MAAK,EAAU,EAAC,mBAAiB,EAAI,EAAW,IAAG,CAAU,EAAG,GAAC,SAXjG,CAAG,MAAH,CAAG,4BAnBP,CAAG,YAAH,EAAG,kEAAyD,EAAQ,SAApE,CAAG,cAkDF,IAAD,CAAC,cAnDC,CAAU,EAAG,EAAC,gCAFX,CCzUR,IAAaE,GAAU,IAAI,YACd,GAAU,IAAI,YAE3B,SAAgB,IAAO,GAAG,EAAS,CAC/B,IAAM,EAAO,EAAQ,QAAQ,EAAK,CAAE,YAAa,EAAM,EAAQ,CAAC,EAC1D,EAAM,IAAI,WAAW,CAAI,EAC3B,EAAI,EACR,IAAK,IAAM,KAAU,EACjB,EAAI,IAAI,EAAQ,CAAC,EACjB,GAAK,EAAO,OAEhB,OAAO,CACX,CAoBA,SAAgBC,GAAO,EAAQ,CAC3B,IAAM,EAAQ,IAAI,WAAW,EAAO,MAAM,EAC1C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACpC,IAAM,EAAO,EAAO,WAAW,CAAC,EAChC,GAAI,EAAO,IACP,MAAU,UAAU,0CAA0C,EAElE,EAAM,GAAK,CACf,CACA,OAAO,CACX,CC1CA,SAAgB,IAAa,EAAO,CAChC,GAAI,WAAW,UAAU,SACrB,OAAO,EAAM,SAAS,EAE1B,IAAM,EAAa,MACb,EAAM,CAAC,EACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACnC,EAAI,KAAK,OAAO,aAAa,MAAM,KAAM,EAAM,SAAS,EAAG,EAAI,CAAU,CAAC,CAAC,EAE/E,OAAO,KAAK,EAAI,KAAK,EAAE,CAAC,CAC5B,CACA,SAAgB,IAAa,EAAS,CAClC,GAAI,WAAW,WACX,OAAO,WAAW,WAAW,CAAO,EAExC,IAAM,EAAS,KAAK,CAAO,EACrB,EAAQ,IAAI,WAAW,EAAO,MAAM,EAC1C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC/B,EAAM,GAAK,EAAO,WAAW,CAAC,EAElC,OAAO,CACX,CCnBA,SAAgB,IAAO,EAAO,CAC1B,GAAI,WAAW,WACX,OAAO,WAAW,WAAW,OAAO,GAAU,SAAW,EAAQ,GAAQ,OAAO,CAAK,EAAG,CACpF,SAAU,WACd,CAAC,EAEL,IAAI,EAAU,EACV,aAAmB,aACnB,EAAU,GAAQ,OAAO,CAAO,GAEpC,EAAU,EAAQ,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EACtD,GAAI,CACA,OAAO,IAAa,CAAO,CAC/B,MACM,CACF,MAAU,UAAU,mDAAmD,CAC3E,CACJ,CACA,SAAgBA,GAAO,EAAO,CAC1B,IAAI,EAAY,EAOhB,OANI,OAAO,GAAc,WACrB,EAAYD,GAAQ,OAAO,CAAS,GAEpC,WAAW,UAAU,SACd,EAAU,SAAS,CAAE,SAAU,YAAa,YAAa,EAAK,CAAC,EAEnE,IAAa,CAAS,EAAE,QAAQ,KAAM,EAAE,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CAC3F,CC7BA,IAAM,IAAY,EAAM,EAAO,mBAAyB,UAAU,kDAAkD,EAAK,WAAW,GAAM,EACpI,IAAe,EAAW,IAAS,EAAU,OAAS,EAC5D,SAAS,IAAc,EAAM,CACzB,OAAO,SAAS,EAAK,KAAK,MAAM,CAAC,EAAG,EAAE,CAC1C,CACA,SAAS,GAAgB,EAAW,EAAU,CAE1C,GADe,IAAc,EAAU,IAC9B,IAAM,EACX,MAAM,GAAS,OAAO,IAAY,gBAAgB,CAC1D,CACA,SAAS,IAAc,EAAK,CACxB,OAAQ,EAAR,CACI,IAAK,QACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,MAAU,MAAM,aAAa,CACrC,CACJ,CACA,SAAS,IAAW,EAAK,EAAO,CAC5B,GAAI,GAAS,CAAC,EAAI,OAAO,SAAS,CAAK,EACnC,MAAU,UAAU,sEAAsE,EAAM,EAAE,CAE1G,CACA,SAAgB,IAAkB,EAAK,EAAK,EAAO,CAC/C,OAAQ,EAAR,CACI,IAAK,QACL,IAAK,QACL,IAAK,QACD,GAAI,CAAC,GAAY,EAAI,UAAW,MAAM,EAClC,MAAM,GAAS,MAAM,EACzB,GAAgB,EAAI,UAAW,SAAS,EAAI,MAAM,CAAC,EAAG,EAAE,CAAC,EACzD,MAEJ,IAAK,QACL,IAAK,QACL,IAAK,QACD,GAAI,CAAC,GAAY,EAAI,UAAW,mBAAmB,EAC/C,MAAM,GAAS,mBAAmB,EACtC,GAAgB,EAAI,UAAW,SAAS,EAAI,MAAM,CAAC,EAAG,EAAE,CAAC,EACzD,MAEJ,IAAK,QACL,IAAK,QACL,IAAK,QACD,GAAI,CAAC,GAAY,EAAI,UAAW,SAAS,EACrC,MAAM,GAAS,SAAS,EAC5B,GAAgB,EAAI,UAAW,SAAS,EAAI,MAAM,CAAC,EAAG,EAAE,CAAC,EACzD,MAEJ,IAAK,UACL,IAAK,QACD,GAAI,CAAC,GAAY,EAAI,UAAW,SAAS,EACrC,MAAM,GAAS,SAAS,EAC5B,MAEJ,IAAK,YACL,IAAK,YACL,IAAK,YACD,GAAI,CAAC,GAAY,EAAI,UAAW,CAAG,EAC/B,MAAM,GAAS,CAAG,EACtB,MAEJ,IAAK,QACL,IAAK,QACL,IAAK,QAAS,CACV,GAAI,CAAC,GAAY,EAAI,UAAW,OAAO,EACnC,MAAM,GAAS,OAAO,EAC1B,IAAM,EAAW,IAAc,CAAG,EAElC,GADe,EAAI,UAAU,aACd,EACX,MAAM,GAAS,EAAU,sBAAsB,EACnD,KACJ,CACA,QACI,MAAU,UAAU,2CAA2C,CACvE,CACA,IAAW,EAAK,CAAK,CACzB,CCjFA,SAAS,GAAQ,EAAK,EAAQ,GAAG,EAAO,CAEpC,GADA,EAAQ,EAAM,OAAO,OAAO,EACxB,EAAM,OAAS,EAAG,CAClB,IAAM,EAAO,EAAM,IAAI,EACvB,GAAO,eAAe,EAAM,KAAK,IAAI,EAAE,OAAO,EAAK,EACvD,MACS,EAAM,SAAW,EACtB,GAAO,eAAe,EAAM,GAAG,MAAM,EAAM,GAAG,GAG9C,GAAO,WAAW,EAAM,GAAG,GAa/B,OAXI,GAAU,KACV,GAAO,aAAa,IAEf,OAAO,GAAW,YAAc,EAAO,KAC5C,GAAO,sBAAsB,EAAO,OAE/B,OAAO,GAAW,UAAY,GAC/B,EAAO,aAAa,OACpB,GAAO,4BAA4B,EAAO,YAAY,QAGvD,CACX,CACA,IAAa,KAAmB,EAAQ,GAAG,IAAU,GAAQ,eAAgB,EAAQ,GAAG,CAAK,EAChF,IAAW,EAAK,EAAQ,GAAG,IAAU,GAAQ,eAAe,EAAI,qBAAsB,EAAQ,GAAG,CAAK,EC1BtG,GAAb,cAA+B,KAAM,CACjC,OAAO,KAAO,mBACd,KAAO,mBACP,YAAY,EAAS,EAAS,CAC1B,MAAM,EAAS,CAAO,EACtB,KAAK,KAAO,KAAK,YAAY,KAC7B,MAAM,oBAAoB,KAAM,KAAK,WAAW,CACpD,CACJ,EA+Ba,GAAb,cAAsC,EAAU,CAC5C,OAAO,KAAO,yBACd,KAAO,wBACX,EAYa,GAAb,cAAgC,EAAU,CACtC,OAAO,KAAO,kBACd,KAAO,iBACX,EACa,IAAb,cAAgC,EAAU,CACtC,OAAO,KAAO,kBACd,KAAO,iBACX,ECxDa,GAAe,GAAQ,CAChC,GAAI,IAAM,OAAO,eAAiB,YAC9B,MAAO,GACX,GAAI,CACA,OAAO,aAAe,SAC1B,MACM,CACF,MAAO,EACX,CACJ,EACa,GAAe,GAAQ,IAAM,OAAO,eAAiB,YACrD,GAAa,GAAQ,GAAY,CAAG,GAAK,GAAY,CAAG,ECdrE,SAAgB,GAAa,EAAO,EAAM,CACtC,GAAI,EACA,MAAU,UAAU,GAAG,EAAK,yBAAyB,CAE7D,CCNA,IAAME,IAAgB,GAAU,OAAO,GAAU,YAAY,EAC7D,SAAgBC,GAAS,EAAO,CAC5B,GAAI,CAACD,IAAa,CAAK,GAAK,OAAO,UAAU,SAAS,KAAK,CAAK,IAAM,kBAClE,MAAO,GAEX,GAAI,OAAO,eAAe,CAAK,IAAM,KACjC,MAAO,GAEX,IAAI,EAAQ,EACZ,KAAO,OAAO,eAAe,CAAK,IAAM,MACpC,EAAQ,OAAO,eAAe,CAAK,EAEvC,OAAO,OAAO,eAAe,CAAK,IAAM,CAC5C,CACA,SAAgB,IAAW,GAAG,EAAS,CACnC,IAAM,EAAU,EAAQ,OAAO,OAAO,EACtC,GAAI,EAAQ,SAAW,GAAK,EAAQ,SAAW,EAC3C,MAAO,GAEX,IAAI,EACJ,IAAK,IAAM,KAAU,EAAS,CAC1B,IAAM,EAAa,OAAO,KAAK,CAAM,EACrC,GAAI,CAAC,GAAO,EAAI,OAAS,EAAG,CACxB,EAAM,IAAI,IAAI,CAAU,EACxB,QACJ,CACA,IAAK,IAAM,KAAa,EAAY,CAChC,GAAI,EAAI,IAAI,CAAS,EACjB,MAAO,GAEX,EAAI,IAAI,CAAS,CACrB,CACJ,CACA,MAAO,EACX,CACA,IAAa,GAAS,GAAQC,GAAS,CAAG,GAAK,OAAO,EAAI,KAAQ,SACrD,IAAgB,GAAQ,EAAI,MAAQ,QAC3C,EAAI,MAAQ,OAAS,OAAO,EAAI,MAAS,UAAa,OAAO,EAAI,GAAM,UAChE,IAAe,GAAQ,EAAI,MAAQ,OAAS,EAAI,IAAM,QAAa,EAAI,OAAS,OAChF,IAAe,GAAQ,EAAI,MAAQ,OAAS,OAAO,EAAI,GAAM,SCpC1E,SAAgB,IAAe,EAAK,EAAK,CACrC,GAAI,EAAI,WAAW,IAAI,GAAK,EAAI,WAAW,IAAI,EAAG,CAC9C,GAAM,CAAE,iBAAkB,EAAI,UAC9B,GAAI,OAAO,GAAkB,UAAY,EAAgB,KACrD,MAAU,UAAU,GAAG,EAAI,sDAAsD,CAEzF,CACJ,CACA,SAAS,IAAgB,EAAK,EAAW,CACrC,IAAM,EAAO,OAAO,EAAI,MAAM,EAAE,IAChC,OAAQ,EAAR,CACI,IAAK,QACL,IAAK,QACL,IAAK,QACD,MAAO,CAAE,OAAM,KAAM,MAAO,EAChC,IAAK,QACL,IAAK,QACL,IAAK,QACD,MAAO,CAAE,OAAM,KAAM,UAAW,WAAY,SAAS,EAAI,MAAM,EAAE,EAAG,EAAE,GAAK,CAAE,EACjF,IAAK,QACL,IAAK,QACL,IAAK,QACD,MAAO,CAAE,OAAM,KAAM,mBAAoB,EAC7C,IAAK,QACL,IAAK,QACL,IAAK,QACD,MAAO,CAAE,OAAM,KAAM,QAAS,WAAY,EAAU,UAAW,EACnE,IAAK,UACL,IAAK,QACD,MAAO,CAAE,KAAM,SAAU,EAC7B,IAAK,YACL,IAAK,YACL,IAAK,YACD,MAAO,CAAE,KAAM,CAAI,EACvB,QACI,MAAM,IAAI,GAAiB,OAAO,EAAI,4DAA4D,CAC1G,CACJ,CACA,eAAe,IAAU,EAAK,EAAK,EAAO,CACtC,GAAI,aAAe,WAAY,CAC3B,GAAI,CAAC,EAAI,WAAW,IAAI,EACpB,MAAU,UAAU,IAAgB,EAAK,YAAa,YAAa,cAAc,CAAC,EAEtF,OAAO,OAAO,OAAO,UAAU,MAAO,EAAK,CAAE,KAAM,OAAO,EAAI,MAAM,EAAE,IAAK,KAAM,MAAO,EAAG,GAAO,CAAC,CAAK,CAAC,CAC7G,CAEA,OADA,IAAkB,EAAK,EAAK,CAAK,EAC1B,CACX,CACA,eAAsBC,IAAK,EAAK,EAAK,EAAM,CACvC,IAAM,EAAY,MAAM,IAAU,EAAK,EAAK,MAAM,EAClD,IAAe,EAAK,CAAS,EAC7B,IAAM,EAAY,MAAM,OAAO,OAAO,KAAK,IAAgB,EAAK,EAAU,SAAS,EAAG,EAAW,CAAI,EACrG,OAAO,IAAI,WAAW,CAAS,CACnC,CCvDA,IAAM,GAAiB,+DACvB,SAAS,IAAc,EAAK,CACxB,IAAI,EACA,EACJ,OAAQ,EAAI,IAAZ,CACI,IAAK,MACD,OAAQ,EAAI,IAAZ,CACI,IAAK,YACL,IAAK,YACL,IAAK,YACD,EAAY,CAAE,KAAM,EAAI,GAAI,EAC5B,EAAY,EAAI,KAAO,CAAC,MAAM,EAAI,CAAC,QAAQ,EAC3C,MACJ,QACI,MAAM,IAAI,GAAiB,EAAc,CACjD,CACA,MAEJ,IAAK,MACD,OAAQ,EAAI,IAAZ,CACI,IAAK,QACL,IAAK,QACL,IAAK,QACD,EAAY,CAAE,KAAM,UAAW,KAAM,OAAO,EAAI,IAAI,MAAM,EAAE,GAAI,EAChE,EAAY,EAAI,EAAI,CAAC,MAAM,EAAI,CAAC,QAAQ,EACxC,MACJ,IAAK,QACL,IAAK,QACL,IAAK,QACD,EAAY,CAAE,KAAM,oBAAqB,KAAM,OAAO,EAAI,IAAI,MAAM,EAAE,GAAI,EAC1E,EAAY,EAAI,EAAI,CAAC,MAAM,EAAI,CAAC,QAAQ,EACxC,MACJ,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,eACD,EAAY,CACR,KAAM,WACN,KAAM,OAAO,SAAS,EAAI,IAAI,MAAM,EAAE,EAAG,EAAE,GAAK,GACpD,EACA,EAAY,EAAI,EAAI,CAAC,UAAW,WAAW,EAAI,CAAC,UAAW,SAAS,EACpE,MACJ,QACI,MAAM,IAAI,GAAiB,EAAc,CACjD,CACA,MAEJ,IAAK,KACD,OAAQ,EAAI,IAAZ,CACI,IAAK,QACL,IAAK,QACL,IAAK,QACD,EAAY,CACR,KAAM,QACN,WAAY,CAAE,MAAO,QAAS,MAAO,QAAS,MAAO,OAAQ,EAAE,EAAI,IACvE,EACA,EAAY,EAAI,EAAI,CAAC,MAAM,EAAI,CAAC,QAAQ,EACxC,MACJ,IAAK,UACL,IAAK,iBACL,IAAK,iBACL,IAAK,iBACD,EAAY,CAAE,KAAM,OAAQ,WAAY,EAAI,GAAI,EAChD,EAAY,EAAI,EAAI,CAAC,YAAY,EAAI,CAAC,EACtC,MACJ,QACI,MAAM,IAAI,GAAiB,EAAc,CACjD,CACA,MAEJ,IAAK,MACD,OAAQ,EAAI,IAAZ,CACI,IAAK,UACL,IAAK,QACD,EAAY,CAAE,KAAM,SAAU,EAC9B,EAAY,EAAI,EAAI,CAAC,MAAM,EAAI,CAAC,QAAQ,EACxC,MACJ,IAAK,UACL,IAAK,iBACL,IAAK,iBACL,IAAK,iBACD,EAAY,CAAE,KAAM,EAAI,GAAI,EAC5B,EAAY,EAAI,EAAI,CAAC,YAAY,EAAI,CAAC,EACtC,MACJ,QACI,MAAM,IAAI,GAAiB,EAAc,CACjD,CACA,MAEJ,QACI,MAAM,IAAI,GAAiB,6DAA6D,CAChG,CACA,MAAO,CAAE,YAAW,WAAU,CAClC,CACA,eAAsB,IAAS,EAAK,CAChC,GAAI,CAAC,EAAI,IACL,MAAU,UAAU,0DAA0D,EAElF,GAAM,CAAE,YAAW,aAAc,IAAc,CAAG,EAC5C,EAAU,CAAE,GAAG,CAAI,EAKzB,OAJI,EAAQ,MAAQ,OAChB,OAAO,EAAQ,IAEnB,OAAO,EAAQ,IACR,OAAO,OAAO,UAAU,MAAO,EAAS,EAAW,EAAI,KAAQ,IAAI,GAAK,EAAI,MAAsB,EAAI,SAAW,CAAS,CACrI,CCtGA,IAAM,GAAiB,6DACnBC,GACE,GAAY,MAAO,EAAK,EAAK,EAAK,EAAS,KAAU,CACvD,KAAU,IAAI,QACd,IAAI,EAASA,GAAM,IAAI,CAAG,EAC1B,GAAI,IAAS,GACT,OAAO,EAAO,GAElB,IAAM,EAAY,MAAM,IAAS,CAAE,GAAG,EAAK,KAAI,CAAC,EAShD,OARI,GACA,OAAO,OAAO,CAAG,EAChB,EAID,EAAO,GAAO,EAHd,GAAM,IAAI,EAAK,EAAG,GAAM,CAAU,CAAC,EAKhC,CACX,EACM,KAAmB,EAAW,IAAQ,CACxC,KAAU,IAAI,QACd,IAAI,EAASA,GAAM,IAAI,CAAS,EAChC,GAAI,IAAS,GACT,OAAO,EAAO,GAElB,IAAM,EAAW,EAAU,OAAS,SAC9B,EAAc,IAChB,EACJ,GAAI,EAAU,oBAAsB,SAAU,CAC1C,OAAQ,EAAR,CACI,IAAK,UACL,IAAK,iBACL,IAAK,iBACL,IAAK,iBACD,MACJ,QACI,MAAU,UAAU,EAAc,CAC1C,CACA,EAAY,EAAU,YAAY,EAAU,kBAAmB,EAAa,EAAW,CAAC,EAAI,CAAC,YAAY,CAAC,CAC9G,CACA,GAAI,EAAU,oBAAsB,UAAW,CAC3C,GAAI,IAAQ,SAAW,IAAQ,UAC3B,MAAU,UAAU,EAAc,EAEtC,EAAY,EAAU,YAAY,EAAU,kBAAmB,EAAa,CACxE,EAAW,SAAW,MAC1B,CAAC,CACL,CACA,OAAQ,EAAU,kBAAlB,CACI,IAAK,YACL,IAAK,YACL,IAAK,YACD,GAAI,IAAQ,EAAU,kBAAkB,YAAY,EAChD,MAAU,UAAU,EAAc,EAEtC,EAAY,EAAU,YAAY,EAAU,kBAAmB,EAAa,CACxE,EAAW,SAAW,MAC1B,CAAC,CAET,CACA,GAAI,EAAU,oBAAsB,MAAO,CACvC,IAAI,EACJ,OAAQ,EAAR,CACI,IAAK,WACD,EAAO,QACP,MACJ,IAAK,QACL,IAAK,QACL,IAAK,eACD,EAAO,UACP,MACJ,IAAK,QACL,IAAK,QACL,IAAK,eACD,EAAO,UACP,MACJ,IAAK,QACL,IAAK,QACL,IAAK,eACD,EAAO,UACP,MACJ,QACI,MAAU,UAAU,EAAc,CAC1C,CACA,GAAI,EAAI,WAAW,UAAU,EACzB,OAAO,EAAU,YAAY,CACzB,KAAM,WACN,MACJ,EAAG,EAAa,EAAW,CAAC,SAAS,EAAI,CAAC,SAAS,CAAC,EAExD,EAAY,EAAU,YAAY,CAC9B,KAAM,EAAI,WAAW,IAAI,EAAI,UAAY,oBACzC,MACJ,EAAG,EAAa,CAAC,EAAW,SAAW,MAAM,CAAC,CAClD,CACA,GAAI,EAAU,oBAAsB,KAAM,CAMtC,IAAM,EAAa,IALF,IAAI,CACjB,CAAC,aAAc,OAAO,EACtB,CAAC,YAAa,OAAO,EACrB,CAAC,YAAa,OAAO,CACzB,CACsB,EAAE,IAAI,EAAU,sBAAsB,UAAU,EACtE,GAAI,CAAC,EACD,MAAU,UAAU,EAAc,EAEtC,IAAM,EAAgB,CAAE,MAAO,QAAS,MAAO,QAAS,MAAO,OAAQ,EACnE,EAAc,IAAQ,IAAe,EAAc,KACnD,EAAY,EAAU,YAAY,CAC9B,KAAM,QACN,YACJ,EAAG,EAAa,CAAC,EAAW,SAAW,MAAM,CAAC,GAE9C,EAAI,WAAW,SAAS,IACxB,EAAY,EAAU,YAAY,CAC9B,KAAM,OACN,YACJ,EAAG,EAAa,EAAW,CAAC,EAAI,CAAC,YAAY,CAAC,EAEtD,CACA,GAAI,CAAC,EACD,MAAU,UAAU,EAAc,EAQtC,OANK,EAID,EAAO,GAAO,EAHd,GAAM,IAAI,EAAW,EAAG,GAAM,CAAU,CAAC,EAKtC,CACX,EACA,eAAsBC,IAAa,EAAK,EAAK,CAIzC,GAHI,aAAe,YAGf,GAAY,CAAG,EACf,OAAO,EAEX,GAAI,GAAY,CAAG,EAAG,CAClB,GAAI,EAAI,OAAS,SACb,OAAO,EAAI,OAAO,EAEtB,GAAI,gBAAiB,GAAO,OAAO,EAAI,aAAgB,WACnD,GAAI,CACA,OAAO,IAAgB,EAAK,CAAG,CACnC,OACO,EAAK,CACR,GAAI,aAAe,UACf,MAAM,CAEd,CAGJ,OAAO,GAAU,EADP,EAAI,OAAO,CAAE,OAAQ,KAAM,CACb,EAAG,CAAG,CAClC,CACA,GAAI,GAAM,CAAG,EAIT,OAHI,EAAI,EACG,IAAO,EAAI,CAAC,EAEhB,GAAU,EAAK,EAAK,EAAK,EAAI,EAExC,MAAU,MAAM,aAAa,CACjC,CCpKA,SAAgB,IAAa,EAAK,EAAmB,EAAkB,EAAiB,EAAY,CAChG,GAAI,EAAW,OAAS,QAAa,GAAiB,OAAS,OAC3D,MAAM,IAAI,EAAI,gEAAgE,EAElF,GAAI,CAAC,GAAmB,EAAgB,OAAS,OAC7C,OAAO,IAAI,IAEf,GAAI,CAAC,MAAM,QAAQ,EAAgB,IAAI,GACnC,EAAgB,KAAK,SAAW,GAChC,EAAgB,KAAK,KAAM,GAAU,OAAO,GAAU,UAAY,EAAM,SAAW,CAAC,EACpF,MAAM,IAAI,EAAI,uFAAuF,EAEzG,IAAI,EACJ,CACI,CADA,IAAqB,OAIR,EAHA,IAAI,IAAI,CAAC,GAAG,OAAO,QAAQ,CAAgB,EAAG,GAAG,EAAkB,QAAQ,CAAC,CAAC,EAK9F,IAAK,IAAM,KAAa,EAAgB,KAAM,CAC1C,GAAI,CAAC,EAAW,IAAI,CAAS,EACzB,MAAM,IAAI,GAAiB,+BAA+B,EAAU,oBAAoB,EAE5F,GAAI,EAAW,KAAe,OAC1B,MAAM,IAAI,EAAI,+BAA+B,EAAU,aAAa,EAExE,GAAI,EAAW,IAAI,CAAS,GAAK,EAAgB,KAAe,OAC5D,MAAM,IAAI,EAAI,+BAA+B,EAAU,8BAA8B,CAE7F,CACA,OAAO,IAAI,IAAI,EAAgB,IAAI,CACvC,CC7BA,IAAM,GAAO,GAAQ,IAAM,OAAO,aAC5B,IAAgB,EAAK,EAAK,IAAU,CACtC,GAAI,EAAI,MAAQ,OAAW,CACvB,IAAI,EACJ,OAAQ,EAAR,CACI,IAAK,OACL,IAAK,SACD,EAAW,MACX,MACJ,IAAK,UACL,IAAK,UACD,EAAW,MACX,KACR,CACA,GAAI,EAAI,MAAQ,EACZ,MAAU,UAAU,sDAAsD,EAAS,eAAe,CAE1G,CACA,GAAI,EAAI,MAAQ,QAAa,EAAI,MAAQ,EACrC,MAAU,UAAU,sDAAsD,EAAI,eAAe,EAEjG,GAAI,MAAM,QAAQ,EAAI,OAAO,EAAG,CAC5B,IAAI,EACJ,OAAQ,GAAR,CACI,KAAK,IAAU,QAAU,IAAU,SACnC,KAAK,IAAQ,MACb,KAAK,EAAI,SAAS,QAAQ,EACtB,EAAgB,EAChB,MACJ,KAAK,EAAI,WAAW,OAAO,EACvB,EAAgB,aAChB,MACJ,IAAK,0BAA0B,KAAK,CAAG,EACnC,CAII,CAJA,CAAC,EAAI,SAAS,KAAK,GAAK,EAAI,SAAS,IAAI,EACzB,IAAU,UAAY,UAAY,YAGlC,EAEpB,MACJ,KAAK,IAAU,WAAa,EAAI,WAAW,KAAK,EAC5C,EAAgB,UAChB,MACJ,KAAK,IAAU,UACX,EAAgB,EAAI,WAAW,KAAK,EAAI,YAAc,aACtD,KACR,CACA,GAAI,GAAiB,EAAI,SAAS,WAAW,CAAa,IAAM,GAC5D,MAAU,UAAU,+DAA+D,EAAc,eAAe,CAExH,CACA,MAAO,EACX,EACM,KAAsB,EAAK,EAAK,IAAU,CACxC,kBAAe,YAEnB,IAAIC,GAAU,CAAG,EAAG,CAChB,GAAIC,IAAgB,CAAG,GAAK,GAAa,EAAK,EAAK,CAAK,EACpD,OACJ,MAAU,UAAU,yHAAyH,CACjJ,CACA,GAAI,CAAC,GAAU,CAAG,EACd,MAAU,UAAUC,GAAgB,EAAK,EAAK,YAAa,YAAa,eAAgB,YAAY,CAAC,EAEzG,GAAI,EAAI,OAAS,SACb,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,6DAA6D,CALjG,CAOJ,EACM,KAAuB,EAAK,EAAK,IAAU,CAC7C,GAAIF,GAAU,CAAG,EACb,OAAQ,EAAR,CACI,IAAK,UACL,IAAK,OACD,GAAIG,IAAiB,CAAG,GAAK,GAAa,EAAK,EAAK,CAAK,EACrD,OACJ,MAAU,UAAU,uDAAuD,EAC/E,IAAK,UACL,IAAK,SACD,GAAIC,IAAgB,CAAG,GAAK,GAAa,EAAK,EAAK,CAAK,EACpD,OACJ,MAAU,UAAU,sDAAsD,CAClF,CAEJ,GAAI,CAAC,GAAU,CAAG,EACd,MAAU,UAAUF,GAAgB,EAAK,EAAK,YAAa,YAAa,cAAc,CAAC,EAE3F,GAAI,EAAI,OAAS,SACb,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,kEAAkE,EAEtG,GAAI,EAAI,OAAS,SACb,OAAQ,EAAR,CACI,IAAK,OACD,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,sEAAsE,EAC1G,IAAK,UACD,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,yEAAyE,CACjH,CAEJ,GAAI,EAAI,OAAS,UACb,OAAQ,EAAR,CACI,IAAK,SACD,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,uEAAuE,EAC3G,IAAK,UACD,MAAU,UAAU,GAAG,GAAI,CAAG,EAAE,wEAAwE,CAChH,CAER,EACA,SAAgB,IAAa,EAAK,EAAK,EAAO,CAC1C,OAAQ,EAAI,UAAU,EAAG,CAAC,EAA1B,CACI,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACD,IAAmB,EAAK,EAAK,CAAK,EAClC,MACJ,QACI,IAAoB,EAAK,EAAK,CAAK,CAC3C,CACJ,CCtHA,IAAMG,GAAS,GAAS,KAAK,MAAM,EAAK,QAAQ,EAAI,GAAI,EAClD,GAAS,GACT,GAAO,GAAS,GAChB,GAAM,GAAO,GACb,IAAO,GAAM,EACbC,IAAO,GAAM,OACb,IAAQ,oIACd,SAAgB,GAAK,EAAK,CACtB,IAAM,EAAU,IAAM,KAAK,CAAG,EAC9B,GAAI,CAAC,GAAY,EAAQ,IAAM,EAAQ,GACnC,MAAU,UAAU,4BAA4B,EAEpD,IAAM,EAAQ,WAAW,EAAQ,EAAE,EAC7B,EAAO,EAAQ,GAAG,YAAY,EAChC,EACJ,OAAQ,EAAR,CACI,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,IACD,EAAc,KAAK,MAAM,CAAK,EAC9B,MACJ,IAAK,SACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,IACD,EAAc,KAAK,MAAM,EAAQ,EAAM,EACvC,MACJ,IAAK,OACL,IAAK,QACL,IAAK,KACL,IAAK,MACL,IAAK,IACD,EAAc,KAAK,MAAM,EAAQ,EAAI,EACrC,MACJ,IAAK,MACL,IAAK,OACL,IAAK,IACD,EAAc,KAAK,MAAM,EAAQ,EAAG,EACpC,MACJ,IAAK,OACL,IAAK,QACL,IAAK,IACD,EAAc,KAAK,MAAM,EAAQ,GAAI,EACrC,MACJ,QACI,EAAc,KAAK,MAAM,EAAQA,GAAI,EACrC,KACR,CAIA,OAHI,EAAQ,KAAO,KAAO,EAAQ,KAAO,MAC9B,CAAC,EAEL,CACX,CACA,SAAS,GAAc,EAAO,EAAO,CACjC,GAAI,CAAC,OAAO,SAAS,CAAK,EACtB,MAAU,UAAU,WAAW,EAAM,OAAO,EAEhD,OAAO,CACX,CAyGA,IAAa,IAAb,KAA8B,CAC1B,GACA,YAAY,EAAS,CACjB,GAAI,CAACV,GAAS,CAAO,EACjB,MAAU,UAAU,kCAAkC,EAE1D,KAAKW,GAAW,gBAAgB,CAAO,CAC3C,CACA,MAAO,CACH,OAAOd,GAAQ,OAAO,KAAK,UAAU,KAAKc,EAAQ,CAAC,CACvD,CACA,IAAI,KAAM,CACN,OAAO,KAAKA,GAAS,GACzB,CACA,IAAI,IAAI,EAAO,CACX,KAAKA,GAAS,IAAM,CACxB,CACA,IAAI,KAAM,CACN,OAAO,KAAKA,GAAS,GACzB,CACA,IAAI,IAAI,EAAO,CACX,KAAKA,GAAS,IAAM,CACxB,CACA,IAAI,KAAM,CACN,OAAO,KAAKA,GAAS,GACzB,CACA,IAAI,IAAI,EAAO,CACX,KAAKA,GAAS,IAAM,CACxB,CACA,IAAI,IAAI,EAAO,CACX,KAAKA,GAAS,IAAM,CACxB,CACA,IAAI,IAAI,EAAO,CACP,OAAO,GAAU,SACjB,KAAKA,GAAS,IAAM,GAAc,eAAgB,CAAK,EAElD,aAAiB,KACtB,KAAKA,GAAS,IAAM,GAAc,eAAgBF,GAAM,CAAK,CAAC,EAG9D,KAAKE,GAAS,IAAMF,GAAM,IAAI,IAAM,EAAI,GAAK,CAAK,CAE1D,CACA,IAAI,IAAI,EAAO,CACP,OAAO,GAAU,SACjB,KAAKE,GAAS,IAAM,GAAc,oBAAqB,CAAK,EAEvD,aAAiB,KACtB,KAAKA,GAAS,IAAM,GAAc,oBAAqBF,GAAM,CAAK,CAAC,EAGnE,KAAKE,GAAS,IAAMF,GAAM,IAAI,IAAM,EAAI,GAAK,CAAK,CAE1D,CACA,IAAI,IAAI,EAAO,CACP,IAAU,OACV,KAAKE,GAAS,IAAMF,GAAM,IAAI,IAAM,EAE/B,aAAiB,KACtB,KAAKE,GAAS,IAAM,GAAc,cAAeF,GAAM,CAAK,CAAC,EAExD,OAAO,GAAU,SACtB,KAAKE,GAAS,IAAM,GAAc,cAAeF,GAAM,IAAI,IAAM,EAAI,GAAK,CAAK,CAAC,EAGhF,KAAKE,GAAS,IAAM,GAAc,cAAe,CAAK,CAE9D,CACJ,ECpOa,IAAb,KAA2B,CACvB,GACA,GACA,GACA,YAAY,EAAS,CACjB,GAAI,EAAE,aAAmB,YACrB,MAAU,UAAU,2CAA2C,EAEnE,KAAKA,GAAW,CACpB,CACA,mBAAmB,EAAiB,CAGhC,OAFA,GAAa,KAAKC,GAAkB,oBAAoB,EACxD,KAAKA,GAAmB,EACjB,IACX,CACA,qBAAqB,EAAmB,CAGpC,OAFA,GAAa,KAAKC,GAAoB,sBAAsB,EAC5D,KAAKA,GAAqB,EACnB,IACX,CACA,MAAM,KAAK,EAAK,EAAS,CACrB,GAAI,CAAC,KAAKD,IAAoB,CAAC,KAAKC,GAChC,MAAM,IAAI,GAAW,iFAAiF,EAE1G,GAAI,CAAC,IAAW,KAAKD,GAAkB,KAAKC,EAAkB,EAC1D,MAAM,IAAI,GAAW,2EAA2E,EAEpG,IAAM,EAAa,CACf,GAAG,KAAKD,GACR,GAAG,KAAKC,EACZ,EACM,EAAa,IAAa,GAAY,IAAI,IAAI,CAAC,CAAC,MAAO,EAAI,CAAC,CAAC,EAAG,GAAS,KAAM,KAAKD,GAAkB,CAAU,EAClH,EAAM,GACV,GAAI,EAAW,IAAI,KAAK,IACpB,EAAM,KAAKA,GAAiB,IACxB,OAAO,GAAQ,WACf,MAAM,IAAI,GAAW,yEAAyE,EAGtG,GAAM,CAAE,OAAQ,EAChB,GAAI,OAAO,GAAQ,UAAY,CAAC,EAC5B,MAAM,IAAI,GAAW,2DAA2D,EAEpF,IAAa,EAAK,EAAK,MAAM,EAC7B,IAAI,EACA,EACA,GACA,EAAWE,GAAK,KAAKH,EAAQ,EAC7B,EAAWb,GAAO,CAAQ,IAG1B,EAAW,KAAKa,GAChB,EAAW,IAEf,IAAI,EACA,EACA,KAAKC,IACL,EAAwBE,GAAK,KAAK,UAAU,KAAKF,EAAgB,CAAC,EAClE,EAAuBd,GAAO,CAAqB,IAGnD,EAAwB,GACxB,EAAuB,IAAI,YAE/B,IAAM,EAAO,IAAO,EAAsBA,GAAO,GAAG,EAAG,CAAQ,EAGzD,EAAM,CACR,UAAWgB,GAAK,MAFIb,IAAK,EAAK,MADlBE,IAAa,EAAK,CAAG,EACA,CAAI,CAEZ,EACzB,QAAS,CACb,EAOA,OANI,KAAKU,KACL,EAAI,OAAS,KAAKA,IAElB,KAAKD,KACL,EAAI,UAAY,GAEb,CACX,CACJ,ECvFa,IAAb,KAAyB,CACrB,GACA,YAAY,EAAS,CACjB,KAAKG,GAAa,IAAI,IAAc,CAAO,CAC/C,CACA,mBAAmB,EAAiB,CAEhC,OADA,KAAKA,GAAW,mBAAmB,CAAe,EAC3C,IACX,CACA,MAAM,KAAK,EAAK,EAAS,CACrB,IAAM,EAAM,MAAM,KAAKA,GAAW,KAAK,EAAK,CAAO,EACnD,GAAI,EAAI,UAAY,OAChB,MAAU,UAAU,2DAA2D,EAEnF,MAAO,GAAG,EAAI,UAAU,GAAG,EAAI,QAAQ,GAAG,EAAI,WAClD,CACJ,ECda,IAAb,KAAqB,CACjB,GACA,GACA,YAAY,EAAU,CAAC,EAAG,CACtB,KAAKC,GAAO,IAAI,IAAiB,CAAO,CAC5C,CACA,UAAU,EAAQ,CAEd,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,WAAW,EAAS,CAEhB,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,YAAY,EAAU,CAElB,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,OAAO,EAAO,CAEV,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,aAAa,EAAO,CAEhB,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,kBAAkB,EAAO,CAErB,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,YAAY,EAAO,CAEf,MADA,MAAKA,GAAK,IAAM,EACT,IACX,CACA,mBAAmB,EAAiB,CAEhC,MADA,MAAKJ,GAAmB,EACjB,IACX,CACA,MAAM,KAAK,EAAK,EAAS,CACrB,IAAM,EAAM,IAAI,IAAY,KAAKI,GAAK,KAAK,CAAC,EAE5C,GADA,EAAI,mBAAmB,KAAKJ,EAAgB,EACxC,MAAM,QAAQ,KAAKA,IAAkB,IAAI,GACzC,KAAKA,GAAiB,KAAK,SAAS,KAAK,GACzC,KAAKA,GAAiB,MAAQ,GAC9B,MAAM,IAAI,IAAW,qCAAqC,EAE9D,OAAO,EAAI,KAAK,EAAK,CAAO,CAChC,CACJ,ECjDIK,GAAY,OAAO,eACnB,KAAe,EAAK,IAAe,CACtC,IAAI,EAAS,CAAC,EACd,IAAK,IAAI,KAAQ,EAAK,GAAU,EAAQ,EAAM,CAC7C,IAAK,EAAI,GACT,WAAY,EACb,CAAC,EAED,OADK,GAAY,GAAU,EAAQ,OAAO,YAAa,CAAE,MAAO,QAAS,CAAC,EACnE,CACR,EAGI,GAAqB,cAAc,KAAM,CAC5C,YAAY,EAAS,EAAS,CAC7B,MAAM,CAAO,EACb,KAAK,KAAO,qBACZ,KAAK,WAAa,GAAS,WAC3B,KAAK,OAAS,GAAS,WACvB,KAAK,OAAS,GAAS,OACvB,KAAK,QAAU,GAAS,OACxB,KAAK,aAAe,GAAS,aAC7B,KAAK,UAAY,GAAS,UAC1B,KAAK,WAAa,GAAS,WAC3B,KAAK,YAAc,GAAS,aAAe,CAAC,CAC7C,CACA,IAAI,oBAAqB,CACxB,OAAO,KAAK,YAAc,KAAK,MAChC,CACA,IAAI,QAAS,CACZ,OAAO,KAAK,UACb,CACA,IAAI,OAAO,EAAO,CACjB,KAAK,WAAa,CACnB,CACA,IAAI,SAAU,CACb,OAAO,KAAK,MACb,CACA,IAAI,QAAQ,EAAO,CAClB,KAAK,OAAS,CACf,CACD,EAGIC,GAAmB,CACtB,IAAK,qBACL,IAAK,4CACL,IAAK,uCACL,IAAK,mDACL,IAAK,uCACL,IAAK,yCACL,IAAK,uDACL,IAAK,mDACL,IAAK,2BACL,IAAK,wCACL,IAAK,8BACL,IAAK,wCACL,IAAK,yBACL,IAAK,mCACL,IAAK,wCACL,IAAK,qCACN,EACIC,GAAsB,IAAI,IAAI,CACjC,cACA,eACA,YACA,YACA,qBACA,WACA,uBACA,oBACA,wBACA,cACA,sBACA,iBACD,EAAE,IAAK,GAAU,EAAM,YAAY,CAAC,CAAC,EACjCC,GAAY,GAAU,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,EACzFC,GAAiB,GAChB,GAAU,KAAiC,MAC3C,OAAO,GAAU,UAAY,OAAO,GAAU,UAAY,OAAO,GAAU,YACjE,OAAO,CAAK,EAAE,KACpB,GAED,KAEJC,GAAa,GACZ,MAAM,QAAQ,CAAK,EAAU,EAAM,IAAK,GAASD,GAAc,CAAI,CAAC,EAAE,OAAQ,GAAS,EAAQ,CAAK,EAAE,OAAQ,GAAS,EAAK,YAAY,IAAM,MAAM,EAAE,KAAK,KAAK,GAAK,KAClKA,GAAc,CAAK,EAEvBE,GAAuB,GAAU,CACpC,IAAM,EAAOF,GAAc,CAAK,EAChC,OAAO,EAAO,EAAK,QAAQ,UAAW,GAAG,EAAE,YAAY,EAAI,IAAK,EACjE,EACIG,IAAwB,GACtB,MAAM,QAAQ,CAAK,EACjB,EAAM,IAAK,GAAU,CAC3B,GAAI,CAACJ,GAAS,CAAK,EAAG,OAAO,KAC7B,IAAM,EAAQE,GAAU,EAAM,OAAS,EAAM,GAAG,GAAK,IAAK,GACpD,EAAUD,GAAc,EAAM,SAAW,EAAM,GAAG,GAAK,IAAK,GAC5D,EAAOA,GAAc,EAAM,IAAI,GAAK,IAAK,GACzC,EAAOE,GAAoB,EAAM,IAAI,EAE3C,MADI,CAAC,GAAS,CAAC,GAAW,CAAC,GAAQ,CAAC,EAAa,KAC1C,CACN,QACA,UACA,OACA,MACD,CACD,CAAC,EAAE,OAAQ,GAAU,EAAQ,CAAM,EAdD,CAAC,EAgBhCE,IAAmB,EAAQ,IAAQ,CACtC,IAAM,EAAYJ,GAAc,CAAM,EACtC,GAAI,EAAW,CACd,EAAI,IAAI,CAAS,EACjB,MACD,CACA,GAAI,MAAM,QAAQ,CAAM,EAAG,CAC1B,EAAO,QAAS,GAAUI,GAAgB,EAAO,CAAG,CAAC,EACrD,MACD,CACA,GAAI,CAACL,GAAS,CAAM,EAAG,OACvB,IAAM,EAAME,GAAU,EAAO,GAAG,GAAKD,GAAc,EAAO,KAAK,EACzD,EAASA,GAAc,EAAO,KAAO,EAAO,SAAW,EAAO,OAAS,EAAO,MAAM,EACtF,GAAQ,EAAI,IAAI,EAAM,GAAG,EAAI,IAAI,IAAW,CAAM,EACtD,IAAM,EAAc,EAAO,MACvBD,GAAS,CAAW,GAAG,GAAgB,EAAa,CAAG,EACvD,WAAY,GAAU,EAAO,SAAW,GAAQ,GAAgB,EAAO,OAAQ,CAAG,EACtF,IAAM,EAAc,EAAO,cAAgB,EAAO,aAAe,EAAO,OACpE,IAAgB,GAAQ,GAAgB,EAAa,CAAG,CAC7D,EACIM,IAAkB,EAAY,IAAe,CAChD,GAAI,GAAcR,GAAiB,GAAa,OAAOA,GAAiB,GACxE,GAAI,EAAY,CACf,GAAI,GAAc,IAAK,MAAO,yBAC9B,GAAI,GAAc,IAAK,MAAO,8CAC/B,CACA,IAAM,GAAQ,GAAc,IAAI,KAAK,EAGrC,MAFI,CAAC,GACDC,GAAoB,IAAI,EAAK,YAAY,CAAC,EAAU,KACjD,CACR,EACIQ,IAAwB,GAAU,CACrC,IAAM,EAAa,EAAM,KAAK,EAAE,YAAY,EAK5C,MADA,GAHI,CAAC,GACDR,GAAoB,IAAI,CAAU,GAClC,UAAU,KAAK,CAAU,GACzB,oBAAoB,KAAK,CAAU,EAExC,EACIS,KAA0B,EAAQ,EAAU,CAAC,IAAM,CACtD,IAAM,EAAsB,IAAI,IAChC,GAAgB,EAAQ,CAAG,EAC3B,IAAM,EAAa,CAAC,GAAG,CAAG,EAAE,IAAK,GAAU,EAAM,KAAK,CAAC,EAAE,OAAO,OAAO,EACjE,EAAa,EAAW,OAAQ,GAAU,CAACD,IAAqB,CAAK,CAAC,EAC5E,GAAI,EAAW,OAAQ,OAAO,EAAW,MAAM,EAAG,CAAC,EAAE,KAAK,IAAI,EAC9D,GAAI,EAAW,OAAQ,CACtB,IAAM,EAAY,EAAW,GAAG,KAAK,EACrC,GAAI,EAAW,OAAOD,GAAe,EAAQ,WAAY,EAAQ,UAAU,GAAK,CACjF,CAGA,OAFiBL,GAAc,EAAQ,QACnC,IACGK,GAAe,EAAQ,WAAY,EAAQ,UAAU,GAAK,8BAClE,EACI,IAAoB,KAAO,IAAa,CAC3C,IAAM,EAAc,EAAS,QAAQ,IAAI,cAAc,GAAK,GACxD,EAAS,KACT,EACJ,GAAI,EAAY,SAAS,kBAAkB,EAAG,GAAI,CACjD,EAAS,MAAM,EAAS,KAAK,CAC9B,MAAQ,CACP,EAAS,IACV,MACK,GAAI,CACR,EAAe,MAAM,EAAS,KAAK,EACnC,EAAS,CACV,MAAQ,CACP,EAAe,IAAK,GACpB,EAAS,IACV,CACA,IAAM,EAAU,EACV,EAAmBN,GAAS,CAAO,GAAK,OAAO,UAAU,eAAe,KAAK,EAAS,QAAQ,EAAI,EAAQ,OAAS,EACnH,EAAaA,GAAS,CAAO,EAAIG,GAAoB,EAAQ,WAAW,GAAKA,GAAoB,EAAQ,UAAU,GAAKA,GAAoB,EAAQ,IAAI,IAAMH,GAAS,EAAQ,KAAK,EAAIG,GAAoB,EAAQ,MAAM,MAAQ,EAAQ,MAAM,WAAW,EAAI,IAAK,IAAK,IAAK,GAC9Q,EAAYH,GAAS,CAAO,EAAIC,GAAc,EAAQ,UAAU,GAAKA,GAAc,EAAQ,SAAS,IAAMD,GAAS,EAAQ,KAAK,EAAIC,GAAc,EAAQ,MAAM,YAAc,EAAQ,MAAM,SAAS,EAAI,IAAK,KAAM,EAAS,QAAQ,IAAI,cAAc,GAAG,KAAK,GAAK,IAAK,GAAI,EAAS,QAAQ,IAAI,cAAc,GAAG,KAAK,GAAK,IAAK,GAClU,EAAcD,GAAS,CAAO,EAAII,IAAqB,EAAQ,cAAgB,EAAQ,aAAe,EAAQ,MAAM,EAAI,CAAC,EAC/H,MAAO,CACN,OAAQ,EACR,UACA,eACA,aACA,YACA,aACD,CACD,EAGI,IAAU,IAAI,YACd,IAAwB,KAAM,CACjC,YAAY,EAAU,CACrB,KAAK,SAAW,EAChB,KAAK,OAAS,KACd,KAAK,OAAS,EAAS,iBAAmB,EAAS,iBAAiB,KAAK,EAAI,IAC9E,CACA,MAAM,MAAO,CACZ,GAAI,CAAC,KAAK,OAAQ,MAAM,IAAI,GAAmB,8EAA8E,EAC7H,IAAM,EAAM,KAAK,MAAM,KAAK,IAAI,EAAI,GAAG,EACjC,EAAM,EAAM,KAAK,SAAS,uBAC1B,EAAS,IAAI,IAAQ,CAAC,CAAC,EAAE,mBAAmB,CAAE,IAAK,OAAQ,CAAC,EAAE,UAAU,KAAK,SAAS,gBAAgB,EAAE,WAAW,KAAK,SAAS,WAAW,EAAE,YAAY,CAAG,EAAE,kBAAkB,CAAG,EAE1L,OADI,KAAK,SAAS,oBAAoB,EAAO,YAAY,KAAK,SAAS,kBAAkB,EAClF,CACN,MAAO,MAAM,EAAO,KAAK,IAAQ,OAAO,KAAK,MAAM,CAAC,EACpD,KACD,CACD,CACA,MAAM,MAAM,EAAe,CAC1B,IAAM,EAAM,KAAK,MAAM,KAAK,IAAI,EAAI,GAAG,EACvC,GAAI,KAAK,QAAU,KAAK,OAAO,UAAY,KAAK,SAAS,iBAAmB,EAAK,OAAO,KAAK,OAAO,MACpG,GAAI,CACH,IAAM,EAAS,MAAM,KAAK,KAAK,EAK/B,MAJA,MAAK,OAAS,CACb,MAAO,EAAO,MACd,UAAW,EAAO,GACnB,EACO,EAAO,KACf,OAAS,EAAO,CACf,GAAI,EAAe,MAAM,EACzB,OAAO,IACR,CACD,CACD,EACI,IAAqB,KAAM,CAC9B,YAAY,EAAU,EAAW,CAChC,KAAK,SAAW,EAChB,KAAK,UAAY,GAAa,IAAI,IAAsB,CAAQ,CACjE,CACA,MAAM,aAAa,EAAqB,CACvC,IAAM,EAAU,CAAC,EACX,EAAe,MAAM,KAAK,UAAU,MAAM,CAAmB,EAEnE,OADI,IAAc,EAAQ,mBAAqB,GACxC,CACR,CACD,EAGI,IAAoB,GAAQ,CAC/B,GAAI,CAAC,EAAK,MAAO,wBACjB,IAAI,EAAO,EAAI,KAAK,EAAE,QAAQ,OAAQ,EAAE,EAClC,EAAU,EAAK,YAAY,EACjC,IAAK,IAAM,IAAU,CAAC,UAAW,MAAM,EAAG,GAAI,EAAQ,SAAS,CAAM,EAAG,CACvE,EAAO,EAAK,MAAM,EAAG,CAAC,EAAO,MAAM,EACnC,KACD,CACA,OAAO,EAAK,QAAQ,OAAQ,EAAE,CAC/B,EAGI,GAAgB,CACnB,YAAa,EACb,UAAW,EACX,iBAAkB,CAAC,CACpB,EACI,GAAmB,CACtB,QAAS,wBACT,UAAW,UACX,YAAa,UACb,iBAAkB,KAClB,iBAAkB,sBAClB,mBAAoB,IAAK,GACzB,YAAa,qBACb,uBAAwB,KACxB,iBAAkB,GAClB,UAAW,KACX,MAAO,GACP,eAAgB,CAAC,EACjB,UAAW,oBACZ,EACIK,SAEC,IAGD,KAAuB,EAAY,CAAC,IAAM,CAC7C,IAAM,EAAMA,IAAO,GAAK,CAAC,EACnB,EAAU,EAAU,SAAW,EAAI,aAAe,EAAI,kBAAoB,EAAI,sBAAwB,GAAiB,QACvH,EAAgB,EAAI,uBAAyB,EAAI,uBAAuB,MAAM,GAAG,EAAE,IAAK,GAAS,OAAO,EAAK,KAAK,CAAC,CAAC,EAAE,OAAO,OAAO,EAAI,IAAK,GACnJ,MAAO,CACN,GAAG,GACH,GAAG,EACH,QAAS,IAAiB,CAAO,EACjC,UAAW,EAAU,WAAa,EAAI,oBAAsB,GAAiB,UAC7E,iBAAkB,EAAU,kBAAoB,EAAI,oBAAsB,EAAI,wBAA0B,EAAI,oBAAsB,KAClI,iBAAkB,EAAU,kBAAoB,EAAI,oBAAsB,GAAiB,iBAC3F,mBAAoB,EAAU,oBAAsB,EAAI,sBAAwB,IAAK,GACrF,YAAa,EAAU,aAAe,EAAI,cAAgB,EAAI,sBAAwB,GAAiB,YACvG,uBAAwB,EAAU,yBAA2B,EAAI,wBAA0B,OAAO,EAAI,uBAAuB,EAAI,GAAiB,wBAClJ,iBAAkB,EAAU,mBAAqB,EAAI,+BAAiC,OAAO,EAAI,8BAA8B,EAAI,GAAiB,kBACpJ,UAAW,EAAU,YAAc,EAAI,wBAA0B,OAAO,EAAI,uBAAuB,EAAI,IAAM,GAAiB,WAC9H,YAAa,EAAU,aAAe,EAAI,2BAA6B,GAAiB,YACxF,MAAO,CACN,YAAa,EAAU,OAAO,cAAgB,EAAI,gBAAkB,OAAO,EAAI,eAAe,EAAI,GAAc,aAChH,UAAW,EAAU,OAAO,YAAc,EAAI,8BAAgC,OAAO,EAAI,6BAA6B,EAAI,IAAM,GAAc,WAC9I,iBAAkB,EAAU,OAAO,kBAAoB,GAAiB,GAAc,gBACvF,EACA,eAAgB,CACf,GAAG,GAAiB,eACpB,GAAG,EAAU,gBAAkB,CAAC,CACjC,EACA,UAAW,EAAU,WAAa,EAAI,2BAA6B,GAAiB,UACpF,UAAW,EAAU,WAAa,GAAiB,SACpD,CACD,EAII,GAA6B,GAAU,CAC1C,GAAI,GAAS,OAAO,GAAU,UAAY,+BAAgC,EAAO,OAAO,GAA2B,CAAK,EACxH,IAAM,EAAQ,GAAS,EAAO,CAC7B,sBACA,UACA,cACA,aACA,SACD,CAAC,EACD,GAAI,EAAM,sBAAwB,IAAQ,EAAM,UAAY,QAAS,OAAO,GAAS,EACrF,IAAM,EAAY,GAAQ,EAAM,IAAQ,KAAO,KAAO,GAAS,EAAM,EAAI,EACnE,EAAa,EAAS,YAAY,EAExC,OADI,IAAe,MAAQ,CAAC,OAAO,SAAS,KAAK,MAAM,CAAU,CAAC,EAAU,GAAS,EAC9E,OAAO,OAAO,CACpB,oBAAqB,GACrB,QAAS,QACT,YAAa,EAAS,aAAa,EACnC,aACA,QAAS,EAAS,SAAS,CAC5B,CAAC,CACF,EACI,IAA4B,GAAU,CACzC,IAAM,EAAQ,GAAS,EAAO,CAC7B,QACA,WACA,kBACA,qBACD,CAAC,EAGD,OAFI,EAAM,sBAAwB,IAAK,IAAK,OAAO,EAAM,qBAAwB,WAC7E,EAAM,kBAAoB,IAAK,IAAK,CAAC,aAAa,KAAK,GAAS,EAAM,eAAe,CAAC,EAAU,GAAS,EACtG,OAAO,OAAO,CACpB,MAAO,GAAS,EAAM,MAAO,EAAI,EACjC,SAAU,GAAS,EAAM,SAAU,EAAI,EACvC,GAAG,EAAM,kBAAoB,IAAK,GAAI,CAAC,EAAI,CAAE,gBAAiB,GAAS,EAAM,eAAe,CAAE,EAC9F,GAAG,EAAM,sBAAwB,IAAK,GAAI,CAAC,EAAI,CAAE,oBAAqB,EAAM,mBAAoB,CACjG,CAAC,CACF,EACI,GAA8B,cAAc,KAAM,CACrD,aAAc,CACb,MAAM,kCAAkC,EACxC,KAAK,KAAO,6BACb,CACD,EACI,OAAiB,CACpB,MAAM,IAAI,EACX,EACI,IAAY,EAAO,IAClB,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAC1D,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAK,SAAS,CAAG,CAAC,EAAU,GAAS,EACpE,EAEJ,IAAY,EAAO,EAAW,KAC7B,OAAO,GAAU,UAAY,GAAY,CAAC,EAAM,OAAe,GAAS,EACrE,EAEJ,GAAU,GAAU,CACvB,IAAM,EAAS,GAAS,CAAK,EAE7B,MADK,6DAA6D,KAAK,CAAM,EACtE,EADgF,GAAS,CAEjG,EACI,GAAc,GACb,OAAO,GAAU,UAAY,CAAC,OAAO,cAAc,CAAK,GAAK,GAAS,EAAU,GAAS,EACtF,EAGJ,GAAqC,GAAU,CAClD,IAAM,EAAQ,GAAS,EAAO,CAAC,sBAAuB,2BAA2B,CAAC,EAC5E,EAAY,GAAS,EAAM,mBAAmB,EAEpD,MADK,iBAAiB,KAAK,CAAS,EAC7B,OAAO,OAAO,CACpB,oBAAqB,EACrB,0BAA2B,GAAW,EAAM,yBAAyB,CACtE,CAAC,EAJ6C,GAAS,CAKxD,EACI,GAAkC,GAAa,CAClD,GAAI,CAAC,GAAY,EAAS,OAAS,gBAAkB,EAAS,OAAS,WAAY,OAAO,GAAS,EACnG,IAAM,EAAQ,GAAS,EAAU,EAAS,OAAS,eAAiB,CAAC,OAAQ,eAAe,EAAI,CAAC,OAAQ,eAAe,CAAC,EACnH,EAAU,EAAS,OAAS,eAAiB,OAAO,OAAO,CAChE,KAAM,eACN,cAAe,GAAO,EAAM,aAAa,CAC1C,CAAC,EAAI,OAAO,OAAO,CAClB,KAAM,WACN,cAAe,GAAO,EAAM,aAAa,CAC1C,CAAC,EACD,OAAO,OAAO,OAAO,CAAE,SAAQ,CAAC,CACjC,EACI,IAAoC,EAAU,IAAiB,OAAO,OAAO,CAChF,GAAG,GAA+B,CAAQ,EAC1C,GAAG,GAAkC,CAAY,CAClD,CAAC,EAEG,GAAuB,GAAU,CACpC,GAAI,CAAC,MAAM,QAAQ,CAAK,EAAG,OAAO,GAAS,EAC3C,IAAM,EAAuB,IAAI,IAC3B,EAAU,EAAM,IAAK,GAAW,CACrC,GAAI,CAAC,GAAU,OAAO,GAAW,SAAU,OAAO,GAAS,EAC3D,GAAI,EAAO,OAAS,eAAgB,CACnC,IAAM,EAAQ,GAAS,EAAQ,CAC9B,OACA,gBACA,oBACA,WACD,CAAC,EACK,EAAe,GAAO,EAAM,aAAa,EACzC,EAAM,gBAAgB,EAAa,YAAY,IAGrD,OAFI,EAAK,IAAI,CAAG,EAAU,GAAS,GACnC,EAAK,IAAI,CAAG,EACL,OAAO,OAAO,CACpB,KAAM,eACN,cAAe,EACf,kBAAmB,GAAS,EAAM,iBAAiB,EACnD,UAAW,GAAS,EAAM,SAAS,CACpC,CAAC,EACF,CACA,GAAI,EAAO,OAAS,WAAY,OAAO,GAAS,EAChD,IAAM,EAAQ,GAAS,EAAQ,CAC9B,OACA,gBACA,MACD,CAAC,EACK,EAAe,GAAO,EAAM,aAAa,EACzC,EAAM,YAAY,EAAa,YAAY,IAIjD,OAHI,EAAK,IAAI,CAAG,GACZ,EAAM,OAAS,0BAA4B,EAAM,OAAS,gBAAwB,GAAS,GAC/F,EAAK,IAAI,CAAG,EACL,OAAO,OAAO,CACpB,KAAM,WACN,cAAe,EACf,KAAM,EAAM,IACb,CAAC,EACF,CAAC,EACD,OAAO,OAAO,OAAO,CAAO,CAC7B,EACI,GAA8B,GAAU,CAC3C,IAAM,EAAQ,GAAS,EAAO,CAC7B,6BACA,WACA,YACD,CAAC,EACD,GAAI,EAAM,6BAA+B,GAAM,OAAO,GAAS,EAC/D,IAAM,EAAW,GAAoB,EAAM,QAAQ,EAC7C,EAAY,GAAS,EAAM,WAAY,EAAI,EAEjD,OADK,OAAO,SAAS,KAAK,MAAM,CAAS,CAAC,EACnC,OAAO,OAAO,CACpB,2BAA4B,GAC5B,WACA,WAAY,CACb,CAAC,EALmD,GAAS,CAM9D,EACI,IAAc,GAAU,CAC3B,GAAI,GAA8B,KAAM,OAAO,KAC/C,IAAM,EAAQ,GAAS,EAAO,CAC7B,KACA,sBACA,sBACA,SACA,YACD,CAAC,EACK,EAAY,GAAS,EAAM,WAAY,EAAI,EAEjD,OADK,OAAO,SAAS,KAAK,MAAM,CAAS,CAAC,EACnC,OAAO,OAAO,CACpB,GAAI,GAAO,EAAM,EAAE,EACnB,oBAAqB,GAAO,EAAM,mBAAmB,EACrD,oBAAqB,GAAO,EAAM,mBAAmB,EACrD,OAAQ,GAAS,EAAM,OAAQ,EAAI,EACnC,WAAY,CACb,CAAC,EAPmD,GAAS,CAQ9D,EACI,IAAS,GAAU,CACtB,IAAM,EAAQ,GAAS,EAAO,CAC7B,MACA,QACA,OACD,CAAC,EACK,EAAM,GAAS,EAAM,GAAG,EACxB,EAAQ,EAAM,MACd,EAAQ,EAAM,OAAS,KAK7B,OAJI,EAAI,OAAS,KAAO,CAAC,wCAAwC,KAAK,CAAG,GACrE,IAAU,QAAU,IAAU,QAAU,IAAU,UAClD,IAAU,MAAQ,IAAU,OAAS,IAAU,OAC/C,IAAU,QAAU,IAAU,KAAa,GAAS,EACjD,OAAO,OAAO,CACpB,MACA,QACA,MAAO,IAAU,OAAS,IAAU,MAAQ,EAAQ,IACrD,CAAC,CACF,EACI,IAAW,GAAU,CACxB,GAAI,CAAC,GAAS,OAAO,GAAU,UAAY,EAAE,SAAU,GAAQ,OAAO,GAAS,EAC/E,GAAI,EAAM,OAAS,WAAY,CAC9B,IAAM,EAAQ,GAAS,EAAO,CAC7B,OACA,gBACA,sBACA,MACD,CAAC,EACK,EAAO,EAAM,KAEnB,OADI,IAAS,0BAA4B,IAAS,gBAAwB,GAAS,EAC5E,OAAO,OAAO,CACpB,KAAM,WACN,cAAe,GAAO,EAAM,aAAa,EACzC,oBAAqB,GAAW,EAAM,mBAAmB,EACzD,MACD,CAAC,CACF,CACA,GAAI,EAAM,OAAS,eAAgB,OAAO,GAAS,EACnD,IAAM,EAAQ,GAAS,EAAO,CAC7B,OACA,gBACA,sBACA,kBACA,oBACA,UACA,gBACA,YACA,eACA,YACD,CAAC,EACD,GAAI,CAAC,MAAM,QAAQ,EAAM,YAAY,EAAG,OAAO,GAAS,EACxD,IAAM,EAAe,EAAM,aAAa,IAAI,GAAK,EAEjD,OADI,IAAI,IAAI,EAAa,IAAK,GAAS,EAAK,GAAG,CAAC,EAAE,OAAS,EAAa,OACjE,OAAO,OAAO,CACpB,KAAM,eACN,cAAe,GAAO,EAAM,aAAa,EACzC,oBAAqB,GAAW,EAAM,mBAAmB,EACzD,gBAAiB,GAAO,EAAM,eAAe,EAC7C,kBAAmB,GAAS,EAAM,iBAAiB,EACnD,QAAS,GAAO,EAAM,OAAO,EAC7B,cAAe,GAAW,EAAM,aAAa,EAC7C,UAAW,GAAS,EAAM,SAAS,EACnC,aAAc,OAAO,OAAO,CAAY,EACxC,WAAY,IAAW,EAAM,UAAU,CACxC,CAAC,EAZsF,GAAS,CAajG,EAEI,GAAyB,GAAU,CACtC,IAAM,EAAO,GAAS,EAAO,CAC5B,KACA,QACA,WACA,aACA,YACA,mBACD,CAAC,EACD,OAAO,OAAO,OAAO,CACpB,GAAI,GAAO,EAAK,EAAE,EAClB,MAAO,GAAS,EAAK,KAAK,EAC1B,SAAU,GAAS,EAAK,QAAQ,EAChC,WAAY,GAAS,EAAK,UAAU,EACpC,UAAW,GAAS,EAAK,SAAS,EAClC,kBAAmB,EAAK,mBAAqB,KAAO,KAAO,GAAS,EAAK,iBAAiB,CAC3F,CAAC,CACF,EAEI,GAAuB,GAAU,CACpC,IAAM,EAAQ,GAAS,EAAO,CAC7B,mBACA,iBACA,aACA,mBACA,OACA,UACA,0BACD,CAAC,EACD,GAAI,EAAM,mBAAqB,EAAG,OAAO,GAAS,EAClD,IAAM,EAAyB,EAAM,2BAA6B,IAAK,GAAI,GAAQ,EAAM,yBAEzF,OADI,OAAO,GAA2B,UAC/B,OAAO,OAAO,CACpB,iBAAkB,EAClB,eAAgB,GAAS,EAAM,eAAgB,EAAI,EACnD,WAAY,GAAS,EAAM,WAAY,EAAI,EAC3C,iBAAkB,GAAW,EAAM,gBAAgB,EACnD,KAAM,GAAsB,EAAM,IAAI,EACtC,QAAS,IAAQ,EAAM,OAAO,EAC9B,yBAA0B,CAC3B,CAAC,EATuD,GAAS,CAUlE,EAGI,KAAY,EAAQ,IAChB,GAAG,EAAO,SAAS,GAAG,EAAI,EAAO,MAAM,EAAG,EAAE,EAAI,IAAS,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,MAI/F,IAAiB,GAAgD,OAAO,GAAU,YAAvD,GAAmE,EAAE,aAAiB,OAAS,EAAE,aAAiB,WAAa,EAAE,aAAiB,aAC7K,GAAgB,eAChB,IAAsB,CAAC,2BAA2B,EAClD,GAAqC,IAAI,IACzC,GAAuB,IAAI,IAAI,CAClC,OACA,MACA,QACA,QACD,CAAC,EACG,GAAc,IAAI,IAAI,CACzB,MACA,OACA,SACD,CAAC,EACG,IAAgB,GAAS,CAC5B,GAAI,OAAO,SAAa,IAAa,OAAO,KAC5C,IAAM,EAAS,GAAG,mBAAmB,CAAI,EAAE,GACrC,EAAQ,SAAS,OAAO,MAAM,GAAG,EAAE,IAAK,GAAS,EAAK,KAAK,CAAC,EAAE,KAAM,GAAS,EAAK,WAAW,CAAM,CAAC,EAE1G,OADK,EACE,mBAAmB,EAAM,MAAM,EAAO,MAAM,CAAC,EADjC,IAEpB,EACI,QAAsB,CACzB,IAAK,IAAM,KAAQ,IAAqB,CACvC,IAAM,EAAQ,IAAa,CAAI,EAC/B,GAAI,EAAO,OAAO,CACnB,CACA,OAAO,IACR,EACI,GAAoB,GAAQ,CAC/B,GAAI,CACH,OAAO,IAAI,IAAI,CAAG,EAAE,MACrB,MAAQ,CACP,OAAO,IACR,CACD,EACI,IAAuB,GACtB,CAAC,GAAU,OAAO,OAAW,IAAoB,GAC9C,IAAW,OAAO,SAAS,OAE/B,IAAiB,KAAM,CAE1B,gBAAiB,CAChB,KAAK,UAAY,KACjB,IAAM,EAAS,GAAiB,KAAK,SAAS,OAAO,EACjD,GAAQ,GAAmB,OAAO,CAAM,CAC7C,CACA,YAAY,EAAU,EAAM,EAAO,EAAgB,EAAgB,CAMlE,GALA,KAAK,SAAW,EAChB,KAAK,KAAO,EACZ,KAAK,eAAiB,EACtB,KAAK,eAAiB,EACtB,KAAK,UAAY,KACb,IAAmB,IAAK,IAAK,IAAmB,WAAY,MAAM,IAAI,GAC1E,IAAM,EAAc,EAAS,YAAc,OAAO,MAAU,IAAc,MAAQ,IAAK,IACvF,GAAI,CAAC,EAAa,MAAM,IAAI,GAAmB,gEAAgE,EAC/G,KAAK,UAAY,EAAY,KAAK,UAAU,EAC5C,KAAK,MAAQ,GAAS,CAAC,CACxB,CACA,MAAM,QAAQ,EAAQ,EAAM,EAAU,CAAC,EAAG,CACzC,OAAQ,MAAM,KAAK,gBAAgB,EAAQ,EAAM,CAAO,GAAG,IAC5D,CAEA,gBAAiB,CAChB,IAAM,EAAW,KAAK,iBAAiB,GAAK,KAC5C,GAAI,CAAC,EAAU,MAAM,IAAI,aAAa,uBAAwB,YAAY,EAC1E,GAAI,EAAS,OAAO,SAAW,CAAC,EAAS,UAAU,EAAG,MAAM,IAAI,aAAa,mBAAoB,YAAY,EAC7G,OAAO,OAAO,OAAO,CACpB,gBAAiB,GAAkC,EAAS,eAAe,EAC3E,OAAQ,EAAS,OACjB,UAAW,EAAS,SACrB,CAAC,CACF,CACA,MAAM,gBAAgB,EAAQ,EAAM,EAAU,CAAC,EAAG,CACjD,IAAM,EAAkB,EAAQ,kBAAoB,IAAK,GAAI,KAAO,GAAkC,EAAQ,eAAe,EAC7H,GAAI,GAAmB,EAAQ,WAAa,GAAO,MAAM,IAAI,GAC7D,IAAM,EAAkB,IAAoB,MAAQ,EAAQ,WAAa,IAAS,KAAK,eAAiB,KAAK,eAAe,EAAI,KAC1H,EAAkB,GAAmB,GAAiB,iBAAmB,KACzE,EAAiB,CAAC,EAAQ,OAAQ,GAAiB,MAAM,EAAE,OAAQ,GAAW,IAAW,IAAK,EAAC,EAC/F,MAAiB,EAAe,KAAM,GAAW,EAAO,OAAO,GAAK,EAAQ,YAAY,IAAM,IAAS,GAAiB,UAAU,IAAM,GACxI,EAAyB,GAAkB,CAChD,GAAI,KAAK,iBAAmB,YAAc,CAAC,GAAY,IAAI,EAAc,YAAY,CAAC,GAAK,CAAC,EAAiB,MAAM,IAAI,EACxH,EACA,EAAsB,CAAM,EAC5B,IAAM,EAAuB,GAAY,CACnC,IACL,EAAQ,IAAI,uBAAwB,EAAgB,mBAAmB,EACvE,EAAQ,IAAI,6BAA8B,OAAO,EAAgB,yBAAyB,CAAC,EAC5F,EACM,MAAsB,CAC3B,GAAI,EAAS,EAAG,MAAM,IAAI,aAAa,mBAAoB,YAAY,CACxE,EACA,EAAc,EACd,IAAM,EAAM,KAAK,SAAS,EAAM,EAAQ,MAAM,EACxC,EAAY,GAAiB,CAAG,EAChC,EAAW,EAAQ,UAAY,GAC/B,EAAU,MAAM,KAAK,eAAe,EAAQ,QAAS,EAAQ,qBAAuB,GAAO,CAAQ,EAGzG,GAFA,EAAoB,CAAO,EAC3B,MAAM,KAAK,kBAAkB,EAAS,EAAQ,EAAU,CAAS,EAC7D,EAAQ,aAAe,CAAC,EAAQ,IAAI,EAAa,GAAG,KAAK,EAAG,MAAM,IAAI,GAAmB,yBAA0B,CAAE,WAAY,GAAI,CAAC,EAC1I,IAAM,EAAc,EAAQ,QAAU,SAAW,IAAoB,MAAQ,IAAoB,MAAQ,CAAC,GAAY,IAAI,EAAO,YAAY,CAAC,EACxI,EAAkB,EAAc,EAAI,KAAK,IAAI,EAAG,KAAK,SAAS,MAAM,WAAW,EAC/E,EAAe,CAAC,GAAe,GAAY,GAAqB,IAAI,EAAO,YAAY,CAAC,EACxF,EAAc,GAAmB,KACnC,EAAgB,GAChB,EACJ,IAAK,IAAI,EAAU,EAAG,EAAU,EAAa,IAAW,CACvD,EAAc,EACd,IAAM,EAAa,IAAI,gBACjB,MAAc,EAAW,MAAM,EACrC,EAAe,QAAS,GAAW,EAAO,iBAAiB,QAAS,EAAO,CAAE,KAAM,EAAK,CAAC,CAAC,EACtF,EAAe,KAAM,GAAW,EAAO,OAAO,GAAG,EAAW,MAAM,EACtE,IAAM,EAAS,EAAW,OACpB,EAAU,WAAW,EAAO,KAAK,SAAS,SAAS,EACnD,EAAO,CACZ,SACA,UACA,SACA,YAAa,KAAK,SAAS,aAAe,aAC3C,EACI,EAAQ,OAAS,IAAK,GAGf,EAAQ,OAAS,IAAK,IAAK,EAAQ,OAAS,OAAU,IAAc,EAAQ,IAAI,GAC1F,EAAK,KAAO,KAAK,UAAU,EAAQ,IAAI,EAClC,EAAQ,IAAI,cAAc,GAAG,EAAQ,IAAI,eAAgB,kBAAkB,GAC1E,EAAK,KAAO,EAAQ,OAL1B,EAAK,KAAO,KAAK,UAAU,EAAQ,IAAI,EAClC,EAAQ,IAAI,cAAc,GAAG,EAAQ,IAAI,eAAgB,kBAAkB,GAKjF,GAAI,CAIH,GAHI,KAAK,MAAM,WAAW,MAAM,KAAK,MAAM,UAAU,EAAK,CAAI,EAC9D,EAAc,EACd,EAAsB,EAAK,QAAU,KAAK,EACtC,EAAiB,CACpB,IAAM,EAAe,IAAI,QAAQ,EAAK,OAAO,EAC7C,EAAoB,CAAY,EAChC,EAAK,QAAU,CAChB,CACA,IAAM,EAAW,MAAM,KAAK,UAAU,EAAK,CAAI,EAC/C,GAAI,EAAS,EAAG,MAAM,IAAI,aAAa,mBAAoB,YAAY,EAGvE,GAFA,KAAK,iBAAiB,EAAU,CAAS,EACrC,KAAK,MAAM,YAAY,MAAM,KAAK,MAAM,WAAW,CAAQ,EAC3D,EAAS,QAAU,IAAK,CAC3B,GAAI,CAAC,GAAiB,GAAgB,EAAS,SAAW,IAAK,CAC9D,EAAgB,GAChB,IAAM,EAAoB,EAAS,QAAQ,IAAI,EAAa,GAAG,KAAK,EAEpE,GADA,EAAQ,OAAO,EAAa,EACxB,EAAmB,CACtB,EAAQ,IAAI,GAAe,CAAiB,EACxC,GAAS,aAAa,CAAO,EACjC,QACD,CACA,GAAI,MAAM,KAAK,kBAAkB,EAAS,EAAQ,EAAU,CAAS,EAAG,CACnE,GAAS,aAAa,CAAO,EACjC,QACD,CACD,CACA,IAAM,EAAQ,MAAM,KAAK,QAAQ,CAAQ,EACzC,GAAI,EAAU,EAAkB,GAAK,KAAK,SAAS,MAAM,iBAAiB,SAAS,EAAS,MAAM,EAAG,CACpG,MAAM,KAAK,MAAM,KAAK,SAAS,MAAM,SAAS,EAC1C,GAAS,aAAa,CAAO,EACjC,QACD,CAEA,MADI,GAAS,aAAa,CAAO,EAC3B,CACP,CACA,IAAM,EAAO,MAAM,KAAK,MAAM,EAAU,EAAQ,cAAgB,MAAM,EACtE,GAAI,EAAS,EAAG,MAAM,IAAI,aAAa,mBAAoB,YAAY,EACvE,MAAO,CACN,OACA,QAAS,EAAS,QAClB,OAAQ,EAAS,MAClB,CACD,OAAS,EAAO,CAGf,GAFA,EAAY,EACR,aAAiB,IACjB,EAAS,EAAG,MAAM,EAClB,KAAK,MAAM,SAAS,MAAM,KAAK,MAAM,QAAQ,EAAO,CACvD,MACA,QAAS,CACV,CAAC,EACD,IAAM,EAAa,aAAiB,GAAqB,EAAM,mBAAqB,IAAK,GAMzF,IALI,EAAE,aAAiB,KAAuB,CAAC,GAAc,GAAc,MAAK,QAAQ,MAAM,sCAAuC,CACpI,MACA,SACA,OACD,CAAC,EACG,GAAW,EAAkB,EAGhC,MAFI,GAAS,aAAa,CAAO,EAC7B,aAAiB,GAA0B,EACzC,IAAI,GAAmB,iBAAkB,CAAE,OAAQ,CAAM,CAAC,EAE7D,GAAS,aAAa,CAAO,EACjC,MAAM,KAAK,MAAM,KAAK,SAAS,MAAM,SAAS,CAC/C,QAAU,CACT,aAAa,CAAO,EACpB,EAAe,QAAS,GAAW,EAAO,oBAAoB,QAAS,CAAK,CAAC,CAC9E,CACD,CAEA,MADI,aAAqB,GAA0B,EAC7C,IAAI,GAAmB,gCAAgC,CAC9D,CACA,MAAM,eAAe,EAAO,EAAqB,EAAU,CAC1D,IAAM,EAAU,IAAI,QACpB,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,KAAK,SAAS,cAAc,EAAG,EAAQ,IAAI,EAAK,CAAK,EAE/F,GADI,KAAK,SAAS,WAAa,OAAO,OAAW,KAAa,EAAQ,IAAI,aAAc,KAAK,SAAS,SAAS,EAC3G,EAAU,CACb,IAAM,EAAc,MAAM,KAAK,KAAK,aAAa,CAAmB,EACpE,OAAO,QAAQ,CAAW,EAAE,SAAS,CAAC,EAAK,KAAW,EAAQ,IAAI,EAAK,CAAK,CAAC,CAC9E,CAEA,OADI,GAAO,OAAO,QAAQ,CAAK,EAAE,SAAS,CAAC,EAAK,KAAW,EAAQ,IAAI,EAAK,CAAK,CAAC,EAC3E,CACR,CACA,MAAM,kBAAkB,EAAS,EAAQ,EAAU,EAAW,EAAe,GAAO,CACnF,GAAI,CAAC,GAAY,EAAQ,IAAI,EAAa,EAAG,OAAO,EAAQ,IAAI,EAAa,EAC7E,GAAI,CAAC,GAAqB,IAAI,EAAO,YAAY,CAAC,EAAG,MAAO,GACxD,IACH,KAAK,UAAY,KACb,GAAW,GAAmB,OAAO,CAAS,GAEnD,IAAI,EAAQ,EAAe,KAAO,EAAY,GAAmB,IAAI,CAAS,GAAK,KAAO,KAAK,UAO/F,MANI,CAAC,GAAS,IAAoB,CAAS,IAAG,EAAQ,IAAc,GAChE,CAAC,GAAS,GAAgB,IAAc,KAAK,SAAS,aAAe,iBAAmB,SAAQ,EAAQ,MAAM,KAAK,eAAe,CAAS,GAC3I,GACH,EAAQ,IAAI,GAAe,CAAK,EACzB,IAED,EACR,CACA,MAAM,kBAAkB,EAAS,EAAQ,EAAU,EAAW,CAE7D,OADA,EAAQ,OAAO,EAAa,EACrB,KAAK,kBAAkB,EAAS,EAAQ,EAAU,EAAW,EAAI,CACzE,CACA,MAAM,eAAe,EAAW,CAC/B,GAAI,CACH,IAAM,EAAW,MAAM,KAAK,UAAU,KAAK,SAAS,qBAAqB,EAAG,CAC3E,OAAQ,MACR,YAAa,KAAK,SAAS,aAAe,aAC3C,CAAC,EAED,OADA,KAAK,iBAAiB,EAAU,CAAS,EAClC,KAAK,SACb,OAAS,EAAO,CAEf,OADA,QAAQ,KAAK,6CAA8C,CAAK,EACzD,IACR,CACD,CACA,iBAAiB,EAAU,EAAW,CACrC,IAAM,EAAQ,EAAS,QAAQ,IAAI,EAAa,GAAG,KAAK,EACpD,IACH,KAAK,UAAY,EACb,GAAW,GAAmB,IAAI,EAAW,CAAK,EAExD,CACA,SAAS,EAAM,EAAQ,CACtB,IAAM,EAAiB,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,IACnD,EAAS,KAAK,SAAS,UAAU,SAAS,GAAG,EAAI,KAAK,SAAS,UAAU,MAAM,EAAG,EAAE,EAAI,KAAK,SAAS,UACtG,EAAY,EAAe,WAAW,CAAM,EAAI,EAAiB,IAAS,EAAQ,CAAc,EAChG,EAAM,GAAG,KAAK,SAAS,QAAQ,QAAQ,OAAQ,EAAE,IAAI,IAC3D,GAAI,CAAC,EAAQ,OAAO,EACpB,IAAM,EAAS,IAAI,gBACnB,OAAO,QAAQ,CAAM,EAAE,SAAS,CAAC,EAAK,KAAW,CAC5C,GAA8B,OAC9B,MAAM,QAAQ,CAAK,EAAG,EAAM,QAAS,GAAU,CAC9C,GAA8B,MAClC,EAAO,OAAO,EAAK,OAAO,CAAK,CAAC,CACjC,CAAC,EACI,EAAO,IAAI,EAAK,OAAO,CAAK,CAAC,EACnC,CAAC,EACD,IAAM,EAAK,EAAO,SAAS,EAC3B,OAAO,EAAK,GAAG,EAAI,GAAG,IAAO,CAC9B,CACA,MAAM,MAAM,EAAU,EAAc,CACnC,GAAI,EAAS,SAAW,IAAK,OAAO,KACpC,GAAI,IAAiB,OAAQ,OAAO,EAAS,KAAK,EAClD,GAAI,IAAiB,cAAe,OAAO,EAAS,YAAY,EAChE,IAAM,EAAc,EAAS,QAAQ,IAAI,cAAc,GAAK,GAG5D,OAFI,IAAiB,QAAU,IAAiB,QAAU,EAAY,SAAS,kBAAkB,EAAU,EAAS,KAAK,EAC1D,EAAS,KAAK,CAE9E,CACA,MAAM,QAAQ,EAAU,CACvB,GAAM,CAAE,SAAQ,eAAc,aAAY,YAAW,eAAgB,MAAM,IAAkB,CAAQ,EACrG,OAAO,IAAI,GAAmBD,IAAuB,EAAQ,CAC5D,WAAY,EAAS,OACrB,WAAY,EAAS,UACtB,CAAC,EAAG,CACH,WAAY,EAAS,OACrB,SACA,eACA,UAAW,GAAa,EAAS,QAAQ,IAAI,cAAc,GAAK,IAAK,GACrE,aACA,aACD,CAAC,CACF,CACA,MAAM,MAAM,EAAI,CACf,OAAO,IAAI,QAAS,GAAY,WAAW,EAAS,CAAE,CAAC,CACxD,CACD,EAGI,IAAsB,GACrB,EAAK,WAAW,QAAQ,EAAU,EACjC,EAAK,WAAW,GAAG,EACjB,SAAS,IADkB,UAAU,IAGzC,IAAuB,GACtB,EAAK,WAAW,SAAS,EAAU,EAClC,EAAK,WAAW,GAAG,EACjB,UAAU,IADiB,WAAW,IAG1C,IAAe,EAAS,IAAS,CACpC,IAAM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAO,EAAM,CACvB,IAAM,EAAQ,EAAQ,GAClB,IAAU,IAAK,KAAG,EAAO,GAAO,EACrC,CACA,OAAO,CACR,EACI,GAAgB,KAAM,CACzB,YAAY,EAAW,CACtB,KAAK,UAAY,CAClB,CACA,MAAM,QAAQ,EAAQ,EAAM,EAAU,CAAC,EAAG,CACzC,OAAO,KAAK,UAAU,QAAQ,EAAQ,IAAmB,CAAI,EAAG,CAC/D,GAAG,EACH,SAAU,EAAQ,UAAY,EAC/B,CAAC,CACF,CACD,EACI,GAAiB,KAAM,CAC1B,YAAY,EAAW,CACtB,KAAK,UAAY,CAClB,CACA,MAAM,QAAQ,EAAQ,EAAM,EAAU,CAAC,EAAG,CACzC,OAAO,KAAK,UAAU,QAAQ,EAAQ,IAAoB,CAAI,EAAG,CAChE,GAAG,EACH,SAAU,EAAQ,UAAY,EAC/B,CAAC,CACF,CACD,EAGI,IAA4B,GAAY,GAAY,EAAS,CAAC,kBAAmB,aAAa,CAAC,EAC/F,GAAsB,cAAc,EAAc,CACrD,MAAM,KAAM,CACX,OAAO,KAAK,QAAQ,MAAO,eAAe,CAC3C,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,MAAO,gBAAiB,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CACxF,CACD,EAGI,GAAe,GAAc,oBAAoB,mBAAmB,CAAS,IAC7E,GAAoB,GAAiB,CACxC,IAAM,EAAO,wBACb,OAAO,EAAe,GAAG,EAAK,GAAG,mBAAmB,CAAY,IAAM,CACvE,EACI,KAAoB,EAAM,EAAY,SAAW,CACpD,IAAM,EAAO,IAAI,SAEjB,OADA,EAAK,OAAO,EAAW,CAAI,EACpB,CACR,EACI,IAA4B,GAAY,CAC3C,IAAM,EAAO,IAAI,SACX,EAAiB,EAAQ,gBAAkB,qBACjD,EAAK,OAAO,kBAAmB,CAAc,EACzC,EAAQ,MAAM,EAAK,OAAO,OAAQ,EAAQ,IAAI,EAClD,IAAM,EAAgB,EAAQ,cAAc,KAAK,EAGjD,OAFI,IAAmB,iBAAmB,GAAe,EAAK,OAAO,gBAAiB,CAAa,EAC/F,EAAQ,oBAAoB,EAAK,OAAO,wBAAyB,MAAM,EACpE,CACR,EACI,GAAmB,cAAc,EAAc,CAClD,MAAM,KAAM,CACX,OAAO,KAAK,QAAQ,MAAO,WAAW,CACvC,CACA,MAAM,YAAY,EAAW,EAAM,CAClC,OAAO,KAAK,QAAQ,MAAO,GAAY,CAAS,EAAG,CAAE,KAAM,IAAiB,CAAI,CAAE,CAAC,CACpF,CACA,MAAM,YAAY,EAAW,CAC5B,OAAO,KAAK,QAAQ,SAAU,GAAY,CAAS,CAAC,CACrD,CACA,MAAM,gBAAgB,EAAS,CAC9B,IAAM,EAAO,IAAyB,CAAO,EAC7C,OAAO,KAAK,QAAQ,OAAQ,GAAiB,EAAG,CAAE,MAAK,CAAC,CACzD,CACA,MAAM,cAAc,EAAc,CACjC,OAAO,KAAK,QAAQ,MAAO,GAAiB,CAAY,CAAC,CAC1D,CACA,MAAM,gBAAgB,EAAc,CACnC,OAAO,KAAK,QAAQ,OAAQ,GAAG,GAAiB,CAAY,EAAE,OAAO,CACtE,CAEA,MAAM,wBAAwB,EAAc,EAAW,EAAU,CAAC,EAAG,CACpE,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAiB,CAAY,EAAE,UAAU,mBAAmB,CAAS,IAAK,CACvG,aAAc,OACd,OAAQ,EAAQ,MACjB,CAAC,CACF,CACD,EAGI,GAAY,GAAU,mBAAmB,CAAK,EAC9C,GAAyB,GAAY,GAAY,EAAS,CAC7D,OACA,QACA,QACA,UACA,gBACA,wBACD,CAAC,EACG,GAA0B,cAAc,EAAc,CACzD,MAAM,KAAK,EAAgB,CAC1B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,GAAS,CAAc,EAAE,kBAAkB,CACzF,CACA,MAAM,OAAO,EAAgB,EAAS,CACrC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,GAAS,CAAc,EAAE,mBAAoB,CAAE,KAAM,GAAsB,CAAO,CAAE,CAAC,CACpI,CACA,MAAM,OAAO,EAAgB,EAAkB,EAAS,CACvD,OAAO,KAAK,QAAQ,MAAO,kBAAkB,GAAS,CAAc,EAAE,oBAAoB,GAAS,CAAgB,IAAK,CAAE,KAAM,GAAsB,CAAO,CAAE,CAAC,CACjK,CACA,MAAM,OAAO,EAAgB,EAAkB,CAC9C,MAAM,KAAK,QAAQ,SAAU,kBAAkB,GAAS,CAAc,EAAE,oBAAoB,GAAS,CAAgB,GAAG,CACzH,CACD,EAGI,GAAoB,IAAY,CACnC,WAAY,GAAQ,WACpB,gBAAiB,GAAQ,OACzB,WAAY,GAAQ,WACpB,QAAS,GAAQ,QACjB,QAAS,GAAQ,QACjB,cAAe,GAAQ,cACvB,SAAU,GAAQ,SAClB,YAAa,GAAQ,YACrB,SAAU,GAAQ,SAClB,YAAa,GAAQ,YACrB,UAAW,GAAQ,UACnB,EAAG,GAAQ,EACX,MAAO,GAAQ,MACf,MAAO,GAAQ,MACf,MAAO,GAAQ,MACf,OAAQ,GAAQ,OAChB,QAAS,GAAQ,QACjB,SAAU,GAAQ,QACnB,GACI,GAAgB,cAAc,EAAc,CAC/C,MAAM,KAAK,EAAQ,CAClB,OAAO,KAAK,QAAQ,MAAO,gBAAiB,CAAE,OAAQ,GAAiB,CAAM,CAAE,CAAC,CACjF,CACA,MAAM,WAAW,EAAO,EAAQ,CAC/B,OAAO,KAAK,QAAQ,MAAO,gBAAiB,CAAE,OAAQ,CACrD,GAAG,GAAiB,CAAM,EAC1B,gBAAiB,CAClB,CAAE,CAAC,CACJ,CACD,EAII,GAAmB,cAAc,EAAc,CAClD,cAAc,EAAgB,EAAO,CACpC,OAAO,KAAK,QAAQ,MAAO,oBAAqB,CAAE,OAAQ,CACzD,gBAAiB,EACjB,EAAG,EACH,MAAO,EACR,CAAE,CAAC,CACJ,CACA,aAAc,CACb,OAAO,KAAK,QAAQ,MAAO,mBAAmB,CAC/C,CACA,UAAU,EAAO,CAChB,OAAO,KAAK,QAAQ,MAAO,qBAAqB,mBAAmB,EAAM,WAAW,EAAE,GAAG,mBAAmB,EAAM,SAAS,IAAK,CAAE,OAAQ,CACzI,gBAAiB,EAAM,gBACvB,OAAQ,EAAM,OACd,MAAO,EAAM,MACb,WAAY,EAAM,UACnB,CAAE,CAAC,CACJ,CACA,SAAS,EAAgB,EAAS,CACjC,OAAO,KAAK,QAAQ,MAAO,oBAAoB,mBAAmB,CAAO,IAAK,CAAE,OAAQ,CAAE,gBAAiB,CAAe,CAAE,CAAC,CAC9H,CACA,QAAQ,EAAgB,EAAQ,CAC/B,OAAO,KAAK,QAAQ,MAAO,mBAAmB,mBAAmB,CAAM,IAAK,CAAE,OAAQ,CAAE,gBAAiB,CAAe,CAAE,CAAC,CAC5H,CACA,gBAAgB,EAAgB,EAAS,CACxC,OAAO,KAAK,QAAQ,MAAO,oBAAoB,mBAAmB,CAAO,IAAK,CAAE,OAAQ,CACvF,gBAAiB,EACjB,WAAY,SACb,CAAE,CAAC,CACJ,CACA,oBAAoB,EAAgB,EAAS,EAAQ,CAAC,EAAG,CACxD,OAAO,KAAK,QAAQ,MAAO,oBAAoB,mBAAmB,CAAO,EAAE,aAAc,CAAE,OAAQ,CAClG,gBAAiB,EACjB,GAAG,EACH,MAAO,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,EAAM,OAAS,EAAE,CAAC,CACnD,CAAE,CAAC,CACJ,CACA,iBAAiB,EAAgB,EAAS,EAAQ,CAAC,EAAG,CACrD,OAAO,KAAK,QAAQ,MAAO,oBAAoB,mBAAmB,CAAO,EAAE,UAAW,CAAE,OAAQ,CAC/F,gBAAiB,EACjB,GAAG,EACH,MAAO,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,EAAM,OAAS,EAAE,CAAC,CACnD,CAAE,CAAC,CACJ,CACA,WAAW,EAAS,CACnB,OAAO,KAAK,QAAQ,OAAQ,kBAAmB,CAAE,KAAM,CAAQ,CAAC,CACjE,CACA,WAAW,EAAQ,EAAS,CAC3B,OAAO,KAAK,QAAQ,QAAS,mBAAmB,mBAAmB,CAAM,IAAK,CAAE,KAAM,CAAQ,CAAC,CAChG,CACA,mBAAmB,EAAQ,EAAS,CACnC,OAAO,KAAK,QAAQ,MAAO,mBAAmB,mBAAmB,CAAM,EAAE,UAAW,CAAE,KAAM,CAAQ,CAAC,CACtG,CACA,UAAU,EAAQ,EAAS,CAC1B,OAAO,KAAK,QAAQ,SAAU,mBAAmB,mBAAmB,CAAM,IAAK,CAAE,KAAM,CAAQ,CAAC,CACjG,CACD,EAGI,IAA+B,wCAC/B,IAAoC,IACpC,GAA2C,IAAI,IAC/CE,GAAqB,GAAU,CAClC,GAAI,CACH,OAAO,IAAI,IAAI,CAAK,EAAE,MACvB,MAAQ,CACP,OAAO,EAAM,KAAK,EAAE,QAAQ,OAAQ,EAAE,GAAK,gBAC5C,CACD,EACI,OAAqB,CACxB,GAAI,OAAO,OAAW,IAAa,OAAO,KAC1C,GAAI,CACH,OAAO,OAAO,YACf,MAAQ,CACP,OAAO,IACR,CACD,EACI,GAAmB,GAAkB,GAAG,MAA+BA,GAAkB,CAAa,IACtG,IAAuB,GAAQ,CAClC,GAAI,CAAC,EAAK,OAAO,KACjB,GAAI,CACH,IAAM,EAAS,KAAK,MAAM,CAAG,EAE7B,OADI,EAAO,UAAY,GAAK,OAAO,EAAO,UAAa,UAAY,CAAC,EAAO,SAAS,KAAK,GAAK,OAAO,EAAO,YAAe,UAAY,CAAC,EAAO,YAAc,OAAO,EAAO,eAAkB,UAAY,CAAC,OAAO,SAAS,EAAO,aAAa,EAAU,KACjP,CACN,QAAS,EACT,SAAU,EAAO,SAAS,KAAK,EAC/B,WAAY,EAAO,WACnB,cAAe,EAAO,cACtB,GAAG,OAAO,EAAO,YAAe,SAAW,CAAE,WAAY,EAAO,UAAW,EAAI,CAAC,CACjF,CACD,MAAQ,CACP,OAAO,IACR,CACD,EACI,GAA4B,GAAkB,CACjD,IAAM,EAAmBA,GAAkB,CAAa,EAClD,EAAU,GAAa,EAC7B,GAAI,CAAC,EAAS,OAAO,GAAyB,IAAI,CAAgB,GAAK,KACvE,IAAI,EAAS,KACb,GAAI,CACH,EAAS,IAAoB,EAAQ,QAAQ,GAAgB,CAAgB,CAAC,CAAC,CAChF,MAAQ,CACP,OAAO,GAAyB,IAAI,CAAgB,GAAK,IAC1D,CACA,GAAI,CAAC,EAEJ,OADA,GAAyB,OAAO,CAAgB,EACzC,KAER,IAAM,EAAW,CAChB,SAAU,EAAO,SACjB,WAAY,EAAO,WACnB,cAAe,EAAO,cACtB,GAAG,EAAO,WAAa,CAAE,WAAY,EAAO,UAAW,EAAI,CAAC,CAC7D,EAEA,OADA,GAAyB,IAAI,EAAkB,CAAQ,EAChD,CACR,EAKI,GAA0B,GAAkB,GAAyB,CAAa,GAAG,YAAc,KACnG,IAAwB,EAAe,EAAU,EAAU,CAAC,IAAM,CACrE,IAAM,EAAmBA,GAAkB,CAAa,EAClD,EAAqB,EAAS,KAAK,EACzC,GAAI,CAAC,EAAoB,MAAU,MAAM,4BAA4B,EACrE,IAAM,EAAU,GAAyB,CAAgB,EACnD,EAAW,CAChB,SAAU,EACV,WAAY,CAAC,EAAQ,QAAU,GAAS,WAAa,IAAuB,EAAQ,aAAe,IAAK,IAAK,EAAQ,aAAe,EAAQ,YAAc,EAAQ,WAAa,WAAW,QAAQ,aAAa,GAAK,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,IACjP,eAAgB,EAAQ,KAAO,KAAK,IAAI,GAAK,IAC7C,GAAG,EAAQ,aAAe,IAAK,GAAyC,GAAS,WAAa,CAAE,WAAY,EAAQ,UAAW,EAAI,CAAC,EAAjG,CAAE,WAAY,EAAQ,UAAW,CACrE,EACA,GAAyB,IAAI,EAAkB,CAAQ,EACvD,IAAM,EAAU,GAAa,EAC7B,GAAI,EAAS,GAAI,CAChB,EAAQ,QAAQ,GAAgB,CAAgB,EAAG,KAAK,UAAU,CACjE,QAAS,EACT,GAAG,CACJ,CAAC,CAAC,CACH,MAAQ,CAAC,CACT,OAAO,CACR,EACI,GAAsB,GAAkB,CAC3C,IAAM,EAAmBA,GAAkB,CAAa,EACxD,GAAyB,OAAO,CAAgB,EAChD,IAAM,EAAU,GAAa,EACxB,KACL,GAAI,CACH,EAAQ,WAAW,GAAgB,CAAgB,CAAC,CACrD,MAAQ,CAAC,CACV,EAGI,IAAgB,GAAY,GAAY,EAAS,CACpD,QACA,WACA,kBACA,qBACD,CAAC,EACG,GAAmB,GAAY,KAAK,UAAU,CACjD,EAAQ,KAAK,gBACb,EAAQ,KAAK,KACb,EAAQ,KAAK,WACd,CAAC,EACG,IAA+B,GAAY,GAAY,EAAS,CAAC,OAAO,CAAC,EACzE,IAA8B,GAAY,GAAY,EAAS,CAAC,QAAS,MAAM,CAAC,EAChF,IAA+B,GAAY,GAAY,EAAS,CACnE,QACA,eACA,OACD,CAAC,EACG,IAAyB,GAAY,GAAY,EAAS,CAAC,mBAAoB,cAAc,CAAC,EAC9F,IAAiB,GAAY,GAAY,EAAS,CAAC,UAAU,CAAC,EAC9D,IAAwB,GAAY,GAAY,EAAS,CAAC,OAAO,CAAC,EAClE,IAA6B,GAAY,GAAY,EAAS,CACjE,iBACA,gBACA,kBACA,aACA,cACD,CAAC,EACG,GAAe,cAAc,EAAc,CAC9C,YAAY,EAAW,EAAgB,iBAAkB,CACxD,MAAM,CAAS,EACf,KAAK,cAAgB,EACrB,KAAK,eAAiB,EACtB,KAAK,kBAAoB,IAC1B,CACA,MAAM,QAAQ,EAAU,CAAC,EAAG,CAC3B,KAAK,mBAAmB,MAAM,EAC9B,IAAM,EAAa,IAAI,gBACvB,KAAK,kBAAoB,EACzB,IAAM,MAAc,EAAW,MAAM,EACrC,EAAQ,QAAQ,iBAAiB,QAAS,EAAO,CAAE,KAAM,EAAK,CAAC,EAC3D,EAAQ,QAAQ,SAAS,EAAW,MAAM,EAC9C,IAAM,EAAa,EAAE,KAAK,eACpB,EAAkB,GAAuB,KAAK,aAAa,EAC3D,MAAkB,IAAe,KAAK,gBAAkB,IAAoB,GAAuB,KAAK,aAAa,EACrH,MAAkB,EAAU,GAAK,CAAC,EAAW,OAAO,SAAW,EAAQ,YAAY,IAAM,GAC/F,GAAI,CACH,IAAM,EAAU,MAAM,KAAK,QAAQ,MAAO,gBAAiB,CAC1D,GAAG,EACH,OAAQ,EAAW,OACnB,WACD,CAAC,EAED,OADI,EAAU,GAAG,GAAqB,KAAK,cAAe,EAAQ,KAAK,GAAI,CAAE,WAAY,GAAgB,CAAO,CAAE,CAAC,EAC5G,CACR,OAAS,EAAO,CAEf,MADI,EAAU,GAAK,CAAC,IAAK,GAAG,EAAE,SAAS,GAAO,QAAU,CAAC,GAAG,GAAmB,KAAK,aAAa,EAC3F,CACP,QAAU,CACT,EAAQ,QAAQ,oBAAoB,QAAS,CAAK,EAC9C,KAAK,oBAAsB,IAAY,KAAK,kBAAoB,KACrE,CACD,CACA,MAAM,UAAW,CAChB,OAAO,KAAK,QAAQ,MAAO,gBAAgB,CAC5C,CACA,MAAM,MAAM,EAAS,CACpB,KAAK,mBAAmB,MAAM,EAC9B,IAAM,EAAa,EAAE,KAAK,eACpB,EAAW,MAAM,KAAK,QAAQ,OAAQ,cAAe,CAC1D,KAAM,IAAa,CAAO,EAC1B,SAAU,EACX,CAAC,EAOD,OANI,IAAe,KAAK,iBACpB,SAAU,EAAU,GAAqB,KAAK,cAAe,EAAS,KAAK,GAAI,CAClF,OAAQ,GACR,WAAY,GAAgB,CAAQ,CACrC,CAAC,EACI,GAAmB,KAAK,aAAa,GALK,CAOhD,CACA,MAAM,qBAAqB,EAAS,CACnC,OAAO,KAAK,QAAQ,OAAQ,+BAAgC,CAC3D,KAAM,IAA4B,CAAO,EACzC,SAAU,EACX,CAAC,CACF,CACA,MAAM,wBAAwB,EAAS,CACtC,OAAO,KAAK,QAAQ,OAAQ,8BAA+B,CAC1D,KAAM,IAA2B,CAAO,EACxC,SAAU,EACX,CAAC,CACF,CACA,MAAM,qBAAqB,EAAS,CACnC,MAAM,KAAK,QAAQ,OAAQ,+BAAgC,CAC1D,KAAM,IAA4B,CAAO,EACzC,SAAU,EACX,CAAC,CACF,CACA,MAAM,eAAe,EAAS,CAC7B,MAAM,KAAK,QAAQ,OAAQ,wBAAyB,CAAE,KAAM,IAAsB,CAAO,CAAE,CAAC,EAC5F,GAAmB,KAAK,aAAa,CACtC,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,eAAgB,CAAE,KAAM,IAAc,CAAO,CAAE,CAAC,CAC7E,CACA,MAAM,cAAc,EAAS,CAC5B,MAAM,KAAK,QAAQ,OAAQ,uBAAwB,CAClD,KAAM,IAAqB,CAAO,EAClC,SAAU,EACX,CAAC,CACF,CACA,MAAM,QAAS,CACd,KAAK,mBAAmB,MAAM,EAC9B,IAAM,EAAa,EAAE,KAAK,eAC1B,GAAI,CACH,MAAM,KAAK,QAAQ,OAAQ,cAAc,CAC1C,QAAU,CACL,IAAe,KAAK,gBAAgB,GAAmB,KAAK,aAAa,CAC9E,CACD,CACA,MAAM,WAAY,CACjB,KAAK,mBAAmB,MAAM,EAC9B,IAAM,EAAa,EAAE,KAAK,eAC1B,GAAI,CACH,MAAM,KAAK,QAAQ,OAAQ,kBAAkB,CAC9C,QAAU,CACL,IAAe,KAAK,gBAAgB,GAAmB,KAAK,aAAa,CAC9E,CACD,CACA,MAAM,cAAc,EAAW,CAC9B,MAAM,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAS,GAAG,CAC/E,CACA,MAAM,qBAAsB,CAC3B,MAAM,KAAK,QAAQ,OAAQ,8BAA8B,CAC1D,CACA,MAAM,yBAA0B,CAC/B,MAAM,KAAK,QAAQ,OAAQ,sCAAsC,CAClE,CACA,MAAM,yBAAyB,EAAS,CACvC,OAAO,KAAK,QAAQ,OAAQ,6BAA8B,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CACvG,CACD,EAGI,GAAsB,IAAI,IAAI,CACjC,cACA,4BACA,uBACA,oBACA,yBACA,uBACD,CAAC,EACG,GAAkB,IAAI,IAAI,CAC7B,4BACA,4BACA,sBACD,CAAC,EACG,GAA8B,cAAc,KAAM,CACrD,aAAc,CACb,MAAM,kCAAkC,EACxC,KAAK,KAAO,6BACb,CACD,EACI,OAAe,CAClB,MAAM,IAAI,EACX,EACI,IAAY,EAAO,IAClB,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAAK,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAK,SAAS,CAAG,CAAC,EAAU,GAAO,EACjI,EAEJ,GAAU,GAAU,OAAO,GAAU,SAAW,EAAQ,GAAO,EAC/D,GAAQ,GAAU,CACrB,IAAM,EAAc,GAAO,CAAK,EAEhC,MADK,6DAA6D,KAAK,CAAW,EAC3E,EAAY,YAAY,EAD6D,GAAO,CAEpG,EACI,GAAgB,GAAU,GAAS,KAAO,KAAO,GAAK,CAAK,EAC3D,GAAiC,GAAU,CAC9C,IAAI,EACJ,GAAI,CACH,EAAM,IAAI,IAAI,CAAK,CACpB,MAAQ,CACP,OAAO,GAAO,CACf,CAEA,MADI,CAAC,CAAC,SAAU,OAAO,EAAE,SAAS,EAAI,QAAQ,GAAK,EAAI,UAAY,EAAI,UAAY,EAAI,WAAa,KAAO,EAAI,QAAU,EAAI,MAAQ,EAAM,OAAS,KAAa,GAAO,EACjK,EAAI,MACZ,EACI,GAAU,GAAU,CACvB,IAAM,EAAU,GAAO,CAAK,EAE5B,MADI,CAAC,GAAgB,IAAI,CAAO,GAAK,CAAC,GAAoB,IAAI,CAAO,EAAU,GAAO,EAC/E,CACR,EACI,GAAkC,GAAU,CAC/C,IAAM,EAAO,GAAS,EAAO,CAC5B,iBACA,gBACA,YACD,CAAC,EACK,EAAU,GAAO,EAAK,cAAc,EACpC,EAAU,GAAa,EAAK,UAAU,EAE5C,OADI,IAAY,eAAiB,CAAC,GAAW,IAAY,6BAA+B,EAAgB,GAAO,EACxG,OAAO,OAAO,CACpB,eAAgB,EAChB,cAAe,GAA8B,GAAO,EAAK,aAAa,CAAC,EACvE,GAAG,IAAY,4BAA8B,CAAC,EAAI,CAAE,WAAY,CAAQ,CACzE,CAAC,CACF,EACI,GAA8B,GAAU,CAC3C,IAAM,EAAS,CACd,OACA,iBACA,aACA,mBACA,gBACA,gBACA,gBACD,EACM,EAAO,GAAO,KACd,EAAO,GAAS,EAAO,EAAO,OAAO,IAAS,eAAiB,CACpE,gBACA,kBACA,gBACA,YACD,EAAI,CAAC,eAAe,CAAC,CAAC,EAChB,EAAU,GAAO,EAAK,cAAc,EAC1C,GAAI,CAAC,0BAA0B,KAAK,CAAO,EAAG,OAAO,GAAO,EAC5D,IAAM,EAAO,GAAkC,CAC9C,oBAAqB,GAAO,EAAK,UAAU,EAC3C,0BAA2B,EAAK,gBACjC,CAAC,EACK,EAAU,GAAO,EAAK,cAAc,EACpC,EAAS,CACd,eAAgB,EAChB,WAAY,EAAK,oBACjB,iBAAkB,EAAK,0BACvB,cAAe,GAAK,EAAK,aAAa,EACtC,cAAe,GAA8B,GAAO,EAAK,aAAa,CAAC,CACxE,EACA,GAAI,IAAS,YAAc,GAAgB,IAAI,CAAO,EAAG,OAAO,OAAO,OAAO,CAC7E,GAAG,EACH,OACA,eAAgB,EAChB,cAAe,GAAK,EAAK,aAAa,CACvC,CAAC,EACD,GAAI,IAAS,gBAAkB,CAAC,GAAoB,IAAI,CAAO,EAAG,OAAO,GAAO,EAChF,IAAM,EAAU,GAAa,EAAK,UAAU,EAE5C,OADI,IAAY,eAAiB,CAAC,EAAgB,GAAO,EAClD,OAAO,OAAO,CACpB,GAAG,EACH,OACA,eAAgB,EAChB,cAAe,GAAK,EAAK,aAAa,EACtC,gBAAiB,GAAK,EAAK,eAAe,EAC1C,cAAe,GAAa,EAAK,aAAa,EAC9C,WAAY,CACb,CAAC,CACF,EACI,GAA2B,GAAU,CACxC,IAAM,EAAO,GAAS,EAAO,CAC5B,mBACA,OACA,aACA,SACD,CAAC,EACD,GAAI,EAAK,mBAAqB,GAAK,CAAC,sBAAsB,KAAK,GAAO,EAAK,IAAI,CAAC,EAAG,OAAO,GAAO,EACjG,IAAM,EAAS,GAAO,EAAK,UAAU,EAErC,MADI,CAAC,6BAA6B,KAAK,CAAM,GAAK,CAAC,OAAO,SAAS,KAAK,MAAM,CAAM,CAAC,EAAU,GAAO,EAC/F,OAAO,OAAO,CACpB,iBAAkB,EAClB,KAAM,GAAO,EAAK,IAAI,EACtB,WAAY,EACZ,QAAS,GAA2B,EAAK,OAAO,CACjD,CAAC,CACF,EAEI,KAA6B,EAAS,IAAY,CACrD,IAAM,EAAU,GAAoB,CAAO,EACrC,EAAc,GAA+B,CAAO,EAC1D,GAAI,EAAQ,yBAA0B,OAAO,GAAO,EACpD,IAAM,EAAS,CACd,eAAgB,EAAQ,eACxB,WAAY,EAAQ,WACpB,iBAAkB,EAAQ,iBAC1B,cAAe,EAAQ,KAAK,GAC5B,cAAe,EAAY,cAC3B,eAAgB,EAAY,cAC7B,EACM,EAAU,EAAQ,QAGxB,OAFI,EAAQ,OAAS,gBAAkB,EAAQ,YAAc,KAAK,MAAM,EAAQ,WAAW,UAAU,GAAK,KAAK,IAAI,GAC/G,EAAQ,OAAS,gBAAkB,EAAY,WAAmB,GAAO,EACtE,GAA2B,EAAQ,OAAS,eAAiB,CACnE,GAAG,EACH,KAAM,EAAQ,KACd,cAAe,EAAQ,cACvB,gBAAiB,EAAQ,gBACzB,cAAe,EAAQ,YAAY,IAAM,KACzC,WAAY,EAAY,YAAc,IACvC,EAAI,CACH,GAAG,EACH,KAAM,EAAQ,KACd,cAAe,EAAQ,aACxB,CAAC,CACF,EACI,IAA6B,EAAM,IAAU,OAAO,KAAK,CAAI,EAAE,SAAW,OAAO,KAAK,CAAK,EAAE,QAAU,OAAO,QAAQ,CAAI,EAAE,OAAO,CAAC,EAAK,KAAW,IAAU,EAAM,EAAI,EAIxK,IAAqC,GAAY,CACpD,IAAM,GAAa,EAAQ,WAAa,WAAW,OAAO,KAAK,UAAU,EACnE,EAA4B,IAAI,IAClC,EAAa,EACb,EAAQ,IAAI,gBAOhB,MAAO,CACN,eAPwB,CACxB,GAAc,EACd,EAAM,MAAM,EACZ,EAAQ,IAAI,gBACZ,EAAU,MAAM,CACjB,EAGC,MAAM,IAAI,EAAO,EAAW,CAC3B,IAAM,EAAc,GAA+B,EAAM,WAAW,EAC9D,EAAW,IAA0B,EAAM,QAAS,CAAW,EAC/D,EAAO,GAAkC,EAAM,QAAQ,eAAe,EAC5E,GAAI,EAAS,aAAe,EAAK,qBAAuB,EAAS,mBAAqB,EAAK,0BAA2B,MAAM,IAAI,GAChI,IAAM,EAAe,EAAM,QAAQ,OAC7B,EAAgB,EAAM,QAAQ,UAC9B,EAAc,EAAM,OACpB,EAAS,EACT,EAAa,IAAI,gBACjB,MAAe,EAAW,MAAM,EACtC,EAAa,iBAAiB,QAAS,EAAQ,CAAE,KAAM,EAAK,CAAC,EAC7D,EAAY,iBAAiB,QAAS,EAAQ,CAAE,KAAM,EAAK,CAAC,GACxD,EAAa,SAAW,EAAY,UAAS,EAAO,EACxD,IAAM,MAAkB,IAAW,GAAc,CAAC,EAAW,OAAO,SAAW,EAAc,EACvF,MAAsB,CAC3B,GAAI,CAAC,EAAU,EAAG,MAAM,IAAI,aAAa,2BAA4B,YAAY,CAClF,EACM,MAAgB,IAAI,QAAQ,CACjC,uBAAwB,EAAK,oBAC7B,6BAA8B,OAAO,EAAK,yBAAyB,CACpE,CAAC,EACK,EAAM,GAAG,EAAY,eAAe,GAAG,EAAY,gBACnD,EAAW,+BAA+B,IAC1C,EAAY,sCAAsC,IACxD,GAAI,CACH,EAAc,EACd,IAAM,EAAQ,WAAW,WAAW,MACpC,GAAI,CAAC,GAAS,OAAO,OAAW,IAAa,MAAU,MAAM,0CAA0C,EACvG,IAAI,EACJ,GAAI,CACH,EAAU,OAAO,aACjB,EAAQ,QAAQ,CAAS,CAC1B,MAAQ,CACP,MAAU,MAAM,0CAA0C,CAC3D,CACA,OAAO,MAAM,EAAM,QAAQ,EAAU,CACpC,KAAM,YACN,OAAQ,EAAW,MACpB,EAAG,SAAY,CACd,EAAc,EACd,IAAI,EAAS,EAAU,IAAI,CAAG,EAC9B,GAAI,CAAC,GAAU,EAAQ,QAAQ,CAAS,IAAM,EAAO,QAAU,CAAC,GAA0B,EAAO,QAAS,CAAQ,EAAG,CACpH,EAAU,OAAO,CAAG,EACpB,IAAM,EAAS,OAAO,WAAW,EACjC,EAAQ,QAAQ,EAAW,CAAM,EACjC,IAAM,EAAQ,GAAwB,MAAM,EAAQ,UAAU,EAAa,CAC1E,OAAQ,EAAW,OACnB,YACA,gBAAiB,CAClB,CAAC,CAAC,EAEF,GADA,EAAc,EACV,KAAK,MAAM,EAAM,UAAU,GAAK,KAAK,IAAI,GAAK,CAAC,GAA0B,EAAM,QAAS,CAAQ,EAAG,MAAM,IAAI,GACjH,IAAM,EAAkB,EAAQ,EAChC,EAAgB,IAAI,SAAU,kBAAkB,EAChD,EAAgB,IAAI,eAAgB,kBAAkB,EACtD,IAAM,EAAW,MAAM,EAAU,GAAG,EAAY,cAAc,6CAA8C,CAC3G,OAAQ,OACR,YAAa,UACb,SAAU,QACV,OAAQ,EAAW,OACnB,QAAS,EACT,KAAM,KAAK,UAAU,CACpB,KAAM,EAAM,KACZ,eAAgB,EAAY,eAC5B,cAAe,EAAY,aAC5B,CAAC,CACF,CAAC,EAED,GADA,EAAc,EACV,CAAC,EAAS,GAAI,MAAM,IAAI,GAAmB,2BAA4B,CAAE,WAAY,EAAS,MAAO,CAAC,EAC1G,IAAM,EAAU,GAA2B,MAAM,EAAS,KAAK,CAAC,EAChE,EAAc,EACd,IAAM,EAAO,EAAS,QAAQ,IAAI,cAAc,GAAG,KAAK,EACxD,GAAI,CAAC,GAAQ,CAAC,GAA0B,EAAS,CAAQ,EAAG,MAAM,IAAI,GACtE,GAAI,EAAQ,QAAQ,CAAS,IAAM,EAAQ,MAAM,IAAI,aAAa,4BAA6B,YAAY,EAC3G,EAAS,CACR,UACA,OACA,QACD,EACA,EAAU,IAAI,EAAK,CAAM,CAC1B,CACA,IAAM,EAAc,EA2Bd,EAAS,MAAM,EAAU,MA1BR,EAAM,EAAO,CAAC,IAAM,CAE1C,GADA,EAAc,EACV,CAAC,EAAK,WAAW,GAAG,GAAK,EAAK,WAAW,IAAI,EAAG,MAAM,IAAI,GAC9D,IAAM,EAAM,IAAI,IAAI,EAAM,EAAY,aAAa,EACnD,GAAI,EAAI,SAAW,EAAY,eAAiB,EAAI,UAAY,EAAI,UAAY,EAAI,KAAM,MAAM,IAAI,GACpG,GAAI,EAAQ,QAAQ,CAAS,IAAM,EAAY,OAAQ,MAAM,IAAI,aAAa,4BAA6B,YAAY,EACvH,IAAM,EAAiB,IAAI,QAAQ,EAAK,OAAO,EAC/C,GAAI,EAAe,IAAI,eAAe,EAAG,MAAM,IAAI,GACnD,EAAQ,EAAE,SAAS,EAAO,IAAS,EAAe,IAAI,EAAM,CAAK,CAAC,EAClE,EAAe,IAAI,eAAgB,EAAY,IAAI,EACnD,IAAM,EAAW,MAAM,EAAU,EAAK,CACrC,OAAQ,EAAK,QAAU,MACvB,KAAM,EAAK,KACX,MAAO,EAAK,MACZ,QAAS,EACT,YAAa,UACb,SAAU,QACV,OAAQ,EAAW,MACpB,CAAC,EAED,GADA,EAAc,EACV,EAAQ,QAAQ,CAAS,IAAM,EAAY,OAAQ,MAAM,IAAI,aAAa,4BAA6B,YAAY,EACvH,GAAI,CAAC,EAAS,GAAI,MAAM,IAAI,GAAmB,2BAA4B,CAAE,WAAY,EAAS,MAAO,CAAC,EAC1G,IAAM,EAAO,EAAS,QAAQ,IAAI,cAAc,GAAG,KAAK,EAExD,OADI,IAAM,EAAY,KAAO,GACtB,CACR,CACsC,EAEtC,GADA,EAAc,EACV,EAAQ,QAAQ,CAAS,IAAM,EAAY,OAAQ,MAAM,IAAI,aAAa,4BAA6B,YAAY,EACvH,OAAO,CACR,CAAC,CACF,OAAS,EAAO,CAOf,MANI,IAAe,GAAQ,EAAU,OAAO,CAAG,EAC3C,EAAU,GAAK,aAAiB,IAAsB,CACzD,IACA,IACA,GACD,EAAE,SAAS,EAAM,YAAc,CAAC,GAAG,EAAQ,aAAa,EAClD,CACP,QAAU,CACT,EAAW,MAAM,EACjB,EAAa,oBAAoB,QAAS,CAAM,EAChD,EAAY,oBAAoB,QAAS,CAAM,CAChD,CACD,CACD,CACD,EAGI,OAAe,CAClB,MAAM,IAAI,EACX,EACI,GAAyB,GAAU,OAAO,GAAU,UAAY,iBAAiB,KAAK,CAAK,EAAI,EAAQ,GAAO,EAC9G,IAAY,EAAO,IAClB,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAAK,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAQ,SAAS,CAAG,CAAC,EAAU,GAAO,EACpI,EAEJ,GAAe,GAAU,OAAO,GAAU,UAAY,6BAA6B,KAAK,CAAK,GAAK,OAAO,SAAS,KAAK,MAAM,CAAK,CAAC,EAAI,EAAQ,GAAO,EACtJ,KAAyB,EAAO,IAAiB,CACpD,IAAM,EAAW,GAAS,EAAO,CAAC,OAAO,CAAC,EACpC,EAAY,GAAsB,CAAY,EACpD,GAAI,CAAC,MAAM,QAAQ,EAAS,KAAK,EAAG,OAAO,GAAO,EAClD,IAAM,EAAuB,IAAI,IAC3B,EAAQ,EAAS,MAAM,IAAK,GAAU,CAC3C,IAAM,EAAO,GAAS,EAAO,CAC5B,aACA,aACA,eACA,aACA,aACA,SACD,CAAC,EACK,EAAK,GAAsB,EAAK,UAAU,EAIhD,OAHI,EAAK,IAAI,CAAE,GAAK,OAAO,EAAK,SAAY,WAAa,EAAK,WAAa,IAAO,IAC9E,EAAK,YAAc,MAAQ,OAAO,EAAK,YAAe,SAAiB,GAAO,GAClF,EAAK,IAAI,CAAE,EACJ,OAAO,OAAO,CACpB,WAAY,EACZ,WAAY,GAAY,EAAK,UAAU,EACvC,aAAc,GAAY,EAAK,YAAY,EAC3C,WAAY,GAAY,EAAK,UAAU,EACvC,WAAY,OAAO,EAAK,YAAe,SAAW,EAAK,WAAa,KACpE,QAAS,EAAK,OACf,CAAC,EACF,CAAC,EACD,OAAO,OAAO,OAAO,CAAE,MAAO,OAAO,OAAO,CAAK,CAAE,CAAC,CACrD,EAGI,IAAY,EAAO,IAAS,CAC/B,GAAI,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAAK,OAAO,KAAK,CAAK,EAAE,SAAW,EAAK,QAAU,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAK,SAAS,CAAG,CAAC,EAAG,MAAM,IAAI,GACjL,OAAO,CACR,EACI,IAAQ,EAAO,IAAY,CAC9B,GAAI,OAAO,GAAU,UAAY,CAAC,EAAM,QAAU,EAAM,OAAS,EAAS,MAAM,IAAI,GACpF,OAAO,CACR,EACI,IAAmB,IACf,CAAE,MAAO,GAAK,GAAS,EAAO,CAAC,OAAO,CAAC,EAAE,MAAO,GAAG,EAAE,KAAK,CAAE,GAEhE,IAAwB,GAAU,CACrC,IAAM,EAAS,GAAS,EAAO,CAAC,QAAS,MAAM,CAAC,EAChD,GAAI,OAAO,EAAO,MAAS,UAAY,CAAC,aAAa,KAAK,EAAO,IAAI,EAAG,MAAM,IAAI,GAClF,MAAO,CACN,MAAO,GAAK,EAAO,MAAO,GAAG,EAAE,KAAK,EACpC,KAAM,EAAO,IACd,CACD,EACI,IAAwB,GAAU,CACrC,IAAM,EAAS,GAAS,EAAO,CAAC,QAAS,cAAc,CAAC,EACxD,MAAO,CACN,MAAO,GAAK,EAAO,MAAO,IAAI,EAC9B,aAAc,GAAK,EAAO,aAAc,GAAG,CAC5C,CACD,EACI,IAAiB,GAAU,CAC9B,IAAM,EAAS,GAAS,EAAO,CAC9B,QACA,QACA,YACD,CAAC,EACD,GAAI,EAAO,QAAU,IAAQ,OAAO,EAAO,YAAe,UAAY,CAAC,6BAA6B,KAAK,EAAO,UAAU,GAAK,CAAC,OAAO,SAAS,KAAK,MAAM,EAAO,UAAU,CAAC,EAAG,MAAM,IAAI,GAC1L,OAAO,OAAO,OAAO,CACpB,MAAO,GACP,MAAO,GAAK,EAAO,MAAO,IAAI,EAC9B,WAAY,EAAO,UACpB,CAAC,CACF,EAGI,GAAa,CAChB,WACA,aACA,WACD,EACI,IAAW,CACd,GAAG,GACH,yBACA,sBACD,EAEI,IAA8B,GAAU,CAE3C,GADI,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAC1D,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,IAAS,SAAS,CAAG,CAAC,EAAG,MAAM,IAAI,GACzE,IAAM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAS,GAAY,CAC/B,IAAM,EAAQ,EAAM,GACpB,GAAI,GAA8B,OAAS,OAAO,GAAU,UAAY,MAAM,KAAK,CAAK,EAAE,OAAS,KAAM,MAAM,IAAI,GAC/G,IAAU,IAAK,KAAG,EAAO,GAAS,EACvC,CACA,IAAM,EAAQ,EAAM,uBAIpB,GAHI,GAA8B,OAAS,OAAO,GAAU,UAAY,EAAM,OAAS,OACnF,IAAU,IAAK,KAAG,EAAO,uBAAyB,GAClD,EAAM,uBAAyB,IAAK,IAAK,OAAO,EAAM,sBAAyB,YAC/E,GAAS,MAAQ,EAAM,uBAAyB,GAAM,MAAM,IAAI,GAEpE,OADI,EAAM,uBAAyB,IAAK,KAAG,EAAO,qBAAuB,EAAM,sBACxE,OAAO,OAAO,CAAM,CAC5B,EAGI,IAAY,EAAO,IAAS,CAE/B,GADI,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAC1D,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAK,SAAS,CAAG,CAAC,EAAG,MAAM,IAAI,GACrE,OAAO,CACR,EACI,GAAc,GAAU,CAC3B,GAAI,OAAO,GAAU,UAAY,CAAC,OAAO,cAAc,CAAK,GAAK,EAAQ,EAAG,MAAM,IAAI,GACtF,OAAO,CACR,EACIC,GAAe,GAAU,CAC5B,GAAI,OAAO,GAAU,UAAY,CAAC,6BAA6B,KAAK,CAAK,GAAK,CAAC,OAAO,SAAS,KAAK,MAAM,CAAK,CAAC,EAAG,MAAM,IAAI,GAC7H,OAAO,CACR,EACI,GAAW,GAAU,CACxB,GAAI,OAAO,GAAU,UAAW,MAAM,IAAI,GAC1C,OAAO,CACR,EACI,IAAyB,GAAU,CACtC,IAAM,EAAO,GAAS,EAAO,CAC5B,UACA,cACA,sBACD,CAAC,EACD,OAAO,OAAO,OAAO,CACpB,QAAS,GAAQ,EAAK,OAAO,EAC7B,YAAa,EAAK,cAAgB,KAAO,KAAOA,GAAY,EAAK,WAAW,EAC5E,qBAAsB,GAAW,EAAK,oBAAoB,CAC3D,CAAC,CACF,EACI,IAA6B,GAAU,CAC1C,IAAM,EAAO,GAAS,EAAO,CAAC,gCAAiC,SAAS,CAAC,EACzE,OAAO,OAAO,OAAO,CACpB,8BAA+B,GAAW,EAAK,6BAA6B,EAC5E,QAAS,GAAQ,EAAK,OAAO,CAC9B,CAAC,CACF,EACI,IAA6B,GAAU,CAC1C,IAAM,EAAO,GAAS,EAAO,CAAC,YAAY,CAAC,EAC3C,OAAO,OAAO,OAAO,CAAE,WAAYA,GAAY,EAAK,UAAU,CAAE,CAAC,CAClE,EACI,IAA0B,GAAU,CACvC,IAAM,EAAO,GAAS,EAAO,CAC5B,gCACA,UACA,MACD,CAAC,EACD,GAAI,OAAO,EAAK,MAAS,UAAY,CAAC,EAAK,KAAK,QAAU,EAAK,KAAK,OAAS,IAAK,MAAM,IAAI,GAC5F,OAAO,OAAO,OAAO,CACpB,8BAA+B,GAAW,EAAK,6BAA6B,EAC5E,QAAS,GAAQ,EAAK,OAAO,EAC7B,KAAM,EAAK,IACZ,CAAC,CACF,EAGIC,IAAU,EAAO,IAAQ,CAC5B,GAAI,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAAK,OAAO,KAAK,CAAK,EAAE,SAAW,GAAK,OAAO,KAAK,CAAK,EAAE,KAAO,EAAK,MAAM,IAAI,GAC/I,OAAO,CACR,EACI,GAA+B,GAAU,CAC5C,IAAM,EAAOA,GAAO,EAAO,UAAU,EACrC,GAAI,OAAO,EAAK,UAAa,UAAW,MAAM,IAAI,GAClD,OAAO,OAAO,OAAO,CAAE,SAAU,EAAK,QAAS,CAAC,CACjD,EACI,GAAkC,GAAU,CAC/C,GAAIA,GAAO,EAAO,UAAU,EAAE,WAAa,GAAM,MAAM,IAAI,GAC3D,OAAO,OAAO,OAAO,CAAE,SAAU,EAAK,CAAC,CACxC,EACI,GAAsC,GAAU,CACnD,IAAM,EAAOA,GAAO,EAAO,OAAO,EAClC,GAAI,OAAO,EAAK,OAAU,UAAY,CAAC,EAAK,MAAM,QAAU,EAAK,MAAM,OAAS,MAAQ,CAAC,mDAAmD,KAAK,EAAK,KAAK,EAAG,MAAM,IAAI,GACxK,MAAO,CAAE,MAAO,EAAK,KAAM,CAC5B,EAEI,GAAmC,GAAY,CAClD,GAAI,CAAC,GAAW,OAAO,GAAY,UAAY,OAAO,KAAK,CAAO,EAAE,SAAW,GAAK,OAAO,KAAK,CAAO,EAAE,KAAM,GAAQ,IAAQ,UAAY,IAAQ,WAAW,GAAK,CAAC,EAAQ,QAAU,OAAO,EAAQ,OAAO,SAAY,WAAa,OAAO,EAAQ,WAAc,WAAY,MAAM,IAAI,GACxR,MAAO,CACN,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,OACR,CACD,EAII,IAAuB,GAAY,CACtC,GAAI,CAAC,GAAW,OAAO,GAAY,UAAY,OAAO,KAAK,CAAO,EAAE,KAAM,GAAQ,IAAQ,oBAAsB,IAAQ,cAAc,GAAK,OAAO,EAAQ,cAAiB,UAAY,CAAC,EAAQ,aAAa,QAAU,EAAQ,mBAAqB,IAAK,KAAM,OAAO,EAAQ,kBAAqB,UAAY,CAAC,EAAQ,iBAAiB,QAAS,MAAM,IAAI,GAC5V,OAAO,OAAO,OAAO,CACpB,GAAG,EAAQ,mBAAqB,IAAK,GAAI,CAAC,EAAI,CAAE,iBAAkB,EAAQ,gBAAiB,EAC3F,aAAc,EAAQ,YACvB,CAAC,CACF,EAEI,IAAsB,cAAc,EAAc,CACrD,MAAM,2BAA2B,EAAM,EAAS,CAC/C,IAAM,EAAiB,IAAS,GAAK,IAAM,IAAS,WAAa,IAAM,IACjE,EAAW,MAAM,KAAK,UAAU,gBAAgB,IAAS,GAAK,MAAQ,OAAQ,iCAAiC,IAAQ,CAC5H,GAAG,EACH,SAAU,GACV,MAAO,OACR,CAAC,EACD,GAAI,EAAS,SAAW,EAAgB,MAAM,IAAI,GAClD,OAAO,EAAS,IACjB,CACA,MAAM,kBAAkB,EAAS,CAChC,OAAO,GAA4B,MAAM,KAAK,2BAA2B,GAAI,CAC5E,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,yBAAyB,EAAS,CACvC,OAAO,GAA+B,MAAM,KAAK,2BAA2B,WAAY,CACvF,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,CAAC,EACP,YAAa,GACb,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,yBAAyB,EAAS,EAAS,CAChD,GAAI,MAAM,KAAK,2BAA2B,WAAY,CACrD,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,GAAmC,CAAO,EAChD,YAAa,GACb,MAAO,OACR,CAAC,IAAM,KAAM,MAAM,IAAI,EACxB,CACA,MAAM,yBAAyB,EAAS,CACvC,OAAO,GAA4B,MAAM,KAAK,2BAA2B,GAAI,CAAE,GAAG,GAAgC,CAAO,CAAE,CAAC,CAAC,CAC9H,CACA,MAAM,gCAAgC,EAAS,CAC9C,OAAO,GAA+B,MAAM,KAAK,2BAA2B,WAAY,CACvF,GAAG,GAAgC,CAAO,EAC1C,KAAM,CAAC,EACP,YAAa,EACd,CAAC,CAAC,CACH,CACA,MAAM,gCAAgC,EAAS,EAAS,CACvD,GAAI,MAAM,KAAK,2BAA2B,WAAY,CACrD,GAAG,GAAgC,CAAO,EAC1C,KAAM,GAAmC,CAAO,EAChD,YAAa,EACd,CAAC,IAAM,KAAM,MAAM,IAAI,EACxB,CACA,MAAM,YAAY,EAAS,CAC1B,OAAO,IAAsB,MAAM,KAAK,QAAQ,MAAO,YAAa,CACnE,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,4BAA4B,EAAS,EAAS,CACnD,OAAO,IAA0B,MAAM,KAAK,QAAQ,OAAQ,sBAAuB,CAClF,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,IAA0B,CAAO,EACvC,YAAa,GACb,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,kBAAkB,EAAS,EAAS,CACzC,GAAI,CAQH,OAPA,MAAM,KAAK,QAAQ,MAAO,YAAa,CACtC,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,IAAuB,CAAO,EACpC,YAAa,GACb,MAAO,OACR,CAAC,EACM,UACR,OAAS,EAAO,CACf,GAAI,EAAQ,QAAQ,SAAW,EAAQ,YAAY,IAAM,GAAO,MAAM,EACtE,GAAI,aAAiB,IAAsB,EAAM,aAAe,KAAO,EAAM,aAAe,sCAAuC,MAAO,kBAC1I,MAAM,CACP,CACD,CACA,MAAM,sBAAsB,EAAS,EAAS,CAC7C,OAAO,GAAsB,MAAM,KAAK,QAAQ,QAAS,gBAAiB,CACzE,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,IAA2B,CAAO,EACxC,YAAa,GACb,MAAO,OACR,CAAC,CAAC,CACH,CAEA,MAAM,eAAe,EAAS,EAAS,CACtC,MAAM,KAAK,QAAQ,OAAQ,wBAAyB,CACnD,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,IAAoB,CAAO,EACjC,YAAa,GACb,MAAO,OACR,CAAC,CACF,CACA,MAAM,qBAAqB,EAAS,EAAU,CAAC,EAAG,CACjD,MAAM,KAAK,QAAQ,OAAQ,+BAAgC,CAC1D,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,KAAM,IAAgB,CAAO,EAC7B,SAAU,GACV,MAAO,OACR,CAAC,CACF,CACA,MAAM,oBAAoB,EAAS,EAAU,CAAC,EAAG,CAChD,OAAO,IAAc,MAAM,KAAK,QAAQ,OAAQ,8BAA+B,CAC9E,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,KAAM,IAAqB,CAAO,EAClC,SAAU,GACV,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,qBAAqB,EAAS,EAAU,CAAC,EAAG,CACjD,GAAI,CAQH,OAPA,MAAM,KAAK,QAAQ,OAAQ,+BAAgC,CAC1D,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,KAAM,IAAqB,CAAO,EAClC,SAAU,GACV,MAAO,OACR,CAAC,EACM,UACR,OAAS,EAAO,CACf,GAAI,EAAQ,QAAQ,SAAW,EAAQ,YAAY,IAAM,GAAO,MAAM,EACtE,GAAI,aAAiB,IAAsB,EAAM,aAAe,KAAO,EAAM,aAAe,2CAA4C,MAAO,kBAC/I,MAAM,CACP,CACD,CACA,MAAM,iBAAiB,EAAS,CAC/B,IAAM,EAAkB,GAAkC,EAAQ,eAAe,EACjF,OAAO,IAAsB,MAAM,KAAK,QAAQ,MAAO,iBAAkB,CACxE,GAAG,EACH,kBACA,MAAO,OACR,CAAC,EAAG,EAAgB,mBAAmB,CACxC,CACA,MAAM,sBAAsB,EAAW,EAAS,CAC/C,IAAM,EAAkB,GAAkC,EAAQ,eAAe,EAC3E,EAAK,GAAsB,CAAS,EAC1C,GAAI,IAAO,EAAgB,oBAAqB,MAAM,IAAI,GAC1D,MAAM,KAAK,QAAQ,SAAU,kBAAkB,IAAM,CACpD,GAAG,EACH,kBACA,YAAa,GACb,MAAO,OACR,CAAC,CACF,CACA,MAAM,4BAA4B,EAAS,CAC1C,MAAM,KAAK,QAAQ,OAAQ,+BAAgC,CAC1D,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,YAAa,GACb,MAAO,OACR,CAAC,CACF,CACA,MAAM,yBAAyB,EAAS,EAAS,CAChD,OAAO,GAAwB,MAAM,KAAK,QAAQ,OAAQ,6BAA8B,CACvF,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,GAA+B,CAAO,EAC5C,YAAa,GACb,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,OAAO,EAAS,EAAS,CAC9B,GAAI,CAAC,GAAW,OAAO,KAAK,CAAO,EAAE,KAAM,GAAQ,IAAQ,UAAU,GAAK,OAAO,EAAQ,UAAa,UAAY,CAAC,EAAQ,SAAS,OAAQ,MAAM,IAAI,GACtJ,IAAM,EAAW,MAAM,KAAK,QAAQ,OAAQ,eAAgB,CAC3D,GAAG,EACH,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,KAAM,CAAE,SAAU,EAAQ,QAAS,EACnC,YAAa,GACb,MAAO,OACR,CAAC,EACD,GAAI,CAAC,GAAY,OAAO,KAAK,CAAQ,EAAE,KAAM,GAAQ,CAAC,CAAC,eAAgB,YAAY,EAAE,SAAS,CAAG,CAAC,GAAK,EAAS,eAAiB,YAAc,OAAO,EAAS,YAAe,UAAY,CAAC,6BAA6B,KAAK,EAAS,UAAU,GAAK,CAAC,OAAO,SAAS,KAAK,MAAM,EAAS,UAAU,CAAC,EAAG,MAAM,IAAI,GAClT,OAAO,OAAO,OAAO,CACpB,aAAc,WACd,WAAY,EAAS,UACtB,CAAC,CACF,CACA,WAAY,CACX,KAAK,UAAU,eAAe,CAC/B,CACA,MAAM,MAAM,EAAS,EAAU,CAAC,EAAG,CAClC,OAAO,GAA0B,MAAM,KAAK,QAAQ,OAAQ,cAAe,CAC1E,GAAG,EACH,KAAM,IAAyB,CAAO,EACtC,SAAU,GACV,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,OAAO,EAAU,CAAC,EAAG,CAC1B,MAAM,KAAK,QAAQ,OAAQ,eAAgB,CAC1C,GAAG,EACH,YAAa,GACb,MAAO,OACR,CAAC,CACF,CACA,MAAM,QAAQ,EAAU,CAAC,EAAG,CAC3B,OAAO,GAAoB,MAAM,KAAK,QAAQ,MAAO,gBAAiB,CACrE,GAAG,EACH,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,SAAS,EAAU,CAAC,EAAG,CAC5B,OAAO,GAAoB,MAAM,KAAK,QAAQ,MAAO,iBAAkB,CACtE,GAAG,EACH,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,cAAc,EAAU,CAAC,EAAG,CACjC,OAAO,GAA2B,MAAM,KAAK,QAAQ,MAAO,uBAAwB,CACnF,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,OACR,CAAC,CAAC,CACH,CACA,MAAM,mBAAmB,EAAS,EAAU,CAAC,EAAG,CAC/C,OAAO,GAAoB,MAAM,KAAK,QAAQ,OAAQ,sBAAuB,CAC5E,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,QACP,KAAM,GAA+B,EAAQ,OAAO,EACpD,YAAa,EACd,CAAC,CAAC,CACH,CACA,MAAM,cAAc,EAAS,EAAU,CAAC,EAAG,CAC1C,IAAM,EAAe,GAAkC,CACtD,oBAAqB,EAAQ,oBAC7B,0BAA2B,EAAQ,yBACpC,CAAC,EACK,EAAO,GAAiC,EAAQ,QAAS,CAAY,EAC3E,OAAO,GAAoB,MAAM,KAAK,QAAQ,OAAQ,gBAAiB,CACtE,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,QACP,gBAAiB,EACjB,YAAa,GACb,KAAM,CACP,CAAC,CAAC,CACH,CACD,EAGI,IAA0B,GAAY,GAAY,EAAS,CAAC,iBAAiB,CAAC,EAC9E,IAA8B,GAAY,GAAY,EAAS,CAAC,iBAAiB,CAAC,EAClF,IAAwC,GAAY,GAAY,EAAS,CAAC,cAAe,aAAa,CAAC,EACvG,GAAkB,cAAc,EAAc,CACjD,YAAY,EAAQ,CACnB,MAAO,CACN,YAAa,GAAQ,WACrB,UAAW,GAAQ,QACpB,CACD,CACA,MAAM,UAAU,EAAQ,CACvB,OAAO,KAAK,QAAQ,MAAO,yBAA0B,CAAE,OAAQ,CAC9D,EAAG,GAAQ,EACX,MAAO,GAAQ,MACf,OAAQ,GAAQ,OAChB,OAAQ,GAAQ,MACjB,CAAE,CAAC,CACJ,CACA,MAAM,QAAQ,EAAQ,CACrB,OAAO,KAAK,QAAQ,MAAO,0BAA0B,GAAQ,CAC9D,CACA,MAAM,eAAgB,CACrB,OAAO,KAAK,QAAQ,MAAO,8BAA8B,CAC1D,CACA,MAAM,YAAa,CAClB,OAAO,KAAK,QAAQ,OAAQ,oCAAoC,CACjE,CACA,MAAM,cAAc,EAAO,CAC1B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAM,SAAS,CAC7D,CACA,MAAM,iBAAiB,EAAO,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAM,UAAW,CAAE,KAAM,CAAQ,CAAC,CAChF,CACA,MAAM,sBAAsB,EAAO,EAAS,CAC3C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,sBAAuB,CAAE,KAAM,IAAuB,CAAO,CAAE,CAAC,CACrH,CACA,MAAM,kBAAkB,EAAO,EAAS,CACvC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,0BAA2B,CAAE,KAAM,IAA2B,CAAO,CAAE,CAAC,CAC7H,CACA,MAAM,oBAAoB,EAAO,CAChC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,EAAM,qBAAqB,CAC5E,CACA,MAAM,oCAAoC,EAAO,EAAS,CACzD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,uBAAwB,CAAE,KAAM,IAAqC,CAAO,CAAE,CAAC,CACpI,CACA,MAAM,qBAAqB,EAAO,CACjC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAM,yBAAyB,CAC7E,CACA,MAAM,YAAY,EAAO,EAAQ,CAChC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAM,gBAAiB,CAAE,OAAQ,KAAK,YAAY,CAAM,CAAE,CAAC,CACzG,CACA,MAAM,8BAA8B,EAAO,EAAW,CACrD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,yBAA0B,CAAE,KAAM,CAAE,WAAY,CAAU,CAAE,CAAC,CAClH,CACD,EAGI,GAAgB,IAAY,CAC/B,OAAQ,GAAQ,OAChB,MAAO,GAAQ,MACf,gBAAiB,GAAQ,MACzB,eAAgB,GAAQ,gBAAgB,OAAO,OAAO,EACtD,QAAS,GAAQ,QAAU,IAAK,GAChC,SAAU,GAAQ,SAAW,IAAK,EACnC,GACI,IAAyB,GAAY,GAAY,EAAS,CAC7D,QACA,cACA,gBACA,aACD,CAAC,EACG,GAAyB,GAAY,GAAY,EAAS,CAAC,SAAU,kBAAkB,CAAC,EACxF,GAA0B,GAAY,GAAY,EAAS,CAAC,OAAQ,MAAM,CAAC,EAC3E,GAAmB,cAAc,EAAc,CAClD,MAAM,IAAI,EAAY,CACrB,OAAO,KAAK,QAAQ,MAAO,aAAa,GAAY,CACrD,CAEA,MAAM,UAAU,EAAgB,EAAY,CAC3C,OAAO,KAAK,QAAQ,MAAO,aAAa,IAAc,CAAE,OAAQ,CAAE,gBAAiB,CAAe,CAAE,CAAC,CACtG,CACA,MAAM,OAAO,EAAgB,EAAS,CACrC,OAAO,KAAK,QAAQ,OAAQ,YAAa,CACxC,KAAM,IAAsB,CAAO,EACnC,OAAQ,CAAE,gBAAiB,CAAe,CAC3C,CAAC,CACF,CACA,MAAM,OAAO,EAAY,EAAS,CACjC,OAAO,KAAK,QAAQ,QAAS,aAAa,IAAc,CAAE,KAAM,GAAsB,CAAO,CAAE,CAAC,CACjG,CACA,MAAM,aAAa,EAAgB,EAAY,EAAS,CACvD,OAAO,KAAK,QAAQ,QAAS,aAAa,IAAc,CACvD,OAAQ,CAAE,gBAAiB,CAAe,EAC1C,KAAM,GAAsB,CAAO,CACpC,CAAC,CACF,CACA,MAAM,WAAW,EAAgB,EAAQ,CACxC,OAAO,KAAK,QAAQ,MAAO,YAAa,CAAE,OAAQ,CACjD,GAAG,GAAa,CAAM,EACtB,gBAAiB,CAClB,CAAE,CAAC,CACJ,CACA,MAAM,KAAK,EAAQ,CAClB,OAAO,KAAK,QAAQ,MAAO,YAAa,CAAE,OAAQ,GAAa,CAAM,CAAE,CAAC,CACzE,CACA,MAAM,aAAa,EAAY,CAC9B,OAAO,KAAK,QAAQ,MAAO,aAAa,EAAW,UAAU,CAC9D,CACA,MAAM,mBAAmB,EAAgB,EAAY,CACpD,OAAO,KAAK,QAAQ,MAAO,aAAa,EAAW,WAAY,CAAE,OAAQ,CAAE,gBAAiB,CAAe,CAAE,CAAC,CAC/G,CACA,MAAM,cAAc,EAAY,EAAS,CACxC,OAAO,KAAK,QAAQ,OAAQ,aAAa,EAAW,WAAY,CAAE,KAAM,GAAuB,CAAO,CAAE,CAAC,CAC1G,CACA,MAAM,oBAAoB,EAAgB,EAAY,EAAS,CAC9D,OAAO,KAAK,QAAQ,OAAQ,aAAa,EAAW,WAAY,CAC/D,OAAQ,CAAE,gBAAiB,CAAe,EAC1C,KAAM,GAAuB,CAAO,CACrC,CAAC,CACF,CACD,EAGI,IAAsB,GAAY,GAAY,EAAS,CAC1D,QACA,OACA,OACA,cACA,oBACA,cACA,aACA,eACA,wBACA,eACA,mBACA,YACD,CAAC,EACG,IAAsB,GAAY,GAAY,EAAS,CAC1D,QACA,OACA,OACA,cACA,oBACA,cACA,aACA,wBACA,eACA,mBACA,YACD,CAAC,EACG,GAAY,GACC,GAAO,KAAK,GACD,IAAK,GAE7B,GAAiB,cAAc,EAAc,CAChD,MAAM,KAAK,EAAQ,CAClB,OAAO,KAAK,QAAQ,MAAO,UAAW,CAAE,OAAQ,CAC/C,OAAQ,GAAQ,MAChB,MAAO,GAAS,GAAQ,CAAC,EACzB,MAAO,GAAQ,MACf,OAAQ,GAAQ,OAChB,QAAS,GAAQ,QAAU,IAAK,GAChC,SAAU,GAAQ,SAAW,IAAK,EACnC,CAAE,CAAC,CACJ,CACA,MAAM,UAAU,EAAQ,CACvB,OAAO,KAAK,QAAQ,MAAO,UAAW,CAAE,OAAQ,CAC/C,OAAQ,GAAQ,MAChB,MAAO,GAAS,GAAQ,CAAC,EACzB,MAAO,GAAQ,MACf,OAAQ,GAAQ,OAChB,QAAS,GAAQ,QAAU,IAAK,GAChC,SAAU,GAAQ,SAAW,IAAK,GAClC,WAAY,OACb,CAAE,CAAC,CACJ,CACA,MAAM,YAAY,EAAQ,CACzB,OAAO,KAAK,QAAQ,MAAO,UAAW,CAAE,OAAQ,CAC/C,OAAQ,GAAQ,MAChB,MAAO,GAAS,GAAQ,CAAC,EACzB,MAAO,GAAQ,MACf,OAAQ,GAAQ,OAChB,QAAS,GAAQ,QAAU,IAAK,GAChC,SAAU,GAAQ,SAAW,IAAK,GAClC,WAAY,SACb,CAAE,CAAC,CACJ,CACA,MAAM,IAAI,EAAS,CAClB,OAAO,KAAK,QAAQ,MAAO,WAAW,mBAAmB,CAAO,GAAG,CACpE,CACA,MAAM,gBAAgB,EAAS,CAC9B,OAAO,KAAK,QAAQ,MAAO,WAAW,mBAAmB,CAAO,EAAE,eAAe,CAClF,CACA,MAAM,QAAQ,EAAiB,CAC9B,OAAO,KAAK,IAAI,CAAe,CAChC,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,UAAW,CAAE,KAAM,IAAmB,CAAO,CAAE,CAAC,CAC7E,CACA,MAAM,OAAO,EAAS,EAAS,CAC9B,OAAO,KAAK,QAAQ,QAAS,WAAW,mBAAmB,CAAO,IAAK,CAAE,KAAM,IAAmB,CAAO,CAAE,CAAC,CAC7G,CACA,MAAM,YAAY,EAAS,CAC1B,OAAO,KAAK,QAAQ,OAAQ,WAAW,mBAAmB,CAAO,EAAE,aAAa,CACjF,CACA,MAAM,uBAAuB,EAAS,CACrC,OAAO,KAAK,QAAQ,MAAO,WAAW,mBAAmB,CAAO,EAAE,qBAAqB,CACxF,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,SAAU,WAAW,mBAAmB,CAAO,GAAG,CACvE,CACD,EAGI,IAAuB,GAAY,GAAY,EAAS,CAC3D,QACA,UACA,OACA,SACA,aACD,CAAC,EACG,GAAwB,cAAc,EAAc,CACvD,MAAM,MAAO,CACZ,OAAO,KAAK,QAAQ,MAAO,iBAAiB,CAC7C,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,kBAAmB,CAAE,KAAM,IAAoB,CAAO,CAAE,CAAC,CACtF,CACA,MAAM,WAAW,EAAY,CAC5B,MAAM,KAAK,QAAQ,SAAU,mBAAmB,GAAY,CAC7D,CACD,EAGI,IAA8B,GAAY,GAAY,EAAS,CAClE,gBACA,QACA,gBACA,aACA,QACD,CAAC,EACG,IAA8B,GAAY,GAAY,EAAS,CAAC,UAAU,CAAC,EAC3E,GAAyB,cAAc,EAAc,CACxD,MAAM,KAAK,EAAkB,GAAM,CAClC,OAAO,KAAK,QAAQ,MAAO,mBAAoB,CAAE,OAAQ,CAAE,iBAAkB,CAAgB,CAAE,CAAC,CACjG,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,mBAAoB,CAAE,KAAM,IAA2B,CAAO,CAAE,CAAC,CAC9F,CACA,MAAM,WAAW,EAAY,CAC5B,MAAM,KAAK,QAAQ,SAAU,oBAAoB,GAAY,CAC9D,CACA,MAAM,kBAAkB,EAAY,CACnC,OAAO,KAAK,QAAQ,MAAO,oBAAoB,EAAW,eAAe,CAC1E,CACA,MAAM,oBAAoB,EAAgB,CACzC,OAAO,KAAK,QAAQ,MAAO,kCAAkC,GAAgB,CAC9E,CACA,MAAM,sBAAsB,EAAgB,EAAY,EAAS,CAChE,OAAO,KAAK,QAAQ,OAAQ,kCAAkC,EAAe,GAAG,EAAW,SAAU,CAAE,KAAM,IAA2B,CAAO,CAAE,CAAC,CACnJ,CACD,EAGI,GAAc,GAAW,CACvB,KACL,MAAO,CACN,OAAQ,EAAO,OACf,MAAO,EAAO,MACd,OAAQ,EAAO,OACf,gBAAiB,EAAO,MACxB,gBAAiB,EAAO,cACxB,iBAAkB,EAAO,gBAAgB,OAAO,OAAO,EACvD,YAAa,EAAO,WAAa,GAAO,IAAK,GAC7C,kBAAmB,EAAO,gBAAkB,GAAO,IAAK,GACxD,QAAS,EAAO,SAAS,OAAO,OAAO,EACvC,mBAAoB,EAAO,oBAAoB,OAAO,OAAO,EAC7D,YAAa,EAAO,aAAa,OAAO,OAAO,EAC/C,MAAO,EAAO,OAAO,KAAK,GAAK,IAAK,GACpC,YAAa,EAAO,aAAa,KAAK,GAAK,IAAK,GAChD,MAAO,EAAO,OAAO,KAAK,GAAK,IAAK,GACpC,WAAY,EAAO,WAAW,KAAK,GAAK,IAAK,GAC7C,SAAU,EAAO,SAAS,KAAK,GAAK,IAAK,GACzC,OAAQ,EAAO,QAAU,IAAK,GAC9B,SAAU,EAAO,UAAY,IAAK,GAClC,YAAa,EAAO,YAAY,KAAK,GAAK,IAAK,GAC/C,WAAY,EAAO,WAAa,GAAO,IAAK,GAC5C,UAAW,EAAO,UAAY,EAAO,WAAa,MAAQ,EAAO,SAAW,IAAK,GACjF,cAAe,EAAO,cAAgB,IAAK,GAC3C,YAAa,EAAO,YAAc,IAAK,GACvC,QAAS,EAAO,QAAU,IAAK,GAC/B,SAAU,EAAO,SAAW,IAAK,EAClC,CACD,EACI,IAA6B,GAAY,GAAY,EAAS,CACjE,QACA,cACA,kBACA,oBACA,aACA,UACA,aACA,UACA,cACA,oBACD,CAAC,EACG,IAA2B,GAAY,GAAY,EAAS,CAAC,MAAM,CAAC,EACpE,GAA+B,GAAY,GAAY,EAAS,CACnE,mBACA,qBACA,UACA,mBACD,CAAC,EACG,GAA6B,GAAY,GAAY,EAAS,CACjE,SACA,mBACA,qBACA,UACA,mBACD,CAAC,EACG,IAA6B,GAAY,GAAY,EAAS,CACjE,UACA,SACA,WACA,mBACD,CAAC,EACG,GAAwB,cAAc,EAAc,CACvD,MAAM,UAAU,EAAO,EAAgB,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,IAAK,CAAE,OAAQ,CAAE,gBAAiB,CAAM,CAAE,CAAC,CAC1H,CACA,MAAM,mBAAmB,EAAO,EAAS,CACxC,IAAM,EAAS,GAAY,EAAS,CACnC,aACA,oBACA,QACA,cACA,WACA,SACD,CAAC,EACD,OAAO,KAAK,QAAQ,OAAQ,wBAAyB,CACpD,OAAQ,CAAE,gBAAiB,CAAM,EACjC,KAAM,EAAQ,oBAAsB,kBAAoB,CACvD,GAAG,EACH,OAAQ,EAAQ,OAChB,UAAW,EAAQ,WAAW,KAAK,CAAE,YAAa,CAAE,OAAM,EAAE,CAC7D,EAAI,CACL,CAAC,CACF,CACA,MAAM,0BAA0B,EAAO,EAAgB,EAAS,CAC/D,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,iBAAkB,CACjG,OAAQ,CAAE,gBAAiB,CAAM,EACjC,KAAM,CACL,GAAG,GAAY,EAAS,CACvB,oBACA,QACA,aACD,CAAC,EACD,UAAW,EAAQ,UAAU,IAAK,GAAS,GAAY,EAAM,CAAC,KAAM,OAAO,CAAC,CAAC,CAC9E,CACD,CAAC,CACF,CACA,MAAM,gCAAgC,EAAO,EAAgB,EAAQ,EAAS,CAC7E,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,aAAa,mBAAmB,CAAM,IAAK,CAC1H,OAAQ,CAAE,gBAAiB,CAAM,EACjC,KAAM,GAAY,EAAS,CAAC,oBAAqB,WAAW,CAAC,CAC9D,CAAC,CACF,CACA,MAAM,KAAK,EAAQ,CAClB,OAAO,KAAK,QAAQ,MAAO,iBAAkB,CAAE,OAAQ,GAAW,CAAM,CAAE,CAAC,CAC5E,CACA,MAAM,WAAW,EAAO,EAAQ,CAC/B,OAAO,KAAK,QAAQ,MAAO,iBAAkB,CAAE,OAAQ,CACtD,GAAG,GAAW,CAAM,EACpB,gBAAiB,CAClB,CAAE,CAAC,CACJ,CACA,MAAM,aAAa,EAAO,EAAS,CAClC,OAAO,KAAK,QAAQ,OAAQ,iBAAkB,CAC7C,KAAM,IAA0B,CAAO,EACvC,OAAQ,CAAE,gBAAiB,CAAM,CAClC,CAAC,CACF,CACA,MAAM,aAAa,EAAO,EAAgB,CACzC,MAAM,KAAK,QAAQ,SAAU,kBAAkB,GAAgB,CAChE,CACA,MAAM,OAAO,EAAgB,EAAS,CACrC,OAAO,KAAK,QAAQ,QAAS,kBAAkB,IAAkB,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CAC9G,CACA,MAAM,aAAa,EAAO,EAAgB,EAAS,CAClD,OAAO,KAAK,OAAO,EAAgB,CAAO,CAC3C,CACA,MAAM,qBAAqB,EAAO,EAAgB,CACjD,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAe,YAAY,CACzE,CACA,MAAM,iBAAiB,EAAO,EAAgB,EAAS,CACtD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAe,aAAc,CAAE,KAAM,IAAwB,CAAO,CAAE,CAAC,CACtH,CACA,MAAM,cAAc,EAAS,EAAS,CACrC,IAAM,EAAS,GAAS,MAAQ,CAAE,gBAAiB,EAAQ,KAAM,EAAI,IAAK,GAC1E,OAAO,KAAK,QAAQ,OAAQ,+BAAgC,CAC3D,KAAM,CACL,GAAG,GAA4B,CAAO,EACtC,OAAQ,UACT,EACA,QACD,CAAC,CACF,CACA,MAAM,aAAa,EAAO,EAAS,CAClC,OAAO,KAAK,QAAQ,OAAQ,+BAAgC,CAC3D,KAAM,CACL,GAAG,GAA4B,CAAO,EACtC,OAAQ,UACT,EACA,OAAQ,CAAE,gBAAiB,CAAM,CAClC,CAAC,CACF,CACA,MAAM,kBAAkB,EAAS,EAAS,CACzC,IAAM,EAAS,GAAS,MAAQ,CAAE,gBAAiB,EAAQ,KAAM,EAAI,IAAK,GAC1E,OAAO,KAAK,QAAQ,OAAQ,+BAAgC,CAC3D,KAAM,GAA0B,CAAO,EACvC,QACD,CAAC,CACF,CACA,MAAM,iBAAiB,EAAO,EAAS,CACtC,OAAO,KAAK,QAAQ,OAAQ,+BAAgC,CAC3D,KAAM,GAA0B,CAAO,EACvC,OAAQ,CAAE,gBAAiB,CAAM,CAClC,CAAC,CACF,CACA,MAAM,WAAW,EAAO,EAAQ,CAC/B,OAAO,KAAK,QAAQ,MAAO,6BAA8B,CAAE,OAAQ,CAClE,gBAAiB,EACjB,kBAAmB,GAAQ,gBAAkB,GAAO,IAAK,GACzD,gBAAiB,GAAQ,eAAiB,IAAK,GAC/C,iBAAkB,GAAQ,gBAAgB,OAAO,OAAO,CACzD,CAAE,CAAC,CACJ,CACD,EAGI,IAA0B,GAAY,GAAY,EAAS,CAC9D,kBACA,cACA,YACD,CAAC,EACG,IAA6B,GAAY,GAAY,EAAS,CAAC,iBAAiB,CAAC,EACjF,IAAwB,GAAY,GAAY,EAAS,CAAC,iBAAiB,CAAC,EAC5E,IAA4B,GAAY,GAAY,EAAS,CAAC,iBAAiB,CAAC,EAChF,IAAsC,GAAY,GAAY,EAAS,CAAC,cAAe,aAAa,CAAC,EACrG,IAAsC,cAAc,EAAc,CACrE,MAAM,cAAc,EAAO,EAAS,CACnC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,2BAA4B,CAAE,KAAM,IAAuB,CAAO,CAAE,CAAC,CAC9I,CACA,MAAM,eAAe,EAAO,EAAW,CACtC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,2BAA4B,CAAE,KAAM,CAAE,WAAY,CAAU,CAAE,CAAC,CACxI,CACA,MAAM,UAAU,EAAO,CACtB,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,6BAA8B,CAAE,KAAM,CAAC,CAAE,CAAC,CACnH,CACA,MAAM,mBAAmB,EAAO,EAAS,CACxC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,+BAAgC,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CACrJ,CACD,EACI,GAA8B,cAAc,EAAc,CAC7D,YAAY,EAAW,CACtB,MAAM,CAAS,EACf,KAAK,SAAW,IAAI,IAAoC,CAAS,CAClE,CACA,YAAY,EAAQ,CACnB,MAAO,CACN,YAAa,GAAQ,WACrB,UAAW,GAAQ,QACpB,CACD,CACA,MAAM,cAAc,EAAO,CAC1B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAK,EAAE,SAAS,CACjF,CACA,MAAM,iBAAiB,EAAO,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAK,EAAE,UAAW,CAAE,KAAM,CAAQ,CAAC,CACpG,CACA,MAAM,sBAAsB,EAAO,EAAS,CAC3C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,sBAAuB,CAAE,KAAM,IAAqB,CAAO,CAAE,CAAC,CACvI,CACA,MAAM,kBAAkB,EAAO,EAAS,CACvC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,0BAA2B,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CAC/I,CACA,MAAM,oBAAoB,EAAO,CAChC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAK,EAAE,qBAAqB,CAChG,CACA,MAAM,oCAAoC,EAAO,EAAS,CACzD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,uBAAwB,CAAE,KAAM,IAAmC,CAAO,CAAE,CAAC,CACtJ,CACA,MAAM,qBAAqB,EAAO,CACjC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAK,EAAE,yBAAyB,CACjG,CACA,MAAM,YAAY,EAAO,EAAQ,CAChC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAK,EAAE,gBAAiB,CAAE,OAAQ,KAAK,YAAY,CAAM,CAAE,CAAC,CAC7H,CACA,MAAM,8BAA8B,EAAO,EAAW,CACrD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,yBAA0B,CAAE,KAAM,CAAE,WAAY,CAAU,CAAE,CAAC,CACtI,CACD,EAGI,IAAa,EAAgB,IAAc,kBAAkB,mBAAmB,CAAc,EAAE,mBAAmB,mBAAmB,CAAS,IAC/I,IAAkB,EAAgB,IAAiB,CACtD,IAAM,EAAO,kBAAkB,mBAAmB,CAAc,EAAE,uBAClE,OAAO,EAAe,GAAG,EAAK,GAAG,mBAAmB,CAAY,IAAM,CACvE,EACI,KAAkB,EAAM,EAAY,SAAW,CAClD,IAAM,EAAO,IAAI,SAEjB,OADA,EAAK,OAAO,EAAW,CAAI,EACpB,CACR,EACI,IAA0B,GAAY,CACzC,IAAM,EAAO,IAAI,SACX,EAAiB,EAAQ,gBAAkB,qBACjD,EAAK,OAAO,kBAAmB,CAAc,EACzC,EAAQ,MAAM,EAAK,OAAO,OAAQ,EAAQ,IAAI,EAClD,IAAM,EAAgB,EAAQ,cAAc,KAAK,EAGjD,OAFI,IAAmB,iBAAmB,GAAe,EAAK,OAAO,gBAAiB,CAAa,EAC/F,EAAQ,oBAAoB,EAAK,OAAO,wBAAyB,MAAM,EACpE,CACR,EACI,GAA+B,cAAc,EAAc,CAC9D,MAAM,IAAI,EAAgB,CACzB,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,UAAU,CAC3F,CACA,MAAM,YAAY,EAAgB,EAAW,EAAM,CAClD,OAAO,KAAK,QAAQ,MAAO,GAAU,EAAgB,CAAS,EAAG,CAAE,KAAM,IAAe,CAAI,CAAE,CAAC,CAChG,CACA,MAAM,YAAY,EAAgB,EAAW,CAC5C,OAAO,KAAK,QAAQ,SAAU,GAAU,EAAgB,CAAS,CAAC,CACnE,CACA,MAAM,gBAAgB,EAAgB,EAAS,CAC9C,IAAM,EAAO,IAAuB,CAAO,EAC3C,OAAO,KAAK,QAAQ,OAAQ,GAAe,CAAc,EAAG,CAAE,MAAK,CAAC,CACrE,CACA,MAAM,cAAc,EAAgB,EAAc,CACjD,OAAO,KAAK,QAAQ,MAAO,GAAe,EAAgB,CAAY,CAAC,CACxE,CACA,MAAM,gBAAgB,EAAgB,EAAc,CACnD,OAAO,KAAK,QAAQ,OAAQ,GAAG,GAAe,EAAgB,CAAY,EAAE,OAAO,CACpF,CAEA,MAAM,wBAAwB,EAAgB,EAAc,EAAW,EAAU,CAAC,EAAG,CACpF,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAe,EAAgB,CAAY,EAAE,UAAU,mBAAmB,CAAS,IAAK,CACrH,aAAc,OACd,OAAQ,EAAQ,MACjB,CAAC,CACF,CACD,EAGI,GAAc,cAAc,EAAc,CAC7C,MAAM,QAAQ,EAAQ,EAAM,EAAU,CAAC,EAAG,CACzC,OAAO,MAAM,QAAQ,EAAQ,EAAM,CAAO,CAC3C,CACA,MAAM,gBAAgB,EAAQ,EAAM,EAAU,CAAC,EAAG,CACjD,OAAO,KAAK,UAAU,gBAAgB,EAAQ,EAAK,WAAW,QAAQ,EAAI,EAAO,SAAS,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,MAAU,CACrI,GAAG,EACH,SAAU,EAAQ,UAAY,EAC/B,CAAC,CACF,CACD,EAGI,IAAuB,GAAY,GAAY,EAAS,CAAC,YAAa,YAAY,CAAC,EACnF,IAAyB,GAAY,GAAY,EAAS,CAC7D,cACA,wBACA,yBACA,2BACD,CAAC,EACG,IAA2B,GAAY,GAAY,EAAS,CAC/D,UACA,aACA,WACD,CAAC,EACG,IAA0B,GAAY,GAAY,EAAS,CAAC,eAAe,CAAC,EAC5E,IAA2B,GAAY,GAAY,EAAS,CAAC,WAAW,CAAC,EACzE,IAAgC,GAAY,GAAY,EAAS,CAAC,WAAW,CAAC,EAC9E,IAA6B,GAAY,GAAY,EAAS,CACjE,WACA,OACA,OACA,WACD,CAAC,EACG,IAA4B,GAAY,GAAY,EAAS,CAChE,gBACA,WACA,eACA,aACD,CAAC,EACG,GAAmC,cAAc,EAAc,CAClE,MAAM,mBAAmB,EAAI,EAAS,CACrC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,eAAgB,CAAE,KAAM,IAAoB,CAAO,CAAE,CAAC,CAC3H,CACA,MAAM,gBAAgB,EAAI,CACzB,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,eAAgB,CAAE,OAAQ,CAAE,WAAY,eAAgB,CAAE,CAAC,CAChI,CACA,MAAM,kBAAkB,EAAI,CAC3B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,+BAA+B,CACpG,CACA,MAAM,qBAAqB,EAAI,EAAS,CACvC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,gCAAiC,CAAE,KAAM,IAAsB,CAAO,CAAE,CAAC,CAC9I,CACA,MAAM,qBAAqB,EAAI,CAC9B,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,+BAA+B,CACvG,CACA,MAAM,oBAAoB,EAAI,CAC7B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,iCAAiC,CACtG,CACA,MAAM,uBAAuB,EAAI,EAAS,CACzC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,kCAAmC,CAAE,KAAM,IAAwB,CAAO,CAAE,CAAC,CAClJ,CACA,MAAM,uBAAuB,EAAI,CAChC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,iCAAiC,CACzG,CACA,MAAM,6BAA6B,EAAI,EAAc,EAAS,CAC7D,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,EAAE,SAAU,CAAE,KAAM,IAAuB,CAAO,CAAE,CAAC,CAC/L,CACA,MAAM,gCAAgC,EAAI,EAAc,CACvD,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,EAAE,QAAQ,CACvJ,CACA,MAAM,sBAAsB,EAAI,EAAU,CAAC,EAAG,CAC7C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,6CAA8C,CAAE,KAAM,IAAwB,CAAO,CAAE,CAAC,CAC9J,CACA,MAAM,qCAAqC,EAAI,EAAc,EAAU,CAAC,EAAG,CAC1E,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,EAAE,iCAAkC,CAAE,KAAM,IAA6B,CAAO,CAAE,CAAC,CAC9N,CACA,MAAM,0BAA0B,EAAI,EAAc,CACjD,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,GAAG,CAChJ,CACA,MAAM,mCAAmC,EAAI,EAAc,EAAS,CACnE,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,EAAE,mBAAoB,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CAC7M,CACA,MAAM,mCAAmC,EAAI,EAAc,EAAQ,CAClE,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,sCAAsC,mBAAmB,CAAY,EAAE,oBAAoB,mBAAmB,CAAM,GAAG,CAC/L,CACA,MAAM,wBAAwB,EAAI,EAAS,CAC1C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,kCAAmC,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CACpJ,CACD,EAGI,IAA0B,GAAY,GAAY,EAAS,CAAC,8BAA8B,CAAC,EAC3F,IAAwB,GAAY,GAAY,EAAS,CAC5D,wBACA,gCACA,0BACD,CAAC,EACG,IAAwB,GAAY,GAAY,EAAS,CAC5D,WACA,aACA,eACA,gBACD,CAAC,EACG,IAAyB,GAAY,GAAY,EAAS,CAAC,oCAAoC,CAAC,EAChG,GAA+B,cAAc,EAAc,CAC9D,MAAM,sBAAsB,EAAI,EAAS,CACxC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,4BAA6B,CAAE,KAAM,IAAuB,CAAO,CAAE,CAAC,CAC3I,CACA,MAAM,oBAAoB,EAAI,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,0BAA2B,CAAE,KAAM,IAAqB,CAAO,CAAE,CAAC,CACvI,CACA,MAAM,oBAAoB,EAAI,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,0BAA2B,CAAE,KAAM,IAAqB,CAAO,CAAE,CAAC,CACvI,CACA,MAAM,qBAAqB,EAAI,EAAS,CACvC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,2BAA4B,CAAE,KAAM,IAAsB,CAAO,CAAE,CAAC,CACzI,CACD,EAGI,IAA4B,GAAY,GAAY,EAAS,CAChE,OACA,OACA,SACA,cACA,eACA,gBACA,UACD,CAAC,EACG,IAA4B,GAAY,GAAY,EAAS,CAChE,OACA,SACA,cACA,eACA,gBACA,UACD,CAAC,EACG,GAAyC,cAAc,EAAc,CACxE,MAAM,KAAK,EAAgB,EAAW,CACrC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,cAAc,CACzI,CACA,MAAM,OAAO,EAAgB,EAAW,EAAS,CAChD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,eAAgB,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CACvL,CACA,MAAM,OAAO,EAAgB,EAAW,EAAe,EAAS,CAC/D,OAAO,KAAK,QAAQ,QAAS,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,gBAAgB,mBAAmB,CAAa,IAAK,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CAC7N,CACA,MAAM,OAAO,EAAgB,EAAW,EAAe,CACtD,MAAM,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,gBAAgB,mBAAmB,CAAa,GAAG,CAChL,CACD,EAGI,KAAwB,EAAgB,IAAY,GAAY,CACnE,GAAG,EACH,gBAAiB,CAClB,EAAG,CACF,kBACA,OACA,OACA,WACA,cACA,iBACA,gBACA,uBACD,CAAC,EACG,IAAwB,GAAY,GAAY,EAAS,CAC5D,WACA,OACA,OACA,SACA,gBACA,iBACA,oBACA,cACA,uBACD,CAAC,EACG,GAA8B,cAAc,EAAc,CAC7D,YAAY,EAAW,CACtB,MAAM,CAAS,EACf,KAAK,YAAc,IAAI,GAAuC,CAAS,CACxE,CACA,MAAM,KAAK,EAAgB,CAC1B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,UAAU,CAC3F,CACA,MAAM,YAAY,EAAgB,CACjC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,6BAA6B,CAC9G,CACA,MAAM,UAAU,EAAgB,CAC/B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,2BAA2B,CAC5G,CACA,MAAM,IAAI,EAAgB,EAAW,CACpC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,GAAG,CAC5H,CACA,MAAM,QAAQ,EAAmB,EAAS,CACzC,OAAO,KAAK,IAAI,EAAQ,uBAAwB,CAAiB,CAClE,CACA,MAAM,iBAAiB,EAAgB,EAAW,CACjD,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,mBAAmB,CAC9I,CACA,MAAM,OAAO,EAAgB,EAAS,CACrC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAc,EAAE,WAAY,CAAE,KAAM,IAAqB,EAAgB,CAAO,CAAE,CAAC,CACrJ,CACA,MAAM,OAAO,EAAgB,EAAW,EAAS,CAChD,OAAO,KAAK,QAAQ,QAAS,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,IAAK,CAAE,KAAM,IAAqB,CAAO,CAAE,CAAC,CACvK,CACA,MAAM,OAAO,EAAgB,EAAW,CACvC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,GAAG,CAC/H,CACA,MAAM,aAAa,EAAgB,EAAW,EAAS,EAAU,CAAC,EAAG,CACpE,OAAO,KAAK,QAAQ,OAAQ,2BAA2B,mBAAmB,CAAc,EAAE,YAAY,mBAAmB,CAAS,EAAE,QAAS,CAC5I,GAAG,EACH,KAAM,GAAY,EAAS,CAAC,mBAAmB,CAAC,CACjD,CAAC,CACF,CACD,EAGI,GAAmC,cAAc,EAAc,CAClE,MAAM,cAAc,EAAI,CACvB,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,6BAA6B,CACnG,CACD,EAGI,IAA6B,GAAY,GAAY,EAAS,CACjE,OACA,OACA,OACA,cACA,gBACA,SACA,cACD,CAAC,EACG,IAA6B,GAAY,GAAY,EAAS,CACjE,OACA,cACA,gBACA,OACA,SACA,cACD,CAAC,EACG,IAA8B,GAAY,GAAY,EAAS,CAClE,UACA,cACA,eACA,kBACD,CAAC,EACG,IAAsC,GAAY,GAAY,EAAS,CAAC,8BAA8B,CAAC,EACvG,IAAoC,GAAY,GAAY,EAAS,CACxE,wBACA,gCACA,0BACD,CAAC,EACG,IAAoC,GAAY,GAAY,EAAS,CACxE,WACA,aACA,eACA,gBACD,CAAC,EACG,IAAqC,GAAY,GAAY,EAAS,CAAC,oCAAoC,CAAC,EAC5G,IAAmC,GAAY,GAAY,EAAS,CAAC,YAAa,YAAY,CAAC,EAC/F,IAAqC,GAAY,GAAY,EAAS,CACzE,cACA,wBACA,yBACA,2BACD,CAAC,EACG,IAAuC,GAAY,GAAY,EAAS,CAC3E,UACA,aACA,WACD,CAAC,EACG,IAA8B,GAAY,GAAY,EAAS,CAClE,iBACA,UACA,mBACA,mBACA,gBACD,CAAC,EACG,GAA+B,cAAc,EAAc,CAC9D,MAAM,kBAAkB,EAAI,EAAU,CAAC,EAAG,CACzC,OAAO,KAAK,QAAQ,MAAO,2BAA2B,mBAAmB,CAAE,IAAK,CAAO,CACxF,CACA,MAAM,yBAAyB,EAAI,EAAS,EAAU,CAAC,EAAG,CACzD,OAAO,KAAK,QAAQ,QAAS,2BAA2B,mBAAmB,CAAE,IAAK,CACjF,GAAG,EACH,KAAM,GAAY,EAAS,CAC1B,SACA,OACA,qBACD,CAAC,CACF,CAAC,CACF,CACA,MAAM,MAAO,CACZ,IAAM,EAAW,MAAM,KAAK,QAAQ,MAAO,gBAAgB,EAC3D,OAAO,MAAM,QAAQ,CAAQ,EAAI,EAAW,EAAS,OAAS,CAAC,CAChE,CACA,MAAM,eAAe,EAAS,CAAC,EAAG,EAAU,CAAC,EAAG,CAC/C,IAAM,EAAe,IAAI,gBAAgB,CAAE,WAAY,aAAc,CAAC,EAChE,EAAQ,OAAO,EAAO,OAAS,EAAE,EAAE,KAAK,EAI9C,OAHI,GAAO,EAAa,IAAI,QAAS,CAAK,EACtC,EAAO,SAAW,IAAK,IAAG,EAAa,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAC1E,EAAO,QAAU,IAAK,IAAG,EAAa,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EACpE,KAAK,QAAQ,MAAO,kBAAkB,EAAa,SAAS,IAAK,CAAO,CAChF,CACA,MAAM,kBAAkB,EAAU,CAAC,EAAG,CACrC,IAAM,EAAwB,IAAI,IAC9B,EAAS,EACT,EAAQ,EACZ,EAAG,CACF,EAAQ,QAAQ,eAAe,EAC/B,IAAM,EAAO,MAAM,KAAK,eAAe,CACtC,SACA,MAAO,GACR,EAAG,CAAO,EAEV,GADA,EAAQ,EAAK,MACT,CAAC,EAAK,MAAM,QAAU,EAAS,EAAO,MAAU,MAAM,2DAA2D,EACrH,IAAK,IAAM,KAAQ,EAAK,MAAO,EAAM,IAAI,EAAK,GAAI,CAAI,EACtD,GAAU,EAAK,MAAM,MACtB,OAAS,EAAS,GAClB,GAAI,EAAM,OAAS,EAAO,MAAU,MAAM,2DAA2D,EACrG,MAAO,CACN,MAAO,CAAC,GAAG,EAAM,OAAO,CAAC,EACzB,OACD,CACD,CACA,MAAM,IAAI,EAAI,CACb,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,GAAG,CACtE,CACA,MAAM,SAAS,EAAI,EAAU,CAAC,EAAG,CAChC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,mBAAoB,CAAO,CAChG,CACA,MAAM,mBAAmB,EAAI,CAC5B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,6BAA6B,CAClG,CACA,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,iBAAkB,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CAC3F,CACA,MAAM,OAAO,EAAI,EAAS,CACzB,OAAO,KAAK,QAAQ,QAAS,kBAAkB,mBAAmB,CAAE,IAAK,CAAE,KAAM,IAA0B,CAAO,CAAE,CAAC,CACtH,CACA,MAAM,cAAc,EAAI,EAAS,CAChC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,UAAW,CAAE,KAAM,IAA2B,CAAO,CAAE,CAAC,CAC7H,CACA,MAAM,sBAAsB,EAAI,EAAS,CACxC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,4BAA6B,CAAE,KAAM,IAAmC,CAAO,CAAE,CAAC,CACvJ,CACA,MAAM,oBAAoB,EAAI,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,0BAA2B,CAAE,KAAM,IAAiC,CAAO,CAAE,CAAC,CACnJ,CACA,MAAM,oBAAoB,EAAI,EAAS,CACtC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,0BAA2B,CAAE,KAAM,IAAiC,CAAO,CAAE,CAAC,CACnJ,CACA,MAAM,qBAAqB,EAAI,EAAS,CACvC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,2BAA4B,CAAE,KAAM,IAAkC,CAAO,CAAE,CAAC,CACrJ,CACA,MAAM,mBAAmB,EAAI,EAAS,CACrC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,eAAgB,CAAE,KAAM,IAAgC,CAAO,CAAE,CAAC,CACvI,CACA,MAAM,kBAAkB,EAAI,CAC3B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,+BAA+B,CACpG,CACA,MAAM,qBAAqB,EAAI,EAAS,CACvC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,gCAAiC,CAAE,KAAM,IAAkC,CAAO,CAAE,CAAC,CAC1J,CACA,MAAM,qBAAqB,EAAI,CAC9B,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,+BAA+B,CACvG,CACA,MAAM,oBAAoB,EAAI,CAC7B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,iCAAiC,CACtG,CACA,MAAM,uBAAuB,EAAI,EAAS,CACzC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,kCAAmC,CAAE,KAAM,IAAoC,CAAO,CAAE,CAAC,CAC9J,CACA,MAAM,uBAAuB,EAAI,CAChC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,EAAE,iCAAiC,CACzG,CACA,MAAM,aAAa,EAAI,EAAO,CAC7B,OAAO,KAAK,QAAQ,MAAO,iCAAiC,mBAAmB,CAAE,EAAE,yBAA0B,CAAE,KAAM,CAAE,OAAM,CAAE,CAAC,CACjI,CACA,MAAM,gBAAgB,EAAI,CACzB,OAAO,KAAK,QAAQ,SAAU,iCAAiC,mBAAmB,CAAE,EAAE,wBAAwB,CAC/G,CACA,MAAM,cAAc,EAAI,CACvB,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,UAAU,CAC/E,CACA,MAAM,cAAc,EAAI,EAAS,CAChC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,mBAAmB,CAAE,EAAE,WAAY,CAAE,KAAM,IAA2B,CAAO,CAAE,CAAC,CAC9H,CACA,MAAM,cAAc,EAAI,CACvB,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAE,EAAE,6BAA6B,CACnG,CACA,MAAM,OAAO,EAAI,CAChB,OAAO,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAE,GAAG,CACzE,CACD,EAGI,IAA4B,GAAY,GAAY,EAAS,CAAC,aAAc,gBAAgB,CAAC,EAC7F,GAAgC,cAAc,EAAc,CAC/D,MAAM,2BAA2B,EAAO,EAAe,EAAS,CAC/D,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,mBAAmB,CAAK,EAAE,2BAA2B,mBAAmB,CAAa,IAAK,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CACpL,CACA,MAAM,oBAAoB,EAAO,EAAe,CAC/C,MAAM,KAAK,QAAQ,SAAU,kBAAkB,mBAAmB,CAAK,EAAE,2BAA2B,mBAAmB,CAAa,GAAG,CACxI,CACD,EAGI,IAA4B,GAAY,GAAY,EAAS,CAChE,eACA,QACA,cACA,kBACA,aACA,iBACA,WACA,YACA,MACD,CAAC,EACG,IAA4B,GAAY,GAAY,EAAS,CAChE,eACA,QACA,cACA,kBACA,aACA,iBACA,WACA,YACA,MACD,CAAC,EACG,IAAsB,EAAgB,EAAS,KAAO,kBAAkB,mBAAmB,CAAc,EAAE,gBAAgB,IAC3H,IAAa,EAAgB,EAAe,EAAS,KAAO,GAAmB,EAAgB,IAAI,mBAAmB,CAAa,IAAI,GAAQ,EAE/I,GAAuB,cAAc,EAAc,CACtD,MAAM,KAAK,EAAgB,EAAQ,CAClC,OAAO,KAAK,QAAQ,MAAO,GAAmB,CAAc,EAAG,CAAE,OAAQ,CACxE,OAAQ,GAAQ,QAAU,GAAQ,EAClC,MAAO,GAAQ,OAAS,IACxB,OAAQ,GAAQ,QAAU,CAC3B,CAAE,CAAC,CACJ,CACA,MAAM,UAAU,EAAgB,EAAQ,CACvC,OAAO,KAAK,QAAQ,MAAO,GAAmB,CAAc,EAAG,CAAE,OAAQ,CACxE,OAAQ,GAAQ,QAAU,GAAQ,EAClC,MAAO,GAAQ,OAAS,IACxB,OAAQ,GAAQ,QAAU,EAC1B,WAAY,OACb,CAAE,CAAC,CACJ,CACA,MAAM,kBAAkB,EAAgB,EAAa,cAAe,CACnE,OAAO,KAAK,QAAQ,MAAO,GAAmB,EAAgB,qBAAqB,EAAG,CAAE,OAAQ,CAAE,YAAa,CAAW,CAAE,CAAC,CAC9H,CACA,MAAM,OAAO,EAAgB,EAAS,CACrC,OAAO,KAAK,QAAQ,OAAQ,GAAmB,CAAc,EAAG,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CAC5G,CACA,MAAM,OAAO,EAAgB,EAAe,EAAS,CACpD,OAAO,KAAK,QAAQ,QAAS,GAAU,EAAgB,CAAa,EAAG,CAAE,KAAM,IAAyB,CAAO,CAAE,CAAC,CACnH,CAEA,MAAM,OAAO,EAAgB,EAAe,CAC3C,MAAM,KAAK,QAAQ,SAAU,GAAU,EAAgB,CAAa,CAAC,CACtE,CACA,MAAM,kBAAkB,EAAgB,EAAe,CACtD,OAAO,KAAK,QAAQ,OAAQ,GAAU,EAAgB,EAAe,SAAS,CAAC,CAChF,CACA,MAAM,oBAAoB,EAAgB,EAAe,CACxD,OAAO,KAAK,QAAQ,OAAQ,GAAU,EAAgB,EAAe,iBAAiB,CAAC,CACxF,CACA,MAAM,WAAW,EAAgB,EAAe,CAC/C,OAAO,KAAK,QAAQ,OAAQ,GAAU,EAAgB,EAAe,cAAc,CAAC,CACrF,CACA,MAAM,aAAa,EAAgB,EAAe,CACjD,OAAO,KAAK,QAAQ,OAAQ,GAAU,EAAgB,EAAe,gBAAgB,CAAC,CACvF,CACA,MAAM,cAAc,EAAgB,CACnC,OAAO,KAAK,QAAQ,OAAQ,GAAmB,EAAgB,cAAc,CAAC,CAC/E,CACD,EAGIlC,GAAU,GAAU,mBAAmB,CAAK,EAC5C,GAAkB,GAAY,OAAO,YAAY,OAAO,QAAQ,CAAO,EAAE,QAAQ,EAAG,KAAW,IAAU,IAAK,EAAC,CAAC,EAChH,GAAiB,IAAW,CAAE,OAAM,GACpC,GAAwB,cAAc,EAAc,CACvD,MAAM,uBAAuB,EAAS,CACrC,OAAO,KAAK,QAAQ,MAAO,mCAAmCA,GAAO,CAAO,EAAE,QAAQ,CACvF,CACA,MAAM,oBAAoB,EAAS,EAAS,CAC3C,OAAO,KAAK,QAAQ,MAAO,mCAAmCA,GAAO,CAAO,IAAK,CAAE,KAAM,GAAe,CAAO,CAAE,CAAC,CACnH,CACA,MAAM,mBAAmB,EAAS,CACjC,OAAO,KAAK,QAAQ,SAAU,mCAAmCA,GAAO,CAAO,GAAG,CACnF,CACA,MAAM,oBAAoB,EAAS,CAClC,OAAO,KAAK,QAAQ,MAAO,mCAAmCA,GAAO,CAAO,EAAE,QAAQ,CACvF,CACA,MAAM,oBAAoB,EAAS,EAAS,CAC3C,OAAO,KAAK,QAAQ,MAAO,mCAAmCA,GAAO,CAAO,EAAE,SAAU,CAAE,KAAM,CAAQ,CAAC,CAC1G,CACA,MAAM,6BAA6B,EAAgB,EAAS,CAC3D,OAAO,KAAK,QAAQ,MAAO,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CACxH,CACA,MAAM,0BAA0B,EAAgB,EAAS,EAAS,CACjE,OAAO,KAAK,QAAQ,MAAO,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,IAAK,CAAE,KAAM,GAAe,CAAO,CAAE,CAAC,CACpJ,CACA,MAAM,yBAAyB,EAAgB,EAAS,CAEvD,OADI,IAAY,gBAAkB,IAAY,aAAqB,KAAK,QAAQ,OAAQ,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,EAAE,iBAAiB,EACtL,KAAK,QAAQ,SAAU,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,GAAG,CACpH,CACA,MAAM,0BAA0B,EAAgB,EAAS,CACxD,OAAO,KAAK,QAAQ,MAAO,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CACxH,CACA,MAAM,0BAA0B,EAAgB,EAAS,EAAS,CACjE,OAAO,KAAK,QAAQ,MAAO,iCAAiCA,GAAO,CAAc,EAAE,YAAYA,GAAO,CAAO,EAAE,SAAU,CAAE,KAAM,CAAQ,CAAC,CAC3I,CACA,MAAM,wBAAwB,EAAW,EAAS,CACjD,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CAC9G,CACA,MAAM,qBAAqB,EAAW,EAAS,EAAS,CACvD,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,YAAYA,GAAO,CAAO,IAAK,CAAE,KAAM,GAAe,CAAO,CAAE,CAAC,CAC1I,CACA,MAAM,oBAAoB,EAAW,EAAS,CAC7C,OAAO,KAAK,QAAQ,SAAU,4BAA4BA,GAAO,CAAS,EAAE,YAAYA,GAAO,CAAO,GAAG,CAC1G,CACA,MAAM,qBAAqB,EAAW,EAAS,CAC9C,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CAC9G,CACA,MAAM,qBAAqB,EAAW,EAAS,EAAS,CACvD,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,YAAYA,GAAO,CAAO,EAAE,SAAU,CAAE,KAAM,CAAQ,CAAC,CACjI,CACA,MAAM,4BAA4B,EAAe,EAAS,CACzD,OAAO,KAAK,QAAQ,MAAO,gCAAgCA,GAAO,CAAa,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CACtH,CACA,MAAM,yBAAyB,EAAe,EAAS,EAAS,CAC/D,OAAO,KAAK,QAAQ,MAAO,gCAAgCA,GAAO,CAAa,EAAE,YAAYA,GAAO,CAAO,IAAK,CAAE,KAAM,GAAe,CAAO,CAAE,CAAC,CAClJ,CACA,MAAM,wBAAwB,EAAe,EAAS,CACrD,OAAO,KAAK,QAAQ,SAAU,gCAAgCA,GAAO,CAAa,EAAE,YAAYA,GAAO,CAAO,GAAG,CAClH,CACA,MAAM,yBAAyB,EAAe,EAAS,CACtD,OAAO,KAAK,QAAQ,MAAO,gCAAgCA,GAAO,CAAa,EAAE,YAAYA,GAAO,CAAO,EAAE,QAAQ,CACtH,CACA,MAAM,yBAAyB,EAAe,EAAS,EAAS,CAC/D,OAAO,KAAK,QAAQ,MAAO,gCAAgCA,GAAO,CAAa,EAAE,YAAYA,GAAO,CAAO,EAAE,SAAU,CAAE,KAAM,CAAQ,CAAC,CACzI,CACA,MAAM,oBAAoB,EAAW,CACpC,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,WAAW,CACrF,CACA,MAAM,wBAAwB,EAAW,EAAe,CACvD,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,gBAAgBA,GAAO,CAAa,EAAE,WAAW,CAC3H,CACA,MAAM,gBAAgB,EAAQ,EAAO,CACpC,OAAO,KAAK,QAAQ,MAAO,kCAAkCA,GAAO,CAAM,IAAK,CAAE,KAAM,GAAc,CAAK,CAAE,CAAC,CAC9G,CACA,MAAM,mBAAmB,EAAQ,CAChC,OAAO,KAAK,QAAQ,SAAU,kCAAkCA,GAAO,CAAM,GAAG,CACjF,CACA,MAAM,sBAAsB,EAAgB,EAAQ,EAAO,CAC1D,OAAO,KAAK,QAAQ,MAAO,iCAAiCA,GAAO,CAAc,EAAE,WAAWA,GAAO,CAAM,IAAK,CAAE,KAAM,GAAc,CAAK,CAAE,CAAC,CAC/I,CACA,MAAM,yBAAyB,EAAgB,EAAQ,CACtD,OAAO,KAAK,QAAQ,SAAU,iCAAiCA,GAAO,CAAc,EAAE,WAAWA,GAAO,CAAM,GAAG,CAClH,CACA,MAAM,iBAAiB,EAAW,EAAQ,EAAO,CAChD,OAAO,KAAK,QAAQ,MAAO,4BAA4BA,GAAO,CAAS,EAAE,WAAWA,GAAO,CAAM,IAAK,CAAE,KAAM,GAAc,CAAK,CAAE,CAAC,CACrI,CACA,MAAM,oBAAoB,EAAW,EAAQ,CAC5C,OAAO,KAAK,QAAQ,SAAU,4BAA4BA,GAAO,CAAS,EAAE,WAAWA,GAAO,CAAM,GAAG,CACxG,CACA,MAAM,qBAAqB,EAAe,EAAQ,EAAO,CACxD,OAAO,KAAK,QAAQ,MAAO,gCAAgCA,GAAO,CAAa,EAAE,WAAWA,GAAO,CAAM,IAAK,CAAE,KAAM,GAAc,CAAK,CAAE,CAAC,CAC7I,CACA,MAAM,wBAAwB,EAAe,EAAQ,CACpD,OAAO,KAAK,QAAQ,SAAU,gCAAgCA,GAAO,CAAa,EAAE,WAAWA,GAAO,CAAM,GAAG,CAChH,CACA,MAAM,oBAAoB,EAAW,EAAO,CAC3C,OAAO,KAAK,iBAAiB,EAAW,iBAAkB,CAAK,CAChE,CACA,MAAM,uBAAuB,EAAW,CACvC,OAAO,KAAK,oBAAoB,EAAW,gBAAgB,CAC5D,CACA,MAAM,6BAA6B,EAAW,EAAO,CACpD,OAAO,KAAK,iBAAiB,EAAW,wBAAyB,CAAK,CACvE,CACA,MAAM,gCAAgC,EAAW,CAChD,OAAO,KAAK,oBAAoB,EAAW,uBAAuB,CACnE,CACA,MAAM,0BAA0B,EAAW,EAAO,CACjD,OAAO,KAAK,iBAAiB,EAAW,oBAAqB,CAAK,CACnE,CACA,MAAM,6BAA6B,EAAW,CAC7C,OAAO,KAAK,oBAAoB,EAAW,mBAAmB,CAC/D,CACA,MAAM,yBAAyB,EAAgB,EAAO,CACrD,OAAO,KAAK,sBAAsB,EAAgB,iBAAkB,CAAK,CAC1E,CACA,MAAM,4BAA4B,EAAgB,CACjD,OAAO,KAAK,yBAAyB,EAAgB,gBAAgB,CACtE,CACD,EAGI,GAAmB,cAAc,EAAc,CAClD,MAAM,kBAAmB,CACxB,OAAO,KAAK,QAAQ,MAAO,8BAA8B,CAC1D,CACA,MAAM,oBAAqB,CAC1B,OAAO,KAAK,QAAQ,MAAO,gCAAgC,CAC5D,CACD,EAGI,GAAwB,IAAa,CACxC,YAAa,GAAS,WACtB,UAAW,GAAS,SACpB,WAAY,GAAS,UACrB,WAAY,GAAS,SACtB,GACI,GAAuB,IAAa,CACvC,MAAO,GAAS,OAAS,GACzB,OAAQ,GAAS,QAAU,EAC3B,WAAY,GAAS,UACrB,aAAc,GAAS,YACvB,eAAgB,GAAS,cACzB,IAAK,GAAS,IACd,UAAW,GAAS,SACpB,iBAAkB,GAAS,gBAC3B,aAAc,GAAS,YACvB,YAAa,GAAS,WACtB,UAAW,GAAS,QACrB,GACI,IAAoB,EAAgB,EAAS,KAAO,kBAAkB,mBAAmB,CAAc,IAAI,IAE3G,GAAgB,cAAc,EAAc,CAC/C,MAAM,QAAQ,EAAgB,EAAW,EAAS,CACjD,OAAO,KAAK,QAAQ,MAAO,GAAiB,EAAgB,aAAa,mBAAmB,CAAS,EAAE,OAAO,EAAG,CAAE,OAAQ,GAAqB,CAAO,CAAE,CAAC,CAC3J,CACA,MAAM,aAAa,EAAgB,EAAS,CAC3C,OAAO,KAAK,QAAQ,MAAO,GAAiB,EAAgB,QAAQ,EAAG,CAAE,OAAQ,GAAqB,CAAO,CAAE,CAAC,CACjH,CACA,MAAM,cAAc,EAAgB,EAAW,EAAS,CACvD,OAAO,KAAK,QAAQ,MAAO,GAAiB,EAAgB,aAAa,mBAAmB,CAAS,EAAE,cAAc,EAAG,CAAE,OAAQ,GAAoB,CAAO,CAAE,CAAC,CACjK,CACA,MAAM,mBAAmB,EAAgB,EAAS,CACjD,OAAO,KAAK,QAAQ,MAAO,GAAiB,EAAgB,eAAe,EAAG,CAAE,OAAQ,GAAoB,CAAO,CAAE,CAAC,CACvH,CACD,EAGI,GAAkB,GAAW,CAChC,GAAI,CAAC,EAAQ,OACb,IAAM,EAAQ,CAAC,EASf,OARI,EAAO,QAAO,EAAM,MAAW,EAAO,OACtC,EAAO,iBAAgB,EAAM,gBAAqB,EAAO,gBACzD,EAAO,OAAM,EAAM,KAAU,EAAO,MACpC,EAAO,WAAa,IAAK,IAAK,EAAO,WAAa,OAAM,EAAM,UAAe,EAAO,UACpF,EAAO,SAAW,IAAK,IAAK,EAAO,SAAW,OAAM,EAAM,OAAY,EAAO,QAC7E,EAAO,QAAU,IAAK,IAAK,EAAO,QAAU,OAAM,EAAM,MAAW,EAAO,OAC1E,EAAO,SAAQ,EAAM,QAAa,EAAO,QACzC,EAAO,UAAS,EAAM,SAAc,EAAO,SACxC,CACR,EACI,IAAqB,GAAY,GAAY,EAAS,CACzD,QACA,WACA,aACA,YACA,gBACA,OACA,cACA,YACA,wBACD,CAAC,EACG,IAAqB,GAAY,GAAY,EAAS,CACzD,QACA,WACA,aACA,YACA,gBACA,OACA,cACA,WACA,YACA,wBACD,CAAC,EACG,IAA2B,GAAY,GAAY,GAAW,CAAC,EAAG,CAAC,SAAS,CAAC,EAC7E,IAA0B,GAAY,GAAY,EAAS,CAAC,MAAM,CAAC,EACnE,GAAgB,cAAc,EAAc,CAC/C,MAAM,KAAK,EAAQ,CAClB,OAAO,KAAK,QAAQ,MAAO,SAAU,CAAE,OAAQ,GAAe,CAAM,CAAE,CAAC,CACxE,CACA,MAAM,UAAU,EAAQ,CACvB,OAAO,KAAK,QAAQ,MAAO,SAAU,CAAE,OAAQ,CAC9C,GAAG,GAAe,CAAM,GAAK,CAAC,EAC9B,WAAY,OACb,CAAE,CAAC,CACJ,CACA,MAAM,WAAW,EAAO,EAAQ,CAC/B,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAM,QAAS,CAAE,OAAQ,GAAe,CAAM,CAAE,CAAC,CAC/F,CACA,MAAM,aAAa,EAAO,EAAS,CAClC,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,QAAS,CAAE,KAAM,IAAkB,CAAO,CAAE,CAAC,CAClG,CACA,MAAM,aAAa,EAAO,EAAQ,EAAS,CAC1C,OAAO,KAAK,QAAQ,QAAS,kBAAkB,EAAM,SAAS,IAAU,CAAE,KAAM,IAAkB,CAAO,CAAE,CAAC,CAC7G,CACA,MAAM,aAAa,EAAO,EAAQ,CACjC,MAAM,KAAK,QAAQ,SAAU,kBAAkB,EAAM,SAAS,GAAQ,CACvE,CACA,MAAM,aAAa,EAAO,EAAQ,CACjC,MAAM,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,SAAS,EAAO,eAAe,CACnF,CACA,MAAM,iBAAiB,EAAO,EAAQ,EAAS,CAC9C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,SAAS,EAAO,qBAAsB,CAAE,KAAM,IAAwB,CAAO,CAAE,CAAC,CACrI,CACA,MAAM,gBAAgB,EAAO,EAAQ,EAAS,CAC7C,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAM,SAAS,EAAO,oBAAqB,CAAE,KAAM,IAAuB,CAAO,CAAE,CAAC,CACnI,CACA,MAAM,iBAAiB,EAAO,EAAQ,CACrC,OAAO,KAAK,QAAQ,SAAU,kBAAkB,EAAM,SAAS,EAAO,YAAY,CACnF,CACD,EAGI,IAAoB,IAAa,CACpC,MAAO,GAAS,OAAS,GACzB,OAAQ,GAAS,QAAU,EAC3B,gBAAiB,GAAS,eAC1B,WAAY,GAAS,UACrB,eAAgB,GAAS,cACzB,aAAc,GAAS,YACvB,aAAc,GAAS,YACvB,QAAS,GAAS,QAClB,IAAK,GAAS,IACd,eAAgB,GAAS,cACzB,kBAAmB,GAAS,iBAC5B,WAAY,GAAS,WACrB,QAAS,GAAS,QAClB,eAAgB,GAAS,cACzB,WAAY,GAAS,WACrB,UAAW,GAAS,SACpB,UAAW,GAAS,SACpB,SAAU,GAAS,QACnB,aAAc,GAAS,YACvB,WAAY,GAAS,UACrB,oBAAqB,GAAS,kBAC9B,0BAA2B,GAAS,uBACpC,cAAe,GAAS,UAAY,IAAK,GAAI,GAAS,aACtD,OAAQ,GAAS,OACjB,SAAU,GAAS,QACnB,WAAY,GAAS,UACrB,gBAAiB,GAAS,cAC1B,gBAAiB,GAAS,cAC1B,YAAa,GAAS,WACtB,YAAa,GAAS,WACtB,YAAa,GAAS,WACtB,UAAW,GAAS,QACrB,GACI,IAAqB,IAAa,CACrC,gBAAiB,GAAS,eAC1B,WAAY,GAAS,UACrB,eAAgB,GAAS,cACzB,SAAU,GAAS,QACnB,OAAQ,GAAS,OACjB,gBAAiB,GAAS,cAC1B,gBAAiB,GAAS,cAC1B,YAAa,GAAS,WACtB,UAAW,GAAS,SACpB,WAAY,GAAS,UACrB,aAAc,GAAS,YACvB,IAAK,GAAS,IACd,QAAS,GAAS,QAClB,eAAgB,GAAS,cACzB,kBAAmB,GAAS,iBAC5B,WAAY,GAAS,WACrB,QAAS,GAAS,QAClB,eAAgB,GAAS,cACzB,WAAY,GAAS,WACrB,UAAW,GAAS,SACpB,UAAW,GAAS,SACpB,SAAU,GAAS,QACnB,aAAc,GAAS,YACvB,WAAY,GAAS,UACrB,oBAAqB,GAAS,kBAC9B,0BAA2B,GAAS,uBACpC,YAAa,GAAS,WACtB,YAAa,GAAS,UACvB,GACI,IAA4B,GAAY,GAAY,EAAS,CAChE,SACA,OACA,YACD,CAAC,EACG,GAAoB,cAAc,EAAc,CACnD,MAAM,SAAS,EAAS,CACvB,OAAO,KAAK,QAAQ,MAAO,sBAAuB,CAAE,OAAQ,IAAiB,CAAO,CAAE,CAAC,CACxF,CACA,MAAM,UAAU,EAAS,CACxB,OAAO,KAAK,QAAQ,MAAO,uBAAwB,CAAE,OAAQ,IAAkB,CAAO,CAAE,CAAC,CAC1F,CACA,MAAM,wBAAwB,EAAgB,EAAc,EAAS,CACpE,OAAO,KAAK,QAAQ,MAAO,uBAAuB,mBAAmB,CAAY,EAAE,aAAc,CAChG,OAAQ,CAAE,gBAAiB,CAAe,EAC1C,KAAM,IAAyB,CAAO,CACvC,CAAC,CACF,CACD,EAGI,IAAqB,GAAY,GAAY,EAAS,CACzD,cACA,yBACA,wBACD,CAAC,EACG,GAA+B,cAAc,EAAc,CAC9D,MAAM,eAAgB,CACrB,OAAO,KAAK,QAAQ,MAAO,mCAAmC,CAC/D,CACA,MAAM,YAAY,EAAgB,EAAQ,CACzC,OAAO,KAAK,QAAQ,MAAO,kBAAkB,EAAe,SAAS,EAAO,mBAAmB,CAChG,CACA,MAAM,WAAW,EAAgB,EAAQ,EAAU,EAAS,CAC3D,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAe,SAAS,EAAO,qBAAqB,EAAS,cAAe,CAAE,KAAM,IAAkB,CAAO,CAAE,CAAC,CAC/J,CACA,MAAM,WAAW,EAAgB,EAAQ,EAAU,CAClD,MAAM,KAAK,QAAQ,SAAU,kBAAkB,EAAe,SAAS,EAAO,qBAAqB,GAAU,CAC9G,CACA,MAAM,gBAAgB,EAAgB,EAAQ,EAAU,EAAmB,CAC1E,MAAM,KAAK,QAAQ,SAAU,kBAAkB,EAAe,SAAS,EAAO,qBAAqB,EAAS,YAAa,CAAE,OAAQ,CAAE,oBAAqB,CAAkB,CAAE,CAAC,CAChL,CACD,EAGI,KAAoB,EAAgB,IAAW,kBAAkB,EAAe,+BAA+B,IAC/G,IAAwB,EAAgB,EAAQ,IAAa,kBAAkB,EAAe,+BAA+B,EAAO,GAAG,IACvI,GAAoB,cAAc,EAAc,CACnD,MAAM,mBAAmB,EAAgB,EAAQ,CAChD,OAAO,KAAK,QAAQ,MAAO,IAAiB,EAAgB,CAAM,CAAC,CACpE,CACA,MAAM,yBAAyB,EAAgB,EAAS,CACvD,OAAO,KAAK,QAAQ,OAAQ,kBAAkB,EAAe,wCAAyC,CAAE,KAAM,CAAQ,CAAC,CACxH,CACA,MAAM,YAAY,EAAgB,EAAQ,EAAU,CACnD,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,SAAS,CAC/F,CACA,MAAM,eAAe,EAAgB,EAAQ,EAAU,EAAS,CAC/D,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,eAAgB,CAAE,KAAM,CAAQ,CAAC,CACvH,CACA,MAAM,eAAe,EAAgB,EAAQ,EAAU,EAAS,CAC/D,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,eAAgB,CAAE,KAAM,CAAQ,CAAC,CACvH,CACA,MAAM,yBAAyB,EAAgB,EAAQ,EAAU,EAAS,CACzE,OAAO,KAAK,QAAQ,OAAQ,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,mBAAoB,CAAE,KAAM,CAAQ,CAAC,CAC5H,CACA,MAAM,+BAA+B,EAAgB,EAAQ,EAAU,EAAgB,CACtF,OAAO,KAAK,QAAQ,MAAO,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,oBAAoB,mBAAmB,CAAc,GAAG,CAC9I,CACA,MAAM,YAAY,EAAgB,EAAQ,EAAU,EAAS,CAC5D,OAAO,KAAK,QAAQ,OAAQ,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,OAAQ,CAAE,KAAM,CAAQ,CAAC,CAChH,CACA,MAAM,QAAQ,EAAgB,EAAQ,EAAU,EAAS,CACxD,MAAM,KAAK,QAAQ,SAAU,GAAqB,EAAgB,EAAQ,CAAQ,EAAG,CAAE,OAAQ,CAC9F,oBAAqB,EAAQ,kBAC7B,oBAAqB,EAAQ,kBAC7B,mBAAoB,EAAQ,gBAC7B,CAAE,CAAC,CACJ,CACA,MAAM,gBAAgB,EAAgB,EAAQ,EAAU,EAAmB,CAC1E,MAAM,KAAK,QAAQ,OAAQ,GAAG,GAAqB,EAAgB,EAAQ,CAAQ,EAAE,mBAAoB,CAAE,OAAQ,CAAE,oBAAqB,CAAkB,CAAE,CAAC,CAChK,CACD,EAGI,GAAsC,cAAc,KAAM,CAC7D,aAAc,CACb,MAAM,0CAA0C,EAChD,KAAK,KAAO,qCACb,CACD,EACI,OAAe,CAClB,MAAM,IAAI,EACX,EACI,IAAU,EAAO,IAChB,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,GAAK,OAAO,KAAK,CAAK,EAAE,KAAM,GAAQ,CAAC,EAAK,SAAS,CAAG,CAAC,EAAU,GAAO,EACjI,EAEJ,GAAc,GACb,OAAO,GAAU,UAAY,CAAC,6DAA6D,KAAK,CAAK,EAAU,GAAO,EACnH,EAAM,YAAY,EAEtB,GAAY,GACX,OAAO,GAAU,UAAY,CAAC,OAAO,cAAc,CAAK,GAAK,EAAQ,EAAU,GAAO,EACnF,EAEJ,GAAU,GAAU,IAAU,UAAY,IAAU,YAAc,EAAQ,GAAO,EACjF,GAAa,GAAU,IAAU,0BAA4B,IAAU,gBAAkB,EAAQ,GAAO,EACxGmC,GAAQ,GACP,OAAO,GAAU,UAAY,CAAC,EAAM,KAAK,GAAK,EAAM,OAAS,IAAY,GAAO,EAC7E,EAAM,KAAK,EAEf,GAAU,GAAU,CACvB,GAAI,CAAC,MAAM,QAAQ,CAAK,GAAK,EAAM,OAAS,IAAK,OAAO,GAAO,EAC/D,IAAM,EAAuB,IAAI,IACjC,OAAO,OAAO,OAAO,EAAM,IAAK,GAAS,CACxC,IAAM,EAAO,GAAO,EAAM,CACzB,MACA,QACA,OACD,CAAC,EACD,GAAI,OAAO,EAAK,KAAQ,UAAY,CAAC,wCAAwC,KAAK,EAAK,GAAG,GAAK,EAAK,IAAI,OAAS,KAAO,EAAK,IAAI,EAAK,GAAG,EAAG,OAAO,GAAO,EAC1J,IAAM,EAAQ,EAAK,QAAU,OAAS,OAAS,EAAK,QAAU,OAAS,OAAS,EAAK,QAAU,SAAW,SAAW,GAAO,EACtH,EAAQ,EAAK,OAAS,KAAO,KAAO,EAAK,QAAU,MAAQ,MAAQ,EAAK,QAAU,MAAQ,MAAQ,GAAO,EAG/G,OAFI,IAAU,QAAU,IAAU,KAAa,GAAO,GACtD,EAAK,IAAI,EAAK,GAAG,EACV,OAAO,OAAO,CACpB,IAAK,EAAK,IACV,QACA,OACD,CAAC,EACF,CAAC,CAAC,CACH,EACI,IAAe,GACd,IAAU,KAAa,KACvB,OAAO,GAAU,UAAY,CAAC,GAAS,EAAM,OAAS,IAAY,GAAO,EACtE,EAEJ,GAAc,GAAU,CAC3B,IAAM,EAAO,GAAO,EAAO,CAC1B,KACA,UACA,kBACA,UACA,SACA,WACA,OACD,CAAC,EACD,OAAO,OAAO,OAAO,CACpB,GAAI,GAAW,EAAK,EAAE,EACtB,QAAS,GAAW,EAAK,OAAO,EAChC,gBAAiB,GAAW,EAAK,eAAe,EAChD,QAAS,GAAW,EAAK,OAAO,EAChC,OAAQ,GAAO,EAAK,MAAM,EAC1B,SAAU,GAAS,EAAK,QAAQ,EAChC,GAAG,UAAW,EAAO,CAAE,MAAO,IAAY,EAAK,KAAK,CAAE,EAAI,CAAC,CAC5D,CAAC,CACF,EACI,GAAQ,GAAU,CACrB,IAAM,EAAO,GAAO,EAAO,CAC1B,KACA,kBACA,OACA,OACA,WACA,QACD,CAAC,EAED,OADI,EAAK,OAAS,SAAW,EAAK,OAAS,iBAAmB,EAAK,OAAS,YAAc,EAAK,OAAS,SAAiB,GAAO,EACzH,OAAO,OAAO,CACpB,GAAI,GAAW,EAAK,EAAE,EACtB,gBAAiB,GAAW,EAAK,eAAe,EAChD,KAAMA,GAAK,EAAK,IAAI,EACpB,KAAM,EAAK,KACX,SAAU,GAAS,EAAK,QAAQ,EAChC,OAAQ,GAAO,EAAK,MAAM,CAC3B,CAAC,CACF,EACI,GAAS,GAAU,CACtB,IAAM,EAAO,GAAO,EAAO,CAC1B,KACA,UACA,OACA,SACA,UACD,CAAC,EACD,OAAO,OAAO,OAAO,CACpB,GAAI,GAAW,EAAK,EAAE,EACtB,QAAS,GAAW,EAAK,OAAO,EAChC,KAAM,GAAU,EAAK,IAAI,EACzB,OAAQ,GAAO,EAAK,MAAM,EAC1B,SAAU,GAAS,EAAK,QAAQ,CACjC,CAAC,CACF,EACI,IAAc,EAAO,EAAO,IAAU,CACzC,IAAM,EAAO,GAAO,EAAO,EAAQ,CAAC,QAAS,eAAe,EAAI,CAAC,OAAO,CAAC,EACzE,GAAI,CAAC,MAAM,QAAQ,EAAK,KAAK,GAAK,GAAS,EAAK,MAAM,OAAS,IAAK,OAAO,GAAO,EAClF,IAAM,EAAQ,OAAO,OAAO,EAAK,MAAM,IAAI,CAAK,CAAC,EAEjD,OADI,IAAI,IAAI,EAAM,IAAK,GAAS,EAAK,EAAE,CAAC,EAAE,OAAS,EAAM,OAClD,OAAO,OAAO,CACpB,QACA,GAAG,EAAQ,CAAE,cAAe,EAAK,gBAAkB,KAAO,KAAO,GAAW,EAAK,aAAa,CAAE,EAAI,CAAC,CACtG,CAAC,EAJuE,GAAO,CAKhF,EACIC,IAAW,EAAO,EAAK,IAAU,CACpC,IAAM,EAAO,GAAO,EAAO,CAAC,EAAK,SAAS,CAAC,EAE3C,OADI,OAAO,EAAK,SAAY,UACrB,OAAO,OAAO,EACnB,GAAM,EAAM,EAAK,EAAI,EACtB,QAAS,EAAK,OACf,CAAC,EAJ6C,GAAO,CAKtD,EACI,IAAY,EAAO,EAAgB,IAClC,GAAkB,EAAM,kBAAoB,GAAkB,GAAM,EAAM,KAAO,EAAW,GAAO,EAChG,EAEJ,IAAQ,EAAQ,CAAC,KACpB,GAAO,EAAO,CAAC,QAAS,UAAU,CAAC,EAC/B,EAAM,QAAU,IAAK,IAAK,GAAS,EAAM,KAAK,EAAI,IAAY,GAAO,EAClE,CACN,GAAG,EAAM,QAAU,IAAK,GAAI,CAAC,EAAI,CAAE,MAAO,EAAM,KAAM,EACtD,GAAG,EAAM,UAAY,KAAO,CAAC,EAAI,CAAE,SAAU,GAAW,EAAM,QAAQ,CAAE,CACzE,GAIG,OAAa,CAChB,MAAM,IAAI,EACX,EACIC,GAAa,GACZ,OAAO,GAAU,UAAY,CAAC,+CAA+C,KAAK,CAAK,GAAK,CAAC,OAAO,SAAS,KAAK,MAAM,CAAK,CAAC,EAAU,GAAK,EAC1I,EAEJ,GAAS,GACR,OAAO,GAAU,UAAY,EAAM,OAAS,KAAO,CAAC,6BAA6B,KAAK,CAAK,EAAU,GAAK,EACvG,EAEJ,IAAmB,GAAU,CAChC,IAAM,EAAO,GAAO,EAAO,CAC1B,kBACA,UACA,YACD,CAAC,EACD,MAAO,CACN,gBAAiB,GAAM,EAAK,eAAe,EAC3C,QAAS,GAAW,EAAK,OAAO,EAChC,WAAYA,GAAU,EAAK,UAAU,CACtC,CACD,EACI,IAAoB,IAChB,CAAE,WAAYA,GAAU,GAAO,EAAO,CAAC,YAAY,CAAC,EAAE,UAAU,CAAE,GAEtE,GAAwB,GAAU,CACrC,IAAM,EAAO,GAAO,EAAO,CAAC,MAAM,CAAC,EAEnC,OADI,OAAO,EAAK,MAAS,UAAY,CAAC,sBAAsB,KAAK,EAAK,IAAI,EAAU,GAAK,EAClF,CAAE,KAAM,EAAK,IAAK,CAC1B,EACI,GAAc,GAAU,CAC3B,IAAM,EAAO,GAAO,EAAO,CAC1B,KACA,iBACA,kBACA,UACA,gBACA,kBACA,SACA,aACA,aACA,oBACA,0BACA,2BACA,cACA,sBACA,aACA,qBACA,2BACD,CAAC,EACD,GAAI,OAAO,EAAK,gBAAmB,UAAY,CAAC,EAAK,eAAe,KAAK,GAAK,EAAK,eAAe,OAAS,KAAO,CAAC,CAClH,UACA,WACA,UACA,SACD,EAAE,SAAS,OAAO,EAAK,MAAM,CAAC,EAAG,OAAO,GAAK,EAC7C,IAAM,EAAc,GAAU,IAAU,KAAO,KAAO,GAAW,CAAK,EAChE,EAAgB,GAAU,IAAU,KAAO,KAAOA,GAAU,CAAK,EACvE,OAAO,OAAO,OAAO,CACpB,GAAI,GAAW,EAAK,EAAE,EACtB,eAAgB,EAAK,eACrB,gBAAiB,GAAW,EAAK,eAAe,EAChD,QAAS,GAAW,EAAK,OAAO,EAChC,cAAe,GAAS,EAAK,aAAa,EAC1C,gBAAiB,GAAM,EAAK,eAAe,EAC3C,OAAQ,EAAK,OACb,WAAYA,GAAU,EAAK,UAAU,EACrC,WAAYA,GAAU,EAAK,UAAU,EACrC,kBAAmB,GAAW,EAAK,iBAAiB,EACpD,wBAAyB,GAAW,EAAK,uBAAuB,EAChE,yBAA0B,EAAW,EAAK,wBAAwB,EAClE,YAAa,EAAa,EAAK,WAAW,EAC1C,oBAAqB,EAAW,EAAK,mBAAmB,EACxD,WAAY,EAAa,EAAK,UAAU,EACxC,mBAAoB,EAAW,EAAK,kBAAkB,EACtD,0BAA2B,EAAW,EAAK,yBAAyB,CACrE,CAAC,CACF,EACI,IAAwB,GAAU,CACrC,IAAM,EAAO,GAAO,EAAO,CAC1B,KACA,kBACA,OACA,OACA,UACD,CAAC,EAED,OADI,EAAK,OAAS,iBAAmB,EAAK,OAAS,YAAc,EAAK,OAAS,SAAiB,GAAK,EAC9F,OAAO,OAAO,CACpB,GAAI,GAAW,EAAK,EAAE,EACtB,gBAAiB,GAAW,EAAK,eAAe,EAChD,KAAMF,GAAK,EAAK,IAAI,EACpB,KAAM,EAAK,KACX,SAAU,GAAS,EAAK,QAAQ,CACjC,CAAC,CACF,EAII,IAAiC,cAAc,EAAc,CAChE,QAAQ,EAAS,EAAQ,GAAO,CAC/B,MAAO,CACN,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,gBAAiB,GAAkC,EAAQ,eAAe,EAC1E,MAAO,QACP,YAAa,CACd,CACD,CACA,iBAAiB,EAAgB,CAChC,MAAO,kBAAkB,GAAW,CAAc,GACnD,CACA,MAAM,sBAAsB,EAAgB,EAAS,CACpD,IAAM,EAAM,GAAW,CAAc,EACrC,OAAO,GAAW,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,0BAA2B,KAAK,QAAQ,CAAO,CAAC,EAAI,GAAS,GAAS,IAAqB,CAAI,EAAG,CAAG,EAAG,EAAK,CACxL,CACA,MAAM,gBAAgB,EAAgB,EAAS,EAAS,CACvD,IAAM,EAAM,GAAW,CAAc,EAC/B,EAAO,GAAO,MAAM,KAAK,QAAQ,OAAQ,GAAG,KAAK,iBAAiB,CAAG,EAAE,cAAe,CAC3F,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,KAAM,IAAgB,CAAO,CAC9B,CAAC,EAAG,CAAC,YAAY,CAAC,EAClB,OAAO,OAAO,OAAO,CAAE,WAAY,GAAS,GAAW,EAAK,UAAU,EAAG,CAAG,CAAE,CAAC,CAChF,CACA,MAAM,iBAAiB,EAAgB,EAAI,EAAS,CACnD,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,OAAOC,GAAQ,MAAM,KAAK,QAAQ,SAAU,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,IAAO,KAAK,QAAQ,EAAS,EAAI,CAAC,EAAG,aAAe,GAAS,GAAS,GAAW,CAAI,EAAG,EAAK,CAAG,CAAC,CAC3L,CAEA,MAAM,YAAY,EAAgB,EAAY,EAAS,CACtD,IAAM,EAAM,GAAW,CAAc,EACrC,OAAO,GAAW,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,cAAe,CACxF,GAAG,KAAK,QAAQ,CAAO,EACvB,OAAQ,GAAK,CAAU,CACxB,CAAC,EAAI,GAAS,GAAS,GAAW,CAAI,EAAG,CAAG,EAAG,EAAI,CACpD,CAEA,MAAM,iBAAiB,EAAgB,EAAI,EAAS,EAAS,CAC5D,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EACrD,EAAe,GAAS,GAAW,GAAO,MAAM,KAAK,QAAQ,OAAQ,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,EAAI,SAAU,CACrI,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,KAAM,IAAiB,CAAO,CAC/B,CAAC,EAAG,CAAC,YAAY,CAAC,EAAE,UAAU,EAAG,CAAG,EACpC,GAAI,EAAa,KAAO,EAAK,MAAM,IAAI,GACvC,OAAO,OAAO,OAAO,CAAE,WAAY,CAAa,CAAC,CAClD,CACA,MAAM,iBAAiB,EAAgB,EAAI,EAAS,EAAS,CAC5D,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,OAAOA,GAAQ,MAAM,KAAK,QAAQ,OAAQ,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,EAAI,SAAU,CACpG,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,KAAM,GAAqB,CAAO,CACnC,CAAC,EAAG,aAAe,GAAS,GAAS,GAAW,CAAI,EAAG,CAAG,CAAC,CAC5D,CAEA,MAAM,wBAAwB,EAAgB,EAAI,EAAS,EAAS,CAEnE,GADA,GAAO,EAAS,CAAC,SAAU,WAAW,CAAC,EACnC,CAAC,EAAQ,QAAU,OAAO,EAAQ,OAAO,SAAY,WAAa,OAAO,EAAQ,WAAc,WAAY,MAAM,IAAI,GACzH,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,OAAOA,GAAQ,MAAM,KAAK,QAAQ,OAAQ,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,EAAI,SAAU,CACpG,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,YAAa,GACb,MAAO,QACP,KAAM,GAAqB,CAAO,CACnC,CAAC,EAAG,aAAe,GAAS,GAAS,GAAW,CAAI,EAAG,CAAG,CAAC,CAC5D,CACA,MAAM,YAAY,EAAgB,EAAY,EAAS,CACtD,IAAM,EAAM,GAAW,CAAc,EACrC,OAAO,GAAW,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,cAAe,CACxF,GAAG,KAAK,QAAQ,CAAO,EACvB,OAAQ,GAAK,CAAU,CACxB,CAAC,EAAI,GAAS,GAAS,GAAW,CAAI,EAAG,CAAG,EAAG,EAAI,CACpD,CACA,MAAM,WAAW,EAAgB,EAAI,EAAS,CAC7C,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,OAAO,GAAS,GAAW,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,IAAO,KAAK,QAAQ,CAAO,CAAC,CAAC,EAAG,EAAK,CAAG,CAC3I,CACA,MAAM,iBAAiB,EAAgB,EAAI,EAAS,EAAS,CAC5D,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,GAAO,EAAS,CACf,UACA,SACA,mBACD,CAAC,EACD,IAAM,EAAO,CACZ,QAAS,GAAW,EAAQ,OAAO,EACnC,OAAQ,GAAO,EAAQ,MAAM,EAC7B,kBAAmB,GAAS,EAAQ,iBAAiB,CACtD,EACA,OAAOA,GAAQ,MAAM,KAAK,QAAQ,QAAS,GAAG,KAAK,iBAAiB,CAAG,EAAE,eAAe,IAAO,CAC9F,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,MACD,CAAC,EAAG,aAAe,GAAS,GAAS,GAAW,CAAI,EAAG,EAAK,CAAG,CAAC,CACjE,CACA,MAAM,MAAM,EAAgB,EAAS,CACpC,IAAM,EAAM,GAAW,CAAc,EACrC,OAAO,GAAW,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,QAAS,KAAK,QAAQ,CAAO,CAAC,EAAI,GAAS,GAAS,GAAK,CAAI,EAAG,CAAG,EAAG,EAAK,CACtJ,CACA,MAAM,KAAK,EAAgB,EAAI,EAAS,CACvC,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,OAAO,GAAS,GAAK,MAAM,KAAK,QAAQ,MAAO,GAAG,KAAK,iBAAiB,CAAG,EAAE,SAAS,IAAO,KAAK,QAAQ,CAAO,CAAC,CAAC,EAAG,EAAK,CAAG,CAC/H,CACA,MAAM,WAAW,EAAgB,EAAS,EAAS,CAClD,IAAM,EAAM,GAAW,CAAc,EACrC,GAAO,EAAS,CAAC,OAAQ,QAAQ,CAAC,EAClC,IAAM,EAAO,CACZ,KAAMD,GAAK,EAAQ,IAAI,EACvB,OAAQ,GAAO,EAAQ,MAAM,CAC9B,EACA,OAAOC,GAAQ,MAAM,KAAK,QAAQ,OAAQ,GAAG,KAAK,iBAAiB,CAAG,EAAE,QAAS,CAChF,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,MACD,CAAC,EAAG,OAAS,GAAS,GAAS,GAAK,CAAI,EAAG,CAAG,CAAC,CAChD,CACA,MAAM,YAAY,EAAgB,EAAI,EAAS,EAAS,CACvD,IAAM,EAAM,GAAW,CAAc,EAAG,EAAM,GAAW,CAAE,EAC3D,GAAO,EAAS,CACf,OACA,SACA,mBACD,CAAC,EACD,IAAM,EAAO,CACZ,KAAMD,GAAK,EAAQ,IAAI,EACvB,OAAQ,GAAO,EAAQ,MAAM,EAC7B,kBAAmB,GAAS,EAAQ,iBAAiB,CACtD,EACA,OAAOC,GAAQ,MAAM,KAAK,QAAQ,QAAS,GAAG,KAAK,iBAAiB,CAAG,EAAE,SAAS,IAAO,CACxF,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,MACD,CAAC,EAAG,OAAS,GAAS,GAAS,GAAK,CAAI,EAAG,EAAK,CAAG,CAAC,CACrD,CACA,MAAM,MAAM,EAAY,EAAS,CAChC,OAAO,GAAW,MAAM,KAAK,QAAQ,MAAO,8BAA+B,CAC1E,GAAG,KAAK,QAAQ,CAAO,EACvB,OAAQ,GAAK,CAAU,CACxB,CAAC,EAAG,GAAO,EAAI,CAChB,CACA,MAAM,gBAAgB,EAAI,EAAS,CAClC,IAAM,EAAM,GAAW,CAAE,EACzB,OAAO,GAAS,GAAM,MAAM,KAAK,QAAQ,MAAO,+BAA+B,IAAO,KAAK,QAAQ,CAAO,CAAC,CAAC,EAAG,IAAK,GAAG,CAAG,CAC3H,CACA,MAAM,YAAY,EAAS,EAAS,CACnC,GAAO,EAAS,CAAC,UAAW,MAAM,CAAC,EACnC,IAAM,EAAO,CACZ,QAAS,GAAW,EAAQ,OAAO,EACnC,KAAM,GAAU,EAAQ,IAAI,CAC7B,EACA,OAAOA,GAAQ,MAAM,KAAK,QAAQ,OAAQ,8BAA+B,CACxE,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,MACD,CAAC,EAAG,aAAc,EAAK,CACxB,CACA,MAAM,YAAY,EAAI,EAAS,EAAS,CACvC,IAAM,EAAM,GAAW,CAAE,EACzB,GAAO,EAAS,CACf,OACA,SACA,mBACD,CAAC,EACD,IAAM,EAAO,CACZ,KAAM,GAAU,EAAQ,IAAI,EAC5B,OAAQ,GAAO,EAAQ,MAAM,EAC7B,kBAAmB,GAAS,EAAQ,iBAAiB,CACtD,EACA,OAAOA,GAAQ,MAAM,KAAK,QAAQ,QAAS,+BAA+B,IAAO,CAChF,GAAG,KAAK,QAAQ,EAAS,EAAI,EAC7B,MACD,CAAC,EAAG,aAAe,GAAS,GAAS,GAAM,CAAI,EAAG,IAAK,GAAG,CAAG,CAAC,CAC/D,CACD,EAGI,GAAkC,IAAY,CACjD,qBAAwB,GACxB,sBAAyB,GACzB,wBAA2B,GAC3B,kBAAqB,GACrB,iBAAoB,GACpB,oBAAuB,GACvB,qBAAwB,GACxB,sBAAyB,GACzB,4BAA+B,GAC/B,wBAA2B,IAC3B,qBAAwB,GACxB,mBAAsB,GACtB,0BAA6B,GAC7B,mCAAsC,IACtC,2BAA8B,GAC9B,0BAA6B,GAC7B,gCAAmC,GACnC,iCAAoC,GACpC,qCAAwC,GACxC,iCAAoC,GACpC,gCAAmC,GACnC,2CAA8C,GAC9C,qCAAwC,GACxC,iCAAoC,GACpC,kCAAqC,GACrC,yBAA4B,GAC5B,gBAAmB,GACnB,0BAA6B,GAC7B,qBAAwB,GACxB,kBAAqB,GACrB,iCAAoC,GACpC,kBAAqB,EACtB,CAAC,EAGG,IAAmB,GAAY,GAAY,EAAS,CACvD,QACA,OACA,QACA,MACD,CAAC,EACG,IAAkB,GAAY,GAAY,EAAS,CACtD,OACA,UACA,QACA,QACA,SACD,CAAC,EACG,IAAyB,cAAc,EAAe,CACzD,MAAM,aAAc,CACnB,OAAO,KAAK,QAAQ,MAAO,gBAAiB,CAAE,SAAU,EAAM,CAAC,CAChE,CACA,MAAM,gBAAiB,CACtB,OAAO,KAAK,QAAQ,MAAO,oBAAqB,CAAE,SAAU,EAAM,CAAC,CACpE,CACA,MAAM,WAAY,CACjB,OAAO,KAAK,QAAQ,MAAO,aAAc,CAAE,SAAU,EAAM,CAAC,CAC7D,CACA,MAAM,oBAAqB,CAC1B,OAAO,KAAK,QAAQ,MAAO,uBAAwB,CAAE,SAAU,EAAM,CAAC,CACvE,CACA,MAAM,eAAe,EAAS,CAC7B,OAAO,KAAK,QAAQ,OAAQ,gBAAiB,CAC5C,KAAM,IAAgB,CAAO,EAC7B,SAAU,EACX,CAAC,CACF,CACA,MAAM,cAAc,EAAS,CAC5B,OAAO,KAAK,QAAQ,OAAQ,eAAgB,CAC3C,KAAM,IAAe,CAAO,EAC5B,SAAU,EACX,CAAC,CACF,CACD,EAGI,IAAoB,cAAc,EAAe,CACpD,MAAM,cAAc,EAAO,CAC1B,OAAO,KAAK,QAAQ,MAAO,aAAa,IAAS,CAChD,SAAU,GACV,aAAc,MACf,CAAC,CACF,CACD,EAGI,IAA0B,cAAc,EAAe,CAC1D,MAAM,SAAS,EAAY,CAC1B,OAAO,KAAK,QAAQ,MAAO,oBAAoB,mBAAmB,CAAU,IAAK,CAChF,SAAU,GACV,aAAc,MACf,CAAC,CACF,CACD,EAGI,IAAgC,cAAc,EAAe,CAChE,MAAM,UAAU,EAAQ,CACvB,OAAO,KAAK,QAAQ,MAAO,iBAAkB,CAC5C,SAAU,GACV,OAAQ,CACP,aAAc,EAAO,YACrB,gBAAiB,EAAO,gBAAkB,IAAK,GAC/C,eAAgB,EAAO,eAAiB,IAAK,EAC9C,CACD,CAAC,CACF,CACD,EAGI,IAA0B,GAAY,GAAY,EAAS,CAC9D,UACA,YACA,SACA,OACA,cACA,SACA,YACA,UACA,QACD,CAAC,EACG,IAA2B,cAAc,EAAe,CAC3D,MAAM,OAAO,EAAS,CACrB,OAAO,KAAK,QAAQ,OAAQ,oBAAqB,CAChD,KAAM,IAAuB,CAAO,EACpC,SAAU,EACX,CAAC,CACF,CACD,EAGI,IAAsB,GAAY,GAAY,EAAS,CAC1D,QACA,WACA,aACA,YACA,WACA,oBACA,eACA,WACD,CAAC,EACG,IAAkB,cAAc,EAAe,CAClD,MAAM,MAAM,EAAS,CACpB,OAAO,KAAK,QAAQ,OAAQ,gBAAiB,CAC5C,KAAM,IAAmB,CAAO,EAChC,SAAU,EACX,CAAC,CACF,CACD,EAaI,GAAmB,MAAM,CAAiB,CAC7C,YAAY,EAAU,CAAC,EAAG,CACzB,KAAK,SAAW,IAAoB,CAAO,EAC3C,KAAK,KAAO,IAAI,IAAmB,KAAK,QAAQ,EAChD,KAAK,UAAY,IAAI,IAAe,KAAK,SAAU,KAAK,KAAM,CAC7D,UAAW,EAAQ,UACnB,WAAY,EAAQ,WACpB,QAAS,EAAQ,OAClB,EAAG,EAAQ,eAAgB,EAAQ,cAAc,EACjD,KAAK,MAAQ,CACZ,KAAM,IAAI,GAAa,KAAK,UAAW,KAAK,SAAS,OAAO,EAC5D,aAAc,CACb,SAAU,IAAI,GAA6B,KAAK,SAAS,EACzD,SAAU,IAAI,GAA6B,KAAK,SAAS,EACzD,aAAc,IAAI,GAAiC,KAAK,SAAS,EACjE,aAAc,IAAI,GAAiC,KAAK,SAAS,EACjE,UAAW,IAAI,GAA8B,KAAK,SAAS,EAC3D,QAAS,IAAI,GAA4B,KAAK,SAAS,EACvD,QAAS,IAAI,GAA4B,KAAK,SAAS,EACvD,SAAU,IAAI,GAA6B,KAAK,SAAS,CAC1D,EACA,MAAO,IAAI,GAAc,KAAK,SAAS,EACvC,UAAW,IAAI,GAAkB,KAAK,SAAS,EAC/C,qBAAsB,IAAI,GAA6B,KAAK,SAAS,EACrE,OAAQ,IAAI,GAAe,KAAK,SAAS,EACzC,SAAU,IAAI,GAAiB,KAAK,SAAS,EAC7C,YAAa,IAAI,GAAoB,KAAK,SAAS,EACnD,cAAe,IAAI,GAAsB,KAAK,SAAS,EACvD,eAAgB,IAAI,GAAuB,KAAK,SAAS,EACzD,gBAAiB,IAAI,GAAwB,KAAK,SAAS,EAC3D,cAAe,IAAI,GAAsB,KAAK,SAAS,EACvD,aAAc,IAAI,GAAqB,KAAK,SAAS,EACrD,QAAS,IAAI,GAAgB,KAAK,SAAS,EAC3C,cAAe,IAAI,GAAsB,KAAK,SAAS,EACvD,UAAW,IAAI,GAAkB,KAAK,SAAS,EAC/C,MAAO,IAAI,GAAc,KAAK,SAAS,EACvC,SAAU,IAAI,GAAiB,KAAK,SAAS,EAC7C,MAAO,IAAI,GAAc,KAAK,SAAS,EACvC,SAAU,IAAI,GAAiB,KAAK,SAAS,EAC7C,SAAU,IAAI,GAAiB,KAAK,SAAS,EAC7C,IAAK,IAAI,GAAY,KAAK,SAAS,CACpC,EACA,KAAK,OAAS,CACb,cAAe,CACd,IAAK,IAAI,IAAuB,KAAK,SAAS,EAC9C,SAAU,IAAI,IAAkB,KAAK,SAAS,CAC/C,EACA,eAAgB,CAAE,OAAQ,IAAI,IAA8B,KAAK,SAAS,CAAE,EAC5E,gBAAiB,IAAI,IAAyB,KAAK,SAAS,EAC5D,eAAgB,IAAI,IAAwB,KAAK,SAAS,EAC1D,OAAQ,IAAI,IAAgB,KAAK,SAAS,CAC3C,CACD,CACA,OAAO,QAAQ,EAAS,CACvB,OAAO,IAAI,EAAiB,CAAO,CACpC,CACA,MAAM,EAAM,EAAW,CACtB,IAAM,EAAY,OAAO,GAAc,WAAa,EAAU,CAC7D,OAAQ,KACR,SAAU,KAAK,SACf,KAAM,KAAK,KACX,UAAW,KAAK,SACjB,CAAC,EAAI,EAEL,MADA,MAAK,GAAQ,EACN,IACR,CACD,EChjIa,KACX,EAGI,CAAC,IACwB,CAC7B,IAAI,EAAgC,OAAO,OAAO,CAAE,MAAO,EAAG,QAAS,KAAM,UAAW,IAAK,CAAC,EAC1F,EAAQ,IAAI,gBACZ,EAAoC,KACpC,EAAuC,KACvC,EAA+C,KAC/C,EAAoC,QAClC,EAAM,EAAQ,KAAO,KAAK,IAE1B,EAAc,GAAqC,CACvD,IAAM,EAAW,EACjB,EAAU,KACV,EAAQ,MAEJ,IAAU,UAAY,IAAU,WAAS,EAAgB,MAE7D,EAAS,EACT,EAAQ,OAAO,OAAO,CAAE,MAAO,EAAS,MAAQ,EAAG,QAAS,KAAM,UAAW,IAAK,CAAC,EACnF,EAAM,MAAM,EACZ,EAAQ,IAAI,gBACZ,EAAQ,eAAe,EAAO,CAAQ,CACxC,EAEM,EAAa,GACjB,EAAQ,QAAQ,OAAS,gBACzB,EAAQ,QAAQ,aAAe,MAC/B,KAAK,MAAM,EAAQ,QAAQ,WAAW,UAAU,GAAK,EAAI,EAErD,OACA,EAAM,SAAW,EAAU,EAAM,OAAO,GAAG,EAAW,SAAS,EAE5D,GAGH,GACJ,EACA,IACG,CACH,IAAM,EAAS,EAAS,QAClB,EAAQ,EAAK,QACb,EAAe,EAAK,mBAAqB,EAAS,iBAwBxD,OAtBI,EAAO,OAAS,EAAM,KAEtB,EAAO,OAAS,gBAAkB,EAAM,OAAS,eAEjD,EAAO,gBAAkB,EAAM,eAC/B,EAAO,kBAAoB,EAAM,gBAE1B,EAIP,EAAM,oBAAsB,EAAO,qBAClC,EAAM,UAAY,EAAO,SAAW,EAAM,cAAgB,EAAO,cAIlE,EAAO,OAAS,YAAc,EAAM,OAAS,WACxC,EAAO,gBAAkB,EAAM,cAClC,EAAM,oBAAsB,EAAO,oBACnC,EAGC,GAtBgC,CAuBzC,EAEA,MAAO,CACL,WACA,aACA,gBAAgB,EAAO,CACrB,IAAM,EAAW,EAAS,EAAE,SAAW,EACjC,EAAgB,EAAM,MAAQ,EAoBpC,OAnBA,EAAW,CAAK,EAEZ,EAAM,QAAU,GASpB,EAAQ,EACR,EAAU,OAAO,OAAO,CACtB,MAAO,EAAM,MACb,OAAQ,EAAM,OACd,oBAAqB,GAAU,YAAc,KAC7C,0BAA2B,GAAU,kBAAoB,IAC3D,CAAC,EAEM,GAhBE,OAAO,OAAO,CACnB,MAAO,EACP,OAAQ,YAAY,MAAM,EAC1B,oBAAqB,GAAU,YAAc,KAC7C,0BAA2B,GAAU,kBAAoB,IAC3D,CAAC,CAYL,EACA,QAAQ,EAAY,EAAU,EAAY,KAAM,CAC9C,GAAI,IAAe,GAAW,EAAW,OAAO,QAAS,MAAO,GAEhE,IAAI,EACJ,GAAI,CACF,EAAU,GAAoB,CAAQ,CACxC,MAAQ,CAGN,OAFA,EAAW,kBAAkB,EAEtB,EACT,CAEA,IAAM,EACJ,IAAU,MACV,EAAQ,iBAAmB,EAAM,gBACjC,EAAQ,KAAK,KAAO,EAAM,KAAK,GAC3B,EAAc,GAAa,EAAQ,aAAe,EAAO,WAsB/D,OAnBE,EAAU,CAAO,GAChB,GAAe,EAAQ,iBAAmB,EAAO,kBACjD,GAAe,EAAsB,EAAS,CAAM,GACpD,IAAW,UACV,GAAO,0BACP,CAAC,EAAQ,0BACV,IAAW,WACT,CAAC,GAAa,GAAe,EAAQ,kBAAoB,EAAO,mBAEnE,EAAW,kBAAkB,EAEtB,KAGT,EAAQ,OAAO,OAAO,CAAE,MAAO,EAAM,MAAO,UAAS,WAAU,CAAC,EAChE,EAAgB,EAChB,EAAU,KACV,EAAQ,KAED,GACT,EACA,SAAU,CACR,IAAM,EAAW,EAAS,EACpB,EAAS,EAAM,OAErB,OAAO,OAAO,OAAO,CACnB,SACA,cAAiB,EAAS,IAAM,GAAY,EAAS,UAAY,MAAQ,CAAC,EAAO,OACnF,CAAC,CACH,EACA,iBAAkB,CAChB,IAAM,EAAW,EAAS,EAE1B,GAAI,CAAC,EAAS,QACZ,MAAM,IAAI,aAAa,2CAA4C,mBAAmB,EAGxF,IAAM,EAAS,EAAM,OACf,EAAe,GAAkC,CACrD,oBAAqB,EAAS,QAAQ,WACtC,0BAA2B,EAAS,QAAQ,gBAC9C,CAAC,EAED,OAAO,OAAO,OAAO,CACnB,GAAG,EACH,eAAgB,OAAO,OAAO,CAC5B,SACA,cAAiB,EAAS,IAAM,GAAY,CAAC,EAAO,QACpD,MAAO,QACP,gBAAiB,CACnB,CAAC,CACH,CAAC,CACH,CACF,CACF,EC3JM,GAAiC,OAAO,OAAO,CACnD,OAAQ,OACR,QAAS,KACT,QAAS,KACT,MAAO,IACT,CAAC,EAEK,IAAiB,EAAuB,IAC5C,EAAK,OAAS,gBAAkB,EAAM,OAAS,eAC3C,EAAK,cAAc,YAAY,IAAM,EAAM,cAAc,YAAY,EACrE,EAAK,OAAS,YACd,EAAM,OAAS,YACf,EAAK,cAAc,YAAY,IAAM,EAAM,cAAc,YAAY,EAErE,IAAe,GACnB,EAAO,OAAS,eACZ,CAAE,KAAM,eAAgB,cAAe,EAAO,aAAc,EAC5D,CAAE,KAAM,WAAY,cAAe,EAAO,aAAc,EAExD,KACJ,EACA,IAEA,EAAK,SAAW,EAAM,QACtB,EAAK,OACF,EAAO,IACN,EAAM,MAAQ,EAAM,IAAQ,KAC5B,EAAM,QAAU,EAAM,IAAQ,OAC9B,EAAM,QAAU,EAAM,IAAQ,KAClC,EAEI,KACJ,EACA,IACY,CACZ,GACE,EAAK,mBAAqB,EAAM,kBAChC,EAAK,iBAAmB,EAAM,gBAC9B,EAAK,aAAe,EAAM,YAC1B,EAAK,mBAAqB,EAAM,kBAChC,EAAK,2BAA6B,EAAM,0BACxC,EAAK,KAAK,KAAO,EAAM,KAAK,IAC5B,EAAK,KAAK,QAAU,EAAM,KAAK,OAC/B,EAAK,KAAK,WAAa,EAAM,KAAK,UAClC,EAAK,KAAK,aAAe,EAAM,KAAK,YACpC,EAAK,KAAK,YAAc,EAAM,KAAK,WACnC,EAAK,KAAK,oBAAsB,EAAM,KAAK,kBAE3C,MAAO,GAGT,GAAI,EAAK,QAAQ,OAAS,YAAc,EAAM,QAAQ,OAAS,WAC7D,OACE,EAAK,QAAQ,gBAAkB,EAAM,QAAQ,eAC7C,EAAK,QAAQ,sBAAwB,EAAM,QAAQ,qBACnD,EAAK,QAAQ,OAAS,EAAM,QAAQ,KAIxC,GAAI,EAAK,QAAQ,OAAS,gBAAkB,EAAM,QAAQ,OAAS,eAAgB,CACjF,IAAM,EAAiB,EAAK,QAAQ,WAC9B,EAAkB,EAAM,QAAQ,WAYtC,OAVE,IAAmB,MAAQ,IAAoB,KAC3C,GACA,IAAmB,MACnB,IAAoB,MACpB,EAAe,KAAO,EAAgB,IACtC,EAAe,sBAAwB,EAAgB,qBACvD,EAAe,sBAAwB,EAAgB,qBACvD,EAAe,SAAW,EAAgB,QAC1C,EAAe,aAAe,EAAgB,aAIlD,EAAK,QAAQ,gBAAkB,EAAM,QAAQ,eAC7C,EAAK,QAAQ,sBAAwB,EAAM,QAAQ,qBACnD,EAAK,QAAQ,kBAAoB,EAAM,QAAQ,iBAC/C,EAAK,QAAQ,oBAAsB,EAAM,QAAQ,mBACjD,EAAK,QAAQ,UAAY,EAAM,QAAQ,SACvC,EAAK,QAAQ,gBAAkB,EAAM,QAAQ,eAC7C,EAAK,QAAQ,YAAc,EAAM,QAAQ,WACzC,IAAiB,EAAK,QAAQ,aAAc,EAAM,QAAQ,YAAY,CAE1E,CAEA,MAAO,EACT,EAGa,IAAuB,GAO9B,CACJ,IAAM,EAAM,EAAQ,KAAO,KAAK,IAC1B,EAAQ,GAAS,EAAU,EAC7B,EAAU,GACV,EAAa,EACb,EAAW,GACX,EAA4C,KAC5C,EAAoC,UACpC,EAAuD,KACvD,EAAoC,KACpC,EAAkD,KAClD,EAAoD,KACpD,EAA4C,KAC1C,EAAW,GAA8B,CAC7C,EAAU,OAAO,OAAO,CAAK,EAC7B,EAAM,IAAI,CAAO,CACnB,EACM,MAAoB,CACpB,IAAgB,MAAM,aAAa,CAAW,EAElD,EAAc,IAChB,EACM,MAAsB,CAC1B,GAAmB,MAAM,EACzB,EAAoB,IACtB,EACM,EAAY,IAA+B,CAC/C,MACA,aAAa,EAAQ,EAAU,CAC7B,GAAc,EACd,EAAc,EACd,EAAY,EACZ,EAAgB,KAChB,EAAmB,KACnB,EAAqB,KACrB,EAAsB,KACtB,EACE,IAAW,mBACP,CAAE,GAAG,GAAY,OAAQ,QAAS,MAAO,kBAAmB,EAC5D,EACN,EACA,EAAQ,aAAa,EAAQ,CAAQ,CACvC,CACF,CAAC,EAEK,EAAQ,GAAoD,CAChE,IAAM,EAAiB,EAAa,EACpC,EAAU,WAAW,IAAU,mBAAqB,mBAAqB,SAAS,EAE9E,CAAC,GAAY,IAAe,GAC9B,EAAQ,CAAE,GAAG,GAAY,OAAQ,QAAS,OAAM,CAAC,CACrD,EACM,GAAkB,EAAmB,IAAyB,CAClE,EAAY,EACZ,IAAM,EAAW,EACX,MAAc,CAClB,GAAI,GAAY,IAAe,EAAU,OAEzC,IAAM,EAAY,EAAY,EAAI,EAElC,GAAI,GAAa,EAAG,CAClB,EAAS,EAET,MACF,CAEA,EAAc,WAAW,EAAO,KAAK,IAAI,EAAW,UAAa,CAAC,CACpE,EACA,EAAM,CACR,EACM,GACJ,EACA,EACA,IACG,CACH,GAAI,EAAU,OAAO,KAErB,IAAM,EAAa,EAAU,gBAAgB,CAAM,EAEnD,GAAI,EAAW,OAAO,QAAS,OAAO,KAEtC,IAAM,EAAW,EACX,EAA8C,OAAO,OAAO,CAChE,OAAQ,EAAW,OACnB,cAAiB,CAAC,GAAY,IAAe,GAAY,CAAC,EAAW,OAAO,QAC5E,MAAO,QACP,GAAI,EAAkB,CAAE,iBAAgB,EAAI,CAAC,CAC/C,CAAC,EAGD,OAFA,EAAQ,CAAE,GAAG,GAAY,QAAO,CAAC,EAE1B,EAAe,UAAU,EAAI,CAAE,aAAY,gBAAe,EAAI,IACvE,EACM,GACJ,EACA,EACA,IACY,CACZ,GAAI,CAAC,EAAK,eAAe,UAAU,EAAG,MAAO,GAE7C,IAAM,EAAU,GAAoB,CAAQ,EAE5C,GACE,IACC,CAAC,GAAc,EAAU,EAAQ,OAAO,GACtC,EAAQ,QAAQ,OAAS,gBAAkB,EAAQ,QAAQ,aAAe,MAE7E,MAAM,IAAI,GAqBZ,OAlBK,EAAU,QAAQ,EAAK,WAAY,CAAO,GAE/C,EAAQ,CACN,GAAG,GACH,OAAQ,EAAQ,yBAA2B,kBAAoB,QAC/D,SACF,CAAC,EAGC,EAAK,eAAe,UAAU,GAC9B,EAAQ,QAAQ,OAAS,gBACzB,EAAQ,QAAQ,YAEhB,EAAe,KAAK,MAAM,EAAQ,QAAQ,WAAW,UAAU,MAC7D,EAAU,WAAW,SAAS,CAChC,EAGK,IAlBkD,EAmB3D,EACM,GAAiB,EAA6C,IAAmB,CACrF,GAAI,EAAK,eAAe,UAAU,EAAG,CACnC,IAAM,EACH,GAAoD,QACpD,GAAmC,WACtC,EACE,aAAiB,GACb,mBACA,IAAW,KAAO,IAAW,IAC3B,kBACA,gBACR,CACF,CAEA,MAAO,EACT,EACM,EAAU,SAA8B,CAC5C,EAAe,UACf,IAAM,EAAO,EAAM,UAAW,SAAS,EAEvC,GAAI,CAAC,EAAM,MAAO,GAElB,GAAI,CACF,OAAO,EAAO,EAAM,MAAM,EAAQ,IAAI,QAAQ,EAAK,cAAc,CAAC,CACpE,OAAS,EAAO,CACd,OAAO,EAAc,EAAM,CAAK,CAClC,CACF,EACM,EAAU,KAAO,IAEc,CACnC,GACE,GACC,EAAQ,SAAW,SAAW,EAAQ,SAAW,mBAClD,CAAC,EAAQ,QAET,MAAO,aAGT,GAAI,CAAC,EAAU,SAAS,EAAE,QAGxB,OAFI,EAAiB,aAEb,MAAM,EAAQ,EAAK,UAAY,SAGzC,IAAM,EAAW,EAAQ,QACzB,EAAc,EACd,IAAM,EAAW,EACX,EAAa,IAAI,gBACvB,EAAoB,EACpB,IAAM,EAA8C,OAAO,OAAO,CAChE,OAAQ,EAAW,OACnB,cACE,CAAC,GACD,IAAe,GACf,IAAsB,GACtB,CAAC,EAAW,OAAO,QACrB,MAAO,OACT,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,EAAQ,IAAI,QAAQ,CAAc,CACrD,OAAS,EAAO,CACd,GAAI,CAAC,EAAe,UAAU,EAAG,MAAO,aAExC,EAAoB,KACpB,EAAe,UACf,IAAM,EACH,GAAoD,QACpD,GAAmC,WAYtC,OAVI,IAAW,KAAO,IAAW,MAAK,GAAgB,oBAAoB,EAE1E,EACE,aAAiB,GACb,mBACA,IAAW,KAAO,IAAW,IAC3B,kBACA,gBACR,EAEO,QACT,CAEA,GAAI,CAAC,EAAe,UAAU,EAAG,MAAO,aAExC,EAAoB,KACpB,IAAI,EACJ,GAAI,CACF,EAAS,GAAoB,CAAQ,CACvC,MAAQ,CAIN,MAHA,GAAe,UACf,EAAK,kBAAkB,EAEhB,QACT,CAOA,GAAI,EAJF,EAAO,QAAQ,OAAS,gBACxB,EAAO,QAAQ,aAAe,MAC9B,KAAK,MAAM,EAAO,QAAQ,WAAW,UAAU,GAAK,EAAI,IAEhC,IAAoB,EAAU,CAAM,EAC5D,MAAO,YAGT,EAAe,UACf,IAAM,EAAO,EAAM,UAAW,SAAS,EAIvC,OAFK,EAEE,EAAO,EAAM,CAAM,EAAI,UAAY,SAFxB,YAGpB,EACM,MAEF,CAAC,GACD,EAAQ,SAAW,aACnB,IAAuB,MACvB,GAAsB,EAAI,GAE1B,EAAK,mBAAmB,EAEjB,IAGF,GAEH,EAAc,SAA8B,CAChD,EAAe,UACf,IAAM,EAAO,EAAM,UAAW,SAAS,EAEvC,GAAI,CAAC,EAAM,MAAO,GAElB,GAAI,CAAC,EAAK,WAAW,qBAAuB,CAAC,EAAK,WAAW,0BAG3D,OAFA,EAAK,kBAAkB,EAEhB,GAGT,GAAI,CACF,IAAM,EAAU,GAAkC,CAChD,oBAAqB,EAAK,WAAW,oBACrC,0BAA2B,EAAK,WAAW,yBAC7C,CAAC,EACK,EAAW,MAAM,EAAQ,IAAI,SACjC,OAAO,OAAO,CAAE,GAAG,EAAK,eAAgB,gBAAiB,CAAQ,CAAC,CACpE,EAEA,GAAI,CAAC,EAAK,eAAe,UAAU,EAAG,MAAO,GAE7C,IAAM,EAAU,GAAoB,CAAQ,EAK5C,MAJA,GAAgB,UAChB,EAAmB,EACnB,EAAQ,CAAE,GAAG,GAAY,OAAQ,YAAa,SAAQ,CAAC,EAEhD,EACT,OAAS,EAAO,CACd,OAAO,EAAc,EAAM,CAAK,CAClC,CACF,EACM,GACJ,EACA,IACY,CACZ,GAAI,CAAC,EAAK,eAAe,UAAU,EAAG,MAAO,GAE7C,GAAI,CACF,IAAM,EAAY,GAA2B,CAAQ,EAC/C,EAAY,KAAK,MAAM,EAAU,UAAU,EAuBjD,OArBI,GAAa,EAAI,GACnB,EAAK,mBAAmB,EAEjB,KAGT,EAAgB,QAChB,EAAqB,EACrB,EAAsB,OAAO,OAAO,CAClC,OAAQ,EAAK,eAAe,OAC5B,cACE,EAAK,eAAe,UAAU,GAC9B,IAAkB,SAClB,EAAQ,SAAW,aACnB,EAAI,EAAI,CACZ,CAAC,EACD,EAAQ,CAAE,GAAG,GAAY,OAAQ,YAAa,QAAS,EAAU,QAAS,CAAC,EAEvE,EAAK,eAAe,UAAU,GAChC,EAAe,MAAiB,EAAK,mBAAmB,CAAC,EAEpD,GACT,OAAS,EAAO,CACd,OAAO,EAAc,EAAM,CAAK,CAClC,CACF,EACM,EAAoB,GAA+B,CACvD,EAAe,QACf,IAAM,EAAO,EAAM,QAAS,SAAS,EAErC,OAAO,EAAO,EAAmB,EAAM,CAAQ,EAAI,EACrD,EACM,EAAmB,SAA8B,CACrD,EAAe,QACf,IAAM,EAAO,EAAM,QAAS,SAAS,EAErC,GAAI,CAAC,EAAM,MAAO,GAElB,GAAI,CACF,OAAO,EAAmB,EAAM,MAAM,EAAQ,IAAI,cAAc,EAAK,cAAc,CAAC,CACtF,OAAS,EAAO,CACd,OAAO,EAAc,EAAM,CAAK,CAClC,CACF,EACM,EAAS,KAAO,IAAgD,CACpE,GAAI,GAAY,EAAQ,SAAW,aAAe,IAAkB,KAAM,MAAO,GAEjF,GAAI,IAAuB,MAAQ,GAAsB,EAAI,EAG3D,OAFA,EAAK,mBAAmB,EAEjB,GAGT,IAAI,EACJ,GAAI,CAGF,GAFA,EAAW,GAA+B,CAAQ,EAAE,QAEhD,CAAC,EAAQ,SAAS,KAAM,GAAW,GAAc,IAAY,CAAM,EAAG,CAAQ,CAAC,EACjF,MAAM,IAAI,EAEd,MAAQ,CAGN,OAFA,EAAK,kBAAkB,EAEhB,EACT,CAEA,IAAM,EAAO,EACP,EAAU,EAEhB,GAAI,IAAS,WAAa,CAAC,EAGzB,OAFA,EAAK,kBAAkB,EAEhB,GAGT,IAAM,EAAO,EAAM,IAAS,UAAY,SAAW,QAAS,YAAa,GAAW,MAAS,EAE7F,GAAI,CAAC,EAAM,MAAO,GAElB,EAAQ,kBAAkB,EAC1B,GAAI,CAYF,OAAO,EAAO,EAVZ,IAAS,UACL,MAAM,EAAQ,IAAI,cAChB,GAAiC,EAAU,CAAQ,EACnD,EAAK,cACP,EACA,MAAM,EAAQ,IAAI,mBAChB,GAA+B,CAAQ,EACvC,EAAK,cACP,EAEwB,CAAQ,CACxC,OAAS,EAAO,CACd,OAAO,EAAc,EAAM,CAAK,CAClC,QAAU,CACR,EAAQ,oBAAoB,CAC9B,CACF,EACM,OAAqC,EACrC,GAAuB,KAAO,IAA0D,CAC5F,IAAM,EAAW,EAAO,eAAe,KAAK,EAAE,YAAY,EACpD,EAAU,GAAS,EAEzB,GAAI,CAAC,GAAY,GAAY,EAAQ,SAAW,SAAW,CAAC,EAAQ,QAAS,MAAO,GAEpF,GACE,EAAQ,QAAQ,QAAQ,OAAS,gBACjC,EAAQ,QAAQ,QAAQ,gBAAgB,YAAY,IAAM,EAE1D,MAAO,GAGT,GAAI,CAAE,MAAM,EAAY,EAAI,MAAO,GAEnC,IAAM,EAAiB,EAAO,kBAAkB,KAAK,EAAE,YAAY,GAAK,GAClE,EAAS,GAAS,EAExB,GAAI,CAAC,GAAkB,GAAY,EAAO,SAAW,aAAe,CAAC,EAAO,QAC1E,MAAO,GAGT,IAAM,EAAQ,EAAO,QAAQ,KAC1B,GACC,EAAO,OAAS,gBAChB,EAAO,kBAAkB,KAAK,EAAE,YAAY,IAAM,CACtD,EAEA,GAAI,CAAC,GAAS,EAAM,OAAS,eAAgB,MAAO,GAEpD,IAAM,EAAW,MAAM,EAAO,CAC5B,KAAM,eACN,cAAe,EAAM,aACvB,CAAC,EACK,EAAa,GAAS,EAE5B,OACE,GACA,EAAW,SAAS,QAAQ,OAAS,gBACrC,EAAW,QAAQ,QAAQ,gBAAgB,YAAY,IAAM,CAEjE,EACM,GAAa,EAAQ,4BAA8B,CACnD,IAEJ,EAAU,WAAW,WAAW,EAChC,EAAa,EACf,CAAC,EAED,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,UACA,UACA,yBACA,cACA,mBACA,kBAAsB,IAAiB,QAAU,EAAiB,EAAI,EAAY,EAClF,mBACA,SACA,wBACA,mBAAsB,GAAqB,UAAU,IAAM,GAC3D,qBAA2C,CACzC,GAAI,CAAC,GAAqB,UAAU,EAClC,MAAM,IAAI,aAAa,mCAAoC,mBAAmB,EAEhF,OAAO,CACT,EACA,aAAc,CACZ,GAAI,GAAY,EAAQ,SAAW,QACjC,MAAM,IAAI,aAAa,8BAA+B,mBAAmB,EAE3E,OAAO,EAAU,gBAAgB,EAAE,cACrC,EACA,mBAAsB,EAAU,gBAAgB,EAChD,WAAa,GAAsC,EAAU,WAAW,CAAM,EAC9E,iBAAkB,CAChB,GAAI,GAAY,EAAQ,SAAW,QACjC,MAAM,IAAI,aAAa,8BAA+B,mBAAmB,EAG3E,OAAO,EAAU,gBAAgB,CACnC,EACA,SAAU,CACJ,IAEJ,EAAW,GACX,EAAc,EACd,KAAa,EACb,EAAU,WAAW,QAAQ,EAC/B,CACF,CACF,ECznBM,IAAY,GACf,GAA2D,YAC3D,GAAsC,OAG5B,IAAkC,GAIzC,CACJ,IAAI,EAAW,GACX,EAAc,GACd,EAAa,EACb,EAAkC,KAClC,EAAe,CAAE,OAAQ,UAAW,SAAU,KAAM,UAAW,GAAO,MAAO,IAAK,EAChF,EAAQ,GAAS,CAAK,EACtB,EAAW,GAAgB,CAC/B,EAAQ,OAAO,OAAO,CAAI,EAC1B,EAAM,IAAI,CAAK,CACjB,EACM,MACJ,CAAC,GAAY,CAAC,GAAe,CAAC,EAAQ,QAAQ,OAAO,SAAW,EAAQ,QAAQ,UAAU,EACtF,MAAmB,CACvB,EAAc,GACd,GAAc,EACd,GAAS,MAAM,EACf,EAAU,KACV,EAAQ,CAAE,OAAQ,cAAe,SAAU,KAAM,UAAW,GAAO,MAAO,IAAK,CAAC,CAClF,EACM,MAAc,CAClB,IAAM,EAAS,EAAE,EACX,EAAQ,IAAI,gBAClB,EAAU,EACV,IAAM,MAAkB,IAAW,GAAc,EAAQ,GAAK,CAAC,EAAM,OAAO,QAE5E,MAAO,CACL,YACA,QAAS,CAAE,OAAQ,YAAY,IAAI,CAAC,EAAQ,QAAQ,OAAQ,EAAM,MAAM,CAAC,EAAG,WAAU,EACtF,QAAS,CACH,IAAY,IAAO,EAAU,KACnC,CACF,CACF,EACM,GAAQ,EAAgB,IAA0C,CACtE,IAAM,EAAS,IAAS,CAAK,EAE7B,GAAI,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAG,CACzC,EAAW,EACX,EAAQ,WAAW,EAEnB,MACF,CAEA,EAAQ,CACN,GAAG,EACH,OAAQ,QACR,SACE,IAAU,WAAa,CAAC,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAI,KAAO,EAAM,SAC/E,MACE,IAAW,IACP,YACA,IAAU,UACR,CAAC,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAC7B,QACA,YACF,QACV,CAAC,CACH,EAKA,OAJA,EAAQ,QAAQ,OAAO,iBAAiB,QAAS,CAAU,EAEtD,EAAQ,GAAG,EAAW,EAEpB,CACL,MAAO,GAAS,CAAK,EACrB,UAAW,EACX,MAAM,MAAO,CACX,GAAI,CAAC,EAAQ,GAAK,EAAS,MAAO,GAElC,IAAM,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,UAAW,SAAU,KAAM,MAAO,IAAK,CAAC,EACpE,GAAI,CACF,IAAM,EAAS,MAAM,EAAQ,IAAI,MAAM,EAAU,OAAO,EAMxD,OAJK,EAAU,UAAU,GAEzB,EAAQ,CAAE,GAAG,EAAO,OAAQ,QAAS,SAAU,EAAO,WAAa,GAAM,MAAO,IAAK,CAAC,EAE/E,EAAO,WAAa,IAJQ,EAKrC,OAAS,EAAO,CAGd,OAFI,EAAU,UAAU,GAAG,EAAK,EAAO,MAAM,EAEtC,EACT,QAAU,CACR,EAAU,OAAO,CACnB,CACF,EACA,MAAM,SAAU,CACd,GAAI,CAAC,EAAQ,GAAK,GAAW,EAAM,WAAa,GAAO,MAAO,GAE9D,IAAM,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,aAAc,MAAO,IAAK,CAAC,EACvD,GAAI,CAOF,OANA,MAAM,EAAQ,IAAI,QAAQ,EAAU,OAAO,EAEtC,EAAU,UAAU,GAEzB,EAAQ,CAAE,GAAG,EAAO,OAAQ,QAAS,UAAW,GAAM,MAAO,IAAK,CAAC,EAE5D,IAJ4B,EAKrC,OAAS,EAAO,CAGd,OAFI,EAAU,UAAU,GAAG,EAAK,EAAO,SAAS,EAEzC,EACT,QAAU,CACR,EAAU,OAAO,CACnB,CACF,EACA,MAAM,QAAQ,EAAe,CAC3B,GAAI,CAAC,EAAQ,GAAK,GAAW,EAAM,WAAa,IAAS,CAAC,EAAO,MAAO,GAExE,IAAM,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,aAAc,MAAO,IAAK,CAAC,EACvD,GAAI,CAGF,GAFA,MAAM,EAAQ,IAAI,QAAQ,CAAE,OAAM,EAAG,EAAU,OAAO,EAElD,CAAC,EAAU,UAAU,EAAG,MAAO,GAEnC,IAAM,EAAS,MAAM,EAAQ,IAAI,MAAM,EAAU,OAAO,EAWxD,OATK,EAAU,UAAU,GAEzB,EAAQ,CACN,GAAG,EACH,OAAQ,QACR,SAAU,EAAO,WAAa,GAC9B,MAAO,EAAO,WAAa,GAAO,KAAO,WAC3C,CAAC,EAEM,EAAO,WAAa,IATQ,EAUrC,OAAS,EAAO,CAGd,OAFI,EAAU,UAAU,GAAG,EAAK,EAAO,SAAS,EAEzC,EACT,QAAU,CACR,EAAU,OAAO,CACnB,CACF,EACA,SAAU,CACJ,IAEJ,EAAW,GACX,EAAQ,QAAQ,OAAO,oBAAoB,QAAS,CAAU,EAC9D,EAAW,EACb,CACF,CACF,EC9Ja,IAAwB,GAS/B,CACJ,IAAM,EAAU,GAAoB,EAAQ,OAAO,EAC7C,EAAU,EAAQ,QAExB,GACE,EAAQ,aAAe,EAAQ,qBAC/B,EAAQ,mBAAqB,EAAQ,0BAErC,MAAU,UAAU,qCAAqC,EAE3D,IAAI,EAAe,CAAE,OAAQ,OAAQ,MAAO,CAAC,EAAG,MAAO,KAAM,MAAO,EAAM,EACpE,EAAQ,GAAS,CAAK,EACxB,EAAa,EACb,EAAW,GACT,EAAO,GAAgB,CAC3B,EAAQ,EACR,EAAM,IAAI,CAAI,CAChB,EACM,MAAmB,CACvB,GAAc,EACd,EAAI,CAAE,OAAQ,cAAe,MAAO,CAAC,EAAG,MAAO,KAAM,MAAO,EAAM,CAAC,CACrE,EACM,MACJ,CAAC,GACD,EAAM,SAAW,eACjB,CAAC,EAAQ,eAAe,OAAO,SAC/B,EAAQ,eAAe,UAAU,EAC7B,MAAc,EAAQ,GAAK,EAAM,SAAW,QAC5C,GAAW,EAAgB,EAAS,KAAU,CAClD,IAAM,EAAU,GAAmC,WAC7C,EACJ,GACA,IAAW,KACV,GAAmC,aAAe,0BAErD,GAAI,CAAC,EAAQ,GAAM,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,GAAK,CAAC,EAAkB,CAC7E,EAAW,EAEX,MACF,CAEA,EAAI,CACF,GAAG,EACH,OAAQ,QACR,MACE,IAAW,IACP,qDACA,0CACN,MAAO,EACT,CAAC,CACH,EACA,EAAQ,eAAe,OAAO,iBAAiB,QAAS,CAAU,EAClE,IAAM,EAAO,SAAY,CACvB,GAAI,CAAC,EAAQ,GAAK,CAAC,UAAW,SAAU,kBAAkB,EAAE,SAAS,EAAM,MAAM,EAAG,MAAO,GAE3F,IAAM,EAAS,EAAE,EACjB,EAAI,CAAE,OAAQ,UAAW,MAAO,CAAC,EAAG,MAAO,KAAM,MAAO,EAAM,CAAC,EAC/D,GAAI,CACF,IAAM,EAAS,MAAM,EAAQ,IAAI,iBAAiB,EAAQ,cAAc,EAMxE,OAJI,IAAW,GAAc,CAAC,EAAQ,EAAU,IAEhD,EAAI,CAAE,OAAQ,QAAS,MAAO,EAAO,MAAO,MAAO,KAAM,MAAO,EAAM,CAAC,EAEhE,GACT,OAAS,EAAO,CAGd,OAFI,IAAW,GAAY,EAAQ,CAAK,EAEjC,EACT,CACF,EACM,EAAa,GACjB,EAAM,GACN,EAAQ,SAAS,SAAS,CAAO,IAChC,EACG,EAAM,MAAM,KACT,GAAS,EAAK,aAAe,GAAM,CAAC,EAAK,SAAW,IAAO,EAAQ,UACtE,EACA,EAAM,MAAM,KAAM,GAAS,CAAC,EAAK,SAAW,EAAK,aAAe,EAAQ,UAAU,GAuBxF,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,MAAO,EAAQ,SAAS,MACxB,MAAO,EAAQ,KACf,OACA,YACA,YA5BoB,IAAgB,CACpC,GAAI,CAAC,EAAU,CAAE,EAAG,MAAO,GAE3B,IAAM,EAAS,EAAE,EACjB,EAAI,CAAE,GAAG,EAAO,OAAQ,SAAU,MAAO,KAAM,MAAO,EAAM,CAAC,EAC7D,GAAI,CASF,OARI,EAAI,MAAM,EAAQ,IAAI,sBAAsB,EAAI,EAAQ,cAAc,EACrE,MAAM,EAAQ,IAAI,4BAA4B,EAAQ,cAAc,EAErE,IAAW,GAAc,CAAC,EAAQ,EAAU,IAEhD,EAAW,EACX,MAAM,EAAQ,UAAU,EAEjB,GACT,OAAS,EAAO,CAGd,OAFI,IAAW,GAAY,EAAQ,CAAK,EAEjC,EACT,CACF,EASE,aAAgB,EAAQ,GAAK,EAAQ,SAAS,SAAS,CAAO,EAC9D,MAAM,aAAa,EAAkB,CACnC,GAAI,CAAC,EAAM,GAAK,CAAC,EAAU,MAAO,GAElC,IAAM,EAAS,EAAE,EACjB,EAAI,CAAE,GAAG,EAAO,OAAQ,mBAAoB,MAAO,IAAK,CAAC,EACzD,GAAI,CACF,IAAM,EAAY,MAAM,EAAQ,SAAS,aAAa,EAAU,CAAO,EAMvE,OAJI,IAAW,GAAc,CAAC,EAAQ,EAAU,IAEhD,EAAI,CAAE,GAAG,EAAO,OAAQ,OAAQ,CAAC,EAE1B,EACT,OAAS,EAAO,CAGd,OAFI,IAAW,GAAY,EAAQ,EAAO,EAAI,EAEvC,EACT,CACF,EACA,SAAU,CACR,EAAW,GACX,EAAQ,eAAe,OAAO,oBAAoB,QAAS,CAAU,EACrE,EAAW,CACb,CACF,CACF,EC9JM,GAAQ,GAAS,CAAC,EAES,GAAS,EAAK,EAC/C,IAAa,QAAgC,GAAM,OAAQ,GAAU,EAAQ,CAAC,ECcjE,IAAsB,GAO7B,CACJ,IAAM,EAA6B,CAAE,OAAQ,cAAe,UAAW,KAAM,MAAO,IAAK,EACnF,EAAQ,GAAS,CAAO,EACxB,EAAM,EAAQ,KAAO,KAAK,IAC5B,EAAa,EACb,EAAQ,IAAI,gBACZ,EAA8C,KAC9C,EAAW,GACT,MAAc,CAClB,GAAc,EACd,EAAM,MAAM,EACZ,EAAQ,IAAI,gBAER,IAAU,MAAM,aAAa,CAAK,EAEtC,EAAQ,KACR,EAAM,IAAI,CAAO,CACnB,EACM,EAAe,SAAY,CAC/B,IAAM,EAAU,GAAI,EAAQ,OAAO,KAAK,EAExC,GAAI,EAAQ,SAAW,aAAe,CAAC,EAAQ,SAAS,OAAQ,OAEhE,IAAM,EAAgB,EAAQ,4BAA4B,GAAG,KAAK,EAAE,YAAY,GAAK,GAQ/E,GAPkB,EACnB,EAAQ,QAAQ,KACd,GACC,EAAM,OAAS,gBACf,EAAM,kBAAkB,KAAK,EAAE,YAAY,IAAM,CACrD,GAAK,KACL,QAC+B,EAAQ,QAAQ,SAAW,EAAI,EAAQ,QAAQ,GAAK,MAElF,GAEL,MAAM,EAAQ,OAAO,OACnB,EAAO,OAAS,eACZ,CAAE,KAAM,eAAgB,cAAe,EAAO,aAAc,EAC5D,CAAE,KAAM,WAAY,cAAe,EAAO,aAAc,CAC9D,CACF,EA6EA,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,YA9EoB,IAA4C,CAGhE,GAFI,GAAY,GAAI,CAAK,EAAE,SAAW,cAElC,GAAI,CAAK,EAAE,SAAW,WAAa,EAAQ,gBAAiB,MAAO,GAEvE,IAAM,EAAY,GAAI,CAAK,EAAE,UAE7B,GAAI,GAAW,YAAc,KAAK,MAAM,EAAU,UAAU,GAAK,EAAI,EAInE,OAHA,EAAM,EACN,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,SAAU,CAAC,EAEpC,GAGT,EAAM,EACN,EAAQ,OAAO,WAAW,OAAO,EACjC,IAAM,EAAW,EACX,EAAS,EAAM,OACf,MAAkB,CAAC,GAAY,IAAe,GAAY,CAAC,EAAO,QACxE,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,YAAa,CAAC,EAC9C,EAAQ,gBAAgB,EACxB,GAAI,CACF,IAAM,EAAW,MAAM,EAAQ,IAAI,MACjC,CAAE,GAAG,EAAS,oBAAqB,EAAK,EACxC,CAAE,SAAQ,YAAW,MAAO,OAAQ,CACtC,EAEA,GAAI,CAAC,EAAU,EAAG,MAAO,GAEzB,IAAM,EAAS,GAA0B,CAAQ,EAEjD,GAAI,wBAAyB,EAAQ,CAGnC,GAFA,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,YAAa,UAAW,CAAO,CAAC,EAE5D,EAAO,WAAY,CACrB,IAAM,MAAe,CACnB,GAAI,CAAC,EAAU,EAAG,OAElB,IAAM,EAAY,KAAK,MAAM,EAAO,UAAW,EAAI,EAAI,EAEvD,GAAI,EAAY,EAAG,CACjB,EAAQ,WAAW,EAAQ,KAAK,IAAI,EAAW,UAAa,CAAC,EAE7D,MACF,CAEA,EAAM,EACN,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,SAAU,CAAC,CAC7C,EACA,EAAO,CACT,CAEA,MAAO,EACT,CAQA,OANK,EAAQ,OAAO,iBAAiB,CAAM,GAE3C,MAAM,EAAa,EAEf,EAAU,GAAG,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,WAAY,CAAC,EAEvD,EAAU,GANoC,EAOvD,OAAS,EAAO,CAQd,OAPI,EAAU,GACZ,EAAM,IAAI,CACR,GAAG,EACH,OAAQ,QACR,MAAO,aAAiB,GAA8B,mBAAqB,cAC7E,CAAC,EAEI,EACT,QAAU,CACR,EAAQ,kBAAkB,CAC5B,CACF,EAKE,QACA,MAAM,QAAS,CACb,GAAI,GAAY,GAAI,CAAK,EAAE,SAAW,aAAc,MAAO,GAE3D,EAAM,EACN,IAAM,EAAW,EAOjB,MAJI,CAAC,MAFkB,EAAQ,OAAO,iBAAiB,GAEtC,GAAY,IAAa,EAAmB,IAE7D,EAAM,IAAI,CAAE,GAAG,EAAS,OAAQ,WAAY,CAAC,EAEtC,GACT,EACA,SAAU,CACJ,CAGJ,IADA,EAAM,EACK,GACb,CACF,CACF,EChJM,GAAY,GAAoB,GAA2D,YAC9F,GAAsC,OAG5B,IAAoB,GAK3B,CACJ,GAAM,CAAE,UAAS,WAAY,EAC7B,GAAI,EAAQ,aAAe,EAAQ,qBAAuB,EAAQ,mBAAqB,EAAQ,0BAC7F,MAAU,UAAU,iCAAiC,EAEvD,IAAI,EAAW,GACX,EAAa,EACb,EAAkC,KAClC,EAAkB,CAAE,OAAQ,UAAW,SAAU,KAAM,QAAS,KAAM,UAAW,KAAM,MAAO,IAAK,EACjG,EAAQ,GAAS,CAAK,EACtB,EAAW,GAAmB,CAAE,EAAQ,OAAO,OAAO,CAAI,EAAG,EAAM,IAAI,CAAK,CAAE,EAC9E,MAAgB,CAAC,GAAY,CAAC,EAAQ,eAAe,OAAO,SAAW,EAAQ,eAAe,UAAU,EACxG,MAAmB,CACvB,GAAc,EACd,GAAS,MAAM,EACf,EAAU,KACV,EAAQ,CAAE,OAAQ,cAAe,SAAU,KAAM,QAAS,KAAM,UAAW,KAAM,MAAO,IAAK,CAAC,CAChG,EACM,MAAc,CAClB,IAAM,EAAS,EAAE,EACX,EAAQ,IAAI,gBAClB,EAAU,EACV,IAAM,MAAkB,IAAW,GAAc,EAAQ,GAAK,CAAC,EAAM,OAAO,QAE5E,MAAO,CACL,YACA,QAAS,CAAE,GAAG,EAAQ,eAAgB,OAAQ,YAAY,IAAI,CAAC,EAAQ,eAAe,OAAQ,EAAM,MAAM,CAAC,EAAG,WAAU,EACxH,QAAS,CAAM,IAAY,IAAO,EAAU,KAAK,CACnD,CACF,EACM,GAAQ,EAAgB,IAA2C,CACvE,IAAM,EAAS,GAAS,CAAK,EAC7B,GAAI,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAG,CAAE,EAAW,EAAG,MAAO,CAClE,EAAQ,CAAE,GAAG,EAAO,OAAQ,QAAS,MAAO,IAAW,IAAM,YAC3D,IAAU,UAAY,CAAC,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAI,OAAS,QAAS,CAAC,CAChF,EACA,EAAQ,eAAe,OAAO,iBAAiB,QAAS,CAAU,EAClE,IAAM,EAAY,EAAQ,QAAQ,OAAS,gBAAkB,EAAQ,QAAQ,aAAe,KAG5F,OAFI,CAAC,EAAQ,GAAK,EAAQ,0BAA4B,IAAW,EAAW,EAErE,CACL,MAAO,GAAS,CAAK,EACrB,MAAM,MAAO,CACX,GAAI,CAAC,EAAQ,GAAK,GAAW,EAAM,SAAW,cAAe,MAAO,GACpE,IAAM,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,UAAW,MAAO,IAAK,CAAC,EACpD,GAAI,CACF,IAAM,EAAW,MAAM,EAAQ,IAAI,YAAY,EAAU,OAAO,EAGhE,OAFK,EAAU,UAAU,GACzB,EAAQ,CAAE,OAAQ,QAAS,WAAU,QAAS,EAAS,QAAS,UAAW,KAAM,MAAO,IAAK,CAAC,EACvF,IAF4B,EAGrC,OAAS,EAAO,CAEd,OADI,EAAU,UAAU,GAAG,EAAK,EAAO,MAAM,EACtC,EACT,QAAU,CAAE,EAAU,OAAO,CAAE,CACjC,EACA,OAAO,EAAkB,CACnB,CAAC,EAAQ,GAAK,EAAM,SAAW,SAAW,CAAC,EAAM,WACrD,GAAc,EACd,EAAQ,CAAE,GAAG,EAAO,UAAS,UAAW,KAAM,MAAO,IAAK,CAAC,EAC7D,EACA,MAAM,aAAc,CAClB,GAAI,CAAC,EAAQ,GAAK,EAAM,SAAW,SAAW,CAAC,EAAM,UAAY,EAAM,UAAY,MAAQ,EAAM,UAAY,EAAM,SAAS,QAAS,MAAO,GAC5I,IAAM,EAAU,CAAE,8BAA+B,EAAM,SAAS,qBAAsB,QAAS,EAAM,OAAQ,EACvG,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,aAAc,UAAW,KAAM,MAAO,IAAK,CAAC,EACxE,GAAI,CACF,IAAM,EAAW,MAAM,EAAQ,IAAI,4BAA4B,EAAS,EAAU,OAAO,EACzF,GAAI,CAAC,EAAU,UAAU,EAAG,MAAO,GACnC,IAAM,EAAY,KAAK,MAAM,EAAS,UAAU,EAChD,GAAI,CAAC,OAAO,SAAS,CAAS,GAAK,GAAa,KAAK,IAAI,EAAG,MAAU,UAAU,uBAAuB,EAEvG,OADA,EAAQ,CAAE,GAAG,EAAO,OAAQ,QAAS,YAAW,MAAO,IAAK,CAAC,EACtD,EACT,OAAS,EAAO,CAEd,OADI,EAAU,UAAU,GAAG,EAAK,EAAO,WAAW,EAC3C,EACT,QAAU,CAAE,EAAU,OAAO,CAAE,CACjC,EACA,MAAM,OAAO,EAAc,CACzB,GAAI,CAAC,EAAQ,GAAK,EAAM,SAAW,SAAW,CAAC,EAAM,UAAY,EAAM,UAAY,MAAQ,CAAC,EAAM,UAAW,MAAO,GACpH,GAAI,EAAM,WAAa,KAAK,IAAI,EAE9B,OADA,EAAQ,CAAE,GAAG,EAAO,UAAW,KAAM,MAAO,SAAU,CAAC,EAChD,GAET,GAAI,CAAC,EAAK,QAAU,EAAK,OAAS,IAEhC,OADA,EAAQ,CAAE,GAAG,EAAO,MAAO,MAAO,CAAC,EAC5B,GAET,IAAM,EAAU,CAAE,8BAA+B,EAAM,SAAS,qBAAsB,QAAS,EAAM,QAAS,MAAK,EAC7G,EAAY,EAAM,EACxB,EAAQ,CAAE,GAAG,EAAO,OAAQ,SAAU,MAAO,IAAK,CAAC,EACnD,IAAI,EACJ,GAAI,CAEF,GADA,EAAU,MAAM,EAAQ,IAAI,kBAAkB,EAAS,EAAU,OAAO,EACpE,CAAC,EAAU,UAAU,EAAG,MAAO,EACrC,OAAS,EAAO,CACd,GAAI,CAAC,EAAU,UAAU,EAAG,MAAO,GACnC,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAE,SAAS,GAAS,CAAK,GAAK,CAAC,EAA4B,OAAvB,EAAK,EAAO,QAAQ,EAAU,GACnG,EAAU,WACZ,QAAU,CAAE,EAAU,OAAO,CAAE,CAG/B,OAFA,EAAQ,CAAE,OAAQ,UAAW,SAAU,KAAM,QAAS,KAAM,UAAW,KAAM,MAAO,IAAY,YAAc,YAAc,IAAK,CAAC,EAClI,MAAM,EAAQ,UAAU,CAAO,EACxB,IAAY,WACrB,EACA,SAAU,CACR,EAAW,GACX,EAAQ,eAAe,OAAO,oBAAoB,QAAS,CAAU,EACrE,EAAW,CACb,CACF,CACF,EC3Ia,IACX,qGAEW,IAAwB,yEAExB,IACX,kFAEW,IACX,kFAQI,GAA2C,unBAwEjD,EAEM,QAA+C,CACnD,IAAM,EAAqB,CAAC,EAE5B,IAAK,IAAI,EAAQ,EAAG,EAAQ,IAAM,GAAS,EACzC,EAAS,KAAK,OAAO,CAAK,CAAC,EAG7B,IAAK,IAAM,IAAS,CAClB,KAAM,KAAM,MAAO,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IACnF,EACE,EAAS,KAAK,OAAO,CAAK,CAAC,EAG7B,OAAO,CACT,EAEI,GAA2D,KAEzD,QAAuD,CAC3D,GAAI,GAA8B,OAAO,GAEzC,IAAM,EAAW,IAAoB,EAC/B,EAAS,IAAI,IAAY,EAAqB,EAEpD,IAAK,IAAM,KAAQ,GAAuB,CACxC,EAAO,IAAI,GAAG,EAAK,EAAE,EACrB,EAAO,IAAI,GAAG,EAAK,EAAE,EAErB,IAAK,IAAM,KAAU,EACnB,EAAO,IAAI,GAAG,IAAO,GAAQ,EAC7B,EAAO,IAAI,GAAG,IAAO,EAAO,EAAE,CAElC,CAIA,MAFA,IAA+B,EAExB,EACT,EAEa,IAAgC,GAC3C,OAAO,GAAY,EAAE,EAClB,QAAQ,QAAS,IAAI,EACrB,YAAY,EACZ,KAAK,EACL,MAAM,MAAM,EACZ,OAAO,OAAO,EACd,KAAK,GAAG,EAEA,IAA8B,GAA8B,CACvE,IAAM,EAAa,IAA6B,CAAQ,EAExD,GAAI,CAAC,EAAY,MAAO,GAExB,IAAM,EAAW,IAA0B,EAE3C,OAAO,EAAS,IAAI,CAAU,GAAK,EAAS,IAAI,EAAW,WAAW,IAAK,EAAE,CAAC,CAChF,EAEa,GAA8B,GACjB,EAAM,QAAQ,UAAW,GAAG,EAAE,WAET,EAAM,WAC1C,IAGL,IAA2B,CAAK,EAC3B,IAGF,KAGI,IACX,EACA,IAEwB,GAA2B,CAE/C,IAEA,GAAW,IAAS,EAAgB,IAEjC,MAGH,IAAkB,GAA2B,aAAa,KAAK,CAAK,EAEpE,IAA8B,GAS3B,CAPL,SAAS,KAAK,CAAK,EACnB,SAAS,KAAK,CAAK,EACnB,MAAM,KAAK,CAAK,EAChB,mBAAmB,KAAK,CAAK,EAC7B,MAAM,KAAK,CAAK,CAGX,EAAO,OAAO,OAAO,EAAE,QAAU,EAG7B,IACX,EACA,IACqB,CACrB,IAAM,EAAc,GAA4B,EAAO,GAAS,eAAe,EAE/E,GAAI,EACF,MAAO,CACL,MAAO,EACP,MAAO,iBACP,MAAO,CAAC,CAAW,CACrB,EAGF,IAAM,EAAkB,CAAC,EACrB,EAAQ,EAER,EAAM,QAAU,GAAI,GAAS,EAC5B,EAAM,KAAK,8CAA8C,EAE1D,IAA2B,CAAK,EAAG,GAAS,EAC3C,EAAM,KAAK,wDAAwD,EAEnE,IAAe,CAAK,EACpB,EAAM,KAAK,sCAAsC,EAD1B,GAAS,EAGrC,IAAM,EAAc,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAK,CAAC,EAGlD,MAAO,CACL,MAAO,EACP,MAJY,CAAC,iBAAkB,UAAW,OAAQ,QAAS,YAAY,EAAE,IAAgB,OAKzF,MAAO,EAAM,MAAM,EAAG,CAAC,CACzB,CACF,EC3MM,GAAY,GACf,GAA2D,YAC3D,GAAsC,OAEnC,IAA0B,IAAI,IAAI,CACtC,cACA,uBACA,qBACA,8BACA,+CACA,6BACF,CAAC,EAEK,GAAmB,GAAkC,CACzD,GAAI,OAAO,GAAU,SAAU,OAAO,KAEtC,IAAM,EAAU,EAAM,QAAQ,oBAAqB,EAAE,EAAE,KAAK,EAI5D,MAFI,CAAC,GAAW,IAAwB,IAAI,EAAQ,YAAY,CAAC,EAAU,KAEpE,CACT,EAEa,GAA8B,GAAkC,CAC3E,IAAM,EAAa,GAAuC,OAEpD,EAAS,GAAgB,CAAS,EAExC,GAAI,EAAQ,OAAO,EAEnB,GAAI,MAAM,QAAQ,CAAS,OACpB,IAAM,KAAQ,EACjB,GAAI,GAAQ,OAAO,GAAS,SAAU,CACpC,IAAM,EAAe,GAClB,EAA8C,KAC5C,EAA+B,OACpC,EAEA,GAAI,EAAc,OAAO,CAC3B,OAEG,GAAI,GAAa,OAAO,GAAc,UAAY,WAAY,EAAW,CAC9E,IAAM,EAAS,GAAiB,EAAmC,MAAM,EAEzE,GAAI,EAAQ,OAAO,CACrB,CAEA,GAAI,aAAiB,GAAoB,CACvC,IAAK,IAAM,KAAc,EAAM,YAAa,CAC1C,IAAM,EAAW,GAAgB,EAAW,OAAO,EAEnD,GAAI,EAAU,OAAO,CACvB,CAEA,IAAM,EAAU,GAAgB,EAAM,OAAO,EAE7C,GAAI,EAAS,OAAO,CACtB,CAEA,OAAO,IACT,EAOa,IAAyB,GAMhC,CACJ,GAAM,CAAE,UAAS,WAAY,EAE7B,GACE,EAAQ,aAAe,EAAQ,qBAC/B,EAAQ,mBAAqB,EAAQ,0BAErC,MAAU,UAAU,oCAAoC,EAE1D,IAAM,EAAY,EAAQ,QAAQ,OAAS,gBAAkB,EAAQ,QAAQ,aAAe,KACxF,EAA8B,OAAO,OAAO,CAC9C,OAAQ,EAAY,cAAgB,QACpC,MAAO,EAAY,YAAc,KACjC,cAAe,IACjB,CAAC,EACK,EAAQ,GAAS,CAAK,EACxB,EAAW,GACT,EAAW,GAA+B,CAC9C,EAAQ,OAAO,OAAO,CAAI,EAC1B,EAAM,IAAI,CAAK,CACjB,EACM,MACJ,CAAC,GAAY,CAAC,EAAQ,eAAe,OAAO,SAAW,EAAQ,eAAe,UAAU,EACpF,MAAmB,CACnB,EAAM,SAAW,WACnB,EAAQ,CAAE,OAAQ,cAAe,MAAO,KAAM,cAAe,IAAK,CAAC,CACvE,EAGA,OAFA,EAAQ,eAAe,OAAO,iBAAiB,QAAS,EAAY,CAAE,KAAM,EAAK,CAAC,EAE3E,CACL,MAAO,GAAS,CAAK,EACrB,MAAM,OAAO,EAA6E,CACxF,GAAI,CAAC,EAAQ,GAAK,EAAM,SAAW,QAAS,MAAO,GAEnD,GAAI,EAAM,OAAS,EAAM,QAGvB,OAFA,EAAQ,CAAE,OAAQ,QAAS,MAAO,WAAY,cAAe,IAAK,CAAC,EAE5D,GAGT,IAAM,EAAgB,GAA4B,EAAM,KAAM,EAAM,OAAO,EAE3E,GAAI,EAGF,OAFA,EAAQ,CAAE,OAAQ,QAAS,MAAO,SAAU,eAAc,CAAC,EAEpD,GAGT,EAAQ,CAAE,OAAQ,YAAa,MAAO,KAAM,cAAe,IAAK,CAAC,EACjE,GAAI,CACF,GAAI,CAAE,MAAM,EAAQ,SAAS,aAAa,EAAM,QAAS,CAAO,EAG9D,OAFA,EAAW,EAEJ,EAEX,OAAS,EAAO,CASd,OARK,EAAQ,GAEb,EAAQ,CACN,OAAQ,QACR,MAAO,GAAS,CAAK,IAAM,IAAM,mBAAqB,SACtD,cAAe,IACjB,CAAC,EANsB,EASzB,CAEA,GAAI,CAAC,EAAQ,EAAG,MAAO,GAEvB,EAAQ,CAAE,OAAQ,SAAU,MAAO,KAAM,cAAe,IAAK,CAAC,EAC9D,GAAI,CACF,MAAM,EAAQ,IAAI,eAAe,CAAE,aAAc,EAAM,IAAK,EAAG,EAAQ,cAAc,CACvF,OAAS,EAAO,CACd,GACE,aAAiB,IACjB,EAAM,aAAe,KACrB,EAAM,aAAe,2CAKrB,OAHA,EAAQ,CAAE,OAAQ,UAAW,MAAO,KAAM,cAAe,IAAK,CAAC,EAC/D,MAAM,EAAQ,UAAU,EAEjB,GAGT,GAAI,CAAC,EAAQ,EAAG,MAAO,GAEvB,IAAM,EAAS,GAAS,CAAK,EAiB7B,OAfI,IAAW,KAAO,IAAW,KAAO,IAAW,KACjD,EAAQ,CACN,OAAQ,QACR,MAAO,IAAW,IAAM,SAAW,SACnC,cAAe,IAAW,IAAM,KAAO,GAA2B,CAAK,CACzE,CAAC,EAEM,KAKT,EAAQ,CAAE,OAAQ,cAAe,MAAO,YAAa,cAAe,IAAK,CAAC,EAC1E,MAAM,EAAQ,UAAU,EAEjB,GACT,CAIA,OAHA,EAAQ,CAAE,OAAQ,UAAW,MAAO,KAAM,cAAe,IAAK,CAAC,EAC/D,MAAM,EAAQ,UAAU,EAEjB,EACT,EACA,SAAU,CACR,EAAW,GACX,EAAQ,eAAe,OAAO,oBAAoB,QAAS,CAAU,CACvE,CACF,CACF,EC5LM,GAAY,GAChB,OAAO,OAAO,CACZ,SAAU,EAAS,UAAY,GAC/B,WAAY,EAAS,YAAc,GACnC,UAAW,EAAS,WAAa,GACjC,uBAAwB,KACxB,qBAAsB,EACxB,CAAC,EACG,GAAW,GAAiC,CAChD,GAAM,CAAE,WAAU,SAAU,EAE5B,MACE,CAAC,CAAC,GACF,CAAC,CAAC,IACD,EAAM,YAAc,EAAS,UAAY,KACxC,EAAM,cAAgB,EAAS,YAAc,KAC7C,EAAM,aAAe,EAAS,WAAa,KAC3C,EAAM,yBAA2B,MAChC,EAAM,sBAAwB,EAAS,oBAAsB,KAEpE,EAGa,IAAwB,GAK/B,CACJ,IAAM,EAAU,GAAoB,EAAQ,OAAO,EAC7C,EAAU,EAAQ,QAExB,GACE,EAAQ,aAAe,EAAQ,qBAC/B,EAAQ,mBAAqB,EAAQ,0BAErC,MAAU,UAAU,qCAAqC,EAE3D,IAAI,EAAW,GACX,EAAa,EACb,EAAsB,CACxB,OAAQ,QACR,SAAU,EAAQ,KAClB,MAAO,GAAS,EAAQ,IAAI,EAC5B,MAAO,KACP,MAAO,EACT,EACM,EAAQ,GAAS,CAAK,EACtB,EAAW,GAAuB,CACtC,EAAQ,OAAO,OAAO,CAAI,EAC1B,EAAM,IAAI,CAAK,CACjB,EACM,MAAmB,CACvB,GAAc,EACd,EAAQ,CAAE,OAAQ,cAAe,SAAU,KAAM,MAAO,KAAM,MAAO,KAAM,MAAO,EAAM,CAAC,CAC3F,EACM,MACJ,CAAC,GACD,EAAM,SAAW,eACjB,CAAC,EAAQ,eAAe,OAAO,SAC/B,EAAQ,eAAe,UAAU,EAKnC,OAJA,EAAQ,eAAe,OAAO,iBAAiB,QAAS,CAAU,EAE7D,EAAQ,GAAG,EAAW,EAEpB,CACL,MAAO,GAAS,CAAK,EACrB,YAAe,EAAQ,GAAK,GAAQ,CAAK,EACzC,KAAmC,EAAU,EAAwB,CAC/D,CAAC,EAAQ,GAAK,EAAM,SAAW,SAAW,CAAC,EAAM,OAErD,EAAQ,CACN,GAAG,EACH,MAAO,OAAO,OAAO,CACnB,GAAG,EAAM,OACR,GAAQ,EACT,GAAI,IAAU,yBAA2B,CAAE,qBAAsB,EAAM,EAAI,CAAC,EAC5E,GAAI,IAAU,uBAAyB,CAAE,uBAAwB,IAAK,EAAI,CAAC,CAC7E,CAAC,EACD,MAAO,KACP,MAAO,EACT,CAAC,CACH,EACA,OAAQ,CACF,EAAQ,GAAK,EAAM,SAAW,SAAW,EAAM,UACjD,EAAQ,CAAE,GAAG,EAAO,MAAO,GAAS,EAAM,QAAQ,EAAG,MAAO,KAAM,MAAO,EAAM,CAAC,CACpF,EACA,MAAM,MAAO,CACX,GACE,CAAC,EAAQ,GACT,EAAM,SAAW,SACjB,CAAC,GAAQ,CAAK,GACd,CAAC,EAAM,OACP,CAAC,EAAM,SAEP,MAAO,GAET,IAAM,EAAS,EAAE,EACX,CAAE,QAAO,YAAa,EACtB,EAAwC,CAC5C,GAAI,EAAM,YAAc,EAAS,UAAY,IAAqC,CAAC,EAAhC,CAAE,SAAU,EAAM,QAAS,EAC9E,GAAI,EAAM,cAAgB,EAAS,YAAc,IAE7C,CAAC,EADD,CAAE,WAAY,EAAM,UAAW,EAEnC,GAAI,EAAM,aAAe,EAAS,WAAa,IAAuC,CAAC,EAAlC,CAAE,UAAW,EAAM,SAAU,EAClF,GAAI,EAAM,yBAA2B,KAEjC,CAAC,EADD,CAAE,uBAAwB,EAAM,sBAAuB,EAE3D,GAAI,EAAM,qBAAuB,CAAE,qBAAsB,EAAK,EAAI,CAAC,CACrE,EACA,EAAQ,CAAE,GAAG,EAAO,OAAQ,SAAU,MAAO,KAAM,MAAO,EAAM,CAAC,EACjE,IAAI,EACJ,GAAI,CAGF,GAFA,EAAS,MAAM,EAAQ,IAAI,sBAAsB,EAAS,EAAQ,cAAc,EAE5E,IAAW,GAAc,CAAC,EAAQ,EAAG,MAAO,GAEhD,GAAI,EAAO,KAAO,EAAQ,KAAK,IAAM,EAAO,QAAU,EAAQ,KAAK,MAGjE,OAFA,EAAW,EAEJ,EAEX,OAAS,EAAO,CACd,GAAI,IAAW,EAAY,MAAO,GAElC,IAAM,EACH,GAAoD,YACpD,GAA+B,OAWlC,MATI,CAAC,EAAQ,GAAK,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAG,EAAW,EAElE,EAAQ,CACN,GAAG,EACH,OAAQ,QACR,MAAO,sEACP,MAAO,EACT,CAAC,EAEI,EACT,CAWA,OAVA,EAAQ,CACN,OAAQ,QACR,SAAU,EACV,MAAO,GAAS,CAAM,EACtB,MAAO,KACP,MAAO,EACT,CAAC,EAED,MAAM,EAAQ,QAAQ,EAEf,EACT,EACA,SAAU,CACR,EAAW,GACX,EAAQ,eAAe,OAAO,oBAAoB,QAAS,CAAU,EACrE,EAAW,CACb,CACF,CACF,ECnKM,GAAY,GACf,GAA2D,YAC3D,GAAsC,OAEnC,IAA8B,GAClC,GAAQ,GAAW,gDAAgD,KAAK,CAAO,GAGpE,IAAyB,GAGhC,CACJ,IAAI,EAAiB,CAAE,KAAM,UAAW,QAAS,GAAO,MAAO,IAAK,EAC9D,EAAQ,GAAS,CAAO,EACxB,EAAU,GAAiB,CAC/B,EAAU,EACV,EAAM,IAAI,CAAO,CACnB,EACI,EAAQ,GACR,EAAmD,KACnD,EAA+B,KAC/B,EAAW,GACT,MAAc,CAClB,GAAM,MAAM,EACZ,EAAO,KACP,EAAQ,GACR,EAAQ,KACR,EAAO,CAAE,KAAM,UAAW,QAAS,GAAO,MAAO,IAAK,CAAC,CACzD,EACM,MAAc,CAClB,IAAM,EAAa,IAAI,gBAIvB,MAHA,GAAO,EACP,EAAO,CAAE,GAAG,EAAS,QAAS,GAAM,MAAO,IAAK,CAAC,EAE1C,CACL,OAAQ,EAAW,OACnB,cAAiB,CAAC,GAAY,IAAS,GAAc,CAAC,EAAW,OAAO,OAC1E,CACF,EACM,MACA,GAAS,EAAM,SAAW,KAAK,IAAI,GACrC,EAAQ,KACR,EAAO,CAAE,KAAM,UAAW,QAAS,GAAO,MAAO,IAAK,CAAC,EAEhD,IAGF,GAEH,EAAW,GACA,GAAS,CAEjB,IAAW,IACd,oDACA,mDAGN,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,QACA,SACA,MAAM,QAAQ,EAAiB,CAC7B,GAAI,GAAY,EAAQ,SAAY,EAAQ,OAAS,WAAa,EAAQ,OAAS,OACjF,MAAO,GAET,IAAM,EAAe,EAAQ,KACvB,EAAa,EAAQ,KAAK,EAEhC,GAAI,CAAC,EAAY,MAAO,GAExB,EAAQ,KACR,IAAM,EAAU,EAAM,EACtB,GAAI,CAQF,OAPA,MAAM,EAAQ,IAAI,qBAAqB,CAAE,MAAO,CAAW,EAAG,CAAO,EAEhE,EAAQ,UAAU,GAEvB,EAAQ,EACR,EAAO,CAAE,KAAM,OAAQ,QAAS,GAAO,MAAO,IAAK,CAAC,EAE7C,IAL0B,EAMnC,OAAS,EAAO,CAId,OAHI,EAAQ,UAAU,GACpB,EAAO,CAAE,KAAM,EAAc,QAAS,GAAO,MAAO,EAAQ,CAAK,CAAE,CAAC,EAE/D,EACT,CACF,EACA,MAAM,OAAO,EAAc,EAAkB,CAC3C,GAAI,GAAY,EAAQ,SAAW,EAAQ,OAAS,OAAQ,MAAO,GAEnE,IAAM,EAAc,IAAY,OAA6B,EAAjB,EAAQ,KAAK,EAEzD,GAAI,CAAC,EAAa,MAAO,GAEzB,IAAM,EAAU,EAAM,EACtB,GAAI,CACF,IAAM,EAAS,MAAM,EAAQ,IAAI,oBAC/B,CAAE,MAAO,EAAa,KAAM,EAAK,KAAK,CAAE,EACxC,CACF,EAWA,MATI,CAAC,EAAQ,UAAU,IAEvB,EAAQ,EACR,EAAQ,CAAE,MAAO,EAAO,MAAO,QAAS,KAAK,MAAM,EAAO,UAAU,CAAE,EAElE,EAAO,GAAU,IAErB,EAAO,CAAE,KAAM,WAAY,QAAS,GAAO,MAAO,IAAK,CAAC,EAEjD,GACT,OAAS,EAAO,CAGd,OAFI,EAAQ,UAAU,GAAG,EAAO,CAAE,KAAM,OAAQ,QAAS,GAAO,MAAO,EAAQ,CAAK,CAAE,CAAC,EAEhF,EACT,CACF,EACA,MAAM,QAAQ,EAAkB,CAC9B,GAAI,GAAY,EAAQ,SAAW,EAAQ,OAAS,YAAc,EAAO,GAAK,CAAC,EAC7E,MAAO,GAET,IAAM,EAAc,GAA2B,CAAQ,EAEvD,GAAI,EAGF,OAFA,EAAO,CAAE,KAAM,WAAY,QAAS,GAAO,MAAO,CAAY,CAAC,EAExD,GAGT,IAAM,EAAc,EACpB,EAAQ,KACR,IAAM,EAAU,EAAM,EAClB,EACJ,GAAI,CACF,EAAS,MAAM,EAAQ,IAAI,qBACzB,CAAE,MAAO,EAAY,MAAO,aAAc,CAAS,EACnD,CACF,CACF,OAAS,EAAO,CACd,GAAI,EAAQ,UAAU,EAAG,CACvB,IAAM,EAAS,GAAS,CAAK,EACvB,EAAgB,GAA2B,CAAK,EAEtD,GAAI,IAAW,KAAO,IAAW,IAa/B,OAZI,IAA2B,CAAa,GAAK,EAAY,SAAW,KAAK,IAAI,GAC/E,EAAQ,GACR,EAAO,CAAE,KAAM,UAAW,QAAS,GAAO,MAAO,IAAK,CAAC,IAEvD,EAAQ,EACR,EAAO,CACL,KAAM,WACN,QAAS,GACT,MAAO,GAAiB,+CAC1B,CAAC,GAGI,GAGT,GAAI,IAAW,KAAO,EAAY,QAAU,KAAK,IAAI,EAInD,MAHA,GAAQ,EACR,EAAO,CAAE,KAAM,WAAY,QAAS,GAAO,MAAO,EAAQ,CAAK,CAAE,CAAC,EAE3D,GAGT,EAAQ,GAER,EAAO,CAAE,KAAM,YAAa,QAAS,GAAO,MAAO,IAAK,CAAC,EACzD,EAAQ,WAAW,CACrB,CAEA,MAAO,EACT,CAQA,OANK,EAAQ,UAAU,GAEvB,EAAQ,GACR,EAAO,CAAE,KAAM,EAAQ,QAAS,GAAO,MAAO,IAAK,CAAC,EACpD,EAAQ,WAAW,EAEZ,IAN0B,EAOnC,EACA,SAAU,CACR,EAAM,EACN,EAAW,EACb,CACF,CACF,ECjMa,IAAyB,GAA4B,CAChE,IAAM,EAAQ,GACZ,CAAE,OAAQ,OAAQ,UAAW,IAAK,CACpC,EACI,EAAkC,KAClC,EAAa,EACb,EAAuE,KACrE,MAAmB,CACvB,GAAc,EACd,GAAS,MAAM,EACf,EAAU,KACV,EAAQ,KACR,EAAM,IAAI,CAAE,OAAQ,OAAQ,UAAW,IAAK,CAAC,CAC/C,EACM,EAAW,GACf,CAAC,EAAQ,eAAe,OAAO,SAAW,EAAQ,eAAe,UAAU,EAY7E,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,aACA,SAdgB,IACZ,IAAU,CAAC,EAAQ,EAAM,OAAO,GAAK,EAAM,WAAa,KAAK,IAAI,IAAI,EAAW,EAE7E,GACL,GACA,EAAQ,CAAO,GACf,EAAM,QAAQ,sBAAwB,EAAQ,qBAC9C,EAAM,QAAQ,4BAA8B,EAAQ,4BAQtD,MAAM,aAAa,EAAkB,EAAmD,CACtF,GAAI,EAAS,MAAM,IAAI,aAAa,mCAAoC,mBAAmB,EAE3F,GAAI,CAAC,EAAQ,CAAO,EAClB,MAAM,IAAI,aAAa,oCAAqC,YAAY,EAE1E,IAAM,EAAO,GAAkC,EAAQ,eAAe,eAAe,EAErF,GACE,CAAC,GACD,EAAK,sBAAwB,EAAQ,qBACrC,EAAK,4BAA8B,EAAQ,0BAE3C,MAAU,UAAU,kCAAkC,EAExD,EAAW,EACX,IAAM,EAAS,EACT,EAAQ,IAAI,gBAClB,EAAU,EACV,IAAM,MAAe,EAAM,MAAM,EACjC,EAAQ,eAAe,OAAO,iBAAiB,QAAS,EAAQ,CAAE,KAAM,EAAK,CAAC,EAC9E,IAAM,MAAkB,IAAW,GAAc,CAAC,EAAM,OAAO,SAAW,EAAQ,CAAO,EACzF,EAAM,IAAI,CAAE,OAAQ,aAAc,UAAW,IAAK,CAAC,EACnD,GAAI,CACF,IAAM,EAAS,MAAM,EAAI,OACvB,CAAE,UAAS,EACX,CAAE,OAAQ,EAAM,OAAQ,YAAW,gBAAiB,CAAK,CAC3D,EAEA,GAAI,CAAC,EAAU,EAAG,MAAO,GAEzB,IAAM,EAAY,KAAK,MAAM,EAAO,UAAU,EAE9C,GACE,EAAO,eAAiB,YACxB,CAAC,OAAO,SAAS,CAAS,GAC1B,GAAa,KAAK,IAAI,EAEtB,MAAU,UAAU,mCAAmC,EAKzD,MAHA,GAAQ,CAAE,UAAS,WAAU,EAC7B,EAAM,IAAI,CAAE,OAAQ,YAAa,WAAU,CAAC,EAErC,EACT,QAAU,CACR,EAAQ,eAAe,OAAO,oBAAoB,QAAS,CAAM,EAE7D,IAAW,IACb,EAAU,KAEL,GAAO,EAAM,IAAI,CAAE,OAAQ,OAAQ,UAAW,IAAK,CAAC,EAE7D,CACF,CACF,CACF,ECpEM,GAAQ,GAAgC,IAAI,EAC9C,GAAuB,KACvB,GAAwC,KAG/B,GAAkD,GAAS,EAAK,EAEhE,KACX,EACA,IAEA,OAAO,OAAO,CACZ,UACA,cACA,MAAO,EAAQ,KACf,aACE,EAAQ,QAAQ,OAAS,eACpB,EAAQ,QAAQ,YAAY,qBAAuB,EAAQ,KAAK,GACjE,KACN,eACE,EAAQ,QAAQ,OAAS,eAAiB,EAAQ,QAAQ,gBAAkB,IAChF,CAAC,EAiBU,IAAuB,GAAuC,CACzE,IAAM,EAAQ,OAAO,uBAAuB,EAK5C,MAJA,IAAQ,EACR,GAAU,EACV,GAAM,IAAI,IAAI,EAEP,CACL,YAAe,KAAU,EACzB,QAAQ,EAA8B,CAChC,KAAU,GAAO,GAAM,IAAI,CAAK,CACtC,EACA,SAAU,CACJ,KAAU,IAEd,GAAQ,KACR,GAAU,KACV,GAAM,IAAI,IAAI,EAChB,CACF,CACF,EAGa,OAA4D,CACvE,GAAI,CACF,OAAO,IAAS,QAAQ,GAAK,IAC/B,MAAQ,CACN,OAAO,IACT,CACF,EAEa,OAA6B,CACxC,IAAS,OAAO,CAClB,EAGa,IAAwB,SAA2B,CAC9D,MAAM,IAAS,QAAQ,CACzB,EC1FM,IAAqC,CACzC,0BACA,qDACF,EAEa,QAA8C,CAIrD,YAAO,eAAmB,KAE9B,IAAK,IAAM,KAAO,IAChB,GAAI,CACF,eAAe,WAAW,CAAG,CAC/B,OAAS,EAAK,CACZ,QAAQ,KAAK,gDAAiD,CAAG,CACnE,CAEJ;;kpCCpCA,aAgNU,EAAc,QACrB,QAQE,EAAG,EARL,GASI,KADF,CACE,8GAIY,4EAKA,4BAED,CAAI,OADd,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,WAXpB,CAAG,MAeH,EAAG,EAfH,EAAG,GAgBD,EAAG,EADL,CAAG,EAEC,KADF,CACE,qBACO,kCAEI,iDAEA,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAW,GAAE,cAAa,CAC5B,MAVH,CAAG,IADL,CAAG,MAeH,EAAM,EAfN,EAAG,KAvBL,aAEY,EAAW,SAAX,CAAW,YAFvB,gBAMY,CAAI,GAgCd,EAAM,WAA+E,CAAI,gBAtC3F,EAGW,CAAa,MAHxB,IA2CO,EAAa,QACpB,QAOE,EAAG,EAPL,GAQI,KADF,CACE,8GAIY,mFAKA,4BAED,CAAI,OADd,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,WAXpB,CAAG,MAeH,EAAG,EAfH,EAAG,GAgBD,KADF,CACE,wHAIY,4EAIF,oCAEE,YACA,2BAED,CAAI,OADd,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,WAbnB,CAAG,MAiBH,EAAG,EAjBH,EAAG,GAkBD,EAAG,EADL,CAAG,MACD,CAAG,EACD,6DAGW,qBACJ,4BACI,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,EACpB,EAAU,CACZ,IAED,yCAEW,sCAEJ,4BACI,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAU,GAAE,cAAa,CAC3B,MArBH,CAAG,IADL,CAAG,MA0BH,EAAM,EA1BN,EAAG,KAvCL,aAEY,EAAU,SAAV,CAAU,YAFtB,gBAKY,CAAI,GA4Dd,EAAM,WAA+E,CAAI,gBAjE3F,EAGW,CAAY,MAHvB,IAsEO,EAAc,+BAEnB,EAAG,UAAH,CAAG,EACD,GAAU,6IAMV,EAAG,OACD,KADF,CACE,qBACO,kCAEI,gEAJb,CAAG,IAPL,CAAG,MAAH,CAAG,aAkBH,EAAG,UAAH,CAAG,EACD,GAAU,6IAOV,EAAG,OACD,KADF,CACE,qBACO,kCAEI,gEAJb,CAAG,IARL,CAAG,MAAH,CAAG,aAmBH,EAAG,MAKD,EAAG,IALL,CAAG,SAKD,CAAG,EACD,qCAEW,yCAEK,EAAM,MAAK,IAE3B,6BACO,kCAEI,gEAVb,CAAG,IALL,CAAG,MAAH,CAAG,aAsBH,EAAG,MAED,EAAG,IAFL,CAAG,KAGC,KADF,CACE,mCAEW,yCAEK,EAAM,MAAK,MAL7B,CAAG,IAFL,CAAG,MAAH,CAAG,aAYH,QAOE,EAAG,EAPL,OAOE,CAAG,EACD,gJAKY,yEAIA,aACA,4BAED,CAAI,OADd,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,SAGrB,0JAKY,iFAIA,aACA,4BAED,CAAI,OADd,OAAU,UAAE,CAAY,OAAxB,MAAU,KAAE,EAAY,WA1B3B,CAAG,UAAH,EAAG,aA+BD,kBAME,EAAG,EANL,MAME,EAAG,QACM,EAAG,EAAG,EAAG,CAAC,QAAK,IAAO,KAC3B,2DACe,EAAO,EAAG,CAAQ,EAAC,iBACjB,CAAQ,EAAC,QAAU,GAAK,IAAY,SAFrD,OAFJ,CAAG,MAQH,EAAG,EARH,EAAG,GASD,EAAM,EADR,CAAG,MACD,EAAM,MAAN,CAAM,UAAN,EAAM,aAEJ,EAAK,UAAL,EAAK,MAAL,CAAK,qBAAE,CAAQ,EAAC,MAAM,KAAK,GAAG,QAA9B,CAAK,aADH,CAAQ,EAAC,MAAM,QAAM,SAF3B,CAAG,IAdL,sEAEgB,CAAQ,EAAC,QAAU,CAAC,KAFpC,iBAGa,CAAQ,EAAC,KAAK,QAYf,CAAQ,EAAC,KAAK,QAf1B,cADE,CAAQ,cAuBZ,EAAG,OACD,EAAG,EADL,CAAG,EAEC,KADF,CACE,qBACO,kCAEI,wDAEA,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAW,GAAE,cAAa,CAC5B,MAVH,CAAG,IADL,CAAG,MAeH,EAAM,EAfN,EAAG,KA5DL,aAEY,EAAW,SAAX,CAAW,YAFvB,gBAKY,CAAI,GAsEd,EAAM,WAA+E,CAAI,gBA3E3F,EAGW,CAAa,MAHxB,YAxEE,EAAK,QAAQ,OAAS,WAAU,KAkB3B,EAAK,QAAQ,OAAS,kBAAiB,OAmBvC,EAAK,QAAQ,OAAS,YAAW,OAsBjC,EAAK,QAAQ,OAAS,UAAS,yBA9WnC,EAAQ,OAAO,YACf,EAAO,GAAU,EAAM,KAAK,EAC9B,EAAQ,EAAO,EAAE,EACjB,EAAO,EAAO,EAAE,EAChB,EAAW,EAAO,EAAE,EACpB,EAAe,EAAO,EAAE,EACxB,EAAa,EAAsB,IAAI,EACvC,EAA2C,EAAM,QACjD,EAA0C,EAAM,QAChD,EAA2C,EAAM,QAE/C,EAAI,MAAY,EAAK,QAAQ,OAAO,EACpC,EAAS,MACb,EAAK,QAAQ,OAAS,YAAc,EAAK,QAAQ,OAAS,iBAAiB,EAEvE,EAAe,MACnB,EAAK,QAAQ,OAAS,UAAY,EAAI,EAAK,QAAQ,OAAS,OAAS,EAAI,CAAC,EAEtE,EAAQ,MAAY,GAAwB,EAAC,CAAQ,IACrD,EAAW,MACf,EAAK,QAAQ,OAAS,OAClB,gIACA,EAAK,QAAQ,OAAS,WACpB,+CACA,IAAI,EAEN,EAAY,QAAY,CAAU,GAAI,EAAK,QAAQ,KAAK,EACxD,EAAqB,QAEvB,GAAI,UACJ,MAAO,iBACP,KAAM,QACN,kBAAmB,GACnB,cAAa,EAAE,CAAe,IAAK,GAAC,GAAK,CAAS,EAAG,UAAY,YACjE,eAAc,EAAE,CAAS,EAAG,OAAS,OACrC,QAAS,IAGT,GAAI,SACJ,MAAO,kBACP,KAAM,QACN,kBAAmB,GACnB,cAAa,EACX,CAAe,EAAG,EACd,WACA,CAAe,IAAK,GAAC,GAAK,GACxB,UACA,YACR,eAAc,EAAE,CAAS,EAAG,OAAS,OACrC,QAAS,IAGT,GAAI,UACJ,MAAO,iBACP,KAAM,SACN,kBAAmB,GACnB,cAAa,EAAE,CAAe,EAAG,EAAI,SAAW,UAChD,eAAc,EAAE,CAAS,EAAG,OAAS,OACrC,QAAS,KAIP,EAAiB,GAAuB,IAC5C,EAAM,eAAc,IAEhB,CAAI,MAAK,CAAW,GAAE,cAAa,WAEvC,EAAa,UACP,EAAO,EAAG,CAAK,EAAC,KAAI,EAErB,GAEA,EAAM,QAAQ,CAAO,CAC5B,EAEM,EAAgB,GAAuB,IAC3C,EAAM,eAAc,IAEhB,CAAI,MAAK,CAAU,GAAE,cAAa,WAEtC,EAAa,UACP,EAAO,EAAG,CAAK,EAAC,KAAI,EACpB,EAAc,EAAG,CAAI,EAAC,KAAI,GAE3B,GAAO,CAAK,gBAAgB,KAAK,CAAc,MAEpD,EAAO,EAAC,EACH,EAAM,OAAO,EAAgB,CAAO,EAC3C,EAEM,MAAmB,MACnB,CAAI,aAEF,EAAU,EAAG,CAAU,GAAE,cAAgC,qBAAqB,KAEhF,GAAU,CAAK,EAAW,eAAc,aAEtC,EAAO,EAAG,CAAK,EAAC,KAAI,EAErB,MAEL,EAAa,QACb,EAAO,EAAC,EACH,EAAM,QAAQ,CAAO,EAC5B,EAEM,EAAiB,GAAuB,IAC5C,EAAM,eAAc,IAEhB,CAAI,MAAK,CAAW,GAAE,cAAa,WAEvC,EAAa,UACP,EAAkB,GAA0B,EAAC,CAAQ,MAEvD,EAAiB,GACnB,EAAa,YAGf,MAEI,CAAQ,MAAK,CAAY,EAAE,GAC7B,EAAa,uCAAsC,QAGrD,KAEM,EAAK,EAAG,KACd,EAAW,EAAC,IACZ,EAAe,EAAC,EACX,EAAM,QAAQ,CAAK,CAC1B,EAEI,EAAe,UAEnB,OAAc,KACN,EAAO,EAAK,QAAQ,KAEtB,IAAS,eACX,EAAW,EAAC,IACZ,EAAe,EAAC,GAGd,IAAS,QAAM,EAAE,EAAO,EAAC,GAG1B,IAAS,WAAa,IAAS,QAC/B,IAAiB,WAAa,IAAS,cAExC,EAAQ,EAAC,EAGP,IAAS,GAAY,EAAE,EAAa,MAExC,EAAe,CACjB,CAAC,EAED,OAAc,KACN,EAAQ,YAAY,EAAM,OAAQ,GAAI,YAE/B,CACX,cAAc,CAAK,IACnB,EAAQ,EAAC,IACT,EAAO,EAAC,IACR,EAAW,EAAC,IACZ,EAAe,EAAC,EAChB,EAAM,MAAK,CACb,CACF,CAAC,MAGF,EAAG,UAAH,CAAG,iBAKgB,CAAS,EAAG,OAAS,SAAS,YAClC,CAAS,EAAG,WAAa,QAAQ,EAL9C,2BACE,CAAK,gBACQ,WACL,gGAGM,CAAe,yBACN,GAAU,IAC3B,CAAI,MAAK,CAAS,GAAI,IAAU,GAAC,EAAI,CAAe,EAAG,GAAG,EAAM,MAAK,CAC5E,4BAIC,EAAC,UAAD,EAAC,MAAD,CAAC,cAA6B,CAAW,QAAzC,CAAC,aADC,CAAW,oCAIb,EAAC,UAAD,EAAC,MAAD,CAAC,cAA6B,CAAY,QAA1C,CAAC,cADC,CAAY,aAhBlB,CAAG,UAAH,EAAG,cAAgF,CAAI,QAAvF,CAAG,KAFI,CCvLR,IAAa,IAAkB,GAAwB,IAAI,EAK9C,IAAoB,GAAwB,IAAI,EAmBhD,IAAsB,GAAqC,EAE3D,IAAe,GAAmB,CAAC,CAAC,EChB3C,GAAmB,GACvB,IAAa,aACb,IAAa,aACb,EAAS,SAAS,YAAY,GAC9B,EAAS,SAAS,QAAQ,EAEtB,IAAkB,GAAoD,CAC1E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAU,EAAM,KAAK,EAO3B,OALK,GAEiB,EAAQ,QAAQ,gBAAiB,EAAE,EAAE,QAAQ,QAAS,EAC3D,EAAc,MAAM,GAAG,EAAE,IAHrB,IAMvB,EAEM,QACA,OAAO,WAAe,KAAe,CAAC,WAAmB,KAE5C,WAAgE,SAEjE,KAAO,KAGnB,IAAW,GAAG,IAAuC,CACzD,IAAM,EAAM,IAAe,EAEtB,KAEL,IAAK,IAAM,KAAO,EAAM,CACtB,IAAM,EAAQ,EAAI,GAElB,GAAI,OAAO,GAAU,UAAY,EAAM,OAAS,EAC9C,OAAO,CAEX,CAGF,EAGM,GAAkB,IADE,GAAQ,iBAAkB,SAAU,aAAa,GAAK,IACxB,GAAK,kBACvD,GAAwB,GAAgB,WAAW,iBAAiB,EACtE,GACA,kBAAkB,KAChB,GAAuB,GAAgB,EAAe,EAAI,OAAS,QACnE,IAAqB,KAAyB,QAAU,MAAQ,KAEhE,GAAqB,GAAG,GAAqB,KAAK,GAAsB,SACrD,GAAG,IAAH,EAA2B,GAA3B,ED9DzB,ICgEM,IAAoB,GAA6B,CACrD,IAAM,EAAQ,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAEhD,GAAI,EAAM,QAAU,EAAG,OAAO,EAE9B,IAAM,EAAO,EAAM,EAAM,OAAS,GAC5B,EAAa,EAAM,EAAM,OAAS,GAClC,EAAe,EAAK,SAAW,EAE/B,EAAmB,CADE,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,IAC3C,EAAkB,SAAS,CAAU,EAO9D,OAJI,EAAM,SAAW,GAAK,GAAgB,EACjC,EAGF,EAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAChC,EAEM,KAAqB,EAAkB,EAAkB,EAAO,KAAe,CACnF,IAAM,EAAqB,EAAS,SAAS,GAAG,EAAI,EAAW,GAAG,EAAS,GACrE,EAAmB,GAAQ,CAAC,GAAgB,CAAQ,EAAI,IAAI,IAAS,GAE3E,GAAI,IAAa,aAAe,IAAa,YAC3C,MAAO,GAAG,EAAmB,4BAG/B,GAAI,EAAS,WAAW,iBAAiB,EACvC,MAAO,GAAG,EAAmB,IAAI,IAAW,IAG9C,GAAI,EAAS,SAAS,GAAG,EAAG,CAC1B,IAAM,EAAa,IAAiB,CAAQ,EAE5C,GAAI,EAAY,MAAO,GAAG,EAAmB,mBAAmB,IAAa,GAC/E,CAEA,MAAO,GAAG,GAAqB,KAAK,IACtC,EAEM,GAAgB,GAAoD,CACxE,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAU,EAAM,KAAK,EAI3B,OAFK,EAEE,EAAQ,QAAQ,OAAQ,EAAE,EAFZ,IAGvB,EAEM,IAAmB,GAAuC,CAC9D,GAAI,CAAC,EAAM,OAAO,KAElB,IAAM,EAAW,EAAK,QAAQ,OAAQ,EAAE,EAExC,OAAO,EAAS,SAAS,SAAS,EAAI,EAAW,GAAG,EAAS,QAC/D,EAEM,IAAmB,GAAoD,CAC3E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAa,CAAC,CAAO,EAEtB,gBAAgB,KAAK,CAAO,GAC/B,EAAW,QAAQ,UAAU,EAAQ,QAAQ,QAAS,EAAE,GAAG,EAG7D,IAAK,IAAM,KAAa,EACtB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAS,EAE7B,GAAI,EAAI,SAAU,OAAO,EAAI,QAC/B,MAAQ,CAER,CAGF,OAAO,IACT,EAEM,GAA2B,GAAsC,CACrE,GAAI,CAAC,EAAW,MAAO,GAGvB,GAAI,OAAO,OAAW,IAAa,MAAO,GAE1C,IAAM,EAAO,IAAgB,CAAS,EAEtC,GAAI,CAAC,EAAM,MAAO,GAElB,IAAM,EAAc,EAAK,QAAQ,QAAS,EAAE,EACtC,EAAc,GAAgB,CAAW,EACzC,EAAiB,EAAY,SAAS,GAAG,EAO/C,MAJA,EAAI,CAAC,GAAgB,OAAO,SAAS,QAAQ,GAAK,CAAC,GAAe,CAAC,EAKrE,EAEM,OAAmC,CACvC,GAAI,OAAO,OAAW,IAAa,CACjC,GAAM,CAAE,WAAU,WAAU,QAAS,OAAO,SAE5C,MAAO,GAAG,IAAkB,EAAU,EAAU,CAAI,EAAE,QACxD,CAEA,OAAO,EACT,EAEM,QAAsC,CAC1C,GAAI,OAAO,OAAW,IAAa,OAAO,KAE1C,GAAI,CACF,OAAO,GAAa,OAAO,cAAc,iCAA4B,GAAK,IAAI,CAChF,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,qCAAsC,CAAG,EAE/C,IACT,CACF,EAEM,IAA8B,GAAuC,CACzE,GAAI,CAAC,EAAM,OAAO,KAIlB,GAFI,OAAO,OAAW,KAElB,OAAO,SAAS,WAAa,SAAU,OAAO,EAElD,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAI,EAQxB,OANI,EAAI,WAAa,SACnB,EAAI,SAAW,SAER,EAAI,SAAS,EAAE,QAAQ,MAAO,EAAE,GAGlC,CACT,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,2CAA4C,CAAG,EAErD,CACT,CACF,EAEM,GAAyB,GAAa,GAAQ,wBAAyB,cAAc,GAAK,EAAE,EAE9F,GAAa,GAAa,IAAe,CAAC,EAE9C,GAAI,OAAO,OAAW,KAAe,GACnC,GAAI,CACF,IAAM,EAAa,IAAI,IAAI,EAAU,EAAE,SACjC,EAAW,OAAO,SAAS,SAC3B,EACJ,IAAa,aAAe,IAAa,aAAe,EAAS,SAAS,YAAY,EAClF,EAAsB,CAAC,YAAa,WAAW,EAAE,SAAS,CAAU,EACpE,EAAsB,EAAW,SAAS,YAAY,EAG5D,GAAI,GAAe,EAAE,GAAuB,GAC1C,GAAa,UACR,GAAI,IAAwB,IAAa,aAAe,IAAa,aAC1E,GAAa,UACR,GAAI,GAAe,EAAqB,CAC7C,IAAM,EAAa,EAAS,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAClD,EAAe,EAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAExD,GAAc,GAAgB,IAAe,IAC/C,GAAa,KAEjB,CACF,MAAQ,CACN,GAAa,IACf,CAIE,IAAc,CAAC,GAAwB,EAAU,IACnD,GAAa,MAGf,IAAM,GAAqB,GAAuC,CAChE,GAAI,CAAC,EAAM,OAAO,KAElB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,EAAK,SAAS,GAAG,EAAI,EAAO,GAAG,EAAK,EAAE,EAM1D,MALA,GAAI,SAAW,EAAI,WAAa,SAAW,OAAS,MACpD,EAAI,SAAW,EAAI,SAAS,QAAQ,OAAQ,EAAE,EAAI,eAClD,EAAI,OAAS,GACb,EAAI,KAAO,GAEJ,EAAI,SAAS,EAAE,QAAQ,MAAO,EAAE,CACzC,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,oCAAqC,CAAG,EAE9C,IACT,CACF,EAWM,GARJ,IACE,IACE,KACG,GAAwB,EAAsB,EAAI,GAAyB,OAC5E,GAAa,GAAmB,CAAC,GACjC,EACJ,CACF,GAAK,GAIL,GAAkB,EAAU,GAAK,GAAkB,GAAmB,CAAC,EAGzE,IAAM,IAAgB,GAAyD,CAC7E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAa,EAAM,KAAK,EAAE,YAAY,EAM5C,OAJI,IAAe,OAAe,OAE9B,CAAC,QAAS,OAAQ,KAAK,EAAE,SAAS,CAAU,EAAU,QAEnD,IACT,OAEiD,CAC/C,GAAI,OAAO,OAAW,IAAa,OAAO,KAE1C,GAAI,CAGF,OAAO,IAFK,OAAO,cAAc,iCAAgC,GAAK,IAE/C,CACzB,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,qCAAsC,CAAG,EAE/C,IACT,CACF,GAEgD,ECzThD,IAAM,GAAiB,UAOjB,IAAmB,GAA0B,CACjD,IAAM,EAAU,EAAM,KAAK,EAAE,QAAQ,OAAQ,EAAE,EAM/C,MAJI,CAAC,GAAW,IAAY,IACnB,GAGF,EAAQ,WAAW,GAAG,EAAI,EAAU,IAAI,GACjD,EAEa,IAAgB,GAA4B,CACvD,IAAM,EAAa,EAAI,KAAK,EAAE,QAAQ,OAAQ,EAAE,EAC1C,EAAa,CAAC,CAAU,EAEzB,gBAAgB,KAAK,CAAU,GAClC,EAAW,QAAQ,UAAU,EAAW,QAAQ,QAAS,EAAE,GAAG,EAGhE,IAAK,IAAM,KAAa,EACtB,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAS,EAEhC,GAAI,CAAC,CAAC,QAAS,QAAQ,EAAE,SAAS,EAAO,QAAQ,EAC/C,SAGF,MAAO,CACL,QAAS,EAAO,OAChB,UAAW,IAAgB,EAAO,QAAQ,CAC5C,CACF,MAAQ,CAER,CAGF,MAAO,CACL,QAAS,GAAc,wBACvB,UAAW,EACb,CACF,ECpCI,GAAwC,KACxC,GAAa,GACb,GAAe,GAEb,OAAgC,CACpC,IAAM,EAAW,GAAI,GAAe,EAGpC,OAAO,IAFU,GAAY,EAAS,KAAK,GAAM,EAEtB,CAC7B,EAEM,IAAY,GACf,GAA2D,YAC3D,GAAsC,OAI5B,QAA0C,CACrD,GAAM,CAAE,UAAS,aAAc,GAAY,EAE3C,MAAO,CACL,UACA,WACF,CACF,EAaa,QAA8C,CACzD,GAAM,CAAE,UAAS,aAAc,GAAY,EAgB3C,OAdI,CAAC,IAAgB,KAAe,GAAW,KAAiB,KAC9D,GAAe,IAAI,GAAiB,CAClC,UACA,YACA,eAAgB,WAChB,eAAgB,GAChB,QAAU,GAAU,CACd,IAAS,CAAK,IAAM,KAAK,GAAqB,CACpD,CACF,CAAC,EACD,GAAa,EACb,GAAe,GAGV,EACT,EAEa,OAAoB,IAAoB,EAAE,MCiE1C,KACX,EACA,EACA,EAA2C,CAAC,IACD,CAC3C,IAAM,EAAe,GAAkC,CACrD,oBAAqB,EAAkB,kBACvC,0BAA2B,EAAkB,uBAC/C,CAAC,EAED,OAAO,GAAY,EAAE,IAAI,QACvB,SACA,iCAAiC,mBAAmB,CAAY,IAChE,CACE,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,QACP,YAAa,GACb,gBAAiB,CACnB,CACF,CACF,EAEa,IAAyC,MACpD,EACA,EACA,EAA2C,CAAC,IACR,CACpC,IAAM,EAAe,GAAkC,CACrD,oBAAqB,EAAkB,kBACvC,0BAA2B,EAAkB,uBAC/C,CAAC,EACK,EAAO,GACX,CACE,KAAM,WACN,cAAe,CACjB,EACA,CACF,EAWA,OAAO,GAAoB,MATT,GAAY,EAAE,IAAI,QAAiB,OAAQ,gBAAiB,CAC5E,OAAQ,EAAQ,OAChB,UAAW,EAAQ,UACnB,MAAO,QACP,YAAa,GACb,gBAAiB,EACjB,KAAM,CACR,CAAC,CAE6B,CAChC,EC7JM,GAA2C,CAC/C,IAAK,qBACL,IAAK,4CACL,IAAK,uCACL,IAAK,mDACL,IAAK,uCACL,IAAK,yCACL,IAAK,uDACL,IAAK,mDACL,IAAK,2BACL,IAAK,wCACL,IAAK,0CACL,IAAK,wCACL,IAAK,wDACL,IAAK,mCACL,IAAK,wCACL,IAAK,qCACP,EAEM,GAAsB,IAAI,IAC9B,CACE,cACA,eACA,YACA,YACA,qBACA,WACA,uBACA,oBACA,wBACA,cACA,sBACA,iBACF,EAAE,IAAK,GAAU,EAAM,YAAY,CAAC,CACtC,EAEM,GAAY,GAChB,OAAO,GAAU,YAAY,GAAkB,CAAC,MAAM,QAAQ,CAAK,EAE/D,GAAa,GACb,GAAU,KAAoC,MAE9C,OAAO,GAAU,UAAY,OAAO,GAAU,UAAY,OAAO,GAAU,YAChE,OAAO,CAAK,EAAE,KAEpB,GAGF,KAGH,GAAuB,GAAuC,CAClE,IAAM,EAAO,GAAU,CAAK,EAE5B,OAAO,EAAO,EAAK,QAAQ,UAAW,GAAG,EAAE,YAAY,EAAI,MAC7D,EAEM,GAAa,GACb,MAAM,QAAQ,CAAK,EACN,EACZ,IAAK,GAAS,GAAU,CAAI,CAAC,EAC7B,OAAQ,GAAyB,EAAQ,CAAK,EAC9C,OAAQ,GAAS,CAAC,CAAC,OAAQ,QAAS,MAAM,EAAE,SAAS,EAAK,YAAY,CAAC,CAAC,EACxE,KAAK,GAED,GAAU,OAGZ,GAAU,CAAK,GAAK,OAGvB,KAAkB,EAAqB,IAAuC,CAClF,GAAI,GAAc,GAAiB,GAAa,OAAO,GAAiB,GAExE,GAAI,EAAY,CACd,GAAI,GAAc,IAAK,OAAO,GAAiB,KAE/C,GAAI,GAAc,IAAK,MAAO,8CAChC,CAEA,IAAM,GAAQ,GAAc,IAAI,KAAK,EAMrC,MAJI,CAAC,GAED,GAAoB,IAAI,EAAK,YAAY,CAAC,EAAU,KAEjD,CACT,EAEM,IAAwB,GAA2B,CACvD,IAAM,EAAa,EAAM,KAAK,EAAE,YAAY,EAU5C,MAFA,GANI,CAAC,GAED,GAAoB,IAAI,CAAU,GAElC,UAAU,KAAK,CAAU,GAEzB,oBAAoB,KAAK,CAAU,EAGzC,EAEM,IAAmB,EAAiB,IAAqB,CAC7D,IAAM,EAAY,GAAU,CAAM,EAElC,GAAI,EAAW,CACb,EAAI,IAAI,CAAS,EAEjB,MACF,CAEA,GAAI,MAAM,QAAQ,CAAM,EAAG,CACzB,EAAO,QAAS,GAAU,GAAgB,EAAO,CAAG,CAAC,EAErD,MACF,CAEA,GAAI,CAAC,GAAS,CAAM,EAAG,OAEvB,IAAM,EAAQ,GAAU,EAAO,GAAG,GAAK,GAAU,EAAO,KAAK,GAAK,OAC5D,EAAS,GAAU,EAAO,KAAO,EAAO,SAAW,EAAO,OAAS,EAAO,MAAM,EAElF,GACF,EAAI,IAAI,EAAQ,GAAG,EAAM,IAAI,IAAW,CAAM,EAGhD,IAAM,EAAc,EAAO,MAEvB,GAAS,CAAW,GACtB,GAAgB,EAAa,CAAG,EAG9B,WAAY,GAAU,EAAO,SAAW,GAC1C,GAAgB,EAAO,OAAQ,CAAG,EAGpC,IAAM,EAAc,EAAO,cAAgB,EAAO,aAAe,EAAO,OAEpE,IAAgB,GAClB,GAAgB,EAAa,CAAG,CAEpC,EAEM,GAAwB,GACvB,MAAM,QAAQ,CAAK,EAEjB,EACJ,IAAK,GAAgC,CACpC,GAAI,CAAC,GAAS,CAAK,EAAG,OAAO,KAE7B,IAAM,EAAQ,GAAU,EAAM,OAAS,EAAM,GAAG,EAC1C,EAAU,GAAU,EAAM,SAAW,EAAM,GAAG,EAC9C,EAAO,GAAU,EAAM,IAAI,EAC3B,EAAO,GAAoB,EAAM,IAAI,EAE3C,GAAI,CAAC,GAAS,CAAC,GAAW,CAAC,GAAQ,CAAC,EAAM,OAAO,KAEjD,IAAM,EAAsB,CAAC,EAU7B,OARI,IAAO,EAAK,MAAQ,GAEpB,IAAS,EAAK,QAAU,GAExB,IAAM,EAAK,KAAO,GAElB,IAAM,EAAK,KAAO,GAEf,CACT,CAAC,EACA,OAAQ,GAAkC,EAAQ,CAAM,EAzBzB,CAAC,EA4B/B,IACJ,EACA,EACA,EAA+B,CAAC,IAE5B,EAAY,QAAU,EAAQ,aAAe,IACxC,GAAuB,EAAa,CAAO,EAG7C,GAAuB,EAAQ,CAAO,EAGzC,GAAkB,GAAyC,CAC1D,MAAS,CAAO,EAErB,OACE,GAAoB,EAAQ,WAAW,GACvC,GAAoB,EAAQ,UAAU,GACtC,GAAoB,EAAQ,IAAI,IAC/B,GAAS,EAAQ,KAAK,EACnB,GAAoB,EAAQ,MAAM,MAAQ,EAAQ,MAAM,WAAW,EACnE,OAER,EAEM,IAAiB,EAAkB,IAA0C,CACjF,GAAI,GAAS,CAAO,EAAG,CACrB,IAAM,EACJ,GAAU,EAAQ,UAAU,GAC5B,GAAU,EAAQ,SAAS,IAC1B,GAAS,EAAQ,KAAK,EACnB,GAAU,EAAQ,MAAM,YAAc,EAAQ,MAAM,SAAS,EAC7D,MAEN,GAAI,EAAa,OAAO,CAC1B,CAEA,OAAO,GAAS,IAAI,cAAc,GAAG,KAAK,GAAK,MACjD,EAEM,GAAc,GACd,GAAS,CAAO,GAAK,OAAO,UAAU,eAAe,KAAK,EAAS,QAAQ,EACtE,EAAQ,OAGV,EAGI,IACX,EACA,EAA+B,CAAC,IACrB,CACX,IAAM,EAAM,IAAI,IAChB,GAAgB,EAAQ,CAAG,EAE3B,IAAM,EADa,CAAC,GAAG,CAAG,EAAE,IAAK,GAAU,EAAM,KAAK,CAAC,EAAE,OAAO,OAC7C,EAAW,OAAQ,GAAU,CAAC,IAAqB,CAAK,CAAC,EAQ5E,OANI,EAAW,OAAe,EAAW,MAAM,EAAG,CAAC,EAAE,KAAK,IAAI,EAE7C,GAAU,EAAQ,QAE/B,IAEG,IAAe,EAAQ,WAAY,EAAQ,UAAU,GAAK,8BACnE,EAEa,IACX,EACA,EAA+B,CAAC,IACT,CACvB,GAAI,aAAiB,MAAO,CAC1B,IAAM,EAAc,EACd,EAAS,EAAY,QAAU,EAAY,SAAW,EAAM,QAC5D,EAAc,GAAqB,EAAY,aAAe,EAAY,YAAY,EAE5F,MAAO,CACL,QAAS,GAAsB,EAAQ,EAAa,CAClD,GAAG,EACH,SAAU,EAAM,OAClB,CAAC,EACD,WACE,OAAO,EAAY,YAAe,SAAW,EAAY,WAAa,EAAQ,WAChF,WAAY,EAAQ,WACpB,WAAY,GAAe,CAAW,EACtC,UAAW,GAAU,EAAY,WAAa,EAAY,UAAU,GAAK,OACzE,cACA,SACA,IAAK,CACP,CACF,CAEA,GAAI,GAAS,CAAK,IAAM,YAAa,GAAS,WAAY,GAAS,gBAAiB,GAAQ,CAC1F,IAAM,EAAS,GAAW,CAAK,EACzB,EAAc,GAClB,EAAM,cAAgB,EAAM,aAAe,EAAM,MACnD,EAEA,MAAO,CACL,QAAS,GAAsB,EAAQ,EAAa,CAAO,EAC3D,WAAY,EAAQ,WACpB,WAAY,EAAQ,WACpB,WAAY,GAAe,CAAK,EAChC,UAAW,GAAc,CAAK,EAC9B,cACA,SACA,IAAK,CACP,CACF,CAEA,MAAO,CACL,QAAS,GAAuB,EAAO,CAAO,EAC9C,WAAY,EAAQ,WACpB,WAAY,EAAQ,WACpB,YAAa,CAAC,EACd,OAAQ,EACR,IAAK,CACP,CACF,EAEa,KACX,EACA,EAA+B,CAAC,EAChC,EACA,IACuB,CACvB,GAAI,GAAS,CAAO,EAAG,CACrB,IAAM,EAAS,GAAW,CAAO,EAC3B,EAAc,GAClB,EAAQ,cAAgB,EAAQ,aAAe,EAAQ,MACzD,EAEA,MAAO,CACL,QAAS,GAAsB,EAAQ,EAAa,CAAO,EAC3D,WAAY,EAAQ,WACpB,WAAY,EAAQ,WACpB,WAAY,GAAe,CAAO,EAClC,UAAW,GAAc,EAAS,CAAO,EACzC,cACA,SACA,eACA,IAAK,CACP,CACF,CAEA,MAAO,CACL,QAAS,GAAuB,EAAS,CAAO,EAChD,WAAY,EAAQ,WACpB,WAAY,EAAQ,WACpB,UAAW,GAAc,EAAS,CAAO,EACzC,YAAa,CAAC,EACd,OAAQ,EACR,eACA,IAAK,CACP,CACF,EAEa,IAAwB,KAAO,IAAoD,CAC9F,IAAM,EAAc,EAAS,QAAQ,IAAI,cAAc,GAAK,GACxD,EACA,EAEJ,GAAI,EAAY,SAAS,kBAAkB,EACzC,GAAI,CACF,EAAU,MAAM,EAAS,KAAK,CAChC,MAAQ,CACN,EAAU,IACZ,MAEA,GAAI,CACF,EAAe,MAAM,EAAS,KAAK,EACnC,EAAU,CACZ,MAAQ,CACN,EAAe,OACf,EAAU,IACZ,CAGF,OAAO,IACL,EACA,CACE,WAAY,EAAS,OACrB,WAAY,EAAS,UACvB,EACA,EAAS,QACT,CACF,CACF,ECtXM,GAAmC,CACvC,cAAe,KACf,cAAe,GACf,eAAgB,KAChB,UAAW,KACX,cAAe,IACjB,EAEa,GAAoB,GAA4B,CAAE,GAAG,EAAc,CAAC,EAyEpE,GAAgC,GAAiC,CAC5E,GAAkB,OAAQ,GACpB,EAAM,gBAAkB,EAAsB,EAE3C,CACL,GAAG,EACH,eACF,CACD,CACH,EAEa,QAAqC,CAChD,GAAkB,OAAQ,GAEtB,EAAM,gBAAkB,GAAc,eACtC,EAAM,gBAAkB,GAAc,eACtC,EAAM,iBAAmB,GAAc,gBACvC,EAAM,YAAc,GAAc,WAClC,EAAM,gBAAkB,GAAc,cAE/B,EAGF,CAAE,GAAG,EAAc,CAC3B,CACH,ECzGM,IAAiB,kCACjB,GAAY,OAAO,OAAW,IAE9B,IAAwB,GAA4B,CACxD,IAAM,EAAU,EAAQ,KAAK,EAAE,QAAQ,OAAQ,EAAE,EAGjD,MAAO,GAFM,UAAU,KAAK,CAAO,EAAI,EAAU,GAAG,EAAQ,KAE7C,iBACjB,EAEM,OACC,GAGF,OAAgE,sBAAwB,KAHpE,KAOnB,IAAwB,GAAqC,CACjE,IAAM,EAAM,GAAa,EAEpB,MAAK,UAEV,GAAI,CACF,EAAI,UAAU,CACZ,WAAY,EAAO,QACnB,cAAe,EAAO,WACtB,iBAAkB,EAAO,oBAEzB,QAAS,MACX,CAAC,CACH,OAAS,EAAO,CACd,QAAQ,KAAK,kDAAmD,CAAK,CACvE,CACF,EAEI,GAAwC,KACxC,GAA0C,KAC1C,GAA0C,KAC1C,GAA2B,KAC3B,GAAyC,KACvC,GAAoB,IAAI,IAExB,IAAoB,GACjB,CAAC,EAAO,eAAgB,EAAO,UAAW,EAAO,cAAe,EAAO,WAAW,EACtF,OAAO,OAAO,EACd,KAAK,GAAG,EAGP,QAAiC,CACrC,GAAI,CAAC,GAAW,MAAO,GAEvB,GAAI,CAIF,OAHc,MAAM,KAAK,SAAS,iBAAiB,GAAc,CAG1D,EAAM,KAAM,GAAO,EAAG,aAAa,2BAA2B,IAAM,MAAM,CACnF,MAAQ,CACN,MAAO,EACT,CACF,EAEM,OAAqB,CACzB,EAEE,IADA,GAAe,WAAW,EACT,KAErB,EAEM,OAAsB,CACrB,MAEL,IAAI,CACF,GAAe,UAAU,CAC3B,MAAQ,CAER,CACA,GAAiB,KACjB,GAA6B,EAAK,CAFlC,CAGF,EAEM,OAAoC,GAAkB,KAAO,EAEtD,QAAyC,CACpD,IAAM,EAAQ,OAAO,0BAA0B,EAI/C,OAHA,GAAkB,IAAI,CAAK,EAC3B,GAAc,EAEP,CACT,EAEa,GAA4B,GAA2C,CAC7E,IAEL,GAAkB,OAAO,CAAK,EAE1B,GAAkB,OAAS,GAAK,KAClC,IAAoB,IAAoB,QAAQ,QAAQ,GAAG,KAAK,EAAe,GAEnF,EAEM,IAAc,SAAY,CAC9B,GAAI,CAAC,GAAc,OAEnB,IAAM,EAAM,GAAa,EAEzB,GAAI,CAAC,GAAK,MAAO,OAEjB,IAAqB,EAAY,EACjC,IAAM,EAAU,CACd,QAAS,GAAa,YACtB,SAAU,GAAa,UAAY,OACnC,WAAY,GAAa,QACzB,cAAe,GAAa,WAC5B,iBAAkB,GAAa,oBAC/B,cAAe,IAAqB,GAAa,OAAO,EACxD,eAAgB,GAAa,gBAAkB,OAC/C,UAAW,GAAa,WAAa,OACrC,YAAa,GAAa,cAC1B,cAAe,GAAa,eAAiB,MAC/C,EAEA,GAAI,CACF,IAAM,EAAU,MAAM,EAAI,MAAM,CAAO,EACjC,EAAW,GAAW,OAAO,GAAY,SAAY,EAA6B,KACxF,GAAiB,EACjB,GACE,GAAqC,KAAO,GAAO,EAAQ,CAC7D,CACF,OAAS,EAAO,CACd,QAAQ,MAAM,yCAA0C,CAAK,EAC7D,GAA6B,EAAK,CACpC,CACF,EAEM,GAAkB,SAA2B,CAC5C,MAEL,IAAI,CAAC,GAAc,CACjB,GAAc,EACd,GAAa,EAEb,MACF,CAEA,GAAI,GAAmB,EAAG,CACxB,GAAc,EAEd,MACF,CAEA,GAAI,IAAgB,EAAG,CACrB,GAAc,EAEd,MACF,CAEI,IAEJ,MAAM,IAAY,CAhBlB,CAiBF,EAEM,QAA6B,CAC7B,CAAC,IAAa,IAAkB,CAAC,UAAU,OAE/C,GAAiB,IAAI,qBAAuB,CAC1C,IAAoB,IAAoB,QAAQ,QAAQ,GAAG,KAAK,EAAe,CACjF,CAAC,EACD,GAAe,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EAC1E,EAEa,IAAqB,KAAO,IAA8C,CACrF,GAAI,CAAC,GAAW,OAEhB,IAAM,EAAU,IAAiB,CAAM,EASvC,GAPI,IAAa,KAAc,GAC7B,GAAc,EAGhB,GAAe,EACf,GAAY,EAER,GAAmB,EAAG,CACxB,GAAc,EAEd,MACF,CAKA,OAHA,IAAe,EACf,IAAoB,IAAoB,QAAQ,QAAQ,GAAG,KAAK,EAAe,EAExE,EACT,EAEa,OAAkC,CAC7C,GAAe,KACf,GAAY,KACZ,GAAa,EACb,GAAc,CAChB,EC5MM,GAAkB,GACjB,GAEW,EAAM,KAEf,GAJY,KAOf,IAAqB,GACzB,GAAe,CAAQ,GAAG,YAAY,GAAK,GAEvC,IAAmB,GACvB,IAAa,aACb,IAAa,aACb,EAAS,SAAS,YAAY,GAC9B,EAAS,SAAS,QAAQ,EAEtB,IAAwB,GAAoC,CAChE,GAAI,CAAC,EAAS,SAAS,MAAM,EAAG,OAAO,KAEvC,IAAM,EAAQ,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAOhD,OALI,EAAM,OAAS,EAAU,KAKtB,WAFL,EAAM,QAAU,EAAI,CAAC,UAAW,GAAG,EAAM,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,CAAC,UAAW,GAAG,CAAK,EAAE,KAAK,GAAG,GAGjG,EAaa,KACX,EACA,EAAuC,CAAC,IAC7B,CACX,IAAM,EAAO,IAAkB,CAAQ,EACjC,EAAc,GAAe,EAAQ,WAAW,GAAK,mCACrD,EAAkB,GAAe,EAAQ,eAAe,GAAK,EAC7D,EACJ,GAAe,EAAQ,gBAAgB,GAAK,uCA4B9C,OA1BK,EAED,IAAgB,CAAI,EAClB,EAAK,SAAS,mBAAmB,EAAU,6CAE3C,EAAK,SAAS,WAAW,EAAU,8CAEnC,EAAK,SAAS,aAAa,EAAU,GAK3B,IAAqB,CAEjC,IAEA,EAAK,SAAS,iBAAiB,EAAU,kCAEzC,EAAK,SAAS,eAAe,EAAU,gCAEvC,EAAK,SAAS,mBAAmB,EAAU,uCAE3C,EAAK,SAAS,WAAW,EAAU,+BAEnC,EAAK,SAAS,aAAa,EAAU,EAElC,GA1BW,CA2BpB,EAUa,IAA6B,GAAyD,CACjG,IAAM,EAAa,GAAe,CAAU,EAI5C,OAFK,EAEE,EAAW,SAAS,UAAU,EACjC,EAAW,QAAQ,kBAAmB,qCAAqC,EAC3E,EAJoB,IAK1B,EAEa,KACX,EACA,IACkB,CAClB,IAAM,EAAoB,GAAe,CAAO,EAMhD,OAJI,EACK,GAAG,EAAkB,QAAQ,OAAQ,EAAE,EAAE,qCAG3C,IAA0B,CAAU,CAC7C,EC/Ga,IAAoC,iCAqB3C,GAAsC,CAC1C,KAAM,MACN,mBAAoB,KACpB,SAAU,KACV,eAAgB,KAChB,iBAAkB,KAClB,iBAAkB,KAClB,UAAW,KACX,YAAa,KACb,YAAa,KACb,cAAe,KACf,WAAY,KACZ,YAAa,KACb,WAAY,KACZ,WAAY,GACZ,WAAY,OACZ,cAAe,IACjB,EAEI,GAAqC,CAAE,GAAG,EAAgB,EAEjD,OACP,OAAO,OAAW,IAAoB,KAEnC,OAGI,QAAsD,CACjE,IAAM,EAAS,GAAa,EAQ5B,OANK,IAED,CAAC,EAAO,mBAAqB,OAAO,EAAO,mBAAsB,YACnE,EAAO,kBAAoB,CAAC,GAGvB,EAAO,mBANM,IAOtB,EAcM,IAAmB,EAAgB,EAAW,KAC9C,OAAO,GAAU,UAAY,EAAM,KAAK,EAAU,EAAM,KAAK,EAE1D,EAGH,GAAmB,GACnB,MAAM,QAAQ,CAAK,EAAU,IAAI,EAAM,IAAI,EAAe,EAAE,KAAK,GAAG,EAAE,GAEtE,GAAS,OAAO,GAAU,SACrB,IAAI,OAAO,KAAK,CAAgC,EACpD,KAAK,EACL,IACE,GACC,GAAG,KAAK,UAAU,CAAG,EAAE,GAAG,GAAiB,EAAkC,EAAI,GACrF,EACC,KAAK,GAAG,EAAE,GAGR,KAAK,UAAU,CAAK,EAGvB,IAAqB,EAA0B,IAAuC,CAC1F,GAAI,CACF,OAAO,GAAgB,CAAI,IAAM,GAAgB,CAAK,CACxD,MAAQ,CACN,MAAO,EACT,CACF,EAEM,OAAsB,CAC1B,IAAM,EAAM,IAAc,EAE1B,GAAI,CAAC,EAAK,OAEV,EAAI,KAAO,GAAe,KAC1B,EAAI,sBAAwB,GAAe,mBAC3C,EAAI,UAAY,GAAe,SAC/B,EAAI,aAAe,GAAe,WAClC,EAAI,YAAc,GAAe,WACjC,EAAI,gBAAkB,GAAe,eACrC,EAAI,kBAAoB,GAAe,iBACvC,EAAI,WAAa,GAAe,UAChC,EAAI,aAAe,GAAe,YAClC,EAAI,eAAiB,GAAe,cACpC,EAAI,YAAc,GAAe,WACjC,EAAI,cAAgB,GAAe,YACnC,EAAI,YAAc,GAAe,WACjC,EAAI,eAAiB,GAAe,cAEpC,OAAO,EAAI,kBACX,OAAO,EAAI,aAEX,IAAM,EAAS,GAAa,EAExB,MAAC,GAAU,OAAO,EAAO,eAAkB,YAE/C,GAAI,CACF,EAAO,cACL,IAAI,YAAY,IAAmC,CACjD,OAAQ,CAAE,GAAG,EAAe,CAC9B,CAAC,CACH,CACF,MAAQ,CAER,CACF,EAEa,GAAuB,GAA6C,CAC/E,IAAM,EAA2B,CAC/B,GAAG,GACH,GAAG,CACL,EAEA,EAAK,KAAO,GAAgB,EAAM,MAAQ,GAAe,MAAQ,MAAO,KAAK,EAAE,YAAY,EAC3F,EAAK,mBACH,EAAM,qBAAuB,OACzB,GAAe,mBACf,EAAM,mBACZ,EAAK,SACH,GAAgB,EAAM,UAAY,GAAe,UAAY,GAAI,EAAE,EAAE,KAAK,GAAK,KACjF,EAAK,eACH,EAAM,iBAAmB,OAAY,GAAe,eAAiB,EAAM,eAC7E,EAAK,iBACH,EAAM,mBAAqB,OAAY,GAAe,iBAAmB,EAAM,iBACjF,EAAK,iBACH,EAAM,mBAAqB,OAAY,GAAe,iBAAmB,EAAM,iBACjF,EAAK,UAAY,EAAM,YAAc,OAAY,GAAe,UAAY,EAAM,UAClF,EAAK,YACH,EAAM,cAAgB,OAAY,GAAe,YAAc,EAAM,YACvE,EAAK,YACH,EAAM,cAAgB,OAAY,GAAe,YAAc,EAAM,YACvE,EAAK,cACH,EAAM,gBAAkB,OAAY,GAAe,cAAgB,EAAM,cAC3E,EAAK,WAAa,EAAM,aAAe,OAAY,GAAe,WAAa,EAAM,WACrF,EAAK,YACH,EAAM,cAAgB,OAAY,GAAe,YAAc,EAAM,YACvE,EAAK,WAAa,EAAM,aAAe,OAAY,GAAe,WAAa,EAAM,WACrF,EAAK,WAAa,GAAQ,EAAM,YAAc,GAAe,YAC7D,EAAK,WAAa,GAChB,EAAM,YAAc,GAAe,YAAc,OACjD,MACF,EAAE,YAAY,EACd,EAAK,cACH,EAAM,gBAAkB,OAAY,GAAe,cAAiB,EAAM,eAAiB,KAEzF,IAAkB,GAAgB,CAAI,IAE1C,GAAiB,EACjB,GAAc,EAChB,EAMa,QAAiC,CAC5C,IAAM,EAAO,CAAE,GAAG,EAAgB,EAE9B,GAAkB,GAAgB,CAAI,IAE1C,GAAiB,EACjB,GAAc,EAChB,EAEa,SAAsD,CAAE,GAAG,EAAe,GCjLjF,GAAY,OAAO,OAAW,IAC9B,QACJ,IACO,OAAO,iBAAmB,QACjC,CAAC,CAAC,OAAO,eAAe,IAAI,gBAAgB,EAExC,GAAoB,GAA4B,CACpD,IAAM,EAAa,EAAQ,KAAK,EAAE,QAAQ,OAAQ,EAAE,EAMpD,MAJI,UAAU,KAAK,CAAU,EACpB,GAAG,EAAW,WAGhB,GAAG,EAAW,aACvB,EAEM,GAAY,GACX,GAEW,EAAM,KAEf,GAJY,KAOjB,GAAsC,KAE7B,IAA4B,GAAgD,CACvF,GAAI,CAAC,GAAW,OAAO,QAAQ,QAAQ,EAEvC,IAAM,EAAU,GAAS,GAAS,OAAO,EACnC,EAAU,GAAS,GAAS,OAAO,EACnC,EAAoB,GAAS,mBAAqB,GAClD,EAAe,GAAS,cAAgB,GA2E9C,MAzEI,CAAC,GAAW,CAAC,EACR,QAAQ,OAAW,MAAM,8DAA8D,CAAC,EAG7F,IAAiB,EACZ,QAAQ,QAAQ,EAGrB,KAIJ,GAAgB,IAAI,SAAe,EAAS,IAAW,CACrD,IAAM,EAAS,SAAS,cAAc,QAAQ,EAC9C,QAAQ,IAAI,qCAAsC,GAAiB,CAAO,CAAC,EAC3E,EAAO,IAAM,GAAiB,CAAO,EACrC,EAAO,MAAQ,GACf,EAAO,QAAQ,QAAU,UAErB,IACF,EAAO,QAAQ,kBAAoB,QAGjC,IACF,EAAO,QAAQ,aAAe,QAGhC,EAAO,QAAQ,QAAU,EAEzB,IAAM,GAAW,EAAa,IAAyB,CACrD,GAAI,EAAO,CACT,EAAO,QAAQ,GAAO,EAEtB,MACF,CAEA,OAAO,EAAO,QAAQ,EACxB,EAEA,EAAQ,WAAY,GAAS,GAAS,QAAQ,CAAC,EAC/C,EAAQ,UAAW,GAAS,GAAS,OAAO,CAAC,EAC7C,EAAQ,aAAc,GAAS,GAAS,UAAU,CAAC,EACnD,EAAQ,sBAAuB,GAAS,GAAS,mBAAmB,CAAC,EACrE,EAAQ,QAAS,GAAS,GAAS,gBAAkB,GAAS,KAAK,CAAC,EACpE,EAAQ,iBAAkB,GAAS,GAAS,gBAAkB,GAAS,KAAK,CAAC,EAC7E,EAAQ,YAAa,GAAS,GAAS,SAAS,CAAC,EAEjD,EAAQ,gBADgB,GAAS,iBAAmB,GACT,KAAO,GAAS,GAAS,aAAa,CAAC,EAClF,EAAQ,cAAe,GAAS,GAAS,WAAW,CAAC,EACrD,EAAQ,aAAc,GAAS,GAAS,UAAU,CAAC,EACnD,EAAQ,gBAAiB,GAAS,GAAS,aAAa,CAAC,EACzD,EAAQ,iBAAkB,GAAS,GAAS,cAAc,CAAC,EAC3D,EAAQ,gBAAiB,GAAS,GAAS,aAAa,CAAC,EACzD,EAAQ,cAAe,GAAS,GAAS,WAAW,CAAC,EAEjD,GAAS,uBAAyB,SACpC,EAAO,QAAQ,qBAAuB,EAAQ,qBAAuB,OAAS,SAG5E,GAAS,kBAAoB,SAC/B,EAAO,QAAQ,gBAAkB,EAAQ,gBAAkB,OAAS,SAGtE,EAAO,WAAe,EAAQ,EAC9B,EAAO,QAAW,GAAM,CACtB,QAAQ,IAAI,sCAAuC,CAAC,EACpD,GAAgB,KAChB,EAAW,MAAM,qCAAqC,CAAC,CACzD,EAEA,SAAS,KAAK,YAAY,CAAM,CAClC,CAAC,EAEM,GACT,EC/HA,SAAS1D,GAAM,EAAG,CAChB,OAAO,EAAI,GAAM,CACnB,CACA,IAAM,IAAO,EAAG,EAAG,IAAM,KAAK,IAAI,KAAK,IAAI,EAAG,CAAC,EAAG,CAAC,EACnD,SAAS,GAAI,EAAG,CACd,OAAO,GAAIA,GAAM,EAAI,IAAI,EAAG,EAAG,GAAG,CACpC,CAIA,SAAS,GAAI,EAAG,CACd,OAAO,GAAIA,GAAM,EAAI,GAAG,EAAG,EAAG,GAAG,CACnC,CACA,SAAS,GAAI,EAAG,CACd,OAAO,GAAIA,GAAM,EAAI,IAAI,EAAI,IAAK,EAAG,CAAC,CACxC,CACA,SAAS,GAAI,EAAG,CACd,OAAO,GAAIA,GAAM,EAAI,GAAG,EAAG,EAAG,GAAG,CACnC,CAEA,IAAM,GAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAE,EACvJ4D,GAAM,CAAC,GAAG,kBAAkB,EAC5B,IAAK,GAAKA,GAAI,EAAI,IAClB,IAAK,GAAKA,IAAK,EAAI,MAAS,GAAKA,GAAI,EAAI,IACzC,GAAK,IAAO,EAAI,MAAS,IAAQ,EAAI,IACrC,IAAU,GAAK,GAAG,EAAE,CAAC,GAAK,GAAG,EAAE,CAAC,GAAK,GAAG,EAAE,CAAC,GAAK,GAAG,EAAE,CAAC,EAC5D,SAAS,IAAS,EAAK,CACrB,IAAI,EAAM,EAAI,OACV,EAkBJ,OAjBI,EAAI,KAAO,MACT,IAAQ,GAAK,IAAQ,EACvB,EAAM,CACJ,EAAG,IAAM,GAAM,EAAI,IAAM,GACzB,EAAG,IAAM,GAAM,EAAI,IAAM,GACzB,EAAG,IAAM,GAAM,EAAI,IAAM,GACzB,EAAG,IAAQ,EAAI,GAAM,EAAI,IAAM,GAAK,GACtC,GACS,IAAQ,GAAK,IAAQ,KAC9B,EAAM,CACJ,EAAG,GAAM,EAAI,KAAO,EAAI,GAAM,EAAI,IAClC,EAAG,GAAM,EAAI,KAAO,EAAI,GAAM,EAAI,IAClC,EAAG,GAAM,EAAI,KAAO,EAAI,GAAM,EAAI,IAClC,EAAG,IAAQ,EAAK,GAAM,EAAI,KAAO,EAAI,GAAM,EAAI,IAAO,GACxD,IAGG,CACT,CACA,IAAM,KAAS,EAAG,IAAM,EAAI,IAAM,EAAE,CAAC,EAAI,GACzC,SAAS,IAAU,EAAG,CACpB,IAAI,EAAI,IAAQ,CAAC,EAAI,IAAK,IAC1B,OAAO,EACH,IAAM,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAI,IAAM,EAAE,EAAG,CAAC,EAC7C,MACN,CAEA,IAAM,IAAS,+GACf,SAAS,GAAS,EAAG,EAAG,EAAG,CACzB,IAAM,EAAI,EAAI,KAAK,IAAI,EAAG,EAAI,CAAC,EACzB,GAAK,EAAG,GAAK,EAAI,EAAI,IAAM,KAAO,EAAI,EAAI,KAAK,IAAI,KAAK,IAAI,EAAI,EAAG,EAAI,EAAG,CAAC,EAAG,EAAE,EACtF,MAAO,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAC1B,CACA,SAAS,IAAS,EAAG,EAAG,EAAG,CACzB,IAAM,GAAK,EAAG,GAAK,EAAI,EAAI,IAAM,IAAM,EAAI,EAAI,EAAI,KAAK,IAAI,KAAK,IAAI,EAAG,EAAI,EAAG,CAAC,EAAG,CAAC,EACpF,MAAO,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAC1B,CACA,SAAS,IAAS,EAAG,EAAG,EAAG,CACzB,IAAM,EAAM,GAAS,EAAG,EAAG,EAAG,EAC1B,EAMJ,IALI,EAAI,EAAI,IACV,EAAI,GAAK,EAAI,GACb,GAAK,EACL,GAAK,GAEF,EAAI,EAAG,EAAI,EAAG,IACjB,EAAI,IAAM,EAAI,EAAI,EAClB,EAAI,IAAM,EAEZ,OAAO,CACT,CACA,SAAS,IAAS,EAAG,EAAG,EAAG,EAAG,EAAK,CAOjC,OANI,IAAM,GACC,EAAI,GAAK,GAAM,EAAI,EAAI,EAAI,GAElC,IAAM,GACA,EAAI,GAAK,EAAI,GAEf,EAAI,GAAK,EAAI,CACvB,CACA,SAASC,GAAQ,EAAG,CAClB,IACM,EAAI,EAAE,EAAI,IACV,EAAI,EAAE,EAAI,IACV,EAAI,EAAE,EAAI,IACV,EAAM,KAAK,IAAI,EAAG,EAAG,CAAC,EACtB,EAAM,KAAK,IAAI,EAAG,EAAG,CAAC,EACtB,GAAK,EAAM,GAAO,EACpB,EAAG,EAAG,EAOV,OANI,IAAQ,IACV,EAAI,EAAM,EACV,EAAI,EAAI,GAAM,GAAK,EAAI,EAAM,GAAO,GAAK,EAAM,GAC/C,EAAI,IAAS,EAAG,EAAG,EAAG,EAAG,CAAG,EAC5B,EAAI,EAAI,GAAK,IAER,CAAC,EAAI,EAAG,GAAK,EAAG,CAAC,CAC1B,CACA,SAAS,GAAM,EAAG,EAAG,EAAG,EAAG,CACzB,OACE,MAAM,QAAQ,CAAC,EACX,EAAE,EAAE,GAAI,EAAE,GAAI,EAAE,EAAE,EAClB,EAAE,EAAG,EAAG,CAAC,GACb,IAAI,EAAG,CACX,CACA,SAASC,GAAQ,EAAG,EAAG,EAAG,CACxB,OAAO,GAAM,GAAU,EAAG,EAAG,CAAC,CAChC,CACA,SAAS,IAAQ,EAAG,EAAG,EAAG,CACxB,OAAO,GAAM,IAAU,EAAG,EAAG,CAAC,CAChC,CACA,SAASC,IAAQ,EAAG,EAAG,EAAG,CACxB,OAAO,GAAM,IAAU,EAAG,EAAG,CAAC,CAChC,CACA,SAAS,GAAI,EAAG,CACd,OAAQ,EAAI,IAAM,KAAO,GAC3B,CACA,SAAS,IAAS,EAAK,CACrB,IAAM,EAAI,IAAO,KAAK,CAAG,EACrB,EAAI,IACJ,EACJ,GAAI,CAAC,EACH,OAEE,EAAE,KAAO,IACX,EAAI,EAAE,GAAK,GAAI,CAAC,EAAE,EAAE,EAAI,GAAI,CAAC,EAAE,EAAE,GAEnC,IAAM,EAAI,GAAI,CAAC,EAAE,EAAE,EACb,EAAM,EAAE,GAAK,IACb,EAAM,EAAE,GAAK,IAQnB,MAPA,CAKE,EALE,EAAE,KAAO,MACP,IAAQ,EAAG,EAAI,CAAE,EACZ,EAAE,KAAO,MACdA,IAAQ,EAAG,EAAI,CAAE,EAEjBD,GAAQ,EAAG,EAAI,CAAE,EAEhB,CACL,EAAG,EAAE,GACL,EAAG,EAAE,GACL,EAAG,EAAE,GACF,GACL,CACF,CACA,SAAS,IAAO,EAAG,EAAK,CACtB,IAAI,EAAID,GAAQ,CAAC,EACjB,EAAE,GAAK,GAAI,EAAE,GAAK,CAAG,EACrB,EAAIC,GAAQ,CAAC,EACb,EAAE,EAAI,EAAE,GACR,EAAE,EAAI,EAAE,GACR,EAAE,EAAI,EAAE,EACV,CACA,SAAS,IAAU,EAAG,CACpB,GAAI,CAAC,EACH,OAEF,IAAM,EAAID,GAAQ,CAAC,EACb,EAAI,EAAE,GACN,EAAI,GAAI,EAAE,EAAE,EACZ,EAAI,GAAI,EAAE,EAAE,EAClB,OAAO,EAAE,EAAI,IACT,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,EAAE,CAAC,EAAE,GACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAC5B,CAEA,IAAM,GAAM,CACX,EAAG,OACH,EAAG,QACH,EAAG,KACH,EAAG,MACH,EAAG,KACH,EAAG,SACH,EAAG,QACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,QACH,EAAG,QACH,EAAG,KACH,EAAG,WACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,QACH,EAAG,KACH,EAAG,KACH,EAAG,OACH,EAAG,KACH,EAAG,QACH,EAAG,IACJ,EACM,GAAU,CACf,OAAQ,SACR,YAAa,SACb,KAAM,OACN,UAAW,SACX,KAAM,SACN,MAAO,SACP,OAAQ,SACR,MAAO,IACP,aAAc,SACd,GAAI,KACJ,QAAS,SACT,KAAM,SACN,UAAW,SACX,OAAQ,SACR,SAAU,SACV,QAAS,SACT,IAAK,SACL,YAAa,SACb,QAAS,SACT,QAAS,SACT,KAAM,OACN,IAAK,KACL,MAAO,OACP,QAAS,SACT,KAAM,SACN,KAAM,OACN,KAAM,SACN,OAAQ,SACR,QAAS,SACT,SAAU,SACV,OAAQ,SACR,MAAO,SACP,IAAK,SACL,OAAQ,SACR,OAAQ,SACR,KAAM,SACN,MAAO,SACP,MAAO,SACP,IAAK,OACL,OAAQ,SACR,OAAQ,SACR,SAAU,OACV,OAAQ,SACR,OAAQ,SACR,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,OAAQ,SACR,QAAS,SACT,UAAW,SACX,IAAK,SACL,OAAQ,SACR,IAAK,SACL,IAAK,OACL,MAAO,SACP,IAAK,SACL,QAAS,SACT,OAAQ,SACR,QAAS,SACT,MAAO,SACP,KAAM,SACN,MAAO,SACP,OAAQ,SACR,UAAW,SACX,QAAS,SACT,WAAY,SACZ,IAAK,SACL,KAAM,SACN,MAAO,SACP,UAAW,SACX,KAAM,SACN,KAAM,SACN,KAAM,SACN,KAAM,SACN,OAAQ,SACR,OAAQ,SACR,OAAQ,SACR,MAAO,SACP,MAAO,SACP,QAAS,SACT,IAAK,SACL,KAAM,OACN,QAAS,SACT,IAAK,SACL,OAAQ,SACR,MAAO,SACP,WAAY,SACZ,IAAK,KACL,MAAO,SACP,OAAQ,SACR,OAAQ,SACR,KAAM,SACN,UAAW,OACX,IAAK,SACL,SAAU,SACV,WAAY,SACZ,QAAS,SACT,SAAU,SACV,QAAS,SACT,WAAY,SACZ,KAAM,KACN,OAAQ,SACR,KAAM,SACN,QAAS,SACT,MAAO,SACP,QAAS,SACT,KAAM,SACN,UAAW,SACX,OAAQ,SACR,MAAO,SACP,WAAY,SACZ,UAAW,SACX,QAAS,SACT,KAAM,SACN,IAAK,SACL,KAAM,SACN,QAAS,SACT,MAAO,SACP,YAAa,SACb,GAAI,SACJ,SAAU,SACV,MAAO,SACP,UAAW,SACX,MAAO,SACP,UAAW,SACX,MAAO,SACP,QAAS,SACT,MAAO,SACP,OAAQ,SACR,MAAO,SACP,IAAK,SACL,KAAM,SACN,KAAM,SACN,KAAM,SACN,SAAU,OACV,OAAQ,SACR,IAAK,SACL,IAAK,OACL,MAAO,SACP,OAAQ,SACR,GAAI,SACJ,MAAO,SACP,IAAK,SACL,KAAM,SACN,UAAW,SACX,GAAI,SACJ,MAAO,QACR,EACA,SAAS,KAAS,CAChB,IAAM,EAAW,CAAC,EACZ,EAAO,OAAO,KAAK,EAAO,EAC1B,EAAQ,OAAO,KAAK,EAAG,EACzB,EAAG,EAAG,EAAG,EAAI,EACjB,IAAK,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAEhC,IADA,EAAK,EAAK,EAAK,GACV,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC5B,EAAI,EAAM,GACV,EAAK,EAAG,QAAQ,EAAG,GAAI,EAAE,EAE3B,EAAI,SAAS,GAAQ,GAAK,EAAE,EAC5B,EAAS,GAAM,CAAC,GAAK,GAAK,IAAM,GAAK,EAAI,IAAM,EAAI,GAAI,CACzD,CACA,OAAO,CACT,CAEA,IAAI,GACJ,SAAS,IAAU,EAAK,CACjB,KACH,GAAQ,IAAO,EACf,GAAM,YAAc,CAAC,EAAG,EAAG,EAAG,CAAC,GAEjC,IAAM,EAAI,GAAM,EAAI,YAAY,GAChC,OAAO,GAAK,CACV,EAAG,EAAE,GACL,EAAG,EAAE,GACL,EAAG,EAAE,GACL,EAAG,EAAE,SAAW,EAAI,EAAE,GAAK,GAC7B,CACF,CAEA,IAAM,IAAS,uGACf,SAAS,IAAS,EAAK,CACrB,IAAM,EAAI,IAAO,KAAK,CAAG,EACrB,EAAI,IACJ,EAAG,EAAG,EACL,KAGL,IAAI,EAAE,KAAO,EAAG,CACd,IAAM,EAAI,CAAC,EAAE,GACb,EAAI,EAAE,GAAK,GAAI,CAAC,EAAI,GAAI,EAAI,IAAK,EAAG,GAAG,CACzC,CAOA,MANA,GAAI,CAAC,EAAE,GACP,EAAI,CAAC,EAAE,GACP,EAAI,CAAC,EAAE,GACP,EAAI,KAAO,EAAE,GAAK,GAAI,CAAC,EAAI,GAAI,EAAG,EAAG,GAAG,GACxC,EAAI,KAAO,EAAE,GAAK,GAAI,CAAC,EAAI,GAAI,EAAG,EAAG,GAAG,GACxC,EAAI,KAAO,EAAE,GAAK,GAAI,CAAC,EAAI,GAAI,EAAG,EAAG,GAAG,GACjC,CACF,EACA,IACA,IACA,GACL,CAZA,CAaF,CACA,SAAS,IAAU,EAAG,CACpB,OAAO,IACL,EAAE,EAAI,IACF,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAI,EAAE,CAAC,EAAE,GACzC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAEnC,CAEA,IAAMG,GAAK,GAAK,GAAK,SAAY,EAAI,MAAiB,IAAG,EAAM,KAAO,MAAQ,KACxE,GAAO,GAAK,GAAK,OAAU,EAAI,QAAkB,EAAI,MAAS,QAAO,IAC3E,SAASC,IAAY,EAAM,EAAM,EAAG,CAClC,IAAM,EAAI,GAAK,GAAI,EAAK,CAAC,CAAC,EACpB,EAAI,GAAK,GAAI,EAAK,CAAC,CAAC,EACpB,EAAI,GAAK,GAAI,EAAK,CAAC,CAAC,EAC1B,MAAO,CACL,EAAG,GAAID,GAAG,EAAI,GAAK,GAAK,GAAI,EAAK,CAAC,CAAC,EAAI,EAAE,CAAC,EAC1C,EAAG,GAAIA,GAAG,EAAI,GAAK,GAAK,GAAI,EAAK,CAAC,CAAC,EAAI,EAAE,CAAC,EAC1C,EAAG,GAAIA,GAAG,EAAI,GAAK,GAAK,GAAI,EAAK,CAAC,CAAC,EAAI,EAAE,CAAC,EAC1C,EAAG,EAAK,EAAI,GAAK,EAAK,EAAI,EAAK,EACjC,CACF,CAEA,SAAS,GAAO,EAAG,EAAG,EAAO,CAC3B,GAAI,EAAG,CACL,IAAI,EAAMH,GAAQ,CAAC,EACnB,EAAI,GAAK,KAAK,IAAI,EAAG,KAAK,IAAI,EAAI,GAAK,EAAI,GAAK,EAAO,IAAM,EAAI,IAAM,CAAC,CAAC,EACzE,EAAMC,GAAQ,CAAG,EACjB,EAAE,EAAI,EAAI,GACV,EAAE,EAAI,EAAI,GACV,EAAE,EAAI,EAAI,EACZ,CACF,CACA,SAASI,GAAM,EAAG,EAAO,CACvB,OAAO,GAAI,OAAO,OAAO,GAAS,CAAC,EAAG,CAAC,CACzC,CACA,SAAS,GAAW,EAAO,CACzB,IAAI,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG,EAYjC,OAXI,MAAM,QAAQ,CAAK,EACjB,EAAM,QAAU,IAClB,EAAI,CAAC,EAAG,EAAM,GAAI,EAAG,EAAM,GAAI,EAAG,EAAM,GAAI,EAAG,GAAG,EAC9C,EAAM,OAAS,IACjB,EAAE,EAAI,GAAI,EAAM,EAAE,KAItB,EAAIA,GAAM,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,EACzC,EAAE,EAAI,GAAI,EAAE,CAAC,GAER,CACT,CACA,SAAS,IAAc,EAAK,CAI1B,OAHI,EAAI,OAAO,CAAC,IAAM,IACb,IAAS,CAAG,EAEd,IAAS,CAAG,CACrB,CACA,IAAMC,GAAN,MAAMA,CAAM,CACV,YAAY,EAAO,CACjB,GAAI,aAAiBA,EACnB,OAAO,EAET,IAAM,EAAO,OAAO,EAChB,EACA,IAAS,SACX,EAAI,GAAW,CAAK,EACX,IAAS,WAClB,EAAI,IAAS,CAAK,GAAK,IAAU,CAAK,GAAK,IAAc,CAAK,GAEhE,KAAK,KAAO,EACZ,KAAK,OAAS,CAAC,CAAC,CAClB,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,MACd,CACA,IAAI,KAAM,CACR,IAAI,EAAID,GAAM,KAAK,IAAI,EAIvB,OAHI,IACF,EAAE,EAAI,GAAI,EAAE,CAAC,GAER,CACT,CACA,IAAI,IAAI,EAAK,CACX,KAAK,KAAO,GAAW,CAAG,CAC5B,CACA,WAAY,CACV,OAAO,KAAK,OAAS,IAAU,KAAK,IAAI,EAAI,MAC9C,CACA,WAAY,CACV,OAAO,KAAK,OAAS,IAAU,KAAK,IAAI,EAAI,MAC9C,CACA,WAAY,CACV,OAAO,KAAK,OAAS,IAAU,KAAK,IAAI,EAAI,MAC9C,CACA,IAAI,EAAO,EAAQ,CACjB,GAAI,EAAO,CACT,IAAM,EAAK,KAAK,IACV,EAAK,EAAM,IACb,EACE,EAAI,IAAW,EAAK,GAAM,EAC1B,EAAI,EAAI,EAAI,EACZ,EAAI,EAAG,EAAI,EAAG,EACd,IAAO,EAAI,IAAM,GAAK,GAAK,EAAI,IAAM,EAAI,EAAI,IAAM,GAAK,EAC9D,EAAK,EAAI,EACT,EAAG,EAAI,IAAO,EAAK,EAAG,EAAI,EAAK,EAAG,EAAI,GACtC,EAAG,EAAI,IAAO,EAAK,EAAG,EAAI,EAAK,EAAG,EAAI,GACtC,EAAG,EAAI,IAAO,EAAK,EAAG,EAAI,EAAK,EAAG,EAAI,GACtC,EAAG,EAAI,EAAI,EAAG,GAAK,EAAI,GAAK,EAAG,EAC/B,KAAK,IAAM,CACb,CACA,OAAO,IACT,CACA,YAAY,EAAO,EAAG,CAIpB,OAHI,IACF,KAAK,KAAOD,IAAY,KAAK,KAAM,EAAM,KAAM,CAAC,GAE3C,IACT,CACA,OAAQ,CACN,OAAO,IAAIE,EAAM,KAAK,GAAG,CAC3B,CACA,MAAM,EAAG,CAEP,MADA,MAAK,KAAK,EAAI,GAAI,CAAC,EACZ,IACT,CACA,QAAQ,EAAO,CACb,IAAM,EAAM,KAAK,KAEjB,MADA,GAAI,GAAK,EAAI,EACN,IACT,CACA,WAAY,CACV,IAAM,EAAM,KAAK,KAGjB,MADA,GAAI,EAAI,EAAI,EAAI,EAAI,EADRnE,GAAM,EAAI,EAAI,GAAM,EAAI,EAAI,IAAO,EAAI,EAAI,GAC7B,EACnB,IACT,CACA,QAAQ,EAAO,CACb,IAAM,EAAM,KAAK,KAEjB,MADA,GAAI,GAAK,EAAI,EACN,IACT,CACA,QAAS,CACP,IAAM,EAAI,KAAK,KAIf,MAHA,GAAE,EAAI,IAAM,EAAE,EACd,EAAE,EAAI,IAAM,EAAE,EACd,EAAE,EAAI,IAAM,EAAE,EACP,IACT,CACA,QAAQ,EAAO,CAEb,OADA,GAAO,KAAK,KAAM,EAAG,CAAK,EACnB,IACT,CACA,OAAO,EAAO,CAEZ,OADA,GAAO,KAAK,KAAM,EAAG,CAAC,CAAK,EACpB,IACT,CACA,SAAS,EAAO,CAEd,OADA,GAAO,KAAK,KAAM,EAAG,CAAK,EACnB,IACT,CACA,WAAW,EAAO,CAEhB,OADA,GAAO,KAAK,KAAM,EAAG,CAAC,CAAK,EACpB,IACT,CACA,OAAO,EAAK,CAEV,OADA,IAAO,KAAK,KAAM,CAAG,EACd,IACT,CACF,EC1jBI,SAAS,IAAO,CACT,CAGP,IAAMnF,SAAW,CACjB,IAAI,EAAK,EACT,UAAW,GACf,GAAG,EAKC,SAAS,GAAc,EAAO,CAC9B,OAAO,GAAU,IACrB,CAKI,SAAS,GAAQ,EAAO,CACxB,GAAI,MAAM,SAAW,MAAM,QAAQ,CAAK,EACpC,MAAO,GAEX,IAAM,EAAO,OAAO,UAAU,SAAS,KAAK,CAAK,EAIjD,OAHI,EAAK,MAAM,EAAG,CAAC,IAAM,WAAa,EAAK,MAAM,EAAE,IAAM,QAI7D,CAKI,SAAS2G,GAAS,EAAO,CACzB,OAAO,IAAU,MAAQ,OAAO,UAAU,SAAS,KAAK,CAAK,IAAM,iBACvE,CAII,SAAS,GAAe,EAAO,CAC/B,OAAQ,OAAO,GAAU,UAAY,aAAiB,SAAW,SAAS,CAAC,CAAK,CACpF,CAKI,SAAS,GAAgB,EAAO,EAAc,CAC9C,OAAO,GAAe,CAAK,EAAI,EAAQ,CAC3C,CAKI,SAAS,GAAe,EAAO,EAAc,CAC7C,OAAc,IAAU,OAAc,EAAe,CACzD,CACA,IAAM,KAAgB,EAAO,IAAY,OAAO,GAAU,UAAY,EAAM,SAAS,GAAG,EAAI,WAAW,CAAK,EAAI,IAAM,CAAC,EAAQ,EACzH,IAAe,EAAO,IAAY,OAAO,GAAU,UAAY,EAAM,SAAS,GAAG,EAAI,WAAW,CAAK,EAAI,IAAM,EAAY,CAAC,EAO9H,SAAS,GAAS,EAAI,EAAM,EAAS,CACrC,GAAI,GAAM,OAAO,EAAG,MAAS,WACzB,OAAO,EAAG,MAAM,EAAS,CAAI,CAErC,CACA,SAAS1C,GAAK,EAAU,EAAI,EAAS,EAAS,CAC1C,IAAI,EAAG,EAAK,EACZ,GAAI,GAAQ,CAAQ,EAEhB,GADA,EAAM,EAAS,OACX,EACA,IAAI,EAAI,EAAM,EAAG,GAAK,EAAG,IACrB,EAAG,KAAK,EAAS,EAAS,GAAI,CAAC,OAGnC,IAAI,EAAI,EAAG,EAAI,EAAK,IAChB,EAAG,KAAK,EAAS,EAAS,GAAI,CAAC,OAGpC,GAAI0C,GAAS,CAAQ,EAGxB,IAFA,EAAO,OAAO,KAAK,CAAQ,EAC3B,EAAM,EAAK,OACP,EAAI,EAAG,EAAI,EAAK,IAChB,EAAG,KAAK,EAAS,EAAS,EAAK,IAAK,EAAK,EAAE,CAGvD,CAMI,SAAS,GAAe,EAAI,EAAI,CAChC,IAAI,EAAG,EAAM,EAAI,EACjB,GAAI,CAAC,GAAM,CAAC,GAAM,EAAG,SAAW,EAAG,OAC/B,MAAO,GAEX,IAAI,EAAI,EAAG,EAAO,EAAG,OAAQ,EAAI,EAAM,EAAE,EAGrC,GAFA,EAAK,EAAG,GACR,EAAK,EAAG,GACJ,EAAG,eAAiB,EAAG,cAAgB,EAAG,QAAU,EAAG,MACvD,MAAO,GAGf,MAAO,EACX,CAII,SAAS,GAAM,EAAQ,CACvB,GAAI,GAAQ,CAAM,EACd,OAAO,EAAO,IAAI,EAAK,EAE3B,GAAIA,GAAS,CAAM,EAAG,CAClB,IAAM,EAAS,OAAO,OAAO,IAAI,EAC3B,EAAO,OAAO,KAAK,CAAM,EACzB,EAAO,EAAK,OACd,EAAI,EACR,KAAM,EAAI,EAAM,EAAE,EACd,EAAO,EAAK,IAAM,GAAM,EAAO,EAAK,GAAG,EAE3C,OAAO,CACX,CACA,OAAO,CACX,CACA,SAAS,GAAW,EAAK,CACrB,MAAO,CACH,YACA,YACA,aACJ,EAAE,QAAQ,CAAG,IAAM,EACvB,CAKI,SAAS,IAAQ,EAAK,EAAQ,EAAQ,EAAS,CAC/C,GAAI,CAAC,GAAW,CAAG,EACf,OAEJ,IAAM,EAAO,EAAO,GACd,EAAO,EAAO,GAChBA,GAAS,CAAI,GAAKA,GAAS,CAAI,EAE/B,GAAM,EAAM,EAAM,CAAO,EAEzB,EAAO,GAAO,GAAM,CAAI,CAEhC,CACA,SAAS4C,GAAM,EAAQ,EAAQ,EAAS,CACpC,IAAM,EAAU,GAAQ,CAAM,EAAI,EAAS,CACvC,CACJ,EACM,EAAO,EAAQ,OACrB,GAAI,CAAC5C,GAAS,CAAM,EAChB,OAAO,EAEX,IAAqB,CAAC,EACtB,IAAM,EAAS,EAAQ,QAAU,IAC7B,EACJ,IAAI,IAAI,EAAI,EAAG,EAAI,EAAM,EAAE,EAAE,CAEzB,GADA,EAAU,EAAQ,GACd,CAACA,GAAS,CAAO,EACjB,SAEJ,IAAM,EAAO,OAAO,KAAK,CAAO,EAChC,IAAI,IAAI,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EAC3C,EAAO,EAAK,GAAI,EAAQ,EAAS,CAAO,CAEhD,CACA,OAAO,CACX,CACA,SAAS,GAAQ,EAAQ,EAAQ,CAE7B,OAAO4C,GAAM,EAAQ,EAAQ,CACzB,OAAQ,GACZ,CAAC,CACL,CAII,SAAS,IAAU,EAAK,EAAQ,EAAQ,CACxC,GAAI,CAAC,GAAW,CAAG,EACf,OAEJ,IAAM,EAAO,EAAO,GACd,EAAO,EAAO,GAChB5C,GAAS,CAAI,GAAKA,GAAS,CAAI,EAC/B,GAAQ,EAAM,CAAI,EACV,OAAO,UAAU,eAAe,KAAK,EAAQ,CAAG,IACxD,EAAO,GAAO,GAAM,CAAI,EAEhC,CASA,IAAM,GAAe,CAEjB,GAAK,GAAI,EAET,EAAI,GAAI,EAAE,EACV,EAAI,GAAI,EAAE,CACd,EAGI,SAAS,IAAU,EAAK,CACxB,IAAM,EAAQ,EAAI,MAAM,GAAG,EACrB,EAAO,CAAC,EACV,EAAM,GACV,IAAK,IAAM,KAAQ,EACf,GAAO,EACH,EAAI,SAAS,IAAI,EACjB,EAAM,EAAI,MAAM,EAAG,EAAE,EAAI,KAEzB,EAAK,KAAK,CAAG,EACb,EAAM,IAGd,OAAO,CACX,CACA,SAAS,IAAgB,EAAK,CAC1B,IAAM,EAAO,IAAU,CAAG,EAC1B,MAAQ,IAAM,CACV,IAAK,IAAM,KAAK,EAAK,CACjB,GAAI,IAAM,GACN,MAEJ,IAAa,EAAI,EACrB,CACA,OAAO,CACX,CACJ,CACA,SAAS,GAAiB,EAAK,EAAK,CAEhC,OADiB,GAAa,KAAS,GAAa,GAAO,IAAgB,CAAG,IAC9D,CAAG,CACvB,CAGI,SAAS,GAAY,EAAK,CAC1B,OAAO,EAAI,OAAO,CAAC,EAAE,YAAY,EAAI,EAAI,MAAM,CAAC,CACpD,CACA,IAAM,GAAW,GAAe,IAAU,OACpC6C,GAAc,GAAQ,OAAO,GAAU,WAEvC,IAAa,EAAG,IAAI,CACtB,GAAI,EAAE,OAAS,EAAE,KACb,MAAO,GAEX,IAAK,IAAM,KAAQ,EACf,GAAI,CAAC,EAAE,IAAI,CAAI,EACX,MAAO,GAGf,MAAO,EACX,EAII,SAAS,IAAc,EAAG,CAC1B,OAAO,EAAE,OAAS,WAAa,EAAE,OAAS,SAAW,EAAE,OAAS,aACpE,CAKI,IAAMC,GAAK,KAAK,GACd,GAAM,EAAIA,GACV,IAAQ,GAAMA,GACd,GAAW,IACX,IAAcA,GAAK,IACnB,GAAUA,GAAK,EACf,GAAaA,GAAK,EAClB,GAAgBA,GAAK,EAAI,EACzB,GAAQ,KAAK,MACb,GAAO,KAAK,KAClB,SAAS,GAAa,EAAG,EAAG,EAAS,CACjC,OAAO,KAAK,IAAI,EAAI,CAAC,EAAI,CAC7B,CAGI,SAAS,GAAQ,EAAO,CACxB,IAAM,EAAe,KAAK,MAAM,CAAK,EACrC,EAAQ,GAAa,EAAO,EAAc,EAAQ,GAAI,EAAI,EAAe,EACzE,IAAM,EAAqB,IAAI,KAAK,MAAM,GAAM,CAAK,CAAC,EAChD,EAAW,EAAQ,EAEzB,OADqB,GAAY,EAAI,EAAI,GAAY,EAAI,EAAI,GAAY,EAAI,EAAI,IAC3D,CAC1B,CAII,SAAS,IAAW,EAAO,CAC3B,IAAM,EAAS,CAAC,EACV,EAAO,KAAK,KAAK,CAAK,EACxB,EACJ,IAAI,EAAI,EAAG,EAAI,EAAM,IACb,EAAQ,IAAM,IACd,EAAO,KAAK,CAAC,EACb,EAAO,KAAK,EAAQ,CAAC,GAO7B,OAJI,KAAU,EAAO,IACjB,EAAO,KAAK,CAAI,EAEpB,EAAO,MAAM,EAAG,IAAI,EAAI,CAAC,EAAE,IAAI,EACxB,CACX,CAGI,SAAS,IAAe,EAAG,CAC3B,OAAO,OAAO,GAAM,UAAY,OAAO,GAAM,YAAY,GAAc,EAAE,OAAO,eAAe,GAAK,aAAc,GAAK,YAAa,EACxI,CACA,SAAS,GAAS,EAAG,CACjB,MAAO,CAAC,IAAe,CAAC,GAAK,CAAC,MAAM,WAAW,CAAC,CAAC,GAAK,SAAS,CAAC,CACpE,CACA,SAAS,IAAY,EAAG,EAAS,CAC7B,IAAM,EAAU,KAAK,MAAM,CAAC,EAC5B,OAAO,EAAU,GAAW,GAAK,EAAU,GAAW,CAC1D,CAGI,SAAS,GAAmB,EAAO,EAAQ,EAAU,CACrD,IAAI,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IACtC,EAAQ,EAAM,GAAG,GACZ,MAAM,CAAK,IACZ,EAAO,IAAM,KAAK,IAAI,EAAO,IAAK,CAAK,EACvC,EAAO,IAAM,KAAK,IAAI,EAAO,IAAK,CAAK,EAGnD,CACA,SAAS,GAAU,EAAS,CACxB,OAAkBA,GAAK,IAAhB,CACX,CACA,SAAS,GAAU,EAAS,CACxB,MAAkB,KAAMA,GAAjB,CACX,CAOI,SAAS,GAAe,EAAG,CAC3B,GAAI,CAAC,GAAe,CAAC,EACjB,OAEJ,IAAI,EAAI,EACJ,EAAI,EACR,KAAM,KAAK,MAAM,EAAI,CAAC,EAAI,IAAM,GAC5B,GAAK,GACL,IAEJ,OAAO,CACX,CAEA,SAAS,GAAkB,EAAa,EAAY,CAChD,IAAM,EAAsB,EAAW,EAAI,EAAY,EACjD,EAAsB,EAAW,EAAI,EAAY,EACjD,EAA2B,KAAK,KAAK,EAAsB,EAAsB,EAAsB,CAAmB,EAC5H,EAAQ,KAAK,MAAM,EAAqB,CAAmB,EAI/D,OAHI,EAAQ,IAAOA,KACf,GAAS,IAEN,CACH,QACA,SAAU,CACd,CACJ,CACA,SAAS,GAAsB,EAAK,EAAK,CACrC,OAAO,KAAK,MAAc,EAAI,EAAI,EAAI,IAAG,GAAc,EAAI,EAAI,EAAI,IAAG,CAAE,CAC5E,CAII,SAAS,IAAW,EAAG,EAAG,CAC1B,OAAQ,EAAI,EAAI,KAAS,GAAMA,EACnC,CAII,SAAS,GAAgB,EAAG,CAC5B,OAAQ,EAAI,GAAM,IAAO,EAC7B,CAGI,SAAS,GAAc,EAAO,EAAO,EAAK,EAAuB,CACjE,IAAM,EAAI,GAAgB,CAAK,EACzB,EAAI,GAAgB,CAAK,EACzB,EAAI,GAAgB,CAAG,EACvB,EAAe,GAAgB,EAAI,CAAC,EACpC,EAAa,GAAgB,EAAI,CAAC,EAClC,EAAe,GAAgB,EAAI,CAAC,EACpC,EAAa,GAAgB,EAAI,CAAC,EACxC,OAAO,IAAM,GAAK,IAAM,GAAK,GAAyB,IAAM,GAAK,EAAe,GAAc,EAAe,CACjH,CAOI,SAAS,GAAY,EAAO,EAAK,EAAK,CACtC,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,CAAK,CAAC,CAC7C,CAII,SAAS,IAAY,EAAO,CAC5B,OAAO,GAAY,EAAO,OAAQ,KAAK,CAC3C,CAOI,SAAS,GAAW,EAAO,EAAO,EAAK,EAAU,KAAM,CACvD,OAAO,GAAS,KAAK,IAAI,EAAO,CAAG,EAAI,GAAW,GAAS,KAAK,IAAI,EAAO,CAAG,EAAI,CACtF,CAEA,SAAS,GAAQ,EAAO,EAAO,EAAK,CAChC,KAAe,GAAQ,EAAM,GAAS,GACtC,IAAI,EAAK,EAAM,OAAS,EACpB,EAAK,EACL,EACJ,KAAM,EAAK,EAAK,GACZ,EAAM,EAAK,GAAM,EACb,EAAI,CAAG,EACP,EAAK,EAEL,EAAK,EAGb,MAAO,CACH,KACA,IACJ,CACJ,CAQI,IAAM,IAAgB,EAAO,EAAK,EAAO,IAAO,GAAQ,EAAO,EAAO,EAAQ,GAAQ,CAClF,IAAM,EAAK,EAAM,GAAO,GACxB,OAAO,EAAK,GAAS,IAAO,GAAS,EAAM,EAAQ,GAAG,KAAS,CACnE,EAAK,GAAQ,EAAM,GAAO,GAAO,CAAK,EAOhC,KAAiB,EAAO,EAAK,IAAQ,GAAQ,EAAO,EAAQ,GAAQ,EAAM,GAAO,IAAQ,CAAK,EAOpG,SAAS,IAAe,EAAQ,EAAK,EAAK,CAC1C,IAAI,EAAQ,EACR,EAAM,EAAO,OACjB,KAAM,EAAQ,GAAO,EAAO,GAAS,GACjC,IAEJ,KAAM,EAAM,GAAS,EAAO,EAAM,GAAK,GACnC,IAEJ,OAAO,EAAQ,GAAK,EAAM,EAAO,OAAS,EAAO,MAAM,EAAO,CAAG,EAAI,CACzE,CACA,IAAM,GAAc,CAChB,OACA,MACA,QACA,SACA,SACJ,EACA,SAAS,IAAkB,EAAO,EAAU,CACxC,GAAI,EAAM,SAAU,CAChB,EAAM,SAAS,UAAU,KAAK,CAAQ,EACtC,MACJ,CACA,OAAO,eAAe,EAAO,WAAY,CACrC,aAAc,GACd,WAAY,GACZ,MAAO,CACH,UAAW,CACP,CACJ,CACJ,CACJ,CAAC,EACD,GAAY,QAAS,GAAM,CACvB,IAAM,EAAS,UAAY,GAAY,CAAG,EACpC,EAAO,EAAM,GACnB,OAAO,eAAe,EAAO,EAAK,CAC9B,aAAc,GACd,WAAY,GACZ,MAAO,GAAG,EAAM,CACZ,IAAM,EAAM,EAAK,MAAM,KAAM,CAAI,EAMjC,OALA,EAAM,SAAS,UAAU,QAAS,GAAS,CACnC,OAAO,EAAO,IAAY,YAC1B,EAAO,GAAQ,GAAG,CAAI,CAE9B,CAAC,EACM,CACX,CACJ,CAAC,CACL,CAAC,CACL,CACA,SAAS,GAAoB,EAAO,EAAU,CAC1C,IAAM,EAAO,EAAM,SACnB,GAAI,CAAC,EACD,OAEJ,IAAM,EAAY,EAAK,UACjB,EAAQ,EAAU,QAAQ,CAAQ,EACpC,IAAU,IACV,EAAU,OAAO,EAAO,CAAC,EAEzB,IAAU,OAAS,KAGvB,GAAY,QAAS,GAAM,CACvB,OAAO,EAAM,EACjB,CAAC,EACD,OAAO,EAAM,SACjB,CAGI,SAAS,GAAa,EAAO,CAC7B,IAAM,EAAM,IAAI,IAAI,CAAK,EAIzB,OAHI,EAAI,OAAS,EAAM,OACZ,EAEJ,MAAM,KAAK,CAAG,CACzB,CAOG,IAAM,GAAmB,UAAW,CAMnC,OALI,OAAO,OAAW,IACX,SAAS,EAAU,CACtB,OAAO,EAAS,CACpB,EAEG,OAAO,qBAClB,EAAE,EAIE,SAAS,GAAU,EAAI,EAAS,CAChC,IAAI,EAAY,CAAC,EACb,EAAU,GACd,OAAO,SAAS,GAAG,EAAM,CAErB,EAAY,EACP,IACD,EAAU,GACV,GAAiB,KAAK,WAAY,CAC9B,EAAU,GACV,EAAG,MAAM,EAAS,CAAS,CAC/B,CAAC,EAET,CACJ,CAGI,SAASzD,IAAS,EAAI,EAAO,CAC7B,IAAI,EACJ,OAAO,SAAS,GAAG,EAAM,CAOrB,OANI,GACA,aAAa,CAAO,EACpB,EAAU,WAAW,EAAI,EAAO,CAAI,GAEpC,EAAG,MAAM,KAAM,CAAI,EAEhB,CACX,CACJ,CAII,IAAM,GAAsB,GAAQ,IAAU,QAAU,OAAS,IAAU,MAAQ,QAAU,SAIvF,IAAkB,EAAO,EAAO,IAAM,IAAU,QAAU,EAAQ,IAAU,MAAQ,GAAO,EAAQ,GAAO,EAI1G,KAAU,EAAO,EAAM,EAAO,IAE7B,KADO,EAAM,OAAS,SACJ,EAAQ,IAAU,UAAY,EAAO,GAAS,EAAI,EAK3E,SAAS,IAAiC,EAAM,EAAQ,EAAoB,CAC5E,IAAM,EAAa,EAAO,OACtB,EAAQ,EACR,EAAQ,EACZ,GAAI,EAAK,QAAS,CACd,GAAM,CAAE,SAAS,SAAS,WAAa,EACjC,EAAW,EAAK,SAAU,EAAK,QAAQ,QAAU,EAAK,QAAQ,QAAQ,SAAW,KACjF,EAAO,EAAO,KACd,CAAE,MAAM,MAAM,aAAa,cAAgB,EAAO,cAAc,EACtE,GAAI,EAAY,CAIZ,GAHA,EAAQ,KAAK,IACb,GAAa,EAAS,EAAM,CAAG,EAAE,GACjC,EAAqB,EAAa,GAAa,EAAQ,EAAM,EAAO,iBAAiB,CAAG,CAAC,EAAE,EAAE,EACzF,EAAU,CACV,IAAM,EAAsB,EAAQ,MAAM,EAAG,EAAQ,CAAC,EAAE,QAAQ,EAAE,UAAW,GAAQ,CAAC,GAAc,EAAM,EAAO,KAAK,CAAC,EACvH,GAAS,KAAK,IAAI,EAAG,CAAmB,CAC5C,CACA,EAAQ,GAAY,EAAO,EAAG,EAAa,CAAC,CAChD,CACA,GAAI,EAAY,CACZ,IAAI,EAAM,KAAK,IACf,GAAa,EAAS,EAAO,KAAM,EAAK,EAAI,EAAE,GAAK,EACnD,EAAqB,EAAI,GAAa,EAAQ,EAAM,EAAO,iBAAiB,CAAG,EAAG,EAAI,EAAE,GAAK,CAAC,EAC9F,GAAI,EAAU,CACV,IAAM,EAAsB,EAAQ,MAAM,EAAM,CAAC,EAAE,UAAW,GAAQ,CAAC,GAAc,EAAM,EAAO,KAAK,CAAC,EACxG,GAAO,KAAK,IAAI,EAAG,CAAmB,CAC1C,CACA,EAAQ,GAAY,EAAK,EAAO,CAAU,EAAI,CAClD,MACI,EAAQ,EAAa,CAE7B,CACA,MAAO,CACH,QACA,OACJ,CACJ,CAMI,SAAS,IAAoB,EAAM,CACnC,GAAM,CAAE,SAAS,SAAS,gBAAkB,EACtC,EAAY,CACd,KAAM,EAAO,IACb,KAAM,EAAO,IACb,KAAM,EAAO,IACb,KAAM,EAAO,GACjB,EACA,GAAI,CAAC,EAED,MADA,GAAK,aAAe,EACb,GAEX,IAAM,EAAU,EAAa,OAAS,EAAO,KAAO,EAAa,OAAS,EAAO,KAAO,EAAa,OAAS,EAAO,KAAO,EAAa,OAAS,EAAO,IAEzJ,OADA,OAAO,OAAO,EAAc,CAAS,EAC9B,CACX,CAEA,IAAM,GAAU,GAAI,IAAM,GAAK,IAAM,EAC/B,IAAa,EAAG,EAAG,IAAI,EAAW,IAAG,GAAM,KAAW,KAAK,KAAK,EAAI,GAAK,GAAM,CAAC,GAChF,IAAc,EAAG,EAAG,IAAa,IAAG,IAAM,GAAK,KAAK,KAAK,EAAI,GAAK,GAAM,CAAC,EAAI,EAKzE,GAAU,CAChB,OAAS,GAAI,EACb,WAAa,GAAI,EAAI,EACrB,YAAc,GAAI,CAAC,GAAK,EAAI,GAC5B,cAAgB,IAAK,GAAK,IAAO,EAAI,GAAM,EAAI,EAAI,KAAQ,EAAE,GAAK,EAAI,GAAK,GAC3E,YAAc,GAAI,EAAI,EAAI,EAC1B,aAAe,GAAK,IAAU,EAAI,EAAI,EACtC,eAAiB,IAAK,GAAK,IAAO,EAAI,GAAM,EAAI,EAAI,EAAI,KAAQ,GAAK,GAAK,EAAI,EAAI,GAClF,YAAc,GAAI,EAAI,EAAI,EAAI,EAC9B,aAAe,GAAI,EAAG,IAAU,EAAI,EAAI,EAAI,GAC5C,eAAiB,IAAK,GAAK,IAAO,EAAI,GAAM,EAAI,EAAI,EAAI,EAAI,MAAS,GAAK,GAAK,EAAI,EAAI,EAAI,GAC3F,YAAc,GAAI,EAAI,EAAI,EAAI,EAAI,EAClC,aAAe,GAAK,IAAU,EAAI,EAAI,EAAI,EAAI,EAC9C,eAAiB,IAAK,GAAK,IAAO,EAAI,GAAM,EAAI,EAAI,EAAI,EAAI,EAAI,KAAQ,GAAK,GAAK,EAAI,EAAI,EAAI,EAAI,GAClG,WAAa,GAAI,CAAC,KAAK,IAAI,EAAI,EAAO,EAAI,EAC1C,YAAc,GAAI,KAAK,IAAI,EAAI,EAAO,EACtC,cAAgB,GAAI,KAAQ,KAAK,IAAIyD,GAAK,CAAC,EAAI,GAC/C,WAAa,GAAI,IAAM,EAAI,EAAa,IAAG,IAAM,EAAI,IACrD,YAAc,GAAI,IAAM,EAAI,EAAI,EAAU,IAAG,IAAM,IAAK,EACxD,cAAgB,GAAI,GAAO,CAAC,EAAI,EAAI,EAAI,GAAM,GAAe,IAAG,IAAM,EAAI,EAAI,IAAM,IAAO,EAAU,IAAG,KAAO,EAAI,EAAI,KAAM,GAC7H,WAAa,GAAI,GAAK,EAAI,EAAI,EAAE,KAAK,KAAK,EAAI,EAAI,CAAC,EAAI,GACvD,YAAc,GAAI,KAAK,KAAK,GAAK,IAAU,CAAC,EAC5C,cAAgB,IAAK,GAAK,IAAO,EAAI,KAAQ,KAAK,KAAK,EAAI,EAAI,CAAC,EAAI,GAAK,IAAO,KAAK,KAAK,GAAK,GAAK,GAAK,CAAC,EAAI,GAC9G,cAAgB,GAAI,GAAO,CAAC,EAAI,EAAI,GAAU,EAAG,KAAO,EAAG,EAC3D,eAAiB,GAAI,GAAO,CAAC,EAAI,EAAI,GAAW,EAAG,KAAO,EAAG,EAC7D,iBAAkB,EAAG,CACjB,IAAM,EAAI,MACJ,EAAI,IACV,OAAO,GAAO,CAAC,EAAI,EAAI,EAAI,GAAM,GAAM,GAAU,EAAI,EAAG,EAAG,CAAC,EAAI,GAAM,GAAM,GAAW,EAAI,EAAI,EAAG,EAAG,CAAC,CAC1G,EACA,WAAY,EAAG,CAEX,OAAO,EAAI,GAAM,QAAS,EAAI,QAClC,EACA,YAAa,EAAG,CAEZ,MAAQ,IAAU,GAAM,QAAS,EAAI,SAAK,CAC9C,EACA,cAAe,EAAG,CACd,IAAI,EAAI,QAIR,OAHK,GAAK,IAAO,EACN,IAAO,EAAI,KAAO,GAAK,OAAS,GAAK,EAAI,IAE7C,KAAQ,GAAK,GAAK,KAAO,GAAK,OAAS,GAAK,EAAI,GAAK,EAChE,EACA,aAAe,GAAI,EAAI,GAAQ,cAAc,EAAI,CAAC,EAClD,cAAe,EAAG,CACd,IAAM,EAAI,OACJ,EAAI,KAUV,OATI,EAAI,EAAI,EACD,EAAI,EAAI,EAEf,EAAI,EAAI,EACD,GAAK,GAAK,IAAM,GAAK,EAAI,IAEhC,EAAI,IAAM,EACH,GAAK,GAAK,KAAO,GAAK,EAAI,MAE9B,GAAK,GAAK,MAAQ,GAAK,EAAI,OACtC,EACA,gBAAkB,GAAI,EAAI,GAAM,GAAQ,aAAa,EAAI,CAAC,EAAI,GAAM,GAAQ,cAAc,EAAI,EAAI,CAAC,EAAI,GAAM,EACjH,EAEA,SAAS,GAAoB,EAAO,CAChC,GAAI,GAAS,OAAO,GAAU,SAAU,CACpC,IAAM,EAAO,EAAM,SAAS,EAC5B,OAAO,IAAS,0BAA4B,IAAS,yBACzD,CACA,MAAO,EACX,CACA,SAAS,GAAM,EAAO,CAClB,OAAO,GAAoB,CAAK,EAAI,EAAQ,IAAIH,GAAM,CAAK,CAC/D,CACA,SAAS,GAAc,EAAO,CAC1B,OAAO,GAAoB,CAAK,EAAI,EAAQ,IAAIA,GAAM,CAAK,EAAE,SAAS,EAAG,EAAE,OAAO,EAAG,EAAE,UAAU,CACrG,CAEA,IAAM,IAAU,CACZ,IACA,IACA,cACA,SACA,SACJ,EACM,IAAS,CACX,QACA,cACA,iBACJ,EACA,SAAS,IAAwB,EAAU,CACvC,EAAS,IAAI,YAAa,CACtB,MAAO,OACP,SAAU,IACV,OAAQ,eACR,GAAI,OACJ,KAAM,OACN,KAAM,OACN,GAAI,OACJ,KAAM,MACV,CAAC,EACD,EAAS,SAAS,YAAa,CAC3B,UAAW,GACX,WAAY,GACZ,YAAc,GAAO,IAAS,cAAgB,IAAS,cAAgB,IAAS,IACpF,CAAC,EACD,EAAS,IAAI,aAAc,CACvB,OAAQ,CACJ,KAAM,QACN,WAAY,GAChB,EACA,QAAS,CACL,KAAM,SACN,WAAY,GAChB,CACJ,CAAC,EACD,EAAS,SAAS,aAAc,CAC5B,UAAW,WACf,CAAC,EACD,EAAS,IAAI,cAAe,CACxB,OAAQ,CACJ,UAAW,CACP,SAAU,GACd,CACJ,EACA,OAAQ,CACJ,UAAW,CACP,SAAU,CACd,CACJ,EACA,KAAM,CACF,WAAY,CACR,OAAQ,CACJ,KAAM,aACV,EACA,QAAS,CACL,KAAM,UACN,SAAU,CACd,CACJ,CACJ,EACA,KAAM,CACF,WAAY,CACR,OAAQ,CACJ,GAAI,aACR,EACA,QAAS,CACL,KAAM,UACN,OAAQ,SACR,GAAK,GAAI,EAAI,CACjB,CACJ,CACJ,CACJ,CAAC,CACL,CAEA,SAAS,IAAqB,EAAU,CACpC,EAAS,IAAI,SAAU,CACnB,YAAa,GACb,QAAS,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,CACV,CACJ,CAAC,CACL,CAEA,IAAM,GAAY,IAAI,IACtB,SAAS,IAAgB,EAAQ,EAAS,CACtC,IAAqB,CAAC,EACtB,IAAM,EAAW,EAAS,KAAK,UAAU,CAAO,EAC5C,EAAY,GAAU,IAAI,CAAQ,EAKtC,OAJK,IACD,EAAY,IAAI,KAAK,aAAa,EAAQ,CAAO,EACjD,GAAU,IAAI,EAAU,CAAS,GAE9B,CACX,CACA,SAASI,GAAa,EAAK,EAAQ,EAAS,CACxC,OAAO,IAAgB,EAAQ,CAAO,EAAE,OAAO,CAAG,CACtD,CAEA,IAAM,GAAa,CAClB,OAAQ,EAAO,CACR,OAAO,GAAQ,CAAK,EAAK,EAAQ,GAAK,CAC1C,EACH,QAAS,EAAW,EAAO,EAAO,CAC3B,GAAI,IAAc,EACd,MAAO,IAEX,IAAM,EAAS,KAAK,MAAM,QAAQ,OAC9B,EACA,EAAQ,EACZ,GAAI,EAAM,OAAS,EAAG,CAClB,IAAM,EAAU,KAAK,IAAI,KAAK,IAAI,EAAM,GAAG,KAAK,EAAG,KAAK,IAAI,EAAM,EAAM,OAAS,GAAG,KAAK,CAAC,GACtF,EAAU,MAAQ,EAAU,mBAC5B,EAAW,cAEf,EAAQ,IAAe,EAAW,CAAK,CAC3C,CACA,IAAM,EAAW,GAAM,KAAK,IAAI,CAAK,CAAC,EAChC,EAAa,MAAM,CAAQ,EAAI,EAAI,KAAK,IAAI,KAAK,IAAI,GAAK,KAAK,MAAM,CAAQ,EAAG,EAAE,EAAG,CAAC,EACtF,EAAU,CACZ,WACA,sBAAuB,EACvB,sBAAuB,CAC3B,EAEA,OADA,OAAO,OAAO,EAAS,KAAK,QAAQ,MAAM,MAAM,EACzCA,GAAa,EAAW,EAAQ,CAAO,CAClD,EACH,YAAa,EAAW,EAAO,EAAO,CAC/B,GAAI,IAAc,EACd,MAAO,IAEX,IAAM,EAAS,EAAM,GAAO,aAAe,EAAqB,IAAI,KAAK,MAAM,GAAM,CAAS,CAAC,EAW/F,MAVI,CACA,EACA,EACA,EACA,EACA,GACA,EACJ,EAAE,SAAS,CAAM,GAAK,EAAQ,GAAM,EAAM,OAC/B,GAAW,QAAQ,KAAK,KAAM,EAAW,EAAO,CAAK,EAEzD,EACX,CACJ,EACA,SAAS,IAAe,EAAW,EAAO,CACtC,IAAI,EAAQ,EAAM,OAAS,EAAI,EAAM,GAAG,MAAQ,EAAM,GAAG,MAAQ,EAAM,GAAG,MAAQ,EAAM,GAAG,MAI3F,OAHI,KAAK,IAAI,CAAK,GAAK,GAAK,IAAc,KAAK,MAAM,CAAS,IAC1D,EAAQ,EAAY,KAAK,MAAM,CAAS,GAErC,CACX,CACC,IAAI,GAAQ,CACT,aACJ,EAEA,SAAS,IAAmB,EAAU,CAClC,EAAS,IAAI,QAAS,CAClB,QAAS,GACT,OAAQ,GACR,QAAS,GACT,YAAa,GACpB,OAAQ,QACD,KAAM,GACb,MAAO,EACA,KAAM,CACF,QAAS,GACT,UAAW,EACX,gBAAiB,GACjB,UAAW,GACX,WAAY,EACZ,WAAY,EAAM,IAAU,EAAQ,UACpC,WAAY,EAAM,IAAU,EAAQ,MACpC,OAAQ,EACZ,EACA,OAAQ,CACJ,QAAS,GACT,KAAM,CAAC,EACP,WAAY,EACZ,MAAO,CACX,EACA,MAAO,CACH,QAAS,GACT,KAAM,GACN,QAAS,CACL,IAAK,EACL,OAAQ,CACZ,CACJ,EACA,MAAO,CACH,YAAa,EACb,YAAa,GACb,OAAQ,GACR,gBAAiB,EACjB,gBAAiB,GACjB,QAAS,EACT,QAAS,GACT,SAAU,GACV,gBAAiB,EACjB,YAAa,EACb,SAAU,GAAM,WAAW,OAC3B,MAAO,CAAC,EACR,MAAO,CAAC,EACR,MAAO,SACP,WAAY,OACZ,kBAAmB,GACnB,cAAe,4BACf,gBAAiB,CACrB,CACJ,CAAC,EACD,EAAS,MAAM,cAAe,QAAS,GAAI,OAAO,EAClD,EAAS,MAAM,aAAc,QAAS,GAAI,aAAa,EACvD,EAAS,MAAM,eAAgB,QAAS,GAAI,aAAa,EACzD,EAAS,MAAM,cAAe,QAAS,GAAI,OAAO,EAClD,EAAS,SAAS,QAAS,CACvB,UAAW,GACX,YAAc,GAAO,CAAC,EAAK,WAAW,QAAQ,GAAK,CAAC,EAAK,WAAW,OAAO,GAAK,IAAS,YAAc,IAAS,SAChH,WAAa,GAAO,IAAS,cAAgB,IAAS,kBAAoB,IAAS,MACvF,CAAC,EACD,EAAS,SAAS,SAAU,CACxB,UAAW,OACf,CAAC,EACD,EAAS,SAAS,cAAe,CAC7B,YAAc,GAAO,IAAS,mBAAqB,IAAS,WAC5D,WAAa,GAAO,IAAS,iBACjC,CAAC,CACL,CAEA,IAAM,GAAY,OAAO,OAAO,IAAI,EAC9B,GAAc,OAAO,OAAO,IAAI,EACrC,SAAS,GAAW,EAAM,EAAK,CAC5B,GAAI,CAAC,EACD,OAAO,EAEX,IAAM,EAAO,EAAI,MAAM,GAAG,EAC1B,IAAI,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAG,EAAE,EAAE,CACvC,IAAM,EAAI,EAAK,GACf,EAAO,EAAK,KAAO,EAAK,GAAK,OAAO,OAAO,IAAI,EACnD,CACA,OAAO,CACX,CACA,SAAS,GAAI,EAAM,EAAO,EAAQ,CAI9B,OAHI,OAAO,GAAU,SACVH,GAAM,GAAW,EAAM,CAAK,EAAG,CAAM,EAEzCA,GAAM,GAAW,EAAM,EAAE,EAAG,CAAK,CAC5C,CAwFA,IAAI,GAA2B,IAAI,KAvFnB,CACZ,YAAY,EAAc,EAAU,CAChC,KAAK,UAAY,OACjB,KAAK,gBAAkB,kBACvB,KAAK,YAAc,kBACnB,KAAK,MAAQ,OACb,KAAK,SAAW,CAAC,EACjB,KAAK,iBAAoB,GAAU,EAAQ,MAAM,SAAS,oBAAoB,EAC9E,KAAK,SAAW,CAAC,EACjB,KAAK,OAAS,CACV,YACA,WACA,QACA,aACA,WACJ,EACA,KAAK,KAAO,CACR,OAAQ,qDACR,KAAM,GACN,MAAO,SACP,WAAY,IACZ,OAAQ,IACZ,EACA,KAAK,MAAQ,CAAC,EACd,KAAK,sBAAwB,EAAK,IAAU,GAAc,EAAQ,eAAe,EACjF,KAAK,kBAAoB,EAAK,IAAU,GAAc,EAAQ,WAAW,EACzE,KAAK,YAAc,EAAK,IAAU,GAAc,EAAQ,KAAK,EAC7D,KAAK,UAAY,IACjB,KAAK,YAAc,CACf,KAAM,UACN,UAAW,GACX,iBAAkB,EACtB,EACA,KAAK,oBAAsB,GAC3B,KAAK,QAAU,KACf,KAAK,QAAU,KACf,KAAK,QAAU,GACf,KAAK,QAAU,CAAC,EAChB,KAAK,WAAa,GAClB,KAAK,MAAQ,OACb,KAAK,OAAS,CAAC,EACf,KAAK,SAAW,GAChB,KAAK,wBAA0B,GAC/B,KAAK,SAAS,CAAY,EAC1B,KAAK,MAAM,CAAS,CACxB,CACH,IAAI,EAAO,EAAQ,CACZ,OAAO,GAAI,KAAM,EAAO,CAAM,CAClC,CACH,IAAI,EAAO,CACJ,OAAO,GAAW,KAAM,CAAK,CACjC,CACH,SAAS,EAAO,EAAQ,CACjB,OAAO,GAAI,GAAa,EAAO,CAAM,CACzC,CACA,SAAS,EAAO,EAAQ,CACpB,OAAO,GAAI,GAAW,EAAO,CAAM,CACvC,CACH,MAAM,EAAO,EAAM,EAAa,EAAY,CACrC,IAAM,EAAc,GAAW,KAAM,CAAK,EACpC,EAAoB,GAAW,KAAM,CAAW,EAChD,EAAc,IAAM,EAC1B,OAAO,iBAAiB,EAAa,EAChC,GAAc,CACX,MAAO,EAAY,GACnB,SAAU,EACd,GACC,GAAO,CACJ,WAAY,GACZ,KAAO,CACH,IAAM,EAAQ,KAAK,GACb,EAAS,EAAkB,GAIjC,OAHI5C,GAAS,CAAK,EACP,OAAO,OAAO,CAAC,EAAG,EAAQ,CAAK,EAEnC,GAAe,EAAO,CAAM,CACvC,EACA,IAAK,EAAO,CACR,KAAK,GAAe,CACxB,CACJ,CACJ,CAAC,CACL,CACA,MAAM,EAAU,CACZ,EAAS,QAAS,GAAQ,EAAM,IAAI,CAAC,CACzC,CACJ,EAC4C,CACxC,YAAc,GAAO,CAAC,EAAK,WAAW,IAAI,EAC1C,WAAa,GAAO,IAAS,SAC7B,MAAO,CACH,UAAW,aACf,EACA,YAAa,CACT,YAAa,GACb,WAAY,EAChB,CACJ,EAAG,CACC,IACA,IACA,GACJ,CAAC,EAOG,SAAS,IAAa,EAAM,CAI5B,MAHI,CAAC,GAAQ,GAAc,EAAK,IAAI,GAAK,GAAc,EAAK,MAAM,EACvD,MAEH,EAAK,MAAQ,EAAK,MAAQ,IAAM,KAAO,EAAK,OAAS,EAAK,OAAS,IAAM,IAAM,EAAK,KAAO,MAAQ,EAAK,MACpH,CAGI,SAAS,GAAa,EAAK,EAAM,EAAI,EAAS,EAAQ,CACtD,IAAI,EAAY,EAAK,GAQrB,OAPK,IACD,EAAY,EAAK,GAAU,EAAI,YAAY,CAAM,EAAE,MACnD,EAAG,KAAK,CAAM,GAEd,EAAY,IACZ,EAAU,GAEP,CACX,CAIA,SAAS,IAAa,EAAK,EAAM,EAAe,EAAO,CACnD,IAAiB,CAAC,EAClB,IAAI,EAAO,EAAM,KAAO,EAAM,MAAQ,CAAC,EACnC,EAAK,EAAM,eAAiB,EAAM,gBAAkB,CAAC,EACrD,EAAM,OAAS,IACf,EAAO,EAAM,KAAO,CAAC,EACrB,EAAK,EAAM,eAAiB,CAAC,EAC7B,EAAM,KAAO,GAEjB,EAAI,KAAK,EACT,EAAI,KAAO,EACX,IAAI,EAAU,EACR,EAAO,EAAc,OACvB,EAAG,EAAG,EAAM,EAAO,EACvB,IAAI,EAAI,EAAG,EAAI,EAAM,IAGjB,GAFA,EAAQ,EAAc,GAElB,GAAiC,MAAQ,CAAC,GAAQ,CAAK,EACvD,EAAU,GAAa,EAAK,EAAM,EAAI,EAAS,CAAK,OACjD,GAAI,GAAQ,CAAK,EAGpB,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IACtC,EAAc,EAAM,GAEhB,GAA6C,MAAQ,CAAC,GAAQ,CAAW,IACzE,EAAU,GAAa,EAAK,EAAM,EAAI,EAAS,CAAW,GAK1E,EAAI,QAAQ,EACZ,IAAM,EAAQ,EAAG,OAAS,EAC1B,GAAI,EAAQ,EAAc,OAAQ,CAC9B,IAAI,EAAI,EAAG,EAAI,EAAO,IAClB,OAAO,EAAK,EAAG,IAEnB,EAAG,OAAO,EAAG,CAAK,CACtB,CACA,OAAO,CACX,CAQI,SAAS,GAAY,EAAO,EAAO,EAAO,CAC1C,IAAM,EAAmB,EAAM,wBACzB,EAAY,IAAU,EAA+B,EAA3B,KAAK,IAAI,EAAQ,EAAG,EAAG,EACvD,OAAO,KAAK,OAAO,EAAQ,GAAa,CAAgB,EAAI,EAAmB,CACnF,CAGI,SAAS,GAAY,EAAQ,EAAK,CAC9B,CAAC,GAAO,CAAC,IAGb,IAAa,EAAO,WAAW,IAAI,EACnC,EAAI,KAAK,EAGT,EAAI,eAAe,EACnB,EAAI,UAAU,EAAG,EAAG,EAAO,MAAO,EAAO,MAAM,EAC/C,EAAI,QAAQ,EAChB,CACA,SAAS,GAAU,EAAK,EAAS,EAAG,EAAG,CAEnC,GAAgB,EAAK,EAAS,EAAG,EAAG,IAAI,CAC5C,CAEA,SAAS,GAAgB,EAAK,EAAS,EAAG,EAAG,EAAG,CAC5C,IAAI,EAAM,EAAS,EAAS,EAAM,EAAc,EAAO,EAAU,EAC3D,EAAQ,EAAQ,WAChB,EAAW,EAAQ,SACnB,EAAS,EAAQ,OACnB,GAAO,GAAY,GAAK,IAC5B,GAAI,GAAS,OAAO,GAAU,WAC1B,EAAO,EAAM,SAAS,EAClB,IAAS,6BAA+B,IAAS,8BAA8B,CAC/E,EAAI,KAAK,EACT,EAAI,UAAU,EAAG,CAAC,EAClB,EAAI,OAAO,CAAG,EACd,EAAI,UAAU,EAAO,CAAC,EAAM,MAAQ,EAAG,CAAC,EAAM,OAAS,EAAG,EAAM,MAAO,EAAM,MAAM,EACnF,EAAI,QAAQ,EACZ,MACJ,CAEA,WAAM,CAAM,GAAK,GAAU,GAI/B,QADA,EAAI,UAAU,EACP,EAAP,CAEI,QACQ,EACA,EAAI,QAAQ,EAAG,EAAG,EAAI,EAAG,EAAQ,EAAG,EAAG,EAAG,EAE1C,EAAI,IAAI,EAAG,EAAG,EAAQ,EAAG,EAAG,EAEhC,EAAI,UAAU,EACd,MACJ,IAAK,WACD,EAAQ,EAAI,EAAI,EAAI,EACpB,EAAI,OAAO,EAAI,KAAK,IAAI,CAAG,EAAI,EAAO,EAAI,KAAK,IAAI,CAAG,EAAI,CAAM,EAChE,GAAO,GACP,EAAI,OAAO,EAAI,KAAK,IAAI,CAAG,EAAI,EAAO,EAAI,KAAK,IAAI,CAAG,EAAI,CAAM,EAChE,GAAO,GACP,EAAI,OAAO,EAAI,KAAK,IAAI,CAAG,EAAI,EAAO,EAAI,KAAK,IAAI,CAAG,EAAI,CAAM,EAChE,EAAI,UAAU,EACd,MACJ,IAAK,cAQD,EAAe,EAAS,KACxB,EAAO,EAAS,EAChB,EAAU,KAAK,IAAI,EAAM,EAAU,EAAI,EACvC,EAAW,KAAK,IAAI,EAAM,EAAU,GAAK,EAAI,EAAI,EAAI,EAAe,GACpE,EAAU,KAAK,IAAI,EAAM,EAAU,EAAI,EACvC,EAAW,KAAK,IAAI,EAAM,EAAU,GAAK,EAAI,EAAI,EAAI,EAAe,GACpE,EAAI,IAAI,EAAI,EAAU,EAAI,EAAS,EAAc,EAAM8C,GAAI,EAAM,EAAO,EACxE,EAAI,IAAI,EAAI,EAAU,EAAI,EAAS,EAAc,EAAM,GAAS,CAAG,EACnE,EAAI,IAAI,EAAI,EAAU,EAAI,EAAS,EAAc,EAAK,EAAM,EAAO,EACnE,EAAI,IAAI,EAAI,EAAU,EAAI,EAAS,EAAc,EAAM,GAAS,EAAMA,EAAE,EACxE,EAAI,UAAU,EACd,MACJ,IAAK,OACD,GAAI,CAAC,EAAU,CACX,EAAO,KAAK,QAAU,EACtB,EAAQ,EAAI,EAAI,EAAI,EACpB,EAAI,KAAK,EAAI,EAAO,EAAI,EAAM,EAAI,EAAO,EAAI,CAAI,EACjD,KACJ,CACA,GAAO,GACS,IAAK,UACrB,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,UAAU,EACd,MACJ,IAAK,WACD,GAAO,GACS,IAAK,QACrB,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,MACJ,IAAK,OACD,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,GAAO,GACP,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAW,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GACxC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,EAAI,OAAO,EAAI,EAAU,EAAI,CAAO,EACpC,MACJ,IAAK,OACD,EAAU,EAAI,EAAI,EAAI,KAAK,IAAI,CAAG,EAAI,EACtC,EAAU,KAAK,IAAI,CAAG,EAAI,EAC1B,EAAI,OAAO,EAAI,EAAS,EAAI,CAAO,EACnC,EAAI,OAAO,EAAI,EAAS,EAAI,CAAO,EACnC,MACJ,IAAK,OACD,EAAI,OAAO,EAAG,CAAC,EACf,EAAI,OAAO,EAAI,KAAK,IAAI,CAAG,GAAK,EAAI,EAAI,EAAI,GAAS,EAAI,KAAK,IAAI,CAAG,EAAI,CAAM,EAC/E,MACJ,IAAK,GACD,EAAI,UAAU,EACd,KACR,CACA,EAAI,KAAK,EACL,EAAQ,YAAc,GACtB,EAAI,OAAO,CAHf,CAKJ,CAOI,SAAS,GAAe,EAAO,EAAM,EAAQ,CAE7C,MADA,KAAmB,GACZ,CAAC,GAAQ,GAAS,EAAM,EAAI,EAAK,KAAO,GAAU,EAAM,EAAI,EAAK,MAAQ,GAAU,EAAM,EAAI,EAAK,IAAM,GAAU,EAAM,EAAI,EAAK,OAAS,CACrJ,CACA,SAAS,GAAS,EAAK,EAAM,CACzB,EAAI,KAAK,EACT,EAAI,UAAU,EACd,EAAI,KAAK,EAAK,KAAM,EAAK,IAAK,EAAK,MAAQ,EAAK,KAAM,EAAK,OAAS,EAAK,GAAG,EAC5E,EAAI,KAAK,CACb,CACA,SAAS,GAAW,EAAK,CACrB,EAAI,QAAQ,CAChB,CAGI,SAAS,IAAe,EAAK,EAAU,EAAQ,EAAM,EAAM,CAC3D,GAAI,CAAC,EACD,OAAO,EAAI,OAAO,EAAO,EAAG,EAAO,CAAC,EAExC,GAAI,IAAS,SAAU,CACnB,IAAM,GAAY,EAAS,EAAI,EAAO,GAAK,EAC3C,EAAI,OAAO,EAAU,EAAS,CAAC,EAC/B,EAAI,OAAO,EAAU,EAAO,CAAC,CACjC,MAAW,IAAS,SAAY,CAAC,CAAC,EAG9B,EAAI,OAAO,EAAO,EAAG,EAAS,CAAC,EAF/B,EAAI,OAAO,EAAS,EAAG,EAAO,CAAC,EAInC,EAAI,OAAO,EAAO,EAAG,EAAO,CAAC,CACjC,CAGI,SAAS,IAAe,EAAK,EAAU,EAAQ,EAAM,CACrD,GAAI,CAAC,EACD,OAAO,EAAI,OAAO,EAAO,EAAG,EAAO,CAAC,EAExC,EAAI,cAAc,EAAO,EAAS,KAAO,EAAS,KAAM,EAAO,EAAS,KAAO,EAAS,KAAM,EAAO,EAAO,KAAO,EAAO,KAAM,EAAO,EAAO,KAAO,EAAO,KAAM,EAAO,EAAG,EAAO,CAAC,CACxL,CACA,SAAS,IAAc,EAAK,EAAM,CAC1B,EAAK,aACL,EAAI,UAAU,EAAK,YAAY,GAAI,EAAK,YAAY,EAAE,EAErD,GAAc,EAAK,QAAQ,GAC5B,EAAI,OAAO,EAAK,QAAQ,EAExB,EAAK,QACL,EAAI,UAAY,EAAK,OAErB,EAAK,YACL,EAAI,UAAY,EAAK,WAErB,EAAK,eACL,EAAI,aAAe,EAAK,aAEhC,CACA,SAAS,IAAa,EAAK,EAAG,EAAG,EAAM,EAAM,CACzC,GAAI,EAAK,eAAiB,EAAK,UAAW,CAOtC,IAAM,EAAU,EAAI,YAAY,CAAI,EAC9B,EAAO,EAAI,EAAQ,sBACnB,EAAQ,EAAI,EAAQ,uBACpB,EAAM,EAAI,EAAQ,wBAClB,EAAS,EAAI,EAAQ,yBACrB,EAAc,EAAK,eAAiB,EAAM,GAAU,EAAI,EAC9D,EAAI,YAAc,EAAI,UACtB,EAAI,UAAU,EACd,EAAI,UAAY,EAAK,iBAAmB,EACxC,EAAI,OAAO,EAAM,CAAW,EAC5B,EAAI,OAAO,EAAO,CAAW,EAC7B,EAAI,OAAO,CACf,CACJ,CACA,SAAS,IAAa,EAAK,EAAM,CAC7B,IAAM,EAAW,EAAI,UACrB,EAAI,UAAY,EAAK,MACrB,EAAI,SAAS,EAAK,KAAM,EAAK,IAAK,EAAK,MAAO,EAAK,MAAM,EACzD,EAAI,UAAY,CACpB,CAGI,SAAS,GAAW,EAAK,EAAM,EAAG,EAAG,EAAM,EAAO,CAAC,EAAG,CACtD,IAAM,EAAQ,GAAQ,CAAI,EAAI,EAAO,CACjC,CACJ,EACM,EAAS,EAAK,YAAc,GAAK,EAAK,cAAgB,GACxD,EAAG,EAIP,IAHA,EAAI,KAAK,EACT,EAAI,KAAO,EAAK,OAChB,IAAc,EAAK,CAAI,EACnB,EAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,EAC3B,EAAO,EAAM,GACT,EAAK,UACL,IAAa,EAAK,EAAK,QAAQ,EAE/B,IACI,EAAK,cACL,EAAI,YAAc,EAAK,aAEtB,GAAc,EAAK,WAAW,IAC/B,EAAI,UAAY,EAAK,aAEzB,EAAI,WAAW,EAAM,EAAG,EAAG,EAAK,QAAQ,GAE5C,EAAI,SAAS,EAAM,EAAG,EAAG,EAAK,QAAQ,EACtC,IAAa,EAAK,EAAG,EAAG,EAAM,CAAI,EAClC,GAAK,OAAO,EAAK,UAAU,EAE/B,EAAI,QAAQ,CAChB,CAKI,SAAS,GAAmB,EAAK,EAAM,CACvC,GAAM,CAAE,IAAI,IAAI,IAAI,IAAI,UAAY,EAEpC,EAAI,IAAI,EAAI,EAAO,QAAS,EAAI,EAAO,QAAS,EAAO,QAAS,IAAMA,GAAIA,GAAI,EAAI,EAElF,EAAI,OAAO,EAAG,EAAI,EAAI,EAAO,UAAU,EAEvC,EAAI,IAAI,EAAI,EAAO,WAAY,EAAI,EAAI,EAAO,WAAY,EAAO,WAAYA,GAAI,GAAS,EAAI,EAE9F,EAAI,OAAO,EAAI,EAAI,EAAO,YAAa,EAAI,CAAC,EAE5C,EAAI,IAAI,EAAI,EAAI,EAAO,YAAa,EAAI,EAAI,EAAO,YAAa,EAAO,YAAa,GAAS,EAAG,EAAI,EAEpG,EAAI,OAAO,EAAI,EAAG,EAAI,EAAO,QAAQ,EAErC,EAAI,IAAI,EAAI,EAAI,EAAO,SAAU,EAAI,EAAO,SAAU,EAAO,SAAU,EAAG,CAAC,GAAS,EAAI,EAExF,EAAI,OAAO,EAAI,EAAO,QAAS,CAAC,CACpC,CAEA,IAAM,IAAc,uCACd,IAAa,wEAWf,SAAS,IAAa,EAAO,EAAM,CACnC,IAAM,GAAW,GAAK,GAAO,MAAM,GAAW,EAC9C,GAAI,CAAC,GAAW,EAAQ,KAAO,SAC3B,OAAO,EAAO,IAGlB,OADA,EAAQ,CAAC,EAAQ,GACV,EAAQ,GAAf,CACI,IAAK,KACD,OAAO,EACX,IAAK,IACD,GAAS,IACT,KACR,CACA,OAAO,EAAO,CAClB,CACA,IAAM,IAAgB,GAAI,CAAC,GAAK,EAChC,SAAS,GAAkB,EAAO,EAAO,CACrC,IAAM,EAAM,CAAC,EACP,EAAW9C,GAAS,CAAK,EACzB,EAAO,EAAW,OAAO,KAAK,CAAK,EAAI,EACvC,EAAOA,GAAS,CAAK,EAAI,EAAY,GAAO,GAAe,EAAM,GAAO,EAAM,EAAM,GAAM,EAAK,GAAO,EAAM,OAAY,EAC9H,IAAK,IAAM,KAAQ,EACf,EAAI,GAAQ,IAAa,EAAK,CAAI,CAAC,EAEvC,OAAO,CACX,CAQI,SAAS,GAAO,EAAO,CACvB,OAAO,GAAkB,EAAO,CAC5B,IAAK,IACL,MAAO,IACP,OAAQ,IACR,KAAM,GACV,CAAC,CACL,CAOI,SAAS,GAAc,EAAO,CAC9B,OAAO,GAAkB,EAAO,CAC5B,UACA,WACA,aACA,aACJ,CAAC,CACL,CAQI,SAAS,GAAU,EAAO,CAC1B,IAAM,EAAM,GAAO,CAAK,EAGxB,MAFA,GAAI,MAAQ,EAAI,KAAO,EAAI,MAC3B,EAAI,OAAS,EAAI,IAAM,EAAI,OACpB,CACX,CAOI,SAAS,GAAO,EAAS,EAAU,CACnC,IAAqB,CAAC,EACtB,IAAuB,GAAS,KAChC,IAAI,EAAO,GAAe,EAAQ,KAAM,EAAS,IAAI,EACjD,OAAO,GAAS,WAChB,EAAO,SAAS,EAAM,EAAE,GAE5B,IAAI,EAAQ,GAAe,EAAQ,MAAO,EAAS,KAAK,EACpD,GAAS,EAAE,GAAK,GAAO,MAAM,GAAU,IACvC,QAAQ,KAAK,kCAAoC,EAAQ,GAAG,EAC5D,EAAQ,QAEZ,IAAM,EAAO,CACT,OAAQ,GAAe,EAAQ,OAAQ,EAAS,MAAM,EACtD,WAAY,IAAa,GAAe,EAAQ,WAAY,EAAS,UAAU,EAAG,CAAI,EACtF,OACA,QACA,OAAQ,GAAe,EAAQ,OAAQ,EAAS,MAAM,EACtD,OAAQ,EACZ,EAEA,MADA,GAAK,OAAS,IAAa,CAAI,EACxB,CACX,CAWI,SAAS,GAAQ,EAAQ,EAAS,EAAO,EAAM,CAC/C,IAAI,EAAY,GACZ,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,KAAQ,EAAO,GACX,IAAU,SAGV,IAAY,QAAa,OAAO,GAAU,aAC1C,EAAQ,EAAM,CAAO,EACrB,EAAY,IAEZ,IAAU,QAAa,GAAQ,CAAK,IACpC,EAAQ,EAAM,EAAQ,EAAM,QAC5B,EAAY,IAEZ,IAAU,QAIV,OAHI,GAAQ,CAAC,IACT,EAAK,UAAY,IAEd,CAGnB,CAMI,SAAS,IAAU,EAAQ,EAAO,EAAa,CAC/C,GAAM,CAAE,MAAM,OAAS,EACjB,EAAS,GAAY,GAAQ,EAAM,GAAO,CAAC,EAC3C,GAAY,EAAO,IAAM,GAAe,IAAU,EAAI,EAAI,EAAQ,EACxE,MAAO,CACH,IAAK,EAAS,EAAK,CAAC,KAAK,IAAI,CAAM,CAAC,EACpC,IAAK,EAAS,EAAK,CAAM,CAC7B,CACJ,CACA,SAAS,GAAc,EAAe,EAAS,CAC3C,OAAO,OAAO,OAAO,OAAO,OAAO,CAAa,EAAG,CAAO,CAC9D,CAWI,SAAS,GAAgB,EAAQ,EAAW,CAC5C,EACJ,EAAG,EAAY,EAAU,MAAgB,EAAO,GAAI,CAChD,IAAM,EAAkB,GAAc,EAgBtC,OAfW,IAAa,SACpB,EAAW,GAAS,YAAa,CAAM,GAcpC,IAAI,MAAM,EAXZ,OAAO,aAAc,SACtB,WAAY,GACZ,QAAS,EACT,YAAa,EACb,UAAW,EACX,WAAY,EACZ,SAAW,GAAQ,GAAgB,CAC3B,EACA,GAAG,CACP,EAAG,EAAU,EAAiB,CAAQ,CAEzB,EAAG,CAGpB,eAAgB,EAAQ,EAAM,CAI1B,OAHA,OAAO,EAAO,GACd,OAAO,EAAO,MACd,OAAO,EAAO,GAAG,GACV,EACX,EAGA,IAAK,EAAQ,EAAM,CACf,OAAO,GAAQ,EAAQ,MAAU,IAAqB,EAAM,EAAU,EAAQ,CAAM,CAAC,CACzF,EAIA,yBAA0B,EAAQ,EAAM,CACpC,OAAO,QAAQ,yBAAyB,EAAO,QAAQ,GAAI,CAAI,CACnE,EAGA,gBAAkB,CACd,OAAO,QAAQ,eAAe,EAAO,EAAE,CAC3C,EAGA,IAAK,EAAQ,EAAM,CACf,OAAO,GAAqB,CAAM,EAAE,SAAS,CAAI,CACrD,EAGA,QAAS,EAAQ,CACb,OAAO,GAAqB,CAAM,CACtC,EAGA,IAAK,EAAQ,EAAM,EAAO,CACtB,IAAM,EAAU,CAAoB,CAAO,WAAW,EAAU,EAGhE,MAFA,GAAO,GAAQ,EAAQ,GAAQ,EAC/B,OAAO,EAAO,MACP,EACX,CACJ,CAAC,CACL,CAQI,SAAS,GAAe,EAAO,EAAS,EAAU,EAAoB,CACtE,IAAM,EAAQ,CACV,WAAY,GACZ,OAAQ,EACR,SAAU,EACV,UAAW,EACX,OAAQ,IAAI,IACZ,aAAc,GAAa,EAAO,CAAkB,EACpD,WAAa,GAAM,GAAe,EAAO,EAAK,EAAU,CAAkB,EAC1E,SAAW,GAAQ,GAAe,EAAM,SAAS,CAAK,EAAG,EAAS,EAAU,CAAkB,CAClG,EACA,OAAO,IAAI,MAAM,EAAO,CAGpB,eAAgB,EAAQ,EAAM,CAG1B,OAFA,OAAO,EAAO,GACd,OAAO,EAAM,GACN,EACX,EAGA,IAAK,EAAQ,EAAM,EAAU,CACzB,OAAO,GAAQ,EAAQ,MAAU,IAAoB,EAAQ,EAAM,CAAQ,CAAC,CAChF,EAIA,yBAA0B,EAAQ,EAAM,CACpC,OAAO,EAAO,aAAa,QAAU,QAAQ,IAAI,EAAO,CAAI,EAAI,CAC5D,WAAY,GACZ,aAAc,EAClB,EAAI,OAAY,QAAQ,yBAAyB,EAAO,CAAI,CAChE,EAGA,gBAAkB,CACd,OAAO,QAAQ,eAAe,CAAK,CACvC,EAGA,IAAK,EAAQ,EAAM,CACf,OAAO,QAAQ,IAAI,EAAO,CAAI,CAClC,EAGA,SAAW,CACP,OAAO,QAAQ,QAAQ,CAAK,CAChC,EAGA,IAAK,EAAQ,EAAM,EAAO,CAGtB,MAFA,GAAM,GAAQ,EACd,OAAO,EAAO,GACP,EACX,CACJ,CAAC,CACL,CAGI,SAAS,GAAa,EAAO,EAAW,CACxC,WAAY,GACZ,UAAW,EACf,EAAG,CACC,GAAM,CAAE,cAAa,EAAS,WAAa,aAAY,EAAS,UAAY,WAAU,EAAS,SAAa,EAC5G,MAAO,CACH,QAAS,EACT,WAAY,EACZ,UAAW,EACX,aAAc6C,GAAW,CAAW,EAAI,MAAkB,EAC1D,YAAaA,GAAW,CAAU,EAAI,MAAiB,CAC3D,CACJ,CACA,IAAM,KAAW,EAAQ,IAAO,EAAS,EAAS,GAAY,CAAI,EAAI,EAChE,IAAoB,EAAM,IAAQ7C,GAAS,CAAK,GAAK,IAAS,aAAe,OAAO,eAAe,CAAK,IAAM,MAAQ,EAAM,cAAgB,QAClJ,SAAS,GAAQ,EAAQ,EAAM,EAAS,CACpC,GAAI,OAAO,UAAU,eAAe,KAAK,EAAQ,CAAI,GAAK,IAAS,cAC/D,OAAO,EAAO,GAElB,IAAM,EAAQ,EAAQ,EAGtB,MADA,GAAO,GAAQ,EACR,CACX,CACA,SAAS,IAAoB,EAAQ,EAAM,EAAU,CACjD,GAAM,CAAE,SAAS,WAAW,YAAY,aAAc,GAAiB,EACnE,EAAQ,EAAO,GAYnB,OAVI6C,GAAW,CAAK,GAAK,EAAY,aAAa,CAAI,IAClD,EAAQ,IAAmB,EAAM,EAAO,EAAQ,CAAQ,GAExD,GAAQ,CAAK,GAAK,EAAM,SACxB,EAAQ,IAAc,EAAM,EAAO,EAAQ,EAAY,WAAW,GAElE,GAAiB,EAAM,CAAK,IAE5B,EAAQ,GAAe,EAAO,EAAU,GAAa,EAAU,GAAO,CAAW,GAE9E,CACX,CACA,SAAS,IAAmB,EAAM,EAAU,EAAQ,EAAU,CAC1D,GAAM,CAAE,SAAS,WAAW,YAAY,UAAY,EACpD,GAAI,EAAO,IAAI,CAAI,EACf,MAAU,MAAM,uBAAyB,MAAM,KAAK,CAAM,EAAE,KAAK,IAAI,EAAI,KAAO,CAAI,EAExF,EAAO,IAAI,CAAI,EACf,IAAI,EAAQ,EAAS,EAAU,GAAa,CAAQ,EAMpD,OALA,EAAO,OAAO,CAAI,EACd,GAAiB,EAAM,CAAK,IAE5B,EAAQ,GAAkB,EAAO,QAAS,EAAQ,EAAM,CAAK,GAE1D,CACX,CACA,SAAS,IAAc,EAAM,EAAO,EAAQ,EAAa,CACrD,GAAM,CAAE,SAAS,WAAW,YAAY,aAAc,GAAiB,EACvE,GAAW,EAAS,QAAU,QAAe,EAAY,CAAI,EACzD,OAAO,EAAM,EAAS,MAAQ,EAAM,QACjC,GAAI7C,GAAS,EAAM,EAAE,EAAG,CAE3B,IAAM,EAAM,EACN,EAAS,EAAO,QAAQ,OAAQ,GAAI,IAAM,CAAG,EACnD,EAAQ,CAAC,EACT,IAAK,IAAM,KAAQ,EAAI,CACnB,IAAM,EAAW,GAAkB,EAAQ,EAAQ,EAAM,CAAI,EAC7D,EAAM,KAAK,GAAe,EAAU,EAAU,GAAa,EAAU,GAAO,CAAW,CAAC,CAC5F,CACJ,CACA,OAAO,CACX,CACA,SAAS,GAAgB,EAAU,EAAM,EAAO,CAC5C,OAAO6C,GAAW,CAAQ,EAAI,EAAS,EAAM,CAAK,EAAI,CAC1D,CACA,IAAM,KAAY,EAAK,IAAS,IAAQ,GAAO,EAAS,OAAO,GAAQ,SAAW,GAAiB,EAAQ,CAAG,EAAI,OAClH,SAAS,IAAU,EAAK,EAAc,EAAK,EAAgB,EAAO,CAC9D,IAAK,IAAM,KAAU,EAAa,CAC9B,IAAM,EAAQ,IAAS,EAAK,CAAM,EAClC,GAAI,EAAO,CACP,EAAI,IAAI,CAAK,EACb,IAAM,EAAW,GAAgB,EAAM,UAAW,EAAK,CAAK,EAC5D,GAAW,IAAa,QAAe,IAAa,GAAO,IAAa,EAGpE,OAAO,CAEf,MAAO,GAAI,IAAU,IAAgB,IAAmB,QAAe,IAAQ,EAG3E,OAAO,IAEf,CACA,MAAO,EACX,CACA,SAAS,GAAkB,EAAc,EAAU,EAAM,EAAO,CAC5D,IAAM,EAAa,EAAS,YACtB,EAAW,GAAgB,EAAS,UAAW,EAAM,CAAK,EAC1D,EAAY,CACd,GAAG,EACH,GAAG,CACP,EACM,EAAM,IAAI,IAChB,EAAI,IAAI,CAAK,EACb,IAAI,EAAM,GAAiB,EAAK,EAAW,EAAM,GAAY,EAAM,CAAK,EAUxE,OATI,IAAQ,MAGD,IAAa,QAAe,IAAa,IAChD,EAAM,GAAiB,EAAK,EAAW,EAAU,EAAK,CAAK,EACvD,IAAQ,MACD,GAGR,GAAgB,MAAM,KAAK,CAAG,EAAG,CACpC,EACJ,EAAG,EAAY,MAAc,IAAa,EAAU,EAAM,CAAK,CAAC,CACpE,CACA,SAAS,GAAiB,EAAK,EAAW,EAAK,EAAU,EAAM,CAC3D,KAAM,GACF,EAAM,IAAU,EAAK,EAAW,EAAK,EAAU,CAAI,EAEvD,OAAO,CACX,CACA,SAAS,IAAa,EAAU,EAAM,EAAO,CACzC,IAAM,EAAS,EAAS,WAAW,EAC7B,KAAQ,IACV,EAAO,GAAQ,CAAC,GAEpB,IAAM,EAAS,EAAO,GAKtB,OAJI,GAAQ,CAAM,GAAK7C,GAAS,CAAK,EAE1B,EAEJ,GAAU,CAAC,CACtB,CACA,SAAS,IAAqB,EAAM,EAAU,EAAQ,EAAO,CACzD,IAAI,EACJ,IAAK,IAAM,KAAU,EAEjB,GADA,EAAQ,GAAS,IAAQ,EAAQ,CAAI,EAAG,CAAM,EACnC,IAAU,OACjB,OAAO,GAAiB,EAAM,CAAK,EAAI,GAAkB,EAAQ,EAAO,EAAM,CAAK,EAAI,CAGnG,CACA,SAAS,GAAS,EAAK,EAAQ,CAC3B,IAAK,IAAM,KAAS,EAAO,CACvB,GAAI,CAAC,EACD,SAEJ,IAAM,EAAQ,EAAM,GACpB,GAAW,IAAU,OACjB,OAAO,CAEf,CACJ,CACA,SAAS,GAAqB,EAAQ,CAClC,IAAI,EAAO,EAAO,MAIlB,MAHA,CACI,IAAO,EAAO,MAAQ,IAAyB,EAAO,OAAO,EAE1D,CACX,CACA,SAAS,IAAyB,EAAQ,CACtC,IAAM,EAAM,IAAI,IAChB,IAAK,IAAM,KAAS,EAChB,IAAK,IAAM,KAAO,OAAO,KAAK,CAAK,EAAE,OAAQ,GAAI,CAAC,EAAE,WAAW,GAAG,CAAC,EAC/D,EAAI,IAAI,CAAG,EAGnB,OAAO,MAAM,KAAK,CAAG,CACzB,CAgBA,IAAM,YAA4B,MAC5B,IAAY,EAAQ,IAAI,EAAI,EAAO,QAAU,CAAC,EAAO,GAAG,MAAQ,EAAO,GACvE,GAAgB,GAAY,IAAc,IAAM,IAAM,IAC5D,SAAS,IAAY,EAAY,EAAa,EAAY,EAAG,CAIzD,IAAM,EAAW,EAAW,KAAO,EAAc,EAC3C,EAAU,EACV,EAAO,EAAW,KAAO,EAAc,EACvC,EAAM,GAAsB,EAAS,CAAQ,EAC7C,EAAM,GAAsB,EAAM,CAAO,EAC3C,EAAM,GAAO,EAAM,GACnB,EAAM,GAAO,EAAM,GAEvB,EAAM,MAAM,CAAG,EAAI,EAAI,EACvB,EAAM,MAAM,CAAG,EAAI,EAAI,EACvB,IAAM,EAAK,EAAI,EACT,EAAK,EAAI,EACf,MAAO,CACH,SAAU,CACN,EAAG,EAAQ,EAAI,GAAM,EAAK,EAAI,EAAS,GACvC,EAAG,EAAQ,EAAI,GAAM,EAAK,EAAI,EAAS,EAC3C,EACA,KAAM,CACF,EAAG,EAAQ,EAAI,GAAM,EAAK,EAAI,EAAS,GACvC,EAAG,EAAQ,EAAI,GAAM,EAAK,EAAI,EAAS,EAC3C,CACJ,CACJ,CAGI,SAAS,IAAe,EAAQ,EAAQ,EAAI,CAC5C,IAAM,EAAY,EAAO,OACrB,EAAQ,EAAO,EAAM,EAAkB,EACvC,EAAa,GAAS,EAAQ,CAAC,EACnC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAY,EAAG,EAAE,EAChC,KAAe,EACf,EAAa,GAAS,EAAQ,EAAI,CAAC,EAC/B,GAAC,GAAgB,CAAC,GAGtB,IAAI,GAAa,EAAO,GAAI,EAAG,GAAO,EAAG,CACrC,EAAG,GAAK,EAAG,EAAI,GAAK,EACpB,QACJ,CACA,EAAS,EAAG,GAAK,EAAO,GACxB,EAAQ,EAAG,EAAI,GAAK,EAAO,GAC3B,EAA4B,GAAQ,EAAc,GAAO,EACrD,KAAoB,KAGxB,EAAO,EAAI,KAAK,KAAK,CAAgB,EACrC,EAAG,GAAK,EAAS,EAAO,EAAO,GAC/B,EAAG,EAAI,GAAK,EAAQ,EAAO,EAAO,GATlC,CAWR,CACA,SAAS,IAAgB,EAAQ,EAAI,EAAY,IAAK,CAClD,IAAM,EAAY,GAAa,CAAS,EAClC,EAAY,EAAO,OACrB,EAAO,EAAa,EACpB,EAAa,GAAS,EAAQ,CAAC,EACnC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAW,EAAE,EAAE,CAI9B,GAHA,EAAc,EACd,EAAe,EACf,EAAa,GAAS,EAAQ,EAAI,CAAC,EAC/B,CAAC,EACD,SAEJ,IAAM,EAAS,EAAa,GACtB,EAAS,EAAa,GACxB,IACA,GAAS,EAAS,EAAY,IAAc,EAC5C,EAAa,MAAM,KAAe,EAAS,EAC3C,EAAa,MAAM,KAAe,EAAS,EAAQ,EAAG,IAEtD,IACA,GAAS,EAAW,GAAa,GAAU,EAC3C,EAAa,MAAM,KAAe,EAAS,EAC3C,EAAa,MAAM,KAAe,EAAS,EAAQ,EAAG,GAE9D,CACJ,CAMI,SAAS,IAAoB,EAAQ,EAAY,IAAK,CACtD,IAAM,EAAY,GAAa,CAAS,EAClC,EAAY,EAAO,OACnB,EAAS,MAAM,CAAS,EAAE,KAAK,CAAC,EAChC,EAAK,MAAM,CAAS,EAEtB,EAAG,EAAa,EAChB,EAAa,GAAS,EAAQ,CAAC,EACnC,IAAI,EAAI,EAAG,EAAI,EAAW,EAAE,EACxB,KAAc,EACd,EAAe,EACf,EAAa,GAAS,EAAQ,EAAI,CAAC,EAC9B,EAGL,IAAI,EAAY,CACZ,IAAM,EAAa,EAAW,GAAa,EAAa,GAExD,EAAO,GAAK,IAAe,EAAqE,GAAhE,EAAW,GAAa,EAAa,IAAc,CACvF,CACA,EAAG,GAAM,EAA2B,EAA6B,GAAK,EAAO,EAAI,EAAE,IAAM,GAAK,EAAO,EAAE,GAAS,EAAO,EAAI,GAAK,EAAO,IAAM,EAAlC,EAA1D,EAAO,EAAI,GAArC,EAAO,EAD9B,CAGJ,IAAe,EAAQ,EAAQ,CAAE,EACjC,IAAgB,EAAQ,EAAI,CAAS,CACzC,CACA,SAAS,GAAgB,EAAI,EAAK,EAAK,CACnC,OAAO,KAAK,IAAI,KAAK,IAAI,EAAI,CAAG,EAAG,CAAG,CAC1C,CACA,SAAS,IAAgB,EAAQ,EAAM,CACnC,IAAI,EAAG,EAAM,EAAO,EAAQ,EACxB,EAAa,GAAe,EAAO,GAAI,CAAI,EAC/C,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,EAAa,EACb,EAAS,EACT,EAAa,EAAI,EAAO,GAAK,GAAe,EAAO,EAAI,GAAI,CAAI,EAC1D,IAGL,EAAQ,EAAO,GACX,IACA,EAAM,KAAO,GAAgB,EAAM,KAAM,EAAK,KAAM,EAAK,KAAK,EAC9D,EAAM,KAAO,GAAgB,EAAM,KAAM,EAAK,IAAK,EAAK,MAAM,GAE9D,IACA,EAAM,KAAO,GAAgB,EAAM,KAAM,EAAK,KAAM,EAAK,KAAK,EAC9D,EAAM,KAAO,GAAgB,EAAM,KAAM,EAAK,IAAK,EAAK,MAAM,GAG1E,CAGI,SAAS,IAA2B,EAAQ,EAAS,EAAM,EAAM,EAAW,CAC5E,IAAI,EAAG,EAAM,EAAO,EAKpB,GAHI,EAAQ,WACR,EAAS,EAAO,OAAQ,GAAK,CAAC,EAAG,IAAI,GAErC,EAAQ,yBAA2B,WACnC,IAAoB,EAAQ,CAAS,MAClC,CACH,IAAI,EAAO,EAAO,EAAO,EAAO,OAAS,GAAK,EAAO,GACrD,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,EAAQ,EAAO,GACf,EAAgB,IAAY,EAAM,EAAO,EAAO,KAAK,IAAI,EAAI,EAAG,EAAQ,GAAa,EAAI,GAAO,EAAQ,OAAO,EAC/G,EAAM,KAAO,EAAc,SAAS,EACpC,EAAM,KAAO,EAAc,SAAS,EACpC,EAAM,KAAO,EAAc,KAAK,EAChC,EAAM,KAAO,EAAc,KAAK,EAChC,EAAO,CAEf,CACI,EAAQ,iBACR,IAAgB,EAAQ,CAAI,CAEpC,CAII,SAAS,IAAkB,CAC3B,OAAO,OAAO,OAAW,KAAe,OAAO,SAAa,GAChE,CAGI,SAAS,GAAe,EAAS,CACjC,IAAI,EAAS,EAAQ,WAIrB,OAHI,GAAU,EAAO,SAAS,IAAM,wBAChC,EAAS,EAAO,MAEb,CACX,CAII,SAAS,GAAc,EAAY,EAAM,EAAgB,CACzD,IAAI,EAUJ,OATI,OAAO,GAAe,UACtB,EAAgB,SAAS,EAAY,EAAE,EACnC,EAAW,QAAQ,GAAG,IAAM,KAE5B,EAAgB,EAAgB,IAAM,EAAK,WAAW,KAG1D,EAAgB,EAEb,CACX,CACA,IAAMd,GAAoB,GAAU,EAAQ,cAAc,YAAY,iBAAiB,EAAS,IAAI,EACpG,SAAS8D,IAAS,EAAI,EAAU,CAC5B,OAAO9D,GAAiB,CAAE,EAAE,iBAAiB,CAAQ,CACzD,CACA,IAAM,IAAY,CACd,MACA,QACA,SACA,MACJ,EACA,SAAS,GAAmB,EAAQ,EAAO,EAAQ,CAC/C,IAAM,EAAS,CAAC,EAChB,EAAS,EAAS,IAAM,EAAS,GACjC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAG,IAAI,CACtB,IAAM,EAAM,IAAU,GACtB,EAAO,GAAO,WAAW,EAAO,EAAQ,IAAM,EAAM,EAAO,GAAK,CACpE,CAGA,MAFA,GAAO,MAAQ,EAAO,KAAO,EAAO,MACpC,EAAO,OAAS,EAAO,IAAM,EAAO,OAC7B,CACX,CACA,IAAM,KAAgB,EAAG,EAAG,KAAU,EAAI,GAAK,EAAI,KAAO,CAAC,GAAU,CAAC,EAAO,YAKzE,SAAS,IAAkB,EAAG,EAAQ,CACtC,IAAM,EAAU,EAAE,QACZ,EAAS,GAAW,EAAQ,OAAS,EAAQ,GAAK,EAClD,CAAE,UAAU,WAAa,EAC3B,EAAM,GACN,EAAG,EACP,GAAI,IAAa,EAAS,EAAS,EAAE,MAAM,EACvC,EAAI,EACJ,EAAI,MACD,CACH,IAAM,EAAO,EAAO,sBAAsB,EAC1C,EAAI,EAAO,QAAU,EAAK,KAC1B,EAAI,EAAO,QAAU,EAAK,IAC1B,EAAM,EACV,CACA,MAAO,CACH,IACA,IACA,KACJ,CACJ,CAMI,SAAS,GAAoB,EAAO,EAAO,CAC3C,GAAI,WAAY,EACZ,OAAO,EAEX,GAAM,CAAE,SAAS,2BAA6B,EACxC,EAAQA,GAAiB,CAAM,EAC/B,EAAY,EAAM,YAAc,aAChC,EAAW,GAAmB,EAAO,SAAS,EAC9C,EAAU,GAAmB,EAAO,SAAU,OAAO,EACrD,CAAE,IAAI,IAAI,OAAS,IAAkB,EAAO,CAAM,EAClD,EAAU,EAAS,MAAQ,GAAO,EAAQ,MAC1C,EAAU,EAAS,KAAO,GAAO,EAAQ,KAC3C,CAAE,QAAQ,UAAY,EAK1B,OAJI,IACA,GAAS,EAAS,MAAQ,EAAQ,MAClC,GAAU,EAAS,OAAS,EAAQ,QAEjC,CACH,EAAG,KAAK,OAAO,EAAI,GAAW,EAAQ,EAAO,MAAQ,CAAuB,EAC5E,EAAG,KAAK,OAAO,EAAI,GAAW,EAAS,EAAO,OAAS,CAAuB,CAClF,CACJ,CACA,SAAS,IAAiB,EAAQ,EAAO,EAAQ,CAC7C,IAAI,EAAU,EACd,GAAI,IAAU,QAAa,IAAW,OAAW,CAC7C,IAAM,EAAY,GAAU,GAAe,CAAM,EACjD,GAAI,CAAC,EACD,EAAQ,EAAO,YACf,EAAS,EAAO,iBACb,CACH,IAAM,EAAO,EAAU,sBAAsB,EACvC,EAAiBA,GAAiB,CAAS,EAC3C,EAAkB,GAAmB,EAAgB,SAAU,OAAO,EACtE,EAAmB,GAAmB,EAAgB,SAAS,EACrE,EAAQ,EAAK,MAAQ,EAAiB,MAAQ,EAAgB,MAC9D,EAAS,EAAK,OAAS,EAAiB,OAAS,EAAgB,OACjE,EAAW,GAAc,EAAe,SAAU,EAAW,aAAa,EAC1E,EAAY,GAAc,EAAe,UAAW,EAAW,cAAc,CACjF,CACJ,CACA,MAAO,CACH,QACA,SACA,SAAU,GAAY,GACtB,UAAW,GAAa,EAC5B,CACJ,CACA,IAAM,GAAU,GAAI,KAAK,MAAM,EAAI,EAAE,EAAI,GAEzC,SAAS,IAAe,EAAQ,EAAS,EAAU,EAAa,CAC5D,IAAM,EAAQA,GAAiB,CAAM,EAC/B,EAAU,GAAmB,EAAO,QAAQ,EAC5C,EAAW,GAAc,EAAM,SAAU,EAAQ,aAAa,GAAK,GACnE,EAAY,GAAc,EAAM,UAAW,EAAQ,cAAc,GAAK,GACtE,EAAgB,IAAiB,EAAQ,EAAS,CAAQ,EAC5D,CAAE,QAAQ,UAAY,EAC1B,GAAI,EAAM,YAAc,cAAe,CACnC,IAAM,EAAU,GAAmB,EAAO,SAAU,OAAO,EACrD,EAAW,GAAmB,EAAO,SAAS,EACpD,GAAS,EAAS,MAAQ,EAAQ,MAClC,GAAU,EAAS,OAAS,EAAQ,MACxC,CAeA,MAdA,GAAQ,KAAK,IAAI,EAAG,EAAQ,EAAQ,KAAK,EACzC,EAAS,KAAK,IAAI,EAAG,EAAc,EAAQ,EAAc,EAAS,EAAQ,MAAM,EAChF,EAAQ,GAAO,KAAK,IAAI,EAAO,EAAU,EAAc,QAAQ,CAAC,EAChE,EAAS,GAAO,KAAK,IAAI,EAAQ,EAAW,EAAc,SAAS,CAAC,EAChE,GAAS,CAAC,IAGV,EAAS,GAAO,EAAQ,CAAC,IAEN,IAAY,QAAa,IAAa,SACvC,GAAe,EAAc,QAAU,EAAS,EAAc,SAChF,EAAS,EAAc,OACvB,EAAQ,GAAO,KAAK,MAAM,EAAS,CAAW,CAAC,GAE5C,CACH,QACA,QACJ,CACJ,CAMI,SAAS,GAAY,EAAO,EAAY,EAAY,CACpD,IAAM,EAAa,GAAc,EAC3B,EAAe,GAAO,EAAM,OAAS,CAAU,EAC/C,EAAc,GAAO,EAAM,MAAQ,CAAU,EACnD,EAAM,OAAS,GAAO,EAAM,MAAM,EAClC,EAAM,MAAQ,GAAO,EAAM,KAAK,EAChC,IAAM,EAAS,EAAM,OAerB,OAXI,EAAO,QAAU,GAAc,CAAC,EAAO,MAAM,QAAU,CAAC,EAAO,MAAM,SACrE,EAAO,MAAM,OAAS,GAAG,EAAM,OAAO,IACtC,EAAO,MAAM,MAAQ,GAAG,EAAM,MAAM,KAEpC,EAAM,0BAA4B,GAAc,EAAO,SAAW,GAAgB,EAAO,QAAU,GACnG,EAAM,wBAA0B,EAChC,EAAO,OAAS,EAChB,EAAO,MAAQ,EACf,EAAM,IAAI,aAAa,EAAY,EAAG,EAAG,EAAY,EAAG,CAAC,EAClD,IAEJ,EACX,CAKI,IAAM,IAA+B,UAAW,CAChD,IAAI,EAAmB,GACvB,GAAI,CACA,IAAM,EAAU,CACZ,IAAI,SAAW,CAEX,MADA,GAAmB,GACZ,EACX,CACJ,EACI,GAAgB,IAChB,OAAO,iBAAiB,OAAQ,KAAM,CAAO,EAC7C,OAAO,oBAAoB,OAAQ,KAAM,CAAO,EAExD,MAAY,CAEZ,CACA,OAAO,CACX,EAAE,EASE,SAAS,GAAa,EAAS,EAAU,CACzC,IAAM,EAAQ8D,IAAS,EAAS,CAAQ,EAClC,EAAU,GAAS,EAAM,MAAM,mBAAmB,EACxD,OAAO,EAAU,CAAC,EAAQ,GAAK,MACnC,CAII,SAAS,GAAa,EAAI,EAAI,EAAG,EAAM,CACvC,MAAO,CACH,EAAG,EAAG,EAAI,GAAK,EAAG,EAAI,EAAG,GACzB,EAAG,EAAG,EAAI,GAAK,EAAG,EAAI,EAAG,EAC7B,CACJ,CAGI,SAAS,IAAsB,EAAI,EAAI,EAAG,EAAM,CAChD,MAAO,CACH,EAAG,EAAG,EAAI,GAAK,EAAG,EAAI,EAAG,GACzB,EAAG,IAAS,SAAW,EAAI,GAAM,EAAG,EAAI,EAAG,EAAI,IAAS,QAAU,EAAI,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,EAAI,EAAG,EAAI,EAAG,CAC9G,CACJ,CAGI,SAAS,IAAqB,EAAI,EAAI,EAAG,EAAM,CAC/C,IAAM,EAAM,CACR,EAAG,EAAG,KACN,EAAG,EAAG,IACV,EACM,EAAM,CACR,EAAG,EAAG,KACN,EAAG,EAAG,IACV,EACM,EAAI,GAAa,EAAI,EAAK,CAAC,EAC3B,EAAI,GAAa,EAAK,EAAK,CAAC,EAC5B,EAAI,GAAa,EAAK,EAAI,CAAC,EAGjC,OAAO,GAFG,GAAa,EAAG,EAAG,CAET,EADV,GAAa,EAAG,EAAG,CACN,EAAG,CAAC,CAC/B,CAEA,IAAM,IAAwB,SAAS,EAAO,EAAO,CACjD,MAAO,CACH,EAAG,EAAG,CACF,OAAO,EAAQ,EAAQ,EAAQ,CACnC,EACA,SAAU,EAAG,CACT,EAAQ,CACZ,EACA,UAAW,EAAO,CAId,OAHI,IAAU,SACH,EAEJ,IAAU,QAAU,OAAS,OACxC,EACA,MAAO,EAAG,EAAO,CACb,OAAO,EAAI,CACf,EACA,WAAY,EAAG,EAAW,CACtB,OAAO,EAAI,CACf,CACJ,CACJ,EACM,IAAwB,UAAW,CACrC,MAAO,CACH,EAAG,EAAG,CACF,OAAO,CACX,EACA,SAAU,EAAG,CAAC,EACd,UAAW,EAAO,CACd,OAAO,CACX,EACA,MAAO,EAAG,EAAO,CACb,OAAO,EAAI,CACf,EACA,WAAY,EAAG,EAAY,CACvB,OAAO,CACX,CACJ,CACJ,EACA,SAAS,GAAc,EAAK,EAAO,EAAO,CACtC,OAAO,EAAM,IAAsB,EAAO,CAAK,EAAI,IAAsB,CAC7E,CACA,SAAS,GAAsB,EAAK,EAAW,CAC3C,IAAI,EAAO,GACP,IAAc,OAAS,IAAc,SACrC,EAAQ,EAAI,OAAO,MACnB,EAAW,CACP,EAAM,iBAAiB,WAAW,EAClC,EAAM,oBAAoB,WAAW,CACzC,EACA,EAAM,YAAY,YAAa,EAAW,WAAW,EACrD,EAAI,kBAAoB,EAEhC,CACA,SAAS,GAAqB,EAAK,EAAU,CACrC,IAAa,SACb,OAAO,EAAI,kBACX,EAAI,OAAO,MAAM,YAAY,YAAa,EAAS,GAAI,EAAS,EAAE,EAE1E,CAEA,SAAS,GAAW,EAAU,CAQ1B,OAPI,IAAa,QACN,CACH,QAAS,GACT,QAAS,IACT,UAAW,EACf,EAEG,CACH,QAAS,GACT,SAAU,EAAG,IAAI,EAAI,EACrB,UAAY,GAAI,CACpB,CACJ,CACA,SAAS,GAAiB,CAAE,QAAQ,MAAM,QAAQ,OAAO,SAAU,CAC/D,MAAO,CACH,MAAO,EAAQ,EACf,IAAK,EAAM,EACX,KAAM,IAAS,EAAM,EAAQ,GAAK,IAAU,EAC5C,OACJ,CACJ,CACA,SAAS,IAAW,EAAS,EAAQ,EAAQ,CACzC,GAAM,CAAE,WAAW,MAAO,EAAa,IAAK,GAAc,EACpD,CAAE,UAAU,aAAe,GAAW,CAAQ,EAC9C,EAAQ,EAAO,OACjB,CAAE,QAAQ,MAAM,QAAU,EAC1B,EAAG,EACP,GAAI,EAAM,CAGN,IAFA,GAAS,EACT,GAAO,EACH,EAAI,EAAG,EAAO,EAAO,EAAI,GACpB,EAAQ,EAAU,EAAO,EAAQ,GAAO,EAAS,EAAG,EAAY,CAAQ,EAD9C,EAAE,EAIjC,IACA,IAEJ,GAAS,EACT,GAAO,CACX,CAIA,OAHI,EAAM,IACN,GAAO,GAEJ,CACH,QACA,MACA,OACA,MAAO,EAAQ,KACnB,CACJ,CACC,SAAS,GAAc,EAAS,EAAQ,EAAQ,CAC7C,GAAI,CAAC,EACD,MAAO,CACH,CACJ,EAEJ,GAAM,CAAE,WAAW,MAAO,EAAa,IAAK,GAAc,EACpD,EAAQ,EAAO,OACf,CAAE,UAAU,UAAU,aAAe,GAAW,CAAQ,EACxD,CAAE,QAAQ,MAAM,OAAO,SAAW,IAAW,EAAS,EAAQ,CAAM,EACpE,EAAS,CAAC,EACZ,EAAS,GACT,EAAW,KACX,EAAO,EAAO,EACZ,MAAoB,EAAQ,EAAY,EAAW,CAAK,GAAK,EAAQ,EAAY,CAAS,IAAM,EAChG,MAAkB,EAAQ,EAAU,CAAK,IAAM,GAAK,EAAQ,EAAU,EAAW,CAAK,EACtF,MAAkB,GAAU,EAAc,EAC1C,MAAiB,CAAC,GAAU,EAAY,EAC9C,IAAI,IAAI,EAAI,EAAO,EAAO,EAAO,GAAK,EAAK,EAAE,EACzC,EAAQ,EAAO,EAAI,GACf,GAAM,OAGV,EAAQ,EAAU,EAAM,EAAS,EAC7B,IAAU,IAGd,EAAS,EAAQ,EAAO,EAAY,CAAQ,EACxC,IAAa,MAAQ,EAAY,IACjC,EAAW,EAAQ,EAAO,CAAU,IAAM,EAAI,EAAI,GAElD,IAAa,MAAQ,EAAW,IAChC,EAAO,KAAK,GAAiB,CACzB,MAAO,EACP,IAAK,EACL,OACA,QACA,OACJ,CAAC,CAAC,EACF,EAAW,MAEf,EAAO,EACP,EAAY,IAWhB,OATI,IAAa,MACb,EAAO,KAAK,GAAiB,CACzB,MAAO,EACP,MACA,OACA,QACA,OACJ,CAAC,CAAC,EAEC,CACX,CACC,SAAS,GAAe,EAAM,EAAQ,CACnC,IAAM,EAAS,CAAC,EACV,EAAW,EAAK,SACtB,IAAI,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAI,CACpC,IAAM,EAAM,GAAc,EAAS,GAAI,EAAK,OAAQ,CAAM,EACtD,EAAI,QACJ,EAAO,KAAK,GAAG,CAAG,CAE1B,CACA,OAAO,CACX,CACC,SAAS,IAAgB,EAAQ,EAAO,EAAM,EAAU,CACrD,IAAI,EAAQ,EACR,EAAM,EAAQ,EAClB,GAAI,GAAQ,CAAC,EACT,KAAM,EAAQ,GAAS,CAAC,EAAO,GAAO,MAClC,IAGR,KAAM,EAAQ,GAAS,EAAO,GAAO,MACjC,IAMJ,IAJA,GAAS,EACL,IACA,GAAO,GAEL,EAAM,GAAS,EAAO,EAAM,GAAO,MACrC,IAGJ,MADA,IAAO,EACA,CACH,QACA,KACJ,CACJ,CACC,SAAS,IAAc,EAAQ,EAAO,EAAK,EAAM,CAC9C,IAAM,EAAQ,EAAO,OACf,EAAS,CAAC,EACZ,EAAO,EACP,EAAO,EAAO,GACd,EACJ,IAAI,EAAM,EAAQ,EAAG,GAAO,EAAK,EAAE,EAAI,CACnC,IAAM,EAAM,EAAO,EAAM,GACrB,EAAI,MAAQ,EAAI,KACX,EAAK,OACN,EAAO,GACP,EAAO,KAAK,CACR,MAAO,EAAQ,EACf,KAAM,EAAM,GAAK,EACjB,MACJ,CAAC,EACD,EAAQ,EAAO,EAAI,KAAO,EAAM,OAGpC,EAAO,EACH,EAAK,OACL,EAAQ,IAGhB,EAAO,CACX,CAQA,OAPI,IAAS,MACT,EAAO,KAAK,CACR,MAAO,EAAQ,EACf,IAAK,EAAO,EACZ,MACJ,CAAC,EAEE,CACX,CACC,SAAS,IAAiB,EAAM,EAAgB,CAC7C,IAAM,EAAS,EAAK,OACd,EAAW,EAAK,QAAQ,SACxB,EAAQ,EAAO,OACrB,GAAI,CAAC,EACD,MAAO,CAAC,EAEZ,IAAM,EAAO,CAAC,CAAC,EAAK,MACd,CAAE,QAAQ,OAAS,IAAgB,EAAQ,EAAO,EAAM,CAAQ,EAYtE,OAXI,IAAa,GACN,GAAc,EAAM,CACvB,CACI,QACA,MACA,MACJ,CACJ,EAAG,EAAQ,CAAc,EAItB,GAAc,EAAM,IAAc,EAAQ,EAFrC,EAAM,EAAQ,EAAM,EAAQ,EACnB,CAAC,CAAC,EAAK,WAAa,IAAU,GAAK,IAAQ,EAAQ,CACC,EAAG,EAAQ,CAAc,CACtG,CACC,SAAS,GAAc,EAAM,EAAU,EAAQ,EAAgB,CAI5D,MAHI,CAAC,GAAkB,CAAC,EAAe,YAAc,CAAC,EAC3C,EAEJ,IAAgB,EAAM,EAAU,EAAQ,CAAc,CACjE,CACC,SAAS,IAAgB,EAAM,EAAU,EAAQ,EAAgB,CAC9D,IAAM,EAAe,EAAK,OAAO,WAAW,EACtC,EAAY,GAAU,EAAK,OAAO,EAClC,CAAE,cAAe,EAAe,QAAS,CAAE,aAAiB,EAC5D,EAAQ,EAAO,OACf,EAAS,CAAC,EACZ,EAAY,EACZ,EAAQ,EAAS,GAAG,MACpB,EAAI,EACR,SAAS,EAAS,EAAG,EAAG,EAAG,EAAI,CAC3B,IAAM,EAAM,EAAW,GAAK,EACxB,OAAM,EAIV,KADA,GAAK,EACC,EAAO,EAAI,GAAO,MACpB,GAAK,EAET,KAAM,EAAO,EAAI,GAAO,MACpB,GAAK,EAEL,EAAI,IAAU,EAAI,IAClB,EAAO,KAAK,CACR,MAAO,EAAI,EACX,IAAK,EAAI,EACT,KAAM,EACN,MAAO,CACX,CAAC,EACD,EAAY,EACZ,EAAQ,EAAI,EAbP,CAeb,CACA,IAAK,IAAM,KAAW,EAAS,CAC3B,EAAQ,EAAW,EAAQ,EAAQ,MACnC,IAAI,EAAO,EAAO,EAAQ,GACtB,EACJ,IAAI,EAAI,EAAQ,EAAG,GAAK,EAAQ,IAAK,IAAI,CACrC,IAAM,EAAK,EAAO,EAAI,GACtB,EAAQ,GAAU,EAAe,WAAW,GAAc,EAAc,CACpE,KAAM,UACN,GAAI,EACJ,GAAI,EACJ,aAAc,EAAI,GAAK,EACvB,YAAa,EAAI,EACjB,cACJ,CAAC,CAAC,CAAC,EACC,IAAa,EAAO,CAAS,GAC7B,EAAS,EAAO,EAAI,EAAG,EAAQ,KAAM,CAAS,EAElD,EAAO,EACP,EAAY,CAChB,CACI,EAAQ,EAAI,GACZ,EAAS,EAAO,EAAI,EAAG,EAAQ,KAAM,CAAS,CAEtD,CACA,OAAO,CACX,CACA,SAAS,GAAU,EAAS,CACxB,MAAO,CACH,gBAAiB,EAAQ,gBACzB,eAAgB,EAAQ,eACxB,WAAY,EAAQ,WACpB,iBAAkB,EAAQ,iBAC1B,gBAAiB,EAAQ,gBACzB,YAAa,EAAQ,YACrB,YAAa,EAAQ,WACzB,CACJ,CACA,SAAS,IAAa,EAAO,EAAW,CACpC,GAAI,CAAC,EACD,MAAO,GAEX,IAAM,EAAQ,CAAC,EACT,EAAW,SAAS,EAAK,EAAO,CAOlC,OANK,GAAoB,CAAK,GAGzB,EAAM,SAAS,CAAK,GACrB,EAAM,KAAK,CAAK,EAEb,EAAM,QAAQ,CAAK,GALf,CAMf,EACA,OAAO,KAAK,UAAU,EAAO,CAAQ,IAAM,KAAK,UAAU,EAAW,CAAQ,CACjF,CAEA,SAAS,GAAe,EAAO,EAAW,EAAO,CAC7C,OAAO,EAAM,QAAQ,KAAO,EAAM,GAAS,EAAU,EACzD,CACA,SAAS,IAAe,EAAM,EAAW,CACrC,GAAM,CAAE,SAAS,UAAY,EAS7B,OARI,GAAU,EACH,CACH,KAAM,GAAe,EAAQ,EAAW,MAAM,EAC9C,MAAO,GAAe,EAAQ,EAAW,OAAO,EAChD,IAAK,GAAe,EAAQ,EAAW,KAAK,EAC5C,OAAQ,GAAe,EAAQ,EAAW,QAAQ,CACtD,EAEG,CACX,CACA,SAAS,GAAmB,EAAO,EAAM,CACrC,IAAM,EAAO,EAAK,MAClB,GAAI,EAAK,SACL,MAAO,GAEX,IAAM,EAAO,IAAe,EAAM,EAAM,SAAS,EACjD,MAAO,CACH,KAAM,EAAK,OAAS,GAAQ,EAAI,EAAK,MAAQ,EAAK,OAAS,GAAO,EAAI,EAAK,MAC3E,MAAO,EAAK,QAAU,GAAQ,EAAM,MAAQ,EAAK,OAAS,EAAK,QAAU,GAAO,EAAI,EAAK,OACzF,IAAK,EAAK,MAAQ,GAAQ,EAAI,EAAK,KAAO,EAAK,MAAQ,GAAO,EAAI,EAAK,KACvE,OAAQ,EAAK,SAAW,GAAQ,EAAM,OAAS,EAAK,QAAU,EAAK,SAAW,GAAO,EAAI,EAAK,OAClG,CACJ,CChlFA,IAAI,GAA2B,IAAI,KAvIpB,CACX,aAAa,CACT,KAAK,SAAW,KAChB,KAAK,QAAU,IAAI,IACnB,KAAK,SAAW,GAChB,KAAK,UAAY,MACrB,CACH,QAAQ,EAAO,EAAO,EAAM,EAAM,CAC3B,IAAM,EAAY,EAAM,UAAU,GAC5B,EAAW,EAAM,SACvB,EAAU,QAAS,GAAK,EAAG,CACnB,QACA,QAAS,EAAM,QACf,WACA,YAAa,KAAK,IAAI,EAAO,EAAM,MAAO,CAAQ,CACtD,CAAC,CAAC,CACV,CACH,UAAW,CACA,IAIJ,CAAK,YADL,KAAK,SAAW,GACA,GAAiB,KAAK,WAAY,CAC9C,KAAK,QAAQ,EACb,KAAK,SAAW,KACZ,KAAK,UACL,KAAK,SAAS,CAEtB,CAAC,EACL,CACH,QAAQ,EAAO,KAAK,IAAI,EAAG,CACpB,IAAI,EAAY,EAChB,KAAK,QAAQ,SAAS,EAAO,IAAQ,CACjC,GAAI,CAAC,EAAM,SAAW,CAAC,EAAM,MAAM,OAC/B,OAEJ,IAAM,EAAQ,EAAM,MAChB,EAAI,EAAM,OAAS,EACnB,EAAO,GACP,EACJ,KAAM,GAAK,EAAG,EAAE,EACZ,EAAO,EAAM,GACT,EAAK,SACD,EAAK,OAAS,EAAM,WACpB,EAAM,SAAW,EAAK,QAE1B,EAAK,KAAK,CAAI,EACd,EAAO,KAEP,EAAM,GAAK,EAAM,EAAM,OAAS,GAChC,EAAM,IAAI,GAGd,IACA,EAAM,KAAK,EACX,KAAK,QAAQ,EAAO,EAAO,EAAM,UAAU,GAE1C,EAAM,SACP,EAAM,QAAU,GAChB,KAAK,QAAQ,EAAO,EAAO,EAAM,UAAU,EAC3C,EAAM,QAAU,IAEpB,GAAa,EAAM,MACvB,CAAC,EACD,KAAK,UAAY,EACb,IAAc,IACd,KAAK,SAAW,GAExB,CACH,UAAU,EAAO,CACV,IAAM,EAAS,KAAK,QAChB,EAAQ,EAAO,IAAI,CAAK,EAa5B,OAZK,IACD,EAAQ,CACJ,QAAS,GACT,QAAS,GACT,MAAO,CAAC,EACR,UAAW,CACP,SAAU,CAAC,EACX,SAAU,CAAC,CACf,CACJ,EACA,EAAO,IAAI,EAAO,CAAK,GAEpB,CACX,CACH,OAAO,EAAO,EAAO,EAAI,CAClB,KAAK,UAAU,CAAK,EAAE,UAAU,GAAO,KAAK,CAAE,CAClD,CACH,IAAI,EAAO,EAAO,CACP,CAAC,GAAS,CAAC,EAAM,QAGrB,KAAK,UAAU,CAAK,EAAE,MAAM,KAAK,GAAG,CAAK,CAC7C,CACH,IAAI,EAAO,CACJ,OAAO,KAAK,UAAU,CAAK,EAAE,MAAM,OAAS,CAChD,CACH,MAAM,EAAO,CACN,IAAM,EAAQ,KAAK,QAAQ,IAAI,CAAK,EAC/B,IAGL,EAAM,QAAU,GAChB,EAAM,MAAQ,KAAK,IAAI,EACvB,EAAM,SAAW,EAAM,MAAM,QAAQ,EAAK,IAAM,KAAK,IAAI,EAAK,EAAI,SAAS,EAAG,CAAC,EAC/E,KAAK,SAAS,EAClB,CACA,QAAQ,EAAO,CACX,GAAI,CAAC,KAAK,SACN,MAAO,GAEX,IAAM,EAAQ,KAAK,QAAQ,IAAI,CAAK,EAIpC,MAHA,EAAI,CAAC,GAAS,CAAC,EAAM,SAAW,CAAC,EAAM,MAAM,OAIjD,CACH,KAAK,EAAO,CACL,IAAM,EAAQ,KAAK,QAAQ,IAAI,CAAK,EACpC,GAAI,CAAC,GAAS,CAAC,EAAM,MAAM,OACvB,OAEJ,IAAM,EAAQ,EAAM,MAChB,EAAI,EAAM,OAAS,EACvB,KAAM,GAAK,EAAG,EAAE,EACZ,EAAM,GAAG,OAAO,EAEpB,EAAM,MAAQ,CAAC,EACf,KAAK,QAAQ,EAAO,EAAO,KAAK,IAAI,EAAG,UAAU,CACrD,CACH,OAAO,EAAO,CACP,OAAO,KAAK,QAAQ,OAAO,CAAK,CACpC,CACJ,EAGM,GAAc,cACdC,IAAgB,CAClB,QAAS,EAAM,EAAI,EAAQ,CACvB,OAAO,EAAS,GAAM,EAAK,CAC/B,EACH,MAAO,EAAM,EAAI,EAAQ,CAClB,IAAM,EAAK,GAAM,GAAQ,EAAW,EAC9B,EAAK,EAAG,OAAS,GAAM,GAAM,EAAW,EAC9C,OAAO,GAAM,EAAG,MAAQ,EAAG,IAAI,EAAI,CAAM,EAAE,UAAU,EAAI,CAC7D,EACA,OAAQ,EAAM,EAAI,EAAQ,CACtB,OAAO,GAAQ,EAAK,GAAQ,CAChC,CACJ,EACM,IAAN,KAAgB,CACZ,YAAY,EAAK,EAAQ,EAAM,EAAG,CAC9B,IAAM,EAAe,EAAO,GAC5B,EAAK,GAAQ,CACT,EAAI,GACJ,EACA,EACA,EAAI,IACR,CAAC,EACD,IAAM,EAAO,GAAQ,CACjB,EAAI,KACJ,EACA,CACJ,CAAC,EACD,KAAK,QAAU,GACf,KAAK,IAAM,EAAI,IAAMA,IAAc,EAAI,MAAQ,OAAO,GACtD,KAAK,QAAU,GAAQ,EAAI,SAAW,GAAQ,OAC9C,KAAK,OAAS,KAAK,MAAM,KAAK,IAAI,GAAK,EAAI,OAAS,EAAE,EACtD,KAAK,UAAY,KAAK,OAAS,KAAK,MAAM,EAAI,QAAQ,EACtD,KAAK,MAAQ,CAAC,CAAC,EAAI,KACnB,KAAK,QAAU,EACf,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,IAAM,EACX,KAAK,UAAY,MACrB,CACA,QAAS,CACL,OAAO,KAAK,OAChB,CACA,OAAO,EAAK,EAAI,EAAM,CAClB,GAAI,KAAK,QAAS,CACd,KAAK,QAAQ,EAAK,EAClB,IAAM,EAAe,KAAK,QAAQ,KAAK,OACjC,EAAU,EAAO,KAAK,OACtB,EAAS,KAAK,UAAY,EAChC,KAAK,OAAS,EACd,KAAK,UAAY,KAAK,MAAM,KAAK,IAAI,EAAQ,EAAI,QAAQ,CAAC,EAC1D,KAAK,QAAU,EACf,KAAK,MAAQ,CAAC,CAAC,EAAI,KACnB,KAAK,IAAM,GAAQ,CACf,EAAI,GACJ,EACA,EACA,EAAI,IACR,CAAC,EACD,KAAK,MAAQ,GAAQ,CACjB,EAAI,KACJ,EACA,CACJ,CAAC,CACL,CACJ,CACA,QAAS,CACD,KAAK,UACL,KAAK,KAAK,KAAK,IAAI,CAAC,EACpB,KAAK,QAAU,GACf,KAAK,QAAQ,EAAK,EAE1B,CACA,KAAK,EAAM,CACP,IAAM,EAAU,EAAO,KAAK,OACtB,EAAW,KAAK,UAChB,EAAO,KAAK,MACZ,EAAO,KAAK,MACZ,EAAO,KAAK,MACZ,EAAK,KAAK,IACZ,EAEJ,GADA,KAAK,QAAU,IAAS,IAAO,GAAQ,EAAU,GAC7C,CAAC,KAAK,QAAS,CACf,KAAK,QAAQ,GAAQ,EACrB,KAAK,QAAQ,EAAI,EACjB,MACJ,CACA,GAAI,EAAU,EAAG,CACb,KAAK,QAAQ,GAAQ,EACrB,MACJ,CACA,EAAS,EAAU,EAAW,EAC9B,EAAS,GAAQ,EAAS,EAAI,EAAI,EAAS,EAC3C,EAAS,KAAK,QAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAM,CAAC,CAAC,EACtD,KAAK,QAAQ,GAAQ,KAAK,IAAI,EAAM,EAAI,CAAM,CAClD,CACA,MAAO,CACH,IAAM,EAAW,IAAmB,CAAK,YAAY,CAAC,EACtD,OAAO,IAAI,SAAS,EAAK,IAAM,CAC3B,EAAS,KAAK,CACV,MACA,KACJ,CAAC,CACL,CAAC,CACL,CACA,QAAQ,EAAU,CACd,IAAM,EAAS,EAAW,MAAQ,MAC5B,EAAW,KAAK,WAAa,CAAC,EACpC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAChC,EAAS,GAAG,GAAQ,CAE5B,CACJ,EAEM,GAAN,KAAiB,CACb,YAAY,EAAO,EAAO,CACtB,KAAK,OAAS,EACd,KAAK,YAAc,IAAI,IACvB,KAAK,UAAU,CAAM,CACzB,CACA,UAAU,EAAQ,CACd,GAAI,CAACjD,GAAS,CAAM,EAChB,OAEJ,IAAM,EAAmB,OAAO,KAAK,GAAS,SAAS,EACjD,EAAgB,KAAK,YAC3B,OAAO,oBAAoB,CAAM,EAAE,QAAS,GAAM,CAC9C,IAAM,EAAM,EAAO,GACnB,GAAI,CAACA,GAAS,CAAG,EACb,OAEJ,IAAM,EAAW,CAAC,EAClB,IAAK,IAAM,KAAU,EACjB,EAAS,GAAU,EAAI,IAE1B,GAAQ,EAAI,UAAU,GAAK,EAAI,YAAc,CAC1C,CACJ,GAAG,QAAS,GAAO,EACX,IAAS,GAAO,CAAC,EAAc,IAAI,CAAI,IACvC,EAAc,IAAI,EAAM,CAAQ,CAExC,CAAC,CACL,CAAC,CACL,CACH,gBAAgB,EAAQ,EAAQ,CACzB,IAAM,EAAa,EAAO,QACpB,EAAU,IAAqB,EAAQ,CAAU,EACvD,GAAI,CAAC,EACD,MAAO,CAAC,EAEZ,IAAM,EAAa,KAAK,kBAAkB,EAAS,CAAU,EAO7D,OANI,EAAW,SACX,IAAS,EAAO,QAAQ,YAAa,CAAU,EAAE,SAAS,CACtD,EAAO,QAAU,CACrB,MAAO,CACP,CAAC,EAEE,CACX,CACH,kBAAkB,EAAQ,EAAQ,CAC3B,IAAM,EAAgB,KAAK,YACrB,EAAa,CAAC,EACd,EAAU,CAAuB,CAAO,cAAc,CAAC,EACvD,EAAQ,OAAO,KAAK,CAAM,EAC1B,EAAO,KAAK,IAAI,EAClB,EACJ,IAAI,EAAI,EAAM,OAAS,EAAG,GAAK,EAAG,EAAE,EAAE,CAClC,IAAM,EAAO,EAAM,GACnB,GAAI,EAAK,OAAO,CAAC,IAAM,IACnB,SAEJ,GAAI,IAAS,UAAW,CACpB,EAAW,KAAK,GAAG,KAAK,gBAAgB,EAAQ,CAAM,CAAC,EACvD,QACJ,CACA,IAAM,EAAQ,EAAO,GACjB,EAAY,EAAQ,GAClB,EAAM,EAAc,IAAI,CAAI,EAClC,GAAI,EACA,GAAI,GAAO,EAAU,OAAO,EAAG,CAC3B,EAAU,OAAO,EAAK,EAAO,CAAI,EACjC,QACJ,MACI,EAAU,OAAO,EAGzB,GAAI,CAAC,GAAO,CAAC,EAAI,SAAU,CACvB,EAAO,GAAQ,EACf,QACJ,CACA,EAAQ,GAAQ,EAAY,IAAI,IAAU,EAAK,EAAQ,EAAM,CAAK,EAClE,EAAW,KAAK,CAAS,CAC7B,CACA,OAAO,CACX,CACH,OAAO,EAAQ,EAAQ,CAChB,GAAI,KAAK,YAAY,OAAS,EAAG,CAC7B,OAAO,OAAO,EAAQ,CAAM,EAC5B,MACJ,CACA,IAAM,EAAa,KAAK,kBAAkB,EAAQ,CAAM,EACxD,GAAI,EAAW,OAEX,OADA,GAAS,IAAI,KAAK,OAAQ,CAAU,EAC7B,EAEf,CACJ,EACA,SAAS,IAAS,EAAY,EAAY,CACtC,IAAM,EAAU,CAAC,EACX,EAAO,OAAO,KAAK,CAAU,EACnC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAI,CAChC,IAAM,EAAO,EAAW,EAAK,IACzB,GAAQ,EAAK,OAAO,GACpB,EAAQ,KAAK,EAAK,KAAK,CAAC,CAEhC,CACA,OAAO,QAAQ,IAAI,CAAO,CAC9B,CACA,SAAS,IAAqB,EAAQ,EAAY,CAC9C,GAAI,CAAC,EACD,OAEJ,IAAI,EAAU,EAAO,QACrB,GAAI,CAAC,EAAS,CACV,EAAO,QAAU,EACjB,MACJ,CAOA,OANI,EAAQ,UACR,EAAO,QAAU,EAAU,OAAO,OAAO,CAAC,EAAG,EAAS,CAClD,QAAS,GACT,YAAa,CAAC,CAClB,CAAC,GAEE,CACX,CAEA,SAAS,GAAU,EAAO,EAAiB,CACvC,IAAM,EAAO,GAAS,EAAM,SAAW,CAAC,EAClC,EAAU,EAAK,QACf,EAAM,EAAK,MAAQ,OAAY,EAAkB,EACjD,EAAM,EAAK,MAAQ,OAAY,EAAkB,EACvD,MAAO,CACH,MAAO,EAAU,EAAM,EACvB,IAAK,EAAU,EAAM,CACzB,CACJ,CACA,SAAS,IAAY,EAAQ,EAAQ,EAAiB,CAClD,GAAI,IAAoB,GACpB,MAAO,GAEX,IAAM,EAAI,GAAU,EAAQ,CAAe,EACrC,EAAI,GAAU,EAAQ,CAAe,EAC3C,MAAO,CACH,IAAK,EAAE,IACP,MAAO,EAAE,IACT,OAAQ,EAAE,MACV,KAAM,EAAE,KACZ,CACJ,CACA,SAAS,IAAO,EAAO,CACnB,IAAI,EAAG,EAAG,EAAG,EASb,OARIA,GAAS,CAAK,GACd,EAAI,EAAM,IACV,EAAI,EAAM,MACV,EAAI,EAAM,OACV,EAAI,EAAM,MAEV,EAAI,EAAI,EAAI,EAAI,EAEb,CACH,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,EACN,SAAU,IAAU,EACxB,CACJ,CACA,SAAS,GAAwB,EAAO,EAAe,CACnD,IAAM,EAAO,CAAC,EACR,EAAW,EAAM,uBAAuB,CAAa,EACvD,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,EAAE,EAC3C,EAAK,KAAK,EAAS,GAAG,KAAK,EAE/B,OAAO,CACX,CACA,SAAS,GAAW,EAAO,EAAO,EAAS,EAAU,CAAC,EAAG,CACrD,IAAM,EAAO,EAAM,KACb,EAAa,EAAQ,OAAS,SAChC,EAAG,EAAM,EAAc,EAC3B,GAAI,IAAU,KACV,OAEJ,IAAI,EAAQ,GACZ,IAAI,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EAAE,CAEzC,GADA,EAAe,CAAC,EAAK,GACjB,IAAiB,EAAS,CAE1B,GADA,EAAQ,GACJ,EAAQ,IACR,SAEJ,KACJ,CACA,EAAa,EAAM,OAAO,GACtB,GAAe,CAAU,IAAM,GAAc,IAAU,GAAK,GAAK,CAAK,IAAM,GAAK,CAAU,KAC3F,GAAS,EAEjB,CAIA,MAHI,CAAC,GAAS,CAAC,EAAQ,IACZ,EAEJ,CACX,CACA,SAAS,IAAyB,EAAM,EAAM,CAC1C,GAAM,CAAE,SAAS,UAAY,EACvB,EAAW,EAAO,OAAS,IAAM,IAAM,IACvC,EAAW,EAAO,OAAS,IAAM,IAAM,IACvC,EAAO,OAAO,KAAK,CAAI,EACvB,EAAY,MAAM,EAAK,MAAM,EAC/B,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EACvC,EAAM,EAAK,GACX,EAAM,GAAK,EACN,GAAW,GACX,GAAW,EAAK,EACrB,EAEJ,OAAO,CACX,CACA,SAAS,GAAU,EAAO,EAAM,CAC5B,IAAM,EAAU,GAAS,EAAM,QAAQ,QACvC,OAAO,GAAW,IAAY,QAAa,EAAK,QAAU,MAC9D,CACA,SAAS,IAAY,EAAY,EAAY,EAAM,CAC/C,MAAO,GAAG,EAAW,GAAG,GAAG,EAAW,GAAG,GAAG,EAAK,OAAS,EAAK,MACnE,CACA,SAAS,IAAc,EAAO,CAC1B,GAAM,CAAE,MAAM,MAAM,aAAa,cAAgB,EAAM,cAAc,EACrE,MAAO,CACH,IAAK,EAAa,EAAM,KACxB,IAAK,EAAa,EAAM,GAC5B,CACJ,CACA,SAAS,IAAiB,EAAQ,EAAU,EAAY,CACpD,IAAM,EAAW,EAAO,KAAc,EAAO,GAAY,CAAC,GAC1D,OAAO,EAAS,KAAgB,EAAS,GAAc,CAAC,EAC5D,CACA,SAAS,GAAoB,EAAO,EAAQ,EAAU,EAAM,CACxD,IAAK,IAAM,KAAQ,EAAO,wBAAwB,CAAI,EAAE,QAAQ,EAAE,CAC9D,IAAM,EAAQ,EAAM,EAAK,OACzB,GAAI,GAAY,EAAQ,GAAK,CAAC,GAAY,EAAQ,EAC9C,OAAO,EAAK,KAEpB,CACA,OAAO,IACX,CACA,SAAS,GAAa,EAAY,EAAQ,CACtC,GAAM,CAAE,QAAQ,YAAa,GAAU,EACjC,EAAS,CAAkB,CAAM,UAAU,CAAC,EAC5C,CAAE,SAAS,SAAS,MAAO,GAAkB,EAC7C,EAAQ,EAAO,KACf,EAAQ,EAAO,KACf,EAAM,IAAY,EAAQ,EAAQ,CAAI,EACtC,EAAO,EAAO,OAChB,EACJ,IAAI,IAAI,EAAI,EAAG,EAAI,EAAM,EAAE,EAAE,CACzB,IAAM,EAAO,EAAO,GACd,EAAG,GAAQ,GAAS,GAAQ,GAAW,EACvC,EAAa,CAAiB,CAAK,UAAU,CAAC,EACpD,EAAQ,EAAW,GAAS,IAAiB,EAAQ,EAAK,CAAK,EAC/D,EAAM,GAAgB,EACtB,EAAM,KAAO,GAAoB,EAAO,EAAQ,GAAM,EAAK,IAAI,EAC/D,EAAM,QAAU,GAAoB,EAAO,EAAQ,GAAO,EAAK,IAAI,EACnE,IAAM,EAAe,CAAwB,CAAM,gBAAgB,CAAC,EACpE,EAAa,GAAgB,CACjC,CACJ,CACA,SAAS,GAAgB,EAAO,EAAM,CAClC,IAAM,EAAS,EAAM,OACrB,OAAO,OAAO,KAAK,CAAM,EAAE,OAAQ,GAAM,EAAO,GAAK,OAAS,CAAI,EAAE,MAAM,CAC9E,CACA,SAAS,IAAqB,EAAQ,EAAO,CACzC,OAAO,GAAc,EAAQ,CACzB,OAAQ,GACR,QAAS,OACT,aAAc,EACd,QACA,KAAM,UACN,KAAM,SACV,CAAC,CACL,CACA,SAAS,IAAkB,EAAQ,EAAO,EAAS,CAC/C,OAAO,GAAc,EAAQ,CACzB,OAAQ,GACR,UAAW,EACX,OAAQ,OACR,IAAK,OACL,UACA,QACA,KAAM,UACN,KAAM,MACV,CAAC,CACL,CACA,SAAS,GAAY,EAAM,EAAO,CAC9B,IAAM,EAAe,EAAK,WAAW,MAC/B,EAAO,EAAK,QAAU,EAAK,OAAO,KACnC,KAGL,KAAiB,EAAK,QACtB,IAAK,IAAM,KAAU,EAAM,CACvB,IAAM,EAAS,EAAO,QACtB,GAAI,CAAC,GAAU,EAAO,KAAU,QAAa,EAAO,GAAM,KAAkB,OACxE,OAEJ,OAAO,EAAO,GAAM,GAChB,EAAO,GAAM,gBAAkB,QAAa,EAAO,GAAM,cAAc,KAAkB,QACzF,OAAO,EAAO,GAAM,cAAc,EAE1C,CAVsB,CAW1B,CACA,IAAM,GAAsB,GAAO,IAAS,SAAW,IAAS,OAC1D,IAAoB,EAAQ,IAAS,EAAS,EAAS,OAAO,OAAO,CAAC,EAAG,CAAM,EAC/E,KAAe,EAAU,EAAM,IAAQ,GAAY,CAAC,EAAK,QAAU,EAAK,UAAY,CAClF,KAAM,GAAwB,EAAO,EAAI,EACzC,OAAQ,IACZ,EACE,GAAN,KAAwB,CACvB,OAAO,SAAW,CAAC,EACnB,OAAO,mBAAqB,KAC5B,OAAO,gBAAkB,KACzB,YAAY,EAAO,EAAa,CACzB,KAAK,MAAQ,EACb,KAAK,KAAO,EAAM,IAClB,KAAK,MAAQ,EACb,KAAK,gBAAkB,CAAC,EACxB,KAAK,YAAc,KAAK,QAAQ,EAChC,KAAK,MAAQ,KAAK,YAAY,KAC9B,KAAK,QAAU,OACd,KAAK,SAAW,GACjB,KAAK,MAAQ,OACb,KAAK,YAAc,OACnB,KAAK,eAAiB,OACtB,KAAK,WAAa,OAClB,KAAK,WAAa,OAClB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,GAC1B,KAAK,SAAW,OAChB,KAAK,UAAY,CAAC,EAClB,KAAK,mBAAqB,IAAI,OAAO,mBACrC,KAAK,gBAAkB,IAAI,OAAO,gBAClC,KAAK,WAAW,CACpB,CACA,YAAa,CACT,IAAM,EAAO,KAAK,YAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,EAAK,SAAW,GAAU,EAAK,OAAQ,CAAI,EAC3C,KAAK,YAAY,EACb,KAAK,QAAQ,MAAQ,CAAC,KAAK,MAAM,gBAAgB,QAAQ,GACzD,QAAQ,KAAK,oKAAoK,CAEzL,CACA,YAAY,EAAc,CAClB,KAAK,QAAU,GACf,GAAY,KAAK,WAAW,EAEhC,KAAK,MAAQ,CACjB,CACA,YAAa,CACT,IAAM,EAAQ,KAAK,MACb,EAAO,KAAK,YACZ,EAAU,KAAK,WAAW,EAC1B,GAAY,EAAM,EAAG,EAAG,IAAI,IAAS,IAAM,EAAI,IAAS,IAAM,EAAI,EAClE,EAAM,EAAK,QAAU,GAAe,EAAQ,QAAS,GAAgB,EAAO,GAAG,CAAC,EAChF,EAAM,EAAK,QAAU,GAAe,EAAQ,QAAS,GAAgB,EAAO,GAAG,CAAC,EAChF,EAAM,EAAK,QAAU,GAAe,EAAQ,QAAS,GAAgB,EAAO,GAAG,CAAC,EAChF,EAAY,EAAK,UACjB,EAAM,EAAK,QAAU,EAAS,EAAW,EAAK,EAAK,CAAG,EACtD,EAAM,EAAK,QAAU,EAAS,EAAW,EAAK,EAAK,CAAG,EAC5D,EAAK,OAAS,KAAK,cAAc,CAAG,EACpC,EAAK,OAAS,KAAK,cAAc,CAAG,EACpC,EAAK,OAAS,KAAK,cAAc,CAAG,EACpC,EAAK,OAAS,KAAK,cAAc,CAAG,EACpC,EAAK,OAAS,KAAK,cAAc,CAAG,CACxC,CACA,YAAa,CACT,OAAO,KAAK,MAAM,KAAK,SAAS,KAAK,MACzC,CACA,SAAU,CACN,OAAO,KAAK,MAAM,eAAe,KAAK,KAAK,CAC/C,CACH,cAAc,EAAS,CAChB,OAAO,KAAK,MAAM,OAAO,EAC7B,CACH,eAAe,EAAO,CACf,IAAM,EAAO,KAAK,YAClB,OAAO,IAAU,EAAK,OAAS,EAAK,OAAS,EAAK,MACtD,CACA,OAAQ,CACJ,KAAK,QAAQ,OAAO,CACxB,CACH,UAAW,CACJ,IAAM,EAAO,KAAK,YACd,KAAK,OACL,GAAoB,KAAK,MAAO,IAAI,EAEpC,EAAK,UACL,GAAY,CAAI,CAExB,CACH,YAAa,CACN,IAAM,EAAU,KAAK,WAAW,EAC1B,EAAO,CAAiB,CAAQ,OAAO,CAAC,EACxC,EAAQ,KAAK,MACnB,GAAIA,GAAS,CAAI,EAAG,CAChB,IAAM,EAAO,KAAK,YAClB,KAAK,MAAQ,IAAyB,EAAM,CAAI,CACpD,MAAO,GAAI,IAAU,EAAM,CACvB,GAAI,EAAO,CACP,GAAoB,EAAO,IAAI,EAC/B,IAAM,EAAO,KAAK,YAClB,GAAY,CAAI,EAChB,EAAK,QAAU,CAAC,CACpB,CACI,GAAQ,OAAO,aAAa,CAAI,GAChC,IAAkB,EAAM,IAAI,EAEhC,KAAK,UAAY,CAAC,EAClB,KAAK,MAAQ,CACjB,CACJ,CACA,aAAc,CACV,IAAM,EAAO,KAAK,YAClB,KAAK,WAAW,EACZ,KAAK,qBACL,EAAK,QAAU,IAAI,KAAK,mBAEhC,CACA,sBAAsB,EAAkB,CACpC,IAAM,EAAO,KAAK,YACZ,EAAU,KAAK,WAAW,EAC5B,EAAe,GACnB,KAAK,WAAW,EAChB,IAAM,EAAa,EAAK,SACxB,EAAK,SAAW,GAAU,EAAK,OAAQ,CAAI,EACvC,EAAK,QAAU,EAAQ,QACvB,EAAe,GACf,GAAY,CAAI,EAChB,EAAK,MAAQ,EAAQ,OAEzB,KAAK,gBAAgB,CAAgB,GACjC,GAAgB,IAAe,EAAK,YACpC,GAAa,KAAM,EAAK,OAAO,EAC/B,EAAK,SAAW,GAAU,EAAK,OAAQ,CAAI,EAEnD,CACH,WAAY,CACL,IAAM,EAAS,KAAK,MAAM,OACpB,EAAY,EAAO,iBAAiB,KAAK,KAAK,EAC9C,EAAS,EAAO,gBAAgB,KAAK,WAAW,EAAG,EAAW,EAAI,EACxE,KAAK,QAAU,EAAO,eAAe,EAAQ,KAAK,WAAW,CAAC,EAC9D,KAAK,SAAW,KAAK,QAAQ,QAC7B,KAAK,gBAAkB,CAAC,CAC5B,CACH,MAAM,EAAO,EAAO,CACb,GAAM,CAAE,YAAa,EAAO,MAAO,GAAU,KACvC,CAAE,SAAS,YAAc,EACzB,EAAQ,EAAO,KACjB,EAAS,IAAU,GAAK,IAAU,EAAK,OAAS,GAAO,EAAK,QAC5D,EAAO,EAAQ,GAAK,EAAK,QAAQ,EAAQ,GACzC,EAAG,EAAK,EACZ,GAAI,KAAK,WAAa,GAClB,EAAK,QAAU,EACf,EAAK,QAAU,GACf,EAAS,MACN,CACH,CAKI,CALA,GAAQ,EAAK,EAAM,EACV,KAAK,eAAe,EAAM,EAAM,EAAO,CAAK,EAC9CA,GAAS,EAAK,EAAM,EAClB,KAAK,gBAAgB,EAAM,EAAM,EAAO,CAAK,EAE7C,KAAK,mBAAmB,EAAM,EAAM,EAAO,CAAK,EAE7D,IAAM,MAAiC,EAAI,KAAW,MAAQ,GAAQ,EAAI,GAAS,EAAK,GACxF,IAAI,EAAI,EAAG,EAAI,EAAO,EAAE,EACpB,EAAK,QAAQ,EAAI,GAAS,EAAM,EAAO,GACnC,IACI,EAA2B,IAC3B,EAAS,IAEb,EAAO,GAGf,EAAK,QAAU,CACnB,CACI,GACA,GAAa,KAAM,CAAM,CAEjC,CACH,mBAAmB,EAAM,EAAM,EAAO,EAAO,CACtC,GAAM,CAAE,SAAS,UAAY,EACvB,EAAQ,EAAO,KACf,EAAQ,EAAO,KACf,EAAS,EAAO,UAAU,EAC1B,EAAc,IAAW,EACzB,EAAa,MAAM,CAAK,EAC1B,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAO,EAAI,EAAM,EAAE,EACjC,EAAQ,EAAI,EACZ,EAAO,GAAK,EACP,GAAQ,GAAe,EAAO,MAAM,EAAO,GAAQ,CAAK,GACxD,GAAQ,EAAO,MAAM,EAAK,GAAQ,CAAK,CAC5C,EAEJ,OAAO,CACX,CACH,eAAe,EAAM,EAAM,EAAO,EAAO,CAClC,GAAM,CAAE,SAAS,UAAY,EACvB,EAAa,MAAM,CAAK,EAC1B,EAAG,EAAM,EAAO,EACpB,IAAI,EAAI,EAAG,EAAO,EAAO,EAAI,EAAM,EAAE,EACjC,EAAQ,EAAI,EACZ,EAAO,EAAK,GACZ,EAAO,GAAK,CACR,EAAG,EAAO,MAAM,EAAK,GAAI,CAAK,EAC9B,EAAG,EAAO,MAAM,EAAK,GAAI,CAAK,CAClC,EAEJ,OAAO,CACX,CACH,gBAAgB,EAAM,EAAM,EAAO,EAAO,CACnC,GAAM,CAAE,SAAS,UAAY,EACvB,CAAE,WAAU,IAAM,WAAU,KAAS,KAAK,SAC1C,EAAa,MAAM,CAAK,EAC1B,EAAG,EAAM,EAAO,EACpB,IAAI,EAAI,EAAG,EAAO,EAAO,EAAI,EAAM,EAAE,EACjC,EAAQ,EAAI,EACZ,EAAO,EAAK,GACZ,EAAO,GAAK,CACR,EAAG,EAAO,MAAM,GAAiB,EAAM,CAAQ,EAAG,CAAK,EACvD,EAAG,EAAO,MAAM,GAAiB,EAAM,CAAQ,EAAG,CAAK,CAC3D,EAEJ,OAAO,CACX,CACH,UAAU,EAAO,CACV,OAAO,KAAK,YAAY,QAAQ,EACpC,CACH,eAAe,EAAO,CACf,OAAO,KAAK,YAAY,KAAK,EACjC,CACH,WAAW,EAAO,EAAQ,EAAM,CACzB,IAAM,EAAQ,KAAK,MACb,EAAO,KAAK,YACZ,EAAQ,EAAO,EAAM,MAK3B,OAAO,GAAW,CAHd,KAAM,GAAwB,EAAO,EAAI,EACzC,OAAQ,EAAO,QAAQ,EAAM,MAAM,aAEjB,EAAG,EAAO,EAAK,MAAO,CACxC,MACJ,CAAC,CACL,CACH,sBAAsB,EAAO,EAAO,EAAQ,EAAO,CAC5C,IAAM,EAAc,EAAO,EAAM,MAC7B,EAAQ,IAAgB,KAAO,IAAM,EACnC,EAAS,GAAS,EAAO,QAAQ,EAAM,MACzC,GAAS,IACT,EAAM,OAAS,EACf,EAAQ,GAAW,EAAO,EAAa,KAAK,YAAY,KAAK,GAEjE,EAAM,IAAM,KAAK,IAAI,EAAM,IAAK,CAAK,EACrC,EAAM,IAAM,KAAK,IAAI,EAAM,IAAK,CAAK,CACzC,CACH,UAAU,EAAO,EAAU,CACpB,IAAM,EAAO,KAAK,YACZ,EAAU,EAAK,QACf,EAAS,EAAK,SAAW,IAAU,EAAK,OACxC,EAAO,EAAQ,OACf,EAAa,KAAK,eAAe,CAAK,EACtC,EAAQ,IAAY,EAAU,EAAM,KAAK,KAAK,EAC9C,EAAQ,CACV,IAAK,IACL,IAAK,IACT,EACM,CAAE,IAAK,EAAW,IAAK,GAAc,IAAc,CAAU,EAC/D,EAAG,EACP,SAAS,GAAQ,CACb,EAAS,EAAQ,GACjB,IAAM,EAAa,EAAO,EAAW,MACrC,MAAO,CAAC,GAAe,EAAO,EAAM,KAAK,GAAK,EAAW,GAAc,EAAW,CACtF,CACA,IAAI,EAAI,EAAG,EAAI,KACP,GAAM,IAGV,KAAK,sBAAsB,EAAO,EAAO,EAAQ,CAAK,EAClD,IALa,EAAE,GASvB,GAAI,EACA,KAAI,EAAI,EAAO,EAAG,GAAK,EAAG,EAAE,EACpB,MAAM,EAGV,MAAK,sBAAsB,EAAO,EAAO,EAAQ,CAAK,EACtD,KADsD,CAE1D,CAEJ,OAAO,CACX,CACA,mBAAmB,EAAO,CACtB,IAAM,EAAS,KAAK,YAAY,QAC1B,EAAS,CAAC,EACZ,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,EAAQ,EAAO,GAAG,EAAM,MACpB,GAAe,CAAK,GACpB,EAAO,KAAK,CAAK,EAGzB,OAAO,CACX,CACH,gBAAiB,CACV,MAAO,EACX,CACH,iBAAiB,EAAO,CACjB,IAAM,EAAO,KAAK,YACZ,EAAS,EAAK,OACd,EAAS,EAAK,OACd,EAAS,KAAK,UAAU,CAAK,EACnC,MAAO,CACH,MAAO,EAAS,GAAK,EAAO,iBAAiB,EAAO,EAAO,KAAK,EAAI,GACpE,MAAO,EAAS,GAAK,EAAO,iBAAiB,EAAO,EAAO,KAAK,EAAI,EACxE,CACJ,CACH,QAAQ,EAAM,CACP,IAAM,EAAO,KAAK,YAClB,KAAK,OAAO,GAAQ,SAAS,EAC7B,EAAK,MAAQ,IAAO,GAAe,KAAK,QAAQ,KAAM,IAAY,EAAK,OAAQ,EAAK,OAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,CACvH,CACH,OAAO,EAAM,CAAC,CACX,MAAO,CACH,IAAM,EAAM,KAAK,KACX,EAAQ,KAAK,MACb,EAAO,KAAK,YACZ,EAAW,EAAK,MAAQ,CAAC,EACzB,EAAO,EAAM,UACb,EAAS,CAAC,EACV,EAAQ,KAAK,YAAc,EAC3B,EAAQ,KAAK,YAAc,EAAS,OAAS,EAC7C,EAA0B,KAAK,QAAQ,wBACzC,EAIJ,IAHI,EAAK,SACL,EAAK,QAAQ,KAAK,EAAK,EAAM,EAAO,CAAK,EAEzC,EAAI,EAAO,EAAI,EAAQ,EAAO,EAAE,EAAE,CAClC,IAAM,EAAU,EAAS,GACrB,EAAQ,SAGR,EAAQ,QAAU,EAClB,EAAO,KAAK,CAAO,EAEnB,EAAQ,KAAK,EAAK,CAAI,EAE9B,CACA,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,EAAE,EAC5B,EAAO,GAAG,KAAK,EAAK,CAAI,CAEhC,CACH,SAAS,EAAO,EAAQ,CACjB,IAAM,EAAO,EAAS,SAAW,UACjC,OAAO,IAAU,QAAa,KAAK,YAAY,QAAU,KAAK,6BAA6B,CAAI,EAAI,KAAK,0BAA0B,GAAS,EAAG,CAAI,CACtJ,CACH,WAAW,EAAO,EAAQ,EAAM,CACzB,IAAM,EAAU,KAAK,WAAW,EAC5B,EACJ,GAAI,GAAS,GAAK,EAAQ,KAAK,YAAY,KAAK,OAAQ,CACpD,IAAM,EAAU,KAAK,YAAY,KAAK,GACtC,EAAU,CAAqB,CAAQ,WAAW,IAAkB,KAAK,WAAW,EAAG,EAAO,CAAO,EACrG,EAAQ,OAAS,KAAK,UAAU,CAAK,EACrC,EAAQ,IAAM,EAAQ,KAAK,GAC3B,EAAQ,MAAQ,EAAQ,UAAY,CACxC,MACI,EAAU,IAAkB,CAAK,WAAW,IAAqB,KAAK,MAAM,WAAW,EAAG,KAAK,KAAK,EACpG,EAAQ,QAAU,EAClB,EAAQ,MAAQ,EAAQ,aAAe,KAAK,MAIhD,MAFA,GAAQ,OAAS,CAAC,CAAC,EACnB,EAAQ,KAAO,EACR,CACX,CACH,6BAA6B,EAAM,CAC5B,OAAO,KAAK,uBAAuB,KAAK,mBAAmB,GAAI,CAAI,CACvE,CACH,0BAA0B,EAAO,EAAM,CAChC,OAAO,KAAK,uBAAuB,KAAK,gBAAgB,GAAI,EAAM,CAAK,CAC3E,CACH,uBAAuB,EAAa,EAAO,UAAW,EAAO,CACtD,IAAM,EAAS,IAAS,SAClB,EAAQ,KAAK,gBACb,EAAW,EAAc,IAAM,EAC/B,EAAS,EAAM,GACf,EAAU,KAAK,qBAAuB,GAAQ,CAAK,EACzD,GAAI,EACA,OAAO,GAAiB,EAAQ,CAAO,EAE3C,IAAM,EAAS,KAAK,MAAM,OACpB,EAAY,EAAO,wBAAwB,KAAK,MAAO,CAAW,EAClE,EAAW,EAAS,CACtB,GAAG,EAAY,OACf,QACA,EACA,EACJ,EAAI,CACA,EACA,EACJ,EACM,EAAS,EAAO,gBAAgB,KAAK,WAAW,EAAG,CAAS,EAC5D,EAAQ,OAAO,KAAK,GAAS,SAAS,EAAY,EAElD,EAAS,EAAO,oBAAoB,EAAQ,MAD9B,KAAK,WAAW,EAAO,EAAQ,CAAI,EACW,CAAQ,EAK1E,OAJI,EAAO,UACP,EAAO,QAAU,EACjB,EAAM,GAAY,OAAO,OAAO,GAAiB,EAAQ,CAAO,CAAC,GAE9D,CACX,CACH,mBAAmB,EAAO,EAAY,EAAQ,CACvC,IAAM,EAAQ,KAAK,MACb,EAAQ,KAAK,gBACb,EAAW,aAAa,IACxB,EAAS,EAAM,GACrB,GAAI,EACA,OAAO,EAEX,IAAI,EACJ,GAAI,EAAM,QAAQ,YAAc,GAAO,CACnC,IAAM,EAAS,KAAK,MAAM,OACpB,EAAY,EAAO,0BAA0B,KAAK,MAAO,CAAU,EACnE,EAAS,EAAO,gBAAgB,KAAK,WAAW,EAAG,CAAS,EAClE,EAAU,EAAO,eAAe,EAAQ,KAAK,WAAW,EAAO,EAAQ,CAAU,CAAC,CACtF,CACA,IAAM,EAAa,IAAI,GAAW,EAAO,GAAW,EAAQ,UAAU,EAItE,OAHI,GAAW,EAAQ,aACnB,EAAM,GAAY,OAAO,OAAO,CAAU,GAEvC,CACX,CACH,iBAAiB,EAAS,CACd,KAAQ,QAGb,MAAO,CAAwB,KAAK,iBAAiB,OAAO,OAAO,CAAC,EAAG,CAAO,CAClF,CACH,eAAe,EAAM,EAAe,CAC7B,MAAO,CAAC,GAAiB,GAAmB,CAAI,GAAK,KAAK,MAAM,mBACpE,CACH,kBAAkB,EAAO,EAAM,CACxB,IAAM,EAAY,KAAK,0BAA0B,EAAO,CAAI,EACtD,EAA0B,KAAK,eAC/B,EAAgB,KAAK,iBAAiB,CAAS,EAC/C,EAAiB,KAAK,eAAe,EAAM,CAAa,GAAK,IAAkB,EAErF,OADA,KAAK,oBAAoB,EAAe,EAAM,CAAS,EAChD,CACH,gBACA,gBACJ,CACJ,CACH,cAAc,EAAS,EAAO,EAAY,EAAM,CACrC,GAAmB,CAAI,EACvB,OAAO,OAAO,EAAS,CAAU,EAEjC,KAAK,mBAAmB,EAAO,CAAI,EAAE,OAAO,EAAS,CAAU,CAEvE,CACH,oBAAoB,EAAe,EAAM,EAAY,CAC1C,GAAiB,CAAC,GAAmB,CAAI,GACzC,KAAK,mBAAmB,OAAW,CAAI,EAAE,OAAO,EAAe,CAAU,CAEjF,CACH,UAAU,EAAS,EAAO,EAAM,EAAQ,CACjC,EAAQ,OAAS,EACjB,IAAM,EAAU,KAAK,SAAS,EAAO,CAAM,EAC3C,KAAK,mBAAmB,EAAO,EAAM,CAAM,EAAE,OAAO,EAAS,CACzD,QAAS,CAAC,GAAU,KAAK,iBAAiB,CAAO,GAAK,CAC1D,CAAC,CACL,CACA,iBAAiB,EAAS,EAAc,EAAO,CAC3C,KAAK,UAAU,EAAS,EAAO,SAAU,EAAK,CAClD,CACA,cAAc,EAAS,EAAc,EAAO,CACxC,KAAK,UAAU,EAAS,EAAO,SAAU,EAAI,CACjD,CACH,0BAA2B,CACpB,IAAM,EAAU,KAAK,YAAY,QAC7B,GACA,KAAK,UAAU,EAAS,OAAW,SAAU,EAAK,CAE1D,CACH,uBAAwB,CACjB,IAAM,EAAU,KAAK,YAAY,QAC7B,GACA,KAAK,UAAU,EAAS,OAAW,SAAU,EAAI,CAEzD,CACH,gBAAgB,EAAkB,CAC3B,IAAM,EAAO,KAAK,MACZ,EAAW,KAAK,YAAY,KAClC,IAAK,GAAM,CAAC,EAAQ,EAAM,KAAS,KAAK,UACpC,KAAK,GAAQ,EAAM,CAAI,EAE3B,KAAK,UAAY,CAAC,EAClB,IAAM,EAAU,EAAS,OACnB,EAAU,EAAK,OACf,EAAQ,KAAK,IAAI,EAAS,CAAO,EACnC,GACA,KAAK,MAAM,EAAG,CAAK,EAEnB,EAAU,EACV,KAAK,gBAAgB,EAAS,EAAU,EAAS,CAAgB,EAC1D,EAAU,GACjB,KAAK,gBAAgB,EAAS,EAAU,CAAO,CAEvD,CACH,gBAAgB,EAAO,EAAO,EAAmB,GAAM,CAChD,IAAM,EAAO,KAAK,YACZ,EAAO,EAAK,KACZ,EAAM,EAAQ,EAChB,EACE,EAAQ,GAAM,CAEhB,IADA,EAAI,QAAU,EACV,EAAI,EAAI,OAAS,EAAG,GAAK,EAAK,IAC9B,EAAI,GAAK,EAAI,EAAI,EAEzB,EAEA,IADA,EAAK,CAAI,EACL,EAAI,EAAO,EAAI,EAAK,EAAE,EACtB,EAAK,GAAK,IAAI,KAAK,gBAEnB,KAAK,UACL,EAAK,EAAK,OAAO,EAErB,KAAK,MAAM,EAAO,CAAK,EACnB,GACA,KAAK,eAAe,EAAM,EAAO,EAAO,OAAO,CAEvD,CACA,eAAe,EAAS,EAAO,EAAO,EAAM,CAAC,CAChD,gBAAgB,EAAO,EAAO,CACvB,IAAM,EAAO,KAAK,YAClB,GAAI,KAAK,SAAU,CACf,IAAM,EAAU,EAAK,QAAQ,OAAO,EAAO,CAAK,EAC5C,EAAK,UACL,GAAY,EAAM,CAAO,CAEjC,CACA,EAAK,KAAK,OAAO,EAAO,CAAK,CACjC,CACH,MAAM,EAAM,CACL,GAAI,KAAK,SACL,KAAK,UAAU,KAAK,CAAI,MACrB,CACH,GAAM,CAAC,EAAQ,EAAM,GAAQ,EAC7B,KAAK,GAAQ,EAAM,CAAI,CAC3B,CACA,KAAK,MAAM,aAAa,KAAK,CACzB,KAAK,MACL,GAAG,CACP,CAAC,CACL,CACA,aAAc,CACV,IAAM,EAAQ,UAAU,OACxB,KAAK,MAAM,CACP,kBACA,KAAK,WAAW,EAAE,KAAK,OAAS,EAChC,CACJ,CAAC,CACL,CACA,YAAa,CACT,KAAK,MAAM,CACP,kBACA,KAAK,YAAY,KAAK,OAAS,EAC/B,CACJ,CAAC,CACL,CACA,cAAe,CACX,KAAK,MAAM,CACP,kBACA,EACA,CACJ,CAAC,CACL,CACA,cAAc,EAAO,EAAO,CACpB,GACA,KAAK,MAAM,CACP,kBACA,EACA,CACJ,CAAC,EAEL,IAAM,EAAW,UAAU,OAAS,EAChC,GACA,KAAK,MAAM,CACP,kBACA,EACA,CACJ,CAAC,CAET,CACA,gBAAiB,CACb,KAAK,MAAM,CACP,kBACA,EACA,UAAU,MACd,CAAC,CACL,CACJ,EAEA,SAAS,IAAkB,EAAO,EAAM,CACpC,GAAI,CAAC,EAAM,OAAO,KAAM,CACpB,IAAM,EAAe,EAAM,wBAAwB,CAAI,EACnD,EAAS,CAAC,EACd,IAAI,IAAI,EAAI,EAAG,EAAO,EAAa,OAAQ,EAAI,EAAM,IACjD,EAAS,EAAO,OAAO,EAAa,GAAG,WAAW,mBAAmB,CAAK,CAAC,EAE/E,EAAM,OAAO,KAAO,GAAa,EAAO,MAAM,EAAG,IAAI,EAAI,CAAC,CAAC,CAC/D,CACA,OAAO,EAAM,OAAO,IACxB,CACC,SAAS,IAAqB,EAAM,CACjC,IAAM,EAAQ,EAAK,OACb,EAAS,IAAkB,EAAO,EAAK,IAAI,EAC7C,EAAM,EAAM,QACZ,EAAG,EAAM,EAAM,EACb,MAAuB,CACrB,IAAS,OAAS,IAAS,SAG3B,GAAQ,CAAI,IACZ,EAAM,KAAK,IAAI,EAAK,KAAK,IAAI,EAAO,CAAI,GAAK,CAAG,GAEpD,EAAO,EACX,EACA,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,EAAO,EAAM,iBAAiB,EAAO,EAAE,EACvC,EAAiB,EAGrB,IADA,EAAO,OACH,EAAI,EAAG,EAAO,EAAM,MAAM,OAAQ,EAAI,EAAM,EAAE,EAC9C,EAAO,EAAM,gBAAgB,CAAC,EAC9B,EAAiB,EAErB,OAAO,CACX,CACC,SAAS,IAAyB,EAAO,EAAO,EAAS,EAAY,CAClE,IAAM,EAAY,EAAQ,aACtB,EAAM,EAQV,OAPI,GAAc,CAAS,GACvB,EAAO,EAAM,IAAM,EAAQ,mBAC3B,EAAQ,EAAQ,gBAEhB,EAAO,EAAY,EACnB,EAAQ,GAEL,CACH,MAAO,EAAO,EACd,QACA,MAAO,EAAM,OAAO,GAAS,EAAO,CACxC,CACJ,CACC,SAAS,IAA0B,EAAO,EAAO,EAAS,EAAY,CACnE,IAAM,EAAS,EAAM,OACf,EAAO,EAAO,GAChB,EAAO,EAAQ,EAAI,EAAO,EAAQ,GAAK,KACvC,EAAO,EAAQ,EAAO,OAAS,EAAI,EAAO,EAAQ,GAAK,KACrD,EAAU,EAAQ,mBACpB,IAAS,OACT,EAAO,GAAQ,IAAS,KAAO,EAAM,IAAM,EAAM,MAAQ,EAAO,IAEhE,IAAS,OACT,EAAO,EAAO,EAAO,GAEzB,IAAM,EAAQ,GAAQ,EAAO,KAAK,IAAI,EAAM,CAAI,GAAK,EAAI,EAEzD,MAAO,CACH,MAFS,KAAK,IAAI,EAAO,CAAI,EAAI,EAAI,EAEvB,EACd,MAAO,EAAQ,cACf,OACJ,CACJ,CACA,SAAS,IAAc,EAAO,EAAM,EAAQ,EAAG,CAC3C,IAAM,EAAa,EAAO,MAAM,EAAM,GAAI,CAAC,EACrC,EAAW,EAAO,MAAM,EAAM,GAAI,CAAC,EACnC,EAAM,KAAK,IAAI,EAAY,CAAQ,EACnC,EAAM,KAAK,IAAI,EAAY,CAAQ,EACrC,EAAW,EACX,EAAS,EACT,KAAK,IAAI,CAAG,EAAI,KAAK,IAAI,CAAG,IAC5B,EAAW,EACX,EAAS,GAEb,EAAK,EAAO,MAAQ,EACpB,EAAK,QAAU,CACX,WACA,SACA,MAAO,EACP,IAAK,EACL,MACA,KACJ,CACJ,CACA,SAAS,GAAW,EAAO,EAAM,EAAQ,EAAG,CAMxC,OALI,GAAQ,CAAK,EACb,IAAc,EAAO,EAAM,EAAQ,CAAC,EAEpC,EAAK,EAAO,MAAQ,EAAO,MAAM,EAAO,CAAC,EAEtC,CACX,CACA,SAAS,GAAsB,EAAM,EAAM,EAAO,EAAO,CACrD,IAAM,EAAS,EAAK,OACd,EAAS,EAAK,OACd,EAAS,EAAO,UAAU,EAC1B,EAAc,IAAW,EACzB,EAAS,CAAC,EACZ,EAAG,EAAM,EAAM,EACnB,IAAI,EAAI,EAAO,EAAO,EAAQ,EAAO,EAAI,EAAM,EAAE,EAC7C,EAAQ,EAAK,GACb,EAAO,CAAC,EACR,EAAK,EAAO,MAAQ,GAAe,EAAO,MAAM,EAAO,GAAI,CAAC,EAC5D,EAAO,KAAK,GAAW,EAAO,EAAM,EAAQ,CAAC,CAAC,EAElD,OAAO,CACX,CACA,SAAS,GAAW,EAAQ,CACxB,OAAO,GAAU,EAAO,WAAa,QAAa,EAAO,SAAW,MACxE,CACA,SAAS,IAAQ,EAAM,EAAQ,EAAY,CAIvC,OAHI,IAAS,GAGL,EAAO,aAAa,EAAI,EAAI,KAAO,EAAO,KAAO,EAAa,EAAI,IAF/D,GAAK,CAAI,CAGxB,CACA,SAAS,IAAY,EAAY,CAC7B,IAAI,EAAS,EAAO,EAAK,EAAK,EAiB9B,OAhBI,EAAW,YACX,EAAU,EAAW,KAAO,EAAW,EACvC,EAAQ,OACR,EAAM,UAEN,EAAU,EAAW,KAAO,EAAW,EACvC,EAAQ,SACR,EAAM,OAEN,GACA,EAAM,MACN,EAAS,UAET,EAAM,QACN,EAAS,OAEN,CACH,QACA,MACA,UACA,MACA,QACJ,CACJ,CACA,SAAS,IAAiB,EAAY,EAAS,EAAO,EAAO,CACzD,IAAI,EAAO,EAAQ,cACb,EAAM,CAAC,EACb,GAAI,CAAC,EAAM,CACP,EAAW,cAAgB,EAC3B,MACJ,CACA,GAAI,IAAS,GAAM,CACf,EAAW,cAAgB,CACvB,IAAK,GACL,MAAO,GACP,OAAQ,GACR,KAAM,EACV,EACA,MACJ,CACA,GAAM,CAAE,QAAQ,MAAM,UAAU,MAAM,UAAY,IAAY,CAAU,EACpE,IAAS,UAAY,IACrB,EAAW,mBAAqB,IAC3B,EAAM,MAAQ,KAAO,EACtB,EAAO,GACC,EAAM,SAAW,KAAO,EAChC,EAAO,GAEP,EAAI,GAAU,EAAQ,EAAO,EAAK,CAAO,GAAK,GAC9C,EAAO,IAGf,EAAI,GAAU,EAAM,EAAO,EAAK,CAAO,GAAK,GAC5C,EAAW,cAAgB,CAC/B,CACA,SAAS,GAAU,EAAM,EAAG,EAAG,EAAS,CAOpC,OANI,GACA,EAAO,IAAK,EAAM,EAAG,CAAC,EACtB,EAAO,GAAS,EAAM,EAAG,CAAC,GAE1B,EAAO,GAAS,EAAM,EAAG,CAAC,EAEvB,CACX,CACA,SAAS,IAAK,EAAM,EAAI,EAAI,CACxB,OAAO,IAAS,EAAK,EAAK,IAAS,EAAK,EAAK,CACjD,CACA,SAAS,GAAS,EAAG,EAAO,EAAK,CAC7B,OAAO,IAAM,QAAU,EAAQ,IAAM,MAAQ,EAAM,CACvD,CACA,SAAS,IAAiB,EAAY,CAAE,iBAAkB,EAAO,CAC7D,EAAW,cAAgB,IAAkB,OAAS,IAAU,EAAI,IAAO,EAAI,CACnF,CACA,IAAM,GAAN,cAA4B,EAAkB,CAC1C,OAAO,GAAK,MACf,OAAO,SAAW,CACX,mBAAoB,GACpB,gBAAiB,MACjB,mBAAoB,GACpB,cAAe,GACf,QAAS,GACT,WAAY,CACR,QAAS,CACL,KAAM,SACN,WAAY,CACR,IACA,IACA,OACA,QACA,QACJ,CACJ,CACJ,CACJ,EACH,OAAO,UAAY,CACZ,OAAQ,CACJ,QAAS,CACL,KAAM,WACN,OAAQ,GACR,KAAM,CACF,OAAQ,EACZ,CACJ,EACA,QAAS,CACL,KAAM,SACN,YAAa,EACjB,CACJ,CACJ,EACH,mBAAmB,EAAM,EAAM,EAAO,EAAO,CACtC,OAAO,GAAsB,EAAM,EAAM,EAAO,CAAK,CACzD,CACH,eAAe,EAAM,EAAM,EAAO,EAAO,CAClC,OAAO,GAAsB,EAAM,EAAM,EAAO,CAAK,CACzD,CACH,gBAAgB,EAAM,EAAM,EAAO,EAAO,CACnC,GAAM,CAAE,SAAS,UAAY,EACvB,CAAE,WAAU,IAAM,WAAU,KAAS,KAAK,SAC1C,EAAW,EAAO,OAAS,IAAM,EAAW,EAC5C,EAAW,EAAO,OAAS,IAAM,EAAW,EAC5C,EAAS,CAAC,EACZ,EAAG,EAAM,EAAM,EACnB,IAAI,EAAI,EAAO,EAAO,EAAQ,EAAO,EAAI,EAAM,EAAE,EAC7C,EAAM,EAAK,GACX,EAAO,CAAC,EACR,EAAK,EAAO,MAAQ,EAAO,MAAM,GAAiB,EAAK,CAAQ,EAAG,CAAC,EACnE,EAAO,KAAK,GAAW,GAAiB,EAAK,CAAQ,EAAG,EAAM,EAAQ,CAAC,CAAC,EAE5E,OAAO,CACX,CACH,sBAAsB,EAAO,EAAO,EAAQ,EAAO,CAC5C,MAAM,sBAAsB,EAAO,EAAO,EAAQ,CAAK,EACvD,IAAM,EAAS,EAAO,QAClB,GAAU,IAAU,KAAK,YAAY,SACrC,EAAM,IAAM,KAAK,IAAI,EAAM,IAAK,EAAO,GAAG,EAC1C,EAAM,IAAM,KAAK,IAAI,EAAM,IAAK,EAAO,GAAG,EAElD,CACH,gBAAiB,CACV,MAAO,EACX,CACH,iBAAiB,EAAO,CAEjB,GAAM,CAAE,SAAS,UADJ,KAAK,YAEZ,EAAS,KAAK,UAAU,CAAK,EAC7B,EAAS,EAAO,QAChB,EAAQ,GAAW,CAAM,EAAI,IAAM,EAAO,MAAQ,KAAO,EAAO,IAAM,IAAM,GAAK,EAAO,iBAAiB,EAAO,EAAO,KAAK,EAClI,MAAO,CACH,MAAO,GAAK,EAAO,iBAAiB,EAAO,EAAO,KAAK,EACvD,OACJ,CACJ,CACA,YAAa,CACT,KAAK,oBAAsB,GAC3B,MAAM,WAAW,EACjB,IAAM,EAAO,KAAK,YAClB,EAAK,MAAQ,KAAK,WAAW,EAAE,KACnC,CACA,OAAO,EAAM,CACT,IAAM,EAAO,KAAK,YAClB,KAAK,eAAe,EAAK,KAAM,EAAG,EAAK,KAAK,OAAQ,CAAI,CAC5D,CACA,eAAe,EAAM,EAAO,EAAO,EAAM,CACrC,IAAM,EAAQ,IAAS,QACjB,CAAE,QAAQ,YAAa,CAAE,WAAe,KACxC,EAAO,EAAO,aAAa,EAC3B,EAAa,EAAO,aAAa,EACjC,EAAQ,KAAK,UAAU,EACvB,CAAE,gBAAgB,kBAAoB,KAAK,kBAAkB,EAAO,CAAI,EAC9E,IAAI,IAAI,EAAI,EAAO,EAAI,EAAQ,EAAO,IAAI,CACtC,IAAM,EAAS,KAAK,UAAU,CAAC,EACzB,EAAU,GAAS,GAAc,EAAO,EAAO,KAAK,EAAI,CAC1D,OACA,KAAM,CACV,EAAI,KAAK,yBAAyB,CAAC,EAC7B,EAAU,KAAK,yBAAyB,EAAG,CAAK,EAChD,GAAS,EAAO,SAAW,CAAC,GAAG,EAAO,MACtC,EAAa,CACf,aACA,KAAM,EAAQ,KACd,mBAAoB,CAAC,GAAS,GAAW,EAAO,OAAO,GAAK,IAAU,EAAM,MAAQ,IAAU,EAAM,QACpG,EAAG,EAAa,EAAQ,KAAO,EAAQ,OACvC,EAAG,EAAa,EAAQ,OAAS,EAAQ,KACzC,OAAQ,EAAa,EAAQ,KAAO,KAAK,IAAI,EAAQ,IAAI,EACzD,MAAO,EAAa,KAAK,IAAI,EAAQ,IAAI,EAAI,EAAQ,IACzD,EACI,IACA,EAAW,QAAU,GAAiB,KAAK,0BAA0B,EAAG,EAAK,GAAG,OAAS,SAAW,CAAI,GAE5G,IAAM,EAAU,EAAW,SAAW,EAAK,GAAG,QAC9C,IAAiB,EAAY,EAAS,EAAO,CAAK,EAClD,IAAiB,EAAY,EAAS,EAAM,KAAK,EACjD,KAAK,cAAc,EAAK,GAAI,EAAG,EAAY,CAAI,CACnD,CACJ,CACH,WAAW,EAAM,EAAW,CACrB,GAAM,CAAE,UAAY,KAAK,YACnB,EAAW,EAAO,wBAAwB,KAAK,KAAK,EAAE,OAAQ,GAAO,EAAK,WAAW,QAAQ,OAAO,EACpG,EAAU,EAAO,QAAQ,QACzB,EAAS,CAAC,EACV,EAAgB,KAAK,YAAY,WAAW,UAAU,CAAS,EAC/D,EAAc,GAAiB,EAAc,EAAO,MACpD,EAAY,GAAO,CACrB,IAAM,EAAS,EAAK,QAAQ,KAAM,GAAO,EAAK,EAAO,QAAU,CAAW,EACpE,EAAM,GAAU,EAAO,EAAK,OAAO,MACzC,GAAI,GAAc,CAAG,GAAK,MAAM,CAAG,EAC/B,MAAO,EAEf,EACA,IAAK,IAAM,KAAQ,EACX,SAAc,QAAa,EAAS,CAAI,MAGxC,IAAY,IAAS,EAAO,QAAQ,EAAK,KAAK,IAAM,IAAM,IAAY,QAAa,EAAK,QAAU,SAClG,EAAO,KAAK,EAAK,KAAK,EAEtB,EAAK,QAAU,GACf,MAMR,OAHK,EAAO,QACR,EAAO,KAAK,MAAS,EAElB,CACX,CACH,eAAe,EAAO,CACf,OAAO,KAAK,WAAW,OAAW,CAAK,EAAE,MAC7C,CACA,eAAgB,CACZ,OAAO,KAAK,SAAS,EAAE,MAC3B,CACA,6BAA8B,CAC1B,IAAM,EAAS,KAAK,MAAM,OACpB,EAAe,KAAK,MAAM,QAAQ,UACxC,OAAO,OAAO,KAAK,CAAM,EAAE,OAAQ,GAAM,EAAO,GAAK,OAAS,CAAY,EAAE,MAAM,CACtF,CACA,UAAW,CACP,IAAM,EAAO,CAAC,EACR,EAAmB,KAAK,4BAA4B,EAC1D,IAAK,IAAM,KAAW,KAAK,MAAM,KAAK,SAClC,EAAK,GAAe,KAAK,MAAM,QAAQ,YAAc,IAAM,EAAQ,QAAU,EAAQ,QAAS,CAAgB,GAAK,GAEvH,OAAO,OAAO,KAAK,CAAI,CAC3B,CACH,eAAe,EAAc,EAAM,EAAW,CACvC,IAAM,EAAS,KAAK,WAAW,EAAc,CAAS,EAChD,EAAQ,IAAS,OAAmC,GAAvB,EAAO,QAAQ,CAAI,EACtD,OAAO,IAAU,GAAK,EAAO,OAAS,EAAI,CAC9C,CACH,WAAY,CACL,IAAM,EAAO,KAAK,QACZ,EAAO,KAAK,YACZ,EAAS,EAAK,OACd,EAAS,CAAC,EACZ,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAK,KAAK,OAAQ,EAAI,EAAM,EAAE,EAC5C,EAAO,KAAK,EAAO,iBAAiB,KAAK,UAAU,CAAC,EAAE,EAAO,MAAO,CAAC,CAAC,EAE1E,IAAM,EAAe,EAAK,aAE1B,MAAO,CACH,IAFQ,GAAgB,IAAqB,CAAI,EAGjD,SACA,MAAO,EAAO,YACd,IAAK,EAAO,UACZ,WAAY,KAAK,eAAe,EAChC,MAAO,EACP,QAAS,EAAK,QACd,MAAO,EAAe,EAAI,EAAK,mBAAqB,EAAK,aAC7D,CACJ,CACH,yBAAyB,EAAO,CACzB,GAAM,CAAE,YAAa,CAAE,SAAS,WAAW,MAAO,GAAkB,QAAS,CAAE,KAAM,EAAY,iBAAqB,KAChH,EAAa,GAAa,EAC1B,EAAS,KAAK,UAAU,CAAK,EAC7B,EAAS,EAAO,QAChB,EAAW,GAAW,CAAM,EAC9B,EAAQ,EAAO,EAAO,MACtB,EAAQ,EACR,EAAS,EAAW,KAAK,WAAW,EAAQ,EAAQ,CAAQ,EAAI,EAChE,EAAM,EACN,IAAW,IACX,EAAQ,EAAS,EACjB,EAAS,GAET,IACA,EAAQ,EAAO,SACf,EAAS,EAAO,OAAS,EAAO,SAC5B,IAAU,GAAK,GAAK,CAAK,IAAM,GAAK,EAAO,MAAM,IACjD,EAAQ,GAEZ,GAAS,GAEb,IAAM,EAAa,CAAC,GAAc,CAAS,GAAK,CAAC,EAAW,EAAY,EACpE,EAAO,EAAO,iBAAiB,CAAU,EAO7C,GANA,CAGI,CAHA,KAAK,MAAM,kBAAkB,CAAK,EAC3B,EAAO,iBAAiB,EAAQ,CAAM,EAEtC,EAEX,EAAO,EAAO,EACV,KAAK,IAAI,CAAI,EAAI,EAAc,CAC/B,EAAO,IAAQ,EAAM,EAAQ,CAAU,EAAI,EACvC,IAAU,IACV,GAAQ,EAAO,GAEnB,IAAM,EAAa,EAAO,mBAAmB,CAAC,EACxC,EAAW,EAAO,mBAAmB,CAAC,EAG5C,EAAO,KAAK,IAAI,KAAK,IAAI,EADb,KAAK,IAAI,EAAY,CACA,CAAC,EAFtB,KAAK,IAAI,EAAY,CAEM,CAAC,EACxC,EAAO,EAAO,EACV,GAAY,CAAC,IACb,EAAO,QAAQ,EAAO,MAAM,cAAc,GAAgB,EAAO,iBAAiB,CAAI,EAAI,EAAO,iBAAiB,CAAI,EAE9H,CACA,GAAI,IAAS,EAAO,iBAAiB,CAAU,EAAG,CAC9C,IAAM,EAAW,GAAK,CAAI,EAAI,EAAO,qBAAqB,CAAU,EAAI,EACxE,GAAQ,EACR,GAAQ,CACZ,CACA,MAAO,CACH,OACA,OACA,OACA,OAAQ,EAAO,EAAO,CAC1B,CACJ,CACH,yBAAyB,EAAO,EAAO,CAChC,IAAM,EAAQ,EAAM,MACd,EAAU,KAAK,QACf,EAAW,EAAQ,SACnB,EAAkB,GAAe,EAAQ,gBAAiB,GAAQ,EACpE,EAAQ,EACN,EAAY,KAAK,cAAc,EACrC,GAAI,EAAM,QAAS,CACf,IAAM,EAAa,EAAW,KAAK,eAAe,CAAK,EAAI,EAAM,WAC3D,EAAQ,EAAQ,eAAiB,OAAS,IAA0B,EAAO,EAAO,EAAS,EAAa,CAAS,EAAI,IAAyB,EAAO,EAAO,EAAS,EAAa,CAAS,EAC3L,EAAS,KAAK,MAAM,QAAQ,YAAc,IAAM,KAAK,WAAW,EAAE,QAAU,KAAK,WAAW,EAAE,QAC9F,EAAa,KAAK,SAAS,EAAE,QAAQ,GAAe,EAAQ,KAAK,4BAA4B,CAAC,CAAC,EAC/F,EAAa,KAAK,eAAe,KAAK,MAAO,KAAK,YAAY,MAAO,EAAW,EAAQ,MAAS,EAAI,EAC3G,EAAS,EAAM,MAAQ,EAAM,MAAQ,EAAa,EAAM,MAAQ,EAChE,EAAO,KAAK,IAAI,EAAiB,EAAM,MAAQ,EAAM,KAAK,CAC9D,MACI,EAAS,EAAM,iBAAiB,KAAK,UAAU,CAAK,EAAE,EAAM,MAAO,CAAK,EACxE,EAAO,KAAK,IAAI,EAAiB,EAAM,IAAM,EAAM,KAAK,EAE5D,MAAO,CACH,KAAM,EAAS,EAAO,EACtB,KAAM,EAAS,EAAO,EACtB,SACA,MACJ,CACJ,CACA,MAAO,CACH,IAAM,EAAO,KAAK,YACZ,EAAS,EAAK,OACd,EAAQ,EAAK,KACb,EAAO,EAAM,OACf,EAAI,EACR,KAAM,EAAI,EAAM,EAAE,EACV,KAAK,UAAU,CAAC,EAAE,EAAO,QAAU,MAAQ,CAAC,EAAM,GAAG,QACrD,EAAM,GAAG,KAAK,KAAK,IAAI,CAGnC,CACJ,EAwHA,SAAS,IAAkB,EAAU,EAAe,EAAQ,CACxD,IAAI,EAAS,EACT,EAAS,EACT,EAAU,EACV,EAAU,EACd,GAAI,EAAgB,GAAK,CACrB,IAAM,EAAa,EACb,EAAW,EAAa,EACxB,EAAS,KAAK,IAAI,CAAU,EAC5B,EAAS,KAAK,IAAI,CAAU,EAC5B,EAAO,KAAK,IAAI,CAAQ,EACxB,EAAO,KAAK,IAAI,CAAQ,EACxB,GAAW,EAAO,EAAG,IAAI,GAAc,EAAO,EAAY,EAAU,EAAI,EAAI,EAAI,KAAK,IAAI,EAAG,EAAI,EAAQ,EAAG,EAAI,CAAM,EACrH,GAAW,EAAO,EAAG,IAAI,GAAc,EAAO,EAAY,EAAU,EAAI,EAAI,GAAK,KAAK,IAAI,EAAG,EAAI,EAAQ,EAAG,EAAI,CAAM,EACtH,EAAO,EAAQ,EAAG,EAAQ,CAAI,EAC9B,EAAO,EAAQ,GAAS,EAAQ,CAAI,EACpC,EAAO,EAAQ8C,GAAI,EAAQ,CAAI,EAC/B,EAAO,EAAQA,GAAK,GAAS,EAAQ,CAAI,EAC/C,GAAU,EAAO,GAAQ,EACzB,GAAU,EAAO,GAAQ,EACzB,EAAU,EAAE,EAAO,GAAQ,EAC3B,EAAU,EAAE,EAAO,GAAQ,CAC/B,CACA,MAAO,CACH,SACA,SACA,UACA,SACJ,CACJ,CACA,IAAM,IAAN,cAAiC,EAAkB,CAC/C,OAAO,GAAK,WACf,OAAO,SAAW,CACX,mBAAoB,GACpB,gBAAiB,MACjB,UAAW,CACP,cAAe,GACf,aAAc,EAClB,EACA,WAAY,CACR,QAAS,CACL,KAAM,SACN,WAAY,CACR,gBACA,WACA,cACA,cACA,aACA,IACA,IACA,SACA,cACA,SACJ,CACJ,CACJ,EACA,OAAQ,MACR,SAAU,EACV,cAAe,IACf,OAAQ,OACR,QAAS,EACT,UAAW,GACf,EACA,OAAO,YAAc,CACjB,YAAc,GAAO,IAAS,UAC9B,WAAa,GAAO,IAAS,WAAa,CAAC,EAAK,WAAW,YAAY,GAAK,CAAC,EAAK,WAAW,iBAAiB,CAClH,EACH,OAAO,UAAY,CACZ,YAAa,EACb,QAAS,CACL,OAAQ,CACJ,OAAQ,CACJ,eAAgB,EAAO,CACnB,IAAM,EAAO,EAAM,KACb,CAAE,OAAQ,CAAE,aAAa,YAAY,QAAQ,kBAAkB,iBAAqB,EAAM,OAAO,QAsBvG,OArBI,EAAK,OAAO,QAAU,EAAK,SAAS,OAC7B,EAAK,OAAO,KAAK,EAAO,IAAI,CAE/B,IAAM,EADO,EAAM,eAAe,CACjB,EAAE,WAAW,SAAS,CAAC,EACxC,MAAO,CACH,KAAM,EACN,UAAW,EAAM,gBACjB,UAAW,EACX,OAAQ,CAAC,EAAM,kBAAkB,CAAC,EAClC,SAAU,EAAM,WAChB,eAAgB,EAAM,iBACtB,SAAU,EAAM,gBAChB,UAAW,EAAM,YACjB,YAAa,EAAM,YACR,YACC,aACZ,aAAc,IAAoB,GAAgB,EAAM,cACxD,MAAO,CACX,CACJ,CAAC,EAEE,CAAC,CACZ,CACJ,EACA,QAAS,EAAG,EAAY,EAAQ,CAC5B,EAAO,MAAM,qBAAqB,EAAW,KAAK,EAClD,EAAO,MAAM,OAAO,CACxB,CACJ,CACJ,CACJ,EACA,YAAY,EAAO,EAAa,CAC5B,MAAM,EAAO,CAAY,EACzB,KAAK,oBAAsB,GAC3B,KAAK,YAAc,OACnB,KAAK,YAAc,OACnB,KAAK,QAAU,OACf,KAAK,QAAU,MACnB,CACA,YAAa,CAAC,CACjB,MAAM,EAAO,EAAO,CACb,IAAM,EAAO,KAAK,WAAW,EAAE,KACzB,EAAO,KAAK,YAClB,GAAI,KAAK,WAAa,GAClB,EAAK,QAAU,MACZ,CACH,IAAI,EAAU,GAAI,CAAC,EAAK,GACxB,GAAI9C,GAAS,EAAK,EAAM,EAAG,CACvB,GAAM,CAAE,MAAK,SAAa,KAAK,SAC/B,EAAU,GAAI,CAAC,GAAiB,EAAK,GAAI,CAAG,CAChD,CACA,IAAI,EAAG,EACP,IAAI,EAAI,EAAO,EAAO,EAAQ,EAAO,EAAI,EAAM,EAAE,EAC7C,EAAK,QAAQ,GAAK,EAAO,CAAC,CAElC,CACJ,CACH,cAAe,CACR,OAAO,GAAU,KAAK,QAAQ,SAAW,EAAE,CAC/C,CACH,mBAAoB,CACb,OAAO,GAAU,KAAK,QAAQ,aAAa,CAC/C,CACH,qBAAsB,CACf,IAAI,EAAM,GACN,EAAM,CAAC,GACX,IAAI,IAAI,EAAI,EAAG,EAAI,KAAK,MAAM,KAAK,SAAS,OAAQ,EAAE,EAClD,GAAI,KAAK,MAAM,iBAAiB,CAAC,GAAK,KAAK,MAAM,eAAe,CAAC,EAAE,OAAS,KAAK,MAAO,CACpF,IAAM,EAAa,KAAK,MAAM,eAAe,CAAC,EAAE,WAC1C,EAAW,EAAW,aAAa,EACnC,EAAgB,EAAW,kBAAkB,EACnD,EAAM,KAAK,IAAI,EAAK,CAAQ,EAC5B,EAAM,KAAK,IAAI,EAAK,EAAW,CAAa,CAChD,CAEJ,MAAO,CACH,SAAU,EACV,cAAe,EAAM,CACzB,CACJ,CACH,OAAO,EAAM,CAEN,GAAM,CAAE,aADM,KAAK,MAEb,EAAO,KAAK,YACZ,EAAO,EAAK,KACZ,EAAU,KAAK,kBAAkB,EAAI,KAAK,aAAa,CAAI,EAAI,KAAK,QAAQ,QAC5E,EAAU,KAAK,KAAK,KAAK,IAAI,EAAU,MAAO,EAAU,MAAM,EAAI,GAAW,EAAG,CAAC,EACjF,EAAS,KAAK,IAAI,IAAa,KAAK,QAAQ,OAAQ,CAAO,EAAG,CAAC,EAC/D,EAAc,KAAK,eAAe,KAAK,KAAK,EAC5C,CAAE,gBAAgB,YAAc,KAAK,oBAAoB,EACzD,CAAE,SAAS,SAAS,UAAU,WAAa,IAAkB,EAAU,EAAe,CAAM,EAC5F,GAAY,EAAU,MAAQ,GAAW,EACzC,GAAa,EAAU,OAAS,GAAW,EAC3C,EAAY,KAAK,IAAI,KAAK,IAAI,EAAU,CAAS,EAAI,EAAG,CAAC,EACzD,EAAc,GAAY,KAAK,QAAQ,OAAQ,CAAS,EAExD,GAAgB,EADF,KAAK,IAAI,EAAc,EAAQ,CACL,GAAK,KAAK,8BAA8B,EACtF,KAAK,QAAU,EAAU,EACzB,KAAK,QAAU,EAAU,EACzB,EAAK,MAAQ,KAAK,eAAe,EACjC,KAAK,YAAc,EAAc,EAAe,KAAK,qBAAqB,KAAK,KAAK,EACpF,KAAK,YAAc,KAAK,IAAI,KAAK,YAAc,EAAe,EAAa,CAAC,EAC5E,KAAK,eAAe,EAAM,EAAG,EAAK,OAAQ,CAAI,CAClD,CACH,eAAe,EAAG,EAAO,CAClB,IAAM,EAAO,KAAK,QACZ,EAAO,KAAK,YACZ,EAAgB,KAAK,kBAAkB,EAI7C,OAHI,GAAS,EAAK,UAAU,eAAiB,CAAC,KAAK,MAAM,kBAAkB,CAAC,GAAK,EAAK,QAAQ,KAAO,MAAQ,EAAK,KAAK,GAAG,OAC/G,EAEJ,KAAK,uBAAuB,EAAK,QAAQ,GAAK,EAAgB,EAAG,CAC5E,CACA,eAAe,EAAM,EAAO,EAAO,EAAM,CACrC,IAAM,EAAQ,IAAS,QACjB,EAAQ,KAAK,MACb,EAAY,EAAM,UAElB,EADO,EAAM,QACQ,UACrB,GAAW,EAAU,KAAO,EAAU,OAAS,EAC/C,GAAW,EAAU,IAAM,EAAU,QAAU,EAC/C,EAAe,GAAS,EAAc,aACtC,EAAc,EAAe,EAAI,KAAK,YACtC,EAAc,EAAe,EAAI,KAAK,YACtC,CAAE,gBAAgB,kBAAoB,KAAK,kBAAkB,EAAO,CAAI,EAC1E,EAAa,KAAK,aAAa,EAC/B,EACJ,IAAI,EAAI,EAAG,EAAI,EAAO,EAAE,EACpB,GAAc,KAAK,eAAe,EAAG,CAAK,EAE9C,IAAI,EAAI,EAAO,EAAI,EAAQ,EAAO,EAAE,EAAE,CAClC,IAAM,EAAgB,KAAK,eAAe,EAAG,CAAK,EAC5C,EAAM,EAAK,GACX,EAAa,CACf,EAAG,EAAU,KAAK,QAClB,EAAG,EAAU,KAAK,QAClB,aACA,SAAU,EAAa,EACvB,gBACA,cACA,aACJ,EACI,IACA,EAAW,QAAU,GAAiB,KAAK,0BAA0B,EAAG,EAAI,OAAS,SAAW,CAAI,GAExG,GAAc,EACd,KAAK,cAAc,EAAK,EAAG,EAAY,CAAI,CAC/C,CACJ,CACA,gBAAiB,CACb,IAAM,EAAO,KAAK,YACZ,EAAW,EAAK,KAClB,EAAQ,EACR,EACJ,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAI,CAChC,IAAM,EAAQ,EAAK,QAAQ,GACvB,IAAU,MAAQ,CAAC,MAAM,CAAK,GAAK,KAAK,MAAM,kBAAkB,CAAC,GAAK,CAAC,EAAS,GAAG,SACnF,GAAS,KAAK,IAAI,CAAK,EAE/B,CACA,OAAO,CACX,CACA,uBAAuB,EAAO,CAC1B,IAAM,EAAQ,KAAK,YAAY,MAI/B,OAHI,EAAQ,GAAK,CAAC,MAAM,CAAK,EACX,KAAK,IAAI,CAAK,EAAI,EAAzB,GAEJ,CACX,CACA,iBAAiB,EAAO,CACpB,IAAM,EAAO,KAAK,YACZ,EAAQ,KAAK,MACb,EAAS,EAAM,KAAK,QAAU,CAAC,EAC/B,EAAQ+C,GAAa,EAAK,QAAQ,GAAQ,EAAM,QAAQ,MAAM,EACpE,MAAO,CACH,MAAO,EAAO,IAAU,GACxB,OACJ,CACJ,CACA,kBAAkB,EAAM,CACpB,IAAI,EAAM,EACJ,EAAQ,KAAK,MACf,EAAG,EAAM,EAAM,EAAY,EAC/B,GAAI,CAAC,OACG,EAAI,EAAG,EAAO,EAAM,KAAK,SAAS,OAAQ,EAAI,EAAM,EAAE,EACtD,GAAI,EAAM,iBAAiB,CAAC,EAAG,CAC3B,EAAO,EAAM,eAAe,CAAC,EAC7B,EAAO,EAAK,KACZ,EAAa,EAAK,WAClB,KACJ,EAGR,GAAI,CAAC,EACD,MAAO,GAEX,IAAI,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EACvC,EAAU,EAAW,0BAA0B,CAAC,EAC5C,EAAQ,cAAgB,UACxB,EAAM,KAAK,IAAI,EAAK,EAAQ,aAAe,EAAG,EAAQ,kBAAoB,CAAC,GAGnF,OAAO,CACX,CACA,aAAa,EAAM,CACf,IAAI,EAAM,EACV,IAAI,IAAI,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC7C,IAAM,EAAU,KAAK,0BAA0B,CAAC,EAChD,EAAM,KAAK,IAAI,EAAK,EAAQ,QAAU,EAAG,EAAQ,aAAe,CAAC,CACrE,CACA,OAAO,CACX,CACH,qBAAqB,EAAc,CAC5B,IAAI,EAAmB,EACvB,IAAI,IAAI,EAAI,EAAG,EAAI,EAAc,EAAE,EAC3B,KAAK,MAAM,iBAAiB,CAAC,IAC7B,GAAoB,KAAK,eAAe,CAAC,GAGjD,OAAO,CACX,CACH,eAAe,EAAc,CACtB,OAAO,KAAK,IAAI,GAAe,KAAK,MAAM,KAAK,SAAS,GAAc,OAAQ,CAAC,EAAG,CAAC,CACvF,CACH,+BAAgC,CACzB,OAAO,KAAK,qBAAqB,KAAK,MAAM,KAAK,SAAS,MAAM,GAAK,CACzE,CACJ,EAEM,IAAN,cAA6B,EAAkB,CAC3C,OAAO,GAAK,OACf,OAAO,SAAW,CACX,mBAAoB,OACpB,gBAAiB,QACjB,SAAU,GACV,SAAU,EACd,EACH,OAAO,UAAY,CACZ,OAAQ,CACJ,QAAS,CACL,KAAM,UACV,EACA,QAAS,CACL,KAAM,QACV,CACJ,CACJ,EACA,YAAa,CACT,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,GAC1B,MAAM,WAAW,CACrB,CACA,OAAO,EAAM,CACT,IAAM,EAAO,KAAK,YACZ,CAAE,QAAS,EAAO,KAAM,EAAS,CAAC,EAAI,YAAc,EACpD,EAAqB,KAAK,MAAM,oBAClC,CAAE,QAAQ,SAAW,IAAiC,EAAM,EAAQ,CAAkB,EAC1F,KAAK,WAAa,EAClB,KAAK,WAAa,EACd,IAAoB,CAAI,IACxB,EAAQ,EACR,EAAQ,EAAO,QAEnB,EAAK,OAAS,KAAK,MACnB,EAAK,cAAgB,KAAK,MAC1B,EAAK,WAAa,CAAC,CAAC,EAAS,WAC7B,EAAK,OAAS,EACd,IAAM,EAAU,KAAK,6BAA6B,CAAI,EACjD,KAAK,QAAQ,WACd,EAAQ,YAAc,GAE1B,EAAQ,QAAU,KAAK,QAAQ,QAC/B,KAAK,cAAc,EAAM,OAAW,CAChC,SAAU,CAAC,EACX,SACJ,EAAG,CAAI,EACP,KAAK,eAAe,EAAQ,EAAO,EAAO,CAAI,CAClD,CACA,eAAe,EAAQ,EAAO,EAAO,EAAM,CACvC,IAAM,EAAQ,IAAS,QACjB,CAAE,SAAS,SAAS,WAAW,YAAc,KAAK,YAClD,CAAE,gBAAgB,kBAAoB,KAAK,kBAAkB,EAAO,CAAI,EACxE,EAAQ,EAAO,KACf,EAAQ,EAAO,KACf,CAAE,WAAW,WAAa,KAAK,QAC/B,EAAe,GAAS,CAAQ,EAAI,EAAW,IAC/C,EAAe,KAAK,MAAM,qBAAuB,GAAS,IAAS,OACnE,EAAM,EAAQ,EACd,EAAc,EAAO,OACvB,EAAa,EAAQ,GAAK,KAAK,UAAU,EAAQ,CAAC,EACtD,IAAI,IAAI,EAAI,EAAG,EAAI,EAAa,EAAE,EAAE,CAChC,IAAM,EAAQ,EAAO,GACf,EAAa,EAAe,EAAQ,CAAC,EAC3C,GAAI,EAAI,GAAS,GAAK,EAAK,CACvB,EAAW,KAAO,GAClB,QACJ,CACA,IAAM,EAAS,KAAK,UAAU,CAAC,EACzB,EAAW,GAAc,EAAO,EAAM,EACtC,EAAS,EAAW,GAAS,EAAO,iBAAiB,EAAO,GAAQ,CAAC,EACrE,EAAS,EAAW,GAAS,GAAS,EAAW,EAAO,aAAa,EAAI,EAAO,iBAAiB,EAAW,KAAK,WAAW,EAAQ,EAAQ,CAAQ,EAAI,EAAO,GAAQ,CAAC,EAC9K,EAAW,KAAO,MAAM,CAAM,GAAK,MAAM,CAAM,GAAK,EACpD,EAAW,KAAO,EAAI,GAAK,KAAK,IAAI,EAAO,GAAS,EAAW,EAAM,EAAI,EACrE,IACA,EAAW,OAAS,EACpB,EAAW,IAAM,EAAS,KAAK,IAE/B,IACA,EAAW,QAAU,GAAiB,KAAK,0BAA0B,EAAG,EAAM,OAAS,SAAW,CAAI,GAErG,GACD,KAAK,cAAc,EAAO,EAAG,EAAY,CAAI,EAEjD,EAAa,CACjB,CACJ,CACH,gBAAiB,CACV,IAAM,EAAO,KAAK,YACZ,EAAU,EAAK,QACf,EAAS,EAAQ,SAAW,EAAQ,QAAQ,aAAe,EAC3D,EAAO,EAAK,MAAQ,CAAC,EAC3B,GAAI,CAAC,EAAK,OACN,OAAO,EAEX,IAAM,EAAa,EAAK,GAAG,KAAK,KAAK,0BAA0B,CAAC,CAAC,EAC3D,EAAY,EAAK,EAAK,OAAS,GAAG,KAAK,KAAK,0BAA0B,EAAK,OAAS,CAAC,CAAC,EAC5F,OAAO,KAAK,IAAI,EAAQ,EAAY,CAAS,EAAI,CACrD,CACA,MAAO,CACH,IAAM,EAAO,KAAK,YAClB,EAAK,QAAQ,oBAAoB,KAAK,MAAM,UAAW,EAAK,OAAO,IAAI,EACvE,MAAM,KAAK,CACf,CACJ,EA4ZI,SAAS,IAAW,CACpB,MAAU,MAAM,iFAAiF,CACrG,CA+CA,IAAI,IAAW,CACX,MAAO,MA1CD,CAAgB,CAUpB,OAAO,SAAS,EAAS,CACvB,OAAO,OAAO,EAAgB,UAAW,CAAO,CACpD,CACA,QACA,YAAY,EAAQ,CAChB,KAAK,QAAU,GAAW,CAAC,CAC/B,CAEA,MAAO,CAAC,CACR,SAAU,CACN,OAAO,GAAS,CACpB,CACA,OAAQ,CACJ,OAAO,GAAS,CACpB,CACA,QAAS,CACL,OAAO,GAAS,CACpB,CACA,KAAM,CACF,OAAO,GAAS,CACpB,CACA,MAAO,CACH,OAAO,GAAS,CACpB,CACA,SAAU,CACN,OAAO,GAAS,CACpB,CACA,OAAQ,CACJ,OAAO,GAAS,CACpB,CACJ,CAGA,EAEA,SAAS,IAAa,EAAS,EAAM,EAAO,EAAW,CACnD,GAAM,CAAE,aAAa,OAAO,WAAa,EACnC,EAAS,EAAW,YAAY,OAChC,EAAW,EAAQ,SAAU,EAAQ,QAAQ,QAAU,EAAQ,QAAQ,QAAQ,SAAW,KAChG,GAAI,GAAU,IAAS,EAAO,MAAQ,IAAS,KAAO,GAAW,EAAK,OAAQ,CAC1E,IAAM,EAAe,EAAO,eAAiB,IAAgB,GAC7D,GAAI,CAAC,EAAW,CACZ,IAAM,EAAS,EAAa,EAAM,EAAM,CAAK,EAC7C,GAAI,EAAU,CACV,GAAM,CAAE,UAAY,EAAW,YACzB,CAAE,WAAa,EACf,EAAsB,EAAQ,MAAM,EAAG,EAAO,GAAK,CAAC,EAAE,QAAQ,EAAE,UAAW,GAAQ,CAAC,GAAc,EAAM,EAAO,KAAK,CAAC,EAC3H,EAAO,IAAM,KAAK,IAAI,EAAG,CAAmB,EAC5C,IAAM,EAAsB,EAAQ,MAAM,EAAO,EAAE,EAAE,UAAW,GAAQ,CAAC,GAAc,EAAM,EAAO,KAAK,CAAC,EAC1G,EAAO,IAAM,KAAK,IAAI,EAAG,CAAmB,CAChD,CACA,OAAO,CACX,MAAO,GAAI,EAAW,eAAgB,CAClC,IAAM,EAAK,EAAK,GACV,EAAQ,OAAO,EAAG,UAAa,YAAc,EAAG,SAAS,CAAI,EACnE,GAAI,EAAO,CACP,IAAM,EAAQ,EAAa,EAAM,EAAM,EAAQ,CAAK,EAC9C,EAAM,EAAa,EAAM,EAAM,EAAQ,CAAK,EAClD,MAAO,CACH,GAAI,EAAM,GACV,GAAI,EAAI,EACZ,CACJ,CACJ,CACJ,CACA,MAAO,CACH,GAAI,EACJ,GAAI,EAAK,OAAS,CACtB,CACJ,CACC,SAAS,GAAyB,EAAO,EAAM,EAAU,EAAS,EAAW,CAC1E,IAAM,EAAW,EAAM,6BAA6B,EAC9C,EAAQ,EAAS,GACvB,IAAI,IAAI,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,EAAE,EAAE,CACjD,GAAM,CAAE,QAAQ,QAAU,EAAS,GAC7B,CAAE,KAAK,MAAQ,IAAa,EAAS,GAAI,EAAM,EAAO,CAAS,EACrE,IAAI,IAAI,EAAI,EAAI,GAAK,EAAI,EAAE,EAAE,CACzB,IAAM,EAAU,EAAK,GAChB,EAAQ,MACT,EAAQ,EAAS,EAAO,CAAC,CAEjC,CACJ,CACJ,CACC,SAAS,IAAyB,EAAM,CACrC,IAAM,EAAO,EAAK,QAAQ,GAAG,IAAM,GAC7B,EAAO,EAAK,QAAQ,GAAG,IAAM,GACnC,OAAO,SAAS,EAAK,EAAK,CACtB,IAAM,EAAS,EAAO,KAAK,IAAI,EAAI,EAAI,EAAI,CAAC,EAAI,EAC1C,EAAS,EAAO,KAAK,IAAI,EAAI,EAAI,EAAI,CAAC,EAAI,EAChD,OAAO,KAAK,KAAc,GAAQ,EAAc,GAAQ,CAAE,CAC9D,CACJ,CACC,SAAS,GAAkB,EAAO,EAAU,EAAM,EAAkB,EAAkB,CACnF,IAAM,EAAQ,CAAC,EAiBf,MAhBI,CAAC,GAAoB,CAAC,EAAM,cAAc,CAAQ,GAetD,GAAyB,EAAO,EAAM,EAAU,SAZhB,EAAS,EAAc,EAAO,CACtD,CAAC,GAAoB,CAAC,GAAe,EAAS,EAAM,UAAW,CAAC,GAGhE,EAAQ,QAAQ,EAAS,EAAG,EAAS,EAAG,CAAgB,GACxD,EAAM,KAAK,CACP,UACA,eACA,OACJ,CAAC,CAET,EACgE,EAAI,EAdzD,CAgBf,CACC,SAAS,IAAsB,EAAO,EAAU,EAAM,EAAkB,CACrE,IAAI,EAAQ,CAAC,EACb,SAAS,EAAe,EAAS,EAAc,EAAO,CAClD,GAAM,CAAE,aAAa,YAAc,EAAQ,SAAS,CAChD,aACA,UACJ,EAAG,CAAgB,EACb,CAAE,SAAW,GAAkB,EAAS,CAC1C,EAAG,EAAS,EACZ,EAAG,EAAS,CAChB,CAAC,EACG,GAAc,EAAO,EAAY,CAAQ,GACzC,EAAM,KAAK,CACP,UACA,eACA,OACJ,CAAC,CAET,CAEA,OADA,GAAyB,EAAO,EAAM,EAAU,CAAc,EACvD,CACX,CACC,SAAS,IAAyB,EAAO,EAAU,EAAM,EAAW,EAAkB,EAAkB,CACrG,IAAI,EAAQ,CAAC,EACP,EAAiB,IAAyB,CAAI,EAChD,EAAc,IAClB,SAAS,EAAe,EAAS,EAAc,EAAO,CAClD,IAAM,EAAU,EAAQ,QAAQ,EAAS,EAAG,EAAS,EAAG,CAAgB,EACxE,GAAI,GAAa,CAAC,EACd,OAEJ,IAAM,EAAS,EAAQ,eAAe,CAAgB,EAEtD,GAAI,EADkB,GAAoB,EAAM,cAAc,CAAM,IAChD,CAAC,EACjB,OAEJ,IAAM,EAAW,EAAe,EAAU,CAAM,EAC5C,EAAW,GACX,EAAQ,CACJ,CACI,UACA,eACA,OACJ,CACJ,EACA,EAAc,GACP,IAAa,GACpB,EAAM,KAAK,CACP,UACA,eACA,OACJ,CAAC,CAET,CAEA,OADA,GAAyB,EAAO,EAAM,EAAU,CAAc,EACvD,CACX,CACC,SAAS,GAAgB,EAAO,EAAU,EAAM,EAAW,EAAkB,EAAkB,CAI5F,MAHI,CAAC,GAAoB,CAAC,EAAM,cAAc,CAAQ,EAC3C,CAAC,EAEL,IAAS,KAAO,CAAC,EAAY,IAAsB,EAAO,EAAU,EAAM,CAAgB,EAAI,IAAyB,EAAO,EAAU,EAAM,EAAW,EAAkB,CAAgB,CACtM,CACC,SAAS,GAAa,EAAO,EAAU,EAAM,EAAW,EAAkB,CACvE,IAAM,EAAQ,CAAC,EACT,EAAc,IAAS,IAAM,WAAa,WAC5C,EAAiB,GAcrB,OAbA,GAAyB,EAAO,EAAM,GAAW,EAAS,EAAc,IAAQ,CACxE,EAAQ,IAAgB,EAAQ,GAAa,EAAS,GAAO,CAAgB,IAC7E,EAAM,KAAK,CACP,UACA,eACA,OACJ,CAAC,EACD,IAAmC,EAAQ,QAAQ,EAAS,EAAG,EAAS,EAAG,CAAgB,EAEnG,CAAC,EACG,GAAa,CAAC,EACP,CAAC,EAEL,CACX,CACC,IAAI,IAAc,CACf,4BACA,MAAO,CACV,MAAO,EAAO,EAAG,EAAS,EAAkB,CACjC,IAAM,EAAW,GAAoB,EAAG,CAAK,EACvC,EAAO,EAAQ,MAAQ,IACvB,EAAmB,EAAQ,kBAAoB,GAC/C,EAAQ,EAAQ,UAAY,GAAkB,EAAO,EAAU,EAAM,EAAkB,CAAgB,EAAI,GAAgB,EAAO,EAAU,EAAM,GAAO,EAAkB,CAAgB,EAC3L,EAAW,CAAC,EAelB,OAdK,EAAM,QAGX,EAAM,6BAA6B,EAAE,QAAS,GAAO,CACjD,IAAM,EAAQ,EAAM,GAAG,MACjB,EAAU,EAAK,KAAK,GACtB,GAAW,CAAC,EAAQ,MACpB,EAAS,KAAK,CACV,UACA,aAAc,EAAK,MACnB,OACJ,CAAC,CAET,CAAC,EACM,GAbI,CAAC,CAchB,EACP,QAAS,EAAO,EAAG,EAAS,EAAkB,CACnC,IAAM,EAAW,GAAoB,EAAG,CAAK,EACvC,EAAO,EAAQ,MAAQ,KACvB,EAAmB,EAAQ,kBAAoB,GACjD,EAAQ,EAAQ,UAAY,GAAkB,EAAO,EAAU,EAAM,EAAkB,CAAgB,EAAI,GAAgB,EAAO,EAAU,EAAM,GAAO,EAAkB,CAAgB,EAC/L,GAAI,EAAM,OAAS,EAAG,CAClB,IAAM,EAAe,EAAM,GAAG,aACxB,EAAO,EAAM,eAAe,CAAY,EAAE,KAChD,EAAQ,CAAC,EACT,IAAI,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EAC9B,EAAM,KAAK,CACP,QAAS,EAAK,GACd,eACA,MAAO,CACX,CAAC,CAET,CACA,OAAO,CACX,EACP,MAAO,EAAO,EAAG,EAAS,EAAkB,CAIjC,OAAO,GAAkB,EAHR,GAAoB,EAAG,CAGD,EAF1B,EAAQ,MAAQ,KAEmB,EADvB,EAAQ,kBAAoB,EAC6B,CACtF,EACP,QAAS,EAAO,EAAG,EAAS,EAAkB,CACnC,IAAM,EAAW,GAAoB,EAAG,CAAK,EACvC,EAAO,EAAQ,MAAQ,KACvB,EAAmB,EAAQ,kBAAoB,GACrD,OAAO,GAAgB,EAAO,EAAU,EAAM,EAAQ,UAAW,EAAkB,CAAgB,CACvG,EACP,EAAG,EAAO,EAAG,EAAS,EAAkB,CAE7B,OAAO,GAAa,EADH,GAAoB,EAAG,CACN,EAAG,IAAK,EAAQ,UAAW,CAAgB,CACjF,EACP,EAAG,EAAO,EAAG,EAAS,EAAkB,CAE7B,OAAO,GAAa,EADH,GAAoB,EAAG,CACN,EAAG,IAAK,EAAQ,UAAW,CAAgB,CACjF,CACJ,CACJ,EAEM,GAAmB,CACrB,OACA,MACA,QACA,QACJ,EACA,SAAS,GAAiB,EAAO,EAAU,CACvC,OAAO,EAAM,OAAQ,GAAI,EAAE,MAAQ,CAAQ,CAC/C,CACA,SAAS,GAA4B,EAAO,EAAM,CAC9C,OAAO,EAAM,OAAQ,GAAI,GAAiB,QAAQ,EAAE,GAAG,IAAM,IAAM,EAAE,IAAI,OAAS,CAAI,CAC1F,CACA,SAAS,GAAa,EAAO,EAAS,CAClC,OAAO,EAAM,MAAM,EAAG,IAAI,CACtB,IAAM,EAAK,EAAU,EAAI,EACnB,EAAK,EAAU,EAAI,EACzB,OAAO,EAAG,SAAW,EAAG,OAAS,EAAG,MAAQ,EAAG,MAAQ,EAAG,OAAS,EAAG,MAC1E,CAAC,CACL,CACA,SAAS,IAAU,EAAO,CACtB,IAAM,EAAc,CAAC,EACjB,EAAG,EAAM,EAAK,EAAK,EAAO,EAC9B,IAAI,EAAI,EAAG,GAAQ,GAAS,CAAC,GAAG,OAAQ,EAAI,EAAM,EAAE,EAChD,EAAM,EAAM,GACX,CAAE,SAAU,EAAM,QAAS,uBAAuB,IAAU,EAC7D,EAAY,KAAK,CACb,MAAO,EACP,MACA,MACA,WAAY,EAAI,aAAa,EAC7B,OAAQ,EAAI,OACZ,MAAO,GAAS,EAAM,EACtB,aACJ,CAAC,EAEL,OAAO,CACX,CACA,SAAS,IAAY,EAAS,CAC1B,IAAM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAQ,EAAQ,CACvB,GAAM,CAAE,QAAQ,MAAM,eAAiB,EACvC,GAAI,CAAC,GAAS,CAAC,GAAiB,SAAS,CAAG,EACxC,SAEJ,IAAM,EAAS,EAAO,KAAW,EAAO,GAAS,CAC7C,MAAO,EACP,OAAQ,EACR,OAAQ,EACR,KAAM,CACV,GACA,EAAO,QACP,EAAO,QAAU,CACrB,CACA,OAAO,CACX,CACC,SAAS,IAAc,EAAS,EAAQ,CACrC,IAAM,EAAS,IAAY,CAAO,EAC5B,CAAE,eAAe,iBAAmB,EACtC,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAQ,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC5C,EAAS,EAAQ,GACjB,GAAM,CAAE,YAAc,EAAO,IACvB,EAAQ,EAAO,EAAO,OACtB,EAAS,GAAS,EAAO,YAAc,EAAM,OAC/C,EAAO,YACP,EAAO,MAAQ,EAAS,EAAS,EAAe,GAAY,EAAO,eACnE,EAAO,OAAS,IAEhB,EAAO,MAAQ,EACf,EAAO,OAAS,EAAS,EAAS,EAAgB,GAAY,EAAO,gBAE7E,CACA,OAAO,CACX,CACA,SAAS,IAAiB,EAAO,CAC7B,IAAM,EAAc,IAAU,CAAK,EAC7B,EAAW,GAAa,EAAY,OAAQ,GAAO,EAAK,IAAI,QAAQ,EAAG,EAAI,EAC3E,EAAO,GAAa,GAAiB,EAAa,MAAM,EAAG,EAAI,EAC/D,EAAQ,GAAa,GAAiB,EAAa,OAAO,CAAC,EAC3D,EAAM,GAAa,GAAiB,EAAa,KAAK,EAAG,EAAI,EAC7D,EAAS,GAAa,GAAiB,EAAa,QAAQ,CAAC,EAC7D,EAAmB,GAA4B,EAAa,GAAG,EAC/D,EAAiB,GAA4B,EAAa,GAAG,EACnE,MAAO,CACH,WACA,WAAY,EAAK,OAAO,CAAG,EAC3B,eAAgB,EAAM,OAAO,CAAc,EAAE,OAAO,CAAM,EAAE,OAAO,CAAgB,EACnF,UAAW,GAAiB,EAAa,WAAW,EACpD,SAAU,EAAK,OAAO,CAAK,EAAE,OAAO,CAAc,EAClD,WAAY,EAAI,OAAO,CAAM,EAAE,OAAO,CAAgB,CAC1D,CACJ,CACA,SAAS,GAAe,EAAY,EAAW,EAAG,EAAG,CACjD,OAAO,KAAK,IAAI,EAAW,GAAI,EAAU,EAAE,EAAI,KAAK,IAAI,EAAW,GAAI,EAAU,EAAE,CACvF,CACA,SAAS,GAAiB,EAAY,EAAY,CAC9C,EAAW,IAAM,KAAK,IAAI,EAAW,IAAK,EAAW,GAAG,EACxD,EAAW,KAAO,KAAK,IAAI,EAAW,KAAM,EAAW,IAAI,EAC3D,EAAW,OAAS,KAAK,IAAI,EAAW,OAAQ,EAAW,MAAM,EACjE,EAAW,MAAQ,KAAK,IAAI,EAAW,MAAO,EAAW,KAAK,CAClE,CACA,SAAS,IAAW,EAAW,EAAQ,EAAQ,EAAQ,CACnD,GAAM,CAAE,MAAM,OAAS,EACjB,EAAa,EAAU,WAC7B,GAAI,CAAC/C,GAAS,CAAG,EAAG,CACZ,EAAO,OACP,EAAU,IAAQ,EAAO,MAE7B,IAAM,EAAQ,EAAO,EAAO,QAAU,CAClC,KAAM,EACN,MAAO,CACX,EACA,EAAM,KAAO,KAAK,IAAI,EAAM,KAAM,EAAO,WAAa,EAAI,OAAS,EAAI,KAAK,EAC5E,EAAO,KAAO,EAAM,KAAO,EAAM,MACjC,EAAU,IAAQ,EAAO,IAC7B,CACI,EAAI,YACJ,GAAiB,EAAY,EAAI,WAAW,CAAC,EAEjD,IAAM,EAAW,KAAK,IAAI,EAAG,EAAO,WAAa,GAAe,EAAY,EAAW,OAAQ,OAAO,CAAC,EACjG,EAAY,KAAK,IAAI,EAAG,EAAO,YAAc,GAAe,EAAY,EAAW,MAAO,QAAQ,CAAC,EACnG,EAAe,IAAa,EAAU,EACtC,EAAgB,IAAc,EAAU,EAG9C,MAFA,GAAU,EAAI,EACd,EAAU,EAAI,EACP,EAAO,WAAa,CACvB,KAAM,EACN,MAAO,CACX,EAAI,CACA,KAAM,EACN,MAAO,CACX,CACJ,CACA,SAAS,IAAiB,EAAW,CACjC,IAAM,EAAa,EAAU,WAC7B,SAAS,EAAU,EAAK,CACpB,IAAM,EAAS,KAAK,IAAI,EAAW,GAAO,EAAU,GAAM,CAAC,EAE3D,MADA,GAAU,IAAQ,EACX,CACX,CACA,EAAU,GAAK,EAAU,KAAK,EAC9B,EAAU,GAAK,EAAU,MAAM,EAC/B,EAAU,OAAO,EACjB,EAAU,QAAQ,CACtB,CACA,SAAS,IAAW,EAAY,EAAW,CACvC,IAAM,EAAa,EAAU,WAC7B,SAAS,EAAmB,EAAW,CACnC,IAAM,EAAS,CACX,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,CACZ,EAIA,OAHA,EAAU,QAAS,GAAM,CACrB,EAAO,GAAO,KAAK,IAAI,EAAU,GAAM,EAAW,EAAI,CAC1D,CAAC,EACM,CACX,CACA,OAAoB,EAAb,EAAgC,CACnC,OACA,OACJ,EAAwB,CACpB,MACA,QACJ,CAAC,CACL,CACA,SAAS,GAAS,EAAO,EAAW,EAAQ,EAAQ,CAChD,IAAM,EAAa,CAAC,EAChB,EAAG,EAAM,EAAQ,EAAK,EAAO,EACjC,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAQ,EAAG,EAAI,EAAM,EAAE,EAAE,CACrD,EAAS,EAAM,GACf,EAAM,EAAO,IACb,EAAI,OAAO,EAAO,OAAS,EAAU,EAAG,EAAO,QAAU,EAAU,EAAG,IAAW,EAAO,WAAY,CAAS,CAAC,EAC9G,GAAM,CAAE,OAAO,SAAW,IAAW,EAAW,EAAQ,EAAQ,CAAM,EACtE,GAAS,GAAQ,EAAW,OAC5B,IAAqB,EAChB,EAAI,UACL,EAAW,KAAK,CAAM,CAE9B,CACA,OAAO,GAAS,GAAS,EAAY,EAAW,EAAQ,CAAM,GAAK,CACvE,CACA,SAAS,GAAW,EAAK,EAAM,EAAK,EAAO,EAAQ,CAC/C,EAAI,IAAM,EACV,EAAI,KAAO,EACX,EAAI,MAAQ,EAAO,EACnB,EAAI,OAAS,EAAM,EACnB,EAAI,MAAQ,EACZ,EAAI,OAAS,CACjB,CACA,SAAS,GAAW,EAAO,EAAW,EAAQ,EAAQ,CAClD,IAAM,EAAc,EAAO,QACvB,CAAE,IAAI,KAAO,EACjB,IAAK,IAAM,KAAU,EAAM,CACvB,IAAM,EAAM,EAAO,IACb,EAAQ,EAAO,EAAO,QAAU,CAClC,MAAO,EACP,OAAQ,EACR,OAAQ,CACZ,EACM,EAAS,EAAO,YAAc,EAAM,QAAU,EACpD,GAAI,EAAO,WAAY,CACnB,IAAM,EAAQ,EAAU,EAAI,EACtB,EAAS,EAAM,MAAQ,EAAI,OAC7B,GAAQ,EAAM,KAAK,IACnB,EAAI,EAAM,OAEV,EAAI,SACJ,GAAW,EAAK,EAAY,KAAM,EAAG,EAAO,WAAa,EAAY,MAAQ,EAAY,KAAM,CAAM,EAErG,GAAW,EAAK,EAAU,KAAO,EAAM,OAAQ,EAAG,EAAO,CAAM,EAEnE,EAAM,MAAQ,EACd,EAAM,QAAU,EAChB,EAAI,EAAI,MACZ,KAAO,CACH,IAAM,EAAS,EAAU,EAAI,EACvB,EAAQ,EAAM,MAAQ,EAAI,MAC5B,GAAQ,EAAM,KAAK,IACnB,EAAI,EAAM,OAEV,EAAI,SACJ,GAAW,EAAK,EAAG,EAAY,IAAK,EAAO,EAAO,YAAc,EAAY,OAAS,EAAY,GAAG,EAEpG,GAAW,EAAK,EAAG,EAAU,IAAM,EAAM,OAAQ,EAAO,CAAM,EAElE,EAAM,MAAQ,EACd,EAAM,QAAU,EAChB,EAAI,EAAI,KACZ,CACJ,CACA,EAAU,EAAI,EACd,EAAU,EAAI,CAClB,CACA,IAAI,GAAU,CACb,OAAQ,EAAO,EAAM,CACd,CACI,CAAM,QAAQ,CAAC,EAEnB,EAAK,SAAW,EAAK,UAAY,GACjC,EAAK,SAAW,EAAK,UAAY,MACjC,EAAK,OAAS,EAAK,QAAU,EAC7B,EAAK,QAAU,EAAK,SAAW,UAAW,CACtC,MAAO,CACH,CACI,EAAG,EACH,KAAM,EAAW,CACb,EAAK,KAAK,CAAS,CACvB,CACJ,CACJ,CACJ,EACA,EAAM,MAAM,KAAK,CAAI,CACzB,EACH,UAAW,EAAO,EAAY,CACvB,IAAM,EAAQ,EAAM,MAAQ,EAAM,MAAM,QAAQ,CAAU,EAAI,GAC1D,IAAU,IACV,EAAM,MAAM,OAAO,EAAO,CAAC,CAEnC,EACH,UAAW,EAAO,EAAM,EAAS,CAC1B,EAAK,SAAW,EAAQ,SACxB,EAAK,SAAW,EAAQ,SACxB,EAAK,OAAS,EAAQ,MAC1B,EACH,OAAQ,EAAO,EAAO,EAAQ,EAAY,CACnC,GAAI,CAAC,EACD,OAEJ,IAAM,EAAU,GAAU,EAAM,QAAQ,OAAO,OAAO,EAChD,EAAiB,KAAK,IAAI,EAAQ,EAAQ,MAAO,CAAC,EAClD,EAAkB,KAAK,IAAI,EAAS,EAAQ,OAAQ,CAAC,EACrD,EAAQ,IAAiB,EAAM,KAAK,EACpC,EAAgB,EAAM,SACtB,EAAkB,EAAM,WAC9B,GAAK,EAAM,MAAQ,GAAM,CACjB,OAAO,EAAI,cAAiB,YAC5B,EAAI,aAAa,CAEzB,CAAC,EACD,IAAM,EAA0B,EAAc,QAAQ,EAAO,IAAO,EAAK,IAAI,SAAW,EAAK,IAAI,QAAQ,UAAY,GAAQ,EAAQ,EAAQ,EAAG,CAAC,GAAK,EAChJ,EAAS,OAAO,OAAO,CACzB,WAAY,EACZ,YAAa,EACb,UACA,iBACA,kBACA,aAAc,EAAiB,EAAI,EACnC,cAAe,EAAkB,CACrC,CAAC,EACK,EAAa,OAAO,OAAO,CAAC,EAAG,CAAO,EAC5C,GAAiB,EAAY,GAAU,CAAU,CAAC,EAClD,IAAM,EAAY,OAAO,OAAO,CAC5B,aACA,EAAG,EACH,EAAG,EACH,EAAG,EAAQ,KACX,EAAG,EAAQ,GACf,EAAG,CAAO,EACJ,EAAS,IAAc,EAAc,OAAO,CAAe,EAAG,CAAM,EAC1E,GAAS,EAAM,SAAU,EAAW,EAAQ,CAAM,EAClD,GAAS,EAAe,EAAW,EAAQ,CAAM,EAC7C,GAAS,EAAiB,EAAW,EAAQ,CAAM,GACnD,GAAS,EAAe,EAAW,EAAQ,CAAM,EAErD,IAAiB,CAAS,EAC1B,GAAW,EAAM,WAAY,EAAW,EAAQ,CAAM,EACtD,EAAU,GAAK,EAAU,EACzB,EAAU,GAAK,EAAU,EACzB,GAAW,EAAM,eAAgB,EAAW,EAAQ,CAAM,EAC1D,EAAM,UAAY,CACd,KAAM,EAAU,KAChB,IAAK,EAAU,IACf,MAAO,EAAU,KAAO,EAAU,EAClC,OAAQ,EAAU,IAAM,EAAU,EAClC,OAAQ,EAAU,EAClB,MAAO,EAAU,CACrB,EACA,GAAK,EAAM,UAAY,GAAS,CAC5B,IAAM,EAAM,EAAO,IACnB,OAAO,OAAO,EAAK,EAAM,SAAS,EAClC,EAAI,OAAO,EAAU,EAAG,EAAU,EAAG,CACjC,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,CACZ,CAAC,CACL,CAAC,CACL,CACJ,EAEM,GAAN,KAAmB,CAClB,eAAe,EAAQ,EAAa,CAAC,CACrC,eAAe,EAAS,CACjB,MAAO,EACX,CACH,iBAAiB,EAAO,EAAM,EAAU,CAAC,CACzC,oBAAoB,EAAO,EAAM,EAAU,CAAC,CAC5C,qBAAsB,CACf,MAAO,EACX,CACH,eAAe,EAAS,EAAO,EAAQ,EAAa,CAG7C,MAFA,GAAQ,KAAK,IAAI,EAAG,GAAS,EAAQ,KAAK,EAC1C,IAAmB,EAAQ,OACpB,CACH,QACA,OAAQ,KAAK,IAAI,EAAG,EAAc,KAAK,MAAM,EAAQ,CAAW,EAAI,CAAM,CAC9E,CACJ,CACH,WAAW,EAAQ,CACZ,MAAO,EACX,CACH,aAAa,EAAQ,CAClB,CACJ,EAEM,IAAN,cAA4B,EAAa,CACrC,eAAe,EAAM,CACjB,OAAO,GAAQ,EAAK,YAAc,EAAK,WAAW,IAAI,GAAK,IAC/D,CACA,aAAa,EAAQ,CACjB,EAAO,QAAQ,UAAY,EAC/B,CACJ,EAEM,GAAc,WACb,IAAc,CACjB,WAAY,YACZ,UAAW,YACX,SAAU,UACV,aAAc,aACd,YAAa,YACb,YAAa,YACb,UAAW,UACX,aAAc,WACd,WAAY,UAChB,EACM,GAAiB,GAAQ,IAAU,MAAQ,IAAU,GAC1D,SAAS,IAAW,EAAQ,EAAa,CACtC,IAAM,EAAQ,EAAO,MACf,EAAe,EAAO,aAAa,QAAQ,EAC3C,EAAc,EAAO,aAAa,OAAO,EAc/C,GAbA,EAAO,IAAe,CAClB,QAAS,CACL,OAAQ,EACR,MAAO,EACP,MAAO,CACH,QAAS,EAAM,QACf,OAAQ,EAAM,OACd,MAAO,EAAM,KACjB,CACJ,CACJ,EACA,EAAM,QAAU,EAAM,SAAW,QACjC,EAAM,UAAY,EAAM,WAAa,aACjC,GAAc,CAAW,EAAG,CAC5B,IAAM,EAAe,GAAa,EAAQ,OAAO,EAC7C,IAAiB,SACjB,EAAO,MAAQ,EAEvB,CACA,GAAI,GAAc,CAAY,EAC1B,GAAI,EAAO,MAAM,SAAW,GACxB,EAAO,OAAS,EAAO,OAAS,GAAe,OAC5C,CACH,IAAM,EAAgB,GAAa,EAAQ,QAAQ,EAC/C,IAAkB,SAClB,EAAO,OAAS,EAExB,CAEJ,OAAO,CACX,CACA,IAAM,GAAuB,IAA+B,CACxD,QAAS,EACb,EAAI,GACJ,SAAS,IAAY,EAAM,EAAM,EAAU,CACnC,GACA,EAAK,iBAAiB,EAAM,EAAU,EAAoB,CAElE,CACA,SAAS,IAAe,EAAO,EAAM,EAAU,CACvC,GAAS,EAAM,QACf,EAAM,OAAO,oBAAoB,EAAM,EAAU,EAAoB,CAE7E,CACA,SAAS,IAAgB,EAAO,EAAO,CACnC,IAAM,EAAO,IAAY,EAAM,OAAS,EAAM,KACxC,CAAE,IAAI,KAAO,GAAoB,EAAO,CAAK,EACnD,MAAO,CACH,OACA,QACA,OAAQ,EACR,EAAG,IAAM,OAAgB,KAAJ,EACrB,EAAG,IAAM,OAAgB,KAAJ,CACzB,CACJ,CACA,SAAS,GAAiB,EAAU,EAAQ,CACxC,IAAK,IAAM,KAAQ,EACf,GAAI,IAAS,GAAU,EAAK,SAAS,CAAM,EACvC,MAAO,EAGnB,CACA,SAAS,IAAqB,EAAO,EAAM,EAAU,CACjD,IAAM,EAAS,EAAM,OACf,EAAW,IAAI,iBAAkB,GAAU,CAC7C,IAAI,EAAU,GACd,IAAK,IAAM,KAAS,EAChB,IAAqB,GAAiB,EAAM,WAAY,CAAM,EAC9D,IAAqB,CAAC,GAAiB,EAAM,aAAc,CAAM,EAEjE,GACA,EAAS,CAEjB,CAAC,EAKD,OAJA,EAAS,QAAQ,SAAU,CACvB,UAAW,GACX,QAAS,EACb,CAAC,EACM,CACX,CACA,SAAS,IAAqB,EAAO,EAAM,EAAU,CACjD,IAAM,EAAS,EAAM,OACf,EAAW,IAAI,iBAAkB,GAAU,CAC7C,IAAI,EAAU,GACd,IAAK,IAAM,KAAS,EAChB,IAAqB,GAAiB,EAAM,aAAc,CAAM,EAChE,IAAqB,CAAC,GAAiB,EAAM,WAAY,CAAM,EAE/D,GACA,EAAS,CAEjB,CAAC,EAKD,OAJA,EAAS,QAAQ,SAAU,CACvB,UAAW,GACX,QAAS,EACb,CAAC,EACM,CACX,CACA,IAAM,GAAqB,IAAI,IAC3B,GAAsB,EAC1B,SAAS,IAAiB,CACtB,IAAM,EAAM,OAAO,iBACf,IAAQ,KAGZ,GAAsB,EACtB,GAAmB,SAAS,EAAQ,IAAQ,CACpC,EAAM,0BAA4B,GAClC,EAAO,CAEf,CAAC,EACL,CACA,SAAS,IAA8B,EAAO,EAAQ,CAC7C,GAAmB,MACpB,OAAO,iBAAiB,SAAU,EAAc,EAEpD,GAAmB,IAAI,EAAO,CAAM,CACxC,CACA,SAAS,IAAgC,EAAO,CAC5C,GAAmB,OAAO,CAAK,EAC1B,GAAmB,MACpB,OAAO,oBAAoB,SAAU,EAAc,CAE3D,CACA,SAAS,IAAqB,EAAO,EAAM,EAAU,CACjD,IAAM,EAAS,EAAM,OACf,EAAY,GAAU,GAAe,CAAM,EACjD,GAAI,CAAC,EACD,OAEJ,IAAM,EAAS,IAAW,EAAO,IAAS,CACtC,IAAM,EAAI,EAAU,YACpB,EAAS,EAAO,CAAM,EAClB,EAAI,EAAU,aACd,EAAS,CAEjB,EAAG,MAAM,EACH,EAAW,IAAI,eAAgB,GAAU,CAC3C,IAAM,EAAQ,EAAQ,GAChB,EAAQ,EAAM,YAAY,MAC1B,EAAS,EAAM,YAAY,OAC7B,IAAU,GAAK,IAAW,GAG9B,EAAO,EAAO,CAAM,CACxB,CAAC,EAGD,OAFA,EAAS,QAAQ,CAAS,EAC1B,IAA8B,EAAO,CAAM,EACpC,CACX,CACA,SAAS,GAAgB,EAAO,EAAM,EAAU,CACxC,GACA,EAAS,WAAW,EAEpB,IAAS,UACT,IAAgC,CAAK,CAE7C,CACA,SAAS,IAAqB,EAAO,EAAM,EAAU,CACjD,IAAM,EAAS,EAAM,OACf,EAAQ,GAAW,GAAQ,CACzB,EAAM,MAAQ,MACd,EAAS,IAAgB,EAAO,CAAK,CAAC,CAE9C,EAAG,CAAK,EAER,OADA,IAAY,EAAQ,EAAM,CAAK,EACxB,CACX,CACC,IAAM,IAAN,cAA0B,EAAa,CACvC,eAAe,EAAQ,EAAa,CAC7B,IAAM,EAAU,GAAU,EAAO,YAAc,EAAO,WAAW,IAAI,EAKrE,OAJI,GAAW,EAAQ,SAAW,GAC9B,IAAW,EAAQ,CAAW,EACvB,GAEJ,IACX,CACH,eAAe,EAAS,CACjB,IAAM,EAAS,EAAQ,OACvB,GAAI,CAAC,EAAO,IACR,MAAO,GAEX,IAAM,EAAU,EAAO,IAAa,QACpC,CACI,SACA,OACJ,EAAE,QAAS,GAAO,CACd,IAAM,EAAQ,EAAQ,GAClB,GAAc,CAAK,EACnB,EAAO,gBAAgB,CAAI,EAE3B,EAAO,aAAa,EAAM,CAAK,CAEvC,CAAC,EACD,IAAM,EAAQ,EAAQ,OAAS,CAAC,EAMhC,OALA,OAAO,KAAK,CAAK,EAAE,QAAS,GAAM,CAC9B,EAAO,MAAM,GAAO,EAAM,EAC9B,CAAC,EACD,EAAO,MAAQ,EAAO,MACtB,OAAO,EAAO,IACP,EACX,CACH,iBAAiB,EAAO,EAAM,EAAU,CACjC,KAAK,oBAAoB,EAAO,CAAI,EACpC,IAAM,EAAU,CAAmB,CAAM,WAAW,CAAC,EAOrD,EAAQ,IADQ,CAJZ,OAAQ,IACR,OAAQ,IACR,OAAQ,GAEW,EAAE,IAAS,KACV,EAAO,EAAM,CAAQ,CACjD,CACH,oBAAoB,EAAO,EAAM,CAC1B,IAAM,EAAU,CAAmB,CAAM,WAAW,CAAC,EAC/C,EAAQ,EAAQ,GACjB,KAQW,CAJZ,OAAQ,GACR,OAAQ,GACR,OAAQ,EAEW,EAAE,IAAS,KAC1B,EAAO,EAAM,CAAK,EAC1B,EAAQ,GAAQ,OACpB,CACA,qBAAsB,CAClB,OAAO,OAAO,gBAClB,CACH,eAAe,EAAQ,EAAO,EAAQ,EAAa,CAC5C,OAAO,IAAe,EAAQ,EAAO,EAAQ,CAAW,CAC5D,CACH,WAAW,EAAQ,CACZ,IAAM,EAAY,GAAU,GAAe,CAAM,EACjD,MAAO,CAAC,EAAE,GAAa,EAAU,YACrC,CACJ,EAEA,SAAS,IAAgB,EAAQ,CAI7B,MAHI,CAAC,GAAgB,GAAK,OAAO,gBAAoB,KAAe,aAAkB,gBAC3E,IAEJ,GACX,CAEA,IAAMkD,GAAN,KAAc,CACV,OAAO,SAAW,CAAC,EACnB,OAAO,cAAgB,OACvB,EACA,EACA,OAAS,GACT,QACA,YACA,gBAAgB,EAAkB,CAC9B,GAAM,CAAE,IAAI,KAAO,KAAK,SAAS,CAC7B,IACA,GACJ,EAAG,CAAgB,EACnB,MAAO,CACH,IACA,GACJ,CACJ,CACA,UAAW,CACP,OAAO,GAAS,KAAK,CAAC,GAAK,GAAS,KAAK,CAAC,CAC9C,CACA,SAAS,EAAO,EAAO,CACnB,IAAM,EAAQ,KAAK,YACnB,GAAI,CAAC,GAAS,CAAC,EAEX,OAAO,KAEX,IAAM,EAAM,CAAC,EAIb,OAHA,EAAM,QAAS,GAAO,CAClB,EAAI,GAAQ,EAAM,IAAS,EAAM,GAAM,OAAO,EAAI,EAAM,GAAM,IAAM,KAAK,EAC7E,CAAC,EACM,CACX,CACJ,EAEA,SAAS,IAAS,EAAO,EAAO,CAC5B,IAAM,EAAW,EAAM,QAAQ,MACzB,EAAqB,IAAkB,CAAK,EAC5C,EAAa,KAAK,IAAI,EAAS,eAAiB,EAAoB,CAAkB,EACtF,EAAe,EAAS,MAAM,QAAU,IAAgB,CAAK,EAAI,CAAC,EAClE,EAAkB,EAAa,OAC/B,EAAQ,EAAa,GACrB,EAAO,EAAa,EAAkB,GACtC,EAAW,CAAC,EAClB,GAAI,EAAkB,EAElB,OADA,IAAW,EAAO,EAAU,EAAc,EAAkB,CAAU,EAC/D,EAEX,IAAM,EAAU,IAAiB,EAAc,EAAO,CAAU,EAChE,GAAI,EAAkB,EAAG,CACrB,IAAI,EAAG,EACD,EAAkB,EAAkB,EAAI,KAAK,OAAO,EAAO,IAAU,EAAkB,EAAE,EAAI,KAEnG,IADA,GAAK,EAAO,EAAU,EAAS,GAAc,CAAe,EAAI,EAAI,EAAQ,EAAiB,CAAK,EAC9F,EAAI,EAAG,EAAO,EAAkB,EAAG,EAAI,EAAM,IAC7C,GAAK,EAAO,EAAU,EAAS,EAAa,GAAI,EAAa,EAAI,EAAE,EAGvE,OADA,GAAK,EAAO,EAAU,EAAS,EAAM,GAAc,CAAe,EAAI,EAAM,OAAS,EAAO,CAAe,EACpG,CACX,CAEA,OADA,GAAK,EAAO,EAAU,CAAO,EACtB,CACX,CACA,SAAS,IAAkB,EAAO,CAC9B,IAAM,EAAS,EAAM,QAAQ,OACvB,EAAa,EAAM,UAAU,EAC7B,EAAW,EAAM,QAAU,GAAc,IACzC,EAAW,EAAM,WAAa,EACpC,OAAO,KAAK,MAAM,KAAK,IAAI,EAAU,CAAQ,CAAC,CAClD,CACC,SAAS,IAAiB,EAAc,EAAO,EAAY,CACxD,IAAM,EAAmB,IAAe,CAAY,EAC9C,EAAU,EAAM,OAAS,EAC/B,GAAI,CAAC,EACD,OAAO,KAAK,IAAI,EAAS,CAAC,EAE9B,IAAM,EAAU,IAAW,CAAgB,EAC3C,IAAI,IAAI,EAAI,EAAG,EAAO,EAAQ,OAAS,EAAG,EAAI,EAAM,IAAI,CACpD,IAAM,EAAS,EAAQ,GACvB,GAAI,EAAS,EACT,OAAO,CAEf,CACA,OAAO,KAAK,IAAI,EAAS,CAAC,CAC9B,CACC,SAAS,IAAgB,EAAO,CAC7B,IAAM,EAAS,CAAC,EACZ,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IAClC,EAAM,GAAG,OACT,EAAO,KAAK,CAAC,EAGrB,OAAO,CACX,CACC,SAAS,IAAW,EAAO,EAAU,EAAc,EAAS,CACzD,IAAI,EAAQ,EACR,EAAO,EAAa,GACpB,EAEJ,IADA,EAAU,KAAK,KAAK,CAAO,EACvB,EAAI,EAAG,EAAI,EAAM,OAAQ,IACrB,IAAM,IACN,EAAS,KAAK,EAAM,EAAE,EACtB,IACA,EAAO,EAAa,EAAQ,GAGxC,CACC,SAAS,GAAK,EAAO,EAAU,EAAS,EAAY,EAAU,CAC3D,IAAM,EAAQ,GAAe,EAAY,CAAC,EACpC,EAAM,KAAK,IAAI,GAAe,EAAU,EAAM,MAAM,EAAG,EAAM,MAAM,EACrE,EAAQ,EACR,EAAQ,EAAG,EAOf,IANA,EAAU,KAAK,KAAK,CAAO,EACvB,IACA,EAAS,EAAW,EACpB,EAAU,EAAS,KAAK,MAAM,EAAS,CAAO,GAElD,EAAO,EACD,EAAO,GACT,IACA,EAAO,KAAK,MAAM,EAAQ,EAAQ,CAAO,EAE7C,IAAI,EAAI,KAAK,IAAI,EAAO,CAAC,EAAG,EAAI,EAAK,IAC7B,IAAM,IACN,EAAS,KAAK,EAAM,EAAE,EACtB,IACA,EAAO,KAAK,MAAM,EAAQ,EAAQ,CAAO,EAGrD,CACC,SAAS,IAAe,EAAK,CAC1B,IAAM,EAAM,EAAI,OACZ,EAAG,EACP,GAAI,EAAM,EACN,MAAO,GAEX,IAAI,EAAO,EAAI,GAAI,EAAI,EAAG,EAAI,EAAK,EAAE,EACjC,GAAI,EAAI,GAAK,EAAI,EAAI,KAAO,EACxB,MAAO,GAGf,OAAO,CACX,CAEA,IAAM,IAAgB,GAAQ,IAAU,OAAS,QAAU,IAAU,QAAU,OAAS,EAClF,IAAkB,EAAO,EAAM,IAAS,IAAS,OAAS,IAAS,OAAS,EAAM,GAAQ,EAAS,EAAM,GAAQ,EACjH,IAAiB,EAAa,IAAgB,KAAK,IAAI,GAAiB,EAAa,CAAW,EACrG,SAAS,GAAO,EAAK,EAAU,CAC5B,IAAM,EAAS,CAAC,EACV,EAAY,EAAI,OAAS,EACzB,EAAM,EAAI,OACZ,EAAI,EACR,KAAM,EAAI,EAAK,GAAK,EAChB,EAAO,KAAK,EAAI,KAAK,MAAM,CAAC,EAAE,EAElC,OAAO,CACX,CACC,SAAS,IAAoB,EAAO,EAAO,EAAiB,CACzD,IAAM,EAAS,EAAM,MAAM,OACrB,EAAa,KAAK,IAAI,EAAO,EAAS,CAAC,EACvC,EAAQ,EAAM,YACd,EAAM,EAAM,UACZ,EAAU,KACZ,EAAY,EAAM,gBAAgB,CAAU,EAC5C,OACA,IACA,CAKI,CALA,IAAW,EACF,KAAK,IAAI,EAAY,EAAO,EAAM,CAAS,EAC7C,IAAU,GACP,EAAM,gBAAgB,CAAC,EAAI,GAAa,GAExC,EAAY,EAAM,gBAAgB,EAAa,CAAC,GAAK,EAEnE,GAAa,EAAa,EAAQ,EAAS,CAAC,EACxC,EAAY,EAAQ,GAAW,EAAY,EAAM,IAIzD,OAAO,CACX,CACC,SAAS,IAAe,EAAQ,EAAQ,CACrC,GAAK,EAAS,GAAQ,CAClB,IAAM,EAAK,EAAM,GACX,EAAQ,EAAG,OAAS,EACtB,EACJ,GAAI,EAAQ,EAAQ,CAChB,IAAI,EAAI,EAAG,EAAI,EAAO,EAAE,EACpB,OAAO,EAAM,KAAK,EAAG,IAEzB,EAAG,OAAO,EAAG,CAAK,CACtB,CACJ,CAAC,CACL,CACC,SAAS,GAAkB,EAAS,CACjC,OAAO,EAAQ,UAAY,EAAQ,WAAa,CACpD,CACC,SAAS,GAAe,EAAS,EAAU,CACxC,GAAI,CAAC,EAAQ,QACT,MAAO,GAEX,IAAM,EAAO,GAAO,EAAQ,KAAM,CAAQ,EACpC,EAAU,GAAU,EAAQ,OAAO,EAEzC,OADc,GAAQ,EAAQ,IAAI,EAAI,EAAQ,KAAK,OAAS,GAC7C,EAAK,WAAa,EAAQ,MAC7C,CACA,SAAS,IAAmB,EAAQ,EAAO,CACvC,OAAO,GAAc,EAAQ,CACzB,QACA,KAAM,OACV,CAAC,CACL,CACA,SAAS,IAAkB,EAAQ,EAAO,EAAM,CAC5C,OAAO,GAAc,EAAQ,CACzB,OACA,QACA,KAAM,MACV,CAAC,CACL,CACA,SAAS,IAAW,EAAO,EAAU,EAAS,CACzC,IAAI,EAAM,GAAmB,CAAK,EAInC,OAHI,GAAW,IAAa,SAAW,CAAC,GAAW,IAAa,WAC5D,EAAM,IAAa,CAAG,GAEnB,CACX,CACA,SAAS,IAAU,EAAO,EAAQ,EAAU,EAAO,CAC/C,GAAM,CAAE,MAAM,OAAO,SAAS,QAAQ,SAAW,EAC3C,CAAE,YAAY,UAAY,EAC5B,EAAW,EACX,EAAU,EAAQ,EAChB,EAAS,EAAS,EAClB,EAAQ,EAAQ,EACtB,GAAI,EAAM,aAAa,EAAG,CAEtB,GADA,EAAS,GAAe,EAAO,EAAM,CAAK,EACtClD,GAAS,CAAQ,EAAG,CACpB,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAS,EAAO,GAAgB,iBAAiB,CAAK,EAAI,EAAS,CACvE,MAAO,CAGH,CAHO,IAAa,UACV,EAAU,OAAS,EAAU,KAAO,EAAI,EAAS,EAElD,GAAe,EAAO,EAAU,CAAM,EAEnD,EAAW,EAAQ,CACvB,KAAO,CACH,GAAIA,GAAS,CAAQ,EAAG,CACpB,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAS,EAAO,GAAgB,iBAAiB,CAAK,EAAI,EAAQ,CACtE,MAAO,CAGH,CAHO,IAAa,UACV,EAAU,KAAO,EAAU,OAAS,EAAI,EAAQ,EAEjD,GAAe,EAAO,EAAU,CAAM,EAEnD,EAAS,GAAe,EAAO,EAAQ,CAAG,EAC1C,EAAW,IAAa,OAAS,CAAC,GAAU,EAChD,CACA,MAAO,CACH,SACA,SACA,WACA,UACJ,CACJ,CACA,IAAM,GAAN,MAAM,UAAckD,EAAQ,CACxB,YAAY,EAAI,CACZ,MAAM,EACL,KAAK,GAAK,EAAI,GACd,KAAK,KAAO,EAAI,KAChB,KAAK,QAAU,OACf,KAAK,IAAM,EAAI,IACf,KAAK,MAAQ,EAAI,MACjB,KAAK,IAAM,OACX,KAAK,OAAS,OACd,KAAK,KAAO,OACZ,KAAK,MAAQ,OACb,KAAK,MAAQ,OACb,KAAK,OAAS,OACf,KAAK,SAAW,CACZ,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,CACZ,EACC,KAAK,SAAW,OAChB,KAAK,UAAY,OACjB,KAAK,WAAa,OAClB,KAAK,cAAgB,OACrB,KAAK,YAAc,OACnB,KAAK,aAAe,OACpB,KAAK,KAAO,OACZ,KAAK,cAAgB,OACtB,KAAK,IAAM,OACX,KAAK,IAAM,OACX,KAAK,OAAS,OACb,KAAK,MAAQ,CAAC,EACd,KAAK,eAAiB,KACtB,KAAK,YAAc,KACnB,KAAK,YAAc,KACpB,KAAK,QAAU,EACf,KAAK,WAAa,EAClB,KAAK,kBAAoB,CAAC,EACzB,KAAK,YAAc,OACnB,KAAK,UAAY,OAClB,KAAK,eAAiB,GACtB,KAAK,SAAW,OAChB,KAAK,SAAW,OAChB,KAAK,cAAgB,OACrB,KAAK,cAAgB,OACrB,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,OAAS,CAAC,EACf,KAAK,kBAAoB,GACzB,KAAK,SAAW,MACpB,CACH,KAAK,EAAS,CACP,KAAK,QAAU,EAAQ,WAAW,KAAK,WAAW,CAAC,EACnD,KAAK,KAAO,EAAQ,KACpB,KAAK,SAAW,KAAK,MAAM,EAAQ,GAAG,EACtC,KAAK,SAAW,KAAK,MAAM,EAAQ,GAAG,EACtC,KAAK,cAAgB,KAAK,MAAM,EAAQ,YAAY,EACpD,KAAK,cAAgB,KAAK,MAAM,EAAQ,YAAY,CACxD,CACH,MAAM,EAAK,EAAO,CACX,OAAO,CACX,CACH,eAAgB,CACT,GAAI,CAAE,WAAW,WAAW,gBAAgB,iBAAmB,KAK/D,MAJA,GAAW,GAAgB,EAAU,GAAwB,EAC7D,EAAW,GAAgB,EAAU,IAAwB,EAC7D,EAAgB,GAAgB,EAAe,GAAwB,EACvE,EAAgB,GAAgB,EAAe,IAAwB,EAChE,CACH,IAAK,GAAgB,EAAU,CAAa,EAC5C,IAAK,GAAgB,EAAU,CAAa,EAC5C,WAAY,GAAe,CAAQ,EACnC,WAAY,GAAe,CAAQ,CACvC,CACJ,CACH,UAAU,EAAU,CACb,GAAI,CAAE,MAAM,MAAM,aAAa,cAAgB,KAAK,cAAc,EAC9D,EACJ,GAAI,GAAc,EACd,MAAO,CACH,MACA,KACJ,EAEJ,IAAM,EAAQ,KAAK,wBAAwB,EAC3C,IAAI,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EAC5C,EAAQ,EAAM,GAAG,WAAW,UAAU,KAAM,CAAQ,EAC/C,IACD,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,GAE5B,IACD,EAAM,KAAK,IAAI,EAAK,EAAM,GAAG,GAKrC,MAFA,GAAM,GAAc,EAAM,EAAM,EAAM,EACtC,EAAM,GAAc,EAAM,EAAM,EAAM,EAC/B,CACH,IAAK,GAAgB,EAAK,GAAgB,EAAK,CAAG,CAAC,EACnD,IAAK,GAAgB,EAAK,GAAgB,EAAK,CAAG,CAAC,CACvD,CACJ,CACH,YAAa,CACN,MAAO,CACH,KAAM,KAAK,aAAe,EAC1B,IAAK,KAAK,YAAc,EACxB,MAAO,KAAK,cAAgB,EAC5B,OAAQ,KAAK,eAAiB,CAClC,CACJ,CACH,UAAW,CACJ,OAAO,KAAK,KAChB,CACH,WAAY,CACL,IAAM,EAAO,KAAK,MAAM,KACxB,OAAO,KAAK,QAAQ,SAAW,KAAK,aAAa,EAAI,EAAK,QAAU,EAAK,UAAY,EAAK,QAAU,CAAC,CACzG,CACH,cAAc,EAAY,KAAK,MAAM,UAAW,CAEzC,MADc,CAAqB,KAAK,cAAc,KAAK,mBAAmB,CAAS,CAE3F,CACA,cAAe,CACX,KAAK,OAAS,CAAC,EACf,KAAK,kBAAoB,EAC7B,CACA,cAAe,CACX,GAAS,KAAK,QAAQ,aAAc,CAChC,IACJ,CAAC,CACL,CACH,OAAO,EAAU,EAAW,EAAS,CAC9B,GAAM,CAAE,cAAc,QAAQ,MAAO,GAAc,KAAK,QAClD,EAAa,EAAS,WAC5B,KAAK,aAAa,EAClB,KAAK,SAAW,EAChB,KAAK,UAAY,EACjB,KAAK,SAAW,EAAU,OAAO,OAAO,CACpC,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,CACZ,EAAG,CAAO,EACV,KAAK,MAAQ,KACb,KAAK,YAAc,KACnB,KAAK,eAAiB,KACtB,KAAK,YAAc,KACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,WAAa,KAAK,aAAa,EAAI,KAAK,MAAQ,EAAQ,KAAO,EAAQ,MAAQ,KAAK,OAAS,EAAQ,IAAM,EAAQ,OACxH,IAKI,CAAK,qBAJL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,OAAS,IAAU,KAAM,EAAO,CAAW,EACvB,IAE7B,KAAK,iBAAiB,EACtB,KAAK,MAAQ,KAAK,WAAW,GAAK,CAAC,EACnC,KAAK,gBAAgB,EACrB,IAAM,EAAkB,EAAa,KAAK,MAAM,OAChD,KAAK,sBAAsB,EAAkB,GAAO,KAAK,MAAO,CAAU,EAAI,KAAK,KAAK,EACxF,KAAK,UAAU,EACf,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAC7B,EAAS,UAAY,EAAS,UAAY,EAAS,SAAW,UAC9D,KAAK,MAAQ,IAAS,KAAM,KAAK,KAAK,EACtC,KAAK,YAAc,KACnB,KAAK,cAAc,GAEnB,GACA,KAAK,sBAAsB,KAAK,KAAK,EAEzC,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,CACrB,CACH,WAAY,CACL,IAAI,EAAgB,KAAK,QAAQ,QAC7B,EAAY,EACZ,KAAK,aAAa,GAClB,EAAa,KAAK,KAClB,EAAW,KAAK,QAEhB,EAAa,KAAK,IAClB,EAAW,KAAK,OAChB,EAAgB,CAAC,GAErB,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,eAAiB,EACtB,KAAK,QAAU,EAAW,EAC1B,KAAK,eAAiB,KAAK,QAAQ,aACvC,CACA,aAAc,CACV,GAAS,KAAK,QAAQ,YAAa,CAC/B,IACJ,CAAC,CACL,CACA,qBAAsB,CAClB,GAAS,KAAK,QAAQ,oBAAqB,CACvC,IACJ,CAAC,CACL,CACA,eAAgB,CACR,KAAK,aAAa,GAClB,KAAK,MAAQ,KAAK,SAClB,KAAK,KAAO,EACZ,KAAK,MAAQ,KAAK,QAElB,KAAK,OAAS,KAAK,UACnB,KAAK,IAAM,EACX,KAAK,OAAS,KAAK,QAEvB,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,aAAe,EACpB,KAAK,cAAgB,CACzB,CACA,oBAAqB,CACjB,GAAS,KAAK,QAAQ,mBAAoB,CACtC,IACJ,CAAC,CACL,CACA,WAAW,EAAM,CACb,KAAK,MAAM,cAAc,EAAM,KAAK,WAAW,CAAC,EAChD,GAAS,KAAK,QAAQ,GAAO,CACzB,IACJ,CAAC,CACL,CACA,kBAAmB,CACf,KAAK,WAAW,kBAAkB,CACtC,CACA,qBAAsB,CAAC,CACvB,iBAAkB,CACd,KAAK,WAAW,iBAAiB,CACrC,CACA,kBAAmB,CACf,KAAK,WAAW,kBAAkB,CACtC,CACH,YAAa,CACN,MAAO,CAAC,CACZ,CACA,iBAAkB,CACd,KAAK,WAAW,iBAAiB,CACrC,CACA,6BAA8B,CAC1B,GAAS,KAAK,QAAQ,4BAA6B,CAC/C,IACJ,CAAC,CACL,CACH,mBAAmB,EAAO,CACnB,IAAM,EAAW,KAAK,QAAQ,MAC1B,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IACtC,EAAO,EAAM,GACb,EAAK,MAAQ,GAAS,EAAS,SAAU,CACrC,EAAK,MACL,EACA,CACJ,EAAG,IAAI,CAEf,CACA,4BAA6B,CACzB,GAAS,KAAK,QAAQ,2BAA4B,CAC9C,IACJ,CAAC,CACL,CACA,8BAA+B,CAC3B,GAAS,KAAK,QAAQ,6BAA8B,CAChD,IACJ,CAAC,CACL,CACA,wBAAyB,CACrB,IAAM,EAAU,KAAK,QACf,EAAW,EAAQ,MACnB,EAAW,GAAc,KAAK,MAAM,OAAQ,EAAQ,MAAM,aAAa,EACvE,EAAc,EAAS,aAAe,EACtC,EAAc,EAAS,YACzB,EAAgB,EAChB,EAAW,EAAW,EAC1B,GAAI,CAAC,KAAK,WAAW,GAAK,CAAC,EAAS,SAAW,GAAe,GAAe,GAAY,GAAK,CAAC,KAAK,aAAa,EAAG,CAChH,KAAK,cAAgB,EACrB,MACJ,CACA,IAAM,EAAa,KAAK,eAAe,EACjC,EAAgB,EAAW,OAAO,MAClC,EAAiB,EAAW,QAAQ,OACpC,EAAW,GAAY,KAAK,MAAM,MAAQ,EAAe,EAAG,KAAK,QAAQ,EAC/E,EAAY,EAAQ,OAAS,KAAK,SAAW,EAAW,GAAY,EAAW,GAC3E,EAAgB,EAAI,IACpB,EAAY,GAAY,GAAY,EAAQ,OAAS,GAAM,IAC3D,EAAY,KAAK,UAAY,GAAkB,EAAQ,IAAI,EAAI,EAAS,QAAU,GAAe,EAAQ,MAAO,KAAK,MAAM,QAAQ,IAAI,EACvI,EAAmB,KAAK,KAAK,EAAgB,EAAgB,EAAiB,CAAc,EAC5F,EAAgB,GAAU,KAAK,IAAI,KAAK,KAAK,IAAa,EAAW,QAAQ,OAAS,GAAK,EAAW,GAAI,CAAC,CAAC,EAAG,KAAK,KAAK,GAAY,EAAY,EAAkB,GAAI,CAAC,CAAC,EAAI,KAAK,KAAK,GAAY,EAAiB,EAAkB,GAAI,CAAC,CAAC,CAAC,CAAC,EAC9O,EAAgB,KAAK,IAAI,EAAa,KAAK,IAAI,EAAa,CAAa,CAAC,GAE9E,KAAK,cAAgB,CACzB,CACA,6BAA8B,CAC1B,GAAS,KAAK,QAAQ,4BAA6B,CAC/C,IACJ,CAAC,CACL,CACA,eAAgB,CAAC,CACjB,WAAY,CACR,GAAS,KAAK,QAAQ,UAAW,CAC7B,IACJ,CAAC,CACL,CACA,KAAM,CACF,IAAM,EAAU,CACZ,MAAO,EACP,OAAQ,CACZ,EACM,CAAE,QAAQ,QAAS,CAAE,MAAO,EAAW,MAAO,EAAY,KAAM,IAAiB,KACjF,EAAU,KAAK,WAAW,EAC1B,EAAe,KAAK,aAAa,EACvC,GAAI,EAAS,CACT,IAAM,EAAc,GAAe,EAAW,EAAM,QAAQ,IAAI,EAQhE,GAPI,GACA,EAAQ,MAAQ,KAAK,SACrB,EAAQ,OAAS,GAAkB,CAAQ,EAAI,IAE/C,EAAQ,OAAS,KAAK,UACtB,EAAQ,MAAQ,GAAkB,CAAQ,EAAI,GAE9C,EAAS,SAAW,KAAK,MAAM,OAAQ,CACvC,GAAM,CAAE,QAAQ,OAAO,SAAS,WAAa,KAAK,eAAe,EAC3D,EAAc,EAAS,QAAU,EACjC,EAAe,GAAU,KAAK,aAAa,EAC3C,EAAM,KAAK,IAAI,CAAY,EAC3B,EAAM,KAAK,IAAI,CAAY,EACjC,GAAI,EAAc,CACd,IAAM,EAAc,EAAS,OAAS,EAAI,EAAM,EAAO,MAAQ,EAAM,EAAQ,OAC7E,EAAQ,OAAS,KAAK,IAAI,KAAK,UAAW,EAAQ,OAAS,EAAc,CAAW,CACxF,KAAO,CACH,IAAM,EAAa,EAAS,OAAS,EAAI,EAAM,EAAO,MAAQ,EAAM,EAAQ,OAC5E,EAAQ,MAAQ,KAAK,IAAI,KAAK,SAAU,EAAQ,MAAQ,EAAa,CAAW,CACpF,CACA,KAAK,kBAAkB,EAAO,EAAM,EAAK,CAAG,CAChD,CACJ,CACA,KAAK,eAAe,EAChB,GACA,KAAK,MAAQ,KAAK,QAAU,EAAM,MAAQ,KAAK,SAAS,KAAO,KAAK,SAAS,MAC7E,KAAK,OAAS,EAAQ,SAEtB,KAAK,MAAQ,EAAQ,MACrB,KAAK,OAAS,KAAK,QAAU,EAAM,OAAS,KAAK,SAAS,IAAM,KAAK,SAAS,OAEtF,CACA,kBAAkB,EAAO,EAAM,EAAK,EAAK,CACrC,GAAM,CAAE,MAAO,CAAE,QAAQ,WAAa,YAAc,KAAK,QACnD,EAAY,KAAK,gBAAkB,EACnC,EAAmB,IAAa,OAAS,KAAK,OAAS,IAC7D,GAAI,KAAK,aAAa,EAAG,CACrB,IAAM,EAAa,KAAK,gBAAgB,CAAC,EAAI,KAAK,KAC5C,EAAc,KAAK,MAAQ,KAAK,gBAAgB,KAAK,MAAM,OAAS,CAAC,EACvE,EAAc,EACd,EAAe,EACf,EACI,GACA,EAAc,EAAM,EAAM,MAC1B,EAAe,EAAM,EAAK,SAE1B,EAAc,EAAM,EAAM,OAC1B,EAAe,EAAM,EAAK,OAEvB,IAAU,QACjB,EAAe,EAAK,MACb,IAAU,MACjB,EAAc,EAAM,MACb,IAAU,UACjB,EAAc,EAAM,MAAQ,EAC5B,EAAe,EAAK,MAAQ,GAEhC,KAAK,YAAc,KAAK,KAAK,EAAc,EAAa,GAAW,KAAK,OAAS,KAAK,MAAQ,GAAa,CAAC,EAC5G,KAAK,aAAe,KAAK,KAAK,EAAe,EAAc,GAAW,KAAK,OAAS,KAAK,MAAQ,GAAc,CAAC,CACpH,KAAO,CACH,IAAI,EAAa,EAAK,OAAS,EAC3B,EAAgB,EAAM,OAAS,EAC/B,IAAU,SACV,EAAa,EACb,EAAgB,EAAM,QACf,IAAU,QACjB,EAAa,EAAK,OAClB,EAAgB,GAEpB,KAAK,WAAa,EAAa,EAC/B,KAAK,cAAgB,EAAgB,CACzC,CACJ,CACH,gBAAiB,CACN,KAAK,WACL,KAAK,SAAS,KAAO,KAAK,IAAI,KAAK,YAAa,KAAK,SAAS,IAAI,EAClE,KAAK,SAAS,IAAM,KAAK,IAAI,KAAK,WAAY,KAAK,SAAS,GAAG,EAC/D,KAAK,SAAS,MAAQ,KAAK,IAAI,KAAK,aAAc,KAAK,SAAS,KAAK,EACrE,KAAK,SAAS,OAAS,KAAK,IAAI,KAAK,cAAe,KAAK,SAAS,MAAM,EAEhF,CACA,UAAW,CACP,GAAS,KAAK,QAAQ,SAAU,CAC5B,IACJ,CAAC,CACL,CACH,cAAe,CACR,GAAM,CAAE,OAAO,YAAc,KAAK,QAClC,OAAO,IAAa,OAAS,IAAa,UAAY,IAAS,GACnE,CACH,YAAa,CACN,OAAO,KAAK,QAAQ,QACxB,CACH,sBAAsB,EAAO,CACtB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,CAAK,EAC7B,IAAI,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IAClC,GAAc,EAAM,GAAG,KAAK,IAC5B,EAAM,OAAO,EAAG,CAAC,EACjB,IACA,KAGR,KAAK,2BAA2B,CACpC,CACH,gBAAiB,CACV,IAAI,EAAa,KAAK,YACtB,GAAI,CAAC,EAAY,CACb,IAAM,EAAa,KAAK,QAAQ,MAAM,WAClC,EAAQ,KAAK,MACb,EAAa,EAAM,SACnB,EAAQ,GAAO,EAAO,CAAU,GAEpC,KAAK,YAAc,EAAa,KAAK,mBAAmB,EAAO,EAAM,OAAQ,KAAK,QAAQ,MAAM,aAAa,CACjH,CACA,OAAO,CACX,CACH,mBAAmB,EAAO,EAAQ,EAAe,CAC1C,GAAM,CAAE,MAAM,kBAAmB,GAAY,KACvC,EAAS,CAAC,EACV,EAAU,CAAC,EACX,EAAY,KAAK,MAAM,EAAS,GAAc,EAAQ,CAAa,CAAC,EACtE,EAAkB,EAClB,EAAmB,EACnB,EAAG,EAAG,EAAM,EAAO,EAAU,EAAY,EAAO,EAAY,EAAO,EAAQ,EAC/E,IAAI,EAAI,EAAG,EAAI,EAAQ,GAAK,EAAU,CAUlC,GATA,EAAQ,EAAM,GAAG,MACjB,EAAW,KAAK,wBAAwB,CAAC,EACzC,EAAI,KAAO,EAAa,EAAS,OACjC,EAAQ,EAAO,GAAc,EAAO,IAAe,CAC/C,KAAM,CAAC,EACP,GAAI,CAAC,CACT,EACA,EAAa,EAAS,WACtB,EAAQ,EAAS,EACb,CAAC,GAAc,CAAK,GAAK,CAAC,GAAQ,CAAK,EACvC,EAAQ,GAAa,EAAK,EAAM,KAAM,EAAM,GAAI,EAAO,CAAK,EAC5D,EAAS,OACN,GAAI,GAAQ,CAAK,EACpB,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EACxC,EAAe,EAAM,GACjB,CAAC,GAAc,CAAW,GAAK,CAAC,GAAQ,CAAW,IACnD,EAAQ,GAAa,EAAK,EAAM,KAAM,EAAM,GAAI,EAAO,CAAW,EAClE,GAAU,GAItB,EAAO,KAAK,CAAK,EACjB,EAAQ,KAAK,CAAM,EACnB,EAAkB,KAAK,IAAI,EAAO,CAAe,EACjD,EAAmB,KAAK,IAAI,EAAQ,CAAgB,CACxD,CACA,IAAe,EAAQ,CAAM,EAC7B,IAAM,EAAS,EAAO,QAAQ,CAAe,EACvC,EAAU,EAAQ,QAAQ,CAAgB,EAC1C,EAAW,IAAO,CAChB,MAAO,EAAO,IAAQ,EACtB,OAAQ,EAAQ,IAAQ,CAC5B,GACJ,MAAO,CACH,MAAO,EAAQ,CAAC,EAChB,KAAM,EAAQ,EAAS,CAAC,EACxB,OAAQ,EAAQ,CAAM,EACtB,QAAS,EAAQ,CAAO,EACxB,SACA,SACJ,CACJ,CACH,iBAAiB,EAAO,CACjB,OAAO,CACX,CACH,iBAAiB,EAAO,EAAO,CACxB,MAAO,IACX,CACH,iBAAiB,EAAO,CAAC,CACzB,gBAAgB,EAAO,CAChB,IAAM,EAAQ,KAAK,MAInB,OAHI,EAAQ,GAAK,EAAQ,EAAM,OAAS,EAC7B,KAEJ,KAAK,iBAAiB,EAAM,GAAO,KAAK,CACnD,CACH,mBAAmB,EAAS,CACjB,KAAK,iBACL,EAAU,EAAI,GAElB,IAAM,EAAQ,KAAK,YAAc,EAAU,KAAK,QAChD,OAAO,IAAY,KAAK,eAAiB,GAAY,KAAK,MAAO,EAAO,CAAC,EAAI,CAAK,CACtF,CACH,mBAAmB,EAAO,CACnB,IAAM,GAAW,EAAQ,KAAK,aAAe,KAAK,QAClD,OAAO,KAAK,eAAiB,EAAI,EAAU,CAC/C,CACH,cAAe,CACR,OAAO,KAAK,iBAAiB,KAAK,aAAa,CAAC,CACpD,CACH,cAAe,CACR,GAAM,CAAE,MAAM,OAAS,KACvB,OAAO,EAAM,GAAK,EAAM,EAAI,EAAM,EAAM,GAAK,EAAM,EAAI,EAAM,CACjE,CACH,WAAW,EAAO,CACX,IAAM,EAAQ,KAAK,OAAS,CAAC,EAC7B,GAAI,GAAS,GAAK,EAAQ,EAAM,OAAQ,CACpC,IAAM,EAAO,EAAM,GACnB,MAAO,CAAkB,EAAK,WAAW,IAAkB,KAAK,WAAW,EAAG,EAAO,CAAI,CAC7F,CACA,MAAO,CAAkB,KAAK,WAAW,IAAmB,KAAK,MAAM,WAAW,EAAG,IAAI,CAC7F,CACH,WAAY,CACL,IAAM,EAAc,KAAK,QAAQ,MAC3B,EAAM,GAAU,KAAK,aAAa,EAClC,EAAM,KAAK,IAAI,KAAK,IAAI,CAAG,CAAC,EAC5B,EAAM,KAAK,IAAI,KAAK,IAAI,CAAG,CAAC,EAC5B,EAAa,KAAK,eAAe,EACjC,EAAU,EAAY,iBAAmB,EACzC,EAAI,EAAa,EAAW,OAAO,MAAQ,EAAU,EACrD,EAAI,EAAa,EAAW,QAAQ,OAAS,EAAU,EAC7D,OAAO,KAAK,aAAa,EAAI,EAAI,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,CAC3G,CACH,YAAa,CACN,IAAM,EAAU,KAAK,QAAQ,QAI7B,OAHI,IAAY,OAGT,KAAK,wBAAwB,EAAE,OAAS,EAFpC,CAAC,CAAC,CAGjB,CACH,sBAAsB,EAAW,CAC1B,IAAM,EAAO,KAAK,KACZ,EAAQ,KAAK,MACb,EAAU,KAAK,QACf,CAAE,OAAO,WAAW,UAAY,EAChC,EAAS,EAAK,OACd,EAAe,KAAK,aAAa,EAEjC,EADQ,KAAK,MACO,QAAU,KAC9B,EAAK,GAAkB,CAAI,EAC3B,EAAQ,CAAC,EACT,EAAa,EAAO,WAAW,KAAK,WAAW,CAAC,EAChD,EAAY,EAAW,QAAU,EAAW,MAAQ,EACpD,EAAgB,EAAY,EAC5B,EAAmB,SAAS,EAAO,CACrC,OAAO,GAAY,EAAO,EAAO,CAAS,CAC9C,EACI,EAAa,EAAG,EAAW,EAC3B,EAAK,EAAK,EAAK,EAAK,EAAI,EAAI,EAAI,EACpC,GAAI,IAAa,MACb,EAAc,EAAiB,KAAK,MAAM,EAC1C,EAAM,KAAK,OAAS,EACpB,EAAM,EAAc,EACpB,EAAK,EAAiB,EAAU,GAAG,EAAI,EACvC,EAAK,EAAU,YACZ,GAAI,IAAa,SACpB,EAAc,EAAiB,KAAK,GAAG,EACvC,EAAK,EAAU,IACf,EAAK,EAAiB,EAAU,MAAM,EAAI,EAC1C,EAAM,EAAc,EACpB,EAAM,KAAK,IAAM,OACd,GAAI,IAAa,OACpB,EAAc,EAAiB,KAAK,KAAK,EACzC,EAAM,KAAK,MAAQ,EACnB,EAAM,EAAc,EACpB,EAAK,EAAiB,EAAU,IAAI,EAAI,EACxC,EAAK,EAAU,WACZ,GAAI,IAAa,QACpB,EAAc,EAAiB,KAAK,IAAI,EACxC,EAAK,EAAU,KACf,EAAK,EAAiB,EAAU,KAAK,EAAI,EACzC,EAAM,EAAc,EACpB,EAAM,KAAK,KAAO,OACf,GAAI,IAAS,IAAK,CACrB,GAAI,IAAa,SACb,EAAc,GAAkB,EAAU,IAAM,EAAU,QAAU,EAAI,EAAG,OACxE,GAAIlD,GAAS,CAAQ,EAAG,CAC3B,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAc,EAAiB,KAAK,MAAM,OAAO,GAAgB,iBAAiB,CAAK,CAAC,CAC5F,CACA,EAAK,EAAU,IACf,EAAK,EAAU,OACf,EAAM,EAAc,EACpB,EAAM,EAAM,CAChB,MAAO,GAAI,IAAS,IAAK,CACrB,GAAI,IAAa,SACb,EAAc,GAAkB,EAAU,KAAO,EAAU,OAAS,CAAC,OAClE,GAAIA,GAAS,CAAQ,EAAG,CAC3B,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAc,EAAiB,KAAK,MAAM,OAAO,GAAgB,iBAAiB,CAAK,CAAC,CAC5F,CACA,EAAM,EAAc,EACpB,EAAM,EAAM,EACZ,EAAK,EAAU,KACf,EAAK,EAAU,KACnB,CACA,IAAM,EAAQ,GAAe,EAAQ,MAAM,cAAe,CAAW,EAC/D,EAAO,KAAK,IAAI,EAAG,KAAK,KAAK,EAAc,CAAK,CAAC,EACvD,IAAI,EAAI,EAAG,EAAI,EAAa,GAAK,EAAK,CAClC,IAAM,EAAU,KAAK,WAAW,CAAC,EAC3B,EAAc,EAAK,WAAW,CAAO,EACrC,EAAoB,EAAO,WAAW,CAAO,EAC7C,EAAY,EAAY,UACxB,EAAY,EAAY,MACxB,EAAa,EAAkB,MAAQ,CAAC,EACxC,EAAmB,EAAkB,WACrC,EAAY,EAAY,UACxB,EAAY,EAAY,UACxB,EAAiB,EAAY,gBAAkB,CAAC,EAChD,EAAuB,EAAY,qBACzC,EAAY,IAAoB,KAAM,EAAG,CAAM,EAC3C,IAAc,SAGlB,EAAmB,GAAY,EAAO,EAAW,CAAS,EACtD,EACA,EAAM,EAAM,EAAK,EAAK,EAEtB,EAAM,EAAM,EAAK,EAAK,EAE1B,EAAM,KAAK,CACP,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,MAAO,EACP,MAAO,EACP,aACA,mBACA,YACA,YACA,iBACA,sBACJ,CAAC,EACL,CAGA,MAFA,MAAK,aAAe,EACpB,KAAK,aAAe,EACb,CACX,CACH,mBAAmB,EAAW,CACvB,IAAM,EAAO,KAAK,KACZ,EAAU,KAAK,QACf,CAAE,WAAW,MAAO,GAAiB,EACrC,EAAe,KAAK,aAAa,EACjC,EAAQ,KAAK,MACb,CAAE,QAAQ,aAAa,UAAU,UAAY,EAC7C,EAAK,GAAkB,EAAQ,IAAI,EACnC,EAAiB,EAAK,EACtB,EAAkB,EAAS,CAAC,EAAU,EACtC,EAAW,CAAC,GAAU,KAAK,aAAa,EACxC,EAAQ,CAAC,EACX,EAAG,EAAM,EAAM,EAAO,EAAG,EAAG,EAAW,EAAO,EAAM,EAAY,EAAW,EAC3E,EAAe,SACnB,GAAI,IAAa,MACb,EAAI,KAAK,OAAS,EAClB,EAAY,KAAK,wBAAwB,OACtC,GAAI,IAAa,SACpB,EAAI,KAAK,IAAM,EACf,EAAY,KAAK,wBAAwB,OACtC,GAAI,IAAa,OAAQ,CAC5B,IAAM,EAAM,KAAK,wBAAwB,CAAE,EAC3C,EAAY,EAAI,UAChB,EAAI,EAAI,CACZ,MAAO,GAAI,IAAa,QAAS,CAC7B,IAAM,EAAM,KAAK,wBAAwB,CAAE,EAC3C,EAAY,EAAI,UAChB,EAAI,EAAI,CACZ,MAAO,GAAI,IAAS,IAAK,CACrB,GAAI,IAAa,SACb,GAAK,EAAU,IAAM,EAAU,QAAU,EAAI,OAC1C,GAAIA,GAAS,CAAQ,EAAG,CAC3B,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAI,KAAK,MAAM,OAAO,GAAgB,iBAAiB,CAAK,EAAI,CACpE,CACA,EAAY,KAAK,wBAAwB,CAC7C,MAAO,GAAI,IAAS,IAAK,CACrB,GAAI,IAAa,SACb,GAAK,EAAU,KAAO,EAAU,OAAS,EAAI,OAC1C,GAAIA,GAAS,CAAQ,EAAG,CAC3B,IAAM,EAAiB,OAAO,KAAK,CAAQ,EAAE,GACvC,EAAQ,EAAS,GACvB,EAAI,KAAK,MAAM,OAAO,GAAgB,iBAAiB,CAAK,CAChE,CACA,EAAY,KAAK,wBAAwB,CAAE,EAAE,SACjD,CACI,IAAS,MACL,IAAU,QACV,EAAe,MACR,IAAU,QACjB,EAAe,WAGvB,IAAM,EAAa,KAAK,eAAe,EACvC,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC1C,EAAO,EAAM,GACb,EAAQ,EAAK,MACb,IAAM,EAAc,EAAY,WAAW,KAAK,WAAW,CAAC,CAAC,EAC7D,EAAQ,KAAK,gBAAgB,CAAC,EAAI,EAAY,YAC9C,EAAO,KAAK,wBAAwB,CAAC,EACrC,EAAa,EAAK,WAClB,EAAY,GAAQ,CAAK,EAAI,EAAM,OAAS,EAC5C,IAAM,EAAY,EAAY,EACxB,EAAQ,EAAY,MACpB,EAAc,EAAY,gBAC1B,EAAc,EAAY,gBAC5B,EAAgB,EAChB,GACA,EAAI,EACA,IAAc,UACd,CAKI,CALA,IAAM,EAAO,EACI,KAAK,QAAQ,QAAoB,OAAV,QACjC,IAAM,EACI,KAAK,QAAQ,QAAmB,QAAT,OAExB,UAGxB,CAcQ,CAdJ,IAAa,MACT,IAAe,QAAU,IAAa,EACzB,CAAC,EAAY,EAAa,EAAa,EAC7C,IAAe,SACT,CAAC,EAAW,QAAQ,OAAS,EAAI,EAAY,EAAa,EAE1D,CAAC,EAAW,QAAQ,OAAS,EAAa,EAGvD,IAAe,QAAU,IAAa,EACzB,EAAa,EACnB,IAAe,SACT,EAAW,QAAQ,OAAS,EAAI,EAAY,EAE5C,EAAW,QAAQ,OAAS,EAAY,EAGzD,IACA,GAAc,IAEd,IAAa,GAAK,CAAC,EAAY,oBAC/B,GAAK,EAAa,EAAI,KAAK,IAAI,CAAQ,KAG3C,EAAI,EACJ,GAAc,EAAI,GAAa,EAAa,GAEhD,IAAI,EACJ,GAAI,EAAY,kBAAmB,CAC/B,IAAM,EAAe,GAAU,EAAY,eAAe,EACpD,EAAS,EAAW,QAAQ,GAC5B,EAAQ,EAAW,OAAO,GAC5B,EAAM,EAAa,EAAa,IAChC,EAAO,EAAI,EAAa,KAC5B,OAAO,EAAP,CACI,IAAK,SACD,GAAO,EAAS,EAChB,MACJ,IAAK,SACD,GAAO,EACP,KACR,CACA,OAAO,EAAP,CACI,IAAK,SACD,GAAQ,EAAQ,EAChB,MACJ,IAAK,QACD,GAAQ,EACR,MACJ,IAAK,QACG,IAAM,EAAO,EACb,GAAQ,EACD,EAAI,IACX,GAAQ,EAAQ,GAEpB,KACR,CACA,EAAW,CACP,OACA,MACA,MAAO,EAAQ,EAAa,MAC5B,OAAQ,EAAS,EAAa,OAC9B,MAAO,EAAY,aACvB,CACJ,CACA,EAAM,KAAK,CACP,QACA,OACA,aACA,QAAS,CACL,WACA,QACA,cACA,cACA,UAAW,EACX,eACA,YAAa,CACT,EACA,CACJ,EACA,UACJ,CACJ,CAAC,CACL,CACA,OAAO,CACX,CACA,yBAA0B,CACtB,GAAM,CAAE,WAAW,SAAW,KAAK,QAEnC,GAAI,CADc,GAAU,KAAK,aAAa,EAE1C,OAAO,IAAa,MAAQ,OAAS,QAEzC,IAAI,EAAQ,SAQZ,OAPI,EAAM,QAAU,QAChB,EAAQ,OACD,EAAM,QAAU,MACvB,EAAQ,QACD,EAAM,QAAU,UACvB,EAAQ,SAEL,CACX,CACA,wBAAwB,EAAI,CACxB,GAAM,CAAE,WAAW,MAAO,CAAE,aAAa,SAAS,YAAgB,KAAK,QACjE,EAAa,KAAK,eAAe,EACjC,EAAiB,EAAK,EACtB,EAAS,EAAW,OAAO,MAC7B,EACA,EAoDJ,OAnDI,IAAa,OACT,GACA,EAAI,KAAK,MAAQ,EACb,IAAe,OACf,EAAY,OACL,IAAe,UACtB,EAAY,SACZ,GAAK,EAAS,IAEd,EAAY,QACZ,GAAK,KAGT,EAAI,KAAK,MAAQ,EACb,IAAe,OACf,EAAY,QACL,IAAe,UACtB,EAAY,SACZ,GAAK,EAAS,IAEd,EAAY,OACZ,EAAI,KAAK,OAGV,IAAa,QAChB,GACA,EAAI,KAAK,KAAO,EACZ,IAAe,OACf,EAAY,QACL,IAAe,UACtB,EAAY,SACZ,GAAK,EAAS,IAEd,EAAY,OACZ,GAAK,KAGT,EAAI,KAAK,KAAO,EACZ,IAAe,OACf,EAAY,OACL,IAAe,UACtB,EAAY,SACZ,GAAK,EAAS,IAEd,EAAY,QACZ,EAAI,KAAK,QAIjB,EAAY,QAET,CACH,YACA,GACJ,CACJ,CACH,mBAAoB,CACb,GAAI,KAAK,QAAQ,MAAM,OACnB,OAEJ,IAAM,EAAQ,KAAK,MACb,EAAW,KAAK,QAAQ,SAC9B,GAAI,IAAa,QAAU,IAAa,QACpC,MAAO,CACH,IAAK,EACL,KAAM,KAAK,KACX,OAAQ,EAAM,OACd,MAAO,KAAK,KAChB,EAEJ,GAAI,IAAa,OAAS,IAAa,SACnC,MAAO,CACH,IAAK,KAAK,IACV,KAAM,EACN,OAAQ,KAAK,OACb,MAAO,EAAM,KACjB,CAER,CACH,gBAAiB,CACV,GAAM,CAAE,MAAM,QAAS,CAAE,mBAAqB,OAAO,MAAM,QAAQ,UAAY,KAC3E,IACA,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,EAAI,SAAS,EAAM,EAAK,EAAO,CAAM,EACrC,EAAI,QAAQ,EAEpB,CACA,qBAAqB,EAAO,CACxB,IAAM,EAAO,KAAK,QAAQ,KAC1B,GAAI,CAAC,KAAK,WAAW,GAAK,CAAC,EAAK,QAC5B,MAAO,GAGX,IAAM,EADQ,KAAK,MACC,UAAW,GAAI,EAAE,QAAU,CAAK,EAKpD,OAJI,GAAS,EACI,EAAK,WAAW,KAAK,WAAW,CAAK,CACxC,EAAE,UAET,CACX,CACH,SAAS,EAAW,CACb,IAAM,EAAO,KAAK,QAAQ,KACpB,EAAM,KAAK,IACX,EAAQ,IAAwB,CAAK,iBAAiB,KAAK,sBAAsB,CAAS,EAC5F,EAAG,EACD,GAAY,EAAI,EAAI,IAAQ,CAC1B,CAAC,EAAM,OAAS,CAAC,EAAM,QAG3B,EAAI,KAAK,EACT,EAAI,UAAY,EAAM,MACtB,EAAI,YAAc,EAAM,MACxB,EAAI,YAAY,EAAM,YAAc,CAAC,CAAC,EACtC,EAAI,eAAiB,EAAM,iBAC3B,EAAI,UAAU,EACd,EAAI,OAAO,EAAG,EAAG,EAAG,CAAC,EACrB,EAAI,OAAO,EAAG,EAAG,EAAG,CAAC,EACrB,EAAI,OAAO,EACX,EAAI,QAAQ,EAChB,EACA,GAAI,EAAK,QACL,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC1C,IAAM,EAAO,EAAM,GACf,EAAK,iBACL,EAAS,CACL,EAAG,EAAK,GACR,EAAG,EAAK,EACZ,EAAG,CACC,EAAG,EAAK,GACR,EAAG,EAAK,EACZ,EAAG,CAAI,EAEP,EAAK,WACL,EAAS,CACL,EAAG,EAAK,IACR,EAAG,EAAK,GACZ,EAAG,CACC,EAAG,EAAK,IACR,EAAG,EAAK,GACZ,EAAG,CACC,MAAO,EAAK,UACZ,MAAO,EAAK,UACZ,WAAY,EAAK,eACjB,iBAAkB,EAAK,oBAC3B,CAAC,CAET,CAER,CACH,YAAa,CACN,GAAM,CAAE,QAAQ,MAAM,QAAS,CAAE,SAAS,SAAa,KACjD,EAAa,EAAO,WAAW,KAAK,WAAW,CAAC,EAChD,EAAY,EAAO,QAAU,EAAW,MAAQ,EACtD,GAAI,CAAC,EACD,OAEJ,IAAM,EAAgB,EAAK,WAAW,KAAK,WAAW,CAAC,CAAC,EAAE,UACpD,EAAc,KAAK,aACrB,EAAI,EAAI,EAAI,EACZ,KAAK,aAAa,GAClB,EAAK,GAAY,EAAO,KAAK,KAAM,CAAS,EAAI,EAAY,EAC5D,EAAK,GAAY,EAAO,KAAK,MAAO,CAAa,EAAI,EAAgB,EACrE,EAAK,EAAK,IAEV,EAAK,GAAY,EAAO,KAAK,IAAK,CAAS,EAAI,EAAY,EAC3D,EAAK,GAAY,EAAO,KAAK,OAAQ,CAAa,EAAI,EAAgB,EACtE,EAAK,EAAK,GAEd,EAAI,KAAK,EACT,EAAI,UAAY,EAAW,MAC3B,EAAI,YAAc,EAAW,MAC7B,EAAI,UAAU,EACd,EAAI,OAAO,EAAI,CAAE,EACjB,EAAI,OAAO,EAAI,CAAE,EACjB,EAAI,OAAO,EACX,EAAI,QAAQ,CAChB,CACH,WAAW,EAAW,CAEf,GAAI,CADgB,KAAK,QAAQ,MAChB,QACb,OAEJ,IAAM,EAAM,KAAK,IACX,EAAO,KAAK,kBAAkB,EAChC,GACA,GAAS,EAAK,CAAI,EAEtB,IAAM,EAAQ,KAAK,cAAc,CAAS,EAC1C,IAAK,IAAM,KAAQ,EAAM,CACrB,IAAM,EAAoB,EAAK,QACzB,EAAW,EAAK,KAChB,EAAQ,EAAK,MACb,EAAI,EAAK,WACf,GAAW,EAAK,EAAO,EAAG,EAAG,EAAU,CAAiB,CAC5D,CACI,GACA,GAAW,CAAG,CAEtB,CACH,WAAY,CACL,GAAM,CAAE,MAAM,QAAS,CAAE,WAAW,QAAQ,YAAgB,KAC5D,GAAI,CAAC,EAAM,QACP,OAEJ,IAAM,EAAO,GAAO,EAAM,IAAI,EACxB,EAAU,GAAU,EAAM,OAAO,EACjC,EAAQ,EAAM,MAChB,EAAS,EAAK,WAAa,EAC3B,IAAa,UAAY,IAAa,UAAYA,GAAS,CAAQ,GACnE,GAAU,EAAQ,OACd,GAAQ,EAAM,IAAI,IAClB,GAAU,EAAK,YAAc,EAAM,KAAK,OAAS,KAGrD,GAAU,EAAQ,IAEtB,GAAM,CAAE,SAAS,SAAS,WAAW,YAAc,IAAU,KAAM,EAAQ,EAAU,CAAK,EAC1F,GAAW,EAAK,EAAM,KAAM,EAAG,EAAG,EAAM,CACpC,MAAO,EAAM,MACb,WACA,WACA,UAAW,IAAW,EAAO,EAAU,CAAO,EAC9C,aAAc,SACd,YAAa,CACT,EACA,CACJ,CACJ,CAAC,CACL,CACA,KAAK,EAAW,CACP,KAAK,WAAW,IAGrB,KAAK,eAAe,EACpB,KAAK,SAAS,CAAS,EACvB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,CAAS,EAC7B,CACH,SAAU,CACH,IAAM,EAAO,KAAK,QACZ,EAAK,EAAK,OAAS,EAAK,MAAM,GAAK,EACnC,EAAK,GAAe,EAAK,MAAQ,EAAK,KAAK,EAAG,EAAE,EAChD,EAAK,GAAe,EAAK,QAAU,EAAK,OAAO,EAAG,CAAC,EAWzD,MAVI,CAAC,KAAK,WAAW,GAAK,KAAK,OAAS,EAAM,UAAU,KAC7C,CACH,CACI,EAAG,EACH,KAAO,GAAY,CACf,KAAK,KAAK,CAAS,CACvB,CACJ,CACJ,EAEG,CACH,CACI,EAAG,EACH,KAAO,GAAY,CACf,KAAK,eAAe,EACpB,KAAK,SAAS,CAAS,EACvB,KAAK,UAAU,CACnB,CACJ,EACA,CACI,EAAG,EACH,SAAU,CACN,KAAK,WAAW,CACpB,CACJ,EACA,CACI,EAAG,EACH,KAAO,GAAY,CACf,KAAK,WAAW,CAAS,CAC7B,CACJ,CACJ,CACJ,CACH,wBAAwB,EAAM,CACvB,IAAM,EAAQ,KAAK,MAAM,6BAA6B,EAChD,EAAS,KAAK,KAAO,SACrB,EAAS,CAAC,EACZ,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC1C,IAAM,EAAO,EAAM,GACf,EAAK,KAAY,KAAK,KAAO,CAAC,GAAQ,EAAK,OAAS,IACpD,EAAO,KAAK,CAAI,CAExB,CACA,OAAO,CACX,CACH,wBAAwB,EAAO,CAExB,OAAO,GADM,KAAK,QAAQ,MAAM,WAAW,KAAK,WAAW,CAAK,CAC/C,EAAE,IAAI,CAC3B,CACH,YAAa,CACN,IAAM,EAAW,KAAK,wBAAwB,CAAC,EAAE,WACjD,OAAQ,KAAK,aAAa,EAAI,KAAK,MAAQ,KAAK,QAAU,CAC9D,CACJ,EAEM,GAAN,KAAoB,CAChB,YAAY,EAAM,EAAO,EAAS,CAC9B,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,SAAW,EAChB,KAAK,MAAQ,OAAO,OAAO,IAAI,CACnC,CACA,UAAU,EAAM,CACZ,OAAO,OAAO,UAAU,cAAc,KAAK,KAAK,KAAK,UAAW,EAAK,SAAS,CAClF,CACH,SAAS,EAAM,CACR,IAAM,EAAQ,OAAO,eAAe,CAAI,EACpC,EACA,IAAkB,CAAK,IACvB,EAAc,KAAK,SAAS,CAAK,GAErC,IAAM,EAAQ,KAAK,MACb,EAAK,EAAK,GACV,EAAQ,KAAK,MAAQ,IAAM,EACjC,GAAI,CAAC,EACD,MAAU,MAAM,2BAA6B,CAAI,EAUrD,OARI,KAAM,EACC,GAEX,EAAM,GAAM,EACZ,IAAiB,EAAM,EAAO,CAAW,EACrC,KAAK,UACL,GAAS,SAAS,EAAK,GAAI,EAAK,SAAS,EAEtC,EACX,CACH,IAAI,EAAI,CACD,OAAO,KAAK,MAAM,EACtB,CACH,WAAW,EAAM,CACV,IAAM,EAAQ,KAAK,MACb,EAAK,EAAK,GACV,EAAQ,KAAK,MACf,KAAM,GACN,OAAO,EAAM,GAEb,GAAS,KAAM,GAAS,KACxB,OAAO,GAAS,GAAO,GACnB,KAAK,UACL,OAAO,GAAU,GAG7B,CACJ,EACA,SAAS,IAAiB,EAAM,EAAO,EAAa,CAChD,IAAM,EAAe4C,GAAM,OAAO,OAAO,IAAI,EAAG,CAC5C,EAAc,GAAS,IAAI,CAAW,EAAI,CAAC,EAC3C,GAAS,IAAI,CAAK,EAClB,EAAK,QACT,CAAC,EACD,GAAS,IAAI,EAAO,CAAY,EAC5B,EAAK,eACL,IAAc,EAAO,EAAK,aAAa,EAEvC,EAAK,aACL,GAAS,SAAS,EAAO,EAAK,WAAW,CAEjD,CACA,SAAS,IAAc,EAAO,EAAQ,CAClC,OAAO,KAAK,CAAM,EAAE,QAAS,GAAW,CACpC,IAAM,EAAgB,EAAS,MAAM,GAAG,EAClC,EAAa,EAAc,IAAI,EAC/B,EAAc,CAChB,CACJ,EAAE,OAAO,CAAa,EAAE,KAAK,GAAG,EAC1B,EAAQ,EAAO,GAAU,MAAM,GAAG,EAClC,EAAa,EAAM,IAAI,EACvB,EAAc,EAAM,KAAK,GAAG,EAClC,GAAS,MAAM,EAAa,EAAY,EAAa,CAAU,CACnE,CAAC,CACL,CACA,SAAS,IAAkB,EAAO,CAC9B,MAAO,OAAQ,GAAS,aAAc,CAC1C,CA8FA,IAAI,GAA2B,IAAI,KA5FpB,CACX,aAAa,CACT,KAAK,YAAc,IAAI,GAAc,GAAmB,WAAY,EAAI,EACxE,KAAK,SAAW,IAAI,GAAcM,GAAS,UAAU,EACrD,KAAK,QAAU,IAAI,GAAc,OAAQ,SAAS,EAClD,KAAK,OAAS,IAAI,GAAc,GAAO,QAAQ,EAC/C,KAAK,iBAAmB,CACpB,KAAK,YACL,KAAK,OACL,KAAK,QACT,CACJ,CACH,IAAI,GAAG,EAAM,CACN,KAAK,MAAM,WAAY,CAAI,CAC/B,CACA,OAAO,GAAG,EAAM,CACZ,KAAK,MAAM,aAAc,CAAI,CACjC,CACH,eAAe,GAAG,EAAM,CACjB,KAAK,MAAM,WAAY,EAAM,KAAK,WAAW,CACjD,CACH,YAAY,GAAG,EAAM,CACd,KAAK,MAAM,WAAY,EAAM,KAAK,QAAQ,CAC9C,CACH,WAAW,GAAG,EAAM,CACb,KAAK,MAAM,WAAY,EAAM,KAAK,OAAO,CAC7C,CACH,UAAU,GAAG,EAAM,CACZ,KAAK,MAAM,WAAY,EAAM,KAAK,MAAM,CAC5C,CACH,cAAc,EAAI,CACX,OAAO,KAAK,KAAK,EAAI,KAAK,YAAa,YAAY,CACvD,CACH,WAAW,EAAI,CACR,OAAO,KAAK,KAAK,EAAI,KAAK,SAAU,SAAS,CACjD,CACH,UAAU,EAAI,CACP,OAAO,KAAK,KAAK,EAAI,KAAK,QAAS,QAAQ,CAC/C,CACH,SAAS,EAAI,CACN,OAAO,KAAK,KAAK,EAAI,KAAK,OAAQ,OAAO,CAC7C,CACH,kBAAkB,GAAG,EAAM,CACpB,KAAK,MAAM,aAAc,EAAM,KAAK,WAAW,CACnD,CACH,eAAe,GAAG,EAAM,CACjB,KAAK,MAAM,aAAc,EAAM,KAAK,QAAQ,CAChD,CACH,cAAc,GAAG,EAAM,CAChB,KAAK,MAAM,aAAc,EAAM,KAAK,OAAO,CAC/C,CACH,aAAa,GAAG,EAAM,CACf,KAAK,MAAM,aAAc,EAAM,KAAK,MAAM,CAC9C,CACH,MAAM,EAAQ,EAAM,EAAe,CAC5B,CACI,GAAG,CACP,EAAE,QAAS,GAAM,CACb,IAAM,EAAM,GAAiB,KAAK,oBAAoB,CAAG,EACrD,GAAiB,EAAI,UAAU,CAAG,GAAK,IAAQ,KAAK,SAAW,EAAI,GACnE,KAAK,MAAM,EAAQ,EAAK,CAAG,EAE3B,GAAK,EAAM,GAAO,CACd,IAAM,EAAU,GAAiB,KAAK,oBAAoB,CAAI,EAC9D,KAAK,MAAM,EAAQ,EAAS,CAAI,CACpC,CAAC,CAET,CAAC,CACL,CACH,MAAM,EAAQ,EAAU,EAAW,CAC5B,IAAM,EAAc,GAAY,CAAM,EACtC,GAAS,EAAU,SAAW,GAAc,CAAC,EAAG,CAAS,EACzD,EAAS,GAAQ,CAAS,EAC1B,GAAS,EAAU,QAAU,GAAc,CAAC,EAAG,CAAS,CAC5D,CACH,oBAAoB,EAAM,CACnB,IAAI,IAAI,EAAI,EAAG,EAAI,KAAK,iBAAiB,OAAQ,IAAI,CACjD,IAAM,EAAM,KAAK,iBAAiB,GAClC,GAAI,EAAI,UAAU,CAAI,EAClB,OAAO,CAEf,CACA,OAAO,KAAK,OAChB,CACH,KAAK,EAAI,EAAe,EAAM,CACvB,IAAM,EAAO,EAAc,IAAI,CAAE,EACjC,GAAI,IAAS,OACT,MAAU,MAAM,IAAM,EAAK,yBAA2B,EAAO,GAAG,EAEpE,OAAO,CACX,CACJ,EAGM,IAAN,KAAoB,CAChB,aAAa,CACT,KAAK,MAAQ,MACjB,CACH,OAAO,EAAO,EAAM,EAAM,EAAQ,CAK3B,GAJI,IAAS,eACT,KAAK,MAAQ,KAAK,mBAAmB,EAAO,EAAI,EAChD,KAAK,QAAQ,KAAK,MAAO,EAAO,SAAS,GAEzC,KAAK,QAAU,OACf,OAEJ,IAAM,EAAc,EAAS,KAAK,aAAa,CAAK,EAAE,OAAO,CAAM,EAAI,KAAK,aAAa,CAAK,EACxF,EAAS,KAAK,QAAQ,EAAa,EAAO,EAAM,CAAI,EAM1D,OALI,IAAS,iBACT,KAAK,QAAQ,EAAa,EAAO,MAAM,EACvC,KAAK,QAAQ,KAAK,MAAO,EAAO,WAAW,EAC3C,KAAK,MAAQ,QAEV,CACX,CACH,QAAQ,EAAa,EAAO,EAAM,EAAM,CACjC,IAAe,CAAC,EAChB,IAAK,IAAM,KAAc,EAAY,CACjC,IAAM,EAAS,EAAW,OACpB,EAAS,EAAO,GAMtB,GAAI,GAAS,EAAQ,CAJjB,EACA,EACA,EAAW,OAEW,EAAG,CAAM,IAAM,IAAS,EAAK,WACnD,MAAO,EAEf,CACA,MAAO,EACX,CACA,YAAa,CACJ,GAAc,KAAK,MAAM,IAC1B,KAAK,UAAY,KAAK,OACtB,KAAK,OAAS,OAEtB,CACH,aAAa,EAAO,CACb,GAAI,KAAK,OACL,OAAO,KAAK,OAEhB,IAAM,EAAc,KAAK,OAAS,KAAK,mBAAmB,CAAK,EAE/D,OADA,KAAK,oBAAoB,CAAK,EACvB,CACX,CACA,mBAAmB,EAAO,EAAK,CAC3B,IAAM,EAAS,GAAS,EAAM,OACxB,EAAU,GAAe,EAAO,SAAW,EAAO,QAAQ,QAAS,CAAC,CAAC,EACrE,EAAU,IAAW,CAAM,EACjC,OAAO,IAAY,IAAS,CAAC,EAAM,CAAC,EAAI,IAAkB,EAAO,EAAS,EAAS,CAAG,CAC1F,CACH,oBAAoB,EAAO,CACpB,IAAM,EAAsB,KAAK,WAAa,CAAC,EACzC,EAAc,KAAK,OACnB,GAAQ,EAAG,IAAI,EAAE,OAAQ,GAAI,CAAC,EAAE,KAAM,GAAI,EAAE,OAAO,KAAO,EAAE,OAAO,EAAE,CAAC,EAC5E,KAAK,QAAQ,EAAK,EAAqB,CAAW,EAAG,EAAO,MAAM,EAClE,KAAK,QAAQ,EAAK,EAAa,CAAmB,EAAG,EAAO,OAAO,CACvE,CACJ,EACC,SAAS,IAAW,EAAQ,CACzB,IAAM,EAAW,CAAC,EACZ,EAAU,CAAC,EACX,EAAO,OAAO,KAAK,GAAS,QAAQ,KAAK,EAC/C,IAAI,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAC5B,EAAQ,KAAK,GAAS,UAAU,EAAK,EAAE,CAAC,EAE5C,IAAM,EAAQ,EAAO,SAAW,CAAC,EACjC,IAAI,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAI,CACjC,IAAM,EAAS,EAAM,GACjB,EAAQ,QAAQ,CAAM,IAAM,KAC5B,EAAQ,KAAK,CAAM,EACnB,EAAS,EAAO,IAAM,GAE9B,CACA,MAAO,CACH,UACA,UACJ,CACJ,CACA,SAAS,IAAQ,EAAS,EAAK,CAO3B,MANI,CAAC,GAAO,IAAY,GACb,KAEP,IAAY,GACL,CAAC,EAEL,CACX,CACA,SAAS,IAAkB,EAAO,CAAE,UAAU,YAAa,EAAS,EAAK,CACrE,IAAM,EAAS,CAAC,EACV,EAAU,EAAM,WAAW,EACjC,IAAK,IAAM,KAAU,EAAQ,CACzB,IAAM,EAAK,EAAO,GACZ,EAAO,IAAQ,EAAQ,GAAK,CAAG,EACjC,IAAS,MAGb,EAAO,KAAK,CACR,SACA,QAAS,IAAW,EAAM,OAAQ,CAC9B,SACA,MAAO,EAAS,EACpB,EAAG,EAAM,CAAO,CACpB,CAAC,CACL,CACA,OAAO,CACX,CACA,SAAS,IAAW,EAAQ,CAAE,SAAS,SAAU,EAAM,EAAS,CAC5D,IAAM,EAAO,EAAO,gBAAgB,CAAM,EACpC,EAAS,EAAO,gBAAgB,EAAM,CAAI,EAIhD,OAHI,GAAS,EAAO,UAChB,EAAO,KAAK,EAAO,QAAQ,EAExB,EAAO,eAAe,EAAQ,EAAS,CAC1C,EACJ,EAAG,CACC,WAAY,GACZ,UAAW,GACX,QAAS,EACb,CAAC,CACL,CAEA,SAAS,GAAa,EAAM,EAAS,CACjC,IAAM,EAAkB,GAAS,SAAS,IAAS,CAAC,EAEpD,QADwB,EAAQ,UAAY,CAAC,GAAG,IAAS,CAAC,GACpC,WAAa,EAAQ,WAAa,EAAgB,WAAa,GACzF,CACA,SAAS,IAA0B,EAAI,EAAW,CAC9C,IAAI,EAAO,EAMX,OALI,IAAO,UACP,EAAO,EACA,IAAO,YACd,EAAO,IAAc,IAAM,IAAM,KAE9B,CACX,CACA,SAAS,IAA0B,EAAM,EAAW,CAChD,OAAO,IAAS,EAAY,UAAY,SAC5C,CACA,SAAS,GAAc,EAAI,CACvB,GAAI,IAAO,KAAO,IAAO,KAAO,IAAO,IACnC,OAAO,CAEf,CACA,SAAS,IAAiB,EAAU,CAChC,GAAI,IAAa,OAAS,IAAa,SACnC,MAAO,IAEX,GAAI,IAAa,QAAU,IAAa,QACpC,MAAO,GAEf,CACA,SAAS,GAAc,EAAI,GAAG,EAAc,CACxC,GAAI,GAAc,CAAE,EAChB,OAAO,EAEX,IAAK,IAAM,KAAQ,EAAa,CAC5B,IAAM,EAAO,EAAK,MAAQ,IAAiB,EAAK,QAAQ,GAAK,EAAG,OAAS,GAAK,GAAc,EAAG,GAAG,YAAY,CAAC,EAC/G,GAAI,EACA,OAAO,CAEf,CACA,MAAU,MAAM,6BAA6B,EAAG,oDAAoD,CACxG,CACA,SAAS,GAAmB,EAAI,EAAM,EAAS,CAC3C,GAAI,EAAQ,EAAO,YAAc,EAC7B,MAAO,CACH,MACJ,CAER,CACA,SAAS,IAAyB,EAAI,EAAQ,CAC1C,GAAI,EAAO,MAAQ,EAAO,KAAK,SAAU,CACrC,IAAM,EAAU,EAAO,KAAK,SAAS,OAAQ,GAAI,EAAE,UAAY,GAAM,EAAE,UAAY,CAAE,EACrF,GAAI,EAAQ,OACR,OAAO,GAAmB,EAAI,IAAK,EAAQ,EAAE,GAAK,GAAmB,EAAI,IAAK,EAAQ,EAAE,CAEhG,CACA,MAAO,CAAC,CACZ,CACA,SAAS,IAAiB,EAAQ,EAAS,CACvC,IAAM,EAAgB,GAAU,EAAO,OAAS,CAC5C,OAAQ,CAAC,CACb,EACM,EAAe,EAAQ,QAAU,CAAC,EAClC,EAAiB,GAAa,EAAO,KAAM,CAAO,EAClD,EAAS,OAAO,OAAO,IAAI,EA8CjC,OA7CA,OAAO,KAAK,CAAY,EAAE,QAAS,GAAK,CACpC,IAAM,EAAY,EAAa,GAC/B,GAAI,CAAClD,GAAS,CAAS,EACnB,OAAO,QAAQ,MAAM,0CAA0C,GAAI,EAEvE,GAAI,EAAU,OACV,OAAO,QAAQ,KAAK,kDAAkD,GAAI,EAE9E,IAAM,EAAO,GAAc,EAAI,EAAW,IAAyB,EAAI,CAAM,EAAG,GAAS,OAAO,EAAU,KAAK,EACzG,EAAY,IAA0B,EAAM,CAAc,EAC1D,EAAsB,EAAc,QAAU,CAAC,EACrD,EAAO,GAAM,GAAQ,OAAO,OAAO,IAAI,EAAG,CACtC,CACI,MACJ,EACA,EACA,EAAoB,GACpB,EAAoB,EACxB,CAAC,CACL,CAAC,EACD,EAAO,KAAK,SAAS,QAAS,GAAU,CACpC,IAAM,EAAO,EAAQ,MAAQ,EAAO,KAC9B,EAAY,EAAQ,WAAa,GAAa,EAAM,CAAO,EAE3D,GADkB,GAAU,IAAS,CAAC,GACA,QAAU,CAAC,EACvD,OAAO,KAAK,CAAmB,EAAE,QAAS,GAAY,CAClD,IAAM,EAAO,IAA0B,EAAW,CAAS,EACrD,EAAK,EAAQ,EAAO,WAAa,EACvC,EAAO,GAAM,EAAO,IAAO,OAAO,OAAO,IAAI,EAC7C,GAAQ,EAAO,GAAK,CAChB,CACI,MACJ,EACA,EAAa,GACb,EAAoB,EACxB,CAAC,CACL,CAAC,CACL,CAAC,EACD,OAAO,KAAK,CAAM,EAAE,QAAS,GAAM,CAC/B,IAAM,EAAQ,EAAO,GACrB,GAAQ,EAAO,CACX,GAAS,OAAO,EAAM,MACtB,GAAS,KACb,CAAC,CACL,CAAC,EACM,CACX,CACA,SAAS,GAAY,EAAQ,CACzB,IAAM,EAAU,CAAmB,CAAO,UAAU,CAAC,EACrD,EAAQ,QAAU,GAAe,EAAQ,QAAS,CAAC,CAAC,EACpD,EAAQ,OAAS,IAAiB,EAAQ,CAAO,CACrD,CACA,SAAS,GAAS,EAAM,CAIpB,MAHA,KAAe,CAAC,EAChB,EAAK,SAAW,EAAK,UAAY,CAAC,EAClC,EAAK,OAAS,EAAK,QAAU,CAAC,EACvB,CACX,CACA,SAAS,IAAW,EAAQ,CAIxB,MAHA,KAAmB,CAAC,EACpB,EAAO,KAAO,GAAS,EAAO,IAAI,EAClC,GAAY,CAAM,EACX,CACX,CACA,IAAM,GAAW,IAAI,IACf,GAAa,IAAI,IACvB,SAAS,GAAW,EAAU,EAAU,CACpC,IAAI,EAAO,GAAS,IAAI,CAAQ,EAMhC,OALK,IACD,EAAO,EAAS,EAChB,GAAS,IAAI,EAAU,CAAI,EAC3B,GAAW,IAAI,CAAI,GAEhB,CACX,CACA,IAAM,IAAc,EAAK,EAAK,IAAM,CAChC,IAAM,EAAO,GAAiB,EAAK,CAAG,EAClC,IAAS,QACT,EAAI,IAAI,CAAI,CAEpB,EACM,IAAN,KAAa,CACT,YAAY,EAAO,CACf,KAAK,QAAU,IAAW,CAAM,EAChC,KAAK,YAAc,IAAI,IACvB,KAAK,eAAiB,IAAI,GAC9B,CACA,IAAI,UAAW,CACX,OAAO,KAAK,QAAQ,QACxB,CACA,IAAI,MAAO,CACP,OAAO,KAAK,QAAQ,IACxB,CACA,IAAI,KAAK,EAAM,CACX,KAAK,QAAQ,KAAO,CACxB,CACA,IAAI,MAAO,CACP,OAAO,KAAK,QAAQ,IACxB,CACA,IAAI,KAAK,EAAM,CACX,KAAK,QAAQ,KAAO,GAAS,CAAI,CACrC,CACA,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,OACxB,CACA,IAAI,QAAQ,EAAS,CACjB,KAAK,QAAQ,QAAU,CAC3B,CACA,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,OACxB,CACA,QAAS,CACL,IAAM,EAAS,KAAK,QACpB,KAAK,WAAW,EAChB,GAAY,CAAM,CACtB,CACA,YAAa,CACT,KAAK,YAAY,MAAM,EACvB,KAAK,eAAe,MAAM,CAC9B,CACH,iBAAiB,EAAa,CACvB,OAAO,GAAW,MAAiB,CAC3B,CACI,YAAY,IACZ,EACJ,CACJ,CAAC,CACT,CACH,0BAA0B,EAAa,EAAY,CAC5C,OAAO,GAAW,GAAG,EAAY,cAAc,QAAkB,CACzD,CACI,YAAY,EAAY,eAAe,IACvC,eAAe,GACnB,EACA,CACI,YAAY,IACZ,EACJ,CACJ,CAAC,CACT,CACH,wBAAwB,EAAa,EAAa,CAC3C,OAAO,GAAW,GAAG,EAAY,GAAG,QAAmB,CAC/C,CACI,YAAY,EAAY,YAAY,IACpC,YAAY,IACZ,YAAY,IACZ,EACJ,CACJ,CAAC,CACT,CACH,gBAAgB,EAAQ,CACjB,IAAM,EAAK,EAAO,GACZ,EAAO,KAAK,KAClB,OAAO,GAAW,GAAG,EAAK,UAAU,QAAU,CACtC,CACI,WAAW,IACX,GAAG,EAAO,wBAA0B,CAAC,CACzC,CACJ,CAAC,CACT,CACH,cAAc,EAAW,EAAY,CAC9B,IAAM,EAAc,KAAK,YACrB,EAAQ,EAAY,IAAI,CAAS,EAKrC,OAJI,CAAC,GAAS,KACV,EAAQ,IAAI,IACZ,EAAY,IAAI,EAAW,CAAK,GAE7B,CACX,CACH,gBAAgB,EAAW,EAAU,EAAY,CAC1C,GAAM,CAAE,UAAU,QAAU,KACtB,EAAQ,KAAK,cAAc,EAAW,CAAU,EAChD,EAAS,EAAM,IAAI,CAAQ,EACjC,GAAI,EACA,OAAO,EAEX,IAAM,EAAS,IAAI,IACnB,EAAS,QAAS,GAAO,CACjB,IACA,EAAO,IAAI,CAAS,EACpB,EAAK,QAAS,GAAM,GAAW,EAAQ,EAAW,CAAG,CAAC,GAE1D,EAAK,QAAS,GAAM,GAAW,EAAQ,EAAS,CAAG,CAAC,EACpD,EAAK,QAAS,GAAM,GAAW,EAAQ,GAAU,IAAS,CAAC,EAAG,CAAG,CAAC,EAClE,EAAK,QAAS,GAAM,GAAW,EAAQ,GAAU,CAAG,CAAC,EACrD,EAAK,QAAS,GAAM,GAAW,EAAQ,GAAa,CAAG,CAAC,CAC5D,CAAC,EACD,IAAM,EAAQ,MAAM,KAAK,CAAM,EAO/B,OANI,EAAM,SAAW,GACjB,EAAM,KAAK,OAAO,OAAO,IAAI,CAAC,EAE9B,GAAW,IAAI,CAAQ,GACvB,EAAM,IAAI,EAAU,CAAK,EAEtB,CACX,CACH,mBAAoB,CACb,GAAM,CAAE,UAAU,QAAU,KAC5B,MAAO,CACH,EACA,GAAU,IAAS,CAAC,EACpB,GAAS,SAAS,IAAS,CAAC,EAC5B,CACI,MACJ,EACA,GACA,EACJ,CACJ,CACH,oBAAoB,EAAQ,EAAO,EAAS,EAAW,CAChD,EACJ,EAAG,CACC,IAAM,EAAS,CACX,QAAS,EACb,EACM,CAAE,WAAW,eAAiB,GAAY,KAAK,eAAgB,EAAQ,CAAQ,EACjF,EAAU,EACd,GAAI,IAAY,EAAU,CAAK,EAAG,CAC9B,EAAO,QAAU,GACjB,EAAU6C,GAAW,CAAO,EAAI,EAAQ,EAAI,EAC5C,IAAM,EAAc,KAAK,eAAe,EAAQ,EAAS,CAAW,EACpE,EAAU,GAAe,EAAU,EAAS,CAAW,CAC3D,CACA,IAAK,IAAM,KAAQ,EACf,EAAO,GAAQ,EAAQ,GAE3B,OAAO,CACX,CACH,eAAe,EAAQ,EAAS,EAAW,CACpC,EACJ,EAAG,EAAoB,CACnB,GAAM,CAAE,YAAc,GAAY,KAAK,eAAgB,EAAQ,CAAQ,EACvE,OAAO7C,GAAS,CAAO,EAAI,GAAe,EAAU,EAAS,OAAW,CAAkB,EAAI,CAClG,CACJ,EACA,SAAS,GAAY,EAAe,EAAQ,EAAU,CAClD,IAAI,EAAQ,EAAc,IAAI,CAAM,EAC/B,IACD,EAAQ,IAAI,IACZ,EAAc,IAAI,EAAQ,CAAK,GAEnC,IAAM,EAAW,EAAS,KAAK,EAC3B,EAAS,EAAM,IAAI,CAAQ,EAS/B,OARK,IAED,EAAS,CACL,SAFa,GAAgB,EAAQ,CAE9B,EACP,YAAa,EAAS,OAAQ,GAAI,CAAC,EAAE,YAAY,EAAE,SAAS,OAAO,CAAC,CACxE,EACA,EAAM,IAAI,EAAU,CAAM,GAEvB,CACX,CACA,IAAM,IAAe,GAAQA,GAAS,CAAK,GAAK,OAAO,oBAAoB,CAAK,EAAE,KAAM,GAAM6C,GAAW,EAAM,EAAI,CAAC,EACpH,SAAS,IAAY,EAAO,EAAO,CAC/B,GAAM,CAAE,eAAe,eAAiB,GAAa,CAAK,EAC1D,IAAK,IAAM,KAAQ,EAAM,CACrB,IAAM,EAAa,EAAa,CAAI,EAC9B,EAAY,EAAY,CAAI,EAC5B,GAAS,GAAa,IAAe,EAAM,GACjD,GAAI,IAAeA,GAAW,CAAK,GAAK,IAAY,CAAK,IAAM,GAAa,GAAQ,CAAK,EACrF,MAAO,EAEf,CACA,MAAO,EACX,CAEA,IAAIM,IAAU,QAER,IAAkB,CACpB,MACA,SACA,OACA,QACA,WACJ,EACA,SAAS,GAAqB,EAAU,EAAM,CAC1C,OAAO,IAAa,OAAS,IAAa,UAAY,IAAgB,QAAQ,CAAQ,IAAM,IAAM,IAAS,GAC/G,CACA,SAAS,GAAc,EAAI,EAAI,CAC3B,OAAO,SAAS,EAAG,EAAG,CAClB,OAAO,EAAE,KAAQ,EAAE,GAAM,EAAE,GAAM,EAAE,GAAM,EAAE,GAAM,EAAE,EACvD,CACJ,CACA,SAAS,GAAqB,EAAS,CACnC,IAAM,EAAQ,EAAQ,MAChB,EAAmB,EAAM,QAAQ,UACvC,EAAM,cAAc,aAAa,EACjC,GAAS,GAAoB,EAAiB,WAAY,CACtD,CACJ,EAAG,CAAK,CACZ,CACA,SAAS,IAAoB,EAAS,CAClC,IAAM,EAAQ,EAAQ,MAChB,EAAmB,EAAM,QAAQ,UACvC,GAAS,GAAoB,EAAiB,WAAY,CACtD,CACJ,EAAG,CAAK,CACZ,CACC,SAAS,GAAU,EAAM,CAStB,OARI,GAAgB,GAAK,OAAO,GAAS,SACrC,EAAO,SAAS,eAAe,CAAI,EAC5B,GAAQ,EAAK,SACpB,EAAO,EAAK,IAEZ,GAAQ,EAAK,SACb,EAAO,EAAK,QAET,CACX,CACA,IAAM,GAAY,CAAC,EACb,GAAY,GAAM,CACpB,IAAM,EAAS,GAAU,CAAG,EAC5B,OAAO,OAAO,OAAO,EAAS,EAAE,OAAQ,GAAI,EAAE,SAAW,CAAM,EAAE,IAAI,CACzE,EACA,SAAS,IAAgB,EAAK,EAAO,EAAM,CACvC,IAAM,EAAO,OAAO,KAAK,CAAG,EAC5B,IAAK,IAAM,KAAO,EAAK,CACnB,IAAM,EAAS,CAAC,EAChB,GAAI,GAAU,EAAO,CACjB,IAAM,EAAQ,EAAI,GAClB,OAAO,EAAI,IACP,EAAO,GAAK,EAAS,KACrB,EAAI,EAAS,GAAQ,EAE7B,CACJ,CACJ,CACC,SAAS,IAAmB,EAAG,EAAW,EAAa,EAAS,CAO7D,MANI,CAAC,GAAe,EAAE,OAAS,WACpB,KAEP,EACO,EAEJ,CACX,CACA,IAAM,GAAN,KAAY,CACR,OAAO,SAAW,GAClB,OAAO,UAAY,GACnB,OAAO,UAAY,GACnB,OAAO,SAAW,GAClB,OAAO,QAAUA,IACjB,OAAO,SAAW,GAClB,OAAO,SAAS,GAAG,EAAO,CACtB,GAAS,IAAI,GAAG,CAAK,EACrB,GAAkB,CACtB,CACA,OAAO,WAAW,GAAG,EAAO,CACxB,GAAS,OAAO,GAAG,CAAK,EACxB,GAAkB,CACtB,CACA,YAAY,EAAM,EAAW,CACzB,IAAM,EAAS,KAAK,OAAS,IAAI,IAAO,CAAU,EAC5C,EAAgB,GAAU,CAAI,EAC9B,EAAgB,GAAS,CAAa,EAC5C,GAAI,EACA,MAAU,MAAM,4CAA+C,EAAc,GAAK,kDAA2D,EAAc,OAAO,GAAK,kBAAmB,EAE9L,IAAM,EAAU,EAAO,eAAe,EAAO,kBAAkB,EAAG,KAAK,WAAW,CAAC,EACnF,KAAK,SAAW,IAAK,EAAO,WAAY,IAAgB,CAAa,IACrE,KAAK,SAAS,aAAa,CAAM,EACjC,IAAM,EAAU,KAAK,SAAS,eAAe,EAAe,EAAQ,WAAW,EACzE,EAAS,GAAW,EAAQ,OAC5B,EAAS,GAAU,EAAO,OAC1B,EAAQ,GAAU,EAAO,MA6B/B,GA5BA,KAAK,GAAK9J,IAAI,EACd,KAAK,IAAM,EACX,KAAK,OAAS,EACd,KAAK,MAAQ,EACb,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,aAAe,KAAK,YACzB,KAAK,QAAU,CAAC,EAChB,KAAK,UAAY,CAAC,EAClB,KAAK,QAAU,OACf,KAAK,MAAQ,CAAC,EACd,KAAK,wBAA0B,OAC/B,KAAK,UAAY,OACjB,KAAK,QAAU,CAAC,EAChB,KAAK,WAAa,OAClB,KAAK,WAAa,CAAC,EAClB,KAAK,qBAAuB,OAC7B,KAAK,gBAAkB,CAAC,EACxB,KAAK,OAAS,CAAC,EACf,KAAK,SAAW,IAAI,IACpB,KAAK,SAAW,CAAC,EACjB,KAAK,eAAiB,CAAC,EACvB,KAAK,SAAW,GAChB,KAAK,oBAAsB,OAC3B,KAAK,SAAW,OAChB,KAAK,UAAYgG,IAAU,GAAO,KAAK,OAAO,CAAI,EAAG,EAAQ,aAAe,CAAC,EAC7E,KAAK,aAAe,CAAC,EACrB,GAAU,KAAK,IAAM,KACjB,CAAC,GAAW,CAAC,EAAQ,CACrB,QAAQ,MAAM,mEAAmE,EACjF,MACJ,CACA,GAAS,OAAO,KAAM,WAAY,EAAoB,EACtD,GAAS,OAAO,KAAM,WAAY,GAAmB,EACrD,KAAK,YAAY,EACb,KAAK,UACL,KAAK,OAAO,CAEpB,CACA,IAAI,aAAc,CACd,GAAM,CAAE,QAAS,CAAE,cAAc,uBAAyB,QAAQ,SAAS,gBAAkB,KAO7F,OANK,GAAc,CAAW,EAG1B,GAAuB,EAChB,EAEJ,EAAS,EAAQ,EAAS,KALtB,CAMf,CACA,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,IACvB,CACA,IAAI,KAAK,EAAM,CACX,KAAK,OAAO,KAAO,CACvB,CACA,IAAI,SAAU,CACV,OAAO,KAAK,QAChB,CACA,IAAI,QAAQ,EAAS,CACjB,KAAK,OAAO,QAAU,CAC1B,CACA,IAAI,UAAW,CACX,OAAO,EACX,CACH,aAAc,CASP,OARA,KAAK,cAAc,YAAY,EAC3B,KAAK,QAAQ,WACb,KAAK,OAAO,EAEZ,GAAY,KAAM,KAAK,QAAQ,gBAAgB,EAEnD,KAAK,WAAW,EAChB,KAAK,cAAc,WAAW,EACvB,IACX,CACA,OAAQ,CAEJ,OADA,GAAY,KAAK,OAAQ,KAAK,GAAG,EAC1B,IACX,CACA,MAAO,CAEH,OADA,GAAS,KAAK,IAAI,EACX,IACX,CACH,OAAO,EAAO,EAAQ,CACV,GAAS,QAAQ,IAAI,EAGtB,KAAK,kBAAoB,CACrB,QACA,QACJ,EALA,KAAK,QAAQ,EAAO,CAAM,CAOlC,CACA,QAAQ,EAAO,EAAQ,CACnB,IAAM,EAAU,KAAK,QACf,EAAS,KAAK,OACd,EAAc,EAAQ,qBAAuB,KAAK,YAClD,EAAU,KAAK,SAAS,eAAe,EAAQ,EAAO,EAAQ,CAAW,EACzE,EAAW,EAAQ,kBAAoB,KAAK,SAAS,oBAAoB,EACzE,EAAO,KAAK,MAAQ,SAAW,SACrC,KAAK,MAAQ,EAAQ,MACrB,KAAK,OAAS,EAAQ,OACtB,KAAK,aAAe,KAAK,YACpB,GAAY,KAAM,EAAU,EAAI,IAGrC,KAAK,cAAc,SAAU,CACzB,KAAM,CACV,CAAC,EACD,GAAS,EAAQ,SAAU,CACvB,KACA,CACJ,EAAG,IAAI,EACH,KAAK,UACD,KAAK,UAAU,CAAI,GACnB,KAAK,OAAO,EAGxB,CACA,qBAAsB,CAGlB,GAFgB,KAAK,QACS,QAAU,CAAC,GACpB,EAAa,IAAS,CACvC,EAAY,GAAK,CACrB,CAAC,CACL,CACH,qBAAsB,CACf,IAAM,EAAU,KAAK,QACf,EAAY,EAAQ,OACpB,EAAS,KAAK,OACd,EAAU,OAAO,KAAK,CAAM,EAAE,QAAQ,EAAK,KAC7C,EAAI,GAAM,GACH,GACR,CAAC,CAAC,EACD,EAAQ,CAAC,EACT,IACA,EAAQ,EAAM,OAAO,OAAO,KAAK,CAAS,EAAE,IAAK,GAAK,CAClD,IAAM,EAAe,EAAU,GACzB,EAAO,GAAc,EAAI,CAAY,EACrC,EAAW,IAAS,IACpB,EAAe,IAAS,IAC9B,MAAO,CACH,QAAS,EACT,UAAW,EAAW,YAAc,EAAe,SAAW,OAC9D,MAAO,EAAW,eAAiB,EAAe,WAAa,QACnE,CACJ,CAAC,CAAC,GAEN,GAAK,EAAQ,GAAO,CAChB,IAAM,EAAe,EAAK,QACpB,EAAK,EAAa,GAClB,EAAO,GAAc,EAAI,CAAY,EACrC,EAAY,GAAe,EAAa,KAAM,EAAK,KAAK,GAC1D,EAAa,WAAa,QAAa,GAAqB,EAAa,SAAU,CAAI,IAAM,GAAqB,EAAK,SAAS,KAChI,EAAa,SAAW,EAAK,WAEjC,EAAQ,GAAM,GACd,IAAI,EAAQ,KACR,KAAM,GAAU,EAAO,GAAI,OAAS,EACpC,EAAQ,EAAO,IAGf,EAAQ,IADW,GAAS,SAAS,CAChB,GAAE,CACnB,KACA,KAAM,EACN,IAAK,KAAK,IACV,MAAO,IACX,CAAC,EACD,EAAO,EAAM,IAAM,GAEvB,EAAM,KAAK,EAAc,CAAO,CACpC,CAAC,EACD,GAAK,GAAU,EAAY,IAAK,CACvB,GACD,OAAO,EAAO,EAEtB,CAAC,EACD,GAAK,EAAS,GAAQ,CAClB,GAAQ,UAAU,KAAM,EAAO,EAAM,OAAO,EAC5C,GAAQ,OAAO,KAAM,CAAK,CAC9B,CAAC,CACL,CACH,iBAAkB,CACX,IAAM,EAAW,KAAK,UAChB,EAAU,KAAK,KAAK,SAAS,OAC7B,EAAU,EAAS,OAEzB,GADA,EAAS,MAAM,EAAG,IAAI,EAAE,MAAQ,EAAE,KAAK,EACnC,EAAU,EAAS,CACnB,IAAI,IAAI,EAAI,EAAS,EAAI,EAAS,EAAE,EAChC,KAAK,oBAAoB,CAAC,EAE9B,EAAS,OAAO,EAAS,EAAU,CAAO,CAC9C,CACA,KAAK,gBAAkB,EAAS,MAAM,CAAC,EAAE,KAAK,GAAc,QAAS,OAAO,CAAC,CACjF,CACH,6BAA8B,CACvB,GAAM,CAAE,UAAW,EAAW,KAAM,CAAE,aAAiB,KACnD,EAAS,OAAS,EAAS,QAC3B,OAAO,KAAK,QAEhB,EAAS,SAAS,EAAM,IAAQ,CACxB,EAAS,OAAQ,GAAI,IAAM,EAAK,QAAQ,EAAE,SAAW,GACrD,KAAK,oBAAoB,CAAK,CAEtC,CAAC,CACL,CACA,0BAA2B,CACvB,IAAM,EAAiB,CAAC,EAClB,EAAW,KAAK,KAAK,SACvB,EAAG,EAEP,IADA,KAAK,4BAA4B,EAC7B,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,IAAI,CAC7C,IAAM,EAAU,EAAS,GACrB,EAAO,KAAK,eAAe,CAAC,EAC1B,EAAO,EAAQ,MAAQ,KAAK,OAAO,KAWzC,GAVI,EAAK,MAAQ,EAAK,OAAS,IAC3B,KAAK,oBAAoB,CAAC,EAC1B,EAAO,KAAK,eAAe,CAAC,GAEhC,EAAK,KAAO,EACZ,EAAK,UAAY,EAAQ,WAAa,GAAa,EAAM,KAAK,OAAO,EACrE,EAAK,MAAQ,EAAQ,OAAS,EAC9B,EAAK,MAAQ,EACb,EAAK,MAAQ,GAAK,EAAQ,MAC1B,EAAK,QAAU,KAAK,iBAAiB,CAAC,EAClC,EAAK,WACL,EAAK,WAAW,YAAY,CAAC,EAC7B,EAAK,WAAW,WAAW,MACxB,CACH,IAAM,EAAkB,GAAS,cAAc,CAAI,EAC7C,CAAE,qBAAqB,mBAAqB,GAAS,SAAS,GACpE,OAAO,OAAO,EAAiB,CAC3B,gBAAiB,GAAS,WAAW,CAAe,EACpD,mBAAoB,GAAsB,GAAS,WAAW,CAAkB,CACpF,CAAC,EACD,EAAK,WAAa,IAAI,EAAgB,KAAM,CAAC,EAC7C,EAAe,KAAK,EAAK,UAAU,CACvC,CACJ,CAEA,OADA,KAAK,gBAAgB,EACd,CACX,CACH,gBAAiB,CACV,GAAK,KAAK,KAAK,UAAW,EAAS,IAAe,CAC9C,KAAK,eAAe,CAAY,EAAE,WAAW,MAAM,CACvD,EAAG,IAAI,CACX,CACH,OAAQ,CACD,KAAK,eAAe,EACpB,KAAK,cAAc,OAAO,CAC9B,CACA,OAAO,EAAM,CACT,IAAM,EAAS,KAAK,OACpB,EAAO,OAAO,EACd,IAAM,EAAU,KAAK,SAAW,EAAO,eAAe,EAAO,kBAAkB,EAAG,KAAK,WAAW,CAAC,EAC7F,EAAgB,KAAK,oBAAsB,CAAC,EAAQ,UAK1D,GAJA,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,WAAW,EACrB,KAAK,cAAc,eAAgB,CACnC,OACA,WAAY,EAChB,CAAC,IAAM,GACH,OAEJ,IAAM,EAAiB,KAAK,yBAAyB,EACrD,KAAK,cAAc,sBAAsB,EACzC,IAAI,EAAa,EACjB,IAAI,IAAI,EAAI,EAAG,EAAO,KAAK,KAAK,SAAS,OAAQ,EAAI,EAAM,IAAI,CAC3D,GAAM,CAAE,cAAgB,KAAK,eAAe,CAAC,EACvC,EAAQ,CAAC,GAAiB,EAAe,QAAQ,CAAU,IAAM,GACvE,EAAW,sBAAsB,CAAK,EACtC,EAAa,KAAK,IAAI,CAAC,EAAW,eAAe,EAAG,CAAU,CAClE,CACA,EAAa,KAAK,YAAc,EAAQ,OAAO,YAAc,EAAa,EAC1E,KAAK,cAAc,CAAU,EACxB,GACD,GAAK,EAAiB,GAAa,CAC/B,EAAW,MAAM,CACrB,CAAC,EAEL,KAAK,gBAAgB,CAAI,EACzB,KAAK,cAAc,cAAe,CAC9B,MACJ,CAAC,EACD,KAAK,QAAQ,KAAK,GAAc,IAAK,MAAM,CAAC,EAC5C,GAAM,CAAE,UAAU,cAAgB,KAC9B,EACA,KAAK,cAAc,EAAY,EAAI,EAC5B,EAAQ,QACf,KAAK,mBAAmB,EAAS,EAAS,EAAI,EAElD,KAAK,OAAO,CAChB,CACH,eAAgB,CACT,GAAK,KAAK,OAAS,GAAQ,CACvB,GAAQ,UAAU,KAAM,CAAK,CACjC,CAAC,EACD,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,CAC7B,CACH,qBAAsB,CACf,IAAM,EAAU,KAAK,SAGjB,CAAC,GAAU,IAFY,IAAI,OAAO,KAAK,KAAK,UAAU,CAE9B,EAAG,IADT,IAAI,EAAQ,MACK,CAAC,GAAK,CAAC,CAAC,KAAK,uBAAyB,EAAQ,cACjF,KAAK,aAAa,EAClB,KAAK,WAAW,EAExB,CACH,sBAAuB,CAChB,GAAM,CAAE,kBAAoB,KACtB,EAAU,KAAK,uBAAuB,GAAK,CAAC,EAClD,IAAK,GAAM,CAAE,SAAS,QAAQ,WAAY,EAEtC,IAAgB,EAAgB,EADnB,IAAW,kBAAoB,CAAC,EAAQ,CACV,CAEnD,CACH,wBAAyB,CAClB,IAAM,EAAe,KAAK,aAC1B,GAAI,CAAC,GAAgB,CAAC,EAAa,OAC/B,OAEJ,KAAK,aAAe,CAAC,EACrB,IAAM,EAAe,KAAK,KAAK,SAAS,OAClC,EAAW,GAAM,IAAI,IAAI,EAAa,OAAQ,GAAI,EAAE,KAAO,CAAG,EAAE,KAAK,EAAG,IAAI,EAAI,IAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAC5G,EAAY,EAAQ,CAAC,EAC3B,IAAI,IAAI,EAAI,EAAG,EAAI,EAAc,IAC7B,GAAI,CAAC,GAAU,EAAW,EAAQ,CAAC,CAAC,EAChC,OAGR,OAAO,MAAM,KAAK,CAAS,EAAE,IAAK,GAAI,EAAE,MAAM,GAAG,CAAC,EAAE,IAAK,IAAK,CACtD,OAAQ,EAAE,GACV,MAAO,CAAC,EAAE,GACV,MAAO,CAAC,EAAE,EACd,EAAE,CACV,CACH,cAAc,EAAY,CACnB,GAAI,KAAK,cAAc,eAAgB,CACnC,WAAY,EAChB,CAAC,IAAM,GACH,OAEJ,GAAQ,OAAO,KAAM,KAAK,MAAO,KAAK,OAAQ,CAAU,EACxD,IAAM,EAAO,KAAK,UACZ,EAAS,EAAK,OAAS,GAAK,EAAK,QAAU,EACjD,KAAK,QAAU,CAAC,EAChB,GAAK,KAAK,MAAQ,GAAM,CAChB,GAAU,EAAI,WAAa,cAG3B,EAAI,WACJ,EAAI,UAAU,EAElB,KAAK,QAAQ,KAAK,GAAG,EAAI,QAAQ,CAAC,EACtC,EAAG,IAAI,EACP,KAAK,QAAQ,SAAS,EAAM,IAAQ,CAChC,EAAK,KAAO,CAChB,CAAC,EACD,KAAK,cAAc,aAAa,CACpC,CACH,gBAAgB,EAAM,CACX,QAAK,cAAc,uBAAwB,CAC3C,OACA,WAAY,EAChB,CAAC,IAAM,GAGP,KAAI,IAAI,EAAI,EAAG,EAAO,KAAK,KAAK,SAAS,OAAQ,EAAI,EAAM,EAAE,EACzD,KAAK,eAAe,CAAC,EAAE,WAAW,UAAU,EAEhD,IAAI,IAAI,EAAI,EAAG,EAAO,KAAK,KAAK,SAAS,OAAQ,EAAI,EAAM,EAAE,EACzD,KAAK,eAAe,EAAGwD,GAAW,CAAI,EAAI,EAAK,CAC3C,aAAc,CAClB,CAAC,EAAI,CAAI,EAEb,KAAK,cAAc,sBAAuB,CACtC,MACJ,CAAC,CAT+C,CAUpD,CACH,eAAe,EAAO,EAAM,CACrB,IAAM,EAAO,KAAK,eAAe,CAAK,EAChC,EAAO,CACT,OACA,QACA,OACA,WAAY,EAChB,EACI,KAAK,cAAc,sBAAuB,CAAI,IAAM,KAGxD,EAAK,WAAW,QAAQ,CAAI,EAC5B,EAAK,WAAa,GAClB,KAAK,cAAc,qBAAsB,CAAI,EACjD,CACA,QAAS,CACD,KAAK,cAAc,eAAgB,CACnC,WAAY,EAChB,CAAC,IAAM,KAGH,GAAS,IAAI,IAAI,EACb,KAAK,UAAY,CAAC,GAAS,QAAQ,IAAI,GACvC,GAAS,MAAM,IAAI,GAGvB,KAAK,KAAK,EACV,GAAqB,CACjB,MAAO,IACX,CAAC,GAET,CACA,MAAO,CACH,IAAI,EACJ,GAAI,KAAK,kBAAmB,CACxB,GAAM,CAAE,QAAQ,UAAY,KAAK,kBACjC,KAAK,kBAAoB,KACzB,KAAK,QAAQ,EAAO,CAAM,CAC9B,CAKA,GAJA,KAAK,MAAM,EACP,KAAK,OAAS,GAAK,KAAK,QAAU,GAGlC,KAAK,cAAc,aAAc,CACjC,WAAY,EAChB,CAAC,IAAM,GACH,OAEJ,IAAM,EAAS,KAAK,QACpB,IAAI,EAAI,EAAG,EAAI,EAAO,QAAU,EAAO,GAAG,GAAK,EAAG,EAAE,EAChD,EAAO,GAAG,KAAK,KAAK,SAAS,EAGjC,IADA,KAAK,cAAc,EACb,EAAI,EAAO,OAAQ,EAAE,EACvB,EAAO,GAAG,KAAK,KAAK,SAAS,EAEjC,KAAK,cAAc,WAAW,CAClC,CACH,uBAAuB,EAAe,CAC/B,IAAM,EAAW,KAAK,gBAChB,EAAS,CAAC,EACZ,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC7C,IAAM,EAAO,EAAS,IAClB,CAAC,GAAiB,EAAK,UACvB,EAAO,KAAK,CAAI,CAExB,CACA,OAAO,CACX,CACH,8BAA+B,CACxB,OAAO,KAAK,uBAAuB,EAAI,CAC3C,CACH,eAAgB,CACT,GAAI,KAAK,cAAc,qBAAsB,CACzC,WAAY,EAChB,CAAC,IAAM,GACH,OAEJ,IAAM,EAAW,KAAK,6BAA6B,EACnD,IAAI,IAAI,EAAI,EAAS,OAAS,EAAG,GAAK,EAAG,EAAE,EACvC,KAAK,aAAa,EAAS,EAAE,EAEjC,KAAK,cAAc,mBAAmB,CAC1C,CACH,aAAa,EAAM,CACZ,IAAM,EAAM,KAAK,IACX,EAAO,CACT,OACA,MAAO,EAAK,MACZ,WAAY,EAChB,EACM,EAAO,GAAmB,KAAM,CAAI,EACtC,KAAK,cAAc,oBAAqB,CAAI,IAAM,KAGlD,GACA,GAAS,EAAK,CAAI,EAEtB,EAAK,WAAW,KAAK,EACjB,GACA,GAAW,CAAG,EAElB,EAAK,WAAa,GAClB,KAAK,cAAc,mBAAoB,CAAI,EAC/C,CACH,cAAc,EAAO,CACd,OAAO,GAAe,EAAO,KAAK,UAAW,KAAK,WAAW,CACjE,CACA,0BAA0B,EAAG,EAAM,EAAS,EAAkB,CAC1D,IAAM,EAAS,IAAY,MAAM,GAIjC,OAHI,OAAO,GAAW,WACX,EAAO,KAAM,EAAG,EAAS,CAAgB,EAE7C,CAAC,CACZ,CACA,eAAe,EAAc,CACzB,IAAM,EAAU,KAAK,KAAK,SAAS,GAC7B,EAAW,KAAK,UAClB,EAAO,EAAS,OAAQ,GAAI,GAAK,EAAE,WAAa,CAAO,EAAE,IAAI,EAkBjE,OAjBK,IACD,EAAO,CACH,KAAM,KACN,KAAM,CAAC,EACP,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,QAAS,KACT,QAAS,KACT,MAAO,GAAW,EAAQ,OAAS,EACnC,MAAO,EACP,SAAU,EACV,QAAS,CAAC,EACV,QAAS,EACb,EACA,EAAS,KAAK,CAAI,GAEf,CACX,CACA,YAAa,CACT,MAAO,CAAkB,KAAK,WAAW,GAAc,KAAM,CACzD,MAAO,KACP,KAAM,OACV,CAAC,CACL,CACA,wBAAyB,CACrB,OAAO,KAAK,6BAA6B,EAAE,MAC/C,CACA,iBAAiB,EAAc,CAC3B,IAAM,EAAU,KAAK,KAAK,SAAS,GACnC,GAAI,CAAC,EACD,MAAO,GAEX,IAAM,EAAO,KAAK,eAAe,CAAY,EAC7C,OAAO,OAAO,EAAK,QAAW,UAAY,CAAC,EAAK,OAAS,CAAC,EAAQ,MACtE,CACA,qBAAqB,EAAc,EAAS,CACxC,IAAM,EAAO,KAAK,eAAe,CAAY,EAC7C,EAAK,OAAS,CAAC,CACnB,CACA,qBAAqB,EAAO,CACxB,KAAK,eAAe,GAAS,CAAC,KAAK,eAAe,EACtD,CACA,kBAAkB,EAAO,CACrB,MAAO,CAAC,KAAK,eAAe,EAChC,CACH,kBAAkB,EAAc,EAAW,EAAS,CAC7C,IAAM,EAAO,EAAU,OAAS,OAC1B,EAAO,KAAK,eAAe,CAAY,EACvC,EAAQ,EAAK,WAAW,mBAAmB,OAAW,CAAI,EAC5D,GAAQ,CAAS,GACjB,EAAK,KAAK,GAAW,OAAS,CAAC,EAC/B,KAAK,OAAO,IAEZ,KAAK,qBAAqB,EAAc,CAAO,EAC/C,EAAM,OAAO,EAAM,CACf,SACJ,CAAC,EACD,KAAK,OAAQ,GAAM,EAAI,eAAiB,EAAe,EAAO,MAAS,EAE/E,CACA,KAAK,EAAc,EAAW,CAC1B,KAAK,kBAAkB,EAAc,EAAW,EAAK,CACzD,CACA,KAAK,EAAc,EAAW,CAC1B,KAAK,kBAAkB,EAAc,EAAW,EAAI,CACxD,CACH,oBAAoB,EAAc,CAC3B,IAAM,EAAO,KAAK,UAAU,GACxB,GAAQ,EAAK,YACb,EAAK,WAAW,SAAS,EAE7B,OAAO,KAAK,UAAU,EAC1B,CACA,OAAQ,CACJ,IAAI,EAAG,EAGP,IAFA,KAAK,KAAK,EACV,GAAS,OAAO,IAAI,EAChB,EAAI,EAAG,EAAO,KAAK,KAAK,SAAS,OAAQ,EAAI,EAAM,EAAE,EACrD,KAAK,oBAAoB,CAAC,CAElC,CACA,SAAU,CACN,KAAK,cAAc,eAAe,EAClC,GAAM,CAAE,SAAS,OAAS,KAC1B,KAAK,MAAM,EACX,KAAK,OAAO,WAAW,EACnB,IACA,KAAK,aAAa,EAClB,GAAY,EAAQ,CAAG,EACvB,KAAK,SAAS,eAAe,CAAG,EAChC,KAAK,OAAS,KACd,KAAK,IAAM,MAEf,OAAO,GAAU,KAAK,IACtB,KAAK,cAAc,cAAc,CACrC,CACA,cAAc,GAAG,EAAM,CACnB,OAAO,KAAK,OAAO,UAAU,GAAG,CAAI,CACxC,CACH,YAAa,CACN,KAAK,eAAe,EAChB,KAAK,QAAQ,WACb,KAAK,qBAAqB,EAE1B,KAAK,SAAW,EAExB,CACH,gBAAiB,CACV,IAAM,EAAY,KAAK,WACjB,EAAW,KAAK,SAChB,GAAQ,EAAM,IAAW,CAC3B,EAAS,iBAAiB,KAAM,EAAM,CAAQ,EAC9C,EAAU,GAAQ,CACtB,EACM,GAAY,EAAG,EAAG,IAAI,CACxB,EAAE,QAAU,EACZ,EAAE,QAAU,EACZ,KAAK,cAAc,CAAC,CACxB,EACA,GAAK,KAAK,QAAQ,OAAS,GAAO,EAAK,EAAM,CAAQ,CAAC,CAC1D,CACH,sBAAuB,CAChB,IACI,CAAK,uBAAuB,CAAC,EAEjC,IAAM,EAAY,KAAK,qBACjB,EAAW,KAAK,SAChB,GAAQ,EAAM,IAAW,CAC3B,EAAS,iBAAiB,KAAM,EAAM,CAAQ,EAC9C,EAAU,GAAQ,CACtB,EACM,GAAW,EAAM,IAAW,CAC1B,EAAU,KACV,EAAS,oBAAoB,KAAM,EAAM,CAAQ,EACjD,OAAO,EAAU,GAEzB,EACM,GAAY,EAAO,IAAS,CAC1B,KAAK,QACL,KAAK,OAAO,EAAO,CAAM,CAEjC,EACI,EACE,MAAe,CACjB,EAAQ,SAAU,CAAQ,EAC1B,KAAK,SAAW,GAChB,KAAK,OAAO,EACZ,EAAK,SAAU,CAAQ,EACvB,EAAK,SAAU,CAAQ,CAC3B,EACA,MAAe,CACX,KAAK,SAAW,GAChB,EAAQ,SAAU,CAAQ,EAC1B,KAAK,MAAM,EACX,KAAK,QAAQ,EAAG,CAAC,EACjB,EAAK,SAAU,CAAQ,CAC3B,EACI,EAAS,WAAW,KAAK,MAAM,EAC/B,EAAS,EAET,EAAS,CAEjB,CACH,cAAe,CACR,GAAK,KAAK,YAAa,EAAU,IAAO,CACpC,KAAK,SAAS,oBAAoB,KAAM,EAAM,CAAQ,CAC1D,CAAC,EACD,KAAK,WAAa,CAAC,EACnB,GAAK,KAAK,sBAAuB,EAAU,IAAO,CAC9C,KAAK,SAAS,oBAAoB,KAAM,EAAM,CAAQ,CAC1D,CAAC,EACD,KAAK,qBAAuB,MAChC,CACA,iBAAiB,EAAO,EAAM,EAAS,CACnC,IAAM,EAAS,EAAU,MAAQ,SAC7B,EAAM,EAAM,EAAG,EAKnB,IAJI,IAAS,YACT,EAAO,KAAK,eAAe,EAAM,GAAG,YAAY,EAChD,EAAK,WAAW,IAAM,EAAS,qBAAqB,GAEpD,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC1C,EAAO,EAAM,GACb,IAAM,EAAa,GAAQ,KAAK,eAAe,EAAK,YAAY,EAAE,WAC9D,GACA,EAAW,EAAS,cAAc,EAAK,QAAS,EAAK,aAAc,EAAK,KAAK,CAErF,CACJ,CACH,mBAAoB,CACb,OAAO,KAAK,SAAW,CAAC,CAC5B,CACH,kBAAkB,EAAgB,CAC3B,IAAM,EAAa,KAAK,SAAW,CAAC,EAC9B,EAAS,EAAe,KAAK,CAAE,eAAe,WAAW,CAC3D,IAAM,EAAO,KAAK,eAAe,CAAY,EAC7C,GAAI,CAAC,EACD,MAAU,MAAM,6BAA+B,CAAY,EAE/D,MAAO,CACH,eACA,QAAS,EAAK,KAAK,GACnB,OACJ,CACJ,CAAC,EACgB,GAAe,EAAQ,CAAU,IAE9C,KAAK,QAAU,EACf,KAAK,WAAa,KAClB,KAAK,mBAAmB,EAAQ,CAAU,EAElD,CACH,cAAc,EAAM,EAAM,EAAQ,CAC3B,OAAO,KAAK,SAAS,OAAO,KAAM,EAAM,EAAM,CAAM,CACxD,CACH,gBAAgB,EAAU,CACnB,OAAO,KAAK,SAAS,OAAO,OAAQ,GAAI,EAAE,OAAO,KAAO,CAAQ,EAAE,SAAW,CACjF,CACH,mBAAmB,EAAQ,EAAY,EAAQ,CACxC,IAAM,EAAe,KAAK,QAAQ,MAC5B,GAAQ,EAAG,IAAI,EAAE,OAAQ,GAAI,CAAC,EAAE,KAAM,GAAI,EAAE,eAAiB,EAAE,cAAgB,EAAE,QAAU,EAAE,KAAK,CAAC,EACnG,EAAc,EAAK,EAAY,CAAM,EACrC,EAAY,EAAS,EAAS,EAAK,EAAQ,CAAU,EACvD,EAAY,QACZ,KAAK,iBAAiB,EAAa,EAAa,KAAM,EAAK,EAE3D,EAAU,QAAU,EAAa,MACjC,KAAK,iBAAiB,EAAW,EAAa,KAAM,EAAI,CAEhE,CACH,cAAc,EAAG,EAAQ,CAClB,IAAM,EAAO,CACT,MAAO,EACP,SACA,WAAY,GACZ,YAAa,KAAK,cAAc,CAAC,CACrC,EACM,EAAe,IAAU,EAAO,QAAQ,QAAU,KAAK,QAAQ,QAAQ,SAAS,EAAE,OAAO,IAAI,EACnG,GAAI,KAAK,cAAc,cAAe,EAAM,CAAW,IAAM,GACzD,OAEJ,IAAM,EAAU,KAAK,aAAa,EAAG,EAAQ,EAAK,WAAW,EAM7D,MALA,GAAK,WAAa,GAClB,KAAK,cAAc,aAAc,EAAM,CAAW,GAC9C,GAAW,EAAK,UAChB,KAAK,OAAO,EAET,IACX,CACH,aAAa,EAAG,EAAQ,EAAa,CAC9B,GAAM,CAAE,QAAS,EAAa,CAAC,EAAI,WAAa,KAC1C,EAAmB,EACnB,EAAS,KAAK,mBAAmB,EAAG,EAAY,EAAa,CAAgB,EAC7E,EAAU,IAAc,CAAC,EACzB,EAAY,IAAmB,EAAG,KAAK,WAAY,EAAa,CAAO,EACzE,IACA,KAAK,WAAa,KAClB,GAAS,EAAQ,QAAS,CACtB,EACA,EACA,IACJ,EAAG,IAAI,EACH,GACA,GAAS,EAAQ,QAAS,CACtB,EACA,EACA,IACJ,EAAG,IAAI,GAGf,IAAM,EAAU,CAAC,GAAe,EAAQ,CAAU,EAMlD,OALI,GAAW,KACX,KAAK,QAAU,EACf,KAAK,mBAAmB,EAAQ,EAAY,CAAM,GAEtD,KAAK,WAAa,EACX,CACX,CACH,mBAAmB,EAAG,EAAY,EAAa,EAAkB,CAC1D,GAAI,EAAE,OAAS,WACX,MAAO,CAAC,EAEZ,GAAI,CAAC,EACD,OAAO,EAEX,IAAM,EAAe,KAAK,QAAQ,MAClC,OAAO,KAAK,0BAA0B,EAAG,EAAa,KAAM,EAAc,CAAgB,CAC9F,CACJ,EACA,SAAS,IAAoB,CACzB,OAAOvF,GAAK,GAAM,UAAY,GAAQ,EAAM,SAAS,WAAW,CAAC,CACrE,CAEA,SAAS,IAAS,EAAK,EAAS,EAAU,CACtC,GAAM,CAAE,aAAa,IAAI,IAAI,cAAc,cAAc,WAAa,EAChE,CAAE,cAAc,mBAAqB,EACrC,EAAiB,KAAK,IAAI,EAAc,EAAa,GAAgB,EAAa,CAAQ,CAAC,EAGjG,GAFA,EAAI,UAAU,EACd,EAAI,IAAI,EAAG,EAAG,EAAc,EAAc,EAAG,EAAa,EAAiB,EAAG,EAAW,EAAiB,CAAC,EACvG,EAAc,EAAG,CACjB,IAAM,EAAiB,KAAK,IAAI,EAAc,EAAa,GAAgB,EAAa,CAAQ,CAAC,EACjG,EAAI,IAAI,EAAG,EAAG,EAAc,EAAc,EAAG,EAAW,EAAiB,EAAG,EAAa,EAAiB,EAAG,EAAI,CACrH,KAAO,CACH,IAAM,EAAY,KAAK,IAAI,EAAc,EAAG,EAAc,GAAgB,EAAa,CAAQ,CAAC,EAChG,GAAI,IAAoB,QACpB,EAAI,IAAI,EAAG,EAAG,EAAW,EAAWwF,GAAK,EAAG,EAAaA,GAAK,EAAG,EAAI,OAClE,GAAI,IAAoB,QAAS,CACpC,IAAM,EAAI,EAAI,EAAY,EACpB,EAAO,CAAC,EAAI,KAAK,IAAI,EAAWA,GAAK,CAAC,EAAI,EAC1C,EAAO,CAAC,EAAI,KAAK,IAAI,EAAWA,GAAK,CAAC,EAAI,EAC1C,EAAS,EAAI,KAAK,IAAI,EAAaA,GAAK,CAAC,EAAI,EAC7C,EAAS,EAAI,KAAK,IAAI,EAAaA,GAAK,CAAC,EAAI,EACnD,EAAI,OAAO,EAAM,CAAI,EACrB,EAAI,OAAO,EAAQ,CAAM,CAC7B,CACJ,CACA,EAAI,UAAU,EACd,EAAI,OAAO,EAAG,CAAC,EACf,EAAI,KAAK,EAAG,EAAG,EAAI,OAAO,MAAO,EAAI,OAAO,MAAM,EAClD,EAAI,KAAK,SAAS,CACtB,CACA,SAAS,IAAQ,EAAK,EAAS,EAAU,CACrC,GAAM,CAAE,aAAa,cAAc,IAAI,IAAI,cAAc,eAAiB,EACtE,EAAc,EAAc,EAGhC,EAAI,UAAU,EACd,EAAI,IAAI,EAAG,EAAG,EAAa,EAAa,EAAa,EAAW,CAAW,EACvE,EAAc,GACd,EAAc,EAAc,EAC5B,EAAI,IAAI,EAAG,EAAG,EAAa,EAAW,EAAa,EAAa,EAAa,EAAI,GAEjF,EAAI,IAAI,EAAG,EAAG,EAAa,EAAW,GAAS,EAAa,EAAO,EAEvE,EAAI,UAAU,EACd,EAAI,KAAK,CACb,CACA,SAAS,IAAgB,EAAO,CAC5B,OAAO,GAAkB,EAAO,CAC5B,aACA,WACA,aACA,UACJ,CAAC,CACL,CAGI,SAAS,IAAoB,EAAK,EAAa,EAAa,EAAY,CACxE,IAAM,EAAI,IAAgB,EAAI,QAAQ,YAAY,EAC5C,GAAiB,EAAc,GAAe,EAC9C,EAAa,KAAK,IAAI,EAAe,EAAa,EAAc,CAAC,EAQjE,EAAqB,GAAM,CAC7B,IAAM,GAAiB,EAAc,KAAK,IAAI,EAAe,CAAG,GAAK,EAAa,EAClF,OAAO,GAAY,EAAK,EAAG,KAAK,IAAI,EAAe,CAAa,CAAC,CACrE,EACA,MAAO,CACH,WAAY,EAAkB,EAAE,UAAU,EAC1C,SAAU,EAAkB,EAAE,QAAQ,EACtC,WAAY,GAAY,EAAE,WAAY,EAAG,CAAU,EACnD,SAAU,GAAY,EAAE,SAAU,EAAG,CAAU,CACnD,CACJ,CAGI,SAAS,GAAW,EAAG,EAAO,EAAG,EAAG,CACpC,MAAO,CACH,EAAG,EAAI,EAAI,KAAK,IAAI,CAAK,EACzB,EAAG,EAAI,EAAI,KAAK,IAAI,CAAK,CAC7B,CACJ,CAcI,SAAS,GAAQ,EAAK,EAAS,EAAQ,EAAS,EAAK,EAAU,CAC/D,GAAM,CAAE,IAAI,IAAI,WAAY,EAAQ,cAAc,YAAa,GAAY,EACrE,EAAc,KAAK,IAAI,EAAQ,YAAc,EAAU,EAAS,EAAa,CAAC,EAC9E,EAAc,EAAS,EAAI,EAAS,EAAU,EAAS,EAAc,EACvE,EAAgB,EACd,EAAQ,EAAM,EACpB,GAAI,EAAS,CAMT,IAAM,IAFuB,EAAS,EAAI,EAAS,EAAU,IAChC,EAAc,EAAI,EAAc,EAAU,IACI,EAE3E,GAAiB,GADK,IAAuB,EAAkE,EAA9D,EAAQ,GAAsB,EAAqB,KAC1D,CAC9C,CAEA,IAAM,GAAe,EADR,KAAK,IAAI,KAAO,EAAQ,EAAc,EAASA,EAAE,EAAI,GAC7B,EAC/B,EAAa,EAAQ,EAAc,EACnC,EAAW,EAAM,EAAc,EAC/B,CAAE,aAAa,WAAW,aAAa,YAAc,IAAoB,EAAS,EAAa,EAAa,EAAW,CAAU,EACjI,EAA2B,EAAc,EACzC,EAAyB,EAAc,EACvC,EAA0B,EAAa,EAAa,EACpD,EAAwB,EAAW,EAAW,EAC9C,EAA2B,EAAc,EACzC,EAAyB,EAAc,EACvC,EAA0B,EAAa,EAAa,EACpD,EAAwB,EAAW,EAAW,EAEpD,GADA,EAAI,UAAU,EACV,EAAU,CAEV,IAAM,GAAyB,EAA0B,GAAyB,EAIlF,GAHA,EAAI,IAAI,EAAG,EAAG,EAAa,EAAyB,CAAqB,EACzE,EAAI,IAAI,EAAG,EAAG,EAAa,EAAuB,CAAqB,EAEnE,EAAW,EAAG,CACd,IAAM,EAAU,GAAW,EAAwB,EAAuB,EAAG,CAAC,EAC9E,EAAI,IAAI,EAAQ,EAAG,EAAQ,EAAG,EAAU,EAAuB,EAAW,EAAO,CACrF,CAEA,IAAM,EAAK,GAAW,EAAwB,EAAU,EAAG,CAAC,EAG5D,GAFA,EAAI,OAAO,EAAG,EAAG,EAAG,CAAC,EAEjB,EAAW,EAAG,CACd,IAAM,EAAU,GAAW,EAAwB,EAAuB,EAAG,CAAC,EAC9E,EAAI,IAAI,EAAQ,EAAG,EAAQ,EAAG,EAAU,EAAW,GAAS,EAAwB,KAAK,EAAE,CAC/F,CAEA,IAAM,GAAyB,EAAW,EAAW,GAAe,EAAa,EAAa,IAAgB,EAI9G,GAHA,EAAI,IAAI,EAAG,EAAG,EAAa,EAAW,EAAW,EAAa,EAAuB,EAAI,EACzF,EAAI,IAAI,EAAG,EAAG,EAAa,EAAuB,EAAa,EAAa,EAAa,EAAI,EAEzF,EAAa,EAAG,CAChB,IAAM,EAAU,GAAW,EAA0B,EAAyB,EAAG,CAAC,EAClF,EAAI,IAAI,EAAQ,EAAG,EAAQ,EAAG,EAAY,EAA0B,KAAK,GAAI,EAAa,EAAO,CACrG,CAEA,IAAM,EAAK,GAAW,EAA0B,EAAY,EAAG,CAAC,EAGhE,GAFA,EAAI,OAAO,EAAG,EAAG,EAAG,CAAC,EAEjB,EAAa,EAAG,CAChB,IAAM,EAAU,GAAW,EAA0B,EAAyB,EAAG,CAAC,EAClF,EAAI,IAAI,EAAQ,EAAG,EAAQ,EAAG,EAAY,EAAa,GAAS,CAAuB,CAC3F,CACJ,KAAO,CACH,EAAI,OAAO,EAAG,CAAC,EACf,IAAM,EAAc,KAAK,IAAI,CAAuB,EAAI,EAAc,EAChE,EAAc,KAAK,IAAI,CAAuB,EAAI,EAAc,EACtE,EAAI,OAAO,EAAa,CAAW,EACnC,IAAM,EAAY,KAAK,IAAI,CAAqB,EAAI,EAAc,EAC5D,EAAY,KAAK,IAAI,CAAqB,EAAI,EAAc,EAClE,EAAI,OAAO,EAAW,CAAS,CACnC,CACA,EAAI,UAAU,CAClB,CACA,SAAS,IAAQ,EAAK,EAAS,EAAQ,EAAS,EAAU,CACtD,GAAM,CAAE,cAAc,aAAa,iBAAmB,EAClD,EAAW,EAAQ,SACvB,GAAI,EAAa,CACb,GAAQ,EAAK,EAAS,EAAQ,EAAS,EAAU,CAAQ,EACzD,IAAI,IAAI,EAAI,EAAG,EAAI,EAAa,EAAE,EAC9B,EAAI,KAAK,EAER,MAAM,CAAa,IACpB,EAAW,GAAc,EAAgB,IAAO,IAExD,CAGA,OAFA,GAAQ,EAAK,EAAS,EAAQ,EAAS,EAAU,CAAQ,EACzD,EAAI,KAAK,EACF,CACX,CACA,SAAS,IAAW,EAAK,EAAS,EAAQ,EAAS,EAAU,CACzD,GAAM,CAAE,cAAc,aAAa,gBAAgB,WAAa,EAC1D,CAAE,cAAc,kBAAkB,aAAa,mBAAmB,gBAAkB,EACpF,EAAQ,EAAQ,cAAgB,QACtC,GAAI,CAAC,EACD,OAEJ,EAAI,YAAY,GAAc,CAAC,CAAC,EAChC,EAAI,eAAiB,EACjB,GACA,EAAI,UAAY,EAAc,EAC9B,EAAI,SAAW,GAAmB,UAElC,EAAI,UAAY,EAChB,EAAI,SAAW,GAAmB,SAEtC,IAAI,EAAW,EAAQ,SACvB,GAAI,EAAa,CACb,GAAQ,EAAK,EAAS,EAAQ,EAAS,EAAU,CAAQ,EACzD,IAAI,IAAI,EAAI,EAAG,EAAI,EAAa,EAAE,EAC9B,EAAI,OAAO,EAEV,MAAM,CAAa,IACpB,EAAW,GAAc,EAAgB,IAAO,IAExD,CACI,GACA,IAAQ,EAAK,EAAS,CAAQ,EAE9B,EAAQ,UAAY,EAAW,GAAcA,IAAM,IAAiB,GAAK,IAAoB,SAC7F,IAAS,EAAK,EAAS,CAAQ,EAE9B,IACD,GAAQ,EAAK,EAAS,EAAQ,EAAS,EAAU,CAAQ,EACzD,EAAI,OAAO,EAEnB,CACA,IAAM,IAAN,cAAyBI,EAAQ,CAC7B,OAAO,GAAK,MACZ,OAAO,SAAW,CACd,YAAa,SACb,YAAa,OACb,WAAY,CAAC,EACb,iBAAkB,EAClB,gBAAiB,OACjB,aAAc,EACd,YAAa,EACb,OAAQ,EACR,QAAS,EACT,MAAO,OACP,SAAU,GACV,SAAU,EACd,EACA,OAAO,cAAgB,CACnB,gBAAiB,iBACrB,EACA,OAAO,YAAc,CACjB,YAAa,GACb,WAAa,GAAO,IAAS,YACjC,EACA,cACA,SACA,YACA,YACA,YACA,YACA,WACA,YAAY,EAAI,CACZ,MAAM,EACN,KAAK,QAAU,OACf,KAAK,cAAgB,OACrB,KAAK,WAAa,OAClB,KAAK,SAAW,OAChB,KAAK,YAAc,OACnB,KAAK,YAAc,OACnB,KAAK,YAAc,EACnB,KAAK,YAAc,EACf,GACA,OAAO,OAAO,KAAM,CAAG,CAE/B,CACA,QAAQ,EAAQ,EAAQ,EAAkB,CAKtC,GAAM,CAAE,QAAQ,YAAc,GAJhB,KAAK,SAAS,CACxB,IACA,GACJ,EAAG,CACiD,EAAG,CACnD,EAAG,EACH,EAAG,CACP,CAAC,EACK,CAAE,aAAa,WAAW,cAAc,cAAc,iBAAmB,KAAK,SAAS,CACzF,aACA,WACA,cACA,cACA,eACJ,EAAG,CAAgB,EACb,GAAW,KAAK,QAAQ,QAAU,KAAK,QAAQ,aAAe,EAC9D,EAAiB,GAAe,EAAe,EAAW,CAAU,EACpE,EAAiB,GAAc,EAAO,EAAY,CAAQ,GAAK,IAAe,EAC9E,EAAgB,GAAkB,IAAO,EACzC,EAAe,GAAW,EAAU,EAAc,EAAS,EAAc,CAAO,EACtF,OAAO,GAAiB,CAC5B,CACA,eAAe,EAAkB,CAC7B,GAAM,CAAE,IAAI,IAAI,aAAa,WAAW,cAAc,eAAiB,KAAK,SAAS,CACjF,IACA,IACA,aACA,WACA,cACA,aACJ,EAAG,CAAgB,EACb,CAAE,SAAS,WAAa,KAAK,QAC7B,GAAa,EAAa,GAAY,EACtC,GAAc,EAAc,EAAc,EAAU,GAAU,EACpE,MAAO,CACH,EAAG,EAAI,KAAK,IAAI,CAAS,EAAI,EAC7B,EAAG,EAAI,KAAK,IAAI,CAAS,EAAI,CACjC,CACJ,CACA,gBAAgB,EAAkB,CAC9B,OAAO,KAAK,eAAe,CAAgB,CAC/C,CACA,KAAK,EAAK,CACN,GAAM,CAAE,UAAU,iBAAmB,KAC/B,GAAU,EAAQ,QAAU,GAAK,EACjC,GAAW,EAAQ,SAAW,GAAK,EACnC,EAAW,EAAQ,SAGzB,GAFA,KAAK,YAAc,EAAQ,cAAgB,QAAU,IAAO,EAC5D,KAAK,YAAc,EAAgB,GAAM,KAAK,MAAM,EAAgB,EAAG,EAAI,EACvE,IAAkB,GAAK,KAAK,YAAc,GAAK,KAAK,YAAc,EAClE,OAEJ,EAAI,KAAK,EACT,IAAM,GAAa,KAAK,WAAa,KAAK,UAAY,EACtD,EAAI,UAAU,KAAK,IAAI,CAAS,EAAI,EAAQ,KAAK,IAAI,CAAS,EAAI,CAAM,EAExE,IAAM,EAAe,GADT,EAAI,KAAK,IAAI,KAAK,IAAIJ,GAAI,GAAiB,CAAC,CAAC,GAEzD,EAAI,UAAY,EAAQ,gBACxB,EAAI,YAAc,EAAQ,YAC1B,IAAQ,EAAK,KAAM,EAAc,EAAS,CAAQ,EAClD,IAAW,EAAK,KAAM,EAAc,EAAS,CAAQ,EACrD,EAAI,QAAQ,CAChB,CACJ,EAEA,SAAS,GAAS,EAAK,EAAS,EAAQ,EAAS,CAC7C,EAAI,QAAU,GAAe,EAAM,eAAgB,EAAQ,cAAc,EACzE,EAAI,YAAY,GAAe,EAAM,WAAY,EAAQ,UAAU,CAAC,EACpE,EAAI,eAAiB,GAAe,EAAM,iBAAkB,EAAQ,gBAAgB,EACpF,EAAI,SAAW,GAAe,EAAM,gBAAiB,EAAQ,eAAe,EAC5E,EAAI,UAAY,GAAe,EAAM,YAAa,EAAQ,WAAW,EACrE,EAAI,YAAc,GAAe,EAAM,YAAa,EAAQ,WAAW,CAC3E,CACA,SAAS,IAAO,EAAK,EAAU,EAAQ,CACnC,EAAI,OAAO,EAAO,EAAG,EAAO,CAAC,CACjC,CACC,SAAS,IAAc,EAAS,CAO7B,OANI,EAAQ,QACD,IAEP,EAAQ,SAAW,EAAQ,yBAA2B,WAC/C,IAEJ,GACX,CACA,SAAS,GAAS,EAAQ,EAAS,EAAS,CAAC,EAAG,CAC5C,IAAM,EAAQ,EAAO,OACf,CAAE,MAAO,EAAc,EAAI,IAAK,EAAY,EAAQ,GAAO,EAC3D,CAAE,MAAO,EAAe,IAAK,GAAgB,EAC7C,EAAQ,KAAK,IAAI,EAAa,CAAY,EAC1C,EAAM,KAAK,IAAI,EAAW,CAAU,EACpC,EAAU,EAAc,GAAgB,EAAY,GAAgB,EAAc,GAAc,EAAY,EAClH,MAAO,CACH,QACA,QACA,KAAM,EAAQ,KACd,KAAM,EAAM,GAAS,CAAC,EAAU,EAAQ,EAAM,EAAQ,EAAM,CAChE,CACJ,CACC,SAAS,IAAY,EAAK,EAAM,EAAS,EAAQ,CAC9C,GAAM,CAAE,SAAS,WAAa,EACxB,CAAE,QAAQ,QAAQ,OAAO,QAAU,GAAS,EAAQ,EAAS,CAAM,EACnE,EAAa,IAAc,CAAO,EACpC,CAAE,OAAM,GAAO,WAAa,GAAU,CAAC,EACvC,EAAG,EAAO,EACd,IAAI,EAAI,EAAG,GAAK,EAAM,EAAE,EACpB,EAAQ,GAAQ,GAAS,EAAU,EAAO,EAAI,IAAM,GAChD,GAAM,OAEC,GACP,EAAI,OAAO,EAAM,EAAG,EAAM,CAAC,EAC3B,EAAO,IAEP,EAAW,EAAK,EAAM,EAAO,EAAS,EAAQ,OAAO,EAEzD,EAAO,GAMX,OAJI,IACA,EAAQ,GAAQ,GAAS,EAAU,EAAO,IAAM,GAChD,EAAW,EAAK,EAAM,EAAO,EAAS,EAAQ,OAAO,GAElD,CAAC,CAAC,CACb,CACC,SAAS,IAAgB,EAAK,EAAM,EAAS,EAAQ,CAClD,IAAM,EAAS,EAAK,OACd,CAAE,QAAQ,QAAQ,QAAU,GAAS,EAAQ,EAAS,CAAM,EAC5D,CAAE,OAAM,GAAO,WAAa,GAAU,CAAC,EACzC,EAAO,EACP,EAAS,EACT,EAAG,EAAO,EAAO,EAAM,EAAM,EAC3B,EAAc,IAAS,GAAS,EAAU,EAAO,EAAQ,IAAU,EACnE,MAAY,CACV,IAAS,IACT,EAAI,OAAO,EAAM,CAAI,EACrB,EAAI,OAAO,EAAM,CAAI,EACrB,EAAI,OAAO,EAAM,CAAK,EAE9B,EAKA,IAJI,IACA,EAAQ,EAAO,EAAW,CAAC,GAC3B,EAAI,OAAO,EAAM,EAAG,EAAM,CAAC,GAE3B,EAAI,EAAG,GAAK,EAAM,EAAE,EAAE,CAEtB,GADA,EAAQ,EAAO,EAAW,CAAC,GACvB,EAAM,KACN,SAEJ,IAAM,EAAI,EAAM,EACV,EAAI,EAAM,EACV,EAAS,EAAI,EACf,IAAW,GACP,EAAI,EACJ,EAAO,EACA,EAAI,IACX,EAAO,GAEX,GAAQ,EAAS,EAAO,GAAK,EAAE,IAE/B,EAAM,EACN,EAAI,OAAO,EAAG,CAAC,EACf,EAAQ,EACR,EAAS,EACT,EAAO,EAAO,GAElB,EAAQ,CACZ,CACA,EAAM,CACV,CACC,SAAS,GAAkB,EAAM,CAC9B,IAAM,EAAO,EAAK,QACZ,EAAa,EAAK,YAAc,EAAK,WAAW,OAEtD,MADoB,CAAC,EAAK,YAAc,CAAC,EAAK,OAAS,CAAC,EAAK,SAAW,EAAK,yBAA2B,YAAc,CAAC,EAAK,SAAW,CAAC,EACnH,IAAkB,GAC3C,CACC,SAAS,IAAwB,EAAS,CAOvC,OANI,EAAQ,QACD,IAEP,EAAQ,SAAW,EAAQ,yBAA2B,WAC/C,IAEJ,EACX,CACA,SAAS,IAAoB,EAAK,EAAM,EAAO,EAAO,CAClD,IAAI,EAAO,EAAK,MACX,IACD,EAAO,EAAK,MAAQ,IAAI,OACpB,EAAK,KAAK,EAAM,EAAO,CAAK,GAC5B,EAAK,UAAU,GAGvB,GAAS,EAAK,EAAK,OAAO,EAC1B,EAAI,OAAO,CAAI,CACnB,CACA,SAAS,IAAiB,EAAK,EAAM,EAAO,EAAO,CAC/C,GAAM,CAAE,WAAW,WAAa,EAC1B,EAAgB,GAAkB,CAAI,EAC5C,IAAK,IAAM,KAAW,EAClB,GAAS,EAAK,EAAS,EAAQ,KAAK,EACpC,EAAI,UAAU,EACV,EAAc,EAAK,EAAM,EAAS,CAClC,QACA,IAAK,EAAQ,EAAQ,CACzB,CAAC,GACG,EAAI,UAAU,EAElB,EAAI,OAAO,CAEnB,CACA,IAAM,IAAY,OAAO,QAAW,WACpC,SAAS,IAAK,EAAK,EAAM,EAAO,EAAO,CAC/B,KAAa,CAAC,EAAK,QAAQ,QAC3B,IAAoB,EAAK,EAAM,EAAO,CAAK,EAE3C,IAAiB,EAAK,EAAM,EAAO,CAAK,CAEhD,CACA,IAAM,GAAN,cAA0BI,EAAQ,CAC9B,OAAO,GAAK,OACf,OAAO,SAAW,CACX,eAAgB,OAChB,WAAY,CAAC,EACb,iBAAkB,EAClB,gBAAiB,QACjB,YAAa,EACb,gBAAiB,GACjB,uBAAwB,UACxB,KAAM,GACN,SAAU,GACV,QAAS,GACT,QAAS,CACb,EACH,OAAO,cAAgB,CAChB,gBAAiB,kBACjB,YAAa,aACjB,EACA,OAAO,YAAc,CACjB,YAAa,GACb,WAAa,GAAO,IAAS,cAAgB,IAAS,MAC1D,EACA,YAAY,EAAI,CACZ,MAAM,EACN,KAAK,SAAW,GAChB,KAAK,QAAU,OACf,KAAK,OAAS,OACd,KAAK,MAAQ,OACb,KAAK,UAAY,OACjB,KAAK,MAAQ,OACb,KAAK,QAAU,OACf,KAAK,UAAY,OACjB,KAAK,WAAa,GAClB,KAAK,eAAiB,GACtB,KAAK,cAAgB,OACjB,GACA,OAAO,OAAO,KAAM,CAAG,CAE/B,CACA,oBAAoB,EAAW,EAAW,CACtC,IAAM,EAAU,KAAK,QACrB,IAAK,EAAQ,SAAW,EAAQ,yBAA2B,aAAe,CAAC,EAAQ,SAAW,CAAC,KAAK,eAAgB,CAChH,IAAM,EAAO,EAAQ,SAAW,KAAK,MAAQ,KAAK,UAClD,IAA2B,KAAK,QAAS,EAAS,EAAW,EAAM,CAAS,EAC5E,KAAK,eAAiB,EAC1B,CACJ,CACA,IAAI,OAAO,EAAQ,CACf,KAAK,QAAU,EACf,OAAO,KAAK,UACZ,OAAO,KAAK,MACZ,KAAK,eAAiB,EAC1B,CACA,IAAI,QAAS,CACT,OAAO,KAAK,OAChB,CACA,IAAI,UAAW,CACX,MAAO,CAAmB,KAAK,YAAY,IAAiB,KAAM,KAAK,QAAQ,OAAO,CAC1F,CACH,OAAQ,CACD,IAAM,EAAW,KAAK,SAChB,EAAS,KAAK,OACpB,OAAO,EAAS,QAAU,EAAO,EAAS,GAAG,MACjD,CACH,MAAO,CACA,IAAM,EAAW,KAAK,SAChB,EAAS,KAAK,OACd,EAAQ,EAAS,OACvB,OAAO,GAAS,EAAO,EAAS,EAAQ,GAAG,IAC/C,CACH,YAAY,EAAO,EAAU,CACtB,IAAM,EAAU,KAAK,QACf,EAAQ,EAAM,GACd,EAAS,KAAK,OACd,EAAW,GAAe,KAAM,CAClC,WACA,MAAO,EACP,IAAK,CACT,CAAC,EACD,GAAI,CAAC,EAAS,OACV,OAEJ,IAAM,EAAS,CAAC,EACV,EAAe,IAAwB,CAAO,EAChD,EAAG,EACP,IAAI,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,EAAE,EAAE,CAC7C,GAAM,CAAE,QAAQ,OAAS,EAAS,GAC5B,EAAK,EAAO,GACZ,EAAK,EAAO,GAClB,GAAI,IAAO,EAAI,CACX,EAAO,KAAK,CAAE,EACd,QACJ,CAEA,IAAM,EAAe,EAAa,EAAI,EAD5B,KAAK,KAAK,EAAQ,EAAG,KAAc,EAAG,GAAY,EAAG,GACrB,EAAG,EAAQ,OAAO,EAC5D,EAAa,GAAY,EAAM,GAC/B,EAAO,KAAK,CAAY,CAC5B,CACA,OAAO,EAAO,SAAW,EAAI,EAAO,GAAK,CAC7C,CACH,YAAY,EAAK,EAAS,EAAQ,CAE3B,OADsB,GAAkB,IACrB,EAAE,EAAK,KAAM,EAAS,CAAM,CACnD,CACH,KAAK,EAAK,EAAO,EAAO,CACjB,IAAM,EAAW,KAAK,SAChB,EAAgB,GAAkB,IAAI,EACxC,EAAO,KAAK,MAChB,IAAiB,EACjB,IAAiB,KAAK,OAAO,OAAS,EACtC,IAAK,IAAM,KAAW,EAClB,GAAQ,EAAc,EAAK,KAAM,EAAS,CACtC,QACA,IAAK,EAAQ,EAAQ,CACzB,CAAC,EAEL,MAAO,CAAC,CAAC,CACb,CACH,KAAK,EAAK,EAAW,EAAO,EAAO,CAC5B,IAAM,EAAU,KAAK,SAAW,CAAC,GAClB,KAAK,QAAU,CAAC,GACpB,QAAU,EAAQ,cACzB,EAAI,KAAK,EACT,IAAK,EAAK,KAAM,EAAO,CAAK,EAC5B,EAAI,QAAQ,GAEZ,KAAK,WACL,KAAK,eAAiB,GACtB,KAAK,MAAQ,OAErB,CACJ,EAEA,SAAS,GAAU,EAAI,EAAK,EAAM,EAAkB,CAChD,IAAM,EAAU,EAAG,QACb,EAAG,GAAO,GAAW,EAAG,SAAS,CACnC,CACJ,EAAG,CAAgB,EACnB,OAAO,KAAK,IAAI,EAAM,CAAK,EAAI,EAAQ,OAAS,EAAQ,SAC5D,CACA,IAAM,IAAN,cAA2BA,EAAQ,CAC/B,OAAO,GAAK,QACZ,OACA,KACA,KAGE,OAAO,SAAW,CAChB,YAAa,EACb,UAAW,EACX,iBAAkB,EAClB,YAAa,EACb,WAAY,SACZ,OAAQ,EACR,SAAU,CACd,EAGE,OAAO,cAAgB,CACrB,gBAAiB,kBACjB,YAAa,aACjB,EACA,YAAY,EAAI,CACZ,MAAM,EACN,KAAK,QAAU,OACf,KAAK,OAAS,OACd,KAAK,KAAO,OACZ,KAAK,KAAO,OACR,GACA,OAAO,OAAO,KAAM,CAAG,CAE/B,CACA,QAAQ,EAAQ,EAAQ,EAAkB,CACtC,IAAM,EAAU,KAAK,QACf,CAAE,IAAI,KAAO,KAAK,SAAS,CAC7B,IACA,GACJ,EAAG,CAAgB,EACnB,OAAgB,EAAS,IAAG,GAAc,EAAS,IAAG,GAAc,EAAQ,UAAY,EAAQ,SAAQ,CAC5G,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,GAAU,KAAM,EAAQ,IAAK,CAAgB,CACxD,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,GAAU,KAAM,EAAQ,IAAK,CAAgB,CACxD,CACA,eAAe,EAAkB,CAC7B,GAAM,CAAE,IAAI,KAAO,KAAK,SAAS,CAC7B,IACA,GACJ,EAAG,CAAgB,EACnB,MAAO,CACH,IACA,GACJ,CACJ,CACA,KAAK,EAAS,CACV,EAAU,GAAW,KAAK,SAAW,CAAC,EACtC,IAAI,EAAS,EAAQ,QAAU,EAC/B,EAAS,KAAK,IAAI,EAAQ,GAAU,EAAQ,aAAe,CAAC,EAC5D,IAAM,EAAc,GAAU,EAAQ,aAAe,EACrD,OAAQ,EAAS,GAAe,CACpC,CACA,KAAK,EAAK,EAAM,CACZ,IAAM,EAAU,KAAK,QACjB,KAAK,MAAQ,EAAQ,OAAS,IAAO,CAAC,GAAe,KAAM,EAAM,KAAK,KAAK,CAAO,EAAI,CAAC,IAG3F,EAAI,YAAc,EAAQ,YAC1B,EAAI,UAAY,EAAQ,YACxB,EAAI,UAAY,EAAQ,gBACxB,GAAU,EAAK,EAAS,KAAK,EAAG,KAAK,CAAC,EAC1C,CACA,UAAW,CACP,IAAM,EAAU,KAAK,SAAW,CAAC,EAEjC,OAAO,EAAQ,OAAS,EAAQ,SACpC,CACJ,EAEA,SAAS,GAAa,EAAK,EAAkB,CACzC,GAAM,CAAE,IAAI,IAAI,OAAO,QAAQ,UAAa,EAAI,SAAS,CACrD,IACA,IACA,OACA,QACA,QACJ,EAAG,CAAgB,EACf,EAAM,EAAO,EAAK,EAAQ,EAc9B,OAbI,EAAI,YACJ,EAAO,EAAS,EAChB,EAAO,KAAK,IAAI,EAAG,CAAI,EACvB,EAAQ,KAAK,IAAI,EAAG,CAAI,EACxB,EAAM,EAAI,EACV,EAAS,EAAI,IAEb,EAAO,EAAQ,EACf,EAAO,EAAI,EACX,EAAQ,EAAI,EACZ,EAAM,KAAK,IAAI,EAAG,CAAI,EACtB,EAAS,KAAK,IAAI,EAAG,CAAI,GAEtB,CACH,OACA,MACA,QACA,QACJ,CACJ,CACA,SAAS,GAAY,EAAM,EAAO,EAAK,EAAK,CACxC,OAAO,EAAO,EAAI,GAAY,EAAO,EAAK,CAAG,CACjD,CACA,SAAS,IAAiB,EAAK,EAAM,EAAM,CACvC,IAAM,EAAQ,EAAI,QAAQ,YACpB,EAAO,EAAI,cACX,EAAI,GAAO,CAAK,EACtB,MAAO,CACH,EAAG,GAAY,EAAK,IAAK,EAAE,IAAK,EAAG,CAAI,EACvC,EAAG,GAAY,EAAK,MAAO,EAAE,MAAO,EAAG,CAAI,EAC3C,EAAG,GAAY,EAAK,OAAQ,EAAE,OAAQ,EAAG,CAAI,EAC7C,EAAG,GAAY,EAAK,KAAM,EAAE,KAAM,EAAG,CAAI,CAC7C,CACJ,CACA,SAAS,IAAkB,EAAK,EAAM,EAAM,CACxC,GAAM,CAAE,sBAAwB,EAAI,SAAS,CACzC,oBACJ,CAAC,EACK,EAAQ,EAAI,QAAQ,aACpB,EAAI,GAAc,CAAK,EACvB,EAAO,KAAK,IAAI,EAAM,CAAI,EAC1B,EAAO,EAAI,cACX,EAAe,GAAsBlD,GAAS,CAAK,EACzD,MAAO,CACH,QAAS,GAAY,CAAC,GAAgB,EAAK,KAAO,EAAK,KAAM,EAAE,QAAS,EAAG,CAAI,EAC/E,SAAU,GAAY,CAAC,GAAgB,EAAK,KAAO,EAAK,MAAO,EAAE,SAAU,EAAG,CAAI,EAClF,WAAY,GAAY,CAAC,GAAgB,EAAK,QAAU,EAAK,KAAM,EAAE,WAAY,EAAG,CAAI,EACxF,YAAa,GAAY,CAAC,GAAgB,EAAK,QAAU,EAAK,MAAO,EAAE,YAAa,EAAG,CAAI,CAC/F,CACJ,CACA,SAAS,IAAc,EAAK,CACxB,IAAM,EAAS,GAAa,CAAG,EACzB,EAAQ,EAAO,MAAQ,EAAO,KAC9B,EAAS,EAAO,OAAS,EAAO,IAChC,EAAS,IAAiB,EAAK,EAAQ,EAAG,EAAS,CAAC,EACpD,EAAS,IAAkB,EAAK,EAAQ,EAAG,EAAS,CAAC,EAC3D,MAAO,CACH,MAAO,CACH,EAAG,EAAO,KACV,EAAG,EAAO,IACV,EAAG,EACH,EAAG,EACH,QACJ,EACA,MAAO,CACH,EAAG,EAAO,KAAO,EAAO,EACxB,EAAG,EAAO,IAAM,EAAO,EACvB,EAAG,EAAQ,EAAO,EAAI,EAAO,EAC7B,EAAG,EAAS,EAAO,EAAI,EAAO,EAC9B,OAAQ,CACJ,QAAS,KAAK,IAAI,EAAG,EAAO,QAAU,KAAK,IAAI,EAAO,EAAG,EAAO,CAAC,CAAC,EAClE,SAAU,KAAK,IAAI,EAAG,EAAO,SAAW,KAAK,IAAI,EAAO,EAAG,EAAO,CAAC,CAAC,EACpE,WAAY,KAAK,IAAI,EAAG,EAAO,WAAa,KAAK,IAAI,EAAO,EAAG,EAAO,CAAC,CAAC,EACxE,YAAa,KAAK,IAAI,EAAG,EAAO,YAAc,KAAK,IAAI,EAAO,EAAG,EAAO,CAAC,CAAC,CAC9E,CACJ,CACJ,CACJ,CACA,SAAS,GAAQ,EAAK,EAAG,EAAG,EAAkB,CAC1C,IAAM,EAAQ,IAAM,KACd,EAAQ,IAAM,KAEd,EAAS,GAAO,EADL,GAAS,IACS,GAAa,EAAK,CAAgB,EACrE,OAAO,IAAW,GAAS,GAAW,EAAG,EAAO,KAAM,EAAO,KAAK,KAAO,GAAS,GAAW,EAAG,EAAO,IAAK,EAAO,MAAM,EAC7H,CACA,SAAS,IAAU,EAAQ,CACvB,OAAO,EAAO,SAAW,EAAO,UAAY,EAAO,YAAc,EAAO,WAC5E,CACC,SAAS,IAAkB,EAAK,EAAM,CACnC,EAAI,KAAK,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,EAAK,CAAC,CAC3C,CACA,SAAS,GAAY,EAAM,EAAQ,EAAU,CAAC,EAAG,CAC7C,IAAM,EAAI,EAAK,IAAM,EAAQ,EAAc,EAAV,CAAC,EAC5B,EAAI,EAAK,IAAM,EAAQ,EAAc,EAAV,CAAC,EAC5B,GAAK,EAAK,EAAI,EAAK,IAAM,EAAQ,EAAI,EAAQ,EAAa,EAAT,GAAc,EAC/D,GAAK,EAAK,EAAI,EAAK,IAAM,EAAQ,EAAI,EAAQ,EAAa,EAAT,GAAc,EACrE,MAAO,CACH,EAAG,EAAK,EAAI,EACZ,EAAG,EAAK,EAAI,EACZ,EAAG,EAAK,EAAI,EACZ,EAAG,EAAK,EAAI,EACZ,OAAQ,EAAK,MACjB,CACJ,CACA,IAAM,GAAN,cAAyBkD,EAAQ,CAC7B,OAAO,GAAK,MACf,OAAO,SAAW,CACX,cAAe,QACf,YAAa,EACb,aAAc,EACd,cAAe,OACf,WAAY,MAChB,EACH,OAAO,cAAgB,CAChB,gBAAiB,kBACjB,YAAa,aACjB,EACA,YAAY,EAAI,CACZ,MAAM,EACN,KAAK,QAAU,OACf,KAAK,WAAa,OAClB,KAAK,KAAO,OACZ,KAAK,MAAQ,OACb,KAAK,OAAS,OACd,KAAK,cAAgB,OACjB,GACA,OAAO,OAAO,KAAM,CAAG,CAE/B,CACA,KAAK,EAAK,CACN,GAAM,CAAE,gBAAgB,QAAS,CAAE,cAAc,oBAAwB,KACnE,CAAE,QAAQ,SAAW,IAAc,IAAI,EACvC,EAAc,IAAU,EAAM,MAAM,EAAI,GAAqB,IACnE,EAAI,KAAK,GACL,EAAM,IAAM,EAAM,GAAK,EAAM,IAAM,EAAM,KACzC,EAAI,UAAU,EACd,EAAY,EAAK,GAAY,EAAO,EAAe,CAAK,CAAC,EACzD,EAAI,KAAK,EACT,EAAY,EAAK,GAAY,EAAO,CAAC,EAAe,CAAK,CAAC,EAC1D,EAAI,UAAY,EAChB,EAAI,KAAK,SAAS,GAEtB,EAAI,UAAU,EACd,EAAY,EAAK,GAAY,EAAO,CAAa,CAAC,EAClD,EAAI,UAAY,EAChB,EAAI,KAAK,EACT,EAAI,QAAQ,CAChB,CACA,QAAQ,EAAQ,EAAQ,EAAkB,CACtC,OAAO,GAAQ,KAAM,EAAQ,EAAQ,CAAgB,CACzD,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,GAAQ,KAAM,EAAQ,KAAM,CAAgB,CACvD,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,GAAQ,KAAM,KAAM,EAAQ,CAAgB,CACvD,CACA,eAAe,EAAkB,CAC7B,GAAM,CAAE,IAAI,IAAI,OAAO,cAAiB,KAAK,SAAS,CAClD,IACA,IACA,OACA,YACJ,EAAG,CAAgB,EACnB,MAAO,CACH,EAAG,GAAc,EAAI,GAAQ,EAAI,EACjC,EAAG,EAAa,GAAK,EAAI,GAAQ,CACrC,CACJ,CACA,SAAS,EAAM,CACX,OAAO,IAAS,IAAM,KAAK,MAAQ,EAAI,KAAK,OAAS,CACzD,CACJ,EAqSA,SAAS,IAAU,EAAM,EAAQ,EAAU,CACvC,IAAM,EAAW,EAAK,SAChB,EAAS,EAAK,OACd,EAAU,EAAO,OACjB,EAAQ,CAAC,EACf,IAAK,IAAM,KAAW,EAAS,CAC3B,GAAI,CAAE,QAAQ,OAAS,EACvB,EAAM,GAAgB,EAAO,EAAK,CAAM,EACxC,IAAM,EAAS,GAAW,EAAU,EAAO,GAAQ,EAAO,GAAM,EAAQ,IAAI,EAC5E,GAAI,CAAC,EAAO,SAAU,CAClB,EAAM,KAAK,CACP,OAAQ,EACR,OAAQ,EACR,MAAO,EAAO,GACd,IAAK,EAAO,EAChB,CAAC,EACD,QACJ,CACA,IAAM,EAAiB,GAAe,EAAQ,CAAM,EACpD,IAAK,IAAM,KAAO,EAAe,CAC7B,IAAM,EAAY,GAAW,EAAU,EAAQ,EAAI,OAAQ,EAAQ,EAAI,KAAM,EAAI,IAAI,EAC/E,EAAc,GAAc,EAAS,EAAQ,CAAS,EAC5D,IAAK,IAAM,KAAc,EACrB,EAAM,KAAK,CACP,OAAQ,EACR,OAAQ,EACR,MAAO,EACF,GAAW,GAAS,EAAQ,EAAW,QAAS,KAAK,GAAG,CAC7D,EACA,IAAK,EACA,GAAW,GAAS,EAAQ,EAAW,MAAO,KAAK,GAAG,CAC3D,CACJ,CAAC,CAET,CACJ,CACA,OAAO,CACX,CACA,SAAS,GAAW,EAAU,EAAO,EAAM,EAAM,CAC7C,GAAI,EACA,OAEJ,IAAI,EAAQ,EAAM,GACd,EAAM,EAAK,GAKf,OAJI,IAAa,UACb,EAAQ,GAAgB,CAAK,EAC7B,EAAM,GAAgB,CAAG,GAEtB,CACH,WACA,QACA,KACJ,CACJ,CACA,SAAS,IAAoB,EAAU,EAAM,CACzC,GAAM,CAAE,IAAG,KAAO,IAAG,MAAU,GAAY,CAAC,EACtC,EAAa,EAAK,OAClB,EAAS,CAAC,EAyBhB,OAxBA,EAAK,SAAS,SAAS,CAAE,QAAQ,SAAS,CACtC,EAAM,GAAgB,EAAO,EAAK,CAAU,EAC5C,IAAM,EAAQ,EAAW,GACnB,EAAO,EAAW,GACpB,IAAM,KASC,IAAM,OACb,EAAO,KAAK,CACR,IACA,EAAG,EAAM,CACb,CAAC,EACD,EAAO,KAAK,CACR,IACA,EAAG,EAAK,CACZ,CAAC,IAhBD,EAAO,KAAK,CACR,EAAG,EAAM,EACT,GACJ,CAAC,EACD,EAAO,KAAK,CACR,EAAG,EAAK,EACR,GACJ,CAAC,EAWT,CAAC,EACM,CACX,CACA,SAAS,GAAgB,EAAO,EAAK,EAAQ,CACzC,KAAM,EAAM,EAAO,IAAM,CACrB,IAAM,EAAQ,EAAO,GACrB,GAAI,CAAC,MAAM,EAAM,CAAC,GAAK,CAAC,MAAM,EAAM,CAAC,EACjC,KAER,CACA,OAAO,CACX,CACA,SAAS,GAAS,EAAG,EAAG,EAAM,EAAI,CAI9B,OAHI,GAAK,EACE,EAAG,EAAE,GAAO,EAAE,EAAK,EAEvB,EAAI,EAAE,GAAQ,EAAI,EAAE,GAAQ,CACvC,CAEA,SAAS,GAAoB,EAAU,EAAM,CACzC,IAAI,EAAS,CAAC,EACV,EAAQ,GAOZ,OANI,GAAQ,CAAQ,GAChB,EAAQ,GACR,EAAS,GAET,EAAS,IAAoB,EAAU,CAAI,EAExC,EAAO,OAAS,IAAI,GAAY,CACnC,SACA,QAAS,CACL,QAAS,CACb,EACA,QACA,UAAW,CACf,CAAC,EAAI,IACT,CACA,SAAS,GAAiB,EAAQ,CAC9B,OAAO,GAAU,EAAO,OAAS,EACrC,CAEA,SAAS,IAAe,EAAS,EAAO,EAAW,CAE/C,IAAI,EADW,EAAQ,GACL,KACZ,EAAU,CACZ,CACJ,EACI,EACJ,GAAI,CAAC,EACD,OAAO,EAEX,KAAM,IAAS,IAAS,EAAQ,QAAQ,CAAI,IAAM,IAAG,CACjD,GAAI,CAAC,GAAe,CAAI,EACpB,OAAO,EAGX,GADA,EAAS,EAAQ,GACb,CAAC,EACD,MAAO,GAEX,GAAI,EAAO,QACP,OAAO,EAEX,EAAQ,KAAK,CAAI,EACjB,EAAO,EAAO,IAClB,CACA,MAAO,EACX,CACC,SAAS,IAAY,EAAM,EAAO,EAAO,CACrC,IAAM,EAAO,IAAgB,CAAI,EAClC,GAAIlD,GAAS,CAAI,EACb,OAAO,MAAM,EAAK,KAAK,EAAI,GAAQ,EAEvC,IAAI,EAAS,WAAW,CAAI,EAI5B,OAHI,GAAe,CAAM,GAAK,KAAK,MAAM,CAAM,IAAM,EAC1C,IAAkB,EAAK,GAAI,EAAO,EAAQ,CAAK,EAEnD,CACH,SACA,QACA,MACA,QACA,OACJ,EAAE,QAAQ,CAAI,GAAK,GAAK,CAC5B,CACA,SAAS,IAAkB,EAAS,EAAO,EAAQ,EAAO,CAOtD,OANI,IAAY,KAAO,IAAY,OAC/B,EAAS,EAAQ,GAEjB,IAAW,GAAS,EAAS,GAAK,GAAU,EACrC,GAEJ,CACX,CACC,SAAS,IAAgB,EAAM,EAAO,CACnC,IAAI,EAAQ,KAUZ,OATI,IAAS,QACT,EAAQ,EAAM,OACP,IAAS,MAChB,EAAQ,EAAM,IACPA,GAAS,CAAI,EACpB,EAAQ,EAAM,iBAAiB,EAAK,KAAK,EAClC,EAAM,eACb,EAAQ,EAAM,aAAa,GAExB,CACX,CACC,SAAS,IAAgB,EAAM,EAAO,EAAY,CAC/C,IAAI,EAUJ,MATA,CAOI,EAPA,IAAS,QACD,EACD,IAAS,MACR,EAAM,QAAQ,QAAU,EAAM,IAAM,EAAM,IAC3CA,GAAS,CAAI,EACZ,EAAK,MAEL,EAAM,aAAa,EAExB,CACX,CACC,SAAS,IAAgB,EAAM,CAC5B,IAAM,EAAU,EAAK,QACf,EAAa,EAAQ,KACvB,EAAO,GAAe,GAAc,EAAW,OAAQ,CAAU,EAUrE,OATI,IAAS,SACT,EAAO,CAAC,CAAC,EAAQ,iBAEjB,IAAS,IAAS,IAAS,KACpB,GAEP,IAAS,GACF,SAEJ,CACX,CAEA,SAAS,IAAgB,EAAQ,CAC7B,GAAM,CAAE,QAAQ,QAAQ,QAAU,EAC5B,EAAS,CAAC,EACV,EAAW,EAAK,SAChB,EAAe,EAAK,OACpB,EAAa,IAAc,EAAO,CAAK,EAC7C,EAAW,KAAK,GAAoB,CAChC,EAAG,KACH,EAAG,EAAM,MACb,EAAG,CAAI,CAAC,EACR,IAAI,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAI,CACpC,IAAM,EAAU,EAAS,GACzB,IAAI,IAAI,EAAI,EAAQ,MAAO,GAAK,EAAQ,IAAK,IACzC,IAAe,EAAQ,EAAa,GAAI,CAAU,CAE1D,CACA,OAAO,IAAI,GAAY,CACnB,SACA,QAAS,CAAC,CACd,CAAC,CACL,CACC,SAAS,IAAc,EAAO,EAAO,CAClC,IAAM,EAAQ,CAAC,EACT,EAAQ,EAAM,wBAAwB,MAAM,EAClD,IAAI,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAI,CACjC,IAAM,EAAO,EAAM,GACnB,GAAI,EAAK,QAAU,EACf,MAEC,EAAK,QACN,EAAM,QAAQ,EAAK,OAAO,CAElC,CACA,OAAO,CACX,CACC,SAAS,IAAe,EAAQ,EAAa,EAAY,CACtD,IAAM,EAAY,CAAC,EACnB,IAAI,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAI,CACtC,IAAM,EAAO,EAAW,GAClB,CAAE,QAAQ,OAAO,SAAW,IAAU,EAAM,EAAa,GAAG,EAC9D,MAAC,GAAS,GAAS,GAGvB,IAAI,EACA,EAAU,QAAQ,CAAK,OAGvB,GADA,EAAO,KAAK,CAAK,EACb,CAAC,EACD,KAER,CACJ,CACA,EAAO,KAAK,GAAG,CAAS,CAC5B,CACC,SAAS,IAAU,EAAM,EAAa,EAAU,CAC7C,IAAM,EAAQ,EAAK,YAAY,EAAa,CAAQ,EACpD,GAAI,CAAC,EACD,MAAO,CAAC,EAEZ,IAAM,EAAa,EAAM,GACnB,EAAW,EAAK,SAChB,EAAa,EAAK,OACpB,EAAQ,GACR,EAAO,GACX,IAAI,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAI,CACpC,IAAM,EAAU,EAAS,GACnB,EAAa,EAAW,EAAQ,OAAO,GACvC,EAAY,EAAW,EAAQ,KAAK,GAC1C,GAAI,GAAW,EAAY,EAAY,CAAS,EAAG,CAC/C,EAAQ,IAAe,EACvB,EAAO,IAAe,EACtB,KACJ,CACJ,CACA,MAAO,CACH,QACA,OACA,OACJ,CACJ,CAEA,IAAM,GAAN,KAAgB,CACZ,YAAY,EAAK,CACb,KAAK,EAAI,EAAK,EACd,KAAK,EAAI,EAAK,EACd,KAAK,OAAS,EAAK,MACvB,CACA,YAAY,EAAK,EAAQ,EAAM,CAC3B,GAAM,CAAE,IAAI,IAAI,UAAY,KAM5B,MALA,KAAmB,CACf,MAAO,EACP,IAAK,EACT,EACA,EAAI,IAAI,EAAG,EAAG,EAAQ,EAAO,IAAK,EAAO,MAAO,EAAI,EAC7C,CAAC,EAAK,MACjB,CACA,YAAY,EAAO,CACf,GAAM,CAAE,IAAI,IAAI,UAAY,KACtB,EAAQ,EAAM,MACpB,MAAO,CACH,EAAG,EAAI,KAAK,IAAI,CAAK,EAAI,EACzB,EAAG,EAAI,KAAK,IAAI,CAAK,EAAI,EACzB,OACJ,CACJ,CACJ,EAEA,SAAS,IAAW,EAAQ,CACxB,GAAM,CAAE,QAAQ,OAAO,QAAU,EACjC,GAAI,GAAe,CAAI,EACnB,OAAO,IAAe,EAAO,CAAI,EAErC,GAAI,IAAS,QACT,OAAO,IAAgB,CAAM,EAEjC,GAAI,IAAS,QACT,MAAO,GAEX,IAAM,EAAW,IAAgB,CAAM,EAIvC,OAHI,aAAoB,GACb,EAEJ,GAAoB,EAAU,CAAI,CAC7C,CACC,SAAS,IAAe,EAAO,EAAO,CACnC,IAAM,EAAO,EAAM,eAAe,CAAK,EAEvC,OADgB,GAAQ,EAAM,iBAAiB,CAAK,EACnC,EAAK,QAAU,IACpC,CACA,SAAS,IAAgB,EAAQ,CAK7B,OAJc,EAAO,OAAS,CAAC,GACrB,yBACC,IAAwB,CAAM,EAElC,IAAsB,CAAM,CACvC,CACA,SAAS,IAAsB,EAAQ,CACnC,GAAM,CAAE,QAAO,CAAC,EAAI,QAAU,EACxB,EAAQ,IAAgB,EAAM,CAAK,EACzC,GAAI,GAAe,CAAK,EAAG,CACvB,IAAM,EAAa,EAAM,aAAa,EACtC,MAAO,CACH,EAAG,EAAa,EAAQ,KACxB,EAAG,EAAa,KAAO,CAC3B,CACJ,CACA,OAAO,IACX,CACA,SAAS,IAAwB,EAAQ,CACrC,GAAM,CAAE,QAAQ,QAAU,EACpB,EAAU,EAAM,QAChB,EAAS,EAAM,UAAU,EAAE,OAC3B,EAAQ,EAAQ,QAAU,EAAM,IAAM,EAAM,IAC5C,EAAQ,IAAgB,EAAM,EAAO,CAAK,EAC1C,EAAS,CAAC,EAChB,GAAI,EAAQ,KAAK,SAAU,CACvB,IAAM,EAAS,EAAM,yBAAyB,EAAG,CAAK,EACtD,OAAO,IAAI,GAAU,CACjB,EAAG,EAAO,EACV,EAAG,EAAO,EACV,OAAQ,EAAM,8BAA8B,CAAK,CACrD,CAAC,CACL,CACA,IAAI,IAAI,EAAI,EAAG,EAAI,EAAQ,EAAE,EACzB,EAAO,KAAK,EAAM,yBAAyB,EAAG,CAAK,CAAC,EAExD,OAAO,CACX,CAEA,SAAS,GAAU,EAAK,EAAQ,EAAM,CAClC,IAAM,EAAS,IAAW,CAAM,EAC1B,CAAE,QAAQ,QAAQ,OAAO,QAAQ,QAAU,EAC3C,EAAW,EAAK,QAChB,EAAa,EAAS,KACtB,EAAQ,EAAS,gBACjB,CAAE,QAAO,EAAQ,QAAO,GAAW,GAAc,CAAC,EAElD,EAAO,GAAmB,EADnB,EAAM,eAAe,CACQ,CAAC,EACvC,GAAU,EAAK,OAAO,SACtB,GAAS,EAAK,CAAI,EAClB,IAAO,EAAK,CACR,OACA,SACA,QACA,QACA,OACA,QACA,OACA,MACJ,CAAC,EACD,GAAW,CAAG,EAEtB,CACA,SAAS,IAAO,EAAK,EAAK,CACtB,GAAM,CAAE,OAAO,SAAS,QAAQ,QAAQ,OAAO,QAAQ,QAAU,EAC3D,EAAW,EAAK,MAAQ,QAAU,EAAI,KAC5C,EAAI,KAAK,EACT,IAAI,EAAY,EACZ,IAAU,IACN,IAAa,KACb,GAAa,EAAK,EAAQ,EAAK,GAAG,EAClC,GAAK,EAAK,CACN,OACA,SACA,MAAO,EACP,QACA,WACA,MACJ,CAAC,EACD,EAAI,QAAQ,EACZ,EAAI,KAAK,EACT,GAAa,EAAK,EAAQ,EAAK,MAAM,GAC9B,IAAa,MACpB,GAAe,EAAK,EAAQ,EAAK,IAAI,EACrC,GAAK,EAAK,CACN,OACA,SACA,MAAO,EACP,QACA,WACA,MACJ,CAAC,EACD,EAAI,QAAQ,EACZ,EAAI,KAAK,EACT,GAAe,EAAK,EAAQ,EAAK,KAAK,EACtC,EAAY,IAGpB,GAAK,EAAK,CACN,OACA,SACA,MAAO,EACP,QACA,WACA,MACJ,CAAC,EACD,EAAI,QAAQ,CAChB,CACA,SAAS,GAAa,EAAK,EAAQ,EAAO,CACtC,GAAM,CAAE,WAAW,UAAY,EAC3B,EAAQ,GACR,EAAW,GACf,EAAI,UAAU,EACd,IAAK,IAAM,KAAW,EAAS,CAC3B,GAAM,CAAE,QAAQ,OAAS,EACnB,EAAa,EAAO,GACpB,EAAY,EAAO,GAAgB,EAAO,EAAK,CAAM,GACvD,GACA,EAAI,OAAO,EAAW,EAAG,EAAW,CAAC,EACrC,EAAQ,KAER,EAAI,OAAO,EAAW,EAAG,CAAK,EAC9B,EAAI,OAAO,EAAW,EAAG,EAAW,CAAC,GAEzC,EAAW,CAAC,CAAC,EAAO,YAAY,EAAK,EAAS,CAC1C,KAAM,CACV,CAAC,EACG,EACA,EAAI,UAAU,EAEd,EAAI,OAAO,EAAU,EAAG,CAAK,CAErC,CACA,EAAI,OAAO,EAAO,MAAM,EAAE,EAAG,CAAK,EAClC,EAAI,UAAU,EACd,EAAI,KAAK,CACb,CACA,SAAS,GAAe,EAAK,EAAQ,EAAO,CACxC,GAAM,CAAE,WAAW,UAAY,EAC3B,EAAQ,GACR,EAAW,GACf,EAAI,UAAU,EACd,IAAK,IAAM,KAAW,EAAS,CAC3B,GAAM,CAAE,QAAQ,OAAS,EACnB,EAAa,EAAO,GACpB,EAAY,EAAO,GAAgB,EAAO,EAAK,CAAM,GACvD,GACA,EAAI,OAAO,EAAW,EAAG,EAAW,CAAC,EACrC,EAAQ,KAER,EAAI,OAAO,EAAO,EAAW,CAAC,EAC9B,EAAI,OAAO,EAAW,EAAG,EAAW,CAAC,GAEzC,EAAW,CAAC,CAAC,EAAO,YAAY,EAAK,EAAS,CAC1C,KAAM,CACV,CAAC,EACG,EACA,EAAI,UAAU,EAEd,EAAI,OAAO,EAAO,EAAU,CAAC,CAErC,CACA,EAAI,OAAO,EAAO,EAAO,MAAM,EAAE,CAAC,EAClC,EAAI,UAAU,EACd,EAAI,KAAK,CACb,CACA,SAASoD,GAAK,EAAK,EAAK,CACpB,GAAM,CAAE,OAAO,SAAS,WAAW,QAAQ,QAAQ,QAAU,EACvD,EAAW,IAAU,EAAM,EAAQ,CAAQ,EACjD,IAAK,GAAM,CAAE,OAAQ,EAAM,OAAQ,EAAM,QAAQ,SAAU,EAAS,CAChE,GAAM,CAAE,MAAO,CAAE,kBAAiB,GAAW,CAAC,GAAO,EAC/C,EAAW,IAAW,GAC5B,EAAI,KAAK,EACT,EAAI,UAAY,EAChB,IAAW,EAAK,EAAO,EAAM,GAAY,GAAW,EAAU,EAAO,CAAG,CAAC,EACzE,EAAI,UAAU,EACd,IAAM,EAAW,CAAC,CAAC,EAAK,YAAY,EAAK,CAAG,EACxC,EACJ,GAAI,EAAU,CACN,EACA,EAAI,UAAU,EAEd,GAAmB,EAAK,EAAQ,EAAK,CAAQ,EAEjD,IAAM,EAAa,CAAC,CAAC,EAAO,YAAY,EAAK,EAAK,CAC9C,KAAM,EACN,QAAS,EACb,CAAC,EACD,EAAO,GAAY,EACd,GACD,GAAmB,EAAK,EAAQ,EAAO,CAAQ,CAEvD,CACA,EAAI,UAAU,EACd,EAAI,KAAK,EAAO,UAAY,SAAS,EACrC,EAAI,QAAQ,CAChB,CACJ,CACA,SAAS,IAAW,EAAK,EAAO,EAAM,EAAQ,CAC1C,IAAM,EAAY,EAAM,MAAM,UACxB,CAAE,WAAW,QAAQ,OAAS,GAAU,CAAC,EAC/C,GAAI,IAAa,KAAO,IAAa,IAAK,CACtC,IAAI,EAAM,EAAK,EAAO,EAClB,IAAa,KACb,EAAO,EACP,EAAM,EAAU,IAChB,EAAQ,EACR,EAAS,EAAU,SAEnB,EAAO,EAAU,KACjB,EAAM,EACN,EAAQ,EAAU,MAClB,EAAS,GAEb,EAAI,UAAU,EACV,IACA,EAAO,KAAK,IAAI,EAAM,EAAK,IAAI,EAC/B,EAAQ,KAAK,IAAI,EAAO,EAAK,KAAK,EAClC,EAAM,KAAK,IAAI,EAAK,EAAK,GAAG,EAC5B,EAAS,KAAK,IAAI,EAAQ,EAAK,MAAM,GAEzC,EAAI,KAAK,EAAM,EAAK,EAAQ,EAAM,EAAS,CAAG,EAC9C,EAAI,KAAK,CACb,CACJ,CACA,SAAS,GAAmB,EAAK,EAAQ,EAAO,EAAU,CACtD,IAAM,EAAoB,EAAO,YAAY,EAAO,CAAQ,EACxD,GACA,EAAI,OAAO,EAAkB,EAAG,EAAkB,CAAC,CAE3D,CAEA,IAAI,IAAQ,CACR,GAAI,SACJ,oBAAqB,EAAO,EAAO,EAAS,CACxC,IAAM,GAAS,EAAM,KAAK,UAAY,CAAC,GAAG,OACpC,EAAU,CAAC,EACb,EAAM,EAAG,EAAM,EACnB,IAAI,EAAI,EAAG,EAAI,EAAO,EAAE,EACpB,EAAO,EAAM,eAAe,CAAC,EAC7B,EAAO,EAAK,QACZ,EAAS,KACL,GAAQ,EAAK,SAAW,aAAgB,KACxC,EAAS,CACL,QAAS,EAAM,iBAAiB,CAAC,EACjC,MAAO,EACP,KAAM,IAAY,EAAM,EAAG,CAAK,EAChC,QACA,KAAM,EAAK,WAAW,QAAQ,UAC9B,MAAO,EAAK,OACZ,MACJ,GAEJ,EAAK,QAAU,EACf,EAAQ,KAAK,CAAM,EAEvB,IAAI,EAAI,EAAG,EAAI,EAAO,EAAE,EACpB,EAAS,EAAQ,GACb,GAAC,GAAU,EAAO,OAAS,MAG/B,EAAO,KAAO,IAAe,EAAS,EAAG,EAAQ,SAAS,EAElE,EACA,WAAY,EAAO,EAAO,EAAS,CAC/B,IAAM,EAAO,EAAQ,WAAa,aAC5B,EAAW,EAAM,6BAA6B,EAC9C,EAAO,EAAM,UACnB,IAAI,IAAI,EAAI,EAAS,OAAS,EAAG,GAAK,EAAG,EAAE,EAAE,CACzC,IAAM,EAAS,EAAS,GAAG,QACtB,IAGL,EAAO,KAAK,oBAAoB,EAAM,EAAO,IAAI,EAC7C,GAAQ,EAAO,MACf,GAAU,EAAM,IAAK,EAAQ,CAAI,EAEzC,CACJ,EACA,mBAAoB,EAAO,EAAO,EAAS,CACvC,GAAI,EAAQ,WAAa,qBACrB,OAEJ,IAAM,EAAW,EAAM,6BAA6B,EACpD,IAAI,IAAI,EAAI,EAAS,OAAS,EAAG,GAAK,EAAG,EAAE,EAAE,CACzC,IAAM,EAAS,EAAS,GAAG,QACvB,GAAiB,CAAM,GACvB,GAAU,EAAM,IAAK,EAAQ,EAAM,SAAS,CAEpD,CACJ,EACA,kBAAmB,EAAO,EAAM,EAAS,CACrC,IAAM,EAAS,EAAK,KAAK,QACrB,CAAC,GAAiB,CAAM,GAAK,EAAQ,WAAa,qBAGtD,GAAU,EAAM,IAAK,EAAQ,EAAM,SAAS,CAChD,EACA,SAAU,CACN,UAAW,GACX,SAAU,mBACd,CACJ,EAEM,IAAc,EAAW,IAAW,CACtC,GAAI,CAAE,YAAW,EAAW,WAAU,GAAc,EAKpD,OAJI,EAAU,gBACV,EAAY,KAAK,IAAI,EAAW,CAAQ,EACxC,EAAW,EAAU,iBAAmB,KAAK,IAAI,EAAU,CAAQ,GAEhE,CACH,WACA,YACA,WAAY,KAAK,IAAI,EAAU,CAAS,CAC5C,CACJ,EACM,KAAc,EAAG,IAAI,IAAM,MAAQ,IAAM,MAAQ,EAAE,eAAiB,EAAE,cAAgB,EAAE,QAAU,EAAE,MACpG,GAAN,cAAqBF,EAAQ,CAC5B,YAAY,EAAO,CACZ,MAAM,EACN,KAAK,OAAS,GACd,KAAK,eAAiB,CAAC,EAC9B,KAAK,aAAe,KACb,KAAK,aAAe,GACpB,KAAK,MAAQ,EAAO,MACpB,KAAK,QAAU,EAAO,QACtB,KAAK,IAAM,EAAO,IAClB,KAAK,YAAc,OACnB,KAAK,YAAc,OACnB,KAAK,WAAa,OAClB,KAAK,UAAY,OACjB,KAAK,SAAW,OAChB,KAAK,IAAM,OACX,KAAK,OAAS,OACd,KAAK,KAAO,OACZ,KAAK,MAAQ,OACb,KAAK,OAAS,OACd,KAAK,MAAQ,OACb,KAAK,SAAW,OAChB,KAAK,SAAW,OAChB,KAAK,OAAS,OACd,KAAK,SAAW,MACpB,CACA,OAAO,EAAU,EAAW,EAAS,CACjC,KAAK,SAAW,EAChB,KAAK,UAAY,EACjB,KAAK,SAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,IAAI,CACb,CACA,eAAgB,CACR,KAAK,aAAa,GAClB,KAAK,MAAQ,KAAK,SAClB,KAAK,KAAO,KAAK,SAAS,KAC1B,KAAK,MAAQ,KAAK,QAElB,KAAK,OAAS,KAAK,UACnB,KAAK,IAAM,KAAK,SAAS,IACzB,KAAK,OAAS,KAAK,OAE3B,CACA,aAAc,CACV,IAAM,EAAY,KAAK,QAAQ,QAAU,CAAC,EACtC,EAAc,GAAS,EAAU,eAAgB,CACjD,KAAK,KACT,EAAG,IAAI,GAAK,CAAC,EACT,EAAU,SACV,EAAc,EAAY,OAAQ,GAAO,EAAU,OAAO,EAAM,KAAK,MAAM,IAAI,CAAC,GAEhF,EAAU,OACV,EAAc,EAAY,MAAM,EAAG,IAAI,EAAU,KAAK,EAAG,EAAG,KAAK,MAAM,IAAI,CAAC,GAE5E,KAAK,QAAQ,SACb,EAAY,QAAQ,EAExB,KAAK,YAAc,CACvB,CACA,KAAM,CACF,GAAM,CAAE,UAAU,OAAS,KAC3B,GAAI,CAAC,EAAQ,QAAS,CAClB,KAAK,MAAQ,KAAK,OAAS,EAC3B,MACJ,CACA,IAAM,EAAY,EAAQ,OACpB,EAAY,GAAO,EAAU,IAAI,EACjC,EAAW,EAAU,KACrB,EAAc,KAAK,oBAAoB,EACvC,CAAE,WAAW,cAAgB,GAAW,EAAW,CAAQ,EAC7D,EAAO,EACX,EAAI,KAAO,EAAU,OACjB,KAAK,aAAa,GAClB,EAAQ,KAAK,SACb,EAAS,KAAK,SAAS,EAAa,EAAU,EAAU,CAAU,EAAI,KAEtE,EAAS,KAAK,UACd,EAAQ,KAAK,SAAS,EAAa,EAAW,EAAU,CAAU,EAAI,IAE1E,KAAK,MAAQ,KAAK,IAAI,EAAO,EAAQ,UAAY,KAAK,QAAQ,EAC9D,KAAK,OAAS,KAAK,IAAI,EAAQ,EAAQ,WAAa,KAAK,SAAS,CACtE,CACH,SAAS,EAAa,EAAU,EAAU,EAAY,CAC/C,GAAM,CAAE,MAAM,WAAW,QAAS,CAAE,OAAQ,CAAE,aAAmB,KAC3D,EAAW,KAAK,eAAiB,CAAC,EAClC,EAAa,KAAK,WAAa,CACjC,CACJ,EACM,EAAa,EAAa,EAC5B,EAAc,EAClB,EAAI,UAAY,OAChB,EAAI,aAAe,SACnB,IAAI,EAAM,GACN,EAAM,CAAC,EAkBX,OAjBA,KAAK,YAAY,SAAS,EAAY,IAAI,CACtC,IAAM,EAAY,EAAW,EAAW,EAAI,EAAI,YAAY,EAAW,IAAI,EAAE,OACzE,IAAM,GAAK,EAAW,EAAW,OAAS,GAAK,EAAY,EAAI,EAAU,KACzE,GAAe,EACf,EAAW,EAAW,QAAU,EAAI,EAAI,EAAI,IAAM,EAClD,GAAO,EACP,KAEJ,EAAS,GAAK,CACV,KAAM,EACN,MACA,MACA,MAAO,EACP,OAAQ,CACZ,EACA,EAAW,EAAW,OAAS,IAAM,EAAY,CACrD,CAAC,EACM,CACX,CACA,SAAS,EAAa,EAAW,EAAU,EAAa,CACpD,GAAM,CAAE,MAAM,YAAY,QAAS,CAAE,OAAQ,CAAE,aAAmB,KAC5D,EAAW,KAAK,eAAiB,CAAC,EAClC,EAAc,KAAK,YAAc,CAAC,EAClC,EAAc,EAAY,EAC5B,EAAa,EACb,EAAkB,EAClB,EAAmB,EACnB,EAAO,EACP,EAAM,EA4BV,OA3BA,KAAK,YAAY,SAAS,EAAY,IAAI,CACtC,GAAM,CAAE,YAAY,cAAgB,IAAkB,EAAU,EAAW,EAAK,EAAY,CAAW,EACnG,EAAI,GAAK,EAAmB,EAAa,EAAI,EAAU,IACvD,GAAc,EAAkB,EAChC,EAAY,KAAK,CACb,MAAO,EACP,OAAQ,CACZ,CAAC,EACD,GAAQ,EAAkB,EAC1B,IACA,EAAkB,EAAmB,GAEzC,EAAS,GAAK,CACV,OACA,IAAK,EACL,MACA,MAAO,EACP,OAAQ,CACZ,EACA,EAAkB,KAAK,IAAI,EAAiB,CAAS,EACrD,GAAoB,EAAa,CACrC,CAAC,EACD,GAAc,EACd,EAAY,KAAK,CACb,MAAO,EACP,OAAQ,CACZ,CAAC,EACM,CACX,CACA,gBAAiB,CACb,GAAI,CAAC,KAAK,QAAQ,QACd,OAEJ,IAAM,EAAc,KAAK,oBAAoB,EACvC,CAAE,eAAgB,EAAW,QAAS,CAAE,QAAQ,OAAQ,CAAE,WAAa,QAAY,KACnF,EAAY,GAAc,EAAK,KAAK,KAAM,KAAK,KAAK,EAC1D,GAAI,KAAK,aAAa,EAAG,CACrB,IAAI,EAAM,EACN,EAAO,GAAe,EAAO,KAAK,KAAO,EAAS,KAAK,MAAQ,KAAK,WAAW,EAAI,EACvF,IAAK,IAAM,KAAU,EACb,IAAQ,EAAO,MACf,EAAM,EAAO,IACb,EAAO,GAAe,EAAO,KAAK,KAAO,EAAS,KAAK,MAAQ,KAAK,WAAW,EAAI,GAEvF,EAAO,KAAO,KAAK,IAAM,EAAc,EACvC,EAAO,KAAO,EAAU,WAAW,EAAU,EAAE,CAAI,EAAG,EAAO,KAAK,EAClE,GAAQ,EAAO,MAAQ,CAE/B,KAAO,CACH,IAAI,EAAM,EACN,EAAM,GAAe,EAAO,KAAK,IAAM,EAAc,EAAS,KAAK,OAAS,KAAK,YAAY,GAAK,MAAM,EAC5G,IAAK,IAAM,KAAU,EACb,EAAO,MAAQ,IACf,EAAM,EAAO,IACb,EAAM,GAAe,EAAO,KAAK,IAAM,EAAc,EAAS,KAAK,OAAS,KAAK,YAAY,GAAK,MAAM,GAE5G,EAAO,IAAM,EACb,EAAO,MAAQ,KAAK,KAAO,EAC3B,EAAO,KAAO,EAAU,WAAW,EAAU,EAAE,EAAO,IAAI,EAAG,EAAO,KAAK,EACzE,GAAO,EAAO,OAAS,CAE/B,CACJ,CACA,cAAe,CACX,OAAO,KAAK,QAAQ,WAAa,OAAS,KAAK,QAAQ,WAAa,QACxE,CACA,MAAO,CACH,GAAI,KAAK,QAAQ,QAAS,CACtB,IAAM,EAAM,KAAK,IACjB,GAAS,EAAK,IAAI,EAClB,KAAK,MAAM,EACX,GAAW,CAAG,CAClB,CACJ,CACH,OAAQ,CACD,GAAM,CAAE,QAAS,EAAO,cAAc,aAAa,OAAS,KACtD,CAAE,QAAQ,OAAQ,GAAe,EACjC,EAAe,GAAS,MACxB,EAAY,GAAc,EAAK,IAAK,KAAK,KAAM,KAAK,KAAK,EACzD,EAAY,GAAO,EAAU,IAAI,EACjC,CAAE,WAAa,EACf,EAAW,EAAU,KACrB,EAAe,EAAW,EAC5B,EACJ,KAAK,UAAU,EACf,EAAI,UAAY,EAAU,UAAU,MAAM,EAC1C,EAAI,aAAe,SACnB,EAAI,UAAY,GAChB,EAAI,KAAO,EAAU,OACrB,GAAM,CAAE,WAAW,YAAY,cAAgB,GAAW,EAAW,CAAQ,EACvE,EAAgB,SAAS,EAAG,EAAG,EAAY,CAC7C,GAAI,MAAM,CAAQ,GAAK,GAAY,GAAK,MAAM,CAAS,GAAK,EAAY,EACpE,OAEJ,EAAI,KAAK,EACT,IAAM,EAAY,GAAe,EAAW,UAAW,CAAC,EAQxD,GAPA,EAAI,UAAY,GAAe,EAAW,UAAW,CAAY,EACjE,EAAI,QAAU,GAAe,EAAW,QAAS,MAAM,EACvD,EAAI,eAAiB,GAAe,EAAW,eAAgB,CAAC,EAChE,EAAI,SAAW,GAAe,EAAW,SAAU,OAAO,EAC1D,EAAI,UAAY,EAChB,EAAI,YAAc,GAAe,EAAW,YAAa,CAAY,EACrE,EAAI,YAAY,GAAe,EAAW,SAAU,CAAC,CAAC,CAAC,EACnD,EAAU,cASV,GAAgB,EAAK,CAPjB,OAAQ,EAAY,KAAK,MAAQ,EACjC,WAAY,EAAW,WACvB,SAAU,EAAW,SACrB,YAAa,CAIc,EAFf,EAAU,MAAM,EAAG,EAAW,CAEN,EADxB,EAAI,EACgC,EAAU,iBAAmB,CAAQ,MACtF,CACH,IAAM,EAAU,EAAI,KAAK,KAAK,EAAW,GAAa,EAAG,CAAC,EACpD,EAAW,EAAU,WAAW,EAAG,CAAQ,EAC3C,EAAe,GAAc,EAAW,YAAY,EAC1D,EAAI,UAAU,EACV,OAAO,OAAO,CAAY,EAAE,KAAM,GAAI,IAAM,CAAC,EAC7C,GAAmB,EAAK,CACpB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,OAAQ,CACZ,CAAC,EAED,EAAI,KAAK,EAAU,EAAS,EAAU,CAAS,EAEnD,EAAI,KAAK,EACL,IAAc,GACd,EAAI,OAAO,CAEnB,CACA,EAAI,QAAQ,CAChB,EACM,EAAW,SAAS,EAAG,EAAG,EAAY,CACxC,GAAW,EAAK,EAAW,KAAM,EAAG,EAAI,EAAa,EAAG,EAAW,CAC/D,cAAe,EAAW,OAC1B,UAAW,EAAU,UAAU,EAAW,SAAS,CACvD,CAAC,CACL,EACM,EAAe,KAAK,aAAa,EACjC,EAAc,KAAK,oBAAoB,EAC7C,CAOI,CAPA,EACS,CACL,EAAG,GAAe,EAAO,KAAK,KAAO,EAAS,KAAK,MAAQ,EAAW,EAAE,EACxE,EAAG,KAAK,IAAM,EAAU,EACxB,KAAM,CACV,EAES,CACL,EAAG,KAAK,KAAO,EACf,EAAG,GAAe,EAAO,KAAK,IAAM,EAAc,EAAS,KAAK,OAAS,EAAY,GAAG,MAAM,EAC9F,KAAM,CACV,EAEJ,GAAsB,KAAK,IAAK,EAAK,aAAa,EAClD,IAAM,EAAa,EAAa,EAChC,KAAK,YAAY,SAAS,EAAY,IAAI,CACtC,EAAI,YAAc,EAAW,UAC7B,EAAI,UAAY,EAAW,UAC3B,IAAM,EAAY,EAAI,YAAY,EAAW,IAAI,EAAE,MAC7C,EAAY,EAAU,UAAU,CAAyB,CAAW,YAAY,EAAU,SAAU,EACpG,EAAQ,EAAW,EAAe,EACpC,EAAI,EAAO,EACX,EAAI,EAAO,EAiBf,GAhBA,EAAU,SAAS,KAAK,KAAK,EACzB,EACI,EAAI,GAAK,EAAI,EAAQ,EAAU,KAAK,QACpC,EAAI,EAAO,GAAK,EAChB,EAAO,OACP,EAAI,EAAO,EAAI,GAAe,EAAO,KAAK,KAAO,EAAS,KAAK,MAAQ,EAAW,EAAO,KAAK,GAE3F,EAAI,GAAK,EAAI,EAAa,KAAK,SACtC,EAAI,EAAO,EAAI,EAAI,EAAY,EAAO,MAAM,MAAQ,EACpD,EAAO,OACP,EAAI,EAAO,EAAI,GAAe,EAAO,KAAK,IAAM,EAAc,EAAS,KAAK,OAAS,EAAY,EAAO,MAAM,MAAM,GAGxH,EADc,EAAU,EAAE,CACR,EAAG,EAAG,CAAU,EAClC,EAAI,IAAO,EAAW,EAAI,EAAW,EAAc,EAAe,EAAI,EAAQ,KAAK,MAAO,EAAK,GAAG,EAClG,EAAS,EAAU,EAAE,CAAC,EAAG,EAAG,CAAU,EAClC,EACA,EAAO,GAAK,EAAQ,OACjB,GAAI,OAAO,EAAW,MAAS,SAAU,CAC5C,IAAM,EAAiB,EAAU,WACjC,EAAO,GAAK,GAA0B,EAAY,CAAc,EAAI,CACxE,MACI,EAAO,GAAK,CAEpB,CAAC,EACD,GAAqB,KAAK,IAAK,EAAK,aAAa,CACrD,CACH,WAAY,CACL,IAAM,EAAO,KAAK,QACZ,EAAY,EAAK,MACjB,EAAY,GAAO,EAAU,IAAI,EACjC,EAAe,GAAU,EAAU,OAAO,EAChD,GAAI,CAAC,EAAU,QACX,OAEJ,IAAM,EAAY,GAAc,EAAK,IAAK,KAAK,KAAM,KAAK,KAAK,EACzD,EAAM,KAAK,IACX,EAAW,EAAU,SACrB,EAAe,EAAU,KAAO,EAChC,EAA6B,EAAa,IAAM,EAClD,EACA,EAAO,KAAK,KACZ,EAAW,KAAK,MACpB,GAAI,KAAK,aAAa,EAClB,EAAW,KAAK,IAAI,GAAG,KAAK,UAAU,EACtC,EAAI,KAAK,IAAM,EACf,EAAO,GAAe,EAAK,MAAO,EAAM,KAAK,MAAQ,CAAQ,MAC1D,CACH,IAAM,EAAY,KAAK,YAAY,QAAQ,EAAK,IAAO,KAAK,IAAI,EAAK,EAAK,MAAM,EAAG,CAAC,EACpF,EAAI,EAA6B,GAAe,EAAK,MAAO,KAAK,IAAK,KAAK,OAAS,EAAY,EAAK,OAAO,QAAU,KAAK,oBAAoB,CAAC,CACpJ,CACA,IAAM,EAAI,GAAe,EAAU,EAAM,EAAO,CAAQ,EACxD,EAAI,UAAY,EAAU,UAAU,GAAmB,CAAQ,CAAC,EAChE,EAAI,aAAe,SACnB,EAAI,YAAc,EAAU,MAC5B,EAAI,UAAY,EAAU,MAC1B,EAAI,KAAO,EAAU,OACrB,GAAW,EAAK,EAAU,KAAM,EAAG,EAAG,CAAS,CACnD,CACH,qBAAsB,CACf,IAAM,EAAY,KAAK,QAAQ,MACzB,EAAY,GAAO,EAAU,IAAI,EACjC,EAAe,GAAU,EAAU,OAAO,EAChD,OAAO,EAAU,QAAU,EAAU,WAAa,EAAa,OAAS,CAC5E,CACH,iBAAiB,EAAG,EAAG,CAChB,IAAI,EAAG,EAAQ,EACf,GAAI,GAAW,EAAG,KAAK,KAAM,KAAK,KAAK,GAAK,GAAW,EAAG,KAAK,IAAK,KAAK,MAAM,EAE3E,KADA,EAAK,KAAK,eACN,EAAI,EAAG,EAAI,EAAG,OAAQ,EAAE,EAExB,GADA,EAAS,EAAG,GACR,GAAW,EAAG,EAAO,KAAM,EAAO,KAAO,EAAO,KAAK,GAAK,GAAW,EAAG,EAAO,IAAK,EAAO,IAAM,EAAO,MAAM,EAC9G,OAAO,KAAK,YAAY,EAEhC,CAEJ,OAAO,IACX,CACH,YAAY,EAAG,CACR,IAAM,EAAO,KAAK,QAClB,GAAI,CAAC,IAAW,EAAE,KAAM,CAAI,EACxB,OAEJ,IAAM,EAAc,KAAK,iBAAiB,EAAE,EAAG,EAAE,CAAC,EAClD,GAAI,EAAE,OAAS,aAAe,EAAE,OAAS,WAAY,CACjD,IAAM,EAAW,KAAK,aAChB,EAAW,IAAW,EAAU,CAAW,EAC7C,GAAY,CAAC,GACb,GAAS,EAAK,QAAS,CACnB,EACA,EACA,IACJ,EAAG,IAAI,EAEX,KAAK,aAAe,EAChB,GAAe,CAAC,GAChB,GAAS,EAAK,QAAS,CACnB,EACA,EACA,IACJ,EAAG,IAAI,CAEf,MAAW,GACP,GAAS,EAAK,QAAS,CACnB,EACA,EACA,IACJ,EAAG,IAAI,CAEf,CACJ,EACA,SAAS,IAAkB,EAAU,EAAW,EAAK,EAAY,EAAa,CAG1E,MAAO,CACH,UAHc,IAAmB,EAAY,EAAU,EAAW,CAG1D,EACR,WAHe,IAAoB,EAAa,EAAY,EAAU,UAG7D,CACb,CACJ,CACA,SAAS,IAAmB,EAAY,EAAU,EAAW,EAAK,CAC9D,IAAI,EAAiB,EAAW,KAIhC,OAHI,GAAkB,OAAO,GAAmB,WAC5C,EAAiB,EAAe,QAAQ,EAAG,IAAI,EAAE,OAAS,EAAE,OAAS,EAAI,CAAC,GAEvE,EAAW,EAAU,KAAO,EAAI,EAAI,YAAY,CAAc,EAAE,KAC3E,CACA,SAAS,IAAoB,EAAa,EAAY,EAAgB,CAClE,IAAI,EAAa,EAIjB,OAHI,OAAO,EAAW,MAAS,WAC3B,EAAa,GAA0B,EAAY,CAAc,GAE9D,CACX,CACA,SAAS,GAA0B,EAAY,EAAgB,CAE3D,OAAO,GADa,EAAW,KAAO,EAAW,KAAK,OAAS,EAEnE,CACA,SAAS,IAAW,EAAM,EAAM,CAO5B,MAHA,IAHK,IAAS,aAAe,IAAS,cAAgB,EAAK,SAAW,EAAK,UAGvE,EAAK,UAAY,IAAS,SAAW,IAAS,WAItD,CACA,IAAI,IAAgB,CAChB,GAAI,SACP,SAAU,GACP,MAAO,EAAO,EAAO,EAAS,CAC1B,IAAM,EAAS,EAAM,OAAS,IAAI,GAAO,CACrC,IAAK,EAAM,IACX,UACA,OACJ,CAAC,EACD,GAAQ,UAAU,EAAO,EAAQ,CAAO,EACxC,GAAQ,OAAO,EAAO,CAAM,CAChC,EACA,KAAM,EAAO,CACT,GAAQ,UAAU,EAAO,EAAM,MAAM,EACrC,OAAO,EAAM,MACjB,EACA,aAAc,EAAO,EAAO,EAAS,CACjC,IAAM,EAAS,EAAM,OACrB,GAAQ,UAAU,EAAO,EAAQ,CAAO,EACxC,EAAO,QAAU,CACrB,EACA,YAAa,EAAO,CAChB,IAAM,EAAS,EAAM,OACrB,EAAO,YAAY,EACnB,EAAO,eAAe,CAC1B,EACA,WAAY,EAAO,EAAM,CAChB,EAAK,QACN,EAAM,OAAO,YAAY,EAAK,KAAK,CAE3C,EACA,SAAU,CACN,QAAS,GACT,SAAU,MACV,MAAO,SACP,SAAU,GACV,QAAS,GACT,OAAQ,IACR,QAAS,EAAG,EAAY,EAAQ,CAC5B,IAAM,EAAQ,EAAW,aACnB,EAAK,EAAO,MACd,EAAG,iBAAiB,CAAK,GACzB,EAAG,KAAK,CAAK,EACb,EAAW,OAAS,KAEpB,EAAG,KAAK,CAAK,EACb,EAAW,OAAS,GAE5B,EACA,QAAS,KACT,QAAS,KACT,OAAQ,CACJ,MAAQ,GAAM,EAAI,MAAM,QAAQ,MAChC,SAAU,GACV,QAAS,GACT,eAAgB,EAAO,CACnB,IAAM,EAAW,EAAM,KAAK,SACtB,CAAE,OAAQ,CAAE,gBAAgB,aAAa,YAAY,QAAQ,kBAAkB,iBAAqB,EAAM,OAAO,QACvH,OAAO,EAAM,uBAAuB,EAAE,IAAK,GAAO,CAC9C,IAAM,EAAQ,EAAK,WAAW,SAAS,EAAgB,EAAI,MAAS,EAC9D,EAAc,GAAU,EAAM,WAAW,EAC/C,MAAO,CACH,KAAM,EAAS,EAAK,OAAO,MAC3B,UAAW,EAAM,gBACjB,UAAW,EACX,OAAQ,CAAC,EAAK,QACd,QAAS,EAAM,eACf,SAAU,EAAM,WAChB,eAAgB,EAAM,iBACtB,SAAU,EAAM,gBAChB,WAAY,EAAY,MAAQ,EAAY,QAAU,EACtD,YAAa,EAAM,YACnB,WAAY,GAAc,EAAM,WAChC,SAAU,EAAM,SAChB,UAAW,GAAa,EAAM,UAC9B,aAAc,IAAoB,GAAgB,EAAM,cACxD,aAAc,EAAK,KACvB,CACJ,EAAG,IAAI,CACX,CACJ,EACA,MAAO,CACH,MAAQ,GAAM,EAAI,MAAM,QAAQ,MAChC,QAAS,GACT,SAAU,SACV,KAAM,EACV,CACJ,EACA,YAAa,CACT,YAAc,GAAO,CAAC,EAAK,WAAW,IAAI,EAC1C,OAAQ,CACJ,YAAc,GAAO,CAAC,CACd,iBACA,SACA,MACJ,EAAE,SAAS,CAAI,CACvB,CACJ,CACJ,EAuLM,GAAc,CACnB,QAAS,EAAO,CACT,GAAI,CAAC,EAAM,OACP,MAAO,GAEX,IAAI,EAAG,EACH,EAAO,IAAI,IACX,EAAI,EACJ,EAAQ,EACZ,IAAI,EAAI,EAAG,EAAM,EAAM,OAAQ,EAAI,EAAK,EAAE,EAAE,CACxC,IAAM,EAAK,EAAM,GAAG,QACpB,GAAI,GAAM,EAAG,SAAS,EAAG,CACrB,IAAM,EAAM,EAAG,gBAAgB,EAC/B,EAAK,IAAI,EAAI,CAAC,EACd,GAAK,EAAI,EACT,EAAE,CACN,CACJ,CAOA,OANI,IAAU,GAAK,EAAK,OAAS,EACtB,GAKJ,CACH,EAJa,CACb,GAAG,CACP,EAAE,QAAQ,EAAG,IAAI,EAAI,CAAC,EAAI,EAAK,KAG3B,EAAG,EAAI,CACX,CACJ,EACH,QAAS,EAAO,EAAe,CACxB,GAAI,CAAC,EAAM,OACP,MAAO,GAEX,IAAI,EAAI,EAAc,EAClB,EAAI,EAAc,EAClB,EAAc,IACd,EAAG,EAAK,EACZ,IAAI,EAAI,EAAG,EAAM,EAAM,OAAQ,EAAI,EAAK,EAAE,EAAE,CACxC,IAAM,EAAK,EAAM,GAAG,QACpB,GAAI,GAAM,EAAG,SAAS,EAAG,CAErB,IAAM,EAAI,GAAsB,EADjB,EAAG,eACkC,CAAC,EACjD,EAAI,IACJ,EAAc,EACd,EAAiB,EAEzB,CACJ,CACA,GAAI,EAAgB,CAChB,IAAM,EAAK,EAAe,gBAAgB,EAC1C,EAAI,EAAG,EACP,EAAI,EAAG,CACX,CACA,MAAO,CACH,IACA,GACJ,CACJ,CACJ,EACA,SAAS,GAAa,EAAM,EAAQ,CAQhC,OAPI,IACI,GAAQ,CAAM,EACd,MAAM,UAAU,KAAK,MAAM,EAAM,CAAM,EAEvC,EAAK,KAAK,CAAM,GAGjB,CACX,CACC,SAAS,GAAc,EAAK,CAIzB,OAHK,OAAO,GAAQ,UAAY,aAAe,SAAW,EAAI,QAAQ;CAAI,EAAI,GACnE,EAAI,MAAM;CAAI,EAElB,CACX,CACC,SAAS,IAAkB,EAAO,EAAM,CACrC,GAAM,CAAE,UAAU,eAAe,SAAW,EACtC,EAAa,EAAM,eAAe,CAAY,EAAE,WAChD,CAAE,QAAQ,SAAW,EAAW,iBAAiB,CAAK,EAC5D,MAAO,CACH,QACA,QACA,OAAQ,EAAW,UAAU,CAAK,EAClC,IAAK,EAAM,KAAK,SAAS,GAAc,KAAK,GAC5C,eAAgB,EAChB,QAAS,EAAW,WAAW,EAC/B,UAAW,EACX,eACA,SACJ,CACJ,CACC,SAAS,GAAe,EAAS,EAAS,CACvC,IAAM,EAAM,EAAQ,MAAM,IACpB,CAAE,OAAO,SAAS,SAAW,EAC7B,CAAE,WAAW,aAAe,EAC5B,EAAW,GAAO,EAAQ,QAAQ,EAClC,EAAY,GAAO,EAAQ,SAAS,EACpC,EAAa,GAAO,EAAQ,UAAU,EACtC,EAAiB,EAAM,OACvB,EAAkB,EAAO,OACzB,EAAoB,EAAK,OACzB,EAAU,GAAU,EAAQ,OAAO,EACrC,EAAS,EAAQ,OACjB,EAAQ,EACR,EAAqB,EAAK,QAAQ,EAAO,IAAW,EAAQ,EAAS,OAAO,OAAS,EAAS,MAAM,OAAS,EAAS,MAAM,OAAQ,CAAC,EAKzI,GAJA,GAAsB,EAAQ,WAAW,OAAS,EAAQ,UAAU,OAChE,IACA,GAAU,EAAiB,EAAU,YAAc,EAAiB,GAAK,EAAQ,aAAe,EAAQ,mBAExG,EAAoB,CACpB,IAAM,EAAiB,EAAQ,cAAgB,KAAK,IAAI,EAAW,EAAS,UAAU,EAAI,EAAS,WACnG,GAAU,EAAoB,GAAkB,EAAqB,GAAqB,EAAS,YAAc,EAAqB,GAAK,EAAQ,WACvJ,CACI,IACA,GAAU,EAAQ,gBAAkB,EAAkB,EAAW,YAAc,EAAkB,GAAK,EAAQ,eAElH,IAAI,EAAe,EACb,EAAe,SAAS,EAAM,CAChC,EAAQ,KAAK,IAAI,EAAO,EAAI,YAAY,CAAI,EAAE,MAAQ,CAAY,CACtE,EAiBA,OAhBA,EAAI,KAAK,EACT,EAAI,KAAO,EAAU,OACrB,GAAK,EAAQ,MAAO,CAAY,EAChC,EAAI,KAAO,EAAS,OACpB,GAAK,EAAQ,WAAW,OAAO,EAAQ,SAAS,EAAG,CAAY,EAC/D,EAAe,EAAQ,cAAgB,EAAW,EAAI,EAAQ,WAAa,EAC3E,GAAK,EAAO,GAAW,CACnB,GAAK,EAAS,OAAQ,CAAY,EAClC,GAAK,EAAS,MAAO,CAAY,EACjC,GAAK,EAAS,MAAO,CAAY,CACrC,CAAC,EACD,EAAe,EACf,EAAI,KAAO,EAAW,OACtB,GAAK,EAAQ,OAAQ,CAAY,EACjC,EAAI,QAAQ,EACZ,GAAS,EAAQ,MACV,CACH,QACA,QACJ,CACJ,CACA,SAAS,IAAgB,EAAO,EAAM,CAClC,GAAM,CAAE,IAAI,UAAY,EAMxB,OALI,EAAI,EAAS,EACN,MACA,EAAI,EAAM,OAAS,EAAS,EAC5B,SAEJ,QACX,CACA,SAAS,IAAoB,EAAQ,EAAO,EAAS,EAAM,CACvD,GAAM,CAAE,IAAI,SAAW,EACjB,EAAQ,EAAQ,UAAY,EAAQ,aAI1C,GAHI,IAAW,QAAU,EAAI,EAAQ,EAAQ,EAAM,OAG/C,IAAW,SAAW,EAAI,EAAQ,EAAQ,EAC1C,MAAO,EAEf,CACA,SAAS,IAAgB,EAAO,EAAS,EAAM,EAAQ,CACnD,GAAM,CAAE,IAAI,SAAW,EACjB,CAAE,MAAO,EAAa,UAAW,CAAE,OAAO,UAAc,EAC1D,EAAS,SAWb,OAVI,IAAW,SACX,EAAS,IAAM,EAAO,GAAS,EAAI,OAAS,QACrC,GAAK,EAAQ,EACpB,EAAS,OACF,GAAK,EAAa,EAAQ,IACjC,EAAS,SAET,IAAoB,EAAQ,EAAO,EAAS,CAAI,IAChD,EAAS,UAEN,CACX,CACC,SAAS,GAAmB,EAAO,EAAS,EAAM,CAC/C,IAAM,EAAS,EAAK,QAAU,EAAQ,QAAU,IAAgB,EAAO,CAAI,EAC3E,MAAO,CACH,OAAQ,EAAK,QAAU,EAAQ,QAAU,IAAgB,EAAO,EAAS,EAAM,CAAM,EACrF,QACJ,CACJ,CACA,SAAS,IAAO,EAAM,EAAQ,CAC1B,GAAI,CAAE,IAAI,SAAW,EAMrB,OALI,IAAW,QACX,GAAK,EACE,IAAW,WAClB,GAAK,EAAQ,GAEV,CACX,CACA,SAAS,IAAO,EAAM,EAAQ,EAAgB,CAC1C,GAAI,CAAE,IAAI,UAAY,EAQtB,OAPI,IAAW,MACX,GAAK,EACE,IAAW,SAClB,GAAK,EAAS,EAEd,GAAK,EAAS,EAEX,CACX,CACC,SAAS,GAAmB,EAAS,EAAM,EAAW,EAAO,CAC1D,GAAM,CAAE,YAAY,eAAe,gBAAkB,EAC/C,CAAE,SAAS,UAAY,EACvB,EAAiB,EAAY,EAC7B,CAAE,UAAU,WAAW,aAAa,eAAiB,GAAc,CAAY,EACjF,EAAI,IAAO,EAAM,CAAM,EACrB,EAAI,IAAO,EAAM,EAAQ,CAAc,EAY7C,OAXI,IAAW,SACP,IAAW,OACX,GAAK,EACE,IAAW,UAClB,GAAK,GAEF,IAAW,OAClB,GAAK,KAAK,IAAI,EAAS,CAAU,EAAI,EAC9B,IAAW,UAClB,GAAK,KAAK,IAAI,EAAU,CAAW,EAAI,GAEpC,CACH,EAAG,GAAY,EAAG,EAAG,EAAM,MAAQ,EAAK,KAAK,EAC7C,EAAG,GAAY,EAAG,EAAG,EAAM,OAAS,EAAK,MAAM,CACnD,CACJ,CACA,SAAS,GAAY,EAAS,EAAO,EAAS,CAC1C,IAAM,EAAU,GAAU,EAAQ,OAAO,EACzC,OAAO,IAAU,SAAW,EAAQ,EAAI,EAAQ,MAAQ,EAAI,IAAU,QAAU,EAAQ,EAAI,EAAQ,MAAQ,EAAQ,MAAQ,EAAQ,EAAI,EAAQ,IACpJ,CACC,SAAS,GAAwB,EAAU,CACxC,OAAO,GAAa,CAAC,EAAG,GAAc,CAAQ,CAAC,CACnD,CACA,SAAS,IAAqB,EAAQ,EAAS,EAAc,CACzD,OAAO,GAAc,EAAQ,CACzB,UACA,eACA,KAAM,SACV,CAAC,CACL,CACA,SAAS,GAAkB,EAAW,EAAS,CAC3C,IAAM,EAAW,GAAW,EAAQ,SAAW,EAAQ,QAAQ,SAAW,EAAQ,QAAQ,QAAQ,UAClG,OAAO,EAAW,EAAU,SAAS,CAAQ,EAAI,CACrD,CACA,IAAM,GAAmB,CACrB,YAAa,GACb,MAAO,EAAc,CACjB,GAAI,EAAa,OAAS,EAAG,CACzB,IAAM,EAAO,EAAa,GACpB,EAAS,EAAK,MAAM,KAAK,OACzB,EAAa,EAAS,EAAO,OAAS,EAC5C,GAAI,MAAQ,KAAK,SAAW,KAAK,QAAQ,OAAS,UAC9C,OAAO,EAAK,QAAQ,OAAS,GAC1B,GAAI,EAAK,MACZ,OAAO,EAAK,MACT,GAAI,EAAa,GAAK,EAAK,UAAY,EAC1C,OAAO,EAAO,EAAK,UAE3B,CACA,MAAO,EACX,EACA,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,MAAO,EAAa,CAChB,GAAI,MAAQ,KAAK,SAAW,KAAK,QAAQ,OAAS,UAC9C,OAAO,EAAY,MAAQ,KAAO,EAAY,gBAAkB,EAAY,eAEhF,IAAI,EAAQ,EAAY,QAAQ,OAAS,GACrC,IACA,GAAS,MAEb,IAAM,EAAQ,EAAY,eAI1B,OAHK,GAAc,CAAK,IACpB,GAAS,GAEN,CACX,EACA,WAAY,EAAa,CAErB,IAAM,EADO,EAAY,MAAM,eAAe,EAAY,YACvC,EAAE,WAAW,SAAS,EAAY,SAAS,EAC9D,MAAO,CACH,YAAa,EAAQ,YACrB,gBAAiB,EAAQ,gBACzB,YAAa,EAAQ,YACrB,WAAY,EAAQ,WACpB,iBAAkB,EAAQ,iBAC1B,aAAc,CAClB,CACJ,EACA,gBAAkB,CACd,OAAO,KAAK,QAAQ,SACxB,EACA,gBAAiB,EAAa,CAE1B,IAAM,EADO,EAAY,MAAM,eAAe,EAAY,YACvC,EAAE,WAAW,SAAS,EAAY,SAAS,EAC9D,MAAO,CACH,WAAY,EAAQ,WACpB,SAAU,EAAQ,QACtB,CACJ,EACA,WAAY,GACZ,UAAW,GACX,aAAc,GACd,OAAQ,GACR,YAAa,EACjB,EACC,SAAS,GAA2B,EAAW,EAAM,EAAK,EAAK,CAC5D,IAAM,EAAS,EAAU,GAAM,KAAK,EAAK,CAAG,EAI5C,OAHW,IAAW,OACX,GAAiB,GAAM,KAAK,EAAK,CAAG,EAExC,CACX,CACA,IAAM,GAAN,cAAsBA,EAAQ,CAC7B,OAAO,YAAc,GAClB,YAAY,EAAO,CACf,MAAM,EACN,KAAK,QAAU,EACf,KAAK,QAAU,CAAC,EAChB,KAAK,eAAiB,OACtB,KAAK,MAAQ,OACb,KAAK,kBAAoB,OACzB,KAAK,cAAgB,CAAC,EACtB,KAAK,YAAc,OACnB,KAAK,SAAW,OAChB,KAAK,MAAQ,EAAO,MACpB,KAAK,QAAU,EAAO,QACtB,KAAK,WAAa,OAClB,KAAK,MAAQ,OACb,KAAK,WAAa,OAClB,KAAK,KAAO,OACZ,KAAK,UAAY,OACjB,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,EAAI,OACT,KAAK,EAAI,OACT,KAAK,OAAS,OACd,KAAK,MAAQ,OACb,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,YAAc,OACnB,KAAK,iBAAmB,OACxB,KAAK,gBAAkB,MAC3B,CACA,WAAW,EAAS,CAChB,KAAK,QAAU,EACf,KAAK,kBAAoB,OACzB,KAAK,SAAW,MACpB,CACH,oBAAqB,CACd,IAAM,EAAS,KAAK,kBACpB,GAAI,EACA,OAAO,EAEX,IAAM,EAAQ,KAAK,MACb,EAAU,KAAK,QAAQ,WAAW,KAAK,WAAW,CAAC,EACnD,EAAO,EAAQ,SAAW,EAAM,QAAQ,WAAa,EAAQ,WAC7D,EAAa,IAAI,GAAW,KAAK,MAAO,CAAI,EAIlD,OAHI,EAAK,aACL,KAAK,kBAAoB,OAAO,OAAO,CAAU,GAE9C,CACX,CACH,YAAa,CACN,MAAO,CAAkB,KAAK,WAAW,IAAqB,KAAK,MAAM,WAAW,EAAG,KAAM,KAAK,aAAa,CACnH,CACA,SAAS,EAAS,EAAS,CACvB,GAAM,CAAE,aAAe,EACjB,EAAc,GAA2B,EAAW,cAAe,KAAM,CAAO,EAChF,EAAQ,GAA2B,EAAW,QAAS,KAAM,CAAO,EACpE,EAAa,GAA2B,EAAW,aAAc,KAAM,CAAO,EAChF,EAAQ,CAAC,EAIb,MAHA,GAAQ,GAAa,EAAO,GAAc,CAAW,CAAC,EACtD,EAAQ,GAAa,EAAO,GAAc,CAAK,CAAC,EAChD,EAAQ,GAAa,EAAO,GAAc,CAAU,CAAC,EAC9C,CACX,CACA,cAAc,EAAc,EAAS,CACjC,OAAO,GAAwB,GAA2B,EAAQ,UAAW,aAAc,KAAM,CAAY,CAAC,CAClH,CACA,QAAQ,EAAc,EAAS,CAC3B,GAAM,CAAE,aAAe,EACjB,EAAY,CAAC,EAanB,OAZA,GAAK,EAAe,GAAU,CAC1B,IAAM,EAAW,CACb,OAAQ,CAAC,EACT,MAAO,CAAC,EACR,MAAO,CAAC,CACZ,EACM,EAAS,GAAkB,EAAW,CAAO,EACnD,GAAa,EAAS,OAAQ,GAAc,GAA2B,EAAQ,cAAe,KAAM,CAAO,CAAC,CAAC,EAC7G,GAAa,EAAS,MAAO,GAA2B,EAAQ,QAAS,KAAM,CAAO,CAAC,EACvF,GAAa,EAAS,MAAO,GAAc,GAA2B,EAAQ,aAAc,KAAM,CAAO,CAAC,CAAC,EAC3G,EAAU,KAAK,CAAQ,CAC3B,CAAC,EACM,CACX,CACA,aAAa,EAAc,EAAS,CAChC,OAAO,GAAwB,GAA2B,EAAQ,UAAW,YAAa,KAAM,CAAY,CAAC,CACjH,CACA,UAAU,EAAc,EAAS,CAC7B,GAAM,CAAE,aAAe,EACjB,EAAe,GAA2B,EAAW,eAAgB,KAAM,CAAY,EACvF,EAAS,GAA2B,EAAW,SAAU,KAAM,CAAY,EAC3E,EAAc,GAA2B,EAAW,cAAe,KAAM,CAAY,EACvF,EAAQ,CAAC,EAIb,MAHA,GAAQ,GAAa,EAAO,GAAc,CAAY,CAAC,EACvD,EAAQ,GAAa,EAAO,GAAc,CAAM,CAAC,EACjD,EAAQ,GAAa,EAAO,GAAc,CAAW,CAAC,EAC/C,CACX,CACH,aAAa,EAAS,CACf,IAAM,EAAS,KAAK,QACd,EAAO,KAAK,MAAM,KAClB,EAAc,CAAC,EACf,EAAmB,CAAC,EACpB,EAAkB,CAAC,EACrB,EAAe,CAAC,EAChB,EAAG,EACP,IAAI,EAAI,EAAG,EAAM,EAAO,OAAQ,EAAI,EAAK,EAAE,EACvC,EAAa,KAAK,IAAkB,KAAK,MAAO,EAAO,EAAE,CAAC,EAkB9D,OAhBI,EAAQ,SACR,EAAe,EAAa,QAAQ,EAAS,EAAO,IAAQ,EAAQ,OAAO,EAAS,EAAO,EAAO,CAAI,CAAC,GAEvG,EAAQ,WACR,EAAe,EAAa,MAAM,EAAG,IAAI,EAAQ,SAAS,EAAG,EAAG,CAAI,CAAC,GAEzE,GAAK,EAAe,GAAU,CAC1B,IAAM,EAAS,GAAkB,EAAQ,UAAW,CAAO,EAC3D,EAAY,KAAK,GAA2B,EAAQ,aAAc,KAAM,CAAO,CAAC,EAChF,EAAiB,KAAK,GAA2B,EAAQ,kBAAmB,KAAM,CAAO,CAAC,EAC1F,EAAgB,KAAK,GAA2B,EAAQ,iBAAkB,KAAM,CAAO,CAAC,CAC5F,CAAC,EACD,KAAK,YAAc,EACnB,KAAK,iBAAmB,EACxB,KAAK,gBAAkB,EACvB,KAAK,WAAa,EACX,CACX,CACA,OAAO,EAAS,EAAQ,CACpB,IAAM,EAAU,KAAK,QAAQ,WAAW,KAAK,WAAW,CAAC,EACnD,EAAS,KAAK,QAChB,EACA,EAAe,CAAC,EACpB,GAAI,CAAC,EAAO,OACJ,KAAK,UAAY,IACjB,EAAa,CACT,QAAS,CACb,OAED,CACH,IAAM,EAAW,GAAY,EAAQ,UAAU,KAAK,KAAM,EAAQ,KAAK,cAAc,EACrF,EAAe,KAAK,aAAa,CAAO,EACxC,KAAK,MAAQ,KAAK,SAAS,EAAc,CAAO,EAChD,KAAK,WAAa,KAAK,cAAc,EAAc,CAAO,EAC1D,KAAK,KAAO,KAAK,QAAQ,EAAc,CAAO,EAC9C,KAAK,UAAY,KAAK,aAAa,EAAc,CAAO,EACxD,KAAK,OAAS,KAAK,UAAU,EAAc,CAAO,EAClD,IAAM,EAAO,KAAK,MAAQ,GAAe,KAAM,CAAO,EAChD,EAAkB,OAAO,OAAO,CAAC,EAAG,EAAU,CAAI,EAClD,EAAY,GAAmB,KAAK,MAAO,EAAS,CAAe,EACnE,EAAkB,GAAmB,EAAS,EAAiB,EAAW,KAAK,KAAK,EAC1F,KAAK,OAAS,EAAU,OACxB,KAAK,OAAS,EAAU,OACxB,EAAa,CACT,QAAS,EACT,EAAG,EAAgB,EACnB,EAAG,EAAgB,EACnB,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,OAAQ,EAAS,EACjB,OAAQ,EAAS,CACrB,CACJ,CACA,KAAK,cAAgB,EACrB,KAAK,SAAW,OACZ,GACA,KAAK,mBAAmB,EAAE,OAAO,KAAM,CAAU,EAEjD,GAAW,EAAQ,UACnB,EAAQ,SAAS,KAAK,KAAM,CACxB,MAAO,KAAK,MACZ,QAAS,KACT,QACJ,CAAC,CAET,CACA,UAAU,EAAc,EAAK,EAAM,EAAS,CACxC,IAAM,EAAgB,KAAK,iBAAiB,EAAc,EAAM,CAAO,EACvE,EAAI,OAAO,EAAc,GAAI,EAAc,EAAE,EAC7C,EAAI,OAAO,EAAc,GAAI,EAAc,EAAE,EAC7C,EAAI,OAAO,EAAc,GAAI,EAAc,EAAE,CACjD,CACA,iBAAiB,EAAc,EAAM,EAAS,CAC1C,GAAM,CAAE,SAAS,UAAY,KACvB,CAAE,YAAY,gBAAkB,EAChC,CAAE,UAAU,WAAW,aAAa,eAAiB,GAAc,CAAY,EAC/E,CAAE,EAAG,EAAM,EAAG,GAAS,EACvB,CAAE,QAAQ,UAAY,EACxB,EAAI,EAAI,EAAI,EAAI,EAAI,EAoCxB,OAnCI,IAAW,UACX,EAAK,EAAM,EAAS,EAChB,IAAW,QACX,EAAK,EACL,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,IAEV,EAAK,EAAM,EACX,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,GAEd,EAAK,IAEL,CAKI,CALA,IAAW,OACN,EAAM,KAAK,IAAI,EAAS,CAAU,EAAI,EACpC,IAAW,QACb,EAAM,EAAQ,KAAK,IAAI,EAAU,CAAW,EAAI,EAEhD,KAAK,OAEV,IAAW,OACX,EAAK,EACL,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,IAEV,EAAK,EAAM,EACX,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,GAEd,EAAK,GAEF,CACH,KACA,KACA,KACA,KACA,KACA,IACJ,CACJ,CACA,UAAU,EAAI,EAAK,EAAS,CACxB,IAAM,EAAQ,KAAK,MACb,EAAS,EAAM,OACjB,EAAW,EAAc,EAC7B,GAAI,EAAQ,CACR,IAAM,EAAY,GAAc,EAAQ,IAAK,KAAK,EAAG,KAAK,KAAK,EAQ/D,IAPA,EAAG,EAAI,GAAY,KAAM,EAAQ,WAAY,CAAO,EACpD,EAAI,UAAY,EAAU,UAAU,EAAQ,UAAU,EACtD,EAAI,aAAe,SACnB,EAAY,GAAO,EAAQ,SAAS,EACpC,EAAe,EAAQ,aACvB,EAAI,UAAY,EAAQ,WACxB,EAAI,KAAO,EAAU,OACjB,EAAI,EAAG,EAAI,EAAQ,EAAE,EACrB,EAAI,SAAS,EAAM,GAAI,EAAU,EAAE,EAAG,CAAC,EAAG,EAAG,EAAI,EAAU,WAAa,CAAC,EACzE,EAAG,GAAK,EAAU,WAAa,EAC3B,EAAI,IAAM,IACV,EAAG,GAAK,EAAQ,kBAAoB,EAGhD,CACJ,CACH,cAAc,EAAK,EAAI,EAAG,EAAW,EAAS,CACvC,IAAM,EAAa,KAAK,YAAY,GAC9B,EAAkB,KAAK,iBAAiB,GACxC,CAAE,YAAY,YAAc,EAC5B,EAAW,GAAO,EAAQ,QAAQ,EAClC,EAAS,GAAY,KAAM,OAAQ,CAAO,EAC1C,EAAY,EAAU,EAAE,CAAM,EAC9B,EAAU,EAAY,EAAS,YAAc,EAAS,WAAa,GAAa,EAAI,EACpF,EAAS,EAAG,EAAI,EACtB,GAAI,EAAQ,cAAe,CACvB,IAAM,EAAc,CAChB,OAAQ,KAAK,IAAI,EAAU,CAAS,EAAI,EACxC,WAAY,EAAgB,WAC5B,SAAU,EAAgB,SAC1B,YAAa,CACjB,EACM,EAAU,EAAU,WAAW,EAAW,CAAQ,EAAI,EAAW,EACjE,EAAU,EAAS,EAAY,EACrC,EAAI,YAAc,EAAQ,mBAC1B,EAAI,UAAY,EAAQ,mBACxB,GAAU,EAAK,EAAa,EAAS,CAAO,EAC5C,EAAI,YAAc,EAAW,YAC7B,EAAI,UAAY,EAAW,gBAC3B,GAAU,EAAK,EAAa,EAAS,CAAO,CAChD,KAAO,CACH,EAAI,UAAYlD,GAAS,EAAW,WAAW,EAAI,KAAK,IAAI,GAAG,OAAO,OAAO,EAAW,WAAW,CAAC,EAAI,EAAW,aAAe,EAClI,EAAI,YAAc,EAAW,YAC7B,EAAI,YAAY,EAAW,YAAc,CAAC,CAAC,EAC3C,EAAI,eAAiB,EAAW,kBAAoB,EACpD,IAAM,EAAS,EAAU,WAAW,EAAW,CAAQ,EACjD,EAAS,EAAU,WAAW,EAAU,MAAM,EAAW,CAAC,EAAG,EAAW,CAAC,EACzE,EAAe,GAAc,EAAW,YAAY,EACtD,OAAO,OAAO,CAAY,EAAE,KAAM,GAAI,IAAM,CAAC,GAC7C,EAAI,UAAU,EACd,EAAI,UAAY,EAAQ,mBACxB,GAAmB,EAAK,CACpB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,OAAQ,CACZ,CAAC,EACD,EAAI,KAAK,EACT,EAAI,OAAO,EACX,EAAI,UAAY,EAAW,gBAC3B,EAAI,UAAU,EACd,GAAmB,EAAK,CACpB,EAAG,EACH,EAAG,EAAS,EACZ,EAAG,EAAW,EACd,EAAG,EAAY,EACf,OAAQ,CACZ,CAAC,EACD,EAAI,KAAK,IAET,EAAI,UAAY,EAAQ,mBACxB,EAAI,SAAS,EAAQ,EAAQ,EAAU,CAAS,EAChD,EAAI,WAAW,EAAQ,EAAQ,EAAU,CAAS,EAClD,EAAI,UAAY,EAAW,gBAC3B,EAAI,SAAS,EAAQ,EAAS,EAAG,EAAW,EAAG,EAAY,CAAC,EAEpE,CACA,EAAI,UAAY,KAAK,gBAAgB,EACzC,CACA,SAAS,EAAI,EAAK,EAAS,CACvB,GAAM,CAAE,QAAU,KACZ,CAAE,cAAc,YAAY,gBAAgB,YAAY,WAAW,cAAgB,EACnF,EAAW,GAAO,EAAQ,QAAQ,EACpC,EAAiB,EAAS,WAC1B,EAAe,EACb,EAAY,GAAc,EAAQ,IAAK,KAAK,EAAG,KAAK,KAAK,EACzD,EAAiB,SAAS,EAAM,CAClC,EAAI,SAAS,EAAM,EAAU,EAAE,EAAG,EAAI,CAAY,EAAG,EAAG,EAAI,EAAiB,CAAC,EAC9E,EAAG,GAAK,EAAiB,CAC7B,EACM,EAA0B,EAAU,UAAU,CAAS,EACzD,EAAU,EAAW,EAAO,EAAG,EAAG,EAAM,EAQ5C,IAPA,EAAI,UAAY,EAChB,EAAI,aAAe,SACnB,EAAI,KAAO,EAAS,OACpB,EAAG,EAAI,GAAY,KAAM,EAAyB,CAAO,EACzD,EAAI,UAAY,EAAQ,UACxB,GAAK,KAAK,WAAY,CAAc,EACpC,EAAe,GAAiB,IAA4B,QAAU,IAAc,SAAW,EAAW,EAAI,EAAa,EAAW,EAAI,EAAa,EACnJ,EAAI,EAAG,EAAO,EAAK,OAAQ,EAAI,EAAM,EAAE,EAAE,CAUzC,IATA,EAAW,EAAK,GAChB,EAAY,KAAK,gBAAgB,GACjC,EAAI,UAAY,EAChB,GAAK,EAAS,OAAQ,CAAc,EACpC,EAAQ,EAAS,MACb,GAAiB,EAAM,SACvB,KAAK,cAAc,EAAK,EAAI,EAAG,EAAW,CAAO,EACjD,EAAiB,KAAK,IAAI,EAAS,WAAY,CAAS,GAExD,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EACxC,EAAe,EAAM,EAAE,EACvB,EAAiB,EAAS,WAE9B,GAAK,EAAS,MAAO,CAAc,CACvC,CACA,EAAe,EACf,EAAiB,EAAS,WAC1B,GAAK,KAAK,UAAW,CAAc,EACnC,EAAG,GAAK,CACZ,CACA,WAAW,EAAI,EAAK,EAAS,CACzB,IAAM,EAAS,KAAK,OACd,EAAS,EAAO,OAClB,EAAY,EAChB,GAAI,EAAQ,CACR,IAAM,EAAY,GAAc,EAAQ,IAAK,KAAK,EAAG,KAAK,KAAK,EAQ/D,IAPA,EAAG,EAAI,GAAY,KAAM,EAAQ,YAAa,CAAO,EACrD,EAAG,GAAK,EAAQ,gBAChB,EAAI,UAAY,EAAU,UAAU,EAAQ,WAAW,EACvD,EAAI,aAAe,SACnB,EAAa,GAAO,EAAQ,UAAU,EACtC,EAAI,UAAY,EAAQ,YACxB,EAAI,KAAO,EAAW,OAClB,EAAI,EAAG,EAAI,EAAQ,EAAE,EACrB,EAAI,SAAS,EAAO,GAAI,EAAU,EAAE,EAAG,CAAC,EAAG,EAAG,EAAI,EAAW,WAAa,CAAC,EAC3E,EAAG,GAAK,EAAW,WAAa,EAAQ,aAEhD,CACJ,CACA,eAAe,EAAI,EAAK,EAAa,EAAS,CAC1C,GAAM,CAAE,SAAS,UAAY,KACvB,CAAE,IAAI,KAAO,EACb,CAAE,QAAQ,UAAY,EACtB,CAAE,UAAU,WAAW,aAAa,eAAiB,GAAc,EAAQ,YAAY,EAC7F,EAAI,UAAY,EAAQ,gBACxB,EAAI,YAAc,EAAQ,YAC1B,EAAI,UAAY,EAAQ,YACxB,EAAI,UAAU,EACd,EAAI,OAAO,EAAI,EAAS,CAAC,EACrB,IAAW,OACX,KAAK,UAAU,EAAI,EAAK,EAAa,CAAO,EAEhD,EAAI,OAAO,EAAI,EAAQ,EAAU,CAAC,EAClC,EAAI,iBAAiB,EAAI,EAAO,EAAG,EAAI,EAAO,EAAI,CAAQ,EACtD,IAAW,UAAY,IAAW,SAClC,KAAK,UAAU,EAAI,EAAK,EAAa,CAAO,EAEhD,EAAI,OAAO,EAAI,EAAO,EAAI,EAAS,CAAW,EAC9C,EAAI,iBAAiB,EAAI,EAAO,EAAI,EAAQ,EAAI,EAAQ,EAAa,EAAI,CAAM,EAC3E,IAAW,UACX,KAAK,UAAU,EAAI,EAAK,EAAa,CAAO,EAEhD,EAAI,OAAO,EAAI,EAAY,EAAI,CAAM,EACrC,EAAI,iBAAiB,EAAG,EAAI,EAAQ,EAAG,EAAI,EAAS,CAAU,EAC1D,IAAW,UAAY,IAAW,QAClC,KAAK,UAAU,EAAI,EAAK,EAAa,CAAO,EAEhD,EAAI,OAAO,EAAG,EAAI,CAAO,EACzB,EAAI,iBAAiB,EAAG,EAAG,EAAI,EAAS,CAAC,EACzC,EAAI,UAAU,EACd,EAAI,KAAK,EACL,EAAQ,YAAc,GACtB,EAAI,OAAO,CAEnB,CACH,uBAAuB,EAAS,CACzB,IAAM,EAAQ,KAAK,MACb,EAAQ,KAAK,YACb,EAAQ,GAAS,EAAM,EACvB,EAAQ,GAAS,EAAM,EAC7B,GAAI,GAAS,EAAO,CAChB,IAAM,EAAW,GAAY,EAAQ,UAAU,KAAK,KAAM,KAAK,QAAS,KAAK,cAAc,EAC3F,GAAI,CAAC,EACD,OAEJ,IAAM,EAAO,KAAK,MAAQ,GAAe,KAAM,CAAO,EAChD,EAAkB,OAAO,OAAO,CAAC,EAAG,EAAU,KAAK,KAAK,EACxD,EAAY,GAAmB,EAAO,EAAS,CAAe,EAC9D,EAAQ,GAAmB,EAAS,EAAiB,EAAW,CAAK,GACvE,EAAM,MAAQ,EAAM,GAAK,EAAM,MAAQ,EAAM,KAC7C,KAAK,OAAS,EAAU,OACxB,KAAK,OAAS,EAAU,OACxB,KAAK,MAAQ,EAAK,MAClB,KAAK,OAAS,EAAK,OACnB,KAAK,OAAS,EAAS,EACvB,KAAK,OAAS,EAAS,EACvB,KAAK,mBAAmB,EAAE,OAAO,KAAM,CAAK,EAEpD,CACJ,CACH,aAAc,CACP,MAAO,CAAC,CAAC,KAAK,OAClB,CACA,KAAK,EAAK,CACN,IAAM,EAAU,KAAK,QAAQ,WAAW,KAAK,WAAW,CAAC,EACrD,EAAU,KAAK,QACnB,GAAI,CAAC,EACD,OAEJ,KAAK,uBAAuB,CAAO,EACnC,IAAM,EAAc,CAChB,MAAO,KAAK,MACZ,OAAQ,KAAK,MACjB,EACM,EAAK,CACP,EAAG,KAAK,EACR,EAAG,KAAK,CACZ,EACA,EAAU,KAAK,IAAI,CAAO,EAAI,KAAO,EAAI,EACzC,IAAM,EAAU,GAAU,EAAQ,OAAO,EACnC,EAAoB,KAAK,MAAM,QAAU,KAAK,WAAW,QAAU,KAAK,KAAK,QAAU,KAAK,UAAU,QAAU,KAAK,OAAO,OAC9H,EAAQ,SAAW,IACnB,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,KAAK,eAAe,EAAI,EAAK,EAAa,CAAO,EACjD,GAAsB,EAAK,EAAQ,aAAa,EAChD,EAAG,GAAK,EAAQ,IAChB,KAAK,UAAU,EAAI,EAAK,CAAO,EAC/B,KAAK,SAAS,EAAI,EAAK,CAAO,EAC9B,KAAK,WAAW,EAAI,EAAK,CAAO,EAChC,GAAqB,EAAK,EAAQ,aAAa,EAC/C,EAAI,QAAQ,EAEpB,CACH,mBAAoB,CACb,OAAO,KAAK,SAAW,CAAC,CAC5B,CACH,kBAAkB,EAAgB,EAAe,CAC1C,IAAM,EAAa,KAAK,QAClB,EAAS,EAAe,KAAK,CAAE,eAAe,WAAW,CAC3D,IAAM,EAAO,KAAK,MAAM,eAAe,CAAY,EACnD,GAAI,CAAC,EACD,MAAU,MAAM,kCAAoC,CAAY,EAEpE,MAAO,CACH,eACA,QAAS,EAAK,KAAK,GACnB,OACJ,CACJ,CAAC,EACK,EAAU,CAAC,GAAe,EAAY,CAAM,EAC5C,EAAkB,KAAK,iBAAiB,EAAQ,CAAa,GAC/D,GAAW,KACX,KAAK,QAAU,EACf,KAAK,eAAiB,EACtB,KAAK,oBAAsB,GAC3B,KAAK,OAAO,EAAI,EAExB,CACH,YAAY,EAAG,EAAQ,EAAc,GAAM,CACpC,GAAI,GAAU,KAAK,oBACf,MAAO,GAEX,KAAK,oBAAsB,GAC3B,IAAM,EAAU,KAAK,QACf,EAAa,KAAK,SAAW,CAAC,EAC9B,EAAS,KAAK,mBAAmB,EAAG,EAAY,EAAQ,CAAW,EACnE,EAAkB,KAAK,iBAAiB,EAAQ,CAAC,EACjD,EAAU,GAAU,CAAC,GAAe,EAAQ,CAAU,GAAK,EAWjE,OAVI,IACA,KAAK,QAAU,GACX,EAAQ,SAAW,EAAQ,YAC3B,KAAK,eAAiB,CAClB,EAAG,EAAE,EACL,EAAG,EAAE,CACT,EACA,KAAK,OAAO,GAAM,CAAM,IAGzB,CACX,CACH,mBAAmB,EAAG,EAAY,EAAQ,EAAa,CAChD,IAAM,EAAU,KAAK,QACrB,GAAI,EAAE,OAAS,WACX,MAAO,CAAC,EAEZ,GAAI,CAAC,EACD,OAAO,EAAW,OAAQ,GAAI,KAAK,MAAM,KAAK,SAAS,EAAE,eAAiB,KAAK,MAAM,eAAe,EAAE,YAAY,EAAE,WAAW,UAAU,EAAE,KAAK,IAAM,MAAS,EAEnK,IAAM,EAAS,KAAK,MAAM,0BAA0B,EAAG,EAAQ,KAAM,EAAS,CAAM,EAIpF,OAHI,EAAQ,SACR,EAAO,QAAQ,EAEZ,CACX,CACH,iBAAiB,EAAQ,EAAG,CACrB,GAAM,CAAE,SAAS,SAAS,WAAa,KACjC,EAAW,GAAY,EAAQ,UAAU,KAAK,KAAM,EAAQ,CAAC,EACnE,OAAO,IAAa,KAAU,IAAW,EAAS,GAAK,IAAW,EAAS,EAC/E,CACJ,EACI,GAAiB,CACjB,GAAI,UACJ,SAAU,GACV,eACA,UAAW,EAAO,EAAO,EAAS,CAC1B,IACA,EAAM,QAAU,IAAI,GAAQ,CACxB,QACA,SACJ,CAAC,EAET,EACA,aAAc,EAAO,EAAO,EAAS,CAC7B,EAAM,SACN,EAAM,QAAQ,WAAW,CAAO,CAExC,EACA,MAAO,EAAO,EAAO,EAAS,CACtB,EAAM,SACN,EAAM,QAAQ,WAAW,CAAO,CAExC,EACA,UAAW,EAAO,CACd,IAAM,EAAU,EAAM,QACtB,GAAI,GAAW,EAAQ,YAAY,EAAG,CAClC,IAAM,EAAO,CACT,SACJ,EACA,GAAI,EAAM,cAAc,oBAAqB,CACzC,GAAG,EACH,WAAY,EAChB,CAAC,IAAM,GACH,OAEJ,EAAQ,KAAK,EAAM,GAAG,EACtB,EAAM,cAAc,mBAAoB,CAAI,CAChD,CACJ,EACA,WAAY,EAAO,EAAM,CACrB,GAAI,EAAM,QAAS,CACf,IAAM,EAAmB,EAAK,OAC1B,EAAM,QAAQ,YAAY,EAAK,MAAO,EAAkB,EAAK,WAAW,IACxE,EAAK,QAAU,GAEvB,CACJ,EACA,SAAU,CACN,QAAS,GACT,SAAU,KACV,SAAU,UACV,gBAAiB,kBACjB,WAAY,OACZ,UAAW,CACP,OAAQ,MACZ,EACA,aAAc,EACd,kBAAmB,EACnB,WAAY,OACZ,UAAW,OACX,YAAa,EACb,SAAU,CAAC,EACX,UAAW,OACX,YAAa,OACb,cAAe,EACf,gBAAiB,EACjB,WAAY,CACR,OAAQ,MACZ,EACA,YAAa,OACb,QAAS,EACT,aAAc,EACd,UAAW,EACX,aAAc,EACd,WAAY,EAAK,IAAO,EAAK,SAAS,KACtC,UAAW,EAAK,IAAO,EAAK,SAAS,KACrC,mBAAoB,OACpB,cAAe,GACf,WAAY,EACZ,YAAa,gBACb,YAAa,EACb,UAAW,CACP,SAAU,IACV,OAAQ,cACZ,EACA,WAAY,CACR,QAAS,CACL,KAAM,SACN,WAAY,CACR,IACA,IACA,QACA,SACA,SACA,QACJ,CACJ,EACA,QAAS,CACL,OAAQ,SACR,SAAU,GACd,CACJ,EACA,UAAW,EACf,EACA,cAAe,CACX,SAAU,OACV,WAAY,OACZ,UAAW,MACf,EACA,YAAa,CACT,YAAc,GAAO,IAAS,UAAY,IAAS,YAAc,IAAS,WAC1E,WAAY,GACZ,UAAW,CACP,YAAa,GACb,WAAY,EAChB,EACA,UAAW,CACP,UAAW,EACf,EACA,WAAY,CACR,UAAW,WACf,CACJ,EACA,uBAAwB,CACpB,aACJ,CACJ,EAaM,KAAe,EAAQ,EAAK,EAAO,KACjC,OAAO,GAAQ,UACf,EAAQ,EAAO,KAAK,CAAG,EAAI,EAC3B,EAAY,QAAQ,CAChB,QACA,MAAO,CACX,CAAC,GACM,MAAM,CAAG,IAChB,EAAQ,MAEL,GAEX,SAAS,IAAe,EAAQ,EAAK,EAAO,EAAa,CACrD,IAAM,EAAQ,EAAO,QAAQ,CAAG,EAKhC,OAJI,IAAU,GACH,IAAY,EAAQ,EAAK,EAAO,CAAW,EAG/C,IADM,EAAO,YAAY,CACZ,EAAY,EAAR,CAC5B,CACA,IAAM,KAAc,EAAO,IAAM,IAAU,KAAO,KAAO,GAAY,KAAK,MAAM,CAAK,EAAG,EAAG,CAAG,EAC9F,SAAS,GAAkB,EAAO,CAC9B,IAAM,EAAS,KAAK,UAAU,EAI9B,OAHI,GAAS,GAAK,EAAQ,EAAO,OACtB,EAAO,GAEX,CACX,CACA,IAAM,GAAN,cAA4B,EAAM,CAC9B,OAAO,GAAK,WACf,OAAO,SAAW,CACX,MAAO,CACH,SAAU,EACd,CACJ,EACA,YAAY,EAAI,CACZ,MAAM,CAAG,EACR,KAAK,YAAc,OACpB,KAAK,YAAc,EACnB,KAAK,aAAe,CAAC,CACzB,CACA,KAAK,EAAc,CACf,IAAM,EAAQ,KAAK,aACnB,GAAI,EAAM,OAAQ,CACd,IAAM,EAAS,KAAK,UAAU,EAC9B,IAAK,GAAM,CAAE,QAAQ,WAAY,EACzB,EAAO,KAAW,GAClB,EAAO,OAAO,EAAO,CAAC,EAG9B,KAAK,aAAe,CAAC,CACzB,CACA,MAAM,KAAK,CAAY,CAC3B,CACA,MAAM,EAAK,EAAO,CACd,GAAI,GAAc,CAAG,EACjB,OAAO,KAEX,IAAM,EAAS,KAAK,UAAU,EAE9B,MADA,GAAQ,SAAS,CAAK,GAAK,EAAO,KAAW,EAAM,EAAQ,IAAe,EAAQ,EAAK,GAAe,EAAO,CAAG,EAAG,KAAK,YAAY,EAC7H,IAAW,EAAO,EAAO,OAAS,CAAC,CAC9C,CACA,qBAAsB,CAClB,GAAM,CAAE,aAAa,cAAgB,KAAK,cAAc,EACpD,CAAE,MAAM,OAAS,KAAK,UAAU,EAAI,EACpC,KAAK,QAAQ,SAAW,UACnB,IACD,EAAM,GAEL,IACD,EAAM,KAAK,UAAU,EAAE,OAAS,IAGxC,KAAK,IAAM,EACX,KAAK,IAAM,CACf,CACA,YAAa,CACT,IAAM,EAAM,KAAK,IACX,EAAM,KAAK,IACX,EAAS,KAAK,QAAQ,OACtB,EAAQ,CAAC,EACX,EAAS,KAAK,UAAU,EAC5B,EAAS,IAAQ,GAAK,IAAQ,EAAO,OAAS,EAAI,EAAS,EAAO,MAAM,EAAK,EAAM,CAAC,EACpF,KAAK,YAAc,KAAK,IAAI,EAAO,OAAU,IAAiB,CAAC,EAC/D,KAAK,YAAc,KAAK,KAAO,EAAS,GAAM,GAC9C,IAAI,IAAI,EAAQ,EAAK,GAAS,EAAK,IAC/B,EAAM,KAAK,CACP,OACJ,CAAC,EAEL,OAAO,CACX,CACA,iBAAiB,EAAO,CACpB,OAAO,GAAkB,KAAK,KAAM,CAAK,CAC7C,CACH,WAAY,CACL,MAAM,UAAU,EACX,KAAK,aAAa,IACnB,KAAK,eAAiB,CAAC,KAAK,eAEpC,CACA,iBAAiB,EAAO,CAIpB,OAHI,OAAO,GAAU,WACjB,EAAQ,KAAK,MAAM,CAAK,GAErB,IAAU,KAAO,IAAM,KAAK,oBAAoB,EAAQ,KAAK,aAAe,KAAK,WAAW,CACvG,CACA,gBAAgB,EAAO,CACnB,IAAM,EAAQ,KAAK,MAInB,OAHI,EAAQ,GAAK,EAAQ,EAAM,OAAS,EAC7B,KAEJ,KAAK,iBAAiB,EAAM,GAAO,KAAK,CACnD,CACA,iBAAiB,EAAO,CACpB,OAAO,KAAK,MAAM,KAAK,YAAc,KAAK,mBAAmB,CAAK,EAAI,KAAK,WAAW,CAC1F,CACA,cAAe,CACX,OAAO,KAAK,MAChB,CACJ,EAEA,SAAS,IAAgB,EAAmB,EAAW,CACnD,IAAM,EAAQ,CAAC,EAET,CAAE,SAAS,OAAO,MAAM,MAAM,YAAY,QAAQ,WAAW,YAAY,iBAAmB,EAC5F,EAAO,GAAQ,EACf,EAAY,EAAW,EACvB,CAAE,IAAK,EAAO,IAAK,GAAU,EAC7B,EAAa,CAAC,GAAc,CAAG,EAC/B,EAAa,CAAC,GAAc,CAAG,EAC/B,EAAe,CAAC,GAAc,CAAK,EACnC,GAAc,EAAO,IAAS,EAAY,GAC5C,EAAU,IAAS,EAAO,GAAQ,EAAY,CAAI,EAAI,EACtD,EAAQ,EAAS,EAAS,EAC9B,GAAI,EAAU,OAAe,CAAC,GAAc,CAAC,EACzC,MAAO,CACH,CACI,MAAO,CACX,EACA,CACI,MAAO,CACX,CACJ,EAEJ,EAAY,KAAK,KAAK,EAAO,CAAO,EAAI,KAAK,MAAM,EAAO,CAAO,EAC7D,EAAY,IACZ,EAAU,GAAQ,EAAY,EAAU,EAAY,CAAI,EAAI,GAE3D,GAAc,CAAS,IACxB,EAAkB,IAAI,EACtB,EAAU,KAAK,KAAK,EAAU,CAAM,EAAI,GAExC,IAAW,SACX,EAAU,KAAK,MAAM,EAAO,CAAO,EAAI,EACvC,EAAU,KAAK,KAAK,EAAO,CAAO,EAAI,IAEtC,EAAU,EACV,EAAU,GAEV,GAAc,GAAc,GAAQ,KAAa,EAAM,GAAO,EAAM,EAAU,GAAI,GAClF,EAAY,KAAK,MAAM,KAAK,KAAK,EAAM,GAAO,EAAS,CAAQ,CAAC,EAChE,GAAW,EAAM,GAAO,EACxB,EAAU,EACV,EAAU,GACH,GACP,EAAU,EAAa,EAAM,EAC7B,EAAU,EAAa,EAAM,EAC7B,EAAY,EAAQ,EACpB,GAAW,EAAU,GAAW,IAEhC,GAAa,EAAU,GAAW,EAClC,CAGI,CAHA,GAAa,EAAW,KAAK,MAAM,CAAS,EAAG,EAAU,GAAI,EACjD,KAAK,MAAM,CAAS,EAEpB,KAAK,KAAK,CAAS,GAGvC,IAAM,EAAgB,KAAK,IAAI,GAAe,CAAO,EAAG,GAAe,CAAO,CAAC,EAC/E,EAAkB,KAAI,GAAc,CAAS,EAAI,EAAgB,GACjE,EAAU,KAAK,MAAM,EAAU,CAAM,EAAI,EACzC,EAAU,KAAK,MAAM,EAAU,CAAM,EAAI,EACzC,IAAI,EAAI,EAgBR,IAfI,IACI,GAAiB,IAAY,GAC7B,EAAM,KAAK,CACP,MAAO,CACX,CAAC,EACG,EAAU,GACV,IAEA,GAAa,KAAK,OAAO,EAAU,EAAI,GAAW,CAAM,EAAI,EAAQ,EAAK,GAAkB,EAAK,EAAY,CAAiB,CAAC,GAC9H,KAEG,EAAU,GACjB,KAGF,EAAI,EAAW,EAAE,EAAE,CACrB,IAAM,EAAY,KAAK,OAAO,EAAU,EAAI,GAAW,CAAM,EAAI,EACjE,GAAI,GAAc,EAAY,EAC1B,MAEJ,EAAM,KAAK,CACP,MAAO,CACX,CAAC,CACL,CAcA,OAbI,GAAc,GAAiB,IAAY,EACvC,EAAM,QAAU,GAAa,EAAM,EAAM,OAAS,GAAG,MAAO,EAAK,GAAkB,EAAK,EAAY,CAAiB,CAAC,EACtH,EAAM,EAAM,OAAS,GAAG,MAAQ,EAEhC,EAAM,KAAK,CACP,MAAO,CACX,CAAC,GAEE,CAAC,GAAc,IAAY,IAClC,EAAM,KAAK,CACP,MAAO,CACX,CAAC,EAEE,CACX,CACA,SAAS,GAAkB,EAAO,EAAY,CAAE,aAAa,eAAgB,CACzE,IAAM,EAAM,GAAU,CAAW,EAC3B,GAAS,EAAa,KAAK,IAAI,CAAG,EAAI,KAAK,IAAI,CAAG,IAAM,KACxD,EAAS,IAAO,GAAc,GAAK,GAAO,OAChD,OAAO,KAAK,IAAI,EAAa,EAAO,CAAM,CAC9C,CACA,IAAM,GAAN,cAA8B,EAAM,CAChC,YAAY,EAAI,CACZ,MAAM,CAAG,EACR,KAAK,MAAQ,OACb,KAAK,IAAM,OACX,KAAK,YAAc,OACnB,KAAK,UAAY,OAClB,KAAK,YAAc,CACvB,CACA,MAAM,EAAK,EAAO,CAOd,OANI,GAAc,CAAG,IAGhB,OAAO,GAAQ,UAAY,aAAe,SAAW,CAAC,SAAS,CAAC,CAAG,EAC7D,KAEJ,CAAC,CACZ,CACA,wBAAyB,CACrB,GAAM,CAAE,eAAiB,KAAK,QACxB,CAAE,aAAa,cAAgB,KAAK,cAAc,EACpD,CAAE,MAAM,OAAS,KACf,EAAU,GAAI,EAAM,EAAa,EAAM,EACvC,EAAU,GAAI,EAAM,EAAa,EAAM,EAC7C,GAAI,EAAa,CACb,IAAM,EAAU,GAAK,CAAG,EAClB,EAAU,GAAK,CAAG,EACpB,EAAU,GAAK,EAAU,EACzB,EAAO,CAAC,EACD,EAAU,GAAK,EAAU,GAChC,EAAO,CAAC,CAEhB,CACA,GAAI,IAAQ,EAAK,CACb,IAAI,EAAS,IAAQ,EAAI,EAAI,KAAK,IAAI,EAAM,GAAI,EAChD,EAAO,EAAM,CAAM,EACd,GACD,EAAO,EAAM,CAAM,CAE3B,CACA,KAAK,IAAM,EACX,KAAK,IAAM,CACf,CACA,cAAe,CAEX,GAAI,CAAE,gBAAgB,YADL,KAAK,QAAQ,MAE1B,EAcJ,OAbI,GACA,EAAW,KAAK,KAAK,KAAK,IAAM,CAAQ,EAAI,KAAK,MAAM,KAAK,IAAM,CAAQ,EAAI,EAC1E,EAAW,MACX,QAAQ,KAAK,UAAU,KAAK,GAAG,mBAAmB,EAAS,iCAAiC,EAAS,0BAA0B,EAC/H,EAAW,OAGf,EAAW,KAAK,iBAAiB,EACjC,IAAiC,IAEjC,IACA,EAAW,KAAK,IAAI,EAAe,CAAQ,GAExC,CACX,CACH,kBAAmB,CACZ,MAAO,IACX,CACA,YAAa,CACT,IAAM,EAAO,KAAK,QACZ,EAAW,EAAK,MAClB,EAAW,KAAK,aAAa,EACjC,EAAW,KAAK,IAAI,EAAG,CAAQ,EAe/B,IAAM,EAAQ,IAAgB,CAb1B,WACA,OAAQ,EAAK,OACb,IAAK,EAAK,IACV,IAAK,EAAK,IACV,UAAW,EAAS,UACpB,KAAM,EAAS,SACf,MAAO,EAAS,MAChB,UAAW,KAAK,WAAW,EAC3B,WAAY,KAAK,aAAa,EAC9B,YAAa,EAAS,aAAe,EACrC,cAAe,EAAS,gBAAkB,EAGM,EADlC,KAAK,QAAU,IAC+B,EAYhE,OAXI,EAAK,SAAW,SAChB,GAAmB,EAAO,KAAM,OAAO,EAEvC,EAAK,SACL,EAAM,QAAQ,EACd,KAAK,MAAQ,KAAK,IAClB,KAAK,IAAM,KAAK,MAEhB,KAAK,MAAQ,KAAK,IAClB,KAAK,IAAM,KAAK,KAEb,CACX,CACH,WAAY,CACL,IAAM,EAAQ,KAAK,MACf,EAAQ,KAAK,IACb,EAAM,KAAK,IAEf,GADA,MAAM,UAAU,EACZ,KAAK,QAAQ,QAAU,EAAM,OAAQ,CACrC,IAAM,GAAU,EAAM,GAAS,KAAK,IAAI,EAAM,OAAS,EAAG,CAAC,EAAI,EAC/D,GAAS,EACT,GAAO,CACX,CACA,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,YAAc,EAAM,CAC7B,CACA,iBAAiB,EAAO,CACpB,OAAO+C,GAAa,EAAO,KAAK,MAAM,QAAQ,OAAQ,KAAK,QAAQ,MAAM,MAAM,CACnF,CACJ,EAEM,GAAN,cAA0B,EAAgB,CACtC,OAAO,GAAK,SACf,OAAO,SAAW,CACX,MAAO,CACH,SAAU,GAAM,WAAW,OAC/B,CACJ,EACA,qBAAsB,CAClB,GAAM,CAAE,MAAM,OAAS,KAAK,UAAU,EAAI,EAC1C,KAAK,IAAM,GAAe,CAAG,EAAI,EAAM,EACvC,KAAK,IAAM,GAAe,CAAG,EAAI,EAAM,EACvC,KAAK,uBAAuB,CAChC,CACH,kBAAmB,CACZ,IAAM,EAAa,KAAK,aAAa,EAC/B,EAAS,EAAa,KAAK,MAAQ,KAAK,OACxC,EAAc,GAAU,KAAK,QAAQ,MAAM,WAAW,EACtD,GAAS,EAAa,KAAK,IAAI,CAAW,EAAI,KAAK,IAAI,CAAW,IAAM,KACxE,EAAW,KAAK,wBAAwB,CAAC,EAC/C,OAAO,KAAK,KAAK,EAAS,KAAK,IAAI,GAAI,EAAS,WAAa,CAAK,CAAC,CACvE,CACA,iBAAiB,EAAO,CACpB,OAAO,IAAU,KAAO,IAAM,KAAK,oBAAoB,EAAQ,KAAK,aAAe,KAAK,WAAW,CACvG,CACA,iBAAiB,EAAO,CACpB,OAAO,KAAK,YAAc,KAAK,mBAAmB,CAAK,EAAI,KAAK,WACpE,CACJ,EAEM,GAAc,GAAI,KAAK,MAAM,GAAM,CAAC,CAAC,EACrC,IAAkB,EAAG,IAAa,KAAI,GAAW,CAAC,EAAI,GAC5D,SAAS,GAAQ,EAAS,CAEtB,OADe,EAAmB,IAAI,GAAW,CAAO,GACtC,CACtB,CACA,SAAS,GAAM,EAAK,EAAK,EAAU,CAC/B,IAAM,EAAqB,IAAI,EACzB,EAAQ,KAAK,MAAM,EAAM,CAAS,EAExC,OADY,KAAK,KAAK,EAAM,CACnB,EAAI,CACjB,CACA,SAAS,IAAS,EAAK,EAAK,CAExB,IAAI,EAAW,GADD,EAAM,CACW,EAC/B,KAAM,GAAM,EAAK,EAAK,CAAQ,EAAI,IAC9B,IAEJ,KAAM,GAAM,EAAK,EAAK,CAAQ,EAAI,IAC9B,IAEJ,OAAO,KAAK,IAAI,EAAU,GAAW,CAAG,CAAC,CAC7C,CACC,SAAS,IAAc,EAAmB,CAAE,MAAM,OAAQ,CACvD,EAAM,GAAgB,EAAkB,IAAK,CAAG,EAChD,IAAM,EAAQ,CAAC,EACT,EAAS,GAAW,CAAG,EACzB,EAAM,IAAS,EAAK,CAAG,EACvB,EAAY,EAAM,EAAa,IAAI,KAAK,IAAI,CAAG,EAAK,EAClD,EAAoB,IAAI,EACxB,EAAO,EAAS,EAAe,IAAI,EAAU,EAC7C,EAAQ,KAAK,OAAO,EAAM,GAAQ,CAAS,EAAI,EAC/C,EAAS,KAAK,OAAO,EAAM,GAAQ,EAAW,EAAE,EAAI,EAAW,GACjE,EAAc,KAAK,OAAO,EAAQ,GAAmB,IAAI,CAAI,EAC7D,EAAQ,GAAgB,EAAkB,IAAK,KAAK,OAAO,EAAO,EAAS,EAAuB,IAAI,GAAQ,CAAS,EAAI,CAAS,EACxI,KAAM,EAAQ,GACV,EAAM,KAAK,CACP,QACA,MAAO,GAAQ,CAAK,EACpB,aACJ,CAAC,EACG,GAAe,GACf,EAAc,EAAc,GAAK,GAAK,GAEtC,IAEA,GAAe,KACf,IACA,EAAc,EACd,EAAY,GAAO,EAAI,EAAI,GAE/B,EAAQ,KAAK,OAAO,EAAO,EAAS,EAAuB,IAAI,GAAQ,CAAS,EAAI,EAExF,IAAM,EAAW,GAAgB,EAAkB,IAAK,CAAK,EAM7D,OALA,EAAM,KAAK,CACP,MAAO,EACP,MAAO,GAAQ,CAAQ,EACvB,aACJ,CAAC,EACM,CACX,EACA,cAA+B,EAAM,CACjC,OAAO,GAAK,cACf,OAAO,SAAW,CACX,MAAO,CACH,SAAU,GAAM,WAAW,YAC3B,MAAO,CACH,QAAS,EACb,CACJ,CACJ,EACA,YAAY,EAAI,CACZ,MAAM,CAAG,EACR,KAAK,MAAQ,OACb,KAAK,IAAM,OACX,KAAK,YAAc,OACpB,KAAK,YAAc,CACvB,CACA,MAAM,EAAK,EAAO,CACd,IAAM,EAAQ,GAAgB,UAAU,MAAM,MAAM,KAAM,CACtD,EACA,CACJ,CAAC,EACD,GAAI,IAAU,EAAG,CACb,KAAK,MAAQ,GACb,MACJ,CACA,OAAO,GAAe,CAAK,GAAK,EAAQ,EAAI,EAAQ,IACxD,CACA,qBAAsB,CAClB,GAAM,CAAE,MAAM,OAAS,KAAK,UAAU,EAAI,EAC1C,KAAK,IAAM,GAAe,CAAG,EAAI,KAAK,IAAI,EAAG,CAAG,EAAI,KACpD,KAAK,IAAM,GAAe,CAAG,EAAI,KAAK,IAAI,EAAG,CAAG,EAAI,KAChD,KAAK,QAAQ,cACb,KAAK,MAAQ,IAEb,KAAK,OAAS,KAAK,MAAQ,KAAK,eAAiB,CAAC,GAAe,KAAK,QAAQ,IAC9E,KAAK,IAAM,IAAQ,GAAe,KAAK,IAAK,CAAC,EAAI,GAAe,KAAK,IAAK,EAAE,EAAI,GAAe,KAAK,IAAK,CAAC,GAE9G,KAAK,uBAAuB,CAChC,CACA,wBAAyB,CACrB,GAAM,CAAE,aAAa,cAAgB,KAAK,cAAc,EACpD,EAAM,KAAK,IACX,EAAM,KAAK,IACT,EAAU,GAAI,EAAM,EAAa,EAAM,EACvC,EAAU,GAAI,EAAM,EAAa,EAAM,EACzC,IAAQ,IACJ,GAAO,GACP,EAAO,CAAC,EACR,EAAO,EAAE,IAET,EAAO,GAAe,EAAK,EAAE,CAAC,EAC9B,EAAO,GAAe,EAAK,CAAE,CAAC,IAGlC,GAAO,GACP,EAAO,GAAe,EAAK,EAAE,CAAC,EAE9B,GAAO,GACP,EAAO,GAAe,EAAK,CAAE,CAAC,EAElC,KAAK,IAAM,EACX,KAAK,IAAM,CACf,CACA,YAAa,CACT,IAAM,EAAO,KAAK,QAKZ,EAAQ,IAAc,CAHxB,IAAK,KAAK,SACV,IAAK,KAAK,QAE8B,EAAG,IAAI,EAYnD,OAXI,EAAK,SAAW,SAChB,GAAmB,EAAO,KAAM,OAAO,EAEvC,EAAK,SACL,EAAM,QAAQ,EACd,KAAK,MAAQ,KAAK,IAClB,KAAK,IAAM,KAAK,MAEhB,KAAK,MAAQ,KAAK,IAClB,KAAK,IAAM,KAAK,KAEb,CACX,CACH,iBAAiB,EAAO,CACjB,OAAO,IAAU,OAAY,IAAMA,GAAa,EAAO,KAAK,MAAM,QAAQ,OAAQ,KAAK,QAAQ,MAAM,MAAM,CAC/G,CACH,WAAY,CACL,IAAM,EAAQ,KAAK,IACnB,MAAM,UAAU,EAChB,KAAK,YAAc,GAAM,CAAK,EAC9B,KAAK,YAAc,GAAM,KAAK,GAAG,EAAI,GAAM,CAAK,CACpD,CACA,iBAAiB,EAAO,CAOpB,OANI,IAAU,QAAa,IAAU,KACjC,EAAQ,KAAK,KAEb,IAAU,MAAQ,MAAM,CAAK,EACtB,IAEJ,KAAK,mBAAmB,IAAU,KAAK,IAAM,GAAK,GAAM,CAAK,EAAI,KAAK,aAAe,KAAK,WAAW,CAChH,CACA,iBAAiB,EAAO,CACpB,IAAM,EAAU,KAAK,mBAAmB,CAAK,EAC7C,MAAgB,MAAI,KAAK,YAAc,EAAU,KAAK,YAC1D,CACJ,GAEA,SAAS,GAAsB,EAAM,CACjC,IAAM,EAAW,EAAK,MACtB,GAAI,EAAS,SAAW,EAAK,QAAS,CAClC,IAAM,EAAU,GAAU,EAAS,eAAe,EAClD,OAAO,GAAe,EAAS,MAAQ,EAAS,KAAK,KAAM,GAAS,KAAK,IAAI,EAAI,EAAQ,MAC7F,CACA,MAAO,EACX,CACA,SAAS,IAAiB,EAAK,EAAM,EAAO,CAIxC,MAHA,GAAQ,GAAQ,CAAK,EAAI,EAAQ,CAC7B,CACJ,EACO,CACH,EAAG,IAAa,EAAK,EAAK,OAAQ,CAAK,EACvC,EAAG,EAAM,OAAS,EAAK,UAC3B,CACJ,CACA,SAAS,GAAgB,EAAO,EAAK,EAAM,EAAK,EAAK,CAYjD,OAXI,IAAU,GAAO,IAAU,EACpB,CACH,MAAO,EAAM,EAAO,EACpB,IAAK,EAAM,EAAO,CACtB,EACO,EAAQ,GAAO,EAAQ,EACvB,CACH,MAAO,EAAM,EACb,IAAK,CACT,EAEG,CACH,MAAO,EACP,IAAK,EAAM,CACf,CACJ,CACC,SAAS,IAAmB,EAAO,CAChC,IAAM,EAAO,CACT,EAAG,EAAM,KAAO,EAAM,SAAS,KAC/B,EAAG,EAAM,MAAQ,EAAM,SAAS,MAChC,EAAG,EAAM,IAAM,EAAM,SAAS,IAC9B,EAAG,EAAM,OAAS,EAAM,SAAS,MACrC,EACM,EAAS,OAAO,OAAO,CAAC,EAAG,CAAI,EAC/B,EAAa,CAAC,EACd,EAAU,CAAC,EACX,EAAa,EAAM,aAAa,OAChC,EAAiB,EAAM,QAAQ,YAC/B,EAAkB,EAAe,kBAAoBD,GAAK,EAAa,EAC7E,IAAI,IAAI,EAAI,EAAG,EAAI,EAAY,IAAI,CAC/B,IAAM,EAAO,EAAe,WAAW,EAAM,qBAAqB,CAAC,CAAC,EACpE,EAAQ,GAAK,EAAK,QAClB,IAAM,EAAgB,EAAM,iBAAiB,EAAG,EAAM,YAAc,EAAQ,GAAI,CAAe,EACzF,EAAS,GAAO,EAAK,IAAI,EACzB,EAAW,IAAiB,EAAM,IAAK,EAAQ,EAAM,aAAa,EAAE,EAC1E,EAAW,GAAK,EAChB,IAAM,EAAe,GAAgB,EAAM,cAAc,CAAC,EAAI,CAAe,EACvE,EAAQ,KAAK,MAAM,GAAU,CAAY,CAAC,EAGhD,IAAa,EAAQ,EAAM,EAFX,GAAgB,EAAO,EAAc,EAAG,EAAS,EAAG,EAAG,GAExB,EAD/B,GAAgB,EAAO,EAAc,EAAG,EAAS,EAAG,GAAI,GAChB,CAAC,CAC7D,CACA,EAAM,eAAe,EAAK,EAAI,EAAO,EAAG,EAAO,EAAI,EAAK,EAAG,EAAK,EAAI,EAAO,EAAG,EAAO,EAAI,EAAK,CAAC,EAC/F,EAAM,iBAAmB,IAAqB,EAAO,EAAY,CAAO,CAC5E,CACA,SAAS,IAAa,EAAQ,EAAM,EAAO,EAAS,EAAS,CACzD,IAAM,EAAM,KAAK,IAAI,KAAK,IAAI,CAAK,CAAC,EAC9B,EAAM,KAAK,IAAI,KAAK,IAAI,CAAK,CAAC,EAChC,EAAI,EACJ,EAAI,EACJ,EAAQ,MAAQ,EAAK,GACrB,GAAK,EAAK,EAAI,EAAQ,OAAS,EAC/B,EAAO,EAAI,KAAK,IAAI,EAAO,EAAG,EAAK,EAAI,CAAC,GACjC,EAAQ,IAAM,EAAK,IAC1B,GAAK,EAAQ,IAAM,EAAK,GAAK,EAC7B,EAAO,EAAI,KAAK,IAAI,EAAO,EAAG,EAAK,EAAI,CAAC,GAExC,EAAQ,MAAQ,EAAK,GACrB,GAAK,EAAK,EAAI,EAAQ,OAAS,EAC/B,EAAO,EAAI,KAAK,IAAI,EAAO,EAAG,EAAK,EAAI,CAAC,GACjC,EAAQ,IAAM,EAAK,IAC1B,GAAK,EAAQ,IAAM,EAAK,GAAK,EAC7B,EAAO,EAAI,KAAK,IAAI,EAAO,EAAG,EAAK,EAAI,CAAC,EAEhD,CACA,SAAS,IAAqB,EAAO,EAAO,EAAU,CAClD,IAAM,EAAgB,EAAM,YACtB,CAAE,QAAQ,kBAAkB,UAAU,QAAU,EAChD,EAAqB,EAAM,iBAAiB,EAAO,EAAgB,EAAQ,EAAS,CAAe,EACnG,EAAQ,KAAK,MAAM,GAAU,GAAgB,EAAmB,MAAQ,EAAO,CAAC,CAAC,EACjF,EAAI,IAAU,EAAmB,EAAG,EAAK,EAAG,CAAK,EACjD,EAAY,IAAqB,CAAK,EACtC,EAAO,IAAiB,EAAmB,EAAG,EAAK,EAAG,CAAS,EACrE,MAAO,CACH,QAAS,GACT,EAAG,EAAmB,EACtB,IACA,YACA,OACA,IAAK,EACL,MAAO,EAAO,EAAK,EACnB,OAAQ,EAAI,EAAK,CACrB,CACJ,CACA,SAAS,IAAgB,EAAM,EAAM,CACjC,GAAI,CAAC,EACD,MAAO,GAEX,GAAM,CAAE,OAAO,MAAM,QAAQ,UAAY,EAczC,MAAO,EAbc,GAAe,CAChC,EAAG,EACH,EAAG,CACP,EAAG,CAAI,GAAK,GAAe,CACvB,EAAG,EACH,EAAG,CACP,EAAG,CAAI,GAAK,GAAe,CACvB,EAAG,EACH,EAAG,CACP,EAAG,CAAI,GAAK,GAAe,CACvB,EAAG,EACH,EAAG,CACP,EAAG,CAAI,EAEX,CACA,SAAS,IAAqB,EAAO,EAAY,EAAS,CACtD,IAAM,EAAQ,CAAC,EACT,EAAa,EAAM,aAAa,OAChC,EAAO,EAAM,QACb,CAAE,oBAAoB,WAAa,EAAK,YACxC,EAAW,CACb,MAAO,GAAsB,CAAI,EAAI,EACrC,gBAAiB,EAAoBA,GAAK,EAAa,CAC3D,EACI,EACJ,IAAI,IAAI,EAAI,EAAG,EAAI,EAAY,IAAI,CAC/B,EAAS,QAAU,EAAQ,GAC3B,EAAS,KAAO,EAAW,GAC3B,IAAM,EAAO,IAAqB,EAAO,EAAG,CAAQ,EACpD,EAAM,KAAK,CAAI,EACX,IAAY,SACZ,EAAK,QAAU,IAAgB,EAAM,CAAI,EACrC,EAAK,UACL,EAAO,GAGnB,CACA,OAAO,CACX,CACA,SAAS,IAAqB,EAAO,CAMjC,OALI,IAAU,GAAK,IAAU,IAClB,SACA,EAAQ,IACR,OAEJ,OACX,CACA,SAAS,IAAiB,EAAG,EAAG,EAAO,CAMnC,OALI,IAAU,QACV,GAAK,EACE,IAAU,WACjB,GAAK,EAAI,GAEN,CACX,CACA,SAAS,IAAU,EAAG,EAAG,EAAO,CAM5B,OALI,IAAU,IAAM,IAAU,IAC1B,GAAK,EAAI,GACF,EAAQ,KAAO,EAAQ,MAC9B,GAAK,GAEF,CACX,CACA,SAAS,IAAkB,EAAK,EAAM,EAAM,CACxC,GAAM,CAAE,OAAO,MAAM,QAAQ,UAAY,EACnC,CAAE,iBAAmB,EAC3B,GAAI,CAAC,GAAc,CAAa,EAAG,CAC/B,IAAM,EAAe,GAAc,EAAK,YAAY,EAC9C,EAAU,GAAU,EAAK,eAAe,EAC9C,EAAI,UAAY,EAChB,IAAM,EAAe,EAAO,EAAQ,KAC9B,EAAc,EAAM,EAAQ,IAC5B,EAAgB,EAAQ,EAAO,EAAQ,MACvC,EAAiB,EAAS,EAAM,EAAQ,OAC1C,OAAO,OAAO,CAAY,EAAE,KAAM,GAAI,IAAM,CAAC,GAC7C,EAAI,UAAU,EACd,GAAmB,EAAK,CACpB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,OAAQ,CACZ,CAAC,EACD,EAAI,KAAK,GAET,EAAI,SAAS,EAAc,EAAa,EAAe,CAAc,CAE7E,CACJ,CACA,SAAS,IAAgB,EAAO,EAAY,CACxC,GAAM,CAAE,MAAM,QAAS,CAAE,gBAAoB,EAC7C,IAAI,IAAI,EAAI,EAAa,EAAG,GAAK,EAAG,IAAI,CACpC,IAAM,EAAO,EAAM,iBAAiB,GACpC,GAAI,CAAC,EAAK,QACN,SAEJ,IAAM,EAAc,EAAY,WAAW,EAAM,qBAAqB,CAAC,CAAC,EACxE,IAAkB,EAAK,EAAa,CAAI,EACxC,IAAM,EAAS,GAAO,EAAY,IAAI,EAChC,CAAE,IAAI,IAAI,aAAe,EAC/B,GAAW,EAAK,EAAM,aAAa,GAAI,EAAG,EAAI,EAAO,WAAa,EAAG,EAAQ,CACzE,MAAO,EAAY,MACR,YACX,aAAc,QAClB,CAAC,CACL,CACJ,CACA,SAAS,GAAe,EAAO,EAAQ,EAAU,EAAY,CACzD,GAAM,CAAE,OAAS,EACjB,GAAI,EACA,EAAI,IAAI,EAAM,QAAS,EAAM,QAAS,EAAQ,EAAG,EAAG,MACjD,CACH,IAAI,EAAgB,EAAM,iBAAiB,EAAG,CAAM,EACpD,EAAI,OAAO,EAAc,EAAG,EAAc,CAAC,EAC3C,IAAI,IAAI,EAAI,EAAG,EAAI,EAAY,IAC3B,EAAgB,EAAM,iBAAiB,EAAG,CAAM,EAChD,EAAI,OAAO,EAAc,EAAG,EAAc,CAAC,CAEnD,CACJ,CACA,SAAS,IAAe,EAAO,EAAc,EAAQ,EAAY,EAAY,CACzE,IAAM,EAAM,EAAM,IACZ,EAAW,EAAa,SACxB,CAAE,QAAQ,aAAe,EAC3B,CAAC,GAAY,CAAC,GAAc,CAAC,GAAS,CAAC,GAAa,EAAS,IAGjE,EAAI,KAAK,EACT,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,YAAY,EAAW,MAAQ,CAAC,CAAC,EACrC,EAAI,eAAiB,EAAW,WAChC,EAAI,UAAU,EACd,GAAe,EAAO,EAAQ,EAAU,CAAU,EAClD,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,QAAQ,EAChB,CACA,SAAS,IAAwB,EAAQ,EAAO,EAAO,CACnD,OAAO,GAAc,EAAQ,CACzB,QACA,QACA,KAAM,YACV,CAAC,CACL,EACA,cAAgC,EAAgB,CAC5C,OAAO,GAAK,eACf,OAAO,SAAW,CACX,QAAS,GACT,QAAS,GACT,SAAU,YACV,WAAY,CACR,QAAS,GACT,UAAW,EACX,WAAY,CAAC,EACb,iBAAkB,CACtB,EACA,KAAM,CACF,SAAU,EACd,EACA,WAAY,EACZ,MAAO,CACH,kBAAmB,GACnB,SAAU,GAAM,WAAW,OAC/B,EACA,YAAa,CACT,cAAe,OACf,gBAAiB,EACjB,QAAS,GACT,KAAM,CACF,KAAM,EACV,EACA,SAAU,EAAO,CACb,OAAO,CACX,EACA,QAAS,EACT,kBAAmB,EACvB,CACJ,EACA,OAAO,cAAgB,CACnB,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,OACnB,EACA,OAAO,YAAc,CACjB,WAAY,CACR,UAAW,MACf,CACJ,EACA,YAAY,EAAI,CACZ,MAAM,CAAG,EACR,KAAK,QAAU,OACf,KAAK,QAAU,OACf,KAAK,YAAc,OACnB,KAAK,aAAe,CAAC,EACtB,KAAK,iBAAmB,CAAC,CAC7B,CACA,eAAgB,CACZ,IAAM,EAAU,KAAK,SAAW,GAAU,GAAsB,KAAK,OAAO,EAAI,CAAC,EAC3E,EAAI,KAAK,MAAQ,KAAK,SAAW,EAAQ,MACzC,EAAI,KAAK,OAAS,KAAK,UAAY,EAAQ,OACjD,KAAK,QAAU,KAAK,MAAM,KAAK,KAAO,EAAI,EAAI,EAAQ,IAAI,EAC1D,KAAK,QAAU,KAAK,MAAM,KAAK,IAAM,EAAI,EAAI,EAAQ,GAAG,EACxD,KAAK,YAAc,KAAK,MAAM,KAAK,IAAI,EAAG,CAAC,EAAI,CAAC,CACpD,CACA,qBAAsB,CAClB,GAAM,CAAE,MAAM,OAAS,KAAK,UAAU,EAAK,EAC3C,KAAK,IAAM,GAAe,CAAG,GAAK,CAAC,MAAM,CAAG,EAAI,EAAM,EACtD,KAAK,IAAM,GAAe,CAAG,GAAK,CAAC,MAAM,CAAG,EAAI,EAAM,EACtD,KAAK,uBAAuB,CAChC,CACH,kBAAmB,CACZ,OAAO,KAAK,KAAK,KAAK,YAAc,GAAsB,KAAK,OAAO,CAAC,CAC3E,CACA,mBAAmB,EAAO,CACtB,GAAgB,UAAU,mBAAmB,KAAK,KAAM,CAAK,EAC7D,KAAK,aAAe,KAAK,UAAU,EAAE,KAAK,EAAO,IAAQ,CACrD,IAAM,EAAQ,GAAS,KAAK,QAAQ,YAAY,SAAU,CACtD,EACA,CACJ,EAAG,IAAI,EACP,OAAO,GAAS,IAAU,EAAI,EAAQ,EAC1C,CAAC,EAAE,QAAQ,EAAG,IAAI,KAAK,MAAM,kBAAkB,CAAC,CAAC,CACrD,CACA,KAAM,CACF,IAAM,EAAO,KAAK,QACd,EAAK,SAAW,EAAK,YAAY,QACjC,IAAmB,IAAI,EAEvB,KAAK,eAAe,EAAG,EAAG,EAAG,CAAC,CAEtC,CACA,eAAe,EAAc,EAAe,EAAa,EAAgB,CACrE,KAAK,SAAW,KAAK,OAAO,EAAe,GAAiB,CAAC,EAC7D,KAAK,SAAW,KAAK,OAAO,EAAc,GAAkB,CAAC,EAC7D,KAAK,aAAe,KAAK,IAAI,KAAK,YAAc,EAAG,KAAK,IAAI,EAAc,EAAe,EAAa,CAAc,CAAC,CACzH,CACA,cAAc,EAAO,CACjB,IAAM,EAAkB,IAAO,KAAK,aAAa,QAAU,GACrD,EAAa,KAAK,QAAQ,YAAc,EAC9C,OAAO,GAAgB,EAAQ,EAAkB,GAAU,CAAU,CAAC,CAC1E,CACA,8BAA8B,EAAO,CACjC,GAAI,GAAc,CAAK,EACnB,MAAO,KAEX,IAAM,EAAgB,KAAK,aAAe,KAAK,IAAM,KAAK,KAI1D,OAHI,KAAK,QAAQ,SACL,KAAK,IAAM,GAAS,GAExB,EAAQ,KAAK,KAAO,CAChC,CACA,8BAA8B,EAAU,CACpC,GAAI,GAAc,CAAQ,EACtB,MAAO,KAEX,IAAM,EAAiB,GAAY,KAAK,aAAe,KAAK,IAAM,KAAK,MACvE,OAAO,KAAK,QAAQ,QAAU,KAAK,IAAM,EAAiB,KAAK,IAAM,CACzE,CACA,qBAAqB,EAAO,CACxB,IAAM,EAAc,KAAK,cAAgB,CAAC,EAC1C,GAAI,GAAS,GAAK,EAAQ,EAAY,OAAQ,CAC1C,IAAM,EAAa,EAAY,GAC/B,OAAO,IAAwB,KAAK,WAAW,EAAG,EAAO,CAAU,CACvE,CACJ,CACA,iBAAiB,EAAO,EAAoB,EAAkB,EAAG,CAC7D,IAAM,EAAQ,KAAK,cAAc,CAAK,EAAI,GAAU,EACpD,MAAO,CACH,EAAG,KAAK,IAAI,CAAK,EAAI,EAAqB,KAAK,QAC/C,EAAG,KAAK,IAAI,CAAK,EAAI,EAAqB,KAAK,QAC/C,OACJ,CACJ,CACA,yBAAyB,EAAO,EAAO,CACnC,OAAO,KAAK,iBAAiB,EAAO,KAAK,8BAA8B,CAAK,CAAC,CACjF,CACA,gBAAgB,EAAO,CACnB,OAAO,KAAK,yBAAyB,GAAS,EAAG,KAAK,aAAa,CAAC,CACxE,CACA,sBAAsB,EAAO,CACzB,GAAM,CAAE,OAAO,MAAM,QAAQ,UAAY,KAAK,iBAAiB,GAC/D,MAAO,CACH,OACA,MACA,QACA,QACJ,CACJ,CACH,gBAAiB,CACV,GAAM,CAAE,kBAAkB,KAAM,CAAE,aAAiB,KAAK,QACxD,GAAI,EAAiB,CACjB,IAAM,EAAM,KAAK,IACjB,EAAI,KAAK,EACT,EAAI,UAAU,EACd,GAAe,KAAM,KAAK,8BAA8B,KAAK,SAAS,EAAG,EAAU,KAAK,aAAa,MAAM,EAC3G,EAAI,UAAU,EACd,EAAI,UAAY,EAChB,EAAI,KAAK,EACT,EAAI,QAAQ,CAChB,CACJ,CACH,UAAW,CACJ,IAAM,EAAM,KAAK,IACX,EAAO,KAAK,QACZ,CAAE,aAAa,OAAO,UAAY,EAClC,EAAa,KAAK,aAAa,OACjC,EAAG,EAAQ,EAef,GAdI,EAAK,YAAY,SACjB,IAAgB,KAAM,CAAU,EAEhC,EAAK,SACL,KAAK,MAAM,SAAS,EAAM,IAAQ,CAC9B,GAAI,IAAU,GAAK,IAAU,GAAK,KAAK,IAAM,EAAG,CAC5C,EAAS,KAAK,8BAA8B,EAAK,KAAK,EACtD,IAAM,EAAU,KAAK,WAAW,CAAK,EAC/B,EAAc,EAAK,WAAW,CAAO,EACrC,EAAoB,EAAO,WAAW,CAAO,EACnD,IAAe,KAAM,EAAa,EAAQ,EAAY,CAAiB,CAC3E,CACJ,CAAC,EAED,EAAW,QAAS,CAEpB,IADA,EAAI,KAAK,EACL,EAAI,EAAa,EAAG,GAAK,EAAG,IAAI,CAChC,IAAM,EAAc,EAAW,WAAW,KAAK,qBAAqB,CAAC,CAAC,EAChE,CAAE,QAAQ,aAAe,EAC3B,CAAC,GAAa,CAAC,IAGnB,EAAI,UAAY,EAChB,EAAI,YAAc,EAClB,EAAI,YAAY,EAAY,UAAU,EACtC,EAAI,eAAiB,EAAY,iBACjC,EAAS,KAAK,8BAA8B,EAAK,QAAU,KAAK,IAAM,KAAK,GAAG,EAC9E,EAAW,KAAK,iBAAiB,EAAG,CAAM,EAC1C,EAAI,UAAU,EACd,EAAI,OAAO,KAAK,QAAS,KAAK,OAAO,EACrC,EAAI,OAAO,EAAS,EAAG,EAAS,CAAC,EACjC,EAAI,OAAO,EACf,CACA,EAAI,QAAQ,CAChB,CACJ,CACH,YAAa,CAAC,CACd,YAAa,CACN,IAAM,EAAM,KAAK,IACX,EAAO,KAAK,QACZ,EAAW,EAAK,MACtB,GAAI,CAAC,EAAS,QACV,OAEJ,IAAM,EAAa,KAAK,cAAc,CAAC,EACnC,EAAQ,EACZ,EAAI,KAAK,EACT,EAAI,UAAU,KAAK,QAAS,KAAK,OAAO,EACxC,EAAI,OAAO,CAAU,EACrB,EAAI,UAAY,SAChB,EAAI,aAAe,SACnB,KAAK,MAAM,SAAS,EAAM,IAAQ,CAC9B,GAAI,IAAU,GAAK,KAAK,KAAO,GAAK,CAAC,EAAK,QACtC,OAEJ,IAAM,EAAc,EAAS,WAAW,KAAK,WAAW,CAAK,CAAC,EACxD,EAAW,GAAO,EAAY,IAAI,EAExC,GADA,EAAS,KAAK,8BAA8B,KAAK,MAAM,GAAO,KAAK,EAC/D,EAAY,kBAAmB,CAC/B,EAAI,KAAO,EAAS,OACpB,EAAQ,EAAI,YAAY,EAAK,KAAK,EAAE,MACpC,EAAI,UAAY,EAAY,cAC5B,IAAM,EAAU,GAAU,EAAY,eAAe,EACrD,EAAI,SAAS,CAAC,EAAQ,EAAI,EAAQ,KAAM,CAAC,EAAS,EAAS,KAAO,EAAI,EAAQ,IAAK,EAAQ,EAAQ,MAAO,EAAS,KAAO,EAAQ,MAAM,CAC5I,CACA,GAAW,EAAK,EAAK,MAAO,EAAG,CAAC,EAAQ,EAAU,CAC9C,MAAO,EAAY,MACnB,YAAa,EAAY,gBACzB,YAAa,EAAY,eAC7B,CAAC,CACL,CAAC,EACD,EAAI,QAAQ,CAChB,CACH,WAAY,CAAC,CACd,GAEA,IAAM,GAAY,CACd,YAAa,CACT,OAAQ,GACR,KAAM,EACN,MAAO,GACX,EACA,OAAQ,CACJ,OAAQ,GACR,KAAM,IACN,MAAO,EACX,EACA,OAAQ,CACJ,OAAQ,GACR,KAAM,IACN,MAAO,EACX,EACA,KAAM,CACF,OAAQ,GACR,KAAM,KACN,MAAO,EACX,EACA,IAAK,CACD,OAAQ,GACR,KAAM,MACN,MAAO,EACX,EACA,KAAM,CACF,OAAQ,GACR,KAAM,OACN,MAAO,CACX,EACA,MAAO,CACH,OAAQ,GACR,KAAM,OACN,MAAO,EACX,EACA,QAAS,CACL,OAAQ,GACR,KAAM,OACN,MAAO,CACX,EACA,KAAM,CACF,OAAQ,GACR,KAAM,MACV,CACJ,EACO,GAAyB,OAAO,KAAK,EAAS,EACpD,SAAS,GAAO,EAAG,EAAG,CACnB,OAAO,EAAI,CACf,CACC,SAAS,GAAM,EAAO,EAAO,CAC1B,GAAI,GAAc,CAAK,EACnB,OAAO,KAEX,IAAM,EAAU,EAAM,SAChB,CAAE,SAAS,QAAQ,cAAgB,EAAM,WAC3C,EAAQ,EAaZ,OAZI,OAAO,GAAW,aAClB,EAAQ,EAAO,CAAK,GAEnB,GAAe,CAAK,IACrB,EAAQ,OAAO,GAAW,SAAW,EAAQ,MAAM,EAAO,CAAM,EAAI,EAAQ,MAAM,CAAK,GAEvF,IAAU,KACH,MAEP,IACA,EAAQ,IAAU,SAAW,GAAS,CAAU,GAAK,IAAe,IAAQ,EAAQ,QAAQ,EAAO,UAAW,CAAU,EAAI,EAAQ,QAAQ,EAAO,CAAK,GAErJ,CAAC,EACZ,CACC,SAAS,GAA0B,EAAS,EAAK,EAAK,EAAU,CAC7D,IAAM,EAAO,GAAM,OACnB,IAAI,IAAI,EAAI,GAAM,QAAQ,CAAO,EAAG,EAAI,EAAO,EAAG,EAAE,EAAE,CAClD,IAAM,EAAW,GAAU,GAAM,IAC3B,EAAS,EAAS,MAAQ,EAAS,cACzC,GAAI,EAAS,QAAU,KAAK,MAAM,EAAM,IAAQ,EAAS,EAAS,KAAK,GAAK,EACxE,OAAO,GAAM,EAErB,CACA,OAAO,GAAM,EAAO,EACxB,CACC,SAAS,IAA2B,EAAO,EAAU,EAAS,EAAK,EAAK,CACrE,IAAI,IAAI,EAAI,GAAM,OAAS,EAAG,GAAK,GAAM,QAAQ,CAAO,EAAG,IAAI,CAC3D,IAAM,EAAO,GAAM,GACnB,GAAI,GAAU,GAAM,QAAU,EAAM,SAAS,KAAK,EAAK,EAAK,CAAI,GAAK,EAAW,EAC5E,OAAO,CAEf,CACA,OAAO,GAAM,EAAU,GAAM,QAAQ,CAAO,EAAI,EACpD,CACC,SAAS,IAAmB,EAAM,CAC/B,IAAI,IAAI,EAAI,GAAM,QAAQ,CAAI,EAAI,EAAG,EAAO,GAAM,OAAQ,EAAI,EAAM,EAAE,EAClE,GAAI,GAAU,GAAM,IAAI,OACpB,OAAO,GAAM,EAGzB,CACC,SAAS,GAAQ,EAAO,EAAM,EAAY,CACvC,GAAI,CAAC,EACD,EAAM,GAAQ,QACX,GAAI,EAAW,OAAQ,CAC1B,GAAM,CAAE,KAAK,MAAQ,GAAQ,EAAY,CAAI,EACvC,EAAY,EAAW,IAAO,EAAO,EAAW,GAAM,EAAW,GACvE,EAAM,GAAa,EACvB,CACJ,CACC,SAAS,IAAc,EAAO,EAAO,EAAK,EAAW,CAClD,IAAM,EAAU,EAAM,SAChB,EAAQ,CAAC,EAAQ,QAAQ,EAAM,GAAG,MAAO,CAAS,EAClD,EAAO,EAAM,EAAM,OAAS,GAAG,MACjC,EAAO,EACX,IAAI,EAAQ,EAAO,GAAS,EAAM,EAAQ,CAAC,EAAQ,IAAI,EAAO,EAAG,CAAS,EACtE,EAAQ,EAAI,GACR,GAAS,IACT,EAAM,GAAO,MAAQ,IAG7B,OAAO,CACX,CACC,SAAS,GAAoB,EAAO,EAAQ,EAAW,CACpD,IAAM,EAAQ,CAAC,EACR,EAAM,CAAC,EACR,EAAO,EAAO,OAChB,EAAG,EACP,IAAI,EAAI,EAAG,EAAI,EAAM,EAAE,EACnB,EAAQ,EAAO,GACf,EAAI,GAAS,EACb,EAAM,KAAK,CACP,QACA,MAAO,EACX,CAAC,EAEL,OAAO,IAAS,GAAK,CAAC,EAAY,EAAQ,IAAc,EAAO,EAAO,EAAK,CAAS,CACxF,CACA,IAAM,GAAN,cAAwB,EAAM,CAC1B,OAAO,GAAK,OACf,OAAO,SAAW,CAClB,OAAQ,OACD,SAAU,CAAC,EACX,KAAM,CACF,OAAQ,GACR,KAAM,GACN,MAAO,GACP,WAAY,GACZ,QAAS,cACT,eAAgB,CAAC,CACrB,EACA,MAAO,CACd,OAAQ,OACG,SAAU,GACV,MAAO,CACH,QAAS,EACb,CACJ,CACJ,EACH,YAAY,EAAM,CACX,MAAM,CAAK,EACV,KAAK,OAAS,CACX,KAAM,CAAC,EACP,OAAQ,CAAC,EACT,IAAK,CAAC,CACV,EACC,KAAK,MAAQ,MACb,KAAK,WAAa,OACnB,KAAK,SAAW,CAAC,EACjB,KAAK,YAAc,GACnB,KAAK,WAAa,MACtB,CACA,KAAK,EAAW,EAAO,CAAC,EAAG,CACvB,IAAM,EAAO,CAAmB,CAAU,OAAO,CAAC,EAC3C,EAAU,KAAK,SAAW,IAAI,IAAS,MAAM,EAAU,SAAS,IAAI,EAC3E,EAAQ,KAAK,CAAI,EACjB,GAAQ,EAAK,eAAgB,EAAQ,QAAQ,CAAC,EAC9C,KAAK,WAAa,CACd,OAAQ,EAAK,OACb,MAAO,EAAK,MACZ,WAAY,EAAK,UACrB,EACA,MAAM,KAAK,CAAS,EACpB,KAAK,YAAc,EAAK,UAC5B,CACH,MAAM,EAAK,EAAO,CAIX,OAHI,IAAQ,OACD,KAEJ,GAAM,KAAM,CAAG,CAC1B,CACA,cAAe,CACX,MAAM,aAAa,EACnB,KAAK,OAAS,CACV,KAAM,CAAC,EACP,OAAQ,CAAC,EACT,IAAK,CAAC,CACV,CACJ,CACA,qBAAsB,CAClB,IAAM,EAAU,KAAK,QACf,EAAU,KAAK,SACf,EAAO,EAAQ,KAAK,MAAQ,MAC9B,CAAE,MAAM,MAAM,aAAa,cAAgB,KAAK,cAAc,EACzE,SAAS,EAAa,EAAQ,CACf,CAAC,GAAc,CAAC,MAAM,EAAO,GAAG,IAChC,EAAM,KAAK,IAAI,EAAK,EAAO,GAAG,GAE9B,CAAC,GAAc,CAAC,MAAM,EAAO,GAAG,IAChC,EAAM,KAAK,IAAI,EAAK,EAAO,GAAG,EAEtC,EACI,CAAC,GAAc,CAAC,KAChB,EAAa,KAAK,gBAAgB,CAAC,GAC/B,EAAQ,SAAW,SAAW,EAAQ,MAAM,SAAW,WACvD,EAAa,KAAK,UAAU,EAAK,CAAC,GAG1C,EAAM,GAAe,CAAG,GAAK,CAAC,MAAM,CAAG,EAAI,EAAM,CAAC,EAAQ,QAAQ,KAAK,IAAI,EAAG,CAAI,EAClF,EAAM,GAAe,CAAG,GAAK,CAAC,MAAM,CAAG,EAAI,EAAM,CAAC,EAAQ,MAAM,KAAK,IAAI,EAAG,CAAI,EAAI,EACpF,KAAK,IAAM,KAAK,IAAI,EAAK,EAAM,CAAC,EAChC,KAAK,IAAM,KAAK,IAAI,EAAM,EAAG,CAAG,CACpC,CACH,iBAAkB,CACX,IAAM,EAAM,KAAK,mBAAmB,EAChC,EAAM,IACN,EAAM,KAKV,OAJI,EAAI,SACJ,EAAM,EAAI,GACV,EAAM,EAAI,EAAI,OAAS,IAEpB,CACH,MACA,KACJ,CACJ,CACH,YAAa,CACN,IAAM,EAAU,KAAK,QACf,EAAW,EAAQ,KACnB,EAAW,EAAQ,MACnB,EAAa,EAAS,SAAW,SAAW,KAAK,mBAAmB,EAAI,KAAK,UAAU,EACzF,EAAQ,SAAW,SAAW,EAAW,SACzC,KAAK,IAAM,KAAK,UAAY,EAAW,GACvC,KAAK,IAAM,KAAK,UAAY,EAAW,EAAW,OAAS,IAE/D,IAAM,EAAM,KAAK,IACX,EAAM,KAAK,IACX,EAAQ,IAAe,EAAY,EAAK,CAAG,EAOjD,MANA,MAAK,MAAQ,EAAS,OAAS,EAAS,SAAW,GAA0B,EAAS,QAAS,KAAK,IAAK,KAAK,IAAK,KAAK,kBAAkB,CAAG,CAAC,EAAI,IAA2B,KAAM,EAAM,OAAQ,EAAS,QAAS,KAAK,IAAK,KAAK,GAAG,GACrO,KAAK,WAAa,CAAC,EAAS,MAAM,SAAW,KAAK,QAAU,OAAS,OAAY,IAAmB,KAAK,KAAK,EAC9G,KAAK,YAAY,CAAU,EACvB,EAAQ,SACR,EAAM,QAAQ,EAEX,GAAoB,KAAM,EAAO,KAAK,UAAU,CAC3D,CACA,eAAgB,CACR,KAAK,QAAQ,qBACb,KAAK,YAAY,KAAK,MAAM,IAAK,GAAO,CAAC,EAAK,KAAK,CAAC,CAE5D,CACH,YAAY,EAAa,CAAC,EAAG,CACtB,IAAI,EAAQ,EACR,EAAM,EACN,EAAO,EACP,KAAK,QAAQ,QAAU,EAAW,SAClC,EAAQ,KAAK,mBAAmB,EAAW,EAAE,EAC7C,CAGI,CAHA,EAAW,SAAW,EACd,EAAI,GAEH,KAAK,mBAAmB,EAAW,EAAE,EAAI,GAAS,EAE/D,EAAO,KAAK,mBAAmB,EAAW,EAAW,OAAS,EAAE,EAChE,CAGI,CAHA,EAAW,SAAW,EAChB,GAEC,EAAO,KAAK,mBAAmB,EAAW,EAAW,OAAS,EAAE,GAAK,GAGpF,IAAM,EAAQ,EAAW,OAAS,EAAI,GAAM,IAC5C,EAAQ,GAAY,EAAO,EAAG,CAAK,EACnC,EAAM,GAAY,EAAK,EAAG,CAAK,EAC/B,KAAK,SAAW,CACZ,QACA,MACA,OAAQ,GAAK,EAAQ,EAAI,EAC7B,CACJ,CACH,WAAY,CACL,IAAM,EAAU,KAAK,SACf,EAAM,KAAK,IACX,EAAM,KAAK,IACX,EAAU,KAAK,QACf,EAAW,EAAQ,KACnB,EAAQ,EAAS,MAAQ,GAA0B,EAAS,QAAS,EAAK,EAAK,KAAK,kBAAkB,CAAG,CAAC,EAC1G,EAAW,GAAe,EAAQ,MAAM,SAAU,CAAC,EACnD,EAAU,IAAU,OAAS,EAAS,WAAa,GACnD,EAAa,GAAS,CAAO,GAAK,IAAY,GAC9C,EAAQ,CAAC,EACX,EAAQ,EACR,EAAM,EAKV,GAJI,IACA,EAAQ,CAAC,EAAQ,QAAQ,EAAO,UAAW,CAAO,GAEtD,EAAQ,CAAC,EAAQ,QAAQ,EAAO,EAAa,MAAQ,CAAK,EACtD,EAAQ,KAAK,EAAK,EAAK,CAAK,EAAI,IAAS,EACzC,MAAU,MAAM,EAAM,QAAU,EAAM,uCAAyC,EAAW,IAAM,CAAK,EAEzG,IAAM,EAAa,EAAQ,MAAM,SAAW,QAAU,KAAK,kBAAkB,EAC7E,IAAI,EAAO,EAAO,EAAQ,EAAG,EAAO,EAAK,EAAO,CAAC,EAAQ,IAAI,EAAM,EAAU,CAAK,EAAG,IACjF,GAAQ,EAAO,EAAM,CAAU,EAKnC,OAHI,IAAS,GAAO,EAAQ,SAAW,SAAW,IAAU,IACxD,GAAQ,EAAO,EAAM,CAAU,EAE5B,OAAO,KAAK,CAAK,EAAE,KAAK,EAAM,EAAE,IAAK,GAAI,CAAC,CAAC,CACtD,CACH,iBAAiB,EAAO,CACjB,IAAM,EAAU,KAAK,SACf,EAAW,KAAK,QAAQ,KAI9B,OAHI,EAAS,cACF,EAAQ,OAAO,EAAO,EAAS,aAAa,EAEhD,EAAQ,OAAO,EAAO,EAAS,eAAe,QAAQ,CACjE,CACH,OAAO,EAAO,EAAQ,CAEf,IAAM,EADU,KAAK,QACG,KAAK,eACvB,EAAO,KAAK,MACZ,EAAM,GAAU,EAAQ,GAC9B,OAAO,KAAK,SAAS,OAAO,EAAO,CAAG,CAC1C,CACH,oBAAoB,EAAM,EAAO,EAAO,EAAQ,CACzC,IAAM,EAAU,KAAK,QACf,EAAY,EAAQ,MAAM,SAChC,GAAI,EACA,OAAO,GAAS,EAAW,CACvB,EACA,EACA,CACJ,EAAG,IAAI,EAEX,IAAM,EAAU,EAAQ,KAAK,eACvB,EAAO,KAAK,MACZ,EAAY,KAAK,WACjB,EAAc,GAAQ,EAAQ,GAC9B,EAAc,GAAa,EAAQ,GACnC,EAAO,EAAM,GACb,EAAQ,GAAa,GAAe,GAAQ,EAAK,MACvD,OAAO,KAAK,SAAS,OAAO,EAAM,IAAW,EAAQ,EAAc,EAAY,CACnF,CACH,mBAAmB,EAAO,CACnB,IAAI,EAAG,EAAM,EACb,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EACxC,EAAO,EAAM,GACb,EAAK,MAAQ,KAAK,oBAAoB,EAAK,MAAO,EAAG,CAAK,CAElE,CACH,mBAAmB,EAAO,CACnB,OAAO,IAAU,KAAO,KAAO,EAAQ,KAAK,MAAQ,KAAK,IAAM,KAAK,IACxE,CACH,iBAAiB,EAAO,CACjB,IAAM,EAAU,KAAK,SACf,EAAM,KAAK,mBAAmB,CAAK,EACzC,OAAO,KAAK,oBAAoB,EAAQ,MAAQ,GAAO,EAAQ,MAAM,CACzE,CACH,iBAAiB,EAAO,CACjB,IAAM,EAAU,KAAK,SACf,EAAM,KAAK,mBAAmB,CAAK,EAAI,EAAQ,OAAS,EAAQ,IACtE,OAAO,KAAK,IAAM,GAAO,KAAK,IAAM,KAAK,IAC7C,CACH,cAAc,EAAO,CACd,IAAM,EAAY,KAAK,QAAQ,MACzB,EAAiB,KAAK,IAAI,YAAY,CAAK,EAAE,MAC7C,EAAQ,GAAU,KAAK,aAAa,EAAI,EAAU,YAAc,EAAU,WAAW,EACrF,EAAc,KAAK,IAAI,CAAK,EAC5B,EAAc,KAAK,IAAI,CAAK,EAC5B,EAAe,KAAK,wBAAwB,CAAC,EAAE,KACrD,MAAO,CACH,EAAG,EAAiB,EAAc,EAAe,EACjD,EAAG,EAAiB,EAAc,EAAe,CACrD,CACJ,CACH,kBAAkB,EAAa,CACxB,IAAM,EAAW,KAAK,QAAQ,KACxB,EAAiB,EAAS,eAC1B,EAAS,EAAe,EAAS,OAAS,EAAe,YACzD,EAAe,KAAK,oBAAoB,EAAa,EAAG,GAAoB,KAAM,CACpF,CACJ,EAAG,KAAK,UAAU,EAAG,CAAM,EACrB,EAAO,KAAK,cAAc,CAAY,EACtC,EAAW,KAAK,MAAM,KAAK,aAAa,EAAI,KAAK,MAAQ,EAAK,EAAI,KAAK,OAAS,EAAK,CAAC,EAAI,EAChG,OAAO,EAAW,EAAI,EAAW,CACrC,CACH,mBAAoB,CACb,IAAI,EAAa,KAAK,OAAO,MAAQ,CAAC,EAClC,EAAG,EACP,GAAI,EAAW,OACX,OAAO,EAEX,IAAM,EAAQ,KAAK,wBAAwB,EAC3C,GAAI,KAAK,aAAe,EAAM,OAC1B,MAAO,MAAK,OAAO,KAAO,EAAM,GAAG,WAAW,mBAAmB,IAAI,EAEzE,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EACxC,EAAa,EAAW,OAAO,EAAM,GAAG,WAAW,mBAAmB,IAAI,CAAC,EAE/E,MAAO,MAAK,OAAO,KAAO,KAAK,UAAU,CAAU,CACvD,CACH,oBAAqB,CACd,IAAM,EAAa,KAAK,OAAO,QAAU,CAAC,EACtC,EAAG,EACP,GAAI,EAAW,OACX,OAAO,EAEX,IAAM,EAAS,KAAK,UAAU,EAC9B,IAAI,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,EAAE,EACzC,EAAW,KAAK,GAAM,KAAM,EAAO,EAAE,CAAC,EAE1C,MAAO,MAAK,OAAO,OAAS,KAAK,YAAc,EAAa,KAAK,UAAU,CAAU,CACzF,CACH,UAAU,EAAQ,CACX,OAAO,GAAa,EAAO,KAAK,EAAM,CAAC,CAC3C,CACJ,EAEA,SAAS,GAAY,EAAO,EAAK,EAAS,CACtC,IAAI,EAAK,EACL,EAAK,EAAM,OAAS,EACpB,EAAY,EAAY,EAAY,EACpC,GACI,GAAO,EAAM,GAAI,KAAO,GAAO,EAAM,GAAI,MACxC,YAAe,GAAa,EAAO,MAAO,CAAG,GAEjD,CAAE,IAAK,EAAa,KAAM,GAAgB,EAAM,GAChD,CAAE,IAAK,EAAa,KAAM,GAAgB,EAAM,KAE7C,GAAO,EAAM,GAAI,MAAQ,GAAO,EAAM,GAAI,OACzC,YAAe,GAAa,EAAO,OAAQ,CAAG,GAElD,CAAE,KAAM,EAAa,IAAK,GAAgB,EAAM,GAChD,CAAE,KAAM,EAAa,IAAK,GAAgB,EAAM,IAErD,IAAM,EAAO,EAAa,EAC1B,OAAO,EAAO,GAAc,EAAa,IAAe,EAAM,GAAc,EAAO,CACvF,EACA,cAA8B,EAAU,CACpC,OAAO,GAAK,aACf,OAAO,SAAW,GAAU,SAC5B,YAAY,EAAM,CACX,MAAM,CAAK,EACV,KAAK,OAAS,CAAC,EACf,KAAK,QAAU,OACf,KAAK,YAAc,MACxB,CACH,aAAc,CACP,IAAM,EAAa,KAAK,uBAAuB,EACzC,EAAQ,KAAK,OAAS,KAAK,iBAAiB,CAAU,EAC5D,KAAK,QAAU,GAAY,EAAO,KAAK,GAAG,EAC1C,KAAK,YAAc,GAAY,EAAO,KAAK,GAAG,EAAI,KAAK,QACvD,MAAM,YAAY,CAAU,CAChC,CACH,iBAAiB,EAAY,CACtB,GAAM,CAAE,MAAM,OAAS,KACjB,EAAQ,CAAC,EACT,EAAQ,CAAC,EACX,EAAG,EAAM,EAAM,EAAM,EACzB,IAAI,EAAI,EAAG,EAAO,EAAW,OAAQ,EAAI,EAAM,EAAE,EAC7C,EAAO,EAAW,GACd,GAAQ,GAAO,GAAQ,GACvB,EAAM,KAAK,CAAI,EAGvB,GAAI,EAAM,OAAS,EACf,MAAO,CACH,CACI,KAAM,EACN,IAAK,CACT,EACA,CACI,KAAM,EACN,IAAK,CACT,CACJ,EAEJ,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,EAAE,EACxC,EAAO,EAAM,EAAI,GACjB,EAAO,EAAM,EAAI,GACjB,EAAO,EAAM,GACT,KAAK,OAAO,EAAO,GAAQ,CAAC,IAAM,GAClC,EAAM,KAAK,CACP,KAAM,EACN,IAAK,GAAK,EAAO,EACrB,CAAC,EAGT,OAAO,CACX,CACH,WAAY,CACL,IAAM,EAAM,KAAK,IACX,EAAM,KAAK,IACb,EAAa,MAAM,kBAAkB,EAOzC,OANI,CAAC,EAAW,SAAS,CAAG,GAAK,CAAC,EAAW,SACzC,EAAW,OAAO,EAAG,EAAG,CAAG,GAE3B,CAAC,EAAW,SAAS,CAAG,GAAK,EAAW,SAAW,IACnD,EAAW,KAAK,CAAG,EAEhB,EAAW,MAAM,EAAG,IAAI,EAAI,CAAC,CACxC,CACH,wBAAyB,CAClB,IAAI,EAAa,KAAK,OAAO,KAAO,CAAC,EACrC,GAAI,EAAW,OACX,OAAO,EAEX,IAAM,EAAO,KAAK,kBAAkB,EAC9B,EAAQ,KAAK,mBAAmB,EAOtC,MANA,CAGI,EAHA,EAAK,QAAU,EAAM,OACR,KAAK,UAAU,EAAK,OAAO,CAAK,CAAC,EAEjC,EAAK,OAAS,EAAO,EAEtC,EAAa,KAAK,OAAO,IAAM,EACxB,CACX,CACH,mBAAmB,EAAO,CACnB,OAAQ,GAAY,KAAK,OAAQ,CAAK,EAAI,KAAK,SAAW,KAAK,WACnE,CACH,iBAAiB,EAAO,CACjB,IAAM,EAAU,KAAK,SACf,EAAU,KAAK,mBAAmB,CAAK,EAAI,EAAQ,OAAS,EAAQ,IAC1E,OAAO,GAAY,KAAK,OAAQ,EAAU,KAAK,YAAc,KAAK,QAAS,EAAI,CACnF,CACJ,GC1zWA,GAAM,CAAE,QAAK,SAAQ,KAErB,IAAgB,EAAG,EAAM,EAAG,EAAO,IACxBxE,IAAIC,IAAI,EAAK,CAAC,EAAG,CAAI,ECDhC,GAAgB,GAAQ,CACpB,EAAI,SAAW,GACf,EAAI,WAAa,EAAI,MAAM,CAAC,EAC5B,IAAK,IAAI,EAAI,EAAG,GAAK,EAAG,IAChB,EAAI,IACA,EAAI,GAAK,GAAK,EAAI,GAAK,OAAK,EAAI,SAAW,IAC/C,EAAI,GAAK8E,GAAM,EAAI,GAAI,EAAG,GAAG,GACtB,IAAM,IACb,EAAI,GAAKA,GAAM,EAAI,GAAI,EAAG,CAAC,GAGnC,OAAO,CACX,ECbM,GAAc,CAAC,EACrB,IAAK,IAAI,IAAQ,CACb,UACA,SACA,SACA,WACA,QACA,OACA,SACA,YACA,MACJ,EACI,GAAY,WAAW,EAAK,IAAM,EAAK,YAAY,EAEvD,YAAyB,EAAK,CAC1B,OAAO,GAAY,OAAO,UAAU,SAAS,KAAK,CAAG,IAAM,QAC/D,CCfA,QAAgB,EAAM,EAAW,OAEzB,EAAK,QAAU,EAAU,MAAM,UAAU,MAAM,KAAK,CAAI,EAGxDC,GAAK,EAAK,EAAE,GAAK,UAAY,EACtB,EACF,MAAM,EAAE,EACR,OAAQ,GAAM,EAAK,GAAG,KAAO,MAAS,EACtC,IAAK,GAAM,EAAK,GAAG,EAAE,EAIvB,EAAK,GAAG,MAAM,CAAC,ECb1B,GAAgB,GAAS,CACrB,GAAI,EAAK,OAAS,EAAG,OAAO,KAC5B,IAAM,EAAI,EAAK,OAAS,EAExB,OADIA,GAAK,EAAK,EAAE,GAAK,SAAiB,EAAK,GAAG,YAAY,EACnD,IACX,ECPM,CAAE,MAAI,OAAK,QAAQ,KAEnB,GAAQ,GAAM,KAAK,MAAM,EAAI,GAAG,EAAI,IACpC,GAAQ,GAAM,KAAK,MAAM,EAAI,GAAG,EAAI,IAQpC,GAAQR,GAAK,EACb,GAAUA,GAAK,EACf,IAAUA,GAAK,IACf,IAAU,IAAMA,GAQtB,SAAS,GAAS,EAAK,CACnB,MAAO,CAAC,GAAG,EAAI,MAAM,EAAG,CAAC,EAAE,QAAQ,EAAG,GAAG,EAAI,MAAM,CAAC,CAAC,CACzD,CCxBA,OAAe,CACX,OAAQ,CAAC,EACT,WAAY,CAAC,CACjB,ECAM,GAAN,KAAY,CACR,YAAY,GAAG,EAAM,CACjB,IAAM,EAAK,KACX,GACIQ,GAAK,EAAK,EAAE,IAAM,UAClB,EAAK,GAAG,aACR,EAAK,GAAG,cAAgB,KAAK,YAG7B,OAAO,EAAK,GAGhB,IAAI,EAAOC,GAAK,CAAI,EAChB,EAAa,GACjB,GAAI,CAAC,EAAM,CACP,EAAa,GAEb,EAEI,CAAO,UADP,GAAO,WAAaC,GAAO,WAAW,MAAM,EAAG,IAAM,EAAE,EAAI,EAAE,CAAC,EAC9C,IAIpB,IAAK,IAAI,KAAOA,GAAO,WAEnB,GADA,EAAO,EAAI,KAAK,GAAG,CAAI,EACnB,EAAM,KAElB,CACA,GAAIA,GAAO,OAAO,GAKd,EAAG,KAAOC,GAJED,GAAO,OAAO,GAAM,MAC5B,KACA,EAAa,EAAO,EAAK,MAAM,EAAG,EAAE,CAEnB,CAAC,OAEtB,MAAU,MAAM,mBAAqB,CAAI,EAGzC,EAAG,KAAK,SAAW,GAAG,EAAG,KAAK,KAAK,CAAC,CAC5C,CACA,UAAW,CAEP,OADIF,GAAK,KAAK,GAAG,GAAK,WAAmB,KAAK,IAAI,EAC3C,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,EACnC,CACJ,EC9CaH,IAAU,QCEjB,IAAU,GAAG,IACR,IAAI,GAAM,GAAG,CAAI,EAG5B,GAAO,QAAUA,ICDjB,IAAM,GAAS,CACX,UAAW,UACX,aAAc,UACd,KAAM,UACN,WAAY,UACZ,MAAO,UACP,MAAO,UACP,OAAQ,UACR,MAAO,UACP,eAAgB,UAChB,KAAM,UACN,WAAY,UACZ,MAAO,UACP,UAAW,UACX,UAAW,UACX,WAAY,UACZ,UAAW,UACX,MAAO,UACP,eAAgB,UAChB,SAAU,UACV,QAAS,UACT,KAAM,UACN,SAAU,UACV,SAAU,UACV,cAAe,UACf,SAAU,UACV,UAAW,UACX,SAAU,UACV,UAAW,UACX,YAAa,UACb,eAAgB,UAChB,WAAY,UACZ,WAAY,UACZ,QAAS,UACT,WAAY,UACZ,aAAc,UACd,cAAe,UACf,cAAe,UACf,cAAe,UACf,cAAe,UACf,WAAY,UACZ,SAAU,UACV,YAAa,UACb,QAAS,UACT,QAAS,UACT,WAAY,UACZ,UAAW,UACX,YAAa,UACb,YAAa,UACb,QAAS,UACT,UAAW,UACX,WAAY,UACZ,KAAM,UACN,UAAW,UACX,KAAM,UACN,MAAO,UACP,YAAa,UACb,KAAM,UACN,SAAU,UACV,QAAS,UACT,UAAW,UACX,OAAQ,UACR,MAAO,UACP,MAAO,UACP,WAAY,UACZ,SAAU,UACV,cAAe,UACf,UAAW,UACX,aAAc,UACd,UAAW,UACX,WAAY,UACZ,UAAW,UACX,eAAgB,UAChB,qBAAsB,UACtB,UAAW,UACX,WAAY,UACZ,UAAW,UACX,UAAW,UACX,YAAa,UACb,cAAe,UACf,aAAc,UACd,eAAgB,UAChB,eAAgB,UAChB,eAAgB,UAChB,YAAa,UACb,KAAM,UACN,UAAW,UACX,MAAO,UACP,QAAS,UACT,OAAQ,UACR,QAAS,UACT,QAAS,UACT,iBAAkB,UAClB,WAAY,UACZ,aAAc,UACd,aAAc,UACd,eAAgB,UAChB,gBAAiB,UACjB,kBAAmB,UACnB,gBAAiB,UACjB,gBAAiB,UACjB,aAAc,UACd,UAAW,UACX,UAAW,UACX,SAAU,UACV,YAAa,UACb,KAAM,UACN,QAAS,UACT,MAAO,UACP,UAAW,UACX,OAAQ,UACR,UAAW,UACX,OAAQ,UACR,cAAe,UACf,UAAW,UACX,cAAe,UACf,cAAe,UACf,WAAY,UACZ,UAAW,UACX,KAAM,UACN,KAAM,UACN,KAAM,UACN,WAAY,UACZ,OAAQ,UACR,QAAS,UACT,QAAS,UACT,cAAe,UACf,IAAK,UACL,UAAW,UACX,UAAW,UACX,YAAa,UACb,OAAQ,UACR,WAAY,UACZ,SAAU,UACV,SAAU,UACV,OAAQ,UACR,OAAQ,UACR,QAAS,UACT,UAAW,UACX,UAAW,UACX,UAAW,UACX,KAAM,UACN,YAAa,UACb,UAAW,UACX,IAAK,UACL,KAAM,UACN,QAAS,UACT,OAAQ,UACR,UAAW,UACX,OAAQ,UACR,MAAO,UACP,MAAO,UACP,WAAY,UACZ,OAAQ,UACR,YAAa,SACjB,ECjKM,IAAS,sCACT,IAAU,sCAEV,GAAW,GAAQ,CACrB,GAAI,EAAI,MAAM,GAAM,EAAG,EAEf,EAAI,SAAW,GAAK,EAAI,SAAW,KACnC,EAAM,EAAI,OAAO,CAAC,GAGlB,EAAI,SAAW,IACf,EAAM,EAAI,MAAM,EAAE,EAClB,EAAM,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,IAE3D,IAAM,EAAI,SAAS,EAAK,EAAE,EAI1B,MAAO,CAHG,GAAK,GACJ,GAAK,EAAK,IACX,EAAI,IACG,CAAC,CACtB,CAGA,GAAI,EAAI,MAAM,GAAO,EAAG,EAChB,EAAI,SAAW,GAAK,EAAI,SAAW,KAEnC,EAAM,EAAI,OAAO,CAAC,GAGlB,EAAI,SAAW,IACf,EAAM,EAAI,MAAM,EAAE,EAClB,EACI,EAAI,GACJ,EAAI,GACJ,EAAI,GACJ,EAAI,GACJ,EAAI,GACJ,EAAI,GACJ,EAAI,GACJ,EAAI,IAEZ,IAAM,EAAI,SAAS,EAAK,EAAE,EAK1B,MAAO,CAJI,GAAK,GAAM,IACX,GAAK,GAAM,IACX,GAAK,EAAK,IACX,KAAK,OAAQ,EAAI,KAAQ,IAAQ,GAAG,EAAI,GAChC,CACtB,CAMA,MAAU,MAAM,sBAAsB,GAAK,CAC/C,ECpDM,CAAE,UAAU,KAEZ,IAAW,GAAG,IAAS,CACzB,GAAI,CAAC,EAAG,EAAG,EAAG,GAAKO,GAAO,EAAM,MAAM,EAClC,EAAOH,GAAK,CAAI,GAAK,OACrB,IAAM,SAAW,EAAI,GACrB,IAAS,SACT,EAAO,EAAI,EAAI,OAAS,OAE5B,EAAI/E,GAAM,CAAC,EACX,EAAIA,GAAM,CAAC,EACX,EAAIA,GAAM,CAAC,EAEX,IAAI,EAAM,UADC,GAAK,GAAO,GAAK,EAAK,GACV,SAAS,EAAE,EAClC,EAAM,EAAI,OAAO,EAAI,OAAS,CAAC,EAC/B,IAAI,EAAM,IAAMA,GAAM,EAAI,GAAG,EAAE,SAAS,EAAE,EAE1C,OADA,EAAM,EAAI,OAAO,EAAI,OAAS,CAAC,EACvB,EAAK,YAAY,EAAzB,CACI,IAAK,OACD,MAAO,IAAI,IAAM,IACrB,IAAK,OACD,MAAO,IAAI,IAAM,IACrB,QACI,MAAO,IAAI,GACnB,CACJ,EClBA,GAAM,UAAU,KAAO,UAAY,CAC/B,IAAM,EAAM,GAAQ,KAAK,KAAM,KAAK,EACpC,IAAK,IAAI,KAAK,OAAO,KAAK,EAAM,EAC5B,GAAI,GAAO,KAAO,EAAK,OAAO,EAAE,YAAY,EAEhD,OAAO,CACX,EAEA,GAAM,OAAO,MAAS,GAAS,CAE3B,GADA,EAAO,EAAK,YAAY,EACpB,GAAO,GAAO,OAAO,GAAQ,GAAO,EAAK,EAC7C,MAAU,MAAM,uBAAyB,CAAI,CACjD,EAEAmF,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,EAAG,GAAG,IAAS,CAClB,GAAI,CAAC,EAAK,QAAUL,GAAK,CAAC,IAAM,UAAY,GAAO,EAAE,YAAY,GAC7D,MAAO,OAEf,CACJ,CAAC,EC1BD,GAAM,UAAU,MAAQ,SAAU,EAAG,EAAS,GAAO,CAQjD,OAPI,IAAM,QAAaA,GAAK,CAAC,IAAM,SAC3B,GACA,KAAK,KAAK,GAAK,EACR,MAEJ,IAAI,GAAM,CAAC,KAAK,KAAK,GAAI,KAAK,KAAK,GAAI,KAAK,KAAK,GAAI,CAAC,EAAG,KAAK,EAElE,KAAK,KAAK,EACrB,ECVA,GAAM,UAAU,QAAU,UAAY,CAClC,OAAO,KAAK,KAAK,UAAY,EACjC,ECJA,IAAM,GAAe,CAEjB,GAAI,GAGJ,cAAe,MACf,GAAI,OACJ,GAAI,EACJ,GAAI,QAEJ,GAAI,WACJ,GAAI,WACJ,GAAI,UACJ,GAAI,WAEJ,GAAI,IAAQ,MACZ,IAAK,EACL,GAAI,MAAU,GAEd,YAAa,CAET,EAAG,OACH,EAAG,EACH,EAAG,OACP,EAEA,WAAY,CACR,IAAK,kBACL,IAAK,mBACL,IAAK,kBACL,IAAK,iBACL,IAAK,iBACL,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACT,EAEA,WAAY,CACR,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,oBACL,IAAK,mBACL,IAAK,mBACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACT,EAGA,GAAI,kBACJ,GAAI,YACJ,GAAI,YAEJ,WAAY,CACR,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,MACL,IAAK,MACT,EAEA,YAAa,CACT,IAAK,kBACL,IAAK,mBACL,IAAK,qBACL,IAAK,oBACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACL,IAAK,kBACL,IAAK,iBACT,CACJ,EAKM,IAAc,IAAI,IAAI,CAExB,CAAC,IAAK,CAAC,OAAQ,MAAO,CAAC,EAEvB,CAAC,IAAK,CAAC,OAAQ,MAAO,CAAC,EAEvB,CAAC,IAAK,CAAC,OAAS,OAAO,CAAC,EAExB,CAAC,MAAO,CAAC,OAAS,MAAO,CAAC,EAE1B,CAAC,MAAO,CAAC,OAAS,MAAO,CAAC,EAE1B,CAAC,MAAO,CAAC,OAAS,OAAO,CAAC,EAE1B,CAAC,IAAK,CAAC,EAAG,EAAG,CAAC,CAAC,EAEf,CAAC,KAAM,CAAC,OAAS,MAAO,CAAC,EAEzB,CAAC,KAAM,CAAC,OAAS,OAAO,CAAC,EAEzB,CAAC,MAAO,CAAC,QAAS,KAAM,CAAC,EACzB,CAAC,MAAO,CAAC,OAAS,MAAO,CAAC,CAC9B,CAAC,EAED,SAAgB,GAAiB,EAAM,CACnC,IAAM,EAAM,IAAY,IAAI,OAAO,CAAI,EAAE,YAAY,CAAC,EACtD,GAAI,CAAC,EACD,MAAU,MAAM,0BAA4B,CAAI,EAEpD,GAAa,cAAgB,EAC7B,GAAa,GAAK,EAAI,GACtB,GAAa,GAAK,EAAI,EAC1B,CAEA,SAAgB,IAAmB,CAC/B,OAAO,GAAa,aACxB,CC/GA,IAAM,IAAW,GAAG,IAAS,CACzB,EAAOI,GAAO,EAAM,KAAK,EACzB,GAAM,CAAC,EAAG,EAAG,GAAK,EACZ,CAAC,EAAG,EAAG,GAAK,IAAQ,EAAG,EAAG,CAAC,EAC3B,CAAC,EAAG,EAAG,GAAM,GAAQ,EAAG,EAAG,CAAC,EAClC,MAAO,CAAC,EAAG,EAAG,EAAI,EAAK,OAAS,EAAI,EAAK,GAAK,CAAC,CACnD,EAEM,KAAW,EAAG,EAAG,IAAM,CACzB,GAAM,CAAE,KAAI,KAAI,MAAK,KAAI,KAAI,MAAOE,GAE9B,GAAM,EAAI,IAAQ,IAClB,EAAK,KAAQ,EAAI,EACjB,EAAK,EAAK,KAAQ,EAElB,EAAM,EAAK,EAAK,EAChB,EAAM,EAAK,EAAK,EAEhB,EAAK,EAAM,EAAK,GAAO,IAAQ,EAAK,IAAQ,EAC5C,EAAK,EAAI,IAAgB,EAAI,IAAQ,MAAO,EAAO,EAAI,EACvD,EAAK,EAAM,EAAK,GAAO,IAAQ,EAAK,IAAQ,EAMlD,MAAO,CAJG,EAAK,EACL,EAAK,EACL,EAAK,CAEA,CACnB,EAEM,GAAW,GAAW,CAExB,IAAM,EAAO,KAAK,KAAK,CAAM,EAE7B,MADA,GAAS,KAAK,IAAI,CAAM,GAEnB,GAAU,SACL,EAAS,MACT,MAAiB,IAAQ,EAAM,KAAO,MAAS,CAE7D,EAEM,IAAW,EAAG,EAAG,IAAM,CACzB,GAAM,CAAE,aAAY,cAAa,aAAY,cAAa,KAAI,KAAI,MAC9DA,GAEE,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IACjE,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IACjE,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IAEjE,EACF,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IACzB,EACF,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IACzB,EACF,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IAC3B,EAAY,EAAI,EAAW,IAEzB,GACD,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,MACzD,EAAK,GACJ,GACD,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,MACzD,EAAK,GACJ,GACD,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,MACzD,EAAK,GAEJ,EACF,EAAK,EAAY,IAAM,EAAK,EAAY,IAAM,EAAK,EAAY,IAC7D,EACF,EAAK,EAAY,IAAM,EAAK,EAAY,IAAM,EAAK,EAAY,IAC7D,EACF,EAAK,EAAY,IAAM,EAAK,EAAY,IAAM,EAAK,EAAY,IAE7D,EAAI,GACN,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,GAChE,EACM,EAAI,GACN,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,GAChE,EACM,EAAI,GACN,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,GAChE,EAEA,MAAO,CAAC,EAAI,IAAK,EAAI,IAAK,EAAI,GAAG,CACrC,EC9FM,IAAW,GAAG,IAAS,CACzB,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQF,GAAO,EAAM,KAAK,EACvC,CAAC,EAAG,EAAG,GAAK,GAAQ,EAAG,EAAG,CAAC,EAC3B,CAAC,EAAG,EAAG,GAAM,IAAQ,EAAG,EAAG,CAAC,EAClC,MAAO,CAAC,EAAG,EAAG,EAAI,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CAC1E,EAEA,SAAS,IAAQ,EAAG,EAAG,EAAG,CACtB,GAAM,CAAE,KAAI,KAAI,KAAI,KAAI,MAAOE,GACzB,EAAK,EAAI,EACT,EAAK,EAAI,EACT,EAAK,EAAI,EAET,EAAK,EAAK,EAAc,IAAI,EAAM,IAAQ,EAAK,EAAK,IAAQ,IAC5D,EAAK,EAAK,EAAc,IAAI,EAAM,IAAQ,EAAK,EAAK,IAAQ,IAC5D,EAAK,EAAK,EAAc,IAAI,EAAM,IAAQ,EAAK,EAAK,IAAQ,IAElE,MAAO,CAAC,IAAQ,EAAK,GAAM,KAAS,EAAK,GAAK,KAAS,EAAK,EAAG,CACnE,CAEA,SAAS,GAAgB,EAAW,CAChC,IAAM,EAAO,KAAK,KAAK,CAAS,EAMhC,MALA,GAAY,KAAK,IAAI,CAAS,GAE1B,GAAa,OACP,EAAY,QACF,EAAY,MAAS,QAAO,KAChC,CACpB,CAEA,IAAM,IAAW,EAAG,EAAG,IAAM,CAEzB,EAAI,GAAgB,EAAI,GAAG,EAC3B,EAAI,GAAgB,EAAI,GAAG,EAC3B,EAAI,GAAgB,EAAI,GAAG,EAE3B,GAAM,CAAE,aAAY,aAAY,cAAa,KAAI,KAAI,KAAI,KAAI,KAAI,MAC7DA,GAEA,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAC7D,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAC7D,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAE3D,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IACjE,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IACjE,EAAK,EAAK,EAAW,IAAM,EAAK,EAAW,IAAM,EAAK,EAAW,IAEnE,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAC7D,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAC7D,EAAI,EAAI,EAAW,IAAM,EAAI,EAAW,IAAM,EAAI,EAAW,IAUjE,MARA,IAAK,EAAK,EACV,GAAK,EAAK,EACV,GAAK,EAAK,EAEV,EAAI,EAAI,EAAY,IAAM,EAAI,EAAY,IAAM,EAAI,EAAY,IAChE,EAAI,EAAI,EAAY,IAAM,EAAI,EAAY,IAAM,EAAI,EAAY,IAChE,EAAI,EAAI,EAAY,IAAM,EAAI,EAAY,IAAM,EAAI,EAAY,IAEzD,CAAC,EAAG,EAAG,CAAC,CACnB,ECvDA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,GAAQ,KAAK,IAAI,CAC5B,EAGA,OAAO,OAAO,GAAQ,CAAE,KADX,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EACpB,oBAAkB,mBAAiB,CAAC,EAEjE,GAAM,OAAO,IAAM,GAEnBD,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,KAAK,EACrBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,KAEf,CACJ,CAAC,ECrBD,GAAM,UAAU,OAAS,SAAU,EAAS,EAAG,CAC3C,IAAM,EAAK,KACL,EAAM,EAAG,IAAI,EAEnB,MADA,GAAI,IAAMM,GAAc,GAAK,EACtB,IAAI,GAAM,EAAK,KAAK,EAAE,MAAM,EAAG,MAAM,EAAG,EAAI,CACvD,EAEA,GAAM,UAAU,SAAW,SAAU,EAAS,EAAG,CAC7C,OAAO,KAAK,OAAO,CAAC,CAAM,CAC9B,EAEA,GAAM,UAAU,OAAS,GAAM,UAAU,OACzC,GAAM,UAAU,SAAW,GAAM,UAAU,SCd3C,GAAM,UAAU,IAAM,SAAU,EAAI,CAChC,GAAM,CAAC,EAAM,GAAW,EAAG,MAAM,GAAG,EAC9B,EAAM,KAAK,GAAM,EACvB,GAAI,EAAS,CACT,IAAM,EAAI,EAAK,QAAQ,CAAO,GAAK,EAAK,OAAO,EAAG,CAAC,IAAM,KAAO,EAAI,GACpE,GAAI,EAAI,GAAI,OAAO,EAAI,GACvB,MAAU,MAAM,mBAAmB,EAAQ,WAAW,GAAM,CAChE,MACI,OAAO,CAEf,ECVA,GAAM,CAAE,SAAQ,KAEV,IAAM,KACN,IAAW,GAEjB,GAAM,UAAU,UAAY,SAAU,EAAK,EAAO,MAAO,CACrD,GAAI,IAAQ,QAAaN,GAAK,CAAG,IAAM,SAAU,CAC7C,GAAI,IAAQ,EAER,OAAO,IAAI,GAAM,CAAC,EAAG,EAAG,EAAG,KAAK,KAAK,EAAE,EAAG,KAAK,EAEnD,GAAI,IAAQ,EAER,OAAO,IAAI,GAAM,CAAC,IAAK,IAAK,IAAK,KAAK,KAAK,EAAE,EAAG,KAAK,EAGzD,IAAI,EAAU,KAAK,UAAU,EACzB,EAAW,IAET,GAAQ,EAAK,IAAS,CACxB,IAAM,EAAM,EAAI,YAAY,EAAM,GAAK,CAAI,EACrC,EAAK,EAAI,UAAU,EAKzB,OAJI,KAAK,IAAI,EAAM,CAAE,EAAI,KAAO,CAAC,IAEtB,EAEJ,EAAK,EAAM,EAAK,EAAK,CAAG,EAAI,EAAK,EAAK,CAAI,CACrD,EAOA,OAAO,IAAI,GAAM,CAAC,IAJd,EAAU,EACJ,EAAK,IAAI,GAAM,CAAC,EAAG,EAAG,CAAC,CAAC,EAAG,IAAI,EAC/B,EAAK,KAAM,IAAI,GAAM,CAAC,IAAK,IAAK,GAAG,CAAC,CAAC,GAC7C,IACqB,EAAG,KAAK,KAAK,EAAE,CAAC,CAC3C,CACA,OAAO,IAAc,GAAG,KAAK,KAAK,MAAM,EAAG,CAAC,CAAC,CACjD,EAEA,IAAM,KAAiB,EAAG,EAAG,KAGzB,EAAI,GAAY,CAAC,EACjB,EAAI,GAAY,CAAC,EACjB,EAAI,GAAY,CAAC,EACV,MAAS,EAAI,MAAS,EAAI,MAAS,GAGxC,GAAe,IACjB,GAAK,IACE,GAAK,OAAU,EAAI,MAAQO,KAAK,EAAI,MAAS,MAAO,GAAG,GCpDlE,GAAe,CAAC,ECIhB,IAAgB,EAAM,EAAM,EAAI,GAAK,GAAG,IAAS,CAC7C,IAAI,EAAO,EAAK,IAAM,OAKtB,GAJI,CAACC,GAAa,IAAS,CAAC,EAAK,SAE7B,EAAO,OAAO,KAAKA,EAAY,EAAE,IAEjC,CAACA,GAAa,GACd,MAAU,MAAM,sBAAsB,EAAK,gBAAgB,EAI/D,OAFIR,GAAK,CAAI,IAAM,WAAU,EAAO,IAAI,GAAM,CAAI,GAC9CA,GAAK,CAAI,IAAM,WAAU,EAAO,IAAI,GAAM,CAAI,GAC3CQ,GAAa,GAAM,EAAM,EAAM,CAAC,EAAE,MACrC,EAAK,MAAM,EAAI,GAAK,EAAK,MAAM,EAAI,EAAK,MAAM,EAClD,CACJ,ECfA,GAAM,UAAU,IAAM,GAAM,UAAU,YAAc,SAChD,EACA,EAAI,GACJ,GAAG,EACL,CACE,OAAOC,GAAI,KAAM,EAAM,EAAG,GAAG,CAAI,CACrC,ECPA,GAAM,UAAU,YAAc,SAAU,EAAS,GAAO,CACpD,IAAM,EAAM,KAAK,KACX,EAAI,EAAI,GAKV,OAJA,GACA,KAAK,KAAO,CAAC,EAAI,GAAK,EAAG,EAAI,GAAK,EAAG,EAAI,GAAK,EAAG,CAAC,EAC3C,MAEA,IAAI,GAAM,CAAC,EAAI,GAAK,EAAG,EAAI,GAAK,EAAG,EAAI,GAAK,EAAG,CAAC,EAAG,KAAK,CAEvE,ECVA,GAAM,CAAE,QAAK,SAAQ,KAEf,IAAW,GAAG,IAAS,CAQzB,GAAI,CAAC,EAAG,EAAG,GAAKL,GAAO,EAAM,KAAK,EAGlC,OAFI,MAAM,CAAC,IAAG,EAAI,GAClB,GAAQ,IACD,CAAC,EAAGM,IAAI,CAAC,EAAI,EAAGC,IAAI,CAAC,EAAI,CAAC,CACrC,ECXM,IAAW,GAAG,IAAS,CACzB,EAAOP,GAAO,EAAM,KAAK,EACzB,GAAM,CAAC,EAAG,EAAG,GAAK,EACZ,CAAC,EAAG,EAAG,GAAM,GAAQ,EAAG,EAAG,CAAC,EAC5B,CAAC,EAAG,EAAG,GAAK,GAAQ,EAAG,EAAG,CAAE,EAClC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAK,OAAS,EAAI,EAAK,GAAK,CAAC,CAClD,ECPM,KAAW,GAAG,IAET,GAAQ,GADH,GAASA,GAAO,EAAM,KAAK,CACnB,CAAC,ECJnB,CAAE,SAAM,UAAO,WAAU,KAEzB,IAAW,GAAG,IAAS,CACzB,GAAM,CAAC,EAAG,EAAG,GAAKA,GAAO,EAAM,KAAK,EAC9B,EAAIQ,IAAK,EAAI,EAAI,EAAI,CAAC,EACxB,GAAKC,IAAM,EAAG,CAAC,EAAI,IAAU,KAAO,IAExC,OADI3F,IAAM,EAAI,GAAK,IAAM,IAAG,EAAI,KACzB,CAAC,EAAG,EAAG,CAAC,CACnB,ECLM,IAAW,GAAG,IAAS,CACzB,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQkF,GAAO,EAAM,KAAK,EACvC,CAAC,EAAG,EAAG,GAAM,GAAQ,EAAG,EAAG,CAAC,EAC5B,CAAC,EAAG,EAAG,GAAK,GAAQ,EAAG,EAAG,CAAE,EAClC,MAAO,CAAC,EAAG,EAAG,EAAG,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CACzE,ECDA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,GAAQ,KAAK,IAAI,CAC5B,EACA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,GAAS,GAAQ,KAAK,IAAI,CAAC,CACtC,EAKA,OAAO,OAAO,GAAQ,CAAE,KAHX,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGpB,KAFhB,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,CAEhB,CAAC,EAElC,GAAM,OAAO,IAAM,GACnB,GAAM,OAAO,IAAM,IACnB,CAAC,MAAO,KAAK,EAAE,QAAS,GACpBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,CAAC,EACjBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,OAAO,CAEf,CACJ,CAAC,CACL,EC5BA,GAAM,UAAU,SAAW,SAAU,EAAS,EAAG,CAC7C,IAAM,EAAK,KACL,EAAM,EAAG,IAAI,EAGnB,MAFA,GAAI,IAAMM,GAAc,GAAK,EACzB,EAAI,GAAK,IAAG,EAAI,GAAK,GAClB,IAAI,GAAM,EAAK,KAAK,EAAE,MAAM,EAAG,MAAM,EAAG,EAAI,CACvD,EAEA,GAAM,UAAU,WAAa,SAAU,EAAS,EAAG,CAC/C,OAAO,KAAK,SAAS,CAAC,CAAM,CAChC,ECXA,GAAM,UAAU,IAAM,SAAU,EAAI,EAAO,EAAS,GAAO,CACvD,GAAM,CAAC,EAAM,GAAW,EAAG,MAAM,GAAG,EAC9B,EAAM,KAAK,GAAM,EACvB,GAAI,EAAS,CACT,IAAM,EAAI,EAAK,QAAQ,CAAO,GAAK,EAAK,OAAO,EAAG,CAAC,IAAM,KAAO,EAAI,GACpE,GAAI,EAAI,GAAI,CACR,GAAIN,GAAK,CAAK,GAAK,SACf,OAAQ,EAAM,OAAO,CAAC,EAAtB,CACI,IAAK,IACD,EAAI,IAAM,CAAC,EACX,MACJ,IAAK,IACD,EAAI,IAAM,CAAC,EACX,MACJ,IAAK,IACD,EAAI,IAAM,CAAC,EAAM,OAAO,CAAC,EACzB,MACJ,IAAK,IACD,EAAI,IAAM,CAAC,EAAM,OAAO,CAAC,EACzB,MACJ,QACI,EAAI,GAAK,CAAC,CAClB,MACG,GAAIA,GAAK,CAAK,IAAM,SACvB,EAAI,GAAK,OAET,MAAU,MAAM,iCAAiC,EAErD,IAAM,EAAM,IAAI,GAAM,EAAK,CAAI,EAK/B,OAJI,GACA,KAAK,KAAO,EAAI,KACT,MAEJ,CACX,CACA,MAAU,MAAM,mBAAmB,EAAQ,WAAW,GAAM,CAChE,MACI,OAAO,CAEf,ECtCA,GAAM,UAAU,KAAO,SAAU,EAAI,GAAK,GAAG,EAAM,CAC/C,OAAOS,GAAI,KAAM,QAAS,EAAG,GAAG,CAAI,CACxC,EAEA,GAAM,UAAU,MAAQ,SAAU,EAAI,GAAK,GAAG,EAAM,CAChD,OAAOA,GAAI,KAAM,QAAS,EAAG,GAAG,CAAI,CACxC,ECKA,GAAM,KAZO,EAAM,EAAM,IAAM,CAC3B,IAAM,EAAO,EAAK,KACZ,EAAO,EAAK,KAClB,OAAO,IAAI,GACP,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,KACJ,CACJ,ECXA,GAAM,CAAE,QAAM,QAAQ,KAetB,GAAM,MAZQ,EAAM,EAAM,IAAM,CAC5B,GAAM,CAAC,EAAI,EAAI,GAAM,EAAK,KACpB,CAAC,EAAI,EAAI,GAAM,EAAK,KAC1B,OAAO,IAAI,GACPG,GAAKL,GAAI,EAAI,CAAC,GAAK,EAAI,GAAKA,GAAI,EAAI,CAAC,EAAI,CAAC,EAC1CK,GAAKL,GAAI,EAAI,CAAC,GAAK,EAAI,GAAKA,GAAI,EAAI,CAAC,EAAI,CAAC,EAC1CK,GAAKL,GAAI,EAAI,CAAC,GAAK,EAAI,GAAKA,GAAI,EAAI,CAAC,EAAI,CAAC,EAC1C,KACJ,CACJ,ECGA,GAAM,KAZO,EAAM,EAAM,IAAM,CAC3B,IAAM,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,EACtB,OAAO,IAAI,GACP,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,KACJ,CACJ,ECXA,QAAgB,EAAM,EAAM,EAAG,IAAM,CACjC,IAAI,EAAM,EACN,IAAM,OACN,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,GACT,IAAM,OACb,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,GACT,IAAM,OACb,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,GACT,IAAM,OACb,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,GACT,IAAM,OAAS,IAAM,OAC5B,EAAI,MACJ,EAAO,EAAK,IAAI,EAChB,EAAO,EAAK,IAAI,GACT,IAAM,UACb,EAAO,EAAK,MAAM,EAAE,QAAQ,EAC5B,EAAO,EAAK,MAAM,EAAE,QAAQ,GAGhC,IAAI,EAAM,EAAM,EAAM,EAAM,EAAM,GAC9B,EAAE,OAAO,EAAG,CAAC,IAAM,KAAO,IAAM,WAChC,CAAC,EAAM,EAAM,GAAQ,EACrB,CAAC,EAAM,EAAM,GAAQ,GAGzB,IAAI,EAAK,EAAK,EAAK,EAwBnB,MAtBI,CAAC,MAAM,CAAI,GAAK,CAAC,MAAM,CAAI,GAE3B,CAKI,CALA,EAAO,GAAQ,EAAO,EAAO,IACxB,GAAQ,EAAO,KACb,EAAO,GAAQ,EAAO,EAAO,IAC/B,EAAO,IAAM,EAEb,EAAO,EAEhB,EAAM,EAAO,EAAI,GACT,MAAM,CAAI,EAGV,MAAM,CAAI,EAIlB,EAAM,KAHN,EAAM,GACD,GAAQ,GAAK,GAAQ,IAAM,GAAK,QAAO,EAAM,KAJlD,EAAM,GACD,GAAQ,GAAK,GAAQ,IAAM,GAAK,QAAO,EAAM,IAQlD,IAAQ,SAAW,EAAM,EAAO,GAAK,EAAO,IAChD,EAAM,EAAO,GAAK,EAAO,GAClB,IAAM,QACP,IAAI,GAAM,CAAC,EAAK,EAAK,CAAG,EAAG,CAAC,EAC5B,IAAI,GAAM,CAAC,EAAK,EAAK,CAAG,EAAG,CAAC,CACtC,ECtDM,IAAO,EAAM,EAAM,IACdO,GAAgB,EAAM,EAAM,EAAG,KAAK,EAI/C,GAAM,IAAM,GACZ,GAAM,IAAM,GCRZ,IAAM,IAAW,GAAQ,CACrB,GAAId,GAAK,CAAG,GAAK,UAAY,GAAO,GAAK,GAAO,SAI5C,MAAO,CAHG,GAAO,GACN,GAAO,EAAK,IACb,EAAM,IACC,CAAC,EAEtB,MAAU,MAAM,sBAAwB,CAAG,CAC/C,ECRM,KAAW,GAAG,IAAS,CACzB,GAAM,CAAC,EAAG,EAAG,GAAKI,GAAO,EAAM,KAAK,EACpC,OAAQ,GAAK,KAAO,GAAK,GAAK,CAClC,ECEA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,IAAQ,KAAK,IAAI,CAC5B,EAIA,OAAO,OAAO,GAAQ,CAAE,KAFX,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,CAErB,CAAC,EAE7B,GAAM,OAAO,IAAM,IAEnBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CACf,GACI,EAAK,SAAW,GAChBL,GAAK,EAAK,EAAE,IAAM,UAClB,EAAK,IAAM,GACX,EAAK,IAAM,SAEX,MAAO,KAEf,CACJ,CAAC,ECjBD,GAAM,KAPO,EAAM,EAAM,IAAM,CAC3B,IAAM,EAAK,EAAK,IAAI,EAEpB,OAAO,IAAI,GAAM,EAAK,GADX,EAAK,IACY,EAAI,GAAK,KAAK,CAC9C,ECRA,GAAM,CAAE,WAAU,KAUZ,KAAW,GAAG,IAAS,CACzB,EAAOI,GAAO,EAAM,KAAK,EACzB,GAAI,CAAC,EAAG,EAAG,GAAM,EACb,EAAG,EAAG,EACV,GAAU,IACV,IAAM,EAAK,EAAI,IACf,GAAI,IAAM,EACN,EAAI,EAAI,EAAI,MACT,CACC,IAAM,MAAK,EAAI,GACf,EAAI,MAAK,GAAK,KACd,EAAI,IAAG,GAAK,KAChB,GAAK,GACL,IAAM,EAAIjF,IAAM,CAAC,EACX,EAAI,EAAI,EACR,EAAI,GAAM,EAAI,GACd,EAAI,EAAI,GAAM,EAAI,GAClB,EAAI,EAAI,EAAK,EACb,EAAI,EAAI,EACd,OAAQ,EAAR,CACI,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,KACR,CACJ,CACA,MAAO,CAAC,EAAG,EAAG,EAAG,EAAK,OAAS,EAAI,EAAK,GAAK,CAAC,CAClD,EClDM,KAAW,GAAG,IAAS,CACzB,GAAM,CAAC,EAAG,EAAG,GAAKiF,GAAO,EAAM,KAAK,EAC9B,EAASpF,GAAI,EAAG,EAAG,CAAC,EACpB,EAASC,GAAI,EAAG,EAAG,CAAC,EACpB,EAAQ,EAAS,EACjB,EAAK,EAAQ,IAAO,IACpB,EAAM,GAAU,IAAM,GAAU,IAClC,EAUJ,OATI,IAAU,EACV,EAAI,KAEA,IAAM,IAAQ,GAAK,EAAI,GAAK,GAC5B,IAAM,IAAQ,EAAI,GAAK,EAAI,GAAK,GAChC,IAAM,IAAQ,EAAI,GAAK,EAAI,GAAK,GACpC,GAAK,GACD,EAAI,IAAG,GAAK,MAEb,CAAC,EAAG,EAAG,CAAE,CACpB,ECbA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,IAAQ,KAAK,IAAI,CAC5B,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,IAEnBoF,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,KAAK,EACrBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,KAEf,CACJ,CAAC,ECfD,GAAM,KALO,EAAM,EAAM,IACdc,GAAgB,EAAM,EAAM,EAAG,KAAK,ECJ/C,GAAM,CAAE,QAAQ,KAOV,KAAW,GAAG,IAAS,CAKzB,EAAOV,GAAO,EAAM,KAAK,EACzB,GAAI,CAAC,EAAG,EAAG,GAAK,EACZ,EAAG,EAAG,EA0BV,OAxBI,MAAM,CAAC,IAAG,EAAI,GACd,MAAM,CAAC,IAAG,EAAI,GAEd,EAAI,MAAK,GAAK,KACd,EAAI,IAAG,GAAK,KAChB,GAAK,IACD,EAAI,EAAI,GACR,GAAK,EAAI,GAAK,EACd,GAAK,EAAK,EAAIM,GAAI,GAAQ,CAAC,EAAKA,GAAI,GAAU,GAAQ,CAAC,GAAK,EAC5D,EAAI,GAAK,EAAI,IACN,EAAI,EAAI,GACf,GAAK,EAAI,EACT,GAAK,EAAI,GAAK,EACd,GAAK,EAAK,EAAIA,GAAI,GAAQ,CAAC,EAAKA,GAAI,GAAU,GAAQ,CAAC,GAAK,EAC5D,EAAI,GAAK,EAAI,KAEb,GAAK,EAAI,EACT,GAAK,EAAI,GAAK,EACd,GAAK,EAAK,EAAIA,GAAI,GAAQ,CAAC,EAAKA,GAAI,GAAU,GAAQ,CAAC,GAAK,EAC5D,EAAI,GAAK,EAAI,IAEjB,EAAIX,GAAM,EAAI,EAAI,CAAC,EACnB,EAAIA,GAAM,EAAI,EAAI,CAAC,EACnB,EAAIA,GAAM,EAAI,EAAI,CAAC,EACZ,CAAC,EAAI,IAAK,EAAI,IAAK,EAAI,IAAK,EAAK,OAAS,EAAI,EAAK,GAAK,CAAC,CACpE,ECzCM,CAAE,QAAK,SAAM,UAAS,KAEtB,KAAW,GAAG,IAAS,CAKzB,GAAI,CAAC,EAAG,EAAG,GAAKK,GAAO,EAAM,KAAK,EAClC,GAAK,IACL,GAAK,IACL,GAAK,IACL,IAAI,EACE,EAAOpF,IAAI,EAAG,EAAG,CAAC,EAClB,GAAK,EAAI,EAAI,GAAK,EAClB,EAAI,EAAI,EAAI,EAAI,EAAO,EAAI,EAYjC,OAXI,IAAM,EACN,EAAI,KAEJ,GAAK,EAAI,GAAK,EAAI,IAAM,EACxB,GAAK4F,KAAM,EAAI,IAAM,EAAI,IAAM,EAAI,IAAM,EAAI,EAAE,EAC/C,EAAI,IAAK,CAAC,EACN,EAAI,IACJ,EAAI,GAAQ,GAEhB,GAAK,IAEF,CAAC,EAAI,IAAK,EAAG,CAAC,CACzB,ECrBA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO,IAAQ,KAAK,IAAI,CAC5B,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,IAEnBP,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,KAAK,EACrBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,KAEf,CACJ,CAAC,ECfD,GAAM,KALO,EAAM,EAAM,IACdc,GAAgB,EAAM,EAAM,EAAG,KAAK,ECH/C,IAAM,IAAW,GAAG,IAAS,CACzB,EAAOV,GAAO,EAAM,KAAK,EACzB,GAAM,CAAC,EAAG,EAAG,GAAK,EACd,EAAG,EAAG,EACV,GAAI,IAAM,EACN,EAAI,EAAI,EAAI,EAAI,QACb,CACH,IAAM,EAAK,CAAC,EAAG,EAAG,CAAC,EACb,EAAI,CAAC,EAAG,EAAG,CAAC,EACZ,EAAK,EAAI,GAAM,GAAK,EAAI,GAAK,EAAI,EAAI,EAAI,EACzC,EAAK,EAAI,EAAI,EACb,EAAK,EAAI,IACf,EAAG,GAAK,EAAK,EAAI,EACjB,EAAG,GAAK,EACR,EAAG,GAAK,EAAK,EAAI,EACjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACf,EAAG,GAAK,IAAG,EAAG,IAAM,GACpB,EAAG,GAAK,GAAG,IAAG,GACd,EAAI,EAAG,GAAK,EAAG,EAAE,GAAK,GAAM,EAAK,GAAM,EAAI,EAAG,GACzC,EAAI,EAAG,GAAK,EAAG,EAAE,GAAK,EACtB,EAAI,EAAG,GAAK,EAAG,EAAE,GAAK,GAAM,EAAK,IAAO,EAAI,EAAI,EAAG,IAAM,EAC7D,EAAE,GAAK,EAEhB,CAAC,EAAG,EAAG,GAAK,CAAC,EAAE,GAAK,IAAK,EAAE,GAAK,IAAK,EAAE,GAAK,GAAG,CACnD,CAKA,OAJI,EAAK,OAAS,EAEP,CAAC,EAAG,EAAG,EAAG,EAAK,EAAE,EAErB,CAAC,EAAG,EAAG,EAAG,CAAC,CACtB,ECtBMrB,IAAW,GAAG,IAAS,CACzB,EAAOqB,GAAO,EAAM,MAAM,EAC1B,GAAI,CAAC,EAAG,EAAG,GAAK,EAEhB,GAAK,IACL,GAAK,IACL,GAAK,IAEL,IAAM,EAASpF,GAAI,EAAG,EAAG,CAAC,EACpB,EAASC,GAAI,EAAG,EAAG,CAAC,EAEpB,GAAK,EAAS,GAAU,EAC1B,EAAG,EAmBP,OAjBI,IAAW,GACX,EAAI,EACJ,EAAI,KAEJ,EACI,EAAI,IACG,EAAS,IAAW,EAAS,IAC7B,EAAS,IAAW,EAAI,EAAS,GAG5C,GAAK,EAAQ,GAAK,EAAI,IAAM,EAAS,GAChC,GAAK,EAAQ,EAAI,GAAK,EAAI,IAAM,EAAS,GACzC,GAAK,IAAQ,EAAI,GAAK,EAAI,IAAM,EAAS,IAElD,GAAK,GACD,EAAI,IAAG,GAAK,KACZ,EAAK,OAAS,GAAK,EAAK,KAAO,OAAkB,CAAC,EAAG,EAAG,EAAG,EAAK,EAAE,EAC/D,CAAC,EAAG,EAAG,CAAC,CACnB,ECnCA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO8D,GAAQ,KAAK,IAAI,CAC5B,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,GAEnBsB,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,KAAK,EACrBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,KAEf,CACJ,CAAC,ECfD,GAAM,KALO,EAAM,EAAM,IACdc,GAAgB,EAAM,EAAM,EAAG,KAAK,ECJ/C,GAAM,CAAE,WAAU,KAEZ,KAAW,GAAG,IAAS,CACzB,EAAOV,GAAO,EAAM,KAAK,EACzB,GAAI,CAAC,EAAG,EAAG,GAAK,EACZ,EAAG,EAAG,EAEV,GADA,GAAK,IACD,IAAM,EACN,EAAI,EAAI,EAAI,MACT,CACC,IAAM,MAAK,EAAI,GACf,EAAI,MAAK,GAAK,KACd,EAAI,IAAG,GAAK,KAChB,GAAK,GAEL,IAAM,EAAIjF,IAAM,CAAC,EACX,EAAI,EAAI,EACR,EAAI,GAAK,EAAI,GACb,EAAI,GAAK,EAAI,EAAI,GACjB,EAAI,GAAK,EAAI,GAAK,EAAI,IAE5B,OAAQ,EAAR,CACI,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,MACJ,IAAK,GACD,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,CAAC,EACpB,KACR,CACJ,CACA,MAAO,CAAC,EAAG,EAAG,EAAG,EAAK,OAAS,EAAI,EAAK,GAAK,CAAC,CAClD,EC3CM,CAAE,QAAK,SAAQ,KAQf,KAAW,GAAG,IAAS,CACzB,EAAOiF,GAAO,EAAM,KAAK,EACzB,GAAI,CAAC,EAAG,EAAG,GAAK,EACV,EAAOpF,IAAI,EAAG,EAAG,CAAC,EAClB,EAAOC,IAAI,EAAG,EAAG,CAAC,EAClB,EAAQ,EAAO,EACjB,EAAG,EAAG,EAaV,MAZA,GAAI,EAAO,IACP,IAAS,GACT,EAAI,IACJ,EAAI,IAEJ,EAAI,EAAQ,EACR,IAAM,IAAM,GAAK,EAAI,GAAK,GAC1B,IAAM,IAAM,EAAI,GAAK,EAAI,GAAK,GAC9B,IAAM,IAAM,EAAI,GAAK,EAAI,GAAK,GAClC,GAAK,GACD,EAAI,IAAG,GAAK,MAEb,CAAC,EAAG,EAAG,CAAC,CACnB,ECtBA,GAAM,UAAU,IAAM,UAAY,CAC9B,OAAO8F,IAAQ,KAAK,IAAI,CAC5B,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,IAEnBV,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,KAAK,EACrBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,KAEf,CACJ,CAAC,ECfD,GAAM,KALO,EAAM,EAAM,IACdc,GAAgB,EAAM,EAAM,EAAG,KAAK,ECJ/C,SAAwB,GAAiB,EAAG,EAAG,CAC3C,IAAI,EAAI,EAAE,OAEL,MAAM,QAAQ,EAAE,EAAE,IAEnB,EAAI,CAAC,CAAC,GAGL,MAAM,QAAQ,EAAE,EAAE,IAEnB,EAAI,EAAE,IAAK,GAAM,CAAC,CAAC,CAAC,GAGxB,IAAI,EAAI,EAAE,GAAG,OACT,EAAS,EAAE,GAAG,KAAK,EAAG,IAAM,EAAE,IAAK,GAAM,EAAE,EAAE,CAAC,EAC9C,EAAU,EAAE,IAAK,GACjB,EAAO,IAAK,GACH,MAAM,QAAQ,CAAG,EAIf,EAAI,QAAQ,EAAG,EAAG,IAAM,EAAI,GAAK,EAAI,IAAM,GAAI,CAAC,EAH5C,EAAI,QAAQ,EAAG,IAAM,EAAI,EAAI,EAAK,CAAC,CAIjD,CACL,EAUA,OARI,IAAM,IACN,EAAU,EAAQ,IAGlB,IAAM,EACC,EAAQ,IAAK,GAAM,EAAE,EAAE,EAG3B,CACX,CC/BA,IAAM,IAAa,GAAG,IAAS,CAC3B,EAAOV,GAAO,EAAM,KAAK,EACzB,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQ,EACrB,CAAC,EAAG,EAAG,GAAK,IAAa,CAAC,EAAG,EAAG,CAAC,CAAC,EAClC,CAAC,EAAG,EAAG,GAAM,GAAQ,EAAG,EAAG,CAAC,EAClC,MAAO,CAAC,EAAG,EAAG,EAAI,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CAC1E,EAGA,SAAS,IAAa,EAAO,CAczB,OAAO,GACH,CAZA,CAAC,mBAAoB,mBAAqB,iBAAkB,EAC5D,CAAC,mBAAqB,kBAAmB,kBAAmB,EAC5D,CAAC,mBAAqB,mBAAqB,kBAAkB,CAUtD,EAFC,GAAiB,CALzB,CAAC,EAAK,kBAAoB,iBAAkB,EAC5C,CAAC,EAAK,mBAAqB,kBAAmB,EAC9C,CAAC,EAAK,mBAAqB,mBAAmB,CAGZ,EAAG,CAGjC,EAAE,IAAK,GAAM,GAAK,CAAC,CAC3B,CACJ,CC3BA,IAAM,IAAa,GAAG,IAAS,CAC3B,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQA,GAAO,EAAM,KAAK,EAG7C,MAAO,CAAC,GADM,IADF,GAAQ,EAAG,EAAG,CACG,CACd,EAAG,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CAC1E,EAGA,SAAS,IAAa,EAAK,CAiBvB,OAAO,GACH,CAVA,CAAC,iBAAmB,kBAAoB,kBAAmB,EAC3D,CAAC,mBAAoB,kBAAqB,gBAAiB,EAC3D,CAAC,kBAAoB,kBAAoB,kBAAmB,CAQnD,EALD,GAAiB,CAVzB,CAAC,iBAAmB,kBAAoB,kBAAmB,EAC3D,CAAC,kBAAoB,kBAAoB,iBAAkB,EAC3D,CAAC,kBAAoB,kBAAoB,iBAAkB,CAQ3B,EAAG,CAMjC,EAAE,IAAK,GAAM,KAAK,KAAK,CAAC,CAAC,CAC/B,CAEJ,CC3BA,GAAM,UAAU,MAAQ,UAAY,CAChC,OAAO,GAAU,KAAK,IAAI,CAC9B,EAGA,OAAO,OAAO,GAAQ,CAAE,OADT,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,OAAO,CACvB,CAAC,EAE/B,GAAM,OAAO,MAAQ,GAErBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,OAAO,EACvBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,OAEf,CACJ,CAAC,ECRD,GAAM,OAZS,EAAM,EAAM,IAAM,CAC7B,IAAM,EAAO,EAAK,MAAM,EAClB,EAAO,EAAK,MAAM,EACxB,OAAO,IAAI,GACP,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,IAC9B,OACJ,CACJ,ECJA,GAAM,OALS,EAAM,EAAM,IAChBc,GAAgB,EAAM,EAAM,EAAG,OAAO,ECFjD,GAAM,CAAE,OAAK,QAAM,MAAI,OAAK,OAAK,WAAU,KAE3C,KAAgB,EAAQ,EAAO,OAAQ,EAAU,OAAS,CACtD,IAAM,EAAI,EAAO,OACjB,CAAc,GAAU,MAAM,KAAS,MAAM,CAAC,CAAC,EAAE,QAAU,CAAC,EAE5D,IAAM,EACF,EACA,EAAQ,OAAO,SAAU,EAAG,EAAG,CAC3B,OAAO,EAAI,CACf,CAAC,EAML,GALA,EAAQ,SAAS,EAAG,IAAM,CACtB,EAAQ,IAAM,CAClB,CAAC,EAED,EAAS,EAAO,IAAK,GAAM,IAAI,GAAM,CAAC,CAAC,EACnC,IAAS,OACT,OAAO,IAAc,EAAQ,CAAO,EAExC,IAAM,EAAQ,EAAO,MAAM,EACrB,EAAM,EAAM,IAAI,CAAI,EACpB,EAAM,CAAC,EACT,EAAK,EACL,EAAK,EAET,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAG5B,GAFA,EAAI,IAAM,EAAI,IAAM,GAAK,EAAQ,GACjC,EAAI,KAAK,MAAM,EAAI,EAAE,EAAI,EAAI,EAAQ,EAAE,EACnC,EAAK,OAAO,CAAC,IAAM,KAAO,CAAC,MAAM,EAAI,EAAE,EAAG,CAC1C,IAAM,EAAK,EAAI,GAAK,IAAOtB,GAC3B,GAAMkB,GAAI,CAAC,EAAI,EAAQ,GACvB,GAAMC,GAAI,CAAC,EAAI,EAAQ,EAC3B,CAGJ,IAAI,EAAQ,EAAM,MAAM,EAAI,EAAQ,GACpC,EAAO,SAAS,EAAG,IAAO,CACtB,IAAM,EAAO,EAAE,IAAI,CAAI,EACvB,GAAS,EAAE,MAAM,EAAI,EAAQ,EAAK,GAClC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC5B,GAAI,CAAC,MAAM,EAAK,EAAE,EAEd,GADA,EAAI,IAAM,EAAQ,EAAK,GACnB,EAAK,OAAO,CAAC,IAAM,IAAK,CACxB,IAAM,EAAK,EAAK,GAAK,IAAOnB,GAC5B,GAAMkB,GAAI,CAAC,EAAI,EAAQ,EAAK,GAC5B,GAAMC,GAAI,CAAC,EAAI,EAAQ,EAAK,EAChC,MACI,EAAI,IAAM,EAAK,GAAK,EAAQ,EAAK,EAIjD,CAAC,EAED,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC5B,GAAI,EAAK,OAAO,CAAC,IAAM,IAAK,CACxB,IAAI,EAAKE,IAAM,EAAK,EAAI,GAAI,EAAK,EAAI,EAAE,EAAIrB,GAAM,IACjD,KAAO,EAAI,GAAG,GAAK,IACnB,KAAO,GAAK,KAAK,GAAK,IACtB,EAAI,GAAK,CACb,MACI,EAAI,GAAK,EAAI,GAAK,EAAI,GAI9B,MADA,IAAS,EACF,IAAI,GAAM,EAAK,CAAI,EAAE,MAAM,EAAQ,OAAU,EAAI,EAAO,EAAI,CACvE,EAEM,KAAiB,EAAQ,IAAY,CACvC,IAAM,EAAI,EAAO,OACX,EAAM,CAAC,EAAG,EAAG,EAAG,CAAC,EACvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACpC,IAAM,EAAM,EAAO,GACb,EAAI,EAAQ,GAAK,EACjB,EAAM,EAAI,KAChB,EAAI,IAAMe,GAAI,EAAI,GAAI,CAAC,EAAI,EAC3B,EAAI,IAAMA,GAAI,EAAI,GAAI,CAAC,EAAI,EAC3B,EAAI,IAAMA,GAAI,EAAI,GAAI,CAAC,EAAI,EAC3B,EAAI,IAAM,EAAI,GAAK,CACvB,CAKA,MAJA,GAAI,GAAKK,GAAK,EAAI,EAAE,EACpB,EAAI,GAAKA,GAAK,EAAI,EAAE,EACpB,EAAI,GAAKA,GAAK,EAAI,EAAE,EAChB,EAAI,GAAK,WAAW,EAAI,GAAK,GAC1B,IAAI,GAAMT,GAAS,CAAG,CAAC,CAClC,ECjFM,CAAE,SAAQ,KAEhB,YAAyB,EAAQ,CAE7B,IAAI,EAAQ,MACR,EAAS,GAAO,MAAM,EACtB,EAAU,EAEV,EAAa,CAAC,EAAG,CAAC,EAClB,EAAU,CAAC,EAAG,CAAC,EACf,EAAO,CAAC,EACR,EAAW,CAAC,EAAG,CAAC,EAChB,EAAW,GACX,EAAU,CAAC,EACX,EAAO,GACP,EAAO,EACP,EAAO,EACP,EAAoB,GACpB,EAAc,CAAC,EACf,EAAY,GACZ,EAAS,EAIP,EAAY,SAAU,EAAQ,CAUhC,GATA,IAAmB,CAAC,OAAQ,MAAM,EAE9B,GACAH,GAAK,CAAM,IAAM,UACjB,GAAO,QACP,GAAO,OAAO,EAAO,YAAY,KAEjC,EAAS,GAAO,OAAO,EAAO,YAAY,IAE1CA,GAAK,CAAM,IAAM,QAAS,CAEtB,EAAO,SAAW,IAClB,EAAS,CAAC,EAAO,GAAI,EAAO,EAAE,GAGlC,EAAS,EAAO,MAAM,CAAC,EAEvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC/B,EAAO,GAAK,GAAO,EAAO,EAAE,EAGhC,EAAK,OAAS,EACd,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC/B,EAAK,KAAK,GAAK,EAAO,OAAS,EAAE,CAEzC,CAEA,OADA,EAAW,EACH,EAAU,CACtB,EAEM,EAAW,SAAU,EAAO,CAC9B,GAAI,GAAY,KAAM,CAClB,IAAM,EAAI,EAAS,OAAS,EACxB,EAAI,EACR,KAAO,EAAI,GAAK,GAAS,EAAS,IAC9B,IAEJ,OAAO,EAAI,CACf,CACA,MAAO,EACX,EAEI,EAAiB,GAAM,EACvB,EAAc,GAAM,EAclB,EAAW,SAAU,EAAK,EAAW,CACvC,IAAI,EAAK,EAIT,GAHA,CACI,GAAY,GAEZ,MAAM,CAAG,GAAK,IAAQ,KACtB,OAAO,EAEX,CAOQ,CAPH,EAYG,EAXA,GAAY,EAAS,OAAS,EAEpB,EAAS,CACf,GAAK,EAAS,OAAS,GACpB,IAAS,EAIZ,GAFC,EAAM,IAAS,EAAO,GASnC,EAAI,EAAW,CAAC,EAEX,IACD,EAAI,EAAc,CAAC,GAGnB,IAAW,IACX,EAAIO,IAAI,EAAG,CAAM,GAGrB,EAAI,EAAS,GAAK,GAAK,EAAI,EAAS,GAAK,EAAS,IAElD,EAAIR,GAAM,EAAG,EAAG,CAAC,EAEjB,IAAM,EAAI,KAAK,MAAM,EAAI,GAAK,EAE9B,GAAI,GAAa,EAAY,GACzB,EAAM,EAAY,OACf,CACH,GAAIC,GAAK,CAAO,IAAM,QAElB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAClC,IAAM,EAAI,EAAK,GACf,GAAI,GAAK,EAAG,CACR,EAAM,EAAQ,GACd,KACJ,CACA,GAAI,GAAK,GAAK,IAAM,EAAK,OAAS,EAAG,CACjC,EAAM,EAAQ,GACd,KACJ,CACA,GAAI,EAAI,GAAK,EAAI,EAAK,EAAI,GAAI,CAC1B,GAAK,EAAI,IAAM,EAAK,EAAI,GAAK,GAC7B,EAAM,GAAO,YACT,EAAQ,GACR,EAAQ,EAAI,GACZ,EACA,CACJ,EACA,KACJ,CACJ,MACOA,GAAK,CAAO,IAAM,aACzB,EAAM,EAAQ,CAAC,GAEf,IACA,EAAY,GAAK,EAEzB,CACA,OAAO,CACX,EAEA,IAAI,MAAoB,EAAc,CAAC,EAEvC,EAAU,CAAM,EAIhB,IAAM,EAAI,SAAU,EAAG,CACnB,IAAM,EAAI,GAAO,EAAS,CAAC,CAAC,EAIxB,OAHA,GAAQ,EAAE,GACH,EAAE,GAAM,EAER,CAEf,EAiNA,MA/MA,GAAE,QAAU,SAAU,EAAS,CAC3B,GAAI,GAAW,KAAM,CACjB,GAAIA,GAAK,CAAO,IAAM,QAClB,EAAW,EACX,EAAa,CAAC,EAAQ,GAAI,EAAQ,EAAQ,OAAS,EAAE,MAClD,CACH,IAAM,EAAI,GAAO,QAAQ,CAAU,EACnC,CAGI,CAHA,IAAY,EACD,CAAC,EAAE,IAAK,EAAE,GAAG,EAEb,GAAO,OAAO,EAAG,IAAK,CAAO,CAEhD,CACA,OAAO,CACX,CACA,OAAO,CACX,EAEA,EAAE,OAAS,SAAU,EAAQ,CACzB,GAAI,CAAC,UAAU,OAEX,OAAO,EAGX,EAAU,EAAO,MAAM,CAAC,EACxB,EAAO,EAAO,GACd,EAAO,EAAO,EAAO,OAAS,GAC9B,EAAO,CAAC,EACR,IAAM,EAAI,EAAQ,OAClB,GAAI,EAAO,SAAW,GAAK,IAAS,EAEhC,IAAK,IAAI,KAAK,MAAM,KAAK,CAAM,EAC3B,EAAK,MAAM,EAAI,IAAS,EAAO,EAAK,MAErC,CACH,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAK,KAAK,GAAK,EAAI,EAAE,EAEzB,GAAI,EAAO,OAAS,EAAG,CAEnB,IAAM,EAAO,EAAO,KAAK,EAAG,IAAM,GAAK,EAAO,OAAS,EAAE,EACnD,EAAU,EAAO,IAAK,IAAO,EAAI,IAAS,EAAO,EAAK,EACvD,EAAQ,OAAO,EAAK,IAAM,EAAK,KAAO,CAAG,IAC1C,EAAc,GAAM,CAChB,GAAI,GAAK,GAAK,GAAK,EAAG,OAAO,EAC7B,IAAI,EAAI,EACR,KAAO,GAAK,EAAQ,EAAI,IAAI,IAC5B,IAAM,GACD,EAAI,EAAQ,KAAO,EAAQ,EAAI,GAAK,EAAQ,IAEjD,OADY,EAAK,GAAK,GAAK,EAAK,EAAI,GAAK,EAAK,GAElD,EAER,CACJ,CAEA,MADA,GAAa,CAAC,EAAM,CAAI,EACjB,CACX,EAEA,EAAE,KAAO,SAAU,EAAI,CAMnB,OALK,UAAU,QAGf,EAAQ,EACR,EAAW,EACJ,GAJI,CAKf,EAEA,EAAE,MAAQ,SAAU,EAAQ,EAAM,CAE9B,OADA,EAAU,EAAQ,CAAI,EACf,CACX,EAEA,EAAE,IAAM,SAAU,EAAI,CAElB,MADA,GAAO,EACA,CACX,EAEA,EAAE,OAAS,SAAU,EAAK,CAKtB,OAJK,UAAU,QAGf,EAAU,EACH,GAHI,CAIf,EAEA,EAAE,iBAAmB,SAAU,EAAG,CAsC9B,MArCA,CACI,IAAI,GAER,EAAoB,EACpB,EAAW,EACX,CA8BI,CA9BA,EACgB,SAAU,EAAG,CACzB,IAAM,EAAK,EAAS,EAAG,EAAI,EAAE,IAAI,EAAE,GAC7B,EAAK,EAAS,EAAG,EAAI,EAAE,IAAI,EAAE,GAC7B,EAAM,EAAK,EACb,EAAW,EAAS,EAAG,EAAI,EAAE,IAAI,EAAE,GACjC,EAAU,GAAM,EAAK,GAAM,EAC7B,EAAS,EAAW,EACpB,EAAK,EACL,EAAK,EACL,EAAW,GACf,KAAO,KAAK,IAAI,CAAM,EAAI,KAAQ,KAAa,IAC1C,UAAY,CAYT,OAXI,IACA,GAAU,IAEV,EAAS,GACT,EAAK,EACL,IAAM,EAAK,GAAK,KAEhB,EAAK,EACL,IAAM,EAAK,GAAK,IAEpB,EAAW,EAAS,EAAG,EAAI,EAAE,IAAI,EAAE,GAC3B,EAAS,EAAW,CAChC,GAAG,EAEP,OAAO,CACX,EAEiB,GAAM,EAEpB,CACX,EAEA,EAAE,QAAU,SAAU,EAAG,CAQjB,OAPA,GAAK,KAOE,GANHA,GAAK,CAAC,IAAM,WACZ,EAAI,CAAC,EAAG,CAAC,GAEb,EAAW,EACJ,EAIf,EAEA,EAAE,OAAS,SAAU,EAAW,EAAK,CAE7B,UAAU,OAAS,IACnB,EAAM,OAEV,IAAI,EAAS,CAAC,EAEd,GAAI,UAAU,SAAW,EACrB,EAAS,EAAQ,MAAM,CAAC,OACrB,GAAI,IAAc,EACrB,EAAS,CAAC,EAAE,EAAG,CAAC,OACb,GAAI,EAAY,EAAG,CACtB,IAAM,EAAK,EAAW,GAChB,EAAK,EAAW,GAAK,EAC3B,EAAS,IAAU,EAAG,EAAW,EAAK,EAAE,IAAK,GACzC,EAAE,EAAM,GAAK,EAAY,GAAM,CAAE,CACrC,CACJ,KAAO,CAEH,EAAS,CAAC,EACV,IAAI,EAAU,CAAC,EACf,GAAI,GAAY,EAAS,OAAS,EAC9B,IACI,IAAI,EAAI,EAAG,EAAM,EAAS,OAAQ,EAAM,GAAK,EAC7C,EAAM,EAAI,EAAM,EAAI,EACpB,EAAM,IAAM,IAEZ,EAAQ,MAAM,EAAS,EAAI,GAAK,EAAS,IAAM,EAAG,OAGtD,EAAU,EAEd,EAAS,EAAQ,IAAK,GAAM,EAAE,CAAC,CAAC,CACpC,CAKA,OAHI,GAAO,KACP,EAAS,EAAO,IAAK,GAAM,EAAE,GAAK,CAAC,GAEhC,CACX,EAEA,EAAE,MAAQ,SAAU,EAAG,CAKf,OAJA,GAAK,KAIE,GAHP,EAAY,EACL,EAIf,EAEA,EAAE,MAAQ,SAAU,EAAG,CAKf,OAJA,GAAK,KAIE,GAHP,EAAS,EACF,EAIf,EAEA,EAAE,OAAS,SAAU,EAAG,CAKhB,OAJA,GAAK,KAIE,GAHP,EAAS,GAAO,CAAC,EACV,EAIf,EAEO,CACX,CAEA,SAAS,IAAU,EAAM,EAAO,EAAW,CACvC,IAAI,EAAQ,CAAC,EACT,EAAY,EAAO,EACnB,EAAO,EAAoB,EAAY,EAAQ,EAAI,EAAQ,EAAxC,EACvB,IAAK,IAAI,EAAI,EAAM,EAAY,EAAI,EAAM,EAAI,EAAK,EAAY,IAAM,IAChE,EAAM,KAAK,CAAC,EAEhB,OAAO,CACX,CCnYA,IAAM,IAAY,SAAU,EAAG,CAC3B,IAAI,EAAM,CAAC,EAAG,CAAC,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,CACxB,IAAI,EAAS,CAAC,CAAC,EACf,IAAK,IAAI,EAAI,EAAG,GAAK,EAAI,OAAQ,IAC7B,EAAO,IAAM,EAAI,IAAM,GAAK,EAAI,EAAI,GAExC,EAAM,CACV,CACA,OAAO,CACX,EAEM,IAAS,SAAU,EAAQ,CAC7B,IAAI,EAAG,EAAM,EAAM,EAEnB,GADA,EAAS,EAAO,IAAK,GAAM,IAAI,GAAM,CAAC,CAAC,EACnC,EAAO,SAAW,EAElB,CAAC,EAAM,GAAQ,EAAO,IAAK,GAAM,EAAE,IAAI,CAAC,EACxC,EAAI,SAAU,EAAG,CAEb,OAAO,IAAI,GADC,CAAC,EAAG,EAAG,CAAC,EAAE,IAAK,GAAM,EAAK,GAAK,GAAK,EAAK,GAAK,EAAK,GAC5C,EAAG,KAAK,CAC/B,OACG,GAAI,EAAO,SAAW,EAEzB,CAAC,EAAM,EAAM,GAAQ,EAAO,IAAK,GAAM,EAAE,IAAI,CAAC,EAC9C,EAAI,SAAU,EAAG,CAOb,OAAO,IAAI,GANC,CAAC,EAAG,EAAG,CAAC,EAAE,IACjB,IACI,EAAI,IAAM,EAAI,GAAK,EAAK,GACzB,GAAK,EAAI,GAAK,EAAI,EAAK,GACvB,EAAI,EAAI,EAAK,EAEF,EAAG,KAAK,CAC/B,OACG,GAAI,EAAO,SAAW,EAAG,CAE5B,IAAI,EACJ,CAAC,EAAM,EAAM,EAAM,GAAQ,EAAO,IAAK,GAAM,EAAE,IAAI,CAAC,EACpD,EAAI,SAAU,EAAG,CAQb,OAAO,IAAI,GAPC,CAAC,EAAG,EAAG,CAAC,EAAE,IACjB,IACI,EAAI,IAAM,EAAI,IAAM,EAAI,GAAK,EAAK,GACnC,GAAK,EAAI,IAAM,EAAI,GAAK,EAAI,EAAK,GACjC,GAAK,EAAI,GAAK,EAAI,EAAI,EAAK,GAC3B,EAAI,EAAI,EAAI,EAAK,EAEN,EAAG,KAAK,CAC/B,CACJ,MAAO,GAAI,EAAO,QAAU,EAAG,CAE3B,IAAI,EAAM,EAAK,EACf,EAAO,EAAO,IAAK,GAAM,EAAE,IAAI,CAAC,EAChC,EAAI,EAAO,OAAS,EACpB,EAAM,IAAU,CAAC,EACjB,EAAI,SAAU,EAAG,CACb,IAAM,EAAI,EAAI,EAQd,OAAO,IAAI,GAPC,CAAC,EAAG,EAAG,CAAC,EAAE,IAAK,GACvB,EAAK,QACA,EAAK,EAAI,IACN,EAAM,EAAI,GAAK,IAAM,EAAI,GAAK,GAAK,EAAI,EAAG,GAC9C,CACJ,CAEe,EAAG,KAAK,CAC/B,CACJ,MACI,MAAU,WAAW,iDAAiD,EAE1E,OAAO,CACX,EAEA,IAAgB,GAAW,CACvB,IAAM,EAAI,IAAO,CAAM,EAEvB,MADA,GAAE,UAAcgB,GAAM,CAAC,EAChB,CACX,ECjFM,CAAE,UAAU,KAElB,GAAM,UAAU,IAAM,SAAU,EAAM,GAAM,CAExC,OADI,IAAQ,GAAc,KAAK,KAAK,MAAM,EAAG,CAAC,EACvC,KAAK,KAAK,MAAM,EAAG,CAAC,EAAE,IAAI9F,EAAK,CAC1C,EAEA,GAAM,UAAU,KAAO,SAAU,EAAM,GAAM,CACzC,OAAO,KAAK,KAAK,MAAM,EAAG,CAAC,EAAE,KAAK,EAAG,IAC1B,EAAI,EAAK,IAAQ,GAAQ,EAAIA,GAAM,CAAC,EAAK,CACnD,CACL,EAGA,OAAO,OAAO,GAAQ,CAAE,KADX,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,CACrB,CAAC,EAE7B,GAAM,OAAO,KAAO,GAAG,IAAS,CAC5B,IAAM,EAAOkF,GAAO,EAAM,MAAM,EAEhC,OADI,EAAK,KAAO,SAAW,EAAK,GAAK,GAC9B,CACX,EAEAC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,MAAM,EAEtBJ,GAAK,CAAI,IAAM,UACd,EAAK,SAAW,GACZ,EAAK,SAAW,GACbA,GAAK,EAAK,EAAE,GAAK,UACjB,EAAK,IAAM,GACX,EAAK,IAAM,GAEnB,MAAO,KAEf,CACJ,CAAC,ECjCD,IAAM,IAAS,EAAQ,EAAK,IAAS,CACjC,GAAI,CAAC,GAAM,GACP,MAAU,MAAM,sBAAwB,CAAI,EAEhD,OAAO,GAAM,GAAM,EAAQ,CAAG,CAClC,EAEM,GAAW,IAAO,EAAQ,IAAQ,CACpC,IAAM,EAAK,GAAO,CAAG,EAAE,IAAI,EACrB,EAAK,GAAO,CAAM,EAAE,IAAI,EAC9B,OAAO,GAAO,IAAI,EAAE,EAAI,CAAE,CAAC,CAC/B,EAEM,GAAQ,IAAO,EAAI,IAAO,CAC5B,IAAM,EAAM,CAAC,EAIb,MAHA,GAAI,GAAK,EAAE,EAAG,GAAI,EAAG,EAAE,EACvB,EAAI,GAAK,EAAE,EAAG,GAAI,EAAG,EAAE,EACvB,EAAI,GAAK,EAAE,EAAG,GAAI,EAAG,EAAE,EAChB,CACX,EAmBA,GAAM,OAAS,GAAQ,GAjBP,GAAM,CAiBY,CAAC,EACnC,GAAM,SAAW,GAAQ,IAjBP,EAAG,IAAO,EAAI,EAAK,GAiBC,CAAC,EACvC,GAAM,OAAS,GAAQ,IAfP,EAAG,IAAM,KAAO,GAAK,EAAI,EAAI,MAAQ,EAAI,EAAI,KAe3B,CAAC,EACnC,GAAM,QAAU,GAAQ,IAfP,EAAG,IAChB,EAAI,IAAO,EAAI,EAAI,EAAK,IAAM,KAAO,EAAI,GAAK,EAAI,EAAI,MAAQ,EAAI,EAAI,KActC,CAAC,EACrC,GAAM,OAAS,GAAQ,IAnBP,EAAG,IAAO,EAAI,EAAI,EAAI,CAmBJ,CAAC,EACnC,GAAM,QAAU,GAAQ,IAnBP,EAAG,IAAO,EAAI,EAAI,EAAI,CAmBH,CAAC,EACrC,GAAM,MAAQ,GAAQ,IAfP,EAAG,IACV,IAAM,IAAY,KACtB,EAAY,EAAI,IAAX,KAAoB,EAAI,EAAI,KAC1B,EAAI,IAAM,IAAM,EAYK,CAAC,EACjC,GAAM,KAAO,GAAQ,IAjBP,EAAG,IAAM,KAAO,GAAK,EAAI,EAAI,MAAQ,EAAI,KAiBzB,CAAC,EChD/B,GAAM,CAAE,QAAK,QAAK,SAAQ,KAE1B,aACI,EAAQ,IACR,EAAY,KACZ,EAAM,EACN,EAAQ,EACR,EAAY,CAAC,EAAG,CAAC,EACnB,CACE,IAAI,EAAK,EACL,EACAA,GAAK,CAAS,IAAM,QACpB,EAAK,EAAU,GAAK,EAAU,IAE9B,EAAK,EACL,EAAY,CAAC,EAAW,CAAS,GAErC,IAAM,EAAI,SAAU,EAAO,CACvB,IAAM,EAAI,KAAU,EAAQ,KAAO,IAAM,EAAY,GAC/C,EAAIO,IAAI,EAAU,GAAK,EAAK,EAAO,CAAK,EAExC,GADI,IAAO,EAA0B,EAAtB,EAAI,GAAK,EAAQ,GACrB,GAAK,EAAI,GAAM,EAC1B,EAAQG,IAAI,CAAC,EACb,EAAQC,IAAI,CAAC,EACb,EAAI,EAAI,GAAO,QAAW,EAAQ,QAAU,GAC5C,EAAI,EAAI,GAAO,QAAW,EAAQ,OAAU,GAC5C,EAAI,EAAW,QAAW,EAAlB,EACd,OAAO,GAAOR,GAAS,CAAC,EAAI,IAAK,EAAI,IAAK,EAAI,IAAK,CAAC,CAAC,CAAC,CAC1D,EAoDA,MAnDA,GAAE,MAAQ,SAAU,EAAG,CAKnB,OAJI,GAAK,KACE,GAEX,EAAQ,EACD,EACX,EACA,EAAE,UAAY,SAAU,EAAG,CAKvB,OAJI,GAAK,KACE,GAEX,EAAY,EACL,EACX,EACA,EAAE,MAAQ,SAAU,EAAG,CAKnB,OAJI,GAAK,KACE,GAEX,EAAQ,EACD,EACX,EACA,EAAE,IAAM,SAAU,EAAG,CAajB,OAZI,GAAK,KACE,GAEX,EAAM,EACFH,GAAK,CAAG,IAAM,SACd,EAAK,EAAI,GAAK,EAAI,GACd,IAAO,IACP,EAAM,EAAI,KAGd,EAAK,EAEF,EACX,EACA,EAAE,UAAY,SAAU,EAAG,CAWvB,OAVI,GAAK,KACE,GAEPA,GAAK,CAAC,IAAM,SACZ,EAAY,EACZ,EAAK,EAAE,GAAK,EAAE,KAEd,EAAY,CAAC,EAAG,CAAC,EACjB,EAAK,GAEF,EACX,EACA,EAAE,UAAc,GAAO,MAAM,CAAC,EAC9B,EAAE,IAAI,CAAG,EACF,CACX,CCrFA,IAAM,IAAS,mBAET,CAAE,UAAO,YAAW,KAM1B,KAAgB,EAAM,MAAW,CAC7B,IAAI,EAAO,IACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,GAAQ,IAAO,OAAO7E,IAAM,EAAI,EAAI,EAAE,CAAC,EAE3C,OAAO,IAAI,GAAM,EAAM,KAAK,CAChC,ECbM,CAAE,OAAK,QAAK,UAAO,SAAQ,KAEjC,SAAgB,GAAQ,EAAM,EAAM,KAAM,CACtC,IAAM,EAAI,CACN,IAAK,OAAO,UACZ,IAAK,OAAO,UAAY,GACxB,IAAK,EACL,OAAQ,CAAC,EACT,MAAO,CACX,EAmBA,OAlBI6E,GAAK,CAAI,IAAM,WACf,EAAO,OAAO,OAAO,CAAI,GAE7B,EAAK,QAAS,GAAQ,CACd,GAAOA,GAAK,CAAG,IAAM,WAAU,EAAM,EAAI,IACzC,GAA6B,MAAQ,CAAC,MAAM,CAAG,IAC/C,EAAE,OAAO,KAAK,CAAG,EACjB,EAAE,KAAO,EACL,EAAM,EAAE,MAAK,EAAE,IAAM,GACrB,EAAM,EAAE,MAAK,EAAE,IAAM,GACzB,EAAE,OAAS,EAEnB,CAAC,EAED,EAAE,OAAS,CAAC,EAAE,IAAK,EAAE,GAAG,EAExB,EAAE,QAAU,EAAM,IAAQ,GAAO,EAAG,EAAM,CAAG,EAEtC,CACX,CAEA,SAAgB,GAAO,EAAM,EAAO,QAAS,EAAM,EAAG,CAC9CA,GAAK,CAAI,GAAK,UACd,EAAO,GAAQ,CAAI,GAEvB,GAAM,CAAE,MAAK,OAAQ,EACf,EAAS,EAAK,OAAO,MAAM,EAAG,IAAM,EAAI,CAAC,EAE/C,GAAI,IAAQ,EACR,MAAO,CAAC,EAAK,CAAG,EAGpB,IAAM,EAAS,CAAC,EAQhB,GANI,EAAK,OAAO,EAAG,CAAC,IAAM,MAEtB,EAAO,KAAK,CAAG,EACf,EAAO,KAAK,CAAG,GAGf,EAAK,OAAO,EAAG,CAAC,IAAM,IAAK,CAE3B,EAAO,KAAK,CAAG,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAO,KAAK,EAAO,EAAI,GAAQ,EAAM,EAAI,EAE7C,EAAO,KAAK,CAAG,CACnB,MAAO,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,IAAK,CAElC,GAAI,GAAO,EACP,MAAU,MACN,qDACJ,EAEJ,IAAM,EAAU,KAAK,OAASiB,GAAI,CAAG,EAC/B,EAAU,KAAK,OAASA,GAAI,CAAG,EACrC,EAAO,KAAK,CAAG,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAO,KAAKV,IAAI,GAAI,EAAW,EAAI,GAAQ,EAAU,EAAQ,CAAC,EAElE,EAAO,KAAK,CAAG,CACnB,MAAO,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,IAAK,CAElC,EAAO,KAAK,CAAG,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC1B,IAAM,GAAM,EAAO,OAAS,GAAK,EAAK,EAChC,EAAK,IAAM,CAAC,EAClB,GAAI,IAAO,EACP,EAAO,KAAK,EAAO,EAAG,MACnB,CAEH,IAAM,EAAK,EAAI,EACf,EAAO,KAAK,EAAO,IAAO,EAAI,GAAM,EAAO,EAAK,GAAK,CAAE,CAC3D,CACJ,CACA,EAAO,KAAK,CAAG,CACnB,MAAO,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,IAAK,CAOlC,IAAI,EACE,EAAI,EAAO,OACX,EAAkB,MAAM,CAAC,EACzB,EAAmB,MAAM,CAAG,EAC9B,EAAS,GACT,EAAW,EACX,EAAY,KAGhB,EAAY,CAAC,EACb,EAAU,KAAK,CAAG,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAU,KAAK,EAAO,EAAI,GAAQ,EAAM,EAAI,EAIhD,IAFA,EAAU,KAAK,CAAG,EAEX,GAAQ,CAEX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAa,GAAK,EAEtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,CACxB,IAAM,EAAQ,EAAO,GACjB,EAAU,OAAO,UACjB,EACJ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC1B,IAAM,EAAOW,IAAI,EAAU,GAAK,CAAK,EACjC,EAAO,IACP,EAAU,EACV,EAAO,GAEX,EAAa,KACb,EAAY,GAAK,CACrB,CACJ,CAGA,IAAM,EAAmB,MAAM,CAAG,EAClC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAa,GAAK,KAEtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAU,EAAY,GAClB,EAAa,KAAa,KAC1B,EAAa,GAAW,EAAO,GAE/B,EAAa,IAAY,EAAO,GAGxC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAa,IAAM,EAAI,EAAa,GAIxC,EAAS,GACT,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,GAAI,EAAa,KAAO,EAAU,GAAI,CAClC,EAAS,GACT,KACJ,CAGJ,EAAY,EACZ,IAEI,EAAW,MACX,EAAS,GAEjB,CAIA,IAAM,EAAY,CAAC,EACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAU,GAAK,CAAC,EAEpB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAU,EAAY,GACtB,EAAU,GAAS,KAAK,EAAO,EAAE,EAErC,IAAI,EAAkB,CAAC,EACvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACrB,EAAgB,KAAK,EAAU,GAAG,EAAE,EACpC,EAAgB,KAAK,EAAU,GAAG,EAAU,GAAG,OAAS,EAAE,EAE9D,EAAkB,EAAgB,MAAM,EAAG,IAAM,EAAI,CAAC,EACtD,EAAO,KAAK,EAAgB,EAAE,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAgB,OAAQ,GAAK,EAAG,CAChD,IAAM,EAAI,EAAgB,GACtB,CAAC,MAAM,CAAC,GAAK,EAAO,QAAQ,CAAC,IAAM,IACnC,EAAO,KAAK,CAAC,CAErB,CACJ,CACA,OAAO,CACX,CC3LA,SAAgB,EAAG,IAAM,CAGrB,EAAI,IAAI,GAAM,CAAC,EACf,EAAI,IAAI,GAAM,CAAC,EACf,IAAM,EAAK,EAAE,UAAU,EACjB,EAAK,EAAE,UAAU,EACvB,OAAO,EAAK,GAAM,EAAK,MAAS,EAAK,MAAS,EAAK,MAAS,EAAK,IACrE,ECOM,GAAW,KACX,IAAO,KACP,IAAQ,GACR,GAAU,KACV,GAAc,KACd,GAAQ,MAEd,KAAgB,EAAM,IAAO,CAEzB,EAAO,IAAI,GAAM,CAAI,EACrB,EAAK,IAAI,GAAM,CAAE,EAEb,EAAK,MAAM,EAAI,IACf,EAAOT,GAAI,EAAI,EAAM,EAAK,MAAM,EAAG,KAAK,GAE5C,IAAM,EAAS,GAAI,GAAG,EAAK,IAAI,CAAC,EAC1B,EAAO,GAAI,GAAG,EAAG,IAAI,CAAC,EAGtB,EACF,GAAU,GACJ,EACA,GAAkB,GAAc,KAAQ,GAC5C,EACF,GAAQ,GAAc,EAAO,GAAgB,GAAc,KAAM,GAG/D,EAAkB,GAAM,IAAiB,GAAQ,IAEjD,EAAiB,GAAM,IAAiB,GAAQ,IAEhD,EACF,KAAK,IAAI,EAAO,CAAM,EAAI,IACpB,EACA,EAAS,EACP,EAAS,GACT,EAAQ,GAIpB,OAFc,KAAK,IAAI,CAAC,EAAI,IAAQ,EAAI,EAAI,EAAI,EAAI,GAAW,EAAI,IAEpD,GACnB,EAEA,SAAS,GAAI,EAAG,EAAG,EAAG,CAClB,MACI,WAAqB,EAAI,MAAK,IAC9B,UAAqB,EAAI,MAAK,IAC9B,SAAoB,EAAI,MAAK,GAErC,CClEA,GAAM,CAAE,QAAM,OAAK,QAAK,QAAK,SAAO,OAAK,OAAK,OAAK,QAAK,OAAO,KAE/D,aAAyB,EAAG,EAAG,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,CAGnD,IAAI,EAAU,SAAU,EAAK,CACzB,MAAQ,KAAM,GAAQ,EAAI,GAC9B,EACI,EAAU,SAAU,EAAK,CACzB,MAAQ,GAAI,GAAK,EAAO,GAC5B,EACA,EAAI,IAAI,GAAM,CAAC,EACf,EAAI,IAAI,GAAM,CAAC,EACf,GAAM,CAAC,EAAI,EAAI,GAAM,MAAM,KAAK,EAAE,IAAI,CAAC,EACjC,CAAC,EAAI,EAAI,GAAM,MAAM,KAAK,EAAE,IAAI,CAAC,EACjC,GAAQ,EAAK,GAAM,EAGnB,GAFK,GAAK,GAAI,EAAI,CAAC,EAAI,GAAI,EAAI,CAAC,CAEvB,EADJ,GAAK,GAAI,EAAI,CAAC,EAAI,GAAI,EAAI,CAAC,CAClB,GAAK,EACnB,EAAI,IAAO,EAAI,GAAK,GAAI,EAAM,CAAC,GAAK,GAAI,EAAM,CAAC,EAAI,GAAI,GAAI,CAAC,EAAE,GAC9D,EAAM,GAAM,EAAI,GAChB,EAAM,GAAM,EAAI,GAChB,EAAM,GAAK,GAAI,EAAK,CAAC,EAAI,GAAI,EAAI,CAAC,CAAC,EACnC,EAAM,GAAK,GAAI,EAAK,CAAC,EAAI,GAAI,EAAI,CAAC,CAAC,EACnC,GAAS,EAAM,GAAO,EACtB,EAAU,EAAQ,GAAM,EAAI,CAAG,CAAC,EAChC,EAAU,EAAQ,GAAM,EAAI,CAAG,CAAC,EAChC,EAAM,GAAW,EAAI,EAAU,EAAU,IACzC,EAAM,GAAW,EAAI,EAAU,EAAU,IACzC,EACF,GAAI,EAAM,CAAG,EAAI,KAAO,EAAM,EAAM,KAAO,GAAK,EAAM,GAAO,EAC3D,EACF,EACA,IAAO,GAAI,EAAQ,EAAQ,EAAE,CAAC,EAC9B,IAAO,GAAI,EAAQ,EAAI,CAAK,CAAC,EAC7B,IAAO,GAAI,EAAQ,EAAI,EAAQ,CAAC,CAAC,EACjC,GAAM,GAAI,EAAQ,EAAI,EAAQ,EAAE,CAAC,EACjC,EAAU,EAAM,EACpB,EACI,GAAI,CAAO,GAAK,IACV,EACA,GAAO,EACL,EAAU,IACV,EAAU,IACtB,EAAU,EAAI,GAAK,EAAM,CAAG,EAAI,GAAI,EAAQ,CAAO,EAAI,CAAC,EACxD,IAAM,EAAS,EAAK,EACd,EAAU,EAAM,EAChB,GAAK,EAAK,KAAQ,GAAI,EAAO,GAAI,CAAC,EAAK,GAAK,GAAK,GAAI,EAAO,GAAI,CAAC,CAAC,EAClE,GAAK,EAAI,KAAQ,EACjB,GAAK,EAAI,KAAQ,EAAQ,EACzB,EAAa,GAAK,IAAI,CAAC,IAAK,EAAQ,KAAO,GAAI,CAAC,CAAC,EAEjD,GAAK,EADA,EAAI,GAAK,GAAI,EAAO,CAAC,GAAK,GAAI,EAAO,CAAC,EAAI,GAAI,GAAI,CAAC,EAAE,GAC/C,GAAI,EAAI,EAAQ,CAAU,CAAC,EAO5C,OAAOxF,IAAI,EAAG,IAAI,IANH,GACX,GAAI,GAAU,EAAK,IAAK,CAAC,EACrB,GAAI,GAAW,EAAK,IAAK,CAAC,EAC1B,GAAI,GAAW,EAAK,IAAK,CAAC,EAC1B,IAAM,GAAW,EAAK,MAAQ,GAAW,EAAK,IAE1B,CAAC,CAAC,CAClC,CC1DA,aAAyB,EAAG,EAAG,EAAO,MAAO,CAGzC,EAAI,IAAI,GAAM,CAAC,EACf,EAAI,IAAI,GAAM,CAAC,EACf,IAAM,EAAK,EAAE,IAAI,CAAI,EACf,EAAK,EAAE,IAAI,CAAI,EACjB,EAAS,EACb,IAAK,IAAI,KAAK,EAAI,CACd,IAAM,GAAK,EAAG,IAAM,IAAM,EAAG,IAAM,GACnC,GAAU,EAAI,CAClB,CACA,OAAO,KAAK,KAAK,CAAM,CAC3B,CCdA,SAAgB,GAAG,IAAS,CACxB,GAAI,CAEA,OADA,IAAI,GAAM,GAAG,CAAI,EACV,EAEX,MAAY,CACR,MAAO,EACX,CACJ,ECLA,IAAe,CACX,MAAO,CACH,OAAO+F,GAAM,CAAC,GAAO,IAAI,IAAK,EAAG,EAAG,EAAG,GAAO,IAAI,IAAK,GAAK,EAAG,CAAC,CAAC,CACrE,EACA,KAAM,CACF,OAAOA,GAAM,CAAC,OAAQ,OAAQ,OAAQ,MAAM,EAAG,CAAC,EAAG,IAAM,IAAM,CAAC,CAAC,EAAE,KAC/D,KACJ,CACJ,CACJ,ECGM,GAAc,CAEhB,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC3G,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC1G,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC1G,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC1G,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC3G,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACzG,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC1G,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACzG,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC1G,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAG3G,SAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAClI,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAChI,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9H,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9H,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9H,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAChI,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9H,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9H,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAG9H,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC7F,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC/F,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACxG,KAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EACzI,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC9F,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAC3I,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,EAChG,QAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,SAAS,CAC/G,EAEM,GAAmB,OAAO,KAAK,EAAW,EAC1C,GAAU,IAAI,IAAI,GAAiB,IAAK,GAAQ,CAAC,EAAI,YAAY,EAAG,CAAG,CAAC,CAAC,EAGzE,IACF,OAAO,OAAU,WACX,IAAI,MAAM,GAAa,CACnB,IAAI,EAAQ,EAAM,CACd,IAAM,EAAQ,EAAK,YAAY,EAC/B,GAAI,GAAQ,IAAI,CAAK,EACjB,OAAO,EAAO,GAAQ,IAAI,CAAK,EAEvC,EACA,qBAAsB,CAClB,OAAO,OAAO,oBAAoB,EAAgB,CACtD,CACJ,CAAC,EACD,GC5EJ,KAAY,GAAG,IAAS,CAC1B,EAAOZ,GAAO,EAAM,MAAM,EAC1B,GAAM,CAAC,EAAG,EAAG,EAAG,GAAK,EACf,EAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,EAE1C,OADI,IAAM,EAAU,CAAC,EAAG,EAAG,EAAG,CAAK,EAC5B,CACH,GAAK,EAAI,EAAI,KAAO,EAAI,IAAM,EAAI,GAClC,GAAK,EAAI,EAAI,KAAO,EAAI,IAAM,EAAI,GAClC,GAAK,EAAI,EAAI,KAAO,EAAI,IAAM,EAAI,GAClC,CACJ,CACJ,ECZM,CAAE,QAAQ,KAEV,KAAY,GAAG,IAAS,CAC1B,GAAI,CAAC,EAAG,EAAG,GAAKA,GAAO,EAAM,KAAK,EAClC,GAAQ,IACR,GAAQ,IACR,GAAQ,IACR,IAAM,EAAI,EAAI,GAAI,EAAG,GAAI,EAAG,CAAC,CAAC,EACxB,EAAI,EAAI,EAAI,GAAK,EAAI,GAAK,EAIhC,MAAO,EAHI,EAAI,EAAI,GAAK,GACb,EAAI,EAAI,GAAK,GACb,EAAI,EAAI,GAAK,EACP,CAAC,CACtB,ECPA,GAAM,UAAU,KAAO,UAAY,CAC/B,OAAO,IAAS,KAAK,IAAI,CAC7B,EAGA,OAAO,OAAO,GAAQ,CAAE,MADV,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,MAAM,CACtB,CAAC,EAE9B,GAAM,OAAO,KAAO,IAEpBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,MAAM,EACtBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,MAEf,CACJ,CAAC,ECdD,IAAM,KAAW,GAAG,IAAS,CACzB,IAAM,EAAOI,GAAO,EAAM,MAAM,EAC5B,EAAOH,GAAK,CAAI,GAAK,MAUzB,MATA,GAAK,GAAK,GAAK,EAAK,IAAM,CAAC,EAAI,MAC/B,EAAK,GAAK,GAAK,EAAK,GAAK,GAAG,EAAI,IAChC,EAAK,GAAK,GAAK,EAAK,GAAK,GAAG,EAAI,IAC5B,IAAS,QAAW,EAAK,OAAS,GAAK,EAAK,GAAK,GACjD,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAC9C,EAAO,QAEP,EAAK,OAAS,EAEX,GAAG,EAAK,OAAO,EAAG,CAAC,EAAE,GAAG,EAAK,KAAK,GAAG,EAAE,EAClD,ECdM,KAAW,GAAG,IAAS,CACzB,IAAM,EAAOG,GAAO,EAAM,KAAK,EAC3B,EAAOH,GAAK,CAAI,GAAK,MASzB,MARA,GAAK,GAAK,GAAK,EAAK,EAAE,EAAI,IAC1B,EAAK,GAAK,GAAK,EAAK,EAAE,EACtB,EAAK,GAAK,GAAK,EAAK,EAAE,EAClB,IAAS,QAAW,EAAK,OAAS,GAAK,EAAK,GAAK,EACjD,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAE9C,EAAK,OAAS,EAEX,OAAO,EAAK,KAAK,GAAG,EAAE,EACjC,ECZM,KAAW,GAAG,IAAS,CACzB,IAAM,EAAOG,GAAO,EAAM,KAAK,EAC3B,EAAOH,GAAK,CAAI,GAAK,MASzB,MARA,GAAK,GAAK,GAAK,EAAK,EAAE,EAAI,IAC1B,EAAK,GAAK,GAAK,EAAK,EAAE,EACtB,EAAK,GAAK,MAAM,EAAK,EAAE,EAAI,OAAS,GAAK,EAAK,EAAE,EAAI,MAChD,IAAS,QAAW,EAAK,OAAS,GAAK,EAAK,GAAK,EACjD,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAE9C,EAAK,OAAS,EAEX,OAAO,EAAK,KAAK,GAAG,EAAE,EACjC,ECnBM,KAAa,GAAG,IAAS,CAC3B,IAAM,EAAOG,GAAO,EAAM,KAAK,EAS/B,MARA,GAAK,GAAK,GAAK,EAAK,GAAK,GAAG,EAAI,IAChC,EAAK,GAAK,GAAK,EAAK,EAAE,EACtB,EAAK,GAAK,GAAK,EAAK,EAAE,EAClB,EAAK,OAAS,GAAK,EAAK,GAAK,EAC7B,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAE9C,EAAK,OAAS,EAEX,SAAS,EAAK,KAAK,GAAG,EAAE,EACnC,ECTM,IAAa,GAAG,IAAS,CAC3B,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQA,GAAO,EAAM,KAAK,EACvC,CAAC,EAAG,EAAG,GAAM,GAAU,EAAG,EAAG,CAAC,EAC9B,CAAC,EAAG,EAAG,GAAK,GAAQ,EAAG,EAAG,CAAE,EAClC,MAAO,CAAC,EAAG,EAAG,EAAG,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CACzE,ECPM,KAAa,GAAG,IAAS,CAC3B,IAAM,EAAOA,GAAO,EAAM,KAAK,EAS/B,MARA,GAAK,GAAK,GAAK,EAAK,GAAK,GAAG,EAAI,IAChC,EAAK,GAAK,GAAK,EAAK,EAAE,EACtB,EAAK,GAAK,MAAM,EAAK,EAAE,EAAI,OAAS,GAAK,EAAK,EAAE,EAAI,MAChD,EAAK,OAAS,GAAK,EAAK,GAAK,EAC7B,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAE9C,EAAK,OAAS,EAEX,SAAS,EAAK,KAAK,GAAG,EAAE,EACnC,ECDM,CAAE,UAAU,KAUZ,KAAW,GAAG,IAAS,CACzB,IAAM,EAAOA,GAAO,EAAM,MAAM,EAC5B,EAAOH,GAAK,CAAI,GAAK,MACzB,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,MACtB,OAAO,IAAQlB,GAAQ,CAAI,EAAG,CAAI,EAEtC,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,MAAO,CAE7B,IAAM,EAAiB,GAAiB,EACxC,GAAiB,KAAK,EACtB,IAAM,EAAW,IAAQ,GAAQ,CAAI,EAAG,CAAI,EAE5C,OADA,GAAiB,CAAc,EACxB,CACX,CACA,GAAI,EAAK,OAAO,EAAG,CAAC,IAAM,MAAO,CAE7B,IAAM,EAAiB,GAAiB,EACxC,GAAiB,KAAK,EACtB,IAAM,EAAW,IAAQ,GAAQ,CAAI,EAAG,CAAI,EAE5C,OADA,GAAiB,CAAc,EACxB,CACX,CAcA,OAbI,EAAK,OAAO,EAAG,CAAC,IAAM,QACf,IAAU,GAAU,CAAI,CAAC,EAEhC,EAAK,OAAO,EAAG,CAAC,IAAM,QACf,IAAU,GAAU,CAAI,CAAC,GAEpC,EAAK,GAAK7D,GAAM,EAAK,EAAE,EACvB,EAAK,GAAKA,GAAM,EAAK,EAAE,EACvB,EAAK,GAAKA,GAAM,EAAK,EAAE,GACnB,IAAS,QAAW,EAAK,OAAS,GAAK,EAAK,GAAK,KACjD,EAAK,GAAK,MAAQ,EAAK,OAAS,EAAI,EAAK,GAAK,GAC9C,EAAO,QAEJ,GAAG,EAAK,OAAO,EAAG,CAAC,EAAE,GAAG,EAAK,MAAM,EAAG,IAAS,MAAQ,EAAI,CAAC,EAAE,KAAK,GAAG,EAAE,GACnF,ECtDM,IAAa,GAAG,IAAS,CAC3B,EAAOkF,GAAO,EAAM,KAAK,EACzB,GAAM,CAAC,EAAG,EAAG,EAAG,GAAG,GAAQ,EACrB,CAAC,EAAG,EAAG,GAAM,GAAQ,EAAG,EAAG,CAAC,EAC5B,CAAC,EAAG,EAAG,GAAK,GAAU,EAAG,EAAG,CAAE,EACpC,MAAO,CAAC,EAAG,EAAG,EAAG,GAAI,EAAK,OAAS,GAAK,EAAK,GAAK,EAAI,CAAC,EAAK,EAAE,EAAI,CAAC,CAAE,CACzE,ECDM,GAAa,4CACb,GAAe,8CACf,GAAM,6CACN,GAAO,OACP,GAAM,OACN,GAAQ,YACR,GAAQ,oDACR,GAAQ,4DAGR,GAAa,OACf,YACI,GACA,CAAC,GAAY,GAAY,EAAU,EAAE,KAAK,EAAG,EAC7C,GACA,MACR,EACM,GAAoB,OACtB,UACI,GACA,CAAC,GAAY,GAAY,EAAU,EAAE,KAAK,EAAK,EAC/C,GACA,MACR,EACM,GAAqB,OACvB,WACI,GACA,CAAC,GAAY,GAAY,GAAY,EAAY,EAAE,KAAK,EAAK,EAC7D,GACA,MACR,EAEM,GAAa,OACf,YAAc,GAAO,CAAC,GAAO,GAAK,EAAG,EAAE,KAAK,EAAG,EAAI,GAAQ,MAC/D,EACM,GAAoB,OACtB,WAAa,GAAO,CAAC,GAAO,GAAK,EAAG,EAAE,KAAK,EAAK,EAAI,GAAO,MAC/D,EACM,GACF,wGAEE,GAAa,OACf,UACI,GACA,CAAC,GAAc,GAAc,EAAY,EAAE,KAAK,EAAG,EACnD,GACA,MACR,EACM,GAAa,OACf,UACI,GACA,CAAC,GAAc,GAAc,EAAK,EAAE,KAAK,EAAG,EAC5C,GACA,MACR,EACM,GAAe,OACjB,YACI,GACA,CAAC,GAAc,GAAc,EAAY,EAAE,KAAK,EAAG,EACnD,GACA,MACR,EACM,GAAe,OACjB,YACI,GACA,CAAC,GAAc,GAAc,EAAK,EAAE,KAAK,EAAG,EAC5C,GACA,MACR,EAEM,CAAE,UAAU,KAEZ,GAAY,GACP,EAAI,KAAK,EAAG,IAAO,GAAK,EAAIL,GAAM7E,GAAM,CAAC,EAAG,EAAG,GAAG,EAAI,CAAE,EAG7D,IAAqB,EAAK,EAAM,EAAG,EAAM,IAAK,EAAS,MACrD,OAAO,GAAQ,UAAY,EAAI,SAAS,GAAG,IAC3C,EAAM,WAAW,EAAI,UAAU,EAAG,EAAI,OAAS,CAAC,CAAC,EAAI,IACrD,CAII,CAJA,EAEM,GAAO,EAAM,GAAK,IAAO,EAAM,GAE/B,EAAM,GAAO,EAAM,IAG1B,CAAC,GAGN,IAAe,EAAG,IACb,IAAM,OAAS,EAAY,EAGhC,GAAW,GAAQ,CAGrB,GAFA,EAAM,EAAI,YAAY,EAAE,KAAK,EAEzB,IAAQ,cACR,MAAO,CAAC,EAAG,EAAG,EAAG,CAAC,EAGtB,IAAI,EAEJ,GAAImF,GAAM,OAAO,MACb,GAAI,CACA,OAAOA,GAAM,OAAO,MAAM,CAAG,CAEjC,MAAY,CAAC,CAIjB,IAAK,EAAI,EAAI,MAAM,EAAM,KAAO,EAAI,EAAI,MAAM,EAAa,GAAI,CAC3D,IAAI,EAAM,EAAE,MAAM,EAAG,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAI,GAAK,CAAC,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,EAAG,GAAG,EAE9D,EAAM,GAAS,CAAG,EAClB,IAAM,EAAQ,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEhE,MADA,GAAI,GAAK,EACF,CACX,CAGA,GAAK,EAAI,EAAI,MAAM,EAAc,EAAI,CACjC,IAAM,EAAM,EAAE,MAAM,EAAG,CAAC,EACxB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAI,GAAK,CAAC,GAAkB,EAAI,GAAI,EAAG,GAAG,EAE9C,OAAO,CACX,CAGA,IAAK,EAAI,EAAI,MAAM,EAAM,KAAO,EAAI,EAAI,MAAM,EAAa,GAAI,CAC3D,IAAM,EAAM,EAAE,MAAM,EAAG,CAAC,EACxB,EAAI,GAAK,CAAC,GAAY,EAAI,GAAG,QAAQ,MAAO,EAAE,EAAG,CAAC,EAClD,EAAI,GAAM,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,EAAG,GAAG,EAAI,IAC9D,EAAI,GAAM,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,EAAG,GAAG,EAAI,IAC9D,IAAM,EAAM,GAAS,GAAQ,CAAG,CAAC,EAGjC,MADA,GAAI,GADU,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEzD,CACX,CAGA,GAAK,EAAI,EAAI,MAAM,EAAc,EAAI,CACjC,IAAM,EAAM,EAAE,MAAM,EAAG,CAAC,EACxB,EAAI,IAAM,IACV,EAAI,IAAM,IACV,IAAM,EAAM,GAAQ,CAAG,EACvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAI,GAAKnF,GAAM,EAAI,EAAE,EAGzB,MADA,GAAI,GAAK,CAAC,EAAE,GACL,CACX,CAEA,GAAK,EAAI,EAAI,MAAM,EAAM,EAAI,CACzB,IAAM,EAAM,EAAE,MAAM,EAAG,CAAC,EACxB,EAAI,GAAK,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,EAAG,GAAG,EACzD,EAAI,GAAK,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,KAAM,IAAK,EAAI,EAClE,EAAI,GAAK,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,KAAM,IAAK,EAAI,EAElE,IAAM,EAAK,GAAiB,EAC5B,GAAiB,KAAK,EACtB,IAAM,EAAM,GAAS,GAAQ,CAAG,CAAC,EAKjC,OAHA,GAAiB,CAAE,EAEnB,EAAI,GADU,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEzD,CACX,CAEA,GAAK,EAAI,EAAI,MAAM,EAAM,EAAI,CACzB,IAAM,EAAM,EAAE,MAAM,EAAG,CAAC,EACxB,EAAI,GAAK,GAAkB,EAAI,GAAI,EAAG,GAAG,EACzC,EAAI,GAAK,GAAkB,GAAY,EAAI,GAAI,CAAC,EAAG,EAAG,IAAK,EAAK,EAChE,EAAI,GAAK,CAAC,GAAY,EAAI,GAAG,QAAQ,MAAO,EAAE,EAAG,CAAC,EAElD,IAAM,EAAK,GAAiB,EAC5B,GAAiB,KAAK,EACtB,IAAM,EAAM,GAAS,GAAQ,CAAG,CAAC,EAKjC,OAHA,GAAiB,CAAE,EAEnB,EAAI,GADU,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEzD,CACX,CAEA,GAAK,EAAI,EAAI,MAAM,EAAQ,EAAI,CAC3B,IAAM,EAAQ,EAAE,MAAM,EAAG,CAAC,EAC1B,EAAM,GAAK,GAAkB,GAAY,EAAM,GAAI,CAAC,EAAG,EAAG,CAAC,EAC3D,EAAM,GAAK,GAAkB,GAAY,EAAM,GAAI,CAAC,EAAG,IAAM,GAAK,EAAI,EACtE,EAAM,GAAK,GAAkB,GAAY,EAAM,GAAI,CAAC,EAAG,IAAM,GAAK,EAAI,EACtE,IAAM,EAAM,GAAS,GAAU,CAAK,CAAC,EAGrC,MADA,GAAI,GADU,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEzD,CACX,CAEA,GAAK,EAAI,EAAI,MAAM,EAAQ,EAAI,CAC3B,IAAM,EAAQ,EAAE,MAAM,EAAG,CAAC,EAC1B,EAAM,GAAK,GAAkB,GAAY,EAAM,GAAI,CAAC,EAAG,EAAG,CAAC,EAC3D,EAAM,GAAK,GAAkB,GAAY,EAAM,GAAI,CAAC,EAAG,EAAG,GAAK,EAAK,EACpE,EAAM,GAAK,CAAC,GAAY,EAAM,GAAG,QAAQ,MAAO,EAAE,EAAG,CAAC,EACtD,IAAM,EAAM,GAAS,GAAU,CAAK,CAAC,EAGrC,MADA,GAAI,GADU,EAAE,KAAO,OAA6C,EAAjC,CAAC,GAAkB,EAAE,GAAI,EAAG,CAAC,EAEzD,CACX,CACJ,EAEA,GAAQ,KAAQ,GAGR,GAAO,KAAK,CAAC,GACb,GAAO,KAAK,CAAC,GACb,GAAO,KAAK,CAAC,GACb,GAAO,KAAK,CAAC,GACb,GAAS,KAAK,CAAC,GACf,GAAS,KAAK,CAAC,GAEf,GAAc,KAAK,CAAC,GACpB,GAAe,KAAK,CAAC,GACrB,GAAc,KAAK,CAAC,GACpB,GAAe,KAAK,CAAC,GACrB,IAAM,cCjOd,GAAM,UAAU,IAAM,SAAU,EAAM,CAClC,OAAO,IAAQ,KAAK,KAAM,CAAI,CAClC,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,GAEnBmF,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,EAAG,GAAG,IAAS,CAClB,GAAI,CAAC,EAAK,QAAUL,GAAK,CAAC,IAAM,UAAY,GAAQ,KAAK,CAAC,EACtD,MAAO,KAEf,CACJ,CAAC,ECnBD,GAAM,OAAO,IAAM,GAAG,IAAS,CAC3B,IAAM,EAAMI,GAAO,EAAM,MAAM,EAI/B,MAHA,GAAI,IAAM,IACV,EAAI,IAAM,IACV,EAAI,IAAM,IACH,CACX,EAGA,GAAO,IADK,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,IAAI,EAG/C,GAAM,UAAU,GAAK,UAAY,CAC7B,IAAM,EAAM,KAAK,KACjB,MAAO,CAAC,EAAI,GAAK,IAAK,EAAI,GAAK,IAAK,EAAI,GAAK,IAAK,EAAI,EAAE,CAC5D,ECZA,GAAM,UAAU,IAAM,SAAU,EAAM,CAClC,OAAO,GAAQ,KAAK,KAAM,CAAI,CAClC,EAGA,GAAO,KADM,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,KAAK,EAGjD,GAAM,OAAO,IAAM,GACnBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,EAAG,GAAG,IAAS,CAClB,GACI,CAAC,EAAK,QACNL,GAAK,CAAC,IAAM,UACZ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAK,EAE3C,MAAO,KAEf,CACJ,CAAC,ECrBD,GAAM,CAAE,QAAQ,KAEV,GAAmB,GAAW,CAChC,IAAM,EAAO,EAAS,IAClB,EAAG,EAAG,EA0BV,OAzBI,EAAO,IACP,EAAI,IACJ,EACI,EAAO,EACD,EACA,oBACA,oBAAuB,EAAI,EAAO,GAClC,mBAAqBiB,GAAI,CAAC,EACpC,EACI,EAAO,GACD,EACA,oBACA,mBAAsB,EAAI,EAAO,IACjC,mBAAqBA,GAAI,CAAC,IAEpC,EACI,mBACA,kBAAqB,EAAI,EAAO,IAChC,kBAAoBA,GAAI,CAAC,EAC7B,EACI,kBACA,oBAAuB,EAAI,EAAO,IAClC,iBAAmBA,GAAI,CAAC,EAC5B,EAAI,KAED,CAAC,EAAG,EAAG,EAAG,CAAC,CACtB,EC7BM,CAAE,WAAU,KAEZ,KAAmB,GAAG,IAAS,CACjC,IAAM,EAAMb,GAAO,EAAM,KAAK,EACxB,EAAI,EAAI,GACV,EAAI,EAAI,GACR,EAAU,IACV,EAAU,IAEV,EACJ,KAAO,EAAU,EAAU,IAAK,CAC5B,GAAQ,EAAU,GAAW,GAC7B,IAAM,EAAM,GAAgB,CAAI,EAC5B,EAAI,GAAK,EAAI,IAAM,EAAI,EACvB,EAAU,EAEV,EAAU,CAElB,CACA,OAAO,IAAM,CAAI,CACrB,ECrBA,GAAM,UAAU,KACZ,GAAM,UAAU,OAChB,GAAM,UAAU,YACZ,UAAY,CACR,OAAO,IAAgB,KAAK,IAAI,CACpC,EAER,IAAM,IAAQ,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,MAAM,EACnD,OAAO,OAAO,GAAQ,CAAE,QAAM,OAAQ,GAAM,YAAa,EAAK,CAAC,EAE/D,GAAM,OAAO,KACT,GAAM,OAAO,OACb,GAAM,OAAO,YACT,GCZR,GAAM,UAAU,MAAQ,UAAY,CAChC,OAAO,GAAU,KAAK,IAAI,CAC9B,EAGA,OAAO,OAAO,GAAQ,CAAE,OADT,GAAG,IAAS,IAAI,GAAM,GAAG,EAAM,OAAO,CACvB,CAAC,EAE/B,GAAM,OAAO,MAAQ,GAErBC,GAAM,WAAW,KAAK,CAClB,EAAG,EACH,MAAO,GAAG,IAAS,CAEf,GADA,EAAOD,GAAO,EAAM,OAAO,EACvBJ,GAAK,CAAI,IAAM,SAAW,EAAK,SAAW,EAC1C,MAAO,OAEf,CACJ,CAAC,ECmCD,OAAO,OAAO,GAAQ,CAClB,WACA,YACA,WACA,SACA,WACA,SACA,UACA,aACA,iBACA,cACA,WACA,aACA,SACA,YAAaS,GACb,UACA,OACA,WACA,SACA,WACA,SACJ,CAAC,EAED,OAAe,GCvEf,SAAS,GAAU,EAAG,EAAK,EAAK,EAAQ,KAAO,CAC3C,OAAO,GAAK,KAAK,IAAI,EAAK,CAAG,EAAI,GAAS,GAAK,KAAK,IAAI,EAAK,CAAG,EAAI,CACxE,CACA,SAAS,GAAU,EAAG,CAClB,MAAO,CACH,KAAM,EAAE,IACR,MAAO,EAAE,OACT,IAAK,EAAE,KACP,OAAQ,EAAE,MACV,WAAY,CAAC,EAAE,UACnB,CACJ,CACA,IAAM,GAAN,cAA+B,EAAW,CACtC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQ,SACb,KAAK,KAAO,OACZ,KAAK,SAAW,MACpB,CACA,UAAU,EAAmB,GAAO,CAChC,GAAM,CAAE,IAAG,IAAG,OAAM,QAAO,SAAQ,cAAe,KAAK,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,SAAU,YAAY,EAAG,CAAgB,EACrI,GAAI,EAAY,CACZ,IAAM,EAAI,KAAK,IAAI,EAAI,CAAI,EACrB,EAAO,GAAQ,KAAK,QAAU,OAAa,EAAJ,GACvC,EAAQ,GAAQ,KAAK,QAAU,QAAc,EAAJ,GACzC,EAAO,EAAS,EAGtB,MAAO,CAAE,OAAM,IAFH,EAAI,EAEI,QAAO,OADZ,EAAI,EACgB,YAAW,CAClD,KACK,CACD,IAAM,EAAI,KAAK,IAAI,EAAI,CAAI,EACrB,EAAO,EAAQ,EACf,EAAO,EAAI,EACX,EAAQ,EAAI,EAGlB,MAAO,CAAE,OAAM,IAFH,GAAQ,KAAK,QAAU,QAAc,EAAJ,GAEzB,QAAO,OADZ,GAAQ,KAAK,QAAU,OAAa,EAAJ,GACZ,YAAW,CAClD,CACJ,CACA,QAAQ,EAAQ,EAAQ,EAAkB,CACtC,IAAM,EAAK,KAAK,UAAU,CAAgB,EACpC,EAAM,GAAU,MAAQ,GAAU,EAAQ,EAAG,KAAM,EAAG,KAAK,EAC3D,EAAM,GAAU,MAAQ,GAAU,EAAQ,EAAG,IAAK,EAAG,MAAM,EACjE,OAAO,GAAO,CAClB,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,KAAK,QAAQ,EAAQ,KAAM,CAAgB,CACtD,CACA,SAAS,EAAQ,EAAkB,CAC/B,OAAO,KAAK,QAAQ,KAAM,EAAQ,CAAgB,CACtD,CACA,eAAe,EAAkB,CAC7B,GAAM,CAAE,IAAG,IAAG,OAAM,cAAe,KAAK,SAAS,CAAC,IAAK,IAAK,OAAQ,YAAY,EAAG,CAAgB,EAenG,MAdU,CACN,OAAQ,CACJ,EAAG,EAAa,EAAO,EACvB,EAAG,EAAa,EAAI,CACxB,EACA,KAAM,CACF,EAAG,GAAc,EAAO,GAAK,EAAI,EACjC,EAAG,EAAa,GAAK,EAAO,GAAK,CACrC,EACA,MAAO,CACH,EAAG,EAAa,GAAQ,EAAI,GAAQ,EAAI,EACxC,EAAG,EAAa,EAAI,GAAQ,EAAI,GAAQ,CAC5C,CACJ,EAAE,KAAK,MAEX,CACA,gBAAgB,EAAkB,CAC9B,OAAO,KAAK,eAAe,CAAgB,CAC/C,CACA,SAAS,EAAM,CACX,GAAM,CAAE,QAAO,UAAW,KAAK,SAAS,CAAC,QAAS,QAAQ,CAAC,EAC3D,OAAO,IAAS,IAAM,EAAQ,CAClC,CACA,iBAAiB,EAAmB,GAAO,CACvC,IAAI,EAAM,KAAK,QAAQ,aACnB,EAAiB,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,eAAgB,CAAC,EAAG,CAAC,EACrE,IAAmB,IACnB,EAAM,OACN,EAAiB,GAErB,IAAI,EAAS,KAAK,UAAU,CAAgB,EACtC,EAAM,EAAO,WACf,EAAa,KAAK,OAAS,IAAQ,OAAS,IAAQ,UAAY,KAAK,KAAK,UAAU,CAAgB,EAAI,EACxG,EAAa,KAAK,WAAa,IAAQ,UAAY,IAAQ,UAAY,KAAK,SAAS,UAAU,CAAgB,EAAI,EAClH,IACD,EAAS,GAAU,CAAM,EACzB,EAAa,GAAU,CAAU,EACjC,EAAa,GAAU,CAAU,GAErC,IAAM,EAAK,KAAK,OAAO,EAAO,OAAS,EAAO,MAAQ,EAAI,EAAe,EACnE,EAAS,KAAK,OAAO,EAAO,OAAS,EAAO,IAAM,GAAM,CAAC,EACzD,EAAS,CAAC,EACV,EAAU,CAAC,EACjB,GAAI,IAAQ,QAAU,IAAQ,MAC1B,EAAO,KAAK,CAAC,EAAO,KAAM,EAAO,GAAG,EAAG,CAAC,EAAO,MAAO,EAAO,GAAG,CAAC,MAEhE,CACD,IAAI,EAAY,EACZ,IAAQ,WAER,EAAY,GADI,KAAK,OAAO,EAAW,OAAS,EAAW,KAAO,EAAiB,EACvD,EAAI,IAEpC,EAAO,KAAK,CAAC,EAAO,MAAQ,EAAW,KAAO,EAAO,MAAQ,EAAW,EAAO,GAAG,EAAG,CAAC,EAAO,OAAS,EAAW,MAAQ,EAAO,OAAS,EAAW,EAAO,GAAG,CAAC,CACnK,CAeA,GAdI,IAAQ,UACR,EAAO,KAAK,CAAC,EAAO,MAAO,EAAO,IAAM,CAAM,CAAC,EAC/C,EAAO,KAAK,CAAC,EAAO,MAAO,EAAO,OAAS,CAAM,CAAC,EAClD,EAAQ,KAAK,CAAC,EAAO,KAAM,EAAO,IAAM,CAAM,CAAC,EAC/C,EAAQ,KAAK,CAAC,EAAO,KAAM,EAAO,OAAS,CAAM,CAAC,GAE7C,IAAQ,OAAS,EAAiB,GACvC,EAAO,KAAK,CAAC,EAAO,MAAO,EAAO,IAAM,CAAE,CAAC,EAC3C,EAAQ,KAAK,CAAC,EAAO,KAAM,EAAO,IAAM,CAAE,CAAC,GAEtC,IAAQ,UAAY,EAAiB,IAC1C,EAAO,KAAK,CAAC,EAAO,MAAO,EAAO,OAAS,CAAE,CAAC,EAC9C,EAAQ,KAAK,CAAC,EAAO,KAAM,EAAO,OAAS,CAAE,CAAC,GAE9C,IAAQ,QAAU,IAAQ,SAC1B,EAAO,KAAK,CAAC,EAAO,MAAO,EAAO,MAAM,EAAG,CAAC,EAAO,KAAM,EAAO,MAAM,CAAC,MAEtE,CACD,IAAI,EAAY,EACZ,IAAQ,WAER,EAAY,GADI,KAAK,OAAO,EAAW,OAAS,EAAW,KAAO,EAAiB,EACvD,EAAI,IAEpC,EAAO,KAAK,CAAC,EAAO,OAAS,EAAW,MAAQ,EAAO,OAAS,EAAW,EAAO,MAAM,EAAG,CAAC,EAAO,MAAQ,EAAW,KAAO,EAAO,MAAQ,EAAW,EAAO,MAAM,CAAC,CACzK,CAKA,OAJA,EAAO,KAAK,GAAG,EAAQ,QAAQ,CAAC,EAC3B,EAGE,EAFI,EAAO,KAAK,CAAC,EAAG,KAAO,CAAC,EAAG,CAAC,CAAC,CAG5C,CACA,KAAK,EAAK,CACN,GAAM,CAAE,WAAY,KACpB,EAAI,KAAK,EACT,EAAI,UAAU,EACd,IAAM,EAAS,KAAK,iBAAiB,EACrC,EAAI,OAAO,EAAO,GAAG,GAAI,EAAO,GAAG,EAAE,EACrC,IAAK,IAAM,KAAK,EAAO,MAAM,CAAC,EAC1B,EAAI,OAAO,EAAE,GAAI,EAAE,EAAE,EAErB,EAAQ,kBACR,EAAI,UAAY,EAAQ,gBACxB,EAAI,KAAK,GAET,EAAQ,cACR,EAAI,YAAc,EAAQ,YAC1B,EAAI,UAAY,EAAQ,YACxB,EAAI,OAAO,GAEf,EAAI,QAAQ,CAChB,CACJ,EACA,GAAiB,GAAK,YACtB,GAAiB,SAAW,CACxB,GAAG,GAAW,SACd,aAAc,MACd,eAAgB,CACpB,EACA,GAAiB,cAAgB,GAAW,cAE5C,SAAS,IAAqC,EAAO,EAAa,UAAW,EAAa,UAAW,CACjG,OAAOU,GAAO,CAAK,EAAE,UAAU,EAAI,GAAM,EAAa,CAC1D,CACA,SAAS,IAAM,EAAG,EAAG,CACjB,OAAOA,GACF,MAAM,OAAO,EAAE,GAAK,EAAI,EAAE,EAC1B,IAAI,CACb,CAEA,SAASC,IAAgB,EAAM,EAAQ,EAAY,EAAW,CAAC,EAAG,EAAS,CAAC,EAAG,CAC3E,GAAS,eAAe,CAAU,EAC9B,MAAM,QAAQ,CAAQ,EACtB,GAAS,YAAY,GAAG,CAAQ,EAGhC,GAAS,YAAY,CAAQ,EAE7B,MAAM,QAAQ,CAAM,EACpB,GAAS,UAAU,GAAG,CAAM,EAG5B,GAAS,UAAU,CAAM,EAE7B,IAAM,EAAI,EAEV,MADA,GAAE,KAAO,EACF,CACX,CAEA,IAAM,GAAN,cAA+B,EAAc,CACzC,UAAU,EAAO,EAAU,CACvB,GAAM,CAAE,OAAQ,MAAM,UAAU,EAAO,CAAQ,EAM/C,MALU,CACN,OAAQ,CAAE,IAAK,CAAC,EAAK,KAAI,EACzB,KAAM,CAAE,IAAK,EAAG,KAAI,EACpB,MAAO,CAAE,IAAK,CAAC,EAAK,IAAK,CAAE,CAC/B,EAAE,KAAK,QAAQ,MAEnB,CACA,OAAO,EAAM,CACT,MAAM,OAAO,CAAI,EAEjB,IAAM,EADO,KAAK,YACK,MAAQ,CAAC,EAChC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IACjC,EAAS,GAAG,MAAQ,KAAK,QAAQ,MACjC,EAAS,GAAG,KAAO,EAAS,EAAI,GAChC,EAAS,GAAG,SAAW,EAAS,EAAI,EAE5C,CACJ,EACA,GAAiB,GAAK,SACtB,GAAiB,SAAW9B,GAAM,CAAC,EAAG,CAClC,GAAc,SACd,CACI,gBAAiB,GAAiB,GAClC,cAAe,EACf,MAAO,SACP,mBAAoB,GACxB,CACJ,CAAC,EACD,GAAiB,UAAYA,GAAM,CAAC,EAAG,CACnC,GAAc,UACd,CACI,QAAS,CACL,OAAQ,CACJ,QAAS,EACb,EACA,OAAQ,CACJ,QAAS,EACb,EACA,WAAY,CACR,OAAQ,QACR,UAAW,SACX,KAAM,CACF,KAAM,EACV,EACA,MAAQ,GAAY,CAChB,IAAM,EAAU,EAAQ,MAAM,eAAe,EAAQ,YAAY,EAAE,KAAK,EAAQ,WAAW,QACtF,gBACL,OAAO,IAAqC,EAAS,GAAM,SAAS,MAAO,SAAS,CACxF,EACA,WAAY,EAAO,IAGR,GADmB,EAAQ,MAAM,KAAK,SAAgD,EAAQ,YAA6C,GAClI,KAAK,EAAQ,KAAK,eAAe,EAAE,EAE3D,CACJ,EACA,OAAQ,CACJ,QAAS,CACL,QAAS,GACT,QAAS,GACT,KAAM,CACF,QAAS,EACb,CACJ,EACA,QAAS,CACL,QAAS,GACT,YAAa,GACb,MAAO,EACP,KAAM,CACF,QAAS,EACb,CACJ,CACJ,EACA,SAAU,CACN,UAAW,CACP,gBAAgB,EAAS,CACrB,IAAM,EAAQ,EAAQ,MAAM,KAAK,SAAS,EAAQ,cAAc,KAAK,OACrE,OAAO,IAAM,EAAQ,UAAW,CAAK,CACzC,CACJ,CACJ,CACJ,CACJ,CAAC,EACD,IAAM,IAAN,cAA0B,EAAM,CAC5B,YAAY,EAAM,EAAQ,CACtB,MAAM,EAAM8B,IAAgB,SAAU,EAAQ,GAAkB,GAAkB,CAAC,GAAe,EAAW,CAAC,CAAC,CACnH,CACJ,EACA,IAAY,GAAK,GAAiB,GCnSlC,IAAM,IAAS,KAAK,KAAK,EAAI,KAAK,EAAE,EACpC,SAAS,IAAS,EAAG,CACjB,OAAO,KAAK,IAAI,IAAO,EAAI,CAAC,EAAI,GACpC,CACA,SAAS,IAAiB,EAAU,EAAK,CACrC,OAAQ,EAAW,GAAQ,EAAM,EACrC,CACA,SAAS,IAAI,EAAK,EAAU,EAAK,CAC7B,IAAI,EAAI,KAAK,KAAK,IAAiB,EAAU,CAAG,CAAC,EAIjD,OAHI,OAAO,GAAQ,WACf,EAAI,KAAK,IAAI,EAAG,EAAM,IAAI,GAEvB,KAAO,EAAa,GAAK,GACpC,CACA,SAAS,IAAI,EAAO,CAChB,IAAM,EAAM,EAAM,MAAM,OAClB,EAAY,IAAI,EAAM,IAAK,EAAM,SAAU,CAAG,EACpD,MAAQ,IAAM,CACV,IAAI,EAAI,EACJ,EAAM,EACV,IAAK,EAAI,EAAG,EAAI,EAAK,IAAK,CACtB,IAAM,EAAI,EAAM,MAAM,GACtB,GAAO,KAAU,EAAI,GAAK,CAAS,CACvC,CACA,OAAO,EAAM,EAAY,CAC7B,CACJ,CAEA,SAAS,GAAqB,EAAK,EAAQ,EAAa,CACpD,IAAM,EAAK,EAAS,EACd,EAAW,GAAM,CACnB,IAAM,EAAQ,EAAI,EACZ,EAAK,KAAK,MAAM,CAAK,EACrB,EAAI,EAAQ,EACZ,EAAI,EAAI,GACd,OAAO,IAAM,EAAI,EAAI,EAAY,EAAG,EAAI,KAAK,IAAI,EAAK,EAAG,CAAE,GAAI,CAAC,CACpE,EACA,MAAO,CACH,GAAI,EAAQ,GAAI,EAChB,OAAQ,EAAQ,EAAG,EACnB,GAAI,EAAQ,GAAI,CACpB,CACJ,CACA,SAAS,GAAe,EAAK,EAAS,EAAI,OAAQ,CAC9C,OAAO,GAAqB,EAAK,GAAS,EAAG,EAAG,IAAU,EAAI,GAAS,EAAI,EAAE,CACjF,CACA,SAAS,IAAgB,EAAK,EAAS,EAAI,OAAQ,CAC/C,OAAO,GAAqB,EAAK,GAAS,EAAG,EAAG,IAAa,GAAK,EAAI,GAAK,CAAQ,CACvF,CACA,SAAS,IAAe,EAAK,EAAS,EAAI,OAAQ,CAC9C,OAAO,GAAqB,EAAK,EAAS,GAAM,CAAC,CACrD,CACA,SAAS,IAAgB,EAAK,EAAS,EAAI,OAAQ,CAC/C,OAAO,GAAqB,EAAK,GAAS,EAAG,IAAM,CAAC,CACxD,CACA,SAAS,IAAiB,EAAK,EAAS,EAAI,OAAQ,CAChD,OAAO,GAAqB,EAAK,GAAS,EAAG,EAAG,IAAc,EAAW,GAAM,EAAI,CAAE,CACzF,CACA,SAAS,IAAkB,EAAK,EAAS,EAAI,OAAQ,CACjD,OAAO,GAAqB,EAAK,GAAS,EAAG,KAAO,EAAI,GAAK,EAAG,CACpE,CACA,SAAS,GAAiB,EAAK,EAAS,EAAI,OAAQ,CAChD,IAAM,EAAI,EACJ,EAAK,KAAK,OAAO,EAAI,GAAK,CAAC,EAAI,EAC/B,EAAW,GAAM,IAAO,EAAI,KAAK,MAAM,CAAC,EAAI,GAAK,EAAI,KAAK,KAAK,CAAC,EAAI,IAC1E,MAAO,CACH,GAAI,EAAQ,CAAE,EACd,OAAQ,GAAS,EAAI,GAAK,CAAC,EAC3B,GAAI,EAAQ,EAAI,EAAI,CAAE,CAC1B,CACJ,CACA,SAAS,IAAgB,EAAK,EAAS,EAAI,OAAQ,CAC/C,OAAO,GAAiB,EAAK,CAAM,CACvC,CAEA,SAAS,IAAiB,EAAM,CAC5B,IAAI,EAAQ,EACN,CAAE,UAAW,EACb,EAAK,aAAgB,aAAe,IAAI,aAAa,CAAM,EAAI,IAAI,aAAa,CAAM,EAC5F,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,GAAK,EAAG,CAChC,IAAM,EAAI,EAAK,GACX,GAAK,MAAQ,OAAO,MAAM,CAAC,IAG/B,EAAG,GAAS,EACZ,GAAS,EACb,CACA,IAAM,EAAU,EAAS,EACzB,GAAI,IAAU,EACV,MAAO,CACH,IAAK,IACL,IAAK,IACL,UACA,EAAG,CAAC,CACR,EAEJ,IAAM,EAAY,IAAU,EAAS,EAAK,EAAG,SAAS,EAAG,CAAK,EAI9D,OAHA,EAAU,MAAM,EAAG,IAAO,IAAM,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAGhD,CACH,IAHQ,EAAU,GAIlB,IAHQ,EAAU,EAAU,OAAS,GAIrC,UACA,EAAG,CACP,CACJ,CACA,SAAS,IAAe,EAAM,CAW1B,OAVI,EAAK,SAAW,EACT,CACH,IAAK,IACL,IAAK,IACL,QAAS,EACT,EAAG,CAAC,CACR,EAIG,CACH,IAHQ,EAAK,GAIb,IAHQ,EAAK,EAAK,OAAS,GAI3B,QAAS,EACT,EAAG,CACP,CACJ,CACA,SAAS,IAAgB,EAAG,EAAO,EAAK,EAAK,CAAE,MAAK,YAAW,OAAM,gBAAgB,CACjF,IAAM,GAAQ,EAAG,IAAM,KAAK,IAAI,EAAI,CAAC,EAAI,EACnC,CAAE,SAAQ,KAAI,MAAO,EAAU,EAAG,CAAK,EACvC,EAAM,EAAK,EACX,EAAc,OAAO,GAAS,UAAY,EAAO,EACnD,EAAa,EAAc,KAAK,IAAI,EAAK,EAAK,EAAO,CAAG,EAAI,EAC5D,EAAc,EAAc,KAAK,IAAI,EAAK,EAAK,EAAO,CAAG,EAAI,EAC3D,EAAa,CAAC,EACpB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CAC/B,IAAM,EAAI,EAAE,GACZ,GAAI,GAAK,GAAc,EAAK,EAAG,CAAU,EAAG,CACpC,IAAiB,YACjB,EAAa,GAEjB,KACJ,EACI,EAAW,SAAW,GAAK,CAAC,EAAK,EAAW,EAAW,OAAS,GAAI,CAAC,IACrE,EAAW,KAAK,CAAC,CAEzB,CACA,IAAM,EAAsB,CAAC,EAC7B,IAAK,IAAI,EAAI,EAAQ,EAAG,GAAK,EAAG,IAAQ,CACpC,IAAM,EAAI,EAAE,GACZ,GAAI,GAAK,GAAe,EAAK,EAAG,CAAW,EAAG,CACtC,IAAiB,YACjB,EAAc,GAElB,KACJ,EACK,EAAoB,SAAW,GAAK,CAAC,EAAK,EAAoB,EAAoB,OAAS,GAAI,CAAC,KAChG,EAAW,SAAW,GAAK,CAAC,EAAK,EAAW,EAAW,OAAS,GAAI,CAAC,IACtE,EAAoB,KAAK,CAAC,CAElC,CAEA,MAAO,CACH,SACA,KACA,KACA,MACA,QANY,EAAW,OAAO,EAAoB,QAAQ,CAMpD,EACN,cACA,YACJ,CACJ,CACA,SAAS,IAAa,EAAG,EAAO,CAC5B,IAAI,EAAO,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC5B,IAAM,EAAI,EAAE,GACZ,GAAQ,CACZ,CACA,GAAQ,EACR,IAAI,EAAW,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC5B,IAAM,EAAI,EAAE,GACZ,IAAa,EAAI,IAAS,EAAI,EAClC,CAEA,MADA,IAAY,EACL,CACH,OACA,UACJ,CACJ,CACA,SAAS,GAAQ,EAAM,EAAU,CAAC,EAAG,CACjC,IAAM,EAAc,CAChB,KAAM,IACN,IAAK,IACL,UAAW,GACX,eAAgB,GAChB,aAAc,UACd,GAAG,CACP,EACM,CAAE,UAAS,IAAG,MAAK,OAAQ,EAAY,eAAiB,IAAe,CAAI,EAAI,IAAiB,CAAI,EACpG,EAAU,CACZ,IAAK,IACL,IAAK,IACL,KAAM,IACN,UACA,IAAK,IACL,MAAO,EAAK,OACZ,YAAa,IACb,WAAY,IACZ,QAAS,CAAC,EACV,OAAQ,IACR,GAAI,IACJ,GAAI,IACJ,SAAU,EACV,MAAO,CAAC,EACR,QAAW,CACf,EACM,EAAQ,EAAK,OAAS,EAC5B,GAAI,IAAU,EACV,OAAO,EAEX,IAAM,EAAS,CACX,MACA,MACA,MAAO,EAAK,OACZ,UACA,MAAO,EACP,GAAG,IAAa,EAAG,CAAK,EACxB,GAAG,IAAgB,EAAG,EAAO,EAAK,EAAK,CAAW,CACtD,EACA,MAAO,CACH,GAAG,EACH,IAAK,IAAI,CAAM,CACnB,CACJ,CCpOA,SAAS,IAAS,EAAS,EAAK,EAAO,IAAK,CACxC,IAAM,EAAM,EAAQ,GAAK,EAAQ,GAC3B,EAAY,OAAO,GAAS,UAAY,EAAO,EACjD,EAAa,EAAY,KAAK,IAAI,EAAQ,IAAK,EAAQ,GAAK,EAAO,CAAG,EAAI,EAAQ,IAClF,EAAa,EAAY,KAAK,IAAI,EAAQ,IAAK,EAAQ,GAAK,EAAO,CAAG,EAAI,EAAQ,IACtF,GAAI,MAAM,QAAQ,CAAG,EAAG,CACpB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,GAAK,EAAG,CACpC,IAAM,EAAI,EAAI,GACd,GAAI,GAAK,EAAY,CACjB,EAAa,EACb,KACJ,CACJ,CACA,IAAK,IAAI,EAAI,EAAI,OAAS,EAAG,GAAK,EAAG,IAAQ,CACzC,IAAM,EAAI,EAAI,GACd,GAAI,GAAK,EAAY,CACjB,EAAa,EACb,KACJ,CACJ,CACJ,CACA,MAAO,CACH,aACA,YACJ,CACJ,CACA,IAAM,GAAsB,CACxB,KAAM,IACN,UAAW,EACX,aAAc,SAClB,EACA,SAAS,IAAmB,EAAG,CAe3B,OAdI,OAAO,GAAM,WACN,EAaJ,CAVH,OAAQ,IACR,QAAS,GACT,EAAG,GACH,UAAW,GACX,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,QAAS,IACT,SAAU,GAEF,EAAE,IAAM,EACxB,CACA,SAAS,GAAsB,EAAS,CAOpC,MAAO,CACH,KAPS,GAAW,MAAQ,OAAO,EAAQ,MAAS,SAAW,GAAoB,KAAO,EAAQ,KAQlG,UANc,IADR,GAAW,MAAQ,EAAQ,WAAa,KAAO,GAAiB,EAAQ,SAOtE,EACR,aANiB,GAAW,MAAQ,OAAO,EAAQ,cAAiB,SAClE,GAAoB,aACpB,EAAQ,YAKd,CACJ,CACA,SAAS,IAAa,EAAK,EAAS,CAIhC,IAAM,EAAI,GAHC,OAAO,aAAiB,KAAe,EAAE,aAAe,cAAgB,aAAe,cAC5F,aAAa,KAAK,CAAG,EACrB,EACgB,GAAsB,CAAO,CAAC,EACpD,MAAO,CACH,MAAO,MAAM,KAAK,EAAE,KAAK,EACzB,SAAU,EAAE,QACZ,WAAY,EAAE,YACd,WAAY,EAAE,WACd,IAAK,EAAE,IACP,OAAQ,EAAE,OACV,KAAM,EAAE,KACR,IAAK,EAAE,IACP,GAAI,EAAE,GACN,GAAI,EAAE,EACV,CACJ,CACA,SAAS,IAAe,EAAK,EAAK,EAAQ,CACtC,IAAM,EAAQ,EAAM,EACd,EAAU,CAAC,EACX,EAAM,EAAQ,EACpB,IAAK,IAAI,EAAI,EAAK,GAAK,GAAO,EAAM,EAAG,GAAK,EACxC,EAAQ,KAAK,CAAC,EAKlB,OAHI,EAAQ,EAAQ,OAAS,KAAO,GAChC,EAAQ,KAAK,CAAG,EAEb,CACX,CACA,SAAS,IAAY,EAAK,EAAS,CAC/B,GAAI,EAAI,SAAW,EACf,OAKJ,IAAM,EAAQ,GAHH,OAAO,aAAiB,KAAe,EAAE,aAAe,cAAgB,aAAe,cAC5F,aAAa,KAAK,CAAG,EACrB,EACoB,GAAsB,CAAO,CAAC,EAElD,EADU,IAAe,EAAM,IAAK,EAAM,IAAK,EAAQ,MACxC,EAAE,IAAK,IAAO,CAAE,IAAG,SAAU,EAAM,IAAI,CAAC,CAAE,EAAE,EAC3D,EAAc,EAAO,QAAQ,EAAG,IAAM,KAAK,IAAI,EAAG,EAAE,QAAQ,EAAG,IAAwB,EAC7F,MAAO,CACH,IAAK,EAAM,IACX,IAAK,EAAM,IACX,KAAM,EAAM,KACZ,OAAQ,EAAM,OACd,GAAI,EAAM,GACV,GAAI,EAAM,GACV,MAAO,MAAM,KAAK,EAAM,KAAK,EAC7B,SACA,SAAU,CAAC,EACX,aACJ,CACJ,CACA,SAAS,IAAe,EAAO,EAAS,CAC/B,KAGL,IAAI,OAAO,EAAM,QAAW,UAAY,OAAO,EAAM,IAAO,UAAY,OAAO,EAAM,IAAO,SAAU,CAClG,GAAW,EAAM,aAAe,OAAa,CACzC,GAAM,CAAE,QAAS,GAAsB,CAAO,EACxC,CAAE,aAAY,cAAe,IAAS,EAAO,MAAM,QAAQ,EAAM,KAAK,EAAI,EAAM,MAAM,MAAM,EAAE,MAAM,EAAG,IAAM,EAAI,CAAC,EAAI,KAAM,CAAI,EACtI,EAAM,WAAa,EACnB,EAAM,WAAa,CACvB,CACA,OAAO,CACX,CACK,SAAM,QAAQ,CAAK,EAGxB,OAAO,IAAa,EAAO,CAAO,CAJlC,CAKJ,CACA,SAAS,IAAc,EAAO,EAAS,CAC9B,KAGL,IAAI,OAAO,EAAM,QAAW,UAAY,MAAM,QAAQ,EAAM,MAAM,EAC9D,OAAO,EAEN,SAAM,QAAQ,CAAK,EAGxB,OAAO,IAAY,EAAO,CAAO,CALtB,CAMf,CACA,SAAS,GAAI,EAAO,KAAK,IAAI,EAAG,CAC5B,IAAI,EAAI,EACR,WACI,GAAK,EAAI,KAAO,OAAS,OAClB,EAAI,OAEnB,CAEA,IAAM,GAAiB,CACnB,YAAa,EACb,aAAc,SACd,cAAe,EACf,mBAAoB,EACpB,UAAW,SACX,WAAY,EACZ,gBAAiB,EACjB,cAAe,EACf,UAAW,SACX,WAAY,EACZ,gBAAiB,EACjB,WAAY,EACZ,iBAAkB,CACtB,EACM,GAAa,CACf,uBAAwB,kBACxB,mBAAoB,cACpB,oBAAqB,kBACrB,gBAAiB,cACjB,oBAAqB,kBACrB,gBAAiB,aACrB,EACM,GAAwB,OAAO,KAAK,EAAc,EAAE,OAAO,OAAO,KAAK,EAAU,CAAC,EACpF,GAAc,cAAwBxB,EAAQ,CAC9C,YAAa,CACT,MAAO,CAAC,KAAK,UACjB,CACA,WAAW,EAAK,CACZ,IAAM,EAAO,KAAK,WAAW,EACvB,EAAQ,KAAK,SAAS,CAAC,IAAK,IAAK,QAAS,QAAS,SAAU,UAAU,CAAC,EACxE,CAAE,WAAY,KACpB,GAAI,EAAQ,YAAc,GAAK,CAAC,EAAM,OAAS,EAAM,MAAM,QAAU,EACjE,OAEJ,EAAI,KAAK,EACT,EAAI,YAAc,EAAQ,gBAC1B,EAAI,UAAY,EAAQ,oBACxB,EAAI,UAAY,EAAQ,gBACxB,IAAM,EAAS,GAAI,KAAK,cAAgB,IAAO,KAAK,MAAM,EACpD,EAAe,CACjB,WAAY,EAAQ,UACpB,OAAQ,EAAQ,WAChB,YAAa,EAAQ,eACzB,EACM,EAAW,IAAI,IAAI,EAAM,UAAY,CAAC,CAAC,EACzC,EACA,EAAM,MAAM,QAAS,GAAM,CAClB,EAAS,IAAI,CAAC,GACf,GAAU,EAAK,EAAc,EAAM,EAAI,EAAM,MAAQ,EAAI,EAAO,EAAI,EAAM,MAAO,CAAC,CAE1F,CAAC,EAGD,EAAM,MAAM,QAAS,GAAM,CAClB,EAAS,IAAI,CAAC,GACf,GAAU,EAAK,EAAc,EAAG,EAAM,EAAI,EAAM,OAAS,EAAI,EAAO,EAAI,EAAM,MAAM,CAE5F,CAAC,EAEL,EAAI,QAAQ,CAChB,CACA,cAAc,EAAK,CACf,IAAM,EAAO,KAAK,WAAW,EACvB,EAAQ,KAAK,SAAS,CAAC,IAAK,IAAK,UAAU,CAAC,EAC5C,CAAE,WAAY,KACpB,GAAI,EAAQ,eAAiB,GAAK,CAAC,EAAM,UAAY,EAAM,SAAS,SAAW,EAC3E,OAEJ,EAAI,KAAK,EACT,EAAI,UAAY,EAAQ,uBACxB,EAAI,YAAc,EAAQ,mBAC1B,EAAI,UAAY,EAAQ,mBACxB,IAAM,EAAe,CACjB,WAAY,EAAQ,aACpB,OAAQ,EAAQ,cAChB,YAAa,EAAQ,kBACzB,EACI,EACA,EAAM,SAAS,QAAS,GAAM,CAC1B,GAAU,EAAK,EAAc,EAAM,EAAG,CAAC,CAC3C,CAAC,EAGD,EAAM,SAAS,QAAS,GAAM,CAC1B,GAAU,EAAK,EAAc,EAAG,EAAM,CAAC,CAC3C,CAAC,EAEL,EAAI,QAAQ,CAChB,CACA,aAAa,EAAK,CACd,IAAM,EAAO,KAAK,WAAW,EACvB,EAAQ,KAAK,SAAS,CAAC,IAAK,IAAK,MAAM,CAAC,EACxC,CAAE,WAAY,KACpB,GAAI,EAAQ,YAAc,GAAK,EAAM,MAAQ,MAAQ,OAAO,MAAM,EAAM,IAAI,EACxE,OAEJ,EAAI,KAAK,EACT,EAAI,UAAY,EAAQ,oBACxB,EAAI,YAAc,EAAQ,gBAC1B,EAAI,UAAY,EAAQ,gBACxB,IAAM,EAAe,CACjB,WAAY,EAAQ,UACpB,OAAQ,EAAQ,WAChB,YAAa,EAAQ,eACzB,EACI,EACA,GAAU,EAAK,EAAc,EAAM,EAAG,EAAM,IAAI,EAGhD,GAAU,EAAK,EAAc,EAAM,KAAM,EAAM,CAAC,EAEpD,EAAI,QAAQ,CAChB,CACA,WAAW,EAAmB,CAC1B,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,CACZ,CACJ,CACA,cAAc,EAAkB,CAC5B,IAAM,EAAU,KAAK,QAAQ,WACvB,EAAI,KAAK,WAAW,CAAgB,EAC1C,MAAO,CACH,KAAM,EAAE,KAAO,EACf,IAAK,EAAE,IAAM,EACb,MAAO,EAAE,MAAQ,EACjB,OAAQ,EAAE,OAAS,CACvB,CACJ,CACA,QAAQ,EAAQ,EAAQ,EAAkB,CAItC,OAHI,OAAO,MAAM,KAAK,CAAC,GAAK,OAAO,MAAM,KAAK,CAAC,EACpC,GAEH,KAAK,YAAY,EAAQ,EAAQ,CAAgB,GACrD,KAAK,qBAAqB,EAAQ,EAAQ,CAAgB,GAAK,MAC/D,KAAK,kBAAkB,EAAQ,EAAQ,CAAgB,GAAK,IACpE,CACA,SAAS,EAAQ,EAAkB,CAC/B,IAAM,EAAS,KAAK,cAAc,CAAgB,EAClD,OAAO,GAAU,EAAO,MAAQ,GAAU,EAAO,KACrD,CACA,SAAS,EAAQ,EAAkB,CAC/B,IAAM,EAAS,KAAK,cAAc,CAAgB,EAClD,OAAO,GAAU,EAAO,KAAO,GAAU,EAAO,MACpD,CACA,qBAAqB,EAAQ,EAAQ,EAAkB,CACnD,IAAM,EAAQ,KAAK,SAAS,CAAC,IAAK,GAAG,EAAG,CAAgB,EAClD,EAAY,KAAK,QAAQ,iBACzB,EAAW,KAAK,aAAa,CAAgB,EAC7C,EAAW,KAAK,WAAW,EACjC,GAAK,GAAY,KAAK,IAAI,EAAS,EAAM,CAAC,EAAI,GAAe,CAAC,GAAY,KAAK,IAAI,EAAS,EAAM,CAAC,EAAI,EACnG,OAAO,KAEX,IAAM,EAAY,EAAW,EAAS,EACtC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,GAAK,EACtC,GAAI,KAAK,IAAI,EAAS,GAAK,CAAS,GAAK,EACrC,OAAO,EAAW,CAAE,MAAO,EAAG,EAAG,EAAM,EAAG,EAAG,EAAS,EAAG,EAAI,CAAE,MAAO,EAAG,EAAG,EAAS,GAAI,EAAG,EAAM,CAAE,EAG5G,OAAO,IACX,CACA,kBAAkB,EAAQ,EAAQ,EAAkB,CAChD,IAAM,EAAY,KAAK,QAAQ,cAC/B,GAAI,GAAa,EACb,OAAO,KAEX,IAAM,EAAQ,KAAK,SAAS,CAAC,IAAK,IAAK,QAAS,QAAS,SAAU,UAAU,EAAG,CAAgB,EAC1F,EAAO,KAAK,WAAW,EACvB,CAAE,WAAY,KACpB,GAAI,EAAQ,YAAc,GAAK,CAAC,EAAM,OAAS,EAAM,MAAM,QAAU,EACjE,OAAO,KAEX,IAAM,EAAS,GAAI,KAAK,cAAgB,IAAO,KAAK,MAAM,EACpD,EAAW,IAAI,IAAI,EAAM,UAAY,CAAC,CAAC,EAC7C,GAAI,EACA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,MAAM,OAAQ,IAAK,CACzC,IAAM,EAAI,EAAM,MAAM,GACtB,GAAI,CAAC,EAAS,IAAI,CAAC,EAAG,CAClB,IAAM,EAAI,EAAM,EAAI,EAAM,MAAQ,EAAI,EAAO,EAAI,EAAM,MACvD,GAAI,KAAK,IAAI,EAAI,CAAM,GAAK,GAAa,KAAK,IAAI,EAAI,CAAM,GAAK,EAC7D,MAAO,CAAE,MAAO,EAAG,IAAG,GAAE,CAEhC,CACJ,MAGA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,MAAM,OAAQ,IAAK,CACzC,IAAM,EAAI,EAAM,MAAM,GACtB,GAAI,CAAC,EAAS,IAAI,CAAC,EAAG,CAClB,IAAM,EAAI,EAAM,EAAI,EAAM,OAAS,EAAI,EAAO,EAAI,EAAM,OACxD,GAAI,KAAK,IAAI,EAAI,CAAM,GAAK,GAAa,KAAK,IAAI,EAAI,CAAM,GAAK,EAC7D,MAAO,CAAE,MAAO,EAAG,IAAG,GAAE,CAEhC,CACJ,CAEJ,OAAO,IACX,CACA,YAAY,EAAQ,EAAQ,EAAkB,CAC1C,IAAM,EAAS,KAAK,cAAc,CAAgB,EAClD,OAAO,GAAU,EAAO,MAAQ,GAAU,EAAO,OAAS,GAAU,EAAO,KAAO,GAAU,EAAO,MACvG,CACA,eAAe,EAAkB,CAC7B,IAAM,EAAQ,KAAK,SAAS,CAAC,IAAK,GAAG,EAAG,CAAgB,EACxD,MAAO,CACH,EAAG,EAAM,EACT,EAAG,EAAM,CACb,CACJ,CACA,aAAa,EAAkB,CAE3B,OADc,KAAK,SAAS,CAAC,UAAU,EAAG,CAC/B,EAAE,UAAY,CAAC,CAC9B,CACA,gBAAgB,EAAe,EAAS,CACpC,GAAI,CAAC,GAAiB,OAAO,GAAkB,UAC3C,OAAO,KAAK,eAAe,EAE3B,IACA,OAAO,EAAQ,gBACf,OAAO,EAAQ,cAEnB,IAAM,EAAO,KAAK,qBAAqB,EAAc,EAAG,EAAc,CAAC,EACvE,GAAI,GAAQ,MAAQ,EAKhB,MAJA,GAAQ,gBAAkB,CACtB,MAAO,EAAK,MACZ,aAAc,KAAK,aACvB,EACO,CACH,EAAG,EAAK,EACR,EAAG,EAAK,CACZ,EAEJ,IAAM,EAAW,KAAK,kBAAkB,EAAc,EAAG,EAAc,CAAC,EAWxE,OAVI,GAAY,MAAQ,GACpB,EAAQ,aAAe,CACnB,MAAO,EAAS,MAChB,aAAc,KAAK,aACvB,EACO,CACH,EAAG,EAAS,EACZ,EAAG,EAAS,CAChB,GAEG,KAAK,eAAe,CAC/B,CACJ,EAEM,GAAiB,GAAe,OAAO,CAAC,cAAe,sBAAsB,CAAC,EAC9E,GAAN,cAA4B,EAAY,CACpC,KAAK,EAAK,CACN,EAAI,KAAK,EACT,EAAI,UAAY,KAAK,QAAQ,gBAC7B,EAAI,YAAc,KAAK,QAAQ,YAC/B,EAAI,UAAY,KAAK,QAAQ,YAC7B,KAAK,aAAa,CAAG,EACrB,KAAK,cAAc,CAAG,EACtB,KAAK,aAAa,CAAG,EACrB,EAAI,QAAQ,EACZ,KAAK,WAAW,CAAG,CACvB,CACA,aAAa,EAAK,CACV,KAAK,WAAW,EAChB,KAAK,qBAAqB,CAAG,EAG7B,KAAK,uBAAuB,CAAG,CAEvC,CACA,qBAAqB,EAAK,CACtB,GAAM,CAAE,WAAY,KACd,EAAQ,KAAK,SAAS,CAAC,IAAK,QAAS,KAAM,KAAM,SAAU,aAAc,YAAY,CAAC,EACtF,CAAE,KAAM,EACR,CAAE,SAAU,EACZ,EAAK,EAAI,EAAQ,EACnB,EAAM,GAAK,EAAM,GACjB,EAAI,SAAS,EAAI,EAAM,GAAI,EAAO,EAAM,GAAK,EAAM,EAAE,EAGrD,EAAI,SAAS,EAAI,EAAM,GAAI,EAAO,EAAM,GAAK,EAAM,EAAE,EAEzD,EAAI,KAAK,EACL,EAAQ,aAAe,EAAQ,cAAgB,eAAiB,EAAQ,cAAgB,UACxF,EAAI,YAAc,EAAQ,aAE9B,EAAI,UAAU,EACd,EAAI,OAAO,EAAI,EAAM,MAAM,EAC3B,EAAI,OAAO,EAAK,EAAO,EAAM,MAAM,EACnC,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,QAAQ,EACZ,EAAI,KAAK,EACL,EAAQ,sBACR,EAAQ,uBAAyB,eACjC,EAAQ,uBAAyB,UACjC,EAAI,UAAY,EAAQ,qBACpB,EAAM,GAAK,EAAM,GACjB,EAAI,SAAS,EAAI,EAAM,OAAQ,EAAO,EAAM,GAAK,EAAM,MAAM,EAG7D,EAAI,SAAS,EAAI,EAAM,OAAQ,EAAO,EAAM,GAAK,EAAM,MAAM,GAGrE,EAAI,QAAQ,EACR,EAAM,GAAK,EAAM,GACjB,EAAI,WAAW,EAAI,EAAM,GAAI,EAAO,EAAM,GAAK,EAAM,EAAE,EAGvD,EAAI,WAAW,EAAI,EAAM,GAAI,EAAO,EAAM,GAAK,EAAM,EAAE,EAE3D,EAAI,UAAU,EACd,EAAI,OAAO,EAAI,EAAM,UAAU,EAC/B,EAAI,OAAO,EAAK,EAAO,EAAM,UAAU,EACvC,EAAI,OAAO,EAAG,EAAM,UAAU,EAC9B,EAAI,OAAO,EAAG,EAAM,EAAE,EACtB,EAAI,OAAO,EAAI,EAAM,UAAU,EAC/B,EAAI,OAAO,EAAK,EAAO,EAAM,UAAU,EACvC,EAAI,OAAO,EAAG,EAAM,UAAU,EAC9B,EAAI,OAAO,EAAG,EAAM,EAAE,EACtB,EAAI,UAAU,EACd,EAAI,OAAO,CACf,CACA,uBAAuB,EAAK,CACxB,GAAM,CAAE,WAAY,KACd,EAAQ,KAAK,SAAS,CAAC,IAAK,SAAU,KAAM,KAAM,SAAU,aAAc,YAAY,CAAC,EACvF,CAAE,KAAM,EACR,CAAE,UAAW,EACb,EAAK,EAAI,EAAS,EACpB,EAAM,GAAK,EAAM,GACjB,EAAI,SAAS,EAAM,GAAI,EAAI,EAAM,GAAK,EAAM,GAAI,CAAM,EAGtD,EAAI,SAAS,EAAM,GAAI,EAAI,EAAM,GAAK,EAAM,GAAI,CAAM,EAE1D,EAAI,KAAK,EACL,EAAQ,aAAe,EAAQ,cAAgB,gBAC/C,EAAI,YAAc,EAAQ,aAE9B,EAAI,UAAU,EACd,EAAI,OAAO,EAAM,OAAQ,CAAE,EAC3B,EAAI,OAAO,EAAM,OAAQ,EAAK,CAAM,EACpC,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,QAAQ,EACZ,EAAI,KAAK,EACL,EAAQ,sBAAwB,EAAQ,uBAAyB,gBACjE,EAAI,UAAY,EAAQ,qBACpB,EAAM,GAAK,EAAM,GACjB,EAAI,SAAS,EAAM,OAAQ,EAAI,EAAM,GAAK,EAAM,OAAQ,CAAM,EAG9D,EAAI,SAAS,EAAM,OAAQ,EAAI,EAAM,GAAK,EAAM,OAAQ,CAAM,GAGtE,EAAI,QAAQ,EACR,EAAM,GAAK,EAAM,GACjB,EAAI,WAAW,EAAM,GAAI,EAAI,EAAM,GAAK,EAAM,GAAI,CAAM,EAGxD,EAAI,WAAW,EAAM,GAAI,EAAI,EAAM,GAAK,EAAM,GAAI,CAAM,EAE5D,EAAI,UAAU,EACd,EAAI,OAAO,EAAM,WAAY,CAAE,EAC/B,EAAI,OAAO,EAAM,WAAY,EAAK,CAAM,EACxC,EAAI,OAAO,EAAM,WAAY,CAAC,EAC9B,EAAI,OAAO,EAAM,GAAI,CAAC,EACtB,EAAI,OAAO,EAAM,WAAY,CAAE,EAC/B,EAAI,OAAO,EAAM,WAAY,EAAK,CAAM,EACxC,EAAI,OAAO,EAAM,WAAY,CAAC,EAC9B,EAAI,OAAO,EAAM,GAAI,CAAC,EACtB,EAAI,UAAU,EACd,EAAI,OAAO,CACf,CACA,WAAW,EAAkB,CACzB,IAAM,EAAO,KAAK,WAAW,EAC7B,GAAI,KAAK,GAAK,KACV,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,CACZ,EAEJ,GAAI,EAAM,CACN,GAAM,CAAE,IAAG,QAAO,aAAY,cAAe,KAAK,SAAS,CAAC,IAAK,QAAS,aAAc,YAAY,EAAG,CAAgB,EACjH,EAAK,EAAI,EAAQ,EACvB,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EAAK,EACZ,OAAQ,CACZ,CACJ,CACA,GAAM,CAAE,IAAG,SAAQ,aAAY,cAAe,KAAK,SAAS,CAAC,IAAK,SAAU,aAAc,YAAY,EAAG,CAAgB,EACnH,EAAK,EAAI,EAAS,EACxB,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,EAAK,CACjB,CACJ,CACJ,EACA,GAAc,GAAK,iBACnB,GAAc,SAAW,CACrB,GAAG,GAAW,SACd,GAAG,GACH,YAAa,cACb,qBAAsB,aAC1B,EACA,GAAc,cAAgB,CAAE,GAAG,GAAW,cAAe,GAAG,EAAW,EAE3E,IAAM,GAAN,cAAqB,EAAY,CAC7B,KAAK,EAAK,CACN,EAAI,KAAK,EACT,EAAI,UAAY,KAAK,QAAQ,gBAC7B,EAAI,YAAc,KAAK,QAAQ,YAC/B,EAAI,UAAY,KAAK,QAAQ,YAC7B,IAAM,EAAQ,KAAK,SAAS,CAAC,IAAK,IAAK,SAAU,QAAS,SAAU,MAAO,MAAO,SAAU,aAAa,CAAC,EACtG,EAAM,QAAU,MAChB,GAAU,EAAK,CACX,WAAY,UACZ,OAAQ,EACR,YAAa,KAAK,QAAQ,WAC9B,EAAG,EAAM,EAAG,EAAM,CAAC,EAEnB,EAAM,QAAU,EAAM,OAAO,OAAS,GACtC,KAAK,YAAY,EAAK,CAAK,EAE/B,KAAK,cAAc,CAAG,EACtB,KAAK,aAAa,CAAG,EACrB,EAAI,QAAQ,EACZ,KAAK,WAAW,CAAG,CACvB,CACA,YAAY,EAAK,EAAO,CACpB,IAAI,EAQJ,GAPA,CAII,CAJA,EAAM,aAAe,KACP,EAAM,OAAO,QAAQ,EAAG,IAAM,KAAK,IAAI,EAAG,EAAE,QAAQ,EAAG,IAAwB,EAG/E,EAAM,YAExB,EAAI,UAAU,EACV,KAAK,WAAW,EAAG,CACnB,GAAM,CAAE,IAAG,SAAU,EACf,EAAS,EAAQ,EAAI,EAC3B,EAAM,OAAO,QAAS,GAAM,CACxB,EAAI,OAAO,EAAI,EAAE,SAAW,EAAQ,EAAE,CAAC,CAC3C,CAAC,EACD,EAAM,OACD,MAAM,EACN,QAAQ,EACR,QAAS,GAAM,CAChB,EAAI,OAAO,EAAI,EAAE,SAAW,EAAQ,EAAE,CAAC,CAC3C,CAAC,CACL,KACK,CACD,GAAM,CAAE,IAAG,UAAW,EAChB,EAAS,EAAS,EAAI,EAC5B,EAAM,OAAO,QAAS,GAAM,CACxB,EAAI,OAAO,EAAE,EAAG,EAAI,EAAE,SAAW,CAAM,CAC3C,CAAC,EACD,EAAM,OACD,MAAM,EACN,QAAQ,EACR,QAAS,GAAM,CAChB,EAAI,OAAO,EAAE,EAAG,EAAI,EAAE,SAAW,CAAM,CAC3C,CAAC,CACL,CACA,EAAI,UAAU,EACd,EAAI,OAAO,EACX,EAAI,KAAK,CACb,CACA,WAAW,EAAkB,CACzB,GAAI,KAAK,WAAW,EAAG,CACnB,GAAM,CAAE,IAAG,QAAO,MAAK,OAAQ,KAAK,SAAS,CAAC,IAAK,QAAS,MAAO,KAAK,EAAG,CAAgB,EACrF,EAAK,EAAI,EAAQ,EACvB,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EAAK,EACZ,OAAQ,CACZ,CACJ,CACA,GAAM,CAAE,IAAG,SAAQ,MAAK,OAAQ,KAAK,SAAS,CAAC,IAAK,SAAU,MAAO,KAAK,EAAG,CAAgB,EACvF,EAAK,EAAI,EAAS,EACxB,MAAO,CACH,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,EAAK,CACjB,CACJ,CACJ,EACA,GAAO,GAAK,SACZ,GAAO,SAAW,CAAE,GAAG,GAAW,SAAU,GAAG,EAAe,EAC9D,GAAO,cAAgB,CAAE,GAAG,GAAW,cAAe,GAAG,EAAW,EAEpE,IAAM,GAAgB,CAClB,OAAO,EAAM,EAAI,EAAQ,CAUrB,OATI,IAAS,GAGT,GAAQ,KACD,EAEP,GAAM,KACC,EAEJ,GAAQ,EAAK,GAAQ,CAChC,CACJ,EACA,SAAS,IAAuB,EAAM,EAAI,EAAQ,CAO9C,OANI,OAAO,GAAS,UAAY,OAAO,GAAO,SACnC,GAAc,OAAO,EAAM,EAAI,CAAM,EAE5C,MAAM,QAAQ,CAAI,GAAK,MAAM,QAAQ,CAAE,EAChC,EAAG,KAAK,EAAG,IAAM,GAAc,OAAO,EAAK,GAAI,EAAG,CAAM,CAAC,EAE7D,CACX,CACA,SAAS,IAAqB,EAAM,EAAI,EAAQ,CAO5C,OANI,MAAM,QAAQ,CAAI,GAAK,MAAM,QAAQ,CAAE,EAChC,EAAG,KAAK,EAAG,KAAO,CACrB,EAAG,GAAc,OAAO,EAAK,GAAK,EAAK,GAAG,EAAI,KAAM,EAAE,EAAG,CAAM,EAC/D,SAAU,GAAc,OAAO,EAAK,GAAK,EAAK,GAAG,SAAW,KAAM,EAAE,SAAU,CAAM,CACxF,EAAE,EAEC,CACX,CAEA,SAAS,IAAsB,EAAM,CACjC,IAAM,EAAQ,EAAK,eACb,EAAO,KACT,GAAS,EAAK,iBAAmB,MAAQ,EAAK,eAAiB,EAAK,gBAAgB,eACpF,EAAM,oBAAsB,EAAK,gBAAgB,OAEjD,GAAS,EAAK,cAAgB,MAAQ,EAAK,eAAiB,EAAK,aAAa,eAC9E,EAAM,iBAAmB,EAAK,aAAa,MAEnD,CACA,SAAS,GAAkB,EAAO,EAAe,CAC7C,GAAI,CAAC,EAAM,OACP,MAAO,GAEX,IAAI,EAAI,EACJ,EAAI,EACJ,EAAQ,EACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EAAG,CACtC,IAAM,EAAK,EAAM,GAAG,QACpB,GAAI,GAAM,EAAG,SAAS,EAAG,CACrB,IAAM,EAAM,EAAG,gBAAgB,EAAe,IAAI,EAClD,GAAK,EAAI,EACT,GAAK,EAAI,EACT,GAAS,CACb,CACJ,CACA,MAAO,CACH,EAAG,EAAI,EACP,EAAG,EAAI,CACX,CACJ,CACA,GAAkB,GAAK,UACvB,GAAkB,cACd,GAAQ,YAAY,QAAU,GACvB,IAGX,SAAS,GAAa,EAAM,CACxB,IAAM,EAAY,CAAC,cAAe,iBAAiB,EAAE,OAAO,EAAK,OAAQ,GAAM,EAAE,SAAS,OAAO,CAAC,CAAC,EACnG,MAAO,CACH,WAAY,CACR,YAAa,CACT,GAAI,IACJ,WAAY,CAAC,WAAY,OAAO,CACpC,EACA,OAAQ,CACJ,KAAM,QACN,WAAY,CAChB,CACJ,EACA,YAAa,CACT,KAAM,CACF,WAAY,CACR,OAAQ,CACJ,KAAM,QACN,WAAY,EACZ,KAAM,aACV,CACJ,CACJ,EACA,KAAM,CACF,WAAY,CACR,OAAQ,CACJ,KAAM,QACN,WAAY,EACZ,GAAI,aACR,CACJ,CACJ,CACJ,EACA,SAAU,MACV,SAAU,MACV,GAAG,EACP,CACJ,CACA,SAAS,IAAmB,CACxB,MAAO,CACH,QAAS,CACL,QAAS,CACL,SAAU,GAAkB,SAAS,EAAE,GACvC,UAAW,CACP,YAAa,GACjB,CACJ,CACJ,CACJ,CACJ,CACA,IAAM,GAAN,cAAwB,EAAc,CAClC,gBAAgB,EAAQ,EAAQ,EAAQ,CACpC,IAAK,IAAM,IAAO,CAAC,MAAO,MAAO,SAAU,KAAM,KAAM,MAAM,EAAG,CAC5D,IAAM,EAAI,EAAO,GACb,OAAO,GAAM,WACb,EAAO,GAAO,EAAO,CAAC,EAE9B,CACA,IAAK,IAAM,IAAO,CAAC,WAAY,OAAO,EAC9B,MAAM,QAAQ,EAAO,EAAI,IACzB,EAAO,GAAO,EAAO,GAAK,IAAI,CAAM,EAGhD,CACA,UAAU,EAAO,EAAU,CACvB,IAAM,EAAM,EAAM,KACZ,EAAS,KAAK,QACpB,EAAM,KAAO,EAAO,SACpB,GAAM,CAAE,OAAQ,MAAM,UAAU,EAAO,CAAQ,EAC/C,EAAM,KAAO,EAAO,SACpB,GAAM,CAAE,OAAQ,MAAM,UAAU,EAAO,CAAQ,EAE/C,MADA,GAAM,KAAO,EACN,CAAE,MAAK,KAAI,CACtB,CACA,mBAAmB,EAAM,EAAM,EAAO,EAAO,CACzC,IAAM,EAAS,EAAK,OACd,EAAS,EAAK,OACd,EAAS,EAAO,UAAU,EAC1B,EAAI,CAAC,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,GAAK,EAAG,CAC/B,IAAM,EAAQ,EAAI,EACZ,EAAS,CAAC,EAChB,EAAO,EAAO,MAAQ,EAAO,MAAM,EAAO,GAAQ,CAAK,EACvD,IAAM,EAAQ,KAAK,YAAY,GAAQ,KAAO,KAAO,EAAK,GAAQ,KAAK,OAAO,EAC1E,IACA,OAAO,OAAO,EAAQ,CAAK,EAC3B,EAAO,EAAO,MAAQ,EAAM,QAEhC,EAAE,KAAK,CAAM,CACjB,CACA,OAAO,CACX,CACA,eAAe,EAAM,EAAM,EAAO,EAAO,CACrC,OAAO,KAAK,mBAAmB,EAAM,EAAM,EAAO,CAAK,CAC3D,CACA,gBAAgB,EAAM,EAAM,EAAO,EAAO,CACtC,OAAO,KAAK,mBAAmB,EAAM,EAAM,EAAO,CAAK,CAC3D,CACA,iBAAiB,EAAO,CACpB,IAAM,EAAI,MAAM,iBAAiB,CAAK,EAChC,CAAE,UAAW,KAAK,YAClB,EAAS,KAAK,UAAU,CAAK,EACnC,GAAI,CAAC,GAAU,CAAC,GAAU,EAAE,QAAU,MAClC,OAAO,EAEX,EAAE,MAAQ,CACN,IAAK,EACL,oBAAqB,GACrB,iBAAkB,EACtB,EACA,KAAK,gBAAgB,EAAE,MAAO,EAAS,GAAM,EAAO,iBAAiB,CAAC,CAAC,EACvE,IAAM,EAAI,KAAK,eAAe,EAAE,MAAM,GAAG,EAUzC,MATA,GAAE,MAAM,SAAW,UAAoB,CAOnC,OANI,KAAK,qBAAuB,EACrB,aAAa,KAAK,SAAS,KAAK,qBAAqB,GAE5D,KAAK,kBAAoB,EAClB,UAAU,KAAK,MAAM,KAAK,kBAAkB,GAEhD,CACX,EACO,CACX,CACA,eAAe,EAAG,CACd,IAAM,EAAK,GAAO,GAAK,KAAO,MAAQH,GAAa,EAAG,KAAK,MAAM,QAAQ,OAAQ,CAAC,CAAC,EACnF,MAAO,SAAS,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAC/I,CACA,cAAc,EAAW,EAAO,EAAY,EAAM,CAC9C,IAAM,EAAQ,IAAS,QACjB,EAAQ,KAAK,YAAY,OACzB,EAAS,KAAK,UAAU,CAAK,EAC7B,EAAO,EAAM,aAAa,EAChC,EAAW,cAAgB,KAAK,MAChC,EAAW,OAAS,EACpB,KAAK,gBAAgB,EAAY,EAAS,GAAO,EAAQ,EAAO,EAAM,iBAAiB,EAAG,CAAK,CAAE,EACjG,MAAM,cAAc,EAAW,EAAO,EAAY,CAAI,CAC1D,CACJ,EAEA,SAAS,GAAgB,EAAM,EAAQ,EAAY,EAAW,CAAC,EAAG,EAAS,CAAC,EAAG,CAC3E,GAAS,eAAe,CAAU,EAC9B,MAAM,QAAQ,CAAQ,EACtB,GAAS,YAAY,GAAG,CAAQ,EAGhC,GAAS,YAAY,CAAQ,EAE7B,MAAM,QAAQ,CAAM,EACpB,GAAS,UAAU,GAAG,CAAM,EAG5B,GAAS,UAAU,CAAM,EAE7B,IAAM,EAAI,EAEV,MADA,GAAE,KAAO,EACF,CACX,CAEA,IAAM,GAAN,cAAgC,EAAU,CACtC,YAAY,EAAO,EAAQ,CACvB,OAAO,IAAe,EAAO,CAAM,CACvC,CACA,gBAAgB,EAAQ,EAAQ,EAAQ,CACpC,MAAM,gBAAgB,EAAQ,EAAQ,CAAM,EAC5C,IAAK,IAAM,IAAO,CAAC,aAAc,YAAY,EACzC,EAAO,GAAO,EAAO,EAAO,EAAI,CAExC,CACJ,EACA,GAAkB,GAAK,UACvB,GAAkB,SAAWH,GAAM,CAAC,EAAG,CACnC,GAAc,SACd,GAAa,EAAc,EAC3B,CACI,WAAY,CACR,QAAS,CACL,KAAM,SACN,WAAY,GAAc,SAAS,WAAW,QAAQ,WAAW,OAAO,CAAC,KAAM,KAAM,MAAO,MAAO,SAAU,aAAc,aAAc,MAAM,EAAG,GAAe,OAAQ,GAAM,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CACxM,CACJ,EACA,gBAAiB,GAAc,EACnC,CACJ,CAAC,EACD,GAAkB,UAAYA,GAAM,CAAC,EAAG,CAAC,GAAc,UAAW,GAAiB,CAAC,CAAC,EACrF,IAAM,IAAN,cAA2B,EAAM,CAC7B,YAAY,EAAM,EAAQ,CACtB,MAAM,EAAM,GAAgB,UAAW,EAAQ,GAAmB,GAAe,CAAC,GAAa,EAAa,CAAC,CAAC,CAClH,CACJ,EACA,IAAa,GAAK,GAAkB,GAEpC,IAAM,GAAN,cAA+B,EAAU,CACrC,YAAY,EAAO,EAAQ,CACvB,OAAO,IAAc,EAAO,CAAM,CACtC,CACA,gBAAgB,EAAQ,EAAQ,EAAQ,CACpC,MAAM,gBAAgB,EAAQ,EAAQ,CAAM,EAC5C,EAAO,YAAc,EAAO,YACxB,MAAM,QAAQ,EAAO,MAAM,IAC3B,EAAO,OAAS,EAAO,OAAO,IAAK,IAAO,CAAE,GAAG,EAAG,EAAG,EAAO,EAAE,CAAC,CAAE,EAAE,EAE3E,CACJ,EACA,GAAiB,GAAK,SACtB,GAAiB,SAAWA,GAAM,CAAC,EAAG,CAClC,GAAc,SACd,GAAa,EAAc,EAC3B,CACI,OAAQ,IACR,WAAY,CACR,QAAS,CACL,KAAM,SACN,WAAY,GAAc,SAAS,WAAW,QAAQ,WAAW,OAAO,CAAC,KAAM,KAAM,MAAO,MAAO,SAAU,aAAa,EAAG,GAAe,OAAQ,GAAM,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CACnL,EACA,UAAW,CACP,GAAI,IACJ,WAAY,CAAC,QAAQ,CACzB,CACJ,EACA,gBAAiB,GAAO,EAC5B,CACJ,CAAC,EACD,GAAiB,UAAYA,GAAM,CAAC,EAAG,CAAC,GAAc,UAAW,GAAiB,CAAC,CAAC,EACpF,IAAM,IAAN,cAA0B,EAAM,CAC5B,YAAY,EAAM,EAAQ,CACtB,MAAM,EAAM,GAAgB,SAAU,EAAQ,GAAkB,GAAQ,CAAC,GAAa,EAAa,CAAC,CAAC,CACzG,CACJ,EACA,IAAY,GAAK,GAAiB,GCh7BlC,IAAI,IAAa,GAEJ,QAAyB,CAChC,GAoBJ,IAlBA,GAAM,SACJ,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,EACF,EACa,GACf,EC1Ca,IACX,EACA,EACA,IACG,CACH,GAAI,OAAO,OAAW,IAAa,OAAO,EAE1C,IAAM,EAAS,GAAS,SAAS,gBAGjC,OAFc,iBAAiB,CAAM,EAAE,iBAAiB,CAAI,EAAE,KAEvD,GAAS,CAClB,ECTM,GAAY,GAAgB,CAChC,IAAM,EAAa,EAAI,QAAQ,IAAK,EAAE,EAChC,EACJ,EAAW,SAAW,EAClB,EACG,MAAM,EAAE,EACR,IAAK,GAAS,GAAG,IAAO,GAAM,EAC9B,KAAK,EAAE,EACV,EAAW,MAAM,EAAG,CAAC,EAErB,EAAM,SAAS,EAAU,EAAE,EAEjC,MAAO,CAAC,GAAO,GAAK,GAAO,EAAK,IAAK,EAAM,GAAG,CAChD,EAEa,IAAc,EAAkC,EAAW,YAAc,CACpF,IAAM,EAAQ,GAAO,KAAK,EAE1B,GAAI,GAAO,WAAW,GAAG,EAAG,OAAO,GAAS,CAAK,EAEjD,GAAI,GAAO,WAAW,KAAK,EAAG,CAC5B,IAAM,EAAU,EAAM,MAAM,cAAc,GAAG,IAAI,MAAM,EAEvD,GAAI,GAAW,EAAQ,QAAU,EAAG,MAAO,CAAC,EAAQ,GAAI,EAAQ,GAAI,EAAQ,EAAE,CAChF,CAIA,OAFI,GAAS,mBAAmB,KAAK,CAAK,EAAU,GAAS,IAAI,GAAO,EAEjE,GAAS,CAAQ,CAC1B,EAEa,IAAU,EAAkC,EAAe,EAAW,YAAc,CAC/F,IAAM,EAAI,GAAO,KAAK,EAEtB,GAAI,CAAC,EAAG,MAAO,QAAQ,GAAW,CAAQ,EAAE,KAAK,IAAI,EAAE,IAAI,EAAM,GAEjE,GAAI,EAAE,WAAW,OAAO,EACtB,OAAO,EAAE,QAAQ,mBAAoB,EAAI,IAAU,CACjD,IAAM,EAAQ,EAAM,MAAM,GAAG,EAAE,IAAK,GAAc,EAAE,KAAK,CAAC,EAE1D,MAAO,QAAQ,EAAM,GAAG,IAAI,EAAM,GAAG,IAAI,EAAM,GAAG,IAAI,EAAM,EAC9D,CAAC,EAGH,GAAI,EAAE,WAAW,MAAM,EACrB,OAAO,EAAE,QAAQ,OAAQ,OAAO,EAAE,QAAQ,IAAK,KAAK,EAAM,EAAE,EAG9D,GAAM,CAAC,EAAG,EAAG,GAAK,GAAW,EAAG,CAAQ,EAExC,MAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAM,EACzC,EAEa,KACX,EACA,EAAyE,CAAC,IACvE,CACH,GAAM,CAAE,YAAY,IAAM,UAAU,IAAM,gBAAgB,KAAS,EAEnE,MAAQ,IAAmC,CACzC,IAAM,EAAQ,EAAI,MACZ,EAAO,EAAM,UAEnB,GAAI,CAAC,EAAM,OAAO,GAAO,EAAW,CAAa,EAEjD,IAAM,EAAI,EAAM,IAAI,qBAAqB,EAAG,EAAK,IAAK,EAAG,EAAK,MAAM,EAIpE,OAHA,EAAE,aAAa,EAAG,GAAO,EAAW,CAAS,CAAC,EAC9C,EAAE,aAAa,EAAG,GAAO,EAAW,CAAO,CAAC,EAErC,CACT,CACF,EC1Da,KACX,EACA,EAAuC,CAAC,IACrC,CACH,IAAM,EAAU,EAAK,SAAW,OAE1B,EAAe,IAAY,QAAU,UAAY,UACjD,EAAa,IAAY,QAAU,UAAY,UAC/C,EAAiB,IAAY,QAAU,UAAY,UAEnD,EAAO,GACX,EACA,IAAY,QAAU,oBAAsB,aAC5C,CACF,EACM,EAAe,GACnB,EACA,IAAY,QAAU,oBAAsB,aAC5C,CACF,EACM,EAAgB,GACpB,EACA,IAAY,QAAU,oBAAsB,aAC5C,CACF,EACM,EAAU,GAAW,EAAO,gBAAiB,SAAS,EACtD,EAAY,GAChB,EACA,kBACA,GAAW,EAAO,gBAAiB,CAAO,CAC5C,EACM,EAAS,GAAW,EAAO,eAAgB,GAAW,EAAO,gBAAiB,CAAS,CAAC,EACxF,EAAK,GAAW,EAAO,IAAY,QAAU,kBAAoB,WAAY,CAAU,EACvF,EAAa,GACjB,EACA,IAAY,QAAU,oBAAsB,eAC5C,CACF,EACM,EAAS,IAAY,QAAU,GAAO,EAAY,IAAM,CAAc,EAAI,EAEhF,MAAO,CACL,OACA,SAAU,GAAO,EAAc,IAAY,QAAU,IAAO,IAAM,CAAY,EAC9E,UAAW,GAAO,EAAe,IAAY,QAAU,IAAO,GAAK,CAAY,EAC/E,KAAM,GAAO,EAAM,IAAY,QAAU,GAAM,IAAM,CAAY,EACjE,UACA,YACA,SACA,KACA,QACF,CACF,EC7Da,IAAc,IAAuB,CAChD,SAAU,SACV,OAAQ,CACN,MAAO,EAAM,KACb,cAAe,GACf,WAAY,SACZ,SAAU,EACV,UAAW,EACX,QAAS,EACX,CACF,GAEa,IAAc,IAAuB,CAChD,EAAG,CACD,KAAM,CAAE,MAAO,EAAM,KAAM,WAAY,EAAM,EAC7C,MAAO,CAAE,MAAO,EAAM,SAAU,YAAa,EAAG,SAAU,GAAM,cAAe,CAAE,CACnF,EACA,EAAG,CACD,KAAM,CAAE,QAAS,GAAO,WAAY,EAAM,EAC1C,MAAO,CAAE,MAAO,EAAM,SAAU,cAAe,CAAE,EACjD,YAAa,EACf,CACF,GASa,IAAe,GAAsB,CAChD,IAAM,EAAa,GAAW,KAAM,qBAAsB,oBAAoB,EAE9E,MAAO,CACL,gBAAiB,GAAO,EAAM,GAAI,GAAI,EACtC,YAAa,GAAO,EAAM,OAAQ,GAAI,EACtC,YAAa,EACb,aAAc,EACd,QAAS,CAAE,IAAK,GAAI,MAAO,GAAI,OAAQ,GAAI,KAAM,EAAG,EACpD,WAAY,EACZ,WAAY,EAAM,KAClB,UAAW,EAAM,SACjB,YAAa,EAAM,UACnB,UAAW,CAAE,OAAQ,EAAY,KAAM,GAAI,OAAQ,GAAI,EACvD,SAAU,CAAE,OAAQ,EAAY,KAAM,GAAI,OAAQ,GAAI,EACtD,WAAY,CAAE,OAAQ,EAAY,KAAM,GAAI,OAAQ,GAAI,EACxD,WAAY,OACZ,UAAW,OACX,YAAa,OACb,aAAc,EACd,kBAAmB,EACnB,YAAa,EACb,cAAe,EACf,gBAAiB,EACjB,aAAc,EACd,UAAW,EACX,cAAe,GACf,mBAAoB,GAAO,EAAM,GAAI,GAAI,CAC3C,CACF,ECnCa,IAAiB,GAA2D,CACvF,GAAM,CAAE,SAAQ,SAAQ,QAAO,UAAU,GAAO,aAAa,GAAM,eAAc,IAAG,KAAM,EACpF,EAAS,IAAW,CAAK,EACzB,EAAS,IAAW,CAAK,EAEzB,EAAU,CAAE,GAAG,EAAO,EAAG,GAAI,GAAK,CAAC,CAAG,EAExC,GAAG,QAAO,EAAQ,MAAQ,CAAE,GAAG,EAAO,EAAE,MAAO,GAAG,EAAE,KAAM,GAE1D,GAAG,OAAM,EAAQ,KAAO,CAAE,GAAG,EAAO,EAAE,KAAM,GAAG,EAAE,IAAK,GAE1D,IAAM,EAAU,CAAE,GAAG,EAAO,EAAG,GAAI,GAAK,CAAC,EAAI,SAAQ,EAMrD,OAJI,GAAG,QAAO,EAAQ,MAAQ,CAAE,GAAG,EAAO,EAAE,MAAO,GAAG,EAAE,KAAM,GAE1D,GAAG,OAAM,EAAQ,KAAO,CAAE,GAAG,EAAO,EAAE,KAAM,GAAG,EAAE,IAAK,GAEnD,CACL,KAAM,OACN,KAAM,CACJ,SACA,SAAU,EAAO,IAAK,GAAU,CAC9B,IAAM,EAAO,EAAM,MAAQ,GAE3B,MAAO,CACL,MAAO,EAAM,MACb,KAAM,EAAM,KACZ,YAAa,EAAM,aAAe,EAAM,MACxC,gBAAiB,EACZ,EAAM,iBAAmB,IAAW,EAAM,KAAK,EAC/C,EAAM,iBAAmB,cAC9B,OACA,QAAS,EAAM,SAAW,IAC1B,YAAa,EAAM,aAAe,EAClC,YAAa,EAAM,aAAe,EAClC,WAAY,EAAM,WAClB,MAAO,EAAM,KACf,CACF,CAAC,CACH,EACA,QAAS,CACP,QAAS,CACP,OAAQ,EAAa,CAAE,QAAS,GAAM,GAAG,CAAO,EAAI,CAAE,QAAS,EAAM,EACrE,QAAS,CACP,GAAG,IAAY,CAAK,EACpB,GAAI,EACA,CACE,UAAW,CACT,MAAO,CACT,CACF,EACA,CAAC,CACP,CACF,EACA,OAAQ,CACN,EAAG,EACH,EAAG,CACL,CACF,CACF,CACF,ECzDM,IAAkB,GAAsB,CAAC,EAAM,QAAS,EAAM,UAAW,EAAM,MAAM,EAE9E,GAAsB,GAAwB,CACzD,IAAM,EAAO,EAAM,SAAS,GAAG,EAAI,EAAQ,GAAG,EAAM,YAC9C,EAAS,IAAI,KAAK,CAAI,EAE5B,OAAO,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAI,IAAI,KAAS,CACvD,EAEM,IAAe,GAAkB,CACrC,IAAM,EAAM,KAAK,IAAI,CAAK,EAM1B,OAJI,GAAO,IAAkB,IAAI,EAAQ,KAAW,QAAQ,CAAC,EAAE,GAE3D,GAAO,IAAc,IAAI,EAAQ,KAAO,QAAQ,CAAC,EAAE,GAEhD,EAAM,eAAe,OAAO,CACrC,EAEM,KAAe,EAAe,EAAqB,IAOhD,GANW,OAAO,CAAK,EAAE,eAAe,QAAS,CACtD,sBAAuB,EACvB,sBAAuB,KAAK,IAAI,EAAG,CAAc,CACnD,CAGU,IAFS,GAAQ,EAAK,KAAK,EAAI,IAAI,EAAK,KAAK,IAAM,KAKzD,KACJ,EACA,EACA,IACmB,GAAQ,OAAS,EAAS,CAAC,CAAE,MAAO,EAAO,SAAQ,KAAM,EAAK,CAAC,EAEvE,KAAyB,CACpC,QACA,SAAS,CAAC,EACV,SACA,OAAO,KACP,iBAAiB,EACjB,aAAa,GACb,QACA,oBAAoB,IAAI,KAAK,eAAe,QAAS,CAAE,IAAK,UAAW,MAAO,OAAQ,CAAC,EACvF,oBAAoB,IAAI,KAAK,eAAe,QAAS,CACnD,IAAK,UACL,MAAO,QACP,KAAM,SACR,CAAC,KACoE,CACrE,IAAM,EAAc,IAAc,EAAO,EAAQ,CAAM,EACjD,EAAe,EAAY,IAAI,QAAU,CAAC,EAIhD,GAFI,CAAC,EAAa,QAGhB,CAAC,GACD,CAAC,EAAY,KAAM,GAAU,EAAM,OAAO,KAAM,GAAU,EAAM,OAAS,IAAI,CAAC,EAE9E,OAAO,KAGT,IAAM,EAAS,EAAa,IAAK,GAAS,EAAkB,OAAO,GAAmB,EAAK,IAAI,CAAC,CAAC,EAC3F,EAAS,IAAe,CAAK,EAC7B,EAAS,IAAc,CAC3B,SACA,QACA,WAAY,EAAY,OAAS,EACjC,OAAQ,EAAY,KAAK,EAAO,KAAW,CACzC,MAAO,EAAM,MACb,KAAM,EAAM,OAAO,IAAK,GAAU,EAAM,KAAK,EAC7C,MAAO,EAAM,OAAS,EAAO,EAAQ,EAAO,QAC5C,KAAM,EAAM,OAAS,EAAY,SAAW,GAAK,IAAU,GAC3D,QAAS,EAAM,SAAW,IAC1B,YAAa,EAAM,cAAgB,IAAU,EAAI,EAAI,GACrD,YAAa,EAAM,aAAe,EAClC,WAAY,EAAM,UACpB,EAAE,EACF,aAAe,GAAa,CAC1B,IAAM,EAAS,EAAI,SAAS,MAAQ,GAAG,EAAI,QAAQ,MAAM,IAAM,GAE/D,OAAO,EAAI,KAAO,KACd,GAAG,EAAO,KACV,GAAG,IAAS,IAAY,OAAO,EAAI,GAAG,EAAG,EAAM,CAAc,GACnE,EACA,EAAG,CACD,MAAO,CACL,SAAW,GAAe,IAAY,OAAO,CAAK,CAAC,CACrD,CACF,CACF,CAAC,EAEA,EAAQ,QAAgB,YAAc,CAAE,KAAM,QAAS,UAAW,EAAM,EACxE,EAAQ,QAAgB,OAAS,CAAE,QAAS,CAAE,KAAM,EAAG,MAAO,GAAI,IAAK,EAAG,OAAQ,CAAE,CAAE,EAEvF,IAAM,EAAe,EAAO,SAAS,SAAiB,SAAW,CAAC,EAC5D,EAAgB,EAAY,WAAa,CAAC,EAmBhD,MAlBC,GAAQ,QAAgB,QAAU,CACjC,GAAI,EAAO,SAAS,QACpB,QAAS,CACP,GAAG,EACH,UAAW,CACT,GAAG,EACH,MAAQ,GAAiB,CACvB,GAAI,CAAC,GAAO,OAAQ,MAAO,GAG3B,IAAM,EAAO,EADD,EAAM,IAAI,WAAa,GAGnC,OAAO,EAAO,EAAkB,OAAO,GAAmB,EAAK,IAAI,CAAC,EAAI,EAC1E,CACF,CACF,CACF,EAEO,CACT,ECvIa,GAAsD,CACjE,QAAS,kCACT,OAAQ,UACR,QAAS,UACT,KAAM,UACN,KAAM,UACN,KAAM,UACN,OAAQ,UACR,OAAQ,UACR,QAAS,UACT,KAAM,UACN,OAAQ,UACR,MAAO,SACT,EAEa,GAAqB,GAAmB,QAUxC,GAAsB,GAC5B,EAED,KAAS,GACJ,GAAmB,GAGrB,EANY,GC4GrB,SAAgB,GACd,EACA,EACmB,CACnB,IAAM,EACJ,EAAQ,YAAc,KAClB,KACC,EAAQ,KAAM,GAAW,EAAO,KAAO,EAAQ,SAAS,GAAK,KAC9D,EAAY,IAAI,IAAI,EAAQ,WAAa,CAAC,CAAC,EAC7C,EAAwC,KAE5C,GAAI,GAAY,EAAS,UAAY,GAAO,CAC1C,GAAM,CAAE,QAAS,EAAU,QAAS,EAAU,OAAM,OAAM,GAAG,GAAY,EAEzE,GAAI,CAAC,GAAQ,IAAS,SACpB,MAAU,MAAM,+DAA+D,EAEjF,EAAU,CAAE,GAAG,EAAS,MAAK,CAC/B,CAEA,MAAO,CACL,UACA,UAAW,EACR,OAAQ,GAAW,IAAW,CAAQ,EACtC,IAAK,GAAW,CACf,GAAM,CAAE,QAAS,EAAU,UAAS,GAAG,GAAY,EAEnD,MAAO,CAAE,GAAG,EAAS,QAAS,EAAU,IAAI,EAAO,EAAE,EAAI,SAAY,GAAW,MAAQ,CAC1F,CAAC,CACL,CACF,CC5KA,IAAM,GAAe,IAAI,KAAK,SAAS,KAAa,CAClD,QAAS,GACT,YAAa,MACf,CAAC,EAEK,GAAgB,GACpB,GAAU,MAEV,IAAU,IACT,OAAO,GAAU,UAAY,OAAO,MAAM,CAAK,EAE5C,GAAc,GACd,OAAO,GAAU,SAAiB,EAElC,OAAO,GAAU,UAAY,OAAO,GAAU,WAAa,OAAO,GAAU,SACvE,OAAO,CAAK,EAEjB,aAAiB,KAAa,EAAM,YAAY,EAE7C,GAGH,GAAgB,GAAoC,CACxD,GAAI,OAAO,GAAU,UAAY,OAAO,SAAS,CAAK,EAAG,OAAO,EAEhE,GAAI,OAAO,GAAU,SAAU,OAAO,OAAO,CAAK,EAElD,GAAI,OAAO,GAAU,UAAW,MAAO,KAEvC,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAa,EAAM,KAAK,EAE9B,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAS,OAAO,CAAU,EAEhC,OAAO,OAAO,SAAS,CAAM,EAAI,EAAS,IAC5C,CAIA,OAFI,aAAiB,KAAa,EAAM,QAAQ,EAEzC,IACT,EAEM,GAAc,GAAoC,CACtD,GAAI,aAAiB,KAAM,OAAO,EAAM,QAAQ,EAEhD,GAAI,OAAO,GAAU,UAAY,OAAO,SAAS,CAAK,EAAG,OAAO,EAEhE,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAa,EAAM,KAAK,EAE9B,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAY,KAAK,MAAM,CAAU,EAEvC,OAAO,OAAO,SAAS,CAAS,EAAI,EAAY,IAClD,CAEA,OAAO,IACT,EAEM,KACJ,EACA,EACA,IACW,CACX,GAAI,GAAa,CAAI,GAAK,GAAa,CAAK,EAAG,MAAO,GAEtD,GAAI,GAAa,CAAI,EAAG,MAAO,GAE/B,GAAI,GAAa,CAAK,EAAG,MAAO,GAEhC,GAAI,IAAS,SAAU,CACrB,IAAM,EAAU,GAAa,CAAI,EAC3B,EAAW,GAAa,CAAK,EAQnC,OANI,IAAY,MAAQ,IAAa,KAAa,EAE9C,IAAY,KAAa,EAEzB,IAAa,KAAa,GAEvB,EAAU,CACnB,CAEA,GAAI,IAAS,OAAQ,CACnB,IAAM,EAAW,GAAW,CAAI,EAC1B,EAAY,GAAW,CAAK,EAQlC,OANI,IAAa,MAAQ,IAAc,KAAa,EAEhD,IAAa,KAAa,EAE1B,IAAc,KAAa,GAExB,EAAW,CACpB,CAEA,GAAI,IAAS,UAAW,CACtB,IAAM,EAAW,EAAQ,EAKzB,OAFI,IAFc,EAAQ,EAES,EAE5B,EAAW,EAAI,EACxB,CAEA,OAAO,GAAa,QAAQ,GAAW,CAAI,EAAG,GAAW,CAAK,CAAC,CACjE,EAEa,GAAwB,IAClB,OAAO,EAAO,SAAY,SAAW,EAAO,QAAQ,KAAK,EAAI,KAE3D,EAAO,GAGf,GAA+B,GACtC,EAAO,iBAAmB,OAAS,EAAO,iBAAmB,OACxD,EAAO,eAEZ,EAAO,WAAa,QAAU,EAAO,WAAa,UAAY,EAAO,WAAa,UAC7E,OAEF,MAGI,IAA2B,GACtC,EAAQ,OAAQ,GAAW,EAAO,WAAa,EAAI,EAE/C,GAAuB,IAAoD,CAC/E,SAAU,EAAO,GACjB,IAAK,GAAqB,CAAM,EAChC,IAAK,GAA4B,CAAM,CACzC,GAEa,IACX,EACA,IAEK,EAGH,EAAQ,KAAM,GAAW,EAAO,UAAY,EAAO,KAAO,EAAK,QAAQ,GACvE,EAAQ,KAAM,GAAW,EAAO,UAAY,GAAqB,CAAM,IAAM,EAAK,GAAG,GACrF,KALgB,KASP,IACX,EACA,IACmB,CACnB,GAAI,CAAC,EAAM,OAAO,KAElB,IAAM,EAAS,GAAmB,EAAS,CAAI,EAE/C,GAAI,CAAC,EAAQ,OAAO,KAEpB,IAAM,EACJ,EAAK,MAAQ,MAAQ,MAAQ,EAAK,MAAQ,OAAS,OAAS,GAA4B,CAAM,EAEhG,MAAO,CACL,SAAU,EAAO,GACjB,IAAK,GAAqB,CAAM,EAChC,KACF,CACF,EAEa,KAAwB,EAAsB,IACzD,GAAM,WAAa,GAAO,UAAY,GAAM,MAAQ,GAAO,KAAO,GAAM,MAAQ,GAAO,IAE5E,KACX,EACA,EAA4B,OACT,CACnB,IAAM,EAAqB,GAAuB,EAAS,CAAS,EAEpE,GAAI,EAAoB,OAAO,EAE/B,IAAM,EAAkB,IAAwB,CAAO,EAEvD,GAAI,CAAC,EAAgB,OAAQ,OAAO,KAEpC,IAAM,EACJ,EAAgB,KACb,GACC,EAAO,YACN,EAAO,WAAa,QACnB,EAAO,WAAa,UACpB,EAAO,WAAa,UAC1B,GACA,EAAgB,KAAM,GAAW,EAAO,WAAa,MAAM,GAC3D,EAAgB,KACb,GAAW,EAAO,WAAa,UAAY,EAAO,WAAa,SAClE,GACA,EAAgB,KAAM,GAAW,EAAO,SAAS,GACjD,EAAgB,GAElB,OAAO,EAAiB,GAAoB,CAAc,EAAI,IAChE,EAEa,KACX,EACA,IACmB,CACnB,GAAI,CAAC,EAAO,SAAU,OAAO,EAE7B,IAAM,EAAgB,GAAW,EAAQ,WAAa,EAAO,GAAK,EAAU,KACtE,EAAa,GAA4B,CAAM,EAC/C,EAAiC,IAAe,MAAQ,OAAS,MAcvE,OAZK,EAID,EAAc,MAAQ,EACjB,CACL,SAAU,EAAO,GACjB,IAAK,GAAqB,CAAM,EAChC,IAAK,CACP,EAGK,KAXE,GAAoB,CAAM,CAYrC,EAEa,KAAmB,EAAc,IACxC,OAAO,EAAO,cAAiB,WAAmB,EAAO,aAAa,CAAG,EAEtE,EAAI,EAAO,IAGP,IACX,EACA,EACA,IACW,CACX,IAAM,EAAa,GAAuB,EAAS,CAAI,EAEvD,GAAI,CAAC,EAAY,OAAO,EAAK,MAAM,EAEnC,IAAM,EAAS,GAAmB,EAAS,CAAU,EAErD,GAAI,CAAC,EAAQ,OAAO,EAAK,MAAM,EAE/B,IAAM,EAAa,EAAW,MAAQ,OAAS,GAAK,EAEpD,OAAO,EACJ,KAAK,EAAK,KAAW,CACpB,MACA,QACA,MAAO,IAAgB,EAAK,CAAM,CACpC,EAAE,EACD,MAAM,EAAM,IAAU,CACrB,IAAM,EAAY,GAAa,EAAK,KAAK,EACnC,EAAa,GAAa,EAAM,KAAK,EAE3C,GAAI,GAAa,EAAY,OAAO,EAAK,MAAQ,EAAM,MAEvD,GAAI,EAAW,MAAO,GAEtB,GAAI,EAAY,MAAO,GAEvB,IAAM,EAAa,IAAc,EAAK,MAAO,EAAM,MAAO,EAAO,QAAQ,EAEzE,GAAI,IAAe,EAAG,OAAO,EAAa,EAE1C,IAAM,EAAS,EAAK,IAAI,GAClB,EAAU,EAAM,IAAI,GAM1B,OAJI,IAAW,QAAa,IAAY,QAAa,IAAW,EACvD,GAAa,QAAQ,OAAO,CAAM,EAAG,OAAO,CAAO,CAAC,EAGtD,EAAK,MAAQ,EAAM,KAC5B,CAAC,EACA,IAAK,GAAU,EAAM,GAAG,CAC7B,EAEa,IAA4C,CACvD,OACA,UACA,OACA,QACA,YAOI,CACJ,IAAM,EAAa,GAAc,EAAM,EAAS,CAAI,EAC9C,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAE/B,EAAM,GADC,OAAO,GAAU,UAAY,EAAQ,EAAI,EAAQ,EAAW,QAGzE,MAAO,CACL,KAAM,EAAW,MAAM,EAAO,CAAG,EACjC,MAAO,EAAW,MACpB,CACF,EC/SA,SAAgB,GAAM,EAAe,EAAa,EAAa,CAC7D,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,CAAK,CAAC,CAC3C,CAEA,SAAgB,IAAa,EAAc,EAAkB,CAG3D,OAFe,IAAc,IAEb,EAClB,CAEA,SAAgB,GAAU,EAAc,EAAuC,CAC7E,IAAM,EAAK,EAAW,EAAS,CAAG,EAAI,EAAI,GAE1C,GAAK,OAAO,GAAO,UAAY,OAAO,GAAO,UAAa,OAAO,CAAE,EAAE,KAAK,IAAM,GAC9E,MAAU,MAAM,6CAA6C,EAG/D,GAAI,OAAO,GAAO,UAAY,CAAC,OAAO,SAAS,CAAE,EAC/C,MAAU,MAAM,+BAA+B,EAGjD,OAAO,OAAO,CAAE,CAClB,CAEA,SAAgB,GAAoB,EAAgB,CAClD,MAAO,SAAU,EAAY,OAAS,QACxC,CAEA,SAAgB,GAAa,EAA6B,CACxD,GAAI,OAAO,GAAQ,UAAY,OAAO,SAAS,CAAG,EAAG,OAAO,KAAK,IAAI,EAAG,KAAK,MAAM,CAAG,CAAC,EAEvF,GAAI,OAAO,GAAQ,SAAU,CAC3B,IAAM,EAAI,EAAI,KAAK,EAEnB,GAAI,EAAE,SAAS,IAAI,EAAG,CACpB,IAAM,EAAI,SAAS,EAAG,EAAE,EAExB,GAAI,CAAC,OAAO,MAAM,CAAC,EAAG,OAAO,KAAK,IAAI,EAAG,CAAC,CAC5C,CACF,CAEA,OAAO,IACT,CAMA,SAAgB,GAAoB,EAAwB,CAI1D,OAAO,GAHO,OAAQ,EAAY,OAAS,EAC1B,EAAM,OAAS,EAAI,GAEb,IAAK,GAAG,CACjC,CC1DA,IAAM+B,GAAe,OAAO,iBAAqB,KAAe,iBCA1D,GAAa,WCAb,GAAc,UCGpB,SAAS,IAAiB,CAExB,OADA,GAAiB,EAAU,EACpB,EACT,CACA,SAAS,GAAiB,EAAS,CACjC,IAAM,EAAa,EAAQ,WAAa,EAAQ,YAAc,CAAC,EAE/D,MADA,GAAW,QAAU,EAAW,mBACzB,EAAW,IAAe,cAA2B,CAAC,CAC/D,CACA,SAAS,GAAmB,EAAM,EAAS,EAAM,GAAY,CAC3D,IAAM,EAAa,EAAI,WAAa,EAAI,YAAc,CAAC,EACjD,EAAU,EAAW,IAAe,cAA2B,CAAC,EACtE,OAAO,EAAQ,KAAU,EAAQ,GAAQ,EAAQ,EACnD,CCZA,IAAMC,IAAiB,CACrB,QACA,OACA,OACA,QACA,MACA,SACA,OACF,EACMC,IAAS,iBACT,GAAyB,CAAC,EAChC,SAAS,GAAe,EAAU,CAChC,GAAI,EAAE,YAAa,IACjB,OAAO,EAAS,EAElB,IAAM,EAAU,GAAW,QACrB,EAAe,CAAC,EAChB,EAAgB,OAAO,KAAK,EAAsB,EACxD,EAAc,QAAS,GAAU,CAC/B,IAAM,EAAwB,GAAuB,GACrD,EAAa,GAAS,EAAQ,GAC9B,EAAQ,GAAS,CACnB,CAAC,EACD,GAAI,CACF,OAAO,EAAS,CAClB,QAAU,CACR,EAAc,QAAS,GAAU,CAC/B,EAAQ,GAAS,EAAa,EAChC,CAAC,CACH,CACF,CACA,SAAS,KAAS,CAChB,GAAmB,EAAE,QAAU,EACjC,CACA,SAAS,KAAU,CACjB,GAAmB,EAAE,QAAU,EACjC,CACA,SAASC,IAAY,CACnB,OAAO,GAAmB,EAAE,OAC9B,CACA,SAAS,IAAI,GAAG,EAAM,CACpB,GAAU,MAAO,GAAG,CAAI,CAC1B,CACA,SAAS,IAAK,GAAG,EAAM,CACrB,GAAU,OAAQ,GAAG,CAAI,CAC3B,CACA,SAAS,IAAM,GAAG,EAAM,CACtB,GAAU,QAAS,GAAG,CAAI,CAC5B,CACA,SAAS,GAAU,EAAO,GAAG,EAAM,CAC5BH,IAGDG,GAAU,GACZ,OAAqB,CACnB,GAAW,QAAQ,GAAO,GAAGD,IAAO,GAAG,EAAM,IAAK,GAAG,CAAI,CAC3D,CAAC,CAEL,CACA,SAAS,IAAqB,CAI5B,OAHKF,GAGE,GAAmB,sBAAyB,CAAE,QAAS,EAAM,EAAE,EAF7D,CAAE,QAAS,EAAM,CAG5B,CACA,IAAMI,GAAQ,CAEZ,WAEA,YAEA,aAEA,QAEA,SAEA,SACF,EClFM,GAAyB,GAEzB,GAAuB,kBACvB,GAAqB,kCAC3B,SAAS,GAAkB,GAAG,EAAS,CACrC,IAAM,EAAgB,EAAQ,MAAM,EAAG,IAAM,EAAE,GAAK,EAAE,EAAE,EAAE,IAAK,GAAM,EAAE,EAAE,EACzE,OAAQ,EAAO,EAAiB,EAAG,EAAc,IAAM,CACrD,IAAM,EAAS,CAAC,EACV,EAAQ,EAAM,MAAM;CAAI,EAC9B,IAAK,IAAI,EAAI,EAAgB,EAAI,EAAM,OAAQ,IAAK,CAClD,IAAI,EAAO,EAAM,GACb,EAAK,OAAS,OAChB,EAAO,EAAK,MAAM,EAAG,IAAI,GAE3B,IAAM,EAAc,GAAqB,KAAK,CAAI,EAAI,EAAK,QAAQ,GAAsB,IAAI,EAAI,EAC7F,MAAY,SAAS,SAAS,EAGlC,KAAK,IAAM,KAAU,EAAe,CAClC,IAAM,EAAQ,EAAO,CAAW,EAChC,GAAI,EAAO,CACT,EAAO,KAAK,CAAK,EACjB,KACF,CACF,CACA,GAAI,EAAO,QAAU,GAAyB,EAC5C,KAFF,CAIF,CACA,OAAO,IAA4B,EAAO,MAAM,CAAW,CAAC,CAC9D,CACF,CACA,SAAS,IAAkC,EAAa,CAItD,OAHI,MAAM,QAAQ,CAAW,EACpB,GAAkB,GAAG,CAAW,EAElC,CACT,CACA,SAAS,IAA4B,EAAO,CAC1C,GAAI,CAAC,EAAM,OACT,MAAO,CAAC,EAEV,IAAM,EAAa,MAAM,KAAK,CAAK,EAWnC,MAVI,gBAAgB,KAAK,GAAkB,CAAU,EAAE,UAAY,EAAE,GACnE,EAAW,IAAI,EAEjB,EAAW,QAAQ,EACf,GAAmB,KAAK,GAAkB,CAAU,EAAE,UAAY,EAAE,IACtE,EAAW,IAAI,EACX,GAAmB,KAAK,GAAkB,CAAU,EAAE,UAAY,EAAE,GACtE,EAAW,IAAI,GAGZ,EAAW,MAAM,EAAG,EAAsB,EAAE,IAAK,IAAW,CACjE,GAAG,EACH,SAAU,EAAM,UAAY,GAAkB,CAAU,EAAE,SAC1D,SAAU,EAAM,aAClB,EAAE,CACJ,CACA,SAAS,GAAkB,EAAK,CAC9B,OAAO,EAAI,EAAI,OAAS,IAAM,CAAC,CACjC,CACA,IAAM,GAAsB,cAC5B,SAAS,GAAgB,EAAI,CAC3B,GAAI,CAIF,MAHI,CAAC,GAAM,OAAO,GAAO,WAChB,GAEF,EAAG,MAAQ,EACpB,MAAQ,CACN,OAAO,EACT,CACF,CACA,SAAS,GAAmB,EAAO,CACjC,IAAM,EAAY,EAAM,UACxB,GAAI,EAAW,CACb,IAAM,EAAS,CAAC,EAChB,GAAI,CAMF,OALA,EAAU,OAAO,QAAS,GAAU,CAC9B,EAAM,WAAW,QACnB,EAAO,KAAK,GAAG,EAAM,WAAW,MAAM,CAE1C,CAAC,EACM,CACT,MAAQ,CACN,MACF,CACF,CAEF,CCrFA,IAAMC,GAAW,CAAC,EACZC,GAAe,CAAC,EACtB,SAASC,GAAW,EAAM,EAAS,CAGjC,MAFA,IAAS,GAAQF,GAAS,IAAS,CAAC,EACpC,GAAS,GAAM,KAAK,CAAO,MACd,CACX,IAAM,EAAeA,GAAS,GAC9B,GAAI,EAAc,CAChB,IAAM,EAAQ,EAAa,QAAQ,CAAO,EACtC,IAAU,IACZ,EAAa,OAAO,EAAO,CAAC,CAEhC,CACF,CACF,CAMA,SAAS,GAAgB,EAAM,EAAc,CAC3C,GAAI,CAACC,GAAa,GAAO,CACvB,GAAa,GAAQ,GACrB,GAAI,CACF,EAAa,CACf,OAAS,EAAG,CACV,IAAeF,GAAM,MAAM,6BAA6B,IAAQ,CAAC,CACnE,CACF,CACF,CACA,SAASI,GAAgB,EAAM,EAAM,CACnC,IAAM,EAAe,GAAQH,GAAS,GACjC,KAGL,IAAK,IAAM,KAAW,EACpB,GAAI,CACF,EAAQ,CAAI,CACd,OAAS,EAAG,CACV,IAAeD,GAAM,MACnB;QACA;QACA,GAAgB,CAAO;QAEvB,CACF,CACF,CAEJ,CCjDA,IAAI,GAAqB,KACzB,SAAS,GAAqC,EAAS,CACrD,IAAM,EAAO,QACb,GAAW,EAAM,CAAO,EACxB,GAAgB,EAAM,GAAe,CACvC,CACA,SAAS,KAAkB,CACzB,GAAqB,GAAW,QAChC,GAAW,QAAU,SAAS,EAAK,EAAK,EAAM,EAAQ,EAAO,CAY3D,OAJA,GAAgB,QAAS,CANvB,SACA,QACA,OACA,MACA,KAEiC,CAAC,EAChC,GACK,GAAmB,MAAM,KAAM,SAAS,EAE1C,EACT,EACA,GAAW,QAAQ,wBAA0B,EAC/C,CCvBA,IAAI,GAAkC,KACtC,SAAS,GAAkD,EAAS,CAClE,IAAM,EAAO,qBACb,GAAW,EAAM,CAAO,EACxB,GAAgB,EAAM,GAA4B,CACpD,CACA,SAAS,KAA+B,CACtC,GAAkC,GAAW,qBAC7C,GAAW,qBAAuB,SAAS,EAAG,CAM5C,OAJA,GAAgB,qBAAsBK,CAAW,EAC7C,GACK,GAAgC,MAAM,KAAM,SAAS,EAEvD,EACT,EACA,GAAW,qBAAqB,wBAA0B,EAC5D,CCpBA,IAAMC,GAAiB,OAAO,UAAU,SACxC,SAAS,GAAQ,EAAK,CACpB,OAAQA,GAAe,KAAK,CAAG,EAA/B,CACE,IAAK,iBACL,IAAK,qBACL,IAAK,wBACL,IAAK,iCACH,MAAO,GACT,QACE,OAAO,GAAa,EAAK,KAAK,CAClC,CACF,CACA,SAAS,GAAU,EAAK,EAAW,CACjC,OAAOA,GAAe,KAAK,CAAG,IAAM,WAAW,EAAU,EAC3D,CACA,SAASC,GAAa,EAAK,CACzB,OAAO,GAAU,EAAK,YAAY,CACpC,CACA,SAAS,GAAW,EAAK,CACvB,OAAO,GAAU,EAAK,UAAU,CAClC,CACA,SAAS,IAAe,EAAK,CAC3B,OAAO,GAAU,EAAK,cAAc,CACtC,CACA,SAAS,GAAS,EAAK,CACrB,OAAO,GAAU,EAAK,QAAQ,CAChC,CACA,SAAS,GAAsB,EAAK,CAClC,OAAO,OAAO,GAAQ,YAAY,GAAgB,+BAAgC,GAAO,+BAAgC,CAC3H,CACA,SAAS,GAAY,EAAK,CACxB,OAAO,IAAQ,MAAQ,GAAsB,CAAG,GAAK,OAAO,GAAQ,UAAY,OAAO,GAAQ,UACjG,CACA,SAAS,GAAc,EAAK,CAC1B,OAAO,GAAU,EAAK,QAAQ,CAChC,CACA,SAASvF,GAAa,EAAK,CACzB,OAAO,OAAO,GAAQ,YAAY,CACpC,CACA,SAAS,GAAQ,EAAK,CACpB,OAAO,OAAO,MAAU,KAAe,GAAa,EAAK,KAAK,CAChE,CAIA,SAAS,IAAS,EAAK,CACrB,OAAO,GAAU,EAAK,QAAQ,CAChC,CACA,SAAS,GAAW,EAAK,CACvB,MAAO,GAAQ,GAAK,MAAQ,OAAO,EAAI,MAAS,WAClD,CAIA,SAAS,GAAa,EAAK,EAAM,CAC/B,GAAI,CACF,OAAO,aAAe,CACxB,MAAQ,CACN,MAAO,EACT,CACF,CAIA,SAAS,GAAU,EAAS,CAC1B,OAAO,OAAO,QAAY,KAAe,GAAa,EAAS,OAAO,CACxE,CC9DA,SAAS,GAAK,EAAQ,EAAM,EAAoB,CAC9C,GAAI,EAAE,KAAQ,GACZ,OAEF,IAAM,EAAW,EAAO,GACxB,GAAI,OAAO,GAAa,WACtB,OAEF,IAAM,EAAU,EAAmB,CAAQ,EACvC,OAAO,GAAY,YACrB,GAAoB,EAAS,CAAQ,EAEvC,GAAI,CACF,EAAO,GAAQ,CACjB,MAAQ,CACN,IAAegF,GAAM,IAAI,6BAA6B,EAAK,aAAc,CAAM,CACjF,CACF,CACA,SAAS,GAAyB,EAAK,EAAM,EAAO,CAClD,GAAI,CACF,OAAO,eAAe,EAAK,EAAM,CAE/B,QACA,SAAU,GACV,aAAc,EAChB,CAAC,CACH,MAAQ,CACN,IAAeA,GAAM,IAAI,0CAA0C,OAAO,CAAI,EAAE,aAAc,CAAG,CACnG,CACF,CACA,SAAS,GAAoB,EAAS,EAAU,CAC9C,GAAI,CAEF,EAAQ,UAAY,EAAS,UADf,EAAS,WAAa,CAAC,EAErC,GAAyB,EAAS,sBAAuB,CAAQ,CACnE,MAAQ,CACR,CACF,CAiBA,SAAS,GAAoB,EAAM,CACjC,OAAO,EAAK,mBACd,CACA,SAAS,GAAqB,EAAO,CACnC,GAAI,GAAQ,CAAK,EACf,MAAO,CACL,QAAS,EAAM,QACf,KAAM,EAAM,KACZ,MAAO,EAAM,MACb,GAAG,GAAiB,CAAK,CAC3B,EAEF,GAAI,GAAQ,CAAK,EAAG,CAClB,GAAM,CAAE,OAAM,SAAQ,gBAAe,UAAW,EAChD,MAAO,CACL,OACA,SACA,gBACA,GAAG,EAAS,CAAE,QAAO,EAAI,CAAC,EAC1B,GAAG,GAAiB,CAAK,CAC3B,CACF,CACA,OAAO,CACT,CACA,SAAS,GAAiB,EAAK,CAI7B,OAHIhF,GAAa,CAAG,EACX,OAAO,YAAY,OAAO,QAAQ,CAAG,CAAC,EAExC,CAAC,CACV,CACA,SAAS,IAA+B,EAAW,CACjD,IAAM,EAAO,OAAO,KAAK,GAAqB,CAAS,CAAC,EAExD,OADA,EAAK,KAAK,EACF,EAAK,GAA8B,EAAK,KAAK,IAAI,EAAvC,sBACpB,CC1FA,IAAI,GACJ,SAAS,GAAsB,EAAI,CACjC,GAAI,KAAoB,IAAK,GAC3B,OAAO,GAAkB,GAAgB,CAAE,EAAI,EAAG,EAEpD,IAAM,EAAsB,OAAO,IAAI,mCAAmC,EACpE,EAAmB,GAMzB,OALI,KAAO,GAAoB,OAAO,EAAiB,IAAS,YAC9D,GAAkB,EAAiB,GAC5B,GAAgB,CAAE,IAE3B,GAAkB,KACX,EAAG,EACZ,CACA,SAAS,IAAiB,CACxB,OAAO,OAA4B,KAAK,OAAO,CAAC,CAClD,CACA,SAAS,IAAc,CACrB,OAAO,OAA4B,KAAK,IAAI,CAAC,CAC/C,CCnBA,IAAM,IAA4C,OAAO,IAAI,0BAA0B,EACjF,IAAsD,OAAO,IAAI,mCAAmC,EAO1G,SAAS,IAAyB,EAAO,CACvC,MAAO,EAAQ,EAAM,IACvB,CACA,SAAS,IAAkC,EAAO,CAChD,IAAM,EAAI,EAAM,KAChB,OAAO,OAAO,GAAM,SAAW,EAAI,IAAK,EAC1C,CCZA,IAAI,GACJ,SAAS,IAAwB,EAAgB,CAC/C,GAAc,CAChB,CACA,SAAS,GAAU,EAAO,EAAQ,IAAK,EAAgB,IAAU,CAC/D,GAAI,CACF,OAAO,GAAM,GAAI,EAAO,EAAO,CAAa,CAC9C,OAAS,EAAK,CACZ,MAAO,CAAE,MAAO,yBAAyB,EAAI,EAAG,CAClD,CACF,CACA,SAAS,GAAgB,EAAQ,EAAQ,EAAG,EAAU,IAAM,KAAM,CAChE,IAAM,EAAa,GAAU,EAAQ,CAAK,EAI1C,OAHI,IAAS,CAAU,EAAI,EAClB,GAAgB,EAAQ,EAAQ,EAAG,CAAO,EAE5C,CACT,CACA,SAAS,GAAM,EAAK,EAAO,EAAQ,IAAU,EAAgB,IAAU,EAAO,IAAY,EAAG,CAC3F,GAAM,CAAC,EAAS,GAAa,EAC7B,GAAI,GAAS,MACb,CAAC,UAAW,QAAQ,EAAE,SAAS,OAAO,CAAK,GAAK,OAAO,GAAU,UAAY,OAAO,SAAS,CAAK,EAChG,OAAO,EAET,IAAM,EAAc,GAAe,EAAK,CAAK,EAC7C,GAAI,CAAC,EAAY,WAAW,UAAU,EACpC,OAAO,EAET,GAAI,IAAyB,CAAK,EAChC,OAAO,EAET,IAAM,EAAgB,IAAkC,CAAK,EACvD,EAAiB,IAAkB,IAAK,GAAoB,EAAhB,EAClD,GAAI,IAAmB,EACrB,OAAO,EAAY,QAAQ,UAAW,EAAE,EAE1C,GAAI,EAAQ,CAAK,EACf,MAAO,eAET,IAAM,EAAkB,EACxB,GAAI,GAAmB,OAAO,EAAgB,QAAW,WACvD,GAAI,CAEF,OAAO,GAAM,GADK,EAAgB,OACT,EAAG,EAAiB,EAAG,EAAe,CAAI,CACrE,MAAQ,CACR,CAEF,IAAM,EAAa,MAAM,QAAQ,CAAK,EAAI,CAAC,EAAI,CAAC,EAC5C,EAAW,EACT,EAAY,GAAqB,CAAK,EAC5C,IAAK,IAAM,KAAY,EAAW,CAChC,GAAI,CAAC,OAAO,UAAU,eAAe,KAAK,EAAW,CAAQ,EAC3D,SAEF,GAAI,GAAY,EAAe,CAC7B,EAAW,GAAY,oBACvB,KACF,CACA,IAAM,EAAa,EAAU,GAC7B,EAAW,GAAY,GAAM,EAAU,EAAY,EAAiB,EAAG,EAAe,CAAI,EAC1F,GACF,CAEA,OADA,EAAU,CAAK,EACR,CACT,CACA,SAAS,GAAe,EAAK,EAAO,CAClC,GAAI,CACF,GAAI,GAAa,CACf,IAAM,EAAc,GAAY,CAAK,EACrC,GAAI,EACF,OAAO,CAEX,CAiBA,OAhBI,OAAO,OAAW,KAAe,IAAU,OACtC,WAEL,OAAO,GAAU,UAAY,CAAC,OAAO,SAAS,CAAK,EAC9C,IAAI,EAAM,GAEf,OAAO,GAAU,WACZ,cAAc,GAAgB,CAAK,EAAE,GAE1C,OAAO,GAAU,SACZ,IAAI,OAAO,CAAK,EAAE,GAEvB,OAAO,GAAU,SACZ,YAAY,OAAO,CAAK,EAAE,GAG5B,WADSwF,IAAmB,CACX,EAAE,EAC5B,OAAS,EAAK,CACZ,MAAO,yBAAyB,EAAI,EACtC,CACF,CACA,SAASA,IAAmB,EAAO,CACjC,IAAM,EAAY,OAAO,eAAe,CAAK,EAC7C,OAAO,GAAW,YAAc,EAAU,YAAY,KAAO,gBAC/D,CACA,SAAS,IAAW,EAAO,CACzB,MAAO,CAAC,CAAC,UAAU,CAAK,EAAE,MAAM,OAAO,EAAE,MAC3C,CACA,SAAS,IAAS,EAAO,CACvB,OAAO,IAAW,KAAK,UAAU,CAAK,CAAC,CACzC,CAUA,SAAS,KAAc,CACrB,IAAM,EAAwB,IAAI,QAClC,SAAS,EAAQ,EAAK,CAKpB,OAJI,EAAM,IAAI,CAAG,EACR,IAET,EAAM,IAAI,CAAG,EACN,GACT,CACA,SAAS,EAAU,EAAK,CACtB,EAAM,OAAO,CAAG,CAClB,CACA,MAAO,CAAC,EAAS,CAAS,CAC5B,CCrHA,SAASC,GAAS,EAAK,EAAM,EAAG,CAI9B,OAHI,OAAO,GAAQ,UAAY,IAAQ,GAGhC,EAAI,QAAU,EAFZ,EAEwB,GAAG,EAAI,MAAM,EAAG,CAAG,EAAE,IACxD,CA8BA,SAAS,GAAS,EAAO,EAAW,CAClC,GAAI,CAAC,MAAM,QAAQ,CAAK,EACtB,MAAO,GAET,IAAM,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAM,EAAQ,EAAM,GAChB,GAAY,CAAK,EACnB,EAAO,KAAK,OAAO,CAAK,CAAC,EAChB,aAAiB,MAC1B,EAAO,KAAK,EAAM,QAAU,GAAG,EAAM,KAAK,IAAI,EAAM,UAAY,EAAM,IAAI,EAE1E,EAAO,KAAK,GAAe,IAAK,GAAG,CAAK,CAAC,CAE7C,CACA,OAAO,EAAO,KAAK,CAAS,CAC9B,CACA,SAAS,GAAkB,EAAO,EAAS,EAA0B,GAAO,CAa1E,OAZK,GAAS,CAAK,EAGf,IAAS,CAAO,EACX,EAAQ,KAAK,CAAK,EAEvB,GAAS,CAAO,EACX,EAA0B,IAAU,EAAU,EAAM,SAAS,CAAO,EAEzE,OAAO,GAAY,WACd,EAAQ,CAAK,EAEf,GAXE,EAYX,CACA,SAAS,GAAyB,EAAY,EAAW,CAAC,EAAG,EAA0B,GAAO,CAC5F,IAAK,IAAM,KAAW,EACpB,GAAI,GAAkB,EAAY,EAAS,CAAuB,EAChE,MAAO,GAGX,MAAO,EACT,CClFA,SAAS,KAAY,CACnB,IAAM,EAAM,GACZ,OAAO,EAAI,QAAU,EAAI,QAC3B,CACA,IAAI,GACJ,SAAS,KAAgB,CACvB,OAAO,GAAe,EAAI,EAC5B,CACA,SAAS,GAAM,EAAS,IAAU,EAAG,CACnC,GAAI,CACF,GAAI,GAAQ,WACV,OAAO,OAA4B,EAAO,WAAW,CAAC,EAAE,QAAQ,KAAM,EAAE,CAE5E,MAAQ,CACR,CAIA,MAHA,CACE,KAAY,mCAEP,GAAU,QACf,SACC,IAEE,GAAK,IAAc,EAAI,KAAO,EAAI,GAAG,SAAS,EAAE,CAErD,CACF,CACA,SAAS,GAAkB,EAAO,CAChC,OAAO,EAAM,WAAW,SAAS,EACnC,CACA,SAAS,GAAoB,EAAO,CAClC,GAAM,CAAE,UAAS,SAAU,GAAY,EACvC,GAAI,EACF,OAAO,EAET,IAAM,EAAiB,GAAkB,CAAK,EAO9C,OANI,EACE,EAAe,MAAQ,EAAe,MACjC,GAAG,EAAe,KAAK,IAAI,EAAe,QAE5C,EAAe,MAAQ,EAAe,OAAS,GAAW,YAE5D,GAAW,WACpB,CACA,SAAS,GAAsB,EAAO,EAAO,EAAM,CACjD,IAAM,EAAY,EAAM,UAAY,EAAM,WAAa,CAAC,EAClD,EAAS,EAAU,OAAS,EAAU,QAAU,CAAC,EACjD,EAAiB,EAAO,GAAK,EAAO,IAAM,CAAC,EACjD,CACE,CAAe,QAAQ,GAAS,GAElC,CACE,CAAe,OAAO,GAAQ,OAElC,CACA,SAAS,GAAsB,EAAO,EAAc,CAClD,IAAM,EAAiB,GAAkB,CAAK,EAC9C,GAAI,CAAC,EACH,OAEF,IAAM,EAAmB,CAAE,KAAM,UAAW,QAAS,EAAK,EACpD,EAAmB,EAAe,UAExC,GADA,EAAe,UAAY,CAAE,GAAG,EAAkB,GAAG,EAAkB,GAAG,CAAa,EACnF,GAAgB,SAAU,EAAc,CAC1C,IAAM,EAAa,CAAE,GAAG,GAAkB,KAAM,GAAG,EAAa,IAAK,EACrE,EAAe,UAAU,KAAO,CAClC,CACF,CA6BA,SAAS,GAAwB,EAAW,CAC1C,GAAI,IAAkB,CAAS,EAC7B,MAAO,GAET,GAAI,CACF,GAAyB,EAAW,sBAAuB,EAAI,CACjE,MAAQ,CACR,CACA,MAAO,EACT,CACA,SAAS,IAAkB,EAAW,CACpC,GAAI,CACF,OAAO,EAAU,mBACnB,MAAQ,CACR,CACF,CChHA,IAAM,GAAmB,IACzB,SAAS,IAAyB,CAChC,OAAO,GAAY,EAAI,EACzB,CACA,SAAS,KAAmC,CAC1C,GAAM,CAAE,eAAgB,GACxB,GAAI,CAAC,GAAa,KAAO,CAAC,EAAY,WACpC,OAAO,GAET,IAAM,EAAa,EAAY,WAC/B,WACU,EAAa,OAA4B,EAAY,IAAI,CAAC,GAAK,EAE3E,CACA,IAAI,IACJ,SAAS,IAAqB,CAE5B,OADa,GAA8B,GAA4B,IAAiC,GAC5F,CACd,CACA,IAAI,GAAmB,KACvB,SAAS,KAAuB,CAC9B,GAAM,CAAE,eAAgB,GACxB,GAAI,CAAC,GAAa,IAChB,OAEF,IAAM,EAAY,IACZ,EAAiB,OAA4B,EAAY,IAAI,CAAC,EAC9D,EAAU,GAAY,EACtB,EAAa,EAAY,WAC/B,GAAI,OAAO,GAAe,UACA,KAAK,IAAI,EAAa,EAAiB,CAC7C,EAAI,EACpB,OAAO,EAGX,IAAM,EAAkB,EAAY,QAAQ,gBAO5C,OANI,OAAO,GAAoB,UACA,KAAK,IAAI,EAAkB,EAAiB,CAClD,EAAI,EAClB,EAGJ,EAAU,CACnB,CACA,SAAS,IAA+B,CAItC,OAHI,KAAqB,OACvB,GAAmB,IAAqB,GAEnC,EACT,CCjDA,SAASC,IAAY,EAAS,CAC5B,IAAM,EAAe,GAAmB,EAClC,EAAU,CACd,IAAK,GAAM,EACX,KAAM,GACN,UAAW,EACX,QAAS,EACT,SAAU,EACV,OAAQ,KACR,OAAQ,EACR,eAAgB,GAChB,WAAc,IAAc,CAAO,CACrC,EAIA,OAHI,GACF,GAAc,EAAS,CAAO,EAEzB,CACT,CACA,SAAS,GAAc,EAAS,EAAU,CAAC,EAAG,CA4B5C,GA3BI,EAAQ,OACN,CAAC,EAAQ,WAAa,EAAQ,KAAK,aACrC,EAAQ,UAAY,EAAQ,KAAK,YAE/B,CAAC,EAAQ,KAAO,CAAC,EAAQ,MAC3B,EAAQ,IAAM,EAAQ,KAAK,IAAM,EAAQ,KAAK,OAAS,EAAQ,KAAK,WAGxE,EAAQ,UAAY,EAAQ,WAAa,GAAmB,EACxD,EAAQ,qBACV,EAAQ,mBAAqB,EAAQ,oBAEnC,EAAQ,iBACV,EAAQ,eAAiB,EAAQ,gBAE/B,EAAQ,MACV,EAAQ,IAAM,EAAQ,IAAI,SAAW,GAAK,EAAQ,IAAM,GAAM,GAE5D,EAAQ,OAAS,IAAK,KACxB,EAAQ,KAAO,EAAQ,MAErB,CAAC,EAAQ,KAAO,EAAQ,MAC1B,EAAQ,IAAM,GAAG,EAAQ,OAEvB,OAAO,EAAQ,SAAY,WAC7B,EAAQ,QAAU,EAAQ,SAExB,EAAQ,eACV,EAAQ,SAAW,IAAK,QACnB,GAAI,OAAO,EAAQ,UAAa,SACrC,EAAQ,SAAW,EAAQ,aACtB,CACL,IAAM,EAAW,EAAQ,UAAY,EAAQ,QAC7C,EAAQ,SAAW,GAAY,EAAI,EAAW,CAChD,CACI,EAAQ,UACV,EAAQ,QAAU,EAAQ,SAExB,EAAQ,cACV,EAAQ,YAAc,EAAQ,aAE5B,CAAC,EAAQ,WAAa,EAAQ,YAChC,EAAQ,UAAY,EAAQ,WAE1B,CAAC,EAAQ,WAAa,EAAQ,YAChC,EAAQ,UAAY,EAAQ,WAE1B,OAAO,EAAQ,QAAW,WAC5B,EAAQ,OAAS,EAAQ,QAEvB,EAAQ,SACV,EAAQ,OAAS,EAAQ,OAE7B,CACA,SAAS,IAAa,EAAS,EAAQ,CACrC,IAAI,EAAU,CAAC,EACX,EACF,EAAU,CAAE,QAAO,EACV,EAAQ,SAAW,OAC5B,EAAU,CAAE,OAAQ,QAAS,GAE/B,GAAc,EAAS,CAAO,CAChC,CACA,SAAS,IAAc,EAAS,CAC9B,MAAO,CACL,IAAK,GAAG,EAAQ,MAChB,KAAM,EAAQ,KAEd,QAAS,IAAI,KAAK,EAAQ,QAAU,GAAG,EAAE,YAAY,EACrD,UAAW,IAAI,KAAK,EAAQ,UAAY,GAAG,EAAE,YAAY,EACzD,OAAQ,EAAQ,OAChB,OAAQ,EAAQ,OAChB,IAAK,OAAO,EAAQ,KAAQ,UAAY,OAAO,EAAQ,KAAQ,SAAW,GAAG,EAAQ,MAAQ,IAAK,GAClG,SAAU,EAAQ,SAClB,mBAAoB,EAAQ,mBAC5B,MAAO,CACL,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,WAAY,EAAQ,UACpB,WAAY,EAAQ,SACtB,CACF,CACF,CCxGA,SAAS7C,GAAM,EAAY,EAAU,EAAS,EAAG,CAC/C,GAAI,CAAC,GAAY,OAAO,GAAa,UAAY,GAAU,EACzD,OAAO,EAET,GAAI,GAAc,OAAO,KAAK,CAAQ,EAAE,SAAW,EACjD,OAAO,EAET,IAAM,EAAS,CAAE,GAAG,CAAW,EAC/B,IAAK,IAAM,KAAO,EACZ,OAAO,UAAU,eAAe,KAAK,EAAU,CAAG,IACpD,EAAO,GAAOA,GAAM,EAAO,GAAM,EAAS,GAAM,EAAS,CAAC,GAG9D,OAAO,CACT,CCZA,SAAS,IAAkB,CACzB,OAAO,GAAM,CACf,CACA,SAAS,IAAiB,CACxB,OAAO,GAAM,EAAE,UAAU,EAAE,CAC7B,CCLA,SAAS,GAAY,EAAO,CAC1B,GAAI,CACF,IAAM,EAAc,GAAW,QAC/B,GAAI,OAAO,GAAgB,WACzB,OAAO,IAAI,EAAY,CAAK,CAEhC,MAAQ,CACR,CACA,OAAO,CACT,CACA,SAAS,GAAa,EAAK,CACpB,KAGL,IAAI,OAAO,GAAQ,UAAY,UAAW,GAAO,OAAO,EAAI,OAAU,WACpE,GAAI,CACF,OAAO,EAAI,MAAM,CACnB,MAAQ,CACN,MACF,CAEF,OAAO,CAFL,CAGJ,CCrBA,IAAM,GAAmB,cACzB,SAAS,GAAiB,EAAO,EAAM,CACjC,EACF,GAAyB,EAAO,GAAkB,GAAY,CAAI,CAAC,EAEnE,OAAO,EAAM,GAEjB,CACA,SAAS,GAAiB,EAAO,CAC/B,OAAO,GAAa,EAAM,GAAiB,CAC7C,CCDA,IAAM,IAA0B,IAC1B,GAAN,MAAM,CAAM,CAEV,aAAc,CACZ,KAAK,oBAAsB,GAC3B,KAAK,gBAAkB,CAAC,EACxB,KAAK,iBAAmB,CAAC,EACzB,KAAK,aAAe,CAAC,EACrB,KAAK,aAAe,CAAC,EACrB,KAAK,MAAQ,CAAC,EACd,KAAK,MAAQ,CAAC,EACd,KAAK,YAAc,CAAC,EACpB,KAAK,OAAS,CAAC,EACf,KAAK,UAAY,CAAC,EAClB,KAAK,uBAAyB,CAAC,EAC/B,KAAK,oBAAsB,CACzB,QAAS,GAAgB,EACzB,WAAY,GAAe,CAC7B,CACF,CAIA,OAAQ,CACN,IAAM,EAAW,IAAI,EAwBrB,MAvBA,GAAS,aAAe,CAAC,GAAG,KAAK,YAAY,EAC7C,EAAS,MAAQ,CAAE,GAAG,KAAK,KAAM,EACjC,EAAS,YAAc,CAAE,GAAG,KAAK,WAAY,EAC7C,EAAS,OAAS,CAAE,GAAG,KAAK,MAAO,EACnC,EAAS,UAAY,CAAE,GAAG,KAAK,SAAU,EACrC,KAAK,UAAU,QACjB,EAAS,UAAU,MAAQ,CACzB,OAAQ,CAAC,GAAG,KAAK,UAAU,MAAM,MAAM,CACzC,GAEF,EAAS,MAAQ,KAAK,MACtB,EAAS,OAAS,KAAK,OACvB,EAAS,SAAW,KAAK,SACzB,EAAS,iBAAmB,KAAK,iBACjC,EAAS,aAAe,KAAK,aAC7B,EAAS,iBAAmB,CAAC,GAAG,KAAK,gBAAgB,EACrD,EAAS,aAAe,CAAC,GAAG,KAAK,YAAY,EAC7C,EAAS,uBAAyB,CAAE,GAAG,KAAK,sBAAuB,EACnE,EAAS,oBAAsB,CAAE,GAAG,KAAK,mBAAoB,EAC7D,EAAS,QAAU,KAAK,QACxB,EAAS,aAAe,KAAK,aAC7B,EAAS,gBAAkB,KAAK,gBAChC,GAAiB,EAAU,GAAiB,IAAI,CAAC,EAC1C,CACT,CAMA,UAAU,EAAQ,CAChB,KAAK,QAAU,CACjB,CAKA,eAAe,EAAa,CAC1B,KAAK,aAAe,CACtB,CAIA,WAAY,CACV,OAAO,KAAK,OACd,CAKA,aAAc,CACZ,OAAO,KAAK,YACd,CAIA,iBAAiB,EAAU,CACzB,KAAK,gBAAgB,KAAK,CAAQ,CACpC,CAIA,kBAAkB,EAAU,CAE1B,OADA,KAAK,iBAAiB,KAAK,CAAQ,EAC5B,IACT,CAKA,QAAQ,EAAM,CAWZ,MAVA,MAAK,MAAQ,GAAQ,CACnB,MAAO,IAAK,GACZ,GAAI,IAAK,GACT,WAAY,IAAK,GACjB,SAAU,IAAK,EACjB,EACI,KAAK,UACP,GAAc,KAAK,SAAU,CAAE,MAAK,CAAC,EAEvC,KAAK,sBAAsB,EACpB,IACT,CAIA,SAAU,CACR,OAAO,KAAK,KACd,CAKA,kBAAkB,EAAgB,CAGhC,MAFA,MAAK,gBAAkB,GAAkB,IAAK,GAC9C,KAAK,sBAAsB,EACpB,IACT,CAKA,QAAQ,EAAM,CAMZ,MALA,MAAK,MAAQ,CACX,GAAG,KAAK,MACR,GAAG,CACL,EACA,KAAK,sBAAsB,EACpB,IACT,CAIA,OAAO,EAAK,EAAO,CACjB,OAAO,KAAK,QAAQ,EAAG,GAAM,CAAM,CAAC,CACtC,CAmBA,cAAc,EAAe,CAM3B,MALA,MAAK,YAAc,CACjB,GAAG,KAAK,YACR,GAAG,CACL,EACA,KAAK,sBAAsB,EACpB,IACT,CAkBA,aAAa,EAAK,EAAO,CACvB,OAAO,KAAK,cAAc,EAAG,GAAM,CAAM,CAAC,CAC5C,CAWA,gBAAgB,EAAK,CAKnB,OAJI,KAAO,KAAK,cACd,OAAO,KAAK,YAAY,GACxB,KAAK,sBAAsB,GAEtB,IACT,CAKA,UAAU,EAAQ,CAMhB,MALA,MAAK,OAAS,CACZ,GAAG,KAAK,OACR,GAAG,CACL,EACA,KAAK,sBAAsB,EACpB,IACT,CAIA,SAAS,EAAK,EAAO,CAGnB,MAFA,MAAK,OAAS,CAAE,GAAG,KAAK,QAAS,GAAM,CAAM,EAC7C,KAAK,sBAAsB,EACpB,IACT,CAKA,eAAe,EAAa,CAG1B,MAFA,MAAK,aAAe,EACpB,KAAK,sBAAsB,EACpB,IACT,CAIA,SAAS,EAAO,CAGd,MAFA,MAAK,OAAS,EACd,KAAK,sBAAsB,EACpB,IACT,CAYA,mBAAmB,EAAM,CAGvB,MAFA,MAAK,iBAAmB,EACxB,KAAK,sBAAsB,EACpB,IACT,CAMA,WAAW,EAAK,EAAS,CAOvB,OANI,IAAY,KACd,OAAO,KAAK,UAAU,GAEtB,KAAK,UAAU,GAAO,EAExB,KAAK,sBAAsB,EACpB,IACT,CAIA,WAAW,EAAS,CAOlB,OANK,EAGH,KAAK,SAAW,EAFhB,OAAO,KAAK,SAId,KAAK,sBAAsB,EACpB,IACT,CAIA,YAAa,CACX,OAAO,KAAK,QACd,CAOA,OAAO,EAAgB,CACrB,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAe,OAAO,GAAmB,WAAa,EAAe,IAAI,EAAI,EAE7E,CACJ,OACA,aACA,QACA,OACA,WACA,QACA,cAAc,CAAC,EACf,qBACA,mBAVoB,aAAwB,EAAQ,EAAa,aAAa,EAAI,GAAc,CAAY,EAAI,EAAiB,IAAK,KAWnH,CAAC,EAoBtB,MAnBA,MAAK,MAAQ,CAAE,GAAG,KAAK,MAAO,GAAG,CAAK,EACtC,KAAK,YAAc,CAAE,GAAG,KAAK,YAAa,GAAG,CAAW,EACxD,KAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,GAAG,CAAM,EACzC,KAAK,UAAY,CAAE,GAAG,KAAK,UAAW,GAAG,CAAS,EAC9C,GAAQ,OAAO,KAAK,CAAI,EAAE,SAC5B,KAAK,MAAQ,GAEX,IACF,KAAK,OAAS,GAEZ,EAAY,SACd,KAAK,aAAe,GAElB,IACF,KAAK,oBAAsB,GAEzB,IACF,KAAK,gBAAkB,GAElB,IACT,CAKA,OAAQ,CAmBN,MAlBA,MAAK,aAAe,CAAC,EACrB,KAAK,MAAQ,CAAC,EACd,KAAK,YAAc,CAAC,EACpB,KAAK,OAAS,CAAC,EACf,KAAK,MAAQ,CAAC,EACd,KAAK,UAAY,CAAC,EAClB,KAAK,OAAS,IAAK,GACnB,KAAK,iBAAmB,IAAK,GAC7B,KAAK,aAAe,IAAK,GACzB,KAAK,SAAW,IAAK,GACrB,KAAK,gBAAkB,IAAK,GAC5B,GAAiB,KAAM,IAAK,EAAC,EAC7B,KAAK,aAAe,CAAC,EACrB,KAAK,sBAAsB,CACzB,QAAS,GAAgB,EACzB,WAAY,GAAe,CAC7B,CAAC,EACD,KAAK,sBAAsB,EACpB,IACT,CAKA,cAAc,EAAY,EAAgB,CACxC,IAAM,EAAY,OAAO,GAAmB,SAAW,EAAiB,IACxE,GAAI,GAAa,EACf,OAAO,KAET,IAAM,EAAmB,CACvB,UAAW,GAAuB,EAClC,GAAG,EAEH,QAAS,EAAW,QAAU4C,GAAS,EAAW,QAAS,IAAI,EAAI,EAAW,OAChF,EAOA,OANA,KAAK,aAAa,KAAK,CAAgB,EACnC,KAAK,aAAa,OAAS,IAC7B,KAAK,aAAe,KAAK,aAAa,MAAM,CAAC,CAAS,EACtD,KAAK,SAAS,mBAAmB,kBAAmB,UAAU,GAEhE,KAAK,sBAAsB,EACpB,IACT,CAIA,mBAAoB,CAClB,OAAO,KAAK,aAAa,KAAK,aAAa,OAAS,EACtD,CAIA,kBAAmB,CAGjB,MAFA,MAAK,aAAe,CAAC,EACrB,KAAK,sBAAsB,EACpB,IACT,CAIA,cAAc,EAAY,CAExB,OADA,KAAK,aAAa,KAAK,CAAU,EAC1B,IACT,CAIA,kBAAmB,CAEjB,MADA,MAAK,aAAe,CAAC,EACd,IACT,CAIA,cAAe,CACb,MAAO,CACL,YAAa,KAAK,aAClB,YAAa,KAAK,aAClB,SAAU,KAAK,UACf,KAAM,KAAK,MACX,WAAY,KAAK,YACjB,MAAO,KAAK,OACZ,KAAM,KAAK,MACX,MAAO,KAAK,OACZ,YAAa,KAAK,cAAgB,CAAC,EACnC,gBAAiB,KAAK,iBACtB,mBAAoB,KAAK,oBACzB,sBAAuB,KAAK,uBAC5B,gBAAiB,KAAK,iBACtB,KAAM,GAAiB,IAAI,EAC3B,eAAgB,KAAK,eACvB,CACF,CAIA,yBAAyB,EAAS,CAEhC,MADA,MAAK,uBAAyB5C,GAAM,KAAK,uBAAwB,EAAS,CAAC,EACpE,IACT,CAIA,sBAAsB,EAAS,CAE7B,MADA,MAAK,oBAAsB,EACpB,IACT,CAIA,uBAAwB,CACtB,OAAO,KAAK,mBACd,CAMA,iBAAiB,EAAW,EAAM,CAChC,IAAM,EAAU,GAAM,UAAY,GAAM,EACxC,GAAI,CAAC,KAAK,QAER,OADA,IAAemC,GAAM,KAAK,6DAA6D,EAChF,EAET,IAAM,EAAyB,MAAM,2BAA2B,EAWhE,OAVA,KAAK,QAAQ,iBACX,EACA,CACE,kBAAmB,EACnB,qBACA,GAAG,EACH,SAAU,CACZ,EACA,IACF,EACO,CACT,CAMA,eAAe,EAAS,EAAO,EAAM,CACnC,IAAM,EAAU,GAAM,UAAY,GAAM,EACxC,GAAI,CAAC,KAAK,QAER,OADA,IAAeA,GAAM,KAAK,2DAA2D,EAC9E,EAET,IAAM,EAAqB,GAAM,oBAA0B,MAAM,CAAO,EAYxE,OAXA,KAAK,QAAQ,eACX,EACA,EACA,CACE,kBAAmB,EACnB,qBACA,GAAG,EACH,SAAU,CACZ,EACA,IACF,EACO,CACT,CAMA,aAAa,EAAO,EAAM,CACxB,IAAM,EAAU,EAAM,UAAY,GAAM,UAAY,GAAM,EAM1D,OALK,KAAK,SAIV,KAAK,QAAQ,aAAa,EAAO,CAAE,GAAG,EAAM,SAAU,CAAQ,EAAG,IAAI,EAC9D,IAJL,IAAeA,GAAM,KAAK,yDAAyD,EAC5E,EAIX,CAIA,uBAAwB,CACtB,IAKE,CAAK,uBAJL,KAAK,oBAAsB,GAC3B,KAAK,gBAAgB,QAAS,GAAa,CACzC,EAAS,IAAI,CACf,CAAC,EAC0B,GAE/B,CACF,ECvhBA,SAAS,KAAyB,CAChC,OAAO,GAAmB,0BAA6B,IAAI,EAAO,CACpE,CACA,SAAS,KAA2B,CAClC,OAAO,GAAmB,4BAA+B,IAAI,EAAO,CACtE,CCRA,IAAM,GAAmB,GAAM,aAAa,SAAW,CAAC,EAAE,IACpD,GAA+B,OAAO,qBAAqB,EAC3D,KAA2B,EAAU,EAAW,IAAY,CAChE,IAAM,EAAU,EAAS,KACtB,IACC,EAAU,CAAK,EACR,GAER,GAAQ,CAEP,MADA,EAAQ,CAAG,EACL,CACR,CACF,EACA,OAAO,GAAgB,CAAO,GAAK,GAAgB,CAAQ,EAAI,EAAU,IAAU,EAAU,CAAO,CACtG,EACM,KAAa,EAAU,IAAY,CACvC,GAAI,CAAC,EAAS,OAAO,EACrB,IAAI,EAAU,GACd,IAAK,IAAM,KAAO,EAAU,CAC1B,GAAI,KAAO,EAAS,SACpB,EAAU,GACV,IAAM,EAAQ,EAAS,GACnB,OAAO,GAAU,WACnB,OAAO,eAAe,EAAS,EAAK,CAClC,OAAQ,GAAG,IAAS,EAAM,MAAM,EAAU,CAAI,EAC9C,WAAY,GACZ,aAAc,GACd,SAAU,EACZ,CAAC,EAED,EAAQ,GAAO,CAEnB,CAEA,OADI,GAAS,OAAO,OAAO,EAAS,EAAG,IAAe,EAAK,CAAC,EACrD,CACT,EC7BM,IAAN,KAAwB,CACtB,YAAY,EAAO,EAAgB,CACjC,IAAI,EACJ,CACE,CADG,GACa,IAAI,GAItB,IAAI,EACJ,CACE,CADG,GACsB,IAAI,GAI/B,KAAK,OAAS,CAAC,CAAE,MAAO,CAAc,CAAC,EACvC,KAAK,gBAAkB,CACzB,CAIA,UAAU,EAAU,CAClB,IAAM,EAAQ,KAAK,WAAW,EAC1B,EACJ,GAAI,CACF,EAAqB,EAAS,CAAK,CACrC,OAAS,EAAG,CAEV,MADA,KAAK,UAAU,EACT,CACR,CASA,OARI,GAAW,CAAkB,EACxB,IACL,MACM,KAAK,UAAU,MACf,KAAK,UAAU,CACvB,GAEF,KAAK,UAAU,EACR,EACT,CAIA,WAAY,CACV,OAAO,KAAK,YAAY,EAAE,MAC5B,CAIA,UAAW,CACT,OAAO,KAAK,YAAY,EAAE,KAC5B,CAIA,mBAAoB,CAClB,OAAO,KAAK,eACd,CAIA,aAAc,CACZ,OAAO,KAAK,OAAO,KAAK,OAAO,OAAS,EAC1C,CAIA,YAAa,CACX,IAAM,EAAQ,KAAK,SAAS,EAAE,MAAM,EAKpC,OAJA,KAAK,OAAO,KAAK,CACf,OAAQ,KAAK,UAAU,EACvB,OACF,CAAC,EACM,CACT,CAIA,WAAY,CAEV,OADI,KAAK,OAAO,QAAU,EAAU,GAC7B,CAAC,CAAC,KAAK,OAAO,IAAI,CAC3B,CACF,EACA,SAAS,IAAuB,CAE9B,IAAM,EAAS,GADE,GACsB,CAAC,EACxC,MAAO,GAAO,MAAQ,EAAO,OAAS,IAAI,IAAkB,IAAuB,EAAG,IAAyB,CAAC,CAClH,CACA,SAASW,IAAU,EAAU,CAC3B,OAAO,GAAqB,EAAE,UAAU,CAAQ,CAClD,CACA,SAAS,IAAa,EAAO,EAAU,CACrC,IAAM,EAAQ,GAAqB,EACnC,OAAO,EAAM,eACX,EAAM,YAAY,EAAE,MAAQ,EACrB,EAAS,CAAK,EACtB,CACH,CACA,SAAS,GAAmB,EAAU,CACpC,OAAO,GAAqB,EAAE,cACrB,EAAS,GAAqB,EAAE,kBAAkB,CAAC,CAC3D,CACH,CACA,SAAS,KAA+B,CACtC,MAAO,CACL,sBACA,cACA,iBACA,uBAAwB,EAAiB,IAChC,GAAmB,CAAQ,EAEpC,oBAAuB,GAAqB,EAAE,SAAS,EACvD,sBAAyB,GAAqB,EAAE,kBAAkB,CACpE,CACF,CC/GA,SAAS,GAAwB,EAAS,CACxC,IAAM,EAAS,GAAiB,CAAO,EAIvC,OAHI,EAAO,IACF,EAAO,IAET,IAA6B,CACtC,CCZA,SAAS,IAAkB,EAAU,CACnC,OAAO,OAAO,GAAa,YAAY,GAAoB,CAAC,MAAM,QAAQ,CAAQ,GAAK,OAAO,KAAK,CAAQ,EAAE,SAAS,OAAO,CAC/H,CACA,SAAS,IAAoC,EAAU,EAAa,CAClE,GAAM,CAAE,QAAO,QAAS,IAAkB,CAAQ,EAAI,EAAW,CAAE,MAAO,EAAU,KAAM,IAAK,EAAE,EAC3F,EAAiB,IAAuB,CAAK,EAC7C,EAAc,GAAQ,OAAO,GAAS,SAAW,CAAE,MAAK,EAAI,CAAC,EACnE,GAAI,EACF,MAAO,CAAE,GAAG,EAAgB,GAAG,CAAY,EAE7C,GAAI,CAAC,GAAe,IAAgB,kBAAoB,IAAU,IAAK,GACrE,OAEF,IAAI,EAAc,GAClB,GAAI,CACF,EAAc,KAAK,UAAU,CAAK,GAAK,EACzC,MAAQ,CACR,CACA,MAAO,CACL,MAAO,EACP,KAAM,SACN,GAAG,CACL,CACF,CACA,SAAS,GAAoB,EAAY,EAAW,GAAO,CACzD,IAAM,EAAuB,CAAC,EAC9B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,GAAc,CAAC,CAAC,EAAG,CAC3D,IAAM,EAAa,IAAoC,EAAO,CAAQ,EAClE,IACF,EAAqB,GAAO,EAEhC,CACA,OAAO,CACT,CA+BA,SAAS,IAAuB,EAAO,CACrC,GAAI,MAAM,QAAQ,CAAK,EACrB,MAAO,CAAE,QAAO,KAAM,OAAQ,EAEhC,IAAM,EAAgB,OAAO,GAAU,SAAW,SAAW,OAAO,GAAU,UAAY,UAAY,OAAO,GAAU,UAAY,CAAC,OAAO,MAAM,CAAK,EAAI,OAAO,UAAU,CAAK,EAAI,UAAY,SAAW,KAC3M,GAAI,EACF,MAAO,CAAE,QAAO,KAAM,CAAc,CAExC,CCrEA,IAAI,GAIJ,SAAS,KAAgC,CACvC,OAAO,KAAsC,CAC/C,CACA,SAAS,KAAgC,CACvC,OAAO,KAAwC,IAAK,EACtD,CACA,SAAS,IAAkB,CAGzB,OADY,GADI,GAC0B,CACjC,EAAE,gBAAgB,CAC7B,CACA,SAAS,IAAoB,CAG3B,OADY,GADI,GAC0B,CACjC,EAAE,kBAAkB,CAC/B,CACA,SAAS,KAAiB,CACxB,OAAO,GAAmB,kBAAqB,IAAI,EAAO,CAC5D,CACA,SAAS,GAAU,GAAG,EAAM,CAE1B,IAAM,EAAM,GADI,GAC0B,CAAC,EAC3C,GAAI,EAAK,SAAW,EAAG,CACrB,GAAM,CAAC,EAAO,GAAY,EAI1B,OAHK,EAGE,EAAI,aAAa,EAAO,CAAQ,EAF9B,EAAI,UAAU,CAAQ,CAGjC,CACA,OAAO,EAAI,UAAU,EAAK,EAAE,CAC9B,CAaA,SAAS,IAAY,CACnB,OAAO,GAAgB,EAAE,UAAU,CACrC,CACA,SAAS,IAAyB,EAAO,CACvC,IAAM,EAAkB,IAA8B,EACtD,GAAI,EACF,MAAO,CAAE,SAAU,EAAgB,QAAS,QAAS,EAAgB,MAAO,EAG9E,GAAM,CAAE,UAAS,eAAc,qBADJ,EAAM,sBACqC,EAChE,EAAe,CACnB,SAAU,EACV,QAAS,GAAqB,GAAe,CAC/C,EAIA,OAHI,IACF,EAAa,eAAiB,GAEzB,CACT,CCtEA,IAAM,GAAmC,gBACnC,IAAwC,qBACxC,IAAuD,oCACvD,GAA+B,YAC/B,GAAmC,gBAEnC,GAAoD,iCACpD,GAA6C,0BAC7C,GAA8C,2BAY9C,GAA6C,0BAC7C,GAAgC,oBAChC,GAAoC,wBAMpC,IAAoC,mBACpC,IAAmC,yBC1BzC,SAAS,IAA0B,EAAY,CAC7C,GAAI,EAAa,KAAO,GAAc,IACpC,MAAO,CAAE,MAAqB,EAEhC,GAAI,GAAc,KAAO,EAAa,IACpC,OAAQ,EAAR,CACE,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,iBAAkB,EAC/D,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,mBAAoB,EACjE,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,WAAY,EACzD,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,gBAAiB,EAC9D,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,qBAAsB,EACnE,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,oBAAqB,EAClE,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,WAAY,EACzD,QACE,MAAO,CAAE,OAAyB,QAAS,kBAAmB,CAClE,CAEF,GAAI,GAAc,KAAO,EAAa,IACpC,OAAQ,EAAR,CACE,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,eAAgB,EAC7D,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,aAAc,EAC3D,IAAK,KACH,MAAO,CAAE,OAAyB,QAAS,mBAAoB,EACjE,QACE,MAAO,CAAE,OAAyB,QAAS,gBAAiB,CAChE,CAEF,MAAO,CAAE,OAAyB,QAAS,gBAAiB,CAC9D,CACA,SAAS,GAAc,EAAM,EAAY,CACvC,EAAK,aAAa,4BAA6B,CAAU,EACzD,IAAM,EAAa,IAA0B,CAAU,EACnD,EAAW,UAAY,iBACzB,EAAK,UAAU,CAAU,CAE7B,CC5CA,IAAM,GAA4B,eAC5B,GAAsC,wBACtC,IAAmD,OAAO,IAAI,4BAA4B,EAC1F,IAAwD,OAAO,IAAI,gCAAgC,EACnG,IAA6C,OAAO,IAAI,2BAA2B,EACzF,SAAS,GAAwB,EAAM,EAAO,EAAgB,CACxD,IACF,GAAyB,EAAM,GAAqC,GAAY,CAAc,CAAC,EAC/F,GAAyB,EAAM,GAA2B,CAAK,EAEnE,CACA,SAAS,GAAwB,EAAM,CACrC,IAAM,EAAiB,EACvB,MAAO,CACL,MAAO,EAAe,IACtB,eAAgB,GAAa,EAAe,GAAoC,CAClF,CACF,CAIA,SAAS,GAA0B,EAAM,CACvC,OAAO,EAAK,OAAsC,EACpD,CACA,SAAS,IAAyB,EAAM,CACtC,GAAyB,EAAM,IAAuC,EAAI,CAC5E,CAOA,SAAS,GAAyB,EAAM,CACtC,OAAO,EAAK,OAAgC,EAC9C,CClCA,IAAM,GAA4B,UAGlC,SAAS,GAAsC,EAAe,CAC5D,IAAM,EAAgB,IAAmB,CAAa,EACtD,GAAI,CAAC,EACH,OAEF,IAAM,EAAyB,OAAO,QAAQ,CAAa,EAAE,QAAQ,EAAK,CAAC,EAAK,KAAW,CACzF,GAAI,EAAI,oBAAoC,EAAG,CAC7C,IAAM,EAAiB,EAAI,MAAM,CAAgC,EACjE,EAAI,GAAkB,CACxB,CACA,OAAO,CACT,EAAG,CAAC,CAAC,EACL,GAAI,OAAO,KAAK,CAAsB,EAAE,OAAS,EAC/C,OAAO,CAIX,CACA,SAAS,IAA4C,EAAwB,CACtE,KAYL,OAAO,IATmB,OAAO,QAAQ,CAAsB,EAAE,QAC9D,EAAK,CAAC,EAAQ,MACT,IACF,EAAI,GAAG,KAA4B,KAAY,GAE1C,GAET,CAAC,CAE0C,CAAC,CAChD,CACA,SAAS,IAAmB,EAAe,CACrC,MAAC,GAAiB,CAAC,GAAS,CAAa,GAAK,CAAC,MAAM,QAAQ,CAAa,GAY9E,OATI,MAAM,QAAQ,CAAa,EACtB,EAAc,QAAQ,EAAK,IAAS,CACzC,IAAM,EAAoB,GAAsB,CAAI,EAIpD,OAHA,OAAO,QAAQ,CAAiB,EAAE,SAAS,CAAC,EAAK,KAAW,CAC1D,EAAI,GAAO,CACb,CAAC,EACM,CACT,EAAG,CAAC,CAAC,EAEA,GAAsB,CAAa,CAC5C,CACA,SAAS,GAAsB,EAAe,CAC5C,OAAO,EAAc,MAAM,GAAG,EAAE,IAAK,GAAiB,CACpD,IAAM,EAAQ,EAAa,QAAQ,GAAG,EAMtC,OALI,IAAU,GACL,CAAC,EAIH,CAFK,EAAa,MAAM,EAAG,CAExB,EADI,EAAa,MAAM,EAAQ,CACxB,CAAC,EAAE,IAAK,GAAe,CACtC,GAAI,CACF,OAAO,mBAAmB,EAAW,KAAK,CAAC,CAC7C,MAAQ,CACN,MACF,CACF,CAAC,CACH,CAAC,EAAE,QAAQ,EAAK,CAAC,EAAK,MAChB,GAAO,IACT,EAAI,GAAO,GAEN,GACN,CAAC,CAAC,CACP,CACA,SAAS,IAAsB,EAAQ,CACjC,UAAO,KAAK,CAAM,EAAE,SAAW,EAGnC,OAAO,OAAO,QAAQ,CAAM,EAAE,QAAQ,EAAe,CAAC,EAAW,GAAc,IAAiB,CAC9F,IAAM,EAAe,GAAG,mBAAmB,CAAS,EAAE,GAAG,mBAAmB,CAAW,IACjF,EAAmB,IAAiB,EAAI,EAAe,GAAG,EAAc,GAAG,IAO/E,OANE,EAAiB,aACnB,IAAeX,GAAM,KACnB,mBAAmB,EAAU,aAAa,EAAY,yDACxD,EACO,GAEA,CAEX,EAAG,EAAE,CACP,CC1FA,IAAM,IAAe,YACf,IAAY,mFAClB,SAAS,IAAgB,EAAU,CACjC,OAAO,IAAa,QAAU,IAAa,OAC7C,CACA,SAAS,GAAY,EAAK,EAAe,GAAO,CAC9C,GAAM,CAAE,OAAM,OAAM,OAAM,OAAM,YAAW,WAAU,aAAc,EACnE,MAAO,GAAG,EAAS,KAAK,IAAY,GAAgB,EAAO,IAAI,IAAS,GAAG,GAAG,IAAO,EAAO,IAAI,IAAS,GAAG,GAAG,GAAO,GAAG,EAAK,KAAY,GAC5I,CACA,SAAS,IAAc,EAAK,CAC1B,IAAM,EAAQ,IAAU,KAAK,CAAG,EAChC,GAAI,CAAC,EAAO,CACV,OAAqB,CACnB,QAAQ,MAAM,uBAAuB,GAAK,CAC5C,CAAC,EACD,MACF,CACA,GAAM,CAAC,EAAU,EAAW,EAAO,GAAI,EAAO,GAAI,EAAO,GAAI,EAAW,IAAM,EAAM,MAAM,CAAC,EACvF,EAAO,GACP,EAAY,EACV,EAAQ,EAAU,MAAM,GAAG,EAKjC,GAJI,EAAM,OAAS,IACjB,EAAO,EAAM,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAClC,EAAY,EAAM,IAAI,GAEpB,EAAW,CACb,IAAM,EAAe,EAAU,MAAM,MAAM,EACvC,IACF,EAAY,EAAa,GAE7B,CACA,OAAO,GAAkB,CAAE,OAAM,OAAM,OAAM,YAAW,OAAM,WAAU,WAAU,CAAC,CACrF,CACA,SAAS,GAAkB,EAAY,CACrC,MAAO,CACL,SAAU,EAAW,SACrB,UAAW,EAAW,WAAa,GACnC,KAAM,EAAW,MAAQ,GACzB,KAAM,EAAW,KACjB,KAAM,EAAW,MAAQ,GACzB,KAAM,EAAW,MAAQ,GACzB,UAAW,EAAW,SACxB,CACF,CACA,SAAS,IAAY,EAAK,CACxB,GAAI,CAACJ,GACH,MAAO,GAET,GAAM,CAAE,OAAM,YAAW,YAAa,EAwBtC,MAtBoC,CADR,WAAY,YAAa,OAAQ,WACR,EAAE,KAAM,GACtD,EAAI,GAIF,IAHL,GAAM,MAAM,uBAAuB,EAAU,SAAS,EAC/C,GAImB,EACrB,GAEJ,EAAU,MAAM,OAAO,EAIvB,IAAgB,CAAQ,EAIzB,GAAQ,MAAM,SAAS,EAAM,EAAE,CAAC,GAClC,GAAM,MAAM,oCAAoC,GAAM,EAC/C,IAEF,IAPL,GAAM,MAAM,wCAAwC,GAAU,EACvD,KALP,GAAM,MAAM,yCAAyC,GAAW,EACzD,GAWX,CACA,SAAS,IAAwB,EAAM,CAErC,OADc,EAAK,MAAM,GACd,IAAI,EACjB,CACA,SAAS,IAAuB,EAAQ,CACtC,IAAM,EAAU,EAAO,WAAW,EAC5B,CAAE,QAAS,EAAO,OAAO,GAAK,CAAC,EACjC,EAMJ,OALI,EAAQ,MACV,EAAS,OAAO,EAAQ,KAAK,EACpB,IACT,EAAS,IAAwB,CAAI,GAEhC,CACT,CACA,SAAS,IAAQ,EAAM,CACrB,IAAM,EAAa,OAAO,GAAS,SAAW,IAAc,CAAI,EAAI,GAAkB,CAAI,EACtF,MAAC,GAAc,CAAC,IAAY,CAAU,GAG1C,OAAO,CACT,CClGA,SAAS,GAAgB,EAAY,CACnC,GAAI,OAAO,GAAe,UACxB,OAAO,OAAO,CAAU,EAE1B,IAAM,EAAO,OAAO,GAAe,SAAW,WAAW,CAAU,EAAI,EACnE,YAAO,GAAS,UAAY,MAAM,CAAI,GAAK,EAAO,GAAK,EAAO,GAGlE,OAAO,CACT,CCFA,IAAM,GAAyB,OAC7B,2DAEF,EACA,SAAS,IAAuB,EAAa,CAC3C,GAAI,CAAC,EACH,OAEF,IAAM,EAAU,EAAY,MAAM,EAAkB,EACpD,GAAI,CAAC,EACH,OAEF,IAAI,EAMJ,OALI,EAAQ,KAAO,IACjB,EAAgB,GACP,EAAQ,KAAO,MACxB,EAAgB,IAEX,CACL,QAAS,EAAQ,GACjB,gBACA,aAAc,EAAQ,EACxB,CACF,CACA,SAAS,IAA8B,EAAa,EAAS,CAC3D,IAAM,EAAkB,IAAuB,CAAW,EACpD,EAAyB,GAAsC,CAAO,EAC5E,GAAI,CAAC,GAAiB,QACpB,MAAO,CACL,QAAS,GAAgB,EACzB,WAAY,GAAe,CAC7B,EAEF,IAAM,EAAa,IAAmC,EAAiB,CAAsB,EACzF,IACF,EAAuB,YAAc,EAAW,SAAS,GAE3D,GAAM,CAAE,UAAS,eAAc,iBAAkB,EACjD,MAAO,CACL,UACA,eACA,QAAS,EACT,IAAK,GAA0B,CAAC,EAEhC,YACF,CACF,CACA,SAAS,GAA0B,EAAU,GAAgB,EAAG,EAAS,GAAe,EAAG,EAAS,CAClG,IAAI,EAAgB,GAIpB,OAHI,IAAY,IAAK,KACnB,EAAgB,EAAU,KAAO,MAE5B,GAAG,EAAQ,GAAG,IAAS,GAChC,CACA,SAAS,GAA0B,EAAU,GAAgB,EAAG,EAAS,GAAe,EAAG,EAAS,CAClG,MAAO,MAAM,EAAQ,GAAG,EAAO,GAAG,EAAU,KAAO,MACrD,CACA,SAAS,IAAmC,EAAiB,EAAK,CAChE,IAAM,EAAmB,GAAgB,GAAK,WAAW,EACzD,GAAI,IAAqB,IAAK,GAC5B,OAAO,EAET,IAAM,EAAmB,GAAgB,GAAK,WAAW,EAUvD,OATE,GAAoB,GAAiB,gBAAkB,IAAK,GACvD,EAAgB,cAErB,GAAe,EAAI,EAGnB,EAAmB,GAAe,GAAK,EAAI,GAGtC,GAAe,CAE1B,CCjEA,IAAI,IAA0B,GAC9B,SAAS,IAA8B,EAAM,CAC3C,GAAM,CAAE,OAAQ,EAAS,QAAS,GAAa,EAAK,YAAY,EAC1D,CAAE,OAAM,KAAI,iBAAgB,SAAQ,SAAQ,SAAU,GAAW,CAAI,EAC3E,MAAO,CACL,iBACA,UACA,WACA,OACA,KACA,SACA,SACA,OACF,CACF,CACA,SAAS,IAAmB,EAAM,CAChC,GAAM,CAAE,SAAQ,QAAS,EAAU,YAAa,EAAK,YAAY,EAC3D,EAAiB,EAAW,EAAS,GAAW,CAAI,EAAE,eACtD,EAAQ,GAAwB,CAAI,EAAE,MAE5C,MAAO,CACL,iBACA,QAHc,EAAW,GAAO,sBAAsB,EAAE,mBAAqB,GAAe,EAAI,EAIhG,UACF,CACF,CACA,SAAS,IAAkB,EAAM,CAC/B,GAAM,CAAE,UAAS,UAAW,EAAK,YAAY,EAE7C,OAAO,GAA0B,EAAS,EAD1B,GAAc,CAC0B,CAAC,CAC3D,CACA,SAAS,IAAwB,EAAM,CACrC,GAAM,CAAE,UAAS,UAAW,EAAK,YAAY,EAE7C,OAAO,GAA0B,EAAS,EAD1B,GAAc,CAC0B,CAAC,CAC3D,CACA,SAAS,GAA4B,EAAO,CAC1C,GAAI,GAAS,EAAM,OAAS,EAC1B,OAAO,EAAM,KAAK,CAAE,QAAS,CAAE,SAAQ,UAAS,aAAY,GAAG,GAAe,iBAAkB,CAC9F,QAAS,EACT,SAAU,EACV,QAAS,MACT,aACA,GAAG,CACL,EAAE,CAIN,CACA,SAAS,GAAqB,EAAO,CACnC,GAAI,GAAO,OACT,OAAO,EAAM,KAAK,CAAE,QAAS,CAAE,SAAQ,UAAS,cAAc,iBAAkB,CAC9E,QAAS,EACT,SAAU,EACV,QAAS,MACT,YACF,EAAE,CAIN,CACA,SAAS,GAAuB,EAAO,CAUrC,OATI,OAAO,GAAU,SACZ,GAAyB,CAAK,EAEnC,MAAM,QAAQ,CAAK,EACd,EAAM,GAAK,EAAM,GAAK,IAE3B,aAAiB,KACZ,GAAyB,EAAM,QAAQ,CAAC,EAE1C,GAAmB,CAC5B,CACA,SAAS,GAAyB,EAAW,CAE3C,OADa,EAAY,WACX,EAAY,IAAM,CAClC,CACA,SAAS,GAAW,EAAM,CACxB,GAAI,GAAiB,CAAI,EACvB,OAAO,EAAK,YAAY,EAE1B,GAAM,CAAE,OAAQ,EAAS,QAAS,GAAa,EAAK,YAAY,EAChE,GAAI,GAAoC,CAAI,EAAG,CAC7C,GAAM,CAAE,aAAY,YAAW,OAAM,UAAS,SAAQ,SAAU,EAChE,MAAO,CACL,UACA,WACA,KAAM,EACN,YAAa,EACb,eAAgB,GAAoB,CAAI,EACxC,gBAAiB,GAAuB,CAAS,EAEjD,UAAW,GAAuB,CAAO,GAAK,IAAK,GACnD,OAAQ,GAAiB,CAAM,EAC/B,GAAI,EAAW,IACf,OAAQ,EAAW,IACnB,MAAO,GAA4B,CAAK,CAC1C,CACF,CACA,MAAO,CACL,UACA,WACA,gBAAiB,EACjB,KAAM,CAAC,CACT,CACF,CACA,SAAS,GAAuB,EAAM,CACpC,GAAI,GAAiB,CAAI,EACvB,OAAO,EAAK,oBAAoB,EAElC,GAAM,CAAE,OAAQ,EAAS,QAAS,GAAa,EAAK,YAAY,EAChE,GAAI,GAAoC,CAAI,EAAG,CAC7C,GAAM,CAAE,aAAY,YAAW,OAAM,UAAS,SAAQ,SAAU,EAChE,MAAO,CACL,OACA,UACA,WACA,eAAgB,GAAoB,CAAI,EACxC,gBAAiB,GAAuB,CAAS,EACjD,cAAe,GAAuB,CAAO,EAC7C,WAAY,IAAS,GAAwB,CAAI,EACjD,OAAQ,GAAgB,CAAM,EAC9B,WAAY,GAA0B,EAAY,CAAM,EACxD,MAAO,GAAqB,CAAK,CACnC,CACF,CACA,MAAO,CACL,UACA,WACA,gBAAiB,EACjB,KAAM,GACN,cAAe,EACf,OAAQ,KACR,WAAY,IAAS,GAAwB,CAAI,CACnD,CACF,CACA,SAAS,GAAoB,EAAM,CACjC,MAAO,iBAAkB,EAAO,EAAK,aAAe,sBAAuB,EAAO,EAAK,mBAAmB,OAAS,IAAK,EAC1H,CACA,SAAS,IAAiC,EAAU,CAClD,MAAO,CACL,GAAG,EACH,WAAY,GAAoB,EAAS,UAAU,EACnD,MAAO,EAAS,OAAO,IAAK,IAAU,CACpC,GAAG,EACH,WAAY,GAAoB,EAAK,UAAU,CACjD,EAAE,CACJ,CACF,CACA,SAAS,GAAoC,EAAM,CACjD,IAAM,EAAW,EACjB,MAAO,CAAC,CAAC,EAAS,YAAc,CAAC,CAAC,EAAS,WAAa,CAAC,CAAC,EAAS,MAAQ,CAAC,CAAC,EAAS,SAAW,CAAC,CAAC,EAAS,MAC9G,CACA,SAAS,GAAiB,EAAM,CAC9B,OAAO,OAAO,EAAK,aAAgB,UACrC,CACA,SAAS,GAAc,EAAM,CAC3B,GAAM,CAAE,cAAe,EAAK,YAAY,EACxC,OAAO,KACT,CACA,SAAS,GAAiB,EAAQ,CAC5B,MAAC,GAAU,EAAO,UAMtB,OAHI,EAAO,SACF,KAEF,EAAO,SAAW,gBAC3B,CACA,SAAS,GAAgB,EAAQ,CAC/B,MAAO,CAAC,GAAU,EAAO,UAA2B,EAAO,UAA8B,EAAO,UAAY,YAAc,KAAO,OACnI,CACA,SAAS,GAA0B,EAAY,EAAQ,CACrD,IAAM,EAAgB,GAAgB,CAAM,IAAM,QAAU,GAAQ,QAAU,IAAK,GACnF,MAAO,CACL,GAAG,GAAiB,yBAA8C,CAAc,EAChF,GAAG,CACL,CACF,CACA,IAAM,GAAoB,oBACpB,GAAkB,kBACxB,SAAS,GAAmB,EAAM,EAAW,CAE3C,GAAyB,EAAW,GADnB,EAAK,KAAoB,CACmB,EACzD,EAAK,IACP,EAAK,IAAmB,IAAI,CAAS,EAErC,GAAyB,EAAM,GAAmC,IAAI,IAAI,CAAC,CAAS,CAAC,CAAC,CAE1F,CACA,SAAS,IAAwB,EAAM,EAAW,CAC5C,EAAK,KACP,EAAK,IAAmB,OAAO,CAAS,CAE5C,CACA,SAAS,GAAmB,EAAM,CAChC,IAAM,EAA4B,IAAI,IACtC,SAAS,EAAgB,EAAO,CAC1B,MAAU,IAAI,CAAK,GAEZ,GAAc,CAAK,EAAG,CAC/B,EAAU,IAAI,CAAK,EACnB,IAAM,EAAa,EAAM,IAAqB,MAAM,KAAK,EAAM,GAAkB,EAAI,CAAC,EACtF,IAAK,IAAM,KAAa,EACtB,EAAgB,CAAS,CAE7B,CACF,CAEA,OADA,EAAgB,CAAI,EACb,MAAM,KAAK,CAAS,CAC7B,CACA,IAAM,GAAc,GACpB,SAAS,GAAwB,EAAM,CACrC,OAAO,EAAK,KAAoB,CAClC,CACA,SAAS,IAAgB,CAEvB,IAAM,EAAM,GADI,GAC0B,CAAC,EAI3C,OAHI,EAAI,cACC,EAAI,cAAc,EAEpB,GAAiB,GAAgB,CAAC,CAC3C,CACA,SAAS,IAAsB,CAC7B,GAME,IALA,OAAqB,CACnB,QAAQ,KACN,0JACF,CACF,CAAC,EACyB,GAE9B,CCjPA,IAAI,GAAqB,GACzB,SAAS,KAAmC,CAC1C,GAAI,GACF,OAEF,SAAS,GAAgB,CACvB,IAAM,EAAa,GAAc,EAC3B,EAAW,GAAc,GAAY,CAAU,EACrD,GAAI,EAAU,CACZ,IAAM,EAAU,iBAChB,IAAeI,GAAM,IAAI,wBAAwB,EAAQ,0BAA0B,EACnF,EAAS,UAAU,CAAE,OAAyB,SAAQ,CAAC,CACzD,CACF,CACA,GAAqB,GACrB,GAAqC,CAAa,EAClD,GAAkD,CAAa,CACjE,CCtBA,SAAS,GAAgB,EAAc,CACrC,GAAI,OAAO,oBAAuB,WAAa,CAAC,mBAC9C,MAAO,GAET,IAAM,EAAU,GAAgB,GAAU,GAAG,WAAW,EACxD,MAAO,CAAC,CAAC,IACR,EAAQ,kBAAoB,MAAQ,CAAC,CAAC,EAAQ,cACjD,CCLA,SAAS,GAAe,EAAa,CACnC,GAAM,IAAI,iBAAiB,EAAY,GAAG,KAAK,EAAY,YAAY,qCAAqC,CAC9G,CACA,SAAS,GAAiB,EAAM,EAAa,CAC3C,GAAI,CAAC,GAAa,OAChB,MAAO,GAET,IAAK,IAAM,KAAW,EAAa,CACjC,GAAI,IAAiB,CAAO,EAAG,CAC7B,GAAI,EAAK,aAAe,GAAkB,EAAK,YAAa,CAAO,EAEjE,OADA,IAAe,GAAe,CAAI,EAC3B,GAET,QACF,CACA,IAAM,EAAgB,CAAC,CAAC,EAAQ,YAAc,OAAO,KAAK,EAAQ,UAAU,EAAE,OAAS,EACvF,GAAI,CAAC,EAAQ,MAAQ,CAAC,EAAQ,IAAM,CAAC,EACnC,SAEF,IAAM,EAAc,EAAQ,KAAO,EAAK,aAAe,GAAkB,EAAK,YAAa,EAAQ,IAAI,EAAI,GACrG,EAAY,EAAQ,GAAK,EAAK,IAAM,GAAkB,EAAK,GAAI,EAAQ,EAAE,EAAI,GAC7E,EAAa,EAAQ,WAAa,OAAO,QAAQ,EAAQ,UAAU,EAAE,OACxE,CAAC,EAAK,KAAkB,IAAuB,EAAK,aAAa,GAAM,CAAY,CACtF,EAAI,GACJ,GAAI,GAAe,GAAa,EAE9B,OADA,IAAe,GAAe,CAAI,EAC3B,EAEX,CACA,MAAO,EACT,CACA,SAAS,IAAuB,EAAQ,EAAK,CAO3C,OANI,OAAO,GAAW,WAAa,OAAO,GAAQ,UAAY,aAAe,QACpE,GAAkB,EAAQ,CAAG,EAElC,MAAM,QAAQ,CAAM,GAAK,MAAM,QAAQ,CAAG,EACrC,EAAO,SAAW,EAAI,QAAU,EAAO,OAAO,EAAG,IAAM,IAAM,EAAI,EAAE,EAErE,IAAW,CACpB,CACA,SAAS,IAAmB,EAAO,EAAU,CAC3C,IAAM,EAAsB,EAAS,eAC/B,EAAgB,EAAS,QAC1B,KAGL,IAAK,IAAM,KAAQ,EACb,EAAK,iBAAmB,IAC1B,EAAK,eAAiB,EAG5B,CACA,SAAS,IAAiB,EAAO,CAC/B,OAAO,OAAO,GAAU,UAAY,aAAiB,MACvD,CCtDA,IAAM,GAA2C,OAAO,IAAI,yBAAyB,EAC/E,GAAN,KAA6B,CAC3B,YAAY,EAAc,CAAC,EAAG,CAC5B,KAAK,SAAW,EAAY,SAAW,GAAgB,EACvD,KAAK,QAAU,EAAY,QAAU,GAAe,EACpD,KAAK,WAAa,EAAY,WAC9B,GAAyB,KAAM,GAA0B,EAAI,CAC/D,CAEA,aAAc,CACZ,MAAO,CACL,OAAQ,KAAK,QACb,QAAS,KAAK,SACd,YACF,CACF,CAEA,IAAI,EAAY,CAChB,CAEA,aAAa,EAAM,EAAQ,CACzB,OAAO,IACT,CAEA,cAAc,EAAS,CACrB,OAAO,IACT,CAEA,UAAU,EAAS,CACjB,OAAO,IACT,CAEA,WAAW,EAAO,CAChB,OAAO,IACT,CAEA,aAAc,CACZ,MAAO,EACT,CAEA,SAAS,EAAO,EAAwB,EAAY,CAClD,OAAO,IACT,CAEA,QAAQ,EAAO,CACb,OAAO,IACT,CAEA,SAAS,EAAQ,CACf,OAAO,IACT,CAQA,gBAAgB,EAAY,EAAO,CACnC,CACF,EACA,SAAS,GAAuB,EAAM,CACpC,MAAO,CAAC,CAAC,GAAQ,EAAK,MAA8B,EACtD,CCnEA,IAAM,IAAsB,aCWtB,GAAmB,aACzB,SAAS,GAAgB,EAAM,EAAK,CAElC,GAAyBY,EAAkB,GAAkB,CAAG,CAClE,CACA,SAAS,GAAoC,EAAU,EAAQ,CAC7D,IAAM,EAAU,EAAO,WAAW,EAC5B,CAAE,UAAW,GAAe,EAAO,OAAO,GAAK,CAAC,EAChD,EAAM,CACV,YAAa,EAAQ,0BACrB,QAAS,EAAQ,QACjB,aACA,WACA,OAAQ,IAAuB,CAAM,CACvC,EAEA,OADA,EAAO,KAAK,YAAa,CAAG,EACrB,CACT,CACA,SAAS,GAAmC,EAAQ,EAAO,CACzD,IAAM,EAAqB,EAAM,sBAAsB,EACvD,OAAO,EAAmB,KAAO,GAAoC,EAAmB,QAAS,CAAM,CACzG,CACA,SAAS,GAAkC,EAAM,CAC/C,IAAM,EAAS,GAAU,EACzB,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,IAAM,EAAW,GAAY,CAAI,EAC3B,EAAe,GAAW,CAAQ,EAClC,EAAqB,EAAa,KAClC,EAAa,EAAS,YAAY,EAAE,WACpC,EAAqB,GAAY,IAAI,oBAAoB,GAAK,yBAA6D,uCACjI,SAAS,EAA0B,EAAM,CAIvC,OAHI,OAAO,GAAuB,UAAY,OAAO,GAAuB,YAC1E,EAAK,YAAc,GAAG,KAEjB,CACT,CACA,IAAM,EAAY,EAAS,IAC3B,GAAI,EACF,OAAO,EAA0B,CAAS,EAE5C,IAAM,EAAqB,GAAuB,CAAQ,EACpD,EAAgB,GAAsB,EAAS,aAAe,UACpE,GAAI,IAAuB,CAAC,GAAgB,EAAO,WAAW,CAAC,GAAK,GAAgB,CAClF,IAAM,EAAgB,GAAwB,CAAQ,EAAE,MACxD,GAAI,EAAe,CACjB,IAAM,EAAO,CAAE,GAAG,GAAmC,EAAQ,CAAa,CAAE,EAI5E,OAHI,IACF,EAAK,QAAU,SAEV,EAA0B,CAAI,CACvC,CACF,CACA,IAAM,EAAgB,GAAY,IAAI,YAAY,EAC5C,EAAkB,GAAiB,GAAsC,CAAa,EAC5F,GAAI,EACF,OAAO,EAA0B,CAAe,EAElD,IAAM,EAAM,GAAoC,EAAK,YAAY,EAAE,QAAS,CAAM,EAC5E,EAAS,oBAAwD,EAAmB,8BACpF,EAAO,EAAa,YAa1B,OAZI,IAAW,OAAS,IACtB,EAAI,YAAc,GAEhB,GAAgB,IAClB,EAAI,QAAU,OAAO,GAAc,CAAQ,CAAC,EAC5C,EAAI,YAEJ,GAAY,IAAI,oBAAoB,GACpC,GAAwB,CAAQ,EAAE,OAAO,sBAAsB,EAAE,WAAW,SAAS,GAEvF,EAA0B,CAAG,EAC7B,EAAO,KAAK,YAAa,EAAK,CAAQ,EAC/B,CACT,CChFA,SAAS,GAAiC,EAAU,CAClD,MAAO,CAAC,CAAC,GAAY,OAAO,GAAa,YAAc,cAAe,GAAY,CAAC,CAAC,EAAS,SAC/F,CCFA,SAAS,GAAe,EAAS,EAAQ,CAAC,EAAG,CAC3C,MAAO,CAAC,EAAS,CAAK,CACxB,CACA,SAAS,GAAkB,EAAU,EAAS,CAC5C,GAAM,CAAC,EAAS,GAAS,EACzB,MAAO,CAAC,EAAS,CAAC,GAAG,EAAO,CAAO,CAAC,CACtC,CACA,SAAS,GAAoB,EAAU,EAAU,CAC/C,IAAM,EAAgB,EAAS,GAC/B,IAAK,IAAM,KAAgB,EAAe,CACxC,IAAM,EAAmB,EAAa,GAAG,KAEzC,GADe,EAAS,EAAc,CAC7B,EACP,MAAO,EAEX,CACA,MAAO,EACT,CACA,SAAS,IAAyB,EAAU,EAAO,CACjD,OAAO,GAAoB,GAAW,EAAG,IAAS,EAAM,SAAS,CAAI,CAAC,CACxE,CACA,SAAS,GAAW,EAAO,CACzB,IAAM,EAAU,GAAiB,EAAU,EAC3C,OAAO,EAAQ,eAAiB,EAAQ,eAAe,CAAK,EAAI,IAAI,YAAY,EAAE,OAAO,CAAK,CAChG,CAKA,SAAS,IAAkB,EAAU,CACnC,GAAM,CAAC,EAAY,GAAS,EACxB,EAAQ,KAAK,UAAU,CAAU,EACrC,SAAS,EAAO,EAAM,CAChB,OAAO,GAAU,SACnB,EAAQ,OAAO,GAAS,SAAW,EAAQ,EAAO,CAAC,GAAW,CAAK,EAAG,CAAI,EAE1E,EAAM,KAAK,OAAO,GAAS,SAAW,GAAW,CAAI,EAAI,CAAI,CAEjE,CACA,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAM,CAAC,EAAa,GAAW,EAI/B,GAHA,EAAO;EACT,KAAK,UAAU,CAAW;CAC3B,EACO,OAAO,GAAY,UAAY,aAAmB,WACpD,EAAO,CAAO,MACT,CACL,IAAI,EACJ,GAAI,CACF,EAAqB,KAAK,UAAU,CAAO,CAC7C,MAAQ,CACN,EAAqB,KAAK,UAAU,GAAU,CAAO,CAAC,CACxD,CACA,EAAO,CAAkB,CAC3B,CACF,CACA,OAAO,OAAO,GAAU,SAAW,EAAQ,IAAc,CAAK,CAChE,CACA,SAAS,IAAc,EAAS,CAC9B,IAAM,EAAc,EAAQ,QAAQ,EAAK,IAAQ,EAAM,EAAI,OAAQ,CAAC,EAC9D,EAAS,IAAI,WAAW,CAAW,EACrC,EAAS,EACb,IAAK,IAAM,KAAU,EACnB,EAAO,IAAI,EAAQ,CAAM,EACzB,GAAU,EAAO,OAEnB,OAAO,CACT,CAwBA,SAAS,IAAuB,EAAU,CAIxC,MAAO,CAAC,CAFN,KAAM,MAEU,EAAG,CAAQ,CAC/B,CACA,SAAS,IAA6B,EAAY,CAChD,IAAM,EAAS,OAAO,EAAW,MAAS,SAAW,GAAW,EAAW,IAAI,EAAI,EAAW,KAC9F,MAAO,CACL,CACE,KAAM,aACN,OAAQ,EAAO,OACf,SAAU,EAAW,SACrB,aAAc,EAAW,YACzB,gBAAiB,EAAW,cAC9B,EACA,CACF,CACF,CACA,IAAM,GAA0B,CAC9B,SAAU,UACV,MAAO,QACP,cAAe,WACf,YAAa,UACb,cAAe,UACf,aAAc,SACd,iBAAkB,SAClB,SAAU,UACV,aAAc,WACd,IAAK,WACL,aAAc,QAChB,EACA,SAAS,IAAkB,EAAM,CAC/B,OAAO,KAAQ,EACjB,CACA,SAAS,GAA+B,EAAM,CAC5C,OAAO,IAAkB,CAAI,EAAI,GAAwB,GAAQ,CACnE,CACA,SAAS,GAAgC,EAAiB,CACxD,GAAI,CAAC,GAAiB,IACpB,OAEF,GAAM,CAAE,OAAM,WAAY,EAAgB,IAC1C,MAAO,CAAE,OAAM,SAAQ,CACzB,CACA,SAAS,GAA2B,EAAO,EAAS,EAAQ,EAAK,CAC/D,IAAM,EAAyB,EAAM,uBAAuB,uBAC5D,MAAO,CACL,SAAU,EAAM,SAChB,QAAS,IAAI,KAAK,GAAY,CAAC,EAAE,YAAY,EAC7C,GAAG,GAAW,CAAE,IAAK,CAAQ,EAC7B,GAAG,CAAC,CAAC,GAAU,GAAO,CAAE,IAAK,GAAY,CAAG,CAAE,EAC9C,GAAG,GAA0B,CAC3B,MAAO,CACT,CACF,CACF,CCjJA,SAAS,IAAyB,EAAO,EAAY,CACnD,GAAI,CAAC,EACH,OAAO,EAET,IAAM,EAAe,EAAM,KAAO,CAAC,EAYnC,MAXA,GAAM,IAAM,CACV,GAAG,EACH,KAAM,EAAa,MAAQ,EAAW,KACtC,QAAS,EAAa,SAAW,EAAW,QAC5C,aAAc,CAAC,GAAG,EAAM,KAAK,cAAgB,CAAC,EAAG,GAAG,EAAW,cAAgB,CAAC,CAAC,EACjF,SAAU,CAAC,GAAG,EAAM,KAAK,UAAY,CAAC,EAAG,GAAG,EAAW,UAAY,CAAC,CAAC,EACrE,SAAU,EAAM,KAAK,UAAY,EAAW,SAAW,CACrD,GAAG,EAAM,KAAK,SACd,GAAG,EAAW,QAChB,EAAI,IAAK,EACX,EACO,CACT,CACA,SAAS,IAAsB,EAAS,EAAK,EAAU,EAAQ,CAC7D,IAAM,EAAU,GAAgC,CAAQ,EAOxD,OAAO,GAAe,CALpB,QAAS,IAAI,KAAK,GAAY,CAAC,EAAE,YAAY,EAC7C,GAAG,GAAW,CAAE,IAAK,CAAQ,EAC7B,GAAG,CAAC,CAAC,GAAU,GAAO,CAAE,IAAK,GAAY,CAAG,CAAE,CAGZ,EAAG,CADlB,eAAgB,EAAU,CAAC,CAAE,KAAM,UAAW,EAAG,CAAO,EAAI,CAAC,CAAE,KAAM,SAAU,EAAG,EAAQ,OAAO,CAAC,CACnE,CAAC,CACvD,CACA,SAAS,IAAoB,EAAO,EAAK,EAAU,EAAQ,CACzD,IAAM,EAAU,GAAgC,CAAQ,EAClD,EAAY,EAAM,MAAQ,EAAM,OAAS,eAAiB,EAAM,KAAO,QAC7E,IAAyB,EAAO,GAAU,GAAG,EAC7C,IAAM,EAAkB,GAA2B,EAAO,EAAS,EAAQ,CAAG,EAG9E,OAFA,OAAO,EAAM,sBAEN,GAAe,EAAiB,CAAC,CADrB,CAAE,KAAM,CAAU,EAAG,CACQ,CAAC,CAAC,CACpD,CACA,SAAS,IAAmB,EAAO,EAAQ,CACzC,SAAS,EAAoB,EAAM,CACjC,MAAO,CAAC,CAAC,EAAK,UAAY,CAAC,CAAC,EAAK,UACnC,CACA,IAAM,EAAM,GAAkC,EAAM,EAAE,EAChD,EAAM,GAAQ,OAAO,EACrB,EAAS,GAAQ,WAAW,EAAE,OAC9B,EAAU,CACd,QAAS,IAAI,KAAK,GAAY,CAAC,EAAE,YAAY,EAC7C,GAAG,EAAoB,CAAG,GAAK,CAAE,MAAO,CAAI,EAC5C,GAAG,CAAC,CAAC,GAAU,GAAO,CAAE,IAAK,GAAY,CAAG,CAAE,CAChD,EACM,CAAE,iBAAgB,eAAgB,GAAQ,WAAW,GAAK,CAAC,EAC3D,EAAgB,GAAa,OAAS,EAAM,OAAQ,GAAS,CACjE,IAAM,EAAO,GAAW,CAAI,EAC5B,MAAO,CAAC,GAAiB,CAAE,YAAa,EAAK,YAAa,GAAI,EAAK,GAAI,WAAY,EAAK,IAAK,EAAG,CAAW,CAC7G,CAAC,EAAI,EACC,EAAe,EAAM,OAAS,EAAc,OAC9C,GACF,GAAQ,mBAAmB,cAAe,OAAQ,CAAY,EAEhE,IAAM,EAAoB,EAAkB,GAAS,CACnD,IAAM,EAAW,GAAW,CAAI,EAMhC,OALuB,GAAiC,CAAc,EAA+B,EAA3B,EAAe,CAAQ,KAE/F,GAAoB,EACb,EAGX,EAAI,GACE,EAAQ,CAAC,EACf,IAAK,IAAM,KAAQ,EAAe,CAChC,IAAM,EAAW,EAAkB,CAAI,EACnC,GACF,EAAM,KAAK,IAAuB,CAAQ,CAAC,CAE/C,CACA,OAAO,GAAe,EAAS,CAAK,CACtC,CC/EA,SAAS,IAAa,EAAM,CAC1B,GAAI,CAAChB,GAAa,OAClB,GAAM,CAAE,cAAc,mBAAoB,KAAK,iBAAkB,eAAgB,GAAiB,GAAW,CAAI,EAC3G,CAAE,UAAW,EAAK,YAAY,EAC9B,EAAU,GAAc,CAAI,EAC5B,EAAW,GAAY,CAAI,EAC3B,EAAa,IAAa,EAC1B,EAAS,sBAAsB,EAAU,UAAY,YAAY,GAAG,EAAa,QAAU,GAAG,MAC9F,EAAY,CAAC,OAAO,IAAM,SAAS,IAAe,OAAO,GAAQ,EAIvE,GAHI,GACF,EAAU,KAAK,cAAc,GAAc,EAEzC,CAAC,EAAY,CACf,GAAM,CAAE,GAAI,EAAK,YAAa,GAAiB,GAAW,CAAQ,EAClE,EAAU,KAAK,YAAY,EAAS,YAAY,EAAE,QAAQ,EACtD,GACF,EAAU,KAAK,YAAY,GAAK,EAE9B,GACF,EAAU,KAAK,qBAAqB,GAAc,CAEtD,CACA,GAAM,IAAI,GAAG;IACX,EAAU,KAAK;GAAM,GAAG,CAC5B,CACA,SAAS,IAAW,EAAM,CACxB,GAAI,CAACA,GAAa,OAClB,GAAM,CAAE,cAAc,mBAAoB,KAAK,kBAAqB,GAAW,CAAI,EAC7E,CAAE,UAAW,EAAK,YAAY,EAG9B,EAAM,wBAAwB,EAAG,IAFtB,GAAY,CACH,IAAM,EACwB,QAAU,GAAG,QAAQ,EAAY,YAAY,IACrG,GAAM,IAAI,CAAG,CACf,CChCA,SAAS,GAAe,EAAM,EAAO,EAAM,EAAa,GAAc,EAAG,CACvE,IAAM,EAAW,GAAc,GAAY,CAAU,EACjD,IACF,IAAeI,GAAM,IAAI,mDAAmD,EAAK,KAAK,EAAM,GAAG,GAAM,EACrG,EAAS,SAAS,EAAM,EACrB,IAA8C,GAC9C,IAA6C,CAChD,CAAC,EAEL,CACA,SAAS,GAA0B,EAAQ,CACzC,GAAI,CAAC,GAAU,EAAO,SAAW,EAC/B,OAEF,IAAM,EAAe,CAAC,EAStB,OARA,EAAO,QAAS,GAAU,CACxB,IAAM,EAAa,EAAM,YAAc,CAAC,EAClC,EAAO,EAAW,IAClB,EAAQ,EAAW,IACrB,OAAO,GAAS,UAAY,OAAO,GAAU,WAC/C,EAAa,EAAM,MAAQ,CAAE,QAAO,MAAK,EAE7C,CAAC,EACM,CACT,CCxBA,SAAS,IAAgC,CACvC,OAAO,GAAiB,GAAe,CAAC,EAAE,0BAC5C,CCPA,SAAS,GAAwB,EAAQ,CACvC,OAAO,EAAO,WAAW,EAAE,iBAAmB,QAChD,CCaA,IAAM,GAAiB,IACjB,GAAN,KAAiB,CAQf,YAAY,EAAc,CAAC,EAAG,CAC5B,KAAK,SAAW,EAAY,SAAW,GAAgB,EACvD,KAAK,QAAU,EAAY,QAAU,GAAe,EACpD,KAAK,WAAa,EAAY,gBAAkB,GAAmB,EACnE,KAAK,OAAS,EAAY,MAC1B,KAAK,YAAc,CAAC,EACpB,KAAK,cAAc,EAChB,IAAmC,UACnC,IAA+B,EAAY,GAC5C,GAAG,EAAY,UACjB,CAAC,EACD,KAAK,MAAQ,EAAY,KACrB,EAAY,eACd,KAAK,cAAgB,EAAY,cAE/B,YAAa,IACf,KAAK,SAAW,EAAY,SAE1B,EAAY,eACd,KAAK,SAAW,EAAY,cAE9B,KAAK,QAAU,CAAC,EAChB,KAAK,kBAAoB,EAAY,aACjC,KAAK,UACP,KAAK,aAAa,CAEtB,CAEA,QAAQ,EAAM,CASZ,OARI,KAAK,UAGL,KAAK,OACP,KAAK,OAAO,KAAK,CAAI,EAErB,KAAK,OAAS,CAAC,CAAI,GALZ,IAQX,CAEA,SAAS,EAAO,CASd,OARI,KAAK,UAGL,KAAK,OACP,KAAK,OAAO,KAAK,GAAG,CAAK,EAEzB,KAAK,OAAS,GALP,IAQX,CAQA,gBAAgB,EAAY,EAAO,CACnC,CAEA,aAAc,CACZ,GAAM,CAAE,QAAS,EAAQ,SAAU,EAAS,SAAU,GAAY,KAClE,MAAO,CACL,SACA,UACA,WAAY,IACd,CACF,CAEA,aAAa,EAAK,EAAO,CAYvB,OAXI,KAAK,QACA,MAEL,IAAU,IAAK,GACjB,OAAO,KAAK,YAAY,GAExB,KAAK,YAAY,GAAO,EAEtB,qBAA4C,IAAU,IAAK,IAAK,GAA0B,IAAI,GAChG,IAAyB,IAAI,EAExB,KACT,CAEA,cAAc,EAAY,CAExB,OADA,OAAO,KAAK,CAAU,EAAE,QAAS,GAAQ,KAAK,aAAa,EAAK,EAAW,EAAI,CAAC,EACzE,IACT,CASA,gBAAgB,EAAW,CACrB,KAAK,UAGT,KAAK,WAAa,GAAuB,CAAS,EACpD,CAIA,UAAU,EAAO,CAKf,OAJI,KAAK,UAGT,KAAK,QAAU,GAFN,IAIX,CAIA,WAAW,EAAM,CAQf,OAPI,KAAK,QACA,MAET,KAAK,MAAQ,EACR,GAA0B,IAAI,GACjC,KAAK,aAAa,GAAkC,QAAQ,EAEvD,KACT,CAEA,IAAI,EAAc,CAChB,GAAI,KAAK,SAAU,CACjB,KAAK,QAAU,GAAyB,IAAI,EAC5C,MACF,CACA,KAAK,SAAW,GAAuB,CAAY,EACnD,IAAW,IAAI,EACf,KAAK,aAAa,EAClB,KAAK,QAAU,GAAyB,IAAI,CAC9C,CASA,aAAc,CACZ,MAAO,CACL,KAAM,KAAK,YACX,YAAa,KAAK,MAClB,GAAI,KAAK,YAAY,IACrB,eAAgB,KAAK,cACrB,QAAS,KAAK,QACd,gBAAiB,KAAK,WACtB,OAAQ,GAAiB,KAAK,OAAO,EACrC,UAAW,KAAK,SAChB,SAAU,KAAK,SACf,OAAQ,KAAK,YAAY,IACzB,WAAY,KAAK,YAAY,IAC7B,eAAgB,KAAK,YAAY,IACjC,aAAc,GAA0B,KAAK,OAAO,EACpD,WAAY,KAAK,mBAAqB,GAAY,IAAI,IAAM,MAAQ,IAAK,GACzE,WAAY,KAAK,kBAAoB,GAAY,IAAI,EAAE,YAAY,EAAE,OAAS,IAAK,GACnF,MAAO,GAA4B,KAAK,MAAM,CAChD,CACF,CASA,qBAAsB,CACpB,MAAO,CACL,KAAM,KAAK,OAAS,GACpB,QAAS,KAAK,QACd,SAAU,KAAK,SACf,eAAgB,KAAK,cACrB,gBAAiB,KAAK,WAEtB,cAAe,KAAK,UAAY,KAAK,WACrC,WAAY,KAAK,mBAAqB,OAAS,GAAY,IAAI,EAC/D,OAAQ,GAAgB,KAAK,OAAO,EACpC,WAAY,GAA0B,KAAK,YAAa,KAAK,OAAO,EACpE,MAAO,GAAqB,KAAK,MAAM,CACzC,CACF,CAEA,aAAc,CACZ,MAAO,CAAC,KAAK,UAAY,CAAC,CAAC,KAAK,QAClC,CAIA,SAAS,EAAM,EAAuB,EAAW,CAC/C,GAAI,KAAK,QACP,OAAO,KAET,IAAeA,GAAM,IAAI,qCAAsC,CAAI,EACnE,IAAM,EAAO,GAAgB,CAAqB,EAAI,EAAwB,GAAa,GAAmB,EACxG,EAAa,GAAgB,CAAqB,EAAI,CAAC,EAAI,GAAyB,CAAC,EACrF,EAAQ,CACZ,OACA,KAAM,GAAuB,CAAI,EACjC,YACF,EAEA,OADA,KAAK,QAAQ,KAAK,CAAK,EAChB,IACT,CASA,kBAAmB,CACjB,MAAO,CAAC,CAAC,KAAK,iBAChB,CAEA,cAAe,CACb,IAAM,EAAS,GAAU,EACrB,IACF,EAAO,KAAK,UAAW,IAAI,EACtB,KAAK,mBACR,EAAO,KAAK,eAAgB,IAAI,GAGpC,IAAM,EAAW,GAAY,IAAI,EAC3B,EAAgB,KAAK,mBAAqB,OAAS,EACzD,GAAI,KAAK,kBAAmB,CACtB,KAAK,SACP,IAAiB,IAAmB,CAAC,IAAI,EAAG,CAAM,CAAC,GAEnD,IAAeA,GAAM,IAAI,sFAAsF,EAC3G,GACF,EAAO,mBAAmB,cAAe,MAAM,GAGnD,MACF,CACA,GAAI,CAAC,EAAe,CAClB,IAAM,EAAY,GAA8B,EAChD,GAAI,EAAW,CACb,IAAM,EAAS,GAAwB,IAAI,EAAE,OAAS,GAAgB,EACtE,EAAU,iBAAiB,KAAM,EAAW,GAAY,KAAK,0BAA0B,CAAO,EAAG,CAAM,CACzG,CACA,MACF,CACA,GAAI,GAAU,GAAwB,CAAM,EAAG,CAC7C,EAAO,KAAK,sBAAuB,IAAI,EACvC,MACF,CACA,IAAM,EAAQ,GAAwB,IAAI,EAAE,OAAS,GAAgB,EAC/D,EAAW,GAA8B,EAC/C,GAAI,EACF,EAAS,mBAAoB,GAAY,KAAK,0BAA0B,CAAO,EAAG,CAAK,MAClF,CACL,IAAM,EAAmB,KAAK,0BAA0B,EACpD,GACF,EAAM,aAAa,CAAgB,CAEvC,CACF,CAIA,0BAA0B,EAAU,CAAC,EAAG,CACtC,GAAI,CAAC,GAAmB,GAAW,IAAI,CAAC,EACtC,OAEF,IAEE,CAAK,SADL,IAAeA,GAAM,KAAK,qEAAqE,EAClF,2BAEf,GAAM,CAAE,MAAO,EAAmB,eAAgB,GAA+B,GAAwB,IAAI,EACvG,EAAoB,GAAmB,aAAa,EAAE,uBAAuB,kBACnF,GAAI,KAAK,WAAa,GACpB,OAEF,EAAQ,iBAAiB,IAAI,EAC7B,IAAM,EAAQ,CAAC,EACf,IAAK,IAAM,KAAc,GAAmB,IAAI,EAAG,CACjD,GAAI,IAAe,MAAQ,IAAiB,CAAU,GAAK,EAAQ,wBAAwB,CAAU,EACnG,SAEF,IAAM,EAAW,GAAW,CAAU,EACjC,GAAmB,CAAQ,IAGhC,EAAQ,iBAAiB,CAAU,EACnC,EAAM,KAAK,CAAQ,EACrB,CACA,IAAM,EAAS,KAAK,YAAY,IAChC,OAAO,KAAK,YAAY,IACxB,IAAI,EAAgB,GACpB,EAAM,QAAS,GAAS,CACtB,OAAO,EAAK,KAAK,IACb,EAAK,IAAI,WAAW,SAAS,IAC/B,EAAgB,GAEpB,CAAC,EACD,IAAM,EAAc,CAClB,SAAU,CACR,MAAO,IAA8B,IAAI,CAC3C,EACA,MAGE,EAAM,OAAS,GAAiB,EAAM,MAAM,EAAG,IAAM,EAAE,gBAAkB,EAAE,eAAe,EAAE,MAAM,EAAG,EAAc,EAAI,EAEzH,gBAAiB,KAAK,WACtB,UAAW,KAAK,SAChB,YAAa,KAAK,MAClB,KAAM,cACN,sBAAuB,CACrB,oBACA,6BACA,uBAAwB,GAAkC,IAAI,EAC9D,eACF,EACA,QAAS,EACT,GAAG,GAAU,CACX,iBAAkB,CAChB,QACF,CACF,CACF,EACM,EAAe,GAA0B,KAAK,OAAO,EAS3D,OARwB,GAAgB,OAAO,KAAK,CAAY,EAAE,SAEhE,IAAeA,GAAM,IACnB,0DACA,KAAK,UAAU,EAAc,IAAK,GAAG,CAAC,CACxC,EACA,EAAY,aAAe,GAEtB,CACT,CACF,EACA,SAAS,GAAgB,EAAO,CAC9B,OAAO,GAAS,OAAO,GAAU,UAAY,aAAiB,MAAQ,MAAM,QAAQ,CAAK,CAC3F,CACA,SAAS,GAAmB,EAAO,CACjC,MAAO,CAAC,CAAC,EAAM,iBAAmB,CAAC,CAAC,EAAM,WAAa,CAAC,CAAC,EAAM,SAAW,CAAC,CAAC,EAAM,QACpF,CACA,SAAS,IAAiB,EAAM,CAC9B,OAAO,aAAgB,IAAc,EAAK,iBAAiB,CAC7D,CACA,SAAS,IAAiB,EAAU,CAClC,IAAM,EAAS,GAAU,EACzB,GAAI,CAAC,EACH,OAEF,IAAM,EAAY,EAAS,GAC3B,GAAI,CAAC,GAAa,EAAU,SAAW,EAAG,CACxC,EAAO,mBAAmB,cAAe,MAAM,EAC/C,MACF,CACA,EAAO,aAAa,CAAQ,CAC9B,CC7XA,SAAS,IAAW,EAAS,EAAiB,EAAY,CACxD,GAAI,CAAC,GAAgB,CAAO,EAC1B,MAAO,CAAC,EAAK,EAEf,IAAI,EACA,EACA,OAAO,EAAQ,eAAkB,YACnC,EAAa,EAAQ,cAAc,CACjC,GAAG,EACH,oBAAsB,GAChB,OAAO,EAAgB,kBAAqB,SACvC,EAAgB,iBAErB,OAAO,EAAgB,eAAkB,UACpC,OAAO,EAAgB,aAAa,EAEtC,CAEX,CAAC,EACD,EAA4B,IACnB,EAAgB,gBAAkB,IAAK,GAEhC,EAAQ,mBAAqB,SAC7C,EAAa,EAAQ,iBACrB,EAA4B,IAH5B,EAAa,EAAgB,cAK/B,IAAM,EAAmB,GAAgB,CAAU,EACnD,GAAI,IAAqB,IAAK,GAM5B,OALA,IAAeA,GAAM,KACnB,iIAAiI,KAAK,UACpI,CACF,EAAE,WAAW,KAAK,UAAU,OAAO,CAAU,EAAE,EACjD,EACO,CAAC,EAAK,EAEf,GAAI,CAAC,EAIH,OAHA,IAAeA,GAAM,IACnB,4CAA4C,OAAO,EAAQ,eAAkB,WAAa,oCAAsC,8EAClI,EACO,CAAC,GAAO,EAAkB,CAAyB,EAE5D,IAAM,EAAe,EAAa,EAQlC,OAPK,GACH,IAAeA,GAAM,IACnB,oGAAoG,OAClG,CACF,EAAE,EACJ,EAEK,CAAC,EAAc,EAAkB,CAAyB,CACnE,CC9BA,IAAM,IAAuB,8BA+E7B,SAAS,GAAkB,EAAS,CAClC,IAAM,EAAM,GAAO,EAInB,OAHI,EAAI,kBACC,EAAI,kBAAkB,CAAO,EAE/B,IAAuB,CAAO,CACvC,CAIA,SAAS,IAAuB,EAAS,CACvC,IAAM,EAAgB,IAAyB,CAAO,EAChD,CAAE,mBAAkB,WAAY,GAAqB,EAE3D,OADgB,EAAQ,MAAS,GAAa,GAAU,EAAQ,MAAO,CAAQ,EAAI,IAAqB,IAAK,GAAgE,GAAa,EAAS,EAAjF,GAAa,GAAe,EAAkB,CAAQ,OACnJ,CACnB,IAAM,EAAQ,GAAgB,EACxB,EAAa,IAAc,EAAO,CAAgB,EAClD,EAAS,GAAU,EAKzB,OAJ8B,EAAQ,cAAgB,CAAC,EAE9C,IAA+B,EAAO,CAAM,EAE9C,IAAsB,CAC3B,aACA,gBACA,mBACA,OACF,CAAC,CACH,CAAC,CACH,CAoBA,SAAS,GAAe,EAAM,EAAU,CACtC,IAAM,EAAM,GAAO,EAInB,OAHI,EAAI,eACC,EAAI,eAAe,EAAM,CAAQ,EAEnC,GAAW,IAChB,GAAiB,EAAO,GAAQ,IAAK,EAAC,EAC/B,EAAS,CAAK,EACtB,CACH,CAaA,SAAS,GAAoB,EAAQ,GAAgB,EAAG,CACtD,IAAM,EAAM,GAAO,EAInB,OAHI,EAAI,oBACC,EAAI,oBAAoB,CAAK,EAE/B,EAAM,aAAa,EAAE,sBAAsB,OAA0B,EAC9E,CAeA,SAAS,IAA+B,EAAO,EAAQ,CACrD,GAAQ,mBAAmB,iBAAkB,MAAM,EACnD,IAAM,EAAO,IAAI,GAAuB,CAAE,QAAS,EAAM,sBAAsB,EAAE,OAAQ,CAAC,EAE1F,OADA,GAAwB,EAAM,EAAO,GAAkB,CAAC,EACjD,CACT,CACA,SAAS,IAAsB,CAC7B,aACA,gBACA,mBACA,SACC,CACD,IAAM,EAAiB,GAAkB,EACzC,GAAI,CAAC,GAAgB,EAAG,CACtB,IAAM,EAA0B,CAAE,GAAG,EAAe,sBAAsB,EAAG,GAAG,EAAM,sBAAsB,CAAE,EAExG,EAAQ,IAAI,GAAuB,CAAE,QAD3B,EAAa,EAAW,YAAY,EAAE,QAAU,EAAwB,OACrC,CAAC,EAKpD,OAJI,GAAc,CAAC,GACjB,GAAmB,EAAY,CAAK,EAEtC,GAAwB,EAAO,EAAO,CAAc,EAC7C,CACT,CACA,IAAM,EAAS,GAAU,EACzB,GAAI,IAA0B,EAAQ,CAAa,EAAG,CAC/C,GAAoB,CAAK,GAC5B,GAAQ,mBAAmB,UAAW,MAAM,EAE9C,IAAM,EAAc,IAAI,GAAuB,CAC7C,WAAY,UACZ,QAAS,GAAY,YAAY,EAAE,SAAW,EAAM,sBAAsB,EAAE,OAC9E,CAAC,EAKD,OAJI,GAAc,CAAC,GACjB,GAAmB,EAAY,CAAW,EAE5C,GAAwB,EAAa,EAAO,CAAc,EACnD,CACT,CACA,IAAI,EACJ,GAAI,GAAc,CAAC,EACjB,EAAO,IAAgB,EAAY,EAAO,EAAe,CAAc,EACvE,GAAmB,EAAY,CAAI,OAC9B,GAAI,EAAY,CACrB,IAAM,EAAM,GAAkC,CAAU,EAClD,CAAE,UAAS,OAAQ,GAAiB,EAAW,YAAY,EAC3D,EAAgB,GAAc,CAAU,EAC9C,EAAO,GACL,CACE,UACA,eACA,GAAG,CACL,EACA,EACA,EACA,CACF,EACA,GAAgB,EAAM,CAAG,CAC3B,KAAO,CACL,GAAM,CACJ,UACA,MACA,eACA,QAAS,GACP,CACF,GAAG,EAAe,sBAAsB,EACxC,GAAG,EAAM,sBAAsB,CACjC,EACA,EAAO,GACL,CACE,UACA,eACA,GAAG,CACL,EACA,EACA,EACA,CACF,EACI,GACF,GAAgB,EAAM,CAAG,CAE7B,CAEA,OADA,IAAa,CAAI,EACV,CACT,CACA,SAAS,IAAyB,EAAS,CAEzC,IAAM,EAAa,CACjB,cAFU,EAAQ,cAAgB,CAAC,GAEjB,WAClB,GAAG,CACL,EACA,GAAI,EAAQ,UAAW,CACrB,IAAM,EAAM,CAAE,GAAG,CAAW,EAG5B,MAFA,GAAI,eAAiB,GAAuB,EAAQ,SAAS,EAC7D,OAAO,EAAI,UACJ,CACT,CACA,OAAO,CACT,CACA,SAAS,IAAS,CAEhB,OAAO,GADS,GACqB,CAAC,CACxC,CACA,SAAS,GAAe,EAAe,EAAO,EAAgB,EAAe,CAC3E,IAAM,EAAS,GAAU,EACnB,EAAU,GAAQ,WAAW,GAAK,CAAC,EACnC,CAAE,OAAO,IAAO,EAChB,EAA0B,CAAE,eAAgB,CAAE,GAAG,EAAc,UAAW,EAAG,SAAU,EAAM,eAAc,EACjH,GAAQ,KAAK,iBAAkB,EAAyB,CAAE,SAAU,EAAM,CAAC,EAC3E,IAAM,EAAqB,EAAwB,eAAiB,EAC9D,EAAkB,EAAwB,eAC1C,EAA4B,EAAM,sBAAsB,EACxD,EAAuB,GAAoB,CAAK,EAChD,CAAC,EAAS,EAAY,GAA6B,EAAuB,CAAC,EAAK,EAAI,IACxF,EACA,CACE,OACA,cAAe,EACf,WAAY,EACZ,kBAAmB,EAAe,aAAa,EAAE,sBAAsB,kBACvE,iBAAkB,GAAgB,EAA0B,KAAK,WAAW,CAC9E,EACA,EAA0B,UAC5B,EACM,EAAW,IAAI,GAAW,CAC9B,GAAG,EACH,WAAY,EACT,IAAmC,UACnC,KAAwC,IAAe,IAAK,IAAK,EAA4B,EAAa,IAAK,GAChH,GAAG,CACL,EACA,SACF,CAAC,EASD,MARI,CAAC,GAAW,GAAU,CAAC,IACzB,IAAeA,GAAM,IAAI,gFAAgF,EACzG,EAAO,mBAAmB,cAAe,GAAwB,CAAM,EAAI,OAAS,aAAa,GAEnG,GAAwB,EAAU,EAAO,CAAc,EACnD,GACF,EAAO,KAAK,YAAa,CAAQ,EAE5B,CACT,CACA,SAAS,IAAgB,EAAY,EAAO,EAAe,EAAgB,CACzE,GAAM,CAAE,SAAQ,WAAY,EAAW,YAAY,EAC7C,EAAuB,GAAoB,CAAK,EAChD,EAAU,EAAuB,GAAQ,GAAc,CAAU,EACjE,EAAY,EAAU,IAAI,GAAW,CACzC,GAAG,EACH,aAAc,EACd,UACA,SACF,CAAC,EAAI,IAAI,GAAuB,CAAE,SAAQ,CAAC,EAC3C,GAAmB,EAAY,CAAS,EACxC,GAAwB,EAAW,EAAO,CAAc,EACxD,IAAM,EAAS,GAAU,EAkBzB,OAjBK,GAGD,GAAwB,CAAM,GAAK,GAAuB,CAAS,IACjE,GAAuB,CAAU,GAAK,EAAW,YACnD,EAAU,WAAa,EAAW,WAClC,EAAO,mBAAmB,EAAW,WAAY,MAAM,GAC7C,IACV,EAAU,WAAa,cACvB,EAAO,mBAAmB,cAAe,MAAM,IAGnD,EAAO,KAAK,YAAa,CAAS,EAC9B,EAAc,eAChB,EAAO,KAAK,UAAW,CAAS,EAChC,EAAO,KAAK,eAAgB,CAAS,GAEhC,GAhBE,CAiBX,CACA,SAAS,IAAc,EAAO,EAAkB,CAC9C,GAAI,EACF,OAAO,EAET,GAAI,IAAqB,KACvB,OAEF,IAAM,EAAO,GAAiB,CAAK,EACnC,GAAI,CAAC,EACH,OAEF,IAAM,EAAS,GAAU,EAKzB,OAJgB,EAAS,EAAO,WAAW,EAAI,CAAC,GACpC,2BACH,GAAY,CAAI,EAElB,CACT,CAMA,SAAS,IAA0B,EAAQ,EAAe,CACxD,IAAM,EAAc,GAAQ,WAAW,EAAE,YAIzC,MAHI,CAAC,GAAU,CAAC,GAAwB,CAAM,GAAK,CAAC,GAAa,OACxD,GAEF,GACL,CACE,YAAa,EAAc,MAAQ,GACnC,GAAI,EAAc,2BAA8C,EAAc,GAC9E,WAAY,EAAc,UAC5B,EACA,CACF,CACF,CACA,SAAS,GAAc,EAAM,CAC3B,OAAO,GAAuB,CAAI,GAAK,EAAK,aAAe,SAC7D,CC1YA,IAAM,GAAmB,CACvB,YAAa,IACb,aAAc,IACd,iBAAkB,IACpB,EACM,IAAiC,kBACjC,IAA6B,cAC7B,IAA8B,eAC9B,IAAgC,iBACtC,SAAS,GAAc,EAAkB,EAAU,CAAC,EAAG,CACrD,IAAM,EAA6B,IAAI,IACnC,EAAY,GACZ,EACA,EAAgB,IAChB,EAAqB,CAAC,EAAQ,kBAC5B,EAAgB,CAAC,EACjB,CACJ,cAAc,GAAiB,YAC/B,eAAe,GAAiB,aAChC,mBAAmB,GAAiB,iBACpC,gBACA,2BAA2B,IACzB,EACE,EAAS,GAAU,EACnB,EAAQ,GAAgB,EAC9B,GAAI,CAAC,GAAU,CAAC,GAAgB,EAAG,CACjC,IAAM,EAAQ,IAAI,GAAuB,CAAE,QAAS,EAAM,sBAAsB,EAAE,OAAQ,CAAC,EAE3F,OADA,GAAwB,EAAO,EAAO,GAAkB,CAAC,EAClD,CACT,CACA,IAAM,EAAqB,GAAc,EACnC,EAAO,IAAe,CAAgB,EAC5C,EAAK,IAAM,IAAI,MAAM,EAAK,IAAK,CAC7B,MAAM,EAAQ,EAAS,EAAM,CAI3B,GAHI,GACF,EAAc,CAAI,EAEhB,GAAuB,CAAO,EAChC,OAEF,GAAM,CAAC,EAAqB,GAAG,GAAQ,EAEjC,EAAmB,GADP,GAAuB,GAAmB,CACH,EACnD,EAAQ,GAAmB,CAAI,EAAE,OAAQ,GAAU,IAAU,CAAI,EACjE,EAAW,GAAW,CAAI,EAChC,GAAI,CAAC,EAAM,QAAU,CAAC,EAEpB,OADA,EAAgB,CAAgB,EACzB,QAAQ,MAAM,EAAQ,EAAS,CAAC,EAAkB,GAAG,CAAI,CAAC,EAEnE,IAAM,EAAc,EAAO,WAAW,EAAE,YAClC,EAAyB,GAAO,QAAQ,EAAK,IAAY,CAC7D,IAAM,EAAkB,GAAW,CAAO,EAU1C,MATI,CAAC,EAAgB,WAGjB,GAAe,GACjB,CAAE,YAAa,EAAgB,YAAa,GAAI,EAAgB,GAAI,WAAY,EAAgB,IAAK,EACrG,CACF,EACS,EAEF,EAAM,KAAK,IAAI,EAAK,EAAgB,SAAS,EAAI,EAAgB,SAC1E,EAAG,IAAK,EAAC,EACH,EAAqB,EAAS,gBAC9B,EAAe,KAAK,IACxB,EAAqB,EAAqB,EAAe,IAAM,IAC/D,KAAK,IAAI,GAAsB,KAAW,KAAK,IAAI,EAAkB,GAA0B,GAAQ,CAAC,CAC1G,EAEA,OADA,EAAgB,CAAY,EACrB,QAAQ,MAAM,EAAQ,EAAS,CAAC,EAAc,GAAG,CAAI,CAAC,CAC/D,CACF,CAAC,EACD,SAAS,GAAqB,CAC5B,CAEE,IADA,aAAa,CAAc,EACV,IAAK,GAE1B,CACA,SAAS,EAAoB,EAAc,CACzC,EAAmB,EACnB,EAAiB,eAAiB,CAC5B,CAAC,GAAa,EAAW,OAAS,GAAK,IACzC,EAAgB,IAChB,EAAK,IAAI,CAAY,EAEzB,EAAG,CAAW,CAChB,CACA,SAAS,EAAyB,EAAc,CAC9C,EAAiB,eAAiB,CAC5B,CAAC,GAAa,IAChB,EAAgB,IAChB,EAAK,IAAI,CAAY,EAEzB,EAAG,CAAgB,CACrB,CACA,SAAS,EAAc,EAAQ,CAC7B,EAAmB,EACnB,EAAW,IAAI,EAAQ,EAAI,EAE3B,EADqB,GACe,EAAI,EAAmB,GAAG,CAChE,CACA,SAAS,EAAa,EAAQ,CACxB,EAAW,IAAI,CAAM,GACvB,EAAW,OAAO,CAAM,EAEtB,EAAW,OAAS,GAEtB,EADqB,GACU,EAAI,EAAc,GAAG,CAExD,CACA,SAAS,EAAgB,EAAc,CACrC,EAAY,GACZ,EAAW,MAAM,EACjB,EAAc,QAAS,GAAY,EAAQ,CAAC,EAC5C,GAAiB,EAAO,CAAkB,EAC1C,IAAM,EAAW,GAAW,CAAI,EAC1B,CAAE,gBAAiB,GAAmB,EAC5C,GAAI,CAAC,EACH,OAEiB,EAAS,wCAE1B,EAAK,aAAa,GAAmD,CAAa,EAEpF,IAAM,EAAgB,EAAS,QAC3B,CAAC,GAAiB,IAAkB,YACtC,EAAK,UAAU,CAAE,MAAqB,CAAC,EAEzC,GAAM,IAAI,wBAAwB,EAAS,GAAG,WAAW,EACzD,IAAM,EAAa,GAAmB,CAAI,EAAE,OAAQ,GAAU,IAAU,CAAI,EACxE,EAAiB,EACrB,EAAW,QAAS,GAAc,CAC5B,EAAU,YAAY,IACxB,EAAU,UAAU,CAAE,OAAyB,QAAS,WAAY,CAAC,EACrE,EAAU,IAAI,CAAY,EAC1B,IAAeA,GAAM,IAAI,mDAAoD,KAAK,UAAU,EAAW,IAAK,GAAG,CAAC,CAAC,GAGnH,GAAM,CAAE,UAAW,EAAoB,EAAG,gBAAiB,EAAsB,GAD3D,GAAW,CACkE,EAC7F,EAA+B,GAAuB,EACtD,GAA4B,EAAe,GAAe,IAC1D,EAA8B,EAAoB,GAAuB,EAC/E,GAAIJ,GAAa,CACf,IAAM,EAAkB,KAAK,UAAU,EAAW,IAAK,GAAG,CAAC,EACtD,EAEO,GACV,GAAM,IAAI,4EAA6E,CAAe,EAFtG,GAAM,IAAI,2EAA4E,CAAe,CAIzG,EACI,CAAC,GAA+B,CAAC,KACnC,IAAwB,EAAM,CAAS,EACvC,IAEJ,CAAC,EACG,EAAiB,GACnB,EAAK,aAAa,mCAAoC,CAAc,CAExE,CAyCA,OAxCA,EAAc,KACZ,EAAO,GAAG,YAAc,GAAgB,CAClC,GAAa,IAAgB,GAAU,GAAW,CAAW,EAAE,WAAa,aAAuB,IAAc,EAAY,iBAAiB,GAGjI,GAAmB,CACzB,EAAE,SAAS,CAAW,GAC/B,EAAc,EAAY,YAAY,EAAE,MAAM,CAElD,CAAC,CACH,EACA,EAAc,KACZ,EAAO,GAAG,UAAY,GAAc,CAC9B,GAGJ,EAAa,EAAU,YAAY,EAAE,MAAM,CAC7C,CAAC,CACH,EACA,EAAc,KACZ,EAAO,GAAG,2BAA6B,GAA0B,CAC3D,IAA0B,IAC5B,EAAqB,GACrB,EAAoB,EAChB,EAAW,MACb,EAAyB,EAG/B,CAAC,CACH,EACK,EAAQ,mBACX,EAAoB,EAEtB,eAAiB,CACV,IACH,EAAK,UAAU,CAAE,OAAyB,QAAS,mBAAoB,CAAC,EACxE,EAAgB,IAChB,EAAK,IAAI,EAEb,EAAG,CAAY,EACR,CACT,CACA,SAAS,IAAe,EAAS,CAC/B,IAAM,EAAO,GAAkB,CAAO,EAGtC,OAFA,GAAiB,GAAgB,EAAG,CAAI,EACxC,IAAeI,GAAM,IAAI,wCAAwC,EAC1D,CACT,CC7NA,SAAS1F,IAAS,EAAM,EAAM,EAAS,CACrC,IAAI,EACA,EACA,EACE,EAAU,GAAS,QAAU,KAAK,IAAI,EAAQ,QAAS,CAAI,EAAI,EAC/D,EAAiB,GAAS,gBAAkB,WAClD,SAAS,GAAa,CAGpB,OAFA,EAAa,EACb,EAAsB,EAAK,EACpB,CACT,CACA,SAAS,GAAe,CACtB,IAAY,IAAK,IAAK,aAAa,CAAO,EAC1C,IAAe,IAAK,IAAK,aAAa,CAAU,EAChD,EAAU,EAAa,IAAK,EAC9B,CACA,SAAS,GAAQ,CAIf,OAHI,IAAY,IAAK,IAAK,IAAe,IAAK,GACrC,EAAW,EAEb,CACT,CACA,SAAS,GAAY,CAQnB,OAPI,GACF,aAAa,CAAO,EAEtB,EAAU,EAAe,EAAY,CAAI,EACrC,GAAW,IAAe,IAAK,KACjC,EAAa,EAAe,EAAY,CAAO,GAE1C,CACT,CAGA,MAFA,GAAU,OAAS,EACnB,EAAU,MAAQ,EACX,CACT,CC9BA,SAAS,IAAsB,EAAO,EAAM,CAC1C,GAAM,CAAE,cAAa,OAAM,cAAa,yBAA0B,EAClE,IAAiB,EAAO,CAAI,EACxB,GACF,IAAiB,EAAO,CAAI,EAE9B,IAAwB,EAAO,CAAW,EAC1C,IAAwB,EAAO,CAAW,EAC1C,IAAwB,EAAO,CAAqB,CACtD,CACA,SAAS,GAAe,EAAM,EAAW,CACvC,GAAM,CACJ,QACA,OACA,aACA,OACA,WACA,QACA,wBACA,cACA,cACA,kBACA,cACA,qBACA,kBACA,QACE,EACJ,GAA2B,EAAM,QAAS,CAAK,EAC/C,GAA2B,EAAM,OAAQ,CAAI,EAC7C,GAA2B,EAAM,aAAc,CAAU,EACzD,GAA2B,EAAM,OAAQ,CAAI,EAC7C,GAA2B,EAAM,WAAY,CAAQ,EACrD,EAAK,sBAAwBuD,GAAM,EAAK,sBAAuB,EAAuB,CAAC,EACnF,IACF,EAAK,MAAQ,GAEX,IACF,EAAK,gBAAkB,GAErB,IACF,EAAK,KAAO,GAEV,EAAY,SACd,EAAK,YAAc,CAAC,GAAG,EAAK,YAAa,GAAG,CAAW,GAErD,EAAY,SACd,EAAK,YAAc,CAAC,GAAG,EAAK,YAAa,GAAG,CAAW,GAErD,EAAgB,SAClB,EAAK,gBAAkB,CAAC,GAAG,EAAK,gBAAiB,GAAG,CAAe,GAEjE,EAAY,SACd,EAAK,YAAc,CAAC,GAAG,EAAK,YAAa,GAAG,CAAW,GAEzD,EAAK,mBAAqB,CAAE,GAAG,EAAK,mBAAoB,GAAG,CAAmB,CAChF,CACA,SAAS,GAA2B,EAAM,EAAM,EAAU,CACxD,EAAK,GAAQA,GAAM,EAAK,GAAO,EAAU,CAAC,CAC5C,CACA,SAAS,GAAqB,EAAgB,EAAc,CAC1D,IAAM,EAAY,IAAe,EAAE,aAAa,EAGhD,OAFA,GAAkB,GAAe,EAAW,EAAe,aAAa,CAAC,EACzE,GAAgB,GAAe,EAAW,EAAa,aAAa,CAAC,EAC9D,CACT,CACA,SAAS,IAAiB,EAAO,EAAM,CACrC,GAAM,CAAE,QAAO,OAAM,OAAM,WAAU,QAAO,mBAAoB,EAC5D,OAAO,KAAK,CAAK,EAAE,SACrB,EAAM,MAAQ,CAAE,GAAG,EAAO,GAAG,EAAM,KAAM,GAEvC,OAAO,KAAK,CAAI,EAAE,SACpB,EAAM,KAAO,CAAE,GAAG,EAAM,GAAG,EAAM,IAAK,GAEpC,OAAO,KAAK,CAAI,EAAE,SACpB,EAAM,KAAO,CAAE,GAAG,EAAM,GAAG,EAAM,IAAK,GAEpC,OAAO,KAAK,CAAQ,EAAE,SACxB,EAAM,SAAW,CAAE,GAAG,EAAU,GAAG,EAAM,QAAS,GAEhD,IACF,EAAM,MAAQ,GAEZ,GAAmB,EAAM,OAAS,gBACpC,EAAM,YAAc,EAExB,CACA,SAAS,IAAwB,EAAO,EAAa,CACnD,IAAM,EAAoB,CAAC,GAAG,EAAM,aAAe,CAAC,EAAG,GAAG,CAAW,EACrE,EAAM,YAAc,EAAkB,OAAS,EAAoB,IAAK,EAC1E,CACA,SAAS,IAAwB,EAAO,EAAuB,CAC7D,EAAM,sBAAwB,CAC5B,GAAG,EAAM,sBACT,GAAG,CACL,CACF,CACA,SAAS,IAAiB,EAAO,EAAM,CACrC,EAAM,SAAW,CACf,MAAO,IAAmB,CAAI,EAC9B,GAAG,EAAM,QACX,EACA,EAAM,sBAAwB,CAC5B,uBAAwB,GAAkC,CAAI,EAC9D,GAAG,EAAM,qBACX,EAEA,IAAM,EAAkB,GADP,GAAY,CACa,CAAC,EAAE,YACzC,GAAmB,CAAC,EAAM,aAAe,EAAM,OAAS,gBAC1D,EAAM,YAAc,EAExB,CACA,SAAS,IAAwB,EAAO,EAAa,CACnD,EAAM,YAAc,EAAM,YAAc,MAAM,QAAQ,EAAM,WAAW,EAAI,EAAM,YAAc,CAAC,EAAM,WAAW,EAAI,CAAC,EAClH,IACF,EAAM,YAAc,EAAM,YAAY,OAAO,CAAW,GAErD,EAAM,YAAY,QACrB,OAAO,EAAM,WAEjB,CC5HA,IAA8lV,GAAG,WAAypK,GAAG,sBAAia,GAAG,qBAAm7B,GAAG,WCyCvliB,SAAS,GAA0B,EAAU,EAAe,CAC1D,IAAM,EAAqB,CAAwB,CAAS,aAAa,CAAC,EAC1E,OAAO,QAAQ,CAAa,EAAE,SAAS,CAAC,EAAK,KAAW,CAClD,GAAS,MAAQ,EAAE,KAAO,KAC5B,EAAmB,GAAO,EAE9B,CAAC,CACH,CC9CA,IAAM,GAAgB,EAChB,GAAiB,EACjB,GAAiB,EACvB,SAAS,GAAoB,EAAO,CAClC,OAAO,IAAI,GAAa,GAAY,CAClC,EAAQ,CAAK,CACf,CAAC,CACH,CACA,SAAS,GAAoB,EAAQ,CACnC,OAAO,IAAI,IAAa,EAAG,IAAW,CACpC,EAAO,CAAM,CACf,CAAC,CACH,CACA,IAAM,GAAN,MAAM,CAAY,CAChB,YAAY,EAAU,CACpB,KAAK,OAAS,GACd,KAAK,UAAY,CAAC,EAClB,KAAK,aAAa,CAAQ,CAC5B,CAEA,KAAK,EAAa,EAAY,CAC5B,OAAO,IAAI,GAAa,EAAS,IAAW,CAC1C,KAAK,UAAU,KAAK,CAClB,GACC,GAAW,CACV,GAAI,CAAC,EACH,EAAQ,CAAM,OAEd,GAAI,CACF,EAAQ,EAAY,CAAM,CAAC,CAC7B,OAAS,EAAG,CACV,EAAO,CAAC,CACV,CAEJ,EACC,GAAW,CACV,GAAI,CAAC,EACH,EAAO,CAAM,OAEb,GAAI,CACF,EAAQ,EAAW,CAAM,CAAC,CAC5B,OAAS,EAAG,CACV,EAAO,CAAC,CACV,CAEJ,CACF,CAAC,EACD,KAAK,iBAAiB,CACxB,CAAC,CACH,CAEA,MAAM,EAAY,CAChB,OAAO,KAAK,KAAM,GAAQ,EAAK,CAAU,CAC3C,CAEA,QAAQ,EAAW,CACjB,OAAO,IAAI,GAAa,EAAS,IAAW,CAC1C,IAAI,EACA,EACJ,OAAO,KAAK,KACT,GAAU,CACT,EAAa,GACb,EAAM,EACF,GACF,EAAU,CAEd,EACC,GAAW,CACV,EAAa,GACb,EAAM,EACF,GACF,EAAU,CAEd,CACF,EAAE,SAAW,CACX,GAAI,EAAY,CACd,EAAO,CAAG,EACV,MACF,CACA,EAAQ,CAAG,CACb,CAAC,CACH,CAAC,CACH,CAEA,kBAAmB,CACjB,GAAI,KAAK,SAAW,GAClB,OAEF,IAAM,EAAiB,KAAK,UAAU,MAAM,EAC5C,KAAK,UAAY,CAAC,EAClB,EAAe,QAAS,GAAY,CAC9B,CASJ,CAAQ,MANJ,KAAK,SAAW,IAClB,EAAQ,GAAG,KAAK,MAAM,EAEpB,KAAK,SAAW,IAClB,EAAQ,GAAG,KAAK,MAAM,EAEX,GACf,CAAC,CACH,CAEA,aAAa,EAAU,CACrB,IAAM,GAAa,EAAO,IAAU,CAC9B,QAAK,SAAW,GAGpB,IAAI,GAAW,CAAK,EAAG,CACrB,EAAW,KAAK,EAAS,CAAM,EAC/B,MACF,CACA,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,iBAAiB,CAHtB,CAIF,EACM,EAAW,GAAU,CACzB,EAAU,GAAgB,CAAK,CACjC,EACM,EAAU,GAAW,CACzB,EAAU,GAAgB,CAAM,CAClC,EACA,GAAI,CACF,EAAS,EAAS,CAAM,CAC1B,OAAS,EAAG,CACV,EAAO,CAAC,CACV,CACF,CACF,EC9HA,SAAS,IAAsB,EAAY,EAAO,EAAM,EAAQ,EAAG,CACjE,GAAI,CACF,IAAM,EAAS,GAAuB,EAAO,EAAM,EAAY,CAAK,EACpE,OAAO,GAAW,CAAM,EAAI,EAAS,GAAoB,CAAM,CACjE,OAAS,EAAO,CACd,OAAO,GAAoB,CAAK,CAClC,CACF,CACA,SAAS,GAAuB,EAAO,EAAM,EAAY,EAAO,CAC9D,IAAM,EAAY,EAAW,GAC7B,GAAI,CAAC,GAAS,CAAC,EACb,OAAO,EAET,IAAM,EAAS,EAAU,CAAE,GAAG,CAAM,EAAG,CAAI,EAK3C,OAJA,IAAe,IAAW,MAAQmC,GAAM,IAAI,oBAAoB,EAAU,IAAM,IAAI,gBAAgB,EAChG,GAAW,CAAM,EACZ,EAAO,KAAM,GAAU,GAAuB,EAAO,EAAM,EAAY,EAAQ,CAAC,CAAC,EAEnF,GAAuB,EAAQ,EAAM,EAAY,EAAQ,CAAC,CACnE,CCrBA,IAAI,GACA,GACA,GACA,GACJ,SAAS,IAAwB,EAAa,CAC5C,IAAM,EAAmB,GAAW,gBAC9B,EAAmB,GAAW,UACpC,GAAI,CAAC,GAAoB,CAAC,EACxB,MAAO,CAAC,EAEV,IAAM,EAAoB,EAAmB,OAAO,KAAK,CAAgB,EAAI,CAAC,EACxE,EAAoB,EAAmB,OAAO,KAAK,CAAgB,EAAI,CAAC,EAC9E,GAAI,IAA0B,EAAkB,SAAW,IAAuB,EAAkB,SAAW,GAC7G,OAAO,GAET,GAAsB,EAAkB,OACxC,GAAsB,EAAkB,OACxC,GAAyB,CAAC,EAC1B,EACE,GAAqB,CAAC,EAExB,IAAM,GAAmB,EAAa,IAAe,CACnD,IAAK,IAAM,KAAO,EAAa,CAC7B,IAAM,EAAU,EAAW,GACrB,EAAS,KAAqB,GACpC,GAAI,GAAU,IAA0B,EACtC,GAAuB,EAAO,IAAM,EAChC,KACF,GAAmB,GAAO,CAAC,EAAO,GAAI,CAAO,QAE1C,GAAI,EAAS,CAClB,IAAM,EAAc,EAAY,CAAG,EACnC,IAAK,IAAI,EAAI,EAAY,OAAS,EAAG,GAAK,EAAG,IAAK,CAEhD,IAAM,EADa,EAAY,IACF,SAC7B,GAAI,GAAY,IAA0B,GAAoB,CAC5D,GAAuB,GAAY,EACnC,GAAmB,GAAO,CAAC,EAAU,CAAO,EAC5C,KACF,CACF,CACF,CACF,CACF,EAOA,OANI,GACF,EAAgB,EAAmB,CAAgB,EAEjD,GACF,EAAgB,EAAmB,CAAgB,EAE9C,EACT,CC3CA,SAAS,GAAa,EAAS,EAAO,EAAM,EAAO,EAAQ,EAAgB,CACzE,GAAM,CAAE,iBAAiB,EAAG,sBAAsB,KAAQ,EACpD,EAAW,CACf,GAAG,EACH,SAAU,EAAM,UAAY,EAAK,UAAY,GAAM,EACnD,UAAW,EAAM,WAAa,GAAuB,CACvD,EACM,EAAe,EAAK,cAAgB,EAAQ,aAAa,IAAK,GAAM,EAAE,IAAI,EAChF,IAAmB,EAAU,CAAO,EACpC,IAA0B,EAAU,CAAY,EAC5C,GACF,EAAO,KAAK,qBAAsB,CAAK,EAErC,EAAM,OAAS,IAAK,IACtB,IAAc,EAAU,EAAQ,WAAW,EAE7C,IAAM,EAAa,IAAc,EAAO,EAAK,cAAc,EACvD,EAAK,WACP,GAAsB,EAAU,EAAK,SAAS,EAEhD,IAAM,EAAwB,EAAS,EAAO,mBAAmB,EAAI,CAAC,EAChE,EAAO,GAAqB,EAAgB,CAAU,EACtD,EAAc,CAAC,GAAG,EAAK,aAAe,CAAC,EAAG,GAAG,EAAK,WAAW,EAC/D,EAAY,SACd,EAAK,YAAc,GAErB,IAAsB,EAAU,CAAI,EACpC,IAAM,EAAkB,CACtB,GAAG,EAEH,GAAG,EAAK,eACV,EAGA,OAF4B,EAAK,MAAQ,EAAK,KAAK,aAAe,GAC7B,GAAoB,CAAQ,EAAI,IAAsB,EAAiB,EAAU,CAAI,GAC5G,KAAM,IACd,GACF,IAAe,CAAG,EAEhB,OAAO,GAAmB,UAAY,EAAiB,EAClD,IAAe,EAAK,EAAgB,CAAmB,EAEzD,EACR,CACH,CACA,SAAS,IAAmB,EAAO,EAAS,CAC1C,GAAM,CAAE,cAAa,UAAS,OAAM,kBAAmB,EACvD,EAAM,YAAc,EAAM,aAAe,gBACrC,CAAC,EAAM,SAAW,IACpB,EAAM,QAAU,GAEd,CAAC,EAAM,MAAQ,IACjB,EAAM,KAAO,GAEf,IAAM,EAAU,EAAM,QAClB,GAAS,KAAO,IAClB,EAAQ,IAAMS,GAAS,EAAQ,IAAK,CAAc,GAEhD,GACF,EAAM,WAAW,QAAQ,QAAS,GAAc,CAC9C,CACE,CAAU,QAAQA,GAAS,EAAU,MAAO,CAAc,CAE9D,CAAC,CAEL,CACA,SAAS,IAAc,EAAO,EAAa,CACzC,IAAM,EAAqB,IAAwB,CAAW,EAC9D,EAAM,WAAW,QAAQ,QAAS,GAAc,CAC9C,EAAU,YAAY,QAAQ,QAAS,GAAU,CAC3C,EAAM,WACR,EAAM,SAAW,EAAmB,EAAM,UAE9C,CAAC,CACH,CAAC,CACH,CACA,SAAS,IAAe,EAAO,CAC7B,IAAM,EAAqB,CAAC,EAa5B,GAZA,EAAM,WAAW,QAAQ,QAAS,GAAc,CAC9C,EAAU,YAAY,QAAQ,QAAS,GAAU,CAC3C,EAAM,WACJ,EAAM,SACR,EAAmB,EAAM,UAAY,EAAM,SAClC,EAAM,WACf,EAAmB,EAAM,UAAY,EAAM,UAE7C,OAAO,EAAM,SAEjB,CAAC,CACH,CAAC,EACG,OAAO,KAAK,CAAkB,EAAE,SAAW,EAC7C,OAEF,EAAM,WAAa,EAAM,YAAc,CAAC,EACxC,EAAM,WAAW,OAAS,EAAM,WAAW,QAAU,CAAC,EACtD,IAAM,EAAS,EAAM,WAAW,OAChC,OAAO,QAAQ,CAAkB,EAAE,SAAS,CAAC,EAAU,KAAc,CACnE,EAAO,KAAK,CACV,KAAM,YACN,UAAW,EACX,UACF,CAAC,CACH,CAAC,CACH,CACA,SAAS,IAA0B,EAAO,EAAkB,CACtD,EAAiB,OAAS,IAC5B,EAAM,IAAM,EAAM,KAAO,CAAC,EAC1B,EAAM,IAAI,aAAe,CAAC,GAAG,EAAM,IAAI,cAAgB,CAAC,EAAG,GAAG,CAAgB,EAElF,CACA,SAAS,IAAe,EAAO,EAAO,EAAY,CAChD,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAa,CACjB,GAAG,EACH,GAAG,EAAM,aAAe,CACtB,YAAa,EAAM,YAAY,IAAK,IAAO,CACzC,GAAG,EACH,GAAG,EAAE,MAAQ,CACX,KAAM,GAAU,EAAE,KAAM,EAAO,CAAU,CAC3C,CACF,EAAE,CACJ,EACA,GAAG,EAAM,MAAQ,CACf,KAAM,GAAU,EAAM,KAAM,EAAO,CAAU,CAC/C,EACA,GAAG,EAAM,UAAY,CACnB,SAAU,GAAU,EAAM,SAAU,EAAO,CAAU,CACvD,EACA,GAAG,EAAM,OAAS,CAChB,MAAO,GAAU,EAAM,MAAO,EAAO,CAAU,CACjD,CACF,EAoBA,OAnBI,EAAM,UAAU,OAAS,EAAW,WACtC,EAAW,SAAS,MAAQ,EAAM,SAAS,MACvC,EAAM,SAAS,MAAM,OACvB,EAAW,SAAS,MAAM,KAAO,GAAU,EAAM,SAAS,MAAM,KAAM,EAAO,CAAU,IAGvF,EAAM,QACR,EAAW,MAAQ,EAAM,MAAM,IAAK,IAC3B,CACL,GAAG,EACH,GAAG,EAAK,MAAQ,CACd,KAAM,GAAU,EAAK,KAAM,EAAO,CAAU,CAC9C,CACF,EACD,GAEC,EAAM,UAAU,OAAS,EAAW,WACtC,EAAW,SAAS,MAAQ,GAAU,EAAM,SAAS,MAAO,EAAG,CAAU,GAEpE,CACT,CACA,SAAS,IAAc,EAAO,EAAgB,CAC5C,GAAI,CAAC,EACH,OAAO,EAET,IAAM,EAAa,EAAQ,EAAM,MAAM,EAAI,IAAI,GAE/C,OADA,EAAW,OAAO,CAAc,EACzB,CACT,CACA,SAAS,IAA+B,EAAM,CACvC,KAWL,OARI,IAAsB,CAAI,GAG1B,IAAmB,CAAI,EAClB,CACL,eAAgB,CAClB,EAEK,CACT,CACA,SAAS,IAAsB,EAAM,CACnC,OAAO,aAAgB,IAAS,OAAO,GAAS,UAClD,CACA,IAAM,IAAqB,CACzB,OACA,QACA,QACA,WACA,OACA,cACA,oBACF,EACA,SAAS,IAAmB,EAAM,CAChC,OAAO,OAAO,KAAK,CAAI,EAAE,KAAM,GAAQ,IAAmB,SAAS,CAAG,CAAC,CACzE,CC7LA,SAAS,GAAiB,EAAW,EAAM,CACzC,OAAO,GAAgB,EAAE,iBAAiB,EAAW,IAA+B,CAAI,CAAC,CAC3F,CAMA,SAAS,GAAa,EAAO,EAAM,CACjC,OAAO,GAAgB,EAAE,aAAa,EAAO,CAAI,CACnD,CACA,SAAS,GAAW,EAAM,EAAS,CACjC,GAAkB,EAAE,WAAW,EAAM,CAAO,CAC9C,CAIA,SAAS,GAAS,EAAK,EAAO,CAC5B,GAAkB,EAAE,SAAS,EAAK,CAAK,CACzC,CAIA,SAAS,GAAO,EAAK,EAAO,CAC1B,GAAkB,EAAE,OAAO,EAAK,CAAK,CACvC,CAOA,SAAS,GAAQ,EAAM,CACrB,GAAkB,EAAE,QAAQ,CAAI,CAClC,CAqEA,SAAS,KAAY,CACnB,IAAM,EAAS,GAAU,EACzB,OAAO,GAAQ,WAAW,EAAE,UAAY,IAAS,CAAC,CAAC,GAAQ,aAAa,CAC1E,CACA,SAAS,IAAkB,EAAU,CACnC,GAAkB,EAAE,kBAAkB,CAAQ,CAChD,CACA,SAAS,GAAa,EAAS,CAC7B,IAAM,EAAiB,GAAkB,EACnC,CAAE,QAAS,GAAqB,EAAgB,GAAgB,CAAC,EACjE,CAAE,aAAc,GAAW,WAAa,CAAC,EACzC,EAAUC,IAAY,CAC1B,OACA,GAAG,GAAa,CAAE,WAAU,EAC5B,GAAG,CACL,CAAC,EACK,EAAiB,EAAe,WAAW,EAMjD,OALI,GAAgB,SAAW,MAC7B,GAAc,EAAgB,CAAE,OAAQ,QAAS,CAAC,EAEpD,GAAW,EACX,EAAe,WAAW,CAAO,EAC1B,CACT,CACA,SAAS,IAAa,CACpB,IAAM,EAAiB,GAAkB,EAEnC,EADe,GACM,EAAE,WAAW,GAAK,EAAe,WAAW,EACnE,GACF,IAAa,CAAO,EAEtB,GAAmB,EACnB,EAAe,WAAW,CAC5B,CACA,SAAS,IAAqB,CAC5B,IAAM,EAAiB,GAAkB,EACnC,EAAS,GAAU,EACnB,EAAU,EAAe,WAAW,EACtC,GAAW,GACb,EAAO,eAAe,CAAO,CAEjC,CACA,SAAS,GAAe,EAAM,GAAO,CACnC,GAAI,EAAK,CACP,GAAW,EACX,MACF,CACA,GAAmB,CACrB,CCnKA,SAAS,GAAU,EAAO,CAIxB,OAHI,OAAO,GAAU,UAAY,OAAO,EAAM,OAAU,YACtD,EAAM,MAAM,EAEP,CACT,CCFA,SAAS,IAAmB,EAAK,CAC/B,IAAM,EAAW,EAAI,SAAW,GAAG,EAAI,SAAS,GAAK,GAC/C,EAAO,EAAI,KAAO,IAAI,EAAI,OAAS,GACzC,MAAO,GAAG,EAAS,IAAI,EAAI,OAAO,IAAO,EAAI,KAAO,IAAI,EAAI,OAAS,GAAG,MAC1E,CACA,SAAS,IAAmB,EAAK,CAC/B,MAAO,GAAG,IAAmB,CAAG,IAAI,EAAI,UAAU,WACpD,CACA,SAAS,IAAa,EAAK,EAAS,CAClC,IAAM,EAAS,CACb,kBACF,EAOA,OANI,EAAI,YACN,EAAO,WAAa,EAAI,WAEtB,IACF,EAAO,cAAgB,GAAG,EAAQ,KAAK,GAAG,EAAQ,WAE7C,IAAI,gBAAgB,CAAM,EAAE,SAAS,CAC9C,CACA,SAAS,IAAsC,EAAK,EAAQ,EAAS,CACnE,OAAO,GAAkB,GAAG,IAAmB,CAAG,EAAE,GAAG,IAAa,EAAK,CAAO,GAClF,CCrBA,IAAM,GAAwB,CAAC,EAC/B,SAAS,IAAiB,EAAc,CACtC,IAAM,EAAqB,CAAC,EAS5B,OARA,EAAa,QAAS,GAAoB,CACxC,GAAM,CAAE,QAAS,EACX,EAAmB,EAAmB,GACxC,GAAoB,CAAC,EAAiB,mBAAqB,EAAgB,oBAG/E,EAAmB,GAAQ,EAC7B,CAAC,EACM,OAAO,OAAO,CAAkB,CACzC,CACA,SAAS,IAAuB,EAAS,CACvC,IAAM,EAAsB,EAAQ,qBAAuB,CAAC,EACtD,EAAmB,EAAQ,aACjC,EAAoB,QAAS,GAAgB,CAC3C,EAAY,kBAAoB,EAClC,CAAC,EACD,IAAI,EACJ,GAAI,MAAM,QAAQ,CAAgB,EAChC,EAAe,CAAC,GAAG,EAAqB,GAAG,CAAgB,OACtD,GAAI,OAAO,GAAqB,WAAY,CACjD,IAAM,EAA2B,EAAiB,CAAmB,EACrE,EAAe,MAAM,QAAQ,CAAwB,EAAI,EAA2B,CAAC,CAAwB,CAC/G,MACE,EAAe,EAEjB,OAAO,IAAiB,CAAY,CACtC,CACA,SAAS,IAAkB,EAAQ,EAAc,CAC/C,IAAM,EAAmB,CAAC,EAW1B,OAVA,EAAa,QAAS,GAAgB,CAChC,GAAa,aACf,EAAY,YAAY,CAAM,CAElC,CAAC,EACD,EAAa,QAAS,GAAgB,CAChC,GACF,GAAiB,EAAQ,EAAa,CAAgB,CAE1D,CAAC,EACM,CACT,CACA,SAAS,GAAuB,EAAQ,EAAc,CACpD,IAAK,IAAM,KAAe,EACpB,GAAa,eACf,EAAY,cAAc,CAAM,CAGtC,CACA,SAAS,GAAiB,EAAQ,EAAa,EAAkB,CAC/D,GAAI,EAAiB,EAAY,MAAO,CACtC,IAAeV,GAAM,IAAI,yDAAyD,EAAY,MAAM,EACpG,MACF,CASA,GARA,EAAiB,EAAY,MAAQ,EACjC,CAAC,GAAsB,SAAS,EAAY,IAAI,GAAK,OAAO,EAAY,WAAc,aACxF,EAAY,UAAU,EACtB,GAAsB,KAAK,EAAY,IAAI,GAEzC,EAAY,OAAS,OAAO,EAAY,OAAU,YACpD,EAAY,MAAM,CAAM,EAEtB,OAAO,EAAY,iBAAoB,WAAY,CACrD,IAAM,EAAW,EAAY,gBAAgB,KAAK,CAAW,EAC7D,EAAO,GAAG,mBAAoB,EAAO,IAAS,EAAS,EAAO,EAAM,CAAM,CAAC,CAC7E,CACA,GAAI,OAAO,EAAY,cAAiB,WAAY,CAClD,IAAM,EAAW,EAAY,aAAa,KAAK,CAAW,EACpD,EAAY,OAAO,QAAQ,EAAO,IAAS,EAAS,EAAO,EAAM,CAAM,EAAG,CAC9E,GAAI,EAAY,IAClB,CAAC,EACD,EAAO,kBAAkB,CAAS,CACpC,CACA,CAAC,cAAe,oBAAoB,EAAE,QAAS,GAAS,CACtD,IAAM,EAAW,EAAY,GACzB,OAAO,GAAa,YACtB,EAAO,GAAG,EAAO,GAAS,EAAS,KAAK,EAAa,EAAM,CAAM,CAAC,CAEtE,CAAC,EACD,IAAeA,GAAM,IAAI,0BAA0B,EAAY,MAAM,CACvE,CASA,SAAS,GAAkB,EAAI,CAC7B,OAAO,CACT,CCjGA,SAAS,KAAkB,CACzB,OAAO,OAAO,0BAA8B,KAAe,CAAC,CAAC,yBAC/D,CACA,SAAS,KAAe,CAEtB,MAAO,KACT,CCJA,SAAS,KAAY,CACnB,MAAO,CAAC,IAAgB,GAAK,OAAO,UAAU,SAAS,KAAK,OAAO,QAAY,IAAc,QAAU,CAAC,IAAM,kBAChH,CCDA,SAAS,IAAY,CACnB,OAAO,OAAO,OAAW,MAAgB,CAAC,IAAU,GAAK,IAAuB,EAClF,CACA,SAAS,KAAyB,CAEhC,OADgB,GAAW,SACX,OAAS,UAC3B,CCLA,SAAS,IAA+B,EAAO,EAAe,CAC5D,IAAM,EAAe,EAAgB,OAAS,QAC9C,MAAO,CACL,CACE,KAAM,MACN,WAAY,EAAM,OAClB,aAAc,uCAChB,EACA,CACE,QAAS,EACT,GAAG,GAAU,GAAK,CAChB,gBAAiB,CAAE,SAAU,EAAc,iBAAkB,CAAa,CAC5E,EACA,OACF,CACF,CACF,CACA,SAAS,IAAkB,EAAM,EAAU,EAAQ,EAAK,EAAe,CACrE,IAAM,EAAU,CAAC,EAUjB,OATI,GAAU,MACZ,EAAQ,IAAM,CACZ,KAAM,EAAS,IAAI,KACnB,QAAS,EAAS,IAAI,OACxB,GAEI,GAAY,IAChB,EAAQ,IAAM,GAAY,CAAG,GAExB,GAAe,EAAS,CAAC,IAA+B,EAAM,CAAa,CAAC,CAAC,CACtF,CCwEA,SAAS,IAA0B,EAAQ,EAAgB,CACzD,IAAM,EAAY,GAAkB,IAAuB,CAAM,GAAK,CAAC,EACvE,GAAI,EAAU,SAAW,EACvB,OAEF,IAAM,EAAgB,EAAO,WAAW,EAClC,EAAW,IACf,EACA,EAAc,UACd,EAAc,OACd,EAAO,OAAO,EACd,EAAO,yBAAyB,EAAE,QACpC,EACA,GAAc,EAAE,IAAI,EAAQ,CAAC,CAAC,EAC9B,EAAO,KAAK,WAAW,EACvB,EAAO,aAAa,CAAQ,CAC9B,CACA,SAAS,IAAuB,EAAQ,CACtC,OAAOa,GAAc,EAAE,IAAI,CAAM,CACnC,CACA,SAASA,IAAgB,CACvB,OAAO,GAAmB,2BAA8C,IAAI,OAAS,CACvF,CC3HA,SAAS,IAAkC,EAAO,EAAe,CAC/D,IAAM,EAAe,EAAgB,OAAS,QAC9C,MAAO,CACL,CACE,KAAM,eACN,WAAY,EAAM,OAClB,aAAc,gDAChB,EACA,CACE,QAAS,EACT,GAAG,GAAU,GAAK,CAChB,gBAAiB,CAAE,SAAU,EAAc,iBAAkB,CAAa,CAC5E,EACA,OACF,CACF,CACF,CACA,SAAS,IAAqB,EAAS,EAAU,EAAQ,EAAK,EAAe,CAC3E,IAAM,EAAU,CAAC,EAUjB,OATI,GAAU,MACZ,EAAQ,IAAM,CACZ,KAAM,EAAS,IAAI,KACnB,QAAS,EAAS,IAAI,OACxB,GAEI,GAAY,IAChB,EAAQ,IAAM,GAAY,CAAG,GAExB,GAAe,EAAS,CAAC,IAAkC,EAAS,CAAa,CAAC,CAAC,CAC5F,CCyEA,SAAS,IAA6B,EAAQ,EAAmB,CAC/D,IAAM,EAAe,GAAqB,IAA0B,CAAM,GAAK,CAAC,EAChF,GAAI,EAAa,SAAW,EAC1B,OAEF,IAAM,EAAgB,EAAO,WAAW,EAClC,EAAW,IACf,EACA,EAAc,UACd,EAAc,OACd,EAAO,OAAO,EACd,EAAO,yBAAyB,EAAE,QACpC,EACA,GAAc,EAAE,IAAI,EAAQ,CAAC,CAAC,EAC9B,EAAO,KAAK,cAAc,EAC1B,EAAO,aAAa,CAAQ,CAC9B,CACA,SAAS,IAA0B,EAAQ,CACzC,OAAO,GAAc,EAAE,IAAI,CAAM,CACnC,CACA,SAAS,IAAgB,CACvB,OAAO,GAAmB,8BAAiD,IAAI,OAAS,CAC1F,CC9HA,SAAS,IAAiC,EAAM,CAa9C,OAAO,IAAiC,CAXtC,SAAU,EAAK,SACf,QAAS,EAAK,QACd,eAAgB,EAAK,eACrB,KAAM,EAAK,aAAe,GAC1B,gBAAiB,EAAK,gBACtB,cAAe,EAAK,WAAa,EAAK,gBACtC,OAAQ,CAAC,EAAK,QAAU,EAAK,SAAW,MAAQ,EAAK,SAAW,YAAc,KAAO,QACrF,WAAY,GACZ,WAAY,CAAE,GAAG,EAAK,IAAK,EAC3B,MAAO,EAAK,KAEqC,CAAC,CACtD,CCZA,SAAS,IAA2B,EAAO,EAAQ,CACjD,GAAI,EAAM,OAAS,eAAiB,CAAC,EAAM,OAAO,QAAU,CAAC,EAAM,uBAAuB,eAAiB,EAAO,WAAW,EAAE,mBAAqB,IAAS,GAAwB,CAAM,EACzL,OAEF,IAAM,EAAa,CAAC,EACd,EAAiB,CAAC,EACxB,IAAK,IAAM,KAAQ,EAAM,MACnB,EAAK,IAAI,WAAW,SAAS,EAC/B,EAAW,KAAK,IAAiC,CAAI,CAAC,EAEtD,EAAe,KAAK,CAAI,EAG5B,GAAI,EAAW,SAAW,EACxB,OAEF,EAAM,MAAQ,EACd,IAAM,EAAe,EAAO,yBAAyB,EAAE,SAAW,OAAS,QAC3E,MAAO,CACL,CAAE,KAAM,OAAQ,WAAY,EAAW,OAAQ,aAAc,2CAA4C,EACzG,CACE,QAAS,EACT,GAAG,GAAU,GAAK,CAChB,gBAAiB,CAAE,SAAU,EAAc,iBAAkB,CAAa,CAC5E,EACA,MAAO,CACT,CACF,CACF,CC7BA,IAAM,GAA2C,OAAO,IAAI,uBAAuB,EACnF,SAAS,GAAkB,EAAQ,IAAK,CACtC,IAAM,EAAyB,IAAI,IACnC,SAAS,GAAU,CACjB,OAAO,EAAO,KAAO,CACvB,CACA,SAAS,EAAO,EAAM,CACpB,EAAO,OAAO,CAAI,CACpB,CACA,SAAS,EAAI,EAAc,CACzB,GAAI,CAAC,EAAQ,EACX,OAAO,GAAoB,EAAwB,EAErD,IAAM,EAAO,EAAa,EAM1B,OALA,EAAO,IAAI,CAAI,EACf,EAAU,SACF,EAAO,CAAI,MACX,EAAO,CAAI,CACnB,EACO,CACT,CACA,SAAS,EAAM,EAAS,CACtB,GAAI,CAAC,EAAO,KACV,OAAO,GAAoB,EAAI,EAEjC,IAAM,EAAe,QAAQ,WAAW,MAAM,KAAK,CAAM,CAAC,EAAE,SAAW,EAAI,EAC3E,GAAI,CAAC,EACH,OAAO,EAET,IAAM,EAAW,CACf,EACA,IAAI,QAAS,GAAY,GAAU,eAAiB,EAAQ,EAAK,EAAG,CAAO,CAAC,CAAC,CAC/E,EACA,OAAO,QAAQ,KAAK,CAAQ,CAC9B,CACA,MAAO,CACL,IAAI,GAAI,CACN,OAAO,MAAM,KAAK,CAAM,CAC1B,EACA,MACA,OACF,CACF,CC3CA,IAAM,IAAsB,GAAK,IACjC,SAAS,IAAsB,EAAQ,EAAM,GAAY,EAAG,CAC1D,IAAM,EAAc,SAAS,GAAG,IAAU,EAAE,EAC5C,GAAI,CAAC,MAAM,CAAW,EACpB,OAAO,EAAc,IAEvB,IAAM,EAAa,KAAK,MAAM,GAAG,GAAQ,EAIzC,OAHK,MAAM,CAAU,EAGd,IAFE,EAAa,CAGxB,CACA,SAAS,IAAc,EAAQ,EAAc,CAC3C,OAAO,EAAO,IAAiB,EAAO,KAAO,CAC/C,CACA,SAAS,GAAc,EAAQ,EAAc,EAAM,GAAY,EAAG,CAChE,OAAO,IAAc,EAAQ,CAAY,EAAI,CAC/C,CACA,SAAS,GAAiB,EAAQ,CAAE,aAAY,WAAW,EAAM,GAAY,EAAG,CAC9E,IAAM,EAAoB,CACxB,GAAG,CACL,EACM,EAAkB,IAAU,wBAC5B,EAAmB,IAAU,eACnC,GAAI,EACF,IAAK,IAAM,KAAS,EAAgB,KAAK,EAAE,MAAM,GAAG,EAAG,CACrD,GAAM,CAAC,EAAY,IAAgB,GAAc,EAAM,MAAM,IAAK,CAAC,EAC7D,EAAc,SAAS,EAAY,EAAE,EACrC,GAAU,MAAM,CAAW,EAAkB,GAAd,GAAoB,IACzD,GAAI,CAAC,EACH,EAAkB,IAAM,EAAM,OAE9B,IAAK,IAAM,KAAY,EAAW,MAAM,GAAG,EACrC,IAAa,iBACX,CAAC,GAAc,EAAW,MAAM,GAAG,EAAE,SAAS,QAAQ,KACxD,EAAkB,GAAY,EAAM,GAGtC,EAAkB,GAAY,EAAM,CAI5C,MACS,EACT,EAAkB,IAAM,EAAM,IAAsB,EAAkB,CAAG,EAChE,IAAe,MACxB,EAAkB,IAAM,EAAM,GAAK,KAErC,OAAO,CACT,CC5CA,SAAS,IAAgB,EAAS,EAAa,EAAS,GACtD,EAAQ,cACV,EAAG,CACD,IAAI,EAAa,CAAC,EACZ,EAAS,GAAY,EAAO,MAAM,CAAO,EAC/C,SAAS,EAAK,EAAU,CACtB,IAAM,EAAwB,CAAC,EAS/B,GARA,GAAoB,GAAW,EAAM,IAAS,CAC5C,IAAM,EAAe,GAA+B,CAAI,EACpD,GAAc,EAAY,CAAY,EACxC,EAAQ,mBAAmB,oBAAqB,CAAY,EAE5D,EAAsB,KAAK,CAAI,CAEnC,CAAC,EACG,EAAsB,SAAW,EACnC,OAAO,QAAQ,QAAQ,CAAC,CAAC,EAE3B,IAAM,EAAmB,GAAe,EAAS,GAAI,CAAqB,EACpE,EAAsB,GAAW,CACrC,GAAI,IAAyB,EAAkB,CAAC,eAAe,CAAC,EAAG,CACjE,IAAeb,GAAM,KAAK,2DAA2D,EAAO,GAAG,EAC/F,MACF,CACA,GAAoB,GAAmB,EAAM,IAAS,CACpD,EAAQ,mBAAmB,EAAQ,GAA+B,CAAI,CAAC,CACzE,CAAC,CACH,EAsBA,OAAO,EAAO,QArBY,EAAY,CAAE,KAAM,IAAkB,CAAgB,CAAE,CAAC,EAAE,KAClF,GACK,EAAS,aAAe,KAC1B,IAAeA,GAAM,MACnB,6FACF,EACA,EAAmB,YAAY,EACxB,IAELJ,IAAe,EAAS,aAAe,IAAK,KAAM,EAAS,WAAa,KAAO,EAAS,YAAc,MACxG,GAAM,KAAK,qCAAqC,EAAS,WAAW,gBAAgB,EAEtF,EAAa,GAAiB,EAAY,CAAQ,EAC3C,GAER,GAAU,CAGT,MAFA,EAAmB,eAAe,EAClC,IAAeI,GAAM,MAAM,+CAAgD,CAAK,EAC1E,CACR,CACF,CAC6B,EAAE,KAC5B,GAAW,EACX,GAAU,CACT,GAAI,IAAU,GAGZ,OAFA,IAAeA,GAAM,MAAM,+CAA+C,EAC1E,EAAmB,gBAAgB,EAC5B,QAAQ,QAAQ,CAAC,CAAC,EAEzB,MAAM,CAEV,CACF,CACF,CACA,MAAO,CACL,OACA,OACF,CACF,CCtEA,SAAS,IAA2B,EAAkB,EAAK,EAAW,CACpE,IAAM,EAAmB,CACvB,CAAE,KAAM,eAAgB,EACxB,CACE,UAAW,GAAa,GAAuB,EAC/C,kBACF,CACF,EACA,OAAO,GAAe,EAAM,CAAE,KAAI,EAAI,CAAC,EAAG,CAAC,CAAgB,CAAC,CAC9D,CCZA,SAAS,GAAyB,EAAO,CACvC,IAAM,EAAmB,CAAC,EACtB,EAAM,SACR,EAAiB,KAAK,EAAM,OAAO,EAErC,GAAI,CACF,IAAM,EAAgB,EAAM,UAAU,OAAO,EAAM,UAAU,OAAO,OAAS,GACzE,GAAe,QACjB,EAAiB,KAAK,EAAc,KAAK,EACrC,EAAc,MAChB,EAAiB,KAAK,GAAG,EAAc,KAAK,IAAI,EAAc,OAAO,EAG3E,MAAQ,CACR,CACA,OAAO,CACT,CCdA,SAAS,IAAkC,EAAO,CAChD,GAAM,CAAE,WAAU,iBAAgB,UAAS,SAAQ,SAAQ,OAAM,MAAO,EAAM,UAAU,OAAS,CAAC,EAClG,MAAO,CACL,KAAM,GAAQ,CAAC,EACf,YAAa,EAAM,YACnB,KACA,iBACA,QAAS,GAAW,GACpB,gBAAiB,EAAM,iBAAmB,EAC1C,SACA,UAAW,EAAM,UACjB,SAAU,GAAY,GACtB,SACA,WAAY,IAAO,IACnB,eAAgB,IAAO,IACvB,aAAc,EAAM,aACpB,WAAY,EACd,CACF,CACA,SAAS,IAAkC,EAAM,CAC/C,MAAO,CACL,KAAM,cACN,UAAW,EAAK,UAChB,gBAAiB,EAAK,gBACtB,YAAa,EAAK,YAClB,SAAU,CACR,MAAO,CACL,SAAU,EAAK,SACf,QAAS,EAAK,QACd,eAAgB,EAAK,eACrB,GAAI,EAAK,GACT,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,KAAM,CACJ,GAAG,EAAK,KACR,GAAG,EAAK,YAAc,qBAAmC,EAAK,UAAW,EACzE,GAAG,EAAK,gBAAkB,yBAAuC,EAAK,cAAe,CACvF,CACF,CACF,EACA,aAAc,EAAK,YACrB,CACF,CC5CA,IAAM,GAAiB,aACjB,GAAsB,CAAC,YAAa,MAAO,UAAW,MAAO,OAAO,EACpE,GAAyB,CAC7B,OACA,QACA,SACA,UAEA,WACA,SACA,MACA,MACA,MACA,SACA,MACA,OACA,OACA,OACA,cACA,MACA,WAEA,aACA,QACF,EACM,IAAiC,CAErC,OAEA,SAEA,WAEA,OACA,OACA,QAEA,YACA,UAEA,SACA,SACA,SAEA,WACA,UACA,WACA,WACA,MAEA,MACA,KACF,EClDA,SAAS,IAA8B,EAAgB,CACrD,OAAO,IAAmB,GAAO,CAC/B,SAAU,GACV,QAAS,GACT,YAAa,CAAE,QAAS,GAAM,SAAU,EAAK,EAC7C,WAAY,CAAC,kBAAmB,kBAAmB,mBAAoB,kBAAkB,EACzF,eAAgB,GAChB,QAAS,CAAE,SAAU,GAAM,UAAW,EAAK,EAC3C,MAAO,CAAE,OAAQ,GAAM,QAAS,EAAK,EACrC,kBAAmB,GACnB,oBAAqB,GACrB,kBAAmB,CAErB,EAAI,CACF,SAAU,GACV,QAAS,CAAE,KAAM,EAAoB,EACrC,YAAa,CAAE,QAAS,CAAE,KAAM,EAAoB,EAAG,SAAU,CAAE,KAAM,EAAoB,CAAE,EAC/F,WAAY,CAAC,EACb,eAAgB,CAAE,KAAM,EAAoB,EAG5C,QAAS,CAAE,SAAU,GAAM,UAAW,EAAK,EAC3C,MAAO,CAAE,OAAQ,GAAO,QAAS,EAAM,EAGvC,kBAAmB,GACnB,oBAAqB,GACrB,kBAAmB,CAErB,CACF,CC9BA,IAAM,IAAW,CACf,SAAU,GACV,QAAS,GACT,YAAa,CAAE,QAAS,GAAM,SAAU,EAAK,EAC7C,WAAY,CAAC,kBAAmB,kBAAmB,mBAAoB,kBAAkB,EACzF,eAAgB,GAChB,QAAS,CAAE,SAAU,GAAM,UAAW,EAAK,EAC3C,MAAO,CAAE,OAAQ,GAAM,QAAS,EAAK,EACrC,kBAAmB,GACnB,oBAAqB,GACrB,kBAAmB,CACrB,EACA,SAAS,IAA6B,EAAS,CAC7C,IAAM,EAAO,EAAQ,gBAAkB,KAAkB,IAA8B,EAAQ,cAAc,EAA/D,IACxC,EAAK,EAAQ,gBAAkB,CAAC,EACtC,MAAO,CACL,SAAU,EAAG,UAAY,EAAK,SAC9B,QAAS,EAAG,SAAW,EAAK,QAC5B,YAAa,CACX,QAAS,EAAG,aAAa,SAAW,EAAK,YAAY,QACrD,SAAU,EAAG,aAAa,UAAY,EAAK,YAAY,QACzD,EACA,WAAY,EAAG,YAAc,EAAK,WAElC,eAAgB,EAAG,gBAAkB,EAAG,aAAe,EAAK,eAC5D,QAAS,CACP,SAAU,EAAG,SAAS,UAAY,EAAK,QAAQ,SAC/C,UAAW,EAAG,SAAS,WAAa,EAAK,QAAQ,SACnD,EACA,MAAO,CACL,OAAQ,EAAG,OAAO,QAAU,EAAK,MAAM,OACvC,QAAS,EAAG,OAAO,SAAW,EAAK,MAAM,OAC3C,EACA,kBAAmB,EAAG,mBAAqB,EAAK,kBAChD,oBAAqB,EAAG,qBAAuB,EAAK,oBACpD,kBAAmB,EAAG,mBAAqB,EAAK,iBAClD,CACF,CCPA,IAAM,GAAqB,8DACrB,GAAoC,6DACpC,GAAwC,OAAO,IAAI,qBAAqB,EACxE,GAA2C,OAAO,IAAI,2BAA2B,EACjF,IAAyB,IAC/B,SAAS,GAAmB,EAAS,CACnC,MAAO,CACL,WACC,IAAwB,EAC3B,CACF,CACA,SAAS,GAAyB,EAAS,CACzC,MAAO,CACL,WACC,IAA2B,EAC9B,CACF,CACA,SAAS,GAAiB,EAAO,CAC/B,OAAOhF,GAAa,CAAK,GAAK,MAAyB,CACzD,CACA,SAAS,GAAuB,EAAO,CACrC,OAAOA,GAAa,CAAK,GAAK,MAA4B,CAC5D,CACA,SAAS,GAAyB,EAAQ,EAAkB,EAAW,EAAgB,EAAS,CAC9F,IAAI,EAAS,EACT,EACA,EAAgB,GACpB,EAAO,GAAG,MAAiB,CACzB,EAAS,EACT,aAAa,CAAY,EACzB,EAAgB,EAClB,CAAC,EACD,EAAO,GAAG,EAAmB,GAAS,CAEpC,GADA,GAAU,EAAe,CAAI,EACzB,GAAU,IACZ,EAAQ,CAAM,OACT,GAAI,CAAC,EAAe,CACzB,IAAM,EAAgB,EAAO,WAAW,EAAE,gBAAkB,IACxD,EAAgB,IAClB,EAAgB,GAChB,EAAe,GACb,eAAiB,CACf,EAAQ,CAAM,CAChB,EAAG,CAAa,CAClB,EAEJ,CACF,CAAC,EACD,EAAO,GAAG,YAAe,CACvB,EAAQ,CAAM,CAChB,CAAC,CACH,CACA,IAAM8F,IAAN,KAAa,CAMX,YAAY,EAAS,CAcnB,GAbA,KAAK,SAAW,EAChB,KAAK,cAAgB,CAAC,EACtB,KAAK,eAAiB,EACtB,KAAK,UAAY,CAAC,EAClB,KAAK,OAAS,CAAC,EACf,KAAK,iBAAmB,CAAC,EACzB,KAAK,eAAiB,GAAkB,EAAQ,kBAAkB,cAA2C,EAC7G,KAAK,gBAAkB,IAA6B,CAAO,EACvD,EAAQ,IACV,KAAK,KAAO,IAAQ,EAAQ,GAAG,EAE/B,IAAed,GAAM,KAAK,+CAA+C,EAEvE,KAAK,KAAM,CACb,IAAM,EAAM,IACV,KAAK,KACL,EAAQ,OACR,EAAQ,UAAY,EAAQ,UAAU,IAAM,IAAK,EACnD,EACA,KAAK,WAAa,EAAQ,UAAU,CAClC,OAAQ,KAAK,SAAS,OACtB,mBAAoB,KAAK,mBAAmB,KAAK,IAAI,EACrD,GAAG,EAAQ,iBACX,KACF,CAAC,CACH,CACA,KAAK,SAAS,WAAa,KAAK,SAAS,YAAc,KAAK,SAAS,cAAc,WAC/E,KAAK,SAAS,YAChB,GAAyB,KAAM,kBAAmB,YAAa,IAAwB,GAAyB,GAE5F,KAAK,SAAS,eAAiB,KAAK,SAAS,cAAc,eAAiB,KAEhG,GACE,KACA,qBACA,eACA,IACA,GACF,CAEJ,CAMA,iBAAiB,EAAW,EAAM,EAAO,CACvC,IAAM,EAAU,GAAM,EACtB,GAAI,GAAwB,CAAS,EAEnC,OADA,IAAeA,GAAM,IAAI,EAAkB,EACpC,EAET,IAAM,EAAkB,CACtB,SAAU,EACV,GAAG,CACL,EAKA,OAJA,KAAK,aACG,KAAK,mBAAmB,EAAW,CAAe,EAAE,KAAM,GAAU,KAAK,cAAc,EAAO,EAAiB,CAAK,CAAC,EAAE,KAAM,GAAQ,CAAG,EAC9I,OACF,EACO,EAAgB,QACzB,CAMA,eAAe,EAAS,EAAO,EAAM,EAAc,CACjD,IAAM,EAAkB,CACtB,SAAU,GAAM,EAChB,GAAG,CACL,EACM,EAAe,GAAsB,CAAO,EAAI,EAAU,OAAO,CAAO,EACxE,EAAY,GAAY,CAAO,EAC/B,EAAgB,EAAY,KAAK,iBAAiB,EAAc,EAAO,CAAe,EAAI,KAAK,mBAAmB,EAAS,CAAe,EAKhJ,OAJA,KAAK,aACG,EAAc,KAAM,GAAU,KAAK,cAAc,EAAO,EAAiB,CAAY,CAAC,EAC5F,EAAY,UAAY,OAC1B,EACO,EAAgB,QACzB,CAMA,aAAa,EAAO,EAAM,EAAc,CACtC,IAAM,EAAU,GAAM,EACtB,GAAI,GAAM,mBAAqB,GAAwB,EAAK,iBAAiB,EAE3E,OADA,IAAeA,GAAM,IAAI,EAAkB,EACpC,EAET,IAAM,EAAkB,CACtB,SAAU,EACV,GAAG,CACL,EACM,EAAwB,EAAM,uBAAyB,CAAC,EACxD,EAAoB,EAAsB,kBAC1C,EAA6B,EAAsB,2BACnD,EAAe,GAAsB,EAAM,IAAI,EAKrD,OAJA,KAAK,aACG,KAAK,cAAc,EAAO,EAAiB,GAAqB,EAAc,CAA0B,EAC9G,CACF,EACO,EAAgB,QACzB,CAIA,eAAe,EAAS,CACtB,KAAK,YAAY,CAAO,EACxB,GAAc,EAAS,CAAE,KAAM,EAAM,CAAC,CACxC,CAIA,QAAS,CACP,OAAO,KAAK,IACd,CAIA,YAAa,CACX,OAAO,KAAK,QACd,CAIA,0BAA2B,CACzB,OAAO,KAAK,eACd,CAKA,gBAAiB,CACf,OAAO,KAAK,SAAS,SACvB,CAKA,cAAe,CACb,OAAO,KAAK,UACd,CAUA,MAAM,MAAM,EAAS,CACnB,IAAM,EAAY,KAAK,WAEvB,GADA,KAAK,KAAK,OAAO,EACb,CAAC,EACH,MAAO,GAET,IAAM,EAAiB,MAAM,KAAK,wBAAwB,CAAO,EAC3D,EAAmB,MAAM,EAAU,MAAM,CAAO,EACtD,OAAO,GAAkB,CAC3B,CAUA,MAAM,MAAM,EAAS,CACnB,IAAM,EAAS,MAAM,KAAK,MAAM,CAAO,EAGvC,MAFA,MAAK,WAAW,EAAE,QAAU,GAC5B,KAAK,KAAK,OAAO,EACV,CACT,CAIA,oBAAqB,CACnB,OAAO,KAAK,gBACd,CAIA,kBAAkB,EAAgB,CAChC,KAAK,iBAAiB,KAAK,CAAc,CAC3C,CAKA,MAAO,EACD,KAAK,WAAW,GAKpB,KAAK,SAAS,aAAa,MAAM,CAAE,UAAW,EAAK,WAAW,WAAW,CAAC,IACxE,KAAK,mBAAmB,CAE5B,CAMA,qBAAqB,EAAiB,CACpC,OAAO,KAAK,cAAc,EAC5B,CAIA,qBAAsB,CACpB,OAAO,OAAO,KAAK,KAAK,aAAa,CACvC,CAQA,eAAe,EAAa,CAC1B,IAAM,EAAqB,KAAK,cAAc,EAAY,MACtD,CAAC,GAAsB,EAAY,aACrC,EAAY,YAAY,IAAI,EAE9B,GAAiB,KAAM,EAAa,KAAK,aAAa,EACjD,GACH,GAAuB,KAAM,CAAC,CAAW,CAAC,CAE9C,CAIA,UAAU,EAAO,EAAO,CAAC,EAAG,CAC1B,KAAK,KAAK,kBAAmB,EAAO,CAAI,EACxC,IAAM,EAAgB,IAA2B,EAAO,IAAI,EACxD,EAAM,IAAoB,EAAO,KAAK,KAAM,KAAK,SAAS,UAAW,KAAK,SAAS,MAAM,EAC7F,IAAK,IAAM,KAAc,EAAK,aAAe,CAAC,EAC5C,EAAM,GAAkB,EAAK,IAA6B,CAAU,CAAC,EAEnE,IACF,EAAM,GAAkB,EAAK,CAAa,GAE5C,KAAK,aAAa,CAAG,EAAE,KAAM,GAAiB,KAAK,KAAK,iBAAkB,EAAO,CAAY,CAAC,CAChG,CAIA,YAAY,EAAS,CACnB,GAAM,CAAE,QAAS,EAAqB,YAAa,EAA0B,KAAwB,KAAK,SAC1G,GAAI,eAAgB,EAAS,CAC3B,IAAM,EAAe,EAAQ,OAAS,CAAC,EACvC,GAAI,CAAC,EAAa,SAAW,CAAC,EAAqB,CACjD,IAAeA,GAAM,KAAK,EAAiC,EAC3D,MACF,CACA,EAAa,QAAU,EAAa,SAAW,EAC/C,EAAa,YAAc,EAAa,aAAe,EACvD,EAAQ,MAAQ,CAClB,KAAO,CACL,GAAI,CAAC,EAAQ,SAAW,CAAC,EAAqB,CAC5C,IAAeA,GAAM,KAAK,EAAiC,EAC3D,MACF,CACA,EAAQ,QAAU,EAAQ,SAAW,EACrC,EAAQ,YAAc,EAAQ,aAAe,CAC/C,CACA,KAAK,KAAK,oBAAqB,CAAO,EACtC,IAAM,EAAM,IAAsB,EAAS,KAAK,KAAM,KAAK,SAAS,UAAW,KAAK,SAAS,MAAM,EACnG,KAAK,aAAa,CAAG,CACvB,CAIA,mBAAmB,EAAQ,EAAU,EAAQ,EAAG,CAC9C,GAAI,KAAK,SAAS,kBAAmB,CACnC,IAAM,EAAM,GAAG,EAAO,GAAG,IACzB,IAAeA,GAAM,IAAI,uBAAuB,EAAI,GAAG,EAAQ,EAAI,KAAK,EAAM,SAAW,IAAI,EAC7F,KAAK,UAAU,IAAQ,KAAK,UAAU,IAAQ,GAAK,CACrD,CACF,CAIA,GAAG,EAAM,EAAU,CACjB,IAAM,EAAgB,KAAK,OAAO,GAAQ,KAAK,OAAO,IAAyB,IAAI,IAC7E,GAAkB,GAAG,IAAS,EAAS,GAAG,CAAI,EAEpD,OADA,EAAc,IAAI,CAAc,MACnB,CACX,EAAc,OAAO,CAAc,CACrC,CACF,CAIA,KAAK,EAAM,GAAG,EAAM,CAClB,IAAM,EAAY,KAAK,OAAO,GAC1B,GACF,EAAU,QAAS,GAAa,EAAS,GAAG,CAAI,CAAC,CAErD,CAKA,MAAM,aAAa,EAAU,CAE3B,GADA,KAAK,KAAK,iBAAkB,CAAQ,EAChC,KAAK,WAAW,GAAK,KAAK,WAC5B,GAAI,CACF,OAAO,MAAM,KAAK,WAAW,KAAK,CAAQ,CAC5C,OAAS,EAAQ,CAEf,OADA,IAAeA,GAAM,MAAM,gCAAiC,CAAM,EAC3D,CAAC,CACV,CAGF,OADA,IAAeA,GAAM,MAAM,oBAAoB,EACxC,CAAC,CACV,CASA,gBAAgB,EAAU,CAC1B,CAUA,SAAU,CACV,CAGA,oBAAqB,CACnB,GAAM,CAAE,gBAAiB,KAAK,SAC9B,KAAK,cAAgB,IAAkB,KAAM,CAAY,EACzD,GAAuB,KAAM,CAAY,CAC3C,CAEA,wBAAwB,EAAS,EAAO,CACtC,IAAI,EAAU,EAAM,QAAU,QAC1B,EAAU,GACR,EAAa,EAAM,WAAW,OACpC,GAAI,EAAY,CACd,EAAU,GACV,EAAU,GACV,IAAK,IAAM,KAAM,EACf,GAAI,EAAG,WAAW,UAAY,GAAO,CACnC,EAAU,GACV,KACF,CAEJ,CACA,IAAM,EAAqB,EAAQ,SAAW,MAClB,GAAsB,EAAQ,SAAW,GAAK,GAAsB,KAE9F,GAAc,EAAS,CACrB,GAAG,GAAW,CAAE,OAAQ,SAAU,EAClC,OAAQ,EAAQ,QAAU,OAAO,GAAW,CAAO,CACrD,CAAC,EACD,KAAK,eAAe,CAAO,EAE/B,CAWA,MAAM,wBAAwB,EAAS,CACrC,IAAI,EAAS,EACb,KAAO,CAAC,GAAW,EAAS,GAAS,CAEnC,GADA,MAAM,IAAI,QAAS,GAAY,WAAW,EAAS,CAAC,CAAC,EACjD,CAAC,KAAK,eACR,MAAO,GAET,GACF,CACA,MAAO,EACT,CAEA,YAAa,CACX,OAAO,KAAK,WAAW,EAAE,UAAY,IAAS,KAAK,aAAe,IAAK,EACzE,CAeA,cAAc,EAAO,EAAM,EAAc,EAAgB,CACvD,IAAM,EAAU,KAAK,WAAW,EAC1B,EAAe,KAAK,oBAAoB,EAQ9C,MAPI,CAAC,EAAK,cAAgB,EAAa,SACrC,EAAK,aAAe,GAEtB,KAAK,KAAK,kBAAmB,EAAO,CAAI,EACnC,EAAM,MACT,EAAe,eAAe,EAAM,UAAY,EAAK,QAAQ,EAExD,GAAa,EAAS,EAAO,EAAM,EAAc,KAAM,CAAc,EAAE,KAAM,GAC9E,IAAQ,KACH,GAET,KAAK,KAAK,mBAAoB,EAAK,CAAI,EACvC,EAAI,SAAW,CACb,MAAO,CAAE,GAAG,EAAI,UAAU,MAAO,GAAG,IAAyB,CAAY,CAAE,EAC3E,GAAG,EAAI,QACT,EAEA,EAAI,sBAAwB,CAC1B,uBAF6B,GAAmC,KAAM,CAEjD,EACrB,GAAG,EAAI,qBACT,EACO,EACR,CACH,CAOA,cAAc,EAAO,EAAO,CAAC,EAAG,EAAe,GAAgB,EAAG,EAAiB,GAAkB,EAAG,CAItG,OAHIJ,IAAeW,GAAa,CAAK,GACnC,GAAM,IAAI,0BAA0B,GAAyB,CAAK,EAAE,IAAM,YAAY,GAAG,EAEpF,KAAK,cAAc,EAAO,EAAM,EAAc,CAAc,EAAE,KAClE,GACQ,EAAW,SAEnB,GAAW,CACNX,KACE,GAAuB,CAAM,EAC/B,GAAM,IAAI,EAAO,OAAO,EACf,GAAiB,CAAM,EAChC,GAAM,KAAK,EAAO,OAAO,EAEzB,GAAM,KAAK,CAAM,EAIvB,CACF,CACF,CAcA,cAAc,EAAO,EAAM,EAAc,EAAgB,CACvD,IAAM,EAAU,KAAK,WAAW,EAC1B,CAAE,cAAe,EACjB,EAAgBmB,GAAmB,CAAK,EACxC,EAAUR,GAAa,CAAK,EAE5B,EAAkB,0BADN,EAAM,MAAQ,QAC4B,IACtD,EAA0B,IAAe,OAAc,IAAK,GAAI,GAAgB,CAAU,EAChG,GAAI,GAAW,OAAO,GAAqB,UAAY,GAAe,EAAI,EAExE,OADA,KAAK,mBAAmB,cAAe,OAAO,EACvC,GACL,GACE,oFAAoF,EAAW,EACjG,CACF,EAEF,IAAM,EAAe,GAAsB,EAAM,IAAI,EACrD,OAAO,KAAK,cAAc,EAAO,EAAM,EAAc,CAAc,EAAE,KAAM,GAAa,CACtF,GAAI,IAAa,KAEf,MADA,KAAK,mBAAmB,kBAAmB,CAAY,EACjD,GAAyB,0DAA0D,EAO3F,OAL4B,EAAK,MAAM,aAAe,GAE7C,EAGF,IADQ,IAAkB,KAAM,EAAS,EAAU,CACpB,EAAG,CAAe,CAC1D,CAAC,EAAE,KAAM,GAAmB,CAC1B,GAAI,IAAmB,KAAM,CAE3B,GADA,KAAK,mBAAmB,cAAe,CAAY,EAC/C,EAAe,CAEjB,IAAM,EAAY,GADJ,EAAM,OAAS,CAAC,GACF,OAC5B,KAAK,mBAAmB,cAAe,OAAQ,CAAS,CAC1D,CACA,MAAM,GAAyB,GAAG,EAAgB,yCAAyC,CAC7F,CACA,IAAM,EAAU,EAAa,WAAW,GAAK,EAAe,WAAW,EAIvE,GAHI,GAAW,GACb,KAAK,wBAAwB,EAAS,CAAc,EAElD,EAAe,CAGjB,IAAM,GAFkB,EAAe,uBAAuB,2BAA6B,IACpE,EAAe,MAAQ,EAAe,MAAM,OAAS,GAExE,EAAmB,GACrB,KAAK,mBAAmB,cAAe,OAAQ,CAAgB,CAEnE,CACA,IAAM,EAAkB,EAAe,iBASvC,OARI,GAAiB,GAAmB,EAAe,cAAgB,EAAM,cAE3E,EAAe,iBAAmB,CAChC,GAAG,EACH,eACF,GAEF,KAAK,UAAU,EAAgB,CAAI,EAC5B,CACT,CAAC,EAAE,KAAK,KAAO,GAAW,CAcxB,MAbI,GAAuB,CAAM,GAAK,GAAiB,CAAM,EACrD,GAER,KAAK,iBAAiB,EAAQ,CAC5B,UAAW,CACT,QAAS,GACT,KAAM,UACR,EACA,KAAM,CACJ,WAAY,EACd,EACA,kBAAmB,CACrB,CAAC,EACK,GACJ;UACE,GACJ,EACF,CAAC,CACH,CAIA,SAAS,EAAc,EAAc,CACnC,KAAK,iBACL,KAAU,eAAe,IAAI,CAAY,EAAE,KACxC,IACC,KAAK,iBACE,GAER,IACC,KAAK,iBACD,IAAW,IACb,KAAK,mBAAmB,iBAAkB,CAAY,EAEjD,EAEX,CACF,CAIA,gBAAiB,CACf,IAAM,EAAW,KAAK,UAEtB,MADA,MAAK,UAAY,CAAC,EACX,OAAO,QAAQ,CAAQ,EAAE,KAAK,CAAC,EAAK,KAAc,CACvD,GAAM,CAAC,EAAQ,GAAY,EAAI,MAAM,GAAG,EACxC,MAAO,CACL,SACA,WACA,UACF,CACF,CAAC,CACH,CAIA,gBAAiB,CACf,IAAeP,GAAM,IAAI,sBAAsB,EAC/C,IAAM,EAAW,KAAK,eAAe,EACrC,GAAI,EAAS,SAAW,EAAG,CACzB,IAAeA,GAAM,IAAI,qBAAqB,EAC9C,MACF,CACA,GAAI,CAAC,KAAK,KAAM,CACd,IAAeA,GAAM,IAAI,yCAAyC,EAClE,MACF,CACA,IAAeA,GAAM,IAAI,oBAAqB,CAAQ,EACtD,IAAM,EAAW,IAA2B,EAAU,KAAK,SAAS,QAAU,GAAY,KAAK,IAAI,CAAC,EACpG,KAAK,aAAa,CAAQ,CAC5B,CACF,EACA,SAAS,GAAsB,EAAM,CACnC,OAAO,IAAS,eAAiB,SAAW,GAAQ,OACtD,CACA,SAAS,IAA0B,EAAkB,EAAiB,CACpE,IAAM,EAAoB,GAAG,EAAgB,yCAC7C,GAAI,GAAW,CAAgB,EAC7B,OAAO,EAAiB,KACrB,GAAU,CACT,GAAI,CAAC,GAAc,CAAK,GAAK,IAAU,KACrC,MAAM,GAAmB,CAAiB,EAE5C,OAAO,CACT,EACC,GAAM,CACL,MAAM,GAAmB,GAAG,EAAgB,iBAAiB,GAAG,CAClE,CACF,EACK,GAAI,CAAC,GAAc,CAAgB,GAAK,IAAqB,KAClE,MAAM,GAAmB,CAAiB,EAE5C,OAAO,CACT,CACA,SAAS,IAAkB,EAAQ,EAAS,EAAO,EAAM,CACvD,GAAM,CAAE,aAAY,wBAAuB,eAAgB,EACrD,EAAiB,CAAC,GAAiC,EAAQ,cAAc,GAAK,EAAQ,eACxF,EAAiB,EACrB,GAAIO,GAAa,CAAc,GAAK,EAClC,OAAO,EAAW,EAAgB,CAAI,EAExC,GAAIQ,GAAmB,CAAc,EAAG,CACtC,GAAI,GAAkB,EAAa,CACjC,IAAM,EAAe,IAAkC,CAAc,EACrE,GAAI,GAAa,QAAU,GACzB,CAAE,YAAa,EAAa,YAAa,GAAI,EAAa,GAAI,WAAY,EAAa,IAAK,EAC5F,CACF,EACE,OAAO,KAET,GAAI,EAAgB,CAClB,IAAM,EAAwB,EAAe,CAAY,EACpD,EAGH,EAAiBlD,GAAM,EAAO,IAAkC,CAAqB,CAAC,EAFtF,GAAoB,CAIxB,CACA,GAAI,EAAe,MAAO,CACxB,IAAM,EAAiB,CAAC,EAClB,EAAe,EAAe,MACpC,IAAK,IAAM,KAAQ,EAAc,CAC/B,GAAI,GAAa,QAAU,GAAiB,CAAE,YAAa,EAAK,YAAa,GAAI,EAAK,GAAI,WAAY,EAAK,IAAK,EAAG,CAAW,EAAG,CAC/H,IAAmB,EAAc,CAAI,EACrC,QACF,CACA,GAAI,EAAgB,CAClB,IAAM,EAAgB,EAAe,CAAI,EACpC,EAIH,EAAe,KAAK,CAAa,GAHjC,GAAoB,EACpB,EAAe,KAAK,CAAI,EAI5B,MACE,EAAe,KAAK,CAAI,CAE5B,CACA,IAAM,EAAe,EAAe,MAAM,OAAS,EAAe,OAC9D,GACF,EAAO,mBAAmB,cAAe,OAAQ,CAAY,EAE/D,EAAe,MAAQ,CACzB,CACF,CACA,GAAI,EAAuB,CACzB,GAAI,EAAe,MAAO,CACxB,IAAM,EAAkB,EAAe,MAAM,OAC7C,EAAe,sBAAwB,CACrC,GAAG,EAAM,sBACT,0BAA2B,CAC7B,CACF,CACA,OAAO,EAAsB,EAAgB,CAAI,CACnD,CACF,CACA,OAAO,CACT,CACA,SAAS0C,GAAa,EAAO,CAC3B,OAAO,EAAM,OAAS,IAAK,EAC7B,CACA,SAASQ,GAAmB,EAAO,CACjC,OAAO,EAAM,OAAS,aACxB,CACA,SAAS,IAA0B,EAAQ,CACzC,IAAI,EAAS,EAKb,OAJI,EAAO,OACT,GAAU,EAAO,KAAK,OAAS,GAEjC,GAAU,EACH,EAAS,GAA8B,EAAO,UAAU,CACjE,CACA,SAAS,IAAuB,EAAK,CACnC,IAAI,EAAS,EAIb,OAHI,EAAI,UACN,GAAU,EAAI,QAAQ,OAAS,GAE1B,EAAS,GAA8B,EAAI,UAAU,CAC9D,CACA,SAAS,GAA8B,EAAY,CACjD,GAAI,CAAC,EACH,MAAO,GAET,IAAI,EAAS,EAUb,OATA,OAAO,OAAO,CAAU,EAAE,QAAS,GAAU,CACvC,MAAM,QAAQ,CAAK,EACrB,GAAU,EAAM,OAAS,GAA6B,EAAM,EAAE,EACrD,GAAY,CAAK,EAC1B,GAAU,GAA6B,CAAK,EAE5C,GAAU,GAEd,CAAC,EACM,CACT,CACA,SAAS,GAA6B,EAAO,CAQ3C,OAPI,OAAO,GAAU,SACZ,EAAM,OAAS,EACb,OAAO,GAAU,SACnB,EACE,OAAO,GAAU,UACnB,EAEF,CACT,CCp0BA,SAAS,IAAY,EAAa,EAAS,CACrC,EAAQ,QAAU,KAChBnB,GACF,GAAM,OAAO,EAEb,OAAqB,CACnB,QAAQ,KAAK,8EAA8E,CAC7F,CAAC,GAIL,GAAI,EAAE,OAAO,EAAQ,YAAY,EACjC,IAAM,EAAS,IAAI,EAAY,CAAO,EAGtC,OAFA,IAAiB,CAAM,EACvB,EAAO,KAAK,EACL,CACT,CACA,SAAS,IAAiB,EAAQ,CAChC,GAAgB,EAAE,UAAU,CAAM,CACpC,CCrBA,SAAS,GAAe,EAAO,EAAc,CAC3C,OAAO,EAAa,KAAM,GAAY,EAAM,SAAS,CAAO,CAAC,CAC/D,CACA,SAAS,GAAmB,EAAM,EAAU,EAAqB,CAC/D,GAAI,IAAa,GACf,MAAO,CAAC,EAEV,IAAM,EAAe,GAAuB,KAA6D,GAAtD,CAAC,GAAG,GAAwB,GAAG,CAAmB,EAC/F,EAAS,CAAC,EAChB,GAAI,IAAa,GAAM,CACrB,IAAK,IAAM,KAAO,OAAO,KAAK,CAAI,EAChC,EAAO,GAAO,GAAe,EAAI,YAAY,EAAG,CAAY,EAAI,GAAiB,EAAK,GAExF,OAAO,CACT,CACA,GAAI,SAAU,EAAU,CACtB,IAAM,EAAc,EAAS,KAAK,IAAK,GAAM,EAAE,YAAY,CAAC,EAC5D,IAAK,IAAM,KAAO,OAAO,KAAK,CAAI,EAAG,CACnC,IAAM,EAAQ,EAAI,YAAY,EAE9B,EAAO,GADU,GAAe,EAAO,CAAY,GAAK,EAAY,KAAM,GAAS,EAAM,SAAS,CAAI,CAAC,EAC9E,GAAiB,EAAK,EACjD,CACA,OAAO,CACT,CACA,IAAM,EAAa,EAAS,MAAM,IAAK,GAAM,EAAE,YAAY,CAAC,EAC5D,IAAK,IAAM,KAAO,OAAO,KAAK,CAAI,EAAG,CACnC,IAAM,EAAQ,EAAI,YAAY,EAC1B,GAAe,EAAO,CAAY,EACpC,EAAO,GAAO,GAGd,EAAO,GADW,EAAW,KAAM,GAAS,EAAM,SAAS,CAAI,CACzC,EAAI,EAAK,GAAO,EAE1C,CACA,OAAO,CACT,CCrCA,SAAS,IAAY,EAAK,CACxB,IAAM,EAAM,CAAC,EACT,EAAQ,EACZ,KAAO,EAAQ,EAAI,QAAQ,CACzB,IAAM,EAAQ,EAAI,QAAQ,IAAK,CAAK,EACpC,GAAI,IAAU,GACZ,MAEF,IAAI,EAAS,EAAI,QAAQ,IAAK,CAAK,EACnC,GAAI,IAAW,GACb,EAAS,EAAI,YACR,GAAI,EAAS,EAAO,CACzB,EAAQ,EAAI,YAAY,IAAK,EAAQ,CAAC,EAAI,EAC1C,QACF,CACA,IAAM,EAAM,EAAI,MAAM,EAAO,CAAK,EAAE,KAAK,EACzC,GAAe,EAAI,KAAf,IAAK,GAAgB,CACvB,IAAI,EAAM,EAAI,MAAM,EAAQ,EAAG,CAAM,EAAE,KAAK,EACxC,EAAI,WAAW,CAAC,IAAM,KACxB,EAAM,EAAI,MAAM,EAAG,EAAE,GAEvB,GAAI,CACF,EAAI,GAAO,EAAI,QAAQ,GAAG,IAAM,GAA+B,EAA1B,mBAAmB,CAAG,CAC7D,MAAQ,CACN,EAAI,GAAO,CACb,CACF,CACA,EAAQ,EAAS,CACnB,CACA,OAAO,CACT,CC1BA,SAAS,GAAc,EAAc,EAAU,CAC7C,GAAI,IAAa,GACf,MAAO,CAAC,EAEV,GAAI,CACF,IAAM,EAAS,IAAY,CAAY,EAIvC,OAHI,OAAO,KAAK,CAAM,EAAE,SAAW,EAC1B,CAAC,EAEH,GAAmB,EAAQ,EAAU,GAA8B,CAC5E,MAAQ,CACN,OAAO,EACT,CACF,CCdA,IAAM,IAAmB,gBACzB,SAAS,GAAoB,EAAK,CAChC,MAAO,eAAgB,CACzB,CACA,SAAS,GAAuB,EAAK,EAAS,CAC5C,IAAM,EAAa,EAAI,QAAQ,KAAK,GAAK,GAAK,EAAI,QAAQ,IAAI,IAAM,EAC9D,EAAO,IAAY,EAAa,IAAmB,IAAK,IAC9D,GAAI,CACF,GAAI,aAAc,KAAO,CAAC,IAAI,SAAS,EAAK,CAAI,EAC9C,OAEF,IAAM,EAAgB,IAAI,IAAI,EAAK,CAAI,EASvC,OARI,EACK,CACL,aACA,SAAU,EAAc,SACxB,OAAQ,EAAc,OACtB,KAAM,EAAc,IACtB,EAEK,CACT,MAAQ,CACR,CAEF,CACA,SAAS,GAAmC,EAAK,CAC/C,GAAI,GAAoB,CAAG,EACzB,OAAO,EAAI,SAEb,IAAM,EAAS,IAAI,IAAI,CAAG,EAY1B,MAXA,GAAO,OAAS,GAChB,EAAO,KAAO,GACV,CAAC,KAAM,KAAK,EAAE,SAAS,EAAO,IAAI,IACpC,EAAO,KAAO,IAEhB,CACE,CAAO,WAAW,aAEpB,CACE,CAAO,WAAW,aAEb,EAAO,SAAS,CACzB,CA8CA,SAASoB,GAAS,EAAK,CACrB,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,IAAM,EAAQ,EAAI,MAAM,8DAA8D,EACtF,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,IAAM,EAAQ,EAAM,IAAM,GACpB,EAAW,EAAM,IAAM,GAC7B,MAAO,CACL,KAAM,EAAM,GACZ,KAAM,EAAM,GACZ,SAAU,EAAM,GAChB,OAAQ,EACR,KAAM,EACN,SAAU,EAAM,GAAK,EAAQ,CAE/B,CACF,CACA,SAAS,IAAyB,EAAS,CACzC,OAAO,EAAQ,MAAM,OAAQ,CAAC,EAAE,EAClC,CAMA,SAAS,GAAoB,EAAK,EAAoB,GAAM,CAC1D,GAAI,EAAI,WAAW,OAAO,EAAG,CAC3B,IAAM,EAAQ,EAAI,MAAM,gBAAgB,EAClC,EAAW,EAAQ,EAAM,GAAK,aAC9B,EAAW,EAAI,SAAS,UAAU,EAClC,EAAY,EAAI,QAAQ,GAAG,EAC7B,EAAa,GACjB,GAAI,GAAqB,IAAc,GAAI,CACzC,IAAM,EAAO,EAAI,MAAM,EAAY,CAAC,EACpC,EAAa,EAAK,OAAS,GAAK,GAAG,EAAK,MAAM,EAAG,EAAE,EAAE,iBAAmB,CAC1E,CACA,MAAO,QAAQ,IAAW,EAAW,UAAY,KAAK,EAAa,IAAI,IAAe,IACxF,CACA,OAAO,CACT,CCnIA,SAAS,GAAmB,EAAK,EAAQ,CACvC,IAAM,EAAM,GAAQ,OAAO,EACrB,EAAS,GAAQ,WAAW,EAAE,OACpC,OAAO,IAAS,EAAK,CAAG,GAAK,IAAY,EAAK,CAAM,CACtD,CACA,SAAS,IAAY,EAAK,EAAQ,CAIhC,OAHK,EAGE,GAAoB,CAAG,IAAM,GAAoB,CAAM,EAFrD,EAGX,CACA,SAAS,IAAS,EAAK,EAAK,CAC1B,IAAM,EAAW,GAAuB,CAAG,EAO3C,MANI,CAAC,GAAY,GAAoB,CAAQ,GAGzC,CAAC,EACI,GAEF,IAAuB,EAAS,SAAU,EAAI,IAAI,GAAK,sBAAsB,KAAK,EAAS,MAAM,CAC1G,CACA,SAAS,IAAuB,EAAU,EAAS,CACjD,OAAO,IAAa,GAAW,EAAQ,OAAS,GAAK,EAAS,SAAS,IAAI,GAAS,CACtF,CACA,SAAS,GAAoB,EAAK,CAChC,OAAO,EAAI,EAAI,OAAS,KAAO,IAAM,EAAI,MAAM,EAAG,EAAE,EAAI,CAC1D,CCpBA,SAAS,IAA0B,EAAS,CACtC,eAAgB,EACd,EAAQ,OAAQ,aAAkB,IAAK,KACzC,EAAQ,MAAQ,CACd,GAAG,EAAQ,MACX,WAAY,UACd,GAGE,EAAQ,YAAc,IAAK,KAC7B,EAAQ,UAAY,WAG1B,CCnBA,SAAS,GAAiB,EAAS,EAAM,EAAQ,CAAC,CAAI,EAAG,EAAS,MAAO,CACvE,IAAM,EAAM,CAAC,EAAQ,UAAY,EAAQ,WAAa,CAAC,GAAG,IAAM,EAAQ,UAAU,KAAO,CAAC,EACrF,EAAI,OACP,EAAI,KAAO,qBAAqB,IAChC,EAAI,SAAW,EAAM,IAAK,IAAW,CACnC,KAAM,GAAG,EAAO,WAAW,IAC3B,QAAS,EACX,EAAE,EACF,EAAI,QAAU,GAElB,CCAA,SAAS,GAAa,EAAU,CAAC,EAAG,CAClC,IAAM,EAAS,EAAQ,QAAU,GAAU,EAC3C,GAAI,CAAC,IAAU,GAAK,CAAC,EACnB,MAAO,CAAC,EAGV,IAAM,EAAM,GADI,GAC0B,CAAC,EAC3C,GAAI,EAAI,aACN,OAAO,EAAI,aAAa,CAAO,EAEjC,IAAM,EAAQ,EAAQ,OAAS,GAAgB,EACzC,EAAO,EAAQ,MAAQ,GAAc,EACrC,EAAmB,GAAuB,CAAI,GAAK,CAAC,GAAgB,EAAO,WAAW,CAAC,EAC7F,GAAI,CAAC,GAAQ,IAA8B,EACzC,MAAO,CAAC,EAEV,IAAM,EAAc,GAAQ,CAAC,EAAmB,IAAkB,CAAI,EAAI,IAAmB,CAAK,EAE5F,EAAU,IADJ,EAAO,GAAkC,CAAI,EAAI,GAAmC,EAAQ,CAAK,CAC9C,EAE/D,GAAI,CAD6B,GAAmB,KAAK,CAC7B,EAE1B,OADA,GAAM,KAAK,uDAAuD,EAC3D,CAAC,EAEV,IAAM,EAAY,CAChB,eAAgB,EAChB,SACF,EAIA,OAHI,EAAQ,uBACV,EAAU,YAAc,GAAQ,CAAC,EAAmB,IAAwB,CAAI,EAAI,IAAyB,CAAK,GAE7G,CACT,CACA,SAAS,IAAmB,EAAO,CACjC,GAAM,CAAE,UAAS,UAAS,qBAAsB,EAAM,sBAAsB,EAC5E,OAAO,GAA0B,EAAS,EAAmB,CAAO,CACtE,CACA,SAAS,IAAyB,EAAO,CACvC,GAAM,CAAE,UAAS,UAAS,qBAAsB,EAAM,sBAAsB,EAC5E,OAAO,GAA0B,EAAS,EAAmB,CAAO,CACtE,CChDA,IAAM,IAAsB,IAC5B,SAAS,GAAc,EAAY,EAAM,CACvC,IAAM,EAAS,GAAU,EACnB,EAAiB,GAAkB,EACzC,GAAI,CAAC,EAAQ,OACb,GAAM,CAAE,mBAAmB,KAAM,iBAAiB,KAAwB,EAAO,WAAW,EAC5F,GAAI,GAAkB,EAAG,OAEzB,IAAM,EAAmB,CAAE,UADT,GACiB,EAAG,GAAG,CAAW,EAC9C,EAAkB,EAAmB,OAAqB,EAAiB,EAAkB,CAAI,CAAC,EAAI,EACxG,IAAoB,OACpB,EAAO,MACT,EAAO,KAAK,sBAAuB,EAAiB,CAAI,EAE1D,EAAe,cAAc,EAAiB,CAAc,EAC9D,CCfA,IAAMC,IAAmB,mBACnB,GAAgC,IAAI,QA0BpC,IAA8B,SAxB3B,CACL,KAAMA,IACN,WAAY,CACV,IAAM,EAA2B,SAAS,UAAU,SACpD,GAAI,CACF,SAAS,UAAU,SAAW,SAAS,GAAG,EAAM,CAC9C,IAAM,EAAmB,GAAoB,IAAI,EAC7C,EACJ,GAAI,CACE,GAAc,IAAI,GAAU,CAAC,GAAK,IAAqB,IAAK,KAC9D,EAAoB,EAExB,MAAQ,CACR,CACA,OAAO,EAAyB,MAAM,GAAqB,KAAM,CAAI,CACvE,CACF,MAAQ,CACR,CACF,EACA,MAAM,EAAQ,CACZ,GAAc,IAAI,EAAQ,EAAI,CAChC,CACF,GAEgF,ECxB5E,IAAwB,CAC5B,oBACA,gDACA,kEAEA,wCAEA,6BAEA,yDAEA,oDAEA,4CAEA,gDAEA,6DAEA,sDAEF,EACMA,IAAmB,eACnB,IAA0B,IAAmB,EAAU,CAAC,IAAM,CAClE,IAAI,EACJ,MAAO,CACL,KAAMA,IACN,MAAM,EAAQ,CAEZ,EAAgB,GAAc,EADR,EAAO,WACsB,CAAC,CACtD,EACA,aAAa,EAAO,EAAO,EAAQ,CAKjC,MAJA,CAEE,IAAgB,GAAc,EADR,EAAO,WACsB,CAAC,EAE/CC,IAAiB,EAAO,CAAa,EAAI,KAAO,CACzD,CACF,CACF,CAAC,EACK,IAA4B,KAAoB,EAAU,CAAC,KACxD,CACL,GAAG,IAAwB,CAAO,EAClC,KAAM,gBACR,GACA,EACF,SAAS,GAAc,EAAkB,CAAC,EAAG,EAAgB,CAAC,EAAG,CAC/D,MAAO,CACL,UAAW,CAAC,GAAG,EAAgB,WAAa,CAAC,EAAG,GAAG,EAAc,WAAa,CAAC,CAAC,EAChF,SAAU,CAAC,GAAG,EAAgB,UAAY,CAAC,EAAG,GAAG,EAAc,UAAY,CAAC,CAAC,EAC7E,aAAc,CACZ,GAAG,EAAgB,cAAgB,CAAC,EACpC,GAAG,EAAc,cAAgB,CAAC,EAClC,GAAG,EAAgB,qBAAuB,CAAC,EAAI,GACjD,EACA,mBAAoB,CAAC,GAAG,EAAgB,oBAAsB,CAAC,EAAG,GAAG,EAAc,oBAAsB,CAAC,CAAC,CAC7G,CACF,CACA,SAASA,IAAiB,EAAO,EAAS,CACxC,GAAI,CAAC,EAAM,KAAM,CACf,GAAI,IAAgB,EAAO,EAAQ,YAAY,EAK7C,OAJA,IAAelB,GAAM,KACnB;SACC,GAAoB,CAAK,GAC5B,EACO,GAET,GAAI,IAAgB,CAAK,EAOvB,OANA,IAAeA,GAAM,KACnB;SACC,GACC,CACF,GACF,EACO,GAET,GAAI,IAAa,EAAO,EAAQ,QAAQ,EAQtC,OAPA,IAAeA,GAAM,KACnB;SACC,GACC,CACF,EAAE;OACH,GAAmB,CAAK,GACzB,EACO,GAET,GAAI,CAAC,IAAc,EAAO,EAAQ,SAAS,EAQzC,OAPA,IAAeA,GAAM,KACnB;SACC,GACC,CACF,EAAE;OACH,GAAmB,CAAK,GACzB,EACO,EAEX,MAAO,GAAI,EAAM,OAAS,eACpB,IAAsB,EAAO,EAAQ,kBAAkB,EAKzD,OAJA,IAAeA,GAAM,KACnB;SACC,GAAoB,CAAK,GAC5B,EACO,GAGX,MAAO,EACT,CACA,SAAS,IAAgB,EAAO,EAAc,CAI5C,OAHK,GAAc,OAGZ,GAAyB,CAAK,EAAE,KAAM,GAAY,GAAyB,EAAS,CAAY,CAAC,EAF/F,EAGX,CACA,SAAS,IAAsB,EAAO,EAAoB,CACxD,GAAI,CAAC,GAAoB,OACvB,MAAO,GAET,IAAM,EAAO,EAAM,YACnB,OAAO,EAAO,GAAyB,EAAM,CAAkB,EAAI,EACrE,CACA,SAAS,IAAa,EAAO,EAAU,CACrC,GAAI,CAAC,GAAU,OACb,MAAO,GAET,IAAM,EAAM,GAAmB,CAAK,EACpC,OAAQ,EAAc,GAAyB,EAAK,CAAQ,EAA9C,EAChB,CACA,SAAS,IAAc,EAAO,EAAW,CACvC,GAAI,CAAC,GAAW,OACd,MAAO,GAET,IAAM,EAAM,GAAmB,CAAK,EACpC,OAAQ,EAAa,GAAyB,EAAK,CAAS,EAA9C,EAChB,CACA,SAAS,IAAiB,EAAS,CAAC,EAAG,CACrC,IAAK,IAAI,EAAI,EAAO,OAAS,EAAG,GAAK,EAAG,IAAK,CAC3C,IAAM,EAAQ,EAAO,GACrB,GAAI,GAAS,EAAM,WAAa,eAAiB,EAAM,WAAa,gBAClE,OAAO,EAAM,UAAY,IAE7B,CACA,OAAO,IACT,CACA,SAAS,GAAmB,EAAO,CACjC,GAAI,CAEF,IAAM,EADgB,CAAC,GAAG,EAAM,WAAW,QAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAM,GAAU,EAAM,WAAW,YAAc,IAAK,IAAK,EAAM,YAAY,QAAQ,MAC3H,GAAG,YAAY,OAC1C,OAAO,EAAS,IAAiB,CAAM,EAAI,IAC7C,MAAQ,CAEN,OADA,IAAeA,GAAM,MAAM,gCAAgC,GAAoB,CAAK,GAAG,EAChF,IACT,CACF,CACA,SAAS,IAAgB,EAAO,CAI9B,OAHK,EAAM,WAAW,QAAQ,OAK5B,CAAC,EAAM,SACP,CAAC,EAAM,UAAU,OAAO,KAAM,GAAU,EAAM,YAAc,EAAM,MAAQ,EAAM,OAAS,SAAW,EAAM,KAAK,EALxG,EAOX,CCvKA,SAAS,IAA4B,EAAkC,EAAQ,EAAK,EAAO,EAAO,EAAM,CACtG,GAAI,CAAC,EAAM,WAAW,QAAU,CAAC,GAAQ,CAAC,GAAa,EAAK,kBAAmB,KAAK,EAClF,OAEF,IAAM,EAAoB,EAAM,UAAU,OAAO,OAAS,EAAI,EAAM,UAAU,OAAO,EAAM,UAAU,OAAO,OAAS,GAAK,IAAK,GAC3H,IACF,EAAM,UAAU,OAAS,GACvB,EACA,EACA,EACA,EAAK,kBACL,EACA,EAAM,UAAU,OAChB,EACA,CACF,EAEJ,CACA,SAAS,GAA6B,EAAkC,EAAQ,EAAO,EAAO,EAAK,EAAgB,EAAW,EAAa,CACzI,GAAI,EAAe,QAAU,EAAQ,EACnC,OAAO,EAET,IAAI,EAAgB,CAAC,GAAG,CAAc,EACtC,GAAI,GAAa,EAAM,GAAM,KAAK,EAAG,CACnC,GAA4C,EAAW,EAAa,CAAK,EACzE,IAAM,EAAe,EAAiC,EAAQ,EAAM,EAAI,EAClE,EAAiB,EAAc,OACrC,GAA2C,EAAc,EAAK,EAAgB,CAAW,EACzF,EAAgB,GACd,EACA,EACA,EACA,EAAM,GACN,EACA,CAAC,EAAc,GAAG,CAAa,EAC/B,EACA,CACF,CACF,CAqBA,OApBI,GAAiB,CAAK,GACxB,EAAM,OAAO,SAAS,EAAY,IAAM,CACtC,GAAI,GAAa,EAAY,KAAK,EAAG,CACnC,GAA4C,EAAW,EAAa,CAAK,EACzE,IAAM,EAAe,EAAiC,EAAQ,CAAU,EAClE,EAAiB,EAAc,OACrC,GAA2C,EAAc,UAAU,EAAE,GAAI,EAAgB,CAAW,EACpG,EAAgB,GACd,EACA,EACA,EACA,EACA,EACA,CAAC,EAAc,GAAG,CAAa,EAC/B,EACA,CACF,CACF,CACF,CAAC,EAEI,CACT,CACA,SAAS,GAAiB,EAAO,CAC/B,OAAO,MAAM,QAAQ,EAAM,MAAM,CACnC,CACA,SAAS,GAA4C,EAAW,EAAa,EAAO,CAClF,EAAU,UAAY,CACpB,QAAS,GACT,KAAM,0BACN,GAAG,GAAiB,CAAK,GAAK,CAAE,mBAAoB,EAAK,EACzD,GAAG,EAAU,UACb,aAAc,CAChB,CACF,CACA,SAAS,GAA2C,EAAW,EAAQ,EAAa,EAAU,CAC5F,EAAU,UAAY,CACpB,QAAS,GACT,GAAG,EAAU,UACb,KAAM,UACN,SACA,aAAc,EACd,UAAW,CACb,CACF,CC5EA,SAAS,IAAsB,EAAO,CACpC,OAAO,GAAQ,CAAK,GAAK,8BAA+B,GAAS,OAAO,EAAM,2BAA8B,QAC9G,CACA,SAAS,GAA4B,EAAO,CAI1C,OAHI,IAAsB,CAAK,EACtB,GAAG,EAAM,QAAQ,IAAI,EAAM,0BAA0B,GAEvD,EAAM,OACf,CCTA,IAAM,GAA0B,IAAI,IAAI,CAAC,CAAC,EAC1C,SAAS,IAAiC,EAAS,CACjD,IAAM,EAAO,UACP,EAAgBG,GAAW,EAAM,CAAO,EAE9C,OADA,GAAgB,EAAM,GAAiB,EAChC,CACT,CAWA,IAAM,GAAqC,IAAI,IAC/C,SAAS,KAAoB,CACrB,YAAa,IAGnB,IAAe,QAAQ,SAAS,EAAO,CACjC,GAAmB,IAAI,CAAK,GAAK,EAAE,KAAS,GAAW,WAG3D,GAAmB,IAAI,CAAK,EAC5B,GAAK,GAAW,QAAS,EAAO,SAAS,EAAuB,CAE9D,MADA,IAAuB,GAAS,EACzB,SAAS,GAAG,EAAM,CACvB,IAAM,EAAW,EAAK,GAChB,EAAM,GAAuB,GAC7B,EAAa,GAAQ,MAAQ,OAAO,GAAa,UAAY,GAAyB,EAAU,EAAO,EACxG,GACH,GAAgB,UAAW,CAAE,OAAM,OAAM,CAAC,GAExC,CAAC,GAAcP,IAAeI,GAAM,UAAU,IAChD,GAAK,MAAM,GAAW,QAAS,CAAI,CAEvC,CACF,CAAC,EACH,CAAC,CACH,CCjDA,SAAS,GAAwB,EAAO,CACtC,OAAO,IAAU,OAAS,UAAY,CAAC,QAAS,QAAS,UAAW,MAAO,OAAQ,OAAO,EAAE,SAAS,CAAK,EAAI,EAAQ,KACxH,CCGA,IAAMiB,IAAmB,SAoBnB,IAAoB,QAnBQ,CAChC,IAAI,EACJ,MAAO,CACL,KAAMA,IACN,aAAa,EAAc,CACzB,GAAI,EAAa,KACf,OAAO,EAET,GAAI,CACF,GAAI,IAAiB,EAAc,CAAa,EAE9C,OADA,IAAejB,GAAM,KAAK,sEAAsE,EACzF,IAEX,MAAQ,CACR,CACA,MAAO,GAAgB,CACzB,CACF,CACF,EAC8D,EAC9D,SAAS,IAAiB,EAAc,EAAe,CAUrD,OATK,EAML,GAHI,IAAoB,EAAc,CAAa,GAG/C,IAAsB,EAAc,CAAa,GAL5C,EASX,CACA,SAAS,IAAoB,EAAc,EAAe,CACxD,IAAM,EAAiB,EAAa,QAC9B,EAAkB,EAAc,QAgBtC,MAHA,EAZI,CAAC,GAAkB,CAAC,GAGpB,GAAkB,CAAC,GAAmB,CAAC,GAAkB,GAGzD,IAAmB,GAGnB,CAAC,GAAmB,EAAc,CAAa,GAG/C,CAAC,GAAkB,EAAc,CAAa,EAIpD,CACA,SAAS,IAAsB,EAAc,EAAe,CAC1D,IAAM,EAAoB,GAAuB,CAAa,EACxD,EAAmB,GAAuB,CAAY,EAa5D,MAHA,EATI,CAAC,GAAqB,CAAC,GAGvB,EAAkB,OAAS,EAAiB,MAAQ,EAAkB,QAAU,EAAiB,OAGjG,CAAC,GAAmB,EAAc,CAAa,GAG/C,CAAC,GAAkB,EAAc,CAAa,EAIpD,CACA,SAAS,GAAkB,EAAc,EAAe,CACtD,IAAI,EAAgB,GAAmB,CAAY,EAC/C,EAAiB,GAAmB,CAAa,EACrD,GAAI,CAAC,GAAiB,CAAC,EACrB,MAAO,GAOT,GALI,GAAiB,CAAC,GAAkB,CAAC,GAAiB,IAG1D,EAAgB,EAChB,EAAiB,EACb,EAAe,SAAW,EAAc,QAC1C,MAAO,GAET,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC9C,IAAM,EAAS,EAAe,GACxB,EAAS,EAAc,GAC7B,GAAI,EAAO,WAAa,EAAO,UAAY,EAAO,SAAW,EAAO,QAAU,EAAO,QAAU,EAAO,OAAS,EAAO,WAAa,EAAO,SACxI,MAAO,EAEX,CACA,MAAO,EACT,CACA,SAAS,GAAmB,EAAc,EAAe,CACvD,IAAI,EAAqB,EAAa,YAClC,EAAsB,EAAc,YACxC,GAAI,CAAC,GAAsB,CAAC,EAC1B,MAAO,GAET,GAAI,GAAsB,CAAC,GAAuB,CAAC,GAAsB,EACvE,MAAO,GAET,EAAqB,EACrB,EAAsB,EACtB,GAAI,CACF,OAAU,EAAmB,KAAK,EAAE,IAAM,EAAoB,KAAK,EAAE,CACvE,MAAQ,CACN,MAAO,EACT,CACF,CACA,SAAS,GAAuB,EAAO,CACrC,OAAO,EAAM,WAAW,SAAS,EACnC,CChHA,IAAMiB,IAAmB,iBAoBnB,IAA4B,SAlBzB,CACL,KAAMA,IACN,MAAM,EAAQ,CACZ,EAAO,GAAG,YAAc,GAAS,CAC/B,IAAM,EAAY,GAAgB,EAAE,aAAa,EAC3C,EAAqB,GAAkB,EAAE,aAAa,EACtD,EAAiB,EAAU,gBAAkB,EAAmB,eACtE,GAAI,EAAgB,CAClB,GAAM,CAAE,KAAI,KAAM,EAAY,YAAa,GAAS,GAAW,CAAI,EACnE,GAAI,CAAC,GAAI,WAAW,SAAS,GAAK,CAAC,EAAW,mBAAqB,CAAC,GAAM,WAAW,KAAK,EACxF,OAEF,EAAK,aAAa,IAAkC,CAAc,CACpE,CACF,CAAC,CACH,CACF,GAE4E,ECX9E,SAAS,IAAuB,EAAa,EAAkB,EAAqB,EAAO,EAAqB,CAC9G,GAAI,CAAC,EAAY,UACf,OAEF,GAAM,CAAE,SAAQ,OAAQ,EAAY,UAC9B,EAAyB,GAAgB,GAAK,EAAiB,CAAG,EACxE,GAAI,EAAY,aAAc,CAC5B,IAAM,EAAS,EAAY,UAAU,OACrC,GAAI,CAAC,EAAQ,OACb,IAAM,EAAQ,EAAM,GAChB,IACE,IACF,IAAQ,EAAO,CAAW,EAC1B,IAAsB,EAAO,EAAa,CAAmB,GAE/D,OAAO,EAAM,IAEf,MACF,CACA,GAAM,CAAE,aAAa,oBAAqB,uBAAuB,IAAU,OAAO,GAAwB,SAAW,EAAsB,CAAE,WAAY,CAAoB,EACvK,EAAS,GAAU,EACnB,EAAY,CAAC,CAAC,GAAc,EAC5B,EAAiB,GAAa,CAAC,CAAC,GAAU,GAAwB,CAAM,EACxE,EAAO,GAA0B,EAAiB,GAAkB,IAAoB,EAAK,EAAQ,CAAU,CAAC,EAAI,IAAI,GACxH,EAAsB,GAAc,CAAI,GAAK,EAAY,IAAK,GAAI,EAMxE,GALI,GAA0B,CAAC,GAC7B,GAAQ,mBAAmB,iBAAkB,MAAM,EAErD,EAAY,UAAU,OAAS,EAAK,YAAY,EAAE,OAClD,EAAM,EAAK,YAAY,EAAE,QAAU,EAC/B,EAAoB,EAAY,UAAU,GAAG,EAAG,CAClD,IAAM,EAAU,EAAY,KAAK,GAC3B,EAAU,CAAE,GAAG,EAAY,KAAK,IAAM,CAAC,CAAE,EACzC,EAAU,IACd,EACA,EAIA,GAAgB,GAAK,EAAiB,EAAsB,IAAK,GACjE,CACF,EACI,IACF,EAAY,KAAK,GAAK,EACtB,EAAQ,QAAU,EAEtB,CACA,GAAI,EAAQ,CACV,IAAM,EAAY,CAChB,MAAO,EAAY,KACnB,SAAU,EAAY,SACtB,eAAgB,EAAY,eAC5B,aAAc,EAAY,YAC5B,EACA,EAAO,KAAK,4BAA6B,EAAM,CAAS,CAC1D,CACA,OAAO,CACT,CACA,SAAS,IAAsB,EAAM,EAAa,EAAqB,EAC5C,OAAO,GAAwB,UAAY,EAA+B,EAAoB,iBAAmB,IAAK,MAC5H,EAAM,CACvB,QAAS,EAAY,UAAU,QAC/B,MAAO,EAAY,KACrB,CAAC,CACH,CACA,SAAS,IAA2C,EAAS,EAAiB,EAAM,EAAsB,CACxG,IAAM,EAAe,GAAa,CAAE,OAAM,sBAAqB,CAAC,EAC1D,EAAc,EAAa,gBAC3B,EAAU,EAAa,QACvB,EAAc,EAAa,YACjC,GAAI,CAAC,EACH,OAEF,IAAM,EAAkB,EAAgB,UAAY,GAAU,CAAO,EAAI,EAAQ,QAAU,IAAK,IAChG,GAAI,CAAC,EACH,MAAO,CACL,eAAgB,EAChB,GAAG,GAAW,CAAE,SAAQ,EACxB,GAAG,GAAe,CAAE,aAAY,CAClC,EACK,GAAI,IAAU,CAAe,EAAG,CACrC,IAAM,EAAa,IAAI,QAAQ,CAAe,EAO9C,GANK,EAAW,IAAI,cAAc,GAChC,EAAW,IAAI,eAAgB,CAAW,EAExC,GAAwB,GAAe,CAAC,EAAW,IAAI,aAAa,GACtE,EAAW,IAAI,cAAe,CAAW,EAEvC,EAAS,CACX,IAAM,EAAoB,EAAW,IAAI,SAAS,EAC7C,EAEO,GAAoC,CAAiB,GAC/D,EAAW,IAAI,UAAW,GAAG,EAAkB,GAAG,GAAS,EAF3D,EAAW,IAAI,UAAW,CAAO,CAIrC,CACA,OAAO,CACT,MAAO,GAAI,IAAwB,CAAe,EAAG,CACnD,IAAM,EAAa,CAAC,GAAG,CAAe,EACjC,EAAW,KAAM,GAAW,EAAO,KAAO,cAAc,GAC3D,EAAW,KAAK,CAAC,eAAgB,CAAW,CAAC,EAE3C,GAAwB,GAAe,CAAC,EAAW,KAAM,GAAW,EAAO,KAAO,aAAa,GACjG,EAAW,KAAK,CAAC,cAAe,CAAW,CAAC,EAE9C,IAAM,EAAoC,EAAgB,KACvD,GAAW,EAAO,KAAO,WAAa,OAAO,EAAO,IAAO,UAAY,GAAoC,EAAO,EAAE,CACvH,EAIA,OAHI,GAAW,CAAC,GACd,EAAW,KAAK,CAAC,UAAW,CAAO,CAAC,EAE/B,CACT,KAAO,CACL,IAAM,EAA4B,iBAAkB,EAAkB,EAAgB,gBAAkB,IAAK,GACvG,EAA4B,gBAAiB,EAAkB,EAAgB,YAAc,IAAK,GAClG,EAAwB,YAAa,EAAkB,EAAgB,QAAU,IAAK,GACtF,EAAoB,EAAwB,MAAM,QAAQ,CAAqB,EAAI,CAAC,GAAG,CAAqB,EAAI,CAAC,CAAqB,EAAI,CAAC,EAC3I,EAAoC,IAA0B,MAAM,QAAQ,CAAqB,EAAI,EAAsB,KAAM,GAAe,GAAoC,CAAU,CAAC,EAAI,GAAoC,CAAqB,GAC9P,GAAW,CAAC,GACd,EAAkB,KAAK,CAAO,EAEhC,IAAM,EAAa,OAAO,OAAO,CAAC,EAAG,EAAiB,CACpD,eAAgB,GAA6B,EAC7C,GAAG,EAAkB,OAAS,GAAK,CAAE,QAAS,EAAkB,KAAK,GAAG,CAAE,CAC5E,CAAC,EAID,OAHI,GAAwB,GAAe,CAAC,IAC1C,EAAW,YAAc,GAEpB,CACT,CACF,CACA,SAAS,IAAQ,EAAM,EAAa,CAClC,GAAI,EAAY,SAAU,CACxB,GAAc,EAAM,EAAY,SAAS,MAAM,EAC/C,IAAM,EAAgB,EAAY,UAAU,SAAS,IAAI,gBAAgB,EACzE,GAAI,EAAe,CACjB,IAAM,EAAmB,SAAS,CAAa,EAC3C,EAAmB,GACrB,EAAK,aAAa,+BAAgC,CAAgB,CAEtE,CACF,MAAW,EAAY,OACrB,EAAK,UAAU,CAAE,OAAyB,QAAS,gBAAiB,CAAC,EAEvE,EAAK,IAAI,CACX,CACA,SAAS,GAAoC,EAAe,CAI1D,OAHI,OAAO,GAAkB,SAGtB,EAAc,MAAM,GAAG,EAAE,KAAM,GAAiB,EAAa,KAAK,EAAE,WAAW,EAAyB,CAAC,EAFvG,EAGX,CACA,SAAS,IAAU,EAAS,CAC1B,OAAO,OAAO,QAAY,KAAe,GAAa,EAAS,OAAO,CACxE,CACA,SAAS,IAAwB,EAAS,CAIxC,OAHK,MAAM,QAAQ,CAAO,EAGnB,EAAQ,MACZ,GAAS,MAAM,QAAQ,CAAI,GAAK,EAAK,SAAW,GAAK,OAAO,EAAK,IAAO,QAC3E,EAJS,EAKX,CACA,SAAS,IAAoB,EAAK,EAAQ,EAAY,CACpD,GAAI,EAAI,WAAW,OAAO,EAExB,MAAO,CACL,KAAM,GAAG,EAAO,GAFI,GAAoB,CAET,IAC/B,WAAY,GAAuB,EAAK,IAAK,GAAG,EAAQ,CAAU,CACpE,EAEF,IAAM,EAAY,GAAuB,CAAG,EAE5C,MAAO,CACL,KAAM,GAAG,EAAO,GAFG,EAAY,GAAmC,CAAS,EAAI,IAG/E,WAAY,GAAuB,EAAK,EAAW,EAAQ,CAAU,CACvE,CACF,CACA,SAAS,GAAuB,EAAK,EAAW,EAAQ,EAAY,CAClE,IAAM,EAAa,CACjB,IAAK,GAAoB,CAAG,EAC5B,KAAM,QACN,cAAe,GACd,IAAmC,GACnC,IAA+B,aAClC,EAcA,OAbI,IACG,GAAoB,CAAS,IAChC,EAAWE,IAAY,GAAoB,EAAU,IAAI,EACzD,EAAWC,IAAY,GAAoB,EAAU,IAAI,EACzD,EAAW,kBAAoB,EAAU,MAEvC,EAAU,SACZ,EAAW,cAAgB,EAAU,QAEnC,EAAU,OACZ,EAAW,iBAAmB,EAAU,OAGrC,CACT,CCtNA,SAAS,GAAwC,EAAY,CACvD,OAAe,IAAK,GAEjB,IAAI,GAAc,KAAO,EAAa,IAC3C,MAAO,UACF,GAAI,GAAc,IACvB,MAAO,OAEP,CAEJ,CCNA,IAAMC,GAAS,GAyBf,SAAS,KAAkB,CACzB,MAAO,YAAaA,IAAU,CAAC,CAACA,GAAO,OACzC,CAEA,SAAS,KAAoB,CAC3B,GAAI,EAAE,UAAWA,IACf,MAAO,GAET,GAAI,CAIF,OAHA,IAAI,QACJ,IAAI,QAAQ,QAAQ,EACpB,IAAI,SACG,EACT,MAAQ,CACN,MAAO,EACT,CACF,CACA,SAAS,GAAiB,EAAM,CAC9B,OAAO,GAAQ,mDAAmD,KAAK,EAAK,SAAS,CAAC,CACxF,CACA,SAAS,IAAsB,CAC7B,GAAI,OAAO,aAAgB,SACzB,MAAO,GAET,GAAI,CAAC,IAAkB,EACrB,MAAO,GAET,GAAI,GAAiBA,GAAO,KAAK,EAC/B,MAAO,GAET,IAAI,EAAS,GACP,EAAMA,GAAO,SACnB,GAAI,GAAO,OAAO,EAAI,eAAkB,WACtC,GAAI,CACF,IAAM,EAAU,EAAI,cAAc,QAAQ,EAC1C,EAAQ,OAAS,GACjB,EAAI,KAAK,YAAY,CAAO,EACxB,EAAQ,eAAe,QACzB,EAAS,GAAiB,EAAQ,cAAc,KAAK,GAEvD,EAAI,KAAK,YAAY,CAAO,CAC9B,OAAS,EAAK,CACZ,IAAerB,GAAM,KAAK,kFAAmF,CAAG,CAClH,CAEF,OAAO,CACT,CCnEA,SAAS,GAA+B,EAAS,EAAsB,CACrE,IAAM,EAAO,QACP,EAAgBG,GAAW,EAAM,CAAO,EAE9C,OADA,GAAgB,MAAY,GAAgB,IAAK,GAAG,CAAoB,CAAC,EAClE,CACT,CACA,SAAS,IAAkC,EAAS,CAClD,IAAM,EAAO,sBACP,EAAgBA,GAAW,EAAM,CAAO,EAE9C,OADA,GAAgB,MAAY,GAAgB,GAAa,CAAC,EACnD,CACT,CACA,SAAS,GAAgB,EAAiB,EAAuB,GAAO,CAClE,GAAwB,CAAC,GAAoB,GAGjD,GAAK,GAAY,QAAS,SAAS,EAAe,CAChD,OAAO,SAAS,GAAG,EAAM,CACvB,IAAM,EAAmB,MAAM,EACzB,CAAE,SAAQ,OAAQ,IAAe,CAAI,EACrC,EAAc,CAClB,OACA,UAAW,CACT,SACA,KACF,EACA,eAAgB,GAAmB,EAAI,IAEvC,eACA,QAAS,IAAwB,CAAI,CACvC,EAMA,OALK,GACH,GAAgB,QAAS,CACvB,GAAG,CACL,CAAC,EAEI,EAAc,MAAM,GAAY,CAAI,EAAE,KAC3C,KAAO,KACD,EACF,EAAgB,CAAQ,EAExB,GAAgB,QAAS,CACvB,GAAG,EACH,aAAc,GAAmB,EAAI,IACrC,UACF,CAAC,EAEI,GAER,GAAU,CACT,GAAgB,QAAS,CACvB,GAAG,EACH,aAAc,GAAmB,EAAI,IACrC,OACF,CAAC,EACG,GAAQ,CAAK,GAAK,EAAM,QAAU,IAAK,KACzC,EAAM,MAAQ,EAAa,MAC3B,GAAyB,EAAO,cAAe,CAAC,GAGlD,IAAM,EADS,GACY,GAAG,WAAW,EAAE,2BAA6B,SAExE,GADsB,IAAkB,IACnB,aAAiB,YAAc,EAAM,UAAY,mBAAqB,EAAM,UAAY,eAAiB,EAAM,UAAY,mDAC9I,GAAI,CAEF,IAAM,EAAW,IADA,IAAI,EAAY,UAAU,GACvB,EAAE,KAClB,IAAkB,SACpB,EAAM,QAAU,GAAG,EAAM,QAAQ,IAAI,EAAS,GAE9C,GAAyB,EAAO,4BAA6B,CAAQ,CAEzE,MAAQ,CACR,CAEF,MAAM,CACR,CACF,CACF,CACF,CAAC,CACH,CACA,eAAe,IAAgB,EAAK,EAAqB,CACvD,GAAI,GAAK,KAAM,CACb,IAAM,EAAO,EAAI,KACX,EAAiB,EAAK,UAAU,EAChC,EAA0B,eACxB,CACJ,EAAK,OAAO,EAAE,KAAK,SAAY,CAC/B,CAAC,CACH,EACA,GAAK,GAEP,EACI,EAAgB,GACpB,KAAO,GAAe,CACpB,IAAI,EACJ,GAAI,CACF,EAAe,eAAiB,CAC9B,EAAK,OAAO,EAAE,KAAK,SAAY,CAC/B,CAAC,CACH,EAAG,GAAG,EACN,GAAM,CAAE,QAAS,MAAM,EAAe,KAAK,EAC3C,aAAa,CAAY,EACrB,IACF,EAAoB,EACpB,EAAgB,GAEpB,MAAQ,CACN,EAAgB,EAClB,QAAU,CACR,aAAa,CAAY,CAC3B,CACF,CACA,aAAa,CAAuB,EACpC,EAAe,YAAY,EAC3B,EAAK,OAAO,EAAE,KAAK,SAAY,CAC/B,CAAC,CACH,CACF,CACA,SAAS,IAAc,EAAU,CAC/B,IAAI,EACJ,GAAI,CACF,EAA6B,EAAS,MAAM,CAC9C,MAAQ,CACN,MACF,CACA,IAAgB,MAAkC,CAChD,GAAgB,sBAAuB,CACrC,aAAc,GAAmB,EAAI,IACrC,UACF,CAAC,CACH,CAAC,CACH,CACA,SAAS,GAAQ,EAAK,EAAM,CAC1B,OAAOnF,GAAa,CAAG,GAAK,CAAC,CAAC,EAAI,EACpC,CACA,SAAS,GAAmB,EAAU,CAapC,OAZI,OAAO,GAAa,SACf,EAEJ,EAGD,GAAQ,EAAU,KAAK,EAClB,EAAS,IAEd,EAAS,SACJ,EAAS,SAAS,EAEpB,GARE,EASX,CACA,SAAS,IAAe,EAAW,CACjC,GAAI,EAAU,SAAW,EACvB,MAAO,CAAE,OAAQ,MAAO,IAAK,EAAG,EAElC,GAAI,EAAU,SAAW,EAAG,CAC1B,GAAM,CAAC,EAAU,GAAW,EAC5B,MAAO,CACL,IAAK,GAAmB,CAAQ,EAChC,OAAQ,GAAQ,EAAS,QAAQ,EAAI,OAAO,EAAQ,MAAM,EAAE,YAAY,EAEtE,GAAU,CAAQ,GAAK,GAAQ,EAAU,QAAQ,EAAI,OAAO,EAAS,MAAM,EAAE,YAAY,EAAI,KAEjG,CACF,CACA,IAAM,EAAM,EAAU,GACtB,MAAO,CACL,IAAK,GAAmB,CAAG,EAC3B,OAAQ,GAAQ,EAAK,QAAQ,EAAI,OAAO,EAAI,MAAM,EAAE,YAAY,EAAI,KACtE,CACF,CACA,SAAS,IAAwB,EAAW,CAC1C,GAAM,CAAC,EAAiB,GAAmB,EAC3C,GAAI,CACF,GAAI,OAAO,GAAoB,UAAY,GAA4B,YAAa,GAAmB,EAAgB,QACrH,OAAO,IAAI,QAAQ,EAAgB,OAAO,EAE5C,GAAI,GAAU,CAAe,EAC3B,OAAO,IAAI,QAAQ,EAAgB,OAAO,CAE9C,MAAQ,CACR,CAEF,CC3LA,IAAMqG,GAAS,GAyEf,SAAS,IAAkB,CACzB,GAAI,CACF,OAAOA,GAAO,SAAS,SAAS,IAClC,MAAQ,CACN,MAAO,EACT,CACF,CACA,SAAS,GAAiB,EAAM,EAAoB,EAAG,CACrD,GAAI,CAACA,GAAO,YACV,OAAO,KAET,IAAI,EAAc,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAmB,IAAK,CAC1C,GAAI,CAAC,EACH,OAAO,KAET,GAAI,aAAuB,YAAa,CACtC,GAAI,EAAY,QAAQ,gBACtB,OAAO,EAAY,QAAQ,gBAE7B,GAAI,EAAY,QAAQ,cACtB,OAAO,EAAY,QAAQ,aAE/B,CACA,EAAc,EAAY,UAC5B,CACA,OAAO,IACT,CCrGA,IAAMA,GAAS,GACX,GAAgB,EACpB,SAAS,IAAsB,CAC7B,OAAO,GAAgB,CACzB,CACA,SAAS,KAAoB,CAC3B,KACA,eAAiB,CACf,IACF,CAAC,CACH,CACA,SAAS,GAAK,EAAI,EAAU,CAAC,EAAG,CAC9B,SAAS,EAAW,EAAK,CACvB,OAAO,OAAO,GAAQ,UACxB,CACA,GAAI,CAAC,EAAW,CAAE,EAChB,OAAO,EAET,GAAI,CAEF,GADsB,OAAO,UAAU,eAAe,KAAK,EAAI,oBAC/C,EAAG,CACjB,IAAM,EAAU,EAAG,mBAIjB,OAHE,OAAO,GAAY,WACd,EAEA,CAEX,CACA,GAAI,GAAoB,CAAE,EACxB,OAAO,CAEX,MAAQ,CACN,OAAO,CACT,CACA,IAAM,EAAgB,SAAS,GAAG,EAAM,CACtC,GAAW,qBAAuB,GAAW,qBAAuB,GAAK,EACzE,GAAI,CACF,IAAM,EAAmB,EAAK,IAAK,GAAQ,GAAK,EAAK,CAAO,CAAC,EAC7D,OAAO,EAAG,MAAM,KAAM,CAAgB,CACxC,OAAS,EAAI,CAgBX,MAfA,IAAkB,EAClB,GAAW,GAAU,CACnB,EAAM,kBAAmB,IACnB,EAAQ,YACV,GAAsB,EAAO,IAAK,GAAG,IAAK,EAAC,EAC3C,GAAsB,EAAO,EAAQ,SAAS,GAEhD,EAAM,MAAQ,CACZ,GAAG,EAAM,MACT,UAAW,CACb,EACO,EACR,EACD,GAAiB,CAAE,CACrB,CAAC,EACK,CACR,QAAU,CACR,GAAW,qBAAuB,GAAW,qBAAuB,GAAK,CAC3E,CACF,EACA,GAAI,CACF,IAAK,IAAM,KAAY,EACjB,OAAO,UAAU,eAAe,KAAK,EAAI,CAAQ,IACnD,EAAc,GAAY,EAAG,GAGnC,MAAQ,CACR,CACA,GAAoB,EAAe,CAAE,EACrC,GAAyB,EAAI,qBAAsB,CAAa,EAChE,GAAI,CACiB,OAAO,yBAAyB,EAAe,MACrD,EAAE,cACb,OAAO,eAAe,EAAe,OAAQ,CAC3C,KAAM,CACJ,OAAO,EAAG,IACZ,CACF,CAAC,CAEL,MAAQ,CACR,CACA,OAAO,CACT,CACA,SAAS,IAAqB,CAC5B,IAAM,EAAM,GAAgB,EACtB,CAAE,YAAaA,GAAO,UAAY,CAAC,EACnC,CAAE,aAAcA,GAAO,WAAa,CAAC,EAS3C,MAAO,CAHL,MACA,SALA,GAAG,GAAY,CAAE,QAAS,CAAS,EACnC,GAAG,GAAa,CAAE,aAAc,CAAU,CAIpC,CAEK,CACf,CChGA,SAAS,GAAmB,EAAa,EAAI,CAC3C,IAAM,EAAS,GAAiB,EAAa,CAAE,EACzC,EAAY,CAChB,KAAM,IAAY,CAAE,EACpB,MAAO,IAAe,CAAE,CAC1B,EAOA,OANI,EAAO,SACT,EAAU,WAAa,CAAE,QAAO,GAE9B,EAAU,OAAS,IAAK,IAAK,EAAU,QAAU,KACnD,EAAU,MAAQ,8BAEb,CACT,CACA,SAAS,IAAqB,EAAa,EAAW,EAAoB,EAAsB,CAE9F,IAAM,EADS,GACa,GAAG,WAAW,EAAE,eACtC,EAAgB,IAA2B,CAAS,EACpD,EAAQ,CACZ,eAAgB,GAAgB,EAAW,CAAc,CAC3D,EACA,GAAI,EACF,MAAO,CACL,UAAW,CACT,OAAQ,CAAC,GAAmB,EAAa,CAAa,CAAC,CACzD,EACA,OACF,EAEF,IAAM,EAAQ,CACZ,UAAW,CACT,OAAQ,CACN,CACE,KAAM,GAAQ,CAAS,EAAI,EAAU,YAAY,KAAO,EAAuB,qBAAuB,QACtG,MAAO,IAAgC,EAAW,CAAE,sBAAqB,CAAC,CAC5E,CACF,CACF,EACA,OACF,EACA,GAAI,EAAoB,CACtB,IAAM,EAAS,GAAiB,EAAa,CAAkB,EAC3D,EAAO,SACT,EAAM,UAAU,OAAO,GAAG,WAAa,CAAE,QAAO,EAEpD,CACA,OAAO,CACT,CACA,SAAS,GAAe,EAAa,EAAI,CACvC,MAAO,CACL,UAAW,CACT,OAAQ,CAAC,GAAmB,EAAa,CAAE,CAAC,CAC9C,CACF,CACF,CACA,SAAS,GAAiB,EAAa,EAAI,CACzC,IAAM,EAAa,EAAG,YAAc,EAAG,OAAS,GAC1C,EAAY,IAA6B,CAAE,EAC3C,EAAc,IAAqB,CAAE,EAC3C,GAAI,CACF,OAAO,EAAY,EAAY,EAAW,CAAW,CACvD,MAAQ,CACR,CACA,MAAO,CAAC,CACV,CACA,IAAM,IAAsB,8BAC5B,SAAS,IAA6B,EAAI,CAIxC,OAHI,GAAM,IAAoB,KAAK,EAAG,OAAO,EACpC,EAEF,CACT,CACA,SAAS,IAAqB,EAAI,CAIhC,OAHI,OAAO,EAAG,aAAgB,SACrB,EAAG,YAEL,CACT,CACA,SAAS,GAAuB,EAAW,CAIvC,OAHE,OAAO,YAAgB,KAAsB,YAAY,YAAc,OAClE,aAAqB,YAAY,UAEjC,EAEX,CACA,SAAS,IAAY,EAAI,CACvB,IAAM,EAAO,GAAI,KAKjB,MAJI,CAAC,GAAQ,GAAuB,CAAE,EACX,EAAG,SAAW,MAAM,QAAQ,EAAG,OAAO,GAAK,EAAG,QAAQ,QAAU,EAC/D,EAAG,QAAQ,GAAK,wBAErC,CACT,CACA,SAAS,IAAe,EAAI,CAC1B,IAAM,EAAU,GAAI,QAapB,OAZI,GAAuB,CAAE,EACvB,MAAM,QAAQ,EAAG,OAAO,GAAK,EAAG,QAAQ,QAAU,EAC7C,EAAG,QAAQ,GAEb,iBAEJ,EAGD,EAAQ,OAAS,OAAO,EAAQ,MAAM,SAAY,SAC7CC,GAAqC,EAAQ,KAAK,EAEpDA,GAAqC,CAAE,EALrC,kBAMX,CACA,SAAS,IAAmB,EAAa,EAAW,EAAM,EAAkB,CAE1E,IAAM,EAAQ,GAAsB,EAAa,EADtB,GAAM,oBAAsB,IAAK,GACoB,CAAgB,EAMhG,OALA,GAAsB,CAAK,EAC3B,EAAM,MAAQ,QACV,GAAM,WACR,EAAM,SAAW,EAAK,UAEjB,GAAoB,CAAK,CAClC,CACA,SAAS,IAAiB,EAAa,EAAS,EAAQ,OAAQ,EAAM,EAAkB,CAEtF,IAAM,EAAQ,GAAgB,EAAa,EADhB,GAAM,oBAAsB,IAAK,GACY,CAAgB,EAKxF,MAJA,GAAM,MAAQ,EACV,GAAM,WACR,EAAM,SAAW,EAAK,UAEjB,GAAoB,CAAK,CAClC,CACA,SAAS,GAAsB,EAAa,EAAW,EAAoB,EAAkB,EAAsB,CACjH,IAAI,EACJ,GAAIf,GAAa,CAAS,GAAK,EAAU,MAEvC,OAAO,GAAe,EAAagB,EAAW,KAAK,EAErD,GAAI,GAAW,CAAS,GAAK,IAAe,CAAS,EAAG,CACtD,IAAM,EAAe,EACrB,GAAI,UAAW,EAAW,CACxB,EAAQ,GAAe,EAAa,CAAS,EAC7C,IAAM,EAAiB,EAAM,WAAW,SAAS,GACjD,GAAI,GAAoB,GAAsB,GAAkB,CAAC,EAAe,WAAY,CAC1F,IAAM,EAAS,GAAiB,EAAa,CAAkB,EAC3D,EAAO,SACT,EAAe,WAAa,CAAE,QAAO,EACrC,GAAsB,EAAO,CAAE,UAAW,EAAK,CAAC,EAEpD,CACF,KAAO,CACL,IAAM,EAAO,EAAa,OAAS,GAAW,CAAY,EAAI,WAAa,gBACrE,EAAU,EAAa,QAAU,GAAG,EAAK,IAAI,EAAa,UAAY,EAC5E,EAAQ,GAAgB,EAAa,EAAS,EAAoB,CAAgB,EAClF,GAAsB,EAAO,CAAO,CACtC,CAIA,MAHI,SAAU,IACZ,EAAM,KAAO,CAAE,GAAG,EAAM,KAAM,oBAAqB,GAAG,EAAa,MAAO,GAErE,CACT,CAiBA,OAhBI,GAAQ,CAAS,EACZ,GAAe,EAAa,CAAS,EAE1C,GAAc,CAAS,GAAK,GAAQ,CAAS,GAE/C,EAAQ,IAAqB,EAAaC,EAAiB,EAAoB,CAAoB,EACnG,GAAsB,EAAO,CAC3B,UAAW,EACb,CAAC,EACM,IAET,EAAQ,GAAgB,EAAa,EAAW,EAAoB,CAAgB,EACpF,GAAsB,EAAO,GAAG,IAAa,IAAK,EAAC,EACnD,GAAsB,EAAO,CAC3B,UAAW,EACb,CAAC,EACM,EACT,CACA,SAAS,GAAgB,EAAa,EAAS,EAAoB,EAAkB,CACnF,IAAM,EAAQ,CAAC,EACf,GAAI,GAAoB,EAAoB,CAC1C,IAAM,EAAS,GAAiB,EAAa,CAAkB,EAC3D,EAAO,SACT,EAAM,UAAY,CAChB,OAAQ,CAAC,CAAE,MAAO,EAAS,WAAY,CAAE,QAAO,CAAE,CAAC,CACrD,GAEF,GAAsB,EAAO,CAAE,UAAW,EAAK,CAAC,CAClD,CACA,GAAI,GAAsB,CAAO,EAAG,CAClC,GAAM,CAAE,6BAA4B,8BAA+B,EAKnE,MAJA,GAAM,SAAW,CACf,QAAS,EACT,OAAQ,CACV,EACO,CACT,CAEA,MADA,GAAM,QAAU,EACT,CACT,CACA,SAAS,IAAgC,EAAW,CAAE,wBAAwB,CAC5E,IAAM,EAAO,IAA+B,CAAS,EAC/C,EAAc,EAAuB,oBAAsB,YAQjE,OAPIjB,GAAa,CAAS,EACjB,oCAAoC,EAAY,kBAAkB,EAAU,QAAQ,IAEzF,GAAQ,CAAS,EAEZ,WADW,IAAmB,CACX,EAAE,WAAW,EAAU,KAAK,gBAAgB,IAEjE,sBAAsB,EAAY,cAAc,GACzD,CACA,SAAS,IAAmB,EAAK,CAC/B,GAAI,CACF,IAAM,EAAY,OAAO,eAAe,CAAG,EAC3C,OAAO,EAAY,EAAU,YAAY,KAAO,IAAK,EACvD,MAAQ,CACR,CACF,CACA,SAAS,IAA2B,EAAK,CACvC,OAAO,OAAO,OAAO,CAAG,EAAE,KAAM,GAAM,aAAa,KAAK,CAC1D,CCxNA,IAAM,IAAN,cAA4BO,GAAO,CAMjC,YAAY,EAAS,CACnB,IAAM,EAAO,IAAoB,CAAO,EAExC,GAAiB,EAAM,UAAW,CAAC,SAAS,EAD1BO,GAAO,mBAAqB,IAAa,CACH,EACxD,MAAM,CAAI,EACV,GAAM,CAAE,YAAa,KAAK,yBAAyB,EAC/C,EAAK,WAAW,MAClB,EAAK,UAAU,IAAI,SAAW,CAE5B,SAAU,EAAW,OAAS,QAE9B,GAAG,EAAK,UAAU,IAAI,QACxB,GAEF,GAAM,CAAE,qBAAsB,KAAK,SAC/BA,GAAO,UACT,GAAO,SAAS,iBAAiB,uBAA0B,CACrDA,GAAO,SAAS,kBAAoB,WAClC,GACF,KAAK,eAAe,EAEtB,mBAAqB,CACnB,KAAU,MAAM,CAClB,CAAC,EAEL,CAAC,EAEC,GACF,KAAK,GAAG,oBAAqB,GAAyB,CAE1D,CAIA,mBAAmB,EAAW,EAAM,CAClC,OAAO,IAAmB,KAAK,SAAS,YAAa,EAAW,EAAM,KAAK,SAAS,gBAAgB,CACtG,CAIA,iBAAiB,EAAS,EAAQ,OAAQ,EAAM,CAC9C,OAAO,IAAiB,KAAK,SAAS,YAAa,EAAS,EAAO,EAAM,KAAK,SAAS,gBAAgB,CACzG,CAIA,cAAc,EAAO,EAAM,EAAc,EAAgB,CAEvD,MADA,GAAM,SAAW,EAAM,UAAY,aAC5B,MAAM,cAAc,EAAO,EAAM,EAAc,CAAc,CACtE,CACF,EACA,SAAS,IAAoB,EAAY,CACvC,MAAO,CACL,QAAS,OAAO,oBAAuB,SAAW,mBAAqBA,GAAO,gBAAgB,GAE9F,kBAAmB,GAEnB,2BAA4B,GAC5B,GAAG,CACL,CACF,CCtEA,IAAMzB,GAAe,OAAO,iBAAqB,KAAe,iBCE1DyB,GAAS,GCFT,KAAa,EAAO,IACpB,EAAQ,EAAW,GACd,OAEL,EAAQ,EAAW,GACd,oBAEF,OAEH,IAAgB,EAAU,EAAQ,EAAY,IAAqB,CACvE,IAAI,EACA,EACJ,MAAQ,IAAgB,CAClB,EAAO,OAAS,IACd,GAAe,KACjB,EAAQ,EAAO,OAAS,GAAa,IACjC,GAAS,IAAc,IAAK,MAC9B,EAAY,EAAO,MACnB,EAAO,MAAQ,EACf,EAAO,OAAS,IAAU,EAAO,MAAO,CAAU,EAClD,EAAS,CAAM,GAIvB,CACF,ECvBM,IAAsB,EAAqB,KAAS,CACxD,IAAM,EAAkBA,GAAO,aAAa,mBAAmB,YAAY,EAAE,GAC7E,GAGE,CAAC,GAAsB,GAAmB,EAAgB,cAAgB,GAAK,EAAgB,cAAgB,YAAY,IAAI,EAE/H,OAAO,CAEX,ECTM,OACa,GACH,GAAG,iBAAmB,ECFtC,SAAS,GAAgB,EAAM,EAAU,EAAS,CAC5CA,GAAO,UACT,GAAO,iBAAiB,EAAM,EAAU,CAAO,CAEnD,CACA,SAAS,GAAmB,EAAM,EAAU,EAAS,CAC/CA,GAAO,UACT,GAAO,oBAAoB,EAAM,EAAU,CAAO,CAEtD,CCPA,IAAI,GAAkB,GAChB,GAAoC,IAAI,IACxC,QACGA,GAAO,UAAU,kBAAoB,UAAY,CAACA,GAAO,UAAU,aAAe,EAAI,IAEzF,GAAsB,GAAU,CACpC,GAAI,IAAa,CAAK,GAAK,GAAkB,GAAI,CAC/C,GAAI,EAAM,OAAS,oBAAsB,EAAM,OAAS,WACtD,IAAK,IAAM,KAAoB,GAC7B,EAAiB,EAGhB,SAAS,EAAe,IAC3B,GAAkB,EAAM,OAAS,mBAAqB,EAAM,UAAY,EACxE,GAAmB,qBAAsB,GAAoB,EAAI,EAErE,CACF,EACM,OAA6B,CACjC,GAAIA,GAAO,UAAY,GAAkB,EAAG,CAC1C,IAAM,EAAkB,GAAmB,EAE3C,IADwCA,GAAO,SAAS,aAA+J,IAAK,GAArJ,WAAW,YAAY,iBAAiB,kBAAkB,EAAE,OAAQ,GAAM,EAAE,OAAS,UAAY,EAAE,UAAY,CAAe,EAAE,IAAI,YACvJ,IAAe,EACnE,GAAgB,mBAAoB,GAAoB,EAAI,EAC5D,GAAgB,WAAY,GAAoB,EAAI,EACpD,GAAgB,qBAAsB,GAAoB,EAAI,CAChE,CACA,MAAO,CACL,IAAI,iBAAkB,CACpB,OAAO,EACT,EACA,SAAS,EAAI,CACX,GAAkB,IAAI,CAAE,CAC1B,CACF,CACF,EACA,SAAS,IAAa,EAAO,CAC3B,OAAO,EAAM,OAAS,YAAcA,GAAO,UAAU,kBAAoB,QAC3E,CC1CA,IAAM,QACG,MAAM,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,KAAK,OAAO,EAAK,aAAS,EAAI,eCIhE,IAAc,EAAM,EAAQ,KAAO,CACvC,IAAM,EAAW,GAAmB,EAChC,EAAiB,WAWrB,OAVI,IACEA,GAAO,UAAU,cAAgB,GAAmB,EAAI,EAC1D,EAAiB,YACRA,GAAO,UAAU,aAC1B,EAAiB,UACR,EAAS,OAClB,EAAiB,EAAS,KAAK,QAAQ,KAAM,GAAG,IAI7C,CACL,OACA,QACA,OAAQ,OAER,MAAO,EACP,SAAM,EACN,GAAI,IAAiB,EACrB,gBACF,CACF,EC5BM,GAA8B,IAAI,QACxC,SAAS,GAAW,EAAa,EAAU,CACzC,GAAI,CAIF,OAHK,GAAY,IAAI,CAAW,GAC9B,GAAY,IAAI,EAAa,IAAI,CAAU,EAEtC,GAAY,IAAI,CAAW,CACpC,MAAa,CACX,OAAO,IAAI,CACb,CACF,CCVA,IAAM,IAAN,KAAyB,CACvB,aAAc,CAEZ,KAAK,cAAgB,EAErB,KAAK,gBAAkB,CAAC,CAC1B,CAEA,cAAc,EAAO,CACnB,GAAI,EAAM,eAAgB,OAC1B,IAAM,EAAoB,KAAK,gBAAgB,GACzC,EAAmB,KAAK,gBAAgB,KAAK,gBAAgB,OAAS,GACxE,KAAK,eAAiB,GAAqB,GAAoB,EAAM,UAAY,EAAiB,UAAY,KAAO,EAAM,UAAY,EAAkB,UAAY,KACvK,KAAK,eAAiB,EAAM,MAC5B,KAAK,gBAAgB,KAAK,CAAK,IAE/B,KAAK,cAAgB,EAAM,MAC3B,KAAK,gBAAkB,CAAC,CAAK,GAE/B,KAAK,oCAAoC,CAAK,CAChD,CACF,ECrBM,IAAW,EAAM,EAAU,EAAO,CAAC,IAAM,CAC7C,GAAI,CACF,GAAI,oBAAoB,oBAAoB,SAAS,CAAI,EAAG,CAC1D,IAAM,EAAK,IAAI,oBAAqB,GAAS,CAC3C,QAAQ,QAAQ,EAAE,SAAW,CAC3B,EAAS,EAAK,WAAW,CAAC,CAC5B,CAAC,CACH,CAAC,EAED,OADA,EAAG,QAAQ,CAAE,OAAM,SAAU,GAAM,GAAG,CAAK,CAAC,EACrC,CACT,CACF,MAAQ,CACR,CAEF,ECdM,GAAW,GAAO,CACtB,IAAI,EAAS,GACb,UAAa,CACX,CAEE,IADA,EAAG,EACM,GAEb,CACF,ECNM,GAAiB,GAAa,CAC9BA,GAAO,UAAU,aACnB,iBAAiB,yBAA4B,EAAS,EAAG,EAAI,EAE7D,EAAS,CAEb,ECDM,IAAgB,CAAC,KAAM,GAAG,EAC1B,KAAS,EAAU,EAAO,CAAC,IAAM,CACrC,OAAoB,CAClB,IAAM,EAAoB,GAAqB,EACzC,EAAS,GAAW,KAAK,EAC3B,EAaE,EAAK,GAAQ,QAZI,GAAY,CACjC,IAAK,IAAM,KAAS,EACd,EAAM,OAAS,2BACjB,EAAG,WAAW,EACV,EAAM,UAAY,EAAkB,kBACtC,EAAO,MAAQ,KAAK,IAAI,EAAM,UAAY,GAAmB,EAAG,CAAC,EACjE,EAAO,QAAQ,KAAK,CAAK,EACzB,EAAO,EAAI,GAInB,CACyC,EACrC,IACF,EAAS,GAAa,EAAU,EAAQ,IAAe,EAAK,gBAAgB,EAEhF,CAAC,CACH,ECpBM,IAAgB,CAAC,GAAK,GAAI,EAC1B,KAAS,EAAU,EAAO,CAAC,IAAM,CACrC,IACE,OAAc,CACZ,IAAM,EAAS,GAAW,MAAO,CAAC,EAC9B,EACE,EAAoB,GAAqB,EACzC,EAAqB,GAAW,EAAM,GAAkB,EACxD,EAAiB,GAAY,CACjC,IAAK,IAAM,KAAS,EAClB,EAAmB,cAAc,CAAK,EAEpC,EAAmB,cAAgB,EAAO,QAC5C,EAAO,MAAQ,EAAmB,cAClC,EAAO,QAAU,EAAmB,gBACpC,EAAO,EAEX,EACM,EAAK,GAAQ,eAAgB,CAAa,EAC5C,IACF,EAAS,GAAa,EAAU,EAAQ,IAAe,EAAK,gBAAgB,EAC5E,EAAkB,aAAe,CAC/B,EAAc,EAAG,YAAY,CAAC,EAC9B,EAAO,EAAI,CACb,CAAC,EACD,IAAQ,aAAa,CAAM,EAE/B,CAAC,CACH,CACF,ECrCI,GAA2B,EAC3B,GAAwB,IACxB,GAAwB,EACtB,IAAkB,GAAY,CAClC,EAAQ,QAAS,GAAM,CACjB,EAAE,gBACJ,GAAwB,KAAK,IAAI,GAAuB,EAAE,aAAa,EACvE,GAAwB,KAAK,IAAI,GAAuB,EAAE,aAAa,EACvE,GAA2B,IAAyB,GAAwB,IAAyB,EAAI,EAAI,EAEjH,CAAC,CACH,EACI,GACE,OACG,GAAK,GAA2B,YAAY,kBAAoB,EAEnE,QAAqC,CACrC,qBAAsB,aAAe,KACzC,GAAK,GAAQ,QAAS,IAAgB,CACpC,KAAM,QACN,SAAU,GACV,kBAAmB,CACrB,CAAC,EACH,ECvBM,GAA+B,GACjC,GAAuB,EACrB,QACG,GAAoB,EAAI,GAE3B,IAAN,KAAyB,CACvB,aAAc,CAOZ,KAAK,wBAA0B,CAAC,EAMhC,KAAK,uBAAyC,IAAI,GACpD,CAEA,oBAAqB,CACnB,GAAuB,GAAoB,EAC3C,KAAK,wBAAwB,OAAS,EACtC,KAAK,uBAAuB,MAAM,CACpC,CAMA,gCAAiC,CAC/B,IAAM,EAA4B,KAAK,IACrC,KAAK,wBAAwB,OAAS,EACtC,KAAK,MAAM,IAAiC,EAAI,EAAE,CACpD,EACA,OAAO,KAAK,wBAAwB,EACtC,CAQA,cAAc,EAAO,CAEnB,GADA,KAAK,2BAA2B,CAAK,EACjC,EAAE,EAAM,eAAiB,EAAM,YAAc,eAAgB,OACjE,IAAM,EAAwB,KAAK,wBAAwB,GAAG,EAAE,EAC5D,EAAc,KAAK,uBAAuB,IAAI,EAAM,aAAa,EACrE,GAAI,GAAe,KAAK,wBAAwB,OAAS,IACzD,EAAM,SAAW,EAAsB,SAAU,CAkB/C,GAjBI,EACE,EAAM,SAAW,EAAY,UAC/B,EAAY,QAAU,CAAC,CAAK,EAC5B,EAAY,SAAW,EAAM,UACpB,EAAM,WAAa,EAAY,UAAY,EAAM,YAAc,EAAY,QAAQ,GAAG,WAC/F,EAAY,QAAQ,KAAK,CAAK,GAGhC,EAAc,CACZ,GAAI,EAAM,cACV,QAAS,CAAC,CAAK,EACf,SAAU,EAAM,QAClB,EACA,KAAK,uBAAuB,IAAI,EAAY,GAAI,CAAW,EAC3D,KAAK,wBAAwB,KAAK,CAAW,GAE/C,KAAK,wBAAwB,MAAM,EAAG,IAAM,EAAE,SAAW,EAAE,QAAQ,EAC/D,KAAK,wBAAwB,OAAS,GAA8B,CACtE,IAAM,EAAsB,KAAK,wBAAwB,OAAO,EAA4B,EAC5F,IAAK,IAAM,KAAgB,EACzB,KAAK,uBAAuB,OAAO,EAAa,EAAE,CAEtD,CACA,KAAK,iCAAiC,CAAW,CACnD,CACF,CACF,EC7EM,GAAoB,GAAO,CAC/B,IAAM,EAAMA,GAAO,qBAAuBA,GAAO,WAC7CA,GAAO,UAAU,kBAAoB,SACvC,EAAG,GAEH,EAAK,GAAQ,CAAE,EACf,GAAgB,mBAAoB,EAAI,CAAE,KAAM,GAAM,QAAS,EAAK,CAAC,EACrE,GAAgB,WAAY,EAAI,CAAE,KAAM,GAAM,QAAS,EAAK,CAAC,EAC7D,MAAU,CACR,EAAG,EACH,GAAmB,mBAAoB,EAAI,CAAE,QAAS,EAAK,CAAC,EAC5D,GAAmB,WAAY,EAAI,CAAE,QAAS,EAAK,CAAC,CACtD,CAAC,EAEL,ECRM,IAAgB,CAAC,IAAK,GAAG,EACzB,IAA6B,GAC7B,KAAS,EAAU,EAAO,CAAC,IAAM,CACrC,GAAI,EAAE,WAAW,wBAA0B,kBAAmB,uBAAuB,WACnF,OAEF,IAAM,EAAoB,GAAqB,EAC/C,OAAoB,CAClB,IAA6B,EAC7B,IAAM,EAAS,GAAW,KAAK,EAC3B,EACE,EAAqB,GAAW,EAAM,GAAkB,EACxD,EAAiB,GAAY,CACjC,OAAuB,CACrB,IAAK,IAAM,KAAS,EAClB,EAAmB,cAAc,CAAK,EAExC,IAAM,EAAM,EAAmB,+BAA+B,EAC1D,GAAO,EAAI,WAAa,EAAO,QACjC,EAAO,MAAQ,EAAI,SACnB,EAAO,QAAU,EAAI,QACrB,EAAO,EAEX,CAAC,CACH,EACM,EAAK,GAAQ,QAAS,EAAe,CAOzC,kBAAmB,EAAK,mBAAqB,GAC/C,CAAC,EACD,EAAS,GAAa,EAAU,EAAQ,IAAe,EAAK,gBAAgB,EACxE,IACF,EAAG,QAAQ,CAAE,KAAM,cAAe,SAAU,EAAK,CAAC,EAClD,EAAkB,aAAe,CAC/B,EAAc,EAAG,YAAY,CAAC,EAC9B,EAAO,EAAI,CACb,CAAC,EAEL,CAAC,CACH,ECrDM,IAAN,KAAsB,CAEpB,cAAc,EAAO,CACnB,KAAK,2BAA2B,CAAK,CACvC,CACF,ECOM,IAAgB,CAAC,KAAM,GAAG,EAC1B,KAAS,EAAU,EAAO,CAAC,IAAM,CACrC,OAAoB,CAClB,IAAM,EAAoB,GAAqB,EACzC,EAAS,GAAW,KAAK,EAC3B,EACE,EAAkB,GAAW,EAAM,GAAe,EAClD,EAAiB,GAAY,CAC5B,EAAK,mBACR,EAAU,EAAQ,MAAM,EAAE,GAE5B,IAAK,IAAM,KAAS,EAClB,EAAgB,cAAc,CAAK,EAC/B,EAAM,UAAY,EAAkB,kBACtC,EAAO,MAAQ,KAAK,IAAI,EAAM,UAAY,GAAmB,EAAG,CAAC,EACjE,EAAO,QAAU,CAAC,CAAK,EACvB,EAAO,EAGb,EACM,EAAK,GAAQ,2BAA4B,CAAa,EAC5D,GAAI,EAAI,CACN,EAAS,GAAa,EAAU,EAAQ,IAAe,EAAK,gBAAgB,EAC5E,IAAM,EAAgB,OAAc,CAClC,EAAc,EAAG,YAAY,CAAC,EAC9B,EAAG,WAAW,EACd,EAAO,EAAI,CACb,CAAC,EACK,EAAwB,GAAU,CAClC,EAAM,YACR,GAAiB,CAAa,EAC9B,GAAmB,EAAM,KAAM,EAAsB,CACnD,QAAS,EACX,CAAC,EAEL,EACA,IAAK,IAAM,IAAQ,CAAC,UAAW,QAAS,kBAAkB,EACxD,GAAgB,EAAM,EAAsB,CAC1C,QAAS,EACX,CAAC,CAEL,CACF,CAAC,CACH,EChDM,IAAiB,CAAC,IAAK,IAAI,EAC3B,GAAa,GAAa,CAC1BA,GAAO,UAAU,aACnB,OAAoB,GAAU,CAAQ,CAAC,EAC9BA,GAAO,UAAU,aAAe,WAGzC,WAAW,CAAQ,EAFnB,iBAAiB,WAAc,GAAU,CAAQ,EAAG,EAAI,CAI5D,EACM,KAAU,EAAU,EAAO,CAAC,IAAM,CACtC,IAAM,EAAS,GAAW,MAAM,EAC1B,EAAS,GAAa,EAAU,EAAQ,IAAgB,EAAK,gBAAgB,EACnF,OAAgB,CACd,IAAM,EAAkB,GAAmB,EACvC,IACF,EAAO,MAAQ,KAAK,IAAI,EAAgB,cAAgB,GAAmB,EAAG,CAAC,EAC/E,EAAO,QAAU,CAAC,CAAe,EACjC,EAAO,EAAI,EAEf,CAAC,CACH,ECpBMpB,GAAW,CAAC,EACZ,GAAe,CAAC,EAClB,GACA,GACA,GACA,GACJ,SAAS,GAA6B,EAAU,EAAiB,GAAO,CACtE,OAAO,GAAkB,MAAO,EAAU,IAAe,GAAc,CAAc,CACvF,CACA,SAAS,GAA6B,EAAU,EAAiB,GAAO,CACtE,OAAO,GAAkB,MAAO,EAAU,IAAe,GAAc,CAAc,CACvF,CACA,SAAS,IAA8B,EAAU,CAC/C,OAAO,GAAkB,OAAQ,EAAU,IAAgB,EAAa,CAC1E,CACA,SAAS,GAA6B,EAAU,CAC9C,OAAO,GAAkB,MAAO,EAAU,IAAe,EAAY,CACvE,CACA,SAAS,GAAqC,EAAM,EAAU,CAM5D,OALA,GAAW,EAAM,CAAQ,EACpB,GAAa,KAChB,IAA8B,CAAI,EAClC,GAAa,GAAQ,IAEhB,GAAmB,EAAM,CAAQ,CAC1C,CACA,SAAS,GAAgB,EAAM,EAAM,CACnC,IAAM,EAAeA,GAAS,GACzB,MAAc,OAGnB,IAAK,IAAM,KAAW,EACpB,GAAI,CACF,EAAQ,CAAI,CACd,OAAS,EAAG,CACV,IAAeD,GAAM,MACnB;QACA;QACA,GAAgB,CAAO;QAEvB,CACF,CACF,CAEJ,CACA,SAAS,KAAgB,CACvB,OAAO,IACJ,GAAW,CACV,GAAgB,MAAO,CACrB,QACF,CAAC,EACD,GAAe,CACjB,EAGA,CAAE,iBAAkB,EAAK,CAC3B,CACF,CACA,SAAS,KAAgB,CACvB,OAAO,IACJ,GAAW,CACV,GAAgB,MAAO,CACrB,QACF,CAAC,EACD,GAAe,CACjB,EAGA,CAAE,iBAAkB,EAAK,CAC3B,CACF,CACA,SAAS,KAAiB,CACxB,OAAO,IAAQ,GAAW,CACxB,GAAgB,OAAQ,CACtB,QACF,CAAC,EACD,GAAgB,CAClB,CAAC,CACH,CACA,SAAS,KAAgB,CACvB,OAAO,IAAO,GAAW,CACvB,GAAgB,MAAO,CACrB,QACF,CAAC,EACD,GAAe,CACjB,CAAC,CACH,CACA,SAAS,GAAkB,EAAM,EAAU,EAAc,EAAe,EAAiB,GAAO,CAC9F,GAAW,EAAM,CAAQ,EACzB,IAAI,EAQJ,OAPK,GAAa,KAChB,EAAgB,EAAa,EAC7B,GAAa,GAAQ,IAEnB,GACF,EAAS,CAAE,OAAQ,CAAc,CAAC,EAE7B,GAAmB,EAAM,EAAU,EAAiB,EAAgB,IAAK,EAAC,CACnF,CACA,SAAS,IAA8B,EAAM,CAC3C,IAAM,EAAU,CAAC,EACb,IAAS,UACX,EAAQ,kBAAoB,GAE9B,GACE,EACC,GAAY,CACX,GAAgB,EAAM,CAAE,SAAQ,CAAC,CACnC,EACA,CACF,CACF,CACA,SAAS,GAAW,EAAM,EAAS,CACjC,GAAS,GAAQC,GAAS,IAAS,CAAC,EACpC,GAAS,GAAM,KAAK,CAAO,CAC7B,CACA,SAAS,GAAmB,EAAM,EAAU,EAAe,CACzD,UAAa,CACP,GACF,EAAc,EAEhB,IAAM,EAAeA,GAAS,GAC9B,GAAI,CAAC,EACH,OAEF,IAAM,EAAQ,EAAa,QAAQ,CAAQ,EACvC,IAAU,IACZ,EAAa,OAAO,EAAO,CAAC,CAEhC,CACF,CACA,SAAS,IAAyB,EAAO,CACvC,MAAO,aAAc,CACvB,CC3IA,IAAM,IAA4B,GAC5B,GAAY,CAAC,EACnB,GAAI,CACE,OAAO,KAAS,MAClB,GAAU,WAAa,OAAO,yBAAyB,KAAK,UAAW,YAAY,EAAE,KAEnF,OAAO,QAAY,MACrB,GAAU,QAAU,OAAO,yBAAyB,QAAQ,UAAW,SAAS,EAAE,IAClF,GAAU,GAAK,OAAO,yBAAyB,QAAQ,UAAW,IAAI,EAAE,IACxE,GAAU,UAAY,OAAO,yBAAyB,QAAQ,UAAW,WAAW,EAAE,IACtF,GAAU,aAAe,QAAQ,UAAU,cAEzC,OAAO,YAAgB,MACzB,GAAU,QAAU,OAAO,yBAAyB,YAAY,UAAW,SAAS,EAAE,IAE1F,MAAQ,CACR,CACA,SAAS,GAAU,EAAI,EAAM,EAAK,CAChC,IAAM,EAAK,GAAU,GACrB,GAAI,EACF,GAAI,CACF,OAAO,EAAG,KAAK,EAAI,CAAG,CACxB,MAAQ,CACR,CAEF,IAAM,EAAM,EAAG,GACf,OAAO,OAAO,GAAQ,WAAa,EAAI,KAAK,EAAI,CAAG,EAAI,CACzD,CACA,SAAS,GAAiB,EAAM,EAAU,CAAC,EAAG,CAC5C,GAAI,CAAC,EACH,MAAO,YAET,GAAI,CACF,IAAI,EAAc,EAEZ,EAAM,CAAC,EACT,EAAS,EACT,EAAM,EAGN,EACE,EAAW,MAAM,QAAQ,CAAO,EAAI,EAAU,EAAQ,SACtD,EAAkB,CAAC,MAAM,QAAQ,CAAO,GAAK,EAAQ,iBAAmB,IAC9E,KAAO,GAAe,IAAW,IAC/B,EAAU,IAAqB,EAAa,CAAQ,EAChD,MAAY,QAAU,EAAS,GAAK,EAAM,EAAI,OAAS,EAAY,EAAQ,QAAU,KAGzF,EAAI,KAAK,CAAO,EAChB,GAAO,EAAQ,OACf,EAAc,GAAU,EAAa,YAAY,EAEnD,OAAO,EAAI,QAAQ,EAAE,KAAK,KAAS,CACrC,MAAQ,CACN,MAAO,WACT,CACF,CACA,SAAS,IAAqB,EAAI,EAAU,CAC1C,IAAM,EAAM,CAAC,EACP,EAAU,GAAU,EAAI,SAAS,EACvC,GAAI,CAAC,EACH,MAAO,GAET,GAAI,OAAO,YAAgB,KACrB,aAAc,YAAa,CAC7B,IAAM,EAAU,GAAU,EAAI,SAAS,EACvC,GAAI,EAAS,CACX,GAAI,EAAQ,gBACV,OAAO,EAAQ,gBAEjB,GAAI,EAAQ,cACV,OAAO,EAAQ,aAEnB,CACF,CAEF,EAAI,KAAK,EAAQ,YAAY,CAAC,EAC9B,IAAM,EAAe,GAAU,OAAS,EAAS,OAAQ,GAAY,GAAU,EAAI,eAAgB,CAAO,CAAC,EAAE,IAAK,GAAY,CAAC,EAAS,GAAU,EAAI,eAAgB,CAAO,CAAC,CAAC,EAAI,KACnL,GAAI,GAAc,OAChB,EAAa,QAAS,GAAgB,CACpC,EAAI,KAAK,IAAI,EAAY,GAAG,IAAI,EAAY,GAAG,GAAG,CACpD,CAAC,MACI,CACL,IAAM,EAAK,GAAU,EAAI,IAAI,EACzB,GACF,EAAI,KAAK,IAAI,GAAI,EAEnB,IAAM,EAAY,GAAU,EAAI,WAAW,EAC3C,GAAI,GAAa,GAAS,CAAS,EAAG,CACpC,IAAM,EAAU,EAAU,MAAM,KAAK,EACrC,IAAK,IAAM,KAAK,EACd,EAAI,KAAK,IAAI,GAAG,CAEpB,CACF,CACA,IAAK,IAAM,IAAK,CAAC,aAAc,OAAQ,OAAQ,QAAS,KAAK,EAAG,CAC9D,IAAM,EAAO,GAAU,EAAI,eAAgB,CAAC,EACxC,GACF,EAAI,KAAK,IAAI,EAAE,IAAI,EAAK,GAAG,CAE/B,CACA,OAAO,EAAI,KAAK,EAAE,CACpB,CCrGA,IAAM,IAAY,GAAO,CACvB,IAAM,EAAsB,GAAU,EAChC,EAAM,OAAS,YAAcoB,GAAO,UAAU,kBAAoB,WACpE,EAAG,CAAK,CAEZ,EACA,GAAgB,mBAAoB,EAAoB,CAAE,QAAS,GAAM,KAAM,EAAK,CAAC,EACrF,GAAgB,WAAY,EAAoB,CAAE,QAAS,GAAM,KAAM,EAAK,CAAC,CAC/E,ECPA,SAAS,GAAmB,EAAO,CACjC,OAAO,OAAO,GAAU,UAAY,SAAS,CAAK,CACpD,CACA,SAAS,GAAgB,EAAY,EAAoB,EAAS,CAAE,GAAG,GAAO,CAC5E,IAAM,EAAkB,GAAW,CAAU,EAAE,gBAM/C,OALI,GAAmB,EAAkB,GACnC,OAAO,EAAW,iBAAoB,YACxC,EAAW,gBAAgB,CAAkB,EAG1C,GAAe,MAAkB,CACtC,IAAM,EAAO,GAAkB,CAC7B,UAAW,EACX,GAAG,CACL,CAAC,EAID,OAHI,GACF,EAAK,IAAI,CAAO,EAEX,CACT,CAAC,CACH,CACA,SAAS,GAA4B,EAAS,CAC5C,IAAM,EAAS,GAAU,EACzB,GAAI,CAAC,EACH,OAEF,GAAM,CAAE,OAAM,cAAa,WAAY,EAAkB,aAAc,EACjE,CAAE,UAAS,eAAgB,EAAO,WAAW,EAC7C,CAAE,YAAa,EAAO,yBAAyB,EAE/C,EADS,EAAO,qBAAqB,QACrB,GAAG,YAAY,EAC/B,EAAQ,GAAgB,EACxB,EAAO,EAAM,QAAQ,EACrB,EAAc,IAAS,IAAK,GAA+C,IAAK,GAAhD,EAAK,OAAS,EAAK,IAAM,EAAK,WAChE,EACJ,GAAI,CACF,EAAY,EAAM,aAAa,EAAE,SAAS,QAAQ,UACpD,MAAQ,CACR,CAgBA,OAAO,GAAkB,CACvB,OACA,YAhBA,UACA,cACA,KAAM,GAAe,IAAK,GAC1B,WAAY,GAAa,IAAK,GAC9B,UAAW,GAAY,IAAK,GAC5B,cAIA,sBAAuBA,GAAO,WAAW,UAEzC,iBAAkB,EAAW,WAAa,IAAK,GAC/C,GAAG,CAIM,EACT,YACA,aAAc,CACZ,WAAY,EACd,CACF,CAAC,CACH,CACA,SAAS,IAA2B,CAClC,OAAOA,GAAO,kBAAoBA,GAAO,WAC3C,CACA,SAAS,GAAQ,EAAM,CACrB,OAAO,EAAO,GAChB,CACA,SAAS,IAAuB,EAAiB,CAC/C,IAAI,EAAO,UACP,EAAU,UACV,EAAQ,GACZ,IAAK,IAAM,KAAQ,EAAiB,CAClC,GAAI,IAAS,IAAK,CAChB,CAAC,EAAM,GAAW,EAAgB,MAAM,GAAG,EAC3C,KACF,CACA,GAAI,CAAC,MAAM,OAAO,CAAI,CAAC,EAAG,CACxB,EAAO,IAAU,IAAM,OAAS,EAChC,EAAU,EAAgB,MAAM,CAAK,EAAE,GACvC,KACF,CACA,GAAS,CACX,CAIA,OAHI,IAAU,IACZ,EAAO,GAEF,CAAE,OAAM,SAAQ,CACzB,CACA,SAAS,GAAiB,EAAW,CACnC,GAAI,CACF,OAAO,oBAAoB,oBAAoB,SAAS,CAAS,CACnE,MAAQ,CACN,MAAO,EACT,CACF,CACA,SAAS,GAA8B,EAAQ,EAAmB,CAChE,IAAI,EACA,EAAY,GAChB,SAAS,EAA0B,EAAO,CACpC,CAAC,GAAa,GAChB,EAAkB,EAAO,EAAa,YAAY,EAAE,OAAQ,CAAY,EAE1E,EAAY,EACd,CACA,QAAe,CACb,EAA0B,UAAU,CACtC,CAAC,EACD,IAAM,EAA6B,EAAO,GAAG,6BAA8B,EAAG,IAAY,CACnF,GAAS,aACZ,EAA0B,YAAY,EACtC,EAA2B,EAC3B,EAAkC,EAEtC,CAAC,EACK,EAAoC,EAAO,GAAG,yBAA2B,GAAS,CACtF,EAAe,EACf,EAAkC,CACpC,CAAC,CACH,CCtHA,SAAS,IAAyB,EAAQ,CACxC,IAAI,EAAqB,EACrB,EACJ,GAAI,CAAC,GAAiB,cAAc,EAClC,OAEF,IAAM,EAAoB,IAA8B,CAAE,YAAa,CACrE,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GAChD,IAGL,EAAqB,EAAO,MAC5B,EAAqB,EACvB,EAAG,EAAI,EACP,GAA8B,GAAS,EAAa,IAAmB,CACrE,IAAuB,EAAoB,EAAoB,EAAgB,CAAW,EAC1F,EAAkB,CACpB,CAAC,CACH,CACA,SAAS,IAAuB,EAAU,EAAO,EAAgB,EAAa,CAC5E,IAAerB,GAAM,IAAI,qBAAqB,EAAS,EAAE,EACzD,IAAM,EAAY,EAAQ,IAAS,GAA6B,GAAK,GAAK,EAAM,SAAS,EAAI,GAAmB,EAC1G,EAAY,GAAgB,EAAE,aAAa,EAAE,gBAC7C,EAAO,EAAQ,GAAiB,EAAM,QAAQ,IAAI,IAAI,EAAI,eAC1D,EAAa,EAChB,IAAmC,yBACnC,IAA+B,mBAC/B,IAAoC,EAErC,0BAA2B,EAE3B,sBAAuB,CACzB,EACI,GAAO,SACT,EAAM,QAAQ,SAAS,EAAQ,IAAU,CACvC,EAAW,cAAc,EAAQ,KAAO,GAAiB,EAAO,IAAI,CACtE,CAAC,EAEH,IAAM,EAAO,GAA4B,CACvC,OACA,YAAa,EACb,aACA,WACF,CAAC,EACG,IACF,EAAK,SAAS,MAAO,EAClB,IAA6C,IAC7C,IAA8C,CACjD,CAAC,EACD,EAAK,IAAI,CAAS,EAEtB,CClDA,SAAS,GAAiB,EAAU,CAClC,OAAO,GAAY,MAAQ,EAAW,GAAK,MAC7C,CACA,SAAS,IAAyB,EAAQ,CACxC,IAAI,EAAqB,EACrB,EACJ,GAAI,CAAC,GAAiB,0BAA0B,EAC9C,OAEF,IAAM,EAAoB,IAA8B,CAAE,YAAa,CACrE,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GACjD,CAAC,GAAS,CAAC,GAAiB,EAAO,KAAK,IAG5C,EAAqB,EAAO,MAC5B,EAAqB,EACvB,EAAG,EAAI,EACP,GAA8B,GAAS,EAAa,IAAmB,CACrE,IAAuB,EAAoB,EAAoB,EAAgB,CAAW,EAC1F,EAAkB,CACpB,CAAC,CACH,CACA,SAAS,IAAuB,EAAU,EAAO,EAAgB,EAAa,CAC5E,GAAI,CAAC,GAAiB,CAAQ,EAC5B,OAEF,IAAeA,GAAM,IAAI,qBAAqB,EAAS,EAAE,EACzD,IAAM,EAAY,IAAS,GAA6B,GAAK,IAAM,GAAO,WAAa,EAAE,EACnF,EAAY,GAAgB,EAAE,aAAa,EAAE,gBAC7C,EAAO,EAAQ,GAAiB,EAAM,OAAO,EAAI,2BACjD,EAAa,EAChB,IAAmC,yBACnC,IAA+B,mBAC/B,IAAoC,EAGrC,0BAA2B,EAE3B,sBAAuB,CACzB,EACI,IACF,EAAM,UAAY,EAAW,eAAiB,GAAiB,EAAM,OAAO,GAC5E,EAAM,KAAO,EAAW,UAAY,EAAM,IAC1C,EAAM,MAAQ,EAAW,WAAa,EAAM,KAC5C,EAAM,UAAY,OAAS,EAAW,gBAAkB,EAAM,UAC9D,EAAM,YAAc,OAAS,EAAW,kBAAoB,EAAM,YAClE,EAAM,MAAQ,OAAS,EAAW,YAAc,EAAM,OAExD,IAAM,EAAO,GAA4B,CACvC,OACA,YAAa,EACb,aACA,WACF,CAAC,EACG,IACF,EAAK,SAAS,MAAO,EAClB,IAA6C,eAC7C,IAA8C,CACjD,CAAC,EACD,EAAK,IAAI,CAAS,EAEtB,CCjEA,SAASyB,GAAgB,EAAM,CAC7B,OAAO,KAAS,GAA6B,GAAK,YAAY,YAAc,GAAQ,GACtF,CACA,SAAS,GAA+B,EAAgB,CACtD,IAAM,EAAiB,CAAC,EACxB,GAAI,EAAe,iBAAmB,KAAQ,CAC5C,GAAM,CAAE,OAAM,WAAY,IAAuB,EAAe,eAAe,EAC/E,EAAe,4BAA8B,EAC7C,EAAe,yBAA2B,CAC5C,CAIA,OAHM,GAA6B,GAAK,GAAyB,GAAG,WAG7D,IAA4B,CACjC,GAAG,EACH,8BAA+BA,GAAgB,EAAe,aAAa,EAC3E,4BAA6BA,GAAgB,EAAe,WAAW,EACvE,4BAA6BA,GAAgB,EAAe,WAAW,EACvE,2BAA4BA,GAAgB,EAAe,UAAU,EACrE,mCAAoCA,GAAgB,EAAe,iBAAiB,EACpF,iCAAkCA,GAAgB,EAAe,eAAe,EAChF,6BAA8BA,GAAgB,EAAe,YAAY,EACzE,uCAAwCA,GAAgB,EAAe,qBAAqB,EAC5F,8BAA+BA,GAAgB,EAAe,UAAU,EACxE,6BAA8BA,GAAgB,EAAe,YAAY,EACzE,8BAA+BA,GAAgB,EAAe,aAAa,EAC3E,4BAA6BA,GAAgB,EAAe,WAAW,EAIvE,kCAAmC,EAAe,eAAiB,KAA4C,IAAK,GAA1C,EAAe,cAAgB,GAC3G,CAAC,EApBQ,CAqBX,CACA,SAAS,IAA4B,EAAO,CAC1C,OAAO,OAAO,YAAY,OAAO,QAAQ,CAAK,EAAE,QAAQ,EAAG,KAAW,GAAS,IAAI,CAAC,CACtF,CCxBA,IAAM,IAAmB,WACrB,GAAqB,EACrB,GAAgB,CAAC,EACjB,GACA,GACJ,SAAS,IAAuB,CAC9B,2BACA,2BACA,UACC,CACD,IAAM,EAAc,GAAyB,EAC7C,GAAI,GAAe,GAA6B,EAAG,CAC7C,EAAY,MACd,GAAO,YAAY,KAAK,qBAAqB,EAE/C,IAAM,EAAqB,EAA2B,IAAyB,CAAM,EAAI,IAA6B,GAAQ,IAAU,EAAI,IAAK,GAC3I,EAAqB,EAA2B,IAAyB,CAAM,EAAI,IAA6B,GAAQ,IAAU,EAAI,IAAK,GAC3I,EAAsB,IAAW,EACjC,EAAuB,IAAY,EACzC,UAAa,CACX,EAAoB,EACpB,EAAqB,EACrB,IAAqB,EACrB,IAAqB,CACvB,CACF,CACA,UAAa,IAAK,EACpB,CACA,SAAS,KAAyB,CAChC,GAAqC,YAAa,CAAE,aAAc,CAChE,IAAM,EAAS,GAAc,EAC7B,GAAI,CAAC,EACH,OAEF,GAAM,CAAE,GAAI,EAAU,gBAAiB,GAAyB,GAAW,CAAM,EACjF,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAY,GAAQ,GAA6B,EAAI,EAAM,SAAS,EACpE,EAAW,GAAQ,EAAM,QAAQ,EACnC,IAAa,cAAgB,GAAwB,EAAY,GAGrE,GAAgB,EAAQ,EAAW,EAAY,EAAU,CACvD,KAAM,yBACN,GAAI,eACJ,WAAY,EACT,IAAmC,yBACtC,CACF,CAAC,CACH,CACF,CAAC,CACH,CACA,SAAS,KAAmC,CAuC1C,IAtCqB,oBAAqB,GAAS,CACjD,IAAM,EAAS,GAAc,EACxB,KAGL,IAAK,IAAM,KAAS,EAAK,WAAW,EAAG,CACrC,GAAI,CAAC,EAAM,QAAQ,GACjB,SAEF,IAAM,EAAY,GAAQ,GAA6B,EAAI,EAAM,SAAS,EACpE,CAAE,gBAAiB,EAAsB,GAAI,GAAa,GAAW,CAAM,EACjF,GAAI,IAAa,cAAgB,GAAwB,EAAY,EACnE,SAEF,IAAM,EAAW,GAAQ,EAAM,QAAQ,EACjC,EAAa,EAChB,IAAmC,yBACtC,EAEM,CAAE,UAAS,cAAa,YAAW,qBAAoB,sBADvC,EAAM,QAAQ,GAEpC,EAAW,0BAA4B,EACvC,EAAW,+BAAiC,EACxC,IACF,EAAW,iBAAmB,GAE5B,IACF,EAAW,iBAAmB,GAE5B,IAAuB,KACzB,EAAW,uCAAyC,GAEtD,GAAgB,EAAQ,EAAW,EAAY,EAAU,CACvD,KAAM,yBACN,GAAI,0BACJ,YACF,CAAC,CACH,CACF,CACO,EAAE,QAAQ,CAAE,KAAM,uBAAwB,SAAU,EAAK,CAAC,CACnE,CACA,SAAS,KAA4B,CACnC,GAAqC,SAAU,CAAE,aAAc,CAC7D,IAAM,EAAS,GAAc,EACxB,KAGL,KAAK,IAAM,KAAS,EAClB,GAAI,EAAM,OAAS,QAAS,CAC1B,IAAM,EAAY,GAAQ,GAA6B,EAAI,EAAM,SAAS,EACpE,EAAW,GAAQ,EAAM,QAAQ,EACjC,EAAc,CAClB,KAAM,GAAiB,EAAM,MAAM,EACnC,GAAI,kBAAkB,EAAM,OAC5B,YACA,WAAY,EACT,IAAmC,yBACtC,CACF,EACM,EAAgB,GAAiB,EAAM,MAAM,EAC/C,IACF,EAAY,WAAW,qBAAuB,GAEhD,GAAgB,EAAQ,EAAW,EAAY,EAAU,CAAW,CACtE,EAEJ,CAAC,CACH,CACA,SAAS,KAAY,CACnB,OAAO,IAA8B,CAAE,YAAa,CAClD,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GAChD,IAGL,GAAc,IAAS,CAAE,MAAO,EAAO,MAAO,KAAM,EAAG,EACvD,GAAY,EACd,EAAG,EAAI,CACT,CACA,SAAS,KAAY,CACnB,OAAO,IAA8B,CAAE,YAAa,CAClD,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GACjD,CAAC,GAAS,CAAC,GAAiB,EAAO,KAAK,IAG5C,GAAc,IAAS,CAAE,MAAO,EAAO,MAAO,KAAM,aAAc,EAClE,GAAY,EACd,EAAG,EAAI,CACT,CACA,SAAS,KAAa,CACpB,OAAO,KAA+B,CAAE,YAAa,CACrC,EAAO,QAAQ,EAAO,QAAQ,OAAS,KAIrD,GAAc,KAAU,CAAE,MAAO,EAAO,MAAO,KAAM,aAAc,EACrE,CAAC,CACH,CACA,SAAS,KAAc,CACrB,OAAO,GAAqC,SAAU,CAAE,aAAc,CACpE,IAAM,EAAc,GAAqB,EACzC,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAe,EAAM,UAAY,EAAY,gBAC/C,EAAM,OAAS,eAAiB,IAClC,GAAc,GAAQ,CAAE,MAAO,EAAM,UAAW,KAAM,aAAc,GAElE,EAAM,OAAS,0BAA4B,IAC7C,GAAc,IAAS,CAAE,MAAO,EAAM,UAAW,KAAM,aAAc,EAEzE,CACF,CAAC,CACH,CACA,SAAS,IAAsB,EAAM,EAAS,CAC5C,IAAM,EAAc,GAAyB,EACvC,EAAS,GAA6B,EAC5C,GAAI,CAAC,GAAa,YAAc,CAAC,EAC/B,OAEF,GAAM,CAAE,uBAAsB,4BAA2B,uBAAwB,EAC3E,EAAa,GAAQ,CAAM,EAC3B,EAAqB,EAAY,WAAW,EAC5C,CAAE,KAAI,gBAAiB,GAAyB,GAAW,CAAI,EACrE,EAAmB,MAAM,EAAkB,EAAE,QAAS,GAAU,CAC9D,IAAM,EAAY,GAAQ,EAAM,SAAS,EACnC,EAAW,GAKf,KAAK,IAAI,EAAG,EAAM,QAAQ,CAC5B,EACI,SAAO,cAAgB,GAAwB,EAAa,EAAY,GAG5E,OAAQ,EAAM,UAAd,CACE,IAAK,aACH,IAAoB,EAAM,EAAO,CAAU,EAC3C,MAEF,IAAK,OACL,IAAK,QACL,IAAK,UACH,IAAiB,EAAM,EAAO,EAAW,EAAU,EAAY,CAAyB,EACxF,MAEF,IAAK,WACH,IACE,EACA,EACA,EAAM,KACN,EACA,EACA,EACA,CACF,EACA,KAEJ,CACF,CAAC,EACD,GAAqB,KAAK,IAAI,EAAmB,OAAS,EAAG,CAAC,EAC9D,IAAgB,EAAM,CAAoB,CAC5C,CACA,SAAS,IAAmB,EAAM,EAAS,CACzC,IAAM,EAAS,GAA6B,EAC5C,GAAI,CAAC,GAAyB,GAAG,YAAc,CAAC,EAAQ,CACtD,GAAmB,EACnB,MACF,CACA,GAAM,CAAE,uBAAsB,0BAAyB,2BAA4B,EAC7E,EAAa,GAAQ,CAAM,EACjC,GAAI,GAAW,CAAI,EAAE,KAAO,WAAY,CAEtC,GADA,IAAkC,EAAa,EAC3C,EAAsB,CACxB,IAAM,GAAW,EAAmB,EAAO,IAAmB,CAC5D,IAAM,EAAU,GAAkB,qBAAqB,EAAkB,QACzE,EAAK,aAAa,EAAS,CAAK,EAChC,IAAezB,GAAM,IAAI,8BAA+B,EAAG,GAAU,CAAM,EAAG,kBAAkB,CAClG,EACA,CAAC,OAAQ,KAAM,KAAK,EAAE,QAAS,GAAoB,CAC7C,GAAc,IAChB,EAAQ,EAAiB,GAAc,GAAiB,KAAK,CAEjE,CAAC,EACG,GAAc,qBAChB,EAAQ,mBAAoB,GAAc,oBAAoB,MAAO,qCAAqC,CAE9G,MACO,GACH,OAAO,GAAc,IAElB,GACH,OAAO,GAAc,IAEvB,OAAO,QAAQ,EAAa,EAAE,SAAS,CAAC,EAAiB,KAAiB,CACxE,GAAe,EAAiB,EAAY,MAAO,EAAY,KAAM,CAAI,CAC3E,CAAC,EACD,IAAuB,EAAM,CAAO,EAEtC,EAAK,aAAa,EAAuB,kCAAoC,yBAA0B,CAAU,EACjH,EAAK,aACH,EAAuB,kDAAoD,8BAC3E,GAAmB,CACrB,CACF,CACA,GAAmB,CACrB,CACA,SAAS,IAAqB,CAC5B,GAAY,IAAK,GACjB,GAAY,IAAK,GACjB,GAAgB,CAAC,CACnB,CACA,SAAS,IAAsB,EAAO,CAChC,MAAO,YAAc,UAGzB,GAAI,CACF,OAAO,EAAM,OAAO,SAAS,QAAU,cACzC,MAAQ,CACN,MACF,CACF,CACA,SAAS,IAAiB,EAAM,EAAO,EAAW,EAAU,EAAY,EAA2B,CAIjG,GAHI,IAAsB,CAAK,GAG3B,CAAC,OAAQ,SAAS,EAAE,SAAS,EAAM,SAAS,GAAK,GAAyB,EAAM,KAAM,CAAyB,EACjH,OAEF,IAAM,EAAW,GAAmB,EAAK,EACnC,EAAc,GAAQ,EAAW,EAAS,aAAe,CAAC,EAC1D,EAAwB,EAAa,KAAK,IAAI,EAAW,CAAW,EACpE,EAAiB,EAAa,EAC9B,EAAsB,EAAiB,EACvC,EAAa,EAChB,IAAmC,+BACtC,EACI,IAA0B,IAC5B,EAAW,kDAAoD,GAC/D,EAAW,qCAAuC,GAEpD,IAA2B,EAAY,CAAK,EACxC,GAAyB,GAC3B,GAAgB,EAAM,EAAuB,EAAqB,CAChE,KAAM,EAAM,KACZ,GAAI,EAAM,UACV,YACF,CAAC,CAEL,CACA,SAAS,IAA2B,EAAY,EAAoB,CAClE,GAAI,CACF,IAAM,EAAS,EAAmB,OAClC,GAAI,CAAC,EACH,OAEF,GAAI,OAAO,GAAW,SAAU,CAC9B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CAAM,EAC9C,GAAI,GAAS,GAAY,CAAK,EAC5B,EAAW,iCAAiC,KAAS,OAChD,GAAI,IAAU,IAAK,GACxB,GAAI,CACF,EAAW,iCAAiC,KAAS,KAAK,UAAU,CAAK,CAC3E,MAAQ,CACR,CAGJ,MACF,CACA,GAAI,GAAY,CAAM,EAAG,CACvB,EAAW,iCAAmC,EAC9C,MACF,CACA,GAAI,CACF,EAAW,iCAAmC,KAAK,UAAU,CAAM,CACrE,MAAQ,CACR,CACF,MAAQ,CACR,CACF,CACA,SAAS,IAAoB,EAAM,EAAO,EAAY,CACpD,CAAC,cAAe,WAAY,wBAAyB,YAAa,SAAS,EAAE,QAAS,GAAU,CAC9F,GAAgC,EAAM,EAAO,EAAO,CAAU,CAChE,CAAC,EACD,GAAgC,EAAM,EAAO,mBAAoB,EAAY,SAAS,EACtF,GAAgC,EAAM,EAAO,QAAS,EAAY,OAAO,EACzE,GAAgC,EAAM,EAAO,eAAgB,EAAY,KAAK,EAC9E,IAAY,EAAM,EAAO,CAAU,CACrC,CACA,SAAS,GAAgC,EAAM,EAAO,EAAO,EAAY,EAAO,EAAO,CAErF,IAAM,EAAM,EADK,IAAuC,CAC/B,GACnB,EAAQ,EAAM,GAAG,EAAM,QACzB,CAAC,GAAS,CAAC,GAGf,GAAgB,EAAM,EAAa,GAAQ,CAAK,EAAG,EAAa,GAAQ,CAAG,EAAG,CAC5E,GAAI,WAAW,IACf,KAAM,EAAM,KACZ,WAAY,EACT,IAAmC,0BACpC,GAAG,IAAU,YAAc,EAAM,eAAiB,KAAO,CAAE,sBAAuB,EAAM,aAAc,EAAI,CAAC,CAC7G,CACF,CAAC,CACH,CACA,SAAS,IAAuC,EAAO,CAOrD,OANI,IAAU,mBACL,aAEL,IAAU,QACL,oBAEF,GAAG,EAAM,IAClB,CACA,SAAS,IAAY,EAAM,EAAO,EAAY,CAC5C,IAAM,EAAwB,EAAa,GAAQ,EAAM,YAAY,EAC/D,EAAuB,EAAa,GAAQ,EAAM,WAAW,EAC7D,EAAyB,EAAa,GAAQ,EAAM,aAAa,EACnE,EAAM,cACR,GAAgB,EAAM,EAAuB,EAAsB,CACjE,GAAI,kBACJ,KAAM,EAAM,KACZ,WAAY,EACT,IAAmC,yBACtC,CACF,CAAC,EACD,GAAgB,EAAM,EAAwB,EAAsB,CAClE,GAAI,mBACJ,KAAM,EAAM,KACZ,WAAY,EACT,IAAmC,yBACtC,CACF,CAAC,EAEL,CACA,SAAS,IAAkB,EAAM,EAAO,EAAa,EAAW,EAAU,EAAY,EAAwB,CAC5G,GAAI,EAAM,gBAAkB,kBAAoB,EAAM,gBAAkB,QACtE,OAEF,IAAM,EAAK,EAAM,cAAgB,YAAY,EAAM,gBAAkB,iBACrE,GAAI,GAAwB,SAAS,CAAE,EACrC,OAEF,IAAM,EAAa,EAChB,IAAmC,+BACtC,EACM,EAAYgB,GAAS,CAAW,EAClC,EAAU,WACZ,EAAW,cAAgB,EAAU,SAAS,MAAM,GAAG,EAAE,IAAI,GAE3D,EAAU,OACZ,EAAW,kBAAoB,EAAU,MAE3C,EAAW,mBAAqB,EAAY,SAASK,GAAO,SAAS,MAAM,EAC3E,EAAWD,IAAY,EACvB,IAA8B,EAAO,EAAY,CAE/C,CAAC,iBAAkB,2BAA2B,EAC9C,CAAC,eAAgB,6BAA6B,EAC9C,CAAC,kBAAmB,8BAA8B,EAClD,CAAC,kBAAmB,sCAAsC,EAE1D,CAAC,uBAAwB,iCAAiC,EAE1D,CAAC,eAAgB,6BAA6B,CAChD,CAAC,EACD,IAAM,EAA+B,CAAE,GAAG,EAAY,GAAG,GAA+B,CAAK,CAAE,EACzF,EAAiB,EAAa,EAEpC,GAAgB,EAAM,EADD,EAAiB,EACc,CAClD,KAAM,EAAY,QAAQC,GAAO,SAAS,OAAQ,EAAE,EACpD,KACA,WAAY,CACd,CAAC,CACH,CACA,SAAS,IAAgB,EAAM,EAAsB,CACnD,IAAM,EAAYA,GAAO,UACzB,GAAI,CAAC,EACH,OAEF,IAAM,EAAa,EAAU,WACzB,IACE,EAAW,eACb,EAAK,aACH,EAAuB,oCAAsC,0BAC7D,EAAW,aACb,EAEE,EAAW,MACb,EAAK,aAAa,EAAuB,0BAA4B,iBAAkB,EAAW,IAAI,EAEpG,GAAmB,EAAW,GAAG,IAC/B,EACF,EAAK,aAAa,yBAA0B,EAAW,GAAG,EACjD,GAAW,CAAI,EAAE,KAAO,YACjC,GAAe,iBAAkB,EAAW,IAAK,aAAa,IAIhE,GAAmB,EAAU,YAAY,IACvC,EACF,EAAK,aAAa,mCAAoC,EAAU,YAAY,EAE5E,EAAK,aAAa,eAAgB,GAAG,EAAU,aAAa,IAAI,GAGhE,GAAmB,EAAU,mBAAmB,IAC9C,EACF,EAAK,aAAa,yBAA0B,EAAU,mBAAmB,EAEzE,EAAK,aAAa,sBAAuB,OAAO,EAAU,mBAAmB,CAAC,EAGpF,CACA,SAAS,IAAuB,EAAM,EAAS,CACzC,IAAa,EAAQ,0BACnB,GAAU,SACZ,EAAK,aAAa,cAAe,GAAiB,GAAU,OAAO,CAAC,EAElE,GAAU,IACZ,EAAK,aAAa,SAAU,GAAU,EAAE,EAEtC,GAAU,KACZ,EAAK,aAAa,UAAW,GAAU,IAAI,KAAK,EAAE,MAAM,EAAG,GAAG,CAAC,EAE7D,GAAU,UAAY,MACxB,EAAK,aAAa,eAAgB,GAAU,QAAQ,EAElD,GAAU,YAAc,MAC1B,EAAK,aAAa,iBAAkB,GAAU,UAAU,EAE1D,EAAK,aAAa,WAAY,GAAU,IAAI,GAE1C,IAAW,SAAW,EAAQ,yBAChC,GAAU,QAAQ,SACf,EAAQ,IAAU,EAAK,aAAa,cAAc,EAAQ,IAAK,GAAiB,EAAO,IAAI,CAAC,CAC/F,CAEJ,CACA,SAAS,IAA8B,EAAO,EAAY,EAAY,CACpE,EAAW,SAAS,CAAC,EAAU,KAAkB,CAC/C,IAAM,EAAW,EAAM,GACnB,GAAY,OAAS,OAAO,GAAa,UAAY,EAAW,KAAoB,OAAO,GAAa,YAC1G,EAAW,GAAgB,EAE/B,CAAC,CACH,CACA,SAAS,IAAkC,EAAgB,CACzD,IAAM,EAAW,GAAmB,EAAK,EACzC,GAAI,CAAC,EACH,OAEF,GAAM,CAAE,gBAAe,gBAAiB,EACpC,GAAgB,IAClB,EAAe,oBAAsB,CACnC,MAAO,EAAgB,EACvB,KAAM,aACR,EAEJ,CCpgBA,IAAM,GAAoB,CAAC,EACrB,GAAwC,IAAI,IAC5C,GAA6C,IAAI,IAEvD,SAAS,KAAmB,CAE1B,GADoB,GACN,GAAK,GAA6B,EAAG,CACjD,IAAM,EAAc,IAAU,EAC9B,UAAa,CACX,EAAY,CACd,CACF,CACA,UAAa,IAAK,EACpB,CACA,IAAM,GAAgB,CACpB,MAAO,QACP,YAAa,QACb,UAAW,QACX,UAAW,QACX,QAAS,QACT,WAAY,QACZ,SAAU,QACV,UAAW,QACX,SAAU,QACV,WAAY,QACZ,WAAY,QACZ,YAAa,QACb,WAAY,QACZ,aAAc,QACd,aAAc,QACd,UAAW,OACX,QAAS,OACT,KAAM,OACN,UAAW,OACX,UAAW,OACX,SAAU,OACV,KAAM,OACN,QAAS,QACT,MAAO,QACP,SAAU,QACV,MAAO,OACT,EACA,SAAS,KAAY,CACnB,OAAO,GAA6B,GAAM,CAC5C,CACA,IAAM,KAAU,CAAE,YAAa,CAC7B,GAAI,EAAO,OAAS,KAClB,OAEF,IAAM,EAAW,GAAQ,EAAO,KAAK,EACrC,GAAI,KACF,OAEF,IAAM,EAAQ,EAAO,QAAQ,KAAM,GAAW,EAAO,WAAa,EAAO,OAAS,GAAc,EAAO,KAAK,EAC5G,GAAI,CAAC,EACH,OAEF,GAAM,CAAE,iBAAkB,EACpB,EAAkB,GAAc,EAAM,MACtC,EAAY,GAAQ,GAA6B,EAAI,EAAM,SAAS,EACpE,EAAa,GAAc,EAC3B,EAAW,EAAa,GAAY,CAAU,EAAI,IAAK,GACvD,EAA2B,GAAiB,KAAkD,IAAK,GAAhD,GAAsB,IAAI,CAAa,EAC1F,EAAY,GAA0B,MAAQ,EAC9C,EAAY,EAAY,GAAW,CAAS,EAAE,YAAc,GAAgB,EAAE,aAAa,EAAE,gBAO7F,EAAO,GAA4B,CACvC,KAPW,GAA0B,aAAe,GAAiB,EAAM,MAAM,EAQjF,YAAa,EACb,aAPC,IAAmC,yBACnC,IAA+B,kBAAkB,KACjD,IAAoC,EAAM,QAKlC,EACT,WACF,CAAC,EACG,IACF,EAAK,SAAS,MAAO,EAClB,IAA6C,eAC7C,IAA8C,EAAO,KACxD,CAAC,EACD,EAAK,IAAI,EAAY,CAAQ,EAEjC,EACA,SAAS,IAA4B,EAAe,CAClD,OAAO,GAAiB,KAAkD,IAAK,GAAhD,GAAsB,IAAI,CAAa,CACxE,CACA,SAAS,KAAiC,CACxC,IAAM,EAAoB,OAAO,KAAK,EAAa,EAC/C,GAAU,GACZ,EAAkB,QAAS,GAAc,CACvC,GAAO,iBAAiB,EAAW,EAAyB,CAAE,QAAS,GAAM,QAAS,EAAK,CAAC,CAC9F,CAAC,EAEH,SAAS,EAAwB,EAAO,CACtC,IAAM,EAAS,EAAM,OACrB,GAAI,CAAC,EACH,OAEF,IAAM,EAAc,GAAiB,CAAM,EACrC,EAAY,KAAK,MAAM,EAAM,SAAS,EAE5C,GADA,GAA2B,IAAI,EAAW,CAAW,EACjD,GAA2B,KAAO,GAAI,CACxC,IAAM,EAAW,GAA2B,KAAK,EAAE,KAAK,EAAE,MACtD,IAAa,IAAK,IACpB,GAA2B,OAAO,CAAQ,CAE9C,CACF,CACA,SAAS,EAA4B,EAAO,CAC1C,IAAM,EAAY,KAAK,MAAM,EAAM,SAAS,EACxC,EAAc,GAA2B,IAAI,CAAS,EAC1D,GAAI,CAAC,EACH,IAAK,IAAI,EAAS,GAAI,GAAU,EAAG,IAAU,CAC3C,IAAM,EAAa,GAA2B,IAAI,EAAY,CAAM,EACpE,GAAI,EAAY,CACd,EAAc,EACd,KACF,CACF,CAEF,OAAO,GAAe,WACxB,CACA,IAAM,GAAiB,CAAE,aAAc,CACrC,IAAM,EAAa,GAAc,EAC3B,EAAiB,GAAc,GAAY,CAAU,EAC3D,EAAQ,QAAS,GAAU,CACzB,GAAI,CAAC,IAAyB,CAAK,EACjC,OAEF,IAAM,EAAgB,EAAM,cAI5B,GAHI,GAAiB,MAGjB,GAAsB,IAAI,CAAa,EACzC,OAEF,IAAM,EAAc,EAAM,OAAS,GAAiB,EAAM,MAAM,EAAI,EAA4B,CAAK,EACrG,GAAI,GAAkB,OAAS,GAAI,CACjC,IAAM,EAAO,GAAkB,MAAM,EACrC,GAAsB,OAAO,CAAI,CACnC,CACA,GAAkB,KAAK,CAAa,EACpC,GAAsB,IAAI,EAAe,CACvC,KAAM,EACN,aACF,CAAC,CACH,CAAC,CACH,EACA,GAAqC,QAAS,CAAa,EAC3D,GAAqC,cAAe,CAAa,CACnE,CCpJA,SAAS,GAAkB,EAAS,CAClC,GAAM,CACJ,OACA,KACA,SACA,aACA,QACA,WAAY,EACZ,aACA,cACA,YACA,WACE,EACE,EAAY,GAAgB,EAAE,aAAa,EAAE,gBAC7C,EAAa,EAChB,IAAmC,GACnC,IAA+B,GAC/B,IAAoC,GACpC,qBAAqB,EAAW,SAAU,GAE1CK,IAAqB,GACrBC,IAAsB,EAEvB,sBAAuBN,GAAO,WAAW,UACzC,GAAG,CACL,EACI,GAAc,GAAuB,CAAU,EAAE,4BAA+C,aAClG,EAAW,2BAA6B,EAAW,YAAY,EAAE,QAE/D,IACF,EAAW,qBAAqB,EAAW,gBAAkB,GAE/D,IAAM,EAAO,GAAkB,CAC7B,OACA,aACA,YAIA,YACF,CAAC,EACG,GACF,EAAK,IAAI,GAAW,CAAS,CAEjC,CACA,SAAS,IAAe,EAAQ,CAC9B,IAAI,EAAW,EACX,EACJ,GAAI,CAAC,GAAiB,0BAA0B,EAC9C,OAEF,IAAM,EAAoB,IAA8B,CAAE,YAAa,CACrE,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GACjD,CAAC,GAAS,CAAC,GAAiB,EAAO,KAAK,IAG5C,EAAW,EAAO,MAClB,EAAW,EACb,EAAG,EAAI,EACP,GAA8B,GAAS,EAAa,EAAG,IAAiB,CACtE,IAAa,EAAU,EAAU,EAAc,CAAW,EAC1D,EAAkB,CACpB,CAAC,CACH,CACA,SAAS,IAAa,EAAU,EAAO,EAAc,EAAa,CAChE,GAAI,CAAC,GAAiB,CAAQ,EAC5B,OAEF,IAAerB,GAAM,IAAI,qBAAqB,EAAS,EAAE,EACzD,IAAM,EAAwB,GAA6B,GAAK,EAC1D,EAAa,GAAQ,CAAqB,EAC1C,EAAU,GAAQ,GAAyB,GAAO,WAAa,EAAE,EACjE,EAAO,EAAQ,GAAiB,EAAM,OAAO,EAAI,2BACjD,EAAa,CAAC,EACpB,GAAO,UAAY,EAAW,iCAAmC,GAAiB,EAAM,OAAO,GAC/F,GAAO,KAAO,EAAW,4BAA8B,EAAM,IAC7D,GAAO,MAAQ,EAAW,6BAA+B,EAAM,KAC/D,GAAO,UAAY,OAAS,EAAW,mCAAqC,EAAM,UAClF,GAAO,YAAc,OAAS,EAAW,qCAAuC,EAAM,YACtF,GAAO,MAAQ,OAAS,EAAW,8BAAgC,EAAM,MACzE,GAAkB,CAChB,OACA,GAAI,kBACJ,OAAQ,wBACR,WAAY,MACZ,MAAO,EACP,aACA,WAAY,EACZ,cACA,UAAW,EACX,SACF,CAAC,CACH,CACA,SAAS,IAAe,EAAQ,CAC9B,IAAI,EAAW,EACX,EACJ,GAAI,CAAC,GAAiB,cAAc,EAClC,OAEF,IAAM,EAAoB,IAA8B,CAAE,YAAa,CACrE,IAAM,EAAQ,EAAO,QAAQ,EAAO,QAAQ,OAAS,GAChD,IAGL,EAAW,EAAO,MAClB,EAAW,EACb,EAAG,EAAI,EACP,GAA8B,GAAS,EAAa,EAAG,IAAiB,CACtE,IAAa,EAAU,EAAU,EAAc,CAAW,EAC1D,EAAkB,CACpB,CAAC,CACH,CACA,SAAS,IAAa,EAAU,EAAO,EAAc,EAAa,CAChE,IAAeA,GAAM,IAAI,qBAAqB,EAAS,EAAE,EACzD,IAAM,EAAY,EAAQ,IAAS,GAA6B,GAAK,GAAK,EAAM,SAAS,EAAI,GAAmB,EAC1G,EAAO,EAAQ,GAAiB,EAAM,QAAQ,IAAI,IAAI,EAAI,eAC1D,EAAa,CAAC,EAChB,GAAO,SACT,EAAM,QAAQ,SAAS,EAAQ,IAAU,CACvC,EAAW,gCAAgC,EAAQ,KAAO,GAAiB,EAAO,IAAI,CACxF,CAAC,EAEH,GAAkB,CAChB,OACA,GAAI,kBACJ,OAAQ,wBACR,WAAY,MACZ,MAAO,EACP,aACA,WAAY,EACZ,cACA,WACF,CAAC,CACH,CACA,SAAS,KAAiB,CAEpB,CADgB,GACL,GAAK,CAAC,GAA6B,GAiBlD,IAde,CAAE,YAAa,CAK5B,GAJI,EAAO,OAAS,MAGH,GAAQ,EAAO,KACrB,KACT,OAEF,IAAM,EAAQ,EAAO,QAAQ,KAAM,GAAM,EAAE,WAAa,EAAO,OAAS,GAAc,EAAE,KAAK,EACxF,GAGL,IAAa,EAAO,MAAO,CAAK,CAClC,CACkC,CACpC,CACA,SAAS,IAAa,EAAU,EAAO,CACrC,IAAeA,GAAM,IAAI,qBAAqB,EAAS,EAAE,EACzD,IAAM,EAAY,GAAQ,GAA6B,EAAI,EAAM,SAAS,EACpE,EAAW,GAAQ,CAAQ,EAC3B,EAAkB,GAAc,EAAM,MACtC,EAAgB,IAA4B,EAAM,aAAa,EAC/D,EAAa,GAAc,EAC3B,EAAW,EAAa,GAAY,CAAU,EAAI,IAAK,GACvD,EAAY,GAAe,MAAQ,EACnC,EAAY,EAAY,GAAuB,CAAS,EAAE,KAAO,GAAgB,EAAE,aAAa,EAAE,gBAExG,GAAkB,CAChB,KAFW,GAAe,aAAe,GAAiB,EAAM,MAAM,EAGtE,GAAI,kBAAkB,IACtB,OAAQ,wBACR,WAAY,MACZ,MAAO,EACP,WAAY,EACT,IAAoC,EAAM,UAE1C0B,IAAqB,GACrBC,IAAsB,CACzB,EACA,YACA,QAAS,EAAY,EACrB,WAAY,CACd,CAAC,CACH,CC7LA,IAAM,IAAoB,IACtB,GACA,GACA,GACJ,SAAS,GAAuC,EAAS,CAEvD,GAAW,MAAM,CAAO,EACxB,GAAgB,MAAM,GAAa,CACrC,CACA,SAAS,KAAgB,CACvB,GAAI,CAACN,GAAO,SACV,OAEF,IAAM,EAAoBjB,GAAgB,KAAK,KAAM,KAAK,EACpD,EAAwB,GAAoB,EAAmB,EAAI,EACzE,GAAO,SAAS,iBAAiB,QAAS,EAAuB,EAAK,EACtE,GAAO,SAAS,iBAAiB,WAAY,EAAuB,EAAK,EACzE,CAAC,cAAe,MAAM,EAAE,QAAS,GAAW,CAE1C,IAAM,EAAQwB,GAAa,IAAS,UAC/B,GAAO,iBAAiB,kBAAkB,IAG/C,GAAK,EAAO,mBAAoB,SAAS,EAA0B,CACjE,OAAO,SAAS,EAAM,EAAU,EAAS,CACvC,GAAI,IAAS,SAAW,GAAQ,WAC9B,GAAI,CACF,IAAM,EAAW,KAAK,oCAAsC,KAAK,qCAAuC,CAAC,EACnG,EAAiB,EAAS,GAAQ,EAAS,IAAS,CAAE,SAAU,CAAE,EACxE,GAAI,CAAC,EAAe,QAAS,CAC3B,IAAM,EAAU,GAAoB,CAAiB,EACrD,EAAe,QAAU,EACzB,EAAyB,KAAK,KAAM,EAAM,EAAS,CAAO,CAC5D,CACA,EAAe,UACjB,MAAQ,CACR,CAEF,OAAO,EAAyB,KAAK,KAAM,EAAM,EAAU,CAAO,CACpE,CACF,CAAC,EACD,GACE,EACA,sBACA,SAAS,EAA6B,CACpC,OAAO,SAAS,EAAM,EAAU,EAAS,CACvC,GAAI,IAAS,SAAW,GAAQ,WAC9B,GAAI,CACF,IAAM,EAAW,KAAK,qCAAuC,CAAC,EACxD,EAAiB,EAAS,GAC5B,IACF,EAAe,WACX,EAAe,UAAY,IAC7B,EAA4B,KAAK,KAAM,EAAM,EAAe,QAAS,CAAO,EAC5E,EAAe,QAAU,IAAK,GAC9B,OAAO,EAAS,IAEd,OAAO,KAAK,CAAQ,EAAE,SAAW,GACnC,OAAO,KAAK,oCAGlB,MAAQ,CACR,CAEF,OAAO,EAA4B,KAAK,KAAM,EAAM,EAAU,CAAO,CACvE,CACF,CACF,EACF,CAAC,CACH,CACA,SAAS,IAA6B,EAAO,CAC3C,GAAI,EAAM,OAAS,GACjB,MAAO,GAET,GAAI,CACF,GAAI,CAAC,EAAM,QAAU,EAAM,OAAO,YAAc,GAC9C,MAAO,EAEX,MAAQ,CACR,CACA,MAAO,EACT,CACA,SAAS,IAAmB,EAAW,EAAQ,CAU7C,OATI,IAAc,WAGb,GAAQ,QAGb,EAAI,EAAO,UAAY,SAAW,EAAO,UAAY,YAAc,EAAO,mBAFjE,GAHA,EASX,CACA,SAAS,GAAoB,EAAS,EAAiB,GAAO,CAC5D,MAAQ,IAAU,CAChB,GAAI,CAAC,GAAS,EAAM,gBAClB,OAEF,IAAM,EAASrH,IAAe,CAAK,EACnC,GAAI,IAAmB,EAAM,KAAM,CAAM,EACvC,OAEF,GAAyB,EAAO,kBAAmB,EAAI,EACnD,GAAU,CAAC,EAAO,WACpB,GAAyB,EAAQ,YAAa,GAAM,CAAC,EAEvD,IAAM,EAAO,EAAM,OAAS,WAAa,QAAU,EAAM,KACpD,IAA6B,CAAK,IAErC,EAAQ,CADc,QAAO,OAAM,OAAQ,CACzB,CAAC,EACnB,GAAwB,EAAM,KAC9B,GAA4B,EAAS,EAAO,UAAY,IAAK,IAE/D,aAAa,EAAe,EAC5B,GAAkB8G,GAAO,eAAiB,CACxC,GAA4B,IAAK,GACjC,GAAwB,IAAK,EAC/B,EAAG,GAAiB,CACtB,CACF,CACA,SAAS9G,IAAe,EAAO,CAC7B,GAAI,CACF,OAAO,EAAM,MACf,MAAQ,CACN,OAAO,IACT,CACF,CC/HA,IAAI,GACJ,SAAS,GAAiC,EAAS,CACjD,IAAM,EAAO,UACb,GAAW,EAAM,CAAO,EACxB,GAAgB,EAAM,GAAiB,CACzC,CACA,SAAS,KAAoB,CAW3B,GAVA,GAAO,iBAAiB,eAAkB,CACxC,IAAM,EAAK8G,GAAO,SAAS,KACrB,EAAO,GACb,GAAW,EACP,IAAS,GAIb,GAAgB,UAAW,CADL,OAAM,IACS,CAAC,CACxC,CAAC,EACG,CAAC,IAAgB,EACnB,OAEF,SAAS,EAA2B,EAAyB,CAC3D,OAAO,SAAS,GAAG,EAAM,CACvB,IAAM,EAAM,EAAK,OAAS,EAAI,EAAK,GAAK,IAAK,GAC7C,GAAI,EAAK,CACP,IAAM,EAAO,GACP,EAAK,IAAe,OAAO,CAAG,CAAC,EAErC,GADA,GAAW,EACP,IAAS,EACX,OAAO,EAAwB,MAAM,KAAM,CAAI,EAGjD,GAAgB,UAAW,CADL,OAAM,IACS,CAAC,CACxC,CACA,OAAO,EAAwB,MAAM,KAAM,CAAI,CACjD,CACF,CACA,GAAKA,GAAO,QAAS,YAAa,CAA0B,EAC5D,GAAKA,GAAO,QAAS,eAAgB,CAA0B,CACjE,CACA,SAAS,IAAe,EAAW,CACjC,GAAI,CAEF,OAAO,IADS,IAAI,EAAWA,GAAO,SAAS,MACtC,EAAE,SAAS,CACtB,MAAQ,CACN,OAAO,CACT,CACF,CC7CA,IAAMQ,GAAwB,CAAC,EAC/B,SAAS,GAAwB,EAAM,CACrC,IAAM,EAASA,GAAsB,GACrC,GAAI,EACF,OAAO,EAET,IAAI,EAAOR,GAAO,GAClB,GAAI,GAAiB,CAAI,EACvB,MAAO,IAAsB,GAAQ,EAAK,KAAKA,EAAM,EAEvD,IAAM,EAAWA,GAAO,SACxB,GAAI,GAAY,OAAO,EAAS,eAAkB,WAChD,GAAI,CACF,IAAM,EAAU,EAAS,cAAc,QAAQ,EAC/C,EAAQ,OAAS,GACjB,EAAS,KAAK,YAAY,CAAO,EACjC,IAAM,EAAgB,EAAQ,cAC1B,IAAgB,KAClB,EAAO,EAAc,IAEvB,EAAS,KAAK,YAAY,CAAO,CACnC,OAAS,EAAG,CACV,IAAerB,GAAM,KAAK,uCAAuC,EAAK,4BAA4B,EAAK,IAAK,CAAC,CAC/G,CAKF,OAHK,IAGE,GAAsB,GAAQ,EAAK,KAAKqB,EAAM,EACvD,CACA,SAAS,IAA0B,EAAM,CACvC,GAAsB,GAAQ,IAAK,EACrC,CAIA,SAASS,GAAW,GAAG,EAAM,CAC3B,OAAO,GAAwB,YAAY,EAAE,GAAG,CAAI,CACtD,CCvCA,IAAM,GAAsB,oBAC5B,SAAS,GAA6B,EAAS,CAE7C,GAAW,MAAM,CAAO,EACxB,GAAgB,MAAM,GAAa,CACrC,CACA,SAAS,KAAgB,CACvB,GAAI,CAACT,GAAO,eACV,OAEF,IAAM,EAAW,eAAe,UAChC,EAAS,KAAO,IAAI,MAAM,EAAS,KAAM,CACvC,MAAM,EAAc,EAAgB,EAAiB,CACnD,IAAM,EAAmB,MAAM,EACzB,EAAiB,GAAmB,EAAI,IACxC,EAAS,GAAS,EAAgB,EAAE,EAAI,EAAgB,GAAG,YAAY,EAAI,IAAK,GAChF,EAAM,IAAe,EAAgB,EAAE,EAC7C,GAAI,CAAC,GAAU,CAAC,EACd,OAAO,EAAa,MAAM,EAAgB,CAAe,EAE3D,EAAe,IAAuB,CACpC,SACA,MACA,gBAAiB,CAAC,CACpB,EACI,IAAW,QAAU,EAAI,MAAM,YAAY,IAC7C,EAAe,uBAAyB,IAE1C,IAAM,MAAkC,CACtC,IAAM,EAAU,EAAe,IAC1B,MAGD,EAAe,aAAe,EAAG,CACnC,GAAI,CACF,EAAQ,YAAc,EAAe,MACvC,MAAQ,CACR,CAOA,GAAgB,MAAO,CALrB,aAAc,GAAmB,EAAI,IACrC,iBACA,IAAK,EACL,cAE+B,CAAC,EAClC,EAAe,oBAAoB,mBAAoB,CAAyB,CAClF,CACF,EAqBA,MApBI,uBAAwB,GAAkB,OAAO,EAAe,oBAAuB,WACzF,EAAe,mBAAqB,IAAI,MAAM,EAAe,mBAAoB,CAC/E,MAAM,EAA4B,EAA2B,EAA4B,CAEvF,OADA,EAA0B,EACnB,EAA2B,MAAM,EAA2B,CAA0B,CAC/F,CACF,CAAC,EAED,EAAe,iBAAiB,mBAAoB,CAAyB,EAE/E,EAAe,iBAAmB,IAAI,MAAM,EAAe,iBAAkB,CAC3E,MAAM,EAA0B,EAAyB,EAA0B,CACjF,GAAM,CAAC,EAAQ,GAAS,EAClB,EAAU,EAAwB,IAIxC,OAHI,GAAW,GAAS,CAAM,GAAK,GAAS,CAAK,IAC/C,EAAQ,gBAAgB,EAAO,YAAY,GAAK,GAE3C,EAAyB,MAAM,EAAyB,CAAwB,CACzF,CACF,CAAC,EACM,EAAa,MAAM,EAAgB,CAAe,CAC3D,CACF,CAAC,EACD,EAAS,KAAO,IAAI,MAAM,EAAS,KAAM,CACvC,MAAM,EAAc,EAAa,EAAc,CAC7C,IAAM,EAAgB,EAAY,IAYlC,OAXK,GAGD,EAAa,KAAO,IAAK,KAC3B,EAAc,KAAO,EAAa,IAMpC,GAAgB,MAAO,CAHrB,eAAgB,GAAmB,EAAI,IACvC,IAAK,CAE0B,CAAC,EAC3B,EAAa,MAAM,EAAa,CAAY,GAV1C,EAAa,MAAM,EAAa,CAAY,CAWvD,CACF,CAAC,CACH,CACA,SAAS,IAAe,EAAK,CAC3B,GAAI,GAAS,CAAG,EACd,OAAO,EAET,GAAI,CACF,OAAO,EAAI,SAAS,CACtB,MAAQ,CACR,CAEF,CClGA,IAAM,IAAoC,OAAO,IAAI,6BAA6B,EAClF,SAAS,GAAkB,EAAU,CACnC,OAAO,IAAI,gBAAgB,CAAQ,EAAE,SAAS,CAChD,CACA,SAAS,GAAc,EAAM,EAASrB,GAAO,CAC3C,GAAI,CACF,GAAI,OAAO,GAAS,SAClB,MAAO,CAAC,CAAI,EAEd,GAAI,aAAgB,gBAClB,MAAO,CAAC,EAAK,SAAS,CAAC,EAEzB,GAAI,aAAgB,SAClB,MAAO,CAAC,GAAkB,CAAI,CAAC,EAEjC,GAAI,CAAC,EACH,MAAO,CAAC,IAAK,EAAC,CAElB,OAAS,EAAO,CAEd,OADA,IAAe,EAAO,MAAM,EAAO,2BAA4B,CAAI,EAC5D,CAAC,IAAK,GAAG,kBAAkB,CACpC,CAEA,OADA,IAAe,EAAO,IAAI,6CAA8C,CAAI,EACrE,CAAC,IAAK,GAAG,uBAAuB,CACzC,CACA,SAAS,GAAuB,EAAY,CAAC,EAAG,CAC9C,GAAI,EAAU,QAAU,GAAK,EAAU,IAAM,OAAO,EAAU,IAAO,UAAY,SAAU,EAAU,GACnG,OAAO,EAAU,GAAG,KAEtB,GAAI,EAAU,QAAU,GAAK,EAAU,aAAc,QAAS,CAE5D,IAAM,EADU,EAAU,GACG,KAI7B,OAHI,IAAiB,IAAK,GAG1B,OAFS,CAGX,CAEF,CACA,SAAS,GAAwB,EAAK,CACpC,IAAI,EACJ,GAAI,CACF,EAAU,EAAI,sBAAsB,CACtC,OAAS,EAAO,CAEd,OADA,IAAeA,GAAM,MAAM,EAAO,qCAAsC,CAAG,EACpE,CAAC,CACV,CAIA,OAHK,EAGE,EAAQ,MAAM;CAAM,EAAE,QAAQ,EAAK,IAAS,CACjD,GAAM,CAAC,EAAK,GAAS,EAAK,MAAM,IAAI,EAIpC,OAHI,IACF,EAAI,EAAI,YAAY,GAAK,GAEpB,CACT,EAAG,CAAC,CAAC,EARI,CAAC,CASZ,CC5DA,SAAS/F,IAAU,EAAK,CACtB,GAAI,OAAO,QAAY,IACrB,MAAO,GAET,GAAI,CACF,OAAO,aAAe,OACxB,MAAQ,CACN,MAAO,EACT,CACF,CCNA,IAAM,IAAwC,GAC9C,SAAS,IAAmB,EAAS,EAAc,GAAwB,OAAO,EAAG,CACnF,IAAI,EAAkB,EAClB,EAAe,EACnB,eAAe,EAAY,EAAS,CAClC,IAAM,EAAc,EAAQ,KAAK,OACjC,GAAmB,EACnB,IACA,IAAM,EAAiB,CACrB,KAAM,EAAQ,KACd,OAAQ,OACR,eAAgB,gBAChB,QAAS,EAAQ,QAYjB,UAAW,GAAmB,KAAO,EAAe,GACpD,GAAG,EAAQ,YACb,EACA,GAAI,CACF,IAAM,EAAW,MAAM,EAAY,EAAQ,IAAK,CAAc,EAC9D,MAAO,CACL,WAAY,EAAS,OACrB,QAAS,CACP,uBAAwB,EAAS,QAAQ,IAAI,sBAAsB,EACnE,cAAe,EAAS,QAAQ,IAAI,aAAa,CACnD,CACF,CACF,OAAS,EAAG,CAEV,MADA,IAA0B,OAAO,EAC3B,CACR,QAAU,CACR,GAAmB,EACnB,GACF,CACF,CACA,OAAO,IACL,EACA,EACA,GAAkB,EAAQ,YAAc,GAAqC,CAC/E,CACF,CCpDA,IAAM2F,GAAe,OAAO,iBAAqB,KAAe,iBCI1D,IAAkB,GAElB,IAAiB,GACvB,SAAS,GAAY,EAAU,EAAM,EAAQ,EAAO,CAClD,IAAM,EAAQ,CACZ,WACA,SAAU,IAAS,kBAAmC,EACtD,OAAQ,EAEV,EAOA,OANI,IAAW,IAAK,KAClB,EAAM,OAAS,GAEb,IAAU,IAAK,KACjB,EAAM,MAAQ,GAET,CACT,CACA,IAAM,IAAsB,yCACtB,IAAc,6IACd,IAAkB,gCAClB,IAAqB,0BA8BrB,IAAwB,CAAC,IA7BF,GAAS,CACpC,IAAM,EAAe,EAAK,MAAM,GAAkB,EAClD,GAAI,EACF,MAAO,CACL,SAAU,SAAS,EAAa,GAAG,GACnC,SAAU,EAAa,EACzB,EAEF,IAAM,EAAY,IAAoB,KAAK,CAAI,EAC/C,GAAI,EAAW,CACb,GAAM,EAAG,EAAU,EAAO,GAAO,EACjC,OAAO,GAAY,MAA4B,CAAC,EAAO,CAAC,CAAG,CAC7D,CACA,IAAM,EAAQ,IAAY,KAAK,CAAI,EACnC,GAAI,EAAO,CAET,GADe,EAAM,IAAI,QAAQ,MAAM,IAAM,EACjC,CACV,IAAM,EAAW,IAAgB,KAAK,EAAM,EAAE,EAC1C,IACF,EAAM,GAAK,EAAS,GACpB,EAAM,GAAK,EAAS,GACpB,EAAM,GAAK,EAAS,GAExB,CACA,GAAM,CAAC,EAAM,GAAY,GAA8B,EAAM,QAAwB,EAAM,EAAE,EAC7F,OAAO,GAAY,EAAU,EAAM,EAAM,GAAK,CAAC,EAAM,GAAK,IAAK,GAAG,EAAM,GAAK,CAAC,EAAM,GAAK,IAAK,EAAC,CACjG,CAEF,CACmE,EAC7D,IAAa,uIACb,IAAiB,gDAyCjB,IAAqB,GADM,IAAuB,CAnB1B,IApBf,GAAS,CACtB,IAAM,EAAQ,IAAW,KAAK,CAAI,EAClC,GAAI,EAAO,CAET,GADe,EAAM,IAAM,EAAM,GAAG,QAAQ,SAAS,EAAI,GAC7C,CACV,IAAM,EAAW,IAAe,KAAK,EAAM,EAAE,EACzC,IACF,EAAM,GAAK,EAAM,IAAM,OACvB,EAAM,GAAK,EAAS,GACpB,EAAM,GAAK,EAAS,GACpB,EAAM,GAAK,GAEf,CACA,IAAI,EAAW,EAAM,GACjB,EAAO,EAAM,QAEjB,MADA,CAAC,EAAM,GAAY,GAA8B,EAAM,CAAQ,EACxD,GAAY,EAAU,EAAM,EAAM,GAAK,CAAC,EAAM,GAAK,IAAK,GAAG,EAAM,GAAK,CAAC,EAAM,GAAK,IAAK,EAAC,CACjG,CAEF,CAoBwD,CACe,EACjE,IAAiC,EAAM,IAAa,CACxD,IAAM,EAAoB,EAAK,QAAQ,kBAAkB,IAAM,GACzD,EAAuB,EAAK,QAAQ,sBAAsB,IAAM,GACtE,OAAO,GAAqB,EAAuB,CACjD,EAAK,QAAQ,GAAG,IAAM,GAAqB,IAAhB,EAAK,MAAM,GAAG,EAAE,GAC3C,EAAoB,oBAAoB,IAAa,wBAAwB,GAC/E,EAAI,CAAC,EAAM,CAAQ,CACrB,ECrGM,GAA4B,KAC5BqB,IAAmB,cAmCnB,IAAyB,KAlCG,EAAU,CAAC,IAAM,CACjD,IAAM,EAAW,CACf,QAAS,GACT,IAAK,GACL,MAAO,GACP,QAAS,GACT,OAAQ,GACR,IAAK,GACL,GAAG,CACL,EACA,MAAO,CACL,KAAMA,IACN,MAAM,EAAQ,CACR,EAAS,SACX,IAAiC,IAA6B,CAAM,CAAC,EAEnE,EAAS,KACX,GAAuC,IAAyB,EAAQ,EAAS,GAAG,CAAC,EAEnF,EAAS,KACX,GAA6B,IAAyB,CAAM,CAAC,EAE3D,EAAS,OACX,GAA+B,IAA2B,CAAM,CAAC,EAE/D,EAAS,SACX,GAAiC,IAA6B,CAAM,CAAC,EAEnE,EAAS,QACX,EAAO,GAAG,kBAAmB,IAA4B,CAAM,CAAC,CAEpE,CACF,CACF,EACwE,EACxE,SAAS,IAA4B,EAAQ,CAC3C,OAAO,SAA6B,EAAO,CACrC,GAAU,IAAM,GAGpB,GACE,CACE,SAAU,UAAU,EAAM,OAAS,cAAgB,cAAgB,UACnE,SAAU,EAAM,SAChB,MAAO,EAAM,MACb,QAAS,GAAoB,CAAK,CACpC,EACA,CACE,OACF,CACF,CACF,CACF,CACA,SAAS,IAAyB,EAAQ,EAAK,CAC7C,OAAO,SAA6B,EAAa,CAC/C,GAAI,GAAU,IAAM,EAClB,OAEF,IAAI,EACA,EACA,EAAW,OAAO,GAAQ,SAAW,EAAI,mBAAqB,IAAK,GACnE,EAAkB,OAAO,GAAQ,UAAY,OAAO,EAAI,iBAAoB,SAAW,EAAI,gBAAkB,IAAK,GAClH,GAAmB,EAAkB,KACvC,IAAejB,GAAM,KACnB,yCAAyC,GAA0B,mBAAmB,EAAgB,mCAAmC,GAA0B,UACrK,EACA,EAAkB,IAEhB,OAAO,GAAa,WACtB,EAAW,CAAC,CAAQ,GAEtB,GAAI,CACF,IAAM,EAAQ,EAAY,MACpB,EAAU,IAAS,CAAK,EAAI,EAAM,OAAS,EACjD,EAAS,GAAiB,EAAS,CAAE,WAAU,iBAAgB,CAAC,EAChE,EAAgB,GAAiB,CAAO,CAC1C,MAAQ,CACN,EAAS,WACX,CACA,GAAI,EAAO,SAAW,EACpB,OAEF,IAAM,EAAa,CACjB,SAAU,MAAM,EAAY,OAC5B,QAAS,CACX,EACI,IACF,EAAW,KAAO,CAAE,oBAAqB,CAAc,GAEzD,GAAc,EAAY,CACxB,MAAO,EAAY,MACnB,KAAM,EAAY,KAClB,OAAQ,EAAY,MACtB,CAAC,CACH,CACF,CACA,SAAS,IAA6B,EAAQ,CAC5C,OAAO,SAA4B,EAAa,CAC9C,GAAI,GAAU,IAAM,EAClB,OAEF,IAAM,EAAa,CACjB,SAAU,UACV,KAAM,CACJ,UAAW,EAAY,KACvB,OAAQ,SACV,EACA,MAAO,GAAwB,EAAY,KAAK,EAChD,QAAS,GAAS,EAAY,KAAM,GAAG,CACzC,EACA,GAAI,EAAY,QAAU,SACxB,GAAI,EAAY,KAAK,KAAO,GAC1B,EAAW,QAAU,qBAAqB,GAAS,EAAY,KAAK,MAAM,CAAC,EAAG,GAAG,GAAK,mBACtF,EAAW,KAAK,UAAY,EAAY,KAAK,MAAM,CAAC,OAEpD,OAGJ,GAAc,EAAY,CACxB,MAAO,EAAY,KACnB,MAAO,EAAY,KACrB,CAAC,CACH,CACF,CACA,SAAS,IAAyB,EAAQ,CACxC,OAAO,SAAwB,EAAa,CAC1C,GAAI,GAAU,IAAM,EAClB,OAEF,GAAM,CAAE,iBAAgB,gBAAiB,EACnC,EAAgB,EAAY,IAAI,IACtC,GAAI,CAAC,GAAkB,CAAC,GAAgB,CAAC,EACvC,OAEF,GAAM,CAAE,SAAQ,MAAK,cAAa,QAAS,EACrC,EAAO,CACX,SACA,MACA,aACF,EACM,EAAO,CACX,IAAK,EAAY,IACjB,MAAO,EACP,iBACA,cACF,EACM,EAAa,CACjB,SAAU,MACV,OACA,KAAM,OACN,MAAO,GAAwC,CAAW,CAC5D,EACA,EAAO,KAAK,kCAAmC,EAAY,CAAI,EAC/D,GAAc,EAAY,CAAI,CAChC,CACF,CACA,SAAS,IAA2B,EAAQ,CAC1C,OAAO,SAA0B,EAAa,CAC5C,GAAI,GAAU,IAAM,EAClB,OAEF,GAAM,CAAE,iBAAgB,gBAAiB,EACpC,MAGD,IAAY,UAAU,IAAI,MAAM,YAAY,GAAK,EAAY,UAAU,SAAW,QAGtF,GAAI,EAAY,MAAO,CACrB,IAAM,EAAO,CACX,KAAM,EAAY,MAClB,MAAO,EAAY,KACnB,iBACA,cACF,EACM,EAAa,CACjB,SAAU,QACV,KAAM,EAAY,UAClB,MAAO,QACP,KAAM,MACR,EACA,EAAO,KAAK,kCAAmC,EAAY,CAAI,EAC/D,GAAc,EAAY,CAAI,CAChC,KAAO,CACL,IAAM,EAAW,EAAY,SACvB,EAAO,CACX,GAAG,EAAY,UACf,YAAa,GAAU,MACzB,EACM,EAAO,CACX,MAAO,EAAY,KACnB,WACA,iBACA,cACF,EACM,EAAa,CACjB,SAAU,QACV,OACA,KAAM,OACN,MAAO,GAAwC,EAAK,WAAW,CACjE,EACA,EAAO,KAAK,kCAAmC,EAAY,CAAI,EAC/D,GAAc,EAAY,CAAI,CAChC,CACF,CACF,CACA,SAAS,IAA6B,EAAQ,CAC5C,OAAO,SAA4B,EAAa,CAC9C,GAAI,GAAU,IAAM,EAClB,OAEF,IAAI,EAAO,EAAY,KACnB,EAAK,EAAY,GACf,EAAYgB,GAASK,GAAO,SAAS,IAAI,EAC3C,EAAa,EAAOL,GAAS,CAAI,EAAI,IAAK,GACxC,EAAWA,GAAS,CAAE,EACvB,GAAY,OACf,EAAa,GAEX,EAAU,WAAa,EAAS,UAAY,EAAU,OAAS,EAAS,OAC1E,EAAK,EAAS,UAEZ,EAAU,WAAa,EAAW,UAAY,EAAU,OAAS,EAAW,OAC9E,EAAO,EAAW,UAEpB,GAAc,CACZ,SAAU,aACV,KAAM,CACJ,OACA,IACF,CACF,CAAC,CACH,CACF,CACA,SAAS,IAAS,EAAO,CACvB,MAAO,CAAC,CAAC,GAAS,CAAC,CAAC,EAAM,MAC5B,CChPA,IAAM,IAAuB,0aAA0a,MACrc,GACF,EACMC,IAAmB,mBAoCnB,IAA8B,KAnCG,EAAU,CAAC,IAAM,CACtD,IAAM,EAAW,CACf,eAAgB,GAChB,YAAa,GACb,sBAAuB,GACvB,YAAa,GACb,WAAY,GACZ,4BAA6B,GAC7B,GAAG,CACL,EACA,MAAO,CACL,KAAMA,IAGN,WAAY,CACN,EAAS,YACX,GAAKI,GAAQ,aAAc,EAAiB,EAE1C,EAAS,aACX,GAAKA,GAAQ,cAAe,EAAiB,EAE3C,EAAS,uBACX,GAAKA,GAAQ,wBAAyB,GAAQ,EAE5C,EAAS,gBAAkB,mBAAoBA,IACjD,GAAK,eAAe,UAAW,OAAQU,GAAQ,EAEjD,IAAM,EAAoB,EAAS,YAC/B,IACkB,MAAM,QAAQ,CAAiB,EAAI,EAAoB,KAC/D,QAAS,GAAW,IAAiB,EAAQ,CAAQ,CAAC,CAEtE,CACF,CACF,EACkF,EAClF,SAAS,GAAkB,EAAU,CACnC,OAAO,SAAS,GAAG,EAAM,CACvB,IAAM,EAAmB,EAAK,GAO9B,MANA,GAAK,GAAK,GAAK,EAAkB,CAC/B,UAAW,CACT,QAAS,GACT,KAAM,iCAAiC,GAAgB,CAAQ,GACjE,CACF,CAAC,EACM,EAAS,MAAM,KAAM,CAAI,CAClC,CACF,CACA,SAAS,IAAS,EAAU,CAC1B,OAAO,SAAS,EAAU,CACxB,OAAO,EAAS,MAAM,KAAM,CAC1B,GAAK,EAAU,CACb,UAAW,CACT,KAAM,CACJ,QAAS,GAAgB,CAAQ,CACnC,EACA,QAAS,GACT,KAAM,qDACR,CACF,CAAC,CACH,CAAC,CACH,CACF,CACA,SAASA,IAAS,EAAc,CAC9B,OAAO,SAAS,GAAG,EAAM,CACvB,IAAM,EAAM,KAsBZ,MApBA,CAD6B,SAAU,UAAW,aAAc,oBAC9C,EAAE,QAAS,GAAS,CAChC,KAAQ,GAAO,OAAO,EAAI,IAAU,YACtC,GAAK,EAAK,EAAM,SAAS,EAAU,CACjC,IAAM,EAAc,CAClB,UAAW,CACT,KAAM,CACJ,QAAS,GAAgB,CAAQ,CACnC,EACA,QAAS,GACT,KAAM,qCAAqC,GAC7C,CACF,EACM,EAAmB,GAAoB,CAAQ,EAIrD,OAHI,IACF,EAAY,UAAU,KAAK,QAAU,GAAgB,CAAgB,GAEhE,GAAK,EAAU,CAAW,CACnC,CAAC,CAEL,CAAC,EACM,EAAa,MAAM,KAAM,CAAI,CACtC,CACF,CACA,SAAS,IAAiB,EAAQ,EAAoB,CAEpD,IAAM,EAAQH,GAAa,IAAS,UAC/B,GAAO,iBAAiB,kBAAkB,IAG/C,GAAK,EAAO,mBAAoB,SAAS,EAAU,CACjD,OAAO,SAAS,EAAW,EAAI,EAAS,CACtC,GAAI,CACE,IAAsB,CAAE,IAC1B,EAAG,YAAc,GAAK,EAAG,YAAa,CACpC,UAAW,CACT,KAAM,CACJ,QAAS,GAAgB,CAAE,EAC3B,QACF,EACA,QAAS,GACT,KAAM,2CACR,CACF,CAAC,EAEL,MAAQ,CACR,CAIA,OAHI,EAAmB,6BACrB,IAA2B,KAAM,EAAW,CAAE,EAEzC,EAAS,MAAM,KAAM,CAC1B,EACA,GAAK,EAAI,CACP,UAAW,CACT,KAAM,CACJ,QAAS,GAAgB,CAAE,EAC3B,QACF,EACA,QAAS,GACT,KAAM,gDACR,CACF,CAAC,EACD,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAK,EAAO,sBAAuB,SAAS,EAA6B,CACvE,OAAO,SAAS,EAAW,EAAI,EAAS,CACtC,GAAI,CACF,GAAI,OAAO,UAAU,eAAe,KAAK,EAAI,oBAAoB,EAAG,CAClE,IAAM,EAAuB,EAAG,mBAC5B,GACF,EAA4B,KAAK,KAAM,EAAW,EAAsB,CAAO,CAEnF,CACF,MAAQ,CACR,CACA,OAAO,EAA4B,KAAK,KAAM,EAAW,EAAI,CAAO,CACtE,CACF,CAAC,EACH,CACA,SAAS,IAAsB,EAAK,CAClC,OAAO,OAAO,EAAI,aAAgB,UACpC,CACA,SAAS,IAA2B,EAAQ,EAAW,EAAI,CACrD,GAAU,OAAO,GAAW,UAAY,wBAAyB,GAAU,OAAO,EAAO,qBAAwB,YACnH,EAAO,oBAAoB,EAAW,CAAE,CAE5C,CC5JA,IAAM,IAA4B,IAAmB,EAAU,CAAC,IAAM,CACpE,IAAM,EAAY,EAAQ,WAAa,QACvC,MAAO,CACL,KAAM,iBACN,WAAY,CACV,GAAWP,GAAO,WAAa,OAAa,CAC1C,IAAerB,GAAM,KAAK,qFAAqF,EAC/G,MACF,CACA,GAAa,CAAE,eAAgB,EAAK,CAAC,EACrC,IAAI,EAAqB,GACzB,OAAuB,CACrB,CAEE,IADA,GAAe,EACM,GAEzB,CAAC,EACD,IAAM,EAAiB,GAAkB,EACrC,EAAe,EAAe,QAAQ,EAC1C,EAAe,iBAAkB,GAAU,CACzC,IAAM,EAAe,EAAM,QAAQ,GAC/B,GAAc,KAAO,GAAc,IAAM,GAAc,aAAe,GAAc,cACtF,EAAe,EACX,GACF,GAAe,EAGrB,CAAC,EACG,IAAc,SAChB,IAAkC,CAAE,OAAM,QAAS,CAC7C,IAAS,IACX,GAAa,CAAE,eAAgB,EAAK,CAAC,EACrC,GAAe,EACf,EAAqB,GAEzB,CAAC,CAEL,CACF,CACF,CAAC,ECzCKiB,IAAmB,iBAyBnB,IAA4B,SAvBzB,CACL,KAAMA,IACN,gBAAgB,EAAO,CACrB,IAAM,EAAU,GAAkB,EAC9B,IACF,EAAM,SAAW,CACf,GAAG,EAAM,SACT,QAAS,CAAE,GAAG,EAAS,GAAG,EAAM,UAAU,OAAQ,CACpD,EAEJ,EACA,mBAAmB,EAAM,CACvB,IAAM,EAAU,GAAkB,EAC9B,GACF,GAA0B,EAAM,CAC9B,iBAAkB,EAAQ,OAC1B,mBAAoB,EAAQ,SAC5B,mBAAoB,EAAQ,QAC9B,CAAC,CAEL,CACF,GAE4E,EAC9E,SAAS,IAAoB,CAC3B,GAAI,CACF,IAAM,EAAOI,GAAO,KACpB,GAAI,CAAC,EACH,OAEF,IAAM,EAAU,EAAK,eAAe,EAAE,gBAAgB,EACtD,MAAO,CACL,OAAQ,EAAQ,OAChB,SAAU,EAAQ,SAClB,SAAU,EAAQ,QACpB,CACF,MAAQ,CACN,MACF,CACF,CCvCA,IAAMJ,IAAmB,iBAwBnB,IAA4B,KAvBG,EAAU,CAAC,IAAM,CACpD,IAAM,EAAW,CACf,QAAS,GACT,qBAAsB,GACtB,GAAG,CACL,EACA,MAAO,CACL,KAAMA,IACN,WAAY,CACV,MAAM,gBAAkB,EAC1B,EACA,MAAM,EAAQ,CACR,EAAS,UACX,IAA6B,CAAM,EACnC,GAAiB,SAAS,GAExB,EAAS,uBACX,IAA0C,CAAM,EAChD,GAAiB,sBAAsB,EAE3C,CACF,CACF,EAC8E,EAC9E,SAAS,IAA6B,EAAQ,CAC5C,GAAsC,GAAS,CAC7C,GAAM,CAAE,cAAa,oBAAqBe,GAAW,EACrD,GAAI,GAAU,IAAM,GAAU,GAAoB,EAChD,OAEF,GAAM,CAAE,MAAK,MAAK,OAAM,SAAQ,SAAU,EACpC,EAAQ,IACZ,GAAsB,EAAa,GAAS,EAAK,IAAK,GAAG,EAAkB,EAAK,EAChF,EACA,EACA,CACF,EACA,EAAM,MAAQ,QACd,GAAa,EAAO,CAClB,kBAAmB,EACnB,UAAW,CACT,QAAS,GACT,KAAM,sCACR,CACF,CAAC,CACH,CAAC,CACH,CACA,SAAS,IAA0C,EAAQ,CACzD,GAAmD,GAAM,CACvD,GAAM,CAAE,cAAa,oBAAqBA,GAAW,EACrD,GAAI,GAAU,IAAM,GAAU,GAAoB,EAChD,OAEF,IAAM,EAAQ,IAA4B,CAAC,EACrC,EAAQ,GAAY,CAAK,EAAI,IAAiC,CAAK,EAAI,GAAsB,EAAa,EAAO,IAAK,GAAG,EAAkB,EAAI,EACrJ,EAAM,MAAQ,QACd,GAAa,EAAO,CAClB,kBAAmB,EACnB,UAAW,CACT,QAAS,GACT,KAAM,mDACR,CACF,CAAC,CACH,CAAC,CACH,CACA,SAAS,IAA4B,EAAO,CAC1C,GAAI,GAAY,CAAK,EACnB,OAAO,EAET,GAAI,CACF,GAAI,WAAY,EACd,OAAO,EAAM,OAEf,GAAI,WAAY,GAAS,WAAY,EAAM,OACzC,OAAO,EAAM,OAAO,MAExB,MAAQ,CACR,CACA,OAAO,CACT,CACA,SAAS,IAAiC,EAAQ,CAChD,MAAO,CACL,UAAW,CACT,OAAQ,CACN,CACE,KAAM,qBAEN,MAAO,oDAAoD,OAAO,CAAM,GAC1E,CACF,CACF,CACF,CACF,CACA,SAAS,IAA8B,EAAO,EAAK,EAAQ,EAAO,CAChE,IAAM,EAAI,EAAM,UAAY,EAAM,WAAa,CAAC,EAC1C,EAAK,EAAE,OAAS,EAAE,QAAU,CAAC,EAC7B,EAAM,EAAG,GAAK,EAAG,IAAM,CAAC,EACxB,EAAO,EAAI,WAAa,EAAI,YAAc,CAAC,EAC3C,EAAQ,EAAK,OAAS,EAAK,QAAU,CAAC,EAU5C,OATI,EAAM,SAAW,GACnB,EAAM,KAAK,CACT,QACA,SACA,SAAU,IAAmB,CAAG,GAAK,GAAgB,EACrD,aACA,OAAQ,EACV,CAAC,EAEI,CACT,CACA,SAAS,GAAiB,EAAM,CAC9B,IAAehC,GAAM,IAAI,4BAA4B,GAAM,CAC7D,CACA,SAASgC,IAAa,CAMpB,OALe,GACM,GAAG,WAAW,GAAK,CACtC,gBAAmB,CAAC,EACpB,iBAAkB,EACpB,CAEF,CACA,SAAS,IAAmB,EAAK,CAC3B,MAAC,GAAS,CAAG,GAAK,EAAI,SAAW,GAMrC,OAHI,EAAI,WAAW,OAAO,EACjB,IAAI,GAAoB,EAAK,EAAK,EAAE,GAEtC,CACT,CCnIA,IAAM,IAAyB,QACtB,CACL,KAAM,cACN,gBAAgB,EAAO,CACrB,GAAI,CAACX,GAAO,WAAa,CAACA,GAAO,UAAY,CAACA,GAAO,SACnD,OAEF,IAAM,EAAU,GAAmB,EAC7B,EAAU,CACd,GAAG,EAAQ,QACX,GAAG,EAAM,SAAS,OACpB,EACA,EAAM,QAAU,CACd,GAAG,EACH,GAAG,EAAM,QACT,SACF,CACF,EACA,mBAAmB,EAAM,CACvB,IAAM,EAAS,EAAK,aAAa,IACjC,GAAI,CAACA,GAAO,WAAa,CAACA,GAAO,UAAY,CAACA,GAAO,SACnD,OAEF,IAAM,EAAU,GAAmB,EACnC,GAA0B,EAAM,EAG7BD,IAAW,IAAW,cAA8B,IAAK,GAAnB,EAAQ,IAC/C,iCAAkC,EAAQ,QAAQ,cAClD,8BAA+B,EAAQ,QAAQ,OACjD,CAAC,CACH,CACF,EACD,EClCK,IAAc,QACd,IAAgB,EAChBH,IAAmB,eAoBnB,IAA0B,KAnBG,EAAU,CAAC,IAAM,CAClD,IAAM,EAAQ,EAAQ,OAAS,IACzB,EAAM,EAAQ,KAAO,IAC3B,MAAO,CACL,KAAMA,IACN,gBAAgB,EAAO,EAAM,EAAQ,CAEnC,IAEE,GAHe,EAAO,WAIf,EAAE,YACT,EACA,EACA,EACA,CACF,CACF,CACF,CACF,EAC0E,ECvBpE,IAAsC,qBAC5C,SAAS,IAAwB,EAAO,CACtC,GAAI,OAAO,OAAW,KAAe,IAAU,OAC7C,MAAO,WAET,GAAI,OAAO,SAAa,KAAe,IAAU,SAC/C,MAAO,aAET,GAAIhH,IAAU,CAAK,EAAG,CACpB,IAAM,EAAU,IAAmB,CAAK,EACxC,GAAI,IAAoC,KAAK,CAAO,EAClD,MAAO,iBAAiB,GAAiB,CAAK,EAAE,EAEpD,CAEF,CACA,SAAS,IAAmB,EAAO,CACjC,IAAM,EAAY,OAAO,eAAe,CAAK,EAC7C,OAAO,GAAW,YAAc,EAAU,YAAY,KAAO,gBAC/D,CCjBA,SAAS,KAA2C,CAWlD,OAVI,IAA4B,GAC1B2F,IACF,OAAqB,CACnB,QAAQ,MACN,mJACF,CACF,CAAC,EAEI,IAEF,EACT,CACA,SAAS,KAA8B,CACrC,GAAWyB,GAAO,SAAW,OAC3B,MAAO,GAET,IAAM,EAAUA,GAKhB,GAJI,EAAQ,IAIR,EADoB,EAAQ,QAAa,EAAQ,UAC/B,SAAS,GAC7B,MAAO,GAET,IAAM,EAAO,GAAgB,EAE7B,MAAO,EAD0BA,KAAWA,GAAO,KAAO,qFAAqF,KAAK,CAAI,EAE1J,CClBA,SAAS,IAAuB,EAAU,CACxC,MAAO,CAGL,IAA0B,EAC1B,IAA4B,EAC5B,IAA0B,EAC1B,IAA4B,EAC5B,IAAuB,EACvB,IAA0B,EAC1B,IAAwB,EACxB,IAAkB,EAClB,IAAuB,EACvB,IAA0B,EAC1B,IAA0B,CAC5B,CACF,CACA,SAASlI,IAAK,EAAU,CAAC,EAAG,CAC1B,IAAM,EAA0C,CAAC,EAAQ,2BAA6B,IAAyC,EAC3H,EAAsB,EAAQ,qBAAuB,KAAO,IAAuB,EAAI,EAAQ,oBAC7F,EAAgB,CACpB,GAAG,EACH,QAAS,EAA0C,GAAQ,EAAQ,QACnE,YAAa,IAAkC,EAAQ,aAAe,GAAkB,EACxF,aAAc,IAAuB,CACnC,aAAc,EAAQ,aACtB,qBACF,CAAC,EACD,UAAW,EAAQ,WAAa,GAClC,EAEA,OADA,IAAwB,GAAuB,EACxC,IAAY,IAAe,CAAa,CACjD,CC1CA,IAAM,IAAmB,aAenB,GAAwB,KAdG,EAAU,CAAC,IAAM,CAChD,IAAM,EAAW,CACf,yBAA0B,CAAC,CAAC,IAAK,GAAG,CAAC,EACrC,qBAAsB,CAAC,IAAI,EAC3B,GAAG,CACL,EACA,MAAO,CACL,KAAM,IACN,MAAM,EAAQ,CACZ,IAAW,EAAQ,CAAQ,EAC3B,IAAS,EAAQ,CAAQ,CAC3B,CACF,CACF,EACsE,EACtE,SAAS,IAAsB,EAAS,EAAa,EAAU,EAAa,EAAO,CACjF,GAAI,GAAuB,EAAS,EAAS,OAAQ,EAAS,GAAG,EAAG,CAClE,IAAM,EAAU,IAAY,EAAa,CAAW,EAChD,EAAgB,EAAiB,EAAgB,EAC/C,EAAK,GAA2B,EAOtC,GANI,EAAG,iBAAmB,KACxB,EAAiB8I,GAA6B,GAAqB,EAAQ,OAAO,EAAG,EAAG,cAAc,GAEpG,EAAG,kBAAoB,KACzB,EAAkBA,GAA6B,GAAqB,EAAS,OAAO,EAAG,EAAG,eAAe,GAEvG,EAAG,UAAY,GAAO,CACxB,IAAM,EAAe,EAAQ,QAAQ,IAAI,QAAQ,GAAK,IAAK,GAC3D,GAAI,EAAc,CAChB,IAAM,EAAWC,GAAwB,EAAc,EAAG,OAAO,EAC7D,OAAO,GAAa,WACtB,EAAiB,EAErB,CACA,IAAM,EAAe,EAAS,QAAQ,IAAI,YAAY,GAAK,IAAK,GAChE,GAAI,EAAc,CAChB,IAAM,EAAWA,GAAwB,EAAc,EAAG,OAAO,EAC7D,OAAO,GAAa,WACtB,EAAkB,EAEtB,CACF,CAYA,GAXc,GAAa,CACzB,IAAK,EAAQ,IACb,OAAQ,EAAQ,OAChB,OAAQ,EAAS,OACjB,iBACA,kBACA,iBACA,kBACA,QACA,KAAM,OACR,CACiB,CAAC,CACpB,CACF,CACA,SAAS,IAAoB,EAAS,EAAK,EAAQ,EAAS,EAAO,CACjE,GAAI,GAAuB,EAAS,EAAI,OAAQ,EAAI,WAAW,EAAG,CAChE,IAAI,EAAgB,EAAiB,EAC/B,EAAK,GAA2B,EACtC,GAAI,EAAG,UAAY,GACjB,GAAI,CACF,IAAM,EAAe,EAAI,kBAAkB,YAAY,GAAK,EAAI,kBAAkB,YAAY,GAAK,IAAK,GACxG,GAAI,EAAc,CAChB,IAAM,EAAWA,GAAwB,EAAc,EAAG,OAAO,EAC7D,OAAO,GAAa,WACtB,EAAkB,EAEtB,CACF,MAAQ,CACR,CAEF,GAAI,EAAG,kBAAoB,GACzB,GAAI,CACF,EAAkBD,GAA6B,IAAuB,CAAG,EAAG,EAAG,eAAe,CAChG,MAAQ,CACR,CAEE,EAAG,iBAAmB,KACxB,EAAiBA,GAA6B,EAAS,EAAG,cAAc,GAa1E,GAXc,GAAa,CACzB,IAAK,EAAI,YACT,SACA,OAAQ,EAAI,OACZ,iBAEA,kBACA,kBACA,QACA,KAAM,KACR,CACiB,CAAC,CACpB,CACF,CACA,SAAS,IAA4B,EAAS,CAC5C,GAAI,EAAS,CACX,IAAM,EAAgB,EAAQ,mBAAqB,EAAQ,kBAC3D,GAAI,EACF,OAAO,SAAS,EAAe,EAAE,CAErC,CAEF,CACA,SAAS,GAAqB,EAAS,CACrC,IAAM,EAAS,CAAC,EAIhB,OAHA,EAAQ,SAAS,EAAO,IAAQ,CAC9B,EAAO,GAAO,CAChB,CAAC,EACM,CACT,CACA,SAAS,IAAuB,EAAK,CACnC,IAAM,EAAU,EAAI,sBAAsB,EAI1C,OAHK,EAGE,EAAQ,MAAM;CAAM,EAAE,QAAQ,EAAK,IAAS,CACjD,GAAM,CAAC,EAAK,GAAS,EAAK,MAAM,IAAI,EAIpC,OAHI,GAAO,IACT,EAAI,GAAO,GAEN,CACT,EAAG,CAAC,CAAC,EARI,CAAC,CASZ,CACA,SAAS,IAAyB,EAAsB,EAAQ,CAC9D,OAAO,EAAqB,KAAM,GAC5B,OAAO,GAAuB,SACzB,EAAO,SAAS,CAAkB,EAEpC,EAAmB,KAAK,CAAM,CACtC,CACH,CACA,SAAS,IAAuB,EAA0B,EAAQ,CAChE,OAAO,EAAyB,KAAM,GAChC,OAAO,GAAU,SACZ,IAAU,EAEZ,GAAU,EAAM,IAAM,GAAU,EAAM,EAC9C,CACH,CACA,SAAS,IAAW,EAAQ,EAAS,CAC9B,GAAoB,GAGzB,GAAgC,GAAgB,CAC9C,GAAI,GAAU,IAAM,EAClB,OAEF,GAAM,CAAE,WAAU,OAAM,QAAO,gBAAiB,EAC1C,CAAC,EAAa,GAAe,EAC9B,GAGL,IAAsB,EAAS,EAAa,EAAU,EAAa,GAAS,CAAY,CAC1F,EAAG,EAAK,CACV,CACA,SAAS,IAAS,EAAQ,EAAS,CAC3B,mBAAoB,IAG1B,GAA8B,GAAgB,CAC5C,GAAI,GAAU,IAAM,EAClB,OAEF,GAAM,CAAE,QAAO,gBAAiB,EAC1B,EAAM,EAAY,IAClB,EAAgB,EAAI,IAC1B,GAAI,CAAC,EACH,OAEF,GAAM,CAAE,SAAQ,gBAAiB,GAAY,EAC7C,GAAI,CACF,IAAoB,EAAS,EAAK,EAAQ,EAAS,GAAS,CAAY,CAC1E,OAAS,EAAG,CACV,IAAejC,GAAM,KAAK,0DAA2D,CAAC,CACxF,CACF,CAAC,CACH,CACA,SAAS,GAAuB,EAAS,EAAQ,EAAK,CACpD,OAAO,IAAuB,EAAQ,yBAA0B,CAAM,GAAK,IAAyB,EAAQ,qBAAsB,CAAG,GAAK,CAAC,GAAmB,EAAK,GAAU,CAAC,CAChL,CACA,SAAS,GAAa,EAAM,CAC1B,IAAM,EAAS,GAAU,EACnB,EAAoB,GAAU,EAAK,OAAS,EAAK,iBAAiB,MAAQ,EAAK,MAAM,MAAQ,IAAK,GAClG,EAAQ,GAAqB,EAAS,EAAO,WAAW,EAAE,YAAY,EAAmB,EAAG,CAAC,EAAI,IAAK,GACtG,EAAU,uCAAuC,EAAK,SACtD,EAAQ,CACZ,UACA,UAAW,CACT,OAAQ,CACN,CACE,KAAM,QACN,MAAO,EACP,WAAY,EAAQ,CAAE,OAAQ,CAAM,EAAI,IAAK,EAC/C,CACF,CACF,EACA,QAAS,CACP,IAAK,EAAK,IACV,OAAQ,EAAK,OACb,QAAS,EAAK,eACd,QAAS,EAAK,cAChB,EACA,SAAU,CACR,SAAU,CACR,YAAa,EAAK,OAClB,QAAS,EAAK,gBACd,QAAS,EAAK,gBACd,UAAW,IAA4B,EAAK,eAAe,CAC7D,CACF,CACF,EAKA,OAJA,GAAsB,EAAO,CAC3B,KAAM,oBAAoB,EAAK,OAC/B,QAAS,EACX,CAAC,EACM,CACT,CACA,SAAS,IAAY,EAAa,EAAa,CAO7C,MANI,CAAC,GAAe,aAAuB,SAGvC,aAAuB,SAAW,EAAY,SACzC,EAEF,IAAI,QAAQ,EAAa,CAAW,CAC7C,CACA,SAAS,IAA6B,CACpC,IAAM,EAAS,GAAU,EACzB,GAAI,CAAC,EACH,MAAO,CAAE,QAAS,GAAO,eAAgB,GAAO,gBAAiB,EAAM,EAEzE,IAAM,EAAU,EAAO,WAAW,EAClC,GAAI,EAAQ,gBAAkB,KAAM,CAClC,IAAM,EAAU,EAAQ,EAAQ,eAChC,MAAO,CAAE,QAAS,EAAS,eAAgB,EAAS,gBAAiB,CAAQ,CAC/E,CACA,GAAM,CAAE,UAAS,eAAgB,EAAO,yBAAyB,EACjE,MAAO,CAAE,UAAS,eAAgB,EAAY,QAAS,gBAAiB,EAAY,QAAS,CAC/F,CCjPA,IAAM,GAAS,GACT,GAAqB,sBACrB,IAAoB,eACpB,GAAwB,wBACxB,IAA8B,IAC9B,IAA+B,IAC/B,IAA0B,IAC1B,IAA0B,KAC1B,IAAuB,IACvB,IAAsB,IACtB,IAAkB,EAClB,GAAwB,KACxB,GAAuB,IACvB,IAAuB,IACvB,IAA4B,IAC5B,GAA+B,IAC/B,IAAsB,KACtB,IAA4B,IAC5B,GAAsB,KAExB,IAAY,OAAO,eACnB,KAAmB,EAAK,EAAK,IAAU,KAAO,EAAM,IAAU,EAAK,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,OAAM,CAAC,EAAI,EAAI,GAAO,EACtJ,IAAiB,EAAK,EAAK,IAAU,IAAgB,EAAK,OAAO,GAAQ,SAAsB,EAAX,EAAM,GAAU,CAAK,EACzG,IAA+B,IACjC,EAAU,EAAU,SAAc,GAAK,WACvC,EAAU,EAAU,aAAkB,GAAK,eAC3C,EAAU,EAAU,QAAa,GAAK,UACtC,EAAU,EAAU,KAAU,GAAK,OACnC,EAAU,EAAU,MAAW,GAAK,QACpC,EAAU,EAAU,QAAa,GAAK,UAC/B,IACN,IAAc,CAAC,CAAC,EACnB,SAAS,IAAY,EAAG,CACtB,OAAO,EAAE,WAAa,EAAE,YAC1B,CACA,SAAS,GAAa,EAAG,CAEvB,OADa,GAAG,MACK,aAAe,CACtC,CACA,SAAS,GAAkB,EAAY,CACrC,OAAO,OAAO,UAAU,SAAS,KAAK,CAAU,IAAM,qBACxD,CACA,SAAS,IAAmC,EAAS,CAOnD,OANI,EAAQ,SAAS,yBAAyB,GAAK,CAAC,EAAQ,SAAS,iCAAiC,IACpG,EAAU,EAAQ,QAChB,8BACA,wDACF,GAEK,CACT,CACA,SAAS,IAAsB,EAAM,CACnC,GAAM,CAAE,WAAY,EACpB,GAAI,EAAQ,MAAM,GAAG,EAAE,OAAS,EAAG,OAAO,EAC1C,IAAM,EAAY,CAAC,UAAW,OAAO,KAAK,UAAU,EAAK,IAAI,EAAE,EAAE,EAYjE,OAXI,EAAK,YAAc,GACrB,EAAU,KAAK,OAAO,EACb,EAAK,WACd,EAAU,KAAK,SAAS,EAAK,UAAU,EAAE,EAEvC,EAAK,cACP,EAAU,KAAK,YAAY,EAAK,aAAa,EAAE,EAE7C,EAAK,MAAM,QACb,EAAU,KAAK,EAAK,MAAM,SAAS,EAE9B,EAAU,KAAK,GAAG,EAAI,GAC/B,CACA,SAAS,GAAoB,EAAG,CAC9B,GAAI,CACF,IAAM,EAAQ,EAAE,OAAS,EAAE,SAC3B,OAAO,EAAQ,IACb,MAAM,KAAK,EAAO,EAAa,EAAE,KAAK,EAAE,CAC1C,EAAI,IACN,MAAgB,CACd,OAAO,IACT,CACF,CACA,SAAS,IAAkB,EAAM,CAC/B,IAAI,EAAS,GACb,IAAK,IAAI,EAAK,EAAG,EAAK,EAAK,MAAM,OAAQ,IAAM,CAC7C,IAAM,EAAmB,EAAK,MACxB,EAAY,EAAiB,GAC7B,EAAc,EAAiB,oBAAoB,CAAS,EAClE,GAAU,GAAG,EAAU,GAAG,EAAiB,iBAAiB,CAAS,IAAI,EAAc,cAAgB,GAAG,EAC5G,CACA,MAAO,GAAG,EAAK,aAAa,KAAK,EAAO,GAC1C,CACA,SAAS,GAAc,EAAM,CAC3B,IAAI,EACJ,GAAI,IAAgB,CAAI,EACtB,GAAI,CACF,EAEA,GAAoB,EAAK,UAAU,GACnC,IAAsB,CAAI,CAC5B,MAAgB,CAChB,MACK,GAAI,IAAe,CAAI,EAAG,CAC/B,IAAI,EAAU,EAAK,QACb,EAAsB,EAAK,aAAa,SAAS,GAAG,EACpD,EAAc,OAAO,EAAK,MAAM,KAAW,UAAY,EAAK,MAAM,IAOxE,GANI,IACF,EAAU,IAAkB,CAAI,GAE9B,IACF,EAAU,IAAgB,CAAO,GAE/B,GAAuB,EACzB,OAAO,CAEX,CACA,OAAO,GAAqB,EAAK,OACnC,CACA,SAAS,IAAgB,EAAgB,CAEvC,OAAO,EAAe,QAAQ,uCAAO,QAAQ,CAC/C,CACA,SAAS,IAAgB,EAAM,CAC7B,MAAO,eAAgB,CACzB,CACA,SAAS,IAAe,EAAM,CAC5B,MAAO,iBAAkB,CAC3B,CACA,IAAM,GAAN,KAAa,CACX,aAAc,CACZ,GAAc,KAAM,YAA6B,IAAI,GAAK,EAC1D,GAAc,KAAM,cAA+B,IAAI,OAAS,CAClE,CACA,MAAM,EAAG,CAGP,OAFK,EACM,KAAK,QAAQ,CAAC,GAAG,IACf,GAFE,EAGjB,CACA,QAAQ,EAAI,CACV,OAAO,KAAK,UAAU,IAAI,CAAE,GAAK,IACnC,CACA,QAAS,CACP,OAAO,MAAM,KAAK,KAAK,UAAU,KAAK,CAAC,CACzC,CACA,QAAQ,EAAG,CACT,OAAO,KAAK,YAAY,IAAI,CAAC,GAAK,IACpC,CAGA,kBAAkB,EAAG,CACnB,IAAM,EAAK,KAAK,MAAM,CAAC,EACvB,KAAK,UAAU,OAAO,CAAE,EACpB,EAAE,YACJ,EAAE,WAAW,QACV,GAAc,KAAK,kBAAkB,CAAS,CACjD,CAEJ,CACA,IAAI,EAAI,CACN,OAAO,KAAK,UAAU,IAAI,CAAE,CAC9B,CACA,QAAQ,EAAM,CACZ,OAAO,KAAK,YAAY,IAAI,CAAI,CAClC,CACA,IAAI,EAAG,EAAM,CACX,IAAM,EAAK,EAAK,GAChB,KAAK,UAAU,IAAI,EAAI,CAAC,EACxB,KAAK,YAAY,IAAI,EAAG,CAAI,CAC9B,CACA,QAAQ,EAAI,EAAG,CACb,IAAM,EAAU,KAAK,QAAQ,CAAE,EAC/B,GAAI,EAAS,CACX,IAAM,EAAO,KAAK,YAAY,IAAI,CAAO,EACrC,GAAM,KAAK,YAAY,IAAI,EAAG,CAAI,CACxC,CACA,KAAK,UAAU,IAAI,EAAI,CAAC,CAC1B,CACA,OAAQ,CACN,KAAK,UAA4B,IAAI,IACrC,KAAK,YAA8B,IAAI,OACzC,CACF,EACA,SAAS,KAAe,CACtB,OAAO,IAAI,EACb,CACA,SAAS,GAAgB,CACvB,mBACA,UACA,QACC,CAID,OAHI,IAAY,WACd,EAAU,UAEL,GACL,EAAiB,EAAQ,YAAY,IAAM,GAAQ,EAAiB,IAAS,IAAS,YACtF,IAAY,SAAW,CAAC,GAAQ,EAAiB,KAErD,CACA,SAAS,GAAe,CACtB,WACA,UACA,QACA,eACC,CACD,IAAI,EAAO,GAAS,GAOpB,OANK,GAGD,IACF,EAAO,EAAY,EAAM,CAAO,GAE3B,IAAI,OAAO,EAAK,MAAM,GALpB,CAMX,CACA,SAAS,GAAY,EAAK,CACxB,OAAO,EAAI,YAAY,CACzB,CACA,SAAS,GAAY,EAAK,CACxB,OAAO,EAAI,YAAY,CACzB,CACA,IAAM,GAA0B,qBAChC,SAAS,IAAgB,EAAQ,CAC/B,IAAM,EAAM,EAAO,WAAW,IAAI,EAClC,GAAI,CAAC,EAAK,MAAO,GAEjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,MAAO,GAAK,GACrC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,GAAW,CACjD,IAAM,EAAe,EAAI,aACnB,EAAuB,MAA2B,EAAe,EAAa,IAA2B,EAW/G,GAAI,IAVoB,YAEtB,EAAqB,KACnB,EACA,EACA,EACA,KAAK,IAAI,GAAW,EAAO,MAAQ,CAAC,EACpC,KAAK,IAAI,GAAW,EAAO,OAAS,CAAC,CACvC,EAAE,KAAK,MAEK,EAAE,KAAM,GAAU,IAAU,CAAC,EAAG,MAAO,EACvD,CAEF,MAAO,EACT,CACA,SAAS,GAAa,EAAS,CAC7B,IAAM,EAAO,EAAQ,KACrB,OAAO,EAAQ,aAAa,qBAAqB,EAAI,WAAa,EAEhE,GAAY,CAAI,EACd,IACN,CACA,SAAS,GAAc,EAAI,EAAS,EAAM,CAIxC,OAHI,IAAY,UAAY,IAAS,SAAW,IAAS,YAChD,EAAG,aAAa,OAAO,GAAK,GAE9B,EAAG,KACZ,CACA,SAAS,GAAqB,EAAM,EAAS,CAC3C,IAAI,EACJ,GAAI,CACF,EAAM,IAAI,IAAI,EAAM,GAAW,OAAO,SAAS,IAAI,CACrD,MAAc,CACZ,OAAO,IACT,CAGA,OADc,EAAI,SAAS,MAAM,qBACtB,IAAI,IAAM,IACvB,CACA,IAAM,GAA0B,CAAC,EACjC,SAAS,GAAoB,EAAM,CACjC,IAAM,EAAS,GAAwB,GACvC,GAAI,EACF,OAAO,EAET,IAAM,EAAY,OAAO,SACrB,EAAO,OAAO,GAClB,GAAI,GAAa,OAAO,EAAU,eAAkB,WAClD,GAAI,CACF,IAAM,EAAU,EAAU,cAAc,QAAQ,EAChD,EAAQ,OAAS,GACjB,EAAU,KAAK,YAAY,CAAO,EAClC,IAAM,EAAgB,EAAQ,cAC1B,GAAiB,EAAc,KACjC,EACA,EAAc,IAEhB,EAAU,KAAK,YAAY,CAAO,CACpC,MAAY,CACZ,CAEF,MAAO,IAAwB,GAAQ,EAAK,KAC1C,MACF,CACF,CACA,SAAS,GAAa,GAAG,EAAM,CAC7B,OAAO,GAAoB,YAAY,EAAE,GAAG,CAAI,CAClD,CACA,SAAS,GAAe,GAAG,EAAM,CAC/B,OAAO,GAAoB,cAAc,EAAE,GAAG,CAAI,CACpD,CACA,SAAS,GAA2B,EAAQ,CAC1C,GAAI,CACF,OAAO,EAAO,eAChB,MAAQ,CACR,CACF,CACA,SAAS,IAAyB,EAAQ,CACxC,GAAI,CACF,OAAO,EAAO,aAChB,MAAQ,CACR,CACF,CACA,IAAI,IAAM,EACJ,IAAmB,OAAO,cAAc,EACxC,GAAe,GACrB,SAAS,IAAQ,CACf,MAAO,MACT,CACA,SAAS,IAAgB,EAAS,CAChC,GAAI,aAAmB,gBACrB,MAAO,OAET,IAAM,EAAmB,GAAY,EAAQ,OAAO,EAIpD,OAHI,IAAa,KAAK,CAAgB,EAC7B,MAEF,CACT,CACA,SAAS,IAAc,EAAK,CAC1B,IAAI,EAAS,GAOb,MANA,CAGE,EAHE,EAAI,QAAQ,IAAI,EAAI,GACb,EAAI,MAAM,GAAG,EAAE,MAAM,EAAG,CAAC,EAAE,KAAK,GAAG,EAEnC,EAAI,MAAM,GAAG,EAAE,GAE1B,EAAS,EAAO,MAAM,GAAG,EAAE,GACpB,CACT,CACA,IAAI,GACA,GACE,IAAiB,6CACjB,IAAqB,sBACrB,IAAgB,YAChB,IAAW,wBACjB,SAAS,IAAmC,EAAS,EAAmB,CACtE,GAAI,CAAC,GAAW,EAAkB,OAAS,EACzC,OAAO,EAET,GAAI,CACF,IAAM,EAAa,EAAQ,MAAM,GAAG,EAC9B,EAAqB,CAAC,EAC5B,IAAK,IAAI,KAAY,EAAY,CAE/B,GADA,EAAW,EAAS,KAAK,EACrB,CAAC,EAAU,SACf,IAAM,EAAa,EAAS,QAAQ,GAAG,EACvC,GAAI,IAAe,GAAI,CACrB,EAAmB,KAAK,CAAQ,EAChC,QACF,CACA,IAAM,EAAe,EAAS,MAAM,EAAG,CAAU,EAAE,KAAK,EACnD,EAAkB,IAAI,CAAY,GACrC,EAAmB,KAAK,CAAQ,CAEpC,CACA,OAAO,EAAmB,KAAK,IAAI,GAAK,EAAmB,OAAS,GAAK,EAAQ,SAAS,GAAG,EAAI,IAAM,GACzG,OAAS,EAAO,CAEd,OADA,QAAQ,KAAK,kCAAmC,CAAK,EAC9C,CACT,CACF,CACA,SAAS,GAAqB,EAAS,EAAM,CAC3C,OAAQ,GAAW,IAAI,QACrB,KACC,EAAQ,EAAQ,EAAO,EAAQ,EAAO,IAAU,CAC/C,IAAM,EAAW,GAAS,GAAS,EAC7B,EAAa,GAAU,GAAU,GACvC,GAAI,CAAC,EACH,OAAO,EAKT,GAHI,IAAmB,KAAK,CAAQ,GAAK,IAAc,KAAK,CAAQ,GAGhE,IAAS,KAAK,CAAQ,EACxB,MAAO,OAAO,IAAa,IAAW,EAAW,GAEnD,GAAI,EAAS,KAAO,IAClB,MAAO,OAAO,IAAa,IAAc,CAAI,EAAI,IAAW,EAAW,GAEzE,IAAM,EAAQ,EAAK,MAAM,GAAG,EACtB,EAAQ,EAAS,MAAM,GAAG,EAChC,EAAM,IAAI,EACV,IAAK,IAAM,KAAQ,EACjB,GAAI,IAAS,IACX,cACS,IAAS,KAClB,EAAM,IAAI,EAEV,EAAM,KAAK,CAAI,EAGnB,MAAO,OAAO,IAAa,EAAM,KAAK,GAAG,IAAI,EAAW,EAC1D,CACF,CACF,CACA,IAAM,IAAoB,qBACpB,IAA0B,qBAChC,SAAS,IAAwB,EAAK,EAAgB,CACpD,GAAI,EAAe,KAAK,IAAM,GAC5B,OAAO,EAET,IAAI,EAAM,EACV,SAAS,EAAkB,EAAO,CAChC,IAAI,EACE,EAAQ,EAAM,KAAK,EAAe,UAAU,CAAG,CAAC,EAMtD,OALI,GACF,EAAS,EAAM,GACf,GAAO,EAAO,OACP,GAEF,EACT,CACA,IAAM,EAAS,CAAC,EAChB,KACE,EAAkB,GAAuB,EACrC,KAAO,EAAe,SAFf,CAKX,IAAI,EAAM,EAAkB,GAAiB,EAC7C,GAAI,EAAI,MAAM,EAAE,IAAM,IACpB,EAAM,GAAc,EAAK,EAAI,UAAU,EAAG,EAAI,OAAS,CAAC,CAAC,EACzD,EAAO,KAAK,CAAG,MACV,CACL,IAAI,EAAiB,GACrB,EAAM,GAAc,EAAK,CAAG,EAC5B,IAAI,EAAW,GACf,OAAa,CACX,IAAM,EAAI,EAAe,OAAO,CAAG,EACnC,GAAI,IAAM,GAAI,CACZ,EAAO,MAAM,EAAM,GAAgB,KAAK,CAAC,EACzC,KACF,MAAO,GAAK,EASN,IAAM,MACR,EAAW,YATT,IAAM,IAAK,CACb,GAAO,EACP,EAAO,MAAM,EAAM,GAAgB,KAAK,CAAC,EACzC,KACF,MAAW,IAAM,MACf,EAAW,IAOf,GAAkB,EAClB,GAAO,CACT,CACF,CACF,CACA,OAAO,EAAO,KAAK,IAAI,CACzB,CACA,IAAM,GAAiC,IAAI,QAC3C,SAAS,GAAc,EAAK,EAAgB,CAI1C,MAHI,CAAC,GAAkB,EAAe,KAAK,IAAM,GACxC,EAEF,GAAQ,EAAK,CAAc,CACpC,CACA,SAAS,IAAa,EAAI,CACxB,MAAO,GAAQ,EAAG,UAAY,OAAS,EAAG,gBAC5C,CACA,SAAS,GAAQ,EAAK,EAAY,CAChC,IAAI,EAAI,GAAe,IAAI,CAAG,EAK9B,GAJK,IACH,EAAI,EAAI,cAAc,GAAG,EACzB,GAAe,IAAI,EAAK,CAAC,GAEvB,CAAC,EACH,EAAa,QACR,GAAI,EAAW,WAAW,OAAO,GAAK,EAAW,WAAW,OAAO,EACxE,OAAO,EAGT,OADA,EAAE,aAAa,OAAQ,CAAU,EAC1B,EAAE,IACX,CACA,SAAS,GAAmB,EAAK,EAAS,EAAM,EAAO,EAAS,EAAiB,EAAqB,CACpG,GAAI,CAAC,EACH,OAAO,EAMF,GAJH,IAAS,OAAS,IAAS,QAAU,EAAE,IAAY,OAAS,EAAM,KAAO,MAElE,IAAS,cAAgB,EAAM,KAAO,KAEtC,IAAS,eAAiB,IAAY,SAAW,IAAY,MAAQ,IAAY,MAC1F,OAAO,GAAc,EAAK,CAAK,EAC1B,GAAI,IAAS,SAClB,OAAO,IAAwB,EAAK,CAAK,EACpC,GAAI,IAAS,QAAS,CAC3B,IAAI,EAAiB,GAAqB,EAAO,GAAQ,CAAG,CAAC,EAO7D,OANI,GAAuB,EAAoB,KAAO,IACpD,EAAiB,IACf,EACA,CACF,GAEK,CACT,MAAO,GAAI,IAAY,UAAY,IAAS,OAC1C,OAAO,GAAc,EAAK,CAAK,EAKjC,OAHI,OAAO,GAAoB,WACtB,EAAgB,EAAM,EAAO,CAAO,EAEtC,CACT,CACA,SAAS,GAAgB,EAAS,EAAM,EAAQ,CAC9C,OAAQ,IAAY,SAAW,IAAY,UAAY,IAAS,UAClE,CACA,SAAS,IAAkB,EAAS,EAAY,EAAe,EAAiB,CAC9E,GAAI,CACF,GAAI,GAAmB,EAAQ,QAAQ,CAAe,EACpD,MAAO,GAET,GAAI,OAAO,GAAe,aACpB,EAAQ,UAAU,SAAS,CAAU,EACvC,MAAO,QAGT,IAAK,IAAI,EAAS,EAAQ,UAAU,OAAQ,KAAY,CACtD,IAAM,EAAY,EAAQ,UAAU,GACpC,GAAI,EAAW,KAAK,CAAS,EAC3B,MAAO,EAEX,CAEF,GAAI,EACF,OAAO,EAAQ,QAAQ,CAAa,CAExC,MAAY,CACZ,CACA,MAAO,EACT,CACA,SAAS,IAAyB,EAAI,EAAO,CAC3C,IAAK,IAAI,EAAS,EAAG,UAAU,OAAQ,KAAY,CACjD,IAAM,EAAY,EAAG,UAAU,GAC/B,GAAI,EAAM,KAAK,CAAS,EACtB,MAAO,EAEX,CACA,MAAO,EACT,CACA,SAAS,GAAgB,EAAM,EAAgB,EAAQ,IAAU,EAAW,EAAG,CAK7E,MAJI,CAAC,GACD,EAAK,WAAa,EAAK,cACvB,EAAW,EAAc,GACzB,EAAe,CAAI,EAAU,EAC1B,GAAgB,EAAK,WAAY,EAAgB,EAAO,EAAW,CAAC,CAC7E,CACA,SAAS,GAAqB,EAAW,EAAU,CACjD,MAAQ,IAAS,CACf,IAAM,EAAK,EACX,GAAI,IAAO,KAAM,MAAO,GACxB,GAAI,CACF,GAAI,MACE,OAAO,GAAc,aACnB,EAAG,QAAQ,IAAI,GAAW,EAAG,MAAO,QACnC,GAAI,IAAyB,EAAI,CAAS,EAC/C,MAAO,GAIX,MADA,GAAI,GAAY,EAAG,QAAQ,CAAQ,EAErC,MAAQ,CACN,MAAO,EACT,CACF,CACF,CACA,SAAS,GAAgB,EAAM,EAAe,EAAkB,EAAiB,EAAoB,EAAa,CAChH,GAAI,CACF,IAAM,EAAK,EAAK,WAAa,EAAK,aAAe,EAAO,EAAK,cAC7D,GAAI,IAAO,KAAM,MAAO,GACxB,GAAI,EAAG,UAAY,QAAS,CAC1B,IAAM,EAAe,EAAG,aAAa,cAAc,EAUnD,GAAI,CARF,mBACA,eACA,YACA,SACA,eACA,cACA,QAE6B,EAAE,SAAS,CAAY,EACpD,MAAO,EAEX,CACA,IAAI,EAAe,GACf,EAAiB,GACrB,GAAI,EAAa,CAKf,GAJA,EAAiB,GACf,EACA,GAAqB,EAAiB,CAAkB,CAC1D,EACI,EAAiB,EACnB,MAAO,GAET,EAAe,GACb,EACA,GAAqB,EAAe,CAAgB,EACpD,GAAkB,EAAI,EAAiB,GACzC,CACF,KAAO,CAKL,GAJA,EAAe,GACb,EACA,GAAqB,EAAe,CAAgB,CACtD,EACI,EAAe,EACjB,MAAO,GAET,EAAiB,GACf,EACA,GAAqB,EAAiB,CAAkB,EACxD,GAAgB,EAAI,EAAe,GACrC,CACF,CACA,OAAO,GAAgB,EAAI,GAAkB,EAAI,GAAgB,EAAiB,GAAO,GAAkB,EAAI,GAAQ,CAAC,CAAC,CAC3H,MAAY,CACZ,CACA,MAAO,CAAC,CAAC,CACX,CACA,SAAS,IAAiB,EAAU,EAAU,EAAmB,CAC/D,IAAM,EAAM,IAAyB,CAAQ,EAC7C,GAAI,CAAC,EACH,OAEF,IAAI,EAAQ,GACR,EACJ,GAAI,CACF,EAAa,EAAI,SAAS,UAC5B,MAAgB,CACd,MACF,CACA,GAAI,IAAe,WAAY,CAC7B,IAAM,EAAQ,OAAmB,CAC/B,CAEE,IADA,EAAS,EACD,GAEZ,EAAG,CAAiB,EACpB,EAAS,iBAAiB,WAAc,CACtC,GAAe,CAAK,EACpB,EAAQ,GACR,EAAS,CACX,CAAC,EACD,MACF,CACA,IAAM,EAAW,cACjB,GAAI,EAAI,SAAS,OAAS,GAAY,EAAS,MAAQ,GAAY,EAAS,MAAQ,GAElF,OADA,GAAa,EAAU,CAAC,EACjB,EAAS,iBAAiB,OAAQ,CAAQ,EAEnD,EAAS,iBAAiB,OAAQ,CAAQ,CAC5C,CACA,SAAS,IAAqB,EAAM,EAAU,EAAuB,CACnE,IAAI,EAAQ,GACR,EACJ,GAAI,CACF,EAAmB,EAAK,KAC1B,MAAgB,CACd,EAAmB,IACrB,CACA,GAAI,EAAkB,OACtB,IAAM,EAAQ,OAAmB,CAC/B,CAEE,IADA,EAAS,EACD,GAEZ,EAAG,CAAqB,EACxB,EAAK,iBAAiB,WAAc,CAClC,GAAe,CAAK,EACpB,EAAQ,GACR,EAAS,CACX,CAAC,CACH,CACA,SAAS,IAAc,EAAG,EAAS,CACjC,GAAM,CACJ,MACA,SACA,aACA,gBACA,kBACA,cACA,kBACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBAAmB,CAAC,EACpB,aACA,cACA,iBAAiB,CAAC,EAClB,eACA,eACA,kBACA,oBAAoB,GACpB,uBACE,EACE,EAAS,IAAU,EAAK,CAAM,EACpC,OAAQ,EAAE,SAAV,CACE,KAAK,EAAE,cASH,OARE,EAAE,aAAe,aAQZ,CACL,KAAM,GAAW,SACjB,WAAY,CAAC,CACf,EAVO,CACL,KAAM,GAAW,SACjB,WAAY,CAAC,EACb,WAAY,EAAE,UAEhB,EAOJ,KAAK,EAAE,mBACL,MAAO,CACL,KAAM,GAAW,aACjB,KAAM,EAAE,KACR,SAAU,EAAE,SACZ,SAAU,EAAE,SACZ,QACF,EACF,KAAK,EAAE,aACL,OAAO,IAAqB,EAAG,CAC7B,MACA,aACA,gBACA,kBACA,mBACA,kBACA,mBACA,cACA,iBACA,eACA,eACA,kBACA,oBACA,SACA,gBACA,kBACA,mBACA,qBACA,qBACF,CAAC,EACH,KAAK,EAAE,UACL,OAAO,IAAkB,EAAG,CAC1B,MACA,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,cACA,QACF,CAAC,EACH,KAAK,EAAE,mBACL,MAAO,CACL,KAAM,GAAW,MACjB,YAAa,GACb,QACF,EACF,KAAK,EAAE,aACL,MAAO,CACL,KAAM,GAAW,QACjB,YAAa,EAAE,aAAe,GAC9B,QACF,EACF,QACE,MAAO,EACX,CACF,CACA,SAAS,IAAU,EAAK,EAAQ,CAC9B,GAAI,CAAC,EAAO,QAAQ,CAAG,EAAG,OAC1B,IAAM,EAAQ,EAAO,MAAM,CAAG,EAC9B,OAAO,IAAU,EAAI,IAAK,GAAI,CAChC,CACA,SAAS,IAAkB,EAAG,EAAS,CACrC,GAAM,CACJ,cACA,gBACA,kBACA,mBACA,qBACA,aACA,mBACA,cACA,UACE,EACE,EAAgB,EAAE,YAAc,EAAE,WAAW,QAC/C,EAAc,EAAE,YACd,EAAU,IAAkB,QAAU,GAAO,IAAK,GAClD,EAAW,IAAkB,SAAW,GAAO,IAAK,GACpD,EAAa,IAAkB,WAAa,GAAO,IAAK,GAC9D,GAAI,GAAW,EAAa,CAC1B,GAAI,CACE,EAAE,aAAe,EAAE,iBACZ,EAAE,WAAW,OAAO,WAC7B,EAAc,GACZ,EAAE,WAAW,KACf,EAEJ,OAAS,EAAK,CACZ,QAAQ,KACN,wDAAwD,IACxD,CACF,CACF,CACA,EAAc,GAAqB,EAAa,GAAQ,EAAQ,GAAG,CAAC,CACtE,CACI,IACF,EAAc,sBAEhB,IAAM,EAAY,GAChB,EACA,EACA,EACA,EACA,EACA,CACF,EA2BA,MA1BI,CAAC,GAAW,CAAC,GAAY,CAAC,GAAc,GAAe,IACzD,EAAc,EAAa,EAAW,EAAa,EAAE,aAAa,EAAI,EAAY,QAAQ,QAAS,GAAG,GAEpG,GAAc,IAAgB,EAAiB,UAAY,KAC7D,EAAc,EAAc,EAAY,EAAa,EAAE,UAAU,EAAI,EAAY,QAAQ,QAAS,GAAG,GAEnG,IAAkB,UAAY,IAMhC,EAAc,GAAe,CAC3B,SAAU,GACR,EACA,EACA,EACA,EACA,EAXkB,GAAgB,CACpC,KAAM,KACN,QAAS,EACT,kBACF,CAQgB,CACd,EACA,QAAS,EACT,MAAO,EACP,aACF,CAAC,GAEI,CACL,KAAM,GAAW,KACjB,YAAa,GAAe,GAC5B,UACA,QACF,CACF,CACA,SAAS,IAAqB,EAAG,EAAS,CACxC,GAAM,CACJ,MACA,aACA,gBACA,kBACA,mBACA,mBAAmB,CAAC,EACpB,kBACA,cACA,iBAAiB,CAAC,EAClB,eACA,eACA,kBACA,oBAAoB,GACpB,SACA,gBACA,kBACA,mBACA,qBACA,uBACE,EACE,EAAY,IAChB,EACA,EACA,EACA,CACF,EACM,EAAU,IAAgB,CAAC,EAC7B,EAAc,CAAC,EACb,EAAM,EAAE,WAAW,OACzB,IAAK,IAAI,EAAK,EAAG,EAAK,EAAK,IAAM,CAC/B,IAAM,EAAO,EAAE,WAAW,GACtB,EAAK,MAAQ,CAAC,GAAgB,EAAS,EAAK,KAAM,EAAK,KAAK,IAC9D,EAAY,EAAK,MAAQ,GACvB,EACA,EACA,GAAY,EAAK,IAAI,EACrB,EAAK,MACL,EACA,EACA,CACF,EAEJ,CACA,GAAI,IAAY,QAAU,EAAkB,CAC1C,IAAM,EAAa,MAAM,KAAK,EAAI,WAAW,EAAE,KAAM,GAC5C,EAAE,OAAS,EAAE,IACrB,EACG,EAAU,KACV,IACF,EAAU,GAAoB,CAAU,GAEtC,IACF,EAAY,IAAM,KAClB,EAAY,KAAO,KACnB,EAAY,YAAc,KAC1B,EAAY,SAAW,GAAqB,EAAS,EAAW,IAAI,EAExE,CACA,GAAI,IAAY,SAAW,EAAE,OAC7B,EAAE,EAAE,WAAa,EAAE,aAAe,IAAI,KAAK,EAAE,OAAQ,CACnD,IAAM,EAAU,GACd,EAAE,KACJ,EACI,IACF,EAAY,SAAW,GAAqB,EAAS,GAAQ,CAAG,CAAC,EAErE,CACA,GAAI,IAAY,SAAW,IAAY,YAAc,IAAY,UAAY,IAAY,SAAU,CACjG,IAAM,EAAK,EACL,EAAO,GAAa,CAAE,EACtB,EAAQ,GAAc,EAAI,GAAY,CAAO,EAAG,CAAI,EACpD,EAAU,EAAG,QACnB,GAAI,IAAS,UAAY,IAAS,UAAY,EAAO,CACnD,IAAM,EAAY,GAChB,EACA,EACA,EACA,EACA,EACA,GAAgB,CACd,OACA,QAAS,GAAY,CAAO,EAC5B,kBACF,CAAC,CACH,EACA,EAAY,MAAQ,GAAe,CACjC,SAAU,EACV,QAAS,EACT,QACA,aACF,CAAC,CACH,CACI,IACF,EAAY,QAAU,EAE1B,CAQA,GAPI,IAAY,WACV,EAAE,UAAY,CAAC,EAAiB,OAClC,EAAY,SAAW,GAEvB,OAAO,EAAY,UAGnB,IAAY,UAAY,MACtB,EAAE,YAAc,KACb,IAAgB,CAAC,IACpB,EAAY,WAAa,EAAE,UACzB,EAAe,KACf,EAAe,OACjB,QAEG,GAAI,EAAE,cAAe,GAAI,CAC9B,IAAM,EAAgB,EAAE,UACtB,EAAe,KACf,EAAe,OACjB,EACM,EAAc,EAAI,cAAc,QAAQ,EAC9C,EAAY,MAAQ,EAAE,MACtB,EAAY,OAAS,EAAE,OAKnB,IAJuB,EAAY,UACrC,EAAe,KACf,EAAe,OAEsB,IACrC,EAAY,WAAa,EAE7B,EAEF,GAAI,IAAY,OAAS,EAAc,CAChC,KACH,GAAgB,EAAI,cAAc,QAAQ,EAC1C,GAAY,GAAc,WAAW,IAAI,GAE3C,IAAM,EAAQ,EACR,EAAW,EAAM,YAAc,EAAM,aAAa,KAAK,GAAK,gBAC5D,EAAmB,EAAM,YACzB,MAA0B,CAC9B,EAAM,oBAAoB,OAAQ,CAAiB,EACnD,GAAI,CACF,GAAc,MAAQ,EAAM,aAC5B,GAAc,OAAS,EAAM,cAC7B,GAAU,UAAU,EAAO,EAAG,CAAC,EAC/B,EAAY,WAAa,GAAc,UACrC,EAAe,KACf,EAAe,OACjB,CACF,OAAS,EAAK,CACZ,GAAI,EAAM,cAAgB,YAAa,CACrC,EAAM,YAAc,YAChB,EAAM,UAAY,EAAM,eAAiB,EAC3C,EAAkB,EACf,EAAM,iBAAiB,OAAQ,CAAiB,EACrD,MACF,MACE,QAAQ,KACN,yBAAyB,EAAS,WAAW,GAC/C,CAEJ,CACI,EAAM,cAAgB,cACxB,EAAmB,EAAY,YAAc,EAAmB,EAAM,gBAAgB,aAAa,EAEvG,EACI,EAAM,UAAY,EAAM,eAAiB,EAAG,EAAkB,EAC7D,EAAM,iBAAiB,OAAQ,CAAiB,CACvD,CAaA,IAZI,IAAY,SAAW,IAAY,WACrC,EAAY,cAAgB,EAAE,OAAS,SAAW,SAClD,EAAY,oBAAsB,EAAE,aAEjC,IACC,EAAE,aACJ,EAAY,cAAgB,EAAE,YAE5B,EAAE,YACJ,EAAY,aAAe,EAAE,YAG7B,EAAW,CACb,GAAM,CAAE,QAAO,UAAW,EAAE,sBAAsB,EAClD,EAAc,CACZ,MAAO,EAAY,MACnB,SAAU,GAAG,EAAM,IACnB,UAAW,GAAG,EAAO,GACvB,CACF,CACI,IAAY,UAAY,CAAC,EAAgB,EAAY,GAAG,IACtD,CAAC,GAAa,CAAC,GAA2B,CAAC,IAC7C,EAAY,OAAS,EAAY,KAEnC,OAAO,EAAY,KAErB,IAAI,EACJ,GAAI,CACE,eAAe,IAAI,CAAO,IAAG,EAAkB,GACrD,MAAY,CACZ,CACA,MAAO,CACL,KAAM,GAAW,QACjB,UACA,WAAY,EACZ,WAAY,CAAC,EACb,MAAO,IAAa,CAAC,GAAK,IAAK,GAC/B,YACA,SACA,SAAU,CACZ,CACF,CACA,SAAS,GAAc,EAAW,CAI9B,OAHE,GAAsC,KACjC,GAEA,EAAU,YAAY,CAEjC,CACA,SAAS,IAAgB,EAAI,EAAgB,CA8B3C,MA3BO,GAFH,EAAe,SAAW,EAAG,OAAS,GAAW,SAE1C,EAAG,OAAS,GAAW,UAC5B,EAAe,SAClB,EAAG,UAAY,UAChB,EAAG,UAAY,SAAW,EAAG,WAAW,MAAQ,WAAa,EAAG,WAAW,MAAQ,kBACnF,EAAG,UAAY,QAAU,EAAG,WAAW,MAAQ,YAAc,OAAO,EAAG,WAAW,MAAS,UAAY,GAAqB,EAAG,WAAW,IAAI,IAAM,OAEzI,EAAe,cAAgB,EAAG,UAAY,QAAU,EAAG,WAAW,MAAQ,iBAAmB,EAAG,UAAY,SAAW,GAAc,EAAG,WAAW,IAAI,EAAE,MACtK,mCACF,GAAK,GAAc,EAAG,WAAW,IAAI,IAAM,oBAAsB,GAAc,EAAG,WAAW,GAAG,IAAM,QAAU,GAAc,EAAG,WAAW,GAAG,IAAM,oBAAsB,GAAc,EAAG,WAAW,GAAG,IAAM,mBAErM,EAAG,UAAY,SACpB,EAAe,sBAAwB,GAAc,EAAG,WAAW,IAAI,EAAE,MAAM,wBAAwB,GAEhG,EAAe,iBAAmB,GAAc,EAAG,WAAW,QAAQ,EAAE,MAAM,mBAAmB,GAC5G,GAAc,EAAG,WAAW,IAAI,EAAE,MAAM,gBAAgB,GAAK,GAAc,EAAG,WAAW,IAAI,IAAM,cAExF,EAAe,iBAAmB,GAAc,EAAG,WAAW,IAAI,IAAM,UAAY,GAAc,EAAG,WAAW,IAAI,IAAM,aAAe,GAAc,EAAG,WAAW,IAAI,IAAM,YAE/K,EAAe,mBAAqB,EAAG,WAAW,gBAAkB,IAAK,IAEzE,EAAe,qBAAuB,GAAc,EAAG,WAAW,IAAI,IAAM,UAAY,GAAc,EAAG,WAAW,IAAI,IAAM,aAAe,GAAc,EAAG,WAAW,IAAI,IAAM,aAAe,GAAc,EAAG,WAAW,IAAI,IAAM,aAAe,GAAc,EAAG,WAAW,IAAI,IAAM,UAAY,GAAc,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,GAAK,GAAc,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,IAE5Z,EAAe,uBAAyB,GAAc,EAAG,WAAW,IAAI,IAAM,4BAA8B,GAAc,EAAG,WAAW,IAAI,IAAM,uBAAyB,GAAc,EAAG,WAAW,IAAI,IAAM,cAAgB,GAAc,EAAG,WAAW,IAAI,IAAM,mBAAqB,GAAc,EAAG,WAAW,IAAI,IAAM,aAAe,GAAc,EAAG,WAAW,IAAI,IAAM,gBAAkB,GAAc,EAAG,WAAW,IAAI,IAAM,gCAMhc,CACA,SAAS,GAAoB,EAAG,EAAS,CACvC,GAAM,CACJ,MACA,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,YAAY,GACZ,mBAAmB,GACnB,mBAAmB,CAAC,EACpB,kBACA,aACA,cACA,iBACA,iBAAiB,CAAC,EAClB,eAAe,GACf,eAAe,GACf,cACA,eACA,oBAAoB,IACpB,qBACA,mBACA,wBAAwB,IACxB,sBAAwB,GACxB,oBAAoB,GACpB,wBACE,EACA,CAAE,sBAAqB,IAAS,EAC9B,GAAkB,IAAc,EAAG,CACvC,MACA,SACA,aACA,gBACA,cACA,kBACA,gBACA,kBACA,mBACA,qBACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,eACA,eACA,kBACA,oBACA,sBACF,CAAC,EACD,GAAI,CAAC,GAEH,OADA,QAAQ,KAAK,EAAG,gBAAgB,EACzB,KAET,IAAI,EACJ,CAKE,CALE,EAAO,QAAQ,CAAC,EACb,EAAO,MAAM,CAAC,EACV,IAAgB,GAAiB,CAAc,GAAK,CAAC,IAAsB,GAAgB,OAAS,GAAW,MAAQ,CAAC,GAAgB,SAAW,CAAC,GAAgB,YAAY,KAAK,EAAE,OAC3L,GAEA,GAAM,EAEb,IAAM,GAAkB,OAAO,OAAO,GAAiB,CAAE,IAAG,CAAC,EAE7D,GADA,EAAO,IAAI,EAAG,EAAe,EACzB,IAAO,GACT,OAAO,KAEL,GACF,EAAY,CAAC,EAEf,IAAI,GAAc,CAAC,EACnB,GAAI,GAAgB,OAAS,GAAW,QAAS,CAC/C,KAA6B,CAAC,GAAgB,UAC9C,IAAM,EAAa,EAAE,WACjB,GAAc,GAAkB,CAAU,IAC5C,GAAgB,aAAe,GACnC,CACA,IAAK,GAAgB,OAAS,GAAW,UAAY,GAAgB,OAAS,GAAW,UAAY,GAAa,CAC5G,EAAe,gBAAkB,GAAgB,OAAS,GAAW,SAAW,GAAgB,UAAY,SAC9G,GAAqB,IAEvB,IAAM,EAAgB,CACpB,MACA,SACA,aACA,gBACA,cACA,kBACA,gBACA,kBACA,mBACA,qBACA,YACA,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,sBACA,cACA,eACA,oBACA,qBACA,mBACA,wBACA,kBACA,sBACF,EACM,EAAa,EAAE,WAAa,MAAM,KAAK,EAAE,UAAU,EAAI,CAAC,EAC9D,IAAK,IAAM,KAAU,EAAY,CAC/B,IAAM,EAAsB,GAAoB,EAAQ,CAAa,EACjE,GACF,GAAgB,WAAW,KAAK,CAAmB,CAEvD,CACA,GAAI,IAAY,CAAC,GAAK,EAAE,WACtB,IAAK,IAAM,KAAU,MAAM,KAAK,EAAE,WAAW,UAAU,EAAG,CACxD,IAAM,EAAsB,GAAoB,EAAQ,CAAa,EACjE,IACF,GAAkB,EAAE,UAAU,IAAM,EAAoB,SAAW,IACnE,GAAgB,WAAW,KAAK,CAAmB,EAEvD,CAEJ,CAmDA,GAlDI,EAAE,YAAc,GAAa,EAAE,UAAU,GAAK,GAAkB,EAAE,UAAU,IAC9E,GAAgB,SAAW,IAEzB,GAAgB,OAAS,GAAW,SAAW,GAAgB,UAAY,UAAY,CAAC,GAAgB,WAC1G,IACE,MACM,CACJ,IAAM,EAAY,GAA2B,CAAC,EAC9C,GAAI,GAAa,EAAc,CAC7B,IAAM,EAAuB,GAAoB,EAAW,CAC1D,IAAK,EACL,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,UAAW,GACX,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,sBACA,cACA,eACA,oBACA,mBACA,wBACA,kBACA,sBACF,CAAC,EACG,GACF,EACE,EACA,CACF,CAEJ,CACF,EACA,CACF,EAEE,GAAgB,OAAS,GAAW,SAAW,GAAgB,UAAY,OAAS,CAAC,EAAE,UAAY,GAAgB,UAAW,CAChI,IAAM,EAAQ,EACR,MAA8B,CAClC,GAAI,EAAM,aAAe,CAAC,EAAM,UAAY,EAC1C,GAAI,CACF,IAAM,EAAO,EAAM,sBAAsB,EACrC,EAAK,MAAQ,GAAK,EAAK,OAAS,GAClC,EAAmB,EAAO,GAAiB,CAAI,CAEnD,MAAgB,CAChB,CAEF,EAAM,oBAAoB,OAAQ,CAAqB,CACzD,EACI,EAAM,aACR,EAAM,iBAAiB,OAAQ,CAAqB,CAExD,CAkDA,OAjDI,GAAgB,OAAS,GAAW,SAAW,GAAgB,UAAY,QAAU,OAAO,GAAgB,WAAW,KAAQ,WAAa,GAAgB,WAAW,MAAQ,cAAgB,GAAgB,WAAW,MAAQ,WAAa,OAAO,GAAgB,WAAW,MAAS,UAAY,GAAqB,GAAgB,WAAW,IAAI,IAAM,QAClW,IACE,MACM,CACJ,GAAI,EAAkB,CACpB,IAAM,EAAqB,GAAoB,EAAG,CAChD,MACA,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,UAAW,GACX,mBACA,mBACA,kBACA,aACA,cACA,iBACA,iBACA,eACA,eACA,sBACA,cACA,eACA,oBACA,mBACA,wBACA,kBACA,sBACF,CAAC,EACG,GACF,EACE,EACA,CACF,CAEJ,CACF,EACA,CACF,EAEE,GAAgB,OAAS,GAAW,SACtC,OAAO,GAAgB,UAElB,EACT,CACA,SAAS,IAAS,EAAG,EAAS,CAC5B,GAAM,CACJ,SAAS,IAAI,GACb,aAAa,WACb,gBAAgB,KAChB,kBAAkB,KAClB,cAAc,GACd,gBAAgB,UAChB,kBAAkB,KAClB,mBAAmB,KACnB,qBAAqB,KACrB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,kBACA,aACA,cACA,UAAU,GACV,iBACA,qBACA,cACA,eACA,oBACA,qBACA,mBACA,wBACA,sBAAwB,GACxB,sBAAsC,IAAI,IAAI,CAAC,CAAC,GAC9C,GAAW,CAAC,EAkChB,OAAO,GAAoB,EAAG,CAC5B,IAAK,EACL,SACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,UAAW,GACX,mBACA,iBA9CuB,IAAkB,GAAO,CAChD,MAAO,GACP,KAAM,GACN,iBAAkB,GAClB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,MAAO,GACP,OAAQ,GACR,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,GACL,KAAM,GACN,SAAU,GACV,OAAQ,EACV,EAAI,IAAkB,GAAQ,CAAC,EAAI,EA+BjC,kBACA,aACA,cACA,eAjCqB,IAAY,IAAQ,IAAY,MAErD,CACE,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,qBAAsB,IAAY,MAElC,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,mBAAoB,GACpB,qBAAsB,EACxB,EACE,IAAY,GAAQ,CAAC,EAAI,EAmB3B,iBACA,eACA,eACA,qBACA,cACA,eACA,oBACA,qBACA,mBACA,wBACA,kBACA,kBAAmB,GACnB,qBACF,CAAC,CACH,CACA,SAASmC,GAAG,EAAM,EAAI,EAAS,SAAU,CACvC,IAAM,EAAU,CAAE,QAAS,GAAM,QAAS,EAAK,EAE/C,OADA,EAAO,iBAAiB,EAAM,EAAI,CAAO,MAC5B,EAAO,oBAAoB,EAAM,EAAI,CAAO,CAC3D,CACA,IAAM,GAAiC;;8EACnC,GAAU,CACZ,IAAK,CAAC,EACN,OAAQ,CAEN,OADA,QAAQ,MAAM,EAA8B,EACrC,EACT,EACA,SAAU,CAER,OADA,QAAQ,MAAM,EAA8B,EACrC,IACT,EACA,mBAAoB,CAClB,QAAQ,MAAM,EAA8B,CAC9C,EACA,KAAM,CAEJ,OADA,QAAQ,MAAM,EAA8B,EACrC,EACT,EACA,OAAQ,CACN,QAAQ,MAAM,EAA8B,CAC9C,CACF,EACI,OAAO,OAAW,KAAe,OAAO,OAAS,OAAO,UAC1D,GAAU,IAAI,MAAM,GAAS,CAC3B,IAAI,EAAQ,EAAM,EAAU,CAI1B,OAHI,IAAS,OACX,QAAQ,MAAM,EAA8B,EAEvC,QAAQ,IAAI,EAAQ,EAAM,CAAQ,CAC3C,CACF,CAAC,GAEH,SAAS,GAAW,EAAM,EAAM,EAAU,CAAC,EAAG,CAC5C,IAAI,EAAU,KACV,EAAW,EACf,OAAO,SAAS,GAAG,EAAM,CACvB,IAAM,EAAM,KAAK,IAAI,EACjB,CAAC,GAAY,EAAQ,UAAY,KACnC,EAAW,GAEb,IAAM,EAAY,GAAQ,EAAM,GAC1B,EAAU,KACZ,GAAa,GAAK,EAAY,GAChC,CAEE,IADA,IAAe,CAAO,EACZ,MAEZ,EAAW,EACX,EAAK,MAAM,EAAS,CAAI,GACf,CAAC,GAAW,EAAQ,WAAa,KAC1C,EAAU,OAAmB,CAC3B,EAAW,EAAQ,UAAY,GAAQ,EAAI,KAAK,IAAI,EACpD,EAAU,KACV,EAAK,MAAM,EAAS,CAAI,CAC1B,EAAG,CAAS,EAEhB,CACF,CACA,SAAS,GAAW,EAAQ,EAAK,EAAG,EAAW,EAAM,OAAQ,CAC3D,IAAM,EAAW,EAAI,OAAO,yBAAyB,EAAQ,CAAG,EAehE,OAdA,EAAI,OAAO,eACT,EACA,EACA,EAAY,EAAI,CACd,IAAI,EAAO,CACT,OAAmB,CACjB,EAAE,IAAI,KAAK,KAAM,CAAK,CACxB,EAAG,CAAC,EACA,GAAY,EAAS,KACvB,EAAS,IAAI,KAAK,KAAM,CAAK,CAEjC,CACF,CACF,MACa,GAAW,EAAQ,EAAK,GAAY,CAAC,EAAG,EAAI,CAC3D,CACA,SAAS,GAAM,EAAQ,EAAM,EAAa,CACxC,GAAI,CACF,GAAI,EAAE,KAAQ,GACZ,UAAa,CACb,EAEF,IAAM,EAAW,EAAO,GAClB,EAAU,EAAY,CAAQ,EAWpC,OAVI,OAAO,GAAY,aACrB,EAAQ,UAAY,EAAQ,WAAa,CAAC,EAC1C,OAAO,iBAAiB,EAAS,CAC/B,mBAAoB,CAClB,WAAY,GACZ,MAAO,CACT,CACF,CAAC,GAEH,EAAO,GAAQ,MACF,CACX,EAAO,GAAQ,CACjB,CACF,MAAQ,CACN,UAAa,CACb,CACF,CACF,CACA,IAAI,GAAe,KAAK,IACH,iBAAiB,KAAK,KAAK,IAAI,EAAE,SAAS,CAAC,IAC9D,OAAsC,IAAI,KAAK,EAAG,QAAQ,GAE5D,SAAS,GAAgB,EAAK,CAC5B,IAAM,EAAM,EAAI,SAChB,MAAO,CACL,KAAM,EAAI,iBAAmB,EAAI,iBAAiB,WAAa,EAAI,cAAgB,IAAK,GAAsB,GAAK,gBAAgB,YAAc,GAAK,MAAM,eAAe,YAAc,GAAK,MAAM,YAAc,EAAtH,EAAI,YAChG,IAAK,EAAI,iBAAmB,EAAI,iBAAiB,UAAY,EAAI,cAAgB,IAAK,GAAsB,GAAK,gBAAgB,WAAa,GAAK,MAAM,eAAe,WAAa,GAAK,MAAM,WAAa,EAAnH,EAAI,WAChG,CACF,CACA,SAAS,IAAkB,CACzB,OAAO,OAAO,aAAe,SAAS,iBAAmB,SAAS,gBAAgB,cAAgB,SAAS,MAAQ,SAAS,KAAK,YACnI,CACA,SAAS,IAAiB,CACxB,OAAO,OAAO,YAAc,SAAS,iBAAmB,SAAS,gBAAgB,aAAe,SAAS,MAAQ,SAAS,KAAK,WACjI,CACA,SAAS,GAAuB,EAAM,CACpC,GAAI,CAAC,EACH,OAAO,KAET,GAAI,CAEF,OADW,EAAK,WAAa,EAAK,aAAe,EAAO,EAAK,aAE/D,MAAgB,CACd,OAAO,IACT,CACF,CACA,SAAS,GAAU,EAAM,EAAY,EAAe,EAAiB,EAAgB,CACnF,GAAI,CAAC,EACH,MAAO,GAET,IAAM,EAAK,GAAuB,CAAI,EACtC,GAAI,CAAC,EACH,MAAO,GAET,IAAM,EAAmB,GAAqB,EAAY,CAAa,EACvE,GAAI,CAAC,EAAgB,CACnB,IAAM,EAAc,GAAmB,EAAG,QAAQ,CAAe,EACjE,OAAO,EAAiB,CAAE,GAAK,CAAC,CAClC,CACA,IAAM,EAAgB,GAAgB,EAAI,CAAgB,EACtD,EAAkB,GAatB,OAZI,EAAgB,EACX,IAEL,IACF,EAAkB,GAChB,EACA,GAAqB,KAAM,CAAe,CAC5C,GAEE,EAAgB,IAAM,EAAkB,EACnC,GAEF,EAAgB,EACzB,CACA,SAAS,IAAa,EAAG,EAAQ,CAC/B,OAAO,EAAO,MAAM,CAAC,IAAM,EAC7B,CACA,SAAS,GAAU,EAAG,EAAQ,CAC5B,OAAO,EAAO,MAAM,CAAC,IAAM,EAC7B,CACA,SAAS,GAAkB,EAAQ,EAAQ,CACzC,GAAI,GAAa,CAAM,EACrB,MAAO,GAET,IAAM,EAAK,EAAO,MAAM,CAAM,EAU9B,OATK,EAAO,IAAI,CAAE,EAGd,EAAO,YAAc,EAAO,WAAW,WAAa,EAAO,cACtD,GAEJ,EAAO,WAGL,GAAkB,EAAO,WAAY,CAAM,EAFzC,GANA,EASX,CACA,SAAS,GAAoB,EAAO,CAClC,MAAO,EAAQ,EAAM,cACvB,CACA,SAAS,IAAS,EAAM,OAAQ,CAC1B,aAAc,GAAO,CAAC,EAAI,SAAS,UAAU,UAC/C,EAAI,SAAS,UAAU,QAAU,MAAM,UAAU,SAE/C,iBAAkB,GAAO,CAAC,EAAI,aAAa,UAAU,UACvD,EAAI,aAAa,UAAU,QAAU,MAAM,UAAU,SAElD,KAAK,UAAU,WAClB,KAAK,UAAU,UAAY,GAAG,IAAS,CACrC,IAAI,EAAO,EAAK,GAChB,GAAI,EAAE,KAAK,GACT,MAAU,UAAU,wBAAwB,EAE9C,GACE,GAAI,OAAS,EACX,MAAO,SAEF,IAAe,EAAK,YAC7B,MAAO,EACT,EAEJ,CACA,SAAS,GAAmB,EAAG,EAAQ,CACrC,MAAO,GAAQ,EAAE,WAAa,UAAY,EAAO,QAAQ,CAAC,EAC5D,CACA,SAAS,GAAuB,EAAG,EAAQ,CACzC,MAAO,GACL,EAAE,WAAa,QAAU,EAAE,WAAa,EAAE,cAAgB,EAAE,cAAgB,EAAE,aAAa,KAAK,IAAM,cAAgB,EAAO,QAAQ,CAAC,EAE1I,CACA,SAAS,GAAc,EAAG,CACxB,MAAO,EAAQ,GAAG,UACpB,CACA,IAAM,IAAN,KAAuB,CACrB,aAAc,CACZ,KAAK,GAAK,EACV,KAAK,WAA6B,IAAI,QACtC,KAAK,WAA6B,IAAI,GACxC,CACA,MAAM,EAAY,CAChB,OAAO,KAAK,WAAW,IAAI,CAAU,GAAK,EAC5C,CACA,IAAI,EAAY,CACd,OAAO,KAAK,WAAW,IAAI,CAAU,CACvC,CAIA,IAAI,EAAY,EAAI,CAClB,GAAI,KAAK,IAAI,CAAU,EAAG,OAAO,KAAK,MAAM,CAAU,EACtD,IAAI,EAMJ,MALA,CAEO,EAFH,IAAO,IAAK,GACN,KAAK,KACA,EACf,KAAK,WAAW,IAAI,EAAY,CAAK,EACrC,KAAK,WAAW,IAAI,EAAO,CAAU,EAC9B,CACT,CACA,SAAS,EAAI,CACX,OAAO,KAAK,WAAW,IAAI,CAAE,GAAK,IACpC,CACA,OAAQ,CACN,KAAK,WAA6B,IAAI,QACtC,KAAK,WAA6B,IAAI,IACtC,KAAK,GAAK,CACZ,CACA,YAAa,CACX,MAAO,MAAK,IACd,CACF,EACA,SAAS,GAAc,EAAG,CACxB,IAAI,EAAa,KAGjB,OAFI,EAAE,cAAc,GAAG,WAAa,KAAK,wBAA0B,EAAE,YAAY,EAAE,OACjF,EAAa,EAAE,YAAY,EAAE,MACxB,CACT,CACA,SAAS,IAAkB,EAAG,CAC5B,IAAI,EAAiB,EACjB,EACJ,KAAO,EAAa,GAAc,CAAc,GAC9C,EAAiB,EACnB,OAAO,CACT,CACA,SAAS,IAAgB,EAAG,CAC1B,IAAM,EAAM,EAAE,cACd,GAAI,CAAC,EAAK,MAAO,GACjB,IAAM,EAAa,IAAkB,CAAC,EACtC,OAAO,EAAI,SAAS,CAAU,CAChC,CACA,SAAS,GAAM,EAAG,CAChB,IAAM,EAAM,EAAE,cAEd,OADK,EACE,EAAI,SAAS,CAAC,GAAK,IAAgB,CAAC,EAD1B,EAEnB,CACA,IAAM,GAAwB,CAAC,EAC/B,SAAS,GAAkB,EAAM,CAC/B,IAAM,EAAS,GAAsB,GACrC,GAAI,EACF,OAAO,EAET,IAAM,EAAY,OAAO,SACrB,EAAO,OAAO,GAClB,GAAI,GAAa,OAAO,EAAU,eAAkB,WAClD,GAAI,CACF,IAAM,EAAU,EAAU,cAAc,QAAQ,EAChD,EAAQ,OAAS,GACjB,EAAU,KAAK,YAAY,CAAO,EAClC,IAAM,EAAgB,EAAQ,cAC1B,GAAiB,EAAc,KACjC,EACA,EAAc,IAEhB,EAAU,KAAK,YAAY,CAAO,CACpC,MAAY,CACZ,CAEF,MAAO,IAAsB,GAAQ,EAAK,KACxC,MACF,CACF,CACA,SAAS,IAAwB,GAAG,EAAM,CACxC,OAAO,GAAkB,uBAAuB,EAAE,GAAG,CAAI,CAC3D,CACA,SAAS,GAAa,GAAG,EAAM,CAC7B,OAAO,GAAkB,YAAY,EAAE,GAAG,CAAI,CAChD,CACA,SAAS,IAAe,GAAG,EAAM,CAC/B,OAAO,GAAkB,cAAc,EAAE,GAAG,CAAI,CAClD,CACA,IAAI,IAA8B,IAChC,EAAW,EAAW,iBAAsB,GAAK,mBACjD,EAAW,EAAW,KAAU,GAAK,OACrC,EAAW,EAAW,aAAkB,GAAK,eAC7C,EAAW,EAAW,oBAAyB,GAAK,sBACpD,EAAW,EAAW,KAAU,GAAK,OACrC,EAAW,EAAW,OAAY,GAAK,SACvC,EAAW,EAAW,OAAY,GAAK,SAChC,IACN,IAAa,CAAC,CAAC,EACd,IAAsC,IACxC,EAAmB,EAAmB,SAAc,GAAK,WACzD,EAAmB,EAAmB,UAAe,GAAK,YAC1D,EAAmB,EAAmB,iBAAsB,GAAK,mBACjE,EAAmB,EAAmB,OAAY,GAAK,SACvD,EAAmB,EAAmB,eAAoB,GAAK,iBAC/D,EAAmB,EAAmB,MAAW,GAAK,QACtD,EAAmB,EAAmB,UAAe,GAAK,YAC1D,EAAmB,EAAmB,iBAAsB,GAAK,mBACjE,EAAmB,EAAmB,eAAoB,GAAK,iBAC/D,EAAmB,EAAmB,eAAoB,GAAK,iBAC/D,EAAmB,EAAmB,KAAU,IAAM,OACtD,EAAmB,EAAmB,IAAS,IAAM,MACrD,EAAmB,EAAmB,KAAU,IAAM,OACtD,EAAmB,EAAmB,iBAAsB,IAAM,mBAClE,EAAmB,EAAmB,UAAe,IAAM,YAC3D,EAAmB,EAAmB,kBAAuB,IAAM,oBACnE,EAAmB,EAAmB,cAAmB,IAAM,gBACxD,IACN,IAAqB,CAAC,CAAC,EACtB,IAAsC,IACxC,EAAmB,EAAmB,QAAa,GAAK,UACxD,EAAmB,EAAmB,UAAe,GAAK,YAC1D,EAAmB,EAAmB,MAAW,GAAK,QACtD,EAAmB,EAAmB,YAAiB,GAAK,cAC5D,EAAmB,EAAmB,SAAc,GAAK,WACzD,EAAmB,EAAmB,MAAW,GAAK,QACtD,EAAmB,EAAmB,KAAU,GAAK,OACrD,EAAmB,EAAmB,WAAgB,GAAK,aAC3D,EAAmB,EAAmB,mBAAwB,GAAK,qBACnE,EAAmB,EAAmB,SAAc,GAAK,WACzD,EAAmB,EAAmB,YAAiB,IAAM,cACtD,IACN,IAAqB,CAAC,CAAC,EACtB,IAAiC,IACnC,EAAc,EAAc,MAAW,GAAK,QAC5C,EAAc,EAAc,IAAS,GAAK,MAC1C,EAAc,EAAc,MAAW,GAAK,QACrC,IACN,IAAgB,CAAC,CAAC,EACjB,IAAsC,IACxC,EAAmB,EAAmB,KAAU,GAAK,OACrD,EAAmB,EAAmB,MAAW,GAAK,QACtD,EAAmB,EAAmB,OAAY,GAAK,SACvD,EAAmB,EAAmB,aAAkB,GAAK,eAC7D,EAAmB,EAAmB,WAAgB,GAAK,aACpD,IACN,IAAqB,CAAC,CAAC,EACtB,GACJ,SAAS,IAAqB,EAAS,CACrC,GAAe,CACjB,CACA,SAAS,KAAyB,CAChC,GAAe,IAAK,EACtB,CAoBA,IAAK,IAnBC,GAAmB,GAClB,KAGkB,GAAG,IAAS,CACjC,GAAI,CACF,OAAO,EAAG,GAAG,CAAI,CACnB,OAAS,EAAO,CACd,GAAI,IAAgB,GAAa,CAAK,IAAM,GAC1C,UAAa,CACb,EAEF,MAAM,CACR,CACF,GAZS,EAePC,GAAQ,mEACR,IAAS,OAAO,WAAe,IAAc,CAAC,EAAI,IAAI,WAAW,GAAG,EAC/DC,GAAI,EAAGA,GAAID,GAAM,OAAQ,KAChC,IAAOA,GAAM,WAAWC,EAAC,GAAKA,GAEhC,IAAM,GAAN,KAAwB,CACtB,OAAQ,CACR,CACA,QAAS,CACT,CACA,UAAW,CACX,CACA,MAAO,CACP,CACA,QAAS,CACT,CACA,UAAW,CACX,CACA,WAAY,CACZ,CACA,eAAgB,CAChB,CACA,kBAAmB,CACnB,CACF,EAEA,SAAS,GAAyB,EAAQ,CACxC,GAAI,CACF,OAAO,EAAO,eAChB,MAAa,CACb,CACF,CACA,SAAS,GAAuB,EAAQ,CACtC,GAAI,CACF,OAAO,EAAO,aAChB,MAAa,CACb,CACF,CACA,IAAM,IAAN,KAA6B,CAC3B,YAAY,EAAK,CACf,KAAK,IAAM,EACX,KAAK,cAAgB,IACvB,CACA,MAAM,EAAW,CACf,OAAO,KAAK,iCAAiC,CAAS,GAAK,KAAK,yBAAyB,CAAS,CACpG,CACA,iCAAiC,EAAW,CAC1C,GAAI,OAAO,cAAkB,KAAe,OAAO,cAAc,UAAU,aAAgB,WACzF,OAAO,KAET,GAAI,CACF,IAAM,EAAQ,IAAI,cAClB,EAAM,YAAY,OAAO,EAAU,GAAG,EACtC,IAAM,EAAO,EAAM,SAAS,GAI5B,MAHI,CAAC,GAAQ,EAAK,OAAS,QAAQ,WAC1B,KAEF,EAAK,KACd,MAAQ,CACN,OAAO,IACT,CACF,CACA,yBAAyB,EAAW,CAClC,IAAM,EAAM,KAAK,iBAAiB,EAAE,cAAc,MAAM,EAExD,OADA,EAAI,aAAa,QAAS,CAAS,EAC5B,EAAI,KACb,CACA,kBAAmB,CACjB,GAAI,CAAC,KAAK,cACR,GAAI,CACF,KAAK,cAAgB,SAAS,eAAe,mBAAmB,CAClE,MAAQ,CACN,KAAK,cAAgB,KAAK,GAC5B,CAEF,OAAO,KAAK,aACd,CACF,EACA,SAAS,GAAmB,EAAI,CAC9B,MAAO,SAAU,CACnB,CACA,IAAM,IAAN,KAAuB,CACrB,aAAc,CACZ,KAAK,OAAS,EACd,KAAK,KAAO,KACZ,KAAK,KAAO,IACd,CACA,IAAI,EAAU,CACZ,GAAI,GAAY,KAAK,OACnB,MAAU,MAAM,gCAAgC,EAElD,IAAI,EAAU,KAAK,KACnB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAU,IACpC,EAAU,GAAS,MAAQ,KAE7B,OAAO,CACT,CACA,QAAQ,EAAI,CACV,IAAM,EAAO,CACX,MAAO,EACP,SAAU,KACV,KAAM,IACR,EAEA,GADA,EAAG,KAAO,EACN,EAAG,iBAAmB,GAAmB,EAAG,eAAe,EAAG,CAChE,IAAM,EAAU,EAAG,gBAAgB,KAAK,KACxC,EAAK,KAAO,EACZ,EAAK,SAAW,EAAG,gBAAgB,KACnC,EAAG,gBAAgB,KAAK,KAAO,EAC3B,IACF,EAAQ,SAAW,EAEvB,MAAO,GAAI,EAAG,aAAe,GAAmB,EAAG,WAAW,GAAK,EAAG,YAAY,KAAK,SAAU,CAC/F,IAAM,EAAU,EAAG,YAAY,KAAK,SACpC,EAAK,SAAW,EAChB,EAAK,KAAO,EAAG,YAAY,KAC3B,EAAG,YAAY,KAAK,SAAW,EAC3B,IACF,EAAQ,KAAO,EAEnB,MACM,KAAK,OACP,KAAK,KAAK,SAAW,GAEvB,EAAK,KAAO,KAAK,KACjB,KAAK,KAAO,EAEV,EAAK,OAAS,OAChB,KAAK,KAAO,GAEd,KAAK,QACP,CACA,WAAW,EAAI,CACb,IAAM,EAAU,EAAG,KACd,KAAK,OAGL,EAAQ,UAQX,EAAQ,SAAS,KAAO,EAAQ,KAC5B,EAAQ,KACV,EAAQ,KAAK,SAAW,EAAQ,SAEhC,KAAK,KAAO,EAAQ,WAXtB,KAAK,KAAO,EAAQ,KAChB,KAAK,KACP,KAAK,KAAK,SAAW,KAErB,KAAK,KAAO,MAUZ,EAAG,MACL,OAAO,EAAG,KAEZ,KAAK,SACP,CACF,EACM,IAAW,EAAI,IAAa,GAAG,EAAG,GAAG,IACrC,IAAN,KAAqB,CACnB,aAAc,CACZ,KAAK,OAAS,GACd,KAAK,OAAS,GACd,KAAK,MAAQ,CAAC,EACd,KAAK,WAAa,CAAC,EACnB,KAAK,aAA+B,IAAI,QACxC,KAAK,QAAU,CAAC,EAChB,KAAK,WAAa,CAAC,EACnB,KAAK,SAAW,CAAC,EACjB,KAAK,SAA2B,IAAI,IACpC,KAAK,SAA2B,IAAI,IACpC,KAAK,WAA6B,IAAI,IACtC,KAAK,iBAAoB,GAAc,CACrC,EAAU,QAAQ,KAAK,eAAe,EACtC,KAAK,KAAK,CACZ,EACA,KAAK,SAAa,CAChB,GAAI,KAAK,QAAU,KAAK,OACtB,OAEF,IAAM,EAAO,CAAC,EACR,EAA2B,IAAI,IAC/B,EAAU,IAAI,IACd,EAAa,GAAO,CACxB,IAAI,EAAK,EACL,EAAS,GACb,KAAO,IAAW,IAChB,IAAW,EAAG,YACd,EAAS,GAAM,KAAK,OAAO,MAAM,CAAE,EAErC,OAAO,CACT,EACM,EAAW,GAAO,CACtB,GAAI,CAAC,EAAG,YAAc,CAAC,GAAM,CAAE,EAC7B,OAEF,IAAM,EAAW,GAAa,EAAG,UAAU,EAAI,KAAK,OAAO,MAAM,GAAc,CAAE,CAAC,EAAI,KAAK,OAAO,MAAM,EAAG,UAAU,EAC/G,EAAS,EAAU,CAAE,EAC3B,GAAI,IAAa,IAAM,IAAW,GAChC,OAAO,EAAQ,QAAQ,CAAE,EAE3B,IAAM,EAAK,GAAoB,EAAI,CACjC,IAAK,KAAK,IACV,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,cAAe,KAAK,cACpB,YAAa,KAAK,YAClB,gBAAiB,KAAK,gBACtB,cAAe,KAAK,cACpB,gBAAiB,KAAK,gBACtB,iBAAkB,KAAK,iBACvB,mBAAoB,KAAK,mBACzB,UAAW,GACX,kBAAmB,GACnB,iBAAkB,KAAK,iBACvB,iBAAkB,KAAK,iBACvB,gBAAiB,KAAK,gBACtB,WAAY,KAAK,WACjB,YAAa,KAAK,YAClB,eAAgB,KAAK,eACrB,eAAgB,KAAK,eACrB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,YAAc,GAAa,CACrB,GAAmB,EAAU,KAAK,MAAM,GAAK,CAAC,GAChD,EACA,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,GACE,KAAK,cAAc,UAAU,CAAQ,EAEnC,GAAuB,EAAU,KAAK,MAAM,GAC9C,KAAK,kBAAkB,iBACrB,CACF,EAEE,GAAc,CAAE,GAClB,KAAK,iBAAiB,cAAc,EAAG,WAAY,KAAK,GAAG,CAE/D,EACA,cAAe,EAAQ,IAAY,CACjC,GAAI,GACF,EACA,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,EACE,OAEF,KAAK,cAAc,aAAa,EAAQ,CAAO,EAC/C,IAAM,EAAgB,GAAuB,CAAM,EAC/C,GACF,KAAK,cAAc,UAAU,CAAa,EAE5C,KAAK,iBAAiB,oBAAoB,CAAM,CAClD,EACA,kBAAmB,EAAM,IAAY,CACnC,KAAK,kBAAkB,kBAAkB,EAAM,CAAO,CACxD,EACA,oBAAqB,EAAU,EAAgB,CAAE,QAAO,YAAa,CACnE,KAAK,WAAW,CACd,KAAM,CAAC,EACP,QAAS,CAAC,EACV,MAAO,CAAC,EACR,WAAY,CACV,CACE,GAAI,EAAe,GACnB,WAAY,CACV,MAAO,CACL,MAAO,GAAG,EAAM,IAChB,OAAQ,GAAG,EAAO,GACpB,CACF,CACF,CACF,CACF,CAAC,CACH,EACA,oBAAqB,KAAK,mBAC5B,CAAC,EACG,IACF,EAAK,KAAK,CACR,WACA,SACA,KAAM,CACR,CAAC,EACD,EAAS,IAAI,EAAG,EAAE,EAEtB,EACA,KAAO,KAAK,WAAW,QACrB,KAAK,OAAO,kBAAkB,KAAK,WAAW,MAAM,CAAC,EAEvD,IAAK,IAAM,KAAM,KAAK,SAChB,GAAgB,KAAK,QAAS,EAAI,KAAK,MAAM,GAAK,CAAC,KAAK,SAAS,IAAI,EAAG,UAAU,GAGtF,EAAQ,CAAE,EAEZ,IAAK,IAAM,KAAM,KAAK,SAChB,CAAC,GAAgB,KAAK,WAAY,CAAE,GAAK,CAAC,GAAgB,KAAK,QAAS,EAAI,KAAK,MAAM,GAEhF,GAAgB,KAAK,SAAU,CAAE,EAD1C,EAAQ,CAAE,EAIV,KAAK,WAAW,IAAI,CAAE,EAG1B,IAAI,EAAY,KAChB,KAAO,EAAQ,QAAQ,CACrB,IAAI,EAAO,KACX,GAAI,EAAW,CACb,IAAM,EAAW,KAAK,OAAO,MAAM,EAAU,MAAM,UAAU,EACvD,EAAS,EAAU,EAAU,KAAK,EACpC,IAAa,IAAM,IAAW,KAChC,EAAO,EAEX,CACA,GAAI,CAAC,EAAM,CACT,IAAI,EAAW,EAAQ,KACvB,KAAO,GAAU,CACf,IAAM,EAAQ,EAEd,GADA,EAAW,EAAS,SAChB,EAAO,CACT,IAAM,EAAW,KAAK,OAAO,MAAM,EAAM,MAAM,UAAU,EAEzD,GADe,EAAU,EAAM,KACtB,IAAM,GAAI,SACd,GAAI,IAAa,GAAI,CACxB,EAAO,EACP,KACF,KAAO,CACL,IAAM,EAAgB,EAAM,MAC5B,GAAI,EAAc,YAAc,EAAc,WAAW,WAAa,KAAK,uBAAwB,CACjG,IAAM,EAAa,EAAc,WAAW,KAE5C,GADkB,KAAK,OAAO,MAAM,CACxB,IAAM,GAAI,CACpB,EAAO,EACP,KACF,CACF,CACF,CACF,CACF,CACF,CACA,GAAI,CAAC,EAAM,CACT,KAAO,EAAQ,MACb,EAAQ,WAAW,EAAQ,KAAK,KAAK,EAEvC,KACF,CACA,EAAY,EAAK,SACjB,EAAQ,WAAW,EAAK,KAAK,EAC7B,EAAQ,EAAK,KAAK,CACpB,CACA,IAAM,EAAU,CACd,MAAO,KAAK,MAAM,IAAK,IAAU,CAC/B,GAAI,KAAK,OAAO,MAAM,EAAK,IAAI,EAC/B,MAAO,EAAK,KACd,EAAE,EAAE,OAAQ,GAAS,CAAC,EAAS,IAAI,EAAK,EAAE,CAAC,EAAE,OAAQ,GAAS,KAAK,OAAO,IAAI,EAAK,EAAE,CAAC,EACtF,WAAY,KAAK,WAAW,IAAK,GAAc,CAC7C,GAAM,CAAE,cAAe,EACvB,GAAI,OAAO,EAAW,OAAU,SAAU,CACxC,IAAM,EAAY,KAAK,UAAU,EAAU,SAAS,EAC9C,EAAiB,KAAK,UAAU,EAAU,gBAAgB,EAC5D,EAAU,OAAS,EAAW,MAAM,SACjC,EAAY,GAAgB,MAAM,MAAM,EAAE,SAAW,EAAW,MAAM,MAAM,MAAM,EAAE,SACvF,EAAW,MAAQ,EAAU,UAGnC,CACA,MAAO,CACL,GAAI,KAAK,OAAO,MAAM,EAAU,IAAI,EACpC,YACF,CACF,CAAC,EAAE,OAAQ,GAAc,CAAC,EAAS,IAAI,EAAU,EAAE,CAAC,EAAE,OAAQ,GAAc,KAAK,OAAO,IAAI,EAAU,EAAE,CAAC,EACzG,QAAS,KAAK,QACd,MACF,EACI,CAAC,EAAQ,MAAM,QAAU,CAAC,EAAQ,WAAW,QAAU,CAAC,EAAQ,QAAQ,QAAU,CAAC,EAAQ,KAAK,SAGpG,KAAK,MAAQ,CAAC,EACd,KAAK,WAAa,CAAC,EACnB,KAAK,aAA+B,IAAI,QACxC,KAAK,QAAU,CAAC,EAChB,KAAK,SAA2B,IAAI,IACpC,KAAK,SAA2B,IAAI,IACpC,KAAK,WAA6B,IAAI,IACtC,KAAK,SAAW,CAAC,EACjB,KAAK,WAAW,CAAO,EACzB,EACA,KAAK,gBAAmB,GAAM,CACxB,OAAU,EAAE,OAAQ,KAAK,MAAM,EAGnC,OAAQ,EAAE,KAAV,CACE,IAAK,gBAAiB,CACpB,IAAM,EAAQ,EAAE,OAAO,YACnB,CAAC,GACH,EAAE,OACF,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,GAAK,IAAU,EAAE,UACf,KAAK,MAAM,KAAK,CACd,MAAO,GACL,EAAE,OACF,KAAK,cACL,KAAK,iBACL,KAAK,gBACL,KAAK,mBACL,KAAK,WACP,GAAK,EAAQ,KAAK,WAAa,KAAK,WAAW,EAAO,GAAuB,EAAE,MAAM,CAAC,EAAI,EAAM,QAAQ,QAAS,GAAG,EAAI,EACxH,KAAM,EAAE,MACV,CAAC,EAEH,KACF,CACA,IAAK,aAAc,CACjB,IAAM,EAAS,EAAE,OACb,EAAgB,EAAE,cAClB,EAAQ,EAAE,OAAO,aAAa,CAAa,EAC/C,GAAI,IAAkB,QAAS,CAC7B,IAAM,EAAO,GAAa,CAAM,EAC1B,EAAU,EAAO,QACvB,EAAQ,GAAc,EAAQ,EAAS,CAAI,EAC3C,IAAM,EAAgB,GAAgB,CACpC,iBAAkB,KAAK,iBACvB,UACA,MACF,CAAC,EASD,EAAQ,GAAe,CACrB,SATgB,GAChB,EAAE,OACF,KAAK,cACL,KAAK,iBACL,KAAK,gBACL,KAAK,mBACL,CAGkB,EAClB,QAAS,EACT,QACA,YAAa,KAAK,WACpB,CAAC,CACH,CACA,GAAI,GACF,EAAE,OACF,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,GAAK,IAAU,EAAE,SACf,OAEF,IAAI,EAAO,KAAK,aAAa,IAAI,EAAE,MAAM,EACzC,GAAI,EAAO,UAAY,UAAY,IAAkB,OAAS,CAAC,KAAK,gBAAgB,CAAK,EAIvF,GAAI,CAHc,GAChB,CAEW,EACX,EAAgB,cAEhB,OAgBJ,GAbK,IACH,EAAO,CACL,KAAM,EAAE,OACR,WAAY,CAAC,EACb,UAAW,CAAC,EACZ,iBAAkB,CAAC,CACrB,EACA,KAAK,WAAW,KAAK,CAAI,EACzB,KAAK,aAAa,IAAI,EAAE,OAAQ,CAAI,GAElC,IAAkB,QAAU,EAAO,UAAY,UAAY,EAAE,UAAY,IAAI,YAAY,IAAM,YACjG,EAAO,aAAa,sBAAuB,MAAM,EAE/C,CAAC,GAAgB,EAAO,QAAS,CAAa,IAChD,EAAK,WAAW,GAAiB,GAC/B,KAAK,IACL,GAAY,EAAO,OAAO,EAC1B,GAAY,CAAa,EACzB,EACA,EACA,KAAK,eACP,EACI,IAAkB,SAAS,CAC7B,IAAM,EAAW,EAAE,SAAW,KAAK,uBAAuB,MAAM,EAAE,QAAQ,EAAI,KAC9E,IAAK,IAAM,KAAS,MAAM,KAAK,EAAO,KAAK,EAAG,CAC5C,IAAM,EAAW,EAAO,MAAM,iBAAiB,CAAK,EAC9C,EAAc,EAAO,MAAM,oBAAoB,CAAK,EACtD,KAAc,GAAU,iBAAiB,CAAK,GAAK,KAAO,KAAiB,GAAU,oBAAoB,CAAK,GAAK,IACjH,IAAgB,GAClB,EAAK,UAAU,GAAS,EAExB,EAAK,UAAU,GAAS,CAAC,EAAU,CAAW,EAGhD,EAAK,iBAAiB,GAAS,CAAC,EAAU,CAAW,CAEzD,CACA,GAAI,MACG,IAAM,KAAS,MAAM,KAAK,CAAQ,EACjC,EAAO,MAAM,iBAAiB,CAAK,IAAM,KAC3C,EAAK,UAAU,GAAS,GAIhC,CAEF,KACF,CACA,IAAK,YACH,GAAI,GACF,EAAE,OACF,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,EACE,OAEF,EAAE,WAAW,QAAS,GAAO,KAAK,QAAQ,EAAI,EAAE,MAAM,CAAC,EACvD,EAAE,aAAa,QAAS,GAAO,CAC7B,IAAM,EAAS,KAAK,OAAO,MAAM,CAAE,EAC7B,EAAW,GAAa,EAAE,MAAM,EAAI,KAAK,OAAO,MAAM,EAAE,OAAO,IAAI,EAAI,KAAK,OAAO,MAAM,EAAE,MAAM,EACnG,GACF,EAAE,OACF,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,GAAK,GAAU,EAAI,KAAK,MAAM,GAAK,CAAC,IAAa,EAAI,KAAK,MAAM,IAG5D,KAAK,SAAS,IAAI,CAAE,GACtB,GAAW,KAAK,SAAU,CAAE,EAC5B,KAAK,WAAW,IAAI,CAAE,GACb,KAAK,SAAS,IAAI,EAAE,MAAM,GAAK,IAAW,IAC5C,GAAkB,EAAE,OAAQ,KAAK,MAAM,IACvC,KAAK,SAAS,IAAI,CAAE,GAAK,KAAK,SAAS,GAAQ,EAAQ,CAAQ,GACtE,GAAW,KAAK,SAAU,CAAE,EAE5B,KAAK,QAAQ,KAAK,CAChB,WACA,GAAI,EACJ,SAAU,GAAa,EAAE,MAAM,GAAK,GAAkB,EAAE,MAAM,EAAI,GAAO,IAAK,EAChF,CAAC,GAEH,KAAK,WAAW,KAAK,CAAE,EACzB,CAAC,EACD,KAEJ,CACF,EACA,KAAK,SAAW,EAAI,IAAW,CACzB,SAAK,qBAAqB,cAAc,EAAI,IAAI,GAChD,OAAK,SAAS,IAAI,CAAE,GAAK,KAAK,SAAS,IAAI,CAAE,GACjD,IAAI,KAAK,OAAO,QAAQ,CAAE,EAAG,CAC3B,GAAI,GAAU,EAAI,KAAK,MAAM,EAC3B,OAEF,KAAK,SAAS,IAAI,CAAE,EACpB,IAAI,EAAW,KACX,GAAU,KAAK,OAAO,QAAQ,CAAM,IACtC,EAAW,KAAK,OAAO,MAAM,CAAM,GAEjC,GAAY,IAAa,KAC3B,KAAK,SAAS,GAAQ,KAAK,OAAO,MAAM,CAAE,EAAG,CAAQ,GAAK,GAE9D,MACE,KAAK,SAAS,IAAI,CAAE,EACpB,KAAK,WAAW,OAAO,CAAE,EAEtB,GACH,EACA,KAAK,WACL,KAAK,cACL,KAAK,gBACL,EACF,IACM,EAAG,YACL,EAAG,WAAW,QAAS,GAAW,KAAK,QAAQ,CAAM,CAAC,EAEpD,GAAc,CAAE,GAClB,EAAG,WAAW,WAAW,QAAS,GAAW,CAC3C,KAAK,qBAAqB,IAAI,EAAQ,IAAI,EAC1C,KAAK,QAAQ,EAAQ,CAAE,CACzB,CAAC,EAfL,CAkBF,CACF,CACA,KAAK,EAAS,CACZ,iZA4BA,EAAE,QAAS,GAAQ,CACjB,KAAK,GAAO,EAAQ,EACtB,CAAC,EACD,KAAK,uBAAyB,IAAI,IAAuB,KAAK,GAAG,CACnE,CACA,QAAS,CACP,KAAK,OAAS,GACd,KAAK,cAAc,OAAO,CAC5B,CACA,UAAW,CACT,KAAK,OAAS,GACd,KAAK,cAAc,SAAS,EAC5B,KAAK,KAAK,CACZ,CACA,UAAW,CACT,OAAO,KAAK,MACd,CACA,MAAO,CACL,KAAK,OAAS,GACd,KAAK,cAAc,KAAK,CAC1B,CACA,QAAS,CACP,KAAK,OAAS,GACd,KAAK,cAAc,OAAO,EAC1B,KAAK,KAAK,CACZ,CACA,OAAQ,CACN,KAAK,iBAAiB,MAAM,EAC5B,KAAK,cAAc,MAAM,CAC3B,CACF,EACA,SAAS,GAAW,EAAS,EAAI,CAC/B,EAAQ,OAAO,CAAE,EACjB,EAAG,YAAY,QAAS,GAAW,GAAW,EAAS,CAAM,CAAC,CAChE,CACA,SAAS,GAAgB,EAAS,EAAI,EAAS,CAE7C,OADI,EAAQ,SAAW,EAAU,GAC1B,IAAiB,EAAS,EAAI,CAAO,CAC9C,CACA,SAAS,IAAiB,EAAS,EAAI,EAAS,CAC9C,IAAI,EAAO,EAAG,WACd,KAAO,GAAM,CACX,IAAM,EAAW,EAAQ,MAAM,CAAI,EACnC,GAAI,EAAQ,KAAM,GAAO,EAAG,KAAO,CAAQ,EACzC,MAAO,GAET,EAAO,EAAK,UACd,CACA,MAAO,EACT,CACA,SAAS,GAAgB,EAAK,EAAI,CAEhC,OADI,EAAI,OAAS,EAAU,GACpB,GAAiB,EAAK,CAAE,CACjC,CACA,SAAS,GAAiB,EAAK,EAAI,CACjC,GAAM,CAAE,cAAe,EAOvB,OANK,EAGD,EAAI,IAAI,CAAU,EACb,GAEF,GAAiB,EAAK,CAAU,EAL9B,EAMX,CACA,IAAM,GAAkB,CAAC,EACzB,SAAS,GAAe,EAAO,CAC7B,GAAI,CACF,GAAI,iBAAkB,EAAO,CAC3B,IAAM,EAAO,EAAM,aAAa,EAChC,GAAI,EAAK,OACP,OAAO,EAAK,EAEhB,MAAO,GAAI,SAAU,GAAS,EAAM,KAAK,OACvC,OAAO,EAAM,KAAK,EAEtB,MAAQ,CACR,CACA,OAAO,GAAS,EAAM,MACxB,CACA,SAAS,GAAqB,EAAS,EAAQ,CAC7C,IAAM,EAAiB,IAAI,IAC3B,GAAgB,KAAK,CAAc,EACnC,EAAe,KAAK,CAAO,EAC3B,IAAI,EAAuB,OAAO,kBAQlC,OAAO,qBACD,EAAoB,QAAQ,MAAM,aAAa,kBAAkB,EACnE,GAAqB,OAAO,KAC9B,EAAuB,OAAO,IAEhC,IAAM,EAAW,IAAI,EACnB,GAAiB,GAAc,CACzB,EAAQ,YAAc,EAAQ,WAAW,CAAS,IAAM,IAG5D,EAAe,iBAAiB,KAAK,CAAc,EAAE,CAAS,CAChE,CAAC,CACH,EASA,OARA,EAAS,QAAQ,EAAQ,CACvB,WAAY,GACZ,kBAAmB,GACnB,cAAe,GACf,sBAAuB,GACvB,UAAW,GACX,QAAS,EACX,CAAC,EACM,CACT,CACA,SAAS,IAAiB,CACxB,cACA,WACA,MACA,OAAQ,GACP,CACD,GAAI,EAAS,YAAc,GACzB,UAAa,CACb,EAEF,IAAM,EAAY,OAAO,EAAS,WAAc,SAAW,EAAS,UAAY,GAC1E,EAAoB,OAAO,EAAS,mBAAsB,SAAW,EAAS,kBAAoB,IACpG,EAAY,CAAC,EACb,EACE,EAAY,GAChB,GACG,GAAW,CACV,IAAM,EAAc,KAAK,IAAI,EAAI,EACjC,EACE,EAAU,IAAK,IACb,EAAE,YAAc,EACT,EACR,EACD,CACF,EACA,EAAY,CAAC,EACb,EAAe,IACjB,CACF,EACA,CACF,EACM,EAAiB,GACrB,GACE,GAAiB,GAAQ,CACvB,IAAM,EAAS,GAAe,CAAG,EAC3B,CAAE,UAAS,WAAY,GAAoB,CAAG,EAAI,EAAI,eAAe,GAAK,EAChF,CACE,GAAe,GAAa,EAE9B,EAAU,KAAK,CACb,EAAG,EACH,EAAG,EACH,GAAI,EAAQ,MAAM,CAAM,EACxB,WAAY,GAAa,EAAI,CAC/B,CAAC,EACD,EACE,OAAO,UAAc,KAAe,aAAe,UAAY,GAAkB,KAAO,aAAe,WAAa,GAAkB,UAAY,GAAkB,SACtK,CACF,CAAC,EACD,EACA,CACE,SAAU,EACZ,CACF,CACF,EACM,EAAW,CACfF,GAAG,YAAa,EAAgB,CAAG,EACnCA,GAAG,YAAa,EAAgB,CAAG,EACnCA,GAAG,OAAQ,EAAgB,CAAG,CAChC,EACA,OAAO,OAAsB,CAC3B,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,CAAC,CACH,CACA,SAAS,IAA6B,CACpC,qBACA,MACA,OAAQ,EACR,aACA,gBACA,kBACA,YACC,CACD,GAAI,EAAS,mBAAqB,GAChC,UAAa,CACb,EAEF,IAAM,EAAa,EAAS,mBAAqB,IAAQ,EAAS,mBAAqB,IAAK,GAAI,CAAC,EAAI,EAAS,iBACxG,EAAW,CAAC,EACd,EAAqB,KACnB,EAAc,GACV,GAAU,CAChB,IAAM,EAAS,GAAe,CAAK,EACnC,GAAI,GAAU,EAAQ,EAAY,EAAe,EAAiB,EAAI,EACpE,OAEF,IAAI,EAAc,KACd,EAAe,EACnB,GAAI,gBAAiB,EAAO,CAC1B,OAAQ,EAAM,YAAd,CACE,IAAK,QACH,EAAc,GAAa,MAC3B,MACF,IAAK,QACH,EAAc,GAAa,MAC3B,MACF,IAAK,MACH,EAAc,GAAa,IAC3B,KACJ,CACI,IAAgB,GAAa,MAC3B,GAAkB,KAAc,GAAkB,UACpD,EAAe,aACN,GAAkB,KAAc,GAAkB,UAC3D,EAAe,YAEQ,GAAa,GAC1C,MAAW,GAAoB,CAAK,IAClC,EAAc,GAAa,OAEzB,IAAgB,KAKT,GAAkB,KAAc,GAAkB,QAC3D,EAAc,EACd,EAAqB,OANrB,EAAqB,GACjB,EAAa,WAAW,OAAO,GAAK,IAAgB,GAAa,OAAS,EAAa,WAAW,OAAO,GAAK,IAAgB,GAAa,SAC7I,EAAc,OAMlB,IAAM,EAAK,GAAoB,CAAK,EAAI,EAAM,eAAe,GAAK,EAClE,GAAI,CAAC,EACH,OAEF,IAAM,EAAK,EAAQ,MAAM,CAAM,EACzB,CAAE,UAAS,WAAY,EAC7B,GAAgB,CAAkB,EAAE,CAClC,KAAM,GAAkB,GACxB,KACA,EAAG,EACH,EAAG,EACH,GAAG,IAAgB,MAAQ,CAAE,aAAY,CAC3C,CAAC,CACH,EAuBF,OArBA,OAAO,KAAK,EAAiB,EAAE,OAC5B,GAAQ,OAAO,MAAM,OAAO,CAAG,CAAC,GAAK,CAAC,EAAI,SAAS,WAAW,GAAK,EAAW,KAAS,EAC1F,EAAE,QAAS,GAAa,CACtB,IAAI,EAAY,GAAY,CAAQ,EAC9B,EAAU,EAAW,CAAQ,EACnC,GAAI,OAAO,aACT,OAAQ,GAAkB,GAA1B,CACE,KAAK,GAAkB,UACvB,KAAK,GAAkB,QACrB,EAAY,EAAU,QACpB,QACA,SACF,EACA,MACF,KAAK,GAAkB,WACvB,KAAK,GAAkB,SACrB,MACJ,CAEF,EAAS,KAAKA,GAAG,EAAW,EAAS,CAAG,CAAC,CAC3C,CAAC,EACM,OAAsB,CAC3B,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,CAAC,CACH,CACA,SAAS,GAAmB,CAC1B,WACA,MACA,OAAQ,EACR,aACA,gBACA,kBACA,YACC,CAiCD,OAAOA,GAAG,SAhCa,GACrB,GACE,GAAiB,GAAQ,CACvB,IAAM,EAAS,GAAe,CAAG,EACjC,GAAI,CAAC,GAAU,GACb,EACA,EACA,EACA,EACA,EACF,EACE,OAEF,IAAM,EAAK,EAAQ,MAAM,CAAM,EAC/B,GAAI,IAAW,GAAO,EAAI,YAAa,CACrC,IAAM,EAAgB,GAAgB,EAAI,WAAW,EACrD,EAAS,CACP,KACA,EAAG,EAAc,KACjB,EAAG,EAAc,GACnB,CAAC,CACH,MACE,EAAS,CACP,KACA,EAAG,EAAO,WACV,EAAG,EAAO,SACZ,CAAC,CAEL,CAAC,EACD,EAAS,QAAU,GACrB,CAE+B,EAAG,CAAG,CACzC,CACA,SAAS,IAA2B,CAAE,oBAAoB,CAAE,OAAO,CACjE,IAAI,EAAQ,GACR,EAAQ,GAkBZ,OAAOA,GAAG,SAjBc,GACtB,GACE,OAAsB,CACpB,IAAM,EAAS,GAAgB,EACzB,EAAQ,GAAe,GACzB,IAAU,GAAU,IAAU,KAChC,EAAiB,CACf,MAAO,OAAO,CAAK,EACnB,OAAQ,OAAO,CAAM,CACvB,CAAC,EACD,EAAQ,EACR,EAAQ,EAEZ,CAAC,EACD,GACF,CAEgC,EAAG,CAAG,CAC1C,CACA,IAAM,IAAa,CAAC,QAAS,WAAY,QAAQ,EAC3C,GAAoC,IAAI,QAC9C,SAAS,IAAkB,CACzB,UACA,MACA,OAAQ,EACR,aACA,gBACA,kBACA,cACA,iBACA,mBACA,cACA,WACA,uBACA,gBACA,kBACA,mBACA,sBACC,CACD,SAAS,EAAa,EAAO,CAC3B,IAAI,EAAS,GAAe,CAAK,EAC3B,EAAgB,EAAM,UACtB,EAAU,GAAU,GAAY,EAAO,OAAO,EAEpD,GADI,IAAY,WAAU,EAAS,EAAO,eACtC,CAAC,GAAU,CAAC,GAAW,IAAW,QAAQ,CAAO,EAAI,GAAK,GAC5D,EACA,EACA,EACA,EACA,EACF,EACE,OAEF,IAAM,EAAK,EACX,GAAI,EAAG,UAAU,SAAS,CAAW,GAAK,GAAkB,EAAG,QAAQ,CAAc,EACnF,OAEF,IAAM,EAAO,GAAa,CAAM,EAC5B,EAAO,GAAc,EAAI,EAAS,CAAI,EACtC,EAAY,GACV,EAAgB,GAAgB,CACpC,mBACA,UACA,MACF,CAAC,EACK,EAAY,GAChB,EACA,EACA,EACA,EACA,EACA,CACF,GACI,IAAS,SAAW,IAAS,cAC/B,EAAY,EAAO,SAErB,EAAO,GAAe,CACpB,SAAU,EACV,QAAS,EACT,MAAO,EACP,aACF,CAAC,EACD,EACE,EACA,EAAuB,CAAE,OAAM,YAAW,eAAc,EAAI,CAAE,OAAM,WAAU,CAChF,EACA,IAAM,EAAO,EAAO,KAChB,IAAS,SAAW,GAAQ,GAC9B,EAAI,iBAAiB,6BAA6B,EAAK,GAAG,EAAE,QAAS,GAAQ,CAC3E,GAAI,IAAQ,EAAQ,CAClB,IAAM,EAAQ,GAAe,CAE3B,SAAU,EACV,QAAS,EACT,MAAO,GAAc,EAAK,EAAS,CAAI,EACvC,aACF,CAAC,EACD,EACE,EACA,EAAuB,CAAE,KAAM,EAAO,UAAW,CAAC,EAAW,cAAe,EAAM,EAAI,CAAE,KAAM,EAAO,UAAW,CAAC,CAAU,CAC7H,CACF,CACF,CAAC,CAEL,CACA,SAAS,EAAY,EAAQ,EAAI,CAC/B,IAAM,EAAiB,GAAkB,IAAI,CAAM,EACnD,GAAI,CAAC,GAAkB,EAAe,OAAS,EAAG,MAAQ,EAAe,YAAc,EAAG,UAAW,CACnG,GAAkB,IAAI,EAAQ,CAAE,EAChC,IAAM,EAAK,EAAQ,MAAM,CAAM,EAC/B,GAAgB,CAAO,EAAE,CACvB,GAAG,EACH,IACF,CAAC,CACH,CACF,CAEA,IAAM,GADS,EAAS,QAAU,OAAS,CAAC,QAAQ,EAAI,CAAC,QAAS,QAAQ,GAClD,IACrB,GAAcA,GAAG,EAAW,GAAgB,CAAY,EAAG,CAAG,CACjE,EACM,EAAgB,EAAI,YAC1B,GAAI,CAAC,EACH,UAAa,CACX,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,EAEF,IAAM,EAAqB,EAAc,OAAO,yBAC9C,EAAc,iBAAiB,UAC/B,OACF,EACM,EAAiB,CACrB,CAAC,EAAc,iBAAiB,UAAW,OAAO,EAClD,CAAC,EAAc,iBAAiB,UAAW,SAAS,EACpD,CAAC,EAAc,kBAAkB,UAAW,OAAO,EACnD,CAAC,EAAc,oBAAoB,UAAW,OAAO,EAErD,CAAC,EAAc,kBAAkB,UAAW,eAAe,EAC3D,CAAC,EAAc,kBAAkB,UAAW,UAAU,CACxD,EAsBA,OArBI,GAAsB,EAAmB,KAC3C,EAAS,KACP,GAAG,EAAe,IACf,GAAM,GACL,EAAE,GACF,EAAE,GACF,CACE,KAAM,CACJ,GAAgB,CAAY,EAAE,CAC5B,OAAQ,KACR,UAAW,EAEb,CAAC,CACH,CACF,EACA,GACA,CACF,CACF,CACF,EAEK,OAAsB,CAC3B,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,CAAC,CACH,CACA,SAAS,GAA0B,EAAM,CACvC,IAAM,EAAY,CAAC,EACnB,SAAS,EAAQ,EAAW,EAAK,CAC/B,GAAI,GAAiB,iBAAiB,GAAK,EAAU,sBAAsB,iBAAmB,GAAiB,cAAc,GAAK,EAAU,sBAAsB,cAAgB,GAAiB,iBAAiB,GAAK,EAAU,sBAAsB,iBAAmB,GAAiB,kBAAkB,GAAK,EAAU,sBAAsB,iBAAkB,CAIpW,IAAM,EAHS,MAAM,KACnB,EAAU,WAAW,QAEJ,EAAE,QAAQ,CAAS,EACtC,EAAI,QAAQ,CAAK,CACnB,MAAO,GAAI,EAAU,iBAAkB,CAErC,IAAM,EADS,MAAM,KAAK,EAAU,iBAAiB,QAClC,EAAE,QAAQ,CAAS,EACtC,EAAI,QAAQ,CAAK,CACnB,CACA,OAAO,CACT,CACA,OAAO,EAAQ,EAAM,CAAS,CAChC,CACA,SAAS,GAAgB,EAAO,EAAS,EAAa,CACpD,IAAI,EAAI,EAIR,OAHK,GACD,EAAM,UAAW,EAAK,EAAQ,MAAM,EAAM,SAAS,EAClD,EAAU,EAAY,MAAM,CAAK,EAC/B,CACL,UACA,IACF,GANmB,CAAC,CAOtB,CACA,SAAS,IAAuB,CAAE,mBAAkB,OAAQ,EAAS,qBAAqB,CAAE,OAAO,CACjG,GAAI,CAAC,EAAI,eAAiB,CAAC,EAAI,cAAc,UAC3C,UAAa,CACb,EAEF,IAAM,EAAa,EAAI,cAAc,UAAU,WAC/C,EAAI,cAAc,UAAU,WAAa,IAAI,MAAM,EAAY,CAC7D,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,EAAM,GAAS,EAChB,CAAE,KAAI,WAAY,GACtB,EACA,EACA,EAAkB,WACpB,EAQA,OAPI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,KAAM,CAAC,CAAE,OAAM,OAAM,CAAC,CACxB,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,EACD,IAAM,EAAa,EAAI,cAAc,UAAU,WAC/C,EAAI,cAAc,UAAU,WAAa,IAAI,MAAM,EAAY,CAC7D,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,GAAS,EACV,CAAE,KAAI,WAAY,GACtB,EACA,EACA,EAAkB,WACpB,EAQA,OAPI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,QAAS,CAAC,CAAE,OAAM,CAAC,CACrB,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,EACD,IAAI,EACA,EAAI,cAAc,UAAU,UAC9B,EAAU,EAAI,cAAc,UAAU,QACtC,EAAI,cAAc,UAAU,QAAU,IAAI,MAAM,EAAS,CACvD,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,GAAQ,EACT,CAAE,KAAI,WAAY,GACtB,EACA,EACA,EAAkB,WACpB,EAQA,OAPI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,QAAS,CACX,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,GAEH,IAAI,EACA,EAAI,cAAc,UAAU,cAC9B,EAAc,EAAI,cAAc,UAAU,YAC1C,EAAI,cAAc,UAAU,YAAc,IAAI,MAAM,EAAa,CAC/D,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,GAAQ,EACT,CAAE,KAAI,WAAY,GACtB,EACA,EACA,EAAkB,WACpB,EAQA,OAPI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,YAAa,CACf,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,GAEH,IAAM,EAA8B,CAAC,EACjC,GAA4B,iBAAiB,EAC/C,EAA4B,gBAAkB,EAAI,iBAE9C,GAA4B,cAAc,IAC5C,EAA4B,aAAe,EAAI,cAE7C,GAA4B,kBAAkB,IAChD,EAA4B,iBAAmB,EAAI,kBAEjD,GAA4B,iBAAiB,IAC/C,EAA4B,gBAAkB,EAAI,kBAGtD,IAAM,EAAsB,CAAC,EAkE7B,OAjEA,OAAO,QAAQ,CAA2B,EAAE,SAAS,CAAC,EAAS,KAAU,CACvE,EAAoB,GAAW,CAE7B,WAAY,EAAK,UAAU,WAE3B,WAAY,EAAK,UAAU,UAC7B,EACA,EAAK,UAAU,WAAa,IAAI,MAC9B,EAAoB,GAAS,WAC7B,CACE,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,EAAM,GAAS,EAChB,CAAE,KAAI,WAAY,GACtB,EAAQ,iBACR,EACA,EAAkB,WACpB,EAiBA,OAhBI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,KAAM,CACJ,CACE,OACA,MAAO,CACL,GAAG,GAA0B,CAAO,EACpC,GAAS,CAEX,CACF,CACF,CACF,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CACF,EACA,EAAK,UAAU,WAAa,IAAI,MAC9B,EAAoB,GAAS,WAC7B,CACE,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,GAAS,EACV,CAAE,KAAI,WAAY,GACtB,EAAQ,iBACR,EACA,EAAkB,WACpB,EAUA,OATI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAiB,CACf,KACA,UACA,QAAS,CACP,CAAE,MAAO,CAAC,GAAG,GAA0B,CAAO,EAAG,CAAK,CAAE,CAC1D,CACF,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CACF,CACF,CAAC,EACM,OAAsB,CAC3B,EAAI,cAAc,UAAU,WAAa,EACzC,EAAI,cAAc,UAAU,WAAa,EACzC,IAAY,EAAI,cAAc,UAAU,QAAU,GAClD,IAAgB,EAAI,cAAc,UAAU,YAAc,GAC1D,OAAO,QAAQ,CAA2B,EAAE,SAAS,CAAC,EAAS,KAAU,CACvE,EAAK,UAAU,WAAa,EAAoB,GAAS,WACzD,EAAK,UAAU,WAAa,EAAoB,GAAS,UAC3D,CAAC,CACH,CAAC,CACH,CACA,SAAS,GAA8B,CACrC,OAAQ,EACR,qBACC,EAAM,CACP,IAAI,EAAS,KACb,CACK,CADD,EAAK,WAAa,YAAsB,EAAQ,MAAM,CAAI,EAChD,EAAQ,MAAM,EAAK,IAAI,EACrC,IAAM,EAAc,EAAK,WAAa,YAAc,EAAK,aAAa,SAAW,EAAK,eAAe,aAAa,WAC5G,EAA6B,GAAa,UAAY,OAAO,yBACjE,GAAa,UACb,oBACF,EAAI,IAAK,GAqBT,OApBI,IAAW,MAAQ,IAAW,IAAM,CAAC,GAAe,CAAC,MAC1C,CACb,GACF,OAAO,eAAe,EAAM,qBAAsB,CAChD,aAAc,EAA2B,aACzC,WAAY,EAA2B,WACvC,KAAM,CACJ,OAAO,EAA2B,KAAK,KAAK,IAAI,CAClD,EACA,IAAI,EAAQ,CACV,IAAM,EAAS,EAA2B,KAAK,KAAK,KAAM,CAAM,EAChE,GAAI,IAAW,MAAQ,IAAW,GAChC,GAAI,CACF,EAAkB,iBAAiB,EAAQ,CAAM,CACnD,MAAa,CACb,CAEF,OAAO,CACT,CACF,CAAC,EACM,OAAsB,CAC3B,OAAO,eAAe,EAAM,qBAAsB,CAChD,aAAc,EAA2B,aACzC,WAAY,EAA2B,WAEvC,IAAK,EAA2B,IAEhC,IAAK,EAA2B,GAClC,CAAC,CACH,CAAC,EACH,CACA,SAAS,IAA6B,CACpC,qBACA,OAAQ,EACR,sBACA,qBACC,CAAE,OAAO,CACV,IAAM,EAAc,EAAI,oBAAoB,UAAU,YACtD,EAAI,oBAAoB,UAAU,YAAc,IAAI,MAAM,EAAa,CACrE,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,EAAU,EAAO,GAAY,EACpC,GAAI,EAAoB,IAAI,CAAQ,EAClC,OAAO,EAAY,MAAM,EAAS,CAAC,EAAU,EAAO,CAAQ,CAAC,EAE/D,GAAM,CAAE,KAAI,WAAY,GACtB,EAAQ,YAAY,iBACpB,EACA,EAAkB,WACpB,EAcA,OAbI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAmB,CACjB,KACA,UACA,IAAK,CACH,WACA,QACA,UACF,EAEA,MAAO,GAA0B,EAAQ,UAAU,CACrD,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,EACD,IAAM,EAAiB,EAAI,oBAAoB,UAAU,eA4BzD,MA3BA,GAAI,oBAAoB,UAAU,eAAiB,IAAI,MAAM,EAAgB,CAC3E,MAAO,IACJ,EAAQ,EAAS,IAAkB,CAClC,GAAM,CAAC,GAAY,EACnB,GAAI,EAAoB,IAAI,CAAQ,EAClC,OAAO,EAAe,MAAM,EAAS,CAAC,CAAQ,CAAC,EAEjD,GAAM,CAAE,KAAI,WAAY,GACtB,EAAQ,YAAY,iBACpB,EACA,EAAkB,WACpB,EAYA,OAXI,GAAM,IAAO,IAAM,GAAW,IAAY,KAC5C,EAAmB,CACjB,KACA,UACA,OAAQ,CACN,UACF,EAEA,MAAO,GAA0B,EAAQ,UAAU,CACrD,CAAC,EAEI,EAAO,MAAM,EAAS,CAAa,CAC5C,CACF,CACF,CAAC,EACM,OAAsB,CAC3B,EAAI,oBAAoB,UAAU,YAAc,EAChD,EAAI,oBAAoB,UAAU,eAAiB,CACrD,CAAC,CACH,CACA,SAAS,IAA6B,CACpC,qBACA,aACA,gBACA,kBACA,OAAQ,EACR,WACA,OACC,CACD,IAAM,EAAU,GACb,GAAS,GACR,GAAiB,GAAU,CACzB,IAAM,EAAS,GAAe,CAAK,EACnC,GAAI,CAAC,GAAU,GACb,EACA,EACA,EACA,EACA,EACF,EACE,OAEF,GAAM,CAAE,cAAa,SAAQ,QAAO,gBAAiB,EACrD,EAAmB,CACjB,OACA,GAAI,EAAQ,MAAM,CAAM,EACxB,cACA,SACA,QACA,cACF,CAAC,CACH,CAAC,EACD,EAAS,OAAS,GACpB,CACF,EACM,EAAW,CACfA,GAAG,OAAQ,EAAQ,GAAkB,IAAI,EAAG,CAAG,EAC/CA,GAAG,QAAS,EAAQ,GAAkB,KAAK,EAAG,CAAG,EACjDA,GAAG,SAAU,EAAQ,GAAkB,MAAM,EAAG,CAAG,EACnDA,GAAG,eAAgB,EAAQ,GAAkB,YAAY,EAAG,CAAG,EAC/DA,GAAG,aAAc,EAAQ,GAAkB,UAAU,EAAG,CAAG,CAC7D,EACA,OAAO,OAAsB,CAC3B,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,CAAC,CACH,CACA,SAAS,IAAiB,CAAE,SAAQ,OAAO,CACzC,IAAM,EAAM,EAAI,YAChB,GAAI,CAAC,EACH,UAAa,CACb,EAEF,IAAM,EAAW,CAAC,EACZ,EAA0B,IAAI,QAC9B,EAAmB,EAAI,SAC7B,EAAI,SAAW,SAAmB,EAAQ,EAAQ,EAAa,CAC7D,IAAM,EAAW,IAAI,EAAiB,EAAQ,EAAQ,CAAW,EAOjE,OANA,EAAQ,IAAI,EAAU,CACpB,SACA,OAAQ,OAAO,GAAW,SAC1B,cACA,WAAY,OAAO,GAAW,SAAW,EAAS,KAAK,UAAU,MAAM,KAAK,IAAI,WAAW,CAAM,CAAC,CAAC,CACrG,CAAC,EACM,CACT,EACA,IAAM,EAAiB,GACrB,EAAI,MACJ,MACA,SAAS,EAAU,CACjB,OAAO,SAAS,EAAU,CAWxB,OAVA,GACE,OAAsB,CACpB,IAAM,EAAI,EAAQ,IAAI,CAAQ,EAC1B,IACF,EAAO,CAAC,EACR,EAAQ,OAAO,CAAQ,EAE3B,CAAC,EACD,CACF,EACO,EAAS,MAAM,KAAM,CAAC,CAAQ,CAAC,CACxC,CACF,CACF,EAKA,OAJA,EAAS,SAAW,CAClB,EAAI,SAAW,CACjB,CAAC,EACD,EAAS,KAAK,CAAc,EACrB,OAAsB,CAC3B,EAAS,QAAS,GAAM,EAAE,CAAC,CAC7B,CAAC,CACH,CACA,SAAS,IAAsB,EAAO,CACpC,GAAM,CACJ,MACA,OAAQ,EACR,aACA,gBACA,kBACA,eACE,EACA,EAAY,GACV,EAAkB,OAAsB,CAC5C,IAAM,EAAY,EAAI,aAAa,EACnC,GAAI,CAAC,GAAa,GAAa,GAAW,YAAa,OACvD,EAAY,EAAU,aAAe,GACrC,IAAM,EAAS,CAAC,EACV,EAAQ,EAAU,YAAc,EACtC,IAAK,IAAI,EAAK,EAAG,EAAK,EAAO,IAAM,CAEjC,GAAM,CAAE,iBAAgB,cAAa,eAAc,aADrC,EAAU,WAAW,CACkC,EACrD,GACd,EACA,EACA,EACA,EACA,EACF,GAAK,GACH,EACA,EACA,EACA,EACA,EACF,GAEA,EAAO,KAAK,CACV,MAAO,EAAQ,MAAM,CAAc,EACnC,cACA,IAAK,EAAQ,MAAM,CAAY,EAC/B,WACF,CAAC,CACH,CACA,EAAY,CAAE,QAAO,CAAC,CACxB,CAAC,EAED,OADA,EAAgB,EACTA,GAAG,kBAAmB,CAAe,CAC9C,CACA,SAAS,IAA0B,CACjC,MACA,mBACC,CACD,IAAM,EAAM,EAAI,YAoBhB,MAnBI,CAAC,GAAO,CAAC,EAAI,mBAA6B,CAC9C,EACuB,GACrB,EAAI,eACJ,SACA,SAAS,EAAU,CACjB,OAAO,SAAS,EAAM,EAAa,EAAS,CAC1C,GAAI,CACF,EAAgB,CACd,OAAQ,CACN,MACF,CACF,CAAC,CACH,MAAa,CACb,CACA,OAAO,EAAS,MAAM,KAAM,CAAC,EAAM,EAAa,CAAO,CAAC,CAC1D,CACF,CAEkB,CACtB,CACA,SAAS,IAAc,EAAI,EAAS,CAAC,EAAG,CACtC,IAAM,EAAgB,EAAG,IAAI,YAC7B,GAAI,CAAC,EACH,UAAa,CACb,EAEF,IAAI,EACA,EAAG,YACL,EAAmB,GAAqB,EAAI,EAAG,GAAG,GAEpD,IAAM,EAAmB,IAAiB,CAAE,EACtC,EAA0B,IAA6B,CAAE,EACzD,EAAgB,GAAmB,CAAE,EACrC,EAAwB,IAA2B,EAAI,CAC3D,IAAK,CACP,CAAC,EACK,EAAe,IAAkB,CAAE,EACnC,EAA0B,IAA6B,CAAE,EAC3D,MAA2B,CAC/B,EACI,MAAkC,CACtC,EACI,MAAiC,CACrC,EACI,MAAqB,CACzB,EACI,EAAG,YACL,EAAqB,IAAuB,EAAI,CAAE,IAAK,CAAc,CAAC,EACtE,EAA4B,GAA8B,EAAI,EAAG,GAAG,EACpE,EAA2B,IAA6B,EAAI,CAC1D,IAAK,CACP,CAAC,EACG,EAAG,eACL,EAAe,IAAiB,CAAE,IAGtC,IAAM,EAAoB,IAAsB,CAAE,EAC5C,EAAwB,IAA0B,CAAE,EACpD,EAAiB,CAAC,EACxB,IAAK,IAAM,KAAU,EAAG,QACtB,EAAe,KACb,EAAO,SAAS,EAAO,SAAU,EAAe,EAAO,OAAO,CAChE,EAEF,OAAO,OAAsB,CAC3B,GAAgB,QAAS,GAAM,EAAE,MAAM,CAAC,EACxC,GAAkB,WAAW,EAC7B,EAAiB,EACjB,EAAwB,EACxB,EAAc,EACd,EAAsB,EACtB,EAAa,EACb,EAAwB,EACxB,EAAmB,EACnB,EAA0B,EAC1B,EAAyB,EACzB,EAAa,EACb,EAAkB,EAClB,EAAsB,EACtB,EAAe,QAAS,GAAM,EAAE,CAAC,CACnC,CAAC,CACH,CACA,SAAS,GAAiB,EAAM,CAC9B,OAAc,OAAO,KAAU,MACjC,CACA,SAAS,GAA4B,EAAM,CACzC,MAAO,GACE,OAAO,KAAU,QAExB,OAAO,GAAM,WAAa,eAAgB,OAAO,GAAM,WAAa,eAAgB,OAAO,GAAM,UAErG,CACA,IAAM,GAAN,KAA8B,CAC5B,YAAY,EAAc,CACxB,KAAK,aAAe,EACpB,KAAK,sBAAwC,IAAI,QACjD,KAAK,sBAAwC,IAAI,OACnD,CACA,MAAM,EAAQ,EAAU,EAAe,EAAe,CACpD,IAAM,EAAkB,GAAiB,KAAK,mBAAmB,CAAM,EACjE,EAAkB,GAAiB,KAAK,mBAAmB,CAAM,EACnE,EAAK,EAAgB,IAAI,CAAQ,EAMrC,OALK,IACH,EAAK,KAAK,aAAa,EACvB,EAAgB,IAAI,EAAU,CAAE,EAChC,EAAgB,IAAI,EAAI,CAAQ,GAE3B,CACT,CACA,OAAO,EAAQ,EAAU,CACvB,IAAM,EAAkB,KAAK,mBAAmB,CAAM,EAChD,EAAkB,KAAK,mBAAmB,CAAM,EACtD,OAAO,EAAS,IACb,GAAO,KAAK,MAAM,EAAQ,EAAI,EAAiB,CAAe,CACjE,CACF,CACA,YAAY,EAAQ,EAAI,EAAK,CAC3B,IAAM,EAAkB,GAAO,KAAK,mBAAmB,CAAM,EAI7D,OAHI,OAAO,GAAO,SACD,EAAgB,IAAI,CAChC,GAAiB,GAFa,CAIrC,CACA,aAAa,EAAQ,EAAK,CACxB,IAAM,EAAkB,KAAK,mBAAmB,CAAM,EACtD,OAAO,EAAI,IAAK,GAAO,KAAK,YAAY,EAAQ,EAAI,CAAe,CAAC,CACtE,CACA,MAAM,EAAQ,CACZ,GAAI,CAAC,EAAQ,CACX,KAAK,sBAAwC,IAAI,QACjD,KAAK,sBAAwC,IAAI,QACjD,MACF,CACA,KAAK,sBAAsB,OAAO,CAAM,EACxC,KAAK,sBAAsB,OAAO,CAAM,CAC1C,CACA,mBAAmB,EAAQ,CACzB,IAAI,EAAkB,KAAK,sBAAsB,IAAI,CAAM,EAK3D,OAJK,IACH,EAAkC,IAAI,IACtC,KAAK,sBAAsB,IAAI,EAAQ,CAAe,GAEjD,CACT,CACA,mBAAmB,EAAQ,CACzB,IAAI,EAAkB,KAAK,sBAAsB,IAAI,CAAM,EAK3D,OAJK,IACH,EAAkC,IAAI,IACtC,KAAK,sBAAsB,IAAI,EAAQ,CAAe,GAEjD,CACT,CACF,EACM,IAAN,KAAwB,CACtB,aAAc,CACZ,KAAK,wBAA0B,IAAI,GAAwB,EAAK,EAChE,KAAK,2BAA6C,IAAI,OACxD,CACA,WAAY,CACZ,CACA,iBAAkB,CAClB,CACA,cAAe,CACf,CACF,EACM,IAAN,KAAoB,CAClB,YAAY,EAAS,CACnB,KAAK,QAA0B,IAAI,QACnC,KAAK,qBAAuC,IAAI,QAChD,KAAK,wBAA0B,IAAI,GAAwB,EAAK,EAChE,KAAK,2BAA6C,IAAI,QACtD,KAAK,WAAa,EAAQ,WAC1B,KAAK,YAAc,EAAQ,YAC3B,KAAK,kBAAoB,EAAQ,kBACjC,KAAK,yBAA2B,EAAQ,yBACxC,KAAK,6BAA+B,IAAI,GACtC,KAAK,kBAAkB,YAAY,WAAW,KAC5C,KAAK,kBAAkB,WACzB,CACF,EACA,KAAK,OAAS,EAAQ,OAClB,KAAK,0BACP,OAAO,iBAAiB,UAAW,KAAK,cAAc,KAAK,IAAI,CAAC,CAEpE,CACA,UAAU,EAAU,CAClB,KAAK,QAAQ,IAAI,EAAU,EAAI,EAC/B,IAAM,EAAgB,GAAuB,CAAQ,EACjD,GAAe,KAAK,qBAAqB,IAAI,EAAe,CAAQ,CAC1E,CACA,gBAAgB,EAAI,CAClB,KAAK,aAAe,CACtB,CACA,aAAa,EAAU,EAAS,CAC9B,KAAK,WAAW,CACd,KAAM,CACJ,CACE,SAAU,KAAK,OAAO,MAAM,CAAQ,EACpC,OAAQ,KACR,KAAM,CACR,CACF,EACA,QAAS,CAAC,EACV,MAAO,CAAC,EACR,WAAY,CAAC,EACb,eAAgB,EAClB,CAAC,EACG,KAAK,0BACP,GAAuB,CAAQ,GAAG,iBAChC,UACA,KAAK,cAAc,KAAK,IAAI,CAC9B,EAEF,KAAK,eAAe,CAAQ,EAC5B,IAAM,EAAY,GAAyB,CAAQ,EAC/C,GAAa,EAAU,oBAAsB,EAAU,mBAAmB,OAAS,GACrF,KAAK,kBAAkB,iBACrB,EAAU,mBACV,KAAK,OAAO,MAAM,CAAS,CAC7B,CACJ,CACA,cAAc,EAAS,CACrB,IAAM,EAA0B,EAKhC,GAJI,EAAwB,KAAK,OAAS,SAC1C,EAAwB,SAAW,EAAwB,KAAK,QAG5D,CADuB,EAAQ,OACV,OACzB,IAAM,EAAW,KAAK,qBAAqB,IAAI,EAAQ,MAAM,EAC7D,GAAI,CAAC,EAAU,OACf,IAAM,EAAmB,KAAK,0BAC5B,EACA,EAAwB,KAAK,KAC/B,EACI,GACF,KAAK,YACH,EACA,EAAwB,KAAK,UAC/B,CACJ,CACA,0BAA0B,EAAU,EAAI,CACtC,OAAQ,EAAG,KAAX,CACE,KAAK,GAAU,aAAc,CAC3B,KAAK,wBAAwB,MAAM,CAAQ,EAC3C,KAAK,6BAA6B,MAAM,CAAQ,EAChD,KAAK,gBAAgB,EAAG,KAAK,KAAM,CAAQ,EAC3C,IAAM,EAAS,EAAG,KAAK,KAAK,GAG5B,OAFA,KAAK,2BAA2B,IAAI,EAAU,CAAM,EACpD,KAAK,kBAAkB,EAAG,KAAK,KAAM,CAAM,EACpC,CACL,UAAW,EAAG,UACd,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,SAC1B,KAAM,CACJ,CACE,SAAU,KAAK,OAAO,MAAM,CAAQ,EACpC,OAAQ,KACR,KAAM,EAAG,KAAK,IAChB,CACF,EACA,QAAS,CAAC,EACV,MAAO,CAAC,EACR,WAAY,CAAC,EACb,eAAgB,EAClB,CACF,CACF,CACA,KAAK,GAAU,KACf,KAAK,GAAU,KACf,KAAK,GAAU,iBACb,MAAO,GAET,KAAK,GAAU,OACb,OAAO,EAET,KAAK,GAAU,OAMb,OALA,KAAK,WACH,EAAG,KAAK,QACR,EACA,CAAC,KAAM,WAAY,aAAc,QAAQ,CAC3C,EACO,EAET,KAAK,GAAU,oBACb,OAAQ,EAAG,KAAK,OAAhB,CACE,KAAK,GAAkB,SAoBrB,OAnBA,EAAG,KAAK,KAAK,QAAS,GAAO,CAC3B,KAAK,WAAW,EAAI,EAAU,CAC5B,WACA,SACA,YACF,CAAC,EACD,KAAK,gBAAgB,EAAG,KAAM,CAAQ,EACtC,IAAM,EAAS,KAAK,2BAA2B,IAAI,CAAQ,EAC3D,GAAU,KAAK,kBAAkB,EAAG,KAAM,CAAM,CAClD,CAAC,EACD,EAAG,KAAK,QAAQ,QAAS,GAAO,CAC9B,KAAK,WAAW,EAAI,EAAU,CAAC,WAAY,IAAI,CAAC,CAClD,CAAC,EACD,EAAG,KAAK,WAAW,QAAS,GAAO,CACjC,KAAK,WAAW,EAAI,EAAU,CAAC,IAAI,CAAC,CACtC,CAAC,EACD,EAAG,KAAK,MAAM,QAAS,GAAO,CAC5B,KAAK,WAAW,EAAI,EAAU,CAAC,IAAI,CAAC,CACtC,CAAC,EACM,EAET,KAAK,GAAkB,KACvB,KAAK,GAAkB,UACvB,KAAK,GAAkB,UAIrB,OAHA,EAAG,KAAK,UAAU,QAAS,GAAM,CAC/B,KAAK,WAAW,EAAG,EAAU,CAAC,IAAI,CAAC,CACrC,CAAC,EACM,EAET,KAAK,GAAkB,eACrB,MAAO,GAET,KAAK,GAAkB,iBACvB,KAAK,GAAkB,iBACvB,KAAK,GAAkB,OACvB,KAAK,GAAkB,eACvB,KAAK,GAAkB,MAErB,OADA,KAAK,WAAW,EAAG,KAAM,EAAU,CAAC,IAAI,CAAC,EAClC,EAET,KAAK,GAAkB,eACvB,KAAK,GAAkB,iBAGrB,OAFA,KAAK,WAAW,EAAG,KAAM,EAAU,CAAC,IAAI,CAAC,EACzC,KAAK,gBAAgB,EAAG,KAAM,EAAU,CAAC,SAAS,CAAC,EAC5C,EAET,KAAK,GAAkB,KACrB,OAAO,EAET,KAAK,GAAkB,UAIrB,OAHA,EAAG,KAAK,OAAO,QAAS,GAAU,CAChC,KAAK,WAAW,EAAO,EAAU,CAAC,QAAS,KAAK,CAAC,CACnD,CAAC,EACM,EAET,KAAK,GAAkB,kBAMrB,OALA,KAAK,WAAW,EAAG,KAAM,EAAU,CAAC,IAAI,CAAC,EACzC,KAAK,gBAAgB,EAAG,KAAM,EAAU,CAAC,UAAU,CAAC,EACpD,EAAG,KAAK,QAAQ,QAAS,GAAU,CACjC,KAAK,gBAAgB,EAAO,EAAU,CAAC,SAAS,CAAC,CACnD,CAAC,EACM,CAEX,CAEJ,CACA,MAAO,EACT,CACA,QAAQ,EAAc,EAAK,EAAU,EAAM,CACzC,IAAK,IAAM,KAAO,EACZ,CAAC,MAAM,QAAQ,EAAI,EAAI,GAAK,OAAO,EAAI,IAAS,WAChD,MAAM,QAAQ,EAAI,EAAI,EACxB,EAAI,GAAO,EAAa,OACtB,EACA,EAAI,EACN,EAEA,EAAI,GAAO,EAAa,MAAM,EAAU,EAAI,EAAI,GAGpD,OAAO,CACT,CACA,WAAW,EAAK,EAAU,EAAM,CAC9B,OAAO,KAAK,QAAQ,KAAK,wBAAyB,EAAK,EAAU,CAAI,CACvE,CACA,gBAAgB,EAAK,EAAU,EAAM,CACnC,OAAO,KAAK,QAAQ,KAAK,6BAA8B,EAAK,EAAU,CAAI,CAC5E,CACA,gBAAgB,EAAM,EAAU,CAC9B,KAAK,WAAW,EAAM,EAAU,CAAC,KAAM,QAAQ,CAAC,EAC5C,eAAgB,GAClB,EAAK,WAAW,QAAS,GAAU,CACjC,KAAK,gBAAgB,EAAO,CAAQ,CACtC,CAAC,CAEL,CACA,kBAAkB,EAAM,EAAQ,CAC1B,EAAK,OAAS,GAAW,UAAY,CAAC,EAAK,SAAQ,EAAK,OAAS,GACjE,eAAgB,GAClB,EAAK,WAAW,QAAS,GAAU,CACjC,KAAK,kBAAkB,EAAO,CAAM,CACtC,CAAC,CAEL,CACF,EACM,IAAN,KAA2B,CACzB,MAAO,CACP,CACA,eAAgB,CAChB,CACA,qBAAsB,CACtB,CACA,OAAQ,CACR,CACF,EACM,IAAN,KAAuB,CACrB,YAAY,EAAS,CACnB,KAAK,WAA6B,IAAI,QACtC,KAAK,gBAAkB,CAAC,EACxB,KAAK,WAAa,EAAQ,WAC1B,KAAK,SAAW,EAAQ,SACxB,KAAK,cAAgB,EAAQ,cAC7B,KAAK,OAAS,EAAQ,OACtB,KAAK,KAAK,CACZ,CACA,MAAO,CACL,KAAK,MAAM,EACX,KAAK,kBAAkB,QAAS,QAAQ,CAC1C,CACA,cAAc,EAAY,EAAK,CAE7B,GADI,CAAC,GAAkB,CAAU,GAC7B,KAAK,WAAW,IAAI,CAAU,EAAG,OACrC,KAAK,WAAW,IAAI,CAAU,EAC9B,KAAK,cAAc,cAAc,cAAc,CAAU,EACzD,IAAM,EAAW,GACf,CACE,GAAG,KAAK,cACR,MACA,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,iBAAkB,IACpB,EACA,CACF,EACA,KAAK,gBAAgB,SAAW,EAAS,WAAW,CAAC,EACrD,KAAK,gBAAgB,KACnB,GAAmB,CACjB,GAAG,KAAK,cACR,SAAU,KAAK,SAGf,IAAK,EACL,OAAQ,KAAK,MACf,CAAC,CACH,EACA,OAAmB,CACb,EAAW,oBAAsB,EAAW,mBAAmB,OAAS,GAC1E,KAAK,cAAc,kBAAkB,iBACnC,EAAW,mBACX,KAAK,OAAO,MAAM,EAAW,IAAI,CACnC,EACF,KAAK,gBAAgB,KACnB,GACE,CACE,OAAQ,KAAK,OACb,kBAAmB,KAAK,cAAc,iBACxC,EACA,CACF,CACF,CACF,EAAG,CAAC,CACN,CAIA,oBAAoB,EAAe,CACjC,IAAM,EAAY,GAAyB,CAAa,EAClD,EAAe,GAAuB,CAAa,EACrD,CAAC,GAAa,CAAC,GACnB,KAAK,kBACH,EAAa,QACb,CACF,CACF,CAIA,kBAAkB,EAAS,EAAK,CAC9B,IAAM,EAAU,KAChB,KAAK,gBAAgB,KACnB,GACE,EAAQ,UACR,eACA,SAAS,EAAU,CACjB,OAAO,SAAS,EAAQ,CACtB,IAAM,EAAa,EAAS,KAAK,KAAM,CAAM,EAG7C,OAFI,KAAK,YAAc,GAAM,IAAI,GAC/B,EAAQ,cAAc,KAAK,WAAY,CAAG,EACrC,CACT,CACF,CACF,CACF,CACF,CACA,OAAQ,CACN,KAAK,gBAAgB,QAAS,GAAY,CACxC,GAAI,CACF,EAAQ,CACV,MAAa,CACb,CACF,CAAC,EACD,KAAK,gBAAkB,CAAC,EACxB,KAAK,WAA6B,IAAI,QACtC,KAAK,cAAc,cAAc,iBAAiB,CACpD,CACF,EACM,IAAN,KAAwB,CACtB,YAAY,EAAS,CACnB,KAAK,oBAAsC,IAAI,QAC/C,KAAK,YAAc,IAAI,IACvB,KAAK,WAAa,EAAQ,WAC1B,KAAK,oBAAsB,EAAQ,mBACrC,CACA,kBAAkB,EAAQ,EAAS,CAC7B,aAAc,EAAQ,YACxB,KAAK,WAAW,CACd,KAAM,CAAC,EACP,QAAS,CAAC,EACV,MAAO,CAAC,EACR,WAAY,CACV,CACE,GAAI,EAAQ,GACZ,WAAY,EAAQ,UACtB,CACF,CACF,CAAC,EACH,KAAK,iBAAiB,CAAM,CAC9B,CACA,iBAAiB,EAAQ,CACnB,KAAK,oBAAoB,IAAI,CAAM,IACvC,KAAK,oBAAoB,IAAI,CAAM,EACnC,KAAK,6BAA6B,CAAM,EAC1C,CACA,iBAAiB,EAAQ,EAAQ,CAC/B,GAAI,EAAO,SAAW,EAAG,OACzB,IAAM,EAAwB,CAC5B,GAAI,EACJ,SAAU,CAAC,CACb,EACM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAS,EAAQ,CAC1B,IAAI,EACC,KAAK,YAAY,IAAI,CAAK,EASxB,EAAU,KAAK,YAAY,MAAM,CAAK,GAR3C,EAAU,KAAK,YAAY,IAAI,CAAK,EACpC,EAAO,KAAK,CACV,UACA,MAAO,MAAM,KAAK,EAAM,OAAS,SAAU,EAAI,KAAW,CACxD,KAAM,GAAc,CAAE,EACtB,OACF,EAAE,CACJ,CAAC,GAEH,EAAsB,SAAS,KAAK,CAAO,CAC7C,CACI,EAAO,OAAS,IAAG,EAAsB,OAAS,GACtD,KAAK,oBAAoB,CAAqB,CAChD,CACA,OAAQ,CACN,KAAK,YAAY,MAAM,EACvB,KAAK,oBAAsC,IAAI,OACjD,CAEA,6BAA6B,EAAS,CACtC,CACF,EACM,IAAN,KAA2B,CACzB,aAAc,CACZ,KAAK,QAA0B,IAAI,QACnC,KAAK,OAAS,EAChB,CACA,cAAc,EAAM,EAAY,CAC9B,IAAM,EAAU,KAAK,QAAQ,IAAI,CAAI,EACrC,OAAO,GAAW,MAAM,KAAK,CAAO,EAAE,KAAM,GAAW,IAAW,CAAU,CAC9E,CACA,IAAI,EAAM,EAAQ,CACX,KAAK,SACR,KAAK,OAAS,GACd,QAA8B,CAC5B,KAAK,QAA0B,IAAI,QACnC,KAAK,OAAS,EAChB,CAAC,GAEH,KAAK,QAAQ,IAAI,GAAO,KAAK,QAAQ,IAAI,CAAI,GAAqB,IAAI,KAAO,IAAI,CAAM,CAAC,CAC1F,CACA,SAAU,CACV,CACF,EACI,GACA,GACJ,GAAI,CACF,GAAI,MAAM,KAAK,CAAC,CAAC,EAAI,GAAM,EAAI,CAAC,EAAE,KAAO,EAAG,CAC1C,IAAM,EAAa,SAAS,cAAc,QAAQ,EAClD,SAAS,KAAK,YAAY,CAAU,EACpC,MAAM,KAAO,EAAW,eAAe,MAAM,MAAQ,MAAM,KAC3D,SAAS,KAAK,YAAY,CAAU,CACtC,CACF,OAAS,EAAK,CACZ,QAAQ,MAAM,gCAAiC,CAAG,CACpD,CACA,IAAM,GAAS,IAAa,EAC5B,SAAS,GAAO,EAAU,CAAC,EAAG,CAC5B,GAAM,CACJ,OACA,mBACA,mBACA,aAAa,WACb,gBAAgB,KAChB,kBAAkB,KAClB,cAAc,YACd,iBAAiB,KACjB,cAAc,GACd,gBAAgB,UAChB,kBAAkB,KAClB,mBAAmB,KACnB,qBAAqB,KACrB,mBAAmB,GACnB,gBACA,iBAAkB,EAClB,eAAgB,EAChB,kBACA,cACA,aACA,gBAAgB,KAChB,SACA,WAAW,CAAC,EACZ,iBAAiB,CAAC,EAClB,gBACA,YAAY,GACZ,eAAe,GACf,2BAA2B,GAC3B,cAAc,EAAQ,cAAgB,mBAAqB,EAAQ,YAAc,OACjF,wBAAuB,GACvB,gBAAe,GACf,gBAAe,GACf,UACA,uBAAwB,GACxB,uBAAsC,IAAI,IAAI,CAAC,CAAC,EAChD,gBACA,cACA,qBACE,EACJ,IAAqB,EAAY,EACjC,IAAM,GAAkB,EAA2B,OAAO,SAAW,OAAS,GAC1E,GAAoB,GACxB,GAAI,CAAC,GACH,GAAI,CACE,OAAO,OAAO,WAChB,GAAoB,GAExB,MAAa,CACX,GAAoB,EACtB,CAEF,GAAI,IAAmB,CAAC,EACtB,MAAU,MAAM,2BAA2B,EAE7C,GAAI,CAAC,IAAmB,CAAC,GACvB,UAAa,CACb,EAEE,IAAkB,IAAK,IAAK,EAAS,YAAc,IAAK,KAC1D,EAAS,UAAY,GAEvB,GAAO,MAAM,EACb,IAAM,GAAmB,IAAkB,GAAO,CAChD,MAAO,GACP,KAAM,GACN,iBAAkB,GAClB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,MAAO,GACP,OAAQ,GACR,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,GACL,KAAM,GACN,SAAU,GACV,OAAQ,GACR,MAAO,GACP,SAAU,EACZ,EAAI,IAAsB,IAAK,GAAwB,CAAC,EAArB,EAC7B,GAAiB,IAAoB,IAAQ,IAAoB,MAAQ,CAC7E,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,qBAAsB,GAGtB,mBAAoB,IAAoB,MACxC,qBAAsB,IAAoB,KAC5C,EAAI,GAAoC,CAAC,EACzC,IAAS,EACT,IAAI,GACA,GAA2B,EACzB,GAAkB,GAAO,CAC7B,IAAK,IAAM,KAAU,GAAW,CAAC,EAC3B,EAAO,iBACT,EAAK,EAAO,eAAe,CAAE,GAOjC,OAJI,GACJ,CAAC,KACC,EAAK,EAAO,CAAE,GAET,CACT,EACA,IAAe,EAAI,IAAe,CAChC,IAAM,EAAK,EAKX,GAJA,EAAG,UAAY,GAAa,EACxB,GAAgB,IAAI,SAAS,GAAK,EAAG,OAAS,GAAU,cAAgB,EAAE,EAAG,OAAS,GAAU,qBAAuB,EAAG,KAAK,SAAW,GAAkB,WAC9J,GAAgB,QAAS,GAAQ,EAAI,SAAS,CAAC,EAE7C,GACF,IAAO,GAAe,CAAE,EAAG,CAAU,OAChC,GAAI,GAAmB,CAC5B,IAAM,EAAU,CACd,KAAM,QACN,MAAO,GAAe,CAAE,EACxB,OAAQ,OAAO,SAAS,OACxB,YACF,EACA,OAAO,OAAO,YAAY,EAAS,GAAG,CACxC,CACA,GAAI,EAAG,OAAS,GAAU,aACxB,GAAwB,EACxB,GAA2B,OACtB,GAAI,EAAG,OAAS,GAAU,oBAAqB,CACpD,GAAI,EAAG,KAAK,SAAW,GAAkB,UAAY,EAAG,KAAK,eAC3D,OAEF,KACA,IAAM,EAAc,GAAoB,IAA4B,EAC9D,EAAa,GAAoB,IAAyB,EAAG,UAAY,GAAsB,UAAY,GAC7G,GAAe,IACjB,GAAkB,EAAI,CAE1B,CACF,EACA,IAAM,GAAuB,GAAM,CACjC,GAAY,CACV,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,SAC1B,GAAG,CACL,CACF,CAAC,CACH,EACM,GAAqB,GAAM,GAAY,CAC3C,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,OAC1B,GAAG,CACL,CACF,CAAC,EACK,GAA6B,GAAM,GAAY,CACnD,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,eAC1B,GAAG,CACL,CACF,CAAC,EAQK,GAAoB,IAAI,IAAkB,CAC9C,WAAY,GACZ,oBAToC,GAAO,GAAY,CACvD,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,kBAC1B,GAAG,CACL,CACF,CAAC,CAID,CAAC,EACK,GAAgB,OAAO,0BAA6B,WAAa,yBAA2B,IAAI,IAAsB,IAAI,IAAc,CAC5I,UACA,WAAY,GACZ,qBACA,2BACA,cACF,CAAC,EACD,IAAK,IAAM,KAAU,GAAW,CAAC,EAC3B,EAAO,WACT,EAAO,UAAU,CACf,WAAY,GACZ,wBAAyB,GAAc,wBACvC,6BAA8B,GAAc,4BAC9C,CAAC,EAEL,IAAM,GAAuB,IAAI,IAC3B,GAAgB,IACpB,GACA,CACE,UACA,IAAK,OACL,WAAa,GAAM,GAAY,CAC7B,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,eAC1B,GAAG,CACL,CACF,CAAC,EACD,eACA,aACA,gBACA,kBACA,gBACA,SAAU,EAAS,OACnB,iBACA,eACF,CACF,EACM,GAAmB,OAAO,8BAAiC,WAAa,6BAA+B,IAAI,IAAyB,IAAI,IAAiB,CAC7J,WAAY,GACZ,SAAU,GACV,cAAe,CACb,cACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,oBACA,iBACA,kBACA,aACA,cACA,eACA,gBACA,WACA,kBACA,iBACA,qBACA,iBACA,mBACA,wBACA,sBACF,EACA,SACF,CAAC,EACK,IAAqB,EAAa,KAAU,CAChD,GAAI,CAAC,EACH,OAEF,GACE,CACE,KAAM,GAAU,KAChB,KAAM,CACJ,KAAM,OAAO,SAAS,KACtB,MAAO,GAAe,EACtB,OAAQ,GAAgB,CAC1B,CACF,EACA,CACF,EACA,GAAkB,MAAM,EACxB,GAAiB,KAAK,EACtB,GAAgB,QAAS,GAAQ,EAAI,KAAK,CAAC,EAC3C,IAAM,EAAO,IAAS,SAAU,CAC9B,UACA,aACA,gBACA,kBACA,cACA,gBACA,kBACA,mBACA,qBACA,mBACA,cAAe,GACf,kBACA,cACA,aACA,QAAS,GACT,iBACA,eACA,gBACA,YAAc,GAAO,CACf,GAAmB,EAAI,EAAM,GAC/B,GAAc,UAAU,CAAE,EAExB,GAAuB,EAAI,EAAM,GACnC,GAAkB,iBAAiB,CAAE,EAEnC,GAAc,CAAE,GAClB,GAAiB,cAAc,EAAG,WAAY,QAAQ,CAE1D,EACA,cAAe,EAAQ,IAAY,CACjC,GAAc,aAAa,EAAQ,CAAO,EAC1C,IAAM,EAAgB,GAAuB,CAAM,EAC/C,GACF,GAAc,UAAU,CAAa,EAEvC,GAAiB,oBAAoB,CAAM,CAC7C,EACA,kBAAmB,EAAQ,IAAY,CACrC,GAAkB,kBAAkB,EAAQ,CAAO,CACrD,EACA,oBAAqB,EAAU,EAAgB,CAAE,QAAO,YAAa,CACnE,GAAoB,CAClB,KAAM,CAAC,EACP,QAAS,CAAC,EACV,MAAO,CAAC,EACR,WAAY,CACV,CACE,GAAI,EAAe,GACnB,WAAY,CACV,MAAO,CACL,MAAO,GAAG,EAAM,IAChB,OAAQ,GAAG,EAAO,GACpB,CACF,CACF,CACF,CACF,CAAC,CACH,EACA,mBACA,sBACF,CAAC,EACD,GAAI,CAAC,EACH,OAAO,QAAQ,KAAK,iCAAiC,EAEvD,GAAY,CACV,KAAM,GAAU,aAChB,KAAM,CACJ,OACA,cAAe,GAAgB,MAAM,CACvC,CACF,CAAC,EACD,GAAgB,QAAS,GAAQ,EAAI,OAAO,CAAC,EACzC,SAAS,oBAAsB,SAAS,mBAAmB,OAAS,GACtE,GAAkB,iBAChB,SAAS,mBACT,GAAO,MAAM,QAAQ,CACvB,CACJ,EACA,GAAoB,GACpB,GAAI,CACF,IAAM,EAAW,CAAC,EACZ,EAAW,GACR,GAAgB,GAAa,EAClC,CACE,cACA,WAAY,GACZ,aAAc,EAAW,IAAW,GAAY,CAC9C,KAAM,GAAU,oBAChB,KAAM,CACJ,SACA,WACF,CACF,CAAC,EACD,mBAAqB,GAAM,GAAY,CACrC,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,iBAC1B,GAAG,CACL,CACF,CAAC,EACD,SAAU,GACV,iBAAmB,GAAM,GAAY,CACnC,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,eAC1B,GAAG,CACL,CACF,CAAC,EACD,QAAU,GAAO,GAAY,CAC3B,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,MAC1B,GAAG,CACL,CACF,CAAC,EACD,mBAAqB,GAAM,GAAY,CACrC,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,iBAC1B,GAAG,CACL,CACF,CAAC,EACD,iBAAmB,GAAO,GAAY,CACpC,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,eAC1B,GAAG,CACL,CACF,CAAC,EACD,mBAAqB,GAAO,GAAY,CACtC,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,iBAC1B,GAAG,CACL,CACF,CAAC,EACD,iBAAkB,GAClB,OAAS,GAAM,GAAY,CACzB,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,KAC1B,GAAG,CACL,CACF,CAAC,EACD,YAAc,GAAM,CAClB,GAAY,CACV,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,UAC1B,GAAG,CACL,CACF,CAAC,CACH,EACA,gBAAkB,GAAO,CACvB,GAAY,CACV,KAAM,GAAU,oBAChB,KAAM,CACJ,OAAQ,GAAkB,cAC1B,GAAG,CACL,CACF,CAAC,CACH,EACA,aACA,cACA,iBACA,cACA,gBACA,kBACA,mBACA,qBACA,oBACA,mBACA,WACA,YACA,eACA,gBACA,wBACA,gBACA,MACA,kBACA,cACA,aACA,mBACA,gBACA,kBACA,kBACA,iBACA,UACA,iBACA,qBACA,oBACA,wBACA,iBACA,uBACA,QAAS,GAAS,OAAQ,GAAM,EAAE,QAAQ,GAAG,IAAK,IAAO,CACvD,SAAU,EAAE,SACZ,QAAS,EAAE,QACX,SAAW,GAAY,GAAY,CACjC,KAAM,GAAU,OAChB,KAAM,CACJ,OAAQ,EAAE,KACV,SACF,CACF,CAAC,CACH,EAAE,GAAK,CAAC,CACV,EACA,CAAC,CACH,EAEF,GAAc,gBAAiB,GAAa,CAC1C,GAAI,CACF,EAAS,KAAK,EAAQ,EAAS,eAAe,CAAC,CACjD,OAAS,EAAO,CACd,QAAQ,KAAK,CAAK,CACpB,CACF,CAAC,EACD,IAAM,MAAa,CACjB,GAAkB,EAClB,EAAS,KAAK,EAAQ,QAAQ,CAAC,CACjC,EA2BA,OA1BI,SAAS,aAAe,eAAiB,SAAS,aAAe,WACnE,EAAK,GAEL,EAAS,KACPA,GAAG,uBAA0B,CAC3B,GAAY,CACV,KAAM,GAAU,iBAChB,KAAM,CAAC,CACT,CAAC,EACG,IAAgB,oBAAoB,EAAK,CAC/C,CAAC,CACH,EACA,EAAS,KACPA,GACE,WACM,CACJ,GAAY,CACV,KAAM,GAAU,KAChB,KAAM,CAAC,CACT,CAAC,EACG,IAAgB,QAAQ,EAAK,CACnC,EACA,MACF,CACF,OAEW,CACX,EAAS,QAAS,GAAM,EAAE,CAAC,EAC3B,GAAqB,QAAQ,EAC7B,GAAoB,IAAK,GACzB,IAAuB,CACzB,CACF,OAAS,EAAO,CACd,QAAQ,KAAK,CAAK,CACpB,CACF,CACA,SAAS,IAAiB,EAAY,CACpC,GAAI,CAAC,GACH,MAAU,MAAM,iDAAiD,EAEnE,GAAkB,CAAU,CAC9B,CACA,GAAO,OAAS,GAChB,GAAO,iBAAmB,IAC1B,SAAS,IAAkB,EAAoB,EAAS,CACtD,GAAI,CACF,OAAO,EAAqB,EAAmB,CAAO,EAAI,IAAI,EAChE,MAAQ,CAEN,OADA,QAAQ,KAAK,oCAAoC,EAC1C,IAAI,EACb,CACF,CACA,IAAIG,KACF,SAAS,EAAI,CACb,EAAG,EAAG,WAAa,GAAK,aAAc,EAAG,EAAG,QAAU,GAAK,UAAW,EAAG,EAAG,QAAU,GAAK,SAC7F,GAAGA,GAAM,GAAI,CAAC,CAAE,EAEhB,IAAM,IAAqC,EACrC,IAAwB,EAE9B,SAAS,GAAc,EAAW,CAEhC,OADa,EAAY,WACX,EAAY,EAAY,GACxC,CACA,SAAS,GAAa,EAAW,CAE/B,OADa,EAAY,WACX,EAAY,IAAM,CAClC,CAEA,SAAS,GAAmB,EAAQ,EAAY,CAC1C,EAAW,WAAa,uBAGxB,CAAC,WAAY,UAAU,EAAE,SAAS,EAAW,QAAQ,EACvD,EAAO,oBAAoB,EAE3B,EAAO,6BAA6B,EAEtC,EAAO,eACL,EAAO,kBAAkB,CACvB,KAAM,GAAU,OAGhB,WAAY,EAAW,WAAa,GAAK,IACzC,KAAM,CACJ,IAAK,aAEL,QAAS,GAAU,EAAY,GAAI,GAAG,CACxC,CACF,CAAC,EACM,EAAW,WAAa,UAChC,EACH,CAEA,IAAM,IAAuB,WAC7B,SAAS,GAAsB,EAAS,CAEtC,OAD2B,EAAQ,QAAQ,GACnB,GAAK,CAC/B,CACA,SAAS,GAAmB,EAAO,CACjC,IAAM,EAAS,GAAc,CAAK,EAIlC,MAHI,CAAC,GAAU,EAAE,aAAkB,SAC1B,EAEF,GAAsB,CAAM,CACrC,CACA,SAAS,GAAc,EAAO,CAI5B,OAHI,IAAkB,CAAK,EAClB,EAAM,OAER,CACT,CACA,SAAS,IAAkB,EAAO,CAChC,OAAOtH,GAAa,CAAK,GAAK,WAAY,CAC5C,CAEA,IAAIiF,GACJ,SAAS,IAAa,EAAI,CAMxB,OALKA,KACH,GAAW,CAAC,EACZ,IAAsB,GAExB,GAAS,KAAK,CAAE,MACH,CACX,IAAM,EAAMA,GAAWA,GAAS,QAAQ,CAAE,EAAI,GAC1C,EAAM,IACR,GAAS,OAAO,EAAK,CAAC,CAE1B,CACF,CACA,SAAS,KAAwB,CAC/B,GAAK,GAAQ,OAAQ,SAAS,EAAoB,CAChD,OAAO,SAAS,GAAG,EAAM,CACvB,GAAIA,GACF,GAAI,CACF,GAAS,QAAS,GAAY,EAAQ,CAAC,CACzC,MAAQ,CACR,CAEF,OAAO,EAAmB,MAAM,GAAQ,CAAI,CAC9C,CACF,CAAC,CACH,CAEA,IAAM,IAA6C,IAAI,IAAI,CACzD,GAAkB,SAClB,GAAkB,eAClB,GAAkB,iBAClB,GAAkB,kBAClB,GAAkB,eAClB,GAAkB,UAClB,GAAkB,gBACpB,CAAC,EACD,SAAS,IAAY,EAAe,EAAiB,EAAM,CACzD,EAAc,YAAY,EAAiB,CAAI,CACjD,CACA,IAAM,IAAN,KAAoB,CAClB,YAAY,EAAQ,EAAiB,EAAsB,GAAoB,CAC7E,KAAK,cAAgB,EACrB,KAAK,YAAc,EACnB,KAAK,QAAU,CAAC,EAChB,KAAK,SAAW,EAAgB,QAAU,IAC1C,KAAK,WAAa,EAAgB,UAAY,IAC9C,KAAK,eAAiB,EAAgB,cAAgB,IACtD,KAAK,QAAU,EACf,KAAK,gBAAkB,EAAgB,eACvC,KAAK,oBAAsB,CAC7B,CAEA,cAAe,CACb,IAAM,EAAoB,QAAmB,CAC3C,KAAK,cAAgB,GAAa,CACpC,CAAC,EACD,KAAK,cAAkB,CACrB,EAAkB,EAClB,KAAK,QAAU,CAAC,EAChB,KAAK,cAAgB,EACrB,KAAK,YAAc,CACrB,CACF,CAEA,iBAAkB,CACZ,KAAK,WACP,KAAK,UAAU,EAEb,KAAK,oBACP,aAAa,KAAK,kBAAkB,CAExC,CAEA,YAAY,EAAY,EAAM,CAC5B,GAAI,IAAc,EAAM,KAAK,eAAe,GAAK,CAAC,IAAkB,CAAU,EAC5E,OAEF,IAAM,EAAW,CACf,UAAW,GAAa,EAAW,SAAS,EAC5C,gBAAiB,EAEjB,WAAY,EACZ,MACF,EACI,KAAK,QAAQ,KAAM,GAAU,EAAM,OAAS,EAAS,MAAQ,KAAK,IAAI,EAAM,UAAY,EAAS,SAAS,EAAI,CAAC,IAGnH,KAAK,QAAQ,KAAK,CAAQ,EACtB,KAAK,QAAQ,SAAW,GAC1B,KAAK,qBAAqB,EAE9B,CAEA,iBAAiB,EAAY,KAAK,IAAI,EAAG,CACvC,KAAK,cAAgB,GAAa,CAAS,CAC7C,CAEA,eAAe,EAAY,KAAK,IAAI,EAAG,CACrC,KAAK,YAAc,GAAa,CAAS,CAC3C,CAEA,cAAc,EAAS,CACrB,IAAM,EAAO,GAAsB,CAAO,EAC1C,KAAK,kBAAkB,CAAI,CAC7B,CAEA,kBAAkB,EAAM,CACtB,KAAK,WAAW,CAAI,EAAE,QAAS,GAAU,CACvC,EAAM,YACR,CAAC,CACH,CAEA,WAAW,EAAM,CACf,OAAO,KAAK,QAAQ,OAAQ,GAAU,EAAM,OAAS,CAAI,CAC3D,CAEA,cAAe,CACb,IAAM,EAAiB,CAAC,EAClB,EAAM,GAAa,EACzB,KAAK,QAAQ,QAAS,GAAU,CAC1B,CAAC,EAAM,eAAiB,KAAK,gBAC/B,EAAM,cAAgB,EAAM,WAAa,KAAK,cAAgB,KAAK,cAAgB,EAAM,UAAY,IAAK,IAExG,CAAC,EAAM,aAAe,KAAK,cAC7B,EAAM,YAAc,EAAM,WAAa,KAAK,YAAc,KAAK,YAAc,EAAM,UAAY,IAAK,IAElG,EAAM,UAAY,KAAK,UAAY,GACrC,EAAe,KAAK,CAAK,CAE7B,CAAC,EACD,IAAK,IAAM,KAAS,EAAgB,CAClC,IAAM,EAAM,KAAK,QAAQ,QAAQ,CAAK,EAClC,EAAM,KACR,KAAK,qBAAqB,CAAK,EAC/B,KAAK,QAAQ,OAAO,EAAK,CAAC,EAE9B,CACI,KAAK,QAAQ,QACf,KAAK,qBAAqB,CAE9B,CAEA,qBAAqB,EAAO,CAC1B,IAAM,EAAS,KAAK,QACd,EAAY,EAAM,aAAe,EAAM,aAAe,KAAK,eAC3D,EAAc,EAAM,eAAiB,EAAM,eAAiB,KAAK,WACjE,EAAc,CAAC,GAAa,CAAC,EAC7B,CAAE,aAAY,mBAAoB,EACxC,GAAI,EAAa,CACf,IAAM,EAAmB,KAAK,IAAI,EAAM,eAAiB,KAAK,SAAU,KAAK,QAAQ,EAAI,IACnF,EAAY,EAAmB,KAAK,SAAW,IAAM,WAAa,UAClE,EAAa,CACjB,KAAM,UACN,QAAS,EAAgB,QACzB,UAAW,EAAgB,UAC3B,SAAU,uBACV,KAAM,CACJ,GAAG,EAAgB,KACnB,IAAK,GAAO,SAAS,KACrB,MAAO,EAAO,gBAAgB,EAC9B,mBACA,YAGA,WAAY,GAAc,CAC5B,CACF,EACA,KAAK,oBAAoB,EAAQ,CAAU,EAC3C,MACF,CACA,GAAI,EAAa,EAAG,CAClB,IAAM,EAAa,CACjB,KAAM,UACN,QAAS,EAAgB,QACzB,UAAW,EAAgB,UAC3B,SAAU,gBACV,KAAM,CACJ,GAAG,EAAgB,KACnB,IAAK,GAAO,SAAS,KACrB,MAAO,EAAO,gBAAgB,EAC9B,aACA,OAAQ,EACV,CACF,EACA,KAAK,oBAAoB,EAAQ,CAAU,CAC7C,CACF,CAEA,sBAAuB,CACjB,KAAK,oBACP,aAAa,KAAK,kBAAkB,EAEtC,KAAK,mBAAqB,OAAmB,KAAK,aAAa,EAAG,GAAG,CACvE,CACF,EACM,IAAkB,CAAC,IAAK,SAAU,OAAO,EAC/C,SAAS,IAAc,EAAM,EAAgB,CAa3C,MAHA,GATI,CAAC,IAAgB,SAAS,EAAK,OAAO,GAGtC,EAAK,UAAY,SAAW,CAAC,CAAC,SAAU,QAAQ,EAAE,SAAS,EAAK,aAAa,MAAM,GAAK,EAAE,GAG1F,EAAK,UAAY,MAAQ,EAAK,aAAa,UAAU,GAAK,EAAK,aAAa,QAAQ,GAAK,EAAK,aAAa,QAAQ,IAAM,UAGzH,GAAkB,EAAK,QAAQ,CAAc,EAInD,CACA,SAAS,IAAkB,EAAY,CACrC,MAAO,CAAC,EAAE,EAAW,MAAQ,OAAO,EAAW,KAAK,QAAW,UAAY,EAAW,UACxF,CACA,SAAS,IAAe,CACtB,OAAO,KAAK,IAAI,EAAI,GACtB,CACA,SAAS,IAAqC,EAAe,EAAO,CAClE,GAAI,CACF,GAAI,CAAC,IAAmB,CAAK,EAC3B,OAEF,GAAM,CAAE,UAAW,EAAM,KAOzB,GANI,IAA2B,IAAI,CAAM,GACvC,EAAc,iBAAiB,EAAM,SAAS,EAE5C,IAAW,GAAkB,QAC/B,EAAc,eAAe,EAAM,SAAS,EAE1C,IAA8B,CAAK,EAAG,CACxC,GAAM,CAAE,OAAM,MAAO,EAAM,KACrB,EAAO,GAAO,OAAO,QAAQ,CAAE,EACjC,aAAgB,aAAe,IAAS,GAAkB,OAC5D,EAAc,cAAc,CAAI,CAEpC,CACF,MAAQ,CACR,CACF,CACA,SAAS,IAAmB,EAAO,CACjC,OAAO,EAAM,OAAS,GACxB,CACA,SAAS,IAA8B,EAAO,CAC5C,OAAO,EAAM,KAAK,SAAW,GAAkB,gBACjD,CAEA,SAAS,GAAiB,EAAY,CACpC,MAAO,CACL,UAAW,KAAK,IAAI,EAAI,IACxB,KAAM,UACN,GAAG,CACL,CACF,CAEA,IAAI,IAA6B,IAC/B,EAAU,EAAU,SAAc,GAAK,WACvC,EAAU,EAAU,aAAkB,GAAK,eAC3C,EAAU,EAAU,QAAa,GAAK,UACtC,EAAU,EAAU,KAAU,GAAK,OACnC,EAAU,EAAU,MAAW,GAAK,QACpC,EAAU,EAAU,QAAa,GAAK,UAC/B,IACN,IAAY,CAAC,CAAC,EAEX,IAAuC,IAAI,IAAI,CACnD,KACA,QACA,aACA,OACA,OACA,MACA,QACA,eACA,cACA,WACA,gBACA,uBACF,CAAC,EACD,SAAS,IAAsB,EAAY,CACzC,IAAM,EAAM,CAAC,EACT,CAAC,EAAW,0BAA4B,EAAW,yBACrD,EAAW,yBAA2B,EAAW,wBAEnD,IAAK,IAAM,KAAO,EAChB,GAAI,IAAqB,IAAI,CAAG,EAAG,CACjC,IAAI,EAAgB,GAChB,IAAQ,eAAiB,IAAQ,kBACnC,EAAgB,UAElB,EAAI,GAAiB,EAAW,EAClC,CAEF,OAAO,CACT,CAEA,IAAM,IAAqB,GACjB,GAAgB,CACtB,GAAI,CAAC,EAAO,UAAU,EACpB,OAEF,IAAM,EAAS,IAAU,CAAW,EACpC,GAAI,CAAC,EACH,OAEF,IAAM,EAAU,EAAY,OAAS,QAC/B,EAAQ,EAAU,EAAY,MAAQ,IAAK,GAC7C,GAAW,EAAO,eAAiB,GAAO,QAAU,CAAC,EAAM,QAAU,CAAC,EAAM,SAAW,CAAC,EAAM,SAAW,CAAC,EAAM,UAClH,IACE,EAAO,cACP,EACA,GAAmB,EAAY,KAAK,CACtC,EAEF,GAAmB,EAAQ,CAAM,CACnC,EAEF,SAAS,GAAqB,EAAQ,EAAS,CAC7C,IAAM,EAAS,GAAO,OAAO,MAAM,CAAM,EACnC,EAAO,GAAU,GAAO,OAAO,QAAQ,CAAM,EAC7C,EAAO,GAAQ,GAAO,OAAO,QAAQ,CAAI,EACzC,EAAU,GAAQ,IAAU,CAAI,EAAI,EAAO,KACjD,MAAO,CACL,UACA,KAAM,EAAU,CACd,SACA,KAAM,CACJ,GAAI,EACJ,QAAS,EAAQ,QACjB,YAAa,MAAM,KAAK,EAAQ,UAAU,EAAE,IAAK,GAAU,EAAM,OAAS,GAAS,MAAQ,EAAM,WAAW,EAAE,OAAO,OAAO,EAAE,IAAK,GAAS,EAAK,KAAK,CAAC,EAAE,KAAK,EAAE,EAChK,WAAY,IAAsB,EAAQ,UAAU,CACtD,CACF,EAAI,CAAC,CACP,CACF,CACA,SAAS,IAAU,EAAa,CAC9B,GAAM,CAAE,SAAQ,WAAY,IAAa,CAAW,EACpD,OAAO,GAAiB,CACtB,SAAU,MAAM,EAAY,OAC5B,GAAG,GAAqB,EAAQ,CAAO,CACzC,CAAC,CACH,CACA,SAAS,IAAa,EAAa,CACjC,IAAM,EAAU,EAAY,OAAS,QACjC,EACA,EAAS,KACb,GAAI,CACF,EAAS,EAAU,GAAmB,EAAY,KAAK,EAAI,GAAc,EAAY,KAAK,EAC1F,EAAU,GAAiB,EAAQ,CAAE,gBAAiB,GAAI,CAAC,GAAK,WAClE,MAAQ,CACN,EAAU,WACZ,CACA,MAAO,CAAE,SAAQ,SAAQ,CAC3B,CACA,SAAS,IAAU,EAAM,CACvB,OAAO,EAAK,OAAS,GAAS,OAChC,CAEA,SAAS,IAAoB,EAAQ,EAAO,CAC1C,GAAI,CAAC,EAAO,UAAU,EACpB,OAEF,EAAO,mBAAmB,EAC1B,IAAM,EAAa,IAAsB,CAAK,EACzC,GAGL,GAAmB,EAAQ,CAAU,CACvC,CACA,SAAS,IAAsB,EAAO,CACpC,GAAM,CAAE,UAAS,WAAU,UAAS,SAAQ,MAAK,UAAW,EAC5D,GAAI,CAAC,GAAU,IAAe,CAAM,GAAK,CAAC,EACxC,OAAO,KAET,IAAM,EAAiB,GAAW,GAAW,EACvC,EAAiB,EAAI,SAAW,EACtC,GAAI,CAAC,GAAkB,EACrB,OAAO,KAET,IAAM,EAAU,GAAiB,EAAQ,CAAE,gBAAiB,GAAI,CAAC,GAAK,YAEtE,OAAO,GAAiB,CACtB,SAAU,aACV,UACA,KAAM,CACJ,GALmB,GAAqB,EAAQ,CAKhC,EAAE,KAClB,UACA,WACA,UACA,SACA,KACF,CACF,CAAC,CACH,CACA,SAAS,IAAe,EAAQ,CAC9B,OAAO,EAAO,UAAY,SAAW,EAAO,UAAY,YAAc,EAAO,iBAC/E,CAEA,IAAM,IAAc,CAElB,SAAU,IACV,MAAO,IAEP,WAAY,GACd,EACA,SAAS,GAAgB,EAAQ,EAAQ,CACvC,OAAQ,CAAE,YAAa,KAAK,EAAO,yBAAyB,KAAK,EAAO,CAAM,CAAC,CACjF,CACA,SAAS,IAAyB,EAAS,CACzC,OAAO,EAAQ,IAAI,GAAsB,EAAE,OAAO,OAAO,CAC3D,CACA,SAAS,IAAuB,EAAO,CACrC,IAAM,EAAY,IAAY,EAAM,WAIpC,OAHK,EAGE,EAAU,CAAK,EAFb,IAGX,CACA,SAAS,GAAgB,EAAM,CAC7B,QAAS,GAA6B,GAAK,GAAO,YAAY,YAAc,GAAQ,GACtF,CACA,SAAS,IAAiB,EAAO,CAC/B,GAAM,CAAE,WAAU,YAAW,OAAM,aAAc,EAC3C,EAAQ,GAAgB,CAAS,EACvC,MAAO,CACL,KAAM,EACN,OACA,QACA,IAAK,EAAQ,EACb,KAAM,IAAK,EACb,CACF,CACA,SAAS,IAAsB,EAAO,CACpC,GAAM,CACJ,YACA,OACA,kBACA,WACA,cACA,kBACA,6BACA,2BACA,iBACA,iBACA,eACA,gBACA,YACA,eACA,QACE,EAIJ,OAHI,IAAa,EACR,KAEF,CACL,KAAM,GAAG,EAAU,GAAG,IACtB,MAAO,GAAgB,CAAS,EAChC,IAAK,GAAgB,CAAW,EAChC,OACA,KAAM,CACJ,KAAM,EACN,kBACA,kBACA,WACA,iBACA,6BACA,2BACA,iBACA,eACA,cACA,eACF,CACF,CACF,CACA,SAAS,IAAoB,EAAO,CAClC,GAAM,CACJ,YACA,gBACA,OACA,cACA,YACA,kBACA,kBACA,iBACA,gBACE,EAIJ,MAHI,CAAC,QAAS,gBAAgB,EAAE,SAAS,CAAa,EAC7C,KAEF,CACL,KAAM,GAAG,EAAU,GAAG,IACtB,MAAO,GAAgB,CAAS,EAChC,IAAK,GAAgB,CAAW,EAChC,OACA,KAAM,CACJ,KAAM,EACN,WAAY,EACZ,kBACA,iBACF,CACF,CACF,CACA,SAAS,IAA0B,EAAQ,CACzC,IAAM,EAAY,EAAO,QAAQ,EAAO,QAAQ,OAAS,GAEzD,OAAO,GAAY,EAAQ,2BADd,GAAW,QAAU,CAAC,EAAU,OAAO,EAAI,IAAK,EACF,CAC7D,CACA,SAAS,IAAc,EAAO,CAC5B,OAAO,EAAM,UAAY,IAAK,EAChC,CACA,SAAS,IAAyB,EAAQ,CACxC,IAAM,EAAe,CAAC,EAChB,EAAQ,CAAC,EACf,IAAK,IAAM,KAAS,EAAO,QACzB,GAAI,IAAc,CAAK,EAAG,CACxB,IAAM,EAAU,CAAC,EACjB,IAAK,IAAM,KAAU,EAAM,QACzB,GAAI,EAAO,KAAM,CACf,EAAM,KAAK,EAAO,IAAI,EACtB,IAAM,EAAS,GAAO,OAAO,MAAM,EAAO,IAAI,EAC1C,GACF,EAAQ,KAAK,CAAM,CAEvB,CAEF,EAAa,KAAK,CAAE,MAAO,EAAM,MAAO,QAAS,EAAQ,OAAS,EAAU,IAAK,EAAE,CAAC,CACtF,CAEF,OAAO,GAAY,EAAQ,0BAA2B,EAAO,CAAY,CAC3E,CACA,SAAS,IAA0B,EAAQ,CACzC,IAAM,EAAY,EAAO,QAAQ,EAAO,QAAQ,OAAS,GAEzD,OAAO,GAAY,EAAQ,4BADd,GAAW,OAAS,CAAC,EAAU,MAAM,EAAI,IAAK,EACC,CAC9D,CACA,SAAS,GAAY,EAAQ,EAAM,EAAO,EAAc,CACtD,IAAM,EAAQ,EAAO,MACf,EAAS,EAAO,OAChB,EAAM,GAAgB,CAAK,EACjC,MAAO,CACL,KAAM,YACN,OACA,MAAO,EACP,MACA,KAAM,CACJ,QACA,KAAM,EACN,SACA,QAAS,EAAQ,EAAM,IAAK,GAAS,GAAO,OAAO,MAAM,CAAI,CAAC,EAAI,IAAK,GACvE,cACF,CACF,CACF,CAEA,SAAS,IAAyB,EAAQ,CACxC,SAAS,EAAoB,EAAO,CAC7B,EAAO,mBAAmB,SAAS,CAAK,GAC3C,EAAO,mBAAmB,KAAK,CAAK,CAExC,CACA,SAAS,EAAU,CAAE,WAAW,CAC9B,EAAQ,QAAQ,CAAmB,CACrC,CACA,IAAM,EAAiB,CAAC,EASxB,MARA,CAAC,aAAc,QAAS,UAAU,EAAE,QAAS,GAAS,CACpD,EAAe,KAAK,GAAqC,EAAM,CAAS,CAAC,CAC3E,CAAC,EACD,EAAe,KACb,GAA6B,GAAgB,IAA2B,CAAM,CAAC,EAC/E,GAA6B,GAAgB,IAA0B,CAAM,CAAC,EAC9E,GAA6B,GAAgB,IAA2B,CAAM,CAAC,CACjF,MACa,CACX,EAAe,QAAS,GAAkB,EAAc,CAAC,CAC3D,CACF,CAEA,IAAM,GAAe,OAAO,iBAAqB,KAAe,iBAE1DsC,IAAI,4lUAEV,SAASC,KAAI,CACX,IAAM,EAAK,IAAI,KAAK,CAACD,GAAC,EAAG,CAAE,KAAM,iBAAkB,CAAC,EACpD,OAAO,IAAI,gBAAgB,CAAE,CAC/B,CAEA,IAAM,GAAiB,CAAC,MAAO,OAAQ,OAAO,EACxC,GAAS,YACf,SAAS,GAAe,EAAS,EAAQ,OAAQ,CAC/C,GACE,CACE,SAAU,UACV,KAAM,CACJ,OAAQ,QACV,EACA,QACA,QAAS,GAAG,KAAS,GACvB,EACA,CAAE,OAAM,CACV,CACF,CACA,SAAS,KAAwB,CAC/B,IAAI,EAAW,GACX,EAAS,GACP,EAAS,CACb,cAAiB,IAAK,GACtB,aAAgB,IAAK,GACrB,UAAY,GAAS,CACnB,EAAW,CAAC,CAAC,EAAK,kBAClB,EAAS,CAAC,CAAC,EAAK,cAClB,CACF,EAqCA,OApCI,IACF,GAAe,QAAS,GAAS,CAC/B,EAAO,IAAS,GAAG,IAAS,CAC1B,GAAQ,GAAM,GAAQ,GAAG,CAAI,EACzB,GACF,GAAe,EAAK,KAAK,EAAE,EAAG,GAAwB,CAAI,CAAC,CAE/D,CACF,CAAC,EACD,EAAO,WAAa,EAAO,GAAG,IAAY,CACpC,EAAQ,QAAU,EAAO,OAC3B,EAAO,MAAM,GAAG,CAAO,EAEzB,GAAQ,MAAM,GAAQ,CAAK,EACvB,EACF,GAAiB,EAAO,CACtB,UAAW,CACT,QAAS,GACT,KAAM,4BACR,CACF,CAAC,EACQ,GACT,GAAe,EAAO,OAAO,CAEjC,EACA,EAAO,UAAY,GAAG,IAAS,CAC7B,GAAQ,IAAI,GAAQ,GAAG,CAAI,EACvB,GACF,eAAiB,GAAe,EAAK,EAAE,EAAG,CAAC,CAE/C,GAEA,GAAe,QAAS,GAAS,CAC/B,EAAO,OAAc,IAAK,EAC5B,CAAC,EAEI,CACT,CACA,IAAM,GAAQ,IAAsB,EAE9B,GAAN,cAA2C,KAAM,CAC/C,aAAc,CACZ,MAAM,yCAAyC,GAA6B,EAAE,CAChF,CACF,EAEM,GAAN,KAAuB,CACrB,aAAc,CACZ,KAAK,OAAS,CAAC,EACf,KAAK,WAAa,EAClB,KAAK,YAAc,GACnB,KAAK,gBAAkB,EACzB,CAEA,IAAI,WAAY,CACd,OAAO,KAAK,OAAO,OAAS,CAC9B,CAEA,IAAI,MAAO,CACT,MAAO,MACT,CAEA,SAAU,CACR,KAAK,OAAS,CAAC,CACjB,CAEA,MAAM,SAAS,EAAO,CACpB,IAAM,EAAY,KAAK,UAAU,CAAK,EAAE,OAExC,GADA,KAAK,YAAc,EACf,KAAK,WAAa,GACpB,MAAM,IAAI,GAEZ,KAAK,OAAO,KAAK,CAAK,CACxB,CAEA,QAAS,CACP,OAAO,IAAI,QAAS,GAAY,CAC9B,IAAM,EAAY,KAAK,OACvB,KAAK,MAAM,EACX,EAAQ,KAAK,UAAU,CAAS,CAAC,CACnC,CAAC,CACH,CAEA,OAAQ,CACN,KAAK,OAAS,CAAC,EACf,KAAK,WAAa,EAClB,KAAK,YAAc,EACrB,CAEA,sBAAuB,CACrB,IAAI,EAAK,KACT,IAAK,GAAM,CAAE,eAAe,KAAK,QAC3B,IAAO,MAAQ,EAAY,KAAI,EAAK,GAE1C,OAAO,IAAO,KAAO,EAAK,GAAc,CAAE,CAC5C,CACF,EAEM,IAAN,KAAoB,CAClB,YAAY,EAAQ,CAClB,KAAK,YAAc,CAAE,UAAW,CAC9B,IAAM,EAAW,EACjB,GAAI,OAAO,EAAS,IAAO,SACzB,OAEF,IAAM,EAAU,KAAK,SAAS,IAAI,EAAS,EAAE,EACzC,MAAC,GAAW,EAAQ,SAAW,EAAS,QAI5C,IADA,KAAK,SAAS,OAAO,EAAS,EAAE,EAC5B,CAAC,EAAS,QAAS,CACrB,IAAe,GAAM,MAAM,gCAAiC,EAAS,QAAQ,EAC7E,EAAQ,OAAW,MAAM,6BAA6B,CAAC,EACvD,MACF,CACA,EAAQ,QAAQ,EAAS,QAAQ,CADjC,CAEF,EACA,KAAK,QAAU,EACf,KAAK,IAAM,EACX,KAAK,SAA2B,IAAI,IACpC,KAAK,QAAQ,iBAAiB,UAAW,KAAK,UAAU,CAC1D,CAKA,aAAc,CA8BZ,MA7BI,CAGJ,KAAK,sBAAsB,IAAI,SAAS,EAAS,IAAW,CAC1D,KAAK,QAAQ,iBACX,WACC,CAAE,UAAW,CACR,EAAK,QACP,EAAQ,GAER,IAAe,GAAM,KAAK,mDAAoD,CAAI,EAClF,EAAW,MAAM,kDAAkD,CAAC,EAExE,EACA,CAAE,KAAM,EAAK,CACf,EACA,KAAK,QAAQ,iBACX,QACC,GAAU,CACT,IAAe,GAAM,KAAK,2CAA4C,CAAK,EAC3E,EACM,MACF,6CAA6C,aAAiB,YAAc,EAAM,QAAU,EAAM,QAAU,wHAC9G,CACF,CACF,EACA,CAAE,KAAM,EAAK,CACf,CACF,CAAC,EA3BQ,KAAK,mBA6BhB,CAIA,SAAU,CACR,IAAe,GAAM,IAAI,+BAA+B,EACxD,KAAK,QAAQ,oBAAoB,UAAW,KAAK,UAAU,EAC3D,KAAK,SAAS,QAAS,GAAY,EAAQ,OAAW,MAAM,kBAAkB,CAAC,CAAC,EAChF,KAAK,SAAS,MAAM,EACpB,KAAK,QAAQ,UAAU,CACzB,CAIA,YAAY,EAAQ,EAAK,CACvB,IAAM,EAAK,KAAK,mBAAmB,EACnC,OAAO,IAAI,SAAS,EAAS,IAAW,CACtC,KAAK,SAAS,IAAI,EAAI,CACpB,SACA,UACA,QACF,CAAC,EACD,GAAI,CACF,KAAK,QAAQ,YAAY,CAAE,KAAI,SAAQ,KAAI,CAAC,CAC9C,OAAS,EAAO,CACd,KAAK,SAAS,OAAO,CAAE,EACvB,EAAO,CAAK,CACd,CACF,CAAC,CACH,CAEA,oBAAqB,CACnB,MAAO,MAAK,KACd,CACF,EAEM,IAAN,KAAmC,CACjC,YAAY,EAAQ,CAClB,KAAK,QAAU,IAAI,IAAc,CAAM,EACvC,KAAK,mBAAqB,KAC1B,KAAK,WAAa,EAClB,KAAK,YAAc,GACnB,KAAK,gBAAkB,EACzB,CAEA,IAAI,WAAY,CACd,MAAO,CAAC,CAAC,KAAK,kBAChB,CAEA,IAAI,MAAO,CACT,MAAO,QACT,CAKA,aAAc,CACZ,OAAO,KAAK,QAAQ,YAAY,CAClC,CAIA,SAAU,CACR,KAAK,QAAQ,QAAQ,CACvB,CAMA,SAAS,EAAO,CACd,IAAM,EAAY,GAAc,EAAM,SAAS,GAC3C,CAAC,KAAK,oBAAsB,EAAY,KAAK,sBAC/C,KAAK,mBAAqB,GAE5B,IAAM,EAAO,KAAK,UAAU,CAAK,EAKjC,MAJA,MAAK,YAAc,EAAK,OACpB,KAAK,WAAa,GACb,QAAQ,OAAO,IAAI,EAA8B,EAEnD,KAAK,mBAAmB,CAAI,CACrC,CAIA,QAAS,CACP,OAAO,KAAK,eAAe,CAC7B,CAEA,OAAQ,CACN,KAAK,mBAAqB,KAC1B,KAAK,WAAa,EAClB,KAAK,YAAc,GACnB,KAAK,QAAQ,YAAY,OAAO,EAAE,KAAK,KAAO,GAAM,CAClD,IAAe,GAAM,UAAU,EAAG,2CAA4C,CAAC,CACjF,CAAC,CACH,CAEA,sBAAuB,CACrB,OAAO,KAAK,kBACd,CAIA,mBAAmB,EAAM,CACvB,OAAO,KAAK,QAAQ,YAAY,WAAY,CAAI,CAClD,CAIA,MAAM,gBAAiB,CACrB,IAAM,EAAW,MAAM,KAAK,QAAQ,YAAY,QAAQ,EAGxD,MAFA,MAAK,mBAAqB,KAC1B,KAAK,WAAa,EACX,CACT,CACF,EAEM,IAAN,KAAuB,CACrB,YAAY,EAAQ,CAClB,KAAK,UAAY,IAAI,GACrB,KAAK,aAAe,IAAI,IAA6B,CAAM,EAC3D,KAAK,MAAQ,KAAK,UAClB,KAAK,6BAA+B,KAAK,sBAAsB,CACjE,CAEA,IAAI,iBAAkB,CACpB,OAAO,KAAK,MAAM,eACpB,CAEA,IAAI,MAAO,CACT,OAAO,KAAK,MAAM,IACpB,CAEA,IAAI,WAAY,CACd,OAAO,KAAK,MAAM,SACpB,CAEA,IAAI,aAAc,CAChB,OAAO,KAAK,MAAM,WACpB,CAEA,IAAI,YAAY,EAAO,CACrB,KAAK,MAAM,YAAc,CAC3B,CAGA,IAAI,gBAAgB,EAAO,CACzB,KAAK,MAAM,gBAAkB,CAC/B,CAEA,SAAU,CACR,KAAK,UAAU,QAAQ,EACvB,KAAK,aAAa,QAAQ,CAC5B,CAEA,OAAQ,CACN,OAAO,KAAK,MAAM,MAAM,CAC1B,CAEA,sBAAuB,CACrB,OAAO,KAAK,MAAM,qBAAqB,CACzC,CAMA,SAAS,EAAO,CACd,OAAO,KAAK,MAAM,SAAS,CAAK,CAClC,CAEA,MAAM,QAAS,CAEb,OADA,MAAM,KAAK,qBAAqB,EACzB,KAAK,MAAM,OAAO,CAC3B,CAEA,sBAAuB,CACrB,OAAO,KAAK,4BACd,CAEA,MAAM,uBAAwB,CAC5B,GAAI,CACF,MAAM,KAAK,aAAa,YAAY,CACtC,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,sEAAsE,EAC5G,MACF,CACA,MAAM,KAAK,2BAA2B,CACxC,CAEA,MAAM,4BAA6B,CACjC,GAAM,CAAE,SAAQ,cAAa,mBAAoB,KAAK,UAChD,EAAmB,CAAC,EAC1B,IAAK,IAAM,KAAS,EAClB,EAAiB,KAAK,KAAK,aAAa,SAAS,CAAK,CAAC,EAEzD,KAAK,aAAa,YAAc,EAChC,KAAK,aAAa,gBAAkB,EACpC,KAAK,MAAQ,KAAK,aAClB,GAAI,CACF,MAAM,QAAQ,IAAI,CAAgB,EAClC,KAAK,UAAU,MAAM,CACvB,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,8CAA8C,CACtF,CACF,CACF,EAEA,SAAS,IAAkB,CACzB,iBACA,UAAW,GACV,CACD,GAAI,GACJ,OAAO,OAAQ,CACb,IAAM,EAAS,IAAY,CAAe,EAC1C,GAAI,EACF,OAAO,CAEX,CAEA,OADA,IAAe,GAAM,IAAI,qBAAqB,EACvC,IAAI,EACb,CACA,SAAS,IAAY,EAAiB,CACpC,GAAI,CACF,IAAM,EAAY,GAAmB,IAAc,EAMnD,OALK,GAGL,IAAe,GAAM,IAAI,2BAA2B,EAAkB,SAAS,IAAoB,IAAI,EAEhG,IAAI,IAAiB,IADT,OAAO,CACO,CAAC,GAJhC,MAKJ,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,qCAAqC,CAC7E,CACF,CACA,SAAS,KAAgB,CAIvB,OAHI,OAAO,iCAAqC,KAAe,CAAC,iCACvDC,IAAE,EAEJ,EACT,CAEA,SAAS,IAAoB,CAC3B,GAAI,CACF,MAAO,mBAAoB,IAAU,CAAC,CAAC,GAAO,cAChD,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAAS,IAAa,EAAQ,CAC5B,IAAc,EACd,EAAO,QAAU,IAAK,EACxB,CACA,SAAS,KAAgB,CAClB,MAAkB,EAGvB,GAAI,CACF,GAAO,eAAe,WAAW,EAAkB,CACrD,MAAQ,CACR,CACF,CAEA,SAAS,GAAU,EAAY,CAI7B,OAHI,IAAe,IAAK,GACf,GAEF,KAAK,OAAO,EAAI,CACzB,CAEA,SAAS,GAAY,EAAS,CACvB,MAAkB,EAGvB,GAAI,CACF,GAAO,eAAe,QAAQ,GAAoB,KAAK,UAAU,CAAO,CAAC,CAC3E,MAAQ,CACR,CACF,CAEA,SAAS,GAAY,EAAS,CAC5B,IAAM,EAAM,KAAK,IAAI,EAQrB,MAAO,CACL,GARS,EAAQ,IAAM,GAAM,EAS7B,QARc,EAAQ,SAAW,EASjC,aARmB,EAAQ,cAAgB,EAS3C,UARgB,EAAQ,WAAa,EASrC,QARc,EAAQ,QAStB,kBARwB,EAAQ,kBAShC,MARY,EAAQ,OAAS,EAS/B,CACF,CAEA,SAAS,IAAqB,EAAmB,EAAgB,CAC/D,OAAO,GAAU,CAAiB,EAAI,UAAY,EAAiB,SAAW,EAChF,CACA,SAAS,GAAc,CAAE,oBAAmB,iBAAgB,gBAAgB,IAAS,CAAE,qBAAsB,CAAC,EAAG,CAE/G,IAAM,EAAU,GAAY,CAC1B,QAFc,IAAqB,EAAmB,CAEhD,EACN,mBACF,CAAC,EAID,OAHI,GACF,GAAY,CAAO,EAEd,CACT,CAEA,SAAS,KAAe,CACtB,GAAI,CAAC,GAAkB,EACrB,OAAO,KAET,GAAI,CACF,IAAM,EAA2B,GAAO,eAAe,QAAQ,EAAkB,EACjF,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAa,KAAK,MAAM,CAAwB,EAEtD,OADA,IAAe,GAAM,SAAS,0BAA0B,EACjD,GAAY,CAAU,CAC/B,MAAQ,CACN,OAAO,IACT,CACF,CAEA,SAAS,GAAU,EAAa,EAAQ,EAAa,CAAiB,IAAI,KAAQ,CAOhF,OANI,IAAgB,MAAQ,IAAW,IAAK,IAAK,EAAS,EACjD,GAEL,IAAW,EACN,GAEF,EAAc,GAAU,CACjC,CAEA,SAAS,IAAiB,EAAS,CACjC,oBACA,oBACA,aAAa,KAAK,IAAI,GACrB,CACD,OAEE,GAAU,EAAQ,QAAS,EAAmB,CAAU,GAExD,GAAU,EAAQ,aAAc,EAAmB,CAAU,CAEjE,CAEA,SAAS,GAAqB,EAAS,CAAE,oBAAmB,qBAAqB,CAO/E,MAHA,EAHI,CAAC,IAAiB,EAAS,CAAE,oBAAmB,mBAAkB,CAAC,GAGnE,EAAQ,UAAY,UAAY,EAAQ,YAAc,EAI5D,CAEA,SAAS,GAAoB,CAC3B,oBACA,oBACA,qBACC,EAAgB,CACjB,IAAM,EAAkB,EAAe,eAAiB,IAAa,EASrE,OARK,EAIA,GAAqB,EAAiB,CAAE,oBAAmB,mBAAkB,CAAC,GAGnF,IAAe,GAAM,SAAS,2DAA2D,EAClF,GAAc,EAAgB,CAAE,kBAAmB,EAAgB,EAAG,CAAC,GAHrE,GAJP,IAAe,GAAM,SAAS,sBAAsB,EAC7C,GAAc,EAAgB,CAAE,mBAAkB,CAAC,EAO9D,CAEA,SAAS,IAAc,EAAO,CAC5B,OAAO,EAAM,OAAS,GAAU,MAClC,CACA,SAAS,GAAa,EAAQ,EAAO,EAAY,CAK/C,OAJK,GAAe,EAAQ,CAAK,GAGjC,GAAU,EAAQ,EAAO,CAAU,EAC5B,IAHE,EAIX,CACA,SAAS,IAAS,EAAQ,EAAO,EAAY,CAI3C,OAHK,GAAe,EAAQ,CAAK,EAG1B,GAAU,EAAQ,EAAO,CAAU,EAFjC,QAAQ,QAAQ,IAAI,CAG/B,CACA,eAAe,GAAU,EAAQ,EAAO,EAAY,CAClD,GAAM,CAAE,eAAgB,EACxB,GAAI,CAAC,GAAe,EAAY,iBAAmB,CAAC,EAClD,OAAO,KAET,IAAM,EAAe,EAAO,gBAAkB,SAC9C,GAAI,CACE,GAAc,GAChB,EAAY,MAAM,EAEhB,IACF,EAAY,YAAc,GAC1B,EAAY,gBAAkB,IAGhC,IAAM,EAA6B,IAAmB,EADhC,EAAO,WAC4C,EAAE,uBAAuB,EAIlG,OAHK,EAGE,MAAM,EAAY,SAAS,CAA0B,EAF1D,MAGJ,OAAS,EAAO,CACd,GAAI,CAAC,EAAO,UAAU,EAEpB,OADA,EAAO,gBAAgB,CAAK,EACrB,KAET,IAAM,EAAa,GAAS,aAAiB,GACvC,EAAS,EAAa,sBAAwB,mBAC9C,EAAS,GAAU,EACzB,GAAI,EAAQ,CACV,IAAM,EAAa,EAAa,kBAAoB,qBACpD,EAAO,mBAAmB,EAAY,QAAQ,CAChD,CACA,GAAI,GAAc,EAGhB,OAFA,EAAY,MAAM,EAClB,EAAY,gBAAkB,GACvB,KAET,EAAO,gBAAgB,CAAK,EAC5B,MAAM,EAAO,KAAK,CAAE,QAAO,CAAC,CAC9B,CACF,CACA,SAAS,GAAe,EAAQ,EAAO,CACrC,GAAI,CAAC,EAAO,aAAe,EAAO,SAAS,GAAK,CAAC,EAAO,UAAU,EAChE,MAAO,GAET,IAAM,EAAgB,GAAc,EAAM,SAAS,EAQnD,OAPI,EAAgB,EAAO,SAAS,iBAAmB,KAAK,IAAI,EACvD,GAEL,EAAgB,EAAO,WAAW,EAAE,iBAAmB,EAAO,WAAW,EAAE,mBAC7E,IAAe,GAAM,SAAS,iCAAiC,EAAc,uCAAuC,EAC7G,IAEF,EACT,CACA,SAAS,IAAmB,EAAO,EAAU,CAC3C,GAAI,CACF,GAAI,OAAO,GAAa,YAAc,IAAc,CAAK,EACvD,OAAO,EAAS,CAAK,CAEzB,OAAS,EAAO,CAEd,OADA,IAAe,GAAM,UAAU,EAAO,oFAAoF,EACnH,IACT,CACA,OAAO,CACT,CAEA,IAAM,GAAqB,IAC3B,SAAS,GAA2B,EAAQ,EAAS,EAAa,CAChE,IAAM,EAAgB,EAAO,WAAW,EACpC,GAAW,EAAc,SAAS,KAAO,IAC3C,EAAc,SAAS,IAAI,CAAO,EAEhC,GAAe,EAAc,aAAa,KAAO,IACnD,EAAc,aAAa,IAAI,CAAW,CAE9C,CAEA,SAAS,IAAyB,EAAQ,CACxC,MAAQ,IAAa,CACd,EAAO,UAAU,GAGtB,GAA2B,EAAQ,EAAS,SAAU,EAAS,MAAQ,IAAK,EAAC,CAC/E,CACF,CAEA,SAAS,GAAa,EAAO,CAC3B,MAAO,CAAC,EAAM,IAChB,CACA,SAAS,GAAmB,EAAO,CACjC,OAAO,EAAM,OAAS,aACxB,CACA,SAAS,IAAc,EAAO,CAC5B,OAAO,EAAM,OAAS,cACxB,CACA,SAAS,GAAgB,EAAO,CAC9B,OAAO,EAAM,OAAS,UACxB,CAEA,SAAS,IAAqB,EAAQ,CACpC,OAAQ,EAAO,IAAiB,CAC9B,GAAI,CAAC,EAAO,UAAU,GAAK,CAAC,GAAa,CAAK,GAAK,CAAC,GAAmB,CAAK,EAC1E,OAEF,IAAM,EAAa,EAAa,WAC5B,MAAC,GAAc,EAAa,KAAO,GAAc,KAGrD,IAAI,GAAmB,CAAK,EAAG,CAC7B,IAAuB,EAAQ,CAAK,EACpC,MACF,CACA,IAAiB,EAAQ,CAAK,CAD9B,CAEF,CACF,CACA,SAAS,IAAuB,EAAQ,EAAO,CAC7C,GAA2B,EAAQ,EAAM,UAAU,OAAO,SAAU,EAAM,WAAW,CACvF,CACA,SAAS,IAAiB,EAAQ,EAAO,CACvC,IAAM,EAAgB,EAAO,WAAW,EAIxC,GAHI,EAAM,UAAY,EAAc,SAAS,KAAO,KAClD,EAAc,SAAS,IAAI,EAAM,QAAQ,EAEvC,EAAO,gBAAkB,UAAY,CAAC,EAAM,MAAM,SACpD,OAEF,GAAM,CAAE,uBAAwB,EAAO,WAAW,EAC9C,OAAO,GAAwB,YAAc,CAAC,EAAoB,CAAK,GAG3E,GAAa,SAAY,CACvB,GAAI,CACF,MAAM,EAAO,0BAA0B,CACzC,OAAS,EAAK,CACZ,EAAO,gBAAgB,CAAG,CAC5B,CACF,CAAC,CACH,CAEA,SAAS,IAAsB,EAAQ,CACrC,MAAQ,IAAU,CACZ,CAAC,EAAO,UAAU,GAAK,CAAC,GAAa,CAAK,GAG9C,IAAqB,EAAQ,CAAK,CACpC,CACF,CACA,SAAS,IAAqB,EAAQ,EAAO,CAC3C,IAAM,EAAiB,EAAM,WAAW,SAAS,IAAI,MACjD,OAAO,GAAmB,WAO5B,EAAe,MACb,iGACF,GAGA,EAAe,MAAM,iEAAiE,IAQtF,GAAmB,EANA,GAAiB,CAClC,SAAU,uBACV,KAAM,CACJ,IAAK,GAAgB,CACvB,CACF,CACoC,CAAC,CAEzC,CAEA,SAAS,IAAkB,EAAQ,CACjC,IAAM,EAAS,GAAU,EACpB,GAGL,EAAO,GAAG,sBAAwB,GAAe,IAAoB,EAAQ,CAAU,CAAC,CAC1F,CACA,SAAS,IAAoB,EAAQ,EAAY,CAC/C,GAAI,CAAC,EAAO,UAAU,GAAK,CAAC,GAAyB,CAAU,EAC7D,OAEF,IAAM,EAAS,IAAoB,CAAU,EACzC,GACF,GAAmB,EAAQ,CAAM,CAErC,CACA,SAAS,IAAoB,EAAY,CAevC,MAdI,CAAC,GAAyB,CAAU,GAAK,CAE3C,QACA,MAEA,eACA,oBACF,EAAE,SAAS,EAAW,QAAQ,GAC9B,EAAW,SAAS,WAAW,KAAK,EAC3B,KAEL,EAAW,WAAa,UACnB,IAA2B,CAAU,EAEvC,GAAiB,CAAU,CACpC,CACA,SAAS,IAA2B,EAAY,CAC9C,IAAM,EAAO,EAAW,MAAM,UAC9B,GAAI,CAAC,MAAM,QAAQ,CAAI,GAAK,EAAK,SAAW,EAC1C,OAAO,GAAiB,CAAU,EAEpC,IAAI,EAAc,GACZ,EAAiB,EAAK,IAAK,GAAQ,CACvC,GAAI,CAAC,EACH,OAAO,EAET,GAAI,OAAO,GAAQ,SAKjB,OAJI,EAAI,OAAS,IACf,EAAc,GACP,GAAG,EAAI,MAAM,EAAG,EAAoB,EAAE,SAExC,EAET,GAAI,OAAO,GAAQ,SACjB,GAAI,CACF,IAAM,EAAgB,GAAU,EAAK,CAAC,EAMtC,OALoB,KAAK,UAAU,CACrB,EAAE,OAAS,IACvB,EAAc,GACP,GAAG,KAAK,UAAU,EAAe,KAAM,CAAC,EAAE,MAAM,EAAG,EAAoB,EAAE,SAE3E,CACT,MAAQ,CACR,CAEF,OAAO,CACT,CAAC,EACD,OAAO,GAAiB,CACtB,GAAG,EACH,KAAM,CACJ,GAAG,EAAW,KACd,UAAW,EACX,GAAG,EAAc,CAAE,MAAO,CAAE,SAAU,CAAC,uBAAuB,CAAE,CAAE,EAAI,CAAC,CACzE,CACF,CAAC,CACH,CACA,SAAS,GAAyB,EAAY,CAC5C,MAAO,CAAC,CAAC,EAAW,QACtB,CAEA,SAAS,IAAa,EAAO,EAAM,CAOjC,OANI,EAAM,MAAQ,CAAC,EAAM,WAAW,QAAQ,OACnC,GAET,EAAI,EAAK,mBAAmB,SAI9B,CAEA,SAAS,IAAwC,CAC/C,IAAM,EAAM,GAAgB,EAAE,sBAAsB,EAAE,IAClD,GACF,OAAO,EAAI,UAEb,IAAM,EAAa,GAAc,EACjC,GAAI,EAAY,CACd,IAAM,EAAO,GAAkC,CAAU,EACzD,OAAO,EAAK,SACd,CACF,CACA,SAAS,GAAoC,EAAU,CACrD,IAAM,EAAM,GAAgB,EAAE,sBAAsB,EAAE,IAClD,IACF,EAAI,UAAY,GAElB,IAAM,EAAa,GAAc,EACjC,GAAI,EAAY,CACd,IAAM,EAAO,GAAkC,CAAU,EACzD,EAAK,UAAY,CACnB,CACF,CAEA,SAAS,IAAsB,EAAQ,EAAO,CAC5C,EAAO,oBAAoB,EAC3B,EAAO,cACA,EAAM,WAGX,EAAO,kBAAkB,CACvB,KAAM,GAAU,OAChB,UAAW,EAAM,UAAY,IAC7B,KAAM,CACJ,IAAK,aACL,QAAS,CACP,UAAW,EAAM,UACjB,KAAM,UACN,SAAU,kBACV,KAAM,CACJ,WAAY,EAAM,QACpB,CACF,CACF,CACF,CAAC,EACM,IAjBE,EAkBV,CACH,CAEA,SAAS,IAA2B,EAAQ,EAAO,CAUjD,OATI,EAAO,gBAAkB,UAGzB,EAAM,UAAY,IAGlB,CAAC,EAAM,WAAa,EAAM,KACrB,GAEF,GAAU,EAAO,WAAW,EAAE,eAAe,CACtD,CAEA,SAAS,IAA0B,EAAQ,CACzC,OAAO,OAAO,QACX,EAAO,IAAS,CAOf,GANI,EAAO,SAAW,GAAqB,EAAO,QAAS,CACzD,kBAAmB,EAAO,WAAW,EAAE,kBACvC,kBAAmB,EAAO,SAAS,iBACrC,CAAC,GACC,GAAsC,EAEpC,CAAC,EAAO,UAAU,GAAK,EAAO,SAAS,EACzC,OAAO,EAET,GAAI,IAAc,CAAK,EAErB,OADA,OAAO,EAAM,YACN,EAET,GAAI,CAAC,GAAa,CAAK,GAAK,CAAC,GAAmB,CAAK,GAAK,CAAC,GAAgB,CAAK,EAC9E,OAAO,EAGT,GAAI,CADoB,EAAO,6BACZ,EAEjB,OADA,GAAsC,EAC/B,EAET,GAAI,GAAgB,CAAK,EAIvB,OAHA,EAAO,MAAM,EACb,EAAM,SAAS,SAAS,UAAY,EAAO,aAAa,EACxD,IAAsB,EAAQ,CAAK,EAC5B,EAET,GAAI,IAAa,EAAO,CAAI,GAAK,CAAC,EAAO,WAAW,EAAE,aAAa,kBAEjE,OADA,IAAe,GAAM,IAAI,sCAAuC,CAAK,EAC9D,KAET,IAAM,EAAsB,IAA2B,EAAQ,CAAK,EAKpE,IAJ0B,GAAuB,EAAO,gBAAkB,aAExE,EAAM,KAAO,CAAE,GAAG,EAAM,KAAM,SAAU,EAAO,aAAa,CAAE,GAE5D,GAAuB,EAAO,gBAAkB,UAAY,EAAO,SAAS,UAAY,SAAU,CACpG,IAAM,EAAU,EAAO,QACvB,EAAQ,MAAQ,GACZ,EAAO,WAAW,EAAE,eACtB,GAAY,CAAO,CAEvB,CACA,OAAO,CACT,EACA,CAAE,GAAI,QAAS,CACjB,CACF,CAEA,SAAS,GAAuB,EAAQ,EAAS,CAC/C,OAAO,EAAQ,KAAK,CAAE,OAAM,QAAO,MAAK,OAAM,UAAW,CACvD,IAAM,EAAW,EAAO,kBAAkB,CACxC,KAAM,GAAU,OAChB,UAAW,EACX,KAAM,CACJ,IAAK,kBACL,QAAS,CACP,GAAI,EACJ,YAAa,EACb,eAAgB,EAChB,aAAc,EACd,MACF,CACF,CACF,CAAC,EACD,OAAO,OAAO,GAAa,SAAW,QAAQ,QAAQ,IAAI,EAAI,CAChE,CAAC,CACH,CAEA,SAAS,IAAc,EAAa,CAClC,GAAM,CAAE,OAAM,MAAO,EACf,EAAM,KAAK,IAAI,EAAI,IACzB,MAAO,CACL,KAAM,kBACN,MAAO,EACP,IAAK,EACL,KAAM,EACN,KAAM,CACJ,SAAU,CACZ,CACF,CACF,CACA,SAAS,IAA0B,EAAQ,CACzC,MAAQ,IAAgB,CACtB,GAAI,CAAC,EAAO,UAAU,EACpB,OAEF,IAAM,EAAS,IAAc,CAAW,EACpC,IAAW,OAGf,EAAO,WAAW,EAAE,KAAK,KAAK,EAAO,IAAI,EACzC,EAAO,oBAAoB,EAC3B,EAAO,eACL,GAAuB,EAAQ,CAAC,CAAM,CAAC,EAChC,GACR,EACH,CACF,CAEA,SAAS,IAAoB,EAAQ,EAAK,CAIxC,OAHI,IAAe,EAAO,WAAW,EAAE,aAAa,eAC3C,GAEF,GAAmB,EAAK,GAAU,CAAC,CAC5C,CAEA,SAAS,GAAqB,EAAQ,EAAQ,CACvC,EAAO,UAAU,GAGlB,IAAW,OAGX,IAAoB,EAAQ,EAAO,IAAI,GAG3C,EAAO,eACL,GAAuB,EAAQ,CAAC,CAAM,CAAC,EAChC,GACR,EACH,CAEA,SAAS,GAAY,EAAM,CACzB,GAAI,CAAC,EACH,OAEF,IAAM,EAAc,IAAI,YACxB,GAAI,CACF,GAAI,OAAO,GAAS,SAClB,OAAO,EAAY,OAAO,CAAI,EAAE,OAElC,GAAI,aAAgB,gBAClB,OAAO,EAAY,OAAO,EAAK,SAAS,CAAC,EAAE,OAE7C,GAAI,aAAgB,SAAU,CAC5B,IAAM,EAAc,GAAkB,CAAI,EAC1C,OAAO,EAAY,OAAO,CAAW,EAAE,MACzC,CACA,GAAI,aAAgB,KAClB,OAAO,EAAK,KAEd,GAAI,aAAgB,YAClB,OAAO,EAAK,UAEhB,MAAQ,CACR,CAEF,CACA,SAAS,GAAyB,EAAQ,CACxC,GAAI,CAAC,EACH,OAEF,IAAM,EAAO,SAAS,EAAQ,EAAE,EAChC,OAAO,MAAM,CAAI,EAAI,IAAK,GAAI,CAChC,CACA,SAAS,GAAa,EAAM,EAAS,CACnC,GAAI,CAAC,EACH,MAAO,CACL,QAAS,CAAC,EACV,KAAM,IAAK,GACX,MAAO,CACL,SAAU,CAAC,CAAO,CACpB,CACF,EAEF,IAAM,EAAU,CAAE,GAAG,EAAK,KAAM,EAIhC,MAFA,GAAQ,SAAW,CAAC,GADK,EAAQ,UAAY,CAAC,EACL,CAAO,EAChD,EAAK,MAAQ,EACN,CACT,CACA,SAAS,GAA4B,EAAM,EAAM,CAC/C,GAAI,CAAC,EACH,OAAO,KAET,GAAM,CAAE,iBAAgB,eAAc,MAAK,SAAQ,aAAY,UAAS,YAAa,EAarF,MAAO,CAXL,OACA,MAAO,EAAiB,IACxB,IAAK,EAAe,IACpB,KAAM,EACN,KAAM,CACJ,SACA,aACA,UACA,UACF,CAEU,CACd,CACA,SAAS,GAAqC,EAAU,CACtD,MAAO,CACL,QAAS,CAAC,EACV,KAAM,EACN,MAAO,CACL,SAAU,CAAC,aAAa,CAC1B,CACF,CACF,CACA,SAAS,GAA8B,EAAS,EAAU,EAAM,CAC9D,GAAI,CAAC,GAAY,OAAO,KAAK,CAAO,EAAE,SAAW,EAC/C,OAEF,GAAI,CAAC,EACH,MAAO,CACL,SACF,EAEF,GAAI,CAAC,EACH,MAAO,CACL,UACA,KAAM,CACR,EAEF,IAAM,EAAO,CACX,UACA,KAAM,CACR,EACM,CAAE,KAAM,EAAgB,YAAa,IAAqB,CAAI,EAOpE,MANA,GAAK,KAAO,EACR,GAAU,SACZ,EAAK,MAAQ,CACX,UACF,GAEK,CACT,CACA,SAAS,GAAkB,EAAS,EAAgB,CAClD,OAAO,OAAO,QAAQ,CAAO,EAAE,QAAQ,EAAiB,CAAC,EAAK,KAAW,CACvE,IAAM,EAAgB,EAAI,YAAY,EAItC,OAHI,EAAe,SAAS,CAAa,GAAK,EAAQ,KACpD,EAAgB,GAAiB,GAE5B,CACT,EAAG,CAAC,CAAC,CACP,CACA,SAAS,IAAqB,EAAM,CAClC,GAAI,CAAC,GAAQ,OAAO,GAAS,SAC3B,MAAO,CACL,MACF,EAEF,IAAM,EAAmB,EAAK,OAAS,GACjC,EAAiB,IAAmB,CAAI,EAC9C,GAAI,EAAkB,CACpB,IAAM,EAAgB,EAAK,MAAM,EAAG,EAAqB,EAOzD,OANI,EACK,CACL,KAAM,EACN,SAAU,CAAC,sBAAsB,CACnC,EAEK,CACL,KAAM,GAAG,EAAc,QACvB,SAAU,CAAC,gBAAgB,CAC7B,CACF,CACA,GAAI,EACF,GAAI,CAEF,MAAO,CACL,KAFe,KAAK,MAAM,CAEb,CACf,CACF,MAAQ,CACR,CAEF,MAAO,CACL,MACF,CACF,CACA,SAAS,IAAmB,EAAK,CAC/B,IAAM,EAAQ,EAAI,GACZ,EAAO,EAAI,EAAI,OAAS,GAC9B,OAAO,IAAU,KAAO,IAAS,KAAO,IAAU,KAAO,IAAS,GACpE,CACA,SAAS,GAAW,EAAK,EAAM,CAE7B,OAAO,GADS,IAAW,CACW,EAAG,CAAI,CAC/C,CACA,SAAS,IAAW,EAAK,EAAU,GAAO,SAAS,QAAS,CAC1D,GAAI,EAAI,WAAW,SAAS,GAAK,EAAI,WAAW,UAAU,GAAK,EAAI,WAAW,GAAO,SAAS,MAAM,EAClG,OAAO,EAET,IAAM,EAAW,IAAI,IAAI,EAAK,CAAO,EACrC,GAAI,EAAS,SAAW,IAAI,IAAI,CAAO,EAAE,OACvC,OAAO,EAET,IAAM,EAAU,EAAS,KAIzB,MAHI,CAAC,EAAI,SAAS,GAAG,GAAK,EAAQ,SAAS,GAAG,EACrC,EAAQ,MAAM,EAAG,EAAE,EAErB,CACT,CAEA,eAAe,IAA+B,EAAY,EAAM,EAAS,CACvE,GAAI,CAEF,IAAM,EAAS,GAA4B,iBAAkB,MAD1C,IAAkB,EAAY,EAAM,CAAO,CACG,EACjE,GAAqB,EAAQ,OAAQ,CAAM,CAC7C,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,oCAAoC,CAC5E,CACF,CACA,SAAS,IAAsB,EAAY,EAAM,CAC/C,GAAM,CAAE,QAAO,YAAa,EAEtB,EAAU,GADH,EAAQ,GAAuB,CAAK,EAAI,IAAK,EAC1B,EAC1B,EAAU,EAAW,GAAyB,EAAS,QAAQ,IAAI,gBAAgB,CAAC,EAAI,IAAK,GAC/F,IAAY,IAAK,KACnB,EAAW,KAAK,kBAAoB,GAElC,IAAY,IAAK,KACnB,EAAW,KAAK,mBAAqB,EAEzC,CACA,eAAe,IAAkB,EAAY,EAAM,EAAS,CAC1D,IAAM,EAAM,KAAK,IAAI,EACf,CAAE,iBAAiB,EAAK,eAAe,GAAQ,EAC/C,CACJ,MACA,SACA,YAAa,EAAa,EAC1B,kBAAmB,EACnB,mBAAoB,GAClB,EAAW,KACT,EAAiB,GAAW,EAAK,EAAQ,sBAAsB,GAAK,CAAC,GAAW,EAAK,EAAQ,qBAAqB,EAGxH,MAAO,CACL,iBACA,eACA,MACA,SACA,aACA,QARc,EAAiB,IAAgB,EAAS,EAAK,MAAO,CAAe,EAAI,GAAqC,CAAe,EAS3I,eARqB,IAAiB,EAAgB,EAAS,EAAK,SAAU,CAAgB,CAShG,CACF,CACA,SAAS,IAAgB,CAAE,uBAAsB,yBAAyB,EAAO,EAAiB,CAChG,IAAM,EAAU,EAAQ,IAAkB,EAAO,CAAqB,EAAI,CAAC,EAC3E,GAAI,CAAC,EACH,OAAO,GAA8B,EAAS,EAAiB,IAAK,EAAC,EAGvE,GAAM,CAAC,EAAS,GAAW,GADP,GAAuB,CACQ,EAAG,EAAK,EACrD,EAAO,GAA8B,EAAS,EAAiB,CAAO,EAI5E,OAHI,EACK,GAAa,EAAM,CAAO,EAE5B,CACT,CACA,eAAe,IAAiB,EAAgB,CAC9C,uBACA,0BACC,EAAU,EAAkB,CAC7B,GAAI,CAAC,GAAkB,IAAqB,IAAK,GAC/C,OAAO,GAAqC,CAAgB,EAE9D,IAAM,EAAU,EAAW,GAAc,EAAS,QAAS,CAAsB,EAAI,CAAC,EACtF,GAAI,CAAC,GAAY,CAAC,GAAwB,IAAqB,IAAK,GAClE,OAAO,GAA8B,EAAS,EAAkB,IAAK,EAAC,EAExE,GAAM,CAAC,EAAU,GAAW,MAAM,IAAwB,CAAQ,EAC5D,EAAS,IAAgB,EAAU,CACvC,uBACA,mBACA,iBACA,SACF,CAAC,EAID,OAHI,EACK,GAAa,EAAQ,CAAO,EAE9B,CACT,CACA,SAAS,IAAgB,EAAU,CACjC,uBACA,mBACA,iBACA,WACC,CACD,GAAI,CACF,IAAM,EAAO,GAAU,QAAU,IAAqB,IAAK,GAAI,GAAY,CAAQ,EAAI,EAOvF,OANK,EAGD,EACK,GAA8B,EAAS,EAAM,CAAQ,EAEvD,GAA8B,EAAS,EAAM,IAAK,EAAC,EALjD,GAAqC,CAAI,CAMpD,OAAS,EAAO,CAEd,OADA,IAAe,GAAM,UAAU,EAAO,mCAAmC,EAClE,GAA8B,EAAS,EAAkB,IAAK,EAAC,CACxE,CACF,CACA,eAAe,IAAwB,EAAU,CAC/C,IAAM,EAAM,IAAkB,CAAQ,EACtC,GAAI,CAAC,EACH,MAAO,CAAC,IAAK,GAAG,kBAAkB,EAEpC,GAAI,CAEF,MAAO,CAAC,MADW,IAAoB,CAAG,CAC9B,CACd,OAAS,EAAO,CAMd,OALI,aAAiB,OAAS,EAAM,QAAQ,QAAQ,SAAS,EAAI,IAC/D,IAAe,GAAM,KAAK,2CAA2C,EAC9D,CAAC,IAAK,GAAG,oBAAoB,IAEtC,IAAe,GAAM,UAAU,EAAO,uCAAuC,EACtE,CAAC,IAAK,GAAG,kBAAkB,EACpC,CACF,CACA,SAAS,GAAc,EAAS,EAAgB,CAC9C,IAAM,EAAa,CAAC,EAMpB,OALA,EAAe,QAAS,GAAW,CAC7B,EAAQ,IAAI,CAAM,IACpB,EAAW,GAAU,EAAQ,IAAI,CAAM,EAE3C,CAAC,EACM,CACT,CACA,SAAS,IAAkB,EAAW,EAAgB,CAOpD,OANI,EAAU,SAAW,GAAK,OAAO,EAAU,IAAO,SAC7C,GAAsB,EAAU,GAAI,CAAc,EAEvD,EAAU,SAAW,EAChB,GAAsB,EAAU,GAAI,CAAc,EAEpD,CAAC,CACV,CACA,SAAS,GAAsB,EAAO,EAAgB,CACpD,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,IAAM,EAAU,EAAM,QAUtB,OATK,EAGD,aAAmB,QACd,GAAc,EAAS,CAAc,EAE1C,MAAM,QAAQ,CAAO,EAChB,CAAC,EAEH,GAAkB,EAAS,CAAc,EARvC,CAAC,CASZ,CACA,SAAS,IAAkB,EAAU,CACnC,GAAI,CACF,OAAO,EAAS,MAAM,CACxB,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,+BAA+B,CACvE,CACF,CACA,SAAS,IAAoB,EAAU,CACrC,OAAO,IAAI,SAAS,EAAS,IAAW,CACtC,IAAM,EAAU,OAAmB,EAAW,MAAM,4CAA4C,CAAC,EAAG,GAAG,EACvG,IAAiB,CAAQ,EAAE,KACxB,GAAQ,EAAQ,CAAG,EACnB,GAAW,EAAO,CAAM,CAC3B,EAAE,YAAc,aAAa,CAAO,CAAC,CACvC,CAAC,CACH,CACA,eAAe,IAAiB,EAAU,CACxC,OAAO,MAAM,EAAS,KAAK,CAC7B,CAEA,eAAe,IAA6B,EAAY,EAAM,EAAS,CACrE,GAAI,CAEF,IAAM,EAAS,GAA4B,eAD9B,IAAgB,EAAY,EAAM,CACe,CAAC,EAC/D,GAAqB,EAAQ,OAAQ,CAAM,CAC7C,OAAS,EAAO,CACd,IAAe,GAAM,UAAU,EAAO,kCAAkC,CAC1E,CACF,CACA,SAAS,IAAoB,EAAY,EAAM,CAC7C,GAAM,CAAE,MAAK,SAAU,EACvB,GAAI,CAAC,EACH,OAEF,IAAM,EAAU,GAAY,CAAK,EAC3B,EAAU,EAAI,kBAAkB,gBAAgB,EAAI,GAAyB,EAAI,kBAAkB,gBAAgB,CAAC,EAAI,IAAa,EAAI,SAAU,EAAI,YAAY,EACrK,IAAY,IAAK,KACnB,EAAW,KAAK,kBAAoB,GAElC,IAAY,IAAK,KACnB,EAAW,KAAK,mBAAqB,EAEzC,CACA,SAAS,IAAgB,EAAY,EAAM,EAAS,CAClD,IAAM,EAAM,KAAK,IAAI,EACf,CAAE,iBAAiB,EAAK,eAAe,EAAK,QAAO,OAAQ,EAC3D,CACJ,MACA,SACA,YAAa,EAAa,EAC1B,kBAAmB,EACnB,mBAAoB,GAClB,EAAW,KACf,GAAI,CAAC,EACH,OAAO,KAET,GAAI,CAAC,GAAO,CAAC,GAAW,EAAK,EAAQ,sBAAsB,GAAK,GAAW,EAAK,EAAQ,qBAAqB,EAG3G,MAAO,CACL,iBACA,eACA,MACA,SACA,aACA,QARe,GAAqC,CAQpC,EAChB,SARgB,GAAqC,CAQnC,CACpB,EAEF,IAAM,EAAU,EAAI,IACd,EAAwB,EAAU,GAAkB,EAAQ,gBAAiB,EAAQ,qBAAqB,EAAI,CAAC,EAC/G,EAAyB,GAAkB,GAAwB,CAAG,EAAG,EAAQ,sBAAsB,EACvG,CAAC,EAAa,GAAkB,EAAQ,qBAAuB,GAAc,EAAO,EAAK,EAAI,CAAC,IAAK,EAAC,EACpG,CAAC,EAAc,GAAmB,EAAQ,qBAAuB,IAAoB,CAAG,EAAI,CAAC,IAAK,EAAC,EACnG,EAAU,GAA8B,EAAuB,EAAiB,CAAW,EAC3F,EAAW,GAA8B,EAAwB,EAAkB,CAAY,EACrG,MAAO,CACL,iBACA,eACA,MACA,SACA,aACA,QAAS,EAAiB,GAAa,EAAS,CAAc,EAAI,EAClE,SAAU,EAAkB,GAAa,EAAU,CAAe,EAAI,CACxE,CACF,CACA,SAAS,IAAoB,EAAK,CAChC,IAAM,EAAS,CAAC,EAChB,GAAI,CACF,MAAO,CAAC,EAAI,YAAY,CAC1B,OAAS,EAAG,CACV,EAAO,KAAK,CAAC,CACf,CACA,GAAI,CACF,OAAO,IAAkB,EAAI,SAAU,EAAI,YAAY,CACzD,OAAS,EAAG,CACV,EAAO,KAAK,CAAC,CACf,CAEA,OADA,IAAe,GAAM,KAAK,kCAAmC,GAAG,CAAM,EAC/D,CAAC,IAAK,EAAC,CAChB,CACA,SAAS,IAAkB,EAAM,EAAc,CAC7C,GAAI,CACF,GAAI,OAAO,GAAS,SAClB,MAAO,CAAC,CAAI,EAEd,GAAI,aAAgB,SAClB,MAAO,CAAC,EAAK,KAAK,SAAS,EAE7B,GAAI,IAAiB,QAAUxH,GAAa,CAAI,EAC9C,MAAO,CAAC,KAAK,UAAU,CAAI,CAAC,EAE9B,GAAI,CAAC,EACH,MAAO,CAAC,IAAK,EAAC,CAElB,OAAS,EAAO,CAEd,OADA,IAAe,GAAM,UAAU,EAAO,2BAA4B,CAAI,EAC/D,CAAC,IAAK,GAAG,kBAAkB,CACpC,CAEA,OADA,IAAe,GAAM,IAAI,6CAA8C,CAAI,EACpE,CAAC,IAAK,GAAG,uBAAuB,CACzC,CACA,SAAS,IAAa,EAAM,EAAc,CACxC,GAAI,CAEF,OAAO,GADS,IAAiB,QAAUA,GAAa,CAAI,EAAI,KAAK,UAAU,CAAI,EAAI,CAC7D,CAC5B,MAAQ,CACN,MACF,CACF,CAEA,SAAS,IAAyB,EAAQ,CACxC,IAAM,EAAS,GAAU,EACzB,GAAI,CACF,GAAM,CACJ,yBACA,wBACA,uBACA,wBACA,0BACE,EAAO,WAAW,EAChB,EAAU,CACd,SACA,yBACA,wBACA,uBACA,wBACA,wBACF,EACI,GACF,EAAO,GAAG,uBAAwB,EAAY,IAAS,IAA2B,EAAS,EAAY,CAAI,CAAC,CAEhH,MAAQ,CACR,CACF,CACA,SAAS,IAA2B,EAAS,EAAY,EAAM,CACxD,KAAW,KAGhB,GAAI,CACE,IAAiB,CAAU,GAAK,IAAW,CAAI,IACjD,IAAoB,EAAY,CAAI,EACpC,IAA6B,EAAY,EAAM,CAAO,GAEpD,IAAmB,CAAU,GAAK,IAAa,CAAI,IACrD,IAAsB,EAAY,CAAI,EACtC,IAA+B,EAAY,EAAM,CAAO,EAE5D,OAAS,EAAG,CACV,IAAe,GAAM,UAAU,EAAG,yCAAyC,CAC7E,CACF,CACA,SAAS,IAAiB,EAAY,CACpC,OAAO,EAAW,WAAa,KACjC,CACA,SAAS,IAAmB,EAAY,CACtC,OAAO,EAAW,WAAa,OACjC,CACA,SAAS,IAAW,EAAM,CACxB,OAAO,GAAM,GACf,CACA,SAAS,IAAa,EAAM,CAC1B,OAAO,GAAM,QAAU,IAAK,EAC9B,CAEA,SAAS,IAAmB,EAAQ,CAClC,IAAM,EAAS,GAAU,EACzB,GAAuC,IAAkB,CAAM,CAAC,EAChE,GAAiC,IAA0B,CAAM,CAAC,EAClE,IAAkB,CAAM,EACxB,IAAyB,CAAM,EAE/B,IADuB,IAA0B,CAClB,CAAC,EAC5B,IACF,EAAO,GAAG,kBAAmB,IAAsB,CAAM,CAAC,EAC1D,EAAO,GAAG,iBAAkB,IAAqB,CAAM,CAAC,EACxD,EAAO,GAAG,YAAc,GAAQ,CAC9B,IAAM,EAAW,EAAO,aAAa,EACjC,GAAY,EAAO,UAAU,GAAK,EAAO,gBAAkB,WACrC,EAAO,6BACb,IAChB,EAAI,UAAY,EAGtB,CAAC,EACD,EAAO,GAAG,qBAAsB,IAAyB,CAAM,CAAC,EAChE,EAAO,GAAG,YAAc,GAAS,CAC/B,EAAO,eAAiB,CAC1B,CAAC,EACD,EAAO,GAAG,UAAY,GAAS,CAC7B,EAAO,eAAiB,CAC1B,CAAC,EACD,EAAO,GAAG,qBAAsB,MAAO,EAAe,IAAY,CAChE,IAAM,EAAW,EAAO,aAAa,EACjC,GAAS,eAAiB,EAAO,UAAU,GAAK,GAAY,EAAc,UAAU,WAClF,EAAc,SAAS,SAAS,SAAW,OAC7C,MAAM,EAAO,0BAA0B,EAEzC,EAAc,SAAS,SAAS,UAAY,EAEhD,CAAC,EACD,EAAO,GAAG,qBAAsB,SAAY,CAC1C,MAAM,EAAO,0BAA0B,CACzC,CAAC,EAEL,CAEA,eAAe,IAAe,EAAQ,CACpC,GAAI,CACF,OAAO,QAAQ,IACb,GAAuB,EAAQ,CAE7B,IAAkB,GAAO,YAAY,MAAM,CAC7C,CAAC,CACH,CACF,MAAQ,CACN,MAAO,CAAC,CACV,CACF,CACA,SAAS,IAAkB,EAAa,CACtC,GAAM,CAAE,kBAAiB,kBAAiB,kBAAmB,EACvD,EAAO,KAAK,IAAI,EAAI,IAC1B,MAAO,CACL,KAAM,SACN,KAAM,SACN,MAAO,EACP,IAAK,EACL,KAAM,CACJ,OAAQ,CACN,kBACA,kBACA,gBACF,CACF,CACF,CACF,CAEA,SAASV,IAAS,EAAM,EAAM,EAAS,CACrC,OAAOmI,IAAW,EAAM,EAAM,CAC5B,GAAG,EAEH,eAAgB,EAClB,CAAC,CACH,CAEA,IAAM,GAAY,GAAW,UAC7B,SAAS,KAA8B,CAQrC,MAPI,oBAAoB,KAAK,IAAW,WAAa,EAAE,GAAK,aAAa,KAAK,IAAW,WAAa,EAAE,GAAK,IAAW,gBAAkB,IAAW,eAAiB,EAC7J,CACL,SAAU,CACR,UAAW,EACb,CACF,EAEK,CAAC,CACV,CAEA,SAAS,IAAuB,EAAQ,CACtC,IAAI,EAAgB,GACpB,OAAQ,EAAO,IAAgB,CAC7B,GAAI,CACF,GAAI,CAAC,EAAO,6BAA6B,EAAG,CAC1C,IAAe,GAAM,KAAK,8CAA8C,EACxE,MACF,CACA,IAAM,EAAa,GAAe,CAAC,EACnC,EAAgB,GAChB,IAAsC,CAAK,EACvC,EAAO,eACT,IAAqC,EAAO,cAAe,CAAK,EAElE,EAAO,cAAgB,CAIrB,GAHI,EAAO,gBAAkB,UAAY,GACvC,EAAO,gBAAgB,EAErB,CAAC,GAAa,EAAQ,EAAO,CAAU,EACzC,MAAO,GAET,GAAI,CAAC,EACH,MAAO,GAET,IAAM,EAAU,EAAO,QAEvB,GADA,IAAiB,EAAQ,CAAU,EAC/B,EAAO,gBAAkB,UAAY,GAAW,EAAO,aAAe,CAAC,EAAQ,MAAO,CACxF,IAAM,EAAgB,EAAO,YAAY,qBAAqB,EAC1D,IACF,IAAe,GAAM,IAAI,8DAA8D,IAAI,KAAK,CAAa,GAAG,EAChH,EAAQ,QAAU,EACd,EAAO,WAAW,EAAE,eACtB,GAAY,CAAO,EAGzB,CAOA,OANI,GAAS,mBAGT,EAAO,gBAAkB,WAC3B,EAAY,MAAM,EAHX,EAMX,CAAC,CACH,OAAS,EAAO,CACd,EAAO,gBAAgB,CAAK,CAC9B,CACF,CACF,CACA,SAAS,IAAsC,EAAO,CACpD,IAAM,EAAO,EAAM,KACf,OAAM,OAAS,GAAU,qBAAuB,CAAC,GAAQ,OAAO,GAAS,UAAY,EAAE,WAAY,IAAS,EAAK,SAAW,GAAkB,UAAY,EAAE,eAAgB,IAAS,CAAC,MAAM,QAAQ,EAAK,UAAU,GAGvN,IAAK,IAAM,KAAY,EAAK,WAAY,CACtC,IAAM,EAAO,GAAO,OAAO,QAAQ,EAAS,EAAE,EACxC,EAAO,GAAQ,GAAO,OAAO,QAAQ,CAAI,EAC3C,MAAM,OAAS,GAAS,QAG5B,IAAK,GAAM,CAAC,EAAe,KAAU,OAAO,QAAQ,EAAS,UAAU,EACjE,IAAU,KACZ,OAAO,EAAK,WAAW,GAEvB,EAAK,WAAW,GAAiB,CAGvC,CACF,CACA,SAAS,IAAmB,EAAQ,CAClC,IAAM,EAAU,EAAO,WAAW,EAClC,MAAO,CACL,KAAM,GAAU,OAChB,UAAW,KAAK,IAAI,EACpB,KAAM,CACJ,IAAK,UACL,QAAS,CACP,mBAAoB,EAAO,kBAAkB,EAC7C,kBAAmB,EAAQ,kBAC3B,gBAAiB,EAAQ,gBACzB,qBAAsB,EAAQ,eAC9B,cAAe,EAAQ,cACvB,YAAa,EAAQ,YACrB,cAAe,EAAQ,cACvB,eAAgB,EAAO,YAAc,EAAO,YAAY,OAAS,SAAW,GAC5E,qBAAsB,EAAQ,uBAAuB,OAAS,EAC9D,qBAAsB,EAAQ,qBAC9B,yBAA0B,EAAQ,sBAAsB,OAAS,EACjE,0BAA2B,EAAQ,uBAAuB,OAAS,CACrE,CACF,CACF,CACF,CACA,SAAS,IAAiB,EAAQ,EAAY,CACxC,CAAC,GAAc,EAAO,SAAS,YAAc,GAGjD,GAAa,EAAQ,IAAmB,CAAM,EAAG,EAAK,CACxD,CAEA,SAAS,IAAqB,EAAM,CAClC,GAAI,CAAC,EACH,OAAO,KAET,GAAI,CAEF,OADW,EAAK,WAAa,EAAK,aAAe,EAAO,EAAK,aAE/D,MAAQ,CACN,OAAO,IACT,CACF,CAEA,SAAS,IAAqB,EAAa,EAAe,EAAK,EAAQ,CACrE,OAAO,GACL,GAA2B,EAAa,GAAgC,CAAW,EAAG,EAAQ,CAAG,EACjG,CACE,CAAC,CAAE,KAAM,cAAe,EAAG,CAAW,EACtC,CACE,CACE,KAAM,mBAIN,OAAQ,OAAO,GAAkB,SAAW,IAAI,YAAY,EAAE,OAAO,CAAa,EAAE,OAAS,EAAc,MAC7G,EACA,CACF,CACF,CACF,CACF,CAEA,SAAS,IAAqB,CAC5B,gBACA,WACC,CACD,IAAI,EACE,EAAgB,GAAG,KAAK,UAAU,CAAO;EAE/C,GAAI,OAAO,GAAkB,SAC3B,EAAsB,GAAG,IAAgB,QACpC,CAEL,IAAM,EAAW,IADD,YACG,EAAE,OAAO,CAAa,EACzC,EAAsB,IAAI,WAAW,EAAS,OAAS,EAAc,MAAM,EAC3E,EAAoB,IAAI,CAAQ,EAChC,EAAoB,IAAI,EAAe,EAAS,MAAM,CACxD,CACA,OAAO,CACT,CAEA,eAAe,IAAmB,CAChC,SACA,QACA,SAAU,EACV,SACC,CAED,IAAM,EAAY,CAAE,WAAU,aADT,OAAO,EAAO,eAAqB,UAAY,EAAO,gBAAqB,MAAQ,CAAC,MAAM,QAAQ,EAAO,aAAgB,EAAI,OAAO,KAAK,EAAO,aAAgB,EAAI,IAAK,EACnJ,EAC3C,EAAO,KAAK,kBAAmB,EAAO,CAAS,EAC/C,IAAM,EAAgB,MAAM,GAC1B,EAAO,WAAW,EAClB,EACA,EACA,EACA,EACA,GAAkB,CACpB,EACA,GAAI,CAAC,EACH,OAAO,KAET,EAAO,KAAK,mBAAoB,EAAe,CAAS,EACxD,EAAc,SAAW,EAAc,UAAY,aAEnD,GAAM,CAAE,OAAM,UAAS,YADN,EAAO,eACmB,GAAG,KAAO,CAAC,EAOtD,MANA,GAAc,IAAM,CAClB,GAAG,EAAc,IACjB,KAAM,GAAQ,4BACd,QAAS,GAAW,QACpB,UACF,EACO,CACT,CAEA,eAAe,IAAkB,CAC/B,gBACA,WACA,UAAW,EACX,eACA,YACA,WACC,CACD,IAAM,EAAwB,IAAqB,CACjD,gBACA,QAAS,CACP,YACF,CACF,CAAC,EACK,CAAE,OAAM,WAAU,WAAU,eAAc,oBAAqB,EAC/D,EAAS,GAAU,EACnB,EAAQ,GAAgB,EACxB,EAAY,GAAQ,aAAa,EACjC,EAAM,GAAQ,OAAO,EAC3B,GAAI,CAAC,GAAU,CAAC,GAAa,CAAC,GAAO,CAAC,EAAQ,QAC5C,OAAO,QAAQ,QAAQ,CAAC,CAAC,EAc3B,IAAM,EAAc,MAAM,IAAmB,CAAE,QAAO,SAAQ,WAAU,MAAO,CAX7E,KAAM,IACN,uBAAwB,EAAmB,IAC3C,UAAW,EAAY,IACvB,UAAW,EACX,UAAW,EACX,cAAe,EACf,OACA,UAAW,EACX,aACA,YAAa,EAAQ,OAEgE,CAAE,CAAC,EAC1F,GAAI,CAAC,EAGH,OAFA,EAAO,mBAAmB,kBAAmB,QAAQ,EACrD,IAAe,GAAM,IAAI,0DAA0D,EAC5E,QAAQ,QAAQ,CAAC,CAAC,EAE3B,OAAO,EAAY,sBACnB,IAAM,EAAW,IAAqB,EAAa,EAAuB,EAAK,EAAO,WAAW,EAAE,MAAM,EACrG,EACJ,GAAI,CACF,EAAW,MAAM,EAAU,KAAK,CAAQ,CAC1C,OAAS,EAAK,CACZ,IAAM,EAAY,MAAM,EAAqB,EAC7C,GAAI,CACF,EAAM,MAAQ,CAChB,MAAQ,CACR,CACA,MAAM,CACR,CACA,IAAM,EAAa,GAAiB,CAAC,EAAG,CAAQ,EAChD,GAAI,GAAc,EAAY,QAAQ,EACpC,MAAM,IAAI,GAAe,CAAU,EAErC,GAAI,OAAO,EAAS,YAAe,WAAa,EAAS,WAAa,KAAO,EAAS,YAAc,KAClG,MAAM,IAAI,GAAyB,EAAS,UAAU,EAExD,OAAO,CACT,CACA,IAAM,GAAN,cAAuC,KAAM,CAC3C,YAAY,EAAY,CACtB,MAAM,kCAAkC,GAAY,CACtD,CACF,EACM,GAAN,cAA6B,KAAM,CACjC,YAAY,EAAY,CACtB,MAAM,gBAAgB,EACtB,KAAK,WAAa,CACpB,CACF,EACM,GAAN,cAAuC,KAAM,CAC3C,aAAc,CACZ,MAAM,yCAAyC,CACjD,CACF,EAEA,eAAe,GAAW,EAAY,EAAc,CAClD,MAAO,EACP,SAAU,GACZ,EAAG,CACD,GAAM,CAAE,gBAAe,WAAY,EAC9B,KAAc,OAGnB,GAAI,CAEF,OADA,MAAM,IAAkB,CAAU,EAC3B,EACT,OAAS,EAAK,CACZ,GAAI,aAAe,IAA4B,aAAe,GAC5D,MAAM,EAQR,GANA,GAAW,UAAW,CACpB,YAAa,EAAY,KAC3B,CAAC,EACG,GACF,EAAQ,CAAG,EAET,EAAY,OAAS,IAAiB,CACxC,IAAM,EAAY,MAAM,GAAG,GAAsB,wBAAwB,EACzE,GAAI,CACF,EAAM,MAAQ,CAChB,MAAQ,CACR,CACA,MAAM,CACR,CAEA,MADA,GAAY,UAAY,EAAE,EAAY,MAC/B,IAAI,SAAS,EAAS,IAAW,CACtC,GAAa,SAAY,CACvB,GAAI,CACF,MAAM,GAAW,EAAY,CAAW,EACxC,EAAQ,EAAI,CACd,OAAS,EAAM,CACb,EAAO,CAAI,CACb,CACF,EAAG,EAAY,QAAQ,CACzB,CAAC,CACH,CACF,CAEA,IAAM,GAAY,cACZ,IAAU,YAChB,SAASpJ,IAAS,EAAI,EAAU,EAAiB,CAC/C,IAAM,EAA0B,IAAI,IAC9B,EAAY,GAAQ,CACxB,IAAM,EAAY,EAAM,EACxB,EAAQ,SAAS,EAAQ,IAAQ,CAC3B,EAAM,GACR,EAAQ,OAAO,CAAG,CAEtB,CAAC,CACH,EACM,MACG,CAAC,GAAG,EAAQ,OAAO,CAAC,EAAE,QAAQ,EAAG,IAAM,EAAI,EAAG,CAAC,EAEpD,EAAc,GAClB,OAAQ,GAAG,IAAS,CAClB,IAAM,EAAM,KAAK,MAAM,KAAK,IAAI,EAAI,GAAG,EAEvC,GADA,EAAS,CAAG,EACR,EAAe,GAAK,EAAU,CAChC,IAAM,EAAe,EAErB,MADA,GAAc,GACP,EAAe,IAAU,EAClC,CACA,EAAc,GACd,IAAM,EAAQ,EAAQ,IAAI,CAAG,GAAK,EAElC,OADA,EAAQ,IAAI,EAAK,EAAQ,CAAC,EACnB,EAAG,GAAG,CAAI,CACnB,CACF,CAEA,IAAM,IAAN,KAAsB,CACpB,YAAY,CACV,UACA,oBACC,CACD,KAAK,YAAc,KACnB,KAAK,mBAAqB,CAAC,EAC3B,KAAK,yBAA2B,CAAC,EACjC,KAAK,cAAgB,UACrB,KAAK,SAAW,CACd,iBAAkB,IAClB,kBAAmB,GACrB,EACA,KAAK,cAAgB,KAAK,IAAI,EAC9B,KAAK,WAAa,GAClB,KAAK,UAAY,GACjB,KAAK,qBAAuB,GAC5B,KAAK,6BAA+B,GACpC,KAAK,SAAW,CACd,SAA0B,IAAI,IAC9B,SAA0B,IAAI,IAC9B,aAA8B,IAAI,IAClC,KAAM,CAAC,EACP,iBAAkB,KAAK,IAAI,EAC3B,WAAY,EACd,EACA,KAAK,kBAAoB,EACzB,KAAK,SAAW,EAChB,KAAK,gBAAkBiB,QAAe,KAAK,OAAO,EAAG,KAAK,SAAS,cAAe,CAChF,QAAS,KAAK,SAAS,aACzB,CAAC,EACD,KAAK,mBAAqBjB,KACvB,EAAO,IAAe,IAAS,KAAM,EAAO,CAAU,EAEvD,IAEA,CACF,EACA,GAAM,CAAE,mBAAkB,4BAA6B,KAAK,WAAW,EACjE,EAAkB,EAAmB,CACzC,UAAW,KAAK,IAAI,IAAsB,CAAgB,EAC1D,QAAS,EACT,cAAe,IACf,eAAgB,EAA2B,EAAyB,KAAK,GAAG,EAAI,EAClF,EAAI,IAAK,GAIT,GAHI,IACF,KAAK,cAAgB,IAAI,IAAc,KAAM,CAAe,GAE1D,GAAa,CACf,IAAM,EAAc,EAAQ,aAC5B,GAAM,UAAU,CACd,kBAAmB,CAAC,CAAC,EAAY,kBACjC,eAAgB,CAAC,CAAC,EAAY,cAChC,CAAC,CACH,CACA,KAAK,4BAAgC,CAC/B,GAAO,SAAS,kBAAoB,UACtC,KAAK,2BAA2B,EAEhC,KAAK,2BAA2B,CAEpC,EACA,KAAK,sBAA0B,CAC7B,IAAM,EAAa,GAAiB,CAClC,SAAU,SACZ,CAAC,EACD,KAAK,2BAA2B,CAAU,CAC5C,EACA,KAAK,uBAA2B,CAC9B,IAAM,EAAa,GAAiB,CAClC,SAAU,UACZ,CAAC,EACD,KAAK,2BAA2B,CAAU,CAC5C,EACA,KAAK,qBAAwB,GAAU,CACrC,IAAoB,KAAM,CAAK,CACjC,CACF,CAEA,YAAa,CACX,OAAO,KAAK,QACd,CAEA,WAAY,CACV,OAAO,KAAK,UACd,CAEA,UAAW,CACT,OAAO,KAAK,SACd,CAIA,mBAAoB,CAClB,MAAO,EAAQ,KAAK,OACtB,CAEA,YAAa,CACX,OAAO,KAAK,QACd,CAEA,gBAAgB,EAAO,CACrB,IAAe,GAAM,UAAU,CAAK,EAChC,KAAK,SAAS,SAChB,KAAK,SAAS,QAAQ,CAAK,CAE/B,CAKA,mBAAmB,EAAmB,CACpC,GAAM,CAAE,kBAAiB,qBAAsB,KAAK,SAC9C,EAAsB,GAAmB,GAAK,GAAqB,EACzE,QAAK,qBAAuB,EACxB,GAIJ,IADA,KAAK,8BAA8B,CAAiB,EAChD,CAAC,KAAK,QAAS,CACjB,IAAe,GAAM,UAAc,MAAM,yCAAyC,CAAC,EACnF,MACF,CACI,KAAK,QAAQ,UAAY,KAG7B,KAAK,cAAgB,KAAK,QAAQ,UAAY,UAAY,KAAK,QAAQ,YAAc,EAAI,SAAW,UACpG,IAAe,GAAM,SAAS,sBAAsB,KAAK,cAAc,MAAM,EAC7E,KAAK,qBAAqB,EAN1B,CAOF,CAQA,OAAQ,CACN,GAAI,KAAK,YAAc,KAAK,gBAAkB,UAAW,CACvD,IAAe,GAAM,IAAI,kCAAkC,EAC3D,MACF,CACA,GAAI,KAAK,YAAc,KAAK,gBAAkB,SAAU,CACtD,IAAe,GAAM,IAAI,6DAA6D,EACtF,MACF,CACA,IAAe,GAAM,SAAS,iCAAiC,EAC/D,KAAK,oBAAoB,EACzB,IAAM,EAAU,GACd,CACE,kBAAmB,KAAK,SAAS,kBACjC,kBAAmB,KAAK,SAAS,iBACnC,EACA,CACE,cAAe,KAAK,SAAS,cAE7B,kBAAmB,EACnB,eAAgB,EAClB,CACF,EACA,KAAK,QAAU,EACf,KAAK,cAAgB,UACrB,KAAK,qBAAqB,CAC5B,CAKA,gBAAiB,CACf,GAAI,KAAK,WAAY,CACnB,IAAe,GAAM,IAAI,6DAA6D,EACtF,MACF,CACA,IAAe,GAAM,SAAS,gCAAgC,EAC9D,IAAM,EAAU,GACd,CACE,kBAAmB,KAAK,SAAS,kBACjC,kBAAmB,KAAK,SAAS,iBACnC,EACA,CACE,cAAe,KAAK,SAAS,cAC7B,kBAAmB,EACnB,eAAgB,EAClB,CACF,EACA,KAAK,QAAU,EACf,KAAK,cAAgB,SACrB,KAAK,qBAAqB,CAC5B,CAMA,gBAAiB,CACf,GAAI,CACF,IAAM,EAAgB,KAAK,QAC3B,KAAK,eAAiB,GAAO,CAC3B,GAAG,KAAK,kBAIR,GAAG,KAAK,gBAAkB,SAAW,CAAE,iBAAkB,GAAqB,EAQ5E,KAAK,SAAS,aAAa,oBAAsB,CAE/C,iBAAkB,KAAK,IAAI,KAAM,KAAK,SAAS,aAAa,kBAAkB,CAChF,EAEF,KAAM,IAAuB,IAAI,EACjC,GAAG,IAA4B,EAC/B,WAAY,KAAK,mBAAmB,KAAK,IAAI,EAC7C,GAAG,EAAgB,CACjB,aAAc,EAAc,aAC5B,iBAAkB,EAAc,iBAChC,SAAU,EAAc,SACxB,eAAgB,EAAc,cAChC,EAAI,CAAC,CACP,CAAC,CACH,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,CAC1B,CACF,CAOA,eAAgB,CACd,GAAI,CAKF,MAJA,CAEE,KAAK,kBADL,KAAK,eAAe,EACE,IAAK,IAEtB,EACT,OAAS,EAAK,CAEZ,OADA,KAAK,gBAAgB,CAAG,EACjB,EACT,CACF,CAKA,MAAM,KAAK,CACT,aAAa,GACb,UACE,CAAC,EAAG,CACN,GAAI,CAAC,KAAK,WACR,OAEF,KAAK,WAAa,GAClB,KAAK,cAAgB,SACrB,IAAM,EAAa,GAAU,SAC7B,GAAU,GAAG,KAAK,YAAa,CAAE,UAAW,KAAK,SAAS,GAAI,OAAQ,CAAW,CAAC,EAClF,GAAI,CACF,IAAe,GAAM,IAAI,gCAAgC,GAAY,EACrE,GAAsC,EACtC,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,OAAO,EACxB,GACF,MAAM,KAAK,OAAO,CAAE,MAAO,EAAK,CAAC,EAEnC,KAAK,aAAa,QAAQ,EAC1B,KAAK,YAAc,KACnB,IAAa,IAAI,CACnB,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,CAC1B,CACF,CAMA,OAAQ,CACF,KAAK,YAGT,KAAK,UAAY,GACjB,KAAK,cAAc,EACnB,IAAe,GAAM,IAAI,gBAAgB,EAC3C,CAOA,QAAS,CACH,CAAC,KAAK,WAAa,CAAC,KAAK,cAAc,IAG3C,KAAK,UAAY,GACjB,KAAK,eAAe,EACpB,IAAe,GAAM,IAAI,iBAAiB,EAC5C,CAQA,MAAM,0BAA0B,CAAE,oBAAoB,IAAS,CAAC,EAAG,CACjE,GAAI,KAAK,gBAAkB,UACzB,OAAO,KAAK,eAAe,EAE7B,IAAM,EAAe,KAAK,IAAI,EAC9B,IAAe,GAAM,IAAI,8BAA8B,EACvD,MAAM,KAAK,eAAe,EAC1B,IAAM,EAAsB,KAAK,cAAc,EAC3C,CAAC,GAAqB,CAAC,GAGvB,KAAK,gBAAkB,YAG3B,KAAK,cAAgB,UACjB,KAAK,UACP,KAAK,QAAQ,MAAQ,GACrB,KAAK,oBAAoB,CAAY,EACrC,KAAK,uBAAuB,CAAY,EACxC,KAAK,kBAAkB,EACvB,GAAoC,KAAK,QAAQ,EAAE,GAErD,KAAK,eAAe,EACtB,CASA,UAAU,EAAI,CACZ,IAAM,EAAW,EAAG,EAChB,KAAK,gBAAkB,UAAY,CAAC,KAAK,YAGzC,IAAa,IAGjB,KAAK,gBAAgB,CACvB,CAMA,qBAAsB,CAEpB,GADA,KAAK,oBAAoB,EACrB,CAAC,KAAK,eAAgB,CACxB,GAAI,CAAC,KAAK,cAAc,EACtB,OAEF,KAAK,OAAO,EACZ,MACF,CACA,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,CAC9B,CAQA,oBAAqB,CACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,CAC9B,CAIA,kBAAmB,CAIjB,OAHI,KAAK,gBAAkB,SAClB,QAAQ,QAAQ,EAElB,KAAK,eAAe,CAC7B,CAIA,OAAQ,CACN,OAAO,KAAK,gBAAgB,CAC9B,CAMA,gBAAiB,CAEf,OADA,KAAK,gBAAgB,EACd,KAAK,gBAAgB,MAAM,CACpC,CAIA,aAAc,CACZ,KAAK,gBAAgB,OAAO,CAC9B,CAKA,aAAa,EAAe,CACtB,QAAiB,KAAK,SAAS,UAAY,IAG/C,OAAO,KAAK,SAAS,EACvB,CASA,8BAA+B,CAC7B,GAAI,KAAK,eAAiB,GAAU,KAAK,cAAe,KAAK,SAAS,gBAAgB,GAAK,KAAK,SAAS,UAAY,UAAW,CAC9H,KAAK,MAAM,EACX,MACF,CAIA,MAHA,EAAK,KAAK,cAAc,CAI1B,CAMA,iBAAkB,CAChB,IAAM,EAAU,GAAG,GAAO,SAAS,WAAW,GAAO,SAAS,OAAO,GAAO,SAAS,SAC/E,EAAM,GAAG,GAAO,SAAS,SAAS,IACxC,KAAK,mBAAqB,CAAC,EAC3B,KAAK,yBAA2B,CAAC,EACjC,KAAK,cAAc,EACnB,KAAK,SAAS,WAAa,EAC3B,KAAK,SAAS,iBAAmB,KAAK,IAAI,EAC1C,KAAK,SAAS,KAAK,KAAK,CAAG,CAC7B,CAKA,kBAAkB,EAAO,EAAY,CACnC,IAAM,EAAM,KAAK,mBAAmB,EAAO,CAAU,EACrD,GAAI,IAAQ,GAAW,CACrB,IAAM,EAAa,GAAiB,CAClC,SAAU,kBACZ,CAAC,EACD,KAAK,cACI,CAAC,GAAa,KAAM,CACzB,KAAM,IACN,UAAW,EAAW,WAAa,EACnC,KAAM,CACJ,IAAK,aACL,QAAS,EACT,OAAQ,EACV,CACF,CAAC,CACF,CACH,CACA,OAAO,CACT,CAKA,iBAAkB,CAChB,IAAM,EAAiB,KAAK,gBAAkB,GAAc,EACtD,EAAe,GAAkB,GAAY,CAAc,EAE3D,GADa,GAAgB,GAAW,CAAY,EAAE,MAAQ,CAAC,GAC3C,IACtB,MAAC,GAAgB,CAAC,GAAU,CAAC,CAAC,QAAS,QAAQ,EAAE,SAAS,CAAM,GAGpE,OAAO,GAAW,CAAY,EAAE,WAClC,CAKA,sBAAuB,CACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,YAAc,IAAkB,CACnC,eAAgB,KAAK,SAAS,eAC9B,UAAW,KAAK,SAAS,SAC3B,CAAC,EACD,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAa,GAClB,KAAK,UAAY,GACb,KAAK,SACP,GAAU,GAAG,KAAK,cAAe,CAC/B,UAAW,KAAK,QAAQ,GACxB,cAAe,KAAK,aACtB,CAAC,EAEH,KAAK,eAAe,EAChB,KAAK,gBAAkB,WAAa,KAAK,SAC3C,GAAoC,KAAK,QAAQ,EAAE,CAEvD,CAIA,8BAA8B,EAAmB,CAC/C,IAAM,EAAiB,KAAK,SAAS,gBAAkB,EACjD,EAAU,GACd,CACE,kBAAmB,KAAK,SAAS,kBACjC,kBAAmB,KAAK,SAAS,kBACjC,mBACF,EACA,CACE,cAAe,KAAK,SAAS,cAC7B,kBAAmB,KAAK,SAAS,kBACjC,gBACF,CACF,EACA,KAAK,QAAU,CACjB,CAKA,eAAgB,CACd,GAAI,CAAC,KAAK,QACR,MAAO,GAET,IAAM,EAAiB,KAAK,QAQ5B,OAPI,GAAqB,EAAgB,CACvC,kBAAmB,KAAK,SAAS,kBACjC,kBAAmB,KAAK,SAAS,iBACnC,CAAC,GACC,KAAK,gBAAgB,CAAc,EAC5B,IAEF,EACT,CAMA,MAAM,gBAAgB,EAAS,CACxB,KAAK,aAGV,MAAM,KAAK,KAAK,CAAE,OAAQ,gBAAiB,CAAC,EAC5C,KAAK,mBAAmB,EAAQ,EAAE,EACpC,CAIA,eAAgB,CACd,GAAI,CACF,GAAO,SAAS,iBAAiB,mBAAoB,KAAK,uBAAuB,EACjF,GAAO,iBAAiB,OAAQ,KAAK,iBAAiB,EACtD,GAAO,iBAAiB,QAAS,KAAK,kBAAkB,EACxD,GAAO,iBAAiB,UAAW,KAAK,oBAAoB,EACxD,KAAK,eACP,KAAK,cAAc,aAAa,EAElC,IAEE,CAAK,gCADL,IAAmB,IAAI,EACa,GAExC,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,CAC1B,CACA,KAAK,4BAA8B,IAAyB,IAAI,CAClE,CAIA,kBAAmB,CACjB,GAAI,CACF,GAAO,SAAS,oBAAoB,mBAAoB,KAAK,uBAAuB,EACpF,GAAO,oBAAoB,OAAQ,KAAK,iBAAiB,EACzD,GAAO,oBAAoB,QAAS,KAAK,kBAAkB,EAC3D,GAAO,oBAAoB,UAAW,KAAK,oBAAoB,EAC3D,KAAK,eACP,KAAK,cAAc,gBAAgB,EAEjC,KAAK,6BACP,KAAK,4BAA4B,CAErC,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,CAC1B,CACF,CAIA,2BAA2B,EAAY,CAChC,QAAK,QAOV,IAJgB,GAAqB,KAAK,QAAS,CACjD,kBAAmB,KAAK,SAAS,kBACjC,kBAAmB,KAAK,SAAS,iBACnC,CACU,EAAG,CACX,GAAsC,EACtC,MACF,CACI,GACF,KAAK,wBAAwB,CAAU,EAEzC,KAAU,iBAAiB,CAJ3B,CAKF,CAIA,2BAA2B,EAAY,CAChC,QAAK,QAIV,IAAI,CADoB,KAAK,6BACV,EAAG,CACpB,IAAe,GAAM,IAAI,qDAAqD,EAC9E,MACF,CACI,GACF,KAAK,wBAAwB,CAAU,CAFzC,CAIF,CAIA,oBAAoB,EAAgB,KAAK,IAAI,EAAG,CAC9C,KAAK,cAAgB,CACvB,CAIA,uBAAuB,EAAgB,KAAK,IAAI,EAAG,CAC7C,KAAK,UACP,KAAK,QAAQ,aAAe,EAC5B,KAAK,kBAAkB,EAE3B,CAIA,wBAAwB,EAAY,CAClC,KAAK,cAAgB,CACnB,KAAK,kBAAkB,CACrB,KAAM,GAAU,OAChB,UAAW,EAAW,WAAa,EACnC,KAAM,CACJ,IAAK,aACL,QAAS,CACX,CACF,CAAC,CACH,CAAC,CACH,CAKA,wBAAyB,CACvB,IAAI,EAAqB,IAAyB,KAAK,kBAAkB,EAAE,OAAO,KAAK,wBAAwB,EAG/G,GAFA,KAAK,mBAAqB,CAAC,EAC3B,KAAK,yBAA2B,CAAC,EAC7B,KAAK,qBAAsB,CAC7B,IAAM,EAA4B,KAAK,SAAS,iBAAmB,IACnE,EAAqB,EAAmB,OAAQ,GAAU,EAAM,OAAS,CAAyB,CACpG,CACA,OAAO,QAAQ,IAAI,GAAuB,KAAM,CAAkB,CAAC,CACrE,CAIA,eAAgB,CACd,KAAK,SAAS,SAAS,MAAM,EAC7B,KAAK,SAAS,SAAS,MAAM,EAC7B,KAAK,SAAS,aAAa,MAAM,EACjC,KAAK,SAAS,KAAO,CAAC,CACxB,CAEA,wCAAyC,CACvC,GAAM,CAAE,UAAS,eAAgB,KAIjC,GAHI,CAAC,GAAW,CAAC,GAAe,KAAK,sBAGjC,EAAQ,UACV,OAEF,IAAM,EAAgB,EAAY,qBAAqB,EACnD,GAAiB,EAAgB,KAAK,SAAS,mBACjD,KAAK,SAAS,iBAAmB,EAErC,CAIA,kBAAmB,CACjB,IAAM,EAAW,CACf,iBAAkB,KAAK,SAAS,iBAChC,WAAY,KAAK,SAAS,WAC1B,SAAU,MAAM,KAAK,KAAK,SAAS,QAAQ,EAC3C,SAAU,MAAM,KAAK,KAAK,SAAS,QAAQ,EAC3C,aAAc,MAAM,KAAK,KAAK,SAAS,YAAY,EACnD,KAAM,KAAK,SAAS,IACtB,EAEA,OADA,KAAK,cAAc,EACZ,CACT,CASA,MAAM,WAAY,CAChB,IAAM,EAAW,KAAK,aAAa,EACnC,GAAI,CAAC,KAAK,SAAW,CAAC,KAAK,aAAe,CAAC,EAAU,CACnD,IAAe,GAAM,MAAM,2CAA2C,EACtE,MACF,CACA,SAAM,KAAK,uBAAuB,EAC7B,KAAK,aAAa,YAGvB,MAAM,IAAe,IAAI,EACpB,KAAK,aAGN,IAAa,KAAK,aAAa,GAGnC,GAAI,CACF,KAAK,uCAAuC,EAC5C,IAAM,EAAY,KAAK,IAAI,EAC3B,GAAI,EAAY,KAAK,SAAS,iBAAmB,KAAK,SAAS,kBAAoB,IACjF,MAAM,IAAI,GAEZ,IAAM,EAAe,KAAK,iBAAiB,EACrC,EAAY,KAAK,QAAQ,YAC/B,KAAK,kBAAkB,EAEvB,MAAM,GAAW,CACf,WACA,oBAH0B,KAAK,YAAY,OAAO,EAIlD,YACA,eACA,QAAS,KAAK,QACd,YACA,QAAU,GAAQ,KAAK,gBAAgB,CAAG,CAC5C,CAAC,CACH,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,EACxB,KAAK,KAAK,CAAE,OAAQ,WAAY,CAAC,EACjC,IAAM,EAAS,GAAU,EACzB,GAAI,EAAQ,CACV,IAAI,EACJ,CAKE,CALE,aAAe,GACJ,oBACJ,aAAe,GACX,UAEA,aAEf,EAAO,mBAAmB,EAAY,QAAQ,CAChD,CACF,CACF,CAKA,MAAM,OAAO,CACX,QAAQ,IACN,CAAC,EAAG,CACN,GAAI,CAAC,KAAK,YAAc,CAAC,EACvB,OAEF,GAAI,CAAC,KAAK,6BAA6B,EAAG,CACxC,IAAe,GAAM,MAAM,0DAA0D,EACrF,MACF,CACA,GAAI,CAAC,KAAK,QACR,OAEF,IAAM,EAAQ,KAAK,QAAQ,QAErB,EADM,KAAK,IACE,EAAI,EACvB,KAAK,gBAAgB,OAAO,EAC5B,IAAM,EAAW,EAAW,KAAK,SAAS,kBACpC,EAAU,EAAW,KAAK,SAAS,kBAAoB,IAC7D,GAAI,GAAY,EAAS,CACvB,IAAe,GAAM,IACnB,qBAAqB,KAAK,MAAM,EAAW,GAAG,EAAE,YAAY,EAAW,QAAU,OAAO,sBAC1F,EACI,GACF,KAAK,gBAAgB,EAEvB,MACF,CACA,IAAM,EAAc,KAAK,YACrB,GAAe,KAAK,QAAQ,YAAc,GAAK,CAAC,EAAY,aAC9D,IAAe,GAAM,IAAI,4CAA4C,EAEvE,IAAM,EAAmB,CAAC,CAAC,KAAK,WAChC,IACE,CAAK,aAAa,KAAK,UAAU,EAEnC,GAAI,CACF,MAAM,KAAK,UACb,OAAS,EAAK,CACZ,KAAK,gBAAgB,CAAG,CAC1B,QAAU,CACR,KAAK,WAAa,IAAK,GACnB,GACF,KAAK,gBAAgB,CAEzB,CACF,CAEA,mBAAoB,CACd,KAAK,SAAW,KAAK,SAAS,eAChC,GAAY,KAAK,OAAO,CAE5B,CAEA,mBAAmB,EAAW,CAC5B,GAAM,CAAE,mBAAoB,KAAK,SAAS,aAC1C,GAAI,GAAiB,QACf,EAAU,KAAM,GAAa,CAC/B,IAAM,EAAK,IAAqB,EAAS,MAAM,EACzC,EAAW,EAAgB,KAAK,GAAG,EACzC,OAAO,GAAI,QAAQ,CAAQ,CAC7B,CAAC,EACC,MAAO,GAGX,IAAM,EAAQ,EAAU,OAClB,EAAgB,KAAK,SAAS,cAC9B,EAA0B,KAAK,SAAS,wBACxC,EAAoB,GAAiB,EAAQ,EACnD,GAAI,EAAQ,GAA2B,EAAmB,CACxD,IAAM,EAAa,GAAiB,CAClC,SAAU,mBACV,KAAM,CACJ,QACA,MAAO,CACT,CACF,CAAC,EACD,KAAK,wBAAwB,CAAU,CACzC,CAKA,OAJI,GACF,KAAK,KAAK,CAAE,OAAQ,gBAAiB,WAAY,KAAK,gBAAkB,SAAU,CAAC,EAC5E,IAEF,EACT,CACF,EAEA,SAAS,GAAU,EAAW,EAAkB,CAC9C,MAAO,CACL,GAAG,EAEH,GAAG,CACL,EAAE,KAAK,GAAG,CACZ,CACA,SAAS,IAAkB,CAAE,OAAM,SAAQ,QAAO,UAAS,UAAU,CAYnE,MAAO,CANL,iBAJmB,GAAU,EAAM,CAAC,eAAgB,oBAAoB,CAI3C,EAC7B,mBAJqB,GAAU,EAAQ,CAAC,CAIP,EACjC,cAAe,GAAU,EAAO,CAAC,gBAAiB,sBAPpB,OAAQ,2BAO4D,CAAC,EACnG,gBAAiB,GAAU,EAAS,CAAC,CAAC,EACtC,eAAgB,GAAU,EAAQ,CAAC,iBAAkB,uBAAwB,oBAAoB,CAAC,CAEvF,CACf,CAEA,SAAS,IAAc,CACrB,KACA,MACA,iBACA,cACA,iBACA,SACC,CACD,GAAI,EAAe,oBAAsB,EAAG,QAAQ,EAAe,kBAAkB,EACnF,OAAO,EAET,IAAM,EAAsB,EAAe,SAAS,CAAG,EACjD,EAAyB,GAAe,IAAQ,SAAW,EAAG,UAAY,SAAW,CAAC,SAAU,QAAQ,EAAE,SAAS,EAAG,aAAa,MAAM,GAAK,EAAE,EAItJ,OAHI,GAAuB,EAClB,EAAM,QAAQ,QAAS,GAAG,EAE5B,CACT,CAEA,IAAM,GAAkB,mGAClB,IAA0B,CAAC,iBAAkB,eAAgB,QAAQ,EACrE,IAAgC,OAAO,IAAI,6BAA6B,EAC1E,GAAe,GACf,GAAyB,GAC7B,SAAS,KAAuC,CAC9C,GAAI,OAAO,QAAY,KAAe,GACpC,OAEF,IAAM,EAAkB,QACxB,GAAI,CACF,IAAM,EAAgB,SAAS,EAAO,EAAM,CAC1C,IAAM,EAAU,IAAI,EAAgB,EAAO,CAAI,EAI/C,OAHI,GAAM,MAAQ,OAChB,EAAQ,KAAiB,EAAK,MAEzB,CACT,EACA,EAAc,UAAY,EAAgB,UAC1C,GAAW,QAAU,EACrB,GAAyB,EAC3B,MAAQ,CACR,CACF,CACA,IAAM,KAAsB,GACnB,IAAI,IAAO,CAAO,GAErB,IAAN,KAAa,CACX,YAAY,CACV,gBAAgB,IAChB,gBAAgB,IAChB,oBAAoB,IACpB,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,YACA,eAAe,CAAC,EAChB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,0BAA0B,IAC1B,gBAAgB,IAChB,mBAAmB,IACnB,2BAA2B,CAAC,EAC5B,yBAAyB,CAAC,EAC1B,wBAAwB,CAAC,EACzB,uBAAuB,GACvB,wBAAwB,CAAC,EACzB,yBAAyB,CAAC,EAC1B,OAAO,CAAC,EACR,iBAAiB,CAAC,QAAS,cAAe,YAAY,EACtD,SAAS,CAAC,EACV,QAAQ,CAAC,EACT,UAAU,CAAC,EACX,SAAS,CAAC,EACV,SACA,0BACA,sBACA,UACA,4BAA2B,IACzB,CAAC,EAAG,CACN,KAAK,KAAO,SACZ,IAAM,GAAiB,IAAkB,CACvC,OACA,SACA,QACA,UACA,QACF,CAAC,EA+DD,GA9DA,KAAK,kBAAoB,CACvB,gBACA,cACA,iBAAkB,CAAE,SAAU,EAAK,EACnC,WAAY,EACZ,YAAa,EACb,iBAAkB,EAAK,EAAO,IAAO,IAAc,CACjD,iBACA,cACA,kBACA,MACA,QACA,IACF,CAAC,EACD,GAAG,GAEH,eAAgB,MAChB,iBAAkB,GAElB,aAAc,GAGd,aAAc,GACd,aAAe,GAAQ,CACrB,GAAI,CACF,EAAI,UAAY,EAClB,MAAQ,CACR,CACF,EAEA,yBAA0B,EAAQ,EAAa,wBACjD,EACA,KAAK,gBAAkB,CACrB,gBACA,gBACA,kBAAmB,KAAK,IAAI,EAAmB,GAAyB,EACxE,kBAAmB,KAAK,IAAI,EAAmB,EAAmB,EAClE,gBACA,iBACA,YACA,gBACA,gBACA,cACA,0BACA,gBACA,mBACA,2BACA,yBACA,wBACA,uBACA,sBAAuB,GAAyB,CAAqB,EACrE,uBAAwB,GAAyB,CAAsB,EACvE,0BACA,sBACA,UACA,4BACA,cACF,EACI,KAAK,gBAAgB,gBACvB,KAAK,kBAAkB,cAAiB,KAAK,kBAAkB,cAAkC,GAAG,KAAK,kBAAkB,cAAc,GAAG,KAA7D,GAC/E,KAAK,kBAAkB,oBAAsC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAEvF,KAAK,gBAAkB,GAAU,EACnC,MAAU,MAAM,4DAA4D,EAE9E,KAAK,eAAiB,EACxB,CAEA,IAAI,gBAAiB,CACnB,OAAO,EACT,CAEA,IAAI,eAAe,EAAO,CACxB,GAAe,CACjB,CAIA,cAAc,EAAQ,CAChB,CAAC,GAAU,GAAK,KAAK,UAGrB,KAAK,gBAAgB,0BACvB,IAAqC,EAEvC,KAAK,OAAO,CAAM,EAClB,KAAK,YAAY,CAAM,EACzB,CAQA,OAAQ,CACD,KAAK,SAGV,KAAK,QAAQ,MAAM,CACrB,CAKA,gBAAiB,CACV,KAAK,SAGV,KAAK,QAAQ,eAAe,CAC9B,CAcA,KAAK,EAAS,CAIZ,OAHK,KAAK,QAGH,KAAK,QAAQ,KAAK,CACvB,WAAY,GAAS,OAAS,KAAK,QAAQ,gBAAkB,UAC7D,OAAQ,QACV,CAAC,EALQ,QAAQ,QAAQ,CAM3B,CASA,MAAM,EAAS,CAQb,OAPK,KAAK,QAGL,KAAK,QAAQ,UAAU,EAIrB,KAAK,QAAQ,0BAA0B,CAAO,GAHnD,KAAK,QAAQ,MAAM,EACZ,QAAQ,QAAQ,GAJhB,QAAQ,QAAQ,CAO3B,CAOA,YAAY,EAAe,CACpB,QAAK,SAAS,UAAU,EAG7B,OAAO,KAAK,QAAQ,aAAa,CAAa,CAChD,CASA,kBAAmB,CACZ,QAAK,SAAS,UAAU,EAG7B,OAAO,KAAK,QAAQ,aACtB,CACA,YAAY,EAAM,CAChB,IAAM,EAAW,KAAK,YAAY,EAAI,EAClC,IACF,GAA0B,EAAM,CAAE,mBAAoB,CAAS,CAAC,EAC5D,KAAK,iBAAiB,IAAM,UAC9B,GAA0B,EAAM,CAAE,uCAAwC,EAAK,CAAC,EAGtF,CAIA,YAAY,EAAQ,CACb,KAAK,UAGV,KAAK,sCAAsC,CAAM,EACjD,KAAK,QAAQ,mBAAmB,EAClC,CAEA,OAAO,EAAQ,CACb,IAAM,EAAe,IAA4B,KAAK,gBAAiB,CAAM,EAC7E,KAAK,QAAU,IAAI,IAAgB,CACjC,QAAS,EACT,iBAAkB,KAAK,iBACzB,CAAC,CACH,CAEA,sCAAsC,EAAQ,CAC5C,GAAI,CACF,IAAM,EAAoB,EAAO,qBAAqB,cAAc,EACpE,GAAI,CAAC,EACH,OAEF,KAAK,QAAQ,QAAa,EAAkB,WAAW,CACzD,MAAQ,CACR,CACF,CACF,EACA,SAAS,IAA4B,EAAgB,EAAQ,CAC3D,IAAM,EAAM,EAAO,WAAW,EACxB,EAAe,CACnB,kBAAmB,EACnB,gBAAiB,EACjB,GAAG,CACL,EACM,EAA2B,GAAgB,EAAI,wBAAwB,EACvE,EAA2B,GAAgB,EAAI,wBAAwB,EAc7E,OAbI,GAA4B,MAAQ,GAA4B,MAClE,OAAqB,CACnB,QAAQ,KACN,uGACF,CACF,CAAC,EAEC,GAA4B,OAC9B,EAAa,kBAAoB,GAE/B,GAA4B,OAC9B,EAAa,gBAAkB,GAE1B,CACT,CACA,SAAS,GAAyB,EAAS,CACzC,MAAO,CAAC,GAAG,IAAyB,GAAG,EAAQ,IAAK,GAAW,EAAO,YAAY,CAAC,CAAC,CACtF,CCluQA,SAAS,IAA6B,EAAe,CACnD,OAAO,EAAc,MAAM,GAAG,EAAE,KAAM,GAAU,EAAM,KAAK,EAAE,WAAW,SAAS,CAAC,CACpF,CACA,SAAS,GAAW,EAAK,CACvB,GAAI,CAEF,OAAO,IADY,IAAI,EAAKgI,GAAO,SAAS,MAChC,EAAE,IAChB,MAAQ,CACN,MACF,CACF,CACA,SAAS,IAA4B,EAAO,CAC1C,OAAO,EAAM,YAAc,YAAc,kBAAmB,GAAS,OAAO,EAAM,iBAAoB,WAAa,EAAM,gBAAkB,SAAW,EAAM,gBAAkB,iBAChL,CACA,SAAS,GAAoB,EAAS,CACpC,GAAI,CACF,OAAO,IAAI,QAAQ,CAAO,CAC5B,MAAQ,CACN,MACF,CACF,CCjBA,IAAM,GAAuC,CAC3C,WAAY,GACZ,SAAU,GACV,kBAAmB,GACnB,4BAA6B,EAC/B,EACA,SAAS,IAA2B,EAAQ,EAAU,CACpD,GAAM,CACJ,aACA,WACA,6BACA,oBACA,0BACA,qBACA,oBACE,CACF,GAAG,GACH,GAAG,CACL,EACM,EAAmB,OAAO,GAA+B,WAAa,EAA8B,GAAM,GAC1G,EAAkC,GAAQ,IAAoB,EAAK,CAAuB,EAC1F,EAAQ,CAAC,EACT,EAAuB,EAAO,WAAW,EAAE,qBAC7C,GACF,GAAgC,GAAgB,CAC9C,IAAM,EAAc,IAAuB,EAAa,EAAkB,EAAgC,EAAO,CAC/G,uBACA,kBACF,CAAC,EACD,GAAI,EAAa,CACf,IAAM,EAAU,GAAW,EAAY,UAAU,GAAG,EAC9C,EAAO,EAAUL,GAAS,CAAO,EAAE,KAAO,IAAK,GAC/C,EAAmB,EAAU,GAAoB,CAAO,EAAI,IAAK,GACvE,EAAY,cAAc,EAEvBG,IAAW,GAGXC,IAAW,EACZ,iBAAkB,CACpB,CAAC,EACG,GACF,GAAe,EAAa,CAAM,EAEpC,IAAqB,EAAa,CAAE,QAAS,EAAY,OAAQ,CAAC,CACpE,CACF,CAAC,EAEC,GACF,GAA8B,GAAgB,CAC5C,IAAM,EAAc,IAClB,EACA,EACA,EACA,EACA,EACA,CACF,EACI,IACE,GACF,GAAe,EAAa,CAAM,EAEpC,IAAqB,EAAa,CAChC,QAAS,GAAoB,EAAY,IAAI,mBAAmB,eAAe,CACjF,CAAC,EAEL,CAAC,CAEL,CACA,IAAM,IAAsB,IAC5B,SAAS,GAAe,EAAM,EAAQ,CACpC,GAAM,CAAE,OAAQ,GAAW,CAAI,EAAE,KACjC,GAAI,CAAC,GAAO,OAAO,GAAQ,SACzB,OAEF,IAAI,MAAqB,KAAK,WAAW,CAA6B,EACtE,GAAI,GAAwB,CAAM,EAAG,CACnC,IAAM,EAAc,EAAK,IAAI,KAAK,CAAI,EACtC,EAAK,IAAO,GAAiB,CAC3B,IAAM,EAAuB,GAAgB,GAAmB,EAC5D,EAAU,GACR,MAA0B,CAC1B,IAGJ,EAAU,GACV,WAAW,CAA6B,EACxC,EAAY,CAAoB,EAChC,aAAa,CAAe,EAC9B,EACA,EAAe,EACf,IAAM,EAAkB,WAAW,EAAmB,GAAmB,CAC3E,CACF,CACA,IAAM,EAAgC,GAAqC,YAAa,CAAE,aAAc,CACtG,EAAQ,QAAS,GAAU,CACrB,IAA4B,CAAK,GAAK,EAAM,KAAK,SAAS,CAAG,IAC/D,EAAK,cAAc,GAA+B,CAAK,CAAC,EACxD,EAAa,EAEjB,CAAC,CACH,CAAC,CACH,CACA,SAAS,IAAoB,EAAW,EAAyB,CAC/D,IAAM,EAAO,GAAgB,EAC7B,GAAK,EAOE,CACL,IAAI,EACA,EACJ,GAAI,CACF,EAAc,IAAI,IAAI,EAAW,CAAI,EACrC,EAAgB,IAAI,IAAI,CAAI,EAAE,MAChC,MAAQ,CACN,MAAO,EACT,CACA,IAAM,EAAsB,EAAY,SAAW,EAEjD,OADG,EAGI,GAAyB,EAAY,SAAS,EAAG,CAAuB,GAAK,GAAuB,GAAyB,EAAY,SAAU,CAAuB,EAF1K,CAIX,KAtBW,CACT,IAAM,EAA8B,CAAC,CAAC,EAAU,MAAM,WAAW,EAE/D,OADG,EAGI,GAAyB,EAAW,CAAuB,EAF3D,CAIX,CAgBF,CACA,SAAS,IAAY,EAAa,EAAkB,EAAsB,EAAO,EAAsB,EAAkB,CACvH,IAAM,EAAM,EAAY,IAClB,EAAgB,IAAM,IAC5B,GAAI,CAAC,GAAO,EAAI,wBAA0B,CAAC,EACzC,OAEF,GAAM,CAAE,MAAK,UAAW,EAClB,EAAyB,GAAgB,GAAK,EAAiB,CAAG,EACxE,GAAI,EAAY,aAAc,CAC5B,IAAM,EAAS,EAAI,uBACnB,GAAI,CAAC,EAAQ,OACb,IAAM,EAAQ,EAAM,GAChB,IACE,GAA0B,EAAc,cAAgB,IAAK,KAC/D,GAAc,EAAO,EAAc,WAAW,EAC9C,EAAM,IAAI,EACV,IAAmB,EAAO,CACxB,QAAS,GAAoB,GAAwB,CAAG,CAAC,EACzD,MAAO,EAAY,KACrB,CAAC,GAEH,OAAO,EAAM,IAEf,MACF,CACA,IAAM,EAAU,GAAW,CAAG,EACxB,EAAsBJ,GAAV,GAAuC,CAAG,EACtD,EAAmB,EAAU,GAAoB,CAAO,EAAI,IAAK,GACjE,EAAiB,GAAoB,IAAyB,CAAG,CAAC,EAClE,EAAS,GAAU,EACnB,EAAY,CAAC,CAAC,GAAc,EAC5B,EAAiB,GAAa,CAAC,CAAC,GAAU,GAAwB,CAAM,EACxE,EAAO,GAA0B,EAAiB,GAAkB,CACxE,KAAM,GAAG,EAAO,GAAG,IACnB,WAAY,CACV,IAAK,GAAoB,CAAG,EAC5B,KAAM,MACN,cAAe,EACf,WAAY,GAGXI,IAAW,EACZ,iBAAkB,GAAW,MAC5B,IAAmC,qBACnC,IAA+B,cAChC,GAAG,GAAW,QAAU,CAAE,aAAc,GAAW,MAAO,EAC1D,GAAG,GAAW,MAAQ,CAAE,gBAAiB,GAAW,IAAK,CAC3D,CACF,CAAC,EAAI,IAAI,GACH,EAAsB,GAAc,CAAI,GAAK,EAAY,IAAK,GAAI,EAmBxE,OAlBI,GAA0B,CAAC,GAC7B,GAAQ,mBAAmB,iBAAkB,MAAM,EAErD,EAAI,uBAAyB,EAAK,YAAY,EAAE,OAChD,EAAM,EAAI,wBAA0B,EAChC,EAAqB,CAAG,GAC1B,IACE,EAIA,GAAgB,GAAK,EAAiB,EAAsB,IAAK,GACjE,CACF,EAEE,GACF,EAAO,KAAK,4BAA6B,EAAM,CAAW,EAErD,CACT,CACA,SAAS,IAA8B,EAAK,EAAM,EAAsB,CACtE,GAAM,CAAE,eAAgB,EAAa,UAAS,eAAgB,GAAa,CAAE,OAAM,sBAAqB,CAAC,EACrG,GACF,IAAe,EAAK,EAAa,EAAS,CAAW,CAEzD,CACA,SAAS,IAAe,EAAK,EAAmB,EAAqB,EAAmB,CACtF,IAAM,EAAkB,EAAI,mBAAmB,gBAC3C,SAAkB,iBAAmB,CAAC,EAAI,kBAG9C,GAAI,CAKF,GAJA,EAAI,iBAAiB,eAAgB,CAAiB,EAClD,GAAqB,CAAC,GAAkB,aAC1C,EAAI,iBAAiB,cAAe,CAAiB,EAEnD,EAAqB,CACvB,IAAM,EAAwB,GAAkB,SAC5C,CAAC,GAAyB,CAAC,IAA6B,CAAqB,IAC/E,EAAI,iBAAiB,UAAW,CAAmB,CAEvD,CACF,MAAQ,CACR,CACF,CClOA,IAAM,GAAuC,IAAI,QAC3C,GAA4C,IAAI,QAChD,IAA6B,IAC7B,IAA0B,CAAC,oBAAqB,uBAAwB,yBAAyB,EACjG,IAAoC,QACjC,CACL,KAAM,yBACN,OAAQ,CACN,IAAmC,GAAgB,CACjD,GAAI,EAAY,SAAU,CACxB,IAAM,EAAa,GAAqB,IAAI,EAAY,QAAQ,EAChE,GAAI,GAAc,EAAY,aAAc,CAC1C,EAAW,IAAI,EAAY,YAAY,EACvC,IAAM,EAAkB,GAA0B,IAAI,EAAY,QAAQ,EACtE,GACF,aAAa,CAAe,CAEhC,CACF,CACF,CAAC,EACD,GAAgC,GAAgB,CAC9C,GAAI,EAAY,cAAgB,EAAY,SAAU,CACpD,IAAM,EAAc,EAAY,SAAS,SAAS,IAAI,cAAc,GAAK,GACzE,GAAI,EAAY,SAAS,SAAS,IAAI,gBAAgB,GAAK,CAAC,IAAwB,KAAM,GAAM,EAAY,WAAW,CAAC,CAAC,EACvH,OAEF,IAAM,EAAM,EAAY,WAAW,KAAO,GACpC,EAAS,EAAY,WAAW,QAAU,MAC1C,EAAY,GAAuB,CAAG,EAEtC,EAAa,GAAkB,CACnC,KAAM,GAAG,EAAO,GAFG,EAAI,WAAW,OAAO,EAAI,GAAoB,CAAG,EAAI,EAAY,GAAmC,CAAS,EAAI,IAGpI,UAAW,EAAY,aACvB,WAAY,CACV,IAAK,GAAoB,CAAG,EAC5B,cAAe,EACf,KAAM,SACL,IAA+B,sBAC/B,IAAmC,0BACtC,CACF,CAAC,EACD,GAAqB,IAAI,EAAY,SAAU,CAAU,EACzD,IAAM,EAAkB,eAAiB,CACnC,EAAW,YAAY,GACzB,EAAW,IAAI,CAEnB,EAAG,GAA0B,EAC7B,GAA0B,IAAI,EAAY,SAAU,CAAe,CACrE,CACF,CAAC,CACH,CACF,EACD,ECnDK,IAA8B,YAC9B,IAAuB,IAAmB,EAAU,CAAC,IAAM,CAC/D,IAAM,EAAU,IAAI,IAAI,EAAQ,QAAU,CAAC,CAAC,EAC5C,MAAO,CACL,KAAM,IACN,MAAM,EAAQ,CACZ,IAAM,EAAuB,GAAwB,CAAM,EACrD,CAAE,2BAA0B,4BAA6B,EAAQ,cAAgB,CAAC,EAClF,EAA2B,GAAwB,EAAQ,IAAI,KAAK,EAAI,IAAK,GAAI,GAA4B,GAC7G,EAA2B,GAAwB,EAAQ,IAAI,KAAK,EAAI,IAAK,GAAI,GAA4B,GAC7G,EAAoB,IAAuB,CAC/C,2BACA,2BACA,QACF,CAAC,EACK,EAAgC,IAAI,QAC1C,EAAO,GAAG,yBAA2B,GAAS,CAC5C,EAAc,IAAI,CAAI,CACxB,CAAC,EACD,EAAO,GAAG,UAAY,GAAS,CACxB,EAAc,OAAO,CAAI,IAG9B,EAAkB,EAClB,IAAmB,EAAM,CAGvB,wBAAyB,IAA6B,GACtD,wBAAyB,IAA6B,GACtD,sBACF,CAAC,EACH,CAAC,EACG,GACG,EAAQ,IAAI,KAAK,GACpB,IAAe,CAAM,EAElB,EAAQ,IAAI,KAAK,GACpB,IAAe,CAAM,EAElB,EAAQ,IAAI,KAAK,GACpB,IAAe,GAEP,EAAQ,IAAI,KAAK,GAC3B,IAAiB,CAErB,EACA,eAAgB,CACT,EAAQ,IAAI,KAAK,GACpB,IAA+B,CAEnC,CACF,CACF,CAAC,ECnDD,SAAS,KAAiC,CACpCC,GAAO,SACT,GAAO,SAAS,iBAAiB,uBAA0B,CACzD,IAAM,EAAa,GAAc,EACjC,GAAI,CAAC,EACH,OAEF,IAAM,EAAW,GAAY,CAAU,EACvC,GAAIA,GAAO,SAAS,QAAU,EAAU,CACtC,IAAM,EAAkB,YAClB,CAAE,KAAI,UAAW,GAAW,CAAQ,EACtCzB,IACF,GAAM,IAAI,0BAA0B,EAAgB,6CAA6C,GAAI,EAElG,GACH,EAAS,UAAU,CAAE,OAAyB,QAAS,CAAgB,CAAC,EAE1E,EAAS,aAAa,6BAA8B,iBAAiB,EACrE,EAAS,IAAI,CACf,CACF,CAAC,EAED,IAAeI,GAAM,KAAK,oFAAoF,CAElH,CCdA,IAAM,GAAqB,wBACrB,IAAoC,wBAC1C,SAAS,IAAW,EAAQ,CAC1B,oBACA,2BACC,CACD,IAAM,EAAoB,IAAsB,kBAC5C,EAA4B,EAAoB,IAAmC,EAAI,IAAK,GAChG,EAAO,GAAG,YAAc,GAAS,CAC/B,GAAI,GAAY,CAAI,IAAM,EACxB,OAEF,IAAM,EAAwB,GAAgB,EAAE,sBAAsB,EACtE,EAA4B,IAAyB,EAA2B,EAAM,CAAqB,EACvG,GACF,IAAmC,CAAyB,CAEhE,CAAC,EACD,IAAI,EAAyB,GACzB,GACF,EAAO,GAAG,iBAAmB,GAA+B,CAC1D,GAAI,CAAC,EACH,OAEF,IAAM,EAAQ,GAAgB,EACxB,EAA4B,EAAM,sBAAsB,EAC9D,GAAI,GAA0B,EAA0B,aAAc,CACpE,EAAyB,GACzB,MACF,CACA,EAAM,sBAAsB,CAC1B,GAAG,EACH,IAAK,CACH,GAAG,EAA0B,IAC7B,YAAa,OAAO,EAA0B,UAAU,EACxD,QAAS,OAAO,GAAmB,EAA0B,WAAW,CAAC,CAC3E,EACA,WAAY,EAA0B,UACxC,CAAC,EACD,EAA2B,cAAgB,GAAmB,EAA0B,WAAW,EACnG,EAA2B,iBAAmB,EAA0B,WACxE,EAA2B,eAAiB,CAC1C,GAAG,EAA2B,gBAC7B,KAAuD,EAA0B,UACpF,CACF,CAAC,CAEL,CACA,SAAS,IAAyB,EAAmB,EAAM,EAAuB,CAChF,IAAM,EAAW,GAAW,CAAI,EAChC,SAAS,GAAgB,CACvB,GAAI,CACF,IAAM,EAAgB,OACpB,EAAS,8BAAiD,EAAsB,KAAK,WACvF,EACA,OAAO,OAAO,MAAM,CAAa,EAAI,EAAI,CAC3C,MAAQ,CACN,MAAO,EACT,CACF,CACA,IAAM,EAA2B,CAC/B,YAAa,EAAK,YAAY,EAC9B,eAAgB,EAAS,gBACzB,WAAY,EAAc,EAC1B,WAAY,EAAsB,UACpC,EACA,GAAI,CAAC,EACH,OAAO,EAET,IAAM,EAAuB,EAAkB,YAwB/C,OAvBI,EAAqB,UAAY,EAAS,SACrC,GAEL,KAAK,IAAI,EAAI,IAAM,EAAkB,uBACnCJ,IACF,GAAM,IACJ,2BAA2B,KAAK,UAAU,CAAoB,EAAE,oBAAoB,KAAK,UAAU,CACjG,GAAI,EAAS,GACb,GAAG,EAAK,YAAY,CACtB,CAAC,EAAE,GACL,EAEF,EAAK,QAAQ,CACX,QAAS,EACT,WAAY,EACT,KAAoC,gBACvC,CACF,CAAC,EACD,EAAK,aACH,IACA,GAAG,EAAqB,QAAQ,GAAG,EAAqB,OAAO,GAAG,MAAmB,CAAoB,GAC3G,GAEK,EACT,CACA,SAAS,IAAmC,EAAmB,CAC7D,GAAI,CACF,GAAO,eAAe,QAAQ,GAAoB,KAAK,UAAU,CAAiB,CAAC,CACrF,OAAS,EAAG,CACV,IAAeI,GAAM,KAAK,mDAAoD,CAAC,CACjF,CACF,CACA,SAAS,KAAqC,CAC5C,GAAI,CACF,IAAM,EAAoBqB,GAAO,gBAAgB,QAAQ,EAAkB,EAC3E,OAAO,KAAK,MAAM,CAAiB,CACrC,MAAQ,CACN,MACF,CACF,CACA,SAAS,GAAmB,EAAK,CAC/B,OAAO,EAAI,aAAe,CAC5B,CCnHA,IAAM,IAAiC,iBACjC,IAAoB,+JAC1B,SAAS,KAAiB,CACxB,IAAM,EAAMA,GAAO,UAInB,OAHK,GAAK,UAGH,IAAkB,KAAK,EAAI,SAAS,EAFlC,EAGX,CACA,IAAM,IAAkC,CACtC,GAAG,GACH,qBAAsB,GACtB,mBAAoB,GACpB,mBAAoB,GACpB,eAAgB,GAChB,yBAA0B,GAC1B,UAAW,GACX,oBAAqB,CAAC,EACtB,0BAA2B,CAAC,EAC5B,gBAAiB,GACjB,kBAAmB,YACnB,wBAAyB,GACzB,uBAAwB,GACxB,aAAc,CAAC,EACf,GAAG,EACL,EACM,MAA8B,EAAU,CAAC,IAAM,CAC/C,wBAAyB,GAC3B,OAAqB,CACnB,QAAQ,KACN,mIACF,CACF,CAAC,EAEH,IAAM,EAAc,CAClB,KAAM,IAAK,GACX,OAAQ,IAAK,EACf,EACM,EAAyBA,GAAO,SAChC,CACJ,YACA,iBACA,2BACA,aAAc,CAAE,qBAAoB,2BAA0B,4BAC9D,kBACA,cACA,eACA,mBACA,qBACA,aACA,WAEA,8BACA,6BACA,oBACA,sBACA,4BACA,qBACA,uBACA,kBACA,oBACA,0BACA,yBACA,qBACA,oBACE,CACF,GAAG,IACH,GAAG,CACL,EACM,EAAS,IAAe,EAC1B,GACA,GACJ,SAAS,GAAiB,EAAQ,EAAkB,EAAa,GAAM,EAAK,CAC1E,IAAM,EAAiB,EAAiB,KAAO,WACzC,EAAkB,EAAiB,KACnC,EAAwB,EAAkB,EAAgB,CAAgB,EAAI,EAC9E,EAAY,GAAuB,GAAO,GAAgB,CAAC,EAC3D,EAAa,CACjB,GAAG,GAAW,UAAY,YAAc,EAAU,QAAS,EAC3D,GAAG,GAAa,CAAC,GAAoB,CAAS,GAAK,YAAc,EAAU,IAAK,EAChF,GAAG,EAAsB,UAC3B,EAKA,GAJI,IAAoB,EAAsB,OAC5C,EAAW,IAAoC,UAEjD,EAAsB,WAAa,EAC/B,CAAC,EAAY,CACf,IAAM,EAAM,GAAuB,EACnC,GAAkB,CAChB,GAAG,EACH,UAAW,CACb,CAAC,EAAE,IAAI,CAAG,EACV,MACF,CACA,EAAY,KAAO,EAAsB,KACzC,EAAY,OAAS,EAAW,IAChC,IAAM,EAAW,GAAc,EAAuB,CACpD,cACA,eACA,mBAEA,kBAAmB,EACnB,cAAgB,GAAS,CACvB,IAAsB,EAAM,CAC1B,sBACA,4BACA,qBAAsB,GAAwB,CAAM,CACtD,CAAC,EACD,GAAkB,EAAQ,IAAK,EAAC,EAChC,IAAM,EAAQ,GAAgB,EACxB,EAAwB,EAAM,sBAAsB,EAC1D,EAAM,sBAAsB,CAC1B,GAAG,EACH,QAAS,EAAS,YAAY,EAAE,QAChC,QAAS,GAAc,CAAQ,EAC/B,IAAK,GAAkC,CAAI,CAC7C,CAAC,EACG,IACF,GAAgB,IAAK,GAEzB,EACA,yBAA0B,CAAC,CAC7B,CAAC,EACG,GAAkB,IACpB,GAAgB,GAElB,GAAkB,EAAQ,CAAQ,EAClC,SAAS,GAAa,CAChB,GAA0B,CAAC,cAAe,UAAU,EAAE,SAAS,EAAuB,UAAU,IAClG,EAAO,KAAK,2BAA4B,CAAQ,EAChD,EAAuB,oBAAoB,mBAAoB,CAAU,EAE7E,CACI,GAAkB,CAAC,GAA0B,IAC/C,EAAuB,iBAAiB,mBAAoB,CAAU,EACtE,EAAW,EAEf,CACA,MAAO,CACL,KAAM,IACN,MAAM,EAAQ,CACZ,GAAI,EAAQ,CACV,IAAerB,GAAM,IAAI,wEAAwE,EACjG,MACF,CAUA,GATA,IAAiC,EAC7B,GAA4B,GAAW,qBAAuB,oBAAoB,qBAAqB,SAAS,sBAAsB,EACxI,IAAiC,EACxB,GACT,IAAuB,EAErB,GACF,IAA0B,EAExB,GAAmB,EAAwB,CAC7C,IAAM,MAA2B,CAC/B,GAA2B,GAAmB,CAChD,EACA,iBAAiB,QAAS,EAAoB,CAAE,QAAS,EAAK,CAAC,EAC/D,iBAAiB,UAAW,EAAoB,CAAE,QAAS,GAAM,QAAS,EAAK,CAAC,CAClF,CACA,SAAS,GAAqB,CAC5B,IAAM,EAAa,GAAkB,CAAM,EACvC,GAAc,CAAC,GAAW,CAAU,EAAE,YACxC,IAAeA,GAAM,IAAI,oDAAoD,GAAW,CAAU,EAAE,IAAI,EACxG,EAAW,aAAa,GAAmD,WAAW,EACtF,EAAW,IAAI,EAEnB,CACA,EAAO,GAAG,uBAAwB,EAAkB,IAAsB,CACxE,GAAI,GAAU,IAAM,EAClB,OAEF,GAAI,GAAmB,WAAY,CACjC,IAAeA,GAAM,KAAK,2FAA2F,EACrH,GACE,EACA,CACE,GAAI,sBACJ,GAAG,CACL,EACA,GACA,EAAkB,GACpB,EACA,MACF,CACA,GAA2B,IAAK,GAChC,EAAmB,EACnB,GAAkB,EAAE,sBAAsB,CACxC,QAAS,GAAgB,EACzB,WAAY,KAAK,OAAO,EACxB,kBAAmB,GAAgB,EAAI,IAAK,GAAI,GAAe,CACjE,CAAC,EACD,IAAM,EAAQ,GAAgB,EAC9B,EAAM,sBAAsB,CAC1B,QAAS,GAAgB,EACzB,WAAY,KAAK,OAAO,EACxB,kBAAmB,GAAgB,EAAI,IAAK,GAAI,GAAe,CACjE,CAAC,EACD,EAAM,yBAAyB,CAC7B,kBAAmB,IAAK,EAC1B,CAAC,EACD,GACE,EACA,CACE,GAAI,aACJ,GAAG,EAEH,WAAY,KACZ,iBAAkB,EACpB,EACA,GACA,GAAmB,GACrB,CACF,CAAC,EACD,EAAO,GAAG,qBAAsB,EAAkB,EAAe,CAAC,IAAM,CACtE,GAAI,GAAU,IAAM,EAClB,OAEF,EAAmB,EAGnB,IAAM,EAAqB,IAFP,EAAa,aAAe,GAAe,cAAc,GAAK,GAAgB,cAAc,EAChG,EAAa,SAAW,GAAe,SAAS,GAAK,GAAgB,SAAS,CACjB,EACvE,EAAQ,GAAgB,EAC9B,EAAM,sBAAsB,CAAkB,EACzC,GAAgB,IACnB,EAAM,sBAAsB,EAAE,kBAAoB,GAAe,GAEnE,EAAM,yBAAyB,CAC7B,kBAAmB,GAAmB,CACxC,CAAC,EACD,GAAiB,EAAQ,CACvB,GAAI,WACJ,GAAG,CACL,CAAC,CACH,CAAC,EACD,EAAO,GAAG,sBAAyB,CAC7B,GAA0B,KAC5B,GAAc,aAAa,GAAmD,kBAAkB,EAChG,GAAc,IAAI,EAEtB,CAAC,CACH,EACA,cAAc,EAAQ,CACpB,GAAI,EACF,OAEE,EAAO,gBAAkB,CAAC,EAAO,kCAAkD,GACrF,EAAO,eACL,IAAqB,CACnB,OAAQ,EAAY,CAAC,EAAI,CAAC,KAAK,EAC/B,aAAc,CACZ,2BACA,0BACF,CACF,CAAC,CACH,EAEF,IAAI,EAAc,GAAgB,EAIlC,GAHI,IAAsB,OACxB,IAAW,EAAQ,CAAE,oBAAmB,yBAAwB,CAAC,EAE/DqB,GAAO,SAAU,CACnB,GAAI,EAAoB,CACtB,IAAM,EAAS,GAA6B,EAC5C,IAAgC,EAAQ,CACtC,KAAMA,GAAO,SAAS,SAEtB,UAAW,EAAS,EAAS,IAAM,IAAK,GACxC,WAAY,EACT,IAAmC,OACnC,IAAmC,uBACtC,CACF,CAAC,CACH,CACI,GACF,IAAkC,CAAE,KAAI,UAAW,CACjD,GAAI,IAAS,IAAK,IAAK,GAAa,QAAQ,CAAE,IAAM,GAAI,CACtD,EAAc,IAAK,GACnB,MACF,CACA,EAAc,IAAK,GACnB,IAAM,EAAS,GAAuB,CAAE,EAClC,EAAa,GAAkB,CAAM,EACrC,EAAuB,GAAc,GAAmB,IAAW,EAAY,EAAwB,EAC7G,IACE,EACA,CACE,KAAM,GAAQ,UAAYA,GAAO,SAAS,SAC1C,WAAY,EACT,IAAmC,OACnC,IAAmC,yBACtC,CACF,EACA,CAAE,IAAK,EAAI,WAAY,CAAqB,CAC9C,CACF,CAAC,CAEL,CACI,GACF,IAA+B,EAE7B,GACF,IAA4B,EAAQ,EAAa,EAAc,EAAkB,CAAW,EAE9F,IAA2B,EAAQ,CACjC,aACA,WACA,wBAAyB,EAAO,WAAW,EAAE,wBAC7C,6BACA,oBACA,qBACA,kBACF,CAAC,EACG,GACF,EAAO,eAAe,IAAkC,CAAC,CAE7D,CACF,CACF,GACA,SAAS,IAAgC,EAAQ,EAAa,EAAc,CAC1E,EAAO,KAAK,oBAAqB,EAAa,CAAY,EAC1D,GAAgB,EAAE,mBAAmB,EAAY,IAAI,EACrD,IAAM,EAAe,GAAkB,CAAM,EAI7C,OAHI,GACF,EAAO,KAAK,yBAA0B,CAAY,EAE7C,CACT,CACA,SAAS,IAAkC,EAAQ,EAAa,EAAS,CACvE,GAAM,CAAE,MAAK,WAAY,GAAgB,GAAW,CAAC,EACrD,EAAO,KAAK,4BAA6B,EAAa,CAAE,WAAY,EAAa,KAAI,CAAC,EACtF,EAAO,KAAK,sBAAuB,EAAa,CAAE,WAAY,EAAa,KAAI,CAAC,EAChF,IAAM,EAAQ,GAAgB,EAU9B,OATA,EAAM,mBAAmB,EAAY,IAAI,EACrC,GAAO,CAAC,GACV,EAAM,yBAAyB,CAC7B,kBAAmB,CACjB,GAAG,GAAmB,EACtB,KACF,CACF,CAAC,EAEI,GAAkB,CAAM,CACjC,CACA,SAAS,GAAe,EAAU,CAGhC,OAF+BA,GAAO,UACE,cAAc,aAAa,EAAS,EAAE,IAC9D,aAAa,SAAS,GAAK,IAAK,EAClD,CACA,SAAS,GAAgB,EAAM,CAG7B,OAFmBA,GAAO,aAAa,mBAAmB,YAAY,EAAE,KAC9C,cAAc,KAAM,GAAW,EAAO,OAAS,CAAI,GAC/D,WAChB,CACA,SAAS,IAA4B,EAAQ,EAAa,EAAc,EAAkB,EAAa,CACrG,IAAM,EAAyBA,GAAO,SAClC,EAmCA,GACF,iBAAiB,YAnC0B,CAC3C,IAAM,EAAK,kBACL,EAAiB,GAAkB,CAAM,EAC/C,GAAI,EAAgB,CAClB,IAAM,EAAoB,GAAW,CAAc,EAAE,GACrD,GAAI,CAAC,aAAc,UAAU,EAAE,SAAS,CAAiB,EAAG,CAC1D,IAAerB,GAAM,KAAK,4BAA4B,EAAG,4DAA4D,EACrH,MACF,CACF,CAMA,GALA,CAGE,IAFA,EAAwB,aAAa,GAAmD,wBAAwB,EAChH,EAAwB,IAAI,EACF,IAAK,IAE7B,CAAC,EAAY,KAAM,CACrB,IAAeA,GAAM,KAAK,4BAA4B,EAAG,kDAAkD,EAC3G,MACF,CACA,EAA0B,GACxB,CACE,KAAM,EAAY,KAClB,KACA,WAAY,EACT,IAAmC,EAAY,QAAU,KAC5D,CACF,EACA,CACE,cACA,eACA,kBACF,CACF,CACF,EAE4D,CAAE,QAAS,EAAK,CAAC,CAE/E,CACA,IAAM,GAA4B,mBAClC,SAAS,GAAkB,EAAQ,CACjC,OAAO,EAAO,GAChB,CACA,SAAS,GAAkB,EAAQ,EAAM,CACvC,GAAyB,EAAQ,GAA2B,CAAI,CAClE,CACA,IAAM,GAAqB,IAC3B,SAAS,IAAW,EAAY,EAA0B,CACxD,IAAM,EAAW,GAAW,CAAU,EAChC,EAAM,GAAuB,EAQnC,MAHA,EAHI,EADmB,EAAS,gBACL,IAGvB,GAA4B,EAAM,GAA4B,GAIpE,CCvaA,SAAS,IAAK,EAAS,CACrB,IAAM,EAAO,CACX,GAAG,CACL,EAEA,OADA,GAAiB,EAAM,QAAQ,EACxB,IAAO,CAAI,CACpB,CCuDA,IAAM,GAAuB,4BACvB,GAAqB,SACrB,GAAqB,kBAEvB,GAAc,GACd,GAA+B,KAC/B,GAAoC,KAElC,GAAe,GAAoC,CACvD,GAAI,CACF,IAAM,KAGN,GAAW,IAAe,OAAa,CACrC,IAAM,EAAQ,EAAW,GAEzB,GAAW,IAAU,OACnB,OAAO,OAAO,CAAK,CAEvB,CACF,MAAQ,CAER,CAEA,GAAI,CACF,IAAM,yDAEN,GAAI,GAAW,OAAO,GAAY,UAAY,KAAO,EAAS,CAC5D,IAAM,EAAQ,EAAQ,GAEtB,GAAW,IAAU,OACnB,OAAO,OAAO,CAAK,CAEvB,CACF,MAAQ,CAER,CAGF,EAEM,IAAO,GAAG,IAAuC,CACrD,IAAK,IAAM,KAAO,EAAM,CACtB,IAAM,EAAQ,GAAY,CAAG,EAE7B,GAAI,IAAU,QAAa,IAAU,GAAI,OAAO,CAClD,CAGF,EAEM,IAAW,EAAgB,EAAW,KAAmB,CAC7D,IAAK,IAAM,KAAO,EAAM,CACtB,IAAM,EAAM,GAAY,CAAG,EAE3B,GAAI,IAAQ,OAAW,SAEvB,IAAM,EAAa,OAAO,CAAG,EAAE,KAAK,EAAE,YAAY,EAElD,GAAI,CAAC,IAAK,OAAQ,MAAO,IAAI,EAAE,SAAS,CAAU,EAAG,MAAO,GAE5D,GAAI,CAAC,IAAK,QAAS,KAAM,KAAK,EAAE,SAAS,CAAU,EAAG,MAAO,EAC/D,CAEA,OAAO,CACT,EAEM,OAAsC,CAC1C,GAAI,OAAO,OAAW,IAAa,OAAO,KAE1C,GAAI,CACF,OAAO,OAAO,SAAS,UAAY,IACrC,MAAQ,CACN,OAAO,IACT,CACF,EAEM,GAAmB,GAA6C,CACpE,GAAI,CAAC,EAAM,MAAO,GAElB,IAAM,EAAQ,EAAK,YAAY,EAE/B,OACE,IAAU,aACV,EAAM,SAAS,YAAY,GAC3B,IAAU,aACV,EAAM,WAAW,MAAM,GACvB,IAAU,OACV,IAAU,SACV,IAAU,SAEd,EAEM,IAA+B,GAA6C,CAChF,GAAI,CAAC,EAAM,MAAO,GAElB,IAAM,EAAQ,EAAK,YAAY,EAE/B,OAAO,IAAU,IAAsB,EAAM,SAAS,IAAI,IAAoB,CAChF,EAEM,IAAsB,GAA0C,CACpE,IAAM,EACJ,GACA,GAAI,qBAAsB,gBAAiB,qBAAsB,MAAO,UAAW,UAAU,EAE/F,GAAI,EAAS,OAAO,EAEpB,IAAM,EAAO,GAAe,EAEvB,KAML,OAJI,GAAgB,CAAI,EAAU,QAE9B,EAAK,SAAS,KAAK,EAAU,cAE1B,YACT,EAEM,IAAkB,GAA0C,CAChE,IAAM,EACJ,GACA,GACE,iBACA,oBACA,yBACA,cACA,gBACA,eACF,EAEF,OAAO,EAAU,OAAO,CAAO,EAAI,MACrC,EAEM,IAAsB,GAExB,GACA,GAAI,sBAAuB,yBAA0B,6BAA6B,GAClF,GAIE,IAAqB,GAEvB,GACA,GAAI,oBAAqB,uBAAwB,2BAA2B,GAC5E,GAIE,IAAwB,EAAwB,IAAkC,CACtF,IAAM,EAAO,GAAe,EAE5B,GAAI,IAA4B,CAAI,EAAG,MAAO,GAM9C,GAHE,EAAQ,aACR,GAAQ,CAAC,sBAAuB,yBAA0B,6BAA6B,EAAG,EAAK,EAEjF,MAAO,GAGvB,IAAM,GADY,GAAe,IAAI,KAAK,EAAE,YACzB,IAAa,QAC1B,EAAU,GAAQ,CAAC,MAAO,UAAU,EAAG,EAAK,EAElD,OAAO,GAAgB,CAAI,GAAK,GAAc,CAChD,EAEM,IAAiB,EAAsB,IAAqB,CAC3D,KAED,GACF,GAAc,kBAAmB,CAAW,EAG1C,GACF,GAAc,cAAe,CAAO,EAExC,EAEa,KACX,EACA,EAAO,GACP,EAAY,KACM,CAClB,IAAM,EAAU,OAAO,GAAa,EAAE,EAAE,KAAK,EACvC,EAAiB,OAAO,GAAQ,EAAE,EACrC,QAAQ,gBAAiB,EAAE,EAC3B,KAAK,EACF,EAAgB,OAAO,GAAa,EAAE,EAAE,KAAK,GAAK,GAIxD,MAFI,CAAC,GAAW,CAAC,EAAuB,KAEjC,WAAW,EAAc,GAAG,EAAe,GAAG,GACvD,EAEM,GAA2B,GAAuC,CACtE,GAAI,CAAC,EAAK,OAAO,KAEjB,GAAI,CAEF,IAAM,EAAQ,IADE,IAAI,CACN,EAAI,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAGpD,OAFgB,EAAM,EAAM,OAAS,IAAM,OAEzB,IACpB,MAAQ,CACN,OAAO,IACT,CACF,EAEM,IAAoB,GACpB,EAAQ,YAAc,QAAa,EAAQ,YAAc,KAC7C,OAAO,EAAQ,SAAS,EAAE,KAEjC,GAAgB,KAGlB,GAAwB,EAAQ,KAAO,IAAI,EAG9C,IAAwB,GAAkE,CAC9F,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAQ,EAAgB,OAAS,OAAoC,EAAvB,EAAgB,KAEpE,GAAI,CAAC,EAAM,OAAO,KAElB,IAAM,EACH,EAAwB,YAAe,EAAwB,aAAe,CAAC,EAC5E,EAAkB,EAAwB,aAAe,CAAC,EAC1D,EAAO,CACX,GAAK,EAAwB,MAAQ,CAAC,EACtC,GAAM,GAAiB,MAAkE,CAAC,CAC5F,EACM,EAAS,CACb,GAAK,EAAwB,QAAU,CAAC,EACxC,GAAM,GAAiB,QAAkD,CAAC,CAC5E,EAEA,MAAO,CACL,GAAI,EAAK,KAAO,QAAa,EAAK,KAAO,KAAO,OAAO,EAAK,EAAE,EAAI,KAClE,MAAO,EAAK,OAAS,KACrB,SAAU,EAAK,UAAY,KAC3B,eAAgB,EAAK,gBAAkB,EAAK,iBAAmB,KAC/D,KAAM,EAAK,MAAQ,KACnB,WAAY,MAAM,QAAQ,CAAa,EACnC,EAAc,IAAK,GAAU,OAAO,CAAK,CAAC,EAAE,OAAO,OAAO,EAC1D,CAAC,EACL,YAAa,MAAM,QAAQ,CAAc,EAAI,EAAe,IAAK,GAAU,OAAO,CAAK,CAAC,EAAI,CAAC,EAC7F,OACA,SACA,UAAW,EAAK,YAAc,IAChC,CACF,EAEa,IAAoB,GAAoC,CACnE,GAAI,OAAO,OAAW,IAAa,MAAO,GAE1C,IAAM,EAAY,IAAiB,CAAO,EACpC,EAAc,IAAmB,GAAS,WAAW,EAE3D,GAAI,GAAqB,EAAS,CAAW,EAC3C,MAAO,GAGT,IAAM,EACJ,GAAS,MACR,EACG,IACE,EACA,IAAmB,GAAS,IAAI,EAChC,IAAkB,GAAS,SAAS,CACtC,EACA,MAEN,GAAI,CAAC,EAAK,MAAO,GAEjB,IAAM,EAAU,IAAe,GAAS,OAAO,EAE/C,GAAI,IAAe,MAAmB,GAAa,MAGjD,OAFA,GAAc,EAAa,CAAO,EAE3B,GAGT,GAAI,CAuCF,OAvBA,IAAY,CACV,MACA,cACA,UACA,aAnBmB,CACnB,IAAiC,CAAC,CAAC,EACnC,IAAyB,CACvB,YAAa,GACb,cAAe,GACf,cAAe,EACjB,CAAC,EACD,OAAO,IAAiC,WACpC,GAA6B,CAC3B,yBAA0B,CAAC,CAAC,IAAK,GAAG,CAAC,EACrC,qBAAsB,CAAC,GAAG,CAC5B,CAAC,EACD,IACN,EAAE,OAAO,OAMP,EACA,wBAAyB,GAAS,wBAClC,eAAgB,GAChB,iBAAkB,GAAS,kBAAoB,EAC/C,yBAA0B,GAAS,0BAA4B,EAC/D,yBAA0B,GAAS,0BAA4B,EAC/D,WAAW,EAAO,CAChB,OAAO,GAAqB,EAAS,CAAW,EAAI,KAAO,CAC7D,CACF,CAAC,EACD,GAAc,GACd,GAAgB,GAAa,GAAwB,CAAG,EAEpD,IACF,GAAc,oBAAqB,EAAa,EAGlD,GAAc,EAAa,CAAO,EAE3B,EACT,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,8BAA+B,CAAG,EAExC,EACT,CACF,EAEa,IAAwB,GAAoC,CACvE,GAAI,CAAC,GAAa,OAElB,IAAM,EAAO,IAAqB,CAAO,EAEzC,GAAI,CAAC,EAAM,CACT,GAAe,IAAI,EACnB,GAAkB,eAAgB,IAAI,EACtC,GAAkB,gBAAiB,IAAI,EACvC,GAAc,kBAAmB,MAAM,EACvC,GAAc,YAAa,WAAW,EACtC,GAAc,aAAc,WAAW,EACvC,GAAc,iBAAkB,OAAO,EACvC,GAAc,kBAAmB,OAAO,EACxC,GAAc,qBAAsB,GAAG,EACvC,GAAc,sBAAuB,GAAG,EACxC,GAAgB,mBAAoB,CAAC,CAAC,EACtC,GAAgB,oBAAqB,CAAC,CAAC,EACvC,GAAgB,mBAAoB,CAAC,CAAC,EAEtC,MACF,CAEA,GAAe,CACb,GAAI,EAAK,IAAM,OACf,MAAO,EAAK,OAAS,OACrB,SAAU,EAAK,UAAY,OAC3B,WAAY,EAAK,WAAa,UAChC,CAAC,EACD,IAAM,EAAiB,CACrB,gBAAiB,EAAK,eACtB,KAAM,EAAK,KACX,YAAa,EAAK,WAClB,YAAa,EAAK,WACpB,EACA,GAAkB,eAAgB,CAAc,EAEhD,GAAkB,gBAAiB,CAAc,EAEjD,IAAM,EAAS,EAAK,gBAAkB,UAChC,EAAU,EAAK,MAAQ,UACvB,EAAe,OAAO,EAAK,YAAY,QAAU,CAAC,EAExD,GAAc,kBAAmB,CAAM,EACvC,GAAc,YAAa,CAAO,EAClC,GAAc,aAAc,CAAO,EACnC,GAAc,iBAAkB,MAAM,EACtC,GAAc,kBAAmB,MAAM,EACvC,GAAc,qBAAsB,CAAY,EAChD,GAAc,sBAAuB,CAAY,EACjD,GAAgB,mBAAoB,EAAK,YAAc,CAAC,CAAC,EACzD,GAAgB,oBAAqB,EAAK,YAAc,CAAC,CAAC,EAEtD,EAAK,aAAa,QACpB,GAAgB,mBAAoB,EAAK,WAAW,EAGtD,OAAO,QAAQ,EAAK,MAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAK,KAAW,CACpD,GAAU,MAEd,GAAc,EAAK,OAAO,CAAK,CAAC,CAClC,CAAC,EACD,OAAO,QAAQ,EAAK,QAAU,CAAC,CAAC,EAAE,SAAS,CAAC,EAAK,KAAW,CAC1D,GAAgB,EAAK,CAAY,CACnC,CAAC,CACH,EAEa,IAAyB,GAAuC,CAC3E,GAAI,CAAC,IAAe,CAAC,EAAS,OAE9B,IAAM,EAAY,KAAK,UAAU,CAC/B,KAAM,EAAQ,MAAQ,KACtB,OAAQ,EAAQ,QAAU,KAC1B,OAAQ,EAAQ,QAAU,KAC1B,QAAS,EAAQ,SAAW,KAC5B,YAAa,EAAQ,aAAe,KACpC,gBAAiB,EAAQ,iBAAmB,IAC9C,CAAC,EAED,GAAI,IAAc,GAAoB,OAEtC,GAAqB,EAErB,IAAM,EAAO,EAAQ,MAAQ,IACvB,EAAS,EAAQ,QAAU,UAC3B,EAAS,EAAQ,QAAU,GAEjC,GAAkB,cAAe,CAC/B,OACA,SACA,SACA,QAAS,EAAQ,SAAW,KAC5B,YAAa,EAAQ,aAAe,KACpC,gBAAiB,EAAQ,iBAAmB,IAC9C,CAAC,EACD,GAAc,aAAc,CAAM,EAClC,GAAc,YAAa,EAAQ,SAAW,MAAM,EACpD,GAAc,gBAAiB,EAAQ,aAAe,MAAM,EAExD,EAAQ,iBACV,GAAc,oBAAqB,EAAQ,eAAe,EAG5D,GAAqB,CACnB,SAAU,aACV,QAAS,EACT,KAAM,CACJ,OAAQ,GAAU,OAClB,SACA,IAAK,EAAQ,SAAW,OACxB,QAAS,EAAQ,aAAe,MAClC,EACA,MAAO,MACT,CAAC,CACH,EC1fM,QACA,OAAO,OAAW,KAAe,OAAO,OAAO,YAAe,WACzD,OAAO,WAAW,EAGpB,YAAY,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAqBxD,GAAY,GAA0B,CAAC,CAAC,EAExC,IAAe,GAA+C,CACzE,IAAM,EAAuB,CAC3B,GAAG,EACH,GAAI,IAAiB,EACrB,cAAe,EAAQ,eAAiB,aACxC,aAAc,EAAQ,cAAgB,YACtC,iBAAkB,EAAQ,uBAA2B,CAAC,GACtD,qBAAsB,EAAQ,qBAC9B,YAAe,CAAC,EAChB,WAAY,QAAQ,QAAQ,EAAK,EACjC,QAAS,EACX,EAQA,MANA,GAAM,WAAa,IAAI,QAAkB,GAAY,CACnD,EAAM,QAAU,CAClB,CAAC,EAED,GAAU,OAAQ,GAAY,CAAC,GAAG,EAAS,CAAK,CAAC,EAE1C,EAAM,UACf,EAEa,GAAkB,MAAO,EAAsB,IAAsB,CAC5E,MAAM,QAIV,CAFA,EAAM,QAAU,GAEhB,GAAU,OAAQ,GAAY,EAAQ,OAAQ,GAAc,EAAU,KAAO,EAAM,EAAE,CAAC,EAEtF,GAAI,CACE,EACF,MAAM,EAAM,mBAAmB,EAE/B,MAAM,EAAM,uBAAuB,CAEvC,QAAU,CACR,EAAM,QAAQ,CAAQ,CACxB,CAVsF,CAWxF,EC1DM,GAAc,GAClB,EACG,QAAQ,KAAM,OAAO,EACrB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,OAAO,EAEpB,KAAuB,EAAgC,IACvD,OAAO,EAAW,QAAW,UAAY,EAAW,OAAO,KAAK,EAC3D,EAAW,OAAO,KAAK,EAGzB,EAAW,SAAW,GAAY,8BAG9B,IACX,EACA,EAAiC,CAAC,IACX,CACvB,IAAM,EAAa,GAAkB,EAAO,CAAE,SAAU,EAAQ,QAAS,CAAC,EACpE,EAAU,IAAoB,EAAY,EAAQ,QAAQ,EAC1D,EACJ,EAAQ,kBAAoB,EAAW,UACnC,yBAAyB,GAAW,EAAW,SAAS,EAAE,UAC1D,GASN,OARA,GAAgB,CACd,MAAO,EAAQ,OAAS,QACxB,KAAM,GAAG,GAAW,CAAO,IAAI,IAC/B,QAAS,EAAQ,QACjB,oBAAqB,EAAQ,oBAC7B,QAAS,EAAQ,OACnB,CAAC,EAEM,CACT,EC/CM,GAA4B,GAAwB,CACxD,GAAI,OAAO,SAAa,IACtB,MAAU,MAAM,uBAAuB,EAGzC,IAAM,EAAW,SAAS,cAAc,UAAU,EAClD,EAAS,MAAQ,EACjB,EAAS,aAAa,WAAY,MAAM,EACxC,EAAS,MAAM,SAAW,QAC1B,EAAS,MAAM,KAAO,UACtB,SAAS,KAAK,YAAY,CAAQ,EAElC,GAAI,CAGF,GAFA,EAAS,OAAO,EAEZ,CAAC,SAAS,YAAY,MAAM,EAC9B,MAAU,MAAM,uBAAuB,CAE3C,QAAU,CACR,EAAS,OAAO,CAClB,CACF,EAEa,IAAsB,KAAO,IAAiC,CACzE,GAAI,OAAO,UAAc,KAAe,UAAU,WAAW,UAC3D,GAAI,CACF,MAAM,UAAU,UAAU,UAAU,CAAK,EAEzC,MACF,MAAQ,CACN,GAAyB,CAAK,EAE9B,MACF,CAGF,GAAyB,CAAK,CAChC,EC1BM,GAAiB,IAAsC,GAAS,IAAI,QAAQ,OAAQ,EAAE,GAAK,IAEpF,KACX,EACA,EAAgC,CAAC,MAExB,EAAyB,IAAkB,CAClD,IAAM,EAAe,EAAK,aAAa,MAAM,GAAK,GAClD,EAAK,QAAQ,aAAe,EAE5B,IAAM,MAAmB,CAEvB,IAAM,EAAW,EADA,EAAK,QAAQ,cAAgB,CACT,EAEjC,GAAY,IAAa,EAAK,aAAa,MAAM,GACnD,EAAK,aAAa,OAAQ,CAAQ,CAEtC,EAEA,EAAW,EACX,IAAM,EAAgB,EAAc,IAAK,GAAU,EAAM,cAAgB,EAAW,CAAC,CAAC,EAChF,EAAe,GAAW,EAAM,CAAY,EAC5C,EACJ,GAAgB,OAAO,GAAiB,UAAY,YAAa,EAC7D,EAAa,QACb,OACA,EACJ,GAAgB,OAAO,GAAiB,UAAY,WAAY,EAC5D,EAAa,OACb,OAEN,MAAO,CACL,SAAU,CACR,EAAc,QAAS,GAAU,IAAQ,CAAC,EAC1C,IAAgB,CAClB,EACA,OAAO,EAAkB,CACvB,IAAe,CAAgB,EAC/B,EAAW,CACb,CACF,CACF,GAGW,KACX,EACA,EACA,IACG,CACH,IAAM,EAAW,EAAY,CAAE,EAE/B,GAAI,OAAO,OAAW,IAAa,CACjC,IAAM,EAAU,GAAG,OAAO,SAAS,WAAW,OAAO,SAAS,SAAS,OAAO,SAAS,OACjF,EAAa,IAAI,IAQvB,GAPA,EAAW,IAAI,GAAc,CAAQ,CAAC,GAChB,GAAS,eAAiB,KAG9C,EAAW,IAAI,GAAc,GAAG,IAAW,OAAO,SAAS,SAAS,OAAO,SAAS,MAAM,CAAC,EAGzF,EAAW,IAAI,GAAc,CAAO,CAAC,EAAG,MAC9C,CAEA,GAAe,EAAU,CAAO,CAClC,EAEM,IAAkB,GACtB,qBAAqB,KAAK,CAAI,GAAK,EAAK,WAAW,SAAS,GAAK,EAAK,WAAW,MAAM,EAEnF,IAAiB,GAOrB,GANI,CAAC,GAED,EAAK,WAAW,GAAG,GAAK,EAAK,WAAW,GAAG,GAE3C,EAAK,WAAW,iBAAiB,GAEjC,EAAK,WAAW,SAAS,GAKzB,IAAyB,GACxB,EAEE,EAAK,WAAW,GAAG,EAAI,EAAO,IAAI,IAFvB,IAWP,GAA2B,GAAsC,CAC5E,IAAM,EAAS,EAAQ,QAAU,IAC3B,EAAe,GACf,CAAC,GAED,IAAe,CAAI,GAAK,EAAO,CAAI,EAC9B,EAGU,IAAsB,CAElC,EAGT,MAAO,CACL,cACA,QAAS,IAAqB,EAAa,EAAQ,eAAiB,CAAC,CAAC,EACtE,aAAc,EAAY,EAAiC,IAA6B,CACtF,IAAmB,EAAI,EAAY,CAAW,EAC9C,IAAW,CACb,CACF,CACF,EC3FM,IAAsB,GAAqC,CAC/D,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,MAAO,IAErB,IAAM,EAAa,EAAQ,WAAW,GAAG,EAAI,EAAU,IAAI,IAI3D,OAFI,IAAe,IAAY,IAExB,EAAW,OAAS,EAAI,EAAW,QAAQ,OAAQ,EAAE,EAAI,CAClE,EAEM,GAAiB,GAA8B,CACnD,GAAI,CAAC,EAAO,OAAO,KAEnB,GAAI,CACF,OAAO,mBAAmB,CAAK,CACjC,MAAQ,CACN,OAAO,CACT,CACF,EAgIa,GAAsB,GAAiB,CAElD,IAAM,EADa,IAAmB,CACrB,EAAW,MAAM,GAAG,EAAE,OAAO,OAAO,EAE/C,EAAa,GAAkC,CACnD,IAAM,EAAM,EAAS,QAAQ,CAAM,EAInC,OAFI,IAAQ,GAAW,KAEhB,GAAc,EAAS,EAAM,EAAE,CACxC,EAEI,EAAmB,EAAU,MAAM,EACnC,EAAc,EAAU,UAAU,EAClC,EAAkB,EAAU,aAAa,GAAK,EAAU,cAAc,EAuB1E,OArBI,EAAS,KAAO,iBAAmB,EAAS,KAC9C,EAAmB,GAAc,EAAS,EAAE,EAExC,EAAS,KAAO,YAAc,EAAS,KACzC,EAAc,GAAc,EAAS,EAAE,EAEnC,EAAS,KAAO,gBAAkB,EAAS,KAC7C,EAAkB,GAAc,EAAS,EAAE,KAM7C,CAAC,GAAoB,CAAC,GAAe,EAAS,KAAO,YAAc,EAAS,GACvE,CACL,iBAAkB,KAClB,YAAa,GAAc,EAAS,EAAE,EACtC,gBAAiB,EAAU,aAAa,GAAK,EAAU,cAAc,CACvE,EAGK,CAAE,mBAAkB,cAAa,iBAAgB,CAC1D,EChMM,QACA,OAAO,OAAW,KAAe,OAAO,OAAO,YAAe,WACzD,OAAO,WAAW,EAGpB,UAAU,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAG7D,IAAmB,GAAkD,CACzE,IAAM,EAAK,EAAM,IAAI,KAAK,GAAK,IAAe,EACxC,EAAW,EAAM,UAAY,UAC7B,EAAW,OAAO,SAAS,EAAM,QAAQ,EAAK,EAAM,SAAsB,EAEhF,MAAO,CACL,GAAG,EACH,KACA,WACA,YAAa,EAAM,aAAe,GAClC,MAAO,EAAM,OAAS,IAAa,SACnC,KAAM,OAAO,EAAM,MAAS,SAAW,EAAM,KAAQ,EAAM,MAAQ,GACnE,OAAQ,EAAM,QAAU,KACxB,SAAU,EAAM,UAAY,KAC5B,KAAM,EAAM,MAAQ,KACpB,UACF,CACF,EAEM,GAAU,GAAqC,qBAAwB,GAAS,CAAC,CAAC,CAAC,EAE5E,IAAgB,GAAQ,GAAU,GAAS,EAAK,IAAM,IAAI,EAE1D,IAAa,GACnB,EAME,IAAa,CAAK,GALvB,IAAa,EAEN,MAME,IAAgB,GAAsC,CACjE,IAAM,EAAa,IAAgB,CAAK,EAUxC,OATA,GAAQ,OAAQ,GAED,CAAC,GADS,EAAQ,OAAQ,GAAS,EAAK,KAAO,EAAW,EACtD,EAAgB,CAAU,EAAE,MAC1C,EAAG,KAAO,EAAE,UAAY,IAAM,EAAE,UAAY,EAGxC,CACR,EAEM,EAAW,EACpB,EAEa,GAAgB,GAAkC,CACxD,GAEL,GAAQ,OAAQ,GAAY,EAAQ,OAAQ,GAAU,EAAM,KAAO,CAAE,CAAC,CACxE,EAEa,QAAqB,GAAQ,IAAI,CAAC,CAAC,ECrF1C,QAA4C,CAChD,aAAc,GACd,aAAc,KACd,QAAS,IACX,GAEa,GAAiB,GAAyB,GAAmB,CAAC,EASrE,IAAiB,GAChB,GAEW,EAAM,KAEf,GAJY,KAOR,IAAkB,GAAyD,CACtF,GAAM,CAAE,eAAe,UAAW,eAAgB,EAElD,GAAI,OAAO,OAAW,IAAa,CACjC,IAAM,EAAwB,CAC5B,GAAG,GAAmB,EACtB,aAAc,EAChB,EAIA,OAHA,GAAe,IAAI,CAAK,EACxB,EAAiB,CAAK,EAEf,CAAE,SAAY,IAAK,EAAE,CAC9B,CAGA,IAAM,EAAiB,IAAc,IADlB,gBAAgB,OAAO,SAAS,MACd,EAAO,IAAI,CAAY,CAAC,EAEvD,EAAwB,CAC5B,aAAc,GACd,aAAc,EACd,QAAS,CACX,EAIA,OAHA,GAAe,IAAI,CAAK,EACxB,EAAiB,CAAK,EAEf,CACL,SAAY,IAAK,EACnB,CACF,ECvBM,IAAmB,IAA8D,CACrF,MAAO,EAAO,MACd,MAAO,EAAO,OAAS,IACzB,GAEM,GAAQ,OAAO,WAAe,IAAc,WAAa,OACzD,GAAc,2BACd,GAAc,mCAEd,QACJ,GAAK,IAAe,GAAK,KAAgB,CAAC,EAEnC,GAAK,KAGR,QAAe,CAEnB,IAAM,GADU,OAAO,GAAK,KAAiB,SAAY,GAAK,IAA0B,GACjE,EAGvB,MAFA,IAAK,IAAe,EAEb,CACT,EAiBa,KACX,EACA,IACiB,CACjB,IAAM,EAAmC,CACvC,GAAI,IAAO,EACX,OAAQ,IAAgB,CAAM,EAC9B,UACA,SAAU,IACZ,EAGA,OAFA,GAAY,EAAE,KAAK,CAAK,MAEX,CACX,IAAM,EAAW,GAAY,EACvB,EAAQ,EAAS,UAAW,GAAS,EAAK,KAAO,EAAM,EAAE,EAE3D,GAAS,GAAG,EAAS,OAAO,EAAO,CAAC,CAC1C,CACF,EClDM,IAAgB,GAA6D,CACjF,GAAI,CAAC,EAAK,OAAO,KAEjB,GAAI,CACF,IAAM,EAAS,KAAK,MAAM,CAAG,EAM7B,MAJI,CAAC,GAAU,OAAO,GAAW,UAE7B,OAAO,EAAO,MAAS,UAAY,CAAC,EAAO,KAAK,KAAK,EAAU,KAE5D,CACT,MAAQ,CACN,OAAO,IACT,CACF,EAEM,KAAsB,EAAgB,EAAmB,IAAmC,CAChG,IAAM,EAAa,EAAO,KAAK,EAE/B,GAAI,CAAC,GAAc,CAAC,EAAS,OAAO,EAEpC,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,EAAY,OAAO,SAAS,MAAM,EAGtD,OAFA,EAAI,aAAa,IAAI,EAAW,CAAO,EAEhC,EAAI,SAAS,CACtB,MAAQ,CAGN,MAAO,GAAG,IAFQ,EAAW,SAAS,GAAG,EAAI,IAAM,MAEhB,mBAAmB,CAAS,EAAE,GAAG,mBAAmB,CAAO,GAChG,CACF,EAEM,IAAgB,GAAoE,CACxF,IAAM,EAAS,EAAO,MAAM,YAAY,EAClC,EAAY,EAAO,IAAI,GAAK,GAC5B,EAA2B,CAAC,EAElC,IAAK,IAAM,KAAY,EAAQ,CAC7B,IAAM,EAAQ,EAAS,MAAM,OAAO,EAChC,EAAY,UACZ,EAAyB,KACvB,EAAsB,CAAC,EAE7B,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAI,CAAC,GAAQ,EAAK,WAAW,GAAG,EAAG,SAEnC,IAAM,EAAM,EAAK,QAAQ,GAAG,EACtB,EAAQ,GAAO,EAAI,EAAK,MAAM,EAAG,CAAG,EAAI,EAC1C,EAAQ,GAAO,EAAI,EAAK,MAAM,EAAM,CAAC,EAAI,GAI7C,GAFI,EAAM,WAAW,GAAG,IAAG,EAAQ,EAAM,MAAM,CAAC,GAE5C,IAAU,QAAS,CACrB,EAAY,GAAS,UACrB,QACF,CAEA,GAAI,IAAU,OAAQ,CACpB,EAAU,KAAK,CAAK,EACpB,QACF,CAEI,IAAU,OACZ,EAAU,GAAS,KAEvB,CAEK,EAAU,QAEf,EAAO,KAAK,CACV,MAAO,EACP,GAAI,EACJ,KAAM,EAAU,KAAK;CAAI,CAC3B,CAAC,CACH,CAEA,MAAO,CAAE,YAAW,QAAO,CAC7B,EAEa,KAA4B,CACvC,MACA,mBACA,aAAa,IACb,kBAAkB,IAClB,iBAAiB,KACjB,qBAAqB,KACrB,oBAAoB,iBACpB,eACA,UACA,oBACqC,CACrC,IAAI,EAAuD,KACvD,EAAwD,KACxD,EAAU,GACV,EAAmB,EACnB,EACF,OAAO,GAAuB,UAAY,EAAmB,KAAK,EAAE,OAChE,EAAmB,KAAK,EACxB,KACF,EAAqC,KAEnC,MAA4B,CAC3B,CAGL,IADA,aAAa,CAAc,EACV,KACnB,EAEM,MAA6B,CAC5B,CAGL,IADA,aAAa,CAAe,EACV,KACpB,EAEM,MAAuB,CAC3B,EAAqB,EACrB,EAAkB,eAAiB,CACjC,EAAkB,KAClB,IAAe,CACjB,EAAG,CAAU,CACf,EAEM,MAAwB,CACvB,CAGL,IADA,EAAW,MAAM,EACJ,KACf,EAEM,MAA0B,CAC9B,GAAI,GAAW,GAAkB,OAAO,OAAW,IAAa,OAEhE,IAAM,EAAQ,KAAK,IAAI,EAAkB,GAAK,EAAkB,CAAc,EAC9E,GAAoB,EACpB,EAAiB,eAAiB,CAChC,EAAiB,KACjB,EAAa,CACf,EAAG,CAAK,CACV,EAEM,MAAyB,CAC7B,IAAiB,EAAK,EACtB,EAAgB,EAChB,EAAkB,CACpB,EAEM,GACJ,EACA,EACA,IACG,CACH,IAAM,GACH,OAAO,EAAY,SAAY,UAAY,EAAY,QAAQ,KAAK,EAAE,OACnE,EAAY,QAAQ,KAAK,EACzB,OAAS,EAEX,IACF,EAAc,GAGZ,IAAc,oBAChB,EAAe,EAGjB,IAAU,EAAW,EAAY,MAAQ,EAAa,EAAiB,CAAW,CACpF,EAEM,EAAU,SAAY,CAC1B,GAAI,GAAW,OAAO,OAAW,KAAe,OAAO,MAAU,IAAa,CAC5E,IAAiB,EAAK,EAEtB,MACF,CAEA,IAAM,EAAgB,EAAI,KAAK,EAE/B,GAAI,CAAC,EAAe,CAClB,IAAiB,EAAK,EAEtB,MACF,CAEA,EAAgB,EAChB,IAAM,EAAmB,IAAI,gBAC7B,EAAa,EAEb,GAAI,CACF,IAAM,EAAW,IAAmB,EAAe,EAAmB,CAAW,EAC3E,EAAY,EACd,MAAM,EAAiB,EAAU,EAAiB,MAAM,EACxD,KACJ,GAAI,GAAW,EAAiB,OAAO,SAAW,IAAe,EAAkB,OACnF,GAAI,GAAa,CAAC,CAAC,UAAW,OAAQ,aAAa,EAAE,SAAS,EAAU,WAAW,EACjF,MAAU,MAAM,sCAAsC,EAExD,IAAM,EAAkB,IAAI,QAAQ,GAAW,OAAO,EACtD,EAAgB,IAAI,SAAU,mBAAmB,EACjD,EAAgB,IAAI,gBAAiB,UAAU,EAC/C,IAAM,EAAW,MAAM,MAAM,EAAU,CACrC,OAAQ,MACR,YAAa,GAAW,aAAe,UACvC,SAAU,EAAY,QAAU,SAChC,QAAS,EACL,EACA,CACE,OAAQ,oBACR,gBAAiB,UACnB,EACJ,OAAQ,EAAiB,MAC3B,CAAC,EAED,GAAI,CAAC,EAAS,IAAM,CAAC,EAAS,KAC5B,MAAU,MAAM,6BAA6B,EAAS,QAAQ,EAGhE,EAAmB,EACnB,IAAiB,EAAI,EAErB,IAAM,EAAS,EAAS,KAAK,UAAU,EACjC,EAAU,IAAI,YAAY,OAAO,EACnC,EAAS,GAEb,KAAO,CAAC,GAAS,CACf,GAAM,CAAE,OAAM,SAAU,MAAM,EAAO,KAAK,EAE1C,GAAI,GAAW,EAAiB,OAAO,SAAW,IAAe,EAAkB,OAEnF,GAAI,EAAM,MAEV,GAAU,EAAQ,OAAO,EAAO,CAAE,OAAQ,EAAK,CAAC,EAChD,IAAM,EAAS,IAAa,CAAM,EAClC,EAAS,EAAO,UAChB,IAAK,IAAM,KAAS,EAAO,OAAQ,CACjC,IAAM,EAAW,IAAa,EAAM,IAAI,EAEnC,GAEL,EAAiB,EAAM,OAAS,EAAS,KAAM,EAAU,EAAM,EAAE,CACnE,CACF,CACF,OAAS,EAAO,CACd,GAAI,EAAiB,OAAO,QAAS,OAErC,QAAQ,KAAK,iCAAkC,CAAK,CACtD,QAAU,CACJ,IAAe,IACjB,EAAa,MAGX,CAAC,GAAW,CAAC,EAAiB,OAAO,SACvC,EAAiB,CAErB,CACF,EAEA,MAAO,CACL,OAAQ,CACN,EAAU,GACV,EAAoB,EACpB,EAAa,CACf,EACA,MAAO,CACL,EAAU,GACV,EAAoB,EACpB,EAAqB,EACrB,EAAgB,EAChB,IAAiB,EAAK,CACxB,EACA,eAAe,EAAkC,CAC/C,EAAc,OAAO,GAAU,UAAY,EAAM,KAAK,EAAE,OAAS,EAAM,KAAK,EAAI,IAClF,EACA,gBAAiB,CACf,OAAO,CACT,CACF,CACF,EC3SM,IAAmB,GAA0B,EAAM,QAAQ,OAAQ,EAAE,EACrE,GAAmB,GACvB,IAAa,aACb,IAAa,aACb,EAAS,SAAS,YAAY,GAC9B,EAAS,SAAS,QAAQ,EAEtB,GAAyB,GAA2B,CACxD,IAAM,EAAa,IAAgB,CAAM,EAEzC,GACE,OAAO,OAAW,KAClB,CAAC,OAAO,UAAU,MAClB,GAAgB,OAAO,SAAS,QAAQ,EAExC,OAAO,EAGT,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAU,EAE9B,GAAI,EAAI,MAAQ,GAAgB,EAAI,QAAQ,EAAG,OAAO,EAEtD,IAAM,EAAiB,OAAO,SAAS,SAAS,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EACtE,EAAmB,EAAI,SAAS,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAElE,GAAI,GAAkB,GAAoB,IAAmB,EAG3D,MAFA,GAAI,KAAO,OAAO,SAAS,KAEpB,EAAI,SAAS,EAAE,QAAQ,OAAQ,EAAE,CAE5C,MAAQ,CACN,OAAO,CACT,CAEA,OAAO,CACT,EAiBM,IAhBsB,GAAyB,CACnD,GAAI,OAAO,WAAe,KAAe,CAAC,WAAY,MAAO,GAO7D,IAAM,EAJJ,WAGA,SACmB,MAAM,GAE3B,MAAO,CAAC,IAAK,OAAQ,MAAO,IAAI,EAAE,SAChC,OAAO,GAAO,EAAE,EACb,KAAK,EACL,YAAY,CACjB,CACF,GAE4B,aAAa,EAG5B,GAA4B,GAAkC,CACzE,IAAM,GAAW,GAAS,IAAI,KAAK,EAEnC,GAAI,EAAS,OAAO,GAAsB,CAAO,EAEjD,GAAI,OAAO,OAAW,IAAa,MAAO,kCAE1C,IAAM,EAAO,OAAO,SAAS,UAAY,mBAEzC,GAAI,EAAK,SAAS,WAAW,GAAK,IAAS,YACzC,MAAO,+BAGT,IAAM,EAAQ,EAAK,MAAM,GAAG,EAQ5B,OANI,EAAM,OAAS,GACjB,EAAM,GAAK,SAEJ,GAAsB,WAAW,EAAM,KAAK,GAAG,GAAG,GAGpD,GAAsB,kBAAkB,GAAM,CACvD,EAEa,GAAwB,GAA6C,CAChF,IAAM,EAAS,GAAyB,EAAQ,MAAM,EAChD,EAAM,IAAI,IAAI,GAAG,EAAO,EAAE,EAChC,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CACxC,aAAc,EAAQ,aACtB,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,UAAW,EAAQ,SACrB,CAAC,EACK,OAAO,GAAU,UAAY,EAAM,KAAK,GAC1C,EAAI,aAAa,IAAI,EAAK,EAAM,KAAK,CAAC,EAI1C,OAAO,EAAI,SAAS,CACtB,EAEM,IAAoB,GAAoE,CAC5F,IAAM,GAAY,GAAS,IAAI,KAAK,EAAE,YAAY,EAMlD,OAJI,IAAa,YAAc,IAAa,QAAgB,SAExD,IAAa,SAAW,IAAa,cAAsB,UAExD,MACT,EAEa,IAAyB,MAAO,CAC3C,SACA,eACA,UACA,iBAM4B,CAC5B,GAAI,GAGF,OAFA,GAAa,uBAAuB,EAE7B,KAGT,GAAI,CACF,IAAM,EAAe,GAAyB,CAAM,EAC9C,EAAM,IAAI,IAAI,GAAG,EAAa,8BAA8B,EAClE,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CACxC,eACA,UACA,aACF,CAAC,EACK,OAAO,GAAU,UAAY,EAAM,KAAK,GAC1C,EAAI,aAAa,IAAI,EAAK,EAAM,KAAK,CAAC,EAG1C,IAAM,EAAW,MAAM,MAAM,EAAI,SAAS,EAAG,CAC3C,YAAa,OACb,QAAS,CAAE,OAAQ,kBAAmB,CACxC,CAAC,EAED,GAAI,CAAC,EAAS,GAGZ,OAFA,GAAa,uBAAuB,EAE7B,KAGT,IAAM,EAAW,MAAM,EAAS,KAAK,EAQrC,OANK,EAME,IAAU,CACf,GAAI,wBACJ,MAAO,EAAQ,MACf,KAAM,EAAQ,KACd,SAAU,IAAiB,EAAQ,QAAQ,EAC3C,YAAa,GACb,MAAO,EAAQ,WAAa,YAAc,EAAQ,WAAa,QAC/D,SAAU,GACV,OAAQ,CACN,MAAO,EAAQ,cAAgB,iBAC/B,KACE,EAAQ,aACR,GAAqB,CAAE,SAAQ,eAAc,UAAS,aAAY,CAAC,EACrE,OAAQ,OACV,EACA,KAAM,CACJ,cAAe,EAAQ,aACzB,CACF,CAAC,GAvBC,GAAa,uBAAuB,EAE7B,KAsBX,MAAQ,CAGN,OAFA,GAAa,uBAAuB,EAE7B,IACT,CACF,EAEa,KAAkC,CAC7C,SACA,eACA,UACA,cACA,aAAa,OAOT,CACJ,GAAI,OAAO,OAAW,IAAa,UAAa,CAAC,EAEjD,GAAI,GAGF,OAFA,GAAa,uBAAuB,MAEvB,CAAC,EAGhB,IAAI,EAAuB,KACrB,EAAO,SAAY,CACvB,GAAI,CACF,MAAM,IAAuB,CAAE,SAAQ,eAAc,UAAS,aAAY,CAAC,CAC7E,OAAS,EAAO,CACd,QAAQ,MAAM,8BAA+B,CAAK,CACpD,CACF,EAMA,OALA,EAAU,EACV,EAAQ,OAAO,gBAAkB,CAC/B,EAAU,CACZ,EAAG,CAAU,MAEA,CACP,GAAO,OAAO,cAAc,CAAK,EAErC,GAAa,uBAAuB,CACtC,CACF,ECxOa,IACX,EACA,EACA,IACmB,CACnB,GAAI,CAAC,GAAI,EAAQ,EAAE,KAAM,GAAU,EAAM,WAAW,EAAG,CACrD,GAAc,EAEd,MACF,CASA,OAPA,GAAmC,CAAC,EAAE,KAAM,GAAa,CACnD,IACE,EAAQ,EAAO,EACd,GAAY,EAAI,CAAO,EAEhC,CAAC,EAEM,EACT,ECjBA,GAAwB,wBAAyB,EAA6B,EAE9E,IAAM,GAAa,GAAwB,CACzC,mBAAsB,CAGpB,IAAM,EAAS,GAFC,GAAI,EACP,GAAS,MAAQ,GACQ,EAEtC,MAAO,CACL,QAAS,EAAO,iBAChB,YAAa,EAAO,YACpB,gBAAiB,EAAO,eAC1B,CACF,EACA,cAAe,CAAC,EAAa,CAC/B,CAAC,EAGC,GAAW,QAEb,IAAa,GAAc,GAAW,YCjBhC,IAAoB,GAAiB,CACzC,IAAM,EAAS,GAAmB,CAAI,EAEtC,GAAI,GAAQ,kBAAoB,GAAQ,aAAe,GAAQ,gBAAiB,OAAO,EAEvF,IAAM,EAAQ,EAAK,MACjB,+EACF,EAEA,MAAO,CACL,iBAAkB,IAAQ,GAAK,mBAAmB,EAAM,EAAE,EAAI,KAC9D,YAAa,IAAQ,GAAK,mBAAmB,EAAM,EAAE,EAAI,KACzD,gBAAiB,IAAQ,GAAK,mBAAmB,EAAM,EAAE,EAAI,IAC/D,CACF,EA6BM,IA3BgC,GAAmC,CAEvE,GADgB,GAAQ,SAAW,wBACF,EAA6B,EAE9D,IAAM,EAAa,GAAwB,CACzC,mBAAsB,CAGpB,IAAM,EAAS,IAFC,GAAI,EACP,GAAS,MAAQ,GACM,EAEpC,MAAO,CACL,QAAS,EAAO,iBAChB,YAAa,EAAO,YACpB,gBAAiB,EAAO,eAC1B,CACF,EACA,cAAe,CAAC,EAAa,CAC/B,CAAC,EAED,MAAO,CACL,QAAS,EAAW,QACpB,YAAa,EAAW,YACxB,YAAe,IAAW,CAC5B,CACF,GAGkD,EAC3B,GAAoB,QAGpB,GAAoB,gEC7D3C,KAEI,EAAI,aAAG,MAAM,EAGb,EAAK,cAAG,cAAc,EACtB,EAAO,gBAAG,WAAW,EAajB,EAAa,eAAqB,EAAI,GACtC,EAAc,gBAAsB,EAAI,8BAI7C,EAAG,SACG,EADN,CACE,OAAI,0BAA2B,EAAK,OADtC,CAAG,WAAH,EAAG,UAAQ,CAAa,KAAxB,EAAG,WAA+B,CAAc,KAAhD,EAAG,UAAgD,EAAO,SAA1D,CAAG,gCAHE,mhBCrBR,aAiBM,EAAS,EAAO,EAAK,EACrB,EAAa,EAAO,EAAK,EACzB,EAAuB,EAAsB,IAAI,EAE/C,EAAmB,gBACf,QAAQ,OAAS,eAAc,UAAW,QAAU,IAAI,EAE5D,EAAU,QAAY,CAAmB,GAAE,YAAc,IAAI,EAC7D,EAAgB,QAAY,CAAmB,GAAE,mBAAqB,EAAE,EACxE,EAAgB,QAAY,CAAU,EAAG,KAAK,MAAK,EAAC,CAAU,EAAC,UAAU,EAAI,GAAU,EAEvF,EAAmB,QAClB,CAAU,EAEV,OAAO,SAAQ,EAAC,CAAgB,OAE1B,KAAK,eAAe,QAAO,CACpC,KAAM,UACN,OAAQ,SAAS,GAChB,OAAM,IAAK,KAAI,EAAC,CAAgB,IALE,EAAU,CAAU,EAAC,WAFlC,EAQzB,EAGD,OAAc,KACN,EAAgB,EAAG,GACnB,EAAa,EAAG,OAEjB,GAAgB,CAAK,OAAO,SAAS,CAAa,EAAG,GACxD,EAAa,UAGf,KAEM,EAAc,EAAgB,KAAK,IAAG,KAExC,GAAe,EAAG,GACpB,EAAa,UAGf,GAEA,EAAa,QACP,EAAe,EAAiB,GAChC,EAAU,OAAO,eACf,GACJ,EAAa,MAET,CAAoB,IAAK,MAC3B,EAAuB,MACvB,GAAe,CACb,MAAO,QACP,KAAM,qCAAqC,GAGjD,EACA,KAAK,IAAI,EAAa,UAAc,aAGzB,CACX,OAAO,aAAa,CAAO,CAC7B,CACF,CAAC,MAEK,EAAa,SAAe,OAC3B,CAAU,KAAI,CAAM,aAEnB,EAAgB,EACpB,CAAU,GAAK,OAAO,SAAQ,EAAC,CAAgB,MAAK,CAAgB,GAAI,KAAK,IAAG,IAElF,EAAS,OAEL,CACG,SACG,IAAuB,EAAC,CAAU,EAAC,GAAE,CACzC,kBAAiB,UAAU,WAC3B,wBAAuB,UAAU,yBAI/B,IAAsC,EAAC,CAAU,EAAC,oBAAmB,CACzE,kBAAiB,UAAU,WAC3B,wBAAuB,UAAU,yBAE7B,IAAqB,EAC3B,GAAY,uBAAsB,CAAI,cAAe,EAAI,GACzD,GAAe,CAAG,MAAO,UAAW,KAAM,oBAAoB,EAChE,OAAS,EAAK,IACR,aAAe,cAAgB,EAAI,OAAS,aAAY,OAE5D,QAAQ,MAAM,mCAAoC,CAAG,EACrD,GAAe,CACb,MAAO,QACP,KAAM,+CAEV,QAAU,GACR,EAAS,GACX,CACF,6BAIC,kBAME,EAAC,EANH,OAME,CAAC,oBAE2B,EAAM,YAAN,EAAM,MAAN,CAAM,MAC9B,EAAI,EADoB,EAAM,OAC9B,EAAI,MAAJ,CAAI,oBAD4B,CAAgB,KAChD,EAAI,aAAW,CAAU,EAAC,UAAU,QAAG,CAAmB,+BAElC,EAAM,YAAN,EAAM,MAAN,CAAM,MAC9B,EAAI,EADoB,EAAM,OAC9B,EAAI,MAAJ,CAAI,oBAD4B,CAAgB,KAChD,EAAI,aAAW,CAAU,EAAC,UAAU,QAAG,CAAmB,uBALxD,CAAU,mBADhB,CAAC,MASD,EAAI,EATJ,EAAC,OASD,CAAI,IAAJ,CAAI,MAKJ,EAAG,EALH,EAAI,OAKJ,CAAG,OAUU,EAAW,IAClB,IAAI,qBAAO,iBANL,CAAM,EAAG,iBAAmB,oBAAoB,EAJ1D,mCAEQ,YACG,sDAEA,CAAM,WACP,wDAGC,2CAVb,CAAG,IApBL,wFAEiC,CAAU,wDAcI,KAAK,OAAK;UACrD,CAAU,EAAC,qBAAmB,iBAAY,CAAU,EAAC,QAAM;UAC3D,CAAU,EAAC,YAAU,YAlBzB,cADE,CAAU,oBAFP,CC5GR,IAAa,GACX,GAe0B,CAC1B,IAAM,EAAM,IAAI,GAAe,oBAAoB,EAAO,SAAS,EAEnE,MAAO,CACL,sBAAuB,EAAS,IAAY,EAAI,qBAAqB,EAAS,CAAO,EACrF,qBAAsB,EAAS,IAAY,EAAI,oBAAoB,EAAS,CAAO,EACnF,sBAAuB,EAAS,IAAY,EAAI,qBAAqB,EAAS,CAAO,EACrF,OAAQ,EAAS,IAAY,EAAI,MAAM,EAAS,CAAO,EACvD,QAAS,EAAS,IAAY,EAAI,OAAO,EAAS,CAAO,EACzD,iBAAmB,GAAY,EAAI,iBAAiB,CAAO,EAC3D,uBAAwB,EAAS,IAAY,EAAI,sBAAsB,EAAS,CAAO,EACvF,gBAAiB,EAAS,IAAY,EAAI,eAAe,EAAS,CAAO,EACzE,YAAc,GAAY,EAAI,YAAY,CAAO,EACjD,6BAA8B,EAAS,IAAY,EAAI,4BAA4B,EAAS,CAAO,EACnG,mBAAoB,EAAS,IAAY,EAAI,kBAAkB,EAAS,CAAO,EAC/E,uBAAwB,EAAI,IAAY,EAAI,sBAAsB,EAAI,CAAO,EAC7E,4BAA8B,GAAY,EAAI,4BAA4B,CAAO,EACjF,cAAiB,EAAI,UAAU,EAC/B,0BAA2B,EAAS,IAAY,EAAI,yBAAyB,EAAS,CAAO,EAC7F,OAAS,GAAY,EAAI,OAAO,CAAO,EACvC,QAAU,GAAY,EAAI,QAAQ,CAAO,EACzC,SAAW,GAAY,EAAI,SAAS,CAAO,EAC3C,cAAgB,GAAY,EAAI,cAAc,CAAO,EACrD,oBAAqB,EAAS,IAAY,EAAI,mBAAmB,EAAS,CAAO,EACjF,eAAgB,EAAS,IAAY,EAAI,cAAc,EAAS,CAAO,CACzE,CACF,ECzBa,GAAb,cAAyD,KAAM,CAC7D,aAAc,CACZ,MAAM,0CAA0C,EAChD,KAAK,KAAO,qCACd,CACF,EAEM,GAAO,6DACP,IAAO,sBAEP,KAAe,EAAc,IAAyD,CAC1F,GAAI,CAAC,GAAO,OAAO,GAAQ,UAAY,MAAM,QAAQ,CAAG,EACtD,MAAM,IAAI,GAEZ,GAAM,CAAE,QAAO,gBAAiB,EAAc,GAAG,GAAS,EAE1D,GACE,OAAO,KAAK,CAAI,EAAE,QAClB,OAAO,GAAU,UACjB,CAAC,EAAM,SAAS,GAAG,GACnB,OAAO,GAAiB,UACxB,EAAa,YAAY,IAAM,EAAe,YAAY,EAE1D,MAAM,IAAI,GAEZ,MAAO,CAAE,QAAO,eAAgB,CAAa,CAC/C,EAMa,IAAmC,IAA8B,CAC5E,MAAM,SACJ,EACA,EACuC,CACvC,GACE,CAAC,GAAK,KAAK,EAAQ,cAAc,GACjC,CAAC,GAAK,KAAK,EAAQ,YAAY,GAC/B,CAAC,IAAK,KAAK,EAAQ,IAAI,EAEvB,MAAM,IAAI,GAqBZ,OAAO,IAAY,MAnBD,EAAO,UAAU,QACjC,OACA,uBAAuB,mBAAmB,EAAQ,YAAY,EAAE,WAChE,CACE,KAAM,CACJ,gBAAiB,EAAQ,eACzB,KAAM,EAAQ,KACd,SAAU,EAAQ,SAClB,WAAY,EAAQ,UACpB,UAAW,EAAQ,SACnB,SAAU,EAAQ,QACpB,EACA,SAAU,GACV,MAAO,QACP,OAAQ,EAAQ,OAChB,UAAW,EAAQ,SACrB,CACF,EAEwB,EAAQ,cAAc,CAChD,CACF,GC9Ea,GAA2B,GACtC,aAAiB,IACjB,EAAM,aAAe,KACrB,EAAM,SAAW,iCASN,IAA8B,GAarC,CAEJ,IAAI,EAAQ,CADa,OAAQ,QAAS,SAAU,EAAQ,UAAY,KAAM,MAAO,IACzE,EACR,EAAW,GACT,EAAQ,GAAS,CAAK,EACtB,EAAO,GAAgB,CAC3B,EAAQ,EACR,EAAM,IAAI,CAAI,CAChB,EACM,MAAgB,CAAC,GAAY,CAAC,EAAQ,QAAQ,OAAO,SAAW,EAAQ,QAAQ,UAAU,EAC1F,MAAc,EAAI,CAAE,OAAQ,cAAe,SAAU,GAAO,MAAO,IAAK,CAAC,EAC/E,EAAQ,QAAQ,OAAO,iBAAiB,QAAS,CAAK,EACtD,IAAM,GAAQ,EAAgB,IAA8B,CACrD,KAAQ,EAEb,IACE,aAAiB,IACjB,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,EAAM,YAAc,CAAC,GAC9C,EACE,IAAS,UACT,EAAM,aAAe,KACrB,EAAM,aAAe,4BAEvB,CAAC,GAAwB,CAAK,EAC9B,CACA,EAAM,EACN,EAAQ,WAAW,EAEnB,MACF,CAEA,EAAI,CACF,GAAG,EACH,OAAQ,QACR,MAAO,GAAwB,CAAK,EAChC,cACA,aAAiB,GACf,mBACA,CACR,CAAC,CAVD,CAWF,EAEA,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,MAAO,EAAQ,SAAS,KAAK,OAAS,KACtC,kBAAmB,EAAQ,kBAC3B,UAAW,EACX,MAAM,aAAa,EAAkB,CAC/B,MAAC,EAAQ,GAAK,EAAM,SAAW,SAAW,CAAC,EAAQ,cAAgB,CAAC,GAExE,GAAI,CAAE,GAAG,EAAO,OAAQ,iBAAkB,MAAO,KAAM,SAAU,EAAM,CAAC,EACxE,GAAI,CACF,IAAM,EAAW,MAAM,EAAQ,aAAa,CAAQ,EAEhD,EAAQ,GAAG,EAAI,CAAE,OAAQ,QAAS,WAAU,MAAO,EAAW,KAAO,QAAS,CAAC,CACrF,OAAS,EAAO,CACd,EAAK,EAAO,QAAQ,CACtB,CAPwE,CAQ1E,EACA,MAAM,OAAO,EAAwB,EAAsB,EAAc,CACnE,MAAC,EAAQ,GAAK,EAAM,SAAW,SAEnC,IAAI,CAAC,EAAQ,SAAS,EAAG,CACvB,EAAI,CAAE,GAAG,EAAO,SAAU,GAAO,MAAO,QAAS,CAAC,EAElD,MACF,CAEA,EAAI,CAAE,GAAG,EAAO,OAAQ,aAAc,MAAO,IAAK,CAAC,EACnD,GAAI,CACF,IAAM,EAAgB,MAAM,EAAQ,kBAAkB,KAAK,EAE3D,GAAI,CAAC,EAAQ,EAAG,OAEhB,GAAI,CAAC,EAAe,CAClB,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,MAAO,oBAAqB,CAAC,EAE9D,MACF,CAEA,GAAI,CAAC,EAAQ,SAAS,EAAG,CACvB,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,SAAU,GAAO,MAAO,QAAS,CAAC,EAEnE,MACF,CAEA,IAAM,EAAS,MAAM,EAAQ,OAAO,EAAgB,EAAc,CAAI,EAEtE,GAAI,CAAC,EAAQ,EAAG,OAEhB,GACE,EAAO,WAAW,SAAW,UAC5B,EAAQ,SAAW,EAAO,WAAW,UAAY,EAAQ,QAAQ,KAAK,GAEvE,MAAM,IAAI,GAEZ,EAAI,CAAE,GAAG,EAAO,OAAQ,WAAY,MAAO,IAAK,CAAC,CACnD,OAAS,EAAO,CACd,EAAK,EAAO,QAAQ,CACtB,CAjCA,CAkCF,EACA,MAAM,aAAc,CACd,CAAC,EAAQ,GAAK,EAAM,SAAW,aAEnC,EAAM,EACN,MAAM,EAAQ,YAAY,EAC5B,EACA,SAAU,CACR,EAAW,GACX,EAAQ,QAAQ,OAAO,oBAAoB,QAAS,CAAK,EACzD,EAAM,CACR,CACF,CACF,EClIM,GAAuC,CAC3C,OAAQ,UACR,MAAO,KACP,QAAS,KACT,MAAO,IACT,EAEM,IAAW,GACT,aAAiB,GAEnB,EAAM,aAAe,KAAO,EAAM,aAAe,4BAC5C,CAAE,GAAG,GAAS,OAAQ,gBAAiB,EAE5C,EAAM,aAAe,IAAY,CAAE,GAAG,GAAS,MAAO,aAAc,EAEpE,EAAM,aAAe,IAAY,CAAE,GAAG,GAAS,MAAO,cAAe,EAErE,EAAM,aAAe,IAChB,CACL,GAAG,GACH,MAAO,UACP,QAAS,OAAO,EAAM,QAAW,UAAY,EAAM,OAAO,KAAK,EAAI,EAAM,OAAS,IACpF,EAEK,CAAE,GAAG,GAAS,MAAO,QAAS,EAhBc,CAAE,GAAG,GAAS,MAAO,QAAS,EAuBtE,IAAgC,GAKvC,CACJ,IAAI,EAAQ,GACR,EAAW,GACT,EAAQ,IAAI,gBACZ,EAAQ,GAAS,CAAK,EACtB,EAAO,GAAsC,CACjD,EAAQ,EACR,EAAM,IAAI,CAAI,CAChB,EACM,MAAgB,CAAC,GAAY,CAAC,EAAM,OAAO,QAEjD,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,UAAW,EACX,MAAM,OAAO,EAAwC,CAC/C,MAAC,EAAQ,GAAK,EAAM,SAAW,cAAgB,EAAM,SAAW,cAEpE,GAAI,CAAE,GAAG,GAAS,OAAQ,YAAa,CAAC,EACxC,GAAI,CACF,IAAM,EAAS,MAAM,EAAQ,SAAS,EAAS,CAC7C,OAAQ,EAAM,OACd,UAAW,CACb,CAAC,EAEG,EAAQ,GAAG,EAAI,CAAE,GAAG,GAAS,OAAQ,aAAc,MAAO,EAAO,KAAM,CAAC,CAC9E,OAAS,EAAO,CACV,EAAQ,GAAG,EAAI,IAAQ,CAAK,CAAC,CACnC,CAVwC,CAW1C,EAEA,MAAO,CACD,EAAQ,IAAM,EAAM,SAAW,WAAa,EAAM,SAAW,mBAC/D,EAAI,EAAO,CACf,EACA,SAAU,CACR,EAAW,GACX,EAAM,MAAM,EACZ,EAAI,EAAO,CACb,CACF,CACF,ECrFM,GAAO,6DAGA,IAAwB,EAAc,IAA2C,CAC5F,GAAI,EAAK,QAAQ,OAAQ,EAAE,IAAM,mBAAqB,CAAC,GAAU,IAAW,IAC1E,MAAO,CAAE,KAAM,SAAU,IAAK,QAAS,EAEzC,IAAM,EAAU,CAAE,KAAM,UAAW,IAAK,SAAU,EAElD,GAAI,EAAO,OAAS,KAAM,OAAO,EAEjC,IAAM,EAAS,IAAI,gBAAgB,CAAM,EAEzC,GACE,CAAC,GAAG,EAAO,KAAK,CAAC,EAAE,KAAM,GAAQ,CAAC,CAAC,kBAAmB,eAAe,EAAE,SAAS,CAAG,CAAC,GACpF,EAAO,OAAO,iBAAiB,EAAE,SAAW,GAC5C,EAAO,OAAO,eAAe,EAAE,SAAW,EAE1C,OAAO,EAET,IAAM,EAAiB,EAAO,IAAI,iBAAiB,EAC7C,EAAe,EAAO,IAAI,eAAe,EAE/C,GAAI,CAAC,GAAK,KAAK,CAAc,GAAK,CAAC,GAAK,KAAK,CAAY,EAAG,OAAO,EAEnE,IAAM,EAAe,EAAe,YAAY,EAC1C,EAAa,EAAa,YAAY,EAE5C,MAAO,CACL,KAAM,QACN,IAAK,GAAG,EAAa,GAAG,IACxB,eAAgB,EAChB,aAAc,CAChB,CACF,ECpCa,IAA0B,GAA4C,CAEjF,IAAM,EAAM,mBADG,IAAI,IAAI,CAAa,EAAE,SAEhC,EAAS,OAAO,WAAW,EAC3B,EAAY,IAAI,IAChB,EAAO,IAAI,IACb,EAAW,GACX,EAAmC,KACvC,GAAI,CACE,OAAO,iBAAqB,MAAa,EAAU,IAAI,iBAAiB,CAAG,EACjF,MAAQ,CAER,CACA,IAAM,EAAW,GAAmB,CAClC,GAAI,GAAY,CAAC,GAAS,OAAO,GAAU,SAAU,OAErD,IAAM,EAAO,EAGX,YAAO,KAAK,CAAI,EAAE,KAAK,EAAE,KAAK,IAAM,2BACpC,EAAK,UAAY,GACjB,OAAO,EAAK,IAAO,UACnB,EAAK,GAAG,OAAS,IACjB,OAAO,EAAK,QAAW,UACvB,EAAK,OAAO,OAAS,IACrB,EAAK,SAAW,GACf,EAAK,QAAU,eAAiB,EAAK,QAAU,WAChD,EAAK,IAAI,EAAK,EAAE,GAMlB,CAFA,EAAK,IAAI,EAAK,EAAE,EAEZ,EAAK,KAAO,KAAK,EAAK,OAAO,EAAK,OAAO,EAAE,KAAK,EAAE,KAAM,EAE5D,IAAK,IAAM,KAAY,EAAW,EAAS,EAAK,KAAK,CAFO,CAG9D,EACM,EAAW,GAAwB,EAAQ,EAAM,IAAI,EACrD,EAAW,GAAwB,CACnC,OAAM,MAAQ,GAAO,CAAC,EAAM,UAEhC,GAAI,CACF,EAAQ,KAAK,MAAM,EAAM,QAAQ,CAAC,CACpC,MAAQ,CAER,CACF,EAKA,OAJA,GAAS,iBAAiB,UAAW,CAAO,EAExC,OAAO,OAAW,KAAa,OAAO,iBAAiB,UAAW,CAAO,EAEtE,CACL,QAAQ,EAAO,CACb,GAAI,EAAU,OAEd,IAAM,EAAO,CAAE,QAAS,EAAG,QAAO,SAAQ,GAAI,OAAO,WAAW,CAAE,EAClE,GAAI,CACF,GAAS,YAAY,CAAI,CAC3B,MAAQ,CAER,CACA,GAAI,CACF,OAAO,aAAa,QAAQ,EAAK,KAAK,UAAU,CAAI,CAAC,EACrD,OAAO,aAAa,WAAW,CAAG,CACpC,MAAQ,CAER,CACF,EACA,UAAU,EAAU,CAGlB,OAFA,EAAU,IAAI,CAAQ,MAET,CACX,EAAU,OAAO,CAAQ,CAC3B,CACF,EACA,SAAU,CACJ,IAEJ,EAAW,GACX,EAAU,MAAM,EAChB,GAAS,oBAAoB,UAAW,CAAO,EAC/C,GAAS,MAAM,EAEX,OAAO,OAAW,KAAa,OAAO,oBAAoB,UAAW,CAAO,EAClF,CACF,CACF,EC5DM,IAAY,GAChB,OAAO,GAAU,UACjB,wCAAwC,KAAK,CAAK,GAClD,EAAM,QAAU,IACZ,IAAc,GAAuC,IAAU,OAAS,IAAU,MAClF,GAAU,GACd,OAAO,OAAO,CACZ,QAAS,GACT,SACA,aAAc,OAAO,OAAO,CAAC,CAAC,EAC9B,SAAU,OAAO,OAAO,CAAC,CAAC,CAC5B,CAAC,EAGU,IACX,EACA,EACA,IACuB,CACvB,GAAI,GAAS,mBAAqB,GAAK,EAAQ,SAAS,OAAS,eAC/D,OAAO,GAAO,eAAe,EAG/B,IAAM,EAAU,IAAI,IAEpB,GAAI,CAAC,MAAM,QAAQ,CAAW,EAAG,OAAO,GAAO,kBAAkB,EAEjE,IAAK,IAAM,KAAc,EAAa,CACpC,GACE,CAAC,GACD,CAAC,IAAS,EAAW,GAAG,GACxB,EAAQ,IAAI,EAAW,GAAG,GAC1B,CAAC,MAAM,QAAQ,EAAW,MAAM,GAChC,CAAC,EAAW,OAAO,MAAM,GAAU,GACnC,IAAI,IAAI,EAAW,MAAM,EAAE,OAAS,EAAW,OAAO,QACtD,CAAC,MAAM,QAAQ,EAAW,MAAM,GAChC,CAAC,EAAW,OAAO,SAAS,MAAM,GAClC,CAAC,EAAW,OAAO,MAAO,GAAmB,IAAU,QAAU,IAAU,QAAQ,GACnF,IAAI,IAAI,EAAW,MAAM,EAAE,OAAS,EAAW,OAAO,OAEtD,OAAO,GAAO,kBAAkB,EAElC,EAAQ,IAAI,EAAW,IAAK,CAAU,CACxC,CAEA,IAAM,EAAS,IAAI,IAEnB,GAAI,CAAC,MAAM,QAAQ,EAAQ,QAAQ,YAAY,EAAG,OAAO,GAAO,kBAAkB,EAElF,IAAK,IAAM,KAAS,EAAQ,QAAQ,aAAc,CAChD,IAAM,EAAa,GAAS,EAAQ,IAAI,EAAM,GAAG,EAIjD,GAFI,CAAC,GAAc,EAAO,IAAI,EAAM,GAAG,GAEnC,EAAM,QAAU,QAAU,EAAM,QAAU,QAAU,EAAM,QAAU,SACtE,OAAO,GAAO,kBAAkB,EAGlC,GAAI,EAAM,QAAU,WACd,EAAM,QAAU,KAAM,OAAO,GAAO,kBAAkB,OAI1D,GAFI,CAAC,EAAW,OAAO,SAAS,EAAM,KAAK,IAGzC,EAAW,OAAO,OACd,CAAC,EAAW,OAAO,SAAS,EAAM,KAAkB,EACpD,EAAM,QAAU,MAEpB,OAAO,GAAO,kBAAkB,EAIpC,EAAO,IAAI,EAAM,IAAK,CAAK,CAC7B,CAEA,GACE,CAAC,GACD,OAAO,EAAa,WAAc,UAClC,CAAC,wCAAwC,KAAK,EAAa,SAAS,EAEpE,OAAO,GAAO,kBAAkB,EAGlC,IAAM,EAAM,EAAa,SAAW,OAAY,CAAC,EAAI,EAAa,OAC5D,EAAM,EAAa,SAAW,OAAY,CAAC,EAAI,EAAa,OAC5D,EAAW,EAAa,WAAa,OAAY,CAAC,EAAI,EAAa,SACnE,EAAa,GAAqD,CACtE,GAAI,CAAC,MAAM,QAAQ,CAAK,EAAG,MAAO,GAElC,IAAM,EAAO,IAAI,IAEjB,OAAO,EAAM,MAAO,GAAS,CAC3B,IAAM,EAAa,GAAQ,EAAQ,IAAI,EAAK,GAAG,EAM/C,GAJI,CAAC,GAAe,EAAK,QAAU,QAAU,EAAK,QAAU,UAExD,CAAC,EAAW,OAAO,SAAS,EAAK,KAAK,GAEtC,EAAK,OAAS,MAAQ,CAAC,EAAW,OAAO,SAAS,EAAK,KAAK,EAAG,MAAO,GAE1E,IAAM,EAAM,KAAK,UAAU,CAAC,EAAK,IAAK,EAAK,MAAO,EAAK,OAAS,IAAI,CAAC,EAMrE,OAJI,EAAK,IAAI,CAAG,EAAU,IAE1B,EAAK,IAAI,CAAG,EAEL,GACT,CAAC,CACH,EAYA,GATE,CAAC,EAAU,CAAG,GACd,CAAC,EAAU,CAAQ,GACnB,CAAC,MAAM,QAAQ,CAAG,GAClB,CAAC,EAAI,MAAO,GAAU,MAAM,QAAQ,CAAK,GAAK,EAAM,OAAS,GAAK,EAAU,CAAK,CAAC,GAMhF,CAAC,EAAI,QAAU,CAAC,EAAI,OAAQ,OAAO,GAAO,kBAAkB,EAEhE,IAAM,EAAS,GAAgE,CAC7E,IAAM,EAAQ,EAAO,IAAI,EAAK,GAAG,EAcjC,MAZI,CAAC,GAAS,EAAM,QAAU,QAE1B,EAAM,QAAU,EAAK,OAAS,EAAE,EAAM,QAAU,UAAY,EAAK,QAAU,SAI7E,EAAK,OAAS,MACd,EAAM,QAAU,EAAK,OACrB,EAAE,EAAM,QAAU,OAAS,EAAK,QAAU,OAEnC,KAEF,OAAO,OAAO,CAAE,IAAK,EAAK,IAAK,MAAO,EAAK,MAAO,MAAO,EAAK,OAAS,EAAM,KAAM,CAAC,CAC7F,EAEM,EAAe,EAAI,IAAK,GAC5B,EAAM,IAAI,CAAK,EAAE,OAAQ,GAAU,IAAU,IAAI,CACnD,EAMA,MAJI,CAAC,EAAI,MAAO,GAAS,EAAM,CAAI,IAAM,IAAI,GAAK,EAAa,KAAM,GAAU,CAAC,EAAM,MAAM,EACnF,GAAO,QAAQ,EAGjB,OAAO,OAAO,CACnB,QAAS,GACT,OAAQ,UACR,aAAc,OAAO,OAAO,EAAa,IAAK,GAAU,OAAO,OAAO,CAAK,CAAC,CAAC,EAC7E,SAAU,OAAO,OACf,EAAS,IAAK,GACZ,OAAO,OAAO,CACZ,YAAa,OAAO,OAAO,CAAE,GAAG,CAAK,CAAC,EACtC,MAAO,EAAM,CAAI,CACnB,CAAC,CACH,CACF,CACF,CAAC,CACH,ECjMM,GAAO,OAAO,OAAO,CAAC,MAAM,CAAU,EACtC,GAAS,OAAO,OAAO,CAAC,OAAQ,QAAQ,CAAU,EAClD,GAAW,OAAO,OAAO,CAAC,CAAU,EACpC,GAAS,OAAO,OAAO,CAAC,MAAO,KAAK,CAAU,EAC9C,IAAM,OAAO,OAAO,CAAC,KAAK,CAAU,EAkD7B,IAA+D,OAAO,OACjF,CA/CA,CAAE,IAAK,aAAc,OAAQ,GAAQ,OAAQ,EAAS,EACtD,CAAE,IAAK,gBAAiB,OAAQ,GAAQ,OAAQ,EAAS,EACzD,CAAE,IAAK,mBAAoB,OAAQ,GAAQ,OAAQ,EAAS,EAC5D,CAAE,IAAK,aAAc,OAAQ,GAAQ,OAAQ,EAAS,EACtD,CAAE,IAAK,oBAAqB,OAAQ,GAAQ,OAAQ,EAAS,EAC7D,CAAE,IAAK,+BAAgC,OAAQ,GAAQ,OAAQ,EAAS,EACxE,CAAE,IAAK,eAAgB,OAAQ,GAAQ,OAAQ,EAAS,EACxD,CAAE,IAAK,8BAA+B,OAAQ,GAAQ,OAAQ,EAAS,EACvE,CAAE,IAAK,sBAAuB,OAAQ,GAAQ,OAAQ,EAAS,EAC/D,CAAE,IAAK,gBAAiB,OAAQ,GAAM,OAAQ,EAAS,EACvD,CAAE,IAAK,iBAAkB,OAAQ,GAAM,OAAQ,EAAS,EACxD,CAAE,IAAK,iBAAkB,OAAQ,GAAM,OAAQ,EAAS,EACxD,CAAE,IAAK,qBAAsB,OAAQ,GAAQ,OAAQ,EAAO,EAC5D,CAAE,IAAK,6BAA8B,OAAQ,GAAQ,OAAQ,EAAO,EACpE,CAAE,IAAK,qBAAsB,OAAQ,GAAM,OAAQ,EAAS,EAC5D,CAAE,IAAK,8BAA+B,OAAQ,GAAQ,OAAQ,EAAS,EACvE,CAAE,IAAK,2BAA4B,OAAQ,GAAQ,OAAQ,EAAS,EACpE,CAAE,IAAK,6BAA8B,OAAQ,GAAQ,OAAQ,EAAS,EACtE,CAAE,IAAK,0BAA2B,OAAQ,GAAQ,OAAQ,EAAS,EACnE,CAAE,IAAK,qBAAsB,OAAQ,GAAQ,OAAQ,GAAI,EACzD,CAAE,IAAK,sBAAuB,OAAQ,GAAQ,OAAQ,EAAS,CA2B/D,EAAY,IAAK,GAAe,OAAO,OAAO,CAAU,CAAC,CAC3D,EC7BM,OAAyB,GACzB,OAAwC,KAEjC,GAAkC,OAAO,OAAO,CAC3D,QAAS,OACT,aAAc,KACd,OAAQ,GACR,aAAc,EAChB,CAAC,EAGY,KACX,EACA,EACA,EAAoB,KAAK,MACL,CACpB,GAAI,CAAC,GAAW,EAAQ,mBAAqB,GAAK,EAAQ,yBACxD,OAAO,GAET,IAAM,EAAU,EAAQ,QAExB,GAAI,EAAQ,OAAS,WAInB,OAHI,EAAQ,OAAS,0BAA4B,EAAQ,OAAS,gBACzD,GAEF,OAAO,OAAO,CACnB,QAAS,WACT,aAAc,EAAQ,KACtB,OAAQ,GACR,aAAc,EAChB,CAAC,EAGH,GAAI,EAAQ,OAAS,eAAgB,OAAO,GAE5C,IAAM,EAAY,IAAI,IAChB,MACJ,CAAC,EAAQ,YAAc,KAAK,MAAM,EAAQ,WAAW,UAAU,EAAI,EAAI,EACnE,GACJ,EACA,EAAyB,OACzB,IACY,CACZ,GAAI,CAAC,EAAiB,EAAG,MAAO,GAEhC,IAAM,EAAQ,GAAS,OAAS,KAC1B,EAAW,KAAK,UAAU,CAAC,EAAK,EAAO,CAAK,CAAC,EAC7C,EAAS,EAAU,IAAI,CAAQ,EAErC,GAAI,IAAW,OAAW,OAAO,EAEjC,IAAM,EAAU,GAAqB,EAAS,EAAa,CACzD,UAAW,qBACX,OAAQ,CAAC,CAAE,MAAK,QAAO,OAAM,CAAC,CAChC,CAAC,EAAE,QAGH,OAFA,EAAU,IAAI,EAAU,CAAO,EAExB,CACT,EAQA,OAAO,OAAO,OAAO,CACnB,QAAS,eACT,aAAc,KACd,SACA,cAVoB,EAAa,EAAyB,SACtD,EAAO,EAAK,EAAO,CAAE,MAAO,KAAM,CAAC,EAAU,MAE1C,EAAO,EAAK,EAAO,CAAE,MAAO,KAAM,CAAC,EAAI,MAAQ,IAQxD,CAAC,CACH,EAGa,IACX,EACA,EAAoC,CAAC,wBAAwB,IAE7D,EAAY,UAAY,YACxB,EAAY,eAAiB,MAC7B,EAAM,SAAS,EAAY,YAAY,ECzG5B,KACX,EACA,EACA,EACA,IAGE,CAAC,GACD,EAAQ,mBAAqB,GAC7B,EAAQ,0BACR,CAAC,CAAC,OAAQ,QAAQ,EAAE,SAAS,CAAK,GAClC,CAAC,CAAC,cAAe,QAAS,OAAO,EAAE,SAAS,CAAI,EAEzC,GAEL,IAAS,QACJ,EAAQ,QAAQ,OAAS,YAAc,EAAQ,QAAQ,OAAS,yBAGvE,EAAQ,QAAQ,OAAS,gBACxB,EAAQ,QAAQ,YAAc,KAAK,MAAM,EAAQ,QAAQ,WAAW,UAAU,GAAK,KAAK,IAAI,EAEtF,GAEF,GAAqB,EAAS,EAAS,CAC5C,UAAW,QAAQ,EAAK,GAAG,IAC3B,OAAQ,CAAC,CAAE,IAAK,QAAQ,IAAQ,OAAM,CAAC,CACzC,CAAC,EAAE,QCCC,QAAsB,CAC1B,OAAQ,OACR,KAAM,KACN,YAAa,CAAC,EACd,MAAO,CAAC,EACR,MAAO,CAAC,EACR,YAAa,KACb,OAAQ,KACR,MAAO,KACP,MAAO,EACT,GAGa,IAAgC,GAOvC,CACJ,IAAM,EAAU,GAAoB,EAAQ,OAAO,EAC7C,EAAU,EAAQ,QAAQ,eAEhC,GACE,EAAQ,aAAe,EAAQ,gBAAgB,qBAC/C,EAAQ,mBAAqB,EAAQ,gBAAgB,0BAErD,MAAU,UAAU,4CAA4C,EAElE,IAAI,EAAQ,GAAM,EACZ,EAAQ,GAAS,CAAK,EACxB,EAAa,EACb,EAAW,GACX,EAAc,GACZ,EAAO,GAAgB,CAC3B,EAAQ,EACR,EAAM,IAAI,CAAI,CAChB,EACM,MAAmB,CACvB,EAAc,GACd,GAAc,EACd,EAAI,CAAE,GAAG,GAAM,EAAG,OAAQ,aAAc,CAAC,CAC3C,EACM,MAAgB,CAAC,GAAY,CAAC,GAAe,CAAC,EAAQ,OAAO,SAAW,EAAQ,UAAU,EAC1F,GAAW,EAAkC,IACjD,EAAQ,GAAK,IAA6B,EAAS,EAAQ,YAAa,EAAM,CAAK,EAC/E,MACJ,EAAQ,QAAQ,OAAS,eACrB,EAAQ,QAAQ,qBACT,CACL,MAAU,MAAM,+BAA+B,CACjD,GAAG,EACH,GAAiB,EAAkC,IAA6B,CACpF,GAAI,CAAC,EAAQ,EAAM,CAAK,EACtB,MAAM,IAAI,aAAa,iCAAkC,iBAAiB,CAC9E,EACM,EAAW,GAAmB,CAClC,IAAM,EAAU,GAAmC,WAEnD,GAAI,CAAC,EAAQ,GAAK,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,GAAU,CAAC,EAAG,CACvD,EAAW,EAEX,MACF,CAEA,EAAI,CACF,GAAG,EACH,OAAQ,QACR,MAAO,yDACP,MAAO,EACT,CAAC,CACH,EACA,EAAQ,OAAO,iBAAiB,QAAS,CAAU,EACnD,IAAM,EAAO,MAAO,EAAkC,EAAyB,OAAS,CACtF,EAAc,EAAM,MAAM,EAC1B,IAAM,EAAS,EAAE,EACjB,EAAI,CAAE,GAAG,GAAM,EAAG,OAAM,OAAQ,SAAU,CAAC,EAC3C,GAAI,CACF,GAAI,IAAS,cAAe,CAC1B,IAAM,EAAS,MAAM,EAAQ,IAAI,YAC/B,EAAa,EACb,CAAE,MAAO,GAAI,SAAU,CAAQ,EAC/B,CACF,EACM,EAAQ,EAAQ,QAAS,MAAM,GAChC,MAAM,EAAQ,IAAI,MAAM,EAAa,EAAG,CAAO,GAAG,MACnD,CAAC,EAED,IAAW,GAAc,EAAQ,GACnC,EAAI,CACF,GAAG,EACH,OAAQ,QACR,YAAa,EAAO,MACpB,QACA,YAAa,EAAO,aACtB,CAAC,CACL,MAAO,GAAI,IAAS,QAAS,CAC3B,IAAM,EAAS,MAAM,EAAQ,IAAI,MAAM,EAAa,EAAG,CAAO,EAE1D,IAAW,GAAc,EAAQ,GACnC,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,MAAO,EAAO,KAAM,CAAC,CAC1D,KAAO,CACL,IAAM,EAAS,MAAM,EAAQ,IAAI,MAAM,CAAE,MAAO,GAAI,SAAU,CAAQ,EAAG,CAAO,EAE5E,IAAW,GAAc,EAAQ,GACnC,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,MAAO,EAAO,MAAO,YAAa,EAAO,aAAc,CAAC,CAC7F,CACF,OAAS,EAAO,CACV,IAAW,GAAY,EAAQ,CAAK,CAC1C,CACF,EACM,EAAO,KAAO,IAAe,CACjC,IAAM,EAAO,EAAM,KAEnB,GAAI,CAAC,GAAQ,EAAM,SAAW,QAAS,OAEvC,EAAc,EAAM,MAAM,EAC1B,IAAM,EAAS,EAAE,EACjB,EAAI,CAAE,GAAG,EAAO,OAAQ,KAAM,MAAO,KAAM,MAAO,GAAO,OAAQ,SAAU,CAAC,EAC5E,GAAI,CACF,IAAM,EACJ,IAAS,cACL,CAAE,OAAM,OAAQ,MAAM,EAAQ,IAAI,WAAW,EAAa,EAAG,EAAI,CAAO,CAAE,EAC1E,IAAS,QACP,CAAE,OAAM,OAAQ,MAAM,EAAQ,IAAI,KAAK,EAAa,EAAG,EAAI,CAAO,CAAE,EACpE,CAAE,OAAM,OAAQ,MAAM,EAAQ,IAAI,gBAAgB,EAAI,CAAO,CAAE,EAEnE,IAAW,GAAc,EAAQ,GAAG,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,QAAO,CAAC,CACnF,OAAS,EAAO,CACV,IAAW,GAAY,EAAQ,CAAK,CAC1C,CACF,EACM,EAAO,MACX,EACA,EACA,IACqB,CAGrB,GAFA,EAAc,EAAM,QAAQ,EAExB,EAAM,SAAW,SAAW,EAAM,QAAQ,OAAS,EAAM,MAAO,GAEpE,IAAM,EAAS,EAAE,EACb,EAAa,GACb,EAAgB,GACpB,EAAI,CAAE,GAAG,EAAO,OAAQ,SAAU,MAAO,KAAM,MAAO,EAAM,CAAC,EAC7D,GAAI,CACF,IAAM,EAAY,MAAM,EAAQ,KAAO,IAAa,CAIlD,GAHI,CAAC,GAAc,IAAW,GAAc,CAAC,EAAQ,GAGjD,CAAE,MAAM,EAAQ,SAAS,aAAa,EAAU,EAAQ,OAAO,EACjE,MAAM,IAAI,aAAa,oCAAqC,YAAY,EAI1E,MAFA,GAAgB,GAAc,IAAW,GAAc,EAAQ,EAExD,IACT,CAAC,EAGD,GAFA,EAAa,GAET,IAAW,GAAc,CAAC,EAAQ,EAAG,MAAO,GAEhD,GAAI,CAAC,GAAa,CAAC,GAAiB,CAAC,EAAQ,SAAS,SAAS,EAAQ,OAAO,EAG5E,OAFA,EAAI,CAAE,GAAG,EAAO,OAAQ,OAAQ,CAAC,EAE1B,GAGT,IAAM,EAAS,MAAM,EAAO,EAS5B,OAPI,IAAW,GAAc,CAAC,EAAQ,EAAU,IAE5C,EAAO,SACT,EAAW,EACX,MAAM,EAAQ,mBAAmB,GAC5B,EAAI,CAAE,GAAG,EAAO,OAAQ,QAAS,OAAQ,KAAM,MAAO,EAAK,CAAC,EAE5D,GACT,OAAS,EAAO,CAGd,OAFI,IAAW,GAAY,EAAQ,CAAK,EAEjC,EACT,QAAU,CACR,EAAa,EACf,CACF,EAEA,MAAO,CACL,MAAO,GAAS,CAAK,EACrB,YAAa,EAAQ,YACrB,UACA,OACA,OACA,OAAO,EAAyB,CAC9B,EAAc,EAAM,QAAQ,EAExB,IAAM,SAAW,SAAW,EAAM,OAAS,IAE/C,EAAI,CAAE,GAAG,EAAO,OAAQ,CAAE,OAAM,OAAQ,IAAK,EAAG,MAAO,KAAM,MAAO,EAAM,CAAC,CAC7E,EACA,OAAQ,CACF,EAAM,SAAW,SAAS,EAAI,CAAE,GAAG,EAAO,OAAQ,KAAM,MAAO,IAAK,CAAC,CAC3E,EACA,eACE,EACA,EACA,CACA,IAAM,EAAS,EAAM,OAErB,GAAI,GAAQ,OAAS,cAAe,OAAO,QAAQ,QAAQ,EAAK,EAEhE,IAAM,EAAU,CAAE,GAAG,EAAS,kBAAmB,EAAO,OAAO,QAAS,EAExE,OAAO,EACL,kBACM,EAAQ,IAAI,iBAAiB,EAAa,EAAG,EAAO,OAAO,GAAI,EAAS,CAAO,EACrF,CACF,CACF,EACA,SAAS,EAAwC,EAA2B,CAC1E,IAAM,EAAS,EAAM,OAErB,GAAI,GAAQ,OAAS,SAAY,EAAO,QAAU,EAAO,OAAO,OAAS,SACvE,OAAO,QAAQ,QAAQ,EAAK,EAE9B,IAAM,EAAU,CAAE,GAAG,EAAS,OAAQ,EAAQ,OAAO,IAAK,IAAW,CAAE,GAAG,CAAM,EAAE,CAAE,EAEpF,OAAO,EACL,YAEE,EAAO,OACH,EAAQ,IAAI,YACV,EAAa,EACb,EAAO,OAAO,GACd,CAAE,GAAG,EAAS,kBAAmB,EAAO,OAAO,QAAS,EACxD,CACF,EACA,EAAQ,IAAI,WAAW,EAAa,EAAG,EAAS,CAAO,EAC7D,CACF,CACF,EACA,UACE,EAGA,EACA,CACA,IAAM,EAAS,EAAM,OAErB,GAAI,GAAQ,OAAS,QAAS,OAAO,QAAQ,QAAQ,EAAK,EAE1D,IAAM,EAAU,CAAE,GAAG,CAAQ,EAE7B,OAAO,EACL,YAEE,EAAO,OACH,EAAQ,IAAI,YACV,EAAO,OAAO,GACd,CACE,KAAM,EAAQ,KACd,OAAQ,WAAY,EAAU,EAAQ,OAAS,EAAO,OAAO,OAC7D,kBAAmB,EAAO,OAAO,QACnC,EACA,CACF,EACA,EAAQ,IAAI,YAAY,EAAuC,CAAO,EAC5E,CACF,CACF,EACA,SAAU,CACR,EAAW,GACX,EAAQ,OAAO,oBAAoB,QAAS,CAAU,EACtD,EAAW,CACb,CACF,CACF,EClTa,IAAmC,GAC9C,IAAI,GAAe,+BAA+B,EAAO,SAAS,ECY9D,GAA+E,GAAS,IAAI,EAErF,IAA6B,GAC7B,IAA6B,GAAQ,GAAkC,GAClF,EAAQ,CACV,EAcM,IAAsB,GAAyB,CACnD,GAAI,OAAO,WAAe,KAAe,CAAC,WAAY,MAAO,GAO7D,IAAM,EAJJ,WAGA,SACmB,MAAM,GAE3B,MAAO,CAAC,IAAK,OAAQ,MAAO,IAAI,EAAE,SAChC,OAAO,GAAO,EAAE,EACb,KAAK,EACL,YAAY,CACjB,CACF,EAEM,GAAgB,IAAI,IACpB,IAA2B,GAA2B,CAG1D,GAFI,OAAO,OAAW,KAElB,CAAC,GAAW,OAAO,GAAY,SAAU,OAE7C,IAAM,EAAO,EACP,EACJ,OAAO,EAAK,cAAiB,SACzB,EAAK,aAAa,KAAK,EACvB,OAAO,EAAK,cAAiB,SAC3B,EAAK,aAAa,KAAK,EACvB,GAER,GAAI,CAAC,EAAS,OAEd,IAAM,EAAiB,OAAO,EAAK,gBAAmB,SAAW,EAAK,eAAe,KAAK,EAAI,GACxF,EAAwB,EAAiB,EAAe,YAAY,EAAI,UACxE,EACJ,OAAO,EAAK,iBAAoB,SAAW,EAAK,gBAAgB,KAAK,EAAI,GACrE,EAAyB,EAAkB,EAAgB,YAAY,EAAI,SAE3E,EAAW,OAAO,EAAK,WAAc,SAAW,EAAK,UAAU,KAAK,EAAI,GAExE,EAAoB,EAAQ,YAAY,EACxC,EAAW,EACb,GAAG,EAAkB,IAAI,EAAuB,IAAI,EAAsB,WAAW,IACrF,GAAG,EAAkB,IAAI,EAAuB,IAAI,EAAsB,QAExE,EAAY,OAGlB,EAAU,iCAAmC,EAAU,kCAAoC,CAAC,EAC5F,EAAU,iCAAiC,GAAY,EACvD,GAAc,IAAI,EAAU,CAAO,CACrC,EAEM,IAAiC,GAA2C,CAChF,IAAM,GAAQ,GAAY,IAAI,YAAY,EAY1C,OAVK,EAED,EAAK,SAAS,WAAW,EACpB,oDAGL,EAAK,SAAS,mBAAmB,EAC5B,uCAGF,mCAVW,IAWpB,EAEM,IAAiC,MACrC,EACA,EAAgC,KAChC,EACA,MAAiC,KACc,CAC/C,IAAM,GAAQ,IAAc,IAAI,QAAQ,OAAQ,EAAE,EAC5C,EAAS,IAAI,gBACb,EAAwB,EAAY,KAAK,EAE/C,GAAI,CAAC,EAAuB,OAAO,KAEnC,EAAO,IAAI,eAAgB,CAAqB,EAChD,IAAM,GAAO,GAAkB,IAAI,KAAK,EAEpC,GAAK,EAAO,IAAI,kBAAmB,CAAG,EAE1C,IAAM,EAAM,GAAG,EAAK,wBAAwB,EAAO,SAAS,IAC5D,GAAI,CACF,IAAM,EAAM,MAAM,MAAM,EAAK,CAAE,YAAa,UAAW,QAAO,CAAC,EAE/D,GAAI,CAAC,EAAI,GAGP,OAFA,QAAQ,KAAK,sCAAuC,EAAI,MAAM,EAEvD,KAGT,IAAM,EAAQ,MAAM,EAAI,KAAK,EAE7B,GAAI,CAAC,EAAU,GAAK,GAAQ,QAAS,OAAO,KAE5C,IAAM,EAAiB,EAAK,UAAY,KAClC,EACJ,EAAK,sBAAwB,IAA2B,EAAgB,IAAI,EAC9E,IAAwB,CACtB,GAAG,EACH,qBAAsB,CACxB,CAAC,EAED,IAAM,EAA0B,IAC9B,OAAO,OAAW,IAAc,KAAO,OAAO,SAAS,QACzD,EACM,EACJ,EAAK,UAAU,KAAK,GACpB,IAAqB,OAAO,OAAW,IAAc,KAAO,OAAO,SAAS,SAAU,CACpF,gBAAiB,CACnB,CAAC,EACG,EAAkB,EAAK,cAAc,KAAK,GAAK,EAAK,cAAc,KAAK,GAAK,KAIlF,MAFI,CAAC,GAAmB,CAAC,EAAgB,KAElC,CACL,YAAa,EACb,eAAgB,EAAK,iBAAmB,GAAO,KAC/C,UAAW,EAAK,YAAc,KAC9B,QAAS,EACT,UACA,sBACA,cAAe,EAAK,gBAAkB,IACxC,CACF,OAAS,EAAK,CAKZ,MAJI,CAAC,EAAU,GAAK,GAAQ,SAE5B,QAAQ,KAAK,qCAAsC,CAAG,EAFV,IAK9C,CACF,EAOM,GAAwB,cACxB,GAA4B,cAC5B,GAAiC,IAAI,IACrC,GAAmC,IAAI,IAIzC,GAA+B,GAAG,GAA0B,IAAI,KAChE,GAAmB,EACnB,GAAc,IAAI,gBAEhB,IAA6B,IAC7B,IAA8B,IAC9B,IACG,IAAmB,aAAa,EAGnC,IAAiB,IACD,GAAkB,IAAI,KAAK,EAAE,YAE1C,GAAc,GAGjB,KACJ,EACA,IAIO,GAFmB,EAAY,KAAK,EAAE,YAAY,GAAK,GAElC,IAAI,IAAc,CAAc,IAGxD,IACJ,EACA,IACS,CACL,IAAa,IAEjB,GAAgC,IAAI,CAAG,CACzC,EAEa,IAAiC,MAC5C,EACA,IAC+C,CAC/C,GAAI,IAGF,OAFA,GAAgC,IAAI,IAAI,EAEjC,KAGT,IAAM,GAAyB,GAAS,aAAe,IAAI,KAAK,EAEhE,GAAI,CAAC,EAGH,OAFA,GAAgC,IAAI,IAAI,EAEjC,KAGT,IAAM,GAA4B,GAAkB,IAAI,KAAK,GAAK,KAC5D,EAAW,IAAiB,EAA0B,CAAqB,EAC3E,EAAmB,GACzB,GAA+B,EAE3B,IAAqB,GAEvB,GAAgC,IAAI,IAAI,EAG1C,IAAM,EAAM,KAAK,IAAI,EACf,EAAS,GAA+B,IAAI,CAAQ,EAE1D,GAAI,EAAQ,CACV,IAAM,EAAM,EAAO,MAAQ,IAA6B,IAExD,GAAI,EAAM,EAAO,SAAW,EAG1B,OAFA,GAAyB,EAAU,EAAO,KAAK,EAExC,EAAO,KAElB,CAEA,IAAM,EAAiB,GAAiC,IAAI,CAAQ,EAEpE,GAAI,EAAgB,OAAO,EAE3B,IAAM,EAAa,GACb,EAAS,GAAY,OACrB,MAAkB,IAAe,IAAoB,CAAC,EAAO,QAC7D,GAAe,SAAwD,CAC3E,IAAM,EAAM,MAAM,IAChB,EACA,EACA,EACA,CACF,EAUA,OARK,EAAU,GAEf,GAA+B,IAAI,EAAU,CAC3C,MAAO,EACP,SAAU,KAAK,IAAI,CACrB,CAAC,EACD,GAAyB,EAAU,CAAG,EAE/B,GARkB,IAS3B,GAAG,EACA,MAAO,GACD,EAAU,GAEf,QAAQ,KAAK,qCAAsC,CAAG,EACtD,GAA+B,IAAI,EAAU,CAC3C,MAAO,KACP,SAAU,KAAK,IAAI,CACrB,CAAC,EACD,GAAyB,EAAU,IAAI,EAEhC,MATkB,IAU1B,EACA,YAAc,CACT,EAAU,GAAG,GAAiC,OAAO,CAAQ,CACnE,CAAC,EAIH,OAFA,GAAiC,IAAI,EAAU,CAAW,EAEnD,CACT,EAEa,QAAqC,CAShD,GARA,IAAoB,EACpB,GAAY,MAAM,EAClB,GAAc,IAAI,gBAClB,GAAgC,IAAI,IAAI,EACxC,GAA+B,GAAG,GAA0B,IAAI,KAChE,GAA+B,MAAM,EACrC,GAAiC,MAAM,EAEnC,OAAO,OAAW,IAAa,CACjC,IAAM,EACJ,OACA,iCACF,IAAK,GAAM,CAAC,EAAK,KAAU,GACrB,IAAU,KAAS,GAAO,OAAO,EAAQ,EAEjD,CAEA,GAAc,MAAM,CACtB,ECnUa,IAAa,GAA4B,CAAC,CAAC,EAG3C,IAAiB,GAA6B,CACzD,IAAW,IAAI,CAAK,CACtB,ECSa,IAAiB,GAAgC,IAAI,EAErD,IAAqB,GAA0C,CAC1E,IAAe,IAAI,CAAQ,CAC7B,ECqBa,GAAuB,GAAsC,IAAI,EAiDjE,KACX,EACA,EAAoC,CAAC,IAC5B,CACT,GAAI,CAAC,EAAK,CACR,GAAqB,IAAI,IAAI,EAE7B,MACF,CAEA,IAAM,EAAU,GAAI,EAAoB,EAEpC,GAAS,MAAQ,IAEjB,EAAQ,gBAAkB,EAAQ,iBAAmB,EAAQ,gBAE7D,EAAQ,eAAiB,EAAQ,gBAAkB,EAAQ,eAE3D,EAAQ,SAAW,EAAQ,UAAY,EAAQ,SAEnD,GAAqB,IAAI,IAAI,EAC/B,EC3Fa,QAAyB,CACpC,IAAwB,EACxB,IAAuB,EACvB,IAAuB,EACvB,IAAmB,EAEnB,GAAc,EACd,IAAK,IAAM,KAAY,GAAI,EAAS,EAAG,GAAqB,EAAU,EAAK,EAC3E,GAAc,IAAI,CAAC,CAAC,EACpB,IAAkB,IAAI,IAAI,EAC1B,IAAoB,IAAI,IAAI,EAC5B,IAAa,IAAI,CAAC,CAAC,EACnB,IAAc,CAAC,CAAC,EAChB,IAA0B,EAC1B,IAAkB,IAAI,EACtB,IAAsC,CACxC,ECYM,IAAa,OAAO,sBAAsB,EAC1C,IAAY,OAAO,6BAA6B,EAClD,GAA4B,KAO5B,GAAyC,KAGhC,IAAqB,GAQ5B,CACJ,IAAM,EAAQ,CAAC,EACT,EAAQ,GAAS,CAAC,EAClB,EAAa,GAAS,CAAC,EACvB,EAAgB,GAAS,EAAI,EAC7B,EAAoB,GAAS,EAAK,EAClC,EAAe,GAAS,EAAK,EAC7B,EAAkB,GAAsC,IAAI,EAC9D,EAAa,EACb,EAAkB,EAClB,EAAa,GACb,EAAW,GACX,EAAU,GACV,EAAqC,KACrC,EAAqC,KACrC,EAAa,GACb,EAA6C,KAC3C,MAAiB,GAAW,CAAC,GAAY,KAAe,EACxD,MAAsB,CAC1B,EAAgB,IAAI,IAAI,EAEpB,EAAS,GAAG,GAAW,QAAQ,aAAa,CAClD,EACM,MAAwB,CACxB,EAAS,GAAG,GAAW,QAAQ,SAAS,CAC9C,EACM,EAAS,IAAoB,CACjC,IAAK,EAAQ,IACb,gBAAiB,EACjB,kBAAmB,EACnB,aAAa,EAAQ,CACf,IAAW,UAAS,EAAc,MAEtC,GAAc,EACd,EAAQ,eAAe,EACvB,EAAM,OAAQ,GAAU,EAAQ,CAAC,EAE7B,IAAW,SAAS,EAAW,OAAQ,GAAU,EAAQ,CAAC,EAE1D,EAAS,GAAG,IAAiB,CACnC,CACF,CAAC,EACK,EAAc,EAAO,MAAM,UAAW,GAAU,CAChD,EAAM,UAAS,EAAc,EAAM,QACzC,CAAC,EACK,EAAQ,IAAmB,CAC/B,IAAK,EAAQ,IACb,SACA,8BAAiC,EAAQ,wBAAwB,GAAG,kBAAoB,KACxF,gBAAiB,EACjB,kBAAmB,CACrB,CAAC,EACK,EAAW,EAAQ,YACrB,IAAsB,CACpB,IAAK,EAAQ,YACb,YAAa,CACX,EAAM,MAAM,EACZ,EAAO,WAAW,QAAQ,EAC1B,EAAc,KACd,EAAQ,qBAAqB,EAC7B,EAAc,EACd,EAAgB,CAClB,CACF,CAAC,EACD,KACE,EAAc,GAAsC,CACxD,GAAmB,EACnB,EAAkB,IAAI,EAAK,EAC3B,EAAc,IAAI,EAAK,EACvB,GAAU,MAAM,EAChB,EAAa,IAAI,EAAK,EACtB,EAAM,MAAM,EACZ,EAAO,WAAW,CAAM,CAC1B,EACM,EAAY,SAAY,CAC5B,GAAI,CAAC,EAAS,GAAK,GAAc,GAAI,CAAY,EAAG,CAClD,EAAc,IAAI,EAAK,EAEvB,MACF,CAEA,IAAM,EAAS,EAAE,EACX,EAAmB,EAAQ,wBAAwB,GAAK,KAE1D,GAAkB,gBAAgB,KAAK,GAAG,EAAkB,IAAI,EAAI,EAExE,EAAc,IAAI,EAAI,EACtB,GAAI,CACF,EAAM,MAAM,EACZ,IAAM,EAAU,EAAO,QAAQ,EACzB,EAAW,EAEjB,GAAI,MAAM,EAAS,CACjB,GAAI,CACF,IAAM,EAAY,EAAQ,wBAAwB,GAAK,EACjD,EAAgB,GAAI,EAAO,KAAK,EAAE,QAGtC,EAAS,GACT,GAAW,gBAAgB,KAAK,GAChC,IACC,EAAc,QAAQ,OAAS,gBAC9B,EAAc,QAAQ,gBAAgB,YAAY,IAChD,EAAU,eAAe,KAAK,EAAE,YAAY,IAEhD,MAAM,EAAO,qBAAqB,CAAS,CAE/C,QAAU,CACJ,IAAW,GAAiB,EAAkB,IAAI,EAAK,CAC7D,CAEA,MACF,CAIA,GAFI,IAAW,GAAiB,EAAkB,IAAI,EAAK,EAGzD,CAAC,EAAS,GACV,IAAe,EAAW,GAC1B,GAAI,EAAO,KAAK,EAAE,QAAU,kBAE5B,OAEF,MAAM,EAAM,OAAO,EAEf,EAAS,GAAK,GAAI,EAAO,KAAK,EAAE,QAAU,mBAAmB,EAAM,MAAM,CAC/E,QAAU,CACJ,IAAW,IACb,EAAkB,IAAI,EAAK,EAC3B,EAAc,IAAI,EAAK,EAE3B,CACF,EACM,MAAe,CACf,CAAC,EAAS,GAAK,IAEnB,EAAW,WAAW,EACtB,EAAe,EACjB,EACM,EAA0B,SAAY,CAC1C,IAAI,EAAwB,KACtB,EAAU,MAAM,EAAO,QAAQ,CACnC,mBAAoB,CACd,CAAC,EAAS,GAAK,GAAc,GAAI,CAAY,IAEjD,EAAS,EAAE,EACX,EAAc,IAAI,EAAI,EACxB,CACF,CAAC,EACD,GAAI,CACF,GACE,IAAY,UACZ,CAAC,EAAS,GACV,GACA,GAAI,CAAY,GAChB,GAAI,EAAO,KAAK,EAAE,QAAU,kBAE5B,OAEE,IAAW,OACb,EAAS,EAAE,EACX,EAAc,IAAI,EAAI,GAGxB,MAAM,EAAM,OAAO,EAEf,EAAS,GAAK,GAAI,EAAO,KAAK,EAAE,QAAU,mBAAmB,EAAM,MAAM,CAC/E,QAAU,CACJ,IAAW,MAAQ,IAAW,GAAiB,EAAc,IAAI,EAAK,CAC5E,CACF,EACM,MAAmB,CACvB,GAAI,CAAC,EAAS,GAAK,EAAY,OAE/B,GAAI,GAAI,CAAY,EAAG,CACrB,GAAU,OAAO,EAEjB,MACF,CAEA,IAAM,EAAU,GAAI,EAAO,KAAK,EAE5B,QAAI,CAAa,GAAK,EAAQ,SAAW,WAAa,EAAQ,SAAW,cAEjD,GAAC,cAAe,YAAa,YAAY,EAAE,SACrE,GAAI,EAAM,KAAK,EAAE,MAIf,IAAwB,EAAQ,SAAW,QAAU,EAAQ,QAAU,oBAG3E,IAAI,EAAQ,SAAW,YAAa,CAClC,EAAO,uBAAuB,EAE9B,MACF,CAEA,IAAK,EAAQ,SAAW,SAAW,EAAQ,SAAW,oBAAsB,EAAQ,QAAS,CAC3F,EAA6B,EAE7B,MACF,CAEA,EAAO,CARP,CASF,EACM,MAAmB,CACnB,SAAS,kBAAoB,WAAW,EAAW,CACzD,EACM,OAAiB,CAChB,EAAS,IAEd,EAAa,GACb,EAAW,WAAW,EACxB,EACM,GAAY,GAA+B,CAC3C,MAAC,EAAS,GAAK,GAEnB,IAAI,EAAM,WAAa,EAAY,CACjC,EAAa,GACb,EAAO,EAEP,MACF,CAEA,EAAW,CAFX,CAGF,EACM,OAAgB,CAChB,IAEJ,GAAmB,EACnB,EAAkB,IAAI,EAAK,EAC3B,EAAc,IAAI,EAAK,EACvB,EAAM,QAAQ,EACd,GAAU,QAAQ,EAClB,EAAO,QAAQ,EACf,EAAY,EACZ,EAAW,GAEP,KAAe,IACjB,GAAa,KACb,GAAoB,MAGtB,IAAgB,EAChB,GAAW,QAAQ,EACnB,OAAO,oBAAoB,QAAS,CAAU,EAC9C,OAAO,oBAAoB,WAAY,EAAQ,EAC/C,OAAO,oBAAoB,WAAY,EAAQ,EAC/C,SAAS,oBAAoB,mBAAoB,CAAU,EAC7D,EAEA,MAAO,CACL,SACA,QACA,WACA,cAAe,GAAS,CAAa,EACrC,kBAAmB,GAAS,CAAiB,EAC7C,aAAc,GAAS,CAAY,EACnC,gBAAiB,GAAS,CAAe,EACzC,yBAA0B,CACxB,EAAW,SAAS,EACpB,EAAgB,IAAI,oBAAoB,CAC1C,EACA,eAAgB,CACV,CAAC,EAAS,GAAK,CAAC,IAEpB,EAAW,OAAO,EAClB,EAAa,IAAI,EAAI,EACvB,EACA,MAAO,GAAS,CAAK,EACrB,WAAY,GAAS,CAAU,EAC/B,YACA,aACA,iBAAoB,EAAW,OAAO,EACtC,MAAM,sBAAuB,CAC3B,EAAW,SAAS,EACpB,EAAc,EACd,GAAI,CACF,MAAM,EAAU,CAClB,QAAU,CACR,EAAgB,CAClB,CACF,EACA,YAAa,EAAO,YACpB,gBAAiB,EAAO,gBACxB,MAAM,OAAO,EAAmD,CAC9D,GAAI,CAAC,EAAS,GAAK,EAAY,OAE/B,IAAM,EAAU,GAAqB,GAAI,EAAO,KAAK,EAAE,SAAW,EAC5D,EAAkB,EACpB,CACE,oBAAqB,EAAQ,WAC7B,0BAA2B,EAAQ,gBACrC,EACA,OACJ,EAAa,GACb,EAAW,QAAQ,EACnB,EAAc,EACd,IAAM,EAAW,EACjB,GAAI,CACF,MAAM,EAAQ,IAAI,OAAO,CACvB,kBACA,MAAO,QACP,cAAiB,EAAS,GAAK,IAAa,CAC9C,CAAC,CACH,QAAU,CACR,EAAa,GACb,EAAgB,CAClB,CACF,EACA,OAAQ,CACN,GAAI,GAAW,EAAU,MAAU,MAAM,0CAA0C,EAEnF,KAAoB,EACpB,EAAU,GACV,GAAa,EACb,GAAoB,GACpB,EAAY,EAAQ,WAAa,IAAuB,EAAQ,aAAa,EAC7E,EAAgB,EAAU,UAAW,GAAU,CACxC,EAAS,IAEd,EAAW,WAAW,EAElB,IAAU,WAAW,EAAe,EAC1C,CAAC,EACD,EAAa,GACb,OAAO,iBAAiB,QAAS,CAAU,EAC3C,OAAO,iBAAiB,WAAY,EAAQ,EAC5C,OAAO,iBAAiB,WAAY,EAAQ,EAC5C,SAAS,iBAAiB,mBAAoB,CAAU,EACxD,EAAe,CACjB,EACA,UACF,CACF,EAGa,GACX,GAGG,CACH,IAAM,EAAY,IAAI,GAAiB,CAAE,GAAG,EAAS,eAAgB,MAAU,CAAC,EAC1E,EAAe,GAAuB,CAAS,EAC/C,EAAa,IAAI,GAAiB,CACtC,GAAG,EACH,eAAgB,WAChB,MAAM,QAAQ,EAAO,EAAS,CAC5B,IAAM,EACH,GAAoD,QACpD,GAAmC,WAEhC,EAAO,EAAU,IAAI,IAAI,EAAQ,GAAG,EAAE,SAAW,GACjD,EACJ,GAAS,QAAQ,SAAW,QAC5B,sDAAsD,KAAK,CAAI,GAC/D,GAAwB,CAAK,EAEzB,EACJ,GAAS,QAAQ,SAAW,QAC5B,EAAK,SAAS,cAAc,GAC5B,IAAW,KACV,GAAoC,aAAe,2BAGnD,IAAW,KAAO,IAAW,KAAO,IAAW,MAChD,CAAC,GACD,CAAC,GAED,EAAK,WAAW,SAAS,EAE3B,MAAM,EAAQ,UAAU,EAAO,CAAO,CACxC,CACF,CAAC,EACK,EAAe,GAAuB,CAAU,EAChD,EAAW,IAAsB,CAAY,EAC7C,EAAW,IAAkC,CACjD,WAAY,EAAS,IAAY,EAAa,yBAAyB,EAAS,CAAO,EACvF,UAAW,EAAQ,UACnB,eAAkB,EAAK,WAAW,SAAS,CAC7C,CAAC,EACK,EAAO,IAAkB,CAC7B,YAAa,EACb,uBAA0B,EAAa,UAAU,EACjD,IAAK,CACH,GAAG,EACH,MAAM,OAAO,EAAS,CACpB,MAAM,EAAa,OAAO,CAAO,EAE7B,EAAQ,YAAY,IAAM,IAAO,EAAa,UAAU,CAC9D,CACF,EACA,cAAe,EAAU,SAAS,QAClC,sBAAuB,EAAQ,sBAC/B,cAAe,CACb,EAAS,WAAW,EACpB,EAAS,WAAW,CACtB,CACF,CAAC,EAEK,EAA2B,GAA2B,CAC1D,IAAM,EAAU,EAAO,OAAS,UAC1B,EAAU,EAAU,KAAO,GAAI,EAAK,OAAO,KAAK,EAAE,QAExD,GAAI,EAAU,EAAO,UAAY,EAAK,OAAO,oBAAoB,EAAI,CAAC,EACpE,MAAM,IAAI,aAAa,iDAAkD,mBAAmB,EAE9F,IAAM,EAAU,EAAU,KAAO,EAAK,gBAAgB,EAChD,EAAU,EAAO,OAAS,UAAY,EAAO,QAAU,EAAS,eAChE,EAAQ,IAAI,gBACZ,MAAe,EAAM,MAAM,EACjC,EAAQ,OAAO,iBAAiB,QAAS,EAAQ,CAAE,KAAM,EAAK,CAAC,EAC/D,IAAM,EAAU,CACd,OAAQ,EAAM,OACd,cAAiB,CAAC,EAAM,OAAO,SAAW,EAAQ,UAAU,CAC9D,EACM,EAAM,IAAI,GAAe,oBAC7B,EAAU,EAAU,UAAY,EAAW,SAC7C,EACM,EAAa,IAA+B,CAChD,QAAS,EACT,IAAK,CACH,MAAQ,GACN,EACI,EAAI,yBAAyB,CAAS,EACtC,EAAI,kBAAkB,CAAE,GAAG,EAAS,eAAgB,GAAG,CAAU,CAAC,EACxE,QAAU,GACR,EACI,EAAI,gCAAgC,CAAS,EAC7C,EAAI,yBAAyB,CAAE,GAAG,EAAS,eAAgB,GAAG,CAAU,CAAC,EAC/E,SAAU,EAAS,IACjB,EACI,EAAI,gCAAgC,EAAS,CAAS,EACtD,EAAI,yBAAyB,EAAS,CAAE,GAAG,EAAS,eAAgB,GAAG,CAAU,CAAC,CAC1F,EACA,eAAkB,EAAK,wBAAwB,CACjD,CAAC,EAED,MAAO,CACL,GAAG,EACH,SAAU,CACR,EAAQ,OAAO,oBAAoB,QAAS,CAAM,EAClD,EAAM,MAAM,EACZ,EAAW,QAAQ,CACrB,CACF,CACF,EAEA,MAAO,CACL,OACA,aACA,WACA,WACA,0BAEA,8BAA+B,CAC7B,IAAM,EAAc,IAAgC,CAAS,EAE7D,OAAO,IAA6B,CAClC,UAAW,EAAS,IAAY,EAAY,SAAS,EAAS,CAAO,CACvE,CAAC,CACH,EACA,2BAA2B,EAAwB,CACjD,IAAM,EAAU,EAAO,OAAS,UAC1B,EAAU,EAAU,KAAO,GAAI,EAAK,OAAO,KAAK,EAAE,QAExD,GAAI,EAAU,EAAO,UAAY,EAAK,OAAO,oBAAoB,EAAI,CAAC,EACpE,MAAM,IAAI,aAAa,yCAA0C,mBAAmB,EAEtF,IAAM,EAAU,EAAU,KAAO,EAAK,gBAAgB,EAChD,EAAU,EAAO,OAAS,UAAY,EAAO,QAAU,EAAS,eAChE,EAAQ,IAAI,gBACZ,MAAe,EAAM,MAAM,EACjC,EAAQ,OAAO,iBAAiB,QAAS,EAAQ,CAAE,KAAM,EAAK,CAAC,EAC/D,IAAM,EAAU,CACd,OAAQ,EAAM,OACd,cAAiB,CAAC,EAAM,OAAO,SAAW,EAAQ,UAAU,CAC9D,EACM,EAAc,IAAI,GAAe,+BACrC,EAAU,EAAU,UAAY,EAAW,SAC7C,EACM,EAAoB,EAAwB,CAAM,EAClD,EAAa,IAA2B,CAC5C,UACA,QAAS,EACT,oBACA,QAAS,EAAK,EAAI,IAChB,EACI,EAAY,wBAAwB,EAAK,EAAI,CAAE,MAAK,EAAG,CAAO,EAC9D,EAAY,iBACV,EACA,EACA,CAAE,MAAK,EACP,CAAE,GAAG,EAAS,eAAgB,GAAG,CAAQ,CAC3C,EACN,aAAc,EACT,GACC,EAAS,aAAa,EAAU,CAC9B,GAAG,EACH,eAAgB,CAAE,GAAG,EAAQ,eAAgB,GAAG,CAAQ,CAC1D,CAAC,EACH,OACJ,aAAgB,GAAY,IAAY,MAAQ,EAAS,SAAS,CAAO,EACzE,gBAAoB,EAAU,EAAK,OAAO,iBAAiB,EAAI,EAAK,OAAO,YAAY,EACvF,eAAkB,EAAK,WAAW,SAAS,CAC7C,CAAC,EAED,MAAO,CACL,GAAG,EACH,SAAU,CACR,EAAQ,OAAO,oBAAoB,QAAS,CAAM,EAClD,EAAM,MAAM,EACZ,EAAkB,QAAQ,EAC1B,EAAW,QAAQ,CACrB,CACF,CACF,EACA,wBAAyB,CACvB,IAAM,EAAU,GAAI,EAAK,OAAO,KAAK,EAAE,QAEvC,GAAI,CAAC,EACH,MAAM,IAAI,aAAa,sCAAuC,mBAAmB,EAEnF,OAAO,IAAqB,CAC1B,UACA,QAAS,EAAK,gBAAgB,EAC9B,IAAK,EACL,WACA,UAAW,EAAK,oBAClB,CAAC,CACH,EACA,uBAAwB,CACtB,IAAM,EAAU,GAAI,EAAK,OAAO,KAAK,EAAE,QAEvC,GAAI,CAAC,EACH,MAAM,IAAI,aAAa,sCAAuC,mBAAmB,EAEnF,OAAO,IAAqB,CAC1B,UACA,QAAS,EAAK,gBAAgB,EAC9B,IAAK,EACL,QAAS,EAAK,oBAChB,CAAC,CACH,EAEA,sBAAuB,CACrB,IAAM,EAAU,GAAI,EAAK,OAAO,KAAK,EAAE,QAEvC,GAAI,CAAC,EACH,MAAM,IAAI,aAAa,sCAAuC,mBAAmB,EAEnF,OAAO,IAAsB,CAC3B,UACA,QAAS,EAAK,OAAO,eAAe,EACpC,WACA,IAAK,EACL,MAAM,WAAY,CAChB,EAAa,UAAU,EACvB,MAAM,EAAK,qBAAqB,CAClC,CACF,CAAC,CACH,EACA,kBAAkB,EAA2E,CAC3F,IAAM,EAAU,GAAI,EAAK,OAAO,KAAK,EAAE,QAEvC,GAAI,CAAC,EACH,MAAM,IAAI,aAAa,sCAAuC,mBAAmB,EAEnF,OAAO,IAAiB,CACtB,UACA,QAAS,EAAK,gBAAgB,EAC9B,IAAK,EACL,MAAM,UAAU,EAAS,CACvB,EAAS,CAAO,EAChB,EAAa,UAAU,EACvB,MAAM,EAAK,qBAAqB,CAClC,CACF,CAAC,CACH,EACA,6BAA6B,EAA8C,CACzE,IAAM,EAAU,GAAI,EAAK,OAAO,KAAK,EAAE,QAEvC,GAAI,CAAC,EACH,MAAM,IAAI,aAAa,sCAAuC,mBAAmB,EAEnF,OAAO,IAA6B,CAClC,UACA,QAAS,EAAK,gBAAgB,EAC9B,cACA,IAAK,IAAgC,CAAU,EAC/C,WACA,mBAAoB,EAAK,oBAC3B,CAAC,CACH,EACA,MAAM,aAAc,CAClB,EAAa,UAAU,EACvB,MAAM,EAAK,UAAU,CACvB,CACF,CACF,EAEa,IAAsB,GAAsB,GAAW,IAAY,CAAI,EACvE,IAA4B,GAA8B,GAAW,IAAW,CAAM;81BChqBnG,mDA0JU,GAAS,EAAC,EAA2B,8BACpC,EAAW,QAAO,GAAI,EAAM,QAAQ,SAAW,YAAS,IAAI,0BAC1D,EAAM,iCACZ,EAAY,eAIT,EAAW,iCAEhB,EAAG,YAAH,CAAG,eAMC,EAAG,MACD,KADF,CACE,mCAEW,+CAEK,GAAY,oBAAmB,CAAI,cAAe,EAAI,OALxE,CAAG,MAAH,CAAG,WADD,EAAM,UAAQ,CAAK,EAAa,SAAO,SAL7C,CAAG,MAAH,CAAG,WADD,EAAgB,UAAY,sBAAoB,8BAmBlD,EAAG,MAED,EAAG,IAFL,CAAG,KAGC,KADF,CACK,mCAAkC,kCAAyC,EAAO,MADvF,CAAG,IAFL,CAAG,MAAH,CAAG,aADD,CAAW,GAAI,EAAK,QAAQ,SAAW,aAAe,EAAK,QAAQ,SAAW,SAAO,0BASvF,IAAe,yBAAW,EAAM,mBAAoB,iCAE/C,EAAM,QAAO,+CAAyB,EAAK,QAAQ,YAAS,CAAO,qCAGxE,EAAG,UACD,KADF,CACE,iCAEW,yCAEK,EAAM,aAAY,MALpC,CAAG,oFAUwB,CAAS,gBAE1B,EAAS,MAAC,IAAI,2FAON,EAAM,aACb,GAAY,oBAAmB,CAAI,cAAe,EAAI,GAC5D,MAAS,EANd,2BACE,0CACA,EAAyB,aACf,8DAMV,EAAG,WAAH,OACO,EAAM,QAAO,kCACO,EAAM,OAAO,oBAAmB,kDAF3D,CAAG,MAAH,CAAG,WADD,EAAK,QAAQ,SAAW,aAAe,EAAM,OAAO,eAAc,0DA7BpE,EAAa,SAAW,EAAM,SAAQ,KAEjC,EAAK,QAAQ,SAAW,mBAAqB,EAAK,QAAQ,QAAO,OAEjE,EAAK,QAAQ,QAAU,oBAAmB,QAUzC,EAAK,QAAQ,SAAW,QAAU,EAAK,QAAQ,QAAU,mBAAqB,EAAM,QAAQ,SAAW,eAAiB,EAAM,QAAQ,SAAW,YAAW,yBAyB/J,EAAI,+BAEN,IAAH,CAAG,4BAEH,GAAS,wBAAQ,CAAS,qCAEgC,KAAa,OAAe,EAApF,GAAc,yBAAS,CAAkB,gDADvC,CAAsB,UAG1B,QAAe,uEACJ,eAAc,QACrB,EAAG,MAAyC,IAA5C,CAAuD,KAAvD,CAAG,MAAH,CAAG,mDATL,CAAe,yBAvMlB,EAAa,sBAAG,EAAK,EACrB,EAAyB,kCAAG,IAAI,EAChC,EAAW,oBAAG,EAAK,EAmBf,EAAQ,OAAO,QACrB,IAAmB,CAAK,MAClB,EAAS,EAAM,OACf,EAAO,GAAU,EAAO,KAAK,EAC7B,EAAQ,GAAU,EAAM,MAAM,KAAK,EACnC,EAAQ,GAAU,EAAM,KAAK,EAC7B,EAAa,GAAU,EAAM,UAAU,EACvC,EAAgB,GAAU,EAAM,aAAa,EAC7C,EAAoB,EAAM,kBAC5B,GAAU,EAAM,iBAAiB,GAC/B,QAAS,EAAK,EACd,EAAe,GAAU,EAAM,YAAY,EAC3C,EAAkB,GAAU,EAAM,eAAe,EACjD,EAAsB,MAC1B,EAAa,UACT,EAAK,QAAQ,SAAW,QACxB,EAAK,QAAQ,QAAU,mBACvB,EAAM,QAAQ,SAAW,eACzB,EAAM,QAAQ,SAAW,WAAW,EAEpC,EAAS,QACb,GACI,QACA,EAAK,QAAQ,SAAW,kBACtB,+BACA,kBAAkB,EAEpB,EAAkB,QACpB,MAAO,YAAa,KAAM,GAAG,KAC3B,EAAM,WAAc,MAAO,wBAAyB,KAAM,mBAAmB,SAC7E,EAAa,IAAM,MAAO,eAAgB,KAAM,SAAS,QAE3D,EAAmB,GAEvB,OAAc,KACN,EAAgB,EAAS,EAAC,OAAS,oBAErC,GAAa,CAAK,EAAa,SAAW,EAAM,SAAU,EAAM,cAAa,GACvE,GAAiB,GAAkB,EAAM,aAAY,EAE/D,EAAmB,CACrB,CAAC,MACK,MAAqB,CACzB,EAAM,aAAY,EAEd,EAAS,EAAC,OAAS,qBAAqB,GAAY,IAAG,CAAI,cAAe,EAAI,EACpF,EACI,EAAc,EAAO,EAAK,EAE9B,OAAc,EAEV,EAAM,QAAQ,SAAW,cACzB,EAAM,QAAQ,SAAW,aACzB,EAAM,QAAQ,SAAW,aACzB,EAAK,QAAQ,SAAW,aACxB,EAAK,QAAQ,SAAW,YAExB,EAAc,GAElB,CAAC,MACK,EAAW,GAA4C,GAC3D,EAAc,IACT,EAAM,OAAO,CAAO,EAAE,UAAY,GACrC,EAAc,GAChB,CAAC,CACH,EAIM,EAAgC,OAAO,OAAM,CACjD,gBAJ8B,CACzB,EAAO,YAAW,CACzB,EAGE,YAAqB,EAAO,IAExB,EAAe,MACnB,EAAW,GACR,EAAc,SAAO,EACpB,EAAa,SAAW,EAAM,WAChC,EAAgB,UAAY,MAAI,GAC/B,CAAW,GACZ,EAAM,QAAQ,SAAW,cACzB,EAAM,QAAQ,SAAW,aACzB,EAAK,QAAQ,SAAW,aACxB,EAAK,QAAQ,SAAW,oBACvB,EAAK,QAAQ,SAAW,SAAW,EAAkB,QAAO,EAE3D,GAAK,OACR,EAAW,KACR,EAAa,SAAW,EAAM,WAAQ,CACvC,EAAkB,SACnB,EAAK,QAAQ,SAAW,SACxB,EAAQ,EAAK,QAAQ,OAAO,EAEhC,QACE,EAAM,MAAK,EAEP,EAAS,EAAC,OAAS,qBAAuB,EAAM,WAClD,EAAM,cAAa,EACnB,EAAmB,QAGR,EAAM,QAAO,EAC3B,mDA6FK,EAAM,QAAO,iEAEI,EAAK,QAAQ,YAAS,CAAQ,qBAKrC,EAAO,gBAAI,EAAI,SAAJ,EAAI,MAAJ,CAAI,MAIrB,EAAM,EAJW,CAAI,EAIgD,IAArE,CAAM,YAHJ,EAAK,QAAQ,QAAQ,QAAQ,OAAS,kBACjC,EAAK,QAAQ,QAAQ,QAAQ,kBAAiB,KAAM,EAAK,QAAQ,QAAQ,QAAQ,kCAC9D,EAAK,QAAQ,QAAQ,QAAQ,OAAS,gBAAkB,UAAY,uBAAqB,aACnH,MAAsB,EAAO,YAAW,aAA6B,MACtD,EAAO,sBAPT,EAAK,QAAQ,QAAQ,eAAc,GAAI,EAAK,QAAQ,QAAQ,QAAQ,MAAI,EAD1F,sCAGW,8CAOT,IAAoB,wBAAU,EAAK,QAAQ,2CACxB,EAAK,QAAQ,OAAO,2IAK/B,CAAI,iBAEV,EAAI,eAvBV,EAAK,GAAI,EAAK,QAAQ,QAAO,gDA3F1B,8MCxJR,aAOI,EAAQ,iBAAG,EAAK,EAChB,EAAI,aAAG,EAAK,EACZ,EAAgB,yBAAG,EAAI,EAWrB,EAAoC,EAAM,YAG/C,kDAcE,EAAG,WAAH,CAAG,eAIU,EAAQ,GAAI,EAAI,YACf,EAAgB,GAJ5B,+HAKW,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAI,GAAE,cAAa,CACrB,MATH,CAAG,MAYH,IAZA,EAAG,KAdL,aAMY,EAAI,SAAJ,CAAI,cANhB,sCAEa,EAAgB,SACd,EAAgB,MAH/B,wCAKY,EAAI,GAqBd,WAKW,EAAQ,GAAI,EAAI,gBA/B7B,EAOY,GAAU,CACnB,EAAM,eAAc,GAEf,EAAQ,IAAK,EAAI,cAAgB,CAAK,CAC7C,CAAC,MAXF,MAFO;ohBCrBR,aA0BQ,EAAQ,OAAO,gBACf,EAAO,GAAU,EAAM,KAAK,EAC9B,EAAW,EAAO,EAAE,EACpB,EAAY,EAAO,EAAE,EACrB,EAAW,EAAO,EAAE,EACpB,EAAW,EAAO,EAAE,EACpB,EAAe,EAAO,EAAE,EACxB,EAAO,EAAO,EAAE,EAChB,EAAa,EAAsB,IAAI,EACrC,EAAI,MAAY,EAAK,QAAQ,SAAW,YAAY,EACpD,EAAQ,MAAY,GAAwB,EAAC,CAAQ,IACrD,EAAM,CACV,YACE,iHACF,eAAgB,2DAChB,OAAQ,yEACR,QAAS,kCAEL,EAAW,MACf,EAAK,QAAQ,QAAU,UAClB,EAAK,QAAQ,SAAW,EAAO,QAChC,EAAK,QAAQ,MACX,EAAO,EAAK,QAAQ,OACpB,IAAI,EAEN,MAAyB,GAC7B,EAAW,EAAC,IACZ,EAAe,EAAC,IAChB,EAAO,EAAC,CACV,EACM,EAAM,SAAe,MACrB,CAAI,IAAK,EAAM,UAAS,WAE5B,EAAa,UACP,EAAK,CACT,SAAQ,EAAE,CAAQ,EAAC,KAAI,EACvB,UAAS,EAAE,CAAS,EAAC,KAAI,EACzB,SAAQ,EAAE,CAAQ,EAAC,KAAI,EACvB,KAAI,EAAE,CAAI,EAAC,KAAI,OAGZ,EAAM,UAAQ,CAAK,EAAM,WAAS,CAAK,EAAM,SAAU,GAC1D,EAAa,0DAAyD,QAGxE,KAEM,EAAkB,GAA0B,EAAC,CAAQ,MAEvD,EAAiB,GACnB,EAAa,YAGf,MAEI,CAAQ,MAAK,CAAY,EAAE,GAC7B,EAAa,uCAAsC,QAGrD,KAEK,sBAAsB,KAAK,EAAM,IAAI,EAAG,GAC3C,EAAa,sEAAqE,QAGpF,KAEM,EAAM,EAAG,KACf,EAAW,EAAC,IACZ,EAAe,EAAC,QACV,EAAM,OAAM,CAAG,eAAc,iBAAE,aAAY,kBAAK,EAAO,SAAU,KAGnE,EAAK,QAAQ,SAAW,WAAa,EAAK,QAAQ,QAAU,gBAAa,EAAE,EAAO,EAAC,CACzF,EACA,GAAU,CAAgB,6BAIzB,EAAG,MAED,EAAC,IAFH,CAAG,SAED,CAAC,IAAD,CAAC,MACD,EAAG,EADH,EAAC,GAEC,KADF,CACE,qBACO,kCAEI,kDAEc,EAAK,QAAQ,KAAK,MAN7C,CAAG,IAHL,CAAG,yCAE4B,EAAK,QAAQ,OAAK,eAFjD,CAAG,aAcH,EAAG,MAKD,EAAG,IALL,CAAG,KAMC,KADF,CACE,qBACO,kCAEI,kDAEc,IAAI,MAN/B,CAAG,IALL,CAAG,MAAH,CAAG,wBAoBW,CAAI,EAAG,sBAAwB,iBAAiB,EAJ9D,uCAEW,sBACT,CAAI,qFAI2B,EAAC,UAAD,EAAC,MAAD,CAAC,cAAe,CAAU,KAAI,CAAW,QAAzC,CAAC,cAA5B,CAAU,KAAI,CAAW,eAC7B,EAAG,OACD,KADF,CACE,oHAIY,qCAEA,wCAGD,CAAI,OAFd,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,WARvB,CAAG,MAaH,EAAG,EAbH,EAAG,OAaH,CAAG,EACD,kHAIY,uCAEA,wCAGD,CAAI,OAFd,OAAU,UAAE,CAAS,OAArB,MAAU,KAAE,EAAS,SAItB,wHAIY,wCAEA,wCAGD,CAAI,OAFd,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,WAnBvB,CAAG,MAwBH,EAAG,EAxBH,EAAG,OAwBH,CAAG,EACD,gJAKY,yCAEA,aACA,wCAGD,CAAI,OAFd,OAAU,UAAE,CAAQ,OAApB,MAAU,KAAE,EAAQ,SAIrB,0JAKY,yCAEA,aACA,wCAGD,CAAI,OAFd,OAAU,UAAE,CAAY,OAAxB,MAAU,KAAE,EAAY,WAvB3B,CAAG,UAAH,EAAG,aA6BD,EAAC,gBACC,EAAM,EADR,CAAC,MACC,EAAM,MAAN,CAAM,UAAN,EAAM,aACqB,EAAK,UAAL,EAAK,MAAL,CAAK,qBAAE,CAAQ,EAAC,MAAM,KAAK,GAAG,QAA9B,CAAK,aAA5B,CAAQ,EAAC,MAAM,QAAM,SAF3B,CAAC,aAAD,EAAC,8CAAiC,CAAQ,EAAC,QAAU,CAAC,SAC5C,CAAQ,EAAC,KAAK,QADxB,CAAC,aADC,CAAQ,cAMZ,EAAG,OACD,KADF,CACE,6IAKY,gCAEA,uCAGD,CAAI,OAFd,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,WATnB,CAAG,2CA9GH,EAAK,QAAQ,SAAW,aAAY,KAc/B,EAAK,QAAQ,SAAW,iBAAgB,2BAhB1C;;;iLCtGR,aAyBQ,EAAe,OAAO,wBACtB,EAAmB,GAAU,EAAa,KAAK,EAEjD,EAAO,EAAa,UAAU,EAE5B,EAAM,MAAY,EAAiB,QAAQ,SAAW,YAAY,EAClE,EAAU,GAAe,GACxB,CAAM,KAAE,EAAO,KACtB,EAGM,EAAU,GAAyB,CACnC,EAAK,eAAe,CAAK,IACxB,EAAO,OAAM,CACpB,EACA,OAAgB,EAAa,QAAO,OAGrC,EAAO,MAOL,EAAG,IAPL,CAAO,WAOL,CAAG,KAKD,IAAsB,qHAAkC,YAAwB,QAChF,EAAG,OAED,OAFF,CAAG,GAED,mCAEW,qBACJ,qEAEI,CAAM,eACD,EAAO,OAAO,MARhC,CAAG,IANL,CAAG,MAkBH,EAAG,EAlBH,EAAG,SAkBH,CAAG,8BAKiB,IAAI,MACtB,EAAG,OAED,OAFF,CAAG,GAED,mCAEW,qBACJ,gDAES,EAAO,UAAU,MAPnC,CAAG,IANL,CAAG,IAzBL,CAAO,WAOL,EAAG,WAAwB,CAAI,IAAK,UAAU,IAkB9C,EAAG,WAAwB,CAAI,IAAK,OAAO,QAzB7C,CAAO,KAFA,isBCzCR,aAWI,EAAgB,yBAAG,EAAK,EAEpB,EAAI,MAAY,GAAS,aAAY,KAAK,GAC5C,EAAQ,EAAO,EAAE,EACf,EAAI,OAAa,UAAW,aAAc,YAAY,EAAE,SAAQ,EAAC,CAAI,EAAC,QAAQ,MAAM,GACpF,EAAM,CACV,OAAQ,kDACR,MAAO,yDACP,UAAW,2DACX,UAAW,6CAGb,OAAc,KACN,EAAK,eACX,EAAQ,EAAC,MACH,EAAO,EAAM,MAAM,UAAW,GAAU,EACxC,EAAM,SAAW,eAAiB,EAAM,WAAa,KAAI,EAAE,EAAQ,EAAC,CAC1E,CAAC,SACI,EAAM,KAAI,MAEF,CACX,EAAI,IACJ,EAAQ,EAAC,EACT,EAAM,QAAO,CACf,CACF,CAAC,MACK,MAAgB,GACpB,EAAQ,EAAC,eACO,QAAO,CACzB,EACM,EAAW,GAAuB,CACtC,EAAM,eAAc,MACd,EAAK,EAAG,CAAK,EAAC,KAAI,IACxB,EAAQ,EAAC,eACO,QAAQ,CAAK,CAC/B,MAGD,EAAO,sBAAP,CAAO,eAGF,IAAD,CAAC,aAED,EAAC,MAAgB,KAAjB,CAAqB,qBAAO,yBAA5B,CAAC,MAAD,CAAC,sCAEuB,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAM,EAAC,CAAI,EAAC,QAAQ,MAAK,OAAzC,CAAC,aAArB,CAAI,EAAC,QAAQ,OAAK,8BACkB,IAAD,CAAC,aAApC,CAAI,EAAC,QAAQ,SAAW,WAAS,8BACC,IAAD,CAAC,aAAlC,CAAI,EAAC,QAAQ,WAAa,IAAK,8BAEN,IAAD,CAAC,aAAzB,CAAI,EAAC,QAAQ,WAAS,WAC1B,EAAG,WAAH,CAAG,gBAGW,EAAgB,aAIjB,CAAI,KAAI,CAAI,EAAC,QAAQ,WAAa,EAAK,EANlD,2EAGO,yCAEG,2DAKE,EAAgB,GAF5B,2EAGO,oGAGoB,KAAI,0BACpB,CAAI,OAhBjB,CAAG,UAAH,EAAG,kBAyBQ,CAAI,EAAC,QAAQ,WAAa,IAAK,GAAK,CAAK,EAAC,KAAI,GANzD,iDAEW,sBACT,CAAI,iCACJ,EAAgB,oFAIhB,EAAG,UAAH,CAAG,eAIa,EAAgB,EAAG,QAAU,MAAM,UACzC,EAAgB,EAAG,kDAAoD,EAAE,YAOtE,CAAI,KAAI,CAAI,EAAC,QAAQ,WAAa,EAAK,EAXlD,kIAKY,yBAGA,mCAEC,mCAJZ,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,WAPpB,CAAG,MAAH,CAAG,4CArCH,CAAI,EAAC,QAAQ,SAAW,cAAa,OAEhC,CAAI,EAAC,QAAQ,WAAa,GAAI,mBAJzC,CAAO,WAAP,EAAO,cAA4E,CAAI,OAAvF,EAAO,gCAAe,EAAgB,UAAtC,CAAO,KAFA,inBC/CR,aAsBQ,EAAa,OAAO,sBACpB,EAAU,OAAO,SACjB,EAAO,GAAU,EAAW,KAAK,EACjC,EAAY,GAAU,EAAW,kBAAkB,KAAK,EAC1D,EAAiB,EAAM,GAAC,EAAQ,OAAS,QAAU,EAAQ,eAAiB,EAAE,GAC9E,EAAe,EAAM,GAAC,EAAQ,OAAS,QAAU,EAAQ,aAAe,EAAE,GAC1E,EAAO,EAAO,EAAE,EACd,EAAI,MAAY,EAAK,QAAQ,SAAW,YAAY,EACpD,EAAM,CACV,mBAAoB,mDACpB,OAAQ,mCACR,YAAa,qCACb,OAAQ,gDACR,iBAAkB,8CAEd,EAAM,KAAU,IAAuB,IAC3C,EAAM,eAAc,EAEhB,EAAQ,OAAS,WAAS,EAAI,CAAI,IAAK,EAAW,UAAS,aAEzD,EAAK,CACT,eAAc,EAAE,CAAc,EAAC,KAAI,EACnC,aAAY,EAAE,CAAY,EAAC,KAAI,EAC/B,KAAI,EAAE,CAAI,EAAC,KAAI,KAEjB,EAAO,EAAC,QACF,EAAW,OAAO,EAAM,eAAgB,EAAM,aAAc,EAAM,IAAI,CAC9E,EACM,EAAO,EAAW,MAAM,UAAW,GAAU,CAC7C,EAAM,SAAW,kBACnB,EAAiB,EAAC,IAClB,EAAe,EAAC,IAChB,EAAO,EAAC,EAEZ,CAAC,EACK,EAAW,SAAe,IAC1B,EAAK,QAAQ,SAAW,WAAU,aAEhC,EAAW,YAAW,MACtB,EAAQ,GAAI,EAAQ,EAGxB,EAAQ,OAAS,SACjB,GAAqB,EAAM,KAAM,EAAM,MAAM,EAAE,MAAQ,EAAQ,KAE/D,GAAY,kBAAiB,CAAI,QAAS,GAAM,cAAe,EAAI,EACvE,EACA,OAAgB,CACd,EAAI,IACJ,EAAiB,EAAC,IAClB,EAAe,EAAC,IAChB,EAAO,EAAC,EACR,EAAW,QAAO,CACpB,CAAC,MAGF,EAAO,YAAP,CAAO,eAGF,IAAD,CAAC,qBAGD,EAAG,UACD,KADF,CACE,mCAEW,uCAED,MALZ,CAAG,oBASF,IAAD,CAAC,4BAED,IAAwB,2BAAa,EAAW,qEAKlC,CAAI,EAAG,4BAA8B,oBAAoB,UAC5D,EAAU,QAAQ,WAAa,IAAI,GAC1C,CAAc,EAAC,KAAI,MACnB,CAAY,EAAC,KAAI,MACjB,CAAI,EAAC,KAAI,GARb,0CAEW,sBACT,CAAI,4GAOoB,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAO,EAAK,QAAQ,MAAK,OAAzC,CAAC,WAArB,EAAK,QAAQ,OAAK,8BAEpB,EAAG,UAAH,CAAG,EACD,2HAIY,aAEA,uCAED,CAAI,0BAHd,OAAU,UAAE,CAAc,OAA1B,MAAU,KAAE,EAAc,SAM3B,6HAIY,aAEA,uCAED,CAAI,0BAHd,OAAU,UAAE,CAAY,OAAxB,MAAU,KAAE,EAAY,WAjB3B,CAAG,MAAH,CAAG,WADD,EAAQ,OAAS,UAAQ,WA0B7B,EAAG,OACD,KADF,CACE,6IAKY,aAEA,uCAED,CAAI,0BAHd,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,WAPnB,CAAG,iDArDH,EAAQ,OAAS,UAAS,KAErB,EAAK,QAAQ,SAAW,WAAU,OAUlC,EAAK,QAAQ,SAAW,cAAa,mBAdhD,CAAO,UAAP,EAAO,cAA4C,CAAI,QAAvD,CAAO,KAFA,8oCC5ER,aAeI,EAAQ,iBAAG,EAAK,EAChB,EAAgB,yBAAG,EAAK,EAQpB,EAAI,MAAY,GAAS,aAAY,KAAK,GAC1C,EAAI,QAAY,CAAI,EAAC,QAAQ,SAAW,aAAW,EAAI,CAAI,EAAC,QAAQ,SAAW,QAAQ,EACzF,EAAoC,EAAM,QAC1C,EAAU,EAAO,EAAE,EACnB,EAAO,EAAO,EAAE,EAChB,EAAU,EAAO,EAAE,EACjB,EAAQ,MAAY,GAAwB,EAAC,CAAI,GAAI,gBAAe,EAAE,CAAO,KAC7E,EAAY,MAAY,EAAO,EAAC,CAAO,KAAK,CAAI,MAAK,CAAO,GAC5D,EAAgB,MACpB,EAAgB,EAAG,kDAAoD,EAAE,EAErE,EAAM,CACV,SAAU,8CACV,OAAQ,gDACR,iBAAkB,2CAClB,UAAW,wDACX,OAAQ,qEACR,UAAW,6DAEP,MAAqB,GACzB,EAAU,EAAC,IACX,EAAO,EAAC,IACR,EAAU,EAAC,CACb,EAEA,OAAc,KACN,EAAK,aACL,EAAO,EAAM,MAAM,UAAW,GAAU,EACxC,EAAM,SAAW,eAAiB,EAAM,SAAW,YAAW,EAAY,CAChF,CAAC,YAEY,CACX,EAAI,EACJ,EAAY,EACZ,EAAM,QAAO,CACf,CACF,CAAC,EACD,GAAU,CAAY,MAChB,EAAM,KAAU,IAAuB,IAC3C,EAAM,eAAc,IAEhB,CAAI,aAEF,EAAK,CAAK,QAAO,EAAP,CAAO,EAAE,KAAI,EAAJ,CAAI,EAAE,QAAO,EAAP,CAAO,MAEpC,EAAM,OAAS,EAAM,SACb,GAA4B,EAAM,KAAM,EAAM,OAAO,EAE3C,oBACD,OAAO,CAAK,QAG/B,GAEA,EAAU,EAAC,GAGP,MAFS,aAAoB,OAAO,CAAK,GAElC,EAAI,CAAI,EAAC,QAAQ,SAAW,SAAO,EAAI,CAAI,EAAC,QAAQ,QAAU,cACvE,EAAO,EAAC,IACR,EAAU,EAAC,EAEf,MAGD,mCAOK,IAAD,CAAC,SAED,+CAEmB,SACX,oDAIN,IAAF,CAAE,WAVA,EAAQ,OAEH,EAAgB,0CAWtB,IAAD,CAAC,aAED,EAAC,UAAD,EAAC,MAAD,CAAC,cACC,CAAI,EAAC,QAAQ,MACV,EAAM,EAAC,CAAI,EAAC,QAAQ,OACpB,oDAAoD,OAHzD,CAAC,aAMD,mCAUI,EAAC,UAAD,EAAC,MAAD,CAAC,cACC,CAAI,EAAC,QAAQ,eAAiB,EAAM,EAAC,CAAI,EAAC,QAAQ,MAAK,OADzD,CAAC,aADC,CAAI,EAAC,QAAQ,OAAK,WAKtB,EAAG,WAAH,CAAG,eAIa,EAAgB,EAAG,QAAU,MAAM,EAHjD,kHAIQ,CAAgB,aACZ,uEAID,CAAI,OAFd,OAAU,UAAE,CAAO,OAAnB,MAAU,KAAE,EAAO,WARtB,CAAG,MAaH,EAAG,EAbH,EAAG,OAaH,CAAG,eAIa,EAAgB,EAAG,QAAU,MAAM,EAHjD,8GAIQ,CAAgB,aACZ,qDAIA,aACA,wEAED,CAAI,OALd,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,mCAUH,EAAgB,EAAG,QAAU,MAAM,EAHjD,yHAIQ,CAAgB,aACZ,qDAIA,aACA,4BACD,CAAI,OAJd,OAAU,UAAE,CAAO,OAAnB,MAAU,KAAE,EAAO,WAtBtB,CAAG,MA6BH,EAAC,EA7BD,EAAG,OA6BH,EAAC,MAAD,CAAC,UAAD,EAAC,aAEC,kBAME,EAAG,EANL,MAME,EAAG,QACM,EAAG,EAAG,EAAG,CAAC,EAAK,GAAS,GAAO,EAAhB,IAAO,KAC3B,4DACe,EAAO,EAAG,CAAQ,EAAC,iBACjB,CAAQ,EAAC,QAAU,GAAK,IAAY,SAFrD,OAFJ,CAAG,MAQH,EAAG,EARH,EAAG,GASD,EAAM,EADR,CAAG,MACD,EAAM,MAAN,CAAM,UAAN,EAAM,aAEJ,EAAK,UAAL,EAAK,MAAL,CAAK,qBAAE,CAAQ,EAAC,MAAM,KAAK,GAAG,QAA9B,CAAK,aADH,CAAQ,EAAC,MAAM,QAAM,SAF3B,CAAG,IAdL,uEAEgB,CAAQ,EAAC,QAAU,CAAC,KAFpC,iBAGa,CAAQ,EAAC,KAAK,QAYf,CAAQ,EAAC,KAAK,QAf1B,cADE,CAAI,iCAwBN,EAAC,UAAD,EAAC,MAAD,CAAC,YAAwB,EAAO,QAAQ,OAAxC,CAAC,aADC,CAAY,cAGhB,EAAG,uBAAH,CAAG,uBAIa,EAAgB,GAF5B,mGAIW,CAAI,mGAML,EAAgB,aAClB,CAAI,EAAG,yBAA2B,iBAAiB,EAH7D,0GAIW,CAAI,WACJ,GAAsB,CAC9B,EAAM,eAAc,IACpB,CAAI,GAAE,cAAa,CACrB,MAlBH,CAAG,MAqBH,GAAM,EArBN,EAAG,KAnFL,aAMY,EAAI,SAAJ,CAAI,aANhB,qDAEa,EAAgB,SACd,EAAgB,MAH/B,gBAKY,CAAI,OAmD8B,GAAoB,OA2BhE,EAAG,2CAqBH,GAAM,WAA+E,CAAI,2BArB1C,EAAO,4BAnFxD,EAOW,CAAM,MAPjB,cATE,CAAI,EAAC,QAAQ,SAAW,UAAS,OAE5B,CAAI,EAAC,QAAQ,SAAW,cAAa,mBApBhD,kEAEe,EAAgB,MAF/B,gBAIY,CAAI,SAJhB,MAFO,kBCtFR,mDAoCI,EAAa,sBAAG,EAAK,EACrB,EAAqB,8BAAG,IAAI,GAWtB,UAAS,aAAc,IAAiB,EAC1C,EAAS,OAAO,UAGlB,GAAuB,CACrB,UACA,YACA,0BAA6B,EAAqB,KAGlD,EAAU,OAAO,eACjB,EAAe,MAAY,GAAqB,EAAS,EAAC,KAAM,EAAS,EAAC,MAAM,GAClF,EAGO,EAAW,IAAI,EACpB,EAAe,SAAe,EAAS,EAAC,KAAI,KAAI,CAAe,EAAC,KAAG,EAIrE,EAA2B,EAAsB,IAAI,EACnD,EAAiB,QACrB,CAAe,EAAC,OAAS,SAAO,EAAI,CAAwB,MAAK,CAAe,EAAC,GAAG,EAIlF,EAAkB,EAAsB,IAAI,EAC1C,EAA6B,GAAkB,GACnD,EAAkB,MAClB,GAAY,kBAAiB,CAAI,QAAS,GAAM,cAAe,EAAI,EACrE,EACA,IAAyB,CAAM,MAC3B,EAA0B,KACxB,EAAe,GACnB,KAAa,EAAQ,WAAU,GAAI,EAAQ,mBAAqB,KAC5D,EAAc,IAAmB,CACrC,SAAU,KACF,EAAU,EAAO,KAAK,gBAAe,SAGzC,gBAAe,CACb,oBAAqB,EAAQ,oBAC7B,0BAA2B,EAAQ,2BAErC,OAAQ,EAAQ,eAAe,OAC/B,UAAW,EAAQ,eAAe,UAEtC,EACA,QAAS,KACD,EAAO,EAAY,GAAI,EAAO,KAAK,OAAO,KAAK,EAAE,OAAO,MAGzD,GAAQ,IAAS,EAAU,CAC9B,EAAO,KAAK,WAAW,SAAS,QAGlC,CAEA,EAAW,EACN,EAAO,KAAK,qBAAoB,CACvC,EACA,YAAe,EAAO,KAAK,qBAAoB,EAC/C,eAAiB,GACf,EAAO,SAAS,aAAa,EAAU,EAAO,KAAK,gBAAe,KAEhE,MAAwB,KACtB,EAAQ,GAAI,EAAO,KAAK,OAAO,KAAK,EACpC,EAAW,EAAO,KAAK,kBAAoB,GAAI,EAAO,KAAK,iBAAiB,EAAI,GAEtF,EAAY,QAAO,CAChB,GAAY,EAAM,SAAW,SAAW,EAAM,QAC3C,IAAqB,EAAM,QAAS,IAAqB,EAAM,QAAS,CAAO,GAC/E,IAAI,CAEZ,EACM,EAAkB,EAAO,KAAK,OAAO,MAAM,UAAU,CAAe,EACpE,EAA0B,EAAO,KAAK,mBAAmB,UAAU,CAAe,GAAK,KAEvF,EAAc,GAAU,EAAO,KAAK,OAAO,KAAK,EAChD,EAAoB,GAAU,EAAO,KAAK,aAAa,EACvD,EAAe,EAAO,KAAK,kBAC7B,GAAU,EAAO,KAAK,iBAAiB,GACrC,QAAS,EAAK,EAChB,EAA0C,KAG9C,OAAc,MACR,CAAe,EAAC,OAAS,SAAO,EAAI,CAAwB,MAAK,CAAe,EAAC,KAEjF,EAAkB,QAAO,WAEvB,EAAG,EAAG,CAAe,EAAC,IACtB,EAAU,EAAY,QAAQ,QAGhC,GAAO,CAAK,EAAO,KAAK,OAAO,eAAc,KACnC,KAAK,OAAO,CAAO,EAAE,UAAY,CAAC,CAAC,IAEjD,EAA2B,KAC7B,CAAC,EAGD,OAAc,KACN,EAAS,IACT,EAAW,GAAQ,gBAAgB,KAAI,EAAG,YAAW,GAAM,OAE5D,EAAU,CACb,EAA2B,WAG7B,IAEI,EAAkB,SAAW,EAAa,QAAO,WAE/C,EAAU,EAAY,QAExB,OAAQ,SAAW,SAAO,CAAK,EAAQ,aAGzC,EAAQ,QAAQ,QAAQ,OAAS,gBACjC,EAAQ,QAAQ,QAAQ,gBAAgB,YAAW,IAAO,EAC1D,CACA,EAA2B,QAG7B,CAEI,IAA6B,IAEjC,EAA2B,EACtB,EAAO,KAAK,OAAO,qBAAqB,CAAM,EALnD,CAMF,CAAC,EACD,IAA8B,OACtB,eAAe,EAAU,KACvB,EAAU,EAAO,KAAK,gBAAe,YAE/B,EAAO,SAAS,aAAa,EAAU,CAAO,YAC9C,aAAa,oCAAqC,YAAY,MAEpE,EAAY,GAAI,EAAO,SAAS,KAAK,EAAE,iBAG3C,aAAc,WACd,WAAY,IAAc,KAAO,KAAI,IAAO,KAAK,CAAS,EAAE,YAAW,EAE3E,QAGI,EAAgB,EAAO,SAAS,MAAM,UAAW,GAAU,CAC3D,EAAM,SAAW,QAAU,EAAY,QAAO,CACpD,CAAC,EACD,OAAgB,CACd,EAAa,EACb,IAAuB,EACvB,EAAe,EAEX,EAAY,QAAO,EAEvB,EAAY,QAAO,CACrB,CAAC,OAYS,GAAgB,EAAC,EAAS,oDAE1B,CAAe,EAAC,IAAG,IACtB,qCACiB,CAAe,EAAC,4CAClB,CAAe,EAAC,qCAC7B,EAAS,0BACgB,EAAO,6BAA4B,eAC/C,sCAIT,MAAS,EAAC,CAAe,qBAX/B,CAAe,EAAC,OAAS,QAAO,uBAc7B,GAAc,EAAC,EAAO,8BACrB,EAAS,EAAC,KAAI,KAAI,CAAe,EAAC,MAAG,2BAEzC,4BACQ,CAAe,wBACE,EAAO,2BAA0B,CAAG,KAAM,UAAW,UAAO,aAGrF,sCAEW,8CAEM,EAAgB,CAAK,UAAO,EAAE,MAAK,EAAE,CAAe,iBAVnE,CAAe,EAAC,OAAS,UAAQ,EAAK,CAAgB,GAAE,UAAY,EAAO,KAAI,CAAgB,EAAC,QAAK,EAAK,CAAe,kCAexH,GAAc,EAAC,EAAO,EAAE,EAAO,yCAGvB,EAAO,qBAAoB,WAG5B,EAAO,MAAS,EAAO,EAAC,EAAO,GAAI,MAAS,EAJxD,8GADE,EAAO,EAAC,0BAAwB,uBArCxB,EAAa,KAAI,CAAe,EAAC,OAAS,QAAQ,UACtC,EAAqB,GAAE,kBAAoB,IAAI,EAL3E,yBACO,EAAO,+KAKA,CAAiB,GAEpB,mBAeA,iBAiBA,4FA3CJ,CChNR,IAAM,GAAmB,GAA0B,EAAM,QAAQ,OAAQ,EAAE,EAGrE,GACJ,OAAO,OAAW,KAAe,OAAO,UAAU,UAC9C,OAAO,SAAS,SAAS,KAAK,GAC9B,wBACA,IAAqB,GAAe,SAAS,WAAW,GAAK,KAAmB,YAChF,GACJ,OAAO,OAAW,KAAe,OAAO,UAAU,MAAQ,CAAC,IACvD,OAAO,SAAS,KAAK,KAAK,EAC1B,GACA,GAAmB,GAAmB,IAAI,KAAqB,GAE/D,GAAkB,GAClB,GAAe,SAAS,aAAa,EAChC,GAAe,QAAQ,cAAe,CAAW,EAGnD,GAQH,GAFJ,WAAW,GAAe,gBAAgB,IAAI,KAG1C,GAA6B,WAAW,GAAe,KAAK,IAAI,KAChE,GAA4B,WAAW,GAAe,cAAc,IAAI,KACxE,GAA4B,WAAW,GAAe,cAAc,IAAI,KACxE,GAAyB,WAAW,GAAe,UAAU,IAAI,KACjE,GAAqC,WAAW,GAAe,SAAS,IAAI,KAC5E,GAAiC,WAAW,GAAe,mBAAmB,IAAI,KAElF,MACA,MACA,OACA,OACA,OACA,OACA,OAKA,IACJ,GAAe,SAAS,WAAW,GAAK,GAAe,SAAS,WAAW,EAGvE,GAAgB,GAA2B,CAC/C,GAAI,CAAC,EAAQ,OAAO,EAEpB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAM,EAQ1B,OANI,EAAI,WAAa,SACnB,EAAI,SAAW,SAER,EAAI,SAAS,EAAE,QAAQ,OAAQ,EAAE,GAGnC,CACT,MAAQ,CACN,OAAO,EAAO,WAAW,OAAO,EAAI,EAAO,QAAQ,SAAU,QAAQ,EAAI,CAC3E,CACF,EAEM,GAAmB,GAAoD,CAC3E,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAa,CAAC,CAAO,EAEtB,gBAAgB,KAAK,CAAO,GAC/B,EAAW,QAAQ,UAAU,EAAQ,QAAQ,QAAS,EAAE,GAAG,EAG7D,IAAK,IAAM,KAAa,EACtB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAS,EAE7B,GAAI,EAAI,SAAU,OAAO,EAAI,QAC/B,MAAQ,CAER,CAGF,OAAO,IACT,EAEM,IAAqB,EAAsB,IAA6B,CAC5E,IAAM,GAAW,GAAS,IAAI,KAAK,EAQnC,OANK,EAME,GAAsB,GAJV,gBAAgB,KAAK,CAAO,EAC3C,EACA,WAAW,EAAQ,QAAQ,QAAS,EAAE,GAEU,CAAC,EANhC,CAOvB,EAEM,GAAyB,GAA2B,CACxD,GAAI,CAAC,IAAoB,CAAC,EAAQ,OAAO,EAEzC,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAM,EAE1B,GAAI,EAAI,MAAQ,EAAI,SAAS,SAAS,WAAW,GAAK,EAAI,WAAa,YACrE,OAAO,EAGT,IAAM,EAAmB,GAAe,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAC9D,EAAmB,EAAI,SAAS,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAElE,GAAI,GAAoB,GAAoB,IAAqB,EAG/D,MAFA,GAAI,KAAO,GAEJ,EAAI,SAAS,EAAE,QAAQ,OAAQ,EAAE,CAE5C,MAAQ,CACN,OAAO,CACT,CAEA,OAAO,CACT,EAEM,GAA6B,GAC5B,EAED,OAAO,OAAW,IAAoB,GAI1C,EAFa,GAAgB,CAExB,EANkB,GAWnB,IAAsB,EAAe,IAElC,EAKH,IACJ,OAAO,OAAW,IACd,GACA,GAA0B,EAAsB,EAC9C,GAAkB,GAAwB,EAA2B,EACrE,GACF,IAA6B,GAA0B,EAAqB,EAC9E,GAAkB,GAAuB,EAA0B,EACnE,GAEE,GAAwB,GAC5B,GAAa,GAAmB,IAA6B,GAAe,gBAAgB,CAAC,CAAC,CAChG,EACM,GAAuB,GAC3B,GAAa,GAAmB,IAA4B,GAAe,KAAK,CAAC,CAAC,CACpF,EAEa,IAAoB,WAAW,GAAe,YAAY,IAAI,KAErE,IAAkB,CACtB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAA8C,EAAyB,EACvE,GAA8C,EAAyB,EACvE,GAA2C,EAAsB,EACjE,GAAuD,EAAkC,EACzF,GAAmD,EAA8B,CACnF,EAEM,GAAgB,IAAI,IACxB,IAAgB,IAAK,GAAW,GAAgB,CAAM,CAAC,EAAE,OAAQ,GAC/D,EAAQ,CACV,CACF,EAEM,GAA2B,GAA0B,CACzD,GAAI,CAAC,EAAO,OAAO,EAEnB,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,EAAO,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,MAAS,EAQ3F,OANI,EAAI,WAAa,SAAW,GAAc,IAAI,EAAI,QAAQ,GAC5D,EAAI,SAAW,SAER,EAAI,SAAS,GAGf,CACT,MAAQ,CACN,OAAO,EAAM,WAAW,SAAS,EAAI,EAAM,QAAQ,aAAc,UAAU,EAAI,CACjF,CACF,EAIM,IAAuB,GAAsC,CACjE,GAAI,OAAO,GAAU,SACnB,OAAO,GAAwB,CAAK,EAGtC,GAAI,aAAiB,IAAK,CACxB,IAAM,EAAW,GAAwB,EAAM,SAAS,CAAC,EAEzD,OAAO,IAAa,EAAM,SAAS,EAAI,EAAQ,IAAI,IAAI,CAAQ,CACjE,CAEA,GAAI,CACF,IAAM,EAAW,EAAkB,IAC7B,EAAW,GAAwB,CAAO,EAIhD,OAFI,IAAa,EAAgB,EAE1B,IAAI,QAAQ,EAAU,CAAgB,CAC/C,MAAQ,CACN,OAAO,CACT,CACF,EAEM,IAAoC,GAAiC,CACzE,GAAI,CACF,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAS,IAAI,IACjB,EACA,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,MACzD,EAEA,OAAO,GAAc,IAAI,EAAO,QAAQ,CAC1C,CAMA,OAJI,aAAiB,IACZ,GAAc,IAAI,EAAM,QAAQ,EAGlC,GAAc,IAAI,IAAI,IAAK,EAAkB,GAAG,EAAE,QAAQ,CACnE,MAAQ,CACN,MAAO,EACT,CACF,EAEA,GACE,OAAO,OAAW,KAClB,OAAO,OAAO,OAAU,YACxB,CAAE,OAA8D,0BAChE,CACC,OAA+D,0BAA4B,GAC5F,IAAM,EAAgB,OAAO,MAAM,KAAK,MAAM,EAC9C,OAAO,OAAS,EAAqB,IAAuB,CAC1D,IAAM,EAAgB,IAAoB,CAAK,EAM/C,OAJI,GAAM,aAAe,CAAC,IAAiC,CAAa,EAC/D,EAAc,EAAe,CAAI,EAGnC,EAAc,EAAe,CAAE,GAAI,GAAQ,CAAC,EAAI,YAAa,SAAU,CAAC,CACjF,CACF,CAEA,IAAM,IAA+B,EAAoB,IACvD,OAAO,OAAW,IAAc,EAAW,GAAkB,EAAY,CAAQ,EAEtE,GAAsB,GACjC,GAA4B,IAAsB,EAAyB,CAC7E,EACa,GAAsB,GACjC,GAA4B,IAAsB,EAAyB,CAC7E,EACa,GAA+B,GAC1C,GAA4B,IAAmB,EAAsB,CACvE,EACa,GAAgC,GAC3C,GAA4B,IAA+B,EAAkC,CAC/F,EACa,GAA2B,GACtC,GAA4B,IAA2B,EAA8B,CACvF,EAEa,GAAa,GAAG,GAAoB,SACpC,GAAiB,GAAG,GAA6B,SACjD,GAAuB,GAAG,GAAoB,SAC9C,GAAiC,GAAG,GAA8B,SAClE,GAA4B,GAAG,GAAyB,SAExD,QACJ,CAAC,GAGG,IAAwC,yCAExC,GACiB,IAAuB,YAAc,cCvRtD,GAAqB,GAAwB,CACxD,QAAS,GACT,YAAa,SACf,CAAC,EACK,GAAgB,IAAI,GAAiB,CACzC,QAAS,GACT,YAAa,UACb,eAAgB,WAChB,eAAgB,GAChB,QAAQ,EAAO,CACR,EAAkC,aAAe,KAAK,GAAqB,CAClF,CACF,CAAC,EACK,OAA4B,CAChC,IAAM,EAAU,GAAI,EAAc,EAC5B,EAAU,GAAsB,EAEtC,GAAI,CAAC,GAAW,CAAC,EACf,MAAM,IAAI,aAAa,mCAAoC,mBAAmB,EAEhF,IAAM,MAAsB,CAC1B,GAAI,GAAI,EAAc,IAAM,GAAW,EAAQ,OAAO,SAAW,CAAC,EAAQ,UAAU,EAClF,MAAM,IAAI,aAAa,yBAA0B,YAAY,CACjE,EAGA,OAFA,EAAc,EAEP,CAAE,QAAS,EAAQ,QAAS,eAAc,CACnD,EAEa,IAA0B,GACrC,GAAc,UAAU,QAAW,MAAO,SAAS,GAAM,EAErD,QAAyC,CAC7C,YAAa,GACb,cAAe,KACf,KAAM,KACN,cAAe,CAAC,EAChB,SAAU,CAAC,CACb,GAEI,GAA2B,GAAa,EACxC,GAAiD,KAE/C,GAAqB,GACzB,EAAQ,QAAQ,OAAS,eACrB,GAAc,MAAM,aAAa,SAC9B,IAAI,EAAQ,QAAQ,eAAe,EACnC,KAAM,GAAiB,CAAC,CAAY,CAAC,EACxC,GAAc,MAAM,aAAa,SAAS,KAAK,EAE/C,GAAkC,MACtC,EAAU,GAAoB,IACP,CACvB,GAAM,CAAE,UAAS,iBAAkB,EAInC,GAHA,EAAc,EAGV,EAAQ,QAAQ,OAAS,eAAgB,MAAO,CAAC,EAErD,IAAM,EAAgB,MAAM,GAAkB,CAAO,EACrD,EAAc,EACd,IAAM,EAAgB,MAAM,QAAQ,IAClC,EAAc,IAAI,KAAO,IAAiB,CACxC,GAAI,CACF,OAAO,MAAM,GAAc,MAAM,aAAa,QAAQ,KAAK,EAAa,EAAE,CAC5E,OAAS,EAAK,CAGZ,OAFA,QAAQ,KAAK,mCAAoC,EAAa,GAAI,CAAG,EAE9D,CAAC,CACV,CACF,CAAC,CACH,EAGA,OAFA,EAAc,EAEP,EAAc,KAAK,CAC5B,EAEM,GAAuB,IAAsC,GAAS,IAAI,KAAK,EAE/E,KAA4B,EAAkB,IAAgC,CAClF,IAAM,EAAa,GAAoB,CAAU,EAEjD,MAAO,CAAC,EAAQ,GAAI,EAAQ,KAAM,EAAQ,IAAI,EAAE,KAC7C,GAAU,GAAoB,CAAK,IAAM,CAC5C,CACF,EAEa,IAAyB,KACpC,IACiC,CACjC,IAAM,EAAmC,GAAoB,CAAsB,EAEnF,GAAI,CAAC,EACH,MAAU,MAAM,wBAAwB,EAG1C,OAAO,GAAc,MAAM,aAAa,SAAS,IAAI,CAAgC,CACvF,EAEa,IAAgC,MAC3C,EACA,IACqB,CACrB,IAAM,EAA8B,GAAoB,CAAiB,EAEzE,GAAI,CAAC,EACH,MAAU,MAAM,mBAAmB,EAGrC,IAAM,EAAyB,GAAoB,GAAS,sBAAsB,EAC5E,EAAU,GAAoB,EAEpC,GAAI,EACF,OAAO,GAAc,MAAM,aAAa,QAAQ,IAC9C,EACA,CACF,EAGF,IAAM,EAAW,MAAM,GAAgC,CAAO,EAC9D,EAAQ,cAAc,EACtB,IAAM,EAAQ,EAAS,KAAM,GAC3B,IAAyB,EAAS,CAA2B,CAC/D,EAEA,GAAI,CAAC,GAAO,IAAM,CAAC,EAAM,gBACvB,MAAU,MAAM,mBAAmB,EAGrC,OAAO,GAAc,MAAM,aAAa,QAAQ,IAAI,EAAM,gBAAiB,EAAM,EAAE,CACrF,EAEM,QAA+B,CACnC,GAAQ,GAAa,EACrB,GAAc,IAChB,EAEa,IAAmB,KAAO,IAEL,CAChC,GAAI,CAAC,GAAS,OAAS,GAAa,OAAO,GAE3C,GAAI,CAAC,GAAS,OAAS,GAAM,YAAa,OAAO,GAEjD,IAAM,EAAU,GAAoB,EAC9B,EAAsC,QAAQ,IAAI,CACtD,GAAkB,EAAQ,OAAO,EACjC,GAAgC,CAAO,CACzC,CAAC,EACE,MAAM,CAAC,EAAe,KAAc,CAGnC,GAFA,EAAQ,cAAc,EAElB,KAAgB,EAClB,MAAM,IAAI,aAAa,6BAA8B,YAAY,EAUnE,MARA,IAAQ,CACN,YAAa,GACb,cAAe,KAAK,IAAI,EACxB,KAAM,EAAQ,QAAQ,KACtB,gBACA,UACF,EAEO,EACT,CAAC,EACA,YAAc,CACT,KAAgB,IAAS,GAAc,KAC7C,CAAC,EAGH,MAFA,IAAc,EAEP,CACT,EAIa,QAA+C,GAAM,KAoBrD,IAA+B,SAA2B,CACrE,GAAI,CACF,MAAM,GAAmB,KAAK,OAAO,CACvC,OAAS,EAAO,CACd,QAAQ,KAAK,wBAAyB,CAAK,CAC7C,CACF,EAoBA,GAAe,cAAgB,IAAuB,CAAC,0rFCtPvD,aAQI,EAAO,gBAAG,EAAK,EAOX,EAAQ,eAAmB,UAAY,SAAS,EAChD,EAAK,eAAmB,OAAS,EAAE,EACnC,EAAI,eAAmB,MAAQ,EAAE,EAEjC,EAAW,MAAY,KAAK,IAAI,OAAM,SAAQ,UAAU,KAAO,GAAG,EAAG,CAAC,GACtE,EAAa,MACjB,KAAK,IAAI,KAAK,IAAI,OAAM,SAAQ,UAAU,OAAS,CAAC,EAAG,CAAC,IAAG,CAAW,IAElE,EAAe,MAAY,KAAK,MAAK,EAAE,CAAa,IAAG,CAAW,EAAI,GAAG,GAEzE,MAAqB,KACnB,EAAM,SAAU,OAEjB,gBAEM,EAAO,SAAY,WAAY,CACxC,EAAO,QAAO,QAGhB,CAEI,EAAO,QACM,EAAO,SAAW,SAAW,SAAW,UAExC,SACb,OAAO,KAAK,EAAO,KAAM,SAAU,qBAAqB,EAExD,OAAO,SAAS,OAAO,EAAO,IAAI,EARtC,CAWF,EAEM,MAAsB,UACnB,YAAS,yBACG,EAAE,CACvB,MAGD,kBAME,EAAG,EANL,GAOI,EAAG,EADL,CAAG,EAEC,EAAG,EADL,CAAG,EAEC,EAAC,EADH,CAAG,MACD,EAAC,MAAD,CAAC,UAAD,EAAC,aAEC,EAAI,MACF,KADF,CACM,qBAAO,QADb,CAAI,KAAJ,GAAI,sBAAgB,QAAO,EAAE,CAAI,SAAjC,CAAI,aADF,CAAI,YAFV,CAAG,UAAH,EAAG,aASD,QAIE,EAAG,EAJL,GAKI,EAAI,EADN,CAAG,IAAH,CAAG,UAAH,EAAG,aAID,EAAI,UAAJ,EAAI,MAAJ,CAAI,qBAAgC,SAAS,KAAK,OAAlD,CAAI,oBADK,SAAS,OAAK,SAP3B,oCAEoB,SAAS,OAAK,iBAAmB,CAAe,SAGhE,EAAI,WAAuC,CAAe,YAL9D,qBADS,UAAQ,SATrB,CAAG,MAuBH,EAAG,EAvBH,EAAG,OAuBH,CAAG,YAEC,EAAM,MACJ,EAAI,EADN,CAAM,MACJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,SACS,GAAI,qBAAO,2BAApB,EAAO,YAFb,CAAM,WAAN,EAAM,sBAA0D,OAAO,KAAK,eACxC,OAAO,KAAK,cADhD,EAA+B,CAAY,MAA3C,CAAM,oBADG,QAAM,8BAOf,EAAM,gBAAN,EAA8B,CAAa,MAA3C,CAAM,oBADG,cAAgB,IAAK,SAPlC,CAAG,IAxBL,CAAG,IANL,+EAGe,CAAQ,IAAK,gBACf,CAAQ,IAAK,eAKE,CAAK,SATjC,MAFO,shCCnDR,0FAQQ,EAAW,GAAW,EAK1B,EAAe,wBAAG,IAAI,EACtB,EAAiB,0BAAG,0BAA0B,EAC9C,EAAkB,2BAAG,OAAO,EAC5B,EAAM,eAAG,EAAI,EACb,EAAW,oBAAG,EAAI,EAClB,EAAQ,iBAAG,yBAAiB,EAkBxB,MAAgC,CAC/B,EAAe,IAEhB,EAAkB,IAAK,SACzB,OAAO,KAAK,EAAe,EAAE,SAAU,qBAAqB,EAE5D,OAAO,SAAS,OAAO,EAAe,GAE1C,EAEM,EAAY,EAAY,CAAe,EACvC,EAAM,EAAY,CAAc,EAEhC,EAAiB,GAAyC,KACxD,EAAW,GAAQ,EAAI,CAAM,GAAE,IAAM,KAEtC,MAEL,CAAM,GAAE,YAAS,EACjB,GAAa,CAAQ,EACvB,kDAKG,GAAa,yBAAE,CAAM,aAAa,eADhC,CAAM,IAAK,GAAQ,WAGvB,mBAKE,EAAG,EALL,OAKE,CAAG,YACc,EAAG,UAAH,CAAG,yDAIR,IAAJ,CAAI,oCAJK,CAAG,MAAH,CAAG,WAAb,GAAQ,WAQb,EAAG,WAAH,CAAG,QAEC,GAAa,yBAAE,CAAM,wBAAqB,eADxC,CAAM,GAAI,GAAQ,2IAOjB,IAAK,EAAe,EACpB,MAAO,EAAiB,EACxB,OAAQ,EAAkB,mBAG3B,kDAEU,EAAiB,WACjB,sEAXV,EAAe,YALrB,CAAG,IATL,CAAG,UAAH,EAAG,aAgCD,EAAG,UAAH,CAAG,2DAIC,2CAJJ,CAAG,MAAH,CAAG,WADD,EAAW,IAAK,GAAQ,SApC9B,iEAKE,EAAG,aAAsD,EAAQ,sCAHpC,EAAQ,8BACL,EAAM,IAAK,wBAP1C,CAAY,wBAFV,sKCzDR,aAII,EAAI,aAAG,IAAI,EACX,EAAI,aAAG,EAAE,EACT,EAAK,cAAG,IAAI,EACZ,EAAU,mBAAG,EAAK,EAQd,EAAW,OACE,EAAI,GAAE,aAAe,IAAI,KAEtC,GAEO,CAAI,EAAI,GAAE,UAAW,EAAI,GAAE,QAAQ,EAC3C,IAAK,IAAW,GAAS,IAAI,KAAI,GACjC,OAAO,OAEH,EAAM,KAAK,GAAG,EAAE,KAAI,CAC5B,EAEK,EAAS,MAAqB,KAC5B,EAAM,EAAI,GAAE,WAAa,mBAEjB,GAAQ,UAAY,EAAI,KAAI,EAAK,EAAI,KAAI,EAAK,IAC9D,CAAC,EAEK,EAAa,QAAqB,CAAW,IAAK,EAAI,GAAE,OAAS,IAAI,KAAI,GAAM,UAAU,EAEzF,EAAa,OACN,EAAG,CAAa,EAAC,MAAM,eAE1B,IAAQ,IAAM,KAAK,YAAW,CACvC,EAEK,EAAa,MAAqB,EAAK,GAAE,KAAI,KAAM,CAAa,OAGvE,yBAOI,EAAG,eAAH,EAAG,QAAM,CAAS,KAAlB,EAAG,QAAsB,CAAW,GAAI,EAAI,GAAE,OAAS,YAAY,QAAnE,CAAG,aAEH,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAqB,CAAa,QAAtC,CAAI,aAHF,CAAS,mBANf,yEAEyC,EAAI,SAF7C,YAGQ,CAAa,KAHrB,iBAIa,CAAa,wCAHQ,CAAS,EAAG,YAAc,GAAE,GAAI,EAAU,EAAG,gBAAkB,KAAK,KAAI,SAD1G,MAFO,iIC1CR,SAiBoB,kCACK,8BAAG,CAAC,MACzB,EAAU,uBAAS,CAAC,CAAC,MAIxB,EAAO,MACL,IADF,CAAO,EAUH,KATF,CASc,sCAAsB,aAAc,uBAA2B,GAChE,cAAa,iCACK,WAAa,GAAe,EAAe,EAApE,GAAI,6EAXV,KADF,CAAO,WACL,yBACqB,IAAI,IADzB,2BAEuB,MAAM,IAF7B,wBAGoB,YAAU,gBAAkB,SAAW,SACtD,sBACA,MAAS,cALd,EAOW,GAAU,EAAU,kBAAgB,CAAK,OARtD,CAAO,KAFA,mOCrBR,aAYQ,EAAK,uBAAO,EAAU,uBAAS,CAAC,CAAC,MAGxC,EAAG,SAAH,EAAG,GACK,EAAS,GAAM,EAAK,KAAG,EAAd,IAAI,KACjB,kBAME,EAAG,EANL,GAOI,EAAI,EADN,CAAG,MACD,EAAI,MAAJ,CAAI,IADN,CAAG,EAGH,KAHA,EAAG,CAGC,qBAAO,uBATb,wCACO,CAAI,EAAC,IAAI,MADhB,qCAGe,CAAI,EAAC,QAAQ,SAIY,CAAI,EAAC,KAAK,cAPlD,MAIgB,EAAU,EAAC,OAAO,OAJlC,OAFJ,CAAG,MAAH,CAAG,KAFI,0OCbR,aAYQ,EAAK,uBAAO,EAAU,uBAAS,CAAC,CAAC,EAAE,EAAe,wBAAG,EAAK,EAE1D,EAAa,MACjB,EAAK,EAAC,KAAK,EAAM,IAAU,KACnB,EAAS,EAAK,QAAU,QACxB,EAAU,OACP,EAAK,YAAe,UAAY,EAAK,WAAa,IAAW,mBAGjE,EACH,SACA,aACA,IAAK,EAAK,KAAG,GAAO,EAAK,GAAI,EAAK,OAEtC,CAAC,OAIJ,EAAG,eAAH,EAAG,SACK,CAAa,EAAI,GAAM,EAAK,KAAG,EAAd,IAAI,KACzB,kBAUE,EAAG,EAVL,GAWI,EAAI,EADN,CAAG,MACD,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAEF,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAA0B,CAAI,EAAC,WAAW,OAA9C,CAAI,aADF,CAAI,EAAC,aAAW,SAFtB,CAAG,UAAH,EAAG,kBAMQ,CAAI,EAAC,WAAa,GAAe,EAAe,EAA3D,GAAI,2CAhBN,uBACO,CAAI,EAAC,IAAI,IADhB,aAES,CAAI,EAAC,MAAM,IAFpB,UAGM,CAAI,EAAC,WAAa,sBAAwB,MAAS,MAHzD,sCAQe,CAAI,EAAC,MAAM,SAGE,CAAI,EAAC,KAAK,cAXtC,EAIW,GAAU,CAClB,EAAM,eAAc,EACpB,EAAU,IAAC,CAAI,EAAE,CAAK,CACxB,CAAC,MAPF,OAFJ,CAAG,YAAH,EAAG,2EAA8D,EAAe,SAAhF,CAAG,KAFI,yvBC5BR,8DAgcU,EAAa,2BAElB,+BAEU,0CAEH,4BACI,CAAa,cANtB,EAAQ,MAAK,CAAU,kBAvZ1B,EAAQ,0BACR,EAAU,4BACV,EAAI,aAAG,IAAI,EACX,EAAQ,iBAAG,IAAI,EACf,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAW,oBAAG,IAAI,EAClB,EAAW,oBAAG,IAAI,EACR,mBAAG,IAAI,MACjB,EAAiB,0BAAG,IAAI,EACxB,EAAM,eAAG,EAAK,EACd,EAAe,wBAAG,IAAI,EACtB,EAAc,gCACd,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAG3B,EAAgB,EAAO,EAAK,EAC5B,EAAa,EAAO,EAAK,EACvB,EAAS,OAAU,OAAW,IAE9B,GAAY,EAAuC,IAAgB,CAClE,KAEU,EAAK,QAAU,WAEf,SACb,OAAO,KAAK,EAAK,SAAU,qBAAqB,EAEhD,OAAO,SAAS,OAAO,CAAG,EAE9B,EAEM,EAAU,GACd,EACE,GAAO,MAAM,4EAA4E,EAGzF,EAAkD,KAClD,EAA8C,KAE5C,EAA6B,GAAmB,KAC9C,EAAmB,EAAO,QAAQ,OAAQ,EAAE,UAE7C,GAA0B,IAAiC,KAC9D,EAAsB,IAAO,GAAgB,CAAG,QAAS,CAAgB,GACzE,EAA+B,GAG1B,CACT,EAEM,EAAwB,KAAU,IAAwC,IAC1E,EAAK,MAAQ,iBAAe,CAAK,EAAiB,SAAS,EAAK,SAE9D,EAAS,IAAO,IAAI,EAAK,KAAM,OAAO,SAAS,IAAI,KACrD,KAEI,EAAO,MADE,EAA0B,EAAiB,CACpC,EAAO,MAAM,KAAK,yBAAwB,CAC9D,eAAgB,4BAChB,cAAe,EAAU,OACzB,WAAY,EAAO,EAAS,GAAI,EAAS,EAAG,OAC5C,aAAc,EAAW,IAAM,EAAO,EAAS,GAAgB,OAAZ,EAAS,YAG1D,EAAQ,MAAM,KAAI,GACpB,EAAU,aAAa,IAAI,eAAgB,EAAQ,KAAK,KAAI,GAGvD,EAAU,SAAQ,CAC3B,OAAS,EAAK,QACZ,QAAQ,KAAK,8CAA+C,CAAG,EAExD,EAAK,IACd,CACF,EAEM,GAA8B,EAAkB,IAAuB,CAC3E,GAAO,eAAc,EACrB,EAAS,EAAM,EAAK,IAAI,EACxB,GAAS,CACX,EAEM,GAAqB,MAAU,EAAkB,IAAuB,CAC5E,GAAO,eAAc,MACf,EAAY,EAAQ,EAAC,KAAM,GAAU,EAAM,OAAS,EAAK,IAAI,EAEnE,EAAS,EADI,EAAS,MAAS,EAAyB,CAAS,EAAI,EAAK,IACvD,EACnB,GAAS,CACX,EAEM,GAA2B,MAAU,EAAoB,IAAuB,CACpF,GAAO,eAAc,EACrB,EAAS,EAAI,MAAQ,EAAyB,CAAI,GAClD,GAAS,CACX,EAEM,GAAmB,GAAgC,OAChD,GAAU,SAAW,EAAM,QAAQ,MAAO,EAAE,EAAI,GAEnD,EAAkB,GAAqC,KACrD,EAAG,OAAU,GAAU,SAAW,EAAQ,GAC1C,EAAY,EAAI,QAAQ,GAAG,EAC3B,EAAU,IAAS,GACnB,EAAO,EAAU,EAAI,MAAM,CAAS,EAAI,GACxC,EAAc,EAAU,EAAI,MAAM,EAAG,CAAS,EAAI,EAElD,EAAa,EAAY,QAAQ,GAAG,EACpC,EAAW,IAAU,GACrB,EAAS,EAAW,EAAY,MAAM,CAAU,EAAI,UAGjD,MAFI,EAAW,EAAY,MAAM,EAAG,CAAU,EAAI,IAEpC,IAAK,SAAQ,MAAI,CAC1C,EAEM,IAAiB,GAAO,IAA+C,KACrE,EAAM,IAAO,uBACnB,EAAS,QAAS,GAAU,KACpB,EAAa,GAAgB,CAAK,EAEnC,GAGL,IADmB,gBAAgB,CACnC,EAAO,SAAS,EAAO,IAAQ,CAC7B,EAAO,IAAI,EAAK,CAAK,CACvB,CAAC,CACH,CAAC,EAEM,CACT,EAEM,OAAkB,CACtB,EAAe,KACjB,EAEM,GAAa,SAAe,OAC3B,EAAQ,KAAI,CAAa,KAAI,CAAU,MAE5C,EAAgB,OACZ,OACI,EAAQ,MACd,EAAa,IACb,GAAS,CACX,OAAS,EAAK,CACZ,QAAQ,MAAM,4BAA6B,CAAG,IAC9C,EAAgB,GAClB,CARgB,CASlB,EAEM,GAA2B,GAAgC,CAE/D,GAAS,CACX,EAEM,GAAU,MAAY,EAAQ,EAAI,UAAa,EAAQ,GAAK,YAAU,GAAK,CAAU,GACrF,GAAS,MAAY,EAAQ,EAAU,GAAE,QAAW,EAAQ,EAAc,GAC1E,GAAU,MAAY,EAAI,GAAI,EAAI,EAAC,UAAW,EAAI,EAAC,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAI,EAAE,EAC3F,GAAS,MAAqB,KAC5B,EAAM,EAAI,GAAE,WAAa,YAE1B,GAEW,EAAI,KAEb,GAJU,IAKnB,CAAC,EACD,OAAc,CACZ,EAAa,MACb,EAAsB,IAAG,CAAa,CACxC,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,MAEK,GAAmB,MAAY,EAAoB,GAAE,OAAK,IAC1D,GAA2B,SAC9B,EAAmB,EAAC,SACjB,IACA,MAAM,QAAQ,EAAc,GAC1B,QAEJ,OAAO,OAAO,GAGZ,GAAW,QACf,EAAmB,EAAC,OACf,EAAoB,EAAC,MAAQ,WACvB,OAAW,IACf,OAAO,SAAS,UAAY,IAC7B,GAAG,EAGL,GAAa,QACjB,EAAmB,EAAC,OACf,EAAoB,EAAC,QAAU,UACzB,OAAW,IACf,OAAO,SAAS,QAAU,GAC3B,EAAE,EAGJ,IAA0B,EAA8B,IAAiB,KACxE,EAAM,OAAM,MAAS,OAEtB,EAAY,EACZ,EAAe,UAEnB,EAAM,SAAS,EAAM,IAAU,KACvB,EAAiB,EAAe,GAAM,IAAI,EAAE,SAE7C,EAAc,WAEb,EAAa,IAAS,EACtB,EAAc,EAAK,SAAS,CAAc,GAE5C,GAAc,IACZ,EAAe,OAAS,IAC1B,EAAY,EACZ,EAAkB,EAAe,OAGvC,CAAC,EAEM,CACT,EAEM,IAAyB,EAAuB,IAAmB,KAClE,EAAK,OAAM,MAAS,OAEnB,EAAM,IAAO,gBAAgB,GAAgB,CAAM,GACnD,EAAY,OAAO,EAAO,IAAI,KAAK,UAErC,OAAO,UAAU,CAAS,GAAK,GAAa,GAAK,EAAY,EAAK,OAC7D,EAGF,CACT,EAEM,IACJ,EACA,EACA,IACG,KACK,OAAQ,GAAe,EAAe,GAAM,IAAI,EAClD,EAAS,GAAkB,EAAY,CAAa,EACpD,EAAW,GAAM,MAAM,QAAU,KACf,EAAW,GAEhB,OAAW,GAAa,SAAU,KAC7C,EAAW,KAAK,IAAI,EAAG,EAAW,CAAC,EACnC,EAAY,KAAK,IAAI,EAAU,CAAQ,EAC7C,EAAO,IAAI,MAAO,OAAO,CAAS,EACpC,MACE,EAAO,OAAO,KAAK,MAGf,EAAa,EAAO,SAAQ,SAE3B,EAAU,IAAO,IAAe,EACzC,EAEM,IACJ,EACA,EACA,IACG,KACE,EAAI,MAAS,OAEV,KAAM,EAAU,QAAS,EAAe,EAAK,IAAI,WAG/C,IAFY,GAAmB,EAAM,EAAU,CAEpC,IAAgB,GAAQ,IAC/C,EAEM,IACJ,EACA,EACA,KAEK,GAAI,CAAK,EAAK,OAAM,GAElB,EAAK,KAAK,EAAK,KAAK,CACzB,MAAO,EAAI,MACX,KAAM,GAAgB,EAAM,EAAO,CAAM,KAIvC,GAAkB,MACtB,GAAsB,EAAC,EAA2B,IAAE,EAAW,IAE3D,GAAiB,QAAY,EAA2B,IAAC,EAAkB,IAAK,IAAI,EACpF,GAAiB,QAAY,EAAiB,GAAE,MAAI,IACpD,GAAqB,MAAY,GAAqB,EAAC,EAAiB,IAAE,EAAa,IACvF,GAAgB,MACpB,GAAc,EAAC,EAAiB,IAAE,EAAiB,IAAE,EAAa,IAG9D,IAAe,EAA2B,IAGvC,GAAgB,EAFJ,IAAK,EAAK,EAAkB,IAAG,EAAqB,EAAG,EAEnC,EAAE,EAAa,GAGlD,GAAa,MAAY,EAAQ,EAAC,KAAM,GAAS,EAAK,QAAQ,GAAK,EAAQ,EAAC,IAAM,IAAI,EACtF,GAAgB,MAAY,EAAQ,EAAC,OAAQ,GAAS,IAAI,EAAK,EAAa,IAE5E,GAAe,QACnB,EAA2B,EAAC,KAAqB,EAAM,KAAK,CAC1D,IAAK,EAAK,MAAI,QAAY,IAC1B,MAAO,EAAK,MACZ,KAAM,GAAY,EAAM,CAAK,EAC7B,UAAW,EAAK,MAAM,QAAU,EAChC,SAAU,IAAK,EAAK,EAAkB,MAIpC,GAAa,OAChB,EAAU,OAAQ,KAAK,EAAM,IAAU,KAChC,EAAS,EAAK,QAAU,eAG5B,KAAM,EAAK,KACX,MAAO,EAAK,MACZ,YAAa,EAAK,YAClB,SACA,WAAY,IAAW,SACvB,IAAG,SAAW,EAAK,GAAI,EAAK,OAEhC,CAAC,OAIJ,GAAG,sBAAH,EAAG,SAEC,oCACE,EAAa,mCACb,EAAgB,wCAChB,EAAqB,cACV,iBALX,EAAa,qCAUf,EAAO,MAEL,QAFF,CAAO,GAEiB,wBAAQ,EAAe,cAAc,OAF7D,CAAO,MAAP,CAAO,cADL,EAA2B,EAAC,QAAM,kCAQpC,EAAO,MAEL,OAFF,CAAO,GAEO,wBAAQ,EAAgB,cAAc,OAFpD,CAAO,MAAP,CAAO,cADL,EAAgB,EAAC,QAAM,kCAQzB,EAAG,UAAH,CAAG,0BAES,OAAc,CACrB,YAAS,EACT,cAAW,EACX,cAAW,EACX,WAAQ,EACR,aAAU,EACV,gCAPC,EAAc,6BAWhB,2BACQ,EAAa,cACR,kBACK,gBAJhB,EAAa,EAAC,QAAM,SAX1B,CAAG,MAAH,CAAG,cADD,EAAS,qCAuBX,EAAG,UAAH,CAAG,YAEC,EAAG,UAAH,CAAG,iBAGE,UAAW,EAAI,EAAC,UAChB,SAAU,EAAI,EAAC,SACf,YAAW,EAAE,EAAU,EACvB,MAAO,EAAI,EAAC,MACZ,UAAS,EAAT,EAAS,KANZ,oCAQO,SAEP,EAAG,OAED,EAAM,IAFR,CAAG,SAED,EAAM,MAAN,CAAM,UAAN,EAAM,aAEJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAgB,EAAI,EAAC,KAAK,OAA9B,CAAI,WADF,EAAI,EAAC,OAAK,SAHhB,CAAG,IAXL,CAAG,cAaS,EAAU,GAAI,EAAI,EAAC,OAAS,OAAO,OAb/C,CAAG,WADD,EAAI,YADV,CAAG,MAAH,CAAG,cADD,EAAU,aA9ChB,EAAG,aAAH,GAAG,sDAAwC,EAAM,SAAjD,EAAG,SAFI,8GCrXR,aAmCI,EAAS,kBAAG,IAAI,EAChB,EAAW,oBAAG,IAAI,EAClB,EAAW,oBAAG,IAAI,EAClB,EAAgB,yBAAG,IAAI,EACvB,EAAO,gBAAG,IAAI,EACd,EAAU,4BACV,EAAI,aAAG,IAAI,EACX,EAAQ,iBAAG,IAAI,EACf,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,YAAY,EACxB,EAAW,oBAAG,mBAAmB,EACjC,EAAc,gCACd,EAAiB,0BAAG,IAAI,EACxB,EAAiB,0BAAG,EAAI,EASpB,MAA2B,KACzB,EAAW,IACb,IAAkB,CAChB,WAAU,aACV,YAAS,EACT,cAAW,EACX,UAAO,EACP,OAAQ,EAAI,GAAE,IAAM,KACpB,mBAAgB,OAItB,GAAW,CACT,MAAO,EAAS,EAChB,QAAS,IACT,WAAU,CACR,WACA,aAAU,EACV,OAAI,EACJ,WAAQ,EACR,iBAAc,EACd,YAAS,EACT,cAAW,EACX,cAAW,EACX,iBAAc,EACd,WAAU,aACV,oBAAiB,IAGvB,MAGD,QAME,KANF,CAMM,qBAAO,sBANb,0BAIa,EAAW,cAJxB,EAGU,CAAkB,MAH5B,MAFO,eCpFR,IAAa,GAAqB,GAAqC,IAAI,ECC9D,GAAyB,GAAgC,CAAC,CAAC,EAC3D,GAAuB,GAAS,EAAK,EACrC,GAAqB,GAAwB,IAAI,EAEjD,GAAoB,GAAoB,CAAC,CAAC,EAC1C,GAAkB,GAAS,EAAK,EAChC,GAAgB,GAAwB,IAAI,EAE5C,GAA6B,GAA6C,CACrF,GAAmB,IAAI,CAAY,CACrC,wMCdA,6DAcQ,EAAc,uBAAG,IAAI,EAErB,EAAgB,MAAY,EAAmB,GAAE,MAAQ,IAAI,EAC7D,EAAgB,MAAY,EAAmB,GAAE,MAAQ,EAAmB,GAAE,IAAM,IAAI,EAExF,EAAM,SAAe,OACnB,IAA4B,EAClC,GAA0B,IAAI,EAC9B,OAAO,SAAS,OAAO,EAAoB,CAC7C,MAGD,EAAG,MACC,IADJ,CAAG,EAOE,KAND,CAMK,qBAAO,uBANZ,+BAcU,gBAAiB,EAAoB,IAN/C,0CAEU,iBACE,gCACA,CAAgB,mCAC5B,CAAgB,6DAEE,aACT,8BACT,EAAc,8BAlBlB,CAAG,YACC,MAKc,GAAmB,KAAK,OAAO,YAAW,OAN5D,CAAG,SAFI,eCdR,GAAwB,0BAA6B,CACnD,GAAc,CAChB,CAAC,EAED,IAAM,GAAa,GAAwB,CACzC,cAAe,CAAC,EAAkB,EAClC,OAAS,GAOP,GANI,CAAC,GAAQ,IAAS,KAElB,EAAK,WAAW,GAAG,GAAK,EAAK,WAAW,GAAG,GAE3C,EAAK,WAAW,iBAAiB,GAEjC,EAAK,WAAW,SAAS,EAIjC,CAAC,EAEY,IACX,GAAW,QAEA,GAAc,GAAW,YAMhC,GAAU,GAAsC,EAAQ,mBAAmB,CAAK,EAAI,KAEpF,OAAuC,CAC3C,GAAI,OAAO,OAAW,IAAa,CACjC,IAAM,GAAY,OAAO,SAAS,UAAY,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EAE3E,GAAI,EAAS,KAAO,iBAAmB,EAAS,GAC9C,GAAI,CACF,OAAO,mBAAmB,EAAS,EAAE,CACvC,MAAQ,CACN,OAAO,EAAS,EAClB,CAEJ,CAEA,IAAM,EAAe,GAAI,EAAkB,EAE3C,OAAO,GAAc,MAAQ,GAAc,IAAM,IACnD,EAEa,GAA2B,GAGlC,CACJ,IAAM,EAAU,GAAO,GAA+B,CAAC,EAUvD,OARK,EAQE,kBAAkB,IANV,GAAS,OACpB,EAAQ,OAAO,WAAW,GAAG,EAC3B,EAAQ,OACR,IAAI,EAAQ,SACd,KANiB,IASvB,EAEa,QAA8B,CACzC,IAAM,EAAU,GAAO,GAA+B,CAAC,EAMvD,OAJI,EACK,kBAAkB,EAAQ,OAG5B,GACT,2LCnFA,aAMI,EAAQ,iBAAG,IAAI,EACf,EAAQ,iBAAG,EAAK,EAGZ,EAAY,MAChB,KAAU,YAAc,kCAAoC,uBAAuB,EAE/E,EAAO,MAAqB,EAAQ,GAAE,aAAW,EAAI,CAAY,8BAIjE,IAAH,CAAG,aAEH,EAAC,QAAD,EAAC,OAAmB,GAAQ,MAAG,EAAG,EAAlC,CAAC,IAAD,CAAC,KAAD,EAAC,qBAA8B,EAAG,QAAM,CAAO,QAA/C,CAAC,WAHD,EAAQ,2BAFL,iBCdR,KAQI,EAAc,uBAAG,IAAI,EACrB,EAAQ,iBAAG,IAAI,EACf,EAAQ,iBAAG,EAAK,EAQnB,IAAgB,mBAAkB,KACrB,MAAK,IACV,GAAU,yBAAE,EAAQ,yBAAG,EAAQ,MAE1B,QAAO,IACZ,IAAa,+BAAE,EAAc,qCAP9B,iqLChBR,0FAUQ,EAAW,GAAW,EACtB,EAAkB,IAAqB,EAuB3C,EAAa,sBAAG,EAAe,EAC/B,EAAQ,iBAAG,IAAI,EACf,EAAe,wBAAG,IAAI,EACtB,EAAc,uBAAG,MAAS,EAC1B,EAAkB,2BAAG,MAAS,EAC9B,EAAW,oBAAG,IAAI,EAClB,EAAgB,yBAAG,EAAK,WAWjB,EAAa,EAAkC,QAC/C,IAAU,YAAc,YAAc,aAC/C,KAEI,EAAY,EAAM,GAAC,EAAa,IAAI,IAClC,EAAgB,EAAY,CAAQ,EACpC,EAAgB,EAAY,CAAe,EAC3C,EAAe,EAAY,CAAc,EAE/C,OAAc,WACD,SAAa,IAAW,WAE7B,EAAO,SAAS,gBAEhB,MAAkB,GACtB,EAAY,EAAa,EAAK,QAAQ,OAAO,KAC/C,EAEA,EAAS,MAEH,EAAQ,IAAO,iBAAiB,CAAS,SAC/C,EAAS,QAAQ,EAAI,CAAI,WAAY,GAAM,gBAAe,CAAG,eAAe,QAE/D,EAAS,WAAU,CAClC,CAAC,MAEK,EAAc,QAClB,CAAS,GAAI,cAAgB,2BAA6B,sBAAsB,EAE5E,EAAW,QAAY,CAAS,IAAK,WAAW,EAEhD,EAAiB,MAAqB,IACtC,EAAc,IAAK,OAAS,OAAS,SAEnC,EAAkB,WACb,KAAQ,EAAc,MAC1B,GAAM,OAEP,EAAK,OAAS,MAChB,EAAM,KAAI,CAAG,KAAM,EAAK,KAAM,MAAO,KAAK,GACjC,EAAK,OAAS,OACvB,EAAM,KAAI,CAAG,KAAM,EAAK,KAAM,MAAO,KAAK,WAIvC,CACT,CAAC,EAEK,EAAiB,QAEnB,KAAI,KAAK,CAAc,cACvB,MAAO,cAGP,KAAI,KAAK,CAAc,gBACvB,MAAO,6BAEL,CAAiB,MAClB,KAGO,KAAI,KAAK,CAAc,QACvB,MAAO,KAAK,GAGZ,KAAI,KAAK,CAAc,QACvB,MAAO,KAAK,SAMlB,EAAU,MACd,EAAkB,IAAK,OACC,MACf,CAAiB,SAAc,EAAe,OADjD,EAAkB,KAC+B,EAEnD,EAAY,QAAY,CAAgB,GAAI,IAAoB,EAAC,CAAe,GAAE,MAAM,uCAMnF,GAAiB,SAAW,EAAK,YAItC,GAAI,QACJ,MAAO,cACP,KAAM,GACN,MAAK,EAAE,CAAU,EAAC,KAAK,EAAM,KAAK,CAChC,GAAE,SAAW,IACb,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,KAAM,GACN,OAAQ,eAdf,iFAGmB,GAAiB,WAAU,iDAkB9C,WAAe,oBAAmB,GACvB,eAAc,QACrB,EAAM,MACJ,EAAO,EADT,CAAM,EAEF,EAAG,EADL,CAAO,QACL,CAAG,eAGK,IAAJ,CAAI,aAEJ,2BAEM,CAAgB,EAAC,aAAW,EAC/B,CAAgB,EAAC,WAAS,EAC1B,CAAgB,EAAC,WAAW,IAJ/B,UAKM,CAAS,SALf,cAQA,kBADO,CAAS,EAAC,SAAS,MAAM,aA0ChC,gBApDE,EAAgB,SAEX,CAAgB,uCAJ3B,CAAG,IADL,CAAO,MA+FP,EAAO,EA/FP,EAAO,GAgGL,EAAG,EADL,CAAO,EAEH,EAAK,EADP,CAAG,MACD,CAAK,IAAL,CAAK,UAAL,EAAK,aAEH,EAAK,UAAL,EAAK,MAAL,CAAK,YAAwB,EAAW,QAAxC,CAAK,WADH,EAAW,cAGf,EAAG,OACD,EAAE,EADJ,CAAG,KACD,EAAE,SACM,CAAU,QAAI,IAAI,KACtB,EAAE,MACA,IADF,CAAE,EAOE,EAAK,EANP,OAME,EAAK,MAAL,CAAK,IANP,KADF,CAAE,WACA,WAEO,CAAI,EAAC,IAAI,QAIP,CAAI,EAAC,KAAK,QAPrB,CAAE,MAFN,CAAE,IADJ,CAAG,IALL,CAAG,IADL,CAAO,IAhGT,CAAM,0BAkGgB,CAAS,yCAlG/B,CAAM,oDAxBP,CAAY,GAAI,EAAQ,OAoBnB,CAAY,0BAtBf,CClHR,IAAM,SAAuB,CAC3B,GAAI,CACF,OAAO,IAAI,IAAI,EAAqB,EAAE,MACxC,MAAQ,CACN,OAAO,EACT,CACF,GAAG,EAEG,GAAc,GAA6C,CAC/D,GAAI,CAAC,EAAO,MAAO,GAEnB,IAAM,EAAU,EAAM,KAAK,EAM3B,OAJK,EAED,0BAA0B,KAAK,CAAO,GAAK,EAAQ,WAAW,IAAI,EAAU,EAEzE,GAAG,MAAgB,EAAQ,WAAW,GAAG,EAAI,GAAK,MAAM,IAJ1C,EAKvB,EAEM,GAAqB,GACzB,GAAG,GAAsB,QAAQ,OAAQ,EAAE,EAAE,0BAA0B,IAEnE,GAAiC,CACrC,cAAe,GAAkB,eAAe,EAChD,YAAa,GAAkB,aAAa,EAC5C,YAAa,GAAkB,aAAa,EAC5C,UAAW,GAAkB,WAAW,CAC1C,EAEM,IAAqB,IAA0D,CACnF,cAAe,GAAW,GAAO,eAAiB,GAAgB,aAAa,EAC/E,YAAa,GAAW,GAAO,aAAe,GAAgB,WAAW,EACzE,YAAa,GAAW,GAAO,aAAe,GAAgB,WAAW,EACzE,UAAW,GAAW,GAAO,WAAa,GAAgB,SAAS,CACrE,GAEa,GAAW,GAA+B,EAAe,EAEzD,IAAe,SAA2B,CACrD,GAAS,IAAI,EAAe,CAC9B,EAEa,IAA2B,KACtC,IACkC,CAClC,IAAM,EAA2B,GAAgB,KAAK,EAEtD,GAAI,CAAC,EAA0B,OAAO,KAEtC,GAAI,CAKF,OAAO,KAAkB,MAJN,IACjB,kBAAkB,mBAAmB,CAAwB,EAAE,UACjE,GAE8B,cAAc,CAC9C,OAAS,EAAK,CAGZ,OAFA,QAAQ,MAAM,kCAAmC,CAAG,EAE7C,IACT,CACF,oqBC5EA,aAuKU,EAAO,gBACd,EAAI,SAAJ,CAAI,YAEA,EAAI,UAAJ,EAAI,MAAJ,CAAI,WAAJ,EAAI,cAA0C,CAAe,EAAG,SAAW,MAAS,QAClF,CAAgB,SADlB,CAAI,aADF,CAAgB,iCAMlB,EAAI,MACF,EAAI,EADN,CAAI,MACF,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,IAFN,CAAI,eACmC,CAAa,yBADpD,CAAI,aAKJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAA4B,CAAa,QAA7C,CAAI,uCAZR,CAAI,UAAJ,EAAI,aAgBF,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAkD,CAAgB,QAAtE,CAAI,aAEJ,EAAI,UAAJ,CAAI,eAC6B,EAAI,IAAK,KAAO,SAAW,MAAM,EAAhE,GAAI,uBAAO,CAAY,oDADzB,CAAI,MAAJ,CAAI,aAHF,CAAgB,SAEX,CAAY,oBAjKpB,EAAO,gBAAG,QAAQ,EAGlB,EAAI,aAAG,IAAI,EACX,EAAc,uBAAG,EAAE,EACnB,EAAW,oBAAG,EAAK,EACnB,EAAgB,yBAAG,EAAE,EACrB,EAAY,qBAAG,EAAK,EAEb,EAAS,cAAG,EAAE,EAuBjB,EAAsC,CAC1C,KAAM,WACN,QAAS,WACT,QAAS,UACT,QAAS,iBAIP,EAAY,EAA2B,MAAM,EAC7C,EACA,EAAY,GAEV,EAAe,qBAAyB,OAAS,OAAM,cAAiB,IAAI,EAC5E,EAAU,WAAiB,EAAiB,KAAK,CAAe,GAAE,MAAM,IACxE,EAAe,QAAY,CAAe,GAAE,aAAa,KAAI,GAAM,4DAAkB,EAErF,EAAc,iBAAwB,MAAK,QAAE,MAAK,QAAE,KAAI,OAAE,MAAK,QAAE,YAAW,gBAC5E,EAAO,MAAY,EAAO,IAAK,YAAS,EAAK,CAAc,GAAE,OAAK,WAAe,SAAS,EAC1F,EAAa,MACjB,GAAkB,EAChB,CAAO,EAAG,YAAa,CAAc,GAAE,OAAK,SAAa,EAAkB,GAGzE,EAAa,QACjB,CAAc,GAAE,OAAK,WAAa,CAAc,GAAE,OAAK,SAAa,EAAE,EAElE,EAAgB,QACpB,CAAe,IAAG,CAAU,IAAC,CAAS,eAAe,KAAI,GAAM,EAAE,EAE7D,EAAY,QAChB,CAAe,EAAG,KAAkB,CAAc,GAAE,MAAI,QAAY,EAAE,EAElE,EAAgB,QAAY,CAAe,EAAG,GAAE,YAAc,KAAI,GAAM,EAAE,EAC1E,EAAmB,QACvB,CAAc,GAAE,aAAW,iBAAmB,CAAa,KAAI,CAAc,GAAE,OAAS,EAAE,EAEtF,EAAU,0BACI,CAAa,qBAAkB,CAAO,iCAAkC,IAAE,EAGxF,EAAc,GAClB,EACG,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEtB,EAAiB,MAAqB,KACpC,EAAG,OAAU,EAAc,GAAK,SAAW,EAAc,EAAC,KAAI,EAAK,UAC5D,EAAO,EAAW,EAAG,EAAM,EAAW,CAAG,EAAK,GAC7C,EAAG,wCACwB,EAAU,EAAC,CAAe,WAC/D,EAEkB,EAAE,OAAO,OAAO,EAAE,KAAK,EAAE,CACjD,CAAC,EACK,EAAc,MAAY,EAAO,EAAC,CAAiB,GACnD,EAAW,QACf,CAAc,GAAK,QAAO,EAAE,CAAiB,EAAE,UAAW,EAAgB,GAAK,EAAK,EAEhF,GAAa,MAAY,EAAY,KAAI,CAAc,GACvD,GAAa,QACjB,CAAe,GAAE,WAAW,KAAI,QAAS,CAAa,QAAK,CAAe,KAGtE,OAAuB,CACvB,IAAmB,SAEvB,aAAa,CAAc,EAC3B,EAAiB,OACnB,EAEM,MAA0B,CAC9B,GAAc,EACd,EAAiB,eAAiB,CAChC,EAAiB,OAEZ,GAAS,EAAE,EAAY,MAAK,CACnC,IAAG,CAAe,GAAE,cAAgB,KACtC,EAEM,GAAU,KAAU,IAAsB,CAC9C,KAAM,eAAc,EACpB,EAAM,gBAAe,OAEhB,CAAe,KAAI,CAAS,IAAK,YAEtC,GAAc,IACd,EAAY,SAAQ,KAChB,KACI,GAAK,QAAU,CAAe,EAAC,aAAY,IAAK,KAAI,GAAM,OAE3D,EAAK,MAAY,MAAM,qBAAqB,QAE3C,IAAoB,CAAK,EAE1B,GAAS,EAAE,EAAY,SAAQ,CACtC,MAAQ,CACD,GAAS,EAAE,EAAY,SAAQ,CACtC,CAEK,GAAW,EAAiB,CAbb,CActB,EAEA,OAAgB,CACd,EAAY,GACZ,GAAc,CAChB,CAAC,iCA6BA,cAaU,IAbV,CAaiB,KAbjB,+BAWc,CAAW,iBAXzB,kCAMQ,CAAU,KANlB,YAOQ,EAAa,EAAG,OAAS,EAAG,CAAmB,KAPvD,iBAQa,EAAa,KAR1B,gBASY,CAAS,IAAK,SAAS,qCAPD,EAAI,sBAAqB,EAAS,IAAG,KAAI,iCAC/C,CAAc,0BACd,CAAO,+BACA,EAAO,EAAC,CAAgB,gBAL3D,EAUU,EAAU,MAVpB,eAgBA,cASU,IATV,CASiB,KATjB,+BAOc,CAAW,iBAPzB,kCAKQ,CAAU,KALlB,YAMQ,EAAa,EAAG,OAAS,EAAG,CAAmB,sCALrB,EAAI,KAAI,EAAS,IAAG,KAAI,iCAC9B,CAAc,0BACd,CAAO,+BACA,EAAO,EAAC,CAAgB,UAJ3D,eAjBE,CAAe,8BA3BZ,mBC5BE,KAAiB,WAAG,MAAS,MAAT,mDAES,EAAS,EAAC,QAAU,EAAS,EAAG,MAAO,EAAS,EAAC,SAAnF,GAAS,mDADP,EAAS,kBAKN,KAAY,WAAG,MAAI,MAAJ,SACtB,EAAG,UAAH,CAAG,oBACiC,EAAI,EAAC,QAAU,EAAI,EAAG,MAAO,EAAI,EAAC,KAAK,IAAzE,GAAS,2CADX,CAAG,MAAH,CAAG,uFAhJN,aA8BI,EAAQ,0BACR,EAAQ,iBAAG,EAAK,EAChB,EAAK,sBAAuC,EAAQ,KAAQ,EAAE,GAC9D,EAAW,oBAAG,kBAAkB,EAChC,EAAgB,yBAAG,EAAK,EACxB,EAAS,kBAAG,EAAE,EACd,EAAE,gBAAG,iBAAmB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,EAAG,CAAC,GACjE,EAAI,aAAG,EAAE,EACT,EAAQ,iBAAG,EAAK,EAChB,EAAQ,iBAAG,EAAK,EAChB,EAAQ,iBAAG,MAAS,EAGhB,EAAkB,OACrB,MAAM,QAAQ,EAAQ,GAAI,EAAQ,MAAO,OAAO,OAAO,GAGpD,EAAW,QACf,CAAkB,EAAC,IAAK,IAAM,IACzB,EACH,MAAO,EAAO,MACd,KAAM,EAAO,MACb,MAAK,GAAK,EAAO,QACjB,MAAO,GAAmB,EAAO,KAAK,EACtC,aAIE,EAAc,GAAiC,CACnD,EAAQ,IAAG,CAAS,CACtB,EAEM,MACA,EAAQ,EACN,MAAM,QAAQ,EAAK,GACd,EAAK,EAAC,IAAK,GAAK,GAAQ,GAAK,EAGlC,EAAK,IAAK,MAAQ,EAAK,IAAK,QAAa,EAAK,IAAK,GAAE,OAE9C,EAAK,KAGd,MAAM,QAAQ,EAAK,GACd,EAAK,EAAC,IAAM,GAGjB,EAAK,IAAK,MAAQ,EAAK,IAAK,OAAkB,MAExC,EAAK,IAGX,EACJ,GAC6B,KACvB,EAAS,GAAO,cAEjB,EAED,EAAQ,EACN,MAAM,QAAQ,EAAO,MAAM,EACtB,EAAO,OAAO,OAAQ,GAAK,OAA6B,GAAU,QAAQ,EAG/E,MAAM,QAAQ,EAAO,KAAK,EACrB,EAAO,MAAM,OAAQ,GAAK,OAA6B,GAAU,QAAQ,EAG9E,EAAO,QAAU,MAAQ,EAAO,QAAU,QAAa,EAAO,QAAU,GAAE,OAEnE,EAAO,OAAK,SAGd,EAAO,OAAU,SAAiB,EAAO,MAEhD,MAAM,QAAQ,EAAO,MAAM,EACV,EAAO,OAAO,KAAM,GAAK,OAA6B,GAAU,QAE5E,GAAc,GAGhB,KAxBa,IAyBtB,EAEM,EAAgB,GAAmC,KACjD,EAAO,EAAwB,CAAK,GAAK,EAAkB,EACjE,EAAQ,CAAI,EACZ,EAAW,CAAI,CACjB,gCAI4B,EAAS,IAAG,KAAI,WAGtC,EAAI,GAAI,EAAE,WAOG,EAAQ,EAAG,OAAY,GAAiB,EAX5D,mDAGE,EAAE,iDAEF,EAAQ,yBACR,EAAQ,4BACR,EAAW,yBACX,EAAQ,iCACR,EAAgB,0BACR,CAAW,kEAEnB,cACS,MAXV,OAAK,iBAAL,MAAK,cAJC,CCrHR,IAAa,GAAmB,GAAuB,EAAM,IAAM,EAAM,QAAU,GAEtE,GACX,GACmB,MAAM,QAAQ,CAAK,EAAI,EAAM,OAAO,OAAO,EAAI,EAAQ,CAAC,CAAK,EAAI,CAAC,EAE1E,IACX,EACA,IAC6B,CAC7B,GAAI,EAAO,OAAS,SAAU,CAC5B,GAAI,EAAO,WAAa,GAAO,CAC7B,IAAM,EAAQ,MAAM,QAAQ,CAAG,EAAK,EAAI,IAAM,KAAS,GAAO,KAE9D,OAAO,IAAU,GAAK,KAAO,CAC/B,CAIA,OAFY,MAAM,QAAQ,CAAG,EAAI,EAAM,EAAM,CAAC,CAAG,EAAI,CAAC,GAE3C,IAAK,GAAU,GAAG,GAAO,EAAE,OAAQ,GAAU,EAAM,KAAK,IAAM,EAAE,CAC7E,CAIA,OAFI,GAAQ,KAAkC,GAEvC,OAAO,GAAQ,SAAW,EAAM,GAAG,GAC5C,EAEa,KACX,EACA,EACA,IACsB,CACtB,GAAI,CAAC,EAAQ,QAAU,EACrB,OAAO,EAGT,IAAM,EAA6B,CAAC,EAC9B,EAAS,GAAmB,EAElC,IAAK,IAAM,KAAW,EAAS,CAC7B,IAAM,EAAK,GAAgB,CAAO,EAE7B,IAGL,EAAQ,GAAM,GAAkB,EADpB,EAAO,IAAO,EAAa,EACK,EAC9C,CAEA,OAAO,CACT,EAEa,IACX,EACA,EAA8B,CAAC,IACT,CACtB,IAAM,EAA0B,CAAC,EACjC,IAAK,IAAM,KAAW,EAAM,CAC1B,IAAM,EAAK,GAAgB,CAAO,EAE7B,KAEL,IAAI,EAAS,KAAQ,OAAW,CAC9B,EAAK,GAAM,EAAS,GACpB,QACF,CAEA,GAAI,EAAQ,OAAS,SAAU,CAC7B,IAAM,EAAO,EAAQ,cAAgB,EAAQ,MAEzC,MAAM,QAAQ,CAAI,EACpB,EAAK,GAAM,EAAK,IAAK,GAAU,GAAG,GAAO,EAChC,GAAS,MAA8B,IAAS,GACzD,EAAK,GAAM,EAAQ,WAAa,GAAQ,KAAO,CAAC,EAEhD,EAAK,GAAM,EAAQ,WAAa,GAAQ,GAAG,IAAS,CAAC,GAAG,GAAM,CAElE,KAAO,CACL,IAAM,EAAO,EAAQ,cAAgB,EAAQ,MAC7C,EAAK,GAAM,GAAS,KAA6B,GAAK,GAAG,GAC3D,CAfA,CAgBF,CAEA,OAAO,CACT,EAEa,IACX,EACA,IACG,CACH,GAAI,MAAM,QAAQ,CAAI,GAAK,MAAM,QAAQ,CAAK,EAAG,CAC/C,IAAM,EAAI,MAAM,QAAQ,CAAI,EAAI,EAAO,EAAO,CAAC,CAAI,EAAI,CAAC,EAClD,EAAI,MAAM,QAAQ,CAAK,EAAI,EAAQ,EAAQ,CAAC,CAAK,EAAI,CAAC,EAE5D,OAAO,EAAE,SAAW,EAAE,QAAU,EAAE,OAAO,EAAO,IAAU,IAAU,EAAE,EAAM,CAC9E,CAEA,OAAQ,GAAQ,SAAW,GAAS,KACtC,EAEa,GAAkC,GAC7C,EACG,IAAK,GAAU,CACd,IAAM,EAAc,EAAM,OAAS,QAAU,EAAM,WAAa,GAAQ,SAAW,QAEnF,MAAO,GAAG,GAAgB,CAAK,EAAE,GAAG,EAAM,KAAK,GAAG,GACpD,CAAC,EACA,KAAK,GAAG,EAEA,IAAwB,GAC/B,MAAM,QAAQ,CAAK,EACd,KAAK,UAAU,EAAM,IAAK,GAAU,GAAG,GAAO,CAAC,EAGpD,GAAU,KAAoC,OAE3C,KAAK,UAAU,GAAG,GAAO,EAGrB,GAA4B,GAClC,EAEQ,OAAO,KAAK,CAAK,EAAE,KAEzB,EAAK,IAAK,GAAQ,GAAG,EAAI,GAAG,IAAqB,EAAM,EAAI,GAAG,EAAE,KAAK,GAAG,EAJ5D,gECjHrB,aAoBI,EAAO,yBACP,EAAY,gCACZ,EAAa,sBAAG,CAAC,EACjB,EAAK,cAAG,MAAM,EACd,EAAc,2BAAS,CAAC,CAAC,EAGvB,EAAc,EAAM,QACpB,EAAmB,GACnB,EAAsC,KAa1C,OAXmC,KAC3B,EAAY,GAA+B,EAAO,GAEpD,IAAc,GAAoB,EAAa,IAAK,IAExD,EAAmB,EACnB,EAAuB,MACvB,EAAc,GAAyB,EAAO,EAAE,EAAY,OAC9D,CAG4B,MAEtB,GAAoB,EAAqB,IAAiB,KACxD,EAAK,GAAqB,CAAM,MAEjC,EAAE,WAGD,EAAY,GAAuB,EAD1B,EAAM,QAA0D,OAAS,EAClC,IACtD,EAAW,MAAQ,CAAW,GAAG,GAAK,CAAS,MAC/C,EAAc,EAAC,EAAI,CAAS,CAC9B,EAEM,GAAsB,EAAqB,IAAoC,KAC7E,EAAK,GAAqB,CAAM,MAEjC,EAAE,WAED,EAAY,GAAuB,EAAQ,CAAK,IACtD,EAAW,MAAQ,CAAW,GAAG,GAAK,CAAS,MAC/C,EAAc,EAAC,EAAI,CAAS,CAC9B,6BAIC,EAAG,MACD,EAAG,EADL,CAAG,KACD,EAAG,GACK,EAAW,GAAS,GAAqB,CAAO,KAArC,IAAO,KACf,EAAE,MAAG,GAAoB,EAAC,CAAO,0CAI7B,CAAW,IAAC,CAAE,IACnB,EAAY,IAAC,CAAE,IAChB,EAAE,EAJL,iCACc,CAAO,EAAC,yCAIV,GAAU,EAAgB,EAAC,CAAO,EAAE,CAAK,2BAKvC,CAAO,EAAC,OAAK,EAAI,CAAO,EAAC,aAAe,SAAS,YACtD,CAAW,IAAC,CAAE,IACnB,EAAY,IAAC,CAAE,IAChB,EAAE,YACK,CAAO,EAAC,SAAO,cACd,CAAO,EAAC,UAAY,EAAK,YAEZ,CAAO,EAAC,uBAAyB,EAAK,YAChD,CAAO,EAAC,aAAe,EAAE,YACpB,CAAO,EAAC,kBAAoB,EAAK,IAAK,MAAM,EAX/D,0JAQU,CAAO,EAAC,8HAIN,GAAU,EAAgB,EAAC,CAAO,EAAE,CAAK,2BAK1C,CAAO,EAAC,UAAY,EAAI,YACrB,CAAO,EAAC,OAAK,EAAI,CAAO,EAAC,aAAe,QAAQ,YACrD,CAAW,IAAC,CAAE,IAAK,EAAY,IAAC,CAAE,YACxB,EAAK,IAAK,MAAM,EALnC,+BACW,CAAO,EAAC,2IAKP,GAAU,EAAkB,EAAC,CAAO,EAAE,CAAK,gBA9BrD,CAAO,EAAC,OAAS,OAAM,OAQlB,CAAO,EAAC,OAAS,SAAQ,SAezB,CAAO,EAAC,OAAS,UAAQ,oBA1BtC,CAAG,IADL,CAAG,UAAH,EAAG,wBAA4B,EAAK,GAAI,QAAU,OAAS,UAAO,uBAAlE,CAAG,WADD,EAAO,EAAC,QAAM,iBAFX,CC/CR,SAAS/E,GAAS,EAAO,CACvB,IAAI,EAAO,OAAO,EAClB,OAAO,GAAS,OAAS,GAAQ,UAAY,GAAQ,WACvD,CC3BA,IAAI,IAAa,OAAO,QAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OCEhF,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEyH,GAAO,KAAc,KAAY,SAAS,aAAa,EAAE,ECYzD,GAAM,UAAW,CACnB,OAAOA,GAAK,KAAK,IAAI,CACvB,ECnBI,IAAe,KAUnB,SAAS,IAAgB,EAAQ,CAG/B,IAFA,IAAI,EAAQ,EAAO,OAEZ,KAAW,IAAa,KAAK,EAAO,OAAO,CAAK,CAAC,IACxD,OAAO,CACT,CCbA,IAAI,IAAc,OASlB,SAAS,IAAS,EAAQ,CACxB,OAAO,GACH,EAAO,MAAM,EAAG,IAAgB,CAAM,EAAI,CAAC,EAAE,QAAQ,IAAa,EAAE,CAE1E,CCbA,IAAIC,GAASD,GAAK,OCAd,GAAc,OAAO,UAGrB,IAAiB,GAAY,eAO7BE,IAAuB,GAAY,SAGnCC,GAAiBF,GAASA,GAAO,YAAc,OASnD,SAAS,IAAU,EAAO,CACxB,IAAI,EAAQ,IAAe,KAAK,EAAOE,EAAc,EACjD,EAAM,EAAMA,IAEhB,GAAI,CACF,EAAMA,IAAkB,OACxB,IAAI,EAAW,EACjB,MAAY,CAAC,CAEb,IAAI,EAASD,IAAqB,KAAK,CAAK,EAQ5C,OAPI,IACE,EACF,EAAMC,IAAkB,EAExB,OAAO,EAAMA,KAGV,CACT,CCnCA,IAAI,IAPc,OAAO,UAOc,SASvC,SAAS,IAAe,EAAO,CAC7B,OAAO,IAAqB,KAAK,CAAK,CACxC,CCdA,IAAI,IAAU,gBACV,IAAe,qBAGf,GAAiBF,GAASA,GAAO,YAAc,OASnD,SAAS,IAAW,EAAO,CAIzB,OAHI,GAAS,KACJ,IAAU,OAAY,IAAe,IAEtC,IAAkB,MAAkB,OAAO,CAAK,EACpD,IAAU,CAAK,EACf,IAAe,CAAK,CAC1B,CCDA,SAAS,IAAa,EAAO,CAC3B,OAAwB,OAAO,GAAS,YAAjC,CACT,CCtBA,IAAI,IAAY,kBAmBhB,SAAS,IAAS,EAAO,CACvB,OAAO,OAAO,GAAS,UACpB,IAAa,CAAK,GAAK,IAAW,CAAK,GAAK,GACjD,CCrBA,IAAI,GAAM,IAGN,IAAa,qBAGb,IAAa,aAGb,IAAY,cAGZ,IAAe,SAyBnB,SAAS,GAAS,EAAO,CACvB,GAAI,OAAO,GAAS,SAClB,OAAO,EAET,GAAI,IAAS,CAAK,EAChB,OAAO,GAET,GAAI1H,GAAS,CAAK,EAAG,CACnB,IAAI,EAAQ,OAAO,EAAM,SAAW,WAAa,EAAM,QAAQ,EAAI,EACnE,EAAQA,GAAS,CAAK,EAAK,EAAQ,GAAM,CAC3C,CACA,GAAI,OAAO,GAAS,SAClB,OAAO,IAAU,EAAI,EAAQ,CAAC,EAEhC,EAAQ,IAAS,CAAK,EACtB,IAAI,EAAW,IAAW,KAAK,CAAK,EACpC,OAAQ,GAAY,IAAU,KAAK,CAAK,EACpC,IAAa,EAAM,MAAM,CAAC,EAAG,EAAW,EAAI,CAAC,EAC5C,IAAW,KAAK,CAAK,EAAI,GAAM,CAAC,CACvC,CCxDA,IAAI6H,IAAkB,sBAGlB,IAAY,KAAK,IACjB,IAAY,KAAK,IAwDrB,SAASxI,GAAS,EAAM,EAAM,EAAS,CACrC,IAAI,EACA,EACA,EACA,EACA,EACA,EACA,EAAiB,EACjB,EAAU,GACV,EAAS,GACT,EAAW,GAEf,GAAI,OAAO,GAAQ,WACjB,MAAU,UAAUwI,GAAe,EAErC,EAAO,GAAS,CAAI,GAAK,EACrB7H,GAAS,CAAO,IAClB,EAAU,CAAC,CAAC,EAAQ,QACpB,EAAS,YAAa,EACtB,EAAU,EAAS,IAAU,GAAS,EAAQ,OAAO,GAAK,EAAG,CAAI,EAAI,EACrE,EAAW,aAAc,EAAU,CAAC,CAAC,EAAQ,SAAW,GAG1D,SAAS,EAAW,EAAM,CACxB,IAAI,EAAO,EACP,EAAU,EAKd,MAHA,GAAW,EAAW,OACtB,EAAiB,EACjB,EAAS,EAAK,MAAM,EAAS,CAAI,EAC1B,CACT,CAEA,SAAS,EAAY,EAAM,CAMzB,MAJA,GAAiB,EAEjB,EAAU,WAAW,EAAc,CAAI,EAEhC,EAAU,EAAW,CAAI,EAAI,CACtC,CAEA,SAAS,EAAc,EAAM,CAC3B,IAAI,EAAoB,EAAO,EAC3B,EAAsB,EAAO,EAC7B,EAAc,EAAO,EAEzB,OAAO,EACH,IAAU,EAAa,EAAU,CAAmB,EACpD,CACN,CAEA,SAAS,EAAa,EAAM,CAC1B,IAAI,EAAoB,EAAO,EAC3B,EAAsB,EAAO,EAKjC,OAAQ,IAAiB,QAAc,GAAqB,GACzD,EAAoB,GAAO,GAAU,GAAuB,CACjE,CAEA,SAAS,GAAe,CACtB,IAAI,EAAO,GAAI,EACf,GAAI,EAAa,CAAI,EACnB,OAAO,EAAa,CAAI,EAG1B,EAAU,WAAW,EAAc,EAAc,CAAI,CAAC,CACxD,CAEA,SAAS,EAAa,EAAM,CAS1B,MARA,GAAU,OAIN,GAAY,EACP,EAAW,CAAI,GAExB,EAAW,EAAW,OACf,EACT,CAEA,SAAS,GAAS,CACZ,IAAY,QACd,aAAa,CAAO,EAEtB,EAAiB,EACjB,EAAW,EAAe,EAAW,EAAU,MACjD,CAEA,SAAS,GAAQ,CACf,OAAO,IAAY,OAAY,EAAS,EAAa,GAAI,CAAC,CAC5D,CAEA,SAAS,GAAY,CACnB,IAAI,EAAO,GAAI,EACX,EAAa,EAAa,CAAI,EAMlC,GAJA,EAAW,UACX,EAAW,KACX,EAAe,EAEX,EAAY,CACd,GAAI,IAAY,OACd,OAAO,EAAY,CAAY,EAEjC,GAAI,EAIF,OAFA,aAAa,CAAO,EACpB,EAAU,WAAW,EAAc,CAAI,EAChC,EAAW,CAAY,CAElC,CAIA,OAHI,IAAY,SACd,EAAU,WAAW,EAAc,CAAI,GAElC,CACT,CAGA,MAFA,GAAU,OAAS,EACnB,EAAU,MAAQ,EACX,CACT,CCxLA,IAAI,IAAkB,sBA8CtB,SAAS,IAAS,EAAM,EAAM,EAAS,CACrC,IAAI,EAAU,GACV,EAAW,GAEf,GAAI,OAAO,GAAQ,WACjB,MAAU,UAAU,GAAe,EAMrC,OAJIA,GAAS,CAAO,IAClB,EAAU,YAAa,EAAU,CAAC,CAAC,EAAQ,QAAU,EACrD,EAAW,aAAc,EAAU,CAAC,CAAC,EAAQ,SAAW,GAEnDX,GAAS,EAAM,EAAM,CAC1B,QAAW,EACX,QAAW,EACX,SAAY,CACd,CAAC,CACH,CCvCA,IAAI,GAAW,UAAW,CAQtB,MAPA,IAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,IADT,GAAI,UAAU,GACA,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAAG,EAAE,GAAK,EAAE,IAE9E,OAAO,CACX,EACO,GAAS,MAAM,KAAM,SAAS,CACzC,EAEA,SAAS,GAAmB,EAAS,CAMjC,MALI,CAAC,GACD,CAAC,EAAQ,eACT,CAAC,EAAQ,cAAc,YAChB,OAEJ,EAAQ,cAAc,WACjC,CACA,SAAS,GAAqB,EAAS,CAInC,MAHI,CAAC,GAAW,CAAC,EAAQ,cACd,SAEJ,EAAQ,aACnB,CAEA,IAAI,GAAe,SAAU,EAAK,CAsB9B,OApBc,MAAM,UAAU,OAAO,KAAK,EAAK,SAAU,EAAK,EAAW,CACrE,IAAI,EAAS,EAAU,KAAK,MAAM,qBAAqB,EACvD,GAAI,EAAQ,CACR,IAAI,EAAM,EAAO,GAAG,QAAQ,UAAW,SAAU,EAAG,EAAK,CAAE,OAAO,EAAI,YAAY,CAAG,CAAC,EACtF,OAAQ,EAAU,MAAlB,CACI,IAAK,OACD,EAAI,GAAO,GACX,MACJ,IAAK,QACD,EAAI,GAAO,GACX,MACJ,KAAK,OACD,EAAI,GAAO,GACX,MACJ,QACI,EAAI,GAAO,EAAU,KAC7B,CACJ,CACA,OAAO,CACX,EAAG,CAAS,CACC,CACjB,EACA,SAAS,GAAa,EAAI,EAAS,CAC/B,IAAI,EACC,IAEJ,EAAK,EAAG,WAAW,IAAI,MAAM,EAAI,EAAQ,MAAM,GAAG,CAAC,CACxD,CACA,SAAS,GAAgB,EAAI,EAAS,CAC7B,GAEL,EAAQ,MAAM,GAAG,EAAE,QAAQ,SAAU,EAAW,CAC5C,EAAG,UAAU,OAAO,CAAS,CACjC,CAAC,CACL,CACA,SAAS,GAAoB,EAAY,CACrC,MAAO,IAAW,EAAW,MAAM,GAAG,EAAE,KAAK,GAAG,GACpD,CACA,IAAIyI,GAAY,CAAC,EAAE,OAAO,OAAW,KACjC,OAAO,UACP,OAAO,SAAS,eAEhB,IAAuB,OAAO,OAAO,CACrC,UAAW,KACX,WAAY,GACZ,UAAWA,GACX,kBAAmB,GACnB,mBAAoB,GACpB,iBAAkB,GAClB,WAAY,GACZ,cAAe,EACnB,CAAC,EAEG,GAAuB,KACvB,GAAyB,KACzBA,IACA,OAAO,iBAAiB,SAAU,UAAY,CACtC,KAA2B,OAAO,mBAClC,GAAyB,OAAO,iBAChC,GAAuB,KAE/B,CAAC,EAEL,SAAS,IAAiB,CACtB,GAAI,KAAyB,KAAM,CAC/B,GAAI,OAAO,SAAa,IAEpB,MADA,IAAuB,EAChB,GAEX,IAAI,EAAO,SAAS,KAChB,EAAM,SAAS,cAAc,KAAK,EACtC,EAAI,UAAU,IAAI,0BAA0B,EAC5C,EAAK,YAAY,CAAG,EACpB,IAAI,EAAQ,EAAI,sBAAsB,EAAE,MACxC,EAAK,YAAY,CAAG,EACpB,GAAuB,CAC3B,CACA,OAAO,EACX,CAEA,IAAI,GAAmB,GAAoB,GAAqB,GAAsBf,IAAa,GAAcgB,GAAa,GAAc,GAAgB,GAAiB,GAAoB,GAC7L,GAA+B,UAAY,CAC3C,SAAS,EAAc,EAAS,EAAS,CACjC,IAAY,IAAK,KAAK,EAAU,CAAC,GACrC,IAAI,EAAQ,KAmQZ,GAlQA,KAAK,qBAAuB,KAC5B,KAAK,kBAAoB,GACzB,KAAK,gBAAkB,IACvB,KAAK,YAAc,GACnB,KAAK,gBAAkB,GACvB,KAAK,WAAa,GAClB,KAAK,eAAiB,GACtB,KAAK,eAAiB,GACtB,KAAK,UAAY,KACjB,KAAK,iBAAmB,KACxB,KAAK,UAAY,KACjB,KAAK,SAAW,KAChB,KAAK,OAAS,KACd,KAAK,cAAgB,KACrB,KAAK,4BAA8B,KACnC,KAAK,qBAAuB,KAC5B,KAAK,WAAa,KAClB,KAAK,eAAiB,EACtB,KAAK,eAAiB,KACtB,KAAK,iBAAmB,KACxB,KAAK,SAAW,KAChB,KAAK,MAAQ,KACb,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,YAAc,UAAY,CAAE,EACjC,KAAK,eAAiB,UAAY,CAAE,EACpC,KAAK,gBAAkB,UAAY,CAAE,EACrC,KAAK,eAAiB,UAAY,CAAE,EAIpC,KAAK,SAAW,UAAY,CACxB,IAAI,EAAW,GAAiB,EAAM,EAAE,EACxC,CAEI,CAAM,kBADN,EAAS,sBAAsB,EAAM,OAAO,EACrB,IAE3B,CAEI,CAAM,kBADN,EAAS,sBAAsB,EAAM,OAAO,EACrB,IAEtB,EAAM,cACP,EAAM,YAAc,GACpB,GAAW,EAAM,GAAI,EAAM,WAAW,SAAS,GAEnD,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,EACvB,EAAM,gBAAgB,CAC1B,EACA,KAAK,QAAU,UAAY,CACnB,EAAM,KAAK,EAAE,eACb,EAAM,kBAAkB,GAAG,EAE/B,EAAM,eAAiB,EAC3B,EACA,KAAK,QAAU,UAAY,CACnB,EAAM,KAAK,EAAE,eACb,EAAM,kBAAkB,GAAG,EAE/B,EAAM,eAAiB,EAC3B,EACA,KAAK,iBAAmB,UAAY,CAChC,GAAc,EAAM,GAAI,EAAM,WAAW,SAAS,EAC9C,EAAM,QAAQ,WACd,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,GAE3B,EAAM,YAAc,EACxB,EACA,KAAK,aAAe,UAAY,CAC5B,CAII,CAAM,mBAHN,GAAW,EAAM,GAAI,EAAM,WAAW,YAAY,EAClD,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,EACC,IAE5B,EAAM,eAAe,CACzB,EACA,KAAK,gBAAkB,UAAY,CAC/B,GAAc,EAAM,GAAI,EAAM,WAAW,YAAY,EACjD,EAAM,QAAQ,WACd,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,GAE3B,EAAM,gBAAkB,EAC5B,EACA,KAAK,aAAe,SAAU,EAAG,CAC7B,EAAM,OAAS,EAAE,QACjB,EAAM,OAAS,EAAE,SACb,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,mBAAmB,GAAG,GAE5B,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,mBAAmB,GAAG,CAEpC,EACA,KAAK,aAAe,UAAY,CAC5B,EAAM,YAAY,OAAO,GACrB,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,oBAAoB,GAAG,GAE7B,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,oBAAoB,GAAG,EAEjC,EAAM,OAAS,GACf,EAAM,OAAS,EACnB,EACA,KAAK,gBAAkB,UAAY,CAE/B,EAAM,eAAiB,EAAM,kBAAkB,EAC/C,EAAM,oBAAoB,CAC9B,EACA,KAAK,eAAiB,SAAU,EAAG,CAC3B,MAAC,EAAM,KAAK,EAAE,MAAM,IACpB,CAAC,EAAM,KAAK,EAAE,MAAM,IACpB,CAAC,EAAM,KAAK,EAAE,UAAU,IACxB,CAAC,EAAM,KAAK,EAAE,UAAU,IAE5B,KAAI,EAAsB,EAC1B,EAAM,KAAK,EAAE,MAAM,KAAO,EAAM,KAAK,EAAE,MAAM,GAAG,sBAAsB,EACtE,EAAM,KAAK,EAAE,MAAM,KAAO,EAAM,KAAK,EAAE,MAAM,GAAG,sBAAsB,GAClE,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,gBAC3C,EAAuB,EAAM,eAAe,EAAM,KAAK,EAAE,MAAM,IAAI,IAEnE,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,gBAC3C,EAAuB,EAAM,eAAe,EAAM,KAAK,EAAE,MAAM,IAAI,IAGnE,GAAwB,KAExB,EAAE,gBAAgB,EACd,EAAE,OAAS,eAAiB,EAAE,cAAgB,UAC1C,IACA,EAAM,KAAK,EAAE,UAAU,KACnB,EAAM,KAAK,EAAE,UAAU,GAAG,sBAAsB,EAChD,EAAM,eAAe,EAAM,KAAK,EAAE,UAAU,IAAI,EAChD,EAAM,YAAY,EAAG,GAAG,EAGxB,EAAM,aAAa,EAAG,GAAG,GAG7B,IACA,EAAM,KAAK,EAAE,UAAU,KACnB,EAAM,KAAK,EAAE,UAAU,GAAG,sBAAsB,EAChD,EAAM,eAAe,EAAM,KAAK,EAAE,UAAU,IAAI,EAChD,EAAM,YAAY,EAAG,GAAG,EAGxB,EAAM,aAAa,EAAG,GAAG,IA/Bf,CAoC9B,EAIA,KAAK,KAAO,SAAU,EAAG,CAEjB,MAAC,EAAM,aAAe,CAAC,EAAM,kBAEjC,KAAI,EACA,EAAQ,EAAM,KAAK,EAAM,aAAa,MACtC,EAAwB,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,WAA4C,EACtJ,EAAY,EAAM,KAAK,EAAM,aAAa,UAC1C,EAA0B,EAAM,mBAA0D,EAAM,KAAK,EAAM,aAAa,iBAAkD,EAC1K,EAAW,SAAqB,EAAM,WAAkD,EAAM,KAAK,EAAM,aAAa,WAA4C,MAAO,EAAE,EAC/K,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,CAII,CAJA,EAAM,cAAgB,IACR,EAAE,MAGF,EAAE,MAGpB,IAAI,EAAU,GACG,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,aAA8C,GAC7I,EAAM,KAAK,EAAM,aAAa,WAClC,EACI,EAAM,cAAgB,KAAO,EAAM,OAChB,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,WAA4C,GACzI,EAAU,KACV,EACF,EAIV,IAAI,EAFW,GAAW,EAAY,EAAU,OAEpB,EAAc,GAEtC,EAAM,cAAgB,KAAO,EAAM,QACnC,EAAmB,EAAc,cAAc,GAA2C,sBACpF,CAAC,EACD,GAEV,EAAM,iBAAiB,EAAM,KAAK,EAAM,aAAa,kBACjD,CAnCA,CAoCR,EAIA,KAAK,UAAY,SAAU,EAAG,CAC1B,EAAM,WAAa,GACnB,IAAI,EAAa,GAAmB,EAAM,EAAE,EACxC,EAAW,GAAiB,EAAM,EAAE,EACxC,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,GAAc,EAAM,GAAI,EAAM,WAAW,QAAQ,EACjD,EAAM,gBAAgB,EACtB,EAAW,oBAAoB,YAAa,EAAM,KAAM,EAAI,EAC5D,EAAW,oBAAoB,UAAW,EAAM,UAAW,EAAI,EAC/D,EAAM,qBAAuB,EAAS,WAAW,UAAY,CAGzD,EAAW,oBAAoB,QAAS,EAAM,aAAc,EAAI,EAChE,EAAW,oBAAoB,WAAY,EAAM,aAAc,EAAI,EACnE,EAAM,qBAAuB,IACjC,CAAC,CACL,EAIA,KAAK,aAAe,SAAU,EAAG,CAC7B,EAAE,eAAe,EACjB,EAAE,gBAAgB,CACtB,EACA,KAAK,GAAK,EACV,KAAK,QAAU,GAAS,GAAS,CAAC,EAAG,EAAc,cAAc,EAAG,CAAO,EAC3E,KAAK,WAAa,GAAS,GAAS,CAAC,EAAG,EAAc,eAAe,UAAU,EAAG,EAAQ,UAAU,EACpG,KAAK,KAAO,CACR,EAAG,CACC,iBAAkB,aAClB,SAAU,QACV,eAAgB,cAChB,eAAgB,cAChB,WAAY,OACZ,aAAc,YACd,WAAY,EACZ,cAAe,GACf,aAAc,GACd,MAAO,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,EAC5D,UAAW,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,CACpE,EACA,EAAG,CACC,iBAAkB,YAClB,SAAU,SACV,eAAgB,eAChB,eAAgB,eAChB,WAAY,MACZ,aAAc,YACd,WAAY,EACZ,cAAe,GACf,aAAc,GACd,MAAO,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,EAC5D,UAAW,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,CACpE,CACJ,EACI,OAAO,KAAK,IAAO,UAAY,CAAC,KAAK,GAAG,SACxC,MAAU,MAAM,mEAA0E,KAAK,IAAG,EAEtG,KAAK,YAAc,IAAS,KAAK,aAAc,EAAE,EACjD,KAAK,eAAiB1I,GAAS,KAAK,gBAAiB,GAAI,CAAE,QAAS,EAAK,CAAC,EAC1E,KAAK,gBAAkBA,GAAS,KAAK,iBAAkB,KAAK,eAAe,EAC3E,KAAK,eAAiBA,GAAS,KAAK,gBAAiB,KAAK,eAAe,EACzE,KAAK,KAAK,CACd,CAugBA,MAhgBA,GAAc,cAAgB,UAAY,CACtC,GAAI,EAAc,WACd,OAAO,EAAc,WAEzB,IAAI,EAAW,SAAS,cAAc,KAAK,EAC3C,EAAS,UACL,gEACJ,IAAI,EAAmB,EAAS,kBAC5B,EAAa,GAAqF,kBACtG,GAAI,CAAC,EACD,OAAO,KACX,SAAS,KAAK,YAAY,CAAgB,EAC1C,EAAiB,WAAa,EAC9B,IAAI,EAAuB,EAAc,UAAU,CAAgB,EAC/D,EAAmB,EAAc,UAAU,CAAU,EACzD,EAAiB,WAAa,KAC9B,IAAI,EAA8B,EAAc,UAAU,CAAU,EAQpE,OAPA,SAAS,KAAK,YAAY,CAAgB,EAC1C,EAAc,WAAa,CAEvB,qBAAsB,EAAqB,OAAS,EAAiB,KAErE,sBAAuB,EAAiB,OAAS,EAA4B,IACjF,EACO,EAAc,UACzB,EACA,EAAc,UAAU,kBAAoB,UAAY,CAEpD,GAAI,CAUI,OARC,KAAK,kBACN,iBAAiB,KAAK,iBAAkB,qBAAqB,EACxD,UAAY,QACjB,mBAAoB,SAAS,gBAAgB,OAC7C,uBAAwB,SAAS,gBAAgB,MAC1C,EAGA,GAAe,CAE9B,MACU,CACN,OAAO,GAAe,CAC1B,CACJ,EACA,EAAc,UAAY,SAAU,EAAI,CACpC,IAAI,EAAO,EAAG,sBAAsB,EAChC,EAAa,GAAmB,CAAE,EAClC,EAAW,GAAiB,CAAE,EAClC,MAAO,CACH,IAAK,EAAK,KACL,EAAS,aAAe,EAAW,gBAAgB,WACxD,KAAM,EAAK,MACN,EAAS,aAAe,EAAW,gBAAgB,WAC5D,CACJ,EACA,EAAc,UAAU,KAAO,UAAY,CAEnCyI,KACA,KAAK,QAAQ,EACb,KAAK,WAAa,EAAc,cAAc,EAC9C,KAAK,eAAiB,KAAK,kBAAkB,EAC7C,KAAK,YAAY,EACjB,KAAK,cAAc,EAE3B,EACA,EAAc,UAAU,QAAU,UAAY,CAG1C,KAAK,UAAY,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,OAAO,CAAC,EACjF,KAAK,iBACD,KAAK,QAAQ,gBACT,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,cAAc,CAAC,EAC/E,KAAK,UACD,KAAK,QAAQ,aACT,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,SAAS,CAAC,EAC1E,KAAK,SAAW,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,MAAM,CAAC,EAC/E,KAAK,OAAS,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,IAAI,CAAC,EAC3E,KAAK,cAAgB,KAAK,UAAU,KAAK,UAAW,GAAkB,KAAK,WAAW,WAAW,CAAC,EAClG,KAAK,4BAA8B,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,2BAA2B,CAAC,EACvH,KAAK,qBAAuB,KAAK,GAAG,cAAc,GAAkB,KAAK,WAAW,oBAAoB,CAAC,EACzG,KAAK,KAAK,EAAE,MAAM,GAAK,KAAK,UAAU,KAAK,GAAI,GAAU,GAAkB,KAAK,WAAW,KAAK,IAAU,GAAkB,KAAK,WAAW,UAAU,GAAE,EACxJ,KAAK,KAAK,EAAE,MAAM,GAAK,KAAK,UAAU,KAAK,GAAI,GAAU,GAAkB,KAAK,WAAW,KAAK,IAAU,GAAkB,KAAK,WAAW,QAAQ,GAAE,EACtJ,KAAK,KAAK,EAAE,UAAU,GACX,KAAK,KAAK,EAAE,MAAM,IAA4C,cAAc,GAAkB,KAAK,WAAW,SAAS,CAAC,GAAM,KACzI,KAAK,KAAK,EAAE,UAAU,GACX,KAAK,KAAK,EAAE,MAAM,IAA4C,cAAc,GAAkB,KAAK,WAAW,SAAS,CAAC,GAAM,KACpI,KAAK,QAAQ,WACd,GAAW,KAAK,KAAK,EAAE,UAAU,GAAI,KAAK,WAAW,OAAO,EAC5D,GAAW,KAAK,KAAK,EAAE,UAAU,GAAI,KAAK,WAAW,OAAO,EAEpE,EACA,EAAc,UAAU,cAAgB,UAAY,CAChD,IAAI,EAAQ,KACR,EACA,EAAW,GAAiB,KAAK,EAAE,EAEvC,QAAK,GAAG,iBAAiB,aAAc,KAAK,YAAY,EACxD,KAAK,GAAG,iBAAiB,cAAe,KAAK,eAAgB,EAAI,EACjE,KAAK,GAAG,iBAAiB,YAAa,KAAK,WAAW,EACtD,KAAK,GAAG,iBAAiB,aAAc,KAAK,YAAY,GACvD,EAAK,KAAK,mBAAsB,MAAiC,EAAG,iBAAiB,SAAU,KAAK,QAAQ,EAE7G,EAAS,iBAAiB,SAAU,KAAK,cAAc,EAClD,KAAK,UAEV,IAAI,OAAO,eAAgB,CAEvB,IAAI,EAA0B,GAC1B,EAAiB,EAAS,gBAAkB,eAChD,KAAK,eAAiB,IAAI,EAAe,UAAY,CAC5C,GAEL,EAAS,sBAAsB,UAAY,CACvC,EAAM,YAAY,CACtB,CAAC,CACL,CAAC,EACD,KAAK,eAAe,QAAQ,KAAK,EAAE,EACnC,KAAK,eAAe,QAAQ,KAAK,SAAS,EAC1C,EAAS,sBAAsB,UAAY,CACvC,EAA0B,EAC9B,CAAC,CACL,CAEA,KAAK,iBAAmB,IAAI,EAAS,iBAAiB,UAAY,CAC9D,EAAS,sBAAsB,UAAY,CACvC,EAAM,YAAY,CACtB,CAAC,CACL,CAAC,EACD,KAAK,iBAAiB,QAAQ,KAAK,UAAW,CAC1C,UAAW,GACX,QAAS,GACT,cAAe,EACnB,CAAC,CAXD,CAYJ,EACA,EAAc,UAAU,YAAc,UAAY,CAC1C,MAAC,KAAK,sBACN,CAAC,KAAK,WACN,CAAC,KAAK,kBACN,CAAC,KAAK,WACN,CAAC,KAAK,eAEV,KAAI,EAAW,GAAiB,KAAK,EAAE,EACvC,KAAK,SAAW,EAAS,iBAAiB,KAAK,EAAE,EACjD,KAAK,MAAQ,KAAK,SAAS,YAAc,MACzC,IAAI,EAAuB,KAAK,UAAU,YACtC,EAAe,KAAK,qBAAqB,cAAgB,EACzD,EAAc,KAAK,qBAAqB,aAAe,GAAK,EAAuB,EACnF,EAA8B,KAAK,iBAAiB,YACpD,EAAc,KAAK,SAAS,UAC5B,EAAc,KAAK,SAAS,UAChC,KAAK,UAAU,MAAM,QAAU,GAAU,KAAK,SAAS,cAAwB,KAAK,SAAS,gBAA0B,KAAK,SAAS,iBAA2B,KAAK,SAAS,cAC9K,KAAK,UAAU,MAAM,OAAS,IAAW,KAAK,SAAS,eAAyB,KAAK,SAAS,iBAA2B,KAAK,SAAS,kBAA4B,KAAK,SAAS,cACjL,IAAI,EAAwB,KAAK,UAAU,aACvC,EAAuB,KAAK,UAAU,YAC1C,KAAK,iBAAiB,MAAM,OAAS,EAAe,OAAS,OAE7D,KAAK,cAAc,MAAM,MAAQ,EAC3B,GAAU,GAAwB,MAClC,OACN,KAAK,cAAc,MAAM,OAAS,GAAU,MAC5C,IAAI,EAA+B,KAAK,iBAAiB,aACzD,KAAK,KAAK,EAAE,cACR,IAAyB,GAAK,EAAuB,EACzD,KAAK,KAAK,EAAE,cACR,EAAwB,EAE5B,KAAK,KAAK,EAAE,cACR,IAAgB,SAAW,GAAQ,KAAK,KAAK,EAAE,cACnD,KAAK,KAAK,EAAE,cACR,IAAgB,SAAW,GAAQ,KAAK,KAAK,EAAE,cACnD,KAAK,KAAK,EAAE,aACR,KAAK,QAAQ,eAAiB,KAAO,KAAK,QAAQ,eAAiB,GACvE,KAAK,KAAK,EAAE,aACR,KAAK,QAAQ,eAAiB,KAAO,KAAK,QAAQ,eAAiB,GACvE,KAAK,oBAAoB,EAEzB,IAAI,EAAsB,KAAK,KAAK,EAAE,cAChC,KAAK,eACL,EACF,EAAsB,KAAK,KAAK,EAAE,cAChC,KAAK,eACL,EACN,KAAK,KAAK,EAAE,cACR,KAAK,KAAK,EAAE,eACR,EAAuB,EAA8B,EAC7D,KAAK,KAAK,EAAE,cACR,KAAK,KAAK,EAAE,eACR,EACI,EAA+B,EAC3C,KAAK,KAAK,EAAE,UAAU,KAAO,KAAK,iBAAiB,GAAG,EACtD,KAAK,KAAK,EAAE,UAAU,KAAO,KAAK,iBAAiB,GAAG,EAClD,KAAK,KAAK,EAAE,UAAU,KACtB,KAAK,KAAK,EAAE,UAAU,GAAG,MAAM,MAAQ,GAAU,KAAK,KAAK,EAAE,UAAU,UACvE,KAAK,KAAK,EAAE,UAAU,KACtB,KAAK,KAAK,EAAE,UAAU,GAAG,MAAM,OAAS,GAAU,KAAK,KAAK,EAAE,UAAU,UAC5E,KAAK,kBAAkB,GAAG,EAC1B,KAAK,kBAAkB,GAAG,EAC1B,KAAK,sBAAsB,GAAG,EAC9B,KAAK,sBAAsB,GAAG,CAzDS,CA0D3C,EAIA,EAAc,UAAU,iBAAmB,SAAU,EAAM,CAGvD,GADI,IAAS,IAAK,KAAK,EAAO,KAC1B,CAAC,KAAK,KAAK,GAAM,eAAiB,CAAC,KAAK,UACxC,MAAO,GAEX,IAAI,EAAc,KAAK,UAAU,KAAK,KAAK,GAAM,gBAC7C,EAAwB,KAAK,KAAK,GAAM,MAAM,KAA4C,KAAK,KAAK,GAAM,iBAAkD,EAC5J,EAAiB,EAAY,EAC7B,EAEY,KAAK,IAAI,CAAC,EAAE,EAAiB,GAAY,KAAK,QAAQ,gBAAgB,EAItF,OAHI,KAAK,QAAQ,mBACb,EAAgB,KAAK,IAAI,EAAe,KAAK,QAAQ,gBAAgB,GAElE,CACX,EACA,EAAc,UAAU,kBAAoB,SAAU,EAAM,CAEpD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAY,KAAK,KAAK,GAAM,UAC5B,MAAC,KAAK,KAAK,GAAM,eACjB,CAAC,KAAK,kBACN,CAAC,EAAU,IACX,CAAC,KAAK,UAGV,KAAI,EAAc,KAAK,iBAAiB,KAAK,KAAK,GAAM,gBACpD,EAAmB,KAAK,KAAK,GAAM,MAAM,KAA4C,KAAK,KAAK,GAAM,iBAAoB,EACzH,EAAW,SAAS,KAAK,SAAS,KAAK,KAAK,GAAM,UAAW,EAAE,EAC/D,EAAe,KAAK,iBAAiB,KAAK,KAAK,GAAM,kBACzD,EACI,IAAS,KACL,KAAK,OACE,EAAc,cAAc,GAA2C,qBAC5E,CAAC,EACD,EACN,IAAS,KAAO,KAAK,QACrB,EAAsB,EAAc,cAAc,GAA2C,sBACvF,EACA,CAAC,GAEX,IAAI,EAAiB,GAAgB,EAAc,GAC/C,EAAe,CAAC,GAAG,EAAY,EAAU,MAAQ,GACrD,EACI,IAAS,KAAO,KAAK,MACf,CAAC,GAAgB,EAAY,EAAU,MACvC,EACV,EAAU,GAAG,MAAM,UACf,IAAS,IACH,eAAsB,aACtB,kBAAyB,SAxBqB,CAyB5D,EACA,EAAc,UAAU,sBAAwB,SAAU,EAAM,CACxD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAQ,KAAK,KAAK,GAAM,MAAM,GAC9B,EAAY,KAAK,KAAK,GAAM,UAAU,GACtC,CAAC,GAAS,CAAC,GAAa,CAAC,KAAK,mBAE9B,KAAK,KAAK,GAAM,eAAiB,KAAK,KAAK,GAAM,cACjD,EAAM,MAAM,WAAa,UACzB,KAAK,iBAAiB,MAAM,KAAK,KAAK,GAAM,cAAgB,SAC5D,KAAK,GAAG,UAAU,IAAI,GAAU,KAAK,WAAW,cAAwB,GAAK,IAG7E,EAAM,MAAM,WAAa,SACzB,KAAK,iBAAiB,MAAM,KAAK,KAAK,GAAM,cAAgB,SAC5D,KAAK,GAAG,UAAU,OAAO,GAAU,KAAK,WAAW,cAAwB,GAAK,GAGhF,KAAK,KAAK,GAAM,cAChB,EAAU,MAAM,QAAU,QAG1B,EAAU,MAAM,QAAU,OAElC,EACA,EAAc,UAAU,cAAgB,SAAU,EAAM,CAChD,IAAS,IAAK,KAAK,EAAO,KAC1B,KAAK,KAAK,GAAM,eAAiB,CAAC,KAAK,KAAK,GAAM,UAAU,YAC5D,GAAW,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,OAAO,EAChE,KAAK,KAAK,GAAM,UAAU,UAAY,GAE9C,EACA,EAAc,UAAU,cAAgB,SAAU,EAAM,CAChD,IAAS,IAAK,KAAK,EAAO,KAC1B,MAAK,YAEL,KAAK,KAAK,GAAM,eAAiB,KAAK,KAAK,GAAM,UAAU,YAC3D,GAAc,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,OAAO,EACnE,KAAK,KAAK,GAAM,UAAU,UAAY,GAE9C,EACA,EAAc,UAAU,oBAAsB,UAAY,CACjD,KAAK,WAEV,KAAK,SAAS,MAAM,KAAK,MAAQ,OAAS,SACtC,KAAK,KAAK,EAAE,eAAiB,KAAK,KAAK,EAAE,aACnC,IAAW,KAAK,mBAChB,MACV,KAAK,SAAS,MAAM,OAChB,KAAK,KAAK,EAAE,eAAiB,KAAK,KAAK,EAAE,aACnC,IAAW,KAAK,mBAChB,MACd,EACA,EAAc,UAAU,mBAAqB,SAAU,EAAM,CACrD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAc,KAAK,KAAK,GACxB,CAAC,EAAY,MAAM,IAAM,CAAC,EAAY,UAAU,KAEpD,EAAY,MAAM,KAAO,EAAY,MAAM,GAAG,sBAAsB,EACpE,EAAY,UAAU,KAClB,EAAY,UAAU,GAAG,sBAAsB,EAC/C,KAAK,eAAe,EAAY,MAAM,IAAI,GAC1C,KAAK,cAAc,CAAI,EACvB,GAAW,EAAY,MAAM,GAAI,KAAK,WAAW,KAAK,EAClD,KAAK,eAAe,EAAY,UAAU,IAAI,EAC9C,GAAW,EAAY,UAAU,GAAI,KAAK,WAAW,KAAK,EAG1D,GAAc,EAAY,UAAU,GAAI,KAAK,WAAW,KAAK,IAIjE,GAAc,EAAY,MAAM,GAAI,KAAK,WAAW,KAAK,EACrD,KAAK,QAAQ,UACb,KAAK,cAAc,CAAI,GAGnC,EACA,EAAc,UAAU,oBAAsB,SAAU,EAAM,CACtD,IAAS,IAAK,KAAK,EAAO,KAC9B,GAAc,KAAK,KAAK,GAAM,MAAM,GAAI,KAAK,WAAW,KAAK,EAC7D,GAAc,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,KAAK,EAC7D,KAAK,QAAQ,UACb,KAAK,cAAc,CAAI,CAE/B,EAIA,EAAc,UAAU,YAAc,SAAU,EAAG,EAAM,CAEjD,IAAS,IAAK,KAAK,EAAO,KAC9B,KAAK,WAAa,GAClB,IAAI,EAAa,GAAmB,KAAK,EAAE,EACvC,EAAW,GAAiB,KAAK,EAAE,EACnC,EAAY,KAAK,KAAK,GAAM,UAE5B,EAAc,IAAS,IAAM,EAAE,MAAQ,EAAE,MAC7C,KAAK,KAAK,GAAM,WACZ,GAAsB,EAAU,OAA8C,KAAK,KAAK,GAAM,aAAgB,GAClH,KAAK,YAAc,EACnB,GAAW,KAAK,GAAI,KAAK,WAAW,QAAQ,EAC5C,EAAW,iBAAiB,YAAa,KAAK,KAAM,EAAI,EACxD,EAAW,iBAAiB,UAAW,KAAK,UAAW,EAAI,EACvD,KAAK,uBAAyB,MAC9B,EAAW,iBAAiB,QAAS,KAAK,aAAc,EAAI,EAC5D,EAAW,iBAAiB,WAAY,KAAK,aAAc,EAAI,IAG/D,EAAS,aAAa,KAAK,oBAAoB,EAC/C,KAAK,qBAAuB,KAEpC,EACA,EAAc,UAAU,aAAe,SAAU,EAAG,EAAM,CACtD,IAAI,EAAQ,KAER,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAc,KAAK,KAAK,GACxB,MAAC,KAAK,QAAQ,cACd,CAAC,EAAY,UAAU,IACvB,CAAC,KAAK,kBAGV,GAAE,eAAe,EACjB,IAAI,EAAW,GAAiB,KAAK,EAAE,EACvC,KAAK,KAAK,GAAM,UAAU,KACtB,EAAY,UAAU,GAAG,sBAAsB,EAEnD,IAAI,EADY,KAAK,KAAK,GAAM,UACY,OAA8C,KAAK,KAAK,GAAM,aAA8C,EACpJ,EAAW,SAAqB,KAAK,WAAkD,KAAK,KAAK,GAAM,WAA4C,MAAO,EAAE,EAC5J,EAAW,KAAK,iBAAiB,KAAK,KAAK,GAAM,kBAIjD,GAHI,IAAS,IACX,KAAK,OAAS,EACd,KAAK,OAAS,GACN,EAAI,GAAK,EACnB,EAAa,IAAQ,GAAK,EAAW,EAAW,EAAW,EAC3D,EAAQ,GACR,EAAW,UAAY,CAClB,EAAM,mBAEP,IAAQ,GACJ,EAAW,IACX,GAAY,EACZ,EAAM,iBAAiB,EAAM,KAAK,GAAM,kBAAoB,EAC5D,EAAS,sBAAsB,CAAQ,GAIvC,EAAW,IACX,GAAY,EACZ,EAAM,iBAAiB,EAAM,KAAK,GAAM,kBAAoB,EAC5D,EAAS,sBAAsB,CAAQ,GAGnD,EACA,EAAS,CAhCQ,CAiCrB,EAIA,EAAc,UAAU,kBAAoB,UAAY,CACpD,OAAO,KAAK,SAChB,EAIA,EAAc,UAAU,iBAAmB,UAAY,CACnD,OAAO,KAAK,gBAChB,EACA,EAAc,UAAU,gBAAkB,UAAY,CAClD,IAAI,EAAW,GAAiB,KAAK,EAAE,EAEvC,KAAK,GAAG,oBAAoB,aAAc,KAAK,YAAY,EAC3D,KAAK,GAAG,oBAAoB,cAAe,KAAK,eAAgB,EAAI,EACpE,KAAK,GAAG,oBAAoB,YAAa,KAAK,WAAW,EACzD,KAAK,GAAG,oBAAoB,aAAc,KAAK,YAAY,EACvD,KAAK,kBACL,KAAK,iBAAiB,oBAAoB,SAAU,KAAK,QAAQ,EAErE,EAAS,oBAAoB,SAAU,KAAK,cAAc,EACtD,KAAK,kBACL,KAAK,iBAAiB,WAAW,EAEjC,KAAK,gBACL,KAAK,eAAe,WAAW,EAGnC,KAAK,YAAY,OAAO,EACxB,KAAK,eAAe,OAAO,EAC3B,KAAK,gBAAgB,OAAO,EAC5B,KAAK,eAAe,OAAO,CAC/B,EAIA,EAAc,UAAU,QAAU,UAAY,CAC1C,KAAK,gBAAgB,CACzB,EAIA,EAAc,UAAU,eAAiB,SAAU,EAAM,CACrD,OAAQ,KAAK,QAAU,EAAK,MACxB,KAAK,QAAU,EAAK,KAAO,EAAK,OAChC,KAAK,QAAU,EAAK,KACpB,KAAK,QAAU,EAAK,IAAM,EAAK,MACvC,EAIA,EAAc,UAAU,UAAY,SAAU,EAAI,EAAO,CACrD,IAAI,EAAU,EAAG,SACb,EAAG,uBACH,EAAG,oBACH,EAAG,kBACP,OAAO,MAAM,UAAU,OAAO,KAAK,EAAG,SAAU,SAAU,EAAO,CAC7D,OAAO,EAAQ,KAAK,EAAO,CAAK,CACpC,CAAC,EAAE,EACP,EACA,EAAc,WAAa,KAC3B,EAAc,eAAiB,CAC3B,aAAc,GACd,aAAc,GACd,iBAAkB,GAClB,iBAAkB,EAClB,UAAW,qBACX,SAAU,EACV,WAAY,CACR,UAAW,oBACX,eAAgB,4BAChB,OAAQ,mBACR,KAAM,iBACN,QAAS,oBACT,YAAa,wBACb,UAAW,sBACX,MAAO,kBACP,4BAA6B,yCAC7B,qBAAsB,iCACtB,QAAS,oBACT,WAAY,uBACZ,SAAU,qBACV,MAAO,kBACP,SAAU,qBACV,UAAW,sBACX,WAAY,uBACZ,aAAc,yBAClB,EACA,eAAgB,KAChB,YAAa,KACb,SAAU,EACd,EAIA,EAAc,WAAaf,IAC3B,EAAc,QAAU,IACjB,CACX,EAAE,ECn4BE,GAAgB,SAAS,EAAG,EAAG,CAI/B,MAHA,IAAgB,OAAO,gBAClB,CAAE,UAAW,CAAC,CAAE,YAAa,OAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,IAAK,IAAI,KAAK,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAAG,EAAE,GAAK,EAAE,GAAI,EAC7F,GAAc,EAAG,CAAC,CAC7B,EAEA,SAAS,IAAU,EAAG,EAAG,CACrB,GAAI,OAAO,GAAM,YAAc,IAAM,KACjC,MAAU,UAAU,uBAAyB,OAAO,CAAC,EAAI,+BAA+B,EAC5F,GAAc,EAAG,CAAC,EAClB,SAAS,GAAK,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,GAAK,EAAG,UAAY,EAAE,UAAW,IAAI,EACnF,CAEA,IAAI,GAAK,GAAc,QAAS,GAAa,GAAG,WAAY,GAAa,GAAG,WAAY,IAAY,GAAG,UACnG,GAA2B,SAAU,EAAQ,CAC7C,IAAU,EAAW,CAAM,EAC3B,SAAS,GAAY,CAEZ,IADD,MAEW,WAEX,EAAQ,EAAO,MAAM,KAAM,CAAI,GAAK,KAGxC,OADA,EAAU,UAAU,IAAI,EAAK,GAAI,CAAK,EAC/B,CACX,CAqIA,MApIA,GAAU,sBAAwB,UAAY,CAC1C,SAAS,oBAAoB,mBAAoB,KAAK,qBAAqB,EAC3E,OAAO,oBAAoB,OAAQ,KAAK,qBAAqB,EAC7D,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,kBAAkB,EAAG,SAAU,EAAI,CAClF,EAAG,aAAa,gBAAgB,IAAM,QACtC,CAAC,EAAU,UAAU,IAAI,CAAE,GAC3B,IAAI,EAAU,EAAI,GAAW,EAAG,UAAU,CAAC,CACnD,CAAC,CACL,EACA,EAAU,eAAiB,UAAY,CACnC,IAAI,GACH,EAAK,EAAU,iBAAoB,MAAiC,EAAG,WAAW,CACvF,EACA,EAAU,UAAU,QAAU,UAAY,CACtC,IAAI,EAAQ,KACR,EAAI,EAAI,EAEZ,GAAI,CAAC,MAAM,UAAU,OAAO,KAAK,KAAK,GAAG,SAAU,SAAU,EAAO,CAChE,OAAO,EAAM,UAAU,SAAS,EAAM,WAAW,OAAO,CAC5D,CAAC,EAAE,OAAQ,CAkBP,IAhBA,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,iBAAmB,SAAS,cAAc,KAAK,EACpD,KAAK,SAAW,SAAS,cAAc,KAAK,EAC5C,KAAK,OAAS,SAAS,cAAc,KAAK,EAC1C,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,cAAgB,SAAS,cAAc,KAAK,EACjD,KAAK,4BAA8B,SAAS,cAAc,KAAK,EAC/D,KAAK,qBAAuB,SAAS,cAAc,KAAK,EACxD,GAAW,KAAK,UAAW,KAAK,WAAW,OAAO,EAClD,GAAW,KAAK,iBAAkB,KAAK,WAAW,cAAc,EAChE,GAAW,KAAK,SAAU,KAAK,WAAW,MAAM,EAChD,GAAW,KAAK,OAAQ,KAAK,WAAW,IAAI,EAC5C,GAAW,KAAK,UAAW,KAAK,WAAW,SAAS,EACpD,GAAW,KAAK,cAAe,KAAK,WAAW,WAAW,EAC1D,GAAW,KAAK,4BAA6B,KAAK,WAAW,2BAA2B,EACxF,GAAW,KAAK,qBAAsB,KAAK,WAAW,oBAAoB,EACnE,KAAK,GAAG,YACX,KAAK,UAAU,YAAY,KAAK,GAAG,UAAU,EAEjD,KAAK,iBAAiB,YAAY,KAAK,SAAS,EAChD,KAAK,SAAS,YAAY,KAAK,gBAAgB,EAC/C,KAAK,OAAO,YAAY,KAAK,QAAQ,EACrC,KAAK,4BAA4B,YAAY,KAAK,oBAAoB,EACtE,KAAK,UAAU,YAAY,KAAK,2BAA2B,EAC3D,KAAK,UAAU,YAAY,KAAK,MAAM,EACtC,KAAK,UAAU,YAAY,KAAK,aAAa,EAC7C,KAAK,GAAG,YAAY,KAAK,SAAS,GACjC,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,WAAY,KAAK,QAAQ,SAAS,SAAS,CAAC,GAC7H,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,OAAQ,QAAQ,GACjG,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,aAAc,KAAK,QAAQ,SAAS,CAC1H,CACA,GAAI,CAAC,KAAK,KAAK,EAAE,MAAM,IAAM,CAAC,KAAK,KAAK,EAAE,MAAM,GAAI,CAChD,IAAI,EAAQ,SAAS,cAAc,KAAK,EACpC,EAAY,SAAS,cAAc,KAAK,EAC5C,GAAW,EAAO,KAAK,WAAW,KAAK,EACvC,GAAW,EAAW,KAAK,WAAW,SAAS,EAC/C,EAAM,YAAY,CAAS,EAC3B,KAAK,KAAK,EAAE,MAAM,GAAK,EAAM,UAAU,EAAI,EAC3C,GAAW,KAAK,KAAK,EAAE,MAAM,GAAI,KAAK,WAAW,UAAU,EAC3D,KAAK,KAAK,EAAE,MAAM,GAAK,EAAM,UAAU,EAAI,EAC3C,GAAW,KAAK,KAAK,EAAE,MAAM,GAAI,KAAK,WAAW,QAAQ,EACzD,KAAK,GAAG,YAAY,KAAK,KAAK,EAAE,MAAM,EAAE,EACxC,KAAK,GAAG,YAAY,KAAK,KAAK,EAAE,MAAM,EAAE,CAC5C,CACA,GAAc,UAAU,QAAQ,KAAK,IAAI,EACzC,KAAK,GAAG,aAAa,iBAAkB,MAAM,CACjD,EACA,EAAU,UAAU,QAAU,UAAY,CACtC,GAAc,UAAU,QAAQ,KAAK,IAAI,EACzC,EAAU,UAAU,OAAU,KAAK,EAAE,CACzC,EACA,EAAU,YAAc,UAAY,CAChC,KAAK,sBAAwB,KAAK,sBAAsB,KAAK,IAAI,EAE7D,OAAO,iBAAqB,MAE5B,KAAK,eAAiB,IAAI,iBAAiB,EAAU,eAAe,EACpE,KAAK,eAAe,QAAQ,SAAU,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,GAIxE,SAAS,aAAe,YACvB,SAAS,aAAe,WAAa,CAAC,SAAS,gBAAgB,SAEhE,OAAO,WAAW,KAAK,qBAAqB,GAG5C,SAAS,iBAAiB,mBAAoB,KAAK,qBAAqB,EACxE,OAAO,iBAAiB,OAAQ,KAAK,qBAAqB,EAElE,EACA,EAAU,gBAAkB,SAAU,EAAW,CAC7C,EAAU,QAAQ,SAAU,EAAU,CAClC,EAAS,WAAW,QAAQ,SAAU,EAAW,CACzC,EAAU,WAAa,IACnB,EAAU,aAAa,gBAAgB,EACvC,CAAC,EAAU,UAAU,IAAI,CAAS,GAC9B,SAAS,gBAAgB,SAAS,CAAS,GAC3C,IAAI,EAAU,EAAW,GAAW,EAAU,UAAU,CAAC,EAG7D,EACK,iBAAiB,kBAAkB,EACnC,QAAQ,SAAU,EAAI,CACnB,EAAG,aAAa,gBAAgB,IAAM,QACtC,CAAC,EAAU,UAAU,IAAI,CAAE,GAC3B,SAAS,gBAAgB,SAAS,CAAE,GACpC,IAAI,EAAU,EAAI,GAAW,EAAG,UAAU,CAAC,CACnD,CAAC,EAGb,CAAC,EACD,EAAS,aAAa,QAAQ,SAAU,EAAa,CACjD,IAAI,EACA,EAAY,WAAa,IACrB,EAAY,aAAa,gBAAgB,IAAM,OAC/C,CAAC,SAAS,gBAAgB,SAAS,CAAW,KACxC,EAAK,EAAU,UAAU,IAAI,CAAW,IAAO,MAAiC,EAAG,QAAQ,GAGjG,MAAM,UAAU,QAAQ,KAAK,EAAY,iBAAiB,yBAAyB,EAAG,SAAU,EAAI,CAChG,IAAI,EACJ,CAAC,SAAS,gBAAgB,SAAS,CAAE,KAC/B,EAAK,EAAU,UAAU,IAAI,CAAE,IAAO,MAAiC,EAAG,QAAQ,EAC5F,CAAC,EAGb,CAAC,CACL,CAAC,CACL,EACA,EAAU,UAAY,IAAI,QACnB,CACX,EAAE,EAAa,EAKX,KACA,GAAU,YAAY,sPClM1B,aAcI,EAAa,sBAAG,EAAE,EAClB,EAAc,uBAAG,EAAE,EACnB,EAAY,qBAAG,EAAK,EACpB,EAAa,sBAAG,EAAK,EAKjB,EAAmB,GAAsB,CAC7C,EAAM,gBAAe,mBAEvB,EAEM,EAAoB,GAAsB,CAC9C,EAAM,gBAAe,oBAEvB,MAGD,EAAG,MACD,IADF,CAAG,EAQC,KAPF,CAOM,qBAAO,QAPb,OASA,IATA,KAgBE,KAPF,CAOM,qBAAO,QAPb,KAVF,CAAG,WACD,eAGa,EAAa,GAH1B,WAIW,EAAY,IAKvB,eAGa,EAAc,GAH3B,WAIW,EAAa,eAbxB,EAKiB,EAAe,eAIhC,EAKiB,EAAgB,QAfnC,CAAG,KAFI,iBC/BR,KASI,EAAQ,iBAAG,EAAK,EAQnB,GAAO,iFAAkB,EAAQ,GACtB,eAAc,IAAI,GAAI,qBAAO,oCAHjC,qFCfR,aAeuB,EAAQ,0BAAO,EAAQ,iBAAG,EAAK,EAE9C,EAAe,OAAa,EAAQ,OAAQ,OAAO,OAAO,GAE1D,EAAW,GACX,EAAQ,OAAS,UAAkB,GAEnC,EAAQ,OAAS,QAAgB,GAE9B,GAGH,EAAc,GACd,EAAQ,QAAgB,EAAQ,QAEhC,EAAQ,OAAS,UAAkB,0BAEnC,EAAQ,OAAS,QAAgB,sCAE9B,+BAGH,EAAa,GAA+B,oBAAyB,EAAQ,OAE7E,GAAsB,EAAmB,IAAoC,CACjF,EAAM,gBAAe,EAEjB,IAAQ,UAAY,EAAQ,UAE3B,EAAQ,UAAO,OAAU,SAAQ,YACxC,6BAIC,EAAG,SAAH,EAAG,SACK,CAAe,GAAI,EAAO,OAAY,EAAQ,KAAI,GAAI,KAAK,EAAxC,IAAO,cAGvB,EAAO,EAAC,CAAO,YACX,GAAO,EAAC,CAAO,EAAC,UAAQ,EAAI,CAAO,EAAC,QAAO,UACrC,EAAU,EAAC,CAAO,YACvB,EAAU,EAAC,CAAO,YAEjB,EAAS,EAAC,CAAO,IAP9B,kKAME,EAAQ,yCAEC,GAAU,EAAmB,EAAK,EAAE,CAAO,UAV1D,CAAG,MAAH,CAAG,aADD,CAAe,EAAC,QAAM,iBAFnB,CCjCR,IAAa,GAAwC,CAAE,QAAS,KAAM,OAAQ,CAAC,EAAG,KAAM,CAAC,CAAE,EAE3F,SAAgB,GACd,EACA,EACA,EACoB,CACpB,GAAI,CAAC,EAAS,OAAO,GAErB,IAAM,EAAa,OAAO,GAAY,WAChC,EAAa,EAAa,EAAQ,QAAQ,EAAK,CAAQ,EAAI,KAC3D,EAAS,EAAa,CAAC,EAAK,EAAQ,EAAK,CAAQ,GAAK,CAAC,EACvD,EAAU,EACZ,EAAW,SAAS,UAAY,GAC9B,KACA,EAAW,QACZ,EAAO,KAAM,GAAW,EAAO,SAAW,EAAO,UAAY,EAAK,GAAK,KACtE,EAAY,EACd,EAAW,UAAU,OAAQ,GAAW,EAAO,UAAY,EAAK,EAChE,EAAO,OAAQ,GAAW,IAAW,GAAW,EAAO,UAAY,EAAK,EAE5E,GAAI,EAAY,CACd,IAAM,EAAM,CAAC,EAAS,GAAG,CAAS,EAC/B,OAAQ,GAAW,IAAW,IAAI,EAClC,IAAK,GAAW,EAAO,EAAE,EAE5B,GAAI,IAAI,IAAI,CAAG,EAAE,OAAS,EAAI,OAAQ,MAAU,MAAM,sCAAsC,EAE5F,GAAI,IAAY,CAAC,EAAQ,MAAQ,EAAQ,OAAS,UAChD,MAAU,MAAM,sEAAsE,CAC1F,CAEA,MAAO,CACL,UACA,OAAQ,EAAU,OACf,GAAW,EAAO,UAAY,UAAa,CAAC,GAAc,EAAO,OACpE,EACA,KAAM,EAAU,OAAQ,GAAW,EAAO,UAAY,UAAY,CAAC,EAAO,OAAO,CACnF,CACF,CAEA,SAAgB,IAAgB,EAA6B,EAAe,EAAW,CACrF,IAAM,EACJ,OAAO,EAAQ,EAAQ,OAAQ,EAC/B,EAAQ,OAAO,OACf,EACA,OAAO,EAAQ,KAAK,OAAS,CAAC,EAEhC,OAAO,KAAK,IAAI,GAAI,EAAQ,GAAK,KAAK,IAAI,EAAG,EAAQ,CAAC,EAAI,EAAI,EAAE,CAClE,CCVA,IAAa,IAAb,cAA+B,GAAI,CAElC,GAAW,IAAI,IACf,GAAW,EAAM,CAAC,EAClB,GAAQ,EAAM,CAAC,EACf,GAAkB,IAAkB,GAKpC,YAAY,EAAO,CAWlB,GAVA,MAAM,EAEFrO,IAEH,EAAQ,IAAI,IAAI,CAAK,EAErB,GAAI,KAAKsP,GAAU,mBAAmB,EACtC,GAAI,KAAKC,GAAO,gBAAgB,GAG7B,EAAO,CACV,IAAK,GAAI,CAAC,EAAK,KAAM,EACpB,MAAM,IAAI,EAAK,CAAC,EAEjB,KAAKA,GAAM,EAAI,MAAM,IACtB,CACD,CAWA,GAAQ,EAAO,CACd,OAAO,KAAmB,KAAKC,GAAkB,EAAM,CAAK,EAAI,GAAO,CAAK,CAC7E,CAGA,IAAI,EAAK,CACR,IAAI,EAAU,KAAKC,GACf,EAAI,EAAQ,IAAI,CAAG,EAEvB,GAAI,IAAM,OACT,GAAI,MAAM,IAAI,CAAG,EAChB,EAAI,KAAKC,GAAQ,CAAC,EAEd1P,GACH,GAAI,EAAG,iBAAiB,GAAM,CAAG,EAAE,EAAE,EAGtC,EAAQ,IAAI,EAAK,CAAC,OAKlB,OADA,EAAI,KAAKsP,EAAQ,EACV,GAKT,OADA,EAAI,CAAC,EACE,EACR,CAMA,QAAQ,EAAY,EAAU,CAC7B,KAAKK,GAAU,EACf,MAAM,QAAQ,EAAY,CAAQ,CACnC,CAGA,IAAI,EAAK,CACR,IAAI,EAAU,KAAKF,GACf,EAAI,EAAQ,IAAI,CAAG,EAEvB,GAAI,IAAM,OACT,GAAI,MAAM,IAAI,CAAG,EAChB,EAAI,KAAKC,GAAQ,CAAC,EAEd1P,GACH,GAAI,EAAG,iBAAiB,GAAM,CAAG,EAAE,EAAE,EAGtC,EAAQ,IAAI,EAAK,CAAC,MACZ,CAGN,EAAI,KAAKsP,EAAQ,EACjB,MACD,CAID,OADA,EAAI,CAAC,EACE,MAAM,IAAI,CAAG,CACrB,CAMA,IAAI,EAAK,EAAO,CACf,IAAI,EAAU,KAAKG,GACf,EAAI,EAAQ,IAAI,CAAG,EACnB,EAAW,MAAM,IAAI,CAAG,EACxB,EAAM,MAAM,IAAI,EAAK,CAAK,EAC1B,EAAU,KAAKH,GAEnB,GAAI,IAAM,OACT,EAAI,KAAKI,GAAQ,CAAC,EAEd1P,GACH,GAAI,EAAG,iBAAiB,GAAM,CAAG,EAAE,EAAE,EAGtC,EAAQ,IAAI,EAAK,CAAC,EAClB,EAAI,KAAKuP,GAAO,MAAM,IAAI,EAC1B,GAAU,CAAO,OACX,GAAI,IAAa,EAAO,CAC9B,GAAU,CAAC,EAGX,IAAI,EAAc,EAAQ,YAAc,KAAO,KAAO,IAAI,IAAI,EAAQ,SAAS,GAE9E,IAAgB,MAChB,CAAC,EAAE,WAAW,MAAO,GAC4B,EAAa,IAAI,CAAC,CACnE,IAEA,GAAU,CAAO,CAEnB,CAEA,OAAO,CACR,CAGA,OAAO,EAAK,CACX,IAAI,EAAU,KAAKE,GACf,EAAI,EAAQ,IAAI,CAAG,EACnB,EAAM,MAAM,OAAO,CAAG,EAY1B,OAVI,IAAM,SACT,EAAQ,OAAO,CAAG,EAClB,EAAI,EAAG,EAAE,GAGN,IACH,EAAI,KAAKF,GAAO,MAAM,IAAI,EAC1B,GAAU,KAAKD,EAAQ,GAGjB,CACR,CAEA,OAAQ,CACH,SAAM,OAAS,EAInB,OAAM,MAAM,EACZ,IAAI,EAAU,KAAKG,GACnB,EAAI,KAAKF,GAAO,CAAC,EACjB,IAAK,IAAI,KAAK,EAAQ,OAAO,EAC5B,EAAI,EAAG,EAAE,EAEV,GAAU,KAAKD,EAAQ,EACvB,EAAQ,MAAM,CAPF,CAQb,CAEA,IAAY,CACX,EAAI,KAAKA,EAAQ,EAEjB,IAAI,EAAU,KAAKG,GACnB,GAAI,KAAKF,GAAM,IAAM,EAAQ,UACvB,IAAI,KAAO,MAAM,KAAK,EAC1B,GAAI,CAAC,EAAQ,IAAI,CAAG,EAAG,CACtB,IAAI,EAAI,KAAKG,GAAQ,CAAC,EAClB1P,GACH,GAAI,EAAG,iBAAiB,GAAM,CAAG,EAAE,EAAE,EAGtC,EAAQ,IAAI,EAAK,CAAC,CACnB,EAIF,IAAK,EAAG,KAAM,KAAKyP,GAClB,EAAI,CAAC,CAEP,CAEA,MAAO,CAEN,OADA,EAAI,KAAKH,EAAQ,EACV,MAAM,KAAK,CACnB,CAEA,QAAS,CAER,OADA,KAAKK,GAAU,EACR,MAAM,OAAO,CACrB,CAEA,SAAU,CAET,OADA,KAAKA,GAAU,EACR,MAAM,QAAQ,CACtB,CAEA,CAAC,OAAO,WAAY,CACnB,OAAO,KAAK,QAAQ,CACrB,CAEA,IAAI,MAAO,CAEV,OADA,EAAI,KAAKJ,EAAK,EACP,MAAM,IACd,CACD,EC9Qa,GAAqB,OAAO,oBAAoB,WAC7C,GAAuB,EAAkC,KACjE,MAAa,IACb,GAAO,EAAc,IAA2B,KAAK,WAAW,EAAO,CAAG,EAAG,EAAO,EAAE,UAG1F,OAAQ,EAAc,IAA2B,EAAO,IAAI,EAAI,EAAK,CAAM,SACrE,IAAI,EAAc,EAAkB,EAAwB,KAC1D,EAAK,EAAI,EAAK,CAAM,EAGxB,OAAO,IAAI,CAAE,IAAM,WACnB,EAAO,SACP,EAAO,UACP,EAAO,gBAIT,GAAO,IAAI,EAAI,SAAS,KAEpB,OACI,EAAO,QAAQ,GAAO,aAC5B,EAAO,IAAI,EAAI,SAAS,CAC1B,MAAQ,CACN,EAAO,IAAI,EAAI,OAAO,CACxB,CAPwB,CAQ1B,EAEJ,2dC/BA,aAwGU,GAAY,EAAC,EAAsB,EAAE,EAAkB,SAC9D,+BAmBmB,GAAI,qBAAO,EAAM,EAAC,oCAAgB,EAAM,EAAC,KAAK,mBAA3D,EAAM,EAAC,KAAI,iBAnBjB,+BAQG,QAAS,EAAM,EAAC,gBAAkB,EAAM,EAAC,SAAW,EAAM,EAAC,MAC3D,UAAW,EAAM,EAAC,mBAAqB,EAAM,EAAC,uBAA+B,mBAThF,mBAEiB,EAAM,EAAC,EAAE,IAF1B,eAMa,EAAM,EAAC,KAAK,EANzB,+BAYc,EAAM,EAAC,MAAM,IAZ3B,wDAGe,EAAM,EAAC,OAAS,iBACf,EAAS,aACR,EAAM,EAAC,cAMb,EAAQ,EAAM,OAEb,EAAQ,EAAM,eAb1B,EAcW,GAAU,CAClB,EAAM,gBAAe,EACrB,EAAI,EAAM,EACZ,CAAC,MAjBF,IA5EC,EAAQ,0BACR,EAAQ,iBAAG,EAAI,EACf,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EACb,EAAO,gBAAG,EAAK,EAYX,EACJ,GAA6B,EAAkB,GAAK,GAAuB,EAAS,EAChF,EAAS,MAAqB,KAC5B,EAAK,sCAEJ,MAAM,QAAQ,CAAK,EACtB,OAAwB,EAAK,kBAC5B,GAAS,GAAiB,2BACjC,CAAC,EACK,EAAO,QAAY,CAAS,EAAC,OAAO,EACpC,EAAM,QAAY,CAAS,EAAC,MAAM,EAClC,EAAS,QAAY,CAAS,EAAC,IAAI,EACnC,EAAO,YAAiB,CAAO,KAAI,CAAO,WAAY,CAAM,OAAK,CAAS,IAC1E,EAAW,GACf,EAAO,SAAW,EAAY,MAAK,MAAM,CAAM,IAAM,UACjD,EAAW,GACf,EAAO,GAAI,EAAQ,GAAI,EAAO,UAAY,EAAQ,EAAO,gBAAmB,EAAQ,CAAM,EACtF,EAAM,QAAY,CAAO,EAAC,KAAM,GAAW,EAAY,MAAK,MAAM,CAAM,IAAM,OAAO,YAClF,EAAI,EAAwB,CAC/B,EAAQ,CAAM,GAEb,EAAY,IAAG,iBAAgB,CAAM,CAC5C,4BAII,IAAH,CAAG,qBAIH,EAAG,SAAH,CAAG,QAC8B,EAAY,QAAC,CAAO,MAAE,EAAI,aAArD,CAAO,IAAK,EAAK,uBACrB,IAAgB,mFAA4B,EAAQ,yBAAG,EAAQ,mDAEvD,CAAM,EAAI,GAAQ,EAAO,IAAE,EAAjB,IAAM,CAAsB,EAAY,QAAC,CAAM,MAAE,EAAK,oBADnE,EAAK,iCAIR,EAAG,UAAH,CAAG,iBAIO,CAAS,EAAC,IAAK,IAAM,CAC1B,GAAI,EAAO,GACX,MAAO,EAAO,MACd,KAAM,EAAO,KACb,KAAM,EAAO,KACb,SAAU,EAAQ,CAAM,EACxB,OAAQ,EAAO,gBAAkB,EAAO,QACxC,iBAAkB,EAAO,mBAAqB,EAAO,uBAA+B,IACpF,OAAQ,EAAO,OACf,YAAe,EAAI,CAAM,MAZ5B,qDAEE,EAAQ,gCAHZ,CAAG,MAAH,CAAG,aADD,CAAS,EAAC,QAAM,CAAK,EAAK,YANhC,CAAG,UAAH,EAAG,aA0BuB,IAAJ,CAAI,aAAtB,CAAM,IAAK,EAAK,0BA/BlB,EAAO,SAID,EAAK,GAAI,EAAQ,EAAC,SAAM,mBAN3B,eC9DR,SAAS,GAAiB,EAAS,EAAO,CACzC,OAAO,OAAO,GAAY,WAAa,EAAQ,CAAK,EAAI,CACzD,CAMA,SAAS,GAAW,EAAO,CAC1B,GAAI,MAAM,QAAQ,CAAK,EAAG,OAAO,EAAM,IAAI,EAAU,EACrD,GAAI,GAAS,OAAO,GAAU,SAAU,CACvC,IAAM,EAAQ,OAAO,eAAe,CAAK,EACzC,GAAI,IAAU,OAAO,WAAa,IAAU,KAAM,OAAO,EACzD,IAAM,EAAO,IAAU,KAAO,GAAc,EAAI,CAAC,EAC3C,EAAO,OAAO,KAAK,CAAK,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAK,GACjB,OAAO,eAAe,EAAM,EAAK,CAChC,aAAc,GACd,WAAY,GACZ,MAAO,GAAW,EAAM,EAAI,EAC5B,SAAU,EACX,CAAC,CACF,CACA,OAAO,CACR,CACA,OAAO,CACR,CAMA,SAAS,IAAmC,EAAQ,EAAQ,CAC3D,IAAM,EAAO,OAAO,KAAK,CAAM,EACzB,EAAe,EACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAK,GACb,CAAC,EAAI,WAAW,QAAQ,GAAK,IAAQ,gBAAe,EAAa,GAAO,EAAO,GACpF,CACA,OAAO,CACR,CAOA,SAAS,IAAgB,CACxB,OAAO,OAAO,OAAO,IAAI,CAC1B,CAIA,SAAS,GAAO,EAAK,EAAK,CACzB,OAAO,OAAO,UAAU,eAAe,KAAK,EAAK,CAAG,CACrD,CAMA,SAAS,GAAiB,EAAK,EAAU,CACxC,MAAQ,IAAY,EAClB,EAAS,QAAQ,QAAQ,IAAQ,EAAS,UAAU,IAAM,IAAK,GAAQ,GAAiB,EAAS,CAAG,CAAC,CACvG,CACD,CAMA,SAAS,GAAiB,EAAO,CAChC,GAAI,OAAO,GAAU,WAAY,EAAgB,MAAO,GACxD,GAAI,MAAM,QAAQ,CAAK,EAAG,MAAO,GACjC,IAAM,EAAQ,OAAO,eAAe,CAAK,EACzC,OAAO,IAAU,OAAO,WAAa,IAAU,IAChD,CAMA,SAAS,GAAqB,EAAO,CACpC,OAAO,QAAQ,QAAQ,CAAK,EAAE,OAAQ,GAAQ,OAAO,UAAU,qBAAqB,KAAK,EAAO,CAAG,CAAC,CACrG,CACA,IAAM,IAA0B,EAUhC,SAAS,IAAiB,EAAG,EAAG,CAC/B,OAAO,GAAwB,EAAG,EAAG,GAAuB,CAC7D,CACA,SAAS,GAAwB,EAAG,EAAG,EAAO,CAC7C,GAAI,OAAO,GAAG,EAAG,CAAC,EAAG,MAAO,GAE5B,GADI,GAAS,GAAK,CAAC,GAAiB,CAAC,GAAK,CAAC,GAAiB,CAAC,IACzD,MAAM,QAAQ,CAAC,GAAK,MAAM,QAAQ,CAAC,KAClC,CAAC,MAAM,QAAQ,CAAC,GAAK,CAAC,MAAM,QAAQ,CAAC,GAAK,EAAE,SAAW,EAAE,QAAQ,MAAO,GAE7E,IAAM,EAAQ,GAAqB,CAAC,EAC9B,EAAQ,GAAqB,CAAC,EACpC,GAAI,EAAM,SAAW,EAAM,OAAQ,MAAO,GAC1C,IAAM,EAAU,EACV,EAAU,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAM,EAAM,GAElB,GADI,CAAC,OAAO,UAAU,qBAAqB,KAAK,EAAG,CAAG,GAClD,CAAC,GAAwB,EAAQ,GAAM,EAAQ,GAAM,EAAQ,CAAC,EAAG,MAAO,EAC7E,CACA,MAAO,EACR,CAsBA,SAAS,GAAc,EAAU,EAAK,EAAS,EAAU,IAAkB,CAC1E,IAAM,EAAc,KAAK,EAAI,OAAO,CAAC,EAAE,YAAY,IAAI,EAAI,MAAM,CAAC,EAAE,QAC9D,EAAW,EAAS,QAAQ,GAC7B,GACL,EAAU,GAAY,CACrB,IAAM,EAAO,GAAiB,EAAS,CAAO,EAC9C,OAAO,EAAQ,EAAS,CAAI,EAAI,EAAU,CAC3C,CAAC,CACF,CAIA,SAAS,IAAW,EAAG,CACtB,OAAO,aAAa,QACrB,CAMA,SAAS,IAAU,EAAK,EAAa,CACpC,IAAM,EAAO,CAAC,EACR,EAAW,GAAW,CAC3B,EAAO,QAAS,GAAS,CACxB,EAAK,KAAK,CAAI,EACd,IAAM,EAAW,EAAY,CAAI,EAC7B,EAAS,QAAQ,EAAQ,CAAQ,CACtC,CAAC,CACF,EAEA,OADA,EAAQ,CAAG,EACJ,CACR,CAMA,IAAMK,KAAQ,CAAE,KAAI,WAAU,iBAAgB,gBAAe,kBAAiB,oBAAqB,CAClG,IAAI,EAAO,CAAC,EACR,EAmBJ,MAlBoB,IAAY,CAC/B,IAAkB,EAClB,IAAM,EAAU,IAAW,CAAO,EAC9B,EAAc,CAAC,GAAW,EAAQ,SAAW,GAAM,OACvD,GAAI,CAAC,GAAe,OACd,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,GAAI,EAAQ,KAAO,EAAK,GAAI,CACpE,EAAc,GACd,KACD,EAQD,OANA,IAAiB,CAAW,EACvB,GACL,EAAO,EACP,IAAiB,EACjB,EAAS,EAAG,GAAG,GAAW,CAAC,CAAC,EAC5B,IAAgB,CAAM,EACf,GALkB,CAM1B,CAED,EASA,SAAS,IAAa,EAAI,CACzB,IAAI,EAAS,GACb,UAAa,CACZ,GAAI,CAAC,EAAQ,CACZ,EAAS,GACT,MACD,CACA,EAAG,CACJ,CACD,CAWA,SAAS,GAAU,CAAE,UAAS,SAAQ,WAAU,gBAAe,QAAO,GAAG,GAAe,CAyBvF,IAAM,MAA6B,CAClC,GAAI,CAAC,EAAe,OACpB,GAAM,CAAE,WAAU,WAAY,EAAM,YACpC,MAAe,MAAc,EAAc,CAAC,CAAC,CAC9C,EACM,EAaF,CAAE,kBAAqB,CAC1B,EAAqB,CACtB,CAAE,EACF,OAAOA,IAAK,CACX,GAAG,EACH,GAAG,CACJ,CAAC,CACF,CAIA,SAAS,GAAoB,EAAc,EAAU,IAAK,CACzD,GAAM,CAAC,EAAY,GAAS,EAAa,MAAM,CAAO,EACtD,MAAO,CACN,QACA,OAAQ,GAAG,EAAW,GAAG,IACzB,YACD,CACD,CAKA,SAAS,GAAgB,EAAS,EAAO,EAAM,CAC9C,IAAK,GAAM,CAAC,EAAc,CAAE,KAAI,eAAe,OAAO,QAAQ,CAAI,EAAG,CACpE,GAAM,CAAE,QAAO,UAAW,GAAoB,CAAY,EAC1D,EAAM,GAAS,EAAW,GAAU,CACnC,WACA,KACA,SACA,QACA,SACD,CAAC,EAAI,CACN,CACD,CAQA,SAAS,GAAoB,EAAS,EAAW,EAAO,EAAM,CAC7D,IAAK,GAAM,CAAC,EAAc,CAAE,KAAI,eAAe,OAAO,QAAQ,CAAI,EAAG,CACpE,GAAM,CAAE,QAAO,UAAW,GAAoB,CAAY,EAC1D,GAAI,EAAU,CACb,IAAM,EAAU,SAAS,IACzB,EAAU,GAAS,SAAS,GAAG,EAAM,CACpC,GAAI,CAAC,KAAK,GAAU,CACnB,IAAM,EAAO,KACb,KAAK,GAAW,GAAU,CACzB,SAAW,GAAY,EAAS,EAAM,CAAO,EAC7C,IAAK,GAAG,IAAS,EAAG,EAAM,GAAG,CAAI,EACjC,SACA,SAAU,EAAK,GACf,QACA,SACD,CAAC,CACF,CACA,OAAO,KAAK,GAAS,GAAG,CAAI,CAC7B,CACD,MAAO,EAAU,GAAS,SAAS,GAAG,EAAM,CAC3C,OAAO,EAAG,KAAM,GAAG,CAAI,CACxB,CACD,CACD,CAIA,SAAS,GAAmB,EAAK,EAAO,EAAU,GAAG,EAAM,CAC1D,OAAO,EAAI,KAAS,GAAG,CAAI,GAAK,EAAS,EAAK,GAAG,CAAI,CACtD,CC9UA,SAAS,IAAc,EAAM,CAC5B,OAAO,EAAK,IAAI,SAAS,EAAK,OAAO,EAAE,CACxC,CAYA,SAAS,IAAiB,EAAM,CAC/B,OAAO,EAAK,SAAS,GAAK,EAAK,MAAM,QAAQ,mBAC9C,CAYA,SAAS,IAAgB,EAAM,CAC9B,MAAO,CACN,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,IAAK,EAAK,IACV,OACA,aAAgB,EAAK,SAAS,EAC9B,gBAAmB,EAAK,YAAY,CACrC,CACD,CC1CA,IAAM,IAAmB,CAAE,qBAAsB,EAAW,IAAU,CACrE,GAAoB,mBAAoB,EAAW,EAAO,CACzD,cAAe,CAAE,GAAK,GAAS,IAAc,CAAI,CAAE,EACnD,iBAAkB,CAAE,GAAK,GAAS,IAAiB,CAAI,CAAE,EACzD,gBAAiB,CAChB,GAAK,GAAS,IAAgB,CAAI,EAClC,SAAW,GAAS,CAAC,CAAI,CAC1B,CACD,CAAC,CACF,CAAE,ECXF,SAAS,IAAmB,EAAO,CAClC,GAAI,CAAC,EAAM,iBAAkB,CAC5B,EAAM,iBAAmB,CAAE,OAAM,EACjC,IAAM,EAAW,OAAO,OAAO,EAAM,SAAS,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,EAAS,GAAG,wBAAwB,EAAM,iBAAkB,CAAK,CAC5G,CACA,OAAO,EAAM,gBACd,CAMA,SAAS,GAAgB,EAAO,EAAQ,EAAS,CAChD,IAAM,EAAkB,IAAmB,CAAK,EAC1C,EAAS,OAAO,OAAO,CAAe,EAC5C,EAAO,QAAU,EACjB,EAAO,OAAS,EAChB,EAAO,MAAQ,EAAQ,MACvB,EAAO,YAAc,KACrB,EAAO,GAAK,EAAQ,IAAM,EAAO,GACjC,EAAO,MAAQ,EAAQ,MACvB,EAAO,cAAgB,CAAC,CAAC,EAAQ,cACjC,EAAO,cAAgB,EAAQ,cAC/B,EAAO,QAAU,EACjB,EAAO,WAAa,CAAC,EACrB,IAAM,EAAU,EAAM,uBACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAQ,GAAG,CAAM,EAC1D,OAAO,CACR,CClBA,SAAS,IAA+B,CACvC,MAAO,CACN,MAAO,CAAC,EACR,IAAK,CAAC,CACP,CACD,CAiBA,SAAS,IAAW,EAAQ,EAAU,CACrC,IAAM,EAAc,EAAO,eAAe,EACpC,EAAY,CAAC,EACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAK,EAAY,GAAG,GACtB,GAAI,EAAU,KAAK,CAAE,CAC1B,CACA,GAAuB,EAAO,MAAQ,GACjC,IAAa,MAAc,CAC9B,MAAO,EAAI,MAAM,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,EACrD,IAAK,CAAC,GAAG,EAAI,IAAI,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,EAAG,GAAG,CAAS,CACrE,EACI,IAAa,QAAgB,CAChC,MAAO,CAAC,GAAG,EAAI,MAAM,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,EAAG,GAAG,CAAS,EACxE,IAAK,EAAI,IAAI,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,CAClD,EACO,CACN,MAAO,EAAI,MAAM,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,EACrD,IAAK,EAAI,IAAI,OAAQ,GAAM,CAAC,EAAU,SAAS,CAAC,CAAC,CAClD,CACA,CACF,CAYA,SAAS,IAAiB,EAAQ,CACjC,OAAO,EAAO,eAAe,EAAE,KAAM,IAAgB,EAAW,UAAU,eAAiB,MAAU,EAAO,MAAM,QAAQ,qBAAuB,GAAK,CACvJ,CAgBA,SAAS,GAAmB,EAAQ,CACnC,IAAM,EAAc,EAAO,eAAe,EACpC,CAAE,QAAO,OAAQ,EAAO,MAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC/F,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,GAAI,EAAM,SAAS,EAAY,GAAG,EAAE,EAAG,MAAO,QAC3F,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,GAAI,EAAI,SAAS,EAAY,GAAG,EAAE,EAAG,MAAO,MACzF,MAAO,EACR,CAYA,SAAS,IAAsB,EAAQ,CACtC,IAAM,EAAW,GAAmB,CAAM,EAC1C,OAAO,EAAW,EAAO,MAAM,MAAM,eAAe,IAAI,IAAI,GAAU,QAAQ,EAAO,EAAE,GAAK,GAAK,CAClG,CAWA,SAAS,IAA0B,EAAK,CACvC,IAAM,EAAW,GAAmB,EAAK,kBAAmB,EAAmB,EACzE,CAAE,QAAO,OAAQ,EAAI,MAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC5F,GAAI,CAAC,EAAM,QAAU,CAAC,EAAI,OAAQ,OAAO,EACzC,IAAM,EAAc,CAAC,GAAG,EAAO,GAAG,CAAG,EACrC,OAAO,EAAS,OAAQ,GAAM,CAAC,EAAY,SAAS,EAAE,OAAO,EAAE,CAAC,CACjE,CAYA,SAAS,IAAyB,EAAK,CACtC,GAAM,CAAE,SAAU,EAAI,MAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EACvF,GAAI,CAAC,EAAM,OAAQ,MAAO,CAAC,EAC3B,IAAM,EAAkB,GAAmB,EAAK,4BAA6B,EAA6B,EACpG,EAAQ,CAAC,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAO,EAAgB,EAAM,IAC/B,IACH,EAAK,SAAW,QAChB,EAAM,KAAK,CAAI,EAEjB,CACA,OAAO,CACR,CAYA,SAAS,IAAuB,EAAK,CACpC,GAAM,CAAE,OAAQ,EAAI,MAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EACrF,GAAI,CAAC,EAAI,OAAQ,MAAO,CAAC,EACzB,IAAM,EAAkB,GAAmB,EAAK,4BAA6B,EAA6B,EACpG,EAAQ,CAAC,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACpC,IAAM,EAAO,EAAgB,EAAI,IAC7B,IACH,EAAK,SAAW,MAChB,EAAM,KAAK,CAAI,EAEjB,CACA,OAAO,CACR,CAYA,SAAS,GAAuB,EAAO,EAAS,CAC/C,GAAc,EAAO,gBAAiB,CAAO,CAC9C,CAcA,SAAS,IAAyB,EAAO,EAAc,CACtD,GAAuB,EAAO,EAAe,GAA6B,EAAI,GAAW,EAAM,aAAa,eAAiB,GAA6B,CAAC,CAAC,CAC7J,CAYA,SAAS,IAA6B,EAAO,EAAU,CACtD,IAAM,EAAe,EAAM,MAAM,eAAe,IAAI,EAEpD,OADK,EACE,EAAQ,IAAe,GAAU,OADlB,GAAQ,GAAc,MAAM,QAAU,GAAc,IAAI,OAE/E,CAYA,SAAS,GAA2B,EAAO,CAC1C,IAAM,EAAa,EAAM,cAAc,EACjC,EAAkB,EAAM,sBAAsB,EAC9C,CAAE,SAAU,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC7E,EAAqB,CAAC,EAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAS,EAAgB,EAAM,IACjC,GAAU,GAAmB,EAAQ,eAAgB,EAAmB,GAAG,EAAmB,KAAK,CAAM,CAC9G,CACA,OAAO,GAAkB,EAAY,EAAoB,EAAO,OAAO,CACxE,CAYA,SAAS,GAAyB,EAAO,CACxC,IAAM,EAAa,EAAM,cAAc,EACjC,EAAkB,EAAM,sBAAsB,EAC9C,CAAE,OAAQ,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC3E,EAAqB,CAAC,EAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACpC,IAAM,EAAS,EAAgB,EAAI,IAC/B,GAAU,GAAmB,EAAQ,eAAgB,EAAmB,GAAG,EAAmB,KAAK,CAAM,CAC9G,CACA,OAAO,GAAkB,EAAY,EAAoB,EAAO,KAAK,CACtE,CAYA,SAAS,GAA4B,EAAO,CAC3C,IAAM,EAAa,EAAM,cAAc,EACnC,EAAc,GAAmB,EAAO,wBAAyB,EAA2B,EAC1F,CAAE,QAAO,OAAQ,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EACxF,GAAI,EAAM,QAAU,EAAI,OAAQ,CAC/B,IAAM,EAAc,CAAC,GAAG,EAAO,GAAG,CAAG,EACrC,EAAc,EAAY,OAAQ,GAAW,CAAC,EAAY,SAAS,EAAO,EAAE,CAAC,CAC9E,CACA,OAAO,GAAkB,EAAY,EAAa,EAAO,QAAQ,CAClE,CAWA,SAAS,IAA2B,EAAO,CAC1C,MAAO,CAAC,GAAG,GAAmB,EAAO,uBAAwB,EAA0B,CAAC,EAAE,QAAQ,CACnG,CAWA,SAAS,IAAyB,EAAO,CACxC,MAAO,CAAC,GAAG,GAAmB,EAAO,qBAAsB,EAAwB,CAAC,EAAE,QAAQ,CAC/F,CAWA,SAAS,IAA4B,EAAO,CAC3C,MAAO,CAAC,GAAG,GAAmB,EAAO,wBAAyB,EAA2B,CAAC,EAAE,QAAQ,CACrG,CAWA,SAAS,GAA0B,EAAO,CACzC,IAAM,EAAmB,GAAmB,EAAO,uBAAwB,EAA0B,EAC/F,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAiB,OAAQ,IAAK,CACjD,IAAM,EAAU,EAAiB,GAAG,QACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAO,KAAK,EAAQ,EAAE,CAChE,CACA,OAAO,CACR,CAWA,SAAS,GAAwB,EAAO,CACvC,IAAM,EAAoB,GAAmB,EAAO,qBAAsB,EAAwB,EAC5F,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAkB,OAAQ,IAAK,CAClD,IAAM,EAAU,EAAkB,GAAG,QACrC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAO,KAAK,EAAQ,EAAE,CAChE,CACA,OAAO,CACR,CAWA,SAAS,GAA2B,EAAO,CAC1C,IAAM,EAAqB,GAAmB,EAAO,wBAAyB,EAA2B,EACnG,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAmB,OAAQ,IAAK,CACnD,IAAM,EAAU,EAAmB,GAAG,QACtC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAO,KAAK,EAAQ,EAAE,CAChE,CACA,OAAO,CACR,CAWA,SAAS,IAA0B,EAAO,CACzC,OAAO,GAAmB,EAAO,sBAAuB,EAAyB,EAAE,OAAQ,GAAW,CAAC,EAAO,WAAW,MAAM,CAChI,CAWA,SAAS,IAAwB,EAAO,CACvC,OAAO,GAAmB,EAAO,oBAAqB,EAAuB,EAAE,OAAQ,GAAW,CAAC,EAAO,WAAW,MAAM,CAC5H,CAWA,SAAS,IAA2B,EAAO,CAC1C,OAAO,GAAmB,EAAO,uBAAwB,EAA0B,EAAE,OAAQ,GAAW,CAAC,EAAO,WAAW,MAAM,CAClI,CAYA,SAAS,GAA0B,EAAO,CACzC,GAAM,CAAE,SAAU,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC7E,EAAkB,EAAM,sBAAsB,EAC9C,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAS,EAAgB,EAAM,IACjC,GAAQ,EAAO,KAAK,CAAM,CAC/B,CACA,OAAO,CACR,CAYA,SAAS,GAAwB,EAAO,CACvC,GAAM,CAAE,OAAQ,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC3E,EAAkB,EAAM,sBAAsB,EAC9C,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACpC,IAAM,EAAS,EAAgB,EAAI,IAC/B,GAAQ,EAAO,KAAK,CAAM,CAC/B,CACA,OAAO,CACR,CAWA,SAAS,GAA2B,EAAO,CAC1C,GAAM,CAAE,QAAO,OAAQ,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EACxF,GAAI,CAAC,EAAM,QAAU,CAAC,EAAI,OAAQ,OAAO,EAAM,kBAAkB,EACjE,IAAM,EAAc,CAAC,GAAG,EAAO,GAAG,CAAG,EACrC,OAAO,EAAM,kBAAkB,EAAE,OAAQ,GAAM,CAAC,EAAY,SAAS,EAAE,EAAE,CAAC,CAC3E,CAYA,SAAS,IAA2B,EAAO,EAAU,CACpD,OAAQ,EAAuC,IAAa,QAAU,GAAmB,EAAO,sBAAuB,EAAyB,EAAI,IAAa,MAAQ,GAAmB,EAAO,oBAAqB,EAAuB,EAAI,GAAmB,EAAO,uBAAwB,EAA0B,EAA5S,EAAM,kBAAkB,CAC5C,CAWA,SAAS,GAAiC,EAAO,CAChD,OAAO,GAAmB,EAAO,sBAAuB,EAAyB,EAAE,OAAQ,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CACtK,CAWA,SAAS,GAA+B,EAAO,CAC9C,OAAO,GAAmB,EAAO,oBAAqB,EAAuB,EAAE,OAAQ,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CAClK,CAYA,SAAS,GAAkC,EAAO,CACjD,OAAO,GAAmB,EAAO,uBAAwB,EAA0B,EAAE,OAAQ,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CACxK,CAYA,SAAS,GAAkC,EAAO,EAAU,CAC3D,OAAQ,EAA6F,IAAa,QAAU,GAAmB,EAAO,6BAA8B,EAAgC,EAAI,IAAa,MAAQ,GAAmB,EAAO,2BAA4B,EAA8B,EAAI,GAAmB,EAAO,8BAA+B,EAAiC,EAA5Y,GAAmB,EAAO,wBAAyB,EAA2B,CAClG,CCthBA,SAAS,KAAkC,CAC1C,OAAO,GAAc,CACtB,CAcA,SAAS,GAAwB,EAAQ,EAAS,CAC7C,GAAkB,CAAM,GAAG,GAA0B,EAAO,MAAQ,GAAQ,CAC/E,IAAM,EAAO,OAAO,OAAO,GAAc,EAAG,CAAG,EACzC,EAAc,GAAW,CAAC,GAAmB,EAAQ,eAAgB,EAAmB,EACxF,EAAc,EAAO,eAAe,EAC1C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAa,EAAY,GAC3B,GAAkB,CAAU,IAAG,EAAK,EAAW,IAAM,EAC1D,CACA,OAAO,CACR,CAAC,CACF,CAaA,SAAS,GAAoB,EAAQ,CACpC,IAAM,EAAmB,EAAO,MAAM,MAAM,kBAAkB,IAAI,EAClE,GAAI,CAAC,EAAkB,MAAO,GAC9B,IAAM,EAAe,EAAO,QAE5B,OADI,EAAa,OAAe,EAAa,KAAM,GAAgB,GAAmB,EAAa,eAAgB,EAAmB,CAAC,GAC/H,GAAO,EAAkB,EAAO,EAAE,EAAI,EAAiB,EAAO,IAAM,IAAK,KAAM,EACxF,CAWA,SAAS,GAAkB,EAAQ,CAClC,OAAQ,EAAO,UAAU,cAAgB,MAAU,EAAO,MAAM,QAAQ,cAAgB,GACzF,CAYA,SAAS,IAAkC,EAAQ,CAClD,MAAQ,IAAM,CACb,GAAwB,EAAQ,EAAE,OAAO,OAAO,CACjD,CACD,CAYA,SAAS,GAAoB,EAAK,CACjC,IAAM,EAAW,EAAI,YAAY,EAC3B,EAAe,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACzC,IAAM,EAAO,EAAS,GAClB,GAAmB,EAAK,OAAQ,eAAgB,EAAmB,GAAG,EAAa,KAAK,CAAI,CACjG,CACA,GAAM,CAAE,QAAO,OAAQ,EAAI,MAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAC5F,GAAI,CAAC,EAAM,QAAU,CAAC,EAAI,OAAQ,OAAO,EACzC,IAAM,EAAyB,GAAmB,EAAK,4BAA6B,EAA6B,EAC3G,EAAa,CAAC,EACpB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAO,EAAuB,EAAM,IACtC,GAAM,EAAW,KAAK,CAAI,CAC/B,CACA,IAAM,EAAW,CAAC,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACpC,IAAM,EAAO,EAAuB,EAAI,IACpC,GAAM,EAAS,KAAK,CAAI,CAC7B,CACA,IAAM,EAAc,CAAC,EACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC7C,IAAM,EAAO,EAAa,GACpB,EAAK,EAAK,OAAO,GACnB,CAAC,EAAM,SAAS,CAAE,GAAK,CAAC,EAAI,SAAS,CAAE,GAAG,EAAY,KAAK,CAAI,CACpE,CACA,MAAO,CACN,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CACD,CAWA,SAAS,GAA8B,EAAK,CAC3C,IAAM,EAAS,GAAc,EACvB,EAAW,EAAI,YAAY,EACjC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACzC,IAAM,EAAO,EAAS,GAClB,GAAmB,EAAK,OAAQ,eAAgB,EAAmB,IAAG,EAAO,EAAK,OAAO,IAAM,EACpG,CACA,OAAO,CACR,CAYA,SAAS,IAA4B,EAAO,CAC3C,OAAO,EAAM,kBAAkB,EAAE,OAAQ,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CACpH,CAYA,SAAS,GAA4B,EAAO,CAC3C,OAAO,EAAM,kBAAkB,EAAE,OAAQ,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CACpH,CAYA,SAAS,GAA0B,EAAO,EAAS,CAClD,GAAc,EAAO,mBAAoB,CAAO,CACjD,CAaA,SAAS,IAA4B,EAAO,EAAc,CACzD,GAA0B,EAAO,EAAe,GAAc,EAAI,OAAO,OAAO,GAAc,EAAG,GAAW,EAAM,aAAa,kBAAoB,CAAC,CAAC,CAAC,CAAC,CACxJ,CAWA,SAAS,GAA8B,EAAO,EAAO,CACpD,IAAiB,CAAC,GAA6B,CAAK,EACpD,IAAM,EAAa,GAAc,EAC3B,EAAc,EAAM,kBAAkB,EAC5C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAS,EAAY,GAC3B,EAAW,EAAO,IAAO,GAAQ,CAAC,GAAkB,CAAM,CAC3D,CACA,GAA0B,EAAO,CAAU,CAC5C,CAYA,SAAS,GAA6B,EAAO,CAC5C,MAAO,CAAC,EAAM,kBAAkB,EAAE,KAAM,GAAW,CAAC,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CACpH,CAWA,SAAS,IAA8B,EAAO,CAC7C,OAAO,EAAM,kBAAkB,EAAE,KAAM,GAAW,GAAmB,EAAQ,eAAgB,EAAmB,CAAC,CAClH,CAYA,SAAS,IAA2C,EAAO,CAC1D,MAAQ,IAAM,CACb,GAA8B,EAAO,EAAE,OAAO,OAAO,CACtD,CACD,CC3QA,SAAS,GAAkB,EAAS,EAAQ,EAAG,CAC9C,IAAI,EAAW,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACnB,GAAmB,EAAQ,eAAgB,EAAmB,GAAK,EAAO,QAAQ,SAAQ,EAAW,KAAK,IAAI,EAAU,GAAkB,EAAO,QAAS,EAAQ,CAAC,CAAC,EACzK,CACA,OAAO,CACR,CACA,SAAS,IAAoB,EAAc,EAAO,CACjD,OAAO,EAAe,GAAG,EAAa,GAAG,IAAU,OAAO,CAAK,CAChE,CACA,SAAS,IAAe,EAAc,EAAO,EAAU,EAAe,CACrE,IAAI,EAAK,GAAgB,GAIzB,OAHI,IAAO,EAAK,EAAK,GAAG,EAAG,GAAG,IAAU,OAAO,CAAK,GAChD,IAAU,EAAK,EAAK,GAAG,EAAG,GAAG,IAAa,GAC1C,IAAe,EAAK,EAAK,GAAG,EAAG,GAAG,IAAkB,GACjD,CACR,CACA,SAAS,IAA6B,EAAS,EAAQ,CACtD,IAAI,EAAQ,EACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAS,EAAQ,GAAG,SAAW,GAAQ,IAC3E,OAAO,CACR,CACA,SAAS,GAAqB,EAAgB,EAAO,EAAO,EAAc,EAAc,EAAoB,CAC3G,IAAM,EAAc,CACnB,QACA,GAAI,IAAoB,EAAc,CAAK,EAC3C,QAAS,CAAC,CACX,EACM,EAAuB,CAAC,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC/C,GAAI,EAAE,KAAK,GAAiB,SAC5B,IAAM,EAAgB,EAAe,GAC/B,EAA4B,EAAqB,EAAqB,OAAS,GAC/E,EAAe,EAAc,OAAO,QAAU,EAAY,MAC5D,EACA,EAAgB,GAMpB,GALI,GAAgB,EAAc,OAAO,OAAQ,EAAS,EAAc,OAAO,QAE9E,EAAS,EAAc,OACvB,EAAgB,IAEb,GAA6B,EAA0B,SAAW,EAAQ,EAA0B,WAAW,KAAK,CAAa,MAChI,CACJ,IAAM,EAAS,GAAgB,EAAO,EAAQ,CAC7C,GAAI,IAAe,EAAc,EAAO,EAAO,GAAI,EAAc,EAAE,EACnE,gBACA,cAAe,EAAgB,OAAO,IAA6B,EAAsB,CAAM,CAAC,EAAI,IAAK,GACzG,QACA,MAAO,EAAqB,MAC7B,CAAC,EACD,EAAO,WAAW,KAAK,CAAa,EACpC,EAAqB,KAAK,CAAM,CACjC,CACA,EAAY,QAAQ,KAAK,CAAa,EACtC,EAAc,YAAc,CAC7B,CACA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAmB,OAAQ,IAAK,EAAmB,GAAG,CAAW,EACrF,EAAa,KAAK,CAAW,EACzB,EAAQ,GAAG,GAAqB,EAAsB,EAAQ,EAAG,EAAO,EAAc,EAAc,CAAkB,CAC3H,CACA,SAAS,GAAkB,EAAS,CACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACvB,GAAI,CAAC,GAAmB,EAAO,OAAQ,eAAgB,EAAmB,EAAG,SAC7E,IAAI,EAAU,EACd,GAAI,EAAO,WAAW,OAAQ,CAC7B,GAAkB,EAAO,UAAU,EACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,WAAW,OAAQ,IAAK,CAClD,IAAM,EAAQ,EAAO,WAAW,GAC3B,GAAmB,EAAM,OAAQ,eAAgB,EAAmB,IACzE,GAAW,EAAM,QAClB,CACD,MAAO,EAAU,EAEjB,GADA,EAAO,QAAU,EACb,EAAO,eAAiB,EAAO,WAAW,SAAW,GAAK,EAAO,WAAW,GAAG,SAAW,EAAO,OAAQ,CAC5G,IAAI,EAAU,EACV,EAAa,EAAO,WAAW,GACnC,KAAO,GACN,EAAW,QAAU,EACrB,IACA,EAAa,EAAW,WAAW,SAAW,GAAK,EAAW,WAAW,GAAG,SAAW,EAAO,OAAS,EAAW,WAAW,GAAK,IAAK,GAExI,EAAO,QAAU,CAClB,MAAO,EAAO,QAAU,CACzB,CACD,CAMA,SAAS,GAAkB,EAAY,EAAgB,EAAO,EAAc,CAC3E,IAAM,EAAW,GAAkB,CAAU,EACvC,EAAe,CAAC,EAChB,EAAqB,EAAM,4BAC3B,EAAoB,MAAM,EAAe,MAAM,EACrD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,OAAQ,IACpC,KAAK,IACX,EAAc,GAAK,GAAgB,EAAO,EAAe,GAAI,CAC5D,MAAO,EACP,MAAO,CACR,CAAC,GAKF,OAHA,GAAqB,EAAe,EAAW,EAAG,EAAO,EAAc,EAAc,CAAkB,EACvG,EAAa,QAAQ,EACrB,GAAkB,EAAa,IAAI,SAAW,CAAC,CAAC,EACzC,CACR,CC5GA,SAAS,IAAmB,EAAO,CAClC,GAAI,CAAC,EAAM,iBAAkB,CAC5B,EAAM,iBAAmB,CAAE,OAAM,EACjC,IAAM,EAAW,OAAO,OAAO,EAAM,SAAS,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,EAAS,GAAG,wBAAwB,EAAM,iBAAkB,CAAK,CAC5G,CACA,OAAO,EAAM,gBACd,CAMA,SAAS,IAAgB,EAAO,EAAW,EAAO,EAAQ,CACzD,IAAM,EAAoB,CACzB,GAAG,EAAM,oBAAoB,EAC7B,GAAG,CACJ,EACM,EAAc,EAAkB,YAChC,EAAoB,IAAgB,IAAK,GAAI,IAAK,GAAI,OAAO,CAAW,EACxE,EAAK,EAAkB,IAAM,GAAmB,WAAW,IAAK,GAAG,IAAM,OAAO,EAAkB,QAAW,SAAW,EAAkB,OAAS,IAAK,IAC1J,EACJ,GAAI,EAAkB,WAAY,EAAa,EAAkB,gBAC5D,GAAI,IAAgB,IAAK,GAAG,GAAI,OAAO,GAAgB,UAAY,EAAY,SAAS,GAAG,EAAG,CAClG,IAAM,EAAO,EAAY,MAAM,GAAG,EAClC,EAAc,GAAgB,CAC7B,IAAI,EAAS,EACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAK,GACjB,EAAS,IAAS,EAEnB,CACA,OAAO,CACR,CACD,MAAO,EAAc,GAAgB,EAAY,EAAkB,aACnE,GAAI,CAAC,EAEJ,MAAU,MAAM,EAEjB,IAAM,EAAkB,IAAmB,CAAK,EAC1C,EAAS,OAAO,OAAO,CAAe,EAC5C,EAAO,WAAa,EACpB,EAAO,UAAY,EACnB,EAAO,QAAU,CAAC,EAClB,EAAO,MAAQ,EACf,EAAO,GAAK,GAAG,OAAO,CAAE,IACxB,EAAO,OAAS,EAChB,IAAM,EAAU,EAAM,uBACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAQ,GAAG,CAAM,EAC1D,OAAO,CACR,CCoEA,SAAS,GAAwB,EAAO,CACvC,IAAM,EAAc,EAAM,MAAM,aAAa,IAAI,EACjD,MAAQ,IAAY,CACnB,IAAI,EAAiB,CAAC,EACtB,GAAI,CAAC,GAAa,OAAQ,EAAiB,MACtC,CACJ,IAAM,EAA4B,IAAI,IACtC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACvB,EAAU,IAAI,EAAO,GAAI,CAAM,CAChC,CACA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAK,EAAY,GACjB,EAAS,EAAU,IAAI,CAAE,EAC3B,IACH,EAAe,KAAK,CAAM,EAC1B,EAAU,OAAO,CAAE,EAErB,CACA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACnB,EAAU,IAAI,EAAO,EAAE,GAAG,EAAe,KAAK,CAAM,CACzD,CACD,CACA,OAAO,IAAa,EAAO,CAAc,CAC1C,CACD,CAaA,SAAS,IAAa,EAAO,EAAa,CACzC,IAAM,EAAW,EAAM,MAAM,UAAU,IAAI,GAAK,CAAC,EAC3C,CAAE,qBAAsB,EAAM,QACpC,GAAI,CAAC,EAAS,QAAU,CAAC,EAAmB,OAAO,EACnD,IAAM,EAAqB,EAAY,OAAQ,GAAQ,CAAC,EAAS,SAAS,EAAI,EAAE,CAAC,EACjF,GAAI,IAAsB,SAAU,OAAO,EAC3C,IAAM,EAAkC,IAAI,IAC5C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAM,EAAY,GACxB,EAAgB,IAAI,EAAI,GAAI,CAAG,CAChC,CACA,IAAM,EAAkB,CAAC,EACzB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACzC,IAAM,EAAM,EAAgB,IAAI,EAAS,EAAE,EACvC,GAAK,EAAgB,KAAK,CAAG,CAClC,CACA,MAAO,CAAC,GAAG,EAAiB,GAAG,CAAkB,CAClD,CCnKA,SAAS,IAAsB,EAAQ,CACtC,MAAO,CAAC,EAAQ,GAAG,EAAO,QAAQ,QAAS,GAAQ,EAAI,eAAe,CAAC,CAAC,CACzE,CAYA,SAAS,IAAsB,EAAQ,CACtC,GAAI,EAAO,QAAQ,OAAQ,CAC1B,IAAM,EAAc,EAAO,QAAQ,QAAS,GAAQ,EAAI,eAAe,CAAC,EACxE,OAAO,GAAmB,EAAO,MAAO,kBAAmB,EAAuB,EAAE,CAAW,CAChG,CACA,MAAO,CAAC,CAAM,CACf,CAaA,SAAS,IAA0B,EAAO,CACzC,MAAO,CACN,OAAS,GAAU,CAClB,IAAM,EAAoB,EAAM,OAAO,OAAO,UAG9C,OAFI,EAAkB,YAAoB,EAAkB,YACxD,EAAkB,WAAmB,EAAkB,GACpD,IACR,EACA,KAAO,GAAU,EAAM,YAAY,GAAG,WAAW,GAAK,KACtD,GAAG,OAAO,OAAO,EAAM,SAAS,EAAE,QAAQ,EAAK,IACvC,OAAO,OAAO,EAAK,EAAQ,sBAAsB,CAAC,EACvD,CAAC,CAAC,EACL,GAAG,EAAM,QAAQ,aAClB,CACD,CACA,SAAS,GAAiB,EAAO,EAAY,EAAQ,EAAQ,EAAG,CAC/D,IAAM,EAAc,MAAM,EAAW,MAAM,EAC3C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAC3C,GAAI,EAAE,KAAK,GAAa,SACxB,IAAM,EAAY,EAAW,GACvB,EAAS,IAAgB,EAAO,EAAW,EAAO,CAAM,EACxD,EAAoB,EAC1B,EAAO,QAAU,EAAkB,QAAU,GAAiB,EAAO,EAAkB,QAAS,EAAQ,EAAQ,CAAC,EAAI,CAAC,EACtH,EAAQ,GAAK,CACd,CACA,OAAO,CACR,CAYA,SAAS,IAAoB,EAAO,CACnC,OAAO,GAAiB,EAAO,EAAM,QAAQ,OAAO,CACrD,CAYA,SAAS,IAAwB,EAAO,CACvC,OAAO,EAAM,cAAc,EAAE,QAAS,GAAW,EAAO,eAAe,CAAC,CACzE,CAYA,SAAS,IAA4B,EAAO,CAC3C,IAAM,EAAS,GAAc,EACvB,EAAc,EAAM,kBAAkB,EAC5C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAS,EAAY,GAC3B,EAAO,EAAO,IAAM,CACrB,CACA,OAAO,CACR,CAYA,SAAS,IAAwB,EAAO,CACvC,IAAM,EAAc,EAAM,cAAc,EAAE,QAAS,GAAM,EAAE,eAAe,CAAC,EAC3E,OAAO,GAAmB,EAAO,kBAAmB,EAAuB,EAAE,CAAW,CACzF,CAYA,SAAS,IAA4B,EAAO,CAC3C,IAAM,EAAS,GAAc,EACvB,EAAc,EAAM,kBAAkB,EAC5C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC5C,IAAM,EAAS,EAAY,GAC3B,EAAO,EAAO,IAAM,CACrB,CACA,OAAO,CACR,CAYA,SAAS,IAAgB,EAAO,EAAU,CAGzC,OAFe,EAAM,sBAAsB,EAAE,EAG9C,CCvKA,IAAM,IAAqB,CAC1B,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,qBAAsB,EAAW,EAAO,CAC3D,sBAAuB,CACtB,GAAK,GAAW,IAAsB,CAAM,EAC5C,SAAW,GAAW,CAAC,EAAO,MAAM,QAAQ,OAAO,CACpD,EACA,sBAAuB,CACtB,GAAK,GAAW,IAAsB,CAAM,EAC5C,SAAW,GAAW,CACrB,EAAO,MAAM,MAAM,aAAa,IAAI,EACpC,EAAO,MAAM,MAAM,UAAU,IAAI,EACjC,EAAO,MAAM,QAAQ,QACrB,EAAO,MAAM,QAAQ,iBACtB,CACD,CACD,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,qBAAsB,EAAO,CAC5C,0BAA2B,CAC1B,OAAU,IAA0B,CAAK,EACzC,aAAgB,CAAC,EAAM,QAAQ,aAAa,CAC7C,EACA,oBAAqB,CACpB,OAAU,IAAoB,CAAK,EACnC,aAAgB,CAAC,EAAM,QAAQ,OAAO,CACvC,EACA,wBAAyB,CACxB,OAAU,IAAwB,CAAK,EACvC,aAAgB,CAAC,EAAM,QAAQ,OAAO,CACvC,EACA,4BAA6B,CAC5B,OAAU,IAA4B,CAAK,EAC3C,aAAgB,CAAC,EAAM,QAAQ,OAAO,CACvC,EACA,wBAAyB,CACxB,OAAU,IAAwB,CAAK,EACvC,aAAgB,CACf,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,QACd,EAAM,QAAQ,iBACf,CACD,EACA,4BAA6B,CAC5B,OAAU,IAA4B,CAAK,EAC3C,aAAgB,CAAC,EAAM,kBAAkB,CAAC,CAC3C,EACA,gBAAiB,CAAE,GAAK,GAAa,IAAgB,EAAO,CAAQ,CAAE,CACvE,CAAC,CACF,CACD,ECrDA,SAAS,GAAmB,EAAQ,EAAa,CAChD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,WAAW,OAAQ,IAAK,GAAmB,EAAO,WAAW,GAAI,CAAW,EACvG,EAAY,KAAK,CAAM,CACxB,CAYA,SAAS,IAAsB,EAAQ,CACtC,IAAM,EAAc,CAAC,EAErB,OADA,GAAmB,EAAQ,CAAW,EAC/B,CACR,CAWA,SAAS,IAAkB,EAAQ,CAClC,MAAO,CACN,OAAQ,EAAO,OACf,SACA,MAAO,EAAO,OAAO,KACtB,CACD,CAYA,SAAS,IAAsB,EAAO,CACrC,GAAM,CAAE,QAAO,OAAQ,EAAM,MAAM,eAAe,IAAI,GAAK,GAA6B,EAClF,EAAa,EAAM,cAAc,EACjC,EAAc,GAAmB,EAAO,wBAAyB,EAA2B,EAClG,GAAI,CAAC,EAAM,QAAU,CAAC,EAAI,OAAQ,OAAO,GAAkB,EAAY,EAAa,CAAK,EACzF,IAAM,EAAkB,EAAM,sBAAsB,EAC9C,EAAc,CAAC,EACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAS,EAAgB,EAAM,IACjC,GAAU,GAAmB,EAAQ,eAAgB,EAAmB,GAAG,EAAY,KAAK,CAAM,CACvG,CACA,IAAM,EAAe,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACpC,IAAM,EAAS,EAAgB,EAAI,IAC/B,GAAU,GAAmB,EAAQ,eAAgB,EAAmB,GAAG,EAAa,KAAK,CAAM,CACxG,CACA,IAAM,EAAgB,EAAY,OAAQ,GAAW,CAAC,EAAM,SAAS,EAAO,EAAE,GAAK,CAAC,EAAI,SAAS,EAAO,EAAE,CAAC,EAC3G,OAAO,GAAkB,EAAY,CACpC,GAAG,EACH,GAAG,EACH,GAAG,CACJ,EAAG,CAAK,CACT,CAYA,SAAS,IAAsB,EAAO,CACrC,MAAO,CAAC,GAAG,EAAM,gBAAgB,CAAC,EAAE,QAAQ,CAC7C,CAYA,SAAS,IAAqB,EAAO,CACpC,IAAM,EAAe,EAAM,gBAAgB,EACrC,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC7C,IAAM,EAAU,EAAa,GAAG,QAChC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAO,KAAK,EAAQ,EAAE,CAChE,CACA,OAAO,CACR,CAYA,SAAS,IAAqB,EAAO,CACpC,IAAM,EAAa,EAAM,gBAAgB,EAAE,IAAI,SAAW,CAAC,EACrD,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAC3C,IAAM,EAAc,EAAW,GAAG,eAAe,EACjD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,EAAO,KAAK,EAAY,EAAE,CACxE,CACA,OAAO,CACR,CC3HA,IAAM,IAAqB,CAC1B,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,qBAAsB,EAAW,EAAO,CAC3D,sBAAuB,CACtB,GAAK,GAAW,IAAsB,CAAM,EAC5C,SAAW,GAAW,CAAC,EAAO,OAAO,MAAM,QAAQ,OAAO,CAC3D,EACA,kBAAmB,CAClB,GAAK,GAAW,IAAkB,CAAM,EACxC,SAAW,GAAW,CAAC,EAAO,OAAO,MAAM,QAAQ,OAAO,CAC3D,CACD,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,qBAAsB,EAAO,CAC5C,sBAAuB,CACtB,OAAU,IAAsB,CAAK,EACrC,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,QAAQ,iBACf,CACD,EACA,sBAAuB,CACtB,OAAU,IAAsB,CAAK,EACrC,aAAgB,CAAC,EAAM,gBAAgB,CAAC,CACzC,EACA,qBAAsB,CACrB,OAAU,IAAqB,CAAK,EACpC,aAAgB,CAAC,EAAM,gBAAgB,CAAC,CACzC,EACA,qBAAsB,CACrB,OAAU,IAAqB,CAAK,EACpC,aAAgB,CAAC,EAAM,gBAAgB,CAAC,CACzC,CACD,CAAC,CACF,CACD,ECxCA,SAAS,IAAgB,EAAO,CAC/B,GAAI,CAAC,EAAM,cAAe,CACzB,EAAM,cAAgB,CAAE,OAAM,EAC9B,IAAM,EAAW,OAAO,OAAO,EAAM,SAAS,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,EAAS,GAAG,qBAAqB,EAAM,cAAe,CAAK,CACtG,CACA,OAAO,EAAM,aACd,CAMA,IAAM,KAAgB,EAAO,EAAI,EAAU,EAAU,EAAO,EAAS,IAAa,CACjF,IAAM,EAAe,IAAgB,CAAK,EACpC,EAAM,OAAO,OAAO,CAAY,EACtC,EAAI,mBAAqB,GACzB,EAAI,mBAAqB,GAAc,EACvC,EAAI,aAAe,GAAc,EACjC,EAAI,MAAQ,EACZ,EAAI,GAAK,EACT,EAAI,MAAQ,EACZ,EAAI,SAAW,EACf,EAAI,SAAW,EACf,EAAI,QAAU,GAAW,CAAC,EAC1B,IAAM,EAAU,EAAM,oBACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAQ,GAAG,CAAG,EACvD,OAAO,CACR,EC5BM,IAAsB,aAyB5B,SAAS,GAAgB,EAAK,CAC7B,IAAM,EAAS,OAAO,QAAQ,EAAM,EAAM,IAAa,CACtD,IAAI,EAAa,EAAK,SAAS,CAAQ,EACnC,EAAa,EAAK,SAAS,CAAQ,EACjC,EAAmB,EAAO,iBAKhC,OAJI,IACH,EAAa,EAAiB,CAAU,EACxC,EAAa,EAAiB,CAAU,GAElC,EAAO,KAAK,EAAY,EAAY,EAAM,EAAM,CAAQ,CAChE,EAAG,CAAG,EACN,OAAO,CACR,CAM4B,GAAgB,CAC3C,iBAAmB,GAAc,GAAS,CAAS,EAAE,YAAY,EACjE,MAAO,EAAY,IAAe,GAAoB,EAAY,CAAU,CAC7E,CAAC,EAMwC,GAAgB,CACxD,iBAAmB,GAAc,GAAS,CAAS,EACnD,MAAO,EAAY,IAAe,GAAoB,EAAY,CAAU,CAC7E,CAAC,EAMmB,GAAgB,CACnC,iBAAmB,GAAc,GAAS,CAAS,EAAE,YAAY,EACjE,MAAO,EAAY,IAAe,GAAa,EAAY,CAAU,CACtE,CAAC,EAMgC,GAAgB,CAChD,iBAAmB,GAAc,GAAS,CAAS,EACnD,MAAO,EAAY,IAAe,GAAa,EAAY,CAAU,CACtE,CAAC,EAMuB,GAAgB,CACvC,iBAAmB,GAAc,IAAgB,CAAS,EAC1D,MAAO,EAAY,IAAe,EAAa,EAAa,EAAI,EAAa,EAAa,GAAK,CAChG,CAAC,EAMD,IAAM,GAAe,GAAgB,CAAE,MAAO,EAAY,IAAe,GAAa,EAAY,CAAU,CAAE,CAAC,EAC/G,SAAS,GAAa,EAAG,EAAG,CAC3B,OAAO,IAAM,EAAI,EAAI,EAAI,EAAI,EAAI,EAClC,CACA,SAAS,IAAgB,EAAO,CAC/B,OAAO,aAAiB,KAAO,EAAM,QAAQ,EAAI,CAClD,CACA,SAAS,GAAS,EAAG,CAMpB,OALI,OAAO,GAAM,SACZ,MAAM,CAAC,GAAK,IAAM,KAAY,IAAM,KAAkB,GACnD,OAAO,CAAC,EAEZ,OAAO,GAAM,SAAiB,EAC3B,EACR,CACA,SAAS,GAAoB,EAAM,EAAM,CACxC,IAAI,EAAK,EACL,EAAK,EACH,EAAO,EAAK,OACZ,EAAO,EAAK,OAClB,KAAO,EAAK,GAAQ,EAAK,GAAM,CAC9B,IAAM,EAAa,GAAQ,EAAK,WAAW,CAAE,CAAC,EACxC,EAAa,GAAQ,EAAK,WAAW,CAAE,CAAC,EACxC,EAAO,GAAa,EAAM,EAAI,CAAU,EACxC,EAAO,GAAa,EAAM,EAAI,CAAU,EAC9C,GAAI,CAAC,GAAc,CAAC,EAAY,CAC/B,IAAM,EAAmB,IAAoB,EAAM,EAAI,EAAM,EAAM,EAAI,CAAI,EAC3E,GAAI,EAAkB,OAAO,EAC7B,EAAK,EACL,EAAK,EACL,QACD,CACA,GAAI,IAAe,EAAY,OAAO,EAAa,EAAI,GACvD,IAAM,EAAoB,IAAqB,EAAM,EAAI,EAAM,EAAM,EAAI,CAAI,EAC7E,GAAI,EAAmB,OAAO,EAC9B,EAAK,EACL,EAAK,CACN,CACA,OAAO,GAAqB,EAAM,CAAE,EAAI,GAAqB,EAAM,CAAE,CACtE,CACA,SAAS,GAAQ,EAAU,CAC1B,OAAO,GAAY,IAAM,GAAY,EACtC,CACA,SAAS,GAAa,EAAK,EAAO,EAAW,CAC5C,IAAI,EAAM,EAAQ,EAClB,KAAO,EAAM,EAAI,QAAU,GAAQ,EAAI,WAAW,CAAG,CAAC,IAAM,GAAW,IACvE,OAAO,CACR,CACA,SAAS,IAAoB,EAAM,EAAQ,EAAM,EAAM,EAAQ,EAAM,CACpE,IAAM,EAAU,EAAO,EACjB,EAAU,EAAO,EACjB,EAAY,EAAU,EAAU,EAAU,EAChD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CACnC,IAAM,EAAQ,EAAK,WAAW,EAAS,CAAC,EAClC,EAAQ,EAAK,WAAW,EAAS,CAAC,EACxC,GAAI,EAAQ,EAAO,MAAO,GAC1B,GAAI,EAAQ,EAAO,MAAO,EAC3B,CAGA,OAFI,EAAU,EAAgB,EAC1B,EAAU,EAAgB,GACvB,CACR,CACA,SAAS,IAAqB,EAAM,EAAQ,EAAM,EAAM,EAAQ,EAAM,CACrE,IAAI,EAAoB,EACxB,KAAO,EAAoB,GAAQ,EAAK,WAAW,CAAiB,IAAM,IAAI,IAC9E,IAAI,EAAoB,EACxB,KAAO,EAAoB,GAAQ,EAAK,WAAW,CAAiB,IAAM,IAAI,IAC9E,IAAM,EAAqB,EAAO,EAC5B,EAAqB,EAAO,EAClC,GAAI,IAAuB,GAAK,IAAuB,EAAG,MAAO,GACjE,GAAI,GAAsB,IAAM,GAAsB,GAAI,CACzD,IAAM,EAAK,GAAc,EAAM,EAAmB,CAAI,EAChD,EAAK,GAAc,EAAM,EAAmB,CAAI,EAGtD,OAFI,EAAK,EAAW,EAChB,EAAK,EAAW,GACb,CACR,CACA,IAAM,EAAK,SAAS,EAAK,MAAM,EAAQ,CAAI,EAAG,EAAE,EAC1C,EAAK,SAAS,EAAK,MAAM,EAAQ,CAAI,EAAG,EAAE,EAGhD,OAFI,EAAK,EAAW,EAChB,EAAK,EAAW,GACb,CACR,CACA,SAAS,GAAc,EAAK,EAAO,EAAK,CACvC,IAAI,EAAS,EACb,IAAK,IAAI,EAAI,EAAO,EAAI,EAAK,IAAK,EAAS,EAAS,GAAK,EAAI,WAAW,CAAC,EAAI,GAC7E,OAAO,CACR,CACA,SAAS,GAAqB,EAAK,EAAO,CACzC,IAAI,EAAQ,EACR,EAAQ,EACZ,KAAO,EAAQ,EAAI,QAClB,IACA,EAAQ,GAAa,EAAK,EAAO,GAAQ,EAAI,WAAW,CAAK,CAAC,CAAC,EAEhE,OAAO,CACR,CC/KA,SAAS,IAA+B,CACvC,MAAO,CAAC,CACT,CAuBA,SAAS,IAAyB,EAAO,EAAc,CACtD,GAAc,EAAO,gBAAiB,EAAe,GAA6B,EAAI,GAAW,EAAM,aAAa,aAAa,GAAK,GAA6B,CAAC,CACrK,CAiBA,SAAS,IAA6B,EAAO,CACvC,EAAM,MAAM,gBACb,EAAM,QAAQ,cAAgB,EAAM,QAAQ,wBAA0B,KAAM,EAAM,YAAY,aAAe,IAAyB,CAAK,CAAC,CACjJ,CClCA,SAAS,IAAwB,EAAO,CAClC,EAAM,MAAM,WACb,EAAM,QAAQ,cAAgB,EAAM,QAAQ,mBAAqB,CAAC,EAAM,QAAQ,kBAAiB,EAAM,YAAY,aAAe,IAAoB,CAAK,CAAC,CACjK,CAqDA,SAAS,IAAoB,EAAO,EAAc,CACjD,IAAM,EAAkB,EAAM,aAAa,SAC3C,GAAc,EAAO,WAAY,EAAe,GAAc,EAAI,IAAoB,GAAO,GAAO,OAAO,OAAO,GAAc,EAAG,GAAW,GAAmB,CAAC,CAAC,CAAC,CAAC,CACtK,CCrFA,IAAM,GAAmB,EA+BzB,SAAS,IAAyB,EAAO,CACxC,GAAI,EAAM,QAAQ,cAAgB,EAAM,QAAQ,oBAAsB,CAAC,EAAM,QAAQ,iBAAkB,CACtG,IAAK,EAAM,MAAM,YAAY,IAAI,GAAG,WAAa,MAAsB,GAAkB,OACzF,IAAqB,EAAO,EAAI,CACjC,CACD,CAaA,SAAS,IAAoB,EAAO,EAAS,CAC5C,GAAc,EAAO,aAAc,CAAO,CAC3C,CA4BA,SAAS,IAAmB,EAAO,EAAS,CAC3C,IAAoB,EAAQ,GAAQ,CACnC,IAAI,EAAY,GAAiB,EAAS,EAAI,SAAS,EACjD,EAAsB,EAAM,QAAQ,YAAc,QAAe,EAAM,QAAQ,YAAc,WAA+B,EAAM,QAAQ,UAAY,EAE5J,MADA,GAAY,KAAK,IAAI,EAAG,KAAK,IAAI,EAAW,CAAY,CAAC,EAClD,CACN,GAAG,EACH,WACD,CACD,CAAC,CACF,CAaA,SAAS,IAAqB,EAAO,EAAc,CAClD,IAAmB,EAAO,EAAe,GAAmB,EAAM,aAAa,YAAY,WAAa,EAAgB,CACzH,CC5FA,SAAS,KAAyB,CACjC,MAAO,CAAC,CACT,CAcA,SAAS,GAAiB,EAAO,EAAS,CACzC,GAAc,EAAO,UAAW,CAAO,CACxC,CAaA,SAAS,GAAmB,EAAO,EAAc,CAChD,GAAiB,EAAO,EAAe,CAAC,EAAI,GAAW,EAAM,aAAa,SAAW,CAAC,CAAC,CAAC,CACzF,CAYA,SAAS,IAAuB,EAAO,CACjC,EAAM,MAAM,UACb,EAAM,QAAQ,cAAgB,EAAM,QAAQ,kBAAoB,KAAO,GAAmB,CAAK,CACpG,CAaA,SAAS,GAAqB,EAAQ,CACrC,IAAM,EAAU,EAAO,MAAM,aAAa,QACpC,EAAY,EAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAG,EAAE,EACrE,EACA,EAAW,GACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAM,EAAQ,EAAU,GAAG,SAAS,EAAO,EAAE,EAC7C,GAAI,OAAO,UAAU,SAAS,KAAK,CAAK,IAAM,gBAAiB,CAC9D,EAAa,WACb,KACD,CACA,GAAI,OAAO,GAAU,WACpB,EAAW,GACP,EAAM,MAAM,GAAmB,EAAE,OAAS,GAAG,CAChD,EAAa,eACb,KACD,CAEF,CAEA,GADI,CAAC,GAAc,IAAU,EAAa,QACtC,EAAY,CACf,IAAI,EAAS,IAAU,GAKvB,GAJK,GAEA,IAAe,iBAAgB,EAAS,GAAS,MAElD,EAAQ,OAAO,CACpB,CACA,OAAO,EACR,CAeA,SAAS,GAAsB,EAAQ,CACtC,IAAM,EAAY,EAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAG,EAAE,EACzE,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAM,EAAQ,EAAU,GAAG,SAAS,EAAO,EAAE,EACzC,MAAS,KACb,OAAO,OAAO,GAAU,SAAW,MAAQ,MAC5C,CACA,MAAO,MACR,CAaA,SAAS,IAAiB,EAAQ,CACjC,IAAM,EAAU,EAAO,MAAM,aAAa,QAK1C,OAJI,IAAW,EAAO,UAAU,MAAM,EAAU,EAAO,UAAU,OAC7D,EAAO,UAAU,SAAW,OAAe,GAAqB,CAAM,EAC3D,IAAU,EAAO,UAAU,SAEzB,EAClB,CAaA,SAAS,GAAqB,EAAQ,EAAM,EAAO,CAClD,IAAM,EAAmB,GAA2B,EAAQ,GAAS,GAAuB,CAAM,CAAC,EAC7F,EAAwB,IAAS,OACvC,GAAiB,EAAO,MAAQ,GAAQ,CACvC,IAAM,EAAgB,EAAI,UAAW,GAAM,EAAE,KAAO,EAAO,EAAE,EACvD,EAAkB,IAAkB,GAAK,IAAK,GAAI,EAAI,GACxD,EAAa,CAAC,EACd,EACE,EAAW,EAAiB,EAAO,IAAqB,OACxD,EAAc,CAAC,EAAE,EAAI,QAAU,GAAuB,CAAM,GAAK,GA+BvE,MA9BA,CAGK,EAHD,EAAiB,EAA8B,SACjC,MACT,EAA8B,SACrB,UACd,IAAe,WACb,GACC,IAAkB,EAAa,WAGlC,IAAe,OAClB,EAAa,CAAC,GAAG,EAAK,CACrB,GAAI,EAAO,GACX,KAAM,CACP,CAAC,EACD,EAAW,OAAO,EAAG,EAAW,QAAU,EAAO,MAAM,QAAQ,8BAAgD,GACzG,CAWF,CAXM,IAAe,SAAuB,EAAc,EAAI,IAAK,GACnE,EAAE,KAAO,EAAO,GAAW,CAC9B,GAAG,EACH,KAAM,CACP,EACO,CACP,EAAI,CAAC,CACL,GAAI,EAAO,GACX,KAAM,CACP,CAAC,EACQ,IAAe,SAAuB,EAAc,EAAI,OAAQ,GAAM,EAAE,KAAO,EAAO,EAAE,EAAI,CAAC,EACpF,CAAC,CAClB,GAAI,EAAO,GACX,KAAM,CACP,CAAC,EACM,CACR,CAAC,CACF,CAYA,SAAS,GAAuB,EAAQ,CACvC,OAAO,EAAO,UAAU,eAAiB,EAAO,MAAM,QAAQ,eAAiB,GAAsB,CAAM,IAAM,OAAS,OAAS,KACpI,CAYA,SAAS,GAA2B,EAAQ,EAAO,CAClD,IAAM,EAAqB,GAAuB,CAAM,EAClD,EAAW,GAAmB,CAAM,EAG1C,OAFK,EACD,IAAa,IAAuB,EAAO,MAAM,QAAQ,sBAAwB,MAAU,KAAQ,EAAO,MAAM,QAAQ,mBAAqB,KAAqB,GAC/J,IAAa,OAAS,MAAQ,OAFf,CAGvB,CAYA,SAAS,GAAkB,EAAQ,CAClC,OAAQ,EAAO,UAAU,eAAiB,MAAU,EAAO,MAAM,QAAQ,eAAiB,KAAS,CAAC,CAAC,EAAO,UAC7G,CAYA,SAAS,GAAuB,EAAQ,CACvC,OAAO,EAAO,UAAU,iBAAmB,EAAO,MAAM,QAAQ,iBAAmB,CAAC,CAAC,EAAO,UAC7F,CAYA,SAAS,GAAmB,EAAQ,CACnC,IAAM,EAAa,EAAO,MAAM,MAAM,SAAS,IAAI,GAAG,KAAM,GAAM,EAAE,KAAO,EAAO,EAAE,EACpF,OAAQ,EAAqB,EAAW,KAAO,OAAS,MAAnC,EACtB,CAWA,SAAS,IAAoB,EAAQ,CACpC,OAAO,EAAO,MAAM,MAAM,SAAS,IAAI,GAAG,UAAW,GAAM,EAAE,KAAO,EAAO,EAAE,GAAK,EACnF,CAWA,SAAS,IAAoB,EAAQ,CACpC,GAAiB,EAAO,MAAQ,GAAQ,EAAI,OAAS,EAAI,OAAQ,GAAM,EAAE,KAAO,EAAO,EAAE,EAAI,CAAC,CAAC,CAChG,CAYA,SAAS,IAA+B,EAAQ,CAC/C,IAAM,EAAU,GAAkB,CAAM,EACxC,MAAQ,IAAM,CACR,GACL,GAAqB,EAAQ,IAAK,GAAG,GAAuB,CAAM,EAAI,EAAO,MAAM,QAAQ,mBAAmB,CAAC,EAAI,EAAK,CACzH,CACD,CCrTA,SAAS,KAAqB,CAC7B,MAAQ,IACA,GAAU,CAChB,QAAS,uBACT,QACA,OAAQ,wBACR,aAAgB,CAAC,EAAM,QAAQ,IAAI,EACnC,OAAU,IAAoB,EAAO,EAAM,QAAQ,IAAI,EACvD,cAAe,QAAmB,CACjC,IAAwB,CAAK,EAC7B,IAAyB,CAAK,EAC9B,IAAuB,CAAK,EAC5B,IAA6B,CAAK,CACnC,CAAC,CACF,CAAC,CAEH,CACA,SAAS,GAAW,EAAO,EAAU,EAAc,EAAQ,EAAG,EAAW,CACxE,IAAM,EAAO,CAAC,EACd,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC7C,IAAM,EAAc,EAAa,GAC3B,EAAM,IAAa,EAAO,EAAM,SAAS,EAAa,EAAG,CAAS,EAAG,EAAa,EAAG,EAAO,IAAK,GAAG,GAAW,EAAE,EACvH,EAAS,SAAS,KAAK,CAAG,EAC1B,EAAS,SAAS,EAAI,IAAM,EAC5B,EAAK,KAAK,CAAG,EACT,EAAM,QAAQ,aACjB,EAAI,gBAAkB,EAAM,QAAQ,WAAW,EAAa,CAAC,EACzD,EAAI,iBAAiB,SAAQ,EAAI,QAAU,GAAW,EAAO,EAAU,EAAI,gBAAiB,EAAQ,EAAG,CAAG,GAEhH,CACA,OAAO,CACR,CACA,SAAS,IAAoB,EAAO,EAAM,CACzC,IAAM,EAAW,CAChB,KAAM,CAAC,EACP,SAAU,CAAC,EACX,SAAU,GAAc,CACzB,EAEA,MADA,GAAS,KAAO,GAAW,EAAO,EAAU,CAAI,EACzC,CACR,CCvCA,SAAS,IAAsB,EAAO,CAErC,OADK,EAAM,WAAW,eAAc,EAAM,WAAW,aAAe,EAAM,QAAQ,SAAS,eAAe,CAAK,GAAK,IAAmB,EAAE,CAAK,GACvI,EAAM,WAAW,aAAa,CACtC,CAYA,SAAS,IAA6B,EAAO,CAC5C,OAAO,EAAM,gBAAgB,CAC9B,CAaA,SAAS,IAA0B,EAAO,CAGzC,OAFK,EAAM,WAAW,mBAAkB,EAAM,WAAW,iBAAmB,EAAM,QAAQ,SAAS,mBAAmB,CAAK,GACvH,EAAM,QAAQ,iBAAmB,CAAC,EAAM,WAAW,iBAAyB,EAAM,uBAAuB,EACtG,EAAM,WAAW,iBAAiB,CAC1C,CAWA,SAAS,IAA4B,EAAO,CAC3C,OAAO,EAAM,oBAAoB,CAClC,CAYA,SAAS,IAAyB,EAAO,CAGxC,OAFK,EAAM,WAAW,kBAAiB,EAAM,WAAW,gBAAkB,EAAM,QAAQ,SAAS,kBAAkB,CAAK,GACpH,EAAM,QAAQ,gBAAkB,CAAC,EAAM,WAAW,gBAAwB,EAAM,sBAAsB,EACnG,EAAM,WAAW,gBAAgB,CACzC,CAWA,SAAS,IAA2B,EAAO,CAC1C,OAAO,EAAM,mBAAmB,CACjC,CAaA,SAAS,IAAwB,EAAO,CAGvC,OAFK,EAAM,WAAW,iBAAgB,EAAM,WAAW,eAAiB,EAAM,QAAQ,SAAS,iBAAiB,CAAK,GACjH,EAAM,QAAQ,eAAiB,CAAC,EAAM,WAAW,eAAuB,EAAM,qBAAqB,EAChG,EAAM,WAAW,eAAe,CACxC,CAWA,SAAS,IAA6B,EAAO,CAC5C,OAAO,EAAM,kBAAkB,CAChC,CAYA,SAAS,IAA0B,EAAO,CAGzC,OAFK,EAAM,WAAW,mBAAkB,EAAM,WAAW,iBAAmB,EAAM,QAAQ,SAAS,mBAAmB,CAAK,GACvH,EAAM,QAAQ,iBAAmB,CAAC,EAAM,WAAW,iBAAyB,EAAM,uBAAuB,EACtG,EAAM,WAAW,iBAAiB,CAC1C,CAYA,SAAS,IAA8B,EAAO,CAC7C,OAAO,EAAM,oBAAoB,CAClC,CAaA,SAAS,IAA2B,EAAO,CAG1C,OAFK,EAAM,WAAW,oBAAmB,EAAM,WAAW,kBAAoB,EAAM,QAAQ,SAAS,oBAAoB,CAAK,GAC1H,EAAM,QAAQ,kBAAoB,CAAC,EAAM,WAAW,kBAA0B,EAAM,wBAAwB,EACzG,EAAM,WAAW,kBAAkB,CAC3C,CAYA,SAAS,IAAkB,EAAO,CACjC,OAAO,EAAM,qBAAqB,CACnC,CC9KA,IAAM,IAAuB,CAAE,mBAAqB,GAAU,CAC7D,GAAgB,uBAAwB,EAAO,CAC9C,sBAAuB,CAAE,OAAU,IAAsB,CAAK,CAAE,EAChE,6BAA8B,CAAE,OAAU,IAA6B,CAAK,CAAE,EAC9E,0BAA2B,CAAE,OAAU,IAA0B,CAAK,CAAE,EACxE,4BAA6B,CAAE,OAAU,IAA4B,CAAK,CAAE,EAC5E,yBAA0B,CAAE,OAAU,IAAyB,CAAK,CAAE,EACtE,2BAA4B,CAAE,OAAU,IAA2B,CAAK,CAAE,EAC1E,wBAAyB,CAAE,OAAU,IAAwB,CAAK,CAAE,EACpE,6BAA8B,CAAE,OAAU,IAA6B,CAAK,CAAE,EAC9E,0BAA2B,CAAE,OAAU,IAA0B,CAAK,CAAE,EACxE,8BAA+B,CAAE,OAAU,IAA8B,CAAK,CAAE,EAChF,2BAA4B,CAAE,OAAU,IAA2B,CAAK,CAAE,EAC1E,kBAAmB,CAAE,OAAU,IAAkB,CAAK,CAAE,CACzD,CAAC,CACF,CAAE,ECjBF,SAAS,IAAiB,EAAO,CAChC,GAAI,CAAC,EAAM,eAAgB,CAC1B,EAAM,eAAiB,CAAE,OAAM,EAC/B,IAAM,EAAW,OAAO,OAAO,EAAM,SAAS,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,EAAS,GAAG,sBAAsB,EAAM,eAAgB,CAAK,CACxG,CACA,OAAO,EAAM,cACd,CAMA,SAAS,IAAc,EAAQ,EAAK,EAAO,CAC1C,IAAM,EAAgB,IAAiB,CAAK,EACtC,EAAO,OAAO,OAAO,CAAa,EACxC,EAAK,OAAS,EACd,EAAK,GAAK,GAAG,EAAI,GAAG,GAAG,EAAO,KAC9B,EAAK,IAAM,EACX,IAAM,EAAU,EAAM,qBACtB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,EAAQ,GAAG,CAAI,EACxD,OAAO,CACR,CCnBA,SAAS,IAAoB,EAAK,CACjC,IAAM,EAAO,EAAI,MAAM,sBAAsB,EACvC,EAAe,EAAI,mBACzB,OAAO,EAAK,KAAkB,EAAM,EAAe,EACpD,CASA,SAAS,IAA4B,EAAO,CAC3C,IAAM,EAAO,EAAM,wBAAwB,EAAE,KAC7C,GAAI,EAAM,QAAQ,uBAAyB,GAAO,CACjD,IAAM,EAAc,CAAC,EACf,EAAa,GAAQ,CAC1B,EAAI,mBAAqB,EAAY,OACrC,EAAY,KAAK,CAAG,EAChB,EAAI,QAAQ,QAAU,EAAI,gBAAgB,GAAG,EAAI,QAAQ,QAAQ,CAAS,CAC/E,EAEA,OADA,EAAK,QAAQ,CAAS,EACf,CACR,CACA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,EAAK,GAAG,mBAAqB,EACnE,OAAO,CACR,CAYA,SAAS,IAAa,EAAK,EAAU,CACpC,GAAI,GAAO,EAAI,aAAc,CAAQ,EAAG,OAAO,EAAI,aAAa,GAChE,IAAM,EAAS,EAAI,MAAM,UAAU,CAAQ,EACtC,MAAQ,WAEb,MADA,GAAI,aAAa,GAAY,EAAO,WAAW,EAAI,SAAU,EAAI,KAAK,EAC/D,EAAI,aAAa,EACzB,CAYA,SAAS,IAAoB,EAAK,EAAU,CAC3C,GAAI,GAAO,EAAI,mBAAoB,CAAQ,EAAG,OAAO,EAAI,mBAAmB,GAC5E,IAAM,EAAS,EAAI,MAAM,UAAU,CAAQ,EACtC,MAAQ,WAMb,OALK,EAAO,UAAU,iBAItB,EAAI,mBAAmB,GAAY,EAAO,UAAU,gBAAgB,EAAI,SAAU,EAAI,KAAK,EACpF,EAAI,mBAAmB,KAJ7B,EAAI,mBAAmB,GAAY,CAAC,EAAI,SAAS,CAAQ,CAAC,EACnD,EAAI,mBAAmB,GAIhC,CAYA,SAAS,IAAgB,EAAK,EAAU,CACvC,OAAO,EAAI,SAAS,CAAQ,GAAK,EAAI,MAAM,QAAQ,mBACpD,CAWA,SAAS,IAAgB,EAAK,CAC7B,OAAO,IAAU,EAAI,QAAU,GAAM,EAAE,OAAO,CAC/C,CAKA,SAAS,IAAwB,EAAO,CACvC,IAAM,EAAO,EAAM,gBAAgB,EAAE,SACjC,EAAW,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,EAAW,KAAK,IAAI,EAAU,EAAK,GAAG,KAAK,EACjF,OAAO,CACR,CAYA,SAAS,IAAiB,EAAK,CACzB,KAAI,SACT,OAAO,EAAI,MAAM,gBAAgB,EAAE,SAAS,EAAI,WAAa,EAAI,MAAM,OAAO,EAAI,SAAU,EAAI,CACjG,CAWA,SAAS,IAAkB,EAAK,CAC/B,IAAM,EAAa,CAAC,EAChB,EAAa,EACjB,OAAa,CACZ,IAAM,EAAY,EAAW,aAAa,EAC1C,GAAI,CAAC,EAAW,MAChB,EAAW,KAAK,CAAS,EACzB,EAAa,CACd,CACA,OAAO,EAAW,QAAQ,CAC3B,CAYA,SAAS,IAAgB,EAAK,CAC7B,IAAM,EAAU,EAAI,MAAM,kBAAkB,EACxC,EAAQ,EAAI,YAChB,CAAY,GAAQ,EAAI,YAA8B,IAAI,QAC1D,IAAM,EAAY,MAAM,EAAQ,MAAM,EACtC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACnB,EAAO,EAAM,IAAI,CAAM,EACtB,IACJ,EAAO,IAAc,EAAQ,EAAK,EAAI,KAAK,EAC3C,EAAM,IAAI,EAAQ,CAAI,GAEvB,EAAM,GAAK,CACZ,CACA,OAAO,CACR,CAWA,SAAS,IAA0B,EAAK,CACvC,IAAM,EAAS,GAAc,EACvB,EAAQ,EAAI,YAAY,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACtC,IAAM,EAAO,EAAM,GACnB,EAAO,EAAK,OAAO,IAAM,CAC1B,CACA,OAAO,CACR,CAYA,SAAS,IAAe,EAAa,EAAO,EAAO,EAAQ,CAC1D,OAAO,EAAM,QAAQ,WAAW,EAAa,EAAO,CAAM,IAAM,EAAS,GAAG,EAAO,GAAG,GAAG,IAAU,OAAO,CAAK,EAChH,CAYA,SAAS,IAAa,EAAO,EAAO,EAAW,CAC9C,IAAI,GAAO,EAAY,EAAM,wBAAwB,EAAI,EAAM,YAAY,GAAG,SAAS,GACvF,GAAI,CAAC,IACJ,EAAM,EAAM,gBAAgB,EAAE,SAAS,GACnC,CAAC,GAEJ,MAAU,MAAM,EAGlB,OAAO,CACR,CC/NA,IAAM,IAAkB,CACvB,oBAAqB,EAAW,IAAU,CACzC,GAAoB,kBAAmB,EAAW,EAAO,CACxD,oBAAqB,CAAE,GAAK,GAAQ,IAAoB,CAAG,CAAE,EAC7D,0BAA2B,CAC1B,GAAK,GAAQ,IAA0B,CAAG,EAC1C,SAAW,GAAQ,CAAC,EAAI,YAAY,CAAC,CACtC,EACA,gBAAiB,CAChB,GAAK,GAAQ,IAAgB,CAAG,EAChC,SAAW,GAAQ,CAAC,EAAI,MAAM,kBAAkB,CAAC,CAClD,EACA,gBAAiB,CAChB,GAAK,GAAQ,IAAgB,CAAG,EAChC,SAAW,GAAQ,CAAC,EAAI,OAAO,CAChC,EACA,iBAAkB,CAAE,GAAK,GAAQ,IAAiB,CAAG,CAAE,EACvD,kBAAmB,CAAE,GAAK,GAAQ,IAAkB,CAAG,CAAE,EACzD,oBAAqB,CAAE,IAAK,EAAK,IAAa,IAAoB,EAAK,CAAQ,CAAE,EACjF,aAAc,CAAE,IAAK,EAAK,IAAa,IAAa,EAAK,CAAQ,CAAE,EACnE,gBAAiB,CAAE,IAAK,EAAK,IAAa,IAAgB,EAAK,CAAQ,CAAE,CAC1E,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,kBAAmB,EAAO,CACzC,4BAA6B,CAC5B,OAAU,IAA4B,CAAK,EAC3C,aAAgB,CACf,EAAM,wBAAwB,EAAE,KAChC,EAAM,QAAQ,qBACd,EAAM,QAAQ,uBAAyB,GAAQ,EAAM,MAAM,UAAU,IAAI,EAAI,IAAK,EACnF,CACD,EACA,eAAgB,CAAE,IAAK,EAAa,EAAO,IAAW,IAAe,EAAa,EAAO,EAAO,CAAM,CAAE,EACxG,aAAc,CAAE,IAAK,EAAI,IAAc,IAAa,EAAO,EAAI,CAAS,CAAE,EAC1E,wBAAyB,CACxB,OAAU,IAAwB,CAAK,EACvC,aAAgB,CAAC,EAAM,gBAAgB,CAAC,CACzC,CACD,CAAC,CACF,CACD,ECzBA,SAAS,GAAmC,EAAO,EAAe,GAAW,EAAc,IAAkB,IAAiB,EAAe,CAC5I,IAAM,EAAQ,IAAkB,IAAK,GAAI,EAAM,QAAQ,MAAQ,EAC/D,EAAM,YAAY,UAAY,CAC7B,GAAI,EAAO,IAAK,IAAM,KAAO,EAAO,CACnC,IAAM,EAAW,EAAM,UAAU,GACjC,GAAI,CAAC,EAAU,SACf,IAAM,EAAmB,EAAM,GACzB,EAAgB,IAAqB,IAAK,GAAI,EAAM,aAAa,GAAO,EACzE,EAAQ,EAAM,YAAY,YAAc,EAAS,IAAI,CAAC,EAAG,CAAa,GAAG,EAAS,QAAU,CAAa,CAC/G,CACD,CAAC,CACF,CAQA,SAAS,IAA2B,EAAO,EAAO,GAAW,EAAc,IAAkB,IAAiB,EAAe,CAC5H,EAAM,YAAY,UAAY,CAC7B,GAAmC,EAAO,EAAO,CAAO,EACxD,EAAM,YAAY,SAAS,CAC5B,CAAC,CACF,CAaA,SAAS,IAAY,EAAO,CAC3B,IAAM,EAAO,GAAW,EAAM,YAAY,EAC1C,EAAM,YAAY,UAAY,CAC7B,IAAM,EAAO,OAAO,KAAK,CAAI,EAC7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAK,GACjB,EAAM,UAAU,GAAK,IAAI,EAAK,EAAI,CACnC,CACD,CAAC,EACD,IAAM,EAAW,OAAO,OAAO,EAAM,SAAS,EAC9C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,EAAS,GAAG,yBAAyB,CAAK,CACrF,CAcA,SAAS,IAAmB,EAAO,EAAY,CAC9C,GAAM,CAAE,WAAU,QAAO,gBAAiB,EAAM,QAChD,GAAI,CAAC,EAAM,QAAQ,aAAc,MAAO,CACvC,GAAG,EAAM,QACT,GAAG,EACH,WACA,QACA,cACD,EACA,IAAM,EAAgB,EAAM,QAAQ,aAAa,EAAM,QAAS,CAAU,EACpE,EAAc,CAAE,GAAG,OAAO,0BAA0B,CAAa,CAAE,EACzE,OAAO,OAAO,iBAAiB,OAAO,OAAO,OAAO,eAAe,CAAa,CAAC,EAAG,CACnF,GAAG,EACH,SAAU,CACT,MAAO,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,EACA,MAAO,CACN,MAAO,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,EACA,aAAc,CACb,MAAO,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,CACD,CAAC,CACF,CAaA,SAAS,IAAiB,EAAO,EAAS,EAAS,CAClD,IAAM,EAAgB,IAAmB,EAAO,GAAiB,EAAS,EAAM,OAAO,CAAC,EACpF,EAAM,aAAc,EAAM,aAAa,QAAU,CAAa,EAC7D,EAAM,QAAU,EACjB,GAAS,oBAAsB,IAAO,IAA2B,EAAO,EAAc,OAAS,IAAI,CACxG,CC1HA,IAAM,IAAe,CACpB,qBACA,uBACA,uBACA,yBACA,oBACA,mBCZ2B,mBAAqB,GAAU,CAC1D,GAAgB,oBAAqB,EAAO,CAC3C,YAAa,CAAE,OAAU,IAAY,CAAK,CAAE,EAC5C,iBAAkB,CAAE,GAAK,GAAY,IAAiB,EAAO,CAAO,CAAE,CACvE,CAAC,CACF,CDOC,CACD,EEqBA,SAAS,IAAc,EAAU,CAChC,OAAO,CACR,CChCA,SAAS,IAAY,EAAM,CAC1B,IAAM,EAAQ,EAKd,OAJA,OAAO,eAAe,EAAM,QAAS,CAAE,KAAM,CAC5C,OAAO,EAAK,IAAI,CACjB,CAAE,CAAC,EACC,QAAS,IAAM,EAAM,SAAW,EAAK,IAAI,KAAK,CAAI,GAC/C,CACR,CCTA,SAAS,IAAqB,CAAE,SAAQ,SAAQ,aAAa,CAC5D,MAAO,CACN,OACA,SACA,YACA,aACA,kBACD,EACA,SAAS,EAAK,EAAK,EAAK,EAAS,CAChC,IAAM,EAAU,EAAI,SACpB,GAAI,IAAY,IAAK,IAAK,EAAQ,MAAQ,EAAK,OAC/C,IAAM,EAAU,IAAY,IAAK,GAAsB,EAAI,KAAtB,EAAQ,QAC7C,GAAI,IAAY,IAAK,IAAK,EAAQ,MAAQ,EAAK,CAC9C,EAAQ,QAAU,EAClB,EAAI,SAAW,EACf,MACD,CACA,IAAM,EAAU,EAAI,SACpB,GAAI,IAAY,IAAK,IAAK,EAAQ,UAAY,GAAW,EAAQ,MAAQ,EAAK,OAC9E,IAAM,EAAU,EAAI,SAAW,EAAI,SAAW,CAC7C,UACA,MACA,MACA,UACA,UACA,UACA,QAAS,IAAK,EACf,EACI,IAAY,IAAK,KAAG,EAAQ,QAAU,GACtC,IAAY,IAAK,GAChB,EAAI,KAAO,EADQ,EAAQ,QAAU,EAEtC,IAAY,IAAK,GAChB,EAAI,KAAO,EADQ,EAAQ,QAAU,CAE3C,CACA,SAAS,EAAO,EAAM,EAAM,EAAK,IAAK,CACrC,IAAM,EAAM,EAAK,IACX,EAAU,EAAK,QACf,EAAU,EAAK,QACf,EAAU,EAAK,QACf,EAAU,EAAK,QASrB,OARI,IAAY,IAAK,GAChB,EAAI,SAAW,EADI,EAAQ,QAAU,EAEtC,IAAY,IAAK,GAChB,EAAI,KAAO,EADQ,EAAQ,QAAU,EAEtC,IAAY,IAAK,GAChB,EAAI,SAAW,EADI,EAAQ,QAAU,EAEtC,IAAY,IAAK,IACX,EAAI,KAAO,KAAa,IAAK,IAAG,EAAU,CAAG,EAD/B,EAAQ,QAAU,EAEnC,CACR,CACA,SAAS,EAAU,EAAM,CACxB,IAAI,EAAO,EAAK,QACZ,EACJ,IAAK,EAAG,CACP,IAAM,EAAM,EAAK,IACb,EAAQ,EAAI,MAShB,GARM,EAAQ,GACH,EAAS,GACT,EAAQ,EACV,EAAE,EAAS,KAAa,EAAY,EAAM,CAAG,GACrD,EAAI,MAAQ,EAAS,GACrB,GAAS,GACH,EAAQ,EAJQ,EAAI,MAAQ,EAAQ,GAAK,GADnB,EAAQ,EADlB,EAAI,MAAQ,EAAQ,GAOnC,EAAQ,GAAG,EAAO,CAAG,EACrB,EAAQ,EAAG,CACd,IAAM,EAAU,EAAI,KACpB,GAAI,IAAY,IAAK,GAAG,CACvB,IAAM,GAAW,EAAO,GAAS,QAC7B,IAAY,IAAK,KACpB,EAAQ,CACP,MAAO,EACP,KAAM,CACP,EACA,EAAO,GAER,QACD,CACD,CACA,IAAK,EAAO,KAAU,IAAK,GAAG,CAC7B,EAAO,EAAK,QACZ,QACD,CACA,KAAO,IAAU,IAAK,IAGrB,GAFA,EAAO,EAAM,MACb,EAAQ,EAAM,KACV,IAAS,IAAK,GAAG,CACpB,EAAO,EAAK,QACZ,SAAS,GACV,CAED,KACD,OAAS,GACV,CACA,SAAS,EAAW,EAAM,EAAK,CAC9B,IAAI,EACA,EAAa,EACb,EAAQ,GACZ,IAAK,EAAG,CACP,IAAM,EAAM,EAAK,IACX,EAAQ,EAAI,MAClB,GAAI,EAAI,MAAQ,GAAI,EAAQ,QACvB,IAAK,EAAS,KAAc,OAC5B,EAAO,CAAG,EAAG,CAChB,IAAM,EAAO,EAAI,KACb,EAAK,UAAY,IAAK,IAAG,EAAiB,CAAI,EAClD,EAAQ,EACT,OACM,IAAK,EAAS,KAAc,GAAS,EACvC,EAAK,UAAY,IAAK,IAAK,EAAK,UAAY,IAAK,MAAG,EAAQ,CAC/D,MAAO,EACP,KAAM,CACP,GACA,EAAO,EAAI,KACX,EAAM,EACN,EAAE,EACF,QACD,CACA,GAAI,CAAC,EAAO,CACX,IAAM,EAAU,EAAK,QACrB,GAAI,IAAY,IAAK,GAAG,CACvB,EAAO,EACP,QACD,CACD,CACA,KAAO,KAAc,CACpB,IAAM,EAAW,EAAI,KACf,EAAkB,EAAS,UAAY,IAAK,GAKlD,GAJI,GACH,EAAO,EAAM,MACb,EAAQ,EAAM,MACR,EAAO,EACV,EAAO,CACV,GAAI,EAAO,CAAG,EAAG,CACZ,GAAiB,EAAiB,CAAQ,EAC9C,EAAM,EAAK,IACX,QACD,CACA,EAAQ,EACT,MAAO,EAAI,OAAS,IACpB,EAAM,EAAK,IACX,IAAM,EAAU,EAAK,QACrB,GAAI,IAAY,IAAK,GAAG,CACvB,EAAO,EACP,SAAS,GACV,CACD,CACA,OAAO,CACR,OAAS,GACV,CACA,SAAS,EAAiB,EAAM,CAC/B,EAAG,CACF,IAAM,EAAM,EAAK,IACX,EAAQ,EAAI,OACb,EAAS,KAAc,KAC3B,EAAI,MAAQ,EAAQ,IACf,EAAS,IAAY,GAAG,EAAO,CAAG,EAEzC,QAAU,EAAO,EAAK,WAAa,IAAK,GACzC,CACA,SAAS,EAAY,EAAW,EAAK,CACpC,IAAI,EAAO,EAAI,SACf,KAAO,IAAS,IAAK,IAAG,CACvB,GAAI,IAAS,EAAW,MAAO,GAC/B,EAAO,EAAK,OACb,CACA,MAAO,EACR,CACD,CC7KA,SAAS,IAAW,EAAa,EAAc,EAAmB,CACjE,IAAM,EAAa,OAAO,GAAgB,SACpC,EAAO,EAAa,EAAc,IAAK,GAC7C,MAAO,CACN,MAAO,EAAa,EAAY,KAAO,IAAc,KAAK,CAAI,EAC9D,OAAQ,EAAa,EAAY,MAAQ,IAAe,KAAK,CAAI,EACjE,UAAW,EAAa,EAAY,SAAW,IAAoB,KAAK,CAAI,CAC7E,CACD,CACA,IAAM,GAAgB,CAAC,EACnB,GAAQ,EACN,CAAE,QAAM,WAAQ,cAAW,cAAY,qBAAqC,IAAqB,CACtG,OAAO,EAAM,CACZ,OAAO,EAAK,QAAQ,CACrB,EACA,OAAO,EAAQ,CACd,GAAc,MAAyB,EACvC,EAAO,OAAS,EACjB,EACA,UAAU,EAAM,CACX,EAAK,WAAa,IAAK,KAC1B,EAAK,SAAW,IAAK,GACrB,EAAK,MAAQ,GACb,GAAU,CAAI,EAEhB,CACD,CAAC,EACG,GAAc,EACd,GAAsB,EACtB,GACA,GAAa,EACjB,SAAS,IAAM,EAAI,CAClB,GAAI,CACH,EAAE,GACF,EAAG,CACJ,QAAU,CACJ,EAAE,IAAY,GAAM,CAC1B,CACD,CACA,SAAS,GAAU,EAAK,CACvB,IAAM,EAAW,EAAI,SACjB,EAAM,IAAa,IAAK,GAAuB,EAAI,KAAvB,EAAS,QACzC,KAAO,IAAQ,IAAK,IAAG,EAAM,IAAO,EAAK,CAAG,CAC7C,CACA,SAASC,IAAQ,CACZ,QAAa,GACjB,MAAO,GAAc,IAAqB,CACzC,IAAM,EAAS,GAAc,IAC7B,GAAc,MAAiB,IAAK,GACpC,EAAO,OAAO,CACf,CACA,GAAc,EACd,GAAsB,CAFtB,CAGD,CAoCA,SAAS,GAAW,EAAW,EAAS,CACvC,IAAM,EAAa,OAAO,GAAc,WAClC,EAAS,EACT,EAAO,CACZ,UAAW,EAAa,IAAK,GAAI,EACjC,KAAM,IAAK,GACX,SAAU,IAAK,GACf,KAAM,IAAK,GACX,SAAU,IAAK,GACf,MAAO,IACP,KAAM,CAEL,OADI,KAAc,IAAK,IAAG,GAAK,EAAM,GAAW,EAAK,EAC9C,EAAK,SACb,EACA,UAAU,EAAc,CACvB,IAAM,EAAM,IAAW,CAAY,EAC7B,EAAW,CAAE,QAAS,EAAM,EAC5B,EAAI,QAAa,CACtB,EAAK,IAAI,EACJ,EAAS,SAEb,GAAY,IAAK,GACjB,EAAI,OAAO,EAAK,SAAS,GAHH,EAAS,QAAU,EAK3C,CAAC,EACD,MAAO,CAAE,gBAAmB,CAC3B,EAAE,KAAK,CACR,CAAE,CACH,EACA,QAAQ,EAAU,CACjB,IAAM,EAAU,GACV,EAAU,GAAS,SAAW,OAAO,GAC3C,GAAI,EACH,GAAY,EACZ,EAAE,GACF,EAAK,SAAW,IAAK,QACf,GAAI,IAAa,IAAK,GAAG,MAAO,GACnC,IAAY,EAAK,MAAQ,GAC7B,GAAI,CACH,IAAM,EAAW,EAAK,UAChB,EAAW,OAAO,GAAa,WAAa,EAAS,CAAQ,EAAI,IAAa,IAAK,IAAK,EAAa,EAAO,CAAQ,EAAI,EAK9H,OAJI,IAAa,IAAK,IAAK,CAAC,EAAQ,EAAU,CAAQ,GACrD,EAAK,UAAY,EACV,IAED,EACR,QAAU,CACT,GAAY,EACR,IAAY,EAAK,OAAS,IAC9B,GAAU,CAAI,CACf,CACD,CACD,EAwBA,OAvBI,GACH,EAAK,MAAQ,GACb,EAAK,IAAM,UAAW,CACrB,IAAM,EAAQ,EAAK,MACnB,GAAI,EAAQ,IAAM,EAAQ,IAAM,GAAW,EAAK,KAAM,CAAI,MACrD,EAAK,QAAQ,EAAG,CACnB,IAAM,EAAO,EAAK,KACd,IAAS,IAAK,IAAG,GAAiB,CAAI,CAC3C,OACU,EAAQ,KAAI,EAAK,MAAQ,EAAQ,KAE5C,OADI,KAAc,IAAK,IAAG,GAAK,EAAM,GAAW,EAAK,EAC9C,EAAK,SACb,GACM,EAAK,IAAM,SAAS,EAAW,CACrC,GAAI,EAAK,QAAQ,CAAS,EAAG,CAC5B,IAAM,EAAO,EAAK,KACd,IAAS,IAAK,KACjB,IAAU,CAAI,EACd,GAAiB,CAAI,EACrB,GAAM,EAER,CACD,EACO,CACR,CACA,SAAS,IAAO,EAAI,CACnB,IAAM,MAAY,CACjB,IAAM,EAAU,GAChB,GAAY,EACZ,EAAE,GACF,EAAU,SAAW,IAAK,GAC1B,EAAU,MAAQ,EAClB,GAAI,CACH,OAAO,EAAG,CACX,QAAU,CACT,GAAY,EACZ,EAAU,OAAS,GACnB,GAAU,CAAS,CACpB,CACD,EACM,EAAY,CACjB,KAAM,IAAK,GACX,SAAU,IAAK,GACf,KAAM,IAAK,GACX,SAAU,IAAK,GACf,MAAO,EACP,QAAS,CACR,IAAM,EAAQ,KAAK,MACf,EAAQ,IAAM,EAAQ,IAAM,GAAW,KAAK,KAAM,IAAI,EAAG,EAAI,EAC5D,KAAK,MAAQ,CACnB,EACA,MAAO,CACN,KAAK,MAAQ,EACb,KAAK,SAAW,IAAK,GACrB,GAAU,IAAI,CACf,CACD,EAEA,OADA,EAAI,EACG,CACR,CC3MA,SAAS,IAAQ,EAAM,EAAM,CAC5B,GAAI,OAAO,GAAG,EAAM,CAAI,EAAG,MAAO,GAClC,GAAI,OAAO,GAAS,WAAY,GAAiB,OAAO,GAAS,WAAY,EAAe,MAAO,GACnG,GAAI,aAAgB,KAAO,aAAgB,IAAK,CAC/C,GAAI,EAAK,OAAS,EAAK,KAAM,MAAO,GACpC,IAAK,GAAM,CAAC,EAAG,KAAM,EAAM,GAAI,CAAC,EAAK,IAAI,CAAC,GAAK,CAAC,OAAO,GAAG,EAAG,EAAK,IAAI,CAAC,CAAC,EAAG,MAAO,GAClF,MAAO,EACR,CACA,GAAI,aAAgB,KAAO,aAAgB,IAAK,CAC/C,GAAI,EAAK,OAAS,EAAK,KAAM,MAAO,GACpC,IAAK,IAAM,KAAK,EAAM,GAAI,CAAC,EAAK,IAAI,CAAC,EAAG,MAAO,GAC/C,MAAO,EACR,CACA,GAAI,aAAgB,MAAQ,aAAgB,KAE3C,OADI,EAAK,QAAQ,IAAM,EAAK,QAAQ,EAGrC,IAAM,EAAQ,GAAW,CAAI,EAC7B,GAAI,EAAM,SAAW,GAAW,CAAI,EAAE,OAAQ,MAAO,GACrD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,GAAI,CAAC,OAAO,UAAU,eAAe,KAAK,EAAM,EAAM,EAAE,GAAK,CAAC,OAAO,GAAG,EAAK,EAAM,IAAK,EAAK,EAAM,GAAG,EAAG,MAAO,GACvJ,MAAO,EACR,CACA,SAAS,GAAW,EAAK,CACxB,OAAO,OAAO,KAAK,CAAG,EAAE,OAAO,OAAO,sBAAsB,CAAG,CAAC,CACjE,CCbA,SAAS,IAAqB,EAAU,EAAe,CAAC,EAAG,CAI1D,OAHA,OAAO,OAAO,CAAQ,EAAE,QAAS,GAAY,CAC5C,EAAe,EAAQ,kBAAkB,CAAY,GAAK,CAC3D,CAAC,EACM,GAAW,CAAY,CAC/B,CAMA,SAAS,IAAe,EAAc,CACrC,IAAM,EAAc,EAAa,SAAS,sBACpC,CAAE,iBAAgB,WAAY,EAAa,eAAc,mBAAkB,sBAAqB,kBAAiB,sBAAqB,YAAW,WAAY,EAAa,mBAAkB,kBAAiB,oBAAmB,UAAS,iBAAgB,UAAW,EAAY,GAAG,GAAa,EAAa,SAC7S,EAAQ,CACb,qBAAsB,CAAC,EACvB,uBAAwB,CAAC,EACzB,UAAW,CACV,GAAG,IACH,GAAG,CACJ,EACA,4BAA6B,CAAC,EAC9B,uBAAwB,CAAC,EACzB,cACA,oBAAqB,CAAC,EACtB,aAAc,CACb,iBACA,YACA,SACD,EACA,WAAY,CAAC,EACb,MAAO,CAAC,EACR,UAAW,CAAC,CACb,EACM,EAAe,OAAO,OAAO,EAAM,SAAS,EAC5C,EAAgB,CACrB,GAAG,EAAa,QAAQ,EAAK,IACrB,OAAO,OAAO,EAAK,EAAQ,yBAAyB,CAAK,CAAC,EAC/D,CAAC,CAAC,EACL,GAAG,CACJ,EACA,GAAI,EAAY,mBAAqB,EAAc,MAAO,IAAK,GAAM,CAAC,EAAS,KAAU,OAAO,QAAQ,EAAc,KAAK,EAAG,CAC7H,IAAM,EAAO,EACP,EAAc,EAAY,mBAAmB,EAAK,IAAI,EAAG,CAAE,UAAW,gBAAgB,GAAU,CAAC,EACvG,EAAc,MAAM,GAAW,EAC/B,IAAI,EAAe,GACb,EAAuB,EAAK,UAAW,GAAU,CAClD,GACJ,EAAY,IAAI,CAAK,CACtB,CAAC,EACK,EAAuB,EAAY,UAAW,GAAU,CAC7D,EAAe,GACf,EAAK,IAAI,CAAK,EACd,EAAe,EAChB,CAAC,EACD,EAAY,gBAAgB,CAAoB,EAChD,EAAY,gBAAgB,CAAoB,CACjD,CACI,EAAY,oBACf,EAAM,aAAe,EAAY,mBAAmB,EAAe,CAAE,UAAW,oBAAqB,CAAC,EACtG,OAAO,eAAe,EAAO,UAAW,CACvC,aAAc,GACd,WAAY,GACZ,KAAM,CACL,OAAO,EAAM,aAAa,IAAI,CAC/B,EACA,IAAI,EAAO,CACV,EAAM,aAAa,QAAU,CAAK,CACnC,CACD,CAAC,GACK,EAAM,QAAU,EACvB,EAAM,aAAe,IAAqB,EAAM,UAAW,EAAM,QAAQ,YAAY,EACrF,IAAM,EAAY,OAAO,KAAK,EAAM,YAAY,EAChD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAM,EAAM,EAAU,GACtB,EAAM,UAAU,GAAO,EAAY,mBAAmB,EAAM,aAAa,GAAM,CAAE,UAAW,mBAAmB,GAAM,CAAC,EACtH,EAAM,MAAM,GAAO,EAAY,uBAAyB,CACvD,IAAM,EAAU,EAAM,QAChB,EAAe,EAAQ,QAAQ,GAC/B,EAAgB,EAAe,EAAa,IAAI,EAAI,EAAM,UAAU,GAAK,IAAI,EACnF,GAAI,EAAc,OAAO,EACzB,IAAM,EAAkB,EAAQ,MAChC,GAAI,GAAmB,GAAO,EAAiB,CAAG,EAAG,CACpD,IAAM,EAAkB,EAAgB,GACxC,OAAO,IAAoB,IAAK,GAAI,EAAM,aAAa,GAAO,CAC/D,CACA,OAAO,CACR,EAAG,CAAE,UAAW,eAAe,GAAM,CAAC,CACvC,CACA,GAAmC,CAAK,EACxC,EAAM,MAAQ,IAAY,EAAY,uBAAyB,CAC9D,IAAM,EAAW,CAAC,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAM,EAAM,EAAU,GACtB,EAAS,GAAO,EAAM,MAAM,GAAK,IAAI,CACtC,CACA,OAAO,CACR,EAAG,CACF,QAAS,IACT,UAAW,aACZ,CAAC,CAAC,EACF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC7C,IAAM,EAAU,EAAa,GAC7B,EAAQ,wBAAwB,CAAK,EACjC,EAAQ,sBAAsB,EAAM,qBAAqB,KAAK,EAAQ,qBAAqB,KAAK,CAAO,CAAC,EACxG,EAAQ,wBAAwB,EAAM,uBAAuB,KAAK,EAAQ,uBAAuB,KAAK,CAAO,CAAC,EAC9G,EAAQ,6BAA6B,EAAM,4BAA4B,KAAK,EAAQ,4BAA4B,KAAK,CAAO,CAAC,EAC7H,EAAQ,wBAAwB,EAAM,uBAAuB,KAAK,EAAQ,uBAAuB,KAAK,CAAO,CAAC,EAC9G,EAAQ,qBAAqB,EAAM,oBAAoB,KAAK,EAAQ,oBAAoB,KAAK,CAAO,CAAC,EACzG,EAAQ,qBAAqB,CAAK,CACnC,CAuBA,OAAO,CACR,CCrIA,IAAM,IAAuB,CAC5B,gBAAkB,IACV,CACN,cAAe,CACd,GAAG,GAA6B,EAChC,GAAG,EAAa,aACjB,EACA,GAAG,CACJ,GAED,uBAAyB,IACjB,CAAE,sBAAuB,GAAiB,gBAAiB,CAAK,CAAE,GAE1E,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,uBAAwB,EAAW,EAAO,CAC7D,WAAY,CAAE,IAAK,EAAQ,IAAa,IAAW,EAAQ,CAAQ,CAAE,EACrE,iBAAkB,CAAE,GAAK,GAAW,IAAiB,CAAM,CAAE,EAC7D,sBAAuB,CAAE,GAAK,GAAW,IAAsB,CAAM,CAAE,EACvE,mBAAoB,CAAE,GAAK,GAAW,GAAmB,CAAM,CAAE,CAClE,CAAC,CACF,EACA,oBAAqB,EAAW,IAAU,CACzC,GAAoB,uBAAwB,EAAW,EAAO,CAC7D,0BAA2B,CAC1B,GAAK,GAAQ,IAA0B,CAAG,EAC1C,SAAW,GAAQ,CAClB,EAAI,YAAY,EAChB,EAAI,MAAM,MAAM,eAAe,IAAI,EACnC,EAAI,MAAM,MAAM,kBAAkB,IAAI,CACvC,CACD,EACA,yBAA0B,CACzB,GAAK,GAAQ,IAAyB,CAAG,EACzC,SAAW,GAAQ,CAClB,EAAI,YAAY,EAChB,EAAI,MAAM,MAAM,eAAe,IAAI,GAAG,MACtC,EAAI,MAAM,MAAM,kBAAkB,IAAI,CACvC,CACD,EACA,uBAAwB,CACvB,GAAK,GAAQ,IAAuB,CAAG,EACvC,SAAW,GAAQ,CAClB,EAAI,YAAY,EAChB,EAAI,MAAM,MAAM,eAAe,IAAI,GAAG,IACtC,EAAI,MAAM,MAAM,kBAAkB,IAAI,CACvC,CACD,CACD,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,uBAAwB,EAAO,CAC9C,uBAAwB,CAAE,GAAK,GAAY,GAAuB,EAAO,CAAO,CAAE,EAClF,yBAA0B,CAAE,GAAK,GAAiB,IAAyB,EAAO,CAAY,CAAE,EAChG,6BAA8B,CAAE,GAAK,GAAa,IAA6B,EAAO,CAAQ,CAAE,EAChG,2BAA4B,CAC3B,OAAU,GAA2B,CAAK,EAC1C,aAAgB,CACf,EAAM,cAAc,EACpB,GAAmB,EAAO,wBAAyB,EAA2B,EAC9E,EAAM,MAAM,eAAe,IAAI,GAAG,MAClC,EAAM,MAAM,aAAa,IAAI,CAC9B,CACD,EACA,4BAA6B,CAC5B,OAAU,GAA4B,CAAK,EAC3C,aAAgB,CACf,EAAM,cAAc,EACpB,GAAmB,EAAO,wBAAyB,EAA2B,EAC9E,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,aAAa,IAAI,CAC9B,CACD,EACA,yBAA0B,CACzB,OAAU,GAAyB,CAAK,EACxC,aAAgB,CACf,EAAM,cAAc,EACpB,GAAmB,EAAO,wBAAyB,EAA2B,EAC9E,EAAM,MAAM,eAAe,IAAI,GAAG,IAClC,EAAM,MAAM,aAAa,IAAI,CAC9B,CACD,EACA,2BAA4B,CAC3B,OAAU,IAA2B,CAAK,EAC1C,aAAgB,CAAC,GAAmB,EAAO,uBAAwB,EAA0B,CAAC,CAC/F,EACA,4BAA6B,CAC5B,OAAU,IAA4B,CAAK,EAC3C,aAAgB,CAAC,GAAmB,EAAO,wBAAyB,EAA2B,CAAC,CACjG,EACA,yBAA0B,CACzB,OAAU,IAAyB,CAAK,EACxC,aAAgB,CAAC,GAAmB,EAAO,qBAAsB,EAAwB,CAAC,CAC3F,EACA,0BAA2B,CAC1B,OAAU,GAA0B,CAAK,EACzC,aAAgB,CAAC,GAAmB,EAAO,uBAAwB,EAA0B,CAAC,CAC/F,EACA,wBAAyB,CACxB,OAAU,GAAwB,CAAK,EACvC,aAAgB,CAAC,GAAmB,EAAO,qBAAsB,EAAwB,CAAC,CAC3F,EACA,2BAA4B,CAC3B,OAAU,GAA2B,CAAK,EAC1C,aAAgB,CAAC,GAAmB,EAAO,wBAAyB,EAA2B,CAAC,CACjG,EACA,0BAA2B,CAC1B,OAAU,IAA0B,CAAK,EACzC,aAAgB,CAAC,GAAmB,EAAO,uBAAwB,EAA0B,CAAC,CAC/F,EACA,wBAAyB,CACxB,OAAU,IAAwB,CAAK,EACvC,aAAgB,CAAC,GAAmB,EAAO,qBAAsB,EAAwB,CAAC,CAC3F,EACA,2BAA4B,CAC3B,OAAU,IAA2B,CAAK,EAC1C,aAAgB,CAAC,GAAmB,EAAO,wBAAyB,EAA2B,CAAC,CACjG,EACA,0BAA2B,CAC1B,OAAU,GAA0B,CAAK,EACzC,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,wBAAyB,CACxB,OAAU,GAAwB,CAAK,EACvC,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,2BAA4B,CAC3B,OAAU,GAA2B,CAAK,EAC1C,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,2BAA4B,CAAE,GAAK,GAAa,IAA2B,EAAO,CAAQ,CAAE,EAC5F,iCAAkC,CACjC,OAAU,GAAiC,CAAK,EAChD,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,kCAAmC,CAClC,OAAU,GAAkC,CAAK,EACjD,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,+BAAgC,CAC/B,OAAU,GAA+B,CAAK,EAC9C,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,kCAAmC,CAAE,GAAK,GAAa,GAAkC,EAAO,CAAQ,CAAE,CAC3G,CAAC,CACF,CACD,ECtLA,SAAS,KAA8B,CACtC,OAAO,GAAc,CACtB,CAaA,SAAS,IAAkC,CAC1C,MAAO,CACN,KAAM,IACN,QAAS,GACT,eACD,CACD,CAYA,SAAS,GAAe,EAAQ,CAC/B,IAAM,EAAe,GAAgC,EAC/C,EAAe,EAAO,MAAM,MAAM,cAAc,IAAI,EACpD,EAAa,GAAgB,GAAO,EAAc,EAAO,EAAE,EAAI,EAAa,EAAO,IAAM,IAAK,GACpG,OAAO,KAAK,IAAI,KAAK,IAAI,EAAO,UAAU,SAAW,EAAa,QAAS,GAAc,EAAO,UAAU,MAAQ,EAAa,IAAI,EAAG,EAAO,UAAU,SAAW,EAAa,OAAO,CACvL,CACA,SAAS,GAAmB,EAAS,CACpC,IAAM,EAAS,GAAc,EACvB,EAAS,GAAc,EACvB,EAAY,MAAM,EAAQ,MAAM,EAClC,EAAQ,EACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACxC,IAAM,EAAS,EAAQ,GACjB,EAAO,GAAmB,EAAQ,UAAW,EAAc,EACjE,EAAM,GAAK,EACX,EAAO,EAAO,IAAM,EACpB,GAAS,CACV,CACA,IAAI,EAAQ,EACZ,IAAK,IAAI,EAAI,EAAQ,OAAS,EAAG,GAAK,EAAG,IACxC,EAAO,EAAQ,GAAG,IAAM,EACxB,GAAS,EAAM,GAEhB,MAAO,CACN,SACA,QACD,CACD,CAcA,SAAS,GAAuB,EAAO,CACtC,MAAO,CACN,IAAK,GAAmB,GAAkC,CAAK,CAAC,EAChE,OAAQ,GAAmB,GAAkC,EAAO,QAAQ,CAAC,EAC7E,MAAO,GAAmB,GAAkC,EAAO,OAAO,CAAC,EAC3E,IAAK,GAAmB,GAAkC,EAAO,KAAK,CAAC,CACxE,CACD,CACA,SAAS,GAAa,EAAU,CAC/B,OAAO,IAAa,QAAU,QAAU,IAAa,MAAQ,MAAQ,IAAa,SAAW,SAAW,KACzG,CAgBA,SAAS,IAAgB,EAAQ,EAAU,CAC1C,OAAO,GAAmB,EAAO,MAAO,mBAAoB,EAAsB,EAAE,GAAa,CAAQ,GAAG,OAAO,EAAO,KAAO,CAClI,CAYA,SAAS,IAAgB,EAAQ,EAAU,CAC1C,OAAO,GAAmB,EAAO,MAAO,mBAAoB,EAAsB,EAAE,GAAa,CAAQ,GAAG,OAAO,EAAO,KAAO,CAClI,CAYA,SAAS,IAAiB,EAAQ,CACjC,GAAsB,EAAO,MAAQ,GAAQ,CAC5C,IAAM,EAAO,GAAc,EACrB,EAAY,OAAO,KAAK,CAAG,EACjC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,IAAM,EAAW,EAAU,GACvB,IAAa,EAAO,KAAI,EAAK,GAAY,EAAI,GAClD,CACA,OAAO,CACR,CAAC,CACF,CACA,SAAS,GAAc,EAAQ,CAC9B,GAAI,CAAC,EAAO,WAAW,OAAQ,OAAO,GAAe,EAAO,MAAM,EAClE,IAAI,EAAM,EACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,WAAW,OAAQ,IAAK,GAAO,GAAc,EAAO,WAAW,EAAE,EAC5F,OAAO,CACR,CAYA,SAAS,GAAe,EAAQ,CAC/B,OAAO,GAAc,CAAM,CAC5B,CAYA,SAAS,GAAgB,EAAQ,CAChC,GAAI,EAAO,MAAQ,EAAG,CACrB,IAAM,EAAoB,EAAO,aAAa,QAAQ,EAAO,MAAQ,GACrE,GAAI,EAAmB,OAAO,GAAmB,EAAmB,WAAY,EAAe,EAAI,GAAmB,EAAmB,UAAW,EAAc,CACnK,CACA,MAAO,EACR,CAYA,SAAS,GAAsB,EAAO,EAAS,CAC9C,EAAM,QAAQ,uBAAuB,CAAO,CAC7C,CAaA,SAAS,IAAwB,EAAO,EAAc,CACrD,GAAsB,EAAO,EAAe,GAAc,EAAI,OAAO,OAAO,GAAc,EAAG,GAAW,EAAM,aAAa,cAAgB,CAAC,CAAC,CAAC,CAAC,CAChJ,CAWA,SAAS,IAAmB,EAAO,CAClC,OAAO,EAAM,gBAAgB,EAAE,IAAI,QAAQ,QAAQ,EAAK,IAChD,EAAM,GAAe,CAAM,EAChC,CAAC,GAAK,CACV,CAWA,SAAS,IAAwB,EAAO,CACvC,OAAO,GAAmB,EAAO,uBAAwB,EAA0B,EAAE,IAAI,QAAQ,QAAQ,EAAK,IACtG,EAAM,GAAe,CAAM,EAChC,CAAC,GAAK,CACV,CAWA,SAAS,IAAyB,EAAO,CACxC,OAAO,GAAmB,EAAO,wBAAyB,EAA2B,EAAE,IAAI,QAAQ,QAAQ,EAAK,IACxG,EAAM,GAAe,CAAM,EAChC,CAAC,GAAK,CACV,CAWA,SAAS,IAAsB,EAAO,CACrC,OAAO,GAAmB,EAAO,qBAAsB,EAAwB,EAAE,IAAI,QAAQ,QAAQ,EAAK,IAClG,EAAM,GAAe,CAAM,EAChC,CAAC,GAAK,CACV,CCjRA,IAAM,IAAsB,CAC3B,gBAAkB,IACV,CACN,aAAc,IAA4B,EAC1C,GAAG,CACJ,GAED,wBACQ,GAAgC,EAExC,uBAAyB,IACjB,CAAE,qBAAsB,GAAiB,eAAgB,CAAK,CAAE,GAExE,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,sBAAuB,EAAW,EAAO,CAC5D,eAAgB,CACf,GAAK,GAAW,GAAe,CAAM,EACrC,SAAW,GAAW,CAAC,EAAM,QAAQ,QAAS,EAAM,MAAM,cAAc,IAAI,IAAI,EAAO,GAAG,CAC3F,EACA,gBAAiB,CAAE,IAAK,EAAQ,IAAa,IAAgB,EAAQ,CAAQ,CAAE,EAC/E,gBAAiB,CAAE,IAAK,EAAQ,IAAa,IAAgB,EAAQ,CAAQ,CAAE,EAC/E,iBAAkB,CAAE,GAAK,GAAW,IAAiB,CAAM,CAAE,CAC9D,CAAC,CACF,EACA,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,sBAAuB,EAAW,EAAO,CAC5D,eAAgB,CACf,GAAK,GAAW,GAAe,CAAM,EACrC,SAAW,GAAW,CAAC,EAAM,QAAQ,QAAS,EAAO,OAAO,QAAQ,OAAS,EAAI,EAAM,MAAM,cAAc,IAAI,EAAI,EAAM,MAAM,cAAc,IAAI,IAAI,EAAO,OAAO,GAAG,CACvK,EACA,gBAAiB,CAChB,GAAK,GAAW,GAAgB,CAAM,EACtC,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,cAAc,IAAI,EAC9B,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,CACD,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,sBAAuB,EAAO,CAC7C,uBAAwB,CACvB,OAAU,GAAuB,CAAK,EACtC,aAAgB,CACf,EAAM,QAAQ,QACd,EAAM,MAAM,cAAc,IAAI,EAC9B,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,iBACf,CACD,EACA,sBAAuB,CAAE,GAAK,GAAY,GAAsB,EAAO,CAAO,CAAE,EAChF,wBAAyB,CAAE,GAAK,GAAiB,IAAwB,EAAO,CAAY,CAAE,EAC9F,mBAAoB,CACnB,OAAU,IAAmB,CAAK,EAClC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,gBAAgB,CAAC,CAC1E,EACA,wBAAyB,CACxB,OAAU,IAAwB,CAAK,EACvC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,gBAAgB,CAAC,CAC1E,EACA,yBAA0B,CACzB,OAAU,IAAyB,CAAK,EACxC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,gBAAgB,CAAC,CAC1E,EACA,sBAAuB,CACtB,OAAU,IAAsB,CAAK,EACrC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,gBAAgB,CAAC,CAC1E,CACD,CAAC,CACF,CACD,EC9EM,IAA0B,CAC/B,gBAAkB,IACV,CACN,iBAAkB,IAAgC,EAClD,GAAG,CACJ,GAED,uBAAyB,IACjB,CAAE,yBAA0B,GAAiB,mBAAoB,CAAK,CAAE,GAEhF,uBAAwB,EAAW,IAAU,CAC5C,GAAoB,0BAA2B,EAAW,EAAO,CAChE,oBAAqB,CACpB,GAAK,GAAW,GAAoB,CAAM,EAC1C,SAAW,GAAW,CACrB,EAAM,QAAQ,QACd,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAO,OACR,CACD,EACA,kBAAmB,CAAE,GAAK,GAAW,GAAkB,CAAM,CAAE,EAC/D,kCAAmC,CAAE,GAAK,GAAW,IAAkC,CAAM,CAAE,EAC/F,wBAAyB,CAAE,IAAK,EAAQ,IAAY,GAAwB,EAAQ,CAAO,CAAE,CAC9F,CAAC,CACF,EACA,oBAAqB,EAAW,IAAU,CACzC,GAAoB,0BAA2B,EAAW,EAAO,CAChE,oBAAqB,CACpB,GAAK,GAAQ,GAAoB,CAAG,EACpC,SAAW,GAAQ,CAClB,EAAI,YAAY,EAChB,EAAM,MAAM,eAAe,IAAI,EAC/B,EAAM,MAAM,kBAAkB,IAAI,CACnC,CACD,EACA,8BAA+B,CAC9B,GAAK,GAAQ,GAA8B,CAAG,EAC9C,SAAW,GAAQ,CAAC,EAAI,YAAY,EAAG,EAAM,MAAM,kBAAkB,IAAI,CAAC,CAC3E,CACD,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,0BAA2B,EAAO,CACjD,4BAA6B,CAC5B,OAAU,IAA4B,CAAK,EAC3C,aAAgB,CACf,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,QACd,EAAM,QAAQ,iBACf,CACD,EACA,4BAA6B,CAC5B,OAAU,GAA4B,CAAK,EAC3C,aAAgB,CACf,EAAM,MAAM,kBAAkB,IAAI,EAClC,EAAM,MAAM,aAAa,IAAI,EAC7B,EAAM,MAAM,UAAU,IAAI,EAC1B,EAAM,QAAQ,QACd,EAAM,QAAQ,iBACf,CACD,EACA,0BAA2B,CAAE,GAAK,GAAY,GAA0B,EAAO,CAAO,CAAE,EACxF,4BAA6B,CAAE,GAAK,GAAiB,IAA4B,EAAO,CAAY,CAAE,EACtG,8BAA+B,CAAE,GAAK,GAAU,GAA8B,EAAO,CAAK,CAAE,EAC5F,6BAA8B,CAAE,OAAU,GAA6B,CAAK,CAAE,EAC9E,8BAA+B,CAAE,OAAU,IAA8B,CAAK,CAAE,EAChF,2CAA4C,CAAE,OAAU,IAA2C,CAAK,CAAE,CAC3G,CAAC,CACF,CACD,EChEA,SAAS,KAA8B,CACtC,OAAO,GAAc,CACtB,CAYA,SAAS,GAAsB,EAAO,EAAS,CAC9C,EAAM,QAAQ,uBAAuB,CAAO,CAC7C,CAaA,SAAS,IAAwB,EAAO,EAAc,CACrD,EAAM,mBAAqB,KAC3B,GAAsB,EAAO,EAAe,GAAc,EAAI,OAAO,OAAO,GAAc,EAAG,GAAW,EAAM,aAAa,cAAgB,CAAC,CAAC,CAAC,CAAC,CAChJ,CAeA,SAAS,GAA4B,EAAO,EAAO,EAAM,CACxD,EAAM,mBAAqB,KAC3B,GAAsB,EAAQ,GAAQ,CAErC,GADA,EAAe,IAAU,OAAsB,CAAC,GAAmB,EAAO,uBAAwB,EAA0B,EAArF,EACnC,GAAM,aAAe,CAAC,EAAO,OAAO,GAAc,EACtD,IAAM,EAAe,OAAO,OAAO,GAAc,EAAG,CAAG,EACjD,EAAqB,EAAM,sBAAsB,EAAE,SACzD,GAAI,EAAO,CACV,IAAM,EAA+B,IAAI,IACzC,EAAmB,QAAS,GAAQ,CAC/B,GAA2B,EAAK,CAAY,IAAG,EAAa,EAAI,IAAM,GAC3E,CAAC,CACF,MAAO,EAAmB,QAAS,GAAQ,CACtC,GAAiB,CAAG,GAAG,OAAO,EAAa,EAAI,GACpD,CAAC,EACD,OAAO,CACR,CAAC,CACF,CAYA,SAAS,GAAgC,EAAO,EAAO,EAAM,CAC5D,EAAM,mBAAqB,KAC3B,GAAsB,EAAQ,GAAQ,CACrC,IAAM,EAAuB,IAAU,OAAsB,CAAC,GAAmB,EAAO,2BAA4B,EAA8B,EAA7F,EACrD,GAAI,GAAM,aAAe,CAAC,EAAe,OAAO,GAAc,EAC9D,IAAM,EAAe,OAAO,OAAO,GAAc,EAAG,CAAG,EAIvD,OAHA,EAAM,YAAY,EAAE,KAAK,QAAS,GAAQ,CACzC,GAAoB,EAAc,EAAI,GAAI,EAAe,GAAM,EAAO,EAAI,CAC3E,CAAC,EACM,CACR,CAAC,CACF,CAYA,SAAS,IAA6B,EAAO,CAC5C,OAAO,EAAM,gBAAgB,CAC9B,CAYA,SAAS,IAA0B,EAAO,CACzC,IAAM,EAAW,EAAM,gBAAgB,EAMvC,OALK,GAAmB,EAAO,wBAAyB,EAA2B,EAK5E,GAAa,EAAU,CAAK,EAL0D,CAC5F,KAAM,CAAC,EACP,SAAU,CAAC,EACX,SAAU,GAAc,CACzB,CAED,CAYA,SAAS,IAAkC,EAAO,CACjD,IAAM,EAAW,EAAM,oBAAoB,EAM3C,OALK,GAAmB,EAAO,wBAAyB,EAA2B,EAK5E,GAAa,EAAU,CAAK,EAL0D,CAC5F,KAAM,CAAC,EACP,SAAU,CAAC,EACX,SAAU,GAAc,CACzB,CAED,CAYA,SAAS,IAAiC,EAAO,CAChD,IAAM,EAAW,EAAM,kBAAkB,EAMzC,OALK,GAAmB,EAAO,wBAAyB,EAA2B,EAK5E,GAAa,EAAU,CAAK,EAL0D,CAC5F,KAAM,CAAC,EACP,SAAU,CAAC,EACX,SAAU,GAAc,CACzB,CAED,CASA,SAAS,GAAwB,EAAO,CACvC,OAAO,OAAO,KAAK,EAAM,MAAM,cAAc,IAAI,GAAK,CAAC,CAAC,CACzD,CAaA,SAAS,GAA2B,EAAO,CAC1C,IAAM,EAAqB,EAAM,oBAAoB,EAAE,SACjD,EAAe,EAAM,MAAM,cAAc,IAAI,GAAK,CAAC,EACrD,EAAoB,GAAQ,EAAmB,QAAU,OAAO,KAAK,CAAY,EAAE,QACvF,GAAI,EAAmB,CACtB,IAAM,EAA+B,IAAI,IACrC,EAAmB,KAAM,GAAQ,CAAC,GAAc,EAAK,CAAY,GAAK,GAA2B,EAAK,CAAY,CAAC,IAAG,EAAoB,GAC/I,CACA,OAAO,CACR,CAYA,SAAS,GAA+B,EAAO,CAC9C,IAAM,EAAqB,EAAM,qBAAqB,EAAE,SAClD,EAAe,EAAM,MAAM,cAAc,IAAI,GAAK,CAAC,EACnD,EAA+B,IAAI,IACrC,EAAmB,GACvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAmB,OAAQ,IAAK,CACnD,IAAM,EAAM,EAAmB,GAC/B,GAAK,GAAc,EAAK,CAAY,EAEzB,CAAC,GAAoB,GAA2B,EAAK,CAAY,IAAG,EAAmB,YAD7F,GAA2B,EAAK,CAAY,EAAG,MAAO,EAE5D,CACA,OAAO,CACR,CAWA,SAAS,GAA4B,EAAO,CAC3C,OAAO,GAAmB,EAAO,oBAAqB,EAAuB,EAAE,OAAS,CACzF,CASA,SAAS,IAAgC,EAAO,CAC/C,OAAO,EAAM,qBAAqB,EAAE,SAAS,OAAQ,GAAQ,GAAiB,CAAG,CAAC,EAAE,KAAM,GAAQ,GAAkB,CAAG,GAAK,GAAmB,EAAK,oBAAqB,EAAqB,CAAC,CAChM,CAYA,SAAS,IAAsC,EAAO,CACrD,MAAQ,IAAM,CACb,GAA4B,EAAO,EAAE,OAAO,OAAO,CACpD,CACD,CAYA,SAAS,IAA0C,EAAO,CACzD,MAAQ,IAAM,CACb,GAAgC,EAAO,EAAE,OAAO,OAAO,CACxD,CACD,CAkBA,SAAS,GAAmB,EAAK,EAAO,EAAM,CAC7C,IAAM,EAAa,GAAkB,CAAG,EACxC,GAAsB,EAAI,MAAQ,GAAQ,CACzC,EAAe,IAAU,OAAsB,CAAC,EAAT,EACvC,IAAM,EAAe,OAAO,OAAO,GAAc,EAAG,CAAG,EAGvD,OAFA,GAAoB,EAAc,EAAI,GAAI,GAAQ,GAAM,gBAAkB,KAAS,GAAsB,CAAG,EAAG,EAAI,KAAK,EACpH,CAAC,GAAS,GAAM,iBAAiB,GAAoB,EAAc,CAAG,EACnE,CACR,CAAC,CACF,CAWA,SAAS,GAAkB,EAAK,CAC/B,OAAO,GAAc,EAAK,EAAI,MAAM,MAAM,cAAc,IAAI,GAAK,CAAC,CAAC,CACpE,CAWA,SAAS,GAAsB,EAAK,CACnC,OAAO,GAAiB,CAAG,IAAM,MAClC,CAWA,SAAS,IAA4B,EAAK,CACzC,OAAO,GAAiB,CAAG,IAAM,KAClC,CAYA,SAAS,GAAiB,EAAK,CAC9B,IAAM,EAAU,EAAI,MAAM,QAE1B,OADI,OAAO,EAAQ,oBAAuB,WAAmB,EAAQ,mBAAmB,CAAG,EACpF,EAAQ,oBAAsB,EACtC,CAYA,SAAS,GAAwB,EAAK,CACrC,IAAM,EAAU,EAAI,MAAM,QAE1B,OADI,OAAO,EAAQ,uBAA0B,WAAmB,EAAQ,sBAAsB,CAAG,EAC1F,EAAQ,uBAAyB,EACzC,CAYA,SAAS,GAAsB,EAAK,CACnC,IAAM,EAAU,EAAI,MAAM,QAE1B,OADI,OAAO,EAAQ,yBAA4B,WAAmB,EAAQ,wBAAwB,CAAG,EAC9F,EAAQ,yBAA2B,EAC3C,CAgBA,SAAS,IAA6B,EAAK,EAAM,CAChD,IAAM,EAAY,GAAiB,CAAG,EACtC,MAAQ,IAAM,CACb,GAAI,CAAC,EAAW,OAChB,IAAM,EAAQ,EACR,EAAQ,EAAI,MACZ,EAAU,EAAM,OAAO,QACvB,EAAW,EAAM,oBACnB,EAAE,EAAM,QAAQ,0BAA4B,IAAS,IAAa,MAAQ,GAAsB,CAAG,IAAM,EAAM,QAAQ,2BAA2B,CAAC,GAAK,MAAW,CAAC,IAAe,EAAK,EAAU,EAAS,CAAI,IAAG,GAAmB,EAAK,EAAS,CAAI,EAC3P,EAAM,mBAAqB,EAAI,EAChC,CACD,CAYA,SAAS,IAAe,EAAK,EAAU,EAAO,EAAM,CACnD,IAAM,EAAkB,GAAM,gBAAkB,GAC1C,EAAQ,EAAI,MACZ,EAAO,EAAM,sBAAsB,EACnC,EAAY,EAAM,wBAAwB,EAAE,SAAS,IAAa,EAAM,gBAAgB,EAAE,SAAS,GACzG,GAAI,CAAC,EAAW,MAAO,GACvB,IAAM,EAAc,EAAU,gBAAgB,EACxC,EAAW,EAAI,gBAAgB,EAC/B,EAAgB,EAAK,GACrB,EAAa,EAAK,GACxB,GAAI,EAAc,GAAK,EAAW,GAAK,GAAe,EAAK,QAAU,GAAY,EAAK,QAAU,GAAe,KAAO,EAAU,IAAM,GAAY,KAAO,EAAI,IAAM,CAAC,GAAsB,CAAS,GAAK,CAAC,GAAsB,CAAG,EAAG,MAAO,GAC5O,IAAM,EAAQ,KAAK,IAAI,EAAa,CAAQ,EACtC,EAAM,KAAK,IAAI,EAAa,CAAQ,EAW1C,OAVA,GAAsB,EAAQ,GAAQ,CACrC,IAAM,EAAe,OAAO,OAAO,GAAc,EAAG,CAAG,EACvD,IAAK,IAAI,EAAQ,EAAO,GAAS,EAAK,IAAS,CAC9C,IAAM,EAAW,EAAK,GAClB,CAAC,GAAiB,CAAQ,GAAK,CAAC,GAAsB,CAAQ,IAClE,GAAoB,EAAc,EAAS,GAAI,EAAO,EAAiB,CAAK,EACxE,CAAC,GAAS,GAAM,iBAAiB,GAAoB,EAAc,CAAQ,EAChF,CACA,OAAO,CACR,CAAC,EACM,EACR,CACA,SAAS,GAAoB,EAAc,EAAO,EAAO,EAAiB,EAAO,EAA4B,CAC5G,IAAM,EAAM,EAAM,OAAO,EAAO,EAAI,EAChC,GACE,GAAsB,CAAG,GAAG,OAAO,KAAK,CAAY,EAAE,QAAS,GAAQ,OAAO,EAAa,EAAI,EAChG,GAAiB,CAAG,IAAG,EAAa,GAAS,MACvC,CAAC,GAA8B,GAAiB,CAAG,IAAG,OAAO,EAAa,GACjF,GAAmB,EAAI,QAAQ,QAAU,GAAwB,CAAG,GAAG,EAAI,QAAQ,QAAS,GAAM,GAAoB,EAAc,EAAE,GAAI,EAAO,EAAiB,EAAO,CAA0B,CAAC,CACzM,CASA,SAAS,GAA2B,EAAK,EAAc,CACtD,GAAI,CAAC,GAAiB,CAAG,EAAG,MAAO,GACnC,IAAM,EAAQ,EAAI,MAClB,GAAI,EAAM,QAAQ,wBAA0B,GAAM,MAAO,GACzD,IAAM,EAAW,EAAI,SACrB,GAAI,IAAa,IAAK,GAAG,MAAO,GAChC,IAAM,EAAS,EAAa,IAAI,CAAQ,EACxC,GAAI,IAAW,IAAK,GAAG,OAAO,EAC9B,IAAM,EAAW,EAAM,gBAAgB,EAAE,SACnC,EAAU,CAAC,EACb,EAAa,GACb,EAAY,EAChB,KAAO,IAAc,IAAK,IAAG,CAC5B,IAAM,EAAQ,EAAa,IAAI,CAAS,EACxC,GAAI,IAAU,IAAK,GAAG,CACrB,EAAa,EACb,KACD,CACA,EAAQ,KAAK,CAAS,EACtB,IAAM,EAAS,EAAS,IAAc,EAAM,OAAO,EAAW,EAAI,EAClE,GAAI,CAAC,GAAwB,CAAM,EAAG,CACrC,EAAa,GACb,KACD,CACA,EAAY,EAAO,QACpB,CAEA,OADA,EAAQ,QAAS,GAAO,EAAa,IAAI,EAAI,CAAU,CAAC,EACjD,CACR,CACA,SAAS,GAAoB,EAAc,EAAK,CAC/C,IAAM,EAAW,EAAI,MAAM,gBAAgB,EAAE,SACzC,EAAW,EAAI,SACnB,KAAO,IAAa,IAAK,IACxB,OAAO,EAAa,GACpB,GAAY,EAAS,IAAa,EAAI,MAAM,OAAO,EAAU,EAAI,GAAG,QAEtE,CACA,SAAS,GAAsB,EAAM,EAAc,EAAkB,EAAkB,CACtF,IAAM,EAAS,CAAC,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAK,GACX,EAAa,GAAc,EAAK,CAAY,EAKlD,GAJI,IACH,EAAiB,KAAK,CAAG,EACzB,EAAiB,EAAI,IAAM,GAExB,EAAI,QAAQ,OAAQ,CACvB,IAAM,EAAa,GAAsB,EAAI,QAAS,EAAc,EAAkB,CAAgB,EACtG,GAAI,EAAY,CACf,IAAM,EAAS,OAAO,OAAO,OAAO,eAAe,CAAG,CAAC,EACvD,IAAmC,EAAQ,CAAG,EAC9C,EAAO,QAAU,EACjB,EAAO,KAAK,CAAM,CACnB,CACD,MAAW,GAAY,EAAO,KAAK,CAAG,CACvC,CACA,OAAO,CACR,CAYA,SAAS,GAAa,EAAU,EAAO,CACtC,IAAM,EAAsB,CAAC,EACvB,EAAsB,GAAc,EACpC,EAAe,EAAM,MAAM,cAAc,IAAI,GAAK,CAAC,EACzD,MAAO,CACN,KAAM,GAAsB,EAAS,KAAM,EAAc,EAAqB,CAAmB,EACjG,SAAU,EACV,SAAU,CACX,CACD,CASA,SAAS,GAAc,EAAK,EAAc,CACzC,MAAO,CAAC,EAAE,GAAO,EAAc,EAAI,EAAE,GAAK,EAAa,EAAI,IAC5D,CAWA,SAAS,GAAiB,EAAK,CAC9B,GAAI,CAAC,EAAI,QAAQ,OAAQ,MAAO,GAChC,IAAM,EAAe,EAAI,MAAM,MAAM,cAAc,IAAI,GAAK,CAAC,EACzD,EAAe,GACf,EAAsB,GACtB,EAAiB,GACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,QAAQ,OAAQ,IAAK,CAC5C,IAAM,EAAS,EAAI,QAAQ,GAC3B,GAAI,GAAgB,CAAC,EAAqB,MAM1C,GALI,GAAiB,CAAM,IAC1B,EAAiB,GACb,GAAc,EAAQ,CAAY,EAAG,EAAe,GACnD,EAAsB,IAExB,EAAO,QAAQ,OAAQ,CAC1B,IAAM,EAAyB,GAAiB,CAAM,EAClD,IAA2B,OAC9B,EAAe,GACf,EAAiB,IACP,IAA2B,QACrC,EAAe,GACf,EAAsB,GACtB,EAAiB,IACX,EAAsB,EAC9B,CACD,CAEA,OADK,EACE,EAAsB,MAAQ,EAAe,OAAS,GADjC,EAE7B,CC3lBA,IAAM,IAAsB,CAC3B,sBAAwB,GAAU,CACjC,EAAM,mBAAqB,IAC5B,EACA,uBAAyB,GAAU,CAClC,EAAM,mBAAqB,IAC5B,EACA,gBAAkB,IACV,CACN,aAAc,IAA4B,EAC1C,GAAG,CACJ,GAED,uBAAyB,IACjB,CACN,qBAAsB,GAAiB,eAAgB,CAAK,EAC5D,mBAAoB,GACpB,wBAAyB,GACzB,wBAAyB,GACzB,sBAAuB,GACvB,yBAA2B,GAAU,CACpC,IAAM,EAAa,EACnB,MAAO,GAAQ,EAAW,UAAY,EAAW,aAAa,SAC/D,CACD,GAED,oBAAqB,EAAW,IAAU,CACzC,GAAoB,sBAAuB,EAAW,EAAO,CAC5D,mBAAoB,CAAE,IAAK,EAAK,EAAO,IAAS,GAAmB,EAAK,EAAO,CAAI,CAAE,EACrF,kBAAmB,CAAE,GAAK,GAAQ,GAAkB,CAAG,CAAE,EACzD,sBAAuB,CACtB,GAAK,GAAQ,GAAsB,CAAG,EACtC,SAAW,GAAQ,CAClB,EAAI,QACJ,EAAI,MAAM,MAAM,cAAc,IAAI,EAClC,EAAI,MAAM,QAAQ,kBACnB,CACD,EACA,4BAA6B,CAC5B,GAAK,GAAQ,IAA4B,CAAG,EAC5C,SAAW,GAAQ,CAClB,EAAI,QACJ,EAAI,MAAM,MAAM,cAAc,IAAI,EAClC,EAAI,MAAM,QAAQ,kBACnB,CACD,EACA,iBAAkB,CAAE,GAAK,GAAQ,GAAiB,CAAG,CAAE,EACvD,wBAAyB,CAAE,GAAK,GAAQ,GAAwB,CAAG,CAAE,EACrE,sBAAuB,CAAE,GAAK,GAAQ,GAAsB,CAAG,CAAE,EACjE,6BAA8B,CAAE,IAAK,EAAK,IAAS,IAA6B,EAAK,CAAI,CAAE,CAC5F,CAAC,CACF,EACA,mBAAqB,GAAU,CAC9B,GAAgB,sBAAuB,EAAO,CAC7C,sBAAuB,CAAE,GAAK,GAAY,GAAsB,EAAO,CAAO,CAAE,EAChF,wBAAyB,CAAE,GAAK,GAAiB,IAAwB,EAAO,CAAY,CAAE,EAC9F,4BAA6B,CAAE,IAAK,EAAO,IAAS,GAA4B,EAAO,EAAO,CAAI,CAAE,EACpG,gCAAiC,CAAE,IAAK,EAAO,IAAS,GAAgC,EAAO,EAAO,CAAI,CAAE,EAC5G,6BAA8B,CAAE,OAAU,IAA6B,CAAK,CAAE,EAC9E,0BAA2B,CAC1B,OAAU,IAA0B,CAAK,EACzC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,gBAAgB,CAAC,CAC1E,EACA,kCAAmC,CAClC,OAAU,IAAkC,CAAK,EACjD,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,oBAAoB,CAAC,CAC9E,EACA,iCAAkC,CACjC,OAAU,IAAiC,CAAK,EAChD,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,EAAG,EAAM,kBAAkB,CAAC,CAC5E,EACA,wBAAyB,CACxB,OAAU,GAAwB,CAAK,EACvC,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,CAAC,CACjD,EACA,2BAA4B,CAC3B,OAAU,GAA2B,CAAK,EAC1C,aAAgB,CACf,EAAM,MAAM,cAAc,IAAI,EAC9B,EAAM,oBAAoB,EAC1B,EAAM,QAAQ,mBACd,EAAM,QAAQ,qBACf,CACD,EACA,+BAAgC,CAC/B,OAAU,GAA+B,CAAK,EAC9C,aAAgB,CACf,EAAM,MAAM,cAAc,IAAI,EAC9B,EAAM,qBAAqB,EAC3B,EAAM,QAAQ,mBACd,EAAM,QAAQ,qBACf,CACD,EACA,4BAA6B,CAC5B,OAAU,GAA4B,CAAK,EAC3C,aAAgB,CAAC,EAAM,MAAM,cAAc,IAAI,CAAC,CACjD,EACA,gCAAiC,CAChC,OAAU,IAAgC,CAAK,EAC/C,aAAgB,CACf,EAAM,MAAM,cAAc,IAAI,EAC9B,EAAM,qBAAqB,EAC3B,EAAM,QAAQ,kBACf,CACD,EACA,sCAAuC,CAAE,OAAU,IAAsC,CAAK,CAAE,EAChG,0CAA2C,CAAE,OAAU,IAA0C,CAAK,CAAE,CACzG,CAAC,CACF,CACD,EC7GM,IAAoB,CACzB,gBAAgB,EAAc,CAC7B,MAAO,CACN,QAAS,IAAuB,EAChC,GAAG,CACJ,CACD,EACA,qBAAsB,CACrB,MAAO,CACN,OAAQ,OACR,cAAe,CAChB,CACD,EACA,uBAAuB,EAAO,CAC7B,MAAO,CACN,iBAAkB,GAClB,gBAAiB,GAAiB,UAAW,CAAK,EAClD,iBAAmB,GACX,EAAE,QAEX,CACD,EACA,sBAAsB,EAAW,EAAO,CACvC,GAAoB,oBAAqB,EAAW,EAAO,CAC1D,qBAAsB,CAAE,GAAK,GAAW,GAAqB,CAAM,CAAE,EACrE,sBAAuB,CAAE,GAAK,GAAW,GAAsB,CAAM,CAAE,EACvE,iBAAkB,CAAE,GAAK,GAAW,IAAiB,CAAM,CAAE,EAC7D,qBAAsB,CAAE,IAAK,EAAQ,EAAM,IAAU,GAAqB,EAAQ,EAAM,CAAK,CAAE,EAC/F,uBAAwB,CAAE,GAAK,GAAW,GAAuB,CAAM,CAAE,EACzE,2BAA4B,CAAE,IAAK,EAAQ,IAAU,GAA2B,EAAQ,CAAK,CAAE,EAC/F,kBAAmB,CAAE,GAAK,GAAW,GAAkB,CAAM,CAAE,EAC/D,uBAAwB,CAAE,GAAK,GAAW,GAAuB,CAAM,CAAE,EACzE,mBAAoB,CAAE,GAAK,GAAW,GAAmB,CAAM,CAAE,EACjE,oBAAqB,CAAE,GAAK,GAAW,IAAoB,CAAM,CAAE,EACnE,oBAAqB,CAAE,GAAK,GAAW,IAAoB,CAAM,CAAE,EACnE,+BAAgC,CAAE,GAAK,GAAW,IAA+B,CAAM,CAAE,CAC1F,CAAC,CACF,EACA,mBAAmB,EAAO,CACzB,GAAgB,oBAAqB,EAAO,CAC3C,iBAAkB,CAAE,GAAK,GAAY,GAAiB,EAAO,CAAO,CAAE,EACtE,mBAAoB,CAAE,GAAK,GAAiB,GAAmB,EAAO,CAAY,CAAE,CACrF,CAAC,CACF,CACD,ECnDA,SAAgB,GAAa,GAAG,EAAS,CACrC,IAAM,EAAS,CAAC,EAChB,IAAK,IAAI,KAAU,EAGf,GAFI,OAAO,GAAW,aAClB,EAAS,EAAO,GAChB,EAAQ,CACR,IAAM,EAAc,OAAO,0BAA0B,CAAM,EAC3D,IAAK,IAAM,KAAO,EACV,KAAO,GAEX,OAAO,eAAe,EAAQ,EAAK,CAC/B,WAAY,GACZ,KAAM,CACF,IAAK,IAAI,EAAI,EAAQ,OAAS,EAAG,GAAK,EAAG,IAAK,CAC1C,IAAI,EAAG,EAAI,EAAQ,GAKnB,GAJI,OAAO,GAAM,aACb,EAAI,EAAE,GAEV,GAAK,GAAK,CAAC,GAAG,GACV,IAAM,OACN,OAAO,CACf,CACJ,CACJ,CAAC,CAET,CAEJ,OAAO,CACX,CACA,SAAgB,GAAU,GAAG,EAAS,CAClC,IAAM,EAAS,CAAC,EAChB,IAAK,IAAI,KAAU,EACf,GAAI,OAAO,GAAW,aAClB,EAAS,EAAO,GACf,EAEL,IAAK,IAAM,KAAO,QAAQ,QAAQ,CAAM,EAAG,CACvC,IAAM,EAAQ,EAAO,GACjB,IAAU,SACV,EAAO,GAAO,EAEtB,CAEJ,OAAO,CACX,KC1CM,IAAwB,8BACrB,IAAmB,EAAgB,eAC1B,GAAmB,WAC3B,EACC,GAAU,EAAe,OAAO,CAAK,CAChD,UACS,GAAgB,EAAU,EAAgB,KACzC,EAAW,IAAmB,CAAc,SAOzC,YANQ,QAAsB,CACnC,OAAc,KACJ,EAAQ,EAAQ,EACtB,OAAc,EAAS,CAAK,EAChC,CAAC,CACL,CACS,CAAW,CACxB,UACS,IAAuB,EAAc,KACtC,EAAQ,EAAM,GAAC,CAAY,UAE3B,IAAM,GAAY,GACd,EAAK,OACM,GAAY,WACb,EAAO,EAAC,CAAK,GACb,EAAO,GACrB,EACA,QAAG,EAAQ,CAAK,EAChB,UAAa,GACF,OAAe,EAAO,CAAK,EAAE,CAAc,EAG9D,UAUgB,KAAmB,QAE3B,mBAAoB,GACpB,kBAAmB,GACnB,oBAAuB,OACT,MAAM,4DAA4D,CAChF,EACA,YAAe,OACD,MAAM,4DAA4D,CAChF,EACA,SAAW,GAAO,mBAAqB,EAAE,GACzC,oBAAqB,EAAI,IAAa,KAC5B,EAAY,OAAiB,EAAE,GACjC,QAAS,GAAU,OAAO,GAE1B,EAAU,EAAO,CAAC,EACtB,OAAc,KACJ,EAAe,EAAU,cAAgB,GAC3C,EAAO,EAAP,CAAO,EAAI,CAAC,CAChB,CAAC,YACY,EAAa,YAAW,CACzC,CAAC,MACK,EAAK,SACP,CAAO,EACA,EAAU,IAAG,EACvB,SAEG,QAAW,KAID,EAAe,EAAU,IAAG,WAClC,CAAK,EACE,CACX,EACA,UAAa,GACF,OAAe,EAAO,CAAK,EAAE,CAAc,EAG9D,EACA,oBAAqB,EAAc,IAC3B,GAAU,YAAc,IACjB,IAAuB,CAAY,EAEvC,GAAW,EAAY,CAC1B,QAAS,GAAU,OAAO,GAGzB,WACT,UAER,UC5DgB,IAAY,EAAc,KAEhC,EAAgB,GAAa,EAAY,CAC3C,SAAQ,CACJ,sBAAuB,IAAgB,KACpC,EAAa,YAUlB,EAAQ,IANU,IACpB,cAAe,EAAgB,IACpB,GAAU,EAAgB,CAAU,CAC/C,EACD,CAE0B,CAAe,SAQ5C,OAAkB,KAGR,EAAc,GAAU,CAAa,EACrC,EAAQ,EAAY,SACtB,UACW,KAAO,EACT,EAAM,GAGnB,OAAc,CACV,EAAM,WAAY,GACP,GAAU,EAAM,CAAW,CACrC,CACL,CAAC,CACL,CAAC,EACM,CACX,KC9Da,GAAsB,iBACtB,GAAoB,eAE3B,IAAW,KACf,yBACA,wBACA,4BACA,wBACA,iCAec,IAAkB,EAAwB,KAClD,EAAQ,KACZ,iBACI,SAAU,QACL,EAAQ,UAAU,IAAK,KAC5B,GAAI,EAAO,GACX,WAAa,GAAiB,EAAI,EAAO,IACzC,cAAe,EAAO,WAAa,GACnC,cAAe,EAAO,SAAW,GACjC,QAAS,EAAO,UAAY,GAC5B,QAAS,EAAO,UAAY,OAEhC,MACI,MAAO,QACF,EAAQ,MACjB,EACA,SAAU,EAAQ,SAClB,mBAAqB,GAAQ,EAAQ,aAAa,EAAI,SAAU,EAAI,KAAK,EACzE,wBAAyB,GACzB,cAAe,GACf,WACM,eAAgB,QACX,EAAQ,SACjB,MACI,cAAe,QACV,EAAQ,QACjB,MACI,kBAAmB,KACf,MAAc,IAAI,EAAQ,qBAEzB,OAAO,YACZ,EAAQ,UAAU,IAAK,IAAY,EAAO,GAAI,EAAQ,IAAI,EAAO,EAAE,IAEvE,MACI,cAAe,QACV,OAAO,YAAY,MAAM,KAAK,EAAQ,YAAc,IAAQ,EAAI,EAAa,GACtF,MACI,SAAU,KACN,EAAO,EAAQ,cAEd,IAAU,GAAI,EAAK,SAAU,KAAM,EAAK,MAAQ,WACzD,gBAKE,MAAO,QACF,EAAM,cAAc,KAAK,IAAK,KACnC,GAAI,EAAI,GACR,KAAM,EAAI,SACV,MAAO,EAAI,QAEf,EACA,YAAY,EAAoB,KACxB,EAAS,EAAM,UAAU,CAAE,MAE5B,QAAkB,MAAM,yBAA2B,CAAE,MAEpD,EAAM,EAAO,cACb,EAAQ,EAAO,UACf,WAAgB,iBAAqB,iBAAqB,cAE3D,EAIE,kCAAuC,KAF/B,IAAQ,QAAU,EAAO,SAAS,OAAO,EAAI,EAAO,SAAS,KAAK,EAE5B,eAJpC,CAKnB,EACA,SAAS,EAAY,QACZ,EAAM,UAAU,CAAE,GAAG,eAAiB,EAC/C,EAEJ,CCpGA,SAAgB,IACd,EACA,EACA,EACwB,CACxB,OAAO,OAAO,YACZ,EAAQ,IAAK,GAAW,CACtB,IAAM,EAAW,GAAa,EAAO,KAAK,EACtC,EAAQ,KAAK,IAAI,GAAoB,CAAM,EAAG,EAAQ,EAAO,KAAK,EAAI,EAAE,EAE5E,GAAI,IAAa,KAAM,EAAQ,OAE7B,IAAK,IAAM,KAAO,EAAK,MAAM,EAAG,EAAE,EAAG,CACnC,IAAM,EAAQ,EAAO,aAAe,EAAO,aAAa,CAAG,EAAI,EAAI,EAAO,KAEtE,OAAO,GAAU,UAAY,OAAO,GAAU,YAChD,EAAQ,KAAK,IAAI,EAAO,EAAQ,OAAO,CAAK,EAAE,MAAM,EAAG,GAAG,CAAC,EAAI,EAAE,EAErE,CAGF,MAAO,CAAC,EAAO,GAAI,GAAM,KAAK,KAAK,CAAK,EAAG,EAAO,UAAY,GAAI,EAAO,UAAY,IAAI,CAAC,CAC5F,CAAC,CACH,CACF,CAEA,SAAgB,IAAoB,EAUjC,CACD,GAAM,CAAE,UAAS,SAAQ,iBAAgB,QAAS,EAC5C,EAAM,EAAQ,IAAK,GAAW,EAAO,EAAE,EACvC,EAAQ,IAAI,IAChB,EAAQ,OAAQ,GAAW,EAAO,SAAW,EAAK,EAAE,IAAK,GAAW,EAAO,EAAE,CAC/E,EACM,EAAQ,CAAC,GAAG,IAAI,IAAI,EAAM,KAAK,MAAM,OAAQ,GAAO,EAAM,IAAI,CAAE,CAAC,CAAC,CAAC,EACnE,EAAM,CAAC,GAAG,IAAI,IAAI,EAAM,KAAK,IAAI,OAAQ,GAAO,EAAM,IAAI,CAAE,GAAK,CAAC,EAAM,SAAS,CAAE,CAAC,CAAC,CAAC,EACtF,EAAW,EAAM,aAAe,EAAM,eACtC,EAAkB,CAAC,GAAG,EAAO,GAAG,CAAG,EAAE,QAAQ,EAAK,IAAO,EAAM,EAAO,GAAK,CAAC,EAC5E,EAAU,EAAiB,GAAK,EAAW,EAAkB,KAAO,EACpE,EAAW,EAAU,EAAQ,CAAC,EAC9B,EAAS,EAAU,EAAM,CAAC,EAC1B,EAAS,IAAI,IAAI,CAAC,GAAG,EAAU,GAAG,CAAM,CAAC,EACzC,EAAS,EAAI,OAAQ,GAAO,CAAC,EAAO,IAAI,CAAE,CAAC,EAC3C,EAAa,EAAW,CAAC,GAAG,CAAM,EAAE,QAAQ,EAAK,IAAO,EAAM,EAAO,GAAK,CAAC,EAC3E,EAAY,KAAK,IAAI,EAAG,EAAiB,CAAU,EACnD,EAAa,EAAI,QAAQ,EAAK,IAAO,EAAM,EAAO,GAAK,CAAQ,EAC/D,EACJ,EAAiB,EAAI,EAAa,EAAiB,EAAO,OAAS,EAAM,sBACrE,EAAO,GAAyB,CACpC,GAAI,IAAS,UAAY,CAAC,EAAU,OAAO,EAAW,OAEtD,GAAI,GAAkB,EAAG,OAAO,KAAK,IAAI,EAAW,OAAQ,EAAM,qBAAqB,EAEvF,IAAI,EAAO,EACP,EAAQ,EACZ,IAAK,IAAM,KAAM,EAAY,CAC3B,GAAI,EAAQ,GAAK,EAAO,EAAO,GAAM,EAAW,MAEhD,GAAQ,EAAO,GACf,GACF,CAEA,OAAO,CACT,EACM,EAAY,KAAK,IAAI,EAAG,EAAO,OAAS,EAAI,CAAC,GAAG,CAAM,EAAE,QAAQ,CAAC,CAAC,EAClE,EAAS,IAAS,SAAW,EAAI,GAAM,EAAM,OAAQ,EAAG,CAAS,EACjE,EAAY,EAAO,MAAM,EAAQ,EAAS,EAAI,EAAO,MAAM,CAAM,CAAC,CAAC,EACnE,EAAa,CAAC,GAAG,EAAU,GAAG,EAAW,GAAG,CAAM,EAClD,EAAiB,CAAE,GAAG,CAAO,EAC7B,EAAQ,EAAiB,EAAW,QAAQ,EAAK,IAAO,EAAM,EAAO,GAAK,CAAQ,EAExF,GAAI,IAAS,SAAW,EAAQ,GAAK,EAAU,OAC7C,IAAK,IAAM,KAAM,EAAW,EAAe,IAAO,EAAQ,EAAU,OAGtE,MAAO,CACL,aACA,OAAQ,EACR,aACA,WACA,SACA,YACA,QAAS,CACP,MAAO,EAAU,CAAC,GAAI,EAAM,eAAiB,CAAC,EAAmB,EAAI,CAAC,EAAI,GAAG,CAAQ,EAAI,CAAC,EAC1F,IAAK,EAAU,CAAC,GAAG,EAAQ,GAAI,EAAM,aAAe,CAAC,EAAiB,EAAI,CAAC,CAAE,EAAI,CAAC,CACpF,CACF,CACF,CCrGA,SAAS,IAAkB,EAAM,CAC/B,OAAO,OAAO,GAAS,SAAW,EAAK,IAAM,CAC/C,CACA,SAAS,IAA2B,EAAO,EAAM,CAC/C,IAAM,EAAQ,EAAM,OACpB,OAAO,IAAI,MAAM,EAAO,CACtB,IAAI,EAAQ,EAAM,EAAU,CAC1B,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAI,EAAK,WAAW,CAAC,EAC3B,GAAI,GAAK,IAAM,GAAK,GAAI,CACtB,IAAM,EAAI,CAAC,EACX,GAAI,OAAO,UAAU,CAAC,GAAK,GAAK,GAAK,EAAI,EAAO,CAC9C,IAAI,EAAI,EAAO,GACf,GAAI,OAAO,GAAM,SAAU,CACzB,IAAM,EAAI,EAAK,EAAI,GACnB,EAAI,EAAO,GAAK,CACd,MAAO,EACP,IAAK,EACL,MAAO,EACP,KAAM,EAAK,EAAI,EAAI,GACnB,IAAK,EAAI,EAAK,EAAI,EAAI,GACtB,KAAM,CACR,CACF,CACA,OAAO,CACT,CACF,CACA,GAAI,IAAS,SAAU,OAAO,CAChC,CACA,OAAO,QAAQ,IAAI,EAAQ,EAAM,CAAQ,CAC3C,CACF,CAAC,CACH,CChCA,SAAS,GAAK,EAAS,EAAI,EAAM,CAC/B,IAAI,EAAO,EAAK,aAAe,CAAC,EAC5B,EACA,EAAY,GAChB,SAAS,GAAmB,CAK1B,IAAM,EAAU,EAAQ,EAoCxB,OAnCoB,EAAQ,SAAW,EAAK,QAAU,EAAQ,MAAM,EAAK,IAAU,EAAK,KAAW,CAAG,GAItG,EAAO,EAGP,EAAS,EAAG,GAAG,CAAO,EAwBjB,GAA6B,UAAa,EAAE,GAAa,EAAK,sBACjE,EAAK,SAAS,CAAM,EAEtB,EAAY,GACL,GAjCE,CAkCX,CAIA,MAHA,GAAiB,WAAc,GAAY,CACzC,EAAO,CACT,EACO,CACT,CACA,SAAS,GAAa,EAAO,EAAK,CAChC,GAAI,IAAU,IAAK,GACjB,MAAU,MAAM,uBAAuB,EAAM,KAAK,IAAQ,IAAI,EAE9D,OAAO,CAEX,CACA,IAAM,IAAe,EAAG,IAAM,KAAK,IAAI,EAAI,CAAC,EAAI,KAC1C,KAAY,EAAc,EAAI,IAAO,CACzC,IAAI,EACJ,OAAO,OAAO,OACZ,SAAS,GAAG,EAAM,CAChB,EAAa,aAAa,CAAS,EACnC,EAAY,EAAa,eAAiB,EAAG,MAAM,KAAM,CAAI,EAAG,CAAE,CACpE,EACA,CAIE,WAAc,CACZ,EAAa,aAAa,CAAS,CACrC,CACF,CACF,CACF,EC1EI,GACE,OAAoB,CACxB,GAAI,KAAiB,IAAK,GAAG,OAAO,GACpC,GAAI,OAAO,UAAc,IAAa,MAAO,IAAe,GAC5D,GAAI,iBAAiB,KAAK,UAAU,SAAS,EAAG,MAAO,IAAe,GACtE,IAAM,EAAM,UAAU,eACtB,MAAO,IAAe,UAAU,WAAa,YAAc,IAAQ,IAAK,IAAK,EAAM,CACrF,EAIM,GAAW,GAAY,CAC3B,GAAM,CAAE,cAAa,gBAAiB,EACtC,MAAO,CAAE,MAAO,EAAa,OAAQ,CAAa,CACpD,EACM,IAAuB,GAAU,EACjC,GAAyB,GAAU,CACvC,IAAM,EAAQ,KAAK,IAAI,EAAM,WAAa,EAAM,SAAU,CAAC,EAErD,EADM,KAAK,IAAI,EAAM,SAAW,EAAM,SAAU,EAAM,MAAQ,CACtD,EAAI,EAAQ,EACpB,EAAU,MAAM,CAAG,EACzB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACvB,EAAI,GAAK,EAAQ,EAEnB,OAAO,CACT,EACM,KAAsB,EAAU,IAAO,CAC3C,IAAM,EAAU,EAAS,cACzB,GAAI,CAAC,EACH,OAEF,IAAM,EAAe,EAAS,aAC9B,GAAI,CAAC,EACH,OAEF,IAAM,EAAW,GAAS,CACxB,GAAM,CAAE,QAAO,UAAW,EAC1B,EAAG,CAAE,MAAO,KAAK,MAAM,CAAK,EAAG,OAAQ,KAAK,MAAM,CAAM,CAAE,CAAC,CAC7D,EAEA,GADA,EAAQ,GAAQ,CAAO,CAAC,EACpB,CAAC,EAAa,eAChB,UAAa,CACb,EAEF,IAAM,EAAW,IAAI,EAAa,eAAgB,GAAY,CAC5D,IAAM,MAAY,CAChB,IAAM,EAAQ,EAAQ,GACtB,GAAI,GAA+B,cAAe,CAChD,IAAM,EAAM,EAAM,cAAc,GAChC,GAAI,EAAK,CACP,EAAQ,CAAE,MAAO,EAAI,WAAY,OAAQ,EAAI,SAAU,CAAC,EACxD,MACF,CACF,CACA,EAAQ,GAAQ,CAAO,CAAC,CAC1B,EACA,EAAS,QAAQ,oCAAsC,sBAAsB,CAAG,EAAI,EAAI,CAC1F,CAAC,EAED,OADA,EAAS,QAAQ,EAAS,CAAE,IAAK,YAAa,CAAC,MAClC,CACX,EAAS,UAAU,CAAO,CAC5B,CACF,EACM,GAA0B,CAC9B,QAAS,EACX,EACM,KAAqB,EAAU,IAAO,CAC1C,IAAM,EAAU,EAAS,cACzB,GAAI,CAAC,EACH,OAEF,IAAM,MAAgB,CACpB,EAAG,CAAE,MAAO,EAAQ,WAAY,OAAQ,EAAQ,WAAY,CAAC,CAC/D,EAGA,OAFA,EAAQ,EACR,EAAQ,iBAAiB,SAAU,EAAS,EAAuB,MACtD,CACX,EAAQ,oBAAoB,SAAU,CAAO,CAC/C,CACF,EACM,IAAoB,OAAO,OAAU,IAAc,GAAO,gBAAiB,OAC3E,IAAiB,EAAU,EAAI,IAAe,CAClD,IAAM,EAAU,EAAS,cACzB,GAAI,CAAC,EACH,OAEF,IAAM,EAAe,EAAS,aAC9B,GAAI,CAAC,EACH,OAEF,IAAM,EAAyB,EAAS,QAAQ,mBAAqB,IACjE,EAAS,EACP,EAAW,EAAyB,KAAO,IAC/C,MACM,EAAG,EAAW,CAAO,EAAG,EAAK,EACnC,EAAS,QAAQ,qBACnB,EACM,EAAiB,OAAsB,CAC3C,EAAS,EAAW,CAAO,EAC3B,IAAqC,EACrC,EAAG,EAAQ,CAAW,CACxB,EACM,EAAU,EAAc,EAAI,EAC5B,EAAa,EAAc,EAAK,EAKtC,OAJA,EAAQ,iBAAiB,SAAU,EAAS,EAAuB,EAC/D,GACF,EAAQ,iBAAiB,YAAa,EAAY,EAAuB,MAE9D,CACX,EAAQ,oBAAoB,SAAU,CAAO,EACzC,GACF,EAAQ,oBAAoB,YAAa,CAAU,EAErD,GAAqC,OAAO,CAC9C,CACF,EACM,KAAwB,EAAU,IAAO,GAAc,EAAU,EAAK,GAAO,CACjF,GAAM,CAAE,aAAY,SAAU,EAAS,QACvC,OAAO,EAAa,EAAG,YAAc,GAAS,IAAM,GAAK,EAAG,SAC9D,CAAC,EACK,KAAuB,EAAU,IAAO,GAC5C,EACA,EACC,GAAQ,EAAS,QAAQ,WAAa,EAAI,QAAU,EAAI,OAC3D,EACM,KAAkB,EAAS,EAAO,IAAa,CACnD,GAAI,EAAS,QAAQ,sBAAuB,CAC1C,IAAM,EAAQ,EAAS,iBAAiB,CAAO,EACzC,EAAM,EAAS,QAAQ,WAAW,CAAK,EAC7C,OAAO,EAAS,cAAc,IAAI,CAAG,GAAK,EAAS,QAAQ,aAAa,CAAK,CAC/E,CACA,GAAI,GAA+B,cAAe,CAChD,IAAM,EAAM,EAAM,cAAc,GAChC,GAAI,EAIF,OAHa,KAAK,MAChB,EAAI,EAAS,QAAQ,WAAa,aAAe,YAEzC,CAEd,CACA,GAAI,CAAC,EAAO,CACV,IAAM,EAAQ,EAAS,iBAAiB,CAAO,EACzC,EAAM,EAAS,QAAQ,WAAW,CAAK,EACvC,EAAa,EAAS,cAAc,IAAI,CAAG,EACjD,GAAI,IAAe,IAAK,GACtB,OAAO,CAEX,CACA,OAAO,EAAQ,EAAS,QAAQ,WAAa,cAAgB,eAC/D,EACM,IAAyB,EAAQ,CACrC,cAAc,EACd,YACC,IAAa,CACd,IAAI,EAAI,GACP,GAAM,EAAK,EAAS,gBAAqC,WAAa,MAAgB,EAAG,KAAK,EAAI,EAChG,EAAS,QAAQ,WAAa,OAAS,OAAQ,EAAS,EACzD,UACF,CAAC,CACH,EACM,IAAe,GACf,IAAgB,GACtB,SAAS,IAAiB,EAAW,EAAW,EAAgB,EAAY,CAC1E,GAAI,IAAc,EAAG,MAAO,GAC5B,IAAM,EAAW,EAAW,CAAC,EACvB,EAA8B,IAAI,IACpC,EAAe,EACnB,KAAO,EAAe,GAAW,CAC/B,IAAM,EAAM,EAAe,CAAY,EACvC,GAAI,IAAQ,EAAU,MACtB,EAAY,IAAI,CAAG,EACnB,GACF,CACA,IAAM,EAAgB,EAAY,EAClC,GAAI,IAAkB,GAAK,GAAiB,EAAW,MAAO,GAC9D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,IACjC,GAAI,EAAW,CAAC,IAAM,EAAe,EAAe,CAAC,EAAG,MAAO,GAEjE,IAAK,IAAI,EAAI,EAAe,EAAI,EAAW,IACzC,GAAI,EAAY,IAAI,EAAW,CAAC,CAAC,EAAG,MAAO,GAE7C,MAAO,EACT,CACA,IAAM,IAAN,KAAkB,CAChB,YAAY,EAAM,CAChB,KAAK,OAAS,CAAC,EACf,KAAK,cAAgB,KACrB,KAAK,aAAe,KACpB,KAAK,YAAc,GACnB,KAAK,YAAc,KACnB,KAAK,kBAAoB,CAAC,EAC1B,KAAK,wBAA0B,KAC/B,KAAK,cAAgC,IAAI,IACzC,KAAK,qBAAuB,EAC5B,KAAK,gBAAkC,IAAI,IAC3C,KAAK,WAAa,KAClB,KAAK,UAAY,IAAK,GACtB,KAAK,iBAAmB,GACxB,KAAK,cAAgB,GACrB,KAAK,oBAAsB,KAC3B,KAAK,WAAa,KAClB,KAAK,aAAe,KACpB,KAAK,gBAAkB,KACvB,KAAK,kBAAoB,EACzB,KAAK,uBAAyB,EAC9B,KAAK,aAAe,GACpB,KAAK,mBAAqB,GAC1B,KAAK,oBAAsB,KAC3B,KAAK,sBAAwB,KAC7B,KAAK,mBAAqB,KAC1B,KAAK,cAAgC,IAAI,IACzC,KAAK,QAAY,CACf,IAAQ,EACR,QAAe,EAAW,KAAK,cAAoC,cAAmC,MAA2B,KAAK,CAAE,GAAM,KAAK,IAAI,CACzJ,EACA,KAAK,cAAkC,CACrC,IAAI,EAAM,KACJ,MACA,IAGA,CAAC,KAAK,cAAgB,CAAC,KAAK,aAAa,eACpC,KAEF,EAAM,IAAI,KAAK,aAAa,eAAgB,GAAY,CAC7D,EAAQ,QAAS,GAAU,CACzB,IAAM,MAAY,CAChB,IAAM,EAAO,EAAM,OACb,EAAQ,KAAK,iBAAiB,CAAI,EACxC,GAAI,CAAC,EAAK,YAAa,CACrB,KAAK,SAAS,UAAU,CAAI,EAC5B,IAAK,GAAM,CAAC,EAAU,KAAe,KAAK,cACxC,GAAI,IAAe,EAAM,CACvB,KAAK,cAAc,OAAO,CAAQ,EAClC,KACF,CAEF,MACF,CACK,KAAK,eAAe,CAAK,GAC1B,KAAK,0BAA0B,CAAK,GACtC,KAAK,WACH,EACA,KAAK,QAAQ,eAAe,EAAM,EAAO,IAAI,CAC/C,CAEJ,EACA,KAAK,QAAQ,oCAAsC,sBAAsB,CAAG,EAAI,EAAI,CACtF,CAAC,CACH,CAAC,GAEH,MAAO,CACL,eAAkB,CAChB,IAAI,GACH,EAAK,EAAI,IAAM,MAAgB,EAAG,WAAW,EAC9C,EAAM,IACR,EACA,QAAU,GAEK,EAAI,GAAyB,QAAQ,EAAQ,CAAE,IAAK,YAAa,CAAC,EAEjF,UAAY,GAEG,EAAI,GAAyB,UAAU,CAAM,CAE9D,CACF,GAAG,EACH,KAAK,MAAQ,KACb,KAAK,WAAc,GAAU,CAE3B,IAAM,EAAS,CACb,MAAO,GACP,cAAe,EACf,SAAU,EACV,aAAc,EACd,WAAY,EACZ,mBAAoB,EACpB,iBAAkB,EAClB,WAAY,GACZ,WAAY,IACZ,eAAgB,GAChB,aAAgB,CAChB,EACA,mBACA,YAAa,CAAE,MAAO,EAAG,OAAQ,CAAE,EACnC,aAAc,EACd,IAAK,EACL,eAAgB,aAChB,yBAA0B,CAAC,EAC3B,MAAO,EACP,SAAU,QACV,eAAgB,GAChB,mBAAoB,EACpB,sBAAuB,IACvB,QAAS,GACT,MAAO,GACP,kBAAmB,GACnB,oCAAqC,GACrC,mBAAoB,WACpB,sBAAuB,EACzB,EACA,IAAK,IAAM,KAAO,EAAO,CACvB,IAAM,EAAI,EAAM,GACZ,IAAM,IAAK,KAAG,EAAO,GAAO,EAClC,CACA,IAAM,EAAc,KAAK,QACrB,EAAS,KACT,EAAiB,KACjB,EAAkB,GACtB,GAAI,IAAgB,IAAK,IAAK,EAAY,SAAW,EAAO,SAAW,EAAO,WAAa,OAAS,KAAK,gBAAkB,KAAM,CAC/H,IAAM,EAAY,EAAY,MACxB,EAAY,EAAO,MACnB,EAAe,KAAK,gBAAgB,EACpC,EAAuB,KAAK,yBAA+C,OAAU,EACrF,EAAkB,GAAU,IAAkB,EAAc,EAAM,EAClE,EAAe,EAAY,EAAI,EAAe,CAAC,EAAI,KACnD,EAAc,EAAY,EAAI,EAAe,EAAY,CAAC,EAAI,KAGpE,GAFuB,IAAc,GACO,EAAY,GAAK,EAAY,IAAM,EAAO,WAAW,CAAC,IAAM,GAAgB,EAAO,WAAW,EAAY,CAAC,IAAM,GACtI,CACrB,EAAkB,GAClB,IAAM,EAAO,EAAY,EAAI,KAAK,wBAAwB,KAAK,gBAAgB,CAAC,GAAK,EAAa,GAAK,KACnG,IACF,EAAS,CAAC,EAAK,IAAK,KAAK,gBAAgB,EAAI,EAAK,KAAK,GAEzD,IAAM,EAAW,EAAO,iBAAmB,GAAO,OAAS,EAAO,gBAAkB,KAChF,GAAY,EAAY,GAAK,KAAK,QAAQ,EAAY,kBAAkB,IAAM,IAAc,GAAK,EAAO,WAAW,EAAY,CAAC,IAAM,KACpI,EAAY,GAAa,IAC3B,EACA,EACA,EACA,EAAO,UACT,KACE,EAAiB,EAGvB,CACF,CACA,KAAK,QAAU,EACX,IACF,KAAK,WAAa,EAClB,KAAK,wBAEP,IAAI,EAAiB,GACjB,EAAc,EAClB,GAAI,GAAU,KAAK,eAAiB,KAAM,CACxC,GAAM,CAAC,EAAW,GAAgB,EAC5B,EAAkB,KAAK,gBAAgB,EACvC,CAAE,QAAO,cAAe,KAAK,QAC/B,EAAM,EACV,KAAO,EAAM,GAAS,EAAW,CAAG,IAAM,GACxC,IAEF,GAAI,EAAM,EAAO,CACf,IAAM,EAAa,EAAgB,GACnC,GAAI,EAAY,CACd,IAAM,EAAY,KAAK,IAAI,EAAG,EAAW,MAAQ,CAAY,EACzD,CAAC,GAAkB,IAAc,KAAK,eACxC,EAAc,EAAY,KAAK,aAC/B,KAAK,aAAe,EACpB,EAAiB,GAErB,CACF,CACF,EACI,GAAkB,KACpB,KAAK,oBAAsB,CACzB,EAAiB,EAAO,GAAK,KAC7B,EAAiB,EAAO,GAAK,EAC7B,EACA,CACF,EAEJ,EACA,KAAK,OAAU,GAAS,CACtB,IAAI,EAAI,GACP,GAAM,EAAK,KAAK,SAAS,WAAa,MAAgB,EAAG,KAAK,EAAI,KAAM,CAAI,CAC/E,EACA,KAAK,YAAc,QAEf,KAAK,eAAe,EACb,CACL,KAAK,YACL,KAAK,MAAQ,KAAK,MAAM,WAAa,KACrC,KAAK,MAAQ,KAAK,MAAM,SAAW,IACrC,GAED,GAAgB,CACf,KAAK,OAAO,CAAW,CACzB,EACA,CACE,IAAK,GACL,UAAa,KAAK,QAAQ,MAC1B,YAAa,CACX,KAAK,YACL,KAAK,MAAQ,KAAK,MAAM,WAAa,KACrC,KAAK,MAAQ,KAAK,MAAM,SAAW,IACrC,CACF,CACF,EACA,KAAK,YAAgB,CACnB,KAAK,OAAO,OAAO,OAAO,EAAE,QAAS,GAAM,EAAE,CAAC,EAC9C,KAAK,OAAS,CAAC,EACf,KAAK,SAAS,WAAW,EACrB,KAAK,OAAS,MAAQ,KAAK,eAC7B,KAAK,aAAa,qBAAqB,KAAK,KAAK,EACjD,KAAK,MAAQ,MAEf,KAAK,YAAc,KACnB,KAAK,YAAc,GACnB,KAAK,gBAAkB,KACvB,KAAK,uBAAyB,EAC9B,KAAK,aAAe,GACpB,KAAK,mBAAqB,GAC1B,KAAK,mBAAqB,KAC1B,KAAK,cAAgB,KACrB,KAAK,aAAe,IACtB,EACA,KAAK,kBACU,CACX,KAAK,QAAQ,CACf,EAEF,KAAK,gBAAoB,CAEvB,IAAM,EAAgB,KAAK,QAAQ,QAAU,KAAK,QAAQ,iBAAiB,EAAI,KAC/E,GAAI,KAAK,gBAAkB,EAAe,CAExC,GADA,KAAK,QAAQ,EACT,CAAC,EAAe,CAClB,KAAK,YAAY,EACjB,MACF,CAwCA,GAvCA,KAAK,cAAgB,EACjB,KAAK,eAAiB,kBAAmB,KAAK,cAChD,KAAK,aAAe,KAAK,cAAc,cAAc,YAErD,KAAK,aAAsB,KAAK,eAAqC,QAAW,KAElF,KAAK,cAAc,QAAS,GAAW,CACrC,KAAK,SAAS,QAAQ,CAAM,CAC9B,CAAC,EACD,KAAK,OAAO,KACV,KAAK,QAAQ,mBAAmB,KAAO,GAAS,CAC9C,KAAK,WAAa,EAClB,KAAK,YAAY,CACnB,CAAC,CACH,EACA,KAAK,OAAO,KACV,KAAK,QAAQ,qBAAqB,MAAO,EAAQ,IAAgB,CAC/D,GAAI,GAAe,KAAK,wBAA0B,MAAQ,IAAW,KAAK,aACxE,OAEE,KAAK,wBAA0B,MAAQ,KAAK,IAAI,EAAS,KAAK,qBAAqB,EAAI,MACzF,EAAS,KAAK,uBAEhB,KAAK,sBAAwB,KACzB,KAAK,qBAAuB,MAAQ,KAAK,IAAI,EAAS,KAAK,mBAAmB,UAAU,GAAK,MAC/F,KAAK,mBAAqB,MAE5B,KAAK,kBAAoB,EACzB,IAAM,EAAa,KAAK,gBAAgB,EACxC,KAAK,gBAAkB,EAAc,IAAe,EAAS,KAAK,gBAAkB,EAAa,EAAS,UAAY,WAAa,KACnI,KAAK,aAAe,EACpB,KAAK,YAAc,EACnB,KAAK,yBAAyB,EAC1B,KAAK,aACP,KAAK,wBAAwB,EAE/B,KAAK,YAAY,CACnB,CAAC,CACH,EACI,qBAAsB,KAAK,cAAe,CAC5C,IAAM,EAAW,KAAK,cAChB,MAAqB,CACzB,KAAK,aAAe,GACpB,KAAK,mBAAqB,GACtB,KAAK,sBAAwB,MAAQ,KAAK,cAAgB,OAC5D,KAAK,aAAa,aAAa,KAAK,mBAAmB,EACvD,KAAK,oBAAsB,KAE/B,EACM,MAAmB,CACvB,KAAK,aAAe,GAChB,GAAC,GAAY,GAAK,KAAK,cAAgB,QAG3C,KAAK,mBAAqB,GAC1B,KAAK,oBAAsB,KAAK,aAAa,eAAiB,CAC5D,KAAK,mBAAqB,GAC1B,KAAK,oBAAsB,KAC3B,KAAK,yBAAyB,CAChC,EAAG,GAAG,EACR,EACA,EAAS,iBACP,aACA,EACA,EACF,EACA,EAAS,iBACP,WACA,EACA,EACF,EACA,KAAK,OAAO,SAAW,CACrB,EAAS,oBAAoB,aAAc,CAAY,EACvD,EAAS,oBAAoB,WAAY,CAAU,EAC/C,KAAK,sBAAwB,MAAQ,KAAK,cAAgB,OAC5D,KAAK,aAAa,aAAa,KAAK,mBAAmB,EACvD,KAAK,oBAAsB,KAE/B,CAAC,CACH,CACA,KAAK,gBAAgB,KAAK,gBAAgB,EAAG,CAC3C,YAAa,IAAK,GAClB,SAAU,IAAK,EACjB,CAAC,CACH,CACA,IAAM,EAAS,KAAK,oBAEpB,GADA,KAAK,oBAAsB,KACvB,GAAU,KAAK,eAAiB,KAAK,QAAQ,QAAS,CACxD,GAAM,CAAC,EAAK,EAAS,EAAgB,GAAe,EAChD,IAAQ,MAAQ,CAAC,IACf,GAAY,IAAM,KAAK,aAAe,KAAK,cAAgB,KAAK,oBAC9D,IAAgB,IAClB,KAAK,wBAA0B,GAEjB,KAAK,aAAmC,WAAc,UAAY,CAAC,GACnF,KAAK,gBAAgB,EAAI,EACzB,KAAK,YAAY,gBACnB,GAEE,KAAK,gBAAgB,KAAK,gBAAgB,EAAG,CAC3C,YAAa,IAAK,GAClB,SAAU,IAAK,EACjB,CAAC,GAGD,GACF,KAAK,YAAY,CAAE,SAAU,CAAe,CAAC,CAEjD,CACA,KAAK,wBAAwB,CAC/B,EACA,KAAK,4BAAgC,CACnC,GAAI,KAAK,qBAAuB,MAAQ,CAAC,KAAK,eAAiB,CAAC,KAAK,QAAQ,QAC3E,OAEF,GAAM,CAAE,SAAQ,cAAe,KAAK,mBAC9B,EAAM,KAAK,mBAAmB,EAChC,EAAM,EAAa,KACrB,KAAK,mBAAqB,EAAS,EAAM,GAAM,CAAE,SAAQ,WAAY,CAAI,EAAI,KAC7E,KAAK,gBAAgB,EAAQ,CAC3B,YAAa,IAAK,GAClB,SAAU,IAAK,EACjB,CAAC,EAEL,EACA,KAAK,6BAAiC,CAIpC,GAHI,KAAK,yBAA2B,GAChC,KAAK,aACL,KAAK,cACL,KAAK,mBAAoB,OAC7B,IAAM,EAAM,KAAK,gBAAgB,EAC3B,EAAM,KAAK,mBAAmB,EACpC,GAAI,EAAM,GAAK,EAAM,EAAK,OAC1B,GAAI,KAAK,uBAAyB,GAAK,GAAO,EAAM,EAAG,CACrD,KAAK,uBAAyB,EAC9B,MACF,CACA,IAAM,EAAQ,KAAK,uBACnB,KAAK,uBAAyB,EAC9B,KAAK,gBAAgB,EAAK,CACxB,YAAa,KAAK,mBAAqB,EACvC,SAAU,IAAK,EACjB,CAAC,CACH,EACA,KAAK,MAAQ,KACb,KAAK,YACE,KAAK,QAAQ,SAIlB,KAAK,WAAa,KAAK,YAAc,KAAK,QAAQ,YAC3C,KAAK,WAAW,KAAK,QAAQ,WAAa,QAAU,YAJzD,KAAK,WAAa,KACX,GAKX,KAAK,oBACE,KAAK,QAAQ,SAIlB,KAAK,aAAe,KAAK,eAAiB,OAAO,KAAK,QAAQ,eAAkB,WAAa,KAAK,QAAQ,cAAc,EAAI,KAAK,QAAQ,eAClI,KAAK,eAJV,KAAK,aAAe,KACb,GAKX,KAAK,sBAAwB,OACrB,CACJ,KAAK,QAAQ,MACb,KAAK,QAAQ,aACb,KAAK,QAAQ,aACb,KAAK,QAAQ,WACb,KAAK,QAAQ,QACb,KAAK,QAAQ,MACb,KAAK,QAAQ,mBACb,KAAK,QAAQ,GACf,GACC,EAAO,EAAc,EAAc,EAAY,EAAS,EAAO,EAAoB,KAC7D,KAAK,YAAc,IAAK,IAAK,KAAK,YAAc,IAEnE,KAAK,iBAAmB,IAE1B,KAAK,UAAY,EACjB,KAAK,WAAa,KACX,CACL,QACA,eACA,eACA,aACA,UACA,QACA,qBACA,KACF,GAEF,CACE,IAAK,EACP,CACF,EACA,KAAK,eAAkB,GAAU,GAAS,GAAK,EAAQ,KAAK,QAAQ,MACpE,KAAK,gBAAkB,OACf,CAAC,KAAK,sBAAsB,EAAG,KAAK,oBAAoB,GAC7D,CACC,QACA,eACA,eACA,aACA,UACA,QACA,qBACA,OACC,IAA0B,CAE3B,IAAM,EAAgB,KAAK,cAC3B,GAAI,CAAC,EAKH,MAJA,MAAK,kBAAoB,CAAC,EAC1B,KAAK,wBAA0B,KAC/B,KAAK,cAAc,MAAM,EACzB,KAAK,gBAAgB,MAAM,EACpB,CAAC,EAEV,GAAI,KAAK,gBAAgB,KAAO,MACzB,IAAM,KAAS,KAAK,gBAAgB,KAAK,EACxC,GAAS,GACX,KAAK,gBAAgB,OAAO,CAAK,EAInC,KAAK,mBACP,KAAK,iBAAmB,GACxB,KAAK,cAAgB,GACrB,KAAK,kBAAoB,CAAC,EAC1B,KAAK,wBAA0B,KAC/B,KAAK,cAAc,MAAM,EACzB,KAAK,gBAAgB,MAAM,EAC3B,KAAK,WAAa,MAEhB,KAAK,kBAAkB,SAAW,GAAK,CAAC,KAAK,gBAC/C,KAAK,kBAAoB,KAAK,QAAQ,yBACtC,KAAK,kBAAkB,QAAS,GAAS,CACvC,KAAK,cAAc,IAAI,EAAK,IAAK,EAAK,IAAI,CAC5C,CAAC,GAEH,IAAM,EAAM,KAAK,cAAgB,EAAI,KAAK,YAAc,EAKxD,GAJA,KAAK,WAAa,KACd,KAAK,eAAiB,KAAK,kBAAkB,SAAW,IAC1D,KAAK,cAAgB,IAEnB,IAAU,EAAG,CACf,IAAM,EAAO,EAAQ,EACjB,EAAa,KAAK,yBAA+C,KACrE,GAAI,CAAC,GAAQ,EAAK,OAAS,EAAM,CAC/B,IAAM,EAAO,IAAI,aAAa,CAAI,EAC9B,GAAQ,EAAM,GAAG,EAAK,IAAI,EAAK,SAAS,EAAG,EAAM,CAAC,CAAC,EACvD,EAAO,CACT,CACA,IAAM,EAAQ,IAAQ,EAAQ,MAAM,CAAK,EAAI,KAAK,wBAAwB,MAAM,MAAM,EAClF,EACJ,GAAI,IAAQ,EACV,EAAe,EAAe,MACzB,CACL,IAAM,EAAU,EAAM,EACtB,EAAe,EAAK,EAAU,GAAK,EAAK,EAAU,EAAI,GAAK,CAC7D,CACA,IAAK,IAAI,EAAI,EAAK,EAAI,EAAO,IAAK,CAChC,IAAM,EAAM,EAAW,CAAC,EACxB,EAAM,GAAK,EACX,IAAM,EAAe,EAAc,IAAI,CAAG,EACpC,EAAO,OAAO,GAAiB,SAAW,EAAe,KAAK,QAAQ,aAAa,CAAC,EAC1F,EAAK,EAAI,GAAK,EACd,EAAK,EAAI,EAAI,GAAK,EAClB,GAAgB,EAAO,CACzB,CACA,KAAK,wBAA0B,CAAE,OAAM,OAAM,EAC7C,IAAM,EAAO,IAA2B,EAAO,CAAI,EAEnD,MADA,MAAK,kBAAoB,EAClB,CACT,CACA,IAAM,EAAe,KAAK,kBAAkB,MAAM,EAAG,CAAG,EAClD,EAAoB,MAAM,CAAK,EAAE,KACrC,IAAK,EACP,EACM,EAAW,IAAI,aAAa,CAAK,EACnC,EAAc,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC5B,IAAM,EAAO,EAAa,GACtB,IACE,EAAc,EAAK,QAAU,IAAK,IAAG,IACzC,EAAc,EAAK,MAAQ,EAC3B,EAAS,EAAK,MAAQ,EAAK,IAE/B,CACA,IAAK,IAAI,EAAI,EAAK,EAAI,EAAO,IAAK,CAChC,IAAM,EAAM,EAAW,CAAC,EAClB,EAAa,KAAK,gBAAgB,IAAI,CAAC,EACzC,EACA,EACE,EAAkB,IAAuB,YAAc,EAAc,IAAI,CAAG,EAClF,GAAI,IAAe,IAAK,IAAK,KAAK,QAAQ,MAAQ,EAAG,CACnD,EAAO,EACP,IAAM,EAAY,EAAc,GAC1B,EAAa,IAAc,IAAK,GAA8B,IAAK,GAA/B,EAAa,GACvD,EAAQ,EAAa,EAAW,IAAM,EAAM,EAAe,CAC7D,MAAO,GAAI,IAAgB,EAAO,CAChC,IAAI,EAAW,EACX,EAAU,EAAS,GACnB,EAAU,EAAc,GAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAM,EAAI,EAAS,IACf,EAAI,GAAW,IAAM,GAAW,EAAc,GAAK,KACrD,EAAW,EACX,EAAU,EACV,EAAU,EAAc,GAE5B,CACA,EAAO,EACP,EAAQ,EAAU,EACd,GACF,KAAK,gBAAgB,IAAI,EAAG,CAAI,CAEpC,MACE,EAAO,EAAI,KAAK,QAAQ,MACxB,EAAQ,EAAe,EACnB,GACF,KAAK,gBAAgB,IAAI,EAAG,CAAI,EAGpC,IAAM,EAAe,EAAc,IAAI,CAAG,EACpC,EAAO,OAAO,GAAiB,SAAW,EAAe,KAAK,QAAQ,aAAa,CAAC,EACpF,EAAM,EAAQ,EACpB,EAAa,GAAK,CAChB,MAAO,EACP,QACA,OACA,MACA,MACA,MACF,EACI,EAAc,KAAU,IAAK,IAAG,IACpC,EAAc,GAAQ,EACtB,EAAS,GAAQ,CACnB,CAEA,MADA,MAAK,kBAAoB,EAClB,CACT,EACA,CACE,IAAK,GACL,UAAa,KAAK,QAAQ,KAC5B,CACF,EACA,KAAK,eAAiB,OACd,CACJ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,QAAQ,KACf,GACC,EAAc,EAAW,EAAc,IAClC,EAAa,SAAW,GAAK,IAAc,GAC7C,KAAK,MAAQ,KACN,OAET,KAAK,MAAQ,IACX,EACA,EACA,EACA,EAGA,IAAU,GAAK,KAAK,0BAA4B,KAAO,KAAK,wBAAwB,KAAO,IAC7F,EACO,KAAK,OAEd,CACE,IAAK,GACL,UAAa,KAAK,QAAQ,KAC5B,CACF,EACA,KAAK,kBAAoB,OACjB,CACJ,IAAI,EAAa,KACb,EAAW,KACT,EAAQ,KAAK,eAAe,EAMlC,OALI,IACF,EAAa,EAAM,WACnB,EAAW,EAAM,UAEnB,KAAK,YAAY,WAAW,CAAC,KAAK,YAAa,EAAY,CAAQ,CAAC,EAC7D,CACL,KAAK,QAAQ,eACb,KAAK,QAAQ,SACb,KAAK,QAAQ,MACb,EACA,CACF,CACF,GACC,EAAgB,EAAU,EAAO,EAAY,IACrC,IAAe,MAAQ,IAAa,KAAO,CAAC,EAAI,EAAe,CACpE,aACA,WACA,WACA,OACF,CAAC,EAEH,CACE,IAAK,GACL,UAAa,KAAK,QAAQ,KAC5B,CACF,EACA,KAAK,iBAAoB,GAAS,CAChC,IAAM,EAAgB,KAAK,QAAQ,eAC7B,EAAW,EAAK,aAAa,CAAa,EAOhD,OANK,EAME,SAAS,EAAU,EAAE,GAL1B,QAAQ,KACN,2BAA2B,EAAc,+BAC3C,EACO,GAGX,EACA,KAAK,0BAA6B,GAAU,CAE1C,GAAI,CAAC,KAAK,aAAe,KAAK,YAAY,WAAa,SACrD,MAAO,GAET,IAAM,EAAc,KAAK,YAAY,OAAgB,KAAK,wBAAwB,KAAK,YAAY,gBAAgB,GAAyB,MAC5I,GAAI,IAAgB,IAAK,IAAK,KAAK,MAAO,CACxC,IAAM,EAAa,KAAK,IACtB,KAAK,QAAQ,SACb,KAAK,MAAM,KAAK,MAAM,SAAW,KAAK,MAAM,YAAc,CAAC,CAC7D,EACM,EAAW,KAAK,IAAI,EAAG,EAAc,CAAU,EAC/C,EAAW,KAAK,IACpB,KAAK,QAAQ,MAAQ,EACrB,EAAc,CAChB,EACA,OAAO,GAAS,GAAY,GAAS,CACvC,CACA,MAAO,EACT,EACA,KAAK,eAAkB,GAAS,CAC9B,GAAI,CAAC,EAAM,CACT,KAAK,cAAc,SAAS,EAAQ,IAAS,CACtC,EAAO,cACV,KAAK,SAAS,UAAU,CAAM,EAC9B,KAAK,cAAc,OAAO,CAAI,EAElC,CAAC,EACD,MACF,CACA,IAAM,EAAQ,KAAK,iBAAiB,CAAI,EACxC,GAAI,CAAC,KAAK,eAAe,CAAK,EAAG,OACjC,IAAM,EAAM,KAAK,QAAQ,WAAW,CAAK,EACnC,EAAW,KAAK,cAAc,IAAI,CAAG,EACvC,IAAa,IACX,GACF,KAAK,SAAS,UAAU,CAAQ,EAElC,KAAK,SAAS,QAAQ,CAAI,EAC1B,KAAK,cAAc,IAAI,EAAK,CAAI,IAE7B,CAAC,KAAK,aAAe,KAAK,cAAgB,KAAK,0BAA0B,CAAK,GACjF,KAAK,WAAW,EAAO,KAAK,QAAQ,eAAe,EAAM,IAAK,GAAG,IAAI,CAAC,CAE1E,EACA,KAAK,YAAc,EAAO,IAAS,CAEjC,GAAI,CAAC,KAAK,eAAe,CAAK,EAAG,OACjC,IAAI,EACA,EACA,EACE,EAAa,KAAK,yBAA+C,KACvE,GAAI,KAAK,QAAQ,QAAU,GAAK,GAAQ,KACtC,EAAM,KAAK,QAAQ,WAAW,CAAK,EACnC,EAAY,EAAK,EAAQ,GACzB,EAAa,EAAK,EAAQ,EAAI,OACzB,CACL,IAAM,EAAO,KAAK,kBAAkB,GACpC,GAAI,CAAC,EAAM,OACX,EAAM,EAAK,IACX,EAAY,EAAK,MACjB,EAAa,EAAK,IACpB,CACA,IAAM,EAAW,KAAK,cAAc,IAAI,CAAG,GAAK,EAC1C,EAAQ,EAAO,EACrB,GAAI,IAAU,EAAG,CACf,IAAM,EAAW,KAAK,QAAQ,WAAa,OAAgB,KAAK,aAAmC,WAAc,UAAY,KAAK,0BAA0B,GAAK,KAAK,QAAQ,mBACxK,EAAgB,EAAW,KAAK,aAAa,EAAI,EACjD,EAAsB,KAAK,gBAAgB,EAAI,KAAK,kBAEpD,EADkB,KAAK,cAAc,IAAI,CAAG,EAchD,EAAY,GAAY,GAAuB,KAAK,kBAAoB,WATxE,EAAY,EAWR,EAA4B,KAAK,aAAmC,WAAc,WAAa,KAAK,6CAA+C,IAAK,GAa1J,EAb8J,KAAK,2CAGrK,KAAK,kBAAkB,IAAU,CAC/B,QACA,MACA,MAAO,EACP,KAAM,EACN,IAAK,EAAY,EACjB,KAAM,CACR,EACA,EACA,IACF,IACI,KAAK,aAAe,MAAQ,EAAQ,KAAK,cAC3C,KAAK,WAAa,GAEpB,KAAK,cAAc,IAAI,EAAK,CAAI,EAChC,KAAK,uBACL,IAAI,EAAe,GACf,EACF,EAAe,KAAK,sBAClB,KAAK,aAAa,EAAI,CACxB,EACS,IACT,EAAe,KAAK,sBAAsB,CAAK,GAEjD,KAAK,OAAO,CAAY,EACxB,KAAK,wBAAwB,CAC/B,CACF,EACA,KAAK,gBAAkB,OACf,CAAC,KAAK,kBAAkB,EAAG,KAAK,gBAAgB,CAAC,GACtD,EAAS,IAAiB,CACzB,IAAM,EAAe,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAM,EAAQ,OAAQ,EAAI,EAAK,IAAK,CAElD,IAAM,EAAc,EADV,EAAQ,IAElB,EAAa,KAAK,CAAW,CAC/B,CACA,OAAO,CACT,EACA,CACE,IAAK,GACL,UAAa,KAAK,QAAQ,KAC5B,CACF,EACA,KAAK,wBAA2B,GAAW,CAEzC,IAAM,EAAe,KAAK,gBAAgB,EAC1C,GAAI,EAAa,SAAW,EAC1B,OAEF,IAAM,EAAa,KAAK,yBAA+C,KACjE,EAAU,KAAK,QAAQ,QAAU,GAAK,GAAQ,KAOpD,OAAO,GAAa,EANR,GACV,EACA,EAAa,OAAS,EACtB,EAAW,GAAM,EAAK,EAAI,GAAM,GAAM,GAAa,EAAa,EAAE,EAAE,MACpE,CAEiC,EAAE,CACvC,EACA,KAAK,uBAA2B,CAC9B,GAAI,CAAC,KAAK,cAAe,MAAO,GAChC,GAAI,iBAAkB,KAAK,cACzB,OAAO,KAAK,QAAQ,WAAa,KAAK,cAAc,YAAc,KAAK,cAAc,YAAc,KAAK,cAAc,aAAe,KAAK,cAAc,aACnJ,CACL,IAAM,EAAM,KAAK,cAAc,SAAS,gBACxC,OAAO,KAAK,QAAQ,WAAa,EAAI,YAAc,KAAK,cAAc,WAAa,EAAI,aAAe,KAAK,cAAc,WAC3H,CACF,EACA,KAAK,8BACI,KAAK,IACV,KAAK,aAAa,EAAI,KAAK,QAAQ,EAAI,KAAK,gBAAgB,EAC5D,CACF,EAEF,KAAK,uBACI,KAAK,IAAI,KAAK,mBAAmB,EAAI,KAAK,gBAAgB,EAAG,CAAC,EAEvE,KAAK,SAAW,EAAY,KAAK,QAAQ,qBAChC,KAAK,mBAAmB,GAAK,EAEtC,KAAK,uBAAyB,EAAU,EAAO,EAAW,IAAM,CAC9D,GAAI,CAAC,KAAK,cAAe,MAAO,GAChC,IAAM,EAAO,KAAK,QAAQ,EACpB,EAAe,KAAK,gBAAgB,EACtC,IAAU,SACZ,EAAQ,GAAY,EAAe,EAAO,MAAQ,SAEhD,IAAU,SACZ,IAAa,EAAW,GAAQ,EACvB,IAAU,QACnB,GAAY,GAEd,IAAM,EAAY,KAAK,mBAAmB,EAC1C,OAAO,KAAK,IAAI,KAAK,IAAI,EAAW,CAAQ,EAAG,CAAC,CAClD,EACA,KAAK,mBAAqB,EAAO,EAAQ,SAAW,CAClD,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,EAAO,KAAK,QAAQ,MAAQ,CAAC,CAAC,EAC3D,IAAM,EAAO,KAAK,QAAQ,EACpB,EAAe,KAAK,gBAAgB,EACpC,EAAO,KAAK,kBAAkB,GACpC,GAAI,CAAC,EAAM,OACX,GAAI,IAAU,OACZ,GAAI,EAAK,KAAO,EAAe,EAAO,KAAK,QAAQ,iBACjD,EAAQ,WACH,GAAI,EAAK,OAAS,EAAe,KAAK,QAAQ,mBACnD,EAAQ,aAER,MAAO,CAAC,EAAc,CAAK,EAG/B,GAAI,IAAU,OAAS,IAAU,KAAK,QAAQ,MAAQ,EACpD,MAAO,CAAC,KAAK,mBAAmB,EAAG,CAAK,EAE1C,IAAM,EAAW,IAAU,MAAQ,EAAK,IAAM,KAAK,QAAQ,iBAAmB,EAAK,MAAQ,KAAK,QAAQ,mBACxG,MAAO,CACL,KAAK,sBAAsB,EAAU,EAAO,EAAK,IAAI,EACrD,CACF,CACF,EACA,KAAK,gBAAkB,EAAU,CAAE,QAAQ,QAAS,WAAW,QAAW,CAAC,IAAM,CAC/E,KAAK,uBAAyB,EAC9B,IAAM,EAAS,KAAK,sBAAsB,EAAU,CAAK,EACnD,EAAM,KAAK,IAAI,EACrB,KAAK,YAAc,CACjB,MAAO,KACP,QACA,WACA,UAAW,EACX,iBAAkB,EAClB,aAAc,CAChB,EACA,KAAK,gBAAgB,EAAQ,CAAE,YAAa,IAAK,GAAG,UAAS,CAAC,EAC9D,KAAK,wBAAwB,CAC/B,EACA,KAAK,eAAiB,EAAO,CAC3B,MAAO,EAAe,OACtB,WAAW,QACT,CAAC,IAAM,CACT,KAAK,uBAAyB,EAC9B,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,EAAO,KAAK,QAAQ,MAAQ,CAAC,CAAC,EAC3D,IAAM,EAAa,KAAK,kBAAkB,EAAO,CAAY,EAC7D,GAAI,CAAC,EACH,OAEF,GAAM,CAAC,EAAQ,GAAS,EAClB,EAAM,KAAK,IAAI,EACrB,KAAK,YAAc,CACjB,QACA,QACA,WACA,UAAW,EACX,iBAAkB,EAClB,aAAc,CAChB,EACA,KAAK,gBAAgB,EAAQ,CAAE,YAAa,IAAK,GAAG,UAAS,CAAC,EAC9D,KAAK,wBAAwB,CAC/B,EACA,KAAK,UAAY,EAAO,CAAE,WAAW,QAAW,CAAC,IAAM,CACrD,IAAM,EAAS,KAAK,gBAAgB,EAAI,EAClC,EAAM,KAAK,IAAI,EACrB,KAAK,YAAc,CACjB,MAAO,KACP,MAAO,QACP,WACA,UAAW,EACX,iBAAkB,EAClB,aAAc,CAChB,EACA,KAAK,gBAAgB,EAAQ,CAAE,YAAa,IAAK,GAAG,UAAS,CAAC,EAC9D,KAAK,wBAAwB,CAC/B,EACA,KAAK,aAAe,CAAE,WAAW,QAAW,CAAC,IAAM,CACjD,GAAI,KAAK,QAAQ,MAAQ,EAAG,CAC1B,KAAK,cAAc,KAAK,QAAQ,MAAQ,EAAG,CACzC,MAAO,MACP,UACF,CAAC,EACD,MACF,CACA,KAAK,eAAe,KAAK,IAAI,KAAK,aAAa,EAAI,KAAK,QAAQ,EAAG,CAAC,EAAG,CACrE,UACF,CAAC,CACH,EACA,KAAK,iBAAqB,CAExB,IAAM,EAAe,KAAK,gBAAgB,EACtC,EACJ,GAAI,EAAa,SAAW,EAC1B,EAAM,KAAK,QAAQ,kBACd,GAAI,KAAK,QAAQ,QAAU,EAAG,CACnC,IAAM,EAAU,EAAa,OAAS,EAChC,EAAa,KAAK,yBAA+C,KACvE,CACE,CADE,GAAQ,KAGG,EAAa,IAAgC,KAAQ,EAF5D,EAAK,EAAU,GAAK,EAAK,EAAU,EAAI,EAIjD,KAAO,CACL,IAAM,EAAY,MAAM,KAAK,QAAQ,KAAK,EAAE,KAAK,IAAI,EACjD,EAAW,EAAa,OAAS,EACrC,KAAO,GAAY,GAAK,EAAU,KAAM,GAAQ,IAAQ,IAAI,GAAG,CAC7D,IAAM,EAAO,EAAa,GACtB,EAAU,EAAK,QAAU,OAC3B,EAAU,EAAK,MAAQ,EAAK,KAE9B,GACF,CACA,EAAM,KAAK,IAAI,GAAG,EAAU,OAAQ,GAAQ,IAAQ,IAAI,CAAC,CAC3D,CACA,OAAO,KAAK,IACV,EAAM,KAAK,QAAQ,aAAe,KAAK,QAAQ,WAC/C,CACF,CACF,EACA,KAAK,iBAAqB,CACxB,IAAM,EAAW,CAAC,EAClB,GAAI,KAAK,cAAc,OAAS,EAAG,OAAO,EAC1C,IAAM,EAAI,KAAK,gBAAgB,EAC/B,IAAK,IAAM,KAAQ,EACb,GAAQ,KAAK,cAAc,IAAI,EAAK,GAAG,GACzC,EAAS,KAAK,CACZ,MAAO,EAAK,MACZ,IAAK,EAAK,IACV,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,IAAK,EAAK,IACV,KAAM,EAAK,IACb,CAAC,EAGL,OAAO,CACT,EACA,KAAK,iBAAmB,EAAQ,CAC9B,cACA,cACI,CACJ,KAAK,sBAAwB,GAAU,GAAe,GACtD,KAAK,QAAQ,WAAW,EAAQ,CAAE,WAAU,aAAY,EAAG,IAAI,CACjE,EACA,KAAK,YAAgB,CACnB,KAAK,WAAa,KAClB,KAAK,cAAc,MAAM,EACzB,KAAK,gBAAgB,MAAM,EAC3B,KAAK,uBACL,KAAK,OAAO,EAAK,CACnB,EACA,KAAK,WAAW,CAAI,CACtB,CAKA,sBAAsB,EAAO,EAAU,CACrC,GAAI,IAAU,EAAG,MAAO,GAIxB,GAAI,GAAY,IAAM,KAAK,aAAe,KAAK,cAAgB,KAAK,oBAElE,MADA,MAAK,wBAA0B,EACxB,GACF,CACL,IAAM,EAAS,KAAK,gBAAgB,EAAI,KAAK,kBAAoB,EAC3D,EAAK,KAAK,cACV,EAAa,IAAO,OAAS,iBAAkB,GAAM,aAAc,GAAM,KAAK,mBAAmB,EAAI,KAW3G,MAVA,MAAK,mBAAqB,IAAe,MAAQ,EAAS,EAAa,GAAM,CAAE,SAAQ,YAAW,EAAI,KACtG,KAAK,gBAAgB,KAAK,gBAAgB,EAAG,CAC3C,YAAa,KAAK,mBAAqB,EACvC,UACF,CAAC,EACG,KAAK,eAAiB,OACxB,KAAK,cAAgB,KAAK,kBACtB,KAAK,aAAe,IAAG,KAAK,aAAe,GAC/C,KAAK,kBAAoB,GAEpB,EACT,CACF,CACA,yBAA0B,CACxB,GAAI,CAAC,KAAK,aAAc,CACtB,KAAK,YAAc,KACnB,MACF,CACI,IACJ,CAAK,QAAQ,KAAK,aAAa,0BAA4B,CACzD,KAAK,MAAQ,KACb,KAAK,gBAAgB,CACvB,CAAC,CACH,CACA,iBAAkB,CAGhB,GAFI,CAAC,KAAK,aAEN,CADO,KAAK,cACP,OAET,GAAI,KAAK,IAAI,EAAI,KAAK,YAAY,UAAY,IAAkB,CAC9D,KAAK,YAAc,KACnB,MACF,CACA,IAAM,EAAa,KAAK,YAAY,OAAS,KAAgF,IAAK,GAA9E,KAAK,kBAAkB,KAAK,YAAY,MAAO,KAAK,YAAY,KAAK,EACnH,EAAe,EAAa,EAAW,GAAK,KAAK,YAAY,iBAE7D,EAAgB,IAAiB,KAAK,YAAY,iBACxD,GAAI,CAAC,GAAiB,GAAY,EAAc,KAAK,gBAAgB,CAAC,EAEpE,IADA,KAAK,YAAY,eACb,KAAK,YAAY,cAAgB,EAAe,CAC9C,KAAK,gBAAgB,IAAM,GAC7B,KAAK,gBAAgB,EAAc,CACjC,YAAa,IAAK,GAClB,SAAU,MACZ,CAAC,EAEH,KAAK,YAAc,KACnB,MACF,OAGA,GADA,KAAK,YAAY,aAAe,EAC5B,EAAe,CACjB,IAAM,EAAW,KAAK,QAAQ,GAAK,IAC7B,EAAW,KAAK,IAAI,EAAe,KAAK,gBAAgB,CAAC,EACzD,EAAa,KAAK,YAAY,WAAa,UAAY,EAAW,EACxE,KAAK,YAAY,iBAAmB,EAC/B,IACH,KAAK,YAAY,SAAW,QAE9B,KAAK,gBAAgB,EAAc,CACjC,YAAa,IAAK,GAClB,SAAU,EAAa,SAAW,MACpC,CAAC,CACH,CAEF,KAAK,wBAAwB,CAC/B,CACF,EACM,IAA2B,EAAK,EAAM,EAAiB,IAAU,CACrE,KAAO,GAAO,GAAM,CAClB,IAAM,GAAU,EAAM,GAAQ,EAAI,EAC5B,EAAe,EAAgB,CAAM,EAC3C,GAAI,EAAe,EACjB,EAAM,EAAS,OACV,GAAI,EAAe,EACxB,EAAO,EAAS,OAEhB,OAAO,CAEX,CAIE,OAHE,EAAM,EACD,EAAM,EAEN,CAEX,EACA,SAAS,IAA4B,EAAM,EAAM,EAAO,CACtD,IAAI,EAAM,EACV,KAAO,GAAO,GAAM,CAClB,IAAM,GAAU,EAAM,GAAQ,EAAI,EAC5B,EAAe,EAAK,EAAS,GACnC,GAAI,EAAe,EACjB,EAAM,EAAS,OACV,GAAI,EAAe,EACxB,EAAO,EAAS,OAEhB,OAAO,CAEX,CACA,OAAO,EAAM,EAAI,EAAM,EAAI,CAC7B,CACA,SAAS,IAAmB,EAAc,EAAW,EAAc,EAAO,EAAM,CAC9E,IAAM,EAAY,EAAa,OAAS,EACxC,GAAI,EAAa,QAAU,EACzB,MAAO,CAAE,WAAY,EAAG,SAAU,CAAU,EAE9C,GAAI,IAAU,GAAK,IAAS,KAAM,CAChC,IAAM,EAAc,IAClB,EACA,EACA,CACF,EACI,EAAY,EACV,EAAQ,EAAe,EAC7B,KAAO,EAAY,GAAa,EAAK,EAAY,GAAK,EAAK,EAAY,EAAI,GAAK,GAC9E,IAEF,MAAO,CAAE,WAAY,EAAa,SAAU,CAAU,CACxD,CAEA,IAAI,EAAa,GAAwB,EAAG,EAD1B,GAAU,EAAa,GAAO,MACiB,CAAY,EACzE,EAAW,EACf,GAAI,IAAU,EACZ,KAAO,EAAW,GAAa,EAAa,GAAU,IAAM,EAAe,GACzE,SAEG,GAAI,EAAQ,EAAG,CACpB,IAAM,EAAa,MAAM,CAAK,EAAE,KAAK,CAAC,EACtC,KAAO,EAAW,GAAa,EAAW,KAAM,GAAQ,EAAM,EAAe,CAAS,GAAG,CACvF,IAAM,EAAO,EAAa,GAC1B,EAAW,EAAK,MAAQ,EAAK,IAC7B,GACF,CACA,IAAM,EAAe,MAAM,CAAK,EAAE,KAAK,EAAe,CAAS,EAC/D,KAAO,GAAc,GAAK,EAAa,KAAM,GAAQ,GAAO,CAAY,GAAG,CACzE,IAAM,EAAO,EAAa,GAC1B,EAAa,EAAK,MAAQ,EAAK,MAC/B,GACF,CACA,EAAa,KAAK,IAAI,EAAG,EAAa,EAAa,CAAK,EACxD,EAAW,KAAK,IAAI,EAAW,GAAY,EAAQ,EAAI,EAAW,EAAM,CAC1E,CACA,MAAO,CAAE,aAAY,UAAS,CAChC,CC9zCA,SAAS,GAAsB,EAAgB,CAC3C,IAAM,EAAc,IAAI,IAAY,CAAc,EAC5C,EAAqB,EAAY,WAEnC,EACE,EAAc,GAAY,CAC5B,IAAM,EAAkB,CACpB,GAAG,EAAY,QACf,GAAG,EACH,SAAU,EAAQ,QACtB,EACA,EAAmB,CACf,GAAG,EACH,UAAW,EAAU,IAAS,CAC1B,EAAoB,IAAI,CAAQ,EAChC,EAAgB,WAAW,EAAU,CAAI,CAC7C,CACJ,CAAC,EACD,EAAY,YAAY,EAKxB,EAAoB,IAAI,CAAW,CACvC,EAKA,MAJA,GAAsB,GAAS,OAC3B,EAAW,CAAc,EAClB,EAAY,UAAU,EAChC,EACMrP,GAAQ,EAAsB,GAAa,OAAO,OAAO,EAAU,CAAE,YAAW,CAAC,CAAC,CAC7F,CACA,SAAgB,IAAkB,EAAS,CACvC,OAAO,GAAsB,CACL,uBACE,yBACtB,WAAY,IACZ,GAAG,CACP,CAAC,CACL,CACA,SAAgB,IAAwB,EAAS,CAC7C,OAAO,GAAsB,CACzB,qBAAyB,OAAO,SAAa,IAAc,OAAS,KACpE,mBAAoB,IACpB,qBAAsB,IACtB,WAAY,IACZ,kBAAsB,OAAO,SAAa,IAAc,OAAO,QAAU,EACzE,GAAG,CACP,CAAC,CACL,UCnCS,GAAgB,EAAyC,SACvD,EAAS,EAAK,cAAe,GAChC,MAAW,SAAS,MAAQ,IAAW,SAAS,iBADR,EAAS,EAAO,cAGxD,MAAO,aAAa,uBAAuB,GAE3C,wBAAwB,KAAK,iBAAiB,CAAM,EAAE,SAAS,SAAU,SAGxE,MACT,UAEgB,GAAkB,EAAkB,KAC9C,EAAQ,EAAwC,IAAI,EACpD,EAAS,EAAO,CAAC,EACjB,EAAW,EAAO,EAAK,EACvB,EAAa,EAAsB,IAAI,EAErC,MAAmB,IACrB,EAAuB,EACvB,EAAW,EAAO,CAAC,EACnB,EAAkB,EAA+D,IAAI,EACrF,EAAiB,EAA0D,IAAI,EAC7E,SACH,EAAQ,oBAAsB,EAAQ,SAAW,QAC/C,KACA,EAAQ,aAAe,KAEtB,EAAe,KACnB,MAAO,EACP,uBAAyB,aAAiB,cAAc,GAAQ,KAChE,oBAAsB,aAAiB,cAAc,GAAM,UAAY,EACvE,aAAc,EAAQ,aACtB,QAAS,KAEL,EAAc,KAClB,MAAO,EACP,aAAc,EAAQ,aACtB,QAAS,KAEL,QAAgB,aAAiB,cAAc,KAAkB,GACjE,QAAiC,MACjC,KAAe,sBAEV,EAAQ,EAAG,EAAQ,EAAQ,QAAS,OACvC,EAAQ,IAAI,CAAK,MAAM,UAAmB,UAIlD,CAAC,EAED,OAAc,KACN,EAAa,EAAa,UAAW,GAAU,GACnD,EAAkB,MAClB,EACF,CAAC,EACK,EAAY,EAAY,UAAW,GAAU,GACjD,EAAiB,MACjB,EACF,CAAC,EACK,MACJ,OAAgB,GACd,EAAW,GACb,CAAC,EACG,MAAmB,GACvB,EAAW,GACb,SACA,OAAO,iBAAiB,cAAe,CAAW,EAClD,OAAO,iBAAiB,aAAc,CAAU,MAEnC,CACX,IACA,IACA,OAAO,oBAAoB,cAAe,CAAW,EACrD,OAAO,oBAAoB,aAAc,CAAU,CACrD,CACF,CAAC,EAID,OAAkB,KACV,EAAQ,EAAQ,QAChB,EAAe,EAAQ,eACvB,IAAe,GACf,IAAY,GACZ,IAAY,GACZ,IAAY,aAAiB,YAC7B,IAAU,GACV,IAAW,GACX,EAAO,MAAM,MAAO,OAAQ,IAAU,EAAG,IAAU,EAAQ,IAAI,CAAK,GACpE,GACJ,QACA,iBAAoB,EACpB,WAAa,GAAkB,EAAK,GACpC,eACA,SAAU,EACV,eAAiB,GAAuD,KAChE,EAAU,GAAsB,CAAK,SAEvC,GAAa,GAAK,EAAY,IAAU,EAAQ,SAAS,CAAS,IACpE,EAAQ,KAAK,CAAS,EACtB,EAAQ,MAAM,EAAG,IAAM,EAAI,CAAC,GAGvB,CACT,GAEF,OAAc,KACN,EAAW,EAAY,EAAU,EAGnC,KAEA,KAAa,KAAU,MAAQ,IAAa,EAAS,QAAQ,QAAS,KAClE,aACM,EAAM,KAAQ,EAAc,KAChC,EAAQ,OAAO,EAAK,aAAa,YAAY,OAE9C,EAAK,aAAe,EAAK,KAAW,eAEnC,EAAO,EAAK,wBAAwB,OAEtC,GAAQ,GAEZ,EAAa,MAAO,QAAO,MAAK,MAAO,EAAG,IAAK,EAAG,OAAM,KAAM,GAChE,KACI,EAAQ,UACD,KAAe,EAAa,MAAM,EAAG,IAAM,EAAE,MAAQ,EAAE,KAAK,EACrE,EAAY,MAAQ,EACpB,EAAY,IAAM,EAAQ,EAAY,KACtC,EAAQ,EAAY,IAEtB,EAA2B,CAC7B,KAEM,EAAsB,GAA6B,+BACzD,GAAS,eACJ,KACC,EAAY,KAChB,QAAS,GAAa,IAExB,GAAU,eACL,KACE,EAAY,KACjB,QAAS,IAAc,KAAa,KAAU,MAElD,CAAC,CACH,CAAC,WAEQ,EAAO,EAAmB,KAC3B,IAAe,EACjB,EAAc,GAAgB,CAAI,IACtC,EAAQ,OACJ,EAAQ,EACR,EAAW,GACX,EAAmB,GACjB,MAAqB,IACzB,EAAQ,GAEH,GAAY,IAAe,aAE1B,EAAY,GAAgB,CAAI,KAElC,IAAc,EAAa,CAC7B,EAAY,oBAAoB,SAAU,CAAQ,EAClD,EAAc,IACd,EAAQ,GACR,EAAY,iBAAiB,SAAU,GAAY,QAAS,aACnD,EAA+B,EAAM,IAC5C,GAAU,QAAQ,CAAQ,EAEtB,IAAa,GAHqC,EAAW,EAAS,eAK9E,KAEM,EAAM,EAAK,wBAAwB,MACzC,EACE,aAAuB,YACnB,EACA,EAAY,wBAAwB,IACpC,EAAY,UACZ,EAAY,UACZ,EAAM,OAAO,WACrB,EACM,MAAiB,CACT,IAAQ,sBAAsB,CAAY,CACxD,EACM,MAAkB,EACjB,GAAY,IAAe,GAAwB,IAExD,EAAmB,GAEnB,mBAAqB,IACnB,EAAmB,IAEd,GAAY,IAAe,aAE1B,EAAgB,EAAK,cAAc,cACnC,EACJ,aAAyB,SAAW,EAAK,SAAS,CAAa,EAC3D,EAAc,QAAQ,sBAAsB,EAC5C,KACA,EAAQ,OAAO,GAAQ,aAAa,oBAAoB,KAAO,IACrE,EACE,GACA,EAAK,SAAS,CAAM,GACpB,OAAO,UAAU,CAAK,GACtB,GAAS,GACT,EAAQ,EAAQ,QACZ,EAAQ,IAAI,CAAK,EACjB,QACR,CAAC,EACH,EACM,SAAkB,eAAmB,IAAc,SAAW,eAAe,CAAQ,UAElF,EAA+B,EAAM,IAC5C,GAAU,QAAQ,CAAQ,EAEtB,IAAa,GAHqC,EAAW,EAAS,sBAM5E,EAAY,iBAAiB,SAAU,GAAY,QAAS,KAC5D,OAAO,iBAAiB,SAAU,CAAQ,EAC1C,EAAK,iBAAiB,UAAW,CAAS,EAC1C,EAAK,iBAAiB,WAAY,CAAS,EAC3C,IACA,IAEA,KAGE,SAAU,CACR,EAAW,GACX,GAAU,aACV,EAAY,oBAAoB,SAAU,CAAQ,EAClD,OAAO,oBAAoB,SAAU,CAAQ,EAC7C,EAAK,oBAAoB,UAAW,CAAS,EAC7C,EAAK,oBAAoB,WAAY,CAAS,EAC9C,qBAAqB,CAAK,EAEtB,IAAe,KAAsB,EAAQ,KACnD,EAEJ,UAES,EAAQ,EAAmB,KAC5B,EAAQ,OAAO,EAAK,aAAa,YAAY,UACnD,EAAa,IAAI,EAAM,EAAQ,IAAI,CAAK,GACxC,KAAU,eAAe,CAAI,GAG3B,QAAS,CACP,KAAU,eAAe,CAAI,CAC/B,EACA,SAAU,CACR,EAAa,OAAO,CAAI,EACxB,KAAU,eAAe,IAAI,CAC/B,EAEJ,QAGE,SACA,cACI,SAAU,UACL,EACT,MACI,OAAuB,UACpB,KAEA,GAWE,KAAU,sBAVR,MAAM,MAAO,OAAQ,EAAQ,UAAY,EAAG,MACjD,QACA,IAAK,EAAQ,IAAI,CAAK,EACtB,MAAO,EACP,IAAK,EACL,KAAM,EACN,KAAM,IAKZ,EACA,UAAU,EAAsB,EAAe,UACxC,GAEE,KAAK,IAAI,EAAG,EAAM,GAAO,OAAS,IAAU,IAAI,GAAS,EAAM,EAAQ,GAAG,MAF5D,CAGvB,MACI,WAAY,UACT,KAEE,GAAW,KAAU,gBAAkB,EAAK,CACrD,EACA,KAAK,EAAsB,MACpB,MAEA,SAAgB,OAEf,EAAO,EAAM,EAAM,OAAS,UAE3B,KAAK,IAAI,GAAI,KAAU,gBAAkB,IAAM,EAAO,EAAK,MAAM,GAAS,GACnF,EAEJ,CC5TA,SAAgB,GACd,EACA,CAAE,WAAW,gBAAiB,mBAAmB,yBAA4B,CAAC,EAC9E,CACA,IAAM,EAAQ,IAAI,IACZ,EAAQ,IAAI,IACZ,EAAW,IAAI,IACjB,EAAoC,CAAC,EACrC,EAAuB,KACvB,EAAa,EACb,EAAY,GACZ,EAAgC,KAChC,EAAqC,KAEzC,SAAS,GAAU,CACjB,IAAM,EAAS,OAAO,YACpB,CAAC,GAAG,CAAQ,EACT,QAAQ,EAAG,KAAa,EAAQ,IAAI,EACpC,KAAK,CAAC,EAAI,KAAa,CAAC,EAAI,KAAK,IAAI,GAAG,EAAQ,OAAO,CAAC,CAAC,CAAC,CAC/D,EAEI,KAAK,UAAU,CAAM,IAAM,KAAK,UAAU,CAAS,IAEvD,EAAY,EACZ,EAAS,CAAM,EACjB,CAEA,SAAS,GAAQ,CAGf,GAFA,EAAQ,KAEJ,EAAW,OAEf,IAAM,EAAU,CAAC,GAAG,CAAK,EAAE,OAAQ,GAAS,EAAK,aAAe,EAAM,IAAI,CAAI,CAAC,EAC/E,EAAM,MAAM,EAEZ,IAAK,IAAM,KAAQ,EAAS,EAAK,UAAU,IAAI,CAAgB,EAC/D,GAAI,CACF,IAAK,IAAM,KAAQ,EAAS,CAC1B,IAAM,EAAS,EAAM,IAAI,CAAI,EACvB,EAAO,EAAK,cACZ,EAAQ,iBAAiB,CAAI,EAC7B,EAAe,EAAK,sBAAsB,EAAE,MAElD,GAAI,GAAgB,EAAG,SAEvB,IAAM,EAAQ,CACZ,EAAM,YACN,EAAM,aACN,EAAM,gBACN,EAAM,gBACR,EAAE,QAAQ,EAAK,IAAU,GAAO,WAAW,CAAK,GAAK,GAAI,CAAC,EACpD,EAAS,EAAS,IAAI,EAAO,QAAQ,GAAK,IAAI,IACpD,EAAO,IAAI,EAAO,OAAQ,KAAK,KAAK,EAAe,CAAK,CAAC,EACzD,EAAS,IAAI,EAAO,SAAU,CAAM,CACtC,CACF,QAAU,CACR,IAAK,IAAM,KAAQ,EAAS,EAAK,UAAU,OAAO,CAAgB,CACpE,CACA,EAAQ,CACV,CAEA,SAAS,GAAW,CAClB,GAAI,GAAa,IAAU,KAAM,OAEjC,IAAM,EAAsB,EAC5B,EAAQ,0BAA4B,CAC9B,GAAa,IAAe,GAEhC,EAAM,CACR,CAAC,CACH,CAEA,SAAS,GAAgB,CACvB,IAEI,IAAU,MAAM,qBAAqB,CAAK,EAE9C,EAAQ,IACV,CAEA,SAAS,EAAK,EAAmB,CAC/B,EAAM,IAAI,CAAI,EACd,EAAS,CACX,CAEA,SAAS,EAAe,EAAmB,EAAiB,CAC1D,IAAI,EAAS,EACP,MAAiB,CAChB,EAAO,UAEZ,EAAc,EACd,EAAM,IAAI,EAAM,CAAM,EAElB,CAAC,GAAU,OAAO,eAAmB,MACvC,EAAS,IAAI,eAAgB,GAAY,CACvC,IAAK,IAAM,KAAS,EACd,EAAM,IAAI,EAAM,MAAqB,GAAG,EAAK,EAAM,MAAqB,CAEhF,CAAC,GAGH,GAAQ,QAAQ,CAAI,EACpB,EAAK,CAAI,EACX,EACM,MAAmB,CACvB,EAAc,EACd,GAAQ,UAAU,CAAI,EACtB,EAAM,OAAO,CAAI,EACjB,EAAM,OAAO,CAAI,EAEb,EAAM,MAAM,EAAS,CAC3B,EAGA,OAFA,EAAS,EAEF,CACL,OAAO,EAAc,CAEjB,EAAK,WAAa,EAAO,UACzB,EAAK,SAAW,EAAO,QACvB,EAAK,UAAY,EAAO,UAI1B,EAAW,EACX,EAAS,EACT,EAAS,EACX,EACA,QAAS,CACX,CACF,CAEA,MAAO,CACL,iBACA,QAAQ,EAAwB,CAC1B,OAAO,iBAAqB,MAEhC,EAAY,IAAI,iBAAkB,GAAY,CAC5C,IAAK,IAAM,KAAU,EAAS,CAG5B,IAAM,GADJ,EAAO,kBAAkB,QAAU,EAAO,OAAS,EAAO,OAAO,gBAC9C,QAAqB,CAAQ,EAE9C,GAAQ,EAAM,IAAI,CAAI,GAAG,EAAK,CAAI,CACxC,CACF,CAAC,EACD,EAAU,QAAQ,EAAW,CAAE,QAAS,GAAM,UAAW,GAAM,cAAe,EAAK,CAAC,EACtF,EACA,OAAO,EAAmB,CACxB,IAAM,EAAe,IAAI,IAAI,CAAO,EACpC,IAAK,IAAM,KAAW,EAAS,OAAO,EACpC,IAAK,IAAM,KAAO,EAAQ,KAAK,EACxB,EAAa,IAAI,CAAG,GAAG,EAAQ,OAAO,CAAG,EAGlD,EAAQ,CACV,EACA,YAAa,CACX,EAAc,EACd,IAAK,IAAM,KAAQ,EAAM,KAAK,EAAG,EAAM,IAAI,CAAI,EAC/C,EAAS,CACX,EACA,SAAU,CACR,EAAY,GACZ,GAAQ,WAAW,EACnB,GAAW,WAAW,EAEtB,EAAc,EAEd,EAAM,MAAM,EACZ,EAAM,MAAM,CACd,CACF,CACF,CC3KA,SAAS,GAAkB,EAAqB,CAC9C,OAAO,EAAY,QAAQ,OAAQ,EAAE,CACvC,CAEA,IAAM,IAAe,EAAmB,IAAiB,CACvD,IAAM,EAAW,SAAS,cAAc,UAAU,EAClD,EAAS,UAAY,GAAa,CAAI,EACtC,EAAK,gBAAgB,GAAG,MAAM,KAAK,EAAS,QAAQ,UAAU,CAAC,CACjE,EAEM,KAAc,EAAmB,IAAiB,CACtD,IAAM,EAAW,SAAS,cAAc,UAAU,EAClD,EAAS,UAAY,GAAa,CAAI,EACtC,EAAK,OAAO,GAAG,MAAM,KAAK,EAAS,QAAQ,UAAU,CAAC,CACxD,EACA,SAAgB,GAAQ,EAAY,EAAuB,CACzD,IAAI,EACA,EACA,EACA,EACA,EACA,EACA,EAAmC,KACnC,EAAuB,GACvB,EACE,MAA6B,CAC7B,OAAO,OAAW,MAElB,GAAQ,SACN,GAAQ,EAAK,oBAAoB,QAAS,EAAyB,EAAI,EAEvE,GAAc,OAAO,oBAAoB,QAAS,EAA+B,EAAI,IAErF,IACF,EAAK,oBAAoB,YAAa,EAAyB,EAAI,EACnE,EAAK,oBAAoB,YAAa,EAAyB,EAAI,GAGjE,GAAS,EAAK,oBAAoB,WAAY,EAAS,EAAI,EAE3D,GAAc,SAAS,oBAAoB,YAAa,EAAc,EAAI,EAE9E,CAEE,IADA,aAAa,CAAiB,EACV,OAIxB,CAEE,IADA,SAAS,oBAAoB,UAAW,CAAc,EACrC,QAGnB,EAAS,OACT,EAAU,OACV,EAAe,OACf,EAAe,OACf,EAAuB,GACzB,EAEA,GAAI,GAAQ,CAAC,EAAK,QAAS,OAE3B,SAAS,EAAqB,EAAe,CAG3C,GAFI,CAAC,GAED,OAAO,WAAa,KACtB,OAGF,GAAI,OAAO,EAAK,SAAY,aAGtB,CAFgB,GAAkB,EAAK,OAEtC,EAAc,OAAQ,YACtB,GAAI,OAAO,GAAM,SAAS,OAAO,OAAU,UAG5C,CAFgB,GAAkB,EAAK,QAAQ,MAAM,KAEpD,EAAc,OAAQ,OAG7B,IAAM,EAAY,EAAK,MAAQ,QAC/B,EAAO,EACP,IAAM,EAAO,SAAS,cAAc,KAAK,EAEnC,EAAa,SAAS,cAAc,KAAK,EAC/C,EAAW,UAAY,aACvB,EAAK,YAAY,CAAU,EAE3B,IAAM,EAAU,SAAS,cAAc,KAAK,EAC5C,EAAQ,UAAY,UACpB,EAAK,YAAY,CAAO,EAGxB,EAAK,UADa,mBAAqB,EAAK,WAAa,IAGrD,EAAK,QAAO,EAAK,MAAM,QAAU,EAAK,OAE1C,IAAI,EAAW,GAET,MAA2B,CAC/B,GAAI,OAAO,SAAa,IAAa,OAAO,KAE5C,GAAI,aAAgB,YAAa,CAC/B,IAAM,EAAY,EAAK,QAAQ,mBAAmB,EAElD,GAAI,EAAW,OAAO,CACxB,CAEA,OAAO,SAAS,cAA2B,cAAc,CAC3D,EAEM,MAAwB,CAC5B,CAEE,IADA,aAAa,CAAiB,EACV,KAExB,EAEM,EAAuB,GAAsB,CACjD,GAAI,CAAC,GAAM,WAAY,OAEvB,IAAM,EAAS,EAAM,OACf,EAAc,aAAgB,aAAe,CAAC,CAAC,GAAU,EAAK,SAAS,CAAM,EAC7E,EAAc,CAAC,CAAC,GAAU,EAAK,SAAS,CAAM,EAEhD,CAAC,GAAe,CAAC,GACnB,EAAgB,EAChB,EAAoB,OAAO,eAAiB,CACtC,GAAM,YACR,IAAU,CAEd,EAAG,GAAG,GAEN,EAAgB,CAEpB,EAEM,MAA2B,CAC3B,IAAc,SAAW,IAE7B,EAAe,EACf,SAAS,iBAAiB,YAAa,EAAqB,EAAI,EAChE,EAAuB,GACzB,EAEM,MAA2B,CAC3B,CAAC,GAAwB,CAAC,IAE9B,SAAS,oBAAoB,YAAa,EAAc,EAAI,EAC5D,EAAuB,GACvB,EAAgB,EAClB,EAEM,EAAe,GAAkB,CAGrC,GAFA,EAAgB,EAEZ,OAAO,EAAK,SAAW,SAAU,CAInC,GAHA,EAAQ,gBAAgB,EAGpB,EAAK,YAAc,EAAK,aAAe,CAAC,EAAK,UAC3C,EAAK,iBAAmB,EAAK,kBAAoB,aACnD,GAAY,EAAS,8BAA+B,CAAC,EAAK,gBAAkB,QAAQ,OAEtF,GAAI,GAAM,SAAW,UAAW,CAC9B,IAAU,EAEV,MACF,CAGE,EAAK,UAAY,WAAa,EAAQ,WAAW,OAAS,EAC5D,IAAW,EAAS,SAAW,EAAK,OAAO,EACpC,EAAK,UAAY,WAAW,GAAY,EAAS,EAAK,OAAO,CACxE,MAAO,GAAI,OAAO,EAAK,SAAW,UAAY,CAAC,EAAU,CACvD,GACE,GAAM,SAAS,OAAO,OAAS,WAC9B,GAAM,iBAAmB,EAAK,kBAAoB,aAAe,GAAM,SAGxE,GAAI,EAAK,YAAc,EAAK,YAAa,EAAK,QAAQ,MAAM,MAAQ,OAC/D,CACH,IAAU,EAEV,MACF,CAGF,EAAW,EACb,CAEA,IAAM,EAAc,EAAmB,EAIjC,EAAW,OAAO,WAClB,EAAa,OAAO,YACpB,EAAe,CAAE,EAAG,EAAG,EAAG,CAAE,EAE5B,EAAS,EAAE,QACX,EAAS,EAAE,QAEjB,eAAiB,CACf,IAGI,EAAa,EAEb,EAAS,MACX,EAAa,IAAgB,GAG3B,EAAS,OAAO,WAAa,MAC/B,EAAa,MAAsB,EAAW,IAGhD,EAAW,MAAM,KAAO,IAAqB,EAAa,KAC1D,EAAK,MAAM,KAAO,EAAS,EAAa,EAAa,EAAI,KAErD,EAAK,WAAW,SAAS,QAAQ,GACnC,EAAK,MAAM,OAAS,OACpB,EAAK,MAAM,IAAM,EAAS,GAAK,EAAa,EAAI,MAEhD,EAAK,MAAM,OAAS,EAAa,EAAS,GAAK,EAAa,EAAI,IAEpE,EAAG,CAAC,EAEC,EAAK,YACJ,SAAS,uBAAuB,SAAS,EAAE,QAAU,IACnD,EACF,EAAY,YAAY,CAAI,EAE5B,SAAS,KAAK,YAAY,CAAI,EAGhC,EAAmB,EAGzB,EACA,EAAS,EACT,MAAgB,CACd,EAAgB,EAChB,EAAmB,EACnB,EAAK,OAAO,CACd,EAEA,GAAgB,CAAE,YAAa,CACxB,EAAK,SAAS,CAAc,GAC/B,IAAU,CAEd,EAEA,IAAM,EAAW,SAAS,cAAc,MAAM,EA+B9C,MA9BA,GAAS,YAAc,IACvB,EAAS,UAAY,gBACrB,EAAS,MAAM,SAAW,WAC1B,EAAS,MAAM,IAAM,MACrB,EAAS,MAAM,MAAQ,MACvB,EAAS,MAAM,MAAQ,UACvB,EAAS,MAAM,OAAS,UACxB,EAAS,iBAAiB,QAAS,CAAO,EAEtC,GAAa,UAAS,EAAS,WAAa,eAEhD,EAAK,YAAY,CAAQ,EAErB,OAAO,OAAW,MAChB,GAAa,SACf,EAAK,iBAAiB,QAAS,EAA8B,EAAI,EACjE,OAAO,iBAAiB,QAAS,EAAc,EAAI,IAEnD,EAAK,iBAAiB,YAAa,EAA8B,EAAI,EACrE,EAAK,iBAAiB,WAAY,EAAS,EAAI,GAGjD,EAAkB,GAAyB,CACrC,EAAM,MAAQ,UAChB,IAAU,CAEd,EACA,SAAS,iBAAiB,UAAW,CAAc,GAG9C,CACT,CAMA,OAJI,IACF,EAAO,EAAqB,CAAI,GAG3B,CACL,OAAO,EAAkB,CACnB,GAAQ,EAAK,YACf,IAAU,EAGZ,EAAqB,EACrB,EAAO,EAAqB,CAAW,CACzC,EACA,SAAU,CACR,MAAM,KAAK,SAAS,uBAAuB,SAAS,CAAC,EAAE,QAAS,GAAO,CACrE,EAAG,OAAO,CACZ,CAAC,EAED,EAAqB,CACvB,CACF,CACF,0CCtTA,KAAmB,EAAK,cAAG,SAAS,EACzB,EAAI,aAAG,IAAI,EACX,EAAQ,iBAAG,OAAO,EAClB,EAAI,aAAG,IAAI,EACX,EAAK,cAAG,EAAK,MAGvB,8EAEuB,EAAK,OAF5B,aAGgB,EAAI,QAAE,EAAI,mBAAa,EAAK,sBAAgB,EAAQ,eAHpE,EAFO,CCJR,IAAa,KAAiB,EAAO,IAAY,CAI7C,GAHI,EAAM,KAAO,MACb,EAAQ,EAAM,MAAM,CAAC,GAErB,EAAM,SAAW,EAAG,CACpB,IAAI,EAAM,GACV,EAAM,MAAM,EAAE,EAAE,QAAS,GAAM,CAC3B,GAAO,EACP,GAAO,CACX,CAAC,EACD,EAAQ,CACZ,CAEA,MAAO,SADY,EAAM,MAAM,OAAO,GAAK,CAAC,GAAG,IAAK,GAAQ,SAAS,EAAK,EAAE,CAAC,EAAE,KAAK,IAC7D,EAAE,IAAI,EAAQ,EACzC,EACasP,IAAS,EAAM,EAAU,IAAM,CAAC,GAAG,MAAM,CAAI,EAAE,KAAK,CAAC,EAAE,IAAK,GAAM,EAAI,CAAO,2FChB1F,aACW,EAAK,cAAG,SAAS,EACjB,EAAI,aAAG,IAAI,EACX,EAAQ,iBAAG,MAAM,EACjB,EAAI,aAAG,IAAI,EACX,EAAK,cAAG,EAAK,EACpB,EAAI,2BACL,EAAO,IAAc,EAAK,EAAE,EAAG,mBAGjC,EAAG,SAAH,EAAG,UAV4B,EAAK,SAW7B,GAAM,EAAG,CAAC,UAAK,IAAO,KAC3B,oDAC0B,CAAO,8CACV,EAAK,OAF5B,cAGiB,EAAK,sBAAgB,EAAQ,gBAH9C,OAFF,CAAG,WAAH,EAAG,WAAiC,EAAI,QAAE,EAAI,mBAAW,CAAI,cAA7D,CAAG,KAFI,8tHCHR,aAqlBU,EAAa,QACpB,EAAQ,UAAR,CAAQ,YAEJ,sBACiB,EAAsB,gBAAiB,EAAsB,gBAAiB,EAAsB,UADrH,YADE,EAAe,mCAKb,EAAqB,QAAI,IAAC,KAC9B,EAAG,eAAH,EAAG,WAAiB,CAAC,aAArB,CAAG,yBAGH,EAAG,eAAH,EAAG,EAAQ,EAAe,QAA1B,CAAG,aADD,EAAgB,YATtB,CAAQ,MAAR,CAAQ,GAeD,EAAW,QAClB,EAAK,MACH,EAAE,EADJ,CAAK,MACH,CAAE,YAEE,EAAE,MACA,EAAG,EADL,CAAE,EAEE,EAAG,EADL,CAAG,MACD,CAAG,eAMe,EAAe,GAAI,EAAmB,IAAK,EAAkB,WAClE,EAAO,KAAI,EAAc,EAAC,SAAW,CAAC,EANjD,sBACK,qDAGG,EAAkB,yFAGZ,EAAoB,SAC1B,kFATV,CAAG,IADL,CAAG,IADL,CAAE,UAAF,EAAE,QAAsC,GAAO,YAAY,EAAmB,QAA9E,CAAE,WADA,EAAe,mCAoBb,EAAc,EAAI,GAAQ,EAAO,IAAE,EAAjB,IAAM,KAC5B,kBAME,IANF,OAME,aASI,EAAM,MACJ,EAAI,EADN,CAAM,EAEF,EAAI,EADN,CAAI,MACF,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAGF,QAQE,KARF,CAQM,qBAAO,uBARb,+BAIG,QAAO,EAAE,CAAM,EAAC,QAChB,UAAW,qCALd,cADE,CAAM,EAAC,SAAO,SAHpB,CAAI,UAAJ,EAAI,aAiBF,mEAEkB,EAAI,WAFtB,gBAOS,GAAkB,EAAC,CAAM,IAAG,MAAQ,MAAQ,GAAa,EAAY,EAD5E,gDANF,+BAGW,GAAkB,EAAC,CAAM,IAAG,KAAO,MAAM,OAHpD,YADE,GAAkB,EAAC,CAAM,2BAjB/B,CAAM,cAEwB,CAAM,EAAC,KAAK,aAF1C,MAAM,mBAAmE,CAAM,QAA/E,CAAM,WADJ,GAAgB,EAAC,CAAM,cAiCzB,EAAI,MACF,EAAI,EADN,CAAI,MACF,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAGF,QAQE,KARF,CAQM,qBAAO,uBARb,+BAIG,QAAO,EAAE,CAAM,EAAC,QAChB,UAAW,qCALd,cADE,CAAM,EAAC,SAAO,SAHpB,CAAI,cACwB,CAAM,EAAC,KAAK,OADxC,CAAI,sDAkBJ,EAAI,UAAJ,CAAI,2BAEgB,CAAM,EAAC,MAAK,sBAGzB,GAAI,QACJ,MAAO,iBACP,KAAM,GACN,YAAe,GAAS,EAAC,CAAM,EAAC,GAAI,OAAO,IAG3C,GAAI,MACJ,MAAO,kBACP,KAAM,GACN,YAAe,GAAS,EAAC,CAAM,EAAC,GAAI,KAAK,IAGzC,GAAI,OACJ,MAAO,qBACP,KAAM,GACN,SAAQ,CACL,EAAa,EAAC,MAAM,SAAQ,EAAC,CAAM,EAAC,EAAE,IACtC,EAAa,EAAC,IAAI,SAAQ,EAAC,CAAM,EAAC,EAAE,EACvC,YAAe,GAAS,EAAC,CAAM,EAAC,GAAI,IAAI,KAtB7C,4DADF,CAAI,MAAJ,CAAI,aADF,CAAM,EAAC,SAAW,IAAK,SA1D7B,8CAGG,SAAQ,EAAE,CAAM,EAAC,GACjB,OAAM,EAAE,CAAM,EAAC,GACf,QAAS,GAAY,EAAC,CAAM,EAAC,KAAK,IAAM,UAX7C,qFACQ,GAAmB,EAAC,CAAM,iBACnB,GAAO,SAAQ,EAAC,CAAM,EAAC,EAAE,QAChC,GAAO,YAAW,EAAC,CAAM,EAAC,EAAE,MACxB,GAAe,EAAC,CAAM,SAJlC,0BAmGA,EAAE,MACA,EAAG,EADL,CAAE,MACA,CAAG,wBAKiB,EAAa,cACZ,EAAc,GAJ/B,kLAKoB,GAAa,EAAG,mBACf,GAAc,CAAC,gBAPlC,EAAW,MAAK,EAAuB,iCAYzC,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAA+B,EAAkB,QAArD,CAAI,WADF,EAAW,GAAI,EAAkB,YAZvC,CAAG,IADL,CAAE,WAAF,EAAE,EAAoC,EAAe,QAArD,CAAE,aADA,EAAgB,YAxHtB,CAAE,IADJ,CAAK,MAAL,CAAK,GArgBJ,EAAO,yBACP,EAAI,sBACJ,EAAU,mBAAG,EAAI,EAEjB,EAAa,+BAAe,MAAK,GAAM,IAAG,MAC1C,EAAoB,6BAAG,OAAO,EAC9B,EAAW,oBAAG,EAAK,EACnB,EAAkB,2BAAG,UAAU,EAC/B,EAAY,wBAAgC,EAC5C,EAAQ,iBAAG,EAAI,EACf,EAAe,wBAAG,EAAK,EACvB,EAAoB,6BAAG,OAAO,EAC9B,EAAe,iCAAO,GAAG,EACzB,EAAkB,2BAAG,EAAK,EAC1B,EAAmB,4BAAG,EAAK,EAQ3B,EAAc,2BAAS,EAAO,cAI9B,EAAO,gBAAG,EAAK,EACf,EAAW,oBAAG,EAAK,EACJ,wBAAG,CAAC,MACnB,EAAI,aAAG,IAAI,EAEX,EAAe,wBAAG,0EAA0E,EAC5F,EAAqB,8BAAG,CAAC,EACzB,EAA0B,mCAAG,MAAS,EAGlC,EAAyB,GACzB,EAAsB,oBAAuB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,EAAG,EAAE,IACnF,EACJ,gMAEE,EAAc,EAA8B,IAAI,EAChD,EAAiB,EAA8B,IAAI,EACnD,GAAiB,EAA8B,IAAI,EACnD,GAAoB,EAA8B,IAAI,EACtD,GAAiC,KACjC,EAAoC,KACpC,GAAuC,KACvC,GAA0C,KAC1C,GAAuB,EAAO,CAAC,EAC/B,GAA0B,EAAO,CAAC,EAClC,GAAiB,EAAO,CAAC,EAEzB,GAAS,EAAO,CAAC,EACjB,GAAmB,EAAM,QACzB,GAAuB,EAAM,QAC3B,GAAiB,GAA4B,GAAW,GAC5D,GAAuB,KACzB,CAAC,EACD,GAAU,GAAe,OAAO,MAC5B,GAAuB,EAAM,QAC3B,GAAe,GAClB,GAAW,GACV,GAAuB,KACzB,GACE,SAAU,kBAAmB,iBAAkB,4BAEnD,GAAU,GAAa,OAAO,MAC1B,GAAe,EAAO,CAAC,EAErB,GAAa,GAAiB,GAAU,EAAG,YAC3C,GAAa,MAAY,KAAK,UAAU,EAAI,EAAC,MAAM,EAAG,EAAE,EAAE,IAAI,EAAS,IAC7E,OAAc,KACN,EAAiB,KAAK,MAAK,EAAC,EAAa,GAC/C,OAAc,CACZ,GAAe,OAAO,CAAI,EAC1B,GAAe,WAAU,EACzB,GAAa,WAAU,CACzB,CAAC,CACH,CAAC,MACK,GAAO,MAAY,EAAI,EAAC,OAAS,CAAC,EAClC,GAAe,MACnB,KAAK,UACH,EAAO,EAAC,KAAG,CAAI,KAAI,QAAO,QAAO,WAAU,eAAQ,CACjD,KACA,QACA,QACA,WACA,UAAQ,MAId,OAAc,GACZ,MACA,MACA,MACA,IACA,OAAc,KACR,EAAW,GAAiB,EAAK,OAAS,YAEnC,SAAa,KAAW,OAAW,yBAA6B,IAAa,KAChF,EAAU,SAAS,cAAc,QAAQ,EAAE,WAAW,IAAI,EAE5D,IACF,EAAQ,KAAI,EAAG,CAAW,EAAG,iBAAgB,EAAC,CAAW,GAAE,KAAO,kBAClE,EAAW,GAAS,EAAQ,YAAY,CAAI,EAAE,MAElD,GAEA,GAAmB,IAAoB,EAAO,EAAE,EAAI,EAAE,CAAO,MAC7D,GAAe,WAAU,EACzB,GAAa,OAAO,EAAO,EAAC,IAAK,GAAW,EAAO,EAAE,GACrD,GAAa,WAAU,CACzB,CAAC,CACH,CAAC,EACD,OAAc,KACR,EAAS,YAET,CAAW,GAAE,GAAe,QAAO,EAAC,CAAW,KAE/C,CAAc,GAAE,GAAa,QAAO,EAAC,CAAc,GAElD,SAAS,OAAO,MAAM,SAAW,CAChC,GAAM,GAAE,EAAY,CAC1B,CAAC,MAEY,CACX,EAAS,EACX,CACF,CAAC,EAGD,OAAc,KACR,EAA4B,KAC5B,EAAuB,KAErB,MAAa,KACX,EAAC,EAAG,CAAW,GAAE,aAAe,EAChC,EAAO,KAAK,IAAI,EAAG,KAAK,MAAM,CAAC,GAEjC,IAAI,EAAK,EAAc,KAAE,GAAiB,KAChD,EAEM,MAAiB,CACjB,IAAU,MAAI,OAAW,sBAAyB,YAAY,qBAAqB,CAAK,SAEjF,uBAA0B,WACnC,EAAQ,0BAA4B,CAClC,EAAQ,KACR,EAAI,CACN,CAAC,EAED,EAAI,CAER,SAEA,EAAQ,SAEG,eAAmB,KAAW,EAAI,CAAW,IACtD,EAAE,IAAO,mBAAqB,EAAQ,GACtC,EAAG,QAAO,EAAC,CAAW,QAGX,CACX,GAAI,WAAU,EAEV,IAAU,MAAI,OAAW,sBAAyB,YAAY,qBAAqB,CAAK,CAC9F,CACF,CAAC,MAEK,GAAW,QAAY,EAAc,EAAG,CAAC,EACzC,GAAuB,MAAY,EAAoB,IAAK,QAAQ,EACpE,GAAU,MACd,OAAO,YACL,EAAO,EAAC,IAAK,GAAM,CACjB,EAAO,GACP,GACE,GAAa,EAAO,KAAK,GACvB,KAAK,IAAG,EACN,EAAgB,EAAC,EAAO,KAAO,GAAoB,CAAM,IACzD,EAAoB,EAAC,EAAO,KAAO,EAAC,EACpC,EAAoB,EAAC,EAAO,KAAO,CAAC,EAExC,EAAO,UAAY,GACnB,EAAO,UAAY,IAAI,MAKzB,GAAoB,MAAY,EAAW,EAAG,EAAY,EAAG,CAAC,EAC9D,GAAc,MAAY,EAAe,EAAG,GAAyB,CAAC,EACtE,GAAmB,MACvB,OAAO,OAAM,EAAC,EAAU,GAAE,QACvB,EAAK,IAAU,EAAM,EAAK,EAC3B,EAAc,IAAG,EAAoB,KACnC,EAAc,GAEd,GAAgB,MACpB,EAAW,MAAM,EAAuB,KAAI,EAAmB,GAE3D,GAAY,MAChB,EAAW,EAAG,EAAY,IAAG,EAAgB,KAA2B,CAAC,EAErE,GAAM,MACV,IAAmB,CACjB,UAAO,EACP,OAAM,EAAE,EAAU,EAClB,eAAc,EAAd,EAAc,EACd,aAAY,EAAE,EAAY,EAC1B,eAAc,EAAd,EAAc,EACd,KAAM,EAAa,EACnB,KAAM,EAAoB,EAC1B,OAAM,EAAN,EAAM,EACN,wBAAqB,KAGnB,GAAU,UAAgB,IAAI,EAAO,EAAC,IAAK,GAAM,CAAM,EAAO,GAAI,CAAM,KACxE,GAAc,QAAY,EAAM,EAAC,WAAW,IAAK,GAAE,EAAK,EAAU,EAAC,IAAI,CAAE,IACzE,GAAqB,QAAY,EAAM,EAAC,WAAW,IAAK,GAAE,EAAK,EAAM,EAAC,OAAO,EAAE,GAC/E,GAAe,QAAY,EAAM,EAAC,QAAQ,EAC1C,GAAW,SAAa,EAAuB,KAAI,EAAM,EAAC,QAAQ,EAClE,GAAqB,QAAY,EAAuB,KAAI,EAAM,EAAC,QAAQ,EAC3E,GAAwB,QAAY,EAAM,EAAC,UAAU,EACrD,GAAa,QAAY,EAAW,KAAI,EAAM,EAAC,OAAS,CAAC,EACzD,GAAc,QAAY,EAAW,KAAI,EAAM,EAAC,OAAM,EAAG,EAAM,EAAC,SAAS,WACtE,GAAc,EAAe,GACpC,GAAS,GAAK,EAAC,EAAM,EAAC,OAAS,EAAO,EAAC,EAAE,EAAM,EAAC,SAAS,KAC3D,UACS,GAAU,EAAY,EAA8B,KACrD,EAAI,CACR,MAAO,EAAa,EAAC,MAAM,OAAQ,GAAU,IAAU,CAAE,EACzD,IAAK,EAAa,EAAC,IAAI,OAAQ,GAAU,IAAU,CAAE,GAGnD,GAAM,EAAK,GAAM,KAAK,CAAE,EAE5B,EAAgB,KAChB,GAAS,EACX,KACM,GAAa,UACb,EAAe,IAAM,GAAI,GAAqB,MAAO,EAAE,SACxD,EAAO,OACN,EAAgB,IAAM,GAAI,GAAmB,MAAO,EAAkB,SAEtE,GAAS,IAAiB,CAC9B,YAAO,EAAQ,EAAa,EAC5B,SAAY,EAAI,EAChB,YAAM,MACD,EAAM,EAAC,QACT,IAAmB,EAAG,EAAc,GACpC,IAAiB,EAAG,EAAY,IAEnC,eAAU,IACJ,EAAe,GAAI,EAAmB,UACvC,EAAM,EAAC,gBACN,EAAgB,GAAI,EAAiB,MAE3C,SAAU,GACV,cAAiB,EAAe,EAChC,cAAe,EAAK,IAAU,GAAgB,EAAK,CAAK,EACxD,SAAY,EAAI,EAChB,YAAO,EAAQ,EAAM,EAAC,UAElB,GAAU,MAAY,GAAO,IAAI,EACjC,GAAc,GAAiB,CACnC,YAAe,EAAU,EACzB,UAAK,EAAQ,EAAU,EAAC,OACxB,IAAM,GAAK,EAAK,EAAU,EAAC,GAAO,GAClC,iBAAoB,KAEhB,GAAY,MAAY,GAAY,KAAK,EACzC,GAAU,QACd,aACa,KAAK,IAAG,EAAC,EAAc,IAAE,EAAM,EAAC,UAAU,oBAAkB,EAAM,EAAC,WAAU,KACtF,EAAE,EAEF,GAAY,QAChB,EAAc,EAAC,QAAM,KAAI,EAAgB,GAAa,KAAe,CAAQ,EAGzE,GAAsB,GAC1B,EAAI,GAAI,EAAI,EAAC,WAAa,EAAO,GAAK,EAAI,EAAG,KACzC,GAAoB,GAAsB,EAAO,WAAa,GAC9D,GAAmB,GAAsB,KACvC,EAAQ,GAAmB,CAAM,SAElC,EAEE,EAAM,MAAQ,MAAQ,YAAc,aAFxB,GAAiB,CAAM,EAAI,OAAS,MAGzD,EAEM,GAAe,QACnB,IACI,GAAO,YAAY,EAAiB,2BAA2B,EAAY,OAC3E,EAAE,EAGF,IAAe,EAAc,IAAgB,gBACnC,EAAK,CAAQ,MACvB,IAAiB,EAAc,IACnC,GAAQ,GAAY,EAAK,CAAQ,EAAE,UAAY,GAAY,EAAK,CAAQ,EAAE,SACtE,IAAmB,EAAc,IAAqB,KACpD,EAAW,GAAY,EAAK,CAAQ,SAElC,EAAS,SAAO,CAAK,EAAS,UAAY,EAAS,aAAe,EAC5E,EACM,GAAc,MAAY,EAAI,EAAC,QAAQ,EAAK,IAAa,GAAgB,EAAK,CAAQ,IAEtF,IAAkB,EAAc,EAAkB,IAAsC,CAE1F,EAAM,QACN,EAAM,SACN,EAAM,SACN,EAAM,UACL,aAAiB,YAAc,EAAM,SAAW,GAKjD,EAAM,kBAAkB,SACxB,EAAM,OAAO,QACX,4FAA4F,GAK5F,GAAc,EAAK,CAAQ,IAAM,EAAc,EAAC,EAAK,CAAQ,kBAEpD,CAAG,CAClB,EACM,IAAiB,EAAc,IAAsB,EAAe,EAAC,IAAI,GAAU,CAAG,GAEtF,GAAoB,GAAc,OAC/B,GAAU,UAAQ,OAAW,GAAU,UAAQ,OAAW,GAAU,UAEvE,IACJ,EACA,IACG,KACG,EAAkB,GAAQ,UAE3B,EAEE,EAAgB,OAAQ,GAAY,EAAQ,OAAS,SAAS,EAFhD,CAGvB,EAEM,IACJ,EACA,IACG,OACE,EAAuB,aAEtB,EAAa,KAAK,IAAI,EAAG,CAAQ,KAEnC,IAAW,SAAO,EAAI,CAAW,KAAI,CAAW,EAAC,aAAe,MAClE,CAAW,EAAC,WAAa,GAGvB,IAAW,UAAQ,EAAI,CAAc,KAAI,CAAc,EAAC,aAAe,MACzE,CAAc,EAAC,WAAa,GAG1B,IAAW,OAAS,IAAoB,GAAiB,aAAe,IAC1E,GAAiB,WAAa,GAI9B,IAAW,UACX,IACA,GAAoB,aAAe,IAEnC,GAAoB,WAAa,MAG9B,CAAW,EAAE,GAChB,GAAuB,QACvB,GAA0B,KAAK,IAAG,EAAC,EAAuB,EAAE,CAAU,YAGxE,GAEA,GAAuB,KAAK,IAAI,EAAC,EAAE,CAAW,EAAC,UAAU,QACzD,GAA0B,KAAK,IAAI,EAAC,EAAE,CAAW,EAAC,YAAW,EAAG,CAAW,EAAC,WAAW,KACzF,EAEM,OAAoC,IACnC,EAAuB,MAAK,CAAW,GAE5C,GAAqB,QAAO,EAAE,CAAW,EAAC,UAAU,CACtD,EAEM,OAAqC,IACpC,EAAuB,MAAK,CAAc,GAE/C,GAAqB,SAAQ,EAAE,CAAc,EAAC,UAAU,CAC1D,EAEM,GAAiC,GAAkB,OAClD,CAAW,MAAK,EAAuB,aAEtC,EAAO,EAAG,CAAW,EAAC,WACtB,EAAM,KAAK,IAAI,EAAC,EAAE,CAAW,EAAC,YAAW,EAAG,CAAW,EAAC,WAAW,EACnE,EAAO,GAAM,EAAU,EAAO,EAAG,CAAG,EAEtC,IAAS,MAEb,CAAW,EAAC,WAAa,EACzB,GAAqB,QAAS,CAAI,EACpC,EAEM,GAAqB,QACzB,EAAuB,KAAI,EAAqB,KAAI,EAAoB,EAAG,CAAC,EAExE,GAAsB,QAC1B,EAAuB,KACrB,EAAqB,KACrB,EAAoB,IAAG,EAAuB,GAGlD,OAAc,CACZ,EAA0B,MAAG,EAAW,KAAI,EAAe,EAC7D,CAAC,MAEK,OAAoC,CACxC,IAAc,QAAO,EACrB,GAAiB,QAAO,EACxB,GAAe,KACf,EAAkB,KAClB,GAAmB,KACnB,GAAsB,IACxB,EAEA,OAAc,MACZ,MACA,MACA,MACA,MAEI,CAAW,EAAE,GACf,GAAuB,KAAK,IAAI,EAAC,EAAE,CAAW,EAAC,UAAU,QACzD,GAA0B,KAAK,IAAI,EAAC,EAAE,CAAW,EAAC,YAAW,EAAG,CAAW,EAAC,WAAW,QAEnF,CAAc,KAAI,CAAc,EAAC,aAAU,EAAK,EAAoB,MACtE,CAAc,EAAC,WAAU,EAAG,WAIhC,GAEA,GAAuB,KACvB,GAA0B,EAC5B,CAAC,EAED,OAAc,WACD,OAAW,IAAW,aAE5B,EAAuB,MAAK,EAAqB,EAAE,CACtD,GAA2B,QAG7B,MAEA,MACA,KACA,MACA,OAEK,CAAW,MAAK,EAAc,MAAK,EAAiB,SAEzD,GACE,GAAU,UAAU,IAAG,EAAC,EAAc,QAAS,GAAS,EAAC,EAAc,GAAI,SAAU,EAAK,GAC5F,EACE,GAAU,UAAU,IAAG,EAAC,EAAiB,QACrC,GAAS,EAAC,EAAiB,GAAI,SAAU,EAAK,OAE9C,EAAkB,GAAa,iBAAgB,EAC/C,EAAqB,EAAgB,iBAAgB,MAEtD,GAAe,CAAK,EAAkB,OAE3C,GAAmB,EACnB,GAAsB,MAEhB,MAAwB,GAAqB,MAAO,EAAgB,UAAU,EAC9E,MAA2B,GAAqB,SAAU,EAAmB,UAAU,SAE7F,EAAgB,iBAAiB,SAAU,EAAe,CAAI,QAAS,EAAI,GAC3E,EAAmB,iBAAiB,SAAU,EAAkB,CAAI,QAAS,EAAI,GAEjF,GAAqB,QAAO,EAAE,CAAW,EAAC,UAAU,MAEvC,CACX,EAAgB,oBAAoB,SAAU,CAAe,EAC7D,EAAmB,oBAAoB,SAAU,CAAkB,CACrE,CACF,CAAC,EAED,GAAU,EAA2B,eAqKtC,GAAG,WAAH,EAAG,aAEC,EAAG,MACD,IADF,CAAG,IACD,8BAIgD,EAI9C,KARF,CAQM,qBAAO,QARb,OAUA,IAVA,KAgBE,IANF,kBAIY,GAAc,SAAd,EAAc,OAO1B,IAXA,OAWA,+BAIiD,EAI/C,KARF,CAQM,qBAAO,QARb,KAtBF,CAAG,SACD,cAKY,EAAqB,KAW/B,aAEiB,EAAwB,QAG3C,cAKY,EAAsB,cA1BlC,MAMgB,GAA6B,IAA2B,aAexE,MAMgB,GAA8B,GAAyB,OA5BzE,CAAG,cADD,EAAuB,KAAI,EAAqB,eAoCpD,sBAOE,GAAK,EAPP,SAOE,EAAK,EACK,EAAa,IACb,MAAW,KAFrB,EAAK,IAPP,eAGY,EAAc,SAAd,CAAc,KAxC5B,EAAG,MAmDH,KAnDA,GAAG,cA2DD,GAAK,EARP,SAQE,EAAK,EACK,EAAa,QAErB,GAAK,WAAL,EAAK,aAED,EAAE,MACA,EAAE,EADJ,CAAE,EAEE,KADF,CACW,2CADX,CAAE,IADJ,CAAE,UACA,EAAE,YAAU,EAAY,QAD1B,CAAE,cAMF,EAAE,MACA,EAAE,EADJ,CAAE,MACA,CAAE,4HAAF,CAAE,IADJ,CAAE,UACA,EAAE,YAAU,EAAY,QAD1B,CAAE,2CAUI,EAAY,EAAI,GAAoB,EAAK,KAAG,EAA5B,EAAI,SACjB,EAAG,QAAG,EAAU,IAAC,CAAI,EAAC,OAAO,IAAI,EACjC,EAAQ,QAAG,CAAI,EAAC,KAAK,EACrB,EAAG,MAAG,GAAY,UAAS,EAAC,EAAY,IAAE,CAAY,IAItD,EAAQ,MAAG,GAAW,EAAC,CAAG,IAAE,CAAQ,IACpC,EAAU,MAAG,GAAO,EAAC,CAAQ,EAAC,UAAQ,EAAI,CAAQ,EAAC,QAAO,EAC1D,EAAO,MAAG,EAAO,EAAC,CAAQ,EAAC,KAAK,EAChC,EAAY,MAAG,GAAe,EAAC,CAAG,IAAE,CAAQ,IAC5C,EAAe,MAAG,GAA0B,kBACpC,CAAG,IAAE,CAAQ,KAC3B,CAAO,iCATK,EAAE,MACV,EAAE,EADM,CAAE,IAAF,CAAE,WACV,EAAE,YAAU,EAAY,MAAxB,EAAE,YAAyC,CAAG,cADtC,CAAE,aAAX,CAAG,EAAG,GAAC,WAWX,oCA2BI,kBAME,EAAG,EANL,GAOI,EAAG,EADL,CAAG,MACD,CAAG,mCAEwB,GAAS,EAAC,CAAG,cAG9B,GAAa,EAAC,CAAG,IAAE,CAAQ,eAGvB,CAAY,GAPxB,6GAKc,EAAoB,SAC1B,2CAES,GACV,CAAY,8BAAyB,CAAG,EAC9C,6CAXH,CAAG,IADL,CAAG,IANL,wEAGmB,CAAO,OAH1B,WAEQ,GAAO,YAAY,EAAmB,cAF9C,EAIW,GAAU,EAAM,gBAAe,OAJ1C,YADE,EAAe,mCA0Bb,EAAc,EAAI,GAAQ,EAAO,IAAE,EAAjB,IAAM,KAC5B,kBAOE,IAPF,OAOE,iDAUwB,IAAG,EAAH,CAAG,EAAE,OAAM,EAAN,CAAM,uBAExB,EAAK,MAAG,IAAY,EAAC,CAAG,IAAE,CAAM,EAAC,EAAE,8BAExC,mCAIE,CAAK,QAJP,YADE,GAAgB,EAAC,CAAK,iCAQxB,CAAK,qFArBX,8CAGG,SAAQ,EAAE,CAAM,EAAC,GACjB,OAAQ,GAAS,EAAC,CAAG,GACrB,QAAO,EACL,CAAQ,EAAG,IAAM,GAAY,EAAC,CAAM,EAAC,KAAK,IAAM,MAAI,GAAK,CAAM,EAAC,kBAbvE,uFACQ,GAAmB,EAAC,CAAM,iBACnB,GAAO,SAAQ,EAAC,CAAM,EAAC,EAAE,iBAErB,CAAO,QADlB,GAAO,YAAW,EAAC,CAAM,EAAC,EAAE,uBAET,CAAG,IAAE,CAAM,IAAE,CAAQ,SALhD,0BAoCA,EAAE,MACA,EAAG,EADL,CAAE,MACA,CAAG,YAEC,EAAG,MACD,KADF,CACE,sBACE,CAAG,2BACH,CAAQ,+DAEC,CAAe,yBACxB,EAAQ,2BACC,CAAU,wBACb,CAAO,0BACL,CAAQ,EAAC,aATrB,CAAG,MAAH,CAAG,WADD,EAAW,YADjB,CAAG,IADL,CAAE,WAAF,EAAE,EAA6B,EAAe,cAA9C,EAA0D,GAAM,EAAE,gBAAe,OAAjF,CAAE,aADA,EAAgB,YAxFtB,6DACa,CAAQ,KADrB,yBAEqB,CAAQ,KAF7B,6BAeQ,CAAQ,EAAC,WAAa,EAAE,0BAfhC,2CAsBgB,CAAU,EAAG,OAAS,MAAS,IAtB/C,YAuBQ,CAAQ,EAAC,gBAAc,EAAI,CAAQ,EAAC,aAAe,MAAS,IAvBpE,yBAKW,EAAc,IAAC,CAAG,IAAE,CAAQ,OAAM,CAAU,EAAG,EAAI,0BAW7C,CAAQ,EAAG,GAAM,aACf,EAAc,IAAC,CAAG,IAAE,CAAQ,OAAM,CAAU,gBAC3C,GAAa,EAAC,CAAG,IAAE,CAAQ,mBAC3B,CAAU,eACb,CAAO,QACR,EAAe,EAAG,GAAa,EAAC,CAAG,IAAE,CAAQ,GAAI,2BAGvC,CAAG,IAAE,CAAQ,eAxBvC,EAIW,GAAU,GAAc,EAAC,CAAG,IAAE,CAAQ,EAAE,CAAK,eAJxD,EAMa,GAAU,CAElB,EAAM,SAAW,EAAM,gBACtB,EAAM,MAAQ,SAAW,EAAM,MAAQ,OAExC,EAAM,eAAc,EACpB,GAAc,EAAC,CAAG,IAAE,CAAQ,EAAE,CAAK,EAEvC,CAAC,kCAgGoC,EAAE,MACrC,EAAE,EADiC,CAAE,IAAF,CAAE,UACrC,EAAE,YAAU,EAAY,MAAxB,EAAE,mBAAyC,GAAY,KAAI,EAAC,EAAY,cADrC,CAAE,WAAtC,GAAY,KAAI,EAAC,EAAY,GAAI,CAAC,wCA9IpC,EAAO,QAMF,EAAI,EAAC,SAAW,EAAC,2CA+IxB,EAAE,MACA,EAAE,EADJ,CAAE,EAEE,KADF,CACW,2CADX,CAAE,IADJ,CAAE,UACA,EAAE,YAAU,EAAY,QAD1B,CAAE,aADC,EAAO,GAAI,EAAW,aArJ7B,EAAK,KAAL,GAAK,qBAHP,EAAK,IARP,eAIY,EAAW,SAAX,CAAW,YAJvB,iBA4KE,EAAG,MACD,IADF,CAAG,IACD,8BAIgD,EAI9C,KARF,CAQM,qBAAO,QARb,OAUA,IAVA,KAgBE,IANF,kBAIY,GAAiB,SAAjB,EAAiB,OAO7B,IAXA,OAWA,+BAIiD,EAI/C,KARF,CAQM,qBAAO,QARb,KAtBF,CAAG,SACD,cAKY,EAAqB,KAW/B,aAEiB,EAAwB,QAG3C,cAKY,EAAsB,cA1BlC,MAMgB,GAA6B,IAA2B,aAexE,MAMgB,GAA8B,GAAyB,OA5BzE,CAAG,cADD,EAAuB,KAAI,EAAqB,qBA9NpD,GAAG,0BAAoE,EAAe,WAqCpF,yFAEmC,EAAuB,KAAI,EAAqB,MAFnF,0BAIuB,EAAoB,MAGzC,GAAK,EAAqD,EAAU,QAOxE,2EAGmC,EAAuB,KAAI,EAAqB,MAHnF,0BAKuB,EAAoB,MAGzC,GAAK,EAA2B,EAAU,iBAtB1C,GAKW,EAA4B,cASzC,GAMW,EAA2B,aA7N/B,wlDCxlBR,aAkDI,EAAI,sBAEJ,EAAW,6BACX,EAAe,wBAAG,EAAE,EACpB,EAAW,oBAAG,EAAK,EACnB,EAAQ,iBAAG,EAAI,EAOf,EAAiB,0BAAG,EAAK,EACzB,EAAkB,2BAAG,eAAe,EAGpC,EAAY,qBAAG,EAAE,EAEjB,EAAO,gBAAG,EAAK,EAGb,EAAc,EAAM,QAElB,EAAa,GAAiB,GAAU,EAAG,YAC7C,EAAO,EAAM,QACb,EAAQ,EAAO,CAAC,EACd,EAAc,MAAY,KAAK,IAAI,EAAG,KAAK,OAAK,EAAE,CAAK,EAAG,IAAM,GAAG,IACnE,EAAS,MAAY,KAAK,KAAK,EAAI,EAAC,OAAM,EAAG,CAAc,IAC3D,EAAc,GAAiB,CACnC,UAAK,EAAQ,CAAS,EACtB,mBAAsB,EAAI,EAAC,OAC3B,IAAM,GAAU,EAAU,EAAI,EAAC,EAAK,EAAG,CAAc,IACrD,iBAAoB,MAEhB,EAAY,MAAY,EAAY,KAAK,EAC/C,OAAc,OACP,CAAI,aAEH,MAAa,GACjB,EAAK,EAAG,CAAI,GAAE,aAAe,KAC/B,EACA,EAAI,MACE,EAAQ,IAAO,eAAe,CAAI,SACxC,EAAS,QAAO,EAAC,CAAI,OAER,EAAS,WAAU,CAClC,CAAC,WAEQ,EAAa,EAAc,EAAkB,QACtC,EAAI,IAEF,EAClB,UAES,GAAsB,QACxB,EAAW,EAAC,OAEb,EAAY,GAAI,MAAQ,EAAY,GAAI,EAAU,EAAW,EAAC,OAE3D,KAAK,IAAI,EAAY,EAAE,EAAW,EAAC,MAAM,EAJhB,CAKlC,UAES,EAAmB,EAAwB,KAC5C,EAAQ,EAAW,EAAC,WAErB,EAAK,MAAS,OAEb,EAAO,EAAW,KAEpB,IAAS,EAAC,MAAS,OAEjB,EAAY,KAAK,IAAI,EAAG,EAAQ,CAAI,EACpC,EAAI,EAAG,CAAW,EAAC,IAAW,SAE7B,KAAK,IAAI,KAAK,IAAI,EAAM,CAAC,EAAG,CAAS,CAC9C,UAES,EAAsB,EAA6B,KACrD,EAAW,EAAC,OAAM,aAEjB,EAAO,EAAW,KAEpB,IAAS,EAAC,aAER,EAAQ,EAAmB,CAAM,EACjC,EAAM,KAAK,IAAI,EAAQ,EAAM,EAAW,EAAC,MAAM,SAE9C,EAAW,EAAC,MAAM,EAAO,CAAG,CACrC,UAES,EAAY,EAAyB,QACrC,EAAmB,CAAM,EAAI,CACtC,UAES,EAAc,EAAyB,KACxC,EAAQ,EAAW,EAAC,WAErB,EAAK,MAAS,OAEb,EAAO,EAAW,KAEpB,IAAS,EAAC,MAAS,OAEjB,EAAY,KAAK,IAAI,EAAG,EAAQ,CAAI,SAEnC,EAAmB,CAAM,EAAI,CACtC,UAES,EAAW,EAAgB,EAAe,KAC3C,EAAQ,EAAW,EAAC,WAErB,EAAK,WAEJ,EAAO,EAAW,KAEpB,IAAS,EAAC,WAER,EAAY,KAAK,IAAI,EAAG,EAAQ,CAAI,EACpC,EAAU,EAAmB,CAAM,EACnC,EAAO,KAAK,IAAI,KAAK,IAAI,EAAU,EAAO,CAAC,EAAG,CAAS,EAEzD,KAAI,EAAM,CAAW,EAAC,IAAW,MAErC,EAAW,MACN,CAAW,GACb,GAAS,CAAI,KAElB,KAEI,EAAc,MAAY,EAAW,EAAC,OAAS,CAAC,EAChD,EAAkB,WACb,KACC,EAAO,EAAW,WAEjB,CAAc,GAAI,EAAO,GAAK,EAAW,EAAC,OAAS,CAC5D,GAAC,YAGM,EAAc,EAAc,KAC7B,EAAW,EAAI,EAAC,UAAW,GAAU,IAAU,CAAG,EAGtD,GAAY,IACX,EAAY,EAAK,CAAQ,EAAE,UAAY,EAAY,EAAK,CAAQ,EAAE,8BAInD,CAAG,CACvB,KAEM,GAAe,EAAc,IAAgB,gBACnC,EAAK,CAAQ,MAEvB,IACJ,EACA,IACG,KACG,EAAkB,GAAQ,UAE3B,EAEE,EAAgB,OAAQ,GAAY,EAAQ,OAAS,SAAS,EAFhD,CAGvB,MAWD,GAAG,WAAH,EAAG,QAEC,GAAM,qDAEN,EAAG,UAAH,CAAG,4HAAH,CAAG,MAAH,CAAG,2CAQG,CAAY,EAAI,GAAoB,EAAK,KAAG,EAA5B,EAAI,SACjB,EAAG,MAAG,EAAY,UAAS,EAAC,CAAY,IAAE,CAAY,iCAChD,EAAG,eAAH,EAAG,YAAqC,CAAG,aAA3C,CAAG,aAAZ,CAAG,EAAG,GAAC,WACX,SAME,EAAG,EANL,YAME,EAAG,OACK,EAAI,EAAC,MAAK,EAAC,CAAI,EAAC,MAAK,EAAG,CAAc,KAAG,CAAI,EAAC,MAAQ,GAAC,EAAI,CAAc,GAAK,GAAkB,EAAU,CAAG,KAA/B,EAAG,SAC9E,EAAQ,QAAG,CAAI,EAAC,MAAK,EAAG,CAAc,IAAG,CAAW,GACpD,EAAM,MAAG,EAAS,EAAC,CAAG,IACtB,EAAQ,MAAG,EAAW,EAAC,CAAG,IAAE,CAAQ,IACpC,EAAU,MAAG,GAAO,EAAC,CAAQ,EAAC,UAAQ,EAAI,CAAQ,EAAC,QAAO,EAC1D,EAAO,MAAG,EAAO,EAAC,CAAQ,EAAC,KAAK,EAChC,EAAe,MAAG,GAA0B,kBACpC,CAAG,IAAE,CAAQ,KAC3B,CAAO,QAER,kBAME,EAAM,EANR,GAOI,GAAG,EADL,CAAM,OACJ,EAAG,gDAEqB,IAAG,EAAH,CAAG,gDAEvB,EAAY,EAAC,CAAG,EAAE,EAAe,uCAD1B,EAAe,iBAIxB,GAAG,aAAH,EAAG,oDAEwB,IAAG,EAAH,CAAG,gDAF9B,EAAG,IAPL,EAAG,WAAH,GAAG,cAeD,EAAG,MACD,KADF,CACE,sBACE,CAAG,2BACH,CAAQ,+DAEC,CAAe,yBACxB,EAAQ,2BACC,CAAU,wBACb,CAAO,0BACL,CAAQ,EAAC,aATrB,CAAG,MAAH,CAAG,YADD,EAAW,aAfjB,CAAM,WAAN,EAAM,cAgCJ,EAAG,UAAH,CAAG,YAEC,EAAG,MACD,IADF,CAAG,EAiBD,IAhBA,OADF,CAAG,YACD,aAgBA,oBAZY,EAAW,EAAC,CAAM,QAgBlB,EAAa,EAAC,CAAM,eApBhC,EAKW,GAAM,CACd,EAAE,gBAAe,EACjB,EAAU,EAAC,CAAM,IAAI,CACvB,CAAC,YAQF,EAKW,GAAM,CACd,EAAE,gBAAe,EACjB,EAAU,EAAC,CAAM,EAAE,CAAC,CACtB,CAAC,MAzBJ,CAAG,aADD,CAAkB,cAqCtB,EAAG,UAAH,EAAG,OACK,EAAqB,EAAC,CAAM,GAAK,GAAQ,EAAO,IAAE,EAAjB,IAAM,KAC3C,EAAG,MACD,EAAG,EADL,CAAG,MACD,EAAG,MAAH,CAAG,MAGH,EAAG,EAHH,EAAG,OAGH,CAAG,gDAEqB,IAAG,EAAH,CAAG,EAAE,OAAM,EAAN,CAAM,+CAE/B,EAAY,EAAC,CAAG,IAAE,CAAM,EAAC,EAAE,iDAJ/B,CAAG,IAJL,CAAG,cAEC,CAAM,EAAC,KAAK,OAFhB,CAAG,MAFP,CAAG,IAtCL,CAAG,MAAH,CAAG,cADD,CAAc,qCA2DhB,EAAM,UAAN,CAAM,8CAEgB,IAAG,EAAH,CAAG,EAAE,kBAAqB,EAAa,EAAC,CAAG,wBAE7D,2CAGW,CAAU,MAGnB,EAAkB,eANpB,MAIgB,EAAa,EAAC,CAAG,QAJjC,uCAJJ,CAAM,MAAN,CAAM,YADJ,EAAiB,aA/FvB,4BACgB,CAAQ,EAAC,WAAa,KAAE,oCACpB,CAAU,eACb,CAAO,MAHxB,YAIQ,CAAQ,EAAC,gBAAc,EAAI,CAAQ,EAAC,aAAe,MAAS,QAJpE,OAXJ,CAAG,IANL,qDAEa,CAAI,EAAC,KAAK,IAFvB,yBAGqB,CAAI,EAAC,KAAK,OAG7B,EAAG,yBAAyC,CAAc,sCA+HtB,oCAEpB,EAAY,KAAI,EAAC,CAAY,cAFT,YAApC,EAAY,KAAI,EAAC,CAAY,GAAI,CAAC,wCAnJpC,EAAO,OAEF,EAAI,EAAC,SAAW,EAAC,qBAH5B,EAAG,KAAH,GAAG,KAA8B,EAAI,SAAJ,CAAI,MAArC,GAAG,sBAAH,EAAG,KAFI,eC1NR,IAAM,IAAwB,GACxB,MAAM,QAAQ,CAAK,EACd,KAAK,UAAU,EAAM,IAAK,GAAU,GAAG,GAAO,CAAC,EAGpD,GAAU,KAAoC,OAE3C,KAAK,UAAU,GAAG,GAAO,EAGrB,IAA4B,GAClC,EAEQ,OAAO,KAAK,CAAK,EAAE,KAEzB,EAAK,IAAK,GAAQ,GAAG,EAAI,GAAG,IAAqB,EAAM,EAAI,GAAG,EAAE,KAAK,GAAG,EAJ5D,GAOR,IAAiB,GAC5B,EAAQ,GAAG,EAAM,SAAS,GAAG,EAAM,IAAI,GAAG,EAAM,MAAQ,GAE7C,KAA4B,CACvC,UACA,QACA,SACA,UAOA,CACE,WAAW,IAAyB,CAAO,IAC3C,SAAS,IACT,UAAU,IACV,QAAQ,IAAc,CAAI,GAC5B,EAAE,KAAK,GAAG,EAEC,KACX,EACA,EACA,EAAqC,KACvB,CACd,GAAI,EAAa,SAAW,GAAK,EAAa,SAAW,EACvD,MAAO,CAAC,GAAG,EAAc,GAAG,CAAY,EAG1C,IAAM,EAAU,IAAI,IACpB,IAAK,IAAM,KAAO,EAAc,CAC9B,IAAM,EAAY,EAAS,CAAG,EAE1B,GAAyC,MAC3C,EAAQ,IAAI,OAAO,CAAS,CAAC,CAEjC,CAEA,GAAI,EAAQ,OAAS,EACnB,MAAO,CAAC,GAAG,EAAc,GAAG,CAAY,EAG1C,IAAM,EAAS,CAAC,GAAG,CAAY,EAC/B,IAAK,IAAM,KAAO,EAAc,CAC9B,IAAM,EAAY,EAAS,CAAG,EAE9B,GAAI,GAAyC,KAAM,CACjD,EAAO,KAAK,CAAG,EACf,QACF,CAEA,IAAM,EAAM,OAAO,CAAS,EAExB,EAAQ,IAAI,CAAG,IAInB,EAAQ,IAAI,CAAG,EACf,EAAO,KAAK,CAAG,EACjB,CAEA,OAAO,CACT,ECjEM,IAAe,MACf,IAAgB,OAET,GAAuB,GAAqC,CACvE,IAAM,EAAM,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAEvD,OAAO,EAAM,EAAI,QAAQ,mBAAoB,GAAG,EAAI,EACtD,EAEM,IAA0B,GAAkB,EAAM,QAAQ,mBAAoB,GAAG,EAE1E,GAA2B,GAA4B,CAClE,GAAI,OAAO,OAAW,IAAa,OAEnC,IAAM,EAAa,EAAO,SAAS,EAC7B,EAAU,GAAG,OAAO,SAAS,WAAW,EAAa,IAAI,IAAe,KAAK,OAAO,SAAS,MAAQ,KAGvG,IAAY,GAFM,OAAO,SAAS,WAAW,OAAO,SAAS,SAAS,OAAO,SAAS,MAAQ,MAIlG,IAA4B,CAAO,CACrC,EAEM,IAA0B,EAAY,IAC1C,SAAS,EAAG,UAAU,IAAuB,CAAQ,IAEjD,IAA2B,GAA+D,CAC9F,GAAI,MAAM,QAAQ,CAAK,EAAG,CACxB,IAAM,EAAU,EAAM,IAAK,GAAU,GAAG,IAAQ,KAAK,CAAC,EAAE,OAAO,OAAO,EAEtE,OAAO,EAAQ,OAAS,KAAK,UAAU,CAAO,EAAI,IACpD,CAEA,GAAI,GAAU,KAA6B,OAAO,KAElD,IAAM,EAAa,GAAG,IAAQ,KAAK,EAEnC,OAAO,EAAa,KAAK,UAAU,CAAU,EAAI,IACnD,EAEM,KACJ,EACA,IACyC,CACzC,GAAI,CAAC,EAAU,OAAQ,OAEvB,IAAM,EAAM,EAAU,EAAU,OAAS,IAAM,GAC3C,EACJ,GAAI,CACF,EAAS,KAAK,MAAM,CAAG,CACzB,MAAQ,CACN,EAAS,CACX,CAEA,GAAI,EAAO,OAAS,UAAa,EAAO,OAAS,UAAY,EAAO,SAAW,CAC7E,GAAI,EAAO,WAAa,GAAO,CAC7B,IAAM,EAAS,MAAM,QAAQ,CAAM,EAAI,EAAO,GAAK,EAGnD,OAFmB,GAAW,KAA+B,GAAK,GAAG,IAAS,KAAK,IAE9D,IACvB,CAIA,OAFe,MAAM,QAAQ,CAAM,EAAI,EAAS,EAAU,OAAS,EAAI,EAAY,CAAC,CAAM,GAE5E,IAAK,GAAU,GAAG,GAAS,KAAK,KAAK,CAAC,EAAE,OAAO,OAAO,CACtE,CAIA,OAFmB,MAAM,QAAQ,CAAM,EAAI,GAAG,EAAO,IAAM,KAAK,KAAK,EAAI,GAAG,GAAU,KAAK,KAAK,CAGlG,EAEa,IAA0B,EAAY,IAA2C,CAC5F,GAAI,OAAO,OAAW,KAAe,CAAC,EAAI,MAAO,CAAC,EAElD,IAAM,EAAS,IAAI,gBAAgB,OAAO,SAAS,QAAU,EAAE,EACzD,EAA0B,CAAC,EACjC,IAAK,IAAM,KAAW,EAAM,CAC1B,IAAM,EAAW,GAAgB,CAAO,EAExC,GAAI,CAAC,EAAU,SAEf,IAAM,EAAQ,IAAoB,EAAS,EAAO,OAAO,GAAuB,EAAI,CAAQ,CAAC,CAAC,EAE1F,IAAU,SACZ,EAAK,GAAY,EAErB,CAEA,OAAO,CACT,EAEa,KACX,EACA,EACA,IACG,CACH,GAAI,OAAO,OAAW,KAAe,CAAC,EAAI,OAE1C,IAAM,EAAS,IAAI,gBAAgB,OAAO,SAAS,QAAU,EAAE,EACzD,EAAW,GAAyB,CAAI,EAC9C,IAAK,IAAM,KAAW,EAAM,CAC1B,IAAM,EAAW,GAAgB,CAAO,EAExC,GAAI,CAAC,EAAU,SAEf,IAAM,EAAM,GAAuB,EAAI,CAAQ,EACzC,EAAQ,EAAO,GAErB,GAAI,GAAuB,EAAO,EAAS,EAAS,EAAG,CACrD,EAAO,OAAO,CAAG,EACjB,QACF,CAEA,IAAM,EAAa,IAAwB,CAAK,EAE5C,EACF,EAAO,IAAI,EAAK,CAAU,EAE1B,EAAO,OAAO,CAAG,CAErB,CACA,GAAwB,CAAM,CAChC,EAEM,GAAyB,IAAgB,CAC7C,GAAI,SAAS,EAAG,UAChB,IAAK,SAAS,EAAG,UACnB,GAEa,KAAwB,EAAY,IAAkD,CACjG,GAAI,OAAO,OAAW,KAAe,CAAC,EAAI,OAAO,KAEjD,IAAM,EAAS,IAAI,gBAAgB,OAAO,SAAS,QAAU,EAAE,EACzD,CAAE,KAAI,OAAQ,GAAsB,CAAE,EACtC,EAAS,EAAO,IAAI,CAAE,GAAG,KAAK,EAEpC,GAAI,CAAC,EAAQ,OAAO,KAEpB,IAAM,EAAS,EAAO,IAAI,CAAG,GAAG,KAAK,EAC/B,EAAS,EAAiB,KAC7B,GAAU,EAAM,WAAa,EAAM,KAAO,GAAU,GAAqB,CAAK,IAAM,EACvF,EAIA,OAFK,EAEE,CACL,SAAU,EAAO,GACjB,IAAK,GAAqB,CAAM,EAChC,IACE,IAAW,KAAgB,IAAW,IACjC,EACD,GAA4B,CAAM,CAC1C,EAToB,IAUtB,EAEa,KACX,EACA,EACA,IACG,CACH,GAAI,OAAO,OAAW,KAAe,CAAC,EAAI,OAE1C,IAAM,EAAS,IAAI,gBAAgB,OAAO,SAAS,QAAU,EAAE,EACzD,CAAE,KAAI,OAAQ,GAAsB,CAAE,EAExC,GAAQ,CAAC,IAAqB,EAAM,CAAgB,GACtD,EAAO,IAAI,EAAI,EAAK,GAAG,EACvB,EAAO,IAAI,EAAK,EAAK,GAAG,IAExB,EAAO,OAAO,CAAE,EAChB,EAAO,OAAO,CAAG,GAGnB,GAAwB,CAAM,CAChC,EC3Fa,IAA+C,CAC1D,CAAE,MAAO,QAAS,MAAO,UAAW,IAAK,CAlEzC,QAAS,YACT,MAAO,CACL,CACE,EAAG,UACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,wKACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,UACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,WACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,CACF,CAwCyC,CAAmB,EAC5D,CAAE,MAAO,eAAgB,MAAO,qBAAsB,IAAK,CArC3D,QAAS,YACT,MAAO,CACL,CACE,EAAG,YACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,aACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,cACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,qBACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,wBACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,CACF,CAK2D,CAAyB,EACpF,CAAE,MAAO,QAAS,MAAO,SAAU,IAAK,CAlGxC,QAAS,YACT,MAAO,CACL,CACE,EAAG,4KACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,6MACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,6OACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,EACA,CACE,EAAG,4MACH,YAAa,UACb,cAAe,QACf,eAAgB,OAClB,CACF,CAwEwC,CAAmB,CAC7D,8qBC3GA,aAo8BU,EAAiB,iBAIb,EAAK,IAAK,MAAM,EAH3B,6BACU,EAAiB,wBACnB,EAAU,wCAEN,GAAU,GAAiB,CAAK,MA7zBvC,EAA+C,OAAY,YAAK,CACpE,KAAI,GACJ,MAAO,GAAS,CAAC,GAIjB,EAAO,yBACP,EAAO,gBAAG,CAAc,EAExB,EAAQ,iBAAG,EAAE,EACb,EAAQ,iBAAG,EAAI,EACf,EAAe,wBAAG,GAAG,EACrB,EAAe,wBAAG,CAAC,EACV,EAAe,gBAAG,EAAK,EAChC,EAAK,cAAG,MAAM,EACd,EAAI,aAAG,MAAM,EACb,EAAe,wBAAG,0EAA0E,EAC5F,EAAW,oBAAG,IAAI,EAClB,EAAW,oBAAG,EAAI,EAClB,EAAW,oBAAG,IAAI,EAClB,EAAU,mBAAG,IAAI,EAEjB,EAAmB,4BAAG,IAAI,EAG1B,EAAY,qBAAG,IAAI,EACnB,EAAa,sBAAG,IAAI,EACpB,EAAY,qBAAG,EAAE,EACjB,EAAkB,2BAAG,eAAe,EACpC,EAAiB,0BAAG,EAAK,EACzB,EAAW,oBAAG,EAAK,EACnB,EAAkB,2BAAG,UAAU,EAC/B,EAAe,wBAAG,EAAK,EACvB,EAAY,qBAAG,MAAS,EACxB,EAAoB,6BAAG,EAAI,EAC3B,EAAuB,gCAAG,MAAS,EACnC,GAAY,qBAAG,MAAS,EACX,GAAqB,oBAAG,IAAI,EACzC,GAAiB,0BAAG,MAAS,EAC7B,GAAmB,4BAAG,MAAS,EAC/B,GAAM,eAAG,IAAI,EACb,GAAe,wBAAG,IAAI,EAiBtB,GAAQ,iBAAG,IAAI,EAMX,GAAe,IAAO,KAAK,aAAa,OAAO,EAC/C,GAA+B,MAAY,EAAuB,GAAI,EAAK,GAE3E,GAAwB,qBACxB,GAAW,MAAqB,GAAoB,EAAU,IAE9D,OAA4C,WACrC,aAAiB,IAAW,OAAS,SAE1C,EAAM,aAAa,QAAQ,EAAqB,SAE/C,IAAQ,SAAW,IAAQ,gBAAkB,IAAQ,SAAW,IAAQ,OAC1E,EACD,IACN,EAEM,GAAmB,GAAuB,aACnC,aAAiB,QAExB,CACF,aAAa,QAAQ,GAAuB,CAAQ,CACtD,OAAS,EAAK,CACZ,QAAQ,KAAK,sCAAuC,CAAG,CACzD,CACF,EAEM,GAAiB,MAChB,GAAQ,EAET,GAAQ,EAAC,eAAa,iBAA2B,SAEzC,GAAQ,EAAE,cAAa,iBAJb,IAKvB,EAEG,GAAwB,EAAO,EAAK,EAElC,GAAgB,MACpB,EAAO,4BAA4B,EAAiB,GAAE,iBAAiB,EAEnE,GAAoB,MAAY,EAAW,GAAI,EAAO,cAAgB,EAAO,eAE7E,GAAqB,QACzB,MACI,EAAiB,GAAE,eAAe,SAChC,EAAiB,EAAC,cAClB,QAGF,GAAiB,QACrB,MACI,MACA,EAAqB,EAAC,OAAQ,GAAU,EAAM,QAAU,cAAc,GAGtE,GAAmB,QACvB,EAAgB,KAAI,EAAiB,EAAC,OAAS,GAAC,yBAE5C,GAAe,QAAY,EAAmB,OAAM,EAAiB,GAAE,aAAa,EACpF,GAAe,QACd,EAAiB,GAAE,iBAEb,EAAS,GAAK,cAEf,EAAiB,EAAC,QAAO,IAAK,GAAgB,OAAM,EAAC,EAAS,MAFvC,EAAS,EAAiB,EAAC,QAFpB,EAKzC,EAEK,GAAsB,GAAyC,OAC9D,EAAiB,EAAC,OAAM,OAAS,QAEhC,EAAO,EAAG,EAAiB,EAAC,IAAK,GAAU,EAAM,KAAK,SAExD,GAAa,EAAQ,SAAS,CAAS,EAAU,EAEjD,EAAI,GAAI,EAAQ,SAAS,EAAI,GAAU,IAEpC,EAAQ,EACjB,EAEI,GAAiB,EAAwB,IAAI,EAC7C,GAAU,MAAsB,GAAkB,EAAC,EAAc,GAAI,EAAI,IAG7E,OAAc,kCAGP,EAAgB,KAAI,EAAiB,EAAC,SAAW,EAAG,wBAClC,IAAI,QAG3B,+BAEqB,CAAiB,6BAEJ,IAAI,CAJtC,CAKF,CAAC,MAEK,GAAO,MAAqB,GAA2B,GAAM,IAC/D,GAAe,EAAM,GACvB,OAAc,KACN,EAAiB,GAA2B,GAAM,UAGjD,GACL,EACA,GAJgB,GAAoB,EAAU,CAIvB,EAAW,CAAc,EAEpD,CAAC,IAEC,GAAY,EAAM,GAAiB,OAAc,EAAW,KAC1D,GAAmB,MACvB,IAAwB,EAAO,EAAE,EAAW,IAExC,GAAa,MACjB,GAAuB,EAAO,IAAE,EAAS,MAAK,EAAmB,GAE7D,GAAa,MAAY,EAAW,KAAI,EAAO,EAAC,OAAS,CAAC,EAC1D,GAAgB,WAAe,EAAW,KAAI,GAA8B,EAAC,EAAO,MACtF,GAAsB,EAAO,CAAC,EAE5B,IAAqB,EAAkB,IAAoC,KACzE,EAAO,EAAG,EAAY,EAAC,MAEzB,GAAuB,EAAS,CAAK,aAEnC,EAA6B,MAC9B,EAAY,GACd,GAAW,CAAK,IAEnB,GAAe,MACf,IAAuB,EAAC,EAAW,IAAE,EAAO,EAAE,CAAU,EACxD,GAAc,EAAI,CACpB,EAEM,GAAoB,GAAsB,KACxC,EAAW,IAAqB,EAAM,EAAE,EAAa,MAAK,IAC1D,EAAoB,GAAuB,EAAO,EAAE,CAAQ,KAAK,MACvE,GAAY,MACZ,IAAqB,EAAC,EAAW,EAAE,EAAiB,EAAE,EAAmB,GACzE,GAAc,EAAI,CACpB,EAIM,GAAgB,MACpB,EAAQ,GAAI,EAAQ,EAAG,EAAI,EAAQ,EAAG,EAAiB,EAEnD,GAAS,aACF,EAAO,GAAK,WAAmB,KAE1C,QAAQ,KAAK,wEAAwE,EAE9E,EACR,EAEG,GAAe,EAAO,EAAI,EAC1B,GAAc,EAAO,EAAK,EAC1B,GAAW,EAAM,QACjB,GAAkB,EAAM,QACxB,GAAY,EAAsB,IAAI,EACtC,GAAgB,EAAO,CAAC,EACxB,GAAa,EAAsB,IAAI,EACvC,GAAa,EACb,GAAa,GACb,GAAoD,KACpD,GAAiB,EAAM,GAA8B,OAAO,gBAC5D,GAAuB,EAAM,GAAC,OAAO,EAAO,EAAgB,KAC5D,GAA+B,EAAO,EAAE,EACxC,GAA0B,EAAO,EAAE,EACnC,GAAmC,EAAO,EAAE,EAC5C,GAAiD,GAE/C,GAAO,QACL,EAAY,GAAK,EAAQ,EAAe,KAAK,EAAQ,EAAC,SAAW,CAAC,EAEpE,GAAa,GAAiB,GAAU,EAAG,YAC3C,IAAqB,EAAc,IAAuB,GAAU,CAAG,EACvE,GAAc,GAAuB,EAAS,EACpD,GAAW,GAAoB,EAAW,MACtC,GAAe,EAAO,EAAK,EAC3B,GAAW,EAAO,EAAK,EACrB,GAAS,SAAa,EAAQ,MAAK,EAAY,KAAI,EAAU,IAAK,QAAO,EAC/E,OAAc,KACN,EAAQ,OAAO,WAAW,oBAAoB,EAC9C,MAAe,GACnB,GAAe,EAAM,WACvB,EACM,MACJ,OAAgB,GACd,GAAW,GACb,CAAC,EACG,MAAmB,GACvB,GAAW,GACb,SACA,EAAM,EACN,EAAM,iBAAiB,SAAU,CAAM,EACvC,OAAO,iBAAiB,cAAe,CAAW,EAClD,OAAO,iBAAiB,aAAc,CAAU,MAEnC,CACX,EAAM,oBAAoB,SAAU,CAAM,EAC1C,OAAO,oBAAoB,cAAe,CAAW,EACrD,OAAO,oBAAoB,aAAc,CAAU,CACrD,CACF,CAAC,MACK,GAAgB,GAAoB,KAClC,EAAG,IAAO,YACL,KAAO,EAAM,KAChB,EAAK,GAAU,CAAG,KAEpB,EAAI,IAAI,CAAE,QAAa,MAAM,gCAAgC,EAEjE,EAAI,IAAI,CAAE,CACZ,QAEO,CACT,EACM,IAAe,EAAc,IAAgB,gBACnC,EAAK,CAAQ,MACvB,IAAiB,EAAc,IACnC,GAAQ,GAAY,EAAK,CAAQ,EAAE,UAAY,GAAY,EAAK,CAAQ,EAAE,SACtE,IAAmB,EAAc,IAAqB,KACpD,EAAW,GAAY,EAAK,CAAQ,SAElC,EAAS,SAAO,CAAK,EAAS,UAAY,EAAS,aAAe,EAC5E,EACM,GAAmB,MAAY,MAAM,QAAQ,GAAqB,IAClE,GAAsB,MAC1B,MAAM,KAAI,IAAK,KAAK,GAAqB,OAAQ,IAAK,GAAE,GAAQ,GAAE,EAAI,OAAO,OAAO,KAEhF,GAAc,QAAY,EAAQ,EAAC,KAAK,EAAK,IAAa,GAAU,CAAG,IACvE,GAAgB,UAAgB,IAAG,EAAC,EAAc,IAClD,GAAQ,UAAgB,IAAG,EAAC,EAAQ,EAAC,IAAK,GAAG,CAAM,GAAU,CAAG,EAAG,CAAG,KACtE,GAAwB,UAAgB,IAAG,EAAC,EAAsB,IAClE,GAAiB,QACrB,IACG,KAAK,EAAK,IAAc,GAAgB,EAAK,CAAQ,EAAI,GAAU,CAAG,EAAI,IAAI,EAC9E,OAAQ,GAAuB,EAAQ,CAAG,GAEzC,GAAmB,UAAgB,IAAG,EAAC,EAAiB,IACxD,GAA0B,UAC1B,IAAG,EACL,IACG,KAAK,EAAK,IACT,GAAc,EAAK,CAAQ,EAAI,GAAkB,EAAK,CAAQ,EAAI,IAAI,EAEvE,OAAQ,GAAqB,EAAQ,CAAE,IAGxC,GAAwB,MAC5B,MACI,MACE,IACG,KAAK,EAAK,IACT,GAAgB,EAAK,CAAQ,KAC7B,EAAwB,EAAC,IAAI,GAAkB,EAAK,CAAQ,GACxD,GAAU,CAAG,EACb,IAAI,EAET,OAAQ,GAAuB,EAAQ,CAAG,IAC7C,EAAe,EAAC,OAAQ,GAAG,EAAK,EAAgB,EAAC,IAAI,CAAG,KAAK,EAAmB,EAAC,IAAI,CAAG,OAG1F,GAAiB,UAAgB,IAAG,EAAC,EAAwB,IAC7D,GAAa,UAAgB,IAAG,EAAC,EAAQ,EAAC,KAAK,EAAK,IAAK,CAAM,GAAU,CAAG,EAAG,CAAK,KACpF,GAAU,UACV,IAAG,EACL,EAAQ,EAAC,KAAK,EAAK,IAAK,CAAM,GAAU,CAAG,EAAG,GAAiB,aAAa,EAAK,CAAK,MAGpF,GAAiB,GAAY,EAAK,EAAU,EAAC,IAAI,GAAU,CAAG,IAAM,GACpE,GAAY,MAChB,KAAK,IACH,GAAE,KACC,EAAQ,EAAC,KAAK,EAAK,IACpB,IAAgB,GAAc,CAAG,kBAAiB,EAAK,CAAK,GAAG,QAAU,CAAC,KAI1E,IAAkB,EAAc,IAAqB,IACrD,GAAc,EAAK,CAAQ,mBAAmB,EAAK,CAAQ,GAAG,MAAK,MAAS,yBAEzD,OAEjB,EAAU,GAAc,CAAG,EAAE,cAE5B,GACL,GAAO,CACN,EAAQ,UAAQ,CAChB,EAAQ,gBAAc,CACtB,EAAQ,SACT,GAAY,MAAM,EAAK,CAAO,IAAM,UAExC,EACI,GAAa,EAAM,IAAuC,MAAK,GAAM,IAAG,MACtE,GAAY,QAChB,EAAQ,EAAC,QACN,EAAK,IAAa,GAAgB,EAAK,CAAQ,KAAK,EAAiB,EAAC,IAAI,GAAU,CAAG,KAGtF,GAAW,QACf,MACI,EAAsB,EAAC,OAAQ,GAAE,GAAM,EAA0B,EAAC,IAAI,CAAE,KACxE,EAAY,EAAC,KAAK,EAAK,IAAa,GAAkB,EAAK,CAAQ,IAEnE,GAAa,QAAY,EAAmB,IAAG,EAAW,EAAC,SAAS,EAAY,EAAC,MAAM,EACvF,GAAkB,QACtB,EAAiB,EAAC,OAAS,GAAC,EAAI,EAAY,EAAC,SAAM,EAAK,EAAiB,EAAC,MAAM,EAE5E,GAAmB,QACvB,EAAY,EAAC,OAAS,GAAC,EAAI,EAAY,EAAC,OAAM,EAAG,EAAiB,EAAC,MAAM,EAGrE,GAAO,QACP,EAAO,MAEN,EAAgB,EAAS,KAE1B,EAAS,IAAK,MAAI,EAAI,EAAS,IAAK,OAAS,EAAS,EAAQ,EAAC,OAAM,EAAG,MAErE,EAAa,KAAI,GACzB,EAEK,GAAQ,MACZ,EACA,IACG,KACE,GAAU,WAET,EAAK,EAAG,EAAgB,GAAI,GAC5B,EAAS,EAAQ,EAAC,EAAG,EAAQ,EAAC,OAC9B,EAAiB,IAAiB,EAAC,EAAO,IAAE,EAAY,EAAE,GAAe,GACzE,EAAW,EAAG,IACd,EAAsB,EACxB,IAAwB,CACtB,QAAS,EACT,QACA,SACA,KAAM,CAAW,GAEnB,MAEA,GAAK,CAAK,GAAS,OAAS,IAAmB,EAAK,EAAuB,SAE3E,KACF,GAA0B,UAGtB,EAAY,EAAK,GAEnB,KACF,GAAe,MACf,GAAc,MACd,GAAa,OACf,EACE,GAAc,OAGZ,KACI,EAAM,QAAS,EAAS,GAC5B,QAAS,EACT,QACA,SACA,KAAM,CAAW,MAGf,IAAiB,GAAU,WAEzB,EAAW,GAAQ,MAAI,KAC7B,GAAgB,EAAS,aACzB,GAAS,OAAU,GAAQ,OAAU,SAAW,EAAO,MAAQ,WAC/D,GAAW,GAAa,EAAQ,EAAW,IAAe,EAAC,EAAQ,EAAE,EAAU,EAAS,SACxF,GAAa,MACb,GAAmB,oBAGjB,KAAI,EAAE,EAAQ,EACd,MAAK,EAAE,EAAS,GAEpB,OAAS,EAAK,IACR,IAAiB,GAAU,YAE/B,GAAa,aAAe,MAAQ,EAAI,QAAU,sCAAoC,IAElF,KACF,GAA0B,EAAC,EAGzB,MACF,GAAQ,SACR,GAAY,QACZ,GAAgB,IAGd,GAAS,qBACL,CAEV,QAAU,CACJ,IAAiB,OACnB,GAAe,MACf,GAAc,IAElB,CACF,EAEI,GAA6C,KAC7C,GAA+C,KAE7C,OAA4B,CAG9B,MADA,aAAa,EAAW,EACV,MAGhB,KAAqB,EACrB,GAAwB,IAC1B,EAEM,IACJ,EACA,IACkB,KACb,IAAU,CAAK,EAAQ,SAAS,QAAQ,QAAO,EAEpD,GAAmB,MACb,EAAQ,KAAK,IAAI,EAAG,EAAe,GAAI,CAAC,aAEnC,SAAe,EAAS,IAAW,CAC5C,GAAwB,EAexB,GAAc,eAdQ,KACd,EAAyB,GAC/B,GAAc,KACd,GAAwB,KACnB,QAAQ,QAAO,EACjB,KAAI,SAAa,CACZ,SACI,EAAuB,UAAY,CAAC,CAAC,QAGvC,GAAS,EAAO,CAAO,CAC/B,CAAC,EACA,KAAK,EAAS,CAAM,CACzB,EACkC,CAAK,CACzC,CAAC,CACH,EAEM,QACC,IAAU,CAAK,EAAQ,EAAS,QAAQ,QAAO,GAEpD,GAAmB,EAEf,KAEJ,GAAyB,GAAS,GAAI,CAAI,MAAO,GAAM,eAAgB,EAAI,GAAI,YAAc,CAC3F,GAAyB,IAC3B,CAAC,EAEM,KAGH,GAAgC,GACpC,KAAK,WAAW,GAAO,IAAQ,IAAK,GAAM,CAAM,EAAO,MAAO,EAAO,OAAS,IAAI,IAE9E,OAAkC,CACtC,GAA+B,QAAS,GAAe,EAAU,GACjE,GAA8B,EAChC,EAEM,OAAoC,CACxC,GAAyB,EACzB,IAAkC,EAAmB,OAAQ,IAAK,GAChE,IAA4B,EAAQ,EAAU,EAElD,EAEM,OAAiB,GACjB,EAAO,KAAI,EAAW,MAAK,EAAO,GAEjC,GAAS,EAAK,CACrB,EAEM,GAAyB,GAC7B,MAAM,KAAI,IAAK,KAAK,MAAM,QAAQ,CAAG,EAAI,EAAG,IAAO,IAAK,GAAE,GAAQ,GAAE,EAAI,OAAO,OAAO,IAElF,GAAuB,GAC3B,GAAsB,MAAM,QAAQ,CAAG,EAAI,EAAG,EAAG,EAAW,GAExD,GAA8B,GAAsD,KAClF,EAAc,GAAoB,CAAG,EACrC,EAAa,IAAO,IAAI,CAAW,SAMvC,aALuB,EAAG,EAAQ,EAAC,QAAQ,EAAK,IAChD,EAAc,IAAI,GAAkB,EAAK,CAAQ,EAInC,EACd,cAAe,EAAY,OAC3B,YAAa,EACb,kBACA,oBAEJ,EAEM,GAAuB,GAA0B,KAChD,EAAe,IAEf,GAAiB,IAAK,GAAmB,aAExC,EAAS,GAA2B,CAAG,EAC7C,GAAiB,IAAG,CAAM,EAC1B,GAAmB,IAAG,CAAM,CAC9B,EAEM,OAAuB,GACtB,EAAW,EAAC,WAEZ,EAAmB,KACtB,GAAe,OAGjB,GAAmB,IACrB,EAEM,GAAsB,GAAiB,KACtC,EAAe,aAEd,EAAQ,EAAG,EAAa,EAAC,IAAI,GAAU,CAAG,UAE5C,GAAY,GAAC,CAAK,GAAgB,EAAK,CAAQ,aAE7C,EAAM,GAAU,CAAG,EACnB,EAAK,GAAkB,EAAK,GAAY,EAAI,EAAW,MAAS,OAElE,EAAmB,EAAE,CAIvB,GAHa,EAAG,EAAwB,EAAC,IAAI,CAAE,IAC3C,EAAW,EAAC,OAAQ,GAAU,IAAU,CAAE,EAC1C,MAAM,KAAI,IAAK,IAAG,MAAK,EAAW,EAAE,CAAE,GACf,QAG7B,GAEA,KAAkB,EAAiB,EAAC,IAAI,CAAG,IACvC,EAAe,EAAC,OAAQ,GAAU,IAAU,CAAG,QAC3C,EAAe,EAAE,CAAG,MAE5B,GADa,EAAG,EAAe,EAAC,OAAQ,GAAE,EAAK,EAAQ,EAAC,IAAI,CAAE,CAC1C,CAAO,CAC7B,EAEM,OAAyB,KACxB,EAAe,aAGd,EADc,EAAG,EAAQ,EAAC,QAAQ,EAAK,IAAa,GAAgB,EAAK,CAAQ,CACpE,EAAe,IAAI,EAAS,EACzC,EAAY,IAAO,IAAI,CAAU,EAElC,KAAW,aAEZ,EAAmB,EAAE,CAIvB,GAHa,EAAG,MACZ,EAAW,EAAC,OAAQ,GAAK,CAAM,EAAa,IAAI,CAAK,GACrD,MAAM,KAAI,IAAK,IAAG,MAAK,EAAW,KAAK,CAAU,GAC1B,QAG7B,GAEA,KAAkB,MACd,EAAe,EAAC,OAAQ,GAAE,CAAM,EAAa,IAAI,CAAE,GACnD,MAAM,KAAI,IAAK,IAAG,MAAK,EAAe,KAAK,CAAU,QACzD,GAAmB,EAAC,EAAe,EAAC,OAAQ,GAAE,EAAK,EAAQ,EAAC,IAAI,CAAE,GALlE,CAMF,EAEM,IAAuC,EAAY,EAAO,KAAU,KAClE,EAAW,EAAU,EAAC,EAAQ,OAE/B,MAAM,QAAQ,CAAQ,WAE3B,GAAW,GAAa,CAAQ,MAE5B,UAAW,KACb,UACS,EAAQ,OAAU,WAAa,EAAQ,MAAK,EAAC,EAAS,GAAK,EAAQ,OAAS,aAGjF,EAAe,IAAO,IAAG,EAAC,EAAQ,EAAC,KAAK,EAAK,IAAa,GAAU,CAAG,IACvE,EAAmB,EAAG,EAAe,EAAC,OACzC,GAAQ,EAAgB,IAAI,CAAG,KAAK,EAAmB,EAAC,IAAI,CAAG,GAG9D,EAAoB,SAAM,EAAK,EAAe,EAAC,UACjD,GAAkB,MAGpB,GAAmB,oBAEjB,KAAI,EAAE,EAAQ,EACd,MAAK,EAAE,EAAS,GAEpB,EAEA,OAAc,IACZ,GAAa,8CAE8B,EAAU,qCAElB,EAAiB,IAEhD,EAAW,IACb,GAAY,IAAoB,EAAC,EAAW,EAAE,EAAO,SAErD,GAAY,QAGd,GAA+B,GAAyB,GAAe,OAEnE,EAAQ,GACL,GAAS,EAAI,IAGpB,GAAmC,GAA6B,EAAmB,OACnF,GAA2B,EAEvB,EAAW,IACb,GAAiB,SACZ,KACC,EAAS,GAAkB,EAE7B,KACF,GAAiB,KAErB,WAEa,CACX,GAAa,GACb,IAAc,EACd,GAAmB,EACnB,GAAyB,CAC3B,CACF,CAAC,EAGD,OAAc,KACN,EAAY,GAA6B,EAAmB,OAE7D,GAAY,GACf,GAAmC,YAGrC,CAEI,IAAS,EAAK,EAAgC,MAElD,GAAmC,MACnC,GAA2B,EAC7B,CAAC,EAGD,OAAc,KACP,GAAY,GACf,GAAc,uBAGhB,kBAEmB,EAAc,MAEjC,GAAc,iBACd,GAAc,GAAI,CAAI,MAAO,EAAI,GACnC,CAAC,EAGD,OAAc,KACN,EAAS,EAAG,IAEd,IAAS,EAAK,EAAoB,MAEtC,GAAuB,QACvB,GAAe,GAAwB,EAAC,EAAO,QAC1C,EAAY,KACZ,GAAsB,EAAC,EAAW,IAAE,EAAO,WAEhD,GAAmB,EAAnB,EAAmB,EAAI,GAEnB,IACF,GAAc,GAAI,CAAI,MAAO,EAAI,GAErC,CAAC,EAGD,OAAc,KACN,EAAY,GAAyB,GAAe,OAErD,GAAY,GACf,GAA+B,YAGjC,CAEI,IAAS,EAAK,EAA4B,MAE9C,GAA+B,MAC/B,GAAc,EAAI,EACpB,CAAC,MAIG,GAAe,MAAY,EAAO,EAAC,KAAM,GAAM,EAAE,SAAS,GAAG,IAAM,EAAO,EAAC,IAAI,IAAM,EAAE,EAEvF,GAAe,MACjB,EAAY,GAAI,EAAY,EAAC,OACzB,EAAO,EAAC,OAAQ,GAAM,EAAY,EAAE,SAAS,EAAE,EAAE,GACjD,EAAO,EAAC,OAAQ,GAAM,EAAE,cAAgB,EAAK,GAG/C,GAAW,aACN,EAAa,GAAK,WAAW,EAAe,EAAC,MAAM,EAAG,EAAa,KAAI,EAAe,GAEzF,GAAiB,QAAY,EAAU,IAAK,cAAc,EAE1D,GAAkC,GAAuC,CACzE,IAAyB,EAAK,EAAqB,KAEvD,GAAwB,KAC1B,EAEM,GAAoB,GAAuB,CAC3C,IAAQ,EAAK,EAAU,MAE3B,GAAa,KACb,GAAiB,MACjB,GAAgB,CAAQ,mBACT,CAAQ,EACzB,WAES,GAAe,EAAc,KAC9B,EAAQ,EAAG,EAAa,EAAC,IAAI,GAAU,CAAG,WAE3C,GAAe,EAAK,CAAQ,yBAEjB,cACH,CAAG,QAGhB,KAEM,EAAU,GAAc,CAAG,EAAE,QAE/B,GAAO,GAAmB,IAAI,EAAK,EAAU,CAAO,CAC1D,UAES,GAAoB,EAAc,KACnC,EAAQ,EAAG,EAAa,EAAC,IAAI,GAAU,CAAG,OAE5C,GAAY,GAAK,GAAc,EAAK,CAAQ,uBAE9B,CAAG,CACvB,0DA2Bc,EAAa,QACpB,EAAG,UAAH,CAAG,gCAES,EAAiB,EAAC,eAAa,qBADrC,EAAiB,EAAC,eAAa,0BAIzB,EAAiB,cADvB,EAAmB,YAJzB,CAAG,MAAH,CAAG,aAJa,EAAiB,EAAC,mBAAqB,MAAS,EAVpE,2BACQ,EAAe,2BACZ,EAAiB,EAAC,qCACf,EAAiB,EAAC,6CACb,EAAiB,EAAC,uCAC7B,EAAiB,EAAC,4BAClB,EAAiB,EAAC,0DACW,EAAiB,EAAC,YAAU,qCAC/C,EAAiB,EAAC,iDACjB,EAAiB,EAAC,uFAElB,EAAiB,EAAC,kBAE1B,oEAsBS,EAAiB,EAAC,mBAAqB,MAAS,EAVpE,2BACQ,EAAe,2BACZ,EAAiB,EAAC,qCACf,EAAiB,EAAC,6CACb,EAAiB,EAAC,uCAC7B,EAAiB,EAAC,4BAClB,EAAiB,EAAC,iCACb,EAAiB,EAAC,2CACb,EAAiB,EAAC,iDACjB,EAAiB,EAAC,uFAElB,EAAiB,EAAC,gCArCnC,EAAe,oCADjB,EAAiB,eA0CrB,GAAG,aAAH,EAAG,SAEC,8BACE,EAAO,+BACP,EAAY,gCACE,EAAmB,sBACjC,EAAK,kBACU,iBANf,EAAa,qCAWf,EAAG,WAAH,0BAAG,MAAH,CAAG,qFAOD,mCAOI,EAAI,UAAJ,CAAI,IAAJ,CAAI,uCACD,GAAgB,OAAM,EAAC,EAAa,SADvC,CAAI,WADF,EAAoB,cAKxB,uBAIU,OAAY,CACnB,aAAY,EAAZ,EAAY,EACZ,cAAa,EAAb,EAAa,EACb,YAAW,EAAX,EAAW,EACX,kBACA,yBATH,KAXF,8FACqC,EAAoB,MADzD,wBAGoB,EAA+B,OAQjD,gGAC4C,EAAoB,UAZlE,cAyBA,EAAG,WAAH,GACU,QAAY,CACnB,aAAY,EAAZ,EAAY,EACZ,cAAa,EAAb,EAAa,EACb,YAAW,EAAX,EAAW,EACX,kBACA,yBANH,CAAG,MAAH,CAAG,WA1BD,EAAY,OAyBP,GAAY,6BA1BnB,EAAe,KAAI,EAAa,EAAG,GAAC,kCAyCtC,EAAG,UAAH,CAAG,kBAKa,EAAQ,WAEX,EAAK,IAAK,MAAM,YACJ,EAAiB,EAAG,SAAW,OAAO,qCAqBrB,GAAiB,MAAS,EA5BlE,4BAEE,EAAO,uFAGF,EAAQ,kGAGc,8BACf,EAAoB,mCAChC,EAAkB,gCAClB,EAAe,+DAEC,EAAiB,qCACjC,EAAkB,sCAClB,EAAmB,wBACE,qBACH,8EAGP,+BACX,EAAY,kEAEZ,EAAO,8BACP,EAAW,gCACX,EAAe,uBACV,EAAa,gBACL,iCAEb,iKAIA,EAAe,OAhChB,eAAkB,UAAE,EAAU,OAA9B,cAAkB,KAAE,GAAU,WAFjC,CAAG,MAAH,CAAG,cAwCH,EAAG,UAAH,CAAG,eAIU,EAAK,IAAK,MAAM,EAH3B,6DAEO,EAAQ,0DAEb,EAAW,kCACX,EAAe,0DAEH,EAAoB,cACrB,4NAMX,EAAiB,mCACjB,EAAkB,0BAClB,EAAO,mBACS,qEAEhB,EAAY,OApBhB,CAAG,MAAH,CAAG,cAzCA,EAAS,6CAmEZ,EAAG,UAAH,CAAG,OAOU,EAAW,IAClB,GAAI,qBAAO,iBALL,EAAW,EAAG,UAAY,YAAY,EAFhD,8DAGU,2BACC,EAAW,GAEX,2CAPb,CAAG,MAAH,CAAG,cADD,EAAO,qCAgBT,EAAG,UAAH,EAAG,MAAH,CAAG,cAAsB,EAAU,QAAnC,CAAG,cADD,EAAU,aA1IhB,EAAG,WAAH,GAAG,aAAgC,EAAK,KAAxC,GAAG,cAAkD,EAAU,KAA/D,GAAG,iBAA4E,EAAO,gBArD/E,CCp6BR,IAAa,IAAkB,EAAgB,IAC7C,GAAkB,EAAO,CAAE,UAAS,CAAC,EAAE,QAW5B,IAAoB,KAAO,IACtC,IAAsB,CAAQ,EAKnB,IAAqB,MAChC,EACA,IACgC,CAChC,IAAM,EAAS,MAAM,IAAkB,CAAQ,EACzC,EAAU,EAAW,GAAG,EAAS,IAAI,EAAO,UAAY,EAAO,QAC/D,EAAY,MAAM,CAAO,EAU/B,MATA,GAAM,WAAa,EAAO,WAC1B,EAAM,WAAa,EAAO,WAC1B,EAAM,WAAa,EAAO,WAC1B,EAAM,UAAY,EAAO,UACzB,EAAM,YAAc,EAAO,YAC3B,EAAM,OAAS,EAAO,OACtB,EAAM,aAAe,EAAO,aAC5B,EAAM,IAAM,EAAO,IAEZ,CACT,EAEa,GAAqB,MAAO,EAAoB,IAAsC,CACjG,MAAM,MAAM,IAAmB,EAAU,CAAQ,CACnD,EAEM,IAAkF,CACtF,CAAE,OAAQ,GAAqB,cAAe,2BAA4B,EAC1E,CAAE,OAAQ,GAAqB,cAAe,sBAAuB,EACrE,CAAE,OAAQ,GAA0B,cAAe,mBAAoB,EACvE,CAAE,OAAQ,GAA+B,cAAe,wBAAyB,EACjF,CAAE,OAAQ,GAA8B,cAAe,uBAAwB,CACjF,EAEM,IAAmB,GAA0B,IAAI,IAAI,CAAK,EAAE,OAE5D,GAAqB,GAAyC,CAClE,GAAI,CAOF,OANI,OAAO,GAAU,SACZ,IAAI,IAAI,EAAO,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,MAAS,EAGpF,aAAiB,IAAY,EAE1B,IAAI,IAAI,EAAM,GAAG,CAC1B,MAAQ,CACN,OAAO,IACT,CACF,EAEM,IACJ,GACyE,CACzE,IAAM,EAAa,GAAkB,CAAK,EAE1C,GAAI,CAAC,EAAY,OAAO,KAExB,IAAM,EAAS,EAAW,OAC1B,IAAK,IAAM,KAAa,IACtB,GAAI,IAAgB,EAAU,MAAM,IAAM,EACxC,MAAO,CAAE,aAAc,EAAQ,cAAe,EAAU,aAAc,EAI1E,OAAO,IACT,EAEM,IAAiB,GAA+D,CACpF,GAAI,OAAO,GAAS,UAAY,CAAC,EAAK,KAAK,EAAE,WAAW,GAAG,EAAG,MAAO,CAAC,EAEtE,GAAI,CACF,IAAM,EAAS,KAAK,MAAM,CAAI,EAE9B,OAAO,GAAU,OAAO,GAAW,UAAY,CAAC,MAAM,QAAQ,CAAM,EAAI,EAAS,CAAC,CACpF,MAAQ,CACN,MAAO,CAAC,CACV,CACF,EAEM,GAAuB,GAC3B,OAAO,GAAU,UAAY,EAAM,KAAK,EAAI,EAAM,KAAK,EAAI,KAEvD,KACJ,EACA,IACoD,CACpD,IAAM,EAAa,GAAkB,CAAK,EACpC,EAAO,IAAc,EAAK,IAAI,EAEpC,MAAO,CACL,eACE,GAAoB,EAAK,cAAc,cAAc,GACrD,GAAoB,GAAY,aAAa,IAAI,iBAAiB,CAAC,GACnE,GAAoB,EAAK,eAAe,GACxC,GAAoB,EAAK,cAAc,GACvC,OACF,UACE,GAAoB,EAAK,cAAc,SAAS,GAChD,GAAoB,GAAY,aAAa,IAAI,YAAY,CAAC,GAC9D,GAAoB,EAAK,UAAU,GACnC,GAAoB,EAAK,SAAS,GAClC,MACJ,CACF,EAEM,IAAgB,GACpB,CAAC,GAAU,CAAC,MAAO,OAAQ,UAAW,OAAO,EAAE,SAAS,EAAO,YAAY,CAAC,EAEjE,GAAe,MAC1B,EACA,EAAyB,CAAC,IACJ,CACtB,GAAM,CAAE,aAAc,EAAe,GAAG,GAAgB,EAClD,EACJ,EAAY,SACX,OAAO,QAAY,KAAe,aAAiB,QAAU,EAAM,OAAS,QACzE,EAAgB,IAAqB,CAAK,EAEhD,GAAI,EAAe,CACjB,IAAM,EAAQ,IAAa,EAAO,CAAI,EAChC,EAAU,GAAI,EAAc,EAC5B,EAAU,GAAsB,EAChC,EAAM,GAAkB,CAAK,EAEnC,GAAI,CAAC,GAAW,CAAC,GAAW,CAAC,EAC3B,MAAM,IAAI,aAAa,qCAAsC,mBAAmB,EAElF,GACE,EAAM,gBACN,EAAQ,QAAQ,QAAQ,OAAS,gBACjC,EAAQ,iBAAmB,EAAM,eAEjC,MAAM,IAAI,aAAa,+BAAgC,eAAe,EAExE,IAAM,EAAY,OAAO,QAAY,KAAe,aAAiB,QAAU,EAAQ,KACjF,EAAe,EAAY,QAAU,GAAW,OAEtD,GAAI,GAAc,QAAS,MAAM,IAAI,aAAa,kBAAmB,YAAY,EAEjF,IAAM,EAAS,EAAe,YAAY,IAAI,CAAC,EAAQ,OAAQ,CAAY,CAAC,EAAI,EAAQ,OAClF,EACJ,EAAY,OACX,GAAa,CAAC,IAAa,CAAa,EAAI,MAAM,EAAU,MAAM,EAAE,KAAK,EAAI,QAEhF,OAAO,GAAmB,SAAS,IACjC,CACE,QAAS,EAAQ,QACjB,YAAa,CACX,eAAgB,EAAc,cAC9B,cAAe,EAAc,aAC7B,GAAI,EAAQ,QAAQ,QAAQ,OAAS,eACjC,CAAE,WAAY,EAAM,WAAa,IAAK,EACtC,CAAC,CACP,EACA,QAAS,CAAE,GAAG,EAAS,QAAO,CAChC,EACA,KAAO,IAAY,CACjB,IAAM,EAAW,MAAM,EAAQ,GAAG,EAAI,WAAW,EAAI,SAAU,CAC7D,OAAQ,EACR,QAAS,EAAY,SAAW,GAAW,QAC3C,OACA,MAAO,EAAY,KACrB,CAAC,EAGK,EACJ,EAAS,SAAW,KAAO,EAAS,SAAW,IAAM,KAAO,MAAM,EAAS,YAAY,EAEzF,OAAO,IAAI,SAAS,EAAS,CAC3B,OAAQ,EAAS,OACjB,WAAY,EAAS,WACrB,QAAS,EAAS,OACpB,CAAC,CACH,CACF,CACF,CAEA,MAAM,IAAI,aAAa,+BAAgC,eAAe,CACxE,EC9Ja,GAAoB,IAA2C,CAC1E,GAAI,EAAK,GACT,eAAgB,EAAK,iBAAmB,EAAK,gBAAkB,KAC/D,UAAW,EAAK,YAAc,EAAK,WAAa,KAChD,cAAe,EAAK,gBAAkB,EAAK,eAAiB,KAC5D,MAAO,EAAK,OAAS,KACrB,eAAgB,EAAK,kBAAoB,EAAK,gBAAkB,KAChE,kBAAmB,EAAK,qBAAuB,EAAK,mBAAqB,KACzE,aAAc,EAAK,cACnB,YAAa,EAAK,aAClB,cAAe,EAAK,eACpB,UAAW,EAAK,UAChB,QAAS,EAAK,QACd,OAAQ,EAAK,OACb,QAAS,OAAO,EAAK,SAAW,CAAC,EACjC,UAAW,EAAK,YAAc,EAAK,WAAa,KAChD,WAAY,EAAK,aAAe,EAAK,YAAc,KACnD,YAAa,EAAK,eAAiB,EAAK,aAAe,KACvD,MAAO,EAAK,OAAS,KACrB,UAAW,EAAK,YAAc,EAAK,WAAa,EAClD,GChFM,GACJ,GACW,CACX,IAAM,EAAS,EACZ,KAAK,CAAC,EAAK,KACN,GAAiC,KAAa,KAE3C,CAAC,EAAK,OAAO,CAAK,CAAC,CAC3B,EACA,OAAO,OAAO,EAEjB,GAAI,CAAC,EAAO,OAAQ,MAAO,GAG3B,IAAM,EAAW,IADC,gBAAgB,CACjB,EAAM,SAAS,EAEhC,OAAO,EAAW,IAAI,IAAa,EACrC,EA+EM,IACJ,IAC8B,CAC9B,OAAQ,EAAQ,OAChB,WAAY,EAAQ,YACpB,UAAW,EAAQ,WACnB,OAAQ,EAAQ,OAChB,OAAQ,EAAQ,OAChB,eAAgB,EAAQ,iBACxB,UAAW,EAAQ,WACnB,UAAW,EAAQ,WACnB,aAAc,EAAQ,eAAiB,KACvC,SAAU,EAAQ,UAClB,UAAW,EAAQ,UACrB,GAEM,GAA2B,IAA4D,CAC3F,GAAI,EAAQ,GACZ,eAAgB,EAAQ,iBAAmB,EAAQ,gBAAkB,KACrE,MAAO,EAAQ,MACf,MAAO,EAAQ,MACf,UAAW,EAAQ,YAAc,EAAQ,WAAa,KACtD,cAAe,EAAQ,gBAAkB,EAAQ,eAAiB,KAClE,OAAQ,EAAQ,OAChB,UAAW,OAAO,EAAQ,YAAc,EAAQ,WAAa,CAAC,EAC9D,iBAAkB,OAAO,EAAQ,oBAAsB,EAAQ,kBAAoB,CAAC,EACpF,UAAW,EAAQ,YAAc,EAAQ,WAAa,GACtD,UAAW,EAAQ,YAAc,EAAQ,WAAa,EACxD,GAEM,IAAqC,KACzC,IACsC,CACtC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,kBACnF,CACE,OAAQ,OACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,+CAA+C,GAAe,CAAK,GAAG,CACxF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,4CAA4C,EAG1E,IAAmC,MAAM,EAAS,KAAK,CAAiC,CACjG,EAEM,IAA2B,KAAO,IAAiD,CACvF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,EAAK,CACjC,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,iDAAiD,GAAe,CAAK,GAAG,CAC1F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,8CAA8C,EAGnF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,OAAO,MAAM,QAAQ,EAAQ,KAAK,EAAI,EAAQ,MAAM,IAAI,EAAuB,EAAI,CAAC,CACtF,EAEA,eAAsB,GACpB,EAII,CAAC,EAC4B,CAOjC,OAAO,IAAyB,GAAG,GAAqB,yBAN1C,GAAiB,CAC7B,CAAC,kBAAmB,EAAO,gBAAkB,MAAS,EACtD,CAAC,iBAAkB,EAAO,eAAiB,MAAS,EACpD,CAAC,QAAS,EAAO,OAAS,MAAS,CACrC,CAEiF,GAAO,CAC1F,CAsBA,IAAM,GAAsB,MAC1B,EACA,EACA,IACkC,CAClC,IAAM,EAAM,EACR,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,IACjF,GAAG,GAAqB,yBACxB,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,EAAK,CACjC,SACA,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,EAAQ,MACf,MAAO,EAAQ,MACf,gBAAiB,EAAQ,gBAAkB,KAC3C,WAAY,EAAQ,WAAa,KACjC,eAAgB,EAAQ,eAAiB,IAC3C,CAAC,CACH,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,kDAAkD,GAAe,CAAK,GAAG,CAC3F,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,+CAA+C,EAG7E,GAAyB,MAAM,EAAS,KAAK,CAA6B,CACnF,EAEA,eAAsB,IACpB,EAC+B,CAC/B,OAAO,GAAoB,OAAQ,CAAO,CAC5C,CAEA,eAAsB,GACpB,EACA,EAC+B,CAC/B,OAAO,GAAoB,QAAS,EAAS,CAAY,CAC3D,CAEA,eAAsB,GAAqB,EAAqC,CAC9E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,IACjF,CACE,OAAQ,SACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,+CAA+C,GAAe,CAAK,GAAG,CACxF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,4CAA4C,CAEnF,CAEA,eAAsB,IACpB,EACA,EACe,CACf,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,iBACnF,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,CAAE,KAAI,CAAC,CAC9B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,0CAA0C,GAAe,CAAK,GAAG,CACnF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,uCAAuC,CAE9E,CAiDA,IAAM,GAAuB,IAAoD,CAC/E,GAAI,EAAQ,GACZ,OAAQ,EAAQ,OAChB,UAAW,EAAQ,WACnB,KAAM,EAAQ,MAAQ,KACtB,KAAM,EAAQ,MAAQ,KACtB,aAAc,EAAQ,eAAiB,KACvC,SACE,EAAQ,iBACR,EAAQ,gBACR,EAAQ,WACR,EAAQ,UACR,GACF,UAAW,EAAQ,YAAc,EAAQ,WAAa,GACtD,cAAe,EAAQ,gBAAkB,EAAQ,eAAiB,KAClE,MAAO,EAAQ,MACf,UAAW,EAAQ,UACnB,WAAY,EAAQ,YACpB,WAAY,EAAQ,YACpB,WAAY,EAAQ,cAAgB,KACpC,WAAY,EAAQ,cAAgB,KACpC,UAAW,EAAQ,YAAc,KACjC,YAAa,EAAQ,cACrB,WAAY,EAAQ,YACtB,GAkBA,eAAsB,IACpB,EACA,EAAiC,CAAC,EACH,CAC/B,IAAM,EAAQ,GAAiB,CAC7B,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,EAC1E,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,QAAU,MAAS,CACvC,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,aAAa,IAChG,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,EAG1E,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,MAAO,EAAQ,MAAM,IAAI,EAAmB,EAC5C,MAAO,EAAQ,KACjB,CACF,CAEA,IAAa,IAAoC,GAC/C,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,oBAErF,eAAsB,IACpB,EAOI,CAAC,EACyB,CAC9B,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,uBAAuB,GAAiB,CAC9D,CAAC,kBAAmB,EAAO,gBAAkB,MAAS,EACtD,CAAC,aAAc,EAAO,WAAa,MAAS,EAC5C,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,EAC1E,CAAC,SAAU,EAAO,QAAU,MAAS,CACvC,CAAC,IACD,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,eAAsB,IACpB,EACA,EAKI,CAAC,EACyB,CAC9B,IAAM,EAAQ,GAAiB,CAC7B,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,EAC1E,CAAC,SAAU,EAAO,QAAU,MAAS,CACvC,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,YAAY,IAC/F,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,IAAa,GAA8B,GAIzC,GAAG,GAAqB,8BAA8B,GAAiB,CACrE,CAAC,kBAAmB,EAAO,gBAAkB,MAAS,EACtD,CAAC,aAAc,EAAO,WAAa,MAAS,CAC9C,CAAC,IAEU,IAAwC,GACnD,GAAG,GAAqB,0BAA0B,mBAAmB,CAAY,EAAE,mBAErF,eAAsB,IAAgB,EAA6C,CACjF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAqB,oBAAoB,EAAS,iBACrD,CACE,OAAQ,OACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,yCAAyC,GAAe,CAAK,GAAG,CAClF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,sCAAsC,EAGpE,GAAqB,MAAM,EAAS,KAAK,CAAyB,CAC3E,iDC9hBA,aA8BI,EAAK,eAAa,cAAc,EAChC,EAAY,8BACZ,EAAS,mBAAa,EAAE,EACxB,EAAc,gCACd,EAAc,wBAAa,EAAE,EAC7B,EAAkB,oCAClB,EAAQ,iBAAG,EAAK,EAChB,EAAQ,iBAAG,UAAU,EAErB,EAAc,uBAAG,eAAe,EAChC,EAAkB,2BAAG,mBAAmB,EACxC,EAAgB,yBAAG,YAAY,EAC/B,EAAkB,2BAAG,SAAS,EAC9B,EAAsB,+BAAG,cAAc,EACvC,EAAY,qBAAG,MAAS,EACxB,EAAc,uBAAG,MAAS,EAC1B,EAAkB,2BAAG,MAAS,EAC9B,EAAa,sBAAG,MAAS,EACzB,EAAe,wBAAG,MAAS,EAC3B,EAAmB,4BAAG,MAAS,EAG3B,EAAkB,GAAyB,KACzC,EAAU,EAAmD,iBAExD,GAAW,SAAQ,OAAS,KAEnC,GAAM,OAAW,GAAW,UAAQ,OAAW,EAAO,OAAU,SAAQ,OACnE,EAAO,UAEV,EAAS,EAAM,qBAEd,OAAO,GAAQ,OAAS,EAAE,EAAE,KAAI,CACzC,EAEM,EAAkB,GAA0B,KACzC,EAAgB,IAAM,OAAO,GAAS,EAAE,EAAE,MAAM,KAAM,CAAC,SAEvD,EAAc,KAAI,CAC3B,EAEM,EAAqB,GAAiB,KACpC,EAAa,EAAe,CAAK,GAAoB,eAC3D,EAAQ,GACR,EAAa,IAAG,CAAS,CAC3B,EAEM,EAAuB,GAAiB,KACtC,EAAgB,EAAe,CAAK,EAC1C,EAAY,GACZ,EAAe,IAAG,CAAa,CACjC,EAEM,EAA2B,GAAiB,KAC1C,EAAqB,EAAe,CAAK,EAC/C,EAAiB,OACX,EAAgB,EAAe,CAAkB,EAEnD,GACF,EAAY,GAGd,EAAmB,IAAG,CAAkB,CAC1C,MAGD,EAAG,UAAH,CAAG,EACC,0DAEY,EAAgB,sCAGpB,EAAY,yBACpB,EAAQ,wBACA,EAAY,YACX,MAJV,OAAU,QAAE,EAAK,OAAjB,MAAU,GAAE,EAAK,yBAQZ,sBACC,EAAc,4BACL,EAAkB,sCAGtB,EAAc,yBACtB,EAAQ,wBACA,EAAc,YACb,MAJV,OAAU,QAAE,EAAS,OAArB,MAAU,GAAE,EAAS,cAOlB,sBACC,EAAkB,4BACT,EAAsB,sCAG1B,EAAkB,yBAC1B,EAAQ,wBACA,EAAkB,YACjB,MAJV,OAAU,QAAE,EAAc,OAA1B,MAAU,GAAE,EAAc,eAhBvB,EAAK,IAAK,UAAS,KAWd,EAAK,IAAK,eAAa,YAvBpC,CAAG,UAAH,EAAG,KAAQ,EAAQ,SAAnB,CAAG,KAFI,CCxER,IAAM,GAAkB,GAA6C,OAAO,GAAS,EAAE,EAAE,KAAK,EAExF,IACJ,EACA,IAC6B,CAC7B,IAAM,EAA2B,GAAe,CAAc,EAM9D,OAJK,EAIE,EAAS,OACb,GAAY,GAAe,EAAQ,eAAe,IAAM,CAC3D,EALS,CAAC,GAAG,CAAQ,CAMvB,EAEM,GAAuB,GAEzB,GAAe,EAAQ,IAAI,GAC3B,GAAe,EAAQ,IAAI,GAC3B,GAAe,EAAQ,EAAE,GACzB,oBAIE,GAA2B,GAE7B,GAAe,EAAY,IAAI,GAC/B,GAAe,EAAY,gBAAgB,GAC3C,GAAe,EAAY,IAAI,GAC/B,GAAe,EAAY,EAAE,GAC7B,qBAIS,GAA2C,CACtD,CAAE,MAAO,eAAgB,KAAM,cAAe,EAC9C,CAAE,MAAO,UAAW,KAAM,OAAQ,EAClC,CAAE,MAAO,cAAe,KAAM,SAAU,CAC1C,EAEa,IAA6B,EAAmB,IAC3D,GAAG,GAAe,CAAS,EAAE,IAAI,GAAe,CAAa,IAElD,GACX,GACiD,CACjD,GAAM,CAAC,EAAe,GAAI,EAAmB,IAAM,OAAO,GAAS,EAAE,EAAE,MAAM,KAAM,CAAC,EAEpF,MAAO,CACL,UAAW,GAAe,CAAY,EACtC,cAAe,GAAe,CAAgB,CAChD,CACF,EAEa,IACX,EACA,IAEO,GAA6B,EAAU,CAAc,EACzD,IAAK,GAAY,CAChB,IAAM,EAAY,GAAe,EAAQ,EAAE,EAI3C,OAFK,EAEE,CACL,MAAO,EACP,KAAM,GAAoB,CAAO,CACnC,EALuB,IAMzB,CAAC,EACA,OAAO,OAAO,EACd,MAAM,EAAM,IAAU,EAAM,KAAK,cAAc,EAAO,KAAM,IAAI,CAAC,EAGzD,IACX,EACA,IAEO,GAA6B,EAAU,CAAc,EACzD,QAAS,GAAY,CACpB,IAAM,EAAY,GAAe,EAAQ,EAAE,EAE3C,GAAI,CAAC,EAAW,MAAO,CAAC,EAExB,IAAM,EAAe,GAAoB,CAAO,EAEhD,OAAQ,EAAQ,cAAgB,CAAC,GAAG,QAAS,GAAgB,CAC3D,IAAM,EAAgB,GAAe,EAAY,EAAE,EAInD,OAFK,EAEE,CACL,CACE,MAAO,GAA0B,EAAW,CAAa,EACzD,KAAM,GAAG,EAAa,IAAI,GAAwB,CAAW,EAAE,EACjE,CACF,EAP2B,CAAC,CAQ9B,CAAC,CACH,CAAC,EACA,MAAM,EAAM,IAAU,EAAK,KAAK,cAAc,EAAM,KAAM,IAAI,CAAC,EAGvD,IACX,EACA,IACkB,CAClB,IAAM,EAAsB,GAAe,CAAS,EAEpD,GAAI,CAAC,EAAqB,OAAO,KAEjC,IAAM,EAAU,EAAS,KAAM,GAAU,GAAe,EAAM,EAAE,IAAM,CAAmB,EAEzF,OAAO,EAAU,GAAoB,CAAO,EAAI,IAClD,EAEa,IACX,EACA,EACA,IACkB,CAClB,IAAM,EAAsB,GAAe,CAAS,EAC9C,EAA0B,GAAe,CAAa,EAE5D,GAAI,CAAC,GAAuB,CAAC,EAAyB,OAAO,KAE7D,IAAM,EAAU,EAAS,KAAM,GAAU,GAAe,EAAM,EAAE,IAAM,CAAmB,EACnF,EAAc,GAAS,cAAc,KACxC,GAAU,GAAe,EAAM,EAAE,IAAM,CAC1C,EAIA,MAFI,CAAC,GAAW,CAAC,EAAoB,KAE9B,GAAG,GAAoB,CAAO,EAAE,IAAI,GAAwB,CAAW,EAAE,EAClF,EAEa,IACX,EACA,IACW,CACX,IAAM,EAAsB,GAAe,CAAkB,EAM7D,OAJI,GAAuB,EAAe,KAAM,GAAU,EAAM,QAAU,CAAmB,EACpF,EAGF,EAAe,IAAI,OAAS,EACrC,EAEa,IACX,EACA,EACA,IACW,CACX,IAAM,EAAsB,GAAe,CAAkB,EACvD,EAA0B,GAAe,CAAsB,EAErE,GAAI,GAAuB,EAAyB,CAClD,IAAM,EAAU,GAA0B,EAAqB,CAAuB,EAEtF,GAAI,EAAmB,KAAM,GAAU,EAAM,QAAU,CAAO,EAC5D,OAAO,CAEX,CAEA,GAAI,EAAqB,CACvB,IAAM,EAAwB,EAAmB,KAAM,GACrD,EAAM,MAAM,WAAW,GAAG,EAAoB,GAAG,CACnD,EAEA,GAAI,EAAuB,OAAO,EAAsB,KAC1D,CAEA,OAAO,EAAmB,IAAI,OAAS,EACzC,iQCpMA,4DA2QU,EAAa,mBAGV,GACL,aACA,IACE,0BACA,uBAAuB,UAEvB,EAAU,EAAG,GAAwB,EAAO,EARjD,8DAOQ,kDAEC,CAAM,oEA3PhB,EAAI,aAAG,SAAS,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EACM,EAAqB,6BAAG,IAAI,EACX,wCACvC,EAAU,mBAAG,IAAI,EAGjB,EAAsB,+BAAG,IAAI,EAa3B,EAAQ,EAAM,GAAC,OAAc,EAAU,GAAE,OAAS,EAAE,IACpD,EAAQ,EAAM,GAChB,OACE,EAAI,IAAK,SACL,SACE,EAAU,GAAE,OAAS,cAAc,IAGzC,EAAiB,EAAM,GACzB,OACE,EAAU,GAAE,QAAU,WAAa,EAAU,GAAE,QAAU,cACpD,EAAU,GAAE,WAAa,EAAS,GAAI,GACvC,EAAE,IAGN,EAAsB,EAAM,GAC9B,OACE,EAAU,GAAE,QAAU,eAAiB,EAAU,GAAE,WAAa,EAAU,GAAE,cACxE,GAA0B,EAAU,EAAC,UAAW,EAAU,EAAC,aAAa,EACxE,EAAE,IAGN,EAAQ,EAAsB,IAAI,EAClC,EAAS,EAAO,EAAK,EAEnB,EAAc,OAChB,EAAkB,OAAqC,OACtD,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,IAGnF,EAAmB,MAAY,GAAwB,EAAC,CAAc,EAAE,EAAc,IACtF,EAAuB,MAC3B,GAA4B,EAAC,CAAc,EAAE,EAAc,IAEvD,EAAS,MAAqB,MAC9B,CAAK,IAAK,SAAQ,MAAS,yDAE3B,CAAK,IAAK,eAAc,MAAS,8CAEjC,CAAK,IAAK,UAAW,KACjB,EAAe,GAAwB,EAAC,CAAc,IAAE,CAAc,UAErE,0CACqC,EAAY,IACpD,8CACN,KAEM,EAAmB,GAA4B,EACnD,CAAc,EACd,GAAyB,EAAC,CAAmB,GAAE,UAC/C,GAAyB,EAAC,CAAmB,GAAE,aAAa,SAGvD,kCAC6B,EAAgB,IAChD,2CACN,CAAC,EAEK,EAAwB,GAAqC,IAC7D,IAAc,UAAW,GAC3B,EAAiB,GAA4B,EAC3C,CAAmB,IACnB,CAAc,GAAI,EAAS,SAE7B,EAAsB,EAAC,QAGzB,IAEI,IAAc,cAAe,GAC/B,EAAsB,GAAiC,EACrD,CAAuB,IACvB,CAAc,GAAI,EAAS,EAC3B,EAAU,GAAE,eAAiB,EAAqB,SAEpD,EAAiB,GAAyB,EAAC,CAAmB,GAAE,oBAGlE,GAEA,EAAiB,EAAC,IAClB,EAAsB,EAAC,CACzB,EAEM,MAAiD,MACjD,CAAK,IAAK,gBACH,MAAK,EAAE,CAAK,EAAC,KAAI,EAAI,MAAO,QAAQ,OAG3C,CAAK,IAAK,sBAEV,MAAK,EAAE,CAAK,EAAC,KAAI,EACjB,MAAK,EAAL,CAAK,EACL,iBAAc,EACd,UAAW,KACX,cAAe,WAIf,CAAK,IAAK,iBAEV,MAAK,EAAE,CAAK,EAAC,KAAI,EACjB,MAAK,EAAL,CAAK,EACL,iBAAc,EACd,UAAS,EAAE,CAAc,EAAC,KAAI,GAAM,KACpC,cAAe,UAIb,EAAoB,GAAyB,EAAC,CAAmB,UAGrE,MAAK,EAAE,CAAK,EAAC,KAAI,EACjB,MAAK,EAAL,CAAK,EACL,iBAAc,EACd,UAAW,EAAkB,WAAa,KAC1C,cAAe,EAAkB,eAAiB,KAEtD,EAEM,EAAY,SAAe,oBAG/B,EAAQ,SAEH,CAAK,EAAC,KAAI,EAAI,GACjB,EAAQ,oDAAmD,QAG7D,IAEI,EAAI,IAAK,WAAS,CAAK,EAAc,EAAE,GACzC,EAAQ,6BAA4B,QAGtC,MAEI,CAAK,IAAK,WAAS,GAAK,CAAc,EAAC,KAAI,EAAI,GACjD,EAAQ,gCAA+B,QAGzC,MAEI,CAAK,IAAK,cAAe,KACrB,EAAoB,GAAyB,EAAC,CAAmB,OAElE,EAAkB,WAAS,CAAK,EAAkB,cAAe,GACpE,EAAQ,+BAA8B,QAGxC,CACF,GAEA,EAAS,OACL,iBACY,EAAY,GAC1B,GAAa,CACf,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAS,GACX,CAhCA,CAiCF,EAEA,OAAc,CACZ,EAAsB,IAAG,CAAa,EAItC,SAHuB,cACrB,yCAEF,GAAO,MAAK,CACd,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,eAE/B,CAAC,MAGF,EAAG,MACC,EAAG,EADP,CAAG,EAEK,KADJ,CACI,8IAGH,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,WAJlB,CAAG,UAAH,EAAG,SAUC,0JAOW,kCACE,CAAmB,qCACf,CAAuB,4ZAOjC,CAAM,iBACD,sBACO,GAAuB,GAC3C,EAAsB,QACtB,EAAiB,GAA0B,CAAkB,EAAE,aACjE,MAjBA,OAAK,kBAAL,MAAK,kBACL,WAAc,UAAE,CAAc,OAA9B,UAAc,KAAE,EAAc,WAC9B,gBAAmB,UAAE,CAAmB,OAAxC,eAAmB,KAAE,EAAmB,kBAPrC,EAAI,IAAK,UAAQ,WAyBrB,EAAC,YAAD,EAAC,MAAD,CAAC,WAAD,EAAC,cAEG,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,cADD,CAAK,aApCb,CAAG,eAmCiB,CAAS,QAnC7B,CAAG,SAFI,CCrNR,IAAa,GAAgC,MAC3C,EACA,IACqB,CAGrB,GAAI,CAAC,MAFkB,IAAY,EAAO,QAAQ,EAEnC,MAAO,GAEtB,IAAI,EAAY,GAMhB,OALA,MAAM,IAA6B,EAAO,OAAQ,SAAY,CAC5D,MAAM,EAAO,EACb,EAAY,EACd,CAAC,EAEM,CACT,EC1Ba,GAAqB,eAE5B,GAAyB,GAC7B,GAAU,MAA+B,OAAO,CAAK,EAAE,KAAK,EAAE,OAAS,EAE5D,GAAqB,GAChC,OAAO,GAAS,EAAE,EACf,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEf,GAAgB,GAA0B,WAAW,EAAM,WAE3D,GAAe,GAC1B,GAAsB,CAAK,EAAI,MAAM,OAAO,CAAK,EAAE,KAAK,EAAE,MAAQ,KAEvD,IAAgB,EAAe,IAC1C,GAAsB,CAAK,EAAI,YAAY,EAAM,MAAM,OAAO,CAAK,EAAE,KAAK,EAAE,SAAW,KAE5E,GAAmB,GAC9B,GAAsB,CAAK,EAAI,MAAM,GAAkB,OAAO,CAAK,EAAE,KAAK,CAAC,EAAE,MAAQ,KAE1E,IAAoB,EAAe,IAC9C,GAAsB,CAAK,EACvB,YAAY,GAAkB,CAAK,EAAE,MAAM,GAAkB,OAAO,CAAK,EAAE,KAAK,CAAC,EAAE,SACnF,KAYO,IAAoB,GAAG,IAClC,EAAM,OAAO,OAAO,EAAE,KAAK,EAAE,ECnBzB,IAAW,EAAe,EAAgB,EAAgB,IAC9D,GACE,GAAa,CAAK,EAClB,GAAa,eAAgB,CAAM,EACnC,GAAa,aAAc,CAAM,EACjC,GAAa,UAAW,CAAI,CAC9B,EAEW,GAAsB,GAC7B,IAAW,WACN,GACL,6BACA,+CACA,sEACA,gDACF,EAGE,IAAW,aACN,GACL,cACA,wCACA,mGACF,EAGE,IAAW,cAAgB,IAAW,cACjC,GACL,gBACA,iEACA,uFACF,EAGE,IAAW,kBACN,GACL,oBACA,wDACA,qFACF,EAGE,IAAW,cACN,GACL,iBACA,yDACA,kFACF,EAGE,IAAW,kBACN,GACL,mCACA,oEACA,6DACF,EAGE,IAAW,kBACN,GACL,+BACA,qDACA,kFACF,EAGE,IAAW,oBACN,GACL,4BACA,oCACA,kEACA,4DACF,EAGE,IAAW,oBACN,GACL,wBACA,mDACA,8FACF,EAGE,IAAW,aACN,GACL,mBACA,6DACA,4EACF,EAGE,IAAW,oBACN,GACL,sBACA,8CACA,uEACF,EAGE,IAAW,sBACN,GACL,uBACA,qEACA,0EACF,EAGE,IAAW,kBACN,GACL,4BACA,2DACA,mFACF,EAGE,IAAW,cACN,GACL,qBACA,2DACA,gFACF,EAGE,IAAW,eACN,GACL,mCACA,uDACA,2DACF,EAGK,GACL,kBACA,yDACA,mEACF,ECvJF,SAAwB,IAAgB,CACtC,MACA,YAAY,GACZ,SACA,YAMmB,CACnB,IAAM,EAA4B,CAAC,EA2BnC,OAzBI,IACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,aACP,YAAe,CACb,IAAS,CAAG,CACd,EACA,KAAM,GACN,QAAS,2BACT,OAAQ,2CAA2C,EAAI,IACzD,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,UACP,YAAe,CACb,IAAW,CAAG,CAChB,EACA,KAAM,GACN,QAAS,GAAmB,mBAAmB,EAC/C,OAAQ,6CAA6C,EAAI,KACzD,KAAM,QACR,CAAC,GAGI,CACT,iBC5CA,aAOW,EAAS,cAAG,EAAE,qBAUT,UAAY,MAAS,gBAEzB,MAAQ,MAAS,gBACP,SAAW,EAAE,gBAChB,aAAe,EAAK,gBACf,kBAAoB,EAAE,4BAEnB,EAAS,IAAG,KAAI,GAV1C,yCAEY,4DAEA,iJAKG,iCAXR,wGCZR,oCAcK,QAUI,KAVJ,CAUgB,0BAAU,mBAV1B,iCAGe,KAAK,IAHpB,2DAQqD,IAAE,cARvD,EAIS,GAAU,CAClB,EAAM,gBAAe,mBAEvB,CAAC,MAPA,UAaA,GAAY,0BAAU,4DAhBnB,+BCXR,aAiBQ,EAAS,qBAAoD,KAAO,EAAE,yBAIzE,GAAsB,kEAEtB,GAAY,0BAAU,mBAEtB,GAAY,0BAAU,8CAEtB,CAAS,6BAPF,KAAO,aAAY,cAEd,KAAO,QAAO,gBAEd,KAAO,YAAW,2BAN3B,CCXR,IAAM,IAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,GAAkB,GAA6C,CACnE,IAAM,EAAU,OAAO,GAAS,CAAC,EAIjC,MAFI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,EAE/C,KAAK,IAAI,EAAG,KAAK,MAAM,CAAO,CAAC,CACxC,EAEa,GAAqB,GAChC,IAAgB,OAAO,GAAe,CAAK,CAAC,EAEjC,IACX,EACA,IACW,CACX,IAAM,EAAU,GAAe,CAAY,EACrC,EAAQ,GAAe,CAAU,EAIvC,OAFI,GAAS,EAAU,IAEhB,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAO,EAAU,EAAS,GAAG,CAAC,CAAC,CACvE,EAwBa,IACX,EACA,EACA,IACW,CACX,IAAM,EAAU,GAAe,CAAY,EACrC,EAAQ,GAAe,CAAU,EAEvC,GAAI,GAAS,EACX,MAAO,cAAc,EAAK,OAAO,oDAGnC,IAAM,EAAa,GAA0B,EAAS,CAAK,EACrD,EAAQ,IAAU,EAAI,EAAK,SAAW,EAAK,OAEjD,MAAO,GAAG,GAAkB,CAAO,EAAE,OAAO,GAAkB,CAAK,EAAE,GAAG,EAAM,iCAAiC,EAAW,KAC5H,ECvCM,GAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,IAAa,EAAgB,EAAW,OAC/B,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAAS,KAAO,GAAK,OAAO,CAAK,EAAE,KAAK,IAEjF,EAGX,GAAkB,GAA6C,CACnE,IAAM,EAAU,OAAO,GAAS,CAAC,EAIjC,MAFI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,EAE/C,KAAK,MAAM,CAAO,CAC3B,EAEa,GAA4B,GAAkC,CACzE,IAAM,EAAO,GAAU,EAAO,EAAE,EAEhC,GAAI,CAAC,EAAM,MAAO,IAElB,IAAM,EAAS,IAAI,KAAK,CAAI,EAI5B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,eAAe,OAAO,CACtC,EAEa,GAA4B,GACnC,IAAU,SAAiB,UAE3B,IAAU,eAAuB,eAEjC,IAAU,UAAkB,QAEzB,UAGI,IACX,EACA,IAEI,EAAW,QAAU,SAAiB,cAEtC,EAAW,QAAU,eAAuB,oBAE5C,EAAW,QAAU,UAErB,GAAyB,EAAQ,eAAgB,EAAW,SAAS,GACrE,EAAW,WACX,QAKF,GACE,EAAQ,eACR,EAAW,UACX,EAAW,aACb,IACC,EAAW,cAAgB,EAAQ,qBAAqB,EAAW,eAAiB,OACrF,EAAW,eACX,UAIE,IAAkB,GAClB,IAAU,SAAiB,WAE3B,IAAU,eAAuB,iBAEjC,IAAU,UAAkB,YAEzB,gBAGH,IAAa,GACb,IAAU,SAAiB,GAE3B,IAAU,eAAuB,GAEjC,IAAU,UAAkB,GAEzB,GAGH,IAAc,GACd,IAAU,SAAiB,OAE3B,IAAU,eAAuB,SAEjC,IAAU,UAAkB,OAEzB,OAGI,KACX,EACA,IACiB,CACjB,IAAM,EAAQ,GAAyB,EAAW,KAAK,EACjD,EAAS,GAA0B,EAAY,CAAO,EAE5D,MAAO,CACL,QACA,SAAU,EACV,MAAO,IAAW,EAAW,KAAK,EAClC,KAAM,IAAU,EAAW,KAAK,EAChC,QAAS,GACP,GAAa,SAAS,EACtB,GAAiB,QAAS,CAAK,EAC/B,GAAiB,cAAe,CAAM,EACtC,GAAiB,eAAgB,EAAW,cAAc,EAC1D,GAAiB,UAAW,EAAW,SAAS,EAChD,GAAiB,eAAgB,EAAW,aAAa,CAC3D,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,IAAe,EAAW,KAAK,CAC5C,CACF,EAEa,IAAmC,GAAmD,CACjG,IAAM,EAAQ,GAAe,EAAW,SAAS,EAC3C,EAAU,GAAe,EAAW,gBAAgB,EAE1D,GAAI,GAAS,EACX,MAAO,CACL,MAAO,YACP,SAAU,YACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,SAAS,EACtB,GAAgB,gDAAgD,CAClE,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,sBACZ,UAAW,CACb,EAGF,IAAM,EAAO,KAAK,IAAI,EAAG,EAAQ,CAAO,EAClC,EAAW,GAA0B,EAAS,CAAK,EAEzD,MAAO,CACL,MAAO,GAAG,GAAgB,OAAO,CAAO,EAAE,GAAG,GAAgB,OAAO,CAAK,EAAE,UAC3E,SAAU,EAAO,EAAI,GAAG,GAAgB,OAAO,CAAI,EAAE,QAAU,cAC/D,MAAO,EAAW,GAAK,MAAQ,EAAW,GAAK,SAAW,EAAW,GAAK,QAAU,UACpF,KAAM,GACN,QAAS,GACP,GAAa,eAAe,EAC5B,GACE,GAAqB,EAAS,EAAO,CAAE,SAAU,QAAS,OAAQ,SAAU,CAAC,CAC/E,CACF,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAQ,GAAG,EAAM,WAAW,EAAS,UACpD,UAAW,CACb,CACF,EAEa,KACX,EACA,IACiB,CACjB,IAAM,EAAQ,GAAU,EAAW,MAAO,qBAAqB,EACzD,EAAS,GAAU,EAAW,OAAQ,cAAc,EACpD,EAAa,GAAyB,EAAW,KAAK,EACtD,EAAS,GAA0B,EAAY,CAAO,EACtD,EAAQ,GAAe,EAAW,SAAS,EAC3C,EAAU,GAAe,EAAW,gBAAgB,EAE1D,MAAO,CACL,QACA,SAAU,EACV,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,GAAkB,CAAK,CAAC,EACrC,GAAiB,OAAQ,CAAK,EAC9B,GAAiB,SAAU,CAAM,EACjC,GAAiB,UAAW,CAAU,EACtC,GAAiB,cAAe,CAAM,EACtC,GAAiB,UAAW,GAAG,GAAkB,CAAK,EAAE,SAAS,EACjE,GAAiB,iBAAkB,GAAG,GAAkB,CAAO,EAAE,SAAS,EAC1E,GAAiB,WAAY,GAAyB,EAAW,SAAS,CAAC,EAC3E,GAAiB,WAAY,GAAyB,EAAW,SAAS,CAAC,CAC7E,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,EAAO,GAAG,EAAW,GAAG,IAChD,UAAW,CACb,CACF,EAEa,KACX,EACA,KACI,CACJ,cAAe,IAAuB,EAAY,CAAO,EACzD,SAAU,IAA4B,EAAY,CAAO,EACzD,aAAc,IAAgC,CAAU,CAC1D,GClOa,IAAiC,CAAC,QAAS,WAAW,EAEtD,GAAqC,CAChD,CACE,GAAI,aACJ,MAAO,WACP,UAAW,GACX,QAAS,4CACT,SAAU,GACV,SAAU,OACV,aAAe,GAAS,EAA0B,cAAc,SAClE,EACA,CACE,GAAI,QACJ,MAAO,UACP,QAAS,0DACT,SAAU,GACV,SAAU,OACV,aAAe,GAAS,EAA0B,SAAS,SAC7D,EACA,CACE,GAAI,YACJ,MAAO,UACP,QAAS,oDACT,SAAU,GACV,SAAU,SACV,aAAe,GAAS,EAA0B,aAAa,SACjE,CACF,EAEM,GAAkB,GAA6C,CACnE,IAAM,EAAU,OAAO,GAAS,CAAC,EAIjC,MAFI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,EAE/C,KAAK,MAAM,CAAO,CAC3B,EAEa,KACX,EACA,IACsB,CACtB,IAAM,EAAO,IAAwB,EAAY,CAAO,EAClD,EAAa,GAAyB,EAAW,KAAK,EACtD,EAAc,GAA0B,EAAY,CAAO,EAC3D,EAAY,GAAe,EAAW,SAAS,EAC/C,EAAmB,GAAe,EAAW,gBAAgB,EAEnE,MAAO,CACL,GAAI,EAAW,GACf,aACA,MAAO,EAAW,MAClB,OAAQ,EAAW,OACnB,aACA,cACA,YACA,mBACA,cAAe,EAAK,cACpB,SAAU,EAAK,SACf,aAAc,EAAK,aACnB,WAAY,CACV,EAAK,cAAc,WACnB,EAAK,SAAS,WACd,EAAK,aAAa,UACpB,EAAE,KAAK,GAAG,CACZ,CACF,EAEa,IAA+B,IAClC,CAAE,QAAO,SAAQ,UAAW,CAClC,IAAM,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAC/B,EAAO,OAAO,GAAU,UAAY,EAAQ,EAAI,EAAQ,EAAK,OAGnE,MAAO,CACL,MAHiB,EAAO,GAAc,EAAM,GAAuB,CAAI,EAAI,GAG1D,MAAM,EAAO,EAAQ,CAAI,EAC1C,MAAO,EAAK,MACd,CACF,0SCzFF,4DAmDI,EAAI,aAAG,SAAS,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAoB,6BAAG,IAAI,EAC3B,EAAkB,oCAClB,EAAS,kBAAG,EAAK,EACjB,EAAK,cAAG,iBAAiB,EACzB,EAAQ,iBAAG,IAAI,EAGb,EAAc,EAAM,QACpB,EAAU,EAAO,EAAK,EACtB,EAAY,EAAsB,IAAI,EAEpC,EAAoB,MAEtB,OAAO,aACJ,EAAkB,OAAQ,IAAK,GAAK,CAAM,EAAM,MAAO,EAAM,IAAI,KAGlE,EAAc,OAChB,EAAkB,OAAqC,OACtD,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,IAGnF,EAAY,QAChB,eAAc,EAAd,CAAc,EACd,qBAAoB,EAApB,CAAoB,KAGhB,EAAI,QACR,CAAW,EAAC,IAAK,GAAe,IAAuB,EAAU,EAAE,CAAY,KAG3E,EAAU,QACd,GACG,IACE,GAAG,GACC,EAAI,GAAE,GAAI,EAAI,cAAc,WAAU,GAAI,EAAI,SAAS,WAAU,GAAI,EAAI,aAAa,YAAU,EAEtG,KAAK,GAAG,GAGP,EAAyB,GAAS,IAA2B,EAAC,CAAI,GAAE,CAAI,EAExE,EAAe,SAAe,GAClC,EAAU,MACV,EAAY,SACR,GACF,EACE,EAAI,IAAK,eACC,GAAoB,CAAG,MAAO,QAAQ,GAC5C,UACQ,GAAoB,CAAG,iBAAc,UAErD,OAAS,EAAO,GACd,EAAW,SACX,EAAY,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,KACnE,QAAU,GACR,EAAU,GACZ,CACF,EAEA,OAAc,CACP,EAAe,CACtB,CAAC,MAEK,EAAyB,GAA4C,KACnE,EAAY,GAAW,CAC3B,MAAO,EAAa,2BAA6B,wBACjD,QAAS,GACT,WAAU,CACR,OAAI,EACJ,iBAAc,EACd,YAAS,EACT,uBAAoB,EACpB,qBAAkB,EAClB,aACA,YAAe,GAAiB,CAAS,EACzC,QAAO,KAAS,KACV,SACI,GAAqB,EAAW,GAAI,CAAO,EACjD,GAAe,CAAG,MAAO,UAAW,KAAM,4BAA4B,WAEhE,IAAqB,CAAO,EAClC,GAAe,CAAG,MAAO,UAAW,KAAM,yBAAyB,UAG/D,EAAe,EAEd,MAIf,EAEM,EAAY,KAAU,IAAqC,OACzD,IAEF,SAAQ,CACN,MAAO,wBACP,YAAa,wCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,wBACP,YACE,mFACF,YAAa,mCAGL,OACJ,GAAqB,EAAW,EAAE,IACxC,EAAW,EAAG,CAAW,EAAC,OAAQ,GAAU,EAAM,KAAO,EAAW,EAAE,MACtE,GAAe,CAAG,MAAO,UAAW,KAAM,yBAAyB,EACrE,EAEJ,EAEM,EAAkB,GAAqC,IACvD,EAAQ,EAAE,CACZ,EAAQ,EAAC,CAAU,QAGrB,CAEI,EAAS,GAAE,EAAsB,CAAU,CACjD,EAEM,EAAqB,GAA2B,CACpD,EAAe,EAAI,UAAU,CAC/B,MAGD,EAAG,UAAH,CAAG,OAMU,EAAa,kBAKR,EAAS,GAAK,EAAI,IAAK,WAAS,CAAK,EAAc,GAJ/D,gFAGO,4CAES,EAAsB,IAAI,qEATnC,EAAK,QAAK,CAAI,EAAC,OAAM,IAFhC,uBACmB,wEAIR,qEAYT,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAS,QAA1B,CAAC,aADC,CAAS,WAGb,uBAEG,SAAU,EAAK,IACb,KAGM,GAAI,cACJ,MAAO,uBACP,KAAM,GACN,aACI,GAAQ,CACR,EAAkB,CAAG,CACvB,GAAG,CAAG,OAEJ,GAAQ,KACN,EAA0E,UAEhF,EAAQ,KAAI,GACP,IAAwB,CACpB,MACL,UAAW,EAAS,EACpB,OAAS,GAAgB,EAAsB,EAAY,UAAU,EACrE,SAAW,GAAW,KAAU,EAAa,EAAY,UAAU,KAIhE,CACT,GAAG,CAAG,QAEN,UAAW,cAAe,UAAS,CAAG,UAAU,0BAG/C,IACR,8DAGa,mBACC,cACF,2DAEZ,CAAU,0BACV,CAAO,GAEE,MAAK,QACX,IAAD,CAAC,GAGM,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAuB,oBAAM,EAAG,uBAAwB,EAAM,UAAU,KAGjE,WAAS,WAAG,MAAG,MAAH,IACnB,GAAsB,oBAAM,EAAG,UAA+B,KAGvD,cAAY,WACZ,EAAQ,MADU,MAAH,GACD,MACrB,EAAI,UAAJ,CAAI,IAAJ,CAAI,iBACF,CAAQ,EAAC,SAAS,OAAK;cACrB,CAAQ,EAAC,aAAa,OAAK;cAC3B,CAAQ,EAAC,aAAa,UAAQ,WAHlC,CAAI,GAOG,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAuB,oBAAM,EAAG,uBAAwB,EAAM,UAAU,mFArF9E,CAAG,MAAH,CAAG,SAFI,+ECzLR,aAgBI,EAAK,cAAG,cAAc,EACtB,EAAc,uBAAG,IAAI,EACrB,EAAmB,4BAAG,EAAI,EAGtB,EAAwB,GAA+B,CACvD,EAAK,IAAK,UACZ,GAAW,iCAAkC,mBAAmB,EAAW,EAAE,KAC3E,cAAe,EAAI,EAGzB,MAGD,EAAG,UAAH,CAAG,QAEK,2CAEQ,EAAmB,4CAEpB,WAGP,iDAEF,EAAc,aACJ,4BACA,EAAmB,sCAZ3B,EAAK,IAAK,SAAQ,iBAD1B,CAAG,MAAH,CAAG,KAFI,CCfR,IAAa,IAAsB,GAAqC,CACtE,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,MAAO,IAErB,IAAM,EAAa,EAAQ,WAAW,GAAG,EAAI,EAAU,IAAI,IAI3D,OAFI,IAAe,IAAY,IAExB,EAAW,QAAQ,OAAQ,EAAE,GAAK,GAC3C,EAEa,GAAsB,GAA6C,CAC9E,GAAI,CAAC,EAAO,OAAO,KAEnB,GAAI,CACF,OAAO,mBAAmB,CAAK,CACjC,MAAQ,CACN,OAAO,CACT,CACF,EAEa,IAAmB,GAAwD,CACtF,IAAM,EAAa,IAAmB,CAAI,EAE1C,GAAI,IAAe,IACjB,MAAO,CACL,QAAS,IACT,QAAS,OACT,iBAAkB,KAClB,UAAW,KACX,YAAa,IACb,sBAAuB,GACvB,cAAe,KACf,gBAAiB,GACnB,EAGF,IAAM,EAAW,EAAW,MAAM,GAAG,EAAE,OAAO,OAAO,EAErD,GAAI,EAAS,KAAO,gBAAiB,CACnC,GAAI,EAAS,KAAO,WAAY,CAC9B,GAAI,EAAS,SAAW,EACtB,MAAO,CACL,QAAS,EACT,QAAS,WACT,iBAAkB,KAClB,UAAW,KACX,YAAa,IACb,sBAAuB,GACvB,cAAe,KACf,gBAAiB,GACnB,EAGF,IAAM,EAAY,GAAmB,EAAS,EAAE,EAC1C,EAAO,EAAS,MAAM,CAAC,EACvB,EAAwB,EAAK,KAAO,eAAiB,EAAK,KAAO,eAQvE,MAAO,CACL,QAAS,EACT,QAAS,UACT,iBAAkB,KAClB,YACA,YAZkB,EAAK,QAAS,IAAI,EAAK,KAAK,GAAG,IAAI,QAAQ,OAAQ,EAAE,GAAW,IAalF,wBACA,cAboB,EAAwB,GAAmB,EAAK,EAAE,EAAI,KAc1E,gBAZA,GAAyB,EAAK,QAAU,EAAK,GAAK,EAAI,IAClD,IAAI,EAAK,MAAM,EAAK,GAAK,EAAI,CAAC,EAAE,KAAK,GAAG,IAAI,QAAQ,OAAQ,EAAE,GAC9D,GAWN,CACF,CAEA,MAAO,CACL,QAAS,EACT,QAAS,OACT,iBAAkB,KAClB,UAAW,KACX,YAAa,EACb,sBAAuB,GACvB,cAAe,KACf,gBAAiB,GACnB,CACF,CAEA,IAAM,EAAmB,GAAmB,EAAS,EAAE,EAEvD,GAAI,CAAC,EACH,MAAO,CACL,QAAS,EACT,QAAS,OACT,iBAAkB,KAClB,UAAW,KACX,YAAa,IACb,sBAAuB,GACvB,cAAe,KACf,gBAAiB,GACnB,EAGF,GAAI,EAAS,KAAO,YAAc,EAAS,SAAW,EACpD,MAAO,CACL,QAAS,EACT,QAAS,WACT,mBACA,UAAW,KACX,YAAa,IACb,sBAAuB,GACvB,cAAe,KACf,gBAAiB,GACnB,EAGF,IAAM,EAA2B,EAAS,KAAO,WAC3C,EAAY,EAA2B,GAAmB,EAAS,EAAE,EAAI,KACzE,EAAO,EAA2B,EAAS,MAAM,CAAC,EAAI,EAAS,MAAM,CAAC,EACtE,EAAwB,EAAK,KAAO,eAAiB,EAAK,KAAO,eAQvE,MAAO,CACL,QAAS,EACT,QAAS,UACT,mBACA,YACA,YAZkB,EAAK,QAAS,IAAI,EAAK,KAAK,GAAG,IAAI,QAAQ,OAAQ,EAAE,GAAW,IAalF,wBACA,cAboB,EAAwB,GAAmB,EAAK,EAAE,EAAI,KAc1E,gBAZA,GAAyB,EAAK,QAAU,EAAK,GAAK,EAAI,IAClD,IAAI,EAAK,MAAM,EAAK,GAAK,EAAI,CAAC,EAAE,KAAK,GAAG,IAAI,QAAQ,OAAQ,EAAE,GAC9D,GAWN,CACF,kBCzJA,6CAMkB,IAAG,QACT,EAAe,oBAAe,SAAS,qCAC9C,EAAe,uBAAiB,KAAK,wBAJlC,kBCJR,SASE,QAAiB,cACX,EAAQ,GAAW,EACnB,EAAQ,OAAO,aAAa,EAClC,OAAc,GAAO,QAAQ,SAAS,EAAK,uDACrC,kBCbR,aAsBU,EAAM,2BAEX,IAAU,qCAAqB,UAAU,0BAAU,GAAS,4FAD9C,WAAW,SAAO,2CAWvB,EAAK,IAAI,GAAU,0EACnB,EAAO,IAAI,GAAM,0EACjB,EAAM,mBAEQ,KAAI,mBAAoB,MAAO,cAAc,IAFjD,+EAIV,EAAQ,QACR,EAAS,oBAAe,UAAU,SAAS,qCAClD,EAAS,uBAAiB,UAAU,KAAK,mCAVxB,UAAU,QAAU,EAAS,MAAS,EAH3D,8CAC2B,UAAU,wBAChB,6BAGV,QACA,UACA,SAIA,wFAZG,WAAS,iBARlB,kBCpBR,aAII,EAAI,aAAG,IAAI,EACX,EAAI,mBAAI,kBAAmB,SAAS,GACpC,EAAgB,+BAAI,OAAQ,QAAQ,GACpC,EAAgB,yBAAG,cAAc,EACjC,EAAe,wBAAG,iDAAiD,EACnE,EAAY,qBAAG,SAAS,EACxB,EAAiB,0BAAG,SAAS,EAC7B,EAAc,uBAAG,SAAS,EAC1B,EAAe,wBAAG,SAAS,EAC3B,EAAW,oBAAG,EAAI,EAClB,EAAgB,yBAAG,IAAI,EAenB,EAAS,GAAgD,KACxD,EAAK,OAAS,QAEf,MAAM,QAAQ,CAAK,EAAG,KAClB,EAAa,EAChB,IAAK,GAAK,OAAa,GAAU,SAAW,EAAM,KAAI,EAAK,EAAE,EAC7D,OAAO,OAAO,SAEV,EAAW,OAAS,EAAW,KAAK,GAAG,EAAI,IACpD,QAEmB,EAAM,KAElB,GAA0B,IACnC,EAEA,OAAc,WACD,SAAa,KAEpB,SAAS,eAAe,UAAU,aAEhC,EAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,GAAK,WACZ,EAAO,IAAM,IAEb,EAAO,aAAa,eAAgB,EAAI,OAElC,EAAW,EAAM,EAAI,GAEvB,GACF,EAAO,aAAa,eAAgB,CAAQ,MAGxC,EAAiB,EAAM,EAAgB,GAEzC,GACF,EAAO,aAAa,4BAA6B,CAAc,EAGjE,EAAO,aAAa,6BAA8B,EAAgB,GAClE,EAAO,aAAa,wBAAyB,EAAY,GACzD,EAAO,aAAa,8BAA+B,EAAiB,GACpE,EAAO,aAAa,0BAA2B,EAAc,GAC7D,EAAO,aAAa,2BAA4B,EAAe,GAE1D,EAAW,GACd,EAAO,aAAa,sBAAuB,OAAO,EAGhD,EAAgB,GAClB,EAAO,aAAa,4BAA6B,EAAgB,GAGnE,SAAS,KAAK,YAAY,CAAM,CAClC,CAAC,KACK,kBChFR,aAGU,EAAK,cAAG,aAAa,EACvB,EAAU,WACV,EAAa,CAAI,4BAA6B,yBAAyB,EAEvE,MAA+B,WACxB,SAAa,IAAW,WAE7B,EAAS,MAAM,KAAK,SAAS,iBAAiB,OAAO,GAAG,OAAQ,GAAY,KAC1E,EAAU,EAAQ,mBAEjB,IAAY,MAAQ,EAAc,KAAM,GAAW,EAAQ,SAAS,CAAM,EACnF,CAAC,KAEG,EAAO,OAAS,EAAC,WAEf,EAA6B,OAAO,OAAO,IAAI,EACrD,EAAO,QAAS,GAAY,KACpB,GAAO,EAAQ,aAAe,IAAI,KAAI,KAExC,EAAK,GAAM,CACb,EAAQ,OAAM,QAGhB,CAEA,EAAK,GAAO,GACZ,EAAQ,aAAa,qBAAsB,MAAM,CACnD,CAAC,CACH,EAEM,MAA0B,IAC9B,EAAsB,SAEX,SAAa,KAAW,OAAW,iBAAqB,KAE/D,EAAQ,uBAAsB,WAE5B,EAAQ,IAAO,iBAAiB,CAAsB,EAC5D,EAAS,QAAQ,SAAS,gBAAe,CAAI,UAAW,GAAM,QAAS,EAAI,GAC3E,EAAQ,uBAAyB,CACnC,EAEA,EAAiB,EAEjB,OAAc,WACD,SAAa,IAAW,OAEnC,EAAiB,MACX,EAAyB,EAAK,IAAK,YAAc,YAAc,cAC/D,EAAO,SAAS,gBAChB,EAAgB,EAAK,QAAQ,cACnC,GAAK,QAAQ,QAAU,MAEV,IACP,IAAkB,OAAW,CAC/B,EAAK,gBAAgB,eAAe,QAGtC,CAEA,EAAK,QAAQ,QAAU,CACzB,CACF,CAAC,KACK,4pBCtER,KAaQ,EAAU,iBAQR,EAAU,mDAKE,IAAK,IAAO,CAC1B,GAAE,GAAK,EAAQ,KACf,MAAO,EAAQ,MACf,KAAM,EAAQ,sBAEH,CAAa,EAAC,IAAE,aAGjB,EAAU,SAXvB,oGASY,GAAE,EAAM,EAAa,OAAO,CAAE,4BAC/B,4CAXT,CAAO,kBAiBJ,EAAO,QACd,EAAG,UAAH,CAAG,gCAEM,CAAa,EAAC,GAAE,QACV,EAAY,gBACnB,EAAE,SAAF,EAAE,MAAF,CAAE,MACF,EAAG,EADH,EAAE,GAEA,EAAG,EADL,CAAG,KACD,EAAG,SACK,CAAa,EAAC,MAAK,MAAI,IAAI,KAC/B,EAAG,MAAiC,KAApC,CAA4C,uBAAO,CAAI,EAAC,UAAxD,CAAG,MAAH,CAAG,MAFP,CAAG,UAAH,EAAG,aAMD,EAAM,MACJ,IADF,CAAM,EAQF,EAAG,EAPL,qCAWE,EAAU,UAAV,EAAU,MAAV,CAAU,cAAE,CAAa,EAAC,MAAM,OAAO,OAAvC,CAAU,aADR,CAAa,EAAC,MAAM,SAAO,SAXjC,CAAM,WACJ,WAEO,CAAa,EAAC,MAAM,GAAG,IAF9B,oBAKgB,CAAa,EAAC,MAAK,kCAEjC,EAAG,QAAM,CAAa,EAAC,MAAM,GAAG,IAAhC,EAAG,QAAoC,CAAa,EAAC,MAAM,GAAG,QARlE,CAAM,aADJ,CAAa,EAAC,OAAK,SANzB,CAAG,WADH,EAAE,QAAQ,EAAU,iBAAa,CAAa,EAAC,KAAK,IACpD,QAAY,uBAAyB,YAAW,IAAI,CAAa,EAAC,KAAK,0DA0BvE,QAOU,IAPV,CAOsB,KAPtB,sBAEQ,EAAU,WAFlB,uBAIqB,EAAU,SAAQ,CAAa,EAAC,IAAE,QAJvD,cAUA,QAKU,IALV,CAKsB,KALtB,sBAEQ,EAAU,WAFlB,uBAGqB,EAAU,iBAH/B,cAXE,CAAO,4CA7BX,CAAa,YADnB,CAAG,UAAH,EAAG,MAAS,cAAa,CAAI,WAAU,EAAE,CAAO,2BAAhD,CAAG,GA1BA,EAAa,EAAsB,IAAI,EACrC,EAAa,iBACR,KAAM,GAAY,EAAQ,KAAE,EAAK,CAAU,eAAc,EAAC,EAE/D,EAAO,iBAAqB,OAAS,CAAC,yCA4E1B,aAAY,UAAS,WAAU,EAAE,CAAa,GAAE,EAAE,cA3E9D,6YCnBR,aAkEU,EAAI,+BAET,EAAG,MAA4B,KAA/B,CAAuC,8BAAc,UAArD,CAAG,MAAH,CAAG,qBADO,MAAI,eArDf,EAAI,aAAG,EAAK,EACZ,EAAO,oBAAS,CAAC,CAAC,EAElB,EAAO,2BAQH,GAAU,EAAsB,IAA2B,KAC1D,EAAK,KAAI,MAAS,MAEnB,QACK,EAAK,KAAK,CAAG,CACtB,OAAS,EAAK,QACZ,QAAQ,KAAK,0BAA2B,CAAG,EAEpC,EACT,CACF,EAGM,EAAgB,GAAyD,WAClE,GAAO,KAAQ,UAAQ,OAAW,EAAM,KAAQ,UAAQ,CAAK,EAAM,IAAI,KAAI,aAIhF,EAAM,EAAM,IAAI,KAAI,QAErB,EAAI,WAAW,GAAG,GAAK,EAAI,WAAW,IAAI,GAAK,oBAAoB,KAAK,CAAG,aAIpE,EAAO,KAAG,CACxB,EAEM,GAAqB,EAA6B,GAAO,EAAsB,KACnF,EACG,KAAK,EAAS,IAAO,KACd,GAAS,EAAQ,OAAK,IAAQ,OAAQ,GAAS,EAAO,EAAM,CAAG,GAC/D,EAAQ,EAAa,EAAQ,KAAK,YAE5B,EAAS,KAAI,QAAO,OAAK,CACvC,CAAC,EACA,OAAQ,GAAY,EAAQ,MAAM,OAAS,GAAK,EAAQ,KAAK,EAE5D,EAAQ,MAAY,EAAiB,UAAS,SAAU,EAAO,IAC/D,EAAI,gBAAoB,OAAS,SAAW,KAAI,UAAY,MAAQ,OAAO,4DAW9E,IAAU,2BAAE,CAAQ,GACT,UAAQ,WAAG,MAAU,MAAV,WAAY,MAAO,MAAP,QAAS,MAAU,MAAV,kCAEvB,OAAS,OAAO,YAKZ,CAAQ,EAAC,OAAS,EAAI,EAAU,EAAG,MAAS,oBACnC,KAAO,EAAO,MAAS,EAPpD,uEAGE,CAAI,2BACJ,EAAU,wBACV,EAAO,mGAIP,EAAG,UAAH,CAAG,YAEC,EAAG,UAAH,CAAG,YAEC,EAAI,MACD,KADH,CACO,8BAAc,UAAU,yBAD/B,CAAI,MAAJ,CAAI,oBADK,UAAU,MAAI,WAKzB,EAAG,OAAE,KAAL,CAAa,8BAAc,UAAU,UAArC,CAAG,IANL,CAAG,MAAH,CAAG,qBADO,WAAS,4CAWX,CAAO,oBAEd,IAAD,CAAC,aAHC,CAAQ,EAAC,OAAM,iBAXrB,CAAG,MAAH,CAAG,qEAbT,EAAI,oBARD,CC7DR,IAAa,KAAqD,EAAM,IAAY,CAClF,IAAI,MAAgB,CAAC,EACf,EAAY,GAAoB,CAGpC,GAFA,EAAQ,EAEJ,CAAC,EAAQ,CACX,MAAgB,CAAC,EAEjB,MACF,CAEA,IAAM,EAAS,SAAS,yBAAyB,YAAc,SAAS,cAAgB,KACpF,EAAW,GACT,MACJ,MAAM,KACJ,EAAK,iBACH,2IACF,CACF,EAAE,OACC,GACC,CAAC,EAAQ,QAAQ,+BAA+B,GAAK,EAAQ,eAAe,EAAE,OAAS,CAC3F,EACI,OAAoB,EAAU,EAAE,IAAM,GAAM,MAAM,EAClD,EAAW,GAAyB,CACxC,GAAI,EAAM,MAAQ,OAAS,SAAS,cAAc,cAAc,EAAG,OAEnE,IAAM,EAAU,EAAU,EACpB,EAAQ,EAAQ,GACpB,EAAO,EAAQ,EAAQ,OAAS,IAGhC,CAAC,GACA,CAAC,EAAM,UAAY,SAAS,gBAAkB,GAC9C,EAAM,WAAa,SAAS,gBAAkB,GAAS,SAAS,gBAAkB,MAEnF,EAAM,eAAe,GACnB,EAAM,SAAY,GAAQ,EAAS,GAAS,GAAO,MAAM,EAE/D,EACM,EAAW,GAAsB,CAEnC,CAAC,SAAS,cAAc,cAAc,GACtC,EAAM,kBAAkB,MACxB,CAAC,EAAK,SAAS,EAAM,MAAM,GAE3B,EAAW,CACf,EACA,SAAS,iBAAiB,UAAW,CAAO,EAC5C,SAAS,iBAAiB,UAAW,CAAO,EAC5C,mBAAqB,CACf,CAAC,GAAY,CAAC,EAAK,SAAS,SAAS,aAAa,GAAG,EAAW,CACtE,CAAC,EACD,MAAgB,CACd,EAAW,GACX,SAAS,oBAAoB,UAAW,CAAO,EAC/C,SAAS,oBAAoB,UAAW,CAAO,EAE3C,GAAQ,aAAe,CAAC,EAAK,SAAS,CAAM,GAAG,EAAO,MAAM,CAClE,CACF,EAGA,OAFA,EAAS,CAAO,EAET,CAAE,OAAQ,EAAU,YAAe,EAAQ,CAAE,CACtD,6zCC7DA,8EAaQ,GAAiB,EAA+B,IACpD,EAAQ,SAAW,QAAa,EAAQ,GAAK,GAAM,EAAI,EAAQ,OAE3D,EAAc,MAAY,EAAS,EAAC,OAAS,CAAC,EACpD,OAAc,CACZ,IAAiB,EAAC,CAAc,EAClC,CAAC,MAEG,EAAa,EAAM,QACnB,EAAe,EAAO,EAAK,EAC3B,EAA0B,EAAsB,IAAI,EACpD,EAAuB,EAAM,QAE3B,EAAmB,MACvB,EAAS,EAAC,QACP,EAAO,EAAO,IAAU,GAAS,EAAM,kBAAgB,GAAK,CAAU,EAAC,GAAS,EAAI,GACrF,CAAC,GAGC,EAAqB,MACzB,EAAC,EACE,KAAK,EAAS,KAAK,CAAQ,UAAS,OAAK,IACzC,QAAM,CAAI,UAAS,WAAK,EAAS,EAAQ,kBAAgB,GAAK,CAAU,EAAC,GAAK,EAC9E,KAAG,CAAI,WAAY,CAAK,GAEvB,EAAsB,QAC1B,CAAqB,EAAC,SAAS,CAAqB,IAAC,CAAqB,EAAC,OAAS,KAAO,EAEvF,EAA0B,QAAY,CAAqB,EAAC,OAAS,CAAC,EACtE,EAAuB,MAAqB,IAC5C,EAAS,KAET,CAAqB,EAAC,QAAU,EAAC,aAE/B,EAAM,EAAG,CAAqB,IAAC,CAAqB,EAAC,OAAS,GAC9D,EAAY,EAAG,CAAqB,IAAC,CAAqB,EAAC,OAAS,GACpE,EAAW,EAAG,CAAqB,EAAC,KAAM,GAAU,EAAS,EAAC,IAAQ,MAAM,MAE5E,EAAQ,CAAI,CAAM,SAEpB,IAAW,IAAW,IAAgB,EACxC,EAAS,KAAK,CAAW,EAChB,IAAiB,QAC1B,EAAS,KAAK,CAAY,IAGrB,CAAqB,EAAC,OAAQ,GAAK,CAAM,EAAS,SAAS,CAAK,EACzE,CAAC,EACK,EAAoB,QAAY,CAAmB,IAAK,GAAC,CAAK,EAAS,GACvE,EAAmB,QAAY,CAAoB,KAAI,CAAY,GACnE,EAAa,MAAY,EAAS,EAAC,KAAM,GAAU,EAAM,MAAM,GAAK,IAAI,EACxE,EAAyB,MAC7B,GAAQ,EAAS,KAAI,CAAa,GAAE,wBAAuB,EAEvD,EAA0B,QAAY,CAAmB,KAAI,CAAyB,GACtF,EAA2B,MAAqB,KAC9C,EAAS,IAAO,IAAI,EAAS,EAAC,IAAK,GAAU,EAAM,EAAE,GACrD,EAAoC,UAC1C,OAAO,QAAO,EAAC,CAAoB,GAAE,SAAO,CAAG,EAAI,KAAa,CAC1D,EAAU,IAAI,CAAE,IAAG,EAAK,GAAM,EACpC,CAAC,EAEM,CACT,CAAC,EAED,OAAc,KACN,EAAQ,EAAG,CAAa,GAAE,IAAM,SAEjC,EAAU,GACb,EAAe,MACf,EAA0B,YAG5B,GAEI,CAAuB,IAAK,MAEhC,EAA0B,QAC1B,EAAe,EAAO,EAAC,CAAa,GAAE,kBAAiB,IACzD,CAAC,MAEK,EAAoB,GAAkB,CAC1C,GAAS,OAAQ,GACf,EAAK,KAAK,EAAO,KAAQ,IAAW,EAAO,OAAQ,IAAa,CAAK,IAEzE,EACM,MAA4B,CAC3B,KAAS,EAAC,QAEX,GAAS,EAAC,KAAM,GAAU,EAAM,MAAM,KAEtC,EAAS,EAAC,KAAM,GAAU,EAAM,gBAAgB,EAAG,KAC/C,EAAS,EAAS,EAAC,UAAW,GAAU,EAAM,gBAAgB,EAEhE,EAAS,EAAG,EAAiB,EAAS,CAAC,EAClC,EAAS,EAAC,OAAS,EAAG,EAAiB,CAAC,EAC5C,EAAiB,CAAC,CACzB,KAAO,KACC,EAAY,EAAS,EAAC,OAAS,EAEjC,GAAa,GAAG,EAAiB,CAAS,CAChD,CACF,EAEA,OAAc,CACZ,EAAmB,CACrB,CAAC,MAEK,EAAU,MAAU,EAAe,EAAQ,KAAU,KACnD,EAAY,EAAS,EAAC,IAAQ,OAE/B,GAAS,EAAS,EAAC,MAAM,KAAK,IAAI,EAAG,CAAK,GAAG,KAAM,GAAU,EAAM,aAAa,aAE/E,EAAa,EAAS,EAAC,MAAM,KAAK,IAAI,EAAG,CAAK,GAAG,IAAK,GAAU,EAAM,EAAE,EAEzE,KAAW,cAEJ,GAA8B,EAAO,CAAK,MAEtD,EAAU,EAAG,CAAU,EAAC,MAAM,EAAG,KAAK,IAAI,EAAG,CAAK,OAE9C,GAAW,KACP,EAAI,MAAQ,CAAoB,WAC3B,KAAM,SACR,EAAK,KAEd,EAAuB,KACzB,CACF,EAEM,MAA+B,GAC/B,CAAsB,EAAG,GAE7B,EAAU,EAAC,CAAsB,EACnC,EAEM,EAAqB,GAAkB,GACtC,CAAU,EAAC,OACd,CAAU,EAAC,GAAS,GAExB,EAEM,EACH,IACA,EAA0B,OAAS,GAClC,EAAoB,MAAQ,CAAoB,GAAG,GAAY,CAAO,KACxE,EAEE,EAAqC,EAAO,IAAI,EACpD,OAAc,OACP,CAAW,MAEX,CAA0B,aAEzB,EAAS,SAAS,cAEnB,GAEW,EAAO,UAAU,wBAAwB,KAIzD,CAAW,EAAC,MAAK,CACnB,CAAC,MAGF,oBAuBE,OAvBF,gBAuBE,KAKQ,EAAa,GAAY,EAAQ,IAAE,EAAtB,EAAO,SACjB,EAAM,MAAG,EAAa,EAAC,CAAO,IAAE,CAAC,IACjC,EAAe,QAAG,CAAqB,EAAC,QAAO,EAAC,CAAC,IACjD,EAAS,QAAG,CAAe,MAAO,EAClC,EAAS,QAAG,CAA0B,KAAI,CAAS,KAAI,CAAC,MAAK,CAAsB,GACnF,EAAiB,QACvB,CAAe,OAAU,SAAY,CAAqB,IAAC,CAAe,EAAG,EAAC,EACxE,EAAY,QAAG,CAAiB,IAAK,OAAY,KAAO,EAAS,IAAC,CAAiB,IACnF,EAAe,MAAG,GAAO,EAAC,CAAiB,IAAK,QAAS,EAAI,CAAY,IACzE,EAAkB,QACxB,CAAiB,IAAK,QAAS,GAAK,GAChC,GACA,EAAa,EAAC,CAAY,IAAE,CAAiB,IAC3C,EAAU,QAAG,CAAe,KAAI,CAAM,KAAI,CAAkB,GAC5D,EAAY,QAAG,CAAe,MAAK,CAAM,MAAK,CAAkB,GAChE,GAAW,QAAG,CAAM,EAAG,gBAAkB,sBAAsB,MACtE,uCAqBO,IAAH,CAAG,aADD,CAAS,eAGb,UAUE,KAVF,eAgBI,GAAG,EANL,IAOI,KADF,EAAG,EAQC,GAAI,EAPN,iBADF,EAAG,MAYH,GAAG,EAZH,GAAG,GAaD,KADF,EAAG,EAQC,GAAI,EAPN,iBADF,EAAG,WAAH,GAAG,cAaD,EAAE,UAAF,EAAE,MAAF,CAAE,qBACA,CAAO,EAAC,MAAM,OAAS,KAAK,CAAO,EAAC,MAAM,MAAM,EAAG,EAAE,EAAI,QAAQ,CAAO,EAAC,YAD3E,CAAE,cAIK,EAAc,QAAG,CAAO,EAAC,KAAK,qCACrC,EAAc,2BAEZ,IAAF,CAAE,qBARO,CAAO,EAAC,OAAU,SAAQ,eAIrB,CAAO,EAAC,OAAU,WAAU,uBAM5C,GAAG,aAAH,EAAG,aAEC,8BAUS,CAAmB,EAAG,GAAoB,EAAa,UACvD,EAAS,EAAG,OAAS,MAAM,EAFlC,0DATF,4BAEa,CAAmB,EAAG,sBAAwB,UAAU,aAFrE,EAGW,GAAU,CAClB,EAAM,gBAAe,IACrB,EAAY,GAAI,GAClB,CAAC,MANF,eADE,CAAoB,eAgBxB,iCAY0C,EAAS,EAAG,OAAS,MAAM,EAAnE,GAAI,sBAAO,gCAZb,MAjBF,EAAG,UAxCL,YAVF,QAsFA,GAAG,EAtFH,iBAuFE,GAAG,EADL,EAAG,OACD,UACO,CAAO,EAAC,QAAM,EAAI,CAAO,EAAC,GAAE,QACxB,EAAgB,QAAG,CAAO,EAAC,OAAO,EAClC,EAAS,QAAG,CAAO,EAAC,EAAE,gCAIJ,EAA0B,EAAC,CAAS,0BAH7D,0BACsB,EAAiB,EAAC,CAAC,uBACjB,EAAU,EAAC,CAAC,EAAE,EAAI,mDAErC,CAAO,EAAC,YAAU,qBACH,GACjB,IAAuB,EAAC,CAAS,EAAE,CAAQ,kBAVlD,EAAG,IADL,EAAG,WAAH,GAAG,cAiBD,EAAG,MACD,EAAG,EADL,CAAG,OACD,SACU,CAA2B,IAAC,CAAO,EAAC,GAAE,IADhD,CAAG,IADL,CAAG,MAAH,CAAG,cADD,CAA2B,IAAC,CAAO,EAAC,KAAE,UA7H5C,kCAG0B,CAAS,MAAK,CAAS,KAAI,CAAO,EAAC,SAAW,EAAI,iBAH5E,qDAec,CAAS,EAAG,OAAS,MAAS,EAf5C,WAgBQ,CAAS,IAhBjB,0BAiBqB,CAAC,QAgBlB,8BAcM,GAAI,SAAuC,EAAW,KAYtD,GAAI,SAAuC,EAAW,KA+BxD,kBAEa,CAAO,EAAC,cAChB,gEACA,OAAO,EAJZ,cAKW,CAAO,EAAC,mBAczB,GAAG,uCAAwC,CAAO,EAAC,MAAM,oBAzG5C,CAAO,EAAC,cACV,CAAM,aACF,CAAO,EAAC,cAAgB,oBACtB,CAAO,EAAC,SAAW,qDAGtB,CAAS,qBACA,CAAO,EAAC,2BACjB,CAAU,IAAC,CAAC,eACV,CAAuB,EAAC,SAAQ,EAAC,CAAC,gBACjC,CAA0B,KAAI,CAAO,EAAC,sBAqBxC,CAAC,IAAK,EAAS,EAAC,OAAS,GACnC,EAAS,EAAC,OAAQ,GAAU,EAAM,gBAAgB,EAAE,OAAM,EACxD,CAAU,EAAC,OAAO,OAAO,EAAE,qBArCpC,GAkBW,GAAU,EAAM,gBAAe,aAKxC,OAGgB,EAAgB,EAAC,CAAC,gBAHlC,GAIa,GAAU,EAChB,EAAM,MAAQ,SAAW,EAAM,MAAQ,MACzC,EAAgB,EAAC,CAAC,EAEtB,CAAC,YA2DI,GAMW,GAAU,CAClB,EAAM,gBAAe,EACrB,EAAU,EAAC,CAAC,EACd,CAAC,MAnGV,QArBJ,MAvBF,eAGY,EAAW,SAAX,CAAW,eAHvB,uCAEgB,EAAS,EAAC,MAAM,OAqB9B,+CAEyB,CAAyB,eAC/B,CAAmB,gBA1BxC,GAUU,CAAsB,cAVhC,GAWa,GAAU,CAChB,EAAM,MAAQ,UAAY,EAAM,kBAAgB,EAAI,CAAsB,EAAG,GAE7E,EAAM,kBAAkB,SAAW,EAAM,OAAO,QAAQ,cAAc,IAG1E,EAAM,eAAc,EACpB,EAAM,gBAAe,EACrB,EAAsB,EACxB,CAAC,MApBF,WAFO,wNCtLR,oDAUQ,EAAc,MAAY,EAAU,EAAC,IAAM,IAAI,EACjD,EAAa,EAAO,EAAK,EAEvB,EAAc,MAAU,EAAsB,IAAsB,QACpE,CAAU,IAAK,MAEnB,EAAa,OACT,OACI,GAAgB,EAAO,CAAQ,CACvC,OAAS,EAAK,CACZ,QAAQ,MAAM,yBAA0B,CAAG,CAC7C,QAAU,GACR,EAAa,GACf,CAPa,CAQf,yBAIC,8CAEQ,CAAc,EAAC,+CAEV,CAAc,EAAC,0BACZ,EAAc,EAAC,CAAc,EAAE,EAAK,EAEzC,QAAO,QACd,EAAG,MACD,EAAC,EADH,CAAG,MACD,EAAC,MAAD,CAAC,IADH,CAAG,cACgC,CAAc,EAAC,WAAW,OAD7D,CAAG,GAKI,cAAa,QACpB,EAAG,MACA,EAAG,EADN,CAAG,MACA,CAAG,EACF,eACW,sCAEK,EAAc,EAAC,CAAc,EAAE,EAAK,yBAC1C,CAAc,EAAC,cAEd,YAAW,IAClB,GAAI,qBAAO,oDASJ,EAAW,IAClB,GAAI,qBAAO,iBAHL,CAAU,EAAG,oBAAoB,CAAc,EAAC,aAAa,EAJvE,eACW,oCAEK,EAAc,EAAC,CAAc,EAAE,EAAI,6BAGxC,2CAjBZ,CAAG,IADN,CAAG,MAAH,CAAG,sDAfL,CAAc,wBAFX,8hCCzBR,iEAIW,EAAU,EAAmB,QACpC,EAAK,UAAU,IAAI,UAAU,IAG/B,gCAGK,EAAkB,GAAG,GAAC,EAAJ,IAAC,4BAElB,IAAH,CAAG,aADD,CAAC,EAAC,SAAO,oBAKf,EAAG,UAAH,EAAG,EACK,EAAkB,GAAG,GAAC,EAAJ,IAAC,KACvB,EAAG,MAGD,EAAM,EAHR,CAAG,EAmBD,KAhBA,EAAM,CAgBE,uBAAO,CAAC,EAAC,UAnBnB,CAAG,KAAH,EAAG,mBAAH,EAAG,oBAAsB,CAAC,EAAC,OAAK,iCAG9B,MAAoE,GAAkB,EAAC,CAAC,QAH1F,CAAG,MAFP,CAAG,gBARI,uECTR,8DAwBI,EAAiB,0BAAG,IAAI,EACxB,EAAW,oBAAG,EAAK,EACnB,EAAa,sBAAG,EAAK,EACrB,EAAiB,0BAAG,EAAK,EACzB,EAAW,oBAAG,IAAI,EAUd,EAAyB,OACtB,EAAiB,OAAQ,IAAK,GAAQ,EAAI,KAAI,GAAI,OAAO,OAAO,EAAE,OAAS,CAAC,EAE/E,EAAgB,OACf,EAAW,GAAI,EAAW,EAAC,UAAY,GAAc,KAEnD,EAAW,EAAC,QAAU,IAC9B,EAED,OAAc,GACP,CAAgB,aAEH,IACZ,CAEF,IAAe,IAAqB,MADvB,EAAS,CAAgB,KACK,IAC7C,OAAS,EAAK,CACZ,QAAQ,MAAM,qCAAsC,CAAG,CACzD,CACF,GAAC,CACH,CAAC,wCAIuB,EAAiB,OAAxC,IAAgB,yCADd,CAAyB,uBAG7B,IAAU,oDAER,IAAY,eADV,EAAW,6BAIb,IAAS,eADP,EAAa,6BAIf,IAAa,eADX,EAAiB,6BAInB,YACO,wBACG,yBACD,EAAmB,EAAC,6BACnB,EAAmB,EAAC,oBAL5B,EAAmB,wBAfhB,kBC3DR,aAWI,EAAO,gBAAG,IAAI,EACd,EAAK,cAAG,IAAI,EACZ,EAAI,aAAG,IAAI,EAOP,EAAa,MAAqB,KACjC,EAAO,SAAS,SAEf,EAAe,EAAO,EAAC,YAAc,QAAa,EAAO,EAAC,YAAc,KACxE,EAAS,EAAQ,EAAO,EAAC,WAE1B,GAAY,CAAK,EAAe,SAGhC,EAAO,EACV,YAAa,EAAO,EAAC,aAAe,OAExC,CAAC,EAEK,EAAmB,GACvB,KAAU,EAAK,KAAO,GAAE,GAAI,EAAK,WAAa,GAAE,GAAI,EAAK,aAAe,KAAO,KAE7E,EAAqC,KAEzC,OAAc,KACN,EAAI,EAAG,OAER,EAAM,CACT,EAAsB,WAGxB,KAEM,EAAM,EAAgB,CAAI,EAE5B,IAAQ,IACV,IAAiB,CAAI,EACrB,EAAsB,GAGxB,IAAqB,EAAI,GAAI,IAAI,MAC3B,EAAM,EAAK,MACjB,IAAqB,CACnB,KAAM,EAAI,MAAQ,IAClB,OAAQ,EAAI,QAAU,KACtB,OAAQ,EAAI,QAAU,KACtB,QAAS,EAAI,SAAW,KACxB,YAAa,EAAI,aAAe,KAChC,gBAAiB,EAAI,iBAAmB,MAE5C,CAAC,KACK,oJClER,aA0BI,EAAM,eAAG,IAAI,EACb,EAAW,oBAAG,EAAK,EACnB,EAAK,cAAG,EAAK,EACN,EAAS,cAAG,EAAE,EACrB,EAAK,cAAG,EAAE,EACV,EAAO,gBAAG,gBAAgB,EAC1B,EAAiB,0BAAG,IAAI,EACxB,EAAa,sBAAG,IAAI,EACpB,EAAa,uBAAiC,IAAI,EAG9C,EAAW,MAAY,EAAW,GAAI,EAAK,GAC3C,EAAqB,OAAa,EAAa,GAAE,uBAAyB,MAAW,EAAI,EAC3F,EAAkC,KAClC,EAA2B,GAC3B,EAAkB,EAEhB,EAAkB,GACjB,GAEW,EAAM,KAEf,GAJY,KAOf,EAAqB,MAAqB,KACxC,EAAY,EAAa,MACzB,EAAM,EAAM,GAAI,KAChB,EAAU,EAAU,SAAW,GAAK,aAAe,KACrD,EAAU,EAAU,SAAW,GAAK,SAAW,SAE9C,GAAO,CAAK,EAAO,OAAS,SAE3B,EAAuB,EAAU,sBAAwB,GACzD,EAAiB,EACrB,mBAAoB,GAAa,UAAW,EACvC,EAAU,gBAAkB,EAAU,OAAS,KAC/C,GAAK,gBAAkB,IAAI,EAE5B,EAAY,EAChB,GACM,cAAe,EAAY,EAAU,UAAY,OAAS,MAC1D,cAAe,EAAY,EAAU,UAAY,GAAK,YAAc,IAAI,EAE1E,EAAkB,EAAU,iBAAmB,GAC/C,EACJ,kBAAmB,EACd,EAAU,eAAiB,KAC3B,GAAK,eAAiB,KACvB,EAAgB,EAAkB,KAAO,EAAe,CAAgB,YAEnE,OAAW,KAAe,OAAO,SAAS,KAAK,SAAS,MAAM,EAAG,KAEpE,EADW,OAAO,SAAS,SACN,MAAM,GAAG,EAAE,OAAO,OAAO,KAEhD,EAAU,QAAU,EAAG,CACzB,EAAU,GAAK,cACT,EAAO,OAAO,SAAS,KAAI,IAAO,OAAO,SAAS,OAAS,GACjE,EAAO,GAAM,OAAO,SAAS,SAAQ,IAAK,EAAU,KAAK,GAAG,IAAI,GAClE,CACF,QAGE,UACA,UACA,QAAS,EAAU,SAAW,GAAK,SAAW,KAC9C,WAAY,EAAU,YAAc,GAAK,YAAc,KACvD,oBAAqB,EAAU,qBAAuB,GAAK,qBAAuB,KAClF,SAAU,EAAU,UAAY,GAAK,UAAY,KACjD,iBACA,MAAO,EACP,YACA,gBACA,uBACA,kBACA,YAAa,EAAU,aAAe,KACtC,WAAY,EAAU,YAAc,KACpC,cAAe,EAAU,eAAiB,KAC1C,eAAgB,EAAU,gBAAkB,KAC5C,cAAe,EAAU,eAAiB,KAC1C,YAAa,EAAU,aAAe,KACtC,kBAAmB,EAAU,mBAAqB,GAClD,aAAc,EAAU,cAAgB,GAE5C,CAAC,EAEK,EACJ,GAEkB,EAAM,aAAkB,EAAM,mBAAqB,EAAM,eAEvD,OAGhB,EAAY,MAAqB,KAChC,EAAM,SAAS,SAEd,EAAQ,EAAiB,MACzB,EAAM,EAAG,GACT,EAAsB,EAAqB,CAAK,EAChD,EACJ,GAAQ,kBAAoB,GACxB,EACC,GAAuB,EAAM,EAAC,eAAiB,cAGpD,QAAS,EAAM,EAAC,YAChB,WAAY,EAAM,EAAC,SAAW,OAC9B,cAAe,EAAM,EAAC,YAAc,OACpC,uBAAwB,EAAM,EAAC,qBAAuB,OACtD,YAAa,EAAM,EAAC,UAAY,OAChC,kBAAmB,GAAQ,gBAAkB,OAC7C,aAAc,GAAQ,WAAa,OACnC,iBAAkB,GAAQ,eAAiB,OAC3C,yBAA0B,GAAQ,qBAAuB,OAAS,OAClE,iBACG,EAEP,CAAC,EAED,OAAc,OACP,CAAW,MAAK,CAAqB,EAAE,CACtC,GACF,GAAyB,CAAgB,EAG3C,EAAmB,WAGrB,CAEI,CAEJ,GAAmB,IAAwB,CAC7C,CAAC,EAED,OAAc,KACN,EAAM,EAAG,OAEV,EAAQ,IACN,CAAW,GAAI,IAClB,GAAmB,EACnB,EAA2B,UAI/B,GAEI,CAAW,GAAI,IACjB,GAAmB,EACnB,EAA2B,QAGvB,EAAK,EAAK,EACV,EAAkC,CACtC,QAAS,EAAO,QAChB,QAAS,EAAO,SAAW,OAC3B,WAAY,EAAO,YAAc,OACjC,oBAAqB,EAAO,qBAAuB,OACnD,QAAS,EAAO,QAChB,SAAU,EAAO,UAAY,OAC7B,eAAgB,EAAO,gBAAkB,OACzC,MAAO,EAAO,OAAS,OACvB,UAAW,EAAO,WAAa,OAC/B,cAAe,EAAO,eAAiB,OACvC,qBAAsB,EAAO,sBAAwB,OACrD,gBAAiB,EAAO,iBAAmB,OAC3C,YAAa,EAAO,aAAe,OACnC,WAAY,EAAO,YAAc,OACjC,cAAe,EAAO,eAAiB,OACvC,eAAgB,EAAO,gBAAkB,OACzC,cAAe,EAAO,eAAiB,OACvC,YAAa,EAAO,aAAe,OACnC,kBAAmB,EAAO,mBAAqB,GAC/C,aAAc,EAAO,cAAgB,MAIlC,CAAW,IACd,EAAc,aAAe,GAC7B,EAAc,kBAAoB,cAGlB,UACV,IAAyB,CAAa,EAExC,IAAU,MAEV,CAAW,OAEV,EAAM,EAAE,CAGT,KADA,GAAmB,EACQ,UAI/B,CAEA,EAA2B,SACrB,IAAkB,IACnB,EAAM,EACT,eAAgB,EAAO,gBAAkB,EAAM,EAAC,gBAAkB,KAClE,UAAW,EAAO,WAAa,EAAM,EAAC,WAAa,KACnD,cAAe,EAAO,eAAiB,EAAM,EAAC,eAAiB,MAPjE,CASF,GAAC,EAAI,MAAO,GAAU,CACpB,QAAQ,KAAK,oDAAqD,CAAK,CACzE,CAAC,CACH,CAAC,EAED,OAAgB,CAGZ,KADA,GAAmB,EACQ,IAGzB,GACF,GAAyB,CAAgB,CAE7C,CAAC,6BAIA,EAAG,UAAH,CAAG,0BAGQ,EAAO,mBACF,EAAa,OAAb,EAAa,mBACpB,CAAY,0MAKd,IAAH,CAAG,WATD,EAAM,KAAI,CAAY,mBAD5B,CAAG,UAAH,EAAG,wBAAH,EAAG,iBAAkE,EAAK,mCAA/C,EAAS,IAAG,KAAI,SAA3C,CAAG,aADD,CAAW,oBAFR,yFCvPR,8JAiBI,EAAW,oBAAG,EAAK,EACnB,EAAK,cAAG,EAAK,EACb,EAAS,kBAAG,EAAE,EACd,EAAK,cAAG,EAAE,EACV,EAAa,sBAAG,IAAI,EACpB,EAAa,uBAAiC,IAAI,EAG9C,EAAqB,GAAgC,CACzD,EAAgB,GAAM,cAA2B,mCAAmC,GAAK,KAC3F,EAEM,EAAqB,GAAyB,IAClD,EAAkB,CAAI,SAEX,iBAAqB,WAE5B,SAAU,CACR,EAAkB,IAAI,CACxB,OAIE,EAAQ,IAAO,qBAAuB,EAAkB,CAAI,UAClE,EAAS,QAAQ,EAAI,CACnB,UAAW,GACX,QAAS,EAAI,IAIb,SAAU,CACR,EAAS,WAAU,EACnB,EAAkB,IAAI,CACxB,EAEJ,EAkBM,GAhBsB,GAAyB,WACxC,WAAe,KAAW,CAAK,WAAU,MAAS,OAOvD,EAJJ,WAGA,SACmB,MAAM,UAEnB,IAAK,OAAQ,MAAO,IAAI,EAAE,SAChC,OAAO,GAAO,EAAE,EACb,KAAI,EACJ,YAAW,EAElB,GAE4B,aAAa,EAGnC,EAAoB,OACvB,EAAwB,EAAC,gBAAkB,IAAI,KAAI,GAAM,IAAI,EAG1D,EAAqB,MAAqB,KACxC,EAAY,EAAa,MAEzB,EAD0B,mBAAoB,GAAa,UAAW,EAEtE,EAAU,gBAAkB,EAAU,OAAS,OACjD,GACE,EAGL,CACC,iBACA,MAAO,CAAc,SAIrB,kBAAmB,GACnB,aAAc,MACX,KACA,KACA,EAEP,CAAC,6BAIA,EAAG,MACD,MADF,CACE,uBACS,EAA2B,4BAClC,EAAW,sBACX,EAAK,sBACC,EAAS,sBACf,EAAK,gCACS,CAAqB,OAPvC,CAAG,KAAH,EAAG,eAAH,CAAG,YADA,GAAa,EAA2B,GAAI,EAA2B,wBAFrE,6CCpGR,KAeI,EAAS,kBAAG,EAAK,EACjB,EAAW,oBAAG,EAAK,EACnB,EAAa,sBAAG,EAAK,EACrB,EAAiB,0BAAG,EAAK,EACzB,EAAoB,6BAAG,IAAI,EAC3B,EAAa,sBAAG,IAAI,EACpB,EAAW,oBAAG,IAAI,EAClB,EAAK,cAAG,IAAI,EAaR,EAAe,SAAoD,IACnE,KACI,EAAG,MAAS,MAAK,GAAI,GAAqB,kCAC9C,YAAa,SAAS,UAGnB,EAAI,SAMK,EAAI,KAAI,GALpB,QAAQ,KAAK,mCAAoC,EAAI,MAAM,EAEpD,KAIX,OAAS,EAAK,QACZ,QAAQ,MAAM,mCAAoC,CAAG,EAE9C,IACT,CACF,kCAKmB,EAAS,EAAG,KAAI,CAAI,SAAS,GAFjD,iGAGE,EAAW,8BACX,EAAa,kCACb,EAAiB,gBACH,OAAQ,CAAe,iBAEvC,IAAS,wBAAU,EAAa,qBAAQ,EAAW,sBAAG,EAAK,uCAItD,eAAgB,EAAoB,EACpC,MAAO,EAAoB,KAH5B,mDADC,EAAS,gBAXP,sECtDR,yDA2FU,EAAe,uBACtB,GAAY,sBAAE,EAAK,4BAAG,EAAW,yBAAG,EAAQ,iCAAG,EAAgB,GACpD,cAAa,IACpB,gDAEU,EAAQ,eACF,CACb,EAAU,KACZ,EAEU,YAAW,IAClB,GAAI,qBAAO,oEAKnB,EAAG,WAAH,CAAG,0BAES,CAAQ,kBADd,EAAQ,YADd,CAAG,UArEF,EAAK,cAAG,YAAY,EACpB,EAAQ,iBAAG,IAAI,EACf,EAAW,oBAAG,mFAAmF,EACjG,EAAQ,iBAAG,sBAAsB,EACjC,EAAU,mBAAG,IAAI,EACH,uBAAG,IAAI,MACrB,EAAgB,yBAAG,EAAI,EACjB,eAAG,EAAI,EACM,4BAAG,EAAI,MAC1B,EAAQ,iBAAG,IAAI,EACf,EAAU,mBAAG,IAAI,EACjB,EAAgB,yBAAG,WAAW,EAC9B,EAAQ,iBAAG,IAAI,EACf,EAAa,sBAAG,EAAe,EAG3B,EAAiB,GAA6C,KAC5D,EAAQ,OAAU,GAAY,WAAa,EAAO,EAAK,SAExD,MAAM,QAAQ,CAAQ,EAEpB,EAAS,OAAO,OAAO,EAAE,IAAK,IAAG,CACtC,MAAO,EAAI,MACX,QAAS,EAAI,OAAO,IAJK,EAM7B,EAEM,EAA0B,QAC9B,MAAO,EAAgB,EACvB,QAAS,CAAe,IAGpB,EAAc,MAAY,EAAc,EAAU,IAElD,EAAc,aACP,EAAQ,GAAK,UAAY,EAAQ,EAAC,KAAI,EACxC,EAAQ,EAAC,KAAI,GAGN,EAAc,GAAE,MAAQ,MAEtB,GACnB,EAEK,EAAqC,QAEvC,MAAO,WACP,KAAI,EAAE,CAAc,EACpB,KAAI,GAAG,CAAW,OAAK,CAAc,qCA6BhB,CAAc,aAE7B,EAAQ,GAAI,MAAS,EAHhC,oDAEE,EAAK,6DAEL,CAAc,8BACd,EAAa,YA9BR,gwBCzFR,aAqBI,EAAW,oBAAG,EAAE,EAIhB,EAAW,oBAAG,EAAK,EACnB,EAAgB,yBAAG,EAAK,EACxB,EAAQ,iBAAG,EAAK,EAChB,EAAgB,kCAEZ,EAAW,oCACX,EAAc,MAAY,GAAO,yBACjC,EAAuB,OAC1B,EAAgB,OAAQ,OACtB,GAAS,EAAQ,GAAM,KAAQ,EAAQ,OAAO,GAAM,OAAS,EAAE,EAAE,KAAI,IAIpE,EAA8B,GAC9B,GAAU,MAA+B,IAAU,GAAW,WAEvD,GAAU,SAAiB,EAAM,eAAe,OAAO,EAE3D,EAGH,EAAiB,GAAyB,IACzC,CAAc,GAAI,EAAM,SAAW,EAAM,eAE1C,EAAM,MAAQ,SAAW,EAAM,MAAQ,MAE3C,EAAM,eAAc,EAEhB,EAAM,yBAAyB,aAAa,EAAM,cAAc,MAAK,EAC3E,MAID,wCA4BI,EAAG,WAAH,SACU,CAAW,KADrB,CAAG,WAAH,EAAgC,EAAW,QAA3C,CAAG,aADD,CAAW,iCAOb,EAAG,SAAH,EAAG,SACK,CAAuB,EAAI,GAAM,EAAK,KAAG,EAAd,IAAI,KACnC,EAAG,MACD,IADF,CAAG,MACD,uCAGc,CAAI,EAAC,YAAW,CAAK,QAAO,EAAE,CAAI,EAAC,WAAW,EAAK,EAAK,MAItE,EAAG,EAPH,SAOA,EAAG,MAAH,CAAG,IARL,CAAG,UACD,YAEQ,CAAI,EAAC,WAAW,QAGtB,CAAI,EAAC,KAAK,eAEoB,EAA0B,EAAC,CAAI,EAAC,KAAK,QARvE,CAAG,MAFP,CAAG,MAAH,CAAG,aADD,CAAuB,EAAC,QAAM,SAjCpC,sKAOO,CAAc,EAAG,SAAW,MAAS,IAP5C,eAQW,CAAc,EAAG,EAAI,MAAS,IARzC,kGAWY,CAAa,MAXzB,MAHO,iWCvDR,aAcQ,EAAiD,EAEnD,GAAI,aACJ,MAAO,aACP,YAAW,CAAG,YAAY,IAG1B,GAAI,cACJ,MAAO,cACP,YAAW,CAAG,aAAa,IAIzB,EAA+B,8BAC/B,EAAS,OAAU,OAAW,IAqBlC,EAAK,cAAG,oBAAoB,EAC5B,EAAW,oBAAG,oBAAoB,EAClC,EAAI,aAAG,QAAQ,EACf,EAAO,gBAAG,gGAAgG,EAC1G,EAAI,aAAG,IAAI,EACX,EAAgB,yBAAG,EAAI,EACvB,EAAM,eAAG,EAAI,EACb,EAAmB,4BAAG,EAAI,EACX,wBAAG,IAAI,EACN,yBAAG,uBAAuB,MAE1C,EAA0B,mCAAG,EAAI,EACjC,EAAkB,2BAAG,IAAI,EACzB,EAAqB,8BAAG,QAAQ,EAChC,EAA2B,oCAAG,GAAG,EAQ7B,EAAmB,GAAqC,KACvD,EAAK,OAAS,SAEb,EAAU,EAAM,KAAI,SAErB,EAEE,EAAQ,QAAQ,OAAQ,EAAE,EAFZ,IAGvB,EAEM,GAAqB,EAAc,IAAmB,KACrD,EAAM,OAAS,SAEd,EAAY,EAAK,YAAW,EAC5B,EAAc,EAAO,YAAW,EAChC,EAAM,EAAU,QAAQ,CAAW,SAErC,IAAG,GAAgB,QAEb,EAAK,MAAM,EAAG,CAAG,OAAO,EAAK,MAAM,EAAM,EAAO,MAAM,GAClE,EAEM,MAA2D,KAC1D,EAAS,OAAS,SAEjB,EAAW,OAAO,SAAS,SAAS,YAAW,SAGnD,EAAuB,KAAM,GAC3B,EAAQ,YAAY,KAAM,GAAW,EAAS,SAAS,EAAO,YAAW,MACtE,IAET,EAEM,EAA6B,GAAuB,KAClD,EAAW,EAAgB,EAAkB,MAE/C,SACK,MAGJ,SACI,MAGD,WAAU,YAAa,OAAO,SAChC,EAAY,EAAS,YAAW,KAEpC,EAAU,SAAS,WAAW,GAC9B,EAAU,WAAW,MAAM,GAC3B,EAAU,SAAS,QAAQ,SAGpB,KAGL,UACS,KAAU,EAAS,KACtB,EAAW,EAAkB,EAAU,CAAM,KAE/C,WACa,GAAY,SAEX,IAAK,IAAW,QAAQ,OAAQ,EAAE,CAEtD,QAGK,CACT,EAEM,EAAiB,GAAmB,IACpC,KACI,GAAa,EAAqB,GAAE,KAAI,GAAM,UAAU,QAAQ,OAAQ,EAAE,SAGzE,IAFe,IAAI,EAAU,WAAW,GAAG,EAAI,EAAS,IAAO,IAAa,CAE5E,EAAU,SAAQ,CAC3B,OAAS,EAAK,QACZ,QAAQ,KAAK,4DAA6D,CAAG,EAEtE,IACT,CACF,EAEM,MAA6D,KAC5D,EAAS,OAAS,SAEjB,EAAU,EAAkB,EAC5B,EAAS,EAA0B,GAAS,WAAW,MAExD,SACI,SAGH,EAAU,EAAc,CAAM,SAE/B,GAKH,IAAK,EACL,MAAO,GAAS,OAAS,eAAe,EALjC,IAOX,EAEI,EAAe,EAAwC,IAAI,EAC3D,EAA+B,KAC/B,EAA4B,KAE1B,EAAoB,GAAmC,GAC3D,EAAe,UACT,EAAQ,KAAK,IAAI,EAAG,EAA2B,GAAI,CAAC,EAC1D,QAAQ,KAAK,6BAA8B,mBAAkB,CAC3D,MAAO,EAAK,MACZ,IAAK,EAAK,IACV,OAAK,GAEP,EAAgB,OAAO,eAAiB,IAClC,CACF,OAAO,SAAS,OAAO,EAAK,GAAG,CACjC,OAAS,EAAK,CACZ,QAAQ,KAAK,8DAA+D,CAAG,CACjF,CACF,EAAG,EACL,EAEA,OAAc,KACP,EAA0B,aAIzB,MAAgB,KACd,EAAO,EAAmB,SAE5B,GACF,EAAiB,CAAI,EAEd,IAGF,EACT,KAEuB,EAElB,EAUH,QAAQ,KAAK,6BAA8B,sBAAsB,MAV9C,KAEb,EAAa,KAAK,IAAI,GAAI,KAAK,IAAI,IAAK,EAA2B,GAAI,GAAG,GAChF,EAAa,OAAO,eAAiB,GAC/B,CAAY,IAAK,EAA0B,IAE/C,QAAQ,KAAK,6BAA8B,gBAAgB,EACtD,EAAO,EACd,EAAG,EACL,CAGF,CAAC,EAED,OAAgB,CACV,IAAkB,OACpB,aAAa,CAAa,EAC1B,EAAgB,MAGd,IAAe,OACjB,aAAa,CAAU,EACvB,EAAa,KAEjB,CAAC,EAGF,GAAe,iCAAE,EAAgB,uBAAG,EAAM,oCAAG,EAAmB,oBAC9D,GAAI,GACO,eAAc,QACrB,EAAG,UAAH,CAAG,QAEC,GAAU,qBAAE,EAAI,8CAAG,EAAW,4CAD5B,EAAW,cAGf,EAAE,WAAF,EAAE,MAAF,CAAE,MACF,EAAC,EADD,EAAE,OACF,EAAC,MAAD,CAAC,UAAD,EAAC,aAEC,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAI,QAApB,CAAC,WADC,EAAI,iCAIN,EAAC,UAAD,CAAC,EAEC,EAAC,YAFH,CAAC,6CAC4B,CAAY,EAAC,OAAK,uBAC7C,EAAC,SAAO,CAAY,EAAC,GAAG,QAF1B,CAAC,aADC,CAAY,yCATlB,CAAG,aAIG,EAAK,OACU,EAAO,SAL5B,CAAG,GADkB,yDAJpB,CCnNR,eAAsB,IACpB,EACwC,CACxC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAW,+BAA+B,mBAAmB,CAAc,IAC9E,CACE,QAAS,GAAoB,EAC7B,MAAO,UACT,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,wDAAwD,GAAe,CAAK,GAAG,CACjG,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,qDAAqD,EAGlF,MAAM,EAAS,KAAK,CAC9B,CC/CA,IAAM,GAAwB,GAAuC,IAAI,EACnE,GAAmB,GAAS,EAAK,EACjC,GAAiB,GAAwB,IAAI,EAE/C,GAAuC,KACvC,GAAqB,EACzB,GAAe,cAAgB,CAC7B,IAAsB,EACtB,GAAwB,KACxB,GAAiB,IAAI,EAAK,EAC1B,GAAe,IAAI,IAAI,EACvB,GAAsB,IAAI,IAAI,CAChC,CAAC,EAMD,eAAsB,GACpB,EACA,EAA8C,CAAC,EAChC,CACf,IAAM,EAA2B,OAAO,GAAkB,EAAE,EAAE,KAAK,GAAK,KAClE,EAAc,EAAQ,QAAU,GAEtC,GAAI,CAAC,EAA0B,CAC7B,IAAsB,EACtB,GAAwB,KACxB,GAAiB,IAAI,EAAK,EAC1B,GAAe,IAAI,IAAI,EACvB,GAAsB,IAAI,IAAI,EAE9B,MACF,CAEA,IAAM,EAAU,GAAI,EAAqB,EAMzC,GAJI,CAAC,GAAe,GAAS,kBAAoB,GAI7C,KAA0B,EAC5B,OAGF,IAAM,EAAY,EAAE,GACpB,GAAwB,EACxB,GAAiB,IAAI,EAAI,EACzB,GAAe,IAAI,IAAI,EAEvB,GAAI,CACF,IAAM,EAAW,MAAM,IAA2B,CAAwB,EAE1E,GAAI,IAAc,GAAoB,OAEtC,GAAsB,IAAI,EAAS,YAAY,CACjD,OAAS,EAAO,CACd,GAAI,IAAc,GAAoB,OAEtC,GAAe,IAAI,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,CAAC,EACzE,GAAsB,IAAI,IAAI,CAChC,QAAU,CACJ,IAAc,KAChB,GAAiB,IAAI,EAAK,EAC1B,GAAwB,KAE5B,CACF,wXCxEA,aA4BI,EAAQ,iBAAG,IAAI,EACf,EAAW,oBAAG,IAAI,EAClB,EAAgB,yBAAG,EAAI,EACvB,EAAQ,iBAAG,QAAQ,EACnB,EAAG,YAAG,MAAM,EACZ,EAAW,oBAAG,IAAI,EAClB,EAAQ,iBAAG,IAAI,EACf,EAAc,uBAAG,IAAI,EACrB,EAAkB,2BAAG,YAAY,EACjC,EAAoB,6BAAG,EAAI,EAC3B,EAAY,qBAAG,IAAI,EACnB,EAAe,wBAAG,IAAI,EACtB,EAAc,uBAAG,8BAA8B,EAC/C,EAAgB,yBAAG,iBAAiB,EACpC,EAAoB,6BAAG,EAAK,EAC5B,EAAe,wBAAG,EAAI,EAGlB,EAAW,MAAY,EAAW,GAAI,EAAQ,GAC9C,EAAoB,MAAqB,GAAQ,EAAoB,GAAI,EAAc,IACvF,EAAkB,MACjB,EAAe,EAEb,GAAQ,EAAe,GAAK,EAAY,GAAI,EAAY,EAAC,KAAI,GAFvC,EAG9B,EACK,EAAY,oBAA0B,EAAQ,WAAU,EAAG,MAE3D,MAAqB,IACrB,EAAe,EAAE,CACnB,EAAe,UAGjB,KAEM,EAAO,EAAY,GAAE,KAAI,QAE1B,GAAI,OAAW,OAAW,SAE3B,EAAoB,EAAE,CACxB,OAAO,KAAK,EAAM,SAAU,qBAAqB,QAGnD,CAEA,OAAO,SAAS,OAAO,CAAI,CAF3B,CAGF,EAEM,EAAyB,GAAyB,CAClD,EAAM,MAAQ,SAAW,EAAM,MAAQ,MAE3C,EAAM,eAAc,EACpB,EAAY,EACd,MAGD,EAAG,UAAH,CAAG,EACD,wDAEE,EAAQ,4BACR,EAAW,iCACX,EAAgB,uCAGP,aAAY,2BAEjB,iDAEU,EAAkB,qBACrB,aACI,eACK,EAAc,YACtB,gBAPN,CAAoB,qEAc1B,EAAG,WAAH,SACU,CAAW,KADrB,CAAG,MAAH,CAAG,aADD,CAAW,iCAOb,QAOE,EAAG,EAPL,OAOE,CAAG,EACD,GAAI,qBAAO,UACX,EAAI,WAAJ,EAAI,MAAJ,CAAI,IAFN,CAAG,MAIH,EAAI,EAJJ,EAAG,OAIH,EAAI,MAAJ,CAAI,IAXN,cASU,EAAc,OAEiB,EAAgB,eAXzD,EAIU,CAAY,cAJtB,EAKY,CAAqB,MALjC,cADE,CAAkB,YA5BxB,CAAG,WAAH,EAAG,EAAyB,CAAY,QAAxC,CAAG,KAFI,yBCZR,eAAsB,IACpB,CAAE,WAAU,YAAW,iBACvB,EAAO,GACP,EAAQ,GACR,EAAqE,CAAC,EACtC,CAChC,IAAM,EAAS,IAAI,gBAAgB,CACjC,KAAM,OAAO,CAAI,EACjB,MAAO,OAAO,CAAK,CACrB,CAAC,EACD,EAAO,IAAI,mBAAoB,OAAO,EAAQ,gBAAkB,EAAI,CAAC,EACrE,EAAO,IAAI,sBAAuB,OAAO,EAAQ,mBAAqB,EAAI,CAAC,EAEvE,GAAU,KAAK,GACjB,EAAO,IAAI,YAAa,EAAS,KAAK,CAAC,EAGrC,GAAW,KAAK,GAClB,EAAO,IAAI,aAAc,EAAU,KAAK,CAAC,EAGvC,GAAe,KAAK,GACtB,EAAO,IAAI,iBAAkB,EAAc,KAAK,CAAC,EAGnD,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAW,2BAA2B,EAAO,SAAS,IAAK,CAC1F,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,cAAe,EAAQ,eACvB,cAAe,EAAQ,gBACvB,aAAc,EAAQ,eACtB,aAAc,EAAQ,eACtB,aAAc,EAAQ,eACtB,SAAU,EAAQ,SAClB,QAAS,EAAQ,SAAS,IAAK,IAAU,CACvC,OAAQ,EAAK,QACb,SAAU,EAAK,UACf,KAAM,EAAK,IACb,EAAE,EACF,WAAY,EAAQ,YAAY,IAAK,IAAU,CAC7C,UAAW,EAAK,WAChB,MAAO,EAAK,MACZ,YAAa,EAAK,YACpB,EAAE,EACF,cAAe,EAAQ,eAAe,IAAK,IAAU,CACnD,KAAM,EAAK,KACX,aAAc,EAAK,aACrB,EAAE,EACF,kBAAmB,EAAQ,qBAAqB,IAAK,IAAU,CAC7D,KAAM,EAAK,KACX,MAAO,EAAK,MACd,EAAE,EACF,kBAAmB,EAAQ,qBAAqB,IAAK,IAAU,CAC7D,KAAM,EAAK,KACX,MAAO,EAAK,MACd,EAAE,EACF,OAAQ,EAAQ,QAChB,KAAM,EAAQ,KAChB,CACF,sHC7IA,aAYgB,EAAM,eAAG,GAAG,EAAE,EAAO,gBAAG,MAAS,EAAE,EAAS,kBAAG,MAAS,EAElE,EAAS,EAAiC,IAAI,EAC9C,EAAQ,EAAqB,IAAI,EAE/B,GAAgB,EAA8B,IAAiC,KAC7E,EAAK,GAAC,GACN,EAAK,GAAC,MAER,EAAG,SAAW,EAAG,OAAM,MAAS,WAE3B,EAAI,EAAG,EAAI,EAAG,OAAQ,OACzB,EAAG,KAAO,EAAG,GAAC,MAAU,SAGvB,EACT,EAEM,MAAqB,GACzB,CAAK,GAAE,QAAO,IACd,EAAQ,KACV,EAEM,MAAoB,OACnB,CAAM,oBAEX,IAAgB,EAEhB,EAAY,MAEN,EAAG,EAAG,CAAM,EAAC,WAAW,IAAI,EAE7B,KAYL,EAAK,IAAO,GAAM,EAAK,aARrB,QAAS,EAAO,YAAW,QAC3B,QAAO,CACL,WAAY,GACZ,oBAAqB,eACV,SAAO,GAIC,CAAW,KACpC,EAEA,QACE,EAAW,EAEJ,EACR,EAED,OAAc,KACN,EAAG,aAEJ,EAAK,CACR,EAAY,QAGd,OAEK,CAAM,eAEN,CAAK,EAAE,CACV,EAAW,QAGb,KAEM,EAAY,EAA0B,KACtC,EAAW,EAAI,CAAK,EAAC,OAA6B,QAEpD,GAAY,GAAe,IAAa,EAAa,CACvD,EAAW,QAGb,GAEA,CAAK,EAAC,QAAO,CACX,WAAY,GACZ,oBAAqB,MACjB,EAAI,SAAO,MAGjB,CAAK,EAAC,KAAO,EAAI,SAEX,EAAc,EAAO,GAAI,EAAI,QAE9B,EAAY,EAAC,CAAK,EAAC,OAAO,QAAgB,CAAW,MAEtD,CAAK,EAAC,OAAe,QAAQ,QAAU,KAG3C,CAAK,EAAC,OAAM,CACd,CAAC,EAED,GAAU,CAAY,MAGvB,EAAG,MACD,EAAM,EADR,CAAG,KACD,EAAM,KAAY,EAAM,SAAN,CAAM,KAD1B,CAAG,YAAH,EAAG,UAAsC,EAAM,SAC7C,EAAM,aAAgC,EAAS,SADjD,CAAG,KAFI,kWC9GR,aAwBI,EAAQ,iBAAG,IAAI,EACf,EAAM,wBACN,EAAM,eAAG,MAAS,EAClB,EAAI,aAAG,IAAI,EACX,EAAc,uBAAG,CAAC,EAClB,EAAU,mBAAG,wBAAwB,EACrC,EAAgB,yBAAG,EAAK,EAGtB,EAAS,EAA8B,IAAI,EACzC,EAAK,MAAqB,IAAiB,EAAC,CAAM,GAAI,QAAS,MAAM,IAErE,EAAW,MACR,IAAqB,CAC1B,MAAK,QACL,SAAM,EACN,SAAM,EACN,OAAI,EACJ,iBAAc,EACd,WAAY,EAAgB,EAC5B,MAAK,EAAL,CAAK,GAER,EACK,EAAO,QAAY,CAAW,IAAK,IAAI,MAG9C,EAAG,MACD,KADF,CACM,gCACF,EAAG,KACD,EAAE,EADJ,CAAG,MACD,EAAE,MAAF,CAAE,UAAF,EAAE,aAEA,EAAC,UAAD,EAAC,MAAD,CAAC,YAAE,EAAQ,QAAX,CAAC,WADC,EAAQ,YAFd,CAAG,UAAH,EAAG,aAQD,EAAG,MACD,MADF,CACa,yBAAS,CAAW,UAAU,wCAD3C,CAAG,MAAH,CAAG,aAIH,EAAG,UAAH,EAAG,MAAH,CAAG,YAA4B,EAAU,QAAzC,CAAG,aALD,CAAO,sEATf,CAAG,KAAH,EAAG,KAA+B,EAAM,SAAN,CAAM,OAAxC,CAAG,KAFI,kQCxCR,aAiBM,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAQ,EAAqC,IAAI,EACjD,EAAY,EAEV,EAAU,UACV,KAAI,EAAG,mBAAmB,QAAO,CACnC,QAAS,OACT,IAAK,UACL,MAAO,OACP,KAAM,aAIJ,EAAS,MAAqB,KAC5B,EAAO,IAAa,EACpB,GAAS,GAAM,YAAc,IAAI,KAAI,KAEvC,EAAK,OAAS,MAEZ,GAAO,GAAM,UAAY,GAAM,OAAS,IAAI,KAAI,SAE/C,EAAM,EAAI,QAAQ,OAAQ,GAAG,EAAE,MAAM,GAAG,EAAE,GAAK,EACxD,CAAC,EACK,EAAY,QAAsB,CAAS,mBAAkB,CAAS,KAAM,aAAa,EAEzF,EAAa,MAAqB,OACjC,CAAK,GAAE,QAAM,GAAK,CAAK,GAAE,KAAI,OAAS,SAErC,EAAI,IAAO,KAAI,EAAC,CAAK,EAAC,MAAM,EAC5B,EAAE,IAAO,KAAI,EAAC,CAAK,EAAC,IAAI,SAE1B,OAAO,MAAM,EAAK,QAAO,IAAO,OAAO,MAAM,EAAG,QAAO,GAAY,QAE7D,EAAK,mBAAmB,OAAO,SAAS,EAAG,mBAAmB,OAAO,GACjF,CAAC,EACK,EAAY,MAAqB,IACjC,YACS,IAAI,kBAAmB,EAAoB,EAAE,SAAQ,CAClE,MAAQ,QACC,IACT,CACF,CAAC,EACK,EAAU,MAAY,EAAO,kBAE7B,EAAa,SAChB,CAAK,GAAE,eAAa,IAAQ,IAAK,IAAI,CACpC,KAAM,EAAK,KACX,MAAO,OAAO,EAAK,cAAgB,CAAC,MAIlC,EAAa,MAAoC,KAC/C,GAAG,EAAI,CAAK,GAAE,mBAAiB,IAAQ,IAAK,IAAI,CACpD,KAAM,EAAK,KACX,MAAO,EAAK,KAAK,IAEb,GAAG,EAAI,CAAK,GAAE,mBAAiB,IAAQ,IAAK,IAAI,CACpD,KAAM,EAAK,KACX,MAAO,EAAK,KAAK,YAKf,MAAO,MACP,OAAQ,EACR,KAAM,EAAI,GAGV,MAAO,MACP,OAAQ,EACR,KAAM,GACN,WAAU,CAAG,EAAG,CAAC,GAGvB,CAAC,EAEK,EAAS,SAAe,sBACP,GACnB,EAAQ,QACR,EAAQ,QACR,EAAU,UAGZ,KAEM,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,MAAS,IAAkB,CAErC,SAAQ,kBAEV,GACA,GAAE,CAEA,eAAgB,GAChB,kBAAmB,EAAK,MAIxB,IAAY,EAAS,SAEzB,EAAQ,KACV,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAQ,QACR,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,KACd,EAAU,GAEd,CACF,EAMA,OAAc,CACP,EAAS,CAChB,CAAC,EAGF,4BACQ,CAAY,2BACT,CAAU,sBAXW,CAC7B,OAAO,KAAK,GAAsB,SAAU,qBAAqB,CACnE,8DAYC,CAAY,wBACS,2CAGf,GAAM,oDAEN,EAAG,UAAH,EAAG,MAAH,CAAG,cAAiC,CAAK,QAAzC,CAAG,SAEH,GAAM,oDAEH,IAAH,CAAG,aAEH,EAAG,UAAH,CAAG,EACC,qDAEK,CAAa,yBACf,CAAa,6EAIhB,iEAEK,CAAa,yBACf,CAAa,4BAEL,8EAEE,OAfjB,CAAG,MAAH,CAAG,aATH,CAAO,SAEF,CAAK,WAEJ,CAAU,IAEV,CAAK,iBAFK,2CAdjB,CCrJR,IAAM,IAA0C,CAC9C,YAAa,eACb,YAAa,cACb,oBAAqB,gBACvB,EAEM,IAAwC,CAC5C,SAAU,eACV,MAAO,eACP,QAAS,mBACT,SAAU,mBACV,iBAAkB,eAClB,QAAS,iBACT,QAAS,mBACX,EAEM,IAA2E,CAC/E,YAAa,CAAE,SAAU,cAAe,OAAQ,UAAW,EAC3D,QAAS,CAAE,SAAU,cAAe,OAAQ,OAAQ,EACpD,SAAU,CAAE,SAAU,cAAe,OAAQ,SAAU,EACvD,QAAS,CAAE,SAAU,cAAe,OAAQ,SAAU,EACtD,iBAAkB,CAAE,SAAU,cAAe,OAAQ,gBAAiB,CACxE,EAEM,IAAkB,IAAI,KAAK,aAAa,OAAO,EAC/C,IAAoB,IAAI,KAAK,eAAe,QAAS,CACzD,UAAW,SACX,UAAW,OACb,CAAC,EACK,GAAwB,IAAI,KAAK,mBAAmB,QAAS,CACjE,QAAS,MACX,CAAC,EAEK,GAAmB,GAA6C,CACpE,IAAM,GAAU,GAAS,WAAW,KAAK,EAAE,YAAY,EAgBvD,OAdK,EAED,CAAC,iBAAkB,iBAAkB,cAAc,EAAE,SAAS,CAAM,EAC/D,iBAGL,CAAC,WAAY,wBAAyB,uBAAuB,EAAE,SAAS,CAAM,GAI9E,CAAC,mBAAoB,kBAAkB,EAAE,SAAS,CAAM,EACnD,UAGF,EAda,SAetB,EAEA,SAAS,GAAY,EAAuB,CAC1C,IAAM,EAAU,EAAM,QAAQ,QAAS,GAAG,EAAE,KAAK,EAMjD,OAJK,EAIE,EAAQ,OAAO,CAAC,EAAE,YAAY,EAAI,EAAQ,MAAM,CAAC,EAH/C,WAIX,CAEA,SAAgB,GAAmB,EAGjC,CACA,GAAI,CAAC,EACH,MAAO,CAAE,SAAU,sBAAuB,OAAQ,SAAU,EAG9D,IAAM,EAAU,EAAI,KAAK,EAEzB,GAAI,EAAQ,SAAS,IAAI,EAAG,CAC1B,GAAM,CAAC,EAAa,GAAa,EAAQ,MAAM,IAAI,EAC7C,EAAS,GAAgB,CAAS,EAIxC,MAAO,CAAE,SAFP,IAAW,iBAAmB,cAAgB,GAAe,sBAE5C,QAAO,CAC5B,CAEA,IAAM,EAAgB,GAAgB,CAAO,EAS7C,OARe,IAAmB,IAQ3B,CAAE,SAFQ,IAAkB,iBAAmB,cAAgB,sBAEnD,OAAQ,CAAc,CAC3C,CAEA,SAAgB,GAAmB,EAMjC,CACA,GAAM,CAAE,WAAU,UAAW,GAAmB,CAAG,EAC7C,EAAgB,IAAgB,IAAa,GAAY,CAAQ,EACjE,EAAc,EAAO,WAAW,YAAY,EAC9C,uBACC,IAAc,IAAW,GAAY,CAAM,EAEhD,MAAO,CACL,MAAO,EACP,WACA,SACA,gBACA,aACF,CACF,CAEA,SAAgB,GAAa,EAAmD,CAC9E,IAAM,EAAS,OAAO,GAAS,CAAC,EAMhC,OAJK,OAAO,SAAS,CAAM,EAIpB,IAAgB,OAAO,CAAM,EAH3B,GAIX,CAYA,SAAgB,GAAgB,EAA0D,CACxF,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,CAAK,EAM3D,OAJK,OAAO,SAAS,EAAK,QAAQ,CAAC,EAI5B,IAAkB,OAAO,CAAI,EAH3B,OAAO,CAAK,CAIvB,CAEA,SAAgB,GAAe,EAA0D,CACvF,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,CAAK,EAE3D,GAAI,CAAC,OAAO,SAAS,EAAK,QAAQ,CAAC,EACjC,OAAO,OAAO,CAAK,EAGrB,IAAM,EAAS,EAAK,QAAQ,EAAI,KAAK,IAAI,EACnC,EAAc,KAAK,MAAM,EAAS,GAAM,EAE9C,GAAI,KAAK,IAAI,CAAW,EAAI,GAC1B,OAAO,GAAsB,OAAO,EAAa,QAAQ,EAG3D,IAAM,EAAY,KAAK,MAAM,EAAS,IAAS,EAE/C,GAAI,KAAK,IAAI,CAAS,EAAI,GACxB,OAAO,GAAsB,OAAO,EAAW,MAAM,EAGvD,IAAM,EAAW,KAAK,MAAM,EAAS,KAAU,EAE/C,GAAI,KAAK,IAAI,CAAQ,EAAI,GACvB,OAAO,GAAsB,OAAO,EAAU,KAAK,EAGrD,IAAM,EAAa,KAAK,MAAM,EAAW,EAAE,EAE3C,GAAI,KAAK,IAAI,CAAU,EAAI,GACzB,OAAO,GAAsB,OAAO,EAAY,OAAO,EAGzD,IAAM,EAAY,KAAK,MAAM,EAAW,GAAG,EAE3C,OAAO,GAAsB,OAAO,EAAW,MAAM,CACvD,CCxFA,IAAM,IAAe,EAAyB,EAAa,IAAqC,CAC9F,IAAM,EAAa,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAEzD,GAEL,EAAO,IAAI,EAAK,CAAU,CAC5B,EAEM,GAA2B,IACZ,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,KAEzC,KAGjB,IAAuB,GAA0B,CACrD,IAAM,EAAQ,IAAI,YAAY,EAAE,OAAO,CAAK,EACxC,EAAS,GACb,IAAK,IAAM,KAAQ,EACjB,GAAU,OAAO,aAAa,CAAI,EAGpC,OAAO,KAAK,CAAM,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,OAAQ,EAAE,CAChF,EAEa,GAAqB,GAAwC,CACxE,IAAM,EAAS,GAAwB,EAAQ,MAAM,EAErD,GAAI,CAAC,EACH,MAAU,MAAM,0BAA0B,EAG5C,IAAM,EAAU,CACd,WAAY,GAAwB,EAAQ,SAAS,EACrD,gBAAiB,GAAwB,EAAQ,cAAc,EAC/D,eAAgB,GAAwB,EAAQ,aAAa,EAC7D,MAAO,EAAQ,OAAS,KACxB,UAAW,GAAwB,EAAQ,QAAQ,EACnD,QAAS,CACX,EAEA,OAAO,IAAoB,KAAK,UAAU,CAAO,CAAC,CACpD,EAEM,IACJ,EACA,EACA,IAEK,EAEA,EAEE,KAFqB,EAFL,KAOzB,eAAsB,IACpB,EACA,EAC+B,CAC/B,IAAM,EAAS,IAAI,gBACnB,GACE,EACA,aACA,GAAoB,EAAW,EAAQ,eAAgB,EAAQ,KAAK,CACtE,EACA,GAAY,EAAQ,kBAAmB,EAAQ,cAAc,EAC7D,GAAY,EAAQ,iBAAkB,EAAQ,aAAa,EAC3D,GAAY,EAAQ,QAAS,EAAQ,KAAK,EAEtC,EAAQ,QAAQ,EAAO,IAAI,SAAU,EAAQ,MAAM,EAEvD,GAAY,EAAQ,UAAW,EAAQ,MAAM,EAC7C,GAAY,EAAQ,WAAY,EAAQ,OAAO,EAE3C,OAAO,EAAQ,OAAU,UAAU,EAAO,IAAI,QAAS,OAAO,EAAQ,KAAK,CAAC,EAE5E,OAAO,EAAQ,QAAW,UAAU,EAAO,IAAI,SAAU,OAAO,EAAQ,MAAM,CAAC,EAEnF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAW,uBAAuB,EAAO,SAAS,IAAK,CACtF,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,EAGlE,MAAM,EAAS,KAAK,CAC9B,CAEA,eAAsB,IACpB,EACA,EAC8B,CAC9B,IAAM,EAAS,IAAI,gBAEf,OAAO,EAAQ,OAAU,UAAU,EAAO,IAAI,QAAS,OAAO,EAAQ,KAAK,CAAC,EAE5E,OAAO,EAAQ,QAAW,UAAU,EAAO,IAAI,SAAU,OAAO,EAAQ,MAAM,CAAC,EAEnF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAW,uBAAuB,mBAAmB,EAAQ,WAAW,EAAE,SAC3E,EAAO,SAAS,EAAI,IAAI,EAAO,SAAS,IAAM,KAEhD,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,+CAA+C,GAAe,CAAK,GAAG,CACxF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,4CAA4C,EAGzE,MAAM,EAAS,KAAK,CAC9B,CAEA,eAAsB,IACpB,EACA,EACoC,CACpC,IAAM,EAAW,EAAQ,UAAU,KAAK,EAExC,GAAI,CAAC,EACH,MAAU,MAAM,4BAA4B,EAG9C,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAW,+BAAgC,CAC1E,OAAQ,OACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,WAAY,GAAoB,EAAW,EAAQ,eAAgB,EAAQ,KAAK,EAChF,gBAAiB,EAAQ,gBAAkB,OAC3C,eAAgB,EAAQ,eAAiB,OACzC,MAAO,EAAQ,OAAS,OACxB,UAAW,CACb,CAAC,CACH,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,EAGlE,MAAM,EAAS,KAAK,CAC9B,CCpCA,IAAM,GAAqB,GACpB,MAAM,QAAQ,CAAK,EAEjB,EACJ,IAAK,GAAU,OAAO,GAAS,SAAW,EAAK,KAAK,EAAI,OAAO,GAAQ,EAAE,EAAE,KAAK,CAAE,EAClF,OAAQ,GAAS,EAAK,OAAS,CAAC,EAJD,CAAC,EAO/B,GAAoB,GAAyE,CACjG,IAAM,EAAe,IAAI,gBACzB,IAAK,GAAM,CAAC,EAAK,KAAU,EAAS,CAClC,GAAI,GAAU,KAA6B,SAE3C,IAAM,EAAa,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAAG,IAE7D,IAAe,IAEnB,EAAa,IAAI,EAAK,CAAU,CAClC,CACA,IAAM,EAAQ,EAAa,SAAS,EAEpC,OAAO,EAAQ,IAAI,IAAU,EAC/B,EAEM,GAAc,IACE,GAAS,IAAI,KAE1B,GAAc,KAGjB,GAAsB,GAAuD,CACjF,IAAM,GAAc,GAAS,gBAAgB,KAAK,EAElD,GAAI,IAAe,gBAAkB,IAAe,WAAa,IAAe,cAC9E,OAAO,EAGT,MAAU,MAAM,0BAA0B,CAC5C,EAEM,KAAgB,EAAoC,IAAoC,CAC5F,IAAM,EACJ,EAAQ,OACP,GAAiB,aACjB,GAAiB,YACjB,GAAiB,OAClB,KAEF,OAAO,OAAO,GAAc,SAAW,EAAY,CACrD,EAEM,IACJ,EACA,IACuB,CACvB,GAAI,MAAM,QAAQ,CAAO,EAAG,CAC1B,IAAM,EAAQ,EAAQ,IAAI,CAAS,EAEnC,MAAO,CAAE,QAAO,MAAO,EAAM,MAAO,CACtC,CAEA,IAAM,GAAS,EAAQ,OAAS,CAAC,GAAG,IAAI,CAAS,EAGjD,MAAO,CAAE,QAAO,MAFF,IAAa,EAAS,EAAM,MAE1B,CAAM,CACxB,EAEM,GAAiB,IAEjB,IAA+B,GAAkC,CACrE,IAAM,EAAY,GAAkB,GAAM,WAAa,GAAM,UAAU,EAOjE,GALJ,OAAO,GAAM,UAAa,SACtB,EAAK,SACL,OAAO,GAAM,WAAc,SACzB,EAAK,UACL,OACyB,KAAK,GAAK,OACrC,EACJ,OAAO,GAAM,YAAe,UACxB,EAAK,WACL,OAAO,GAAM,aAAgB,UAC3B,EAAK,YACL,OAER,MAAO,CACL,QAAS,OAAO,GAAM,SAAY,SAAW,EAAK,QAAU,GAC5D,YACA,WACA,WAAY,GAAoB,EAClC,CACF,EAEM,GAAyB,GAA0C,CACvE,IAAM,EAAmB,GAAkB,EAAO,oBAAsB,EAAO,gBAAgB,EAOzF,GALJ,OAAO,EAAO,mBAAsB,SAChC,EAAO,kBACP,OAAO,EAAO,iBAAoB,SAChC,EAAO,gBACP,OACuC,KAAK,GAAK,KACnD,GAAuB,EAAO,sBAAwB,EAAO,qBAAuB,CAAC,GAAG,IAC5F,GACF,EACM,EACJ,OAAO,EAAO,YAAe,SACzB,EAAO,WACP,OAAO,EAAO,WAAc,SAC1B,EAAO,UACP,GACF,EACJ,OAAO,EAAO,WAAc,SACxB,EAAO,UACP,OAAO,EAAO,UAAa,SACzB,EAAO,SACP,GACF,EACJ,OAAO,EAAO,QAAW,SACrB,EAAO,OACP,EAAO,SAAW,QAAa,EAAO,SAAW,KAC/C,OAAO,EAAO,MAAM,EACpB,GACF,EAAc,OAAO,EAAO,OAAU,SAAW,EAAO,MAAM,KAAK,EAAE,YAAY,EAAI,GACrF,EACJ,IAAgB,WAAa,IAAgB,eAAiB,IAAgB,eAC1E,EACA,eAEN,MAAO,CACL,GAAI,EAAO,GACX,WAAY,EAAe,KAAK,GAAK,KACrC,gBACE,OAAO,EAAO,iBAAoB,SAC9B,EAAO,gBACP,OAAO,EAAO,gBAAmB,SAC/B,EAAO,eACP,EACR,UAAW,EACX,eACE,OAAO,EAAO,gBAAmB,SAC7B,EAAO,eACP,OAAO,EAAO,eAAkB,SAC9B,EAAO,cACP,KACR,MAAO,EACP,OAAQ,EACR,uBAAwB,EAAO,wBAA0B,EAAO,sBAAwB,EACxF,kBAAmB,EACnB,mBAAoB,EACpB,qBAAsB,EACtB,UAAW,EAAO,WAAa,EAAO,UAAY,EAClD,kBAAmB,EAAO,mBAAqB,EAAO,iBAAmB,EACzE,mBAAoB,EAAO,oBAAsB,EAAO,kBAAoB,KAC5E,kBAAmB,EAAO,mBAAqB,EAAO,iBAAmB,KACzE,WAAY,EAAO,YAAc,EAAO,UACxC,WAAY,EAAO,YAAc,EAAO,SAC1C,CACF,EAEM,IAAsB,GAAoC,CAC9D,IAAM,EACJ,OAAO,EAAO,YAAe,SACzB,EAAO,WACP,OAAO,EAAO,WAAc,SAC1B,EAAO,UACP,GACF,EACJ,OAAO,EAAO,WAAc,SACxB,EAAO,UACP,OAAO,EAAO,UAAa,SACzB,EAAO,SACP,GACF,EACJ,OAAO,EAAO,WAAc,SACxB,EAAO,UACP,OAAO,EAAO,UAAa,SACzB,EAAO,SACP,GACF,EACJ,OAAO,EAAO,KAAQ,SAAW,EAAO,IAAM,EAAO,IAAM,OAAO,EAAO,GAAG,EAAI,GAC5E,EACJ,OAAO,EAAO,aAAgB,SAC1B,EAAO,YACP,OAAO,EAAO,YAAe,SAC3B,EAAO,WACP,UACF,EACJ,EAAO,oBAAsB,QAAa,EAAO,kBAAoB,OAChE,EAAO,mBAAqB,EAAO,gBACpC,OAEN,MAAO,CACL,GAAI,EAAO,GACX,WAAY,EAAe,KAAK,GAAK,KACrC,UAAW,EACX,gBACE,OAAO,EAAO,iBAAoB,SAC9B,EAAO,gBACP,OAAO,EAAO,gBAAmB,SAC/B,EAAO,eACP,EACR,UAAW,EACX,IAAK,EACL,eAAgB,EAAO,gBAAkB,EAAO,cAAgB,KAChE,iBAAkB,EAAO,kBAAoB,EAAO,gBAAkB,KACtE,oBAAqB,EAAO,qBAAuB,EAAO,mBAAqB,KAC/E,gBAAiB,GAAkB,EAAO,iBAAmB,EAAO,aAAa,EACjF,kBACE,GAEyB,KADrB,KAGE,GAAkB,CAAgB,EAC1C,qBAAsB,GACpB,EAAO,sBAAwB,EAAO,kBACxC,EACA,4BACE,OAAO,EAAO,6BAAgC,UAC1C,EAAO,4BACP,OAAO,EAAO,2BAA8B,UAC1C,EAAO,0BACP,GACR,YAAa,EACb,YAAa,EAAO,aAAe,EAAO,YAAc,EACxD,aAAc,EAAO,cAAgB,EAAO,YAAc,KAC1D,aAAc,EAAO,cAAgB,EAAO,YAAc,KAC1D,WAAY,EAAO,YAAc,EAAO,WAAa,KACrD,cACE,OAAO,EAAO,eAAkB,SAC5B,EAAO,cACP,OAAO,EAAO,aAAgB,SAC5B,EAAO,YACP,GACR,aACE,OAAO,EAAO,cAAiB,SAC3B,EAAO,aACP,OAAO,EAAO,YAAe,SAC3B,EAAO,WACP,GACR,gBAAiB,EAAO,iBAAmB,EAAO,eAAiB,IACrE,CACF,EAEM,GAAiB,MAAU,EAAoB,KAC9C,EAAS,IACZ,MAAM,GAAmB,EAAU,CAAW,EAGxC,MAAM,EAAS,KAAK,GAG9B,eAAsB,GACpB,EAA6B,CAAC,EACU,CACxC,IAAM,GAAkB,EAAO,gBAAkB,IAAI,KAAK,EAE1D,GAAI,CAAC,EAAgB,MAAO,CAAE,MAAO,CAAC,EAAG,MAAO,CAAE,EAElD,IAAM,EAAQ,GAAiB,CAC7B,CAAC,kBAAmB,CAAc,EAClC,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,iBAAkB,EAAO,eAAiB,MAAS,EACpD,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,UAAW,EAAO,QAAU,MAAS,EACtC,CAAC,WAAY,EAAO,SAAW,MAAS,CAC1C,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAe,gBAAgB,IAAS,CACvE,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,yCAAyC,GAAe,CAAK,GAAG,CAClF,CAMA,OAAO,GAA2B,MALZ,GACpB,EACA,sCACF,EAE2C,EAAqB,CAClE,CAEA,eAAsB,IAAa,EAAqD,CACtF,IAAM,EAAQ,GAAmB,EAAQ,KAAK,EACxC,EAAY,GAAW,EAAQ,UAAU,EACzC,EAAgB,GAAW,EAAQ,cAAc,EACnD,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAe,gBAAiB,CAC/D,OAAQ,OACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,gBAAiB,GAAW,EAAQ,iBAAmB,EAAQ,SAAS,EACxE,WAAY,IAAU,eAAiB,KAAO,EAC9C,eAAgB,IAAU,cAAgB,EAAgB,KAC1D,QACA,OAAQ,EAAQ,OAChB,uBAAwB,EAAQ,uBAChC,kBAAmB,EAAQ,kBAC3B,mBAAoB,EAAQ,mBAC5B,qBAAsB,EAAQ,oBAChC,CAAC,CACH,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAMA,OAAO,GAAsB,MALF,GACzB,EACA,qCACF,CAEyC,CAC3C,CAEA,eAAsB,IACpB,EACA,EACuB,CACvB,IAAM,EAA4B,CAAC,EAE/B,EAAQ,aAAe,SAAW,EAAK,WAAa,GAAW,EAAQ,UAAU,GAEjF,EAAQ,iBAAmB,SAAW,EAAK,eAAiB,GAAW,EAAQ,cAAc,GAE7F,EAAQ,QAAU,SAAW,EAAK,MAAQ,GAAmB,EAAQ,KAAK,GAE1E,EAAQ,yBAA2B,SACrC,EAAK,uBAAyB,EAAQ,wBAExC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAe,iBAAiB,IAAY,CAC3E,OAAQ,QACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,4CAA4C,GAAe,CAAK,GAAG,CACrF,CAMA,OAAO,GAAsB,MALF,GACzB,EACA,yCACF,CAEyC,CAC3C,CAEA,eAAsB,GAAiB,EAAkB,EAAQ,GAAsB,CACrF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAe,iBAAiB,EAAS,mBAAoB,CAC5F,OAAQ,OACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAE,OAAM,CAAC,CAChC,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,4CAA4C,GAAe,CAAK,GAAG,CACrF,CACA,MAAM,GAAe,EAAU,yCAAyC,CAC1E,CAEA,eAAsB,IAAiB,EAAqD,CAC1F,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,iBAAiB,EAAS,sBAC5C,CACE,OAAQ,OACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,yCAAyC,GAAe,CAAK,GAAG,CAClF,CACA,IAAM,EAAU,MAAM,GACpB,EACA,sCACF,EAEA,MAAO,CACL,OAAQ,EAAQ,OAChB,SAAU,EAAQ,UAClB,aAAc,EAAQ,aACxB,CACF,CAEA,eAAsB,IAAa,EAAiC,CAClE,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAe,iBAAiB,IAAY,CAC3E,OAAQ,SACR,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,CAE5E,CAEA,eAAsB,GACpB,EACA,EAAgC,CAAC,EACI,CACrC,IAAM,EAAQ,GAAiB,CAC7B,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,EAC1E,CAAC,UAAW,EAAO,QAAU,MAAS,EACtC,CAAC,WAAY,EAAO,SAAW,MAAS,CAC1C,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,OAAO,IACvE,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sCAAsC,GAAe,CAAK,GAAG,CAC/E,CAMA,OAAO,GAA2B,MALZ,GACpB,EACA,mCACF,EAE2C,GAAkB,CAC/D,CAEA,IAAa,IAA4B,GACvC,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,cAElE,eAAsB,IACpB,EAOI,CACF,eAAgB,EAClB,EAC8B,CAC9B,IAAM,GAAkB,EAAO,gBAAkB,IAAI,KAAK,EAE1D,GAAI,CAAC,EACH,MAAO,CAAE,MAAO,CAAC,EAAG,MAAO,CAAE,EAG/B,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,yBAAyB,GAAiB,CAC1D,CAAC,kBAAmB,CAAc,EAClC,CAAC,cAAe,EAAO,WAAa,IAAI,KAAK,GAAK,MAAS,EAC3D,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,CAC5E,CAAC,IACD,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CACA,IAAM,EAAU,MAAM,GACpB,EACA,mDACF,EAEA,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,eAAsB,IACpB,EACA,EAKI,CAAC,EACyB,CAC9B,IAAM,EAAQ,GAAiB,CAC7B,CAAC,QAAS,EAAO,OAAS,MAAS,EACnC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,QAAU,MAAS,EACrC,CAAC,SAAU,EAAO,UAAU,OAAS,EAAO,SAAS,KAAK,GAAG,EAAI,MAAS,CAC5E,CAAC,EACG,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,YAAY,IAC5E,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CACA,IAAM,EAAU,MAAM,GACpB,EACA,mDACF,EAEA,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,IAAa,IAAkC,GAI7C,GAAG,GAAe,gCAAgC,GAAiB,CACjE,CAAC,kBAAmB,EAAO,cAAc,EACzC,CAAC,cAAe,EAAO,WAAa,IAAI,KAAK,GAAK,MAAS,CAC7D,CAAC,IAEU,IAAwC,GACnD,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,mBAElE,eAAsB,GACpB,EAA6B,CAAC,EACU,CACxC,IAAM,EAAQ,EAAO,OAAS,EAAO,MAAQ,EAAI,EAAO,MAAQ,GAC5D,EAAS,EAAO,QAAU,EACxB,EAAwB,CAAC,EAC3B,EAAuB,KAE3B,OAAa,CACX,IAAM,EAAO,MAAM,GAAa,CAAE,GAAG,EAAQ,QAAO,QAAO,CAAC,EAW5D,GAVA,EAAM,KAAK,GAAG,EAAK,KAAK,EAEpB,IAAU,OAAM,EAAQ,EAAK,OAEjC,GAAU,EAAK,MAAM,OAEjB,CAAC,EAAK,MAAM,QAEZ,EAAK,QAAU,MAAQ,EAAM,QAAU,EAAK,OAE5C,EAAK,QAAU,MAAQ,EAAK,MAAM,OAAS,EAAO,KACxD,CAEA,MAAO,CAAE,QAAO,MAAO,GAAS,EAAM,MAAO,CAC/C,CAEA,eAAsB,IACpB,EACA,EAAgC,CAAC,EACI,CACrC,IAAM,EAAQ,EAAO,OAAS,EAAO,MAAQ,EAAI,EAAO,MAAQ,GAC5D,EAAS,EAAO,QAAU,EACxB,EAAqB,CAAC,EACxB,EAAuB,KAE3B,OAAa,CACX,IAAM,EAAO,MAAM,GAAgB,EAAU,CAAE,GAAG,EAAQ,QAAO,QAAO,CAAC,EAWzE,GAVA,EAAM,KAAK,GAAG,EAAK,KAAK,EAEpB,IAAU,OAAM,EAAQ,EAAK,OAEjC,GAAU,EAAK,MAAM,OAEjB,CAAC,EAAK,MAAM,QAEZ,EAAK,QAAU,MAAQ,EAAM,QAAU,EAAK,OAE5C,EAAK,QAAU,MAAQ,EAAK,MAAM,OAAS,EAAO,KACxD,CAEA,MAAO,CAAE,QAAO,MAAO,GAAS,EAAM,MAAO,CAC/C,CA+BA,eAAsB,GACpB,EACA,EACA,EACe,CACf,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,QAAQ,EAAM,eAC9E,CACE,OAAQ,OACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAO,CAC9B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,qCAAqC,GAAe,CAAK,GAAG,CAC9E,CACA,MAAM,GAAe,EAAU,kCAAkC,CACnE,CAEA,eAAsB,GAAU,EAAkB,EAA8B,CAC9E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAe,iBAAiB,mBAAmB,CAAQ,EAAE,QAAQ,IACxE,CACE,OAAQ,SACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,qCAAqC,GAAe,CAAK,GAAG,CAC9E,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,kCAAkC,CAEzE,CC/2BA,IAAa,IAAgB,GAC3B,EAAK,SAAW,UAA+B,EAAK,cAAxB,EAAK,YAEtB,IAAgC,GAA8B,CACzE,IAAM,EAAU,IAAI,IAClB,EAAQ,IAAK,GAAS,CACpB,IAAM,EAAS,GAAmB,EAAK,GAAG,EAAE,OAE5C,OAAO,OAAO,GAAW,SAAW,EAAO,YAAY,EAAI,CAC7D,CAAC,CACH,EACM,GACJ,EACA,IAIG,CACH,IAAM,EAAmB,EAAO,YAAY,EAE5C,GAAI,EAAQ,IAAI,CAAgB,EAAG,OAEnC,IAAM,EAAM,gBAAgB,IAC5B,EAAQ,IAAI,CAAgB,EAC5B,EAAQ,KAAK,CACX,MACA,KAAM,GAAmB,CAAG,EAC5B,aAAc,KACd,UAAW,EAAS,WAAa,KACjC,oBAAqB,EAAS,qBAAuB,KACrD,SAAU,IACZ,CAAC,CACH,EAOA,OALA,EAAW,UAAW,CAAE,UAAW,KAAM,oBAAqB,IAAK,CAAC,EACpE,EAAW,QAAS,CAAE,UAAW,KAAM,oBAAqB,IAAK,CAAC,EAClE,EAAW,iBAAkB,CAAE,UAAW,KAAM,oBAAqB,IAAK,CAAC,EAC3E,EAAW,aAAc,CAAE,UAAW,KAAM,oBAAqB,IAAK,CAAC,EAEhE,CACT,EAEa,IAAwB,GAC9B,EAmBE,IAjB0B,EAAU,aACxC,OAAQ,GAAW,GAAmB,EAAO,WAAW,EAAE,WAAa,aAAa,EACpF,IAAK,GAAW,CACf,IAAM,EAAO,GAAmB,EAAO,WAAW,EAC5C,EAAU,EAAO,SAAW,CAAC,EAEnC,MAAO,CACL,IAAK,EAAO,YACZ,aAAc,EAAO,kBAAoB,KACzC,OACA,UAAW,OAAO,EAAQ,iBAAoB,SAAW,EAAQ,gBAAkB,KACnF,oBACE,OAAO,EAAQ,uBAA0B,SAAW,EAAQ,sBAAwB,KACtF,SAAU,IACZ,CACF,CAEkC,CAAM,EAnBnB,CAAC,EAsBb,IAAwB,GAC9B,EAEE,EAAU,aACd,OAAQ,GAAW,GAAmB,EAAO,WAAW,EAAE,WAAa,qBAAqB,EAC5F,IAAK,GAAW,CACf,IAAM,EAAO,GAAmB,EAAO,WAAW,EAC5C,EAAU,EAAO,SAAW,CAAC,EAEnC,MAAO,CACL,IAAK,EAAO,YACZ,aAAc,EAAO,kBAAoB,KACzC,OACA,UAAW,OAAO,EAAQ,iBAAoB,SAAW,EAAQ,gBAAkB,KACnF,oBACE,OAAO,EAAQ,uBAA0B,SAAW,EAAQ,sBAAwB,KACtF,SAAU,IACZ,CACF,CAAC,EAjBoB,CAAC,EAoBb,IAAc,EAAwB,IAC5C,EAEA,EAEE,IAAI,KAAK,CAAI,EAAE,QAAQ,EAAI,IAAI,KAAK,CAAO,EAAE,QAAQ,EAAI,EAAO,EAFlD,EAFH,EAOP,KACX,EACA,EACA,IACkB,CAClB,IAAM,EAAkB,EACpB,EAAQ,OAAQ,GAAW,CACzB,IAAM,GAAS,EAAO,OAAS,gBAAgB,KAAK,EAAE,YAAY,EAQlE,OANI,IAAU,gBAAkB,IAAU,UAAkB,GAExD,IAAU,eACJ,EAAO,gBAAkB,IAAI,KAAK,IAAM,EAG3C,EACT,CAAC,EACD,EACE,EAAY,IAAI,IAAI,EAAgB,IAAK,GAAW,EAAO,EAAE,CAAC,EAC9D,EAAe,EAAK,OAAQ,GAAQ,EAAU,IAAI,EAAI,SAAS,CAAC,EAElE,EAA0B,KAC1B,EAAe,EACnB,IAAK,IAAM,KAAO,EACZ,EAAI,eACN,GAAgB,EAChB,EAAW,GAAW,EAAU,EAAI,YAAY,GAIpD,MAAO,CACL,QAAS,EAAgB,OACzB,KAAM,EAAa,OACnB,eACA,UACF,CACF,EAEa,IAAyB,IACnC,GAAS,IAAI,KAAK,EAAE,YAAY,EAEtB,GAAyB,GAAqC,CACzE,IAAM,EAAa,IAAsB,CAAK,EAI9C,OAFI,EAAW,WAAW,YAAY,EAAU,aAEzC,CACT,EAEa,IAAe,EAAiC,IACvD,GAAQ,MAAQ,GAAS,KAAa,MAElC,GAAQ,IAAM,GAAS,GAqEpB,IAAgB,GAC3B,GAAsB,EAAI,QAAU,EAAI,IAAM,SAAS,EAAE,QAAQ,cAAe,GAAG,ECxM/E,GAAc,GAClB,OAAO,GAAS,EAAE,EACf,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEtB,GAAa,GACjB,GAAU,MAA+B,OAAO,CAAK,EAAE,KAAK,EAAE,OAAS,EAEnE,GAAgB,GAA0B,WAAW,GAAW,CAAK,EAAE,WAEvE,GAAe,GACnB,GAAU,CAAK,EAAI,MAAM,GAAW,CAAK,EAAE,MAAQ,KAE/C,IAAgB,EAAe,IACnC,GAAU,CAAK,EAAI,YAAY,GAAW,CAAK,EAAE,MAAM,GAAW,CAAK,EAAE,SAAW,KAEhF,GAAc,IAAuC,GAAU,IAAI,KAAK,EAAE,YAAY,EAEtF,GAAmB,GAAmB,IAAW,WAAa,IAAW,WAEzE,GAAqB,GACrB,IAAW,QACN,qFAEL,GAAgB,CAAM,EACjB,6EAEL,IAAW,iBACN,2EAEL,EAAO,WAAW,YAAY,EACzB,iFAEL,IAAW,WAAa,IAAW,WAC9B,sEAEF,0CAGH,GAAmB,GAClB,EAEE,GAAG,GAAa,EAAS,OAAO,EAAE,aAAa,GAAa,EAAS,IAAI,EAAE,OAF5D,gBAKX,IACX,GACyB,CACzB,IAAM,EAAS,GAAW,EAAO,KAAK,MAAM,EACtC,EACJ,EAAO,KAAK,SAAW,UAAsC,EAAO,KAAK,cAAtC,EAAO,KAAK,YA4FjD,OA1FI,IAAW,QACN,CACL,GAAI,eACJ,QACA,SAAU,kBACV,MAAO,UACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,MAAO,cAAc,CACpC,EACA,YAAa,GACb,WAAY,GAAG,EAAM,+BACrB,UAAW,CACb,EAGE,GAAgB,CAAM,EACjB,CACL,GAAI,iBACJ,QACA,SAAU,GAAgB,EAAO,QAAQ,EACzC,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,YAAa,GAAgB,EAAO,QAAQ,CAAC,CAC5D,EACA,YAAa,GACb,WAAY,GAAG,EAAM,6BACrB,UAAW,CACb,EAGE,IAAW,iBACN,CACL,GAAI,wBACJ,QACA,SAAU,aACV,MAAO,SACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,MAAO,YAAY,CAClC,EACA,YAAa,GACb,WAAY,GAAG,EAAM,8BACrB,UAAW,CACb,EAGE,EAAO,WAAW,YAAY,EACzB,CACL,GAAI,oBACJ,QACA,SAAU,uBACV,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,MAAO,iCAAiC,CACvD,EACA,YAAa,GACb,WAAY,GAAG,EAAM,kCACrB,UAAW,CACb,EAGE,IAAW,WAAa,IAAW,WAC9B,CACL,GAAI,UAAU,IACd,QACA,SAAU,aACV,MAAO,SACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,MAAO,YAAY,CAClC,EACA,YAAa,GACb,WAAY,GAAG,EAAM,aACrB,UAAW,CACb,EAGK,CACL,GAAI,UAAU,GAAU,YACxB,QACA,SAAU,sBACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,CAAK,EAClB,GAAY,GAAkB,CAAM,CAAC,EACrC,GAAa,SAAU,GAAU,SAAS,CAC5C,EACA,YAAa,GACb,WAAY,GAAG,EAAM,gCACrB,UAAW,CACb,CACF,EAEa,GAAqB,GAChC,GAAS,KAAO,iBAAmB,GAAG,GAAa,CAAK,EAAE,SAE/C,GAAyB,GAChC,GAAS,KAAa,sBAInB,GAFQ,EAAQ,EAAI,IAAM,EAAQ,EAAI,IAAM,KAEhC,GAAa,KAAK,IAAI,CAAK,CAAC,EAAE,gBAGtC,IAAyB,GACpC,GAAS,KAAO,IAAM,GAAa,CAAK,EAE7B,KAAiB,CAC5B,SACA,sBAI0B,CAC1B,IAAM,EAAQ,GAAkB,CAAM,EAChC,EAAW,GAAsB,CAAgB,EAGvD,MAAO,CACL,GAAI,gBACJ,QACA,WACA,MANY,GAAU,KAAO,OAAS,EAAS,EAAI,UAAY,QAO/D,KAAM,GACN,QAAS,GACP,GAAa,cAAc,EAC3B,GAAY,8EAA8E,EAC1F,GAAa,UAAW,CAAK,EAC7B,GACE,gBACA,wDAA0D,CAC5D,CACF,EACA,YAAa,GACb,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,CACb,CACF,EAEa,KAAsB,CACjC,SACA,SACA,YACA,WACA,mBAO0B,CAG1B,GAAI,GAFqB,GAAW,CAEhB,CAAgB,EAAG,CACrC,GAAI,EACF,MAAO,CACL,GAAI,2BACJ,MAAO,cACP,SAAU,gCACV,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,sBAAsB,EACnC,GAAa,SAAU,CAAa,CACtC,EACA,YAAa,GACb,WAAY,eAAe,IAC3B,UAAW,EACb,EAGF,GAAI,GAAa,MAAQ,CAAC,EACxB,MAAO,CACL,GAAI,6BACJ,MAAO,cACP,SAAU,4BACV,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,sBAAsB,EACnC,GAAY,kEAAkE,CAChF,EACA,YAAa,GACb,WAAY,wCACZ,UAAW,IACb,EAGF,IAAM,EAAc,GAAG,GAAa,EAAS,YAAY,EAAE,OAAO,GAAa,EAAS,IAAI,EAAE,sBAoB9F,OAlBI,EAAY,EACP,CACL,GAAI,0BACJ,MAAO,GAAG,GAAa,CAAS,EAAE,QAClC,SAAU,EACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,sBAAsB,EACnC,GAAa,cAAe,GAAa,CAAS,CAAC,EACnD,GAAa,iBAAkB,CAAW,CAC5C,EACA,YAAa,GACb,WAAY,GAAG,EAAU,SAAS,IAClC,UAAW,CACb,EAGK,CACL,GAAI,wBACJ,MAAO,iBACP,SAAU,EACV,MAAO,UACP,KAAM,GACN,QAAS,GACP,GAAa,sBAAsB,EACnC,GAAY,uDAAuD,EACnE,GAAa,iBAAkB,CAAW,CAC5C,EACA,YAAa,GACb,WAAY,kBAAkB,IAC9B,UAAW,CACb,CACF,CAoCA,OAlCI,GAAU,KACL,CACL,GAAI,qBACJ,MAAO,iBACP,SAAU,oBACV,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,cAAc,EAC3B,GAAY,2DAA2D,CACzE,EACA,YAAa,GACb,WAAY,mCACZ,UAAW,IACb,EAGE,IAAW,EACN,CACL,GAAI,mBACJ,MAAO,YACP,SAAU,wBACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,cAAc,EAC3B,GAAY,iEAAiE,CAC/E,EACA,YAAa,GACb,WAAY,yBACZ,UAAW,CACb,EAGK,CACL,GAAI,oBACJ,MAAO,cACP,SAAU,mBACV,MAAO,UACP,KAAM,GACN,QAAS,GACP,GAAa,cAAc,EAC3B,GAAY,mEAAmE,EAC/E,GAAa,SAAU,GAAa,CAAM,CAAC,CAC7C,EACA,YAAa,GACb,WAAY,+BACZ,UAAW,CACb,CACF,EAEM,IAAkB,GAAkD,CACxE,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAO,IAAI,KAAK,CAAK,EAE3B,OAAO,OAAO,SAAS,EAAK,QAAQ,CAAC,EAAI,EAAO,IAClD,EAEa,IAAwB,GACnC,EAAQ,GAAe,CAAK,EAAI,IAErB,KACX,EACA,EAAY,IAAI,OACS,CACzB,GAAI,CAAC,EACH,MAAO,CACL,GAAI,iBACJ,MAAO,kBACP,SAAU,uBACV,MAAO,SACP,KAAM,GACN,QAAS,GACP,GAAa,WAAW,EACxB,GAAY,8DAA8D,CAC5E,EACA,YAAa,GACb,WAAY,uCACZ,UAAW,IACb,EAGF,IAAM,EAAO,IAAe,CAAK,EAEjC,GAAI,CAAC,EACH,MAAO,CACL,GAAI,mBACJ,MAAO,mBACP,SAAU,uBACV,MAAO,OACP,KAAM,GACN,QAAS,GAAiB,GAAa,WAAW,EAAG,GAAa,UAAW,CAAK,CAAC,EACnF,YAAa,GACb,WAAY,oBAAoB,IAChC,UAAW,IACb,EAGF,IAAM,EAAQ,EAAI,QAAQ,EAAI,EAAK,QAAQ,EACrC,EAAQ,EAAQ,MAAa,UAAY,EAAQ,OAAc,OAAS,QACxE,EAAQ,GAAe,CAAI,EAEjC,MAAO,CACL,GAAI,iBACJ,QACA,SAAU,uBACV,QACA,KAAM,GACN,QAAS,GACP,GAAa,WAAW,EACxB,GAAa,UAAW,CAAK,EAC7B,GAAa,YAAa,GAAgB,CAAI,CAAC,CACjD,EACA,YAAa,GACb,WAAY,GAAG,EAAM,wBAAwB,GAAgB,CAAI,IACjE,UAAW,EAAK,QAAQ,CAC1B,CACF,ECjaa,GAAyB,IAAI,IAAI,CAC5C,UACA,WACA,QACA,iBACA,YACF,CAAC,EAEY,IAA+B,CAC1C,CACE,GAAI,SACJ,MAAO,cACP,UAAW,GACX,QAAS,wDACT,SAAU,GACV,SAAU,OACV,aAAe,GAAS,EAA+B,UAAU,SACnE,EACA,CACE,GAAI,eACJ,MAAO,eACP,QAAS,2DACT,SAAU,GACV,SAAU,SACV,aAAe,GAAS,EAA+B,SAAS,SAClE,EACA,CACE,GAAI,aACJ,MAAO,eACP,QAAS,2DACT,SAAU,GACV,SAAU,SACV,aAAe,GAAS,EAA+B,cAAc,SACvE,EACA,CACE,GAAI,WACJ,MAAO,YACP,QAAS,mDACT,SAAU,GACV,SAAU,OACV,aAAe,GAAS,EAA+B,YAAY,SACrE,CACF,EAEa,IAAqB,CAAC,eAAgB,aAAc,UAAU,EAE9D,IAAuB,IAC1B,CAAE,QAAS,EAAU,QAAO,SAAQ,KAAM,KAAY,CAC5D,IAAM,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAE/B,EAAM,GADC,OAAO,GAAU,UAAY,EAAQ,EAAI,EAAQ,EAAO,QAGrE,MAAO,CAAE,KAAM,EAAO,MAAM,EAAO,CAAG,EAAG,MAAO,EAAO,MAAO,CAChE,EAGW,IAAyB,GAAqD,CACzF,IAAM,EAAmB,GAAsB,CAAM,EAIrD,MAFI,CAAC,GAAoB,GAAuB,IAAI,CAAgB,EAAU,KAEvE,CACT,EAEa,KAAiC,CAC5C,kBACA,kBACA,0BAKsB,CACtB,IAAM,EAA2C,CAAC,EAC5C,EAAc,GAA0B,CAC5C,IAAM,EAAS,GAAsB,EAAM,MAAM,MAAM,GAAK,UACtD,EAAU,EAAS,GACzB,EAAS,GAAU,CACjB,GAAI,GAAW,EACf,GAAG,EACH,UAAW,GAAY,GAAS,UAAW,EAAM,SAAS,EAC1D,oBAAqB,GAAY,GAAS,oBAAqB,EAAM,mBAAmB,EACxF,aAAc,GAAW,GAAS,cAAgB,KAAM,EAAM,cAAgB,IAAI,CACpF,CACF,EAUA,OARA,EAAgB,QAAQ,CAAU,EAClC,EAAgB,QAAS,GACvB,EAAW,CACT,GAAG,EACH,SAAU,IACZ,CAAC,CACH,EAEO,OAAO,OAAO,CAAQ,EAAE,OAAQ,GAAU,CAC/C,IAAM,EAAS,GAAsB,EAAM,MAAM,MAAM,EAIvD,OAFK,EAAqB,IAAI,CAAM,EAE7B,GAAuB,IAAI,CAAM,EAFM,EAGhD,CAAC,CACH,EAEM,GAAmB,GAAmB,IAAW,YAAc,IAAW,UAEnE,KACX,EACA,CACE,aACA,iBAKkC,CACpC,IAAM,GAAU,EAAI,QAAU,IAAI,YAAY,EA8B9C,OA5BK,EAQD,IAAW,iBACN,CAAE,MAAO,oBAAqB,OAAQ,EAAW,aAAc,EAGpE,IAAW,QACN,CAAE,MAAO,4BAA6B,OAAQ,EAAW,KAAM,EAGpE,GAAgB,CAAM,EACjB,CAAE,MAAO,wBAAyB,OAAQ,EAAW,QAAS,EAGnE,EAAO,WAAW,YAAY,EACzB,CAAE,MAAO,2BAA4B,OAAQ,EAAW,UAAW,EAGxE,CAAC,WAAY,UAAW,SAAS,EAAE,SAAS,CAAM,EAC7C,CAAE,MAAO,oBAAqB,OAAQ,EAAW,QAAS,EAG5D,CAAE,MAAO,gBAAiB,OAAQ,EAAW,GAAI,EA3BlD,IAAW,kBAAoB,EAC1B,CAAE,MAAO,sBAAuB,OAAQ,CAAY,EAGtD,IAwBX,EAEa,KAAgC,CAC3C,UACA,uBACA,gBACA,aACA,iBAQA,EAAQ,IAAK,GAAS,CACpB,IAAM,EAAS,GAAsB,EAAK,KAAK,MAAM,EAC/C,EAAW,GAAgB,CAAM,EAAI,EAAK,SAAW,KACrD,EAAY,GAAY,KAA4D,KAArD,KAAK,IAAI,EAAS,KAAO,EAAS,aAAc,CAAC,EAChF,EAAmB,EAAqB,IAAI,CAAM,EAClD,EAAS,EAAmB,EAAK,EAAK,WAAa,KACnD,EAAmB,EAAmB,EAAK,EAAK,qBAAuB,KACvE,EAAe,EACjB,KACA,GAAU,SACR,GAAW,EAAK,cAAgB,KAAM,EAAS,QAAQ,EACtD,EAAK,cAAgB,KACtB,EAAU,CACd,GAAI,EAAK,IACT,MAAO,IAAa,EAAK,IAAI,EAC7B,KAAM,EAAK,KAAK,cAChB,OAAQ,EAAK,KAAK,OAClB,OAAQ,IAAa,CAAE,OAAQ,EAAK,KAAK,OAAQ,GAAI,EAAK,GAAI,CAAC,EAC/D,YACA,eACA,SACA,mBACA,UAAW,IAAe,CAAI,EAC9B,SAAU,IAAc,CAAE,SAAQ,kBAAiB,CAAC,EACpD,cAAe,IAAmB,CAChC,SACA,SACA,YACA,WACA,eACF,CAAC,EACD,YAAa,IAAiB,CAAY,EAC1C,eAAgB,IAAsB,EAAK,KAAK,MAAM,CACxD,EAEA,MAAO,CACL,GAAG,EACH,WAAY,IAAgC,EAAS,CAAE,aAAY,aAAY,CAAC,CAClF,CACF,CAAC,2CC9NH,aAaC,EAAG,UAAH,CAAG,qBAIc,UAAU,UAAY,MAAS,gBACnC,UAAU,MAAQ,MAAS,gBACvB,UAAU,UAAY,MAAS,gBAEzB,UAAU,SAAW,EAAE,gBAC1B,UAAU,aAAe,EAAK,gBACzB,UAAU,YAAc,GAAqB,EAAE,EATpE,yCAEU,UAAU,gHAIV,UAAU,yHAIP,OAXjB,CAAG,UAAH,EAAG,iEAA+D,QAAM,OAAxE,CAAG,KAFI,yLCXR,aAcC,EAAG,UAAH,CAAG,qBAIc,SAAS,UAAY,MAAS,gBAClC,SAAS,MAAQ,MAAS,gBAEhB,SAAS,SAAW,EAAE,gBACzB,SAAS,aAAe,EAAK,gBACxB,SAAS,YAAc,GAAqB,EAAE,EARnE,yCAEU,SAAS,oFAGT,SAAS,yHAIN,SAEb,4BAMA,IANA,SAMA,aAlBJ,CAAG,cAYC,oEAE8D,QAAM,WAIpE,8EAEwE,QAAM,eAJ1E,GAAiB,MAAK,MAAM,MAM5B,GAAqB,MAAK,gBAAgB,QAtBlD,CAAG,KAFI,qICZR,aAcC,EAAG,UAAH,CAAG,qBAIc,cAAc,UAAY,MAAS,gBACvC,cAAc,MAAQ,MAAS,gBAErB,cAAc,SAAW,EAAE,gBAC9B,cAAc,aAAe,EAAK,gBAC7B,cAAc,YAAc,GAAqB,EAAE,EARxE,yCAEU,cAAc,oFAGd,cAAc,yHAIX,SAEb,0BAZJ,CAAG,UAYC,uEAEiE,QAAM,eAEnE,IAAqB,MAAK,SAAS,QAhB3C,CAAG,KAFI,mICZR,aAcC,EAAG,UAAH,CAAG,qBAIc,YAAY,UAAY,MAAS,gBACrC,YAAY,MAAQ,MAAS,gBAEnB,YAAY,SAAW,EAAE,gBAC5B,YAAY,aAAe,EAAK,gBAC3B,YAAY,YAAc,GAAqB,EAAE,EARtE,yCAEU,YAAY,oFAGZ,YAAY,yHAIT,SAEb,0BAZJ,CAAG,UAYC,0EAEoE,QAAM,eAEtE,IAAoB,MAAK,YAAY,QAhB7C,CAAG,KAFI,CCHR,SAAwB,IAAgB,CACtC,MACA,WAAW,GACX,SACA,YAC0B,CAC1B,IAAM,EAA4B,CAAC,EA8BnC,OA5BI,EAAI,YACN,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,EAAI,WAAW,MACtB,YAAe,CACb,EAAO,CAAG,CACZ,EACA,KAAM,GACN,QAAS,EAAI,WAAW,MACxB,OAAQ,kDAAkD,EAAI,QAChE,CAAC,EAGC,EAAI,gBACN,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,oCACP,YAAe,CACb,EAAS,CAAG,CACd,EACA,KAAM,GACN,SAAU,EACV,QAAS,oCACT,OAAQ,oDAAoD,EAAI,SAChE,KAAM,QACR,CAAC,EAGI,CACT,qWC9CA,aA4CI,EAAS,kBAAG,IAAI,EAChB,EAAgB,yBAAG,EAAK,EACxB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAM,eAAG,EAAK,EACd,EAAgB,yBAAG,EAAK,EAGpB,EAAmB,MAAY,IAAqB,EAAS,IAC7D,EAAe,MAAY,IAAqB,EAAS,IAE3D,EAAgB,EAA6B,IAAI,EACjD,EAAkB,EAAO,EAAK,EAC9B,EAAgB,EAAsB,IAAI,EAC1C,EAAoB,EACpB,EAAwB,EAAM,OAAkB,GAAG,GACnD,EAAuB,EAAM,OAAkB,GAAG,GAEhD,GAAqB,EAAkB,IAAsB,KAC3D,EAAI,IAAO,IAAG,EAAC,CAAqB,GAEtC,EAAU,EAAK,IAAI,CAAQ,EAC1B,EAAK,OAAO,CAAQ,IAEzB,EAAwB,KAC1B,EAEM,EAAiB,SAAe,KAC/B,EAAS,EAAE,CACd,GAAqB,IACrB,EAAgB,QAChB,EAAgB,QAChB,EAAkB,MAClB,EAAoB,IAAO,IAAG,UAGhC,KAEM,EAAS,EAAK,IACpB,EAAkB,MAClB,EAAgB,SAEZ,KACM,MAAO,GAAO,MAAW,GAAe,CAC9C,iBAAc,IAGV,GAAO,MADU,QAAQ,IAAI,EAAQ,IAAK,GAAW,IAAmB,EAAO,EAAE,KACjE,QAAS,GAAS,EAAK,KAAK,KAE9C,IAAc,WAIlB,EAAgB,IAAqB,EAAS,EAAM,IAAI,KAC1D,OAAS,EAAO,IACV,IAAc,WAIlB,EAAgB,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,QACrE,EAAgB,KAClB,QAAU,CACJ,IAAc,KAChB,EAAkB,GAEtB,CACF,EAEA,OAAc,KACP,EAAM,IAAK,EAAgB,EAAE,GAChC,EAAgB,QAChB,EAAgB,QAChB,EAAkB,MAClB,EAAoB,IAAO,IAAG,UAGhC,MAEA,EAAoB,IAAO,IAAG,KAEzB,EAAc,EAAE,GACnB,EAAgB,QAChB,EAAgB,QAChB,EAAkB,UAGpB,CAEK,EAAiB,CACxB,CAAC,MAEK,EAAe,QACnB,CAAmB,EAAC,IAAK,GAAS,KAC1B,EAAS,GAAmB,EAAK,GAAG,EACpC,EAAe,CAAI,WAAY,SAAS,EAAE,SAAS,EAAO,MAAM,YAE1D,EAAM,SAAU,EAAe,EAAG,CAAa,EAAG,KAChE,CAAC,GAGG,EAAwB,MAC5B,IAA6B,CAC3B,gBAAe,EAAf,CAAe,EACf,gBAAe,EAAf,CAAe,EACf,qBAAoB,EAApB,CAAoB,KAIlB,EAAS,MAAY,GAAuB,CAAG,OAAQ,SAAS,IAChE,EAAU,QACd,IAEM,IAAG,EAAE,CAAS,EACd,MAAK,KAAK,CAAS,UACnB,SAAQ,KAAK,CAAS,aACtB,WAAU,KAAK,CAAS,eACxB,cAAa,KAAK,CAAS,mBAC3B,SAAQ,KAAK,CAAS,cAExB,IAAI,EAEJ,EAAW,MAAY,GAAuB,CAAG,OAAQ,UAAU,IAEnE,EAAY,MAChB,IAA4B,CAC1B,QAAO,EAAE,CAAwB,EACjC,qBAAoB,EAApB,CAAoB,EACpB,cAAa,EAAb,CAAa,EACb,WAAU,EAAV,CAAU,EACV,YAAW,EAAX,CAAW,KAGT,EAAe,IAAO,KAAK,aAAa,OAAO,EAC/C,EAAc,uBACK,EAAgB,OAAM,EAAC,CAAY,EAAC,MAAM,MAE7D,EAAsB,MAAY,EAAM,IAAK,EAAgB,KAAI,CAAe,IAChF,EAAkB,QACtB,GACG,IAAK,GAAG,CAEL,EAAI,GACJ,EAAI,QAAU,GACd,EAAI,kBAAoB,GACxB,EAAI,WAAa,GACjB,EAAI,cAAgB,IACpB,KAAK,GAAG,GAEX,KAAK,GAAG,GAEP,GAA6B,CAAM,UAAS,QAAO,SAAQ,UAC/D,IAAmB,EAAC,CAAY,IAAI,UAAS,QAAO,SAAQ,MAAI,GAE5D,EAAoB,GACxB,EAAI,iBAAiB,CAAqB,EAAC,IAAI,EAAI,cAAc,EAAI,GAEjE,GAAc,GAAgC,CAC9C,EAAI,YAAY,QAClB,GAAY,EAAI,WAAW,OAAM,CAAI,cAAe,EAAI,EAE5D,EAEM,GAAkB,KAAU,IAAgC,KAC1D,EAAW,EAAI,eAEhB,UAEA,EAAc,EAAE,CACnB,GAAe,CAAG,MAAO,QAAS,KAAM,6BAA6B,SAGvE,CAEA,EAAkB,EAAU,EAAI,KAC5B,OACI,IAEF,SAAQ,CACN,MAAO,iBACP,YAAW,2BAA6B,EAAI,MAAK,gCACjD,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,iBACP,YACE,qFACF,YAAa,4BAGL,KACJ,EAAM,MAAS,IAAqB,KAAI,CAC5C,iBAAc,EACd,MAAO,eACP,aAEI,EAAI,IAAO,IAAG,EAAC,CAAoB,GACzC,EAAK,IAAI,CAAQ,IACjB,EAAuB,MAEnB,EAAO,gBAAkB,EAC3B,GAAe,CACb,MAAO,UACP,KAAI,GAAK,GAAa,EAAO,eAAe,iBAAiB,EAAI,MAAK,eAGxE,GAAe,CACb,MAAO,UACP,KAAI,WAAa,EAAI,MAAK,kDAGhC,EAEJ,OAAS,EAAO,CAEd,GAAe,CAAG,MAAO,QAAS,KADlB,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,CACtB,EACjD,QAAU,CACR,EAAkB,EAAU,EAAK,CACnC,CA/CA,CAgDF,MAGD,GAAG,UAAH,EAAG,EACD,uBACmB,wBACX,CAAc,qDAItB,GAAG,OACD,KADF,EACE,eAEG,SAAU,EAAK,IACb,IACI,GAAQ,KACF,EAA0E,GAE1E,EAAc,SAEpB,EAAQ,KAAI,GACP,IAAwB,CACzB,IAAK,EACL,SAAU,EAAiB,CAAW,EACtC,OAAQ,GACR,SAAW,GAAc,CAClB,GAAmB,CAAS,CACnC,KAIG,CACT,GAAG,CAAG,OACJ,UAAW,WAAY,UAAS,2BAG/B,aACA,sDAGK,mBACC,cACF,mDAEM,6BACP,CAAkB,0BACrB,CAAsB,GAErB,MAAK,QACX,IAAD,CAAC,GAGM,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACjB,EAAW,EAAG,CAAG,yBAEtB,IAAU,sBAAM,CAAW,YAE3B,IAAgB,sBAAM,CAAW,YAEjC,IAAc,sBAAM,CAAW,YAE/B,IAAY,sBAAM,CAAW,cAP3B,EAAM,EAAC,KAAO,SAAQ,KAEjB,EAAM,EAAC,KAAO,eAAc,OAE5B,EAAM,EAAC,KAAO,aAAY,OAE1B,EAAM,EAAC,KAAO,YAAU,iBAK1B,WAAS,WAAG,MAAG,MAAH,8BAClB,EAAG,EAA4B,UAAU,KAAK,WAGxC,cAAY,WAAG,MAAG,MAAH,QACtB,EAAI,UAAJ,EAAI,MAAJ,CAAI,YACD,EAAG,EAA4B,UAAU,UACxC,EAAG,EAA4B,IAAI,OAFvC,CAAI,oEA5DV,EAAG,IAPL,EAAG,MAAH,EAAG,KAFI,kFCxQR,aAQI,EAAM,eAAG,EAAK,EACd,EAAgB,yBAAG,EAAK,EACxB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,IAAI,EAChB,EAAgB,yBAAG,EAAK,oFAevB,EAAG,WAAH,UACY,EAAc,GAAI,OAAM,GAAI,EAAM,EAAG,SAAW,aAAU,IAC9D,8BACJ,EAAS,iCACT,EAAgB,+BAChB,EAAc,0BACd,EAAS,uBACT,EAAM,iCACN,EAAgB,SARpB,CAAG,MAAH,CAAG,WAHF,EAAgB,2BAFd,kMCvBR,aAoCU,EAAS,kBAAG,IAAI,EAAE,EAAgB,yBAAG,EAAK,EAE5C,EAAgB,GACpB,EAAK,SAAW,UAA+B,EAAK,cAAxB,EAAK,YAyB7B,EAAa,MAtBZ,EAAS,EAEP,EAAS,EAAC,aACd,OAAQ,GAAW,GAAmB,EAAO,WAAW,EAAE,WAAa,aAAa,EACpF,IAAK,GAAW,KACT,EAAO,GAAmB,EAAO,WAAW,EAC5C,EAAU,EAAO,SAAO,UAG5B,IAAK,EAAO,YACZ,aAAc,EAAO,kBAAoB,KACzC,OACA,UAAS,OAAS,EAAQ,iBAAoB,SAAW,EAAQ,gBAAkB,KACnF,oBAAmB,OACV,EAAQ,uBAA0B,SACrC,EAAQ,sBACR,KAEV,CAAC,EACA,MAAM,EAAG,KAAO,EAAE,WAAa,IAAM,EAAE,WAAa,EAAC,EAnB1C,EAsBiC,EAE3C,EAAuB,KACjB,QAAS,EAAU,QAAO,SAAQ,KAAM,KAAY,KACtD,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAE/B,EAAM,GADF,OAAU,GAAU,UAAY,EAAQ,EAAI,EAAQ,EAAO,eAG5D,KAAM,EAAO,MAAM,EAAO,CAAG,EAAG,MAAO,EAAO,MAAM,CAC/D,EAYI,EAA0B,EAE5B,GAAI,QACJ,MAAO,OACP,UAAW,GACX,QAAS,gDAGT,GAAI,SACJ,MAAO,SACP,QAAS,oDAGT,GAAI,mBACJ,MAAO,gBACP,QAAS,yDAGT,GAAI,eACJ,MAAO,mBACP,QAAS,yDAIP,EAAU,QACd,CAAa,EAAC,IAAK,IAAI,CACrB,GAAI,EAAK,IACT,MAAO,EAAa,EAAK,IAAI,EAC7B,OAAQ,EAAK,KAAK,OAClB,OAAQ,EAAK,WAAa,KAC1B,iBAAkB,EAAK,qBAAuB,KAC9C,aAAc,EAAK,cAAgB,SAGjC,EAAe,IAAO,KAAK,aAAa,OAAO,EAC/C,EAAc,wBACM,EAAgB,OAAM,EAAC,CAAU,EAAC,MAAM,MAE5D,EAAoB,EAAY,CAAgB,EAChD,EAAgB,QAAY,CAAa,EAAC,IAAK,GAAM,EAAE,KAAO,EAAE,EAAE,KAAK,GAAG,GAC1E,GAA2B,CAAM,UAAS,QAAO,SAAQ,UAC7D,EAAmB,EAAC,CAAU,IAAI,UAAS,QAAO,SAAQ,MAAI,GAE1D,EAAwB,GAA0B,EAAQ,GAAe,CAAK,EAAI,IAClF,EAAsB,GAC1B,GAAS,KAAO,IAAG,GAAM,GAAa,CAAK,UACvC,EAAgC,GAChC,GAAS,KAAa,OAEX,EAAQ,EAAI,IAAM,EAAQ,EAAI,IAAM,KAEhC,GAAa,KAAK,IAAI,CAAK,WAG1C,EAAqB,GAAyB,KAC5C,GAAU,EAAI,QAAU,IAAI,YAAW,SAEzC,IAAW,YACJ,MAAO,kBAAmB,MAAO,EAAI,MAAO,MAAO,QAAQ,EAGlE,IAAW,SACJ,MAAO,eAAgB,MAAO,EAAI,MAAO,MAAO,SAAS,GAG3D,MAAK,UAAY,GAAU,YAAa,MAAO,EAAI,MAAO,MAAO,OAC5E,MAGD,EAAG,UAAH,CAAG,EACC,uBACiB,wBACX,CAAc,+CAGpB,gCACQ,WACA,0CAGM,SAAU,mBAAoB,cAAc,gBAC5C,cACF,qBACM,6BACP,CAAgB,0BACnB,CAAoB,GAEf,MAAK,QACT,IAAD,CAAC,GAGI,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,2CAEU,EAAkB,EAAG,IAAjD,GAAS,6EAET,EAAoB,EAAG,EAAqB,MAAM,8CAElD,EAA8B,EAAG,EAAqB,gBAAgB,8CAEtE,EAAsB,EAAG,EAAqB,YAAY,uCAE1D,EAAG,EAAC,EAAM,EAAC,GAAE,mBATb,EAAM,EAAC,KAAO,QAAO,KAEhB,EAAM,EAAC,KAAO,SAAQ,OAEtB,EAAM,EAAC,KAAO,mBAAkB,OAEhC,EAAM,EAAC,KAAO,eAAc,yBAOhC,WAAS,WAAG,MAAG,MAAH,8BAChB,EAAG,EAAqB,KAAK,4DArC1C,CAAG,MAAH,CAAG,KAFI,kBCxJR,KAIU,EAAS,kBAAG,IAAI,EAAE,EAAgB,yBAAG,EAAK,EAGnD,IAAoB,0BAAE,EAAS,iCAAG,EAAgB,IAF3C,CC2DR,IAAM,IAAkB,GAClB,MAAM,uCAAuC,GAAe,CAAK,GAAG,EAE1E,eAAsB,IACpB,EACkC,CAClC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAAW,wCAAyC,CACnF,OAAQ,OACR,QAAS,CACP,GAAG,GAAoB,EACvB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,gBAAiB,EAAQ,gBAAkB,OAC3C,WAAY,EAAQ,WAAa,OACjC,eAAgB,EAAQ,eAAiB,OACzC,OAAQ,EAAQ,QAAU,OAC1B,QAAS,EAAQ,QAAU,GAC3B,MAAO,EAAQ,OAAS,MAC1B,CAAC,CACH,CAAC,CACH,OAAS,EAAO,CACd,MAAM,IAAe,CAAK,CAC5B,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,oCAAoC,EAGzE,GAAI,CACF,OAAQ,MAAM,EAAS,KAAK,CAC9B,OAAS,EAAO,CACd,MAAU,MAAM,qDAAqD,GAAe,CAAK,GAAG,CAC9F,CACF,wLCpGA,aAQI,EAAK,uBACL,EAAgB,yBAAG,EAAK,EAKpB,EAAe,IAAO,KAAK,aAAa,OAAO,EAE/C,EAAgB,GAA0B,EAAgB,OAAO,GAAS,CAAC,MAGlF,EAAG,eAAH,EAAG,GACK,EAAK,eAAM,MAAM,KAAN,MAAgB,MAAI,KAAb,QAAc,MAAM,KAAN,UACpC,EAAG,MACD,EAAI,EADN,CAAG,MACD,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,IAFN,CAAG,KAAH,GAAG,sBAAkC,QAAS,EAAG,eAC3B,EAAK,uBACE,EAAK,GAAK,SAAW,EAAa,EAAK,GAAI,EAAK,QAF7E,CAAG,MAFP,CAAG,YAAH,EAAG,qDAAwC,EAAgB,SAA3D,CAAG,KAFI,CCfR,IAAa,IAAwB,GAA0B,CAC7D,IAAM,GAAO,GAAS,IAAI,KAAK,EAE/B,GAAI,CAAC,EAAK,MAAO,qBAEjB,GAAI,IAAQ,6BAA8B,MAAO,yCAEjD,GAAI,EAAI,WAAW,kBAAkB,EAAG,CACtC,IAAM,EAAS,EAAI,MAAM,EAAyB,EAAE,KAAK,EAEzD,OAAO,EAAS,uBAAuB,EAAO,WAAa,oBAC7D,CAEA,GAAI,EAAI,WAAW,cAAc,EAAG,CAClC,IAAM,EAAS,EAAI,MAAM,EAAqB,EAAE,KAAK,EAMrD,MAJI,CAAC,GAAU,IAAW,UAAkB,sBAIrC,wBAFa,EAAO,OAAS,IAAM,GAAG,EAAO,MAAM,EAAG,GAAG,EAAE,KAAO,EAE9B,EAC7C,CAQA,OANI,EAAI,WAAW,mBAAmB,EAAU,6BAE5C,EAAI,WAAW,uBAAuB,EAAU,wCAEhD,IAAQ,aAAqB,kBAE1B,CACT,EAEa,IAAuB,GAA0B,CAC5D,IAAM,GAAO,GAAS,IAAI,KAAK,EAE/B,GAAI,CAAC,EAAK,MAAO,qBAEjB,IAAM,EAAoB,EAAI,MAAM,iCAAiC,EAErE,GAAI,EAAmB,CACrB,IAAM,EAAS,EAAkB,GAC3B,EAAS,EAAkB,IAAI,KAAK,EACpC,EACJ,IAAW,iBACP,eACA,IAAW,QACT,QACA,IAAW,WACT,WACA,EAMV,OAJK,EAIE,gCAAgC,EAAY,IAF/B,EAAO,OAAS,IAAM,GAAG,EAAO,MAAM,EAAG,GAAG,EAAE,KAAO,EAEN,GAJ/C,gCAAgC,EAAY,EAKlE,CAEA,OAAO,EAAI,OAAS,IAAM,GAAG,EAAI,MAAM,EAAG,GAAG,EAAE,KAAO,CACxD,EAEa,KAAkB,EAAiB,IAA8B,CAC5E,IAAM,EAAc,OAAO,SAAS,CAAO,EAAI,EAAU,EACnD,EAAgB,OAAO,SAAS,CAAS,EAAI,EAAY,EACzD,EAAO,GAAG,GAAa,CAAW,EAAE,KAAK,GAAa,CAAa,IAEzE,GAAI,GAAiB,EAAG,OAAO,EAE/B,IAAM,EAAU,KAAK,MAAO,EAAc,EAAiB,GAAG,EAI9D,OAFK,OAAO,SAAS,CAAO,EAErB,GAAG,EAAK,IAAI,EAAQ,IAFW,CAGxC,2LC3EA,SAkBgB,qBAAG,EAAE,EACJ,4BAAI,eAAgB,UAAW,aAAa,GAC3C,uBAAG,EAAK,MACtB,EAAc,uBAAG,IAAI,EACrB,EAAY,qBAAG,IAAI,EACnB,EAAqB,8BAAG,EAAK,EAC7B,EAAkB,2BAAG,mBAAmB,EAMpC,MAAuB,YAE7B,EAEM,EAAkD,CACtD,YAAa,eACb,QAAS,UACT,aAAc,eACd,OAAQ,UAGJ,EAAc,MAClB,IACI,EAAc,EAAC,SAAS,QACrB,EAAO,IAAY,GAAS,EAAQ,kBAAoB,GACzD,CAAC,EAEH,CAAC,EAED,EAAe,MACnB,IACI,EAAc,EAAC,SAAS,QAAQ,EAAO,IAAY,GAAS,EAAQ,gBAAkB,GAAI,CAAC,EAC3F,CAAC,EAwBD,EAA2B,EAE7B,GAAI,QACJ,MAAO,aACP,QACE,qJAGF,GAAI,eACJ,MAAO,eACP,QAAS,6CAET,GAAI,UAAW,MAAO,UAAW,QAAS,gDAE1C,GAAI,cACJ,MAAO,eACP,QAAS,qDAGT,GAAI,WACJ,MAAO,UACP,QAAS,4EAGT,GAAI,aACJ,MAAO,qBACP,QACE,4FAGF,GAAI,gBACJ,MAAO,oBACP,QAAS,kDAGT,GAAI,aACJ,MAAO,qBACP,QACE,wGAGF,GAAI,gBACJ,MAAO,oBACP,QAAS,oFAGT,GAAI,gBACJ,MAAO,mBACP,QAAS,8DAGT,GAAI,UACJ,MAAO,oBACP,QACE,0GAGF,GAAI,SACJ,MAAO,SACP,QAAS,4DAIP,EAAI,MACR,IACI,EAAc,EAAC,SAAS,IAAK,GAAY,KACjC,EAAY,EAAQ,kBAAoB,EACxC,EAAU,EAAQ,gBAAkB,EACpC,EAAU,EAAQ,gBAAkB,EAEpC,EAAkB,MAAM,QAAQ,EAAQ,MAAM,EAAI,EAAQ,OAAM,GAChE,EAAe,MAAM,QAAQ,EAAQ,YAAY,EAAI,EAAQ,aAAY,GACzE,EAAS,IAAO,EAAe,GAAK,CAAY,EAChD,EAAgB,EAAQ,oBAAsB,EAC9C,EAAgB,EAAQ,oBAAsB,EAC9C,EAAqB,EAAQ,QAAU,cACvC,EAAiB,EAAQ,QAAU,UACnC,EAAgB,EAAQ,QAAU,SAElC,OAAgB,IAChB,EAAU,OAAQ,KACd,EAAS,IACV,EAAgB,IAAI,GAAoB,EAAE,OAAO,OAAO,KACxD,EAAa,IAAI,GAAmB,EAAE,OAAO,OAAO,UAShD,KAPI,EAAU,MACpB,GACC,EAAM,WAAW,kBAAkB,GAAK,EAAM,WAAW,uBAAuB,GAE/E,UACA,SAEU,MAAO,EAAU,KAAK,KAAK,GAAK,QAAQ,CACzD,KAEM,EAAe,UAEjB,EAAY,GAAK,IAAY,GAE7B,KAAM,SACN,MAAK,wBAA0B,GAAa,CAAC,OAAO,GAAa,CAAS,eAI1E,EAAY,GAAK,EAAU,GAC7B,EAAM,KAAI,GAAI,GAAa,CAAO,OAAO,GAAa,CAAS,aAG7D,EAAU,GACZ,EAAM,KAAI,GAAI,GAAa,CAAO,mBAGhC,EAAgB,GAClB,EAAM,KAAI,GAAI,GAAa,CAAa,uBAGtC,EAAgB,GAClB,EAAM,KAAI,GAAI,GAAa,CAAa,sBAGtC,EAAQ,cAER,KAAM,UACN,MAAO,EAAM,0BAA4B,EAAM,KAAK,KAAK,KAAO,kBAIhE,EAAY,GAAK,EAAU,GAE3B,KAAM,UACN,MAAO,EAAM,yBAA2B,EAAM,KAAK,KAAK,KAAO,iBAI/D,EAAM,QAEN,KAAM,UACN,MAAK,GAAK,EAAc,EAAC,OAAS,aAAe,YAAW,IAAK,EAAM,KAAK,KAAK,OAKnF,KAAM,UACN,MAAO,EAAc,EAAC,OAAS,aAAe,aAElD,GAAC,SAGC,GAAE,GAAK,EAAQ,MAAK,GAAI,EAAQ,UAAS,GAAI,EAAQ,gBAAkB,GAAE,GAAI,EAAQ,WAAa,GAAE,GAAI,EAAQ,eAAiB,KACjI,aAAc,EACV,IACC,EAAQ,kBAAoB,EAAQ,gBAAkB,IAC3D,QACE,GAAsB,EACjB,EAAQ,aAAe,EAAQ,WAAa,IAC7C,IACN,YAAa,EACR,EAAQ,iBAAmB,EAAQ,eAAiB,IACrD,IACJ,MAAO,EAAQ,MACf,SAAU,IAAe,EAAS,CAAS,EAC3C,WAAY,EAAQ,eACpB,cAAe,EAAQ,cACvB,WAAY,EAAQ,gBACpB,gBACA,gBACA,SAAU,EAAQ,gBAAkB,IAAM,EAAQ,sBAAwB,GAC1E,SAEJ,CAAC,MAGD,EAAU,MACd,OACO,EAAc,EAAC,cAAa,GAAI,EAAc,EAAC,qBAAoB,KAAI,CAAI,EAAC,SAC/E,MAAM,EAEN,GAA4B,CAAM,QAAO,YAAa,KACpD,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAE/B,EAAM,GADF,OAAU,GAAU,UAAY,EAAQ,EAAI,EAAK,EAAG,CAAI,EAAC,eAG1D,KAAI,EAAE,CAAI,EAAC,MAAM,EAAO,CAAG,EAAG,MAAK,EAAE,CAAI,EAAC,OACrD,+BAIG,EAAG,UAAH,CAAG,EACC,uBACe,iCAEX,+CAGS,cAAa,IAClB,gDAEE,EAAkB,oLAEjB,EAAqB,SACxB,WACE,8DAQT,MAAO,kBACP,MAAO,GAAY,EAAC,CAAc,KAGlC,MAAO,qBACP,MAAO,GAAY,EAAC,CAAe,KAGnC,MAAO,oBACP,MAAO,GAAa,EAAc,EAAC,kBAAkB,IAGrD,MAAO,qBACP,MAAO,GAAa,EAAc,EAAC,oBAAoB,IAGvD,MAAO,oBACP,MAAO,GAAa,EAAc,EAAC,yBAA2B,CAAC,IAG/D,MAAO,mBACP,MAAO,GAAa,EAAc,EAAC,yBAA2B,CAAC,IAG/D,MAAO,oBACP,MAAO,GAAa,EAAc,EAAC,mBAAmB,KA7BvD,wBACe,iDAkCX,sDAGI,WACA,oBACU,6BAClB,CAAU,GAEO,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,mDAEjB,EAAG,EAAgB,QAAQ,6CAE5B,GAAc,EAAG,EAAgB,EAAM,EAAC,GAAE,uCAE1C,EAAa,EAAG,EAAgB,QAAW,EAAG,EAAgB,KAAK,qBAEnE,EAAI,UAAJ,EAAI,MAAJ,CAAI,WAAJ,EAAI,iBAAwB,EAAG,EAAgB,OAAO,OAAI,sBACrD,EAAG,EAAgB,OAAO,KAAK,QADpC,CAAI,8BAIH,EAAG,EAAgB,EAAM,EAAC,GAAE,mBAX7B,EAAM,EAAC,KAAO,WAAU,KAEnB,EAAM,EAAC,KAAO,cAAgB,EAAM,EAAC,KAAO,iBAAmB,EAAM,EAAC,KAAO,cAAgB,EAAM,EAAC,KAAO,iBAAmB,EAAM,EAAC,KAAO,iBAAmB,EAAM,EAAC,KAAO,UAAS,OAEtL,EAAM,EAAC,KAAO,QAAO,OAErB,EAAM,EAAC,KAAO,SAAQ,2DAhBvC,EAAc,EAAC,SAAS,OAAS,GAAC,SApD1C,CAAG,UAAH,EAAG,eAAsC,EAAc,EAAC,MAAM,OAA9D,CAAG,WADH,EAAc,iCAkFd,EAAC,UAAD,EAAC,MAAD,CAAC,YAAwB,EAAY,QAArC,CAAC,WADD,EAAY,oBAnFT,iFCpQR,aAaI,EAAgB,yBAAG,EAAK,EACxB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EAIlB,EAAe,EAAO,EAAE,EACxB,EAAgB,EAAM,IAA2B,eAAgB,UAAW,aAAa,IACzF,EAAiB,EAAO,EAAK,EAC7B,EAAiB,EAAuC,IAAI,EAC5D,EAAe,EAAsB,IAAI,EACvC,EAAqB,QACzB,CAAc,KAAI,CAAa,EAAC,SAAW,GAAC,CAAM,EAAc,IAAK,EAAS,GAG1E,EAAmB,OACvB,SACA,gBAAgB,GAChB,cAAc,MAKV,MACJ,EAAe,OAEV,EAAc,IAAK,EAAS,EAAE,GACjC,EAAe,8CAA6C,EAExD,GACF,GAAe,CAAG,MAAO,QAAS,KAAI,EAAE,CAAY,UAIxD,MAEI,CAAa,EAAC,SAAW,EAAG,GAC9B,EAAe,kDAAiD,EAE5D,GACF,GAAe,CAAG,MAAO,QAAS,KAAI,EAAE,CAAY,UAIxD,KAEI,EACE,EAAO,EAAG,CAAY,EAAC,KAAI,KAE7B,EAAS,KACL,EAAS,OAAO,SAAS,EAAS,EAAE,KAEtC,OAAO,MAAM,CAAM,GAAK,EAAS,EAAG,GACtC,EAAe,+CAA8C,QAG/D,CAEI,EAAS,IACX,EAAc,EAElB,GAEA,EAAiB,MACjB,EAAiB,SAEb,KACI,EAAwB,GAAS,EAAc,GAAI,IAAI,KAAI,EAC7D,EAA0C,KACxC,EAAc,SAAe,CACjC,EAAO,MAAS,IAAuB,CACrC,iBAAc,EACd,UAAW,EAAwB,KAAO,EAAS,EACnD,cAAe,EAAwB,KAAO,EAAa,EAC3D,SACA,MAAO,EACP,OAAM,EAAE,CAAa,GAEzB,KAEI,QACI,EAAc,WAoBf,MAlBmB,IAEpB,SAAQ,CACN,MAAO,sBACP,YAAa,iEACb,cAAe,iBACf,aAAc,aAEhB,OAAM,CACJ,MAAO,sBACP,YACE,yFACF,YAAa,wBAGjB,GAGY,WAGX,EAAO,SAEZ,EAAiB,MAEb,GAEF,GAAe,CAAG,MAAO,UAAW,KAAI,GAD3B,EAAS,UAAY,cACe,kBAErD,OAAS,EAAO,KACR,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,IACrE,EAAe,QACf,EAAiB,MAEb,GACF,GAAe,CAAG,MAAO,QAAS,KAAM,CAAO,EAEnD,QAAU,GACR,EAAiB,GACnB,CACF,EAEA,OAAc,CACP,EAAgB,KAEhB,EAAc,IAAK,EAAS,GAE5B,EAAmB,CACtB,OAAQ,GACR,cAAe,GACf,YAAa,EAAK,GAEtB,CAAC,oFAME,EAAG,MACC,MADJ,CACI,+BACF,CAAY,gCACZ,CAAa,iCACb,CAAc,iCACd,CAAc,+BACd,CAAY,wCACZ,CAAqB,WACZ,GAAU,GAClB,EAAe,QACf,EAAe,KACjB,WACW,GAAW,GACpB,EAAgB,QAChB,EAAe,KACjB,YACa,EAAmB,CAAG,OAAQ,EAAK,OAhBjD,CAAG,MAAH,CAAG,WAHF,EAAgB,2BAFd,mFCrHR,aAsBI,EAAM,eAAG,EAAK,EACd,EAAgB,yBAAG,EAAK,EACxB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAgB,yBAAG,EAAK,EAExB,EAAS,kBAAG,UAAU,EAIpB,EAAoB,EAAM,UACrB,SAAa,KAAe,SAAS,kBAAoB,SAAS,GAG3E,OAAc,KACN,MAAyB,GAC7B,EAAoB,SAAS,kBAAoB,SAAQ,CAC3D,SACA,EAAgB,EAChB,SAAS,iBAAiB,mBAAoB,CAAgB,MAEjD,SAAS,oBAAoB,mBAAoB,CAAgB,CAChF,CAAC,EAED,OAAc,KACN,EAAwB,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,MAE1D,EAAM,GAAI,EAAS,IAAK,WAAS,GAAK,CAAiB,IAAK,EAAqB,OAEjF,GAA4B,EAAqB,CAAI,MAAO,EAAI,OAC/D,EAAa,OAAO,gBAAkB,CACrC,GAA4B,EAAqB,CAAI,MAAO,EAAI,EACvE,EAAG,gBAEU,OAAO,cAAc,CAAU,CAC9C,CAAC,MAGF,EAAG,UAAH,CAAG,QAEK,oCACF,EAAgB,+BAChB,EAAc,aACJ,mBACI,wDAIZ,IAAU,0BAAE,EAAS,iCAAG,EAAgB,YAExC,8BACF,EAAS,iCACT,EAAgB,+BAChB,EAAc,aACJ,yBACV,EAAM,iCACN,EAAgB,wDAjBd,EAAS,IAAK,UAAS,KAQlB,EAAS,IAAK,UAAS,mBATpC,CAAG,MAAH,CAAG,KAFI,CCvFR,SAAwB,IAAgB,CACtC,MACA,YAAY,GACZ,SACA,WACA,aACA,YAQmB,CACnB,IAAM,EAA4B,CAAC,EAqDnC,OAnDI,GACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,iBACP,YAAe,CACb,IAAS,CAAG,CACd,EACA,KAAM,GACN,QAAS,iBACT,OAAQ,yCAAyC,EAAI,IACvD,CAAC,EAGC,GACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,wBACP,YAAe,CACb,IAAW,CAAG,CAChB,EACA,KAAM,GACN,QAAS,wBACT,OAAQ,2CAA2C,EAAI,IACzD,CAAC,EAGC,IACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,yDACP,YAAe,CACb,IAAa,CAAG,CAClB,EACA,KAAM,GACN,QAAS,yDACT,OAAQ,6CAA6C,EAAI,IAC3D,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,kBACP,YAAe,CACb,IAAW,CAAG,CAChB,EACA,KAAM,GACN,QAAS,kBACT,OAAQ,2CAA2C,EAAI,KACvD,KAAM,QACR,CAAC,GAGI,CACT,iBCzEA,aAOW,EAAS,cAAG,EAAE,qBAUT,UAAY,MAAS,gBAEzB,MAAQ,MAAS,gBACP,SAAW,EAAE,gBAChB,aAAe,EAAK,gBACf,kBAAoB,EAAE,gCAEf,EAAS,IAAG,KAAI,GAV9C,yCAEY,4DAEA,iJAKG,iCAXR,qGCZR,oCAcK,QAUI,KAVJ,CAUoB,0BAAU,gBAV9B,iCAGe,MAAM,IAHrB,yDAQmD,IAAE,cARrD,EAIS,GAAU,CAClB,EAAM,gBAAe,mBAEvB,CAAC,MAPA,UAaA,GAAgB,0BAAU,yDAhBvB,+BCXR,aAiBQ,EAAS,qBAAoD,KAAO,EAAE,yBAIzE,IAAiB,kEAEjB,GAAgB,0BAAU,mBAE1B,GAAgB,0BAAU,uBAE1B,GAAgB,0BAAU,4BAE1B,GAAgB,0BAAU,0CAE1B,CAAS,6BAXF,KAAO,UAAS,cAEX,KAAO,QAAO,gBAEd,KAAO,YAAW,gBAElB,KAAO,iBAAgB,gBAEvB,KAAO,QAAO,2BAVvB,CCQR,IAAM,GAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,GAAkB,GAA6C,CACnE,IAAM,EAAU,OAAO,GAAS,CAAC,EAIjC,MAFI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,EAE/C,KAAK,MAAM,CAAO,CAC3B,EAEa,GAAoB,GAAkC,CACjE,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAI7B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,eAAe,CAC/B,EAEM,IAAsB,GAAkC,CAC5D,GAAI,CAAC,EAAO,MAAO,WAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAI7B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,oBAEpC,WAAW,EAAO,mBAAmB,OAAO,GACrD,EAEM,GAAc,GAClB,OAAO,GAAS,EAAE,EACf,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEtB,IAAa,EAAe,IAAkC,CAClE,IAAM,EAAa,OAAO,GAAS,EAAE,EAAE,KAAK,EAE5C,OAAO,EAAa,GAAa,EAAO,GAAW,CAAU,CAAC,EAAI,IACpE,EAEM,GAAY,GAAkC,CAClD,IAAM,EAAa,OAAO,GAAS,EAAE,EAAE,KAAK,EAE5C,OAAO,EAAa,GAAY,GAAW,CAAU,CAAC,EAAI,IAC5D,EAEM,GAAa,GAAyD,CAC1E,IAAM,GAAc,GAAU,CAAC,GAAG,IAAK,GAAU,EAAM,KAAK,CAAC,EAAE,OAAO,OAAO,EAI7E,OAFK,EAAW,OAET,EAAW,KAAK,IAAI,EAFI,GAGjC,EAEa,GAAoB,GAC3B,IAAU,cAAsB,UAEhC,IAAU,UAAkB,QAEzB,eAGH,IAAuB,GACvB,EAAO,QAAU,cACZ,EAAO,eAAiB,WAAW,EAAO,iBAAmB,oBAElE,EAAO,QAAU,UAAkB,YAEhC,eAGI,IAAuB,GAA2C,CAC7E,IAAM,EAAQ,GAAiB,EAAO,KAAK,EACrC,EAAW,IAAoB,CAAM,EACrC,EAAU,GACd,GAAa,kBAAkB,EAC/B,GAAU,QAAS,CAAK,EACxB,GAAU,UAAW,CAAQ,EAC7B,GAAU,eAAgB,EAAO,iBAAmB,EAAO,SAAS,EACpE,GAAU,UAAW,EAAO,UAAU,EACtC,GAAU,eAAgB,EAAO,cAAc,CACjD,EA8BA,OA5BI,EAAO,QAAU,cACZ,CACL,QACA,WACA,MAAO,OACP,KAAM,GACN,UACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,eACb,EAGE,EAAO,QAAU,UACZ,CACL,QACA,WACA,MAAO,OACP,KAAM,GACN,UACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,WACb,EAGK,CACL,QACA,WACA,MAAO,SACP,KAAM,GACN,UACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,gBACb,CACF,EAEM,IAAoB,GACpB,GAAY,KAAsC,SAElD,GAAW,EAAU,UAErB,EAAU,OAAW,EAChB,QAAQ,GAAgB,OAAO,KAAK,MAAM,EAAU,KAAM,CAAC,EAAE,OAElE,EAAU,MAAU,EACf,QAAQ,GAAgB,OAAO,KAAK,MAAM,EAAU,IAAK,CAAC,EAAE,UAE9D,QAAQ,GAAgB,OAAO,CAAO,EAAE,WAGpC,IAA2B,GAA2C,CACjF,IAAM,EAAU,EAAO,uBACjB,EAAQ,IAAiB,CAAO,EAChC,EAAgB,GAAiB,EAAO,kBAAkB,EAC1D,EAAgB,GAAiB,EAAO,iBAAiB,EACzD,EAAW,GAAY,MAAiC,GAAW,EACnE,EAAY,GAAY,KAE9B,MAAO,CACL,QACA,SAAU,IAAmB,EAAO,kBAAkB,EACtD,MAAO,EAAY,QAAU,EAAW,SAAW,OACnD,KAAM,GACN,QAAS,GACP,GAAa,WAAW,EACxB,GAAU,YAAa,CAAK,EAC5B,GAAU,mBAAoB,CAAa,EAC3C,GAAU,oBAAqB,CAAa,EAC5C,EACI,GACE,kFACF,EACA,IACN,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,EAAc,GAAG,IACzC,UAAW,EAAO,oBAAsB,EAAO,mBAAqB,EACtE,CACF,EAEa,IAAgC,GAA2C,CACtF,IAAM,GAAmB,EAAO,mBAAqB,IAAI,KAAK,EACxD,EAAY,EAAO,oBAAoB,QAAU,EACjD,EAAY,EAAO,sBAAsB,QAAU,EACnD,EACJ,IAAoB,EAAY,EAAI,SAAW,EAAY,EAAI,SAAW,YACtE,EAAW,CACf,EAAY,GAAG,GAAgB,OAAO,CAAS,EAAE,QAAQ,IAAc,EAAI,GAAK,MAAQ,KACxF,EAAY,GAAG,GAAgB,OAAO,CAAS,EAAE,QAAQ,IAAc,EAAI,GAAK,MAAQ,IAC1F,EAAE,OAAO,OAAO,EACV,EAAW,EAAS,OAAS,EAAS,KAAK,KAAK,EAAI,eAE1D,MAAO,CACL,QACA,WACA,MAAO,EAAkB,OAAS,EAAY,EAAI,SAAW,EAAY,EAAI,OAAS,QACtF,KAAM,GACN,QAAS,GACP,GAAa,gBAAgB,EAC7B,GAAU,qBAAsB,GAAmB,GAAG,EACtD,GAAU,kBAAmB,GAAU,EAAO,kBAAkB,CAAC,EACjE,GAAU,SAAU,EAAY,GAAgB,OAAO,CAAS,EAAI,GAAG,CACzE,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,EAAS,GAAG,GAAU,EAAO,kBAAkB,IACvE,UAAW,GAAG,EAAM,GAAG,GACzB,CACF,EAEa,IAAuB,GAA2C,CAC7E,IAAM,EAAQ,GAAe,EAAO,SAAS,EACvC,EAAU,GAAe,EAAO,iBAAiB,EAEvD,GAAI,GAAS,EACX,MAAO,CACL,MAAO,SACP,SAAU,kBACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,OAAO,EACpB,GACE,qFACF,CACF,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,yBACZ,UAAW,CACb,EAGF,IAAM,EAAa,GAA0B,EAAS,CAAK,EACrD,EAAO,KAAK,IAAI,EAAG,EAAQ,CAAO,EAExC,MAAO,CACL,MAAO,GAAG,GAAgB,OAAO,CAAO,EAAE,GAAG,GAAgB,OAAO,CAAK,EAAE,OAC3E,SAAU,EAAO,EAAI,GAAG,GAAgB,OAAO,CAAI,EAAE,QAAU,cAC/D,MACE,EAAa,GAAK,MAAQ,EAAa,GAAK,SAAW,EAAa,GAAK,QAAU,UACrF,KAAM,GACN,QAAS,GACP,GAAa,iBAAiB,EAC9B,GAAS,GAAqB,EAAS,EAAO,CAAE,SAAU,MAAO,OAAQ,MAAO,CAAC,CAAC,CACpF,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAQ,GAAG,EAAM,QAAQ,EAAW,UACnD,UAAW,CACb,CACF,EAEa,IAAyB,GAA2C,CAC/E,IAAM,EAAQ,GAAe,EAAO,SAAS,EACvC,GAAmB,EAAO,mBAAqB,IAAI,KAAK,EACxD,EAAW,EACb,GAAG,GAAkB,CAAK,EAAE,UAAU,IACtC,GAAG,GAAkB,CAAK,EAAE,OAEhC,MAAO,CACL,MAAO,EAAO,OACd,WACA,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,GAAW,EAAO,QAAU,SAAS,CAAC,EACnD,GAAU,SAAU,EAAO,MAAM,EACjC,GAAU,UAAW,GAAiB,EAAO,KAAK,CAAC,EACnD,GAAU,OAAQ,GAAkB,CAAK,CAAC,EAC1C,GAAU,iBAAkB,GAAG,GAAkB,EAAO,iBAAiB,EAAE,MAAM,EACjF,GAAU,qBAAsB,GAAmB,GAAG,EACtD,GAAU,kBAAmB,GAAU,EAAO,kBAAkB,CAAC,EACjE,GACE,SACA,EAAO,sBAAsB,OACzB,GAAgB,OAAO,EAAO,qBAAqB,MAAM,EACzD,GACN,EACA,GAAU,WAAY,GAAiB,EAAO,UAAU,CAAC,EACzD,GAAU,WAAY,GAAiB,EAAO,UAAU,CAAC,CAC3D,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAO,OAAO,GAAG,EAAS,GAAG,GAAU,EAAO,kBAAkB,IAC/E,UAAW,EAAO,MACpB,CACF,EAEa,IAAmB,IAA0B,CACxD,WAAY,IAAsB,CAAM,EACxC,SAAU,IAAoB,CAAM,EACpC,aAAc,IAAwB,CAAM,EAC5C,kBAAmB,IAA6B,CAAM,EACtD,SAAU,IAAoB,CAAM,CACtC,GCpTa,IAAwB,CAAC,QAAS,iBAAkB,YAAa,OAAO,EAExE,GAAkC,CAC7C,CACE,GAAI,UACJ,MAAO,UACP,UAAW,GACX,QAAS,8DACT,SAAU,GACV,QAAS,SACT,SAAU,OACV,aAAe,GAAS,EAAkB,WAAW,SACvD,EACA,CACE,GAAI,QACJ,MAAO,UACP,QAAS,kDACT,SAAU,GACV,QAAS,QACT,SAAU,OACV,aAAe,GAAS,EAAkB,SAAS,SACrD,EACA,CACE,GAAI,YACJ,MAAO,YACP,QAAS,kDACT,SAAU,GACV,QAAS,qBACT,SAAU,OACV,eAAgB,OAChB,aAAe,GAAS,EAAkB,aAAa,SACzD,EACA,CACE,GAAI,iBACJ,MAAO,iBACP,QAAS,4DACT,aAAe,GAAS,EAAkB,kBAAkB,SAC9D,EACA,CACE,GAAI,QACJ,MAAO,QACP,QAAS,gDACT,aAAe,GAAS,EAAkB,SAAS,SACrD,CACF,EAEa,IAAkB,GAAoC,CACjE,IAAM,EAAW,OAAO,EAAO,WAAa,CAAC,EACvC,EAAkB,OAAO,EAAO,mBAAqB,CAAC,EACtD,EAAO,IAAgB,CAAM,EAEnC,MAAO,CACL,GAAI,EAAO,GACX,OAAQ,EAAO,OACf,QAAS,EAAK,WAAW,WACzB,MAAO,EAAK,SAAS,WACrB,UAAW,EAAK,aAAa,WAC7B,eAAgB,EAAK,kBAAkB,WACvC,MAAO,EAAK,SAAS,WACrB,WAAY,GAAiB,EAAO,KAAK,EACzC,WACA,kBACA,qBAAsB,EAAO,uBAC7B,cAAe,EAAO,mBACtB,GAAG,EACH,OAAQ,CACV,CACF,kQCrEA,aAkBI,EAAc,uBAAG,IAAI,EACrB,EAAa,sBAAG,IAAI,EACpB,EAAS,kBAAG,EAAI,EAqBZ,EAAe,IAAO,KAAK,aAAa,OAAO,EACjD,EAAa,EAAsB,IAAI,EACrC,EAAY,6BACO,EAAc,gBAAiB,SAAQ,GAAI,EAAa,GAAI,OAAK,EAGpF,EAA2B,OAAY,QAAO,SAAQ,UAAW,mBAClD,EAAc,SAAW,KAAI,GAAM,MAAO,CAAC,MAExD,EAAM,MAAS,GAAY,CAC/B,iBAAc,EACd,MAAK,OAAS,GAAU,SAAW,EAAQ,GAC3C,OAAM,OAAS,GAAW,SAAW,EAAS,EAC9C,gBAAa,EACb,OAAQ,GAAM,KAAO,OACrB,QAAS,GAAM,KAAO,gBAItB,KAAM,EAAO,MAAM,IAAI,GAAc,EACrC,MAAO,EAAO,KAAK,CAEvB,MAGD,EAAG,UAAH,CAAG,OAMU,EAAa,2BAElB,wIAMW,YAAW,IAClB,GAAI,qBAAO,qDARb,EAAS,uCAJI,EAAgB,OAAM,EAAC,CAAU,GAAI,CAAC,MAF3D,uBACmB,mEAIR,6CAeX,uBAEG,SAAU,EAAK,IACb,KAGM,GAAI,cACJ,MAAO,gBACP,KAAM,GACN,QAAS,EAAO,SAChB,aACI,GAAQ,YACC,CAAG,CACd,GAAG,CAAG,OAEJ,GAAQ,KACN,EAA0E,UAEhF,EAAQ,KAAI,GACP,IAAgB,CACZ,MACL,UAAW,EAAS,EACpB,OAAM,SACN,SAAQ,WACR,WAAU,aACV,SAAQ,cAIL,CACT,GAAG,CAAG,QAEN,UAAW,cAAe,UAAS,CAAG,UAAU,0BAG/C,YACA,sDAGK,mBACC,cACF,0CAEH,6BACE,CAAY,sEAET,GAAW,GACxB,EAAU,OAAU,GAAQ,OAAU,SAAW,EAAO,MAAS,GAAQ,MAAM,QAAU,EAAC,GAC5F,EAEU,MAAK,QACT,IAAH,CAAG,GAGI,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAe,oBAAM,EAAG,uBAAgB,EAAM,oCAGvC,WAAS,WAAG,MAAG,MAAH,IACnB,GAAe,oBAAM,EAAG,uBAAuB,GAAmB,qCAG3D,cAAY,WAAG,MAAG,MAAH,QACtB,EAAI,UAAJ,CAAI,IAAJ,CAAI,eACD,EAAG,EAAe,SAAS,OAAK;YAC9B,EAAG,EAAe,SAAS,OAAK;YAChC,EAAG,EAAe,aAAa,OAAK,WAHzC,CAAI,GAOG,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAe,oBAAM,EAAG,uBAAgB,EAAM,kHA5FpD,CAAG,MAAH,CAAG,KAFI,0oCCpER,aAuBI,EAAS,kBAAG,EAAK,EACjB,EAAG,YAAG,EAAK,EACX,EAAK,cAAG,EAAK,EACb,EAAK,cAAG,EAAE,EACV,EAAS,kBAAG,EAAE,EACd,EAAU,mBAAG,EAAE,EAUb,EAAsB,EAAO,CAAC,EAE5B,EAAoB,GAAyB,KAC3C,MAAqB,GACzB,EAAsB,EAAK,sBAAqB,EAAG,UACrD,KAEA,EAAY,SAED,gBAAmB,sBAIxB,EAAQ,IAAO,eAAe,CAAY,SAChD,EAAS,QAAQ,CAAI,GAGnB,YAAe,EAAS,WAAU,EAEtC,EAEM,EAAe,GAAsB,CACzC,EAAM,eAAc,EACpB,EAAM,gBAAe,cACX,CAAK,CACjB,EAEM,EAAiB,GAAyB,CAC1C,EAAM,MAAQ,SAAW,EAAM,MAAQ,MAI3C,EAAM,eAAc,EACpB,EAAM,gBAAe,cACX,CAAK,EACjB,MAGD,qCAQI,QAME,KANF,CAMM,qBAAO,sBANb,+BAIgB,QAAS,SAAS,cAJlC,uGAWA,EAAG,MACD,EAAG,EADL,CAAG,EAGC,EAAI,IAFN,CAAG,KAGC,EAAG,EADL,CAAI,EAEA,IADF,CAAG,IAAH,CAAG,IADL,CAAI,IAFN,CAAG,MAWH,EAAG,EAXH,EAAG,QAWH,yBAAG,IAZL,CAAG,UAKK,WAES,EAAG,EAAG,UAAY,EAAK,EAAG,UAAY,SAAS,aAPhE,EAAwC,CAAW,cAAnD,EAAgE,CAAa,MAA7E,CAAG,qBAiBH,EAAG,KACD,EAAI,EADN,CAAG,MACD,CAAI,YAEA,EAAI,UAAJ,EAAI,MAAJ,CAAI,YACF,EAAU,QADZ,CAAI,WADF,EAAU,YADhB,CAAI,MAOJ,EAAI,EAPJ,EAAI,OAOJ,CAAI,YAEA,kBAWA,EAAG,MACD,EAAI,EADN,CAAG,IAAH,CAAG,UACD,EAAI,SAAqC,EAAK,EAAG,UAAY,SAAS,OADxE,CAAG,WAZD,EAAG,mBADT,CAAI,MAkBJ,EAAG,EAlBH,EAAI,QAkBJ,4BAAG,IA1BL,CAAG,MA8BH,EAAG,EA9BH,EAAG,QA8BH,uBAAG,KAAH,EAAG,eAGH,EAAG,EAHH,EAAG,OAGH,CAAG,iDAGC,EAAM,MACJ,EAAI,EADN,CAAM,MACJ,EAAI,MAAJ,CAAI,MAA+C,EAAI,EAAvD,CAAI,EACD,KADgD,CAC5C,qBAAO,sBADqC,CAAI,IADzD,CAAM,YACE,EAAS,EAAG,EAAS,EAAG,YAAY,aAD5C,EAAM,6CAAN,CAAM,aAMN,EAAG,WAAH,uBAAG,MAAH,CAAG,8CATP,CAAG,kBAnDD,EAAS,mBAlBf,oEAKE,EAAK,iCADyB,CAAmB,OAAM,CAAmB,MAAO,aAJnF,MAFO,8WC1ER,KAMa,EAAW,gBAAG,EAAK,EAC5B,EAAM,eAAG,MAAS,EAClB,EAAK,cAAG,IAAI,EACZ,EAAM,eAAG,EAAE,EACX,EAAQ,iBAAG,IAAI,EACf,EAAa,sBAAG,IAAI,EACpB,EAAQ,iBAAG,EAAK,EAChB,EAAQ,qBAAS,IAAI,EAGjB,EAAS,MAAY,EAAM,GAAI,EAAW,GAC1C,EAAkB,MAClB,EAAQ,IAAK,MAAQ,EAAQ,IAAK,QAElC,OAAO,MAAM,EAAQ,GAAU,KAE5B,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAM,EAAQ,IACrD,EACK,EAAY,QAAY,CAAS,EAAG,UAAY,EAAK,EAAG,QAAU,OAAO,MAGhF,mCAQI,EAAG,UAAH,CAAG,EACD,GAAM,oFAGJ,EAAI,UAAJ,CAAI,IAAJ,CAAI,iBAAE,CAAkB,gBAAxB,CAAI,aAEJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAE,EAAa,QAAnB,CAAI,aAHF,CAAkB,IAAK,KAElB,EAAa,UAFS,SAHjC,CAAG,MAAH,CAAG,aAUH,EAAG,MACD,EAAC,EADH,CAAG,MACD,EAAC,MAAD,CAAC,IADH,CAAG,YACE,EAAK,QADV,CAAG,aAIH,EAAG,WAAH,GACU,CAAQ,IADlB,CAAG,WAAH,EAA2B,EAAM,QAAjC,CAAG,aAfD,CAAS,OAUJ,EAAK,qBAjBhB,iFAGmB,EAAQ,MAH3B,iBAIa,CAAY,KAJzB,eAKa,EAAQ,EAAG,OAAS,OAAO,QALxC,EAFO,gMCzBR,aAoCI,EAAK,cAAG,OAAO,EACf,EAAI,aAAG,QAAQ,EAIf,EAAY,qBAAG,MAAS,EACxB,EAAQ,iBAAG,MAAS,EACpB,EAAQ,0BAAe,CAAC,CAAC,EACzB,EAAO,yBAAe,CAAC,CAAC,EACxB,EAAW,oBAAG,MAAS,EACvB,EAAU,oBAAa,EAAK,EAC5B,EAAW,oBAAG,MAAS,EACvB,EAAU,mBAAG,cAAc,EAC3B,EAAS,kBAAG,EAAI,EAChB,EAAS,mBAAG,CAAI,EAChB,EAAU,mBAAG,EAAK,EAClB,EAAmB,4BAAG,MAAS,EAC/B,EAAkB,2BAAG,MAAS,EAC9B,EAAiB,0BAAG,MAAS,EAI3B,EAAkB,EAAM,GADJ,iBACuB,GAC3C,EAAsC,EAAO,IAAI,EACjD,EAAU,EAAO,EAAK,EACtB,EAAiB,EAAO,CAAC,EACzB,EAAkD,KAEhD,EAAO,SAAe,KACpB,EAAK,IAAK,GACV,EAAa,EAAI,IAAK,QAAM,OAAW,EAAQ,GAAK,aAC1D,EAAU,SACN,KACI,EAAO,EAAU,MAAS,EAAQ,sBAEpC,IAAK,EAAK,CAAc,KAC1B,EAAa,KAEjB,OAAS,EAAK,CACZ,QAAQ,MAAM,2BAA4B,CAAG,CAC/C,QAAU,CACJ,IAAK,EAAK,CAAc,KAC1B,EAAU,GAEd,CACF,EAEM,EAAa,SAAe,KAC3B,EAAY,QAAS,OAEpB,EAAS,EAAY,GAAG,KAAI,EAAE,CAAU,EAAE,KAAI,EAAE,CAAW,WAE1D,aAAkB,QAAO,MAAS,EAAS,CACpD,EAEM,EAAY,KAAU,IAAkB,CAC5C,MAAO,eAAc,EAEjB,IAAU,KAAI,CAAO,KAEzB,GAAe,EAAC,CAAW,GAAI,MAAS,EAGnC,MAFe,EAAa,GAIjC,GAAa,OACT,OACI,EAAQ,IAAC,CAAU,EAC3B,OAAS,EAAK,CACZ,QAAQ,MAAM,6BAA8B,CAAG,CACjD,QAAU,CACR,EAAa,GACf,CAPa,CAQf,EAEM,EAAW,SAAe,CAC1B,EAAU,IAEd,GAAe,EAAC,CAAW,GAAI,MAAS,QAClC,EAAO,QACP,EAAO,IAAC,CAAU,GAC1B,EAEM,EAAO,QACX,KAAI,EAAE,CAAU,EAChB,QAAU,GAAI,EAAM,EAAa,EAAI,IACrC,WAAa,GAAI,EAAM,EAAU,MAAQ,CAAU,KAAK,CAAI,MAC5D,aAAU,EACV,QAAO,EAAP,CAAO,EACP,OAAI,EACJ,OAAQ,EACR,MAAO,KAGH,EAAoB,MAAY,EAAW,IAAK,EAAI,IAAK,OAAS,YAAc,UAAS,EAE/F,OAAc,IACR,IAAkB,KAAM,CAC1B,EAAgB,UAGlB,CAEI,EAAS,IAAK,IAChB,EAAgB,IAChB,EAAO,EAEX,CAAC,EAED,OAAc,CACZ,EAAW,QAAS,EAAY,GAChC,EAAO,EACP,EAAgB,GAClB,CAAC,EAGF,IAAc,0BAAE,CAAO,wBACrB,4CAOsB,CAAO,0BAEzB,EAAO,UAAP,CAAO,YAEH,EAAG,WAAH,mCAC8B,CAAO,KADrC,CAAG,MAAH,CAAG,6CAIL,EAAG,qBAAH,CAAG,qBAMY,EAAU,KAAI,CAAO,GAJhC,kDAEU,EAAU,qBACb,wCAEG,0BACG,EAAiB,eAP5B,EAAS,kCAkBA,EAAW,6CAER,CAAmB,kBADzB,EAAmB,0BALhB,EAAU,KAAI,CAAO,GAHhC,kDAEU,CAAoB,uCAEpB,0BACG,EAAkB,GAEpB,mDARR,EAAU,YAXjB,CAAG,IANL,CAAO,YAML,EAAG,oEANL,CAAO,mCADkB,EAAS,IAAK,EAAU,aARrD,aAEY,EAAW,SAAX,CAAW,WAFvB,YACgB,EAAK,kCADrB,EAGY,GAAM,CACf,EAAE,eAAc,CAClB,CAAC,MALF,8BAHK,CClJR,IAAa,GAAuB,CAClC,CAAE,KAAM,iBAAkB,MAAO,GAA4B,EAC7D,CAAE,KAAM,2BAA4B,MAAO,GAJH,KAAU,GAAK,IAIoB,EAC3E,CAAE,KAAM,uBAAwB,MAAO,GAND,KAAU,GAAK,IAMgB,CACvE,EAEa,IAAsB,GAAsD,CACvF,IAAM,EAAS,OAAO,GAAU,SAAW,EAAQ,OAAO,SAAS,GAAG,GAAS,KAAM,EAAE,EAIvF,MAFI,CAAC,OAAO,SAAS,CAAM,GAAK,EAAS,EAAG,EAErC,CACT,EAEa,IAAoB,GAC3B,GAAY,KAAsC,IAElD,KAA0C,MAE1C,WAA+C,gBAE/C,WAA6C,YAE7C,EAAU,OAAW,EAAU,GAAG,KAAK,MAAM,EAAU,KAAM,EAAE,OAE/D,EAAU,MAAU,EAAU,GAAG,KAAK,MAAM,EAAU,IAAK,EAAE,UAE1D,GAAG,EAAQ,WAGP,KACX,EACA,EAAU,KAEN,CAAC,GAED,EAAQ,KAAM,GAAW,EAAO,QAAU,CAAK,EAAU,EAEtD,CAAC,GAAG,EAAS,CAAE,KAAM,sBAAsB,EAAM,YAAa,OAAM,CAAC,ECxCjE,SAAoC,CAC/C,UAAW,WACX,WAAY,GACZ,UAAW,GACX,SAAU,EACZ,GAEM,IAAe,GAA0B,EAAM,QAAQ,uBAAwB,MAAM,EAErF,IAAwB,GAC5B,EAAM,QAAQ,2BAA4B,IAAI,EAE1C,IAAkB,GAA2B,CACjD,IAAM,EAAkB,EAAM,QAAQ,QAAS,EAAE,EAEjD,MAAO,oBAAoB,KAAK,CAAe,CACjD,EAEa,IACX,GACgD,CAChD,IAAM,GAAO,GAAW,IAAI,KAAK,EAEjC,GAAI,CAAC,EACH,MAAO,CAAE,UAAW,WAAY,WAAY,EAAG,EAGjD,IAAM,EAAiB,EAAI,WAAW,GAAG,EACnC,EAAe,EAAI,SAAS,GAAG,EACjC,EAAO,EAMX,GAJI,IAAgB,EAAO,EAAK,MAAM,CAAC,GAEnC,IAAc,EAAO,EAAK,MAAM,EAAG,EAAE,GAErC,CAAC,IAAe,CAAI,EAAG,CACzB,IAAM,EAAU,IAAqB,CAAI,EAQzC,OANI,GAAkB,EAAqB,CAAE,UAAW,QAAS,WAAY,CAAQ,EAEjF,EAAuB,CAAE,UAAW,aAAc,WAAY,CAAQ,EAEtE,EAAqB,CAAE,UAAW,WAAY,WAAY,CAAQ,EAE/D,CAAE,UAAW,WAAY,WAAY,CAAQ,CACtD,CAEA,MAAO,CAAE,UAAW,QAAS,WAAY,CAAI,CAC/C,EAEa,IAAwB,GAA4B,CAC/D,IAAM,EAAQ,EAAK,WAAW,KAAK,EAEnC,GAAI,CAAC,EAAO,MAAO,GAEnB,GAAI,EAAK,YAAc,QAAS,OAAO,EAEvC,IAAM,EAAU,IAAY,CAAK,EAQjC,OANI,EAAK,YAAc,aAAqB,IAAI,IAE5C,EAAK,YAAc,WAAmB,GAAG,EAAQ,GAEjD,EAAK,YAAc,QAAgB,IAAI,EAAQ,GAE5C,CACT,EAEa,IAA2B,GAClC,IAAS,aAAqB,eAE9B,IAAS,WAAmB,iBAE5B,IAAS,QAAgB,mBAEzB,IAAS,QAAgB,uBAEtB,cAGI,IAAkB,GAAyB,CACtD,IAAM,EAAU,EAAmD,OAQnE,OANI,OAAO,GAAW,SAAiB,EAEnC,GAAU,OAAO,GAAW,UAAY,OAAO,EAAO,OAAU,SAAiB,EAAO,MAE7E,EAAM,QAEN,OAAS,EAC1B,EAEM,IAAmB,2BACnB,IAAc,6BAEd,IAAiB,GAChB,IAAY,KAAK,CAAQ,EAEvB,EAAS,MAAM,GAAG,EAAE,MAAO,GAAS,CACzC,IAAM,EAAQ,OAAO,SAAS,EAAM,EAAE,EAEtC,OAAO,OAAO,UAAU,CAAK,GAAK,GAAS,GAAK,GAAS,GAC3D,CAAC,EANuC,GASpC,IAAe,GAA8B,CACjD,IAAM,EAAa,EAAS,QAAQ,OAAQ,EAAE,EAAE,QAAQ,OAAQ,EAAE,EAAE,YAAY,EAEhF,OAAO,IAAc,CAAU,GAAK,EAAW,SAAS,GAAG,CAC7D,EAEM,IAAmB,GAA8B,CACrD,IAAM,EAAa,EAAS,YAAY,EAExC,OAAO,IAAe,aAAe,EAAW,SAAS,YAAY,CACvE,EAEa,GAAmB,GAAiC,CAC/D,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAY,IAAiB,KAAK,CAAO,EAAI,EAAU,WAAW,IACxE,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAS,EAMhC,GAJI,CAAC,EAAO,UAER,EAAO,WAAa,SAAW,EAAO,WAAa,UAEnD,EAAO,UAAY,EAAO,SAAU,OAAO,KAE/C,IAAM,EAAW,EAAO,SAAS,YAAY,EAAE,QAAQ,OAAQ,EAAE,EAIjE,GAFI,CAAC,GAED,IAAgB,CAAQ,GAAK,IAAY,CAAQ,EAAG,OAAO,KAE/D,IAAM,EAAO,EAAO,KAAK,KAAK,EAQ9B,OANK,EAGF,EAAO,WAAa,SAAW,IAAS,MACxC,EAAO,WAAa,UAAY,IAAS,MAErB,EAAW,GAAG,EAAS,GAAG,IAN/B,CAOpB,MAAQ,CACN,OAAO,IACT,CACF,EAEa,GACX,GACkB,CAClB,IAAM,EAAW,OAAO,GAAU,SAAW,EAAQ,GAAG,GAAS,KAIjE,OAFK,EAAS,KAAK,EAEZ,GAAgB,CAAQ,EAC3B,KACA,mGAJyB,+BAK/B;mUCpKA,4DAmaU,GAAW,WAAG,MAAI,MAAJ,KAAM,MAAO,MAAP,QAAS,MAAU,MAAV,uBAClC,EAAG,SAAH,CAAG,eAKQ,EAAU,GAAI,EAAQ,GAAI,EAAQ,EAAa,GAAE,EAAE,EAJ1D,sBACC,EAAS,qOAEb,OAAU,QAAE,EAAI,EAAC,YAAjB,MAAU,GAAE,EAAI,EAAC,OAAM,+BAWd,GAAmB,EAAI,EAAC,aAAa,WACpC,EAAU,GAAK,EAAQ,MAAK,CAAe,GANlD,sBACC,EAAS,kRAGb,OAAU,QAAE,EAAI,EAAC,mBAAjB,MAAU,GAAE,EAAI,EAAC,cAAa,OAd/B,CAAG,UAAH,EAAG,sBAuCQ,EAAU,GAAI,EAAQ,GAhB7B,2BACM,EAAS,mCACF,EAAS,gDACL,EAAS,wCACtB,EAAI,EAAC,8BACD,EAAI,EAAC,4CACA,EAAI,EAAC,+CACP,kCACE,CAAmB,qCACf,CAAuB,kaAQ3B,GAAqE,IAC/E,IAAc,UAAW,CAC3B,EAAO,MACF,EAAI,EACP,MAAO,UACP,eAAgB,GAA4B,EAC1C,CAAmB,EACnB,EAAI,EAAC,gBAAkB,EAAU,GAEnC,oBAAqB,WAIzB,IAEI,IAAc,cAAe,KACzB,EAAqB,GAAiC,EAC1D,CAAuB,EACvB,EAAI,EAAC,gBAAkB,EAAU,EACjC,GAA0B,EAAI,EAAC,mBAAmB,EAAE,eAClD,EAAqB,GAEzB,EAAO,MACF,EAAI,EACP,MAAO,cACP,eAAgB,GAA0B,CAAkB,EAAE,UAC9D,oBAAqB,UAIzB,CAEA,EAAO,MACF,EAAI,EACP,MAAO,eACP,eAAgB,GAChB,oBAAqB,IAEzB,kBACkB,GAChB,EAAO,MACF,EAAI,EACP,eAAgB,CAAa,uBAEX,GACpB,EAAO,MACF,EAAI,EACP,eAAgB,GAA0B,CAAkB,EAAE,UAC9D,oBAAqB,oBAlErB,CAAU,KAAI,CAAY,wBAuE/B,GAAY,SAAQ,4DACP,cAAa,wCAOX,EAAU,GAAI,EAAQ,GALzB,0EAGD,gBACS,GAAQ,EAAI,EAAE,EAAO,iGAL5B,EAAQ,mDAarB,EAAG,OACC,EAAG,EADP,CAAG,MACC,CAAG,YAEM,IAAD,CAAC,WADD,EAAI,EAAC,MAAM,SAAW,GAAC,wBAMrB,EAAI,EAAC,MAAK,MAAI,EAAI,UAKP,EAAM,IACX,GAAY,SAAQ,GAAI,eAAkB,EAAQ,GAAC,YAHxD,EAAQ,EAAG,WAAkB,GAAW,EAAO,EAAI,EAAE,EAAO,IAF/D,YACA,+BAGa,8BAGT,EAAG,UAAH,CAAG,eAEN,EAAS,MAAM,UAAU,CAAK,WAKxB,EAAU,GAAI,EAAQ,GANrB,sFAKF,qFAGE,GACT,GACE,EAAK,CACH,UAAY,IAAe,CAAK,GAAuB,UAAU,EACnE,EAAI,EACJ,EAAO,OATX,OAAU,QAAE,EAAI,EAAC,MAAM,GAAO,eAA9B,MAAU,GAAE,EAAI,EAAC,MAAM,GAAO,UAAS,+BAanC,EAAS,MAAM,WAAW,CAAK,WACtB,IAAwB,EAAI,EAAC,MAAM,GAAO,SAAS,WAEtD,EAAU,GAAI,EAAQ,GAJrB,qMAMA,GACT,GACE,EAAK,CACH,WAAa,EAAM,cAAmC,KAAK,EAC7D,EAAI,EACJ,EAAO,OARX,OAAU,QAAE,EAAI,EAAC,MAAM,GAAO,gBAA9B,MAAU,GAAE,EAAI,EAAC,MAAM,GAAO,WAAU,OApBjC,CAAG,MAAH,CAAG,yCAff,CAAG,IADP,CAAG,UAsDE,GAAa,WAAG,MAAU,MAAV,WACrB,8FAIK,0BACI,EAAU,2DA/hBT,EAAU,kBAAG,IAAI,EAC5B,EAAc,uBAAG,IAAI,EACX,EAAS,0BAEnB,EAAc,uBAAG,IAAI,EAGrB,EAAgB,yBAAG,IAAI,EAID,EAAqB,6BAAG,IAAI,EACvB,qBAAG,cAAc,EACvC,cAAG,IAAI,MACZ,EAAW,oBAAG,IAAI,EAClB,EAAQ,iBAAG,EAAK,EAChB,EAAiB,0BAAG,EAAK,EACzB,EAAc,uBAAG,EAAK,EACtB,EAAa,sBAAG,IAAI,EAmBhB,EAAe,EACjB,KAAM,eAAgB,MAAO,UAAU,GACvC,KAAM,mBAAoB,MAAO,YAAY,GAC7C,KAAM,iBAAkB,MAAO,UAAU,GACzC,KAAM,iBAAkB,MAAO,OAAO,GACtC,KAAM,oBAAqB,MAAO,OAAO,GAGvC,EAA2B,GAA0C,KACpE,SAED,OAAQ,GACR,MAAO,eACP,eAAgB,GAChB,oBAAqB,GACrB,gBAAiB,GACjB,iBAAkB,GAClB,cAAa,IACb,MAAK,QAIH,GAAoB,EAAO,YAAc,IAAI,KAAI,EACjD,GAAsB,EAAO,gBAAkB,IAAI,KAAI,SAG3D,OAAQ,EAAO,QAAU,GACzB,MACE,EAAO,QAAU,WACjB,EAAO,QAAU,eACjB,EAAO,QAAU,eACb,EAAO,MACP,eACN,eAAgB,EAChB,oBACE,GAAoB,EAAkB,GAAM,EAAgB,IAAK,IAAuB,GAC1F,gBAAiB,EAAO,mBAAqB,GAC7C,kBAAmB,EAAO,oBAAkB,IAAQ,KAAK,IAAI,EAC7D,cAAa,GAAK,EAAO,4BACzB,OAAQ,EAAO,sBAAoB,IAAQ,IAAgB,IAAI,IAC1D,IAAoB,EAAK,OAAO,EACnC,WAAY,EAAK,WAAS,IAAQ,KAAK,IAAI,EAC3C,SAAU,EAAK,UAAY,MAGjC,EAEM,MAAgC,EAAwB,EAAa,GAErE,EAAQ,CACZ,OAAQ,kBACR,MAAO,iBACP,eAAgB,yBAChB,oBAAqB,6BACrB,cAAe,0BACf,gBAAiB,6BACjB,iBAAkB,8BAClB,MAAK,CACH,UAAY,GAAa,iBAAsB,EAAK,OACpD,WAAa,GAAa,iBAAsB,EAAK,QACrD,SAAW,GAAa,iBAAsB,EAAK,YACnD,UAAY,GAAa,iBAAsB,EAAK,eAIlD,EAAY,MAAY,GAAQ,EAAc,GAAI,EAAc,IAChE,EAAe,MAAY,GAAQ,EAAiB,GAAI,EAAc,IACtE,EAAU,MAAY,EAAQ,MAAK,CAAe,MAAK,CAAY,GACnE,EAAc,OAEhB,EAAS,EAAC,OAAS,EACd,EAAS,EACR,EAAkB,OAEN,OACjB,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,EAExF,EACK,EAAmB,MAAY,GAAwB,EAAC,CAAc,EAAE,EAAc,IACtF,EAAuB,MAC3B,GAA4B,EAAC,CAAc,EAAE,EAAc,IAGzD,EAAa,EAAO,CAAC,EACnB,EAAS,SACV,EAAU,GAAI,OAAM,GAAI,EAAc,GAAI,OAAM,GAAI,EAAqB,GAAI,OAAM,GAAI,EAAa,GAAE,IAAM,MAAK,KAAI,CAAU,OAAI,CAAU,EAAG,OAAS,QAAM,EAG9J,GAAoB,MAAY,EAAW,MAAK,CAAU,EAAG,YAAc,YAAW,EACtF,GAAQ,QAAY,CAAU,EAAG,OAAS,QAAQ,EAElD,IAAkB,CAAM,UAA6D,MACrF,CAAU,QAAS,OAEnB,EAAQ,GACN,EAAmB,EAAQ,EAAa,GAAE,OAE3C,EAAkB,KAChB,EAAc,SACjB,GAAe,CAAG,MAAO,QAAS,KAAM,4CAEjC,OAGH,EAAc,EAChB,GAAI,EAAS,OAAQ,MAAO,EAAK,OAAQ,UAAW,aAE3C,KAAI,QAAO,eAAe,EAChC,GAAc,EAAI,EAAO,CAAS,IAAG,EAAQ,GAEtD,MAEK,GAAgB,EAAI,CAAY,KAC9B,GAAc,EAAS,MAAO,EAAK,MAAO,EAAa,IAAG,EAAQ,IAEnE,EAAK,QAAU,YACZ,GAAc,EAAS,eAAgB,EAAK,eAAgB,EAAa,IAC5E,EAAQ,KAGR,EAAK,QAAU,gBACZ,GAAc,EAAS,oBAAqB,EAAK,oBAAqB,EAAa,IACtF,EAAQ,OAIT,GAAgB,EAAI,CAAe,EAAE,KAClC,EAAkB,OAAO,SAAS,EAAK,cAAe,EAAE,EAE5D,OAAO,SAAS,CAAe,GAC/B,GAAmB,IAClB,IAAoB,GAAK,GAAmB,MAI1C,GACC,EAAS,cACT,EAAK,kBACC,4EAA4E,IAGpF,EAAQ,GAGd,QAEK,GACH,EAAK,MAAM,SAAS,EAAM,IAAU,KAC5B,EAAQ,EAAK,WAAW,KAAI,EAE7B,MAED,EAAK,YAAc,WAEnB,KACE,OAAO,EAAO,GAAG,CACvB,MAAQ,CAEH,GACC,EAAS,MAAM,WAAW,CAAK,EAC/B,MACM,+DAA+D,IAGvE,EAAQ,GAEZ,CACF,CAAC,EAGI,CACT,EAEM,EAA2B,GAI/B,GAAkB,CAChB,KAAM,EAAK,KACX,KAAM,EAAK,IAAI,GAGb,GAAY,KAAU,IAAmB,MACzC,CAAU,EAAE,sBAIhB,KAEM,EAAkB,IAAmB,EAAK,aAAa,EACvD,EACJ,IAAoB,GAAK,GAAmB,IAAM,IAE9C,EAAS,EAAK,OAAS,eACvB,GACJ,EAAc,GACd,EAAa,GAAE,iBACf,EAAa,GAAE,WACf,IACA,KAAI,MAED,EAAwB,CAC3B,GAAe,CAAG,MAAO,QAAS,KAAM,kDAG1C,KAEM,EAAoB,GAA0B,EAAK,mBAAmB,EACtE,EACJ,IAAU,UACN,EAAK,eAAe,KAAI,EACxB,IAAU,cACR,EAAkB,UAClB,GACF,EAAgB,IAAU,eAAgB,EAAkB,eAAwB,QAEtF,EAAa,GAAE,IAAM,EAAc,EAAE,KACjC,EAAkC,CACtC,WAAY,IAAU,eAAiB,KAAO,GAAqB,KACnE,eAAgB,EAChB,QACA,uBAAwB,MAEtB,OACI,EAAc,EAAC,EAAe,EAAa,KACjD,EAAU,EAAV,CAAU,EAAI,EAChB,MAAQ,OAER,OAGF,IAEI,EAAiB,GAAI,EAAa,GAAE,GAAI,KACrC,EAAgB,EAAE,CACrB,GAAe,CAAG,MAAO,QAAS,KAAM,0DAG1C,IAEI,OACI,EAAgB,EAAC,EAAmB,EAAa,KACvD,EAAU,EAAV,CAAU,EAAI,EAChB,MAAQ,OAER,OAGF,KAEM,EAAsB,EAAK,MAC9B,IAAgC,GAAS,KAClC,EAAU,IAAqB,CAAI,SAEpC,GAGH,UACA,UAAW,EAAK,UACb,MAAM,GAAG,EACT,IAAK,GAAU,EAAM,KAAI,GACzB,OAAO,OAAO,EACjB,SAAU,EAAK,SAAS,KAAI,GAAM,OAClC,WAAY,IATO,IAWvB,CAAC,EACA,OAAQ,GAAqC,EAAQ,CAAI,EACtD,EAAmB,GAAgB,EAAK,MAAM,MAE/C,EAAkB,CACrB,GAAc,EAAS,OAAQ,EAAK,OAAQ,EAAc,QAG5D,KAEM,EAA4B,CAChC,gBAAiB,EACjB,WAAY,IAAU,eAAiB,KAAO,GAAqB,KACnE,eAAgB,EAChB,QACA,OAAQ,EACR,uBAAwB,EACxB,kBAAmB,EAAK,gBAAgB,KAAI,GAAM,OAClD,mBAAoB,EAAK,iBACtB,MAAM,GAAG,EACT,IAAK,GAAU,EAAM,KAAI,GACzB,OAAO,OAAO,EACjB,qBAAsB,sBAGP,CAAO,IACxB,EAAU,EAAV,CAAU,EAAI,EAChB,EAEM,GAAiB,KAAU,IAAkC,GAAa,CAAI,EAE9E,IAAW,EAAgB,IAAsC,CACjE,EAAQ,GAEZ,EAAO,IAAM,EAAM,MAAK,IAAM,EAAK,MAAO,IAAe,IAC3D,EAEM,IAAc,EAAe,EAAgB,IAAsC,CACnF,EAAQ,GAEZ,EAAO,IAAM,EAAM,MAAO,EAAK,MAAM,QAAQ,EAAG,IAAM,IAAM,CAAK,GACnE,EAEM,IACJ,EACA,EACA,EACA,IACG,KACG,EAAY,EAAK,MAAM,KAAK,EAAM,IAAO,IAAM,EAAK,IAAQ,EAAI,GAAK,CAAK,EAAK,CAAI,EACzF,EAAO,IAAM,EAAM,MAAO,CAAS,EACrC,EAEM,GAAsB,GAC1B,IAAyB,EAAO,EAAoB,iBAcjC,CAAU,EAAG,OAAY,CAAa,EAX5D,yCAEO,EAAQ,GACb,yCACA,CAAS,gBACI,WACJ,8BACG,EAAoB,0EAEtB,4BACE,mDAZP,CCxWR,IAAM,GAAW,MAAU,EAAoB,KACxC,EAAS,IACZ,MAAM,GAAmB,EAAU,GAAG,EAAM,6BAA6B,EAGnE,MAAM,EAAS,KAAK,GAG9B,eAAsB,IACpB,EACgC,CAChC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAW,uBAAuB,mBAAmB,CAAW,IACnE,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,iDAAiD,GAAe,CAAK,GAAG,CAC1F,CAEA,OAAO,GAAgC,EAAU,iBAAiB,CACpE,CAEA,eAAsB,IACpB,EACkC,CAClC,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAAW,uBAAuB,mBAAmB,CAAW,EAAE,WACrE,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,yCAAyC,GAAe,CAAK,GAAG,CAClF,CAEA,OAAO,GAAkC,EAAU,UAAU,CAC/D,23BCrFA,aAgRU,GAAW,EAAC,EAAkB,UAEtB,EAAM,iCAKE,EAAa,QAClB,EAAG,UAAH,CAAG,eAC6B,EAAY,EAAK,EAAC,KAAK,GAAnD,GAAS,yEAEuB,GAAmB,EAAK,EAAC,aAAa,GAAlE,GAAS,oDADT,EAAK,EAAC,gBAAkB,WAAa,EAAK,EAAC,gBAAkB,aAAU,iCAGhD,GAAY,EAAK,EAAC,UAAU,GAAvD,GAAS,uDALb,CAAG,MAAH,CAAG,sBAFoB,EAAK,EAAC,UAAS,GAAI,EAAW,EAAK,MAAlE,GAAY,kCAAkE,GACjE,8DAND,EAAgB,GAApC,GAAW,4BACE,8BAgBT,EAAG,UAAH,EAAG,MAAH,CAAG,WAAH,EAAG,4CAA8D,EAAK,EAAC,IAAE,MACrE,EAAK,EAAC,MAAQ,uBAAuB,QADzC,CAAG,sCA/QR,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAa,sBAAG,IAAI,EACpB,EAAW,oBAAG,IAAI,EAClB,EAAM,eAAG,IAAI,EACb,EAAQ,iBAAG,IAAI,EACf,EAAK,cAAG,IAAI,EACZ,EAAS,kBAAG,IAAI,EAChB,EAAgB,yBAAG,EAAK,EACxB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAiB3B,EAAU,EAAM,QAChB,EAAS,EAAO,CAAC,EACjB,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAU,EAAO,EAAK,EAUpB,EAAkB,IACN,OAAU,GAAU,SAAW,EAAM,KAAI,EAAK,KAEzC,KAGjB,EAAkB,GACtB,EAAe,EAAM,EAAE,IAErB,EAAe,EAAM,OAAO,GAAK,eACjC,EAAe,EAAM,SAAS,GAAK,iBACnC,EAAe,EAAM,aAAa,GAAK,iBAChC,EAAM,aAAgB,SAAW,OAAO,EAAM,WAAW,EAAI,YACpE,KAAK,IAAI,EAEP,EAAsB,GAAyB,KAC7C,EAAI,IAAO,IACX,EAAqB,WAChB,KAAQ,EAAO,KAClB,EAAM,EAAe,CAAI,EAE3B,EAAK,IAAI,CAAG,IAEhB,EAAK,IAAI,CAAG,EACZ,EAAO,KAAK,CAAI,EAClB,QAEO,CACT,EAEM,GAAqB,EAAwB,IAC5C,EAAQ,OAEN,EAAkB,IAAK,EAAO,GAAK,CAAQ,GAFtB,EAAmB,CAAQ,EAwBnD,EAAmB,MAnBQ,KACzB,EAAQ,OAAU,EAAW,GAAK,SAAW,EAAW,EAAC,KAAI,EAAK,MAEpE,EAAQ,OAAS,MAEf,EAAgB,OAAU,EAAM,GAAK,SAAW,EAAM,EAAC,KAAI,EAAK,UAEjE,EAEE,GAAiB,CACtB,YAAS,EACT,iBAAc,EACd,gBAAa,EACb,QAAK,EACL,WAAQ,EACR,OAAQ,IARoB,IAUhC,CAE0D,EAEpD,GACJ,EACA,IAEA,GACE,EAAO,UAAQ,OACP,EAAO,OAAU,UAAY,GAAa,EAAO,OAAS,IAClE,EAAO,MAAM,QAAU,IAGrB,EAAW,MAAU,EAAQ,KAAU,KACtC,EAAS,IAAK,EAAc,EAAE,GACjC,EAAQ,2CAA0C,QAGpD,OAEK,CAAmB,EAAE,GACxB,EAAQ,kCAAiC,QAG3C,KAEM,EAAa,EAAQ,EAAC,EAAG,KAC/B,EAAU,MACV,EAAQ,SACJ,KACI,EAAM,MAAS,IAAkB,EAAS,GAC9C,YAAW,EAAE,CAAmB,EAChC,MAAO,GACP,OAAQ,MAEV,EAAU,EAAQ,EAAmB,EAAO,KAAK,EAAI,EAAiB,EAAC,CAAO,EAAE,EAAO,KAAK,UACtF,EAAY,EAAa,EAAO,MAAM,SAC5C,EAAS,KACT,EAAU,EAAe,EAAQ,CAAS,KAC5C,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAU,GACZ,CACF,EAEM,EAAc,GAAuB,KACnC,EAAG,OAAU,EAAM,aAAgB,SAAW,EAAM,YAAc,EAAI,KACtE,EAAQ,EAAM,aAAe,YAE/B,IAAQ,MAAQ,IAAU,KAAa,QAEvC,IAAQ,MAAQ,IAAU,KAAI,SAAkB,EAAG,KAAM,IAEzD,IAAQ,KAEL,QAFS,SAAkB,GAGpC,EAEM,EAAW,MAAqB,KAC9B,EAAoB,WACf,KAAK,EAAI,CAAO,EAAE,KACrB,EAAM,EAAe,EAAM,OAAO,GAAK,EAAM,GAC7C,EACJ,EAAe,EAAM,UAAU,GAC/B,EAAe,EAAM,OAAO,GAC5B,EAAe,EAAS,IACxB,oBACI,EAAU,OAAU,EAAM,aAAgB,SAAW,EAAM,YAAc,KACzE,EAAW,EAAO,KAAM,GAAU,EAAM,MAAQ,CAAG,KAErD,EAAU,CACZ,EAAS,QAAQ,KAAK,CAAK,EAC3B,EAAS,YACP,GAAc,KACV,EAAS,YACT,KAAK,IAAI,EAAS,aAAe,EAAG,CAAU,GAGjD,EAAM,gBAAkB,WAAa,EAAM,gBAAkB,aAAU,CACvE,EAAS,cAAc,SAAS,EAAM,aAAa,IAEpD,EAAS,cAAa,IAAO,EAAS,cAAe,EAAM,aAAa,WAI5E,CAEA,EAAO,KAAI,CACT,MACA,QACA,YAAa,EACb,cACE,EAAM,gBAAkB,WAAa,EAAM,gBAAkB,WAAS,CACjE,EAAM,aAAa,KAE1B,QAAO,CAAG,CAAK,GAEnB,QAEO,CACT,CAAC,EAEK,EAAoB,QAAY,CAAW,EAAC,OAAS,CAAC,EAOtD,EAAe,GAAuC,KACpD,EAAiB,SAEnB,IAAmB,gBACZ,MAAO,eAAgB,MAAO,eAAgB,MAAO,UAG5D,IAAmB,eACZ,MAAO,cAAe,MAAO,UAAW,MAAO,MAAM,EAG5D,IAAmB,WACZ,MAAO,UAAW,MAAO,QAAS,MAAO,MAAM,EAGtD,EAAc,GACP,MAAO,eAAgB,MAAO,eAAgB,MAAO,UAG5D,EAAa,GACN,MAAO,cAAe,MAAO,UAAW,MAAO,MAAM,GAGvD,MAAO,UAAW,MAAO,QAAS,MAAO,MAAM,CAC1D,EAEM,GAAe,GACnB,GAAS,KAAO,IAAG,GAAM,GAAa,CAAK,WAEvC,GAAsB,GACtB,IAAY,YACL,MAAO,WAAY,MAAO,QAAS,MAAO,QAAQ,GAGpD,MAAO,UAAW,MAAO,OAAQ,MAAO,OAAO,EAG1D,OAAc,CACZ,EAAa,MACb,EAAsB,IAAG,IAAI,EACxB,EAAY,EAAI,CACvB,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,eA2BF,GAAG,WAAH,EAAG,oCAEW,CAAW,EAAI,GAAO,EAAM,KAAG,EAAhB,IAAK,KACtB,EAAO,UAAP,CAAO,EACH,GAAY,wBAAQ,CAAK,EAAC,aAAc,GAC3B,cAAa,6CAIjB,GAAY,EAAC,CAAK,EAAC,WAAW,YAF3B,sEADA,CAAK,EAAC,cAAgB,MAAI,0BAOxB,CAAK,EAAC,cAAiB,GAAc,GAAY,EAA1B,IAAY,cACT,GAAmB,CAAY,GAA3D,GAAS,qFAIrB,EAAG,UAAH,EAAG,SACO,CAAK,EAAC,QAAW,GAAO,EAAe,CAAK,KAA3B,IAAK,CAChB,EAAW,QAAC,CAAK,OAFjC,CAAG,IAfP,CAAO,UAAP,EAAO,8CAAmE,CAAK,EAAC,KAAG,OAAnF,CAAO,8CAuBL,CAAO,EAAI,GAAO,EAAe,CAAK,KAA3B,IAAK,CACV,EAAW,QAAC,CAAK,wBA1B7B,CAAoB,6CA+BnB,IAAD,CAAC,eADA,CAAO,MAAK,CAAO,EAAC,QAAM,GAAK,CAAK,qCAOrC,EAAC,UAAD,CAAC,IAAD,CAAC,sDACmC,CAAK,cADzC,CAAC,cADD,CAAK,aArCb,EAAG,WAAH,GAAG,cA6CC,EAAG,MACC,KADJ,CACU,0DADV,CAAG,MAAH,CAAG,cADH,CAAO,qCAOP,EAAG,MACC,KADJ,CACI,iEAGG,gBACS,EAAY,EAAK,MALjC,CAAG,MAAH,CAAG,cADH,CAAO,MAAK,CAAO,sBA5EhB,ygBC9QR,aAgBI,EAAS,kBAAG,IAAI,EAMd,EAAW,EAAuC,IAAI,EACtD,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAEhC,EAAmB,IACP,OAAU,GAAU,SAAW,EAAM,KAAI,EAAK,KAEzC,KAGjB,EAAK,MACT,EAAe,EAAC,CAAQ,GAAE,UAAU,GAClC,EAAgB,EAAS,IACzB,EAAe,EAAC,CAAQ,GAAE,OAAO,GACjC,gBAAgB,EAGd,EAAS,MAAY,EAAe,EAAC,CAAQ,GAAE,UAAU,GA6BzD,EAAY,SAAe,GAC/B,EAAU,MACV,EAAQ,SACJ,GACF,EAAQ,MAAS,IAA4B,kBAC/C,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAU,GACZ,CACF,EAEA,OAAc,CACP,EAAY,CACnB,CAAC,MAGF,EAAG,UAAH,CAAG,EACC,GAAY,wBAAE,CAAK,SAAS,oBAAwB,GACvC,cAAa,IAClB,kBACU,GACT,CAAS,GAAE,OAAO,KAAI,EAAC,CAAS,EAAE,SAAU,UAAU,CAC5D,qCAEM,+BAEC,0DAMN,EAAG,MACC,KADJ,CACU,mDADV,CAAG,MAAH,CAAG,aAIH,EAAC,UAAD,CAAC,IAAD,CAAC,uDAAsD,CAAK,cAA5D,CAAC,aAED,EAAO,UAAP,EAAO,MAAP,CAAO,cACH,CAAQ,EAAC,IAAI,OADjB,CAAO,aAIN,IAAD,CAAC,aAXD,CAAO,SAIF,CAAK,WAEL,CAAQ,KAAI,CAAQ,EAAC,oBAAkB,EAAI,CAAQ,EAAC,KAAI,mBArBrE,CAAG,MAAH,CAAG,KAFI,6pECnFR,aAkBI,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAa,sBAAG,IAAI,EAEpB,EAAM,eAAG,IAAI,EACb,EAAQ,iBAAG,IAAI,EACf,EAAK,cAAG,IAAI,EACZ,EAAS,kBAAG,IAAI,EAChB,EAAe,wBAAG,IAAI,EACtB,EAAmB,4BAAG,IAAI,EAC1B,EAAqB,8BAAG,IAAI,EACV,2BAAG,IAAI,MAGvB,EAAS,EAAqC,IAAI,EAClD,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAEhC,EAAmB,IACP,OAAU,GAAU,SAAW,EAAM,KAAI,EAAK,KAEzC,KAGjB,EAAK,MACT,EAAe,EAAC,CAAM,GAAE,UAAU,GAChC,EAAgB,EAAS,IACzB,EAAe,EAAC,CAAM,GAAE,OAAO,GAC/B,EAAgB,EAAM,IACtB,gBAAgB,EAEd,EAAe,MAAY,EAAe,EAAC,CAAM,GAAE,OAAO,GAAK,EAAgB,EAAM,IACrF,EAAiB,MACrB,EAAe,EAAC,CAAM,GAAE,SAAS,GAAK,EAAgB,EAAQ,IAE1D,EAAc,QAAY,CAAM,GAAE,OAAS,EAAK,GAChD,EAAU,QAAY,CAAM,GAAE,aAAe,EAAe,GAAI,IAAI,EACpE,EAAc,QAAY,CAAM,GAAE,kBAAoB,EAAmB,GAAI,IAAI,EACjF,EAAgB,QAAY,CAAM,GAAE,oBAAsB,EAAqB,GAAI,IAAI,EAKvF,EAAS,MAAY,EAAe,EAAC,CAAM,GAAE,UAAU,GACvD,EAAY,MAAY,EAAe,EAAC,CAAM,GAAE,aAAa,GAE7D,GAAwB,EAAkC,EAAW,oBAAiB,OACnF,GAAU,UAAY,OAAO,SAAS,CAAK,EAAI,GAAa,CAAK,EAAI,EAoCxE,EAAU,SAAe,GAC7B,EAAU,MACV,EAAQ,SACJ,GACF,EAAM,MAAS,IAA0B,kBAC3C,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAU,GACZ,CACF,EAEM,MAA4B,GAC3B,CAAM,GAAE,oBAEb,GAAW,CACT,MAAK,gBAAgB,CAAK,IAC1B,QAAS,IACT,WAAU,CACR,YAAW,cACX,UAAS,EAAE,CAAK,GAElB,kBAAmB,IAEvB,EAEM,MAA0B,CAC9B,GAAW,CACT,MAAK,cAAc,CAAK,IACxB,QAAS,IACT,WAAU,CACR,YAAS,EACT,iBAAc,EACd,gBAAa,EACb,YAAW,cACX,OAAM,EAAE,CAAe,EACvB,SAAQ,EAAE,CAAiB,EAC3B,MAAK,EAAE,CAAc,EACrB,UAAS,EAAE,CAAK,EAChB,iBAAkB,IAEpB,kBAAmB,IAEvB,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,MAGF,EAAG,WAAH,CAAG,aAEK,EAAC,UAAD,CAAC,IAAD,CAAC,+DAA8D,CAAK,cAApE,CAAC,cADD,CAAK,eAIT,GAAO,QACH,EAAG,EADP,EAAO,EAGC,GAAM,IAFV,CAAG,UAEC,GAAM,MAAN,EAAM,IAFV,CAAG,MAIH,GAAG,EAJH,EAAG,GAMC,GAAM,IAFV,EAAG,UAEC,GAAM,MAAN,EAAM,IAFV,EAAG,MAIH,GAAG,EAJH,GAAG,GAMC,GAAM,IAFV,EAAG,UAEC,GAAM,MAAN,EAAM,IAFV,EAAG,MAIH,GAAG,EAJH,GAAG,GAMC,GAAM,IAFV,EAAG,UAEC,GAAM,MAAN,EAAM,IAFV,EAAG,IAbP,EAAO,MAmBP,GAAO,EAnBP,GAAO,QAmBP,EAAO,EACH,GAAY,4BAA0B,GAAI,iBAAoB,EAAI,OAClE,GAAE,QACE,GAAG,EADP,EAAE,EAGM,GAAE,IAFN,EAAG,UAEC,GAAE,MAAF,EAAE,IAFN,EAAG,MAIH,GAAG,EAJH,GAAG,GAMC,GAAE,IAFN,EAAG,UAEC,GAAE,MAAF,EAAE,IAFN,EAAG,MAIH,GAAG,EAJH,GAAG,GAMC,GAAE,IAFN,EAAG,UAEC,EAAE,aAEM,EAAC,UAAD,EAAC,MAAD,CAAC,WAAD,EAAC,SAAO,CAAS,SAAoC,CAAS,SAA9D,CAAC,iDADD,CAAS,qBADjB,EAAE,IAFN,EAAG,MAUH,GAAG,EAVH,GAAG,GAYC,GAAE,IAFN,EAAG,UAEC,EAAE,aAEM,EAAC,UAAD,EAAC,MAAD,CAAC,WAAD,EAAC,SAAO,CAAY,SAAoC,CAAY,SAApE,CAAC,iDADD,CAAY,qBADpB,EAAE,IAFN,EAAG,IAnBP,EAAE,IAFN,EAAO,MAkCP,GAAO,EAlCP,GAAO,GAmCH,KADJ,EAAO,aAOC,GAAG,EANP,IAMgD,GAAI,EAAhD,EAAG,IAAH,EAAG,MACH,GAAI,EADJ,GAAG,GAGC,GAAK,IAFT,EAAI,UAEA,EAAK,uFAE0B,EAAoB,EAAC,CAAM,EAAC,oBAAqB,GAAG,yHAD3E,CAAM,GAAE,mBAAkB,mBADlC,EAAK,IAFT,EAAI,IAPR,QAmBA,GAAM,EAnBN,MAoBI,GAAG,EADP,EAAM,EAC0C,GAAI,EAAhD,EAAG,IAAH,EAAG,UADP,EAAM,IApBV,EAAO,WAAP,GAAO,cA8BH,EAAG,MACC,KADJ,CACU,mDADV,CAAG,MAAH,CAAG,cADH,CAAO,aAvFf,CAAG,6CAoBiB,CAAM,GAAE,mBAAqB,YAAc,iBAAiB,SAS5D,CAAe,GAAI,iBAAiB,SAIpC,CAAiB,GAAI,iBAAiB,IA0BlD,sBAIa,CAAM,GAAE,kBAAkB,OAJvC,0CACc,CAAM,GAAE,kBAAkB,KAKQ,GAAI,IAAI,EAAsB,IAc9B,GAAI,IAAI,EAAiB,QAvE7D,EAAoB,EAAC,CAAc,OAInC,EAAoB,EAAC,CAAU,OAI/B,EAAoB,EAAC,CAAgB,eA2CjD,GAGM,CAAmB,YAgBzB,GAA8B,CAAiB,MA9EvD,CAAG,KAFI,eC/IR,IAAM,GAAmB,IACJ,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,KAEzC,KAGV,IACX,GACkB,CAClB,IAAM,EAAW,GAAgB,EAAQ,WAAW,EAEpD,GAAI,EAAU,OAAO,EAErB,IAAM,EAAS,GAAgB,EAAQ,MAAM,EAI7C,OAFK,EAEE,GAAkB,CACvB,UAAW,EAAQ,UACnB,eAAgB,EAAQ,eACxB,cAAe,EAAQ,cACvB,MAAO,EAAQ,MACf,SAAU,EAAQ,SAClB,QACF,CAAC,EATmB,IAUtB,EAEA,SAAgB,GAA6B,EAA0C,CACrF,IAAM,EAAc,IAA6B,CAAO,EAEnD,GAIL,GAAY,CACV,MAAO,cAFP,GAAgB,EAAQ,SAAS,GAAK,GAAgB,EAAQ,MAAM,GAAK,mBAGzE,QAAS,IACT,WAAY,CACV,GAAG,EACH,aACF,EACA,kBAAmB,EACrB,CAAC,CACH,iBCjDA,aAMI,EAAU,mBAAG,GAAG,EAUlB,OAAc,KACN,EAAS,MAAO,KAAI,MAErB,EAAW,oBACG,EAAK,QAGxB,KAEM,EAAY,IAAwB,CACxC,IAAK,EACL,aAAU,EACV,aAAY,eACZ,eAAc,0BAEhB,EAAU,MAAK,MAEF,CACX,EAAU,KAAI,CAChB,CACF,CAAC,KACK,iBCrCR,SAWE,OAAc,KACP,OAAO,SAAQ,6BAA8B,EAAC,WAE7C,EAAQ,gBAAkB,WAEhC,0BAEa,CACX,cAAc,CAAK,CACrB,CACF,CAAC,KACK,CCpBR,IAAM,GAAe,IAAU,IA0CzB,GAAQ,GAA8B,CAL1C,MAAO,CAAC,EACR,SAAU,CAAC,EACX,QAAS,CAAC,CAGgC,CAAY,EAC3C,QAAiC,GAAM,IAAI,CAAE,MAAO,CAAC,EAAG,SAAU,CAAC,EAAG,QAAS,CAAC,CAAE,CAAC,EAE1F,OAAsB,KAAK,IAAI,EAC/B,OAAuB,IAAI,KAAK,EAAE,YAAY,EAE9C,GAAU,GACd,GAAG,EAAO,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAG,CAAC,EAAE,GAAG,GAAM,EAAE,SAAS,EAAE,IAEtE,GAAiD,GAAsB,CAC3E,IAAM,EAAM,GAAM,EAElB,OAAO,EAAQ,OAAQ,GAAU,EAAM,UAAY,CAAG,CACxD,EAEM,GAAkB,GAAuE,CAC7F,GAAM,OAAQ,GAOL,EAAQ,CALb,MAAO,GAAa,EAAM,KAAK,EAC/B,SAAU,GAAa,EAAM,QAAQ,EACrC,QAAS,GAAa,EAAM,OAAO,CAGtB,CAAK,CACrB,CACH,EAEa,GAAwB,GAA0B,CAC7D,IAAM,GAAO,GAAS,IAAI,KAAK,EAE/B,GAAI,CAAC,EAAK,MAAO,GAEjB,IAAM,EAAW,2BAA2B,KAAK,CAAG,EAAI,EAAM,WAAW,IACzE,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAQ,EAK/B,MAAO,GAJU,EAAO,SAAS,YAIvB,EAAS,IAHN,EAAO,KAAK,YAGF,KAFL,EAAO,UAAY,KAAK,QAAQ,QAAS,EAAE,GAAK,KAGpE,MAAQ,CACN,OAAO,EAAI,YAAY,EAAE,QAAQ,QAAS,EAAE,CAC9C,CACF,EAEa,IAA4B,GAAiC,CACxE,IAAM,GAAO,GAAS,IAAI,KAAK,EAE/B,GAAI,CAAC,EAAK,OAAO,KAEjB,IAAM,EAAW,2BAA2B,KAAK,CAAG,EAAI,EAAM,WAAW,IACzE,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAQ,EAS/B,MAPI,CAAC,EAAO,UAAY,EAAO,UAAY,EAAO,SAAiB,MAEnE,EAAO,SAAW,EAAO,WAAa,QAAU,QAAU,SAC1D,EAAO,SAAW,IAClB,EAAO,OAAS,GAChB,EAAO,KAAO,GAEP,EAAO,SAAS,EACzB,MAAQ,CACN,OAAO,IACT,CACF,EAEa,GAAyB,GAMxB,CACZ,IAAM,EAAK,GAAO,MAAM,EAClB,EAAY,GAAM,EAAI,GACtB,EAAY,GAAO,EAyBzB,OAxBA,GAAgB,GAAU,CACxB,IAAM,EAAY,GAAG,EAAM,UAAU,GAAG,EAAM,OAAO,GAAG,EAAM,YACxD,EAAS,EAAM,MAAM,OACxB,GAAS,GAAG,EAAK,UAAU,GAAG,EAAK,OAAO,GAAG,EAAK,cAAgB,CACrE,EAEA,MAAO,CACL,GAAG,EACH,MAAO,CACL,CACE,KACA,UAAW,EAAM,UACjB,cAAe,EAAM,eAAiB,KACtC,OAAQ,EAAM,OACd,UAAW,EAAM,UACjB,MAAO,EAAM,OAAS,cACtB,YACA,WACF,EACA,GAAG,CACL,CACF,CACF,CAAC,EAEM,CACT,EAEa,IAA4B,GAAqB,CAC5D,GAAgB,IAAW,CACzB,GAAG,EACH,MAAO,EAAM,MAAM,OAAQ,GAAU,EAAM,KAAO,CAAE,CACtD,EAAE,CACJ,EAEa,IAA6B,GAK5B,CACZ,IAAM,EAAa,GAAqB,EAAM,GAAG,EAC3C,EAAK,GAAO,KAAK,EACjB,EAAY,GAAM,EAAI,GACtB,EAAY,GAAO,EAyBzB,OAvBA,GAAgB,GAAU,CACxB,IAAM,EAAS,EAAM,SAAS,OAC3B,GACC,EAAE,EAAK,YAAc,EAAM,WAAa,GAAqB,EAAK,GAAG,IAAM,EAC/E,EAEA,MAAO,CACL,GAAG,EACH,SAAU,CACR,CACE,KACA,UAAW,EAAM,UACjB,cAAe,EAAM,eAAiB,KACtC,SAAU,EAAM,UAAY,KAC5B,IAAK,EAAM,IACX,YACA,WACF,EACA,GAAG,CACL,CACF,CACF,CAAC,EAEM,CACT,EAEa,IAAgC,GAAqB,CAChE,GAAgB,IAAW,CACzB,GAAG,EACH,SAAU,EAAM,SAAS,OAAQ,GAAU,EAAM,KAAO,CAAE,CAC5D,EAAE,CACJ,EAEa,IAA2B,GAO1B,CACZ,IAAM,EAAK,GAAO,QAAQ,EACpB,EAAY,GAAM,EAAI,GACtB,EAAY,GAAO,EAoBzB,OAlBA,GAAgB,IAAW,CACzB,GAAG,EACH,QAAS,CACP,CACE,KACA,UAAW,EAAM,UACjB,cAAe,EAAM,eAAiB,KACtC,QAAS,EAAM,SAAW,KAC1B,UAAW,EAAM,WAAa,KAC9B,MAAO,EAAM,MACb,OAAQ,EAAM,QAAU,KACxB,YACA,WACF,EACA,GAAG,EAAM,OACX,CACF,EAAE,EAEK,CACT,EAEa,GAA8B,GAAqB,CAC9D,GAAgB,IAAW,CACzB,GAAG,EACH,QAAS,EAAM,QAAQ,OAAQ,GAAU,EAAM,KAAO,CAAE,CAC1D,EAAE,CACJ,EAEa,GAAsB,CACjC,UAAW,GAAM,SACnB,EC5OA,SAAwB,IAAgB,CACtC,MACA,eACA,YAAY,GACZ,gBAAgB,GAChB,SACA,WACA,gBASmB,CACnB,IAAM,EACJ,2GAGI,EAAiB,EAAE,EAAa,WAAa,EAAa,gBAC1D,EAA4B,CAAC,EA2CnC,OAzCI,IACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,OACP,YAAe,CACb,IAAS,CAAG,CACd,EACA,KAAM,GACN,SAAU,EAAI,aACd,QAAS,EAAI,aAAe,EAA2B,GAAmB,UAAU,EACpF,OAAQ,2CAA2C,EAAI,IACzD,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,UACP,YAAe,CACb,IAAW,CAAG,CAChB,EACA,KAAM,GACN,SAAU,EAAI,aACd,QAAS,EAAI,aAAe,EAA2B,GAAmB,YAAY,EACtF,OAAQ,6CAA6C,EAAI,KACzD,KAAM,QACR,CAAC,GAGC,GACF,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,SACP,YAAe,CACb,EAAa,CAAG,CAClB,EACA,KAAM,GACN,SAAU,EACV,QAAS,EAAiB,qFAAsB,GAAmB,YAAY,EAC/E,OAAQ,6CAA6C,EAAI,IAC3D,CAAC,EAGI,CACT,0GCvEA,aAOC,QAQI,KARJ,CAQoB,0BAAU,aAR9B,2BAEW,GAAG,IAFd,qBAGiB,GAAG,IAHpB,gBAIY,GAAG,QAJf,MAFO,CCsBR,IAAM,GAAkB,IAAI,KAAK,aAAa,OAAO,EAI/C,GAAkB,GAA0C,EAErD,GAAiB,GAAkC,CAC9D,GAAI,CAAC,EAAO,MAAO,IAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAI7B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,eAAe,CAC/B,EAEM,GAAmB,GAAyC,CAChE,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAI7B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,mBAAmB,OAAO,CAC1C,EAEM,GAAc,GAClB,OAAO,GAAS,EAAE,EACf,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEtB,IAAa,EAAe,IAAkC,CAClE,IAAM,EAAa,OAAO,GAAS,EAAE,EAAE,KAAK,EAE5C,OAAO,EAAa,GAAa,EAAO,GAAW,CAAU,CAAC,EAAI,IACpE,EAEM,GAAY,GAAkC,CAClD,IAAM,EAAa,OAAO,GAAS,EAAE,EAAE,KAAK,EAE5C,OAAO,EAAa,GAAY,GAAW,CAAU,CAAC,EAAI,IAC5D,EAEM,GAAc,GAAyD,CAC3E,IAAM,GAAc,GAAU,CAAC,GAAG,IAAK,GAAU,EAAM,KAAK,CAAC,EAAE,OAAO,OAAO,EAE7E,OAAO,EAAW,OAAS,EAAW,KAAK,IAAI,EAAI,GACrD,EAEa,IAAY,GAAiE,CACxF,IAAM,EAAU,EAAM,KAAK,EAC3B,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAO,EACxB,EAAO,GAAG,EAAO,WAAW,EAAO,SAAS,KAAK,EAEvD,MAAO,CACL,MAAO,GAAQ,IAAS,IAAM,EAAO,EAAO,SAC5C,KAAM,GAAQ,IAAS,IAAM,EAAO,SAAW,aAC/C,KAAM,EAAO,IACf,CACF,MAAQ,CACN,MAAO,CACL,MAAO,GAAW,mBAClB,KAAM,mBACN,KAAM,CACR,CACF,CACF,EAEa,GAAmB,GAA8C,CAC5E,IAAM,EAAS,GAAe,CAAG,EAC3B,EAAQ,IAAS,EAAI,GAAG,EACxB,EAAY,EAAO,eAAiB,EAAO,WAAa,KACxD,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAc,EAAO,iBAAmB,EAAO,aAAe,KAEpE,MAAO,CACL,MAAO,EAAM,MACb,SAAU,EAAM,KAChB,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,OAAO,EACpB,GAAU,MAAO,EAAI,GAAG,EACxB,GAAU,OAAQ,EAAM,IAAI,EAC5B,GAAU,WAAY,GAAc,CAAS,CAAC,EAC9C,GAAU,kBAAmB,GAAc,CAAQ,CAAC,EACpD,GAAU,mBAAoB,GAAc,CAAW,CAAC,CAC1D,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,MAAM,GAAG,EAAM,KAAK,GAAG,EAAI,MAChD,UAAW,EAAI,GACjB,CACF,EAEa,IAA6B,GAAqC,CAC7E,IAAM,GAAkB,EAAI,kBAAoB,IAAI,KAAK,EACnD,GAAgB,EAAI,gBAAkB,IAAI,KAAK,EAC/C,GAAqB,EAAI,qBAAuB,IAAI,KAAK,GAAK,GAAkB,EAChF,EAAY,EAAI,sBAAsB,QAAU,EAChD,EAAS,EACX,UACA,EAAI,8BAAgC,GAClC,WACA,EACE,cACA,SACF,EAAQ,GAAqB,YAC7B,EAAW,EACb,GAAG,EAAO,KAAK,GAAgB,OAAO,CAAS,EAAE,QAAQ,IAAc,EAAI,GAAK,MAChF,EAEJ,MAAO,CACL,QACA,WACA,MAAO,EACH,SACA,IAAW,WACT,SACA,EACE,OACA,QACR,KAAM,GACN,QAAS,GACP,GAAa,gBAAgB,EAC7B,GAAU,uBAAwB,CAAK,EACvC,GAAU,SAAU,CAAM,EAC1B,GAAU,UAAW,GAAkB,GAAG,EAC1C,GAAU,cAAe,GAAgB,GAAG,EAC5C,GAAU,SAAU,GAAW,EAAI,oBAAoB,CAAC,EACxD,GAAU,sBAAuB,EAAI,8BAAgC,GAAQ,MAAQ,OAAO,CAC9F,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,EAAS,GAAG,GAAW,EAAI,oBAAoB,IACvE,UAAW,GAAG,EAAM,GAAG,GACzB,CACF,EAEM,IACJ,GACuD,CACvD,IAAM,EAAa,EAAO,KAAK,EAAE,YAAY,EAe7C,OAbI,IAAe,UAAkB,CAAE,MAAO,aAAc,MAAO,OAAQ,KAAM,EAAQ,EAErF,IAAe,UAAkB,CAAE,MAAO,WAAY,MAAO,UAAW,KAAM,EAAa,EAE3F,IAAe,SACV,CAAE,MAAO,iBAAkB,MAAO,MAAO,KAAM,EAAsB,EAE1E,IAAe,UACV,CAAE,MAAO,eAAgB,MAAO,QAAS,KAAM,EAAe,EAEnE,IAAe,UACV,CAAE,MAAO,aAAc,MAAO,QAAS,KAAM,EAAgB,EAE/D,CAAE,MAAO,GAAU,YAAa,MAAO,QAAS,KAAM,EAAsB,CACrF,EAEM,IAAgB,GAAyC,CAC7D,IAAM,GAAc,GAAS,IAAI,KAAK,EAItC,OAFK,EAEE,EAAW,OAAS,GAAK,GAAG,EAAW,MAAM,EAAG,EAAE,EAAE,GAAK,EAFxC,IAG1B,EAEa,GAAmB,GAA8C,CAC5E,IAAM,EAAS,GAAe,CAAG,EAC3B,EAAa,OAAO,EAAO,aAAe,EAAO,YAAc,SAAS,EACxE,EAAa,KAAK,IAAI,EAAG,OAAO,EAAO,aAAe,EAAO,YAAc,CAAC,CAAC,EAC7E,EAAY,EAAO,YAAc,EAAO,WAAa,KACrD,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAa,IAAqB,CAAU,EAC5C,EAAa,EAAW,KAAK,EAAE,YAAY,EAC3C,EACJ,EAAa,EACT,GAAG,GAAgB,OAAO,CAAU,EAAE,UAAU,IAAe,EAAI,GAAK,MACxE,KACA,EACJ,IAAe,SACV,GAAc,IAAa,CAAS,GAAK,SAC1C,IAAe,UACb,QACA,IAAe,UACb,SACA,IAAe,UACb,UACA,IAAe,UACb,eACA,YAEd,MAAO,CACL,GAAG,EACH,WACA,QAAS,GACP,GAAa,MAAM,EACnB,GAAU,SAAU,EAAW,KAAK,EACpC,GAAU,eAAgB,GAAc,CAAQ,CAAC,EACjD,GAAU,gBAAiB,GAAc,CAAQ,CAAC,EAClD,GAAU,WAAY,EAAa,EAAI,GAAgB,OAAO,CAAU,EAAI,GAAG,EAC/E,GAAU,SAAU,GAAa,GAAG,CACtC,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAW,MAAM,GAAG,EAAS,GAAG,GAAa,KAC5D,UAAW,CACb,CACF,EAEa,GAAwB,GAA8C,CACjF,IAAM,EAAS,GAAe,CAAG,EAC3B,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAY,EAAO,eAAiB,EAAO,WAAa,KACxD,EAAW,EAAO,cAAgB,EAAO,UAAY,KACrD,EAAQ,EAAY,GAAgB,CAAQ,GAAK,eAAkB,aACnE,EAAW,EACb,YAAY,GAAgB,CAAQ,GAAK,YACzC,EACE,YAAY,GAAgB,CAAS,GAAK,cAC1C,YAEN,MAAO,CACL,QACA,WACA,MAAO,EAAW,UAAY,EAAW,OAAS,QAClD,KAAM,GACN,QAAS,GACP,GAAa,YAAY,EACzB,GAAU,eAAgB,GAAc,CAAQ,CAAC,EACjD,GAAU,gBAAiB,GAAc,CAAQ,CAAC,EAClD,GAAU,WAAY,GAAc,CAAS,CAAC,EAC9C,GAAU,kBAAmB,GAAc,CAAQ,CAAC,CACtD,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,GAAY,GAAY,GAAa,EAClD,CACF,EAEa,IAAoB,GAC3B,IAAU,cAAsB,UAEhC,IAAU,UAAkB,QAEzB,eAGH,IAAuB,GACvB,EAAO,QAAU,cACZ,EAAO,eAAiB,WAAW,EAAO,iBAAmB,EAAO,OAEzE,EAAO,QAAU,UAAkB,EAAO,QAAU,YAEjD,EAAO,QAAU,eAGb,KACX,EACA,EACA,IACqB,CACrB,GAAI,CAAC,EAAQ,CACX,IAAM,EAAS,EACX,uCAAuC,IACvC,8CAEJ,MAAO,CACL,MAAO,YACP,SAAU,eACV,MAAO,QACP,KAAM,GACN,QAAS,GAAiB,GAAa,SAAS,EAAG,GAAS,CAAM,CAAC,EACnE,YAAa,GACb,iBAAkB,GAClB,WAAY,aAAa,EAAI,UAAY,KACzC,UAAW,EACb,CACF,CAEA,IAAM,EAAQ,IAAiB,EAAO,KAAK,EACrC,EAAW,IAAoB,CAAM,EAE3C,MAAO,CACL,QACA,WACA,MAAO,EAAO,QAAU,cAAgB,OAAS,EAAO,QAAU,UAAY,OAAS,SACvF,KACE,EAAO,QAAU,cACb,GACA,EAAO,QAAU,UACf,GACA,GACR,QAAS,GACP,GAAa,kBAAkB,EAC/B,GAAU,QAAS,CAAK,EACxB,GAAU,UAAW,EAAO,MAAM,EAClC,GAAU,eAAgB,EAAO,iBAAmB,EAAO,SAAS,EACpE,GAAU,UAAW,EAAO,UAAU,EACtC,GAAU,eAAgB,EAAO,cAAc,CACjD,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,EAAO,KACpB,CACF,EAEa,IAAgB,IAAoB,CAC/C,QAAS,GAAgB,CAAG,EAC5B,kBAAmB,IAA0B,CAAG,EAChD,QAAS,GAAgB,CAAG,EAC5B,aAAc,GAAqB,CAAG,CACxC,GAEa,IAA0B,GAKjC,CACJ,IAAM,EAAkB,CACtB,GAAI,EAAM,GACV,SAAU,EAAM,UAAY,KAC5B,IAAK,EAAM,IACX,UAAW,EAAM,UACjB,SAAU,EAAM,UAChB,YAAa,KACb,cAAe,eACf,eAAgB,oBAChB,mBAAoB,CAAC,EACrB,0BAA2B,GAC3B,kBAAmB,GACnB,WAAY,UACZ,SAAU,KACV,SAAU,EAAM,UAChB,UAAW,KACX,WAAY,EACZ,aAAc,GACd,QAAS,CACP,MAAO,GACP,MAAO,OACP,WAAY,GACZ,UAAW,EACb,EACA,kBAAmB,CACjB,MAAO,GACP,MAAO,OACP,WAAY,GACZ,UAAW,EACb,EACA,QAAS,CACP,MAAO,GACP,MAAO,OACP,WAAY,GACZ,UAAW,EACb,EACA,aAAc,CACZ,MAAO,GACP,MAAO,OACP,WAAY,GACZ,UAAW,EACb,CACF,EAEA,MAAO,CACL,QAAS,GAAgB,CAAO,EAChC,kBAAmB,CACjB,MAAO,eACP,SAAU,oBACV,MAAO,QACP,KAAM,GACN,QAAS,GACP,GAAa,gBAAgB,EAC7B,GACE,yGACF,CACF,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,iCACZ,UAAW,cACb,EACA,QAAS,GAAgB,CAAO,EAChC,aAAc,GAAqB,CAAO,CAC5C,CACF,kBCraA,aAqBQ,EAAM,YAAgB,SAAQ,mBAAkB,UAAY,IAAI,EAChE,EAAQ,MAAY,IAAgB,QAAM,CAAM,wBAChD,EAAS,qBAAoD,KAAO,EAAE,yBAIzE,GAAW,oCAEX,GAAgB,0BAAU,4BAE1B,GAAgB,sBAAM,CAAQ,YAE9B,GAAgB,0BAAU,kBAE1B,GAAgB,0BAAU,8CAE1B,CAAS,6BAXF,KAAO,OAAM,cAER,KAAO,iBAAgB,gBAEvB,KAAO,QAAO,gBAEd,KAAO,OAAM,gBAEb,KAAO,YAAW,2BAV3B,CCnBR,IAAa,IAAmB,GAC9B,IAAS,WACL,CAAC,iBAAkB,QAAS,OAAQ,WAAW,EAC/C,CAAC,iBAAkB,OAAQ,WAAW,EAE/B,KACX,EACA,IACgB,CAChB,IAAM,EAAoB,CACxB,CACE,GAAI,OACJ,MAAO,QACP,UAAW,GACX,QAAS,4DACT,SAAU,GACV,QAAS,MACT,SAAU,OACV,aAAe,GAAS,EAAe,QAAQ,SACjD,EACA,CACE,GAAI,iBACJ,MAAO,iBACP,QAAS,mDACT,aAAe,GAAS,EAAe,kBAAkB,SAC3D,CACF,EAmBA,OAjBI,IAAS,YACX,EAAK,KAAK,CACR,GAAI,QACJ,MAAO,UACP,QAAS,gEACT,SAAU,GACV,QAAS,QACT,SAAU,OACV,aAAe,GAAQ,CACrB,IAAM,EAAW,EAGjB,OAFe,EAAS,SAAW,EAAW,EAAS,UAAY,OAEpD,OAAS,EAC1B,CACF,CAAC,EAGI,CACL,GAAG,EACH,CACE,GAAI,OACJ,MAAO,OACP,QAAS,4DACT,SAAU,GACV,QAAS,cACT,SAAU,OACV,aAAe,GAAS,EAAe,QAAQ,SACjD,EACA,CACE,GAAI,YACJ,MAAO,aACP,QAAS,uDACT,SAAU,GACV,QAAS,eACT,SAAU,OACV,eAAgB,OAChB,aAAe,GAAS,EAAe,aAAa,SACtD,CACF,CACF,ECpEM,IAA2B,IAAI,IAAI,CAAC,UAAW,SAAS,CAAC,EAElD,IAA6B,GACxC,EAAK,KAAM,GAAQ,IAAyB,KAAK,EAAI,YAAc,IAAI,KAAK,EAAE,YAAY,CAAC,CAAC,EAIjF,IAAe,GAA2B,CACrD,IAAM,EAAO,IAAa,CAAG,EACvB,EACJ,EAAI,qBAAuB,EAAI,kBAAoB,EAAI,gBAAkB,YAE3E,MAAO,CACL,GAAI,EAAI,GACR,SAAU,EAAI,UACd,IAAK,EAAI,IACT,UAAW,EAAI,cACf,SAAU,EAAI,aACd,YAAa,EAAI,gBACjB,gBACA,eAAgB,EAAI,iBAChB,kBACA,EAAI,eACF,cACA,YACN,mBAAoB,EAAI,sBAAwB,CAAC,EACjD,0BAA2B,EAAI,4BAC/B,kBAAmB,EAAQ,EAAI,iBAC/B,WAAY,EAAI,YAChB,SAAU,EAAI,aACd,SAAU,EAAI,aACd,UAAW,EAAI,WACf,WAAY,EAAI,YAChB,aAAc,GACd,GAAG,CACL,CACF,EAEa,IAAsB,GAKrB,CACZ,IAAM,EAAO,IAAuB,CAAK,EAEzC,MAAO,CACL,GAAI,EAAM,GACV,SAAU,EAAM,UAAY,KAC5B,IAAK,EAAM,IACX,UAAW,EAAM,UACjB,SAAU,EAAM,UAChB,YAAa,KACb,cAAe,eACf,eAAgB,oBAChB,mBAAoB,CAAC,EACrB,0BAA2B,GAC3B,kBAAmB,GACnB,WAAY,UACZ,SAAU,KACV,SAAU,EAAM,UAChB,UAAW,KACX,WAAY,EACZ,aAAc,GACd,GAAG,CACL,CACF,EAEa,IACX,EACA,EACA,EACA,EACA,IACiB,CACjB,IAAM,EAAS,EAAI,SAAW,EAAW,EAAI,UAAY,KACnD,EAAQ,GAAQ,OAAS,KACzB,EAAkB,OAAO,GAAQ,YAAc,GAAa,EAAE,EAAE,KAAK,GAAK,KAC1E,EACJ,OAAO,GAAQ,iBAAmB,GAAQ,WAAa,GAAkB,EAAE,EAAE,KAAK,GAAK,KA6BzF,OA3BI,IAAU,eACL,CACL,UAAW,KACX,eAAgB,EAChB,cAAe,KACf,MAAO,cACT,EAGE,IAAU,cACL,CACL,UAAW,EACX,eAAgB,EAChB,eAAgB,GAAQ,gBAAkB,IAAI,KAAK,GAAK,EACxD,MAAO,aACT,EAGE,IAAU,UACL,CACL,UAAW,EACX,eAAgB,EAChB,cAAe,KACf,MAAO,SACT,EAGK,CACL,UAAW,EAAuB,KAAO,EACzC,eAAgB,EAChB,gBACA,MAAO,EAAuB,eAAiB,SACjD,CACF,oUCtHA,8DAsCI,EAAc,uBAAG,IAAI,EACrB,EAAa,sBAAG,IAAI,EACpB,EAAQ,iBAAG,IAAI,EACf,EAAS,kBAAG,EAAI,EAChB,EAAa,sBAAG,EAAI,EACpB,EAAY,qBAAG,EAAK,EAoBlB,EAAoC,KACpC,EAAoB,EAAO,EAAK,EAChC,EAAgB,EAAO,EAAK,EAC5B,EAAa,EAAsB,IAAI,EACrC,EAAe,IAAO,KAAK,aAAa,OAAO,EACjD,EAAa,EAA0B,SAAS,EAC9C,EAAiB,EACnB,MAAO,UAAW,MAAO,SAAS,GAClC,MAAO,WAAY,MAAO,aAAa,GAErC,EAAc,SACL,EAAQ,EAAG,mBAAqB,iBAE/B,IAAK,EAAgB,OAAM,EAAC,CAAU,GAAI,CAAC,IAC1D,EACK,EAAY,0BACI,EAAc,gBAAiB,SAAQ,GAAI,EAAa,GAAI,MAAK,GAAI,EAAQ,GAAI,OAAK,EAGtG,EAAa,EACf,KAAM,aAAc,MAAO,SAAS,GACpC,KAAM,aAAc,MAAO,SAAS,GACpC,KAAM,WAAY,MAAO,SAAS,GAClC,KAAM,iBAAkB,MAAO,QAAQ,GACvC,KAAM,eAAgB,MAAO,SAAS,GAEtC,EAAe,EAAM,GAAC,EAAc,IAAK,GAAU,EAAM,KAAK,IAE9D,EAAc,EAAO,EAAE,EACrB,EAAU,QAAY,CAAW,EAAC,KAAI,GACtC,EAAQ,SACT,EAAc,GAAI,GAAE,gBAAiB,GAAE,GAAI,EAAa,GAAI,GAAE,GAAI,EAAQ,GAAI,GAAE,KAAI,CAAU,OAAI,CAAU,OAAI,CAAY,EAAC,KAAK,GAAG,MAAM,EAAoB,EAAC,UAAQ,IAAQ,IAAK,GAAU,EAAM,EAAE,EAAE,KAAK,GAAG,KAGhN,EAAS,MACN,EAAQ,EAAG,IAAyB,EAAQ,GAAI,IACxD,EACK,EAAU,MACd,EAAQ,IAAkB,EAAY,MAAM,CAAa,KAAI,CAAiB,IAG5E,EAAa,EAAM,QACnB,EAAoB,EAAsB,IAAI,EAC9C,EAAkB,EAChB,GAAO,MAAY,IAAoB,EAAC,CAAU,IAAE,CAAU,IAC9D,GAAY,MAAY,IAAe,EAAC,CAAU,IAElD,GAAW,KAAU,IAGrB,KACE,EAAG,EAAK,IACd,EAAoB,UAEd,EAAqC,GAEvC,EAAS,KAET,KACI,GAAwB,EAAQ,gBAAkB,IAAI,KAAI,SACnD,KACL,EAAI,MAAS,GAAY,CAC7B,eAAgB,GAAwB,OACxC,UACA,mBAES,KAAU,EAAK,MACxB,EAAQ,EAAO,IAAM,KAGnB,EAAK,MAAM,OAAS,MAExB,GAAU,WAEC,EAAK,OAAU,UAAY,GAAU,EAAK,QAEjD,EAAS,IAAI,KACnB,IAEI,IAAQ,EAAe,SAE3B,EAAa,KACf,OAAS,EAAO,IACV,IAAQ,EAAe,SAE3B,EAAoB,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,QACzE,EAAU,MACZ,CACF,EAEA,OAAc,KACN,GAAwB,EAAc,GAAI,IAAI,KAAI,EAClD,GAAe,aAAiB,IAAI,KAAI,MAEzC,GAAoB,CAAK,EAAiB,GAC7C,EAAU,SACV,EAAoB,YAGtB,CAEK,GAAW,CACd,UAAW,GAAmB,KAC9B,eAAgB,GAAwB,MAE5C,CAAC,MAEK,EAAwB,OAAY,QAAO,SAAQ,UAAW,KAC7D,EAAQ,SAAW,KAAI,GAAM,MAAO,CAAC,MAEpC,EAAc,OAAU,GAAU,SAAW,EAAQ,GACrD,EAAe,OAAU,GAAW,SAAW,EAAS,EACxD,GAAwB,EAAoB,EAAC,UAAQ,IACxD,OAAQ,GAAU,EAAM,YAAS,aACjC,OAAQ,GAAK,CAAM,EAAQ,GAAI,EAAM,WAAa,EAAQ,GAC1D,OAAQ,KACF,CAAU,EAER,EAAM,IAAI,YAAW,EAAG,SAAQ,EAAC,CAAU,EAAC,YAAW,GAFtC,EAGzB,EACA,OAAQ,KACH,CAAU,IAAK,aAEd,CAAY,EAAC,SAEX,CAAY,EAAC,SAAS,SAAS,EAFL,GAFK,EAKvC,EACG,EAAkB,EAAqB,OACvC,EACJ,EAAkB,EAAI,KAAK,IAAI,EAAG,EAAkB,CAAe,EAAI,EACnE,EAAM,MAAS,GAAgB,EAAQ,GAC3C,MAAO,EACP,OAAQ,EACR,OAAM,EAAE,CAAU,GAAI,OACtB,SAAQ,EACN,CAAU,IAAK,YAAU,EACzB,CAAY,EAAC,QAAM,EACnB,CAAY,EAAC,OAAS,EAAc,SAChC,GACA,OACN,OAAQ,GAAM,KAAO,OACrB,QAAS,GAAM,KAAO,SAElB,EAAc,EAAO,MAAM,IAAI,GAAW,EAC1C,EAAY,IAAO,IAAI,EAAY,IAAK,GAAQ,GAAqB,EAAI,GAAG,IAC5E,EACJ,IAAoB,EAChB,EACG,OAAQ,GAAU,KACX,EAAM,GAAqB,EAAM,GAAG,SAEtC,EAAa,IAAI,CAAG,GACtB,IAA6B,EAAM,EAAE,EAE9B,IAGF,EACT,CAAC,EACA,IAAK,GAAU,IAAmB,CAAK,MAE1C,EAAe,IAAoB,EAAC,IAAO,EAAU,GAAK,CAAW,EAAI,SAO7E,KALA,IAAoB,GAAK,EAAW,QAAU,EAC1C,GAAc,EAAY,EAAE,EAAO,EAAE,CAAI,EAAE,MAAM,EAAG,CAAc,EAClE,EAAa,MAAM,EAAG,CAAc,EAIxC,OACG,EAAO,OAAS,EAAY,SAC5B,IAAoB,EAAI,EAAW,OAAS,GAEnD,EAEM,GAAmB,GAAmB,CAC1C,EAAe,yBACM,CAAE,CACzB,EAEM,GAAsB,GAAoB,GAC9C,EAAe,GAAO,OAAS,EAAK,OACpC,IAAY,CACd,EAEM,GAAqB,GAAgB,KACnC,EAAU,GAAoB,EAAG,EAAE,CAAU,cAAa,EAAc,EAAE,EAAa,IAExF,EAAQ,WAAS,CAAK,EAAQ,gBAEnC,GAA4B,CAC1B,UAAW,EAAQ,UACnB,eAAgB,EAAQ,eACxB,cAAe,EAAQ,cACvB,MAAO,EAAQ,MACf,OAAQ,EAAI,IACZ,UAAW,EAAI,IACf,SAAU,YAEd,MAGD,GAAG,WAAH,EAAG,iCAEM,CAAS,MACZ,yBACM,CAAS,cACF,qBACQ,IAAY,iBACf,GAAY,GAC3B,EAAgB,KAClB,yBARD,CAAS,iCAaX,GAAe,cAAa,IAAK,WAAgB,IAAY,gBAD3D,CAAU,0BAId,GAAY,qBAAmB,wBAAa,CAAc,wCAC/C,cAAa,sHAIpB,gCACU,wBACF,CAAU,YACP,YACC,GAAU,GAEnB,EADU,GAAM,GAAK,EAAI,CAAU,IAAG,YACzB,IAAS,WAAa,WAAa,UAAQ,IACxD,IAAY,CACd,kGAKL,GAAG,QACD,GAAG,EADL,EAAG,OACD,EAAG,EACD,yEAImB,6DADlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,+BAKtB,kDAGW,wBAED,oBACS,YACP,GAAU,KACb,EAAU,GAAuB,OACvC,GAAoB,GAAQ,OAAK,EAAiB,CAAY,EAChE,kEANA,OAAU,UAAE,CAAY,OAAxB,MAAU,KAAE,EAAY,qBALvB,CAAU,IAAK,YAAU,UAR/B,EAAG,IADL,EAAG,EA2BH,KA3BA,GAAG,CA2BH,eAEG,SAAU,EAAK,IACb,IACI,GAAQ,KACF,EAA0E,GAE1E,EAAO,EAEP,EAAe,GACnB,EAAI,EACJ,CAAU,cAEV,EAAc,EACd,EAAa,UAGf,EAAQ,KAAI,GACP,IAAa,CACd,IAAK,EACS,eACd,UAAW,EAAS,EACpB,cAAe,EAAa,EAC5B,OAAM,SACN,SAAQ,WACR,aAAc,MAIX,CACT,GAAG,CAAG,OACJ,UAAW,WAAY,UAAS,CAAG,UAAU,4BAGpD,EAAO,WACC,wDAGR,EAAY,iBACE,cACF,mDAEM,YACT,sBACU,6BACR,CAAY,6BACZ,CAAQ,gBACL,GAAW,GACxB,EAAU,OAAU,GAAQ,OAAU,SAAW,EAAO,MAAS,GAAQ,MAAM,QAAU,EAAC,MAC1F,EAAoB,IAA2B,GAAQ,MAAI,OAC7D,EAEU,MAAK,QACT,IAAH,CAAG,GAGI,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAY,oBAAM,EAAG,uBAAa,EAAM,6BAAG,CAAU,oCAAG,CAAiB,MAGlE,WAAS,WAAG,MAAG,MAAH,IACnB,GAAW,oBAAM,EAAG,MAGb,cAAY,WAAG,MAAG,MAAH,QACtB,EAAI,UAAJ,CAAI,IAAJ,CAAI,eACD,EAAG,EAAY,kBAAkB,OAAK;YACpC,EAAG,EAAY,QAAQ,OAAK;YAC5B,EAAG,EAAY,aAAa,OAAK,WAHtC,CAAI,GAOG,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAY,oBAAM,EAAG,uBAAa,EAAM,6BAAG,CAAU,oCAAG,CAAiB,oFAvI/E,EAAG,MAAH,EAAG,SAFI,6ECvQR,aA6BoB,EAAsB,uBAAG,IAAI,EAClC,EAAiB,kBAAG,IAAI,EACpB,EAAmB,sBAAG,IAAI,EACzC,EAAI,aAAG,SAAS,EAChB,EAAS,kBAAG,EAAI,EAChB,EAAa,sBAAG,EAAI,EAUhB,EAAS,MAAY,EAAiB,GAAI,IAAI,EAC9C,EAAc,MAAY,EAAsB,GAAI,IAAI,EACxD,EAAU,WAAe,CAAc,GAAI,GAAE,GAAI,EAAmB,GAAI,IAAE,EAE5E,EAA0C,KAC1C,EAAuC,KAErC,EAAoB,GAAwB,CAChD,EAAqB,CACvB,EAEM,EAAiB,GAAwB,CAC7C,EAAkB,CACpB,EAEM,EAAoB,GAAsB,KACxC,EAAS,GAAuB,CACpC,cAAe,EAAmB,GAAI,OACtC,OAAM,qBAAuB,mBAAmB,EAAO,EAAE,MAGvD,GACF,GAAY,EAAM,CAAI,cAAe,EAAI,EAE7C,EAEM,MAAgC,KAC/B,EAAS,EAAE,CACd,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,OAEK,CAAc,EAAE,CACnB,GAAe,CAAG,MAAO,QAAS,KAAM,kDAG1C,CAEA,GAAW,CACT,MAAO,oBACP,QAAS,GACT,WAAU,CACR,eAAc,EAAd,CAAc,EACd,SAAU,EACV,aAAgB,GAAa,GAE/B,kBAAmB,IAEvB,EAEM,EAAoB,GAAsB,CACzC,GAAQ,QAEb,GAAW,CACT,MAAK,YAAc,EAAO,SAC1B,QAAS,GACT,WAAU,CACR,eAAgB,EAAO,OAAO,iBAAmB,EAAO,OAAO,WAAS,EAAI,CAAc,EAC1F,cAAe,EAAO,OACtB,SAAU,GACV,kBAAmB,EAAS,EAC5B,eAAgB,EAAS,EACzB,YAAa,YACb,MAAK,kBAAoB,EAAO,OAAO,OAAM,MAAS,EAAO,OAAO,SAAW,KAC/E,eAAiB,GACf,EAAyB,EAAS,EAAO,MAAM,EACjD,aAAgB,GAAa,GAE/B,kBAAmB,IAEvB,EAEM,EAAkB,KAAU,IAAiC,CAC5D,KAAS,KAEV,KACI,EAAM,MAAS,IAAa,CAAO,EACnC,EAAU,IAAyB,EAAO,QAAU,EAAQ,MAAM,EAEpE,IAAY,EAAO,YAAc,EAAQ,aAC3C,IAAyB,CACvB,UAAW,EAAO,YAAc,EAAQ,YAAc,GACtD,cAAe,EAAmB,GAAI,EAAQ,gBAAkB,KAChE,SAAU,EAAO,GACjB,IAAK,IAIT,GAAe,CAAG,MAAO,UAAW,KAAI,UAAY,EAAO,OAAM,uBACjE,GAAa,EACb,IAAkB,EAClB,IAAe,CACjB,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,uCACV,iBAAkB,IAEtB,CACF,EAEM,EAAwB,MAC5B,EACA,IACG,KACE,EAAS,QACZ,GAAe,CACb,MAAO,QACP,KAAM,iEAEE,MAAM,2BAA2B,KAGzC,OACI,IAAa,EAAO,GAAI,CAAO,EACrC,GAAe,CAAG,MAAO,UAAW,KAAM,8CAC1C,GAAa,EACb,IAAkB,EAClB,IAAe,CACjB,OAAS,EAAO,OACd,GAAe,EAAK,CAClB,SAAU,2CACV,iBAAkB,KAEd,CACR,CACF,EAEM,EAAc,KAAU,IAAsB,KAC7C,EAAS,EAAE,CACd,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,GAAiB,EAAO,GAAI,EAAI,EACtC,GAAe,CAAG,MAAO,OAAQ,KAAM,4BAA4B,GACnE,IAAkB,EAClB,IAAe,CACjB,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,2CACV,iBAAkB,IAEtB,CACF,EAEM,EAAkB,KAAU,IAAsB,KACjD,EAAS,EAAE,CACd,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,IAEF,SAAQ,CACN,MAAO,iBACP,YAAa,yCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,iBACP,YACE,uFACF,YAAa,4BAGL,OACJ,IAAa,EAAO,EAAE,EAC5B,GAAe,CAAG,MAAO,UAAW,KAAM,wBAAwB,GAClE,IAAkB,EAClB,IAAe,CACjB,EAEJ,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,uCACV,iBAAkB,IAEtB,CACF,EAEM,EAAa,KAAU,IAAgB,KACtC,EAAS,EAAE,CACd,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,GAAe,EAAI,SAAU,EAAI,GAAE,CAAI,MAAO,EAAI,GACxD,GAAe,CAAG,MAAO,OAAQ,KAAM,qBAAqB,GAC5D,IAAe,CACjB,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,oCACV,iBAAkB,IAEtB,CACF,EAEM,EAAe,KAAU,IAAgB,KACxC,EAAS,EAAE,CACd,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,IAEF,SAAQ,CACN,MAAO,cACP,YAAa,sCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,cACP,YACE,oFACF,YAAa,yBAGL,OACJ,GAAU,EAAI,SAAU,EAAI,EAAE,EACpC,GAAe,CAAG,MAAO,UAAW,KAAM,qBAAqB,GAC/D,IAAe,CACjB,EAEJ,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,oCACV,iBAAkB,IAEtB,CACF,MAGD,EAAG,UAAH,CAAG,uDAGc,CAAU,MACX,gCACN,CAAS,iCACT,CAAc,8BACA,EAAmB,0BACjC,EAAS,YACA,aACE,WACF,SACF,WACE,qBACU,4CAIZ,CAAU,MACX,+BACN,CAAS,iCACT,CAAc,8BACA,EAAmB,0BACjC,EAAS,8BACT,EAAa,UACN,WACE,qBACU,sBAzBjB,EAAI,IAAK,UAAS,iCADtB,CAAc,YADtB,CAAG,UAAH,EAAG,4CAA6D,EAAI,UAApE,CAAG,KAFI,kBC5SR,KAKI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAS,kBAAG,EAAI,EAChB,EAAa,sBAAG,EAAI,EAIvB,mCACE,EAAc,0BACd,EAAS,8BACT,EAAa,yCAEb,EAAS,8BACT,EAAa,IARR,0YCXR,aAgBI,EAAK,cAAG,CAAC,EACT,EAAO,gBAAG,EAAK,EACf,EAAK,cAAG,IAAI,EACZ,EAAU,mBAAG,EAAE,EA6BX,EAAe,IAAO,KAAK,aAAa,OAAO,EACjD,EAAoC,EAAO,IAAI,EAC/C,EAAc,EAAM,QACpB,EAAgB,EAAO,EAAK,EAE1B,EAA2B,GAAmB,GAClD,EAAe,6BACM,CAAE,CACzB,EAEM,EAAoB,GAAiD,GACzE,EAAc,GAAQ,MAAI,wBACX,CAAM,CACvB,EAEM,EAAwB,GAA6B,KACnD,EAAO,UAAW,oBAEnB,EAEE,EAAK,KAAM,GAAQ,EAAQ,CAAG,GAFhB,EAGvB,EACM,EAAY,gBAAoB,cAAc,KAAI,GAAM,EAAE,EAC1D,EAAS,gBAAoB,mBAAqB,CAAC,EACnD,EAAgB,OAAa,EAAK,GAAI,KAAO,GAAC,EAAI,CAAW,EAAC,SAAW,CAAC,EAC1E,EAAU,QACd,CAAS,EAAG,GACV,EAAO,EAAC,CAAY,MACnB,CAAgB,MAAM,CAAa,GAAI,EAAoB,EAAC,CAAW,SAI7E,EAAG,UAAH,CAAG,gCAEU,CAAY,6BAGE,qBAAuB,GAAG,EAFzC,yBACA,CAAY,oDAEG,CAAY,qBACf,GAAY,GAC3B,EAAgB,KAClB,yBARC,CAAY,6BAaZ,GAAe,6BAAa,CAAS,gBAAgB,CAAY,mBADjE,CAAU,4BAUD,EAAa,QAClB,EAAG,WAAH,8BAAG,MAAH,CAAG,wBANM,MAAK,IAAK,EAAgB,OAAO,EAAK,GAAI,CAAC,MAD5D,gDAEiB,0CACO,uDACD,gBAEV,oEAQT,EAAG,WAAH,4BAAG,MAAH,CAAG,2DAMH,EAAG,UAAH,EAAG,MAAH,CAAG,YAA6D,EAAK,QAArE,CAAG,WADH,EAAK,4BAsBI,EAAK,mFAIN,EAAG,UAAH,EAAG,MAAH,CAAG,sBAAwB,cAAgB,8BAA8B,OAAzE,CAAG,iDAIF,GAAS,EAAC,EAAuB,qEAEH,CAAK,qDAKnC,GAAS,EAAC,EAAiB,qEAEG,CAAK,qDAInC,GAAY,EAAC,EAAiB,wEAEG,CAAK,wDAItC,GAAS,EAAC,EAAuB,qEAEH,CAAK,uEAzC1B,eAAiB,CAAC,oBACpB,aAAe,EAAO,gCAEf,oBAAsB,UAAU,EAT3D,qCACgB,wCACA,uEAGK,4KAKH,mCACD,6BACE,oCACA,sCACnB,EAAU,wBACV,EAAO,gBACM,EAEA,QAQA,YAOA,YAMA,eAMA,0FArFjB,CAAG,MAAH,CAAG,KAFI,iBC9ER,aAOW,EAAS,cAAG,EAAE,+BAQA,EAAS,IAAG,KAAI,iBAGzB,UAAY,MAAS,gBAEzB,MAAQ,MAAS,gBACb,UAAY,MAAS,gBACf,SAAO,MAAQ,WAAS,MAAQ,KAAK,gBACxC,aAAe,EAAK,gBACf,kBAAoB,EAAE,EAV7C,kEAGY,4DAEA,6KAMG,QAbR,0FCZR,aAOC,EAAG,MACC,KADJ,CACc,0BAAU,YADxB,CAAG,MAAH,CAAG,KAFI,wFCLR,aAOC,EAAG,MACC,KADJ,CACc,0BAAU,YADxB,CAAG,MAAH,CAAG,KAFI,wFCLR,aAOC,EAAG,MACC,KADJ,CACc,0BAAU,YADxB,CAAG,MAAH,CAAG,KAFI,wFCLR,aAOC,EAAG,MACC,KADJ,CACc,0BAAU,UADxB,CAAG,MAAH,CAAG,KAFI,iBCLR,aAiBQ,EAAQ,eAAmB,EAAE,yBAIhC,GAAU,oCAEV,IAAU,oCAEV,GAAU,oCAEV,IAAQ,wEAEG,GAAE,qBATb,CAAQ,IAAK,SAAQ,OAEhB,CAAQ,IAAK,SAAQ,SAErB,CAAQ,IAAK,SAAQ,SAErB,CAAQ,IAAK,OAAM,2BARrB,CCmCR,IAAM,GAAa,mBACb,GAAe,IAER,GAA8D,CACzE,CAAE,MAAO,SAAU,MAAO,aAAc,KAAM,GAAiB,MAAO,OAAQ,EAC9E,CAAE,MAAO,UAAW,MAAO,QAAS,KAAM,GAAS,MAAO,MAAO,EACjE,CAAE,MAAO,YAAa,MAAO,cAAe,KAAM,GAAc,MAAO,SAAU,EACjF,CAAE,MAAO,SAAU,MAAO,iBAAkB,KAAM,GAAuB,MAAO,MAAO,EACvF,CAAE,MAAO,UAAW,MAAO,eAAgB,KAAM,GAAoB,MAAO,QAAS,EACrF,CAAE,MAAO,YAAa,MAAO,cAAe,KAAM,GAAW,MAAO,QAAS,CAC/E,EAEa,IAAuB,GAAyB,IAAK,IAAW,CAC3E,KAAM,EAAM,MACZ,MAAO,EAAM,KACf,EAAE,EAEI,GAAgB,OAAO,YAC3B,GAAyB,IAAK,GAAU,CAAC,EAAM,MAAO,CAAK,CAAC,CAC9D,EAEM,GAAsC,CAC1C,iBAAkB,GAClB,kBAAmB,SACnB,cAAe,YACf,qBAAsB,SACxB,EAEM,GAA0F,CAC9F,IAAK,CAAE,MAAO,WAAY,MAAO,OAAQ,KAAM,EAAO,EACtD,KAAM,CAAE,MAAO,QAAS,MAAO,SAAU,KAAM,EAAuB,EACtE,OAAQ,CAAE,MAAO,MAAO,MAAO,UAAW,KAAM,EAAqB,EACrE,WAAY,CAAE,MAAO,aAAc,MAAO,OAAQ,KAAM,EAAuB,EAC/E,QAAS,CAAE,MAAO,YAAa,MAAO,OAAQ,KAAM,EAAyB,CAC/E,EAEM,IAAsE,CAC1E,IAAK,GAA6B,IAClC,IAAK,GAA6B,IAClC,QAAS,GAA6B,IACtC,QAAS,GAA6B,IACtC,aAAc,GAA6B,IAC3C,KAAM,GAA6B,KACnC,SAAU,GAA6B,KACvC,aAAc,GAA6B,KAC3C,OAAQ,GAA6B,OACrC,aAAc,GAA6B,OAC3C,IAAK,GAA6B,OAClC,WAAY,GAA6B,WACzC,gBAAiB,GAA6B,WAC9C,kBAAmB,GAA6B,UAClD,EAEM,IAA+D,CACnE,OAAQ,CAAE,MAAO,gBAAiB,MAAO,UAAW,KAAM,EAAqB,EAC/E,OAAQ,CAAE,MAAO,gBAAiB,MAAO,OAAQ,KAAM,EAAiB,EACxE,OAAQ,CAAE,MAAO,YAAa,MAAO,OAAQ,KAAM,EAAiB,EACpE,KAAM,CAAE,MAAO,kBAAmB,MAAO,OAAQ,KAAM,EAAQ,CACjE,EAEM,IAA2D,CAC/D,OAAQ,CAAE,MAAO,UAAW,KAAM,EAAkB,EACpD,SAAU,CAAE,MAAO,WAAY,KAAM,EAAwB,EAC7D,QAAS,CAAE,MAAO,cAAe,KAAM,EAAc,EACrD,MAAO,CAAE,MAAO,QAAS,KAAM,EAAU,EACzC,UAAW,CAAE,MAAO,YAAa,KAAM,EAAkB,EACzD,SAAU,CAAE,MAAO,WAAY,KAAM,EAAiB,EACtD,UAAW,CAAE,MAAO,WAAY,KAAM,EAAQ,EAC9C,OAAQ,CAAE,MAAO,SAAU,KAAM,EAAc,CACjD,EAEM,IAA2C,CAC/C,iCAAkC,oBAClC,2BAA4B,wBAC9B,EAEM,IAAa,EAAgB,EAAW,MAE1C,OAAO,GAAU,SACb,EAAM,KAAK,EACX,GAAU,KACR,GACA,OAAO,CAAK,EAAE,KAAK,IAEZ,EAGX,GAAgB,GACP,GAAU,EAAO,EAEvB,GAAQ,KAGX,GAAgB,GACpB,GAAU,EAAO,EAAE,EAAE,YAAY,EAAE,WAAW,IAAK,GAAG,EAElD,GAAc,GAClB,GAAU,EAAO,EAAE,EAChB,WAAW,IAAK,OAAO,EACvB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,QAAQ,EACxB,WAAW,IAAK,OAAO,EAEtB,GAAgB,GAAkC,CACtD,IAAM,EAAO,GAAa,CAAK,EAE/B,OAAO,EAAO,WAAW,GAAW,CAAI,EAAE,WAAa,IACzD,EAEM,IAAgB,EAAe,IAAkC,CACrE,IAAM,EAAO,GAAa,CAAK,EAE/B,OAAO,EAAO,YAAY,GAAW,CAAK,EAAE,MAAM,GAAW,CAAI,EAAE,SAAW,IAChF,EAEM,GAAgB,GACpB,EAAM,OAAO,OAAO,EAAE,KAAK,EAAE,EAEzB,IAAgB,GAAG,IAAqC,CAC5D,IAAK,IAAM,KAAS,EAAQ,CAC1B,IAAM,EAAO,GAAa,CAAK,EAE/B,GAAI,EAAM,OAAO,CACnB,CAEA,OAAO,IACT,EAEM,GAAa,GAAuC,CACxD,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAE7B,OAAO,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAI,KAAO,CACjD,EAEM,GAAkB,GAAkC,CACxD,IAAM,EAAS,GAAU,CAAK,EAI9B,OAFK,EAEE,EAAO,eAAe,QAAS,CACpC,IAAK,UACL,MAAO,UACP,KAAM,UACN,KAAM,UACN,OAAQ,SACV,CAAC,EARmB,EAStB,EAEM,GAAuB,GAAkC,CAC7D,IAAM,EAAS,GAAU,CAAK,EAI9B,OAFK,EAEE,EAAO,eAAe,QAAS,CACpC,IAAK,UACL,MAAO,UACP,KAAM,UACN,OAAQ,SACV,CAAC,EAPmB,EAQtB,EAEM,GAAa,GAAyC,CAC1D,IAAM,EAAS,GAAU,CAAK,EAE9B,OAAO,EAAS,EAAO,QAAQ,EAAI,IACrC,EAEM,KACJ,EACA,EACA,EAAY,IAAI,OACE,CAClB,IAAM,EAAQ,GAAU,CAAI,EAE5B,GAAI,IAAU,KAAM,OAAO,KAE3B,IAAM,EAAM,GAAU,CAAE,GAAK,EAAI,QAAQ,EACnC,EAAS,KAAK,IAAI,EAAG,EAAM,CAAK,EAChC,EAAe,KAAK,MAAM,EAAS,GAAI,EAE7C,GAAI,EAAe,EAAG,MAAO,UAE7B,GAAI,EAAe,GAAI,MAAO,GAAG,EAAa,OAE9C,IAAM,EAAe,KAAK,MAAM,EAAe,EAAE,EAEjD,GAAI,EAAe,GAAI,MAAO,GAAG,EAAa,OAE9C,IAAM,EAAQ,KAAK,MAAM,EAAe,EAAE,EACpC,EAAU,EAAe,GAE/B,OAAO,EAAU,GAAG,EAAM,QAAQ,EAAQ,OAAS,GAAG,EAAM,MAC9D,EAEM,GAAgB,GAAkC,CACtD,IAAM,EAAO,GAAU,EAAO,EAAE,EAIhC,OAFK,EAEE,EACJ,WAAW,IAAK,GAAG,EACnB,WAAW,IAAK,GAAG,EACnB,QAAQ,OAAQ,GAAG,EACnB,KAAK,EACL,QAAQ,KAAO,GAAS,EAAK,YAAY,CAAC,EAP3B,EAQpB,EAEM,IAAqB,GAAyC,CAClE,IAAM,EAAO,GAAa,CAAK,EAQ/B,OANK,EAES,IAAiB,KAIxB,EAAK,OAAS,GAAK,GAAG,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,EAAE,KAAO,GAN9C,IAOpB,EAEM,KACJ,EACA,IAKE,IAHiB,GAAa,EAAK,YAGL,IAC9B,GAA6B,EAAQ,sBAInC,IAAgB,GAIlB,IAHiB,GAAa,CAGR,IAAe,CACnC,MAAO,GAAa,CAAK,EACzB,MAAO,OACP,yOACF,EAIE,IAAc,GAGX,IAFY,GAAa,CAEL,IAAe,CAAE,MAAO,GAAa,CAAK,EAAG,wtCAAoB,EAGxF,GAAgB,GAGb,WAFY,OAAO,SAAS,CAAO,GAAK,EAAU,EAAI,EAAU,IAKnE,GAAmB,GACvB,EACG,IAAK,GAAS,GAAU,EAAM,EAAE,CAAC,EACjC,OAAO,OAAO,EACd,KAAK,GAAG,EACR,YAAY,EAEJ,KAAuB,EAAwC,CAAC,IAAmB,CAC9F,IAAM,EAAW,CAAE,GAAG,GAAgB,GAAG,CAAQ,EAC3C,EAAa,EAAS,iBAAmB,KAAK,EAAS,oBAAsB,GAEnF,MAAO,CACL,CACE,GAAI,SACJ,MAAO,SACP,QAAS,GAAG,EAAS,gBAAgB,EAAW,uDAChD,UAAW,GACX,aAAe,GAAkB,EAAwB,OAAO,SAClE,EACA,CACE,GAAI,SACJ,MAAO,SACP,QAAS,kDACT,MAAO,QACP,aAAe,GAAkB,EAAwB,OAAO,SAClE,EACA,CACE,GAAI,SACJ,MAAO,WACP,QAAS,yDACT,MAAO,QACP,aAAe,GAAkB,EAAwB,OAAO,SAClE,EACA,CACE,GAAI,OACJ,MAAO,OACP,QAAS,wEACT,MAAO,QACP,aAAe,GAAkB,EAAwB,KAAK,SAChE,CACF,CACF,EAEa,KACX,EACA,IACoB,CACpB,IAAM,EAAe,IAAwB,EAAM,CAAO,EACpD,EAAQ,GAAa,EAAK,cAAe,EAAK,WAAW,GAAK,GAE9D,GADS,EAAQ,iBAAmB,GAAa,EAAK,iBAAiB,EAAI,OACtD,EAAa,MAClC,EAAU,GAAa,CAC3B,GAAa,CAAK,EAClB,GAAa,MAAO,EAAa,KAAK,EACtC,GAAa,EAAQ,cAAe,EAAK,aAAa,EACtD,GAAa,YAAa,EAAK,WAAW,EAC1C,EAAQ,iBACJ,GAAa,EAAQ,kBAAmB,EAAK,iBAAiB,EAC9D,KACJ,GAAa,UAAW,EAAK,KAAK,EAClC,GAAa,gBAAiB,EAAK,YAAY,CACjD,CAAC,EAED,MAAO,CACL,GAAI,GAAG,EAAK,GAAG,SACf,QACA,WACA,MAAO,EAAa,MACpB,KAAM,EAAa,KACnB,UACA,YAAa,GACb,iBAAkB,GAClB,UAAW,CAAC,EAAO,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EACtD,WAAY,GAAgB,CAAC,EAAO,EAAU,EAAK,YAAa,EAAK,aAAc,EAAK,KAAK,CAAC,EAC9F,UAAW,EAAM,YAAY,CAC/B,CACF,EAEa,IAAkB,GAAyC,CACtE,IAAM,EAAY,IAAa,EAAK,SAAS,EACvC,EAAU,IAAW,EAAK,OAAO,EACjC,EAAU,GAAa,CAC3B,GAAa,EAAU,KAAK,EAC5B,GAAa,UAAW,EAAU,KAAK,EACvC,GAAa,WAAY,EAAQ,KAAK,EACtC,GAAa,kBAAmB,EAAK,SAAS,EAC9C,GAAa,mBAAoB,EAAK,OAAO,EAC7C,GAAa,UAAW,GAAa,EAAK,OAAO,CAAC,CACpD,CAAC,EAED,MAAO,CACL,GAAI,GAAG,EAAK,GAAG,SACf,MAAO,EAAU,MACjB,SAAU,EAAQ,MAClB,MAAO,EAAU,MACjB,KAAM,EAAQ,MAAQ,EAAU,KAChC,UACA,YAAa,GACb,iBAAkB,GAClB,UAAW,GAAG,EAAU,MAAM,oBAAoB,EAAQ,QAC1D,WAAY,GAAgB,CAC1B,EAAU,MACV,EAAQ,MACR,EAAK,UACL,EAAK,QACL,GAAa,EAAK,OAAO,CAC3B,CAAC,EACD,UAAW,GAAG,EAAU,MAAM,GAAG,EAAQ,QAAQ,YAAY,CAC/D,CACF,EAEa,IAAkB,GAAyC,CACtE,IAAM,EAAS,GAAc,EAAK,SAAW,GAAc,OACrD,EAAa,IAAkB,EAAK,KAAK,EACzC,EAAa,EAAK,YAAc,gBAAkB,KAClD,EACJ,EAAK,SAAW,SACX,GAAc,GAAc,GAAa,EAAK,OAAO,EACtD,GAAa,EAAK,OAAO,EACzB,EAAU,GAAa,CAC3B,GAAa,EAAO,KAAK,EACzB,GAAa,SAAU,EAAO,KAAK,EACnC,GAAa,SAAU,EAAK,KAAK,EACjC,GAAa,iBAAkB,GAAe,EAAK,WAAW,CAAC,EAC/D,GAAa,WAAY,GAAe,EAAK,SAAS,CAAC,EACvD,GAAa,YAAa,GAAe,EAAK,SAAS,CAAC,EACxD,GAAa,UAAW,GAAe,EAAK,UAAU,CAAC,EACvD,GAAa,UAAW,GAAa,EAAK,OAAO,CAAC,CACpD,CAAC,EAED,MAAO,CACL,GAAI,GAAG,EAAK,GAAG,SACf,MAAO,EAAO,MACd,WACA,MAAQ,EAAO,OAAS,OACxB,KAAM,EAAO,KACb,UACA,YAAa,GACb,iBAAkB,GAClB,UAAW,CAAC,EAAO,MAAO,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EAC7D,WAAY,GAAgB,CAC1B,EAAO,MACP,EACA,EAAK,OACL,EAAK,MACL,EAAK,WACP,CAAC,EACD,UAAW,EAAK,MAClB,CACF,EAEa,KAAgB,EAAqB,EAAY,IAAI,OAA4B,CAC5F,IAAM,EAAW,IAAe,EAAK,UAAW,EAAK,WAAY,CAAG,EAC9D,EAAW,GAAa,EAAK,WAAY,EAAK,UAAW,EAAK,SAAS,EACzE,EAAQ,YAAY,GAAoB,EAAK,SAAS,IACtD,EAAO,GACP,EAAyB,OAEzB,EAAK,SAAW,WAClB,EAAQ,QAAQ,GAAoB,GAAa,EAAK,UAAW,EAAK,SAAS,CAAC,IAChF,EAAO,GACP,EAAQ,QACC,EAAK,SAAW,UAAY,EAAK,aAC1C,EAAQ,SAAS,GAAoB,EAAK,WAAW,IACrD,EAAO,GACP,EAAQ,SACC,EAAK,SAAW,UACzB,EAAQ,YAAY,GAAoB,EAAK,SAAS,IACtD,EAAO,GACP,EAAQ,SACC,EAAK,SAAW,aACzB,EAAQ,WAAW,GAAoB,EAAK,YAAc,CAAQ,IAClE,EAAO,GACP,EAAQ,WACC,EAAK,SAAW,UACzB,EAAQ,WAAW,GAAoB,EAAK,YAAc,CAAQ,IAClE,EAAO,GACP,EAAQ,QACC,EAAK,SAAW,aACzB,EAAQ,WAAW,GAAoB,EAAK,YAAc,CAAQ,IAClE,EAAO,GACP,EAAQ,UACC,EAAK,SAAW,YACzB,EAAQ,WAAW,GAAoB,EAAK,YAAc,CAAQ,IAClE,EAAO,GACP,EAAQ,UAGV,IAAM,EACJ,IAAa,EAAK,UAAY,SAAS,GAAoB,EAAK,SAAS,IAAM,eAC3E,EAAU,GAAa,CAC3B,GAAa,UAAU,EACvB,GAAa,WAAY,GAAe,EAAK,SAAS,CAAC,EACvD,GAAa,YAAa,GAAe,EAAK,SAAS,CAAC,EACxD,GAAa,UAAW,GAAe,EAAK,UAAU,CAAC,EACvD,GAAa,mBAAoB,GAAe,EAAK,WAAW,CAAC,EACjE,GAAa,WAAY,CAAQ,CACnC,CAAC,EAED,MAAO,CACL,GAAI,GAAG,EAAK,GAAG,OACf,QACA,WACA,QACA,OACA,UACA,YAAa,GACb,iBAAkB,GAClB,UAAW,CAAC,EAAO,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EACtD,WAAY,GAAgB,CAC1B,EACA,EACA,EAAK,UACL,EAAK,UACL,EAAK,WACL,EAAK,YACL,CACF,CAAC,EACD,UACE,GAAU,EAAK,WAAW,GAC1B,GAAU,EAAK,UAAU,GACzB,GAAU,EAAK,SAAS,GACxB,GAAU,EAAK,SAAS,CAC5B,CACF,EAEa,KACX,EACA,EAAwC,CAAC,EACzC,EAAY,IAAI,OACI,CAEpB,IAAM,EAAS,IAAe,EAAM,CADV,GAAG,GAAgB,GAAG,CACZ,CAAe,EAC7C,EAAS,IAAe,CAAI,EAC5B,EAAS,IAAe,CAAI,EAC5B,EAAO,IAAa,EAAM,CAAG,EAEnC,MAAO,CACL,GAAI,EAAK,GACT,IAAK,EACL,SACA,SACA,SACA,OACA,WAAY,GAAgB,CAC1B,EAAO,WACP,EAAO,WACP,EAAO,WACP,EAAK,UACP,CAAC,CACH,CACF,EClZU,KAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACtB,GAAgB,oBAAM,EAAG,uBAAsB,EAAM,MAGhD,KAAS,WAAG,MAAG,MAAH,IACjB,GAAU,oBAAM,EAAG,MAGd,KAAY,WAAG,MAAG,MAAH,IACpB,GAAU,oBAAM,EAAG,MAGd,KAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACtB,GAAgB,oBAAM,EAAG,uBAAsB,EAAM,sHA7K1D,aAmIU,EAAO,QACZ,EAAG,UAAH,CAAG,kBAEK,EAAK,sBADT,mHAKe,OADlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,sCAIhB,EAAK,sBADT,wEAIO,wBAED,sBACS,YACP,GAAU,KACb,EAAU,GAA6C,SAC7D,EAAmB,GAAQ,OAAO,OAAS,EAAO,MAAK,MACzD,MANA,OAAU,UAAE,CAAgB,OAA5B,MAAU,KAAE,EAAgB,WAb7B,CAAG,MAAH,CAAG,GAwBE,EAAU,QACf,EAAC,UAAD,EAAC,MAAD,CAAC,YAAE,EAAY,QAAf,CAAC,GAhIF,EAAK,cAAG,uBAAuB,EAE/B,EAAc,uBAAG,+EAA+E,EAChG,EAAY,qBAAG,0CAA0C,EAEzD,EAAY,qBAAG,IAAI,EACnB,EAAgB,yBAAG,EAAI,EACvB,EAAiB,0BAAG,QAAQ,EAC5B,EAAa,sBAAG,WAAW,EAC3B,EAAoB,6BAAG,SAAS,EAgB5B,EAA+B,CAAI,SAAU,SAAS,EAExD,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAa,EAAe,CAAC,EAC7B,EAAc,EAAO,EAAE,EACvB,EAAmB,EAAM,OAAe,EAAgB,YAAa,QAAQ,IAE3E,EAAU,WAAe,CAAW,EAAC,KAAI,OAAM,CAAgB,EAAC,KAAK,GAAG,KACxE,EAAY,QAChB,mBAAgB,EAChB,oBAAiB,EACjB,gBAAa,EACb,uBAAoB,KAEhB,EAAO,MAAkC,IAAmB,EAAC,CAAY,IAEzE,EAAU,GAAyC,IAAgB,EAAI,EAAE,CAAY,GAErF,EAAqB,OAAY,QAAO,YAAa,GACzD,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,mBACZ,QACA,SACA,OAAM,EAAE,CAAW,EAAC,KAAI,GAAM,KAC9B,SAAQ,EAAE,CAAgB,aAE5B,EAAa,EAAS,WAGpB,KAAM,EAAS,MAAM,IAAI,CAAM,EAC/B,MAAO,EAAS,KAAK,CAEzB,OAAS,EAAK,UACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,QACvD,EAAa,IAEJ,KAAI,GAAM,MAAO,CAAC,CAC7B,QAAU,GACR,EAAU,GACZ,CACF,EAEM,EAAO,QACX,QAAK,EACL,gBAAe,kBACf,iBAAc,EACd,QAAO,EAAP,CAAO,EACP,UACA,YAAa,GACb,SAAU,GACV,aAAY,CAAG,SAAU,SAAU,MAAM,EACzC,cAAe,EACf,eAAY,EACZ,eAAY,EACZ,kBAAmB,IACnB,aAAe,GAAyB,EAAe,SAAS,EAAI,IAAI,MAAM,KAIjF,6BACE,CAAO,wBACD,CAAU,0BAChB,CAAO,wBACP,CAAK,6BACL,CAAU,+BACK,6BACF,iCACI,mCACA,sCACG,mCACH,gEAbZ,iBClHR,aAUI,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAQ,iBAAG,IAAI,EAOX,EAAY,MACZ,EAAQ,EAAS,IAAqC,EAAQ,GAE9D,EAAc,EAAS,IAA8B,CAAG,iBAAc,IAEnE,IACR,gBAgBkB,EAAQ,GAb5B,2PAKa,GACN,EAAQ,EAAS,IAA4B,EAAQ,EAAE,CAAM,EAE7D,EAAc,EAAS,IAAqB,CAAG,iBAAc,EAAE,YAAS,KAAK,IAE1E,QAAQ,QAAO,CAAG,MAAK,GAAM,MAAO,CAAC,+BAE7C,CAAY,sHAdP,kBC1BR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAOnB,GAAqB,+BAAE,EAAc,0BAAG,EAAS,IAF1C,CCeR,eAAe,GACb,EACA,EACA,EAC8B,CAC9B,IAAM,EAAS,IAAI,gBAAgB,CACjC,gBAAiB,CACnB,CAAC,EACG,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,EAAQ,eAAe,EAAO,SAAS,IAAK,CAC3E,QAAS,GAAoB,CAC/B,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,GAAG,EAAM,iCAAiC,GAAe,CAAK,GAAG,CACnF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,GAAG,EAAM,8BAA8B,EAGpE,MAAM,EAAS,KAAK,CAC9B,CAEA,eAAsB,IAAmB,EAAsD,CAC7F,OAAO,GAAiB,GAAgB,EAAgB,eAAe,CACzE,CAEA,eAAsB,IAAqB,EAAsD,CAC/F,OAAO,GAAiB,GAAsB,EAAgB,eAAe,CAC/E,CAEA,eAAsB,IAAqB,EAAsD,CAC/F,OAAO,GAAiB,GAA2B,EAAgB,mBAAmB,CACxF,CAEA,eAAsB,IACpB,EAC8B,CAC9B,OAAO,GAAiB,GAAgC,EAAgB,eAAe,CACzF,ghBCjEA,aAaI,EAAK,cAAG,GAAG,EACX,EAAO,gBAAG,IAAI,EACd,EAAW,oBAAG,IAAI,EAClB,EAAI,aAAG,IAAI,EACX,EAAgB,yBAAG,EAAK,EACxB,EAAS,kBAAG,MAAS,EAGjB,EAAW,GAAc,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAC,GAElD,EAAG,MAAqB,IACxB,EAAO,IAAK,MAAQ,EAAO,IAAK,OAAS,OAAS,SAEhD,EAAI,OAAO,EAAO,UAEpB,OAAO,MAAM,CAAC,EAAU,KAErB,EAAQ,CAAC,CAClB,CAAC,EAEK,EAAmB,OAErB,EAAW,IAAK,MAAQ,EAAW,IAAK,OAAY,GAAK,OAAO,EAAW,GAAE,KAAI,OAI/E,CAAG,IAAK,KAAa,OAEf,KAAK,MAAK,EAAC,CAAG,EAAG,GAAG,KAC/B,EAGK,EAAI,EAAI,KAAK,GAAK,GAGlB,EAAM,EAAI,IAGV,EAAM,GAAM,EAAG,GAFT,EAAI,IAGV,EAAM,SAAwB,GAAG,EAAI,CAAG,GAAI,GAAC,GAAK,GAAC,EAGnD,EAAW,MAAY,EAAI,IAAK,KAAO,GAAK,EAAE,MAGrD,EAAG,MACD,IADF,CAAG,EAOC,EAAC,EANH,KAME,EAAC,+BAAgC,MAC/B,IADF,CAAC,IACC,MAII,EAAC,IAJL,qBAQmB,CAAM,MAEzB,IAVA,KAUA,MAII,EAAC,IAfP,CAAC,IANH,OA8BA,EAAG,EA9BH,KAgCE,EAAG,IAFL,CAAG,SAED,EAAG,MAAH,CAAG,MACH,EAAG,EADH,EAAG,OACH,EAAG,MAAH,CAAG,IAHL,CAAG,IA/BL,CAAG,WAAH,EAAG,aAAiC,EAAgB,EAAG,QAAU,MAAM,IAAvE,EAAG,YAAiF,EAAI,KACtF,eAGa,EAAS,KAHtB,SAIO,EAAS,EAAG,MAAQ,MAAS,IAGhC,mBAMe,CAAW,KAI1B,mBAMe,CAAW,KAN1B,uBAQmB,CAAM,KAK7B,EAAG,eAAmC,EAAS,EAAG,OAAe,MAE9B,EAAK,SACH,CAAmB,SAlC1D,CAAG,KAFI,kRCxDR,aAuBI,EAAW,oBAAG,EAAE,EAChB,EAAK,cAAG,GAAG,EACX,EAAO,gBAAG,IAAI,EACd,EAAW,oBAAG,IAAI,EAClB,EAAgB,kCAGhB,EAAgB,yBAAG,EAAK,EACxB,EAAI,aAAG,IAAI,EACX,EAAO,gBAAG,IAAI,EAGV,EAAwB,MACxB,EAAgB,EAAC,OAAe,6BAGjC,OAAQ,GAA2B,EAAQ,GAAM,KAAK,EACtD,KAAK,EAAM,KAAK,CACf,IAAG,YAAc,IACjB,MAAO,EAAK,MACZ,MAAO,EAAK,QAEjB,OAQS,EAAc,QACrB,EAAG,MACD,EAAG,EADL,CAAG,EAEC,EAAE,EADJ,CAAG,MACD,EAAE,MAAF,CAAE,UAAF,EAAE,aAEA,EAAK,UAAL,EAAK,MAAL,CAAK,YAAyB,EAAW,QAAzC,CAAK,WADH,EAAW,YAFjB,CAAG,MAOH,EAAG,EAPH,EAAG,GAQD,MADF,CACO,sBAAE,EAAK,wBAAG,EAAO,4BAAG,EAAW,iCAAG,EAAgB,qBAAG,EAAI,uCADhE,CAAG,IARL,CAAG,0BAAH,CAAG,WAJG,EAAO,GAAI,MAAS,UAChB,EAAQ,EAAO,GAH7B,sCACmB,CAAwB,6DAIhC,kDAPJ,+EC9CR,aAWiB,EAAQ,iBAAG,IAAI,EAAE,EAAI,aAAG,CAAC,EAAE,EAAK,cAAG,IAAI,EAAE,EAAI,aAAG,IAAI,EAE7D,EAAc,MAAY,KAAK,IAAI,EAAG,OAAO,SAAS,EAAI,GAAI,OAAO,EAAI,GAAI,CAAC,GAC9E,EAAe,MAAqB,IACpC,EAAK,IAAK,MAAQ,EAAK,IAAK,OAAS,OAAS,SAE5C,EAAS,OAAO,EAAK,UAEpB,OAAO,SAAS,CAAM,EAAI,KAAK,IAAI,EAAG,CAAM,EAAI,IACzD,CAAC,EAEK,EAAW,SAAa,CAAe,KAAI,CAAe,GAAI,CAAC,EAC/D,EAAS,QACT,CAAW,EAAS,KAEjB,KAAK,KAAG,EAAE,CAAe,GAAI,GAAC,EAAI,CAAc,EAAE,CAAC,CAC3D,EAEK,EAAS,MAAY,EAAI,GAAI,EAAI,EAAC,KAAI,MAAS,EAAI,EAAC,KAAI,IAAO,EAAE,EAEjE,EAAe,GACf,GAAU,KAAoC,OAExC,OAAO,CAAK,EAAE,eAAe,OAAO,MAAI,CAAS,IAGvD,EAAY,MAAqB,MACjC,CAAW,SAAS,SAElB,EAAI,EAAG,CAAe,GAAI,SAE3B,GAAQ,GAAQ,EAAU,KAExB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAC,EAAE,CAAc,EAAG,CAAI,EACtD,CAAC,EAEK,EAAW,MAAqB,MAChC,CAAW,QAAS,kBAEpB,CAAY,IAAK,KAAI,MAAS,QAE5B,EAAY,EAAG,CAAY,EAAG,WAEhC,EAAe,GAAK,EAAe,EAAU,SAEvC,KAAK,MAAM,CAAY,IACnC,CAAC,EAEK,EAAQ,QAAc,MAAO,YAAa,MAAO,EAAW,EAAC,CAAc,MAC3E,EAAS,QACb,MAAK,EAAE,CAAW,EAAG,QAAU,OAC/B,MAAK,EAAE,CAAW,EAAG,aAAe,EAAW,EAAC,CAAS,GAAI,CAAC,SAIjE,EAAG,UAAH,CAAG,eAGa,EAAQ,GAAI,EAAE,UACpB,EAAW,EAAC,CAAc,IAHhC,kHAIQ,CAAY,8BACpB,CAAW,2BACX,CAAQ,4BACR,CAAS,oBACQ,OATrB,CAAG,MAAH,CAAG,KAFI,kPChER,KAUI,EAAc,uBAAG,EAAE,EACnB,EAAO,gBAAG,EAAK,EACf,EAAc,uBAAG,uBAAuB,EACxC,EAAK,cAAG,IAAI,EACZ,EAAO,gBAAG,EAAK,EACf,EAAY,qBAAG,wBAAwB,MAO1C,EAAG,UAAH,CAAG,EACC,mDAEiB,mHAGjB,EAAc,4BAIV,EAAG,MACC,KADJ,CACU,2CADV,CAAG,UAAH,EAAG,aAA6B,EAAc,QAA9C,CAAG,aAIH,EAAG,UAAH,EAAG,MAAH,CAAG,YAAsB,EAAK,QAA9B,CAAG,aAEH,EAAG,UAAH,EAAG,MAAH,CAAG,YAAgB,EAAY,QAA/B,CAAG,oEAPH,EAAO,OAIF,EAAK,SAEL,EAAO,qBAfpB,CAAG,MAAH,CAAG,CAFI,kBCpBR,aA2EU,EAAO,2BAER,wCAEO,CAAa,sBACjB,CAAS,wBACR,CAAU,8BALd,CAAM,kBA7DX,EAAc,uBAAG,IAAI,EACA,kBAAG,IAAI,EACC,sBAAG,IAAI,EACX,oBAAG,IAAI,MAG9B,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAS,EAAmC,IAAI,EAChD,EAAY,EAEV,EAAU,SAAe,KACxB,EAAc,EAAE,GACnB,EAAS,QACT,EAAQ,6BAA4B,QAGtC,KAEM,EAAc,EAAK,IACzB,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,MAAS,IAAmB,EAAc,MAEpD,IAAmB,EAAS,SAEhC,EAAS,KACX,OAAS,EAAK,IACR,IAAmB,EAAS,SAEhC,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,QACvD,EAAS,KACX,QAAU,CACJ,IAAmB,KACrB,EAAU,GAEd,CACF,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,MAEK,EAAS,QAAY,CAAM,GAAE,MAAQ,CAAC,EACtC,EAAU,QAAY,CAAM,GAAE,OAAS,IAAI,EAC3C,EAAa,MAAY,qCAAqC,kBAS1D,CAAM,GANjB,8FAGE,CAAO,gEAEP,CAAK,gGAGU,QAVV,2GCxCR,KAoBI,EAAgB,yBAAG,EAAK,EACxB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EAEpB,EAAS,kBAAG,EAAI,EAChB,EAAa,sBAAG,EAAI,EAEpB,EAAS,kBAAG,SAAS,MAIxB,EAAG,UAAH,CAAG,mEAIK,EAAG,UAAH,CAAG,QAEK,IAAS,+BAAE,EAAc,0BAAG,EAAS,8BAAG,EAAa,oDAErD,IAAO,+BAAE,EAAc,0BAAG,EAAS,YAEnC,IAAU,+BAAE,EAAc,0BAAG,EAAS,8BAAG,EAAa,0BAAG,EAAS,8BAAG,EAAa,cALlF,EAAS,IAAK,SAAQ,KAEjB,EAAS,IAAK,OAAM,mBAHjC,CAAG,MAAH,CAAG,WAHF,EAAgB,mBADzB,CAAG,UAAH,EAAG,yCAAyC,EAAS,UAArD,CAAG,CAFI,CC6OR,IAAM,IAAuB,IAA4D,CACvF,eAAgB,EAAM,gBACtB,aAAc,EAAM,cACpB,MAAO,EAAM,MACb,UAAW,EAAQ,EAAM,WACzB,gBAAiB,EAAQ,EAAM,kBAC/B,WAAY,MAAM,QAAQ,EAAM,WAAW,EACvC,EAAM,YAAY,IAAK,IAAW,CAChC,OAAQ,EAAM,QACd,SAAU,EAAM,WAAa,KAC7B,QAAS,EAAM,SACf,KAAM,EAAM,MAAQ,IACtB,EAAE,EACF,CAAC,CACP,GAEM,GAAmB,IAAwC,CAC/D,SAAU,EAAM,UAChB,eAAgB,EAAM,gBACtB,MAAO,EAAM,MACb,aAAc,EAAM,cACpB,QAAS,EAAQ,EAAM,QACvB,QAAS,EAAQ,EAAM,QACvB,MAAO,EAAM,MACb,UAAW,EAAM,YAAc,KAC/B,cAAe,EAAM,gBAAkB,KACvC,OAAQ,CACN,QAAS,EAAM,OAAO,SACtB,YAAa,EAAM,OAAO,aAC1B,WAAY,EAAM,OAAO,aAAe,IAC1C,EACA,SAAU,CACR,OAAQ,EAAM,SAAS,QACvB,SAAU,EAAM,SAAS,WAAa,KACtC,OAAQ,EAAM,SAAS,QACvB,QAAS,EAAM,SAAS,SACxB,UAAW,EAAM,SAAS,YAAc,KACxC,SAAU,EAAM,SAAS,WAAa,KACtC,WAAY,EAAM,SAAS,aAAe,IAC5C,EACA,KAAM,CACJ,UAAW,EAAQ,EAAM,KAAK,UAC9B,oBAAqB,EAAM,KAAK,sBAChC,eAAgB,EAAM,KAAK,eAC7B,EACA,OAAQ,CACN,eAAgB,MAAM,QAAQ,EAAM,OAAO,eAAe,EAAI,EAAM,OAAO,gBAAkB,CAAC,EAC9F,cAAe,EAAM,OAAO,iBAC5B,eAAgB,EAAM,OAAO,eAC/B,EACA,MAAO,EAAM,MAAQ,IAAuB,EAAM,KAAK,EAAI,IAC7D,GAEM,IAA0B,IAAsD,CACpF,SAAU,EAAM,UAChB,eAAgB,EAAM,gBACtB,OAAQ,EAAM,OACd,aAAc,OAAO,EAAM,eAAiB,CAAC,EAC7C,aAAc,OAAO,EAAM,eAAiB,CAAC,EAC7C,cAAe,OAAO,EAAM,gBAAkB,CAAC,EAC/C,aAAc,OAAO,EAAM,eAAiB,CAAC,EAC7C,YAAa,OAAO,EAAM,cAAgB,CAAC,EAC3C,eAAgB,OAAO,EAAM,kBAAoB,CAAC,EAClD,qBAAsB,OAAO,EAAM,yBAA2B,CAAC,EAC/D,aAAc,EAAM,gBAAkB,KACtC,WAAY,EAAM,cAAgB,KAClC,cAAe,EAAM,gBAAkB,KACvC,WAAY,OAAO,EAAM,aAAe,CAAC,EACzC,UAAW,EAAM,YAAc,IACjC,GAEM,IACJ,IACwC,CACxC,SAAU,EAAM,UAChB,eAAgB,EAAM,gBACtB,OAAQ,EAAM,MAChB,GAEM,IACJ,IAC4C,CAC5C,SAAU,EAAM,UAChB,eAAgB,EAAM,gBACtB,OAAQ,EAAM,QACd,OAAQ,EAAM,MAChB,GAEM,IAAuB,IAAgD,CAC3E,OAAQ,EAAM,QACd,SAAU,EAAM,UAChB,eAAgB,EAAM,gBACtB,OAAQ,EAAM,QACd,QAAS,EAAM,SACf,KAAM,EAAM,MAAQ,KACpB,KAAM,EAAM,MAAQ,KACpB,KAAM,EAAM,MAAQ,KACpB,KAAM,EAAM,OAAS,KACrB,KAAM,EAAM,OAAS,KACrB,UAAW,EAAQ,EAAM,WACzB,UAAW,EAAQ,EAAM,WACzB,OAAQ,EAAM,OACd,WAAY,EAAM,cAAgB,KAClC,aAAc,EAAM,gBAAkB,KACtC,UAAW,EAAM,YAAc,IACjC,GAEM,GAAoB,IAA2C,CACnE,gBAAiB,EAAQ,eACzB,WAAY,EAAQ,QAAU,eAAiB,KAAO,EAAQ,UAC9D,MAAO,EAAQ,MACf,cAAe,EAAQ,aACvB,QAAS,EAAQ,QACjB,QAAS,EAAQ,QACjB,MAAO,EAAQ,MACf,eAAgB,EAAQ,QAAU,cAAgB,EAAQ,cAAgB,KAC1E,OAAQ,CACN,SAAU,EAAQ,OAAO,QACzB,aAAc,EAAQ,OAAO,YAC7B,YAAa,EAAQ,OAAO,UAC9B,EACA,KAAM,CACJ,UAAW,EAAQ,KAAK,UACxB,sBAAuB,EAAQ,KAAK,oBACpC,gBAAiB,EAAQ,KAAK,cAChC,EACA,OAAQ,CACN,gBAAiB,EAAQ,OAAO,eAChC,iBAAkB,EAAQ,OAAO,cACjC,gBAAiB,EAAQ,OAAO,cAClC,CACF,GAEA,eAAsB,GAAuB,EAEN,CACrC,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,EAAO,eAAe,KAAK,CAAE,CAAC,EAE/E,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,EAAM,SAAS,IACxE,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,oDAAoD,GAAe,CAAK,GAAG,CAC7F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,iDAAiD,EAGtF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,SAAU,EAAQ,SAAW,CAAC,GAAG,IAAI,EAAe,EACpD,aAAc,EAAQ,aAAe,CAAC,GAAG,IAAI,GAAmB,CAClE,CACF,CAEA,eAAsB,IACpB,EACA,EACA,EACoC,CACpC,IAAM,EAAS,IAAI,gBAAgB,CACjC,gBAAiB,EAAe,KAAK,EACrC,cAAe,EAAa,KAAK,EACjC,SAAU,EAAQ,KAAK,CACzB,CAAC,EAEG,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,8BAA8B,EAAO,SAAS,IAC3E,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MACR,iEAAiE,GAAe,CAAK,GACvF,CACF,CAWA,OATK,EAAS,IACZ,MAAM,GACJ,EACA,8DACF,IAKM,MAFe,EAAS,KAAK,GAErB,WAAa,CAAC,GAAG,IAAK,IAAW,CAC/C,YAAa,EAAM,aACnB,QAAS,EAAM,SACf,OAAQ,EAAM,OAChB,EAAE,CACJ,CAEA,eAAsB,IACpB,EAC2B,CAC3B,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAA0B,2BAA4B,CACrF,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,GAAiB,CAAO,CAAC,CAChD,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,mDAAmD,GAAe,CAAK,GAAG,CAC5F,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,gDAAgD,EAG9E,GAAiB,MAAM,EAAS,KAAK,CAAe,CAC7D,CAEA,eAAsB,GACpB,EACA,EAC2B,CAC3B,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,IAC3F,CACE,OAAQ,QACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,GAAiB,CAAO,CAAC,CAChD,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,uDAAuD,GAAe,CAAK,GAAG,CAChG,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,oDAAoD,EAGlF,GAAiB,MAAM,EAAS,KAAK,CAAe,CAC7D,CAEA,eAAsB,GAAuB,EAAiC,CAC5E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,IAC3F,CACE,OAAQ,SACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,mDAAmD,GAAe,CAAK,GAAG,CAC5F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,gDAAgD,CAEvF,CAsBA,eAAsB,GACpB,EAC6C,CAC7C,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,eAC7F,CACE,OAAQ,OACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,kDAAkD,GAAe,CAAK,GAAG,CAC3F,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,+CAA+C,EAG7E,IAA2B,MAAM,EAAS,KAAK,CAAiC,CACzF,CAEA,eAAsB,IACpB,EACA,EACiD,CACjD,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,SAAS,mBAAmB,EAAO,KAAK,CAAC,EAAE,iBACxI,CACE,OAAQ,OACR,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MACR,4DAA4D,GAAe,CAAK,GAClF,CACF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,yDAAyD,EAGvF,IAA+B,MAAM,EAAS,KAAK,CAAqC,CACjG,CAEA,eAAsB,IACpB,EACA,EAKI,CAAC,EACmC,CACxC,IAAM,EAAQ,IAAI,gBAEd,OAAO,EAAO,OAAU,UAAU,EAAM,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EAEzE,OAAO,EAAO,QAAW,UAAU,EAAM,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAE5E,EAAO,QAAQ,KAAK,GAAG,EAAM,IAAI,SAAU,EAAO,OAAO,KAAK,CAAC,EAE/D,EAAO,UAAU,QAAQ,EAAM,IAAI,SAAU,EAAO,SAAS,KAAK,GAAG,CAAC,EAE1E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,SAAS,EAAM,SAAS,IACrH,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,mDAAmD,GAAe,CAAK,GAAG,CAC5F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,gDAAgD,EAGrF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,GAAmB,EACpD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,IAAa,IAAuC,GAClD,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,eAE/F,eAAsB,IACpB,EAOI,CAAE,eAAgB,EAAG,EACK,CAC9B,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,EAAO,eAAe,KAAK,CAAE,CAAC,EAE/E,EAAO,WAAW,KAAK,GAAG,EAAM,IAAI,aAAc,EAAO,UAAU,KAAK,CAAC,EAEzE,OAAO,EAAO,OAAU,UAAU,EAAM,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EAEzE,OAAO,EAAO,QAAW,UAAU,EAAM,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAE5E,EAAO,QAAQ,KAAK,GAAG,EAAM,IAAI,SAAU,EAAO,OAAO,KAAK,CAAC,EAE/D,EAAO,UAAU,QAAQ,EAAM,IAAI,SAAU,EAAO,SAAS,KAAK,GAAG,CAAC,EAE1E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,8BAA8B,EAAM,SAAS,IAC1E,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,eAAsB,IACpB,EACA,EAKI,CAAC,EACyB,CAC9B,IAAM,EAAQ,IAAI,gBAEd,OAAO,EAAO,OAAU,UAAU,EAAM,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EAEzE,OAAO,EAAO,QAAW,UAAU,EAAM,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAE5E,EAAO,QAAQ,KAAK,GAAG,EAAM,IAAI,SAAU,EAAO,OAAO,KAAK,CAAC,EAE/D,EAAO,UAAU,QAAQ,EAAM,IAAI,SAAU,EAAO,SAAS,KAAK,GAAG,CAAC,EAE1E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,aAAa,EAAM,SAAS,IACzH,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,IAAa,IAAoC,GAGnC,CACZ,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,EAAO,eAAe,KAAK,CAAE,CAAC,EAInF,OAFI,EAAO,WAAW,KAAK,GAAG,EAAM,IAAI,aAAc,EAAO,UAAU,KAAK,CAAC,EAEtE,GAAG,GAA0B,qCAAqC,EAAM,SAAS,GAC1F,EAEa,IAA0C,GACrD,GAAG,GAA0B,4BAA4B,mBAAmB,EAAS,KAAK,CAAC,EAAE,42BC3wB/F,4DA2hBU,EAAa,mBAGV,CAAM,EAAG,eAAiB,EAAM,EAAG,mBAAqB,gBAAgB,YAEvE,CAAM,KAAI,CAAgB,GAJnC,wEAGK,wCAEG,OAlgBL,EAAqB,CACzB,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,QAKA,EAAS,kBAAG,IAAI,EACM,EAAqB,6BAAG,IAAI,EAClD,EAAM,eAAG,IAAI,EACb,EAAW,6BAGX,EAAsB,+BAAG,IAAI,EAYzB,EAAmB,EACrB,KAAM,6BAA8B,MAAO,KAAK,GAChD,KAAM,kBAAmB,MAAO,MAAM,GACtC,KAAM,YAAa,MAAO,MAAM,GAChC,KAAM,iBAAkB,MAAO,OAAO,GACtC,KAAM,UAAW,MAAO,OAAO,GAE7B,EAAkB,GAAyB,KACzC,EAAS,EAAM,qBAEd,OAAO,GAAQ,OAAS,EAAE,EAAE,KAAI,CACzC,EAEM,GACJ,EACA,EACA,IACG,KACG,EAAkB,EAAM,KAAI,SAE7B,GAED,EAAQ,KAAM,GAAU,EAAM,QAAU,CAAe,EAAU,MAGhE,GACD,MAAO,EAAiB,KAAM,EAAM,GAAM,EAAe,GAAI,IAAW,GAE9E,EAEM,EAAwB,GAA0B,KAChD,EAAU,OAAO,CAAK,SAEvB,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,UAElD,EAAU,OAAU,EAAC,IAAa,KAAK,MAAM,EAAU,KAAK,UAE5D,EAAU,MAAS,EAAC,IAAa,KAAK,MAAM,EAAU,IAAI,aAE1D,EAAU,IAAO,EAAC,IAAa,KAAK,MAAM,EAAU,EAAE,iBAE/C,EAAO,WACpB,EAEM,EAAiC,GAAyB,KACxD,EAAa,EAAW,EAAC,KAAM,GAAU,EAAM,eAAiB,CAAY,GAAK,KACjF,EAAW,IAAO,YACb,KAAS,GAAY,YAAU,GAAQ,KAC1C,EAAU,EAAM,QAAQ,KAAI,MAE7B,GAAW,EAAY,IAAI,CAAO,eAEjC,EAAW,EAAM,UAAU,KAAI,GAAM,GAC3C,EAAY,IAAI,EAAO,CACrB,MAAO,EACP,KAAM,EAAQ,GAAM,EAAQ,KAAM,IAAY,GAElD,QAEO,MAAM,KAAK,EAAY,OAAM,GAAI,MAAM,EAAM,IAClD,EAAK,KAAK,cAAc,EAAM,KAAM,IAAI,EAE5C,EAEM,MAA0B,KACxB,EAAgB,EAAM,GAAE,OAAS,sBAGrC,aAAc,EAAM,GAAE,cAAgB,EAAW,EAAC,IAAI,cAAgB,GACtE,MAAO,EACP,eACE,IAAiB,WAAa,IAAiB,cAC1C,EAAM,GAAE,WAAa,EAAS,GAAI,GACnC,GACN,oBACE,IAAiB,eAAiB,EAAM,GAAE,WAAa,EAAM,GAAE,cAC3D,GAA0B,EAAM,EAAC,UAAW,EAAM,EAAC,aAAa,EAChE,GACN,QAAS,EAAM,GAAE,OAAO,SAAW,GACnC,YAAa,EAAM,GAAE,OAAO,aAAe,GAC3C,WAAY,EAAM,GAAE,OAAO,YAAc,GACzC,oBAAqB,OACnB,EAAM,GAAE,KAAK,qBAAuB,GAA6B,EAGvE,EAEI,EAAQ,EAAM,GAAC,EAAiB,IAChC,EAAsB,EAAM,QAC5B,EAAS,EAAO,EAAK,EACrB,EAAmB,EAAO,EAAK,EAC/B,EAAQ,EAAsB,IAAI,EAClC,EAAe,EAAsB,IAAI,EACzC,EAAiB,EAAsB,IAAI,EAC3C,EAAmB,EAEjB,EAAc,OAChB,EAAkB,OAAqC,OACtD,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAM,kBAAmB,EAAE,EAAE,KAAI,IAGnF,EAAmB,MAAY,GAAwB,EAAC,CAAc,qBACtE,EAAuB,MAC3B,GAA4B,EAAC,CAAc,qBAGvC,EAAuB,MAC3B,IACE,CAAK,EAAC,aACN,EAAW,EAAC,IAAK,IAAK,CACpB,MAAO,EAAM,aACb,KAAI,GAAK,EAAM,QAAQ,EAAM,gBAAkB,GAAK,4BAEtD,2BAGE,GAAW,MACf,EAAiB,EACf,CAAK,EAAC,QACN,EAA6B,EAAC,CAAK,EAAC,YAAY,EAChD,0BAA0B,GAGxB,GAAc,MAClB,EAAiB,EAAC,CAAK,EAAC,YAAW,EAAE,CAAmB,EAAE,wBAAwB,GAE9E,GAAW,MACf,EAAiB,EACf,CAAK,EAAC,oBACN,EACA,EAAoB,EAAC,CAAK,EAAC,mBAAmB,IAI5C,EAAwB,GAAqC,IAC7D,IAAc,UAAW,GAC3B,QACK,CAAK,EACR,MAAO,UACP,eAAgB,GAA4B,EAC1C,CAAmB,IACnB,CAAK,EAAC,gBAAkB,EAAS,GAEnC,oBAAqB,cAIzB,IAEI,IAAc,cAAe,KACzB,EAAqB,GAAiC,EAC1D,CAAuB,IACvB,CAAK,EAAC,gBAAkB,EAAS,EACjC,EAAM,GAAE,eAAiB,EAAqB,KAEhD,QACK,CAAK,EACR,MAAO,cACP,eAAgB,GAA0B,CAAkB,EAAE,UAC9D,oBAAqB,aAIzB,GAEA,QACK,CAAK,EACR,MAAO,eACP,eAAgB,GAChB,oBAAqB,OAEzB,EAEM,GAAa,MAAU,EAAsB,IAAoB,KAC/D,EAAS,EAAK,IACpB,EAAmB,MACnB,EAAe,SACX,KACI,EAAS,MAAS,IAAwB,iBAAiB,EAAc,CAAO,KAElF,IAAc,EAAgB,SAElC,EAAsB,EACnB,IAAK,IAAK,CACT,MAAO,EAAM,YACb,KAAM,EAAM,WAAW,IAExB,MAAM,EAAM,IAAU,EAAK,KAAK,cAAc,EAAM,KAAM,IAAI,UAE5D,CAAK,EAAC,YAAY,KAAI,KAAM,CAAmB,EAAC,IAAI,SACvD,QAAa,CAAK,EAAE,YAAW,EAAE,CAAmB,EAAC,GAAG,UAE5D,OAAS,EAAK,IACR,IAAc,EAAgB,SAElC,EAAmB,SACnB,EAAe,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KAChE,QAAU,CACJ,IAAc,GAAgB,EAAE,EAAmB,GACzD,CACF,EAEM,IAAiB,EAAsB,IAAoB,KACzD,EAAyB,EAAa,KAAI,EAC1C,EAAoB,EAAQ,KAAI,EAChC,EACJ,GAA0B,yBACD,EAAsB,GAAI,IAC/C,SAED,EAAK,GACR,EAAiB,QACjB,EAAmB,SACnB,EAAe,QACf,EAAmB,UAGrB,CAEI,IAAG,EAAK,CAAc,MAE1B,EAAiB,MACZ,GAAc,EAAwB,CAAiB,EAC9D,EAEM,OAAgC,OAC/B,CAAK,EAAC,aAAa,KAAI,QAAW,mDAElC,CAAK,EAAC,QAAQ,KAAI,QAAW,2DAE7B,CAAK,EAAC,YAAY,KAAI,QAAW,+CAEhC,EAAe,OAAM,EAAC,CAAK,EAAC,mBAAmB,MAEhD,OAAO,SAAS,CAAY,GAAK,EAAe,SAC5C,uDAGL,CAAK,EAAC,QAAU,WAAS,GAAK,CAAK,EAAC,eAAe,KAAI,QAClD,sCAGL,CAAK,EAAC,QAAU,cAAe,KAC3B,EAAoB,GAAyB,EAAC,CAAK,EAAC,mBAAmB,MAExE,EAAkB,WAAS,CAAK,EAAkB,oBAC9C,+BAEX,QAEO,IACT,EAEM,SACA,CAAK,EAAC,QAAU,eAAuB,OAEvC,CAAK,EAAC,QAAU,UAAS,EAAS,CAAK,EAAC,eAAe,KAAI,GAAM,KAE9D,GAAyB,EAAC,CAAK,EAAC,mBAAmB,EAAE,WAAa,KAGrE,SACA,CAAK,EAAC,QAAU,eAEb,GAAyB,EAAC,CAAK,EAAC,mBAAmB,EAAE,eAFlB,KAKtC,QAAY,CAChB,eAAc,iBACd,UAAW,GAAgB,EAC3B,MAAK,EAAE,CAAK,EAAC,QAAQ,KAAI,EACzB,aAAY,EAAE,CAAK,EAAC,aAAa,KAAI,EACrC,QAAS,GACT,QAAS,GACT,MAAK,EAAE,CAAK,EAAC,MACb,cAAe,GAAoB,EACnC,OAAM,CACJ,QAAO,EAAE,CAAK,EAAC,QAAQ,KAAI,EAC3B,YAAW,EAAE,CAAK,EAAC,YAAY,KAAI,EACnC,WAAU,EAAE,CAAK,EAAC,WAAW,KAAI,GAAM,MAEzC,KAAI,CACF,UAAW,GACX,oBAAqB,OAAM,EAAC,CAAK,EAAC,mBAAmB,EACrD,eAAgB,qBAElB,OAAM,CACJ,eAAgB,EAChB,cAAe,IACf,eAAgB,oBAId,GAAY,SAAe,oBACf,CAAM,KAAI,CAAgB,OAE1C,EAAQ,GAAQ,SAEZ,CAAK,MAET,EAAS,OACL,CAGE,MAFI,UAAiB,GAAY,IAE/B,aACR,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAS,GACX,CATS,CAUX,EAEA,OAAc,MACZ,EAAQ,EAAiB,SAEpB,CAAK,EAAC,SAAO,EAAI,CAAK,EAAC,aAAc,KAClC,EAAU,EAA6B,EAAC,CAAK,EAAC,YAAY,EAE5D,EAAQ,IAAI,SACd,EAAK,MAAQ,CAAK,EAAE,QAAS,EAAQ,GAAG,KAAK,KAEjD,CAEA,GAAa,EAAC,CAAK,EAAC,aAAY,EAAE,CAAK,EAAC,OAAO,EAC/C,EAAsB,IAAG,CAAa,EAItC,SAHuB,cACrB,gDAEF,GAAO,MAAK,CACd,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,MAGF,GAAG,MACC,GAAG,EADP,EAAG,OACC,EAAG,EACC,iHAKM,CAAuB,2BACtB,CAAM,qIAGL,GAAU,KACb,EAAmB,EAAe,CAAK,EACvC,EAAkB,EAA8B,CAAgB,EAChE,EACJ,EAAgB,KAAM,GAAU,EAAM,QAAK,EAAK,CAAK,EAAC,OAAO,GAAG,OAChE,EAAgB,IAAI,OACpB,KACF,QACK,CAAK,EACR,aAAc,EACd,QAAS,EACT,YAAa,QAEf,GAAc,EAAkB,CAAW,CAC7C,MAnBA,OAAU,UAAE,CAAK,EAAC,kBAAlB,MAAU,KAAE,CAAK,EAAC,aAAY,mCA2BpB,CAAM,KAAI,EAAW,EAAC,SAAW,CAAC,EANzC,+FAKM,EAAW,+JAIT,GAAU,GACnB,QACK,CAAK,EACR,QAAS,EAAe,CAAK,EAC7B,YAAa,QAEf,GAAa,EAAC,CAAK,EAAC,aAAc,EAAe,CAAK,EACxD,MAZA,OAAU,UAAE,CAAK,EAAC,aAAlB,MAAU,KAAE,CAAK,EAAC,QAAO,OA9B1B,EAAG,WAAH,GAAG,GA8CH,iKAOa,kCACE,CAAmB,qCACf,CAAuB,obAOjC,CAAM,oCAED,kBACG,GAAkB,GAClC,EAAK,MAAQ,CAAK,EAAE,eAAgB,CAAa,KACnD,sBACsB,GAAuB,GAC3C,QACK,CAAK,EACR,oBAAqB,EACrB,eAAgB,GAA0B,CAAkB,EAAE,cAElE,MAxBA,OAAU,UAAE,CAAK,EAAC,WAAlB,MAAU,KAAE,CAAK,EAAC,MAAK,OACvB,WAAc,UAAE,CAAK,EAAC,oBAAtB,UAAc,KAAE,CAAK,EAAC,eAAc,OACpC,gBAAmB,UAAE,CAAK,EAAC,yBAA3B,eAAmB,KAAE,CAAK,EAAC,oBAAmB,+BA0BzC,EAAG,MACC,KADJ,CACU,oDADV,CAAG,MAAH,CAAG,cAUH,EAAG,UAAH,CAAG,iBAOM,CAAM,KAAI,EAAc,EAAC,SAAW,CAAC,EAN1C,2GAKI,EAAc,sIADvB,OAAU,UAAE,CAAK,EAAC,iBAAlB,MAAU,KAAE,CAAK,EAAC,YAAW,KAOxB,4GAKI,EAAW,2BACV,CAAM,yEAFhB,OAAU,UAAE,CAAK,EAAC,yBAAlB,MAAU,KAAE,CAAK,EAAC,oBAAmB,OAhBpC,CAAG,MAAH,CAAG,cAXH,CAAgB,KAAI,CAAK,EAAC,QAAO,2CAoChC,IAAD,CAAC,cADA,EAAW,EAAC,QAAM,kCAInB,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAY,QAA7B,CAAC,cAEA,IAAD,CAAC,cAHD,CAAY,UAEP,CAAK,EAAC,SAAO,GAAK,CAAgB,MAAK,CAAmB,EAAC,QAAM,oCAItE,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,cADD,CAAK,aAzHb,EAAG,MAAH,EAAG,SAFI,CCtZR,SAAwB,IAAgB,CACtC,MACA,YAAY,GACZ,kBAAkB,KAClB,SACA,SACA,YAQmB,CACnB,IAAM,EAA4B,CAAC,EAoCnC,OAlCA,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,mCACP,YAAe,CACb,EAAY,CAAG,CACjB,EACA,KAAM,GACN,SAAU,CAAC,GAAa,IAAoB,EAAI,OAAO,SACvD,QAAS,GAAmB,iBAAiB,CAC/C,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,+BACP,YAAe,CACb,EAAO,CAAG,CACZ,EACA,KAAM,GACN,SAAU,CAAC,EACX,QAAS,GAAmB,iBAAiB,CAC/C,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,4BACP,YAAe,CACb,EAAc,CAAG,CACnB,EACA,KAAM,GACN,SAAU,CAAC,EACX,QAAS,GAAmB,mBAAmB,EAC/C,KAAM,QACR,CAAC,EAEM,CACT,iBCzDA,aAOW,EAAS,cAAG,EAAE,wCAQS,EAAS,IAAG,KAAI,iBAGlC,UAAY,MAAS,gBAEzB,MAAQ,MAAS,gBACb,UAAY,MAAS,gBACf,SAAO,MAAQ,WAAS,MAAQ,KAAK,gBACxC,aAAe,EAAK,gBACf,kBAAoB,EAAE,EAV7C,kEAGY,4DAEA,6KAMG,QAbR,2FCZR,aAOC,EAAG,MACC,KADJ,CACuB,0BAAU,eADjC,CAAG,MAAH,CAAG,KAFI,yFCLR,aAOC,EAAG,MACC,KADJ,CACuB,0BAAU,cADjC,CAAG,MAAH,CAAG,KAFI,0FCLR,aAOC,EAAG,MACC,KADJ,CACuB,0BAAU,aADjC,CAAG,MAAH,CAAG,KAFI,2FCLR,aAOC,EAAG,MACC,KADJ,CACuB,0BAAU,eADjC,CAAG,MAAH,CAAG,KAFI,iBCLR,aAiBQ,EAAQ,eAAmB,EAAE,yBAIhC,GAAU,oCAEV,IAAU,oCAEV,IAAQ,oCAER,GAAS,wEAEE,GAAE,qBATb,CAAQ,IAAK,SAAQ,OAEhB,CAAQ,IAAK,SAAQ,SAErB,CAAQ,IAAK,OAAM,SAEnB,CAAQ,IAAK,QAAO,2BARtB,CCTR,IAAa,GAA0B,GAClB,OAAO,GAAc,EAAE,EAAE,KAErC,GAAc,qBAGV,GAAkC,GAAoC,CACjF,IAAM,EAAQ,OAAO,GAAW,CAAC,EAoBjC,MAlBI,CAAC,OAAO,SAAS,CAAK,GAAK,GAAS,EAAU,UAE9C,IAAU,IAAY,kBAEtB,IAAU,KAAc,kBAExB,IAAU,KAAc,YAExB,IAAU,MAAe,iBAEzB,IAAU,MAAe,UAEzB,EAAQ,OAAW,EAAU,QAAQ,KAAK,MAAM,EAAQ,KAAM,EAAE,OAEhE,EAAQ,MAAU,EAAU,QAAQ,KAAK,MAAM,EAAQ,IAAK,EAAE,UAE9D,EAAQ,IAAO,EAAU,QAAQ,KAAK,MAAM,EAAQ,EAAE,EAAE,UAErD,GAAG,EAAM,UAClB,EAEa,IACX,GAC6B,CAC7B,IAAM,EAAQ,OAAO,GAAW,CAAC,EAC3B,EAAQ,GAA+B,CAAK,EAclD,MAZI,CAAC,OAAO,SAAS,CAAK,GAAK,GAAS,EAC/B,CAAE,MAAO,cAAe,QAAO,MAAO,OAAQ,EAGnD,GAAS,KACJ,CAAE,MAAO,YAAa,QAAO,MAAO,SAAU,EAGnD,GAAS,MACJ,CAAE,MAAO,eAAgB,QAAO,MAAO,MAAO,EAGhD,CAAE,MAAO,YAAa,QAAO,MAAO,MAAO,CACpD,EAEa,IACX,EACA,EAAuD,CAAC,IAC7C,CACX,GAAI,EAAO,QAAU,eAAgB,MAAO,eAE5C,GAAI,EAAO,QAAU,UAAW,MAAO,QAEvC,IAAM,EACJ,EAAmB,KAAM,GAAU,EAAM,QAAU,EAAO,aAAa,GAAG,MAC1E,EAAO,cAET,OAAO,EAAmB,aAAa,IAAqB,SAC9D,EAEa,KACX,EACA,EAAuD,CAAC,IAC3B,CAC7B,IAAM,EAAQ,GAAwB,EAAQ,CAAkB,EAOhE,OALI,EAAO,QAAU,eACZ,CAAE,MAAO,qBAAsB,QAAO,MAAO,QAAS,EAE3D,EAAO,QAAU,UAAkB,CAAE,MAAO,gBAAiB,QAAO,MAAO,MAAO,EAE/E,CAAE,MAAO,oBAAqB,QAAO,MAAO,MAAO,CAC5D,EAEa,IAA6B,GACnC,EAAO,QAEP,EAAO,QAEL,CAAE,MAAO,UAAW,MAAO,YAAa,MAAO,SAAU,EAFpC,CAAE,MAAO,SAAU,MAAO,kBAAmB,MAAO,OAAQ,EAF5D,CAAE,MAAO,WAAY,MAAO,UAAW,MAAO,OAAQ,ECtD9E,GAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,GAAa,mBACb,GAAe,IAEf,GAA+C,CACnD,mBAAoB,CAAC,CACvB,EAEM,IAAa,EAAgB,EAAW,MAE1C,OAAO,GAAU,SACb,EAAM,KAAK,EACX,GAAU,KACR,GACA,OAAO,CAAK,EAAE,KAAK,IAEZ,EAGX,GAAgB,GACP,GAAU,EAAO,EAEvB,GAAQ,KAGX,GAAe,GAA2B,CAC9C,IAAM,EAAU,OAAO,GAAS,CAAC,EAIjC,MAFI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAU,EAE/C,KAAK,MAAM,CAAO,CAC3B,EAEM,GAAe,GAA2B,GAAgB,OAAO,GAAY,CAAK,CAAC,EAEnF,KAAU,EAAe,EAAkB,IAC/C,IAAU,EAAI,EAAW,EAErB,GAAmB,GAA2B,CAClD,IAAM,EAAQ,GAAY,CAAK,EAE/B,MAAO,GAAG,GAAY,CAAK,EAAE,GAAG,IAAO,EAAO,QAAS,SAAS,GAClE,EAEM,IAA2B,EAAuB,IAAgC,CACtF,IAAM,EAAU,GAAY,CAAY,EAClC,EAAQ,GAAY,CAAU,EAIpC,OAFI,GAAS,EAAU,YAEhB,GAAG,GAAY,CAAO,EAAE,GAAG,GAAY,CAAK,EAAE,SACvD,EAEM,KAAsB,EAAuB,IAAgC,CACjF,IAAM,EAAU,GAAY,CAAY,EAClC,EAAQ,GAAY,CAAU,EAIpC,OAFI,GAAS,EAAU,IAEhB,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAO,EAAU,EAAS,GAAG,CAAC,CAAC,CACvE,EAEM,GAAkB,GAAkC,CACxD,GAAI,CAAC,EAAO,OAAO,GAEnB,IAAM,EAAO,IAAI,KAAK,CAAK,EAI3B,OAFK,OAAO,SAAS,EAAK,QAAQ,CAAC,EAE5B,EAAK,eAAe,QAAS,CAClC,IAAK,UACL,MAAO,UACP,KAAM,UACN,KAAM,UACN,OAAQ,SACV,CAAC,EAR4C,CAS/C,EAEM,GAAa,GAAyC,CAC1D,GAAI,CAAC,EAAO,OAAO,KAEnB,IAAM,EAAO,IAAI,KAAK,CAAK,EAE3B,OAAO,OAAO,SAAS,EAAK,QAAQ,CAAC,EAAI,EAAK,QAAQ,EAAI,IAC5D,EAEM,GAAe,GAAkC,CACrD,IAAM,EAAQ,OAAO,GAAS,CAAC,EAE/B,GAAI,CAAC,OAAO,SAAS,CAAK,GAAK,GAAS,EAAG,MAAO,MAElD,IAAM,EAAQ,CAAC,IAAK,KAAM,KAAM,KAAM,IAAI,EACpC,EAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAK,EAAI,KAAK,IAAI,IAAI,CAAC,EAAG,EAAM,OAAS,CAAC,EAGxF,MAAO,IAFY,EAAQ,MAAQ,GAEd,eAAe,QAAS,CAAE,sBAAuB,IAAa,EAAI,EAAI,CAAE,CAAC,EAAE,GAAG,EAAM,IAC3G,EAEM,IAAmB,GAAkC,CACzD,IAAM,EAAK,OAAO,GAAS,CAAC,EAI5B,MAFI,CAAC,OAAO,SAAS,CAAE,GAAK,GAAM,EAAU,GAErC,GAAG,GAAgB,OAAO,CAAE,EAAE,IACvC,EAEM,IAAoB,GAAqC,CAC7D,IAAM,GAAc,GAAU,CAAC,GAC5B,IAAK,GAAU,EAAM,KAAK,CAAC,EAC3B,OAAO,OAAO,EACd,IAAK,GAAW,EAAM,WAAW,GAAG,EAAI,EAAQ,IAAI,GAAQ,EAE/D,OAAO,EAAW,OAAS,EAAW,KAAK,IAAI,EAAI,iBACrD,EAEM,IACJ,GAEI,IAAU,iBAAyB,oBAEhC,sBAGH,GAAe,GACf,IAAU,QAAgB,SAE1B,IAAU,SAAiB,SAE3B,IAAU,YAAoB,aAE9B,IAAU,UAAkB,SAEzB,qBAGH,IAA2B,GAC1B,EAAO,QAEP,EAAO,QAEL,YAFqB,kBAFA,UAOxB,IAAgB,GAAyC,CAC7D,IAAM,EAAO,GAAa,CAAK,EAI/B,OAFK,EAEE,EAAK,OAAS,GAAK,GAAG,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,EAAE,KAAO,EAF9C,IAGpB,EAEM,GAAmB,GACvB,EACG,IAAK,GAAS,GAAU,EAAM,EAAE,CAAC,EACjC,OAAO,OAAO,EACd,KAAK,GAAG,EACR,YAAY,EAEX,GAAa,GACjB,GAAa,GAAkB,GAAU,EAAO,EAAU,CAAC,CAAC,EAEjD,GAAmB,GAAoB,CAClD,GAAI,CACF,IAAM,EAAS,IAAI,IAAI,CAAO,EAI9B,MAAO,CAAE,KAHI,EAAO,MAAQ,EAGb,KAFF,GAAG,EAAO,WAAW,EAAO,SAAS,KAAK,GAAK,GAExC,CACtB,MAAQ,CACN,MAAO,CAAE,KAAM,EAAS,KAAM,EAAG,CACnC,CACF,EAEa,QAAkD,CAC7D,CACE,GAAI,SACJ,MAAO,SACP,UAAW,GACX,QAAS,qDACT,aAAe,GAAkB,EAA4B,UAAU,SACzE,EACA,CACE,GAAI,SACJ,MAAO,OACP,QAAS,gDACT,MAAO,QACP,aAAe,GAAkB,EAA4B,UAAU,SACzE,EACA,CACE,GAAI,OACJ,MAAO,OACP,QAAS,6DACT,MAAO,QACP,aAAe,GAAkB,EAA4B,QAAQ,SACvE,EACA,CACE,GAAI,QACJ,MAAO,UACP,QAAS,qDACT,MAAO,QACP,aAAe,GAAkB,EAA4B,SAAS,SACxE,CACF,EAEa,IAAkB,GAAkD,CAC/E,IAAM,EAAO,GAAgB,EAAO,OAAO,OAAO,EAC5C,EAAQ,GAAa,EAAO,KAAK,GAAK,EAAK,MAAQ,GACnD,EAAW,GAAa,EAAO,SAAS,QAAQ,GAAK,GAAa,EAAK,IAAI,GAAK,EAAK,KAE3F,MAAO,CACL,GAAI,GAAG,EAAO,SAAS,SACvB,QACA,WACA,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAU,CAAK,EACf,GAAiB,WAAY,EAAO,OAAO,OAAO,EAClD,GAAiB,gBAAiB,EAAO,YAAY,EACrD,GAAiB,YAAa,EAAO,QAAQ,EAC7C,GAAiB,UAAW,EAAO,SAAS,MAAM,EAClD,GAAiB,WAAY,EAAO,SAAS,OAAO,EACpD,GAAiB,UAAW,EAAO,SAAS,MAAM,CACpD,EACA,YAAa,GACb,iBAAkB,eAClB,UAAW,CAAC,EAAO,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EACtD,WAAY,GAAgB,CAC1B,EACA,EACA,EAAO,OAAO,QACd,EAAO,aACP,EAAO,SACP,EAAO,SAAS,OAChB,EAAO,SAAS,QAChB,EAAO,SAAS,MAClB,CAAC,EACD,UAAW,EAAM,YAAY,CAC/B,CACF,EAEa,IAAkB,GAAkD,CAC/E,IAAM,EAAQ,GAAU,EAAO,OAAO,YAAa,oBAAoB,EACjE,EAAW,GAAuB,EAAO,OAAO,UAAU,EAC1D,EAAa,IAAiB,EAAO,OAAO,cAAc,EAEhE,MAAO,CACL,GAAI,GAAG,EAAO,SAAS,SACvB,QACA,WACA,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAU,MAAM,EAChB,GAAiB,aAAc,CAAK,EACpC,GAAiB,SAAU,CAAQ,EACnC,GAAiB,WAAY,EAAO,KAAK,UAAY,KAAO,MAAM,EAClE,GAAiB,aAAc,CAAU,EACzC,GAAiB,kBAAmB,IAAgB,EAAO,OAAO,aAAa,CAAC,EAChF,GAAiB,WAAY,IAAqB,EAAO,OAAO,cAAc,CAAC,CACjF,EACA,YAAa,GACb,iBAAkB,eAClB,UAAW,CAAC,EAAO,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EACtD,WAAY,GAAgB,CAC1B,EACA,EACA,EACA,EAAO,KAAK,UAAY,WAAa,gBACvC,CAAC,EACD,UAAW,GAAG,EAAM,GAAG,IAAW,YAAY,CAChD,CACF,EAEa,IAAgB,GAAkD,CAC7E,IAAM,EAAQ,EAAO,OAAS,KACxB,EAAU,GAAY,GAAO,YAAY,EACzC,EAAU,GAAY,GAAO,YAAY,EACzC,EAAS,GAAY,GAAO,WAAW,EACvC,EAAa,IAAmB,EAAS,CAAO,EAChD,EAAW,GAA+B,EAAO,KAAK,mBAAmB,EACzE,EAAS,GAAO,QAAU,KAC5B,EACF,GAAW,EAAI,OAAS,GAAc,IAAM,UAAY,GAAc,GAAK,QAAU,SACnF,EAAO,GAAc,IAAM,GAAuB,GAUtD,OARI,EAAS,GAAK,IAAW,UAC3B,EAAQ,OACR,EAAO,IACE,IAAW,cACpB,EAAQ,QACR,EAAO,IAGF,CACL,GAAI,GAAG,EAAO,SAAS,OACvB,MAAO,GAAwB,EAAS,CAAO,EAC/C,SAAU,EACV,QACA,OACA,QAAS,GACP,GAAU,MAAM,EAChB,GAAiB,SAAU,GAAY,CAAM,CAAC,EAC9C,GAAiB,UAAW,GAAgB,CAAO,CAAC,EACpD,GAAiB,YAAa,GAAgB,CAAO,CAAC,EACtD,GAAiB,eAAgB,GAAgB,GAAO,aAAa,CAAC,EACtE,GAAiB,WAAY,GAAgB,GAAO,YAAY,CAAC,EACjE,GAAiB,iBAAkB,GAAgB,CAAM,CAAC,EAC1D,GAAiB,cAAe,GAAY,GAAO,cAAc,CAAC,EAClE,GAAiB,eAAgB,GAAY,GAAO,oBAAoB,CAAC,EACzE,GAAiB,eAAgB,GAAe,GAAO,YAAY,CAAC,EACpE,GAAiB,gBAAiB,GAAe,GAAO,UAAU,CAAC,EACnE,GAAiB,QAAS,GAAY,GAAO,UAAU,CAAC,CAC1D,EACA,YAAa,GACb,iBAAkB,eAClB,UAAW,CAAC,GAAwB,EAAS,CAAO,EAAG,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EAC1F,WAAY,GAAgB,CAC1B,GAAwB,EAAS,CAAO,EACxC,EACA,GAAY,CAAM,EAClB,GAAO,UACP,GAAO,aACP,GAAO,UACT,CAAC,EACD,UAAW,CACb,CACF,EAEa,KACX,EACA,EAAwC,KAChB,CACxB,IAAM,EAAa,GAAwB,EAAQ,EAAQ,kBAAkB,EACvE,EAAS,EAAO,OAAO,QAAU,KACjC,EAAa,IAAa,EAAO,OAAO,SAAS,EACnD,EAAQ,EAAO,QAAU,YAAc,kBACvC,EAAyB,EAAO,QAAU,UAAY,SACtD,EAAO,EAAO,QAAU,GAAuB,GAC/C,EAAO,EAAO,QAAU,EAAI,EA6BhC,OA3BK,EAAO,QAKD,EAAO,SAAW,IAAW,WACtC,EAAQ,SACR,EAAQ,OACR,EAAO,GACP,EAAO,GACE,EAAO,SAAW,IAAW,aACtC,EAAQ,aACR,EAAQ,QACR,EAAO,GACP,EAAO,GACE,EAAO,SAAW,IAAW,UACtC,EAAQ,SACR,EAAQ,OACR,EAAO,GACP,EAAO,GACE,EAAO,SAAW,CAAC,IAC5B,EAAQ,qBACR,EAAQ,OACR,EAAO,GACP,EAAO,IAvBP,EAAQ,UACR,EAAQ,SACR,EAAO,GACP,EAAO,GAuBF,CACL,GAAI,GAAG,EAAO,SAAS,QACvB,QACA,SAAU,EACV,QACA,OACA,QAAS,GACP,GAAU,SAAS,EACnB,GAAiB,SAAU,CAAK,EAChC,GAAiB,QAAS,CAAU,EACpC,GAAiB,QAAS,EAAO,QAAU,KAAO,MAAM,EACxD,GAAiB,YAAa,EAAO,QAAU,KAAO,MAAM,EAC5D,GAAiB,SAAU,GAAY,CAAM,CAAC,EAC9C,GAAiB,eAAgB,GAAe,EAAO,OAAO,aAAa,CAAC,EAC5E,GAAiB,iBAAkB,EAAO,OAAO,SAAS,EAC1D,GAAiB,aAAc,EAAO,SAAS,EAC/C,GAAiB,kBAAmB,EAAO,aAAa,CAC1D,EACA,YAAa,GACb,iBAAkB,eAClB,UAAW,CAAC,EAAO,EAAY,CAAU,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EACpE,WAAY,GAAgB,CAC1B,EACA,EACA,GAAY,CAAM,EAClB,EAAO,QAAU,QAAU,UAC3B,EAAO,QAAU,YAAc,kBAC/B,EAAO,MACP,EAAO,UACP,EAAO,cACP,EAAO,OAAO,SAChB,CAAC,EACD,UAAW,GAAG,EAAK,GAAG,IAAa,YAAY,CACjD,CACF,EAEa,KACX,EACA,EAAiD,CAAC,IAC1B,CACxB,IAAM,EAAkB,CAAE,GAAG,GAAgB,GAAG,CAAQ,EAClD,EAAO,GAAgB,EAAO,OAAO,OAAO,EAC5C,EAAY,IAAe,CAAM,EACjC,EAAY,IAAe,CAAM,EACjC,EAAU,IAAa,CAAM,EAC7B,EAAW,IAAc,EAAQ,CAAe,EAEtD,MAAO,CACL,GAAI,EAAO,SACX,SACA,QAAS,EAAO,OAAO,QACvB,SAAU,EAAK,KACf,SAAU,EAAK,KACf,WAAY,GAAwB,EAAQ,EAAgB,kBAAkB,EAC9E,aAAc,EAAO,OAAO,YAC5B,YAAa,GAAuB,EAAO,OAAO,UAAU,EAC5D,aAAc,GAAY,EAAO,OAAO,YAAY,EACpD,aAAc,GAAY,EAAO,OAAO,YAAY,EACpD,kBAAmB,GAA+B,EAAO,KAAK,mBAAmB,EACjF,YAAa,IAAwB,CAAM,EAC3C,YACA,YACA,UACA,WACA,WAAY,GAAgB,CAC1B,EAAU,WACV,EAAU,WACV,EAAQ,WACR,EAAS,WACT,EAAO,YACT,CAAC,CACH,CACF,EAEa,KACX,EACA,EAA6D,CAAC,IAE9D,EAAQ,IAAK,GAAW,IAAyB,EAAQ,CAAE,oBAAmB,CAAC,CAAC,EAErE,IAA6B,GACxC,EACG,IAAK,GACJ,CACE,EAAI,GACJ,EAAI,WACJ,EAAI,UAAU,MACd,EAAI,UAAU,MACd,EAAI,UAAU,SACd,EAAI,QAAQ,MACZ,EAAI,QAAQ,SACZ,EAAI,SAAS,MACb,EAAI,SAAS,SACb,GAAU,EAAI,OAAO,OAAO,YAAY,GAAK,GAC7C,GAAU,EAAI,OAAO,OAAO,UAAU,GAAK,GAC3C,EAAI,OAAO,OAAO,WAAa,EACjC,EAAE,KAAK,GAAG,CACZ,EACC,KAAK,GAAG,uPCvfb,4DAoCI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAS,kBAAG,EAAK,EACjB,EAAK,cAAG,oBAAoB,EAC5B,EAAQ,iBAAG,IAAI,EAGX,EAAU,IAA4B,EAExC,EAAU,EAAO,EAAK,EACtB,EAAY,EAAsB,IAAI,EACtC,EAAU,EAAM,QAChB,EAAc,EAAM,QACpB,EAAkB,EAAsB,IAAI,EAE1C,EAAkB,OACd,EAAkB,OACvB,OACE,GACC,OAAO,GAAO,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,GAEpF,QAAS,IACP,GAAO,cAAY,IAAQ,IAAK,GAAqB,KAC9C,EAAK,OAAO,GAAa,IAAM,EAAE,EAAE,KAAI,SAExC,GAeH,MAAO,EACP,KAAI,GAbJ,OAAO,GAAO,MAAQ,GAAO,MAAQ,GAAO,IAAM,EAAE,EAAE,KAAI,GAC1D,OAAO,GAAO,IAAM,EAAE,EAAE,KAAI,EAYP,KAVrB,OACE,GAAa,MACX,GAAa,MACb,GAAa,kBACb,GAAa,IACb,EAAE,EACJ,KAAI,GAAM,GAI+B,EAhB7B,IAkBlB,CAAC,GAEF,OAAO,OAAO,CAClB,EACK,EAAI,MAAmC,IAAiB,EAAC,CAAO,IAAE,CAAkB,IACpF,EAAU,MAAY,IAAyB,EAAC,CAAI,IACpD,EAAc,SAAe,EAAK,QAAK,CAAI,EAAC,OAAM,IAElD,GAAqB,CAAM,QAAO,YAAa,KAC7C,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAE/B,EAAM,GADF,OAAU,GAAU,UAAY,EAAQ,EAAI,EAAK,EAAG,CAAI,EAAC,eAG1D,KAAI,EAAE,CAAI,EAAC,MAAM,EAAO,CAAG,EAAG,MAAK,EAAE,CAAI,EAAC,OACrD,EAEM,EAAW,SAAe,KACzB,EAAc,EAAE,GACnB,EAAO,SACP,EAAW,SACX,EAAY,QACZ,EAAU,UAGZ,GAEA,EAAU,MACV,EAAY,SACR,KACI,EAAM,MAAS,GAAsB,CAAG,iBAAc,MAC5D,EAAU,EAAO,cACjB,EAAc,EAAO,eACvB,OAAS,EAAO,GACd,EAAY,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,KACnE,QAAU,GACR,EAAU,GACZ,CACF,EAEA,OAAc,CACP,EAAW,CAClB,CAAC,MAEK,EAAqB,GAAoC,KACxD,EAAc,aAEb,EAAY,GAAW,CAC3B,MAAO,EAAS,+BAAiC,4BACjD,QAAS,GACT,WAAU,CACR,iBAAc,EACd,YAAS,EACT,qBAAsB,EAAa,EACnC,SACA,YAAW,EAAX,CAAW,EACX,YAAe,GAAiB,CAAS,EACzC,QAAO,KAAS,KACV,SACI,GAAuB,EAAO,SAAU,CAAO,EACrD,GAAe,CAAG,MAAO,UAAW,KAAM,gCAAgC,WAEpE,IAAuB,CAAO,EACpC,GAAe,CAAG,MAAO,UAAW,KAAM,6BAA6B,UAGnE,EAAW,EAEV,MAIf,EAEM,EAAY,KAAU,IAA6B,CAClD,EAAc,SAEb,IAEF,SAAQ,CACN,MAAO,4BACP,YAAa,4CACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,4BACP,YACE,0FACF,YAAa,uCAGL,OACJ,GAAuB,EAAO,QAAQ,EAC5C,GAAe,CAAG,MAAO,UAAW,KAAM,6BAA6B,SACjE,EAAW,CACnB,EAEJ,EAEM,EAAU,KAAU,IAA6B,OAChD,EAAc,KAAI,CAAe,IAAK,EAAO,aAElD,EAAkB,EAAO,gBACrB,CAEF,GAAe,CACb,MAAO,UACP,MACE,MAJiB,GAA4B,EAAO,QAAQ,GAIrD,SAAW,kBACd,iCACA,2CAEF,EAAW,CACnB,OAAS,EAAO,CACd,GAAe,CACb,MAAO,QACP,KAAM,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,GAE/D,QAAU,GACR,EAAkB,KACpB,CAlByB,CAmB3B,MAGD,EAAG,UAAH,CAAG,EACD,uBACmB,wBACX,CAAc,oLAIX,cAAa,kBAKR,EAAS,IAAK,EAAc,GAJxC,yEAGO,4CAES,EAAkB,IAAI,0DAKxC,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAS,QAA1B,CAAC,aADC,CAAS,UAGb,uBAEG,QAAU,GAAQ,KACV,EAA0E,UAEhF,EAAQ,KAAI,GACP,IAA0B,CACtB,MACL,UAAW,EAAS,EACpB,gBAAe,EAAE,CAAe,EAChC,OAAS,GAAU,EAAW,EAAM,MAAM,EAC1C,OAAS,GAAU,EAAkB,EAAM,MAAM,EACjD,SAAW,GAAU,EAAa,EAAM,MAAM,KAI9C,EAAQ,GACV,EAAQ,QAAO,CACb,GAAI,SACJ,MAAO,mBACP,KAAM,GACN,QAAS,SACT,YAAe,EAAQ,IAAI,EAA4B,MAAM,IAI1D,GAAuB,EAAO,CACnC,UAAS,CAAG,EAAQ,GAAI,EAAS,EAAG,WAAa,KACjD,UAAS,CAAG,WAAY,QAAQ,GAEpC,wBAED,GACA,kDAGc,QAAS,SAAU,MAAM,gBACzB,cACF,2DAEZ,CAAU,0BACV,CAAO,GAEE,MAAK,QACZ,EAAC,YAAD,CAAC,6FAEK,CAAW,EAAC,SAAW,GAAC,SAF9B,CAAC,MAAD,CAAC,GAOM,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAyB,oBAAM,EAAG,uBAA0B,EAAM,MAG3D,WAAS,WAAG,MAAG,MAAH,IACnB,GAAU,oBAAM,EAAG,MAGZ,cAAY,WAAG,MAAG,MAAH,IACtB,GAAS,oBAAM,EAAG,MAGX,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAyB,oBAAM,EAAG,uBAA0B,EAAM,oFApFxE,CAAG,MAAH,CAAG,SAFI,kBC1MR,aAUI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAS,kBAAG,EAAK,EAYpB,mCACE,EAAc,0BACd,EAAS,8BACT,EAAa,0BACb,EAAS,uCAbgB,GAA6B,KAC/C,EAAW,GAAuB,CAAG,OAAQ,qBAAqB,GAEnE,GAEL,GAAW,GAAI,EAAQ,GAAI,mBAAmB,EAAO,QAAQ,KAAO,cAAe,EAAI,EACzF,OACM,iBCvBR,aAWI,EAAS,kBAAG,IAAI,EAChB,EAAQ,iBAAG,IAAI,EAOX,EAAY,MAChB,IACI,IAAuC,EAAQ,GAC/C,IAAgC,CAAG,eAAc,kCAcpC,EAAQ,GAV5B,mQAKa,GACV,IACI,IAA8B,EAAQ,EAAE,CAAM,EAC9C,IAAuB,CAAG,eAAc,iBAAE,YAAS,KAAK,gCAC7D,CAAY,gIAXP,kBCxBR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAOnB,GAAuB,+BAAE,EAAc,0BAAG,EAAS,IAF5C,kBCVR,aA0FU,EAAO,IACZ,+CAEA,CAAQ,sBACH,CAAM,wBACL,CAAO,gBAnF6B,kBAAG,IAAI,MAEhD,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAY,EAAO,CAAC,EACpB,EAAa,EAAsB,IAAI,EACvC,EAAY,EAEV,EAAuB,GAAmB,KACxC,EAAS,OAAO,CAAK,SAEtB,OAAO,SAAS,CAAM,GAAK,EAAS,EAAU,EAE5C,CACT,EAEM,EAAe,GAAqC,IACpD,GAAU,KAA2B,MAAS,OAE5C,EAAS,OAAO,CAAK,SAEtB,OAAO,SAAS,CAAM,EAEpB,KAAK,MAAM,EAAS,GAAG,EAAI,IAFG,CAGvC,EAEM,EAAM,MAAY,EAAW,EAAC,CAAS,GAAI,KAAO,KAAI,GACtD,EAAO,MAAY,EAAW,EAAC,CAAU,IAAK,KAAO,KAAI,EAAG,CAAU,GAAI,KAAO,KAAI,GACrF,EAAQ,MAAY,gDAAgD,EAEpE,EAAU,SAAe,sBACR,GACnB,EAAU,MACV,EAAY,KACZ,EAAa,QACb,EAAQ,6BAA4B,QAGtC,KAEM,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,MAAS,IAAoB,qBAEvC,IAAY,EAAS,SAEzB,EAAY,EAAoB,EAAS,IAAI,QAC7C,EAAa,EAAS,QAAU,KAAO,KAAO,EAAoB,EAAS,KAAK,KAClF,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAY,KACZ,EAAa,QACb,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,KACd,EAAU,GAEd,CACF,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,EAGF,iPAIE,CAAO,wBACP,CAAK,WACG,+BACO,QATV,kBC9ER,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAOnB,IAAqB,+BAAE,EAAc,0BAAG,EAAS,IAF1C,8FCYR,KAcI,EAAS,kBAAG,SAAS,EACrB,EAAc,uBAAG,IAAI,EACZ,kBAAG,IAAI,EACH,sBAAG,IAAI,MACpB,EAAS,kBAAG,EAAK,6BAKjB,IAAD,CAAC,SAED,IAAO,+BAAE,EAAc,aAAa,cAEpC,IAAS,+BAAE,EAAc,aAAa,cAEtC,IAAU,+BAAE,EAAc,aAAa,mBAAqB,4BAAO,EAAS,cAPzE,EAAc,EAEV,EAAS,IAAK,OAAM,OAEpB,EAAS,IAAK,SAAQ,eAJZ,aAFZ,kBC1CR,aASI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAoB,6BAAG,IAAI,EAC3B,EAAkB,oCAClB,EAAS,kBAAG,EAAK,EAYpB,iDAEE,EAAc,0BACd,EAAS,qCACT,EAAoB,mCACpB,EAAkB,0BAClB,EAAS,oCAfoB,GAA+B,KACrD,EAAW,GAAuB,CAAG,OAAQ,oBAAoB,GAElE,GAEL,GAAW,GAAI,EAAQ,GAAI,mBAAmB,EAAW,EAAE,KAAO,cAAe,EAAI,EACvF,OACM,2FCvBR,aAUI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAY,qBAAG,IAAI,EAOf,EAAY,MACZ,EAAY,EAAS,IAAqC,EAAY,GAEtE,EAAc,EACT,GAA0B,CAC/B,iBAAc,IAId,EAAS,EAAS,GAA0B,CAAG,YAAS,IAErD,IACR,MAGF,EAAG,UAAH,CAAG,gBAWmB,EAAY,GAV9B,mPAKW,GACV,IACI,IAA4B,EAAY,EAAE,CAAM,EAChD,IAAiB,CAAG,iBAAc,EAAE,YAAS,KAAK,gCACvD,CAAY,0HAVhB,CAAG,MAAH,CAAG,KAFI,kBChCR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAOnB,GAAiB,+BAAE,EAAc,0BAAG,EAAS,IAFtC,kBCVR,aAuFU,EAAO,2BAER,GAAe,qDAA4B,CAAQ,uBAAQ,CAAM,wBAAS,CAAO,0BADjF,CAAK,kBAtEW,kBAAG,IAAI,EACC,sBAAG,IAAI,MAGlC,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAQ,EAAmC,IAAI,EAC/C,EAAY,EAEV,EAAe,GAAqC,IACpD,GAAU,KAA2B,OAAS,SAE5C,EAAS,OAAO,CAAK,SAEtB,OAAO,SAAS,CAAM,EAEpB,KAAK,MAAM,EAAS,GAAG,EAAI,IAFG,IAGvC,EAEM,EAAM,MAAY,EAAW,EAAC,CAAK,IAAG,CAAK,EAAC,MAAQ,KAAO,MAAQ,IAAI,GAAK,CAAC,EAC7E,EAAO,MAAY,EAAW,EAAC,CAAK,KAAI,CAAK,EAAC,OAAS,OAAS,KAAO,MAAQ,IAAI,GACnF,EAAQ,QACZ,CAAK,EAAG,iEAAmE,IAAI,EAG3E,EAAS,SAAe,sBACP,GACnB,EAAQ,QACR,EAAQ,6BAA4B,QAGtC,KAEM,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,MAAS,IAAoB,qBAEvC,IAAY,EAAS,SAEzB,EAAQ,KACV,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAQ,QACR,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,KACd,EAAU,GAEd,CACF,EAEA,OAAc,CACP,EAAS,CAChB,CAAC,kBAQS,CAAK,GALhB,+FAGE,CAAO,wBACP,CAAK,wGAGU,QATV,kBC3ER,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EAQvB,IAAe,+BAAE,EAAc,0BAAG,EAAS,8BAAG,EAAa,IAFpD,6OCUR,KAgBI,EAAS,kBAAG,aAAa,EACV,eAAG,EAAK,MACL,EAAiB,yBAAG,EAAI,EAC1C,EAAc,uBAAG,IAAI,EACZ,kBAAG,IAAI,EACH,sBAAG,IAAI,MACpB,EAAS,kBAAG,EAAK,MAIpB,EAAG,UAAH,CAAG,YAEM,IAAD,CAAC,aAEA,IAAD,CAAC,SAED,IAAS,+BAAE,EAAc,aAAa,mBAAqB,cAE3D,IAAO,+BAAE,EAAc,aAAa,cAEpC,mCACF,EAAc,aACJ,0BACW,kDAErB,EAAS,cAdN,EAAc,EAET,EAAiB,EAElB,EAAS,IAAK,SAAQ,OAEtB,EAAS,IAAK,OAAM,eAJF,OAFR,SADvB,CAAG,UAAH,EAAG,sCAAsC,EAAS,UAAlD,CAAG,CAFI,CC4GR,IAAM,GAAwB,IAAuC,CACnE,GAAI,EAAK,GACT,UAAW,EAAK,YAAc,EAAK,WAAa,KAChD,eACE,EAAK,iBAAmB,EAAK,gBAAkB,EAAK,WAAa,EAAK,UAAY,KACpF,SAAU,EAAK,iBAAmB,EAAK,gBAAkB,EAAK,WAAa,EAAK,UAAY,KAC5F,cAAe,EAAK,gBAAkB,EAAK,eAAiB,KAC5D,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,UAAW,EAAK,YAAc,EAAK,WAAa,UAChD,UAAW,EAAK,YAAc,EAAK,WAAa,GAChD,UAAW,EAAK,YAAc,EAAK,WAAa,EAAK,YAAc,EAAK,WAAa,GACrF,cAAe,EAAK,gBAAkB,EAAK,eAAiB,EAC5D,YAAa,EAAK,cAAgB,EAAK,aAAe,EACtD,YAAa,EAAK,cAAgB,EAAK,aAAe,CACxD,GAEM,GAA2B,IAA6C,CAC5E,GAAI,EAAK,GACT,QAAS,EAAK,UAAY,EAAK,SAAW,GAC1C,UAAW,EAAK,YAAc,EAAK,UACnC,eAAgB,EAAK,iBAAmB,EAAK,gBAAkB,EAAK,WAAa,EAAK,SACtF,SAAU,EAAK,iBAAmB,EAAK,gBAAkB,EAAK,WAAa,EAAK,SAChF,cAAe,EAAK,gBAAkB,EAAK,eAAiB,KAC5D,MAAO,EAAK,MACZ,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,OAAQ,EAAK,SAAW,EAAK,QAAU,GACvC,UAAW,EAAK,YAAc,EAAK,WAAa,KAChD,WAAY,EAAK,aAAe,EAAK,WACrC,WAAY,EAAK,aAAe,EAAK,YAAc,EACnD,WAAY,EAAK,cAAgB,EAAK,YAAc,KACpD,WAAY,EAAK,cAAgB,EAAK,YAAc,KACpD,UAAW,EAAK,YAAc,EAAK,WAAa,KAChD,UAAW,EAAK,YAAc,EAAK,WAAa,GAChD,UAAW,EAAK,YAAc,EAAK,WAAa,EAClD,GAEM,IACJ,EAAkC,CAAC,EACnC,KACkB,CAClB,eAAgB,EAAM,gBAAgB,KAAK,GAAK,KAChD,WAAY,GAAa,EAAM,WAAa,IAAI,KAAK,GAAK,IAC5D,GAEA,eAAsB,GAAkB,EAA8B,CAAC,EAA2B,CAChG,IAAM,GAAkB,EAAM,gBAAkB,IAAI,KAAK,EAEzD,GAAI,CAAC,EACH,MAAO,CAAC,EAGV,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,CAAe,CAAC,EAEjE,EAAM,eAAe,KAAK,GAAG,EAAM,IAAI,iBAAkB,EAAM,cAAc,KAAK,CAAC,EAEvF,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,uBAAuB,EAAM,SAAS,IACxE,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,gDAAgD,GAAe,CAAK,GAAG,CACzF,CAQA,OANK,EAAS,IACZ,MAAM,GAAmB,EAAU,6CAA6C,GAK3E,MAFa,EAAS,KAAK,GAEtB,MAAM,IAAI,EAAoB,CAC5C,CAEA,eAAsB,GAAkB,EAAmD,CACzF,IAAM,EAAQ,EAAQ,OAAS,eACzB,GAAkB,EAAQ,gBAAkB,IAAI,KAAK,GAAK,KAC1D,GAAa,EAAQ,WAAa,IAAI,KAAK,GAAK,KAElD,EACJ,GAAI,CACF,EAAW,MAAM,GAAa,GAAG,GAA+B,sBAAuB,CACrF,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,CACnB,gBAAiB,EACjB,WAAY,IAAU,eAAiB,KAAO,EAC9C,KAAM,EAAQ,KACd,WAAY,EAAQ,WAAa,UACjC,QACA,eAAgB,IAAU,cAAiB,EAAQ,eAAiB,KAAQ,KAC5E,WAAY,EAAQ,WAAa,CAAC,GAAG,IAAK,IAAc,CACtD,MAAO,EAAS,MAChB,OAAQ,EAAS,OACjB,OAAQ,EAAS,QAAU,SAC3B,QAAS,EAAS,MACpB,EAAE,CACJ,CAAC,CACH,CAAC,CACH,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,EAG1E,IAAM,EAAU,GAAsB,MAAM,EAAS,KAAK,CAAoB,EACxE,EAAwB,EAAQ,WAAW,QAAU,EAE3D,GAAI,EAAwB,GAAK,EAAQ,cAAgB,EACvD,MAAU,MACR,0DAA0D,EAAQ,cAAc,GAAG,EAAsB,GAC3G,EAGF,OAAO,CACT,CAmCA,eAAsB,IACpB,EACA,EACA,EAAkC,CAAC,EACpB,CACf,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,uBAAuB,mBAAmB,CAAO,IACnF,CACE,OAAQ,SACR,QAAS,GAAoB,EAC7B,aAAc,GAA0B,CAAK,CAC/C,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,CAE5E,CAEA,eAAsB,GACpB,EACA,EAAiC,CAAC,EACP,CAC3B,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,uBAAuB,mBAAmB,CAAO,EAAE,YACrF,CACE,QAAS,GAAoB,EAC7B,aAAc,GAA0B,CAAK,CAC/C,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAQA,OANK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,GAKnE,MAFa,EAAS,KAAK,GAEtB,MAAM,IAAI,EAAuB,CAC/C,CAEA,eAAsB,IACpB,EACA,EACA,EACA,EAAkC,CAAC,EACV,CACzB,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,uBAAuB,mBAAmB,CAAO,EAAE,YACrF,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,EAAQ,MACf,OAAQ,EAAQ,OAChB,OAAQ,EAAQ,QAAU,SAC1B,QAAS,EAAQ,MACnB,CAAC,EACD,aAAc,GAA0B,EAAO,CAAS,CAC1D,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,uCAAuC,GAAe,CAAK,GAAG,CAChF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,oCAAoC,EAGlE,GAAyB,MAAM,EAAS,KAAK,CAAuB,CAC7E,CAEA,eAAsB,GACpB,EACA,EACA,EACA,EACA,EAAkC,CAAC,EACV,CACzB,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,0BAA0B,mBAAmB,CAAU,IACzF,CACE,OAAQ,QACR,QAAS,CACP,eAAgB,mBAChB,GAAG,GAAoB,CACzB,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,EAAQ,MACf,OAAQ,EAAQ,OAChB,OAAQ,EAAQ,OAChB,QAAS,EAAQ,MACnB,CAAC,EACD,aAAc,GAA0B,EAAO,CAAS,CAC1D,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,2CAA2C,GAAe,CAAK,GAAG,CACpF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,wCAAwC,EAGtE,GAAyB,MAAM,EAAS,KAAK,CAAuB,CAC7E,CAEA,eAAsB,IACpB,EACA,EACA,EACA,EAAkC,CAAC,EACpB,CACf,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,0BAA0B,mBAAmB,CAAU,IACzF,CACE,OAAQ,SACR,QAAS,GAAoB,EAC7B,aAAc,GAA0B,EAAO,CAAU,CAC3D,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,uCAAuC,GAAe,CAAK,GAAG,CAChF,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,oCAAoC,CAE3E,CAEA,eAAsB,IACpB,EACA,EACA,EACA,EAAkC,CAAC,EACV,CACzB,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,0BAA0B,mBAAmB,CAAU,EAAE,eAC3F,CACE,OAAQ,OACR,QAAS,GAAoB,EAC7B,aAAc,GAA0B,EAAO,CAAU,CAC3D,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,wCAAwC,GAAe,CAAK,GAAG,CACjF,CAMA,OAJK,EAAS,IACZ,MAAM,GAAmB,EAAU,qCAAqC,EAGnE,GAAyB,MAAM,EAAS,KAAK,CAAuB,CAC7E,CAQA,eAAsB,IAAoB,EAOT,CAC/B,IAAM,EAAiB,EAAO,eAAe,KAAK,EAElD,GAAI,CAAC,EACH,MAAO,CAAE,MAAO,CAAC,EAAG,MAAO,CAAE,EAG/B,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,CAAe,CAAC,EAEjE,EAAO,WAAW,KAAK,GAAG,EAAM,IAAI,aAAc,EAAO,UAAU,KAAK,CAAC,EAEzE,OAAO,EAAO,OAAU,UAAU,EAAM,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EAEzE,OAAO,EAAO,QAAW,UAAU,EAAM,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAE5E,EAAO,QAAQ,KAAK,GAAG,EAAM,IAAI,SAAU,EAAO,OAAO,KAAK,CAAC,EAE/D,EAAO,UAAU,QAAQ,EAAM,IAAI,SAAU,EAAO,SAAS,KAAK,GAAG,CAAC,EAE1E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,0BAA0B,EAAM,SAAS,IAC3E,CACE,QAAS,GAAoB,CAC/B,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,eAAsB,IACpB,EACA,EAMI,CAAC,EACyB,CAC9B,IAAM,EAAQ,IAAI,gBAEd,OAAO,EAAO,OAAU,UAAU,EAAM,IAAI,QAAS,OAAO,EAAO,KAAK,CAAC,EAEzE,OAAO,EAAO,QAAW,UAAU,EAAM,IAAI,SAAU,OAAO,EAAO,MAAM,CAAC,EAE5E,EAAO,QAAQ,KAAK,GAAG,EAAM,IAAI,SAAU,EAAO,OAAO,KAAK,CAAC,EAE/D,EAAO,UAAU,QAAQ,EAAM,IAAI,SAAU,EAAO,SAAS,KAAK,GAAG,CAAC,EAE1E,IAAI,EACJ,GAAI,CACF,EAAW,MAAM,GACf,GAAG,GAA+B,uBAAuB,mBAAmB,CAAO,EAAE,aAAa,EAAM,SAAS,IACjH,CACE,QAAS,GAAoB,EAC7B,aAAc,GAA0B,CAAE,eAAgB,EAAO,cAAe,CAAC,CACnF,CACF,CACF,OAAS,EAAO,CACd,MAAU,MAAM,sDAAsD,GAAe,CAAK,GAAG,CAC/F,CAEK,EAAS,IACZ,MAAM,GAAmB,EAAU,mDAAmD,EAGxF,IAAM,EAAW,MAAM,EAAS,KAAK,EAErC,MAAO,CACL,OAAQ,EAAQ,OAAS,CAAC,GAAG,IAAI,EAAgB,EACjD,MAAO,OAAO,EAAQ,OAAS,CAAC,CAClC,CACF,CAEA,IAAa,IAAgC,GAG/B,CACZ,IAAM,EAAQ,IAAI,gBAAgB,CAAE,gBAAiB,EAAO,eAAe,KAAK,CAAE,CAAC,EAInF,OAFI,EAAO,WAAW,KAAK,GAAG,EAAM,IAAI,aAAc,EAAO,UAAU,KAAK,CAAC,EAEtE,GAAG,GAA+B,iCAAiC,EAAM,SAAS,GAC3F,EAEa,KACX,EACA,EAA8C,CAAC,IAE/C,GAAG,GAA+B,uBAAuB,mBAAmB,CAAO,EAAE,mBC7lB1E,KAAoB,EAAkB,IAA2B,CAC5E,IAAM,EAAO,IAAI,KAAK,CAAC,KAAK,UAAU,EAAS,KAAM,CAAC,CAAC,EAAG,CAAE,KAAM,kBAAmB,CAAC,EAChF,EAAO,SAAS,cAAc,GAAG,EACjC,EAAM,IAAI,gBAAgB,CAAI,EACpC,EAAK,KAAO,EACZ,EAAK,SAAW,EAChB,EAAK,MAAM,EACX,IAAI,gBAAgB,CAAG,CACzB,EAEa,IAAe,KAAO,IAAiC,CAClE,IAAM,EAAO,MAAM,EAAK,KAAK,EAE7B,OAAO,KAAK,MAAM,CAAI,CACxB,sQCdA,4DAkMU,EAAa,mBAGV,CAAM,EAAG,aAAe,kBAAkB,EAFlD,8DAGQ,oBACH,4BACI,CAAM,iEAlLhB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAC7B,EAAc,uBAAG,IAAI,EAenB,EAAO,EAAO,EAAE,EAEhB,EAAQ,EAAmB,cAAc,EACzC,EAAiB,EAAO,EAAE,EAC1B,EAAsB,EAAO,EAAE,EAC/B,EAAQ,EAAsB,IAAI,EAClC,EAAS,EAAO,EAAK,EAEnB,EAAc,OAChB,EAAkB,OAAqC,OACtD,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,IAGnF,EAAmB,MAAY,GAAwB,EAAC,CAAc,EAAE,EAAc,IACtF,EAAuB,MAC3B,GAA4B,EAAC,CAAc,EAAE,EAAc,IAGvD,EAAwB,GAAqC,IAC7D,IAAc,UAAW,GAC3B,EAAiB,GAA4B,EAAC,CAAmB,IAAE,CAAc,SACjF,EAAsB,EAAC,QAGzB,IAEI,IAAc,cAAe,GAC/B,EAAsB,GAAiC,EACrD,CAAuB,IACvB,CAAc,EACd,GAAyB,EAAC,CAAmB,GAAE,aAAa,QAE9D,EAAiB,GAAyB,EAAC,CAAmB,GAAE,oBAGlE,GAEA,EAAiB,EAAC,IAClB,EAAsB,EAAC,CACzB,EAEM,EAAY,SAAe,0BAG/B,EAAQ,SAEH,CAAI,EAAC,KAAI,EAAI,GAChB,EAAQ,qCAAoC,QAG9C,KAEM,GAA0B,EAAc,GAAI,IAAI,KAAI,GAAM,SAE3D,EAAwB,GAC3B,EAAQ,oCAAmC,QAG7C,KAEI,EAAmC,KACnC,EAAuC,UAEvC,CAAK,IAAK,YACZ,EAAiB,EAAG,CAAc,EAAC,KAAI,GAAM,MAExC,GAAmB,GACtB,EAAQ,gCAA+B,QAGzC,MAGE,CAAK,IAAK,cAAe,KACrB,EAAkB,GAAyB,EAAC,CAAmB,MACrE,EAAoB,EAAgB,WAAa,KACjD,EAAwB,EAAgB,eAAiB,MAEpD,GAAiB,CAAK,EAAuB,GAChD,EAAQ,+BAA8B,QAGxC,CACF,GAEA,EAAS,OACL,iBAEA,eAAgB,EAChB,UAAW,EACX,KAAI,EAAE,CAAI,EAAC,KAAI,EACf,oBACA,MAAK,EAAL,CAAK,EACL,cAAe,IAEjB,GAAa,CACf,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAS,GACX,CACF,EAEA,OAAc,CACZ,EAAa,MACb,EAAsB,IAAG,CAAa,EAEtC,SADuB,cAAgC,qCACvD,GAAO,MAAK,CACd,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,MAGF,EAAG,MACC,EAAG,EADP,CAAG,EAEK,KADJ,CACI,oHAGH,OAAU,UAAE,CAAI,OAAhB,MAAU,KAAE,EAAI,WAJjB,CAAG,UAAH,EAAG,GASH,iJAOa,kCACE,CAAmB,qCACf,CAAuB,2ZAOjC,CAAM,iBACD,sBACO,GAAuB,GAC3C,EAAsB,QACtB,EAAiB,GAA0B,CAAkB,EAAE,aACjE,MAjBA,OAAK,kBAAL,MAAK,kBACL,WAAc,UAAE,CAAc,OAA9B,UAAc,KAAE,EAAc,WAC9B,gBAAmB,UAAE,CAAmB,OAAxC,eAAmB,KAAE,EAAmB,gCAmBnC,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,aADD,CAAK,YAlCb,CAAG,MAAH,CAAG,SAFI,0QCzJR,aA6EU,EAAa,IACpB,GAAG,sDAAqD,KA5DvD,EAAY,8BACZ,EAAQ,iBAAG,IAAI,EACf,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,IAAI,EAChB,EAAI,aAAG,IAAI,EACX,EAAQ,iBAAG,IAAI,EACf,EAAe,wBAAG,IAAI,EACtB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAGzB,EAA6B,CACjC,+CACA,yEACA,wDAGI,EAAa,MAAY,EAAY,EAAC,OAAS,EAAY,EAAG,CAAmB,EACjF,EAAgB,MACpB,EAAQ,GACN,yHAAyH,EAGvH,MAAqB,EAAe,MAE1C,OAAc,CACZ,EAAa,MACb,EAAsB,IAAG,CAAa,CACxC,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,+BAIA,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAQ,QAAxB,CAAC,WADC,EAAQ,iCAKV,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAS,QAAzB,CAAC,WADC,EAAS,cAIb,EAAE,UAAF,EAAE,SACM,CAAa,QAAI,IAAI,KACzB,EAAE,UAAF,EAAE,MAAF,CAAE,cAAE,CAAI,QAAR,CAAE,MAFN,CAAE,MAMF,EAAC,EAND,EAAE,OAMF,EAAC,MAAD,CAAC,UAAD,EAAC,aAGC,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAI,QAApB,CAAC,WADC,EAAI,iCAKN,EAAC,UAAD,EAAC,MAAD,CAAC,YAAe,EAAS,QAAzB,CAAC,WADC,EAAS,sBANG,CAAgB,cAhBzB,wpBCnDR,aAyNU,EAAS,gBAChB,EAAE,SAAF,EAAE,MAAF,CAAE,MACF,EAAE,EADF,EAAE,MACF,EAAE,cACW,aAAY,MAAI,IAAM,KAC/B,EAAE,UAAF,EAAE,MAAF,CAAE,cAAE,CAAM,QAAV,CAAE,MAFN,CAAE,UAAF,EAAE,aAOA,EAAC,UAAD,EAAC,MAAD,CAAC,mBAAoB,aAAa,OAAlC,CAAC,kBADM,eAAa,uDAMlB,EAAE,UAAF,EAAE,MAAF,CAAE,mBAAqC,mBAAmB,OAA1D,CAAE,kBADK,qBAAmB,WAG5B,EAAG,UAAH,EAAG,cACU,UAAQ,GAAU,GAAS,EAAQ,IAAE,EAAnB,IAAO,gBAIxB,CAAO,EAAC,aAAW,KAAO,CAAmB,OAAI,CAAO,EAAC,OAAK,EAHxE,qCAEW,0CAEK,EAAsB,EAAC,CAAO,UANlD,CAAG,oBAJD,CAAW,sBAXX,CAAU,YA4BP,EAAQ,QACf,EAAG,MACD,KADF,CACa,SAAQ,GACR,YAAW,QAClB,QAOE,KAPF,CAOM,qBAAO,QAPb,eAGU,CAAgB,MAH1B,IAUO,OAAM,wBAEA,eAAiB,QAAQ,iBAEf,yBAA2B,EAAE,iBAC5B,0BAA4B,EAAE,EAJtD,qCAEQ,4IAO4B,CAAiB,kBAAe,CAAiB,qBAFvF,4CAGC,eAAK,kBAAL,cAAK,oEAxBV,CAAG,KAAH,EAAG,gBAAH,CAAG,GA8BI,EAAU,gBACjB,EAAE,SAAF,EAAE,MAAF,CAAE,UAAF,EAAE,iCAEQ,CAAa,qBAErB,EAAE,SAAF,EAAE,cACW,cAAa,MAAI,IAAM,KAChC,EAAE,UAAF,EAAE,MAAF,CAAE,cAAE,CAAM,QAAV,CAAE,MAFN,CAAE,MAAF,CAAE,aAHA,CAAa,wCAUf,EAAG,UAAH,CAAG,iBAKM,CAAY,EAAC,MAAQ,EAAE,EAJ9B,oCAEW,0BACD,CAAY,EAAC,uDAEZ,CAAmB,WACpB,MAPZ,CAAG,MAAH,CAAG,aADD,CAAY,sBAVZ,CAAW,YA1Pd,EAAkB,2BAAG,IAAI,EACzB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAG3B,EAA6C,KAC7C,EAA2B,GAC3B,EAAgE,KAK9D,EAAiB,aAAiB,mBAAqB,GAAG,EAC1D,EAAU,aAAiB,YAAc,eAAe,EACxD,EAAW,aAAiB,aAAe,mBAAmB,EAC9D,EAAa,aAAiB,eAAiB,IAAI,EACnD,EAAY,aAAiB,cAAgB,IAAI,EACjD,EAAc,aAAiB,gBAAkB,EAAI,EACrD,EAAmB,aAAiB,qBAAuB,YAAY,EACvE,EAAW,cAAkB,UAAU,QAAU,GAAK,CAAC,EACvD,EAAW,aAAiB,aAAW,IACvC,EAAa,aAAiB,eAAa,IAC3C,EAAU,aACT,mBAIG,GAAI,QACJ,MAAO,YACP,YAAa,GACb,YAAa,SACb,QAAS,KAIf,EAAsB,EAAO,EAAK,EAClC,EAAgB,EAA2B,IAAI,EAE7C,MAAyB,CAE7B,EADe,CACf,GAAQ,aAAU,CACpB,EAEM,EAA0B,GAAiC,CAC/D,GAAW,CACT,MAAO,EAAQ,MACf,QAAS,IACT,kBAAmB,GACnB,WAAU,CACR,aAAc,EAAQ,aACtB,SAAU,EAAQ,UAAY,KAC9B,UAAW,EAAQ,WAAa,KAChC,UAAW,EAAQ,WAAa,KAChC,KAAM,EAAQ,MAAQ,KACtB,SAAQ,OAAO,sBAAwB,OAG7C,EAEM,EAAe,SAAe,SAC7B,CAAY,KAAI,CAAmB,MAExC,EAAsB,OAClB,SACI,CAAY,EAAC,QAAO,CAC5B,QAAU,GACR,EAAsB,GACxB,CALsB,CAMxB,EAEM,MAA+B,CAC/B,IAA4B,OAC9B,aAAa,CAAuB,EACpC,EAA0B,KAE9B,EAEM,GAA8B,EAAU,IAAM,IAC9C,UAEO,OAAW,IAAW,WAI3B,GADM,OAAO,mBAAiB,KAEG,cACpC,OAAsC,uBAE9B,GAAc,WAAY,CACnC,EAAsB,EACtB,EAA2B,GACtB,QAAQ,QAAQ,EAAS,GAAI,MAAO,GAAU,CACjD,QAAQ,KAAK,gEAAiE,CAAK,CACrF,CAAC,QAGH,CAEI,GAAW,MAEf,EAAsB,EACtB,EAA0B,eAClB,EAA2B,EAAU,CAAC,EAC5C,GAA4B,EAEhC,EAEM,MAAuC,CACvC,GAEJ,EAA0B,CAC5B,EAEM,GAA8B,IAClC,EAA8B,GAG5B,YAAe,CACb,EAAsB,CACxB,IAIJ,OAAc,CACZ,EAAa,MACb,EAAsB,IAAG,IAAI,EAE7B,EAAkB,IAAwB,MACpC,EAAW,IACX,EAAkB,gBACb,oBAAuB,mBAAkB,OAAO,kBAAkB,MAGzE,OAAO,KAAK,CAAW,EAAE,OAAS,GACpC,GAAoB,CAAW,CAEnC,CAAC,EAED,OAAgB,CACd,EAAsB,EACtB,EAAsB,IAAG,IAAI,EAEzB,GACF,GAAoB,CAAe,CAEvC,CAAC,MAEK,GAAiB,IAA4B,CACjD,GAAI,EAAK,GACT,MAAO,EAAK,MACZ,YAAa,EAAK,aAAe,GACjC,YAAa,EAAK,aAAe,SACjC,kBAAmB,EAAK,mBAAqB,GAC7C,YAAa,EAAK,aAAe,GACjC,OAAQ,EAAK,OACb,QAAS,EAAK,UAGV,GAAK,MAA4B,KAC/B,EAAe,MAChB,CAAU,OACV,CAAW,EAAC,IAAI,EAAa,GAE9B,GAAI,OACJ,MAAK,OAAO,eAAiB,UAC7B,YAAa,GACb,YAAa,SACb,QAAS,QAER,CAAa,EAAC,IAAI,EAAa,YAG/B,CAAc,MAGd,GAED,GAAI,SACJ,MAAO,SACP,YAAa,GACb,kBAAmB,GACnB,QAAS,IATe,CAY9B,CAAC,EAGF,GAAa,wBAAE,EAAK,gBAAgB,YAAgB,WAAe,QAF5D,mBC1JE,IAAa,QACf,IAAH,CAAG;;+DA5DR,aAgBI,EAAc,uBAAG,IAAI,EACP,uBAAG,IAAI,MACrB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAGzB,EAAgB,IAAO,KAAI,EAAG,YAAW,EAEzC,EAAwB,OAAa,EAAc,GAAI,IAAI,KAAI,GAAM,IAAI,EAEzE,EAAkB,QACtB,KAAM,4BACN,SACE,8KACF,eAAc,EAAE,CAAwB,EACxC,cAAa,CACX,wBAAuB,CACrB,eAAc,EAAE,CAAwB,EACxC,mBACA,cAAe,QAKf,EAAwB,CAC5B,mBAAoB,4BACpB,WAAY,gBACZ,aAAY,CACV,uGACA,sKACA,uIACA,qKACA,sIAEF,cAAe,yCACf,YAAa,oBACb,cAAa,GACb,mBAIH,IAAmB,qBAAE,qCAAO,CAAkB,8BAAG,EAAa,uCAAG,EAAsB,QAFhF,uFCvDR,aAWI,EAAS,kBAAG,IAAI,EAChB,EAAO,gBAAG,IAAI,EAOV,EAAY,MACZ,EAAO,EAAS,IAAkC,EAAO,GAAI,eAAc,mBAExE,IAA4B,CAAG,eAAc,kBACrD,MAGF,EAAG,UAAH,CAAG,gBAWmB,EAAO,GAVzB,+QAKW,GACV,IACI,IAAyB,EAAO,GAAI,eAAc,oBAAK,CAAM,GAC7D,IAAmB,CAAG,eAAc,iBAAE,YAAS,KAAK,gCACzD,CAAY,0HAVhB,CAAG,MAAH,CAAG,KAFI,CChBR,IAAa,GAAwB,GAA8B,CACjE,IAAM,GAAc,GAAa,IAAI,KAAK,EAAE,YAAY,EAIxD,MAFI,CAAC,GAAc,IAAe,UAAkB,WAE5C,GAAa,IAAI,KAAK,CAChC,ECZa,IAA2B,qCA4BlC,GAAa,GAA4B,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAEpF,GAAa,GACjB,GAAS,OAAO,GAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,EACrD,EACD,KAEA,GAAkB,GAAqC,CAC3D,IAAM,EAAa,GAAU,CAAK,EAAE,YAAY,EAEhD,OAAO,IAAe,WAAa,IAAe,cAAgB,EAAa,cACjF,EAEM,GAA2B,GAC/B,GAAU,CAAK,EAAE,YAAY,IAAM,WAAa,WAAa,SAEzD,KACJ,EACA,EACA,IAC8B,CAC9B,IAAM,EAAS,GAAU,CAAK,EAE9B,GAAI,CAAC,EACH,MAAU,MAAM,SAAS,EAAQ,EAAE,OAAO,EAAU,4BAA4B,EAGlF,IAAM,EAAQ,GAAU,EAAO,OAAS,EAAO,UAAY,EAAO,IAAI,EAChE,EAAS,GAAU,EAAO,QAAU,EAAO,QAAQ,EAEzD,GAAI,CAAC,GAAS,CAAC,EACb,MAAU,MAAM,SAAS,EAAQ,EAAE,OAAO,EAAU,8BAA8B,EAGpF,MAAO,CACL,QACA,SACA,OAAQ,GAAwB,EAAO,MAAM,CAC/C,CACF,EAEM,KAAwB,EAAgB,IAAyC,CACrF,IAAM,EAAS,GAAU,CAAK,EAE9B,GAAI,CAAC,EACH,MAAU,MAAM,gBAAgB,EAAQ,EAAE,2BAA2B,EAGvE,IAAM,EAAO,GAAU,EAAO,MAAQ,EAAO,KAAK,EAElD,GAAI,CAAC,EACH,MAAU,MAAM,gBAAgB,EAAQ,EAAE,uBAAuB,EAGnE,IAAM,EAAQ,GAAe,EAAO,KAAK,EACnC,EAAe,MAAM,QAAQ,EAAO,SAAS,EAAI,EAAO,UAAY,CAAC,EAE3E,MAAO,CACL,OACA,UAAW,GAAU,EAAO,WAAa,EAAO,UAAU,GAAK,UAC/D,QACA,UACE,IAAU,eAAiB,KAAO,GAAU,EAAO,WAAa,EAAO,UAAU,GAAK,KACxF,cACE,IAAU,eACN,GAAU,EAAO,eAAiB,EAAO,cAAc,GACvD,KACN,UAAW,EAAa,KAAK,EAAU,IACrC,IAAwB,EAAU,EAAM,CAAa,CACvD,CACF,CACF,EAEM,IAA0B,GAAgC,CAC9D,GAAI,MAAM,QAAQ,CAAO,EAAG,OAAO,EAEnC,IAAM,EAAS,GAAU,CAAO,EAQhC,OANK,EAED,MAAM,QAAQ,EAAO,WAAW,EAAU,EAAO,YAEjD,MAAM,QAAQ,EAAO,MAAM,EAAU,EAAO,OAEzC,CAAC,EANY,CAAC,CAOvB,EAEa,IAAiC,GAA8C,CAC1F,IAAM,EAAQ,IAAuB,CAAO,EAAE,IAAI,GAAoB,EAEtE,GAAI,CAAC,EAAM,OACT,MAAU,MAAM,6CAA6C,EAG/D,OAAO,CACT,EAEa,KAAiC,CAC5C,SACA,iBACA,yBAK+B,CAC/B,KAAM,IACN,UACA,WAAY,IAAI,KAAK,EAAE,YAAY,EACnC,iBACA,YAAa,EAAO,IAAK,IAAW,CAClC,KAAM,EAAM,KACZ,UAAW,EAAM,WAAa,UAC9B,MAAO,GAAe,EAAM,KAAK,EACjC,UAAW,EAAM,WAAa,KAC9B,cAAe,EAAM,QAAU,cAAiB,EAAM,eAAiB,KAAQ,KAC/E,WAAY,EAAmB,IAAI,EAAM,EAAE,GAAK,CAAC,GAAG,IAAK,IAAc,CACrE,MAAO,EAAS,MAChB,OAAQ,EAAS,OACjB,OAAQ,GAAwB,EAAS,MAAM,CACjD,EAAE,CACJ,EAAE,CACJ,GAEa,KACX,EACA,EACA,IACG,CACH,IAAM,EAAY,EAAK,QAAU,eAAiB,KAAQ,EAAK,WAAa,EAE5E,GAAI,EAAK,QAAU,gBAAkB,CAAC,EACpC,MAAU,MAAM,iBAAiB,EAAK,KAAK,iBAAiB,EAAK,MAAM,wBAAwB,EAGjG,GAAI,EAAK,QAAU,eAAiB,CAAC,EAAK,cACxC,MAAU,MACR,iBAAiB,EAAK,KAAK,sDAC7B,EAGF,MAAO,CACL,iBACA,YACA,KAAM,EAAK,KACX,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,cAAe,EAAK,QAAU,cAAgB,EAAK,cAAgB,IACrE,CACF,ECxJM,IAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,GACJ,GAEI,IAAU,WAAa,IAAU,cAAsB,EAEpD,eAGH,IAAwE,CAC5E,aAAc,EACd,QAAS,EACT,YAAa,CACf,EAEM,GAAe,GAA0B,IAAgB,OAAO,KAAK,IAAI,EAAG,CAAK,CAAC,EAElF,KAAiB,EAAkC,KACtC,GAAS,IAAI,KAEvB,GAAW,EAGP,IACX,EACA,EAA2C,CAAC,IACjC,CACX,IAAM,EAAQ,GAAe,EAAM,KAAK,EAQxC,OANI,IAAU,eAAuB,oBAEjC,IAAU,UACL,GAAyB,EAAgB,EAAM,SAAS,GAAK,EAAM,WAAa,QAIvF,GAA6B,EAAgB,EAAM,UAAW,EAAM,aAAa,GACjF,EAAM,eACN,SAEJ,EAEa,IACX,GACsC,CACtC,IAAM,EAAQ,IAAc,EAAM,KAAM,qBAAqB,EACvD,EAAY,GAAqB,EAAM,SAAS,EAGtD,MAAO,CACL,GAAI,aACJ,QACA,SAAU,EACV,QANsB,EAAM,WAAa,IAAI,KAAK,EAAE,YAAY,GAAK,aAM3C,UAAY,UAAY,OAClD,KAAM,GACN,QAAS,GACP,GAAa,cAAc,EAC3B,GAAiB,OAAQ,CAAK,EAC9B,GAAiB,MAAO,CAAS,EACjC,GAAiB,aAAc,EAAM,EAAE,EACvC,GAAiB,WAAY,GAAgB,EAAM,SAAS,CAAC,EAC7D,GAAiB,eAAgB,GAAgB,EAAM,SAAS,CAAC,CACnE,EACA,WAAY,CAAC,EAAO,EAAW,EAAM,EAAE,EAAE,KAAK,GAAG,EACjD,UAAW,EAAM,YAAY,CAC/B,CACF,EAEa,KACX,EACA,EAA2C,CAAC,IACN,CACtC,IAAM,EAAQ,GAAe,EAAM,KAAK,EAClC,EAAc,GAA8B,EAAO,CAAc,EACjE,EACJ,IAAU,eAEN,KADA,GAAyB,EAAgB,EAAM,SAAS,GAAK,EAAM,WAAa,KAEhF,EAAQ,IAAU,cAAgB,UAAY,IAAU,UAAY,QAAU,eAC9E,EACJ,IAAU,cACN,sDACA,IAAU,UACR,qDACA,2CAER,MAAO,CACL,GAAI,QACJ,QACA,SAAU,EACV,MAAO,IAAU,cAAgB,OAAS,IAAU,UAAY,OAAS,SACzE,KACE,IAAU,cACN,GACA,IAAU,UACR,GACA,GACR,QAAS,GACP,GAAa,YAAY,EACzB,GAAiB,QAAS,CAAK,EAC/B,GAAiB,OAAQ,CAAW,EACpC,GAAiB,QAAS,CAAY,EACtC,GAAiB,eAAgB,CAAW,CAC9C,EACA,WAAY,CAAC,EAAO,EAAa,CAAY,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EACvE,UAAW,GAAG,IAAU,GAAO,GAAG,EAAY,YAAY,GAC5D,CACF,EAEa,IACX,GACsC,CACtC,IAAM,EAAQ,KAAK,IAAI,EAAG,OAAO,EAAM,eAAiB,CAAC,CAAC,EACpD,EAAS,KAAK,IAAI,EAAO,KAAK,IAAI,EAAG,OAAO,EAAM,aAAe,CAAC,CAAC,CAAC,EACpE,EAAW,KAAK,IAAI,EAAG,EAAQ,CAAM,EACrC,EAAQ,IAAU,EAAI,UAAY,GAAG,GAAY,CAAK,EAAE,SACxD,EACJ,IAAU,EACN,OACA,EAAW,EACT,GAAG,GAAY,CAAM,EAAE,WAAW,GAAY,CAAQ,EAAE,UACxD,aAGR,MAAO,CACL,GAAI,UACJ,QACA,WACA,MANY,IAAU,EAAI,OAAS,EAAW,EAAI,QAAU,UAO5D,KAAM,IAAU,EAAI,GAAwB,GAC5C,QAAS,GACP,GAAa,QAAQ,EACrB,GAAiB,gBAAiB,GAAY,CAAK,CAAC,EACpD,GAAiB,gBAAiB,GAAY,CAAM,CAAC,EACrD,GAAiB,kBAAmB,GAAY,CAAQ,CAAC,CAC3D,EACA,WAAY,CAAC,EAAO,CAAQ,EAAE,KAAK,GAAG,EACtC,UAAW,CACb,CACF,EAEa,IAA4B,GAA0D,CACjG,IAAM,EAAQ,KAAK,IAAI,EAAG,OAAO,EAAM,eAAiB,CAAC,CAAC,EACpD,EAAS,KAAK,IAAI,EAAO,KAAK,IAAI,EAAG,OAAO,EAAM,aAAe,CAAC,CAAC,CAAC,EACpE,EAAW,EAAQ,EAAI,KAAK,MAAO,EAAS,EAAS,GAAG,EAAI,EAC5D,EAAQ,IAAU,EAAI,aAAe,GAAG,EAAS,IACjD,EAAW,GAAG,GAAY,CAAM,EAAE,GAAG,GAAY,CAAK,EAAE,iBAS9D,MAAO,CACL,GAAI,QACJ,QACA,WACA,MAZY,IAAU,GAAK,IAAa,EAAI,OAAS,GAAY,IAAM,UAAY,QAanF,KAXA,IAAU,GAAK,IAAa,EACxB,GACA,GAAY,IACV,GACA,GAQN,QAAS,GACP,GAAa,OAAO,EACpB,GAAiB,iBAAkB,GAAG,GAAY,CAAM,EAAE,OAAO,GAAY,CAAK,EAAE,QAAQ,EAC5F,GAAiB,YAAa,GAAG,EAAS,GAAG,CAC/C,EACA,WAAY,CAAC,EAAO,CAAQ,EAAE,KAAK,GAAG,EACtC,UAAW,CACb,CACF,EAEa,IAA8B,GACzC,EACG,IAAK,GAAQ,EAAI,UAAU,EAC3B,KAAK,GAAG,EACR,YAAY,EC9LJ,GAAkC,CAC7C,CACE,GAAI,OACJ,MAAO,WACP,QAAS,iCACT,UAAW,GACX,SAAU,GACV,QAAS,OACT,SAAU,OACV,aAAe,GAAS,EAAiB,mBAC3C,EACA,CACE,GAAI,aACJ,MAAO,aACP,QAAS,yDACT,SAAU,GACV,QAAS,aACT,SAAU,OACV,aAAe,GAAS,EAAiB,cAC3C,EACA,CACE,GAAI,gBACJ,MAAO,SACP,QAAS,qDACT,SAAU,GACV,QAAS,gBACT,SAAU,SACV,eAAgB,OAChB,aAAe,GAAS,EAAiB,gBAC3C,EACA,CACE,GAAI,eACJ,MAAO,QACP,QAAS,sEACT,SAAU,GACV,QAAS,eACT,SAAU,SACV,eAAgB,OAChB,aAAe,GAAS,EAAiB,cAC3C,CACF,EAEa,KAAwB,CACnC,SACA,iBAAiB,CAAC,KAKlB,EAAO,IAAK,GAAU,CACpB,IAAM,EAAgB,IAA8B,CAAK,EACnD,EAAW,IAAyB,EAAO,CAAc,EACzD,EAAa,IAA2B,CAAK,EAC7C,EAAW,IAAyB,CAAK,EACzC,EAAa,EAAS,MACtB,EAAc,GAA8B,EAAO,CAAc,EACjE,EAAe,OAAO,EAAS,WAAa,CAAC,EAEnD,MAAO,CACL,GAAG,EACH,GAAI,EAAM,GACV,aACA,cACA,eACA,gBACA,WACA,aACA,WACA,eAAgB,IAA2B,CAAC,EAAe,EAAU,EAAY,CAAQ,CAAC,EAC1F,oBAAqB,OAAO,EAAc,WAAa,EAAE,EACzD,eAAgB,OAAO,EAAS,WAAa,EAAE,EAC/C,iBAAkB,OAAO,EAAW,WAAa,CAAC,EAClD,eAAgB,CAClB,CACF,CAAC,2FCvFH,aAUe,EAAI,aAAG,IAAI,MAGzB,EAAI,UAAJ,CAAI,qBAIa,UAAY,MAAS,gBAEzB,MAAQ,MAAS,gBACP,SAAW,MAAS,EANvC,wBACA,EAAI,4BACM,4DAEA,6EAGE,iCACK,iBACJ,OAVjB,CAAI,MAAJ,CAAI,KAFG,iBCXR,aAWQ,EAAa,qBAAoD,KAAO,EAAE,yBAI7E,GAAqB,0BAAU,wBAE/B,GAAqB,0BAAU,mBAE/B,GAAqB,0BAAU,qBAE/B,GAAqB,0BAAU,0CAE/B,CAAa,6BATN,KAAO,OAAM,cAER,KAAO,aAAY,gBAEnB,KAAO,gBAAe,gBAEtB,KAAO,eAAc,2BAR9B,wmBCZR,4DAyDI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,EAAI,EAChB,EAAI,aAAG,QAAQ,EAQb,EAAS,EAAM,QACf,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAa,EAA0B,SAAS,EAChD,EAAc,EAAO,EAAE,EACvB,EAAkB,EAAO,SAAS,EAClC,EAAc,EAAgC,IAAI,EAClD,EAAgB,EAAO,EAAK,EAC5B,EAAgB,EAAO,EAAK,EAC1B,EAAe,IAAO,KAAK,aAAa,OAAO,EAC/C,EAAc,uBACK,EAAgB,OAAM,EAAC,CAAc,EAAC,MAAM,MAE/D,EAAc,SAAe,EAAc,GAAI,eAAc,uBAC7D,EAAiB,EACnB,MAAO,UAAW,MAAO,SAAS,GAClC,MAAO,WAAY,MAAO,aAAa,GAErC,EAAc,OAChB,EAAkB,OAAqC,OACtD,GACC,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,IAAO,OAAO,EAAc,GAAI,EAAE,EAAE,KAAI,IAGnF,EAAI,MAAqB,IAAoB,CAAG,OAAM,EAAN,CAAM,EAAE,eAAc,EAAd,CAAc,KACtE,EAAgB,QAAY,CAAW,EAAC,KAAI,EAAG,YAAW,GAC1D,EAAgB,QAMhB,KAAM,aAAc,MAAO,SAAS,KALzB,MAAM,KAAI,IACnB,IAAG,EAAC,CAAM,EAAC,IAAK,IAAW,EAAM,WAAa,IAAI,KAAI,GAAI,OAAO,OAAO,IAC5E,KAIG,EAAO,IAAK,IAAK,CAAQ,KAAM,GAAqB,CAAK,EAAG,OAAK,IAEvE,EACK,EAAc,QACX,CAAI,EAAC,OAAQ,KACd,CAAe,IAAK,WAAa,EAAM,YAAS,EAAK,CAAe,EAAS,KAE5E,CAAgB,EAEd,EAAM,eAAe,SAAQ,EAAC,CAAgB,GAFvB,EAG/B,CACF,EACK,EAAgB,WACjB,CAAU,OAAI,CAAW,EAAC,KAAI,EAAG,YAAW,OAAM,CAAe,OAAI,CAAc,EAAC,IAAK,GAAK,GAAQ,EAAM,GAAE,GAAI,EAAM,KAAI,GAAI,EAAM,cAAa,GAAI,EAAM,YAAW,GAAI,EAAM,YAAW,GAAI,EAAM,WAAS,EAAI,KAAK,GAAG,KAG3N,EAAU,SAAe,KACxB,EAAc,EAAE,GACnB,EAAM,SACN,EAAQ,YAGV,GAEA,EAAU,MACV,EAAQ,SACJ,GAEF,EAAS,MADW,GAAiB,CAAG,iBAAc,IAC7C,GACX,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAU,GACZ,CACF,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,MAEK,GAAqB,CAAM,QAAO,SAAQ,UAC9C,GAAkB,CAChB,KAAI,EAAE,CAAc,EACpB,QAAS,GACT,OACA,QACA,WAGE,MAA0B,CACzB,EAAS,GAET,EAAc,GAEnB,GAAW,CACT,MAAO,oBACP,QAAS,IACT,WAAU,CACR,iBAAc,EACd,OAAM,OACJ,eAAgB,EAChB,OACA,YACA,QACA,YACA,mBAQI,KACE,EAAO,MAAS,GAAiB,CACrC,eAAgB,EAChB,YACA,OACA,YACA,QACA,oBAEF,EAAM,MAAO,CAAM,EAAE,CAAO,KAC9B,GAEF,kBAAmB,IAEvB,EAEM,OAAiC,CAChC,KAAS,OAET,EAAc,EAAE,CACnB,GAAe,CACb,MAAO,QACP,KAAM,4FAIV,CAEA,GAAW,CACT,MAAO,wBACP,QAAS,IACT,YAAa,OACb,WAAU,CACR,iBAAc,EACd,eAAgB,CAAU,EAE5B,kBAAmB,IAVrB,CAYF,EAEM,OAAsB,GAC1B,CAAW,GAAE,MAAK,CACpB,EAEM,GAAY,SAAe,QAC3B,CAAa,KAAI,CAAa,QAE7B,EAAc,EAAE,CACnB,GAAe,CAAG,MAAO,QAAS,KAAM,6BAA6B,SAGvE,GAEA,EAAgB,OACZ,KACI,EAAkB,IAAO,YACpB,KAAK,EAAI,CAAM,EACxB,EAAmB,IAAI,EAAM,GAAE,MAAQ,GAAqB,EAAM,GAAE,CAAI,iBAAc,KAExF,IAAgB,EACd,CAAc,EACd,IAA6B,CAC3B,OAAM,EAAN,CAAM,EACN,iBAAc,EACd,wBAGJ,GAAe,CAAG,MAAO,UAAW,KAAM,4BAA4B,EACxE,OAAS,EAAK,CACZ,QAAQ,MAAM,8BAA+B,CAAG,EAChD,GAAe,EAAG,CAChB,SAAU,4CACV,iBAAkB,IAEtB,QAAU,GACR,EAAgB,GAClB,CAzBA,CA0BF,EAEM,EAAgB,KAAU,IAAgC,KACzD,EAAc,QAAY,MAAM,6BAA6B,QAE5D,GAAiB,IAClB,IAA8B,EAAM,EAAc,eACrD,UAAW,EAAK,WAEpB,EAEM,GAAgB,KAAU,IAAiB,KACzC,EAAS,EAAM,cACf,EAAO,GAAQ,QAAQ,SAExB,GAAI,EAAI,CAAa,MAE1B,EAAgB,OACZ,KAEI,EAAc,IAA8B,MAD7B,IAAa,CAAI,CACkB,UAC7C,KAAc,QACjB,EAAiB,CAAU,QAE7B,EAAU,EAChB,GAAe,CACb,MAAO,UACP,KAAI,GAAK,EAAY,OAAM,eAAgB,EAAY,SAAW,EAAI,GAAK,KAAI,eAEnF,OAAS,EAAK,CACZ,QAAQ,MAAM,8BAA+B,CAAG,EAChD,GAAe,EAAG,CAChB,SAAU,4CACV,iBAAkB,IAEtB,QAAU,GACR,EAAgB,IAEZ,IAAQ,EAAO,MAAQ,GAC7B,CAtBgB,CAuBlB,EAEM,GAAa,GAAoB,KAC/B,EAAS,GAAuB,CAAG,OAAM,YAAc,EAAM,IAAE,GAEjE,GAAQ,GAAY,EAAM,CAAI,cAAe,EAAI,EACvD,EAEM,GAAY,KAAU,IAAoB,CACzC,EAAS,SAER,IAEF,SAAQ,CACN,MAAO,iBACP,YAAW,mCAAqC,EAAM,KAAI,2DAC1D,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,iBACP,YACE,sFACF,YAAa,4BAGL,OACJ,IAAkB,EAAM,WAAa,GAAI,EAAM,GAAE,CAAI,iBAAc,MACzE,EAAM,EAAG,CAAM,EAAC,OAAQ,GAAS,EAAK,KAAO,EAAM,EAAE,KACvD,EAEJ,oDAKG,GAAmB,+BAAE,EAAc,gBAElC,IAAD,CAAC,WAHC,EAAc,oCAMlB,EAAG,UAAH,CAAG,EACD,uBACmB,wBACX,CAAc,4CAGX,cAAa,uBACpB,2BACU,wBACF,CAAU,YACP,YACC,GAAU,GAEnB,EADU,GAAM,GAAK,EAAI,CAAU,IAAG,YACzB,IAAS,WAAa,WAAa,UAAQ,GAC1D,mCAGC,iBAIY,EAAW,SAAX,CAAW,WAJvB,UA+CW,EAAW,IAClB,GAAI,qBAAO,6BAjCZ,MAAO,sBACP,MAAK,EAED,GAAI,WACJ,MAAO,2BACP,KAAM,GACN,OACE,4EACF,OAAQ,2CACR,QAAS,KAGT,GAAI,SACJ,MAAO,+BACP,KAAM,GACN,OAAQ,oDACR,SAAQ,EAAE,CAAa,KAAI,CAAa,KAAI,CAAO,EACnD,OAAQ,yCACR,QAAS,KAGT,GAAI,SACJ,MAAO,kCACP,KAAM,GACN,OAAQ,iEACR,SAAQ,EAAE,CAAa,KAAI,CAAa,KAAI,CAAO,EACnD,OAAQ,yCACR,YAAO,KAAa,GAAY,OAlCvC,sJAIU,iFAmCC,oDA/CX,EAKW,EAAgB,kBANzB,EAAS,mDAuDjB,EAAG,OACD,EAAG,EADL,CAAG,MACD,CAAG,EACD,mFAImB,+EADlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,4BAKtB,6DAIU,CAAgB,oBACP,0DAFlB,OAAU,UAAE,CAAe,OAA3B,MAAU,KAAE,EAAe,oBAJ1B,CAAU,IAAK,YAAU,SAR/B,CAAG,IADL,CAAG,UAAH,EAAG,aAsBD,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,aADC,CAAK,4BAqDE,GAAY,WAAG,MAAG,MAAH,QACtB,EAAI,UAAJ,CAAI,IAAJ,CAAI,eACD,EAAG,EAAc,SAAS,OAAK,OAAK,EAAG,EAAc,SAAS,UAAQ;cACpE,EAAG,EAAc,WAAW,OAAK;qBAC1B,EAAG,EAAc,SAAS,OAAK,WAH3C,CAAI,GAOG,GAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,WACxB,QAKE,KALF,CAKsB,oBAAM,EAAG,uBAAe,EAAM,OALpD,2BACc,EAAM,EAAC,KAAO,yCACY,EAAG,EAAc,KACpD,MAAS,OAHd,IASO,GAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAoB,oBAAM,EAAG,uBAAe,EAAM,MAG3C,EAAK,QACT,IAAH,CAAG,WA1BM,EAAc,yBAA0B,EAAc,IAAK,qBAAqB,EA/C7F,kBAEG,SAAU,EAAK,IACb,IACI,GAAQ,KACF,EAA0E,UAEhF,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,sBACP,YAAe,CACb,GAAU,CAAG,CACf,EACA,iTACA,QAAS,GAAmB,mBAAmB,EAC/C,OAAM,wCAA2C,EAAiB,OAGhE,EAAS,GACX,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,uBACP,YAAe,CACb,GAAa,CAAG,CAClB,EACA,oHACA,QAAS,GAAmB,qBAAqB,EACjD,OAAM,0CAA6C,EAAiB,KACpE,KAAM,WAIH,CACT,GAAG,CAAG,OACJ,UAAW,WAAY,UAAS,2BAG/B,IACR,kDAGc,aAAc,gBAAiB,cAAc,gBAC7C,cACF,mDAEM,6BACP,CAAgB,wDAE3B,CAAO,GAEE,eAQA,YAUA,YAIA,yEAvKb,CAAG,MAAH,CAAG,YAPD,EAAI,IAAK,OAAM,gCAFZ,iCClUR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,EAAI,EAQnB,IAAmB,+BAAE,EAAc,0BAAG,EAAS,0BAAG,EAAS,kBAFpD,kBCZR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,yBAQf,GAAmB,+BAAE,EAAc,0BAAG,EAAS,cAD/C,EAAc,gBAFX,CCVR,IAAa,GAAuB,GAAmB,CACrD,IAAM,EAAS,OAAO,CAAK,EAI3B,MAFI,CAAC,OAAO,SAAS,CAAM,GAAK,EAAS,EAAU,EAE5C,CACT,mBCNA,aAmEU,EAAO,IACZ,6CAEA,CAAQ,sBACH,CAAa,wBACZ,CAAW,mBA/DyB,kBAAG,IAAI,MAEhD,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAgB,EAAO,CAAC,EACxB,EAAc,EAAsB,IAAI,EACxC,EAAY,EAEV,EAAQ,MAAY,4CAA4C,EAEhE,EAAU,SAAe,sBACR,GACnB,EAAU,MACV,EAAgB,KAChB,EAAc,QACd,EAAQ,6BAA4B,QAGtC,KAEM,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EAAK,MAAS,IAAuB,qBAEvC,IAAY,EAAS,SAEzB,EAAgB,GAAoB,EAAM,IAAI,QAC9C,EAAc,EAAM,QAAU,KAAO,KAAO,GAAoB,EAAM,KAAK,KAC7E,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAgB,KAChB,EAAc,QACd,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,KACd,EAAU,GAEd,CACF,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,EAGF,6NAIE,CAAO,wBACP,CAAK,WACG,+BACO,QATV,kBCvDR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,yBAQf,IAAmB,+BAAE,EAAc,0BAAG,EAAS,cAD/C,EAAc,gBAFX,kBCYR,KAMI,EAAS,kBAAG,QAAQ,EACpB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,EAAI,yBAUf,IAAO,+BAAE,EAAc,0BAAG,EAAS,YAEnC,IAAS,+BAAE,EAAc,0BAAG,EAAS,YAErC,IAAS,+BAAE,EAAc,0BAAG,EAAS,0BAAG,EAAS,cALjD,EAAS,IAAK,OAAM,KAEf,EAAS,IAAK,SAAQ,uBAJxB,CC8ER,IAAM,IAEF,CACF,CACE,GAAI,OACJ,MAAO,aACP,KAAM,GACN,OAAQ,wCACR,YAAc,GAAU,EAAM,KAC9B,QAAU,GAAiB,EAAa,oBACxC,YA9GuC,CAAC,CAAE,GAAI,OAAQ,MAAO,aAAc,UAAW,OAAQ,CAAC,CA+GjG,EACA,CACE,GAAI,cACJ,MAAO,eACP,KAAM,GACN,OAAQ,+CACR,YAAc,GAAU,EAAM,YAC9B,QAAU,GAAiB,EAAa,qBAAuB,EAAa,eAC5E,QArHwB,GAAuD,CACjF,GAAI,EAAI,oBACJ,CACE,CACE,GAAI,WACJ,MAAO,eACP,OAAQ,sDACV,EACA,CACE,GAAI,UACJ,MAAO,gBACP,OAAQ,qDACV,CACF,EACA,CAAC,EACL,GAAI,EAAI,eACJ,CACE,CACE,GAAI,UACJ,MAAO,mBACP,OAAQ,qDACV,CACF,EACA,CAAC,CACP,CA8FE,EACA,CACE,GAAI,WACJ,MAAO,WACP,KAAM,GACN,OAAQ,4CACR,YAAc,GAAU,EAAM,SAC9B,QAAU,GAAiB,EAAa,oBACxC,YApG2C,CAC7C,CACE,GAAI,UACJ,MAAO,UACP,OAAQ,kDACV,EACA,CACE,GAAI,OACJ,MAAO,uBACP,OAAQ,+CACV,EACA,CACE,GAAI,SACJ,MAAO,SACP,OAAQ,iDACV,CACF,CAqFE,EACA,CACE,GAAI,aACJ,MAAO,aACP,KAAM,GACN,OAAQ,8CACR,YAAc,GAAU,EAAM,WAC9B,QAAU,GAAiB,EAAa,kBACxC,YA3F6C,CAC/C,CACE,GAAI,UACJ,MAAO,UACP,OAAQ,oDACV,EACA,CACE,GAAI,OACJ,MAAO,uBACP,OAAQ,iDACV,EACA,CACE,GAAI,SACJ,MAAO,SACP,OAAQ,mDACV,CACF,CA4EE,EACA,CACE,GAAI,QACJ,MAAO,kBACP,KAAM,GACN,OAAQ,yCACR,YAAc,GAAU,EAAM,MAC9B,QAAU,GAAiB,EAAa,kBACxC,YAlFwC,CAC1C,CACE,GAAI,cACJ,MAAO,aACP,OAAQ,mDACV,EACA,CACE,GAAI,OACJ,MAAO,uBACP,OAAQ,4CACV,EACA,CACE,GAAI,SACJ,MAAO,SACP,OAAQ,8CACV,CACF,CAmEE,EACA,CACE,GAAI,UACJ,MAAO,eACP,KAAM,GACN,OAAQ,2CACR,YAAc,GAAU,EAAM,QAC9B,QAAU,GAAiB,EAAa,qBACxC,YAzE0C,CAC5C,CACE,GAAI,SACJ,MAAO,UACP,OAAQ,gDACV,EACA,CACE,GAAI,OACJ,MAAO,uBACP,OAAQ,8CACV,EACA,CACE,GAAI,SACJ,MAAO,SACP,OAAQ,gDACV,CACF,CA0DE,CACF,EA2Ba,IAAiB,GAC5B,EACI,CACE,KAAM,GAAG,EAAY,OACrB,YAAa,GAAG,EAAY,cAC5B,SAAU,GAAG,EAAY,WACzB,WAAY,GAAG,EAAY,aAC3B,MAAO,GAAG,EAAY,QACtB,QAAS,GAAG,EAAY,SAC1B,EACA,KAEO,KAA8B,CACzC,cACA,WACA,eACA,cAMI,CACJ,GAAI,CAAC,EACH,MAAO,CAAC,CAAE,MAAO,eAAgB,KAAM,EAAa,KAAM,GAAa,KAAM,CAAC,CAAE,CAAC,EAGnF,IAAM,EAAa,GAAoB,CACrC,MAAO,IACP,QAAS,CACP,eAAgB,EAAa,eAC7B,oBAAqB,EAAa,mBACpC,EACA,MAAO,EACP,eACA,UACF,CAAC,EAED,OAAO,EAAW,OACd,EACA,CAAC,CAAE,MAAO,eAAgB,KAAM,EAAa,KAAM,GAAa,KAAM,CAAC,CAAE,CAAC,CAChF,EC7Na,IACX,GAQuB,CACvB,IAAM,EAA+B,CAAC,EActC,OAZI,EAAa,qBAAqB,EAAS,KAAK,MAAM,GAEtD,EAAa,qBAAuB,EAAa,iBAAgB,EAAS,KAAK,aAAa,EAE5F,EAAa,qBAAqB,EAAS,KAAK,UAAU,EAE1D,EAAa,mBAAmB,EAAS,KAAK,YAAY,EAE1D,EAAa,mBAAmB,EAAS,KAAK,OAAO,EAErD,EAAa,sBAAsB,EAAS,KAAK,SAAS,EAEvD,CACT,EAEa,IACX,GACiC,CACjC,IAAM,EAAsE,CAC1E,eAAgB,GAAwB,CAAW,EACnD,gBAAiB,GAAwB,CAAW,EACpD,oBAAqB,EAAY,OAAO,qBAAsB,MAAM,EACpE,sBAAuB,EAAY,OAAO,qBAAsB,QAAQ,EACxE,qBAAsB,EAAY,OAAO,8BAA+B,MAAM,EAC9E,uBAAwB,EAAY,OAAO,8BAA+B,QAAQ,EAClF,kBAAmB,EAAY,OAAO,2BAA4B,MAAM,EACxE,oBAAqB,EAAY,OAAO,2BAA4B,QAAQ,EAC5E,oBAAqB,EAAY,OAAO,6BAA8B,MAAM,EAC5E,sBAAuB,EAAY,OAAO,6BAA8B,QAAQ,EAChF,kBAAmB,EAAY,OAAO,0BAA2B,MAAM,EACvE,oBAAqB,EAAY,OAAO,0BAA2B,QAAQ,CAC7E,EAEA,MAAO,CACL,GAAG,EACH,gBAAiB,IAAqB,CAAY,CACpD,CACF,EAEa,GAA6B,GACxC,IAAY,UAAY,cAAgB,EAE7B,IACX,GAC4B,EAAa,gBAAgB,IAAM,KCzDpD,IACX,GAGE,EAAS,sBACT,EAAS,qBACT,EAAS,WAAW,EAAS,qBAEtB,CACL,SAAU,CACR,GAAI,EAAS,SAAS,EAAS,qBAC/B,QAAS,GACT,cAAe,EACjB,CACF,EAGE,EAAS,oBAAsB,WAAa,EAAS,UAAU,YAC1D,CACL,SAAU,CACR,GAAI,EAAS,SAAS,YACtB,QAAS,GACT,cAAe,EACjB,CACF,EAGK,CAAC,ECnCJ,GAA2B,OAAO,0BAA0B,EAErD,IAA4B,IACvC,GAAW,GAA0B,CAAK,EAEnC,GAGI,OACX,GAA4C,EAAwB,ECfzD,IACX,GAC+B,CAC/B,IAAM,EAAe,GAAkB,KAAK,EAE5C,GAAI,CAAC,EAAc,MAAO,CAAC,EAE3B,IAAM,EAAmB,kBAAkB,mBAAmB,CAAY,IAE1E,MAAO,CACL,CACE,GAAI,UACJ,MAAO,UACP,KAAM,GACN,UAAW,SACX,MAAO,CACL,CACE,GAAI,aACJ,MAAO,aACP,KAAM,GACN,KAAM,GAAG,MAAoB,EAAiB,WAC9C,OAAQ,QACV,EACA,CACE,GAAI,gBACJ,MAAO,gBACP,KAAM,GACN,KAAM,GAAG,KAAuB,EAAiB,WACjD,OAAQ,QACV,CACF,CACF,CACF,CACF,kBCtCA,gMA0BI,EAAW,oBAAG,GAAG,EAKb,EAAY,EAAY,CAAmB,EAC3C,EAAc,QAAY,CAAY,GAAE,IAAM,IAAI,EAClD,EAAiB,QACrB,CAAY,GAAE,MAAI,EAAI,CAAY,GAAE,MAAI,EAAI,CAAY,GAAE,IAAM,cAAc,EAE1E,EAAc,GAAwB,EACtC,EAAW,MAAY,EAAY,EAAC,WAAW,EAC/C,EAAY,MAAY,IAAqB,EAAC,CAAW,IACzD,EAAgB,QAAY,CAAY,EAAC,gBAAkB,uBAAyB,EAAE,EACtF,EAAS,QACR,CAAc,GAEZ,EAAsB,GAAE,kBAAe,EAAK,GAC/C,EAAC,EACD,IACL,EACK,EAAkB,EAAY,CAAiB,EAE/C,EAAqB,OAAa,EAAW,GAAI,KAAK,QAAQ,OAAQ,EAAE,GAAK,GAAG,EAChF,EAAiB,MAAuC,KACtD,EAAQ,EAAG,CAAqB,EAAC,MAAM,GAAG,EAAE,OAAO,OAAO,SAE3D,EAAS,QAET,eAAgB,aAAa,EAAE,SAAS,EAAS,EAAC,EAC9C,GAA2B,EAAS,IAAuC,MAAM,EAGnF,GAA2B,EAAS,IAAuC,MAAM,EAN3D,MAO/B,CAAC,EACK,EAAe,QAAY,CAAY,EAAC,eAAe,EACvD,EAAgB,SACf,CAAe,EAAC,UAEjB,CAAe,EAAC,SAAQ,EAAC,CAAiB,KACrC,CAAiB,IAEnB,CAAe,EAAC,EACxB,EACK,EAAmB,MAAY,IAAuB,EAAC,CAAY,IACnE,EAAoB,QAAY,CAAqB,IAAK,GAAG,EAC7D,EAAkB,SACrB,CAAoB,GACnB,EAAO,EAAC,CAAe,EAAC,QAAM,GAC7B,CAAe,EAAC,SAAQ,EAAC,CAAiB,IAEzC,EAAgB,MAAqB,OACpC,CAAe,EAAC,cAEjB,MAAO,8BACP,QAAS,mEACT,KAAM,uFAIF,CAAiB,OAClB,kBACA,cACA,cAED,MAAO,sBACP,QAAS,0CACT,KAAM,+DAEL,kBAED,MAAO,yBACP,QAAS,6CACT,KAAM,kEAEL,oBAED,MAAO,sBACP,QAAS,8CACT,KAAM,+DAEL,eAED,MAAO,2BACP,QAAS,+CACT,KAAM,gEAEL,iBAED,MAAO,wBACP,QAAS,4CACT,KAAM,4EAIN,MAAO,mBACP,QAAS,oDACT,KAAM,4CAGd,CAAC,EAEK,EAAa,QAAY,CAAgB,IAAK,aAAa,EAC3D,EAAO,QAAY,CAAgB,IAAK,OAAO,EAC/C,EAAgB,MAAY,EAAO,EAAC,CAAc,GAClD,GAAW,EAAY,EAAuB,EAC9C,GAAQ,MAAY,IAAa,EAAC,EAAW,IAC7C,GAAc,MAClB,IAAmC,CACjC,qBAAoB,EAApB,CAAoB,EACpB,kBAAiB,EAAjB,CAAiB,EACjB,oBAAmB,EAAnB,CAAmB,EACnB,SAAQ,EAAR,EAAQ,KAIZ,OAAc,GACR,EAAc,EAAC,UACjB,GAAW,EAAC,EAAc,EAAC,SAAS,GAAE,CACpC,QAAO,EAAE,EAAc,EAAC,SAAS,QACjC,cAAa,EAAE,EAAc,EAAC,SAAS,eAG7C,CAAC,6BAIA,2BACQ,CAAgB,EAAC,+DAEf,CAAgB,EAAC,6BACpB,CAAgB,EAAC,oBAGf,GAAW,EAAC,EAAkB,KACrC,IAAQ,iCAAE,CAAc,MAGjB,GAAkB,EAAC,EAAiB,kBAGxB,EAAS,IAAK,UAAS,EAAG,CAAgB,EAAG,EAAO,EAAC,CAAS,WAIrE,EAAS,IAAK,UACrB,UACA,EAAS,IAAK,UACZ,UACA,UAAU,EAVjB,6BACS,CAAa,qEAEpB,CAAc,4BACd,CAAS,mCACQ,CAAkB,oCAS9B,GAAe,EAAC,EAAiB,kBAE5B,EAAS,IAAK,SAAW,SAAW,EAAS,IAAK,OAAS,OAAS,SAAS,EADzF,oEAEE,CAAgB,iCAChB,CAAc,aACJ,mBACI,iBACF,8BACF,CAAY,EAAC,oDACT,CAAY,EAAC,yBAItB,GAAY,EAAC,EAAiB,kBAEzB,EAAS,IAAK,SAAW,SAAW,EAAS,IAAK,OAAS,OAAS,aAAa,EAD7F,0DAES,CAAO,mCACd,CAAgB,iCAChB,CAAc,aACJ,mBACI,8BACJ,CAAY,EAAC,yBAIlB,GAAiB,EAAC,EAAiB,kBAE9B,EAAS,IAAK,SAAW,SAAW,EAAS,IAAK,OAAS,OAAS,SAAS,EADzF,kEAEE,CAAc,aACJ,mBACI,8BACJ,CAAY,EAAC,yBAIlB,GAAc,EAAC,EAAiB,kBAE3B,EAAS,IAAK,SAAW,SAAW,EAAS,IAAK,OAAS,OAAS,QAAQ,EADxF,kEAEE,CAAc,aACJ,8BACA,CAAY,EAAC,4BAIpB,EAAc,MAAG,IAA0B,CACjD,YAAa,EAAS,EAAC,MAAQ,IAC/B,SAAQ,EAAR,EAAQ,EACR,aAAY,EAAZ,CAAY,EACZ,SAAQ,CACN,KAAM,EACN,YAAa,EACb,SAAU,EACV,WAAY,EACZ,MAAO,EACP,QAAS,kCAKW,CAAc,GAAI,UAAQ,YAI9C,MAAK,EAAE,CAAc,EAAC,IAAK,IAAI,CAC7B,GAAI,EAAK,IAAM,EAAK,KACpB,MAAO,EAAK,MACZ,KAAM,EAAK,KACX,KAAM,EAAK,QAEb,YAAa,IAA+B,EAAC,CAAY,GAAE,MAAI,EAAI,CAAc,MAXpF,sDAEQ,CAAiB,iCACvB,CAAc,qEAUA,8BACH,CAAgB,wDAnG1B,CAAe,EAAC,QAAM,EAAI,CAAkB,kCAF1C,CCtJR,IAAa,IAAkB,CAAE,GAAI,cAAe,ECMvC,IAAyB,IAAyD,CAC7F,cAAe,EAAY,OAAO,qBAAsB,MAAM,CAChE,GCJM,IAAkB,GAEX,IAAoB,GAC3B,IAAU,cACL,CAAE,MAAO,cAAe,MAAO,UAAW,MAAO,MAAgB,EAGtE,IAAU,UACL,CAAE,MAAO,UAAW,MAAO,QAAS,MAAO,MAAgB,EAG7D,CAAE,MAAO,eAAgB,MAAO,eAAgB,MAAO,QAAkB,EAGrE,KACX,EACA,EACA,KACc,CACd,GAAI,EAAK,cACT,YAAa,EAAK,cAClB,OAAQ,EAAK,QACb,UAAW,EAAK,YAAc,EAAK,QACnC,SAAU,EAAK,UACf,MACE,EAAK,QAAU,gBAAkB,EAAK,QAAU,WAAa,EAAK,QAAU,cACxE,EAAK,MACL,EACE,eACA,EACE,cACA,UACV,WAAY,EAAK,YACjB,iBAAkB,EAAK,mBACvB,eAAgB,EAAK,gBACvB,GAEa,KAAiB,EAA8B,EAAgB,IAC1E,OAAO,EAAO,OAAU,UAAY,CAAC,OAAO,MAAM,EAAO,KAAK,EAC1D,EAAO,MACP,EAAS,EAAK,QAAU,KAAO,SAExB,GAAoB,GAC/B,GAAS,KAAO,IAAM,GAAa,CAAK,EAC7B,IAAsB,GACjC,GAAiB,GAAS,KAAO,KAAO,KAAK,MAAM,CAAK,CAAC,EAE9C,KAAoB,EAAuB,EAAQ,MAAmC,CACjG,IAAM,EAAO,GAAO,KAAK,GAAK,IAU9B,OARI,IAAS,KAAO,EAAK,QAAU,EAC1B,CACL,OACA,QAAS,EACT,UAAW,EACb,EAGK,CACL,OACA,QAAS,GAAG,EAAK,MAAM,EAAG,KAAK,IAAI,EAAQ,EAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAC5D,UAAW,EACb,CACF,ogBCnEA,aAkCI,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EACrB,EAAa,sBAAG,IAAI,EACpB,EAAM,eAAG,KAAK,EACd,EAAK,cAAG,QAAQ,EAChB,EAAQ,iBAAG,IAAI,EAUX,EAAoB,EAEtB,GAAI,SACJ,MAAO,SACP,QAAS,6CACT,SAAU,GACV,QAAS,UACT,SAAU,SAGV,GAAI,QACJ,MAAO,aACP,QAAS,oDACT,SAAU,GACV,QAAS,QACT,SAAU,SAGV,GAAI,aACJ,MAAO,SACP,QAAS,2CACT,SAAU,GACV,QAAS,cACT,SAAU,SACV,eAAgB,SAGhB,GAAI,mBACJ,MAAO,iBACP,QAAS,0CACT,SAAU,GACV,QAAS,qBACT,SAAU,SACV,eAAgB,SAGhB,GAAI,iBACJ,MAAO,gBACP,QAAS,+CACT,SAAU,GACV,QAAS,mBACT,SAAU,SACV,eAAgB,SAKd,EAAe,IAAO,KAAK,aAAa,OAAO,EACjD,EAAa,EAAsB,IAAI,EACrC,EAAY,4BACM,EAAc,GAAI,EAAS,GAAI,SAAQ,GAAI,EAAa,GAAI,MAAK,GAAI,EAAM,KAG7F,EAAqB,OAAY,QAAO,SAAQ,UAAW,KAC1D,EAAS,IAAK,EAAc,SAAW,KAAI,GAAM,MAAO,CAAC,MAExD,EAAc,OAAU,GAAU,UAAY,EAAQ,EAAI,EAAQ,GAClE,EAAe,OAAU,GAAW,UAAY,GAAU,EAAI,EAAS,EAEvE,EAAM,MAAS,IAAoB,EAAS,GAChD,iBAAc,EACd,gBAAa,EACb,SAAM,EACN,OAAQ,GAAM,KAAO,OACrB,QAAS,GAAM,KAAO,OACtB,MAAO,EACP,OAAQ,IAEJ,EAAO,EAAO,MAAM,IAAK,GAAS,IAAgB,EAAM,EAAc,EAAE,EAAa,WAGzF,OACA,MAAO,IAAc,EAAQ,EAAiB,CAAI,EAEtD,EAEM,EAAsB,GAAkB,EACvC,EAAS,IAAK,EAAc,GAEjC,GAA4B,CAC1B,YAAS,EACT,iBAAc,EACd,gBAAa,EACb,YAAa,EAAI,YACjB,OAAQ,EAAI,OACZ,SAAU,EAAI,SACd,MAAO,EAAI,MACX,UAAW,EAAI,UACf,gBAAiB,EAAI,WACrB,oBAAqB,EAAI,eACzB,sBAAuB,EAAI,kBAE/B,EAEM,EAAgB,SACjB,EAAc,GAAI,OAAM,GAAI,EAAS,GAAI,OAAM,GAAI,EAAa,GAAI,OAAM,GAAI,EAAM,SAI1F,EAAG,UAAH,CAAG,kBAGU,EAAK,MAAK,EAAgB,OAAM,EAAC,CAAU,GAAI,CAAC,cAChD,EAAQ,GAAI,MAAS,EAHhC,uBACmB,6FAMnB,uBAEG,SAAU,EAAK,IACb,IACI,GAAQ,KACF,EAA0E,UAEhF,EAAQ,KAAI,CACV,GAAI,WAEJ,MAAO,SACP,YAAe,CACb,EAAmB,CAAG,CACxB,EACA,iTACA,QAAS,sCAGJ,CACT,GAAG,CAAG,OACJ,UAAW,WAAY,UAAS,2BAGvC,GACA,gDAGY,iDAEM,YACT,6BACE,CAAY,6BACZ,CAAgB,gBACb,GAAW,GACxB,EAAU,OAAU,GAAQ,OAAU,SAAW,EAAO,MAAS,GAAQ,MAAM,QAAU,EAAC,GAC5F,EAEU,MAAK,QACT,IAAH,CAAG,GAGI,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,kCAEtB,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBAAiB,GAAkB,EAAG,EAAc,UAAU,QAAlE,CAAI,sBAEwB,IAAkB,EAAG,EAAc,KAAK,GAApE,GAAS,qDAET,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBAAiB,IAAoB,EAAG,EAAc,gBAAgB,QAA1E,CAAI,aAEJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBAAiB,GAAkB,EAAG,EAAc,cAAc,QAAtE,CAAI,aAEG,EAAU,MAAG,IAAkB,EAAG,EAAc,SAAS,OAChE,EAAG,UAAH,CAAG,YAEC,EAAI,UAAJ,EAAI,MAAJ,CAAI,KAAJ,GAAI,sBAAuC,QAAO,EAAE,CAAU,EAAC,IAAI,gBAChE,CAAU,EAAC,OAAO,OADrB,CAAI,aAIJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAyB,CAAU,EAAC,OAAO,OAA/C,CAAI,aALF,CAAU,EAAC,UAAS,iBAD1B,CAAG,MAAH,CAAG,WAVD,EAAM,EAAC,KAAO,aAAY,KAErB,EAAM,EAAC,KAAO,QAAO,OAErB,EAAM,EAAC,KAAO,mBAAkB,OAEhC,EAAM,EAAC,KAAO,iBAAgB,6DAxD7C,CAAG,MAAH,CAAG,KAFI,kBCjIR,KAII,EAAS,kBAAG,KAAK,EACjB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAOZ,EAAc,MACd,EAAS,IAAK,QAAgB,QAE9B,EAAS,IAAK,WAAmB,WAEjC,EAAS,IAAK,aAAqB,aAEnC,EAAS,IAAK,iBAAyB,iBAEvC,EAAS,IAAK,WAAmB,WAE9B,KACR,EAEK,EAAa,MACb,EAAS,IAAK,QAAgB,QAE9B,EAAS,IAAK,WAAmB,kBAEjC,EAAS,IAAK,aAAqB,aAEnC,EAAS,IAAK,iBAAyB,eAEvC,EAAS,IAAK,WAAmB,cAE9B,cACR,EAGF,4BACQ,CAAa,0BACnB,EAAS,+BACT,EAAc,iBACA,2BACP,CAAc,IAPhB,CClCR,IAAM,IAEF,CACF,CACE,GAAI,SACJ,MAAO,iBACP,KAAM,GACN,YAAc,GAAU,EAAM,OAC9B,QAAU,GAAiB,EAAa,cACxC,YAlBwC,CAC1C,CAAE,GAAI,MAAO,MAAO,SAAU,OAAQ,8BAA+B,EACrE,CAAE,GAAI,QAAS,MAAO,QAAS,OAAQ,gCAAiC,EACxE,CAAE,GAAI,WAAY,MAAO,kBAAmB,OAAQ,mCAAoC,EACxF,CAAE,GAAI,aAAc,MAAO,aAAc,OAAQ,qCAAsC,EACvF,CAAE,GAAI,iBAAkB,MAAO,eAAgB,OAAQ,wCAAyC,EAChG,CAAE,GAAI,WAAY,MAAO,cAAe,OAAQ,mCAAoC,CACtF,CAYE,CACF,EAEa,IAAuB,IAAgD,CAClF,OAAQ,CACV,GAEa,KAA4B,CACvC,QACA,eACA,cAMA,GAAoB,CAClB,MAAO,IACP,QAAS,CAAC,EACV,QACA,eACA,UACF,CAAC,kBCvDH,0FAYQ,EAAc,MAAY,EAAmB,GAAE,IAAM,IAAI,EACzD,EAAS,MAA2B,IAAI,EAExC,EAAgB,MAAY,GAAuB,CAAG,OAAQ,cAAc,IAAO,EAAE,EACrF,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,GAEtE,EAAW,MAAY,GAAuB,CAAG,OAAQ,SAAS,IAClE,EAAS,MAAqB,IAAmB,EAAC,CAAW,+BAIzD,GAAa,EAAC,EAAiB,kBAE1B,EAAS,IAAK,SACzB,EAAS,IAAK,YACd,EAAS,IAAK,cACd,EAAS,IAAK,kBACd,EAAS,IAAK,WACV,IACA,KAAK,EAPV,gDAQE,CAAS,gCACT,CAAc,OAIX,EAAc,MAAG,IAAwB,CAC/C,MAAK,EAAE,CAAS,EAChB,aAAY,EAAZ,CAAY,EACZ,SAAQ,CACN,OAAQ,CAAa,6BAKL,CAAc,GAAI,UAAQ,EAD7C,uCAEQ,+CACN,CAAc,8BACA,8BACH,CAAgB,aAG7B,qMA/BE,CAAY,EAAC,cAAa,6BAFvB,CCnBR,IAAa,IAAgB,CAC3B,GAAI,QACJ,aAAc,cACd,eAAgB,cAClB,ECEa,IAAyB,IAA0D,CAC9F,cAAe,EAAY,OAAO,6BAA8B,MAAM,EACtE,gBAAiB,EAAY,OAAO,6BAA8B,QAAQ,EAC1E,cAAe,EAAY,OAAO,qBAAsB,MAAM,CAChE,GCLM,IAAe,GACnB,OAAO,GAAU,WAAc,MAA0B,EAK9C,KACX,EACA,GAAG,IAC0B,CAC7B,IAAM,EAAU,EAAc,IAAK,GAAU,IAAS,CAAK,CAAC,EAE5D,OAAS,GACN,EACC,EACA,GAAG,CACL,EACJ,EAEa,KACX,EACA,EACA,IAEA,EAAK,IAAK,IAAS,CACjB,GAAG,EACH,QAAS,IAAY,EAAS,EAAI,GAAI,CAAe,CACvD,EAAE,kTClCJ,mDA6JU,EAAoB,+BAEzB,EAAC,UAAD,EAAC,MAAD,CAAC,YAAsB,EAAK,QAA5B,CAAC,aAED,EAAC,UAAD,EAAC,MAAD,CAAC,YAAgB,EAAc,QAA/B,CAAC,WAHC,EAAK,yBAOF,GAAU,EAAC,EAA0B,oBAElC,CAAS,qCAAoC,MAAK,kBACpD,CAAe,eAAc,eAAc,EAAC,CAAe,gBAAe,KAAK,UACxE,EAAgB,EAAO,IAHtC,oIAI6B,4DACC,gDAC5B,CAAc,8BACA,4BACH,EAAQ,oCACD,YA9InB,EAAQ,0BACR,EAAa,sBAAG,IAAI,EACpB,EAAQ,iBAAG,EAAE,EACb,EAAgB,yBAAG,IAAI,EACvB,EAAO,gBAAG,EAAK,EACf,EAAc,uBAAG,0BAA0B,EAC3C,EAAK,cAAG,IAAI,EAIR,EAAsB,MACrB,EAAQ,EAAC,OAGZ,EAAa,GACb,EAAQ,EAAC,KAAM,GAAM,aAAgB,YAAY,CAAM,IAAM,EAAa,GAEnE,iBAGS,YAAY,EAAQ,EAAC,EAAC,GAAM,KATjB,IAU9B,EAEK,EAAY,QACX,CAAsB,EAGzB,EAAQ,EAAC,KAAM,GAAM,aAAgB,YAAY,CAAM,MAAM,CAAsB,IAAK,KAHtD,IAKrC,EAEK,EAAY,QAChB,WAAQ,EACR,aAAY,EAAZ,CAAY,EACZ,eAAc,EAAE,CAAsB,KAGlC,EAAQ,mBAGL,IAAc,aAAY,QAAO,EAAC,CAAY,sBAAqB,CAAY,KACvF,EAIK,EAAW,MACX,EAAgB,qBAA4B,KAE5C,EAAK,EAAS,EAAa,EAAG,SAAW,OAEzC,CAAY,EAAS,YAElB,EAAO,GAAI,EAAa,EAAG,UAAY,IAC/C,EACK,EAAe,QAAY,CAAW,IAAK,YAAW,EAAG,CAAY,EAAG,IAAI,EAC5E,EAAa,QAAY,CAAW,IAAK,WAAS,EAAI,CAAW,IAAK,QAAQ,EAC9E,EAAc,QAAY,CAAe,IAAG,CAAsB,EAAG,EAAa,GAElF,EAAS,QACb,CAAW,KAAI,yDACuC,MAAK,KAAI,CAAc,IACzE,IAAI,EAEJ,EAAe,QAAY,CAAS,IAAG,CAAe,IAAG,CAAY,GAErE,EAAc,QAClB,KAGQ,GAAI,iBACJ,MAAK,aAAa,MAClB,KAAM,EAAS,EAAC,MAAQ,GACxB,KAAI,aAAa,MAAQ,KACzB,QAAS,IAGb,EAAQ,EAAC,IAAK,IAAM,CAClB,MAAK,aAAa,eAAe,CAAM,EACvC,KAAI,aAAa,cAAc,CAAM,EACrC,KAAI,aAAa,MAAQ,KACzB,KAAI,EAAE,CAAQ,EACd,OAAM,aAAa,kBAAkB,CAAM,MAI7C,EAAmB,GAA+D,MACjF,CAAS,WAEV,CAAe,GAEf,IAAG,EAAE,CAAS,EACd,QAAS,GACT,OAAM,aAAa,gBAAe,EAAC,CAAe,IAAE,CAAY,GAChE,YAKF,IAAG,EAAE,CAAS,EACd,QAAO,EAAE,CAAW,IAAK,UACzB,OAAM,CAAI,KAAI,aAAa,WAAY,OAAM,IAC7C,UAEJ,6BAIC,EAAC,UAAD,EAAC,MAAD,CAAC,YAAgB,EAAgB,QAAjC,CAAC,qFAGgC,CAAe,MAAE,CAAU,gBAElD,EAAU,8EAGpB,EAAC,UAAD,EAAC,MAAD,CAAC,YAAgB,EAAc,QAA/B,CAAC,cAED,EAAC,UAAD,EAAC,MAAD,CAAC,YAAsB,EAAK,QAA5B,CAAC,cAED,EAAC,UAAD,EAAC,MAAD,CAAC,yBAA2B,YAAY,OAAxC,CAAC,UAEO,EAAU,mBAfhB,EAAgB,SAEX,CAAS,SAMT,EAAO,IAAK,EAAQ,EAAC,QAAM,CAAK,EAAK,UAErC,EAAK,UAEJ,EAAQ,EAAC,OAAM,iCAdlB,kBCzIR,KAKI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAQnB,GAAqB,0BAAE,EAAS,+BAAG,EAAc,sCAF1C,sGCZR,aA0BI,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAqB,8BAAG,EAAI,EAC5B,EAAmB,4BAAG,EAAI,EAC1B,EAAa,sBAAG,EAAK,EACrB,EAAY,qBAAG,EAAK,EAKpB,EAAkB,2BAAG,IAAI,MAI5B,EAAG,WAAH,UACY,EAAc,GAAI,OAAM,GAAI,EAAS,GAAI,OAAM,kBAAiB,KAAE,SAazD,EAAkB,iEAOV,GAAmB,aAAa,GAJrC,+CAEL,qEAGC,8GANI,EAAa,oCAgBV,GAAmB,iBAAiB,GAL3C,+CAEH,UACC,oLAfE,EAAqB,0BAHhB,EAAkB,GAAI,MAAS,EAVhD,6BACF,EAAS,+BACT,EAAc,iBACA,0CACQ,2BACZ,EAAqB,8BACjB,EAAmB,6BACjC,EAAY,yGAKG,4DAdrB,CAAG,MAAH,CAAG,KAFI,CChCR,IAAa,GAAmB,GAE1B,IAAqD,CACzD,aAAc,eACd,QAAS,QACT,YAAa,SACf,EAEa,IACX,GACmC,CACnC,IAAM,EAAmD,CACvD,CAAE,GAAI,QAAS,MAAO,aAAc,MAAO,IAAY,EAAO,MAAO,CACvE,EAUA,GARI,OAAO,SAAS,EAAO,sBAAsB,GAAK,EAAO,wBAA0B,GACrF,EAAO,KAAK,CACV,GAAI,iBACJ,MAAO,kBACP,MAAO,IAAiB,EAAO,sBAAsB,CACvD,CAAC,EAGC,EAAO,mBAAoB,CAC7B,IAAM,EAAO,IAAI,KAAK,EAAO,kBAAkB,EAE3C,OAAO,SAAS,EAAK,QAAQ,CAAC,GAChC,EAAO,KAAK,CACV,GAAI,iBACJ,MAAO,mBACP,MAAO,EAAK,eAAe,QAAS,CAClC,IAAK,UACL,MAAO,UACP,KAAM,UACN,KAAM,UACN,OAAQ,SACV,CAAC,CACH,CAAC,CAEL,CAEA,MAAO,CAAE,KAAM,GAAkB,QAAO,CAC1C,ECzCa,IAAmB,EAAyB,IACvD,GAAM,EAAW,GAAG,EAAS,GAAG,mBAAmB,CAAE,IAAO,GAAY,KAEpE,QAAuC,CAC3C,CAAE,GAAI,OAAQ,MAAO,iBAAkB,OAAQ,gCAAiC,EAChF,CAAE,GAAI,OAAQ,MAAO,uBAAwB,OAAQ,gCAAiC,CACxF,EAEa,IACX,IAC2B,CAC3B,MAAO,UACP,aAAc,2BACd,KAAM,GACN,WAAY,GACZ,OAAQ,wBACR,YAAc,GAAW,EAAO,GAChC,eAAiB,GAAW,EAAO,OACnC,gBAAiB,IACjB,gBACA,gBAAkB,GAAW,8BAA8B,EAAO,KAClE,QAAU,GAAiC,EAAQ,aAAe,IAAc,EAAI,CAAC,CACvF,GC1Ba,IAAiC,GAIzB,CACnB,GAAI,CAAC,EAAS,QAAQ,OAAQ,OAAO,KAErC,IAAM,EACJ,EAAS,eAAiB,EAAS,QAAQ,KAAM,GAAU,EAAM,KAAO,EAAS,aAAa,EAC1F,EAAS,cACR,EAAS,QAAQ,IAAI,IAAM,KAIlC,MAFI,CAAC,GAAc,IAAe,EAAS,cAAsB,KAE1D,GAAgB,EAAS,eAAgB,CAAU,CAC5D,qLCTA,6DAyXU,GAAgB,EAAC,EAAa,EAAE,EAAuD,SACvF,EAAY,MAAG,EAAO,EAAC,YAAY,wCASzB,EAAa,KAAI,EAAsB,GAPtD,mCACE,CAAY,eACZ,CAAS,gCACT,CAAc,sCACd,EAAqB,oCACrB,EAAmB,gCACnB,EAAa,0CAEN,YACE,cACE,gBACE,GACb,+BAGF,IAAO,eAAE,CAAS,gCAAG,CAAc,2BAAY,CAAY,EAAC,aAEpD,EAAkB,cAlBxB,CAAY,GAAI,EAAK,IAAK,OAAM,OAe3B,CAAY,GAAI,EAAK,IAAK,OAAM,yBAOlC,EAAkB,QACzB,EAAG,UAAH,CAAG,YAEE,IAAD,CAAC,aAED,EAAC,UAAD,CAAC,IAAD,CAAC,uDAAwC,CAAY,cAArD,CAAC,aAEA,IAAD,CAAC,aALC,CAAc,SAET,CAAY,sCAMnB,uEAGO,YACG,uEALR,CAAoB,YAR1B,CAAG,MAAH,CAAG,GA/WQ,EAAa,iBAAG,IAAI,EAC9B,EAAqB,8BAAG,EAAI,EAC5B,EAAmB,4BAAG,EAAI,EAGtB,EAAS,MAA2B,IAAI,EACxC,EAAc,MAAY,EAAmB,GAAE,IAAM,IAAI,EACzD,EAAc,MAAY,GAAuB,CAAG,OAAQ,mBAAmB,IAC/E,EAAoB,MAAY,GAAuB,CAAG,OAAQ,WAAW,IAC7E,EAAgB,QAAY,CAAoB,GAAI,EAAE,EACtD,EAAqB,GAAuB,GAAe,EAAC,CAAc,EAAE,CAAE,EAEhF,EAAU,EAAM,QAChB,EAAiB,EAAO,EAAK,EAC7B,EAAe,EAAsB,IAAI,EACzC,EAAmB,EACjB,EAAW,SAAe,OACzB,CAAS,MAAK,CAAc,WAC/B,EAAO,SACP,EAAe,QACf,EAAiB,MAEV,OAGH,EAAS,EAAK,IACpB,EAAiB,MACjB,EAAe,SAEX,KACI,EAAQ,MAAS,GAAe,CACpC,eAAc,EAAd,CAAc,OAGZ,IAAc,WACT,OAGH,EAAc,EAAS,MAAM,MAAM,EAAG,IAAM,EAAE,OAAO,cAAc,EAAE,MAAM,KACjF,EAAU,UACJ,EAAS,IAA6B,CAC1C,eAAc,EAAd,CAAc,EACd,gBAAa,EACb,QAAS,WAGP,GACF,GAAY,EAAM,CAAI,QAAS,GAAM,cAAe,EAAI,GAG1D,mBAAqB,CACd,GAAmB,CAAG,MAAO,EAAI,EACxC,CAAC,IAEM,EACT,OAAS,EAAO,QACV,IAAc,KAIlB,EAAO,SACP,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,QAE7D,IAPW,EACT,EAOX,QAAU,CACJ,IAAc,KAChB,EAAiB,GAErB,CACF,EAEM,EAAgB,QAAY,CAAO,OACnC,EAAgB,QACf,CAAgB,EAAC,OAElB,EAAa,KAAI,CAAgB,EAAC,KAAM,GAAU,EAAM,KAAO,EAAa,GACvE,MAGF,CAAgB,EAAC,IAAI,IAAM,KANG,IAOtC,EACK,EAAY,QAChB,KACK,CAAgB,EAAC,KAAM,GAAU,EAAM,KAAE,EAAK,CAAgB,IAAK,KACpE,IAAI,EAGJ,EAAe,MACnB,IAA6B,GAAW,EAAkB,EAAO,EAAE,GAAK,GAAG,GAGvE,MAA6B,GAC7B,CAAoB,GACtB,GAAW,EAAC,CAAoB,GAAI,cAAe,EAAI,EAE3D,EAEI,EAAuC,KACrC,EAAsB,GAAwB,CAClD,EAAkB,CACpB,EAEI,EAAkB,EAAsB,IAAI,EAC5C,EAAoB,EAAO,EAAK,EAChC,GAAsB,EACtB,GAAmC,KAEnC,GAAyB,EAAO,EAAK,EACrC,GAA8D,KAC9D,GAAkE,KAEhE,OAAmC,GACvC,GAAyB,IAIvB,MADA,aAAa,EAAqB,EACV,MAKxB,MADA,cAAc,EAAwB,EACX,KAE/B,EAEM,OAAoC,CACxC,GAA0B,IAC1B,GAAyB,IACzB,GAA2B,gBAAkB,CAC3C,IAAe,EACV,GAAmB,CAAG,MAAO,EAAI,EACxC,EAAG,KACH,GAAwB,eAAiB,CACvC,GAA0B,EACrB,GAAmB,CAAG,MAAO,EAAI,EACxC,EAAG,KACL,EAEA,OAAgB,CACd,GAAoB,EACpB,IAAuB,EACvB,GAA0B,CAC5B,CAAC,MAEK,GAAmB,OAAY,QAAQ,IAAK,KAAiC,OAC3E,CAAS,MAAK,CAAc,MAAM,CAAY,GAAE,GAAI,GACxD,EAAkB,QAClB,EAAoB,UAGtB,KAEM,EAAG,KAAM,CAAc,GAAI,GAAE,KAAI,CAAS,GAAI,GAAE,KAAI,CAAY,EAAC,SAElE,GAAS,IAAQ,IAAiB,EAAI,CAAe,IAAK,YAI/D,GAAoB,MAEd,EAAS,EAAK,KACpB,EAAoB,OAChB,KACI,EAAM,MAAS,GAAe,EAAC,CAAY,EAAC,GAAE,CAClD,SAAQ,CAAG,UAAW,SAAS,EAC/B,MAAO,EACP,OAAQ,CAAC,MAGP,IAAc,iBAIP,EAAO,OAAU,WAC1B,EAAkB,EAAO,YAEzB,EAAkB,EAAO,MAAM,UAEnC,MAAQ,IACF,IAAc,YAIlB,EAAkB,KACpB,QAAU,CACJ,IAAc,MAChB,EAAoB,GAExB,CACF,EAEM,GAAa,QACb,CAAiB,KAAI,CAAe,IAAK,KAAa,MAElD,CAAe,GAAI,GAAK,CACjC,EAEK,GAAc,KAAU,IAAgC,KACvD,EAAqB,EAAE,CAC1B,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,CAEK,QAED,OACI,GAAiB,EAAO,GAAI,EAAI,EACtC,GAAe,CAAG,MAAO,OAAQ,KAAM,4BAA4B,KACnE,EAAkB,KAAK,IAAG,EAAC,CAAe,GAAI,EAAG,CAAC,MAClD,GAA2B,EAC3B,IAAe,EACV,EAAW,EACX,GAAmB,CAAG,MAAO,EAAI,EACxC,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,2CACV,iBAAkB,IAEtB,CACF,EAEM,GAAgB,KAAU,IAAgC,KACzD,EAAqB,EAAE,CAC1B,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,CAEK,QAED,KACI,EAAM,MAAS,IAAiB,EAAO,EAAE,EACzC,EAAQ,OAAU,GAAQ,cAAiB,SAAW,EAAO,aAAe,KAElF,GAAe,CAAG,MAAO,OAAQ,KAAI,mBADtB,IAAa,KAAwC,GAApC,KAAQ,EAAQ,iBACgB,KAChE,IAAe,EACV,EAAW,IAChB,EAAkB,GACb,GAAmB,CAAG,MAAO,EAAI,EACxC,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,wCACV,iBAAkB,IAEtB,CACF,EAEM,GAAa,KAAU,IAAgB,KACtC,EAAqB,EAAE,CAC1B,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,GAAe,EAAI,SAAU,EAAI,GAAE,CAAI,MAAO,EAAI,GACxD,GAAe,CAAG,MAAO,OAAQ,KAAM,qBAAqB,KAC5D,EAAkB,KAAK,IAAG,EAAC,CAAe,GAAI,EAAG,CAAC,MAClD,IAAe,EACV,GAAmB,CAAG,MAAO,EAAI,EACxC,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,oCACV,iBAAkB,IAEtB,CACF,EAEM,GAAe,KAAU,IAAgB,KACxC,EAAqB,EAAE,CAC1B,GAAe,CACb,MAAO,QACP,KAAM,uEAIV,IAEI,OACI,IAEF,SAAQ,CACN,MAAO,cACP,YAAa,sCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,cACP,YACE,oFACF,YAAa,yBAGL,OACJ,GAAU,EAAI,SAAU,EAAI,EAAE,EACpC,GAAe,CAAG,MAAO,UAAW,KAAM,qBAAqB,GAC/D,IAAe,EACV,GAAmB,CAAG,MAAO,EAAI,EACxC,EAEJ,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,oCACV,iBAAkB,IAEtB,CACF,EAEA,OAAc,CACP,EAAW,CAClB,CAAC,EAED,OAAc,GACZ,EAAkB,MAClB,GAAoB,KACf,GAAmB,CAC1B,CAAC,iBAKe,CAAc,oBAAmB,CAAc,IAAK,IAAI,EAFzE,gCACa,CAAe,6DAEjB,CAAgB,8BACX,EAAa,2BAClB,CAAgB,0BACjB,CAAc,iEAEhB,CAAY,2BACP,YAXN,iBCpXR,0FAQI,EAAQ,iBAAG,IAAI,EAKX,EAAQ,SAAe,EAAmB,GAAE,IAAM,SAAQ,GAAI,EAAQ,GAAI,aAAW,EACrF,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,2BAGxE,CAAQ,6BAET,6BACE,EAAQ,wCACc,CAAY,EAAC,oDACf,CAAY,EAAC,wBAGnC,0MAPE,CAAY,EAAC,cAAa,sCAHzB,CCdR,IAAa,IAAgB,CAC3B,GAAI,SACJ,aAAc,WACd,eAAgB,UAClB,ECCa,IAAyB,IAA6D,CACjG,qBAAsB,EAAY,OAAO,8BAA+B,MAAM,EAC9E,uBAAwB,EAAY,OAAO,8BAA+B,QAAQ,CACpF,kFCVA,KAKI,EAAS,kBAAG,IAAI,MASnB,EAAG,MACC,KADJ,CACuB,wEAAmB,EAAS,uCADnD,CAAG,MAAH,CAAG,CAFI,yOCZR,aAmIU,EAAa,mBAGV,CAAM,EAAG,aAAe,WAAW,EAF3C,8DAGQ,0BACC,CAAM,oEA/HhB,EAAY,qBAAG,EAAE,EACjB,EAAa,sBAAG,EAAE,EAClB,EAAa,sBAAG,QAAQ,EACxB,EAAa,sBAAG,IAAI,EACpB,EAAsB,+BAAG,IAAI,EAc3B,EAAQ,EAAO,EAAE,EACjB,EAAS,EAAO,EAAE,EAClB,EAAS,EAA8B,QAAQ,EAC/C,EAAQ,EAAsB,IAAI,EAClC,EAAS,EAAO,EAAK,EAEnB,EAAkB,IAElB,EAAa,EACf,MAAO,8BAA+B,MAAO,QAAQ,GACrD,MAAO,gCAAiC,MAAO,UAAU,GAGvD,EAAY,SAAe,mBAG/B,EAAQ,SAEH,CAAK,EAAC,KAAI,EAAI,GACjB,EAAQ,iCAAgC,QAG1C,MAEI,CAAK,EAAC,KAAI,EAAG,OAAS,IAAgB,GACxC,EAAK,oDAAgD,QAGvD,OAEK,CAAM,EAAC,KAAI,EAAI,GAClB,EAAQ,+BAA8B,QAGxC,MAEI,CAAM,EAAC,KAAI,EAAG,OAAS,EAAiB,GAC1C,EAAK,4BAA+B,EAAe,4BAGrD,GAEA,EAAS,OACL,iBACa,MAAK,EAAE,CAAK,EAAC,KAAI,EAAI,OAAM,EAAE,CAAM,EAAC,KAAI,EAAI,OAAM,EAAN,CAAM,IACjE,GAAa,CACf,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAS,GACX,CA5BA,CA6BF,EAEA,OAAc,GACZ,EAAQ,OACR,EAAS,OACT,EAAS,KACT,EAAa,MACb,EAAsB,IAAG,CAAa,EAItC,SAHuB,cACrB,yCAEF,GAAO,MAAK,CACd,CAAC,EAED,OAAgB,CACd,EAAsB,IAAG,IAAI,CAC/B,CAAC,MAGF,EAAG,MACC,EAAG,EADP,CAAG,MACC,CAAG,EACC,mJAIH,OAAU,UAAE,CAAK,OAAjB,MAAU,KAAE,EAAK,mCASI,EAAc,UAAW,GAAM,EAAE,QAAK,EAAK,CAAM,IALnE,8DAIM,0GADT,OAAU,UAAE,CAAM,OAAlB,MAAU,KAAE,EAAM,WAZnB,CAAG,MAkBH,EAAG,EAlBH,EAAG,GAmBC,KADJ,CACI,qHAGH,OAAU,UAAE,CAAM,OAAlB,MAAU,KAAE,EAAM,WAJnB,CAAG,UAAH,EAAG,aAWC,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,aADD,CAAK,YA7Bb,CAAG,MAAH,CAAG,KAFI,CCnFR,IAAa,IAAwB,GACnC,EAAM,QAAQ,MAAO,MAAM,EAAE,QAAQ,KAAM,KAAK,EAErC,KAAqB,EAA2B,IACtD,EAEE,EAAU,KAAM,GAAU,EAAM,KAAO,CAAU,GAAK,KAFrC,KCMpB,IAAiB,EAAkC,KACtC,GAAS,IAAI,QAAQ,OAAQ,GAAG,EAAE,KAE5C,GAAW,EAGd,IAAY,EAAe,IAC/B,EAAM,OAAS,EAAY,GAAG,EAAM,MAAM,EAAG,KAAK,IAAI,EAAG,EAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAK,EAEpF,GAAkB,GAA6C,CACnE,GAAI,CAAC,EAAO,MAAO,GAEnB,IAAM,EAAS,IAAI,KAAK,CAAK,EAAE,QAAQ,EAEvC,OAAO,OAAO,SAAS,CAAM,EAAI,EAAS,CAC5C,EAEM,IAAqD,CACzD,OAAQ,EACR,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,CACX,EAEM,IAGF,CACF,QAAS,CAAE,MAAO,aAAc,MAAO,QAAS,KAAM,EAAgB,EACtE,QAAS,CAAE,MAAO,aAAc,MAAO,OAAQ,KAAM,EAAQ,EAC7D,QAAS,CAAE,MAAO,SAAU,MAAO,QAAS,KAAM,EAAa,EAC/D,QAAS,CAAE,MAAO,WAAY,MAAO,UAAW,KAAM,EAAa,EACnE,OAAQ,CAAE,MAAO,iBAAkB,MAAO,OAAQ,KAAM,EAAsB,CAChF,EAEa,IACX,GACsC,CACtC,IAAM,EAAQ,GAAc,EAAS,MAAO,kBAAkB,EACxD,EAAS,GAAc,EAAS,OAAQ,EAAE,EAC1C,EAAS,GAAc,EAAS,OAAQ,EAAE,EAOhD,MAAO,CACL,GAAI,WACJ,QACA,SATe,EACb,GAAS,EAAQ,EAAE,EACnB,EACE,WAAW,GAAS,EAAQ,EAAE,IAC9B,mBAMJ,MAAO,OACP,KAAM,GACN,QAAS,GACP,GAAa,OAAO,EACpB,GAAiB,QAAS,CAAK,EAC/B,GAAgB,CAAM,EACtB,GAAiB,UAAW,CAAM,CACpC,EACA,WAAY,CAAC,EAAO,EAAQ,CAAM,EAAE,KAAK,GAAG,EAC5C,UAAW,EAAM,YAAY,CAC/B,CACF,EAEa,IACX,GACsC,CACtC,IAAM,EAAS,EAAS,SAAW,WAC7B,EAAQ,EAAS,QAAU,UAC3B,EAAe,GAAgB,EAAS,SAAS,EAEvD,MAAO,CACL,GAAI,cACJ,QACA,SAAU,IAAiB,IAAM,mBAAqB,gBAAgB,IACtE,MAAO,EAAS,UAAY,OAC5B,KAAM,EAAS,GAAe,GAC9B,QAAS,GACP,GAAa,UAAU,EACvB,GAAiB,SAAU,CAAK,EAChC,GAAiB,eAAgB,CAAY,EAC7C,GAAiB,WAAY,GAAgB,EAAS,SAAS,CAAC,CAClE,EACA,WAAY,CAAC,EAAO,CAAY,EAAE,KAAK,GAAG,EAC1C,UAAW,GAAG,IAAe,GAAG,GAAe,EAAS,SAAS,GACnE,CACF,EAEa,IACX,GACsC,CACtC,IAAM,EAAS,EAAS,YAAc,UAChC,EAAe,IAAuB,GACtC,EAAgB,GAAgB,EAAS,UAAU,EACnD,EAAgB,GAAgB,EAAS,UAAU,EACnD,EAAa,KAAK,IAAI,EAAG,OAAO,EAAS,YAAc,CAAC,CAAC,EACzD,EACJ,IAAW,WAAa,IAAkB,IACtC,WAAW,IACX,IAAW,UAAY,EAAa,EAClC,GAAG,EAAW,UAAU,IAAe,EAAI,GAAK,MAChD,IAAkB,IAEhB,IAAkB,IAEhB,4BADA,WAAW,IAFb,oBAAoB,IAK9B,MAAO,CACL,GAAI,OACJ,MAAO,EAAa,MACpB,WACA,MAAO,EAAa,MACpB,KAAM,EAAa,KACnB,QAAS,GACP,GAAa,WAAW,EACxB,GAAiB,SAAU,EAAa,KAAK,EAC7C,GAAiB,eAAgB,CAAa,EAC9C,GAAiB,mBAAoB,CAAa,EAClD,GAAiB,UAAW,CAAU,EACtC,GAAiB,iBAAkB,EAAS,SAAS,CACvD,EACA,WAAY,CAAC,EAAa,MAAO,EAAU,EAAS,WAAa,EAAE,EAAE,KAAK,GAAG,EAC7E,UAAW,GAAG,IAAe,GAAQ,GAAG,GAAe,EAAS,YAAc,EAAS,UAAU,GACnG,CACF,EAEa,IAA2B,GACtC,EACG,IAAK,GAAQ,EAAI,UAAU,EAC3B,KAAK,GAAG,EACR,YAAY,EC/IJ,GAA+B,CAC1C,CACE,GAAI,QACJ,MAAO,QACP,QAAS,oCACT,UAAW,GACX,SAAU,GACV,QAAS,QACT,SAAU,OACV,aAAe,GAAS,EAAoB,iBAC9C,EACA,CACE,GAAI,SACJ,MAAO,WACP,QAAS,iEACT,SAAU,GACV,QAAS,SACT,SAAU,OACV,aAAe,GAAS,EAAoB,oBAC9C,EACA,CACE,GAAI,aACJ,MAAO,YACP,QAAS,yDACT,SAAU,GACV,QAAS,aACT,SAAU,OACV,aAAe,GAAS,EAAoB,aAC9C,CACF,EAEa,GAAoB,GAA0C,CACzE,IAAM,EAAc,IAAyB,CAAQ,EAC/C,EAAiB,IAA4B,CAAQ,EACrD,EAAU,IAAqB,CAAQ,EAE7C,MAAO,CACL,GAAG,EACH,GAAI,EAAS,GACb,cACA,iBACA,UACA,eAAgB,IAAwB,CAAC,EAAa,EAAgB,CAAO,CAAC,EAC9E,kBAAmB,OAAO,EAAY,WAAa,EAAE,EACrD,qBAAsB,OAAO,EAAe,WAAa,EAAE,EAC3D,cAAe,OAAO,EAAQ,WAAa,EAAE,CAC/C,CACF,EAEa,IAAqB,GAChC,EAAU,IAAI,EAAgB,6CC5DhC,aAWuB,EAAqB,8BAAG,IAAI,EAC3C,EAAa,qBAAoD,KAAO,EAAE,6BAI7E,cAMI,KANJ,CAMyB,0BAAU,iBANnC,wFAEkC,KAAO,EAAqB,MAF9D,kCAG4B,EAAE,IAH9B,4DAIsD,IAAE,QAJxD,UASA,GAAqB,0BAAU,yBAE/B,GAAqB,0BAAU,yCAE/B,CAAa,6BAdN,KAAO,QAAO,cAST,KAAO,SAAQ,gBAEf,KAAO,aAAY,2BAb5B,waCbR,mDAsCI,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EAErB,EAAS,kBAAG,EAAI,EAQd,EAAY,EAAsB,IAAI,EACtC,EAAiB,EAAsB,IAAI,EAC3C,EAAY,EAAM,QAClB,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAuB,EAAsB,IAAI,EAC/C,EAAe,IAAO,KAAK,aAAa,OAAO,EACjD,EAAa,EAA0B,SAAS,EAChD,EAAc,EAAO,EAAE,EACvB,EAAqB,EAAO,EAAE,EAC9B,EAAe,EAAM,IAAgC,SAAU,UAAU,IACvE,EAAiB,EACnB,MAAO,UAAW,MAAO,SAAS,GAClC,MAAO,WAAY,MAAO,aAAa,GAErC,EAAa,EACf,KAAM,QAAS,MAAO,QAAQ,GAC9B,KAAM,UAAW,MAAO,UAAU,GAEhC,EAAiB,MAAqB,KACpC,EAAM,EAAG,CAAW,EAAC,KAAI,EAAG,YAAW,EACvC,EAAa,EAAG,CAAkB,EAAC,KAAI,EAAG,YAAW,EACrD,EAAS,IAAO,IAAG,EAAC,CAAY,YAE/B,CAAS,EAAC,OAAQ,OACnB,CAAU,IAAK,YAAc,EAAU,MAAI,CAAK,EAAU,IAAI,EAAS,MAAM,GAG7E,IACG,EAAS,eAAe,SAAS,CAAM,KAG1C,CAAU,IAAK,YAAc,IACnB,GAAM,EAAS,QAAU,KAAK,YAErC,EAAO,SAAS,CAAa,EAIrC,CACH,CAAC,EACK,EAAc,WACT,CAAS,GAAI,SAAQ,IAAK,EAAgB,OAAM,EAAC,CAAiB,EAAC,MAAM,MAE9E,EAAmB,WACpB,CAAU,OAAI,CAAW,EAAC,KAAI,EAAG,YAAW,OAAM,CAAkB,EAAC,KAAI,EAAG,YAAW,OAAM,CAAY,EAAC,KAAK,GAAG,OAAK,CAAiB,EAAC,IAAK,GAAK,GAAQ,EAAM,GAAE,GAAI,EAAM,OAAM,GAAI,EAAM,YAAc,GAAE,GAAI,EAAM,YAAc,GAAE,GAAI,EAAM,YAAc,GAAE,GAAI,EAAM,YAAc,EAAC,GAAI,EAAM,WAAa,IAAE,EAAI,KAAK,GAAG,KAEhU,EAAY,EAAsB,IAAI,EACtC,EAAe,EAAsB,IAAI,EACzC,EAAwB,EAAsB,IAAI,EAEhD,EAAS,SAAe,CACvB,KAAc,KAEf,KAEI,GAAQ,MADK,GAAiB,CAAG,iBAAc,KAClC,KAAM,GAAM,EAAE,KAAE,WAE/B,KACF,EAAY,EAAM,WAClB,EAAiB,EAAM,kBAEvB,EAAY,mBAAkB,IAC9B,EAAiB,KAErB,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,CACF,EAEM,EAAa,SAAe,CAC3B,KAAc,KAEnB,EAAU,MACV,EAAQ,SACJ,KACI,EAAK,MAAS,GAAoB,WAAY,iBAAc,MAClE,EAAY,IAAkB,CAAK,MACnC,GAAqB,EAAC,CAAS,OACzB,EAAiB,EAAM,KAAM,GAAS,EAAK,SAAS,GAAG,WAAa,QAErE,CAAc,GAAI,KACrB,EAAiB,KAErB,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAU,GACZ,CAdQ,CAeV,EAEA,OAAc,CACP,EAAc,IAEd,EAAS,EACT,EAAa,EACpB,CAAC,MAEK,EAAe,MAAqB,IACpC,YACS,iBAAiB,EAAS,EAAC,QAAU,IAAI,QAAQ,MAAO,EAAE,GAAG,IAAI,UAAU,CACxF,MAAQ,QACC,IACT,CACF,CAAC,EAEK,GAAoB,GAAuB,QACpC,SAAa,KAExB,0BAA4B,KACpB,EAAQ,6BAAgC,IAAqB,CAAU,MACvE,EAAS,SAAS,cAA2B,CAAQ,EAEtD,GAEL,EAAO,eAAc,CAAG,SAAU,SAAU,MAAO,QAAQ,EAC7D,CAAC,CACH,WAES,GAAsB,EAA2B,EAAG,CAAS,EAAE,KAChE,EAAM,EAAG,GAEV,KAED,CAAoB,IAAK,GAEf,IAAkB,EAAQ,CAEnC,MAEL,EAAuB,QACvB,EAAwB,MACxB,GAAiB,CAAM,EACzB,KAEM,GAAoB,GAA4C,KAC9D,EAAU,CAAI,GAAK,UAAS,EAAE,CAAc,EAAE,EAAS,WAClD,KAAa,EAAY,KAC5B,GAAc,GAAa,IAAI,KAAI,KAErC,EAAU,OAAS,CACzB,QAEO,IACT,EAEM,GAAqB,CAAM,QAAO,SAAQ,UAC9C,GAAkB,CAChB,KAAI,EAAE,CAAiB,EACvB,QAAS,GACT,OACA,QACA,WAGE,GAAW,KAAU,IAAqB,KACzC,EAAS,aAER,EAAkB,GAAiB,CAAG,IAC5C,EAAY,EAAI,UACZ,KACI,EAAS,MAAS,IAAwB,EAAe,UAAW,EAAI,GAAE,CAC9E,iBAAc,MAEhB,EAAS,EAAG,CAAS,EAAC,IAAK,GACzB,EAAK,KAAO,EAAU,GAAK,GAAiB,CAAS,EAAI,CAAI,KAEjE,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,GACR,EAAY,KACd,CACF,EAEM,GAAc,KAAU,IAAqB,KAC5C,EAAS,aAER,EAAkB,GAAiB,CAAG,EAExC,KAAI,SAAW,YAEnB,EAAe,EAAI,UACf,KACI,EAAO,MAAS,GACpB,EAAe,UAEf,EAAI,GAAE,CACJ,OAAQ,QAAQ,GAChB,iBAAc,MAElB,EAAS,EAAG,CAAS,EAAC,IAAK,GACzB,EAAK,KAAO,EAAQ,GAAK,GAAiB,CAAO,EAAI,CAAI,MAE3D,GAAe,CAAG,MAAO,UAAW,KAAM,0BAA0B,EACtE,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,MACvD,GAAe,EAAG,CAChB,SAAU,yCACV,iBAAkB,IAEtB,QAAU,GACR,EAAe,KACjB,CArBmB,CAsBrB,EAEM,OAAqB,KACpB,EAAS,aAER,EAAkB,GAAgB,EACxC,GAAW,CACT,MAAO,mBACP,QAAS,GACT,WAAU,CACR,OAAM,OACJ,QACA,SACA,YAKI,KACE,EAAe,IAAuB,CAC1C,UAAW,EACX,cAAe,KACf,QAAO,UACP,UAAS,EAAT,CAAS,EACT,aAEE,KACI,EAAO,MAAS,IACpB,EAAe,WAEb,QAAO,SAAQ,QAAM,GACrB,iBAAc,IAElB,GAA2B,CAAY,IACvC,EAAS,MAAO,CAAS,EAAE,GAAiB,CAAO,MACrD,OAAS,EAAO,OACd,GAA2B,CAAY,EACjC,CACR,CACF,GAEF,kBAAmB,IAEvB,EAEM,GAAc,GAAqB,KAClC,EAAS,aAER,EAAkB,GAAiB,CAAG,EAC5C,GAAW,CACT,MAAO,mBACP,QAAS,GACT,WAAU,CACR,aAAc,EAAI,MAClB,cAAe,EAAI,OACnB,cAAe,EAAI,OACnB,OAAM,OACJ,QACA,SACA,YAKI,KACE,EAAO,MAAS,GACpB,EAAe,UAEf,EAAI,GAAE,CAEJ,QACA,SACA,QAAM,GAEN,iBAAc,MAElB,EAAS,EAAG,CAAS,EAAC,IAAK,GACzB,EAAK,KAAO,EAAQ,GAAK,GAAiB,CAAO,EAAI,CAAI,KAE7D,GAEF,kBAAmB,IAEvB,EAEM,GAAY,KAAU,IAAqB,KAC1C,EAAS,aAER,EAAkB,GAAiB,CAAG,KACxC,OACI,IAEF,SAAQ,CACN,MAAO,gBACP,YAAa,gCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,gBACP,YACE,8EACF,YAAa,2BAGL,OACJ,IAAqB,EAAe,UAAW,EAAI,GAAE,CAAI,iBAAc,MAC7E,EAAS,EAAG,CAAS,EAAC,OAAQ,GAAS,EAAK,KAAO,EAAI,EAAE,KAC3D,EAEJ,OAAS,EAAK,GACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,CACF,MAGD,GAAG,WAAH,EAAG,EACD,wBACmB,wBACX,CAAc,wFAIX,cAAa,uBACpB,2BACU,wBACF,CAAU,YACP,iEAEC,GAAU,GAEnB,EADU,GAAM,GAAK,EAAI,CAAU,IAAG,YACzB,IAAS,WAAa,WAAa,UAAQ,GAC1D,4BAUY,EAAW,IAClB,GAAI,qBAAO,2BALE,GAAmB,YAAY,GAHhD,gGAIU,0DAGC,mDART,EAAS,mDAejB,GAAG,QACD,GAAG,EADL,EAAG,OACD,EAAG,EACD,kFAImB,mIADlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,kDAMtB,kDAGW,wBAED,oBACS,oGAFlB,OAAU,UAAE,CAAY,OAAxB,MAAU,KAAE,EAAY,SAMzB,4EAImB,wHADlB,OAAU,UAAE,CAAkB,OAA9B,MAAU,KAAE,EAAkB,4BAd7B,CAAU,IAAK,YAAU,UAT/B,EAAG,IADL,EAAG,WAAH,GAAG,cAiCD,EAAC,UAAD,EAAC,MAAD,CAAC,cAAgB,CAAK,QAAtB,CAAC,cADC,CAAK,eAGT,GAAG,aAAH,EAAG,OAsEU,GAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,IAAiB,oBAAM,EAAG,uBAAkB,EAAM,wCAAG,CAAqB,MAGnE,EAAK,QACT,IAAH,CAAG,qDA1EP,mBAEG,SAAU,EAAK,IACb,IACI,GAAQ,KACF,EAA0E,UAE5E,EAAS,IACN,EAAoB,SAAW,YAClC,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,4BACP,YAAe,GAAe,CAAG,EACjC,6EACA,SAAQ,EAAE,CAAY,IAAM,EAAoB,GAChD,QAAS,GAAmB,iBAAiB,EAC7C,OAAM,+CAAkD,EAAoB,OAIhF,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,qBACP,YAAe,GAAW,CAAG,EAC7B,qVACA,QAAS,GAAmB,aAAa,EACzC,OAAM,2CAA8C,EAAoB,OAG1E,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,mCACP,YAAe,GAAY,CAAG,EAC9B,0NACA,SAAQ,EACN,CAAS,IAAM,EAAoB,IAClC,EAAoB,aAAe,UACtC,QAAS,GAAmB,cAAc,EAC1C,OAAM,4CAA+C,EAAoB,OAG3E,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,kBACP,YAAe,GAAa,CAAG,EAC/B,oHACA,QAAS,GAAmB,eAAe,EAC3C,OAAM,6CAAgD,EAAoB,KAC1E,KAAM,YAIH,CACT,GAAG,CAAG,OACJ,UAAW,WAAY,UAAS,CAAG,WAAY,UAAU,0BAGxD,IACR,mBACS,0CAGG,mDAEM,6BACP,CAAmB,wDAE9B,CAAO,GAEE,YAIA,4CA1Eb,EAAG,IApEL,EAAG,MAAH,EAAG,SAFI,yFC9WR,KAII,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EAErB,EAAS,kBAAG,EAAI,MASnB,EAAG,MACC,MADJ,CACyB,0BAAE,EAAS,+BAAG,EAAc,0DAAa,EAAS,OAD3E,CAAG,MAAH,CAAG,CAFI,CCZR,IAAa,IAA4B,GACvC,IAAU,OAAS,OAAS,4BCH9B,aAOI,EAAS,kBAAG,IAAI,EAChB,EAAc,uBAAG,IAAI,EAErB,EAAS,kBAAG,EAAI,EAChB,EAAS,kBAAG,WAAW,EAGnB,EAAc,MAAY,IAAyB,EAAS,2BAI/D,IAAO,+BAAE,EAAc,0BAAG,EAAS,4CAEnC,IAAY,0BAAE,EAAS,+BAAG,EAAc,0DAAa,EAAS,gBAH9D,CAAc,IAAK,QAAU,EAAc,2BAFxC,CCbR,IAAa,QAAiC,CAC5C,CAAE,GAAI,YAAa,MAAO,SAAU,OAAQ,sCAAuC,EACnF,CAAE,GAAI,OAAQ,MAAO,uBAAwB,OAAQ,iCAAkC,CACzF,ECHa,IAAwC,GAIhC,CACnB,GAAI,CAAC,EAAS,iBAAmB,CAAC,EAAS,OAAO,OAAQ,OAAO,KAEjE,IAAM,EACJ,EAAS,cAAgB,EAAS,OAAO,KAAM,GAAU,EAAM,KAAO,EAAS,YAAY,EACvF,EAAS,aACR,EAAS,OAAO,IAAI,IAAM,KAIjC,MAFI,CAAC,GAAmB,IAAoB,EAAS,aAAqB,KAEnE,GAAG,EAAS,gBAAgB,GAAG,mBAAmB,CAAe,GAC1E,ECZa,GAAwB,GAC/B,IAAkB,IAAI,KAAK,aAAa,OAAO,EAExC,IACX,GACmC,CACnC,IAAM,EAAmD,CAAC,EACpD,EAAY,EAAM,WAAW,KAAK,EAEpC,GACF,EAAO,KAAK,CACV,GAAI,aACJ,MAAO,aACP,MAAO,EAAU,YAAY,IAAM,UAAY,UAAY,CAC7D,CAAC,EAGH,IAAM,EAAS,CACb,CAAE,GAAI,YAAa,MAAO,SAAU,MAAO,EAAM,aAAc,EAC/D,CAAE,GAAI,mBAAoB,MAAO,QAAS,MAAO,EAAM,WAAY,EACnE,CAAE,GAAI,mBAAoB,MAAO,iBAAkB,MAAO,EAAM,WAAY,CAC9E,EAEA,IAAK,GAAM,CAAE,KAAI,QAAO,WAAW,EAC7B,OAAO,SAAS,CAAK,GAAK,GAAS,GACrC,EAAO,KAAK,CAAE,KAAI,QAAO,MAAO,IAAgB,OAAO,CAAK,CAAE,CAAC,EAInE,MAAO,CAAE,KAAM,GAAuB,QAAO,CAC/C,wFCnCA,qHA2JU,GAAuB,EAC/B,EAAa,EACb,EAAsD,SAE9C,EAAW,MAAG,EAAO,EAAC,YAAY,iDAElC,CAAW,EAAC,GAAE,IACjB,kBACE,CAAS,gCACT,CAAc,0BACN,CAAW,EAAC,6BACV,CAAY,EAAC,2FAKnB,CAAW,EAAC,GAAE,WACpB,kBACE,CAAS,gCACT,CAAc,0BACN,CAAW,EAAC,6BACV,CAAY,EAAC,+DAK1B,IAAD,CAAC,aArBC,CAAW,GAAI,EAAK,IAAK,YAAW,OAU/B,CAAW,KAAI,CAAc,GAAI,EAAK,IAAK,OAAM,yBAjJzC,EAAsB,uBAAG,IAAI,EAKzC,EAAS,MAA2B,IAAI,EACxC,EAAc,MAAY,EAAsB,GAAI,EAAmB,GAAE,IAAM,IAAI,EACnF,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,GAExE,EAAS,EAAM,QACf,EAAgB,EAAO,EAAK,EAC5B,EAAc,EAAsB,IAAI,EACxC,EAAY,EAEV,EAAe,MAAY,GAAuB,CAAG,OAAQ,UAAU,IACvE,EAAgB,QAAY,CAAe,GAAI,EAAE,EAEjD,EAAY,MAAqB,KAE/B,GADO,EAAS,EAAC,MAAQ,IACT,MAAM,GAAG,EAAE,OAAO,OAAO,EACzC,EAAM,EAAS,YAAY,SAAS,KAEtC,IAAG,IAAW,EAAS,EAAM,GAAI,KAC7B,EAAY,EAAS,EAAM,MAC7B,QACK,mBAAmB,CAAS,CACrC,MAAQ,QACC,CACT,CACF,QAEO,IACT,CAAC,EAEK,EAAkB,GAAkB,EACvC,CAAe,EAAU,OAAQ,CAAe,KAAI,mBAAmB,CAAE,MAAM,GAA7D,KAEf,EAA6D,CACjE,MAAO,eACP,aAAc,6DACd,KAAM,GACN,WAAY,GACZ,OAAQ,yBACR,YAAc,GAAU,EAAM,GAC9B,eAAiB,GAAU,EAAM,KACjC,gBAAiB,IACjB,cAAgB,GAAU,EAAe,EAAM,EAAE,GAAK,IACtD,gBAAkB,GAAK,gCAAqC,EAAM,KAClE,QAAU,GACR,EAAQ,aAAe,IAAkB,MAGvC,MAAoB,CACxB,GAAa,IACb,EAAM,SACN,EAAc,QACd,EAAgB,GAClB,EAEM,EAAU,SAAe,OACxB,CAAY,EAAC,qBAAsB,CACtC,EAAW,QAGb,OAEK,CAAc,EAAE,CACnB,EAAW,QAGb,KAEM,EAAc,EAAK,IACzB,EAAgB,MAChB,EAAc,SACV,KACI,EAAI,MAAS,GAAiB,CAAG,eAAc,EAAd,CAAc,OAEjD,IAAmB,EAAS,SAEhC,EAAS,UACH,EAAS,IAAoC,CACjD,gBAAe,EAAf,CAAe,EACf,aAAY,EAAZ,CAAY,EACZ,OAAQ,IAGN,GACF,GAAY,EAAM,CAAI,QAAS,GAAM,cAAe,EAAI,EAE5D,OAAS,EAAO,IACV,IAAmB,EAAS,SAEhC,EAAM,SACN,EAAc,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,KACrE,QAAU,CACJ,IAAmB,KACrB,EAAgB,GAEpB,CACF,EAEA,OAAc,CACP,EAAU,CACjB,CAAC,wCAMiB,CAAc,oBAAmB,CAAc,IAAK,IAAI,YAIrD,CAAc,EAAmC,KAAhC,6BAAoC,EANzE,8BACa,6DAEF,CAAM,gCACD,CAAY,2BACjB,CAAgB,8DAEjB,CAAa,iEAEf,CAAW,2BACN,aAGb,uMAdE,CAAY,EAAC,qBAAoB,6BAF9B,CCjIR,IAAa,IAAgB,CAC3B,GAAI,eACJ,aAAc,UACd,eAAgB,cAClB,ECCa,IAAyB,IAA0D,CAC9F,kBAAmB,EAAY,OAAO,0BAA2B,MAAM,EACvE,oBAAqB,EAAY,OAAO,0BAA2B,QAAQ,CAC7E,8NCVA,KAUI,EAAI,sBAOP,GAAS,wCAAmB,wBACxB,EAAK,MACD,EAAK,EADT,CAAK,KACD,EAAK,GACK,EAAQ,GAAO,EAAM,OAAK,EAAlB,IAAK,KACf,EAAE,MACE,EAAE,EADN,CAAE,MACE,EAAE,MAAF,CAAE,MACF,EAAE,EADF,CAAE,MACF,EAAE,MAAF,CAAE,IAFN,CAAE,eACkB,CAAK,EAAC,KAAK,QACJ,CAAK,EAAC,OAAS,GAAG,QAF7C,CAAE,MAFV,CAAK,IADT,CAAK,MAAL,CAAK,yBAHF,wYCfR,KAgBQ,EAAe,GACf,IAAU,MAAQ,IAAU,GAAW,WAEhC,GAAU,SAAiB,EAAM,eAAe,OAAO,EAE3D,MAIV,EAAO,SAAP,EAAO,qBACgB,GAAM,EAAK,KAAG,EAAd,IAAI,KACvB,EAAG,MACD,EAAG,EADL,CAAG,MACD,EAAG,MAAH,CAAG,MACH,EAAG,EADH,EAAG,GAED,EAAG,EADL,CAAG,MACD,EAAG,MAAH,CAAG,UAAH,EAAG,aAED,QAME,KANF,CAMM,qBAAO,uBANb,+BAIgB,QAAO,EAAE,CAAI,EAAC,cAAc,YAJ5C,oBAGgB,CAAI,EAAC,MAAK,yBAH1B,cADE,CAAI,EAAC,gBAAc,SAFzB,CAAG,IAFL,CAAG,cAC+B,CAAI,EAAC,KAAK,eAER,EAAW,EAAC,CAAI,EAAC,KAAK,QAH1D,CAAG,MAFP,CAAO,MAAP,CAAO,CAFA,0JCvBR,aAYI,EAAY,8BACZ,EAAkB,wCAWrB,EAAG,UAAH,CAAG,YAEC,EAAG,WAAH,mCAAG,MAAH,CAAG,8DAIH,GAAoB,4BAAc,EAAY,cAD5C,EAAY,EAAC,QAAM,qEAOrB,GAAoB,4BAAc,EAAkB,cADlD,EAAkB,EAAC,QAAM,SAX/B,CAAG,MAAH,CAAG,KAFI,mFCtBR,aA0HU,EAAU,0CAIL,CAAO,EAAG,cAAgB,uBAAuB,UAE1C,GAAmB,iBAAiB,GAJrD,0EAGO,8DAEI,CAAO,oBACG,EAAU,cAP7B,EAAS,kBAYN,EAAc,QACrB,EAAG,UAAH,CAAG,EACD,GAAe,sCAAsB,CAAU,KAC/C,QAAe,2CAA2B,CAAY,OAFxD,CAAG,MAAH,CAAG,GApGO,kBAAG,IAAI,EACH,sBAAG,IAAI,EAET,iCACX,EAAkB,oCAClB,EAAS,kBAAG,EAAK,EACjB,EAAS,kBAAG,IAAI,EACP,kBAAG,IAAI,MAGZ,EAAY,MAAY,IAAyB,WACjD,EAAW,MAAY,IAAwB,SAAS,EAAkB,IAC1E,EAAU,MAAY,IAA+B,SAAQ,KAAK,mBAAmB,GACrF,EAAc,QAChB,IAAK,SAAU,MAAO,SAAU,MAAK,EAAE,CAAY,EAAC,OAAS,MAC7D,IAAK,QAAS,MAAO,aAAc,MAAK,EAAE,CAAW,EAAC,OAAS,MAC/D,IAAK,WAAY,MAAO,kBAAmB,MAAK,EAAE,CAAU,EAAC,OAAS,OAEpE,EAAc,QAEhB,IAAK,OACL,MAAO,OACP,MAAK,SAAS,SAAS,UAAU,KAAI,YAAa,OAAO,QACzD,eAAc,qBAAqB,SAAS,WAG5C,IAAK,UACL,MAAO,aACP,MAAK,SAAS,SAAS,WAAW,KAAI,YAAa,OAAO,YAC1D,eAAc,sBAAsB,SAAS,QAAO,sBAAqB,SAAS,WAGlF,IAAK,SACL,MAAO,SACP,MAAK,SAAS,SAAS,YAAY,KAAI,GAAM,GAAsB,SAAQ,OAAO,UAAU,EAC5F,eAAc,SAAS,SAAS,gCAAgC,SAAS,WAAa,QAGpF,EAAU,QACZ,MAAO,WAAY,MAAK,SAAS,OAAO,OAAO,GAC/C,MAAO,qBAAsB,MAAK,SAAS,OAAO,cAClD,MAAO,cAAe,MAAO,GAAsB,SAAQ,OAAO,UAAU,KAE1E,EAAY,QACd,MAAO,aAAc,MAAO,GAAuB,SAAS,EAAkB,KAE9E,MAAO,kBACP,MAAO,GAA8B,SAAQ,KAAK,mBAAmB,IAErE,MAAO,sBAAuB,MAAK,SAAS,KAAK,UAAY,KAAO,SACpE,MAAO,kBAAmB,MAAK,YAAY,OAAO,cAAa,QAE/D,EAAU,EAAO,EAAK,EAEpB,EAAU,SAAe,OACzB,CAAO,KAEX,EAAU,OACN,CAEF,GAAe,CACb,MAAO,UACP,MACE,MAJiB,GAA2B,SAAQ,QAAQ,GAIrD,SAAW,kBACd,iCACA,2CAEF,EAAS,KACjB,OAAS,EAAO,CACd,GAAe,CACb,MAAO,QACP,KAAM,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,GAE/D,QAAU,GACR,EAAU,GACZ,CAlBU,CAmBZ,EAGD,kCACe,CAAc,qCACR,CAAc,sCACX,+BACP,QANV,kBCjHR,KAUI,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EAEpB,EAAW,6BACX,EAAkB,oCAClB,EAAS,kBAAG,EAAK,EACjB,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,IAAI,EAcnB,4EAEE,EAAS,8BACT,EAAa,0DAEb,EAAW,mCACX,EAAkB,0BAClB,EAAS,0BACT,EAAS,0BACT,EAAS,IAXJ,kBC7BR,aAwCQ,MAAwB,uCAGtB,EAAc,SACd,EAAY,GAAW,CAC3B,MAAO,+BACP,QAAS,GACT,WAAU,CACR,eAAc,iBACd,UAAS,YACT,qBAAoB,gBACpB,OAAQ,EACR,YAAW,cACX,YAAe,GAAiB,CAAS,EACzC,QAAO,KAAS,WACR,GAAuB,EAAe,SAAU,CAAO,EAC7D,GAAe,CAAG,MAAO,UAAW,KAAM,gCAAgC,uBAGnE,MAIf,EAEM,EAAY,SAAe,uCAGzB,EAAQ,SAAU,eAClB,IAEF,SAAQ,CACN,MAAO,4BACP,YAAa,4CACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,4BACP,YACE,0FACF,YAAa,uCAGL,OACJ,GAAuB,CAAQ,EACrC,GAAe,CAAG,MAAO,UAAW,KAAM,6BAA6B,gBAEzE,EAEJ,EAEM,EAAO,8BAIH,GAAI,OACJ,MAAO,aACP,KAAM,GACN,OAAQ,GAAmB,iBAAiB,EAC5C,QAAS,IAGT,GAAI,SACJ,MAAO,UACP,KAAM,GACN,OAAQ,GAAmB,mBAAmB,EAC9C,KAAM,SACN,gBAAiB,GACjB,YAAO,KAAa,EAAY,+CAO1B,CAAO,aAFjB,KCqLE,IAAU,QAChB,IAAD,CAAC,6SAxSJ,aA6QU,EAAO,QACd,EAAG,UAAH,CAAG,EACD,0KAKmB,OAFlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,SAIxB,oFAIW,wBAED,gFAES,YACP,GAAU,KACb,EAAU,GAAuB,SACvC,EAAoB,GAAQ,OAAK,EAAqC,MACxE,MAPA,OAAU,UAAE,CAAgB,OAA5B,MAAU,KAAE,EAAgB,WAb/B,CAAG,MAAH,CAAG,GA6BI,GAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACjB,EAAC,EAAG,CAAG,6BAEZ,EAAG,MACD,EAAI,EADN,CAAG,MACD,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAEF,EAAK,UAAL,EAAK,MAAL,CAAK,cAAE,CAAC,EAAC,SAAS,OAAlB,CAAK,aADH,CAAC,EAAC,WAAS,SAFjB,CAAG,cACK,CAAC,EAAC,IAAI,OADd,CAAG,sBAOyB,EAAS,EAAC,CAAC,EAAC,MAAM,GAA9C,GAAS,wEAET,CAAC,EAAC,EAAM,EAAC,GAAE,mBAVT,EAAM,EAAC,KAAO,OAAM,KAOf,EAAM,EAAC,KAAO,SAAQ,yBAtQ9B,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAW,oBAAG,SAAS,EACvB,EAAK,cAAG,SAAS,EAGb,EAAoB,EACtB,GAAI,OAAQ,MAAO,QAAS,UAAW,EAAI,GAC3C,GAAI,SAAU,MAAO,QAAQ,GAC7B,GAAI,YAAa,MAAO,OAAO,GAC/B,GAAI,oBAAqB,MAAO,cAAc,GAC9C,GAAI,kBAAmB,MAAO,iBAAiB,GAG7C,EAAyE,EAC3E,KAAM,YAAa,MAAO,SAAS,GACnC,KAAM,eAAgB,MAAO,UAAU,GACvC,KAAM,WAAY,MAAO,SAAS,GAClC,KAAM,iBAAkB,MAAO,QAAQ,GAGvC,EAAQ,EAAsB,IAAI,EAClC,EAAU,EAAO,EAAK,EACtB,EAAa,EAAe,CAAC,EAC7B,EAAoC,EAAO,IAAI,EAC/C,EAAc,EAAO,EAAE,EACvB,EAAmB,EAAM,GAC3B,EAAc,IAAK,GAAU,EAAM,KAAK,IAGpC,EAAU,QAAY,CAAW,EAAC,KAAI,GACtC,EAAU,yBAA2B,CAAU,OAAI,CAAgB,EAAC,KAAK,GAAG,KAE5E,EAAc,GAA0B,KACvC,EAAK,MAAS,OAEf,YACS,KAAK,CAAK,EAAE,eAAe,OAAO,CAC/C,MAAQ,QACC,CACT,CACF,EAEM,EAAe,GAA0B,KACvC,EAAQ,OAAO,GAAS,CAAC,MAE1B,OAAO,SAAS,CAAK,GAAK,GAAS,EAAC,MAAS,QAE5C,EAAK,CAAI,IAAK,KAAM,KAAM,KAAM,IAAI,EACpC,EAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAK,EAAI,KAAK,IAAI,IAAI,GAAI,EAAM,OAAS,CAAC,YACrE,EAAQ,MAAQ,GAEd,eAAe,QAAO,CAAI,sBAAuB,IAAa,EAAI,EAAI,CAAC,MAAO,EAAM,IAC3G,EAEM,EAAa,GACb,IAAW,UAAS,CACb,MAAO,UAAW,MAAO,YAAa,MAAO,SAAS,EAE7D,IAAW,UAAS,CACb,MAAO,UAAW,MAAO,WAAY,MAAO,OAAO,EAE1D,IAAW,SAAQ,CAAW,MAAO,SAAU,MAAO,SAAU,MAAO,KAAK,GAEvE,MAAO,WAAY,MAAO,eAAgB,MAAO,OAAO,EAG7D,MAMA,EAAW,IAAK,gBAEhB,UAAW,KACX,eAAc,iBACd,cAAe,KACf,MAAO,gBAIP,EAAW,IAAK,eAEhB,YAAS,EACT,eAAgB,KAChB,gBAAa,EACb,MAAO,gBAKT,YAAS,EACT,eAAgB,KAChB,cAAe,KACf,MAAO,WAIL,EAAqB,GAA2B,KAC9C,EAAU,EAAmB,GAE9B,EAAI,QAAM,CAAM,EAAQ,WAAS,CAAK,EAAQ,gBAEnD,GAA4B,CAC1B,UAAW,EAAQ,UACnB,eAAgB,EAAQ,eACxB,cAAe,EAAQ,cACvB,MAAO,EAAQ,MACf,OAAQ,EAAI,OACZ,UAAW,EAAI,MAAQ,EAAI,MAAQ,EAAI,OACvC,SAAU,EAAI,UAElB,EAEM,EAAqB,OAAY,QAAO,YAAa,GACzD,EAAU,MACV,EAAQ,SACJ,KACI,EAAQ,MAAS,IAA0B,YAC/C,QACA,SACA,OAAM,EAAE,CAAU,GAAI,KACtB,SAAQ,EAAE,CAAgB,aAE5B,EAAa,EAAS,WAUb,KATyB,EAAS,MAAM,IAAK,IAAI,IACrD,EACH,GAAI,EAAK,OACT,KAAM,EAAK,MAAQ,EAAK,MAAQ,EAAK,OACrC,UAAW,EAAY,EAAK,IAAI,EAChC,kBAAmB,EAAW,EAAK,YAAY,EAC/C,gBAAiB,EAAW,EAAK,UAAU,GAGpC,EAAM,MAAO,EAAS,KAAK,CACtC,OAAS,EAAK,UACZ,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,QACvD,EAAa,IAEJ,KAAI,GAAM,MAAO,CAAC,CAC7B,QAAU,GACR,EAAU,GACZ,CACF,EAEM,EAAmB,GAAmB,GAC1C,EAAe,KACjB,EAEM,EAAW,KAAU,IAA2B,IAChD,OACI,IAA8B,EAAI,SAAU,EAAI,MAAM,EAC5D,GAAe,CAAG,MAAO,OAAQ,KAAM,0BAA0B,KACjE,CAAY,KACd,OAAS,EAAK,CACZ,GAAe,EAAG,CAChB,SAAU,2DACV,iBAAkB,IAEtB,CACF,EAEM,EAAO,QACX,QAAK,EACL,gBAAiB,kCACjB,eACE,mGACF,UACA,UACA,aAAY,CAAG,SAAU,YAAa,oBAAqB,mBAC3D,cAAe,EACf,YAAa,GACb,mBAAoB,WACpB,aAAc,qEACd,aAAc,IAAmC,YACjD,kBAAmB,OAGf,EAAiC,CACrC,QAAU,GAAQ,KACV,EAAyB,UAE/B,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,SACP,YACS,EAAY,CAAG,EAExB,KAAM,GACN,SAAQ,EAAK,EAA0B,QAAU,IAAI,KAAI,EACzD,QAAS,GAAmB,iBAAiB,IAG/C,EAAQ,KAAI,CACV,GAAI,WACJ,MAAO,SACP,YAAe,CACb,EAAkB,CAAG,CACvB,EACA,KAAM,GACN,SAAQ,EAAK,EAA0B,QAAU,IAAI,KAAI,EACzD,QAAS,GAAmB,aAAa,IAGpC,GAAuB,EAAO,CAAI,UAAW,WAAY,UAAS,CAAG,UAAU,GACxF,GAIH,6BACE,CAAO,wBACD,CAAU,0BAChB,CAAO,wBACP,CAAK,6BACL,CAAU,sBACS,8BACJ,6BACF,mCACI,2BACjB,QAZK,kBC9PR,KAQI,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAW,oBAAG,SAAS,EAU1B,IAA0B,0GAA8B,EAAS,8BAAG,EAAa,4BAAG,EAAW,IAFxF,kBClBR,CAYC,GAAuB,oFAFhB,CCDR,IAAa,GAAuB,GAEvB,IACX,IACoC,CACpC,KAAM,GACN,SACE,EAAO,MAAM,KAAK,GAAK,EAAO,MAAM,KAAK,IAAM,EAAO,OAAO,QAAQ,KAAK,EACtE,EAAO,MAAM,KAAK,EAClB,OACN,OACE,OAAO,EAAO,SAAY,UACtB,CACE,MAAO,EAAO,QAAU,QAAU,UAClC,KAAM,EAAO,QAAU,UAAY,SACrC,EACA,OACN,OAAQ,CACN,CAAE,GAAI,OAAQ,MAAO,OAAQ,MAAO,EAAO,OAAO,OAAQ,EAC1D,CAAE,GAAI,UAAW,MAAO,aAAc,MAAO,EAAO,OAAO,WAAY,EACvE,CAAE,GAAI,SAAU,MAAO,SAAU,MAAO,GAAuB,EAAO,OAAO,UAAU,CAAE,EACzF,CAAE,GAAI,QAAS,MAAO,aAAc,MAAO,GAAwB,CAAM,CAAE,CAC7E,CACF,GCzBa,IAA6B,EAAyB,IACjE,GAAY,EAAW,GAAG,EAAS,GAAG,mBAAmB,CAAQ,IAAO,GAAY,KAEhF,QAA2C,CAC/C,CAAE,GAAI,UAAW,MAAO,QAAS,EACjC,CAAE,GAAI,YAAa,MAAO,SAAU,EACpC,CAAE,GAAI,OAAQ,MAAO,sBAAuB,CAC9C,EAEa,IACX,IAC+B,CAC/B,MAAO,aACP,aAAc,oEACd,KAAM,GACN,WAAY,GACZ,YAAc,GAAW,EAAO,SAChC,eAAiB,GAAW,EAAO,OAAO,QAC1C,gBAAiB,IACjB,gBACA,QAAU,GAAqC,EAAQ,aAAe,IAAkB,EAAI,CAAC,CAC/F,GCzBa,IAAqC,GAI7B,CACnB,GAAI,CAAC,EAAS,QAAQ,OAAQ,OAAO,KAErC,IAAM,EACJ,EAAS,eACT,EAAS,QAAQ,KAAM,GAAU,EAAM,WAAa,EAAS,aAAa,EACtE,EAAS,cACR,EAAS,QAAQ,IAAI,UAAY,KAIxC,MAFI,CAAC,GAAc,IAAe,EAAS,cAAsB,KAE1D,GAA0B,EAAS,eAAgB,CAAU,CACtE,0ECTA,6DA0HU,GAAuB,EAC/B,EAA+B,EAC/B,EAAsC,4BAGnC,qCACE,CAAc,eACd,CAAS,kBACT,CAAa,sBACb,EAAM,8BACN,CAAW,0BACD,EAAmB,aACnB,gBACM,CACf,GAAW,EACT,CAAsB,GAAI,GAAuB,CAAG,OAAQ,aAAa,IAAO,IAAG,CACjF,QAAS,GAAM,cAAe,EAAI,EAExC,wBACC,EAAQ,gBAfR,CAAc,kBAoBX,GAAoB,EAC5B,EAAa,EACb,EAA2D,SAEnD,EAAY,MAAG,EAAO,EAAC,YAAY,yBAExC,qCACE,CAAc,aACJ,qBACV,CAAa,wBACN,CAAY,8BACnB,CAAW,qCACX,CAAkB,0BACR,EAAmB,aACnB,gBACM,CACf,GAAW,EACT,CAAsB,GAAI,GAAuB,CAAG,OAAQ,aAAa,IAAO,IAAG,CAEjF,QAAS,GACT,cAAe,EAAI,EAGzB,0BAMW,CAAY,EAAC,QAAU,eAAiB,KAAI,EAAG,CAAY,EAAC,SAAS,YACjE,CAAY,EAAC,QAAU,cAAa,EAAG,CAAY,EAAC,cAAgB,IAAI,EAJxF,qCACE,CAAc,2BACL,CAAY,EAAC,mGAGV,CAAY,EAAC,iBAG3B,IAAO,iCAAE,CAAc,2BAAY,CAAY,EAAC,uBAE/C,IAAD,CAAC,aA/BC,CAAY,KAAI,CAAc,GAAI,EAAK,IAAK,UAAS,OAoBhD,CAAY,KAAI,CAAc,GAAI,EAAK,IAAK,YAAW,SAQvD,CAAY,KAAI,CAAc,GAAI,EAAK,IAAK,OAAM,yBAvJ1C,EAAa,iBAAG,IAAI,EAAE,EAAmB,4BAAG,EAAI,EAG5D,EAAS,MAA2B,IAAI,EACxC,EAAc,MAAY,EAAmB,GAAE,IAAM,IAAI,EACzD,EAAa,MAA2B,IAAI,EAC5C,EAAkB,UAEpB,EAAU,EAAM,QAChB,EAAc,EAAM,QACpB,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAY,EAEV,EAAsB,MAAY,GAAuB,CAAG,OAAQ,aAAa,IACjF,EAAwB,MAC5B,GAAuB,CAAG,OAAQ,qBAAqB,IAEnD,EAAmB,GACvB,GAAyB,EAAC,CAAwB,EAAE,CAAQ,EACxD,EAAe,MACnB,IAAiC,GAAW,EAAgB,EAAO,QAAQ,GAAK,GAAG,GAG/E,EAAW,SAAe,OACzB,CAAc,EAAE,GACnB,EAAO,SACP,EAAW,SACX,EAAQ,QACR,EAAU,UAGZ,KAEM,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EAAM,MAAS,GAAsB,CAAG,eAAc,EAAd,CAAc,OAExD,IAAY,EAAS,SAEzB,EAAU,EAAO,cACjB,EAAc,EAAO,oBACf,EAAS,IAAiC,CAC9C,eAAc,EAAE,CAAwB,EACxC,gBAAa,EACb,QAAS,EAAO,UAGd,GACF,GAAY,EAAM,CAAI,QAAS,GAAM,cAAe,EAAI,EAE5D,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAO,SACP,EAAW,SACX,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,GAAS,EAAE,EAAU,GACvC,CACF,EAEA,QACO,EAAW,MAEH,CACX,GAAa,CACf,EACD,sBAKI,CAAe,EAClB,gBAAiB,mCACjB,iBACE,oIAEY,CAAc,oBAAmB,CAAc,IAAK,IAAI,YAI9D,CAAsB,GAAI,EAAE,YACnB,GAEf,KADA,yEACI,EAdT,0GAQyB,2BACd,CAAO,8BACF,EAAa,0FAK3B,CAAO,4EAEP,CAAK,2BACM,YApBN,iBC7GR,0FAQI,EAAQ,iBAAG,IAAI,EAKX,EAAQ,SAAe,EAAmB,GAAE,IAAM,SAAQ,GAAI,EAAQ,GAAI,aAAW,EACrF,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,2BAGxE,CAAQ,6BAET,IAAc,yBAAE,EAAQ,sCAAuB,CAAY,EAAC,8BAE5D,qMAHE,CAAY,EAAC,kBAAiB,sCAH7B,CCdR,IAAa,IAAgB,CAC3B,GAAI,oBACJ,aAAc,aACd,eAAgB,YAClB,ECCa,IACX,IACgC,CAChC,uBAAwB,EAAY,OAAO,2BAA4B,MAAM,EAC7E,oBAAqB,EAAY,OAAO,2BAA4B,QAAQ,CAC9E,GCXA,SAAS,GAAO,EAAI,EAAO,UAAW,CACpC,IAAI,EAAO,EAGX,IAFI,CAAC,EAAK,SAAW,EAAG,SACtB,EAAO,EAAG,QACL,GAAM,CACX,GAAI,EAAK,cACK,EAAK,aAAa,CACxB,EAAG,OAAO,EAElB,EAAO,EAAK,UACd,CACA,OAAO,IACT,CACA,SAAS,IAAW,EAAI,EAAO,UAAW,CACxC,IAAM,EAAO,GAAO,EAAI,CAAI,EAE5B,OADI,EAAa,EAAK,aAAa,CAAI,EAChC,IACT,CACA,SAAS,GAAS,EAAI,EAAO,UAAW,CACtC,IAAM,EAAO,GAAO,EAAI,CAAI,EAI5B,OAHI,EACK,GAAM,EAAM,CAAI,EAElB,IACT,CACA,SAAS,GAAM,EAAI,EAAO,UAAW,CACnC,IAAM,EAAQ,EAAG,aAAa,CAAI,EAElC,OADK,EACE,IAAG,CAAK,EADI,IAErB,CAWA,SAAS,GAAM,EAAK,CAClB,OAAO,OAAO,GAAQ,SAAW,IAAM,EAAM,CAC/C,CACA,SAAS,IAAG,EAAO,CACjB,GAAI,EAAM,WAAW,GAAG,EAAG,OAAO,EAAM,UAAU,CAAC,EACnD,IAAM,EAAI,EAAQ,EAElB,OADK,MAAM,CAAC,EACL,EADe,CAExB,CAGA,SAAS,KAAS,CAChB,MAAO,CACL,WAAc,GACd,SAAU,SAAS,EAAM,EAAO,EAAS,CAEvC,OADA,EAAK,iBAAiB,EAAO,CAAO,MACvB,EAAK,oBAAoB,EAAO,CAAO,CACtD,EACA,eAAgB,SAAS,EAAO,EAAS,CAEvC,OADA,SAAS,iBAAiB,EAAO,CAAO,MAC3B,SAAS,oBAAoB,EAAO,CAAO,CAC1D,EACA,WAAY,UAAW,CACrB,OAAO,OAAO,SAAS,IACzB,CACF,CACF,CACA,IAAIC,GAAM,IAAO,EACjB,SAAS,GAAO,EAAQ,CACtB,OAAO,OAAOA,GAAK,CAAM,CAC3B,CAGA,SAAS,GAAc,EAAM,EAAU,EAAO,CAC5C,SAAS,EAAY,EAAI,CACvB,IAAM,EAAQ,GAAO,CAAE,EACvB,GAAI,CAAC,EAAO,OACZ,IAAM,EAAM,GAAM,CAAK,EACvB,GAAI,OAAO,GAAa,WAAY,OAAO,EAAS,EAAK,CAAE,EAC3D,IAAI,EACA,EAAO,EAAG,OACd,KAAO,GAAQ,GAAO,CAEpB,GADA,EAAS,EAAK,QAAU,EAAK,QAAQ,OAAS,KAC1C,GACE,EAAS,GAAS,CACpB,EAAS,GAAQ,EAAK,CAAE,EACxB,MACF,CAEF,EAAO,EAAK,UACd,CACI,EAAS,IAAQ,EAAS,GAAO,EAAK,CAAE,CAC9C,CACA,GAAI,SAAS,EAAM,EAAO,CAAW,CACvC,CACA,SAAS,GAAc,EAAM,EAAU,CACrC,GAAc,EAAM,EAAU,OAAO,EACjC,EAAS,UAAU,GAAc,EAAM,EAAS,SAAU,UAAU,CAC1E,CAGA,SAAS,IAAO,EAAO,EAAM,CAC3B,IAAK,IAAI,EAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IACrC,GAAI,EAAM,KAAO,EAAM,CACrB,EAAM,OAAO,EAAG,CAAC,EACjB,KACF,CAEJ,CAGA,IAAI,GAAiC,IAAI,KACrC,GAAW,GACX,GAAkB,CAAC,EACnB,GAAkB,CAAC,EACnB,GAAsB,GAAU,CAClC,GAAI,GAAU,CACZ,GAAW,GACX,MACF,CACA,IAAK,IAAI,EAAI,GAAgB,OAAS,EAAG,GAAK,EAAG,IAAK,CACpD,GAAM,CAAE,OAAM,OAAM,SAAU,GAAgB,GAC1C,OAAO,KACP,CAAC,EAAK,SAAS,EAAM,MAAM,GAAK,IAAS,EAAM,SAC7C,EAAM,UAAU,EAAM,SAAS,CAAK,EACpC,EAAM,OAAS,EAAM,kBAAkB,KAE/C,CACF,EACI,IAAmB,GAAU,CAC/B,GAAiC,IAAI,KACrC,GAAW,GACX,IAAK,IAAI,EAAI,GAAgB,OAAS,EAAG,GAAK,EAAG,IAAK,CACpD,GAAM,CAAE,QAAS,GAAgB,GACjC,GAAI,CAAC,EAAK,SAAS,EAAM,MAAM,GAAK,IAAS,EAAM,OAAQ,CACzD,GAAW,GACX,KACF,CACF,CACF,EACA,SAAS,GAAa,EAAM,EAAO,CAC5B,GAAgB,SACnB,GAAkB,CAChBA,GAAI,eAAe,QAAS,GAAoB,CAAI,EACpDA,GAAI,eAAe,cAAe,GAAoB,CAAI,EAC1DA,GAAI,eAAe,YAAa,IAAiB,CAAI,CACvD,GAEE,OAAO,GAAU,WACnB,EAAQ,CAAE,SAAU,CAAM,GAE5B,IAAM,EAAO,CAAE,OAAM,KAAsB,IAAI,KAAQ,OAAM,EAE7D,OADA,GAAgB,KAAK,CAAI,EAClB,CACL,SAAU,CACR,IAAO,GAAiB,CAAI,EACvB,GAAgB,SACnB,GAAgB,QAAS,GAAM,EAAE,CAAC,EAClC,GAAkB,CAAC,EAEvB,CACF,CACF,CAGA,IAAI,GAAY,GAAS,EAAK,QAAQ,QAAQ,IAAM,GAChD,GAAU,GAAS,EAAK,QAAQ,MAAM,IAAM,GAC5C,GAAW,GAAS,EAAK,QAAQ,OAAO,IAAM,GAC9C,GAAS,GAAS,EAAK,QAAQ,KAAK,IAAM,GAC1C,GAAS,GAAS,EAAK,QAAQ,KAAK,IAAM,GAC1C,GAAa,GAAS,EAAK,QAAQ,SAAS,IAAM,GAClD,IAAY,GACP,EAAK,MAAM,GAAG,EAAE,MAAO,GAAM,CAAC,SAAU,KAAK,EAAE,QAAQ,CAAC,EAAI,EAAE,EAEnE,IAAY,GAAS,CACvB,IAAM,EAAQ,EAAK,MAAM,oBAAoB,EAC7C,OAAO,EAAQ,EAAM,GAAK,IAC5B,EACA,SAAS,IAAY,EAAG,EAAI,CAC1B,IAAI,EAAK,EACH,EAAMA,GAAI,WAAW,CAAC,EAC5B,KAAO,GACD,IAAM,GADF,CAER,IAAM,EAAO,iBAAiB,CAAC,EAAE,SAKjC,IAJI,IAAS,YAAc,IAAS,YAAc,IAAS,WACzD,EAAK,SAAS,iBAAiB,CAAC,EAAE,MAAS,GAAK,GAElD,EAAI,EAAE,WACF,IAAM,EAAI,KAChB,CACA,OAAO,CACT,CACA,IAAIC,GACAC,GACA,GACA,GACJ,SAAS,GAAkB,EAAM,EAAQ,EAAK,SAAU,EAAO,EAAG,EAAM,EAAG,CACzE,GAAI,CAAC,EAAM,OAAO,KAClB,GAAI,EACJ,GAAI,EACJ,GAAQ,OACR,IAAI,EAAI,EACJ,EAAU,EACR,EAAO,GAAa,CAAI,EACxB,EAAO,GAAU,CAAE,EAAIF,GAAI,WAAW,CAAI,EAAI,EACpD,GAAI,CAAC,EAAM,OAAO,KAClB,IAAM,EAAW,EAAK,sBAAsB,EACtC,EAAW,EAAK,sBAAsB,EACtC,EAAW,EAAK,sBAAsB,EACtC,EAAY,OAAO,iBAAiB,CAAI,EACxC,EAAS,CACb,KAAM,EACN,IAAK,EACL,OAAQ,EACR,MAAO,CACT,EACA,IAAK,IAAM,KAAO,EAAQ,CACxB,IAAM,EAAQ,UAAU,EAAI,QAC5B,EAAO,GAAO,WAAW,EAAU,iBAAiB,CAAK,CAAC,CAC5D,CACA,GAAI,EAAQ,CACV,IAAM,EAAK,IAAY,EAAQ,CAAI,EACnC,EAAI,KAAK,IAAI,EAAK,EAAG,EAAE,CACzB,CACA,GAAI,EAGF,IAFA,GAAM,EAAO,sBAAsB,EAC/B,GAAM,CAAE,IAAG,GAAQ,GAAI,MAAQ,MAC/B,IAAO,QACT,GAAI,IAAS,CAAE,EACT,GAAM,CAAE,EACV,GAAI,GAEJ,GAAI,EAAS,MAAQ,EACrB,EAAU,GAEZ,IAAK,EAAS,OAAS,EAAS,QAAU,MACrC,CACL,IAAM,EAAM,KAAU,CAAE,EACxB,GAAI,GAAQ,CAAE,EAAI,GAAI,MAAQ,EAAM,GAAI,KAAO,EAC/C,GAAI,GAAS,CAAE,EAAI,GAAI,OAAS,EAAI,GAAI,IACxC,IAAM,EAAQ,IAAS,CAAE,EACrB,IACE,GAAQ,CAAE,GAAK,GAAO,CAAE,EACtB,IAAU,SAAU,KAAM,EAAS,OAAS,GAAI,QAAU,EACrD,IAAU,QAAO,IAAK,EAAS,OAAS,GAAI,SAC5C,GAAS,CAAE,GAAK,GAAM,CAAE,KAC7B,IAAU,SAAU,KAAM,EAAS,MAAQ,GAAI,OAAS,EACnD,IAAU,QAAO,IAAK,EAAS,MAAQ,GAAI,OAC/C,GAAU,CAAE,IAAG,IAAK,IAG/B,OAEG,GAAM,CAAE,OAAM,MAAO,EAAM,MAAK,OAAQ,CAAI,EACnD,IAAM,GAAY,GAAO,CAAE,GAAK,GAAQ,CAAE,KAAO,GAAS,CAAE,GAAK,GAAM,CAAE,GACrE,GAAO,CAAE,IACX,EAAU,GAEZ,IAAM,EAAMC,GAAI,EAAS,MAAQ,EAAS,KACtC,GAAU,GAAO,CAAE,GAAK,CAAC,GAAY,EAAM,IAC7C,GAAI,GAAI,MACR,EAAU,GAEZ,IAAM,EAAMA,GAAI,EAAS,OAAS,EAAI,EAAU,GAAK,EAAS,MAC9D,GAAI,EAAM,EACR,GAAI,CAAC,GAAQ,CAAE,EACb,GAAI,EAAS,MAAQ,EAAO,MAAQ,EAAS,UACxC,CACL,IAAM,EAAK,GAAI,KAAO,EAAS,EAAI,EAAS,MACxC,GAAU,CAAC,GAAY,GAAM,EAC/B,GAAI,GAAI,KAAO,EAAS,MAExB,IAAK,EAAM,EAAO,KAEtB,CAEE,IACF,GAAI,KAAK,MAAMA,GAAI,EAAS,MAAQ,EAAU,CAAC,GAEjD,IAAM,EAAW,EAAM,GAAK,EAAM,GAAK,CAAC,EACpC,GAAM,CAAE,IACV,GAAI,GAAI,IAAM,EAAS,OACnB,GAAUC,GAAI,EAAS,GAAK,IAC9B,GAAI,GAAI,SAGZ,IAAM,EAAKA,GAAI,EAAS,OAAS,EAAS,OAa1C,OAZI,EAAK,IACH,GAAU,GAAS,CAAE,GAAK,EAC5B,IAAK,EAAS,OAAS,GAAI,OAAS,EAEpC,IAAK,EAAK,EAAO,QAGrB,IAAK,EAAS,KAAO,EAAO,KAC5B,IAAK,EAAS,IAAM,EAAO,IAC3B,IAAK,GAAU,CAAE,EAAID,GAAI,KAAK,IAAIA,GAAG,CAAC,GAAK,EAAK,WAChD,IAAK,GAAU,CAAE,EAAIC,GAAI,KAAK,IAAIA,GAAG,CAAC,GAAK,EAAK,UAChD,KAAiB,OACV,CAAE,KAAG,KAAG,IAAG,QAAM,CAC1B,CACA,SAAS,GAAa,EAAI,CACxB,IAAM,EAAMF,GAAI,WAAW,CAAE,EAE7B,IADA,CAAQ,GAAK,EAAG,cACT,GAAI,CACT,IAAM,EAAO,iBAAiB,CAAE,EAAE,SAClC,GAAI,IAAO,GAAO,IAAS,YAAc,IAAS,YAAc,IAAS,QACvE,OAAO,EACT,EAAK,EAAG,UACV,CACA,OAAO,IACT,CAGA,IAAI,GAAuB,IAAI,KAAK,EAAG,QAAQ,EAC/C,SAAS,IAAM,CAEb,MADA,KAAO,EACA,EACT,CA4DA,SAAS,GAAQ,EAAK,CAEpB,OADI,EAAM,GAAW,IAAM,EACpB,EAAI,SAAS,CACtB,CACA,SAAS,IAAU,EAAK,CACtB,IAAM,EAAO,GAAQ,CAAG,EACxB,OAAO,EAAK,QAAU,EAAI,IAAM,EAAO,CACzC,CACA,SAAS,GAAa,EAAM,CAC1B,IAAM,EAAQ,KAAK,MAAM,EAAO,EAAE,EAAI,GACtC,MAAO,CACL,QACA,IAAK,EAAQ,EACf,CACF,CACA,SAAS,GAAc,EAAO,EAAY,EAAG,CAC3C,IAAI,EAAO,EAAM,OAAO,EACpB,IAAS,IACX,EAAO,GAET,GAAQ,EAAO,EAAY,GAAK,EAChC,IAAM,EAAiB,IAAI,KAAK,EAAM,QAAQ,CAAC,EAC/C,EAAe,QAAQ,EAAM,QAAQ,GAAK,EAAI,EAAK,EACnD,IAAM,EAAc,EAAe,YAAY,EACzC,EAAe,KAAK,OACvB,EAAe,QAAQ,EAAI,IAAI,KAAK,EAAa,EAAG,CAAC,EAAE,QAAQ,GAAK,KACvE,EACA,MAAO,GAAI,KAAK,MAAM,EAAe,CAAC,CACxC,CACA,IAAI,GAAY,CAAC,GAAI,EAAE,EACvB,SAAS,IAAS,EAAM,EAAM,EAAS,CACrC,OAAQ,EAAR,CACE,IAAK,KACH,OAAO,GAAQ,EAAK,QAAQ,CAAC,EAC/B,IAAK,KACH,OAAO,GAAQ,EAAK,SAAS,EAAI,CAAC,EACpC,IAAK,KACH,OAAO,EAAK,QAAQ,EACtB,IAAK,KACH,OAAO,EAAK,SAAS,EAAI,EAC3B,IAAK,KACH,OAAO,GAAQ,EAAK,YAAY,EAAI,GAAG,EACzC,IAAK,KACH,OAAO,EAAK,YAAY,EAC1B,IAAK,KACH,OAAO,EAAQ,SAAS,EAAK,OAAO,GACtC,IAAK,KACH,OAAO,EAAQ,QAAQ,EAAK,OAAO,GACrC,IAAK,KACH,OAAO,EAAQ,WAAW,EAAK,SAAS,GAC1C,IAAK,KACH,OAAO,EAAQ,UAAU,EAAK,SAAS,GACzC,IAAK,KACH,OAAO,IAAS,EAAK,SAAS,EAAI,IAAM,GAAK,CAAC,EAChD,IAAK,KACH,OAAQ,EAAK,SAAS,EAAI,IAAM,GAAK,EACvC,IAAK,KACH,OAAO,EAAK,SAAS,EACvB,IAAK,KACH,OAAO,GAAQ,EAAK,SAAS,CAAC,EAChC,IAAK,KACH,OAAO,GAAQ,EAAK,WAAW,CAAC,EAClC,IAAK,KACH,QAAS,EAAK,SAAS,EAAI,GAAK,EAAQ,GAAK,EAAQ,KAAO,IAAW,GACzE,IAAK,KACH,QAAS,EAAK,SAAS,EAAI,GAAK,EAAQ,GAAK,EAAQ,KAAO,IAAW,GACzE,IAAK,KACH,OAAO,GAAQ,EAAK,WAAW,CAAC,EAClC,IAAK,KACH,OAAO,IAAU,EAAK,gBAAgB,CAAC,EACzC,IAAK,KACH,OAAO,GAAQ,GAAc,CAAI,CAAC,EACpC,IAAK,KACH,OAAO,GAAQ,GAAc,EAAM,EAAQ,WAAa,CAAC,CAAC,EAC5D,IAAK,KAAM,CACT,IAAI,EAAM,EAAK,YAAY,EAAI,GAO/B,MANA,IAAO,IAAM,GAAQ,EAAK,SAAS,EAAI,CAAC,EACxC,GAAO,IAAM,GAAQ,EAAK,QAAQ,CAAC,EACnC,GAAO,IACP,GAAO,GAAQ,EAAK,SAAS,CAAC,EAC9B,GAAO,IAAM,GAAQ,EAAK,WAAW,CAAC,EACtC,GAAO,IAAM,GAAQ,EAAK,WAAW,CAAC,EAC/B,CACT,CACA,IAAK,KACH,OAAO,KAAK,MAAM,EAAK,SAAS,EAAI,CAAC,EAAI,EAC3C,QACE,OAAO,CACX,CACF,CACA,IAAI,IAAc,aAClB,SAAS,GAAa,EAAQ,EAAS,CAErC,OADI,OAAO,GAAU,WAAmB,EACjC,SAAS,EAAM,CAGpB,OAFK,GACA,EAAK,WAAU,EAAO,IAAI,KAAK,CAAI,GACjC,EAAO,QACZ,IACC,GAAM,IAAS,EAAG,EAAM,CAAO,CAClC,GALkB,EAMpB,CACF,CAGA,SAAS,GAAS,EAAG,CACnB,OAAO,GAAK,OAAO,GAAM,UAAY,CAAC,MAAM,QAAQ,CAAC,CACvD,CACA,SAAS,GAAO,EAAG,EAAG,CACpB,IAAK,IAAM,KAAO,EAAG,CACnB,IAAM,EAAO,EAAE,GACX,GAAS,EAAE,EAAI,GAAK,GAAS,CAAI,EACnC,EAAE,GAAO,GACP,CAAE,GAAG,EAAE,EAAK,EACZ,EAAE,EACJ,EAEA,EAAE,GAAO,EAAE,EAEf,CACA,OAAO,CACT,CACA,SAAS,GAAO,EAAO,CACrB,MAAO,CACL,SAAS,EAAO,CACd,IAAM,EAAQ,EAAM,GACpB,MAAQ,IACC,GAAQ,EAAM,IAAc,CAEvC,EACA,QAAS,CACP,OAAO,CACT,EACA,OAAO,EAAQ,EAAU,CACvB,GAAI,CAAC,EAAQ,OAAO,KACpB,IAAI,EAMJ,MALA,CAGE,EAHE,EACK,GAAO,CAAE,GAAG,CAAO,EAAG,CAAK,EAE3B,GAAO,CAAE,GAAG,CAAM,EAAG,CAAM,EAE7B,GAAO,CAAI,CACpB,CACF,CACF,CCjgBA,SAAgB,GAAQ,EAAM,EAAI,CACjC,OAAO,EAAK,IAAI,GAAK,CACpB,IAAM,EAAM,EAAG,CAAC,EAEhB,OADI,EAAE,MAAQ,EAAE,KAAK,SAAQ,EAAI,KAAO,GAAQ,EAAE,KAAM,CAAE,GACnD,CACR,CAAC,CACF,CAEA,SAAgB,GAAW,EAAM,EAAI,CACpC,IAAM,EAAM,CAAC,EAUb,OATA,EAAK,QAAQ,GAAK,CACjB,GAAI,EAAE,KAAM,CACX,IAAM,EAAM,GAAW,EAAE,KAAM,CAAE,EAC7B,EAAI,QAAQ,EAAI,KAAK,CAAE,GAAG,EAAG,KAAM,CAAI,CAAC,CAC7C,MACK,EAAG,CAAC,GAAG,EAAI,KAAK,CAAC,CAEvB,CAAC,EAEM,CACR,CAEA,SAAgB,IAAgB,EAAM,CACrC,OAAO,GAAQ,EAAM,GAAK,CAEzB,IAAM,EAAM,CAAE,GAAG,EAAG,GAAI,EAAE,IAAM,GAAI,CAAE,EAEtC,OADI,EAAI,OAAM,EAAI,KAAO,EAAI,MACtB,CACR,CAAC,CACF,CAEA,IAAMzD,GAAW,CAAC,EAClB,SAAgB,IAAe,EAAM,CACpC,OAAOA,GAAS,IAAS,CAC1B,CACA,SAAgB,IAAiB,EAAM,EAAS,CAC/C,GAAS,GAAQ,CAClB,iQC9CA,aAMK,WACK,GAAU,mBACJ,KAAI,SAAU,GAAK,GAAO,CAAO,CAChD,UACS,EAAQ,EAAI,aACT,KAAM,CAChB,EAAG,gBAAe,oBACJ,GAAI,CAAO,QAE1B,WACQ,CAAE,CACX,KAKA,mCAQkB,EAAC,cAAD,EAAC,sBAAwB,MAAI,4BAA7B,CAAC,oBAAP,MAAI,8BAEP,EAAe,MAAG,IAAc,SAAQ,IAAI,sCAEnD,EAAe,mFACT,EAAI,UAAJ,EAAI,MAAJ,CAAI,qBAA2B,IAAI,OAAnC,CAAI,oBAJA,KAAI,sCAKK,EAAI,UAAJ,EAAI,MAAJ,CAAI,qBAA4B,OAAO,OAAvC,CAAI,oBAAb,SAAO,8BACA,IAAD,CAAC,oBAAP,MAAI,SAfhB,WACW,EAAO,MAAP,CAAO,YADlB,2BAEyB,KAAO,KAAE,gDACR,QAAQ,KAHlC,qBAIS,GAAK,SAAQ,EAAE,oBAJxB,EAKc,CAAO,YALrB,EAMS,CAAO,MANhB,MAJO,wJClBR,aAWE,EAAI,aAAG,CAAC,EACR,EAAG,YAAG,CAAC,EACP,EAAE,WAAG,QAAQ,EACb,EAAM,eAAG,IAAI,EACb,EAAK,cAAG,IAAI,EACZ,EAAO,gBAAG,IAAI,EACd,EAAG,YAAG,EAAE,EAIL,EAAI,EAAM,IAAO,EACjB,EAAI,EAAM,IAAO,EACjB,EAAI,EAAO,EAAE,EACb,EAAQ,EAAM,QAEd,EAAO,EAAM,QACb,EAAU,EAAO,EAAK,EACtB,EAAe,EAAO,IAAI,WAErB,GAAiB,KACnB,EAAS,GAAiB,EAAC,CAAI,EAAE,EAAM,EAAE,EAAE,EAAE,EAAI,EAAE,EAAG,GACxD,MACH,EAAI,EAAO,EAAC,MACZ,EAAI,EAAO,EAAC,MACZ,EAAI,EAAO,EAAC,MACZ,EAAQ,EAAO,MAAK,IAEtB,CAKI,EAAK,GAAE,EAAK,EAAC,CAAc,EAC/B,GAAQ,CAAc,WAEb,GAAU,GAClB,EAAU,EAAK,CAChB,UACS,GAAS,uBAEI,OAAQ,KAAM,OAAQ,IAAI,EAChD,UACS,EAAO,EAAI,EAAI,GACvB,EAAU,EAAE,MACZ,EAAe,EAAE,GAClB,KAEM,EAAY,MAAY,IAAe,YAC7C,OAAc,CACb,EAAe,EAAM,EACtB,CAAC,MAID,sBAQO,CAAY,EAAI,GAAQ,EAAO,IAAE,EAAjB,IAAM,8BAEvB,IAAH,CAAG,SAEH,6BACC,CAAM,GACN,iBACQ,GAAM,OACT,CAAM,EAAC,MAAI,CAAK,EAAG,iBAAkB,KAEnC,EAAI,CACT,UAAO,EACP,OAAM,EAAE,CAAM,EACd,OAAM,EAAN,CAAM,EACN,MAAO,KAEJ,CAAM,EAAC,SAAO,EAAE,CAAM,EAAC,QAAQ,CAAI,uBACpB,CAAI,EAIvB,EAAG,gBAAe,CACnB,CACD,eAtBG,CAAM,EAAC,OAAS,YAAW,kCA0B9B,uBACC,EAAG,0BACK,CAAM,EAAC,+CAER,CAAY,wBACnB,EAAO,gDANL,CAAM,EAAC,MAAI,EAAI,CAAO,MAAK,CAAM,EAAC,IAAE,kBAlC1C,+BACoB,SAAU,EAAQ,MAAO,EAAI,OADjD,OAEW,EAAI,SAAJ,CAAI,YAFf,eAIgB,EAAG,6BAJnB,6BAK8B,CAAC,kBAAU,CAAC,mBAAW,CAAK,mBAAW,CAAC,2BALtE,EAMc,CAAO,MANrB,MAHO,CC3DR,SAAgB,GAAW,EAAI,CAC9B,IAAM,EAAY,GAAW,aAAa,EAC1C,OAAO,GAAM,GAAa,GAAI,CAC/B,+FCNA,aAEE,EAAI,aAAG,EAAE,EACT,EAAG,YAAG,EAAE,EACR,EAAI,aAAG,EAAE,EACT,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAE,EACV,EAAI,aAAG,EAAE,EAKN,EAAS,MAAqB,KAC7B,EAAU,IACX,IACC,MAAM,GAAG,EACT,OAAO,GAAK,IAAM,EAAE,EACpB,IAAI,GAAK,MAAQ,CAAC,EAClB,KAAK,GAAG,EACT,UACI,EAAG,GAAI,EAAG,EAAG,IAAM,IAAM,CACjC,CAAC,EAEK,EAAc,GAAM,sBACN,CAAE,CACtB,MAGA,mCAOW,EAAC,cAAD,EAAC,KAAQ,EAAI,0BAAb,CAAC,WAAP,EAAI,kGACiC,EAAI,gDAR9C,sBACC,EAAK,OADN,mBAEoB,CAAS,kCACd,EAAI,iBAHnB,WAIC,EAAQ,cAJT,EAKS,CAAW,MALpB,MAFO,yQC1BR,aAKE,EAAK,cAAG,EAAE,EACV,EAAU,mBAAG,EAAE,EACf,EAAK,eAAa,EAAK,EACvB,EAAK,cAAG,EAAE,EACV,EAAQ,iBAAG,EAAK,EAIX,EAAO,GAAU,GAAU,gBAExB,EAAa,CAAG,UAAU,CAClC,EAAQ,EAAO,OAAO,0BACC,QAAK,EAAE,aAAU,GACzC,KAGA,EAAG,MACF,IADD,CAAG,KACF,OAQA,EAAK,EARL,WAQA,CAAK,eAEO,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAE,EAAK,QAAX,CAAI,WAAX,EAAK,YAFV,CAAK,IATN,CAAG,YAAH,EAAK,EAAK,KACT,OAEI,CAAO,EAFX,WAGC,EAAQ,KAHT,EAIS,EAAK,MAJd,EAKO,EAAU,KAGjB,EAAK,MAAM,CAAO,eARlB,EAMU,CAAa,MAPxB,CAAG,KAFI,6DCnBR,aAKE,EAAI,aAAG,CAAC,EACR,EAAG,YAAG,CAAC,EACP,EAAE,WAAG,QAAQ,EACb,EAAM,eAAG,IAAI,EACb,EAAK,cAAG,MAAM,EACd,EAAG,YAAG,EAAE,EAGR,EAAW,oBAAG,EAAK,EAGhB,EAAO,EAAO,IAAI,EAClB,EAAI,EAAO,CAAC,EACZ,EAAI,EAAO,CAAC,EACZ,EAAI,EAAO,MAAM,EACjB,WAEK,EAAS,EAAW,QACxB,EAAM,IAAK,EAAK,EAAG,IAAI,QAAQ,GAAG,KAC9B,EAAK,EAAC,QAAQ,UAAW,EAAO,KACtC,EAAS,EAAQ,EAAM,EAAC,YAAe,IAAM,KACtC,EAAK,EAAC,QAAQ,EAAO,CAAK,EACjC,EAEK,EAAK,GAAI,EAAK,IAAK,OAAS,EAAK,EAAG,CAC5C,UAES,GAAiB,OACpB,CAAI,aACH,EAAS,GAAiB,EAAC,CAAI,EAAE,EAAM,EAAE,EAAE,EAAE,EAAI,EAAE,EAAG,GACxD,MACH,EAAI,EAAO,EAAC,MACZ,EAAI,EAAO,EAAC,MACZ,EAAI,EAAS,EAAO,KAAK,MAE3B,UAES,EAAS,EAAG,aACJ,EAAE,SAAW,GAAM,GAAK,CAAI,EAAC,SAAS,EAAE,MAAM,cACpD,CAAC,CACZ,CAEA,QACC,0BAA4B,CAC3B,EAAc,EACV,EAAW,IACd,EAAS,GAAY,EAAC,CAAI,GACtB,GAAQ,EAAO,iBAAiB,SAAU,EAAU,EAAI,EAE9D,CAAC,MACY,CACR,EAAW,GAAI,GAClB,EAAO,oBAAoB,SAAU,EAAU,EAAI,CACrD,EACA,EAED,OAAc,CACb,EAAc,CACf,CAAC,WAEQ,EAAK,EAAG,wBACK,CAAC,CACvB,KAGA,kEACkB,CAAI,KADtB,OAEW,EAAI,SAAJ,CAAI,YAFf,gBAGiB,EAAG,6BAHpB,6BAI8B,CAAC,kBAAU,CAAC,mBAAW,CAAC,gBAJtD,MAFO,8CCpER,aAIE,EAAQ,iBAAG,QAAQ,EACnB,EAAK,cAAG,OAAO,EACf,EAAO,gBAAG,EAAI,EACd,EAAQ,iBAAG,IAAI,EACf,EAAK,cAAG,MAAM,EACd,EAAG,YAAG,EAAE,EAIL,EACJ,OAAc,IACT,EAAO,EAAE,KACN,EAAa,EAAK,sBAAqB,EACvC,EAAa,SAAS,KAAK,sBAAqB,SAElD,EAAW,OAAS,EAAW,OAClC,EAAQ,KAAK,EAGV,EAAW,QAAU,EAAW,QACnC,EAAW,KAAK,KAEP,EAAQ,KAAI,EAAK,GAC5B,CACD,CAAC,WAEQ,EAAK,EAAG,CAChB,EAAQ,GAAI,EAAQ,EAAC,CAAC,CACvB,KAGA,kEACkB,CAAI,KADtB,KAEW,EAAI,MAAJ,CAAI,WAFf,yBAG0B,EAAQ,KAAI,EAAK,OAAK,EAAG,4BAHnD,WAIc,EAAK,eAJnB,MAFO,uFCjCR,aAOE,EAAQ,iBAAG,QAAQ,EACnB,EAAK,cAAG,OAAO,EACf,EAAO,gBAAG,EAAI,EACd,EAAM,eAAG,EAAK,EAEd,EAAK,cAAG,MAAM,EACX,mGAGA,EAAS,EAAM,QACf,EAAO,EAAM,QAEX,EAAE,SAAe,EAAQ,KAAI,EAAK,KAExC,OAAc,GAGb,EAAM,EAAG,CAAI,EAAC,WAAU,GACzB,CAAC,2BAIA,IAAc,8DAAa,EAAQ,sBAAG,EAAK,wBAAG,EAAO,sBAAG,EAAK,QAAM,WAGnE,GAAM,oBACL,IAAK,4BAAS,CAAM,qBAAG,CAAE,wDAAc,EAAK,QAAM,qCALhD,EAAM,oBASN,KAAJ,EAAI,KAAY,EAAI,SAAJ,CAAI,aAXb,eC2CR,IAAM,GAAO,CACZ,MAhBA,GAAI,KACJ,OAAQ,SACR,OAAQ,SACR,UAAW,UACX,gBAAiB,gBACjB,cAAe,aAWZ,EACH,UApEA,UAAW,CACV,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACD,EACA,WAAY,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EACA,QAAS,CACR,SACA,SACA,UACA,YACA,WACA,SACA,UACD,EACA,SAAU,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC1D,MAAO,QACP,QAAS,UACT,KAAM,OACN,MAAO,QACP,MAAO,QACP,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EAEf,UAAW,EACX,YAAa,EAqBN,EACP,SATA,WAAY,QACZ,WAAY,WACZ,gBAAiB,QACjB,WAAY,IAMN,EACN,YACD,ECvEA,SAAgB,IAAgB,CAC/B,OAAO,GAAO4D,EAAE,CACjB,uCCHA,SAAgB,KAAkB,CACjC,IAAI,EAAW,KACX,EAAY,GACZ,EAAc,GACd,EAAM,EAAS,EAAa,EAC1B,GAAQ,EAAG,EAAG,EAAG,EAAG,IAAM,CAC/B,EAAO,EACP,EAAU,EACV,EAAc,EACd,EAAiB,EACjB,EAAc,CACf,EAEM,EAAS,GAAS,CACvB,EAAW,EACX,EAAY,IAAa,KACzB,EAAY,CAAQ,CACrB,EACM,GAAY,EAAK,IAAO,CAC7B,IAAM,EACL,IAAQ,KACL,KACA,KAAK,IAAI,EAAG,KAAK,IAAI,EAAW,EAAK,EAAQ,OAAS,CAAC,CAAC,EACxD,IAAU,IACd,EAAO,CAAK,EAER,EAAM,EAAS,EAAO,CAAE,EACvB,0BAA4B,EAAS,EAAO,CAAE,CAAC,EACrD,EAEM,GAAY,EAAU,IAAO,CAClC,GAAI,CAAC,GAAe,IAAa,MAAQ,EAAM,CAC9C,IAAM,EAAO,EAAK,iBAAiB,qBAAqB,EAAE,GACtD,IACH,EAAK,eAAe,CAAE,MAAO,SAAU,CAAC,EACpC,GAAI,EAAG,eAAe,EAE5B,CACD,EA2CA,MAAO,CAAE,KAzCI,GAAM,CAClB,IAAM,EAAK,GAAS,CAAE,EAChB,EAAQ,EAAQ,UAAU,GAAK,EAAE,KAAO,CAAE,EAE5C,IAAU,GACb,EAAO,CAAK,CAEd,EAkCe,SAhCE,EAAI,IAAa,CACjC,OAAQ,EAAG,KAAX,CACC,IAAK,QACA,EAAW,EAAe,EACzB,EAAO,CAAC,EACb,MAED,IAAK,QACC,GAAW,EAAO,CAAC,EACxB,MAED,IAAK,SACJ,EAAa,EAAW,IAAK,EAC7B,MAED,IAAK,MACJ,EAAa,EAAW,IAAK,EAC7B,MAED,IAAK,YACJ,EAAS,EAAY,EAAI,GAAY,EAAG,CAAE,EAC1C,MAED,IAAK,UACJ,EAAS,EAAY,GAAK,GAAY,EAAG,CAAE,EAC3C,MAED,QACC,KACF,CACD,EAEwB,OAAM,UAAS,CACxC,wTCpFA,aAoKU,GAAW,WAAG,MAAI,MAAJ,4DAKC,SAAS,EAAI,EAAC,EAAE,GAHtC,0EAEM,EAAI,EAAC,wHAKQ,OAAQ,EAAI,wCAE/B,EAAI,EAAC,KAAK,qDAIH,EAAW,+BACb,CAAY,EAAI,GAAoB,EAAK,IAAE,EAA3B,EAAI,gCAExB,cAMS,IANT,CAMoB,QAAG,KAAI,EAAJ,CAAI,OAN3B,aAIW,EAAS,SAAT,CAAS,aAJpB,kDAEgB,CAAY,IAAG,CAAY,EAAC,QAAK,EAAK,CAAQ,MAF9D,qBAGS,GAAK,EAAC,CAAI,EAAC,EAAE,QAHtB,cASA,cAKS,IALT,CAKoB,QAAG,KAAI,EAAJ,CAAI,OAL3B,+DAEgB,CAAY,IAAG,CAAY,EAAC,QAAK,EAAK,CAAQ,MAF9D,qBAGS,GAAK,EAAC,CAAI,EAAC,EAAE,QAHtB,cAVG,CAAY,IAAG,CAAY,EAAC,QAAU,EAAC,gCA5K5C,EAAK,uBAIL,EAAW,oBAAG,EAAK,EAIhB,mIAIA,EAAO,EAAM,QACb,EAAY,EAAM,QAElB,EAAW,EAAO,IAAI,EACtB,EAAY,EAAO,CAAC,EACpB,EAAa,EAAO,EAAE,EACtB,EAA0B,GAExB,GAAK,GAAW,SAAS,GAAK,GAAa,GAAI,SAAS,MAAM,GAE5D,OAAM,UAAS,OAAM,YAAa,IAAe,EAEnD,EAAsB,GAAY,GACnC,CAAI,MACP,CAAI,EAAC,UACJ,EAAQ,EAAG,CAAU,IAAG,CAAI,EAAC,aAAY,EAAG,CAAU,IACvD,EAAS,EAAG,CAAI,EAAC,UAAS,IAE5B,EACM,GAAuB,EAAK,IAAO,CACxC,EAAS,EAAK,CAAE,EAChB,GAAI,EAAG,SAAW,CACjB,EAAmB,EAAC,CAAQ,EAC7B,CAAC,CACF,EAEM,GAAsB,EAAI,IAAQ,GAEtC,CAAQ,IAAK,GAAC,EACd,CAAQ,IAAK,EAAK,EAAC,OAAS,IAC3B,EAAG,KAAO,aAAe,EAAG,KAAO,YAEpC,EAAG,eAAc,EAClB,EAAQ,EAAI,CAAG,EAEf,GAAI,EAAG,SAAW,MACb,CAAI,KACQ,EAAG,CAAY,EAAC,KAC9B,GAAQ,EAAK,KAAE,EAAK,EAEjB,EAAW,KACR,EAAkB,EACvB,CAAI,EAAC,WAAS,EAAI,CAAQ,IAAG,CAAU,EAClC,EAAqB,EAC1B,CAAI,EAAC,UAAS,EAAG,CAAI,EAAC,cAAY,EAClC,CAAQ,IAAG,CAAU,IAAG,CAAU,EAE9B,EAGO,GACX,EAAmB,EAAC,CAAQ,MAH5B,CAAI,EAAC,UAAS,EAAG,CAAQ,IAAG,CAAU,IACtC,EAAS,EAAG,CAAI,EAAC,UAAS,IAI5B,MACC,EAAmB,EAAC,CAAQ,EAG/B,CAAC,CACF,EAEM,EAAa,GAAM,CACpB,GAAI,EAAG,gBAAe,MACtB,EACE,EAAS,EAAK,IAAC,CAAQ,IAAG,GAQ/B,wBANU,SAAS,CAAM,EACf,QAAS,OAAO,GAAK,IAAM,CAAM,EAEjC,YAAc,CAAM,EAGlB,0BAEU,GAAI,CAAS,EACrC,EAEM,EAAmB,MACxB,KAAK,KAAI,EAAC,CAAI,GAAE,aAAY,EAAG,CAAU,IAGpC,EAAY,MAAqB,KACjC,EAAW,SAAW,MAAO,EAAG,IAAK,EAAK,EAAC,MAAM,MAEjD,EAAK,EAAC,OAAM,OAAW,MAAO,EAAG,IAAK,CAAC,MAEtC,EAAQ,KAAK,MAAK,EAAC,CAAS,IAAG,CAAU,GACzC,EAAM,EAAK,EAAG,CAAmB,SAGtC,MAAO,KAAK,IAAI,EAAG,EAAQ,CAAQ,EACnC,IAAK,KAAK,IAAI,EAAK,EAAC,OAAQ,EAAM,CAAQ,EAE5C,CAAC,EAEK,EAAY,MAAqB,KACjC,EAAW,SAAS,EAAK,MAEtB,QAAO,OAAG,EAAK,CAAY,SAC5B,EAAK,EAAC,MAAM,EAAO,CAAG,EAAE,IAAI,IAAI,IACnC,CAAI,GAET,CAAC,EAEK,EAAS,QAAY,CAAY,EAAC,MAAK,EAAG,CAAU,GACpD,EAAW,MAAY,EAAK,EAAC,OAAM,EAAG,CAAU,GAEhD,EAAe,GAAM,CACtB,EAAW,KACd,EAAY,EAAG,OAAO,UAAS,GAEjC,EAEA,OAAc,KACR,EAAyB,KACvB,EAAkB,EAAG,CAAS,GAAE,aAClC,MACH,EAAa,EAAkB,IAC/B,EAA0B,GAE5B,CACD,CAAC,EAED,OAAc,CACb,EAAI,EACH,CAAI,EACJ,EAAK,EACL,GAAC,EAAK,EAAW,EAAC,IAClB,EACA,EAAW,EACX,EAEF,CAAC,EAED,OAAc,uBAGX,SAAU,EAAW,EAAG,EAAsB,EAC9C,QAAS,EAAW,EAAG,EAAqB,EAC5C,QAEH,CAAC,4CA0CK,EAAK,IACT,GAAQ,mBAAiB,EAAS,IAAI,OAAO,EAAI,sBAGhD,gDASG,QAIC,IAJD,GAQU,IAJT,CAIoB,KAJpB,KAJD,4BAEkB,CAAW,WAE5B,6BAEgC,CAAS,eAN1C,UAYQ,EAAW,YAbhB,EAAW,mCAgBf,EAAG,UAAH,EAAG,MAAH,CAAG,mBAAqB,EAAE,SAAS,QAAnC,CAAG,WAjBA,EAAK,EAAC,OAAM,iBAPjB,aAEW,EAAI,SAAJ,CAAI,aAFf,EAGS,CAAU,gBAHnB,EAIa,CAAI,cAJjB,EAKU,CAAY,MALtB,gDALC,CAAQ,IAAK,MAAI,kBAxCd,sWClKR,aAKE,EAAK,eAAa,EAAE,EAEpB,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EACb,EAAM,eAAG,EAAK,EACd,EAAI,aAAG,MAAM,EACb,EAAW,oBAAG,EAAE,EAChB,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EACb,EAAU,mBAAG,EAAE,EACf,EAAK,cAAG,EAAE,EACV,EAAG,YAAG,EAAE,EACR,EAAI,aAAG,EAAE,EACT,EAAK,cAAG,EAAK,EAIR,EAAO,GAAU,GAAU,OAE7B,EAAS,MACZ,EAAI,GAAI,EAAG,EAAC,QAAQ,cAAc,OAC/B,iBAAmB,IACnB,KAEA,EAAW,MAAY,EAAI,GAAI,EAAG,EAAC,QAAQ,cAAc,MAAQ,EAGjE,EACJ,OAAc,CAEb,eAAiB,CACZ,EAAK,GAAI,GAAO,EAAM,MAAK,EAC3B,EAAM,GAAI,GAAO,EAAM,OAAM,CAClC,EAAG,EACJ,CAAC,MAEK,MAAO,wBAAgC,QAAK,EAAE,MAAO,EAAI,GACzD,MAAM,wBAAgC,QAAK,aAExC,EAAW,EAAI,CACvB,EAAG,gBAAe,EAClB,EAAQ,EAAE,0BACa,QAAK,GAC7B,KAGA,mCAOE,sBAEW,EAAK,MAAL,CAAK,WAFhB,OAGI,CAAO,EAHX,WAIC,EAAQ,EAJT,WAKC,EAAQ,IALT,gBAMC,EAAW,MANZ,EAQO,EAAU,KARjB,UASC,EAAK,eATN,EAUC,CAAO,aAVR,EAWU,CAAM,KAXhB,uBAcA,sBAEW,EAAK,MAAL,CAAK,WAFhB,OAGI,CAAO,EAHX,WAIC,EAAQ,EAJT,WAKC,EAAQ,IALT,gBAMC,EAAW,MANZ,EAQO,EAAU,KARjB,UASC,EAAK,eATN,EAUC,CAAO,aAVR,EAWU,CAAM,KAXhB,uBAcA,sBAEW,EAAK,MAAL,CAAK,WAFhB,OAGI,CAAO,EAHX,WAIC,EAAQ,EAJT,WAKC,EAAQ,IALT,gBAMC,EAAW,KANZ,UAOC,EAAK,MAPN,EAQO,EAAU,eARjB,EASC,CAAO,aATR,EAUU,CAAM,KAVhB,qBA7BG,EAAI,GAAI,WAAU,KAcb,EAAI,GAAI,SAAQ,gDAgCxB,EAAC,SAAD,EAAC,aACgB,EAAC,cAAD,EAAC,aAAiB,EAAI,+BAAtB,CAAC,aAAd,CAAW,oBADf,EAAqC,CAAU,qBAEjC,EAAC,cAAD,EAAC,aAAiB,EAAI,+BAAtB,CAAC,WALZ,EAAK,IAAK,EAAQ,GAAI,EAAK,OAKtB,EAAI,eAtDd,8BACgB,CAAS,uCACT,EAAK,gBACF,EAAQ,aACX,EAAK,SAJrB,MAFO,6YCjDR,aAIS,WAAU,WAAY,GAAW,SAAS,EAAE,OAAM,EAIpD,EAAI,aAAiB,YAAW,GAChC,EAAK,MAAqB,oBAEzB,eACG,GAAa,EAAQ,gBAAiB,CAAQ,cACjD,cACG,GAAa,EAAQ,WAAY,CAAQ,cAC5C,YAAa,KACT,QAAO,OAAQ,GAAY,EAAC,CAAI,GAClC,EAAa,GAAa,EAAQ,WAAY,CAAQ,WAClD,EAAU,IAAK,KAAK,EAAO,EAAG,CAAC,QAAQ,EAAU,IAAK,KAAK,EAAK,GAAI,EAAE,IACjF,EAEF,CAAC,WAEQ,GAAa,uBACA,KAAM,EAAG,KAAI,QACnC,KAGA,EAAG,UAAH,CAAG,YAID,8CAEoC,KAAI,GAAM,KAAI,cAFlD,cAIU,IAAJ,CAAI,mBAPC,QAAO,mBAUnB,EAAI,WAAJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,aAIH,8CAEoC,KAAM,EAAG,KAAI,cAFjD,cAIU,IAAJ,CAAI,mBAPC,OAAM,iBAZnB,CAAG,cAW0C,CAAK,cAAjD,EAA+B,CAAU,MAX1C,CAAG,KAFI,uFC1BR,KAIC,EAAM,WAAN,yBAAM,YAAN,EAAM,8CAAN,CAAM,CAFC,gOCFR,aAQE,EAAI,aAAG,EAAE,EACT,EAAO,gBAAG,IAAI,EAKT,GAAU,GAAW,SAAS,GAAK,GAAa,GAAI,OAAM,EAAG,SAC7D,GAAa,EAAO,WAAa,GAAK,EACtC,EAAW,EAAO,SACtB,MAAM,CAAS,EACf,OAAO,EAAO,SAAS,MAAM,EAAG,CAAS,GAErC,GAAM,EAAG,EAAI,IAAE,IAChB,KACH,EAAE,YAAW,EACb,EAAE,SAAQ,GAAM,GAAM,GACtB,EAAE,QAAO,GAAM,GAAM,EAAC,EAEpB,EAAS,EAAI,IAAK,kBAEb,EAAU,EAAM,KAClB,EAAI,EAAK,OAAM,SACd,IAAM,GAAK,IAAM,CACzB,UAES,GAAW,KACb,EAAQ,EAAE,UAAU,EAAG,EAAC,UAAW,QAAO,UAChD,EAAM,QACL,EAAM,QAAO,GAAO,EAAM,OAAM,GAAM,EAAY,IAAM,CAAC,EAEnD,CACR,UACS,GAAS,KACX,EAAM,EAAE,UAAU,EAAC,WAAW,QAAO,UAC3C,EAAI,QAAQ,EAAI,QAAO,GAAO,EAAI,EAAI,OAAM,EAAK,GAAa,CAAC,EACxD,CACR,KAEM,EAAW,CAChB,MAAO,CAAU,WAGT,EAAW,EAAM,EAAG,CAC5B,EAAE,gBAAe,6BACQ,KAAK,CAAI,2BAEnC,KAEM,EAAI,MACL,EAAI,GAAI,SAAQ,SAAkB,EAAE,SAAQ,QAAO,EAAK,CAAC,mBAGpD,MAAQ,EAAE,QAAO,KAAK,EAAE,QAAO,EAAK,UACpC,IAAM,EAAE,QAAO,GAAG,EAAE,QAAO,EAAK,IAErC,EAAG,CAAC,CACR,EAEK,EAAI,MAAqB,KACxB,EAAQ,EAAQ,EAChB,EAAM,EAAM,EACZ,EAAQ,UAAW,SAAQ,EAE7B,EAAI,WACC,EAAI,EAAO,GAAK,EAAK,EAAE,QAAQ,EAAE,QAAO,EAAK,CAAC,EAAG,KACnD,EAAG,CACR,IAAK,EAAE,QAAO,EACd,GAAI,EAAE,SAAQ,IAAO,EACrB,KAAM,EAAE,QAAO,GAGZ,EAAM,MACV,GAAQ,EAAI,GAAsB,GAAjB,eACjB,GAAG,EAAI,CAAI,EAAC,QAAQ,EAAI,IAAI,KAAS,eAAiB,GAElD,EAAQ,KACL,EAAI,EAAI,MAAI,EAAI,CAAI,EAAC,GACrB,EAAI,EAAI,MAAI,EAAI,CAAI,EAAC,GACvB,GAAC,CAAK,EAAG,GAAO,WACX,GAAC,CAAK,IAAG,GAAO,aAErB,EAAI,KAAI,EAAG,CAAI,EAAC,IAAM,EAAI,KAAI,EAAG,CAAI,EAAC,KACzC,GAAO,cACT,IAEA,GAAO,EAAU,CAAC,EAAI,cAAgB,GAClC,EAAO,EAAE,KACN,EAAO,EAAO,EAAC,CAAC,EAClB,IAAM,GAAO,IAAM,EACxB,CAEA,EAAK,KAAI,IAAM,EAAK,KAAG,EACxB,QACO,CACR,CAAC,MAGD,EAAG,MACF,EAAG,EADJ,CAAG,KACF,EAAG,OACI,EAAQ,MAAI,IAAG,KACpB,EAAG,UAAH,EAAG,MAAH,CAAG,cAAqB,CAAG,QAA3B,CAAG,MAFL,CAAG,MAKH,EAAG,EALH,EAAG,MAKH,EAAG,SACI,CAAI,EAAI,GAAK,EAAI,MAAI,EAAb,IAAG,KAChB,4DACe,CAAG,EAAC,KAAG,qCACP,CAAG,EAAC,EAAE,KAFrB,cAGS,CAAG,EAAC,IAAI,QAEhB,CAAG,EAAC,GAAG,QALR,OAFF,CAAG,KAAH,GAAG,oBAAoC,CAAW,IANnD,CAAG,MAAH,CAAG,KAFI,mJCvGR,aAOE,EAAK,gBACL,EAAO,kBAOF,EAAS,GAAW,SAAS,EAAE,OAAM,EAAG,SACxC,EAAS,EAAO,WAEhB,EAAQ,MAAqB,EAAO,EAAC,SAAQ,GAE7C,EAAY,CACjB,MAAO,CAAW,WAEV,EAAY,EAAO,EAAG,EAC1B,GAAS,IAAU,KACtB,EAAE,gBAAe,EACjB,EAAO,EAAC,SAAS,CAAK,EACtB,EAAO,IAAO,KAAK,EAAO,uCAKd,UAAU,EAAK,IAAO,KAAK,EAAO,4BAGhD,UAES,GAAO,KACT,EAAI,IAAO,KAAK,GAAa,EAAK,WAAW,EAAO,GAE1D,EAAK,SAAS,EAAO,EAAC,SAAQ,GAC9B,EAAK,YAAY,EAAO,EAAC,YAAW,0BAEf,CAAI,CAC1B,aAGA,EAAG,QAAH,EAAG,OACI,EAAM,MAAI,EAAK,SACpB,EAAG,cAAH,EAAG,UAA6D,CAAC,UAAjE,EAAG,MAAH,CAAG,aAAH,EAAG,kDAAoC,CAAQ,IAAK,CAAC,SACpD,CAAK,SADN,CAAG,MAFL,CAAG,KAAH,GAAG,oBAAsC,CAAY,MAOrD,EAAG,EAPH,EAAG,GAQF,KADD,CACO,WAAU,6CAAO,EAAO,IAAI,oCADnC,CAAG,YATI,kJC7CR,aAMO,EAAI,GAAW,SAAS,EAAE,OAAM,EAAG,SAGxC,EAAK,gBACL,EAAO,kBAOF,EAAI,MAAY,EAAO,EAAC,YAAW,GACnC,EAAK,MAAqB,KACvB,QAAO,OAAQ,GAAY,EAAC,CAAI,GAClC,EAAK,WACF,EAAI,EAAO,GAAK,EAAG,EAAI,EAC/B,EAAM,KAAK,CAAC,SAEN,CACR,CAAC,EAEK,EAAW,CAChB,MAAO,CAAU,WAET,EAAW,EAAM,EAAG,CACxB,IACH,EAAE,gBAAe,EACjB,EAAO,EAAC,YAAY,CAAI,EACxB,EAAO,IAAO,KAAK,EAAO,uCAKd,UAAU,EAAK,IAAO,KAAK,EAAO,4BAGhD,UAES,GAAO,KACT,EAAI,IAAO,KAAK,GAAa,EAAK,WAAW,EAAO,GAE1D,EAAK,YAAY,EAAO,EAAC,YAAW,0BAEf,CAAI,CAC1B,aAGA,EAAG,QAAH,EAAG,SACI,CAAK,QAAI,EAAC,SACf,+FAEkB,CAAI,KAAI,CAAC,mBACL,IAAM,mBACN,IAAM,OAJ5B,cAKS,CAAC,SAET,CAAC,SAPF,OAFF,CAAG,KAAH,GAAG,oBAAqC,CAAW,MAanD,EAAG,EAbH,EAAG,GAcF,KADD,CACO,WAAU,6CAAO,EAAE,IAAI,oCAD9B,CAAG,YAfI,CC/CR,IAAa,GAAU,CACtB,MAAO,CACN,UAAW,IACX,KAAM,IACN,KAAM,GACP,EACA,KAAM,CACL,UAAW,IACX,KAAM,IACN,KAAM,GACP,EACA,UAAW,CACV,UAAW,IACX,KAAM,IACN,KAAM,GACP,CACD,EAEA,SAAS,IAAU,EAAS,CAG3B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,SAAS,EAAQ,SAAS,EAAI,CAAC,EAChC,CACR,CACA,SAAS,IAAU,EAAS,CAG3B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,SAAS,EAAQ,SAAS,EAAI,CAAC,EAChC,CACR,CACA,SAAS,IAAS,EAAS,CAG1B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,YAAY,EAAQ,YAAY,EAAI,CAAC,EACtC,CACR,CACA,SAAS,IAAS,EAAS,CAG1B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,YAAY,EAAQ,YAAY,EAAI,CAAC,EACtC,CACR,CACA,SAAS,IAAc,EAAS,CAG/B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,YAAY,EAAQ,YAAY,EAAI,EAAE,EACvC,CACR,CACA,SAAS,IAAc,EAAS,CAG/B,MAFA,GAAU,IAAI,KAAK,CAAO,EAC1B,EAAQ,YAAY,EAAQ,YAAY,EAAI,EAAE,EACvC,CACR,CAEA,SAAgB,GAAa,EAAO,EAAM,CACzC,IAAI,EACJ,GAAI,IAAS,SAAU,EAAO,MACzB,CACJ,GAAM,CAAE,QAAO,OAAQ,EACvB,CAEK,CAFD,IAAS,OAAe,GACnB,GAAQ,SACL,IADqB,CAElC,CAEA,OAAO,CACR,6NChEA,aAMO,EAAI,GAAW,SAAS,EAAE,SAAS,UAAU,EAIlD,EAAO,kBACP,EAAI,aAAG,QAAQ,EACf,EAAO,gBAAG,IAAI,EACd,EAAO,sBAAI,QAAS,OAAO,GAKxB,EAAO,EAAO,OAAO,EAErB,EAAU,MACT,MAAM,QAAQ,EAAO,GAAU,EAAO,EACnC,EAAO,GAAI,QAAS,OAAO,IAClC,WAEQ,EAAW,EAAI,EAAM,CAC7B,EAAG,eAAc,0BACE,MAAO,CAAI,EAC/B,UAES,GAAW,GACf,CAAI,IAAK,YAAW,EAAE,EAAO,MAAM,IAC9B,CAAI,IAAK,QAAM,EAAE,EAAO,OAAO,CACzC,UAES,EAAQ,EAAI,KACZ,QAAS,KAEb,IAAS,EAAG,GACX,CAAI,IAAK,QAAO,EAAE,EAAO,MAAM,IAC1B,CAAI,IAAK,QAAM,EAAE,EAAO,WAAW,QAE7C,IACI,EAAM,KACH,EAAM,GAAO,EAAC,CAAI,GACxB,EAAU,EAAO,EAAI,EAAI,KAAK,EAAO,GAAI,EAAI,KAAK,EAAO,GAC1D,uBAED,UAES,EAAS,EAAO,GACxB,EAAO,OAAO,0BACK,OAAQ,GAAM,OAAK,EACvC,UAES,EAAe,EAAK,IACxB,IAAQ,OAAM,YACd,IAAQ,QAAO,OAAS,QACxB,IAAQ,QAAO,WAAa,IACjC,KAEM,EAAe,MAAY,GAAO,EAAC,CAAI,GAAE,SAAS,MAGxD,QAGC,EAAG,EAHJ,OAGC,CAAG,EACF,IAAM,qBAAO,EAAO,qBAAG,EAAI,uBAAG,CAAI,GAAG,gBACrC,EAAG,WAAH,CAAG,wBACF,mDAGC,EAAI,wBACJ,EAAO,GACP,WACA,WACA,cALD,SAAK,iBAAL,QAAK,oCASJ,EAAG,SAAH,EAAG,SACI,CAAU,QAAI,IAAG,KACtB,EAAG,MACF,KADD,CACC,WACS,GACR,EAAW,EAAG,EAAc,EAAC,CAAG,sDAEhC,EAAC,EAAC,CAAG,sCALP,CAAG,MAAH,CAAG,MAFL,CAAG,MAAH,CAAG,aADA,CAAI,IAAK,SAAO,EAAI,CAAU,EAAC,OAAS,GAAC,SAX9C,CAAG,IAFJ,CAAG,IAHJ,8BACoB,EAAI,IAAK,UAAY,EAAI,IAAK,OAAS,UAAY,KAAE,sBADzE,MAFO,iBC9DR,aAKO,EAAK,cAAG,IAAI,EAAE,EAAQ,iBAAG,EAAK,EAEhC,EAAI,GAAW,SAAS,IACvB,GAAK,EAAK,IAAK,QAElB,IAAI,GAAO,EAAE,EAEd,EAAI,EAAE,OAAO,EAAK,EAAE,EAAQ,GAC5B,GAAW,UAAW,CAAC,kDAEjB,iBCfR,aAKE,EAAK,gBACL,EAAO,kBACP,EAAO,gBAAG,IAAI,EACd,EAAO,sBAAI,QAAS,OAAO,YAInB,EAAW,EAAO,GACrB,EAAO,GAAI,IAAO,EAAU,EAAK,MAAO,KAAK,EAAK,OAAQ,IAAI,EACnE,EAAO,EAAC,QAAQ,CAAC,CAClB,CACA,EAAW,EAAK,YAEP,EAAO,EAAG,KACZ,EAAI,EAAE,MACR,GACH,EAAK,IAAO,KAAK,CAAC,GAClB,EAAW,EAAI,GAEf,EAAQ,IAAI,0BAGU,QAAK,GAC7B,CAGA,GAAM,oBACL,IAAK,sBAAE,EAAK,wBAAgB,EAAO,wBAAG,EAAO,YAAY,MAA3C,SAAY,iBAAZ,QAAY,sCAHpB,CC7BR,SAAgB,IAAe,EAAU,CAGxC,MAFA,CAAe,IAAW,CAAC,EAC3B,CAAqB,CAAS,QAAQ,QAC/B,CACR,sFCJA,aAWE,EAAK,gBAEL,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EACb,EAAW,oBAAG,EAAE,EAChB,EAAM,eAAG,EAAE,EACX,EAAO,sBAAI,QAAS,OAAO,GAC3B,EAAG,YAAG,EAAE,EACR,EAAK,cAAG,EAAE,EACV,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EAEb,EAAQ,6BAGD,SAAU,EAAgB,YACjC,GAAW,SAAS,GAAK,GAAa,GACrC,OAAM,EACF,EAAI,EAAM,GAAI,EAAQ,WACxB,EAAU,OACN,GAAM,WAAa,EAAI,GAAa,EAAG,CAAc,EAEzD,EAAQ,EAAM,iBAET,GAAW,GACnB,EAAQ,EAAK,CACd,UAES,EAAS,EAAG,KAGd,EACL,IAAM,EAAK,GACV,GAAK,EAAK,GAAI,EAAE,QAAO,IAAO,EAAK,EAAC,QAAO,IAC1C,GAAC,CAAK,EAAK,EAEd,EAAQ,CAAC,EACJ,2BACmB,QAAK,IAI7B,WAAW,EAAU,CAAC,CACvB,KAEM,EAAc,MAAY,EAAK,EAAG,EAAW,EAAK,GAAI,EAAE,WAErD,EAAM,CAAG,MAAO,EAAG,SAAS,KAC/B,EAAQ,IAAK,EAAK,GACnB,EAAK,WAGL,EAAI,OACA,EAAQ,GAAK,WACjB,EAAQ,EAAC,CAAC,EACV,MACK,KAAK,CAAC,EACV,KAKL,EAAO,MAAM,CAAI,EAAI,EAAK,GAAI,KAAO,GAAQ,KAC7C,EAAS,CAAI,CACd,KAOA,EAAG,qBAJqB,CAAQ,UAIhC,CAAG,gBAMS,EAAQ,GALnB,uBACC,EAAG,sBACH,EAAK,wBACC,CAAc,2EAGpB,EAAQ,sBACR,EAAK,4BACL,EAAW,WACH,WACC,sKAGT,EAAK,qCAImB,IAAe,EAAQ,IAA/C,GAAQ,MAAE,UAAQ,6BACjB,GAAQ,wBAAE,EAAO,sBAAG,EAAK,YAAY,GAAK,EAAS,EAAE,KAAK,yCAFxD,CAAK,IAAK,EAAQ,YAjBvB,CAAG,YAAH,MAAG,EAAuC,EAAQ,EAAI,OAAtD,CAAG,KANI,gZC5ER,aAIE,EAAK,eAAa,EAAE,EACpB,EAAO,yBACP,EAAW,oBAAG,IAAI,EAClB,EAAW,oBAAG,EAAE,EAChB,EAAQ,iBAAG,EAAK,EAChB,EAAK,cAAG,EAAK,EACb,EAAK,cAAG,EAAE,EACV,EAAS,kBAAG,OAAO,EACnB,EAAK,cAAG,EAAK,EAGb,EAAQ,4BAGL,EACA,WACK,EAAM,EAAI,CAClB,EAAW,EAAG,SACd,EAAU,EAAG,OACd,KAEI,EAAQ,MACX,EAAK,GAAI,EAAK,IAAK,GACf,EAAW,GAAI,EAAO,GAAE,KAAK,GAAK,EAAE,KAAO,EAAK,GACjD,eAGK,EAAM,CAAG,MAAM,EACnB,GAAM,IAAO,KAChB,EAAQ,CAAE,EAEV,EAAS,IAAI,0BACU,QAAK,IAE9B,UAES,EAAS,EAAI,CACrB,EAAG,gBAAe,EAClB,EAAQ,EAAE,0BACa,QAAK,GAC7B,KAEM,MAAc,EAAO,EAAC,UAAU,GAAK,EAAE,KAAO,EAAK,OAKzD,kBAUC,EAAG,EAVJ,OAUC,CAAG,sEAEsB,CAAQ,wCAAU,CAAQ,EAAC,EAAS,iEAE3D,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAyB,EAAW,QAAxC,CAAI,oCAHD,CAAQ,OAEH,EAAW,qBAHrB,CAAG,UAAH,EAAG,aAWF,EAAC,gBAAD,EAAqC,CAAQ,MAA7C,CAAC,aACM,IAAD,CAAC,WAJJ,EAAK,IAAK,EAAQ,GAAI,EAAK,qCAO9B,GAAI,yBAAQ,EAAO,WAAW,WAAiB,GAAY,GACjD,UAAQ,WAAG,MAAM,MAAN,+DACI,CAAM,qCAAU,EAAM,EAAC,EAAS,uDADvC,iCAFd,EAAQ,aAxBd,mEAGgB,EAAK,gBACF,EAAQ,8BAJ3B,UAEC,EAAK,eAFN,MAMe,IAAW,EAAK,gBAN/B,EAOW,GAAM,IAAU,EAAI,EAAK,QAPpC,MAJO,4LC/CR,aAEE,EAAO,yBACP,EAAK,eAAa,EAAE,EACpB,EAAG,YAAG,EAAE,WAKA,EAAY,EAAI,CACxB,EAAQ,CAAE,0BACa,QAAK,GAC7B,KAGA,EAAG,SAAH,EAAG,GACI,EAAW,GAAQ,EAAO,IAAE,EAAjB,IAAM,KACtB,sEAMkC,OAAM,EAAN,CAAM,gDAErC,iCACgB,CAAM,EAAC,MAAI,QAAI,CAAM,EAAC,MAEnC,GADA,YACE,sBAHL,cADG,CAAM,EAAC,MAAI,8BAOG,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAmB,CAAM,EAAC,KAAK,OAAnC,CAAI,aAAlB,CAAM,EAAC,OAAK,mDAdlB,sBACK,CAAM,EAAC,GAAG,IADf,YAEO,CAAM,EAAC,KAAK,MAFnB,4CAGmB,CAAM,EAAC,IAAM,EAAK,gBAHrC,MAIe,EAAW,EAAC,CAAM,EAAC,EAAE,OAJpC,OAFF,CAAG,UAAH,EAAG,kBAAwB,EAAG,0BAA9B,CAAG,KAFI,gHCPR,IAAM,IAAU,GAAM,EAuDtB,SAAgB,GAAK,EAAM,CAAE,QAAQ,EAAG,WAAW,IAAK,SAAS,KAAW,CAAC,EAAG,CAC/E,IAAM,EAAI,CAAC,iBAAiB,CAAI,EAAE,QAClC,MAAO,CACN,QACA,WACA,SACA,IAAM,GAAM,YAAY,EAAI,GAC7B,CACD,4MCrEA,aAEO,EAAM,mCAEH,GAAW,CACf,EAAM,EAAC,QAAQ,EAAM,EAAC,OAAM,CACjC,KAGA,QAMC,EAAG,EANJ,OAMC,EAAG,MAAH,CAAG,MACH,EAAG,EADH,EAAG,GAIF,EAAC,EAHF,CAAG,IAAH,CAAG,IAPJ,iCACqB,EAAM,EAAC,KAAO,EAAM,EAAC,KAAO,KAAE,2BAK7B,EAAM,EAAC,IAAI,cAI/B,EAA6B,CAAQ,OAVvC,oBAFO,0FCPR,KAGO,EAAI,0BAGV,EAAG,SAAH,EAAG,GACI,EAAQ,GAAQ,EAAO,IAAE,EAAjB,IAAM,CACnB,IAAM,yBAAE,CAAM,SAFhB,CAAG,MAAH,CAAG,CAFI,2TCJR,aAMO,GAAK,GAAW,SAAS,GAAK,GAAa,GAAI,SAAS,MAAM,EAGnE,EAAK,cAAG,EAAE,EACV,EAAO,sBAAI,SAAU,IAAI,YAQjB,EAAQ,EAAI,QACZ,EAAG,UACL,QAAS,KACP,EAAO,EAAG,OAAO,WACnB,IAAS,YAAc,IAAS,SAAQ,iCACnB,MAAO,CAAE,QAEnC,KACK,iCACmB,MAAO,CAAE,SAGnC,UAES,EAAQ,EAAI,EAAQ,KACtB,EAAI,CAAK,MAAO,EAAI,QAAM,EAC5B,IAAW,gCACO,CAAI,2BAEF,CAAI,CAE7B,KAEI,EACJ,OAAc,CACb,EAAM,MAAK,CACZ,CAAC,MAKD,QAOC,EAAG,EAPJ,OAOC,CAAG,0DAID,EAAG,UAAH,EAAG,MAAH,CAAG,YAAoB,EAAK,QAA5B,CAAG,yBADK,EAAK,gBAGd,EAAG,YAAH,sBAAG,UAAH,EAAG,2DAMF,EAAG,SAAH,EAAG,GACI,EAAO,MAAI,IAAM,KACtB,EAAG,UAAH,CAAG,iBAEW,CAAM,IAAK,KACrB,UACA,WAAW,EAHd,oDAIS,GAAM,EAAQ,EAAE,EAAE,CAAM,qDAEhC,EAAC,EAAC,CAAM,sCAPV,CAAG,MAAH,CAAG,MAFL,CAAG,MAAH,CAAG,yBADK,EAAO,cAXjB,CAAG,IAPJ,WAEW,EAAK,MAAL,CAAK,cAFhB,EAKW,CAAO,OALlB,eAGmB,SAAU,GAAG,QAHhC,MAJO,6DC7CR,aAUK,EAAQ,EAAO,IAAI,WACd,EAAU,EAAK,UACvB,EAAK,IAAQ,CAAG,UACL,SAAS,EAAK,IAAQ,GAChC,CAAK,EAAC,QAAU,GAAK,GACpB,EAAQ,IAAI,EACZ,EAAI,CAAC,CACN,IACA,CAAK,EAAC,OAAS,GAAK,GACnB,EAAQ,IAAI,EACZ,EAAI,CAAC,CACN,CACD,CAAC,CACF,KAEI,EAAU,EAAM,iBACX,EAAW,EAAK,CACxB,EAAG,IAAQ,CAAG,EACd,EAAI,GAAK,EAAI,IAAM,GAAG,EACtB,EAAI,WAAM,EAAU,EAAO,EAAG,CAAO,EAAC,OAAO,GAAK,EAAE,KAAO,EAAI,EAAE,MAE7D,EAAI,QAAM,IACb,WAAW,EAAI,OAAQ,EAAI,QAAU,IAAI,IAE1C,EAAO,MAAO,CAAO,EAAE,CAAG,KAC3B,CAEA,GAAW,aAAY,CACtB,aACA,WAAS,iEAMT,2BACO,CAAK,EAAC,8BACJ,CAAK,EAAC,kCACJ,CAAK,EAAC,iCACP,CAAK,EAAC,qDAEf,CAAK,EAAC,OAAO,6CAPX,CAAK,UAUT,SAAO,uBAAO,CAAO,eAbd,kBCzCR,aAIE,EAAK,cAAG,EAAK,EACb,EAAI,aAAG,EAAE,EACT,EAAI,aAAG,EAAE,EACT,EAAQ,iBAAG,EAAK,EAChB,EAAU,mBAAG,EAAE,EAEf,EAAK,cAAG,EAAE,EACV,EAAG,YAAG,EAAE,EACR,EAAI,aAAG,EAAE,EACT,EAAU,mBAAG,EAAE,EAMZ,EAAO,OAAa,EAAK,EAAG,UAAY,KAAO,EAAI,EAAG,IAAM,EAAI,EAAG,GAAE,WAEhE,EAAY,EAAI,KACpB,EAAI,CAAI,EAAK,uBACI,CAAE,EAClB,EAAG,mBACP,EAAQ,CAAI,0BACW,QAAK,IAE9B,qCAMQ,EAAK,GAAI,EAAU,GAAK,EAAI,WAG5B,EAAK,GAAI,EAAU,GAAK,EAAI,GALnC,yBACC,EAAK,4CAEL,EAAG,uBACE,CAAO,mCAEJ,wBACR,EAAQ,wGAOF,EAAK,GAAI,EAAU,GAAK,EAAI,WAG5B,EAAK,GAAI,EAAU,GAAK,EAAI,GALnC,yBACC,EAAK,4CAEL,EAAG,uBACE,CAAO,mCAEJ,wBACR,EAAQ,0GAOF,EAAK,GAAI,EAAU,GAAK,EAAI,WAG5B,EAAK,GAAI,EAAU,GAAK,EAAI,GALnC,yBACC,EAAK,4CAEL,EAAG,uBACE,CAAO,mCAEJ,wBACR,EAAQ,eAhCN,EAAK,uDAFF,sGC7BR,aAIK,EAAS,KAEP,EAAK,eAAa,EAAE,EAEtB,EAAQ,GACC,EAAQ,GAAK,CACrB,GAAU,EAAS,KAAK,CAAC,CAC9B,EAEI,EAAK,IAAK,IAAI,EAAQ,GAAW,UAAU,YAEtC,EAAc,EAAG,KACnB,EAAO,GAAI,WAAW,CAAC,OACtB,IAAM,GAAI,CAAK,EAAE,aAAa,qBAAqB,GACzD,EAAI,EAAE,kBAEA,CACR,CAEA,OAAc,EACI,UAAa,EAAc,CAAM,GACpC,YAAY,CAAM,EAC5B,GAAU,EAAS,QAAQ,GAAK,EAAC,EACtC,CAAC,EAED,OAAgB,CACX,GAAU,EAAO,YAAY,EAAO,WAAW,YAAY,CAAM,CACtE,CAAC,kBAGD,EAAG,MACF,EAAG,EADJ,CAAG,cACF,2BACsB,OAAK,MAD3B,CAAG,KAAH,EAAG,GAAqC,EAAM,MAAN,CAAM,IAD/C,CAAG,UACF,EAAG,QAAY,EAAK,oCADrB,CAAG,MAFI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kRChCR,aAIO,EAAK,cAAG,EAAI,EAClB,GAAW,WAAY,QAAQ,YAS/B,GAAW,iDAGT,YAAY,4BAFT,EAAK,wCANT,EAAG,WAAH,sBAAG,MAAH,CAAG,wCAHG,CCLmB,IAAI,KAAK,EAAG,QAAQ,EAsiB/C,IAAI,GAAiB,KAAM,CACzB,YAAY,EAAU,CACpB,KAAK,aAAe,KACpB,KAAK,UAAY,EACjB,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,CACjC,CACA,MAAM,KAAK,EAAM,EAAI,CAGnB,OAFA,KAAK,UAAU,EAAM,CAAE,EACnB,KAAK,cAAc,MAAM,KAAK,aAAa,KAAK,EAAM,CAAE,EACrD,CACT,CACA,QAAQ,EAAM,CACZ,MAAO,MAAK,aAAe,CAC7B,CACF,ECljBI,IAAW,MAAM,QACjB,IAAkB,OAAO,eAG7B,SAAS,IAAQ,EAAK,CACpB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC9B,EAAI,GAAG,CAEX,CAMA,IAAI,gBACA,GAAuB,IAAY,CAAC,GAAS,YAAY,EAAE,WAAW,MAAM,EAChF,SAAS,IAAoB,EAAM,CACjC,GAAI,GAAsB,CACxB,IAAM,EAAY,MAAM;QACpB,EAAK;yCAC4B,EAErC,KADA,GAAM,KAAO,eACP,CACR,MACE,MAAU,MAAM,0CAA0C,CAE9D,CAGA,IAAI,GAAc,CAAC,EACnB,SAAS,KAAkB,CACzB,IAAI,EAAQ,GACZ,GAAc,CAAC,EACf,IAAQ,CAAK,CACf,CACA,SAAS,IAAiB,EAAI,CAC5B,GAAI,GAAY,SAAW,EAAW,CACpC,IAAI,EAAQ,GACZ,mBAAqB,CACf,IAAU,IAAa,IAAgB,CAC7C,CAAC,CACH,CACA,GAAY,KAAK,CAAE,CACrB,CAGA,SAAS,IAAyB,EAAI,CACpC,GAAI,CACF,OAAO,EAAG,CACZ,QAAU,CACV,CACF,CACA,SAAS,IAAa,EAAY,EAAK,EAAS,EAAU,CAAC,EAAG,CAC5D,SAAS,EAAe,EAAQ,CAI9B,GAHK,EAAQ,SACX,IAAyB,KAAK,EAAK,CAAM,EAEvC,CAAC,EAAO,aACV,OAAO,QACE,GAAS,KAAK,KAAM,CAAM,CAClC,CAEL,CAQA,OAPI,EAAW,WAAW,SAAS,GAAK,EAAW,WAAW,OAAO,GAAK,IAAe,QACvF,QAAuB,CACrB,EAAI,iBAAiB,EAAY,EAAgB,CAAO,CAC1D,CAAC,EAED,EAAI,iBAAiB,EAAY,EAAgB,CAAO,EAEnD,CACT,CACA,SAAS,IAAG,EAAU,EAAM,EAAS,EAAU,CAAC,EAAG,CACjD,IAAI,EAAiB,IAAa,EAAM,EAAU,EAAS,CAAO,EAClE,UAAa,CACX,EAAS,oBAAoB,EAAM,EAAgB,CAAO,CAC5D,CACF,CACA,IAAI,GAAwB,KAC5B,SAAS,IAAyB,EAAQ,CACxC,IAAI,EAAkB,KAClB,EAEF,EAAgB,cAEd,EAAa,EAAO,KACpB,EAAO,EAAO,eAAe,GAAK,CAAC,EACnC,EAEF,EAAK,IAAM,EAAO,OAEpB,GAAwB,EACxB,IAAI,EAAW,EACX,EAAa,KAA0B,GAAU,EAAO,OAC5D,GAAI,EAAY,CACd,IAAI,EAAS,EAAK,QAAQ,CAAU,EACpC,GAAI,IAAW,KAAO,IAAoB,UAAY,IACtD,QAAS,CACP,EAAO,OAAS,EAChB,MACF,CACA,IAAI,EAAc,EAAK,QAAQ,CAAe,EAC9C,GAAI,IAAgB,GAClB,OAEE,GAAU,IACZ,EAAW,EAEf,CACA,KACA,EAAK,IAAa,EAAO,OACrB,IAAmB,EACvB,KAAgB,EAAQ,gBAAiB,CACvC,aAAc,GACd,KAAM,CACJ,OAAO,GAAkB,CAC3B,CACF,CAAC,EACD,GAAI,CAGF,IAFA,IAAI,EACA,EAAe,CAAC,EACb,IAAmB,MAAM,CAC9B,IAAI,EAAiB,EAAe,cAAgB,EAAe,YACnE,EAAe,MAAQ,KACvB,GAAI,CACF,IAAI,EAAY,EAAe,KAAO,GACtC,GAAI,GAAa,OAAS,CAC1B,EAAe,UAEf,EAAO,SAAW,GAChB,GAAI,IAAS,CAAS,EAAG,CACvB,GAAI,CAAC,EAAI,GAAG,GAAQ,EACpB,EAAG,MAAM,EAAgB,CAAC,EAAQ,GAAG,CAAI,CAAC,CAC5C,MACE,EAAU,KAAK,EAAgB,CAAM,CAG3C,OAAS,EAAO,CACV,EACF,EAAa,KAAK,CAAK,EAEvB,EAAc,CAElB,CACA,GAAI,EAAO,cAAgB,IAAmB,GAAmB,IAAmB,KAClF,MAEF,EAAiB,CACnB,CACA,GAAI,EAAa,CACf,IAAK,IAAI,KAAS,EAChB,mBAAqB,CACnB,MAAM,CACR,CAAC,EAEH,MAAM,CACR,CACF,QAAU,CACR,EAAO,OAAS,EAChB,OAAO,EAAO,aAChB,CA3CC,CA4CH,CAGA,GAAI,GAAsB,CACxB,IAAI,EAAmB,SAAS,EAAM,CACpC,GAAI,EAAE,KAAQ,YAAa,CACzB,IAAI,EACJ,OAAO,eAAe,WAAY,EAAM,CACtC,aAAc,GAEd,QAAW,CACT,GAAI,IAAU,IAAK,GACjB,OAAO,EAET,IAAoB,CAAI,CAC1B,EACA,IAAM,GAAM,CACV,EAAQ,CACV,CACF,CAAC,CACH,CACF,EACA,EAAiB,QAAQ,EACzB,EAAiB,SAAS,EAC1B,EAAiB,UAAU,EAC3B,EAAiB,UAAU,EAC3B,EAAiB,QAAQ,EACzB,EAAiB,WAAW,CAC9B,CA+FA,IAAI,GAAM,CACR,SAAU,GACZ,EC5OA,GAAO,EAAG,2FCrDV,aAQE,EAAE,WAAG,QAAQ,EACb,EAAQ,iBAAG,IAAI,EACf,EAAO,gBAAG,WAAW,EACrB,EAAM,eAAG,IAAI,EACb,EAAG,YAAG,EAAE,EAKH,EAAQ,cACL,EAAO,EAAC,QAAQ,qBAAsB,OAAO,EAAE,YAAW,KAG7D,EAAe,QAChB,CAAI,IAAK,MAAQ,EAAM,EACnB,GAAU,UAAU,GAAK,EAAM,EAAC,EAAC,EAAE,CAAI,aAG/C,EAEG,EAAO,EAAO,IAAI,EAClB,EAAS,EAAO,IAAI,EACpB,EAAO,EAAO,CAAC,EAClB,EAAM,EAAO,CAAC,WAEN,EAAQ,EAAI,GACpB,EAAS,IAAI,uBACM,CAAE,CACtB,UAEgB,EAAK,EAAI,EAAK,KACxB,EAAI,GACR,EAAS,IAAI,QAEd,IAEI,EAAG,iBAAgB,WAEjB,EAAS,EAAG,OACd,GAAU,EAAO,SAAW,EAAO,QAAQ,eAE/C,EAAO,EAAG,QAAU,CAAC,IACrB,EAAM,EAAG,QAAU,CAAC,IAEpB,EAAc,IAAQ,OAAoB,GAAS,EAAM,EAAE,CAAQ,GAA/B,EAA+B,MAC/D,EAAQ,MACX,EAAO,EAAQ,IAAC,CAAI,EAAE,CAAE,SACnB,CAAI,QAGV,EAAS,EAAM,IAEf,EAAG,eAAc,GAClB,yCAWC,EAAI,WAAJ,yBAAI,YAAJ,EAAc,CAAI,MAAlB,CAAI,iDAMJ,GAAM,GACI,UAAQ,WAAG,MAAK,MAAL,8BACd,CAAM,MACV,uBACC,EAAG,mBACH,EAAE,sBACF,CAAG,uBACH,CAAI,sBACJ,EAAK,yBACL,CAAM,0BACE,CAAI,WACJ,yBACA,CAAe,eAXT,yCAFf,CAAM,qBAVH,0GCnER,aAIgB,EAAE,WAAG,QAAQ,EAAE,EAAG,YAAG,EAAE,WAEtB,EAAK,EAAI,GACxB,EAAS,EAAG,OAAM,IAClB,EAAG,eAAc,CAClB,KAEI,EAAS,EAAO,IAAI,WACf,EAAQ,EAAI,GACpB,EAAS,IAAI,uBACM,CAAE,CACtB,UACS,EAAO,EAAI,KACf,EAAS,EAAG,aACR,EAAO,QAAQ,cACtB,EAAS,EAAM,IACf,EAAS,EAAO,UAElB,wBAKA,EAAI,UAAJ,yBAAI,UAAJ,EAAI,SAIH,GAAM,GACI,UAAQ,WAAG,MAAK,MAAL,8BACd,CAAM,MACV,GAAI,oBAAE,EAAG,mBAAG,EAAE,sBAAG,EAAK,yBAAG,CAAM,2CAAqB,cAFrC,yCAFf,CAAM,oBAHV,EAAc,CAAM,aAJb,yGCvBR,aAIK,EAAO,cACK,EAAK,EAAI,EAAK,CAC7B,EAAK,KAAK,EAAI,CAAG,CAClB,KAIC,EAAE,WAAG,QAAQ,EACb,EAAQ,iBAAG,IAAI,EACf,EAAO,gBAAG,WAAW,EACrB,EAAM,eAAG,IAAI,EACb,EAAG,YAAG,EAAE,0CAQR,EAAI,WAAJ,yBAAI,kBAAJ,EAAoB,CAAI,MAAxB,CAAI,wCAKL,4BACC,EAAG,mBACH,EAAE,yDAEF,EAAQ,wBACR,EAAO,uBACP,EAAM,wCACI,EAAI,MAAJ,cAhBJ,qBClBR,IAAa,GAAS,kBCDtB,IAAe,CACd,SAAU,CACT,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,qBAAsB,qBACtB,eAAgB,cACjB,CACD,6QCZA,aAOE,EAAI,0BACJ,EAAK,0BAAiB,aAAO,OAE7B,EAAM,eAAG,EAAE,EACX,EAAQ,iBAAG,EAAI,EACf,EAAM,eAAG,EAAK,EACd,EAAS,kBAAG,EAAE,EACd,EAAO,gBAAG,EAAK,EACf,EAAQ,iBAAG,EAAK,EAMb,EAAQ,EAAM,QACd,EAAO,EAAM,QACb,EAAQ,EACR,EAAO,GAGP,EAAI,GAAW,SAAS,EACvB,IACJ,EAAI,GAAO,GAAE,EACb,GAAW,UAAW,CAAC,OAElB,EAAI,GAAW,SAAS,EAAE,SAAS,UAAU,EAEtC,GAAY,EAAM,IAAQ,CAClC,EAAQ,IAEZ,IAAS,GACT,EAAK,iBAAiB,gBAAmB,CACpC,EAAI,WAAW,EAAI,UAAS,EAChC,EAAS,CACV,CAAC,EACD,EAAK,iBAAiB,gBAAmB,CACpC,EAAI,WAAW,EAAI,UAAS,EAChC,EAAS,CACV,CAAC,EAED,EAAK,iBAAiB,WAAY,GAAM,EAAG,eAAc,EAAI,EAAI,EACjE,EAAK,iBACJ,OACA,GAAM,CACL,EAAG,eAAc,EACjB,EAAU,EACV,EAAK,CAAE,EACH,EAAI,WAAW,EAAI,UAAS,CACjC,EACA,IAEF,EAEA,OAAc,GACb,CAAK,EAAC,gBAAkB,EAAM,CAC/B,CAAC,WAEQ,EAAI,EAAI,CAEhB,MADoB,KAAK,EAAG,OAAO,KACnC,EAAM,QAAQ,GAAK,EAAQ,CAAC,EAC7B,UAES,EAAK,EAAI,CAGjB,MAFoB,KAAK,EAAG,aAAa,KAEzC,EAAM,QAAQ,GAAQ,KACf,EAAQ,EAAK,iBAAgB,EAC/B,GAAO,EAAQ,CAAK,CACzB,CAAC,IAED,EAAO,EAAK,EACZ,EAAQ,CACT,UAES,EAAQ,EAAM,EAAM,CAC5B,IAAe,GACX,EAAK,OACR,EAAK,KAAK,GAAQ,CACjB,EAAQ,CAAI,CACb,CAAC,EACS,EAAK,aAEf,EADiB,aACjB,EAAI,YAAY,GAAS,CACxB,EAAM,QAAQ,GAAQ,CACrB,EAAQ,EAAM,EAAO,EAAK,KAAO,GAAG,CACrC,CAAC,CACF,CAAC,CAEH,UAES,EAAQ,EAAM,KAChB,EAAG,IACL,EACH,GAAI,GAAG,EACP,OAAQ,SACR,KAAM,EAAK,KACX,QAGG,EAAI,UAAU,EAAI,SAAS,CAAG,yBACb,CAAG,EAEpB,EAAQ,EACX,EAAI,IAAO,EAAI,EAAE,CAAG,GAEpB,EAAI,CAAI,CAAG,GAGZ,EAAO,CAAG,IACV,CAAK,EAAC,MAAQ,EACf,UAES,EAAgB,EAAK,KACvB,EAAQ,IAAO,SACrB,EAAS,OAAO,SAAU,EAAI,IAAI,MAE5B,EAAM,CACX,OAAQ,OACR,KAAM,CAAQ,SAGR,MAAM,EAAS,EAAE,CAAM,EAC5B,KAAK,GAAO,EAAI,KAAI,GACpB,KACA,IAAI,CAAO,GAAI,EAAI,GAAE,GAAK,CAAI,SACrB,GAAI,EAAI,GAAI,OAAQ,OAAO,IAEpC,MAAM,GAAS,QAAQ,IAAI,CAAK,EACnC,UAES,EAAO,EAAK,CACf,GAOL,GALa,OACL,EAAS,GAAK,WAClB,EAAS,EAAC,CAAG,EACb,EAAgB,CAAG,GAGrB,KAAK,GAAK,CACV,EAAE,OAAS,EAAE,QAAU,SACvB,EAAW,EAAI,GAAI,CAAC,CACrB,CAAC,EACA,MAAM,GAAS,CACf,EAAW,EAAI,GAAE,CAAI,OAAQ,QAAS,OAAK,EAC5C,CAAC,EACH,UAKgB,GAAW,KACtB,EAAS,iBACJ,EAAI,EAAG,EAAI,EAAI,EAAC,OAAQ,IAAK,IACjC,EAAI,EAAC,GAAG,SAAW,SAAQ,MAAS,SACpC,EAAI,EAAC,GAAG,SAAW,UAAS,EAAS,QAC1C,QAEO,CACR,UAES,EAAW,EAAI,EAAQ,KACzB,EAAM,EAAI,EAAC,UAAU,GAAK,EAAE,IAAM,CAAE,EACpC,EAAQ,IAAI,EAAC,GAAG,IAAS,EAAI,EAAC,GAAG,GAAM,CAAM,MAE7C,EAAG,IAAQ,EAAM,OAAQ,EAAQ,GACnC,GAAQ,EAAK,UAAU,EAAK,SAAS,CAAG,yBACvB,CAAG,EAEpB,EAAK,MAAM,EAAO,EAAI,EAAC,OAAO,GAAK,EAAE,IAAM,CAAE,EAClD,UAES,GAAY,CAChB,IAAU,GAAC,EAAE,EAAO,EAAI,EAC5B,GACD,UAES,GAAY,CACpB,IACI,IAAU,GAAC,EAAE,EAAO,EAAK,CAC9B,UAEgB,EAAK,EAAK,CACzB,EAAU,GAAG,KACb,CAAK,EAAC,MAAK,CACZ,CAEA,GAAW,GAAM,CAAI,OAAM,WAAU,UAAQ,yEAI5C,iBAGW,EAAK,SAAL,CAAK,QAHhB,4CAKC,EAAM,GALP,WAMC,EAAQ,EANT,WAOC,EAAQ,eAPT,EAIU,CAAG,qBAOb,kBAMC,IAND,MAMC,OAGW,EAAK,SAAL,CAAK,WAHhB,kDASiC,MAAI,sBACpC,EAAG,MACF,EAAI,EADL,CAAG,MACF,CAAI,EAIH,EAAI,SAAJ,EAAI,MAAJ,CAAI,IAJL,CAAI,IADL,CAAG,2CAED,EAAE,oBAAoB,MAIpB,EAAE,cAAc,cADlB,EAA6B,CAAI,MALnC,CAAG,uCAhBL,0EAEc,CAAI,gBACC,EAAQ,MAG1B,WAKC,EAAM,GALP,WAMC,EAAQ,EANT,WAOC,EAAQ,eAPT,EAIU,CAAG,MAVd,oBAZG,EAAO,8BAFJ,sCCnMR,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAIC,IAAE,KAAK,CAAC,YAAY,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAS,CAAE,OAAK,CAAC,EAAG,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAEC,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,IAAM,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,EAAEC,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAM,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAM,EAAE,KAAK,MAAM,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,QAAQ,GAAG,KAAK,QAAQ,CAAC,CAAC,EAAE,KAAK,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,CAAC,EAAQ,EAAE,KAAK,MAAM,IAAI,EAAE,MAAM,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,QAAQ,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,KAAO,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,IAAM,EAAE,KAAK,MAAM,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,MAAM,IAAI,EAAE,MAAM,EAAE,CAAS,CAAE,OAAK,CAAC,EAAG,IAAM,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,IAAE,EAAE,CAAC,EAAE,IAAM,EAAE,EAAE,EAAE,KAAK,OAAOA,GAAE,EAAE,EAAE,EAAE,GAAG,MAAI,SAAa,GAAGD,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,KAAK,OAAO,GAAGE,GAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAS,CAAE,OAAK,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,EAAE,SAASA,GAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,GAAGA,GAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAASC,IAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAASH,GAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAASC,GAAE,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAIG,GAAE,EAAEC,IAAE,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,SAAS,KAAK,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,KAAK,OAAO,KAAK,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,OAAO,GAAG,UAAU,aAAa,MAAM,aAAa,MAAM,EAAE,QAAQ,IAAI,EAAE,QAAQ,GAAG,SAAS,IAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,EAAED,GAAE,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,IAAI,GAAG,EAAE,WAAW,EAAE,GAAG,KAAK,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,KAAK,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,OAAO,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,EAAE,SAAS,KAAK,OAAO,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAASE,GAAE,EAAE,EAAE,CAAC,OAAO,OAAO,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAIC,IAAE,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,WAAW,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,SAAS,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,GAAGC,GAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,GAAG,KAAK,MAAM,KAAK,EAAE,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,IAAM,EAAE,KAAK,QAAQ,EAAEJ,EAAC,EAAE,OAAO,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,WAAW,KAAK,YAAY,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAM,EAAE,KAAK,OAAO,GAAG,EAAE,CAAC,KAAK,OAAO,KAAK,KAAK,gBAAgB,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,QAAQ,CAAC,IAAM,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAM,EAAE,KAAK,QAAQ,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAM,EAAE,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,IAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,KAAK,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAM,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAASI,GAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAM,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,GAAGA,GAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAIC,IAAE,KAAK,CAAC,aAAa,CAAC,KAAK,aAAa,KAAK,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,IAAM,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,KAAK,UAAU,GAAG,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,UAAU,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,KAAK,cAAc,MAAM,KAAK,aAAa,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAO,MAAK,aAAa,CAAC,CAAC,EAAE,SAASC,GAAE,EAAE,CAAC,GAAG,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,GAAG,GAAG,MAAM,EAAE,IAAI,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,GAAG,GAAG,KAAK,EAAE,IAAI,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,GAAG,GAAG,IAAI,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,SAASC,GAAE,EAAE,EAAE,CAAC,CAAI,GAAE,CAAC,IAAI,OAAO,MAAM,KAAK,EAAG,IAAM,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,QAAQ,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,QAAQ,EAAE,EAAE,EAAE,KAAKC,GAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAKA,GAAE,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,SAASC,IAAE,EAAE,EAAE,CAAC,OAAO,OAAO,GAAG,SAAS,EAAE,cAAc,EAAE,IAAK,GAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,SAASC,IAAE,EAAE,EAAE,CAAC,OAAO,OAAO,GAAG,SAAS,CAAC,EAAE,cAAc,EAAE,IAAK,GAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,SAASF,GAAE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,IAAM,EAAE,IAAI,MAAMC,IAAEC,IAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,SAASC,GAAE,EAAE,EAAE,CAAC,IAAM,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,GAAG,EAAE,OAAO,KAAK,EAAE,GAAG,EAAE,CAAC,SAASC,IAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,IAAMC,IAAN,cAAgBlB,GAAC,CAAC,YAAY,EAAE,CAAiF,MAAM,CAAC,CAA9E,GAAG,IAAI,KAAK,WAAW,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,QAAiB,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,IAAK,EAAC,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,OAAO,SAAS,CAAC,IAAM,EAAE,EAAE,KAAK,YAAY,GAAG,EAAE,EAAE,IAAI,GAAqB,GAAlB,EAAE,KAAK,MAAM,EAAE,CAAC,EAAK,EAAE,IAAI,IAAI,MAA6B,GAAvB,GAAG,kBAAkB,CAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAM,EAAE,CAAC,EAAM,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,OAAO,KAAK,UAAU,GAAG,CAAC,EAAE,KAAK,YAAY,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,GAAG,EAAE,KAAK,KAAK,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,YAAY,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,IAAM,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,IAAI,GAAgB,GAAb,EAAE,MAAM,EAAE,CAAC,EAAK,EAAE,EAAE,IAAI,IAAI,GAAO,EAAE,IAAI,GAAgB,EAAb,EAAE,MAAM,EAAE,CAAC,EAAI,EAAE,GAAG,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,IAAM,EAAE,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAOmB,IAAN,cAAgBb,GAAC,CAAC,GAAG,QAAQ,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,UAAU,EAAE,OAAO,UAAU,EAAE,SAAS,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,SAAS,EAAM,EAAE,CAA6B,CAA7B,EAAI,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,EAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,EAAE,GAAK,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,GAAG,EAAEM,GAAE,EAAE,EAAE,EAAE,EAAE,IAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,UAAU,EAAE,WAAW,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,GAAG,SAAS,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,GAAG,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAIJ,IAAE,MAAM,SAAS,KAAK,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAIU,IAAE,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,KAAK,GAAG,IAAIR,IAAE,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,GAAK,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,cAAc,CAAC,IAAM,EAAE,EAAE,GAAG,OAAW,EAAE,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,kBAAkB,IAAI,YAAY,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,GAAK,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,KAAK,KAAK,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAM,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,IAAM,EAAE,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,QAAQ,cAAc,EAAE,cAAc,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,IAAI,KAAK,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,QAAQ,cAAc,EAAE,cAAc,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,GAAG,CAAC,GAAK,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,KAAK,kBAAkB,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,sCAAsC,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,aAAa,GAAG,CAAC,GAAK,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,KAAK,kBAAkB,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,sCAAsC,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,GAAK,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,IAAM,EAAE,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,QAAQ,cAAc,EAAE,cAAc,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,GAAK,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,SAAS,EAAE,CAAI,GAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAG,KAAK,SAAS,CAAC,KAAK,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,KAAK,CAAC,GAAK,CAAC,YAAY,GAAG,KAAK,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAM,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,oBAAoB,CAAC,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,GAAK,CAAC,YAAY,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,IAAK,EAAE,IAAK,EAAE,GAAG,KAAK,IAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAGH,GAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,IAAM,EAAE,CAAC,OAAOA,GAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,QAAQ,GAAG,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,SAAS,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,gBAAgB,MAAM,IAAM,EAAE,CAAC,EAAE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,OAAO,GAAG,GAAG,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,SAAS,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,SAASa,IAAE,EAAE,CAAC,OAAO,EAAP,CAAU,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,oBAAoB,KAAK,QAAQ,OAAO,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,MAAM,CAAC,CAAC,KAAK,8BAA8B,KAAK,eAAe,GAAG,UAAU,EAAE,CAAC,KAAK,4BAA4B,KAAK,iBAAiB,GAAG,YAAY,EAAE,CAAC,KAAK,8BAA8B,KAAK,cAAc,GAAG,SAAS,KAAK,QAAQ,CAAC,EAAE,IAAI,cAAc,MAAM,CAAC,CAAC,KAAK,mBAAmB,KAAK,OAAO,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,kBAAkB,KAAK,MAAM,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC,KAAK,YAAY,KAAK,SAAS,OAAO,SAAS,GAAG,QAAQ,CAAC,EAAE,QAAQ,MAAM,CAAC,IAAI,SAAS,KAAK,CAAC,KAAK,eAAe,KAAK,WAAW,OAAO,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,mBAAmB,KAAK,OAAO,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,kBAAkB,KAAK,MAAM,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,oBAAoB,KAAK,QAAQ,OAAO,SAAS,GAAG,OAAO,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC,KAAK,WAAW,KAAK,SAAS,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC,KAAK,YAAY,KAAK,SAAS,OAAO,SAAS,GAAG,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAASC,IAAE,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,IAAE,EAAE,EAAE,UAAU,CAAC,IAAM,EAAED,IAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,SAASE,IAAE,EAAE,EAAE,CAAC,GAAK,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAa,EAAQ,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAA8E,CAA9E,GAAG,OAAO,EAAE,OAAO,EAAI,EAAE,YAAY,aAAa,EAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAI,EAAE,YAAY,MAAM,EAAE,IAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,EAAE,SAAS,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,QAAQ,YAAY,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,GAAG,EAAE,OAAO,EAAP,CAAU,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,SAAS,EAAE,eAAe,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,SAAS,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAP,CAAU,IAAI,QAAQ,CAAC,GAAG,GAAG,EAAE,MAAM,GAAK,CAAC,QAAQ,EAAE,kBAAkB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAM,EAAEN,IAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAM,EAAED,GAAE,EAAE,CAAC,EAAE,EAAE,KAAK,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,SAAS,WAAW,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,IAAI,YAAY,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,EAAM,EAAE,GAAG,EAAE,OAAO,CAAC,IAAM,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,IAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,cAAc,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,KAAK,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,IAAI,aAAa,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,EAAM,EAAE,GAAG,EAAE,OAAO,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,IAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,KAAK,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,QAAQ,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,eAAe,CAAC,IAAM,EAAE,SAAS,cAAc,EAAE,UAAU,QAAQ,OAAO,GAAG,IAAI,EAAE,KAAK,mBAAmB,CAAC,MAAM,CAACM,IAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,iBAAiB,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,oBAAoB,UAAU,CAAC,CAAC,CAAC,CAAC,2+BCAxyhB,mGAMO,EAAM,GAAW,mBAAmB,EACpC,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAChD,EAAY,GAAW,mBAAmB,EAAE,WAE5C,SAAQ,cAAa,QAAS,EAAI,iBAAgB,EAElD,EAAS,MAAY,EAAO,EAAC,EAAY,GAAE,QAAQ,EAErD,EAAO,MAAY,EAAU,QAAO,OAAO,IAAK,GAAG,GACnD,EAAI,MAAY,EAAU,KAAI,OAAO,KAAK,qDAK5C,EAAG,MACF,IADD,CAAG,YAOD,EAAI,IANL,UAMC,EAAI,MAAJ,CAAI,IANL,KADD,CAAG,gBACF,0DAGwB,UAAU,KAHlC,4BAES,GAAM,6BAA6B,MAIpC,EAAE,uBAAuB,QAPlC,CAAG,WADA,EAAK,IAAK,UAAQ,yBAatB,mCAME,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,uBAGK,CAAO,SADP,EAAE,0BAA0B,QAHlC,CAAG,aAQH,EAAG,MACF,EAAG,EADJ,CAAG,IAAH,CAAG,UACF,EAAG,QAAqC,CAAI,QAD7C,CAAG,aAIH,EAAG,MAAqB,EAAC,EAAzB,CAAG,IAAH,CAAG,UAAqB,EAAC,gBAAkB,MAAI,4BAA/C,CAAG,aAbA,CAAO,SAQF,CAAI,0CAQZ,EAAG,MACF,EAAG,EADJ,CAAG,EAED,EAAI,EADL,CAAG,MACF,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,IAFL,CAAG,MAIH,EAAG,EAJH,EAAG,KADJ,CAAG,8BAG0B,IAAI,IAEhC,EAAG,0BAHoB,EAAE,QAAQ,MAGb,GAAK,OAAM,EAAE,QALlC,CAAG,aAUH,EAAG,MACF,EAAG,EADJ,CAAG,EAED,EAAI,EADL,CAAG,MACF,EAAI,MAAJ,CAAI,IADL,CAAG,MAGH,EAAG,EAHH,EAAG,KADJ,CAAG,mBAE0B,IAAI,IAEhC,EAAG,0BAAiB,GAAK,OAAM,EAAE,QAJlC,CAAG,kBAXK,OAAS,SAAQ,iBApB3B,iGAEmB,CAAS,GAAE,QAAM,EAAI,CAAS,EAAC,QAAO,OAAM,EAAE,GAAK,QAC7D,GAAK,OAAM,EAAE,QAHtB,mBAdQ,KAAO,8BAA6B,6BAFtC,qKChBR,mGAKO,EAAM,GAAW,mBAAmB,EACpC,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,GAEhD,SAAQ,cAAa,QAAS,EAAI,iBAAgB,EAElD,EAAK,MAAY,EAAO,EAAC,EAAY,GAAE,MAAM,EAC7C,EAAQ,MAAY,EAAO,EAAC,EAAY,GAAE,QAAQ,EAClD,EAAI,MAAY,EAAO,EAAC,EAAY,GAAE,IAAI,EAC1C,EAAM,MAAY,EAAO,EAAC,EAAY,GAAE,OAAO,EAC/C,EAAgB,MAAY,EAAO,EAAC,EAAY,GAAE,iBAAiB,WAEhE,EAAM,EAAI,EAAG,KACf,EAAO,IAAM,EAAE,SAAW,EAAE,SAC5B,EAAQ,GAAK,EAAE,YAEjB,IAAO,8BAA+B,MACrC,CAAQ,EAAC,SAAW,GAAQ,GAAK,OACrC,EAAI,KAAK,cAAa,CACrB,KAAM,YAAY,SAGpB,KAGI,EADW,IAAO,QACQ,EAAI,KAAO,EAEnC,EACL,EAAE,OAAO,UAAU,QAAQ,SAAS,QACpC,EAAE,OAAO,UAAU,QAAQ,YAAY,OAExC,EAAI,KAAK,cAAa,CACrB,GAAI,EACJ,OAAQ,GAAI,CAAK,EACjB,MAAO,GAAK,CAAK,EACjB,MAAO,EAAY,GAErB,UACS,GAAe,GACnB,CAAM,EAAC,OAAS,GACnB,EAAI,KAAK,WAAU,CAClB,GAAE,EAAE,CAAM,IAAC,CAAM,EAAC,OAAS,GAAG,GAC9B,MAAO,EAAY,EACnB,SAAQ,GAAG,CAAM,IAAC,CAAM,EAAC,OAAS,GAAG,EAAE,GAG1C,UACS,EAAS,EAAI,IACjB,IAAO,qCACH,EAAY,EAGhB,EAAK,IAAK,UACb,EAAI,KAAK,eAAc,CACtB,KAAM,EAAE,OAIJ,EAAI,EAAG,CAAK,EAAC,KAAK,GAAK,EAAE,KAAO,CAAE,EAEpC,IACC,EAAK,MAAQ,SAChB,EAAI,KAAK,WAAU,CAClB,GAAI,EAAK,GACT,MAAO,EAAY,IAGpB,EAAI,KAAK,YAAW,CACnB,GAAI,EAAK,EAAE,GAIf,UAES,EAAe,EAAI,EAAI,KAE7B,CAAQ,GAAE,QAAM,GAChB,CAAQ,EAAC,OAAO,GAAK,GAAG,KAAO,CAAE,EAAE,OAAS,IAE7C,EAAM,EAAI,CAAE,CAEd,KAEI,EAAa,QAChB,CAAI,IAAK,IAOE,EAER,GATM,EAGL,GAAI,8BACJ,KAAM,EAAE,uBAAuB,EAC/B,WAAU,EAAE,CAAgB,QAE1B,CAAK,EAER,6BAKH,EAAG,MACF,EAAG,EADJ,CAAG,MACF,EAAG,MAAH,CAAG,IADJ,CAAG,mBAC6B,EAAE,4BAA4B,QAD9D,CAAG,aAKH,4BAOO,CAAa,QAAI,IAAK,CAC3B,IAAI,uBAAO,CAAK,SARlB,+BAKqB,QAAO,WAAU,QAAS,CAAc,cAL7D,2DAGwB,CAAI,IAAK,KAAO,EAAK,IAAK,aAHlD,qBAIS,GAAM,MAAM,QAJrB,YANG,EAAK,GAAI,UAAQ,GAAK,CAAa,EAAC,OAAM,6BAFvC,8DCnGR,aACO,EAAI,aAAG,EAAE,EAAE,EAAI,aAAG,EAAK,MAK7B,mCAEoB,EAAI;GACvB,EAAI,EAAG,UAAY,GAAE;aACX,eAAiB,iCAJ5B,MAKe,uBAEf,CAAC,MAPD,MAJO,4PCFR,6EAKO,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAChD,EAAM,GAAW,mBAAmB,GAEpC,SAAQ,eAAgB,EAAI,iBAAgB,EAC9C,EAAM,MAAY,EAAO,EAAC,EAAY,GAAE,OAAO,WAE1C,GAAc,CACtB,EAAI,KAAK,eAAc,CACtB,KAAM,EAAE,EAEV,KAGA,EAAG,MACF,EAAG,EADJ,CAAG,EAED,EAAG,EADJ,CAAG,EAED,KADD,CACK,6BAA4B,CAAW,KAD5C,CAAG,MAGH,EAAG,EAHH,EAAG,OAGH,CAAG,mBAEI,CAAM,QAAI,EAAK,oDAChB,GAAC,+CACL,CAAK,EAAC,IAAM,IAAM,EAAC,EAAC,CAAK,EAAC,IAAI,IAAI,CAAK,EAAC,kBAJ1C,CAAG,IAJJ,CAAG,EAYH,KAZA,EAAG,CAYE,QAbN,CAAG,6BAMA,EAAE,mBAAmB,QANxB,CAAG,SAFI,y3DChBR,gIAMS,UAAS,QAAS,GAAW,mBAAmB,EAAE,UAEpD,EAAM,GAAW,mBAAmB,GAKzC,SACA,cACA,QAAS,EACT,UACG,EAAI,iBAAgB,EAElB,EAAS,GAAW,SAAS,EAC7B,EAAI,EAAO,SAAS,aAAa,EACjC,EAAS,GACd,sBACA,EAAO,OAAM,EAAG,UAGX,EAAK,MAAY,EAAO,IAAK,EAAO,EAAC,EAAY,GAAE,UAAU,MAAM,EACnE,EAAK,QACV,CAAK,EAAG,EAAO,EAAC,EAAY,GAAE,OAAS,EAAO,EAAC,EAAY,GAAE,oBAGrD,GAAe,CACvB,EAAI,KAAK,gBAAe,CACvB,GAAE,EAAE,CAAK,EAAC,GAAG,EAAE,EAEjB,UAES,EAAc,EAAS,EAAO,QAEpC,KACK,EAAO,GAAI,EAAE,EAAU,EAAI,UAAY,QAAQ,KAClD,KACF,EAAK,GAAM,EAAK,GAAI,EAAE,EAAQ,EAAI,QAAU,MAAM,IAAM,GAE3D,UAES,GAAe,CACvB,EAAI,KAAK,eAAc,CAAI,KAAI,CAAG,EAAS,GAC5C,UAES,EAAY,EAAM,QACnB,EAAK,OAAS,SAClB,EAAE,QAAQ,EACV,EAAK,KAAO,EAAE,cAAc,CAChC,KAEM,EAAK,MAAqB,KAC3B,EACH,EACA,EACA,EACA,EACA,EACA,EACA,OAEG,CAAK,EAAC,SAAW,GAAC,GAAK,CAAK,EAAE,CACjC,EAAI,EAAG,CAAK,EAAC,GACb,EAAO,EAAK,SACN,EAAO,EAAQ,EAAM,IAAK,GAAG,EAC/B,GACH,EAAa,EACb,EAAU,KAEV,EAAU,EAAK,EAAM,KAAK,EAC1B,EAAa,IAEd,EAAmB,EAAK,OAAS,QAClC,KAAO,IACN,EAAO,EAAmB,KAC1B,EAAO,KACH,CAAK,EAAC,OAAQ,KACb,EAAM,EACN,EAAU,EACV,EAAQ,EACR,EAAM,GACN,IACJ,CAAK,EAAC,QAAQ,GAAQ,CACV,EAAK,OAAS,SACxB,EAAgB,GAChB,EAAM,QAGF,IACJ,GAAO,EAAK,MAGb,EAAO,KAAK,EAAY,CAAI,GAC5B,EAAK,OAAS,SAAW,IAAY,GACtC,CAAC,MAEK,EAAS,IAAO,IAAI,CAAM,EAChC,EAAO,EAAU,KAAO,EAAI,EAAE,UAAU,MAAQ,CAAS,EAAE,GAC3D,EAAa,EAAc,EAAS,CAAK,EACzC,EAAY,IACP,CAAK,IAAE,EAAO,EAAE,gBAAgB,EACtC,CACA,EAAU,GAER,KAAI,EAAE,CAAK,EAAG,SAAQ,EAAG,CAAK,EAAC,OAAS,WAAa,QAEtD,OAED,EAAa,EACd,QAGC,OACA,OACA,aACA,UACA,mBACA,OACA,aACA,YAEF,CAAC,iBAEc,EAAa,EAAM,mBACd,EAAI,OAAS,QAC5B,0BACoB,CAAI,CAC5B,OAAS,EAAG,QACX,QAAQ,IAAI,CAAC,EACN,IACR,CACD,KAEM,EAAI,MAAY,EAAY,EAAC,CAAK,EAAC,IAAI,OAG7C,EAAG,UAAH,CAAG,oBAED,EAAG,KACF,EAAG,EADJ,CAAG,EAED,EAAG,EADJ,CAAG,EACF,EAAG,YAAkB,SACrB,EAAG,EADH,EAAG,OACH,CAAG,QAED,GAAI,2BAA0B,CAAY,cADvC,CAAK,EAAC,kBAAgB,0BAIzB,GAAI,wBAAuB,CAAY,mCALzC,CAAG,IAFJ,CAAG,UAAH,EAAG,aAYF,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,UACK,CAAK,EAAC,UAAU,IADrB,iBAEK,EAAE,0BAA0B,QAHlC,CAAG,aAOH,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,UACK,CAAK,EAAC,OAAO,IADlB,iBAEK,EAAE,0BAA0B,QAHlC,CAAG,aAOH,EAAG,UAAH,CAAG,YAED,EAAC,cAAD,EAAC,mBAAqB,CAAK,EAAC,KAAK,MAAI,2BAArC,CAAC,aAED,qCACoB,GACjB,SACA,0BAAuB,sBAH1B,cAHG,CAAK,EAAC,KAAI,iBADf,CAAG,MAAH,CAAG,aAfA,CAAK,EAAC,WAAU,OAOX,CAAK,EAAC,QAAO,mBAnBvB,CAAG,MAwCH,EAAG,EAxCH,EAAG,GAyCF,EAAG,EADJ,CAAG,MACF,EAAG,MAAH,CAAG,MACH,EAAG,EADH,EAAG,OACH,CAAG,oBAED,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,qBAEH,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,gCADkB,EAAE,MAAM,MAE5B,GAAU,EAAC,CAAK,EAAC,KAAK,IAAI,sBAHlB,CAAK,EAAC,KAAK,OAAS,QAAW,WAM1C,EAAI,WAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,kDATkB,EAAE,MAAM,MACP,EAAW,EAAC,CAAK,EAAC,IAAI,MAOvB,EAAE,MAAM,MACP,EAAM,EAAC,CAAK,EAAC,KAAK,IAAI,8BAE7C,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,UAAJ,EAAI,qBAEH,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,gCADkB,EAAE,MAAM,MAE5B,GAAU,EAAC,CAAK,EAAC,SAAS,sBAHlB,CAAK,EAAC,YAAc,QAAW,8BAHnB,CAAK,EAAC,UAAU,eAEhB,CAAK,EAAC,IAAI,QAHX,EAAE,OAAO,MAET,EAAE,MAAM,sBAd3B,CAAK,EAAC,KAAI,gCAuBP,CAAI,UAAM,IAAM,iDAEf,OAAO,QAAO,EAAC,CAAM,0CAAM,MAAK,QAAC,MAAM,oBAC5C,EAAI,SAAJ,EAAI,MAAJ,CAAI,MACJ,EAAI,EADJ,EAAI,OACJ,EAAI,MAAJ,CAAI,aADkB,EAAI,OACH,EAAK,gCAH1B,CAAM,qBAzBZ,CAAG,IAFJ,CAAG,qBACoB,CAAK,EAAG,EAAE,OAAO,EAAI,EAAE,aAAa,uBAoC3D,EAAG,MACF,EAAG,EADJ,CAAG,EAED,EAAG,EADJ,CAAG,EACF,EAAG,YAAkB,SACrB,EAAG,EADH,EAAG,OACH,CAAG,QAED,GAAI,wBAAuB,CAAY,mCAFzC,CAAG,IAFJ,CAAG,MAQH,EAAG,EARH,EAAG,GASF,EAAG,EADJ,CAAG,MACF,CAAG,YAED,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,UACK,CAAK,EAAC,UAAU,IADrB,iBAEK,EAAE,0BAA0B,QAHlC,CAAG,aAOH,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,UACK,CAAK,EAAC,OAAO,IADlB,iBAEK,EAAE,0BAA0B,QAHlC,CAAG,aAOH,EAAG,MACF,IADD,CAAG,IAAH,CAAG,UACF,qBACoB,GACjB,SACA,6BAA0B,sBAJ9B,CAAG,aAfA,CAAK,EAAC,WAAU,OAOX,CAAK,EAAC,QAAO,qBAgBtB,EAAI,WAAJ,EAAI,MAAJ,CAAI,IAxBL,CAAG,IADJ,CAAG,IATJ,CAAG,qBAmCE,GACC,GACA,EAAE,uCAAuC,QArC/C,CAAG,aA9EA,CAAK,EAAC,OAAM,kBADjB,CAAG,MAAH,CAAG,SAFI,CC3IR,QAAe,CACd,KAAM,CACL,aAAc,aACd,YAAa,YACb,KAAM,OACN,IAAK,MACL,MAAO,QACP,OAAQ,SACR,UAAW,UACX,UAAW,UACX,YAAa,YACb,KAAM,OACN,KAAM,MACP,CACD,ECdM,IAAI,KAAK,EAAE,QAAQ,EAAY,SAAST,IAAE,EAAE,EAAE,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,SAAS,OAAO,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAACD,GAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAASA,GAAE,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,UAAU,OAAO,GAAG,UAAU,OAAO,GAAG,WAAW,IAAI,KAAK,OAAO,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO,IAAI,IAAI,MAAM,IAAI,OAAO,IAAI,GAAG,aAAa,MAAM,aAAa,MAAM,EAAE,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,CAACA,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,OAAOC,IAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,SAASP,GAAE,EAAE,CAAC,GAAG,OAAO,GAAG,WAAU,EAAS,OAAO,EAAE,GAAG,aAAa,KAAK,OAAO,IAAI,KAAK,CAAC,EAAE,GAAG,aAAa,MAAM,OAAO,EAAE,IAAIA,EAAC,EAAE,IAAM,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,EAAE,GAAGA,GAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,IAAIE,GAAE,EAAEY,IAAE,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,SAAS,KAAK,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,KAAK,OAAO,KAAK,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,OAAO,GAAG,UAAU,aAAa,MAAM,aAAa,MAAM,EAAE,QAAQ,IAAI,EAAE,QAAQ,GAAG,SAAS,IAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,EAAEZ,GAAE,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,IAAI,GAAG,EAAE,WAAW,EAAE,GAAG,KAAK,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,KAAK,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,OAAO,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,EAAE,SAAS,KAAK,OAAO,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEW,IAAE,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,WAAW,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,SAAS,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,GAAGF,GAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,GAAG,KAAK,MAAM,KAAK,EAAE,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,IAAM,EAAE,KAAK,QAAQ,EAAET,EAAC,EAAE,OAAO,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,WAAW,KAAK,YAAY,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAM,EAAE,KAAK,OAAO,GAAG,EAAE,CAAC,KAAK,OAAO,KAAK,KAAK,gBAAgB,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,QAAQ,CAAC,IAAM,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAM,EAAE,KAAK,QAAQ,CAAC,EAAE,OAAO,KAAK,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAM,EAAE,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,IAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,KAAK,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAM,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAASS,GAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAM,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,GAAGA,GAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAIC,IAAE,KAAK,CAAC,aAAa,CAAC,KAAK,aAAa,KAAK,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,IAAM,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,KAAK,UAAU,GAAG,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,UAAU,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,KAAK,cAAc,MAAM,KAAK,aAAa,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAO,MAAK,aAAa,CAAC,CAAC,EAAE,SAASH,IAAE,EAAE,CAAC,MAAO,IAAG,EAAE,EAAE,CAAC,SAASS,IAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS1B,GAAE,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQiB,IAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,SAASU,GAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQD,IAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAA8O,SAASE,IAAE,EAAE,EAAE,CAAC,IAAM,EAAE,SAAS,cAAc,GAAG,EAAE,EAAE,KAAK,IAAI,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,SAASC,GAAE,EAAE,EAAE,CAAC,IAAI,EAAE7B,GAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,CAAiD,CAAjD,MAAM,QAAQ,CAAC,EAAI,EAAE,IAAI,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC,EAAI,EAAE,WAAW,IAAI,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,SAAS8B,IAAE,EAAE,EAAE,CAAC,IAAM,EAAE,WAAe,EAAE,GAAS,EAAE,EAAE,MAAM;EACzwJ,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE3B,GAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE0B,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE1B,GAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAASA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,WAAW,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,IAAI,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAM4B,IAAE,WAAWC,IAAE,IAAIC,IAAE,KAAK,IAAG,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,SAAS,IAAG,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAM,EAAE,CAAC,EAAE,EAAE,EAAQ,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,IAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,IAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,EAAE,UAAU,CAAC,IAAM,EAAE,GAAG,EAAE,SAAS,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,IAAE,QAAoB,EAAE,OAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAG,EAAE,CAAC,GAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAG,GAAG,OAAO,IAAG,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAG,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,IAAG,EAAE,CAAC,EAAE,CAAC,GAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,KAAK,GAAGF,IAAE,IAAI,GAAGC,IAAE,MAAM,GAAGC,GAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,eAAe,SAAS,EAAE,MAAM,gBAAgB,EAAE,MAAM,aAAa,EAAE,OAAO,GAAG,CAAC,SAASC,IAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,OAAO,OAAO,cAAc,EAAE,CAAC,IAAM,EAAE,EAAE,OAAO,QAAQ,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE,EAAE,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,IAAMhB,GAAE,CAAC,gBAAgB,cAAc,aAAa,EAAEiB,IAAG,CAAC,aAAa,aAAa,aAAa,EAAE,IAAG,CAAC,WAAW,EAAE,IAAG,CAAC,gBAAgB,WAAW,EAAQ,IAAN,KAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,SAAS,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,OAAO,aAAa,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,IAAK,EAAC,EAAE,OAAO,CAAC,OAAO,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,GAAG,EAAuC,EAAEnC,GAArC,KAAK,OAAO,CAA2B,EAAtB,KAAK,UAAU,CAAS,CAAC,EAAE,OAAOc,GAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,cAAc,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,IAAK,IAAG,MAAM,CAAC,OAAO,aAAa,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,aAAa,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,IAAK,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,gBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,GAAG,EAAsB,MAAM,CAAC,OAAO,cAAc,KAAK,CAAC,GAAG,EAAE,KAAzD,KAAK,UAAU,CAA+C,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,OAAO,kBAAkB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC,SAAS,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,YAAY,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,EAAE,QAAQ,QAAQ,EAAE,OAAO,CAAC,OAAO,YAAY,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,OAAO,YAAY,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC,aAAa,CAAC,IAAM,EAAE,KAAK,YAAY,EAAE,IAAI,IAAM,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,cAAc,QAAQ,EAAE,cAAc,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAG,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,SAAS,IAAI,OAAO,EAAE,YAAY,aAAa,IAAG,SAAS,CAAC,GAAG,KAAK,QAAQ,UAAU,EAAEI,GAAE,SAAS,CAAC,GAAG,KAAK,QAAQ,SAAS,GAAG,KAAK,SAAS,GAAG,EAAE,WAAW,MAAM,CAAC,IAAG,SAAS,CAAC,GAAG,KAAK,QAAQ,MAAM,EAAEA,GAAE,SAAS,CAAC,GAAG,KAAK,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,QAAQ,EAAE,cAAc,QAAQ,EAAE,UAAU,EAAE,WAAW,OAAO,IAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,gBAAgB,GAAGV,GAAE,KAAK,SAAS,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO,OAAO,IAAM,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO,OAAO,IAAM,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,IAAM,EAAE,KAAK,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,GAAK,CAAC,QAAQ,GAAG,KAAK,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAA6B,SAAS,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAASI,GAAE,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,KAAK,IAAI,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,IAAG,EAAE,EAAE,CAAC,MAAM,CAACA,GAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAG,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,WAAW,OAAO,SAAS,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,IAAM,EAAE,IAAI,MAAMA,GAAE,IAAG,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,EAAEZ,GAAE,EAAE,CAAC,EAAEA,GAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,IAAM,EAAE,EAAE,IAAI,GAAG,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,MAAO,EAAC,CAAC,CAAC,IAAMS,GAAE,GAAG,IAAG,GAAG,SAAS,KAAI,CAAC,GAAG,OAAO,SAAS,IAAI,MAAM,SAAS,IAAM,EAAE,SAAS,cAAc,+BAA+B,EAAE,OAAO,EAAE,EAAE,UAAU,UAAU,EAAE,EAAE,UAAU,OAAO,CAAC,EAAE,QAAQ,CAAC,SAASc,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,SAAS,cAAc,KAAK,EAAE,EAAE,SAAS,cAAc,KAAK,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,IAAI,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,QAAQ,0EAA0E,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,GAAG,IAAM,EAAE,EAAE,sBAAsB,EAAE,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAASrB,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAEqB,GAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,IAAG,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAM,EAAE,uBAAuB,GAAG,EAAE,IAAI,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAEM,GAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,OAAOpB,IAAG,EAAE,GAAG,OAAOA,GAAE,IAAI,EAAE,UAAUA,GAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAKA,EAAC,EAAE,CAAC,OAAOc,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,SAASa,IAAG,EAAE,EAAE,CAAC,IAAM,EAAE,yBAAyB,EAAE,EAAE,KAAK,IAAG,EAAM,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,OAAOb,GAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAA6E,EAAEA,GAA1E,OAAO,GAAG,SAAS,EAAE,EAAE,KAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,EAAE,OAAmB,CAAC,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAM,IAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAGc,IAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,GAAE,EAAE,CAAC,OAAO,IAAG,EAAE,CAAC,SAAS/B,IAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IAAM,EAAEN,GAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAO,IAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAASqC,IAAG,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,YAAY,GAAG,EAAE,SAAS,IAAI,EAAE,SAAS,GAAG,EAAE,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAM,IAAN,cAAiBf,GAAC,CAAC,GAAG,QAAQ,UAAU,YAAY,gBAAgB,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,CAAC,UAAU,GAAG,YAAY,IAAI,aAAa,GAAG,aAAa,EAAE,EAAE,KAAK,QAAQ,IAAID,IAAE,MAAM,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,QAAQ,OAAO,EAAE,IAAI,CAAC,WAAW,QAAQ,EAAE,KAAK,GAAG,CAAC,GAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,SAAS,EAAE,EAAE,KAAK,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,qBAAqB,EAAE,IAAM,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,OAAO,YAAY,EAAE,IAAI,CAAC,WAAW,oBAAoB,EAAE,KAAK,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,KAAK,SAAS,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAM,EAAE,KAAK,GAAG,IAAID,IAAE,EAAE,GAAG,gBAAgB,CAAC,OAAO,KAAK,CAAC,GAAK,CAAC,OAAO,GAAG,KAAK,SAAS,EAAE,IAAI,GAAG,EAAE,KAAK,cAAc,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,OAAO,GAAG,EAAE,KAAK,eAAe,CAAC,CAAC,EAAE,IAAM,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,MAAMpB,GAAE,EAAE,CAAC,GAAG,GAAG,cAAc6B,GAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,UAAU,EAAE,QAAQ,EAAE,OAAO,UAAU,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAM,EAAE,KAAK,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,cAAcA,GAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,EAAK,CAAC,KAAK,GAAG,EAAO,CAAC,OAAO,EAAE,WAAW,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAIxB,GAAE,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,KAAO,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,aAAa,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,GAAG,CAAC,GAAK,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,EAAE,OAAO,MAAM,KAAK,SAAS,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,IAAM,EAAE,KAAK,SAAS,EAAK,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,KAAK,CAAC,IAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,SAAS,EAAO,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,CAAC,UAAU,GAAG,EAAK,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,KAAK,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,KAAK,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,YAAY,YAAY,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,aAAa,GAAG,CAAC,GAAK,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,SAAS,EAAE,GAAG,GAAG,KAAK,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,GAAG,KAAK,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,EAAQ,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC,GAAK,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,SAAS,EAAM,EAAE,EAAE,OAAO,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,GAAwB,EAAE,IAAG,EAAlB,EAAE,MAAM,EAAE,CAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,GAAK,CAAC,MAAM,GAAG,KAAK,SAAS,EAAE,EAAE,KAAK,IAAI+B,IAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAE,OAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,GAAG,CAAC,GAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAK,CAAC,MAAM,EAAE,OAAO,EAAM,EAAE,EAAE,UAAgB,EAAE,OAAO,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,EAAE,IAAI,OAAO,CAAC,CAAC,GAAG,IAAM,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,IAAM,EAAE,IAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,GAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,MAAM,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,EAAM,EAAE,EAAE,aAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,IAAM,EAAE,GAAG9B,IAAE,EAAE,CAAC,EAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,kBAAkB,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,YAAY,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,WAAW,GAAG,EAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAM,EAAE,GAAG,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,MAAM,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,EAAK,CAAC,KAAK,GAAG,EAAQ,EAAE,KAAK,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,IAAM,EAAE,CAAC,GAAG,EAAE,GAAGD,GAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,OAAO,EAAE,OAAO,GAAG,MAAI,SAAa,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,GAAG,CAAC,GAAK,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,IAAI,SAAS,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,OAAO,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,IAAM,EAAEyB,IAAE,KAAK,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,EAAgD,EAAE,OAAO,EAAvDF,IAAE,IAAI,KAAK,CAAC,IAAS,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,KAAK,CAAC,OAAO,EAAP,CAAU,IAAI,UAAU,CAAC,GAAK,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,OAAO,IAAM,EAAE,EAAE,EAAE,OAAO,KAAK,uBAAuB,GAAG,GAAG,EAAE,EAAE,KAAK,WAAW,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC,GAAK,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,OAAO,IAAM,EAAE,EAAE,EAAE,OAAO,KAAK,uBAAuB,GAAG,GAAG,EAAE,EAAE,KAAK,WAAW,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,aAAa,CAAC,GAAK,CAAC,UAAU,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAK,CAAC,UAAU,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,EAAE,OAAW,EAAE,EAAE,GAAG,EAAE,KAAK,cAAc,KAAK,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAM,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,KAAK,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,YAAY,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,EAAE,OAAW,EAAE,EAAE,GAAG,EAAE,KAAK,cAAc,KAAK,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAM,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,KAAK,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,YAAY,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,GAAK,CAAC,OAAO,GAAG,KAAK,SAAS,EAAE,IAAI,KAAK,GAAG,KAAK,eAAe,CAAC,OAAO,EAAE,MAAM,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,OAAO,YAAY,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,GAAG,KAAK,SAAS,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,cAAc,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAK,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,IAAM,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,OAAO,KAAK,GAAG,KAAK,EAAE,KAAK,YAAY,WAAW,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,GAAG,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,KAAK,uBAAuB,GAAG,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,EAAE,IAAI,GAAG,EAAE,KAAK,uBAAuB,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,GAAG,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,KAAK,sBAAsB,GAAG,GAAG,EAAE,EAAE,IAAI,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,GAAK,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,sBAAsB,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,KAAK,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,SAAU,KAAK,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,SAAU,KAAK,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,GAAG,CAAC,GAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,GAAG,KAAK,SAAS,EAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,IAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,GAAG,CAAC,IAAM,EAAE,IAAG,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,iBAAiB,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,iBAAiB,WAAW,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,IAAM,EAAE,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,KAAK,YAAY,IAAI,QAAQ,GAAG,CAAC,IAAM,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,iBAAiB,UAAU,GAAG,CAAC,EAAE,KAAK,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,UAAU,CAAuJ,KAAK,QAAQ,KAAK,CAA/J,UAAU,CAAC,EAAE,WAAW,KAAK,KAAK,CAAC,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,OAAO,KAAK,UAAU,KAAK,OAAO,KAAK,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,IAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,eAAe,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAG,GAAG,EAAE,SAAS,EAAE,QAAQ,QAAQ,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,IAAI,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAEd,GAAE,KAAK,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,KAAK,cAAc,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,WAAW,KAAK,aAAa,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,iBAAiB,KAAK,gBAAgB,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,QAAQ,EAAE,MAAM,MAAM,GAAG,EAAE,MAAM,CAAC,KAAK,kBAAkB,KAAK,gBAAgB,IAAI,IAAG,KAAK,GAAG,KAAK,SAAS,KAAK,IAAI,EAAE,KAAK,SAAS,KAAK,IAAI,CAAC,GAAG,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,KAAK,QAAQ,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAK,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,OAAO,EAAE,KAAK,UAAU,GAAG,KAAK,SAAS,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAO,CAAI,IAAE,KAAK,SAAS,EAAE,SAAU,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAiC,OAAO,EAA7B,KAAK,YAAY,EAAE,CAAY,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAiC,OAAO,EAA7B,KAAK,YAAY,EAAE,CAAY,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,QAAQ,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,uBAAuB,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAa,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,IAAI,YAAY,IAAI,OAAO,EAAE,EAAE,CAAC,sBAAsB,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,SAAa,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,IAAI,YAAY,IAAI,OAAO,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAK,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,QAAQ,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,QAAQ,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,cAAc,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,GAAG,CAAC,KAAK,GAAG,KAAK,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,QAAQ,EAAE,KAAK,QAAQ,GAAG,CAAC,IAAM,EAAE,KAAK,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,QAAQ,EAAE,KAAK,QAAQ,GAAG,CAAC,KAAK,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,KAAK,UAAU,GAAG,EAAE,IAAM,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,MAAO,GAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,IAAI,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,IAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,KAAK,MAAO,GAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,cAAc,EAAE,CAAC,EAAE,OAAO,KAAK,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,iBAAiB,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,GAAG,EAAE,cAAc,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,SAAS,CAAC,EAAE,IAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAM,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,EAAE,GAAO,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,CAAU,CAAE,QAAM,EAAE,SAAS,GAAG,EAAE,YAAa,EAAE,UAAU,EAAE,EAAE,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,IAAI,EAAE,EAAE,GAAG,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAA2H,GAAvH,EAAE,UAA+E,EAAE,QAA/D,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAY,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,UAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAQ,EAAE,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,IAAE,QAAW,EAAE,SAAS,GAAG,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,IAAI,UAAU,EAAE,QAAQ,OAAO,EAAE,QAAQ,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAGT,GAAE,GAAG,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAO,CAAE,KAAGA,GAAE,EAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,GAAK,CAAC,SAAS,GAAG,KAAK,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IAAM,EAAEL,GAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAO,IAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,IAAM,EAAE6B,GAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE3B,GAAE,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,EAAEA,GAAE,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAAK,IAAG,IAAI,KAAK,EAAE,QAAQ,EAAE,SAASG,IAAG,CAAC,MAAM,WAAU,KAAI,CAAC,SAAS,IAAG,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAG,KAAK,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,IAAM,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,IAAM,EAAE,EAAE,YAAY,EAAE,QAAQ,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEiC,GAAE,CAAC,EAAE,IAAG,CAAC,UAAU,GAAG,CAAC,IAAG,EAAE,IAAM,EAAE,IAAI,IAAG,OAAOA,GAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAM,EAAEA,GAAE,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,GAAGA,GAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE3B,GAAE,CAAC,EAAE,SAAS,KAAI,CAAC,KAAI,GAAE,CAAC,EAAE,SAAS,iBAAiB,UAAU,GAAG,CAAC,GAAG2B,GAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,OAAO,GAAG,EAAE,MAAM,KAAK,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,QAAQ,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,IAAM,EAAE,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,EAAEA,GAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAM,EAAEA,GAAE,GAAG,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAM,IAAG,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,IAAG,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,OAAO,OAAO,EAAE,UAAU,SAAS,EAAE,UAAU,YAAY,IAAG,EAAE,gBAAgB,GAAG,UAAU,SAAS,WAAW,GAAG,CAAC,CAAC,EAAE,QAAQ,oBAAoB,CAAC,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,OAAO,GAAG,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAtB,EAAE,CAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAM,EAAE,IAAG,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAG,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,GAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CCDr+5B,SAAgB,IAAS,EAAM,EAAS,CACvC,IAAM,EAAK,IAAI,eAAe,GAAQ,CACrC,0BAA4B,EAAQ,EAAK,GAAG,WAAW,CAAC,CACzD,CAAC,EAID,OAFA,EAAG,QAAQ,EAAK,UAAU,EAEnB,CACN,SAAU,CACT,EAAG,WAAW,CACf,CACD,CACD,CCVA,IAAM,GAAQ,EACR,IAAmB,IAEzB,SAAgB,GAAU,EAAM,CAC/B,IAAM,EAAM,EAAK,sBAAsB,EACjC,EAAO,SAAS,KAChB,EAAM,EAAI,IAAM,EAAK,UAAY,EAAK,WAAa,EACnD,EAAO,EAAI,KAAO,EAAK,WAAa,EAAK,YAAc,EAC7D,MAAO,CACN,EAAG,KAAK,MAAM,CAAG,EACjB,EAAG,KAAK,MAAM,CAAI,EAClB,MAAO,EAAK,YACZ,OAAQ,EAAK,YACd,CACD,CAEA,SAAgB,GAAO,EAAI,EAAM,CAChC,IAAM,EAAS,GAAU,CAAI,EAC7B,MAAO,CAAE,EAAG,EAAG,QAAU,EAAO,EAAG,EAAG,EAAG,QAAU,EAAO,CAAE,CAC7D,CAEA,SAAgB,IAAQ,EAAM,EAAQ,CACrC,IAAI,EAAU,KACV,EAAY,EACZ,EAAU,GACb,EAAU,GACL,EAAY,SAAS,cAAc,KAAK,EAC9C,EAAU,UAAY,eACtB,EAAU,aAAa,WAAY,EAAE,EAErC,SAAS,GAAa,CACrB,aAAa,CAAU,EACvB,EAAa,IACd,CAEA,SAAS,EAAK,EAAI,CACjB,IAAM,EAAS,GAAO,CAAE,EACnB,IAEL,EAAU,CACT,YACA,WAAY,EAAG,OACf,KAAM,GAAM,CAAM,EAClB,IAAK,GAAO,EAAI,CAAI,CACrB,EACA,EAAW,EAAQ,IACnB,EAAK,CAAE,EACR,CAEA,SAAS,EAAK,EAAI,CACjB,GAAI,CAAC,EAAS,OACd,IAAM,EAAK,EAAQ,IAAM,GAAO,EAAI,CAAI,EAExC,GAAI,CAAC,EACJ,IACC,CAAC,GACD,CAAC,GAAI,QAAQ,aAAa,gBAAgB,GAC1C,KAAK,IAAI,EAAS,EAAI,EAAE,CAAC,EAAI,IAC7B,KAAK,IAAI,EAAS,EAAI,EAAE,CAAC,EAAI,GAE7B,OAEA,GAAI,EAAM,CAAE,IAAM,GAAO,OAAO,EAAI,CACrC,CAGD,GAAI,EAAS,CACZ,IAAM,EACL,OAAO,SACP,SAAS,gBAAgB,YACzB,SAAS,KAAK,WACT,EACL,OAAO,SACP,SAAS,gBAAgB,WACzB,SAAS,KAAK,UAEf,EAAQ,WAAa,SAAS,iBAC7B,EAAG,MAAQ,EACX,EAAG,MAAQ,CACZ,CACD,MAAO,EAAQ,WAAa,EAAG,OAE3B,GAAQ,MAAM,EAAO,KAAK,EAAI,CAAO,EAEzC,EAAU,MAAM,KAAO,EAAE,EAAQ,OAAS,EAAQ,OAAO,EAAI,GAAK,KAClE,EAAU,MAAM,IACf,EAAQ,IAAI,GAAK,EAAQ,OAAS,EAAQ,OAAO,EAAI,GAAK,IAC5D,CAEA,SAAS,EAAG,EAAI,CACX,EAAU,YAAY,EAAU,WAAW,YAAY,CAAS,EACpE,EAAU,UAAY,GAElB,GAAW,GAAQ,KAAK,EAAO,IAAI,EAAI,CAAO,EAClD,EAAU,EAAW,KAErB,EAAI,CACL,CAEA,SAAS,EAAgB,EAAI,CACvB,GAAQ,WAAW,GACpB,EAAG,SAAW,IAGlB,EAAkB,CAAE,EAEpB,OAAO,iBAAiB,YAAa,CAAe,EACpD,OAAO,iBAAiB,UAAW,CAAa,EAEhD,EAAK,CAAE,EACR,CAEA,SAAS,EAAgB,EAAI,CAC5B,EAAK,CAAE,CACR,CAEA,SAAS,EAAc,EAAI,CAC1B,EAAG,CAAE,CACN,CAEA,SAAS,EAAiB,EAAI,CAC7B,GAAI,CAAC,GAAQ,WAAW,EAAG,OAE3B,EAAa,eAAiB,CAC7B,EAAU,GACV,EAAK,EAAG,QAAQ,EAAE,CACnB,EAAG,GAAgB,EAGnB,EAAkB,CAAE,EAEpB,SAAS,GAAiB,CACrB,GAAY,EAAW,EAQ3B,EAAG,OAAO,oBAAoB,YAAa,CAAe,EAC1D,EAAG,OAAO,oBAAoB,WAAY,CAAc,EAExD,EAAG,CAAE,CACN,CAEA,EAAG,OAAO,iBAAiB,YAAa,CAAe,EACvD,EAAG,OAAO,iBAAiB,WAAY,CAAc,EACrD,EAAK,iBAAiB,cAAe,CAAa,CACnD,CAEA,SAAS,EAAgB,EAAI,CACxB,GACH,EAAG,eAAe,EAClB,EAAK,EAAG,QAAQ,EAAE,GACR,GAAY,EAAW,CACnC,CAEA,SAAS,EAAc,EAAI,CAC1B,GAAI,GAAW,EAEd,OADA,EAAG,eAAe,EACX,EAET,CAEA,SAAS,EAAe,EAAI,CAC3B,EAAG,eAAe,CACnB,CAEA,SAAS,EAAkB,EAAI,CAC9B,GAAM,CAAE,gBAAiB,EAAO,iBAAiB,GAE7C,CAAC,GAAgB,EAAG,OAAO,aAAa,gBAAgB,KAC3D,SAAS,KAAK,MAAM,WAAa,OACjC,SAAS,KAAK,MAAM,iBAAmB,OAEzC,CAEA,SAAS,EAAM,EAAI,CAGlB,GAFA,EAAU,GAEN,GAAQ,MACX,IAAI,EAAO,MAAM,EAAI,CAAO,IAAM,GAAO,MAAO,GAE/C,EAAK,YAAY,CAAS,EAC1B,SAAS,KAAK,MAAM,OAAS,MAC9B,CAEF,CAEA,SAAS,EAAI,EAAM,CAClB,EAAU,EAAU,GACpB,SAAS,KAAK,MAAM,OAAS,GAC7B,SAAS,KAAK,MAAM,WAAa,GACjC,SAAS,KAAK,MAAM,iBAAmB,GAEvC,OAAO,oBAAoB,YAAa,CAAe,EACvD,OAAO,oBAAoB,UAAW,CAAa,EAE/C,IACH,EAAK,oBAAoB,YAAa,CAAe,EACrD,EAAK,oBAAoB,aAAc,CAAgB,EACvD,EAAK,oBAAoB,YAAa,CAAc,EAEtD,CAMA,OAJA,EAAK,iBAAiB,YAAa,CAAe,EAClD,EAAK,iBAAiB,aAAc,CAAgB,EACpD,EAAK,iBAAiB,YAAa,CAAc,EAE1C,CACN,SAAU,CACT,EAAI,EAAI,CACT,CACD,CACD,CCvNA,IAAM,IAAqB,KAE3B,SAAS,KAAkB,CAC1B,MAAO,CACN,KAAM,EACN,KAAM,EACN,kBAAmB,CACpB,CACD,CAEA,SAAgB,IAAc,EAAI,EAAK,EAAS,EAAkB,CACjE,GAAM,CAAE,OAAM,OAAM,MAAK,SAAQ,QAAO,UAAS,WAChD,EACK,EAAO,GAAO,EAAI,CAAI,EAE5B,CAA0B,CAAQ,cAAc,IAAgB,EAEhE,IAAI,EAAU,EACV,EAAU,EAEV,EAAK,EAAI,EAAO,EACnB,EAAU,GACA,EAAK,EAAI,EAAI,MAAQ,IAC/B,EAAU,GAGP,EAAK,EAAI,EAAM,KAAK,MAAM,EAAQ,CAAC,EACtC,EAAU,GACA,EAAK,EAAI,EAAI,OAAS,EAAS,KAAK,MAAM,EAAQ,CAAC,IAC7D,EAAU,IAIV,EAAQ,YAAY,OAAS,GAC7B,EAAQ,YAAY,OAAS,KAE7B,GAAgB,CAAO,EACvB,EAAQ,YAAY,KAAO,EAC3B,EAAQ,YAAY,KAAO,IAI1B,GAAW,EAAQ,YAAY,OAAS,GACxC,GAAW,EAAQ,YAAY,OAAS,IAEzC,IAAgB,EAAS,EAAkB,CAC1C,EAAG,EAAQ,YAAY,KACvB,EAAG,EAAQ,YAAY,IACxB,CAAC,CAEH,CAEA,SAAgB,IAAgB,EAAS,EAAQ,EAAK,CACjD,CAEJ,CAAQ,kBAAkB,eAAiB,CAC1C,EAAQ,iBAAmB,YAC1B,IACA,GACA,EACA,EACA,CACD,CACD,EAAG,GAAG,CACP,CAEA,SAAgB,GAAgB,EAAS,CACxC,EAAQ,kBAAoB,EACxB,EAAQ,kBACX,EAAQ,gBAAkB,aAAa,EAAQ,eAAe,EAC9D,EAAQ,iBAAmB,cAAc,EAAQ,gBAAgB,EAEnE,CAEA,SAAS,IAAW,EAAS,EAAQ,EAAK,CACzC,GAAM,CAAE,IAAG,KAAM,EAEjB,EAAQ,mBAAqB,IAEzB,IAAM,GAAG,IAAY,EAAS,EAAQ,CAAC,EACvC,IAAM,GAAG,IAAY,EAAS,EAAQ,CAAC,CAC5C,CAEA,SAAS,IAAY,EAAS,EAAQ,EAAK,CAC1C,IAAM,EAAS,EAAO,KAAK,UAE3B,GACC,EAAS,KAAK,MAAM,EAAO,MAAQ,CAAC,EAAI,EAAQ,kBAAoB,EACpE,YACA,CACD,CACD,CAEA,SAAS,IAAY,EAAS,EAAQ,EAAK,CAC1C,IAAM,EAAS,EAAO,KAAK,WAE3B,GACC,EAAS,KAAK,MAAM,EAAO,MAAQ,CAAC,EAAI,EAAQ,kBAAoB,EACpE,aACA,CACD,CACD,CAEA,SAAS,GAAa,EAAO,EAAM,EAAQ,CAC1C,EAAO,KAAK,GAAQ,CACrB,CC3GA,SAAgB,GAAS,EAAO,EAAU,EAAO,EAAM,EAAO,EAAQ,CACrE,IAAM,EAAI,EAAQ,SAAS,EAAM,KAAO,GAClC,EAAK,EAAQ,aAAa,EAAM,KAAO,GACvC,EAAK,EAAW,aAAa,EAAS,GAAK,GAC3C,EAAI,EAAS,UAAU,EAAO,KAAO,GAEvC,EAAK,GAMT,OALI,IACC,EAAM,OAAM,EAAK,wBAAwB,EAAK,MAC9C,EAAM,QAAO,EAAK,yBAAyB,EAAM,OAG/C,GAAG,IAAK,IAAI,IAAI,IAAK,GAC7B,CAEA,SAAgB,GAAW,EAAQ,EAAM,EAAa,CACrD,IAAI,EAAM,GAEV,GAAI,EAAO,MACV,IAAK,IAAM,KAAO,EAAO,MACxB,GAAO,EAAO,MAAM,KAAS,GAAK,aAAe,YAOnD,MAJA,IAAO,EAAK,QAAU,EAAI,cAAgB,GAC1C,GAAO,EAAK,QAAU,EAAI,cAAgB,GAC1C,GAAO,EAAK,SAAW,eAAiB,GACxC,GAAO,EAAc,EAAY,CAAM,EAAI,IAAM,GAC1C,CACR,2VC5BA,oGASE,EAAS,kBAAG,IAAI,EAChB,EAAW,oBAAG,IAAI,EAElB,EAAS,mBAGN,EAAK,MACP,GAAQ,SACA,MAAK,SACL,SAAQ,SACR,MAAK,SACL,KAAI,SACJ,QAGT,EAAG,MAAY,EAAa,EAAW,EAAE,EAAS,IAE7C,EAAM,GAAW,YAAY,GAC3B,YAAW,SAAQ,WAAY,EAAI,iBAAgB,EAErD,EAAe,MACpB,EAAO,GAAE,KAAI,MAAK,KAAO,EAAO,EAAC,KAAI,MAAK,IAAE,SAAS,GAAE,EAGlD,EAAW,sBACF,WAAc,oBAClB,UAAS,kBAAkB,YAC3B,WAGP,EACJ,OAAc,CACb,EAAU,EACV,EAAS,EACT,OAAc,CACT,GAAU,EAAS,GAErB,EAAU,GAAE,MAAG,MAAS,IACxB,EAAU,GAAE,SAAM,SAAY,IAChB,EAAO,MAAK,CAE7B,CAAC,CACF,CAAC,WAEQ,EAAa,EAAa,EAAW,KACzC,EAAM,gBACV,IAAG,SAAW,MACX,KAAG,SAAW,QAAK,GAAU,YAAc,YAC3C,GACH,GAAO,EAAc,IAAM,EAAW,UAAW,GACjD,GAAO,EAAY,IAAM,EAAS,gBAAgB,GAClD,GAAG,SAAW,WAAa,gBAAkB,GACtC,CACR,UAES,GAAoB,CACxB,EAAS,IAAK,EAAU,GAC3B,EAAI,KAAK,aAAY,CACpB,IAAG,MAAM,GACT,OAAM,SAAS,GACf,YAAa,SAGhB,CAEA,OAAgB,CACX,EAAS,GAAI,EAAU,IAC1B,EAAI,KAAK,aAAY,CAAI,YAAa,SAAS,GAC/C,EAAY,EAAK,EAEnB,CAAC,WAEQ,EAAc,EAAM,KACtB,EAAY,OAAM,IAAK,EAAO,EAAC,MAAM,KAAI,KAAO,IAAI,SAC5C,OAAO,CAAI,EAAE,MAAM,CAE1B,EAAM,IAAI,IAAI,CAAO,OAAM,UAAW,EAAM,KAAK,CAAI,IAC7D,KAIA,yBAWM,UAAU,UAXhB,oCAiBI,IAAD,CAAC,aAEA,IAAD,CAAC,aAHE,CAAW,iCADZ,EAAQ,YAAW,WAAS,sCAQ/B,EAAI,SAAJ,EAAI,aAEH,2DAE0C,OAAS,GAEhD,QADA,SACO,uBAJV,kBADO,QAAM,gBADd,EAAI,qBAAyB,OAAS,GAAE,gCAD9B,YAAU,sEAYpB,EAAO,oBACN,oEAGY,SAAQ,UAAW,EAAI,KAAK,EAAQ,CAAI,0EAIrD,EAAI,SAAJ,EAAI,OACG,EAAc,GAAc,gCAAoB,MAAU,KAAV,UAAW,MAAK,KAAL,gCAE/D,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAoB,EAAI,QAA5B,CAAI,8BACE,EAAI,oBAFP,EAAS,4BAFf,CAAI,MAAJ,CAAI,sCAQJ,GAAc,2CAjBJ,KAAI,0BAQN,CAAe,uBAzCzB,WAIW,EAAM,MAAN,CAAM,gBAJjB,SACO,CAAG,4CACe,OAAK,SAAW,MAAM,OAAI,IAAO,SAClD,MAAM,QAAK,6BAGU,OAAK,SAAW,MAAM,WANnD,IAOC,CAAK,KAPN,uDAUU,EAAS,EAAG,IAAM,IAAI,IAVhC,2BAYsB,SAAS,IAZ/B,2BAauB,OAAgB,OAAP,EAAgB,QALnC,GAAK,MAAK,EAAE,MACZ,GAAK,SAAQ,EAAE,eAT5B,EAKS,CAAiB,MAL1B,UAHO,CCvFR,SAAgB,IAAO,EAAM,EAAQ,CACpC,IAAI,EAAG,EAEP,SAAS,EAAK,EAAI,CACjB,EAAI,EAAG,QAEP,EAAK,MAAM,QAAU,EAErB,SAAS,KAAK,MAAM,OAAS,YAC7B,SAAS,KAAK,MAAM,WAAa,OAEjC,OAAO,iBAAiB,YAAa,CAAI,EACzC,OAAO,iBAAiB,UAAW,CAAE,EAEjC,GAAU,EAAO,MAAM,EAAO,KAAK,CAAI,CAC5C,CAEA,SAAS,EAAK,EAAI,CACjB,EAAK,EAAG,QAAU,EAEd,GAAU,EAAO,MAAM,EAAO,KAAK,CAAE,CAC1C,CAEA,SAAS,GAAK,CACb,EAAK,MAAM,QAAU,GAErB,SAAS,KAAK,MAAM,OAAS,GAC7B,SAAS,KAAK,MAAM,WAAa,GAE7B,GAAU,EAAO,IAAI,EAAO,GAAG,CAAE,EAErC,OAAO,oBAAoB,YAAa,CAAI,EAC5C,OAAO,oBAAoB,UAAW,CAAE,CACzC,CAIA,OAFA,EAAK,iBAAiB,YAAa,CAAI,EAEhC,CACN,SAAU,CACT,EAAK,oBAAoB,YAAa,CAAI,CAC3C,CACD,CACD,kBC1CA,kBAKU,EAAU,CAAG,SAAS,WACrB,QAAO,IAAG,SAAS,EAAE,EAC/B,CAGA,GAAI,kBAAY,QAAM,+CAAsC,QAFrD,kECRR,+CAQS,SAAU,GADN,GAAW,YACI,EAAI,iBAAgB,EAE3C,EAAO,gBACF,QAAQ,SAAO,SAAW,SAAW,EAAW,EAAK,IAE1D,EAAQ,gBAAoB,QAAQ,QAAQ,WAEvC,GAAa,KACf,EAAO,UACb,EAAK,EAAC,QAAQ,GAAK,KACZ,EAAQ,GAAS,EAAC,UACnB,EAAQ,SAAS,CAAK,GAAG,EAAQ,KAAK,CAAK,CACjD,CAAC,EACM,EAAQ,IAAI,IAAG,CAAO,GAAI,EAAK,MAAO,CAAG,GACjD,UAES,EAAU,CAAG,SAAS,WACrB,QAAO,IAAG,SAAS,EAAE,EAC/B,UAES,EAAc,EAAI,CACtB,EAAG,MAAQ,OAAO,EAAG,eAAc,CACxC,KAIA,EAAG,MACF,MADD,CACC,kBACa,GAAE,MACR,EAAI,eACA,QAAM,2BAChB,CAAO,8CAEE,EAEA,UAAQ,EAAC,EAAM,0DAEtB,CAAQ,EAAC,EAAM,wCAEf,EAAM,EAAC,KAAK,qBAHT,CAAQ,mDAVf,CAAG,cAAH,EAAmC,CAAa,MAAhD,CAAG,SAHI,kFC/BR,kBAKU,EAAU,CAAG,SAAS,WACrB,QAAO,IAAG,SAAS,EAAE,EAC/B,KAIA,EAAG,MACF,MADD,CACC,kBACa,GAAE,MACR,EAAI,eACA,QAAM,+CAEP,OANX,CAAG,MAAH,CAAG,KAHI,CCJR,IAAa,IAAU,CACtB,KAAMC,IACN,WAAYC,IACZ,WAAYC,GACb,mBCRA,sDAMO,EAAM,GAAW,YAAY,GAC3B,gBAAiB,EAAI,iBAAgB,WAEpC,EAAW,EAAM,CACzB,EAAI,KAAK,cAAe,CAAI,CAC7B,KAEM,EAAe,MAAY,IAAO,SAAQ,KAAI,qCAGpD,wEAGQ,2BACK,EAAa,WAAQ,uBAN3B,0jBCdR,mDAkBO,EAAM,GAAW,YAAY,GAC3B,aAAc,EAAI,iBAAgB,EAEtC,EAEA,EAAQ,MAAY,EAAU,WAAQ,GAAE,WAEnC,EAAK,EAAM,CACnB,EAAK,OAAQ,SAAW,EAAK,WAAW,YAAW,OAAQ,KAC5D,UAES,EAAK,EAAI,CACjB,EAAa,EAAI,EAAI,CACtB,UAES,EAAG,EAAI,CACf,EAAa,EAAI,EAAK,CACvB,UAES,EAAa,EAAI,EAAY,CACrC,EAAI,KAAK,gBAAe,CACvB,GAAE,OAAO,GACT,MAAO,KAAK,IAAI,EAAG,EAAQ,CAAE,EAC7B,cAEF,UAES,EAAK,EAAI,WACL,MAAI,OAAS,WACrB,CAAQ,GAAE,UACb,CAAQ,EAAC,MAAK,EAAG,CAAQ,GAAE,QAAU,MAAQ,OAAS,OAEvD,EAAI,KAAK,YAAW,CACnB,IAAG,OAAO,GACV,IAAK,EAAG,SAAW,EAAG,QACtB,MAAK,EAAE,CAAQ,GAAE,QAEnB,UACS,EAAS,EAAI,CACjB,GAAI,EAAG,gBAAe,EAC1B,EAAI,KAAK,kBAAiB,CAAI,GAAE,OAAO,GAAI,IAAG,OAC/C,UAES,EAAqB,EAAI,CAC7B,EAAG,MAAQ,SAAS,EAAQ,CACjC,UAES,EAAiB,EAAI,CACzB,EAAG,MAAQ,SAAO,QAAU,QAAQ,EAAK,CAAE,CAChD,KAEI,EAAW,aAAiB,WAAS,SAAW,SAAS,EACzD,EAAO,QACV,CAAW,uBAAsB,cAAgB,QAAO,EAErD,EAAkB,QACrB,CAAO,uBAAwB,EAAC,uBAA0B,EAAC,EAGxD,EAAK,MACR,GAAQ,OACF,MAAK,OACL,SAAQ,SACN,MAAK,SACL,KAAI,OACN,OAAK,SAAW,MAAK,OACrB,QAAM,EAAI,CAAW,KAAI,CAAO,eAAgB,EAAC,GAIlD,EAAG,MAAY,GAAU,yCAEtB,GAAU,QACX,OAAO,YACb,OAAO,QAAO,QAAO,QAAM,CAAG,KAAS,IAAQ,MAAM,EAEvD,4BAMC,QAWC,EAAG,EAXJ,OAWC,EAAG,MAAH,CAAG,IAXJ,4BACgB,CAAG,iBAAQ,KAAO,KAAE,sCADpC,IAEC,CAAK,KAFN,uCAIkC,MAAQ,IAAE,IAJ5C,0BAKqB,SAAS,IAL9B,yBAWC,EAAG,EAAwB,CAAkB,cACvC,MAAQ,EAAE,QAHD,GAAK,SAAQ,EAAE,gBAT/B,EAOW,CAAoB,YAP/B,EAQS,CAAQ,MARjB,cAkBA,mCAwBE,QAWC,EAAC,EAXF,uCAGiB,UACd,gBACA,iBAAiB,IALpB,0BAMqB,SAAS,IAK7B,EAAC,sBAAwB,UAAY,OAAS,UAAO,+BAXtD,EAQW,CAAoB,YAR/B,EASS,CAAQ,MATjB,mBAHQ,aAAW,oDAqBb,CAAO,+BAFb,EAAK,oBACJ,4FAIY,SAAQ,UAAW,EAAI,KAAK,EAAQ,CAAI,oBAGrD,IAAM,8BAAc,mDAEpB,EAAG,UAAH,EAAG,MAAH,CAAG,mBAAuB,MAAQ,EAAE,OAApC,CAAG,kBAXK,KAAI,YAQC,OAAM,wCAOnB,qCAIc,OAAM,OAAM,IAAE,cAJ5B,EAKS,GAAM,EAAG,gBAAe,OALjC,qBADU,QAAM,mBAAqB,SAAO,8BAe5C,EAAG,UAAH,CAAG,qCAGA,EAAG,UAAH,EAAG,MAAH,CAAG,cAAmB,CAAQ,EAAC,MAAQ,CAAC,OAAxC,CAAG,aADO,CAAQ,EAAC,QAAU,QAAW,WAGzC,oCACkB,CAAQ,EAAC,QAAU,MAClC,KACA,SAAM,oCAPN,CAAQ,YADb,CAAG,MAAH,CAAG,+BApEL,8BACgB,CAAG,iBAAQ,KAAO,KAAE,2CACd,iCACO,OAAK,SAAW,MAAM,WAHnD,IAIC,CAAK,KAJN,6CAOgB,SAAO,SAAW,MAAI,QAAU,OAC7C,IACA,MAAS,IATZ,yBAWoB,SAAS,IAX7B,wBAYmB,QAAU,EAAC,OAAQ,QAAU,MAAS,IAZzD,wBAamB,QAAU,EAAC,OAAQ,QAAU,MAAS,IAbzD,iBAcY,CAAQ,GAAE,OAAK,OAAS,OACjC,SACA,CAAQ,GAAE,QAAU,MACnB,YACA,YAAY,QAZA,GAAK,SAAQ,EAAE,cAN/B,EAKS,CAAI,cALb,EAmBW,CAAgB,MAnB3B,cArBG,CAAW,+BAFR,2HC/FR,aAIO,EAAM,GAAW,YAAY,EAI/B,EAAK,MACR,GAAQ,OACF,MAAK,OACL,SAAQ,SACN,MAAK,SACL,KAAI,OACN,OAAK,SAAW,MAAK,OACrB,SAIH,EAAG,MAAY,GAAU,yCAEpB,GAAU,QACX,OAAO,YACb,OAAO,QAAO,QAAO,QAAM,CAAG,KAAS,IAAQ,MAAM,EAEvD,KAGA,gFASS,CAAO,+BAFb,EAAK,oBACJ,4FAIY,SAAQ,UAAW,EAAI,KAAK,EAAQ,CAAI,wBAGrD,EAAG,UAAH,EAAG,MAAH,CAAG,mBAAuB,MAAQ,EAAE,OAApC,CAAG,kBATK,KAAI,yCADF,WAAS,QAAU,WAAS,SALzC,+BACgB,CAAG,iBAAQ,KAAO,KAAE,mDACP,OAAK,SAAW,MAAM,WAFnD,IAGC,CAAK,SAHN,MAFO,0FC1BR,sEAUE,EAAI,aAAG,QAAQ,GAMR,OAAQ,EAAO,SADX,GAAW,YACU,EAAI,iBAAgB,EACjD,EAAU,MAAY,EAAM,KAAI,EAAI,gBAEpC,EAAc,MAAqB,KAClC,EAAG,gBACK,OAAQ,KACb,EAAS,UAAW,GAAG,EAAI,GAAE,eAC1B,EAAK,EAAG,EAAK,EAAW,IAAM,KAClC,EAAS,EACb,EAAI,KAAI,cACA,SAAS,EAAK,IAAO,KACtB,EAAI,IAAQ,EAAI,EAAI,GAAE,EAAE,KACzB,GACJ,EAAI,GAAI,KAAK,CAAI,EAGd,EAAK,QAAU,MAClB,EAAS,EAAK,QAAU,GAEnB,IAAW,GACX,EAAI,MAAO,KAEV,EAAQ,EAAI,cACP,EAAI,EAAG,EAAI,EAAK,QAAS,IACjC,GAAK,UAAY,EAAK,GAAG,MAE1B,EAAK,MAAQ,CACd,OAES,GAAQ,GACpB,CAAC,CACF,CACD,QACO,CACR,CAAC,EAEK,EAAQ,MAAY,EAAM,GAAE,MAAQ,EAAM,GAAE,KAAK,WAE9C,EAAU,EAAI,kBACP,KAAK,GAAK,EAAE,KAAO,CAAE,CACrC,UAES,EAAO,EAAM,EAAK,QACtB,EAAK,UAAS,GAAO,EAAK,QAAU,GACjC,IAAG,EAAK,CAAc,EAAC,OAAS,CACxC,UAES,EAAO,EAAM,EAAK,EAAQ,KAC7B,EAAO,KAAI,MAAS,WAChB,EAAC,EAAG,CAAc,EAAC,OAAS,EAAG,GAAK,EAAG,IAAK,KAC9C,EAAO,EAAO,OAAO,OACtB,EAAK,QAAM,CAAK,EAAK,QAAO,OAAS,IAAQ,CACnD,QACO,EAAO,EAAM,CAAG,CACxB,KAGA,sBAKO,CAAc,QAAI,EAAG,SAC1B,sBAKO,CAAG,EAAI,GAAM,EAAK,IAAE,EAAb,IAAI,KACT,EAAM,MAAG,EAAS,EAAC,CAAI,EAAC,EAAE,uCAOvB,EAAM,EAAC,CAAI,EAAE,CAAC,WAEd,EAAM,EAAC,CAAI,EAAE,EAAC,EAAE,CAAM,IAP/B,2BACC,CAAI,iEAEJ,CAAM,OACF,sHAIJ,CAAQ,0BAMD,EAAS,EAAC,CAAI,EAAC,EAAE,GAHzB,2BACC,CAAI,yEAGA,cAhBF,EAAI,IAAK,SAAQ,0BAPvB,mBACO,EAAI,IAAK,SAAW,WAAa,UAAU,MADlD,cAEe,CAAU,EAAC,IAAC,6BAF3B,OANF,sBACa,EAAI,yBADjB,sFAFO,gFCvER,aAIO,EAAM,GAAW,YAAY,WAC1B,EAAY,EAAM,eACZ,GAAS,UACxB,KAGA,EAAG,UAAH,CAAG,YAEM,EAAe,oDACtB,gBACa,SAAQ,UAAW,EAAI,KAAK,EAAQ,CAAI,sBAHlD,EAAW,yFADhB,CAAG,MAAH,CAAG,KAFI,mFCRR,aAMK,EAAQ,EAAM,YAAQ,OAAS,EAAE,GAEjC,EAAO,EAAM,QACjB,OAAO,EAAO,CAAI,EAAC,MAAK,YAEf,GAAc,GACtB,EAAK,EAAG,CAAI,EAAC,MAAK,gBACV,CAAI,EAAC,KAAK,CACnB,UAES,EAAY,CAAG,OAAO,CAC1B,IAAQ,SAAO,UACpB,KAGA,qDAC+B,EAAI,MADnC,OAKW,EAAI,SAAJ,CAAI,YALf,IAOC,CAAK,cAPN,EAGS,CAAW,cAHpB,EAIW,CAAY,MAJvB,MAFO,qGCnBR,wBAOO,EAAK,KAAL,KAAK,EAAiB,EAAiC,EAAM,KAAtD,aAAa,GAAiB,EAAkB,EAAM,KAAjC,OAAO,eACD,QAAM,GAAxC,EAAQ,KAAR,QAAQ,EAAE,EAAI,KAAJ,IAAI,EAEhB,EAAK,QAAY,CAAa,EAAC,UAAU,GAAK,EAAE,KAAO,CAAK,YAEvD,EAAW,CAAG,MAAM,WACpB,CAAE,YAEX,KAEI,EACA,EAAU,EAAM,iBAEX,EAAM,EAAI,CAClB,EAAW,EAAG,WACd,EAAU,EAAG,QAAO,IACpB,EAAQ,EAAC,CAAK,EACf,UAES,GAAQ,GAChB,IAAgB,YACN,QAAQ,OAAO,GACtB,EAAE,MAAM,YAAW,EAAG,SAAQ,EAAC,CAAI,EAAC,YAAW,aAExC,cAEN,CAAa,EAAC,OAAQ,EAAQ,IAAU,EACvC,EAAS,IAAI,CACnB,KAEI,EAAO,EAAM,QACjB,OAAc,GACb,CAAI,EAAC,MAAK,CACX,CAAC,cAGD,uBAEW,EAAI,SAAJ,CAAI,aAFf,QAGY,CAAI,OAAJ,EAAI,QAHhB,oCAM+B,EAAI,GAEnC,KARA,GAQe,wBAAQ,CAAa,WAAW,WAAiB,EACtD,UAAQ,WAAG,MAAM,MAAN,0DAElB,EAAS,EAAM,uBAER,EAAiB,MAAG,CAAI,qCAC/B,EAAiB,qBAAO,EAAM,4EACxB,EAAM,EAAC,KAAK,mBALf,EAAQ,KAEH,EAAI,0DAZf,EAIS,CAAK,cAJd,EAKW,GAAC,EAAI,CAAO,EAAC,EAAC,EAAE,CAAK,cAPzB,sMCzCR,aAQK,EAAK,YAAiB,OAAK,IAAQ,IAAI,EAEvC,EAAQ,YAAiB,QAAQ,QAAQ,EACzC,EAAI,YAAiB,QAAQ,IAAI,WAE5B,EAAW,CAAG,SAAS,WACvB,CAAK,YAEd,KAEI,EACJ,OAAc,CACb,EAAK,MAAK,EACN,OAAO,cACV,OAAO,aAAY,EAAG,gBAAe,CAEvC,CAAC,cAMD,gDAQE,EAAS,CAAK,sBAEP,EAAe,MAAG,CAAI,qCAC7B,EAAe,8BAAc,+DACvB,EAAI,UAAJ,EAAI,MAAJ,CAAI,qBAAyB,aAAa,OAA1C,CAAI,WALP,EAAQ,KAEH,EAAI,mBATd,WAEW,EAAI,MAAJ,CAAI,EAYf,KAdA,GAcQ,SAAQ,4BACf,EAAG,UAAH,CAAG,wBAIc,QAAQ,OAAO,EAH/B,yBACC,YACS,iCAHX,CAAG,KAAH,GAAG,iCAAgC,EAAI,OAAvC,CAAG,oCAfJ,2DAKW,GAAM,EAAG,eAAc,aAV3B,8KCzBR,aAOK,EAAI,YAAiB,QAAQ,KAAK,GAAO,EAAI,KAAE,SAAY,KAAK,cAC9D,EAAK,KAAL,KAAK,EAAE,EAAO,KAAP,OAAO,cACoB,QAAM,GAAxC,EAAQ,KAAR,QAAQ,EAAE,EAAI,KAAJ,IAAI,EAEhB,EAAK,MAAY,EAAQ,UAAU,GAAK,EAAE,KAAO,CAAK,YAEjD,EAAW,CAAG,MAAM,WACpB,CAAE,YAEX,KAEI,EACA,EAAU,EAAM,iBAEX,EAAM,EAAI,CAClB,EAAW,EAAG,WACd,EAAU,EAAG,QAAO,IACpB,EAAQ,EAAC,CAAK,EACf,KAEI,EAAO,EAAM,QACjB,OAAc,GACb,CAAI,EAAC,MAAK,EACN,QAAU,OAAO,cACpB,OAAO,aAAY,EAAG,gBAAe,CAEvC,CAAC,cAMD,gDAYE,EAAS,CAAI,sBAEN,EAAe,MAAG,CAAI,qCAC7B,EAAe,qBAAE,2DACX,EAAI,UAAJ,EAAI,MAAJ,CAAI,qBAAyB,aAAa,OAA1C,CAAI,WALP,EAAQ,KAEH,EAAI,mBAbd,aACW,EAAI,SAAJ,CAAI,MADf,oCAS+B,EAAI,GASnC,KAlBA,GAkBe,sBAAQ,WAAkB,WAAiB,EAChD,UAAQ,WAAG,MAAM,MAAN,0DAElB,EAAS,EAAM,uBAER,EAAiB,MAAG,CAAI,qCAC/B,EAAiB,qBAAO,EAAM,4EACxB,EAAM,EAAC,KAAK,mBALf,EAAQ,KAEH,EAAI,0DAtBf,2DAKW,GAAM,GAChB,CAAO,EAAC,EAAE,EAAE,CAAK,GACjB,EAAG,eAAc,CAClB,CAAC,YAbM,sOClCR,wBAMO,EAAM,KAAN,MAAM,EAEN,EAAO,gBAAoB,SAAO,IACpC,EAAK,gBAAoB,OAAK,IAC9B,EAAa,gBAAoB,aAAa,EAC9C,EAAK,MAAqB,KACvB,EAAa,EAAG,CAAO,EAAC,KAAK,GAAG,EAAI,CAAK,EAAC,SAAS,EAAI,EAAE,UACxD,EAAa,EAAG,CAAO,EAAC,QAAQ,CAAa,IACrD,CAAC,WAEQ,EAAW,CAAG,MAAM,WACpB,CAAE,IACV,CAAI,EAAC,MAAK,CACX,KAEI,EACA,EAAU,EAAM,iBAEX,EAAM,EAAI,CAClB,EAAW,EAAG,WACd,EAAU,EAAG,QAAO,IACpB,EAAQ,EAAC,CAAK,EACf,KAEI,EAAO,EAAM,QACjB,OAAc,GACb,CAAI,EAAC,MAAK,EACN,QAAU,OAAO,cACpB,OAAO,aAAY,EAAG,gBAAe,CAEvC,CAAC,cAMD,gDAYE,EAAO,SAAQ,EAAC,CAAK,GAAE,IAAI,GAAE,EAAI,CAAO,EAAC,KAAK,GAAO,EAAI,KAAO,CAAE,wBAE3D,EAAe,MAAG,EAAO,IAAI,kCAE9B,CAAK,EAAC,IAAI,GAAE,EAAI,CAAO,EAAC,KAAK,GAAO,EAAI,KAAO,CAAE,0BADvD,mDAIA,EAAI,UAAJ,EAAI,MAAJ,CAAI,cAAkB,CAAa,QAAnC,CAAI,WARD,GAAQ,SAAQ,KAEX,GAAQ,KAAI,mBAbtB,aACW,EAAI,SAAJ,CAAI,MADf,oCAS+B,EAAI,GAcnC,KAvBA,GAuBA,wBACO,CAAO,WACL,WACC,aACE,eACC,wBACZ,CAAK,GAEI,UAAQ,WAAG,MAAM,MAAN,WACnB,EAAG,UAAH,CAAG,oCAED,EAAO,SAAS,EAAM,uBAEf,EAAe,MAAG,EAAO,IAAI,qCACpC,EAAe,qBAAO,EAAM,4EAE5B,EAAM,EAAC,KAAK,mBANT,GAAQ,SAAQ,KAEX,GAAQ,KAAI,mBAHtB,CAAG,MAAH,CAAG,oCAhCL,2DAKW,GAAM,GAChB,CAAO,EAAC,EAAE,EAAE,CAAK,GACjB,EAAG,eAAc,CAClB,CAAC,YAbM,yBC/BR,IAAa,IAAU,CACtB,KAAMF,IACN,MAAO,IACP,WAAY,IACZ,WAAY,IACZ,YAAaG,GACd,kGCZA,gDAOO,EAAM,GAAW,YAAY,GAC3B,UAAW,EAAI,iBAAgB,WAE9B,EAAK,EAAa,CAI1B,EAAY,GAHC,EACV,MACE,IAAK,EAAO,EAAC,GAAI,OAAQ,EAAO,EAAC,MAAM,CACrB,CACxB,UAES,GAAS,CACjB,EAAY,GAAI,CAAI,IAAK,EAAO,EAAC,GAAI,OAAQ,EAAO,EAAC,MAAM,EAC5D,UAES,EAAY,EAAO,CAC3B,EAAI,KAAK,SAAQ,CAAI,OAAK,EAC3B,UAES,EAAY,EAAQ,EAAM,CAClC,EAAI,KAAK,eAAc,CAAI,QAAM,GAC7B,GACH,EAAI,KAAK,aAAY,IACjB,EACH,YAAa,OAAO,EAGvB,UAES,EAAW,EAAI,CACnB,EAAG,MAAQ,SAAW,EAAO,aACrB,OAAO,OAAS,cAC1B,EAAY,EAAO,EAAC,KAAK,EAEzB,EAAM,EAGT,KAEI,EAAK,MACR,GAAQ,SACA,MAAK,SACL,SAAQ,SACR,MAAK,SACL,KAAI,SACJ,QAIH,EAAe,MAAqB,KACrC,EAAM,SAAU,qBACT,GAAW,aAAY,EAAS,EAAM,iBAE1C,IADC,OAAU,GAAW,SAAW,EAAS,EAAO,KAEzD,CAAC,MAKD,iCAcC,yBACQ,EAAO,UACP,UACC,WACC,aACG,SAAQ,UAAW,EAAI,KAAK,EAAQ,CAAI,QAnBtD,iBAEC,CAAK,KAFN,eAGiB,UAAY,OAA2B,OAAb,UAAmB,IAH9D,wBAI0B,UAAY,OAInC,OAJ6C,UACtC,MAGE,cARZ,EAUS,GAAM,EAAG,gBAAe,gBAVjC,EAWY,GAAM,EAAG,gBAAe,eAXpC,EAYW,CAAU,MAZrB,UAJO,qLC7DR,aAMO,EAAM,GAAW,YAAY,GAC3B,eAAc,WAAU,OAAQ,GAAU,EAAI,SAAQ,WAErD,EAAa,EAAQ,sBACR,IAAG,cAAe,CAAM,EAAI,EAClD,0CAGiB,EAAG,SACnB,EAAE,SAAF,EAAE,SACK,CAAG,EAAI,GAAM,EAAK,IAAE,EAAb,IAAI,KACT,EAAM,MAAG,EAAS,KAAK,GAAK,EAAE,KAAE,EAAK,CAAI,EAAC,EAAE,OACnD,6DAWQ,OAAO,YACZ,OAAO,QAAO,EAAC,CAAI,GAAE,QAAM,CACxB,KAAS,IAAQ,MAAK,+BAJ1B,EAAK,oBACJ,iDAMA,CAAM,OACF,wBAGL,EAAG,UAAH,EAAG,MAAH,CAAG,mBACF,IAAoB,EAAc,EAAQ,EAAE,CAAI,SADjD,CAAG,aAIH,EAAG,UAAH,EAAG,MAAH,CAAG,cAAkB,CAAI,EAAC,MAAQ,EAAE,OAApC,CAAG,aAhBA,CAAI,EAAC,KAAI,OAWJ,CAAI,EAAC,OAAM,mBAnBrB,qGAG4B,CAAI,EAAC,uBACd,CAAI,EAAC,aAJxB,cAKS,CAAI,EAAC,OAAO,IALrB,cAMS,CAAI,EAAC,OAAO,QALd,GAAiB,EAAC,CAAI,EAAE,EAAM,WAAW,MACnB,EAAY,EAAC,CAAM,SAFhD,OAHF,CAAE,MAAF,CAAE,cAHI,0UCZR,aAYO,EAAM,GAAW,YAAY,GAC3B,SAAU,EAAM,OAAQ,GAAU,EAAI,SAAQ,EAEhD,EAAa,UAElB,GAA2B,UAAU,SAAU,EAAM,gBAAgB,EAChE,EAAa,UAElB,GAA2B,UAAU,SAAU,EAAM,gBAAgB,WAE7D,EAAa,EAAK,EAAQ,KAC9B,EAAM,SACV,IAAG,cAAkB,IAAG,cAAe,CAAM,EAAI,GACjD,GAAG,YAAgB,IAAG,YAAa,EAAK,CAAM,EAAI,GAC3C,CACR,UAES,EAAgB,EAAK,EAAQ,eACvB,EAAO,WAAc,WAChC,EAAO,UAAU,EAAK,CAAM,IAAM,GAClC,EAAO,SACX,KAGA,mCAKE,EAAK,MACJ,KADD,CACC,wBACS,QACH,qDAHP,CAAK,MAAL,CAAK,gCASN,EAAK,QAAL,EAAK,OACE,EAAI,MAAI,IAAG,KAChB,8BAIkB,GAAQ,EAAO,IAAE,EAAjB,IAAM,4BAErB,yBAQE,EAAI,UAAJ,CAAI,YAED,IAAD,CAAC,WADE,EAAe,EAAC,CAAG,IAAE,CAAM,2BADhC,CAAI,MAAJ,CAAI,wBADU,CAAM,EAAC,WAAS,sCAQ9B,EAAI,SAAJ,EAAI,aAGH,4DAC2C,CAAG,EAAC,OAC/C,GAEG,QADA,QACO,OAJV,cADG,CAAG,EAAC,QAAM,gBAFd,EAAI,iBAAqB,CAAG,EAAC,OAAS,GAAE,yBADrC,CAAM,EAAC,YAAU,kEAapB,EAAW,oBAAE,sBAAM,CAAG,yBAAG,CAAM,yBAE/B,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBAAE,GAAc,EAAC,CAAG,IAAE,CAAM,SAAhC,CAAI,aAHD,CAAM,EAAC,KAAI,iBA1BhB,mFAC8B,EAAY,EACzC,CAAG,IACH,QAEM,GAAiB,EAAC,CAAM,EAAE,EAAM,WAAW,QALlD,cADI,CAAM,EAAC,WAAS,kBALvB,mDAEiB,CAAG,EAAC,WAAa,EAAM,UAAS,YAD1C,UAAQ,WAAe,IAAG,aAAY,CAAG,GAAI,UADpD,OAFF,CAAK,UAAL,CAAK,YA8CJ,EAAK,MACJ,KADD,CACC,wBACS,QACH,qDAHP,CAAK,MAAL,CAAK,8BA5DP,2FAE+B,KAAK,GAAK,EAAE,QAAQ,UAFnD,MAFO,iGClCR,aAKkB,EAAS,kDAGlB,MAAO,EAAM,SAAU,GADnB,GAAW,YACoB,EAAI,SAAQ,EAEnD,EAAQ,IAAgB,EAAO,UAC/B,EAAO,EAAM,QAEjB,OAAc,KACP,EAAS,SAAS,KACxB,EAAO,UAAU,IAAI,UAAU,MAEzB,EAAM,EAAG,CAAI,EAAC,UAAU,EAAI,EAClC,EAAO,YAAY,CAAM,MAEnB,EAAI,yCAA0C,MAAK,YAAW,KAAI,KAClE,EAAQ,SAAS,cAAc,OAAO,EAC5C,EAAM,aAAa,OAAQ,UAAU,EACrC,EAAM,aAAa,QAAS,OAAO,EACnC,SAAS,qBAAqB,MAAM,EAAE,GAAG,YAAY,CAAK,EAC1D,EAAM,YAAY,SAAS,eAAe,CAAI,GAE9C,OAAO,MAAK,EAEZ,EAAM,OAAM,EACZ,EAAO,UAAU,OAAO,UAAU,EAElC,EAAO,OAAM,CACd,CAAC,MAGD,EAAG,SAAH,EAAG,OACI,EAAK,MAAI,IAAI,KAClB,EAAG,MACF,MADD,CACK,6BAAU,CAAI,QAAM,MADzB,CAAG,MAAH,CAAG,MAFL,CAAG,KAAH,EAAG,KAAuD,EAAI,SAAJ,CAAI,WAA9D,EAAG,QAAY,GAAI,oCAAnB,CAAG,KAFI,sZClCR,6XA2CO,EAAM,GAAW,YAAY,GAGlC,UACA,WACA,SAAU,EACV,QACA,SACA,eACA,SACA,SACA,SACA,OACA,YACA,UACA,QACA,WACA,sBACG,EAAI,iBAAgB,EAGpB,GAAa,EAAO,CAAC,EACzB,OAAO,EAAQ,GAAa,GAAa,WAErC,GAAa,EAAO,CAAC,EACxB,GAAY,EAAO,CAAC,EACf,GAAM,MACJ,EAAS,EAAC,KAAK,GAAG,CAAK,EAAI,QAAU,EAAI,QAAQ,CACxD,EAEK,GAAgB,MAAY,EAAO,EAAC,SAAS,EAC/C,GAGA,GAAW,EAAO,IAAI,EACzB,GAAW,EAAO,IAAI,EAEjB,GAAU,MAAqB,KAC9B,EAAQ,EAAQ,EAAG,EAAQ,EAAC,SAAW,EAAK,EAAC,mCAIjD,EAAc,IACd,EAAU,EAAC,GACV,EAAK,EAAG,EAAS,KAAI,QAGnB,EAAmB,SAChB,EAAK,EAAG,EAAgB,MAG5B,EAAc,UACT,EAAI,EAAG,EAAI,EAAO,IAC1B,GAAe,EAAK,EAAC,GAAG,WAAS,EAAI,EAAgB,SAE/C,CACR,CAAC,EAEK,GAAS,MACd,EAAS,EAAC,QAAQ,EAAK,KACjB,EAAI,SACR,GAAO,EAAI,OAEL,GACL,IAKE,GAAW,MAAqB,KACjC,EAAO,GACP,EAAQ,SAER,EAAM,EAAC,OACV,EAAU,EAAC,EACT,MAAM,EAAG,EAAM,EAAC,IAAI,EACpB,OAAO,GAAC,CAAK,EAAE,MAAM,EACrB,IAAI,IAAC,IAAU,CAAC,IAClB,EAAQ,QAAQ,GAAK,CACpB,EAAE,MAAK,CAAK,KAAM,CAAC,EACnB,EAAE,KAAO,EACT,GAAS,EAAE,KACZ,CAAC,EACG,EAAQ,SACX,EAAQ,EAAQ,OAAS,GAAG,MAAK,CAAK,KAAI,EAAI,KAGvC,UAAS,OAAK,CACxB,CAAC,EAGK,GAAY,MAAqB,KAClC,EAAO,GACP,EAAQ,KAER,EAAM,EAAC,MAAO,CACjB,EAAU,EAAC,EACT,MAAM,EAAM,EAAC,MAAK,EAAK,EACvB,OAAO,GAAC,CAAK,EAAE,MAAM,EACrB,IAAI,IAAC,IAAU,CAAC,YACT,EAAI,EAAQ,OAAS,EAAG,GAAK,EAAG,IAAK,KACvC,EAAM,EAAQ,GACpB,EAAI,MAAK,CAAK,MAAO,CAAC,EACtB,EAAI,MAAQ,EACZ,GAAS,EAAI,KACd,CACI,EAAQ,SAAQ,EAAQ,GAAG,MAAK,CAAK,MAAK,EAAI,EACnD,QAES,UAAS,OAAK,CACxB,CAAC,EAGK,GAAa,MAAqB,KACjC,EAAS,EAAC,EACd,MAAM,EAAM,EAAC,KAAM,EAAS,EAAC,QAAU,EAAM,EAAC,OAAS,EAAC,EACxD,OAAO,GAAC,CAAK,EAAE,MAAM,SACvB,EAAO,QAAQ,GAAK,CACnB,EAAE,MAAQ,CACX,CAAC,EACM,CACR,CAAC,EAGK,GAAa,MAAqB,KACnC,EAAM,EAAQ,EAGZ,EAAI,EAAG,EAAU,EACjB,EAAK,EAAG,EAAU,gBAEpB,EAAQ,EACR,EAAM,EACN,EAAM,EAEN,EAAI,IACR,EAAa,EAAC,SAAS,EAAK,IAAU,CACjC,EAAO,IACV,EAAQ,EACR,EAAI,GAEL,GAAY,EAAI,MAEZ,EAAQ,IAAK,EAAM,EAAQ,EAChC,CAAC,MAGK,EAAc,CAAK,OAAQ,EAAG,OAAQ,CAAC,UACpC,EAAI,EAAK,GAAK,EAAO,KAC5B,SAAU,QAAQ,EAAE,QAAQ,GAAO,GAC/B,EAAa,EAAC,IAAC,EAClB,EAAa,EAAC,GAAG,GAAK,QAAQ,GAAS,KAChC,EAAU,EAAM,WAClB,GAAW,EAAU,EAAG,KACrB,EAAO,GAAW,EAAM,EAAI,GAC9B,EAAO,IACV,EAAe,GAAO,KAAK,IAC1B,EAAe,GACf,GAGH,CACD,CAAC,CACH,CAAC,MAII,EAAY,GAAkB,EAAO,EAAG,QAAQ,EAChD,EAAY,GAAkB,EAAO,EAAG,QAAQ,EAEhD,EAAK,EAAU,MACf,EAAM,EAAU,MAEhB,EAAK,EAAU,MACf,EAAM,EAAU,eAElB,EAAM,KAAI,EAAS,gBACtB,EACC,EACA,EAAM,MAED,EAAW,EAAC,aACZ,EAAa,OACb,EAAY,EAAC,UAGnB,EAAI,MACA,EAAW,EAAC,aACZ,EAAa,EAAC,MAAM,EAAO,EAAM,CAAC,OAClC,EAAY,EAAC,SAEjB,EAAM,MACF,EAAW,EAAC,aACZ,EAAa,EAAC,MAAM,EAAK,EAAM,EAAe,OAAS,CAAC,OACxD,EAAY,EAAC,SAEjB,EAAM,MACF,EAAW,EAAC,aACZ,EAAa,EAAC,MAAM,EAAK,EAAM,EAAe,OAAS,CAAC,OACxD,EAAY,EAAC,WAIT,OAAM,SAAQ,SAAQ,IAAG,KAAI,IAAE,CACzC,CAAC,EAGK,GAAY,QACjB,EAAM,KAAI,EAAS,kCACD,EAAU,IAAG,EAAU,EAAG,KACzC,KAIE,GAAY,eAAqB,EAAO,EAAC,aAAe,CAAC,EACzD,GAAY,eAAqB,EAAO,EAAC,aAAe,CAAC,EAEzD,GAAU,sCAEZ,EAAU,IAAG,EAAY,IAAG,EAAY,qBACxB,EAAS,mBAAkB,EAAU,EAAG,GACxD,IAEE,GAAU,sCACe,EAAS,iBAAkB,IAMpD,GAAW,QAChB,EAAM,KAAI,EAAS,iCAEhB,EAAY,kBACX,EAAS,KAAI,EAAU,IAAG,EAAU,EAAG,KACtC,EAKA,GAAiB,uBAErB,EAAY,IACZ,EAAY,KACX,EAAU,IAAG,EAAU,EAAG,EAAC,EAGxB,GAAW,MAChB,KAAK,KAAI,EAAC,EAAiB,IAAG,EAAgB,GAAI,GAK7C,GAAU,MAAqB,KAChC,EAAQ,EACX,EAAW,qBACO,KACd,EAAE,EAAG,EAAS,OACX,EAAK,GACX,GAAM,GAAW,IAAK,EAAK,EAAgB,EAC3C,IAID,EAAQ,EAAG,EAAS,EAAG,UACd,EAAI,KAAK,IAAI,EAAG,EAAQ,EAAY,CAAC,EAAG,EAAI,EAAO,IAC3D,GAAY,GAAW,EAAQ,IAAC,EAAK,EAAgB,EAEtD,EAAQ,KAAK,IAAI,EAAG,EAAQ,CAAS,CACtC,KAAO,IACF,EAAmB,EAAE,KACpB,EAAW,EACX,EAAY,UACP,EAAI,EAAG,EAAI,EAAK,EAAC,OAAQ,IAAK,KAChC,EAAS,EAAK,EAAC,GAAG,WAAS,EAAI,EAAgB,KACjD,EAAY,EAAM,EAAG,EAAS,EAAE,CACnC,EAAW,OAEZ,CACA,GAAa,CACd,CACA,EAAQ,KAAK,IAAI,EAAG,EAAW,CAAS,UAE/B,EAAI,EAAG,EAAI,EAAO,IAC1B,GAAY,EAAK,EAAC,GAAG,WAAS,EAAI,EAAgB,MAG/C,EAAmB,EACnB,EAAgB,UACX,EAAI,EAAW,EAAG,EAAI,EAAK,EAAC,OAAQ,IAAK,KAC3C,EAAS,EAAK,EAAC,GAAG,WAAS,EAAI,EAAgB,KACrD,IACI,EAAgB,EAAM,EAAG,EAAiB,QAG9C,GAAiB,CAClB,KAEM,EAAM,KAAK,IAChB,EAAQ,EAAG,EAAQ,EAAC,SAAW,EAAK,EAAC,OACrC,EAAW,EAAmB,UAGtB,EAAG,EAAU,QAAO,KAAG,CACjC,CAEA,EAAQ,KAAK,MAAK,EAAC,EAAS,IAAG,EAAgB,GAC/C,EAAQ,KAAK,IAAI,EAAG,EAAQ,CAAS,EACrC,EAAW,EAAK,EAAG,EAAgB,CACpC,KAEM,EAAM,KAAK,IAChB,EAAQ,EAAG,EAAQ,EAAC,SAAW,EAAK,EAAC,OACrC,EAAK,EAAG,EAAW,EAAG,UAGd,EAAG,EAAU,QAAO,KAAG,CACjC,CAAC,EAEG,GAAQ,GACZ,OAAc,IAEZ,EAAQ,IACP,GAAS,QAAK,EAAK,EAAU,EAAC,OAC9B,GAAS,MAAG,EAAK,EAAU,EAAC,KAC5B,KACO,QAAO,OAAG,EAAK,EAAU,EACjC,GAAQ,CAAK,QAAO,KAAG,EACvB,EAAI,KAAK,eAAc,CAAI,IAAG,CAAI,QAAO,KAAG,GAC7C,CACD,CAAC,MAEK,GAAQ,MACT,EAAQ,EAAS,EAAK,EAElB,EAAK,EAAC,MAAK,EAAC,EAAU,EAAC,MAAK,EAAE,EAAU,EAAC,GAAG,CAEpD,EAGK,GAAgB,MACrB,EAAa,EAAC,OAAO,GAAC,EAAI,EAAQ,EAAC,KAAK,GAAK,EAAE,KAAO,CAAC,IAGpD,GAAW,QAAY,EAAU,EAAC,KAAK,EACvC,GAAY,EAAM,iBAEb,GAAS,EAAI,GACrB,GAAY,EAAG,OAAO,UAAS,MAC/B,GAAa,EAAG,OAAO,WAAU,GAClC,UAES,GAAc,EAAI,CAKtB,EAAG,UAAU,EAAG,eAAc,EAClC,GAAU,MAAK,CAChB,UAES,IAAiB,SAChB,EAAS,EAAC,KAAK,GAAC,EAAM,EAAE,SAAS,CAC3C,KAEI,GACA,GAEE,GAAiB,CACtB,UAAW,EAAI,IAAO,KACf,EAAI,CAAK,KAAI,OAAQ,GAAS,EAAI,aAAa,GACrD,EAAI,KAAK,cAAe,CAAI,CAC7B,EACA,OAAQ,EAAI,IAAO,IACd,GAAQ,WACN,EAAS,GAAS,EAAI,aAAa,KACrC,EAAU,GAAE,KAAO,GACtB,EAAI,KAAK,aAAY,CACpB,IAAK,EACL,SACA,YAAa,OAAO,GAGlB,EAAO,IAAK,GAAK,WAEf,EAAM,gBAAmB,EAAG,SAAW,EAAG,SAC1C,EAAK,eAAkB,EAAG,UAG/B,GACA,EAAa,EAAC,OAAS,GAAC,CACvB,EAAa,EAAC,SAAS,CAAE,IAE1B,EAAI,KAAK,aAAY,CAAI,KAAI,SAAQ,OAAK,EAE5C,EACA,aAAc,GAAM,KACb,EAAM,EAAI,OAAO,CAAE,EACzB,EAAI,KAAK,EAAI,OAAS,GAAsB,WAAd,YAAwB,CAAI,IAAE,EAC7D,EACA,mBACQ,IAIH,GAAgB,QACrB,IAAG,EAAE,EAAY,EACjB,OAAM,EAAE,EAAY,EACpB,KAAI,EAAE,EAAW,EAAC,MAClB,QAAO,EAAE,EAAU,EACnB,QAAO,EAAE,EAAU,EACnB,MAAK,mBACa,MACd,EAAQ,EAAC,aACT,KAAK,IAAI,EAAO,EAAC,UAAW,EAAE,EAClC,KAAM,IAAa,GAAU,8BAGrB,GAAU,EAAI,EAAS,KACvB,YAAW,aAAY,QAAS,KACnB,GAEjB,GAAY,CAAK,EAAW,aAAa,gBAAgB,QACrD,KAER,GAAW,EAAI,IAEX,EAAK,GAAI,EAAI,OAAM,EAAC,EAAQ,GAAE,MACjC,EAAI,KAAK,YAAW,CAAI,GAAE,EAAE,EAAQ,EAAE,OAAQ,EAAI,OAG7C,EAAW,GAAO,CAAU,IAClC,GAAW,EAAS,UAAU,EAAI,QAClC,EAAQ,EAAC,UAAU,OAAO,aAAa,IACvC,IACE,iBAAiB,YAAY,EAC7B,QAAQ,GAAW,EAAQ,aAAa,WAAY,IAAI,GAC1D,EAAU,YAAW,EAAC,EAAQ,OAExB,EAAO,EAAG,EAAU,IAAG,EAAa,EAAC,EACrC,EAAW,EAAG,EAAU,IAAG,EAAU,EAAG,EAE9C,EAAU,MAAM,MACf,KAAK,IAAG,cACO,EAAW,EACzB,EAAM,KAAI,EAAS,mBAChB,MACA,EAAY,EAAG,GAEnB,EACA,SAEK,EAAU,GAAU,CAAQ,EAClC,EAAQ,OAAM,CACb,EAAG,EACH,EAAC,CAAG,KAAK,MAAM,EAAQ,OAAS,CAAC,GAGlB,KAAY,EAAG,OAChC,UAES,GAAS,EAAI,EAAS,KACtB,QAAS,EACX,EAAM,EAAQ,IACd,EAAM,GAAU,EAAS,EAE/B,EAAI,EAAI,EAAI,MAEN,EAAG,EAAG,EAAgB,EAAC,OACzB,EAAI,EAAI,EAAK,EAAI,EAAI,MACpB,KACE,EACL,EAAI,QAAM,EACT,EAAU,KAAI,EAAU,EAAG,IACzB,IACA,KAAK,MAAK,EAAC,EAAgB,EAAC,MAAQ,CAAC,KACxC,EAAgB,EAAC,OACd,EAAI,EAAI,IAAK,EAAI,EAAI,EAC1B,IAEI,GAAU,SAAS,EAAQ,UAAU,EAAG,KACrC,EAAY,GAAO,EAAQ,UAAU,EACrC,EAAK,GAAa,GAAM,CAAS,KAEnC,GAAM,IAAO,EAAM,CACtB,EAAQ,GAAK,MAEP,EAAS,kBACZ,EAAQ,GAAE,aACV,EAAO,EAAC,eAEP,EAAS,IAAK,GAAK,EAAI,EAAI,EAAM,EAAY,EAAG,KAC7C,EAAa,EAAU,sBAAqB,EAM5C,EALiB,GAAS,EAAC,EAAQ,CAErB,EAAe,EACb,EAAW,EAEM,GAAQ,EACzC,EAAc,IAAQ,EAAI,QAAU,SACpC,EAAO,KAAK,IACjB,EAAI,YAAY,CAAI,EAAI,EAAI,YAAY,CAAE,GAGrC,EACL,IAAS,EAIN,EAHA,IAAgB,SACf,QACA,YAGD,IAAS,IAER,IAAG,IAAW,EAAG,QAAU,IAC3B,IAAQ,GAAK,EAAG,QAAU,IAAS,OAGxC,GAAY,EAAG,QAEf,EAAI,KAAK,YAAW,CACnB,GAAI,EACJ,OAAQ,EACR,OACA,WAAY,EAAI,EAElB,CACD,2BAEyB,MAAO,EAAI,SAAO,EAC5C,CAEA,IAAc,EAAI,EAAK,EAAO,EAAE,EAAgB,EACjD,UAES,GAAQ,EAAI,EAAS,KACrB,OAAM,MAAO,EAErB,EAAI,KAAK,YAAW,CACnB,GAAI,EACJ,OAAQ,EACR,WAAY,EAAK,GAIlB,GAAW,eAAiB,CAC3B,GAAW,CACZ,EAAG,KAEH,GAAQ,EAAG,GAAW,GAAY,KAAI,QACtC,GAAgB,CAAO,CACxB,UAGS,GAAkB,EAAO,EAAW,EAAM,KAC9C,EAAQ,EACR,EAAQ,OAER,EAAa,EAAC,OAAQ,KACrB,EAAY,EAAG,IAAc,eAExB,EAAI,EAAO,GAAK,EAAG,IAE3B,EADkB,EAAa,EAAC,GAAG,GACzB,QAAQ,GAAK,CAErB,EAAE,QAAU,GACZ,EAAI,EAAQ,EAAE,SACd,EAAI,IAEJ,EAAe,EAEjB,CAAC,KAGE,IAAY,EAAK,EAAa,EAAC,QAAU,EAAe,EAAO,SACzD,EAAI,EAAc,EAAI,EAAO,IACrC,GAAK,EAAI,EAAa,EAAC,GAAG,MAE3B,EAAQ,CACT,CACD,QAES,QAAO,OAAK,CACtB,UAES,IAAgB,KAClB,EAAM,SAAS,cAAc,KAAK,EACxC,EAAI,MAAM,QACT,wGACD,SAAS,KAAK,YAAY,CAAG,MACvB,EAAQ,EAAI,YAAc,EAAI,mBACpC,SAAS,KAAK,YAAY,CAAG,EACtB,CACR,KAEM,GAAK,QAAY,EAAW,EAAG,EAAC,WAAY,EAAW,OAAQ,EAAE,EAEnE,GACA,GAAU,GACV,GAAiB,EAAO,CAAC,WACpB,IAAe,CAEvB,GAAI,EAAG,SAAW,KACb,EAAK,EACL,EAAE,EAAG,EAAW,EACpB,MAAM,KAAK,GAAO,QAAQ,EAAE,SAAS,EAAK,IAAM,CAC/C,GAAU,EAAC,EAAW,EAAG,GAAK,EAAI,aAClC,GAAM,EAAI,aACV,GACD,CAAC,IAED,GAAiB,EAAE,MACnB,GAAY,EAAE,GACf,CAAC,CACF,CAEA,OAAO,EAAO,EAAQ,oBAAqB,GAAY,OAKnD,GAAQ,EAAM,QAElB,OAAc,IAEZ,EAAU,KACR,EAAO,MACP,EAAgB,EAAC,QAAM,EACxB,EAAgB,EAAC,SAAS,EAAU,EAAC,GAAG,KAEzC,GAAK,IAAQ,EAAU,iBACf,EAAQ,EAAC,QAAM,EAAI,EAAa,EAAC,KAAK,cAE5C,EAAK,KACL,EAAgB,EAAC,QAAM,GACtB,EAAgB,EAAC,SAAQ,EAAC,EAAK,EAAC,GAAG,KACrC,EAAQ,EAAC,UAAU,GAAK,EAAE,KAAE,EAAK,EAAK,EAAC,GAAG,QAAQ,EAClD,EAAa,EAAC,KAAK,UAClB,GAAK,EAAE,KAAE,EAAK,EAAK,EAAC,QAAM,CAAK,EAAE,gBAEjC,KACK,EAAG,EAAG,EAAgB,EAAC,IAAC,EAAK,EAAQ,EAAC,GAAG,GACzC,EAAI,EAAG,EAAa,EAAC,KAAK,UAAU,GAAC,CAAK,EAAE,SAAS,EACvD,IAAI,GAC2C,EAC9C,GAAQ,IAAI,EAFF,EACd,GAAK,CAAK,MAAK,OAAM,EAAE,EAAa,EAAC,KAAK,GAAM,EAAE,KAEpD,OACA,EAAM,GAAQ,IAAI,CACpB,CAAC,eAGD,SAOC,KAPD,IAiCE,KA1BD,SA0BC,eAcE,EAAG,UAAH,CAAG,iBAMU,EAAiB,aAL7B,kCACC,EAAY,4BACF,EAAa,EAAC,2BAChB,EAAa,EAAC,kFAJxB,CAAG,MAAH,CAAG,kCAWJ,2BAUE,IAAO,sEAER,0BAKO,EAAQ,EAAI,GAAa,EAAI,IAAE,EAAnB,EAAG,SACb,EAAU,MACjB,EAAa,EAAC,QAAO,EAAC,CAAG,EAAC,EAAE,MAAQ,MACpC,4BAgBO,EAAa,EAAC,KAAQ,GAAQ,EAAO,IAAE,EAAjB,IAAM,4BAE7B,IAAH,CAAG,SAEH,IAAM,sBAAE,CAAG,yBAAG,CAAM,2BAQT,EAAK,GAAE,MAAG,EAAK,CAAG,EAAC,IAAE,EAC/B,EAAK,GAAE,SAAM,EAAK,CAAM,EAAC,EAAE,EAP5B,0BACC,CAAG,yBACH,CAAM,oGAGN,+CAVE,CAAM,EAAC,UAAS,KAEX,EAAO,GAAE,KAAE,EAAK,CAAG,EAAC,IAAM,EAAO,EAAC,SAAM,EAAK,CAAM,EAAC,GAAE,4BAnBjE,4FAMmB,CAAU,kBACV,EAAQ,MAAK,CAAG,EAAC,OAPpC,gEAQ0B,aAAe,SAAQ,KAAI,CAAG,EAAC,WAAS,EAAI,EAAgB,UARtF,oBAUe,CAAM,KAVrB,oBAWe,CAAG,EAAC,IAAI,IAXvB,eAYY,EAAK,IAAG,CAAG,EAAC,OAAS,EAAI,MAAS,IAZ9C,kBAae,EAAK,IAAG,CAAU,EAAG,MAAS,QAXtC,UAAQ,WACF,IAAG,aAAY,CAAG,GAAI,QAC1B,GAAK,EAAC,CAAG,EAAC,EAAE,MACJ,GAAK,EAAC,CAAG,EAAC,EAAE,QAL7B,OARF,aACW,GAAM,MAAN,EAAM,IAblB,mCAKC,EAAU,GACV,EAAI,KAAK,aAAY,CAAI,YAAa,OAAO,OAN9C,wBAOmB,EAAiB,WAPpC,aA0DC,WACM,qCACL,EAAY,4BACF,EAAa,EAAC,2BAChB,EAAa,EAAC,sEALV,EAAK,EAAC,QAAM,UAlF3B,kCAOC,SACA,aAAQ,iBAAuB,EAAU,IAAG,EAAU,EAAG,GACzD,cAAS,EAAQ,EAAiB,EAClC,oBAAe,EAAQ,EAAW,EAAC,MAAK,EAAG,EAAY,EAAC,WApC1D,aACW,GAAS,MAAT,EAAS,KADpB,iEAKC,MAAO,GACP,KAAM,GACN,IAAK,GACL,eAAkB,EAAQ,EAC1B,sBAAgB,CAAW,aAAc,GAAc,UATxD,2BAYC,KAAI,YAAoB,IAAK,IACzB,IACH,SAAU,EAAK,EACf,SAAU,EAAK,gBAGhB,KAAM,GAAK,EAAI,KAAK,SAAU,CAAC,OAzBjC,0BAgIC,2BACQ,EAAO,kMAMd,gBARE,EAAO,oBA/HX,uEACyE,KAAE,oBAD3E,wBAEwB,EAAY,8BAAsB,EAAY,gCAAwB,EAAW,EAAC,OAAK;0BACzF,EAAY,EAAC,OAAK,YAIvC,KAoBC,EAAK,KApBN,UAqBM,EAAK,EAAG,WAAa,MAAM,IArBjC,qBAsBe,EAAa,EAAC,KAAK,MAAM,IAtBxC,qBAuBe,EAAQ,EAAC,MAAM,IAvB9B,0BAwBsB,EAAK,iBAAkB,GAAO,MAAS,KAE5D,mBAEmB,IAChB,SACA,SAAQ,gBAAc,EAAU,EAAG,SAAW,SAAQ,OAqBxD,cAEc,EAAY,oBAAY,EAAU,eAU/C,oBAGoB,EAAU,EAAC,GAAC,uBAAkB,EAAa,EAAC,GAAC,uBAxCnE,GAKU,EAAQ,gBAoBjB,GAGa,GAAM,GAAc,CAAE,kBA/D/B,oCCnrBR,aAiBE,EAAI,sBACJ,EAAO,yBACP,EAAQ,iBAAG,IAAI,EACf,EAAW,oBAAG,IAAI,EAClB,EAAS,kBAAG,IAAI,EAChB,EAAY,8BACZ,EAAM,eAAG,EAAI,EACb,EAAW,oBAAG,EAAK,EACnB,EAAM,eAAG,EAAI,EACb,EAAM,eAAG,EAAK,EACd,EAAO,gBAAG,IAAI,EACd,EAAO,gBAAG,IAAI,EACd,EAAO,gBAAG,EAAK,EACf,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,EAAK,EACrB,EAAK,yBACL,EAAK,qBAAK,KAAM,CAAC,IACjB,EAAI,aAAG,EAAK,EACZ,EAAU,mBAAG,EAAK,EAClB,EAAI,aAAG,IAAI,EACX,EAAU,mBAAG,IAAI,EACjB,EAAS,6BACT,EAAI,aAAG,EAAK,EACZ,EAAO,gBAAG,IAAI,EACd,EAAY,gCACT,yQAGA,EAAc,EAAO,CAAC,EACtB,EAAe,EAAO,CAAC,EACvB,GAAkB,EAAO,IAAI,EAC7B,GAAmB,EAAO,IAAI,EAG5B,GAAS,IAAO,IAAU,EAAQ,EAGpC,EAAe,GAAU,GAEvB,GAAO,KACT,GAAW,IAAO,IAAgB,EAAG,IAAM,KACxC,EAAO,KAAO,EAAE,QAAQ,GAAM,EAAE,EAClC,EAAU,IACb,EAAU,GAAM,CAAC,CAEnB,CAAC,EACD,EAAa,QAAQ,EAAW,MAI/B,GAAW,GAAU,SAAS,KAAK,EAAS,EAC5C,GAAmB,GAAU,YAAY,KAAK,EAAS,EACvD,QAAS,CAAY,KAAM,EAAS,GAEpC,GAAO,EAAa,KACpB,GAAU,GAAO,GAAc,GAAY,QAAQ,CAAE,EACrD,GAAY,EAAa,UAAU,KAAK,CAAY,EACpD,GAAK,EAAa,GAAG,KAAK,CAAY,EACtC,GAAS,EAAa,OAAO,KAAK,CAAY,EAE9C,GAAS,GAAM,GAAU,OAAO,CAAE,EAClC,GAAY,GAAM,GAAU,UAAU,CAAE,EAEnC,GAAG,CACR,QACA,WACA,aACA,MACA,UACA,UACA,aACA,YACA,oBACA,cAID,GAAW,aAAY,CACtB,SAAU,GAAU,SAAS,KAAK,EAAS,EAC3C,iBAAkB,GAAU,YAAY,KAAK,EAAS,EACtD,KAAM,EAAa,KAAK,KAAK,CAAY,EACzC,OAAQ,GAAU,OAAO,KAAK,EAAS,EACvC,YAAa,GAAU,YAAY,KAAK,EAAS,QAG5C,GAAY,MAAqB,IAClC,EAAU,IAAK,EAAO,EAAC,QAAU,EAAI,EAAC,OAAQ,KAC3C,EAAO,EAAI,EAAC,GACZ,EAAQ,WAEL,KAAO,KACX,IAAQ,MAAQ,EAAI,KAAO,IAAK,KAC/B,EAAG,CACN,GAAI,EACJ,OAAQ,EAAI,GAAG,YAAW,EAAK,EAAI,MAAM,CAAC,UAGhC,EAAU,GAAK,WACzB,EAAG,IAAQ,EAAG,GAAK,EAAU,IAE9B,EAAS,KAAK,CAAG,CAClB,QAGM,CACR,UAEO,EAAgB,GAAE,SAAW,EAAO,CAC5C,CAAC,EAEK,GAAU,QAAY,EAAgB,GAAE,OAAS,EAAK,YAEnD,GAAO,EAAM,MACrB,EAAc,EAAK,MAAK,MACxB,EAAe,EAAK,OAAM,IAEtB,EAAU,EAAE,KAKT,EAJS,OAAO,KAAK,EAAU,GACnC,IAAI,MAAM,EACV,MAAM,EAAG,IAAM,EAAI,CAEJ,EAAO,KAAK,GAAK,EAAI,CAAW,GAAI,CAAK,GAAK,KAE3D,IAAQ,EAAK,EAAe,MAC/B,GAAmB,EAAU,EAAC,GAAQ,MACtC,GAAkB,EAAQ,IAE5B,CACD,KAEI,GAAK,MAAY,GAAW,UAAU,GACtC,GAAY,GAEV,OAAoB,CACzB,GAAU,KAAI,CACb,OAAI,EACJ,QAAO,EAAE,EAAY,EACrB,QAAK,EACL,MAAK,EAAE,EAAU,EACjB,eAAY,EACZ,UAAO,EACP,OAAI,EACJ,YAAS,EACT,eAAY,EACZ,SAAM,EACN,OAAI,EACJ,UAAO,EACP,MAAK,EAAL,EAAK,IAGF,IAAa,EAAI,IACpB,EAAI,EAAC,EAAG,EACR,GAAY,GAEd,EAEA,GAAW,EACX,GAAQ,EAAW,sIAGnB,GAAM,sBAAQ,cAAc,oBAC3B,2BACC,EAAM,uBACN,EAAM,wBACN,EAAO,yBACP,EAAQ,4BACR,EAAW,0BACX,EAAS,0BACT,EAAS,4BACT,EAAW,8BACX,EAAa,8BACb,CAAW,+BACX,CAAY,kCACZ,EAAe,GACf,+BACA,EAAO,kCAjBF,mBC/KR,IAAM,IAAW,CAAC,EAIlB,SAAgB,GAAoB,EAAM,EAAS,CAClD,IAAS,GAAQ,CAClB,iDCNA,KACO,EAAI,aAAG,EAAK,MAGlB,EAAG,cAAH,EAAG,iBAAqB,EAAI,EAAG,QAAU,KAAE,uBAA3C,CAAG,CAFI,8ECFJ,IAAH,CAAG,iGCAJ,KAGa,EAAI,aAAG,EAAE,6BAMpB,EAAG,MACF,EAAC,EADF,CAAG,MACF,CAAC,IADF,CAAG,WACF,EAAC,cAAiB,cAAW,cAAU,KAAE,+BACzC,EAAI,qBAFL,EAAG,8CAAH,CAAG,SAKH,GAAM,iGAAsB,EAAI,4GAV1B,gJCJR,4BAKE,EAAG,WAAH,sBAAG,MAAH,CAAG,aAIH,EAAG,UAAH,EAAG,MAAH,CAAG,kCAAH,CAAG,2CAPG,+FCFR,4BASE,EAAG,UAAH,CAAG,YACQ,EAAC,cAAD,EAAC,sDAAD,CAAC,uCADZ,CAAG,yCAAH,EAAG,8CAAH,CAAG,SAKH,GAAM,mNAVA,8ECJR,aACO,EAAE,WAAG,EAAE,EAAE,EAAI,aAAG,EAAE,EAAE,EAAG,YAAG,EAAE,EAAE,EAAI,aAAG,EAAE,WAEpC,GAAc,uBACD,KAAE,GACxB,KAKA,EAAG,UAAH,CAAG,YAED,EAAC,cAAD,EAAC,KAAQ,EAAI,yBAAb,CAAC,WADE,EAAI,uBADT,CAAG,WAAH,EAAG,cAAkB,EAAG,iCAIvB,EAAI,qBAJL,EAAoC,CAAW,MAA/C,CAAG,KAJI,eCIR,GAAoB,SAAUC,GAAM,EACpC,GAAoB,YAAa,GAAS,EAC1C,GAAoB,SAAU,GAAM,EACpC,GAAoB,QAAS,GAAK,EAClC,GAAoB,OAAQ,GAAI,EAChC,GAAoB,OAAQ,GAAI,ECGhC,GAAO,EAAG,kPClBV,gDAQO,EAAM,GAAW,mBAAmB,EACpC,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,GAE9C,UAAW,EAAI,iBAAgB,EACjC,EAAK,MAAY,EAAO,WAAQ,MAAM,EACtC,EAAM,MAAY,EAAO,WAAQ,OAAO,WAErC,EAAM,EAAI,KACZ,EAAa,GAAyB,EAAE,EAAE,CAAM,GACtD,EAAI,KAAK,WAAU,CAClB,KACA,MAAK,WACD,GAAU,CAAM,SAAQ,CAAG,CAAU,IAE3C,KAEI,EAAU,EAAO,IAAI,EAEzB,OAAc,GACT,CAAK,KAAE,EAAU,IAAI,CAC1B,CAAC,WAEQ,GAAU,GAClB,EAAU,EAAI,EACd,EAAI,KAAK,eAAc,CACtB,GAAE,EAAE,CAAM,IAAC,CAAM,EAAC,OAAS,GAAG,EAAE,GAGjC,eAAiB,GAChB,EAAU,IAAI,CACf,EAAG,IACJ,KAGA,QAKC,EAAG,EALJ,OAKC,CAAG,mBAC0B,CAAO,GAAnC,GAAI,kDAA0C,MAD/C,CAAG,OAAH,EAAG,YAGG,CAAM,QAAI,EAAK,8BAEnB,GAAI,iCADD,GAAC,WAGL,EAAG,WAAH,EAAG,MAAH,CAAG,cAAH,EAAG,0BAA0B,GAAK,EAAC,CAAK,EAAC,EAAE,QAC1C,CAAK,EAAC,IAAM,IAAM,EAAC,EAAC,CAAK,EAAC,IAAI,IAAI,CAAK,EAAC,kBAb3C,+BAEqB,OAAK,QAF1B,UAFO,wVCxCR,aAKO,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAGhD,EAFY,GAAW,mBAAmB,EAAE,UAE3B,KAAI,MAAM,OAAO,MAGxC,EAAG,UAAH,CAAG,oBAGD,EAAI,cAAJ,EAAI,MAAJ,CAAI,mBAAmB,EAAE,uBAAuB,+CAG/C,EAAG,cAAH,EAAG,MAA6B,CAAI,OAApC,CAAG,aACG,EAAC,cAAD,EAAC,eAAiB,MAAI,4BAAtB,CAAC,WAFJ,EAAI,mBAGR,EAAI,WAAJ,EAAI,MAAJ,CAAI,kBAAuB,IAAI,yBAPxB,KAAO,8BAA6B,iBAD7C,CAAG,MAAH,CAAG,KAFI,6CCTR,qDAOO,EAAM,GAAW,mBAAmB,EACpC,EAAc,EAAI,iBAAgB,EAAG,YAErC,EAAc,GAAW,EAAM,EAE/B,EAAW,CAChB,aAAgB,KACT,EAAQ,IAAU,EAAC,CAAI,EAAE,YAAY,EACvC,GAAS,GAAS,EAAY,GACjC,EAAI,KAAK,mBAAkB,CAC1B,MAAO,EAAQ,CAAC,EAGnB,EACA,cAAS,EAAQ,CAAI,EAAC,UAAU,OAAO,WAAW,EAClD,cAAS,EAAQ,CAAI,EAAC,UAAU,OAAO,WAAW,GAG/C,EAAO,EAAM,YAGjB,mEAEiB,EAAK,QAFtB,qCAGW,EAAI,SAAJ,CAAI,MAHf,oCAI+B,CAAW,QAJ1C,UAFO,8FC1BR,gDAUc,EAAM,eAAG,EAAK,EAErB,EAAM,GAAW,mBAAmB,EAEpC,EAAS,GAAW,SAAS,EAC7B,EAAI,EAAO,SAAS,aAAa,EACjC,EAAS,GAAa,WAAY,EAAO,OAAM,EAAG,QAAQ,GAE1D,UAAW,EAAI,iBAAgB,EAE/B,EAAS,MAAY,EAAO,WAAQ,QAAQ,EAC5C,EAAI,MAAY,EAAO,WAAQ,IAAI,EACnC,EAAM,MAAY,EAAO,WAAQ,OAAO,EACxC,EAAK,MAAY,EAAO,WAAQ,MAAM,EACtC,EAAgB,MAAY,EAAO,WAAQ,iBAAiB,EAC5D,EAAK,MAAY,EAAO,WAAQ,MAAM,EAEtC,EAAO,EAEX,GAAI,OACJ,OAAQ,EAAE,MAAM,EAChB,SAAU,EACV,KAAM,GACN,OAAQ,GACR,KAAM,MAGN,GAAI,OACJ,OAAQ,EAAE,MAAM,EAChB,MAAO,IACP,KAAM,GACN,OAAQ,GACR,SAAU,GAAC,OAAY,GAAM,SAAW,GAAW,CAAC,EAAI,KAGxD,GAAI,OACJ,OAAQ,EAAE,MAAM,EAChB,MAAO,IACP,KAAM,GACN,OAAQ,GACR,SAAU,GAAM,EAAI,EAAO,CAAC,EAAI,KAI9B,EAAY,KACZ,EAAc,KAEZ,EAAc,QACnB,CAAgB,GAAI,6BAA6B,QAAQ,CAAS,aAG1D,EAAM,EAAI,EAAG,IAEjB,GAAK,EAAE,OAAO,UAAU,QAAQ,SAAS,OAAQ,WAE/C,EAAO,IAAM,EAAE,SAAW,EAAE,SAC5B,EAAQ,GAAK,EAAE,YAEjB,IAAO,8BAA+B,MACrC,CAAS,EAAC,SAAW,GAAQ,GAAK,OACtC,EAAI,KAAK,cAAa,CACrB,KAAM,YAAY,SAGpB,KAGI,EADW,IAAO,QACQ,EAAI,KAAO,GAEpC,GAAS,CAAK,EAClB,EAAI,KAAK,cAAa,CACrB,GAAI,EACJ,OAAQ,EACR,MAAO,EACP,MAAK,UAEA,EAAY,EAAc,IAClC,UAES,GAAe,GACnB,CAAM,EAAC,OAAS,GACnB,EAAI,KAAK,WAAU,CAClB,GAAE,EAAE,CAAM,IAAC,CAAM,EAAC,OAAS,GAAG,GAC9B,MAAK,QACL,SAAQ,GAAG,CAAM,IAAC,CAAM,EAAC,OAAS,GAAG,EAAE,GAG1C,UAES,EAAS,EAAI,IACjB,IAAO,qCACH,EAAY,MAEd,EAAI,EAAG,CAAK,EAAC,KAAK,GAAK,EAAE,KAAO,CAAE,EAEpC,IACC,EAAK,MAAQ,SAChB,EAAI,KAAK,WAAU,CAClB,GAAI,EAAK,GACT,MAAK,UAGN,EAAI,KAAK,YAAW,CACnB,GAAI,EAAK,EAAE,GAIf,UAES,EAAW,EAAG,KAChB,EAAM,EAAE,IACR,EAAQ,EAAG,CAAK,IAAC,CAAI,GACvB,EAAS,EAAoB,MAAT,OAEpB,GAAY,EAAS,MAAQ,IAChC,EAAQ,EAAS,QAAU,MAAQ,OAAS,OAG7C,EAAI,KAAK,aAAY,CACpB,IAAK,EACL,QACA,MAAK,QACL,KAAI,EAAJ,CAAI,GAEN,UAES,EAAU,EAAK,CACvB,EAAI,UAAU,YAAa,IAC1B,EAAY,GACZ,EAAW,CAAC,EACL,GACP,EAED,EAAI,UAAU,iBAAoB,EAAK,EAEvC,EAAI,GAAG,oBAAwB,EAAc,EAAI,EAEjD,EAAI,UAAU,aAAgB,EAAK,CACpC,KAEI,EAAa,QAChB,CAAI,IAAK,IAME,EAER,GARM,EAGL,GAAI,8BACJ,KAAM,EAAE,uBAAuB,QAE7B,CAAK,EAER,EAGA,EAAS,MAAqB,MAC7B,CAAa,KAAI,CAAK,IAAC,CAAI,GAAG,KACzB,MAAK,SAAK,EAAK,CAAK,IAAC,CAAI,WACvB,GAAG,CAAK,OAAK,EACxB,CACD,CAAC,MAKD,EAAG,UAAH,CAAG,EACF,GAAW,qCACX,iBAMC,KAND,EAMe,oBACb,YACM,sBACA,CAAa,wBAClB,+BACa,CAAc,mBACT,sBACV,UAAW,GAAI,aAAc,EAAE,2BACvC,CAAS,+BAdZ,iCAIqB,QAAO,UAAQ,MANrC,CAAG,UAEF,wEAGiB,EAAM,UAFd,GAAM,MAAM,cAHtB,EAAG,0DAAH,EAAG,oDAAH,CAAG,SAJI,mMCxKR,qDAKO,EAAM,GAAW,mBAAmB,EACpC,EAAc,EAAI,iBAAgB,EAAG,qBAElC,EAAa,EAAO,CAC5B,EAAI,KAAK,mBAAkB,CAAI,OAAK,EACrC,UAGA,EAAG,MACF,EAAG,EADJ,CAAG,IACF,EAAG,aAA6B,CAAC,UAAjC,CAAG,gBAGM,EAAY,GAAI,CAAC,EAFzB,YACO,wCAEQ,EAAa,CAAC,oBACR,EAAa,CAAC,MALpC,CAAG,MAQH,EAAG,EARH,EAAG,KAQH,EAAG,aAA6B,CAAC,UAAjC,CAAG,gBAGM,EAAY,GAAI,CAAC,EAFzB,YACO,wCAEQ,EAAa,CAAC,oBACR,EAAa,CAAC,MALpC,CAAG,IATJ,CAAG,SAAH,EAAG,kBAA4B,GAAM,MAAM,QAA3C,CAAG,SAFI,iNCXR,8EAMS,SAAQ,eADJ,GAAW,mBACS,EAAI,iBAAgB,EAEhD,EAAI,MAAY,EAAO,EAAC,EAAY,GAAE,IAAI,EAExC,EAAU,mBAAG,EAAK,EAAE,EAAM,0BAE1B,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAEhD,EAAU,QAAc,EAAM,EAAC,MAAM,KAAK,GAAK,EAAE,OAAS,QAAQ,GAClE,EAAI,MAAY,EAAM,EAAC,IAAM,IAAM,EAAE,EAAM,EAAC,IAAI,EAAI,EAAM,EAAC,IAAI,EAC/D,EAAO,MAAY,EAAM,EAAC,OAAS,GAAK,EAAM,EAAC,OAAS,GAAK,GAAK,CAAC,EACnE,EAAI,MAAY,EAAM,EAAC,IAAI,cAGjC,kCAOE,uCACsB,CAAI,EAAG,aAAe,gBAAa,uBADzD,cAIU,IAAJ,CAAI,aALP,CAAU,qBAMd,EAAC,OACD,EAAI,EADJ,EAAC,OACD,EAAI,MAAJ,CAAI,IAbL,+CAiBO,EAAM,EAAC,KAAQ,GAAQ,EAAO,IAAE,EAAjB,EAAM,8BAEzB,GAAM,yBAAE,CAAM,gBADX,CAAM,EAAC,OAAS,UAAQ,kCAF1B,CAAI,GAAI,EAAM,EAAC,MAAQ,EAAM,EAAC,KAAK,QAAM,EAAI,CAAU,kBAhB3D,0EAGmB,CAAI,IAAK,EAAM,EAAC,EAAE,MAHrC,qBAIsB,CAAO,aAQ5B,EAAC,KAAQ,EAAU,GAAI,YAAY,0BACZ,CAAI,SAZnB,GAAM,EAAM,EAAC,EAAE,kBAHjB,+DClBR,mGAOO,EAAM,GAAW,mBAAmB,GAClC,OAAM,SAAQ,eAAgB,EAAI,iBAAgB,EAEpD,EAAM,MAAY,EAAO,EAAC,EAAY,GAAE,OAAO,WAE5C,EAAO,EAAI,CACnB,EAAI,KAAK,mBAAkB,CAC1B,KACA,KAAI,CAAG,EAAK,EAAC,KAAK,CAAE,EAAE,IAAI,EAE5B,UAES,EAAM,EAAI,KACZ,EAAa,GAAyB,EAAE,EAAE,CAAM,GACtD,EAAI,KAAK,WAAU,CAClB,KACA,MAAO,EAAY,KACf,GAAU,CAAM,SAAQ,CAAG,CAAU,IAE3C,KAEI,EAAU,EAAM,QACpB,OAAO,EAAQ,EAAU,EAAK,EAAC,KAAK,CAAC,EAAE,KAAI,SAG3C,EAAE,SAAF,EAAE,SACK,CAAO,EAAI,GAAQ,EAAO,IAAE,EAAjB,IAAM,wBAErB,GAAM,yBAAE,CAAM,gBADX,CAAM,EAAC,OAAS,UAAQ,kBAF9B,CAAE,KAAF,GAAE,sBAAsB,QAAO,QAAM,QAArC,CAAE,SAFK,mKC9BR,+CAKO,EADM,GAAW,mBACT,EAAI,iBAAgB,EAAG,MAC/B,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAElD,EAAI,MAAY,EAAM,EAAG,EAAM,EAAC,KAAO,EAAE,EACzC,EAAK,MAAY,EAAM,EAAG,EAAM,EAAC,MAAQ,EAAE,6BAI9C,EAAG,MACF,EAAQ,EADT,CAAG,EAEF,EAAC,EADD,EAAQ,OACR,CAAC,IAAD,CAAC,IAFF,CAAG,mBACF,EAAQ,EAAQ,CAAI,KAApB,EAAQ,QAAmB,CAAK,oDAC7B,GAAU,EAAC,CAAI,OAAI,EAAE,IAAI,MAAI,GAAU,EAAC,CAAK,OAAI,EAAE,MAAM,QAF7D,CAAG,aADA,CAAI,KAAI,CAAK,wBAFV,gGCVR,aAMO,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAChD,EAAc,GAAW,EAAM,WAE5B,GAAwB,CAChC,EAAY,KAAI,GACjB,KAKA,EAAG,MACF,EAAI,EADL,CAAG,MACF,EAAI,MAAJ,CAAI,IADL,CAAG,mBACI,EAAC,SAAQ,IAAI,cADpB,EAAsC,CAAqB,MAA3D,CAAG,KAJI,sMCZR,aAYO,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,GAC9C,cAAe,GAAW,oBAAoB,EAEtD,IAAiB,SAAU,GAAY,WAE9B,EAAW,CAAG,UAAU,CAC5B,IACC,EAAO,KAAO,WACjB,EAAU,CACT,KAAI,CACH,KAAM,OACN,KAAM,EACN,KAAI,IAAM,IAAI,EAEf,IAAK,EAAI,GAEF,EAAO,KAAO,cACtB,EAAU,CACT,KAAI,CACH,KAAM,SACN,KAAI,IAAM,IAAI,EAEf,IAAK,EAAI,GAGb,KAEI,EAAO,oBACE,KAAK,EAAE,IAAI,IACtB,EAAO,KAAO,EAAE,EAAO,IAAI,EACpB,EACP,OAIF,EAAG,UAAH,CAAG,YAED,EAAG,MACF,MADD,CACa,0BAAE,CAAO,2BAA2B,mBAC/C,GAAM,0EAAuB,EAAE,SAAS,6DAF1C,CAAG,MAAH,CAAG,kCAMJ,EAAG,OACF,MADD,CACK,QADL,CAAG,EAGH,MAHA,EAAG,CAGE,QAXN,CAAG,MAAH,CAAG,KAFI,6IC7CR,aAGO,EAAK,cAAG,EAAE,EAEV,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAElD,EAAO,KACP,EAAI,MAAY,EAAK,IAAK,GAAmB,aAAd,WAA0B,WAEpD,EAAQ,EAAG,CACnB,EAAQ,EAAE,OAAO,KAAK,0BACC,QAAK,GAC7B,UAES,GAAQ,CAChB,EAAQ,EAAE,EACV,EAAK,MAAK,0BACa,QAAK,GAC7B,KAGA,EAAG,MAGF,EAAC,EAHF,CAAG,EAIF,IADA,EAAC,MACD,WAGW,EAAI,MAAJ,CAAI,IAPhB,CAAG,UAGF,EAAC,eAAiB,CAAI,6BACtB,EAIC,EAAK,KAJN,yBAMa,EAAE,QAAQ,cAPvB,EAAkC,CAAK,YACvC,EAKC,CAAO,MATT,CAAG,KAFI,+aCpBR,iGAOO,EAAU,mBAAG,EAAK,EAElB,EAAM,GAAW,mBAAmB,GAElC,OAAM,QAAS,EAAM,OAAQ,GAAgB,EAAI,iBAAgB,EAEnE,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAEhD,EAAO,EACV,KAAM,sBAAuB,GAAI,OAAO,GACxC,KAAM,gBAAiB,GAAI,OAAO,GAClC,KAAM,kBAAmB,GAAI,QAAQ,YAG/B,EAAU,CAAG,SAAS,CAC9B,EAAI,KAAK,WAAU,CAAI,KAAM,CAAK,EACnC,UACS,EAAW,EAAG,CACtB,EAAE,eAAc,EAChB,EAAI,KAAK,eAAc,CAAI,KAAI,CAAG,EAAK,GACxC,UACS,EAAO,EAAG,CAClB,EAAI,KAAK,eAAc,CAAI,KAAM,EAAE,KAAK,EACzC,KAGA,EAAG,MACF,EAAG,EADJ,CAAG,MACF,CAAG,YAED,EAAG,UAAH,EAAG,MAAH,CAAG,mBAAkB,EAAE,OAAO,QAA9B,CAAG,aAEH,EAAG,MACF,KADD,CACC,+DADD,CAAG,SAAH,EAAG,kBAAkC,GAAM,aAAa,QAAxD,CAAG,WAHC,EAAU,EAEJ,EAAK,GAAI,UAAY,EAAK,GAAI,UAAQ,OAFlC,OAUf,SAAM,YAAW,qBAAe,EAAY,OAX7C,CAAG,MAcH,EAAG,EAdH,EAAG,OAcH,CAAG,YAED,EAAG,MACF,MADD,CACS,WAAU,qBAAmB,EAAK,wBACxC,IAAD,CAAC,4BAFH,CAAG,MAAH,CAAG,WADC,EAAU,cAOf,EAAG,OACF,MADD,CACU,sBAAQ,EAAK,wBAAG,YAAmB,MAD7C,CAAG,IARJ,CAAG,IAfJ,CAAG,UACF,EAAG,aAAiB,EAAU,EAAG,iBAAmB,KAAE,sBADvD,CAAG,SAFI,mFC/BR,sDAQS,eADI,GAAW,mBACC,EAAI,iBAAgB,WAI5C,EAAG,UAAH,CAAG,EACF,GAAW,sBAAQ,EAAY,KAC/B,QAAc,oBACb,GAAK,gCAHP,CAAG,MAAH,CAAG,SAFI,udCVR,gIAgBO,EAAQ,iBAAG,EAAK,EAElB,EAAe,EAAM,QAErB,EAAa,EAAM,QACnB,EAAc,EAAO,EAAK,WAErB,EAAO,EAAM,CAIrB,IAHe,eAAe,GAAW,GACxC,EAAa,EAAQ,GAAG,cAAc,GAAG,WAAa,GAAG,CAC1D,CACA,EAAG,QAAQ,CAAI,CAChB,UAES,GAAgB,GACxB,EAAW,GAAI,CAAW,EAC3B,UAES,EAAY,EAAI,GACpB,CAAU,GAAI,GAAS,CAAE,IAAM,iBAClC,EAAc,EAAK,CAErB,KAEM,EAAM,GAAW,mBAAmB,GAClC,aAAY,eAAgB,GAAW,oBAAoB,EAC7D,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,GAGrD,KAAM,EACN,QAAS,EACT,YAAa,EACb,OAAQ,GACL,EAAI,iBAAgB,EAElB,EAAQ,MAAY,EAAQ,EAAC,EAAa,GAAE,QAAQ,EACpD,EAAI,MAAY,EAAQ,EAAC,EAAa,GAAE,IAAI,EAC9C,EAAqB,EAAM,QAEzB,EAAa,CAClB,KAAM,UACN,KAAM,UACN,GAAI,SAAS,WAGL,EAAgB,EAAM,KAC1B,EAAO,EAAG,CAAU,GAAI,CAAa,YACrC,IAAS,SACZ,EAAO,IACH,qBACc,OAAO,GAAK,EAAE,KAAO,UAAU,IAE3C,CACR,UAES,EAAe,EAAI,EAAG,KACxB,EAAO,EAAK,EAAI,QAAQ,CAAE,EAAI,KAC9B,EAAS,EAAE,OAAO,QAAQ,mBAAmB,EAE/C,KAEA,EAAQ,EACX,EAAU,EAAgB,GAAM,IAAI,MAC9B,QACE,OACF,OACJ,EAAO,cAAe,CAAE,mBAGpB,MACE,GAAM,EAAI,CAAQ,EAAC,OAAS,EAChC,EAAO,EAAG,IACN,EAAa,iBAAiB,aAAa,iBAChC,aAAa,OAC5B,GAAU,IAAO,IACjB,EAAO,cAAe,SAAU,CAAI,EAAE,OACrC,GAAK,EAAE,KAAO,OAAM,MAEf,KACA,EAAQ,cAAe,EAAK,KAAM,CAAI,EACxC,IACH,EAAO,EAAG,IACN,EAAa,GAAK,CAAQ,EAC3B,EAEL,EAGC,EAAM,IAAK,WACd,EAAU,GAAS,OAAO,GAAK,EAAE,KAAO,OAAO,EAEjD,IAGC,GAAM,KAAE,GACN,CAAQ,EAAC,QAAM,GAAK,CAAQ,EAAC,KAAK,GAAK,IAAM,EAAK,EAAE,KACrD,GAED,EAAI,KAAK,cAAa,CAAI,GAAI,EAAK,EAAE,GAGlC,GAAS,cACZ,EAAQ,QAAQ,GAAK,CAChB,IAAQ,EAAE,OAAS,IACX,EAAE,OAAO,EAAE,EAAE,IAAI,EACzB,EAAE,SAAQ,EAAE,QAAU,EAAE,OAC7B,CAAC,IACD,EAAqB,EAAO,IACrB,GAAI,EAEb,KAEI,EAAO,cACF,GAAW,EAAG,KACd,SAAQ,WAAY,EACxB,GACH,GAAc,EAAO,GAAI,EAAO,CAAG,EAAO,MAAM,CAElD,UAES,GAAc,EAAQ,EAAS,EAAQ,KACzC,EAAM,EAAM,CAAI,EAAQ,EAAE,IAAI,CAAQ,SACpC,OACF,WACJ,EAAI,KAAK,gBAAe,CAAI,GAAI,EAAQ,EAAE,aAEtC,WACA,OACJ,EAAI,CACH,SACK,KAAG,YAGL,QACA,GACH,EAAI,KACH,EAAK,SAAW,OAAS,aAAe,aAAY,CAEnD,IAAK,EAAK,IACV,OACC,GAAS,OAAS,SAAW,EAAQ,GAAE,EAAG,CAAI,cAK9C,SACJ,EAAU,CAAG,KAAM,CAAO,aAEtB,SACJ,EAAW,CAAG,SAAU,CAAG,aAEvB,UACJ,EAAI,KAAK,eAAc,CAAI,KAAI,CAAG,EAAS,UAG9C,UAES,IAAW,QACZ,EAAQ,EAAC,EAAa,EAC9B,gBAEe,EAAa,EAAG,OAExB,GAAI,MACF,OAAM,QAAS,EAAE,KAEzB,EAAI,KAAK,cAAa,CACrB,KAAI,CACH,OACA,OACA,KAAI,IAAM,KACV,KAAM,EAAE,IAAI,EAEb,OAAM,EAAE,CAAI,GAEd,KAGA,6BAWE,EAAG,MACF,KADD,CACK,6BAAE,CAAU,2CADjB,CAAG,MAAH,CAAG,6BAIH,IAAO,6BAAE,CAAU,cAAc,IACjC,oBACS,QACL,+BACK,CAAkB,YACjB,UACD,oBAER,gDAES,CAAkB,YACjB,UACD,oBAER,IAAQ,WAAU,aAAiB,uBAClC,EAAG,UAAH,CAAG,oBAED,aAOC,MAPD,CAOQ,yBAAE,EAAQ,+CAPlB,6BACkB,CAAW,aAD7B,qBAKkB,EAAY,SAI9B,IATA,KAaC,IAJD,OAIC,SAOE,GAAS,sBAAQ,EAAa,YAE9B,IAAS,eAHN,EAAM,IAAK,QAAO,iBANvB,0BAaC,EAAG,MACF,KADD,CACK,2CADL,CAAG,MAAH,CAAG,WADA,EAAS,YAhBd,aATA,6DAGyB,CAAU,yBACT,CAAW,OAKrC,0BAE2B,CAAY,qBAEtC,sBACuB,EAAC,EACrB,GACA,SAAM,mBAHT,qBAIS,GAAM,MAAM,8BAetB,oBAIE,IAAM,aAEN,IAAU,eAHP,EAAM,IAAK,SAAQ,iBAHxB,0BAUC,EAAG,MACF,KADD,CACK,2CADL,CAAG,MAAH,CAAG,WADA,EAAS,kBATb,sBACuB,EAAS,EAAG,GAAK,SAAM,kCAlC3C,EAAM,IAAK,UAAY,EAAM,IAAK,SAAQ,iBAD/C,CAAG,MAAH,CAAG,6FApBH,CAAU,GAAI,EAAS,qBAV5B,mDAIC,MACA,YAAa,EAAQ,EAAG,EAAe,cACvC,iBACA,mBAPD,WAFO,CChMR,QAAe,CACd,YAAa,CACZ,WAAY,WAEZ,UAAW,UACX,GAAI,KACJ,OAAQ,SAER,eAAgB,eAChB,MAAO,QACP,OAAQ,SACR,wBAAyB,wBAEzB,YAAa,cACb,MAAO,QAEP,+CACC,+CACD,kBAAmB,kBACnB,oBAAqB,oBAErB,OAAQ,SACR,OAAQ,SACR,oBAAqB,oBACrB,eAAgB,eAChB,iBAAkB,iBAClB,cAAe,cAEf,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OAEN,OAAQ,SACR,IAAK,MACL,OAAQ,SACR,KAAM,OACN,MAAO,QACP,SAAU,WACV,MAAO,QACP,OAAQ,SACR,QAAS,UACT,KAAM,OACN,MAAO,QACP,iBAAkB,iBAClB,SAAU,WACV,QAAS,UACT,GAAI,KACJ,KAAM,OACN,wCACC,wCACD,6BAA8B,6BAC9B,eAAgB,eAEhB,2BAA4B,0BAC7B,CACD,uICxDA,+EAMO,EAAI,GAAW,SAAS,EAAE,SAAS,aAAa,EAChD,EAAM,GAAW,mBAAmB,GAElC,OAAQ,EAAS,YAAa,GACrC,EAAI,iBAAgB,EAEf,EAAI,MAAY,EAAQ,EAAC,EAAa,GAAE,IAAI,EAC9C,EAAS,EAAO,IAAI,EACpB,EAAU,EAAO,IAAI,EACrB,EAAQ,EAAO,EAAE,EACjB,EAAc,EAAO,EAAE,EACvB,EAAQ,EAAO,EAAK,WAEf,GAAW,KACb,EAAI,EAAG,CAAK,EAAC,KAAI,MAClB,EAAM,GACV,EAAQ,EAAI,QAEb,GAEI,CAAM,EAAC,IACV,EAAI,KAAK,cAAa,CACrB,KAAI,MACA,CAAM,EAAC,KACV,MAAI,EAEL,OAAM,EAAE,CAAI,MAGT,CAAW,IAAK,GACnB,EAAI,KAAK,cAAa,CAAI,GAAE,EAAE,CAAM,EAAC,KAAK,GAAI,MAAI,GAGpD,EAAW,CACZ,UAES,GAAc,GACtB,EAAM,EAAG,EAAQ,IAAI,QACrB,EAAW,EAAG,EAAQ,EAAE,KACzB,UAES,GAAY,CACpB,EAAI,KAAK,eAAc,CAAI,IAAG,EAAE,CAAO,EAAC,QAAQ,KAChD,EAAU,IAAI,CACf,CAEA,GAAW,qBAAoB,CAC9B,WAAW,EAAQ,GAClB,EAAW,EAAG,EACb,EAAO,KAAK,OACX,EAAO,KAAK,OAAS,SACnB,EAAE,YAAY,KACX,EAAE,UAAU,mBACnB,EAAM,IAAQ,CAAM,KACrB,EACA,YAAY,EAAQ,GACnB,EAAO,IAAQ,CAAM,KACtB,uBAID,IAAO,wHAMC,EAAC,WAAU,CAAM,EAAC,KAAK,KAAI,SADlC,yCAEW,WACD,mBAGT,GAAI,wBAAE,CAAK,UAAU,SAAa,OAAM,OAAU,kBAAV,MAAU,oDAPhD,CAAM,0CAaF,EAAE,8CAA8C,GADvD,yCAEW,iBACM,EAAU,IAAI,8CAG7B,EAAE,SAAF,EAAE,SACK,CAAO,EAAC,SAAQ,MAAI,IAAI,KAC7B,EAAE,UAAF,EAAE,MAAF,CAAE,cAAE,CAAI,QAAR,CAAE,MAFJ,CAAE,MAAF,CAAE,aADC,CAAO,EAAC,UAAQ,kDANlB,CAAO,wBAjBJ,CCjER,IAAW,GAAY,CACtB,KAAM,GACN,IAAK,GACL,IAAK,GACL,IAAK,GACL,KAAM,GACN,GAAI,GACJ,IAAK,GACL,GAAI,GACJ,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,KAAM,GACN,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,KAAM,GACN,IAAK,GACL,IAAK,GACL,IAAK,GACL,KAAM,GACN,IAAK,GACL,IAAK,GACL,KAAM,GACN,IAAK,GACL,IAAK,GACL,KAAM,GACN,IAAK,GACL,OAAQ,GACR,KAAM,GACN,SAAU,GACV,OAAQ,GACR,KAAM,EACP,mBCvCA,aAeE,EAAI,sBACJ,EAAI,aAAG,OAAO,EACd,EAAK,cAAG,IAAI,EACZ,EAAO,gBAAG,EAAK,EACf,EAAM,wBACN,EAAW,oBAAG,CAAC,EACf,EAAQ,iBAAG,EAAK,EAChB,EAAW,oBAAG,GAAc,EAC5B,EAAS,kBAAG,IAAI,EAChB,EAAI,aAAG,IAAI,EACX,EAAK,uBAAa,EAAM,EAAM,KACrB,OAAM,OAAQ,KAElB,IAAS,SAAQ,MAAS,OAE1B,SAMG,EAJH,GAAQ,IAAS,QAAU,GAAU,GACjC,EACG,EACH,GAAU,GAAO,EAAM,OACjB,0DAEyC,EAAI,GAAI,EAAI,KACpE,CAAC,EACD,EAAQ,iBAAG,IAAI,EACZ,gKAIE,EAAS,IAAO,IAGlB,EAAe,EAAU,GAEvB,EAAO,KACT,EAAW,IAAO,IAAgB,EAAG,IAAM,KACxC,EAAO,KAAO,EAAE,QAAQ,EAAM,EAAE,EAClC,EAAU,IACb,EAAU,GAAM,CAAC,CAEnB,CAAC,EACD,EAAa,QAAQ,CAAW,MAI/B,EAAW,EAAU,SAAS,KAAK,CAAS,EAC5C,EAAmB,EAAU,YAAY,KAAK,CAAS,EACvD,OAAS,CAAY,KAAM,CAAS,GAEpC,EAAO,EAAa,KACpB,EAAU,GAAO,EAAc,EAAY,QAAQ,CAAE,EACrD,EAAY,EAAa,UAAU,KAAK,CAAY,EACpD,EAAK,EAAa,GAAG,KAAK,CAAY,EACtC,EAAS,EAAa,OAAO,KAAK,CAAY,EAE9C,EAAU,GAAM,EAAU,QAAQ,CAAE,EACpC,EAAY,GAAM,EAAU,UAAU,CAAE,EAEnC,EAAG,CACR,WACA,mBACA,YACA,OACA,UACA,YACA,KACA,SACA,UACA,aAGK,OAAa,KAEnB,GAAW,oBAAmB,CAC7B,iBAAkB,EAAU,YAAY,KAAK,CAAS,EACtD,KAAM,EAAa,KAAK,KAAK,CAAY,EACzC,UAAS,CACR,QAAS,EAAQ,GAAI,GACrB,KAAM,EAAK,GAAI,SAAW,GAAO,EAAK,GAEvC,QAAS,EAAU,QAAQ,KAAK,CAAS,QAGtC,GAAY,GACV,OAAoB,CACzB,EAAU,KAAI,CACb,OAAI,EACJ,OAAI,EACJ,QAAK,EACL,UAAO,EACP,SAAM,EACN,cAAW,IAGR,IAAa,EAAI,IACpB,EAAI,EAAC,CAAG,EACR,GAAY,GAEd,EACA,GAAW,EACX,GAAQ,EAAW,4HAGnB,GAAM,sBAAQ,cAAc,oBAC3B,IAAM,oBACL,IAAM,yBAAE,EAAQ,4BAAG,EAAW,0BAAG,EAAS,yDAJrC,kBCrHR,KAEO,EAAK,cAAG,EAAI,yBAIjB,GAAM,sBAAE,EAAK,4FAEb,GAAM,sBAAE,EAAK,8CALP,CCSR,GAAO,EAAG,ECZV,IAAa,IAAwC,IAC1C,CACH,eAAe,EAAS,CACpB,EAAc,YAAc,CAChC,EACA,aAAc,CACV,OAAO,EAAc,WACzB,EACA,uBAAuB,EAAK,EAAO,CAC/B,EAAc,aAAa,uBAAuB,EAAK,CAAK,CAChE,EACA,oBAAqB,CACjB,OAAO,EAAc,YAAY,mBAAmB,CACxD,CACJ,GAES,IAAmC,IACrC,CACH,YAAa,EAAkC,YAAY,CAC/D,GCnBO,IACV,SAAU,EAAmB,CAC1B,EAAkB,KAAU,OAC5B,EAAkB,MAAW,OACjC,GAAG,CAAsB,IAAoB,CAAC,CAAE,ECJhD,IAAW,IACV,SAAU,EAAa,CACpB,EAAY,IAAS,MACrB,EAAY,MAAW,QACvB,EAAY,OAAY,SACxB,EAAY,KAAU,OACtB,EAAY,OAAY,QAC5B,GAAG,CAAgB,IAAc,CAAC,CAAE,ECPpC,IAAa,IAAqB,mBCArB,GAAb,MAAa,CAAY,CACrB,OACA,SACA,SACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,KACA,YAAY,EAAS,CACjB,KAAK,OAAS,EAAQ,QAAU,MAChC,KAAK,SAAW,EAAQ,UAAY,YACpC,KAAK,KAAO,EAAQ,KACpB,KAAK,MAAQ,EAAQ,OAAS,CAAC,EAC/B,KAAK,QAAU,EAAQ,SAAW,CAAC,EACnC,KAAK,KAAO,EAAQ,KACpB,KAAK,SAAW,EAAQ,SAClB,EAAQ,SAAS,MAAM,EAAE,IAAM,IAE3B,EAAQ,SADR,GAAG,EAAQ,SAAS,GAExB,SACN,KAAK,KAAO,EAAQ,KAAQ,EAAQ,KAAK,OAAO,CAAC,IAAM,IAA2B,EAAQ,KAA7B,IAAI,EAAQ,OAAyB,IAClG,KAAK,SAAW,EAAQ,SACxB,KAAK,SAAW,EAAQ,SACxB,KAAK,SAAW,EAAQ,QAC5B,CACA,OAAO,MAAM,EAAS,CAClB,IAAM,EAAS,IAAI,EAAY,CAC3B,GAAG,EACH,QAAS,CAAE,GAAG,EAAQ,OAAQ,CAClC,CAAC,EAID,MAHA,CACI,EAAO,QAAQ,IAAW,EAAO,KAAK,EAEnC,CACX,CACA,OAAO,WAAW,EAAS,CACvB,GAAI,CAAC,EACD,MAAO,GAEX,IAAM,EAAM,EACZ,MAAQ,WAAY,GAChB,aAAc,GACd,aAAc,GACd,SAAU,GACV,OAAO,EAAI,OAAa,UACxB,OAAO,EAAI,SAAe,QAClC,CACA,OAAQ,CACJ,OAAO,EAAY,MAAM,IAAI,CACjC,CACJ,EACA,SAAS,IAAW,EAAO,CACvB,OAAO,OAAO,KAAK,CAAK,EAAE,QAAQ,EAAO,IAAc,CACnD,IAAM,EAAQ,EAAM,GACpB,MAAO,CACH,GAAG,GACF,GAAY,MAAM,QAAQ,CAAK,EAAI,CAAC,GAAG,CAAK,EAAI,CACrD,CACJ,EAAG,CAAC,CAAC,CACT,CC/DA,IAAa,GAAb,KAA0B,CACtB,WACA,OACA,QACA,KACA,YAAY,EAAS,CACjB,KAAK,WAAa,EAAQ,WAC1B,KAAK,OAAS,EAAQ,OACtB,KAAK,QAAU,EAAQ,SAAW,CAAC,EACnC,KAAK,KAAO,EAAQ,IACxB,CACA,OAAO,WAAW,EAAU,CACxB,GAAI,CAAC,EACD,MAAO,GACX,IAAM,EAAO,EACb,OAAO,OAAO,EAAK,YAAe,UAAY,OAAO,EAAK,SAAY,QAC1E,CACJ,EChBA,SAAgB,IAA4B,EAAS,CACjD,MAAQ,IAAS,KAAO,IAAS,CAC7B,GAAM,CAAE,WAAY,EACpB,GAAI,EAAQ,uBAAyB,IACjC,GAAY,WAAW,CAAO,GAC9B,EAAQ,MACR,EAAQ,UAAY,QACpB,EAAQ,gBAAgB,aAAa,OAAS,mBAAoB,CAClE,IAAI,EAAa,GACjB,GAAI,OAAO,EAAQ,sBAAyB,SACxC,GAAI,CAEA,GADmB,OAAO,EAAQ,UAAU,iBAAiB,GAAK,EAAQ,oBAAoB,EAAQ,IAAI,GAAK,MACpF,EAAQ,oBACvC,MACU,CAAE,MAGZ,EAAa,CAAC,CAAC,EAAQ,qBAEvB,IACA,EAAQ,QAAQ,OAAS,eAEjC,CACA,OAAO,EAAK,CACR,GAAG,EACH,SACJ,CAAC,CACL,CACJ,CACA,IAAa,IAAqC,CAC9C,KAAM,QACN,KAAM,CAAC,oBAAqB,eAAe,EAC3C,KAAM,8BACN,SAAU,EACd,EACa,IAA8B,IAAa,CACpD,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAA4B,CAAO,EAAG,GAAkC,CAC5F,CACJ,GCxCa,GAA6B,CACtC,eAAgB,iBAChB,cAAe,eACnB,EACa,IAAuC,GAA2B,eAClE,GAA6B,CACtC,eAAgB,iBAChB,cAAe,eACnB,EACa,IAAuC,GAA2B,eACpE,IACV,SAAU,EAAmB,CAC1B,EAAkB,IAAS,MAC3B,EAAkB,MAAW,QAC7B,EAAkB,OAAY,SAC9B,EAAkB,UAAe,YACjC,EAAkB,KAAU,OAC5B,EAAkB,OAAY,QAClC,GAAG,CAAsB,IAAoB,CAAC,CAAE,EAChD,IAAW,KACV,SAAU,EAAkB,CACzB,EAAiB,OAAY,SAC7B,EAAiB,QAAa,SAClC,GAAG,GAAqB,GAAmB,CAAC,CAAE,EAC9C,IAAa,GAA6B,GAAkB,MCxB5D,SAAgB,IAAqB,EAAa,EAAS,EAAO,CAK9D,MAJA,CACI,EAAY,UAAU,CAAC,EAE3B,EAAY,QAAQ,GAAW,EACxB,CACX,CCNA,SAAgBC,GAAW,EAAS,EAAS,EAAO,CAC3C,EAAQ,kBAKH,EAAQ,kBAAkB,WAChC,EAAQ,kBAAkB,SAAW,CAAC,GALtC,EAAQ,kBAAoB,CACxB,SAAU,CAAC,CACf,EAKJ,EAAQ,kBAAkB,SAAS,GAAW,CAClD,CCVA,IAAM,GAAQ,mEACD,GAAqB,OAAO,QAAQ,EAAK,EAAE,QAAQ,EAAK,CAAC,EAAG,MACrE,EAAI,GAAK,OAAO,CAAC,EACV,GACR,CAAC,CAAC,EACQ,IAAkB,GAAM,MAAM,EAAE,ECJhC,GAAc,GAAU,CACjC,IAAI,EAAmB,EAAM,OAAS,EAAK,EACvC,EAAM,MAAM,EAAE,IAAM,KACpB,GAAmB,EAEd,EAAM,MAAM,EAAE,IAAM,KACzB,IAEJ,IAAM,EAAM,IAAI,YAAY,CAAe,EACrC,EAAW,IAAI,SAAS,CAAG,EACjC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EAAG,CACtC,IAAI,EAAO,EACP,EAAY,EAChB,IAAK,IAAI,EAAI,EAAG,EAAQ,EAAI,EAAG,GAAK,EAAO,IACvC,GAAI,EAAM,KAAO,IAAK,CAClB,GAAI,EAAE,EAAM,KAAM,IACd,MAAU,UAAU,qBAAqB,EAAM,GAAG,mBAAmB,EAEzE,GAAQ,GAAmB,EAAM,MAAS,EAAQ,KAClD,IACJ,MAEI,MAGR,IAAM,EAAe,EAAI,EAAK,EAC9B,IAAS,IACT,IAAM,EAAa,KAAK,MAAM,GAAuB,EACrD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAAK,CACjC,IAAM,GAAU,EAAa,EAAI,KACjC,EAAS,SAAS,EAAc,GAAI,EAAQ,KAAO,IAAY,CAAM,CACzE,CACJ,CACA,OAAO,IAAI,WAAW,CAAG,CAC7B,ECnCaC,GAAY,GAAU,IAAI,YAAY,EAAE,OAAO,CAAK,ECCpD,GAAgB,GACrB,OAAO,GAAS,SACTA,GAAS,CAAI,EAEpB,YAAY,OAAO,CAAI,EAChB,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAE/F,IAAI,WAAW,CAAI,ECRjB,GAAU,GAAU,CAC7B,GAAI,OAAO,GAAU,SACjB,OAAO,EAEX,GAAI,OAAO,GAAU,UAAY,OAAO,EAAM,YAAe,UAAY,OAAO,EAAM,YAAe,SACjG,MAAU,MAAM,8EAA8E,EAElG,OAAO,IAAI,YAAY,OAAO,EAAE,OAAO,CAAK,CAChD,ECNA,SAAgB,GAAS,EAAQ,CAC7B,IAAI,EACJ,CAII,CAJA,OAAO,GAAW,SACVA,GAAS,CAAM,EAGf,EAEZ,IAAM,EAAc,OAAO,GAAU,UAAY,OAAO,EAAM,QAAW,SACnE,EAAe,OAAO,GAAU,UAClC,OAAO,EAAM,YAAe,UAC5B,OAAO,EAAM,YAAe,SAChC,GAAI,CAAC,GAAe,CAAC,EACjB,MAAU,MAAM,kFAAkF,EAEtG,IAAI,EAAM,GACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EAAG,CACtC,IAAI,EAAO,EACP,EAAY,EAChB,IAAK,IAAI,EAAI,EAAG,EAAQ,KAAK,IAAI,EAAI,EAAG,EAAM,MAAM,EAAG,EAAI,EAAO,IAC9D,GAAQ,EAAM,KAAQ,EAAQ,EAAI,KAClC,KAEJ,IAAM,EAAkB,KAAK,KAAK,GAAyB,EAC3D,IAAS,IAAkC,EAC3C,IAAK,IAAI,EAAI,EAAG,GAAK,EAAiB,IAAK,CACvC,IAAM,GAAU,EAAkB,KAClC,GAAO,KAAiB,MAA0B,IAAY,EAClE,CACA,GAAO,KAAK,MAAM,EAAG,EAAI,CAAe,CAC5C,CACA,OAAO,CACX,CChCA,IAAa,GAAb,MAAa,UAA8B,UAAW,CAClD,OAAO,WAAW,EAAQ,EAAW,QAAS,CAC1C,GAAI,OAAO,GAAW,SAIlB,OAHI,IAAa,SACN,EAAsB,OAAO,GAAW,CAAM,CAAC,EAEnD,EAAsB,OAAOA,GAAS,CAAM,CAAC,EAExD,MAAU,MAAM,+BAA+B,OAAO,EAAO,2BAA2B,CAC5F,CACA,OAAO,OAAO,EAAQ,CAElB,OADA,OAAO,eAAe,EAAQ,EAAsB,SAAS,EACtD,CACX,CACA,kBAAkB,EAAW,QAAS,CAIlC,OAHI,IAAa,SACN,GAAS,IAAI,EAEjB,GAAO,IAAI,CACtB,CACJ,ECtBM,IAAoB,OAAO,gBAAmB,WAAa,eAAiB,UAAY,CAAE,EACnF,IAAb,cAAoC,GAAkB,CACtD,ECFaC,GAAoB,GAAW,OAAO,gBAAmB,aACjE,GAAQ,aAAa,OAAS,eAAe,MAAQ,aAAkB,gBCE/D,KAAwB,CAAE,mBAAkB,WAAU,SAAQ,yBAAwB,mBAAqB,CACpH,GAAI,CAACA,GAAiB,CAAM,EACxB,MAAU,MAAM,gDAAgD,GAAQ,aAAa,MAAQ,EAAO,oBAAoB,EAE5H,IAAM,EAAU,GAAiB,GACjC,GAAI,OAAO,iBAAoB,WAC3B,MAAU,MAAM,oHAAoH,EAExI,IAAM,EAAY,IAAI,gBAAgB,CAClC,OAAQ,CAAE,EACV,MAAM,UAAU,EAAO,EAAY,CAC/B,EAAS,OAAO,CAAK,EACrB,EAAW,QAAQ,CAAK,CAC5B,EACA,MAAM,MAAM,EAAY,CAEpB,IAAM,EAAW,EAAQ,MADJ,EAAS,OAAO,CACN,EAC/B,GAAI,IAAqB,EAAU,CAC/B,IAAM,EAAY,MAAM,gCAAgC,EAAiB,kBAAkB,EAAS,wBACxE,EAAuB,GAAG,EACtD,EAAW,MAAM,CAAK,CAC1B,MAEI,EAAW,UAAU,CAE7B,CACJ,CAAC,EACD,EAAO,YAAY,CAAS,EAC5B,IAAM,EAAW,EAAU,SAE3B,OADA,OAAO,eAAe,EAAU,IAAe,SAAS,EACjD,CACX,EClCa,IAAb,KAAgC,CAC5B,eACA,WAAa,EACb,WAAa,CAAC,EACd,YAAY,EAAgB,CACxB,KAAK,eAAiB,CAC1B,CACA,KAAK,EAAW,CACZ,KAAK,WAAW,KAAK,CAAS,EAC9B,KAAK,YAAc,EAAU,UACjC,CACA,OAAQ,CACJ,GAAI,KAAK,WAAW,SAAW,EAAG,CAC9B,IAAM,EAAQ,KAAK,WAAW,GAE9B,OADA,KAAK,MAAM,EACJ,CACX,CACA,IAAM,EAAc,KAAK,eAAe,KAAK,UAAU,EACnD,EAAS,EACb,IAAK,IAAI,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,EAAE,EAAG,CAC7C,IAAM,EAAQ,KAAK,WAAW,GAC9B,EAAY,IAAI,EAAO,CAAM,EAC7B,GAAU,EAAM,UACpB,CAEA,OADA,KAAK,MAAM,EACJ,CACX,CACA,OAAQ,CACJ,KAAK,WAAa,CAAC,EACnB,KAAK,WAAa,CACtB,CACJ,EC9BA,SAAgB,IAA6B,EAAU,EAAM,EAAQ,CACjE,IAAM,EAAS,EAAS,UAAU,EAC9B,EAA+B,GAC/B,EAAY,EACV,EAAU,CAAC,GAAI,IAAI,IAAoB,GAAS,IAAI,WAAW,CAAI,CAAC,CAAC,EACvE,EAAO,GACL,EAAO,KAAO,IAAe,CAC/B,GAAM,CAAE,QAAO,QAAS,MAAM,EAAO,KAAK,EACpC,EAAQ,EACd,GAAI,EAAM,CACN,GAAI,IAAS,GAAI,CACb,IAAM,EAAY,GAAM,EAAS,CAAI,EACjC,GAAO,CAAS,EAAI,GACpB,EAAW,QAAQ,CAAS,CAEpC,CACA,EAAW,MAAM,CACrB,KACK,CACD,IAAM,EAAY,IAAO,EAAO,EAAK,EAOrC,GANI,IAAS,IACL,GAAQ,GACR,EAAW,QAAQ,GAAM,EAAS,CAAI,CAAC,EAE3C,EAAO,GAEP,IAAS,GAAI,CACb,EAAW,QAAQ,CAAK,EACxB,MACJ,CACA,IAAM,EAAY,GAAO,CAAK,EAC9B,GAAa,EACb,IAAM,EAAa,GAAO,EAAQ,EAAK,EACvC,GAAI,GAAa,GAAQ,IAAe,EACpC,EAAW,QAAQ,CAAK,MAEvB,CACD,IAAM,EAAU,IAAM,EAAS,EAAM,CAAK,EACtC,CAAC,GAAgC,EAAY,EAAO,IACpD,EAA+B,GAC/B,GAAQ,KAAK,2CAA2C,EAAU,yBAAyB,EAAK,2BAA2B,GAE3H,GAAW,EACX,EAAW,QAAQ,GAAM,EAAS,CAAI,CAAC,EAGvC,MAAM,EAAK,CAAU,CAE7B,CACJ,CACJ,EACA,OAAO,IAAI,eAAe,CACtB,MACJ,CAAC,CACL,CACA,IAAa,IAAyB,IACtC,SAAgB,IAAM,EAAS,EAAM,EAAO,CACxC,OAAQ,EAAR,CACI,IAAK,GAED,MADA,GAAQ,IAAM,EACP,GAAO,EAAQ,EAAE,EAC5B,IAAK,GACL,IAAK,GAED,OADA,EAAQ,GAAM,KAAK,CAAK,EACjB,GAAO,EAAQ,EAAK,CACnC,CACJ,CACA,SAAgB,GAAM,EAAS,EAAM,CACjC,OAAQ,EAAR,CACI,IAAK,GACD,IAAM,EAAI,EAAQ,GAElB,MADA,GAAQ,GAAK,GACN,EACX,IAAK,GACL,IAAK,GACD,OAAO,EAAQ,GAAM,MAAM,CACnC,CACA,MAAU,MAAM,uCAAuC,EAAK,kBAAkB,CAClF,CACA,SAAgB,GAAO,EAAO,CAC1B,OAAO,GAAO,YAAc,GAAO,QAAU,CACjD,CACA,SAAgB,IAAO,EAAO,EAAc,GAAM,CAU9C,OATI,GAAe,OAAO,OAAW,KAAe,aAAiB,OAC1D,EAEP,aAAiB,WACV,EAEP,OAAO,GAAU,SACV,EAEJ,EACX,CC9FA,IAAa,KAA+B,EAAgB,IAAY,CACpE,GAAM,CAAE,gBAAe,oBAAmB,sBAAqB,uBAAsB,gBAAiB,EAChG,EAAmB,IAAkB,QACvC,IAAsB,QACtB,IAAwB,QACxB,IAAyB,QACzB,IAAiB,OACf,EAAS,EAAmB,EAAa,EAAqB,CAAc,EAAI,OAChF,EAAS,EAAe,UAAU,EACxC,OAAO,IAAI,eAAe,CACtB,MAAM,KAAK,EAAY,CACnB,GAAM,CAAE,QAAO,QAAS,MAAM,EAAO,KAAK,EAC1C,GAAI,EAAM,CAEN,GADA,EAAW,QAAQ;CAAO,EACtB,EAAkB,CAClB,IAAM,EAAW,EAAc,MAAM,CAAM,EAC3C,EAAW,QAAQ,GAAG,EAAqB,GAAG,EAAS,KAAK,EAC5D,EAAW,QAAQ;CAAM,CAC7B,CACA,EAAW,MAAM,CACrB,MAEI,EAAW,QAAQ,IAAI,EAAkB,CAAK,GAAK,GAAG,SAAS,EAAE,EAAE,MAAM,EAAM,KAAK,CAE5F,CACJ,CAAC,CACL,EC1BA,eAAsB,IAAW,EAAQ,EAAO,CAC5C,IAAI,EAAoB,EAClB,EAAS,CAAC,EACV,EAAS,EAAO,UAAU,EAC5B,EAAS,GACb,KAAO,CAAC,GAAQ,CACZ,GAAM,CAAE,OAAM,SAAU,MAAM,EAAO,KAAK,EAK1C,GAJI,IACA,EAAO,KAAK,CAAK,EACjB,GAAqB,GAAO,YAAc,GAE1C,GAAqB,EACrB,MAEJ,EAAS,CACb,CACA,EAAO,YAAY,EACnB,IAAM,EAAY,IAAI,WAAW,KAAK,IAAI,EAAO,CAAiB,CAAC,EAC/D,EAAS,EACb,IAAK,IAAM,KAAS,EAAQ,CACxB,GAAI,EAAM,WAAa,EAAU,WAAa,EAAQ,CAClD,EAAU,IAAI,EAAM,SAAS,EAAG,EAAU,WAAa,CAAM,EAAG,CAAM,EACtE,KACJ,MAEI,EAAU,IAAI,EAAO,CAAM,EAE/B,GAAU,EAAM,MACpB,CACA,OAAO,CACX,CC9BA,IAAa,GAAa,GAAQ,mBAAmB,CAAG,EAAE,QAAQ,WAAY,GAAS,EACjF,IAAa,GAAM,IAAI,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,ICAtE,SAAgB,GAAiB,EAAO,CACpC,IAAM,EAAQ,CAAC,EACf,IAAK,IAAI,KAAO,OAAO,KAAK,CAAK,EAAE,KAAK,EAAG,CACvC,IAAM,EAAQ,EAAM,GAEpB,GADA,EAAM,GAAU,CAAG,EACf,MAAM,QAAQ,CAAK,EACnB,IAAK,IAAI,EAAI,EAAG,EAAO,EAAM,OAAQ,EAAI,EAAM,IAC3C,EAAM,KAAK,GAAG,EAAI,GAAG,GAAU,EAAM,EAAE,GAAG,MAG7C,CACD,IAAI,EAAU,GACV,GAAS,OAAO,GAAU,YAC1B,GAAW,IAAI,GAAU,CAAK,KAElC,EAAM,KAAK,CAAO,CACtB,CACJ,CACA,OAAO,EAAM,KAAK,GAAG,CACzB,CCpBA,SAAgB,GAAc,EAAK,EAAgB,CAC/C,OAAO,IAAI,QAAQ,EAAK,CAAc,CAC1C,CCFA,SAAgB,IAAe,EAAc,EAAG,CAC5C,OAAO,IAAI,SAAS,EAAS,IAAW,CAChC,GACA,eAAiB,CACb,IAAM,EAAmB,MAAM,mCAAmC,EAAY,IAAI,EAClF,EAAa,KAAO,eACpB,EAAO,CAAY,CACvB,EAAG,CAAW,CAEtB,CAAC,CACL,CCNA,IAAa,GAAmB,CAC5B,UAAW,MACf,EACa,IAAb,MAAa,CAAiB,CAC1B,OACA,eACA,OAAO,OAAO,EAAmB,CAI7B,OAHI,OAAO,GAAmB,QAAW,WAC9B,EAEJ,IAAI,EAAiB,CAAiB,CACjD,CACA,YAAY,EAAS,CACb,OAAO,GAAY,WACnB,KAAK,eAAiB,EAAQ,EAAE,KAAM,GAAS,GAAQ,CAAC,CAAC,GAGzD,KAAK,OAAS,GAAW,CAAC,EAC1B,KAAK,eAAiB,QAAQ,QAAQ,KAAK,MAAM,GAEjD,GAAiB,YAAc,SAC/B,GAAiB,UAAoB,OAAO,QAAY,KAAe,cAAe,GAAc,eAAe,EAE3H,CACA,SAAU,CACV,CACA,MAAM,OAAO,EAAS,CAAE,cAAa,kBAAmB,CAAC,EAAG,CACxD,IACI,CAAK,SAAS,MAAM,KAAK,eAE7B,IAAM,EAAqBC,GAAkB,KAAK,OAAO,eACnD,EAAY,KAAK,OAAO,YAAc,GACtC,EAAc,KAAK,OAAO,YAChC,GAAI,GAAa,QAAS,CACtB,IAAM,EAAa,GAAgB,CAAW,EAC9C,OAAO,QAAQ,OAAO,CAAU,CACpC,CACA,IAAI,EAAO,EAAQ,KACb,EAAc,GAAiB,EAAQ,OAAS,CAAC,CAAC,EACpD,IACA,GAAQ,IAAI,KAEZ,EAAQ,WACR,GAAQ,IAAI,EAAQ,YAExB,IAAI,EAAO,IACP,EAAQ,UAAY,MAAQ,EAAQ,UAAY,QAGhD,EAAO,GAFU,EAAQ,UAAY,GAElB,GADF,EAAQ,UAAY,GACN,IAEnC,GAAM,CAAE,OAAM,UAAW,EACnB,EAAM,GAAG,EAAQ,SAAS,IAAI,IAAO,EAAQ,WAAW,EAAO,IAAI,IAAS,KAAK,IACjF,EAAO,IAAW,OAAS,IAAW,OAAS,OAAY,EAAQ,KACnE,EAAiB,CACnB,OACA,QAAS,IAAI,QAAQ,EAAQ,OAAO,EAC5B,SACR,aACJ,EACI,KAAK,QAAQ,QACb,EAAe,MAAQ,KAAK,OAAO,OAEnC,IACA,EAAe,OAAS,QAExB,OAAO,gBAAoB,MAC3B,EAAe,OAAS,GAExB,GAAiB,YACjB,EAAe,UAAY,GAE3B,OAAO,KAAK,OAAO,aAAgB,YACnC,OAAO,OAAO,EAAgB,KAAK,OAAO,YAAY,CAAO,CAAC,EAElE,IAAI,MAAkC,CAAE,EAClC,EAAe,GAAc,EAAK,CAAc,EAChD,EAAiB,CACnB,MAAM,CAAY,EAAE,KAAM,GAAa,CACnC,IAAM,EAAe,EAAS,QACxB,EAAqB,CAAC,EAC5B,IAAK,IAAM,KAAQ,EAAa,QAAQ,EACpC,EAAmB,EAAK,IAAM,EAAK,GAavC,OAX0B,EAAS,MAAQ,KAEhC,EAAS,KAAK,EAAE,KAAM,IAAU,CACnC,SAAU,IAAI,GAAa,CACvB,QAAS,EACT,OAAQ,EAAS,WACjB,WAAY,EAAS,OACrB,MACJ,CAAC,CACL,EAAE,EAEC,CACH,SAAU,IAAI,GAAa,CACvB,QAAS,EACT,OAAQ,EAAS,WACjB,WAAY,EAAS,OACrB,KAAM,EAAS,IACnB,CAAC,CACL,CACJ,CAAC,EACDC,IAAiB,CAAkB,CACvC,EAiBA,OAhBI,GACA,EAAe,KAAK,IAAI,SAAS,EAAS,IAAW,CACjD,IAAM,MAAgB,CAElB,EADmB,GAAgB,CACnB,CAAC,CACrB,EACA,GAAI,OAAO,EAAY,kBAAqB,WAAY,CACpD,IAAM,EAAS,EACf,EAAO,iBAAiB,QAAS,EAAS,CAAE,KAAM,EAAK,CAAC,EACxD,MAAkC,EAAO,oBAAoB,QAAS,CAAO,CACjF,MAEI,EAAY,QAAU,CAE9B,CAAC,CAAC,EAEC,QAAQ,KAAK,CAAc,EAAE,QAAQ,CAAyB,CACzE,CACA,uBAAuB,EAAK,EAAO,CAC/B,KAAK,OAAS,OACd,KAAK,eAAiB,KAAK,eAAe,KAAM,IAC5C,EAAO,GAAO,EACP,EACV,CACL,CACA,oBAAqB,CACjB,OAAO,KAAK,QAAU,CAAC,CAC3B,CACJ,EACA,SAAS,GAAgB,EAAa,CAClC,IAAM,EAAS,GAAe,OAAO,GAAgB,UAAY,WAAY,EACvE,EAAY,OACZ,OACN,GAAI,EAAQ,CACR,GAAI,aAAkB,MAAO,CACzB,IAAM,EAAiB,MAAM,iBAAiB,EAG9C,MAFA,GAAW,KAAO,aAClB,EAAW,MAAQ,EACZ,CACX,CACA,IAAM,EAAiB,MAAM,OAAO,CAAM,CAAC,EAE3C,MADA,GAAW,KAAO,aACX,CACX,CACA,IAAM,EAAiB,MAAM,iBAAiB,EAE9C,MADA,GAAW,KAAO,aACX,CACX,CC5JA,IAAa,GAAkB,KAAO,IAC7B,OAAO,MAAS,YAAc,aAAkB,MAAS,EAAO,aAAa,OAAS,OACnF,KAAK,UAAU,cAAgB,OAG5B,IAAY,CAAM,EAFd,IAAI,WAAW,MAAM,EAAO,YAAY,CAAC,EAIjD,IAAc,CAAM,EAE/B,eAAe,IAAY,EAAM,CAE7B,IAAM,EAAc,GAAW,MADV,IAAa,CAAI,CACD,EACrC,OAAO,IAAI,WAAW,CAAW,CACrC,CACA,eAAe,IAAc,EAAQ,CACjC,IAAM,EAAS,CAAC,EACV,EAAS,EAAO,UAAU,EAC5B,EAAS,GACT,EAAS,EACb,KAAO,CAAC,GAAQ,CACZ,GAAM,CAAE,OAAM,SAAU,MAAM,EAAO,KAAK,EACtC,IACA,EAAO,KAAK,CAAK,EACjB,GAAU,EAAM,QAEpB,EAAS,CACb,CACA,IAAM,EAAY,IAAI,WAAW,CAAM,EACnC,EAAS,EACb,IAAK,IAAM,KAAS,EAChB,EAAU,IAAI,EAAO,CAAM,EAC3B,GAAU,EAAM,OAEpB,OAAO,CACX,CACA,SAAS,IAAa,EAAM,CACxB,OAAO,IAAI,SAAS,EAAS,IAAW,CACpC,IAAM,EAAS,IAAI,WACnB,EAAO,cAAkB,CACrB,GAAI,EAAO,aAAe,EACtB,OAAO,EAAW,MAAM,0BAA0B,CAAC,EAEvD,IAAM,EAAU,EAAO,QAAU,GAC3B,EAAa,EAAO,QAAQ,GAAG,EAC/B,EAAa,EAAa,GAAK,EAAa,EAAI,EAAO,OAC7D,EAAQ,EAAO,UAAU,CAAU,CAAC,CACxC,EACA,EAAO,YAAgB,EAAW,MAAM,cAAc,CAAC,EACvD,EAAO,YAAgB,EAAO,EAAO,KAAK,EAC1C,EAAO,cAAc,CAAI,CAC7B,CAAC,CACL,CCpDA,IAAM,GAAe,CAAC,EAChB,GAAe,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAI,IAAK,IAAK,CAC1B,IAAI,EAAc,EAAE,SAAS,EAAE,EAAE,YAAY,EACzC,EAAY,SAAW,IACvB,EAAc,IAAI,KAEtB,GAAa,GAAK,EAClB,GAAa,GAAe,CAChC,CACA,SAAgB,GAAQ,EAAS,CAC7B,GAAI,EAAQ,OAAS,GAAM,EACvB,MAAU,MAAM,qDAAqD,EAEzE,IAAM,EAAM,IAAI,WAAW,EAAQ,OAAS,CAAC,EAC7C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EAAG,CACxC,IAAM,EAAc,EAAQ,MAAM,EAAG,EAAI,CAAC,EAAE,YAAY,EACxD,GAAI,KAAe,GACf,EAAI,EAAI,GAAK,GAAa,QAG1B,MAAU,MAAM,uCAAuC,EAAY,gBAAgB,CAE3F,CACA,OAAO,CACX,CACA,SAAgB,GAAM,EAAO,CACzB,IAAI,EAAM,GACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,WAAY,IAClC,GAAO,GAAa,EAAM,IAE9B,OAAO,CACX,CC3BA,IAAM,GAAsC,2CAC/B,GAAkB,GAAW,CACtC,GAAI,CAAC,GAAe,CAAM,GAAK,CAACF,GAAiB,CAAM,EAAG,CACtD,IAAM,EAAO,GAAQ,WAAW,aAAa,MAAQ,EACrD,MAAU,MAAM,wEAAwE,GAAM,CAClG,CACA,IAAI,EAAc,GACZ,EAAuB,SAAY,CACrC,GAAI,EACA,MAAU,MAAM,EAAmC,EAGvD,MADA,GAAc,GACP,MAAM,GAAgB,CAAM,CACvC,EACM,EAAmB,GAAS,CAC9B,GAAI,OAAO,EAAK,QAAW,WACvB,MAAU,MAAM;yIAC8H,EAElJ,OAAO,EAAK,OAAO,CACvB,EACA,OAAO,OAAO,OAAO,EAAQ,CACH,uBACtB,kBAAmB,KAAO,IAAa,CACnC,IAAM,EAAM,MAAM,EAAqB,EACvC,GAAI,IAAa,SACb,OAAO,GAAS,CAAG,EAElB,GAAI,IAAa,MAClB,OAAO,GAAM,CAAG,EAEf,GAAI,IAAa,QAAa,IAAa,QAAU,IAAa,QACnE,OAAO,GAAO,CAAG,EAEhB,GAAI,OAAO,aAAgB,WAC5B,OAAO,IAAI,YAAY,CAAQ,EAAE,OAAO,CAAG,EAG3C,MAAU,MAAM,sEAAsE,CAE9F,EACA,yBAA4B,CACxB,GAAI,EACA,MAAU,MAAM,EAAmC,EAGvD,GADA,EAAc,GACV,GAAe,CAAM,EACrB,OAAO,EAAgB,CAAM,EAE5B,GAAIA,GAAiB,CAAM,EAC5B,OAAO,EAGP,MAAU,MAAM,+CAA+C,GAAQ,CAE/E,CACJ,CAAC,CACL,EACM,GAAkB,GAAW,OAAO,MAAS,YAAc,aAAkB,KC/DnF,eAAsB,IAAY,EAAQ,CAKtC,OAJI,OAAO,EAAO,QAAW,aACzB,EAAS,EAAO,OAAO,GAGpBG,EAAe,IAAI,CAC9B,CCLA,IAAa,KAAkC,EAAO,CAAE,0BAAyB,yBAAwB,gCAAiC,CACtI,GAAI,CAAC,EACD,OAAO,IAA+B,GAA2B,gBAAkB,EAC7E,GACA,OAEL,KAAM,GAIX,OAD0B,EAAM,EAEpC,ECXa,GAA2B,GAAc,IAAc,GAAkB,IAAM,cAAgB,kBAAkB,EAAU,YAAY,ICDvIC,KAAa,EAAQ,IAAY,CAC1C,IAAM,EAAe,EAAO,YAAY,EACxC,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EACxC,GAAI,IAAiB,EAAW,YAAY,EACxC,MAAO,GAGf,MAAO,EACX,ECRa,KAAuB,EAAc,IAAY,CAC1D,IAAM,EAAqB,EAAa,YAAY,EACpD,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EACxC,GAAI,EAAW,YAAY,EAAE,WAAW,CAAkB,EACtD,MAAO,GAGf,MAAO,EACX,ECRa,GAAiB,GAAS,OAAO,aAAgB,YAAc,aAAe,aACvF,OAAO,UAAU,SAAS,KAAK,CAAG,IAAM,uBCA/B,GAAe,GAAS,IAAS,QAAa,OAAO,GAAS,UAAY,CAAC,YAAY,OAAO,CAAI,GAAK,CAAC,GAAc,CAAI,ECiHvI,SAAgB,GAAU,EAAS,EAAY,EAAG,EAAW,CAC3D,SAAS,EAAM,EAAO,CAAE,OAAO,aAAiB,EAAI,EAAQ,IAAI,EAAE,SAAU,EAAS,CAAE,EAAQ,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAK,CAAM,GAAI,SAAU,SAAU,EAAS,EAAQ,CACvD,SAAS,EAAU,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,CAAK,CAAC,CAAG,OAAS,EAAG,CAAE,EAAO,CAAC,CAAG,CAAE,CAC1F,SAAS,EAAS,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,CAAK,CAAC,CAAG,OAAS,EAAG,CAAE,EAAO,CAAC,CAAG,CAAE,CAC7F,SAAS,EAAK,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,KAAK,EAAI,EAAM,EAAO,KAAK,EAAE,KAAK,EAAW,CAAQ,CAAG,CAC7G,GAAM,EAAY,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACH,CAEA,SAAgB,GAAY,EAAS,EAAM,CACzC,IAAI,EAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,MAAM,EAAE,GAAI,OAAO,EAAE,EAAI,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAAI,OAAO,QAAQ,OAAO,UAAa,WAAa,SAAW,QAAQ,SAAS,EAC/L,MAAO,GAAE,KAAO,EAAK,CAAC,EAAG,EAAE,MAAW,EAAK,CAAC,EAAG,EAAE,OAAY,EAAK,CAAC,EAAG,OAAO,QAAW,aAAe,EAAE,OAAO,UAAY,UAAW,CAAE,OAAO,IAAM,GAAI,EAC1J,SAAS,EAAK,EAAG,CAAE,OAAO,SAAU,EAAG,CAAE,OAAO,EAAK,CAAC,EAAG,CAAC,CAAC,CAAG,CAAG,CACjE,SAAS,EAAK,EAAI,CACd,GAAI,EAAG,MAAU,UAAU,iCAAiC,EAC5D,KAAO,IAAM,EAAI,EAAG,EAAG,KAAO,EAAI,IAAK,GAAG,GAAI,CAC1C,GAAI,EAAI,EAAG,IAAM,EAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,SAAc,EAAI,EAAE,SAAc,EAAE,KAAK,CAAC,EAAG,GAAK,EAAE,OAAS,EAAE,EAAI,EAAE,KAAK,EAAG,EAAG,EAAE,GAAG,KAAM,OAAO,EAE3J,OADI,EAAI,EAAG,IAAG,EAAK,CAAC,EAAG,GAAK,EAAG,EAAE,KAAK,GAC9B,EAAG,GAAX,CACI,IAAK,GAAG,IAAK,GAAG,EAAI,EAAI,MACxB,IAAK,GAAc,MAAX,GAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,EAAM,EACtD,IAAK,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,CAAC,EAAG,SACxC,IAAK,GAAG,EAAK,EAAE,IAAI,IAAI,EAAG,EAAE,KAAK,IAAI,EAAG,SACxC,QACI,IAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,OAAQ,EAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAI,EAAG,KAAO,IAAM,CAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,CAAE,EAAG,KAAO,CAC9D,EAAE,IAAI,EAAE,IAAI,IAAI,EACpB,EAAE,KAAK,IAAI,EAAG,QACtB,CACA,EAAK,EAAK,KAAK,EAAS,CAAC,CAC7B,OAAS,EAAG,CAAE,EAAK,CAAC,EAAG,CAAC,EAAG,EAAI,CAAG,QAAU,CAAE,EAAI,EAAI,CAAG,CACzD,GAAI,EAAG,GAAK,EAAG,MAAM,EAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,IAAK,GAAG,KAAM,EAAK,CACnF,CACF,CAkBA,SAAgB,GAAS,EAAG,CAC1B,IAAI,EAAI,OAAO,QAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,OAAO,EAAE,KAAK,CAAC,EACtB,GAAI,GAAK,OAAO,EAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CAEd,OADI,GAAK,GAAK,EAAE,SAAQ,EAAI,IAAK,IAC1B,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,CAAE,CAC1C,CACJ,EACA,MAAU,UAAU,EAAI,0BAA4B,iCAAiC,CACvF,CC9KA,IAAIL,IAAW,OAAO,OAAW,KAAe,OAAO,KACjD,SAAU,EAAO,CAAE,OAAO,OAAO,KAAK,EAAO,MAAM,CAAG,ECLnC,GAAU,IAAI,YAAY,EAAE,OAAO,CAAK,EDOjE,SAAgBM,GAAgB,EAAM,CAUlC,OARI,aAAgB,WACT,EACP,OAAO,GAAS,SACTN,IAAS,CAAI,EAEpB,YAAY,OAAO,CAAI,EAChB,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAE/F,IAAI,WAAW,CAAI,CAC9B,CEhBA,SAAgBO,GAAY,EAAM,CAI9B,OAHI,OAAO,GAAS,SACT,EAAK,SAAW,EAEpB,EAAK,aAAe,CAC/B,CCLA,SAAgB,GAAW,EAAK,CAC5B,OAAO,IAAI,WAAW,EACjB,EAAM,aAAe,IACrB,EAAM,WAAe,IACrB,EAAM,QAAe,EACtB,EAAM,GACV,CAAC,CACL,CCNA,SAAgB,GAAgB,EAAe,CAC3C,GAAI,CAAC,YAAY,KAAM,CAGnB,IAFA,IAAI,EAAe,IAAI,YAAY,EAAc,MAAM,EACnD,EAAU,EACP,EAAU,EAAc,QAC3B,EAAa,GAAW,EAAc,GACtC,GAAW,EAEf,OAAO,CACX,CACA,OAAO,YAAY,KAAK,CAAa,CACzC,CCTA,IAAI,IAA2B,UAAY,CACvC,SAAS,GAAY,CACjB,KAAK,OAAS,IAAI,EACtB,CAgBA,MAfA,GAAU,UAAU,OAAS,SAAU,EAAQ,CACvCA,GAAY,CAAM,GAEtB,KAAK,OAAO,OAAOD,GAAgB,CAAM,CAAC,CAC9C,EACA,EAAU,UAAU,OAAS,UAAY,CACrC,OAAO,GAAU,KAAM,IAAK,GAAG,IAAK,GAAG,UAAY,CAC/C,OAAO,GAAY,KAAM,SAAU,EAAI,CACnC,MAAO,CAAC,EAAc,GAAW,KAAK,OAAO,OAAO,CAAC,CAAC,CAC1D,CAAC,CACL,CAAC,CACL,EACA,EAAU,UAAU,MAAQ,UAAY,CACpC,KAAK,OAAS,IAAI,EACtB,EACO,CACX,EAAE,EClBE,GAAwB,UAAY,CACpC,SAAS,GAAS,CACd,KAAK,SAAW,UACpB,CAsBA,MArBA,GAAO,UAAU,OAAS,SAAU,EAAM,CACtC,IAAI,EAAK,EACT,GAAI,CACA,IAAK,IAAI,EAAS,GAAS,CAAI,EAAG,EAAW,EAAO,KAAK,EAAG,CAAC,EAAS,KAAM,EAAW,EAAO,KAAK,EAAG,CAClG,IAAI,EAAO,EAAS,MACpB,KAAK,SACA,KAAK,WAAa,EAAKE,KAAa,KAAK,SAAW,GAAQ,IACrE,CACJ,OACO,EAAO,CAAE,EAAM,CAAE,MAAO,CAAM,CAAG,QAChC,CACJ,GAAI,CACI,GAAY,CAAC,EAAS,OAAS,EAAK,EAAO,SAAS,EAAG,KAAK,CAAM,CAC1E,QACQ,CAAE,GAAI,EAAK,MAAM,EAAI,KAAO,CACxC,CACA,OAAO,IACX,EACA,EAAO,UAAU,OAAS,UAAY,CAClC,OAAQ,KAAK,SAAW,cAAgB,CAC5C,EACO,CACX,EAAE,EAqCEA,IAAc,GAAgB,CAjC9B,EAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WACpF,WAAY,UAAY,UAAY,WAAY,SAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAE1C,CAAC,ECtEzC,QAA+B,CACjC,IACM,EAAa,MAAM,CAAW,EACpC,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAa,IAAS,CAC9C,IAAM,EAAY,MAAM,GAAG,EAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,IAAK,IAAK,CAC1B,IAAI,EAAM,OAAO,CAAC,EAClB,IAAK,IAAI,EAAI,EAAG,EAAI,GAAK,EAAQ,GAAI,IAC7B,EAAM,GACN,EAAO,GAAO,GAAM,sBAGpB,IAAa,GAGrB,EAAM,EAAI,GAAK,OAAQ,GAAO,IAAO,WAAW,EAChD,EAAM,EAAI,EAAI,GAAK,OAAO,EAAM,WAAW,CAC/C,CACA,EAAO,GAAS,IAAI,YAAY,CAAK,CACzC,CACA,OAAO,CACX,EACI,GACA,GAAI,GAAI,GAAI,GACZ,GAAI,GAAI,GAAI,GACV,QAAgC,CAC7B,KACD,GAA4B,IAAuB,EACnD,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAM,GAE3C,EACa,IAAb,KAAuB,CACnB,GAAK,EACL,GAAK,EACL,aAAc,CACV,IAAwB,EACxB,KAAK,MAAM,CACf,CACA,OAAO,EAAM,CACT,IAAM,EAAM,EAAK,OACb,EAAI,EACJ,EAAO,KAAK,GACZ,EAAO,KAAK,GAChB,KAAO,EAAI,GAAK,GAAK,CACjB,IAAM,IAAS,EAAO,EAAK,MAAQ,MAAQ,EACrC,IAAU,IAAS,EAAK,EAAK,MAAQ,MAAQ,EAC7C,IAAU,IAAS,GAAM,EAAK,MAAQ,MAAQ,EAC9C,IAAU,IAAS,GAAM,EAAK,MAAQ,MAAQ,EAC9C,IAAS,EAAO,EAAK,MAAQ,MAAQ,EACrC,IAAU,IAAS,EAAK,EAAK,MAAQ,MAAQ,EAC7C,IAAU,IAAS,GAAM,EAAK,MAAQ,MAAQ,EAC9C,IAAU,IAAS,GAAM,EAAK,MAAQ,MAAQ,EACpD,EAAO,GAAG,GAAQ,GAAG,GAAQ,GAAG,GAAQ,GAAG,GAAQ,GAAG,GAAQ,GAAG,GAAQ,GAAG,GAAQ,GAAG,GACvF,EACI,GAAG,EAAO,GACN,GAAG,EAAO,GACV,GAAG,EAAO,GACV,GAAG,EAAO,GACV,GAAG,EAAO,GACV,GAAG,EAAO,GACV,GAAG,EAAO,GACV,GAAG,EAAO,EACtB,CACA,KAAO,EAAI,GAAK,CACZ,IAAM,IAAQ,EAAO,EAAK,IAAM,MAAQ,EACxC,GAAS,IAAS,GAAO,EAAO,MAAQ,MAAS,EACjD,EAAQ,IAAS,EAAK,GAAG,GACzB,GAAQ,GAAG,EAAM,GACjB,GACJ,CACA,KAAK,GAAK,EACV,KAAK,GAAK,CACd,CACA,MAAM,QAAS,CACX,IAAM,EAAK,KAAK,GAAK,WACf,EAAK,KAAK,GAAK,WACrB,OAAO,IAAI,WAAW,CAClB,IAAO,GACN,IAAO,GAAM,IACb,IAAO,EAAK,IACb,EAAK,IACL,IAAO,GACN,IAAO,GAAM,IACb,IAAO,EAAK,IACb,EAAK,GACT,CAAC,CACL,CACA,OAAQ,CACJ,KAAK,GAAK,WACV,KAAK,GAAK,UACd,CACJ,EC3Fa,GAAwB,CACjC,aAAc,IAClB,ECGI,IAA0B,UAAY,CACtC,SAAS,GAAW,CAChB,KAAK,MAAQ,IAAI,EACrB,CAgBA,MAfA,GAAS,UAAU,OAAS,SAAU,EAAQ,CACtCD,GAAY,CAAM,GAEtB,KAAK,MAAM,OAAOD,GAAgB,CAAM,CAAC,CAC7C,EACA,EAAS,UAAU,OAAS,UAAY,CACpC,OAAO,GAAU,KAAM,IAAK,GAAG,IAAK,GAAG,UAAY,CAC/C,OAAO,GAAY,KAAM,SAAU,EAAI,CACnC,MAAO,CAAC,EAAc,GAAW,KAAK,MAAM,OAAO,CAAC,CAAC,CACzD,CAAC,CACL,CAAC,CACL,EACA,EAAS,UAAU,MAAQ,UAAY,CACnC,KAAK,MAAQ,IAAI,EACrB,EACO,CACX,EAAE,ECpBE,GAAuB,UAAY,CACnC,SAAS,GAAQ,CACb,KAAK,SAAW,UACpB,CAsBA,MArBA,GAAM,UAAU,OAAS,SAAU,EAAM,CACrC,IAAI,EAAK,EACT,GAAI,CACA,IAAK,IAAI,EAAS,GAAS,CAAI,EAAG,EAAW,EAAO,KAAK,EAAG,CAAC,EAAS,KAAM,EAAW,EAAO,KAAK,EAAG,CAClG,IAAI,EAAO,EAAS,MACpB,KAAK,SACA,KAAK,WAAa,EAAK,KAAa,KAAK,SAAW,GAAQ,IACrE,CACJ,OACO,EAAO,CAAE,EAAM,CAAE,MAAO,CAAM,CAAG,QAChC,CACJ,GAAI,CACI,GAAY,CAAC,EAAS,OAAS,EAAK,EAAO,SAAS,EAAG,KAAK,CAAM,CAC1E,QACQ,CAAE,GAAI,EAAK,MAAM,EAAI,KAAO,CACxC,CACA,OAAO,IACX,EACA,EAAM,UAAU,OAAS,UAAY,CACjC,OAAQ,KAAK,SAAW,cAAgB,CAC5C,EACO,CACX,EAAE,EAqEE,IAAc,GAAgB,CAjE9B,EAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,SAEM,CAAC,ECnGlC,QAA0C,ICA1C,IAA8B,CACvC,GAAkB,MAClB,GAAkB,OAClB,GAAkB,UAClB,GAAkB,KAClB,GAAkB,MACtB,EACa,GAA4B,CACrC,GAAkB,OAClB,GAAkB,KAClB,GAAkB,MAClB,GAAkB,OAClB,GAAkB,SACtB,ECTa,IAAmC,EAAmB,IAAW,CAC1E,GAAM,CAAE,qBAAqB,CAAC,GAAM,EACpC,OAAQ,EAAR,CACI,KAAK,GAAkB,IACnB,OAAO,GAAoB,KAAO,EAAO,IAC7C,KAAK,GAAkB,MACnB,OAAO,GAAoB,OAAS,IAAkC,EAC1E,KAAK,GAAkB,OACnB,OAAO,GAAoB,QAAU,IACzC,KAAK,GAAkB,UAInB,OAHI,OAAO,GAAsB,cAAiB,WAG3C,GAAoB,WAAa,GAAsB,aAFnD,GAAoB,WAAa,IAGhD,KAAK,GAAkB,KACnB,OAAO,GAAoB,MAAQ,EAAO,KAC9C,KAAK,GAAkB,OACnB,OAAO,GAAoB,QAAU,EAAO,OAChD,QACI,GAAI,IAAqB,GACrB,OAAO,EAAmB,GAE9B,MAAU,MAAM,2BAA2B,EAAkB,kDACvC,IAA4B,2EACJ,CACtD,CACJ,EC9Ba,IAAgB,EAAqB,IAAS,CACvD,IAAM,EAAO,IAAI,EAEjB,OADA,EAAK,OAAO,GAAa,GAAQ,EAAE,CAAC,EAC7B,EAAK,OAAO,CACvB,ECMa,IAAqC,CAC9C,KAAM,8BACN,KAAM,QACN,KAAM,CAAC,eAAe,EACtB,SAAU,EACd,EACa,KAA+B,EAAQ,KAAsB,EAAM,IAAY,KAAO,IAAS,CAIxG,GAHI,CAAC,GAAY,WAAW,EAAK,OAAO,GAGpC,IAAoB,kBAAmB,EAAK,QAAQ,OAAO,EAC3D,OAAO,EAAK,CAAI,EAEpB,GAAM,CAAE,UAAS,SAAU,EACrB,CAAE,KAAM,EAAa,WAAY,EACjC,CAAE,gBAAe,gBAAiB,EAClC,CAAE,0BAAyB,0BAA2B,EACtD,EAA6B,MAAM,EAAO,2BAA2B,EACrE,EAA6B,GAAwB,KACrD,EAAmC,GAAwB,WAC7D,GAA8B,CAAC,EAAM,KACjC,IAA+B,GAA2B,gBAAkB,KAC5E,EAAM,GAA8B,GAChC,IACA,EAAQ,GAAoC,KAIxD,IAAM,EAAoB,IAA+B,EAAO,CAC5D,0BACA,uBAAwB,GAAwB,KAChD,4BACJ,CAAC,EACG,EAAc,EACd,EAAiB,EACrB,GAAI,EAAmB,CACnB,OAAQ,EAAR,CACI,KAAK,GAAkB,MACnB,GAAW,EAAS,+BAAgC,GAAG,EACvD,MACJ,KAAK,GAAkB,OACnB,GAAW,EAAS,gCAAiC,GAAG,EACxD,MACJ,KAAK,GAAkB,UACnB,GAAW,EAAS,+BAAgC,GAAG,EACvD,MACJ,KAAK,GAAkB,KACnB,GAAW,EAAS,8BAA+B,GAAG,EACtD,MACJ,KAAK,GAAkB,OACnB,GAAW,EAAS,gCAAiC,GAAG,EACxD,KACR,CACA,IAAM,EAAuB,GAAwB,CAAiB,EAChE,EAAsB,GAAgC,EAAmB,CAAM,EACrF,GAAI,GAAY,CAAW,EAAG,CAC1B,GAAM,CAAE,8BAA6B,qBAAsB,EAC3D,EAAc,EAA4B,OAAO,EAAO,yBAA4B,UAAY,EAAO,yBAA2B,EAAI,KAChI,IAAuB,EAAa,EAAO,wBAAyB,EAAQ,MAAM,EAClF,EAAa,CACf,gBACA,oBACA,uBACA,sBACA,cACJ,CAAC,EACD,EAAiB,CACb,GAAG,EACH,mBAAoB,EAAQ,oBACtB,GAAG,EAAQ,oBAAoB,cAC/B,cACN,oBAAqB,UACrB,+BAAgC,EAAQ,kBACxC,uBAAwB,qCACxB,gBAAiB,CACrB,EACA,OAAO,EAAe,iBAC1B,MACK,GAAI,CAACD,IAAU,EAAsB,CAAO,EAAG,CAChD,IAAM,EAAc,MAAM,GAAa,EAAqB,CAAW,EACvE,EAAiB,CACb,GAAG,GACF,GAAuB,EAAc,CAAW,CACrD,CACJ,CACJ,CACA,GAAI,CASA,OAAO,MARc,EAAK,CACtB,GAAG,EACH,QAAS,CACL,GAAG,EACH,QAAS,EACT,KAAM,CACV,CACJ,CAAC,CAEL,OACO,EAAG,CACN,GAAI,aAAa,OAAS,EAAE,OAAS,wBACjC,GAAI,CACK,EAAE,QAAQ,SAAS,GAAG,IACvB,EAAE,SAAW,KAEjB,EAAE,SACE,0HACR,MACgB,CAChB,CAEJ,MAAM,CACV,CACJ,ECxHa,IAA0C,CACnD,KAAM,mCACN,aAAc,uBACd,SAAU,SACV,KAAM,CAAC,eAAe,EACtB,SAAU,EACd,EACa,KAAoC,EAAQ,KAAsB,EAAM,IAAY,KAAO,IAAS,CAC7G,IAAM,EAAQ,EAAK,MACb,CAAE,+BAAgC,EAClC,EAA6B,MAAM,EAAO,2BAA2B,EACrE,EAA6B,MAAM,EAAO,2BAA2B,EAC3E,OAAQ,EAAR,CACI,KAAK,GAA2B,cAC5B,GAAW,EAAS,uCAAwC,GAAG,EAC/D,MACJ,KAAK,GAA2B,eAC5B,GAAW,EAAS,wCAAyC,GAAG,EAChE,KACR,CACA,OAAQ,EAAR,CACI,KAAK,GAA2B,cAC5B,GAAW,EAAS,uCAAwC,GAAG,EAC/D,MACJ,KAAK,GAA2B,eAC5B,GAAW,EAAS,wCAAyC,GAAG,EAChE,KACR,CAMA,OALI,GAA+B,CAAC,EAAM,IAClC,IAA+B,GAA2B,iBAC1D,EAAM,GAA+B,WAGtC,EAAK,CAAI,CACpB,ECnCa,IAAuC,EAAqB,CAAC,IAAM,CAC5E,IAAM,EAA0B,CAAC,EAC7B,EAAI,GAA0B,OAClC,IAAK,IAAM,KAAa,EAAoB,CACxC,IAAM,EAAW,GAA0B,QAAQ,CAAS,EACxD,IAAa,GAIb,EAAwB,KAAO,EAH/B,EAAwB,GAAY,CAK5C,CACA,OAAO,EAAwB,OAAO,OAAO,CACjD,ECda,IAA4B,GAAa,CAClD,IAAM,EAAkB,EAAS,YAAY,GAAG,EAChD,GAAI,IAAoB,GAAI,CACxB,IAAM,EAAa,EAAS,MAAM,EAAkB,CAAC,EACrD,GAAI,CAAC,EAAW,WAAW,GAAG,EAAG,CAC7B,IAAM,EAAS,SAAS,EAAY,EAAE,EACtC,GAAI,CAAC,MAAM,CAAM,GAAK,GAAU,GAAK,GAAU,IAC3C,MAAO,EAEf,CACJ,CACA,MAAO,EACX,ECXa,IAAc,MAAO,EAAM,CAAE,sBAAqB,mBAAoB,EAAc,MAAM,GAAa,EAAqB,CAAI,CAAC,ECMjI,IAA+B,MAAO,EAAU,CAAE,SAAQ,qBAAoB,YAAa,CACpG,IAAM,EAAqB,GAAoC,CAAkB,EAC3E,CAAE,KAAM,EAAc,QAAS,GAAoB,EACzD,IAAK,IAAM,KAAa,EAAoB,CACxC,IAAM,EAAiB,GAAwB,CAAS,EAClD,EAAuB,EAAgB,GAC7C,GAAI,EAAsB,CACtB,IAAI,EACJ,GAAI,CACA,EAAsB,GAAgC,EAAW,CAAM,CAC3E,OACO,EAAO,CACV,GAAI,IAAc,GAAkB,UAAW,CAC3C,GAAQ,KAAK,YAAY,GAAkB,UAAU,wBAAwB,EAAM,SAAS,EAC5F,QACJ,CACA,MAAM,CACV,CACA,GAAM,CAAE,iBAAkB,EAC1B,GAAI,GAAY,CAAY,EAAG,CAC3B,EAAS,KAAO,IAAqB,CACjC,iBAAkB,EAClB,uBAAwB,EACxB,SAAU,IAAI,EACd,OAAQ,EACR,eACJ,CAAC,EACD,MACJ,CACA,IAAM,EAAW,MAAM,IAAY,EAAc,CAAE,sBAAqB,eAAc,CAAC,EACvF,GAAI,IAAa,EACb,MAEJ,MAAU,MAAM,gCAAgC,EAAS,kBAAkB,EAAqB,wBACpE,EAAe,GAAG,CAClD,CACJ,CACJ,ECvCa,IAA6C,CACtD,KAAM,sCACN,aAAc,yBACd,SAAU,QACV,KAAM,CAAC,eAAe,EACtB,SAAU,EACd,EACa,KAAuC,EAAQ,KAAsB,EAAM,IAAY,KAAO,IAAS,CAChH,GAAI,CAAC,GAAY,WAAW,EAAK,OAAO,EACpC,OAAO,EAAK,CAAI,EAEpB,IAAM,EAAQ,EAAK,MACb,EAAS,MAAM,EAAK,CAAI,EACxB,EAAW,EAAO,SAClB,CAAE,8BAA6B,sBAAuB,EAC5D,GAAI,GAA+B,EAAM,KAAiC,UAAW,CACjF,GAAM,CAAE,aAAY,eAAgB,EAC9B,EAA2B,OAAO,KAAK,EAAO,oBAAsB,CAAC,CAAC,EAAE,OAAQ,GAAc,CAChG,IAAM,EAAiB,GAAwB,CAAS,EACxD,OAAO,EAAS,QAAQ,KAAoB,MAChD,CAAC,EACK,EAAW,GAAoC,CACjD,GAAI,GAAsB,CAAC,EAC3B,GAAG,CACP,CAAC,EAQD,GAPoD,IAAe,YAC/D,IAAgB,oBAChB,EAAS,MAAO,GAAc,CAC1B,IAAM,EAAiB,GAAwB,CAAS,EAClD,EAAuB,EAAS,QAAQ,GAC9C,MAAO,CAAC,GAAwB,IAAyB,CAAoB,CACjF,CAAC,EAED,OAAO,EAEX,MAAM,IAA6B,EAAU,CACzC,SACA,mBAAoB,EACpB,OAAQ,EAAQ,MACpB,CAAC,CACL,CACA,OAAO,CACX,EC5Ca,IAA8B,EAAQ,KAAsB,CACrE,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAA4B,EAAQ,CAAgB,EAAG,GAAkC,EACzG,EAAY,cAAc,IAAiC,EAAQ,CAAgB,EAAG,GAAuC,EAC7H,EAAY,cAAc,IAAoC,EAAQ,CAAgB,EAAG,GAA0C,CACvI,CACJ,GCRa,GAAoB,GAAY,CAAgC,oBAA8B,CAAC,ECD/FI,GAAqB,GAAU,CACxC,GAAI,OAAO,GAAU,WACjB,OAAO,EACX,IAAM,EAAc,QAAQ,QAAQ,CAAK,EACzC,UAAa,CACjB,ECHa,IAAkC,GAAU,CACrD,GAAM,CAAE,6BAA4B,6BAA4B,2BAA4B,EAC5F,OAAO,OAAO,OAAO,EAAO,CACxB,2BAA4BA,GAAkB,GAA8B,GAAoC,EAChH,2BAA4BA,GAAkB,GAA8B,GAAoC,EAChH,wBAAyB,OAAO,GAA2B,CAAC,EAC5D,mBAAoB,EAAM,oBAAsB,CAAC,CACrD,CAAC,CACL,ECTA,SAAgB,IAAwB,EAAO,CAC3C,OAAO,CACX,CACA,IAAa,IAAwB,GAAa,GAAS,KAAO,IAAS,CACvE,GAAI,CAAC,GAAY,WAAW,EAAK,OAAO,EACpC,OAAO,EAAK,CAAI,EACpB,GAAM,CAAE,WAAY,EACd,CAAE,kBAAkB,IAAO,EAAQ,eAAe,UAAY,CAAC,EACrE,GAAI,EAAgB,QAAQ,IAAI,GAAK,GAAK,CAAC,EAAQ,QAAQ,cACvD,OAAO,EAAQ,QAAQ,KACvB,EAAQ,QAAQ,cAAgB,EAAQ,UAAY,EAAQ,KAAO,IAAM,EAAQ,KAAO,SAEvF,GAAI,CAAC,EAAQ,QAAQ,KAAS,CAC/B,IAAI,EAAO,EAAQ,SACf,EAAQ,MAAQ,OAChB,GAAQ,IAAI,EAAQ,QACxB,EAAQ,QAAQ,KAAU,CAC9B,CACA,OAAO,EAAK,CAAI,CACpB,EACa,IAA8B,CACvC,KAAM,uBACN,KAAM,QACN,SAAU,MACV,KAAM,CAAC,MAAM,EACb,SAAU,EACd,EACa,IAAuB,IAAa,CAC7C,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAqB,CAAO,EAAG,GAA2B,CAC9E,CACJ,GChCa,SAA0B,EAAM,IAAY,KAAO,IAAS,CACrE,GAAI,CACA,IAAM,EAAW,MAAM,EAAK,CAAI,EAC1B,CAAE,aAAY,cAAa,SAAQ,gCAAgC,CAAC,GAAM,EAC1E,CAAE,kCAAiC,oCAAqC,EACxE,EAA0B,GAAmC,EAAQ,wBACrE,EAA2B,GAAoC,EAAQ,yBACvE,CAAE,YAAW,GAAG,GAA0B,EAAS,OAQzD,OAPA,GAAQ,OAAO,CACX,aACA,cACA,MAAO,EAAwB,EAAK,KAAK,EACzC,OAAQ,EAAyB,CAAqB,EACtD,SAAU,CACd,CAAC,EACM,CACX,OACO,EAAO,CACV,GAAM,CAAE,aAAY,cAAa,SAAQ,gCAAgC,CAAC,GAAM,EAC1E,CAAE,mCAAoC,EACtC,EAA0B,GAAmC,EAAQ,wBAQ3E,MAPA,GAAQ,QAAQ,CACZ,aACA,cACA,MAAO,EAAwB,EAAK,KAAK,EACzC,QACA,SAAU,EAAM,SACpB,CAAC,EACK,CACV,CACJ,EACa,IAA0B,CACnC,KAAM,mBACN,KAAM,CAAC,QAAQ,EACf,KAAM,aACN,SAAU,EACd,EACa,IAAmB,IAAa,CACzC,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAiB,EAAG,GAAuB,CAC/D,CACJ,GCzCa,IAAsC,CAC/C,KAAM,QACN,KAAM,CAAC,qBAAqB,EAC5B,KAAM,+BACN,SAAU,GACV,SAAU,KACd,ECNa,QAAsC,GAAS,KAAO,IAAS,EAAK,CAAI,ECExE,IAA+B,IAAa,CACrD,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAA6B,EAAG,GAAmC,CACvF,CACJ,GCNM,IAAiB,EAAM,IAAY,CACrC,IAAM,EAAW,CAAC,EAIlB,GAHI,GACA,EAAS,KAAK,CAAI,EAElB,EACA,IAAK,IAAM,KAAS,EAChB,EAAS,KAAK,CAAK,EAG3B,OAAO,CACX,EACM,IAAgC,EAAM,IACjC,GAAG,GAAQ,cAAc,GAAW,EAAQ,OAAS,EAAI,YAAY,EAAQ,KAAK,GAAG,EAAE,GAAK,KAE1F,OAAuB,CAChC,IAAI,EAAkB,CAAC,EACnB,EAAkB,CAAC,EACnB,EAAoB,GAClB,EAAiB,IAAI,IACrB,EAAQ,GAAY,EAAQ,MAAM,EAAG,IAAM,GAAY,EAAE,MAAQ,GAAY,EAAE,OACjF,GAAgB,EAAE,UAAY,UAAY,GAAgB,EAAE,UAAY,SAAS,EAC/E,EAAgB,GAAa,CAC/B,IAAI,EAAY,GACV,EAAY,GAAU,CACxB,IAAM,EAAU,GAAc,EAAM,KAAM,EAAM,OAAO,EACvD,GAAI,EAAQ,SAAS,CAAQ,EAAG,CAC5B,EAAY,GACZ,IAAK,IAAM,KAAS,EAChB,EAAe,OAAO,CAAK,EAE/B,MAAO,EACX,CACA,MAAO,EACX,EAGA,MAFA,GAAkB,EAAgB,OAAO,CAAQ,EACjD,EAAkB,EAAgB,OAAO,CAAQ,EAC1C,CACX,EACM,EAAqB,GAAa,CACpC,IAAI,EAAY,GACV,EAAY,GAAU,CACxB,GAAI,EAAM,aAAe,EAAU,CAC/B,EAAY,GACZ,IAAK,IAAM,KAAS,GAAc,EAAM,KAAM,EAAM,OAAO,EACvD,EAAe,OAAO,CAAK,EAE/B,MAAO,EACX,CACA,MAAO,EACX,EAGA,MAFA,GAAkB,EAAgB,OAAO,CAAQ,EACjD,EAAkB,EAAgB,OAAO,CAAQ,EAC1C,CACX,EACM,EAAW,IACb,EAAgB,QAAS,GAAU,CAC/B,EAAQ,IAAI,EAAM,WAAY,CAAE,GAAG,CAAM,CAAC,CAC9C,CAAC,EACD,EAAgB,QAAS,GAAU,CAC/B,EAAQ,cAAc,EAAM,WAAY,CAAE,GAAG,CAAM,CAAC,CACxD,CAAC,EACD,EAAQ,oBAAoB,EAAM,kBAAkB,CAAC,EAC9C,GAEL,EAAgC,GAAS,CAC3C,IAAM,EAAyB,CAAC,EAkBhC,OAjBA,EAAK,OAAO,QAAS,GAAU,CACvB,EAAM,OAAO,SAAW,GAAK,EAAM,MAAM,SAAW,EACpD,EAAuB,KAAK,CAAK,EAGjC,EAAuB,KAAK,GAAG,EAA6B,CAAK,CAAC,CAE1E,CAAC,EACD,EAAuB,KAAK,CAAI,EAChC,EAAK,MAAM,QAAQ,EAAE,QAAS,GAAU,CAChC,EAAM,OAAO,SAAW,GAAK,EAAM,MAAM,SAAW,EACpD,EAAuB,KAAK,CAAK,EAGjC,EAAuB,KAAK,GAAG,EAA6B,CAAK,CAAC,CAE1E,CAAC,EACM,CACX,EACM,GAAqB,EAAQ,KAAU,CACzC,IAAM,EAA4B,CAAC,EAC7B,EAA4B,CAAC,EAC7B,EAA2B,CAAC,EAgDlC,OA/CA,EAAgB,QAAS,GAAU,CAC/B,IAAM,EAAkB,CACpB,GAAG,EACH,OAAQ,CAAC,EACT,MAAO,CAAC,CACZ,EACA,IAAK,IAAM,KAAS,GAAc,EAAgB,KAAM,EAAgB,OAAO,EAC3E,EAAyB,GAAS,EAEtC,EAA0B,KAAK,CAAe,CAClD,CAAC,EACD,EAAgB,QAAS,GAAU,CAC/B,IAAM,EAAkB,CACpB,GAAG,EACH,OAAQ,CAAC,EACT,MAAO,CAAC,CACZ,EACA,IAAK,IAAM,KAAS,GAAc,EAAgB,KAAM,EAAgB,OAAO,EAC3E,EAAyB,GAAS,EAEtC,EAA0B,KAAK,CAAe,CAClD,CAAC,EACD,EAA0B,QAAS,GAAU,CACzC,GAAI,EAAM,aAAc,CACpB,IAAM,EAAe,EAAyB,EAAM,cACpD,GAAI,IAAiB,OAAW,CAC5B,GAAI,EACA,OAEJ,MAAU,MAAM,GAAG,EAAM,aAAa,4BAC/B,GAA6B,EAAM,KAAM,EAAM,OAAO,EAAE,cAC7C,EAAM,SAAS,GAAG,EAAM,cAAc,CAC5D,CACI,EAAM,WAAa,SACnB,EAAa,MAAM,KAAK,CAAK,EAE7B,EAAM,WAAa,UACnB,EAAa,OAAO,KAAK,CAAK,CAEtC,CACJ,CAAC,EACiB,EAAK,CAAyB,EAC3C,IAAI,CAA4B,EAChC,QAAQ,EAAW,KACpB,EAAU,KAAK,GAAG,CAAsB,EACjC,GACR,CAAC,CACW,CACnB,EACM,EAAQ,CACV,KAAM,EAAY,EAAU,CAAC,IAAM,CAC/B,GAAM,CAAE,OAAM,WAAU,QAAS,GAAa,EACxC,EAAQ,CACV,KAAM,aACN,SAAU,SACV,aACA,GAAG,CACP,EACM,EAAU,GAAc,EAAM,CAAQ,EAC5C,GAAI,EAAQ,OAAS,EAAG,CACpB,GAAI,EAAQ,KAAM,GAAU,EAAe,IAAI,CAAK,CAAC,EAAG,CACpD,GAAI,CAAC,EACD,MAAU,MAAM,8BAA8B,GAA6B,EAAM,CAAQ,EAAE,EAAE,EACjG,IAAK,IAAM,KAAS,EAAS,CACzB,IAAM,EAAkB,EAAgB,UAAW,GAAU,EAAM,OAAS,GAAS,EAAM,SAAS,KAAM,GAAM,IAAM,CAAK,CAAC,EAC5H,GAAI,IAAoB,GACpB,SAEJ,IAAM,EAAa,EAAgB,GACnC,GAAI,EAAW,OAAS,EAAM,MAAQ,EAAM,WAAa,EAAW,SAChE,MAAU,MAAM,IAAI,GAA6B,EAAW,KAAM,EAAW,OAAO,EAAE,oBAC/E,EAAW,SAAS,eAAe,EAAW,KAAK,iCACjC,GAA6B,EAAM,CAAQ,EAAE,oBAC/D,EAAM,SAAS,eAAe,EAAM,KAAK,OAAO,EAE3D,EAAgB,OAAO,EAAiB,CAAC,CAC7C,CACJ,CACA,IAAK,IAAM,KAAS,EAChB,EAAe,IAAI,CAAK,CAEhC,CACA,EAAgB,KAAK,CAAK,CAC9B,EACA,eAAgB,EAAY,IAAY,CACpC,GAAM,CAAE,OAAM,WAAU,QAAS,GAAa,EACxC,EAAQ,CACV,aACA,GAAG,CACP,EACM,EAAU,GAAc,EAAM,CAAQ,EAC5C,GAAI,EAAQ,OAAS,EAAG,CACpB,GAAI,EAAQ,KAAM,GAAU,EAAe,IAAI,CAAK,CAAC,EAAG,CACpD,GAAI,CAAC,EACD,MAAU,MAAM,8BAA8B,GAA6B,EAAM,CAAQ,EAAE,EAAE,EACjG,IAAK,IAAM,KAAS,EAAS,CACzB,IAAM,EAAkB,EAAgB,UAAW,GAAU,EAAM,OAAS,GAAS,EAAM,SAAS,KAAM,GAAM,IAAM,CAAK,CAAC,EAC5H,GAAI,IAAoB,GACpB,SAEJ,IAAM,EAAa,EAAgB,GACnC,GAAI,EAAW,eAAiB,EAAM,cAAgB,EAAW,WAAa,EAAM,SAChF,MAAU,MAAM,IAAI,GAA6B,EAAW,KAAM,EAAW,OAAO,EAAE,eAC/E,EAAW,SAAS,IAAI,EAAW,aAAa,wCAC5C,GAA6B,EAAM,CAAQ,EAAE,eAAe,EAAM,SAAS,IAC9E,EAAM,aAAa,cAAc,EAE7C,EAAgB,OAAO,EAAiB,CAAC,CAC7C,CACJ,CACA,IAAK,IAAM,KAAS,EAChB,EAAe,IAAI,CAAK,CAEhC,CACA,EAAgB,KAAK,CAAK,CAC9B,EACA,UAAa,EAAQ,GAAe,CAAC,EACrC,IAAM,GAAW,CACb,EAAO,aAAa,CAAK,CAC7B,EACA,OAAS,GACD,OAAO,GAAa,SACb,EAAa,CAAQ,EAErB,EAAkB,CAAQ,EAEzC,YAAc,GAAa,CACvB,IAAI,EAAY,GACV,EAAY,GAAU,CACxB,GAAM,CAAE,OAAM,OAAM,QAAS,GAAa,EAC1C,GAAI,GAAQ,EAAK,SAAS,CAAQ,EAAG,CACjC,IAAM,EAAU,GAAc,EAAM,CAAQ,EAC5C,IAAK,IAAM,KAAS,EAChB,EAAe,OAAO,CAAK,EAG/B,MADA,GAAY,GACL,EACX,CACA,MAAO,EACX,EAGA,MAFA,GAAkB,EAAgB,OAAO,CAAQ,EACjD,EAAkB,EAAgB,OAAO,CAAQ,EAC1C,CACX,EACA,OAAS,GAAS,CACd,IAAM,EAAS,EAAQ,GAAe,CAAC,EAGvC,OAFA,EAAO,IAAI,CAAI,EACf,EAAO,kBAAkB,GAAqB,EAAO,kBAAkB,IAAM,EAAK,oBAAoB,GAAK,GAAM,EAC1G,CACX,EACA,aAAc,EACd,aACW,EAAkB,EAAI,EAAE,IAAK,GAAO,CACvC,IAAM,EAAO,EAAG,MACZ,EAAG,SACC,IACA,EAAG,aACX,OAAO,GAA6B,EAAG,KAAM,EAAG,OAAO,EAAI,MAAQ,CACvE,CAAC,EAEL,kBAAkB,EAAQ,CAGtB,OAFI,OAAO,GAAW,YAClB,EAAoB,GACjB,CACX,EACA,SAAU,EAAS,IAAY,CAC3B,IAAK,IAAM,KAAc,EAAkB,EACtC,IAAK,GAAU,EAAM,UAAU,EAC/B,QAAQ,EACT,EAAU,EAAW,EAAS,CAAO,EAKzC,OAHI,GACA,QAAQ,IAAI,EAAM,SAAS,CAAC,EAEzB,CACX,CACJ,EACA,OAAO,CACX,EACM,GAAc,CAChB,WAAY,EACZ,UAAW,EACX,MAAO,EACP,gBAAiB,EACjB,YAAa,CACjB,EACM,GAAkB,CACpB,KAAM,EACN,OAAQ,EACR,IAAK,CACT,ECvRa,IAAb,KAAoB,CAChB,OACA,gBAAkB,GAAe,EACjC,WACA,SACA,YAAY,EAAQ,CAChB,KAAK,OAAS,EACd,GAAM,CAAE,WAAU,oBAAqB,EACnC,GACI,OAAO,GAAa,aACpB,EAAO,SAAW,IAAI,EAAS,CAAgB,EAG3D,CACA,KAAK,EAAS,EAAa,EAAI,CAC3B,IAAM,EAAU,OAAO,GAAgB,WAA2B,OAAd,EAC9C,EAAW,OAAO,GAAgB,WAAa,EAAc,EAC7D,EAAkB,IAAY,QAAa,KAAK,OAAO,kBAAoB,GAC7E,EACJ,GAAI,EAAiB,CACjB,IACI,CAAK,WAAW,IAAI,QAExB,IAAM,EAAW,KAAK,SAClB,EAAS,IAAI,EAAQ,WAAW,EAChC,EAAU,EAAS,IAAI,EAAQ,WAAW,GAG1C,EAAU,EAAQ,kBAAkB,KAAK,gBAAiB,KAAK,OAAQ,CAAO,EAC9E,EAAS,IAAI,EAAQ,YAAa,CAAO,EAEjD,MAEI,OAAO,KAAK,SACZ,EAAU,EAAQ,kBAAkB,KAAK,gBAAiB,KAAK,OAAQ,CAAO,EAElF,GAAI,EACA,EAAQ,CAAO,EACV,KAAM,GAAW,EAAS,KAAM,EAAO,MAAM,EAAI,GAAQ,EAAS,CAAG,CAAC,EACtE,UAAY,CAAE,CAAC,OAGpB,OAAO,EAAQ,CAAO,EAAE,KAAM,GAAW,EAAO,MAAM,CAE9D,CACA,SAAU,CACN,KAAK,QAAQ,gBAAgB,UAAU,EACvC,OAAO,KAAK,QAChB,CACJ,ECjDaC,GAAc,MAAO,EAAa,IAAI,WAAc,IAAY,CACzE,GAAI,aAAsB,WACtB,OAAO,GAAsB,OAAO,CAAU,EAElD,GAAI,CAAC,EACD,OAAO,GAAsB,OAAO,IAAI,UAAY,EAExD,IAAM,EAAc,EAAQ,gBAAgB,CAAU,EACtD,OAAO,GAAsB,OAAO,MAAM,CAAW,CACzD,ECVA,SAAgB,GAA2B,EAAK,CAC5C,OAAO,mBAAmB,CAAG,EAAE,QAAQ,WAAY,SAAU,EAAG,CAC5D,MAAO,IAAM,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,CAC1D,CAAC,CACL,CCJA,IAAa,GAAS,GACd,OAAO,GAAc,WACd,EAAU,EAEd,ECJE,IAAa,EAAW,EAAM,EAAQ,EAAO,KAAY,CAClE,OACA,YACA,SACA,QACA,QACJ,GCHa,IAAmC,IAAY,EAAM,IAAY,KAAO,IAAS,CAC1F,GAAM,CAAE,YAAa,MAAM,EAAK,CAAI,EAC9B,CAAE,mBAAoB,GAAiB,CAAO,EAC9C,EAAG,EAAI,EAAG,EAAG,EAAG,GAAK,GAAmB,CAAC,EAC/C,GAAI,CAKA,MAAO,CACH,WACA,OAAQ,MANS,EAAO,SAAS,oBAAoB,GAAU,EAAI,EAAG,EAAG,EAAG,CAAC,EAAG,CAChF,GAAG,EACH,GAAG,CACP,EAAG,CAAQ,CAIX,CACJ,OACO,EAAO,CAOV,GANA,OAAO,eAAe,EAAO,YAAa,CACtC,MAAO,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EAClB,CAAC,EACG,EAAE,cAAe,GAAQ,CACzB,IAAM,EAAO,6GACb,GAAI,CACA,EAAM,SAAW;6GACrB,MACU,CACF,CAAC,EAAQ,QAAU,EAAQ,QAAQ,aAAa,OAAS,aACzD,QAAQ,KAAK,CAAI,EAGjB,EAAQ,QAAQ,OAAO,CAAI,CAEnC,CACW,EAAM,oBAAsB,QAC/B,EAAM,YACN,EAAM,UAAU,KAAO,EAAM,mBAGrC,GAAI,CACA,GAAI,GAAa,WAAW,CAAQ,EAAG,CACnC,GAAM,CAAE,UAAU,CAAC,GAAM,EACnB,EAAgB,OAAO,QAAQ,CAAO,EAC5C,EAAM,UAAY,CACd,eAAgB,EAAS,WACzB,UAAW,GAAW,yBAA0B,CAAa,EAC7D,kBAAmB,GAAW,kBAAmB,CAAa,EAC9D,KAAM,GAAW,mBAAoB,CAAa,CACtD,CACJ,CACJ,MACU,CACV,CACJ,CACA,MAAM,CACV,CACJ,EACM,IAAc,EAAS,KACjB,EAAQ,MAAM,CAAC,KACZ,EAAE,MAAM,CAAO,CACzB,GAAK,CAAC,IAAK,GAAG,MAAM,GAAG,GC/D5B,SAAgB,IAAiB,EAAa,CAC1C,IAAM,EAAQ,CAAC,EAEf,GADA,EAAc,EAAY,QAAQ,MAAO,EAAE,EACvC,EACA,IAAK,IAAM,KAAQ,EAAY,MAAM,GAAG,EAAG,CACvC,GAAI,CAAC,EAAK,EAAQ,MAAQ,EAAK,MAAM,GAAG,EACxC,EAAM,mBAAmB,CAAG,EAC5B,CACI,GAAQ,mBAAmB,CAAK,EAE9B,KAAO,EAGJ,MAAM,QAAQ,EAAM,EAAI,EAC7B,EAAM,GAAK,KAAK,CAAK,EAGrB,EAAM,GAAO,CAAC,EAAM,GAAM,CAAK,EAN/B,EAAM,GAAO,CAQrB,CAEJ,OAAO,CACX,CCrBA,IAAa,GAAY,GAAQ,CAC7B,GAAI,OAAO,GAAQ,SACf,OAAO,GAAS,IAAI,IAAI,CAAG,CAAC,EAEhC,GAAM,CAAE,WAAU,WAAU,OAAM,WAAU,UAAW,EACnD,EAIJ,OAHI,IACA,EAAQ,IAAiB,CAAM,GAE5B,CACH,WACA,KAAM,EAAO,SAAS,CAAI,EAAI,OAC9B,WACA,KAAM,EACN,OACJ,CACJ,EChBaC,IAAgB,GAAa,CACtC,GAAI,OAAO,GAAa,SAAU,CAC9B,GAAI,QAAS,EAAU,CACnB,IAAM,EAAa,GAAS,EAAS,GAAG,EACxC,GAAI,EAAS,QAAS,CAClB,EAAW,QAAU,CAAC,EACtB,IAAK,GAAM,CAAC,EAAM,KAAW,OAAO,QAAQ,EAAS,OAAO,EACxD,EAAW,QAAQ,EAAK,YAAY,GAAK,EAAO,KAAK,IAAI,CAEjE,CACA,OAAO,CACX,CACA,OAAO,CACX,CACA,OAAO,GAAS,CAAQ,CAC5B,ECba,IAAiC,IAAY,EAAM,IAAY,KAAO,IAAS,CACxF,GAAM,CAAE,mBAAoB,GAAiB,CAAO,EAC9C,EAAG,EAAI,EAAG,EAAG,EAAG,GAAK,GAAmB,CAAC,EACzC,EAAW,EAAQ,WACnB,SAAYA,IAAa,EAAQ,UAAU,EAC3C,EAAO,SACP,EAAU,MAAM,EAAO,SAAS,iBAAiB,GAAU,EAAI,EAAG,EAAG,EAAG,CAAC,EAAG,EAAK,MAAO,CAC1F,GAAG,EACH,GAAG,EACH,UACJ,CAAC,EACD,OAAO,EAAK,CACR,GAAG,EACH,SACJ,CAAC,CACL,EChBa,IAA+B,CACxC,KAAM,yBACN,KAAM,cACN,KAAM,CAAC,cAAc,EACrB,SAAU,EACd,EACaC,IAA6B,CACtC,KAAM,uBACN,KAAM,YACN,KAAM,CAAC,YAAY,EACnB,SAAU,EACd,EACA,SAAgB,IAAqB,EAAQ,CACzC,MAAO,CACH,aAAe,GAAiB,CAC5B,EAAa,IAAI,IAA8B,CAAM,EAAGA,GAA0B,EAClF,EAAa,IAAI,IAAgC,CAAM,EAAG,GAA4B,EACtF,EAAO,SAAS,gBAAgB,CAAM,CAC1C,CACJ,CACJ,CCtBA,IAAa,GAAc,CAAC,EAC5B,SAAgB,GAAgB,EAAW,CACvC,GAAI,OAAO,GAAc,SACrB,OAAO,EAGX,GADA,GAAwB,EACpB,GAAY,GACZ,OAAO,GAAY,GAEvB,IAAM,EAAS,CAAC,EACZ,EAAI,EACR,IAAK,IAAM,IAAS,CAChB,YACA,aACA,mBACA,YACA,cACA,mBACA,iBACJ,GACU,GAAa,IAAO,IAAO,IAC7B,EAAO,GAAS,GAGxB,MAAQ,IAAY,GAAa,CACrC,CCvBA,IAAM,GAAO,CACT,GAAI,OAAO,IAAI,uBAAuB,EACtC,GAAI,OAAO,IAAI,YAAY,CAC/B,EACa,GAAqB,CAAC,EACtB,GAAqB,CAAC,EACtB,GAAb,MAAa,CAAiB,CAC1B,IACA,WACA,OAAO,OAAS,OAAO,IAAI,aAAa,EACxC,OAAS,EAAiB,OAC1B,KACA,OACA,gBACA,OACA,aACA,iBACA,YAAY,EAAK,EAAY,CACzB,KAAK,IAAM,EACX,KAAK,WAAa,EAClB,IAAM,EAAa,CAAC,EAChB,EAAO,EACP,EAAS,EAEb,IADA,KAAK,gBAAkB,GAChB,GAAe,CAAI,GACtB,EAAW,KAAK,EAAK,EAAE,EACvB,EAAO,EAAK,GACZ,EAAS,GAAM,CAAI,EACnB,KAAK,gBAAkB,GAE3B,GAAI,EAAW,OAAS,EAAG,CACvB,KAAK,aAAe,CAAC,EACrB,IAAK,IAAI,EAAI,EAAW,OAAS,EAAG,GAAK,EAAG,EAAE,EAAG,CAC7C,IAAM,EAAW,EAAW,GAC5B,OAAO,OAAO,KAAK,aAAc,GAAgB,CAAQ,CAAC,CAC9D,CACJ,MAEI,KAAK,aAAe,EAExB,GAAI,aAAkB,EAAkB,CACpC,IAAM,EAAuB,KAAK,aAClC,OAAO,OAAO,KAAM,CAAM,EAC1B,KAAK,aAAe,OAAO,OAAO,CAAC,EAAG,EAAsB,EAAO,gBAAgB,EAAG,KAAK,gBAAgB,CAAC,EAC5G,KAAK,iBAAmB,IAAK,GAC7B,KAAK,WAAa,GAAc,EAAO,WACvC,MACJ,CAUA,GATA,KAAK,OAAS,GAAM,CAAM,EACtB,IAAe,KAAK,MAAM,GAC1B,KAAK,KAAO,GAAG,KAAK,OAAO,GAAG,GAAG,KAAK,OAAO,KAC7C,KAAK,OAAS,KAAK,OAAO,KAG1B,KAAK,KAAO,KAAK,YAAc,OAAO,CAAM,EAC5C,KAAK,OAAS,GAEd,KAAK,iBAAmB,CAAC,EACzB,MAAU,MAAM,sDAAsD,KAAK,QAAQ,EAAI,EAAE,sBAAsB,CAEvH,CACA,OAAQ,OAAO,aAAa,EAAK,CAC7B,IAAM,EAAc,KAAK,UAAU,cAAc,CAAG,EAKpD,MAJI,CAAC,GAAe,OAAO,GAAQ,UAAY,EAEpCC,EAAG,SAAW,KAAK,OAEvB,CACX,CACA,OAAO,GAAG,EAAK,CACX,IAAM,EAAU,OAAO,GAAQ,YAAe,OAAO,GAAQ,YAAY,EACzE,GAAI,OAAO,GAAQ,aACX,GAAmB,GACnB,OAAO,GAAmB,QAG7B,GAAI,OAAO,GAAQ,aAChB,GAAmB,GACnB,OAAO,GAAmB,QAG7B,GAAI,GACD,EAAI,GAAK,IACT,OAAO,EAAI,GAAK,IAGxB,IAAM,EAAK,GAAM,CAAG,EACpB,GAAI,aAAc,EACd,OAAO,EAEX,GAAI,GAAe,CAAE,EAAG,CACpB,GAAM,CAAC,EAAI,GAAU,EACrB,GAAI,aAAc,EAEd,OADA,OAAO,OAAO,EAAG,gBAAgB,EAAG,GAAgB,CAAM,CAAC,EACpD,EAEX,MAAU,MAAM,8DAA8D,KAAK,UAAU,EAAK,KAAM,CAAC,EAAE,EAAE,CACjH,CACA,IAAM,EAAK,IAAI,EAAiB,CAAE,EAUlC,OATI,EACQ,EAAI,GAAK,IAAM,EAEvB,OAAO,GAAO,SACN,GAAmB,GAAM,EAEjC,OAAO,GAAO,SACN,GAAmB,GAAM,EAE9B,CACX,CACA,WAAY,CACR,IAAM,EAAK,KAAK,OAIhB,OAHI,MAAM,QAAQ,CAAE,GAAK,EAAG,KAAO,EACxB,EAAG,GAEP,CACX,CACA,QAAQ,EAAgB,GAAO,CAC3B,GAAM,CAAE,QAAS,KAEjB,MADc,CAAC,GAAiB,GAAQ,EAAK,SAAS,GAAG,EAC1C,EAAK,MAAM,GAAG,EAAE,GAAK,GAAQ,MAChD,CACA,eAAgB,CACZ,OAAO,KAAK,UAChB,CACA,gBAAiB,CACb,OAAO,KAAK,eAChB,CACA,cAAe,CACX,IAAM,EAAK,KAAK,UAAU,EAC1B,OAAO,OAAO,GAAO,SACf,GAAM,IAAM,EAAK,IACjB,EAAG,KAAO,CACpB,CACA,aAAc,CACV,IAAM,EAAK,KAAK,UAAU,EAC1B,OAAO,OAAO,GAAO,SACf,GAAM,KAAO,GAAM,IACnB,EAAG,KAAO,CACpB,CACA,gBAAiB,CACb,IAAM,EAAK,KAAK,UAAU,EAC1B,GAAI,OAAO,GAAO,SACd,MAAO,GAEX,IAAM,EAAK,EAAG,GACd,OAAQ,IAAO,GACX,IAAO,IACP,IAAO,CACf,CACA,eAAgB,CACZ,IAAM,EAAK,KAAK,UAAU,EAI1B,OAHI,OAAO,GAAO,SAGX,EAAG,KAAO,EAFN,EAGf,CACA,cAAe,CACX,IAAM,EAAK,KAAK,UAAU,EAC1B,OAAO,IAAO,IAAM,IAAO,EAC/B,CACA,mBAAoB,CAChB,IAAM,EAAK,KAAK,UAAU,EAC1B,OAAQ,OAAO,GAAO,UAClB,GAAM,GACN,GAAM,CACd,CACA,cAAe,CACX,OAAO,KAAK,UAAU,IAAM,MAChC,CACA,kBAAmB,CACf,OAAO,KAAK,UAAU,IAAM,EAChC,CACA,gBAAiB,CACb,OAAO,KAAK,UAAU,IAAM,CAChC,CACA,iBAAkB,CACd,OAAO,KAAK,UAAU,IAAM,CAChC,CACA,iBAAkB,CACd,OAAO,KAAK,UAAU,IAAM,CAChC,CACA,oBAAqB,CACjB,OAAO,KAAK,UAAU,IAAM,EAChC,CACA,oBAAqB,CACjB,OAAO,KAAK,UAAU,IAAM,EAChC,CACA,aAAc,CACV,GAAM,CAAE,aAAc,KAAK,gBAAgB,EAC3C,MAAO,CAAC,CAAC,GAAa,KAAK,UAAU,IAAM,EAC/C,CACA,oBAAqB,CACjB,MAAO,CAAC,CAAC,KAAK,gBAAgB,EAAE,gBACpC,CACA,iBAAkB,CACd,MAAQ,CACH,KAAK,mBAAmB,CACrB,GAAG,KAAK,aAAa,EACrB,GAAG,KAAK,gBAAgB,CAC5B,CACR,CACA,iBAAkB,CACd,OAAO,GAAgB,KAAK,YAAY,CAC5C,CACA,cAAe,CACX,OAAO,GAAgB,KAAK,MAAM,CACtC,CACA,cAAe,CACX,GAAM,CAAC,EAAO,GAAS,CAAC,KAAK,iBAAiB,EAAG,KAAK,YAAY,CAAC,EACnE,GAAI,CAAC,GAAS,CAAC,EACX,MAAU,MAAM,qDAAqD,KAAK,QAAQ,EAAI,GAAG,EAE7F,IAAM,EAAS,KAAK,UAAU,EAI9B,OAAO,GAAO,CAHO,EACf,GACA,EAAO,IAAM,EACU,CAAC,EAAG,KAAK,CAC1C,CACA,gBAAiB,CACb,IAAM,EAAK,KAAK,UAAU,EACpB,CAAC,EAAO,EAAO,GAAU,CAAC,KAAK,iBAAiB,EAAG,KAAK,YAAY,EAAG,KAAK,aAAa,CAAC,EAC1F,EAAe,OAAO,GAAO,SAC7B,GAAc,EACd,GAAM,OAAO,GAAO,WAAa,GAAS,GACtC,EAAG,EAAI,EAAG,IACV,EACI,GACA,IAAK,GACnB,GAAI,GAAgB,KAChB,OAAO,GAAO,CAAC,EAAc,CAAC,EAAG,EAAQ,QAAU,QAAQ,EAE/D,MAAU,MAAM,yBAAyB,KAAK,QAAQ,EAAI,EAAE,sBAAsB,CACtF,CACA,gBAAgB,EAAY,CACxB,IAAM,EAAS,KAAK,UAAU,EAC9B,GAAI,KAAK,eAAe,GAAK,EAAO,GAAG,SAAS,CAAU,EAAG,CACzD,IAAM,EAAI,EAAO,GAAG,QAAQ,CAAU,EAChC,EAAe,EAAO,GAAG,GAC/B,OAAO,GAAO,GAAe,CAAY,EAAI,EAAe,CAAC,EAAc,CAAC,EAAG,CAAU,CAC7F,CACA,GAAI,KAAK,iBAAiB,EACtB,OAAO,GAAO,CAAC,GAAI,CAAC,EAAG,CAAU,EAErC,MAAU,MAAM,yBAAyB,KAAK,QAAQ,EAAI,EAAE,iBAAiB,EAAW,EAAE,CAC9F,CACA,kBAAmB,CACf,IAAM,EAAS,CAAC,EAChB,GAAI,CACA,IAAK,GAAM,CAAC,EAAG,KAAM,KAAK,eAAe,EACrC,EAAO,GAAK,CAEpB,MACgB,CAAE,CAClB,OAAO,CACX,CACA,sBAAuB,CACnB,GAAI,KAAK,eAAe,OACf,GAAM,CAAC,EAAY,KAAiB,KAAK,eAAe,EACzD,GAAI,EAAa,YAAY,GAAK,EAAa,eAAe,EAC1D,OAAO,EAInB,MAAO,EACX,CACA,CAAC,gBAAiB,CACd,GAAI,KAAK,aAAa,EAClB,OAEJ,GAAI,CAAC,KAAK,eAAe,EACrB,MAAU,MAAM,yDAAyD,EAE7E,IAAM,EAAS,KAAK,UAAU,EACxB,EAAI,EAAO,GAAG,OAChB,EAAK,EAAO,GAAK,IACrB,GAAI,GAAM,IAAM,EAAG,OAAQ,CACvB,MAAO,EACP,MACJ,CACA,EAAK,MAAM,CAAC,EACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,EAAE,EAAG,CACxB,IAAM,EAAI,EAAO,GAAG,GACd,EAAI,GAAO,CAAC,EAAO,GAAG,GAAI,CAAC,EAAG,CAAC,EACrC,KAAO,GAAG,GAAK,CAAC,EAAG,CAAC,CACxB,CACA,EAAO,GAAK,IAAM,CACtB,CACJ,EACA,SAAS,GAAO,EAAc,EAAY,CAQtC,OAPI,aAAwB,GACjB,OAAO,OAAO,EAAc,CAC/B,aACA,gBAAiB,EACrB,CAAC,EAGE,IAAIC,GAAmB,EAAc,CAAU,CAC1D,CACA,IAAM,GAAkB,GAAO,MAAM,QAAQ,CAAE,GAAK,EAAG,SAAW,EACrD,IAAkB,GAAO,MAAM,QAAQ,CAAE,GAAK,EAAG,QAAU,EC9S3D,GAAb,MAAa,CAAa,CACtB,UACA,QACA,WACA,OAAO,WAAa,IAAI,IACxB,YAAY,EAAW,EAAU,IAAI,IAAO,EAAa,IAAI,IAAO,CAChE,KAAK,UAAY,EACjB,KAAK,QAAU,EACf,KAAK,WAAa,CACtB,CACA,OAAO,IAAI,EAAW,CAIlB,OAHK,EAAa,WAAW,IAAI,CAAS,GACtC,EAAa,WAAW,IAAI,EAAW,IAAI,EAAa,CAAS,CAAC,EAE/D,EAAa,WAAW,IAAI,CAAS,CAChD,CACA,SAAS,EAAO,CACZ,GAAM,CAAE,UAAS,cAAe,KAChC,IAAK,GAAM,CAAC,EAAG,KAAM,EAAM,QAClB,EAAQ,IAAI,CAAC,GACd,EAAQ,IAAI,EAAG,CAAC,EAGxB,IAAK,GAAM,CAAC,EAAG,KAAM,EAAM,WAClB,EAAW,IAAI,CAAC,GACjB,EAAW,IAAI,EAAG,CAAC,CAG/B,CACA,SAAS,EAAS,EAAQ,CACtB,IAAM,EAAgB,KAAK,iBAAiB,CAAO,EACnD,IAAK,IAAM,IAAK,CAAC,KAAM,EAAa,IAAI,EAAc,MAAM,GAAG,EAAE,EAAE,CAAC,EAChE,EAAE,QAAQ,IAAI,EAAe,CAAM,CAE3C,CACA,UAAU,EAAS,CACf,IAAM,EAAK,KAAK,iBAAiB,CAAO,EACxC,GAAI,CAAC,KAAK,QAAQ,IAAI,CAAE,EACpB,MAAU,MAAM,8CAA8C,GAAI,EAEtE,OAAO,KAAK,QAAQ,IAAI,CAAE,CAC9B,CACA,cAAc,EAAI,EAAM,CACpB,IAAM,EAAS,EACT,EAAK,EAAO,GAClB,IAAK,IAAM,IAAK,CAAC,KAAM,EAAa,IAAI,CAAE,CAAC,EACvC,EAAE,QAAQ,IAAI,EAAK,IAAM,EAAO,GAAI,CAAM,EAC1C,EAAE,WAAW,IAAI,EAAQ,CAAI,CAErC,CACA,aAAa,EAAI,CACb,IAAM,EAAS,EAKf,OAJI,KAAK,WAAW,IAAI,CAAM,EACnB,KAAK,WAAW,IAAI,CAAM,EAEpB,EAAa,IAAI,EAAO,EAC3B,EAAE,WAAW,IAAI,CAAM,CACzC,CACA,kBAAmB,CACf,IAAK,IAAM,KAAgB,KAAK,WAAW,KAAK,EAC5C,GAAI,MAAM,QAAQ,CAAY,EAAG,CAC7B,GAAM,EAAG,EAAI,GAAQ,EACf,EAAK,EAAK,IAAM,EACtB,GAAI,EAAG,WAAW,0BAA0B,GAAK,EAAG,SAAS,kBAAkB,EAC3E,OAAO,CAEf,CAGR,CACA,KAAK,EAAW,CACZ,MAAO,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAS,CACpD,CACA,OAAQ,CACJ,KAAK,QAAQ,MAAM,EACnB,KAAK,WAAW,MAAM,CAC1B,CACA,iBAAiB,EAAS,CAItB,OAHI,EAAQ,SAAS,GAAG,EACb,EAEJ,KAAK,UAAY,IAAM,CAClC,CACJ,ECzCa,IAAgB,GAAU,CAC/B,MAAU,KAGd,IAAI,OAAO,GAAU,SAAU,CAC3B,IAAM,EAAS,WAAW,CAAK,EAC/B,GAAI,CAAC,OAAO,MAAM,CAAM,EAIpB,OAHI,OAAO,CAAM,IAAM,OAAO,CAAK,GAC/B,IAAO,KAAK,IAAkB,wCAAwC,GAAO,CAAC,EAE3E,CAEf,CACA,GAAI,OAAO,GAAU,SACjB,OAAO,EAEX,MAAU,UAAU,wBAAwB,OAAO,EAAM,IAAI,GAAO,CAJpE,CAKJ,EACM,IAAY,KAAK,KAAK,GAAK,KAAO,EAAI,GAAK,IAAI,EACxC,IAAiB,GAAU,CACpC,IAAM,EAAW,IAAa,CAAK,EACnC,GAAI,IAAa,QAAa,CAAC,OAAO,MAAM,CAAQ,GAAK,IAAa,KAAY,IAAa,MACvF,KAAK,IAAI,CAAQ,EAAI,IACrB,MAAU,UAAU,8BAA8B,GAAO,EAGjE,OAAO,CACX,EACa,IAAc,GAAU,CAC7B,MAAU,KAGd,IAAI,OAAO,UAAU,CAAK,GAAK,CAAC,OAAO,MAAM,CAAK,EAC9C,OAAO,EAEX,MAAU,UAAU,yBAAyB,OAAO,EAAM,IAAI,GAAO,CAF1D,CAGf,EAGa,IAAe,GAAU,GAAe,EAAO,EAAE,EACjD,IAAc,GAAU,GAAe,EAAO,CAAC,EACtD,IAAkB,EAAO,IAAS,CACpC,IAAM,EAAW,IAAW,CAAK,EACjC,GAAI,IAAa,QAAa,IAAQ,EAAU,CAAI,IAAM,EACtD,MAAU,UAAU,YAAY,EAAK,oBAAoB,GAAO,EAEpE,OAAO,CACX,EACM,KAAW,EAAO,IAAS,CAC7B,OAAQ,EAAR,CACI,IAAK,IACD,OAAO,WAAW,GAAG,CAAK,EAAE,GAChC,IAAK,IACD,OAAO,WAAW,GAAG,CAAK,EAAE,GAChC,IAAK,GACD,OAAO,UAAU,GAAG,CAAK,EAAE,EACnC,CACJ,EAwDa,IAAsB,GAEpB,IADP,OAAO,GAAS,SACK,GAAY,CAAK,EAErB,CAFsB,EAIzC,IAAe,oEACf,GAAe,GAAU,CAC3B,IAAM,EAAU,EAAM,MAAM,GAAY,EACxC,GAAI,IAAY,MAAQ,EAAQ,GAAG,SAAW,EAAM,OAChD,MAAU,UAAU,wCAAwC,EAEhE,OAAO,WAAW,CAAK,CAC3B,EAwCa,GAAoB,GAElB,IADP,OAAO,GAAU,SACE,GAAY,CAAK,EAErB,CAFsB,EAIhC,IAAmB,GAEjB,IADP,OAAO,GAAU,SACC,GAAY,CAAK,EAErB,CAFsB,EAItC,IAAqB,GAChB,OAAW,UAAU,CAAO,EAAE,OAAS,CAAO,EAChD,MAAM;CAAI,EACV,MAAM,EAAG,CAAC,EACV,OAAQ,GAAM,CAAC,EAAE,SAAS,mBAAmB,CAAC,EAC9C,KAAK;CAAI,EAEL,IAAS,CAClB,KAAM,QAAQ,IAClB,ECpOM,IAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACvD,GAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAClG,SAAgB,GAAgB,EAAM,CAClC,IAAM,EAAO,EAAK,eAAe,EAC3B,EAAQ,EAAK,YAAY,EACzB,EAAY,EAAK,UAAU,EAC3B,EAAgB,EAAK,WAAW,EAChC,EAAW,EAAK,YAAY,EAC5B,EAAa,EAAK,cAAc,EAChC,EAAa,EAAK,cAAc,EAChC,EAAmB,EAAgB,GAAK,IAAI,IAAkB,GAAG,IACjE,EAAc,EAAW,GAAK,IAAI,IAAa,GAAG,IAClD,EAAgB,EAAa,GAAK,IAAI,IAAe,GAAG,IACxD,EAAgB,EAAa,GAAK,IAAI,IAAe,GAAG,IAC9D,MAAO,GAAG,IAAK,GAAW,IAAI,EAAiB,GAAG,GAAO,GAAO,GAAG,EAAK,GAAG,EAAY,GAAG,EAAc,GAAG,EAAc,KAC7H,CAyCA,IAAMC,IAAc,IAAI,OAAO,gJAAgJ,EACzKC,IAAe,IAAI,OAAO,6KAA6K,EACvMC,IAAW,IAAI,OAAO,kJAAkJ,EACjK,IAAwB,GAAU,CAC3C,GAAI,GAAU,KACV,OAEJ,GAAI,OAAO,GAAU,SACjB,MAAU,UAAU,kDAAkD,EAE1E,IAAI,EAAQF,IAAY,KAAK,CAAK,EAClC,GAAI,EAAO,CACP,GAAM,CAAC,EAAG,EAAQ,EAAU,EAAS,EAAO,EAAS,EAAS,GAA0B,EACxF,OAAO,GAAU,GAAiB,GAAmB,CAAO,CAAC,EAAG,GAAsB,CAAQ,EAAG,GAAe,EAAQ,MAAO,EAAG,EAAE,EAAG,CAAE,QAAO,UAAS,UAAS,wBAAuB,CAAC,CAC9L,CAEA,GADA,EAAQC,IAAa,KAAK,CAAK,EAC3B,EAAO,CACP,GAAM,CAAC,EAAG,EAAQ,EAAU,EAAS,EAAO,EAAS,EAAS,GAA0B,EACxF,OAAO,IAAiB,GAAU,IAAkB,CAAO,EAAG,GAAsB,CAAQ,EAAG,GAAe,EAAQ,MAAO,EAAG,EAAE,EAAG,CACjI,QACA,UACA,UACA,wBACJ,CAAC,CAAC,CACN,CAEA,GADA,EAAQC,IAAS,KAAK,CAAK,EACvB,EAAO,CACP,GAAM,CAAC,EAAG,EAAU,EAAQ,EAAO,EAAS,EAAS,EAAwB,GAAW,EACxF,OAAO,GAAU,GAAiB,GAAmB,CAAO,CAAC,EAAG,GAAsB,CAAQ,EAAG,GAAe,EAAO,SAAS,EAAG,MAAO,EAAG,EAAE,EAAG,CAAE,QAAO,UAAS,UAAS,wBAAuB,CAAC,CACzM,CACA,MAAU,UAAU,kCAAkC,CAC1D,EAuBM,IAAa,EAAM,EAAO,EAAK,IAAS,CAC1C,IAAM,EAAgB,EAAQ,EAE9B,OADA,IAAmB,EAAM,EAAe,CAAG,EACpC,IAAI,KAAK,KAAK,IAAI,EAAM,EAAe,EAAK,GAAe,EAAK,MAAO,OAAQ,EAAG,EAAE,EAAG,GAAe,EAAK,QAAS,SAAU,EAAG,EAAE,EAAG,GAAe,EAAK,QAAS,UAAW,EAAG,EAAE,EAAG,IAAkB,EAAK,sBAAsB,CAAC,CAAC,CAChP,EACM,IAAqB,GAAU,CACjC,IAAM,EAAW,IAAI,KAAK,EAAE,eAAe,EACrC,EAAqB,KAAK,MAAM,EAAW,GAAG,EAAI,IAAM,GAAiB,GAAmB,CAAK,CAAC,EAIxG,OAHI,EAAqB,EACd,EAAqB,IAEzB,CACX,EACM,IAAwB,GAAK,IAAM,GAAK,GAAK,GAAK,IAClD,IAAoB,GAClB,EAAM,QAAQ,EAAI,IAAI,KAAK,EAAE,QAAQ,EAAI,IAClC,IAAI,KAAK,KAAK,IAAI,EAAM,eAAe,EAAI,IAAK,EAAM,YAAY,EAAG,EAAM,WAAW,EAAG,EAAM,YAAY,EAAG,EAAM,cAAc,EAAG,EAAM,cAAc,EAAG,EAAM,mBAAmB,CAAC,CAAC,EAE3L,EAEL,GAAyB,GAAU,CACrC,IAAM,EAAW,GAAO,QAAQ,CAAK,EACrC,GAAI,EAAW,EACX,MAAU,UAAU,kBAAkB,GAAO,EAEjD,OAAO,EAAW,CACtB,EACM,IAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/D,KAAsB,EAAM,EAAO,IAAQ,CAC7C,IAAI,EAAU,IAAc,GAI5B,GAHI,IAAU,GAAK,IAAW,CAAI,IAC9B,EAAU,IAEV,EAAM,EACN,MAAU,UAAU,mBAAmB,GAAO,GAAO,MAAM,EAAK,IAAI,GAAK,CAEjF,EACM,IAAc,GACT,EAAO,GAAM,IAAM,EAAO,KAAQ,GAAK,EAAO,KAAQ,GAE3D,IAAkB,EAAO,EAAM,EAAO,IAAU,CAClD,IAAM,EAAU,IAAgB,GAAmB,CAAK,CAAC,EACzD,GAAI,EAAU,GAAS,EAAU,EAC7B,MAAU,UAAU,GAAG,EAAK,mBAAmB,EAAM,OAAO,EAAM,YAAY,EAElF,OAAO,CACX,EACM,IAAqB,GACnB,GAAU,KACH,EAEJ,IAAmB,KAAO,CAAK,EAAI,IAkBxC,GAAsB,GAAU,CAClC,IAAI,EAAM,EACV,KAAO,EAAM,EAAM,OAAS,GAAK,EAAM,OAAO,CAAG,IAAM,KACnD,IAKJ,OAHI,IAAQ,EACD,EAEJ,EAAM,MAAM,CAAG,CAC1B,EC7La,GAAa,OAAO,OAAW,KAAe,OAAO,YAAc,OAAO,WAAW,KAAK,MAAM,ECCvG,GAAe,MAAM,KAAK,CAAE,OAAQ,GAAI,GAAI,EAAG,IAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAC7E,OAAW,CACpB,GAAI,GACA,OAAO,GAAW,EAEtB,IAAM,EAAO,IAAI,WAAW,EAAE,EAI9B,OAHA,OAAO,gBAAgB,CAAI,EAC3B,EAAK,GAAM,EAAK,GAAK,GAAQ,GAC7B,EAAK,GAAM,EAAK,GAAK,GAAQ,IACrB,GAAa,EAAK,IACtB,GAAa,EAAK,IAClB,GAAa,EAAK,IAClB,GAAa,EAAK,IAClB,IACA,GAAa,EAAK,IAClB,GAAa,EAAK,IAClB,IACA,GAAa,EAAK,IAClB,GAAa,EAAK,IAClB,IACA,GAAa,EAAK,IAClB,GAAa,EAAK,IAClB,IACA,GAAa,EAAK,KAClB,GAAa,EAAK,KAClB,GAAa,EAAK,KAClB,GAAa,EAAK,KAClB,GAAa,EAAK,KAClB,GAAa,EAAK,IAC1B,EC9Ba,GAAiB,SAAwB,EAAK,CAYvD,OAXY,OAAO,OAAO,IAAI,OAAO,CAAG,EAAG,CACvC,iBAAkB,CACd,OAAO,KAAK,MAAM,OAAO,CAAG,CAAC,CACjC,EACA,UAAW,CACP,OAAO,OAAO,CAAG,CACrB,EACA,QAAS,CACL,OAAO,OAAO,CAAG,CACrB,CACJ,CACS,CACb,EACA,GAAe,KAAQ,GACf,GAAU,OAAO,GAAW,WAAa,aAAkB,IAAkB,oBAAqB,GAC3F,EAEF,OAAO,GAAW,UAAY,OAAO,eAAe,CAAM,IAAM,OAAO,UACrE,GAAe,OAAO,CAAM,CAAC,EAEjC,GAAe,KAAK,UAAU,CAAM,CAAC,EAEhD,GAAe,WAAa,GAAe,KCvB3C,SAAgB,IAAY,EAAM,CAI9B,OAHI,EAAK,SAAS,GAAG,GAAK,EAAK,SAAS,GAAG,KACvC,EAAO,IAAI,EAAK,QAAQ,KAAM,KAAK,EAAE,IAElC,CACX,CCLA,IAAM,GAAM,qDACN,GAAM,oDACN,GAAO,4CACP,GAAO,YACP,GAAO,WACP,IAAsB,IAAI,OAAO,iFAAiF,EAClH,IAAkB,OAAO,IAAI,GAAI,IAAI,GAAK,GAAG,GAAI,GAAG,GAAK,GAAG,GAAK,MAAM,EACvE,IAAmB,OAAO,IAAI,GAAI,IAAI,GAAK,GAAG,GAAI,YAAY,GAAK,MAAM,EACzE,IAAe,OAAO,IAAI,GAAI,GAAG,GAAI,mBAAmB,GAAK,GAAG,GAAK,EAAE,EACvE,IAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACrF,IAAwB,GAAU,CAC3C,GAAI,GAAS,KACT,OAEJ,IAAI,EAAM,IACV,GAAI,OAAO,GAAU,SACjB,EAAM,OAEL,GAAI,OAAO,GAAU,SAAU,CAChC,GAAI,CAAC,gBAAgB,KAAK,CAAK,EAC3B,MAAU,UAAU,+CAA+C,EAEvE,EAAM,OAAO,WAAW,CAAK,CACjC,MACS,OAAO,GAAU,UAAY,EAAM,MAAQ,IAChD,EAAM,EAAM,OAEhB,GAAI,MAAM,CAAG,GAAK,KAAK,IAAI,CAAG,IAAM,IAChC,MAAU,UAAU,gDAAgD,EAExE,OAAO,IAAI,KAAK,KAAK,MAAM,EAAM,GAAI,CAAC,CAC1C,EACa,IAAmC,GAAU,CACtD,GAAI,GAAS,KACT,OAEJ,GAAI,OAAO,GAAU,SACjB,MAAU,UAAU,oCAAoC,EAE5D,IAAM,EAAU,IAAoB,KAAK,CAAK,EAC9C,GAAI,CAAC,EACD,MAAU,UAAU,oCAAoC,GAAO,EAEnE,GAAM,EAAG,EAAS,EAAU,EAAQ,EAAO,EAAS,GAAW,EAAI,GAAa,EAChF,GAAM,EAAU,EAAG,EAAE,EACrB,GAAM,EAAQ,EAAG,EAAE,EACnB,GAAM,EAAO,EAAG,EAAE,EAClB,GAAM,EAAS,EAAG,EAAE,EACpB,GAAM,EAAS,EAAG,EAAE,EACpB,IAAM,EAAO,IAAI,KAAK,KAAK,IAAI,OAAO,CAAO,EAAG,OAAO,CAAQ,EAAI,EAAG,OAAO,CAAM,EAAG,OAAO,CAAK,EAAG,OAAO,CAAO,EAAG,OAAO,CAAO,EAAG,OAAO,CAAE,EAAI,KAAK,MAAM,WAAW,KAAK,GAAI,EAAI,GAAI,EAAI,CAAC,CAAC,EAEjM,GADA,EAAK,eAAe,OAAO,CAAO,CAAC,EAC/B,EAAU,YAAY,GAAK,IAAK,CAChC,GAAM,EAAG,EAAM,EAAS,GAAW,sBAAsB,KAAK,CAAS,GAAK,CAAC,IAAK,GAAG,IAAK,EAAG,CAAC,EACxF,EAAS,IAAS,IAAM,EAAI,GAClC,EAAK,QAAQ,EAAK,QAAQ,EAAI,GAAU,OAAO,CAAO,EAAI,GAAK,GAAK,IAAO,OAAO,CAAO,EAAI,GAAK,IAAK,CAC3G,CACA,OAAO,CACX,EACa,IAAyB,GAAU,CAC5C,GAAI,GAAS,KACT,OAEJ,GAAI,OAAO,GAAU,SACjB,MAAU,UAAU,qCAAqC,EAE7D,IAAI,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAWJ,IAVK,EAAU,IAAY,KAAK,CAAK,GACjC,EAAG,EAAK,EAAO,EAAM,EAAM,EAAQ,EAAQ,GAAY,GAEjD,EAAU,IAAa,KAAK,CAAK,IACvC,EAAG,EAAK,EAAO,EAAM,EAAM,EAAQ,EAAQ,GAAY,EACvD,GAAQ,OAAO,CAAI,EAAI,MAAM,SAAS,IAEhC,EAAU,IAAS,KAAK,CAAK,KACnC,EAAG,EAAO,EAAK,EAAM,EAAQ,EAAQ,EAAU,GAAQ,GAEvD,GAAQ,EAAQ,CAChB,IAAM,EAAY,KAAK,IAAI,OAAO,CAAI,EAAG,IAAO,QAAQ,CAAK,EAAG,OAAO,CAAG,EAAG,OAAO,CAAI,EAAG,OAAO,CAAM,EAAG,OAAO,CAAM,EAAG,EAAW,KAAK,MAAM,WAAW,KAAK,GAAU,EAAI,GAAI,EAAI,CAAC,EACxL,GAAM,EAAK,EAAG,EAAE,EAChB,GAAM,EAAM,EAAG,EAAE,EACjB,GAAM,EAAQ,EAAG,EAAE,EACnB,GAAM,EAAQ,EAAG,EAAE,EACnB,IAAM,EAAO,IAAI,KAAK,CAAS,EAE/B,OADA,EAAK,eAAe,OAAO,CAAI,CAAC,EACzB,CACX,CACA,MAAU,UAAU,mCAAmC,EAAM,EAAE,CACnE,EACA,SAAS,GAAM,EAAG,EAAK,EAAK,CACxB,IAAM,EAAK,OAAO,CAAC,EACnB,GAAI,EAAK,GAAO,EAAK,EACjB,MAAU,MAAM,SAAS,EAAG,iBAAiB,EAAI,IAAI,EAAI,EAAE,CAEnE,CCpGA,SAAgB,IAAW,EAAO,EAAW,EAAe,CACxD,GAAI,GAAiB,GAAK,CAAC,OAAO,UAAU,CAAa,EACrD,MAAU,MAAM,iCAAmC,EAAgB,mBAAmB,EAE1F,IAAM,EAAW,EAAM,MAAM,CAAS,EACtC,GAAI,IAAkB,EAClB,OAAO,EAEX,IAAM,EAAmB,CAAC,EACtB,EAAiB,GACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAC7B,IAAmB,GACnB,EAAiB,EAAS,GAG1B,GAAkB,EAAY,EAAS,IAEtC,EAAI,GAAK,IAAkB,IAC5B,EAAiB,KAAK,CAAc,EACpC,EAAiB,IAMzB,OAHI,IAAmB,IACnB,EAAiB,KAAK,CAAc,EAEjC,CACX,CC1BA,IAAa,GAAe,GAAU,CAClC,IAAM,EAAI,EAAM,OACV,EAAS,CAAC,EACZ,EAAe,GACf,EACA,EAAS,EACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,EAAE,EAAG,CACxB,IAAM,EAAO,EAAM,GACnB,OAAQ,EAAR,CACI,IAAK,IACG,IAAa,OACb,EAAe,CAAC,GAEpB,MACJ,IAAK,IACI,IACD,EAAO,KAAK,EAAM,MAAM,EAAQ,CAAC,CAAC,EAClC,EAAS,EAAI,GAEjB,MACJ,QACJ,CACA,EAAW,CACf,CAEA,OADA,EAAO,KAAK,EAAM,MAAM,CAAM,CAAC,EACxB,EAAO,IAAK,GAAM,CACrB,EAAI,EAAE,KAAK,EACX,IAAM,EAAI,EAAE,OAOZ,OANI,EAAI,EACG,GAEP,EAAE,KAAO,KAAO,EAAE,EAAI,KAAO,MAC7B,EAAI,EAAE,MAAM,EAAG,EAAI,CAAC,GAEjB,EAAE,QAAQ,OAAQ,GAAG,EAChC,CAAC,CACL,ECpCM,GAAS,kBACF,GAAb,MAAa,CAAa,CACtB,OACA,KACA,YAAY,EAAQ,EAAM,CAGtB,GAFA,KAAK,OAAS,EACd,KAAK,KAAO,EACR,CAAC,GAAO,KAAK,CAAM,EACnB,MAAU,MAAM,gIAAgI,CAExJ,CACA,UAAW,CACP,OAAO,KAAK,MAChB,CACA,OAAQ,OAAO,aAAa,EAAQ,CAChC,GAAI,CAAC,GAAU,OAAO,GAAW,SAC7B,MAAO,GAEX,IAAM,EAAM,EACZ,OAAO,EAAa,UAAU,cAAc,CAAM,GAAM,EAAI,OAAS,cAAgB,GAAO,KAAK,EAAI,MAAM,CAC/G,CACJ,ECrBa,GAAb,KAA0B,CACtB,aACA,gBAAgB,EAAc,CAC1B,KAAK,aAAe,CACxB,CACJ,qqCCFa,IAAb,cAAkC,EAAa,CAC3C,QACA,uBACA,YAAY,EAAS,CACjB,MAAM,EACN,KAAK,QAAU,EACf,KAAK,uBAAyB,GAAa,IAAI,EAAQ,gBAAgB,EACvE,IAAK,IAAM,KAAO,EAAQ,qBAAuB,CAAC,EAC9C,KAAK,uBAAuB,SAAS,CAAG,CAEhD,CACA,gBAAiB,CACb,OAAO,EACX,CACA,iBAAkB,CACd,OAAO,EACX,CACA,gBAAgB,EAAc,CAC1B,KAAK,aAAe,EACpB,KAAK,WAAW,gBAAgB,CAAY,EAC5C,KAAK,aAAa,gBAAgB,CAAY,EAC1C,KAAK,gBAAgB,GACrB,KAAK,gBAAgB,EAAE,gBAAgB,CAAY,CAE3D,CACA,sBAAsB,EAAS,EAAU,CACrC,GAAI,QAAS,EAAU,CACnB,EAAQ,SAAW,EAAS,IAAI,SAChC,EAAQ,SAAW,EAAS,IAAI,SAChC,EAAQ,KAAO,EAAS,IAAI,KAAO,OAAO,EAAS,IAAI,IAAI,EAAI,OAC/D,EAAQ,KAAO,EAAS,IAAI,SAC5B,EAAQ,SAAW,EAAS,IAAI,MAAQ,IAAK,GAC7C,EAAQ,SAAW,EAAS,IAAI,UAAY,IAAK,GACjD,EAAQ,SAAW,EAAS,IAAI,UAAY,IAAK,GACjD,CACI,CAAQ,QAAQ,CAAC,EAErB,IAAK,GAAM,CAAC,EAAG,KAAM,EAAS,IAAI,aAAa,QAAQ,EACnD,EAAQ,MAAM,GAAK,EAEvB,GAAI,EAAS,QACT,IAAK,GAAM,CAAC,EAAM,KAAW,OAAO,QAAQ,EAAS,OAAO,EACxD,EAAQ,QAAQ,GAAQ,EAAO,KAAK,IAAI,EAGhD,OAAO,CACX,KACK,CAQD,GAPA,EAAQ,SAAW,EAAS,SAC5B,EAAQ,SAAW,EAAS,SAC5B,EAAQ,KAAO,EAAS,KAAO,OAAO,EAAS,IAAI,EAAI,OACvD,EAAQ,KAAO,EAAS,KACxB,EAAQ,MAAQ,CACZ,GAAG,EAAS,KAChB,EACI,EAAS,QACT,IAAK,GAAM,CAAC,EAAM,KAAU,OAAO,QAAQ,EAAS,OAAO,EACvD,EAAQ,QAAQ,GAAQ,EAGhC,OAAO,CACX,CACJ,CACA,cAAc,EAAS,EAAiB,EAAO,CAC3C,GAAI,KAAK,cAAc,kBACnB,OAEJ,IAAM,EAAU,GAAiB,GAAG,EAAgB,KAAK,EACnD,EAAW,GAAgB,EAAgB,QAAU,CAAC,CAAC,EAC7D,GAAI,EAAS,SAAU,CACnB,IAAI,EAAa,EAAS,WAAW,GACrC,GAAI,OAAO,GAAe,SAAU,CAChC,IAAM,EAAkB,CAAC,GAAG,EAAQ,eAAe,CAAC,EAAE,QAAQ,EAAG,KAAY,EAAO,gBAAgB,EAAE,SAAS,EAC/G,IAAK,GAAM,CAAC,KAAS,EAAiB,CAClC,IAAM,EAAc,EAAM,GAC1B,GAAI,OAAO,GAAgB,SACvB,MAAU,MAAM,yBAAyB,EAAK,yCAAyC,EAE3F,EAAa,EAAW,QAAQ,IAAI,EAAK,GAAI,CAAW,CAC5D,CACA,EAAQ,SAAW,EAAa,EAAQ,QAC5C,CACJ,CACJ,CACA,oBAAoB,EAAQ,CACxB,MAAO,CACH,eAAgB,EAAO,WACvB,UAAW,EAAO,QAAQ,qBAAuB,EAAO,QAAQ,sBAAwB,EAAO,QAAQ,oBACvG,kBAAmB,EAAO,QAAQ,cAClC,KAAM,EAAO,QAAQ,cACzB,CACJ,CACA,MAAM,qBAAqB,CAAE,cAAa,gBAAe,kBAAmB,CAExE,OAAO,MADwB,KAAK,0BAA0B,GACtC,qBAAqB,CACzC,cACA,gBACA,gBACJ,CAAC,CACL,CACA,MAAM,uBAAuB,CAAE,WAAU,iBAAgB,4BAA6B,CAElF,OAAO,MADwB,KAAK,0BAA0B,GACtC,uBAAuB,CAC3C,WACA,iBACA,0BACJ,CAAC,CACL,CACA,MAAM,2BAA4B,CAC9B,GAAM,CAAE,2CAAF,CAAE,oBAAqB,MAAM,OAAO,uEAC1C,OAAO,IAAI,EAAiB,CACxB,WAAY,KAAK,yBAAyB,EAC1C,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,mBAAoB,KAAK,sBAAsB,CACnD,CAAC,CACL,CACA,uBAAwB,CACpB,MAAU,MAAM,4BAA4B,KAAK,YAAY,KAAK,iDAAiD,CACvH,CACA,MAAM,uBAAuB,EAAQ,EAAS,EAAU,EAAM,EAAM,CAMhE,MAAO,CAAC,CACZ,CACA,0BAA2B,CACvB,IAAM,EAAU,KAAK,aACrB,GAAI,CAAC,EAAQ,sBACT,MAAU,MAAM,6EAA6E,EAEjG,OAAO,EAAQ,qBACnB,CACJ,ECpIa,IAAb,cAAyC,GAAa,CAClD,MAAM,iBAAiB,EAAiB,EAAQ,EAAS,CACrD,IAAM,EAAQ,GAAU,OAAO,GAAW,SAAW,EAAS,CAAC,EACzD,EAAa,KAAK,WAClB,EAAQ,CAAC,EACT,EAAU,CAAC,EACX,EAAW,MAAM,EAAQ,SAAS,EAClC,EAAK,GAAiB,GAAG,GAAiB,KAAK,EAC/C,EAAqB,CAAC,EACtB,EAAuB,CAAC,EAC1B,EAA0B,GAC1B,EACE,EAAU,IAAI,GAAY,CAC5B,SAAU,GACV,SAAU,GACV,KAAM,OACN,KAAM,GACN,SAAU,OACH,QACE,UACT,KAAM,MACV,CAAC,EACD,GAAI,EAAU,CACV,KAAK,sBAAsB,EAAS,CAAQ,EAC5C,KAAK,cAAc,EAAS,EAAiB,CAAK,EAClD,IAAM,EAAW,GAAgB,EAAgB,MAAM,EACvD,GAAI,EAAS,KAAM,CACf,EAAQ,OAAS,EAAS,KAAK,GAC/B,GAAM,CAAC,EAAM,GAAU,EAAS,KAAK,GAAG,MAAM,GAAG,EAC7C,EAAQ,MAAQ,IAChB,EAAQ,KAAO,EAGf,EAAQ,MAAQ,EAEpB,IAAM,EAAoB,IAAI,gBAAgB,GAAU,EAAE,EAC1D,OAAO,OAAO,EAAO,OAAO,YAAY,CAAiB,CAAC,CAC9D,CACJ,CACA,IAAK,GAAM,CAAC,EAAY,KAAa,EAAG,eAAe,EAAG,CACtD,IAAM,EAAe,EAAS,gBAAgB,GAAK,CAAC,EAC9C,EAAmB,EAAM,GAC/B,GAAI,GAAoB,MAAQ,CAAC,EAAS,mBAAmB,EAAG,CAC5D,GAAI,EAAa,YACT,EAAQ,KAAK,SAAS,IAAI,EAAW,GAAG,GAAK,EAAQ,KAAK,SAAS,IAAI,EAAW,EAAE,GACpF,MAAU,MAAM,2CAA2C,EAAW,EAAE,EAGhF,QACJ,CACA,GAAI,EAAa,YACO,EAAS,YACf,EACY,EAAS,eACf,EACR,EAAM,KACN,EAAU,MAAM,KAAK,qBAAqB,CACtC,YAAa,EAAM,GACnB,cAAe,CACnB,CAAC,GAIL,EAAU,GAId,EAAW,MAAM,EAAU,CAAgB,EAC3C,EAAU,EAAW,MAAM,QAG9B,GAAI,EAAa,UAAW,CAC7B,EAAW,MAAM,EAAU,CAAgB,EAC3C,IAAM,EAAc,EAAW,MAAM,EACjC,EAAQ,KAAK,SAAS,IAAI,EAAW,GAAG,EACxC,EAAQ,KAAO,EAAQ,KAAK,QAAQ,IAAI,EAAW,IAAK,EAAY,MAAM,GAAG,EAAE,IAAI,EAA0B,EAAE,KAAK,GAAG,CAAC,EAEnH,EAAQ,KAAK,SAAS,IAAI,EAAW,EAAE,IAC5C,EAAQ,KAAO,EAAQ,KAAK,QAAQ,IAAI,EAAW,GAAI,GAA2B,CAAW,CAAC,EAEtG,MACK,GAAI,EAAa,WAClB,EAAW,MAAM,EAAU,CAAgB,EAC3C,EAAQ,EAAa,WAAW,YAAY,GAAK,OAAO,EAAW,MAAM,CAAC,OAEzE,GAAI,OAAO,EAAa,mBAAsB,SAC/C,IAAK,GAAM,CAAC,EAAK,KAAQ,OAAO,QAAQ,CAAgB,EAAG,CACvD,IAAM,EAAU,EAAa,kBAAoB,EACjD,EAAW,MAAM,CAAC,EAAS,eAAe,EAAG,CAAE,WAAY,CAAQ,CAAC,EAAG,CAAG,EAC1E,EAAQ,EAAQ,YAAY,GAAK,EAAW,MAAM,CACtD,MAEK,EAAa,WAAa,EAAa,gBAC5C,KAAK,eAAe,EAAU,EAAkB,CAAK,GAGrD,EAA0B,GAC1B,EAAmB,KAAK,CAAU,EAClC,EAAqB,KAAK,CAAQ,EAE1C,CACA,GAAI,GAA2B,EAAO,CAClC,GAAM,CAAC,EAAW,IAAS,EAAG,QAAQ,EAAI,GAAK,YAAY,MAAM,GAAG,EAC9D,EAAkB,EAAG,UAAU,EAAE,GACjC,EAAgB,CAClB,EACA,EACA,EACA,EAAG,gBAAgB,EACnB,EACA,EACA,MACJ,EACI,EACA,EAAc,GAAK,EAGnB,EAAc,IAAI,EAEtB,EAAW,MAAM,EAAe,CAAK,EACrC,EAAU,EAAW,MAAM,CAC/B,CAIA,MAHA,GAAQ,QAAU,EAClB,EAAQ,MAAQ,EAChB,EAAQ,KAAO,EACR,CACX,CACA,eAAe,EAAI,EAAM,EAAO,CAC5B,IAAM,EAAa,KAAK,WAClB,EAAS,EAAG,gBAAgB,EAClC,GAAI,EAAO,gBAAiB,CACxB,IAAK,GAAM,CAAC,EAAK,KAAQ,OAAO,QAAQ,CAAI,EACxC,GAAI,EAAE,KAAO,GAAQ,CACjB,IAAM,EAAc,EAAG,eAAe,EACtC,OAAO,OAAO,EAAY,gBAAgB,EAAG,CACzC,GAAG,EACH,UAAW,EACX,gBAAiB,MACrB,CAAC,EACD,KAAK,eAAe,EAAa,EAAK,CAAK,CAC/C,CAEJ,MACJ,CACA,GAAI,EAAG,aAAa,EAAG,CACnB,IAAM,EAAS,CAAC,CAAC,EAAG,gBAAgB,EAAE,OAChC,EAAS,CAAC,EAChB,IAAK,IAAM,KAAQ,EAAM,CACrB,EAAW,MAAM,CAAC,EAAG,eAAe,EAAG,CAAM,EAAG,CAAI,EACpD,IAAM,EAAe,EAAW,MAAM,GAClC,GAAU,IAAiB,SAC3B,EAAO,KAAK,CAAY,CAEhC,CACA,EAAM,EAAO,WAAa,CAC9B,MAEI,EAAW,MAAM,CAAC,EAAI,CAAM,EAAG,CAAI,EACnC,EAAM,EAAO,WAAa,EAAW,MAAM,CAEnD,CACA,MAAM,oBAAoB,EAAiB,EAAS,EAAU,CAC1D,IAAM,EAAe,KAAK,aACpB,EAAK,GAAiB,GAAG,EAAgB,MAAM,EAC/C,EAAa,CAAC,EACpB,GAAI,EAAS,YAAc,IAAK,CAC5B,IAAM,EAAQ,MAAMP,GAAY,EAAS,KAAM,CAAO,EAKtD,MAJI,EAAM,WAAa,GACnB,OAAO,OAAO,EAAY,MAAM,EAAa,KAAK,GAAI,CAAK,CAAC,EAEhE,MAAM,KAAK,YAAY,EAAiB,EAAS,EAAU,EAAY,KAAK,oBAAoB,CAAQ,CAAC,EAC/F,MAAM,uEAAuE,CAC3F,CACA,IAAK,IAAM,KAAU,EAAS,QAAS,CACnC,IAAM,EAAQ,EAAS,QAAQ,GAC/B,OAAO,EAAS,QAAQ,GACxB,EAAS,QAAQ,EAAO,YAAY,GAAK,CAC7C,CACA,IAAM,EAAwB,MAAM,KAAK,uBAAuB,EAAI,EAAS,EAAU,CAAU,EACjG,GAAI,EAAsB,OAAQ,CAC9B,IAAM,EAAQ,MAAMA,GAAY,EAAS,KAAM,CAAO,EACtD,GAAI,EAAM,WAAa,EAAG,CACtB,IAAM,EAAe,MAAM,EAAa,KAAK,EAAI,CAAK,EACtD,IAAK,IAAM,KAAU,EACb,EAAa,IAAW,OACxB,EAAW,GAAU,EAAa,GAG9C,CACJ,MACS,EAAsB,qBAC3B,MAAMA,GAAY,EAAS,KAAM,CAAO,EAG5C,MADA,GAAW,UAAY,KAAK,oBAAoB,CAAQ,EACjD,CACX,CACA,MAAM,uBAAuB,EAAQ,EAAS,EAAU,EAAM,EAAM,CAChE,IAAI,EACJ,CAII,CAJA,aAAgB,IACH,EAGA,EAEjB,IAAI,EAAsB,GACpB,EAAe,KAAK,aACpB,EAAK,GAAiB,GAAG,CAAM,EAC/B,EAAwB,CAAC,EAC/B,IAAK,GAAM,CAAC,EAAY,KAAiB,EAAG,eAAe,EAAG,CAC1D,IAAM,EAAe,EAAa,gBAAgB,EAClD,GAAI,EAAa,YAGb,IAFA,EAAsB,GACF,EAAa,YACnB,EACY,EAAa,eACnB,EACZ,EAAW,GAAc,MAAM,KAAK,uBAAuB,CACvD,WACA,eAAgB,CACpB,CAAC,EAGD,EAAW,GAAc,GAAe,EAAS,IAAI,OAGxD,GAAI,EAAS,KAAM,CACpB,IAAM,EAAQ,MAAMA,GAAY,EAAS,KAAM,CAAO,EAClD,EAAM,WAAa,IACnB,EAAW,GAAc,MAAM,EAAa,KAAK,EAAc,CAAK,EAE5E,OAEC,GAAI,EAAa,WAAY,CAC9B,IAAM,EAAM,OAAO,EAAa,UAAU,EAAE,YAAY,EAClD,EAAQ,EAAS,QAAQ,GAC/B,GAAY,GAAR,KACA,GAAI,EAAa,aAAa,EAAG,CAC7B,IAAM,EAAwB,EAAa,eAAe,EAC1D,EAAsB,gBAAgB,EAAE,WAAa,EACrD,IAAI,EACJ,CAKI,CALA,EAAsB,kBAAkB,GACxC,EAAsB,UAAU,IAAM,EAC3B,IAAW,EAAO,IAAK,CAAC,EAGxB,GAAY,CAAK,EAEhC,IAAM,EAAO,CAAC,EACd,IAAK,IAAM,KAAW,EAClB,EAAK,KAAK,MAAM,EAAa,KAAK,EAAuB,EAAQ,KAAK,CAAC,CAAC,EAE5E,EAAW,GAAc,CAC7B,MAEI,EAAW,GAAc,MAAM,EAAa,KAAK,EAAc,CAAK,CAGhF,MACK,GAAI,EAAa,oBAAsB,OAAW,CACnD,EAAW,GAAc,CAAC,EAC1B,IAAK,GAAM,CAAC,EAAQ,KAAU,OAAO,QAAQ,EAAS,OAAO,EACzD,GAAI,EAAO,WAAW,EAAa,iBAAiB,EAAG,CACnD,IAAM,EAAc,EAAa,eAAe,EAChD,EAAY,gBAAgB,EAAE,WAAa,EAC3C,EAAW,GAAY,EAAO,MAAM,EAAa,kBAAkB,MAAM,GAAK,MAAM,EAAa,KAAK,EAAa,CAAK,CAC5H,CAER,MACS,EAAa,iBAClB,EAAW,GAAc,EAAS,WAGlC,EAAsB,KAAK,CAAU,CAE7C,CAEA,MADA,GAAsB,oBAAsB,EACrC,CACX,CACJ,EC7RA,SAAgB,GAAyB,EAAI,EAAU,CACnD,GAAI,EAAS,gBAAgB,UACrB,EAAG,kBAAkB,IACpB,EAAG,UAAU,IAAM,GAChB,EAAG,UAAU,IAAM,GACnB,EAAG,UAAU,IAAM,GACvB,OAAO,EAAG,UAAU,EAG5B,GAAM,CAAE,YAAW,oBAAmB,aAAY,aAAc,EAAG,gBAAgB,EAQnF,OAPsB,EAAS,aACzB,OAAO,GAAsB,UAAoB,EAC7C,EACQ,GAAsB,EAC1B,EACA,OACR,SACkB,EAAS,gBAAgB,OACrD,CCZA,IAAa,GAAb,cAAiD,EAAa,CAC1D,SACA,YAAY,EAAU,CAClB,MAAM,EACN,KAAK,SAAW,CACpB,CACA,KAAK,EAAS,EAAM,CAChB,IAAM,EAAK,GAAiB,GAAG,CAAO,EACtC,GAAI,EAAG,aAAa,EAChB,OAAO,GAAY,CAAI,EAAE,IAAK,GAAS,KAAK,KAAK,EAAG,eAAe,EAAG,CAAI,CAAC,EAE/E,GAAI,EAAG,aAAa,EAChB,OAAQ,KAAK,cAAc,eAAiB,IAAY,CAAI,EAEhE,GAAI,EAAG,kBAAkB,EAErB,OADe,GAAyB,EAAI,KAAK,QACpC,EAAb,CACI,IAAK,GACD,OAAO,IAAgC,CAAI,EAC/C,IAAK,GACD,OAAO,IAAsB,CAAI,EACrC,IAAK,GACD,OAAO,IAAqB,CAAI,EACpC,QAEI,OADA,QAAQ,KAAK,iEAAkE,CAAI,EAC5E,IAAI,KAAK,CAAI,CAC5B,CAEJ,GAAI,EAAG,eAAe,EAAG,CACrB,IAAM,EAAY,EAAG,gBAAgB,EAAE,UACnC,EAAoB,EACxB,GAAI,EAQA,OAPI,EAAG,gBAAgB,EAAE,aACrB,EAAoB,KAAK,aAAa,CAAiB,IAE5C,IAAc,oBAAsB,EAAU,SAAS,OAAO,KAEzE,EAAoB,GAAe,KAAK,CAAiB,GAEtD,CAEf,CAaA,OAZI,EAAG,gBAAgB,EACZ,OAAO,CAAI,EAElB,EAAG,mBAAmB,EACf,OAAO,CAAI,EAElB,EAAG,mBAAmB,EACf,IAAI,GAAa,EAAM,YAAY,EAE1C,EAAG,gBAAgB,EACZ,OAAO,CAAI,EAAE,YAAY,IAAM,OAEnC,CACX,CACA,aAAa,EAAc,CACvB,OAAQ,KAAK,cAAc,aAAe,KAAS,KAAK,cAAc,eAAiB,IAAY,CAAY,CAAC,CACpH,CACJ,EC7Da,IAAb,cAAuD,EAAa,CAChE,kBACA,mBACA,YAAY,EAAmB,EAAe,CAC1C,MAAM,EACN,KAAK,kBAAoB,EACzB,KAAK,mBAAqB,IAAI,GAA4B,CAAa,CAC3E,CACA,gBAAgB,EAAc,CAC1B,KAAK,mBAAmB,gBAAgB,CAAY,EACpD,KAAK,kBAAkB,gBAAgB,CAAY,EACnD,KAAK,aAAe,CACxB,CACA,KAAK,EAAQ,EAAM,CACf,IAAM,EAAK,GAAiB,GAAG,CAAM,EAC/B,EAAS,EAAG,gBAAgB,EAC5B,EAAW,KAAK,cAAc,aAAe,GACnD,GAAI,EAAO,YAAc,EAAO,iBAC5B,OAAO,KAAK,mBAAmB,KAAK,EAAI,EAAS,CAAI,CAAC,EAE1D,GAAI,EAAO,gBACH,EAAG,aAAa,EAAG,CACnB,IAAM,EAAU,KAAK,cAAc,aAAeV,GAIlD,OAHI,OAAO,GAAS,SACT,EAAQ,CAAI,EAEhB,CACX,MACK,GAAI,EAAG,eAAe,EAIvB,MAHI,eAAgB,EACT,EAAS,CAAI,EAEjB,CACX,CAEJ,OAAO,KAAK,kBAAkB,KAAK,EAAI,CAAI,CAC/C,CACJ,ECpCa,IAAb,cAA6C,EAAa,CACtD,SACA,aAAe,GACf,YAAY,EAAU,CAClB,MAAM,EACN,KAAK,SAAW,CACpB,CACA,MAAM,EAAQ,EAAO,CACjB,IAAM,EAAK,GAAiB,GAAG,CAAM,EACrC,OAAQ,OAAO,EAAf,CACI,IAAK,SACD,GAAI,IAAU,KAAM,CAChB,KAAK,aAAe,OACpB,MACJ,CACA,GAAI,EAAG,kBAAkB,EAAG,CACxB,GAAI,EAAE,aAAiB,MACnB,MAAU,MAAM,oDAAoD,EAAM,gCAAgC,EAAG,QAAQ,EAAI,GAAG,EAGhI,OADe,GAAyB,EAAI,KAAK,QACpC,EAAb,CACI,IAAK,GACD,KAAK,aAAe,EAAM,YAAY,EAAE,QAAQ,QAAS,GAAG,EAC5D,MACJ,IAAK,GACD,KAAK,aAAe,GAAgB,CAAK,EACzC,MACJ,IAAK,GACD,KAAK,aAAe,OAAO,EAAM,QAAQ,EAAI,GAAI,EACjD,MACJ,QACI,QAAQ,KAAK,gDAAiD,CAAK,EACnE,KAAK,aAAe,OAAO,EAAM,QAAQ,EAAI,GAAI,CACzD,CACA,MACJ,CACA,GAAI,EAAG,aAAa,GAAK,eAAgB,EAAO,CAC5C,KAAK,cAAgB,KAAK,cAAc,eAAiB,IAAU,CAAK,EACxE,MACJ,CACA,GAAI,EAAG,aAAa,GAAK,MAAM,QAAQ,CAAK,EAAG,CAC3C,IAAI,EAAS,GACb,IAAK,IAAM,KAAQ,EAAO,CACtB,KAAK,MAAM,CAAC,EAAG,eAAe,EAAG,EAAG,gBAAgB,CAAC,EAAG,CAAI,EAC5D,IAAM,EAAa,KAAK,MAAM,EACxB,EAAa,EAAG,eAAe,EAAE,kBAAkB,EAAI,EAAa,IAAY,CAAU,EAC5F,IAAW,KACX,GAAU,MAEd,GAAU,CACd,CACA,KAAK,aAAe,EACpB,MACJ,CACA,KAAK,aAAe,KAAK,UAAU,EAAO,KAAM,CAAC,EACjD,MACJ,IAAK,SACD,IAAM,EAAY,EAAG,gBAAgB,EAAE,UACnC,EAAoB,EACxB,GAAI,KACe,IAAc,oBAAsB,EAAU,SAAS,OAAO,KAEzE,EAAoB,GAAe,KAAK,CAAiB,GAEzD,EAAG,gBAAgB,EAAE,YAAY,CACjC,KAAK,cAAgB,KAAK,cAAc,eAAiB,IAAU,EAAkB,SAAS,CAAC,EAC/F,MACJ,CAEJ,KAAK,aAAe,EACpB,MACJ,QACQ,EAAG,mBAAmB,EACtB,KAAK,aAAekB,GAAyB,EAG7C,KAAK,aAAe,OAAO,CAAK,CAE5C,CACJ,CACA,OAAQ,CACJ,IAAM,EAAS,KAAK,aAEpB,MADA,MAAK,aAAe,GACb,CACX,CACJ,ECxFa,IAAb,KAA6C,CACzC,gBACA,iBACA,OACA,YAAY,EAAiB,EAAe,EAAmB,IAAI,IAAwB,CAAa,EAAG,CACvG,KAAK,gBAAkB,EACvB,KAAK,iBAAmB,CAC5B,CACA,gBAAgB,EAAc,CAC1B,KAAK,gBAAgB,gBAAgB,CAAY,EACjD,KAAK,iBAAiB,gBAAgB,CAAY,CACtD,CACA,MAAM,EAAQ,EAAO,CACjB,IAAM,EAAK,GAAiB,GAAG,CAAM,EAC/B,EAAS,EAAG,gBAAgB,EAClC,GAAI,EAAO,YAAc,EAAO,WAAa,EAAO,UAAW,CAC3D,KAAK,iBAAiB,MAAM,EAAI,CAAK,EACrC,KAAK,OAAS,KAAK,iBAAiB,MAAM,EAC1C,MACJ,CACA,OAAO,KAAK,gBAAgB,MAAM,EAAI,CAAK,CAC/C,CACA,OAAQ,CACJ,GAAI,KAAK,SAAW,OAAW,CAC3B,IAAM,EAAS,KAAK,OAEpB,MADA,MAAK,OAAS,OACP,CACX,CACA,OAAO,KAAK,gBAAgB,MAAM,CACtC,CACJ,EC/BM,GAAmB,6BACzB,SAAgB,GAAgB,EAAQ,EAAM,CAC1C,GAAI,GAAQ,KACR,OAAO,EAEX,IAAM,EAAK,GAAiB,GAAG,CAAM,EACrC,GAAI,EAAG,gBAAgB,EAAE,UACrB,OAAO,GAEX,GAAI,EAAG,aAAa,MACM,EAAG,eAAe,EAAE,gBAAgB,EAAE,UAExD,OAAO,QAGV,GAAI,EAAG,YAAY,MACE,EAAG,aAAa,EAAE,gBAAgB,EAAE,WAAe,EAAG,eAAe,EAAE,gBAAgB,EAAE,UAE3G,OAAO,QAGV,GAAI,EAAG,eAAe,GAAK,OAAO,GAAS,SAAU,CACtD,IAAM,EAAS,EACT,EAAY,CAAC,EACnB,IAAK,GAAM,CAAC,EAAQ,KAAa,EAAG,eAAe,EAC3C,EAAO,IAAW,OAClB,EAAU,GAAU,GAAgB,EAAU,EAAO,EAAO,GAGpE,OAAO,CACX,CACA,OAAO,CACX,CC9BA,IAAa,GAAb,KAAqB,CACjB,gBAAkB,GAAe,EACjC,OACA,OAAO,cAAe,CAClB,OAAO,IAAI,GACf,CACA,6BAA6B,EAAa,EAAe,EAAS,CAAE,eAAc,aAAY,cAAa,0BAAyB,2BAA0B,gBAAe,oBAAmB,eAAgB,CAC5M,IAAK,IAAM,KAAM,EAAa,KAAK,IAAI,EAAE,EAAa,EAAa,EAAe,CAAO,EACrF,KAAK,gBAAgB,IAAI,CAAE,EAE/B,IAAM,EAAQ,EAAY,OAAO,KAAK,eAAe,EAC/C,CAAE,UAAW,EACb,EAA0B,CAC5B,SACA,aACA,cACA,0BACA,4BACC,KAAqB,CAClB,gBAAiB,KACjB,GAAG,CACP,EACA,GAAG,CACP,EACM,CAAE,kBAAmB,EAC3B,OAAO,EAAM,QAAS,GAAY,EAAe,OAAO,EAAQ,QAAS,GAAW,CAAC,CAAC,EAAG,CAAuB,CACpH,CACJ,EACM,IAAN,KAAmB,CACf,UAAc,CAAE,EAChB,IAAM,CAAC,EACP,kBAAsB,CAAC,EACvB,aAAe,GACf,YAAc,GACd,mBAAqB,CAAC,EACtB,eAAiB,CAAC,EAClB,yBAA2B,OAC3B,0BAA4B,OAC5B,YAAc,KACd,cAAgB,KAChB,iBACA,KAAK,EAAI,CACL,KAAK,MAAQ,CACjB,CACA,GAAG,EAA+B,CAE9B,MADA,MAAK,IAAM,EACJ,IACX,CACA,EAAE,EAAoB,CAElB,MADA,MAAK,cAAgB,EACd,IACX,CACA,EAAE,EAAS,EAAW,EAAgB,CAAC,EAAG,CAMtC,MALA,MAAK,eAAiB,CAClB,UACA,YACA,GAAG,CACP,EACO,IACX,CACA,EAAE,EAAoB,CAAC,EAAG,CAEtB,MADA,MAAK,mBAAqB,EACnB,IACX,CACA,EAAE,EAAY,EAAa,CAGvB,MAFA,MAAK,YAAc,EACnB,KAAK,aAAe,EACb,IACX,CACA,EAAE,EAAe,GAAM,EAAG,EAAgB,GAAM,EAAG,CAG/C,MAFA,MAAK,yBAA2B,EAChC,KAAK,0BAA4B,EAC1B,IACX,CACA,IAAI,EAAY,CAEZ,MADA,MAAK,YAAc,EACZ,IACX,CACA,GAAG,EAAc,CAEb,MADA,MAAK,cAAgB,EACd,IACX,CACA,GAAG,EAAW,CAGV,MAFA,MAAK,iBAAmB,EACxB,KAAK,eAAe,gBAAkB,EAC/B,IACX,CACA,OAAQ,CACJ,IAAM,EAAU,KACZ,EACJ,MAAQ,GAAa,cAAc,EAAQ,CACvC,MACA,OAAO,kCAAmC,CACtC,OAAO,EAAQ,GACnB,CACA,YAAY,GAAG,CAAC,GAAQ,CACpB,MAAM,EACN,KAAK,MAAQ,GAAS,CAAC,EACvB,EAAQ,MAAM,IAAI,EAClB,KAAK,OAAS,EAAQ,gBAC1B,CACA,kBAAkB,EAAO,EAAe,EAAS,CAC7C,IAAM,EAAK,EAAQ,iBACb,EAAQ,IAAK,IAAM,GAAI,MACvB,EAAS,IAAK,IAAM,GAAI,OAC9B,OAAO,KAAK,6BAA6B,EAAO,EAAe,EAAS,CACpE,YAAa,EACb,aAAc,EAAQ,cACtB,WAAY,EAAQ,YACpB,YAAa,EAAQ,aACrB,wBAAyB,EAAQ,2BAA6B,EAAK,GAAgB,KAAK,KAAM,CAAK,EAAK,GAAM,GAC9G,yBAA0B,EAAQ,4BAA8B,EAAK,GAAgB,KAAK,KAAM,CAAM,EAAK,GAAM,GACjH,cAAe,EAAQ,eACvB,kBAAmB,EAAQ,kBAC/B,CAAC,CACL,CACA,UAAY,EAAQ,YACpB,YAAc,EAAQ,aAC1B,CACJ,CACJ,EC3Ha,IAAb,MAAa,UAAyB,KAAM,CACxC,OACA,UACA,WACA,UACA,YAAY,EAAS,CACjB,MAAM,EAAQ,OAAO,EACrB,OAAO,eAAe,KAAM,OAAO,eAAe,IAAI,EAAE,YAAY,SAAS,EAC7E,KAAK,KAAO,EAAQ,KACpB,KAAK,OAAS,EAAQ,OACtB,KAAK,UAAY,EAAQ,SAC7B,CACA,OAAO,WAAW,EAAO,CACrB,GAAI,CAAC,EACD,MAAO,GACX,IAAM,EAAY,EAClB,OAAQ,EAAiB,UAAU,cAAc,CAAS,GACrD,EAAQ,EAAU,QACf,EAAQ,EAAU,YACjB,EAAU,SAAW,UAAY,EAAU,SAAW,SACnE,CACA,OAAQ,OAAO,aAAa,EAAU,CAClC,GAAI,CAAC,EACD,MAAO,GACX,IAAM,EAAY,EAUlB,OATI,OAAS,EACF,EAAiB,WAAW,CAAQ,EAE3C,EAAiB,WAAW,CAAQ,EAChC,EAAU,MAAQ,KAAK,KAChB,KAAK,UAAU,cAAc,CAAQ,GAAK,EAAU,OAAS,KAAK,KAEtE,KAAK,UAAU,cAAc,CAAQ,EAEzC,EACX,CACJ,EACa,IAA4B,EAAW,EAAY,CAAC,KAC7D,OAAO,QAAQ,CAAS,EACnB,QAAQ,EAAG,KAAO,IAAM,MAAS,EACjC,SAAS,CAAC,EAAG,KAAO,EACjB,EAAU,IAAM,MAAa,EAAU,KAAO,MAC9C,EAAU,GAAK,EAEvB,CAAC,EAED,EAAU,QADM,EAAU,SAAW,EAAU,SAAW,eAE1D,OAAO,EAAU,QACV,GChDE,IAA6B,GAAS,CAC/C,OAAQ,EAAR,CACI,IAAK,WACD,MAAO,CACH,UAAW,WACX,kBAAmB,IACvB,EACJ,IAAK,YACD,MAAO,CACH,UAAW,WACX,kBAAmB,IACvB,EACJ,IAAK,eACD,MAAO,CACH,UAAW,WACX,kBAAmB,IACvB,EACJ,IAAK,SACD,MAAO,CACH,UAAW,WACX,kBAAmB,GACvB,EACJ,QACI,MAAO,CAAC,CAChB,CACJ,ECvBM,GAAkB,OAAO,OAAO,EAAW,EACpC,IAA4B,GAAkB,CACvD,IAAM,EAAqB,CAAC,EAC5B,IAAK,IAAM,KAAM,GAAa,CAC1B,IAAM,EAAc,GAAY,GAC5B,EAAc,KAAiB,QAGnC,EAAmB,KAAK,CACpB,gBAAmB,EACnB,wBAA2B,EAAc,EAC7C,CAAC,CACL,CACA,IAAK,GAAM,CAAC,EAAI,KAAiB,OAAO,QAAQ,EAAc,oBAAsB,CAAC,CAAC,EAClF,EAAmB,KAAK,CACpB,gBAAmB,EACnB,wBAA2B,CAC/B,CAAC,EAEL,MAAO,CACH,qBAAqB,EAAM,CACvB,EAAc,mBAAqB,EAAc,oBAAsB,CAAC,EACxE,IAAM,EAAK,EAAK,YAAY,EACtB,EAAO,EAAK,oBAAoB,EAClC,GAAgB,SAAS,CAAE,EAC3B,EAAc,mBAAmB,EAAG,YAAY,GAAK,EAGrD,EAAc,mBAAmB,GAAM,EAE3C,EAAmB,KAAK,CAAI,CAChC,EACA,oBAAqB,CACjB,OAAO,CACX,CACJ,CACJ,EACa,IAAgC,GAAiB,CAC1D,IAAM,EAAgB,CAAC,EAOvB,OANA,EAAa,mBAAmB,EAAE,QAAS,GAAsB,CAC7D,IAAM,EAAK,EAAkB,YAAY,EACrC,GAAgB,SAAS,CAAE,IAC3B,EAAc,GAAM,EAAkB,oBAAoB,EAElE,CAAC,EACM,CACX,EChDa,IAAyB,IAC3B,CACH,iBAAiB,EAAe,CAC5B,EAAc,cAAgB,CAClC,EACA,eAAgB,CACZ,OAAO,EAAc,aACzB,CACJ,GAES,IAA6B,GAA+B,CACrE,IAAM,EAAgB,CAAC,EAEvB,MADA,GAAc,cAAgB,EAA2B,cAAc,EAChE,CACX,ECZa,IAAoC,GACtC,OAAO,OAAO,IAAyB,CAAa,EAAG,IAAsB,CAAa,CAAC,EAGzF,IAA+B,GACjC,OAAO,OAAO,IAA6B,CAAM,EAAG,IAA0B,CAAM,CAAC,ECPnF,GAAwB,GAAQ,CACzC,IAAM,EAAe,QACrB,IAAK,IAAM,KAAO,EACV,EAAI,eAAe,CAAG,GAAK,EAAI,GAAK,KAAkB,OACtD,EAAI,GAAO,EAAI,GAAK,GAEf,OAAO,EAAI,IAAS,UAAY,EAAI,KAAS,OAClD,EAAI,GAAO,GAAqB,EAAI,EAAI,GAGhD,OAAO,CACX,ECXa,GAAb,KAAwB,CACpB,OAAQ,CAAE,CACV,OAAQ,CAAE,CACV,MAAO,CAAE,CACT,MAAO,CAAE,CACT,OAAQ,CAAE,CACd,ECJMC,IAAwB,iBACxB,IAAgC,+BACtC,SAAgB,KAA2B,CACvC,OAAQ,EAAM,IAAY,KAAO,IAAS,CACtC,GAAM,CAAE,WAAY,EACpB,GAAI,GAAY,WAAW,CAAO,GAC1B,EAAEA,OAAyB,EAAQ,UAAY,EAAE,OAAiC,EAAQ,SAAU,CACpG,IAAM,EAAU,wIACZ,OAAO,GAAS,QAAQ,MAAS,YAAc,EAAE,EAAQ,kBAAkB,IAC3E,EAAQ,OAAO,KAAK,CAAO,EAG3B,QAAQ,KAAK,CAAO,CAE5B,CAEJ,OAAO,EAAK,CAAE,GAAG,CAAK,CAAC,CAC3B,CACJ,CACA,IAAa,IAA4C,CACrD,KAAM,kBACN,KAAM,CAAC,6BAA6B,EACpC,KAAM,oCACN,SAAU,EACd,EACa,IAAqC,IAAY,CAC1D,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAyB,EAAG,GAAyC,CACzF,CACJ,GC/Ba,IAAoC,IACrC,EAAM,IAAY,KAAO,IAAS,CACtC,IAAM,EAAiB,MAAM,EAAO,OAAO,EACrC,EAAoB,EAAO,OAC7B,MAAe,CAAE,EACjB,EAAQ,qBACR,OAAO,eAAe,EAAQ,SAAU,CACpC,SAAU,GACV,MAAO,SACI,EAAQ,kBAEvB,CAAC,EACD,MAAe,OAAO,eAAe,EAAQ,SAAU,CACnD,SAAU,GACV,MAAO,CACX,CAAC,GAEL,GAAI,CACA,IAAM,EAAS,MAAM,EAAK,CAAI,EAC9B,GAAI,EAAQ,qBACR,EAAO,EAEH,IAAmB,MADF,EAAO,OAAO,GAE/B,MAAU,MAAM,uDAAuD,EAG/E,OAAO,CACX,OACO,EAAG,CAEN,MADA,EAAO,EACD,CACV,CACJ,EAES,IAA0C,CACnD,KAAM,CAAC,kBAAmB,IAAI,EAC9B,KAAM,mCACN,SAAU,GACV,SAAU,SACV,aAAc,sBAClB,ECvCA,SAAgB,IAAyB,EAAc,CACnD,OAAQ,EAAM,IAAY,KAAO,IAAS,CACtC,GAAI,CACA,OAAO,MAAM,EAAK,CAAI,CAC1B,OACO,EAAK,CACR,GAAI,EAAa,sBAAuB,CACpC,IAAM,EAAa,GAAK,WAAW,eAC7B,EAAe,EAAQ,cAAgB,oBACvC,EAAqB,GAAK,WAAW,UAAU,uBACrD,GAAI,IACI,IAAe,KACd,IAAe,MAAQ,GAAK,OAAS,sCAAwC,IAAgB,CAC9F,GAAI,CACA,IAAM,EAAe,EACrB,EAAQ,QAAQ,MAAM,oBAAoB,MAAM,EAAa,OAAO,EAAE,MAAM,GAAc,EAC1F,EAAQ,mBAAqB,CACjC,OACO,EAAG,CACN,MAAU,MAAM,2BAA6B,CAAC,CAClD,CACA,OAAO,EAAK,CAAI,CACpB,CAER,CACA,MAAM,CACV,CACJ,CACJ,CACA,IAAa,IAAkC,CAC3C,KAAM,aACN,KAAM,CAAC,kBAAmB,IAAI,EAC9B,KAAM,2BACN,SAAU,EACd,EACa,IAAqC,IAAkB,CAChE,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAyB,CAAY,EAAG,GAA+B,EACvF,EAAY,cAAc,IAAiC,CAAY,EAAG,GAAuC,CACrH,CACJ,GCvCa,IAAuB,IACxB,EAAM,IAAY,KAAO,IAAS,CACtC,IAAM,EAAS,MAAM,EAAK,CAAI,EACxB,CAAE,YAAa,EACrB,GAAI,GAAa,WAAW,CAAQ,GAC5B,EAAS,QAAQ,QAAS,CAC1B,EAAS,QAAQ,cAAgB,EAAS,QAAQ,QAClD,GAAI,CACA,IAAqB,EAAS,QAAQ,OAAO,CACjD,OACO,EAAG,CACN,EAAQ,QAAQ,KAAK,uBAAuB,EAAQ,WAAW,IAAI,EAAQ,YAAY,qBAAqB,EAAS,QAAQ,QAAQ,KAAK,GAAG,EAC7I,OAAO,EAAS,QAAQ,OAC5B,CACJ,CAEJ,OAAO,CACX,EAES,IAA6B,CACtC,KAAM,CAAC,IAAI,EACX,KAAM,sBACN,SAAU,GACV,SAAU,QACV,aAAc,wBAClB,EACa,IAAgC,IAAkB,CAC3D,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAAoB,CAAY,EAAG,GAA0B,CAC3F,CACJ,GChCa,IAAb,MAAa,CAAuB,CAChC,KACA,cAAgB,KAAK,IAAI,EACzB,OAAO,qCAAuC,IAC9C,YAAY,EAAO,CAAC,EAAG,CACnB,KAAK,KAAO,CAChB,CACA,IAAI,EAAK,CACL,IAAM,EAAQ,KAAK,KAAK,GACnB,KAGL,OAAO,CACX,CACA,IAAI,EAAK,EAAO,CAEZ,MADA,MAAK,KAAK,GAAO,EACV,CACX,CACA,OAAO,EAAK,CACR,OAAO,KAAK,KAAK,EACrB,CACA,MAAM,cAAe,CACjB,IAAM,EAAM,KAAK,IAAI,EACjB,UAAK,cAAgB,EAAuB,qCAAuC,GAGvF,IAAK,IAAM,KAAO,KAAK,KAAM,CACzB,IAAM,EAAQ,KAAK,KAAK,GACxB,GAAI,CAAC,EAAM,aAAc,CACrB,IAAM,EAAa,MAAM,EAAM,SAC3B,EAAW,YACP,EAAW,WAAW,QAAQ,EAAI,GAClC,OAAO,KAAK,KAAK,EAG7B,CACJ,CACJ,CACJ,ECtCa,GAAb,KAAyC,CACrC,UACA,aACA,SACA,YAAY,EAAW,EAAe,GAAO,EAAW,KAAK,IAAI,EAAG,CAChE,KAAK,UAAY,EACjB,KAAK,aAAe,EACpB,KAAK,SAAW,CACpB,CACA,IAAI,UAAW,CAEX,MADA,MAAK,SAAW,KAAK,IAAI,EAClB,KAAK,SAChB,CACJ,ECXa,IAAb,MAAa,CAA8B,CACvC,gBACA,MACA,OAAO,kBAAoB,IAC3B,YAAY,EAAiB,EAAQ,IAAI,IAA0B,CAC/D,KAAK,gBAAkB,EACvB,KAAK,MAAQ,CACjB,CACA,MAAM,qBAAqB,EAAa,EAAoB,CACxD,IAAM,EAAM,EAAmB,OACzB,CAAE,SAAU,KACZ,EAAQ,EAAM,IAAI,CAAG,EAiB3B,OAhBI,EACO,EAAM,SAAS,KAAM,IACL,EAAS,YAAY,QAAQ,GAAK,GAAK,KAAK,IAAI,EAExD,EAAM,IAAI,EAAK,IAAI,GAA4B,KAAK,YAAY,CAAG,CAAC,CAAC,EAAE,WAE1D,EAAS,YAAY,QAAQ,GAAK,GAAK,KAAK,IAAI,EAAI,EAA8B,mBACpF,CAAC,EAAM,eACzB,EAAM,aAAe,GACrB,KAAK,YAAY,CAAG,EAAE,KAAM,GAAO,CAC/B,EAAM,IAAI,EAAK,IAAI,GAA4B,QAAQ,QAAQ,CAAE,CAAC,CAAC,CACvE,CAAC,GAEE,EACV,EAEE,EAAM,IAAI,EAAK,IAAI,GAA4B,KAAK,YAAY,CAAG,CAAC,CAAC,EAAE,QAClF,CACA,MAAM,YAAY,EAAK,CACnB,MAAM,KAAK,MAAM,aAAa,EAAE,MAAO,GAAU,CAC7C,QAAQ,KAAK;EAAuE,CAAK,CAC7F,CAAC,EACD,IAAM,EAAU,MAAM,KAAK,gBAAgB,CAAG,EAC9C,GAAI,CAAC,EAAQ,aAAa,aAAe,CAAC,EAAQ,aAAa,gBAC3D,MAAU,MAAM,8EAA8E,EAQlG,MAAO,CALH,YAAa,EAAQ,YAAY,YACjC,gBAAiB,EAAQ,YAAY,gBACrC,aAAc,EAAQ,YAAY,aAClC,WAAY,EAAQ,YAAY,WAAa,IAAI,KAAK,EAAQ,YAAY,UAAU,EAAI,MAE9E,CAClB,CACJ,EChDa,IAAwB,kBACxB,IAAyB,mBACzB,GAAuB,aACvB,IAA6B,sBAC7B,IAAsB,gBACtB,GAAwB,kBACxB,GAAoB,uBAEpB,GAAc,gBACd,GAAkB,GAAqB,YAAY,EAEnD,IAAoB,CAAC,GAAa,GAAiB,MAAW,EAC3C,GAAsB,YAAY,EAClE,IAAaC,IAAgB,uBAChB,IAAe,GAAkB,YAAY,EAE7C,IAA4B,CACrC,cAAe,GACf,gBAAiB,GACjB,WAAY,GACZ,OAAQ,GACR,KAAM,GACN,aAAc,GACd,eAAgB,GAChB,OAAQ,GACR,QAAS,GACT,GAAI,GACJ,QAAS,GACT,oBAAqB,GACrB,QAAS,GACT,aAAc,GACd,kBAAmB,EACvB,EACa,IAAuB,UACvB,IAAqB,QAErB,GAAuB,mBAEvB,IAA6B,2BAC7BC,IAAmB,mBAEnB,GAAsB,eCtC7B,GAAkB,CAAC,EACnB,GAAa,CAAC,EACP,IAAe,EAAW,EAAQ,IAAY,GAAG,EAAU,GAAG,EAAO,GAAG,EAAQ,GAAG,KACnF,IAAgB,MAAO,EAAmB,EAAa,EAAW,EAAQ,IAAY,CAE/F,IAAM,EAAW,GAAG,EAAU,GAAG,EAAO,GAAG,EAAQ,GAAG,GAAM,MADpC,GAAK,EAAmB,EAAY,gBAAiB,EAAY,WAAW,CAC/B,EAAE,GAAG,EAAY,eACtF,GAAI,KAAY,GACZ,OAAO,GAAgB,GAG3B,IADA,GAAW,KAAK,CAAQ,EACjB,GAAW,WACd,OAAO,GAAgB,GAAW,MAAM,GAE5C,IAAI,EAAM,OAAO,EAAY,kBAC7B,IAAK,IAAM,IAAY,CAAC,EAAW,EAAQ,EAAS,EAAmB,EACnE,EAAM,MAAM,GAAK,EAAmB,EAAK,CAAQ,EAErD,MAAQ,IAAgB,GAAY,CACxC,EAOM,IAAQ,EAAM,EAAQ,IAAS,CACjC,IAAM,EAAO,IAAI,EAAK,CAAM,EAE5B,OADA,EAAK,OAAO,GAAa,CAAI,CAAC,EACvB,EAAK,OAAO,CACvB,EC/Ba,IAAuB,CAAE,WAAW,EAAmB,IAAoB,CACpF,IAAM,EAAY,CAAC,EACnB,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EAAE,KAAK,EAAG,CAClD,GAAI,EAAQ,IAAe,KACvB,SAEJ,IAAM,EAAsB,EAAW,YAAY,GAC/C,KAAuB,KACvB,GAAmB,IAAI,CAAmB,GAC1C,IAAqB,KAAK,CAAmB,GAC7C,IAAmB,KAAK,CAAmB,KACvC,CAAC,GAAoB,GAAmB,CAAC,EAAgB,IAAI,CAAmB,KAIxF,EAAU,GAAuB,EAAQ,GAAY,KAAK,EAAE,QAAQ,OAAQ,GAAG,EACnF,CACA,OAAO,CACX,ECfa,GAAiB,MAAO,CAAE,UAAS,QAAQ,IAAoB,CACxE,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EACxC,GAAI,EAAW,YAAY,2BACvB,OAAO,EAAQ,GAGvB,GAAI,GAAQ,KACR,MAAO,mEAEN,GAAI,OAAO,GAAS,UAAY,YAAY,OAAO,CAAI,GAAK,GAAc,CAAI,EAAG,CAClF,IAAM,EAAW,IAAI,EAErB,OADA,EAAS,OAAO,GAAa,CAAI,CAAC,EAC3B,GAAM,MAAM,EAAS,OAAO,CAAC,CACxC,CACA,OAAOA,GACX,ECjBa,IAAb,KAA6B,CACzB,OAAO,EAAS,CACZ,IAAM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EAAG,CAC3C,IAAM,EAAQrB,GAAS,CAAU,EACjC,EAAO,KAAK,WAAW,KAAK,CAAC,EAAM,UAAU,CAAC,EAAG,EAAO,KAAK,kBAAkB,EAAQ,EAAW,CAAC,CACvG,CACA,IAAM,EAAM,IAAI,WAAW,EAAO,QAAQ,EAAO,IAAU,EAAQ,EAAM,WAAY,CAAC,CAAC,EACnF,EAAW,EACf,IAAK,IAAM,KAAS,EAChB,EAAI,IAAI,EAAO,CAAQ,EACvB,GAAY,EAAM,WAEtB,OAAO,CACX,CACA,kBAAkB,EAAQ,CACtB,OAAQ,EAAO,KAAf,CACI,IAAK,UACD,OAAO,WAAW,KAAK,CAAC,IAAO,KAAa,CAAC,EACjD,IAAK,OACD,OAAO,WAAW,KAAK,CAAC,EAAG,EAAO,KAAK,CAAC,EAC5C,IAAK,QACD,IAAM,EAAY,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAGjD,OAFA,EAAU,SAAS,EAAG,CAAC,EACvB,EAAU,SAAS,EAAG,EAAO,MAAO,EAAK,EAClC,IAAI,WAAW,EAAU,MAAM,EAC1C,IAAK,UACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAG/C,OAFA,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,SAAS,EAAG,EAAO,MAAO,EAAK,EAChC,IAAI,WAAW,EAAQ,MAAM,EACxC,IAAK,OACD,IAAM,EAAY,IAAI,WAAW,CAAC,EAGlC,MAFA,GAAU,GAAK,EACf,EAAU,IAAI,EAAO,MAAM,MAAO,CAAC,EAC5B,EACX,IAAK,SACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAO,MAAM,UAAU,CAAC,EACzE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAO,MAAM,WAAY,EAAK,EACnD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAO,MAAO,CAAC,EACrB,EACX,IAAK,SACD,IAAM,EAAYA,GAAS,EAAO,KAAK,EACjC,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAU,UAAU,CAAC,EACtE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAU,WAAY,EAAK,EAChD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAW,CAAC,EAClB,EACX,IAAK,YACD,IAAM,EAAU,IAAI,WAAW,CAAC,EAGhC,MAFA,GAAQ,GAAK,EACb,EAAQ,IAAIsB,IAAM,WAAW,EAAO,MAAM,QAAQ,CAAC,EAAE,MAAO,CAAC,EACtD,EACX,IAAK,OACD,GAAI,CAACC,IAAa,KAAK,EAAO,KAAK,EAC/B,MAAU,MAAM,0BAA0B,EAAO,OAAO,EAE5D,IAAM,EAAY,IAAI,WAAW,EAAE,EAGnC,MAFA,GAAU,GAAK,EACf,EAAU,IAAI,GAAQ,EAAO,MAAM,QAAQ,MAAO,EAAE,CAAC,EAAG,CAAC,EAClD,CACf,CACJ,CACJ,EACIC,KACH,SAAU,EAAmB,CAC1B,EAAkB,EAAkB,SAAc,GAAK,WACvD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,MAAW,GAAK,QACpD,EAAkB,EAAkB,QAAa,GAAK,UACtD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,OAAY,GAAK,SACrD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,MACvD,GAAGA,GAAsB,GAAoB,CAAC,CAAE,EAChD,IAAMD,IAAe,iEACRD,IAAb,MAAaA,CAAM,CACf,MACA,YAAY,EAAO,CAEf,GADA,KAAK,MAAQ,EACT,EAAM,aAAe,EACrB,MAAU,MAAM,uCAAuC,CAE/D,CACA,OAAO,WAAW,EAAQ,CACtB,GAAI,EAAS,oBAA6B,EAAS,oBAC/C,MAAU,MAAM,GAAG,EAAO,oEAAoE,EAElG,IAAM,EAAQ,IAAI,WAAW,CAAC,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAY,KAAK,IAAI,KAAK,MAAM,CAAM,CAAC,EAAG,EAAI,IAAM,EAAY,EAAG,IAAK,GAAa,IACjG,EAAM,GAAK,EAKf,OAHI,EAAS,GACT,GAAO,CAAK,EAET,IAAIA,EAAM,CAAK,CAC1B,CACA,SAAU,CACN,IAAM,EAAQ,KAAK,MAAM,MAAM,CAAC,EAC1B,EAAW,EAAM,GAAK,IAI5B,OAHI,GACA,GAAO,CAAK,EAET,SAAS,GAAM,CAAK,EAAG,EAAE,GAAK,EAAW,GAAK,EACzD,CACA,UAAW,CACP,OAAO,OAAO,KAAK,QAAQ,CAAC,CAChC,CACJ,EACA,SAASG,GAAO,EAAO,CACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAM,IAAM,IAEhB,IAAK,IAAI,EAAI,EAAG,EAAI,KAChB,EAAM,KACF,EAAM,KAAO,GAFG,KAK5B,CC7HA,IAAa,KAAa,EAAc,IAAY,CAChD,EAAe,EAAa,YAAY,EACxC,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EACxC,GAAI,IAAiB,EAAW,YAAY,EACxC,MAAO,GAGf,MAAO,EACX,ECPa,KAAsB,EAAS,EAAU,CAAC,IAAM,CACzD,GAAM,CAAE,UAAS,QAAQ,CAAC,GAAM,GAAY,MAAM,CAAO,EACzD,IAAK,IAAM,KAAQ,OAAO,KAAK,CAAO,EAAG,CACrC,IAAM,EAAQ,EAAK,YAAY,GAC1B,EAAM,MAAM,EAAG,CAAC,IAAM,UAAY,CAAC,EAAQ,oBAAoB,IAAI,CAAK,GACzE,EAAQ,kBAAkB,IAAI,CAAK,KACnC,EAAM,GAAQ,EAAQ,GACtB,OAAO,EAAQ,GAEvB,CACA,MAAO,CACH,GAAG,EACH,UACA,OACJ,CACJ,ECda,GAAkB,GAAY,CACvC,EAAU,GAAY,MAAM,CAAO,EACnC,IAAK,IAAM,KAAc,OAAO,KAAK,EAAQ,OAAO,EAC5C,IAAkB,QAAQ,EAAW,YAAY,CAAC,EAAI,IACtD,OAAO,EAAQ,QAAQ,GAG/B,OAAO,CACX,ECRa,KAAqB,CAAE,QAAQ,CAAC,KAAQ,CACjD,IAAM,EAAO,CAAC,EACR,EAAa,CAAC,EACpB,IAAK,IAAM,KAAO,OAAO,KAAK,CAAK,EAAG,CAClC,GAAI,EAAI,YAAY,sBAChB,SAEJ,IAAM,EAAa,GAAU,CAAG,EAChC,EAAK,KAAK,CAAU,EACpB,IAAM,EAAQ,EAAM,GAChB,OAAO,GAAU,SACjB,EAAW,GAAc,GAAG,EAAW,GAAG,GAAU,CAAK,IAEpD,MAAM,QAAQ,CAAK,IACxB,EAAW,GAAc,EACpB,MAAM,CAAC,EACP,QAAQ,EAAS,IAAU,EAAQ,OAAO,CAAC,GAAG,EAAW,GAAG,GAAU,CAAK,GAAG,CAAC,EAAG,CAAC,CAAC,EACpF,KAAK,EACL,KAAK,GAAG,EAErB,CACA,OAAO,EACF,KAAK,EACL,IAAK,GAAQ,EAAW,EAAI,EAC5B,OAAQ,GAAe,CAAU,EACjC,KAAK,GAAG,CACjB,EC5Ba,IAAW,GAAS,IAAO,CAAI,EACvC,YAAY,EACZ,QAAQ,YAAa,GAAG,EAChB,IAAU,GACf,OAAO,GAAS,SACT,IAAI,KAAK,EAAO,GAAI,EAE3B,OAAO,GAAS,SACZ,OAAO,CAAI,EACJ,IAAI,KAAK,OAAO,CAAI,EAAI,GAAI,EAEhC,IAAI,KAAK,CAAI,EAEjB,ECPE,IAAb,KAA6B,CACzB,QACA,eACA,mBACA,OACA,cACA,cACA,YAAY,CAAE,gBAAe,cAAa,SAAQ,UAAS,SAAQ,gBAAgB,IAAS,CACxF,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,cAAgB,EACrB,KAAK,cAAgB,OAAO,GAAkB,UAAY,EAAgB,GAC1E,KAAK,eAAiBhB,GAAkB,CAAM,EAC9C,KAAK,mBAAqBA,GAAkB,CAAW,CAC3D,CACA,uBAAuB,EAAS,EAAkB,EAAa,CAC3D,IAAM,EAAgB,OAAO,KAAK,CAAgB,EAAE,KAAK,EACzD,MAAO,GAAG,EAAQ;EACxB,KAAK,iBAAiB,CAAO;EAC7B,IAAkB,CAAO;EACzB,EAAc,IAAK,GAAS,GAAG,EAAK,GAAG,EAAiB,IAAO,EAAE,KAAK;CAAI;;EAE1E,EAAc,KAAK,GAAG;EACtB,GACE,CACA,MAAM,mBAAmB,EAAU,EAAiB,EAAkB,EAAqB,CACvF,IAAM,EAAO,IAAI,KAAK,OAGtB,OAFA,EAAK,OAAO,GAAa,CAAgB,CAAC,EAEnC,GAAG;EAChB;EACA;EACA,GAAM,MAJ4B,EAAK,OAAO,CAI3B,GACjB,CACA,iBAAiB,CAAE,QAAQ,CACvB,GAAI,KAAK,cAAe,CACpB,IAAM,EAAyB,CAAC,EAChC,IAAK,IAAM,KAAe,EAAK,MAAM,GAAG,EAChC,GAAa,SAAW,GAExB,IAAgB,MAEhB,IAAgB,KAChB,EAAuB,IAAI,EAG3B,EAAuB,KAAK,CAAW,GAK/C,OADsB,GAAU,GADN,GAAM,WAAW,GAAG,EAAI,IAAM,KAAK,EAAuB,KAAK,GAAG,IAAI,EAAuB,OAAS,GAAK,GAAM,SAAS,GAAG,EAAI,IAAM,IAE9I,EAAE,QAAQ,OAAQ,GAAG,CAC5C,CACA,OAAO,CACX,CACA,4BAA4B,EAAa,CACrC,GAAI,OAAO,GAAgB,UACvB,OAAO,EAAY,aAAgB,UACnC,OAAO,EAAY,iBAAoB,SACvC,MAAU,MAAM,yCAAyC,CAEjE,CACA,WAAW,EAAK,CACZ,IAAM,EAAW,IAAQ,CAAG,EAAE,QAAQ,SAAU,EAAE,EAClD,MAAO,CACH,WACA,UAAW,EAAS,MAAM,EAAG,CAAC,CAClC,CACJ,CACA,uBAAuB,EAAS,CAC5B,OAAO,OAAO,KAAK,CAAO,EAAE,KAAK,EAAE,KAAK,GAAG,CAC/C,CACJ,ECnEa,GAAb,cAAiC,GAAgB,CAC7C,gBAAkB,IAAI,IACtB,YAAY,CAAE,gBAAe,cAAa,SAAQ,UAAS,SAAQ,gBAAgB,IAAS,CACxF,MAAM,CACF,gBACA,cACA,SACA,UACA,SACA,eACJ,CAAC,CACL,CACA,MAAM,QAAQ,EAAiB,EAAU,CAAC,EAAG,CACzC,GAAM,CAAE,cAAc,IAAI,KAAQ,YAAY,KAAM,oBAAmB,qBAAoB,kBAAiB,mBAAkB,gBAAe,kBAAoB,EAC3J,EAAc,MAAM,KAAK,mBAAmB,EAClD,KAAK,4BAA4B,CAAW,EAC5C,IAAM,EAAS,GAAkB,MAAM,KAAK,eAAe,EACrD,CAAE,WAAU,aAAc,KAAK,WAAW,CAAW,EAC3D,GAAI,SACA,OAAO,QAAQ,OAAO,kGAA4G,EAEtI,IAAM,EAAQ,GAAY,EAAW,EAAQ,GAAkB,KAAK,OAAO,EACrE,EAAU,IAAmB,GAAe,CAAe,EAAG,CAAE,qBAAoB,kBAAiB,CAAC,EACxG,EAAY,eACZ,EAAQ,MAAM,IAAqB,EAAY,cAEnD,EAAQ,MAAM,KAAyB,GACvC,EAAQ,MAAM,KAA0B,GAAG,EAAY,YAAY,GAAG,IACtE,EAAQ,MAAM,IAAwB,EACtC,EAAQ,MAAM,KAAuB,EAAU,SAAS,EAAE,EAC1D,IAAM,EAAmB,GAAoB,EAAS,EAAmB,CAAe,EAGxF,MAFA,GAAQ,MAAM,KAA8B,KAAK,uBAAuB,CAAgB,EACxF,EAAQ,MAAM,IAAyB,MAAM,KAAK,aAAa,EAAU,EAAO,KAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,EAAG,KAAK,uBAAuB,EAAS,EAAkB,MAAM,GAAe,EAAiB,KAAK,MAAM,CAAC,CAAC,EACvP,CACX,CACA,MAAM,KAAK,EAAQ,EAAS,CAWpB,OAVA,OAAO,GAAW,SACX,KAAK,WAAW,EAAQ,CAAO,EAEjC,EAAO,SAAW,EAAO,QACvB,KAAK,UAAU,EAAQ,CAAO,EAEhC,EAAO,QACL,KAAK,YAAY,EAAQ,CAAO,EAGhC,KAAK,YAAY,EAAQ,CAAO,CAE/C,CACA,MAAM,UAAU,CAAE,UAAS,WAAW,CAAE,cAAc,IAAI,KAAQ,iBAAgB,gBAAe,kBAAkB,CAC/G,IAAM,EAAS,GAAkB,MAAM,KAAK,eAAe,EACrD,CAAE,YAAW,YAAa,KAAK,WAAW,CAAW,EACrD,EAAQ,GAAY,EAAW,EAAQ,GAAkB,KAAK,OAAO,EACrE,EAAgB,MAAM,GAAe,CAAE,QAAS,CAAC,EAAG,KAAM,CAAQ,EAAG,KAAK,MAAM,EAChF,EAAO,IAAI,KAAK,OACtB,EAAK,OAAO,CAAO,EAEnB,IAAM,EAAe,CACjB,IACA,EACA,EACA,EALkB,GAAM,MAAM,EAAK,OAAO,CAM9B,EACZ,CACJ,EAAE,KAAK;CAAI,EACX,OAAO,KAAK,WAAW,EAAc,CAAE,cAAa,cAAe,EAAQ,gBAAe,CAAC,CAC/F,CACA,MAAM,YAAY,EAAiB,CAAE,cAAc,IAAI,KAAQ,gBAAe,kBAAkB,CAU5F,OATgB,KAAK,UAAU,CAC3B,QAAS,KAAK,gBAAgB,OAAO,EAAgB,QAAQ,OAAO,EACpE,QAAS,EAAgB,QAAQ,IACrC,EAAG,CACC,cACA,gBACA,iBACA,eAAgB,EAAgB,cACpC,CACa,EAAE,KAAM,IACV,CAAE,QAAS,EAAgB,QAAS,WAAU,EACxD,CACL,CACA,MAAM,WAAW,EAAc,CAAE,cAAc,IAAI,KAAQ,gBAAe,kBAAmB,CAAC,EAAG,CAC7F,IAAM,EAAc,MAAM,KAAK,mBAAmB,EAClD,KAAK,4BAA4B,CAAW,EAC5C,IAAM,EAAS,GAAkB,MAAM,KAAK,eAAe,EACrD,CAAE,aAAc,KAAK,WAAW,CAAW,EAC3C,EAAO,IAAI,KAAK,OAAO,MAAM,KAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,CAAC,EAErG,OADA,EAAK,OAAO,GAAa,CAAY,CAAC,EAC/B,GAAM,MAAM,EAAK,OAAO,CAAC,CACpC,CACA,MAAM,YAAY,EAAe,CAAE,cAAc,IAAI,KAAQ,kBAAiB,oBAAmB,gBAAe,kBAAoB,CAAC,EAAG,CACpI,IAAM,EAAc,MAAM,KAAK,mBAAmB,EAClD,KAAK,4BAA4B,CAAW,EAC5C,IAAM,EAAS,GAAkB,MAAM,KAAK,eAAe,EACrD,EAAU,GAAe,CAAa,EACtC,CAAE,WAAU,aAAc,KAAK,WAAW,CAAW,EACrD,EAAQ,GAAY,EAAW,EAAQ,GAAkB,KAAK,OAAO,EAC3E,EAAQ,QAAQ,IAAmB,EAC/B,EAAY,eACZ,EAAQ,QAAQ,KAAgB,EAAY,cAEhD,IAAM,EAAc,MAAM,GAAe,EAAS,KAAK,MAAM,EACzD,CAAC,2BAAyB,EAAQ,OAAO,GAAK,KAAK,gBACnD,EAAQ,QAAQW,KAAiB,GAErC,IAAM,EAAmB,GAAoB,EAAS,EAAmB,CAAe,EAClF,EAAY,MAAM,KAAK,aAAa,EAAU,EAAO,KAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,EAAG,KAAK,uBAAuB,EAAS,EAAkB,CAAW,CAAC,EAMlM,MALA,GAAQ,QAAQ,IACZ,GAAG,GAAqB,cACN,EAAY,YAAY,GAAG,EAAM,kBAC9B,KAAK,uBAAuB,CAAgB,EAAE,cAClD,IACd,CACX,CACA,MAAM,aAAa,EAAU,EAAiB,EAAY,EAAkB,CACxE,IAAM,EAAe,MAAM,KAAK,mBAAmB,EAAU,EAAiB,EAAkB,EAAoB,EAC9G,EAAO,IAAI,KAAK,OAAO,MAAM,CAAU,EAE7C,OADA,EAAK,OAAO,GAAa,CAAY,CAAC,EAC/B,GAAM,MAAM,EAAK,OAAO,CAAC,CACpC,CACA,cAAc,EAAa,EAAQ,EAAW,EAAS,CACnD,OAAO,IAAc,KAAK,OAAQ,EAAa,EAAW,EAAQ,GAAW,KAAK,OAAO,CAC7F,CACJ,ECtIa,GAAwB,CACjC,aAAc,IAClB,ECCa,IAAyB,kBACzB,GAA4B,wBAC5B,GAAuB,GAA0B,YAAY,ECH7D,IAAb,cAA0C,EAAY,CAClD,MAAM,oBAAoB,EAAe,EAAa,EAAS,CAC3D,IAAM,EAAiC,GAAkC,CAAW,EACpF,EAAc,QAAQ,IAAwB,EAAY,aAC1D,IAAM,EAAgB,KAEtB,OADA,GAAkB,EAAe,CAA8B,EACxD,EAAc,YAAY,EAAe,GAAW,CAAC,CAAC,CACjE,CACA,MAAM,uBAAuB,EAAe,EAAa,EAAS,CAC9D,IAAM,EAAiC,GAAkC,CAAW,EAOpF,OANA,OAAO,EAAc,QAAQ,IAC7B,EAAc,QAAQ,IAA6B,EAAY,aAC/D,EAAc,MAAQ,EAAc,OAAS,CAAC,EAC9C,EAAc,MAAM,IAA6B,EAAY,aAE7D,GAAkB,KAAe,CAA8B,EACxD,KAAK,QAAQ,EAAe,CAAO,CAC9C,CACJ,EACA,SAAS,GAAkC,EAAa,CAMpD,MAAO,CAJH,YAAa,EAAY,YACzB,gBAAiB,EAAY,gBAC7B,WAAY,EAAY,UAEQ,CACxC,CACA,SAAS,GAAkB,EAAe,EAAgC,CACtE,IAAM,EAAK,eAAiB,CACxB,MAAU,MAAM,sEAAsE,CAC1F,EAAG,EAAE,EACC,EAA4B,EAAc,mBAMhD,EAAc,wBAJV,aAAa,CAAE,EACf,EAAc,mBAAqB,EAC5B,QAAQ,QAAQ,CAA8B,EAG7D,CCrCA,IAAa,IAAuB,IACxB,EAAM,IAAY,KAAO,IAAS,CACtC,GAAI,EAAQ,WAAY,CACpB,IAAM,EAAW,EAAQ,WACnB,EAAkB,EAAS,YAAY,cAAc,IAAI,OAAS,IAOxE,IAN0B,EAAS,YAAY,uBAC3C,EAAS,YAAY,4BAErB,GAAW,EAAS,oBAAqB,GAAG,EAC5C,EAAQ,kBAAoB,IAE5B,EAAiB,CACjB,IAAM,EAAgB,EAAK,MAAM,OACjC,GAAI,EAAe,CACf,IAAM,EAAoB,MAAM,EAAQ,0BAA0B,qBAAqB,MAAM,EAAQ,YAAY,EAAG,CAChH,OAAQ,CACZ,CAAC,EACD,EAAQ,kBAAoB,EACxB,GAAY,WAAW,EAAK,OAAO,GAAK,EAAkB,eAC1D,EAAK,QAAQ,QAAQ,IAAwB,EAAkB,aAEvE,CACJ,CACJ,CACA,OAAO,EAAK,CAAI,CACpB,EAES,IAA6B,CACtC,KAAM,sBACN,KAAM,QACN,KAAM,CAAC,KAAM,YAAY,EACzB,SAAU,EACd,EACa,IAAsB,IAAa,CAC5C,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAoB,CAAO,EAAG,GAA0B,CAC5E,CACJ,GCxCa,KAAsB,EAAsB,IAAyB,CAC9E,GAAI,CAAC,GAAwB,EAAqB,SAAW,EACzD,OAAO,EAEX,IAAM,EAAuB,CAAC,EAC9B,IAAK,IAAM,KAAuB,EAC9B,IAAK,IAAM,KAAuB,EACE,EAAoB,SAAS,MAAM,GAAG,EAAE,KACxC,GAC5B,EAAqB,KAAK,CAAmB,EAIzD,IAAK,IAAM,KAAuB,EACzB,EAAqB,MAAM,CAAE,cAAe,IAAa,EAAoB,QAAQ,GACtF,EAAqB,KAAK,CAAmB,EAGrD,OAAO,CACX,ECjBA,SAAS,IAA4B,EAAiB,CAClD,IAAM,EAAM,IAAI,IAChB,IAAK,IAAM,KAAU,EACjB,EAAI,IAAI,EAAO,SAAU,CAAM,EAEnC,OAAO,CACX,CACA,IAAa,KAA4B,EAAQ,KAAe,EAAM,IAAY,KAAO,IAAS,CAG9F,IAAM,EAAkB,IAFR,EAAO,uBAAuB,MAAM,EAAU,iCAAiC,EAAQ,EAAS,EAAK,KAAK,CAEzE,EADpB,EAAO,qBAAuB,MAAM,EAAO,qBAAqB,EAAI,CAAC,CAC1B,EAClE,EAAc,IAA4B,EAAO,eAAe,EAChE,EAAgB,GAAiB,CAAO,EACxC,EAAiB,CAAC,EACxB,IAAK,IAAM,KAAU,EAAiB,CAClC,IAAM,EAAS,EAAY,IAAI,EAAO,QAAQ,EAC9C,GAAI,CAAC,EAAQ,CACT,EAAe,KAAK,oBAAoB,EAAO,SAAS,qCAAqC,EAC7F,QACJ,CACA,IAAM,EAAmB,EAAO,iBAAiB,MAAM,EAAU,+BAA+B,CAAM,CAAC,EACvG,GAAI,CAAC,EAAkB,CACnB,EAAe,KAAK,oBAAoB,EAAO,SAAS,gDAAgD,EACxG,QACJ,CACA,GAAM,CAAE,qBAAqB,CAAC,EAAG,oBAAoB,CAAC,GAAM,EAAO,sBAAsB,EAAQ,CAAO,GAAK,CAAC,EAC9G,EAAO,mBAAqB,OAAO,OAAO,EAAO,oBAAsB,CAAC,EAAG,CAAkB,EAC7F,EAAO,kBAAoB,OAAO,OAAO,EAAO,mBAAqB,CAAC,EAAG,CAAiB,EAC1F,EAAc,uBAAyB,CACnC,eAAgB,EAChB,SAAU,MAAM,EAAiB,EAAO,kBAAkB,EAC1D,OAAQ,EAAO,MACnB,EACA,KACJ,CACA,GAAI,CAAC,EAAc,uBACf,MAAU,MAAM,EAAe,KAAK;CAAI,CAAC,EAE7C,OAAO,EAAK,CAAI,CACpB,ECxCa,IAAiD,CAC1D,KAAM,YACN,KAAM,CAAC,kBAAkB,EACzB,KAAM,2BACN,SAAU,GACV,SAAU,SACV,aAAc,sBAClB,EACa,KAA0C,EAAQ,CAAE,mCAAkC,qCAAuC,CACtI,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAAyB,EAAQ,CACvD,mCACA,gCACJ,CAAC,EAAG,GAA8C,CACtD,CACJ,GCdMM,IAAuB,GAAuB,GAAU,CAC1D,MAAM,CACV,EACMC,KAAyB,EAAc,IAAsB,CAAE,EACxD,IAAyB,IAAY,EAAM,IAAY,KAAO,IAAS,CAChF,GAAI,CAAC,GAAY,WAAW,EAAK,OAAO,EACpC,OAAO,EAAK,CAAI,EAGpB,IAAM,EADgB,GAAiB,CACZ,EAAE,uBAC7B,GAAI,CAAC,EACD,MAAU,MAAM,wDAAwD,EAE5E,GAAM,CAAE,eAAgB,CAAE,oBAAoB,CAAC,GAAK,WAAU,UAAY,EACpE,EAAS,MAAM,EAAK,CACtB,GAAG,EACH,QAAS,MAAM,EAAO,KAAK,EAAK,QAAS,EAAU,CAAiB,CACxE,CAAC,EAAE,OAAO,EAAO,cAAgBD,KAAqB,CAAiB,CAAC,EAExE,OADC,EAAO,gBAAkBC,KAAuB,EAAO,SAAU,CAAiB,EAC5E,CACX,ECrBa,GAA+B,CACxC,KAAM,kBACN,KAAM,CAAC,cAAc,EACrB,KAAM,wBACN,QAAS,CAAC,mBAAoB,kBAAmB,mBAAmB,EACpE,SAAU,GACV,SAAU,QACV,aAAc,iBAClB,EACa,IAAwB,IAAY,CAC7C,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAAsB,CAAM,EAAG,EAA4B,CACzF,CACJ,GCda,GAAqB,GAAU,CACxC,GAAI,OAAO,GAAU,WACjB,OAAO,EACX,IAAM,EAAc,QAAQ,QAAQ,CAAK,EACzC,UAAa,CACjB,ECLA,SAAgB,IAAW,EAAS,EAAS,EAAO,CAC3C,EAAQ,iBAKH,EAAQ,iBAAiB,WAC/B,EAAQ,iBAAiB,SAAW,CAAC,GALrC,EAAQ,iBAAmB,CACvB,SAAU,CAAC,CACf,EAKJ,EAAQ,iBAAiB,SAAS,GAAW,CACjD,CCVA,IAAa,IAAb,KAA2C,CACvC,YAAc,IAAI,IAClB,YAAY,EAAQ,CAChB,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CAAM,EACxC,IAAU,QACV,KAAK,YAAY,IAAI,EAAK,CAAK,CAG3C,CACA,oBAAoB,EAAU,CAC1B,OAAO,KAAK,YAAY,IAAI,CAAQ,CACxC,CACJ,ECRa,KAJmC,GAAiB,SAA2B,EAAU,CAClG,OAAO,GAA2B,CAAQ,GAAK,EAAS,WAAW,QAAQ,EAAI,KAAK,IAAI,EAAI,CAChG,GAEiE,GAAa,EACjE,GAA8B,GAAa,EAAS,aAAe,OACnE,KAA2B,EAAU,EAAW,IAAoB,CAC7E,GAAI,IAAa,OACb,OAEJ,IAAM,EAAqB,OAAO,GAAa,WAAqD,EAAxC,SAAY,QAAQ,QAAQ,CAAQ,EAC5F,EACA,EACA,EACA,EAAa,GACX,EAAmB,KAAO,IAAY,CACxC,CACI,GAAU,EAAmB,CAAO,EAExC,GAAI,CACA,EAAW,MAAM,EACjB,EAAY,GACZ,EAAa,EACjB,QACQ,CACJ,EAAU,MACd,CACA,OAAO,CACX,EASA,OARI,IAAc,OACP,KAAO,MACN,CAAC,GAAa,GAAS,gBACvB,EAAW,MAAM,EAAiB,CAAO,GAEtC,GAGR,KAAO,MACN,CAAC,GAAa,GAAS,gBACvB,EAAW,MAAM,EAAiB,CAAO,GAEzC,EACO,EAEN,EAAgB,CAAQ,GAIzB,EAAU,CAAQ,GAClB,MAAM,EAAiB,CAAO,EAG3B,IAPH,EAAa,GACN,GAQnB,ECtDa,IAAgB,MAAO,EAAmB,EAAgB,EAAS,IAA2B,CACvG,IAAM,EAAgB,MAAM,EAAuB,oBAAoB,EAAS,EAAmB,CAAC,CAAC,EACrG,GAAI,EAAc,QAAQ,yBAA2B,EAAc,QAAQ,wBACvE,MAAU,MAAM,+DAA+D,EAEnF,OAAO,CACX,ECFM,IAAuB,GAAuB,GAAU,CAC1D,MAAM,CACV,EACM,KAAyB,EAAc,IAAsB,CAAE,EAExD,IAAkC,IAAY,EAAM,IAAY,KAAO,IAAS,CACzF,GAAI,CAAC,GAAY,WAAW,EAAK,OAAO,EACpC,OAAO,EAAK,CAAI,EAGpB,IAAM,EADgB,GAAiB,CACZ,EAAE,uBAC7B,GAAI,CAAC,EACD,MAAU,MAAM,wDAAwD,EAE5E,GAAM,CAAE,eAAgB,CAAE,oBAAoB,CAAC,GAAK,WAAU,UAAY,EACtE,EACJ,CAII,CAJA,EAAQ,kBACE,MAAM,IAAc,EAAQ,kBAAmB,EAAmB,EAAK,QAAS,MAAM,EAAO,OAAO,CAAC,EAGrG,MAAM,EAAO,KAAK,EAAK,QAAS,EAAU,CAAiB,EAEzE,IAAM,EAAS,MAAM,EAAK,CACtB,GAAG,EACH,SACJ,CAAC,EAAE,OAAO,EAAO,cAAgB,KAAqB,CAAiB,CAAC,EAExE,OADC,EAAO,gBAAkB,KAAuB,EAAO,SAAU,CAAiB,EAC5E,CACX,EACa,IAAiC,IAAY,CACtD,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAA+B,CAAM,EAAG,EAA4B,CAClG,CACJ,GCpCa,KAAmB,EAAO,CAAE,aAAe,CACpD,GAAM,CAAC,EAAkB,GAA4B,EAC/C,CAAE,iBAAgB,wBAAuB,iCAAgC,wBAAuB,4BAA2B,iBAAgB,wBAA0B,EAC3K,OAAO,OAAO,OAAO,EAAO,CACxB,eAAgB,GAAkB,GAClC,sBAAuB,GAAyB,GAChD,+BAAgC,GAAkC,GAClE,sBAAuB,GAAyB,GAChD,0BAA2B,GACvB,IAAI,IAA8B,KAAO,IAAQ,EAAiB,EAAE,KAAK,IAAI,EAAyB,CAClG,OAAQ,CACZ,CAAC,CAAC,CAAC,EACP,eAAgB,GAAkB,GAClC,qBAAsB,GAAwB,OAClD,CAAC,CACL,ECdM,IAAsB,CACxB,kBAAmB,GACnB,sBAAuB,GACvB,+BAAgC,EACpC,EACM,IAAuB,IAChB,IAAgC,IAAY,EAAM,IAAY,KAAO,IAAS,CACvF,IAAM,EAAS,MAAM,EAAK,CAAI,EACxB,CAAE,YAAa,EACrB,GAAI,CAAC,GAAa,WAAW,CAAQ,EACjC,OAAO,EAEX,GAAM,CAAE,aAAY,KAAM,GAAe,EAOzC,GANI,EAAa,KAAO,GAAc,KAMlC,EAHuB,OAAO,GAAY,QAAW,YACrD,OAAO,GAAY,MAAS,YAC5B,OAAO,GAAY,KAAQ,YAE3B,OAAO,EAEX,IAAI,EAAW,EACX,EAAO,EACP,GAAc,OAAO,GAAe,UAAY,EAAE,aAAsB,cACxE,CAAC,EAAU,GAAQ,MAAM,IAAY,CAAU,GAEnD,EAAS,KAAO,EAChB,IAAM,EAAY,MAAM,IAAY,EAAU,CAC1C,gBAAiB,KAAO,IACb,IAAW,EAAQ,GAAoB,CAEtD,CAAC,EACG,OAAO,GAAU,SAAY,YAC7B,EAAS,QAAQ,EAErB,IAAM,EAAiB,EAAO,YAAY,EAAU,SAAS,EAAU,OAAS,EAAE,CAAC,EACnF,GAAI,EAAU,SAAW,GAAK,IAAoB,EAAQ,aAAc,CACpE,IAAM,EAAU,MAAM,oBAAoB,EAE1C,KADA,GAAI,KAAO,gBACL,CACV,CAIA,OAHI,GAAkB,EAAe,SAAS,UAAU,IACpD,EAAS,WAAa,KAEnB,CACX,EACM,KAAe,EAAa,IAAI,WAAc,IAC5C,aAAsB,WACf,QAAQ,QAAQ,CAAU,EAE9B,EAAQ,gBAAgB,CAAU,GAAK,QAAQ,QAAQ,IAAI,UAAY,EAErE,IAAsC,CAC/C,SAAU,QACV,aAAc,yBACd,KAAM,CAAC,uBAAwB,IAAI,EACnC,KAAM,+BACN,SAAU,EACd,EACa,GAA+B,IAAY,CACpD,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAA6B,CAAM,EAAG,GAAmC,CACvG,CACJ,GClEa,IAAY,GAAQ,OAAO,GAAQ,UAAY,EAAI,QAAQ,MAAM,IAAM,GAAK,EAAI,MAAM,GAAG,EAAE,QAAU,ECAlH,SAAgB,IAAyB,EAAS,CAC9C,OAAQ,EAAM,IAAY,KAAO,IAAS,CACtC,GAAI,EAAQ,eAAgB,CACxB,IAAM,EAAW,EAAQ,WACzB,GAAI,EAAU,CACV,IAAM,EAAS,EAAK,MAAM,OAC1B,GAAI,OAAO,GAAW,SAClB,GAAI,CACA,IAAM,EAAoB,IAAI,IAAI,CAAM,EACxC,EAAQ,WAAa,CACjB,GAAG,EACH,IAAK,CACT,CACJ,OACO,EAAG,CACN,IAAM,EAAU,sEAAsE,EAAO,8BAO7F,MANI,EAAQ,QAAQ,aAAa,OAAS,aACtC,QAAQ,KAAK,CAAO,EAGpB,EAAQ,QAAQ,OAAO,CAAO,EAE5B,CACV,CAER,CACJ,CACA,OAAO,EAAK,CAAI,CACpB,CACJ,CACA,IAAa,IAAkC,CAC3C,KAAM,2BACN,SAAU,GACV,SAAU,QACV,aAAc,sBAClB,ECjCA,SAAgB,IAA6B,CAAE,kBAAkB,CAC7D,MAAQ,IAAS,KAAO,IAAS,CAC7B,GAAM,CAAE,MAAO,CAAE,WAAc,EAC/B,GAAI,CAAC,GAAkB,OAAO,GAAW,UAAY,CAACC,IAAY,CAAM,GAAK,EAAO,QAAQ,GAAG,GAAK,EAAG,CACnG,IAAM,EAAU,MAAM,gDAAgD,EAAO,EAAE,EAE/E,KADA,GAAI,KAAO,oBACL,CACV,CACA,OAAO,EAAK,CAAE,GAAG,CAAK,CAAC,CAC3B,CACJ,CACA,IAAa,IAAsC,CAC/C,KAAM,aACN,KAAM,CAAC,sBAAsB,EAC7B,KAAM,+BACN,SAAU,EACd,EACa,IAA+B,IAAa,CACrD,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAA6B,CAAO,EAAG,GAAmC,EAC1F,EAAY,cAAc,IAAyB,CAAO,EAAG,GAA+B,CAChG,CACJ,GCxBM,GAAe,OAAO,aAAe,WAAa,IAAI,YAAgB,KAC/D,IAAuB,GAAS,CACzC,GAAI,OAAO,GAAS,SAAU,CAC1B,GAAI,GACA,OAAO,GAAa,OAAO,CAAI,EAAE,WAErC,IAAI,EAAM,EAAK,OACf,IAAK,IAAI,EAAI,EAAM,EAAG,GAAK,EAAG,IAAK,CAC/B,IAAM,EAAO,EAAK,WAAW,CAAC,EAC1B,EAAO,KAAQ,GAAQ,KACvB,IACK,EAAO,MAAS,GAAQ,QAC7B,GAAO,GACP,GAAQ,OAAU,GAAQ,OAC1B,GACR,CACA,OAAO,CACX,MACK,GAAI,OAAO,EAAK,YAAe,SAChC,OAAO,EAAK,gBAEX,GAAI,OAAO,EAAK,MAAS,SAC1B,OAAO,EAAK,KAEhB,MAAU,MAAM,sCAAsC,GAAM,CAChE,ECvBa,IAAb,KAAyB,CACrB,YACA,cACA,YAAY,EAAc,GAAO,CAC7B,KAAK,YAAc,CACvB,CACA,uBAAuB,EAAoB,EAAa,CACpD,IAAM,EAAU,EAAY,iBAAiB,EACvC,EAAoB,OAAO,OAAO,CAAO,EAAE,KAAM,GAC5C,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAChC,EACD,GAAI,EAYI,OAXc,EAAkB,gBAAgB,EAAE,YAI7C,EAAkB,eAAe,EAC/B,aAEF,EAAkB,aAAa,EAC7B,2BAGA,GAGV,GAAI,CAAC,EAAY,aAAa,GACf,OAAO,OAAO,CAAO,EAAE,KAAM,GAAM,CAC/C,GAAM,CAAE,YAAW,kBAAiB,aAAY,YAAW,qBAAsB,EAAE,gBAAgB,EAEnG,MAAO,CAAC,GAAa,CAAC,GAAmB,CAAC,GAAc,CAAC,GADjC,IAAsB,IAAK,EAEvD,CACU,EACN,OAAO,CAGnB,CACA,MAAM,mCAAmC,EAAiB,EAAkB,EAAU,EAAY,EAAU,EAAgB,CACxH,IAAI,EAAY,EACZ,EAAgB,SAAS,GAAG,IAC5B,EAAG,GAAa,EAAgB,MAAM,GAAG,GAE7C,IAAM,EAAgB,CAClB,UAAW,EACX,OAAQ,EAAS,WAAa,IAAM,SAAW,QACnD,EACA,GAAI,CAAC,KAAK,cACN,MAAU,MAAM,0DAA0D,EAE9E,GAAI,CAGA,MAAO,CAAE,YAFW,IAAiB,KAAK,cAAe,CAAS,GAC9D,KAAK,cAAc,UAAU,CAAe,EAC1B,eAAc,CACxC,MACU,CACN,EAAW,QAAU,EAAW,SAAW,EAAW,SAAW,eACjE,IAAM,EAAY,KAAK,cACjB,EAAsB,EAAU,iBAAiB,EACvD,GAAI,EAAqB,CACrB,IAAM,EAAY,EAAU,aAAa,CAAmB,GAAK,MACjE,MAAM,KAAK,yBAAyB,OAAO,OAAO,IAAI,EAAU,CAAE,KAAM,CAAU,CAAC,EAAG,CAAa,EAAG,CAAU,CACpH,CACA,IAAM,EAAI,EACJ,EAAU,GAAG,SAAW,GAAG,SAAW,GAAG,OAAO,SAAW,GAAG,OAAO,QAC3E,MAAM,KAAK,yBAAyB,OAAO,OAAW,MAAM,CAAO,EAAG,CAClE,KAAM,CACV,EAAG,CAAa,EAAG,CAAU,CACjC,CACJ,CACA,QAAQ,EAAW,EAAiB,EAAkB,CAClD,IAAI,EAAY,EACZ,EAAgB,SAAS,GAAG,IAC5B,CAAC,GAAa,EAAgB,MAAM,GAAG,GAE3C,IAAM,EAAiB,GAAa,IAAI,CAAS,EAC3C,EAA2B,GAAa,IAAI,2BAA6B,CAAgB,EAC/F,EAAU,SAAS,CAAc,EACjC,EAAU,SAAS,CAAwB,EAC3C,KAAK,cAAgB,CACzB,CACA,yBAAyB,EAAW,EAAY,CAAC,EAAG,CAChD,GAAI,KAAK,YAAa,CAClB,IAAM,EAAM,EAAU,SAAW,EAAU,QACrC,EAAQ,GAAyB,EAAW,CAAS,EACvD,IACA,EAAM,QAAU,GAEpB,EAAM,MAAQ,CACV,GAAG,EAAM,MACT,KAAM,EAAM,OAAO,KACnB,KAAM,EAAM,OAAO,KACnB,QAAS,EAAM,OAAO,SAAW,EAAM,OAAO,SAAW,CAC7D,EACA,IAAM,EAAQ,EAAM,UAAU,UAI9B,OAHI,IACA,EAAM,UAAY,GAEf,CACX,CACA,OAAO,GAAyB,EAAW,CAAS,CACxD,CACA,oBAAoB,EAAQ,EAAU,CAClC,IAAM,EAAmB,EAAS,UAAU,sBAC5C,GAAI,IAAW,QAAa,GAAoB,KAAM,CAClD,GAAM,CAAC,EAAM,GAAQ,EAAiB,MAAM,GAAG,EACzC,EAAU,OAAO,QAAQ,CAAM,EAC/B,EAAQ,CACV,OACA,MACJ,EACA,OAAO,OAAO,EAAQ,CAAK,EAC3B,IAAK,GAAM,CAAC,EAAG,KAAM,EACjB,EAAM,IAAM,UAAY,UAAY,GAAK,EAE7C,OAAO,EAAM,OACb,EAAO,MAAQ,CACnB,CACJ,CACA,kBAAkB,EAAsB,EAAW,CAC3C,EAAqB,QACrB,EAAU,MAAQ,EAAqB,OAEvC,EAAqB,OACrB,EAAU,KAAO,EAAqB,MAEtC,EAAqB,OACrB,EAAU,KAAO,EAAqB,KAE9C,CACA,yBAAyB,EAAU,EAAW,CAC1C,GAAI,CACA,OAAO,EAAS,UAAU,CAAS,CACvC,MACU,CACN,OAAO,EAAS,KAAM,GAAW,GAAiB,GAAG,CAAM,EAAE,gBAAgB,EAAE,gBAAgB,KAAO,CAAS,CACnH,CACJ,CACJ,EC3Ia,GAAb,KAAgC,CAC5B,aACA,gBAAgB,EAAc,CAC1B,KAAK,aAAe,CACxB,CACJ,ECLa,IAAb,KAAwB,CACpB,KACA,GACA,KACA,YAAY,EAAM,EAAI,CAClB,KAAK,KAAO,EACZ,KAAK,GAAK,EACV,KAAK,KAAO,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAQ,GAAM,IAAM,QAAQ,CAAC,CAC5E,CACA,KAAK,EAAK,CACN,KAAK,KAAK,OAAO,CAAG,CACxB,CACA,YAAa,CACT,OAAO,KAAK,KAAK,OAAS,GAAK,OAAO,KAAK,KAAK,EAAE,EAAE,SAAW,CACnE,CACA,cAAe,CACX,GAAI,KAAK,WAAW,EAAG,CACnB,IAAM,EAAI,KAAK,KAAK,OAAO,EAAE,KAAK,EAAE,MAC9B,EAAI,KAAK,KAAK,GACpB,KAAK,GAAG,SAAW,CAAC,EAAG,CAAC,CAC5B,CACJ,CACJ,ECtBM,IAAiB,UACjB,IAAkB,CACpB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACT,EACA,SAAgB,IAAgB,EAAO,CACnC,OAAO,EAAM,QAAQ,IAAiB,GAAO,IAAgB,EAAG,CACpE,CCTA,IAAM,IAAoB,2BACpB,IAAqB,CACvB,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,KAAM,SACN,KAAM,SACN,IAAU,SACV,SAAU,UACd,EACA,SAAgB,IAAc,EAAO,CACjC,OAAO,EAAM,QAAQ,IAAoB,GAAO,IAAmB,EAAG,CAC1E,CCbA,IAAa,GAAb,KAAqB,CACjB,MACA,YAAY,EAAO,CACf,KAAK,MAAQ,CACjB,CACA,UAAW,CACP,OAAO,IAAc,GAAK,KAAK,KAAK,CACxC,CACJ,ECPa,GAAb,MAAa,CAAQ,CACjB,KACA,SACA,WAAa,CAAC,EACd,OAAO,GAAG,EAAM,EAAW,EAAU,CACjC,IAAM,EAAO,IAAI,EAAQ,CAAI,EAO7B,OANI,IAAc,QACd,EAAK,aAAa,IAAI,GAAQ,CAAS,CAAC,EAExC,IAAa,QACb,EAAK,SAAS,CAAQ,EAEnB,CACX,CACA,YAAY,EAAM,EAAW,CAAC,EAAG,CAC7B,KAAK,KAAO,EACZ,KAAK,SAAW,CACpB,CACA,SAAS,EAAM,CAEX,MADA,MAAK,KAAO,EACL,IACX,CACA,aAAa,EAAM,EAAO,CAEtB,MADA,MAAK,WAAW,GAAQ,EACjB,IACX,CACA,aAAa,EAAO,CAEhB,OADA,KAAK,SAAS,KAAK,CAAK,EACjB,IACX,CACA,gBAAgB,EAAM,CAElB,OADA,OAAO,KAAK,WAAW,GAChB,IACX,CACA,EAAE,EAAM,CAEJ,MADA,MAAK,KAAO,EACL,IACX,CACA,EAAE,EAAO,CAEL,OADA,KAAK,SAAS,KAAK,CAAK,EACjB,IACX,CACA,EAAE,EAAM,EAAO,CAIX,OAHI,GAAS,OACT,KAAK,WAAW,GAAQ,GAErB,IACX,CACA,GAAG,EAAO,EAAO,EAAW,EAAO,CAC/B,GAAI,EAAM,IAAU,KAAM,CACtB,IAAM,EAAO,EAAQ,GAAG,EAAO,EAAM,EAAM,EAAE,SAAS,CAAQ,EAC9D,KAAK,EAAE,CAAI,CACf,CACJ,CACA,EAAE,EAAO,EAAU,EAAY,EAAe,CACtC,EAAM,IAAa,MAEnB,EAAI,EAAE,IAAK,GAAS,CAChB,EAAK,SAAS,CAAU,EACxB,KAAK,EAAE,CAAI,CACf,CAAC,CAET,CACA,GAAG,EAAO,EAAU,EAAY,EAAe,CAC3C,GAAI,EAAM,IAAa,KAAM,CACzB,IAAM,EAAQ,EAAc,EACtB,EAAgB,IAAI,EAAQ,CAAU,EAC5C,EAAM,IAAK,GAAS,CAChB,EAAc,EAAE,CAAI,CACxB,CAAC,EACD,KAAK,EAAE,CAAa,CACxB,CACJ,CACA,UAAW,CACP,IAAM,EAAc,EAAQ,KAAK,SAAS,OACtC,EAAU,IAAI,KAAK,OACjB,EAAa,KAAK,WACxB,IAAK,IAAM,KAAiB,OAAO,KAAK,CAAU,EAAG,CACjD,IAAM,EAAY,EAAW,GACzB,GAAa,OACb,GAAW,IAAI,EAAc,IAAI,IAAgB,GAAK,CAAS,EAAE,GAEzE,CACA,MAAQ,IAAY,EAAqB,IAAI,KAAK,SAAS,IAAK,GAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,KAAK,GAAzE,IACtC,CACJ,ECvFI,GACJ,SAAgB,IAAS,EAAW,CAChC,EACI,GAAS,IAAI,UAEjB,IAAM,EAAc,GAAO,gBAAgB,EAAW,iBAAiB,EACvE,GAAI,EAAY,qBAAqB,aAAa,EAAE,OAAS,EACzD,MAAU,MAAM,8BAA8B,EAElD,IAAM,EAAY,GAAS,CACvB,GAAI,EAAK,WAAa,KAAK,WACnB,EAAK,aAAa,KAAK,EACvB,OAAO,EAAK,YAGpB,GAAI,EAAK,WAAa,KAAK,aAAc,CACrC,IAAM,EAAU,EAChB,GAAI,EAAQ,WAAW,SAAW,GAAK,EAAQ,WAAW,SAAW,EACjE,MAAO,GAEX,IAAM,EAAM,CAAC,EACP,EAAa,MAAM,KAAK,EAAQ,UAAU,EAChD,IAAK,IAAM,KAAQ,EACf,EAAI,GAAG,EAAK,QAAU,EAAK,MAE/B,IAAM,EAAa,MAAM,KAAK,EAAQ,UAAU,EAChD,IAAK,IAAM,KAAS,EAAY,CAC5B,IAAM,EAAc,EAAS,CAAK,EAClC,GAAI,GAAe,KAAM,CACrB,IAAM,EAAY,EAAM,SACxB,GAAI,EAAW,SAAW,GAAK,EAAW,SAAW,GAAK,IAAc,QACpE,OAAO,EAEP,EAAI,GACA,MAAM,QAAQ,EAAI,EAAU,EAC5B,EAAI,GAAW,KAAK,CAAW,EAG/B,EAAI,GAAa,CAAC,EAAI,GAAY,CAAW,EAIjD,EAAI,GAAa,CAEzB,MACK,GAAI,EAAW,SAAW,GAAK,EAAW,SAAW,EACtD,OAAO,EAAQ,WAEvB,CACA,OAAO,CACX,CACA,OAAO,IACX,EACA,MAAO,EACF,EAAY,gBAAgB,UAAW,EAAS,EAAY,eAAe,CAChF,CACJ,CCjDA,IAAa,IAAb,cAA0C,EAAmB,CACzD,SACA,mBACA,YAAY,EAAU,CAClB,MAAM,EACN,KAAK,SAAW,EAChB,KAAK,mBAAqB,IAAI,GAA4B,CAAQ,CACtE,CACA,gBAAgB,EAAc,CAC1B,KAAK,aAAe,EACpB,KAAK,mBAAmB,gBAAgB,CAAY,CACxD,CACA,KAAK,EAAQ,EAAO,EAAK,CACrB,IAAM,EAAK,GAAiB,GAAG,CAAM,EAC/B,EAAgB,EAAG,iBAAiB,EAM1C,GALuB,EAAG,eAAe,GACrC,EAAG,eAAe,GAChB,OAAO,OAAO,CAAa,EAAE,KAAM,GAC1B,CAAC,CAAC,EAAS,gBAAgB,EAAE,YACvC,EACe,CAChB,IAAM,EAAS,CAAC,EACV,EAAa,OAAO,KAAK,CAAa,EAAE,GAQ9C,OAP0B,EAAc,GAClB,aAAa,EAC/B,EAAO,GAAc,EAGrB,EAAO,GAAc,KAAK,KAAK,EAAc,GAAa,CAAK,EAE5D,CACX,CACA,IAAM,GAAa,KAAK,cAAc,aAAe,IAAQ,CAAK,EAC5D,EAAe,KAAK,SAAS,CAAS,EAC5C,OAAO,KAAK,WAAW,EAAQ,EAAM,EAAa,GAAO,CAAY,CACzE,CACA,WAAW,EAAS,EAAO,CACvB,IAAM,EAAK,GAAiB,GAAG,CAAO,EACtC,GAAI,EAAG,aAAa,EAChB,OAEJ,IAAM,EAAS,EAAG,gBAAgB,EAClC,GAAI,EAAG,aAAa,GAAK,CAAC,MAAM,QAAQ,CAAK,EACzC,OAAO,KAAK,WAAW,EAAI,CAAC,CAAK,CAAC,EAEtC,GAAI,GAAS,KACT,OAAO,EAEX,GAAI,OAAO,GAAU,SAAU,CAC3B,IAAM,EAAO,CAAC,CAAC,EAAO,aACtB,GAAI,EAAG,aAAa,EAAG,CACnB,IAAM,EAAY,EAAG,eAAe,EAC9B,EAAS,CAAC,EACV,EAAY,EAAU,gBAAgB,EAAE,SAAW,SACnD,EAAS,EAAO,GAAS,EAAM,IAAM,GAAO,GAClD,GAAI,GAAU,KACV,OAAO,EAEX,IAAM,EAAc,MAAM,QAAQ,CAAM,EAAI,EAAS,CAAC,CAAM,EAC5D,IAAK,IAAM,KAAK,EACZ,EAAO,KAAK,KAAK,WAAW,EAAW,CAAC,CAAC,EAE7C,OAAO,CACX,CACA,IAAM,EAAS,CAAC,EAChB,GAAI,EAAG,YAAY,EAAG,CAClB,IAAM,EAAQ,EAAG,aAAa,EACxB,EAAW,EAAG,eAAe,EAC/B,EACJ,CAII,CAJA,EACU,MAAM,QAAQ,CAAK,EAAI,EAAQ,CAAC,CAAK,EAGrC,MAAM,QAAQ,EAAM,KAAK,EAAI,EAAM,MAAQ,CAAC,EAAM,KAAK,EAErE,IAAM,EAAc,EAAM,gBAAgB,EAAE,SAAW,MACjD,EAAgB,EAAS,gBAAgB,EAAE,SAAW,QAC5D,IAAK,IAAM,KAAS,EAAS,CACzB,IAAM,EAAM,EAAM,GACZ,EAAQ,EAAM,GACpB,EAAO,GAAO,KAAK,WAAW,EAAU,CAAK,CACjD,CACA,OAAO,CACX,CACA,GAAI,EAAG,eAAe,EAAG,CACrB,IAAM,EAAQ,EAAG,cAAc,EAC3B,EACA,IACA,EAAa,IAAI,IAAW,EAAO,CAAM,GAE7C,IAAK,GAAM,CAAC,EAAY,KAAiB,EAAG,eAAe,EAAG,CAC1D,IAAM,EAAe,EAAa,gBAAgB,EAC5C,EAAgB,EAAa,YAE7B,EAAa,SAAW,EAAa,QAAQ,EAD7C,EAAa,gBAAgB,EAAE,SAAW,EAE5C,GACA,EAAW,KAAK,CAAY,EAE5B,EAAM,IAAiB,OACvB,EAAO,GAAc,KAAK,WAAW,EAAc,EAAM,EAAa,EAE9E,CAIA,OAHI,GACA,EAAW,aAAa,EAErB,CACX,CACA,GAAI,EAAG,iBAAiB,EACpB,OAAO,EAEX,MAAU,MAAM,wEAAwE,EAAG,QAAQ,EAAI,GAAG,CAC9G,CAOA,OANI,EAAG,aAAa,EACT,CAAC,EAER,EAAG,YAAY,GAAK,EAAG,eAAe,EAC/B,CAAC,EAEL,KAAK,mBAAmB,KAAK,EAAI,CAAK,CACjD,CACA,SAAS,EAAK,CACV,GAAI,EAAI,OAAQ,CACZ,IAAI,EACJ,GAAI,CACA,EAAY,IAAS,CAAG,CAC5B,OACO,EAAG,CAMN,MALI,GAAK,OAAO,GAAM,UAClB,OAAO,eAAe,EAAG,oBAAqB,CAC1C,MAAO,CACX,CAAC,EAEC,CACV,CACA,IAAM,EAAe,QACf,EAAM,OAAO,KAAK,CAAS,EAAE,GAC7B,EAAoB,EAAU,GAKpC,OAJI,EAAkB,KAClB,EAAkB,GAAO,EAAkB,GAC3C,OAAO,EAAkB,IAEtB,GAAqB,CAAiB,CACjD,CACA,MAAO,CAAC,CACZ,CACJ,ECrHa,KAAwB,EAAQ,IAAS,CAClD,GAAI,GAAM,OAAO,OAAS,OACtB,OAAO,EAAK,MAAM,KAEtB,GAAI,GAAM,OAAS,OACf,OAAO,EAAK,KAEhB,GAAI,EAAO,YAAc,IACrB,MAAO,UAEf,ECtCa,IAAb,cAAwC,EAAmB,CACvD,SACA,aACA,WACA,OACA,YAAY,EAAU,CAClB,MAAM,EACN,KAAK,SAAW,CACpB,CACA,MAAM,EAAQ,EAAO,CACjB,IAAM,EAAK,GAAiB,GAAG,CAAM,EACrC,GAAI,EAAG,eAAe,GAAK,OAAO,GAAU,SACxC,KAAK,aAAe,OAEnB,GAAI,EAAG,aAAa,EACrB,KAAK,WACD,eAAgB,EACV,GACC,KAAK,cAAc,eAAiB,IAAY,CAAK,MAE/D,CACD,KAAK,OAAS,KAAK,YAAY,EAAI,EAAO,MAAS,EACnD,IAAM,EAAS,EAAG,gBAAgB,EAC9B,EAAO,aAAe,CAAC,EAAO,SAC9B,KAAK,OAAO,SAAS,EAAG,QAAQ,CAAC,CAEzC,CACJ,CACA,OAAQ,CACJ,GAAI,KAAK,aAAe,OAAW,CAC/B,IAAM,EAAQ,KAAK,WAEnB,OADA,OAAO,KAAK,WACL,CACX,CACA,GAAI,KAAK,eAAiB,OAAW,CACjC,IAAM,EAAM,KAAK,aAEjB,OADA,OAAO,KAAK,aACL,CACX,CACA,IAAM,EAAS,KAAK,OAOpB,OANI,KAAK,SAAS,eACT,GAAQ,YAAa,OACtB,EAAO,aAAa,QAAS,KAAK,SAAS,YAAY,GAG/D,OAAO,KAAK,OACL,EAAO,SAAS,CAC3B,CACA,YAAY,EAAI,EAAO,EAAa,CAChC,IAAM,EAAS,EAAG,gBAAgB,EAC5B,EAAO,EAAG,eAAe,GAAK,CAAC,EAAO,YACtC,EAAG,gBAAgB,EAAE,SAAW,EAAG,cAAc,EACjD,EAAO,SAAW,EAAG,QAAQ,EACnC,GAAI,CAAC,GAAQ,CAAC,EAAG,eAAe,EAC5B,MAAU,MAAM,uGAAuG,EAAG,QAAQ,EAAI,EAAE,EAAE,EAE9I,IAAM,EAAgB,GAAQ,GAAG,CAAI,EAC/B,CAAC,EAAW,GAAS,KAAK,kBAAkB,EAAI,CAAW,EACjE,IAAK,GAAM,CAAC,EAAY,KAAiB,EAAG,eAAe,EAAG,CAC1D,IAAM,EAAM,EAAM,GAClB,GAAI,GAAO,MAAQ,EAAa,mBAAmB,EAAG,CAClD,GAAI,EAAa,gBAAgB,EAAE,aAAc,CAC7C,EAAc,aAAa,EAAa,gBAAgB,EAAE,SAAW,EAAY,KAAK,YAAY,EAAc,CAAG,CAAC,EACpH,QACJ,CACA,GAAI,EAAa,aAAa,EAC1B,KAAK,UAAU,EAAc,EAAK,EAAe,CAAK,OAErD,GAAI,EAAa,YAAY,EAC9B,KAAK,SAAS,EAAc,EAAK,EAAe,CAAK,OAEpD,GAAI,EAAa,eAAe,EACjC,EAAc,aAAa,KAAK,YAAY,EAAc,EAAK,CAAK,CAAC,MAEpE,CACD,IAAM,EAAa,GAAQ,GAAG,EAAa,gBAAgB,EAAE,SAAW,EAAa,cAAc,CAAC,EACpG,KAAK,gBAAgB,EAAc,EAAK,EAAY,CAAK,EACzD,EAAc,aAAa,CAAU,CACzC,CACJ,CACJ,CACA,GAAM,CAAE,YAAa,EACrB,GAAI,GAAY,EAAG,cAAc,GAAK,MAAM,QAAQ,CAAQ,GAAK,OAAO,KAAK,CAAK,EAAE,SAAW,EAAG,CAC9F,GAAM,CAAC,EAAG,GAAK,EACT,EAAO,GAAQ,GAAG,CAAC,EACzB,GAAI,OAAO,GAAM,SACb,GAAI,aAAiB,IAAW,aAAiB,GAC7C,EAAc,aAAa,CAAK,OAGhC,MAAU,MAAM,kHACqD,EAG7E,KAAK,gBAAgB,EAAG,EAAG,EAAM,CAAK,EACtC,EAAc,aAAa,CAAI,CACnC,CAIA,OAHI,GACA,EAAc,aAAa,EAAW,CAAK,EAExC,CACX,CACA,UAAU,EAAY,EAAO,EAAW,EAAa,CACjD,GAAI,CAAC,EAAW,eAAe,EAC3B,MAAU,MAAM,2EAA2E,EAAW,QAAQ,EAAI,GAAG,EAEzH,IAAM,EAAa,EAAW,gBAAgB,EACxC,EAAkB,EAAW,eAAe,EAC5C,EAAkB,EAAgB,gBAAgB,EAClD,EAAS,CAAC,CAAC,EAAgB,OAC3B,EAAO,CAAC,CAAC,EAAW,aACpB,CAAC,EAAW,GAAS,KAAK,kBAAkB,EAAY,CAAW,EACnE,GAAa,EAAW,IAAU,CACpC,GAAI,EAAgB,aAAa,EAC7B,KAAK,UAAU,EAAiB,MAAM,QAAQ,CAAK,EAAI,EAAQ,CAAC,CAAK,EAAG,EAAW,CAAK,OAEvF,GAAI,EAAgB,YAAY,EACjC,KAAK,SAAS,EAAiB,EAAO,EAAW,CAAK,OAErD,GAAI,EAAgB,eAAe,EAAG,CACvC,IAAM,EAAS,KAAK,YAAY,EAAiB,EAAO,CAAK,EAC7D,EAAU,aAAa,EAAO,SAAS,EAAO,EAAW,SAAW,EAAW,cAAc,EAAI,EAAgB,SAAW,QAAQ,CAAC,CACzI,KACK,CACD,IAAM,EAAe,GAAQ,GAAG,EAAO,EAAW,SAAW,EAAW,cAAc,EAAI,EAAgB,SAAW,QAAQ,EAC7H,KAAK,gBAAgB,EAAiB,EAAO,EAAc,CAAK,EAChE,EAAU,aAAa,CAAY,CACvC,CACJ,EACA,GAAI,MACK,IAAM,KAAS,GACZ,GAAU,GAAS,OACnB,EAAU,EAAW,CAAK,MAIjC,CACD,IAAM,EAAW,GAAQ,GAAG,EAAW,SAAW,EAAW,cAAc,CAAC,EACxE,GACA,EAAS,aAAa,EAAW,CAAK,EAE1C,IAAK,IAAM,KAAS,GACZ,GAAU,GAAS,OACnB,EAAU,EAAU,CAAK,EAGjC,EAAU,aAAa,CAAQ,CACnC,CACJ,CACA,SAAS,EAAW,EAAK,EAAW,EAAa,EAAiB,GAAO,CACrE,GAAI,CAAC,EAAU,eAAe,EAC1B,MAAU,MAAM,0EAA0E,EAAU,QAAQ,EAAI,GAAG,EAEvH,IAAM,EAAY,EAAU,gBAAgB,EACtC,EAAe,EAAU,aAAa,EAEtC,EADe,EAAa,gBACR,EAAE,SAAW,MACjC,EAAiB,EAAU,eAAe,EAC1C,EAAiB,EAAe,gBAAgB,EAChD,EAAW,EAAe,SAAW,QACrC,EAAS,CAAC,CAAC,EAAe,OAC1B,EAAO,CAAC,CAAC,EAAU,aACnB,CAAC,EAAW,GAAS,KAAK,kBAAkB,EAAW,CAAW,EAClE,GAAe,EAAO,EAAK,IAAQ,CACrC,IAAM,EAAU,GAAQ,GAAG,EAAQ,CAAG,EAChC,CAAC,EAAc,GAAY,KAAK,kBAAkB,EAAc,CAAK,EACvE,GACA,EAAQ,aAAa,EAAc,CAAQ,EAE/C,EAAM,aAAa,CAAO,EAC1B,IAAI,EAAY,GAAQ,GAAG,CAAQ,EAC/B,EAAe,aAAa,EAC5B,KAAK,UAAU,EAAgB,EAAK,EAAW,CAAK,EAE/C,EAAe,YAAY,EAChC,KAAK,SAAS,EAAgB,EAAK,EAAW,EAAO,EAAI,EAEpD,EAAe,eAAe,EACnC,EAAY,KAAK,YAAY,EAAgB,EAAK,CAAK,EAGvD,KAAK,gBAAgB,EAAgB,EAAK,EAAW,CAAK,EAE9D,EAAM,aAAa,CAAS,CAChC,EACA,GAAI,OACK,GAAM,CAAC,EAAK,KAAQ,OAAO,QAAQ,CAAG,EACvC,GAAI,GAAU,GAAO,KAAM,CACvB,IAAM,EAAQ,GAAQ,GAAG,EAAU,SAAW,EAAU,cAAc,CAAC,EACvE,EAAY,EAAO,EAAK,CAAG,EAC3B,EAAU,aAAa,CAAK,CAChC,MAGH,CACD,IAAI,EACC,IACD,EAAU,GAAQ,GAAG,EAAU,SAAW,EAAU,cAAc,CAAC,EAC/D,GACA,EAAQ,aAAa,EAAW,CAAK,EAEzC,EAAU,aAAa,CAAO,GAElC,IAAK,GAAM,CAAC,EAAK,KAAQ,OAAO,QAAQ,CAAG,EACvC,GAAI,GAAU,GAAO,KAAM,CACvB,IAAM,EAAQ,GAAQ,GAAG,OAAO,EAChC,EAAY,EAAO,EAAK,CAAG,GAC1B,EAAiB,EAAY,GAAS,aAAa,CAAK,CAC7D,CAER,CACJ,CACA,YAAY,EAAS,EAAO,CACxB,GAAa,IAAT,KACA,MAAU,MAAM,qEAAqE,EAEzF,IAAM,EAAK,GAAiB,GAAG,CAAO,EAClC,EAAe,KACnB,GAAI,GAAS,OAAO,GAAU,SAC1B,GAAI,EAAG,aAAa,EAChB,GAAgB,KAAK,cAAc,eAAiB,IAAU,CAAK,OAElE,GAAI,EAAG,kBAAkB,GAAK,aAAiB,KAEhD,OADe,GAAyB,EAAI,KAAK,QACpC,EAAb,CACI,IAAK,GACD,EAAe,EAAM,YAAY,EAAE,QAAQ,QAAS,GAAG,EACvD,MACJ,IAAK,GACD,EAAe,GAAgB,CAAK,EACpC,MACJ,IAAK,GACD,EAAe,OAAO,EAAM,QAAQ,EAAI,GAAI,EAC5C,MACJ,QACI,QAAQ,KAAK,4CAA6C,CAAK,EAC/D,EAAe,GAAgB,CAAK,EACpC,KACR,MAEC,GAAI,EAAG,mBAAmB,GAAK,EAIhC,OAHI,aAAiB,GACV,EAAM,OAEV,OAAO,CAAK,OAElB,GAAI,EAAG,YAAY,GAAK,EAAG,aAAa,EACzC,MAAU,MAAM,0HAA0H,OAG1I,MAAU,MAAM,gGAAgG,EAAG,QAAQ,EAAI,GAAG,EAc1I,IAXI,EAAG,gBAAgB,GAAK,EAAG,gBAAgB,GAAK,EAAG,mBAAmB,GAAK,EAAG,mBAAmB,KACjG,EAAe,OAAO,CAAK,GAE3B,EAAG,eAAe,IAClB,CAII,CAJA,IAAU,QAAa,EAAG,mBAAmB,EAC9BV,GAAyB,EAGzB,OAAO,CAAK,GAG/B,IAAiB,KACjB,MAAU,MAAM,+BAA+B,EAAG,QAAQ,EAAI,EAAE,GAAG,GAAO,EAE9E,OAAO,CACX,CACA,gBAAgB,EAAS,EAAO,EAAM,EAAa,CAC/C,IAAM,EAAe,KAAK,YAAY,EAAS,CAAK,EAC9C,EAAK,GAAiB,GAAG,CAAO,EAChC,EAAU,IAAI,GAAQ,CAAY,EAClC,CAAC,EAAW,GAAS,KAAK,kBAAkB,EAAI,CAAW,EAC7D,GACA,EAAK,aAAa,EAAW,CAAK,EAEtC,EAAK,aAAa,CAAO,CAC7B,CACA,kBAAkB,EAAI,EAAa,CAE/B,GAAM,CAAC,EAAQ,GADA,EAAG,gBACW,EAAE,cAAgB,CAAC,EAIhD,OAHI,GAAS,IAAU,EACZ,CAAC,EAAS,SAAS,IAAW,QAAS,CAAK,EAEhD,CAAC,IAAK,GAAG,IAAK,EAAC,CAC1B,CACJ,ECnSa,IAAb,cAA8B,EAAmB,CAC7C,SACA,YAAY,EAAU,CAClB,MAAM,EACN,KAAK,SAAW,CACpB,CACA,kBAAmB,CACf,IAAM,EAAa,IAAI,IAAmB,KAAK,QAAQ,EAEvD,OADA,EAAW,gBAAgB,KAAK,YAAY,EACrC,CACX,CACA,oBAAqB,CACjB,IAAM,EAAe,IAAI,IAAqB,KAAK,QAAQ,EAE3D,OADA,EAAa,gBAAgB,KAAK,YAAY,EACvC,CACX,CACJ,ECda,IAAb,cAAwC,GAAoB,CACxD,MACA,WACA,aACA,MAAQ,IAAI,IACZ,YAAY,EAAS,CACjB,MAAM,CAAO,EACb,IAAM,EAAW,CACb,gBAAiB,CACb,SAAU,GACV,QAAS,CACb,EACA,aAAc,GACd,aAAc,EAAQ,aACtB,iBAAkB,EAAQ,gBAC9B,EACA,KAAK,MAAQ,IAAI,IAAS,CAAQ,EAClC,KAAK,WAAa,IAAI,IAAgC,KAAK,MAAM,iBAAiB,EAAG,CAAQ,EAC7F,KAAK,aAAe,IAAI,IAAkC,KAAK,MAAM,mBAAmB,EAAG,CAAQ,EACnG,KAAK,sBACT,CACA,iBAAkB,CACd,OAAO,KAAK,KAChB,CACA,YAAa,CACT,MAAO,uBACX,CACA,MAAM,iBAAiB,EAAiB,EAAO,EAAS,CACpD,IAAM,EAAU,MAAM,MAAM,iBAAiB,EAAiB,EAAO,CAAO,EACtE,EAAc,GAAiB,GAAG,EAAgB,KAAK,EAC7D,GAAI,CAAC,EAAQ,QAAQ,gBAAiB,CAClC,IAAM,EAAc,KAAK,MAAM,uBAAuB,KAAK,sBAAsB,EAAG,CAAW,EAC3F,IACA,EAAQ,QAAQ,gBAAkB,EAE1C,CAOA,OANI,OAAO,EAAQ,MAAS,UACxB,EAAQ,QAAQ,kBAAoB,KAAK,sBAAsB,GAC/D,CAAC,EAAQ,KAAK,WAAW,QAAQ,GACjC,CAAC,KAAK,8BAA8B,CAAW,IAC/C,EAAQ,KAAO,yCAA2C,EAAQ,MAE/D,CACX,CACA,MAAM,oBAAoB,EAAiB,EAAS,EAAU,CAC1D,OAAO,MAAM,oBAAoB,EAAiB,EAAS,CAAQ,CACvE,CACA,MAAM,YAAY,EAAiB,EAAS,EAAU,EAAY,EAAU,CACxE,IAAM,EAAkB,IAAqB,EAAU,CAAU,GAAK,UAEtE,GADA,KAAK,MAAM,QAAQ,KAAK,uBAAwB,EAAiB,KAAK,QAAQ,gBAAgB,EAC1F,EAAW,OAAS,OAAO,EAAW,OAAU,SAChD,IAAK,IAAM,KAAO,OAAO,KAAK,EAAW,KAAK,EAC1C,EAAW,GAAO,EAAW,MAAM,GAC/B,EAAI,YAAY,IAAM,YACtB,EAAW,QAAU,EAAW,MAAM,IAI9C,EAAW,WAAa,CAAC,EAAS,YAClC,EAAS,UAAY,EAAW,WAEpC,GAAM,CAAE,cAAa,iBAAkB,MAAM,KAAK,MAAM,mCAAmC,EAAiB,KAAK,QAAQ,iBAAkB,EAAU,EAAY,CAAQ,EACnK,EAAK,GAAiB,GAAG,CAAW,EACpC,EAAU,EAAW,OAAO,SAC9B,EAAW,OAAO,SAClB,EAAW,SACX,EAAW,SACX,eAEE,EAAY,KADA,KAAK,uBAAuB,aAAa,CAAW,IAAK,OAC3C,CAAO,EACvC,MAAM,KAAK,uBAAuB,EAAa,EAAS,EAAU,CAAU,EAC5E,IAAM,EAAS,CAAC,EAChB,IAAK,GAAM,CAAC,EAAM,KAAW,EAAG,eAAe,EAAG,CAC9C,IAAM,EAAS,EAAO,gBAAgB,EAAE,SAAW,EAC7C,EAAQ,EAAW,QAAQ,IAAW,EAAW,GACvD,EAAO,GAAQ,KAAK,MAAM,mBAAmB,EAAE,WAAW,EAAQ,CAAK,CAC3E,CACA,MAAM,KAAK,MAAM,yBAAyB,OAAO,OAAO,EAAW,EAAe,CAC9E,OAAQ,EAAG,gBAAgB,EAAE,MAC7B,SACJ,EAAG,CAAM,EAAG,CAAU,CAC1B,CACA,uBAAwB,CACpB,MAAO,iBACX,CACA,8BAA8B,EAAI,CAC9B,IAAK,GAAM,EAAG,KAAW,EAAG,eAAe,EACvC,GAAI,EAAO,gBAAgB,EAAE,YACzB,MAAO,EAAE,EAAO,eAAe,GAAK,EAAO,YAAY,GAAK,EAAO,aAAa,GAGxF,MAAO,EACX,CACJ,EChGa,IAAb,cAAuC,GAAmB,CACtD,MAAM,iBAAiB,EAAiB,EAAO,EAAS,CACpD,IAAM,EAAU,MAAM,MAAM,iBAAiB,EAAiB,EAAO,CAAO,EACtE,EAAK,GAAiB,GAAG,EAAgB,KAAK,EAC9C,EAAwB,EAAG,UAAU,EACvC,EAAoB,EAClB,EAAsB,EAAsB,IAAM,EACxD,GAAI,GAAS,OAAO,GAAU,SAC1B,IAAK,GAAM,CAAC,EAAY,KAAa,EAAG,eAAe,EAAG,CACtD,GAAI,EAAE,EAAoB,EACtB,MAEJ,GAAI,IAAe,SAAU,CACzB,GAAI,CAAC,EAAM,QAAU,EAAS,gBAAgB,EAAE,UAC5C,MAAU,MAAM,iDAAiD,EAErE,KACJ,CACJ,CAEJ,OAAO,CACX,CACJ,ECtBA,SAAS,IAAsB,EAAO,CAIlC,OAHI,IAAU,OACH,GAEJ,OAAO,GAAU,UAAY,EAAM,QAAU,EACxD,CACA,SAAgB,IAAuB,EAAO,CAC1C,IAAM,EAA0B,GAAkB,EAAM,sBAAmC,EACrF,CAAE,mBAAoB,EAC5B,OAAO,OAAO,OAAO,EAAO,CACxB,gBAAiB,OAAO,GAAoB,SAAW,CAAC,CAAC,CAAe,CAAC,EAAI,EAC7E,eAAgB,SAAY,CACxB,IAAM,EAAQ,MAAM,EAAwB,EAC5C,GAAI,CAAC,IAAsB,CAAK,EAAG,CAC/B,IAAM,EAAS,EAAM,QAAQ,aAAa,OAAS,cAAgB,CAAC,EAAM,OAAS,QAAU,EAAM,OAC/F,OAAO,GAAU,SAGZ,EAAM,OAAS,IACpB,GAAQ,KAAK,0EAA0E,EAHvF,GAAQ,KAAK,+CAA+C,CAKpE,CACA,OAAO,CACX,CACJ,CAAC,CACL,CC3BA,IAAa,IAAb,KAA2B,CACvB,SACA,KAAO,IAAI,IACX,WAAa,CAAC,EACd,YAAY,CAAE,OAAM,UAAU,CAC1B,KAAK,SAAW,GAAQ,GACpB,IACA,KAAK,WAAa,EAE1B,CACA,IAAI,EAAgB,EAAU,CAC1B,IAAM,EAAM,KAAK,KAAK,CAAc,EACpC,GAAI,IAAQ,GACR,OAAO,EAAS,EAEpB,GAAI,CAAC,KAAK,KAAK,IAAI,CAAG,EAAG,CACrB,GAAI,KAAK,KAAK,KAAO,KAAK,SAAW,GAAI,CACrC,IAAM,EAAO,KAAK,KAAK,KAAK,EACxB,EAAI,EACR,OAAa,CACT,GAAM,CAAE,QAAO,QAAS,EAAK,KAAK,EAElC,GADA,KAAK,KAAK,OAAO,CAAK,EAClB,GAAQ,EAAE,EAAI,GACd,KAER,CACJ,CACA,KAAK,KAAK,IAAI,EAAK,EAAS,CAAC,CACjC,CACA,OAAO,KAAK,KAAK,IAAI,CAAG,CAC5B,CACA,MAAO,CACH,OAAO,KAAK,KAAK,IACrB,CACA,KAAK,EAAgB,CACjB,IAAI,EAAS,GACP,CAAE,cAAe,KACvB,GAAI,EAAW,SAAW,EACtB,MAAO,GAEX,IAAK,IAAM,KAAS,EAAY,CAC5B,IAAM,EAAM,OAAO,EAAe,IAAU,EAAE,EAC9C,GAAI,EAAI,SAAS,IAAI,EACjB,MAAO,GAEX,GAAU,EAAM,IACpB,CACA,OAAO,CACX,CACJ,ECjDM,IAAkB,OAAO,kGAAkG,EACpH,GAAe,GAAU,IAAY,KAAK,CAAK,GAAM,EAAM,WAAW,GAAG,GAAK,EAAM,SAAS,GAAG,ECDvG,IAA6B,OAAO,mCAAmC,EAChE,IAAoB,EAAO,EAAkB,KAAU,CAChE,GAAI,CAAC,EACD,OAAO,IAAuB,KAAK,CAAK,EAE5C,IAAM,EAAS,EAAM,MAAM,GAAG,EAC9B,IAAK,IAAM,KAAS,EAChB,GAAI,CAAC,GAAiB,CAAK,EACvB,MAAO,GAGf,MAAO,EACX,ECZa,GAA0B,CAAC,ECA3B,GAAU,YCAvB,SAAgB,GAAc,EAAO,CAUjC,OATI,OAAO,GAAU,WAAY,EACtB,EAEP,QAAS,EACF,IAAI,GAAc,EAAM,GAAG,IAElC,OAAQ,EACD,GAAG,EAAM,GAAG,IAAI,EAAM,MAAQ,CAAC,GAAG,IAAI,EAAa,EAAE,KAAK,IAAI,EAAE,GAEpE,KAAK,UAAU,EAAO,KAAM,CAAC,CACxC,CCXA,IAAa,GAAb,cAAmC,KAAM,CACrC,YAAY,EAAS,CACjB,MAAM,CAAO,EACb,KAAK,KAAO,eAChB,CACJ,ECLa,KAAiB,EAAQ,IAAW,IAAW,ECC/C,IAAmB,GAAS,CACrC,IAAM,EAAQ,EAAK,MAAM,GAAG,EACtB,EAAW,CAAC,EAClB,IAAK,IAAM,KAAQ,EAAO,CACtB,IAAM,EAAqB,EAAK,QAAQ,GAAG,EAC3C,GAAI,IAAuB,GAAI,CAC3B,GAAI,EAAK,QAAQ,GAAG,IAAM,EAAK,OAAS,EACpC,MAAM,IAAI,GAAc,UAAU,EAAK,wBAAwB,EAEnE,IAAM,EAAa,EAAK,MAAM,EAAqB,EAAG,EAAE,EACxD,GAAI,OAAO,MAAM,SAAS,CAAU,CAAC,EACjC,MAAM,IAAI,GAAc,yBAAyB,EAAW,cAAc,EAAK,EAAE,EAEjF,IAAuB,GACvB,EAAS,KAAK,EAAK,MAAM,EAAG,CAAkB,CAAC,EAEnD,EAAS,KAAK,CAAU,CAC5B,MAEI,EAAS,KAAK,CAAI,CAE1B,CACA,OAAO,CACX,ECtBa,IAAW,EAAO,IAAS,IAAgB,CAAI,EAAE,QAAQ,EAAK,IAAU,CACjF,GAAI,OAAO,GAAQ,SACf,MAAM,IAAI,GAAc,UAAU,EAAM,QAAQ,EAAK,kBAAkB,KAAK,UAAU,CAAK,EAAE,EAAE,EAKnG,OAHS,MAAM,QAAQ,CAAG,EACf,EAAI,SAAS,CAAK,GAEtB,EAAI,EACf,EAAG,CAAK,ECVK,IAAS,GAAU,GAAS,KCA5B,IAAO,GAAU,CAAC,ECEzB,GAAgB,EACjB,GAAkB,MAAO,IACzB,GAAkB,OAAQ,GAC/B,ECJa,IAAoB,CAC7B,kBACA,WACA,UACA,oBACA,QACA,SDDqB,GAAU,CAC/B,IAAM,OAAmB,CACrB,GAAI,CACA,GAAI,aAAiB,IACjB,OAAO,EAEX,GAAI,OAAO,GAAU,UAAY,aAAc,EAAO,CAClD,GAAM,CAAE,WAAU,OAAM,WAAW,GAAI,OAAO,GAAI,QAAQ,CAAC,GAAM,EAC3D,EAAM,IAAI,IAAI,GAAG,EAAS,IAAI,IAAW,EAAO,IAAI,IAAS,KAAK,GAAM,EAI9E,MAHA,GAAI,OAAS,OAAO,QAAQ,CAAK,EAC5B,KAAK,CAAC,EAAG,KAAO,GAAG,EAAE,GAAG,GAAG,EAC3B,KAAK,GAAG,EACN,CACX,CACA,OAAO,IAAI,IAAI,CAAK,CACxB,MACc,CACV,OAAO,IACX,CACJ,GAAG,EACH,GAAI,CAAC,EAED,OADA,QAAQ,MAAM,mBAAmB,KAAK,UAAU,CAAK,EAAE,kBAAkB,EAClE,KAEX,IAAM,EAAY,EAAU,KACtB,CAAE,OAAM,WAAU,WAAU,WAAU,UAAW,EACvD,GAAI,EACA,OAAO,KAEX,IAAM,EAAS,EAAS,MAAM,EAAG,EAAE,EACnC,GAAI,CAAC,OAAO,OAAO,EAAiB,EAAE,SAAS,CAAM,EACjD,OAAO,KAEX,IAAM,EAAO,GAAY,CAAQ,EAIjC,MAAO,CACH,SACA,aAHiB,IAFY,EAAU,SAAS,GAAG,EAAK,GAAG,GAAc,IAAS,GACjF,OAAO,GAAU,UAAY,EAAM,SAAS,GAAG,EAAK,GAAG,GAAc,IAAS,EAC5B,IAAI,GAAc,KAAY,KAIjF,KAAM,EACN,eAAgB,EAAS,SAAS,GAAG,EAAI,EAAW,GAAG,EAAS,GAChE,MACJ,CACJ,EC1CI,cCRyB,EAAQ,IAAW,IAAW,EDSvD,WETsB,EAAO,EAAO,EAAM,IACtC,GAAS,GAAQ,EAAM,OAAS,GAAQ,mBAAmB,KAAK,CAAK,EAC9D,KAEN,EAGE,EAAM,UAAU,EAAM,OAAS,EAAM,EAAM,OAAS,CAAK,EAFrD,EAAM,UAAU,EAAO,CAAI,EFKtC,UGVsB,GAAU,mBAAmB,CAAK,EAAE,QAAQ,WAAa,GAAM,IAAI,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,CHWzI,EIVa,IAAoB,EAAU,IAAY,CACnD,IAAM,EAAuB,CAAC,EACxB,EAAkB,CACpB,GAAG,EAAQ,eACX,GAAG,EAAQ,eACf,EACI,EAAe,EACnB,KAAO,EAAe,EAAS,QAAQ,CACnC,IAAM,EAAoB,EAAS,QAAQ,IAAK,CAAY,EAC5D,GAAI,IAAsB,GAAI,CAC1B,EAAqB,KAAK,EAAS,MAAM,CAAY,CAAC,EACtD,KACJ,CACA,EAAqB,KAAK,EAAS,MAAM,EAAc,CAAiB,CAAC,EACzE,IAAM,EAAoB,EAAS,QAAQ,IAAK,CAAiB,EACjE,GAAI,IAAsB,GAAI,CAC1B,EAAqB,KAAK,EAAS,MAAM,CAAiB,CAAC,EAC3D,KACJ,CACI,EAAS,EAAoB,KAAO,KAAO,EAAS,EAAoB,KAAO,MAC/E,EAAqB,KAAK,EAAS,MAAM,EAAoB,EAAG,CAAiB,CAAC,EAClF,EAAe,EAAoB,GAEvC,IAAM,EAAgB,EAAS,UAAU,EAAoB,EAAG,CAAiB,EACjF,GAAI,EAAc,SAAS,GAAG,EAAG,CAC7B,GAAM,CAAC,EAAS,GAAY,EAAc,MAAM,GAAG,EACnD,EAAqB,KAAK,GAAQ,EAAgB,GAAU,CAAQ,CAAC,CACzE,MAEI,EAAqB,KAAK,EAAgB,EAAc,EAE5D,EAAe,EAAoB,CACvC,CACA,OAAO,EAAqB,KAAK,EAAE,CACvC,ECnCa,KAAqB,CAAE,OAAO,KAKhC,CAHH,GAAG,EAAQ,eACX,GAAG,EAAQ,eAEM,GAAE,GCAd,IAAsB,EAAK,EAAS,IAAY,CACzD,GAAI,OAAO,GAAQ,SACf,OAAO,GAAiB,EAAK,CAAO,EAEnC,GAAI,EAAI,GACT,OAAOW,GAAM,aAAa,EAAK,CAAO,EAErC,GAAI,EAAI,IACT,OAAO,IAAkB,EAAK,CAAO,EAEzC,MAAM,IAAI,GAAc,IAAI,EAAQ,KAAK,OAAO,CAAG,EAAE,yCAAyC,CAClG,EACa,IAAgB,CAAE,KAAI,QAAQ,IAAY,CACnD,IAAM,EAAgB,EAAK,IAAK,GAAQ,CAAC,UAAW,QAAQ,EAAE,SAAS,OAAO,CAAG,EAAI,EAAMA,GAAM,mBAAmB,EAAK,MAAO,CAAO,CAAC,EAClI,EAAa,EAAG,MAAM,GAAG,EAI/B,OAHI,EAAW,KAAM,IAA2B,EAAW,IAAM,KACtD,GAAwB,EAAW,IAAI,EAAW,IAAI,GAAG,CAAa,EAE1E,IAAkB,GAAI,GAAG,CAAa,CACjD,EACaA,GAAQ,CACjB,sBACA,eACJ,ECzBa,KAAqB,CAAE,SAAQ,GAAG,GAAU,IAAY,CACjE,GAAI,GAAU,KAAU,EAAQ,gBAC5B,MAAM,IAAI,GAAc,IAAI,EAAO,0CAA0C,EAEjF,IAAM,EAAQ,GAAa,EAAQ,CAAO,EAE1C,OADA,EAAQ,QAAQ,QAAQ,GAAG,GAAQ,sBAAsB,GAAc,CAAM,EAAE,KAAK,GAAc,CAAK,GAAG,EACnG,CACH,OAAQ,IAAU,GAAK,GAAO,CAAC,CAAC,EAChC,GAAI,GAAU,MAAQ,CAAE,SAAU,CAAE,KAAM,EAAQ,OAAM,CAAE,CAC9D,CACJ,ECXa,IAAsB,EAAa,CAAC,EAAG,IAAY,CAC5D,IAAM,EAA4B,CAAC,EACnC,IAAK,IAAM,KAAa,EAAY,CAChC,GAAM,CAAE,SAAQ,YAAa,IAAkB,EAAW,CACtD,GAAG,EACH,gBAAiB,CACb,GAAG,EAAQ,gBACX,GAAG,CACP,CACJ,CAAC,EACD,GAAI,CAAC,EACD,MAAO,CAAE,QAAO,EAEhB,IACA,EAA0B,EAAS,MAAQ,EAAS,MACpD,EAAQ,QAAQ,QAAQ,GAAG,GAAQ,WAAW,EAAS,KAAK,MAAM,GAAc,EAAS,KAAK,GAAG,EAEzG,CACA,MAAO,CAAE,OAAQ,GAAM,gBAAiB,CAA0B,CACtE,ECnBa,KAAsB,EAAS,IAAY,OAAO,QAAQ,CAAO,EAAE,QAAQ,EAAK,CAAC,EAAW,MAAgB,CACrH,GAAG,GACF,GAAY,EAAU,IAAK,GAAmB,CAC3C,IAAM,EAAgB,GAAmB,EAAgB,qBAAsB,CAAO,EACtF,GAAI,OAAO,GAAkB,SACzB,MAAM,IAAI,GAAc,WAAW,EAAU,WAAW,EAAc,kBAAkB,EAE5F,OAAO,CACX,CAAC,CACL,GAAI,CAAC,CAAC,ECTO,IAAyB,EAAY,IAAY,OAAO,QAAQ,CAAU,EAAE,QAAQ,EAAK,CAAC,EAAa,MAAkB,CAClI,GAAG,GACF,GAAcA,GAAM,oBAAoB,EAAa,CAAO,CACjE,GAAI,CAAC,CAAC,EACO,IAAuB,EAAU,IAAY,CACtD,GAAI,MAAM,QAAQ,CAAQ,EACtB,OAAO,EAAS,IAAK,GAAkB,GAAoB,EAAe,CAAO,CAAC,EAEtF,OAAQ,OAAO,EAAf,CACI,IAAK,SACD,OAAO,GAAiB,EAAU,CAAO,EAC7C,IAAK,SACD,GAAI,IAAa,KACb,MAAM,IAAI,GAAc,iCAAiC,GAAU,EAEvE,OAAOA,GAAM,sBAAsB,EAAU,CAAO,EACxD,IAAK,UACD,OAAO,EACX,QACI,MAAM,IAAI,GAAc,sCAAsC,OAAO,GAAU,CACvF,CACJ,EACaA,GAAQ,CACjB,uBACA,wBACJ,ECzBa,KAAkB,EAAa,IAAY,CACpD,IAAM,EAAa,GAAmB,EAAa,eAAgB,CAAO,EAC1E,GAAI,OAAO,GAAe,SACtB,GAAI,CACA,OAAO,IAAI,IAAI,CAAU,CAC7B,OACO,EAAO,CAEV,MADA,QAAQ,MAAM,gCAAgC,IAAc,CAAK,EAC3D,CACV,CAEJ,MAAM,IAAI,GAAc,sCAAsC,OAAO,GAAY,CACrF,ECTa,KAAwB,EAAc,IAAY,CAC3D,GAAM,CAAE,aAAY,YAAa,EAC3B,CAAE,SAAQ,mBAAoB,GAAmB,EAAY,CAAO,EAC1E,GAAI,CAAC,EACD,OAEJ,IAAM,EAAsB,CACxB,GAAG,EACH,gBAAiB,CAAE,GAAG,EAAQ,gBAAiB,GAAG,CAAgB,CACtE,EACM,CAAE,MAAK,aAAY,WAAY,EAErC,OADA,EAAQ,QAAQ,QAAQ,GAAG,GAAQ,qCAAqC,GAAc,CAAQ,GAAG,EAC1F,CACH,GAAI,GAAW,MAAa,CACxB,QAAS,IAAmB,EAAS,CAAmB,CAC5D,EACA,GAAI,GAAc,MAAa,CAC3B,WAAY,GAAsB,EAAY,CAAmB,CACrE,EACA,IAAK,IAAe,EAAK,CAAmB,CAChD,CACJ,ECvBa,KAAqB,EAAW,IAAY,CACrD,GAAM,CAAE,aAAY,SAAU,EACxB,CAAE,SAAQ,mBAAoB,GAAmB,EAAY,CAAO,EACrE,KAGL,MAAM,IAAI,GAAc,GAAmB,EAAO,QAAS,CACvD,GAAG,EACH,gBAAiB,CAAE,GAAG,EAAQ,gBAAiB,GAAG,CAAgB,CACtE,CAAC,CAAC,CACN,ECTa,IAAiB,EAAO,IAAY,CAC7C,IAAK,IAAM,KAAQ,EACf,GAAI,EAAK,OAAS,WAAY,CAC1B,IAAM,EAAsB,IAAqB,EAAM,CAAO,EAC9D,GAAI,EACA,OAAO,CAEf,MACK,GAAI,EAAK,OAAS,QACnB,IAAkB,EAAM,CAAO,OAE9B,GAAI,EAAK,OAAS,OAAQ,CAC3B,IAAM,EAAsB,GAAM,iBAAiB,EAAM,CAAO,EAChE,GAAI,EACA,OAAO,CAEf,MAEI,MAAM,IAAI,GAAc,0BAA0B,GAAM,EAGhE,MAAM,IAAI,GAAc,yBAAyB,CACrD,EAYa,GAAQ,CACjB,iBACA,kBAb6B,EAAU,IAAY,CACnD,GAAM,CAAE,aAAY,SAAU,EACxB,CAAE,SAAQ,mBAAoB,GAAmB,EAAY,CAAO,EACrE,KAGL,OAAO,GAAM,cAAc,EAAO,CAC9B,GAAG,EACH,gBAAiB,CAAE,GAAG,EAAQ,gBAAiB,GAAG,CAAgB,CACtE,CAAC,CACL,CAIA,ECtCa,KAAmB,EAAe,IAAY,CACvD,GAAM,CAAE,iBAAgB,UAAW,EAC7B,CAAE,aAAY,SAAU,EAC9B,EAAQ,QAAQ,QAAQ,GAAG,GAAQ,2BAA2B,GAAc,CAAc,GAAG,EAC7F,IAAM,EAAoB,OAAO,QAAQ,CAAU,EAC9C,QAAQ,EAAG,KAAO,EAAE,SAAW,IAAI,EACnC,KAAK,CAAC,EAAG,KAAO,CAAC,EAAG,EAAE,OAAO,CAAC,EACnC,GAAI,EAAkB,OAAS,EAC3B,IAAK,GAAM,CAAC,EAAU,KAAsB,EACxC,EAAe,GAAY,EAAe,IAAa,EAG/D,IAAM,EAAiB,OAAO,QAAQ,CAAU,EAC3C,QAAQ,EAAG,KAAO,EAAE,QAAQ,EAC5B,KAAK,CAAC,KAAO,CAAC,EACnB,IAAK,IAAM,KAAiB,EACxB,GAAI,EAAe,IAAkB,KACjC,MAAM,IAAI,GAAc,gCAAgC,EAAc,EAAE,EAGhF,IAAM,EAAW,GAAc,EAAO,CAAE,iBAAgB,SAAQ,gBAAiB,CAAC,CAAE,CAAC,EAErF,OADA,EAAQ,QAAQ,QAAQ,GAAG,GAAQ,sBAAsB,GAAc,CAAQ,GAAG,EAC3E,CACX,ECxBa,IAA6B,EAAO,EAAkB,KAAU,CACzE,GAAI,EAAiB,CACjB,IAAK,IAAM,KAAS,EAAM,MAAM,GAAG,EAC/B,GAAI,CAAC,GAA0B,CAAK,EAChC,MAAO,GAGf,MAAO,EACX,CAaA,MAHA,EATI,CAAC,GAAiB,CAAK,GAGvB,EAAM,OAAS,GAAK,EAAM,OAAS,IAGnC,IAAU,EAAM,YAAY,GAG5B,GAAY,CAAK,EAIzB,ECxBM,GAAgB,IAChB,IAAqB,IACd,IAAY,GAAU,CAC/B,IAAM,EAAW,EAAM,MAAM,EAAa,EAC1C,GAAI,EAAS,OAAS,EAClB,OAAO,KACX,GAAM,CAAC,EAAK,EAAW,EAAS,EAAQ,EAAW,GAAG,GAAgB,EAItE,OAHI,IAAQ,OAAS,IAAc,IAAM,IAAY,IAAM,EAAa,KAAK,EAAa,IAAM,GACrF,KAEJ,CACH,YACA,UACA,SACA,YACA,WANe,EAAa,IAAK,GAAa,EAAS,MAAM,GAAkB,CAAC,EAAE,KAMzE,CACb,CACJ,EChBI,IAAyBC,2/IACzB,IAA0B,GACjB,IAAa,GAAU,CAChC,GAAM,CAAE,cAAe,IACvB,IAAK,IAAM,KAAa,EAAY,CAChC,GAAM,CAAE,UAAS,WAAY,EAC7B,IAAK,GAAM,CAAC,EAAQ,KAAe,OAAO,QAAQ,CAAO,EACrD,GAAI,IAAW,EACX,MAAO,CACH,GAAG,EACH,GAAG,CACP,CAGZ,CACA,IAAK,IAAM,KAAa,EAAY,CAChC,GAAM,CAAE,cAAa,WAAY,EACjC,GAAI,IAAI,OAAO,CAAW,EAAE,KAAK,CAAK,EAClC,MAAO,CACH,GAAG,CACP,CAER,CACA,IAAM,EAAoB,EAAW,KAAM,GAAc,EAAU,KAAO,KAAK,EAC/E,GAAI,CAAC,EACD,MAAU,MAAM,mHACyC,EAE7D,MAAO,CACH,GAAG,EAAkB,OACzB,CACJ,EAQa,QAA2B,ICpC3B,GAAuB,CACL,6BACjB,aACC,aACf,EACA,GAAwB,IAAM,GCT9B,IAAW,IACV,SAAU,EAAa,CACpB,EAAY,SAAc,WAC1B,EAAY,SAAc,UAC9B,GAAG,EAAgB,GAAc,CAAC,CAAE,EAEpC,IAAa,IAAqB,GAAY,SCEjC,IAAyB,CAClC,yBACA,wBACA,yBACA,0BACA,yCACA,uBACA,mBACA,4BACA,WACA,qBACA,aACA,sBACA,2BACA,gCACJ,EACa,IAAwB,CAAC,eAAgB,iBAAkB,yBAAyB,EACpF,IAA+B,CAAC,IAAK,IAAK,IAAK,GAAG,EAClD,IAA6B,CAAC,aAAc,eAAgB,QAAS,WAAW,EAChF,IAA6B,CAAC,eAAgB,cAAe,WAAW,EC1BxE,IAAsB,GAAU,GAAO,aAAe,OAEtD,IAA6B,GAAU,EAAM,WAAW,mBACxD,IAAyB,GAAU,CAC5C,IAAM,EAAgB,IAAI,IAAI,CAC1B,kBACA,iDACA,gDACA,cACA,wBACJ,CAAC,EAKD,OAJgB,GAAS,aAAiB,UAInC,EAAc,IAAI,EAAM,OAAO,EAF3B,EAGf,EACa,GAAqB,GAAU,EAAM,WAAW,iBAAmB,KAC5E,IAAuB,SAAS,EAAM,IAAI,GAC1C,EAAM,YAAY,YAAc,EACvB,IAAoB,EAAO,EAAQ,IAAM,IAAmB,CAAK,GAC1E,IAA0B,CAAK,GAC/B,IAAsB,SAAS,EAAM,IAAI,GACzC,IAA2B,SAAS,GAAO,MAAQ,EAAE,GACrD,IAA2B,SAAS,GAAO,MAAQ,EAAE,GACrD,IAA6B,SAAS,EAAM,WAAW,gBAAkB,CAAC,GAC1E,IAAsB,CAAK,GAC1B,EAAM,QAAU,QAAa,GAAS,IAAM,GAAiB,EAAM,MAAO,EAAQ,CAAC,EAC3E,IAAiB,GAAU,CACpC,GAAI,EAAM,WAAW,iBAAmB,OAAW,CAC/C,IAAM,EAAa,EAAM,UAAU,eAInC,MAHI,MAAO,GAAc,GAAc,KAAO,CAAC,GAAiB,CAAK,CAIzE,CACA,MAAO,EACX,ECrCa,IAAb,MAAa,CAAmB,CAC5B,OAAO,aAAe,WACtB,KACA,YACA,YACA,cACA,OACA,QAAU,GACV,gBAAkB,EAClB,YAAc,EACd,eAAiB,EACjB,aAAe,EACf,SACA,iBACA,cAAgB,EAChB,iBACA,YACA,WAAa,EACb,YAAY,EAAS,CACjB,KAAK,KAAO,GAAS,MAAQ,GAC7B,KAAK,YAAc,GAAS,aAAe,EAC3C,KAAK,YAAc,GAAS,aAAe,GAC3C,KAAK,cAAgB,GAAS,eAAiB,GAC/C,KAAK,OAAS,GAAS,QAAU,GACjC,IAAM,EAAuB,KAAK,wBAAwB,EAC1D,KAAK,iBAAmB,EACxB,KAAK,iBAAmB,KAAK,MAAM,KAAK,wBAAwB,CAAC,EACjE,KAAK,SAAW,KAAK,YACrB,KAAK,YAAc,KAAK,WAC5B,CACA,yBAA0B,CACtB,OAAO,KAAK,IAAI,EAAI,GACxB,CACA,MAAM,cAAe,CACjB,OAAO,KAAK,mBAAmB,CAAC,CACpC,CACA,MAAM,mBAAmB,EAAQ,CACxB,QAAK,QAIV,IADA,KAAK,kBAAkB,EACnB,EAAS,KAAK,gBAAiB,CAC/B,IAAM,GAAU,EAAS,KAAK,iBAAmB,KAAK,SAAY,IAClE,MAAM,IAAI,QAAS,GAAY,EAAmB,aAAa,EAAS,CAAK,CAAC,CAClF,CACA,KAAK,iBAAyC,CAD9C,CAEJ,CACA,mBAAoB,CAChB,IAAM,EAAY,KAAK,wBAAwB,EAC/C,GAAI,CAAC,KAAK,cAAe,CACrB,KAAK,cAAgB,EACrB,MACJ,CACA,IAAM,GAAc,EAAY,KAAK,eAAiB,KAAK,SAC3D,KAAK,gBAAkB,KAAK,IAAI,KAAK,YAAa,KAAK,gBAAkB,CAAU,EACnF,KAAK,cAAgB,CACzB,CACA,wBAAwB,EAAU,CAC9B,IAAI,EACJ,KAAK,mBAAmB,EACxB,IAAM,EAAiB,EAEvB,GADqB,GAAgB,YAAc,cAAgB,GAAkB,GAAgB,OAAS,CAAQ,EACpG,CACd,IAAM,EAAa,KAAK,QAAgC,KAAK,IAAI,KAAK,eAAgB,KAAK,QAAQ,EAAjE,KAAK,eACvC,KAAK,YAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAmB,KAAK,wBAAwB,EACrD,EAAiB,KAAK,cAAc,CAAS,EAC7C,KAAK,kBAAkB,CAC3B,MAEI,KAAK,oBAAoB,EACzB,EAAiB,KAAK,aAAa,KAAK,wBAAwB,CAAC,EAErE,IAAM,EAAU,KAAK,IAAI,EAAgB,EAAI,KAAK,cAAc,EAChE,KAAK,sBAAsB,CAAO,CACtC,CACA,qBAAsB,CAClB,KAAK,WAAa,KAAK,YAAqB,KAAK,aAAe,EAAI,KAAK,MAAS,KAAK,iBAAe,EAAI,EAAE,CAChH,CACA,cAAc,EAAW,CACrB,OAAO,KAAK,WAAW,EAAY,KAAK,IAAI,CAChD,CACA,aAAa,EAAW,CACpB,OAAO,KAAK,WAAW,KAAK,eAAyB,EAAY,KAAK,iBAAmB,KAAK,aAAY,EAAK,KAAK,WAAW,CACnI,CACA,mBAAoB,CAChB,KAAK,QAAU,EACnB,CACA,sBAAsB,EAAS,CAC3B,KAAK,kBAAkB,EACvB,KAAK,SAAW,KAAK,IAAI,EAAS,KAAK,WAAW,EAClD,KAAK,YAAc,KAAK,IAAI,EAAS,KAAK,WAAW,EACrD,KAAK,gBAAkB,KAAK,IAAI,KAAK,gBAAiB,KAAK,WAAW,CAC1E,CACA,oBAAqB,CACjB,IAAM,EAAI,KAAK,wBAAwB,EACjC,EAAa,KAAK,MAAM,EAAI,CAAC,EAAI,EAEvC,GADA,KAAK,eACD,EAAa,KAAK,iBAAkB,CACpC,IAAM,EAAc,KAAK,cAAgB,EAAa,KAAK,kBAC3D,KAAK,eAAiB,KAAK,WAAW,EAAc,KAAK,OAAS,KAAK,gBAAkB,EAAI,KAAK,OAAO,EACzG,KAAK,aAAe,EACpB,KAAK,iBAAmB,CAC5B,CACJ,CACA,WAAW,EAAK,CACZ,OAAO,WAAW,EAAI,QAAQ,CAAC,CAAC,CACpC,CACJ,EC7Ga,GAAsB,GAAK,IAM3B,IAAuB,wBACvB,IAAiB,kBCPjB,QAAuC,CAChD,IAAI,MAOJ,MAAO,CACH,wBAP6B,GACtB,KAAK,MAAM,KAAK,IAAI,GAAqB,KAAK,OAAO,EAAI,GAAK,EAAW,CAAS,CAAC,EAO1F,aALkB,GAAU,CAC5B,EAAY,CAChB,CAIA,CACJ,ECZa,IAA2B,CAAE,aAAY,aAAY,gBAIvD,CACH,kBAJwB,EAKxB,kBAJwB,KAAK,IAAI,GAAqB,CAAU,EAKhE,iBAJuB,CAK3B,GCLS,GAAb,KAAmC,CAC/B,YACA,KAAO,GAAY,SACnB,aACA,qBAAuB,IAA+B,EACtD,oBACA,YAAY,EAAa,CACrB,KAAK,YAAc,EACnB,KAAK,oBAAsB,OAAO,GAAgB,WAAa,EAAc,SAAY,CAC7F,CACA,MAAM,yBAAyB,EAAiB,CAC5C,OAAO,GAAwB,CAC3B,eACA,WAAY,CAChB,CAAC,CACL,CACA,MAAM,0BAA0B,EAAO,EAAW,CAC9C,IAAM,EAAc,MAAM,KAAK,eAAe,EAC9C,GAAI,KAAK,YAAY,EAAO,EAAW,CAAW,EAAG,CACjD,IAAM,EAAY,EAAU,UAC5B,KAAK,qBAAqB,aAAa,IAAc,oBAAqE,EAC1H,IAAM,EAAqB,KAAK,qBAAqB,wBAAwB,EAAM,cAAc,CAAC,EAC5F,EAAa,EAAU,eACvB,KAAK,IAAI,EAAU,eAAe,QAAQ,EAAI,KAAK,IAAI,GAAK,EAAG,CAAkB,EACjF,EACA,EAAe,KAAK,gBAAgB,CAAS,EAEnD,MADA,MAAK,UAAY,EACV,GAAwB,CAC3B,aACA,WAAY,EAAM,cAAc,EAAI,EACpC,UAAW,CACf,CAAC,CACL,CACA,MAAU,MAAM,0BAA0B,CAC9C,CACA,cAAc,EAAO,CACjB,KAAK,SAAW,KAAK,QAA0B,KAAK,UAAY,EAAM,aAAa,KAAwB,CAC/G,CACA,aAAc,CACV,OAAO,KAAK,QAChB,CACA,MAAM,gBAAiB,CACnB,GAAI,CACA,OAAO,MAAM,KAAK,oBAAoB,CAC1C,MACc,CAEV,OADA,QAAQ,KAAK,6DAAmF,EAChG,CACJ,CACJ,CACA,YAAY,EAAc,EAAW,EAAa,CAE9C,OADiB,EAAa,cAAc,EAAI,EAC7B,GACf,KAAK,UAAY,KAAK,gBAAgB,EAAU,SAAS,GACzD,KAAK,iBAAiB,EAAU,SAAS,CACjD,CACA,gBAAgB,EAAW,CACvB,OAAO,IAAc,gBACzB,CACA,iBAAiB,EAAW,CACxB,OAAO,IAAc,cAAgB,IAAc,WACvD,CACJ,EC/Da,IAAb,KAAmC,CAC/B,oBACA,YACA,sBACA,KAAO,GAAY,SACnB,YAAY,EAAqB,EAAS,CACtC,KAAK,oBAAsB,EAC3B,GAAM,CAAE,eAAgB,GAAW,CAAC,EACpC,KAAK,YAAc,GAAe,IAAI,IACtC,KAAK,sBAAwB,IAAI,GAAsB,CAAmB,CAC9E,CACA,MAAM,yBAAyB,EAAiB,CAE5C,OADA,MAAM,KAAK,YAAY,aAAa,EAC7B,KAAK,sBAAsB,yBAAyB,CAAe,CAC9E,CACA,MAAM,0BAA0B,EAAc,EAAW,CAErD,OADA,KAAK,YAAY,wBAAwB,CAAS,EAC3C,KAAK,sBAAsB,0BAA0B,EAAc,CAAS,CACvF,CACA,cAAc,EAAO,CACjB,KAAK,YAAY,wBAAwB,CAAC,CAAC,EAC3C,KAAK,sBAAsB,cAAc,CAAK,CAClD,CACJ,ECxBM,IAA4B,cAClC,eAAsB,IAAc,EAAS,EAAQ,EAAM,CAKvD,GAJgB,EAAK,SACR,UAAU,qBAAuB,eAC1C,GAAW,EAAS,uBAAwB,GAAG,EAE/C,OAAO,EAAO,eAAkB,WAAY,CAC5C,IAAM,EAAgB,MAAM,EAAO,cAAc,EACjD,GAAI,OAAO,EAAc,MAAS,SAC9B,OAAQ,EAAc,KAAtB,CACI,KAAK,GAAY,SACb,GAAW,EAAS,sBAAuB,GAAG,EAC9C,MACJ,KAAK,GAAY,SACb,GAAW,EAAS,sBAAuB,GAAG,EAC9C,KACR,CAER,CACA,GAAI,OAAO,EAAO,uBAA0B,WAAY,CACpD,IAAM,EAAa,EAAQ,WAI3B,OAHI,OAAO,GAAY,KAAK,QAAQ,EAAE,MAAM,GAAyB,GACjE,GAAW,EAAS,sBAAuB,GAAG,EAE1C,MAAM,EAAO,wBAAwB,EAA7C,CACI,IAAK,WACD,GAAW,EAAS,2BAA4B,GAAG,EACnD,MACJ,IAAK,YACD,GAAW,EAAS,4BAA6B,GAAG,EACpD,MACJ,IAAK,WACD,GAAW,EAAS,2BAA4B,GAAG,EACnD,KACR,CACJ,CACA,IAAM,EAAW,EAAQ,kBAAkB,wBAAwB,SACnE,GAAI,GAAU,QAAS,CACnB,IAAM,EAAc,EAChB,EAAY,WACZ,GAAW,EAAS,sBAAuB,GAAG,EAElD,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAY,SAAW,CAAC,CAAC,EAC/D,GAAW,EAAS,EAAK,CAAK,CAEtC,CACJ,CChDA,IAAa,GAAa,aACb,GAAmB,mBAGnB,IAAuB,wBACvB,IAAwB,yBCL/B,IAAa,KACnB,SAAgB,IAAe,EAAU,CACrC,IAAI,EAAS,GACb,IAAK,IAAM,KAAO,EAAU,CACxB,IAAM,EAAM,EAAS,GACrB,GAAI,EAAO,OAAS,EAAI,OAAS,GAAK,IAAY,CAC1C,EAAO,OACP,GAAU,IAAM,EAGhB,GAAU,EAEd,QACJ,CACA,KACJ,CACA,OAAO,CACX,CCZA,IAAa,IAAuB,IAAa,EAAM,IAAY,KAAO,IAAS,CAC/E,GAAM,CAAE,WAAY,EACpB,GAAI,CAAC,GAAY,WAAW,CAAO,EAC/B,OAAO,EAAK,CAAI,EAEpB,GAAM,CAAE,WAAY,EACd,EAAY,GAAS,WAAW,IAAI,EAAe,GAAK,CAAC,EACzD,GAAoB,MAAM,EAAQ,yBAAyB,GAAG,IAAI,EAAe,EACvF,MAAM,IAAc,EAAS,EAAS,CAAI,EAC1C,IAAM,EAAa,EACnB,EAAiB,KAAK,KAAK,IAAe,OAAO,OAAO,CAAC,EAAG,EAAQ,kBAAkB,SAAU,EAAW,mBAAmB,QAAQ,CAAC,GAAG,EAC1I,IAAM,EAAkB,GAAS,iBAAiB,IAAI,EAAe,GAAK,CAAC,EACrE,EAAQ,MAAM,EAAQ,eAAe,EACvC,GACA,EAAiB,KAAK,GAAgB,CAAC,MAAO,GAAG,GAAO,CAAC,CAAC,EAE9D,IAAM,EAAS,IAAmB,EAC5B,GAAqB,EAAS,CAAC,CAAM,EAAI,CAAC,GAC3C,OAAO,CAAC,GAAG,EAAkB,GAAG,EAAW,GAAG,CAAe,CAAC,EAC9D,QAAU,EACT,EAAgB,CAClB,GAAG,EAAiB,OAAQ,GAAY,EAAQ,WAAW,UAAU,CAAC,EACtE,GAAG,CACP,EAAE,QAAU,EAYZ,OAXI,EAAQ,UAAY,UASpB,EAAQ,IAAoB,GARxB,IACA,EAAQ,IAAoB,sBACtB,GAAG,EAAQ,IAAY,GAAG,IAC1B,GAEV,EAAQ,IAAc,GAKnB,EAAK,CACR,GAAG,EACH,SACJ,CAAC,CACL,EACM,GAAmB,GAAkB,CACvC,IAAM,EAAO,EAAc,GACtB,SAAuB,EACvB,IAAK,GAAS,EAAK,QAAQ,OAAoC,CAAC,EAChE,QAAsB,EACrB,EAAU,EAAc,IAAI,QAAQ,OAAqC,EACzE,EAAuB,EAAK,WAAyB,EACrD,EAAS,EAAK,UAAU,EAAG,CAAoB,EACjD,EAAS,EAAK,UAAU,EAAuB,CAAC,EAIpD,OAHI,IAAW,QACX,EAAS,EAAO,YAAY,GAEzB,CAAC,EAAQ,EAAQ,CAAO,EAC1B,OAAQ,GAAS,GAAQ,EAAK,OAAS,CAAC,EACxC,QAAQ,EAAK,EAAM,IAAU,CAC9B,OAAQ,EAAR,CACI,IAAK,GACD,OAAO,EACX,IAAK,GACD,MAAO,GAAG,EAAI,GAAG,IACrB,QACI,MAAO,GAAG,EAAI,GAAG,GACzB,CACJ,EAAG,EAAE,CACT,EACa,IAAgC,CACzC,KAAM,yBACN,KAAM,QACN,SAAU,MACV,KAAM,CAAC,iBAAkB,YAAY,EACrC,SAAU,EACd,EACa,IAAsB,IAAY,CAC3C,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAoB,CAAM,EAAG,GAA6B,CAC9E,CACJ,GChFM,GAAe,IAAI,IACZ,KAAe,EAAQ,EAAQ,KAAqB,CAC7D,GAAI,CAAC,GAAa,IAAI,CAAM,GAAK,CAAC,EAAM,CAAM,EAC1C,GAAI,IAAW,IACX,QAAQ,KAAK,0KAA0K,OAGvL,MAAU,MAAM,gCAAgC,EAAO,qCAAqC,OAIhG,GAAa,IAAI,CAAM,CAE/B,ECda,GAAgB,GAAW,OAAO,GAAW,WAAa,EAAO,WAAW,OAAO,GAAK,EAAO,SAAS,OAAO,GCC/G,IAAiB,GAAW,GAAa,CAAM,EACtD,CAAC,kBAAmB,UAAU,EAAE,SAAS,CAAM,EAC3C,YACA,EAAO,QAAQ,2BAA4B,EAAE,EACjD,ECFO,IAAuB,GAAU,CAC1C,GAAM,CAAE,SAAQ,mBAAoB,EACpC,GAAI,CAAC,EACD,MAAU,MAAM,mBAAmB,EAEvC,OAAO,OAAO,OAAO,EAAO,CACxB,OAAQ,SAAY,CAEhB,IAAM,EAAa,IADI,OAAO,GAAW,WAAa,MAAM,EAAO,EAAI,CACxB,EAE/C,OADA,IAAY,CAAU,EACf,CACX,EACA,gBAAiB,SAET,GADmB,OAAO,GAAW,SAAW,EAAS,MAAM,EAAO,CAC3C,EACpB,GAEJ,OAAO,GAAoB,WAAkD,EAAgB,EAArD,QAAQ,QAAQ,CAAC,CAAC,CAAe,CAExF,CAAC,CACL,ECvBa,IAAiC,GAAU,OAAO,OAAO,EAAO,CACzE,sBAAuB,EAAM,yBAAyB,CAAK,CAC/D,CAAC,ECDK,GAAwB,iBAC9B,SAAgB,IAAwB,EAAmB,CACvD,MAAQ,IAAS,KAAO,IAAS,CAC7B,IAAM,EAAU,EAAK,QACrB,GAAI,GAAY,WAAW,CAAO,EAAG,CACjC,GAAM,CAAE,OAAM,WAAY,EAC1B,GAAI,GACA,OAAO,KAAK,CAAO,EACd,IAAK,GAAQ,EAAI,YAAY,CAAC,EAC9B,QAAQ,EAAqB,IAAM,GACxC,GAAI,CACA,IAAM,EAAS,EAAkB,CAAI,EACrC,EAAQ,QAAU,CACd,GAAG,EAAQ,SACV,IAAwB,OAAO,CAAM,CAC1C,CACJ,MACc,CACd,CAER,CACA,OAAO,EAAK,CACR,GAAG,EACH,SACJ,CAAC,CACL,CACJ,CACA,IAAa,IAAiC,CAC1C,KAAM,QACN,KAAM,CAAC,qBAAsB,gBAAgB,EAC7C,KAAM,0BACN,SAAU,EACd,EACa,IAA0B,IAAa,CAChD,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAwB,EAAQ,iBAAiB,EAAG,GAA8B,CACtG,CACJ,GCtCa,IAAqB,KAAO,IAAmB,CACxD,IAAM,EAAS,GAAgB,QAAU,GAIzC,GAHI,OAAO,EAAe,QAAW,WACjC,EAAe,OAAS,EAAO,QAAQ,KAAM,KAAuB,EAAE,QAAQ,MAAO,KAAuB,GAE5G,IAAgB,CAAM,MAClB,EAAe,iBAAmB,GAClC,MAAU,MAAM,uDAAuD,QAGtE,CAAC,IAA0B,CAAM,GACrC,EAAO,QAAQ,GAAG,IAAM,IAAM,CAAC,OAAO,EAAe,QAAQ,EAAE,WAAW,OAAO,GAClF,EAAO,YAAY,IAAM,GACzB,EAAO,OAAS,KAChB,EAAe,eAAiB,IAMpC,OAJI,EAAe,iCACf,EAAe,+BAAiC,GAChD,EAAe,YAAc,IAE1B,CACX,EACM,IAAiB,uCACjB,IAAqB,gBACrB,IAAe,OAGR,IAA6B,GAAe,IAAe,KAAK,CAAU,GAAK,CAAC,IAAmB,KAAK,CAAU,GAAK,CAAC,IAAa,KAAK,CAAU,EACpJ,IAAmB,GAAe,CAC3C,GAAM,CAAC,EAAK,EAAW,IAAa,GAAU,EAAW,MAAM,GAAG,EAC5D,EAAQ,IAAQ,OAAS,EAAW,MAAM,GAAG,EAAE,QAAU,EACzD,EAAa,GAAQ,GAAS,GAAa,GAAW,GAC5D,GAAI,GAAS,CAAC,EACV,MAAU,MAAM,gBAAgB,EAAW,qBAAqB,EAEpE,OAAO,CACX,ECpCa,KAA6B,EAAW,EAA2B,EAAQ,EAAuB,KAAU,CACrH,IAAM,EAAiB,SAAY,CAC/B,IAAI,EAYJ,MAXA,CAMI,EANA,EAC4B,EAAO,sBACO,IACb,EAAO,IAAc,EAAO,GAG3C,EAAO,IAAc,EAAO,GAE1C,OAAO,GAAgB,WAChB,EAAY,EAEhB,CACX,EAiCA,OAhCI,IAAc,mBAAqB,IAA8B,kBAC1D,SAAY,CACf,IAAM,EAAc,OAAO,EAAO,aAAgB,WAAa,MAAM,EAAO,YAAY,EAAI,EAAO,YAEnG,OADoB,GAAa,iBAAmB,GAAa,eAErE,EAEA,IAAc,aAAe,IAA8B,YACpD,SAAY,CACf,IAAM,EAAc,OAAO,EAAO,aAAgB,WAAa,MAAM,EAAO,YAAY,EAAI,EAAO,YAEnG,OADoB,GAAa,WAAa,GAAa,SAE/D,EAEA,IAAc,YAAc,IAA8B,WACnD,SAAY,CACf,GAAI,EAAO,mBAAqB,GAC5B,OAEJ,IAAM,EAAW,MAAM,EAAe,EACtC,GAAI,GAAY,OAAO,GAAa,SAAU,CAC1C,GAAI,QAAS,EACT,OAAO,EAAS,IAAI,KAExB,GAAI,aAAc,EAAU,CACxB,GAAM,CAAE,WAAU,WAAU,OAAM,QAAS,EAC3C,MAAO,GAAG,EAAS,IAAI,IAAW,EAAO,IAAM,EAAO,KAAK,GAC/D,CACJ,CACA,OAAO,CACX,EAEG,CACX,ECjDa,GAAwB,KAAO,IAAc,OCC7C,GAAgB,GAAa,CACtC,GAAI,OAAO,GAAa,SAAU,CAC9B,GAAI,QAAS,EAAU,CACnB,IAAM,EAAa,GAAS,EAAS,GAAG,EACxC,GAAI,EAAS,QAAS,CAClB,EAAW,QAAU,CAAC,EACtB,IAAK,GAAM,CAAC,EAAM,KAAW,OAAO,QAAQ,EAAS,OAAO,EACxD,EAAW,QAAQ,EAAK,YAAY,GAAK,EAAO,KAAK,IAAI,CAEjE,CACA,OAAO,CACX,CACA,OAAO,CACX,CACA,OAAO,GAAS,CAAQ,CAC5B,ECZa,GAA8B,MAAO,EAAc,EAAsB,EAAc,IAAY,CAC5G,GAAI,CAAC,EAAa,iBAAkB,CAChC,IAAI,EACJ,CAII,CAJA,EAAa,0BACQ,MAAM,EAAa,0BAA0B,EAG7C,MAAM,GAAsB,EAAa,SAAS,EAEvE,IACA,EAAa,aAAiB,QAAQ,QAAQ,GAAa,CAAkB,CAAC,EAC9E,EAAa,iBAAmB,GAExC,CACA,IAAM,EAAiB,MAAM,GAAc,EAAc,EAAsB,CAAY,EAC3F,GAAI,OAAO,EAAa,kBAAqB,WACzC,MAAU,MAAM,qCAAqC,EAEzD,IAAM,EAAW,EAAa,iBAAiB,EAAgB,CAAO,EACtE,GAAI,EAAa,kBAAoB,EAAa,SAAU,CACxD,IAAM,EAAiB,MAAM,EAAa,SAAS,EACnD,GAAI,GAAgB,QAAS,CACzB,EAAS,UAAY,CAAC,EACtB,IAAK,GAAM,CAAC,EAAM,KAAU,OAAO,QAAQ,EAAe,OAAO,EAC7D,EAAS,QAAQ,GAAQ,MAAM,QAAQ,CAAK,EAAI,EAAQ,CAAC,CAAK,CAEtE,CACJ,CACA,OAAO,CACX,EACa,GAAgB,MAAO,EAAc,EAAsB,IAAiB,CACrF,IAAM,EAAiB,CAAC,EAClB,EAAe,GAAsB,mCAAmC,GAAK,CAAC,EACpF,IAAK,GAAM,CAAC,EAAM,KAAgB,OAAO,QAAQ,CAAY,EACzD,OAAQ,EAAY,KAApB,CACI,IAAK,sBACD,EAAe,GAAQ,EAAY,MACnC,MACJ,IAAK,gBACD,EAAe,GAAQ,EAAa,EAAY,MAChD,MACJ,IAAK,sBACL,IAAK,gBACD,EAAe,GAAQ,MAAM,IAA0B,EAAY,KAAM,EAAM,EAAc,EAAY,OAAS,eAAe,EAAE,EACnI,MACJ,IAAK,yBACD,EAAe,GAAQ,EAAY,IAAI,CAAY,EACnD,MACJ,QACI,MAAU,MAAM,gDAAkD,KAAK,UAAU,CAAW,CAAC,CACrG,CAQJ,OANI,OAAO,KAAK,CAAY,EAAE,SAAW,GACrC,OAAO,OAAO,EAAgB,CAAY,EAE1C,OAAO,EAAa,SAAS,EAAE,YAAY,IAAM,MACjD,MAAM,IAAmB,CAAc,EAEpC,CACX,EC5Da,KAAsB,CAAE,SAAQ,mBACjC,EAAM,IAAY,KAAO,IAAS,CAClC,EAAO,kBACP,IAAW,EAAS,oBAAqB,GAAG,EAEhD,IAAM,EAAW,MAAM,GAA4B,EAAK,MAAO,CAC3D,kCAAmC,CAC/B,OAAO,CACX,CACJ,EAAG,CAAE,GAAG,CAAO,EAAG,CAAO,EACzB,EAAQ,WAAa,EACrB,EAAQ,YAAc,EAAS,YAAY,YAC3C,IAAM,EAAa,EAAQ,cAAc,GACzC,GAAI,EAAY,CACZ,EAAQ,eAAoB,EAAW,cACvC,EAAQ,gBAAqB,EAAW,YAExC,IAAM,EADgB,GAAiB,CACJ,GAAG,wBAAwB,eAC1D,IACA,EAAe,kBAAoB,OAAO,OAAO,EAAe,mBAAqB,CAAC,EAAG,CACrF,eAAgB,EAAW,cAC3B,cAAe,EAAW,cAC1B,gBAAiB,EAAW,YAC5B,YAAa,EAAW,YACxB,iBAAkB,EAAW,gBACjC,EAAG,EAAW,UAAU,EAEhC,CACA,OAAO,EAAK,CACR,GAAG,CACP,CAAC,CACL,EChCS,IAA4B,CACrC,KAAM,YACN,KAAM,CAAC,sBAAuB,cAAe,UAAU,EACvD,KAAM,uBACN,SAAU,GACV,SAAU,SACV,aAAc,CCCd,KAAM,uBACN,KAAM,YACN,KAAM,CAAC,YAAY,EACnB,SAAU,EDJI,EAA2B,IAC7C,EACa,IAAqB,EAAQ,KAAkB,CACxD,aAAe,GAAgB,CAC3B,EAAY,cAAc,IAAmB,CACzC,SACA,cACJ,CAAC,EAAG,GAAyB,CACjC,CACJ,GEda,IAAyB,GAAU,CAC5C,IAAM,EAAM,EAAM,KAAO,GACnB,CAAE,WAAU,uBAAsB,mBAAoB,EAGtD,EAAiB,OAAO,OAAO,EAAO,CACxC,SAH2B,GAAY,KAAuE,OAAhE,SAAY,GAAa,MAAMrB,GAAkB,CAAQ,EAAE,CAAC,EAI1G,MACA,kBAJsB,CAAC,EAKvB,qBAAsBA,GAAkB,GAAwB,EAAK,EACrE,gBAAiBA,GAAkB,GAAmB,EAAK,CAC/D,CAAC,EACG,EAOJ,MANA,GAAe,0BAA4B,UACnC,EAAM,WAAa,CAAC,IACpB,EAA4B,GAAsB,EAAM,SAAS,GAE9D,GAEJ,CACX,ECvBa,IAAc,GACnB,aAAiB,MACV,EACP,aAAiB,OACV,OAAO,OAAW,MAAM,EAAG,CAAK,EAE5B,MADX,OAAO,GAAU,SACA,EACJ,6BAA6B,GADpB,ECqBjB,IAAsB,GAAU,CACzC,GAAM,CAAE,gBAAe,aAAc,EAC/B,EAAcA,GAAkB,EAAM,cAAmC,EAC3E,EAAa,EACX,QAAQ,QAAQ,CAAa,EAC7B,OACA,EAAa,SAAa,MAAMA,GAAkB,CAAS,EAAE,IAAO,GAAY,SAChF,IAAI,IAAsB,CAAW,EACrC,IAAI,GAAsB,CAAW,EAC3C,OAAO,OAAO,OAAO,EAAO,CACxB,cACA,kBAAsB,IAAe,EAAW,CACpD,CAAC,CACL,ECxCa,IAAsB,GAAY,GAAS,gBAAgB,eCO3D,IAAmB,IAAa,EAAM,IAAY,KAAO,IAAS,CAC3E,IAAI,EAAgB,MAAM,EAAQ,cAAc,EAC1C,EAAc,MAAM,EAAQ,YAAY,EAC9C,GAAI,IAAkB,CAAa,EAAG,CAClC,EAAgB,EAChB,IAAI,EAAa,MAAM,EAAc,yBAAyB,EAAQ,YAAe,EACjF,EAAgB,MAAM,EACtB,EAAW,EACX,EAAkB,EAChB,CAAE,WAAY,EACd,EAAY,GAAY,WAAW,CAAO,EAIhD,IAHI,IACA,EAAQ,QAAQ,KAAwB,GAAG,KAG3C,GAAI,CACI,IACA,EAAQ,QAAQ,KAAkB,WAAW,EAAW,EAAE,QAAQ,KAEtE,GAAM,CAAE,WAAU,UAAW,MAAM,EAAK,CAAI,EAI5C,OAHA,EAAc,cAAc,CAAU,EACtC,EAAO,UAAU,SAAW,EAAW,EACvC,EAAO,UAAU,gBAAkB,EAC5B,CAAE,WAAU,QAAO,CAC9B,OACO,EAAG,CACN,IAAM,EAAiB,IAAkB,CAAC,EAE1C,GADA,EAAY,IAAW,CAAC,EACpB,GAAa,IAAmB,CAAO,EAEvC,MADC,EAAQ,kBAAkB,GAAa,QAAU,EAAQ,SAAS,KAAK,gEAAgE,EAClI,EAEV,GAAI,CACA,EAAa,MAAM,EAAc,0BAA0B,EAAY,CAAc,CACzF,MACqB,CAMjB,KALA,CACI,EAAU,YAAY,CAAC,EAE3B,EAAU,UAAU,SAAW,EAAW,EAC1C,EAAU,UAAU,gBAAkB,EAChC,CACV,CACA,EAAW,EAAW,cAAc,EACpC,IAAM,EAAQ,EAAW,cAAc,EACvC,GAAmB,EACnB,MAAM,IAAI,QAAS,GAAY,WAAW,EAAS,CAAK,CAAC,CAC7D,CAER,MAKI,MAHA,GAAgB,EACZ,GAAe,OACf,EAAQ,UAAY,CAAC,GAAI,EAAQ,WAAa,CAAC,EAAI,CAAC,iBAAkB,EAAc,IAAI,CAAC,GACtF,EAAc,MAAM,EAAM,CAAI,CAE7C,EACM,IAAqB,GAAyB,EAAc,2BAA6B,QACpF,EAAc,4BAA8B,QAC5C,EAAc,gBAAkB,OACrC,IAAqB,GAAU,CACjC,IAAM,EAAY,CACd,QACA,UAAW,IAAkB,CAAK,CACtC,EACM,EAAiB,IAAkB,EAAM,SAAS,EAIxD,OAHI,IACA,EAAU,eAAiB,GAExB,CACX,EACM,IAAqB,GACnB,GAAkB,CAAK,EAChB,aACP,GAAiB,CAAK,EACf,YACP,IAAc,CAAK,EACZ,eACJ,eAEE,IAAyB,CAClC,KAAM,kBACN,KAAM,CAAC,OAAO,EACd,KAAM,kBACN,SAAU,OACV,SAAU,EACd,EACa,IAAkB,IAAa,CACxC,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAgB,CAAO,EAAG,GAAsB,CACpE,CACJ,GACa,IAAqB,GAAa,CAC3C,GAAI,CAAC,GAAa,WAAW,CAAQ,EACjC,OACJ,IAAM,EAAuB,OAAO,KAAK,EAAS,OAAO,EAAE,KAAM,GAAQ,EAAI,YAAY,IAAM,aAAa,EAC5G,GAAI,CAAC,EACD,OACJ,IAAM,EAAa,EAAS,QAAQ,GAC9B,EAAoB,OAAO,CAAU,EAI3C,OAHK,OAAO,MAAM,CAAiB,EAG5B,IADoB,KAAK,CACZ,EAFT,IAAI,KAAK,EAAoB,GAAI,CAGhD,EC9Ga,GAAiB,GAAa,GAAa,WAAW,CAAQ,EAAI,EAAS,SAAS,MAAQ,EAAS,SAAS,KAAO,OCDrH,GAAwB,GAAsB,IAAI,KAAK,KAAK,IAAI,EAAI,CAAiB,ECCrF,KAAiB,EAAW,IAAsB,KAAK,IAAI,GAAqB,CAAiB,EAAE,QAAQ,EAAI,CAAS,GAAK,ICA7H,IAA+B,EAAW,IAA6B,CAChF,IAAM,EAAgB,KAAK,MAAM,CAAS,EAI1C,OAHI,IAAc,EAAe,CAAwB,EAC9C,EAAgB,KAAK,IAAI,EAE7B,CACX,ECLM,IAA6B,EAAM,IAAa,CAClD,GAAI,CAAC,EACD,MAAU,MAAM,cAAc,EAAK,yCAAyC,EAEhF,OAAO,CACX,EACa,GAA4B,KAAO,IAAsB,CAClE,IAAM,EAAU,GAA0B,UAAW,EAAkB,OAAO,EACxE,EAAS,GAA0B,SAAU,EAAkB,MAAM,EACrE,EAAa,EAAQ,YAAY,YAAY,cAAc,GAMjE,MAAO,CACH,SACA,aAPmB,GAA0B,SAAU,EAAO,MAChC,EAAE,CAAU,EAO1C,cANkB,GAAmB,cAOrC,iBANqB,GAAmB,iBAOxC,YANgB,GAAmB,WAOvC,CACJ,EACa,GAAb,KAA+B,CAC3B,MAAM,KAAK,EAAa,EAAU,EAAmB,CACjD,GAAI,CAAC,GAAY,WAAW,CAAW,EACnC,MAAU,MAAM,sEAAsE,EAE1F,IAAM,EAAiB,MAAM,GAA0B,CAAiB,EAClE,CAAE,SAAQ,UAAW,EACvB,CAAE,gBAAe,eAAgB,EAC/B,EAA0B,EAAkB,QAClD,GAAI,GAAyB,aAAa,QAAU,GAAO,CACvD,GAAM,CAAC,EAAO,GAAU,EAAwB,YAC5C,GAAO,OAAS,UAAY,GAAQ,OAAS,UAC7C,EAAgB,GAAQ,eAAiB,EACzC,EAAc,GAAQ,aAAe,EAE7C,CAMA,OAAO,MALqB,EAAO,KAAK,EAAa,CACjD,YAAa,GAAqB,EAAO,iBAAiB,EAC3C,gBACf,eAAgB,CACpB,CAAC,CAEL,CACA,aAAa,EAAmB,CAC5B,MAAQ,IAAU,CACd,IAAM,EAAa,EAAM,YAAc,GAAc,EAAM,SAAS,EACpE,GAAI,EAAY,CACZ,IAAM,EAAS,GAA0B,SAAU,EAAkB,MAAM,EACrE,EAA2B,EAAO,kBACxC,EAAO,kBAAoB,GAA4B,EAAY,EAAO,iBAAiB,EAChE,EAAO,oBAAsB,GAC9B,EAAM,YAC5B,EAAM,UAAU,mBAAqB,GAE7C,CACA,MAAM,CACV,CACJ,CACA,eAAe,EAAc,EAAmB,CAC5C,IAAM,EAAa,GAAc,CAAY,EAC7C,GAAI,EAAY,CACZ,IAAM,EAAS,GAA0B,SAAU,EAAkB,MAAM,EAC3E,EAAO,kBAAoB,GAA4B,EAAY,EAAO,iBAAiB,CAC/F,CACJ,CACJ,ECnEa,IAAb,cAAwC,EAAkB,CACtD,MAAM,KAAK,EAAa,EAAU,EAAmB,CACjD,GAAI,CAAC,GAAY,WAAW,CAAW,EACnC,MAAU,MAAM,sEAAsE,EAE1F,GAAM,CAAE,SAAQ,SAAQ,gBAAe,mBAAkB,eAAgB,MAAM,GAA0B,CAAiB,EAEpH,GAAuB,MADgB,EAAO,yBAAyB,GAEzE,GAAoB,CAAC,CAAa,GAAG,KAAK,GAAG,EAMjD,OAAO,MALqB,EAAO,KAAK,EAAa,CACjD,YAAa,GAAqB,EAAO,iBAAiB,EAC1D,cAAe,EACf,eAAgB,CACpB,CAAC,CAEL,CACJ,ECnBa,KAAW,EAAU,EAAW,IAAoB,CAC7D,IAAI,EACA,EACA,EACA,EAAa,GACX,EAAmB,SAAY,CACjC,CACI,GAAU,EAAS,EAEvB,GAAI,CACA,EAAW,MAAM,EACjB,EAAY,GACZ,EAAa,EACjB,QACQ,CACJ,EAAU,MACd,CACA,OAAO,CACX,EASA,OARI,IAAc,OACP,KAAO,MACN,CAAC,GAAa,GAAS,gBACvB,EAAW,MAAM,EAAiB,GAE/B,GAGR,KAAO,MACN,CAAC,GAAa,GAAS,gBACvB,EAAW,MAAM,EAAiB,GAElC,EACO,EAEP,GAAmB,CAAC,EAAgB,CAAQ,GAC5C,EAAa,GACN,IAEP,EAAU,CAAQ,GAClB,MAAM,EAAiB,EAGpB,GAEf,EC1Ca,IAA6B,IACtC,EAAO,uBAAyB,GAAkB,EAAO,sBAAsB,EACxE,GCDE,IAA4B,GAAW,CAChD,IAAI,EAAmB,EAAO,YAC1B,EAAiB,CAAC,CAAC,EAAO,YAC1B,EACJ,OAAO,eAAe,EAAQ,cAAe,CACzC,IAAI,EAAa,CACT,GAAe,IAAgB,GAAoB,IAAgB,IACnE,EAAiB,IAErB,EAAmB,EAKnB,IAAM,EAAgB,IAAiB,EAJd,IAA4B,EAAQ,CACzD,YAAa,EACb,0BAA2B,EAAO,yBACtC,CAC8D,CAAC,EAC/D,GAAI,GAAkB,CAAC,EAAc,WAAY,CAC7C,IAAM,EAAqB,OAAO,GAAqB,YAAY,EACnE,EAAsB,KAAO,IAAY,CAErC,IAAM,EAAkB,MADJ,EAAc,CAAO,EAKzC,OAHI,IAAuB,CAAC,EAAgB,SAAW,OAAO,KAAK,EAAgB,OAAO,EAAE,SAAW,GAC5F,IAAqB,EAAiB,mBAAoB,GAAG,EAEjE,CACX,EACA,EAAoB,SAAW,EAAc,SAC7C,EAAoB,YAAc,EAAc,YAChD,EAAoB,WAAa,EACrC,MAEI,EAAsB,CAE9B,EACA,KAAM,CACF,OAAO,CACX,EACA,WAAY,GACZ,aAAc,EAClB,CAAC,EACD,EAAO,YAAc,EACrB,GAAM,CAAE,oBAAoB,GAAM,oBAAoB,EAAO,mBAAqB,EAAG,UAAY,EAC7F,EA0DJ,MAzDA,CA6BI,EA7BA,EAAO,OACE,GAAkB,EAAO,MAAM,EAEnC,EAAO,uBACG,GAAkB,EAAO,MAAM,EAAE,EAC3C,KAAK,KAAO,IAAW,CACvB,MAAM,EAAO,mBAAmB,EAAQ,CACrC,gBAAiB,MAAM,EAAO,gBAAgB,EAC9C,qBAAsB,MAAM,EAAO,qBAAqB,CAC5D,CAAC,GAAM,CAAC,EACR,CACJ,CAAC,EACI,MAAM,CAAC,EAAY,KAAY,CAChC,GAAM,CAAE,gBAAe,kBAAmB,EAC1C,EAAO,cAAgB,EAAO,eAAiB,GAAiB,EAChE,EAAO,YAAc,EAAO,aAAe,GAAkB,EAAO,UACpE,IAAM,EAAS,CACX,GAAG,EACH,YAAa,EAAO,YACpB,OAAQ,EAAO,cACf,QAAS,EAAO,YAChB,SACA,cAAe,CACnB,EAEA,OAAO,IADY,EAAO,mBAAqB,IACzB,CAAM,CAChC,CAAC,EAGQ,KAAO,IAAe,CAC3B,EAAa,OAAO,OAAO,CAAC,EAAG,CAC3B,KAAM,QACN,YAAa,EAAO,aAAe,EAAO,mBAC1C,cAAe,MAAM,GAAkB,EAAO,MAAM,EAAE,EACtD,WAAY,CAAC,CACjB,EAAG,CAAU,EACb,IAAM,EAAgB,EAAW,cAC3B,EAAiB,EAAW,YAClC,EAAO,cAAgB,EAAO,eAAiB,EAC/C,EAAO,YAAc,EAAO,aAAe,GAAkB,EAAO,UACpE,IAAM,EAAS,CACX,GAAG,EACH,YAAa,EAAO,YACpB,OAAQ,EAAO,cACf,QAAS,EAAO,YAChB,SACA,cAAe,CACnB,EAEA,OAAO,IADY,EAAO,mBAAqB,IACzB,CAAM,CAChC,EAEmB,OAAO,OAAO,EAAQ,CACzC,oBACA,oBACA,QACJ,CACoB,CACxB,EAEA,SAAS,IAA4B,EAAQ,CAAE,cAAa,6BAA8B,CACtF,IAAI,EAsBJ,MArBA,CAeQ,EAfJ,EACK,GAAa,SAIQ,EAHA,IAAwB,EAAa,IAAmB,EAA0B,EAOxG,EACsB,GAAkB,EAA0B,OAAO,OAAO,CAAC,EAAG,EAAQ,CACxF,mBAAoB,CACxB,CAAC,CAAC,CAAC,EAGmB,SAAY,CAC9B,MAAU,MAAM,uHAAuH,CAC3I,EAGR,EAAoB,SAAW,GACxB,CACX,CACA,SAAS,IAAiB,EAAQ,EAAqB,CACnD,GAAI,EAAoB,YACpB,OAAO,EAEX,IAAM,EAAK,KAAO,IAAY,EAAoB,CAAE,GAAG,EAAS,mBAAoB,CAAO,CAAC,EAG5F,MAFA,GAAG,SAAW,EAAoB,SAClC,EAAG,YAAc,GACV,CACX,CC1IA,IAAa,GAA0B,CACnC,YAAa,IACjB,ECCa,GAAb,KAAoC,CAChC,aACA,YACA,cACA,OAAO,kBAAmB,CAOtB,OANI,OAAO,GAAwB,aAAgB,WACxC,MAEF,OAAO,GAAsB,cAAiB,WAC5C,KAEJ,MACX,CACA,YAAY,EAAS,CACjB,KAAK,YAAc,IAAI,IAAqB,CAAO,EACnD,KAAK,cAAgB,CACzB,CACA,MAAM,KAAK,EAAe,EAAU,CAAC,EAAG,CAIpC,OAHI,EAAQ,gBAAkB,IACnB,KAAK,gBAAgB,EAAE,KAAK,EAAe,CAAO,EAEtD,KAAK,YAAY,KAAK,EAAe,CAAO,CACvD,CACA,MAAM,oBAAoB,EAAe,EAAa,EAAU,CAAC,EAAG,CAChE,GAAI,EAAQ,gBAAkB,IAAK,CAC/B,IAAM,EAAS,KAAK,gBAAgB,EAC9B,EAAc,GAAwB,YAC5C,GAAI,GAAe,aAAkB,EACjC,OAAO,EAAO,oBAAoB,EAAe,EAAa,CAAO,EAGrE,MAAU,MAAM,meAI2G,CAEnI,CACA,OAAO,KAAK,YAAY,oBAAoB,EAAe,EAAa,CAAO,CACnF,CACA,MAAM,QAAQ,EAAiB,EAAU,CAAC,EAAG,CACzC,GAAI,EAAQ,gBAAkB,IAAK,CAC/B,IAAM,EAAS,KAAK,gBAAgB,EAC9B,EAAc,GAAwB,YAC5C,GAAI,GAAe,aAAkB,EACjC,OAAO,EAAO,QAAQ,EAAiB,CAAO,EAG9C,MAAU,MAAM,udAI2G,CAEnI,CACA,OAAO,KAAK,YAAY,QAAQ,EAAiB,CAAO,CAC5D,CACA,MAAM,uBAAuB,EAAiB,EAAa,EAAU,CAAC,EAAG,CACrE,GAAI,EAAQ,gBAAkB,IAC1B,MAAU,MAAM,uEAAuE,EAE3F,OAAO,KAAK,YAAY,uBAAuB,EAAiB,EAAa,CAAO,CACxF,CACA,iBAAkB,CACd,GAAI,CAAC,KAAK,aAAc,CACpB,IAAM,EAAc,GAAwB,YACtC,EAAiB,GAAsB,aAC7C,GAAI,KAAK,cAAc,UAAY,OAAQ,CACvC,GAAI,CAAC,GAAe,CAAC,EACjB,MAAU,MAAM,sPAGyE,EAE7F,GAAI,GAAe,OAAO,GAAgB,WACtC,KAAK,aAAe,IAAI,EAAY,CAChC,GAAG,KAAK,cACR,iBAAkB,CACtB,CAAC,OAEA,GAAI,GAAkB,OAAO,GAAmB,WACjD,KAAK,aAAe,IAAI,EAAe,CACnC,GAAG,KAAK,aACZ,CAAC,OAGD,MAAU,MAAM,8QAGyE,CAEjG,KACK,CACD,GAAI,CAAC,GAAkB,OAAO,GAAmB,WAC7C,MAAU,MAAM,ieAK4E,EAEhG,KAAK,aAAe,IAAI,EAAe,CACnC,GAAG,KAAK,aACZ,CAAC,CACL,CACJ,CACA,OAAO,KAAK,YAChB,CACJ,EC/GM,GAAK,WAAY,EAAK,OAAQ,GAAK,QAAS,EAAK,aAAc,GAAK,KAAM,GAAK,OAAQ,GAAK,MAAO,GAAK,SAAU,GAAK,MAAO,GAAK,aAAc,GAAK,UAAW,GAAK,cAAe,GAAK,wBAAyB,GAAK,cAAe,GAAK,gBAAiB,GAAK,UAAW,GAAK,mBAClR,IAAI,EAAG,IAAI,GAAO,GAAI,GAAM,GAAI,QAAS,GAAI,gBAAiB,GAAI,QAAS,GAAI,gBAAiB,GAAI,eAAgB,GAAI,UAAW,GAAI,OAAQ,GAAI,YAAa,GAAI,eAAgB,GAAI,WAAY,GAAI,WAAY,GAAI,OAAQ,GAAI,gCAAiC,GAAI,oDAAqD,GAAI,MAAO,GAAI,oBAAqB,GAAI,2CAA4C,GAAI,eAAgB,GAAI,eAAgB,GAAI,oBAAqB,GAAI,YAAa,GAAI,mBAAoB,GAAI,SAAU,GAAI,cAAe,GAAI,KAAM,GAAI,6DAA8D,GAAI,6DAA8D,GAAI,kDAAmD,GAAI,eAAgB,GAAI,YAAa,GAAI,UAAW,GAAI,GAAI,GAAI,mBAAoB,GAAI,cAAe,GAAI,kBAAmB,GAAI,mFAAoF,GAAI,gBAAiB,GAAI,cAAe,GAAI,YAAa,GAAI,yEAA0E,GAAI,8DAA+D,GAAI,yCAA0C,GAAI,EAAG,IAAK,IAAQ,GAAK,QAAS,EAAG,GAAI,EAAG,IAAK,GAAM,QAAW,IAAQ,GAAK,SAAU,EAAG,GAAI,EAAG,IAAK,IAAQ,GAAK,SAAU,EAAG,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,YAAa,EAAG,EAAI,CAAE,EAAG,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,SAAU,EAAG,EAAI,CAAE,EAAG,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,cAAe,EAAG,EAAI,CAAE,EAAG,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,UAAW,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,CAAC,GAAI,IAAK,iBAAkB,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,iBAAkB,EAAG,EAAC,CAAE,EAAG,QAAQ,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,QAAS,EAAG,GAAK,EAAG,GAAK,CAAC,EAAC,GAAI,IAAI,6CAA8C,GAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,GAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,UAAW,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,CAAC,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,EAAG,EAAI,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,KAAM,EAAG,MAAM,CAAE,EAAG,EAAI,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,aAAc,IAAK,CAAC,EAAE,GAAI,IAAK,oBAAqB,CAAC,GAAI,IAAK,CAAC,EAAG,IAAI,EAAG,IAAK,iEAAkE,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAK,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,IAAI,EAAG,IAAK,IAAI,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,IAAI,+DAAgE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,KAAM,EAAG,MAAM,CAAE,EAAG,EAAI,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,aAAc,IAAK,CAAC,EAAE,GAAI,IAAK,oBAAqB,CAAC,GAAI,IAAK,CAAC,EAAG,IAAI,EAAG,IAAK,iEAAkE,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAK,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,IAAI,EAAG,IAAK,IAAI,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,IAAI,+DAAgE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,UAAW,CAAC,GAAI,IAAK,KAAM,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,KAAM,EAAG,MAAM,CAAE,EAAG,EAAI,CAAE,EAAG,GAAK,EAAG,IAAK,KAAM,EAAG,GAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAE,GAAI,IAAK,oBAAqB,EAAG,GAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,EAAG,GAAK,CAAC,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAK,CAAE,EAAG,GAAK,EAAG,IAAI,+DAAgE,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,EAAG,EAAI,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,cAAe,EAAG,EAAK,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,SAAU,EAAG,EAAK,CAAE,EAAG,GAAK,EAAG,IAAI,8CAA+C,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAE,CAAE,EAAG,GAAK,EAAG,IAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,EAAE,GAAI,IAAI,iEAAkE,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,IAAI,IAAK,IAAI,IAAK,CAAC,GAAG,CAAE,EAAG,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,UAAW,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gBAAiB,EAAG,EAAK,CAAE,EAAG,IAAK,EAAG,IAAK,gBAAiB,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,YAAa,EAAG,EAAK,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,EAAG,YAAY,CAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,WAAY,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAE,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,mBAAoB,EAAG,EAAI,CAAE,EAAG,GAAK,EAAG,IAAK,2EAA4E,IAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,UAAW,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,mBAAoB,EAAG,EAAK,CAAE,EAAG,GAAK,EAAG,IAAK,iEAAkE,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,wEAAyE,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,sEAAuE,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,MAAM,CAAE,EAAG,EAAK,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAI,IAAK,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,4DAA6D,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAI,oDAAqD,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,EAAE,EAAG,GAAK,EAAG,IAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,SAAS,CAAE,EAAG,GAAK,EAAG,IAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,EAAC,GAAI,IAAI,gDAAiD,GAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,EAAC,GAAI,IAAI,mDAAoD,GAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,qBAAsB,CAAC,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,qBAAsB,EAAG,EAAI,CAAE,CAAC,GAAI,IAAI,sDAAuD,GAAK,EAAE,EAAG,GAAK,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,cAAe,CAAC,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,cAAe,EAAG,EAAK,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,QAAQ,CAAE,EAAG,UAAU,CAAE,CAAC,CAAE,CAAC,GAAI,IAAI,mIAAoI,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,iBAAkB,EAAG,EAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,WAAW,CAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,oBAAqB,CAAC,CAAE,EAAG,GAAK,EAAG,IAAI,yGAA0G,GAAK,EAAE,EAAG,GAAK,EAAG,IAAI,sGAAuG,GAAK,EAAE,EAAG,GAAK,EAAG,IAAI,kEAAmE,GAAK,EAAE,EAAG,GAAK,EAAG,IAAI,kHAAmH,GAAK,EAAE,EAAG,GAAK,EAAG,IAAI,0FAA2F,GAAK,EAAE,EAAG,GAAK,EAAG,IAAI,4GAA6G,GAAK,EAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,oBAAqB,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,IAAI,IAAK,IAAI,IAAK,CAAC,GAAG,CAAE,EAAG,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,oBAAqB,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,CAAC,EAAE,CAAE,EAAG,GAAK,EAAG,IAAK,uFAAwF,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,6EAA8E,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,kFAAmF,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,wEAAyE,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,yBAA0B,EAAG,GAAK,EAAG,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,SAAU,IAAK,IAAI,IAAK,UAAW,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,kEAAmE,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,wDAAyD,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,6DAA8D,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,EAAG,IAAK,mDAAoD,IAAK,IAAK,IAAK,CAAC,CAAE,EAAG,GAAK,CAAC,EAAG,IAAK,QAAS,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,UAAW,CAAC,EAAG,IAAK,CAAC,EAAE,EAAG,GAAK,CAAC,EAAC,EAAG,GAAK,CAAC,GAAG,EAAE,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,CAAC,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,6BAA8B,EAAG,EAAI,CAAE,CAAC,EAAG,IAAK,CAAC,EAAE,EAAG,GAAK,CAAC,EAAE,EAAG,GAAK,CAAC,EAAE,EAAG,GAAK,CAAC,GAAG,EAAC,EAAG,GAAK,CAAC,GAAG,EAAE,EAAG,GAAK,CAAC,GAAI,EAAC,EAAG,GAAK,CAAC,GAAI,EAAE,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,GAAK,CAAC,GAAG,EAAC,GAAI,IAAI,EAAG,IAAK,gHAAiH,IAAK,IAAK,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,sGAAuG,IAAK,IAAK,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,2GAA4G,IAAK,IAAK,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,iGAAkG,IAAK,IAAK,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,GAAK,CAAC,GAAG,EAAC,GAAI,IAAI,EAAG,IAAK,gHAAiH,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,sGAAuG,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,2GAA4G,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAI,EAAG,IAAK,iGAAkG,IAAK,EAAG,IAAK,aAAc,IAAK,CAAC,EAAG,IAAK,IAAO,IAAI,mBAAoB,IAAK,aAAc,IAAK,UAAW,CAAC,CAAE,GAAI,IAAK,CAAC,CAAE,GAAI,GAAK,EAAE,CAAC,EAAG,GAAK,CAAC,GAAI,EAAG,EAAG,EAAI,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAI,GAAI,IAAK,6BAA8B,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAI,GAAI,IAAK,gCAAiC,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,IAAI,CAAE,CAAC,EAAG,IAAK,CAAC,EAAE,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,EAAK,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,MAAM,CAAE,CAAC,EAAG,IAAK,CAAC,GAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,EAAG,EAAK,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,EAAG,WAAW,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,eAAe,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAK,CAAC,GAAI,eAAe,EAAG,GAAK,CAAC,EAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,QAAQ,CAAE,EAAG,EAAC,CAAE,CAAC,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,eAAe,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAK,CAAC,GAAI,eAAe,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,QAAQ,CAAE,CAAC,GAAI,IAAK,iBAAkB,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,iBAAkB,EAAG,EAAC,CAAE,CAAC,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,QAAQ,CAAE,EAAG,EAAI,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAK,CAAE,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAK,CAAE,CAAC,EAAG,GAAK,CAAC,EAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,QAAS,EAAG,EAAI,CAAE,CAAC,EAE1gc,IAAU,CADP,QAAS,MAAO,WAAY,CAAE,OAAQ,GAAG,OAAQ,GAAG,QAAS,GAAG,aAAc,GAAG,SAAU,GAAG,eAAgB,GAAG,WAAY,GAAG,kBAAmB,GAAG,wBAAyB,GAAG,IAAK,GAAG,OAAQ,GAAG,WAAY,GAAG,oBAAqB,GAAG,+BAAgC,GAAG,aAAc,GAAG,4BAA6B,GAAG,4BAA6B,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,EAAG,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,GAAG,EAAC,EAAG,MAAO,uCAAwC,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,EAAC,EAAG,MAAO,gEAAiE,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,EAAC,EAAG,MAAO,kDAAmD,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,EAAC,EAAG,MAAO,2DAA4D,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,EAAE,EAAG,MAAO,mCAAoC,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,IAAG,EAAC,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,QAAQ,CAAE,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,EAAG,GAAK,CAAC,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,sGAAuG,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,4FAA6F,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,iGAAkG,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,uFAAwF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,SAAS,CAAE,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,IAAK,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,iFAAkF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,uEAAwE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,4EAA6E,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,kEAAmE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAC,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,GAAI,EAAC,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAC,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,iBAAkB,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,SAAS,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAG,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,wCAAyC,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,EAAG,IAAK,yEAA0E,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,GAAG,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,mDAAoD,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,EAAG,IAAK,oFAAqF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,sFAAyF,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,mEAAoE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,wEAAyE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,KAAK,IAAK,CAAC,EAAG,GAAK,CAAC,GAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,GAAG,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,MAAO,oDAAqD,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,GAAG,EAAE,EAAG,MAAO,+CAAgD,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,4EAA6E,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,kEAAmE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,kFAAmF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,uEAAwE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,IAAK,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,IAAK,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,IAAK,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,QAAQ,CAAE,EAAG,MAAM,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,EAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,EAAG,IAAK,IAAI,IAAK,KAAK,IAAK,EAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,eAAe,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,EAAG,MAAO,mCAAoC,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,wHAAyH,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,EAAG,IAAK,mHAAoH,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,+CAAgD,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,gGAAiG,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,wBAAwB,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,GAAI,MAAO,8CAA+C,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,gIAAiI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,sHAAuH,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,2HAA4H,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,iHAAkH,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,+EAAgF,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,MAAO,uCAAwC,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,MAAO,iCAAkC,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,MAAO,0CAA2C,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,gCAAiC,EAAG,EAAC,CAAE,CAAC,EAAG,MAAO,uEAAwE,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,EAAC,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,WAAW,CAAE,CAAC,CAAE,CAAC,GAAI,IAAK,CAAC,CAAE,SAAU,EAAG,IAAK,6EAA8E,IAAK,EAAG,IAAK,CAAC,EAAG,IAAK,GAAG,KAAM,IAAI,IAAK,IAAI,IAAK,GAAG,CAAC,CAAE,GAAI,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,uHAAwH,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,6BAA8B,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,MAAO,2CAA4C,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,MAAO,qCAAsC,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,MAAO,8CAA+C,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,eAAe,CAAE,CAAC,CAAE,CAAC,EAAG,MAAO,gEAAiE,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,KAAK,IAAK,EAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,KAAK,IAAK,EAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,eAAe,GAAI,IAAK,EAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,+EAAgF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,EAAG,IAAK,0HAA2H,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,+DAAgE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,8CAA+C,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,gDAAiD,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,4FAA6F,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,2CAA4C,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,gEAAiE,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,sCAAuC,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAG,EAAG,GAAC,GAAI,IAAK,EAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,EAAE,EAAG,MAAM,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAE,CAAE,CAAC,CAAE,CAAC,EAAG,MAAO,+CAAgD,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,IAAI,EAAC,CAAE,EAAG,EAAE,EAAG,MAAO,yDAA0D,GAAK,EAAE,EAAG,EAAG,GAAK,KAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,EAAE,EAAG,SAAU,EAAG,IAAK,wFAAyF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,EAAE,EAAG,SAAU,EAAG,IAAK,8EAA+E,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,mFAAoF,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,IAAK,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,2DAA4D,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAG,IAAK,IAAI,IAAK,CAAC,EAAE,CAAE,EAAG,EAAG,IAAK,IAAI,IAAK,CAAC,GAAI,EAAC,CAAE,CAAC,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,GAAI,GAAI,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,sEAAuE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,EAAG,IAAK,iEAAkE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,IAAK,IAAK,CAAC,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,mEAAoE,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,yDAA0D,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAG,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,8DAA+D,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,IAAK,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAG,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,GAAI,IAAK,CAAC,EAAG,GAAK,GAAI,SAAU,EAAG,IAAK,IAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAK,EAAE,EAAG,CAAE,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAG,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,SAAU,IAAK,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,EAAE,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,CAAC,GAAI,GAAK,EAAE,EAAG,CAAE,MAAO,qDAAsD,GAAK,EAAE,CAAC,CAC/+gB,ECAjB,IAAQ,IAAI,IAAc,CAC5B,KAAM,GACN,OAAQ,CACJ,aACA,SACA,sBACA,iCACA,8BACA,WACA,iBACA,SACA,eACA,eACA,UACA,oBACA,0BACA,6BACJ,CACJ,CAAC,EACY,IAA2B,EAAgB,EAAU,CAAC,IACxD,IAAM,IAAI,MAAsB,IAAgB,IAAS,CAC5C,iBAChB,OAAQ,EAAQ,MACpB,CAAC,CAAC,EAEN,GAAwB,IAAM,GCF9B,IAAa,KArBkD,GAA4C,MAAO,EAAQ,EAAS,IAAU,CACzI,GAAI,CAAC,EACD,MAAU,MAAM,qFAAqF,EAEzG,IAAM,EAAoB,MAAM,EAAwC,EAAQ,EAAS,CAAK,EACxF,EAAiB,GAAiB,CAAO,GAAG,iBAAiB,aAC7D,iCACN,GAAI,CAAC,EACD,MAAU,MAAM,yDAAyD,EAAQ,YAAY,EAAE,EAEnG,IAAM,EAAqB,MAAM,GAAc,EAAO,CAAE,iCAAkC,CAAe,EAAG,CAAM,EAClH,OAAO,OAAO,OAAO,EAAmB,CAAkB,CAC9D,GAS+G,MARrD,EAAQ,EAAS,KAChE,CACH,UAAW,GAAiB,CAAO,EAAE,UACrC,OAAQ,MAAMA,GAAkB,EAAO,MAAM,EAAE,QAAY,CACvD,MAAU,MAAM,yDAAyD,CAC7E,GAAG,CACP,EAEqJ,EACzJ,SAAS,GAAiC,EAAgB,CACtD,MAAO,CACH,SAAU,iBACV,kBAAmB,CACf,KAAM,KACN,OAAQ,EAAe,MAC3B,EACA,qBAAsB,EAAQ,KAAa,CACvC,kBAAmB,CACf,SACA,SACJ,CACJ,EACJ,CACJ,CACA,SAAS,GAAkC,EAAgB,CACvD,MAAO,CACH,SAAU,kBACV,kBAAmB,CACf,KAAM,KACN,OAAQ,EAAe,MAC3B,EACA,qBAAsB,EAAQ,KAAa,CACvC,kBAAmB,CACf,SACA,SACJ,CACJ,EACJ,CACJ,CAuDA,IAAa,MAtDwC,EAAyB,EAA+B,IAC1D,GAAmB,CAE9D,IAAM,EADW,EAAwB,CACd,EAAE,YAAY,YACzC,GAAI,CAAC,EACD,OAAO,EAA8B,CAAc,EAEvD,IAAM,EAAU,CAAC,EACjB,IAAK,IAAM,KAAU,EAAa,CAC9B,GAAM,CAAE,KAAM,EAAc,aAAa,CAAC,EAAG,GAAG,GAAS,EACnD,EAAO,EAAa,YAAY,EAClC,IAAiB,GACjB,QAAQ,KAAK,yDAAyD,EAAa,QAAQ,EAAK,EAAE,EAEtG,IAAI,EACJ,GAAI,IAAS,SAAU,CACnB,EAAW,kBACX,IAAM,EAAe,EAAY,KAAM,GAAM,CACzC,IAAM,EAAO,EAAE,KAAK,YAAY,EAChC,OAAO,IAAS,UAAY,EAAK,WAAW,OAAO,CACvD,CAAC,EACD,GAAI,GAAuB,iBAAiB,IAAM,QAAU,EACxD,QAER,MACK,GAAI,EAAK,WAAW,OAAO,EAC5B,EAAW,sBAGX,MAAU,MAAM,qEAAqE,EAAK,EAAE,EAEhG,IAAM,EAAe,EAA8B,GACnD,GAAI,CAAC,EACD,MAAU,MAAM,sDAAsD,EAAS,EAAE,EAErF,IAAM,EAAS,EAAa,CAAc,EAC1C,EAAO,SAAW,EAClB,EAAO,kBAAoB,CAAE,GAAI,EAAO,mBAAqB,CAAC,EAAI,GAAG,EAAM,GAAG,CAAW,EACzF,EAAQ,KAAK,CAAM,CACvB,CACA,OAAO,CACX,GAauF,GAVjD,GAAmB,CACzD,IAAM,EAAU,CAAC,EACjB,OAAQ,EAAe,UAAvB,CACI,QACI,EAAQ,KAAK,GAAiC,CAAc,CAAC,EAC7D,EAAQ,KAAK,GAAkC,CAAc,CAAC,CAEtE,CACA,OAAO,CACX,EACsJ,CAClJ,iBAAkB,GAClB,kBAAmB,EACvB,CAAC,EACY,IAA+B,GAAW,CAEnD,IAAM,EAAW,IADA,IAAyB,CACQ,CAAC,EACnD,OAAO,OAAO,OAAO,EAAU,CAC3B,qBAAsBA,GAAkB,EAAO,sBAAwB,CAAC,CAAC,CAC7E,CAAC,CACL,ECxHa,IAAmC,GACrC,OAAO,OAAO,EAAS,CAC1B,gBAAiB,EAAQ,iBAAmB,GAC5C,qBAAsB,EAAQ,sBAAwB,GACtD,eAAgB,EAAQ,gBAAkB,GAC1C,sBAAuB,EAAQ,uBAAyB,GACxD,kBAAmB,EAAQ,mBAAqB,GAChD,+BAAgC,EAAQ,gCAAkC,GAC1E,mBAAoB,KACpB,oBAAqB,EAAQ,qBAAuB,CAAC,CACzD,CAAC,EAEQ,GAAe,CACxB,eAAgB,CAAE,KAAM,sBAAuB,KAAM,gBAAiB,EACtE,aAAc,CAAE,KAAM,sBAAuB,KAAM,cAAe,EAClE,+BAAgC,CAAE,KAAM,sBAAuB,KAAM,gCAAiC,EACtG,WAAY,CAAE,KAAM,sBAAuB,KAAM,uBAAwB,EACzE,4BAA6B,CAAE,KAAM,sBAAuB,KAAM,6BAA8B,EAChG,kBAAmB,CAAE,KAAM,gBAAiB,KAAM,mBAAoB,EACtE,QAAS,CAAE,KAAM,gBAAiB,KAAM,iBAAkB,EAC1D,SAAU,CAAE,KAAM,gBAAiB,KAAM,UAAW,EACpD,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,aAAc,CAAE,KAAM,gBAAiB,KAAM,sBAAuB,CACxE,ECtBa,GAAb,MAAa,UAA2BsB,GAAmB,CACvD,YAAY,EAAS,CACjB,MAAM,CAAO,EACb,OAAO,eAAe,KAAM,EAAmB,SAAS,CAC5D,CACJ,ECNa,IAAb,MAAa,UAAqBC,EAAgB,CAC9C,KAAO,eACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,eACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAa,SAAS,CACtD,CACJ,EACa,IAAb,MAAa,UAAqBA,EAAgB,CAC9C,KAAO,eACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,eACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAa,SAAS,CACtD,CACJ,EACa,IAAb,MAAa,UAAmCA,EAAgB,CAC5D,KAAO,6BACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,6BACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAA2B,SAAS,CACpE,CACJ,EACa,IAAb,MAAa,UAA4BA,EAAgB,CACrD,KAAO,sBACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,sBACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAoB,SAAS,CAC7D,CACJ,EACa,IAAb,MAAa,UAAgCA,EAAgB,CACzD,KAAO,0BACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,0BACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAwB,SAAS,CACjE,CACJ,EACa,IAAb,MAAa,UAAqBA,EAAgB,CAC9C,KAAO,eACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,eACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAa,SAAS,CACtD,CACJ,EACa,IAAb,MAAa,UAA2BA,EAAgB,CACpD,KAAO,qBACP,OAAS,SACT,aACA,WACA,YAAY,EAAM,CACd,MAAM,CACF,KAAM,qBACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAmB,SAAS,EACxD,KAAK,aAAe,EAAK,aACzB,KAAK,WAAa,EAAK,UAC3B,CACJ,EACa,IAAb,MAAa,UAAkBA,EAAgB,CAC3C,KAAO,YACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,YACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAU,SAAS,CACnD,CACJ,EACa,IAAb,MAAa,UAAiBA,EAAgB,CAC1C,KAAO,WACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,WACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAS,SAAS,CAClD,CACJ,EACa,IAAb,MAAa,UAA+BA,EAAgB,CACxD,KAAO,yBACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,yBACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAuB,SAAS,CAChE,CACJ,EACa,IAAb,MAAa,UAAuBA,EAAgB,CAChD,KAAO,iBACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,iBACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAe,SAAS,CACxD,CACJ,EACa,IAAb,MAAa,UAA2BA,EAAgB,CACpD,KAAO,qBACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,qBACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAmB,SAAS,CAC5D,CACJ,EACa,IAAb,MAAa,UAAqBA,EAAgB,CAC9C,KAAO,eACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,eACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAAa,SAAS,CACtD,CACJ,EACa,IAAb,MAAa,UAAqCA,EAAgB,CAC9D,KAAO,+BACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,+BACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAA6B,SAAS,CACtE,CACJ,EACa,IAAb,MAAa,UAAuCA,EAAgB,CAChE,KAAO,iCACP,OAAS,SACT,YAAY,EAAM,CACd,MAAM,CACF,KAAM,iCACN,OAAQ,SACR,GAAG,CACP,CAAC,EACD,OAAO,eAAe,KAAM,EAA+B,SAAS,CACxE,CACJ,ECpLM,GAAQ,MAKR,IAAM,eACN,GAAO,YAOP,GAAO,cAEP,IAAO,uBACP,IAAQ,6BACR,IAAQ,8BAOR,IAAM,eACN,GAAO,cAKP,IAAM,aAEN,GAAK,SAEL,IAAO,sBAEP,IAAS,0BAET,IAAO,4BAEP,GAAO,mBAaP,GAAM,OAGN,GAAM,oBAUN,GAAM,eACN,GAAQ,gBACR,GAAS,iBACT,GAAY,oBACZ,GAAO,gBAEP,GAAO,sBACP,GAAO,qBAEP,GAAO,mBACP,GAAO,kBAGP,GAAM,kBACN,GAAO,mBACP,GAAQ,iBACR,GAAO,gBACP,GAAM,cACN,GAAO,aACP,IAAO,2BACP,IAAQ,gCACR,IAAS,8BACT,IAAQ,gCACR,IAAS,iCACT,IAAS,+BACT,GAAQ,0BACR,IAAQ,wBACR,IAAO,eACP,IAAM,aACN,IAAO,mBACP,GAAO,mBAIP,IAAQ,oBACR,IAAM,eACN,IAAO,mBACP,IAAQ,oBAER,IAAO,gBACP,IAAQ,iBACR,IAAM,eAEN,IAAO,gBACP,IAAM,aACN,GAAQ,eACR,GAAS,iBACT,IAAQ,oBACR,IAAS,4BACT,IAAS,wBACT,IAAS,8BACT,IAAO,sBACP,IAAO,sBAEP,IAAQ,uBACR,IAAW,iCACX,GAAW,2BACX,IAAa,8BAEb,IAAQ,sBAIR,IAAO,gBACP,GAAM,eACN,GAAO,eAEP,GAAO,cAEP,GAAQ,oBAER,IAAO,OAEP,IAAO,WAEP,GAAM,cAsCN,GAAM,eAGN,IAAQ,wBAER,GAAM,cACN,IAAM,gBAEN,IAAQ,sBAER,IAAQ,uBAIR,IAAO,iBAEP,IAAS,gBAKT,IAAQ,eAGR,GAAM,SACN,IAAO,UACP,GAAQ,YAIR,GAAK,aAGL,GAAO,sBAWP,GAAM,gBACN,IAAQ,4BAGR,IAAO,yBACP,GAAO,OACP,GAAO,eAMP,GAAM,SACN,GAAO,QAGP,GAAM,UAKN,IAAM,aA8EN,GAAO,mBAEP,IAAM,YAeN,IAAO,kBACP,IAAO,mBAaP,GAAM,YACN,GAAS,eAET,GAAS,gBAeT,GAAM,KAON,GAAM,UACN,IAAQ,uBAGR,IAAQ,oBACR,IAAQ,kBACR,IAAQ,gCACR,GAAO,WACP,GAAO,cACP,GAAQ,gBAER,IAAO,qBAIP,IAAO,+BACP,IAAM,iBACN,IAAQ,sBAIR,GAAM,cAQN,IAAO,oBACP,IAAQ,sBACR,IAAO,qBACP,GAAM,YAQN,GAAK,MACL,IAAM,WASN,IAAK,WAmBL,IAAQ,mBAeR,GAAM,eAEN,IAAO,mBAKP,IAAO,gBAIP,IAAO,gBACP,IAAQ,sBAER,IAAQ,uBAGR,IAAM,YACN,IAAO,kBACP,IAAO,kBACP,IAAQ,mBAMR,GAAK,WAQL,IAAM,oBAKN,IAAO,MAEP,GAAM,UACN,IAAM,cACN,IAAO,gBACP,GAAM,WAIN,IAAM,kBAKN,IAAO,UAGP,IAAK,OAGL,IAAO,wBAGP,IAAM,WAIN,IAAQ,uBACR,IAAO,eACP,IAAO,YACP,IAAO,eAOP,GAAK,QAEL,IAAU,iCAMV,IAAM,mBACN,IAAO,uBAMP,GAAS,4BACT,GAAO,iBAEP,GAAS,4BAET,IAAO,aACP,IAAU,6BAEV,IAAO,2BAUP,IAAM,UACN,GAAO,SACP,GAAK,SAyCL,IAAM,aAKN,GAAM,aACN,GAAO,mBACP,IAAM,YAUN,IAAO,kBACP,IAAO,mBAWP,GAAM,QACN,GAAO,OASP,IAAK,QAWL,GAAM,iBACN,IAAO,uBACP,IAAO,6BACP,IAAO,0BACP,IAAO,0BACP,IAAO,sBAGP,IAAM,kBACN,IAAO,oBAcP,GAAM,eAYN,IAAM,oBACN,GAAO,gBAMP,GAAM,QACN,IAAM,UAON,GAAM,aACN,GAAO,kBAEP,IAAM,gBAEN,GAAM,eAGN,IAAO,yBACP,IAAO,qBAaP,IAAM,cAUN,GAAO,uBAIP,GAAS,uBACT,GAAS,iBACT,GAAW,oBAGX,GAAY,0BACZ,GAAY,cAIZ,GAAM,eAKN,GAAM,OAUN,IAAM,WAIN,IAAM,mBAMN,IAAO,eASP,GAAO,UAeP,GAAM,WAMN,IAAM,aAIN,IAAO,mBACP,IAAO,oBAKP,GAAM,YAON,IAAO,mBACP,GAAO,0BAEP,IAAM,gBAEN,GAAK,SACL,IAAM,qBACN,IAAK,YACL,GAAK,QAGL,IAAM,gBACN,IAAM,cACN,GAAK,OACL,GAAM,eACN,GAAM,YACN,EAAM,aAEN,GAAM,cACN,GAAO,oBACP,GAAM,YAQN,IAAM,WACN,IAAM,YAEN,IAAK,SACL,GAAM,aACN,IAAO,qBACP,IAAO,yBACP,IAAO,+BACP,IAAO,4BACP,IAAO,4BACP,IAAO,wBACP,IAAM,mBACN,GAAK,2CACL,IAAM,cACN,IAAM,YACN,GAAM,WAEN,IAAM,YAIN,GAAM,eACN,GAAM,UAEN,GAAO,YACP,GAAQ,mBAER,GAAS,sBAGT,IAAS,oCAOT,GAAQ,2BACR,GAAQ,uBACR,GAAS,wBACT,GAAU,2BACV,IAAQ,sBAER,GAAQ,sBACR,GAAS,wBACT,IAAU,oBACV,IAAU,6BACV,IAAW,sCACX,IAAW,kCACX,IAAW,wCACX,IAAS,4BAET,IAAa,8DACb,IAAa,wDACb,IAAc,4DACd,IAAU,+BACV,GAAQ,sBAER,IAAQ,sBACR,GAAO,mBACP,GAAS,8BAqCT,GAAS,2BACT,GAAQ,mBACR,GAAS,uBAET,GAAS,wBACT,IAAU,gCAGV,GAAO,cACP,IAAQ,YACR,IAAQ,2BACR,IAAQ,qBACR,IAAS,uBAET,IAAS,uBAET,GAAU,+BACV,GAAS,yBACT,GAAW,sCAEX,IAAS,mCACT,IAAQ,oBAER,IAAO,gBACP,GAAQ,wBAER,GAAQ,sBAER,IAAQ,2BAOR,GAAQ,sBACR,GAAS,+BAET,IAAU,qCACV,GAAS,+BACT,GAAa,8CACb,GAAY,kDACZ,GAAU,uCACV,GAAW,kDACX,GAAW,4CACX,GAAY,gDACZ,GAAO,gBACP,IAAQ,sBACR,IAAQ,0BAER,GAAQ,mBACR,IAAS,2BACT,GAAS,kCAET,GAAK,mBAIL,GAAc,GAAa,IAAI,EAAE,EAC5B,IAAsB,CAAC,GAAI,GAAI,qBAAsB,EAAG,CAAC,EAAG,CAAC,CAAC,EACzE,GAAY,cAAc,IAAqB,EAAkB,EACjE,IAAM,GAAc,GAAa,IAAI,EAAE,EAC5B,IAAgB,CAAC,GAAI,GAAI,IAChC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAe,GAAY,EACrD,IAAW,IAAuB,CAAC,GAAI,GAAI,IACvC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAsB,GAAmB,EACnE,IAAW,IAA2B,CAAC,GAAI,GAAI,IAC3C,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAA0B,GAAuB,EAC3E,IAAW,IAA0B,CAAC,GAAI,GAAI,IAC1C,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAyB,GAAsB,EACzE,IAAW,IAAgC,CAAC,GAAI,GAAI,IAChD,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAA+B,GAA4B,EACrF,IAAW,IAAsB,CAAC,GAAI,GAAI,IACtC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,GAAK,GAAG,EACT,CAAC,EAAG,CAAC,CACT,EACA,GAAY,cAAc,IAAqB,GAAkB,EACjE,IAAW,IAAkB,CAAC,GAAI,GAAI,IAClC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAiB,GAAc,EACzD,IAAW,IAAsB,CAAC,GAAI,GAAI,IACtC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAqB,GAAkB,EACjE,IAAW,IAAgB,CAAC,GAAI,GAAI,IAChC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAe,GAAY,EACrD,IAAW,IAAa,CAAC,GAAI,GAAI,IAC7B,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAY,GAAS,EAC/C,IAAW,IAAgB,CAAC,GAAI,GAAI,IAChC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAe,GAAY,EACrD,IAAW,IAAY,CAAC,GAAI,GAAI,IAC5B,EAAG,IAAK,EAAG,EACX,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAW,GAAQ,EAC7C,IAAW,IAAkC,CAAC,GAAI,GAAI,IAClD,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAiC,GAA8B,EACzF,IAAW,IAA8B,CAAC,GAAI,GAAI,IAC9C,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAA6B,GAA0B,EACjF,IAAW,IAAgB,CAAC,GAAI,GAAI,IAChC,EAAG,IAAK,IAAK,IAAM,GAAI,EACvB,CAAC,EACD,CAAC,CACL,EACA,GAAY,cAAc,IAAe,GAAY,EACrD,IAAa,IAAsB,CAC/B,GACA,EACJ,EACI,IAA2B,CAAC,EAAG,GAAI,GAAU,EAAG,CAAC,EAEjD,GAAyB,CAAC,EAAG,GAAI,IAAM,EAAG,CAAC,EAC3C,GAAiB,CAAC,EAAG,GAAI,GAAQ,EAAG,CAAC,EACrC,GAA0B,CAAC,EAAG,GAAI,GAAW,EAAG,CAAC,EACjD,GAAc,CAAC,EAAG,GAAI,GAAW,EAAG,CAAC,EACrC,GAAgB,CAAC,EAAG,GAAI,IAAK,EAAG,KAAM,CAAE,EAAG,EAAE,EAWtC,IAA8B,CAAC,EAAG,GAAI,IAC7C,EACA,CAAC,EAAG,EACJ,CAAC,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CAC1B,EACW,IAA+B,CAAC,EAAG,GAAI,IAC9C,EACA,CAAC,GAAI,GAAI,GAAK,GAAK,GAAM,GAAK,EAC9B,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAQ,CAAC,CAAC,EAAG,CACnH,EAkEW,IAAgB,CAAC,EAAG,GAAI,IAC/B,EACA,CAAC,EAAE,EACH,CAAC,CAAC,CACN,EACW,IAA4B,CAAC,EAAG,GAAI,IAC3C,EACA,CAAC,EAAG,EACJ,CAAC,KAAO,IAAmB,EAAG,IAAM,GAAI,IAAM,EAAK,CAAC,CAAC,CACzD,EACW,IAAiB,CAAC,EAAG,GAAI,IAChC,EACA,CAAC,GAAM,GAAO,GAAQ,GAAW,GAAO,GAAQ,EAAG,EACnD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CACxB,EACW,IAAiC,CAAC,EAAG,GAAI,IAChD,EAAG,IAAM,GAAM,EACf,CAAC,IAAI,GAAI,GAAI,GAAI,GAAM,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAK,GAAM,GAAK,GAAW,GAAM,EAAG,EACpG,CAAC,EAAG,EAAG,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CACpM,EACW,IAAkC,CAAC,EAAG,GAAI,IACjD,EACA,CAAC,GAAI,GAAI,GAAK,IAAK,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAK,IAAM,GAAK,GAAM,GAAK,GAAM,GAAQ,GAAQ,EAAQ,EACrH,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,KAAO,IAA2B,EAAG,IAAM,GAAI,IAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,CAAC,EAAG,CAC9c,EAWW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAM,GAAI,IAAO,GAAK,GAAM,GAAQ,GAAU,GAAW,GAAW,GAAM,EAAG,EAC9E,CAAC,KAAO,IAAmB,EAAE,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CACxU,EACW,IAAqB,CAAC,EAAG,GAAI,IACpC,EACA,CAAC,GAAI,IAAK,GAAI,GAAO,GAAK,GAAK,GAAM,GAAM,GAAK,GAAM,IAAO,IAAQ,IAAQ,IAAQ,GAAK,GAAM,GAAK,GAAQ,GAAQ,GAAK,GAAM,GAAI,IAAK,IAAK,GAAM,GAAK,GAAM,GAAQ,GAAQ,GAAU,GAAW,GAAW,GAAM,IAAU,GAAU,IAAY,GAAK,GAAM,GAAM,GAAQ,GAAQ,GAAM,GAAK,EACjS,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAQ,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,IAAS,EAAG,IAAO,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAW,CAAC,EAAG,KAAO,IAA0B,EAAG,GAAM,GAAW,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAY,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAQ,CAAC,CAAC,EAAG,CAC7lC,EACW,IAAoB,CAAC,EAAG,GAAI,GACnC,EACA,CAAC,GAAM,GAAK,GAAK,GAAO,GAAQ,GAAW,GAAO,EAAM,EACxD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAC3B,EAyCW,IAA+B,CAAC,EAAG,GAAI,IAC9C,EAAG,IAAM,GAAM,EACf,CAAC,GAAM,GAAM,GAAI,GAAI,GAAK,GAAM,GAAQ,GAAU,GAAW,GAAW,GAAM,GAAK,GAAK,EAAG,EAC3F,CAAC,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAG,CAAC,EAAG,EAAG,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CAC1V,EACW,IAAgC,CAAC,EAAG,GAAI,IAC/C,EACA,CAAC,GAAI,GAAI,GAAO,GAAK,GAAM,GAAM,GAAK,GAAM,GAAK,GAAM,GAAK,GAAQ,GAAQ,GAAI,GAAM,GAAK,GAAM,GAAQ,GAAQ,GAAU,GAAW,GAAW,GAAM,GAAK,GAAM,GAAM,GAAQ,GAAQ,GAAM,GAAK,EAAG,EACtM,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,IAAS,EAAG,IAAO,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,EAAG,CAC9wB,EACW,IAAuB,CAAC,EAAG,GAAI,IACtC,EAAG,IAAM,GAAK,EACd,CAAC,GAAK,GAAM,GAAW,GAAW,EAAI,EACtC,CAAC,KAAO,IAAqB,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,CAAC,EAAG,CACvM,EACW,IAAwB,CAAC,EAAG,GAAI,IACvC,EACA,CAAC,GAAI,IAAK,GAAM,GAAW,GAAW,EAAI,EAC1C,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,CAAC,EAAG,CAC1L,EAgBW,IAAU,CAAC,EAAG,GAAI,GACzB,EACA,CAAC,IAAK,GAAE,EACR,CAAC,KAAO,IAAsB,EAAG,IAAM,GAAI,IAAM,EAAK,CAAC,EAAG,CAAC,EAAG,CAClE,EA4EW,IAAiB,CAAC,EAAG,GAAI,IAChC,EACA,CAAC,GAAI,GAAK,GAAK,GAAK,EACpB,CAAC,EAAG,EAAG,EAAG,CAAC,CACf,EAqBW,IAAuB,CAAC,EAAG,GAAI,IACtC,EAAG,IAAM,GAAM,EACf,CAAC,IAAM,GAAK,EAAG,EACf,CAAC,KAAO,IAAgB,EAAG,IAAM,CAAE,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,KAAO,IAAQ,EAAG,IAAM,GAAI,IAAM,EAAK,CAAC,CAAC,CAC3G,EACW,IAAwB,CAAC,EAAG,GAAI,IACvC,EACA,CAAC,GAAI,GAAK,IAAM,GAAK,IAAM,GAAM,EAAG,EACpC,CAAC,CAAC,EAAG,CAAC,EAAG,KAAO,IAAS,EAAG,IAAM,GAAI,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,CAAC,EAAG,CAC/K,EAyCW,IAAU,CAAC,EAAG,GAAI,GACzB,EACA,CAAC,GAAI,GAAK,IAAM,GAAI,EACpB,CAAC,EAAG,EAAG,EAAG,CAAC,CACf,EAkTW,IAAmB,CAAC,EAAG,GAAI,IAClC,EACA,CAAC,GAAK,GAAK,IAAK,GAAI,IAAK,GAAK,GAAM,GAAM,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAK,IAAK,GAAK,GAAK,GAAM,GAAM,GAAK,IAAK,GAAM,GAAK,GAAK,GAAM,GAAM,GAAI,GAAQ,GAAU,GAAW,GAAM,GAAK,GAAK,IAAK,IAAK,IAAK,GAAM,GAAQ,EAAM,EAC7O,CAAC,KAAO,GAAe,EAAE,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,IAAS,EAAG,IAAO,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,CAAC,CAC36B,EACW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAI,GAAI,GAAK,IAAO,GAAM,IAAM,GAAK,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,GAAK,GAAQ,GAAQ,GAAU,GAAK,GAAK,GAAM,GAAI,EAC5H,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,CAAC,EAAG,CAC3d,EAiFW,IAAa,CAAC,EAAG,GAAI,GAC5B,EACA,CAAC,GAAK,EAAG,EACT,CAAC,EAAG,CAAC,CACT,EAoMW,IAAuB,CAAC,EAAG,GAAI,IACtC,EAAG,IAAM,GAAM,EACf,CAAC,GAAK,IAAM,IAAI,GAAI,GAAO,GAAK,IAAO,GAAM,IAAK,GAAO,IAAM,GAAK,EAAG,EACvE,CAAC,EAAG,KAAO,IAAY,EAAG,IAAM,CAAE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,KAAO,IAAkB,EAAG,IAAM,CAAE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CAClI,EACW,IAAwB,CAAC,EAAG,GAAI,IACvC,EACA,CAAC,GAAI,GAAO,GAAM,GAAK,GAAI,GAAO,IAAK,GAAK,GAAK,GAAM,GAAI,EAC3D,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,GAAQ,EAAG,GAAM,GAAO,CAAC,CAAC,EAAG,CAC3O,EAWW,IAAmB,CAAC,EAAG,GAAI,IAClC,EAAG,IAAM,GAAK,EACd,CAAC,GAAM,GAAM,GAAI,GAAI,GAAK,GAAM,IAAO,GAAK,GAAK,GAAK,GAAK,GAAI,GAAK,GAAK,GAAK,EAAG,EACjF,CAAC,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAO,IAAO,EAAG,IAAM,GAAI,IAAM,EAAK,CAAC,MAAS,QAAkB,GAAQ,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,EAAG,CAAC,CACjL,EACW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAI,GAAI,GAAK,GAAK,GAAM,GAAK,GAAM,GAAQ,GAAQ,EAAQ,EAC5D,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,GAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,CAAC,EAAG,CACvO,EAiFW,IAAW,CAAC,EAAG,GAAI,GAC1B,EACA,CAAC,GAAI,GAAK,GAAM,GAAK,GAAK,GAAK,GAAK,GAAI,EAAI,EAC5C,CAAC,EAAG,EAAG,EAAG,CAAC,GAAQ,EAAG,IAAM,CAAE,CAAC,EAAG,EAAG,EAAG,MAAS,OAAc,GAAc,CACjF,EACW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAI,GAAK,GAAM,IAAM,EAAG,EACzB,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CACrB,EAyCW,GAAS,CAAC,EAAG,GAAI,GACxB,EACA,CAAC,GAAK,EAAG,EACT,CAAC,EAAG,CAAC,CACT,EAgBW,IAAQ,CAAC,EAAG,GAAI,GACvB,EACA,CAAC,GAAK,GAAK,GAAM,GAAK,GAAO,GAAQ,GAAW,GAAO,EAAM,EAC7D,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAC9B,EA4JW,IAAmB,CAAC,EAAG,GAAI,IAClC,EACA,CAAC,GAAI,GAAM,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAK,GAAM,GAAK,GAAQ,GAAU,GAAW,GAAW,GAAM,GAAK,EAAG,EAC1H,CAAC,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CAC3c,EACW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAI,GAAI,GAAO,GAAK,GAAK,GAAM,GAAM,GAAK,GAAM,GAAM,GAAM,GAAK,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAK,GAAK,GAAM,GAAM,GAAK,GAAQ,GAAQ,IAAM,GAAI,GAAM,GAAK,GAAM,GAAQ,GAAQ,GAAU,GAAW,GAAW,GAAM,GAAK,GAAM,GAAM,GAAQ,GAAQ,EAAI,EAC5Q,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,KAAO,GAAe,EAAE,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,GAAO,CAAC,EAAG,CAAC,IAAS,EAAG,IAAO,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,KAAO,GAAyB,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,CAAC,EAAG,CAC3/B,EAyHW,IAAiB,CAAC,EAAG,GAAI,GAChC,EACA,CAAC,IAAO,GAAI,EACZ,CAAC,EAAG,CAAC,CACT,EA6DW,IAAsB,CAAC,EAAG,GAAI,IACrC,EACA,CAAC,GAAM,GAAM,GAAK,EAAE,EACpB,CAAC,CAAC,EAAG,EAAG,IAAM,EAAK,CAAC,EAAG,KAAO,GAAwB,EAAG,IAAM,EAAK,CAAC,EAAG,KAAO,GAAwB,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAG,CAAC,CAAC,EAAG,CACjJ,EAoHW,IAAoB,CAAC,EAAG,GAAI,IACnC,EACA,CAAC,GAAM,GAAM,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAQ,GAAU,GAAW,GAAM,EAAG,EAC5F,CAAC,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAK,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,KAAO,GAAa,EAAG,GAAM,EAAW,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,CAAC,CAC3T,EACW,IAAqB,CAAC,EAAG,GAAI,IACpC,EACA,CAAC,GAAI,GAAI,GAAK,GAAK,GAAK,GAAM,GAAM,GAAK,GAAO,GAAQ,GAAW,GAAO,GAAQ,GAAQ,GAAQ,GAAU,GAAK,EAAI,EACrH,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,IAAM,EAAI,CAAC,EAAG,KAAO,GAAe,EAAE,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAI,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAQ,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAS,CAAC,EAAG,KAAO,GAAgB,EAAG,GAAM,EAAS,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAU,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAM,CAAC,EAAG,CAAC,EAAG,EAAG,GAAM,EAAO,CAAC,CAAC,EAAG,CACva,EA6BI,IAAmB,CAAC,EAAG,GAAI,IAC3B,MAAS,GACb,EACI,IAAoB,CAAC,EAAG,GAAI,IAC5B,MAAS,GACb,EAKI,IAAiB,CAAC,EAAG,GAAI,IACzB,MAAS,GACb,EAQI,IAAS,CAAC,EAAG,GAAI,GACjB,MAAS,GACb,EAyCI,IAAuB,CAAC,EAAG,GAAI,IAC/B,MAAS,GACb,EACI,IAAa,CAAC,EAAG,GAAI,IACrB,EAAG,KAAO,IACN,CAAC,CACT,EASI,IAAQ,CAAC,EAAG,GAAI,GAChB,MAAS,GACb,EA+DW,IAAwB,CAAC,EAAG,GAAI,IACvC,EAAG,IAAK,CAAC,SAAU,oCAAqC,GAAG,CAAE,MAAS,QAAoC,GAC9G,EACW,IAA2B,CAAC,EAAG,GAAI,GAC1C,EAAG,IAAK,CAAC,OAAQ,UAAW,GAAG,CAAE,MAAS,QAAuC,GACrF,EACW,IAAc,CAAC,EAAG,GAAI,IAC7B,EAAG,IAAK,CAAC,MAAO,0BAA2B,GAAG,CAAE,MAAS,QAA0B,GACvF,EAUW,IAAyB,CAAC,EAAG,GAAI,IACxC,EAAG,IAAK,CAAC,OAAQ,kBAAmB,GAAG,CAAE,MAAS,QAAqC,GAC3F,EACW,IAAiB,CAAC,EAAG,GAAI,IAChC,EAAG,IAAK,CAAC,MAAO,YAAa,GAAG,CAAE,MAAS,QAA6B,GAC5E,EAiDW,IAAiB,CAAC,EAAG,GAAI,IAChC,EAAG,IAAM,KAAM,IAAK,CAAC,OAAQ,WAAY,GAAG,CAAE,MAAS,QAA6B,GACxF,EA4EW,IAAa,CAAC,EAAG,GAAI,IAC5B,EAAG,IAAM,KAAM,IAAK,CAAC,MAAO,yBAA0B,GAAG,CAAE,MAAS,QAAyB,GACjG,EAuDW,IAAiB,CAAC,EAAG,GAAI,IAChC,EAAG,IAAK,CAAC,MAAO,gBAAiB,GAAG,CAAE,MAAS,QAA6B,GAChF,EAIW,IAAa,CAAC,EAAG,GAAI,IAC5B,EAAG,IAAK,CAAC,MAAO,yBAA0B,GAAG,CAAE,MAAS,QAAyB,GACrF,EA0DW,IAAa,CAAC,EAAG,GAAI,IAC5B,EAAG,IAAM,KAAM,IAAK,CAAC,MAAO,yBAA0B,GAAG,CAAE,MAAS,QAAyB,GACjG,EAqCW,IAAc,CAAC,EAAG,GAAI,IAC7B,EAAG,IAAM,KAAM,IAAK,CAAC,MAAO,0BAA2B,GAAG,CAAE,MAAS,QAA0B,GACnG,ECjqGa,IAAb,cAA0CC,GACrC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,4BAA6B,CAAE,KAAM,sBAAuB,MAAO,EAAK,EACxE,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,CACpD,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,CACtC,CACJ,CAAC,EACI,EAAE,WAAY,gBAAiB,CAAC,CAAC,EACjC,EAAE,WAAY,sBAAsB,EACpC,GAAG,GAAc,EACjB,MAAM,CAAE,CACb,0zICvBa,IAAY,GAAU,IAAI,YAAY,EAAE,OAAO,CAAK,ECAjE,SAAgB1B,GAAY,EAAM,CAI9B,OAHI,OAAO,GAAS,SACT,EAAK,SAAW,EAEpB,EAAK,aAAe,CAC/B,CCLA,IAAW,GAAa,CAAE,KAAM,OAAQ,EAC7B,GAAkB,CACzB,KAAM,OACN,KAAM,EACV,EACW,IAAmB,IAAI,WAAW,CACzC,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,CACJ,CAAC,EC1BK,IAAiB,CAAC,EACxB,SAAgB,IAAe,CAO3B,OANI,OAAO,OAAW,IACX,OAEF,OAAO,KAAS,IACd,KAEJ,GACX,CCLA,IAAI2B,IAAsB,UAAY,CAClC,SAAS,EAAK,EAAQ,CAClB,KAAK,OAAS,IAAI,WACd,IAAW,IAAK,KAChB,KAAK,IAAM,IAAI,QAAQ,SAAU,EAAS,EAAQ,CAC9C,GAAa,EACR,OAAO,OAAO,UAAU,MAAO5B,GAAgB,CAAM,EAAG,GAAiB,GAAO,CAAC,MAAM,CAAC,EACxF,KAAK,EAAS,CAAM,CAC7B,CAAC,EACD,KAAK,IAAI,MAAM,UAAY,CAAE,CAAC,EAEtC,CA8BA,MA7BA,GAAK,UAAU,OAAS,SAAU,EAAM,CAChCC,OAAY,CAAI,EAGpB,KAAI,EAASD,GAAgB,CAAI,EAC7B,EAAa,IAAI,WAAW,KAAK,OAAO,WAAa,EAAO,UAAU,EAC1E,EAAW,IAAI,KAAK,OAAQ,CAAC,EAC7B,EAAW,IAAI,EAAQ,KAAK,OAAO,UAAU,EAC7C,KAAK,OAAS,CAJmB,CAKrC,EACA,EAAK,UAAU,OAAS,UAAY,CAChC,IAAI,EAAQ,KAWZ,OAVI,KAAK,IACE,KAAK,IAAI,KAAK,SAAU,EAAK,CAChC,OAAO,GAAa,EACf,OAAO,OAAO,KAAK,GAAiB,EAAK,EAAM,MAAM,EACrD,KAAK,SAAU,EAAM,CAAE,OAAO,IAAI,WAAW,CAAI,CAAG,CAAC,CAC9D,CAAC,EAEDC,GAAY,KAAK,MAAM,EAChB,QAAQ,QAAQ,GAAgB,EAEpC,QAAQ,QAAQ,EAClB,KAAK,UAAY,CAAE,OAAO,GAAa,EAAE,OAAO,OAAO,OAAO,GAAY,EAAM,MAAM,CAAG,CAAC,EAC1F,KAAK,SAAU,EAAM,CAAE,OAAO,QAAQ,QAAQ,IAAI,WAAW,CAAI,CAAC,CAAG,CAAC,CAC/E,EACA,EAAK,UAAU,MAAQ,UAAY,CAC/B,KAAK,OAAS,IAAI,UACtB,EACO,CACX,EAAE,EAEF,SAASD,GAAgB,EAAM,CAO3B,OANI,OAAO,GAAS,SACT,IAAS,CAAI,EAEpB,YAAY,OAAO,CAAI,EAChB,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAE/F,IAAI,WAAW,CAAI,CAC9B,CCvDA,IAAI,IAAsB,CACtB,UACA,SACA,UACA,YACA,cACA,YACA,OACA,QACJ,EACA,SAAgB,GAAkB,EAAQ,CACtC,GAAI,IAAqB,CAAM,GAC3B,OAAO,EAAO,OAAO,QAAW,SAAU,CAC1C,IAAI,EAAS,EAAO,OAAO,OAC3B,OAAO,IAAqB,CAAM,CACtC,CACA,MAAO,EACX,CACA,SAAgB,IAAqB,EAAQ,CAKzC,OAJI,OAAO,GAAW,UAAY,OAAO,EAAO,QAAW,SAEhD,OADe,EAAO,OAAO,iBACF,WAE/B,EACX,CACA,SAAgB,IAAqB,EAAQ,CACzC,OAAQ,GACJ,IAAoB,MAAM,SAAU,EAAY,CAAE,OAAO,OAAO,EAAO,IAAgB,UAAY,CAAC,CAC5G,CCzBA,IAAI,IAAsB,UAAY,CAClC,SAAS,EAAK,EAAQ,CAClB,GAAI,GAAkB,GAAa,CAAC,EAChC,KAAK,KAAO,IAAI6B,IAAc,CAAM,OAGpC,MAAU,MAAM,oBAAoB,CAE5C,CAUA,MATA,GAAK,UAAU,OAAS,SAAU,EAAM,EAAU,CAC9C,KAAK,KAAK,OAAO7B,GAAgB,CAAI,CAAC,CAC1C,EACA,EAAK,UAAU,OAAS,UAAY,CAChC,OAAO,KAAK,KAAK,OAAO,CAC5B,EACA,EAAK,UAAU,MAAQ,UAAY,CAC/B,KAAK,KAAK,MAAM,CACpB,EACO,CACX,EAAE,ECvBS,GAAe,CAAE,KAAM,SAAU,EACjC,GAAoB,CAC3B,KAAM,OACN,KAAM,EACV,EACW,IAAqB,IAAI,WAAW,CAC3C,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACJ,CAAC,ECnCG8B,IAAwB,UAAY,CACpC,SAAS,EAAO,EAAQ,CACpB,KAAK,OAAS,IAAI,WAClB,KAAK,OAAS,EACd,KAAK,MAAM,CACf,CAyCA,MAxCA,GAAO,UAAU,OAAS,SAAU,EAAM,CAClC7B,OAAY,CAAI,EAGpB,KAAI,EAASD,GAAgB,CAAI,EAC7B,EAAa,IAAI,WAAW,KAAK,OAAO,WAAa,EAAO,UAAU,EAC1E,EAAW,IAAI,KAAK,OAAQ,CAAC,EAC7B,EAAW,IAAI,EAAQ,KAAK,OAAO,UAAU,EAC7C,KAAK,OAAS,CAJmB,CAKrC,EACA,EAAO,UAAU,OAAS,UAAY,CAClC,IAAI,EAAQ,KAWZ,OAVI,KAAK,IACE,KAAK,IAAI,KAAK,SAAU,EAAK,CAChC,OAAO,GAAa,EACf,OAAO,OAAO,KAAK,GAAmB,EAAK,EAAM,MAAM,EACvD,KAAK,SAAU,EAAM,CAAE,OAAO,IAAI,WAAW,CAAI,CAAG,CAAC,CAC9D,CAAC,EAEDC,GAAY,KAAK,MAAM,EAChB,QAAQ,QAAQ,GAAkB,EAEtC,QAAQ,QAAQ,EAClB,KAAK,UAAY,CAClB,OAAO,GAAa,EAAE,OAAO,OAAO,OAAO,GAAc,EAAM,MAAM,CACzE,CAAC,EACI,KAAK,SAAU,EAAM,CAAE,OAAO,QAAQ,QAAQ,IAAI,WAAW,CAAI,CAAC,CAAG,CAAC,CAC/E,EACA,EAAO,UAAU,MAAQ,UAAY,CACjC,IAAI,EAAQ,KACZ,KAAK,OAAS,IAAI,WACd,KAAK,QAAU,KAAK,SAAW,IAAK,KACpC,KAAK,IAAM,IAAI,QAAQ,SAAU,EAAS,EAAQ,CAC9C,GAAa,EACR,OAAO,OAAO,UAAU,MAAOD,GAAgB,EAAM,MAAM,EAAG,GAAmB,GAAO,CAAC,MAAM,CAAC,EAChG,KAAK,EAAS,CAAM,CAC7B,CAAC,EACD,KAAK,IAAI,MAAM,UAAY,CAAE,CAAC,EAEtC,EACO,CACX,EAAE,ECvCS,IAAM,IAAI,YAAY,CAC7B,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACJ,CAAC,EAIU+B,IAAO,CACd,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACJ,EAIW,IAA+B,GAAG,GAAM,ECzF/C,GAA2B,UAAY,CACvC,SAAS,GAAY,CACjB,KAAK,MAAQ,WAAW,KAAKA,GAAI,EACjC,KAAK,KAAO,IAAI,WAAW,EAAE,EAC7B,KAAK,OAAS,IAAI,WAAW,EAAE,EAC/B,KAAK,aAAe,EACpB,KAAK,YAAc,EAInB,KAAK,SAAW,EACpB,CAsGA,MArGA,GAAU,UAAU,OAAS,SAAU,EAAM,CACzC,GAAI,KAAK,SACL,MAAU,MAAM,+CAA+C,EAEnE,IAAI,EAAW,EACX,EAAa,EAAK,WAEtB,GADA,KAAK,aAAe,EAChB,KAAK,YAAc,EAAI,IACvB,MAAU,MAAM,qCAAqC,EAEzD,KAAO,EAAa,GAChB,KAAK,OAAO,KAAK,gBAAkB,EAAK,KACxC,IACI,KAAK,oBACL,KAAK,WAAW,EAChB,KAAK,aAAe,EAGhC,EACA,EAAU,UAAU,OAAS,UAAY,CACrC,GAAI,CAAC,KAAK,SAAU,CAChB,IAAI,EAAa,KAAK,YAAc,EAChC,EAAa,IAAI,SAAS,KAAK,OAAO,OAAQ,KAAK,OAAO,WAAY,KAAK,OAAO,UAAU,EAC5F,EAAoB,KAAK,aAG7B,GAFA,EAAW,SAAS,KAAK,eAAgB,GAAI,EAEzC,SAAkD,CAClD,IAAK,IAAI,EAAI,KAAK,aAAc,KAAgB,IAC5C,EAAW,SAAS,EAAG,CAAC,EAE5B,KAAK,WAAW,EAChB,KAAK,aAAe,CACxB,CACA,IAAK,IAAI,EAAI,KAAK,aAAc,KAAoB,IAChD,EAAW,SAAS,EAAG,CAAC,EAE5B,EAAW,aAA0B,KAAK,MAAM,EAAa,UAAW,EAAG,EAAI,EAC/E,EAAW,aAA0B,CAAU,EAC/C,KAAK,WAAW,EAChB,KAAK,SAAW,EACpB,CAIA,IAAK,IADD,EAAM,IAAI,aAAwB,EAC7B,EAAI,EAAG,EAAI,EAAG,IACnB,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,GAAM,IACtC,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,GAAM,IAC1C,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,EAAK,IACzC,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,EAAK,IAE7C,OAAO,CACX,EACA,EAAU,UAAU,WAAa,UAAY,CAGzC,IAAK,IAFD,EAAK,KAAM,EAAS,EAAG,OAAQ,EAAQ,EAAG,MAC1C,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAAI,EAAS,EAAM,GAC/I,EAAI,EAAG,KAAgB,IAAK,CACjC,GAAI,EAAI,GACJ,KAAK,KAAK,IACJ,EAAO,EAAI,GAAK,MAAS,IACrB,EAAO,EAAI,EAAI,GAAK,MAAS,IAC7B,EAAO,EAAI,EAAI,GAAK,MAAS,EAC9B,EAAO,EAAI,EAAI,GAAK,QAE5B,CACD,IAAI,EAAI,KAAK,KAAK,EAAI,GAClB,GAAS,IAAM,GAAO,GAAK,KAAS,IAAM,GAAO,GAAK,IAAQ,IAAM,GACxE,EAAI,KAAK,KAAK,EAAI,IAClB,IAAI,GAAS,IAAM,EAAM,GAAK,KAAS,IAAM,GAAO,GAAK,IAAQ,IAAM,EACvE,KAAK,KAAK,IACJ,EAAO,KAAK,KAAK,EAAI,GAAM,IAAO,EAAO,KAAK,KAAK,EAAI,IAAO,EACxE,CACA,IAAI,KAAW,IAAW,EAAM,GAAU,KACpC,IAAW,GAAO,GAAU,KAC5B,IAAW,GAAO,GAAU,KAC5B,EAAS,EAAW,CAAC,EAAS,GAChC,IACE,GAAW,IAAI,GAAK,KAAK,KAAK,GAAM,GAAM,GAC5C,EACA,IAAS,IAAW,EAAM,GAAU,KAClC,IAAW,GAAO,GAAU,KAC5B,IAAW,GAAO,GAAU,MAC5B,EAAS,EAAW,EAAS,EAAW,EAAS,GACnD,EACJ,EAAS,EACT,EAAS,EACT,EAAS,EACT,EAAU,EAAS,EAAM,EACzB,EAAS,EACT,EAAS,EACT,EAAS,EACT,EAAU,EAAK,EAAM,CACzB,CACA,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,CAChB,EACO,CACX,EAAE,EClHED,IAAwB,UAAY,CACpC,SAAS,EAAO,EAAQ,CACpB,KAAK,OAAS,EACd,KAAK,KAAO,IAAI,GAChB,KAAK,MAAM,CACf,CA0DA,MAzDA,GAAO,UAAU,OAAS,SAAU,EAAQ,CACpC7B,QAAY,CAAM,GAAK,KAAK,OAGhC,GAAI,CACA,KAAK,KAAK,OAAOD,GAAgB,CAAM,CAAC,CAC5C,OACO,EAAG,CACN,KAAK,MAAQ,CACjB,CACJ,EAIA,EAAO,UAAU,WAAa,UAAY,CACtC,GAAI,KAAK,MACL,MAAM,KAAK,MAQf,OANI,KAAK,OACA,KAAK,MAAM,UACZ,KAAK,MAAM,OAAO,KAAK,KAAK,OAAO,CAAC,EAEjC,KAAK,MAAM,OAAO,GAEtB,KAAK,KAAK,OAAO,CAC5B,EAMA,EAAO,UAAU,OAAS,UAAY,CAClC,OAAO,GAAU,KAAM,IAAK,GAAG,IAAK,GAAG,UAAY,CAC/C,OAAO,GAAY,KAAM,SAAU,EAAI,CACnC,MAAO,CAAC,EAAc,KAAK,WAAW,CAAC,CAC3C,CAAC,CACL,CAAC,CACL,EACA,EAAO,UAAU,MAAQ,UAAY,CAEjC,GADA,KAAK,KAAO,IAAI,GACZ,KAAK,OAAQ,CACb,KAAK,MAAQ,IAAI,GACjB,IAAI,EAAQ,IAAiB,KAAK,MAAM,EACpC,EAAQ,IAAI,aAAqB,EACrC,EAAM,IAAI,CAAK,EACf,IAAK,IAAI,EAAI,EAAG,KAAgB,IAC5B,EAAM,IAAM,GACZ,EAAM,IAAM,GAEhB,KAAK,KAAK,OAAO,CAAK,EACtB,KAAK,MAAM,OAAO,CAAK,EAEvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,WAAY,IAClC,EAAM,GAAK,CAEnB,CACJ,EACO,CACX,EAAE,EAEF,SAAS,IAAiB,EAAQ,CAC9B,IAAI,EAAQA,GAAgB,CAAM,EAClC,GAAI,EAAM,cAAyB,CAC/B,IAAI,EAAa,IAAI,GACrB,EAAW,OAAO,CAAK,EACvB,EAAQ,EAAW,OAAO,CAC9B,CACA,IAAI,EAAS,IAAI,aAAqB,EAEtC,OADA,EAAO,IAAI,CAAK,EACT,CACX,CC3EA,IAAI,IAAwB,UAAY,CACpC,SAAS,EAAO,EAAQ,CAChB,GAAkB,GAAa,CAAC,EAChC,KAAK,KAAO,IAAIgC,IAAgB,CAAM,EAGtC,KAAK,KAAO,IAAIC,IAAS,CAAM,CAEvC,CAUA,MATA,GAAO,UAAU,OAAS,SAAU,EAAM,EAAU,CAChD,KAAK,KAAK,OAAOjC,GAAgB,CAAI,CAAC,CAC1C,EACA,EAAO,UAAU,OAAS,UAAY,CAClC,OAAO,KAAK,KAAK,OAAO,CAC5B,EACA,EAAO,UAAU,MAAQ,UAAY,CACjC,KAAK,KAAK,MAAM,CACpB,EACO,CACX,EAAE,ECvBW,KAAkC,CAAE,YAAW,mBAAoB,KAAO,IAAW,CAC9F,IAAM,EAAY,OAAO,OAAW,IAAc,OAAO,UAAY,OAC/D,EAAW,GAAW,WAAa,GACnC,EAAS,GAAW,eAAe,UAAY,GAAS,GAAG,CAAQ,GAAK,QAExE,EAAS,GAAW,eAAe,QAAU,CAAC,EAC9C,EAAQ,EAAO,EAAO,OAAS,GAC/B,EAAc,GAAO,OAAS,GAAS,QAAQ,CAAQ,GAAK,UAC5D,EAAiB,GAAO,SAAW,UACnC,EAAW,CACb,CAAC,aAAc,CAAa,EAC5B,CAAC,KAAM,KAAK,EACZ,CAAC,MAAM,IAAU,MAAS,EAC1B,CAAC,SAAS,EACV,CAAC,aAAc,GAAG,EAAY,GAAG,GAAgB,CACrD,EACI,GACA,EAAS,KAAK,CAAC,OAAO,IAAa,CAAa,CAAC,EAErD,IAAM,EAAQ,MAAM,GAAQ,iBAAiB,EAI7C,OAHI,GACA,EAAS,KAAK,CAAC,OAAO,GAAO,CAAC,EAE3B,CACX,EACa,GAAW,CACpB,GAAG,EAAI,CACH,GAAI,mBAAmB,KAAK,CAAE,EAC1B,MAAO,MACX,GAAI,qBAAqB,KAAK,CAAE,EAC5B,MAAO,QACX,GAAI,aAAa,KAAK,CAAE,EACpB,MAAO,UACX,GAAI,UAAU,KAAK,CAAE,EACjB,MAAO,UACX,GAAI,QAAQ,KAAK,CAAE,EACf,MAAO,OAEf,EACA,QAAQ,EAAI,CACR,GAAI,oBAAoB,KAAK,CAAE,EAC3B,MAAO,iBACX,GAAI,YAAY,KAAK,CAAE,EACnB,MAAO,UACX,GAAI,WAAW,KAAK,CAAE,EAClB,MAAO,SACX,GAAI,WAAW,KAAK,CAAE,EAClB,MAAO,QAEf,CACJ,EClDa,GAAb,MAAa,CAAM,CACf,MACA,YAAY,EAAO,CAEf,GADA,KAAK,MAAQ,EACT,EAAM,aAAe,EACrB,MAAU,MAAM,uCAAuC,CAE/D,CACA,OAAO,WAAW,EAAQ,CACtB,GAAI,EAAS,oBAA6B,EAAS,oBAC/C,MAAU,MAAM,GAAG,EAAO,oEAAoE,EAElG,IAAM,EAAQ,IAAI,WAAW,CAAC,EAC9B,IAAK,IAAI,EAAI,EAAG,EAAY,KAAK,IAAI,KAAK,MAAM,CAAM,CAAC,EAAG,EAAI,IAAM,EAAY,EAAG,IAAK,GAAa,IACjG,EAAM,GAAK,EAKf,OAHI,EAAS,GACT,GAAO,CAAK,EAET,IAAI,EAAM,CAAK,CAC1B,CACA,SAAU,CACN,IAAM,EAAQ,KAAK,MAAM,MAAM,CAAC,EAC1B,EAAW,EAAM,GAAK,IAI5B,OAHI,GACA,GAAO,CAAK,EAET,SAAS,GAAM,CAAK,EAAG,EAAE,GAAK,EAAW,GAAK,EACzD,CACA,UAAW,CACP,OAAO,OAAO,KAAK,QAAQ,CAAC,CAChC,CACJ,EACA,SAAS,GAAO,EAAO,CACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAM,IAAM,IAEhB,IAAK,IAAI,EAAI,EAAG,EAAI,KAChB,EAAM,KACF,EAAM,KAAO,GAFG,KAK5B,CCzCA,IAAa,IAAb,KAA8B,CAC1B,OACA,SACA,YAAY,EAAQ,EAAU,CAC1B,KAAK,OAAS,EACd,KAAK,SAAW,CACpB,CACA,OAAO,EAAS,CACZ,IAAM,EAAS,CAAC,EAChB,IAAK,IAAM,KAAc,OAAO,KAAK,CAAO,EAAG,CAC3C,IAAM,EAAQ,KAAK,SAAS,CAAU,EACtC,EAAO,KAAK,WAAW,KAAK,CAAC,EAAM,UAAU,CAAC,EAAG,EAAO,KAAK,kBAAkB,EAAQ,EAAW,CAAC,CACvG,CACA,IAAM,EAAM,IAAI,WAAW,EAAO,QAAQ,EAAO,IAAU,EAAQ,EAAM,WAAY,CAAC,CAAC,EACnF,EAAW,EACf,IAAK,IAAM,KAAS,EAChB,EAAI,IAAI,EAAO,CAAQ,EACvB,GAAY,EAAM,WAEtB,OAAO,CACX,CACA,kBAAkB,EAAQ,CACtB,OAAQ,EAAO,KAAf,CACI,IAAK,UACD,OAAO,WAAW,KAAK,CAAC,IAAO,KAAa,CAAC,EACjD,IAAK,OACD,OAAO,WAAW,KAAK,CAAC,EAAG,EAAO,KAAK,CAAC,EAC5C,IAAK,QACD,IAAM,EAAY,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAGjD,OAFA,EAAU,SAAS,EAAG,CAAC,EACvB,EAAU,SAAS,EAAG,EAAO,MAAO,EAAK,EAClC,IAAI,WAAW,EAAU,MAAM,EAC1C,IAAK,UACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAG/C,OAFA,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,SAAS,EAAG,EAAO,MAAO,EAAK,EAChC,IAAI,WAAW,EAAQ,MAAM,EACxC,IAAK,OACD,IAAM,EAAY,IAAI,WAAW,CAAC,EAGlC,MAFA,GAAU,GAAK,EACf,EAAU,IAAI,EAAO,MAAM,MAAO,CAAC,EAC5B,EACX,IAAK,SACD,IAAM,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAO,MAAM,UAAU,CAAC,EACzE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAO,MAAM,WAAY,EAAK,EACnD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAO,MAAO,CAAC,EACrB,EACX,IAAK,SACD,IAAM,EAAY,KAAK,SAAS,EAAO,KAAK,EACtC,EAAU,IAAI,SAAS,IAAI,YAAY,EAAI,EAAU,UAAU,CAAC,EACtE,EAAQ,SAAS,EAAG,CAAC,EACrB,EAAQ,UAAU,EAAG,EAAU,WAAY,EAAK,EAChD,IAAM,EAAW,IAAI,WAAW,EAAQ,MAAM,EAE9C,OADA,EAAS,IAAI,EAAW,CAAC,EAClB,EACX,IAAK,YACD,IAAM,EAAU,IAAI,WAAW,CAAC,EAGhC,MAFA,GAAQ,GAAK,EACb,EAAQ,IAAI,GAAM,WAAW,EAAO,MAAM,QAAQ,CAAC,EAAE,MAAO,CAAC,EACtD,EACX,IAAK,OACD,GAAI,CAAC,IAAa,KAAK,EAAO,KAAK,EAC/B,MAAU,MAAM,0BAA0B,EAAO,OAAO,EAE5D,IAAM,EAAY,IAAI,WAAW,EAAE,EAGnC,MAFA,GAAU,GAAK,EACf,EAAU,IAAI,GAAQ,EAAO,MAAM,QAAQ,MAAO,EAAE,CAAC,EAAG,CAAC,EAClD,CACf,CACJ,CACA,MAAM,EAAS,CACX,IAAM,EAAM,CAAC,EACT,EAAW,EACf,KAAO,EAAW,EAAQ,YAAY,CAClC,IAAM,EAAa,EAAQ,SAAS,GAAU,EACxC,EAAO,KAAK,OAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAU,CAAC,EAElG,OADA,GAAY,EACJ,EAAQ,SAAS,GAAU,EAAnC,CACI,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,GACN,MAAO,EACX,EACA,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,GACN,MAAO,EACX,EACA,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,EAAQ,QAAQ,GAAU,CACrC,EACA,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,EAAQ,SAAS,EAAU,EAAK,CAC3C,EACA,GAAY,EACZ,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,EAAQ,SAAS,EAAU,EAAK,CAC3C,EACA,GAAY,EACZ,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,IAAI,GAAM,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAC,CAAC,CACrF,EACA,GAAY,EACZ,MACJ,IAAK,GACD,IAAM,EAAe,EAAQ,UAAU,EAAU,EAAK,EACtD,GAAY,EACZ,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAY,CACrF,EACA,GAAY,EACZ,MACJ,IAAK,GACD,IAAM,EAAe,EAAQ,UAAU,EAAU,EAAK,EACtD,GAAY,EACZ,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,KAAK,OAAO,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAY,CAAC,CAClG,EACA,GAAY,EACZ,MACJ,IAAK,GACD,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,IAAI,KAAK,IAAI,GAAM,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CACzG,EACA,GAAY,EACZ,MACJ,IAAK,GACD,IAAM,EAAY,IAAI,WAAW,EAAQ,OAAQ,EAAQ,WAAa,EAAU,EAAE,EAClF,GAAY,GACZ,EAAI,GAAQ,CACR,KAAM,IACN,MAAO,GAAG,GAAM,EAAU,SAAS,EAAG,CAAC,CAAC,EAAE,GAAG,GAAM,EAAU,SAAS,EAAG,CAAC,CAAC,EAAE,GAAG,GAAM,EAAU,SAAS,EAAG,CAAC,CAAC,EAAE,GAAG,GAAM,EAAU,SAAS,EAAG,EAAE,CAAC,EAAE,GAAG,GAAM,EAAU,SAAS,EAAE,CAAC,GACvL,EACA,MACJ,QACI,MAAU,MAAM,8BAA8B,CACtD,CACJ,CACA,OAAO,CACX,CACJ,EACI,KACH,SAAU,EAAmB,CAC1B,EAAkB,EAAkB,SAAc,GAAK,WACvD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,MAAW,GAAK,QACpD,EAAkB,EAAkB,QAAa,GAAK,UACtD,EAAkB,EAAkB,KAAU,GAAK,OACnD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,OAAY,GAAK,SACrD,EAAkB,EAAkB,UAAe,GAAK,YACxD,EAAkB,EAAkB,KAAU,GAAK,MACvD,GAAG,GAAsB,GAAoB,CAAC,CAAE,EAChD,IAAM,GAAc,UACd,IAAW,OACX,IAAY,QACZ,IAAU,UACV,IAAW,OACX,IAAa,SACb,IAAa,SACb,IAAgB,YAChB,IAAW,OACX,IAAe,iECtLf,GAAwB,EACxB,GAAiB,GAAwB,EACzC,GAAkB,EAClB,IAAyB,GAC/B,SAAgB,IAAa,CAAE,aAAY,aAAY,UAAU,CAC7D,GAAI,EAAa,IACb,MAAU,MAAM,yEAAyE,EAE7F,IAAM,EAAO,IAAI,SAAS,EAAQ,EAAY,CAAU,EAClD,EAAgB,EAAK,UAAU,EAAG,EAAK,EAC7C,GAAI,IAAe,EACf,MAAU,MAAM,gEAAgE,EAEpF,IAAM,EAAe,EAAK,UAAU,GAAuB,EAAK,EAC1D,EAA0B,EAAK,UAAU,GAAgB,EAAK,EAC9D,EAA0B,EAAK,UAAU,EAAa,GAAiB,EAAK,EAC5E,EAAc,IAAI,GAAM,EAAE,OAAO,IAAI,WAAW,EAAQ,EAAY,EAAc,CAAC,EACzF,GAAI,IAA4B,EAAY,OAAO,EAC/C,MAAU,MAAM,kDAAkD,EAAwB,kDAAkD,EAAY,OAAO,EAAE,EAAE,EAGvK,GADA,EAAY,OAAO,IAAI,WAAW,EAAQ,EAAa,GAAgB,EAAc,EAAiC,CAAC,EACnH,IAA4B,EAAY,OAAO,EAC/C,MAAU,MAAM,yBAAyB,EAAY,OAAO,EAAE,wCAAwC,GAAyB,EAEnI,MAAO,CACH,QAAS,IAAI,SAAS,EAAQ,EAAa,GAAiB,GAAiB,CAAY,EACzF,KAAM,IAAI,WAAW,EAAQ,EAAa,GAAiB,GAAkB,EAAc,EAAgB,EAAgB,EAAmD,CAClL,CACJ,CC1BA,IAAa,IAAb,KAA8B,CAC1B,iBACA,cACA,cACA,YAAY,EAAQ,EAAU,CAC1B,KAAK,iBAAmB,IAAI,IAAiB,EAAQ,CAAQ,EAC7D,KAAK,cAAgB,CAAC,EACtB,KAAK,cAAgB,EACzB,CACA,KAAK,EAAS,CACV,KAAK,cAAc,KAAK,KAAK,OAAO,CAAO,CAAC,CAChD,CACA,aAAc,CACV,KAAK,cAAgB,EACzB,CACA,YAAa,CACT,IAAM,EAAU,KAAK,cAAc,IAAI,EACjC,EAAgB,KAAK,cAC3B,MAAO,CACH,YAAa,CACT,OAAO,CACX,EACA,eAAgB,CACZ,OAAO,CACX,CACJ,CACJ,CACA,sBAAuB,CACnB,IAAM,EAAW,KAAK,cACtB,KAAK,cAAgB,CAAC,EACtB,IAAM,EAAgB,KAAK,cAC3B,MAAO,CACH,aAAc,CACV,OAAO,CACX,EACA,eAAgB,CACZ,OAAO,CACX,CACJ,CACJ,CACA,OAAO,CAAE,QAAS,EAAY,QAAQ,CAClC,IAAM,EAAU,KAAK,iBAAiB,OAAO,CAAU,EACjD,EAAS,EAAQ,WAAa,EAAK,WAAa,GAChD,EAAM,IAAI,WAAW,CAAM,EAC3B,EAAO,IAAI,SAAS,EAAI,OAAQ,EAAI,WAAY,EAAI,UAAU,EAC9D,EAAW,IAAI,GAOrB,OANA,EAAK,UAAU,EAAG,EAAQ,EAAK,EAC/B,EAAK,UAAU,EAAG,EAAQ,WAAY,EAAK,EAC3C,EAAK,UAAU,EAAG,EAAS,OAAO,EAAI,SAAS,EAAG,CAAC,CAAC,EAAE,OAAO,EAAG,EAAK,EACrE,EAAI,IAAI,EAAS,EAAE,EACnB,EAAI,IAAI,EAAM,EAAQ,WAAa,EAAE,EACrC,EAAK,UAAU,EAAS,EAAG,EAAS,OAAO,EAAI,SAAS,EAAG,EAAS,CAAC,CAAC,EAAE,OAAO,EAAG,EAAK,EAChF,CACX,CACA,OAAO,EAAS,CACZ,GAAM,CAAE,UAAS,QAAS,IAAa,CAAO,EAC9C,MAAO,CAAE,QAAS,KAAK,iBAAiB,MAAM,CAAO,EAAG,MAAK,CACjE,CACA,cAAc,EAAY,CACtB,OAAO,KAAK,iBAAiB,OAAO,CAAU,CAClD,CACJ,EChEa,IAAb,KAAkC,CAC9B,QACA,YAAY,EAAS,CACjB,KAAK,QAAU,CACnB,CACA,CAAC,OAAO,gBAAiB,CACrB,OAAO,KAAK,cAAc,CAC9B,CACA,MAAO,eAAgB,CACnB,UAAW,IAAM,KAAS,KAAK,QAAQ,YAEnC,MADgB,KAAK,QAAQ,QAAQ,OAAO,CAChC,CAEpB,CACJ,ECda,IAAb,KAAkC,CAC9B,QACA,YAAY,EAAS,CACjB,KAAK,QAAU,CACnB,CACA,CAAC,OAAO,gBAAiB,CACrB,OAAO,KAAK,cAAc,CAC9B,CACA,MAAO,eAAgB,CACnB,UAAW,IAAM,KAAO,KAAK,QAAQ,cAEjC,MADgB,KAAK,QAAQ,QAAQ,OAAO,CAChC,EAEZ,KAAK,QAAQ,kBACb,MAAM,IAAI,WAElB,CACJ,ECjBa,IAAb,KAAwC,CACpC,QACA,YAAY,EAAS,CACjB,KAAK,QAAU,CACnB,CACA,CAAC,OAAO,gBAAiB,CACrB,OAAO,KAAK,cAAc,CAC9B,CACA,MAAO,eAAgB,CACnB,UAAW,IAAM,KAAW,KAAK,QAAQ,cAAe,CACpD,IAAM,EAAe,MAAM,KAAK,QAAQ,aAAa,CAAO,EACxD,IAAiB,SAErB,MAAM,EACV,CACJ,CACJ,EChBa,IAAb,KAAwC,CACpC,QACA,YAAY,EAAS,CACjB,KAAK,QAAU,CACnB,CACA,CAAC,OAAO,gBAAiB,CACrB,OAAO,KAAK,cAAc,CAC9B,CACA,MAAO,eAAgB,CACnB,UAAW,IAAM,KAAS,KAAK,QAAQ,YAEnC,MADmB,KAAK,QAAQ,WAAW,CAC5B,CAEvB,CACJ,ECdA,SAAgB,IAAiB,EAAQ,CACrC,IAAI,EAA4B,EAC5B,EAA8B,EAC9B,EAAiB,KACjB,EAAsB,KACpB,EAAmB,GAAS,CAC9B,GAAI,OAAO,GAAS,SAChB,MAAU,MAAM,uEAAyE,CAAI,EAEjG,EAA4B,EAC5B,EAA8B,EAC9B,EAAiB,IAAI,WAAW,CAAI,EAEpC,IAD+B,SAAS,EAAe,MACtC,EAAE,UAAU,EAAG,EAAM,EAAK,CAC/C,EACM,EAAW,iBAAmB,CAChC,IAAM,EAAiB,EAAO,OAAO,eAAe,EACpD,OAAa,CACT,GAAM,CAAE,QAAO,QAAS,MAAM,EAAe,KAAK,EAClD,GAAI,EAAM,CACN,GAAI,CAAC,EACD,OAEC,GAAI,IAA8B,EACnC,MAAM,OAGN,MAAU,MAAM,mCAAmC,EAEvD,MACJ,CACA,IAAM,EAAc,EAAM,OACtB,EAAgB,EACpB,KAAO,EAAgB,GAAa,CAChC,GAAI,CAAC,EAAgB,CACjB,IAAM,EAAiB,EAAc,EACrC,CACI,GAAsB,IAAI,WAAW,CAAC,EAE1C,IAAM,EAAmB,KAAK,IAAI,EAAI,EAA6B,CAAc,EAIjF,GAHA,EAAoB,IAAI,EAAM,MAAM,EAAe,EAAgB,CAAgB,EAAG,CAA2B,EACjH,GAA+B,EAC/B,GAAiB,EACb,EAA8B,EAC9B,MAEJ,EAAgB,IAAI,SAAS,EAAoB,MAAM,EAAE,UAAU,EAAG,EAAK,CAAC,EAC5E,EAAsB,IAC1B,CACA,IAAM,EAAkB,KAAK,IAAI,EAA4B,EAA6B,EAAc,CAAa,EACrH,EAAe,IAAI,EAAM,MAAM,EAAe,EAAgB,CAAe,EAAG,CAA2B,EAC3G,GAA+B,EAC/B,GAAiB,EACb,GAA6B,IAA8B,IAC3D,MAAM,EACN,EAAiB,KACjB,EAA4B,EAC5B,EAA8B,EAEtC,CACJ,CACJ,EACA,MAAO,EACF,OAAO,eAAgB,CAC5B,CACJ,CCnDA,SAAgB,IAAuB,EAAc,EAAQ,CACzD,OAAO,eAAgB,EAAS,CAC5B,GAAM,CAAE,MAAO,GAAgB,EAAQ,QAAQ,iBAC/C,GAAI,IAAgB,QAAS,CACzB,IAAM,EAAqB,MAAM,EAAQ,QAAQ,kBAAkB,OAAS,cAAc,EAE1F,KADA,GAAe,KAAO,EAAQ,QAAQ,eAAe,MAC/C,CACV,MACK,GAAI,IAAgB,YAAa,CAClC,IAAM,EAAO,EAAQ,QAAQ,mBAAmB,MAE1C,EAAwB,MAAM,EAAa,EAD5B,GAAO,CAC6B,CAAC,EAC1D,GAAI,EAAsB,SAAU,CAChC,IAAM,EAAY,MAAM,EAAO,EAAQ,IAAI,CAAC,EAE5C,KADA,GAAM,KAAO,EACP,CACV,CACA,MAAM,EAAsB,EAChC,MACK,GAAI,IAAgB,QAAS,CAI9B,IAAM,EAAe,MAAM,EAAa,EAFnC,EAAQ,QAAQ,eAAe,OAAQ,CAEA,CAAC,EAG7C,OAFI,EAAa,SACb,OACG,CACX,MAEI,MAAM,MAAM,8BAA8B,EAAQ,QAAQ,eAAe,OAAO,CAExF,CACJ,CC3CA,IAAakC,IAAb,KAAmC,CAC/B,iBACA,WACA,YAAY,CAAE,cAAa,eAAe,CACtC,KAAK,iBAAmB,IAAI,IAAiB,EAAa,CAAW,EACrE,KAAK,WAAa,CACtB,CACA,YAAY,EAAM,EAAc,CAE5B,OAAO,IAAI,IAA2B,CAClC,cAAe,IAAI,IAAqB,CAAE,YAF1B,IAAiB,CAEmB,EAAG,QAAS,KAAK,gBAAiB,CAAC,EACvF,aAAc,IAAuB,EAAc,KAAK,UAAU,CACtE,CAAC,CACL,CACA,UAAU,EAAa,EAAY,CAC/B,OAAO,IAAI,IAAqB,CAC5B,cAAe,IAAI,IAA2B,CAAE,cAAa,YAAW,CAAC,EACzE,QAAS,KAAK,iBACd,gBAAiB,EACrB,CAAC,CACL,CACJ,ECxBa,IAA4B,IAAoB,CACzD,CAAC,OAAO,eAAgB,iBAAmB,CACvC,IAAM,EAAS,EAAe,UAAU,EACxC,GAAI,CACA,OAAa,CACT,GAAM,CAAE,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACA,OACJ,MAAM,CACV,CACJ,QACQ,CACJ,EAAO,YAAY,CACvB,CACJ,CACJ,GACa,IAA4B,GAAkB,CACvD,IAAM,EAAW,EAAc,OAAO,eAAe,EACrD,OAAO,IAAI,eAAe,CACtB,MAAM,KAAK,EAAY,CACnB,GAAM,CAAE,OAAM,SAAU,MAAM,EAAS,KAAK,EAC5C,GAAI,EACA,OAAO,EAAW,MAAM,EAE5B,EAAW,QAAQ,CAAK,CAC5B,CACJ,CAAC,CACL,ECzBa,IAAb,KAAmC,CAC/B,oBACA,YAAY,CAAE,cAAa,eAAe,CACtC,KAAK,oBAAsB,IAAIC,IAA+B,CAC1D,cACA,aACJ,CAAC,CACL,CACA,YAAY,EAAM,EAAc,CAC5B,IAAM,EAAe,IAAiB,CAAI,EAAI,IAAyB,CAAI,EAAI,EAC/E,OAAO,KAAK,oBAAoB,YAAY,EAAc,CAAY,CAC1E,CACA,UAAU,EAAO,EAAY,CACzB,IAAM,EAAqB,KAAK,oBAAoB,UAAU,EAAO,CAAU,EAC/E,OAAO,OAAO,gBAAmB,WAAa,IAAyB,CAAkB,EAAI,CACjG,CACJ,EACM,IAAoB,GAAS,OAAO,gBAAmB,YAAc,aAAgB,eClB9E,IAA4B,GAAY,IAAI,IAAsB,CAAO,ECDtF,eAAsB,IAAW,EAAM,EAAS,EAAY,KAAO,KAAM,CACrE,IAAM,EAAO,EAAK,KACd,EAAiB,EACrB,KAAO,EAAiB,GAAM,CAC1B,IAAM,EAAQ,EAAK,MAAM,EAAgB,KAAK,IAAI,EAAM,EAAiB,CAAS,CAAC,EACnF,EAAQ,IAAI,WAAW,MAAM,EAAM,YAAY,CAAC,CAAC,EACjD,GAAkB,EAAM,IAC5B,CACJ,CCPA,IAAa,IAAa,eAA0B,EAAU,EAAM,CAChE,IAAM,EAAO,IAAI,EAIjB,OAHA,MAAM,IAAW,EAAO,GAAU,CAC9B,EAAK,OAAO,CAAK,CACrB,CAAC,EACM,EAAK,OAAO,CACvB,ECPa,IAAmB,OAAkB,QAAQ,OAAO,CAAO,ECE3D,IAAO,CAAC,WAAY,WAAY,WAAY,SAAU,ECAtD,IAAb,KAAiB,CACb,MACA,OACA,aACA,YACA,SACA,aAAc,CACV,KAAK,MAAM,CACf,CACA,OAAO,EAAY,CACf,GAAI,IAAY,CAAU,EACtB,OAEC,GAAI,KAAK,SACV,MAAU,MAAM,+CAA+C,EAEnE,IAAM,EAAO,IAAgB,CAAU,EACnC,EAAW,EACX,CAAE,cAAe,EAErB,IADA,KAAK,aAAe,EACb,EAAa,GAChB,KAAK,OAAO,SAAS,KAAK,eAAgB,EAAK,IAAW,EAC1D,IACI,KAAK,oBACL,KAAK,WAAW,EAChB,KAAK,aAAe,EAGhC,CACA,MAAM,QAAS,CACX,GAAI,CAAC,KAAK,SAAU,CAChB,GAAM,CAAE,SAAQ,aAAc,EAAmB,eAAgB,KAC3D,EAAa,EAAc,EAEjC,GADA,EAAO,SAAS,KAAK,eAAgB,GAAU,EAC3C,SAAkD,CAClD,IAAK,IAAI,EAAI,KAAK,aAAc,KAAgB,IAC5C,EAAO,SAAS,EAAG,CAAC,EAExB,KAAK,WAAW,EAChB,KAAK,aAAe,CACxB,CACA,IAAK,IAAI,EAAI,KAAK,aAAc,KAAoB,IAChD,EAAO,SAAS,EAAG,CAAC,EAExB,EAAO,aAA0B,IAAe,EAAG,EAAI,EACvD,EAAO,aAA0B,KAAK,MAAM,EAAa,UAAW,EAAG,EAAI,EAC3E,KAAK,WAAW,EAChB,KAAK,SAAW,EACpB,CACA,IAAM,EAAM,IAAI,SAAS,IAAI,cAAyB,CAAC,EACvD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACnB,EAAI,UAAU,EAAI,EAAG,KAAK,MAAM,GAAI,EAAI,EAE5C,OAAO,IAAI,WAAW,EAAI,OAAQ,EAAI,WAAY,EAAI,UAAU,CACpE,CACA,YAAa,CACT,GAAM,CAAE,SAAQ,SAAU,KACtB,EAAI,EAAM,GAAI,EAAI,EAAM,GAAI,EAAI,EAAM,GAAI,EAAI,EAAM,GACxD,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,EAAG,UAAU,EAC3D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,SAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,EAAG,UAAU,EAC3D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,SAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,QAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,SAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,EAAG,UAAU,EAC3D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,EAAG,UAAU,EAC3D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,SAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,QAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,SAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,EAAG,UAAU,EAC3D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,EAAG,UAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,EAAG,EAAI,EAAG,GAAI,SAAU,EAC5D,EAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAO,UAAU,GAAI,EAAI,EAAG,GAAI,UAAU,EAC7D,EAAM,GAAM,EAAI,EAAM,GAAM,WAC5B,EAAM,GAAM,EAAI,EAAM,GAAM,WAC5B,EAAM,GAAM,EAAI,EAAM,GAAM,WAC5B,EAAM,GAAM,EAAI,EAAM,GAAM,UAChC,CACA,OAAQ,CACJ,KAAK,MAAQ,YAAY,KAAK,GAAI,EAClC,KAAK,OAAS,IAAI,SAAS,IAAI,cAAsB,CAAC,EACtD,KAAK,aAAe,EACpB,KAAK,YAAc,EACnB,KAAK,SAAW,EACpB,CACJ,EACA,SAAS,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAE3B,MADA,IAAO,EAAI,EAAK,aAAgB,EAAI,EAAK,YAAe,YAC9C,GAAK,EAAM,IAAO,GAAK,GAAO,EAAK,UACjD,CACA,SAAS,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC7B,OAAO,GAAK,EAAI,EAAM,CAAC,EAAI,EAAI,EAAG,EAAG,EAAG,EAAG,CAAC,CAChD,CACA,SAAS,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC7B,OAAO,GAAK,EAAI,EAAM,EAAI,CAAC,EAAI,EAAG,EAAG,EAAG,EAAG,CAAC,CAChD,CACA,SAAS,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC7B,OAAO,GAAI,EAAI,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CACvC,CACA,SAAS,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC7B,OAAO,GAAI,GAAK,EAAI,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,CAAC,CAC1C,CACA,SAAS,IAAY,EAAM,CAIvB,OAHI,OAAO,GAAS,SACT,EAAK,SAAW,EAEpB,EAAK,aAAe,CAC/B,CACA,SAAS,IAAgB,EAAM,CAO3B,OANI,OAAO,GAAS,SACTzC,GAAS,CAAI,EAEpB,YAAY,OAAO,CAAI,EAChB,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAE/F,IAAI,WAAW,CAAI,CAC9B,CCvKA,IAAa,IAAwB,CAAC,YAAa,eAAgB,SAAU,WAAY,QAAQ,ECEpF,KAA6B,CAAE,gBAAkB,CAAC,IAAM,IAAQ,SAAY,CACrF,IAAM,EAAO,OAAO,GAAiB,WAAa,MAAM,EAAa,EAAI,EACzE,OAAQ,GAAM,YAAY,EAA1B,CACI,IAAK,OACD,OAAO,QAAQ,QAAQ,IAAuB,EAAI,SAAW,UAAU,EAC3E,IAAK,SACL,IAAK,YACL,IAAK,eACL,IAAK,WACL,IAAK,SACD,OAAO,QAAQ,QAAQ,GAAM,kBAAkB,CAAC,EACpD,KAAK,OACD,OAAO,QAAQ,QAAQ,QAAQ,EACnC,QACI,MAAU,MAAM,gDAAgD,IAAsB,KAAK,IAAI,EAAE,QAAQ,GAAM,CACvH,CACJ,CAAC,EACK,QAA+B,CACjC,IAAM,EAAY,QAAQ,UAC1B,GAAI,GAAW,WAAY,CACvB,GAAM,CAAE,gBAAe,MAAK,YAAa,GAAW,WAEpD,GADc,OAAO,GAAkB,UAAY,IAAkB,MAAS,OAAO,CAAG,EAAI,KAAO,OAAO,CAAQ,EAAI,GAElH,MAAO,EAEf,CACA,OAAQ,GAAW,eAAe,QAAW,OAAO,GAAW,gBAAmB,UAAY,GAAW,eAAiB,CAC9H,EClBa0C,IAAoB,IACtB,CACH,WAAY,aACZ,cAAe,GAAQ,eAAiB,GACxC,cAAe,GAAQ,eAAiB,GACxC,kBAAmB,GAAQ,mBAAqB,GAChD,iBAAkB,GAAQ,kBAAoB,GAC9C,WAAY,GAAQ,YAAc,CAAC,EACnC,4BAA6B,GAAQ,6BAA+B,IACpE,uBAAwB,GAAQ,wBAA0B,IAC1D,gBAAiB,GAAQ,iBAAmB,CACxC,CACI,SAAU,iBACV,iBAAmB,GAAQ,EAAI,oBAAoB,gBAAgB,EACnE,OAAQ,IAAI,EAChB,EACA,CACI,SAAU,kBACV,iBAAmB,GAAQ,EAAI,oBAAoB,iBAAiB,EACpE,OAAQ,IAAI,GAChB,CACJ,EACA,OAAQ,GAAQ,QAAU,IAAI,GAC9B,SAAU,GAAQ,UAAY,IAC9B,iBAAkB,GAAQ,kBAAoB,CAC1C,iBAAkB,mBAClB,wBACA,aAAc,0CACd,QAAS,aACT,cAAe,UACnB,EACA,eAAgB,GAAQ,gBAAkB,GAC1C,UAAW,GAAQ,WAAa,KAChC,kBAAmB,GAAQ,mBAAqB,GAChD,kBAAmB,GAAQ,mBAAqB,GAChD,UAAW,GAAQ,WAAa,GAChC,aAAc,GAAQ,cAAgB,OACtC,YAAa,GAAQ,aAAe1C,GACpC,YAAa,GAAQ,aAAe,EACxC,GCnCS,IAAoB,GAAW,CACxC,IAAM,EAAe,IAA0B,CAAM,EAC/C,MAA8B,EAAa,EAAE,KAAK,GAAyB,EAC3E,EAAqB2C,IAAuB,CAAM,EACxD,MAAO,CACH,GAAG,EACH,GAAG,EACH,QAAS,UACT,eACA,kBAAmB,GAAQ,mBAAqB,IAChD,0BAA2B,GAAQ,4BAA+B,OAAY,QAAQ,OAAW,MAAM,uBAAuB,CAAC,GAC/H,yBAA0B,GAAQ,0BAA4B,IAA+B,CAAE,UAAW,EAAmB,UAAW,cAAeC,IAAY,OAAQ,CAAC,EAC5K,yBAA0B,GAAQ,0BAA4B,IAC9D,YAAa,GAAQ,eACrB,IAAK,GAAQ,KAAO,IACpB,OAAQ,GAAQ,QAAU,IAAgB,mBAAmB,EAC7D,eAAgBC,IAAe,OAAO,GAAQ,gBAAkB,CAAqB,EACrF,UAAW,GAAQ,YAAc,UAAa,MAAM,EAAsB,GAAG,WAAa,KAC1F,KAAM,GAAQ,MAAQ,IACtB,OAAQ,GAAQ,QAAU,IAC1B,gBAAiB,GAAQ,iBAAmB,GAC5C,aAAc,GAAQ,cAAgBC,IACtC,qBAAsB,GAAQ,2BAA+B,QAAQ,UAAsC,GAC3G,gBAAiB,GAAQ,sBAA0B,QAAQ,UAAiC,EAChG,CACJ,ECxCa,IAAsC,IACxC,CACH,UAAU,EAAQ,CACd,EAAc,OAAS,CAC3B,EACA,QAAS,CACL,OAAO,EAAc,MACzB,CACJ,GAES,IAA0C,IAC5C,CACH,OAAQ,EAAgC,OAAO,CACnD,GCbS,IAAqC,GAAkB,CAChE,IAAM,EAAmB,EAAc,gBACnC,EAA0B,EAAc,uBACxC,EAAe,EAAc,YACjC,MAAO,CACH,kBAAkB,EAAgB,CAC9B,IAAM,EAAQ,EAAiB,UAAW,GAAW,EAAO,WAAa,EAAe,QAAQ,EAC5F,IAAU,GACV,EAAiB,KAAK,CAAc,EAGpC,EAAiB,OAAO,EAAO,EAAG,CAAc,CAExD,EACA,iBAAkB,CACd,OAAO,CACX,EACA,0BAA0B,EAAwB,CAC9C,EAA0B,CAC9B,EACA,wBAAyB,CACrB,OAAO,CACX,EACA,eAAe,EAAa,CACxB,EAAe,CACnB,EACA,aAAc,CACV,OAAO,CACX,CACJ,CACJ,EACa,IAAgC,IAClC,CACH,gBAAiB,EAAO,gBAAgB,EACxC,uBAAwB,EAAO,uBAAuB,EACtD,YAAa,EAAO,YAAY,CACpC,GChCS,KAA4B,EAAe,IAAe,CACnE,IAAM,EAAyB,OAAO,OAAO,IAAmC,CAAa,EAAG,IAAiC,CAAa,EAAG,IAAqC,CAAa,EAAG,IAAkC,CAAa,CAAC,EAEtP,OADA,EAAW,QAAS,GAAc,EAAU,UAAU,CAAsB,CAAC,EACtE,OAAO,OAAO,EAAe,IAAuC,CAAsB,EAAG,IAA4B,CAAsB,EAAG,IAAgC,CAAsB,EAAG,IAA6B,CAAsB,CAAC,CAC1Q,ECaa,IAAb,cAA8BC,GAAS,CACnC,OACA,YAAY,GAAG,CAAC,GAAgB,CAC5B,IAAM,EAAYC,IAAmB,GAAiB,CAAC,CAAC,EACxD,MAAM,CAAS,EACf,KAAK,WAAa,EAWlB,IAAM,EAAa,IADA,IADD,IADA,IADA,IADA,IADA,IADA,IADA,IADA,IADA,IAAgC,CACD,CACQ,CACZ,CACC,CACI,CACF,CACQ,CACF,CACX,EAAG,CAAE,QAAS,KAAO,KAAM,GAAoB,CAAE,CACvC,EAAG,GAAe,YAAc,CAAC,CAAC,EACvF,KAAK,OAAS,EACd,KAAK,gBAAgB,IAAI,IAAqB,KAAK,MAAM,CAAC,EAC1D,KAAK,gBAAgB,IAAI,IAAmB,KAAK,MAAM,CAAC,EACxD,KAAK,gBAAgB,IAAI,IAAe,KAAK,MAAM,CAAC,EACpD,KAAK,gBAAgB,IAAI,IAAuB,KAAK,MAAM,CAAC,EAC5D,KAAK,gBAAgB,IAAI,IAAoB,KAAK,MAAM,CAAC,EACzD,KAAK,gBAAgB,IAAI,IAAgB,KAAK,MAAM,CAAC,EACrD,KAAK,gBAAgB,IAAI,IAA4B,KAAK,MAAM,CAAC,EACjE,KAAK,gBAAgB,IAAI,IAAuC,KAAK,OAAQ,CACzE,iCAAkC,IAClC,+BAAgC,KAAO,IAAW,IAAI,IAA8B,CAChF,iBAAkB,EAAO,YACzB,kBAAmB,EAAO,WAC9B,CAAC,CACL,CAAC,CAAC,EACF,KAAK,gBAAgB,IAAI,IAAqB,KAAK,MAAM,CAAC,EAC1D,KAAK,gBAAgB,IAAI,IAA4B,KAAK,MAAM,CAAC,EACjE,KAAK,gBAAgB,IAAI,IAA2B,KAAK,MAAM,CAAC,EAChE,KAAK,gBAAgB,IAAI,IAAkC,KAAK,MAAM,CAAC,EACvE,KAAK,gBAAgB,IAAI,IAAmB,KAAK,MAAM,CAAC,EACxD,KAAK,gBAAgB,IAAI,IAA8B,KAAK,MAAM,CAAC,CACvE,CACA,SAAU,CACN,MAAM,QAAQ,CAClB,CACJ,ECzDa,IAAb,cAAiDf,GAC5C,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,CACtC,CACJ,CAAC,EACI,EAAE,WAAY,uBAAwB,CAAC,CAAC,EACxC,EAAE,WAAY,6BAA6B,EAC3C,GAAG,GAAqB,EACxB,MAAM,CAAE,CACb,ECvBA,SAAgB,IAAe,EAAS,CACpC,MAAQ,IAAS,KAAO,IAAS,CAC7B,IAAM,EAAQ,CAAE,GAAG,EAAK,KAAM,EAW9B,IAAK,IAAM,IAAQ,CATf,CACI,OAAQ,iBACR,KAAM,mBACV,EACA,CACI,OAAQ,2BACR,KAAM,6BACV,CAEwB,EAAG,CAC3B,IAAM,EAAQ,EAAM,EAAK,QACzB,GAAI,EAAO,CACP,IAAI,EACA,OAAO,GAAU,SACb,IAAmC,EAAO,CAAO,EACjD,EAAe,EAAQ,cAAc,CAAK,GAG1C,EAAe,EAAQ,YAAY,CAAK,EACxC,EAAM,EAAK,QAAU,EAAQ,cAAc,CAAY,IAI3D,EAAe,YAAY,OAAO,CAAK,EACjC,IAAI,WAAW,EAAM,OAAQ,EAAM,WAAY,EAAM,UAAU,EAC/D,IAAI,WAAW,CAAK,EAC1B,EAAM,EAAK,QAAU,EAAQ,cAAc,CAAY,GAE3D,IAAM,EAAO,IAAI,EAAQ,IACzB,EAAK,OAAO,CAAY,EACxB,EAAM,EAAK,MAAQ,EAAQ,cAAc,MAAM,EAAK,OAAO,CAAC,CAChE,CACJ,CACA,OAAO,EAAK,CACR,GAAG,EACH,OACJ,CAAC,CACL,CACJ,CACA,IAAa,IAAwB,CACjC,KAAM,iBACN,KAAM,aACN,KAAM,CAAC,KAAK,EACZ,SAAU,EACd,EACa,GAAiB,IAAY,CACtC,aAAe,GAAgB,CAC3B,EAAY,IAAI,IAAe,CAAM,EAAG,GAAqB,CACjE,CACJ,GACA,SAAgB,IAAmC,EAAK,EAAS,CAE7D,GAAI,CAAC,iEAAY,KAAK,CAAG,EACrB,MAAO,GACX,GAAI,CAEA,OADqB,EAAQ,cAAc,CACzB,EAAE,SAAW,EACnC,MACM,CACF,MAAO,EACX,CACJ,CC1DA,IAAa,IAAb,cAAoDA,GAC/C,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,0BAA2B,CAAC,CAAC,EAC3C,EAAE,WAAY,gCAAgC,EAC9C,GAAG,GAAwB,EAC3B,MAAM,CAAE,CACb,EClBa,IAAb,cAAuCA,GAClC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,4BAA6B,CAAE,KAAM,sBAAuB,MAAO,EAAK,EACxE,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,EAC1C,WAAY,CAAE,KAAM,gBAAiB,KAAM,YAAa,CAC5D,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,aAAc,CAAC,CAAC,EAC9B,EAAE,WAAY,mBAAmB,EACjC,GAAG,GAAW,EACd,MAAM,CAAE,CACb,ECpBa,IAAb,cAAkDA,GAC7C,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,wBAAyB,CAAC,CAAC,EACzC,EAAE,WAAY,8BAA8B,EAC5C,GAAG,GAAsB,EACzB,MAAM,CAAE,CACb,EClBa,IAAb,cAA0CA,GACrC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,CACpD,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA2B,EAAQ,CAC/B,uBAAwB,CAAE,WAAc,+BAAgC,KAAQ,mBAAoB,EACpG,wBAAyB,EAC7B,CAAC,EACD,GAA4B,CAAM,CACtC,CACJ,CAAC,EACI,EAAE,WAAY,gBAAiB,CAAC,CAAC,EACjC,EAAE,WAAY,sBAAsB,EACpC,GAAG,GAAc,EACjB,MAAM,CAAE,CACb,ECnBa,IAAb,cAAsCA,GACjC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA2B,EAAQ,CAC/B,wBAAyB,GACzB,4BAA6B,eAC7B,mBAAsB,CAAC,YAAa,QAAS,SAAU,SAAU,MAAM,CAC3E,CAAC,EACD,GAAc,CAAM,EACpB,IAA6B,CAAM,CACvC,CACJ,CAAC,EACI,EAAE,WAAY,YAAa,CAAC,CAAC,EAC7B,EAAE,WAAY,kBAAkB,EAChC,GAAG,GAAU,EACb,MAAM,CAAE,CACb,ECzBa,GAAb,cAA0CA,GACrC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,CACpD,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,CACtC,CACJ,CAAC,EACI,EAAE,WAAY,gBAAiB,CAAC,CAAC,EACjC,EAAE,WAAY,sBAAsB,EACpC,GAAG,GAAc,EACjB,MAAM,CAAE,CACb,EChBa,IAAb,cAAsCA,GACjC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,YAAa,CAAC,CAAC,EAC7B,EAAE,WAAY,kBAAkB,EAChC,GAAG,GAAU,EACb,MAAM,CAAE,CACb,ECjBa,GAAb,cAAsCA,GACjC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA2B,EAAQ,CAC/B,uBAAwB,CAAE,WAAc,+BAAgC,KAAQ,mBAAoB,EACpG,wBAAyB,EAC7B,CAAC,EACD,IAAkC,CAAM,EACxC,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,YAAa,CAAC,CAAC,EAC7B,EAAE,WAAY,kBAAkB,EAChC,GAAG,GAAU,EACb,MAAM,CAAE,CACb,ECvBa,GAAb,cAAuCA,GAClC,aAAa,EACb,GAAG,CACJ,GAAG,GACH,OAAQ,CAAE,KAAM,gBAAiB,KAAM,QAAS,EAChD,IAAK,CAAE,KAAM,gBAAiB,KAAM,KAAM,CAC9C,CAAC,EACI,EAAE,SAAU,EAAS,EAAI,EAAQ,EAAG,CACrC,MAAO,CACH,GAAkB,EAAQ,EAAQ,iCAAiC,CAAC,EACpE,GAA2B,EAAQ,CAC/B,uBAAwB,CAAE,WAAc,+BAAgC,KAAQ,mBAAoB,EACpG,wBAAyB,EAC7B,CAAC,EACD,GAA4B,CAAM,EAClC,GAAc,CAAM,CACxB,CACJ,CAAC,EACI,EAAE,WAAY,aAAc,CAAC,CAAC,EAC9B,EAAE,WAAY,mBAAmB,EACjC,GAAG,GAAW,EACd,MAAM,CAAE,CACb,EC7BA,SAAgB,IAAU,EAAS,CAC/B,GAAM,CAAE,OAAM,SAAU,EACpB,CAAE,WAAU,OAAM,YAAa,EAC/B,GAAY,EAAS,MAAM,EAAE,IAAM,MACnC,GAAY,KAEZ,IACA,GAAY,IAAI,KAEhB,GAAQ,EAAK,OAAO,CAAC,IAAM,MAC3B,EAAO,IAAI,KAEf,IAAI,EAAc,EAAQ,GAAiB,CAAK,EAAI,GAChD,GAAe,EAAY,KAAO,MAClC,EAAc,IAAI,KAEtB,IAAI,EAAO,IACP,EAAQ,UAAY,MAAQ,EAAQ,UAAY,QAGhD,EAAO,GAFU,EAAQ,UAAY,GAElB,GADF,EAAQ,UAAY,GACN,IAEnC,IAAI,EAAW,GAIf,OAHI,EAAQ,WACR,EAAW,IAAI,EAAQ,YAEpB,GAAG,EAAS,IAAI,IAAO,IAAW,IAAO,IAAc,GAClE,CC5BA,IAAa,IAAmB,mBACnB,IAAgB,uBCChB,GAAb,KAAgC,CAC5B,OACA,YAAY,EAAS,CACjB,IAAM,EAAkB,CACpB,QAAS,EAAQ,aAAe,EAAQ,SAAW,KACnD,cAAe,EAAQ,eAAiB,GACxC,cAAe,EAAQ,eAAiB,GACxC,GAAG,CACP,EACA,KAAK,OAAS,IAAI,GAAuB,CAAe,CAC5D,CACA,QAAQ,EAAe,CAAE,oBAAoB,IAAI,IAAO,mBAAmB,IAAI,IAAO,qBAAqB,IAAI,IAAO,GAAG,GAAY,CAAC,EAAG,CAMrI,OALA,KAAK,eAAe,EAAe,CAC/B,oBACA,qBACA,kBACJ,CAAC,EACM,KAAK,OAAO,QAAQ,EAAe,CACtC,UAAW,IACX,oBACA,qBACA,GAAG,CACP,CAAC,CACL,CACA,uBAAuB,EAAe,EAAa,CAAE,oBAAoB,IAAI,IAAO,mBAAmB,IAAI,IAAO,qBAAqB,IAAI,IAAO,GAAG,GAAY,CAAC,EAAG,CAMjK,OALA,KAAK,eAAe,EAAe,CAC/B,oBACA,qBACA,kBACJ,CAAC,EACM,KAAK,OAAO,uBAAuB,EAAe,EAAa,CAClE,UAAW,IACX,oBACA,qBACA,GAAG,CACP,CAAC,CACL,CACA,eAAe,EAAe,CAAE,oBAAoB,IAAI,IAAO,qBAAqB,IAAI,IAAO,mBAAmB,IAAI,KAAW,CAAC,EAAG,CACjI,EAAkB,IAAI,cAAc,EACpC,OAAO,KAAK,EAAc,OAAO,EAC5B,IAAK,GAAW,EAAO,YAAY,CAAC,EACpC,OAAQ,GAAW,EAAO,WAAW,8BAA8B,CAAC,EACpE,QAAS,GAAW,CAChB,EAAiB,IAAI,CAAM,GAC5B,EAAmB,IAAI,CAAM,CAErC,CAAC,EACD,EAAc,QAAQ,KAAiB,IACvC,IAAM,EAAoB,EAAc,QAAQ,KAC1C,EAAO,EAAc,KACrB,EAAqB,GAAG,EAAc,WAAW,EAAc,MAAQ,KAAoB,GAAb,IAAM,KACtF,CAAC,GAAsB,IAAsB,EAAc,UAAY,EAAc,MAAQ,QAC7F,EAAc,QAAQ,KAAO,EAErC,CACJ,ECrDa,IAAe,MAAO,EAAQ,EAAS,EAAU,CAAC,IAAM,CACjE,IAAI,EACA,EACJ,GAAI,OAAO,EAAO,OAAO,kBAAqB,WAAY,CAEtD,IAAM,GAAa,MADM,GAA4B,EAAQ,MAAO,EAAQ,YAAa,EAAO,MAAM,GACxE,YAAY,cAAc,GACxD,CAII,CAJA,GAAY,OAAS,SACZ,GAAY,kBAAkB,KAAK,GAAG,EAGtC,GAAY,cAEzB,EAAc,IAAI,GAAmB,CACjC,GAAG,EAAO,OACV,YAAa,GAAY,YACzB,OAAQ,SAAY,CACxB,CAAC,CACL,MAEI,EAAc,IAAI,GAAmB,EAAO,MAAM,EAEtD,IAAM,GAA8B,EAAM,IAAY,KAAO,IAAS,CAClE,GAAM,CAAE,WAAY,EACpB,GAAI,CAAC,GAAY,WAAW,CAAO,EAC/B,MAAU,MAAM,uDAAuD,EAE3E,OAAO,EAAQ,QAAQ,yBACvB,OAAO,EAAQ,QAAQ,mBACvB,OAAO,EAAQ,QAAQ,oBACvB,IAAI,EACE,EAAmB,CACrB,GAAG,EACH,cAAe,EAAQ,eAAiB,EAAQ,gBAAqB,EACrE,eAAgB,EAAQ,gBAAkB,EAAQ,eACtD,EAOA,MANA,CAII,EAJA,EAAQ,kBACI,MAAM,EAAY,uBAAuB,EAAS,EAAQ,kBAAmB,CAAgB,EAG7F,MAAM,EAAY,QAAQ,EAAS,CAAgB,EAE5D,CACH,SAAU,CAAC,EACX,OAAQ,CACJ,UAAW,CAAE,eAAgB,GAAI,EACjC,WACJ,CACJ,CACJ,EAEM,EAAc,EAAO,gBAAgB,MAAM,EACjD,EAAY,cAAc,EAA4B,CAClD,KAAM,6BACN,SAAU,SACV,aAAc,oBACd,SAAU,EACd,CAAC,EAED,GAAM,CAAE,UAAW,MADH,EAAQ,kBAAkB,EAAa,EAAO,OAAQ,CAAC,CACxC,EAAE,CAAE,MAAO,EAAQ,KAAM,CAAC,EACnD,CAAE,aAAc,EACtB,OAAO,IAAU,CAAS,CAC9B,EChDM,GAA0B,EAAI,KAAO,KACrC,IAA8B,EAAI,KAAO,KACzC,IAA+B,EAC/B,IAAmC,EACnC,GAA0B,EAC1B,IAAyB,2BAEzB,IAAc,GAAyD,CAC3E,GAAI,CAAC,EAAO,OAAO,GAAS,OAE5B,IAAM,EAAU,EAAM,KAAK,EAE3B,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,gBAAgB,KAAK,CAAO,EAAI,EAAU,WAAW,IACtE,GAAI,CACF,IAAM,EAAM,IAAI,IAAI,CAAQ,EAM5B,OAJI,EAAI,WAAa,WACnB,EAAI,SAAW,UAGV,EAAI,SAAS,CACtB,MAAQ,CACN,OAAO,EAAS,QAAQ,UAAW,QAAQ,CAC7C,CACF,EA4DM,GAAe,GACd,EAEE,EAAM,WAAW,GAAG,EAAI,EAAQ,IAAI,IAF/B,IAKR,GAAqB,GAA0B,EAAM,QAAQ,QAAS,EAAE,EACxE,GAAuB,GAA2B,EAAM,SAAS,GAAG,EAAI,EAAQ,GAAG,EAAM,GAElF,GAAc,GAA0B,CACnD,IAAM,EAAK,GAAY,CAAK,EAE5B,GAAI,QACF,UAGF,IAAM,EAAW,GAAkB,CAAE,EAAE,MAAM,GAAG,EAOhD,OANA,EAAS,IAAI,EAET,EAAS,SAAW,EACtB,IAGK,IAAI,EAAS,KAAK,GAAG,GAC9B,EAEa,GAAc,GAA0B,CACnD,IAAM,EAAK,GAAY,CAAK,EAE5B,GAAI,QAAgB,MAAO,GAE3B,IAAM,EAAW,GAAkB,CAAE,EAAE,MAAM,GAAG,EAEhD,OAAO,EAAS,EAAS,OAAS,IAAM,EAC1C,EAEM,GAAY,GAA0B,CAC1C,IAAM,EAAK,GAAY,CAAK,EAM5B,OAJI,QACK,GAGF,GAAoB,GAAkB,CAAE,CAAC,CAClD,EAEM,GAAS,GAA0B,GAAkB,GAAY,CAAK,CAAC,EAEvE,KAAoB,EAAgB,IAGjC,GAAG,EAAO,GAFE,mBAAmB,CAAG,EAAE,QAAQ,QAAS,GAExC,IAGhB,IAAe,GACZ,EAAM,MAAM,EAAE,MAAM,EAAG,IAAM,CAClC,GAAI,EAAE,OAAS,EAAE,KACf,OAAO,EAAE,OAAS,SAAW,GAAK,EAGpC,IAAM,EAAQ,GAAW,EAAE,EAAE,EAAE,kBAAkB,EAC3C,EAAQ,GAAW,EAAE,EAAE,EAAE,kBAAkB,EAMjD,OAJI,EAAQ,EAAc,GAE1B,EAAI,EAAQ,EAGd,CAAC,EAGG,GACJ,GACmD,GAAO,OAAS,SAE/D,GAAyB,GAKtB,KAAK,IAJM,OAAO,SAAS,CAAK,EACnC,KAAK,MAAM,CAAe,EAC1B,IAEuB,EAAuB,EAG9C,IAAQ,KAAO,IACnB,IAAI,QAAS,GAAY,CACvB,WAAW,WAAW,EAAS,CAAY,CAC7C,CAAC,EAEG,GAAkC,GAA4B,CAClE,GAAI,CAAC,EAAO,MAAO,GAMnB,IAAM,GAHJ,aAAiB,MACb,GAAG,EAAM,MAAQ,GAAG,GAAG,EAAM,SAAW,KAAK,KAAK,EAClD,OAAO,GAAS,EAAE,GACG,YAAY,EAEvC,OAAO,EAAW,SAAS,WAAW,GAAK,EAAW,SAAS,gBAAgB,CACjF,EAEM,GAAmB,KAAO,IAAoC,CAClE,IAAM,EAAU,EAMhB,OAJI,OAAO,EAAQ,aAAgB,WAC1B,IAAI,WAAW,MAAM,EAAQ,YAAY,CAAC,EAG5C,MAAM,IAAI,SAAqB,EAAS,IAAW,CACxD,GAAI,CACF,IAAM,EAAS,IAAI,WACnB,EAAO,YAAgB,EAAO,EAAO,OAAa,MAAM,mCAAmC,CAAC,EAC5F,EAAO,WAAe,EAAQ,IAAI,WAAW,EAAO,MAAqB,CAAC,EAC1E,EAAO,kBAAkB,CAAI,CAC/B,OAAS,EAAO,CACd,EAAO,CAAK,CACd,CACF,CAAC,CACH,EAEM,IACJ,GAEA,EACG,MAAM,EACN,MAAM,EAAG,IAAM,EAAE,WAAa,EAAE,UAAU,EAC1C,IAAK,IAAU,CACd,KAAM,EAAK,KACX,WAAY,EAAK,UACnB,EAAE,EAEO,IAAb,KAAoC,CAML,YAL7B,GACA,OACA,UAA6B,IAAI,IACjC,YAA+B,IAAI,IAEnC,YAAY,EAAiD,CAAhC,mBAC3B,IAAM,EAAW,IAAW,EAAY,YAAc,EAAY,SAAS,EAC3E,KAAK,GAAK,IAAI,IAAS,CACrB,OAAQ,EAAY,QAAU,YAC9B,WACA,eAAgB,EAAY,eAC5B,IAAK,GACL,YAAa,CACX,YAAa,EAAY,UACzB,gBAAiB,EAAY,UAC7B,aAAc,EAAY,cAAgB,MAC5C,CACF,CAAC,EACD,KAAK,OAAS,EAAY,OAC1B,KAAK,UAAU,QAAa,CAAE,OAAa,KAAM,SAAU,KAAM,EAAK,CAAC,CACzE,CAEA,IAAI,UAAiB,CACnB,OAAO,KAAK,YAAY,QAC1B,CAEA,IAAI,WAAkB,CACpB,OAAO,KAAK,YAAY,SAC1B,CAEA,cAAc,EAA0C,CACtD,OAAO,KAAK,UAAU,IAAI,GAAY,CAAE,CAAC,CAC3C,CAEA,MAAM,WAAW,EAAyC,CACxD,IAAM,EAAW,GAAY,CAAE,EACzB,EAAS,GAAS,CAAQ,EAC1B,EAAc,IAAI,IAClB,EAA6B,CAAC,EAEhC,EACJ,EAAG,CACD,IAAM,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,GAAqB,CACvB,OAAQ,KAAK,OACb,OAAQ,EACR,UAAW,IACX,kBAAmB,CACrB,CAAC,CACH,EAEA,IAAK,IAAM,KAAS,EAAS,gBAAkB,CAAC,EAAG,CACjD,IAAM,EAAc,EAAM,OAE1B,GAAI,CAAC,EAAa,SAElB,IAAM,EAAU,GAAY,GAAkB,CAAW,EAAE,QAAQ,OAAQ,EAAE,CAAC,EAI9E,GAFI,CAAC,GAAW,IAAY,GAExB,EAAY,IAAI,CAAO,EAAG,SAE9B,EAAY,IAAI,CAAO,EACvB,IAAM,EAAgC,CACpC,GAAI,EACJ,KAAM,SACN,KAAM,EACR,EACA,EAAO,KAAK,CAAW,EACvB,KAAK,UAAU,IAAI,EAAS,CAAW,CACzC,CAEA,IAAK,IAAM,KAAU,EAAS,UAAY,CAAC,EAAG,CAC5C,IAAM,EAAM,EAAO,IAMnB,GAJI,CAAC,GAED,IAAQ,GAER,EAAI,SAAS,GAAG,EAElB,SAGF,IAAM,EAAS,GAAY,CAAG,EACxB,EAA8B,CAClC,GAAI,EACJ,KAAM,OACN,KAAM,EAAO,MAAQ,OACrB,KAAM,EAAO,aAAe,IAAI,KAAK,EAAO,YAAY,EAAI,MAC9D,EACA,EAAO,KAAK,CAAS,EACrB,KAAK,UAAU,IAAI,EAAQ,CAAS,CACtC,CAEA,EAAoB,EAAS,YAAc,EAAS,sBAAwB,MAC9E,OAAS,GAET,IAAM,EAAS,IAAY,CAAM,EAGjC,OAFA,KAAK,YAAY,IAAI,EAAU,CAAM,EAE9B,CACT,CAEA,MAAa,WAAW,EAAmD,CACzE,IAAM,EAAa,GAAY,CAAE,EAC3B,EAAS,KAAK,UAAU,IAAI,CAAU,EAE5C,GAAI,EACF,OAAO,EAGT,IAAM,EAAS,GAAW,CAAU,EAEpC,GAAI,CAAC,KAAK,YAAY,IAAI,CAAM,EAC9B,GAAI,CACF,MAAM,KAAK,WAAW,CAAM,CAC9B,MAAQ,CACN,MACF,CAGF,OAAO,KAAK,UAAU,IAAI,CAAU,CACtC,CAEA,MAAa,aAAa,EAAgB,EAA6B,CACrE,IAAM,EAAW,GAAY,CAAM,EAE7B,EAAe,GAAoB,GAD1B,GAAS,CACoB,IAAS,GAAM,EAC3D,MAAM,KAAK,eAAe,CAAY,EACtC,KAAK,iBAAiB,CAAQ,CAChC,CAEA,MAAa,WACX,EACA,EACA,EAA6B,CAAC,EACf,CACf,IAAM,EAAW,GAAY,CAAM,EAE7B,EAAM,GADG,GAAS,CACT,IAAS,EAAK,OACvB,EAAa,EAAK,MAAQ,EAEhC,GAAI,EAAK,KAAO,GAAyB,CACvC,EAAQ,aAAa,CACnB,YAAa,EACb,aACA,WAAY,EAAa,EAAI,EAAI,IACjC,cAAe,EAAa,EAAI,EAAI,EACpC,WAAY,EACZ,QAAS,GACT,QAAS,CACX,CAAC,EAED,GAAI,CACF,MAAM,KAAK,GAAG,KACZ,IAAI,GAAiB,CACnB,OAAQ,KAAK,OACb,IAAK,EACL,KAAM,EACN,YAAa,EAAK,MAAQ,MAC5B,CAAC,CACH,CACF,OAAS,EAAO,CAId,GAAI,CAAC,GAA+B,CAAK,EACvC,MAAM,EAGR,IAAM,EAAa,MAAM,GAAiB,CAAI,EAC9C,MAAM,KAAK,GAAG,KACZ,IAAI,GAAiB,CACnB,OAAQ,KAAK,OACb,IAAK,EACL,KAAM,EACN,YAAa,EAAK,MAAQ,MAC5B,CAAC,CACH,CACF,CAEA,EAAQ,aAAa,CACnB,YAAa,EACb,aACA,WAAY,IACZ,cAAe,EACf,WAAY,EACZ,QAAS,GACT,QAAS,CACX,CAAC,EAED,KAAK,iBAAiB,CAAQ,EAE9B,MACF,CAEA,IAAM,EAAqB,GAAsB,EAAQ,aAAa,EAChE,EAAY,KAAK,IAAI,EAAG,KAAK,MAAM,EAAQ,WAAa,GAA4B,CAAC,EACrF,EAAgB,KAAK,IACzB,EACA,KAAK,MAAM,EAAQ,eAAiB,GAAgC,CACtE,EAEM,EAAY,MAAM,KAAK,2BAC3B,EACA,EACA,KAAK,IAAI,EAAoB,EAAK,IAAI,CACxC,EACM,EAAW,KAAK,IAAI,GAAsB,EAAU,MAAM,QAAQ,EAAG,EAAK,IAAI,EAC9E,EAAa,KAAK,KAAK,EAAK,KAAO,CAAQ,EAC3C,EAAiB,IAAI,IAC3B,IAAK,IAAM,KAAQ,EAAU,MAAM,MACjC,EAAe,IAAI,EAAK,WAAY,CAAI,EAG1C,IAAI,EAAU,EACV,EAAc,MAAM,KAAK,EAAe,OAAO,CAAC,EAAE,QAAQ,EAAK,IAAS,EAAM,EAAK,KAAM,CAAC,EACxF,MAAqB,CACzB,IAAM,EACJ,EAAa,EAAI,KAAK,IAAI,IAAK,KAAK,MAAO,EAAc,EAAc,GAAG,CAAC,EAAI,IACjF,EAAQ,aAAa,CACnB,cACA,aACA,aACA,cAAe,EAAe,KAC9B,aACA,QAAS,EAAU,QACnB,SACF,CAAC,CACH,EAEA,EAAa,EAEb,IAAM,EAA+B,CAAC,EACtC,IAAK,IAAI,EAAa,EAAG,GAAc,EAAY,GAAc,EAC1D,EAAe,IAAI,CAAU,GAChC,EAAmB,KAAK,CAAU,EAItC,IAAI,EAAgB,EACd,EAAU,MAAM,KAAK,CAAE,OAAQ,KAAK,IAAI,EAAW,EAAmB,MAAM,CAAE,OACjF,SAAY,CACX,OAAa,CACX,IAAM,EAAe,EACrB,GAAiB,EACjB,IAAM,EAAa,EAAmB,GAEtC,GAAI,CAAC,EACH,OAGF,IAAM,GAAS,EAAa,GAAK,EAC3B,EAAM,KAAK,IAAI,EAAQ,EAAU,EAAK,IAAI,EAC1C,EAAO,EAAK,MAAM,EAAO,CAAG,EAC5B,EAAY,EAAM,EAElB,EAAO,MAAM,KAAK,6BAA6B,CACnD,MACA,SAAU,EAAU,MAAM,SAC1B,aACA,OACA,gBACA,YAAe,CACb,GAAW,EACX,EAAa,CACf,CACF,CAAC,EAED,EAAe,IAAI,EAAY,CAC7B,aACA,OACA,KAAM,CACR,CAAC,EAED,GAAe,EACf,KAAK,sBAAsB,EAAK,EAAM,CACpC,GAAG,EAAU,MACb,MAAO,MAAM,KAAK,EAAe,OAAO,CAAC,EACzC,UAAW,IAAI,KAAK,EAAE,YAAY,CACpC,CAAC,EACD,EAAa,CACf,CACF,GAAG,CACL,EAEA,GAAI,CACF,MAAM,QAAQ,IAAI,CAAO,EACzB,MAAM,KAAK,GAAG,KACZ,IAAI,IAA+B,CACjC,OAAQ,KAAK,OACb,IAAK,EACL,SAAU,EAAU,MAAM,SAC1B,gBAAiB,CACf,MAAO,IAAqB,MAAM,KAAK,EAAe,OAAO,CAAC,CAAC,CACjE,CACF,CAAC,CACH,EACA,KAAK,qBAAqB,EAAK,CAAI,EACnC,EAAc,EACd,EAAa,EACb,KAAK,iBAAiB,CAAQ,CAChC,OAAS,EAAO,CACd,GAAI,KAAK,oBAAoB,CAAK,EAAG,CACnC,KAAK,qBAAqB,EAAK,CAAI,EACnC,GAAI,CACF,MAAM,KAAK,GAAG,KACZ,IAAI,IAA4B,CAC9B,OAAQ,KAAK,OACb,IAAK,EACL,SAAU,EAAU,MAAM,QAC5B,CAAC,CACH,CACF,MAAQ,CAER,CACF,CAEA,MAAM,CACR,CACF,CAEA,MAAa,cAAc,EAA8B,CACvD,IAAK,IAAM,KAAM,EAAK,CACpB,IAAM,EAAa,GAAY,CAAE,EAGjC,GAAI,GAAc,MAFE,KAAK,WAAW,CAAU,CAEvB,EAAG,CACxB,IAAM,EAAS,GAAS,CAAU,EAC5B,EAAO,MAAM,KAAK,YAAY,CAAM,EAEtC,EAAK,QACP,MAAM,KAAK,WAAW,CAAI,EAG5B,MAAM,KAAK,WAAW,CAAC,CAAM,CAAC,EAC9B,KAAK,iBAAiB,CAAU,CAClC,KAAO,CACL,IAAM,EAAM,GAAM,CAAU,EAC5B,MAAM,KAAK,WAAW,CAAC,CAAG,CAAC,CAC7B,CAEA,IAAM,EAAS,GAAW,CAAU,EACpC,KAAK,iBAAiB,CAAM,EAC5B,KAAK,UAAU,OAAO,CAAU,CAClC,CACF,CAEA,MAAa,YAAY,EAAY,EAA6B,CAChE,IAAM,EAAa,GAAY,CAAE,EAC3B,EAAQ,MAAM,KAAK,WAAW,CAAU,EAE9C,GAAI,CAAC,EACH,MAAU,MAAM,sCAAsC,EAGxD,IAAM,EAAS,GAAW,CAAU,EAC9B,EAAe,GAAS,CAAM,EAEpC,GAAI,GAAc,CAAK,EAAG,CACxB,IAAM,EAAe,GAAS,CAAU,EAClC,EAAoB,GAAoB,GAAG,IAAe,GAAM,EAEtE,GAAI,IAAsB,EACxB,OAGF,GAAI,EAAkB,WAAW,GAAG,GAAc,EAChD,MAAU,MAAM,qDAAqD,EAGvE,MAAM,KAAK,WAAW,EAAc,EAAmB,EAAI,EAC3D,KAAK,iBAAiB,CAAU,CAClC,KAAO,CACL,IAAM,EAAY,GAAM,CAAU,EAC5B,EAAiB,GAAG,IAAe,IAEzC,GAAI,IAAc,EAChB,OAGF,MAAM,KAAK,WAAW,EAAW,CAAc,EAC/C,MAAM,KAAK,WAAW,CAAC,CAAS,CAAC,CACnC,CAEA,KAAK,iBAAiB,CAAM,EAC5B,KAAK,UAAU,OAAO,CAAU,CAClC,CAEA,MAAa,YACX,EACA,EACA,EACe,CACf,IAAM,EAAgB,GAAY,CAAY,EACxC,EAAoB,GAAS,CAAa,EAEhD,IAAK,IAAM,KAAM,EAAK,CACpB,IAAM,EAAa,GAAY,CAAE,EAEjC,GAAI,IAAkB,EACpB,MAAU,MAAM,wCAAwC,EAG1D,GAAI,EAAc,WAAW,GAAG,EAAW,EAAE,EAC3C,MAAU,MAAM,2DAA2D,CAE/E,CAEA,IAAK,IAAM,KAAM,EAAK,CACpB,IAAM,EAAa,GAAY,CAAE,EAC3B,EAAQ,MAAM,KAAK,WAAW,CAAU,EAE9C,GAAI,CAAC,EACH,MAAU,MAAM,WAAW,EAAG,8BAA8B,EAG9D,IAAM,EAAO,GAAW,CAAU,EAElC,GAAI,GAAc,CAAK,EAAG,CACxB,IAAM,EAAe,GAAS,CAAU,EAClC,EAAe,GAAoB,GAAG,IAAoB,GAAM,EAEtE,GAAI,IAAiB,EACnB,SAGF,GAAI,EAAa,WAAW,GAAG,GAAc,EAC3C,MAAU,MAAM,2DAA2D,EAG7E,MAAM,KAAK,WAAW,EAAc,EAAc,CAAY,EAE1D,GACF,KAAK,iBAAiB,CAAU,CAEpC,KAAO,CACL,IAAM,EAAY,GAAM,CAAU,EAC5B,EAAY,GAAG,IAAoB,IAEzC,GAAI,IAAc,EAChB,SAGF,MAAM,KAAK,WAAW,EAAW,CAAS,EAEtC,IACF,MAAM,KAAK,WAAW,CAAC,CAAS,CAAC,EACjC,KAAK,UAAU,OAAO,CAAU,EAEpC,CACF,CAEA,IAAK,IAAM,KAAM,EAAK,CACpB,IAAM,EAAS,GAAW,CAAE,EAC5B,KAAK,iBAAiB,CAAM,CAC9B,CACA,KAAK,iBAAiB,CAAa,CACrC,CAEA,MAAa,eAAe,EAAY,EAAmB,IAAsB,CAC/E,IAAM,EAAM,GAAM,CAAE,EACd,EAAU,IAAI,IAAiB,CAAE,OAAQ,KAAK,OAAQ,IAAK,CAAI,CAAC,EAEtE,OAAO,IAAa,KAAK,GAAI,EAAS,CAAE,UAAW,CAAiB,CAAC,CACvE,CAEA,MAAc,WACZ,EACA,EACA,EACe,CACf,MAAM,KAAK,eAAe,CAAY,EACtC,IAAM,EAAO,MAAM,KAAK,YAAY,CAAY,EAChD,IAAK,IAAM,KAAO,EAAM,CAEtB,IAAM,EAAiB,GAAG,IADT,EAAI,MAAM,EAAa,MACC,IACzC,MAAM,KAAK,WAAW,EAAK,CAAc,CAC3C,CAEI,IACE,EAAK,QACP,MAAM,KAAK,WAAW,CAAI,EAG5B,MAAM,KAAK,WAAW,CAAC,CAAY,CAAC,EAExC,CAEA,MAAc,YAAY,EAAmC,CAC3D,IAAM,EAAiB,CAAC,EACpB,EACJ,EAAG,CACD,IAAM,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,GAAqB,CACvB,OAAQ,KAAK,OACb,OAAQ,EACR,kBAAmB,CACrB,CAAC,CACH,EACA,IAAK,IAAM,KAAU,EAAS,UAAY,CAAC,EACrC,EAAO,KACT,EAAK,KAAK,EAAO,GAAG,EAGxB,EAAoB,EAAS,YAAc,EAAS,sBAAwB,MAC9E,OAAS,GAET,OAAO,CACT,CAEA,MAAc,WAAW,EAAmB,EAAuC,CAC7E,IAAc,GAIlB,MAAM,KAAK,GAAG,KACZ,IAAI,IAAkB,CACpB,OAAQ,KAAK,OACb,IAAK,EACL,WAAY,IAAiB,KAAK,OAAQ,CAAS,CACrD,CAAC,CACH,CACF,CAEA,MAAc,WAAW,EAA+B,CACtD,IAAM,EAAgC,CAAC,EACvC,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAK,OAAQ,GAAS,IAChD,EAAQ,KAAK,EAAK,MAAM,EAAO,EAAQ,GAAI,EAAE,IAAK,IAAS,CAAE,IAAK,CAAI,EAAE,CAAC,EAE3E,IAAK,IAAM,KAAS,EACd,EAAM,SAAW,GAErB,MAAM,KAAK,GAAG,KACZ,IAAI,IAAqB,CACvB,OAAQ,KAAK,OACb,OAAQ,CACN,QAAS,EACT,MAAO,EACT,CACF,CAAC,CACH,CAEJ,CAEA,MAAc,eAAe,EAA+B,CAC1D,GAAI,CAAC,EAAQ,OAEb,IAAM,EAAM,GAAoB,CAAM,EACtC,MAAM,KAAK,GAAG,KACZ,IAAI,GAAiB,CACnB,OAAQ,KAAK,OACb,IAAK,EACL,KAAM,IAAI,UACZ,CAAC,CACH,CACF,CAEA,iBAAyB,EAAwB,CAC/C,IAAM,EAAa,GAAY,CAAQ,EACvC,KAAK,YAAY,OAAO,CAAU,EAClC,IAAM,EAAS,QAAyB,IAAM,GAAG,EAAW,GAC5D,IAAK,IAAM,KAAO,MAAM,KAAK,KAAK,UAAU,KAAK,CAAC,EAC5C,IAAQ,GAER,EAAI,WAAW,CAAM,GACvB,KAAK,UAAU,OAAO,CAAG,CAG/B,CAEA,uBAA+B,EAAyB,CACtD,GAAI,CAAC,GAAS,OAAO,GAAU,SAC7B,MAAO,GAGT,IAAM,EAAiB,EAMvB,GAAI,EAAe,WACjB,MAAO,GAGT,IAAM,EAAa,EAAe,WAAW,eAM7C,OAJI,OAAO,GAAe,UAAY,GAAc,IAC3C,GAGF,IAAI,IAAI,CACb,eACA,iBACA,0BACA,2BACA,aACA,sBACA,WACA,gBACA,qBACA,iBACF,CAAC,EAAE,IAAI,EAAe,MAAQ,EAAE,CAClC,CAEA,oBAA4B,EAAyB,CAKnD,OAJM,aAAiB,MAIhB,EAAM,OAAS,gBAAkB,EAAM,OAAS,WAH9C,EAIX,CAEA,MAAc,6BAA6B,EAOvB,CAClB,IAAI,EAAa,EACjB,OACE,GAAI,CACF,IAAM,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,GAAkB,CACpB,OAAQ,KAAK,OACb,IAAK,EAAO,IACZ,SAAU,EAAO,SACjB,WAAY,EAAO,WACnB,KAAM,EAAO,IACf,CAAC,CACH,EAEA,GAAI,CAAC,EAAS,KACZ,MAAU,MAAM,4CAA4C,EAG9D,OAAO,EAAS,IAClB,OAAS,EAAO,CACd,GAAI,GAA+B,CAAK,EAAG,CACzC,IAAM,EAAa,MAAM,GAAiB,EAAO,IAAI,EAC/C,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,GAAkB,CACpB,OAAQ,KAAK,OACb,IAAK,EAAO,IACZ,SAAU,EAAO,SACjB,WAAY,EAAO,WACnB,KAAM,CACR,CAAC,CACH,EAEA,GAAI,CAAC,EAAS,KACZ,MAAU,MAAM,4CAA4C,EAG9D,OAAO,EAAS,IAClB,CAEA,GAAI,CAAC,KAAK,uBAAuB,CAAK,GAAK,GAAc,EAAO,cAC9D,MAAM,EAGR,GAAc,EACd,EAAO,UAAU,EAEjB,MAAM,IADQ,KAAK,IAAI,IAAM,IAAM,GAAK,CAC5B,CAAK,CACnB,CAEJ,CAEA,4BAAoC,EAAa,EAAoB,CACnE,IAAM,EAAa,mBAAmB,CAAG,EAEzC,MAAO,GAAG,IAAuB,GAAG,KAAK,OAAO,GAAG,EAAW,GAAG,EAAK,KAAK,GAAG,EAAK,cACrF,CAEA,eAAiC,CAC/B,OAAc,WAAW,eAAiB,MAC5C,CAEA,mBAA2B,EAAa,EAAyC,CAC/E,GAAI,CAAC,KAAK,cAAc,EACtB,OAAO,KAGT,GAAI,CACF,IAAM,EAAM,WAAW,aAAa,QAAQ,KAAK,4BAA4B,EAAK,CAAI,CAAC,EAEvF,GAAI,CAAC,EACH,OAAO,KAGT,IAAM,EAAS,KAAK,MAAM,CAAG,EAa7B,OAVE,EAAO,UAAY,IACnB,EAAO,SAAW,KAAK,QACvB,EAAO,MAAQ,GACf,EAAO,WAAa,EAAK,MACzB,EAAO,mBAAqB,EAAK,cACjC,CAAC,EAAO,SAED,KAGF,CACT,MAAQ,CACN,OAAO,IACT,CACF,CAEA,sBAA8B,EAAa,EAAY,EAAmC,CACnF,QAAK,cAAc,EAIxB,GAAI,CACF,WAAW,aAAa,QACtB,KAAK,4BAA4B,EAAK,CAAI,EAC1C,KAAK,UAAU,CAAK,CACtB,CACF,MAAQ,CAER,CACF,CAEA,qBAA6B,EAAa,EAAkB,CACrD,QAAK,cAAc,EAIxB,GAAI,CACF,WAAW,aAAa,WAAW,KAAK,4BAA4B,EAAK,CAAI,CAAC,CAChF,MAAQ,CAER,CACF,CAEA,MAAc,2BACZ,EACA,EACmC,CACnC,IAAM,EAAkC,CAAC,EACrC,EACJ,EAAG,CACD,IAAM,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,IAAiB,CACnB,OAAQ,KAAK,OACb,IAAK,EACL,SAAU,EACV,iBAAkB,CACpB,CAAC,CACH,EACA,IAAK,IAAM,KAAQ,EAAS,OAAS,CAAC,EAChC,CAAC,EAAK,YAAc,CAAC,EAAK,MAI9B,EAAM,KAAK,CACT,WAAY,EAAK,WACjB,KAAM,EAAK,KACX,KAAM,EAAK,MAAQ,CACrB,CAAC,EAEH,EAAS,EAAS,YAAc,EAAS,qBAAuB,MAClE,OAAS,GAET,OAAO,CACT,CAEA,MAAc,2BACZ,EACA,EACA,EAC4D,CAC5D,IAAM,EAAY,KAAK,mBAAmB,EAAK,CAAI,EAEnD,GAAI,EACF,GAAI,CACF,IAAM,EAAQ,MAAM,KAAK,2BAA2B,EAAK,EAAU,QAAQ,EACrE,EAAkC,CACtC,GAAG,EACH,SAAU,GAAsB,EAAU,QAAQ,EAClD,QACA,UAAW,IAAI,KAAK,EAAE,YAAY,CACpC,EAGA,OAFA,KAAK,sBAAsB,EAAK,EAAM,CAAS,EAExC,CACL,MAAO,EACP,QAAS,EAAM,OAAS,CAC1B,CACF,OAAS,EAAO,CACd,GAAI,CAAC,KAAK,oBAAoB,CAAK,EACjC,MAAM,EAGR,KAAK,qBAAqB,EAAK,CAAI,CACrC,CAGF,IAAM,EAAW,MAAM,KAAK,GAAG,KAC7B,IAAI,IAA6B,CAC/B,OAAQ,KAAK,OACb,IAAK,EACL,YAAa,EAAK,MAAQ,MAC5B,CAAC,CACH,EAEA,GAAI,CAAC,EAAS,SACZ,MAAU,MAAM,qDAAqD,EAGvE,IAAM,EAAY,IAAI,KAAK,EAAE,YAAY,EACnC,EAA8B,CAClC,QAAS,GACT,SAAU,EAAS,SACnB,MACA,OAAQ,KAAK,OACb,SAAU,EAAK,KACf,iBAAkB,EAAK,aACvB,WACA,MAAO,CAAC,EACR,YACA,UAAW,CACb,EAGA,OAFA,KAAK,sBAAsB,EAAK,EAAM,CAAK,EAEpC,CAAE,QAAO,QAAS,EAAM,CACjC,CACF,siBC3iCA,aA0CI,EAAM,eAAG,EAAK,EACT,cAAG,aAAa,EACV,oBAAG,IAAI,MAClB,EAAS,kBAAG,EAAI,EAChB,EAAmB,4BAAG,EAAI,EAC1B,EAAS,kBAAG,IAAI,EAChB,EAAa,sBAAG,IAAI,EACpB,EAAe,wBAAG,IAAI,EAGtB,EAAY,qBAAG,EAAE,EAGf,EAAc,EAAiC,IAAI,EACnD,EAAS,EAAsC,IAAI,EACnD,EAAkB,EAAM,QACxB,EAAiB,EAA8B,IAAI,EACnD,EAAiB,EAAM,MAAQ,GAC/B,EAAU,EAAO,EAAK,EACtB,EAAiB,EAAsB,IAAI,EAC3C,EAAiB,EAAsC,IAAI,EAC3D,EAAQ,EAAsB,IAAI,EAClC,EAAgB,EAAO,EAAE,EACzB,EAAmB,EAAsB,IAAI,EAC7C,EAAyB,GAGvB,EAAW,MAAY,QAAQ,EAC/B,EAAiB,MAAY,QAAQ,EAErC,EAAyB,MAAY,aAAa,EAEpD,EAAgB,EAEd,MAAmB,CACvB,GAAiB,IACjB,EAAc,QACd,EAAS,QACT,EAAiB,QACjB,EAAe,SACf,MAAiB,MACjB,EAAU,MACV,EAAiB,QACjB,EAAiB,QACjB,EAAQ,QACR,EAAmB,QACnB,EAAgB,EAAC,CAEnB,EAEM,EAAc,GAA0B,KACtC,GAAW,GAAS,IAAI,KAAI,MAE7B,EAAO,MAAS,OAEf,EAAW,gBAAgB,KAAK,CAAO,EAAI,EAAO,WAAc,OAClE,KACI,EAAG,IAAO,IAAI,CAAQ,SAExB,EAAI,WAAa,WAAU,EAAI,SAAW,UAEvC,EAAI,SAAQ,CACrB,MAAQ,QACC,EAAS,QAAQ,UAAW,QAAQ,CAC7C,CACF,EAEM,EAAoB,IAAiC,CACzD,OAAQ,EAAQ,OAChB,WAAY,EAAW,EAAQ,UAAU,EACzC,UAAW,EAAW,EAAQ,SAAS,EACvC,OAAQ,EAAQ,OAChB,OAAQ,GACR,eAAgB,EAAQ,eACxB,UAAW,EAAQ,UACnB,UAAW,EAAQ,UACnB,aAAc,EAAQ,cAAgB,KACtC,SAAQ,IAAM,KAAK,EAAQ,QAAQ,EACnC,UAAS,IAAM,KAAK,EAAQ,SAAS,IAGjC,EAA0B,GAA6C,KACrE,GAAW,GAAS,IAAI,KAAI,SAE7B,EAEE,EAAQ,WAAW,GAAG,EAAI,EAAO,IAAO,IAFnC,GAGd,EAEM,EAAmB,GAA0B,EAAuB,CAAK,EAEzE,GAAc,GAA0B,EAAuB,CAAK,EAEpE,IAAwB,EAA2B,IACvD,EAEI,IAAiB,EAA2B,IAChD,GAAqB,EAAO,CAAQ,EAAE,IAAK,IAAK,IAC3C,EACH,GAAI,EAAgB,EAAM,EAAE,KAK1B,EAAqB,MAAU,EAAQ,KAAU,kCAG/C,EAAS,EAAK,IACpB,EAAU,MACV,EAAQ,SAEJ,KACI,EAAQ,wBAAyB,CAAK,KAExC,IAAc,aAIZ,EAAS,EAAiB,CAAQ,EAClC,EAAU,IAAO,IAAuB,CAAM,EAC9C,EAAS,MAAS,EAAW,cAAkB,KAEjD,IAAc,WAIlB,EAAc,QACd,EAAS,QACT,EAAkB,GAAc,KAAkB,QAClD,MAAiB,GACnB,OAAS,EAAK,IACR,IAAc,WAIlB,EAAc,QACd,EAAS,QACT,EAAe,SACf,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAc,KAChB,EAAU,GAEd,CACF,EAEM,GAAwB,SAAe,OACrC,EAAsB,EAAI,IAE3B,CAAK,GACR,GAAe,CACb,MAAO,OACP,KAAM,oEAGZ,EAEM,GAAoB,KAAU,IAAiB,KAC7C,EAAU,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,EAE3D,WAAW,KAAK,CAAO,GAAK,gBAAgB,KAAK,CAAO,GAC1D,GAAe,CACb,MAAO,QACP,KAAM,yEAEF,GAAwB,GAE9B,GAAe,CAAG,MAAO,QAAS,KAAM,CAAO,EAEnD,EAEM,GAAa,MAAU,EAAe,IAA6B,GACvE,EAAiB,SACb,OACI,EAAG,CACX,OAAS,EAAK,aACN,GAAqB,CAAG,EACxB,CACR,QAAU,GACR,EAAiB,KACnB,CACF,EAEM,GAAc,SAAe,GAC7B,CAAc,WACV,CAAc,EAAC,KAAK,cAAa,GAE3C,EAEM,GAAa,KAAU,IAAqB,OAC3C,CAAM,aAEL,EAAkB,GAAW,CAAQ,EACrC,EAAQ,GAAa,QAAO,CAAM,EAAC,WAAW,CAAe,EAAG,CAAe,EAEjF,EAAuB,CAAQ,UACjC,EAAkB,MACnB,EAAU,CAAc,KACvB,CAAc,EAAC,KAAK,eAAc,CAAI,GAAI,EAAU,KAAM,CAAK,GAG7D,IAAQ,EAAK,CAAc,KAC7B,EAAmB,KAEvB,EAEM,GAAiB,OAAY,QAAyB,SACrD,CAAM,MAAK,CAAc,MAE1B,GACF,EAAiB,QACjB,EAAmB,UACb,EAAY,GAAW,CAAE,EACzB,EAAQ,GAAa,QAAO,CAAM,EAAC,WAAW,CAAS,EAAG,CAAS,IACzE,CAAc,EAAC,KAAK,eAAc,CAAI,KAAI,KAAM,CAAK,EACvD,OAAS,EAAK,OACN,GAAqB,CAAG,CAChC,CACF,EAEM,GAAoB,GAAwB,CAChD,EAAI,GAAG,eAAgB,EAAiB,MAElC,OACJ,GAAe,CACb,MAAO,QACP,KAAM,+DAGD,IAGH,EAAmB,MAAU,EAAgB,IAAiC,OAC7E,CAAM,GAAI,EAAM,SAAW,EAAC,WAE3B,EAAgB,GAAW,CAAM,IACvC,EAAiB,SACb,OACI,GACJ,EAAM,SAAW,EAAI,0BAA4B,uCACrC,SACC,KAAQ,UACX,CAAM,EAAC,WAAW,EAAe,EAAI,CACzC,WAAa,GAAa,GACxB,EAAiB,KACnB,IAGE,EAAS,KAAI,CAAW,GAAE,QAC5B,GAAqB,CACnB,YAAS,EACT,gBAAa,EACb,OAAM,EAAE,CAAW,EAAC,OACpB,UAAW,GAAmB,EAAe,EAAK,IAAI,EACtD,MAAO,GAAsB,IAInC,GAAe,CACb,MAAO,UACP,KACE,EAAM,SAAW,KACV,EAAM,IAAI,MAAQ,QAAO,kBACzB,EAAM,OAAM,+BAEjB,GAAc,CAAM,CAC5B,EAEJ,QAAU,GACR,EAAiB,KACnB,CACF,EAEA,EAAI,UAAU,cAAa,OAAW,SAAQ,UAA0C,KACjF,EAAS,SAAS,EAAgB,QAElC,CAAM,QAAS,OAEd,EAAS,OACT,EAAgB,GAAW,CAAM,KACnC,OACI,GACJ,GAAM,KAAO,+BAA+B,CAAW,4BAC3C,IACN,GAAM,OAAS,UAAQ,CAAM,GAAM,MAAQ,GAAM,KAAO,KACrD,EAAmB,EAAE,CACxB,GAAe,CACb,MAAO,QACP,KAAI,KAAK,CAAiB,mFAI9B,SAEM,CAAM,EAAC,aAAa,EAAe,EAAK,IAAI,EAClD,GAAe,CAAG,MAAO,UAAW,KAAI,KAAK,CAAW,KAAI,EAAK,KAAI,aACvE,MAAC,GAAU,GAAM,gBAAgB,WACzB,EAAoB,EAAM,CAAG,EAAK,IAAI,cAElC,MAAM,uBAAuB,EAGnC,GAAM,gBAAgB,YACpB,GAAc,CAAM,CAE9B,EAEJ,MAAQ,OACC,EACT,OAEO,EACT,CAAC,EAED,EAAI,UAAU,eAAc,OAAW,SAA6B,KAC7D,EAAS,SAAS,EAAgB,QAElC,CAAM,GAAI,EAAI,SAAW,EAAC,MAAS,MAEpC,KAyCG,MAxCmB,IAEpB,SAAQ,CACN,MAAO,kBACP,YACE,EAAI,SAAW,EACX,sCACG,EAAI,OAAM,6BACnB,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,kBACP,YACE,6EACF,YAAa,6BAGL,OACJ,GAAc,4BAA2B,SAAc,KACrD,EAAa,EAAI,IAAI,EAAU,wCAGf,CAAU,UAExB,CAAM,EAAC,cAAc,CAAU,MAGjC,EAAO,IAAO,IAAI,EAAI,IAAK,GAAO,GAAW,CAAE,YAC1C,KAAU,QACb,GAAc,CAAM,EAE5B,GAAe,CACb,MAAO,UACP,KAAM,EAAI,SAAW,EAAI,uBAAyB,EAAI,OAAM,sBAEhE,CAAC,CACH,GAGY,MAAS,SAEjB,GAAc,CACtB,MAAQ,OACC,EACT,OAEO,EACT,CAAC,EAED,EAAI,UAAU,cAAa,OAAW,KAAI,UAAyC,KAC5E,EAAS,SAAS,EAAgB,QAElC,CAAM,QAAS,MAEhB,OACI,GAAc,0BAAyB,SAAc,SACnD,CAAM,EAAC,YAAY,GAAW,CAAE,EAAG,CAAI,QACvC,GAAc,GAAW,CAAE,GACjC,GAAe,CAAG,MAAO,UAAW,KAAM,oBAAoB,EAChE,CAAC,QACK,GAAc,CACtB,MAAQ,OACC,EACT,OAEO,EACT,CAAC,EAED,EAAI,UAAU,aAAY,OAAW,MAAK,YAAgD,KACnF,EAAS,SAAS,EAAgB,QAElC,CAAM,GAAI,EAAI,SAAW,EAAC,MAAS,MAEpC,OACI,GAAc,2BAA0B,SAAc,SACpD,CAAM,EAAC,YAAY,EAAI,IAAI,EAAU,EAAG,GAAW,CAAM,EAAG,EAAK,MACjE,EAAO,IAAO,IAAG,IAAK,EAAI,IAAK,GAAO,GAAW,CAAE,GAAI,CAAM,WACxD,KAAU,QACb,GAAc,CAAM,EAE5B,GAAe,CAAG,MAAO,UAAW,KAAM,mBAAmB,EAC/D,CAAC,CACH,MAAQ,OACC,EACT,OAEO,EACT,CAAC,EAED,EAAI,UAAU,aAAY,OAAW,MAAK,YAAgD,KACnF,EAAS,SAAS,EAAgB,QAElC,CAAM,GAAI,EAAI,SAAW,EAAC,MAAS,MAEpC,OACI,GAAc,8BAA6B,SAAc,SACvD,CAAM,EAAC,YAAY,EAAI,IAAI,EAAU,EAAG,GAAW,CAAM,EAAG,EAAI,MAChE,EAAO,IAAO,IAAG,IAAK,EAAI,IAAK,GAAO,GAAW,CAAE,GAAI,CAAM,WACxD,KAAU,QACb,GAAc,CAAM,EAE5B,GAAe,CAAG,MAAO,UAAW,KAAM,sBAAsB,EAClE,CAAC,QACK,GAAc,CACtB,MAAQ,OACC,EACT,OAEO,EACT,CAAC,EAED,EAAI,UAAU,gBAAe,OAAW,QAAyB,OAC1D,CAAM,QAAS,MAEhB,KACI,EAAK,QAAS,CAAM,EAAC,WAAW,GAAW,CAAE,SAC7C,GAAc,6BAA4B,SAAc,KACvD,GAAS,EAAM,OAAS,aACjB,MAAK,KAAI,CAAiB,qDAGhC,EAAG,QAAS,CAAM,EAAC,eAAe,GAAW,CAAE,GACrD,OAAO,KAAK,EAAK,SAAU,UAAU,CACvC,CAAC,CACH,MAAQ,OACC,EACT,OAEO,EACT,CAAC,CACH,EAEM,GAAc,GAAwB,GACtC,CAAc,IAAK,MAIvB,EAAiB,MACjB,GAAiB,CAAG,EACtB,EAEM,GAA2B,KAAU,IAAiB,KACpD,EAAQ,EAAM,cACd,EAAQ,MAAM,KAAK,GAAO,OAAK,QAEhC,EAAS,MAAK,CAAM,GAAI,EAAM,SAAW,EAAG,CAC3C,IAAO,EAAM,MAAQ,UAG3B,KAEM,EAAM,EAAG,CAAc,OACvB,EAAgB,GAAW,CAAM,IACvC,EAAiB,SACb,OACI,GACJ,EAAM,SAAW,EAAI,0BAA4B,uCACrC,SACC,KAAQ,UACX,CAAM,EAAC,WAAW,EAAe,EAAI,CACzC,WAAa,GAAa,GACxB,EAAiB,KACnB,IAGE,EAAS,KAAI,CAAW,GAAE,QAC5B,GAAqB,CACnB,YAAS,EACT,gBAAa,EACb,OAAM,EAAE,CAAW,EAAC,OACpB,UAAW,GAAmB,EAAe,EAAK,IAAI,EACtD,MAAO,GAAsB,IAInC,GAAe,CACb,MAAO,UACP,KACE,EAAM,SAAW,KACV,EAAM,IAAI,MAAQ,QAAO,kBACzB,EAAM,OAAM,+BAEjB,GAAc,CAAM,CAC5B,EAEJ,MAAQ,CAER,QAAU,GACR,EAAiB,MAEb,IAAO,EAAM,MAAQ,GAC3B,CACF,EAkBM,IAAsB,EAAgB,IAA6B,KACjE,GAAoB,QAAmB,QAAQ,QAAS,EAAE,EAAE,QAAQ,QAAS,EAAE,SAE9E,EAAgB,GAAM,EAAgB,GAAI,IAAa,CAChE,EAEM,OACA,EAAe,IAAK,UAAkB,UAEtC,EAAe,IAAK,cAAsB,cAEvC,eAGH,GAAe,GAA0B,KACxC,OAAO,SAAS,CAAK,GAAK,GAAS,QAC/B,UAGH,EAAK,CAAI,IAAK,KAAM,KAAM,KAAM,IAAI,EACpC,EAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAK,EAAI,KAAK,IAAI,IAAI,GAAI,EAAM,OAAS,CAAC,EAClF,EAAQ,EAAQ,MAAQ,EACxB,EAAY,GAAS,KAAO,IAAa,EAAI,EAAI,WAE7C,EAAM,QAAQ,CAAS,KAAK,EAAM,IAC9C,EAEM,GAAwB,GAA6C,KACnE,EAAS,GAAY,EAAS,WAAW,EACzC,EAAQ,GAAY,EAAS,UAAU,EACvC,EAAgB,IAAO,EAAS,WAAU,OAAS,EAAM,KAAM,EAAK,WAEtE,EAAS,cAAgB,GAAK,EAAS,WAAa,GACtD,EAAO,KAAI,SAAU,EAAS,cAAa,GAAI,EAAS,YAAU,EAGhE,EAAS,QAAU,GACrB,EAAO,KAAI,WAAY,EAAS,SAAO,EAGrC,EAAS,SACX,EAAO,KAAK,mBAAmB,EAG1B,EAAO,KAAK,KAAK,CAC1B,EAEM,GAAoB,MAAY,EAAM,MAAK,CAAM,MAAK,CAAO,MAAK,CAAK,IACvE,GAAmB,MAAY,EAAM,MAAK,CAAM,GAAI,EAAO,EAAC,CAAK,GAEvE,OAAc,KACP,EAAM,sBAAsB,CAC/B,EAAyB,GACzB,EAAU,QAGZ,KAEM,EAAQ,GAAM,EAAS,GAAI,GAAE,IAAK,EAAa,GAAI,KACnD,EAAe,IAAa,EAClC,EAAyB,EAErB,GACF,EAAU,EAGP,EAAsB,CAAY,CACzC,CAAC,MACK,GAAE,QAEN,SAAQ,CACN,UAAS,CACP,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF,WAAU,CACR,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGF,QAAO,CAAG,UAAW,SAAU,WAAY,WAAY,aAAc,UAAW,WAEhF,SAAQ,CAAG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACnD,MAAO,UACP,QAAS,UACT,KAAM,SACN,MAAO,eACP,MAAO,QACP,GAAE,CAAG,QAAS,IAAI,EAClB,GAAE,CAAG,SAAU,IAAI,EAEnB,UAAW,EACX,YAAa,IAIf,KAAI,CACF,GAAI,KACJ,OAAQ,YACR,OAAQ,YACR,UAAW,eAIb,QAAO,CACL,WAAY,WACZ,WAAY,OAAO,EAGrB,KAAM,QAGN,YAAW,CACT,WAAY,qBAEZ,UAAW,iBACX,GAAI,KACJ,OAAQ,YAER,eAAgB,kBAChB,MAAO,UACP,OAAM,EAAE,CAAW,EACnB,wBAAuB,wBAAwB,CAAW,IAE1D,YAAa,gBACb,MAAO,WAEP,+CACE,uDACF,kBAAmB,sBACnB,oBAAmB,KAAK,CAAyB,aAEjD,OAAQ,WACR,OAAQ,SACR,oBAAqB,oBACrB,eAAgB,wBAChB,iBAAgB,WAAW,CAAW,eACtC,cAAe,kBAEf,KAAM,QACN,KAAM,OACN,KAAM,MACN,KAAM,QAEN,OAAQ,aACR,IAAK,eACL,OAAQ,UACR,KAAM,WACN,MAAO,WACP,SAAU,gBACV,MAAO,SACP,OAAM,EAAE,CAAW,EACnB,QAAO,EAAE,CAAiB,EAC1B,KAAM,QACN,MAAO,UACP,iBAAkB,kBAClB,SAAU,UACV,QAAS,WACT,GAAI,MACJ,KAAM,YACN,wCAAuC,gBAAgB,CAAW,qCAClE,6BAA8B,oCAC9B,eAAgB,mBAEhB,2BAA4B,oDAKd,EAAE,KAArB,GAAM,iDACF,EAAG,UAAH,CAAG,YAEK,gCAMQ,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBAA+B,GAAoB,EAAC,CAAc,SAAtE,CAAI,aADJ,CAAc,YALtB,4BAEQ,EAAY,KAAM,EAAY,cAAe,MAAS,WAE1D,CAAc,gBAJlB,cADA,CAAc,iCAad,QAII,KAJJ,CAIU,mDAJV,2BAEQ,EAAY,KAAM,EAAY,YAAa,MAAS,OAF5D,cAQA,EAAC,UAAD,EAAC,MAAD,CAAC,WAAD,EAAC,cAAsC,EAAY,KAAM,EAAY,UAAW,MAAS,QAC5F,CAAK,SADF,CAAC,aAID,yBAKQ,mCAGO,EAAY,6BAHnB,EAIC,EAA2B,MAJ5B,YADA,EAAS,GAAI,EAAY,UAQ7B,SAAM,oBACF,IAAW,uBAAO,CAAe,QAAQ,+BAbjD,2BAEQ,EAAY,KAAM,EAAY,gBAAiB,MAAS,OAFhE,cAbA,EAAoB,SAQf,EAAmB,WAInB,CAAM,cAzBnB,CAAG,UAAH,EAAG,cAAoC,EAAY,KAAM,EAAY,SAAU,MAAS,OAAxF,CAAG,6BAHA,6GCxvBR,uBA4FU,EAAc,IACrB,cACS,6CACoB,OAC3B,kBACA,uCACA,EAAS,mEA/EN,aAAG,SAAS,EAEF,uBAAG,IAAI,EACZ,kBAAG,IAAI,EACI,6BAAG,IAAI,EACT,wCAClB,EAAS,kBAAG,EAAK,EACR,kBAAG,IAAI,EACP,kBAAG,IAAI,MAyDZ,EAAe,SAAe,IAAkC,aAAY,EAAE,EAC9E,EAAa,KAAU,IAAkB,IAA2B,aAAY,GAAI,CAAG,MAG9F,EAAG,MACD,KADF,CACqB,+BAAiB,OADtC,CAAG,MAAH,CAAG,SAFI,kBCtFR,KAQI,EAAI,aAAG,SAAS,EAEhB,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAoB,6BAAG,IAAI,EAC3B,EAAkB,oCAClB,EAAS,kBAAG,EAAK,EACjB,EAAS,kBAAG,IAAI,EAChB,EAAS,kBAAG,IAAI,EAcnB,yBACE,EAAI,qEAEJ,EAAc,0BACd,EAAS,qCACT,EAAoB,mCACpB,EAAkB,0BAClB,EAAS,0BACT,EAAS,0BACT,EAAS,IAXJ,kBC5BR,aAwCQ,MAAwB,2CAGtB,EAAkB,aAClB,EAAY,GAAW,CAC3B,MAAO,2BACP,QAAS,GACT,WAAU,CACR,KAAI,OACJ,eAAc,iBACd,UAAS,YACT,qBAAoB,uBACpB,mBAAkB,qBAClB,WAAY,EACZ,YAAe,GAAiB,CAAS,EACzC,QAAO,KAAS,WACR,GAAqB,EAAmB,GAAI,CAAO,EACzD,GAAe,CAAG,MAAO,UAAW,KAAM,4BAA4B,uBAG/D,MAIf,EAEM,EAAY,SAAe,2CAGzB,EAAY,aAAc,SAC1B,IAEF,SAAQ,CACN,MAAO,wBACP,YAAa,wCACb,cAAe,cACf,aAAc,aAEhB,OAAM,CACJ,MAAO,wBACP,YACE,mFACF,YAAa,mCAGL,OACJ,GAAqB,CAAY,EACvC,GAAe,CAAG,MAAO,UAAW,KAAM,yBAAyB,gBAErE,EAEJ,EAEM,EAAO,kCAIH,GAAI,OACJ,MAAO,aACP,KAAM,GACN,QAAS,EACT,OAAQ,iDAGR,GAAI,SACJ,MAAO,UACP,KAAM,GACN,KAAM,SACN,gBAAiB,GACjB,YAAO,KAAa,EAAY,EAChC,OAAQ,8FAOF,CAAO,aAFjB,CC1DR,IAAM,GAAkB,IAAI,KAAK,aAAa,OAAO,EAE/C,IAAa,EAAgB,EAAW,OAC/B,OAAO,GAAU,SAAW,EAAM,KAAK,EAAI,GAAS,KAAO,GAAK,OAAO,CAAK,EAAE,KAAK,IAEjF,EAGJ,GAAsB,GAAkC,CACnE,IAAM,EAAO,GAAU,EAAO,EAAE,EAEhC,GAAI,CAAC,EAAM,MAAO,IAElB,IAAM,EAAS,IAAI,KAAK,CAAI,EAI5B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,eAAe,OAAO,CACtC,EAEM,GAAmB,GAAyC,CAChE,IAAM,EAAO,GAAU,EAAO,EAAE,EAEhC,GAAI,CAAC,EAAM,OAAO,KAElB,IAAM,EAAS,IAAI,KAAK,CAAI,EAI5B,OAFI,OAAO,MAAM,EAAO,QAAQ,CAAC,EAAU,EAEpC,EAAO,mBAAmB,OAAO,CAC1C,EAEa,GAAkB,GAAkC,CAC/D,IAAM,EAAU,OAAO,GAAS,CAAC,EAEjC,GAAI,CAAC,OAAO,SAAS,CAAO,GAAK,GAAW,EAAG,MAAO,kBAEtD,GAAI,EAAU,KAAM,MAAO,GAAG,GAAgB,OAAO,KAAK,MAAM,CAAO,CAAC,EAAE,IAE1E,IAAM,EAAQ,CAAC,KAAM,KAAM,KAAM,IAAI,EACjC,EAAS,EAAU,KACvB,IAAK,IAAM,KAAQ,EAAO,CACxB,GAAI,EAAS,MAAQ,IAAS,EAAM,EAAM,OAAS,GACjD,MAAO,GAAG,GAAgB,OAAO,OAAO,EAAO,QAAQ,GAAU,GAAK,EAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAGpF,GAAU,IACZ,CAEA,MAAO,GAAG,GAAgB,OAAO,KAAK,MAAM,CAAO,CAAC,EAAE,GACxD,EAEM,IAAa,GAAgF,CACjG,IAAM,EAAU,GAAU,EAAW,kBAAkB,EACjD,EAAW,EAAQ,MAAM,GAAG,EAAE,OAAO,OAAO,EAC5C,EAAO,EAAS,GAAG,EAAE,GAAK,EAC1B,EAAO,EAAS,OAAS,EAAI,EAAS,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAAI,KAC/D,EAAW,EAAK,YAAY,GAAG,EAGrC,MAAO,CAAE,OAAM,OAAM,UAFH,GAAY,EAAI,EAAK,MAAM,EAAW,CAAC,EAAE,YAAY,EAAI,EAE5C,CACjC,EAEM,IAAwB,GACxB,IAAc,MAAc,CAAE,MAAO,MAAO,KAAM,EAAc,EAEhE,CAAC,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAS,EAAU,CAAE,MAAO,OAAQ,KAAM,EAAe,EAEzF,CAAC,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAS,EAAU,CAAE,MAAO,UAAW,KAAM,EAAgB,EAE7F,CAAC,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAS,EACpC,CAAE,MAAO,SAAU,KAAM,EAAqB,EAEnD,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAS,EAC1D,CAAE,MAAO,SAAU,KAAM,EAAoB,EAElD,CAAC,MAAO,KAAK,EAAE,SAAS,CAAS,EAAU,CAAE,MAAO,OAAQ,KAAM,EAAwB,EAE1F,CAAC,OAAQ,MAAO,OAAQ,KAAM,KAAK,EAAE,SAAS,CAAS,EAClD,CAAE,MAAO,OAAQ,KAAM,EAAmB,EAE9C,EAEE,CAAE,MAAO,SAAU,KAAM,EAAuB,EAFhC,CAAE,MAAO,QAAS,KAAM,EAAuB,EAKlE,KAAoB,EAA+B,IAA0C,CACjG,IAAM,EAAU,GAAU,EAAI,cAAe,EAAE,EAE/C,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAU,EAAQ,YAAY,EAAQ,WAAa,EAAI,YAAc,KAErE,GADe,MAAM,QAAQ,GAAS,YAAY,EAAI,EAAQ,aAAe,CAAC,GACzD,KAAM,GAAU,GAAU,GAAO,GAAI,EAAE,IAAM,CAAO,EAE/E,OAAO,GAAU,GAAO,MAAQ,GAAO,MAAQ,GAAO,GAAI,CAAO,CACnE,EAEa,IAAsB,GAA0B,CAC3D,IAAM,EAAa,EAAM,KAAK,EAAE,YAAY,EAM5C,OAJI,IAAe,eAAuB,eAEtC,IAAe,UAAkB,QAE9B,SACT,EAEM,KAAyB,EAAwB,IAA0C,CAC/F,IAAM,EAAa,EAAI,MAAM,KAAK,EAAE,YAAY,EAOhD,OALI,IAAe,eACV,EAAI,UAAY,EAAQ,gBAAkB,oBAE/C,IAAe,UAAkB,EAAQ,WAAa,EAAI,WAAa,QAEpE,IAAiB,EAAS,CAAG,GAAK,EAAI,eAAiB,SAChE,EAEM,IAAkB,GAA0B,CAChD,IAAM,EAAa,EAAM,KAAK,EAAE,YAAY,EAM5C,OAJI,IAAe,eAAuB,iBAEtC,IAAe,UAAkB,YAE9B,eACT,EAEa,IAAwB,GAAyC,CAC5E,IAAM,EAAQ,IAAU,EAAI,SAAS,EAC/B,EAAW,IAAqB,EAAM,SAAS,EAC/C,EAAW,CAAC,EAAM,KAAM,GAAe,EAAI,IAAI,CAAC,EAAE,OAAO,OAAO,EAEtE,MAAO,CACL,MAAO,EAAM,KACb,SAAU,EAAS,KAAK,KAAK,GAAK,EAAI,OACtC,GAAG,EACH,QAAS,GACP,GAAa,GAAkB,EAAM,IAAI,CAAC,EAC1C,GAAiB,SAAU,EAAI,SAAS,EACxC,GAAiB,SAAU,EAAI,MAAM,EACrC,GAAiB,QAAS,GAAe,EAAI,IAAI,CAAC,EAClD,GAAiB,WAAY,GAAmB,EAAI,YAAY,CAAC,EACjE,GAAiB,OAAQ,EAAI,IAAI,EACjC,GAAiB,mBAAoB,GAAmB,EAAI,SAAS,CAAC,EACtE,GAAiB,kBAAmB,GAAmB,EAAI,QAAQ,CAAC,CACtE,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,KAAK,GAAG,EAAM,MAAQ,GAAG,GAAG,EAAI,UAAU,GAAG,EAAI,OAAO,GAAG,EAAM,YACtF,UAAW,EAAI,SACjB,CACF,EAEa,KACX,EACA,IACiB,CACjB,IAAM,EAAa,EAAI,MAAM,KAAK,EAAE,YAAY,EAC1C,EAAQ,IAAmB,EAAI,KAAK,EACpC,EAAW,IAAsB,EAAK,CAAO,EAEnD,MAAO,CACL,QACA,WACA,MAAO,IAAe,eAAiB,SAAW,IAAe,UAAY,OAAS,OACtF,KACE,IAAe,eACX,GACA,IAAe,UACb,GACA,GACR,QAAS,GACP,GAAa,SAAS,EACtB,GAAiB,QAAS,CAAK,EAC/B,GAAiB,cAAe,CAAQ,EACxC,GAAiB,eAAgB,EAAI,UAAY,EAAQ,cAAc,EACvE,GAAiB,UAAW,EAAQ,WAAa,EAAI,SAAS,EAC9D,GAAiB,eAAgB,EAAI,aAAa,CACpD,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,IAAe,EAAI,KAAK,CACrC,CACF,EAEM,GACJ,GACmD,CACnD,IAAM,EAAa,EAAU,KAAK,EAAE,YAAY,EAYhD,OAVI,IAAe,SACV,CAAE,MAAO,gBAAiB,MAAO,UAAW,KAAM,EAAqB,EAE5E,IAAe,SACV,CAAE,MAAO,gBAAiB,MAAO,OAAQ,KAAM,EAAiB,EAErE,IAAe,SAAiB,CAAE,MAAO,YAAa,MAAO,MAAO,KAAM,EAAiB,EAE3F,IAAe,OAAe,CAAE,MAAO,kBAAmB,MAAO,OAAQ,KAAM,EAAQ,EAEpF,CAAE,MAAO,GAAU,EAAW,WAAW,EAAG,MAAO,QAAS,KAAM,EAAsB,CACjG,EAEa,IAA6B,GAAyC,CACjF,IAAM,EAAa,GAAsB,EAAI,SAAS,EAEtD,MAAO,CACL,GAAG,EACH,SAAU,EAAI,OACd,QAAS,GACP,GAAa,SAAS,EACtB,GAAiB,YAAa,EAAW,KAAK,EAC9C,GAAiB,UAAW,EAAI,SAAS,EACzC,GAAiB,SAAU,EAAI,MAAM,EACrC,GAAiB,SAAU,EAAI,SAAS,CAC1C,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAW,MAAM,GAAG,EAAI,UAAU,GAAG,EAAI,SACxD,UAAW,EAAI,SACjB,CACF,EAEM,IACJ,GACmD,CACnD,IAAM,EAAa,EAAI,WAAW,KAAK,EAAE,YAAY,EAC/C,EAAW,EAAI,UAAU,KAAK,EAAE,YAAY,IAAM,SA0BxD,OAxBI,IAAe,UACV,CAAE,MAAO,EAAW,iBAAmB,aAAc,MAAO,OAAQ,KAAM,EAAQ,EAGvF,IAAe,UACV,CAAE,MAAO,EAAW,WAAa,WAAY,MAAO,UAAW,KAAM,EAAa,EAGvF,IAAe,SACV,CACL,MAAO,EAAW,0BAA4B,iBAC9C,MAAO,MACP,KAAM,EACR,EAGE,IAAe,UACV,CACL,MAAO,EAAW,mBAAqB,aACvC,MAAO,QACP,KAAM,EACR,EAGK,CACL,MAAO,GAAU,EAAI,WAAY,WAAW,EAC5C,MAAO,QACP,KAAM,EACR,CACF,EAEM,IAAgB,GAAyC,CAC7D,IAAM,EAAO,GAAU,EAAO,EAAE,EAIhC,OAFK,EAEE,EAAK,OAAS,GAAK,GAAG,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,EAAE,GAAK,EAF5C,IAGpB,EAEa,IAA0B,GAAyC,CAC9E,IAAM,EAAa,IAAuB,CAAG,EACvC,EAAa,EAAI,WAAW,KAAK,EAAE,YAAY,EAC/C,EACJ,EAAI,WAAa,EACb,GAAG,GAAgB,OAAO,EAAI,UAAU,EAAE,UAAU,EAAI,aAAe,EAAI,GAAK,MAChF,KACA,EACJ,IAAe,SACV,GAAc,IAAa,EAAI,SAAS,GAAK,SAC9C,IAAe,UACb,QACA,IAAe,UACb,SACA,IAAe,UACb,EAAI,UAAU,KAAK,EAAE,YAAY,IAAM,SACrC,YACA,UACF,YAEZ,MAAO,CACL,GAAG,EACH,WACA,QAAS,GACP,GAAa,MAAM,EACnB,GAAiB,SAAU,EAAW,KAAK,EAC3C,GAAiB,UAAW,GAAsB,EAAI,SAAS,EAAE,KAAK,EACtE,GAAiB,eAAgB,GAAmB,EAAI,QAAQ,CAAC,EACjE,GAAiB,mBAAoB,GAAmB,EAAI,QAAQ,CAAC,EACrE,GACE,WACA,EAAI,WAAa,EAAI,GAAgB,OAAO,EAAI,UAAU,EAAI,GAChE,EACA,GAAiB,SAAU,EAAI,WAAa,GAAG,CACjD,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAW,MAAM,GAAG,EAAS,GAAG,EAAI,WAAa,KAChE,UAAW,EAAI,UACjB,CACF,EAEa,IAA6B,GAAyC,CACjF,IAAM,EAAQ,EAAI,SAAY,GAAgB,EAAI,QAAQ,GAAK,eAAkB,aAC3E,EAAW,EAAI,SACjB,YAAY,GAAgB,EAAI,QAAQ,GAAK,YAC7C,EAAI,SACF,WAAW,GAAgB,EAAI,QAAQ,GAAK,cAC5C,gBAEN,MAAO,CACL,QACA,WACA,MAAO,EAAI,SAAW,UAAY,EAAI,SAAW,OAAS,QAC1D,KAAM,GACN,QAAS,GACP,GAAa,YAAY,EACzB,GAAiB,eAAgB,GAAmB,EAAI,QAAQ,CAAC,EACjE,GAAiB,mBAAoB,GAAmB,EAAI,QAAQ,CAAC,EACrE,GAAiB,mBAAoB,GAAmB,EAAI,SAAS,CAAC,EACtE,GAAiB,kBAAmB,GAAmB,EAAI,QAAQ,CAAC,EACpE,GAAiB,kBAAmB,GAAmB,EAAI,YAAY,CAAC,CAC1E,EACA,YAAa,GACb,iBAAkB,GAClB,WAAY,GAAG,EAAM,GAAG,IACxB,UAAW,EAAI,UAAY,EAAI,UAAY,EAAI,UAAY,EAAI,WAAa,EAC9E,CACF,EAEa,KAAqB,EAAwB,KAAmC,CAC3F,QAAS,IAAqB,CAAG,EACjC,SAAU,IAAsB,EAAK,CAAO,EAC5C,aAAc,IAA0B,CAAG,EAC3C,QAAS,IAAuB,CAAG,EACnC,aAAc,IAA0B,CAAG,CAC7C,GCtYa,IAAgC,IAAI,IAAI,CAAC,UAAW,SAAS,CAAC,EAE9D,GAAwB,CACnC,CAAE,KAAM,aAAc,MAAO,SAAU,EACvC,CAAE,KAAM,aAAc,MAAO,SAAU,EACvC,CAAE,KAAM,WAAY,MAAO,SAAU,EACrC,CAAE,KAAM,iBAAkB,MAAO,QAAS,CAC5C,EAEa,IAAwB,GACnC,IAAS,WAAa,CAAC,QAAS,YAAa,OAAQ,WAAW,EAAI,CAAC,OAAQ,WAAW,EAE7E,IAAwB,GAAiD,CACpF,IAAM,EAAuB,CAC3B,CACE,GAAI,OACJ,MAAO,QACP,UAAW,GACX,QAAS,sDACT,SAAU,GACV,QAAS,aACT,SAAU,OACV,aAAe,GAAS,EAAoB,QAAQ,SACtD,CACF,EA+CA,OA7CI,IAAS,YACX,EAAQ,KACN,CACE,GAAI,QACJ,MAAO,UACP,QAAS,gEACT,SAAU,GACV,QAAS,QACT,SAAU,OACV,aAAe,GAAS,EAAoB,SAAS,SACvD,EACA,CACE,GAAI,YACJ,MAAO,UACP,QAAS,sEACT,SAAU,GACV,QAAS,YACT,SAAU,OACV,aAAe,GAAS,EAAoB,aAAa,SAC3D,CACF,EAGF,EAAQ,KACN,CACE,GAAI,OACJ,MAAO,OACP,QAAS,0DACT,SAAU,GACV,QAAS,cACT,SAAU,OACV,aAAe,GAAS,EAAoB,QAAQ,SACtD,EACA,CACE,GAAI,YACJ,MAAO,aACP,QAAS,wEACT,SAAU,GACV,QAAS,eACT,SAAU,OACV,eAAgB,OAChB,aAAe,GAAS,EAAoB,aAAa,SAC3D,CACF,EAEO,CACT,EAEM,GAAyB,IACf,GAAS,IAAI,KAEpB,GAAQ,KAOX,IAAY,EAA2B,IAA+C,CAC1F,IAAM,EAAO,IAAkB,EAAQ,CAAO,EAE9C,MAAO,CACL,GAAG,EACH,GAAG,EACH,WAAY,CACV,EAAK,QAAQ,WACb,EAAK,SAAS,WACd,EAAK,aAAa,WAClB,EAAK,QAAQ,WACb,EAAK,aAAa,UACpB,EAAE,KAAK,GAAG,CACZ,CACF,EAEa,KACX,EACA,IAEA,GACE,CACE,GAAI,EAAK,GACT,UAAW,EAAK,UAChB,OAAQ,EAAK,OACb,SAAU,EAAK,SACf,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,cAAe,EAAK,eAAiB,KACrC,WAAY,EAAK,WACjB,UAAW,EAAK,UAChB,KAAM,GAAsB,EAAK,IAAI,EACrC,KAAM,OAAO,EAAK,MAAS,SAAW,EAAK,KAAO,KAClD,aAAc,GAAsB,EAAK,YAAY,EACrD,SAAU,GAAsB,EAAK,UAAU,EAC/C,SAAU,GAAsB,EAAK,UAAU,EAC/C,UAAW,GAAsB,EAAK,WAAW,EACjD,SAAU,GAAsB,EAAK,UAAU,EAC/C,UAAW,GAAsB,EAAK,SAAS,EAC/C,WAAY,KAAK,IAAI,EAAG,OAAO,EAAK,YAAc,CAAC,CAAC,EACpD,aAAc,GACd,IAAK,CACP,EACA,CACF,EAEW,KACX,EACA,IAEA,GACE,CACE,GAAI,EAAM,GACV,UAAW,EAAM,UACjB,OAAQ,EAAM,OACd,SAAU,EAAQ,gBAAkB,GACpC,UAAW,EAAM,UACjB,MAAO,EAAM,MACb,cACE,EAAM,QAAU,cACX,EAAM,eAAiB,EAAQ,eAAiB,KACjD,KACN,WAAY,UACZ,UAAW,SACX,KAAM,KACN,KAAM,KACN,aAAc,KACd,SAAU,KACV,SAAU,EAAM,UAChB,UAAW,EAAM,UACjB,SAAU,EAAM,UAChB,UAAW,KACX,WAAY,EACZ,aAAc,GACd,IAAK,CACP,EACA,CACF,EAEW,IACX,EACA,IACyB,CACzB,IAAM,GAAmB,EAAI,OAAS,IAAI,KAAK,EAAE,YAAY,EACvD,GAAsB,EAAI,eAAiB,IAAI,KAAK,GAAK,KAS/D,MAAO,CACL,WATuB,EAAQ,WAAa,IAAI,KAAK,GAAK,KAU1D,eARA,IAAoB,gBACf,EAAI,UAAY,EAAQ,gBAAkB,IAAI,KAAK,GAAK,MACxD,EAAQ,gBAAkB,IAAI,KAAK,GAAK,KAO7C,cALA,IAAoB,cAAiB,GAAsB,EAAQ,eAAiB,KAAQ,IAM9F,CACF,EAEa,IAAyB,GACpC,GAAQ,EAAQ,WAAa,EAAQ,gBCjMvC,SAAwB,IAAgB,CACtC,MACA,eACA,eACA,WAMmB,CACnB,IAAM,EAAgB,EAAI,cAAgB,EAAI,GAAG,WAAW,OAAO,EAC7D,EAAiB,CAAC,IAAsB,CAAY,EAKpD,EAA4B,CAAC,EA0BnC,OAxBA,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,SACP,YAAe,CACb,EAAa,CAAG,CAClB,EACA,KAAM,GACN,SAAU,EACV,QAAS,EAAiB,qFAAuB,GAAmB,aAAa,EACjF,OAAQ,2CAA2C,EAAI,IACzD,CAAC,EAED,EAAQ,KAAK,CACX,GAAI,WACJ,MAAO,QACP,YAAe,CACb,EAAQ,CAAG,CACb,EACA,KAAM,GACN,SAAU,EACV,QAAS,EAAgB,6GAAsB,kBAC/C,OAAQ,0CAA0C,EAAI,IACxD,CAAC,EAEM,CACT,iBClDA,SAWC,GAAY,0BAAU,cAFf,iBCTR,aAeQ,EAAS,qBAAoD,KAAO,EAAE,yBAIzE,GAAgB,oCAEhB,GAAY,0BAAU,mBAEtB,GAAY,0BAAU,uBAEtB,GAAY,0BAAU,kBAEtB,GAAY,0BAAU,8CAEtB,CAAS,6BAXF,KAAO,OAAM,cAER,KAAO,QAAO,gBAEd,KAAO,YAAW,gBAElB,KAAO,OAAM,gBAEb,KAAO,YAAW,2BAV3B,KCyVE,IAAU,QACd,IAAH,CAAG,GAGI,KAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAsB,oBAAM,EAAG,uBAAkB,EAAM,MAGhD,KAAS,WAAG,MAAG,MAAH,IACnB,GAAgB,oBAAM,EAAG,MAGlB,KAAY,WACZ,EAAQ,MADU,MAAH,GACD,MACrB,EAAI,UAAJ,CAAI,IAAJ,CAAI,iBACF,CAAQ,EAAC,QAAQ,OAAK;UACpB,CAAQ,EAAC,aAAa,OAAK;UAC3B,CAAQ,EAAC,aAAa,UAAQ,WAHlC,CAAI,GAOG,KAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,OACxB,GAAsB,oBAAM,EAAG,uBAAkB,EAAM,sVA/X1D,kGAuTU,EAAa,QACpB,EAAG,UAAH,CAAG,EACD,2BACU,wBACF,CAAY,YACT,YACC,GAAU,GAEnB,EADU,GAAM,GAAK,EAAI,CAAY,IAAG,YACzB,IAAS,WAAa,WAAa,SAAO,IACzD,IAAY,CACd,IAED,gCACU,wBACF,CAAU,YACP,YACC,GAAU,GAEnB,EADU,GAAM,GAAK,EAAI,CAAU,IAAG,YACzB,IAAS,WAAa,WAAa,UAAQ,IACxD,IAAY,CACd,MAnBH,CAAG,MAAH,CAAG,GAwBI,EAAO,QACd,EAAG,UAAH,CAAG,EACD,+EAImB,OADlB,OAAU,UAAE,CAAW,OAAvB,MAAU,KAAE,EAAW,4BAItB,kDAGW,wBAED,qBACS,YACP,GAAU,KACb,EAAU,GAAuB,OACvC,GAAoB,GAAQ,OAAK,EAAiB,CAAgB,EACpE,MANA,OAAU,UAAE,CAAgB,OAA5B,MAAU,KAAE,EAAgB,oBAL3B,CAAU,IAAK,YAAU,SAP/B,CAAG,MAAH,CAAG,GA5RF,EAAc,uBAAG,IAAI,EAErB,EAAa,sBAAG,IAAI,EACpB,EAAY,qBAAG,IAAI,EACnB,EAAM,eAAG,IAAI,EAWX,EAAoC,KACpC,EAAa,EAAsB,IAAI,EACrC,EAAY,+BACS,EAAc,gBAAiB,SAAQ,GAAI,EAAY,GAAI,EAAM,GAAI,MAAK,GAAI,EAAa,GAAI,OAAK,EAG3H,EAAc,EAAO,EAAE,EACrB,EAAU,QAAY,CAAW,EAAC,KAAI,GAExC,EAAmB,EAAM,GAAC,GAAsB,IAAK,GAAU,EAAM,KAAK,IAC1E,EAAa,EAAkC,SAAS,EACxD,EAAe,EAA6B,QAAQ,EAClD,EAAiB,EACnB,MAAO,UAAW,MAAO,SAAS,GAClC,MAAO,WAAY,MAAO,aAAa,GAErC,EAAmB,EACrB,MAAO,SAAU,MAAO,OAAO,GAC/B,MAAO,WAAY,MAAO,aAAa,GAGrC,EAAQ,sBACI,GAAE,GAAI,EAAY,GAAI,GAAE,GAAI,EAAM,GAAI,GAAE,KAAI,CAAY,OAAI,CAAU,OAAI,CAAU,OAAI,CAAgB,EAAC,KAAK,GAAG,MAAM,EAAoB,EAAC,OAAK,IAAQ,IAAK,GAAU,EAAM,EAAE,EAAE,KAAK,GAAG,KAGtM,EAAW,MAAiE,KAC1E,GAAW,EAAkB,OAChC,IAAK,GAAiB,KACf,EAAK,OAAO,GAAS,IAAM,EAAE,EAAE,KAAI,SAEpC,GAEG,EAAI,CAAO,EAFH,IAGlB,CAAC,EACA,OAAO,OAAO,SAEV,OAAO,YAAY,CAAO,CACnC,CAAC,EACK,EAAY,QAChB,UAAS,YACT,iBAAc,EACd,gBAAa,EACb,YAAW,EAAX,CAAW,KAEP,EAAO,MAAkC,IAAoB,EAAC,CAAU,IACxE,EAAY,MAAqB,IAAoB,EAAC,CAAU,IAEhE,EAAe,GAAyC,KACvD,EAAK,OAAS,SAEb,EAAS,KAAK,MAAM,CAAK,SAExB,OAAO,SAAS,CAAM,EAAI,EAAS,IAC5C,EAEM,EAAqB,OAAY,QAAO,SAAQ,UAAW,KACzD,EAAc,OAAU,GAAU,SAAW,KAC7C,EAAe,OAAU,GAAW,SAAW,EAAS,EACxD,EAAoB,gBACV,CAAY,IAAK,eAE1B,EAAoB,EAAC,OAAK,IACxB,OAAQ,GAAU,EAAM,YAAS,aACjC,OAAQ,GAAK,CAAM,EAAM,GAAI,EAAM,SAAW,EAAM,GACpD,OAAQ,GAAK,CAAM,EAAa,GAAI,EAAM,gBAAkB,EAAa,GACzE,OAAQ,KACF,CAAU,EAER,EAAM,UAAU,YAAW,EAAG,SAAQ,EAAC,CAAU,EAAC,YAAW,GAF5C,EAGzB,EACA,OAAQ,KACH,CAAU,IAAK,aAEd,CAAgB,EAAC,SAEf,CAAgB,EAAC,SAAS,SAAS,EAFL,GAFC,EAKvC,EACH,EAAkB,EAAqB,OACvC,EACJ,EAAkB,EAAI,KAAK,IAAI,EAAG,EAAkB,CAAe,EAAI,MAEpE,EAAY,SAAW,KAAI,GAAM,MAAO,CAAC,MAExC,EAAI,MAAS,IAA2B,EAAY,GACxD,MAAO,EACP,OAAQ,EACR,OAAM,EAAE,CAAY,IAAK,SACzB,SAAQ,EACN,CAAU,IAAK,YAAU,EACzB,CAAgB,EAAC,QAAM,EACvB,CAAgB,EAAC,OAAS,GAAsB,SAC5C,GACA,OACN,OAAM,EAAE,CAAU,GAAI,OACtB,OAAQ,GAAM,KAAO,OACrB,QAAS,GAAM,KAAO,OACtB,OAAQ,EAAM,GAAI,SAEd,EAAc,EAAK,MAAM,IAAK,GAAS,IAA2B,EAAI,EAAE,CAAY,IACpF,EAAe,OAAO,YAC1B,EAAY,IAAK,GAAG,IAAS,EAAI,OAAM,GAAI,EAAI,YAAa,CAAG,IAE3D,EACJ,IAAoB,EAChB,EACG,OAAQ,GAAU,KAEX,EAAU,EAAa,GADd,EAAM,OAAM,GAAI,EAAM,iBAGhC,EAAO,MAAS,OAEf,EAAe,EAAY,EAAM,SAAS,EAC1C,EAAY,EAAY,EAAQ,QAAQ,SAE5C,IAAiB,MAAQ,IAAc,MACnC,EAAY,KAAS,GAIzB,IAAyB,EAAM,EAAE,EAE1B,IAGF,EACT,CAAC,EACA,IAAK,GAAU,IAA2B,EAAK,EAAE,CAAY,OAEhE,EAAe,IAAoB,EAAC,IAAO,EAAU,GAAK,CAAW,EAAI,SAO7E,KALA,IAAoB,GAAK,EAAW,QAAU,EAC1C,GAAc,EAAY,EAAE,CAAO,EAAE,CAAI,EAAE,MAAM,EAAG,CAAc,EAClE,EAAa,MAAM,EAAG,CAAc,EAIxC,OACG,EAAK,OAAS,EAAY,SAC1B,IAAoB,EAAI,EAAW,OAAS,GAEnD,EAEM,EAAO,QACX,MAAO,eACP,gBAAiB,0BACjB,QAAO,EAAP,CAAO,EACP,UACA,aAAY,EAAZ,CAAY,EACZ,cAAe,EACf,YAAa,GACb,mBAAoB,WACpB,YACA,aAAY,EAAZ,CAAY,EACZ,aAAc,yCACd,aAAc,EAAY,EAAG,IAAiC,EAAY,GAAI,KAC9E,kBAAmB,IACnB,aAAe,GACb,IAA8B,KAC1B,EAAoB,YAAc,IAAI,KAAI,EAAG,YAAW,MAI1D,GAAmB,GAAmB,CAC1C,EAAe,yBACM,CAAE,CACzB,EAEM,GAAW,KAAU,IAAqB,IAC1C,OACI,IAAgB,EAAI,EAAE,EAC5B,GAAe,CAAG,MAAO,OAAQ,KAAM,yBAAyB,GAChE,IAAY,CACd,OAAS,EAAO,CACd,GAAe,EAAK,CAClB,SAAU,wCACV,iBAAkB,IAEtB,CACF,EAEM,GAAsB,GAAoB,GAC9C,EAAmB,GAAO,OAAS,EAAK,OACxC,IAAY,CACd,EAEM,EAAqB,GAAqB,KACxC,EAAU,GAA4B,EAAG,EAAE,CAAY,OAExD,EAAQ,WAAS,CAAK,EAAQ,eAAc,WAE3C,EAAM,GAAM,EAAI,OAAM,GAAI,EAAI,YACpC,GAA4B,CAC1B,UAAW,EAAQ,UACnB,eAAgB,EAAQ,eACxB,cAAe,EAAQ,cAEvB,MAAO,KACP,SACA,UAAW,EAAI,UACf,SAAU,SAEd,EAEM,GAAiC,CACrC,SAAU,EAAK,IAAa,KACpB,EAAyB,GAEzB,EAAW,SAEjB,EAAQ,KAAI,GACP,IAAkB,CACnB,IAAK,EACL,aAAc,GAA4B,EAAQ,EAAE,CAAY,GAChE,aAAc,EACd,QAAS,MAIN,GAAuB,EAAO,CAAI,UAAW,WAAY,UAAS,CAAG,UAAU,GACxF,OAIH,GAAG,WAAH,EAAG,iBAGO,CAAU,GAAI,CAAC,EAFvB,8BACE,CAAO,sDAEI,CAAQ,8BACL,+BACC,6BACF,mCACI,6BACjB,kCACiB,sCACG,mCACH,wBACE,gBACL,GAAiD,GAC9D,EAAU,OAAU,GAAQ,OAAU,SAAW,EAAO,MAAS,GAAQ,MAAM,QAAU,EAAC,GAC5F,MAhBH,EAAG,MAAH,EAAG,SAFI,kBCjSR,KAII,EAAc,uBAAG,IAAI,EAErB,EAAa,sBAAG,IAAI,EACpB,EAAY,qBAAG,IAAI,EACnB,EAAM,eAAG,IAAI,EAUhB,IAAkB,+BAAE,EAAc,kEAAe,EAAa,6BAAG,EAAY,uBAAG,EAAM,IAF/E,kBChBR,KAII,EAAc,uBAAG,IAAI,EACrB,EAAS,kBAAG,IAAI,EAChB,EAAY,qBAAG,IAAI,EAQtB,GAAiB,+BAAE,EAAc,0BAAG,EAAS,6BAAG,EAAY,IAFrD,CCPR,IAAM,IAA6D,CACjE,aAAc,eACd,QAAS,QACT,YAAa,UACb,OAAQ,QACV,EACa,GAA2B,GAClC,GAAkB,IAAI,KAAK,aAAa,OAAO,EAExC,IACX,GACmC,CACnC,IAAM,EAAmD,CACvD,CAAE,GAAI,QAAS,MAAO,aAAc,MAAO,IAAY,EAAW,MAAO,CAC3E,EAkBA,OAhBI,OAAO,SAAS,EAAW,SAAS,GAAK,EAAW,WAAa,GACnE,EAAO,KAAK,CACV,GAAI,QACJ,MAAO,UACP,MAAO,GAAgB,OAAO,EAAW,SAAS,CACpD,CAAC,EAGC,OAAO,SAAS,EAAW,gBAAgB,GAAK,EAAW,kBAAoB,GACjF,EAAO,KAAK,CACV,GAAI,gBACJ,MAAO,YACP,MAAO,GAAgB,OAAO,EAAW,gBAAgB,CAC3D,CAAC,EAGI,CAAE,KAAM,GAA0B,QAAO,CAClD,EC/Ba,IACX,EACA,EACA,IAEA,EACI,IAAS,SACP,iCAAiC,mBAAmB,CAAE,IACtD,EACE,GAAG,EAAgB,GAAG,mBAAmB,CAAE,IAC3C,IACJ,KAEA,QAA+C,CACnD,CAAE,GAAI,UAAW,MAAO,WAAY,OAAQ,2CAA4C,EACxF,CAAE,GAAI,YAAa,MAAO,UAAW,OAAQ,6CAA8C,EAC3F,CAAE,GAAI,OAAQ,MAAO,uBAAwB,OAAQ,wCAAyC,CAChG,EAEa,KACX,EACA,KACmC,CACnC,MAAO,kBACP,aACE,IAAS,SACL,yEACA,qEACN,KAAM,GACN,WAAY,GACZ,OAAQ,gCACR,YAAc,GAAe,EAAW,GACxC,eAAiB,GAAe,EAAW,MAC3C,gBAAiB,IACjB,gBACA,gBAAkB,GAAe,sCAAsC,EAAW,KAClF,QAAU,GACR,EAAQ,aAAe,IAAsB,EAAI,CAAC,CACtD,GC1Ca,IAAyC,GAKjC,CACnB,GAAI,CAAC,EAAS,QAAQ,OAAQ,OAAO,KAErC,IAAM,EACJ,EAAS,mBACT,EAAS,QAAQ,KAAM,GAAU,EAAM,KAAO,EAAS,iBAAiB,EACpE,EAAS,kBACR,EAAS,QAAQ,IAAI,IAAM,KAIlC,MAFI,CAAC,GAAc,IAAe,EAAS,kBAA0B,KAE9D,GAAwB,EAAS,KAAM,EAAS,mBAAoB,CAAU,CACvF,mBCVA,6DAwHU,GAA2B,EACnC,EAAuC,EACvC,EAAsC,KAErC,yBACE,EAAI,2BACJ,EAAU,iCACV,CAAc,eACd,CAAS,yBACT,CAAoB,oCACpB,CAAkB,0BACR,EAAmB,aACnB,gBACM,CACf,GAAW,EAAC,CAAQ,GAAI,IAAG,CAAI,QAAS,GAAM,cAAe,EAAI,EACnE,wBACC,EAAQ,MAIH,GAAwB,EAChC,EAAa,EACb,EAA+D,SAEvD,EAAU,MAAG,EAAO,EAAC,YAAY,yBAEtC,yBACE,EAAI,6BACJ,CAAU,iCACV,CAAc,eACd,CAAS,yBACT,CAAoB,oCACpB,CAAkB,0BACR,EAAmB,aACnB,gBACM,CACf,GAAW,EAAC,CAAQ,GAAI,IAAG,CAAI,QAAS,GAAM,cAAe,EAAI,EACnE,wBAIgB,EAAI,IAAK,SAAW,KAAI,EAAG,CAAc,WAC9C,EAAI,IAAK,SAAW,KAAI,EAAG,CAAS,GAFhD,kGAGe,CAAU,EAAC,0BACjB,CAAU,EAAC,+BAIH,EAAI,IAAK,SAAW,KAAI,EAAG,CAAc,WAC9C,EAAI,IAAK,SAAW,KAAI,EAAG,CAAS,GAFhD,kGAGe,CAAU,EAAC,kBAzBxB,CAAU,GAAI,EAAK,IAAK,UAAS,OAc5B,CAAU,GAAI,EAAK,IAAK,YAAW,SAOnC,CAAU,GAAI,EAAK,IAAK,QAAM,iBA/ItC,EAAI,aAAG,SAAS,EAChB,EAAmB,4BAAG,EAAI,EAGtB,EAAc,MAAY,EAAmB,GAAE,IAAM,IAAI,EACzD,EAAS,MAA2B,IAAI,EACxC,EAAkB,UAClB,EAAoB,MAA2B,IAAI,EAErD,EAAc,EAAM,QACpB,EAAU,EAAO,EAAK,EACtB,EAAQ,EAAsB,IAAI,EAClC,EAAY,EAEV,EAAe,MAAY,GAAuB,CAAG,OAAQ,QAAQ,IAAO,EAAE,EAE9E,EAAQ,MAAY,EAAI,IAAK,SAAW,cAAc,EAAG,CAAe,GAExE,EAAkB,MAAY,GAAuB,CAAG,OAAQ,oBAAoB,IACpF,EAAuB,GAC3B,GAAwB,EAAI,IAAE,CAAkB,EAAE,CAAE,EAChD,EAAe,MACnB,IACE,EAAI,EACH,GAAe,EAAoB,EAAW,EAAE,GAAK,GAAG,GAIvD,EAAe,SAAe,KAC5B,EAAO,EAAK,IAClB,EAAU,MACV,EAAQ,SACJ,KACI,EACJ,EAAI,IAAK,eACC,GAAoB,CAAG,MAAO,QAAQ,KAC5C,SACQ,GAAoB,CAAG,eAAc,EAAd,CAAc,UAG/C,IAAY,EAAS,SAEzB,EAAc,UACR,EAAS,IAAqC,CAClD,OAAI,EACJ,mBAAkB,EAAlB,CAAkB,EAClB,kBAAiB,eACjB,QAAS,IAGP,GACF,GAAY,EAAM,CAAI,QAAS,GAAM,cAAe,EAAI,EAE5D,OAAS,EAAK,IACR,IAAY,EAAS,SAEzB,EAAW,SACX,EAAQ,aAAe,MAAQ,EAAI,QAAU,OAAO,CAAG,KACzD,QAAU,CACJ,IAAY,GAAS,EAAE,EAAU,GACvC,CACF,EAEA,QACO,EAAe,MAEP,CACX,GAAa,CACf,EACD,sBAKI,CAAe,EAClB,gBAAiB,iCACjB,iBACE,gGAEY,EAAI,IAAK,SACrB,iBACA,qBACkB,CAAc,IAC9B,IAAI,UAKQ,EAAI,IAAK,WAAS,GAAK,GACrC,sEACA,IAAI,EAlBT,0GAYyB,2BACd,CAAW,sEAEpB,CAAQ,8DAIR,CAAO,yEAEP,CAAK,2BACM,YAxBN,iBCvGR,0FASI,EAAI,aAAG,SAAS,EAMZ,EAAQ,SAAe,EAAI,KAAI,EAAmB,GAAE,IAAM,SAAQ,qBAClE,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,2BAGxE,CAAQ,6BAEL,mEAEF,EAAI,sCACgB,CAAY,EAAC,8BAG/B,4MAPA,CAAY,EAAC,uBAAsB,sCAHpC,iBClBR,CAKC,GAAoB,6DAFb,CCDR,IAAa,IAAgB,CAC3B,GAAI,kBACJ,aAAc,QACd,eAAgB,iBAClB,kBCNA,CAKC,GAAoB,4DAFb,CCDR,IAAa,IAAgB,CAC3B,GAAI,yBACJ,aAAc,QACd,eAAgB,yBAClB,ECEa,IAAyB,IAAyD,CAC7F,aAAc,GAAwB,CAAW,EACjD,oBAAqB,GAAwB,CAAW,CAC1D,iRCXA,aAKM,EAAW,EAAO,EAAE,EAClB,EAAc,sBACJ,KAAM,GAAS,EAAK,KAAE,EAAK,CAAQ,KAAI,CAAQ,EAAG,IAAI,MAIvE,EAAO,MACL,IADF,CAAO,EAEU,EAAM,IADrB,IAEE,EAAM,EADO,CAAM,EACnB,EAAM,MAAN,EAAM,gBAAN,0BACuB,GAAc,EAAa,IAAE,EAA7B,IAAY,KACjC,EAAM,UAAN,EAAM,MAAN,CAAM,wBAA0B,CAAY,EAAC,IAAI,WAAnC,CAAY,EAAC,MAA3B,EAAM,OAAN,EAAM,UAAQ,CAAY,EAAC,KAAE,UAA7B,CAAM,MAHK,CAAM,IADrB,8CASO,CAAc,MAAE,GAAU,iCAAE,CAAc,6CAD7C,CAAc,YATpB,CAAO,MAEU,MAAM,EAAa,CAAQ,OAAR,EAAQ,QAF5C,CAAO,KAFA,yPCwBR,aAiCI,EAAS,kBAAG,eAAe,EAC3B,EAAa,+BACb,EAAQ,0BACR,EAAmB,4BAAG,EAAK,EAEvB,EAAa,EAAY,CAAS,EAElC,EAAe,IAAO,KAAK,aAAa,OAAO,EAC/C,EAAoB,EACtB,GAAI,OAAQ,MAAO,eAAgB,UAAW,EAAI,GAClD,GAAI,OAAQ,MAAO,MAAM,GACzB,GAAI,eAAgB,MAAO,UAAU,GACrC,GAAI,mBAAoB,MAAO,gBAAgB,GAI7C,EAAgB,MAAwC,KACtD,EAA8B,IAAO,YAChC,KAAW,EAAQ,MAAQ,KAC9B,EAAiB,OAAO,GAAS,iBAAmB,EAAE,EAAE,KAAI,MAE7D,EAAc,aAEb,EAAe,MAAM,QAAQ,GAAS,YAAY,EAAI,EAAQ,aAAa,OAAS,EAC1F,EAA+B,IAC7B,GACC,EAA+B,IAAI,CAAc,GAAK,GAAK,CAAY,CAE5E,QAEQ,EAAa,OAClB,IAAsB,IAAY,CACjC,GAAI,EAAa,GACjB,KAAM,EAAa,KACnB,KACE,EAAa,MAAQ,EAAa,MAAQ,EAAa,IAAM,0BAC/D,UAAS,kBAAoB,mBAAmB,EAAa,MAAQ,EAAa,EAAE,SACpF,aAAc,OAAO,EAAa,eAAiB,CAAC,EACpD,iBAAkB,EAA+B,IAAI,EAAa,EAAE,GAAK,KAE1E,MAAM,EAAG,IAAM,EAAE,KAAK,cAAc,EAAE,IAAI,EAC/C,CAAC,EAEK,EAAkB,yBACH,EAAgB,OAAM,EAAC,CAAgB,EAAC,MAAM,MAG7D,GAAqB,CAAM,QAAO,SAAQ,QAAS,KAAe,KAChE,EAAQ,KAAK,IAAI,EAAG,GAAU,CAAC,EAC/B,EAAM,EAAQ,EAAQ,EAAK,EAAG,CAAgB,EAAC,cAInD,KAHQ,EAAG,CAAgB,EAAC,MAAM,EAAO,CAGzC,EACA,MAAK,EAAE,CAAgB,EAAC,MAAM,CAElC,EAEM,EAAoB,GAAyB,KAC5C,EAAI,UAAS,WAEZ,EAAW,OACR,OAAW,KACb,OAAO,SAAS,UAAY,IAAI,QAAQ,OAAQ,EAAE,GAAK,IACxD,GACA,EAAa,EAAI,UAAU,QAAQ,OAAQ,EAAE,GAAK,IAEpD,GAAe,IAAgB,GAEnC,GAAY,EAAI,UAAS,CAAI,cAAe,EAAI,EAClD,yBAIG,IAAgB,8BAAE,EAAa,YAE/B,IAAc,wCAAiB,EAAQ,oCAAG,EAAmB,gBAE7D,EAAG,UAAH,CAAG,EACC,GAAY,oBAAmB,wBAAa,CAAkB,KAC9D,uBAED,SAAU,EAAK,IACb,KAGM,GAAI,cACJ,MAAO,sBACP,KAAM,GACN,aAAiB,GAAQ,EAAiB,CAAG,GAAsB,CAAG,KAIxE,UAAW,cAAe,UAAS,2BAG1C,GACA,6CAGS,eACG,qBACM,GAEH,WAAS,WAAG,MAAG,MAAH,IAAK,MAAM,MAAN,kCAElB,EAAI,UAAJ,EAAI,MAAJ,CAAI,mBACX,EAAgB,OAAS,EAAG,EAAqB,EAAM,EAAC,KAAkB,CAAC,QADpE,CAAI,aAIJ,EAAI,UAAJ,EAAI,MAAJ,CAAI,YAAG,EAAG,EAAqB,IAAI,OAAnC,CAAI,8BAEH,EAAG,EAAqB,EAAM,EAAC,GAAE,mBAPlC,EAAM,EAAC,KAAO,gBAAkB,EAAM,EAAC,KAAO,mBAAkB,KAI3D,EAAM,EAAC,KAAO,OAAM,yBAOxB,MAAK,QACP,IAAH,CAAG,uCAvCf,CAAG,MAAH,CAAG,aALH,CAAa,IAAK,cAAa,OAE1B,CAAa,IAAK,OAAM,2BAJ1B,CC5FR,IAAM,IAEF,CACF,CACE,GAAI,QACJ,MAAO,QACP,MAAO,CAAE,aAAe,EAAQ,kBAAoB,GAAoB,GACxE,YAAc,GAAU,EAAM,MAC9B,QAAU,GAAiB,EAAa,aACxC,QAjCkB,GAAqD,CACzE,IAAM,EAAwB,CAAC,EAoB/B,OAlBI,EAAI,mBACN,EAAK,KAAK,CACR,GAAI,gBACJ,MAAO,iBACP,KAAM,EAAI,iBACZ,CAAC,EAGC,EAAI,UACN,EAAK,KAAK,CACR,GAAI,OACJ,MAAO,aACP,KAAM,EAAI,QACZ,CAAC,EAGH,EAAK,KAAK,CAAE,GAAI,cAAe,MAAO,mBAAoB,KAAM,oBAAqB,CAAC,EAE/E,CACT,CAYE,CACF,EAEa,IAAuB,GAA0C,EAEjE,KAA4B,CACvC,eACA,UACA,QACA,cAOA,GAAoB,CAClB,MAAO,IACP,UACA,QACA,eACA,UACF,CAAC,kBC7EH,qDAwDU,GAAY,EAAC,EAAiB,kBAEzB,EAAS,IAAK,QAAU,EAAS,IAAK,cAAgB,EAAS,EAAG,eAAe,EAD7F,+DAEE,EAAa,yBACb,EAAQ,sCACY,CAAY,EAAC,yBAlDlC,EAAa,+BACb,EAAQ,0BAMJ,EAAc,GAAwB,EACtC,EAAY,MAAY,IAAsB,EAAY,EAAC,WAAW,GACtE,EAAc,MAClB,IAAwB,CACtB,aAAY,EAAZ,CAAY,EACZ,QAAO,CACL,kBAAmB,uBACnB,SAAU,eAEZ,MAAO,IAAmB,CACxB,MAAO,SACP,cAAe,uBACf,KAAM,gBAER,SAAQ,CACN,MAAO,CAAY,4BAOxB,wEAGE,CAAc,8BACA,2BAIhB,4PATE,CAAY,EAAC,aAAY,6BAFtB,CCrCR,IAAa,IAAkB,CAAE,GAAI,OAAQ,2SCA7C,CAKC,GAAe,uBAAsB,oBACjC,GAAI,oBAAmB,GACV,eAAc,QAChB,IAAH,CAAG,wDALR,CCkDR,IAAM,IAAqB,EAAa,KAAqD,CAC3F,MACA,UAAW,GACX,QACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,GAEM,IAAuB,GAAsD,CACjF,IAAM,EAAc,EAAK,sBAAwB,SAC3C,EAAgB,EAAK,YAAY,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,GAAG,EAAE,GAAK,OA+L5E,OA7LI,EAAK,eACA,GAAkB,kBAAmB,CAC1C,MAAO,uBACP,YAAa,qBACb,QAAS,EAAK,eACd,KAAM,EAAK,iBACX,iBAAkB,GAClB,mBAAoB,EAAK,mBACzB,8BAA+B,GAC/B,4BAA6B,EAC7B,gBAAiB,EAAK,eACxB,CAAC,EAGC,EAAK,aACA,CACL,IAAK,UACL,UAAW,IACX,MAAO,CAAC,EACR,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,sBACA,CACL,IAAK,eACL,UAAW,IACX,MAAO,CACL,MAAO,cACP,SAAU,oBACV,YACE,8FACF,SAAU,mBACV,eAAgB,cAChB,WAAY,EAAK,SACjB,WAAY,EAAK,qBACnB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,aACH,EAAK,iCAAmC,EAAK,2BACxC,CACL,IAAK,gCAAgC,EAAK,6BAC1C,UAAW,GACX,MAAO,CACL,aAAc,EAAK,2BACnB,KAAM,QACR,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGK,CACL,IAAK,EAAK,iBAAmB,aAAe,sBAC5C,UAAW,GACX,MAAO,CACL,QAAS,EAAK,iBAAmB,OAAS,gBAC1C,cAAe,EAAK,uBACpB,SAAU,EAAK,iBACjB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGG,EAAK,6BAeN,EAAK,gBACA,CACL,IAAK,SAAS,EAAY,GAAG,EAAK,cAClC,UAAW,GACX,MAAO,CAAC,EACR,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,iBACA,CACL,IAAK,UAAU,EAAY,GAAG,EAAK,eAAiB,cACpD,UAAW,GACX,MAAO,CACL,SAAU,EAAK,aACjB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,oBACA,CACL,IAAK,WAAW,EAAY,GAAG,IAC/B,UAAW,GACX,MAAO,CACL,eAAgB,EAAK,oBACvB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,uBACA,CACL,IAAK,cAAc,EAAY,GAAG,EAAK,yBAA2B,cAClE,UAAW,GACX,MAAO,CACL,SAAU,EAAK,uBACjB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGE,EAAK,sBAAwB,EAAK,sBAC7B,CACL,IAAK,2BAA2B,EAAY,GAAG,EAAK,wBACpD,UAAW,GACX,MAAO,CACL,aAAc,EAAK,sBACnB,KAAM,SACR,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EAGK,CACL,IAAK,gBAAgB,IACrB,UAAW,GACX,MAAO,CACL,YAAa,EAAK,WACpB,EACA,MAAO,CACL,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,kBAAmB,GACnB,cAAe,EACjB,CACF,EA/GS,GAAkB,uBAAwB,CAC/C,MAAO,6BACP,YAAa,+BACb,QAAS,EAAK,0BACV,mEACA,wDACJ,KAAM,EAAK,0BACP,iFACA,6EACJ,gBAAiB,EAAK,gBACtB,mBAAoB,EAAK,kBAC3B,CAAC,CAqGL,EAEa,IAA0B,GAAsD,CAC3F,IAAM,EAAQ,IAAoB,CAAI,EAChC,EACJ,EAAM,YAAc,GAChB,IACA,EAAM,YAAc,GAClB,IACA,EAAM,YAAc,GAClB,IACA,EAAM,YAAc,GAClB,IACA,EAAM,YAAc,GAClB,IACA,EAAM,YAAc,GAClB,IACA,OACV,EACJ,EAAM,YAAc,IAAkB,EAAM,YAAc,GAI5D,MAFI,CAAC,GAAW,CAAC,GAAW,EAAM,YAAc,GAA8B,EAEvE,CACL,GAAG,EACH,UAAW,CACT,IAAK,SAAS,EAAK,QAAU,YAAY,GAAG,EAAU,IAAe,GAAK,GAAG,IAAsB,GAAG,GAAG,EAAK,yBAC9G,UAAW,EAAU,GAAiB,GACtC,MAAO,EACH,CACE,QAAS,EAAK,kBAAoB,EAAU,OAAS,gBACrD,cAAe,EAAK,uBACpB,SAAU,EAAK,iBACjB,EACA,CAAE,YAAa,EAAU,IAAI,EAAQ,eAAiB,EAAK,WAAY,EAC3E,QAAS,EACL,CAAE,GAAG,EAAS,aAAc,EAAU,QAAU,EAAQ,YAAa,EACrE,MACN,CACF,CACF,ECrSa,IAAyB,GChBzB,GAAmB,GAAQ,GAAiB,GAAY,GAAS,OAAS,IAAI,EAC9E,GAA0B,GACrC,GACC,GAAY,GAAS,aAAe,GACvC,kYCRA,kPAgDM,EAAiB,EAAsB,IAAI,EACzC,EAAe,GAAqB,EACtC,EAAU,GACR,MAAuB,GAAW,GAAc,UAAS,IAAO,GAClE,EAAe,EAAO,EAAI,EAC1B,EAAsB,EAAM,GAAuB,GAAI,EAAQ,IAC/D,EAA4B,EAA6B,IAAI,EAC7D,EAA8B,EAAO,EAAK,EAC1C,EAAqB,EAAsB,IAAI,EAC/C,EAA+B,EAAsB,IAAI,EACzD,EAAoB,EACpB,EAA+C,KACnD,IACE,GAAO,CAAE,GAAkB,EAAuB,IAAK,EAAM,OAEzD,OACA,aAAW,EAEd,OAGG,EAAa,CACjB,UAAW,EACX,IAAK,gFAGD,EAAgB,MAAY,GAAoB,KAEhD,EAAY,MAAY,IAAgB,EAAS,EAAC,IAAI,GACtD,EAAyB,QAAY,CAAY,EAAC,kBAAoB,IAAI,EAC1E,EAAgB,QACpB,CAAY,EAAC,UAAY,UAAS,EAAG,CAAY,EAAC,YAAc,GAAG,EAE/D,EAAsB,OAAa,EAAS,EAAC,MAAQ,IAAI,QAAQ,OAAQ,EAAE,GAAK,GAAG,EACnF,EAAyB,QAC7B,CAAsB,IAAK,UAAQ,EACjC,CAAsB,IAAK,wBAAsB,EACjD,CAAsB,IAAK,oBAAoB,EAE7C,EAAgB,QAAY,CAAsB,IAAK,aAAa,EACpE,GAA+B,QACnC,CAAsB,EAAC,WAAW,gCAAgC,GAE9D,GAAY,SAAe,EAAmB,GAAE,IAAM,SAAQ,KAAI,CAAsB,KACxF,GAAY,QAChB,CAAyB,KAAI,CAAgB,KAAI,EAA+B,GAE5E,EAAqB,QACzB,CAAY,EAAC,UAAY,QAAM,EAAI,CAAY,EAAC,UAAY,GAAG,EAE3D,GAA4B,QAC5B,CAAY,EAAC,UAAY,WAAS,CAAK,EAAmB,EAAS,KAElE,CAAyB,EAEd,EACb,EAAmB,EAAC,MAAQ,IAAI,KAAI,GACpC,EAAmB,EAAC,IAAM,IAAI,KAAI,GACnC,OAAO,OAEF,EAAW,SAAQ,EAAC,CAAyB,GAPb,EAQxC,EAEK,GAAe,MAAY,GAAwB,EAAwB,IAC3E,GAAQ,UAEV,GAA4B,EAAO,EAAK,EACtC,OAAoC,aAC7B,OAAW,KAAW,EAAI,EAAyB,MAE9D,GAA4B,OACxB,KACI,EAAG,IAAO,IAAI,SAAU,EAAoB,EAClD,OAAO,SAAS,OAAO,EAAI,SAAQ,EACrC,OAAS,EAAK,CACZ,QAAQ,KAAK,qCAAsC,CAAG,IACtD,GAA4B,GAC9B,CAP4B,CAQ9B,EAEM,GAAqB,QAAY,CAAgB,EAAC,QAAQ,OAAQ,EAAE,GAAK,GAAG,EAC5E,GAAoB,MAAqB,KACvC,EAAQ,EAAG,EAAqB,EAAC,MAAM,GAAG,EAAE,OAAO,OAAO,MAE3D,EAAS,OAAM,MAAS,WAEzB,EAAS,KAAO,eAAiB,EAAS,KAAO,eAAgB,KAC7D,EAAW,EAAS,MAAM,CAAC,SAE5B,EAAS,WAEH,EAAS,KAAK,GAAG,IAFC,OAG/B,WAEW,EAAS,KAAK,GAAG,GAC9B,CAAC,EACK,GAAY,QAAY,EAAqB,EAAC,MAAM,GAAG,EAAE,OAAO,OAAO,GAEvE,GAAe,QACd,EAAY,EAAC,QAEb,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAClD,EAAY,EAAC,KAAO,WAGtB,EAAY,EAAC,KAAO,SANM,EAOlC,EAEK,GAAgB,QACf,EAAY,EAAC,QAEb,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAClD,EAAY,EAAC,KAAO,YAAU,EAAI,EAAY,EAAC,KAAO,YAGxD,EAAY,EAAC,KAAO,YAAU,EAAI,EAAY,EAAC,KAAO,UAN5B,EAOlC,EAEK,GAAmB,MAAqB,OACvC,EAAY,EAAC,OAAM,MAAS,OAE3B,EAAY,EAAG,EAAY,EAAC,QAAQ,SAAS,SAE/C,IAAY,GAAgB,GAEzB,EAAO,EAAC,EAAY,EAAC,EAAe,EAC7C,CAAC,EAEK,GAAsB,QACrB,EAAY,EAAC,QAEb,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAEvD,EAAY,EAAC,KAAO,cAAY,EAChC,EAAY,EAAC,KAAO,WACpB,EAAO,EAAC,EAAY,EAAC,KAKvB,EAAY,EAAC,KAAO,cAAY,EAAI,EAAY,EAAC,KAAO,WAAa,EAAO,EAAC,EAAY,EAAC,GAX3D,EAalC,EAEK,GAAoB,QACnB,EAAY,EAAC,QAEb,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAEvD,EAAY,EAAC,KAAO,SAAO,EAAI,EAAY,EAAC,KAAO,eAAiB,EAAO,EAAC,EAAY,EAAC,KAK3F,EAAY,EAAC,KAAO,SAAO,EAAI,EAAY,EAAC,KAAO,eAAiB,EAAO,EAAC,EAAY,EAAC,GAT1D,EAWlC,EAEK,GAAa,QACZ,EAAgB,GAEhB,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAClD,EAAY,EAAC,IAAM,OAGrB,EAAY,EAAC,IAAM,KANI,IAO/B,EAEK,GAAuB,QACtB,EAAsB,GAEtB,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAClD,EAAY,EAAC,IAAM,OAGrB,EAAY,EAAC,IAAM,KANU,IAOrC,EAEK,GAAqB,QACpB,EAAoB,GAEpB,eAAgB,aAAa,EAAE,SAAQ,EAAC,EAAY,EAAC,EAAC,IAClD,EAAY,EAAC,IAAM,OAGrB,EAAY,EAAC,IAAM,KANQ,IAOnC,EAEK,GAA0B,QACzB,EAA+B,EAEtB,EAAG,CAAsB,EAAC,MAAM,GAAG,EAAE,OAAO,OAEnD,EAAS,IAAM,KAJuB,IAK9C,EAEK,GAAoB,MAAqB,MACzC,EAA4B,EAAE,KAC1B,GAAe,EAAmB,GAAE,IAAM,IAAI,KAAI,KAEpD,EAAW,OAAS,CAC1B,QAEO,IACT,CAAC,EACK,GAAyB,MAAqB,WACvC,OAAW,IAAW,MAAS,+BAEpC,EAAO,OAAO,SAAS,SAAS,YAAW,SAE7C,EAAK,SAAS,YAAY,GAAK,EAAK,SAAS,WAAW,EAAU,oBAElE,EAAK,SAAS,WAAW,EAAU,2BAEhC,0BACT,CAAC,EACK,IAGI,IAAK,OAAQ,MAAO,IAAI,EAAE,SAChC,EAEc,EAIZ,GACJ,KAEK,CAAyB,EAG5B,EAAc,KAAM,GACF,CACd,OAAO,GAAc,MAAQ,EAAE,EAAE,KAAI,EACrC,OAAO,GAAc,IAAM,EAAE,EAAE,KAAI,GACnC,OAAO,OAEF,EAAW,SAAQ,EAAC,CAAyB,EACrD,GAAK,KAV+B,EAAc,IAAM,KAcvD,OAAoC,MACpC,CAAY,KAAI,CAAqB,KAAI,EAAY,KAErD,CAAY,EAAC,UAAY,UAAS,WAEhC,EAAS,EAAC,MAEX,KAED,CAAyB,IACF,EAAK,EAAO,MAAQ,IAAI,KAAI,GAAK,EAAO,IAAM,IAAI,KAAI,GAAI,OACjF,OAGG,EAAoB,SAAQ,EAAC,CAAyB,cAGvD,GAAW,EAAO,MAAQ,EAAO,IAAM,IAAI,KAAI,MAEhD,EAAO,WAEN,EAAU,kBAAqB,mBAAmB,CAAO,MAAI,EAAoB,IAEnF,IAAU,EAAK,CAAsB,GAEzC,GAAY,EAAU,CAAI,QAAS,GAAM,cAAe,EAAI,EAC9D,EAEM,IACJ,EACA,IACQ,KACH,GAAc,GAAE,OAAS,MAExB,EAAO,EAAc,OAAQ,GAAc,EAAU,KAAO,EAAa,EAAE,SACjF,EAAK,QAAQ,CAAY,EAElB,CACT,EAEM,IACJ,EACA,IACQ,KACH,GAAS,GAAE,OAAS,MAEnB,EAAO,EAAS,OAAQ,GAAc,EAAU,KAAO,EAAQ,EAAE,SACvE,EAAK,QAAQ,CAAO,EAEb,CACT,EAEM,GAA6B,SAAe,KAC1C,EAAU,EAAG,CAAY,EAAC,kBAAoB,SAE/C,EAAU,OAAS,QAEpB,cACW,IAAuB,CAAU,CAChD,OAAS,EAAK,QACZ,QAAQ,KAAK,oDAAqD,CAAG,EAE9D,IACT,CACF,EAEM,GAAwB,SAAe,MACvC,CAAY,EAAC,UAAY,WAAS,GAAK,CAAY,EAAC,UAAS,OAAS,QAEtE,cACW,IAA6B,EAAC,CAAY,EAAC,UAAS,CAC/D,uBAAsB,EAAE,CAAY,EAAC,kBAAoB,MAE7D,OAAS,EAAK,QACZ,QAAQ,KAAK,+CAAgD,CAAG,EAEzD,IACT,CACF,EAEM,GAAY,KAAU,IAA0B,KAC/C,EAAc,aAEb,EAAe,EAAM,cAAgB,GAEvC,SAAY,EAAK,CAAkB,MAAK,CAAY,GAOxD,GALA,EAAqB,MAErB,GAAqB,IAAI,EAAI,EAC7B,GAAmB,IAAI,IAAI,EAC3B,GAAgB,IAAI,EAAI,EACxB,GAAc,IAAI,IAAI,KAClB,KACI,EAA4B,GAA6B,EACzD,EAAuB,GAAwB,EAChD,EAA0B,KAAM,GAAiB,EAC/C,EAAc,IAAO,GAAY,GAAK,CAAY,IAEvD,GAAuB,IAAI,GAAmB,GAAI,EAAsB,EAAG,CAAY,GACvF,GAA0B,CAAY,EACxC,CAAC,EACI,EAAqB,KAAM,GAAY,EACrC,EAAc,IAAO,GAAO,GAAK,CAAY,GAElD,GAAkB,IAAI,GAAc,GAAI,EAAiB,EAAG,CAAO,EACrE,CAAC,MAEK,EAAY,MAAS,IAAgB,GACpC,EAAoB,GAAa,MAAU,QAAQ,IAAG,CAC3D,EACA,CAAoB,OAGjB,EAAc,aAEb,EAAgB,GAAmB,EAAa,eAAa,GAAQ,CAAkB,EACvF,EAAW,GAAc,EAAa,UAAQ,GAAQ,CAAa,EACzE,GAAuB,IAAI,CAAa,EACxC,GAAkB,IAAI,CAAQ,EAC9B,GAA0B,GAA0B,CAAa,GAAK,CAAkB,IACxF,EAAiB,KACnB,OAAS,EAAK,KACP,EAAc,SAEI,aAAe,IAAsB,EAAI,SAAW,KAGzE,GAA2B,IAG7B,EAAiB,aAAe,MAAQ,EAAI,QAAU,kCAAgC,IACtF,GAAmB,IAAG,EAAC,CAAc,GACrC,GAAc,IAAG,EAAC,CAAc,GAChC,GAAuB,IAAG,IAC1B,GAAkB,IAAG,IACrB,GAA0B,IAAI,CAChC,QAAU,CACJ,EAAc,IAChB,GAAqB,IAAI,EAAK,EAC9B,GAAgB,IAAI,EAAK,IACzB,EAAe,IACf,GAAiB,EAErB,CApDsB,CAqDxB,EAEM,OAA2B,MAC3B,CAAY,aAGV,EAAQ,GADQ,EAAuB,KACQ,EAEjD,GAAO,KAAO,EAAmB,GAAE,IACrC,GAA0B,CAAK,CAEnC,EAEM,OAA2B,QACpB,OAAW,KAAe,IAEhC,IAA8B,EAAC,EAAoB,GACtD,YAAW,EAAE,EAAyB,GAE1C,EAEM,SACA,EAAY,MAAK,EAA4B,EAAS,MAErC,EAAmB,GAAE,IAAM,IAAI,KAE7C,GAAe,KAGlB,OAAyB,KACvB,EAA0B,EAAG,CAAY,EAAC,UAAY,WAAS,GAAK,IACpE,EAAiB,GAAoC,MAEtD,EAA4B,CAC/B,GAAqB,IACrB,EAA+B,QAC/B,EAA4B,QAC5B,EAA8B,UAGhC,KAEK,EAAgB,CACnB,GAAqB,IACrB,EAA+B,QAC/B,EAA4B,QAC5B,EAA8B,UAGhC,IAEI,IAAc,EAAK,CAA4B,WAEnD,EAA+B,QAC/B,EAA4B,QAC5B,EAA8B,QACxB,EAAK,EAAK,EACX,IAAyB,CAAc,EACzC,KAAM,GAAU,CACX,IAAU,GAAiB,EAAI,CAA4B,IAAK,KAEpE,EAA4B,KAC9B,CAAC,EACA,MAAO,GAAQ,CACV,IAAU,GAAiB,EAAI,CAA4B,IAAK,IAEpE,QAAQ,MAAM,gDAAiD,CAAG,IAClE,EAA4B,MAC9B,CAAC,EACA,YAAc,CACT,IAAU,GAAiB,EAAI,CAA4B,IAAK,KAEpE,EAA8B,GAChC,CAAC,CACL,EAEM,OAA0B,CACzB,EAAc,IAEnB,GAAkB,EAClB,GAA2B,EAC3B,GAAkB,EAClB,GAAgB,EAClB,EAEM,GAAW,MACf,IAAsB,CACpB,OAAQ,EAAiB,GAAE,GAC3B,eAAc,EAAd,CAAc,EACd,0FACA,mBAAoB,GACpB,aAAY,EAAZ,CAAY,EACZ,sBAAqB,EAArB,CAAqB,EACrB,aAAY,EAAZ,EAAY,EACZ,6BAA4B,EAA5B,EAA4B,EAC5B,0BAAyB,EAAzB,CAAyB,EACzB,iBAAgB,EAAhB,CAAgB,EAChB,gCAA+B,EAA/B,EAA+B,EAC/B,2BAA0B,EAA1B,EAA0B,EAC1B,aAAY,EAAZ,EAAY,EACZ,gBAAe,EAAf,EAAe,EACf,iBAAgB,EAAhB,EAAgB,EAChB,cAAa,EAAb,EAAa,EACb,oBAAmB,EAAnB,EAAmB,EACnB,qBAAsB,EAAmB,GAAE,IAAM,KACjD,uBAAsB,EAAtB,EAAsB,EACtB,wBAAuB,EAAvB,EAAuB,EACvB,qBAAoB,EAApB,EAAoB,EACpB,sBAAqB,EAArB,EAAqB,EACrB,YAAW,EAAE,CAAY,EAAC,aAAe,IACzC,uBAAwB,EAAuB,EAC/C,kBAAmB,EAAkB,EACrC,SAAQ,EAAR,EAAQ,EACR,oBACA,0BACE,GAAW,EAAC,EAAe,EAAG,uBAAyB,IAAqB,MAIlF,OAAc,CACZ,EAAkB,IAAc,CAC9B,YAAc,GAAU,CACjB,GAAa,CAAK,CACzB,QAEI,EAAsB,GAAS,UAAU,EAAiB,EAC1D,EAAsB,GAAS,UAAW,GAAU,GACxD,EAAsB,KACxB,CAAC,EACK,EAA0B,GAAmB,cAAgB,CACjE,GAAiB,CACnB,CAAC,EAEI,IAAY,MACX,EAAoB,IAA8B,WAExD,GAAiB,MAEJ,CACX,EAAU,GACV,GAAqB,EACrB,GAAiB,KAAI,EACrB,EAAmB,EACnB,EAAmB,EACnB,EAAuB,EACvB,EAAiB,CACnB,CACF,CAAC,MAEK,GAAa,QACjB,CAA2B,EAAG,OAAQ,CAAyB,KAAI,CAAmB,wCAkBtF,KAAM,EAAS,EAAC,KAChB,OAAQ,EAAS,EAAC,OAClB,OAAM,EAAE,CAAY,EAAC,SAAW,UAChC,QAAO,EAAE,CAAY,EAAC,iBACtB,YAAa,KACb,gBAAiB,QAfpB,2BACQ,2BACN,+BACY,EAAW,EAAC,MAAM,0CAChB,EAAW,EAAC,MAAM,gDACd,EAAW,EAAC,MAAM,uDACpC,EAAoB,8BACpB,4BACY,EAAiB,4EAWxB,EAAW,EAAC,UAAU,IAAG,IAC5B,kCACE,EAAW,2BACF,EAAa,2BACb,CAA2B,mCACpC,CAAgB,+CAKlB,GAAM,2BAAW,EAAa,2BAAY,CAA2B,gBADnE,EAAW,EAAC,MAAM,YAAU,oBAGhC,GAAS,8BAAE,EAAW,8FAcG,KAAI,EAAE,CAAgB,EAAE,MAAO,cAAc,IAFlE,8BACW,EAAa,oDAXtB,CAA2B,mCAD7B,EAAW,EAAC,MAAM,YAAU,0BAd9B,EAAW,EAAC,UAAS,gCAxBlB,mFC5kBR,SA4BE,GAVa,GAAe,cAAgB,CAC1C,GAAuB,IAAG,IAC1B,GAAkB,IAAG,IACrB,GAAqB,IAAI,EAAK,EAC9B,GAAgB,IAAI,EAAK,EACzB,GAAmB,IAAI,IAAI,EAC3B,GAAc,IAAI,IAAI,EACtB,GAA0B,IAAI,EAC9B,IAAwB,CAC1B,CACU,CAAI,OAGf,IAAoB,uBAAS,6BAAiC,KACnD,OAAK,EAAC,EAAI,SAAG,EAAI,WAAJ,GAAkC,CAAI,IAAtC,CAAI,MAAJ,CAAI,GACjB,UAAS,IAAI,IAAQ,4CAJzB,gBC7BR,CAIC,IAAQ,KAFD,CCKR,SAAgB,IAA8B,EAAsC,CAClF,IAAM,EAAa,IAAY,OAAO,OAAW,IAAc,OAAS,MAExE,GAAI,CAAC,EAAY,MAAO,GAExB,IAAM,EAAS,EAAW,SAAS,OAEnC,GAAI,CAAC,EAAQ,MAAO,GAEpB,IAAM,EAAa,IAAI,gBAAgB,EAAO,WAAW,GAAG,EAAI,EAAO,MAAM,CAAC,EAAI,CAAM,EAClF,EACJ,EAAW,IAAI,YAAY,GAC3B,EAAW,IAAI,SAAS,GACxB,EAAW,IAAI,qBAAqB,EAetC,MAZI,CAAC,GAAW,WAAW,KAAK,IAEf,EAAW,SAAS,SAAS,QAAQ,OAAQ,EAAE,GAAK,KAExD,WAAW,qBAAqB,EAAU,IAEvD,EAAW,QAAQ,aACjB,KACA,GACA,kCAAkC,mBAAmB,CAAS,GAChE,EAEO,GACT,CC9BA,IAA8B,EAE9B,IAAc,CAAE,aAAc,CAAC,aAAa,CAAE,CAAC,EAE/C,IAAI,IAAe,UAAU,eAAe,cAAc,EAC9C,IAAQ,IAAK,CAAE,OAAQ,GAAa,CAAC","names":["is_array","define_property","noop","run_all","fallback","DEV","rune_outside_svelte","normal","tag","setContext","micro_tasks","run_micro_tasks","queue_micro_task","derived","get","get_store","uid","#blocking_pending","#skipped_branches","#unskipped_branches","#started","#unlink","#is_deferred","#dirty_effects","#maybe_dirty_effects","#roots","#traverse","#defer_effects","#process","#find_earlier_batch","#merge","#commit_callbacks","#deferred","#pending","#commit","#link","#prev","#discard_callbacks","#fork_commit_callbacks","#new_effects","#next","#decrement_queued","#effect_pending","#local_pending_count","#anchor","#props","#children","#effect","#hydrate_open","#hydrate_failed_content","#hydrate_pending_content","#hydrate_resolved_content","#render","#main_effect","#failed_effect","#pending_effect","#offscreen_fragment","#run","#pending_count","#resolve","#update_pending_count","#pending_count_update_queued","#effect_pending_subscriber","#handle_error","state","set","is","without_reactive_context","effect","create_event","last_propagated_event","handle_event_propagation","text","#transition","#batches","#onscreen","#outroing","#offscreen","#discard","NAN","index","each","link","now","linear","r","clsx","_clsx","w.select_multiple_invalid_value","#options","#listeners","#getObserver","#observer","init","isBrowser","throttle","ResizeObserver","min","max","round","floor","clamp","computePosition","flip","offset","shift","size","isElement","isShadowRoot","getComputedStyle","getComputedStyle$1","defaults","debounce","getEventTarget","__assign","defaultOptions","English","exports","autoUpdate","floatingAutoUpdate","encoder","encode","isObjectLike","isObject","sign","cache","normalizeKey","jwk.isJWK","jwk.isSecretJWK","invalidKeyInput","jwk.isPrivateJWK","jwk.isPublicJWK","epoch","year","#payload","#protectedHeader","#unprotectedHeader","b64u","#flattened","#jwt","__defProp","STATUS_FALLBACKS","SIMPLE_STATUS_TEXTS","isRecord","normalizeText","formatLoc","normalizeReasonCode","normalizeFieldErrors","collectMessages","statusFallback","isMeaninglessMessage","resolveApiErrorMessage","getEnv","normalizeOrigin$1","timestamp$1","record","name","changed","timestamp","hex","rgb2hsl","hsl2rgb","hsv2rgb","to","interpolate","clone","Color","merge","isFunction","PI","formatNumber","getStyle","interpolators","Element","version","fill","limit","type","last","_input","clip_rgb","unpack","input","LAB_CONSTANTS","pow","interpolator","mix","cos","sin","sqrt","atan2","interpolate_hsx","rgb2hsv","scale","log","abs","chroma","patchController","DEBUG_BUILD","CONSOLE_LEVELS","PREFIX","isEnabled","debug","handlers","instrumented","addHandler","triggerHandlers","handlerData","objectToString","isErrorEvent","getConstructorName","truncate","makeSession","withScope","spanWithMaybeDsc","_getBufferMap","Client","isTransactionEvent","parseUrl","INTEGRATION_NAME","_shouldDropEvent","HTTP_URL","URL_FULL","WINDOW","_INTERNAL_enhanceErrorWithSentryInfo","errorEvent","objectException","getAbsoluteTime","SENTRY_TRANSACTION","SENTRY_SEGMENT_NAME","globalObject","cachedImplementations","setTimeout","_wrapXHR","getOptions","_INTERNAL_filterKeyValueData","_INTERNAL_filterCookies","on","chars","i","n","t","e","debounce$1","root","Symbol","nativeObjectToString","symToStringTag","FUNC_ERROR_TEXT","canUseDOM","addClasses","#version","#size","#update_version","#sources","#source","#read_all","memo","flush","range","env","x","y","en","L","P","w","E","N","$","D","C","T","O","A","M","k","F","j","B","z","H","K","U","W","R","V","X","Y","I","q","S","Z","G","J","Q","ae","ce","_e","be","b","Text","Richselect","DatePicker","Multiselect","Button","setFeature","fromUtf8","isReadableStream","requestTimeout","requestTimeoutFn","readableStream","hasHeader","convertToBuffer","isEmptyData","lookupTable","normalizeProvider","collectBody","toEndpointV1","serializerMiddlewareOption","ns","internalCtorAccess","IMF_FIXDATE","RFC_850_DATE","ASC_TIME","generateIdempotencyToken","CONTENT_LENGTH_HEADER","SHA256_HEADER","UNSIGNED_PAYLOAD","Int64","UUID_PATTERN","HEADER_VALUE_TYPE","negate","defaultErrorHandler","defaultSuccessHandler","validateArn","group","partitionsInfo","__ServiceException","__BaseException","$Command","Sha1","WebCryptoSha1","Sha256","INIT","WebCryptoSha256","JsSha256","EventStreamMarshaller","UniversalEventStreamMarshaller","getRuntimeConfig","getSharedRuntimeConfig","packageInfo","RequestHandler","streamHasher","__Client","__getRuntimeConfig"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,541,542,543,544,545,546,547,548,555,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,667,669,671,672,673,674,675,676,677,678,679,680,682,683,684,687,689,690,708,720,721,722,755,756,788,789,848,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1315],"sources":["../../node_modules/svelte/src/internal/disclose-version.js","../../node_modules/svelte/src/internal/flags/index.js","../../node_modules/svelte/src/internal/flags/legacy.js","../../node_modules/svelte/src/constants.js","../../node_modules/esm-env/dev-fallback.js","../../node_modules/svelte/src/internal/shared/utils.js","../../node_modules/svelte/src/internal/client/constants.js","../../node_modules/svelte/src/internal/shared/errors.js","../../node_modules/svelte/src/internal/client/errors.js","../../node_modules/svelte/src/internal/client/warnings.js","../../node_modules/svelte/src/internal/client/dom/hydration.js","../../node_modules/svelte/src/internal/client/reactivity/equality.js","../../node_modules/svelte/src/internal/client/dev/tracing.js","../../node_modules/svelte/src/internal/shared/dev.js","../../node_modules/svelte/src/internal/client/context.js","../../node_modules/svelte/src/internal/client/dom/task.js","../../node_modules/svelte/src/internal/client/error-handling.js","../../node_modules/svelte/src/internal/client/reactivity/status.js","../../node_modules/svelte/src/internal/client/reactivity/utils.js","../../node_modules/svelte/src/store/utils.js","../../node_modules/svelte/src/store/shared/index.js","../../node_modules/svelte/src/internal/client/reactivity/store.js","../../node_modules/svelte/src/internal/client/reactivity/batch.js","../../node_modules/svelte/src/reactivity/create-subscriber.js","../../node_modules/svelte/src/internal/client/dom/blocks/boundary.js","../../node_modules/svelte/src/internal/client/reactivity/async.js","../../node_modules/svelte/src/internal/client/reactivity/deriveds.js","../../node_modules/svelte/src/internal/client/reactivity/sources.js","../../node_modules/svelte/src/internal/client/proxy.js","../../node_modules/svelte/src/internal/client/dev/equality.js","../../node_modules/svelte/src/internal/client/dom/operations.js","../../node_modules/svelte/src/internal/client/dom/elements/misc.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js","../../node_modules/svelte/src/internal/client/reactivity/effects.js","../../node_modules/svelte/src/internal/client/legacy.js","../../node_modules/svelte/src/internal/client/runtime.js","../../node_modules/svelte/src/internal/client/dom/elements/events.js","../../node_modules/svelte/src/internal/client/dom/reconciler.js","../../node_modules/svelte/src/internal/client/dom/template.js","../../node_modules/svelte/src/utils.js","../../node_modules/svelte/src/internal/client/render.js","../../node_modules/svelte/src/internal/client/dom/blocks/branches.js","../../node_modules/svelte/src/internal/client/dom/blocks/snippet.js","../../node_modules/svelte/src/index-client.js","../../node_modules/svelte/src/internal/client/dom/blocks/await.js","../../node_modules/svelte/src/internal/client/dom/blocks/if.js","../../node_modules/svelte/src/internal/client/dom/blocks/key.js","../../node_modules/svelte/src/internal/client/dom/blocks/each.js","../../node_modules/svelte/src/internal/client/dom/blocks/html.js","../../node_modules/svelte/src/internal/client/dom/blocks/slot.js","../../node_modules/svelte/src/internal/client/dom/blocks/svelte-component.js","../../node_modules/svelte/src/internal/client/timing.js","../../node_modules/svelte/src/internal/client/loop.js","../../node_modules/svelte/src/internal/client/dom/elements/transitions.js","../../node_modules/svelte/src/internal/client/dom/blocks/svelte-element.js","../../node_modules/svelte/src/internal/client/dom/blocks/svelte-head.js","../../node_modules/svelte/src/internal/client/dom/elements/actions.js","../../node_modules/svelte/src/internal/client/dom/elements/attachments.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/svelte/src/internal/shared/attributes.js","../../node_modules/svelte/src/internal/client/dom/elements/class.js","../../node_modules/svelte/src/internal/client/dom/elements/style.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/select.js","../../node_modules/svelte/src/internal/client/dom/elements/attributes.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/input.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/props.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/size.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/this.js","../../node_modules/svelte/src/internal/client/dom/elements/bindings/universal.js","../../node_modules/svelte/src/internal/client/dom/legacy/event-modifiers.js","../../node_modules/svelte/src/internal/client/dom/legacy/lifecycle.js","../../node_modules/svelte/src/internal/client/dom/legacy/misc.js","../../node_modules/svelte/src/internal/client/reactivity/props.js","../../node_modules/svelte/src/store/index-client.js","../../node_modules/@kontextwerk/web-sdk/core/routing/navigation.ts","../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../node_modules/@kontextwerk/web-sdk/core/overlay/globalStores.ts","../../node_modules/@kontextwerk/web-sdk/core/security/importantActionReauth.ts","../../node_modules/@mdi/js/mdi.js","../../node_modules/@kontextwerk/web-sdk/ui/primitives/_modules/icon/Icon.svelte","../../node_modules/@kontextwerk/web-sdk/core/security/html.ts","../../node_modules/@kontextwerk/web-sdk/ui/security/_modules/safe-html/SafeHtml.svelte","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/@kontextwerk/web-sdk/core/overlay/tooltip.ts","../../node_modules/@kontextwerk/web-sdk/ui/overlay/_modules/popover/Popover.svelte","../../node_modules/@kontextwerk/web-sdk/ui/actions/_modules/cta/CTA.svelte","../../node_modules/@kontextwerk/web-sdk/ui/actions/_modules/toggle-cta/_logic/toggleSvgPresets.ts","../../node_modules/@kontextwerk/web-sdk/ui/actions/_modules/toggle-cta/_logic/toggleIconPresets.ts","../../node_modules/@kontextwerk/web-sdk/ui/actions/_modules/toggle-cta/ToggleCTA.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/date-input/_modules/date-input-trigger/DateInputTrigger.svelte","../../node_modules/@kontextwerk/web-sdk/core/overlay/notifications.ts","../../node_modules/@kontextwerk/web-sdk/core/forms/formValidation.ts","../../node_modules/@kontextwerk/web-sdk/core/forms/tagBasedInputHelper.ts","../../node_modules/flatpickr/dist/esm/types/options.js","../../node_modules/flatpickr/dist/esm/l10n/default.js","../../node_modules/flatpickr/dist/esm/utils/index.js","../../node_modules/flatpickr/dist/esm/utils/dom.js","../../node_modules/flatpickr/dist/esm/utils/formatting.js","../../node_modules/flatpickr/dist/esm/utils/dates.js","../../node_modules/flatpickr/dist/esm/utils/polyfills.js","../../node_modules/flatpickr/dist/esm/index.js","../../node_modules/flatpickr/dist/l10n/de.js","../../node_modules/flatpickr/dist/plugins/monthSelect/index.js","../../node_modules/@kontextwerk/web-sdk/core/forms/dateInput/utils.ts","../../node_modules/@kontextwerk/web-sdk/core/forms/dateInput/flatpickrAction.ts","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/date-input/DateInput.svelte","../../node_modules/svelte-floating-ui/dist/index.js","../../node_modules/svelte-select/filter.js","../../node_modules/svelte-select/get-items.js","../../node_modules/svelte-select/ChevronIcon.svelte","../../node_modules/svelte-select/ClearIcon.svelte","../../node_modules/svelte-select/LoadingIcon.svelte","../../node_modules/svelte-select/Select.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/select-input/_shared/_logic/select-options/logic.ts","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/select-input/_shared/_logic/select-options/portal.ts","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/select-input/_modules/checkbox-multi-select/CheckboxMultiSelect.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/select-input/SelectInput.svelte","../../node_modules/@kontextwerk/web-sdk/core/help/helpDialogs.ts","../../node_modules/@kontextwerk/web-sdk/ui/typography/_modules/section-title/SectionTitle.svelte","../../node_modules/@kontextwerk/web-sdk/ui/overlay/_modules/modal-dialog/ModalDialog.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_shared/_logic/tag-options/tag-options.ts","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/tag-picker-modal/TagPickerModal.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/tag-based-input-editor/TagBasedInputEditor.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/tag-picker-trigger/TagPickerTrigger.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/tag-based-input/TagBasedInput.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/input/Input.svelte","../../node_modules/@kontextwerk/web-sdk/ui/security/_modules/important-action-reauth-overlay/ImportantActionReauthOverlay.svelte","../../node_modules/@kontextwerk/web-sdk/ui/security/_modules/important-action-reauth-overlay/contract.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/page-template/_logic/navigation-preference.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/page-title/PageTitle.svelte","../../node_modules/@kontextwerk/web-sdk/ui/_shared/_modules/page-tabs/PageTabs.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/page-navigation/PageNavigation.svelte","../../node_modules/@kontextwerk/web-sdk/ui/primitives/_modules/top-right-crinkle/TopRightCrinkle.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/crinkled-section/CrinkledSection.svelte","../../node_modules/@kontextwerk/web-sdk/core/runtime/fullscreen.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/fullscreen-toggle/FullscreenToggle.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/app-context-layout/AppContextLayout.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/record-detail-layout/RecordDetailLayout.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/record-detail-header/RecordDetailHeader.svelte","../../node_modules/@kontextwerk/web-sdk/core/navigation/appFrame.ts","../../node_modules/@kontextwerk/web-sdk/core/navigation/adminMenu.ts","../../node_modules/@kontextwerk/web-sdk/core/navigation/pageNavigationStore.ts","../../node_modules/@kontextwerk/web-sdk/core/navigation/viewNavigation.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/page-template/PageTemplate.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/app-utility-navigation/AppUtilityNavigation.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/app-navigation-scope/AppNavigationScope.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/app-frame/AppFrame.svelte","../../node_modules/@kontextwerk/web-sdk/ui/display/_modules/tag/Tag.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/action-box/ActionBox.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-summary/ContextSummary.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-root/_modules/context-access-panel/ContextAccessPanel.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-root/_modules/context-login-form/ContextLoginForm.svelte","../../node_modules/@kontextwerk/web-sdk/ui/display/_modules/status-pill/StatusPill.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/progress-steps-track/_logic/progressStepPresentation.ts","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/progress-steps-track/ProgressStepsTrack.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/progress-steps-content/ProgressStepsContent.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/progress-steps/ProgressSteps.svelte","../../node_modules/jose/dist/webapi/lib/buffer_utils.js","../../node_modules/jose/dist/webapi/lib/base64.js","../../node_modules/jose/dist/webapi/util/base64url.js","../../node_modules/jose/dist/webapi/lib/crypto_key.js","../../node_modules/jose/dist/webapi/lib/invalid_key_input.js","../../node_modules/jose/dist/webapi/util/errors.js","../../node_modules/jose/dist/webapi/lib/is_key_like.js","../../node_modules/jose/dist/webapi/lib/helpers.js","../../node_modules/jose/dist/webapi/lib/type_checks.js","../../node_modules/jose/dist/webapi/lib/signing.js","../../node_modules/jose/dist/webapi/lib/jwk_to_key.js","../../node_modules/jose/dist/webapi/lib/normalize_key.js","../../node_modules/jose/dist/webapi/lib/validate_crit.js","../../node_modules/jose/dist/webapi/lib/check_key_type.js","../../node_modules/jose/dist/webapi/lib/jwt_claims_set.js","../../node_modules/jose/dist/webapi/jws/flattened/sign.js","../../node_modules/jose/dist/webapi/jws/compact/sign.js","../../node_modules/jose/dist/webapi/jwt/sign.js","../../node_modules/@kontextwerk/control-web-client/dist/index.js","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-session.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-access.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-email-verification.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-devices.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-invalidation.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-login.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-mfa.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/password-policy.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-password.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-profile.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-recovery.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/context-security.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/control-context.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authentication/browser-state.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-root/_modules/context-recovery/ContextRecovery.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/runtime-state/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/runtime-config/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/api/client/control/base-url/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/api/client/control/http-client/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/api/support-delegations/index.ts","../../node_modules/@kontextwerk/web-sdk/core/api/errors.ts","../../node_modules/@kontextwerk/web-sdk/core/assist/state.ts","../../node_modules/@kontextwerk/web-sdk/core/assist/bubble.ts","../../node_modules/@kontextwerk/web-sdk/core/assist/chatWidget.ts","../../node_modules/@kontextwerk/web-sdk/core/assist/context.ts","../../node_modules/@kontextwerk/web-sdk/core/assist/widgetLoader.ts","../../node_modules/@kurkle/color/dist/color.esm.js","../../node_modules/chart.js/dist/chunks/helpers.dataset.js","../../node_modules/chart.js/dist/chart.js","../../node_modules/chroma-js/src/utils/limit.js","../../node_modules/chroma-js/src/utils/clip_rgb.js","../../node_modules/chroma-js/src/utils/type.js","../../node_modules/chroma-js/src/utils/unpack.js","../../node_modules/chroma-js/src/utils/last.js","../../node_modules/chroma-js/src/utils/index.js","../../node_modules/chroma-js/src/io/input.js","../../node_modules/chroma-js/src/Color.js","../../node_modules/chroma-js/src/version.js","../../node_modules/chroma-js/src/chroma.js","../../node_modules/chroma-js/src/colors/w3cx11.js","../../node_modules/chroma-js/src/io/hex/hex2rgb.js","../../node_modules/chroma-js/src/io/hex/rgb2hex.js","../../node_modules/chroma-js/src/io/named/index.js","../../node_modules/chroma-js/src/ops/alpha.js","../../node_modules/chroma-js/src/ops/clipped.js","../../node_modules/chroma-js/src/io/lab/lab-constants.js","../../node_modules/chroma-js/src/io/lab/lab2rgb.js","../../node_modules/chroma-js/src/io/lab/rgb2lab.js","../../node_modules/chroma-js/src/io/lab/index.js","../../node_modules/chroma-js/src/ops/darken.js","../../node_modules/chroma-js/src/ops/get.js","../../node_modules/chroma-js/src/ops/luminance.js","../../node_modules/chroma-js/src/interpolator/index.js","../../node_modules/chroma-js/src/generator/mix.js","../../node_modules/chroma-js/src/ops/mix.js","../../node_modules/chroma-js/src/ops/premultiply.js","../../node_modules/chroma-js/src/io/lch/lch2lab.js","../../node_modules/chroma-js/src/io/lch/lch2rgb.js","../../node_modules/chroma-js/src/io/lch/hcl2rgb.js","../../node_modules/chroma-js/src/io/lch/lab2lch.js","../../node_modules/chroma-js/src/io/lch/rgb2lch.js","../../node_modules/chroma-js/src/io/lch/index.js","../../node_modules/chroma-js/src/ops/saturate.js","../../node_modules/chroma-js/src/ops/set.js","../../node_modules/chroma-js/src/ops/shade.js","../../node_modules/chroma-js/src/interpolator/rgb.js","../../node_modules/chroma-js/src/interpolator/lrgb.js","../../node_modules/chroma-js/src/interpolator/lab.js","../../node_modules/chroma-js/src/interpolator/_hsx.js","../../node_modules/chroma-js/src/interpolator/lch.js","../../node_modules/chroma-js/src/io/num/num2rgb.js","../../node_modules/chroma-js/src/io/num/rgb2num.js","../../node_modules/chroma-js/src/io/num/index.js","../../node_modules/chroma-js/src/interpolator/num.js","../../node_modules/chroma-js/src/io/hcg/hcg2rgb.js","../../node_modules/chroma-js/src/io/hcg/rgb2hcg.js","../../node_modules/chroma-js/src/io/hcg/index.js","../../node_modules/chroma-js/src/interpolator/hcg.js","../../node_modules/chroma-js/src/io/hsi/hsi2rgb.js","../../node_modules/chroma-js/src/io/hsi/rgb2hsi.js","../../node_modules/chroma-js/src/io/hsi/index.js","../../node_modules/chroma-js/src/interpolator/hsi.js","../../node_modules/chroma-js/src/io/hsl/hsl2rgb.js","../../node_modules/chroma-js/src/io/hsl/rgb2hsl.js","../../node_modules/chroma-js/src/io/hsl/index.js","../../node_modules/chroma-js/src/interpolator/hsl.js","../../node_modules/chroma-js/src/io/hsv/hsv2rgb.js","../../node_modules/chroma-js/src/io/hsv/rgb2hsv.js","../../node_modules/chroma-js/src/io/hsv/index.js","../../node_modules/chroma-js/src/interpolator/hsv.js","../../node_modules/chroma-js/src/utils/multiply-matrices.js","../../node_modules/chroma-js/src/io/oklab/oklab2rgb.js","../../node_modules/chroma-js/src/io/oklab/rgb2oklab.js","../../node_modules/chroma-js/src/io/oklab/index.js","../../node_modules/chroma-js/src/interpolator/oklab.js","../../node_modules/chroma-js/src/interpolator/oklch.js","../../node_modules/chroma-js/src/generator/average.js","../../node_modules/chroma-js/src/generator/scale.js","../../node_modules/chroma-js/src/generator/bezier.js","../../node_modules/chroma-js/src/io/rgb/index.js","../../node_modules/chroma-js/src/generator/blend.js","../../node_modules/chroma-js/src/generator/cubehelix.js","../../node_modules/chroma-js/src/generator/random.js","../../node_modules/chroma-js/src/utils/analyze.js","../../node_modules/chroma-js/src/utils/contrast.js","../../node_modules/chroma-js/src/utils/contrastAPCA.js","../../node_modules/chroma-js/src/utils/delta-e.js","../../node_modules/chroma-js/src/utils/distance.js","../../node_modules/chroma-js/src/utils/valid.js","../../node_modules/chroma-js/src/utils/scales.js","../../node_modules/chroma-js/src/colors/colorbrewer.js","../../node_modules/chroma-js/src/io/cmyk/cmyk2rgb.js","../../node_modules/chroma-js/src/io/cmyk/rgb2cmyk.js","../../node_modules/chroma-js/src/io/cmyk/index.js","../../node_modules/chroma-js/src/io/css/hsl2css.js","../../node_modules/chroma-js/src/io/css/lab2css.js","../../node_modules/chroma-js/src/io/css/lch2css.js","../../node_modules/chroma-js/src/io/css/oklab2css.js","../../node_modules/chroma-js/src/io/oklch/rgb2oklch.js","../../node_modules/chroma-js/src/io/css/oklch2css.js","../../node_modules/chroma-js/src/io/css/rgb2css.js","../../node_modules/chroma-js/src/io/oklch/oklch2rgb.js","../../node_modules/chroma-js/src/io/css/css2rgb.js","../../node_modules/chroma-js/src/io/css/index.js","../../node_modules/chroma-js/src/io/gl/index.js","../../node_modules/chroma-js/src/io/hex/index.js","../../node_modules/chroma-js/src/io/temp/temperature2rgb.js","../../node_modules/chroma-js/src/io/temp/rgb2temperature.js","../../node_modules/chroma-js/src/io/temp/index.js","../../node_modules/chroma-js/src/io/oklch/index.js","../../node_modules/chroma-js/index.js","../../node_modules/chartjs-chart-funnel/build/index.js","../../node_modules/@sgratzl/boxplots/build/index.js","../../node_modules/@sgratzl/chartjs-chart-boxplot/build/index.js","../../node_modules/@kontextwerk/web-sdk/core/charts/registerChartJs.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/cssVar.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/color.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/theme/resolveTheme.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/presets/base.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/presets/line.ts","../../node_modules/@kontextwerk/web-sdk/core/charts/trendChartCard.ts","../../node_modules/@kontextwerk/web-sdk/core/display/status.ts","../../node_modules/@kontextwerk/web-sdk/core/layout/table.ts","../../node_modules/@kontextwerk/web-sdk/core/layout/tableSort.ts","../../node_modules/@kontextwerk/web-sdk/core/layout/tableView.helper.ts","../../node_modules/@sentry/core/build/esm/debug-build.js","../../node_modules/@sentry/core/build/esm/utils/worldwide.js","../../node_modules/@sentry/core/build/esm/utils/version.js","../../node_modules/@sentry/core/build/esm/carrier.js","../../node_modules/@sentry/core/build/esm/utils/debug-logger.js","../../node_modules/@sentry/core/build/esm/utils/stacktrace.js","../../node_modules/@sentry/core/build/esm/instrument/handlers.js","../../node_modules/@sentry/core/build/esm/instrument/globalError.js","../../node_modules/@sentry/core/build/esm/instrument/globalUnhandledRejection.js","../../node_modules/@sentry/core/build/esm/utils/is.js","../../node_modules/@sentry/core/build/esm/utils/object.js","../../node_modules/@sentry/core/build/esm/utils/randomSafeContext.js","../../node_modules/@sentry/core/build/esm/utils/normalizationHints.js","../../node_modules/@sentry/core/build/esm/utils/normalize.js","../../node_modules/@sentry/core/build/esm/utils/string.js","../../node_modules/@sentry/core/build/esm/utils/misc.js","../../node_modules/@sentry/core/build/esm/utils/time.js","../../node_modules/@sentry/core/build/esm/session.js","../../node_modules/@sentry/core/build/esm/utils/merge.js","../../node_modules/@sentry/core/build/esm/utils/propagationContext.js","../../node_modules/@sentry/core/build/esm/utils/weakRef.js","../../node_modules/@sentry/core/build/esm/utils/spanOnScope.js","../../node_modules/@sentry/core/build/esm/scope.js","../../node_modules/@sentry/core/build/esm/defaultScopes.js","../../node_modules/@sentry/core/build/esm/utils/chain-and-copy-promiselike.js","../../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","../../node_modules/@sentry/core/build/esm/asyncContext/index.js","../../node_modules/@sentry/core/build/esm/attributes.js","../../node_modules/@sentry/core/build/esm/currentScopes.js","../../node_modules/@sentry/core/build/esm/semanticAttributes.js","../../node_modules/@sentry/core/build/esm/tracing/spanstatus.js","../../node_modules/@sentry/core/build/esm/tracing/utils.js","../../node_modules/@sentry/core/build/esm/utils/baggage.js","../../node_modules/@sentry/core/build/esm/utils/dsn.js","../../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","../../node_modules/@sentry/core/build/esm/utils/tracing.js","../../node_modules/@sentry/core/build/esm/utils/spanUtils.js","../../node_modules/@sentry/core/build/esm/tracing/errors.js","../../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js","../../node_modules/@sentry/core/build/esm/utils/should-ignore-span.js","../../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","../../node_modules/@sentry/core/build/esm/constants.js","../../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","../../node_modules/@sentry/core/build/esm/tracing/spans/beforeSendSpan.js","../../node_modules/@sentry/core/build/esm/utils/envelope.js","../../node_modules/@sentry/core/build/esm/envelope.js","../../node_modules/@sentry/core/build/esm/tracing/logSpans.js","../../node_modules/@sentry/core/build/esm/tracing/measurement.js","../../node_modules/@sentry/core/build/esm/tracing/segmentSpanCaptureStrategy.js","../../node_modules/@sentry/core/build/esm/tracing/spans/hasSpanStreamingEnabled.js","../../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","../../node_modules/@sentry/core/build/esm/tracing/sampling.js","../../node_modules/@sentry/core/build/esm/tracing/trace.js","../../node_modules/@sentry/core/build/esm/tracing/idleSpan.js","../../node_modules/@sentry/core/build/esm/utils/debounce.js","../../node_modules/@sentry/core/build/esm/utils/scopeData.js","../../node_modules/@sentry/conventions/dist/attributes.mjs","../../node_modules/@sentry/core/build/esm/tracing/spans/captureSpan.js","../../node_modules/@sentry/core/build/esm/utils/syncpromise.js","../../node_modules/@sentry/core/build/esm/eventProcessors.js","../../node_modules/@sentry/core/build/esm/utils/debug-ids.js","../../node_modules/@sentry/core/build/esm/utils/prepareEvent.js","../../node_modules/@sentry/core/build/esm/exports.js","../../node_modules/@sentry/core/build/esm/utils/timer.js","../../node_modules/@sentry/core/build/esm/api.js","../../node_modules/@sentry/core/build/esm/integration.js","../../node_modules/@sentry/core/build/esm/utils/env.js","../../node_modules/@sentry/core/build/esm/utils/node.js","../../node_modules/@sentry/core/build/esm/utils/isBrowser.js","../../node_modules/@sentry/core/build/esm/logs/envelope.js","../../node_modules/@sentry/core/build/esm/logs/internal.js","../../node_modules/@sentry/core/build/esm/metrics/envelope.js","../../node_modules/@sentry/core/build/esm/metrics/internal.js","../../node_modules/@sentry/core/build/esm/tracing/spans/spanJsonToStreamedSpan.js","../../node_modules/@sentry/core/build/esm/tracing/spans/extractGenAiSpans.js","../../node_modules/@sentry/core/build/esm/utils/promisebuffer.js","../../node_modules/@sentry/core/build/esm/utils/ratelimit.js","../../node_modules/@sentry/core/build/esm/transports/base.js","../../node_modules/@sentry/core/build/esm/utils/clientreport.js","../../node_modules/@sentry/core/build/esm/utils/eventUtils.js","../../node_modules/@sentry/core/build/esm/utils/transactionEvent.js","../../node_modules/@sentry/core/build/esm/utils/data-collection/filtering-snippets.js","../../node_modules/@sentry/core/build/esm/utils/data-collection/defaultPiiToCollectionOptions.js","../../node_modules/@sentry/core/build/esm/utils/data-collection/resolveDataCollectionOptions.js","../../node_modules/@sentry/core/build/esm/client.js","../../node_modules/@sentry/core/build/esm/sdk.js","../../node_modules/@sentry/core/build/esm/utils/data-collection/filterKeyValueData.js","../../node_modules/@sentry/core/build/esm/utils/cookie.js","../../node_modules/@sentry/core/build/esm/utils/data-collection/filterCookies.js","../../node_modules/@sentry/core/build/esm/utils/url.js","../../node_modules/@sentry/core/build/esm/utils/isSentryRequestUrl.js","../../node_modules/@sentry/core/build/esm/utils/ipAddress.js","../../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","../../node_modules/@sentry/core/build/esm/utils/traceData.js","../../node_modules/@sentry/core/build/esm/breadcrumbs.js","../../node_modules/@sentry/core/build/esm/integrations/functiontostring.js","../../node_modules/@sentry/core/build/esm/integrations/eventFilters.js","../../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js","../../node_modules/@sentry/core/build/esm/utils/eventbuilder.js","../../node_modules/@sentry/core/build/esm/instrument/console.js","../../node_modules/@sentry/core/build/esm/utils/severity.js","../../node_modules/@sentry/core/build/esm/integrations/dedupe.js","../../node_modules/@sentry/core/build/esm/integrations/conversationId.js","../../node_modules/@sentry/core/build/esm/fetch.js","../../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js","../../node_modules/@sentry/core/build/esm/utils/supports.js","../../node_modules/@sentry/core/build/esm/instrument/fetch.js","../../node_modules/@sentry/core/build/esm/utils/browser.js","../../node_modules/@sentry/browser/build/npm/esm/prod/helpers.js","../../node_modules/@sentry/browser/build/npm/esm/prod/eventbuilder.js","../../node_modules/@sentry/browser/build/npm/esm/prod/client.js","../../node_modules/@sentry/browser-utils/build/esm/debug-build.js","../../node_modules/@sentry/browser-utils/build/esm/types.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/globalListeners.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/initUnique.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/LayoutShiftManager.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/onFCP.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/getCLS.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/InteractionManager.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/whenIdleOrHidden.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/getINP.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/LCPEntryManager.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/getLCP.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/instrument.js","../../node_modules/@sentry/browser-utils/build/esm/htmlTreeAsString.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/utils.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/cls.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/lcp.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/resourceTiming.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/browserMetrics.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/inp.js","../../node_modules/@sentry/browser-utils/build/esm/metrics/webVitalSpans.js","../../node_modules/@sentry/browser-utils/build/esm/instrument/dom.js","../../node_modules/@sentry/browser-utils/build/esm/instrument/history.js","../../node_modules/@sentry/browser-utils/build/esm/getNativeImplementation.js","../../node_modules/@sentry/browser-utils/build/esm/instrument/xhr.js","../../node_modules/@sentry/browser-utils/build/esm/networkUtils.js","../../node_modules/@sentry/browser-utils/build/esm/is.js","../../node_modules/@sentry/browser/build/npm/esm/prod/transports/fetch.js","../../node_modules/@sentry/browser/build/npm/esm/prod/debug-build.js","../../node_modules/@sentry/browser/build/npm/esm/prod/stack-parsers.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/breadcrumbs.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/browserapierrors.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/browsersession.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/culturecontext.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/globalhandlers.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/httpcontext.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/linkederrors.js","../../node_modules/@sentry/browser/build/npm/esm/prod/normalizeStringifyValue.js","../../node_modules/@sentry/browser/build/npm/esm/prod/utils/detectBrowserExtension.js","../../node_modules/@sentry/browser/build/npm/esm/prod/sdk.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/httpclient.js","../../node_modules/@sentry/replay/build/npm/esm/index.js","../../node_modules/@sentry/browser/build/npm/esm/prod/tracing/utils.js","../../node_modules/@sentry/browser/build/npm/esm/prod/tracing/request.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/fetchStreamPerformance.js","../../node_modules/@sentry/browser/build/npm/esm/prod/integrations/webVitals.js","../../node_modules/@sentry/browser/build/npm/esm/prod/tracing/backgroundtab.js","../../node_modules/@sentry/browser/build/npm/esm/prod/tracing/linkedTraces.js","../../node_modules/@sentry/browser/build/npm/esm/prod/tracing/browserTracingIntegration.js","../../node_modules/@sentry/svelte/build/esm/sdk.js","../../node_modules/@kontextwerk/web-sdk/core/observability/sentry.ts","../../node_modules/@kontextwerk/web-sdk/core/overlay/approvals.ts","../../node_modules/@kontextwerk/web-sdk/core/overlay/apiErrorNotifications.ts","../../node_modules/@kontextwerk/web-sdk/core/platform/clipboard.ts","../../node_modules/@kontextwerk/web-sdk/core/routing/projectNavigation.ts","../../node_modules/@kontextwerk/web-sdk/core/routing/projectPaths.ts","../../node_modules/@kontextwerk/web-sdk/core/runtime/bannerStore.ts","../../node_modules/@kontextwerk/web-sdk/core/runtime/bootstrap.ts","../../node_modules/@kontextwerk/web-sdk/core/runtime/invalidation.ts","../../node_modules/@kontextwerk/web-sdk/core/runtime/liveState.ts","../../node_modules/@kontextwerk/web-sdk/core/runtime/statusCenter.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/navigation/overlays.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/navigation/project.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/navigation/frame/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/icon/Icon.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/support-context-banner/SupportContextBanner.svelte","../../node_modules/@kontextwerk/control-web-frame/src/api/context-access/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/api/invitation-registration/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/_logic/invitation-acceptance.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/_logic/invitation-registration.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/invitation-entry.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/broadcast.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authorization/capabilities.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authorization/catalog.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/authorization/permissions.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/identity-administration/metadata.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/identity-administration/controller.ts","../../node_modules/@kontextwerk/control-web-frame/src/api/identity-administration/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/internal-assist/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/frame-state/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/frame-presentation/footer/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/frame-presentation/branding/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/_logic/clear-context.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/context-runtime/index.ts","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-root/ContextRoot.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-auth-form/ContextAuthForm.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/protected-context-root/_modules/invitation-access/_modules/invitation-registration/InvitationRegistration.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/protected-context-root/_modules/invitation-access/InvitationAccess.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-email-verification/ContextEmailVerification.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/protected-context-root/_modules/pending-invitation/PendingInvitation.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/context-password-change/ContextPasswordChange.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/protected-context-root/ProtectedRoot.svelte","../src/routes/_shared/_logic/runtime-config/runtime-config.ts","../src/routes/_shared/_logic/control-api/control-api.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/control-banner/ControlBanner.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/control-app-header/ControlAppHeader.svelte","../../node_modules/@kontextwerk/web-sdk/ui/display/_modules/user-profile-bubble/UserProfileBubble.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/admin-active-app-card/AdminActiveAppCard.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/admin-primary-navigation/AdminPrimaryNavigation.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/admin-nav-list/AdminNavList.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/admin-burger-menu-overlay-content/AdminBurgerMenuOverlayContent.svelte","../../node_modules/@kontextwerk/web-sdk/ui/navigation/_modules/admin-burger-menu/AdminBurgerMenu.svelte","../src/routes/_shared/_logic/organization/organization.ts","../src/routes/_shared/_logic/organizations/organizations.ts","../src/routes/Root/_shared/_modules/header/_modules/header-actions/HeaderActions.svelte","../src/routes/_shared/_logic/organization-navigation/organization-navigation.ts","../src/routes/Root/_shared/_modules/logo-header/LogoHeader.svelte","../src/routes/Root/_shared/_modules/header/Header.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/app-footer/AppFooter.svelte","../src/routes/Root/_shared/_logic/branding/branding.ts","../../node_modules/@kontextwerk/web-sdk/ui/display/_modules/status-tag/StatusTag.svelte","../../node_modules/@kontextwerk/web-sdk/ui/forms/_modules/status-filter/StatusFilter.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_logic/filter-state/filterState.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-filters/TableFilters.svelte","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/now.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/debounce.js","../../node_modules/lodash-es/throttle.js","../../node_modules/simplebar-core/dist/index.mjs","../../node_modules/simplebar/dist/index.mjs","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-view/_modules/column-scroll-buttons/ColumnScrollButtons.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_modules/table-menu/TableMenu.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_modules/table-row-actions/_modules/table-row-controls/TableRowControls.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_logic/row-actions/rowActions.ts","../../node_modules/svelte/src/reactivity/map.js","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_logic/action-state/actionState.svelte.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_modules/table-row-actions/TableRowActions.svelte","../../node_modules/@tanstack/table-core/dist/utils.js","../../node_modules/@tanstack/table-core/dist/core/cells/coreCellsFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/cells/coreCellsFeature.js","../../node_modules/@tanstack/table-core/dist/core/headers/constructHeader.js","../../node_modules/@tanstack/table-core/dist/features/column-pinning/columnPinningFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/column-visibility/columnVisibilityFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/headers/buildHeaderGroups.js","../../node_modules/@tanstack/table-core/dist/core/columns/constructColumn.js","../../node_modules/@tanstack/table-core/dist/features/column-ordering/columnOrderingFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/columns/coreColumnsFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/columns/coreColumnsFeature.js","../../node_modules/@tanstack/table-core/dist/core/headers/coreHeadersFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/headers/coreHeadersFeature.js","../../node_modules/@tanstack/table-core/dist/core/rows/constructRow.js","../../node_modules/@tanstack/table-core/dist/features/row-sorting/sortFns.js","../../node_modules/@tanstack/table-core/dist/features/cell-selection/cellSelectionFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/row-expanding/rowExpandingFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/row-pagination/rowPaginationFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/row-sorting/rowSortingFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/row-models/createCoreRowModel.js","../../node_modules/@tanstack/table-core/dist/core/row-models/coreRowModelsFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/row-models/coreRowModelsFeature.js","../../node_modules/@tanstack/table-core/dist/core/cells/constructCell.js","../../node_modules/@tanstack/table-core/dist/core/rows/coreRowsFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/rows/coreRowsFeature.js","../../node_modules/@tanstack/table-core/dist/core/table/coreTablesFeature.utils.js","../../node_modules/@tanstack/table-core/dist/core/coreFeatures.js","../../node_modules/@tanstack/table-core/dist/core/table/coreTablesFeature.js","../../node_modules/@tanstack/table-core/dist/helpers/tableFeatures.js","../../node_modules/@tanstack/table-core/dist/core/reactivity/coreReactivityFeature.utils.js","../../node_modules/@tanstack/store/dist/alien.js","../../node_modules/@tanstack/store/dist/atom.js","../../node_modules/@tanstack/store/dist/shallow.js","../../node_modules/@tanstack/table-core/dist/core/table/constructTable.js","../../node_modules/@tanstack/table-core/dist/features/column-pinning/columnPinningFeature.js","../../node_modules/@tanstack/table-core/dist/features/column-sizing/columnSizingFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/column-sizing/columnSizingFeature.js","../../node_modules/@tanstack/table-core/dist/features/column-visibility/columnVisibilityFeature.js","../../node_modules/@tanstack/table-core/dist/features/row-selection/rowSelectionFeature.utils.js","../../node_modules/@tanstack/table-core/dist/features/row-selection/rowSelectionFeature.js","../../node_modules/@tanstack/table-core/dist/features/row-sorting/rowSortingFeature.js","../../node_modules/@tanstack/svelte-table/dist/merge-objects.js","../../node_modules/@tanstack/svelte-table/dist/reactivity.svelte.js","../../node_modules/@tanstack/svelte-table/dist/createTable.svelte.js","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-view/_logic/engine.svelte.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-view/_logic/columnLayout.ts","../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../node_modules/@tanstack/svelte-virtual/dist/index.js","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_shared/_logic/virtual-rows/virtualRows.svelte.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-view/_logic/renderedColumnSizing.ts","../../node_modules/@kontextwerk/web-sdk/ui/overlay/_modules/tooltip/tooltip-action.ts","../../node_modules/svelte-loading-spinners/Circle.svelte","../../node_modules/svelte-loading-spinners/utils.js","../../node_modules/svelte-loading-spinners/BarLoader.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/table-view/TableView.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_modules/card-view/CardView.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_logic/fetchState.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_logic/urlState.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/_logic/viewToggleOptions.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/table/Table.svelte","../src/routes/_shared/_logic/index-api-transport/index-api-transport.ts","../src/routes/_shared/_logic/sync-jobs/syncJobs.ts","../src/routes/_shared/_logic/storage/storage.ts","../src/routes/_shared/_modules/scope-selection-row/ScopeSelectionRow.svelte","../src/routes/_shared/_logic/scope-selection/scopeSelection.ts","../src/routes/_shared/_modules/file-collection-overlay/FileCollectionOverlay.svelte","../src/routes/confirmed-destructive-action/destructiveActions.ts","../src/routes/_shared/_logic/rich-tooltips/richTooltips.ts","../src/routes/_shared/_logic/index-action-tooltips/indexActionTooltips.ts","../src/routes/_shared/_modules/file-collection-table/_logic/FileCollectionRowActions.actions.ts","../src/routes/_shared/_modules/file-table-tag/FileTableTag.svelte","../src/routes/_shared/_modules/file-collection-table/_shared/_modules/file-collection-name-cell/FileCollectionNameCell.svelte","../src/routes/_shared/_modules/file-collection-table/_modules/file-collection-table-cell/FileCollectionTableCell.svelte","../src/routes/_shared/_logic/sync-coverage/syncCoverage.ts","../src/routes/_shared/_modules/file-collection-table/_logic/tags.ts","../src/routes/_shared/_modules/file-collection-table/_logic/tableModel.ts","../src/routes/_shared/_modules/file-collection-table/FileCollectionTable.svelte","../src/routes/_shared/_modules/data-basis-panel/DataBasisPanel.svelte","../src/routes/Root/_logic/routing.ts","../src/routes/Root/_shared/_modules/root-shell/RootShell.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/app-subview/AppSubview.svelte","../src/routes/Root/_modules/workspace-content/WorkspaceContent.svelte","../../node_modules/@kontextwerk/web-sdk/theme/_modules/set-cookie-consent/SetCookieConsent.svelte","../../SetStyling.svelte","../../node_modules/@kontextwerk/web-sdk/ui/help/_modules/help-dialog/_modules/help-topics/HelpTopics.svelte","../../node_modules/@kontextwerk/web-sdk/ui/help/_modules/help-dialog/HelpDialog.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/sidebar-panel/_logic/contain-focus.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/sidebar-panel/SidebarPanel.svelte","../../node_modules/@kontextwerk/web-sdk/ui/overlay/_modules/approvals/Approvals.svelte","../../node_modules/@kontextwerk/web-sdk/ui/overlay/_modules/notifications/Notifications.svelte","../../node_modules/@kontextwerk/web-sdk/ui/runtime/_modules/support-mounts/SupportMounts.svelte","../../node_modules/@kontextwerk/web-sdk/ui/observability/_modules/set-sentry/SetSentry.svelte","../../node_modules/@kontextwerk/web-sdk/ui/assist/_modules/assist-widget-mount/AssistWidgetMount.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/internal-assist-mount/InternalAssistMount.svelte","../src/routes/Root/_modules/root-support-mounts/RootSupportMounts.svelte","../../node_modules/@kontextwerk/web-sdk/ui/runtime/_modules/default-home-page/DefaultHomePage.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/card/Card.svelte","../../node_modules/@kontextwerk/web-sdk/ui/runtime/_modules/access-denied-page/AccessDeniedPage.svelte","../src/routes/OrgaView/_shared/_logic/analytics/analytics.ts","../src/routes/OrgaView/_shared/_logic/organization-analytics/organizationAnalytics.ts","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/homepage/Homepage.svelte","../src/routes/OrgaView/pages/Home/retrieval-api/retrieval.ts","../../node_modules/@kontextwerk/web-sdk/ui/charts/_modules/chart-canvas/ChartCanvas.svelte","../../node_modules/@kontextwerk/web-sdk/ui/charts/_modules/trend-chart-card/TrendChartCard.svelte","../src/routes/OrgaView/pages/Home/HomePage.svelte","../src/routes/_shared/_logic/metrics-utils/metricsUtils.ts","../src/routes/_shared/_logic/chunks/chunks.ts","../src/routes/OrgaView/_shared/_logic/scraping/scraping.ts","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_logic/sourceRows.ts","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_shared/_logic/presentation/presentation.ts","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_logic/tableModel.ts","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_modules/source-cell/SourceCell.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_modules/index-content-cell/IndexContentCell.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_modules/processing-cell/ProcessingCell.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_modules/activity-cell/ActivityCell.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/_logic/InternalSourceRowActions.actions.ts","../src/routes/OrgaView/pages/Datasources/tabs/Internal/_modules/internal-sources-section/InternalSourcesSection.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Internal/InternalTab.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Targets/_modules/target-sources-section/TargetSourcesSection.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Targets/TargetsTab.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Cleanup/_shared/_logic/maintenance/maintenance.ts","../../node_modules/@kontextwerk/web-sdk/ui/display/_modules/info-row/InfoRow.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Cleanup/_modules/duplicate-cleanup-panel/_logic/presentation.ts","../src/routes/OrgaView/pages/Datasources/tabs/Cleanup/_modules/duplicate-cleanup-panel/DuplicateCleanupPanel.svelte","../src/routes/OrgaView/pages/Datasources/tabs/Cleanup/CleanupTab.svelte","../src/routes/OrgaView/pages/Datasources/DatasourcesPage.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/_logic/DomainRowActions.actions.ts","../src/routes/OrgaView/_shared/_modules/scraping-table-tag/ScrapingTableTag.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/_modules/domain-table-cell/_modules/domain-website-cell/DomainWebsiteCell.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/_modules/domain-table-cell/DomainTableCell.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/_logic/tags.ts","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/_logic/tableModel.ts","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-list/DomainList.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/card-wrapper/CardWrapper.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/loading-wrapper/LoadingWrapper.svelte","../../node_modules/@kontextwerk/web-sdk/ui/layout/_modules/form-wrapper/FormWrapper.svelte","../src/routes/OrgaView/_shared/_logic/interval-options/intervalOptions.ts","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-form/_logic/rules.ts","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/_modules/domain-form/DomainForm.svelte","../src/routes/_shared/_modules/indexed-document-inspector-overlay/_shared/_logic/indexed-documents/indexedDocuments.ts","../src/routes/_shared/_modules/indexed-document-inspector-overlay/_modules/chunk-list-overlay/ChunkListOverlay.svelte","../src/routes/_shared/_modules/indexed-document-inspector-overlay/_modules/indexed-document-document-overlay/IndexedDocumentDocumentOverlay.svelte","../src/routes/_shared/_modules/indexed-document-inspector-overlay/IndexedDocumentInspectorOverlay.svelte","../src/routes/_shared/_modules/indexed-document-inspector-overlay/openIndexedDocumentInspector.ts","../src/routes/_shared/_modules/live-state-connector-mount/LiveStateConnectorMount.svelte","../src/routes/_shared/_modules/polling-interval/PollingInterval.svelte","../src/routes/_shared/_logic/optimistic-sync-state/optimisticSyncState.ts","../src/routes/OrgaView/_shared/_modules/url-table/_logic/UrlRowActions.actions.ts","../src/routes/OrgaView/_shared/_modules/url-table/_shared/_modules/url-page-cell/UrlPageCell.svelte","../src/routes/OrgaView/_shared/_modules/url-table/_shared/_logic/tags/tags.ts","../src/routes/OrgaView/_shared/_modules/url-table/_modules/url-table-cell/UrlTableCell.svelte","../src/routes/OrgaView/_shared/_modules/url-table/_logic/tableModel.ts","../src/routes/OrgaView/_shared/_modules/url-table/_logic/rows.ts","../src/routes/OrgaView/_shared/_modules/url-table/UrlTable.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/_modules/scraping-manager/ScrapingManager.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Domains/DomainsTab.svelte","../src/routes/_shared/_modules/sync-state-table-shell/SyncStateTableShell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_shared/_modules/sync-job-tag/SyncJobTag.svelte","../src/routes/_shared/_modules/sync-jobs-table/_modules/sync-job-table-cell/_modules/action-cell/ActionCell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_shared/_modules/object-cell/ObjectCell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_shared/_modules/result-cell/ResultCell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_modules/sync-job-table-cell/_modules/time-cell/TimeCell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_modules/sync-job-table-cell/SyncJobTableCell.svelte","../src/routes/_shared/_modules/sync-jobs-table/_logic/presentation.ts","../src/routes/_shared/_modules/sync-jobs-table/SyncJobsTable.svelte","../src/routes/OrgaView/_shared/_modules/scraping-sync-jobs-table/ScrapingSyncJobsTable.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/_shared/_logic/usage/usage.ts","../../node_modules/@kontextwerk/web-sdk/ui/charts/_modules/gauge/Gauge.svelte","../../node_modules/@kontextwerk/web-sdk/ui/charts/_modules/kpi-gauge-card/KpiGaugeCard.svelte","../src/routes/OrgaView/_shared/_modules/usage-limit-chart/UsageLimitChart.svelte","../src/routes/OrgaView/_shared/_modules/limits-panel-shell/LimitsPanelShell.svelte","../src/routes/OrgaView/pages/Scraping/tabs/Limits/LimitsTab.svelte","../src/routes/OrgaView/pages/Scraping/ScrapingPage.svelte","../src/routes/OrgaView/_shared/_logic/sharepoint/sharepoint.ts","../src/routes/OrgaView/_shared/_modules/share-point-source-overlay/SharePointSourceOverlay.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_logic/SharePointSourceRowActions.actions.ts","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_shared/_modules/share-point-source-tag/SharePointSourceTag.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_shared/_modules/source-cell/SourceCell.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_shared/_modules/state-cell/StateCell.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_modules/share-point-source-table-cell/_modules/sync-cell/SyncCell.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_modules/share-point-source-table-cell/_modules/target-cell/TargetCell.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_modules/share-point-source-table-cell/SharePointSourceTableCell.svelte","../src/routes/OrgaView/_shared/_logic/share-point-presentation/sharePointPresentation.ts","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/_logic/presentation.ts","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/_modules/share-point-source-table/SharePointSourceTable.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Sources/SourcesTab.svelte","../src/routes/OrgaView/_shared/_modules/share-point-sync-jobs-table/SharePointSyncJobsTable.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Limits/_modules/share-point-usage-limits/SharePointUsageLimits.svelte","../src/routes/OrgaView/pages/SharePoint/tabs/Limits/LimitsTab.svelte","../src/routes/OrgaView/pages/SharePoint/SharePointPage.svelte","../src/routes/OrgaView/pages/Files/tabs/Collections/CollectionsTab.svelte","../src/routes/_shared/_modules/file-sync-jobs-table/FileSyncJobsTable.svelte","../src/routes/OrgaView/pages/Files/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/pages/Files/tabs/Limits/_modules/file-usage-limits/FileUsageLimits.svelte","../src/routes/OrgaView/pages/Files/tabs/Limits/LimitsTab.svelte","../src/routes/OrgaView/pages/Files/FilesPage.svelte","../src/routes/OrgaView/_shared/_logic/answers/answers.ts","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_logic/jsonImportExport.ts","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_modules/answer-group-overlay/AnswerGroupOverlay.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/ai-import-flow-overlay/_modules/ai-import-instructions-overlay/AiImportInstructionsOverlay.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_modules/ai-import-flow-overlay/AiImportFlowOverlay.svelte","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_modules/answer-library-generation-overlay/AnswerLibraryGenerationOverlay.svelte","../src/routes/OrgaView/_shared/_modules/answer-sync-jobs-table/AnswerSyncJobsTable.svelte","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_logic/presentation.ts","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_logic/importExport.ts","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_logic/tags.ts","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_logic/tableModel.ts","../src/routes/OrgaView/_shared/_modules/answer-library-table-tag/AnswerLibraryTableTag.svelte","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/_modules/answer-group-table-cell/AnswerGroupTableCell.svelte","../src/routes/OrgaView/pages/Answers/tabs/Groups/_modules/answer-group-list/AnswerGroupList.svelte","../src/routes/OrgaView/pages/Answers/tabs/Groups/GroupsTab.svelte","../src/routes/OrgaView/pages/Answers/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/pages/Answers/tabs/Limits/_modules/answer-library-limits/_logic/limits.ts","../src/routes/OrgaView/pages/Answers/tabs/Limits/_modules/answer-library-limits/AnswerLibraryLimits.svelte","../src/routes/OrgaView/pages/Answers/tabs/Limits/LimitsTab.svelte","../src/routes/OrgaView/pages/Answers/AnswersPage.svelte","../src/routes/OrgaView/navigation.ts","../src/routes/OrgaView/_logic/capabilities.ts","../src/routes/OrgaView/_logic/automation.ts","../src/routes/_shared/_logic/auth-context/authContext.ts","../src/routes/OrgaView/_logic/portalNavigation.ts","../src/routes/OrgaView/OrgaViewFrame.svelte","../src/routes/OrgaView/config.ts","../src/routes/OrgaView/subviews/Chunk/_logic/capabilities.ts","../src/routes/OrgaView/subviews/Chunk/pages/ChunkSource/_logic/rows.ts","../src/routes/OrgaView/subviews/Chunk/pages/ChunkSource/ChunkSourcePage.svelte","../src/routes/OrgaView/subviews/Chunk/pages/Chunks/ChunksPage.svelte","../src/routes/OrgaView/subviews/Chunk/navigation.ts","../src/routes/OrgaView/subviews/Chunk/ChunkSubview.svelte","../src/routes/OrgaView/subviews/Chunk/config.ts","../src/routes/OrgaView/subviews/Domain/_logic/capabilities.ts","../src/routes/_shared/_logic/detail-tabs/detailTabs.ts","../src/routes/_shared/_modules/entity-collection-view-frame/EntityCollectionViewFrame.svelte","../src/routes/OrgaView/subviews/Domain/pages/Domain/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/subviews/Domain/pages/Domain/tabs/Urls/UrlsTab.svelte","../src/routes/OrgaView/subviews/Domain/pages/Domain/_logic/recordHeader.ts","../src/routes/OrgaView/subviews/Domain/pages/Domain/_logic/frame.ts","../src/routes/OrgaView/subviews/Domain/pages/Domain/_logic/automation.ts","../src/routes/OrgaView/subviews/Domain/pages/Domain/DomainPage.svelte","../src/routes/OrgaView/subviews/Domain/DomainSubview.svelte","../src/routes/OrgaView/subviews/Domain/config.ts","../src/routes/OrgaView/subviews/AnswerLibrary/_logic/capabilities.ts","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroup/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/_modules/answer-question-overlay/AnswerQuestionOverlay.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/_logic/questions.ts","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/_logic/tags.ts","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/_logic/tableModel.ts","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/_modules/question-table-cell/QuestionTableCell.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroupDetail/AnswerGroupDetailPage.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroup/tabs/Questions/QuestionsTab.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroup/_logic/tabIds.ts","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroup/AnswerGroupPage.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/pages/AnswerGroup/navigation.ts","../src/routes/OrgaView/subviews/AnswerLibrary/_logic/automation.ts","../src/routes/OrgaView/subviews/AnswerLibrary/_logic/recordHeader.ts","../src/routes/OrgaView/subviews/AnswerLibrary/AnswerLibrarySubview.svelte","../src/routes/OrgaView/subviews/AnswerLibrary/config.ts","../src/routes/OrgaView/subviews/SharePoint/_logic/capabilities.ts","../src/routes/_shared/_modules/detail-facts-card/DetailFactsCard.svelte","../../node_modules/@kontextwerk/web-sdk/ui/analytics/_modules/dashboard-number-block/DashboardNumberBlock.svelte","../src/routes/_shared/_modules/detail-overview-shell/DetailOverviewShell.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/tabs/Details/_modules/share-point-source-details/SharePointSourceDetails.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/tabs/Details/DetailsTab.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/_modules/share-point-record-actions/SharePointRecordActions.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/tabs/Inventory/_modules/share-point-source-state-table/SharePointSourceStateTable.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/tabs/Inventory/InventoryTab.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/tabs/Jobs/JobsTab.svelte","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/_logic/recordHeader.ts","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/_logic/frame.ts","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/_logic/automation.ts","../src/routes/OrgaView/subviews/SharePoint/pages/SharePoint/SharePointPage.svelte","../src/routes/OrgaView/subviews/SharePoint/SharePointSubview.svelte","../src/routes/OrgaView/subviews/SharePoint/config.ts","../src/routes/_shared/file-collection-detail/_logic/capabilities.ts","../../node_modules/@svar-ui/lib-dom/dist/index.js","../../node_modules/@svar-ui/svelte-menu/src/helpers/index.js","../../node_modules/@svar-ui/svelte-menu/src/components/MenuOption.svelte","../../node_modules/@svar-ui/svelte-menu/src/components/Menu.svelte","../../node_modules/@svar-ui/svelte-core/src/components/helpers/getInputId.js","../../node_modules/@svar-ui/svelte-core/src/components/Button.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Checkbox.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Popup.svelte","../../node_modules/@svar-ui/svelte-core/src/components/helpers/InlineDropdown.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Dropdown.svelte","../../node_modules/@svar-ui/core-locales/locales/en.js","../../node_modules/@svar-ui/svelte-core/src/components/helpers/locale.js","../../node_modules/@svar-ui/svelte-core/src/components/helpers/listnav.js","../../node_modules/@svar-ui/svelte-core/src/components/helpers/SuggestDropdown.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Text.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Header.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Button.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Month.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Year.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Duodecade.svelte","../../node_modules/@svar-ui/svelte-core/src/components/calendar/helpers.js","../../node_modules/@svar-ui/svelte-core/src/components/calendar/Panel.svelte","../../node_modules/@svar-ui/svelte-core/src/Locale.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Calendar.svelte","../../node_modules/@svar-ui/svelte-core/src/components/helpers/dropdown.js","../../node_modules/@svar-ui/svelte-core/src/components/DatePicker.svelte","../../node_modules/@svar-ui/svelte-core/src/components/RichSelect.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Segmented.svelte","../../node_modules/svelte/src/transition/index.js","../../node_modules/@svar-ui/svelte-core/src/components/Notice.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Notices.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Modal.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Globals.svelte","../../node_modules/@svar-ui/svelte-core/src/components/TwoState.svelte","../../node_modules/@svar-ui/svelte-core/src/components/Portal.svelte","../../node_modules/@svar-ui/svelte-core/src/themes/Willow.svelte","../../node_modules/@svar-ui/lib-state/dist/index.js","../../node_modules/@svar-ui/lib-svelte/dist/index.js","../../node_modules/@svar-ui/svelte-core/src/index.js","../../node_modules/@svar-ui/svelte-menu/src/components/ActionMenu.svelte","../../node_modules/@svar-ui/svelte-menu/src/components/DropDownMenu.svelte","../../node_modules/@svar-ui/svelte-menu/src/components/ContextMenu.svelte","../../node_modules/@svar-ui/svelte-uploader/src/helpers/consts.js","../../node_modules/@svar-ui/uploader-locales/locales/en.js","../../node_modules/@svar-ui/svelte-uploader/src/components/Uploader.svelte","../../node_modules/@svar-ui/filemanager-store/dist/index.js","../../node_modules/@svar-ui/svelte-filemanager/src/components/Cards/Item.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Cards/Panel.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/ui/Icon.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/SearchView.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Info.svelte","../../node_modules/@svar-ui/grid-locales/locales/en.js","../../node_modules/@svar-ui/grid-store/dist/index.js","../../node_modules/@svar-ui/svelte-grid/src/helpers/actions/onresize.js","../../node_modules/@svar-ui/svelte-grid/src/helpers/actions/reorder.js","../../node_modules/@svar-ui/svelte-grid/src/helpers/actions/dragscroll.js","../../node_modules/@svar-ui/svelte-grid/src/helpers/columnWidth.js","../../node_modules/@svar-ui/svelte-grid/src/components/Cell.svelte","../../node_modules/@svar-ui/svelte-grid/src/helpers/actions/resize.js","../../node_modules/@svar-ui/svelte-grid/src/components/inlineFilters/Text.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineFilters/Richselect.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineFilters/DatePicker.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineFilters/filters.js","../../node_modules/@svar-ui/svelte-grid/src/components/inlineFilters/Filter.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/HeaderCell.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/FooterCell.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/HeaderFooter.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/Overlay.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/Text.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/Combo.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/Datepicker.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/Richselect.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/MultiSelect.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/editors.js","../../node_modules/@svar-ui/svelte-grid/src/components/inlineEditors/Editor.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/print/HeaderFooter.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/print/Grid.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/print/Print.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/Layout.svelte","../../node_modules/@svar-ui/svelte-grid/src/components/Grid.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/helpers.js","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Separator.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Spacer.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Button.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Label.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Icon.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/buttons/Item.svelte","../../node_modules/@svar-ui/svelte-toolbar/src/index.js","../../node_modules/@svar-ui/svelte-grid/src/index.js","../../node_modules/@svar-ui/svelte-filemanager/src/components/Breadcrumbs.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Table/NameCell.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/UploadDropArea.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Table/View.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Panels.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Tree/Folder.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Tree/Tree.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Drive.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/UploadButton.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Sidebar.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/ui/Search.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Toolbar.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Cards/View.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/components/Layout.svelte","../../node_modules/@svar-ui/filemanager-locales/locales/en.js","../../node_modules/@svar-ui/svelte-filemanager/src/components/Modals.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/icons.js","../../node_modules/@svar-ui/svelte-filemanager/src/components/Filemanager.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/themes/Willow.svelte","../../node_modules/@svar-ui/svelte-filemanager/src/index.js","../../node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js","../../node_modules/@smithy/types/dist-es/endpoint.js","../../node_modules/@smithy/types/dist-es/extensions/checksum.js","../../node_modules/@smithy/types/dist-es/middleware.js","../../node_modules/@smithy/protocol-http/dist-es/httpRequest.js","../../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../../node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js","../../node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js","../../node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js","../../node_modules/@smithy/util-base64/dist-es/constants.browser.js","../../node_modules/@smithy/util-base64/dist-es/fromBase64.browser.js","../../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../node_modules/@smithy/util-utf8/dist-es/toUint8Array.js","../../node_modules/@smithy/util-utf8/dist-es/toUtf8.browser.js","../../node_modules/@smithy/util-base64/dist-es/toBase64.browser.js","../../node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","../../node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.browser.js","../../node_modules/@smithy/util-stream/dist-es/stream-type-check.js","../../node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.browser.js","../../node_modules/@smithy/util-stream/dist-es/ByteArrayCollector.js","../../node_modules/@smithy/util-stream/dist-es/createBufferedReadableStream.js","../../node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.browser.js","../../node_modules/@smithy/util-stream/dist-es/headStream.browser.js","../../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../../node_modules/@smithy/querystring-builder/dist-es/index.js","../../node_modules/@smithy/fetch-http-handler/dist-es/create-request.js","../../node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js","../../node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js","../../node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js","../../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../../node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js","../../node_modules/@smithy/util-stream/dist-es/splitStream.browser.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeaderWithPrefix.js","../../node_modules/@smithy/is-array-buffer/dist-es/index.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/@aws-crypto/util/build/module/convertToBuffer.js","../../node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../node_modules/@aws-crypto/util/build/module/isEmptyData.js","../../node_modules/@aws-crypto/util/build/module/numToUint8.js","../../node_modules/@aws-crypto/util/build/module/uint32ArrayFrom.js","../../node_modules/@aws-crypto/crc32c/build/module/aws_crc32c.js","../../node_modules/@aws-crypto/crc32c/build/module/index.js","../../node_modules/@aws-sdk/crc64-nvme/dist-es/Crc64Nvme.js","../../node_modules/@aws-sdk/crc64-nvme/dist-es/crc64-nvme-crt-container.js","../../node_modules/@aws-crypto/crc32/build/module/aws_crc32.js","../../node_modules/@aws-crypto/crc32/build/module/index.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.browser.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsInputMiddleware.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js","../../node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js","../../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js","../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js","../../node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","../../node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","../../node_modules/@aws-sdk/middleware-recursion-detection/dist-es/configuration.js","../../node_modules/@aws-sdk/middleware-recursion-detection/dist-es/recursionDetectionMiddleware.browser.js","../../node_modules/@aws-sdk/middleware-recursion-detection/dist-es/getRecursionDetectionPlugin.js","../../node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js","../../node_modules/@smithy/smithy-client/dist-es/client.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js","../../node_modules/@smithy/core/dist-es/submodules/schema/deref.js","../../node_modules/@smithy/core/dist-es/submodules/schema/schemas/operation.js","../../node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js","../../node_modules/@smithy/querystring-parser/dist-es/index.js","../../node_modules/@smithy/url-parser/dist-es/index.js","../../node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js","../../node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js","../../node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js","../../node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js","../../node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js","../../node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js","../../node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js","../../node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js","../../node_modules/@smithy/uuid/dist-es/randomUUID.browser.js","../../node_modules/@smithy/uuid/dist-es/v4.js","../../node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js","../../node_modules/@smithy/core/dist-es/submodules/serde/quote-header.js","../../node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js","../../node_modules/@smithy/core/dist-es/submodules/serde/split-every.js","../../node_modules/@smithy/core/dist-es/submodules/serde/split-header.js","../../node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/SerdeContext.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js","../../node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js","../../node_modules/@smithy/smithy-client/dist-es/schemaLogFilter.js","../../node_modules/@smithy/smithy-client/dist-es/command.js","../../node_modules/@smithy/smithy-client/dist-es/exceptions.js","../../node_modules/@smithy/smithy-client/dist-es/defaults-mode.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/retry.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js","../../node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js","../../node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js","../../node_modules/@smithy/signature-v4/dist-es/constants.js","../../node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js","../../node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js","../../node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js","../../node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js","../../node_modules/@smithy/signature-v4/dist-es/headerUtil.js","../../node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js","../../node_modules/@smithy/signature-v4/dist-es/prepareRequest.js","../../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../../node_modules/@smithy/signature-v4/dist-es/SignatureV4Base.js","../../node_modules/@smithy/signature-v4/dist-es/SignatureV4.js","../../node_modules/@smithy/signature-v4/dist-es/signature-v4a-container.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js","../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/resolveAuthOptions.js","../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js","../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js","../../node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js","../../node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js","../../node_modules/@smithy/core/dist-es/normalizeProvider.js","../../node_modules/@smithy/core/dist-es/setFeature.js","../../node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js","../../node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js","../../node_modules/@aws-sdk/util-arn-parser/dist-es/index.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js","../../node_modules/@smithy/util-body-length-browser/dist-es/calculateBodyLength.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js","../../node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js","../../node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js","../../node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js","../../node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js","../../node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlCodec.js","../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js","../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/protocol/S3RestXmlProtocol.js","../../node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","../../node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js","../../node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js","../../node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js","../../node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/not.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/substring.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js","../../node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js","../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js","../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js","../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js","../../node_modules/@aws-sdk/util-endpoints/dist-es/aws.js","../../node_modules/@smithy/util-retry/dist-es/config.js","../../node_modules/@smithy/service-error-classification/dist-es/constants.js","../../node_modules/@smithy/service-error-classification/dist-es/index.js","../../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js","../../node_modules/@smithy/util-retry/dist-es/constants.js","../../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js","../../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js","../../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js","../../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js","../../node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js","../../node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","../../node_modules/@aws-sdk/middleware-user-agent/dist-es/encode-features.js","../../node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/checkRegion.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","../../node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js","../../node_modules/@smithy/middleware-content-length/dist-es/index.js","../../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.browser.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","../../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js","../../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js","../../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js","../../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js","../../node_modules/@smithy/middleware-retry/dist-es/util.js","../../node_modules/@smithy/middleware-retry/dist-es/configurations.js","../../node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.browser.js","../../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js","../../node_modules/@smithy/property-provider/dist-es/memoize.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js","../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js","../../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js","../../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js","../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js","../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js","../../node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js","../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js","../../node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js","../../node_modules/@aws-sdk/client-s3/dist-es/models/errors.js","../../node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js","../../node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../node_modules/@aws-crypto/sha1-browser/build/module/isEmptyData.js","../../node_modules/@aws-crypto/sha1-browser/build/module/constants.js","../../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../../node_modules/@aws-crypto/sha1-browser/build/module/webCryptoSha1.js","../../node_modules/@aws-crypto/supports-web-crypto/build/module/supportsWebCrypto.js","../../node_modules/@aws-crypto/sha1-browser/build/module/crossPlatformSha1.js","../../node_modules/@aws-crypto/sha256-browser/build/module/constants.js","../../node_modules/@aws-crypto/sha256-browser/build/module/webCryptoSha256.js","../../node_modules/@aws-crypto/sha256-js/build/module/constants.js","../../node_modules/@aws-crypto/sha256-js/build/module/RawSha256.js","../../node_modules/@aws-crypto/sha256-js/build/module/jsSha256.js","../../node_modules/@aws-crypto/sha256-browser/build/module/crossPlatformSha256.js","../../node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","../../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../../node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js","../../node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js","../../node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/utils.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/EventStreamMarshaller.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/provider.js","../../node_modules/@smithy/chunked-blob-reader/dist-es/index.js","../../node_modules/@smithy/hash-blob-browser/dist-es/index.js","../../node_modules/@smithy/invalid-dependency/dist-es/invalidProvider.js","../../node_modules/@smithy/md5-js/dist-es/constants.js","../../node_modules/@smithy/md5-js/dist-es/index.js","../../node_modules/@smithy/util-defaults-mode-browser/dist-es/constants.js","../../node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","../../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js","../../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js","../../node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js","../../node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthExtensionConfiguration.js","../../node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js","../../node_modules/@aws-sdk/client-s3/dist-es/S3Client.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js","../../node_modules/@aws-sdk/middleware-ssec/dist-es/index.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js","../../node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js","../../node_modules/@aws-sdk/util-format-url/dist-es/index.js","../../node_modules/@aws-sdk/s3-request-presigner/dist-es/constants.js","../../node_modules/@aws-sdk/s3-request-presigner/dist-es/presigner.js","../../node_modules/@aws-sdk/s3-request-presigner/dist-es/getSignedUrl.js","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Details/_modules/file-collection-details/_modules/bucket-file-manager/_logic/minioClient.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Details/_modules/file-collection-details/_modules/bucket-file-manager/BucketFileManager.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Details/_modules/file-collection-details/FileCollectionDetails.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Details/DetailsTab.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/_modules/file-collection-record-actions/FileCollectionRecordActions.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/_logic/tags.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/_logic/tableModel.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/_logic/FileSyncRowActions.actions.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/_shared/_modules/file-sync-file-cell/FileSyncFileCell.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/_modules/file-sync-state-table-cell/FileSyncStateTableCell.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/_modules/file-sync-state-table/FileSyncStateTable.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Inventory/InventoryTab.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/tabs/Jobs/JobsTab.svelte","../src/routes/_shared/file-collection-detail/pages/FileCollection/_logic/recordHeader.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/_logic/frame.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/_logic/automation.ts","../src/routes/_shared/file-collection-detail/pages/FileCollection/FileCollectionPage.svelte","../src/routes/_shared/file-collection-detail/FileCollectionDetail.svelte","../src/routes/OrgaView/subviews/FileCollection/FileCollectionSubview.svelte","../src/routes/OrgaView/subviews/FileCollection/config.ts","../src/routes/AdminView/subviews/FileCollection/FileCollectionSubview.svelte","../src/routes/AdminView/subviews/FileCollection/config.ts","../src/routes/AdminView/_logic/capabilities.ts","../src/routes/AdminView/pages/Admin/_modules/index-maintenance/IndexMaintenance.svelte","../src/routes/AdminView/pages/Admin/AdminPage.svelte","../src/routes/AdminView/navigation.ts","../src/routes/AdminView/AdminViewFrame.svelte","../src/routes/AdminView/config.ts","../src/routes/Root/_modules/loading-screen/LoadingScreen.svelte","../src/routes/Root/render-state.ts","../src/routes/_shared/_logic/permissions/permissions.ts","../src/routes/Root/_logic/controlAdmin.ts","../src/routes/Root/RootHost.svelte","../src/routes/Root/Root.svelte","../src/App.svelte","../../node_modules/@kontextwerk/control-web-frame/src/_shared/_logic/browser-initialization/index.ts","../src/index.ts"],"sourcesContent":["import { PUBLIC_VERSION } from '../version.js';\n\nif (typeof window !== 'undefined') {\n\t// @ts-expect-error\n\t((window.__svelte ??= {}).v ??= new Set()).add(PUBLIC_VERSION);\n}\n","/** True if experimental.async=true */\nexport let async_mode_flag = false;\n/** True if we're not certain that we only have Svelte 5 code in the compilation */\nexport let legacy_mode_flag = false;\n/** True if $inspect.trace is used */\nexport let tracing_mode_flag = false;\n\nexport function enable_async_mode_flag() {\n\tasync_mode_flag = true;\n}\n\n/** ONLY USE THIS DURING TESTING */\nexport function disable_async_mode_flag() {\n\tasync_mode_flag = false;\n}\n\nexport function enable_legacy_mode_flag() {\n\tlegacy_mode_flag = true;\n}\n\nexport function enable_tracing_mode_flag() {\n\ttracing_mode_flag = true;\n}\n","import { enable_legacy_mode_flag } from './index.js';\n\nenable_legacy_mode_flag();\n","export const EACH_ITEM_REACTIVE = 1;\nexport const EACH_INDEX_REACTIVE = 1 << 1;\n/** See EachBlock interface metadata.is_controlled for an explanation what this is */\nexport const EACH_IS_CONTROLLED = 1 << 2;\nexport const EACH_IS_ANIMATED = 1 << 3;\nexport const EACH_ITEM_IMMUTABLE = 1 << 4;\n\nexport const PROPS_IS_IMMUTABLE = 1;\nexport const PROPS_IS_RUNES = 1 << 1;\nexport const PROPS_IS_UPDATED = 1 << 2;\nexport const PROPS_IS_BINDABLE = 1 << 3;\nexport const PROPS_IS_LAZY_INITIAL = 1 << 4;\n\nexport const TRANSITION_IN = 1;\nexport const TRANSITION_OUT = 1 << 1;\nexport const TRANSITION_GLOBAL = 1 << 2;\n\nexport const TEMPLATE_FRAGMENT = 1;\nexport const TEMPLATE_USE_IMPORT_NODE = 1 << 1;\nexport const TEMPLATE_USE_SVG = 1 << 2;\nexport const TEMPLATE_USE_MATHML = 1 << 3;\n\nexport const HYDRATION_START = '[';\n/** used to indicate that an `{:else}...` block was rendered */\nexport const HYDRATION_START_ELSE = '[!';\n/** used to indicate that a boundary's `failed` snippet was rendered on the server */\nexport const HYDRATION_START_FAILED = '[?';\nexport const HYDRATION_END = ']';\nexport const HYDRATION_ERROR = {};\n\nexport const ELEMENT_IS_NAMESPACED = 1;\nexport const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;\nexport const ELEMENT_IS_INPUT = 1 << 2;\n\nexport const UNINITIALIZED = Symbol();\n\n// Dev-time component properties\nexport const FILENAME = Symbol('filename');\nexport const HMR = Symbol('hmr');\n\nexport const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';\nexport const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';\nexport const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';\n\n// we use a list of ignorable runtime warnings because not every runtime warning\n// can be ignored and we want to keep the validation for svelte-ignore in place\nexport const IGNORABLE_RUNTIME_WARNINGS = /** @type {const} */ ([\n\t'await_waterfall',\n\t'await_reactivity_loss',\n\t'state_snapshot_uncloneable',\n\t'binding_property_non_reactive',\n\t'hydration_attribute_changed',\n\t'hydration_html_changed',\n\t'ownership_invalid_binding',\n\t'ownership_invalid_mutation'\n]);\n\n/**\n * Whitespace inside one of these elements will not result in\n * a whitespace node being created in any circumstances. (This\n * list is almost certainly very incomplete)\n * TODO this is currently unused\n */\nexport const ELEMENTS_WITHOUT_TEXT = ['audio', 'datalist', 'dl', 'optgroup', 'select', 'video'];\n\nexport const ATTACHMENT_KEY = '@attach';\n","const node_env = globalThis.process?.env?.NODE_ENV;\nexport default node_env && !node_env.toLowerCase().startsWith('prod');\n","// Store the references to globals in case someone tries to monkey patch these, causing the below\n// to de-opt (this occurs often when using popular extensions).\nexport var is_array = Array.isArray;\nexport var index_of = Array.prototype.indexOf;\nexport var includes = Array.prototype.includes;\nexport var array_from = Array.from;\nexport var object_keys = Object.keys;\nexport var define_property = Object.defineProperty;\nexport var get_descriptor = Object.getOwnPropertyDescriptor;\nexport var get_descriptors = Object.getOwnPropertyDescriptors;\nexport var object_prototype = Object.prototype;\nexport var array_prototype = Array.prototype;\nexport var get_prototype_of = Object.getPrototypeOf;\nexport var is_extensible = Object.isExtensible;\nexport var has_own_property = Object.prototype.hasOwnProperty;\n\n/**\n * @param {any} thing\n * @returns {thing is Function}\n */\nexport function is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nexport const noop = () => {};\n\n// Adapted from https://github.com/then/is-promise/blob/master/index.js\n// Distributed under MIT License https://github.com/then/is-promise/blob/master/LICENSE\n\n/**\n * @template [T=any]\n * @param {any} value\n * @returns {value is PromiseLike<T>}\n */\nexport function is_promise(value) {\n\treturn typeof value?.then === 'function';\n}\n\n/** @param {Function} fn */\nexport function run(fn) {\n\treturn fn();\n}\n\n/** @param {Array<() => void>} arr */\nexport function run_all(arr) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tarr[i]();\n\t}\n}\n\n/**\n * TODO replace with Promise.withResolvers once supported widely enough\n * @template [T=void]\n */\nexport function deferred() {\n\t/** @type {(value: T) => void} */\n\tvar resolve;\n\n\t/** @type {(reason: any) => void} */\n\tvar reject;\n\n\t/** @type {Promise<T>} */\n\tvar promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\n\t// @ts-expect-error\n\treturn { promise, resolve, reject };\n}\n\n/**\n * @template V\n * @param {V} value\n * @param {V | (() => V)} fallback\n * @param {boolean} [lazy]\n * @returns {V}\n */\nexport function fallback(value, fallback, lazy = false) {\n\treturn value === undefined\n\t\t? lazy\n\t\t\t? /** @type {() => V} */ (fallback)()\n\t\t\t: /** @type {V} */ (fallback)\n\t\t: value;\n}\n\n/**\n * When encountering a situation like `let [a, b, c] = $derived(blah())`,\n * we need to stash an intermediate value that `a`, `b`, and `c` derive\n * from, in case it's an iterable\n * @template T\n * @param {ArrayLike<T> | Iterable<T>} value\n * @param {number} [n]\n * @returns {Array<T>}\n */\nexport function to_array(value, n) {\n\t// return arrays unchanged\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\n\t// if value is not iterable, or `n` is unspecified (indicates a rest\n\t// element, which means we're not concerned about unbounded iterables)\n\t// convert to an array with `Array.from`\n\tif (n === undefined || !(Symbol.iterator in value)) {\n\t\treturn Array.from(value);\n\t}\n\n\t// otherwise, populate an array with `n` values\n\n\t/** @type {T[]} */\n\tconst array = [];\n\n\tfor (const element of value) {\n\t\tarray.push(element);\n\t\tif (array.length === n) break;\n\t}\n\n\treturn array;\n}\n\n/**\n * @param {Record<string | symbol, unknown>} obj\n * @param {Array<string | symbol>} keys\n * @returns {Record<string | symbol, unknown>}\n */\nexport function exclude_from_object(obj, keys) {\n\t/** @type {Record<string | symbol, unknown>} */\n\tvar result = {};\n\n\tfor (var key in obj) {\n\t\tif (!keys.includes(key)) {\n\t\t\tresult[key] = obj[key];\n\t\t}\n\t}\n\n\tfor (var symbol of Object.getOwnPropertySymbols(obj)) {\n\t\tif (Object.propertyIsEnumerable.call(obj, symbol) && !keys.includes(symbol)) {\n\t\t\tresult[symbol] = obj[symbol];\n\t\t}\n\t}\n\n\treturn result;\n}\n","// General flags\nexport const DERIVED = 1 << 1;\nexport const EFFECT = 1 << 2;\nexport const RENDER_EFFECT = 1 << 3;\n/**\n * An effect that does not destroy its child effects when it reruns.\n * Runs as part of render effects, i.e. not eagerly as part of tree traversal or effect flushing.\n */\nexport const MANAGED_EFFECT = 1 << 24;\n/**\n * An effect that does not destroy its child effects when it reruns (like MANAGED_EFFECT).\n * Runs eagerly as part of tree traversal or effect flushing.\n */\nexport const BLOCK_EFFECT = 1 << 4;\nexport const BRANCH_EFFECT = 1 << 5;\nexport const ROOT_EFFECT = 1 << 6;\nexport const BOUNDARY_EFFECT = 1 << 7;\n/**\n * Indicates that a reaction is connected to an effect root — either it is an effect,\n * or it is a derived that is depended on by at least one effect. If a derived has\n * no dependents, we can disconnect it from the graph, allowing it to either be\n * GC'd or reconnected later if an effect comes to depend on it again\n */\nexport const CONNECTED = 1 << 9;\nexport const CLEAN = 1 << 10;\nexport const DIRTY = 1 << 11;\nexport const MAYBE_DIRTY = 1 << 12;\nexport const INERT = 1 << 13;\nexport const DESTROYED = 1 << 14;\n/** Set once a reaction has run for the first time */\nexport const REACTION_RAN = 1 << 15;\n/** Effect is in the process of getting destroyed. Can be observed in child teardown functions */\nexport const DESTROYING = 1 << 25;\n\n// Flags exclusive to effects\n/**\n * 'Transparent' effects do not create a transition boundary.\n * This is on a block effect 99% of the time but may also be on a branch effect if its parent block effect was pruned\n */\nexport const EFFECT_TRANSPARENT = 1 << 16;\nexport const EAGER_EFFECT = 1 << 17;\nexport const HEAD_EFFECT = 1 << 18;\nexport const EFFECT_PRESERVED = 1 << 19;\nexport const USER_EFFECT = 1 << 20;\nexport const EFFECT_OFFSCREEN = 1 << 25;\n\n// Flags exclusive to deriveds\n/**\n * Tells that we marked this derived and its reactions as visited during the \"mark as (maybe) dirty\"-phase.\n * Will be lifted during execution of the derived and during checking its dirty state (both are necessary\n * because a derived might be checked but not executed). This is a pure performance optimization flag and\n * should not be used for any other purpose!\n */\nexport const WAS_MARKED = 1 << 16;\n\n// Flags used for async\nexport const REACTION_IS_UPDATING = 1 << 21;\nexport const ASYNC = 1 << 22;\n\nexport const ERROR_VALUE = 1 << 23;\n\nexport const STATE_SYMBOL = Symbol('$state');\nexport const LEGACY_PROPS = Symbol('legacy props');\nexport const LOADING_ATTR_SYMBOL = Symbol('');\nexport const PROXY_PATH_SYMBOL = Symbol('proxy path');\nexport const ATTRIBUTES_CACHE = Symbol('attributes');\nexport const CLASS_CACHE = Symbol('class');\nexport const STYLE_CACHE = Symbol('style');\nexport const TEXT_CACHE = Symbol('text');\nexport const FORM_RESET_HANDLER = Symbol('form reset');\n/** An anchor might change, via this symbol on the original anchor we can tell HMR about the updated anchor */\nexport const HMR_ANCHOR = Symbol('hmr anchor');\n\n/** allow users to ignore aborted signal errors if `reason.name === 'StaleReactionError` */\nexport const STALE_REACTION = new (class StaleReactionError extends Error {\n\tname = 'StaleReactionError';\n\tmessage = 'The reaction that called `getAbortSignal()` was re-run or destroyed';\n})();\n\nexport const IS_XHTML =\n\t// We gotta write it like this because after downleveling the pure comment may end up in the wrong location\n\t!!globalThis.document?.contentType &&\n\t/* @__PURE__ */ globalThis.document.contentType.includes('xml');\nexport const ELEMENT_NODE = 1;\nexport const TEXT_NODE = 3;\nexport const COMMENT_NODE = 8;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Cannot use `%name%(...)` unless the `experimental.async` compiler option is `true`\n * @param {string} name\n * @returns {never}\n */\nexport function experimental_async_required(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`experimental_async_required\\nCannot use \\`${name}(...)\\` unless the \\`experimental.async\\` compiler option is \\`true\\`\\nhttps://svelte.dev/e/experimental_async_required`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/experimental_async_required`);\n\t}\n}\n\n/**\n * Cannot use `{@render children(...)}` if the parent component uses `let:` directives. Consider using a named snippet instead\n * @returns {never}\n */\nexport function invalid_default_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_default_snippet\\nCannot use \\`{@render children(...)}\\` if the parent component uses \\`let:\\` directives. Consider using a named snippet instead\\nhttps://svelte.dev/e/invalid_default_snippet`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_default_snippet`);\n\t}\n}\n\n/**\n * A snippet function was passed invalid arguments. Snippets should only be instantiated via `{@render ...}`\n * @returns {never}\n */\nexport function invalid_snippet_arguments() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_snippet_arguments\\nA snippet function was passed invalid arguments. Snippets should only be instantiated via \\`{@render ...}\\`\\nhttps://svelte.dev/e/invalid_snippet_arguments`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_snippet_arguments`);\n\t}\n}\n\n/**\n * An invariant violation occurred, meaning Svelte's internal assumptions were flawed. This is a bug in Svelte, not your app — please open an issue at https://github.com/sveltejs/svelte, citing the following message: \"%message%\"\n * @param {string} message\n * @returns {never}\n */\nexport function invariant_violation(message) {\n\tif (DEV) {\n\t\tconst error = new Error(`invariant_violation\\nAn invariant violation occurred, meaning Svelte's internal assumptions were flawed. This is a bug in Svelte, not your app — please open an issue at https://github.com/sveltejs/svelte, citing the following message: \"${message}\"\\nhttps://svelte.dev/e/invariant_violation`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invariant_violation`);\n\t}\n}\n\n/**\n * `%name%(...)` can only be used during component initialisation\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_outside_component(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_outside_component\\n\\`${name}(...)\\` can only be used during component initialisation\\nhttps://svelte.dev/e/lifecycle_outside_component`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/lifecycle_outside_component`);\n\t}\n}\n\n/**\n * Context was not set in a parent component\n * @returns {never}\n */\nexport function missing_context() {\n\tif (DEV) {\n\t\tconst error = new Error(`missing_context\\nContext was not set in a parent component\\nhttps://svelte.dev/e/missing_context`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/missing_context`);\n\t}\n}\n\n/**\n * Attempted to render a snippet without a `{@render}` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change `{snippet}` to `{@render snippet()}`.\n * @returns {never}\n */\nexport function snippet_without_render_tag() {\n\tif (DEV) {\n\t\tconst error = new Error(`snippet_without_render_tag\\nAttempted to render a snippet without a \\`{@render}\\` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change \\`{snippet}\\` to \\`{@render snippet()}\\`.\\nhttps://svelte.dev/e/snippet_without_render_tag`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/snippet_without_render_tag`);\n\t}\n}\n\n/**\n * `%name%` is not a store with a `subscribe` method\n * @param {string} name\n * @returns {never}\n */\nexport function store_invalid_shape(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`store_invalid_shape\\n\\`${name}\\` is not a store with a \\`subscribe\\` method\\nhttps://svelte.dev/e/store_invalid_shape`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/store_invalid_shape`);\n\t}\n}\n\n/**\n * The `this` prop on `<svelte:element>` must be a string, if defined\n * @returns {never}\n */\nexport function svelte_element_invalid_this_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`svelte_element_invalid_this_value\\nThe \\`this\\` prop on \\`<svelte:element>\\` must be a string, if defined\\nhttps://svelte.dev/e/svelte_element_invalid_this_value`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/svelte_element_invalid_this_value`);\n\t}\n}","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\nexport *  from '../shared/errors.js';\n\n/**\n * Cannot create a `$derived(...)` with an `await` expression outside of an effect tree\n * @returns {never}\n */\nexport function async_derived_orphan() {\n\tif (DEV) {\n\t\tconst error = new Error(`async_derived_orphan\\nCannot create a \\`$derived(...)\\` with an \\`await\\` expression outside of an effect tree\\nhttps://svelte.dev/e/async_derived_orphan`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/async_derived_orphan`);\n\t}\n}\n\n/**\n * Using `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\n * @returns {never}\n */\nexport function bind_invalid_checkbox_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_checkbox_value\\nUsing \\`bind:value\\` together with a checkbox input is not allowed. Use \\`bind:checked\\` instead\\nhttps://svelte.dev/e/bind_invalid_checkbox_value`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_invalid_checkbox_value`);\n\t}\n}\n\n/**\n * Component %component% has an export named `%key%` that a consumer component is trying to access using `bind:%key%`, which is disallowed. Instead, use `bind:this` (e.g. `<%name% bind:this={component} />`) and then access the property on the bound component instance (e.g. `component.%key%`)\n * @param {string} component\n * @param {string} key\n * @param {string} name\n * @returns {never}\n */\nexport function bind_invalid_export(component, key, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_invalid_export\\nComponent ${component} has an export named \\`${key}\\` that a consumer component is trying to access using \\`bind:${key}\\`, which is disallowed. Instead, use \\`bind:this\\` (e.g. \\`<${name} bind:this={component} />\\`) and then access the property on the bound component instance (e.g. \\`component.${key}\\`)\\nhttps://svelte.dev/e/bind_invalid_export`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_invalid_export`);\n\t}\n}\n\n/**\n * A component is attempting to bind to a non-bindable property `%key%` belonging to %component% (i.e. `<%name% bind:%key%={...}>`). To mark a property as bindable: `let { %key% = $bindable() } = $props()`\n * @param {string} key\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function bind_not_bindable(key, component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`bind_not_bindable\\nA component is attempting to bind to a non-bindable property \\`${key}\\` belonging to ${component} (i.e. \\`<${name} bind:${key}={...}>\\`). To mark a property as bindable: \\`let { ${key} = $bindable() } = $props()\\`\\nhttps://svelte.dev/e/bind_not_bindable`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/bind_not_bindable`);\n\t}\n}\n\n/**\n * Calling `%method%` on a component instance (of %component%) is no longer valid in Svelte 5\n * @param {string} method\n * @param {string} component\n * @returns {never}\n */\nexport function component_api_changed(method, component) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_changed\\nCalling \\`${method}\\` on a component instance (of ${component}) is no longer valid in Svelte 5\\nhttps://svelte.dev/e/component_api_changed`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/component_api_changed`);\n\t}\n}\n\n/**\n * Attempted to instantiate %component% with `new %name%`, which is no longer valid in Svelte 5. If this component is not under your control, set the `compatibility.componentApi` compiler option to `4` to keep it working.\n * @param {string} component\n * @param {string} name\n * @returns {never}\n */\nexport function component_api_invalid_new(component, name) {\n\tif (DEV) {\n\t\tconst error = new Error(`component_api_invalid_new\\nAttempted to instantiate ${component} with \\`new ${name}\\`, which is no longer valid in Svelte 5. If this component is not under your control, set the \\`compatibility.componentApi\\` compiler option to \\`4\\` to keep it working.\\nhttps://svelte.dev/e/component_api_invalid_new`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/component_api_invalid_new`);\n\t}\n}\n\n/**\n * A derived value cannot reference itself recursively\n * @returns {never}\n */\nexport function derived_references_self() {\n\tif (DEV) {\n\t\tconst error = new Error(`derived_references_self\\nA derived value cannot reference itself recursively\\nhttps://svelte.dev/e/derived_references_self`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/derived_references_self`);\n\t}\n}\n\n/**\n * Keyed each block has duplicate key `%value%` at indexes %a% and %b%\n * @param {string} a\n * @param {string} b\n * @param {string | undefined | null} [value]\n * @returns {never}\n */\nexport function each_key_duplicate(a, b, value) {\n\tif (DEV) {\n\t\tconst error = new Error(`each_key_duplicate\\n${value\n\t\t\t? `Keyed each block has duplicate key \\`${value}\\` at indexes ${a} and ${b}`\n\t\t\t: `Keyed each block has duplicate key at indexes ${a} and ${b}`}\\nhttps://svelte.dev/e/each_key_duplicate`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/each_key_duplicate`);\n\t}\n}\n\n/**\n * Keyed each block has key that is not idempotent — the key for item at index %index% was `%a%` but is now `%b%`. Keys must be the same each time for a given item\n * @param {string} index\n * @param {string} a\n * @param {string} b\n * @returns {never}\n */\nexport function each_key_volatile(index, a, b) {\n\tif (DEV) {\n\t\tconst error = new Error(`each_key_volatile\\nKeyed each block has key that is not idempotent — the key for item at index ${index} was \\`${a}\\` but is now \\`${b}\\`. Keys must be the same each time for a given item\\nhttps://svelte.dev/e/each_key_volatile`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/each_key_volatile`);\n\t}\n}\n\n/**\n * `%rune%` cannot be used inside an effect cleanup function\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_in_teardown(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_teardown\\n\\`${rune}\\` cannot be used inside an effect cleanup function\\nhttps://svelte.dev/e/effect_in_teardown`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_in_teardown`);\n\t}\n}\n\n/**\n * Effect cannot be created inside a `$derived` value that was not itself created inside an effect\n * @returns {never}\n */\nexport function effect_in_unowned_derived() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_in_unowned_derived\\nEffect cannot be created inside a \\`$derived\\` value that was not itself created inside an effect\\nhttps://svelte.dev/e/effect_in_unowned_derived`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_in_unowned_derived`);\n\t}\n}\n\n/**\n * `%rune%` can only be used inside an effect (e.g. during component initialisation)\n * @param {string} rune\n * @returns {never}\n */\nexport function effect_orphan(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_orphan\\n\\`${rune}\\` can only be used inside an effect (e.g. during component initialisation)\\nhttps://svelte.dev/e/effect_orphan`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_orphan`);\n\t}\n}\n\n/**\n * `$effect.pending()` can only be called inside an effect or derived\n * @returns {never}\n */\nexport function effect_pending_outside_reaction() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_pending_outside_reaction\\n\\`$effect.pending()\\` can only be called inside an effect or derived\\nhttps://svelte.dev/e/effect_pending_outside_reaction`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_pending_outside_reaction`);\n\t}\n}\n\n/**\n * Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state\n * @returns {never}\n */\nexport function effect_update_depth_exceeded() {\n\tif (DEV) {\n\t\tconst error = new Error(`effect_update_depth_exceeded\\nMaximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state\\nhttps://svelte.dev/e/effect_update_depth_exceeded`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);\n\t}\n}\n\n/**\n * Cannot use `flushSync` inside an effect\n * @returns {never}\n */\nexport function flush_sync_in_effect() {\n\tif (DEV) {\n\t\tconst error = new Error(`flush_sync_in_effect\\nCannot use \\`flushSync\\` inside an effect\\nhttps://svelte.dev/e/flush_sync_in_effect`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/flush_sync_in_effect`);\n\t}\n}\n\n/**\n * Cannot commit a fork that was already discarded\n * @returns {never}\n */\nexport function fork_discarded() {\n\tif (DEV) {\n\t\tconst error = new Error(`fork_discarded\\nCannot commit a fork that was already discarded\\nhttps://svelte.dev/e/fork_discarded`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/fork_discarded`);\n\t}\n}\n\n/**\n * Cannot create a fork inside an effect or when state changes are pending\n * @returns {never}\n */\nexport function fork_timing() {\n\tif (DEV) {\n\t\tconst error = new Error(`fork_timing\\nCannot create a fork inside an effect or when state changes are pending\\nhttps://svelte.dev/e/fork_timing`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/fork_timing`);\n\t}\n}\n\n/**\n * `getAbortSignal()` can only be called inside an effect or derived\n * @returns {never}\n */\nexport function get_abort_signal_outside_reaction() {\n\tif (DEV) {\n\t\tconst error = new Error(`get_abort_signal_outside_reaction\\n\\`getAbortSignal()\\` can only be called inside an effect or derived\\nhttps://svelte.dev/e/get_abort_signal_outside_reaction`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`);\n\t}\n}\n\n/**\n * Expected to find a hydratable with key `%key%` during hydration, but did not.\n * @param {string} key\n * @returns {never}\n */\nexport function hydratable_missing_but_required(key) {\n\tif (DEV) {\n\t\tconst error = new Error(`hydratable_missing_but_required\\nExpected to find a hydratable with key \\`${key}\\` during hydration, but did not.\\nhttps://svelte.dev/e/hydratable_missing_but_required`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/hydratable_missing_but_required`);\n\t}\n}\n\n/**\n * Failed to hydrate the application\n * @returns {never}\n */\nexport function hydration_failed() {\n\tif (DEV) {\n\t\tconst error = new Error(`hydration_failed\\nFailed to hydrate the application\\nhttps://svelte.dev/e/hydration_failed`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/hydration_failed`);\n\t}\n}\n\n/**\n * Could not `{@render}` snippet due to the expression being `null` or `undefined`. Consider using optional chaining `{@render snippet?.()}`\n * @returns {never}\n */\nexport function invalid_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_snippet\\nCould not \\`{@render}\\` snippet due to the expression being \\`null\\` or \\`undefined\\`. Consider using optional chaining \\`{@render snippet?.()}\\`\\nhttps://svelte.dev/e/invalid_snippet`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_snippet`);\n\t}\n}\n\n/**\n * `%name%(...)` cannot be used in runes mode\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_legacy_only(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_legacy_only\\n\\`${name}(...)\\` cannot be used in runes mode\\nhttps://svelte.dev/e/lifecycle_legacy_only`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/lifecycle_legacy_only`);\n\t}\n}\n\n/**\n * Cannot do `bind:%key%={undefined}` when `%key%` has a fallback value\n * @param {string} key\n * @returns {never}\n */\nexport function props_invalid_value(key) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_invalid_value\\nCannot do \\`bind:${key}={undefined}\\` when \\`${key}\\` has a fallback value\\nhttps://svelte.dev/e/props_invalid_value`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/props_invalid_value`);\n\t}\n}\n\n/**\n * Rest element properties of `$props()` such as `%property%` are readonly\n * @param {string} property\n * @returns {never}\n */\nexport function props_rest_readonly(property) {\n\tif (DEV) {\n\t\tconst error = new Error(`props_rest_readonly\\nRest element properties of \\`$props()\\` such as \\`${property}\\` are readonly\\nhttps://svelte.dev/e/props_rest_readonly`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/props_rest_readonly`);\n\t}\n}\n\n/**\n * The `%rune%` rune is only available inside `.svelte` and `.svelte.js/ts` files\n * @param {string} rune\n * @returns {never}\n */\nexport function rune_outside_svelte(rune) {\n\tif (DEV) {\n\t\tconst error = new Error(`rune_outside_svelte\\nThe \\`${rune}\\` rune is only available inside \\`.svelte\\` and \\`.svelte.js/ts\\` files\\nhttps://svelte.dev/e/rune_outside_svelte`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/rune_outside_svelte`);\n\t}\n}\n\n/**\n * `setContext` must be called when a component first initializes, not in a subsequent effect or after an `await` expression\n * @returns {never}\n */\nexport function set_context_after_init() {\n\tif (DEV) {\n\t\tconst error = new Error(`set_context_after_init\\n\\`setContext\\` must be called when a component first initializes, not in a subsequent effect or after an \\`await\\` expression\\nhttps://svelte.dev/e/set_context_after_init`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/set_context_after_init`);\n\t}\n}\n\n/**\n * Property descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\n * @returns {never}\n */\nexport function state_descriptors_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_descriptors_fixed\\nProperty descriptors defined on \\`$state\\` objects must contain \\`value\\` and always be \\`enumerable\\`, \\`configurable\\` and \\`writable\\`.\\nhttps://svelte.dev/e/state_descriptors_fixed`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_descriptors_fixed`);\n\t}\n}\n\n/**\n * Cannot set prototype of `$state` object\n * @returns {never}\n */\nexport function state_prototype_fixed() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_prototype_fixed\\nCannot set prototype of \\`$state\\` object\\nhttps://svelte.dev/e/state_prototype_fixed`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_prototype_fixed`);\n\t}\n}\n\n/**\n * Updating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\n * @returns {never}\n */\nexport function state_unsafe_mutation() {\n\tif (DEV) {\n\t\tconst error = new Error(`state_unsafe_mutation\\nUpdating state inside \\`$derived(...)\\`, \\`$inspect(...)\\` or a template expression is forbidden. If the value should not be reactive, declare it without \\`$state\\`\\nhttps://svelte.dev/e/state_unsafe_mutation`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/state_unsafe_mutation`);\n\t}\n}\n\n/**\n * A `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\n * @returns {never}\n */\nexport function svelte_boundary_reset_onerror() {\n\tif (DEV) {\n\t\tconst error = new Error(`svelte_boundary_reset_onerror\\nA \\`<svelte:boundary>\\` \\`reset\\` function cannot be called while an error is still being handled\\nhttps://svelte.dev/e/svelte_boundary_reset_onerror`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`);\n\t}\n}","/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\nvar bold = 'font-weight: bold';\nvar normal = 'font-weight: normal';\n\n/**\n * Assignment to `%property%` property (%location%) will evaluate to the right-hand side, not the value of `%property%` following the assignment. This may result in unexpected behaviour.\n * @param {string} property\n * @param {string} location\n */\nexport function assignment_value_stale(property, location) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] assignment_value_stale\\n%cAssignment to \\`${property}\\` property (${location}) will evaluate to the right-hand side, not the value of \\`${property}\\` following the assignment. This may result in unexpected behaviour.\\nhttps://svelte.dev/e/assignment_value_stale`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/assignment_value_stale`);\n\t}\n}\n\n/**\n * Detected reactivity loss when reading `%name%`. This happens when state is read in an async function after an earlier `await`\n * @param {string} name\n */\nexport function await_reactivity_loss(name) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] await_reactivity_loss\\n%cDetected reactivity loss when reading \\`${name}\\`. This happens when state is read in an async function after an earlier \\`await\\`\\nhttps://svelte.dev/e/await_reactivity_loss`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/await_reactivity_loss`);\n\t}\n}\n\n/**\n * An async derived, `%name%` (%location%) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app\n * @param {string} name\n * @param {string} location\n */\nexport function await_waterfall(name, location) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] await_waterfall\\n%cAn async derived, \\`${name}\\` (${location}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app\\nhttps://svelte.dev/e/await_waterfall`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/await_waterfall`);\n\t}\n}\n\n/**\n * `%binding%` (%location%) is binding to a non-reactive property\n * @param {string} binding\n * @param {string | undefined | null} [location]\n */\nexport function binding_property_non_reactive(binding, location) {\n\tif (DEV) {\n\t\tconsole.warn(\n\t\t\t`%c[svelte] binding_property_non_reactive\\n%c${location\n\t\t\t\t? `\\`${binding}\\` (${location}) is binding to a non-reactive property`\n\t\t\t\t: `\\`${binding}\\` is binding to a non-reactive property`}\\nhttps://svelte.dev/e/binding_property_non_reactive`,\n\t\t\tbold,\n\t\t\tnormal\n\t\t);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/binding_property_non_reactive`);\n\t}\n}\n\n/**\n * Your `console.%method%` contained `$state` proxies. Consider using `$inspect(...)` or `$state.snapshot(...)` instead\n * @param {string} method\n */\nexport function console_log_state(method) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] console_log_state\\n%cYour \\`console.${method}\\` contained \\`$state\\` proxies. Consider using \\`$inspect(...)\\` or \\`$state.snapshot(...)\\` instead\\nhttps://svelte.dev/e/console_log_state`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/console_log_state`);\n\t}\n}\n\n/**\n * Reading a derived belonging to a now-destroyed effect may result in stale values\n */\nexport function derived_inert() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] derived_inert\\n%cReading a derived belonging to a now-destroyed effect may result in stale values\\nhttps://svelte.dev/e/derived_inert`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/derived_inert`);\n\t}\n}\n\n/**\n * %handler% should be a function. Did you mean to %suggestion%?\n * @param {string} handler\n * @param {string} suggestion\n */\nexport function event_handler_invalid(handler, suggestion) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] event_handler_invalid\\n%c${handler} should be a function. Did you mean to ${suggestion}?\\nhttps://svelte.dev/e/event_handler_invalid`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/event_handler_invalid`);\n\t}\n}\n\n/**\n * Expected to find a hydratable with key `%key%` during hydration, but did not.\n * @param {string} key\n */\nexport function hydratable_missing_but_expected(key) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] hydratable_missing_but_expected\\n%cExpected to find a hydratable with key \\`${key}\\` during hydration, but did not.\\nhttps://svelte.dev/e/hydratable_missing_but_expected`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/hydratable_missing_but_expected`);\n\t}\n}\n\n/**\n * The `%attribute%` attribute on `%html%` changed its value between server and client renders. The client value, `%value%`, will be ignored in favour of the server value\n * @param {string} attribute\n * @param {string} html\n * @param {string} value\n */\nexport function hydration_attribute_changed(attribute, html, value) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] hydration_attribute_changed\\n%cThe \\`${attribute}\\` attribute on \\`${html}\\` changed its value between server and client renders. The client value, \\`${value}\\`, will be ignored in favour of the server value\\nhttps://svelte.dev/e/hydration_attribute_changed`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/hydration_attribute_changed`);\n\t}\n}\n\n/**\n * The value of an `{@html ...}` block %location% changed between server and client renders. The client value will be ignored in favour of the server value\n * @param {string | undefined | null} [location]\n */\nexport function hydration_html_changed(location) {\n\tif (DEV) {\n\t\tconsole.warn(\n\t\t\t`%c[svelte] hydration_html_changed\\n%c${location\n\t\t\t\t? `The value of an \\`{@html ...}\\` block ${location} changed between server and client renders. The client value will be ignored in favour of the server value`\n\t\t\t\t: 'The value of an `{@html ...}` block changed between server and client renders. The client value will be ignored in favour of the server value'}\\nhttps://svelte.dev/e/hydration_html_changed`,\n\t\t\tbold,\n\t\t\tnormal\n\t\t);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/hydration_html_changed`);\n\t}\n}\n\n/**\n * Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near %location%\n * @param {string | undefined | null} [location]\n */\nexport function hydration_mismatch(location) {\n\tif (DEV) {\n\t\tconsole.warn(\n\t\t\t`%c[svelte] hydration_mismatch\\n%c${location\n\t\t\t\t? `Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${location}`\n\t\t\t\t: 'Hydration failed because the initial UI does not match what was rendered on the server'}\\nhttps://svelte.dev/e/hydration_mismatch`,\n\t\t\tbold,\n\t\t\tnormal\n\t\t);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/hydration_mismatch`);\n\t}\n}\n\n/**\n * The `render` function passed to `createRawSnippet` should return HTML for a single element\n */\nexport function invalid_raw_snippet_render() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] invalid_raw_snippet_render\\n%cThe \\`render\\` function passed to \\`createRawSnippet\\` should return HTML for a single element\\nhttps://svelte.dev/e/invalid_raw_snippet_render`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/invalid_raw_snippet_render`);\n\t}\n}\n\n/**\n * Detected a migrated `$:` reactive block in `%filename%` that both accesses and updates the same reactive value. This may cause recursive updates when converted to an `$effect`.\n * @param {string} filename\n */\nexport function legacy_recursive_reactive_block(filename) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] legacy_recursive_reactive_block\\n%cDetected a migrated \\`$:\\` reactive block in \\`${filename}\\` that both accesses and updates the same reactive value. This may cause recursive updates when converted to an \\`$effect\\`.\\nhttps://svelte.dev/e/legacy_recursive_reactive_block`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/legacy_recursive_reactive_block`);\n\t}\n}\n\n/**\n * Tried to unmount a component that was not mounted\n */\nexport function lifecycle_double_unmount() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] lifecycle_double_unmount\\n%cTried to unmount a component that was not mounted\\nhttps://svelte.dev/e/lifecycle_double_unmount`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/lifecycle_double_unmount`);\n\t}\n}\n\n/**\n * %parent% passed property `%prop%` to %child% with `bind:`, but its parent component %owner% did not declare `%prop%` as a binding. Consider creating a binding between %owner% and %parent% (e.g. `bind:%prop%={...}` instead of `%prop%={...}`)\n * @param {string} parent\n * @param {string} prop\n * @param {string} child\n * @param {string} owner\n */\nexport function ownership_invalid_binding(parent, prop, child, owner) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] ownership_invalid_binding\\n%c${parent} passed property \\`${prop}\\` to ${child} with \\`bind:\\`, but its parent component ${owner} did not declare \\`${prop}\\` as a binding. Consider creating a binding between ${owner} and ${parent} (e.g. \\`bind:${prop}={...}\\` instead of \\`${prop}={...}\\`)\\nhttps://svelte.dev/e/ownership_invalid_binding`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/ownership_invalid_binding`);\n\t}\n}\n\n/**\n * Mutating unbound props (`%name%`, at %location%) is strongly discouraged. Consider using `bind:%prop%={...}` in %parent% (or using a callback) instead\n * @param {string} name\n * @param {string} location\n * @param {string} prop\n * @param {string} parent\n */\nexport function ownership_invalid_mutation(name, location, prop, parent) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] ownership_invalid_mutation\\n%cMutating unbound props (\\`${name}\\`, at ${location}) is strongly discouraged. Consider using \\`bind:${prop}={...}\\` in ${parent} (or using a callback) instead\\nhttps://svelte.dev/e/ownership_invalid_mutation`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/ownership_invalid_mutation`);\n\t}\n}\n\n/**\n * The `value` property of a `<select multiple>` element should be an array, but it received a non-array value. The selection will be kept as is.\n */\nexport function select_multiple_invalid_value() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] select_multiple_invalid_value\\n%cThe \\`value\\` property of a \\`<select multiple>\\` element should be an array, but it received a non-array value. The selection will be kept as is.\\nhttps://svelte.dev/e/select_multiple_invalid_value`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/select_multiple_invalid_value`);\n\t}\n}\n\n/**\n * Reactive `$state(...)` proxies and the values they proxy have different identities. Because of this, comparisons with `%operator%` will produce unexpected results\n * @param {string} operator\n */\nexport function state_proxy_equality_mismatch(operator) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] state_proxy_equality_mismatch\\n%cReactive \\`$state(...)\\` proxies and the values they proxy have different identities. Because of this, comparisons with \\`${operator}\\` will produce unexpected results\\nhttps://svelte.dev/e/state_proxy_equality_mismatch`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/state_proxy_equality_mismatch`);\n\t}\n}\n\n/**\n * Tried to unmount a state proxy, rather than a component\n */\nexport function state_proxy_unmount() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] state_proxy_unmount\\n%cTried to unmount a state proxy, rather than a component\\nhttps://svelte.dev/e/state_proxy_unmount`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/state_proxy_unmount`);\n\t}\n}\n\n/**\n * A `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\n */\nexport function svelte_boundary_reset_noop() {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] svelte_boundary_reset_noop\\n%cA \\`<svelte:boundary>\\` \\`reset\\` function only resets the boundary the first time it is called\\nhttps://svelte.dev/e/svelte_boundary_reset_noop`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`);\n\t}\n}\n\n/**\n * The `slide` transition does not work correctly for elements with `display: %value%`\n * @param {string} value\n */\nexport function transition_slide_display(value) {\n\tif (DEV) {\n\t\tconsole.warn(`%c[svelte] transition_slide_display\\n%cThe \\`slide\\` transition does not work correctly for elements with \\`display: ${value}\\`\\nhttps://svelte.dev/e/transition_slide_display`, bold, normal);\n\t} else {\n\t\tconsole.warn(`https://svelte.dev/e/transition_slide_display`);\n\t}\n}","/** @import { TemplateNode } from '#client' */\n\nimport { COMMENT_NODE } from '#client/constants';\nimport {\n\tHYDRATION_END,\n\tHYDRATION_ERROR,\n\tHYDRATION_START,\n\tHYDRATION_START_ELSE\n} from '../../../constants.js';\nimport * as w from '../warnings.js';\nimport { get_next_sibling } from './operations.js';\n\n/**\n * Use this variable to guard everything related to hydration code so it can be treeshaken out\n * if the user doesn't use the `hydrate` method and these code paths are therefore not needed.\n */\nexport let hydrating = false;\n\n/** @param {boolean} value */\nexport function set_hydrating(value) {\n\thydrating = value;\n}\n\n/**\n * The node that is currently being hydrated. This starts out as the first node inside the opening\n * <!--[--> comment, and updates each time a component calls `$.child(...)` or `$.sibling(...)`.\n * When entering a block (e.g. `{#if ...}`), `hydrate_node` is the block opening comment; by the\n * time we leave the block it is the closing comment, which serves as the block's anchor.\n * @type {TemplateNode}\n */\nexport let hydrate_node;\n\n/** @param {TemplateNode | null} node */\nexport function set_hydrate_node(node) {\n\tif (node === null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\treturn (hydrate_node = node);\n}\n\nexport function hydrate_next() {\n\treturn set_hydrate_node(get_next_sibling(hydrate_node));\n}\n\n/** @param {TemplateNode} node */\nexport function reset(node) {\n\tif (!hydrating) return;\n\n\t// If the node has remaining siblings, something has gone wrong\n\tif (get_next_sibling(hydrate_node) !== null) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\thydrate_node = node;\n}\n\n/**\n * @param {HTMLTemplateElement} template\n */\nexport function hydrate_template(template) {\n\tif (hydrating) {\n\t\t// @ts-expect-error TemplateNode doesn't include DocumentFragment, but it's actually fine\n\t\thydrate_node = template.content;\n\t}\n}\n\nexport function next(count = 1) {\n\tif (hydrating) {\n\t\tvar i = count;\n\t\tvar node = hydrate_node;\n\n\t\twhile (i--) {\n\t\t\tnode = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\t}\n\n\t\thydrate_node = node;\n\t}\n}\n\n/**\n * Skips or removes (depending on {@link remove}) all nodes starting at `hydrate_node` up until the next hydration end comment\n * @param {boolean} remove\n */\nexport function skip_nodes(remove = true) {\n\tvar depth = 0;\n\tvar node = hydrate_node;\n\n\twhile (true) {\n\t\tif (node.nodeType === COMMENT_NODE) {\n\t\t\tvar data = /** @type {Comment} */ (node).data;\n\n\t\t\tif (data === HYDRATION_END) {\n\t\t\t\tif (depth === 0) return node;\n\t\t\t\tdepth -= 1;\n\t\t\t} else if (\n\t\t\t\tdata === HYDRATION_START ||\n\t\t\t\tdata === HYDRATION_START_ELSE ||\n\t\t\t\t// \"[1\", \"[2\", etc. for if blocks\n\t\t\t\t(data[0] === '[' && !isNaN(Number(data.slice(1))))\n\t\t\t) {\n\t\t\t\tdepth += 1;\n\t\t\t}\n\t\t}\n\n\t\tvar next = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tif (remove) node.remove();\n\t\tnode = next;\n\t}\n}\n\n/**\n *\n * @param {TemplateNode} node\n */\nexport function read_hydration_instruction(node) {\n\tif (!node || node.nodeType !== COMMENT_NODE) {\n\t\tw.hydration_mismatch();\n\t\tthrow HYDRATION_ERROR;\n\t}\n\n\treturn /** @type {Comment} */ (node).data;\n}\n","/** @import { Equals } from '#client' */\n\n/** @type {Equals} */\nexport function equals(value) {\n\treturn value === this.v;\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function safe_not_equal(a, b) {\n\treturn a != a\n\t\t? b == b\n\t\t: a !== b || (a !== null && typeof a === 'object') || typeof a === 'function';\n}\n\n/**\n * @param {unknown} a\n * @param {unknown} b\n * @returns {boolean}\n */\nexport function not_equal(a, b) {\n\treturn a !== b;\n}\n\n/** @type {Equals} */\nexport function safe_equals(value) {\n\treturn !safe_not_equal(value, this.v);\n}\n","/** @import { Derived, Reaction, Value } from '#client' */\nimport { UNINITIALIZED } from '../../../constants.js';\nimport { snapshot } from '../../shared/clone.js';\nimport { DERIVED, ASYNC, PROXY_PATH_SYMBOL, STATE_SYMBOL } from '#client/constants';\nimport { effect_tracking } from '../reactivity/effects.js';\nimport { active_reaction, untrack } from '../runtime.js';\n\n/**\n * @typedef {{\n *   traces: Error[];\n * }} TraceEntry\n */\n\n/** @type {{ reaction: Reaction | null, entries: Map<Value, TraceEntry> } | null} */\nexport let tracing_expressions = null;\n\n/**\n * @param {Value} signal\n * @param {TraceEntry} [entry]\n */\nfunction log_entry(signal, entry) {\n\tconst value = signal.v;\n\n\tif (value === UNINITIALIZED) {\n\t\treturn;\n\t}\n\n\tconst type = get_type(signal);\n\tconst current_reaction = /** @type {Reaction} */ (active_reaction);\n\tconst dirty = signal.wv > current_reaction.wv || current_reaction.wv === 0;\n\tconst style = dirty\n\t\t? 'color: CornflowerBlue; font-weight: bold'\n\t\t: 'color: grey; font-weight: normal';\n\n\t// eslint-disable-next-line no-console\n\tconsole.groupCollapsed(\n\t\tsignal.label ? `%c${type}%c ${signal.label}` : `%c${type}%c`,\n\t\tstyle,\n\t\tdirty ? 'font-weight: normal' : style,\n\t\ttypeof value === 'object' && value !== null && STATE_SYMBOL in value\n\t\t\t? snapshot(value, true)\n\t\t\t: value\n\t);\n\n\tif (type === '$derived') {\n\t\tconst deps = new Set(/** @type {Derived} */ (signal).deps);\n\t\tfor (const dep of deps) {\n\t\t\tlog_entry(dep);\n\t\t}\n\t}\n\n\tif (signal.created) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(signal.created);\n\t}\n\n\tif (dirty && signal.updated) {\n\t\tfor (const updated of signal.updated.values()) {\n\t\t\tif (updated.error) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(updated.error);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (entry) {\n\t\tfor (var trace of entry.traces) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log(trace);\n\t\t}\n\t}\n\n\t// eslint-disable-next-line no-console\n\tconsole.groupEnd();\n}\n\n/**\n * @param {Value} signal\n * @returns {'$state' | '$derived' | 'store'}\n */\nfunction get_type(signal) {\n\tif ((signal.f & (DERIVED | ASYNC)) !== 0) return '$derived';\n\treturn signal.label?.startsWith('$') ? 'store' : '$state';\n}\n\n/**\n * @template T\n * @param {() => string} label\n * @param {() => T} fn\n */\nexport function trace(label, fn) {\n\tvar previously_tracing_expressions = tracing_expressions;\n\n\ttry {\n\t\ttracing_expressions = { entries: new Map(), reaction: active_reaction };\n\n\t\tvar start = performance.now();\n\t\tvar value = fn();\n\t\tvar time = (performance.now() - start).toFixed(2);\n\n\t\tvar prefix = untrack(label);\n\n\t\tif (!effect_tracking()) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log(`${prefix} %cran outside of an effect (${time}ms)`, 'color: grey');\n\t\t} else if (tracing_expressions.entries.size === 0) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log(`${prefix} %cno reactive dependencies (${time}ms)`, 'color: grey');\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.group(`${prefix} %c(${time}ms)`, 'color: grey');\n\n\t\t\tvar entries = tracing_expressions.entries;\n\n\t\t\tuntrack(() => {\n\t\t\t\tfor (const [signal, traces] of entries) {\n\t\t\t\t\tlog_entry(signal, traces);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\ttracing_expressions = null;\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.groupEnd();\n\t\t}\n\n\t\treturn value;\n\t} finally {\n\t\ttracing_expressions = previously_tracing_expressions;\n\t}\n}\n\n/**\n * @param {Value} source\n * @param {string} label\n */\nexport function tag(source, label) {\n\tsource.label = label;\n\ttag_proxy(source.v, label);\n\n\treturn source;\n}\n\n/**\n * @param {unknown} value\n * @param {string} label\n */\nexport function tag_proxy(value, label) {\n\t// @ts-expect-error\n\tvalue?.[PROXY_PATH_SYMBOL]?.(label);\n\treturn value;\n}\n\n/**\n * @param {unknown} value\n */\nexport function label(value) {\n\tif (typeof value === 'symbol') return `Symbol(${value.description})`;\n\tif (typeof value === 'function') return '<function>';\n\tif (typeof value === 'object' && value) return '<object>';\n\treturn String(value);\n}\n","import { DEV } from 'esm-env';\nimport { define_property } from './utils.js';\nimport * as e from './errors.js';\n\n/**\n * @param {string} label\n * @returns {Error & { stack: string } | null}\n */\nexport function get_error(label) {\n\tconst error = new Error();\n\tconst stack = get_stack();\n\n\tif (stack.length === 0) {\n\t\treturn null;\n\t}\n\n\tstack.unshift('\\n');\n\n\tdefine_property(error, 'stack', {\n\t\tvalue: stack.join('\\n')\n\t});\n\n\tdefine_property(error, 'name', {\n\t\tvalue: label\n\t});\n\n\treturn /** @type {Error & { stack: string }} */ (error);\n}\n\n/**\n * @returns {string[]}\n */\nexport function get_stack() {\n\t// @ts-ignore - doesn't exist everywhere\n\tconst limit = Error.stackTraceLimit;\n\t// @ts-ignore - doesn't exist everywhere\n\tError.stackTraceLimit = Infinity;\n\tconst stack = new Error().stack;\n\t// @ts-ignore - doesn't exist everywhere\n\tError.stackTraceLimit = limit;\n\n\tif (!stack) return [];\n\n\tconst lines = stack.split('\\n');\n\tconst new_lines = [];\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i];\n\t\tconst posixified = line.replaceAll('\\\\', '/');\n\n\t\tif (line.trim() === 'Error') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (line.includes('validate_each_keys')) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (posixified.includes('svelte/src/internal') || posixified.includes('node_modules/.vite')) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tnew_lines.push(line);\n\t}\n\n\treturn new_lines;\n}\n\n/**\n * @param {boolean} condition\n * @param {string} message\n */\nexport function invariant(condition, message) {\n\tif (!DEV) {\n\t\tthrow new Error('invariant(...) was not guarded by if (DEV)');\n\t}\n\n\tif (!condition) e.invariant_violation(message);\n}\n","/** @import { ComponentContext, DevStackEntry, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport * as e from './errors.js';\nimport { active_effect, active_reaction } from './runtime.js';\nimport { create_user_effect } from './reactivity/effects.js';\nimport { async_mode_flag, legacy_mode_flag } from '../flags/index.js';\nimport { FILENAME } from '../../constants.js';\nimport { BRANCH_EFFECT } from './constants.js';\n\n/** @type {ComponentContext | null} */\nexport let component_context = null;\n\n/** @param {ComponentContext | null} context */\nexport function set_component_context(context) {\n\tcomponent_context = context;\n}\n\n/** @type {DevStackEntry | null} */\nexport let dev_stack = null;\n\n/** @param {DevStackEntry | null} stack */\nexport function set_dev_stack(stack) {\n\tdev_stack = stack;\n}\n\n/**\n * Execute a callback with a new dev stack entry\n * @param {() => any} callback - Function to execute\n * @param {DevStackEntry['type']} type - Type of block/component\n * @param {any} component - Component function\n * @param {number} line - Line number\n * @param {number} column - Column number\n * @param {Record<string, any>} [additional] - Any additional properties to add to the dev stack entry\n * @returns {any}\n */\nexport function add_svelte_meta(callback, type, component, line, column, additional) {\n\tconst parent = dev_stack;\n\n\tdev_stack = {\n\t\ttype,\n\t\tfile: component[FILENAME],\n\t\tline,\n\t\tcolumn,\n\t\tparent,\n\t\t...additional\n\t};\n\n\ttry {\n\t\treturn callback();\n\t} finally {\n\t\tdev_stack = parent;\n\t}\n}\n\n/**\n * The current component function. Different from current component context:\n * ```html\n * <!-- App.svelte -->\n * <Foo>\n *   <Bar /> <!-- context == Foo.svelte, function == App.svelte -->\n * </Foo>\n * ```\n * @type {ComponentContext['function']}\n */\nexport let dev_current_component_function = null;\n\n/** @param {ComponentContext['function']} fn */\nexport function set_dev_current_component_function(fn) {\n\tdev_current_component_function = fn;\n}\n\n/**\n * Returns a `[get, set]` pair of functions for working with context in a type-safe way.\n *\n * `get` will throw an error if no parent component called `set`.\n *\n * @template T\n * @returns {[() => T, (context: T) => T]}\n * @since 5.40.0\n */\nexport function createContext() {\n\tconst key = {};\n\n\treturn [\n\t\t() => {\n\t\t\tif (!hasContext(key)) {\n\t\t\t\te.missing_context();\n\t\t\t}\n\n\t\t\treturn getContext(key);\n\t\t},\n\t\t(context) => setContext(key, context)\n\t];\n}\n\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * [`createContext`](https://svelte.dev/docs/svelte/svelte#createContext) is a type-safe alternative.\n *\n * @template T\n * @param {any} key\n * @returns {T}\n */\nexport function getContext(key) {\n\tconst context_map = get_or_init_context_map('getContext');\n\tconst result = /** @type {T} */ (context_map.get(key));\n\treturn result;\n}\n\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * [`createContext`](https://svelte.dev/docs/svelte/svelte#createContext) is a type-safe alternative.\n *\n * @template T\n * @param {any} key\n * @param {T} context\n * @returns {T}\n */\nexport function setContext(key, context) {\n\tconst context_map = get_or_init_context_map('setContext');\n\n\tif (async_mode_flag) {\n\t\tvar flags = /** @type {Effect} */ (active_effect).f;\n\t\tvar valid =\n\t\t\t!active_reaction &&\n\t\t\t(flags & BRANCH_EFFECT) !== 0 &&\n\t\t\t// pop() runs synchronously, so this indicates we're setting context after an await\n\t\t\t!(/** @type {ComponentContext} */ (component_context).i);\n\n\t\tif (!valid) {\n\t\t\te.set_context_after_init();\n\t\t}\n\t}\n\n\tcontext_map.set(key, context);\n\treturn context;\n}\n\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * @param {any} key\n * @returns {boolean}\n */\nexport function hasContext(key) {\n\tconst context_map = get_or_init_context_map('hasContext');\n\treturn context_map.has(key);\n}\n\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * @template {Map<any, any>} [T=Map<any, any>]\n * @returns {T}\n */\nexport function getAllContexts() {\n\tconst context_map = get_or_init_context_map('getAllContexts');\n\treturn /** @type {T} */ (context_map);\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {any} runes\n * @param {Function} [fn]\n * @returns {void}\n */\nexport function push(props, runes = false, fn) {\n\tcomponent_context = {\n\t\tp: component_context,\n\t\ti: false,\n\t\tc: null,\n\t\te: null,\n\t\ts: props,\n\t\tx: null,\n\t\tr: /** @type {Effect} */ (active_effect),\n\t\tl: legacy_mode_flag && !runes ? { s: null, u: null, $: [] } : null\n\t};\n\n\tif (DEV) {\n\t\t// component function\n\t\tcomponent_context.function = fn;\n\t\tdev_current_component_function = fn;\n\t}\n}\n\n/**\n * @template {Record<string, any>} T\n * @param {T} [component]\n * @returns {T}\n */\nexport function pop(component) {\n\tvar context = /** @type {ComponentContext} */ (component_context);\n\tvar effects = context.e;\n\n\tif (effects !== null) {\n\t\tcontext.e = null;\n\n\t\tfor (var fn of effects) {\n\t\t\tcreate_user_effect(fn);\n\t\t}\n\t}\n\n\tif (component !== undefined) {\n\t\tcontext.x = component;\n\t}\n\n\tcontext.i = true;\n\n\tcomponent_context = context.p;\n\n\tif (DEV) {\n\t\tdev_current_component_function = component_context?.function ?? null;\n\t}\n\n\treturn component ?? /** @type {T} */ ({});\n}\n\n/** @returns {boolean} */\nexport function is_runes() {\n\treturn !legacy_mode_flag || (component_context !== null && component_context.l === null);\n}\n\n/**\n * @param {string} name\n * @returns {Map<unknown, unknown>}\n */\nfunction get_or_init_context_map(name) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component(name);\n\t}\n\n\treturn (component_context.c ??= new Map(get_parent_context(component_context) || undefined));\n}\n\n/**\n * @param {ComponentContext} component_context\n * @returns {Map<unknown, unknown> | null}\n */\nfunction get_parent_context(component_context) {\n\tlet parent = component_context.p;\n\twhile (parent !== null) {\n\t\tconst context_map = parent.c;\n\t\tif (context_map !== null) {\n\t\t\treturn context_map;\n\t\t}\n\t\tparent = parent.p;\n\t}\n\treturn null;\n}\n","import { run_all } from '../../shared/utils.js';\nimport { is_flushing_sync } from '../reactivity/batch.js';\n\n/** @type {Array<() => void>} */\nlet micro_tasks = [];\n\nfunction run_micro_tasks() {\n\tvar tasks = micro_tasks;\n\tmicro_tasks = [];\n\trun_all(tasks);\n}\n\n/**\n * @param {() => void} fn\n */\nexport function queue_micro_task(fn) {\n\tif (micro_tasks.length === 0 && !is_flushing_sync) {\n\t\tvar tasks = micro_tasks;\n\t\tqueueMicrotask(() => {\n\t\t\t// If this is false, a flushSync happened in the meantime. Do _not_ run new scheduled microtasks in that case\n\t\t\t// as the ordering of microtasks would be broken at that point - consider this case:\n\t\t\t// - queue_micro_task schedules microtask A to flush task X\n\t\t\t// - synchronously after, flushSync runs, processing task X\n\t\t\t// - synchronously after, some other microtask B is scheduled, but not through queue_micro_task but for example a Promise.resolve() in user code\n\t\t\t// - synchronously after, queue_micro_task schedules microtask C to flush task Y\n\t\t\t// - one tick later, microtask A now resolves, flushing task Y before microtask B, which is incorrect\n\t\t\t// This if check prevents that race condition (that realistically will only happen in tests)\n\t\t\tif (tasks === micro_tasks) run_micro_tasks();\n\t\t});\n\t}\n\n\tmicro_tasks.push(fn);\n}\n\n/**\n * Synchronously run any queued tasks.\n */\nexport function flush_tasks() {\n\twhile (micro_tasks.length > 0) {\n\t\trun_micro_tasks();\n\t}\n}\n","/** @import { Derived, Effect } from '#client' */\n/** @import { Boundary } from './dom/blocks/boundary.js' */\nimport { DEV } from 'esm-env';\nimport { FILENAME } from '../../constants.js';\nimport { is_firefox } from './dom/operations.js';\nimport { ERROR_VALUE, BOUNDARY_EFFECT, REACTION_RAN, EFFECT } from './constants.js';\nimport { define_property, get_descriptor } from '../shared/utils.js';\nimport { active_effect, active_reaction } from './runtime.js';\n\nconst adjustments = new WeakMap();\n\n/**\n * @param {unknown} error\n */\nexport function handle_error(error) {\n\tvar effect = active_effect;\n\n\t// for unowned deriveds, don't throw until we read the value\n\tif (effect === null) {\n\t\t/** @type {Derived} */ (active_reaction).f |= ERROR_VALUE;\n\t\treturn error;\n\t}\n\n\tif (DEV && error instanceof Error && !adjustments.has(error)) {\n\t\tadjustments.set(error, get_adjustments(error, effect));\n\t}\n\n\t// if the error occurred while creating this subtree, we let it\n\t// bubble up until it hits a boundary that can handle it, unless\n\t// it's an $effect in which case it doesn't run immediately\n\tif ((effect.f & REACTION_RAN) === 0 && (effect.f & EFFECT) === 0) {\n\t\tif (DEV && !effect.parent && error instanceof Error) {\n\t\t\tapply_adjustments(error);\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\t// otherwise we bubble up the effect tree ourselves\n\tinvoke_error_boundary(error, effect);\n}\n\n/**\n * @param {unknown} error\n * @param {Effect | null} effect\n */\nexport function invoke_error_boundary(error, effect) {\n\twhile (effect !== null) {\n\t\tif ((effect.f & BOUNDARY_EFFECT) !== 0) {\n\t\t\tif ((effect.f & REACTION_RAN) === 0) {\n\t\t\t\t// we are still creating the boundary effect\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t/** @type {Boundary} */ (effect.b).error(error);\n\t\t\t\treturn;\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\n\t\teffect = effect.parent;\n\t}\n\n\tif (DEV && error instanceof Error) {\n\t\tapply_adjustments(error);\n\t}\n\n\tthrow error;\n}\n\n/**\n * Add useful information to the error message/stack in development\n * @param {Error} error\n * @param {Effect} effect\n */\nfunction get_adjustments(error, effect) {\n\tconst message_descriptor = get_descriptor(error, 'message');\n\n\t// if the message was already changed and it's not configurable we can't change it\n\t// or it will throw a different error swallowing the original error\n\tif (message_descriptor && !message_descriptor.configurable) return;\n\n\tvar indent = is_firefox ? '  ' : '\\t';\n\tvar component_stack = `\\n${indent}in ${effect.fn?.name || '<unknown>'}`;\n\tvar context = effect.ctx;\n\n\twhile (context !== null) {\n\t\tcomponent_stack += `\\n${indent}in ${context.function?.[FILENAME].split('/').pop()}`;\n\t\tcontext = context.p;\n\t}\n\n\treturn {\n\t\tmessage: error.message + `\\n${component_stack}\\n`,\n\t\tstack: error.stack\n\t\t\t?.split('\\n')\n\t\t\t.filter((line) => !line.includes('svelte/src/internal'))\n\t\t\t.join('\\n')\n\t};\n}\n\n/**\n * @param {Error} error\n */\nfunction apply_adjustments(error) {\n\tconst adjusted = adjustments.get(error);\n\n\tif (adjusted) {\n\t\tdefine_property(error, 'message', {\n\t\t\tvalue: adjusted.message\n\t\t});\n\n\t\tdefine_property(error, 'stack', {\n\t\t\tvalue: adjusted.stack\n\t\t});\n\t}\n}\n","/** @import { Derived, Signal } from '#client' */\nimport { CLEAN, CONNECTED, DIRTY, MAYBE_DIRTY } from '#client/constants';\n\nconst STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);\n\n/**\n * @param {Signal} signal\n * @param {number} status\n */\nexport function set_signal_status(signal, status) {\n\tsignal.f = (signal.f & STATUS_MASK) | status;\n}\n\n/**\n * Set a derived's status to CLEAN or MAYBE_DIRTY based on its connection state.\n * @param {Derived} derived\n */\nexport function update_derived_status(derived) {\n\t// Only mark as MAYBE_DIRTY if disconnected and has dependencies.\n\tif ((derived.f & CONNECTED) !== 0 || derived.deps === null) {\n\t\tset_signal_status(derived, CLEAN);\n\t} else {\n\t\tset_signal_status(derived, MAYBE_DIRTY);\n\t}\n}\n","/** @import { Derived, Effect, Value } from '#client' */\nimport { CLEAN, DERIVED, DIRTY, MAYBE_DIRTY, WAS_MARKED } from '#client/constants';\nimport { set_signal_status } from './status.js';\n\n/**\n * @param {Value[] | null} deps\n */\nfunction clear_marked(deps) {\n\tif (deps === null) return;\n\n\tfor (const dep of deps) {\n\t\tif ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdep.f ^= WAS_MARKED;\n\n\t\tclear_marked(/** @type {Derived} */ (dep).deps);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {Set<Effect>} dirty_effects\n * @param {Set<Effect>} maybe_dirty_effects\n */\nexport function defer_effect(effect, dirty_effects, maybe_dirty_effects) {\n\tif ((effect.f & DIRTY) !== 0) {\n\t\tdirty_effects.add(effect);\n\t} else if ((effect.f & MAYBE_DIRTY) !== 0) {\n\t\tmaybe_dirty_effects.add(effect);\n\t}\n\n\t// Since we're not executing these effects now, we need to clear any WAS_MARKED flags\n\t// so that other batches can correctly reach these effects during their own traversal\n\tclear_marked(effect.deps);\n\n\t// mark as clean so they get scheduled if they depend on pending async state\n\tset_signal_status(effect, CLEAN);\n}\n","/** @import { Readable } from './public' */\nimport { untrack } from '../internal/client/runtime.js';\nimport { noop } from '../internal/shared/utils.js';\n\n/**\n * @template T\n * @param {Readable<T> | null | undefined} store\n * @param {(value: T) => void} run\n * @param {(value: T) => void} [invalidate]\n * @returns {() => void}\n */\nexport function subscribe_to_store(store, run, invalidate) {\n\tif (store == null) {\n\t\t// @ts-expect-error\n\t\trun(undefined);\n\n\t\t// @ts-expect-error\n\t\tif (invalidate) invalidate(undefined);\n\n\t\treturn noop;\n\t}\n\n\t// Svelte store takes a private second argument\n\t// StartStopNotifier could mutate state, and we want to silence the corresponding validation error\n\tconst unsub = untrack(() =>\n\t\tstore.subscribe(\n\t\t\trun,\n\t\t\t// @ts-expect-error\n\t\t\tinvalidate\n\t\t)\n\t);\n\n\t// Also support RxJS\n\t// @ts-expect-error TODO fix this in the types?\n\treturn unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\n","/** @import { Readable, StartStopNotifier, Subscriber, Unsubscriber, Updater, Writable } from '../public.js' */\n/** @import { Stores, StoresValues, SubscribeInvalidateTuple } from '../private.js' */\nimport { noop, run_all } from '../../internal/shared/utils.js';\nimport { safe_not_equal } from '../../internal/client/reactivity/equality.js';\nimport { subscribe_to_store } from '../utils.js';\n\n/**\n * @type {Array<SubscribeInvalidateTuple<any> | any>}\n */\nconst subscriber_queue = [];\n\n/**\n * Creates a `Readable` store that allows reading by subscription.\n *\n * @template T\n * @param {T} [value] initial value\n * @param {StartStopNotifier<T>} [start]\n * @returns {Readable<T>}\n */\nexport function readable(value, start) {\n\treturn {\n\t\tsubscribe: writable(value, start).subscribe\n\t};\n}\n\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n *\n * @template T\n * @param {T} [value] initial value\n * @param {StartStopNotifier<T>} [start]\n * @returns {Writable<T>}\n */\nexport function writable(value, start = noop) {\n\t/** @type {Unsubscriber | null} */\n\tlet stop = null;\n\n\t/** @type {Set<SubscribeInvalidateTuple<T>>} */\n\tconst subscribers = new Set();\n\n\t/**\n\t * @param {T} new_value\n\t * @returns {void}\n\t */\n\tfunction set(new_value) {\n\t\tif (safe_not_equal(value, new_value)) {\n\t\t\tvalue = new_value;\n\t\t\tif (stop) {\n\t\t\t\t// store is ready\n\t\t\t\tconst run_queue = !subscriber_queue.length;\n\t\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\t\tsubscriber[1]();\n\t\t\t\t\tsubscriber_queue.push(subscriber, value);\n\t\t\t\t}\n\t\t\t\tif (run_queue) {\n\t\t\t\t\tfor (let i = 0; i < subscriber_queue.length; i += 2) {\n\t\t\t\t\t\tsubscriber_queue[i][0](subscriber_queue[i + 1]);\n\t\t\t\t\t}\n\t\t\t\t\tsubscriber_queue.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {Updater<T>} fn\n\t * @returns {void}\n\t */\n\tfunction update(fn) {\n\t\tset(fn(/** @type {T} */ (value)));\n\t}\n\n\t/**\n\t * @param {Subscriber<T>} run\n\t * @param {() => void} [invalidate]\n\t * @returns {Unsubscriber}\n\t */\n\tfunction subscribe(run, invalidate = noop) {\n\t\t/** @type {SubscribeInvalidateTuple<T>} */\n\t\tconst subscriber = [run, invalidate];\n\t\tsubscribers.add(subscriber);\n\t\tif (subscribers.size === 1) {\n\t\t\tstop = start(set, update) || noop;\n\t\t}\n\t\trun(/** @type {T} */ (value));\n\t\treturn () => {\n\t\t\tsubscribers.delete(subscriber);\n\t\t\tif (subscribers.size === 0 && stop) {\n\t\t\t\tstop();\n\t\t\t\tstop = null;\n\t\t\t}\n\t\t};\n\t}\n\treturn { set, update, subscribe };\n}\n\n/**\n * Derived value store by synchronizing one or more readable stores and\n * applying an aggregation function over its input values.\n *\n * @template {Stores} S\n * @template T\n * @overload\n * @param {S} stores\n * @param {(values: StoresValues<S>, set: (value: T) => void, update: (fn: Updater<T>) => void) => Unsubscriber | void} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\n/**\n * Derived value store by synchronizing one or more readable stores and\n * applying an aggregation function over its input values.\n *\n * @template {Stores} S\n * @template T\n * @overload\n * @param {S} stores\n * @param {(values: StoresValues<S>) => T} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\n/**\n * @template {Stores} S\n * @template T\n * @param {S} stores\n * @param {Function} fn\n * @param {T} [initial_value]\n * @returns {Readable<T>}\n */\nexport function derived(stores, fn, initial_value) {\n\tconst single = !Array.isArray(stores);\n\t/** @type {Array<Readable<any>>} */\n\tconst stores_array = single ? [stores] : stores;\n\tif (!stores_array.every(Boolean)) {\n\t\tthrow new Error('derived() expects stores as input, got a falsy value');\n\t}\n\tconst auto = fn.length < 2;\n\treturn readable(initial_value, (set, update) => {\n\t\tlet started = false;\n\t\t/** @type {T[]} */\n\t\tconst values = [];\n\t\tlet pending = 0;\n\t\tlet cleanup = noop;\n\t\tconst sync = () => {\n\t\t\tif (pending) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcleanup();\n\t\t\tconst result = fn(single ? values[0] : values, set, update);\n\t\t\tif (auto) {\n\t\t\t\tset(result);\n\t\t\t} else {\n\t\t\t\tcleanup = typeof result === 'function' ? result : noop;\n\t\t\t}\n\t\t};\n\t\tconst unsubscribers = stores_array.map((store, i) =>\n\t\t\tsubscribe_to_store(\n\t\t\t\tstore,\n\t\t\t\t(value) => {\n\t\t\t\t\tvalues[i] = value;\n\t\t\t\t\tpending &= ~(1 << i);\n\t\t\t\t\tif (started) {\n\t\t\t\t\t\tsync();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tpending |= 1 << i;\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tstarted = true;\n\t\tsync();\n\t\treturn function stop() {\n\t\t\trun_all(unsubscribers);\n\t\t\tcleanup();\n\t\t\t// We need to set this to false because callbacks can still happen despite having unsubscribed:\n\t\t\t// Callbacks might already be placed in the queue which doesn't know it should no longer\n\t\t\t// invoke this derived store.\n\t\t\tstarted = false;\n\t\t};\n\t});\n}\n\n/**\n * Takes a store and returns a new one derived from the old one that is readable.\n *\n * @template T\n * @param {Readable<T>} store  - store to make readonly\n * @returns {Readable<T>}\n */\nexport function readonly(store) {\n\treturn {\n\t\t// @ts-expect-error TODO i suspect the bind is unnecessary\n\t\tsubscribe: store.subscribe.bind(store)\n\t};\n}\n\n/**\n * Get the current value from a store by subscribing and immediately unsubscribing.\n *\n * @template T\n * @param {Readable<T>} store\n * @returns {T}\n */\nexport function get(store) {\n\tlet value;\n\tsubscribe_to_store(store, (_) => (value = _))();\n\t// @ts-expect-error\n\treturn value;\n}\n","/** @import { StoreReferencesContainer } from '#client' */\n/** @import { Store } from '#shared' */\nimport { subscribe_to_store } from '../../../store/utils.js';\nimport { get as get_store } from '../../../store/shared/index.js';\nimport { define_property, noop } from '../../shared/utils.js';\nimport { get } from '../runtime.js';\nimport { teardown } from './effects.js';\nimport { mutable_source, set } from './sources.js';\nimport { DEV } from 'esm-env';\n\n/**\n * We set this to `true` when updating a store so that we correctly\n * schedule effects if the update takes place inside a `$:` effect\n */\nexport let legacy_is_updating_store = false;\n\n/**\n * Whether or not the prop currently being read is a store binding, as in\n * `<Child bind:x={$y} />`. If it is, we treat the prop as mutable even in\n * runes mode, and skip `binding_property_non_reactive` validation\n */\nlet is_store_binding = false;\n\nlet IS_UNMOUNTED = Symbol();\n\n/**\n * Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy\n * signal that will be updated when the store is. The store references container is needed to\n * track reassignments to stores and to track the correct component context.\n * @template V\n * @param {Store<V> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n * @returns {V}\n */\nexport function store_get(store, store_name, stores) {\n\tconst entry = (stores[store_name] ??= {\n\t\tstore: null,\n\t\tsource: mutable_source(undefined),\n\t\tunsubscribe: noop\n\t});\n\n\tif (DEV) {\n\t\tentry.source.label = store_name;\n\t}\n\n\t// if the component that setup this is already unmounted we don't want to register a subscription\n\tif (entry.store !== store && !(IS_UNMOUNTED in stores)) {\n\t\tentry.unsubscribe();\n\t\tentry.store = store ?? null;\n\n\t\tif (store == null) {\n\t\t\tentry.source.v = undefined; // see synchronous callback comment below\n\t\t\tentry.unsubscribe = noop;\n\t\t} else {\n\t\t\tvar is_synchronous_callback = true;\n\n\t\t\tentry.unsubscribe = subscribe_to_store(store, (v) => {\n\t\t\t\tif (is_synchronous_callback) {\n\t\t\t\t\t// If the first updates to the store value (possibly multiple of them) are synchronously\n\t\t\t\t\t// inside a derived, we will hit the `state_unsafe_mutation` error if we `set` the value\n\t\t\t\t\tentry.source.v = v;\n\t\t\t\t} else {\n\t\t\t\t\tset(entry.source, v);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tis_synchronous_callback = false;\n\t\t}\n\t}\n\n\t// if the component that setup this stores is already unmounted the source will be out of sync\n\t// so we just use the `get` for the stores, less performant but it avoids to create a memory leak\n\t// and it will keep the value consistent\n\tif (store && IS_UNMOUNTED in stores) {\n\t\treturn get_store(store);\n\t}\n\n\treturn get(entry.source);\n}\n\n/**\n * Unsubscribe from a store if it's not the same as the one in the store references container.\n * We need this in addition to `store_get` because someone could unsubscribe from a store but\n * then never subscribe to the new one (if any), causing the subscription to stay open wrongfully.\n * @param {Store<any> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n */\nexport function store_unsub(store, store_name, stores) {\n\t/** @type {StoreReferencesContainer[''] | undefined} */\n\tlet entry = stores[store_name];\n\n\tif (entry && entry.store !== store) {\n\t\t// Don't reset store yet, so that store_get above can resubscribe to new store if necessary\n\t\tentry.unsubscribe();\n\t\tentry.unsubscribe = noop;\n\t}\n\n\treturn store;\n}\n\n/**\n * Sets the new value of a store and returns that value.\n * @template V\n * @param {Store<V>} store\n * @param {V} value\n * @returns {V}\n */\nexport function store_set(store, value) {\n\tupdate_with_flag(store, value);\n\treturn value;\n}\n\n/**\n * @param {StoreReferencesContainer} stores\n * @param {string} store_name\n */\nexport function invalidate_store(stores, store_name) {\n\tvar entry = stores[store_name];\n\tif (entry.store !== null) {\n\t\tstore_set(entry.store, entry.source.v);\n\t}\n}\n\n/**\n * Unsubscribes from all auto-subscribed stores on destroy\n * @returns {[StoreReferencesContainer, ()=>void]}\n */\nexport function setup_stores() {\n\t/** @type {StoreReferencesContainer} */\n\tconst stores = {};\n\n\tfunction cleanup() {\n\t\tteardown(() => {\n\t\t\tfor (var store_name in stores) {\n\t\t\t\tconst ref = stores[store_name];\n\t\t\t\tref.unsubscribe();\n\t\t\t}\n\t\t\tdefine_property(stores, IS_UNMOUNTED, {\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: true\n\t\t\t});\n\t\t});\n\t}\n\n\treturn [stores, cleanup];\n}\n\n/**\n * @param {Store<V>} store\n * @param {V} value\n * @template V\n */\nfunction update_with_flag(store, value) {\n\tlegacy_is_updating_store = true;\n\n\ttry {\n\t\tstore.set(value);\n\t} finally {\n\t\tlegacy_is_updating_store = false;\n\t}\n}\n\n/**\n * Updates a store with a new value.\n * @param {Store<V>} store  the store to update\n * @param {any} expression  the expression that mutates the store\n * @param {V} new_value  the new store value\n * @template V\n */\nexport function store_mutate(store, expression, new_value) {\n\tupdate_with_flag(store, new_value);\n\treturn expression;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_store(store, store_value, d = 1) {\n\tupdate_with_flag(store, store_value + d);\n\treturn store_value;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_store(store, store_value, d = 1) {\n\tconst value = store_value + d;\n\tupdate_with_flag(store, value);\n\treturn value;\n}\n\n/**\n * Called inside prop getters to communicate that the prop is a store binding\n */\nexport function mark_store_binding() {\n\tis_store_binding = true;\n}\n\n/**\n * Returns a tuple that indicates whether `fn()` reads a prop that is a store binding.\n * Used to prevent `binding_property_non_reactive` validation false positives and\n * ensure that these props are treated as mutable even in runes mode\n * @template T\n * @param {() => T} fn\n * @returns {[T, boolean]}\n */\nexport function capture_store_binding(fn) {\n\tvar previous_is_store_binding = is_store_binding;\n\n\ttry {\n\t\tis_store_binding = false;\n\t\treturn [fn(), is_store_binding];\n\t} finally {\n\t\tis_store_binding = previous_is_store_binding;\n\t}\n}\n","/** @import { Fork } from 'svelte' */\n/** @import { Derived, Effect, Reaction, Source, Value } from '#client' */\nimport {\n\tBLOCK_EFFECT,\n\tBRANCH_EFFECT,\n\tCLEAN,\n\tDESTROYED,\n\tDIRTY,\n\tEFFECT,\n\tASYNC,\n\tINERT,\n\tRENDER_EFFECT,\n\tROOT_EFFECT,\n\tMAYBE_DIRTY,\n\tDERIVED,\n\tEAGER_EFFECT,\n\tERROR_VALUE,\n\tMANAGED_EFFECT,\n\tREACTION_RAN,\n\tDESTROYING\n} from '#client/constants';\nimport { async_mode_flag } from '../../flags/index.js';\nimport { deferred, define_property, includes } from '../../shared/utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tincrement_write_version,\n\tis_dirty,\n\tupdate_effect\n} from '../runtime.js';\nimport * as e from '../errors.js';\nimport { flush_tasks, queue_micro_task } from '../dom/task.js';\nimport { DEV } from 'esm-env';\nimport { invoke_error_boundary } from '../error-handling.js';\nimport { flush_eager_effects, old_values, set_eager_effects, source, update } from './sources.js';\nimport { eager_effect, teardown, unlink_effect } from './effects.js';\nimport { defer_effect } from './utils.js';\nimport { UNINITIALIZED } from '../../../constants.js';\nimport { set_signal_status } from './status.js';\nimport { legacy_is_updating_store } from './store.js';\nimport { invariant } from '../../shared/dev.js';\nimport { log_effect_tree } from '../dev/debug.js';\n\n/** @type {Batch | null} */\nlet first_batch = null;\n\n/** @type {Batch | null} */\nlet last_batch = null;\n\n/** @type {Batch | null} */\nexport let current_batch = null;\n\n/**\n * This is needed to avoid overwriting inputs\n * @type {Batch | null}\n */\nexport let previous_batch = null;\n\n/**\n * When time travelling (i.e. working in one batch, while other batches\n * still have ongoing work), we ignore the real values of affected\n * signals in favour of their values within the batch\n * @type {Map<Value, any> | null}\n */\nexport let batch_values = null;\n\n/** @type {Effect | null} */\nlet last_scheduled_effect = null;\n\nexport let is_flushing_sync = false;\nlet is_processing = false;\n\n/**\n * During traversal, this is an array. Newly created effects are (if not immediately\n * executed) pushed to this array, rather than going through the scheduling\n * rigamarole that would cause another turn of the flush loop.\n * @type {Effect[] | null}\n */\nexport let collected_effects = null;\n\n/**\n * An array of effects that are marked during traversal as a result of a `set`\n * (not `internal_set`) call. These will be added to the next batch and\n * trigger another `batch.process()`\n * @type {Effect[] | null}\n * @deprecated when we get rid of legacy mode and stores, we can get rid of this\n */\nexport let legacy_updates = null;\n\nvar flush_count = 0;\n\n/** @type {Set<Value>} */\nvar source_stacks = new Set();\n\nlet uid = 1;\n\nexport class Batch {\n\tid = uid++;\n\n\t/** True as soon as `#process` was called */\n\t#started = false;\n\n\tlinked = true;\n\n\t/** @type {Batch | null} */\n\t#prev = null;\n\n\t/** @type {Batch | null} */\n\t#next = null;\n\n\t/** @type {Map<Effect, ReturnType<typeof deferred<any>>>} */\n\tasync_deriveds = new Map();\n\n\t/**\n\t * The current values of any signals that are updated in this batch.\n\t * Tuple format: [value, is_derived] (note: is_derived is false for deriveds, too, if they were overridden via assignment)\n\t * They keys of this map are identical to `this.#previous`\n\t * @type {Map<Value, [any, boolean]>}\n\t */\n\tcurrent = new Map();\n\n\t/**\n\t * The values of any signals (sources and deriveds) that are updated in this batch _before_ those updates took place.\n\t * They keys of this map are identical to `this.#current`\n\t * @type {Map<Value, any>}\n\t */\n\tprevious = new Map();\n\n\t/**\n\t * Async effects which this batch doesn't take into account anymore when calculating blockers,\n\t * as it has a value for it already.\n\t * @type {Set<Effect>}\n\t */\n\tunblocked = new Set();\n\n\t/**\n\t * When the batch is committed (and the DOM is updated), we need to remove old branches\n\t * and append new ones by calling the functions added inside (if/each/key/etc) blocks\n\t * @type {Set<(batch: Batch) => void>}\n\t */\n\t#commit_callbacks = new Set();\n\n\t/**\n\t * If a fork is discarded, we need to destroy any effects that are no longer needed\n\t * @type {Set<(batch: Batch) => void>}\n\t */\n\t#discard_callbacks = new Set();\n\n\t/**\n\t * Callbacks that should run only when a fork is committed.\n\t * @type {Set<(batch: Batch) => void>}\n\t */\n\t#fork_commit_callbacks = new Set();\n\n\t/**\n\t * The number of async effects that are currently in flight\n\t */\n\t#pending = 0;\n\n\t/**\n\t * Async effects that are currently in flight, _not_ inside a pending boundary\n\t * @type {Map<Effect, number>}\n\t */\n\t#blocking_pending = new Map();\n\n\t/**\n\t * A deferred that resolves when the batch is committed, used with `settled()`\n\t * TODO replace with Promise.withResolvers once supported widely enough\n\t * @type {{ promise: Promise<void>, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}\n\t */\n\t#deferred = null;\n\n\t/**\n\t * The root effects that need to be flushed\n\t * @type {Effect[]}\n\t */\n\t#roots = [];\n\n\t/**\n\t * Effects created while this batch was active.\n\t * @type {Effect[]}\n\t */\n\t#new_effects = [];\n\n\t/**\n\t * Deferred effects (which run after async work has completed) that are DIRTY\n\t * @type {Set<Effect>}\n\t */\n\t#dirty_effects = new Set();\n\n\t/**\n\t * Deferred effects that are MAYBE_DIRTY\n\t * @type {Set<Effect>}\n\t */\n\t#maybe_dirty_effects = new Set();\n\n\t/**\n\t * A map of branches that still exist, but will be destroyed when this batch\n\t * is committed — we skip over these during `process`.\n\t * The value contains child effects that were dirty/maybe_dirty before being reset,\n\t * so they can be rescheduled if the branch survives.\n\t * @type {Map<Effect, { d: Effect[], m: Effect[] }>}\n\t */\n\t#skipped_branches = new Map();\n\n\t/**\n\t * Inverse of #skipped_branches which we need to tell prior batches to unskip them when committing\n\t * @type {Set<Effect>}\n\t */\n\t#unskipped_branches = new Set();\n\n\tis_fork = false;\n\n\t#decrement_queued = false;\n\n\t#is_deferred() {\n\t\tif (this.is_fork) return true;\n\n\t\tfor (const effect of this.#blocking_pending.keys()) {\n\t\t\tvar e = effect;\n\t\t\tvar skipped = false;\n\n\t\t\twhile (e.parent !== null) {\n\t\t\t\tif (this.#skipped_branches.has(e)) {\n\t\t\t\t\tskipped = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\te = e.parent;\n\t\t\t}\n\n\t\t\tif (!skipped) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Add an effect to the #skipped_branches map and reset its children\n\t * @param {Effect} effect\n\t */\n\tskip_effect(effect) {\n\t\tif (!this.#skipped_branches.has(effect)) {\n\t\t\tthis.#skipped_branches.set(effect, { d: [], m: [] });\n\t\t}\n\t\tthis.#unskipped_branches.delete(effect);\n\t}\n\n\t/**\n\t * Remove an effect from the #skipped_branches map and reschedule\n\t * any tracked dirty/maybe_dirty child effects\n\t * @param {Effect} effect\n\t * @param {(e: Effect) => void} callback\n\t */\n\tunskip_effect(effect, callback = (e) => this.schedule(e)) {\n\t\tvar tracked = this.#skipped_branches.get(effect);\n\t\tif (tracked) {\n\t\t\tthis.#skipped_branches.delete(effect);\n\n\t\t\tfor (var e of tracked.d) {\n\t\t\t\tset_signal_status(e, DIRTY);\n\t\t\t\tcallback(e);\n\t\t\t}\n\n\t\t\tfor (e of tracked.m) {\n\t\t\t\tset_signal_status(e, MAYBE_DIRTY);\n\t\t\t\tcallback(e);\n\t\t\t}\n\t\t}\n\t\tthis.#unskipped_branches.add(effect);\n\t}\n\n\t#process() {\n\t\tthis.#started = true;\n\n\t\tif (flush_count++ > 1000) {\n\t\t\tthis.#unlink();\n\t\t\tinfinite_loop_guard();\n\t\t}\n\n\t\tif (DEV) {\n\t\t\t// track all the values that were updated during this flush,\n\t\t\t// so that they can be reset afterwards\n\t\t\tfor (const value of this.current.keys()) {\n\t\t\t\tsource_stacks.add(value);\n\t\t\t}\n\t\t}\n\n\t\t// we only reschedule previously-deferred effects if we expect\n\t\t// to be able to run them after processing the batch\n\t\tif (!this.#is_deferred()) {\n\t\t\tfor (const e of this.#dirty_effects) {\n\t\t\t\tthis.#maybe_dirty_effects.delete(e);\n\t\t\t\tset_signal_status(e, DIRTY);\n\t\t\t\tthis.schedule(e);\n\t\t\t}\n\n\t\t\tfor (const e of this.#maybe_dirty_effects) {\n\t\t\t\tset_signal_status(e, MAYBE_DIRTY);\n\t\t\t\tthis.schedule(e);\n\t\t\t}\n\t\t}\n\n\t\tconst roots = this.#roots;\n\t\tthis.#roots = [];\n\n\t\tthis.apply();\n\n\t\t/** @type {Effect[]} */\n\t\tvar effects = (collected_effects = []);\n\n\t\t/** @type {Effect[]} */\n\t\tvar render_effects = [];\n\n\t\t/**\n\t\t * @type {Effect[]}\n\t\t * @deprecated when we get rid of legacy mode and stores, we can get rid of this\n\t\t */\n\t\tvar updates = (legacy_updates = []);\n\n\t\tfor (const root of roots) {\n\t\t\ttry {\n\t\t\t\tthis.#traverse(root, effects, render_effects);\n\t\t\t} catch (e) {\n\t\t\t\treset_all(root);\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\n\t\t// any writes should take effect in a subsequent batch\n\t\tcurrent_batch = null;\n\n\t\tif (updates.length > 0) {\n\t\t\tvar batch = Batch.ensure();\n\t\t\tfor (const e of updates) {\n\t\t\t\tbatch.schedule(e);\n\t\t\t}\n\t\t}\n\n\t\tcollected_effects = null;\n\t\tlegacy_updates = null;\n\n\t\t// if the batch has outstanding pending work, stash effects and bail\n\t\tif (this.#is_deferred()) {\n\t\t\tthis.#defer_effects(render_effects);\n\t\t\tthis.#defer_effects(effects);\n\n\t\t\tfor (const [e, t] of this.#skipped_branches) {\n\t\t\t\treset_branch(e, t);\n\t\t\t}\n\n\t\t\tif (updates.length > 0) {\n\t\t\t\t/** @type {Batch} */ (/** @type {unknown} */ (current_batch)).#process();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst earlier_batch = this.#find_earlier_batch();\n\n\t\tif (earlier_batch) {\n\t\t\tearlier_batch.#merge(this);\n\t\t\treturn;\n\t\t}\n\n\t\t// clear effects. Those that are still needed will be rescheduled through unskipping the skipped branches.\n\t\tthis.#dirty_effects.clear();\n\t\tthis.#maybe_dirty_effects.clear();\n\n\t\t// append/remove branches\n\t\tfor (const fn of this.#commit_callbacks) fn(this);\n\t\tthis.#commit_callbacks.clear();\n\n\t\tprevious_batch = this;\n\t\tflush_queued_effects(render_effects);\n\t\tflush_queued_effects(effects);\n\t\tprevious_batch = null;\n\n\t\tthis.#deferred?.resolve();\n\n\t\tvar next_batch = /** @type {Batch | null} */ (/** @type {unknown} */ (current_batch));\n\n\t\tif (this.linked && this.#pending === 0) {\n\t\t\tthis.#unlink();\n\t\t}\n\n\t\t// Order matters here - we need to commit and THEN continue flushing new batches, not the other way around,\n\t\t// else we could start flushing a new batch and then, if it has pending work, rebase it right afterwards, which is wrong.\n\t\t// In sync mode flushSync can cause #commit to wrongfully think that there needs to be a rebase, so we only do it in async mode\n\t\t// TODO fix the underlying cause, otherwise this will likely regress when non-async mode is removed\n\t\tif (async_mode_flag && !this.linked) {\n\t\t\tthis.#commit();\n\t\t\t// Rebases can activate other batches or null it out, therefore restore the new one here\n\t\t\tcurrent_batch = next_batch;\n\t\t}\n\n\t\t// Edge case: During traversal new branches might create effects that run immediately and set state,\n\t\t// causing an effect and therefore a root to be scheduled again. We need to traverse the current batch\n\t\t// once more in that case - most of the time this will just clean up dirty branches.\n\t\tif (this.#roots.length > 0) {\n\t\t\tif (next_batch === null) {\n\t\t\t\tnext_batch = this;\n\t\t\t\tthis.#link();\n\t\t\t}\n\n\t\t\tconst batch = next_batch;\n\t\t\tbatch.#roots.push(...this.#roots.filter((r) => !batch.#roots.includes(r)));\n\t\t}\n\n\t\tif (next_batch !== null) {\n\t\t\tnext_batch.#process();\n\t\t}\n\t}\n\n\t/**\n\t * Traverse the effect tree, executing effects or stashing\n\t * them for later execution as appropriate\n\t * @param {Effect} root\n\t * @param {Effect[]} effects\n\t * @param {Effect[]} render_effects\n\t */\n\t#traverse(root, effects, render_effects) {\n\t\troot.f ^= CLEAN;\n\n\t\tvar effect = root.first;\n\n\t\twhile (effect !== null) {\n\t\t\tvar flags = effect.f;\n\t\t\tvar is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;\n\t\t\tvar is_skippable_branch = is_branch && (flags & CLEAN) !== 0;\n\n\t\t\tvar skip = is_skippable_branch || (flags & INERT) !== 0 || this.#skipped_branches.has(effect);\n\n\t\t\tif (!skip && effect.fn !== null) {\n\t\t\t\tif (is_branch) {\n\t\t\t\t\teffect.f ^= CLEAN;\n\t\t\t\t} else if ((flags & EFFECT) !== 0) {\n\t\t\t\t\teffects.push(effect);\n\t\t\t\t} else if (async_mode_flag && (flags & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) {\n\t\t\t\t\trender_effects.push(effect);\n\t\t\t\t} else if (is_dirty(effect)) {\n\t\t\t\t\tif ((flags & BLOCK_EFFECT) !== 0) this.#maybe_dirty_effects.add(effect);\n\t\t\t\t\tupdate_effect(effect);\n\t\t\t\t}\n\n\t\t\t\tvar child = effect.first;\n\n\t\t\t\tif (child !== null) {\n\t\t\t\t\teffect = child;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twhile (effect !== null) {\n\t\t\t\tvar next = effect.next;\n\n\t\t\t\tif (next !== null) {\n\t\t\t\t\teffect = next;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\teffect = effect.parent;\n\t\t\t}\n\t\t}\n\t}\n\n\t#find_earlier_batch() {\n\t\tvar batch = this.#prev;\n\n\t\twhile (batch !== null) {\n\t\t\tif (!batch.is_fork) {\n\t\t\t\t// if the batches are connected, break\n\t\t\t\tfor (const [value, [, is_derived]] of this.current) {\n\t\t\t\t\tif (batch.current.has(value) && !is_derived) {\n\t\t\t\t\t\treturn batch;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbatch = batch.#prev;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#merge(batch) {\n\t\tfor (const [source, value] of batch.current) {\n\t\t\tif (!this.previous.has(source) && batch.previous.has(source)) {\n\t\t\t\tthis.previous.set(source, batch.previous.get(source));\n\t\t\t}\n\n\t\t\tthis.current.set(source, value);\n\t\t}\n\n\t\tfor (const [effect, deferred] of batch.async_deriveds) {\n\t\t\tconst d = this.async_deriveds.get(effect);\n\t\t\tif (d) deferred.promise.then(d.resolve);\n\t\t}\n\n\t\t/**\n\t\t * mark all effects that depend on `batch.current`, except the\n\t\t * async effects that we just resolved (TODO unless they depend\n\t\t * on values in this batch that are NOT in the later batch?).\n\t\t * Through this we also will populate the correct #skipped_branches,\n\t\t * oncommit callbacks etc, so we don't need to merge them separately.\n\t\t * @param {Value} value\n\t\t */\n\t\tconst mark = (value) => {\n\t\t\tvar reactions = value.reactions;\n\t\t\tif (reactions === null) return;\n\n\t\t\tfor (const reaction of reactions) {\n\t\t\t\tvar flags = reaction.f;\n\n\t\t\t\tif ((flags & DERIVED) !== 0) {\n\t\t\t\t\tmark(/** @type {Derived} */ (reaction));\n\t\t\t\t} else {\n\t\t\t\t\tvar effect = /** @type {Effect} */ (reaction);\n\n\t\t\t\t\tif (flags & (ASYNC | BLOCK_EFFECT) && !this.async_deriveds.has(effect)) {\n\t\t\t\t\t\tthis.#maybe_dirty_effects.delete(effect);\n\t\t\t\t\t\tset_signal_status(effect, DIRTY);\n\t\t\t\t\t\tthis.schedule(effect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tfor (const source of this.current.keys()) {\n\t\t\tmark(source);\n\t\t}\n\n\t\tthis.oncommit(() => batch.discard());\n\t\tbatch.#unlink();\n\n\t\tcurrent_batch = this;\n\t\tthis.#process();\n\t}\n\n\t/**\n\t * @param {Effect[]} effects\n\t */\n\t#defer_effects(effects) {\n\t\tfor (var i = 0; i < effects.length; i += 1) {\n\t\t\tdefer_effect(effects[i], this.#dirty_effects, this.#maybe_dirty_effects);\n\t\t}\n\t}\n\n\t/**\n\t * Associate a change to a given source with the current\n\t * batch, noting its previous and current values\n\t * @param {Value} source\n\t * @param {any} value\n\t * @param {boolean} [is_derived]\n\t */\n\tcapture(source, value, is_derived = false) {\n\t\tif (source.v !== UNINITIALIZED && !this.previous.has(source)) {\n\t\t\tthis.previous.set(source, source.v);\n\t\t}\n\n\t\t// Don't save errors in `batch_values`, or they won't be thrown in `runtime.js#get`\n\t\tif ((source.f & ERROR_VALUE) === 0) {\n\t\t\tthis.current.set(source, [value, is_derived]);\n\t\t\tbatch_values?.set(source, value);\n\t\t}\n\n\t\tif (!this.is_fork) {\n\t\t\tsource.v = value;\n\t\t}\n\t}\n\n\tactivate() {\n\t\tcurrent_batch = this;\n\t}\n\n\tdeactivate() {\n\t\tcurrent_batch = null;\n\t\tbatch_values = null;\n\t}\n\n\tflush() {\n\t\ttry {\n\t\t\tif (DEV) {\n\t\t\t\tsource_stacks.clear();\n\t\t\t}\n\n\t\t\tis_processing = true;\n\t\t\tcurrent_batch = this;\n\n\t\t\tthis.#process();\n\t\t} finally {\n\t\t\tflush_count = 0;\n\t\t\tlast_scheduled_effect = null;\n\t\t\tcollected_effects = null;\n\t\t\tlegacy_updates = null;\n\t\t\tis_processing = false;\n\n\t\t\tcurrent_batch = null;\n\t\t\tbatch_values = null;\n\n\t\t\told_values.clear();\n\n\t\t\tif (DEV) {\n\t\t\t\tfor (const source of source_stacks) {\n\t\t\t\t\tsource.updated = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdiscard() {\n\t\tfor (const fn of this.#discard_callbacks) fn(this);\n\t\tthis.#discard_callbacks.clear();\n\t\tthis.#fork_commit_callbacks.clear();\n\n\t\tthis.#unlink();\n\t}\n\n\t/**\n\t * @param {Effect} effect\n\t */\n\tregister_created_effect(effect) {\n\t\tthis.#new_effects.push(effect);\n\t}\n\n\t#commit() {\n\t\tthis.#unlink();\n\n\t\t// If there are other pending batches, they now need to be 'rebased' —\n\t\t// in other words, we re-run block/async effects with the newly\n\t\t// committed state, unless the batch in question has a more\n\t\t// recent value for a given source\n\t\tfor (let batch = first_batch; batch !== null; batch = batch.#next) {\n\t\t\tvar is_earlier = batch.id < this.id;\n\n\t\t\t/** @type {Source[]} */\n\t\t\tvar sources = [];\n\n\t\t\tfor (const [source, [value, is_derived]] of this.current) {\n\t\t\t\tif (batch.current.has(source)) {\n\t\t\t\t\tvar batch_value = /** @type {[any, boolean]} */ (batch.current.get(source))[0]; // faster than destructuring\n\n\t\t\t\t\tif (is_earlier && value !== batch_value) {\n\t\t\t\t\t\t// bring the value up to date\n\t\t\t\t\t\tbatch.current.set(source, [value, is_derived]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// same value or later batch has more recent value,\n\t\t\t\t\t\t// no need to re-run these effects\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsources.push(source);\n\t\t\t}\n\n\t\t\tif (is_earlier) {\n\t\t\t\t// TODO do we need to restart these in some cases, instead of\n\t\t\t\t// immediately resolving them? Likely not because of how this.apply() works.\n\t\t\t\tfor (const [effect, deferred] of this.async_deriveds) {\n\t\t\t\t\tconst d = batch.async_deriveds.get(effect);\n\t\t\t\t\tif (d) deferred.promise.then(d.resolve);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!batch.#started) continue;\n\n\t\t\t// Re-run async/block effects that depend on distinct values changed in both batches\n\t\t\tvar others = [...batch.current.keys()].filter((s) => !this.current.has(s));\n\n\t\t\tif (others.length === 0) {\n\t\t\t\tif (is_earlier) {\n\t\t\t\t\t// this batch is now obsolete and can be discarded\n\t\t\t\t\tbatch.discard();\n\t\t\t\t}\n\t\t\t} else if (sources.length > 0) {\n\t\t\t\tif (DEV) {\n\t\t\t\t\tinvariant(batch.#roots.length === 0, 'Batch has scheduled roots');\n\t\t\t\t}\n\n\t\t\t\t// A batch was unskipped in a later batch -> tell prior batches to unskip it, too\n\t\t\t\tif (is_earlier) {\n\t\t\t\t\tfor (const unskipped of this.#unskipped_branches) {\n\t\t\t\t\t\tbatch.unskip_effect(unskipped, (e) => {\n\t\t\t\t\t\t\tif ((e.f & (BLOCK_EFFECT | ASYNC)) !== 0) {\n\t\t\t\t\t\t\t\tbatch.schedule(e);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbatch.#defer_effects([e]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbatch.activate();\n\n\t\t\t\t/** @type {Set<Value>} */\n\t\t\t\tvar marked = new Set();\n\n\t\t\t\t/** @type {Map<Reaction, boolean>} */\n\t\t\t\tvar checked = new Map();\n\n\t\t\t\tfor (var source of sources) {\n\t\t\t\t\tmark_effects(source, others, marked, checked);\n\t\t\t\t}\n\n\t\t\t\tchecked = new Map();\n\t\t\t\tvar current_unequal = [...batch.current.keys()].filter((c) =>\n\t\t\t\t\tthis.current.has(c)\n\t\t\t\t\t\t? /** @type {[any, boolean]} */ (this.current.get(c))[0] !== c.v\n\t\t\t\t\t\t: true\n\t\t\t\t);\n\n\t\t\t\tif (current_unequal.length > 0) {\n\t\t\t\t\tfor (const effect of this.#new_effects) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(effect.f & (DESTROYED | INERT | EAGER_EFFECT)) === 0 &&\n\t\t\t\t\t\t\tdepends_on(effect, current_unequal, checked)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif ((effect.f & (ASYNC | BLOCK_EFFECT)) !== 0) {\n\t\t\t\t\t\t\t\tset_signal_status(effect, DIRTY);\n\t\t\t\t\t\t\t\tbatch.schedule(effect);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbatch.#dirty_effects.add(effect);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Only apply and traverse when we know we triggered async work with marking the effects\n\t\t\t\tif (batch.#roots.length > 0) {\n\t\t\t\t\tbatch.apply();\n\n\t\t\t\t\tfor (var root of batch.#roots) {\n\t\t\t\t\t\tbatch.#traverse(root, [], []);\n\t\t\t\t\t}\n\n\t\t\t\t\tbatch.#roots = [];\n\t\t\t\t}\n\n\t\t\t\tbatch.deactivate();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {boolean} blocking\n\t * @param {Effect} effect\n\t */\n\tincrement(blocking, effect) {\n\t\tthis.#pending += 1;\n\n\t\tif (blocking) {\n\t\t\tlet blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;\n\t\t\tthis.#blocking_pending.set(effect, blocking_pending_count + 1);\n\t\t}\n\t}\n\n\t/**\n\t * @param {boolean} blocking\n\t * @param {Effect} effect\n\t */\n\tdecrement(blocking, effect) {\n\t\tthis.#pending -= 1;\n\n\t\tif (blocking) {\n\t\t\tlet blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;\n\n\t\t\tif (blocking_pending_count === 1) {\n\t\t\t\tthis.#blocking_pending.delete(effect);\n\t\t\t} else {\n\t\t\t\tthis.#blocking_pending.set(effect, blocking_pending_count - 1);\n\t\t\t}\n\t\t}\n\n\t\tif (this.#decrement_queued) return;\n\t\tthis.#decrement_queued = true;\n\n\t\tqueue_micro_task(() => {\n\t\t\tthis.#decrement_queued = false;\n\n\t\t\tif (this.linked) {\n\t\t\t\tthis.flush();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @param {Set<Effect>} dirty_effects\n\t * @param {Set<Effect>} maybe_dirty_effects\n\t */\n\ttransfer_effects(dirty_effects, maybe_dirty_effects) {\n\t\tfor (const e of dirty_effects) {\n\t\t\tthis.#dirty_effects.add(e);\n\t\t}\n\n\t\tfor (const e of maybe_dirty_effects) {\n\t\t\tthis.#maybe_dirty_effects.add(e);\n\t\t}\n\n\t\tdirty_effects.clear();\n\t\tmaybe_dirty_effects.clear();\n\t}\n\n\t/** @param {(batch: Batch) => void} fn */\n\toncommit(fn) {\n\t\tthis.#commit_callbacks.add(fn);\n\t}\n\n\t/** @param {(batch: Batch) => void} fn */\n\tondiscard(fn) {\n\t\tthis.#discard_callbacks.add(fn);\n\t}\n\n\t/** @param {(batch: Batch) => void} fn */\n\ton_fork_commit(fn) {\n\t\tthis.#fork_commit_callbacks.add(fn);\n\t}\n\n\trun_fork_commit_callbacks() {\n\t\tfor (const fn of this.#fork_commit_callbacks) fn(this);\n\t\tthis.#fork_commit_callbacks.clear();\n\t}\n\n\tsettled() {\n\t\treturn (this.#deferred ??= deferred()).promise;\n\t}\n\n\tstatic ensure() {\n\t\tif (current_batch === null) {\n\t\t\tconst batch = (current_batch = new Batch());\n\t\t\tbatch.#link();\n\n\t\t\tif (!is_processing && !is_flushing_sync) {\n\t\t\t\tqueue_micro_task(() => {\n\t\t\t\t\tif (!batch.#started) {\n\t\t\t\t\t\tbatch.flush();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current_batch;\n\t}\n\n\tapply() {\n\t\tif (!async_mode_flag || (!this.is_fork && this.#prev === null && this.#next === null)) {\n\t\t\tbatch_values = null;\n\t\t\treturn;\n\t\t}\n\n\t\t// if there are multiple batches, we are 'time travelling' —\n\t\t// we need to override values with the ones in this batch...\n\t\tbatch_values = new Map();\n\t\tfor (const [source, [value]] of this.current) {\n\t\t\tbatch_values.set(source, value);\n\t\t}\n\n\t\t// ...and undo changes belonging to other batches unless they intersect\n\t\tfor (let batch = first_batch; batch !== null; batch = batch.#next) {\n\t\t\tif (batch === this || batch.is_fork) continue;\n\n\t\t\t// If two batches intersect, the latter batch will be merged into the earlier batch,\n\t\t\t// and we should treat them as a single set of changes\n\t\t\tvar intersects = false;\n\n\t\t\tif (batch.id < this.id) {\n\t\t\t\tfor (const [source, [, is_derived]] of batch.current) {\n\t\t\t\t\t// Derived values don't partake in the intersection mechanism, because a derived could\n\t\t\t\t\t// be triggered in one batch already but not the other one yet, causing a false-positive\n\t\t\t\t\tif (is_derived) continue;\n\n\t\t\t\t\tif (this.current.has(source)) {\n\t\t\t\t\t\tintersects = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Since the latter batch merges into the earlier (if it resolves before the earlier one),\n\t\t\t// we treat the earlier values as \"already applied\". This way we don't need to rerun async\n\t\t\t// effects of the earlier batch in case they are merged.\n\t\t\t// As a result you can think of batch_values as having the latest values of all intersecting\n\t\t\t// batches up until this batch.\n\t\t\tif (!intersects) {\n\t\t\t\tfor (const [source, previous] of batch.previous) {\n\t\t\t\t\tif (!batch_values.has(source)) {\n\t\t\t\t\t\tbatch_values.set(source, previous);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {Effect} effect\n\t */\n\tschedule(effect) {\n\t\tlast_scheduled_effect = effect;\n\n\t\t// defer render effects inside a pending boundary\n\t\t// TODO the `REACTION_RAN` check is only necessary because of legacy `$:` effects AFAICT — we can remove later\n\t\tif (\n\t\t\teffect.b?.is_pending &&\n\t\t\t(effect.f & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0 &&\n\t\t\t(effect.f & REACTION_RAN) === 0\n\t\t) {\n\t\t\teffect.b.defer_effect(effect);\n\t\t\treturn;\n\t\t}\n\n\t\tvar e = effect;\n\n\t\twhile (e.parent !== null) {\n\t\t\te = e.parent;\n\t\t\tvar flags = e.f;\n\n\t\t\t// if the effect is being scheduled because a parent (each/await/etc) block\n\t\t\t// updated an internal source, or because a branch is being unskipped,\n\t\t\t// bail out or we'll cause a second flush\n\t\t\tif (collected_effects !== null && e === active_effect) {\n\t\t\t\tif (async_mode_flag) return;\n\n\t\t\t\t// in sync mode, render effects run during traversal. in an extreme edge case\n\t\t\t\t// — namely that we're setting a value inside a derived read during traversal —\n\t\t\t\t// they can be made dirty after they have already been visited, in which\n\t\t\t\t// case we shouldn't bail out. we also shouldn't bail out if we're\n\t\t\t\t// updating a store inside a `$:`, since this might invalidate\n\t\t\t\t// effects that were already visited\n\t\t\t\tif (\n\t\t\t\t\t(active_reaction === null || (active_reaction.f & DERIVED) === 0) &&\n\t\t\t\t\t!legacy_is_updating_store\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {\n\t\t\t\tif ((flags & CLEAN) === 0) {\n\t\t\t\t\t// branch is already dirty, bail\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\te.f ^= CLEAN;\n\t\t\t}\n\t\t}\n\n\t\tthis.#roots.push(e);\n\t}\n\n\t#link() {\n\t\tif (last_batch === null) {\n\t\t\tfirst_batch = last_batch = this;\n\t\t} else {\n\t\t\tlast_batch.#next = this;\n\t\t\tthis.#prev = last_batch;\n\t\t}\n\n\t\tlast_batch = this;\n\t}\n\n\t#unlink() {\n\t\tvar prev = this.#prev;\n\t\tvar next = this.#next;\n\n\t\tif (prev === null) {\n\t\t\tfirst_batch = next;\n\t\t} else {\n\t\t\tprev.#next = next;\n\t\t}\n\n\t\tif (next === null) {\n\t\t\tlast_batch = prev;\n\t\t} else {\n\t\t\tnext.#prev = prev;\n\t\t}\n\n\t\tthis.linked = false;\n\t}\n}\n\n// TODO Svelte@6 think about removing the callback argument.\n/**\n * Synchronously flush any pending updates.\n * Returns void if no callback is provided, otherwise returns the result of calling the callback.\n * @template [T=void]\n * @param {(() => T) | undefined} [fn]\n * @returns {T}\n */\nexport function flushSync(fn) {\n\tvar was_flushing_sync = is_flushing_sync;\n\tis_flushing_sync = true;\n\n\ttry {\n\t\tvar result;\n\n\t\tif (fn) {\n\t\t\tif (current_batch !== null && !current_batch.is_fork) {\n\t\t\t\tcurrent_batch.flush();\n\t\t\t}\n\n\t\t\tresult = fn();\n\t\t}\n\n\t\twhile (true) {\n\t\t\tflush_tasks();\n\n\t\t\tif (current_batch === null) {\n\t\t\t\treturn /** @type {T} */ (result);\n\t\t\t}\n\n\t\t\tcurrent_batch.flush();\n\t\t}\n\t} finally {\n\t\tis_flushing_sync = was_flushing_sync;\n\t}\n}\n\nfunction infinite_loop_guard() {\n\tif (DEV) {\n\t\tvar updates = new Map();\n\n\t\tfor (const source of /** @type {Batch} */ (current_batch).current.keys()) {\n\t\t\tfor (const [stack, update] of source.updated ?? []) {\n\t\t\t\tvar entry = updates.get(stack);\n\n\t\t\t\tif (!entry) {\n\t\t\t\t\tentry = { error: update.error, count: 0 };\n\t\t\t\t\tupdates.set(stack, entry);\n\t\t\t\t}\n\n\t\t\t\tentry.count += update.count;\n\t\t\t}\n\t\t}\n\n\t\tfor (const update of updates.values()) {\n\t\t\tif (update.error) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(update.error);\n\t\t\t}\n\t\t}\n\t}\n\n\ttry {\n\t\te.effect_update_depth_exceeded();\n\t} catch (error) {\n\t\tif (DEV) {\n\t\t\t// stack contains no useful information, replace it\n\t\t\tdefine_property(error, 'stack', { value: '' });\n\t\t}\n\n\t\t// Best effort: invoke the boundary nearest the most recent\n\t\t// effect and hope that it's relevant to the infinite loop\n\t\tinvoke_error_boundary(error, last_scheduled_effect);\n\t}\n}\n\n/** @type {Set<Effect> | null} */\nexport let eager_block_effects = null;\n\n/**\n * @param {Array<Effect>} effects\n * @returns {void}\n */\nfunction flush_queued_effects(effects) {\n\tvar length = effects.length;\n\tif (length === 0) return;\n\n\tvar i = 0;\n\n\twhile (i < length) {\n\t\tvar effect = effects[i++];\n\n\t\tif ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {\n\t\t\teager_block_effects = new Set();\n\n\t\t\tupdate_effect(effect);\n\n\t\t\t// Effects with no dependencies or teardown do not get added to the effect tree.\n\t\t\t// Deferred effects (e.g. `$effect(...)`) _are_ added to the tree because we\n\t\t\t// don't know if we need to keep them until they are executed. Doing the check\n\t\t\t// here (rather than in `update_effect`) allows us to skip the work for\n\t\t\t// immediate effects.\n\t\t\tif (\n\t\t\t\teffect.deps === null &&\n\t\t\t\teffect.first === null &&\n\t\t\t\teffect.nodes === null &&\n\t\t\t\teffect.teardown === null &&\n\t\t\t\teffect.ac === null\n\t\t\t) {\n\t\t\t\t// remove this effect from the graph\n\t\t\t\tunlink_effect(effect);\n\t\t\t}\n\n\t\t\t// If update_effect() has a flushSync() in it, we may have flushed another flush_queued_effects(),\n\t\t\t// which already handled this logic and did set eager_block_effects to null.\n\t\t\tif (eager_block_effects?.size > 0) {\n\t\t\t\told_values.clear();\n\n\t\t\t\tfor (const e of eager_block_effects) {\n\t\t\t\t\t// Skip eager effects that have already been unmounted\n\t\t\t\t\tif ((e.f & (DESTROYED | INERT)) !== 0) continue;\n\n\t\t\t\t\t// Run effects in order from ancestor to descendant, else we could run into nullpointers\n\t\t\t\t\t/** @type {Effect[]} */\n\t\t\t\t\tconst ordered_effects = [e];\n\t\t\t\t\tlet ancestor = e.parent;\n\t\t\t\t\twhile (ancestor !== null) {\n\t\t\t\t\t\tif (eager_block_effects.has(ancestor)) {\n\t\t\t\t\t\t\teager_block_effects.delete(ancestor);\n\t\t\t\t\t\t\tordered_effects.push(ancestor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tancestor = ancestor.parent;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (let j = ordered_effects.length - 1; j >= 0; j--) {\n\t\t\t\t\t\tconst e = ordered_effects[j];\n\t\t\t\t\t\t// Skip eager effects that have already been unmounted\n\t\t\t\t\t\tif ((e.f & (DESTROYED | INERT)) !== 0) continue;\n\t\t\t\t\t\tupdate_effect(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\teager_block_effects.clear();\n\t\t\t}\n\t\t}\n\t}\n\n\teager_block_effects = null;\n}\n\n/**\n * This is similar to `mark_reactions`, but it only marks async/block effects\n * depending on `value` and at least one of the other `sources`, so that\n * these effects can re-run after another batch has been committed\n * @param {Value} value\n * @param {Source[]} sources\n * @param {Set<Value>} marked\n * @param {Map<Reaction, boolean>} checked\n */\nfunction mark_effects(value, sources, marked, checked) {\n\tif (marked.has(value)) return;\n\tmarked.add(value);\n\n\tif (value.reactions !== null) {\n\t\tfor (const reaction of value.reactions) {\n\t\t\tconst flags = reaction.f;\n\n\t\t\tif ((flags & DERIVED) !== 0) {\n\t\t\t\tmark_effects(/** @type {Derived} */ (reaction), sources, marked, checked);\n\t\t\t} else if (\n\t\t\t\t(flags & (ASYNC | BLOCK_EFFECT)) !== 0 &&\n\t\t\t\t(flags & DIRTY) === 0 &&\n\t\t\t\tdepends_on(reaction, sources, checked)\n\t\t\t) {\n\t\t\t\tset_signal_status(reaction, DIRTY);\n\t\t\t\tschedule_effect(/** @type {Effect} */ (reaction));\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * When committing a fork, we need to trigger eager effects so that\n * any `$state.eager(...)` expressions update immediately. This\n * function allows us to discover them\n * @param {Value} value\n * @param {Set<Effect>} effects\n */\nfunction mark_eager_effects(value, effects) {\n\tif (value.reactions === null) return;\n\n\tfor (const reaction of value.reactions) {\n\t\tconst flags = reaction.f;\n\n\t\tif ((flags & DERIVED) !== 0) {\n\t\t\tmark_eager_effects(/** @type {Derived} */ (reaction), effects);\n\t\t} else if ((flags & EAGER_EFFECT) !== 0) {\n\t\t\tset_signal_status(reaction, DIRTY);\n\t\t\teffects.add(/** @type {Effect} */ (reaction));\n\t\t}\n\t}\n}\n\n/**\n * @param {Reaction} reaction\n * @param {Source[]} sources\n * @param {Map<Reaction, boolean>} checked\n */\nfunction depends_on(reaction, sources, checked) {\n\tconst depends = checked.get(reaction);\n\tif (depends !== undefined) return depends;\n\n\tif (reaction.deps !== null) {\n\t\tfor (const dep of reaction.deps) {\n\t\t\tif (includes.call(sources, dep)) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif ((dep.f & DERIVED) !== 0 && depends_on(/** @type {Derived} */ (dep), sources, checked)) {\n\t\t\t\tchecked.set(/** @type {Derived} */ (dep), true);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\tchecked.set(reaction, false);\n\n\treturn false;\n}\n\n/**\n * @param {Effect} effect\n * @returns {void}\n */\nexport function schedule_effect(effect) {\n\t/** @type {Batch} */ (current_batch).schedule(effect);\n}\n\n/** @type {Source<number>[]} */\nlet eager_versions = [];\n\nfunction eager_flush() {\n\tflushSync(() => {\n\t\tconst eager = eager_versions;\n\t\teager_versions = [];\n\t\tfor (const version of eager) {\n\t\t\tupdate(version);\n\t\t}\n\t});\n}\n\n/** @type {Map<Reaction, Source<number>>} */\nvar version_map = new Map();\n\n/**\n * Implementation of `$state.eager(fn())`\n * @template T\n * @param {() => T} fn\n * @returns {T}\n */\nexport function eager(fn) {\n\tvar initial = true;\n\tvar value = /** @type {T} */ (undefined);\n\n\tif (active_reaction === null) {\n\t\treturn fn();\n\t}\n\n\tlet parent = active_reaction;\n\n\tlet version = version_map.get(parent) ?? source(0);\n\tversion_map.set(parent, version);\n\n\tteardown(() => {\n\t\tif (parent.f & DESTROYING) version_map.delete(parent);\n\t});\n\n\tget(version);\n\n\teager_effect(() => {\n\t\tif (initial) {\n\t\t\t// the first time this runs, we create an eager effect\n\t\t\t// that will run eagerly whenever the expression changes\n\t\t\tvar previous_batch_values = batch_values;\n\n\t\t\ttry {\n\t\t\t\tbatch_values = null;\n\t\t\t\tvalue = fn();\n\t\t\t} finally {\n\t\t\t\tbatch_values = previous_batch_values;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// the second time this effect runs, it's to schedule a\n\t\t// `version` update. since this will recreate the effect,\n\t\t// we don't need to evaluate the expression here\n\t\tif (eager_versions.length === 0) {\n\t\t\tqueue_micro_task(eager_flush);\n\t\t}\n\n\t\teager_versions.push(version);\n\t});\n\n\tinitial = false;\n\n\treturn value;\n}\n\n/**\n * Mark all the effects inside a skipped branch CLEAN, so that\n * they can be correctly rescheduled later. Tracks dirty and maybe_dirty\n * effects so they can be rescheduled if the branch survives.\n * @param {Effect} effect\n * @param {{ d: Effect[], m: Effect[] }} tracked\n */\nfunction reset_branch(effect, tracked) {\n\t// clean branch = nothing dirty inside, no need to traverse further\n\tif ((effect.f & BRANCH_EFFECT) !== 0 && (effect.f & CLEAN) !== 0) {\n\t\treturn;\n\t}\n\n\tif ((effect.f & DIRTY) !== 0) {\n\t\ttracked.d.push(effect);\n\t} else if ((effect.f & MAYBE_DIRTY) !== 0) {\n\t\ttracked.m.push(effect);\n\t}\n\n\tset_signal_status(effect, CLEAN);\n\n\tvar e = effect.first;\n\twhile (e !== null) {\n\t\treset_branch(e, tracked);\n\t\te = e.next;\n\t}\n}\n\n/**\n * Mark an entire effect tree clean following an error\n * @param {Effect} effect\n */\nfunction reset_all(effect) {\n\tset_signal_status(effect, CLEAN);\n\n\tvar e = effect.first;\n\twhile (e !== null) {\n\t\treset_all(e);\n\t\te = e.next;\n\t}\n}\n\n/**\n * Creates a 'fork', in which state changes are evaluated but not applied to the DOM.\n * This is useful for speculatively loading data (for example) when you suspect that\n * the user is about to take some action.\n *\n * Frameworks like SvelteKit can use this to preload data when the user touches or\n * hovers over a link, making any subsequent navigation feel instantaneous.\n *\n * The `fn` parameter is a synchronous function that modifies some state. The\n * state changes will be reverted after the fork is initialised, then reapplied\n * if and when the fork is eventually committed.\n *\n * When it becomes clear that a fork will _not_ be committed (e.g. because the\n * user navigated elsewhere), it must be discarded to avoid leaking memory.\n *\n * @param {() => void} fn\n * @returns {Fork}\n * @since 5.42\n */\nexport function fork(fn) {\n\tif (!async_mode_flag) {\n\t\te.experimental_async_required('fork');\n\t}\n\n\tif (current_batch !== null) {\n\t\te.fork_timing();\n\t}\n\n\tvar batch = Batch.ensure();\n\tbatch.is_fork = true;\n\tbatch_values = new Map();\n\n\tvar committed = false;\n\tvar settled = batch.settled();\n\n\tflushSync(fn);\n\n\treturn {\n\t\tcommit: async () => {\n\t\t\tif (committed) {\n\t\t\t\tawait settled;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!batch.linked) {\n\t\t\t\te.fork_discarded();\n\t\t\t}\n\n\t\t\tcommitted = true;\n\n\t\t\tbatch.is_fork = false;\n\n\t\t\t// apply changes and update write versions so deriveds see the change\n\t\t\tfor (var [source, [value]] of batch.current) {\n\t\t\t\tsource.v = value;\n\t\t\t\tsource.wv = increment_write_version();\n\t\t\t}\n\n\t\t\tbatch.activate();\n\t\t\tbatch.run_fork_commit_callbacks();\n\t\t\tbatch.deactivate();\n\n\t\t\t// trigger any `$state.eager(...)` expressions with the new state.\n\t\t\t// eager effects don't get scheduled like other effects, so we\n\t\t\t// can't just encounter them during traversal, we need to\n\t\t\t// proactively flush them\n\t\t\t// TODO maybe there's a better implementation?\n\t\t\tflushSync(() => {\n\t\t\t\t/** @type {Set<Effect>} */\n\t\t\t\tvar eager_effects = new Set();\n\n\t\t\t\tfor (var source of batch.current.keys()) {\n\t\t\t\t\tmark_eager_effects(source, eager_effects);\n\t\t\t\t}\n\n\t\t\t\tset_eager_effects(eager_effects);\n\t\t\t\tflush_eager_effects();\n\t\t\t});\n\n\t\t\tbatch.flush();\n\t\t\tawait settled;\n\t\t},\n\t\tdiscard: () => {\n\t\t\t// cause any MAYBE_DIRTY deriveds to update\n\t\t\t// if they depend on things thath changed\n\t\t\t// inside the discarded fork\n\t\t\tfor (var source of batch.current.keys()) {\n\t\t\t\tsource.wv = increment_write_version();\n\t\t\t}\n\n\t\t\tif (!committed && batch.linked) {\n\t\t\t\tbatch.discard();\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * Forcibly remove all current batches, to prevent cross-talk between tests\n */\nexport function clear() {\n\tfirst_batch = last_batch = null;\n}\n","import { get, tick, untrack } from '../internal/client/runtime.js';\nimport { effect_tracking, render_effect } from '../internal/client/reactivity/effects.js';\nimport { source, increment } from '../internal/client/reactivity/sources.js';\nimport { tag } from '../internal/client/dev/tracing.js';\nimport { DEV } from 'esm-env';\nimport { queue_micro_task } from '../internal/client/dom/task.js';\n\n/**\n * Returns a `subscribe` function that integrates external event-based systems with Svelte's reactivity.\n * It's particularly useful for integrating with web APIs like `MediaQuery`, `IntersectionObserver`, or `WebSocket`.\n *\n * If `subscribe` is called inside an effect (including indirectly, for example inside a getter),\n * the `start` callback will be called with an `update` function. Whenever `update` is called, the effect re-runs.\n *\n * If `start` returns a cleanup function, it will be called when the effect is destroyed.\n *\n * If `subscribe` is called in multiple effects, `start` will only be called once as long as the effects\n * are active, and the returned teardown function will only be called when all effects are destroyed.\n *\n * It's best understood with an example. Here's an implementation of [`MediaQuery`](https://svelte.dev/docs/svelte/svelte-reactivity#MediaQuery):\n *\n * ```js\n * import { createSubscriber } from 'svelte/reactivity';\n * import { on } from 'svelte/events';\n *\n * export class MediaQuery {\n * \t#query;\n * \t#subscribe;\n *\n * \tconstructor(query) {\n * \t\tthis.#query = window.matchMedia(`(${query})`);\n *\n * \t\tthis.#subscribe = createSubscriber((update) => {\n * \t\t\t// when the `change` event occurs, re-run any effects that read `this.current`\n * \t\t\tconst off = on(this.#query, 'change', update);\n *\n * \t\t\t// stop listening when all the effects are destroyed\n * \t\t\treturn () => off();\n * \t\t});\n * \t}\n *\n * \tget current() {\n * \t\t// This makes the getter reactive, if read in an effect\n * \t\tthis.#subscribe();\n *\n * \t\t// Return the current state of the query, whether or not we're in an effect\n * \t\treturn this.#query.matches;\n * \t}\n * }\n * ```\n * @param {(update: () => void) => (() => void) | void} start\n * @since 5.7.0\n */\nexport function createSubscriber(start) {\n\tlet subscribers = 0;\n\tlet version = source(0);\n\t/** @type {(() => void) | void} */\n\tlet stop;\n\n\tif (DEV) {\n\t\ttag(version, 'createSubscriber version');\n\t}\n\n\treturn () => {\n\t\tif (effect_tracking()) {\n\t\t\tget(version);\n\n\t\t\trender_effect(() => {\n\t\t\t\tif (subscribers === 0) {\n\t\t\t\t\tstop = untrack(() => start(() => increment(version)));\n\t\t\t\t}\n\n\t\t\t\tsubscribers += 1;\n\n\t\t\t\treturn () => {\n\t\t\t\t\tqueue_micro_task(() => {\n\t\t\t\t\t\t// Only count down after a microtask, else we would reach 0 before our own render effect reruns,\n\t\t\t\t\t\t// but reach 1 again when the tick callback of the prior teardown runs. That would mean we\n\t\t\t\t\t\t// re-subcribe unnecessarily and create a memory leak because the old subscription is never cleaned up.\n\t\t\t\t\t\tsubscribers -= 1;\n\n\t\t\t\t\t\tif (subscribers === 0) {\n\t\t\t\t\t\t\tstop?.();\n\t\t\t\t\t\t\tstop = undefined;\n\t\t\t\t\t\t\t// Increment the version to ensure any dependent deriveds are marked dirty when the subscription is picked up again later.\n\t\t\t\t\t\t\t// If we didn't do this then the comparison of write versions would determine that the derived has a later version than\n\t\t\t\t\t\t\t// the subscriber, and it would not be re-run.\n\t\t\t\t\t\t\tincrement(version);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t};\n}\n","/** @import { Effect, Source, TemplateNode, } from '#client' */\nimport {\n\tBOUNDARY_EFFECT,\n\tDIRTY,\n\tEFFECT_PRESERVED,\n\tEFFECT_TRANSPARENT,\n\tMAYBE_DIRTY\n} from '#client/constants';\nimport { HYDRATION_START_ELSE, HYDRATION_START_FAILED } from '../../../../constants.js';\nimport { component_context, set_component_context } from '../../context.js';\nimport { handle_error, invoke_error_boundary } from '../../error-handling.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect\n} from '../../reactivity/effects.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tnext,\n\tskip_nodes,\n\tset_hydrate_node\n} from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport * as e from '../../errors.js';\nimport * as w from '../../warnings.js';\nimport { DEV } from 'esm-env';\nimport { Batch, current_batch } from '../../reactivity/batch.js';\nimport { internal_set, source } from '../../reactivity/sources.js';\nimport { tag } from '../../dev/tracing.js';\nimport { createSubscriber } from '../../../../reactivity/create-subscriber.js';\nimport { create_text } from '../operations.js';\nimport { defer_effect } from '../../reactivity/utils.js';\n\n/**\n * @typedef {{\n * \t onerror?: ((error: unknown, reset: () => void) => void) | null;\n *   failed?: ((anchor: Node, error: () => unknown, reset: () => () => void) => void) | null;\n *   pending?: ((anchor: Node) => void) | null;\n * }} BoundaryProps\n */\n\nvar flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED;\n\n/**\n * @param {TemplateNode} node\n * @param {BoundaryProps} props\n * @param {((anchor: Node) => void)} children\n * @param {((error: unknown) => unknown) | undefined} [transform_error]\n * @returns {void}\n */\nexport function boundary(node, props, children, transform_error) {\n\tnew Boundary(node, props, children, transform_error);\n}\n\nexport class Boundary {\n\t/** @type {Boundary | null} */\n\tparent;\n\n\tis_pending = false;\n\n\t/**\n\t * API-level transformError transform function. Transforms errors before they reach the `failed` snippet.\n\t * Inherited from parent boundary, or defaults to identity.\n\t * @type {(error: unknown) => unknown}\n\t */\n\ttransform_error;\n\n\t/** @type {TemplateNode} */\n\t#anchor;\n\n\t/** @type {TemplateNode | null} */\n\t#hydrate_open = hydrating ? hydrate_node : null;\n\n\t/** @type {BoundaryProps} */\n\t#props;\n\n\t/** @type {((anchor: Node) => void)} */\n\t#children;\n\n\t/** @type {Effect} */\n\t#effect;\n\n\t/** @type {Effect | null} */\n\t#main_effect = null;\n\n\t/** @type {Effect | null} */\n\t#pending_effect = null;\n\n\t/** @type {Effect | null} */\n\t#failed_effect = null;\n\n\t/** @type {DocumentFragment | null} */\n\t#offscreen_fragment = null;\n\n\t#local_pending_count = 0;\n\t#pending_count = 0;\n\t#pending_count_update_queued = false;\n\n\t/** @type {Set<Effect>} */\n\t#dirty_effects = new Set();\n\n\t/** @type {Set<Effect>} */\n\t#maybe_dirty_effects = new Set();\n\n\t/**\n\t * A source containing the number of pending async deriveds/expressions.\n\t * Only created if `$effect.pending()` is used inside the boundary,\n\t * otherwise updating the source results in needless `Batch.ensure()`\n\t * calls followed by no-op flushes\n\t * @type {Source<number> | null}\n\t */\n\t#effect_pending = null;\n\n\t#effect_pending_subscriber = createSubscriber(() => {\n\t\tthis.#effect_pending = source(this.#local_pending_count);\n\n\t\tif (DEV) {\n\t\t\ttag(this.#effect_pending, '$effect.pending()');\n\t\t}\n\n\t\treturn () => {\n\t\t\tthis.#effect_pending = null;\n\t\t};\n\t});\n\n\t/**\n\t * @param {TemplateNode} node\n\t * @param {BoundaryProps} props\n\t * @param {((anchor: Node) => void)} children\n\t * @param {((error: unknown) => unknown) | undefined} [transform_error]\n\t */\n\tconstructor(node, props, children, transform_error) {\n\t\tthis.#anchor = node;\n\t\tthis.#props = props;\n\n\t\tthis.#children = (anchor) => {\n\t\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\t\teffect.b = this;\n\t\t\teffect.f |= BOUNDARY_EFFECT;\n\n\t\t\tchildren(anchor);\n\t\t};\n\n\t\tthis.parent = /** @type {Effect} */ (active_effect).b;\n\n\t\t// Inherit transform_error from parent boundary, or use the provided one, or default to identity\n\t\tthis.transform_error = transform_error ?? this.parent?.transform_error ?? ((e) => e);\n\n\t\tthis.#effect = block(() => {\n\t\t\tif (hydrating) {\n\t\t\t\tconst comment = /** @type {Comment} */ (this.#hydrate_open);\n\t\t\t\thydrate_next();\n\n\t\t\t\tconst server_rendered_pending = comment.data === HYDRATION_START_ELSE;\n\t\t\t\tconst server_rendered_failed = comment.data.startsWith(HYDRATION_START_FAILED);\n\n\t\t\t\tif (server_rendered_failed) {\n\t\t\t\t\t// Server rendered the failed snippet - hydrate it.\n\t\t\t\t\t// The serialized error is embedded in the comment: <!--[?<json>-->\n\t\t\t\t\tconst serialized_error = JSON.parse(comment.data.slice(HYDRATION_START_FAILED.length));\n\t\t\t\t\tthis.#hydrate_failed_content(serialized_error);\n\t\t\t\t} else if (server_rendered_pending) {\n\t\t\t\t\tthis.#hydrate_pending_content();\n\t\t\t\t} else {\n\t\t\t\t\tthis.#hydrate_resolved_content();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.#render();\n\t\t\t}\n\t\t}, flags);\n\n\t\tif (hydrating) {\n\t\t\tthis.#anchor = hydrate_node;\n\t\t}\n\t}\n\n\t#hydrate_resolved_content() {\n\t\ttry {\n\t\t\tthis.#main_effect = branch(() => this.#children(this.#anchor));\n\t\t} catch (error) {\n\t\t\tthis.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * @param {unknown} error The deserialized error from the server's hydration comment\n\t */\n\t#hydrate_failed_content(error) {\n\t\tconst failed = this.#props.failed;\n\t\tif (!failed) return;\n\n\t\tthis.#failed_effect = branch(() => {\n\t\t\tfailed(\n\t\t\t\tthis.#anchor,\n\t\t\t\t() => error,\n\t\t\t\t() => () => {}\n\t\t\t);\n\t\t});\n\t}\n\n\t#hydrate_pending_content() {\n\t\tconst pending = this.#props.pending;\n\t\tif (!pending) return;\n\n\t\tthis.is_pending = true;\n\t\tthis.#pending_effect = branch(() => pending(this.#anchor));\n\n\t\tqueue_micro_task(() => {\n\t\t\tvar fragment = (this.#offscreen_fragment = document.createDocumentFragment());\n\t\t\tvar anchor = create_text();\n\n\t\t\tfragment.append(anchor);\n\n\t\t\tthis.#main_effect = this.#run(() => {\n\t\t\t\treturn branch(() => this.#children(anchor));\n\t\t\t});\n\n\t\t\tif (this.#pending_count === 0) {\n\t\t\t\tthis.#anchor.before(fragment);\n\t\t\t\tthis.#offscreen_fragment = null;\n\n\t\t\t\tpause_effect(/** @type {Effect} */ (this.#pending_effect), () => {\n\t\t\t\t\tthis.#pending_effect = null;\n\t\t\t\t});\n\n\t\t\t\tthis.#resolve(/** @type {Batch} */ (current_batch));\n\t\t\t}\n\t\t});\n\t}\n\n\t#render() {\n\t\ttry {\n\t\t\tthis.is_pending = this.has_pending_snippet();\n\t\t\tthis.#pending_count = 0;\n\t\t\tthis.#local_pending_count = 0;\n\n\t\t\tthis.#main_effect = branch(() => {\n\t\t\t\tthis.#children(this.#anchor);\n\t\t\t});\n\n\t\t\tif (this.#pending_count > 0) {\n\t\t\t\tvar fragment = (this.#offscreen_fragment = document.createDocumentFragment());\n\t\t\t\tmove_effect(this.#main_effect, fragment);\n\n\t\t\t\tconst pending = /** @type {(anchor: Node) => void} */ (this.#props.pending);\n\t\t\t\tthis.#pending_effect = branch(() => pending(this.#anchor));\n\t\t\t} else {\n\t\t\t\tthis.#resolve(/** @type {Batch} */ (current_batch));\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#resolve(batch) {\n\t\tthis.is_pending = false;\n\n\t\t// any effects that were previously deferred should be transferred\n\t\t// to the batch, which will flush in the next microtask\n\t\tbatch.transfer_effects(this.#dirty_effects, this.#maybe_dirty_effects);\n\t}\n\n\t/**\n\t * Defer an effect inside a pending boundary until the boundary resolves\n\t * @param {Effect} effect\n\t */\n\tdefer_effect(effect) {\n\t\tdefer_effect(effect, this.#dirty_effects, this.#maybe_dirty_effects);\n\t}\n\n\t/**\n\t * Returns `false` if the effect exists inside a boundary whose pending snippet is shown\n\t * @returns {boolean}\n\t */\n\tis_rendered() {\n\t\treturn !this.is_pending && (!this.parent || this.parent.is_rendered());\n\t}\n\n\thas_pending_snippet() {\n\t\treturn !!this.#props.pending;\n\t}\n\n\t/**\n\t * @template T\n\t * @param {() => T} fn\n\t */\n\t#run(fn) {\n\t\tvar previous_effect = active_effect;\n\t\tvar previous_reaction = active_reaction;\n\t\tvar previous_ctx = component_context;\n\n\t\tset_active_effect(this.#effect);\n\t\tset_active_reaction(this.#effect);\n\t\tset_component_context(this.#effect.ctx);\n\n\t\ttry {\n\t\t\tBatch.ensure();\n\t\t\treturn fn();\n\t\t} catch (e) {\n\t\t\thandle_error(e);\n\t\t\treturn null;\n\t\t} finally {\n\t\t\tset_active_effect(previous_effect);\n\t\t\tset_active_reaction(previous_reaction);\n\t\t\tset_component_context(previous_ctx);\n\t\t}\n\t}\n\n\t/**\n\t * Updates the pending count associated with the currently visible pending snippet,\n\t * if any, such that we can replace the snippet with content once work is done\n\t * @param {1 | -1} d\n\t * @param {Batch} batch\n\t */\n\t#update_pending_count(d, batch) {\n\t\tif (!this.has_pending_snippet()) {\n\t\t\tif (this.parent) {\n\t\t\t\tthis.parent.#update_pending_count(d, batch);\n\t\t\t}\n\n\t\t\t// if there's no parent, we're in a scope with no pending snippet\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#pending_count += d;\n\n\t\tif (this.#pending_count === 0) {\n\t\t\tthis.#resolve(batch);\n\n\t\t\tif (this.#pending_effect) {\n\t\t\t\tpause_effect(this.#pending_effect, () => {\n\t\t\t\t\tthis.#pending_effect = null;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.#offscreen_fragment) {\n\t\t\t\tthis.#anchor.before(this.#offscreen_fragment);\n\t\t\t\tthis.#offscreen_fragment = null;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Update the source that powers `$effect.pending()` inside this boundary,\n\t * and controls when the current `pending` snippet (if any) is removed.\n\t * Do not call from inside the class\n\t * @param {1 | -1} d\n\t * @param {Batch} batch\n\t */\n\tupdate_pending_count(d, batch) {\n\t\tthis.#update_pending_count(d, batch);\n\n\t\tthis.#local_pending_count += d;\n\n\t\tif (!this.#effect_pending || this.#pending_count_update_queued) return;\n\t\tthis.#pending_count_update_queued = true;\n\n\t\tqueue_micro_task(() => {\n\t\t\tthis.#pending_count_update_queued = false;\n\t\t\tif (this.#effect_pending) {\n\t\t\t\tinternal_set(this.#effect_pending, this.#local_pending_count);\n\t\t\t}\n\t\t});\n\t}\n\n\tget_effect_pending() {\n\t\tthis.#effect_pending_subscriber();\n\t\treturn get(/** @type {Source<number>} */ (this.#effect_pending));\n\t}\n\n\t/** @param {unknown} error */\n\terror(error) {\n\t\t// If we have nothing to capture the error, or if we hit an error while\n\t\t// rendering the fallback, re-throw for another boundary to handle\n\t\tif (!this.#props.onerror && !this.#props.failed) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (current_batch?.is_fork) {\n\t\t\tif (this.#main_effect) current_batch.skip_effect(this.#main_effect);\n\t\t\tif (this.#pending_effect) current_batch.skip_effect(this.#pending_effect);\n\t\t\tif (this.#failed_effect) current_batch.skip_effect(this.#failed_effect);\n\n\t\t\tcurrent_batch.on_fork_commit(() => {\n\t\t\t\tthis.#handle_error(error);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.#handle_error(error);\n\t\t}\n\t}\n\n\t/**\n\t * @param {unknown} error\n\t */\n\t#handle_error(error) {\n\t\tif (this.#main_effect) {\n\t\t\tdestroy_effect(this.#main_effect);\n\t\t\tthis.#main_effect = null;\n\t\t}\n\n\t\tif (this.#pending_effect) {\n\t\t\tdestroy_effect(this.#pending_effect);\n\t\t\tthis.#pending_effect = null;\n\t\t}\n\n\t\tif (this.#failed_effect) {\n\t\t\tdestroy_effect(this.#failed_effect);\n\t\t\tthis.#failed_effect = null;\n\t\t}\n\n\t\tif (hydrating) {\n\t\t\tset_hydrate_node(/** @type {TemplateNode} */ (this.#hydrate_open));\n\t\t\tnext();\n\t\t\tset_hydrate_node(skip_nodes());\n\t\t}\n\n\t\tvar onerror = this.#props.onerror;\n\t\tlet failed = this.#props.failed;\n\t\tvar did_reset = false;\n\t\tvar calling_on_error = false;\n\n\t\tconst reset = () => {\n\t\t\tif (did_reset) {\n\t\t\t\tw.svelte_boundary_reset_noop();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdid_reset = true;\n\n\t\t\tif (calling_on_error) {\n\t\t\t\te.svelte_boundary_reset_onerror();\n\t\t\t}\n\n\t\t\tif (this.#failed_effect !== null) {\n\t\t\t\tpause_effect(this.#failed_effect, () => {\n\t\t\t\t\tthis.#failed_effect = null;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.#run(() => {\n\t\t\t\tthis.#render();\n\t\t\t});\n\t\t};\n\n\t\t/** @param {unknown} transformed_error */\n\t\tconst handle_error_result = (transformed_error) => {\n\t\t\ttry {\n\t\t\t\tcalling_on_error = true;\n\t\t\t\tonerror?.(transformed_error, reset);\n\t\t\t\tcalling_on_error = false;\n\t\t\t} catch (error) {\n\t\t\t\tinvoke_error_boundary(error, this.#effect && this.#effect.parent);\n\t\t\t}\n\n\t\t\tif (failed) {\n\t\t\t\tthis.#failed_effect = this.#run(() => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn branch(() => {\n\t\t\t\t\t\t\t// errors in `failed` snippets cause the boundary to error again\n\t\t\t\t\t\t\t// TODO Svelte 6: revisit this decision, most likely better to go to parent boundary instead\n\t\t\t\t\t\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\t\t\t\t\t\teffect.b = this;\n\t\t\t\t\t\t\teffect.f |= BOUNDARY_EFFECT;\n\n\t\t\t\t\t\t\tfailed(\n\t\t\t\t\t\t\t\tthis.#anchor,\n\t\t\t\t\t\t\t\t() => transformed_error,\n\t\t\t\t\t\t\t\t() => reset\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tinvoke_error_boundary(error, /** @type {Effect} */ (this.#effect.parent));\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tqueue_micro_task(() => {\n\t\t\t// Run the error through the API-level transformError transform (e.g. SvelteKit's handleError)\n\t\t\t/** @type {unknown} */\n\t\t\tvar result;\n\t\t\ttry {\n\t\t\t\tresult = this.transform_error(error);\n\t\t\t} catch (e) {\n\t\t\t\tinvoke_error_boundary(e, this.#effect && this.#effect.parent);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tresult !== null &&\n\t\t\t\ttypeof result === 'object' &&\n\t\t\t\ttypeof (/** @type {any} */ (result).then) === 'function'\n\t\t\t) {\n\t\t\t\t// transformError returned a Promise — wait for it\n\t\t\t\t/** @type {any} */ (result).then(\n\t\t\t\t\thandle_error_result,\n\t\t\t\t\t/** @param {unknown} e */\n\t\t\t\t\t(e) => invoke_error_boundary(e, this.#effect && this.#effect.parent)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// Synchronous result — handle immediately\n\t\t\t\thandle_error_result(result);\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport function pending() {\n\tif (active_effect === null) {\n\t\te.effect_pending_outside_reaction();\n\t}\n\n\tvar boundary = active_effect.b;\n\n\tif (boundary === null) {\n\t\treturn 0; // TODO eventually we will need this to be global\n\t}\n\n\treturn boundary.get_effect_pending();\n}\n","/** @import { Blocker, Effect, Value } from '#client' */\nimport { DESTROYED, STALE_REACTION } from '#client/constants';\nimport { DEV } from 'esm-env';\nimport {\n\tcomponent_context,\n\tdev_stack,\n\tis_runes,\n\tset_component_context,\n\tset_dev_stack\n} from '../context.js';\nimport { Boundary } from '../dom/blocks/boundary.js';\nimport { invoke_error_boundary } from '../error-handling.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../runtime.js';\nimport { Batch, current_batch } from './batch.js';\nimport {\n\tasync_derived,\n\treactivity_loss_tracker,\n\tderived,\n\tderived_safe_equal,\n\tset_reactivity_loss_tracker\n} from './deriveds.js';\nimport { aborted } from './effects.js';\n\n/**\n * @param {Blocker[]} blockers\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {(values: Value[]) => any} fn\n */\nexport function flatten(blockers, sync, async, fn) {\n\tconst d = is_runes() ? derived : derived_safe_equal;\n\n\t// Filter out already-settled blockers - no need to wait for them\n\tvar pending = blockers.filter((b) => !b.settled);\n\n\tif (async.length === 0 && pending.length === 0) {\n\t\tfn(sync.map(d));\n\t\treturn;\n\t}\n\n\tvar parent = /** @type {Effect} */ (active_effect);\n\n\tvar restore = capture();\n\tvar blocker_promise =\n\t\tpending.length === 1\n\t\t\t? pending[0].promise\n\t\t\t: pending.length > 1\n\t\t\t\t? Promise.all(pending.map((b) => b.promise))\n\t\t\t\t: null;\n\n\t/** @param {Value[]} values */\n\tfunction finish(values) {\n\t\tif ((parent.f & DESTROYED) !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\trestore();\n\n\t\ttry {\n\t\t\tfn(values);\n\t\t} catch (error) {\n\t\t\tinvoke_error_boundary(error, parent);\n\t\t}\n\n\t\tunset_context();\n\t}\n\n\tvar decrement_pending = increment_pending();\n\n\t// Fast path: blockers but no async expressions\n\tif (async.length === 0) {\n\t\t/** @type {Promise<any>} */ (blocker_promise)\n\t\t\t.then(() => finish(sync.map(d)))\n\t\t\t.finally(decrement_pending);\n\n\t\treturn;\n\t}\n\n\t// Full path: has async expressions\n\tfunction run() {\n\t\tPromise.all(async.map((expression) => async_derived(expression)))\n\t\t\t.then((result) => finish([...sync.map(d), ...result]))\n\t\t\t.catch((error) => invoke_error_boundary(error, parent))\n\t\t\t.finally(decrement_pending);\n\t}\n\n\tif (blocker_promise) {\n\t\tblocker_promise.then(() => {\n\t\t\trestore();\n\t\t\trun();\n\t\t\tunset_context();\n\t\t});\n\t} else {\n\t\trun();\n\t}\n}\n\n/**\n * @param {Blocker[]} blockers\n * @param {(values: Value[]) => any} fn\n */\nexport function run_after_blockers(blockers, fn) {\n\tflatten(blockers, [], [], fn);\n}\n\n/**\n * Captures the current effect context so that we can restore it after\n * some asynchronous work has happened (so that e.g. `await a + b`\n * causes `b` to be registered as a dependency).\n */\nexport function capture() {\n\tvar previous_effect = /** @type {Effect} */ (active_effect);\n\tvar previous_reaction = active_reaction;\n\tvar previous_component_context = component_context;\n\tvar previous_batch = /** @type {Batch} */ (current_batch);\n\n\tif (DEV) {\n\t\tvar previous_dev_stack = dev_stack;\n\t}\n\n\treturn function restore(activate_batch = true) {\n\t\tset_active_effect(previous_effect);\n\t\tset_active_reaction(previous_reaction);\n\t\tset_component_context(previous_component_context);\n\n\t\tif (activate_batch && (previous_effect.f & DESTROYED) === 0) {\n\t\t\t// TODO we only need optional chaining here because `{#await ...}` blocks\n\t\t\t// are anomalous. Once we retire them we can get rid of it\n\t\t\tprevious_batch?.activate();\n\t\t\tprevious_batch?.apply();\n\t\t}\n\n\t\tif (DEV) {\n\t\t\tset_reactivity_loss_tracker(null);\n\t\t\tset_dev_stack(previous_dev_stack);\n\t\t}\n\t};\n}\n\n/**\n * Wraps an `await` expression in such a way that the effect context that was\n * active before the expression evaluated can be reapplied afterwards —\n * `await a + b` becomes `(await $.save(a))() + b`\n * @template T\n * @param {Promise<T>} promise\n * @returns {Promise<() => T>}\n */\nexport async function save(promise) {\n\tvar restore = capture();\n\tvar value = await promise;\n\n\treturn () => {\n\t\trestore();\n\t\treturn value;\n\t};\n}\n\n/**\n * Reset `current_async_effect` after the `promise` resolves, so\n * that we can emit `await_reactivity_loss` warnings\n * @template T\n * @param {Promise<T>} promise\n * @returns {Promise<() => T>}\n */\nexport async function track_reactivity_loss(promise) {\n\tvar previous_async_effect = reactivity_loss_tracker;\n\t// Ensure that unrelated reads after an async operation is kicked off don't cause false positives\n\tqueueMicrotask(() => {\n\t\tif (reactivity_loss_tracker === previous_async_effect) {\n\t\t\tset_reactivity_loss_tracker(null);\n\t\t}\n\t});\n\n\tvar value = await promise;\n\n\treturn () => {\n\t\tset_reactivity_loss_tracker(previous_async_effect);\n\t\t// While this can result in false negatives it also guards against the more important\n\t\t// false positives that would occur if this is the last in a chain of async operations,\n\t\t// and the reactivity_loss_tracker would then stay around until the next async operation happens.\n\t\tqueueMicrotask(() => {\n\t\t\tif (reactivity_loss_tracker === previous_async_effect) {\n\t\t\t\tset_reactivity_loss_tracker(null);\n\t\t\t}\n\t\t});\n\n\t\treturn value;\n\t};\n}\n\n/**\n * Used in `for await` loops in DEV, so\n * that we can emit `await_reactivity_loss` warnings\n * after each `async_iterator` result resolves and\n * after the `async_iterator` return resolves (if it runs)\n * @template T\n * @template TReturn\n * @param {Iterable<T> | AsyncIterable<T>} iterable\n * @returns {AsyncGenerator<T, TReturn | undefined>}\n */\nexport async function* for_await_track_reactivity_loss(iterable) {\n\t// This is based on the algorithms described in ECMA-262:\n\t// ForIn/OfBodyEvaluation\n\t// https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset\n\t// AsyncIteratorClose\n\t// https://tc39.es/ecma262/multipage/abstract-operations.html#sec-asynciteratorclose\n\n\t/** @type {AsyncIterator<T, TReturn>} */\n\t// @ts-ignore\n\tconst iterator = iterable[Symbol.asyncIterator]?.() ?? iterable[Symbol.iterator]?.();\n\n\tif (iterator === undefined) {\n\t\tthrow new TypeError('value is not async iterable');\n\t}\n\n\t// eslint-disable-next-line no-useless-assignment\n\tlet invoke_return = true;\n\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = (await track_reactivity_loss(iterator.next()))();\n\t\t\tif (done) {\n\t\t\t\tinvoke_return = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar prev = reactivity_loss_tracker;\n\t\t\ttry {\n\t\t\t\tyield value;\n\t\t\t} catch (e) {\n\t\t\t\tset_reactivity_loss_tracker(prev);\n\t\t\t\t// If the yield throws, we need to call `return` but not return its value, instead rethrow\n\t\t\t\tif (iterator.return !== undefined) {\n\t\t\t\t\t(await track_reactivity_loss(iterator.return()))();\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\tset_reactivity_loss_tracker(prev);\n\t\t}\n\t} catch (error) {\n\t\tinvoke_return = false;\n\t\tthrow error;\n\t} finally {\n\t\t// If the iterator had an abrupt completion (break) and `return` is defined on the iterator, call it and return the value\n\t\tif (invoke_return && iterator.return !== undefined) {\n\t\t\t// eslint-disable-next-line no-unsafe-finally\n\t\t\treturn /** @type {TReturn} */ ((await track_reactivity_loss(iterator.return()))().value);\n\t\t}\n\t}\n}\n\nexport function unset_context(deactivate_batch = true) {\n\tset_active_effect(null);\n\tset_active_reaction(null);\n\tset_component_context(null);\n\tif (deactivate_batch) current_batch?.deactivate();\n\n\tif (DEV) {\n\t\tset_reactivity_loss_tracker(null);\n\t\tset_dev_stack(null);\n\t}\n}\n\n/**\n * @param {Array<() => void | Promise<void>>} thunks\n */\nexport function run(thunks) {\n\tconst restore = capture();\n\n\tconst decrement_pending = increment_pending();\n\n\tvar active = /** @type {Effect} */ (active_effect);\n\n\t/** @type {null | { error: any }} */\n\tvar errored = null;\n\n\t/** @param {any} error */\n\tconst handle_error = (error) => {\n\t\terrored = { error }; // wrap in object in case a promise rejects with a falsy value\n\n\t\tif (!aborted(active)) {\n\t\t\tinvoke_error_boundary(error, active);\n\t\t}\n\t};\n\n\tvar promise = Promise.resolve(thunks[0]()).catch(handle_error);\n\n\t/** @type {Blocker} */\n\tvar blocker = { promise, settled: false };\n\tvar blockers = [blocker];\n\n\tpromise.finally(() => {\n\t\tblocker.settled = true;\n\t\tunset_context();\n\t});\n\n\tfor (const fn of thunks.slice(1)) {\n\t\tpromise = promise\n\t\t\t.then(() => {\n\t\t\t\trestore();\n\n\t\t\t\tif (errored) {\n\t\t\t\t\tthrow errored.error;\n\t\t\t\t}\n\n\t\t\t\tif (aborted(active)) {\n\t\t\t\t\tthrow STALE_REACTION;\n\t\t\t\t}\n\n\t\t\t\treturn fn();\n\t\t\t})\n\t\t\t.catch(handle_error);\n\n\t\tconst blocker = { promise, settled: false };\n\t\tblockers.push(blocker);\n\n\t\tpromise.finally(() => {\n\t\t\tblocker.settled = true;\n\t\t\tunset_context();\n\t\t});\n\t}\n\n\tpromise\n\t\t// wait one more tick, so that template effects are\n\t\t// guaranteed to run before `$effect(...)`\n\t\t.then(() => Promise.resolve())\n\t\t.finally(decrement_pending);\n\n\treturn blockers;\n}\n\n/**\n * @param {Blocker[]} blockers\n */\nexport function wait(blockers) {\n\treturn Promise.all(blockers.map((b) => b.promise));\n}\n\n/**\n * @returns {(skip?: boolean) => void}\n */\nexport function increment_pending() {\n\tvar effect = /** @type {Effect} */ (active_effect);\n\tvar boundary = /** @type {Boundary} */ (effect.b);\n\tvar batch = /** @type {Batch} */ (current_batch);\n\tvar blocking = boundary.is_rendered();\n\n\tboundary.update_pending_count(1, batch);\n\tbatch.increment(blocking, effect);\n\n\treturn () => {\n\t\tboundary.update_pending_count(-1, batch);\n\t\tbatch.decrement(blocking, effect);\n\t};\n}\n","/** @import { Derived, Effect, Reaction, Source, Value } from '#client' */\n/** @import { Batch } from './batch.js'; */\n/** @import { Boundary } from '../dom/blocks/boundary.js'; */\nimport { DEV } from 'esm-env';\nimport {\n\tERROR_VALUE,\n\tDERIVED,\n\tDIRTY,\n\tEFFECT_PRESERVED,\n\tSTALE_REACTION,\n\tASYNC,\n\tWAS_MARKED,\n\tDESTROYED,\n\tCLEAN,\n\tREACTION_RAN,\n\tINERT\n} from '#client/constants';\nimport {\n\tactive_reaction,\n\tactive_effect,\n\tupdate_reaction,\n\tincrement_write_version,\n\tset_active_effect,\n\tpush_reaction_value,\n\tis_destroying_effect,\n\tupdate_effect,\n\tremove_reactions,\n\tskipped_deps,\n\tnew_deps\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport * as e from '../errors.js';\nimport * as w from '../warnings.js';\nimport {\n\tasync_effect,\n\tdestroy_effect,\n\tdestroy_effect_children,\n\teffect_tracking,\n\tteardown\n} from './effects.js';\nimport { eager_effects, internal_set, set_eager_effects, source } from './sources.js';\nimport { get_error } from '../../shared/dev.js';\nimport { async_mode_flag, tracing_mode_flag } from '../../flags/index.js';\nimport { component_context } from '../context.js';\nimport { UNINITIALIZED } from '../../../constants.js';\nimport { batch_values, current_batch, previous_batch } from './batch.js';\nimport { increment_pending, unset_context } from './async.js';\nimport { deferred, includes, noop } from '../../shared/utils.js';\nimport { set_signal_status, update_derived_status } from './status.js';\n\n/**\n * This allows us to track 'reactivity loss' that occurs when signals\n * are read after a non-context-restoring `await`. Dev-only\n * @type {{ effect: Effect, effect_deps: Set<Value>, warned: boolean } | null}\n */\nexport let reactivity_loss_tracker = null;\n\n/** @param {{ effect: Effect, effect_deps: Set<Value>, warned: boolean } | null} v */\nexport function set_reactivity_loss_tracker(v) {\n\treactivity_loss_tracker = v;\n}\n\nexport const recent_async_deriveds = new Set();\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived(fn) {\n\tvar flags = DERIVED | DIRTY;\n\n\tif (active_effect !== null) {\n\t\t// Since deriveds are evaluated lazily, any effects created inside them are\n\t\t// created too late to ensure that the parent effect is added to the tree\n\t\tactive_effect.f |= EFFECT_PRESERVED;\n\t}\n\n\t/** @type {Derived<V>} */\n\tconst signal = {\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\teffects: null,\n\t\tequals,\n\t\tf: flags,\n\t\tfn,\n\t\treactions: null,\n\t\trv: 0,\n\t\tv: /** @type {V} */ (UNINITIALIZED),\n\t\twv: 0,\n\t\tparent: active_effect,\n\t\tac: null\n\t};\n\n\tif (DEV && tracing_mode_flag) {\n\t\tsignal.created = get_error('created at');\n\t}\n\n\treturn signal;\n}\n\nexport const OBSOLETE = Symbol('obsolete');\n\n/**\n * @template V\n * @param {() => V | Promise<V>} fn\n * @param {string} [label]\n * @param {string} [location] If provided, print a warning if the value is not read immediately after update\n * @returns {Promise<Source<V>>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function async_derived(fn, label, location) {\n\tlet parent = /** @type {Effect | null} */ (active_effect);\n\n\tif (parent === null) {\n\t\te.async_derived_orphan();\n\t}\n\n\tvar promise = /** @type {Promise<V>} */ (/** @type {unknown} */ (undefined));\n\tvar signal = source(/** @type {V} */ (UNINITIALIZED));\n\n\tif (DEV) signal.label = label ?? fn.toString();\n\n\t// only suspend in async deriveds created on initialisation\n\tvar should_suspend = !active_reaction;\n\n\t/** @type {Set<ReturnType<typeof deferred<V>>>} */\n\tvar deferreds = new Set();\n\n\tasync_effect(() => {\n\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\tif (DEV) {\n\t\t\treactivity_loss_tracker = { effect, effect_deps: new Set(), warned: false };\n\t\t}\n\n\t\t/** @type {ReturnType<typeof deferred<V>>} */\n\t\tvar d = deferred();\n\t\tpromise = d.promise;\n\n\t\ttry {\n\t\t\t// If this code is changed at some point, make sure to still access the then property\n\t\t\t// of fn() to read any signals it might access, so that we track them as dependencies.\n\t\t\t// We call `unset_context` to undo any `save` calls that happen inside `fn()`\n\t\t\tPromise.resolve(fn())\n\t\t\t\t.then(d.resolve, (e) => {\n\t\t\t\t\t// if the promise was rejected by the user, via `getAbortSignal`, then\n\t\t\t\t\t// wait for a subsequent resolution instead of flushing the batch\n\t\t\t\t\tif (e !== STALE_REACTION) d.reject(e);\n\t\t\t\t})\n\t\t\t\t.finally(unset_context);\n\t\t} catch (error) {\n\t\t\td.reject(error);\n\t\t\tunset_context();\n\t\t}\n\n\t\tif (DEV) {\n\t\t\tif (reactivity_loss_tracker) {\n\t\t\t\t// Reused deps from previous run (indices 0 to skipped_deps-1)\n\t\t\t\t// We deliberately only track direct dependencies of the async expression to encourage\n\t\t\t\t// dependencies being directly visible at the point of the expression\n\t\t\t\tif (effect.deps !== null) {\n\t\t\t\t\tfor (let i = 0; i < skipped_deps; i += 1) {\n\t\t\t\t\t\treactivity_loss_tracker.effect_deps.add(effect.deps[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// New deps discovered this run\n\t\t\t\tif (new_deps !== null) {\n\t\t\t\t\tfor (let i = 0; i < new_deps.length; i += 1) {\n\t\t\t\t\t\treactivity_loss_tracker.effect_deps.add(new_deps[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treactivity_loss_tracker = null;\n\t\t}\n\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\n\t\tif (should_suspend) {\n\t\t\t// we only increment the batch's pending state for updates, not creation, otherwise\n\t\t\t// we will decrement to zero before the work that depends on this promise (e.g. a\n\t\t\t// template effect) has initialized, causing the batch to resolve prematurely\n\t\t\tif ((effect.f & REACTION_RAN) !== 0) {\n\t\t\t\tvar decrement_pending = increment_pending();\n\t\t\t}\n\n\t\t\tif (/** @type {Boundary} */ (parent.b).is_rendered()) {\n\t\t\t\tbatch.async_deriveds.get(effect)?.reject(OBSOLETE);\n\t\t\t} else {\n\t\t\t\t// While the boundary is still showing pending, a new run supersedes all older in-flight runs\n\t\t\t\t// for this async expression. Cancel eagerly so resolution cannot commit stale values.\n\t\t\t\tfor (const d of deferreds.values()) {\n\t\t\t\t\td.reject(OBSOLETE);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdeferreds.add(d);\n\t\t\tbatch.async_deriveds.set(effect, d);\n\t\t}\n\n\t\t/**\n\t\t * @param {any} value\n\t\t * @param {unknown} error\n\t\t */\n\t\tconst handler = (value, error = undefined) => {\n\t\t\tif (DEV) {\n\t\t\t\treactivity_loss_tracker = null;\n\t\t\t}\n\n\t\t\tdecrement_pending?.();\n\t\t\tdeferreds.delete(d);\n\n\t\t\tif (error === OBSOLETE) return;\n\n\t\t\tbatch.activate();\n\n\t\t\tif (error) {\n\t\t\t\tsignal.f |= ERROR_VALUE;\n\n\t\t\t\t// @ts-expect-error the error is the wrong type, but we don't care\n\t\t\t\tinternal_set(signal, error);\n\t\t\t} else {\n\t\t\t\tif ((signal.f & ERROR_VALUE) !== 0) {\n\t\t\t\t\tsignal.f ^= ERROR_VALUE;\n\t\t\t\t}\n\n\t\t\t\tinternal_set(signal, value);\n\n\t\t\t\tif (DEV && location !== undefined) {\n\t\t\t\t\trecent_async_deriveds.add(signal);\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (recent_async_deriveds.has(signal) && (effect.f & DESTROYED) === 0) {\n\t\t\t\t\t\t\tw.await_waterfall(/** @type {string} */ (signal.label), location);\n\t\t\t\t\t\t\trecent_async_deriveds.delete(signal);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbatch.deactivate();\n\t\t};\n\n\t\td.promise.then(handler, (e) => handler(null, e || 'unknown'));\n\t});\n\n\tteardown(() => {\n\t\tfor (const d of deferreds) {\n\t\t\td.reject(OBSOLETE);\n\t\t}\n\t});\n\n\tif (DEV) {\n\t\t// add a flag that lets this be printed as a derived\n\t\t// when using `$inspect.trace()`\n\t\tsignal.f |= ASYNC;\n\t}\n\n\treturn new Promise((fulfil) => {\n\t\t/** @param {Promise<V>} p */\n\t\tfunction next(p) {\n\t\t\tfunction go() {\n\t\t\t\tif (p === promise) {\n\t\t\t\t\tfulfil(signal);\n\t\t\t\t} else {\n\t\t\t\t\t// if the effect re-runs before the initial promise\n\t\t\t\t\t// resolves, delay resolution until we have a value\n\t\t\t\t\tnext(promise);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tp.then(go, go);\n\t\t}\n\n\t\tnext(promise);\n\t});\n}\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function user_derived(fn) {\n\tconst d = derived(fn);\n\n\tif (!async_mode_flag) push_reaction_value(d);\n\n\treturn d;\n}\n\n/**\n * @template V\n * @param {() => V} fn\n * @returns {Derived<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function derived_safe_equal(fn) {\n\tconst signal = derived(fn);\n\tsignal.equals = safe_equals;\n\treturn signal;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nexport function destroy_derived_effects(derived) {\n\tvar effects = derived.effects;\n\n\tif (effects !== null) {\n\t\tderived.effects = null;\n\n\t\tfor (var i = 0; i < effects.length; i += 1) {\n\t\t\tdestroy_effect(/** @type {Effect} */ (effects[i]));\n\t\t}\n\t}\n}\n\n/**\n * The currently updating deriveds, used to detect infinite recursion\n * in dev mode and provide a nicer error than 'too much recursion'\n * @type {Derived[]}\n */\nlet stack = [];\n\n/**\n * @template T\n * @param {Derived} derived\n * @returns {T}\n */\nexport function execute_derived(derived) {\n\tvar value;\n\tvar prev_active_effect = active_effect;\n\tvar parent = derived.parent;\n\n\tif (!is_destroying_effect && parent !== null && (parent.f & (DESTROYED | INERT)) !== 0) {\n\t\tw.derived_inert();\n\n\t\treturn derived.v;\n\t}\n\n\tset_active_effect(parent);\n\n\tif (DEV) {\n\t\tlet prev_eager_effects = eager_effects;\n\t\tset_eager_effects(new Set());\n\t\ttry {\n\t\t\tif (includes.call(stack, derived)) {\n\t\t\t\te.derived_references_self();\n\t\t\t}\n\n\t\t\tstack.push(derived);\n\n\t\t\tderived.f &= ~WAS_MARKED;\n\t\t\tdestroy_derived_effects(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t\tset_eager_effects(prev_eager_effects);\n\t\t\tstack.pop();\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tderived.f &= ~WAS_MARKED;\n\t\t\tdestroy_derived_effects(derived);\n\t\t\tvalue = update_reaction(derived);\n\t\t} finally {\n\t\t\tset_active_effect(prev_active_effect);\n\t\t}\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {Derived} derived\n * @returns {void}\n */\nexport function update_derived(derived) {\n\tvar value = execute_derived(derived);\n\n\tif (!derived.equals(value)) {\n\t\tderived.wv = increment_write_version();\n\n\t\t// in a fork, we don't update the underlying value, just `batch_values`.\n\t\t// the underlying value will be updated when the fork is committed.\n\t\t// otherwise, the next time we get here after a 'real world' state\n\t\t// change, `derived.equals` may incorrectly return `true`\n\t\tif (!current_batch?.is_fork || derived.deps === null) {\n\t\t\tif (current_batch !== null) {\n\t\t\t\t// We also write to previous_batch because if it exists, it is a sign that we're\n\t\t\t\t// currently in the process of flushing effects. These updates to deriveds may belong\n\t\t\t\t// to the previous batch, not the new one (which can already exist if an earlier\n\t\t\t\t// effect wrote to a source). This can cause bugs when running batch.#commit() later,\n\t\t\t\t// but not adding it to current_batch can, too, so we add it to both.\n\t\t\t\t// See https://github.com/sveltejs/svelte/pull/18117 for more details.\n\t\t\t\tcurrent_batch.capture(derived, value, true);\n\t\t\t\tprevious_batch?.capture(derived, value, true);\n\t\t\t} else {\n\t\t\t\tderived.v = value;\n\t\t\t}\n\n\t\t\t// deriveds without dependencies should never be recomputed\n\t\t\tif (derived.deps === null) {\n\t\t\t\tset_signal_status(derived, CLEAN);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// don't mark derived clean if we're reading it inside a\n\t// cleanup function, or it will cache a stale value\n\tif (is_destroying_effect) {\n\t\treturn;\n\t}\n\n\t// During time traveling we don't want to reset the status so that\n\t// traversal of the graph in the other batches still happens\n\tif (batch_values !== null) {\n\t\t// only cache the value if we're in a tracking context, otherwise we won't\n\t\t// clear the cache in `mark_reactions` when dependencies are updated\n\t\tif (effect_tracking() || current_batch?.is_fork) {\n\t\t\tbatch_values.set(derived, value);\n\t\t}\n\t} else {\n\t\tupdate_derived_status(derived);\n\t}\n}\n\n/**\n * @param {Derived} derived\n */\nexport function freeze_derived_effects(derived) {\n\tif (derived.effects === null) return;\n\n\tfor (const e of derived.effects) {\n\t\t// if the effect has a teardown function or abort signal, call it\n\t\tif (e.teardown || e.ac) {\n\t\t\te.teardown?.();\n\t\t\te.ac?.abort(STALE_REACTION);\n\n\t\t\t// make it a noop so it doesn't get called again if the derived\n\t\t\t// is unfrozen. we don't set it to `null`, because the existence\n\t\t\t// of a teardown function is what determines whether the\n\t\t\t// effect runs again during unfreezing\n\t\t\te.teardown = noop;\n\t\t\te.ac = null;\n\n\t\t\tremove_reactions(e, 0);\n\t\t\tdestroy_effect_children(e);\n\t\t}\n\t}\n}\n\n/**\n * @param {Derived} derived\n */\nexport function unfreeze_derived_effects(derived) {\n\tif (derived.effects === null) return;\n\n\tfor (const e of derived.effects) {\n\t\t// if the effect was previously frozen — indicated by the presence\n\t\t// of a teardown function — unfreeze it\n\t\tif (e.teardown) {\n\t\t\tupdate_effect(e);\n\t\t}\n\t}\n}\n","/** @import { Derived, Effect, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport {\n\tactive_reaction,\n\tactive_effect,\n\tuntracked_writes,\n\tget,\n\tset_untracked_writes,\n\tuntrack,\n\tincrement_write_version,\n\tupdate_effect,\n\tcurrent_sources,\n\tis_dirty,\n\tuntracking,\n\tis_destroying_effect,\n\tpush_reaction_value\n} from '../runtime.js';\nimport { equals, safe_equals } from './equality.js';\nimport {\n\tCLEAN,\n\tDERIVED,\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tEAGER_EFFECT,\n\tMAYBE_DIRTY,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tASYNC,\n\tWAS_MARKED,\n\tCONNECTED,\n\tREACTION_IS_UPDATING\n} from '#client/constants';\nimport * as e from '../errors.js';\nimport { legacy_mode_flag, tracing_mode_flag } from '../../flags/index.js';\nimport { includes } from '../../shared/utils.js';\nimport { tag_proxy } from '../dev/tracing.js';\nimport { get_error } from '../../shared/dev.js';\nimport { component_context, is_runes } from '../context.js';\nimport {\n\tBatch,\n\tbatch_values,\n\teager_block_effects,\n\tschedule_effect,\n\tlegacy_updates\n} from './batch.js';\nimport { proxy } from '../proxy.js';\nimport { execute_derived } from './deriveds.js';\nimport { set_signal_status, update_derived_status } from './status.js';\n\n/** @type {Set<Effect>} */\nexport let eager_effects = new Set();\n\n/** @type {Map<Source, any>} */\nexport const old_values = new Map();\n\n/**\n * @param {Set<any>} v\n */\nexport function set_eager_effects(v) {\n\teager_effects = v;\n}\n\nlet eager_effects_deferred = false;\n\nexport function set_eager_effects_deferred() {\n\teager_effects_deferred = true;\n}\n\n/**\n * @template V\n * @param {V} v\n * @param {Error | null} [stack]\n * @returns {Source<V>}\n */\n// TODO rename this to `state` throughout the codebase\nexport function source(v, stack) {\n\t/** @type {Value} */\n\tvar signal = {\n\t\tf: 0, // TODO ideally we could skip this altogether, but it causes type errors\n\t\tv,\n\t\treactions: null,\n\t\tequals,\n\t\trv: 0,\n\t\twv: 0\n\t};\n\n\tif (DEV && tracing_mode_flag) {\n\t\tsignal.created = stack ?? get_error('created at');\n\t\tsignal.updated = null;\n\t\tsignal.set_during_effect = false;\n\t\tsignal.trace = null;\n\t}\n\n\treturn signal;\n}\n\n/**\n * @template V\n * @param {V} v\n * @param {Error | null} [stack]\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function state(v, stack) {\n\tconst s = source(v, stack);\n\n\tpush_reaction_value(s);\n\n\treturn s;\n}\n\n/**\n * @template V\n * @param {V} initial_value\n * @param {boolean} [immutable]\n * @returns {Source<V>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function mutable_source(initial_value, immutable = false, trackable = true) {\n\tconst s = source(initial_value);\n\tif (!immutable) {\n\t\ts.equals = safe_equals;\n\t}\n\n\t// bind the signal to the component context, in case we need to\n\t// track updates to trigger beforeUpdate/afterUpdate callbacks\n\tif (legacy_mode_flag && trackable && component_context !== null && component_context.l !== null) {\n\t\t(component_context.l.s ??= []).push(s);\n\t}\n\n\treturn s;\n}\n\n/**\n * @template V\n * @param {Value<V>} source\n * @param {V} value\n */\nexport function mutate(source, value) {\n\tset(\n\t\tsource,\n\t\tuntrack(() => get(source))\n\t);\n\treturn value;\n}\n\n/**\n * @template V\n * @param {Source<V>} source\n * @param {V} value\n * @param {boolean} [should_proxy]\n * @returns {V}\n */\nexport function set(source, value, should_proxy = false) {\n\tif (\n\t\tactive_reaction !== null &&\n\t\t// since we are untracking the function inside `$inspect.with` we need to add this check\n\t\t// to ensure we error if state is set inside an inspect effect\n\t\t(!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) &&\n\t\tis_runes() &&\n\t\t(active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 &&\n\t\t(current_sources === null || !includes.call(current_sources, source))\n\t) {\n\t\te.state_unsafe_mutation();\n\t}\n\n\tlet new_value = should_proxy ? proxy(value) : value;\n\n\tif (DEV) {\n\t\ttag_proxy(new_value, /** @type {string} */ (source.label));\n\t}\n\n\treturn internal_set(source, new_value, legacy_updates);\n}\n\n/**\n * @template V\n * @param {Source<V>} source\n * @param {V} value\n * @param {Effect[] | null} [updated_during_traversal]\n * @returns {V}\n */\nexport function internal_set(source, value, updated_during_traversal = null) {\n\tif (!source.equals(value)) {\n\t\told_values.set(source, is_destroying_effect ? value : source.v);\n\n\t\tvar batch = Batch.ensure();\n\t\tbatch.capture(source, value);\n\n\t\tif (DEV) {\n\t\t\tif (tracing_mode_flag || active_effect !== null) {\n\t\t\t\tsource.updated ??= new Map();\n\n\t\t\t\t// For performance reasons, when not using $inspect.trace, we only start collecting stack traces\n\t\t\t\t// after the same source has been updated more than 5 times in the same flush cycle.\n\t\t\t\tconst count = (source.updated.get('')?.count ?? 0) + 1;\n\t\t\t\tsource.updated.set('', { error: /** @type {any} */ (null), count });\n\n\t\t\t\tif (tracing_mode_flag || count > 5) {\n\t\t\t\t\tconst error = get_error('updated at');\n\n\t\t\t\t\tif (error !== null) {\n\t\t\t\t\t\tlet entry = source.updated.get(error.stack);\n\n\t\t\t\t\t\tif (!entry) {\n\t\t\t\t\t\t\tentry = { error, count: 0 };\n\t\t\t\t\t\t\tsource.updated.set(error.stack, entry);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tentry.count++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (active_effect !== null) {\n\t\t\t\tsource.set_during_effect = true;\n\t\t\t}\n\t\t}\n\n\t\tif ((source.f & DERIVED) !== 0) {\n\t\t\tconst derived = /** @type {Derived} */ (source);\n\n\t\t\t// if we are assigning to a dirty derived we set it to clean/maybe dirty but we also eagerly execute it to track the dependencies\n\t\t\tif ((source.f & DIRTY) !== 0) {\n\t\t\t\texecute_derived(derived);\n\t\t\t}\n\n\t\t\t// During time traveling we don't want to reset the status so that\n\t\t\t// traversal of the graph in the other batches still happens\n\t\t\tif (batch_values === null) {\n\t\t\t\tupdate_derived_status(derived);\n\t\t\t}\n\t\t}\n\n\t\tsource.wv = increment_write_version();\n\n\t\t// For debugging, in case you want to know which reactions are being scheduled:\n\t\t// log_reactions(source);\n\t\tmark_reactions(source, DIRTY, updated_during_traversal);\n\n\t\t// It's possible that the current reaction might not have up-to-date dependencies\n\t\t// whilst it's actively running. So in the case of ensuring it registers the reaction\n\t\t// properly for itself, we need to ensure the current effect actually gets\n\t\t// scheduled. i.e: `$effect(() => x++)`\n\t\tif (\n\t\t\tis_runes() &&\n\t\t\tactive_effect !== null &&\n\t\t\t(active_effect.f & CLEAN) !== 0 &&\n\t\t\t(active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0\n\t\t) {\n\t\t\tif (untracked_writes === null) {\n\t\t\t\tset_untracked_writes([source]);\n\t\t\t} else {\n\t\t\t\tuntracked_writes.push(source);\n\t\t\t}\n\t\t}\n\n\t\tif (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {\n\t\t\tflush_eager_effects();\n\t\t}\n\t}\n\n\treturn value;\n}\n\nexport function flush_eager_effects() {\n\teager_effects_deferred = false;\n\n\tfor (const effect of eager_effects) {\n\t\t// Mark clean inspect-effects as maybe dirty and then check their dirtiness\n\t\t// instead of just updating the effects - this way we avoid overfiring.\n\t\tif ((effect.f & CLEAN) !== 0) {\n\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t}\n\n\t\tlet dirty;\n\n\t\ttry {\n\t\t\tdirty = is_dirty(effect);\n\t\t} catch {\n\t\t\t// Dirty-checking can evaluate derived dependencies and throw in cases where\n\t\t\t// parent effects are about to destroy this eager effect. Run the effect so\n\t\t\t// its own error handling can deal with transient failures.\n\t\t\tdirty = true;\n\t\t}\n\n\t\tif (dirty) {\n\t\t\tupdate_effect(effect);\n\t\t}\n\t}\n\n\teager_effects.clear();\n}\n\n/**\n * @template {number | bigint} T\n * @param {Source<T>} source\n * @param {1 | -1} [d]\n * @returns {T}\n */\nexport function update(source, d = 1) {\n\tvar value = get(source);\n\tvar result = d === 1 ? value++ : value--;\n\n\tset(source, value);\n\n\t// @ts-expect-error\n\treturn result;\n}\n\n/**\n * @template {number | bigint} T\n * @param {Source<T>} source\n * @param {1 | -1} [d]\n * @returns {T}\n */\nexport function update_pre(source, d = 1) {\n\tvar value = get(source);\n\n\t// @ts-expect-error\n\t// eslint-disable-next-line no-useless-assignment -- `++`/`--` used for return value, not side effect on `value`\n\treturn set(source, d === 1 ? ++value : --value);\n}\n\n/**\n * Silently (without using `get`) increment a source\n * @param {Source<number>} source\n */\nexport function increment(source) {\n\tset(source, source.v + 1);\n}\n\n/**\n * @param {Value} signal\n * @param {number} status should be DIRTY or MAYBE_DIRTY\n * @param {Effect[] | null} updated_during_traversal\n * @returns {void}\n */\nfunction mark_reactions(signal, status, updated_during_traversal) {\n\tvar reactions = signal.reactions;\n\tif (reactions === null) return;\n\n\tvar runes = is_runes();\n\tvar length = reactions.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tvar reaction = reactions[i];\n\t\tvar flags = reaction.f;\n\n\t\t// In legacy mode, skip the current effect to prevent infinite loops\n\t\tif (!runes && reaction === active_effect) continue;\n\n\t\tvar not_dirty = (flags & DIRTY) === 0;\n\n\t\t// don't set a DIRTY reaction to MAYBE_DIRTY\n\t\tif (not_dirty) {\n\t\t\tset_signal_status(reaction, status);\n\t\t}\n\n\t\tif ((flags & EAGER_EFFECT) !== 0) {\n\t\t\t// Eager effects need to run immediately:\n\t\t\t// - for $inspect so that the stack trace makes sense\n\t\t\t// - for $state.eager because they might be without an effect parent\n\t\t\teager_effects.add(/** @type {Effect} */ (reaction));\n\t\t} else if ((flags & DERIVED) !== 0) {\n\t\t\tvar derived = /** @type {Derived} */ (reaction);\n\n\t\t\tbatch_values?.delete(derived);\n\n\t\t\tif ((flags & WAS_MARKED) === 0) {\n\t\t\t\t// Only connected deriveds being executed outside the update cycle can be reliably unmarked right away\n\t\t\t\tif (\n\t\t\t\t\tflags & CONNECTED &&\n\t\t\t\t\t(active_effect === null || (active_effect.f & REACTION_IS_UPDATING) === 0)\n\t\t\t\t) {\n\t\t\t\t\treaction.f |= WAS_MARKED;\n\t\t\t\t}\n\n\t\t\t\tmark_reactions(derived, MAYBE_DIRTY, updated_during_traversal);\n\t\t\t}\n\t\t} else if (not_dirty) {\n\t\t\tvar effect = /** @type {Effect} */ (reaction);\n\n\t\t\tif ((flags & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {\n\t\t\t\teager_block_effects.add(effect);\n\t\t\t}\n\n\t\t\tif (updated_during_traversal !== null) {\n\t\t\t\tupdated_during_traversal.push(effect);\n\t\t\t} else {\n\t\t\t\tschedule_effect(effect);\n\t\t\t}\n\t\t}\n\t}\n}\n","/** @import { Source } from '#client' */\nimport { DEV } from 'esm-env';\nimport {\n\tget,\n\tactive_effect,\n\tupdate_version,\n\tactive_reaction,\n\tset_update_version,\n\tset_active_reaction\n} from './runtime.js';\nimport {\n\tarray_prototype,\n\tget_descriptor,\n\tget_prototype_of,\n\tis_array,\n\tobject_prototype\n} from '../shared/utils.js';\nimport {\n\tstate as source,\n\tset,\n\tincrement,\n\tflush_eager_effects,\n\tset_eager_effects_deferred\n} from './reactivity/sources.js';\nimport { PROXY_PATH_SYMBOL, STATE_SYMBOL } from '#client/constants';\nimport { UNINITIALIZED } from '../../constants.js';\nimport * as e from './errors.js';\nimport { tag } from './dev/tracing.js';\nimport { get_error } from '../shared/dev.js';\nimport { tracing_mode_flag } from '../flags/index.js';\n\n// TODO move all regexes into shared module?\nconst regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;\n\n/**\n * @template T\n * @param {T} value\n * @returns {T}\n */\nexport function proxy(value) {\n\t// if non-proxyable, or is already a proxy, return `value`\n\tif (typeof value !== 'object' || value === null || STATE_SYMBOL in value) {\n\t\treturn value;\n\t}\n\n\tconst prototype = get_prototype_of(value);\n\n\tif (prototype !== object_prototype && prototype !== array_prototype) {\n\t\treturn value;\n\t}\n\n\t/** @type {Map<any, Source<any>>} */\n\tvar sources = new Map();\n\tvar is_proxied_array = is_array(value);\n\tvar version = source(0);\n\n\tvar stack = DEV && tracing_mode_flag ? get_error('created at') : null;\n\tvar parent_version = update_version;\n\n\t/**\n\t * Executes the proxy in the context of the reaction it was originally created in, if any\n\t * @template T\n\t * @param {() => T} fn\n\t */\n\tvar with_parent = (fn) => {\n\t\tif (update_version === parent_version) {\n\t\t\treturn fn();\n\t\t}\n\n\t\t// child source is being created after the initial proxy —\n\t\t// prevent it from being associated with the current reaction\n\t\tvar reaction = active_reaction;\n\t\tvar version = update_version;\n\n\t\tset_active_reaction(null);\n\t\tset_update_version(parent_version);\n\n\t\tvar result = fn();\n\n\t\tset_active_reaction(reaction);\n\t\tset_update_version(version);\n\n\t\treturn result;\n\t};\n\n\tif (is_proxied_array) {\n\t\t// We need to create the length source eagerly to ensure that\n\t\t// mutations to the array are properly synced with our proxy\n\t\tsources.set('length', source(/** @type {any[]} */ (value).length, stack));\n\t\tif (DEV) {\n\t\t\tvalue = /** @type {any} */ (inspectable_array(/** @type {any[]} */ (value)));\n\t\t}\n\t}\n\n\t/** Used in dev for $inspect.trace() */\n\tvar path = '';\n\tlet updating = false;\n\t/** @param {string} new_path */\n\tfunction update_path(new_path) {\n\t\tif (updating) return;\n\t\tupdating = true;\n\t\tpath = new_path;\n\n\t\ttag(version, `${path} version`);\n\n\t\t// rename all child sources and child proxies\n\t\tfor (const [prop, source] of sources) {\n\t\t\ttag(source, get_label(path, prop));\n\t\t}\n\t\tupdating = false;\n\t}\n\n\treturn new Proxy(/** @type {any} */ (value), {\n\t\tdefineProperty(_, prop, descriptor) {\n\t\t\tif (\n\t\t\t\t!('value' in descriptor) ||\n\t\t\t\tdescriptor.configurable === false ||\n\t\t\t\tdescriptor.enumerable === false ||\n\t\t\t\tdescriptor.writable === false\n\t\t\t) {\n\t\t\t\t// we disallow non-basic descriptors, because unless they are applied to the\n\t\t\t\t// target object — which we avoid, so that state can be forked — we will run\n\t\t\t\t// afoul of the various invariants\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor#invariants\n\t\t\t\te.state_descriptors_fixed();\n\t\t\t}\n\t\t\tvar s = sources.get(prop);\n\t\t\tif (s === undefined) {\n\t\t\t\twith_parent(() => {\n\t\t\t\t\tvar s = source(descriptor.value, stack);\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t\tif (DEV && typeof prop === 'string') {\n\t\t\t\t\t\ttag(s, get_label(path, prop));\n\t\t\t\t\t}\n\t\t\t\t\treturn s;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tset(s, descriptor.value, true);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tdeleteProperty(target, prop) {\n\t\t\tvar s = sources.get(prop);\n\n\t\t\tif (s === undefined) {\n\t\t\t\tif (prop in target) {\n\t\t\t\t\tconst s = with_parent(() => source(UNINITIALIZED, stack));\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t\tincrement(version);\n\n\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\ttag(s, get_label(path, prop));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tset(s, UNINITIALIZED);\n\t\t\t\tincrement(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tget(target, prop, receiver) {\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (DEV && prop === PROXY_PATH_SYMBOL) {\n\t\t\t\treturn update_path;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar exists = prop in target;\n\n\t\t\t// create a source, but only if it's an own property and not a prototype property\n\t\t\tif (s === undefined && (!exists || get_descriptor(target, prop)?.writable)) {\n\t\t\t\ts = with_parent(() => {\n\t\t\t\t\tvar p = proxy(exists ? target[prop] : UNINITIALIZED);\n\t\t\t\t\tvar s = source(p, stack);\n\n\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\ttag(s, get_label(path, prop));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn s;\n\t\t\t\t});\n\n\t\t\t\tsources.set(prop, s);\n\t\t\t}\n\n\t\t\tif (s !== undefined) {\n\t\t\t\tvar v = get(s);\n\t\t\t\treturn v === UNINITIALIZED ? undefined : v;\n\t\t\t}\n\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t},\n\n\t\tgetOwnPropertyDescriptor(target, prop) {\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\tif (descriptor && 'value' in descriptor) {\n\t\t\t\tvar s = sources.get(prop);\n\t\t\t\tif (s) descriptor.value = get(s);\n\t\t\t} else if (descriptor === undefined) {\n\t\t\t\tvar source = sources.get(prop);\n\t\t\t\tvar value = source?.v;\n\n\t\t\t\tif (source !== undefined && value !== UNINITIALIZED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twritable: true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn descriptor;\n\t\t},\n\n\t\thas(target, prop) {\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = (s !== undefined && s.v !== UNINITIALIZED) || Reflect.has(target, prop);\n\n\t\t\tif (\n\t\t\t\ts !== undefined ||\n\t\t\t\t(active_effect !== null && (!has || get_descriptor(target, prop)?.writable))\n\t\t\t) {\n\t\t\t\tif (s === undefined) {\n\t\t\t\t\ts = with_parent(() => {\n\t\t\t\t\t\tvar p = has ? proxy(target[prop]) : UNINITIALIZED;\n\t\t\t\t\t\tvar s = source(p, stack);\n\n\t\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\t\ttag(s, get_label(path, prop));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn s;\n\t\t\t\t\t});\n\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\n\t\t\t\tvar value = get(s);\n\t\t\t\tif (value === UNINITIALIZED) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn has;\n\t\t},\n\n\t\tset(target, prop, value, receiver) {\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = prop in target;\n\n\t\t\t// variable.length = value -> clear all signals with index >= value\n\t\t\tif (is_proxied_array && prop === 'length') {\n\t\t\t\tfor (var i = value; i < /** @type {Source<number>} */ (s).v; i += 1) {\n\t\t\t\t\tvar other_s = sources.get(i + '');\n\t\t\t\t\tif (other_s !== undefined) {\n\t\t\t\t\t\tset(other_s, UNINITIALIZED);\n\t\t\t\t\t} else if (i in target) {\n\t\t\t\t\t\t// If the item exists in the original, we need to create an uninitialized source,\n\t\t\t\t\t\t// else a later read of the property would result in a source being created with\n\t\t\t\t\t\t// the value of the original item at that index.\n\t\t\t\t\t\tother_s = with_parent(() => source(UNINITIALIZED, stack));\n\t\t\t\t\t\tsources.set(i + '', other_s);\n\n\t\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\t\ttag(other_s, get_label(path, i));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we haven't yet created a source for this property, we need to ensure\n\t\t\t// we do so otherwise if we read it later, then the write won't be tracked and\n\t\t\t// the heuristics of effects will be different vs if we had read the proxied\n\t\t\t// object property before writing to that property.\n\t\t\tif (s === undefined) {\n\t\t\t\tif (!has || get_descriptor(target, prop)?.writable) {\n\t\t\t\t\ts = with_parent(() => source(undefined, stack));\n\n\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\ttag(s, get_label(path, prop));\n\t\t\t\t\t}\n\t\t\t\t\tset(s, proxy(value));\n\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thas = s.v !== UNINITIALIZED;\n\n\t\t\t\tvar p = with_parent(() => proxy(value));\n\t\t\t\tset(s, p);\n\t\t\t}\n\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\t// Set the new value before updating any signals so that any listeners get the new value\n\t\t\tif (descriptor?.set) {\n\t\t\t\tdescriptor.set.call(receiver, value);\n\t\t\t}\n\n\t\t\tif (!has) {\n\t\t\t\t// If we have mutated an array directly, we might need to\n\t\t\t\t// signal that length has also changed. Do it before updating metadata\n\t\t\t\t// to ensure that iterating over the array as a result of a metadata update\n\t\t\t\t// will not cause the length to be out of sync.\n\t\t\t\tif (is_proxied_array && typeof prop === 'string') {\n\t\t\t\t\tvar ls = /** @type {Source<number>} */ (sources.get('length'));\n\t\t\t\t\tvar n = Number(prop);\n\n\t\t\t\t\tif (Number.isInteger(n) && n >= ls.v) {\n\t\t\t\t\t\tset(ls, n + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tincrement(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\townKeys(target) {\n\t\t\tget(version);\n\n\t\t\tvar own_keys = Reflect.ownKeys(target).filter((key) => {\n\t\t\t\tvar source = sources.get(key);\n\t\t\t\treturn source === undefined || source.v !== UNINITIALIZED;\n\t\t\t});\n\n\t\t\tfor (var [key, source] of sources) {\n\t\t\t\tif (source.v !== UNINITIALIZED && !(key in target)) {\n\t\t\t\t\town_keys.push(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn own_keys;\n\t\t},\n\n\t\tsetPrototypeOf() {\n\t\t\te.state_prototype_fixed();\n\t\t}\n\t});\n}\n\n/**\n * @param {string} path\n * @param {string | symbol} prop\n */\nfunction get_label(path, prop) {\n\tif (typeof prop === 'symbol') return `${path}[Symbol(${prop.description ?? ''})]`;\n\tif (regex_is_valid_identifier.test(prop)) return `${path}.${prop}`;\n\treturn /^\\d+$/.test(prop) ? `${path}[${prop}]` : `${path}['${prop}']`;\n}\n\n/**\n * @param {any} value\n */\nexport function get_proxied_value(value) {\n\ttry {\n\t\tif (value !== null && typeof value === 'object' && STATE_SYMBOL in value) {\n\t\t\treturn value[STATE_SYMBOL];\n\t\t}\n\t} catch {\n\t\t// the above if check can throw an error if the value in question\n\t\t// is the contentWindow of an iframe on another domain, in which\n\t\t// case we want to just return the value (because it's definitely\n\t\t// not a proxied value) so we don't break any JavaScript interacting\n\t\t// with that iframe (such as various payment companies client side\n\t\t// JavaScript libraries interacting with their iframes on the same\n\t\t// domain)\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {any} a\n * @param {any} b\n */\nexport function is(a, b) {\n\treturn Object.is(get_proxied_value(a), get_proxied_value(b));\n}\n\nconst ARRAY_MUTATING_METHODS = new Set([\n\t'copyWithin',\n\t'fill',\n\t'pop',\n\t'push',\n\t'reverse',\n\t'shift',\n\t'sort',\n\t'splice',\n\t'unshift'\n]);\n\n/**\n * Wrap array mutating methods so $inspect is triggered only once and\n * to prevent logging an array in intermediate state (e.g. with an empty slot)\n * @param {any[]} array\n */\nfunction inspectable_array(array) {\n\treturn new Proxy(array, {\n\t\tget(target, prop, receiver) {\n\t\t\tvar value = Reflect.get(target, prop, receiver);\n\t\t\tif (!ARRAY_MUTATING_METHODS.has(/** @type {string} */ (prop))) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @this {any[]}\n\t\t\t * @param {any[]} args\n\t\t\t */\n\t\t\treturn function (...args) {\n\t\t\t\tset_eager_effects_deferred();\n\t\t\t\tvar result = value.apply(this, args);\n\t\t\t\tflush_eager_effects();\n\t\t\t\treturn result;\n\t\t\t};\n\t\t}\n\t});\n}\n","import * as w from '../warnings.js';\nimport { get_proxied_value } from '../proxy.js';\n\nexport function init_array_prototype_warnings() {\n\tconst array_prototype = Array.prototype;\n\t// The REPL ends up here over and over, and this prevents it from adding more and more patches\n\t// of the same kind to the prototype, which would slow down everything over time.\n\t// @ts-expect-error\n\tconst cleanup = Array.__svelte_cleanup;\n\tif (cleanup) {\n\t\tcleanup();\n\t}\n\n\tconst { indexOf, lastIndexOf, includes } = array_prototype;\n\n\tarray_prototype.indexOf = function (item, from_index) {\n\t\tconst index = indexOf.call(this, item, from_index);\n\n\t\tif (index === -1) {\n\t\t\tfor (let i = from_index ?? 0; i < this.length; i += 1) {\n\t\t\t\tif (get_proxied_value(this[i]) === item) {\n\t\t\t\t\tw.state_proxy_equality_mismatch('array.indexOf(...)');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t};\n\n\tarray_prototype.lastIndexOf = function (item, from_index) {\n\t\t// we need to specify this.length - 1 because it's probably using something like\n\t\t// `arguments` inside so passing undefined is different from not passing anything\n\t\tconst index = lastIndexOf.call(this, item, from_index ?? this.length - 1);\n\n\t\tif (index === -1) {\n\t\t\tfor (let i = 0; i <= (from_index ?? this.length - 1); i += 1) {\n\t\t\t\tif (get_proxied_value(this[i]) === item) {\n\t\t\t\t\tw.state_proxy_equality_mismatch('array.lastIndexOf(...)');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t};\n\n\tarray_prototype.includes = function (item, from_index) {\n\t\tconst has = includes.call(this, item, from_index);\n\n\t\tif (!has) {\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\n\t\t\t\tif (get_proxied_value(this[i]) === item) {\n\t\t\t\t\tw.state_proxy_equality_mismatch('array.includes(...)');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn has;\n\t};\n\n\t// @ts-expect-error\n\tArray.__svelte_cleanup = () => {\n\t\tarray_prototype.indexOf = indexOf;\n\t\tarray_prototype.lastIndexOf = lastIndexOf;\n\t\tarray_prototype.includes = includes;\n\t};\n}\n\n/**\n * @param {any} a\n * @param {any} b\n * @param {boolean} equal\n * @returns {boolean}\n */\nexport function strict_equals(a, b, equal = true) {\n\t// try-catch needed because this tries to read properties of `a` and `b`,\n\t// which could be disallowed for example in a secure context\n\ttry {\n\t\tif ((a === b) !== (get_proxied_value(a) === get_proxied_value(b))) {\n\t\t\tw.state_proxy_equality_mismatch(equal ? '===' : '!==');\n\t\t}\n\t} catch {}\n\n\treturn (a === b) === equal;\n}\n\n/**\n * @param {any} a\n * @param {any} b\n * @param {boolean} equal\n * @returns {boolean}\n */\nexport function equals(a, b, equal = true) {\n\tif ((a == b) !== (get_proxied_value(a) == get_proxied_value(b))) {\n\t\tw.state_proxy_equality_mismatch(equal ? '==' : '!=');\n\t}\n\n\treturn (a == b) === equal;\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport { DEV } from 'esm-env';\nimport { init_array_prototype_warnings } from '../dev/equality.js';\nimport { get_descriptor, is_extensible } from '../../shared/utils.js';\nimport { active_effect } from '../runtime.js';\nimport { async_mode_flag } from '../../flags/index.js';\nimport {\n\tATTRIBUTES_CACHE,\n\tCLASS_CACHE,\n\tREACTION_RAN,\n\tSTYLE_CACHE,\n\tTEXT_CACHE,\n\tTEXT_NODE\n} from '#client/constants';\nimport { eager_block_effects } from '../reactivity/batch.js';\nimport { NAMESPACE_HTML } from '../../../constants.js';\n\n// export these for reference in the compiled code, making global name deduplication unnecessary\n/** @type {Window} */\nexport var $window;\n\n/** @type {Document} */\nexport var $document;\n\n/** @type {boolean} */\nexport var is_firefox;\n\n/** @type {() => Node | null} */\nvar first_child_getter;\n/** @type {() => Node | null} */\nvar next_sibling_getter;\n\n/**\n * Initialize these lazily to avoid issues when using the runtime in a server context\n * where these globals are not available while avoiding a separate server entry point\n */\nexport function init_operations() {\n\tif ($window !== undefined) {\n\t\treturn;\n\t}\n\n\t$window = window;\n\t$document = document;\n\tis_firefox = /Firefox/.test(navigator.userAgent);\n\n\tvar element_prototype = Element.prototype;\n\tvar node_prototype = Node.prototype;\n\tvar text_prototype = Text.prototype;\n\n\t// @ts-ignore\n\tfirst_child_getter = get_descriptor(node_prototype, 'firstChild').get;\n\t// @ts-ignore\n\tnext_sibling_getter = get_descriptor(node_prototype, 'nextSibling').get;\n\n\tif (is_extensible(element_prototype)) {\n\t\t// the following assignments improve perf of lookups on DOM nodes\n\t\t/** @type {any} */ (element_prototype)[CLASS_CACHE] = undefined;\n\t\t/** @type {any} */ (element_prototype)[ATTRIBUTES_CACHE] = null;\n\t\t/** @type {any} */ (element_prototype)[STYLE_CACHE] = undefined;\n\t\t// @ts-expect-error\n\t\telement_prototype.__e = undefined;\n\t}\n\n\tif (is_extensible(text_prototype)) {\n\t\t/** @type {any} */ (text_prototype)[TEXT_CACHE] = undefined;\n\t}\n\n\tif (DEV) {\n\t\t// @ts-expect-error\n\t\telement_prototype.__svelte_meta = null;\n\n\t\tinit_array_prototype_warnings();\n\t}\n}\n\n/**\n * @param {string} value\n * @returns {Text}\n */\nexport function create_text(value = '') {\n\treturn document.createTextNode(value);\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_first_child(node) {\n\treturn /** @type {TemplateNode | null} */ (first_child_getter.call(node));\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function get_next_sibling(node) {\n\treturn /** @type {TemplateNode | null} */ (next_sibling_getter.call(node));\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @template {Node} N\n * @param {N} node\n * @param {boolean} is_text\n * @returns {TemplateNode | null}\n */\nexport function child(node, is_text) {\n\tif (!hydrating) {\n\t\treturn get_first_child(node);\n\t}\n\n\tvar child = get_first_child(hydrate_node);\n\n\t// Child can be null if we have an element with a single child, like `<p>{text}</p>`, where `text` is empty\n\tif (child === null) {\n\t\tchild = hydrate_node.appendChild(create_text());\n\t} else if (is_text && child.nodeType !== TEXT_NODE) {\n\t\tvar text = create_text();\n\t\tchild?.before(text);\n\t\tset_hydrate_node(text);\n\t\treturn text;\n\t}\n\n\tif (is_text) {\n\t\tmerge_text_nodes(/** @type {Text} */ (child));\n\t}\n\n\tset_hydrate_node(child);\n\treturn child;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {TemplateNode} node\n * @param {boolean} [is_text]\n * @returns {TemplateNode | null}\n */\nexport function first_child(node, is_text = false) {\n\tif (!hydrating) {\n\t\tvar first = get_first_child(node);\n\n\t\t// TODO prevent user comments with the empty string when preserveComments is true\n\t\tif (first instanceof Comment && first.data === '') return get_next_sibling(first);\n\n\t\treturn first;\n\t}\n\n\tif (is_text) {\n\t\t// if an {expression} is empty during SSR, there might be no\n\t\t// text node to hydrate — we must therefore create one\n\t\tif (hydrate_node?.nodeType !== TEXT_NODE) {\n\t\t\tvar text = create_text();\n\n\t\t\thydrate_node?.before(text);\n\t\t\tset_hydrate_node(text);\n\t\t\treturn text;\n\t\t}\n\n\t\tmerge_text_nodes(/** @type {Text} */ (hydrate_node));\n\t}\n\n\treturn hydrate_node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {TemplateNode} node\n * @param {number} count\n * @param {boolean} is_text\n * @returns {TemplateNode | null}\n */\nexport function sibling(node, count = 1, is_text = false) {\n\tlet next_sibling = hydrating ? hydrate_node : node;\n\tvar last_sibling;\n\n\twhile (count--) {\n\t\tlast_sibling = next_sibling;\n\t\tnext_sibling = /** @type {TemplateNode} */ (get_next_sibling(next_sibling));\n\t}\n\n\tif (!hydrating) {\n\t\treturn next_sibling;\n\t}\n\n\tif (is_text) {\n\t\t// if a sibling {expression} is empty during SSR, there might be no\n\t\t// text node to hydrate — we must therefore create one\n\t\tif (next_sibling?.nodeType !== TEXT_NODE) {\n\t\t\tvar text = create_text();\n\t\t\t// If the next sibling is `null` and we're handling text then it's because\n\t\t\t// the SSR content was empty for the text, so we need to generate a new text\n\t\t\t// node and insert it after the last sibling\n\t\t\tif (next_sibling === null) {\n\t\t\t\tlast_sibling?.after(text);\n\t\t\t} else {\n\t\t\t\tnext_sibling.before(text);\n\t\t\t}\n\t\t\tset_hydrate_node(text);\n\t\t\treturn text;\n\t\t}\n\n\t\tmerge_text_nodes(/** @type {Text} */ (next_sibling));\n\t}\n\n\tset_hydrate_node(next_sibling);\n\treturn next_sibling;\n}\n\n/**\n * @template {Node} N\n * @param {N} node\n * @returns {void}\n */\nexport function clear_text_content(node) {\n\tnode.textContent = '';\n}\n\n/**\n * Returns `true` if we're updating the current block, for example `condition` in\n * an `{#if condition}` block just changed. In this case, the branch should be\n * appended (or removed) at the same time as other updates within the\n * current `<svelte:boundary>`\n */\nexport function should_defer_append() {\n\tif (!async_mode_flag) return false;\n\tif (eager_block_effects !== null) return false;\n\n\tvar flags = /** @type {Effect} */ (active_effect).f;\n\treturn (flags & REACTION_RAN) !== 0;\n}\n\n/**\n * @template {keyof HTMLElementTagNameMap | string} T\n * @param {T} tag\n * @param {string} [namespace]\n * @param {string} [is]\n * @returns {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element}\n */\nexport function create_element(tag, namespace, is) {\n\tlet options = is ? { is } : undefined;\n\treturn /** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */ (\n\t\tdocument.createElementNS(namespace ?? NAMESPACE_HTML, tag, options)\n\t);\n}\n\nexport function create_fragment() {\n\treturn document.createDocumentFragment();\n}\n\n/**\n * @param {string} data\n * @returns\n */\nexport function create_comment(data = '') {\n\treturn document.createComment(data);\n}\n\n/**\n * @param {Element} element\n * @param {string} key\n * @param {string} value\n * @returns\n */\nexport function set_attribute(element, key, value = '') {\n\tif (key.startsWith('xlink:')) {\n\t\telement.setAttributeNS('http://www.w3.org/1999/xlink', key, value);\n\t\treturn;\n\t}\n\treturn element.setAttribute(key, value);\n}\n\n/**\n * Browsers split text nodes larger than 65536 bytes when parsing.\n * For hydration to succeed, we need to stitch them back together\n * @param {Text} text\n */\nexport function merge_text_nodes(text) {\n\tif (/** @type {string} */ (text.nodeValue).length < 65536) {\n\t\treturn;\n\t}\n\n\tlet next = text.nextSibling;\n\n\twhile (next !== null && next.nodeType === TEXT_NODE) {\n\t\tnext.remove();\n\n\t\t/** @type {string} */ (text.nodeValue) += /** @type {string} */ (next.nodeValue);\n\n\t\tnext = text.nextSibling;\n\t}\n}\n","import { hydrating } from '../hydration.js';\nimport { clear_text_content, get_first_child } from '../operations.js';\nimport { queue_micro_task } from '../task.js';\nimport { FORM_RESET_HANDLER } from '../../constants.js';\n\n/**\n * @param {HTMLElement} dom\n * @param {boolean} value\n * @returns {void}\n */\nexport function autofocus(dom, value) {\n\tif (value) {\n\t\tconst body = document.body;\n\t\tdom.autofocus = true;\n\n\t\tqueue_micro_task(() => {\n\t\t\tif (document.activeElement === body) {\n\t\t\t\tdom.focus();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * The child of a textarea actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLTextAreaElement} dom\n * @returns {void}\n */\nexport function remove_textarea_child(dom) {\n\tif (hydrating && get_first_child(dom) !== null) {\n\t\tclear_text_content(dom);\n\t}\n}\n\nlet listening_to_form_reset = false;\n\nexport function add_form_reset_listener() {\n\tif (!listening_to_form_reset) {\n\t\tlistening_to_form_reset = true;\n\t\tdocument.addEventListener(\n\t\t\t'reset',\n\t\t\t(evt) => {\n\t\t\t\t// Needs to happen one tick later or else the dom properties of the form\n\t\t\t\t// elements have not updated to their reset values yet\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (!evt.defaultPrevented) {\n\t\t\t\t\t\tfor (const e of /**@type {HTMLFormElement} */ (evt.target).elements) {\n\t\t\t\t\t\t\t/** @type {any} */ (e)[FORM_RESET_HANDLER]?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t// In the capture phase to guarantee we get noticed of it (no possibility of stopPropagation)\n\t\t\t{ capture: true }\n\t\t);\n\t}\n}\n","import { teardown } from '../../../reactivity/effects.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../../runtime.js';\nimport { FORM_RESET_HANDLER } from '../../../constants.js';\nimport { add_form_reset_listener } from '../misc.js';\n\n/**\n * Fires the handler once immediately (unless corresponding arg is set to `false`),\n * then listens to the given events until the render effect context is destroyed\n * @param {EventTarget} target\n * @param {Array<string>} events\n * @param {(event?: Event) => void} handler\n * @param {any} call_handler_immediately\n */\nexport function listen(target, events, handler, call_handler_immediately = true) {\n\tif (call_handler_immediately) {\n\t\thandler();\n\t}\n\n\tfor (var name of events) {\n\t\ttarget.addEventListener(name, handler);\n\t}\n\n\tteardown(() => {\n\t\tfor (var name of events) {\n\t\t\ttarget.removeEventListener(name, handler);\n\t\t}\n\t});\n}\n\n/**\n * @template T\n * @param {() => T} fn\n */\nexport function without_reactive_context(fn) {\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\ttry {\n\t\treturn fn();\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * Listen to the given event, and then instantiate a global form reset listener if not already done,\n * to notify all bindings when the form is reset\n * @param {HTMLElement} element\n * @param {string} event\n * @param {(is_reset?: true) => void} handler\n * @param {(is_reset?: true) => void} [on_reset]\n */\nexport function listen_to_event_and_reset_event(element, event, handler, on_reset = handler) {\n\telement.addEventListener(event, () => without_reactive_context(handler));\n\tconst prev = /** @type {any} */ (element)[FORM_RESET_HANDLER];\n\tif (prev) {\n\t\t// special case for checkbox that can have multiple binds (group & checked)\n\t\t/** @type {any} */ (element)[FORM_RESET_HANDLER] = () => {\n\t\t\tprev();\n\t\t\ton_reset(true);\n\t\t};\n\t} else {\n\t\t/** @type {any} */ (element)[FORM_RESET_HANDLER] = () => on_reset(true);\n\t}\n\n\tadd_form_reset_listener();\n}\n","/** @import { Blocker, ComponentContext, ComponentContextLegacy, Derived, Effect, TemplateNode, TransitionManager } from '#client' */\nimport {\n\tis_dirty,\n\tactive_effect,\n\tactive_reaction,\n\tupdate_effect,\n\tget,\n\tis_destroying_effect,\n\tremove_reactions,\n\tset_active_reaction,\n\tset_is_destroying_effect,\n\tuntrack,\n\tuntracking,\n\tset_active_effect\n} from '../runtime.js';\nimport {\n\tDIRTY,\n\tBRANCH_EFFECT,\n\tRENDER_EFFECT,\n\tEFFECT,\n\tDESTROYED,\n\tINERT,\n\tREACTION_RAN,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tEFFECT_TRANSPARENT,\n\tDERIVED,\n\tCLEAN,\n\tEAGER_EFFECT,\n\tHEAD_EFFECT,\n\tMAYBE_DIRTY,\n\tEFFECT_PRESERVED,\n\tSTALE_REACTION,\n\tUSER_EFFECT,\n\tASYNC,\n\tCONNECTED,\n\tMANAGED_EFFECT,\n\tDESTROYING\n} from '#client/constants';\nimport * as e from '../errors.js';\nimport { DEV } from 'esm-env';\nimport { define_property } from '../../shared/utils.js';\nimport { get_next_sibling } from '../dom/operations.js';\nimport { component_context, dev_current_component_function, dev_stack } from '../context.js';\nimport { Batch, collected_effects, current_batch } from './batch.js';\nimport { flatten } from './async.js';\nimport { without_reactive_context } from '../dom/elements/bindings/shared.js';\nimport { set_signal_status } from './status.js';\n\n/**\n * @param {'$effect' | '$effect.pre' | '$inspect'} rune\n */\nexport function validate_effect(rune) {\n\tif (active_effect === null) {\n\t\tif (active_reaction === null) {\n\t\t\te.effect_orphan(rune);\n\t\t}\n\n\t\te.effect_in_unowned_derived();\n\t}\n\n\tif (is_destroying_effect) {\n\t\te.effect_in_teardown(rune);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {Effect} parent_effect\n */\nfunction push_effect(effect, parent_effect) {\n\tvar parent_last = parent_effect.last;\n\tif (parent_last === null) {\n\t\tparent_effect.last = parent_effect.first = effect;\n\t} else {\n\t\tparent_last.next = effect;\n\t\teffect.prev = parent_last;\n\t\tparent_effect.last = effect;\n\t}\n}\n\n/**\n * @param {number} type\n * @param {null | (() => void | (() => void))} fn\n * @returns {Effect}\n */\nfunction create_effect(type, fn) {\n\tvar parent = active_effect;\n\n\tif (DEV) {\n\t\t// Ensure the parent is never an inspect effect\n\t\twhile (parent !== null && (parent.f & EAGER_EFFECT) !== 0) {\n\t\t\tparent = parent.parent;\n\t\t}\n\t}\n\n\tif (parent !== null && (parent.f & INERT) !== 0) {\n\t\ttype |= INERT;\n\t}\n\n\t/** @type {Effect} */\n\tvar effect = {\n\t\tctx: component_context,\n\t\tdeps: null,\n\t\tnodes: null,\n\t\tf: type | DIRTY | CONNECTED,\n\t\tfirst: null,\n\t\tfn,\n\t\tlast: null,\n\t\tnext: null,\n\t\tparent,\n\t\tb: parent && parent.b,\n\t\tprev: null,\n\t\tteardown: null,\n\t\twv: 0,\n\t\tac: null\n\t};\n\n\tif (DEV) {\n\t\teffect.component_function = dev_current_component_function;\n\t}\n\n\tcurrent_batch?.register_created_effect(effect);\n\n\t/** @type {Effect | null} */\n\tvar e = effect;\n\n\tif ((type & EFFECT) !== 0) {\n\t\tif (collected_effects !== null) {\n\t\t\t// created during traversal — collect and run afterwards\n\t\t\tcollected_effects.push(effect);\n\t\t} else {\n\t\t\t// schedule for later\n\t\t\tBatch.ensure().schedule(effect);\n\t\t}\n\t} else if (fn !== null) {\n\t\ttry {\n\t\t\tupdate_effect(effect);\n\t\t} catch (e) {\n\t\t\tdestroy_effect(effect);\n\t\t\tthrow e;\n\t\t}\n\n\t\t// if an effect doesn't need to be kept in the tree (because it\n\t\t// won't re-run, has no DOM, and has no teardown etc)\n\t\t// then we skip it and go to its child (if any)\n\t\tif (\n\t\t\te.deps === null &&\n\t\t\te.teardown === null &&\n\t\t\te.nodes === null &&\n\t\t\te.first === e.last && // either `null`, or a singular child\n\t\t\t(e.f & EFFECT_PRESERVED) === 0\n\t\t) {\n\t\t\te = e.first;\n\t\t\tif ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {\n\t\t\t\te.f |= EFFECT_TRANSPARENT;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (e !== null) {\n\t\te.parent = parent;\n\n\t\tif (parent !== null) {\n\t\t\tpush_effect(e, parent);\n\t\t}\n\n\t\t// if we're in a derived, add the effect there too\n\t\tif (\n\t\t\tactive_reaction !== null &&\n\t\t\t(active_reaction.f & DERIVED) !== 0 &&\n\t\t\t(type & ROOT_EFFECT) === 0\n\t\t) {\n\t\t\tvar derived = /** @type {Derived} */ (active_reaction);\n\t\t\t(derived.effects ??= []).push(e);\n\t\t}\n\t}\n\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect.tracking()`\n * @returns {boolean}\n */\nexport function effect_tracking() {\n\treturn active_reaction !== null && !untracking;\n}\n\n/**\n * @param {() => void} fn\n */\nexport function teardown(fn) {\n\tconst effect = create_effect(RENDER_EFFECT, null);\n\tset_signal_status(effect, CLEAN);\n\teffect.teardown = fn;\n\treturn effect;\n}\n\n/**\n * Internal representation of `$effect(...)`\n * @param {() => void | (() => void)} fn\n */\nexport function user_effect(fn) {\n\tvalidate_effect('$effect');\n\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect'\n\t\t});\n\t}\n\n\t// Non-nested `$effect(...)` in a component should be deferred\n\t// until the component is mounted\n\tvar flags = /** @type {Effect} */ (active_effect).f;\n\tvar defer = !active_reaction && (flags & BRANCH_EFFECT) !== 0 && (flags & REACTION_RAN) === 0;\n\n\tif (defer) {\n\t\t// Top-level `$effect(...)` in an unmounted component — defer until mount\n\t\tvar context = /** @type {ComponentContext} */ (component_context);\n\t\t(context.e ??= []).push(fn);\n\t} else {\n\t\t// Everything else — create immediately\n\t\treturn create_user_effect(fn);\n\t}\n}\n\n/**\n * @param {() => void | (() => void)} fn\n */\nexport function create_user_effect(fn) {\n\treturn create_effect(EFFECT | USER_EFFECT, fn);\n}\n\n/**\n * Internal representation of `$effect.pre(...)`\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function user_pre_effect(fn) {\n\tvalidate_effect('$effect.pre');\n\tif (DEV) {\n\t\tdefine_property(fn, 'name', {\n\t\t\tvalue: '$effect.pre'\n\t\t});\n\t}\n\treturn create_effect(RENDER_EFFECT | USER_EFFECT, fn);\n}\n\n/** @param {() => void | (() => void)} fn */\nexport function eager_effect(fn) {\n\treturn create_effect(EAGER_EFFECT, fn);\n}\n\n/**\n * Internal representation of `$effect.root(...)`\n * @param {() => void | (() => void)} fn\n * @returns {() => void}\n */\nexport function effect_root(fn) {\n\tBatch.ensure();\n\tconst effect = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn);\n\n\treturn () => {\n\t\tdestroy_effect(effect);\n\t};\n}\n\n/**\n * An effect root whose children can transition out\n * @param {() => void} fn\n * @returns {(options?: { outro?: boolean }) => Promise<void>}\n */\nexport function component_root(fn) {\n\tBatch.ensure();\n\tconst effect = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn);\n\n\treturn (options = {}) => {\n\t\treturn new Promise((fulfil) => {\n\t\t\tif (options.outro) {\n\t\t\t\tpause_effect(effect, () => {\n\t\t\t\t\tdestroy_effect(effect);\n\t\t\t\t\tfulfil(undefined);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdestroy_effect(effect);\n\t\t\t\tfulfil(undefined);\n\t\t\t}\n\t\t});\n\t};\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function effect(fn) {\n\treturn create_effect(EFFECT, fn);\n}\n\n/**\n * Internal representation of `$: ..`\n * @param {() => any} deps\n * @param {() => void | (() => void)} fn\n */\nexport function legacy_pre_effect(deps, fn) {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\t/** @type {{ effect: null | Effect, ran: boolean, deps: () => any }} */\n\tvar token = { effect: null, ran: false, deps };\n\n\tcontext.l.$.push(token);\n\n\ttoken.effect = render_effect(() => {\n\t\tdeps();\n\n\t\t// If this legacy pre effect has already run before the end of the reset, then\n\t\t// bail out to emulate the same behavior.\n\t\tif (token.ran) return;\n\n\t\ttoken.ran = true;\n\n\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\t// here, we lie: by setting `active_effect` to be the parent branch, any writes\n\t\t// that happen inside `fn` will _not_ cause an unnecessary reschedule, because\n\t\t// the affected effects will be children of `active_effect`. this is safe\n\t\t// because these effects are known to run in the correct order\n\t\ttry {\n\t\t\tset_active_effect(effect.parent);\n\t\t\tuntrack(fn);\n\t\t} finally {\n\t\t\tset_active_effect(effect);\n\t\t}\n\t});\n}\n\nexport function legacy_pre_effect_reset() {\n\tvar context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\trender_effect(() => {\n\t\t// Run dirty `$:` statements\n\t\tfor (var token of context.l.$) {\n\t\t\ttoken.deps();\n\n\t\t\tvar effect = token.effect;\n\n\t\t\t// If the effect is CLEAN, then make it MAYBE_DIRTY. This ensures we traverse through\n\t\t\t// the effects dependencies and correctly ensure each dependency is up-to-date.\n\t\t\tif ((effect.f & CLEAN) !== 0 && effect.deps !== null) {\n\t\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t\t}\n\n\t\t\tif (is_dirty(effect)) {\n\t\t\t\tupdate_effect(effect);\n\t\t\t}\n\n\t\t\ttoken.ran = false;\n\t\t}\n\t});\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function async_effect(fn) {\n\treturn create_effect(ASYNC | EFFECT_PRESERVED, fn);\n}\n\n/**\n * @param {() => void | (() => void)} fn\n * @returns {Effect}\n */\nexport function render_effect(fn, flags = 0) {\n\treturn create_effect(RENDER_EFFECT | flags, fn);\n}\n\n/**\n * @param {(...expressions: any) => void | (() => void)} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n */\nexport function template_effect(fn, sync = [], async = [], blockers = []) {\n\tflatten(blockers, sync, async, (values) => {\n\t\tcreate_effect(RENDER_EFFECT, () => fn(...values.map(get)));\n\t});\n}\n\n/**\n * Like `template_effect`, but with an effect which is deferred until the batch commits\n * @param {(...expressions: any) => void | (() => void)} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n */\nexport function deferred_template_effect(fn, sync = [], async = [], blockers = []) {\n\tflatten(blockers, sync, async, (values) => {\n\t\tcreate_effect(EFFECT, () => fn(...values.map(get)));\n\t});\n}\n\n/**\n * @param {(() => void)} fn\n * @param {number} flags\n */\nexport function block(fn, flags = 0) {\n\tvar effect = create_effect(BLOCK_EFFECT | flags, fn);\n\tif (DEV) {\n\t\teffect.dev_stack = dev_stack;\n\t}\n\treturn effect;\n}\n\n/**\n * @param {(() => void)} fn\n * @param {number} flags\n */\nexport function managed(fn, flags = 0) {\n\tvar effect = create_effect(MANAGED_EFFECT | flags, fn);\n\tif (DEV) {\n\t\teffect.dev_stack = dev_stack;\n\t}\n\treturn effect;\n}\n\n/**\n * @param {(() => void)} fn\n */\nexport function branch(fn) {\n\treturn create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn);\n}\n\n/**\n * @param {Effect} effect\n */\nexport function execute_effect_teardown(effect) {\n\tvar teardown = effect.teardown;\n\tif (teardown !== null) {\n\t\tconst previously_destroying_effect = is_destroying_effect;\n\t\tconst previous_reaction = active_reaction;\n\t\tset_is_destroying_effect(true);\n\t\tset_active_reaction(null);\n\t\ttry {\n\t\t\tteardown.call(null);\n\t\t} finally {\n\t\t\tset_is_destroying_effect(previously_destroying_effect);\n\t\t\tset_active_reaction(previous_reaction);\n\t\t}\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @param {boolean} remove_dom\n * @returns {void}\n */\nexport function destroy_effect_children(signal, remove_dom = false) {\n\tvar effect = signal.first;\n\tsignal.first = signal.last = null;\n\n\twhile (effect !== null) {\n\t\tconst controller = effect.ac;\n\n\t\tif (controller !== null) {\n\t\t\twithout_reactive_context(() => {\n\t\t\t\tcontroller.abort(STALE_REACTION);\n\t\t\t});\n\t\t}\n\n\t\tvar next = effect.next;\n\n\t\tif ((effect.f & ROOT_EFFECT) !== 0) {\n\t\t\t// this is now an independent root\n\t\t\teffect.parent = null;\n\t\t} else {\n\t\t\tdestroy_effect(effect, remove_dom);\n\t\t}\n\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} signal\n * @returns {void}\n */\nexport function destroy_block_effect_children(signal) {\n\tvar effect = signal.first;\n\n\twhile (effect !== null) {\n\t\tvar next = effect.next;\n\t\tif ((effect.f & BRANCH_EFFECT) === 0) {\n\t\t\tdestroy_effect(effect);\n\t\t}\n\t\teffect = next;\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} [remove_dom]\n * @returns {void}\n */\nexport function destroy_effect(effect, remove_dom = true) {\n\tvar removed = false;\n\n\tif (\n\t\t(remove_dom || (effect.f & HEAD_EFFECT) !== 0) &&\n\t\teffect.nodes !== null &&\n\t\teffect.nodes.end !== null\n\t) {\n\t\tremove_effect_dom(effect.nodes.start, /** @type {TemplateNode} */ (effect.nodes.end));\n\t\tremoved = true;\n\t}\n\n\tset_signal_status(effect, DESTROYING);\n\tdestroy_effect_children(effect, remove_dom && !removed);\n\tremove_reactions(effect, 0);\n\n\tvar transitions = effect.nodes && effect.nodes.t;\n\n\tif (transitions !== null) {\n\t\tfor (const transition of transitions) {\n\t\t\ttransition.stop();\n\t\t}\n\t}\n\n\texecute_effect_teardown(effect);\n\n\teffect.f ^= DESTROYING;\n\teffect.f |= DESTROYED;\n\n\tvar parent = effect.parent;\n\n\t// If the parent doesn't have any children, then skip this work altogether\n\tif (parent !== null && parent.first !== null) {\n\t\tunlink_effect(effect);\n\t}\n\n\tif (DEV) {\n\t\teffect.component_function = null;\n\t}\n\n\t// `first` and `child` are nulled out in destroy_effect_children\n\t// we don't null out `parent` so that error propagation can work correctly\n\teffect.next =\n\t\teffect.prev =\n\t\teffect.teardown =\n\t\teffect.ctx =\n\t\teffect.deps =\n\t\teffect.fn =\n\t\teffect.nodes =\n\t\teffect.ac =\n\t\teffect.b =\n\t\t\tnull;\n}\n\n/**\n *\n * @param {TemplateNode | null} node\n * @param {TemplateNode} end\n */\nexport function remove_effect_dom(node, end) {\n\twhile (node !== null) {\n\t\t/** @type {TemplateNode | null} */\n\t\tvar next = node === end ? null : get_next_sibling(node);\n\n\t\tnode.remove();\n\t\tnode = next;\n\t}\n}\n\n/**\n * Detach an effect from the effect tree, freeing up memory and\n * reducing the amount of work that happens on subsequent traversals\n * @param {Effect} effect\n */\nexport function unlink_effect(effect) {\n\tvar parent = effect.parent;\n\tvar prev = effect.prev;\n\tvar next = effect.next;\n\n\tif (prev !== null) prev.next = next;\n\tif (next !== null) next.prev = prev;\n\n\tif (parent !== null) {\n\t\tif (parent.first === effect) parent.first = next;\n\t\tif (parent.last === effect) parent.last = prev;\n\t}\n}\n\n/**\n * When a block effect is removed, we don't immediately destroy it or yank it\n * out of the DOM, because it might have transitions. Instead, we 'pause' it.\n * It stays around (in memory, and in the DOM) until outro transitions have\n * completed, and if the state change is reversed then we _resume_ it.\n * A paused effect does not update, and the DOM subtree becomes inert.\n * @param {Effect} effect\n * @param {() => void} [callback]\n * @param {boolean} [destroy]\n */\nexport function pause_effect(effect, callback, destroy = true) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\n\tpause_children(effect, transitions, true);\n\n\tvar fn = () => {\n\t\tif (destroy) destroy_effect(effect);\n\t\tif (callback) callback();\n\t};\n\n\tvar remaining = transitions.length;\n\tif (remaining > 0) {\n\t\tvar check = () => --remaining || fn();\n\t\tfor (var transition of transitions) {\n\t\t\ttransition.out(check);\n\t\t}\n\t} else {\n\t\tfn();\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @param {TransitionManager[]} transitions\n * @param {boolean} local\n */\nfunction pause_children(effect, transitions, local) {\n\tif ((effect.f & INERT) !== 0) return;\n\teffect.f ^= INERT;\n\n\tvar t = effect.nodes && effect.nodes.t;\n\n\tif (t !== null) {\n\t\tfor (const transition of t) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransitions.push(transition);\n\t\t\t}\n\t\t}\n\t}\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\n\t\t// If this child is a root effect, then it will become an independent root when its parent\n\t\t// is destroyed, it should therefore not become inert nor partake in transitions.\n\t\tif ((child.f & ROOT_EFFECT) === 0) {\n\t\t\tvar transparent =\n\t\t\t\t(child.f & EFFECT_TRANSPARENT) !== 0 ||\n\t\t\t\t// If this is a branch effect without a block effect parent,\n\t\t\t\t// it means the parent block effect was pruned. In that case,\n\t\t\t\t// transparency information was transferred to the branch effect.\n\t\t\t\t((child.f & BRANCH_EFFECT) !== 0 && (effect.f & BLOCK_EFFECT) !== 0);\n\t\t\t// TODO we don't need to call pause_children recursively with a linked list in place\n\t\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t\t// through the tree.\n\t\t\tpause_children(child, transitions, transparent ? local : false);\n\t\t}\n\n\t\tchild = sibling;\n\t}\n}\n\n/**\n * The opposite of `pause_effect`. We call this if (for example)\n * `x` becomes falsy then truthy: `{#if x}...{/if}`\n * @param {Effect} effect\n */\nexport function resume_effect(effect) {\n\tresume_children(effect, true);\n}\n\n/**\n * @param {Effect} effect\n * @param {boolean} local\n */\nfunction resume_children(effect, local) {\n\tif ((effect.f & INERT) === 0) return;\n\teffect.f ^= INERT;\n\n\t// If a dependency of this effect changed while it was paused,\n\t// schedule the effect to update. we don't use `is_dirty`\n\t// here because we don't want to eagerly recompute a derived like\n\t// `{#if foo}{foo.bar()}{/if}` if `foo` is now `undefined\n\tif ((effect.f & CLEAN) === 0) {\n\t\tset_signal_status(effect, DIRTY);\n\t\tBatch.ensure().schedule(effect); // Assumption: This happens during the commit phase of the batch, causing another flush, but it's safe\n\t}\n\n\tvar child = effect.first;\n\n\twhile (child !== null) {\n\t\tvar sibling = child.next;\n\t\tvar transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;\n\t\t// TODO we don't need to call resume_children recursively with a linked list in place\n\t\t// it's slightly more involved though as we have to account for `transparent` changing\n\t\t// through the tree.\n\t\tresume_children(child, transparent ? local : false);\n\t\tchild = sibling;\n\t}\n\n\tvar t = effect.nodes && effect.nodes.t;\n\n\tif (t !== null) {\n\t\tfor (const transition of t) {\n\t\t\tif (transition.is_global || local) {\n\t\t\t\ttransition.in();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function aborted(effect = /** @type {Effect} */ (active_effect)) {\n\treturn (effect.f & DESTROYED) !== 0;\n}\n\n/**\n * @param {Effect} effect\n * @param {DocumentFragment} fragment\n */\nexport function move_effect(effect, fragment) {\n\tif (!effect.nodes) return;\n\n\t/** @type {TemplateNode | null} */\n\tvar node = effect.nodes.start;\n\tvar end = effect.nodes.end;\n\n\twhile (node !== null) {\n\t\t/** @type {TemplateNode | null} */\n\t\tvar next = node === end ? null : get_next_sibling(node);\n\n\t\tfragment.append(node);\n\t\tnode = next;\n\t}\n}\n","/** @import { Value } from '#client' */\nimport { internal_set } from './reactivity/sources.js';\nimport { untrack } from './runtime.js';\n\n/**\n * @type {Set<Value> | null}\n * @deprecated\n */\nexport let captured_signals = null;\n\n/**\n * Capture an array of all the signals that are read when `fn` is called\n * @template T\n * @param {() => T} fn\n */\nfunction capture_signals(fn) {\n\tvar previous_captured_signals = captured_signals;\n\n\ttry {\n\t\tcaptured_signals = new Set();\n\n\t\tuntrack(fn);\n\n\t\tif (previous_captured_signals !== null) {\n\t\t\tfor (var signal of captured_signals) {\n\t\t\t\tprevious_captured_signals.add(signal);\n\t\t\t}\n\t\t}\n\n\t\treturn captured_signals;\n\t} finally {\n\t\tcaptured_signals = previous_captured_signals;\n\t}\n}\n\n/**\n * Invokes a function and captures all signals that are read during the invocation,\n * then invalidates them.\n * @param {() => any} fn\n * @deprecated\n */\nexport function invalidate_inner_signals(fn) {\n\tfor (var signal of capture_signals(fn)) {\n\t\tinternal_set(signal, signal.v);\n\t}\n}\n","/** @import { Derived, Effect, Reaction, Source, Value } from '#client' */\nimport { DEV } from 'esm-env';\nimport { get_descriptors, get_prototype_of, includes, index_of } from '../shared/utils.js';\nimport {\n\tdestroy_block_effect_children,\n\tdestroy_effect_children,\n\teffect_tracking,\n\texecute_effect_teardown\n} from './reactivity/effects.js';\nimport {\n\tDIRTY,\n\tMAYBE_DIRTY,\n\tCLEAN,\n\tDERIVED,\n\tDESTROYED,\n\tBRANCH_EFFECT,\n\tSTATE_SYMBOL,\n\tBLOCK_EFFECT,\n\tROOT_EFFECT,\n\tCONNECTED,\n\tREACTION_IS_UPDATING,\n\tSTALE_REACTION,\n\tERROR_VALUE,\n\tWAS_MARKED,\n\tMANAGED_EFFECT,\n\tREACTION_RAN\n} from './constants.js';\nimport { old_values } from './reactivity/sources.js';\nimport {\n\treactivity_loss_tracker,\n\texecute_derived,\n\tfreeze_derived_effects,\n\trecent_async_deriveds,\n\tunfreeze_derived_effects,\n\tupdate_derived\n} from './reactivity/deriveds.js';\nimport { async_mode_flag, tracing_mode_flag } from '../flags/index.js';\nimport { tracing_expressions } from './dev/tracing.js';\nimport { get_error } from '../shared/dev.js';\nimport {\n\tcomponent_context,\n\tdev_current_component_function,\n\tdev_stack,\n\tis_runes,\n\tset_component_context,\n\tset_dev_current_component_function,\n\tset_dev_stack\n} from './context.js';\nimport {\n\tBatch,\n\tbatch_values,\n\tcurrent_batch,\n\tflushSync,\n\tschedule_effect\n} from './reactivity/batch.js';\nimport { handle_error } from './error-handling.js';\nimport { UNINITIALIZED } from '../../constants.js';\nimport { captured_signals } from './legacy.js';\nimport { without_reactive_context } from './dom/elements/bindings/shared.js';\nimport { set_signal_status, update_derived_status } from './reactivity/status.js';\nimport * as w from './warnings.js';\n\nlet is_updating_effect = false;\n\nexport let is_destroying_effect = false;\n\n/** @param {boolean} value */\nexport function set_is_destroying_effect(value) {\n\tis_destroying_effect = value;\n}\n\n/** @type {null | Reaction} */\nexport let active_reaction = null;\n\nexport let untracking = false;\n\n/** @param {null | Reaction} reaction */\nexport function set_active_reaction(reaction) {\n\tactive_reaction = reaction;\n}\n\n/** @type {null | Effect} */\nexport let active_effect = null;\n\n/** @param {null | Effect} effect */\nexport function set_active_effect(effect) {\n\tactive_effect = effect;\n}\n\n/**\n * When sources are created within a reaction, reading and writing\n * them within that reaction should not cause a re-run\n * @type {null | Source[]}\n */\nexport let current_sources = null;\n\n/** @param {Value} value */\nexport function push_reaction_value(value) {\n\tif (active_reaction !== null && (!async_mode_flag || (active_reaction.f & DERIVED) !== 0)) {\n\t\tif (current_sources === null) {\n\t\t\tcurrent_sources = [value];\n\t\t} else {\n\t\t\tcurrent_sources.push(value);\n\t\t}\n\t}\n}\n\n/**\n * The dependencies of the reaction that is currently being executed. In many cases,\n * the dependencies are unchanged between runs, and so this will be `null` unless\n * and until a new dependency is accessed — we track this via `skipped_deps`\n * @type {null | Value[]}\n */\nexport let new_deps = null;\n\nexport let skipped_deps = 0;\n\n/**\n * Tracks writes that the effect it's executed in doesn't listen to yet,\n * so that the dependency can be added to the effect later on if it then reads it\n * @type {null | Source[]}\n */\nexport let untracked_writes = null;\n\n/** @param {null | Source[]} value */\nexport function set_untracked_writes(value) {\n\tuntracked_writes = value;\n}\n\n/**\n * @type {number} Used by sources and deriveds for handling updates.\n * Version starts from 1 so that unowned deriveds differentiate between a created effect and a run one for tracing\n **/\nexport let write_version = 1;\n\n/** @type {number} Used to version each read of a source of derived to avoid duplicating depedencies inside a reaction */\nlet read_version = 0;\n\nexport let update_version = read_version;\n\n/** @param {number} value */\nexport function set_update_version(value) {\n\tupdate_version = value;\n}\n\nexport function increment_write_version() {\n\treturn ++write_version;\n}\n\n/**\n * Determines whether a derived or effect is dirty.\n * If it is MAYBE_DIRTY, will set the status to CLEAN\n * @param {Reaction} reaction\n * @returns {boolean}\n */\nexport function is_dirty(reaction) {\n\tvar flags = reaction.f;\n\n\tif ((flags & DIRTY) !== 0) {\n\t\treturn true;\n\t}\n\n\tif (flags & DERIVED) {\n\t\treaction.f &= ~WAS_MARKED;\n\t}\n\n\tif ((flags & MAYBE_DIRTY) !== 0) {\n\t\tvar dependencies = /** @type {Value[]} */ (reaction.deps);\n\t\tvar length = dependencies.length;\n\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar dependency = dependencies[i];\n\n\t\t\tif (is_dirty(/** @type {Derived} */ (dependency))) {\n\t\t\t\tupdate_derived(/** @type {Derived} */ (dependency));\n\t\t\t}\n\n\t\t\tif (dependency.wv > reaction.wv) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t(flags & CONNECTED) !== 0 &&\n\t\t\t// During time traveling we don't want to reset the status so that\n\t\t\t// traversal of the graph in the other batches still happens\n\t\t\tbatch_values === null\n\t\t) {\n\t\t\tset_signal_status(reaction, CLEAN);\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * @param {Value} signal\n * @param {Effect} effect\n * @param {boolean} [root]\n */\nfunction schedule_possible_effect_self_invalidation(signal, effect, root = true) {\n\tvar reactions = signal.reactions;\n\tif (reactions === null) return;\n\n\tif (!async_mode_flag && current_sources !== null && includes.call(current_sources, signal)) {\n\t\treturn;\n\t}\n\n\tfor (var i = 0; i < reactions.length; i++) {\n\t\tvar reaction = reactions[i];\n\n\t\tif ((reaction.f & DERIVED) !== 0) {\n\t\t\tschedule_possible_effect_self_invalidation(/** @type {Derived} */ (reaction), effect, false);\n\t\t} else if (effect === reaction) {\n\t\t\tif (root) {\n\t\t\t\tset_signal_status(reaction, DIRTY);\n\t\t\t} else if ((reaction.f & CLEAN) !== 0) {\n\t\t\t\tset_signal_status(reaction, MAYBE_DIRTY);\n\t\t\t}\n\t\t\tschedule_effect(/** @type {Effect} */ (reaction));\n\t\t}\n\t}\n}\n\n/** @param {Reaction} reaction */\nexport function update_reaction(reaction) {\n\tvar previous_deps = new_deps;\n\tvar previous_skipped_deps = skipped_deps;\n\tvar previous_untracked_writes = untracked_writes;\n\tvar previous_reaction = active_reaction;\n\tvar previous_sources = current_sources;\n\tvar previous_component_context = component_context;\n\tvar previous_untracking = untracking;\n\tvar previous_update_version = update_version;\n\n\tvar flags = reaction.f;\n\n\tnew_deps = /** @type {null | Value[]} */ (null);\n\tskipped_deps = 0;\n\tuntracked_writes = null;\n\tactive_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;\n\n\tcurrent_sources = null;\n\tset_component_context(reaction.ctx);\n\tuntracking = false;\n\tupdate_version = ++read_version;\n\n\tif (reaction.ac !== null) {\n\t\twithout_reactive_context(() => {\n\t\t\t/** @type {AbortController} */ (reaction.ac).abort(STALE_REACTION);\n\t\t});\n\n\t\treaction.ac = null;\n\t}\n\n\ttry {\n\t\treaction.f |= REACTION_IS_UPDATING;\n\t\tvar fn = /** @type {Function} */ (reaction.fn);\n\t\tvar result = fn();\n\t\treaction.f |= REACTION_RAN;\n\t\tvar deps = reaction.deps;\n\n\t\t// Don't remove reactions during fork;\n\t\t// they must remain for when fork is discarded\n\t\tvar is_fork = current_batch?.is_fork;\n\n\t\tif (new_deps !== null) {\n\t\t\tvar i;\n\n\t\t\tif (!is_fork) {\n\t\t\t\tremove_reactions(reaction, skipped_deps);\n\t\t\t}\n\n\t\t\tif (deps !== null && skipped_deps > 0) {\n\t\t\t\tdeps.length = skipped_deps + new_deps.length;\n\t\t\t\tfor (i = 0; i < new_deps.length; i++) {\n\t\t\t\t\tdeps[skipped_deps + i] = new_deps[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treaction.deps = deps = new_deps;\n\t\t\t}\n\n\t\t\tif (effect_tracking() && (reaction.f & CONNECTED) !== 0) {\n\t\t\t\tfor (i = skipped_deps; i < deps.length; i++) {\n\t\t\t\t\t(deps[i].reactions ??= []).push(reaction);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!is_fork && deps !== null && skipped_deps < deps.length) {\n\t\t\tremove_reactions(reaction, skipped_deps);\n\t\t\tdeps.length = skipped_deps;\n\t\t}\n\n\t\t// If we're inside an effect and we have untracked writes, then we need to\n\t\t// ensure that if any of those untracked writes result in re-invalidation\n\t\t// of the current effect, then that happens accordingly\n\t\tif (\n\t\t\tis_runes() &&\n\t\t\tuntracked_writes !== null &&\n\t\t\t!untracking &&\n\t\t\tdeps !== null &&\n\t\t\t(reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0\n\t\t) {\n\t\t\tfor (i = 0; i < /** @type {Source[]} */ (untracked_writes).length; i++) {\n\t\t\t\tschedule_possible_effect_self_invalidation(\n\t\t\t\t\tuntracked_writes[i],\n\t\t\t\t\t/** @type {Effect} */ (reaction)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// If we are returning to an previous reaction then\n\t\t// we need to increment the read version to ensure that\n\t\t// any dependencies in this reaction aren't marked with\n\t\t// the same version\n\t\tif (previous_reaction !== null && previous_reaction !== reaction) {\n\t\t\tread_version++;\n\n\t\t\t// update the `rv` of the previous reaction's deps — both existing and new —\n\t\t\t// so that they are not added again\n\t\t\tif (previous_reaction.deps !== null) {\n\t\t\t\tfor (let i = 0; i < previous_skipped_deps; i += 1) {\n\t\t\t\t\tprevious_reaction.deps[i].rv = read_version;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (previous_deps !== null) {\n\t\t\t\tfor (const dep of previous_deps) {\n\t\t\t\t\tdep.rv = read_version;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (untracked_writes !== null) {\n\t\t\t\tif (previous_untracked_writes === null) {\n\t\t\t\t\tprevious_untracked_writes = untracked_writes;\n\t\t\t\t} else {\n\t\t\t\t\tprevious_untracked_writes.push(.../** @type {Source[]} */ (untracked_writes));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ((reaction.f & ERROR_VALUE) !== 0) {\n\t\t\treaction.f ^= ERROR_VALUE;\n\t\t}\n\n\t\treturn result;\n\t} catch (error) {\n\t\treturn handle_error(error);\n\t} finally {\n\t\treaction.f ^= REACTION_IS_UPDATING;\n\t\tnew_deps = previous_deps;\n\t\tskipped_deps = previous_skipped_deps;\n\t\tuntracked_writes = previous_untracked_writes;\n\t\tactive_reaction = previous_reaction;\n\t\tcurrent_sources = previous_sources;\n\t\tset_component_context(previous_component_context);\n\t\tuntracking = previous_untracking;\n\t\tupdate_version = previous_update_version;\n\t}\n}\n\n/**\n * @template V\n * @param {Reaction} signal\n * @param {Value<V>} dependency\n * @returns {void}\n */\nfunction remove_reaction(signal, dependency) {\n\tlet reactions = dependency.reactions;\n\tif (reactions !== null) {\n\t\tvar index = index_of.call(reactions, signal);\n\t\tif (index !== -1) {\n\t\t\tvar new_length = reactions.length - 1;\n\t\t\tif (new_length === 0) {\n\t\t\t\treactions = dependency.reactions = null;\n\t\t\t} else {\n\t\t\t\t// Swap with last element and then remove.\n\t\t\t\treactions[index] = reactions[new_length];\n\t\t\t\treactions.pop();\n\t\t\t}\n\t\t}\n\t}\n\n\t// If the derived has no reactions, then we can disconnect it from the graph,\n\t// allowing it to either reconnect in the future, or be GC'd by the VM.\n\tif (\n\t\treactions === null &&\n\t\t(dependency.f & DERIVED) !== 0 &&\n\t\t// Destroying a child effect while updating a parent effect can cause a dependency to appear\n\t\t// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n\t\t// allows us to skip the expensive work of disconnecting and immediately reconnecting it\n\t\t(new_deps === null || !includes.call(new_deps, dependency))\n\t) {\n\t\tvar derived = /** @type {Derived} */ (dependency);\n\n\t\t// If we are working with a derived that is owned by an effect, then mark it as being\n\t\t// disconnected and remove the mark flag, as it cannot be reliably removed otherwise\n\t\tif ((derived.f & CONNECTED) !== 0) {\n\t\t\tderived.f ^= CONNECTED;\n\t\t\tderived.f &= ~WAS_MARKED;\n\t\t}\n\n\t\t// In a fork it's possible that a derived is executed and gets reactions, then commits, but is\n\t\t// never re-executed. This is possible when the derived is only executed once in the context\n\t\t// of a new branch which happens before fork.commit() runs. In this case, the derived still has\n\t\t// UNINITIALIZED as its value, and then when it's loosing its reactions we need to ensure it stays\n\t\t// DIRTY so it is reexecuted once someone wants its value again.\n\t\tif (derived.v !== UNINITIALIZED) {\n\t\t\tupdate_derived_status(derived);\n\t\t}\n\n\t\t// freeze any effects inside this derived\n\t\tfreeze_derived_effects(derived);\n\n\t\t// Disconnect any reactions owned by this reaction\n\t\tremove_reactions(derived, 0);\n\t}\n}\n\n/**\n * @param {Reaction} signal\n * @param {number} start_index\n * @returns {void}\n */\nexport function remove_reactions(signal, start_index) {\n\tvar dependencies = signal.deps;\n\tif (dependencies === null) return;\n\n\tfor (var i = start_index; i < dependencies.length; i++) {\n\t\tremove_reaction(signal, dependencies[i]);\n\t}\n}\n\n/**\n * @param {Effect} effect\n * @returns {void}\n */\nexport function update_effect(effect) {\n\tvar flags = effect.f;\n\n\tif ((flags & DESTROYED) !== 0) {\n\t\treturn;\n\t}\n\n\tset_signal_status(effect, CLEAN);\n\n\tvar previous_effect = active_effect;\n\tvar was_updating_effect = is_updating_effect;\n\n\tactive_effect = effect;\n\tis_updating_effect = true;\n\n\tif (DEV) {\n\t\tvar previous_component_fn = dev_current_component_function;\n\t\tset_dev_current_component_function(effect.component_function);\n\t\tvar previous_stack = /** @type {any} */ (dev_stack);\n\t\t// only block effects have a dev stack, keep the current one otherwise\n\t\tset_dev_stack(effect.dev_stack ?? dev_stack);\n\t}\n\n\ttry {\n\t\tif ((flags & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {\n\t\t\tdestroy_block_effect_children(effect);\n\t\t} else {\n\t\t\tdestroy_effect_children(effect);\n\t\t}\n\n\t\texecute_effect_teardown(effect);\n\t\tvar teardown = update_reaction(effect);\n\t\teffect.teardown = typeof teardown === 'function' ? teardown : null;\n\t\teffect.wv = write_version;\n\n\t\t// In DEV, increment versions of any sources that were written to during the effect,\n\t\t// so that they are correctly marked as dirty when the effect re-runs\n\t\tif (DEV && tracing_mode_flag && (effect.f & DIRTY) !== 0 && effect.deps !== null) {\n\t\t\tfor (var dep of effect.deps) {\n\t\t\t\tif (dep.set_during_effect) {\n\t\t\t\t\tdep.wv = increment_write_version();\n\t\t\t\t\tdep.set_during_effect = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tis_updating_effect = was_updating_effect;\n\t\tactive_effect = previous_effect;\n\n\t\tif (DEV) {\n\t\t\tset_dev_current_component_function(previous_component_fn);\n\t\t\tset_dev_stack(previous_stack);\n\t\t}\n\t}\n}\n\n/**\n * Returns a promise that resolves once any pending state changes have been applied.\n * @returns {Promise<void>}\n */\nexport async function tick() {\n\tif (async_mode_flag) {\n\t\treturn new Promise((f) => {\n\t\t\t// Race them against each other - in almost all cases requestAnimationFrame will fire first,\n\t\t\t// but e.g. in case the window is not focused or a view transition happens, requestAnimationFrame\n\t\t\t// will be delayed and setTimeout helps us resolve fast enough in that case\n\t\t\trequestAnimationFrame(() => f());\n\t\t\tsetTimeout(() => f());\n\t\t});\n\t}\n\n\tawait Promise.resolve();\n\n\t// By calling flushSync we guarantee that any pending state changes are applied after one tick.\n\t// TODO look into whether we can make flushing subsequent updates synchronously in the future.\n\tflushSync();\n}\n\n/**\n * Returns a promise that resolves once any state changes, and asynchronous work resulting from them,\n * have resolved and the DOM has been updated\n * @returns {Promise<void>}\n * @since 5.36\n */\nexport function settled() {\n\treturn Batch.ensure().settled();\n}\n\n/**\n * @template V\n * @param {Value<V>} signal\n * @returns {V}\n */\nexport function get(signal) {\n\tvar flags = signal.f;\n\tvar is_derived = (flags & DERIVED) !== 0;\n\n\tcaptured_signals?.add(signal);\n\n\t// Register the dependency on the current reaction signal.\n\tif (active_reaction !== null && !untracking) {\n\t\t// if we're in a derived that is being read inside an _async_ derived,\n\t\t// it's possible that the effect was already destroyed. In this case,\n\t\t// we don't add the dependency, because that would create a memory leak\n\t\tvar destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;\n\n\t\tif (!destroyed && (current_sources === null || !includes.call(current_sources, signal))) {\n\t\t\tvar deps = active_reaction.deps;\n\n\t\t\tif ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {\n\t\t\t\t// we're in the effect init/update cycle\n\t\t\t\tif (signal.rv < read_version) {\n\t\t\t\t\tsignal.rv = read_version;\n\n\t\t\t\t\t// If the signal is accessing the same dependencies in the same\n\t\t\t\t\t// order as it did last time, increment `skipped_deps`\n\t\t\t\t\t// rather than updating `new_deps`, which creates GC cost\n\t\t\t\t\tif (new_deps === null && deps !== null && deps[skipped_deps] === signal) {\n\t\t\t\t\t\tskipped_deps++;\n\t\t\t\t\t} else if (new_deps === null) {\n\t\t\t\t\t\tnew_deps = [signal];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnew_deps.push(signal);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// we're adding a dependency outside the init/update cycle\n\t\t\t\t// (i.e. after an `await`)\n\t\t\t\t(active_reaction.deps ??= []).push(signal);\n\n\t\t\t\tvar reactions = signal.reactions;\n\n\t\t\t\tif (reactions === null) {\n\t\t\t\t\tsignal.reactions = [active_reaction];\n\t\t\t\t} else if (!includes.call(reactions, active_reaction)) {\n\t\t\t\t\treactions.push(active_reaction);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (DEV) {\n\t\tif (\n\t\t\t!untracking &&\n\t\t\treactivity_loss_tracker &&\n\t\t\t!reactivity_loss_tracker.warned &&\n\t\t\t(reactivity_loss_tracker.effect.f & REACTION_IS_UPDATING) === 0 &&\n\t\t\t!reactivity_loss_tracker.effect_deps.has(signal)\n\t\t) {\n\t\t\treactivity_loss_tracker.warned = true;\n\n\t\t\tw.await_reactivity_loss(/** @type {string} */ (signal.label));\n\n\t\t\tvar trace = get_error('traced at');\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tif (trace) console.warn(trace);\n\t\t}\n\n\t\trecent_async_deriveds.delete(signal);\n\n\t\tif (\n\t\t\ttracing_mode_flag &&\n\t\t\t!untracking &&\n\t\t\ttracing_expressions !== null &&\n\t\t\tactive_reaction !== null &&\n\t\t\ttracing_expressions.reaction === active_reaction\n\t\t) {\n\t\t\t// Used when mapping state between special blocks like `each`\n\t\t\tif (signal.trace) {\n\t\t\t\tsignal.trace();\n\t\t\t} else {\n\t\t\t\ttrace = get_error('traced at');\n\n\t\t\t\tif (trace) {\n\t\t\t\t\tvar entry = tracing_expressions.entries.get(signal);\n\n\t\t\t\t\tif (entry === undefined) {\n\t\t\t\t\t\tentry = { traces: [] };\n\t\t\t\t\t\ttracing_expressions.entries.set(signal, entry);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar last = entry.traces[entry.traces.length - 1];\n\n\t\t\t\t\t// traces can be duplicated, e.g. by `snapshot` invoking both\n\t\t\t\t\t// both `getOwnPropertyDescriptor` and `get` traps at once\n\t\t\t\t\tif (trace.stack !== last?.stack) {\n\t\t\t\t\t\tentry.traces.push(trace);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_destroying_effect && old_values.has(signal)) {\n\t\treturn old_values.get(signal);\n\t}\n\n\tif (is_derived) {\n\t\tvar derived = /** @type {Derived} */ (signal);\n\n\t\tif (is_destroying_effect) {\n\t\t\tvar value = derived.v;\n\n\t\t\t// if the derived is dirty and has reactions, or depends on the values that just changed, re-execute\n\t\t\t// (a derived can be maybe_dirty due to the effect destroy removing its last reaction)\n\t\t\tif (\n\t\t\t\t((derived.f & CLEAN) === 0 && derived.reactions !== null) ||\n\t\t\t\tdepends_on_old_values(derived)\n\t\t\t) {\n\t\t\t\tvalue = execute_derived(derived);\n\t\t\t}\n\n\t\t\told_values.set(derived, value);\n\n\t\t\treturn value;\n\t\t}\n\n\t\t// connect disconnected deriveds if we are reading them inside an effect,\n\t\t// or inside another derived that is already connected\n\t\tvar should_connect =\n\t\t\t(derived.f & CONNECTED) === 0 &&\n\t\t\t!untracking &&\n\t\t\tactive_reaction !== null &&\n\t\t\t(is_updating_effect || (active_reaction.f & CONNECTED) !== 0);\n\n\t\tvar is_new = (derived.f & REACTION_RAN) === 0;\n\n\t\tif (is_dirty(derived)) {\n\t\t\tif (should_connect) {\n\t\t\t\t// set the flag before `update_derived`, so that the derived\n\t\t\t\t// is added as a reaction to its dependencies\n\t\t\t\tderived.f |= CONNECTED;\n\t\t\t}\n\n\t\t\tupdate_derived(derived);\n\t\t}\n\n\t\tif (should_connect && !is_new) {\n\t\t\tunfreeze_derived_effects(derived);\n\t\t\treconnect(derived);\n\t\t}\n\t}\n\n\tif (batch_values?.has(signal)) {\n\t\treturn batch_values.get(signal);\n\t}\n\n\tif ((signal.f & ERROR_VALUE) !== 0) {\n\t\tthrow signal.v;\n\t}\n\n\treturn signal.v;\n}\n\n/**\n * (Re)connect a disconnected derived, so that it is notified\n * of changes in `mark_reactions`\n * @param {Derived} derived\n */\nfunction reconnect(derived) {\n\tderived.f |= CONNECTED;\n\n\tif (derived.deps === null) return;\n\n\tfor (const dep of derived.deps) {\n\t\t(dep.reactions ??= []).push(derived);\n\n\t\tif ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {\n\t\t\tunfreeze_derived_effects(/** @type {Derived} */ (dep));\n\t\t\treconnect(/** @type {Derived} */ (dep));\n\t\t}\n\t}\n}\n\n/** @param {Derived} derived */\nfunction depends_on_old_values(derived) {\n\tif (derived.v === UNINITIALIZED) return true; // we don't know, so assume the worst\n\tif (derived.deps === null) return false;\n\n\tfor (const dep of derived.deps) {\n\t\tif (old_values.has(dep)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((dep.f & DERIVED) !== 0 && depends_on_old_values(/** @type {Derived} */ (dep))) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Like `get`, but checks for `undefined`. Used for `var` declarations because they can be accessed before being declared\n * @template V\n * @param {Value<V> | undefined} signal\n * @returns {V | undefined}\n */\nexport function safe_get(signal) {\n\treturn signal && get(signal);\n}\n\n/**\n * When used inside a [`$derived`](https://svelte.dev/docs/svelte/$derived) or [`$effect`](https://svelte.dev/docs/svelte/$effect),\n * any state read inside `fn` will not be treated as a dependency.\n *\n * ```ts\n * $effect(() => {\n *   // this will run when `data` changes, but not when `time` changes\n *   save(data, {\n *     timestamp: untrack(() => time)\n *   });\n * });\n * ```\n * @template T\n * @param {() => T} fn\n * @returns {T}\n */\nexport function untrack(fn) {\n\tvar previous_untracking = untracking;\n\ttry {\n\t\tuntracking = true;\n\t\treturn fn();\n\t} finally {\n\t\tuntracking = previous_untracking;\n\t}\n}\n\n/**\n * Possibly traverse an object and read all its properties so that they're all reactive in case this is `$state`.\n * Does only check first level of an object for performance reasons (heuristic should be good for 99% of all cases).\n * @param {any} value\n * @returns {void}\n */\nexport function deep_read_state(value) {\n\tif (typeof value !== 'object' || !value || value instanceof EventTarget) {\n\t\treturn;\n\t}\n\n\tif (STATE_SYMBOL in value) {\n\t\tdeep_read(value);\n\t} else if (!Array.isArray(value)) {\n\t\tfor (let key in value) {\n\t\t\tconst prop = value[key];\n\t\t\tif (typeof prop === 'object' && prop && STATE_SYMBOL in prop) {\n\t\t\t\tdeep_read(prop);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Deeply traverse an object and read all its properties\n * so that they're all reactive in case this is `$state`\n * @param {any} value\n * @param {Set<any>} visited\n * @returns {void}\n */\nexport function deep_read(value, visited = new Set()) {\n\tif (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t// We don't want to traverse DOM elements\n\t\t!(value instanceof EventTarget) &&\n\t\t!visited.has(value)\n\t) {\n\t\tvisited.add(value);\n\t\t// When working with a possible SvelteDate, this\n\t\t// will ensure we capture changes to it.\n\t\tif (value instanceof Date) {\n\t\t\tvalue.getTime();\n\t\t}\n\t\tfor (let key in value) {\n\t\t\ttry {\n\t\t\t\tdeep_read(value[key], visited);\n\t\t\t} catch (e) {\n\t\t\t\t// continue\n\t\t\t}\n\t\t}\n\t\tconst proto = get_prototype_of(value);\n\t\tif (\n\t\t\tproto !== Object.prototype &&\n\t\t\tproto !== Array.prototype &&\n\t\t\tproto !== Map.prototype &&\n\t\t\tproto !== Set.prototype &&\n\t\t\tproto !== Date.prototype\n\t\t) {\n\t\t\tconst descriptors = get_descriptors(proto);\n\t\t\tfor (let key in descriptors) {\n\t\t\t\tconst get = descriptors[key].get;\n\t\t\t\tif (get) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tget.call(value);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// continue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { teardown } from '../../reactivity/effects.js';\nimport { define_property } from '../../../shared/utils.js';\nimport { hydrating } from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { FILENAME } from '../../../../constants.js';\nimport * as w from '../../warnings.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { without_reactive_context } from './bindings/shared.js';\n\n/**\n * Used on elements, as a map of event type -> event handler,\n * and on events themselves to track which element handled an event\n */\nexport const event_symbol = Symbol('events');\n\n/** @type {Set<string>} */\nexport const all_registered_events = new Set();\n\n/** @type {Set<(events: Array<string>) => void>} */\nexport const root_event_handles = new Set();\n\n/**\n * SSR adds onload and onerror attributes to catch those events before the hydration.\n * This function detects those cases, removes the attributes and replays the events.\n * @param {HTMLElement} dom\n */\nexport function replay_events(dom) {\n\tif (!hydrating) return;\n\n\tdom.removeAttribute('onload');\n\tdom.removeAttribute('onerror');\n\t// @ts-expect-error\n\tconst event = dom.__e;\n\tif (event !== undefined) {\n\t\t// @ts-expect-error\n\t\tdom.__e = undefined;\n\t\tqueueMicrotask(() => {\n\t\t\tif (dom.isConnected) {\n\t\t\t\tdom.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * @param {string} event_name\n * @param {EventTarget} dom\n * @param {EventListener} [handler]\n * @param {AddEventListenerOptions} [options]\n */\nexport function create_event(event_name, dom, handler, options = {}) {\n\t/**\n\t * @this {EventTarget}\n\t */\n\tfunction target_handler(/** @type {Event} */ event) {\n\t\tif (!options.capture) {\n\t\t\t// Only call in the bubble phase, else delegated events would be called before the capturing events\n\t\t\thandle_event_propagation.call(dom, event);\n\t\t}\n\t\tif (!event.cancelBubble) {\n\t\t\treturn without_reactive_context(() => {\n\t\t\t\treturn handler?.call(this, event);\n\t\t\t});\n\t\t}\n\t}\n\n\t// Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned\n\t// with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we\n\t// defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes\n\t// this bug. The same applies to wheel events and touch events.\n\tif (\n\t\tevent_name.startsWith('pointer') ||\n\t\tevent_name.startsWith('touch') ||\n\t\tevent_name === 'wheel'\n\t) {\n\t\tqueue_micro_task(() => {\n\t\t\tdom.addEventListener(event_name, target_handler, options);\n\t\t});\n\t} else {\n\t\tdom.addEventListener(event_name, target_handler, options);\n\t}\n\n\treturn target_handler;\n}\n\n/**\n * Attaches an event handler to an element and returns a function that removes the handler. Using this\n * rather than `addEventListener` will preserve the correct order relative to handlers added declaratively\n * (with attributes like `onclick`), which use event delegation for performance reasons\n *\n * @param {EventTarget} element\n * @param {string} type\n * @param {EventListener} handler\n * @param {AddEventListenerOptions} [options]\n */\nexport function on(element, type, handler, options = {}) {\n\tvar target_handler = create_event(type, element, handler, options);\n\n\treturn () => {\n\t\telement.removeEventListener(type, target_handler, options);\n\t};\n}\n\n/**\n * @param {string} event_name\n * @param {Element} dom\n * @param {EventListener} [handler]\n * @param {boolean} [capture]\n * @param {boolean} [passive]\n * @returns {void}\n */\nexport function event(event_name, dom, handler, capture, passive) {\n\tvar options = { capture, passive };\n\tvar target_handler = create_event(event_name, dom, handler, options);\n\n\tif (\n\t\tdom === document.body ||\n\t\t// @ts-ignore\n\t\tdom === window ||\n\t\t// @ts-ignore\n\t\tdom === document ||\n\t\t// Firefox has quirky behavior, it can happen that we still get \"canplay\" events when the element is already removed\n\t\tdom instanceof HTMLMediaElement\n\t) {\n\t\tteardown(() => {\n\t\t\tdom.removeEventListener(event_name, target_handler, options);\n\t\t});\n\t}\n}\n\n/**\n * @param {string} event_name\n * @param {Element} element\n * @param {EventListener} [handler]\n * @returns {void}\n */\nexport function delegated(event_name, element, handler) {\n\t// @ts-expect-error\n\t(element[event_symbol] ??= {})[event_name] = handler;\n}\n\n/**\n * @param {Array<string>} events\n * @returns {void}\n */\nexport function delegate(events) {\n\tfor (var i = 0; i < events.length; i++) {\n\t\tall_registered_events.add(events[i]);\n\t}\n\n\tfor (var fn of root_event_handles) {\n\t\tfn(events);\n\t}\n}\n\n// used to store the reference to the currently propagated event\n// to prevent garbage collection between microtasks in Firefox\n// If the event object is GCed too early, the expando __root property\n// set on the event object is lost, causing the event delegation\n// to process the event twice\nlet last_propagated_event = null;\n\n/**\n * @this {EventTarget}\n * @param {Event} event\n * @returns {void}\n */\nexport function handle_event_propagation(event) {\n\tvar handler_element = this;\n\tvar owner_document = /** @type {Node} */ (handler_element).ownerDocument;\n\tvar event_name = event.type;\n\tvar path = event.composedPath?.() || [];\n\tvar current_target = /** @type {null | Element} */ (path[0] || event.target);\n\n\tlast_propagated_event = event;\n\n\t// composedPath contains list of nodes the event has propagated through.\n\t// We check `event_symbol` to skip all nodes below it in case this is a\n\t// parent of the `event_symbol` node, which indicates that there's nested\n\t// mounted apps. In this case we don't want to trigger events multiple times.\n\tvar path_idx = 0;\n\n\t// the `last_propagated_event === event` check is redundant, but\n\t// without it the variable will be DCE'd and things will\n\t// fail mysteriously in Firefox\n\t// @ts-expect-error is added below\n\tvar handled_at = last_propagated_event === event && event[event_symbol];\n\n\tif (handled_at) {\n\t\tvar at_idx = path.indexOf(handled_at);\n\t\tif (\n\t\t\tat_idx !== -1 &&\n\t\t\t(handler_element === document || handler_element === /** @type {any} */ (window))\n\t\t) {\n\t\t\t// This is the fallback document listener or a window listener, but the event was already handled\n\t\t\t// -> ignore, but set handle_at to document/window so that we're resetting the event\n\t\t\t// chain in case someone manually dispatches the same event object again.\n\t\t\t// @ts-expect-error\n\t\t\tevent[event_symbol] = handler_element;\n\t\t\treturn;\n\t\t}\n\n\t\t// We're deliberately not skipping if the index is higher, because\n\t\t// someone could create an event programmatically and emit it multiple times,\n\t\t// in which case we want to handle the whole propagation chain properly each time.\n\t\t// (this will only be a false negative if the event is dispatched multiple times and\n\t\t// the fallback document listener isn't reached in between, but that's super rare)\n\t\tvar handler_idx = path.indexOf(handler_element);\n\t\tif (handler_idx === -1) {\n\t\t\t// handle_idx can theoretically be -1 (happened in some JSDOM testing scenarios with an event listener on the window object)\n\t\t\t// so guard against that, too, and assume that everything was handled at this point.\n\t\t\treturn;\n\t\t}\n\n\t\tif (at_idx <= handler_idx) {\n\t\t\tpath_idx = at_idx;\n\t\t}\n\t}\n\n\tcurrent_target = /** @type {Element} */ (path[path_idx] || event.target);\n\t// there can only be one delegated event per element, and we either already handled the current target,\n\t// or this is the very first target in the chain which has a non-delegated listener, in which case it's safe\n\t// to handle a possible delegated event on it later (through the root delegation listener for example).\n\tif (current_target === handler_element) return;\n\n\t// Proxy currentTarget to correct target\n\tdefine_property(event, 'currentTarget', {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn current_target || owner_document;\n\t\t}\n\t});\n\n\t// This started because of Chromium issue https://chromestatus.com/feature/5128696823545856,\n\t// where removal or moving of the DOM can cause sync `blur` events to fire, which can cause logic\n\t// to run inside the current `active_reaction`, which isn't what we want at all. However, on reflection,\n\t// it's probably best that all events handled by Svelte have this behaviour, as we don't really want\n\t// an event handler to run in the context of another reaction or effect.\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\t/**\n\t\t * @type {unknown}\n\t\t */\n\t\tvar throw_error;\n\t\t/**\n\t\t * @type {unknown[]}\n\t\t */\n\t\tvar other_errors = [];\n\n\t\twhile (current_target !== null) {\n\t\t\t/** @type {null | Element} */\n\t\t\tvar parent_element =\n\t\t\t\tcurrent_target.assignedSlot ||\n\t\t\t\tcurrent_target.parentNode ||\n\t\t\t\t/** @type {any} */ (current_target).host ||\n\t\t\t\tnull;\n\n\t\t\ttry {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tvar delegated = current_target[event_symbol]?.[event_name];\n\n\t\t\t\tif (\n\t\t\t\t\tdelegated != null &&\n\t\t\t\t\t(!(/** @type {any} */ (current_target).disabled) ||\n\t\t\t\t\t\t// DOM could've been updated already by the time this is reached, so we check this as well\n\t\t\t\t\t\t// -> the target could not have been disabled because it emits the event in the first place\n\t\t\t\t\t\tevent.target === current_target)\n\t\t\t\t) {\n\t\t\t\t\tdelegated.call(current_target, event);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (throw_error) {\n\t\t\t\t\tother_errors.push(error);\n\t\t\t\t} else {\n\t\t\t\t\tthrow_error = error;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (event.cancelBubble || parent_element === handler_element || parent_element === null) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent_target = parent_element;\n\t\t}\n\n\t\tif (throw_error) {\n\t\t\tfor (let error of other_errors) {\n\t\t\t\t// Throw the rest of the errors, one-by-one on a microtask\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow throw_error;\n\t\t}\n\t} finally {\n\t\t// @ts-expect-error is used above\n\t\tevent[event_symbol] = handler_element;\n\t\t// @ts-ignore remove proxy on currentTarget\n\t\tdelete event.currentTarget;\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * In dev, warn if an event handler is not a function, as it means the\n * user probably called the handler or forgot to add a `() =>`\n * @param {() => (event: Event, ...args: any) => void} thunk\n * @param {EventTarget} element\n * @param {[Event, ...any]} args\n * @param {any} component\n * @param {[number, number]} [loc]\n * @param {boolean} [remove_parens]\n */\nexport function apply(\n\tthunk,\n\telement,\n\targs,\n\tcomponent,\n\tloc,\n\thas_side_effects = false,\n\tremove_parens = false\n) {\n\tlet handler;\n\tlet error;\n\n\ttry {\n\t\thandler = thunk();\n\t} catch (e) {\n\t\terror = e;\n\t}\n\n\tif (typeof handler !== 'function' && (has_side_effects || handler != null || error)) {\n\t\tconst filename = component?.[FILENAME];\n\t\tconst location = loc ? ` at ${filename}:${loc[0]}:${loc[1]}` : ` in ${filename}`;\n\t\tconst phase = args[0]?.eventPhase < Event.BUBBLING_PHASE ? 'capture' : '';\n\t\tconst event_name = args[0]?.type + phase;\n\t\tconst description = `\\`${event_name}\\` handler${location}`;\n\t\tconst suggestion = remove_parens ? 'remove the trailing `()`' : 'add a leading `() =>`';\n\n\t\tw.event_handler_invalid(description, suggestion);\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}\n\thandler?.apply(element, args);\n}\n","import { create_element } from './operations.js';\n\nconst policy =\n\t// We gotta write it like this because after downleveling the pure comment may end up in the wrong location\n\tglobalThis?.window?.trustedTypes &&\n\t/* @__PURE__ */ globalThis.window.trustedTypes.createPolicy('svelte-trusted-html', {\n\t\t/** @param {string} html */\n\t\tcreateHTML: (html) => {\n\t\t\treturn html;\n\t\t}\n\t});\n\n/** @param {string} html */\nexport function create_trusted_html(html) {\n\treturn /** @type {string} */ (policy?.createHTML(html) ?? html);\n}\n\n/**\n * @param {string} html\n */\nexport function create_fragment_from_html(html) {\n\tvar elem = create_element('template');\n\telem.innerHTML = create_trusted_html(html.replaceAll('<!>', '<!---->')); // XHTML compliance\n\treturn elem.content;\n}\n","/** @import { Effect, EffectNodes, TemplateNode } from '#client' */\n/** @import { TemplateStructure } from './types' */\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport {\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling,\n\tis_firefox,\n\tcreate_element,\n\tcreate_fragment,\n\tcreate_comment,\n\tset_attribute,\n\tmerge_text_nodes\n} from './operations.js';\nimport { create_fragment_from_html } from './reconciler.js';\nimport { active_effect } from '../runtime.js';\nimport {\n\tNAMESPACE_MATHML,\n\tNAMESPACE_SVG,\n\tTEMPLATE_FRAGMENT,\n\tTEMPLATE_USE_IMPORT_NODE,\n\tTEMPLATE_USE_MATHML,\n\tTEMPLATE_USE_SVG\n} from '../../../constants.js';\nimport {\n\tCOMMENT_NODE,\n\tDOCUMENT_FRAGMENT_NODE,\n\tIS_XHTML,\n\tREACTION_RAN,\n\tTEXT_NODE\n} from '#client/constants';\n\nconst TEMPLATE_TAG = IS_XHTML ? 'template' : 'TEMPLATE';\nconst SCRIPT_TAG = IS_XHTML ? 'script' : 'SCRIPT';\n\n/**\n * @param {TemplateNode} start\n * @param {TemplateNode | null} end\n */\nexport function assign_nodes(start, end) {\n\tvar effect = /** @type {Effect} */ (active_effect);\n\tif (effect.nodes === null) {\n\t\teffect.nodes = { start, end, a: null, t: null };\n\t}\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function from_html(content, flags) {\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;\n\n\t/** @type {Node} */\n\tvar node;\n\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('<!>');\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (node === undefined) {\n\t\t\tnode = create_fragment_from_html(has_start ? content : '<!>' + content);\n\t\t\tif (!is_fragment) node = /** @type {TemplateNode} */ (get_first_child(node));\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (\n\t\t\tuse_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)\n\t\t);\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @param {'svg' | 'math'} ns\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction from_namespace(content, flags, ns = 'svg') {\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('<!>');\n\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar wrapped = `<${ns}>${has_start ? content : '<!>' + content}</${ns}>`;\n\n\t/** @type {Element | DocumentFragment} */\n\tvar node;\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (!node) {\n\t\t\tvar fragment = /** @type {DocumentFragment} */ (create_fragment_from_html(wrapped));\n\t\t\tvar root = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (is_fragment) {\n\t\t\t\tnode = document.createDocumentFragment();\n\t\t\t\twhile (get_first_child(root)) {\n\t\t\t\t\tnode.appendChild(/** @type {TemplateNode} */ (get_first_child(root)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode = /** @type {Element} */ (get_first_child(root));\n\t\t\t}\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (node.cloneNode(true));\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function from_svg(content, flags) {\n\treturn from_namespace(content, flags, 'svg');\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function from_mathml(content, flags) {\n\treturn from_namespace(content, flags, 'math');\n}\n\n/**\n * @param {TemplateStructure[]} structure\n * @param {typeof NAMESPACE_SVG | typeof NAMESPACE_MATHML | undefined} [ns]\n */\nfunction fragment_from_tree(structure, ns) {\n\tvar fragment = create_fragment();\n\n\tfor (var item of structure) {\n\t\tif (typeof item === 'string') {\n\t\t\tfragment.append(create_text(item));\n\t\t\tcontinue;\n\t\t}\n\n\t\t// if `preserveComments === true`, comments are represented as `['// <data>']`\n\t\tif (item === undefined || item[0][0] === '/') {\n\t\t\tfragment.append(create_comment(item ? item[0].slice(3) : ''));\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [name, attributes, ...children] = item;\n\n\t\tconst namespace = name === 'svg' ? NAMESPACE_SVG : name === 'math' ? NAMESPACE_MATHML : ns;\n\n\t\tvar element = create_element(name, namespace, attributes?.is);\n\n\t\tfor (var key in attributes) {\n\t\t\tset_attribute(element, key, attributes[key]);\n\t\t}\n\n\t\tif (children.length > 0) {\n\t\t\tvar target =\n\t\t\t\telement.nodeName === TEMPLATE_TAG\n\t\t\t\t\t? /** @type {HTMLTemplateElement} */ (element).content\n\t\t\t\t\t: element;\n\n\t\t\ttarget.append(\n\t\t\t\tfragment_from_tree(children, element.nodeName === 'foreignObject' ? undefined : namespace)\n\t\t\t);\n\t\t}\n\n\t\tfragment.append(element);\n\t}\n\n\treturn fragment;\n}\n\n/**\n * @param {TemplateStructure[]} structure\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function from_tree(structure, flags) {\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;\n\n\t/** @type {Node} */\n\tvar node;\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (node === undefined) {\n\t\t\tconst ns =\n\t\t\t\t(flags & TEMPLATE_USE_SVG) !== 0\n\t\t\t\t\t? NAMESPACE_SVG\n\t\t\t\t\t: (flags & TEMPLATE_USE_MATHML) !== 0\n\t\t\t\t\t\t? NAMESPACE_MATHML\n\t\t\t\t\t\t: undefined;\n\n\t\t\tnode = fragment_from_tree(structure, ns);\n\t\t\tif (!is_fragment) node = /** @type {TemplateNode} */ (get_first_child(node));\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (\n\t\t\tuse_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)\n\t\t);\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {() => Element | DocumentFragment} fn\n */\nexport function with_script(fn) {\n\treturn () => run_scripts(fn());\n}\n\n/**\n * Creating a document fragment from HTML that contains script tags will not execute\n * the scripts. We need to replace the script tags with new ones so that they are executed.\n * @param {Element | DocumentFragment} node\n * @returns {Node | Node[]}\n */\nfunction run_scripts(node) {\n\t// scripts were SSR'd, in which case they will run\n\tif (hydrating) return node;\n\n\tconst is_fragment = node.nodeType === DOCUMENT_FRAGMENT_NODE;\n\tconst scripts =\n\t\t/** @type {HTMLElement} */ (node).nodeName === SCRIPT_TAG\n\t\t\t? [/** @type {HTMLScriptElement} */ (node)]\n\t\t\t: node.querySelectorAll('script');\n\n\tconst effect = /** @type {Effect & { nodes: EffectNodes }} */ (active_effect);\n\n\tfor (const script of scripts) {\n\t\tconst clone = create_element('script');\n\t\tfor (var attribute of script.attributes) {\n\t\t\tclone.setAttribute(attribute.name, attribute.value);\n\t\t}\n\n\t\tclone.textContent = script.textContent;\n\n\t\t// The script has changed - if it's at the edges, the effect now points at dead nodes\n\t\tif (is_fragment ? node.firstChild === script : node === script) {\n\t\t\teffect.nodes.start = clone;\n\t\t}\n\t\tif (is_fragment ? node.lastChild === script : node === script) {\n\t\t\teffect.nodes.end = clone;\n\t\t}\n\n\t\tscript.replaceWith(clone);\n\t}\n\treturn node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {any} value\n */\nexport function text(value = '') {\n\tif (!hydrating) {\n\t\tvar t = create_text(value + '');\n\t\tassign_nodes(t, t);\n\t\treturn t;\n\t}\n\n\tvar node = hydrate_node;\n\n\tif (node.nodeType !== TEXT_NODE) {\n\t\t// if an {expression} is empty during SSR, we need to insert an empty text node\n\t\tnode.before((node = create_text()));\n\t\tset_hydrate_node(node);\n\t} else {\n\t\tmerge_text_nodes(/** @type {Text} */ (node));\n\t}\n\n\tassign_nodes(node, node);\n\treturn node;\n}\n\n/**\n * @returns {TemplateNode | DocumentFragment}\n */\nexport function comment() {\n\t// we're not delegating to `template` here for performance reasons\n\tif (hydrating) {\n\t\tassign_nodes(hydrate_node, null);\n\t\treturn hydrate_node;\n\t}\n\n\tvar frag = document.createDocumentFragment();\n\tvar start = document.createComment('');\n\tvar anchor = create_text();\n\tfrag.append(start, anchor);\n\n\tassign_nodes(start, anchor);\n\n\treturn frag;\n}\n\n/**\n * Assign the created (or in hydration mode, traversed) dom elements to the current block\n * and insert the elements into the dom (in client mode).\n * @param {Text | Comment | Element} anchor\n * @param {DocumentFragment | Element} dom\n */\nexport function append(anchor, dom) {\n\tif (hydrating) {\n\t\tvar effect = /** @type {Effect & { nodes: EffectNodes }} */ (active_effect);\n\n\t\t// When hydrating and outer component and an inner component is async, i.e. blocked on a promise,\n\t\t// then by the time the inner resolves we have already advanced to the end of the hydrated nodes\n\t\t// of the parent component. Check for defined for that reason to avoid rewinding the parent's end marker.\n\t\tif ((effect.f & REACTION_RAN) === 0 || effect.nodes.end === null) {\n\t\t\teffect.nodes.end = hydrate_node;\n\t\t}\n\n\t\thydrate_next();\n\t\treturn;\n\t}\n\n\tif (anchor === null) {\n\t\t// edge case — void `<svelte:element>` with content\n\t\treturn;\n\t}\n\n\tanchor.before(/** @type {Node} */ (dom));\n}\n\n/**\n * Create (or hydrate) an unique UID for the component instance.\n */\nexport function props_id() {\n\tif (\n\t\thydrating &&\n\t\thydrate_node &&\n\t\thydrate_node.nodeType === COMMENT_NODE &&\n\t\thydrate_node.textContent?.startsWith(`$`)\n\t) {\n\t\tconst id = hydrate_node.textContent.substring(1);\n\t\thydrate_next();\n\t\treturn id;\n\t}\n\n\t// @ts-expect-error This way we ensure the id is unique even across Svelte runtimes\n\t(window.__svelte ??= {}).uid ??= 1;\n\n\t// @ts-expect-error\n\treturn `c${window.__svelte.uid++}`;\n}\n","const regex_return_characters = /\\r/g;\n\n/**\n * @param {string} str\n * @returns {string}\n */\nexport function hash(str) {\n\tstr = str.replace(regex_return_characters, '');\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn (hash >>> 0).toString(36);\n}\n\nconst VOID_ELEMENT_NAMES = [\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'command',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'keygen',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr'\n];\n\n/**\n * Returns `true` if `name` is of a void element\n * @param {string} name\n */\nexport function is_void(name) {\n\treturn VOID_ELEMENT_NAMES.includes(name) || name.toLowerCase() === '!doctype';\n}\n\nconst RESERVED_WORDS = [\n\t'arguments',\n\t'await',\n\t'break',\n\t'case',\n\t'catch',\n\t'class',\n\t'const',\n\t'continue',\n\t'debugger',\n\t'default',\n\t'delete',\n\t'do',\n\t'else',\n\t'enum',\n\t'eval',\n\t'export',\n\t'extends',\n\t'false',\n\t'finally',\n\t'for',\n\t'function',\n\t'if',\n\t'implements',\n\t'import',\n\t'in',\n\t'instanceof',\n\t'interface',\n\t'let',\n\t'new',\n\t'null',\n\t'package',\n\t'private',\n\t'protected',\n\t'public',\n\t'return',\n\t'static',\n\t'super',\n\t'switch',\n\t'this',\n\t'throw',\n\t'true',\n\t'try',\n\t'typeof',\n\t'var',\n\t'void',\n\t'while',\n\t'with',\n\t'yield'\n];\n\n/**\n * Returns `true` if `word` is a reserved JavaScript keyword\n * @param {string} word\n */\nexport function is_reserved(word) {\n\treturn RESERVED_WORDS.includes(word);\n}\n\n/**\n * @param {string} name\n */\nexport function is_capture_event(name) {\n\treturn name.endsWith('capture') && name !== 'gotpointercapture' && name !== 'lostpointercapture';\n}\n\n/** List of Element events that will be delegated */\nconst DELEGATED_EVENTS = [\n\t'beforeinput',\n\t'click',\n\t'change',\n\t'dblclick',\n\t'contextmenu',\n\t'focusin',\n\t'focusout',\n\t'input',\n\t'keydown',\n\t'keyup',\n\t'mousedown',\n\t'mousemove',\n\t'mouseout',\n\t'mouseover',\n\t'mouseup',\n\t'pointerdown',\n\t'pointermove',\n\t'pointerout',\n\t'pointerover',\n\t'pointerup',\n\t'touchend',\n\t'touchmove',\n\t'touchstart'\n];\n\n/**\n * Returns `true` if `event_name` is a delegated event\n * @param {string} event_name\n */\nexport function can_delegate_event(event_name) {\n\treturn DELEGATED_EVENTS.includes(event_name);\n}\n\n/**\n * Attributes that are boolean, i.e. they are present or not present.\n */\nconst DOM_BOOLEAN_ATTRIBUTES = [\n\t'allowfullscreen',\n\t'async',\n\t'autofocus',\n\t'autoplay',\n\t'checked',\n\t'controls',\n\t'default',\n\t'disabled',\n\t'formnovalidate',\n\t'indeterminate',\n\t'inert',\n\t'ismap',\n\t'loop',\n\t'multiple',\n\t'muted',\n\t'nomodule',\n\t'novalidate',\n\t'open',\n\t'playsinline',\n\t'readonly',\n\t'required',\n\t'reversed',\n\t'seamless',\n\t'selected',\n\t'webkitdirectory',\n\t'defer',\n\t'disablepictureinpicture',\n\t'disableremoteplayback'\n];\n\n/**\n * Returns `true` if `name` is a boolean attribute\n * @param {string} name\n */\nexport function is_boolean_attribute(name) {\n\treturn DOM_BOOLEAN_ATTRIBUTES.includes(name);\n}\n\n/**\n * @type {Record<string, string>}\n * List of attribute names that should be aliased to their property names\n * because they behave differently between setting them as an attribute and\n * setting them as a property.\n */\nconst ATTRIBUTE_ALIASES = {\n\t// no `class: 'className'` because we handle that separately\n\tformnovalidate: 'formNoValidate',\n\tismap: 'isMap',\n\tnomodule: 'noModule',\n\tplaysinline: 'playsInline',\n\treadonly: 'readOnly',\n\tdefaultvalue: 'defaultValue',\n\tdefaultchecked: 'defaultChecked',\n\tsrcobject: 'srcObject',\n\tnovalidate: 'noValidate',\n\tallowfullscreen: 'allowFullscreen',\n\tdisablepictureinpicture: 'disablePictureInPicture',\n\tdisableremoteplayback: 'disableRemotePlayback'\n};\n\n/**\n * @param {string} name\n */\nexport function normalize_attribute(name) {\n\tname = name.toLowerCase();\n\treturn ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_PROPERTIES = [\n\t...DOM_BOOLEAN_ATTRIBUTES,\n\t'formNoValidate',\n\t'isMap',\n\t'noModule',\n\t'playsInline',\n\t'readOnly',\n\t'value',\n\t'volume',\n\t'defaultValue',\n\t'defaultChecked',\n\t'srcObject',\n\t'noValidate',\n\t'allowFullscreen',\n\t'disablePictureInPicture',\n\t'disableRemotePlayback'\n];\n\n/**\n * @param {string} name\n */\nexport function is_dom_property(name) {\n\treturn DOM_PROPERTIES.includes(name);\n}\n\nconst NON_STATIC_PROPERTIES = ['autofocus', 'muted', 'defaultValue', 'defaultChecked'];\n\n/**\n * Returns `true` if the given attribute cannot be set through the template\n * string, i.e. needs some kind of JavaScript handling to work.\n * @param {string} name\n */\nexport function cannot_be_set_statically(name) {\n\treturn NON_STATIC_PROPERTIES.includes(name);\n}\n\n/**\n * Subset of delegated events which should be passive by default.\n * These two are already passive via browser defaults on window, document and body.\n * But since\n * - we're delegating them\n * - they happen often\n * - they apply to mobile which is generally less performant\n * we're marking them as passive by default for other elements, too.\n */\nconst PASSIVE_EVENTS = ['touchstart', 'touchmove'];\n\n/**\n * Returns `true` if `name` is a passive event\n * @param {string} name\n */\nexport function is_passive_event(name) {\n\treturn PASSIVE_EVENTS.includes(name);\n}\n\nconst CONTENT_EDITABLE_BINDINGS = ['textContent', 'innerHTML', 'innerText'];\n\n/** @param {string} name */\nexport function is_content_editable_binding(name) {\n\treturn CONTENT_EDITABLE_BINDINGS.includes(name);\n}\n\nconst LOAD_ERROR_ELEMENTS = [\n\t'body',\n\t'embed',\n\t'iframe',\n\t'img',\n\t'link',\n\t'object',\n\t'script',\n\t'style',\n\t'track'\n];\n\n/**\n * Returns `true` if the element emits `load` and `error` events\n * @param {string} name\n */\nexport function is_load_error_element(name) {\n\treturn LOAD_ERROR_ELEMENTS.includes(name);\n}\n\nconst SVG_ELEMENTS = [\n\t'altGlyph',\n\t'altGlyphDef',\n\t'altGlyphItem',\n\t'animate',\n\t'animateColor',\n\t'animateMotion',\n\t'animateTransform',\n\t'circle',\n\t'clipPath',\n\t'color-profile',\n\t'cursor',\n\t'defs',\n\t'desc',\n\t'discard',\n\t'ellipse',\n\t'feBlend',\n\t'feColorMatrix',\n\t'feComponentTransfer',\n\t'feComposite',\n\t'feConvolveMatrix',\n\t'feDiffuseLighting',\n\t'feDisplacementMap',\n\t'feDistantLight',\n\t'feDropShadow',\n\t'feFlood',\n\t'feFuncA',\n\t'feFuncB',\n\t'feFuncG',\n\t'feFuncR',\n\t'feGaussianBlur',\n\t'feImage',\n\t'feMerge',\n\t'feMergeNode',\n\t'feMorphology',\n\t'feOffset',\n\t'fePointLight',\n\t'feSpecularLighting',\n\t'feSpotLight',\n\t'feTile',\n\t'feTurbulence',\n\t'filter',\n\t'font',\n\t'font-face',\n\t'font-face-format',\n\t'font-face-name',\n\t'font-face-src',\n\t'font-face-uri',\n\t'foreignObject',\n\t'g',\n\t'glyph',\n\t'glyphRef',\n\t'hatch',\n\t'hatchpath',\n\t'hkern',\n\t'image',\n\t'line',\n\t'linearGradient',\n\t'marker',\n\t'mask',\n\t'mesh',\n\t'meshgradient',\n\t'meshpatch',\n\t'meshrow',\n\t'metadata',\n\t'missing-glyph',\n\t'mpath',\n\t'path',\n\t'pattern',\n\t'polygon',\n\t'polyline',\n\t'radialGradient',\n\t'rect',\n\t'set',\n\t'solidcolor',\n\t'stop',\n\t'svg',\n\t'switch',\n\t'symbol',\n\t'text',\n\t'textPath',\n\t'tref',\n\t'tspan',\n\t'unknown',\n\t'use',\n\t'view',\n\t'vkern'\n];\n\n/** @param {string} name */\nexport function is_svg(name) {\n\treturn SVG_ELEMENTS.includes(name);\n}\n\nconst MATHML_ELEMENTS = [\n\t'annotation',\n\t'annotation-xml',\n\t'maction',\n\t'math',\n\t'merror',\n\t'mfrac',\n\t'mi',\n\t'mmultiscripts',\n\t'mn',\n\t'mo',\n\t'mover',\n\t'mpadded',\n\t'mphantom',\n\t'mprescripts',\n\t'mroot',\n\t'mrow',\n\t'ms',\n\t'mspace',\n\t'msqrt',\n\t'mstyle',\n\t'msub',\n\t'msubsup',\n\t'msup',\n\t'mtable',\n\t'mtd',\n\t'mtext',\n\t'mtr',\n\t'munder',\n\t'munderover',\n\t'semantics'\n];\n\n/** @param {string} name */\nexport function is_mathml(name) {\n\treturn MATHML_ELEMENTS.includes(name);\n}\n\nconst STATE_CREATION_RUNES = /** @type {const} */ ([\n\t'$state',\n\t'$state.raw',\n\t'$derived',\n\t'$derived.by'\n]);\n\nconst RUNES = /** @type {const} */ ([\n\t...STATE_CREATION_RUNES,\n\t'$state.eager',\n\t'$state.snapshot',\n\t'$props',\n\t'$props.id',\n\t'$bindable',\n\t'$effect',\n\t'$effect.pre',\n\t'$effect.tracking',\n\t'$effect.root',\n\t'$effect.pending',\n\t'$inspect',\n\t'$inspect().with',\n\t'$inspect.trace',\n\t'$host'\n]);\n\n/** @typedef {typeof RUNES[number]} RuneName */\n\n/**\n * @param {string} name\n * @returns {name is RuneName}\n */\nexport function is_rune(name) {\n\treturn RUNES.includes(/** @type {RuneName} */ (name));\n}\n\n/** @typedef {typeof STATE_CREATION_RUNES[number]} StateCreationRuneName */\n\n/**\n * @param {string} name\n * @returns {name is StateCreationRuneName}\n */\nexport function is_state_creation_rune(name) {\n\treturn STATE_CREATION_RUNES.includes(/** @type {StateCreationRuneName} */ (name));\n}\n\n/** List of elements that require raw contents and should not have SSR comments put in them */\nconst RAW_TEXT_ELEMENTS = /** @type {const} */ (['textarea', 'script', 'style', 'title']);\n\n/** @param {string} name */\nexport function is_raw_text_element(name) {\n\treturn RAW_TEXT_ELEMENTS.includes(/** @type {typeof RAW_TEXT_ELEMENTS[number]} */ (name));\n}\n\n// Matches valid HTML/SVG/MathML element names and custom element names.\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n//\n// Standard elements: ASCII alpha start, followed by ASCII alphanumerics.\n// Custom elements: ASCII alpha start, followed by any mix of PCENChar (which\n// includes ASCII alphanumerics, `-`, `.`, `_`, and specified Unicode ranges),\n// with at least one hyphen required somewhere after the first character.\n//\n// Rejects strings containing whitespace, quotes, angle brackets, slashes, equals,\n// or other characters that could break out of a tag-name token and enable markup injection.\nexport const REGEX_VALID_TAG_NAME =\n\t/^[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9.\\-_\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}]*)?$/u;\n\n/**\n * Prevent devtools trying to make `location` a clickable link by inserting a zero-width space\n * @template {string | undefined} T\n * @param {T} location\n * @returns {T};\n */\nexport function sanitize_location(location) {\n\treturn /** @type {T} */ (location?.replace(/\\//g, '/\\u200b'));\n}\n","/** @import { ComponentContext, Effect, EffectNodes, TemplateNode } from '#client' */\n/** @import { Component, ComponentType, SvelteComponent, MountOptions } from '../../index.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling,\n\tinit_operations\n} from './dom/operations.js';\nimport { HYDRATION_END, HYDRATION_ERROR, HYDRATION_START } from '../../constants.js';\nimport { active_effect } from './runtime.js';\nimport { push, pop, component_context } from './context.js';\nimport { component_root } from './reactivity/effects.js';\nimport { hydrate_node, hydrating, set_hydrate_node, set_hydrating } from './dom/hydration.js';\nimport { array_from } from '../shared/utils.js';\nimport {\n\tall_registered_events,\n\thandle_event_propagation,\n\troot_event_handles\n} from './dom/elements/events.js';\nimport * as w from './warnings.js';\nimport * as e from './errors.js';\nimport { assign_nodes } from './dom/template.js';\nimport { is_passive_event } from '../../utils.js';\nimport { COMMENT_NODE, STATE_SYMBOL, TEXT_CACHE } from './constants.js';\nimport { boundary } from './dom/blocks/boundary.js';\n\n/**\n * This is normally true — block effects should run their intro transitions —\n * but is false during hydration (unless `options.intro` is `true`) and\n * when creating the children of a `<svelte:element>` that just changed tag\n */\nexport let should_intro = true;\n\n/** @param {boolean} value */\nexport function set_should_intro(value) {\n\tshould_intro = value;\n}\n\n/**\n * @param {Element} text\n * @param {string} value\n * @returns {void}\n */\nexport function set_text(text, value) {\n\t// For objects, we apply string coercion (which might make things like $state array references in the template reactive) before diffing\n\tvar str = value == null ? '' : typeof value === 'object' ? `${value}` : value;\n\t// prettier-ignore\n\tif (str !== (/** @type {any} */ (text)[TEXT_CACHE] ??= text.nodeValue)) {\n\t\t/** @type {any} */ (text)[TEXT_CACHE] = str;\n\t\ttext.nodeValue = `${str}`;\n\t}\n}\n\n/**\n * Mounts a component to the given target and returns the exports and potentially the props (if compiled with `accessors: true`) of the component.\n * Transitions will play during the initial render unless the `intro` option is set to `false`.\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<Props>> | Component<Props, Exports, any>} component\n * @param {MountOptions<Props>} options\n * @returns {Exports}\n */\nexport function mount(component, options) {\n\treturn _mount(component, options);\n}\n\n/**\n * Hydrates a component on the given target and returns the exports and potentially the props (if compiled with `accessors: true`) of the component\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<Props>> | Component<Props, Exports, any>} component\n * @param {{} extends Props ? {\n * \t\ttarget: Document | Element | ShadowRoot;\n * \t\tprops?: Props;\n * \t\tevents?: Record<string, (e: any) => any>;\n *  \tcontext?: Map<any, any>;\n * \t\tintro?: boolean;\n * \t\trecover?: boolean;\n *\t\ttransformError?: (error: unknown) => unknown;\n * \t} : {\n * \t\ttarget: Document | Element | ShadowRoot;\n * \t\tprops: Props;\n * \t\tevents?: Record<string, (e: any) => any>;\n *  \tcontext?: Map<any, any>;\n * \t\tintro?: boolean;\n * \t\trecover?: boolean;\n *\t\ttransformError?: (error: unknown) => unknown;\n * \t}} options\n * @returns {Exports}\n */\nexport function hydrate(component, options) {\n\tinit_operations();\n\toptions.intro = options.intro ?? false;\n\tconst target = options.target;\n\tconst was_hydrating = hydrating;\n\tconst previous_hydrate_node = hydrate_node;\n\n\ttry {\n\t\tvar anchor = get_first_child(target);\n\n\t\twhile (\n\t\t\tanchor &&\n\t\t\t(anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */ (anchor).data !== HYDRATION_START)\n\t\t) {\n\t\t\tanchor = get_next_sibling(anchor);\n\t\t}\n\n\t\tif (!anchor) {\n\t\t\tthrow HYDRATION_ERROR;\n\t\t}\n\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(/** @type {Comment} */ (anchor));\n\n\t\tconst instance = _mount(component, { ...options, anchor });\n\n\t\tset_hydrating(false);\n\n\t\treturn /**  @type {Exports} */ (instance);\n\t} catch (error) {\n\t\t// re-throw Svelte errors - they are certainly not related to hydration\n\t\tif (\n\t\t\terror instanceof Error &&\n\t\t\terror.message.split('\\n').some((line) => line.startsWith('https://svelte.dev/e/'))\n\t\t) {\n\t\t\tthrow error;\n\t\t}\n\t\tif (error !== HYDRATION_ERROR) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('Failed to hydrate: ', error);\n\t\t}\n\n\t\tif (options.recover === false) {\n\t\t\te.hydration_failed();\n\t\t}\n\n\t\t// If an error occurred above, the operations might not yet have been initialised.\n\t\tinit_operations();\n\t\tclear_text_content(target);\n\n\t\tset_hydrating(false);\n\t\treturn mount(component, options);\n\t} finally {\n\t\tset_hydrating(was_hydrating);\n\t\tset_hydrate_node(previous_hydrate_node);\n\t}\n}\n\n/** @type {Map<EventTarget, Map<string, number>>} */\nconst listeners = new Map();\n\n/**\n * @template {Record<string, any>} Exports\n * @param {ComponentType<SvelteComponent<any>> | Component<any>} Component\n * @param {MountOptions} options\n * @returns {Exports}\n */\nfunction _mount(\n\tComponent,\n\t{ target, anchor, props = {}, events, context, intro = true, transformError }\n) {\n\tinit_operations();\n\n\t/** @type {Exports} */\n\t// @ts-expect-error will be defined because the render effect runs synchronously\n\tvar component = undefined;\n\n\tvar unmount = component_root(() => {\n\t\tvar anchor_node = anchor ?? target.appendChild(create_text());\n\n\t\tboundary(\n\t\t\t/** @type {TemplateNode} */ (anchor_node),\n\t\t\t{\n\t\t\t\tpending: () => {}\n\t\t\t},\n\t\t\t(anchor_node) => {\n\t\t\t\tpush({});\n\t\t\t\tvar ctx = /** @type {ComponentContext} */ (component_context);\n\t\t\t\tif (context) ctx.c = context;\n\n\t\t\t\tif (events) {\n\t\t\t\t\t// We can't spread the object or else we'd lose the state proxy stuff, if it is one\n\t\t\t\t\t/** @type {any} */ (props).$$events = events;\n\t\t\t\t}\n\n\t\t\t\tif (hydrating) {\n\t\t\t\t\tassign_nodes(/** @type {TemplateNode} */ (anchor_node), null);\n\t\t\t\t}\n\n\t\t\t\tshould_intro = intro;\n\t\t\t\t// @ts-expect-error the public typings are not what the actual function looks like\n\t\t\t\tcomponent = Component(anchor_node, props) || {};\n\t\t\t\tshould_intro = true;\n\n\t\t\t\tif (hydrating) {\n\t\t\t\t\t/** @type {Effect & { nodes: EffectNodes }} */ (active_effect).nodes.end = hydrate_node;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\thydrate_node === null ||\n\t\t\t\t\t\thydrate_node.nodeType !== COMMENT_NODE ||\n\t\t\t\t\t\t/** @type {Comment} */ (hydrate_node).data !== HYDRATION_END\n\t\t\t\t\t) {\n\t\t\t\t\t\tw.hydration_mismatch();\n\t\t\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpop();\n\t\t\t},\n\t\t\ttransformError\n\t\t);\n\n\t\t// Setup event delegation _after_ component is mounted - if an error would happen during mount, it would otherwise not be cleaned up\n\t\t/** @type {Set<string>} */\n\t\tvar registered_events = new Set();\n\n\t\t/** @param {Array<string>} events */\n\t\tvar event_handle = (events) => {\n\t\t\tfor (var i = 0; i < events.length; i++) {\n\t\t\t\tvar event_name = events[i];\n\n\t\t\t\tif (registered_events.has(event_name)) continue;\n\t\t\t\tregistered_events.add(event_name);\n\n\t\t\t\tvar passive = is_passive_event(event_name);\n\n\t\t\t\t// Add the event listener to both the container and the document.\n\t\t\t\t// The container listener ensures we catch events from within in case\n\t\t\t\t// the outer content stops propagation of the event.\n\t\t\t\t//\n\t\t\t\t// The document listener ensures we catch events that originate from elements that were\n\t\t\t\t// manually moved outside of the container (e.g. via manual portals).\n\t\t\t\tfor (const node of [target, document]) {\n\t\t\t\t\tvar counts = listeners.get(node);\n\n\t\t\t\t\tif (counts === undefined) {\n\t\t\t\t\t\tcounts = new Map();\n\t\t\t\t\t\tlisteners.set(node, counts);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar count = counts.get(event_name);\n\n\t\t\t\t\tif (count === undefined) {\n\t\t\t\t\t\tnode.addEventListener(event_name, handle_event_propagation, { passive });\n\t\t\t\t\t\tcounts.set(event_name, 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcounts.set(event_name, count + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tevent_handle(array_from(all_registered_events));\n\t\troot_event_handles.add(event_handle);\n\n\t\treturn () => {\n\t\t\tfor (var event_name of registered_events) {\n\t\t\t\tfor (const node of [target, document]) {\n\t\t\t\t\tvar counts = /** @type {Map<string, number>} */ (listeners.get(node));\n\t\t\t\t\tvar count = /** @type {number} */ (counts.get(event_name));\n\n\t\t\t\t\tif (--count == 0) {\n\t\t\t\t\t\tnode.removeEventListener(event_name, handle_event_propagation);\n\t\t\t\t\t\tcounts.delete(event_name);\n\n\t\t\t\t\t\tif (counts.size === 0) {\n\t\t\t\t\t\t\tlisteners.delete(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcounts.set(event_name, count);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\troot_event_handles.delete(event_handle);\n\n\t\t\tif (anchor_node !== anchor) {\n\t\t\t\tanchor_node.parentNode?.removeChild(anchor_node);\n\t\t\t}\n\t\t};\n\t});\n\n\tmounted_components.set(component, unmount);\n\treturn component;\n}\n\n/**\n * References of the components that were mounted or hydrated.\n * Uses a `WeakMap` to avoid memory leaks.\n */\nlet mounted_components = new WeakMap();\n\n/**\n * Unmounts a component that was previously mounted using `mount` or `hydrate`.\n *\n * Since 5.13.0, if `options.outro` is `true`, [transitions](https://svelte.dev/docs/svelte/transition) will play before the component is removed from the DOM.\n *\n * Returns a `Promise` that resolves after transitions have completed if `options.outro` is true, or immediately otherwise (prior to 5.13.0, returns `void`).\n *\n * ```js\n * import { mount, unmount } from 'svelte';\n * import App from './App.svelte';\n *\n * const app = mount(App, { target: document.body });\n *\n * // later...\n * unmount(app, { outro: true });\n * ```\n * @param {Record<string, any>} component\n * @param {{ outro?: boolean }} [options]\n * @returns {Promise<void>}\n */\nexport function unmount(component, options) {\n\tconst fn = mounted_components.get(component);\n\n\tif (fn) {\n\t\tmounted_components.delete(component);\n\t\treturn fn(options);\n\t}\n\n\tif (DEV) {\n\t\tif (STATE_SYMBOL in component) {\n\t\t\tw.state_proxy_unmount();\n\t\t} else {\n\t\t\tw.lifecycle_double_unmount();\n\t\t}\n\t}\n\n\treturn Promise.resolve();\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { Batch, current_batch } from '../../reactivity/batch.js';\nimport {\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { HMR_ANCHOR } from '../../constants.js';\nimport { hydrate_node, hydrating } from '../hydration.js';\nimport { create_text, should_defer_append } from '../operations.js';\nimport { DEV } from 'esm-env';\n\n/**\n * @typedef {{ effect: Effect, fragment: DocumentFragment }} Branch\n */\n\n/**\n * @template Key\n */\nexport class BranchManager {\n\t/** @type {TemplateNode} */\n\tanchor;\n\n\t/** @type {Map<Batch, Key>} */\n\t#batches = new Map();\n\n\t/**\n\t * Map of keys to effects that are currently rendered in the DOM.\n\t * These effects are visible and actively part of the document tree.\n\t * Example:\n\t * ```\n\t * {#if condition}\n\t * \tfoo\n\t * {:else}\n\t * \tbar\n\t * {/if}\n\t * ```\n\t * Can result in the entries `true->Effect` and `false->Effect`\n\t * @type {Map<Key, Effect>}\n\t */\n\t#onscreen = new Map();\n\n\t/**\n\t * Similar to #onscreen with respect to the keys, but contains branches that are not yet\n\t * in the DOM, because their insertion is deferred.\n\t * @type {Map<Key, Branch>}\n\t */\n\t#offscreen = new Map();\n\n\t/**\n\t * Keys of effects that are currently outroing\n\t * @type {Set<Key>}\n\t */\n\t#outroing = new Set();\n\n\t/**\n\t * Whether to pause (i.e. outro) on change, or destroy immediately.\n\t * This is necessary for `<svelte:element>`\n\t */\n\t#transition = true;\n\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {boolean} transition\n\t */\n\tconstructor(anchor, transition = true) {\n\t\tthis.anchor = anchor;\n\t\tthis.#transition = transition;\n\t}\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#commit = (batch) => {\n\t\t// if this batch was made obsolete, bail\n\t\tif (!this.#batches.has(batch)) return;\n\n\t\tvar key = /** @type {Key} */ (this.#batches.get(batch));\n\n\t\tvar onscreen = this.#onscreen.get(key);\n\n\t\tif (onscreen) {\n\t\t\t// effect is already in the DOM — abort any current outro\n\t\t\tresume_effect(onscreen);\n\t\t\tthis.#outroing.delete(key);\n\t\t} else {\n\t\t\t// effect is currently offscreen. put it in the DOM\n\t\t\tvar offscreen = this.#offscreen.get(key);\n\n\t\t\tif (offscreen) {\n\t\t\t\tthis.#onscreen.set(key, offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(key);\n\n\t\t\t\tif (DEV) {\n\t\t\t\t\t// Tell hmr.js about the anchor it should use for updates,\n\t\t\t\t\t// since the initial one will be removed\n\t\t\t\t\t/** @type {any} */ (offscreen.fragment.lastChild)[HMR_ANCHOR] = this.anchor;\n\t\t\t\t}\n\n\t\t\t\t// remove the anchor...\n\t\t\t\t/** @type {TemplateNode} */ (offscreen.fragment.lastChild).remove();\n\n\t\t\t\t// ...and append the fragment\n\t\t\t\tthis.anchor.before(offscreen.fragment);\n\t\t\t\tonscreen = offscreen.effect;\n\t\t\t}\n\t\t}\n\n\t\tfor (const [b, k] of this.#batches) {\n\t\t\tthis.#batches.delete(b);\n\n\t\t\tif (b === batch) {\n\t\t\t\t// keep values for newer batches\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst offscreen = this.#offscreen.get(k);\n\n\t\t\tif (offscreen) {\n\t\t\t\t// for older batches, destroy offscreen effects\n\t\t\t\t// as they will never be committed\n\t\t\t\tdestroy_effect(offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\n\t\t// outro/destroy all onscreen effects...\n\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t// ...except the one that was just committed\n\t\t\t//    or those that are already outroing (else the transition is aborted and the effect destroyed right away)\n\t\t\tif (k === key || this.#outroing.has(k)) continue;\n\n\t\t\tconst on_destroy = () => {\n\t\t\t\tconst keys = Array.from(this.#batches.values());\n\n\t\t\t\tif (keys.includes(k)) {\n\t\t\t\t\t// keep the effect offscreen, as another batch will need it\n\t\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\t\tmove_effect(effect, fragment);\n\n\t\t\t\t\tfragment.append(create_text()); // TODO can we avoid this?\n\n\t\t\t\t\tthis.#offscreen.set(k, { effect, fragment });\n\t\t\t\t} else {\n\t\t\t\t\tdestroy_effect(effect);\n\t\t\t\t}\n\n\t\t\t\tthis.#outroing.delete(k);\n\t\t\t\tthis.#onscreen.delete(k);\n\t\t\t};\n\n\t\t\tif (this.#transition || !onscreen) {\n\t\t\t\tthis.#outroing.add(k);\n\t\t\t\tpause_effect(effect, on_destroy, false);\n\t\t\t} else {\n\t\t\t\ton_destroy();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#discard = (batch) => {\n\t\tthis.#batches.delete(batch);\n\n\t\tconst keys = Array.from(this.#batches.values());\n\n\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\tif (!keys.includes(k)) {\n\t\t\t\tdestroy_effect(branch.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t *\n\t * @param {any} key\n\t * @param {null | ((target: TemplateNode) => void)} fn\n\t */\n\tensure(key, fn) {\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\t\tvar defer = should_defer_append();\n\n\t\tif (fn && !this.#onscreen.has(key) && !this.#offscreen.has(key)) {\n\t\t\tif (defer) {\n\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\tvar target = create_text();\n\n\t\t\t\tfragment.append(target);\n\n\t\t\t\tthis.#offscreen.set(key, {\n\t\t\t\t\teffect: branch(() => fn(target)),\n\t\t\t\t\tfragment\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.#onscreen.set(\n\t\t\t\t\tkey,\n\t\t\t\t\tbranch(() => fn(this.anchor))\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.#batches.set(batch, key);\n\n\t\tif (defer) {\n\t\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(branch.effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(branch.effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbatch.oncommit(this.#commit);\n\t\t\tbatch.ondiscard(this.#discard);\n\t\t} else {\n\t\t\tif (hydrating) {\n\t\t\t\tthis.anchor = hydrate_node;\n\t\t\t}\n\n\t\t\tthis.#commit(batch);\n\t\t}\n\t}\n}\n","/** @import { Snippet } from 'svelte' */\n/** @import { TemplateNode } from '#client' */\n/** @import { Getters } from '#shared' */\nimport { EFFECT_TRANSPARENT, ELEMENT_NODE } from '#client/constants';\nimport { block, teardown } from '../../reactivity/effects.js';\nimport {\n\tdev_current_component_function,\n\tset_dev_current_component_function\n} from '../../context.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\nimport { create_fragment_from_html } from '../reconciler.js';\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport * as e from '../../errors.js';\nimport { DEV } from 'esm-env';\nimport { get_first_child, get_next_sibling } from '../operations.js';\nimport { prevent_snippet_stringification } from '../../../shared/validate.js';\nimport { BranchManager } from './branches.js';\n\n/**\n * @template {(node: TemplateNode, ...args: any[]) => void} SnippetFn\n * @param {TemplateNode} node\n * @param {() => SnippetFn | null | undefined} get_snippet\n * @param {(() => any)[]} args\n * @returns {void}\n */\nexport function snippet(node, get_snippet, ...args) {\n\tvar branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tconst snippet = get_snippet() ?? null;\n\n\t\tif (DEV && snippet == null) {\n\t\t\te.invalid_snippet();\n\t\t}\n\n\t\tbranches.ensure(snippet, snippet && ((anchor) => snippet(anchor, ...args)));\n\t}, EFFECT_TRANSPARENT);\n}\n\n/**\n * In development, wrap the snippet function so that it passes validation, and so that the\n * correct component context is set for ownership checks\n * @param {any} component\n * @param {(node: TemplateNode, ...args: any[]) => void} fn\n */\nexport function wrap_snippet(component, fn) {\n\tconst snippet = (/** @type {TemplateNode} */ node, /** @type {any[]} */ ...args) => {\n\t\tvar previous_component_function = dev_current_component_function;\n\t\tset_dev_current_component_function(component);\n\n\t\ttry {\n\t\t\treturn fn(node, ...args);\n\t\t} finally {\n\t\t\tset_dev_current_component_function(previous_component_function);\n\t\t}\n\t};\n\n\tprevent_snippet_stringification(snippet);\n\n\treturn snippet;\n}\n\n/**\n * Create a snippet programmatically\n * @template {unknown[]} Params\n * @param {(...params: Getters<Params>) => {\n *   render: () => string\n *   setup?: (element: Element) => void | (() => void)\n * }} fn\n * @returns {Snippet<Params>}\n */\nexport function createRawSnippet(fn) {\n\t// @ts-expect-error the types are a lie\n\treturn (/** @type {TemplateNode} */ anchor, /** @type {Getters<Params>} */ ...params) => {\n\t\tvar snippet = fn(...params);\n\n\t\t/** @type {Element} */\n\t\tvar element;\n\n\t\tif (hydrating) {\n\t\t\telement = /** @type {Element} */ (hydrate_node);\n\t\t\thydrate_next();\n\t\t} else {\n\t\t\tvar html = snippet.render().trim();\n\t\t\tvar fragment = create_fragment_from_html(html);\n\t\t\telement = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (DEV && (get_next_sibling(element) !== null || element.nodeType !== ELEMENT_NODE)) {\n\t\t\t\tw.invalid_raw_snippet_render();\n\t\t\t}\n\n\t\t\tanchor.before(element);\n\t\t}\n\n\t\tconst result = snippet.setup?.(element);\n\t\tassign_nodes(element, element);\n\n\t\tif (typeof result === 'function') {\n\t\t\tteardown(result);\n\t\t}\n\t};\n}\n","/** @import { ComponentContext, ComponentContextLegacy } from '#client' */\n/** @import { EventDispatcher } from './index.js' */\n/** @import { NotFunction } from './internal/types.js' */\nimport { active_reaction, untrack } from './internal/client/runtime.js';\nimport { is_array } from './internal/shared/utils.js';\nimport { user_effect } from './internal/client/index.js';\nimport * as e from './internal/client/errors.js';\nimport { legacy_mode_flag } from './internal/flags/index.js';\nimport { component_context } from './internal/client/context.js';\nimport { DEV } from 'esm-env';\n\nif (DEV) {\n\t/**\n\t * @param {string} rune\n\t */\n\tfunction throw_rune_error(rune) {\n\t\tif (!(rune in globalThis)) {\n\t\t\t// TODO if people start adjusting the \"this can contain runes\" config through v-p-s more, adjust this message\n\t\t\t/** @type {any} */\n\t\t\tlet value; // let's hope noone modifies this global, but belts and braces\n\t\t\tObject.defineProperty(globalThis, rune, {\n\t\t\t\tconfigurable: true,\n\t\t\t\t// eslint-disable-next-line getter-return\n\t\t\t\tget: () => {\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\n\t\t\t\t\te.rune_outside_svelte(rune);\n\t\t\t\t},\n\t\t\t\tset: (v) => {\n\t\t\t\t\tvalue = v;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tthrow_rune_error('$state');\n\tthrow_rune_error('$effect');\n\tthrow_rune_error('$derived');\n\tthrow_rune_error('$inspect');\n\tthrow_rune_error('$props');\n\tthrow_rune_error('$bindable');\n}\n\n/**\n * Returns an [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that aborts when the current [derived](https://svelte.dev/docs/svelte/$derived) or [effect](https://svelte.dev/docs/svelte/$effect) re-runs or is destroyed.\n *\n * Must be called while a derived or effect is running.\n *\n * ```svelte\n * <script>\n * \timport { getAbortSignal } from 'svelte';\n *\n * \tlet { id } = $props();\n *\n * \tasync function getData(id) {\n * \t\tconst response = await fetch(`/items/${id}`, {\n * \t\t\tsignal: getAbortSignal()\n * \t\t});\n *\n * \t\treturn await response.json();\n * \t}\n *\n * \tconst data = $derived(await getData(id));\n * </script>\n * ```\n */\nexport function getAbortSignal() {\n\tif (active_reaction === null) {\n\t\te.get_abort_signal_outside_reaction();\n\t}\n\n\treturn (active_reaction.ac ??= new AbortController()).signal;\n}\n\n/**\n * `onMount`, like [`$effect`](https://svelte.dev/docs/svelte/$effect), schedules a function to run as soon as the component has been mounted to the DOM.\n * Unlike `$effect`, the provided function only runs once.\n *\n * It must be called during the component's initialisation (but doesn't need to live _inside_ the component;\n * it can be called from an external module). If a function is returned _synchronously_ from `onMount`,\n * it will be called when the component is unmounted.\n *\n * `onMount` functions do not run during [server-side rendering](https://svelte.dev/docs/svelte/svelte-server#render).\n *\n * @template T\n * @param {() => NotFunction<T> | Promise<NotFunction<T>> | (() => any)} fn\n * @returns {void}\n */\nexport function onMount(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onMount');\n\t}\n\n\tif (legacy_mode_flag && component_context.l !== null) {\n\t\tinit_update_callbacks(component_context).m.push(fn);\n\t} else {\n\t\tuser_effect(() => {\n\t\t\tconst cleanup = untrack(fn);\n\t\t\tif (typeof cleanup === 'function') return /** @type {() => void} */ (cleanup);\n\t\t});\n\t}\n}\n\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * @param {() => any} fn\n * @returns {void}\n */\nexport function onDestroy(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onDestroy');\n\t}\n\n\tonMount(() => () => untrack(fn));\n}\n\n/**\n * @template [T=any]\n * @param {string} type\n * @param {T} [detail]\n * @param {any}params_0\n * @returns {CustomEvent<T>}\n */\nfunction create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n\treturn new CustomEvent(type, { detail, bubbles, cancelable });\n}\n\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](https://svelte.dev/docs/svelte/legacy-on#Component-events).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * The event dispatcher can be typed to narrow the allowed event names and the type of the `detail` argument:\n * ```ts\n * const dispatch = createEventDispatcher<{\n *  loaded: null; // does not take a detail argument\n *  change: string; // takes a detail argument of type string, which is required\n *  optional: number | null; // takes an optional detail argument of type number\n * }>();\n * ```\n *\n * @deprecated Use callback props and/or the `$host()` rune instead — see [migration guide](https://svelte.dev/docs/svelte/v5-migration-guide#Event-changes-Component-events)\n * @template {Record<string, any>} [EventMap = any]\n * @returns {EventDispatcher<EventMap>}\n */\nexport function createEventDispatcher() {\n\tconst active_component_context = component_context;\n\tif (active_component_context === null) {\n\t\te.lifecycle_outside_component('createEventDispatcher');\n\t}\n\n\t/**\n\t * @param [detail]\n\t * @param [options]\n\t */\n\treturn (type, detail, options) => {\n\t\tconst events = /** @type {Record<string, Function | Function[]>} */ (\n\t\t\tactive_component_context.s.$$events\n\t\t)?.[/** @type {string} */ (type)];\n\n\t\tif (events) {\n\t\t\tconst callbacks = is_array(events) ? events.slice() : [events];\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = create_custom_event(/** @type {string} */ (type), detail, options);\n\t\t\tfor (const fn of callbacks) {\n\t\t\t\tfn.call(active_component_context.x, event);\n\t\t\t}\n\t\t\treturn !event.defaultPrevented;\n\t\t}\n\n\t\treturn true;\n\t};\n}\n\n// TODO mark beforeUpdate and afterUpdate as deprecated in Svelte 6\n\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`.\n *\n * In runes mode use `$effect.pre` instead.\n *\n * @deprecated Use [`$effect.pre`](https://svelte.dev/docs/svelte/$effect#$effect.pre) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function beforeUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('beforeUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('beforeUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).b.push(fn);\n}\n\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`.\n *\n * In runes mode use `$effect` instead.\n *\n * @deprecated Use [`$effect`](https://svelte.dev/docs/svelte/$effect) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function afterUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('afterUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('afterUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).a.push(fn);\n}\n\n/**\n * Legacy-mode: Init callbacks object for onMount/beforeUpdate/afterUpdate\n * @param {ComponentContext} context\n */\nfunction init_update_callbacks(context) {\n\tvar l = /** @type {ComponentContextLegacy} */ (context).l;\n\treturn (l.u ??= { a: [], b: [], m: [] });\n}\n\nexport { flushSync, fork } from './internal/client/reactivity/batch.js';\nexport {\n\tcreateContext,\n\tgetContext,\n\tgetAllContexts,\n\thasContext,\n\tsetContext\n} from './internal/client/context.js';\nexport { hydratable } from './internal/client/hydratable.js';\nexport { hydrate, mount, unmount } from './internal/client/render.js';\nexport { tick, untrack, settled } from './internal/client/runtime.js';\nexport { createRawSnippet } from './internal/client/dom/blocks/snippet.js';\n","/** @import { Source, TemplateNode } from '#client' */\nimport { is_promise } from '../../../shared/utils.js';\nimport { block } from '../../reactivity/effects.js';\nimport { internal_set, mutable_source, source } from '../../reactivity/sources.js';\nimport {\n\thydrate_next,\n\thydrating,\n\tskip_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';\nimport { is_runes } from '../../context.js';\nimport { Batch, current_batch, flushSync, is_flushing_sync } from '../../reactivity/batch.js';\nimport { BranchManager } from './branches.js';\nimport { capture, unset_context } from '../../reactivity/async.js';\n\nconst PENDING = 0;\nconst THEN = 1;\nconst CATCH = 2;\n\n/** @typedef {typeof PENDING | typeof THEN | typeof CATCH} AwaitState */\n\n/**\n * @template V\n * @param {TemplateNode} node\n * @param {(() => any)} get_input\n * @param {null | ((anchor: Node) => void)} pending_fn\n * @param {null | ((anchor: Node, value: Source<V>) => void)} then_fn\n * @param {null | ((anchor: Node, error: unknown) => void)} catch_fn\n * @returns {void}\n */\nexport function await_block(node, get_input, pending_fn, then_fn, catch_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar runes = is_runes();\n\n\tvar v = /** @type {V} */ (UNINITIALIZED);\n\tvar value = runes ? source(v) : mutable_source(v, false, false);\n\tvar error = runes ? source(v) : mutable_source(v, false, false);\n\n\tvar branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\n\t\t// we null out `current_batch` because otherwise `save(...)` will incorrectly restore it —\n\t\t// the batch will already have been committed by the time it resolves\n\t\tbatch.deactivate();\n\t\tvar input = get_input();\n\t\tbatch.activate();\n\n\t\tvar destroyed = false;\n\n\t\t/** Whether or not there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\t// @ts-ignore coercing `node` to a `Comment` causes TypeScript and Prettier to fight\n\t\tlet mismatch = hydrating && is_promise(input) === (node.data === HYDRATION_START_ELSE);\n\n\t\tif (mismatch) {\n\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh\n\t\t\tset_hydrate_node(skip_nodes());\n\t\t\tset_hydrating(false);\n\t\t}\n\n\t\tif (is_promise(input)) {\n\t\t\tvar restore = capture();\n\t\t\tvar resolved = false;\n\n\t\t\t/**\n\t\t\t * @param {() => void} fn\n\t\t\t */\n\t\t\tconst resolve = (fn) => {\n\t\t\t\tif (destroyed) return;\n\n\t\t\t\tresolved = true;\n\t\t\t\t// We don't want to restore the previous batch here; {#await} blocks don't follow the async logic\n\t\t\t\t// we have elsewhere, instead pending/resolve/fail states are each their own batch so to speak.\n\t\t\t\trestore(false);\n\t\t\t\t// Make sure we have a batch, since the branch manager expects one to exist\n\t\t\t\tBatch.ensure();\n\n\t\t\t\tif (hydrating) {\n\t\t\t\t\t// `restore()` could set `hydrating` to `true`, which we very much\n\t\t\t\t\t// don't want — we want to restore everything _except_ this\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tfn();\n\t\t\t\t} finally {\n\t\t\t\t\tunset_context(false);\n\n\t\t\t\t\t// without this, the DOM does not update until two ticks after the promise\n\t\t\t\t\t// resolves, which is unexpected behaviour (and somewhat irksome to test)\n\t\t\t\t\tif (!is_flushing_sync) flushSync();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tinput.then(\n\t\t\t\t(v) => {\n\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\tinternal_set(value, v);\n\t\t\t\t\t\tbranches.ensure(THEN, then_fn && ((target) => then_fn(target, value)));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t(e) => {\n\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\tinternal_set(error, e);\n\t\t\t\t\t\tbranches.ensure(CATCH, catch_fn && ((target) => catch_fn(target, error)));\n\n\t\t\t\t\t\tif (!catch_fn) {\n\t\t\t\t\t\t\t// Rethrow the error if no catch block exists\n\t\t\t\t\t\t\tthrow error.v;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (hydrating) {\n\t\t\t\tbranches.ensure(PENDING, pending_fn);\n\t\t\t} else {\n\t\t\t\t// Wait a microtask before checking if we should show the pending state as\n\t\t\t\t// the promise might have resolved by then\n\t\t\t\tqueue_micro_task(() => {\n\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\tresolve(() => {\n\t\t\t\t\t\t\tbranches.ensure(PENDING, pending_fn);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tinternal_set(value, input);\n\t\t\tbranches.ensure(THEN, then_fn && ((target) => then_fn(target, value)));\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\treturn () => {\n\t\t\tdestroyed = true;\n\t\t};\n\t});\n}\n","/** @import { TemplateNode } from '#client' */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport {\n\thydrate_next,\n\thydrating,\n\tread_hydration_instruction,\n\tskip_nodes,\n\tset_hydrate_node,\n\tset_hydrating,\n\thydrate_node\n} from '../hydration.js';\nimport { block } from '../../reactivity/effects.js';\nimport { BranchManager } from './branches.js';\n\n/**\n * @param {TemplateNode} node\n * @param {(branch: (fn: (anchor: Node) => void, key?: number | false) => void) => void} fn\n * @param {boolean} [elseif] True if this is an `{:else if ...}` block rather than an `{#if ...}`, as that affects which transitions are considered 'local'\n * @returns {void}\n */\nexport function if_block(node, fn, elseif = false) {\n\t/** @type {TemplateNode | undefined} */\n\tvar marker;\n\tif (hydrating) {\n\t\tmarker = hydrate_node;\n\t\thydrate_next();\n\t}\n\n\tvar branches = new BranchManager(node);\n\tvar flags = elseif ? EFFECT_TRANSPARENT : 0;\n\n\t/**\n\t * @param {number | false} key\n\t * @param {null | ((anchor: Node) => void)} fn\n\t */\n\tfunction update_branch(key, fn) {\n\t\tif (hydrating) {\n\t\t\tvar data = read_hydration_instruction(/** @type {TemplateNode} */ (marker));\n\n\t\t\t// \"[n\" = branch n, \"[-1\" = else\n\t\t\tif (key !== parseInt(data.substring(1))) {\n\t\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh.\n\t\t\t\t// This could happen with `{#if browser}...{/if}`, for example\n\t\t\t\tvar anchor = skip_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tbranches.anchor = anchor;\n\n\t\t\t\tset_hydrating(false);\n\t\t\t\tbranches.ensure(key, fn);\n\t\t\t\tset_hydrating(true);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tbranches.ensure(key, fn);\n\t}\n\n\tblock(() => {\n\t\tvar has_branch = false;\n\n\t\tfn((fn, key = 0) => {\n\t\t\thas_branch = true;\n\t\t\tupdate_branch(key, fn);\n\t\t});\n\n\t\tif (!has_branch) {\n\t\t\tupdate_branch(-1, null);\n\t\t}\n\t}, flags);\n}\n","/** @import { TemplateNode } from '#client' */\nimport { is_runes } from '../../context.js';\nimport { block } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrating } from '../hydration.js';\nimport { BranchManager } from './branches.js';\n\nconst NAN = Symbol('NaN');\n\n/**\n * @template V\n * @param {TemplateNode} node\n * @param {() => V} get_key\n * @param {(anchor: Node) => TemplateNode | void} render_fn\n * @returns {void}\n */\nexport function key(node, get_key, render_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar branches = new BranchManager(node);\n\n\tvar legacy = !is_runes();\n\n\tblock(() => {\n\t\tvar key = get_key();\n\n\t\t// NaN !== NaN, hence we do this workaround to not trigger remounts unnecessarily\n\t\tif (key !== key) {\n\t\t\tkey = /** @type {any} */ (NAN);\n\t\t}\n\n\t\t// key blocks in Svelte <5 had stupid semantics\n\t\tif (legacy && key !== null && typeof key === 'object') {\n\t\t\tkey = /** @type {V} */ ({});\n\t\t}\n\n\t\tbranches.ensure(key, render_fn);\n\t});\n}\n","/** @import { EachItem, EachOutroGroup, EachState, Effect, EffectNodes, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\n/** @import { Batch } from '../../reactivity/batch.js'; */\nimport {\n\tEACH_INDEX_REACTIVE,\n\tEACH_IS_ANIMATED,\n\tEACH_IS_CONTROLLED,\n\tEACH_ITEM_IMMUTABLE,\n\tEACH_ITEM_REACTIVE,\n\tHYDRATION_END,\n\tHYDRATION_START_ELSE\n} from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tread_hydration_instruction,\n\tskip_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling,\n\tshould_defer_append\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { source, mutable_source, internal_set } from '../../reactivity/sources.js';\nimport { array_from, is_array } from '../../../shared/utils.js';\nimport { BRANCH_EFFECT, COMMENT_NODE, DESTROYED, EFFECT_OFFSCREEN, INERT } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { get } from '../../runtime.js';\nimport { DEV } from 'esm-env';\nimport { derived_safe_equal } from '../../reactivity/deriveds.js';\nimport { current_batch } from '../../reactivity/batch.js';\nimport * as e from '../../errors.js';\nimport { tag } from '../../dev/tracing.js';\n\n// When making substantive changes to this file, validate them with the each block stress test:\n// https://svelte.dev/playground/1972b2cf46564476ad8c8c6405b23b7b\n// This test also exists in this repo, as `packages/svelte/tests/manual/each-stress-test`\n\n/**\n * @param {any} _\n * @param {number} i\n */\nexport function index(_, i) {\n\treturn i;\n}\n\n/**\n * Pause multiple effects simultaneously, and coordinate their\n * subsequent destruction. Used in each blocks\n * @param {EachState} state\n * @param {Effect[]} to_destroy\n * @param {null | Node} controlled_anchor\n */\nfunction pause_effects(state, to_destroy, controlled_anchor) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\tvar length = to_destroy.length;\n\n\t/** @type {EachOutroGroup} */\n\tvar group;\n\tvar remaining = to_destroy.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tlet effect = to_destroy[i];\n\n\t\tpause_effect(\n\t\t\teffect,\n\t\t\t() => {\n\t\t\t\tif (group) {\n\t\t\t\t\tgroup.pending.delete(effect);\n\t\t\t\t\tgroup.done.add(effect);\n\n\t\t\t\t\tif (group.pending.size === 0) {\n\t\t\t\t\t\tvar groups = /** @type {Set<EachOutroGroup>} */ (state.outrogroups);\n\n\t\t\t\t\t\tdestroy_effects(state, array_from(group.done));\n\t\t\t\t\t\tgroups.delete(group);\n\n\t\t\t\t\t\tif (groups.size === 0) {\n\t\t\t\t\t\t\tstate.outrogroups = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tremaining -= 1;\n\t\t\t\t}\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\t}\n\n\tif (remaining === 0) {\n\t\t// If we're in a controlled each block (i.e. the block is the only child of an\n\t\t// element), and we are removing all items, _and_ there are no out transitions,\n\t\t// we can use the fast path — emptying the element and replacing the anchor\n\t\tvar fast_path = transitions.length === 0 && controlled_anchor !== null;\n\n\t\tif (fast_path) {\n\t\t\tvar anchor = /** @type {Element} */ (controlled_anchor);\n\t\t\tvar parent_node = /** @type {Element} */ (anchor.parentNode);\n\n\t\t\tclear_text_content(parent_node);\n\t\t\tparent_node.append(anchor);\n\n\t\t\tstate.items.clear();\n\t\t}\n\n\t\tdestroy_effects(state, to_destroy, !fast_path);\n\t} else {\n\t\tgroup = {\n\t\t\tpending: new Set(to_destroy),\n\t\t\tdone: new Set()\n\t\t};\n\n\t\t(state.outrogroups ??= new Set()).add(group);\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {Effect[]} to_destroy\n * @param {boolean} remove_dom\n */\nfunction destroy_effects(state, to_destroy, remove_dom = true) {\n\t/** @type {Set<Effect> | undefined} */\n\tvar preserved_effects;\n\n\t// The loop-in-a-loop isn't ideal, but we should only hit this in relatively rare cases\n\tif (state.pending.size > 0) {\n\t\tpreserved_effects = new Set();\n\n\t\tfor (const keys of state.pending.values()) {\n\t\t\tfor (const key of keys) {\n\t\t\t\tpreserved_effects.add(/** @type {EachItem} */ (state.items.get(key)).e);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < to_destroy.length; i++) {\n\t\tvar e = to_destroy[i];\n\n\t\tif (preserved_effects?.has(e)) {\n\t\t\te.f |= EFFECT_OFFSCREEN;\n\n\t\t\tconst fragment = document.createDocumentFragment();\n\t\t\tmove_effect(e, fragment);\n\t\t} else {\n\t\t\tdestroy_effect(to_destroy[i], remove_dom);\n\t\t}\n\t}\n}\n\n/** @type {TemplateNode} */\nvar offscreen_anchor;\n\n/**\n * @template V\n * @param {Element | Comment} node The next sibling node, or the parent node if this is a 'controlled' block\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @param {(value: V, index: number) => any} get_key\n * @param {(anchor: Node, item: MaybeSource<V>, index: MaybeSource<number>) => void} render_fn\n * @param {null | ((anchor: Node) => void)} fallback_fn\n * @returns {void}\n */\nexport function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) {\n\tvar anchor = node;\n\n\t/** @type {Map<any, EachItem>} */\n\tvar items = new Map();\n\n\tvar is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;\n\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (node);\n\n\t\tanchor = hydrating\n\t\t\t? set_hydrate_node(get_first_child(parent_node))\n\t\t\t: parent_node.appendChild(create_text());\n\t}\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\t/** @type {Effect | null} */\n\tvar fallback = null;\n\n\t// TODO: ideally we could use derived for runes mode but because of the ability\n\t// to use a store which can be mutated, we can't do that here as mutating a store\n\t// will still result in the collection array being the same from the store\n\tvar each_array = derived_safe_equal(() => {\n\t\tvar collection = get_collection();\n\n\t\treturn is_array(collection) ? collection : collection == null ? [] : array_from(collection);\n\t});\n\n\tif (DEV) {\n\t\ttag(each_array, '{#each ...}');\n\t}\n\n\t/** @type {V[]} */\n\tvar array;\n\n\t/** @type {Map<Batch, Set<any>>} */\n\tvar pending = new Map();\n\n\tvar first_run = true;\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\tfunction commit(batch) {\n\t\tif ((state.effect.f & DESTROYED) !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tstate.pending.delete(batch);\n\n\t\tstate.fallback = fallback;\n\t\treconcile(state, array, anchor, flags, get_key);\n\n\t\tif (fallback !== null) {\n\t\t\tif (array.length === 0) {\n\t\t\t\tif ((fallback.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback.f ^= EFFECT_OFFSCREEN;\n\t\t\t\t\tmove(fallback, null, anchor);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\t// TODO only null out if no pending batch needs it,\n\t\t\t\t\t// otherwise re-add `fallback.fragment` and move the\n\t\t\t\t\t// effect into it\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\tfunction discard(batch) {\n\t\tstate.pending.delete(batch);\n\t}\n\n\tvar effect = block(() => {\n\t\tarray = /** @type {V[]} */ (get(each_array));\n\t\tvar length = array.length;\n\n\t\t/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tvar is_else = read_hydration_instruction(anchor) === HYDRATION_START_ELSE;\n\n\t\t\tif (is_else !== (length === 0)) {\n\t\t\t\t// hydration mismatch — remove the server-rendered DOM and start over\n\t\t\t\tanchor = skip_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\tvar keys = new Set();\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\t\tvar defer = should_defer_append();\n\n\t\tfor (var index = 0; index < length; index += 1) {\n\t\t\tif (\n\t\t\t\thydrating &&\n\t\t\t\thydrate_node.nodeType === COMMENT_NODE &&\n\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t) {\n\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\tmismatch = true;\n\t\t\t\tset_hydrating(false);\n\t\t\t}\n\n\t\t\tvar value = array[index];\n\t\t\tvar key = get_key(value, index);\n\n\t\t\tif (DEV) {\n\t\t\t\t// Check that the key function is idempotent (returns the same value when called twice)\n\t\t\t\tvar key_again = get_key(value, index);\n\t\t\t\tif (key !== key_again) {\n\t\t\t\t\te.each_key_volatile(String(index), String(key), String(key_again));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar item = first_run ? null : items.get(key);\n\n\t\t\tif (item) {\n\t\t\t\t// update before reconciliation, to trigger any async updates\n\t\t\t\tif (item.v) internal_set(item.v, value);\n\t\t\t\tif (item.i) internal_set(item.i, index);\n\n\t\t\t\tif (defer) {\n\t\t\t\t\tbatch.unskip_effect(item.e);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\titem = create_item(\n\t\t\t\t\titems,\n\t\t\t\t\tfirst_run ? anchor : (offscreen_anchor ??= create_text()),\n\t\t\t\t\tvalue,\n\t\t\t\t\tkey,\n\t\t\t\t\tindex,\n\t\t\t\t\trender_fn,\n\t\t\t\t\tflags,\n\t\t\t\t\tget_collection\n\t\t\t\t);\n\n\t\t\t\tif (!first_run) {\n\t\t\t\t\titem.e.f |= EFFECT_OFFSCREEN;\n\t\t\t\t}\n\n\t\t\t\titems.set(key, item);\n\t\t\t}\n\n\t\t\tkeys.add(key);\n\t\t}\n\n\t\tif (length === 0 && fallback_fn && !fallback) {\n\t\t\tif (first_run) {\n\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t} else {\n\t\t\t\tfallback = branch(() => fallback_fn((offscreen_anchor ??= create_text())));\n\t\t\t\tfallback.f |= EFFECT_OFFSCREEN;\n\t\t\t}\n\t\t}\n\n\t\tif (length > keys.size) {\n\t\t\tif (DEV) {\n\t\t\t\tvalidate_each_keys(array, get_key);\n\t\t\t} else {\n\t\t\t\t// in prod, the additional information isn't printed, so don't bother computing it\n\t\t\t\te.each_key_duplicate('', '', '');\n\t\t\t}\n\t\t}\n\n\t\t// remove excess nodes\n\t\tif (hydrating && length > 0) {\n\t\t\tset_hydrate_node(skip_nodes());\n\t\t}\n\n\t\tif (!first_run) {\n\t\t\tpending.set(batch, keys);\n\n\t\t\tif (defer) {\n\t\t\t\tfor (const [key, item] of items) {\n\t\t\t\t\tif (!keys.has(key)) {\n\t\t\t\t\t\tbatch.skip_effect(item.e);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbatch.oncommit(commit);\n\t\t\t\tbatch.ondiscard(discard);\n\t\t\t} else {\n\t\t\t\tcommit(batch);\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\t// When we mount the each block for the first time, the collection won't be\n\t\t// connected to this effect as the effect hasn't finished running yet and its deps\n\t\t// won't be assigned. However, it's possible that when reconciling the each block\n\t\t// that a mutation occurred and it's made the collection MAYBE_DIRTY, so reading the\n\t\t// collection again can provide consistency to the reactive graph again as the deriveds\n\t\t// will now be `CLEAN`.\n\t\tget(each_array);\n\t});\n\n\t/** @type {EachState} */\n\tvar state = { effect, flags, items, pending, outrogroups: null, fallback };\n\n\tfirst_run = false;\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Skip past any non-branch effects (which could be created with `createSubscriber`, for example) to find the next branch effect\n * @param {Effect | null} effect\n * @returns {Effect | null}\n */\nfunction skip_to_branch(effect) {\n\twhile (effect !== null && (effect.f & BRANCH_EFFECT) === 0) {\n\t\teffect = effect.next;\n\t}\n\treturn effect;\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {EachState} state\n * @param {Array<V>} array\n * @param {Element | Comment | Text} anchor\n * @param {number} flags\n * @param {(value: V, index: number) => any} get_key\n * @returns {void}\n */\nfunction reconcile(state, array, anchor, flags, get_key) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar current = skip_to_branch(state.effect.first);\n\n\t/** @type {undefined | Set<Effect>} */\n\tvar seen;\n\n\t/** @type {Effect | null} */\n\tvar prev = null;\n\n\t/** @type {undefined | Set<Effect>} */\n\tvar to_animate;\n\n\t/** @type {Effect[]} */\n\tvar matched = [];\n\n\t/** @type {Effect[]} */\n\tvar stashed = [];\n\n\t/** @type {V} */\n\tvar value;\n\n\t/** @type {any} */\n\tvar key;\n\n\t/** @type {Effect | undefined} */\n\tvar effect;\n\n\t/** @type {number} */\n\tvar i;\n\n\tif (is_animated) {\n\t\tfor (i = 0; i < length; i += 1) {\n\t\t\tvalue = array[i];\n\t\t\tkey = get_key(value, i);\n\t\t\teffect = /** @type {EachItem} */ (items.get(key)).e;\n\n\t\t\t// offscreen == coming in now, no animation in that case,\n\t\t\t// else this would happen https://github.com/sveltejs/svelte/issues/17181\n\t\t\tif ((effect.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\t\teffect.nodes?.a?.measure();\n\t\t\t\t(to_animate ??= new Set()).add(effect);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i = 0; i < length; i += 1) {\n\t\tvalue = array[i];\n\t\tkey = get_key(value, i);\n\n\t\teffect = /** @type {EachItem} */ (items.get(key)).e;\n\n\t\tif (state.outrogroups !== null) {\n\t\t\tfor (const group of state.outrogroups) {\n\t\t\t\tgroup.pending.delete(effect);\n\t\t\t\tgroup.done.delete(effect);\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & INERT) !== 0) {\n\t\t\tresume_effect(effect);\n\t\t\tif (is_animated) {\n\t\t\t\teffect.nodes?.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(effect);\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & EFFECT_OFFSCREEN) !== 0) {\n\t\t\teffect.f ^= EFFECT_OFFSCREEN;\n\n\t\t\tif (effect === current) {\n\t\t\t\tmove(effect, null, anchor);\n\t\t\t} else {\n\t\t\t\tvar next = prev ? prev.next : current;\n\n\t\t\t\tif (effect === state.effect.last) {\n\t\t\t\t\tstate.effect.last = effect.prev;\n\t\t\t\t}\n\n\t\t\t\tif (effect.prev) effect.prev.next = effect.next;\n\t\t\t\tif (effect.next) effect.next.prev = effect.prev;\n\t\t\t\tlink(state, prev, effect);\n\t\t\t\tlink(state, effect, next);\n\n\t\t\t\tmove(effect, next, anchor);\n\t\t\t\tprev = effect;\n\n\t\t\t\tmatched = [];\n\t\t\t\tstashed = [];\n\n\t\t\t\tcurrent = skip_to_branch(prev.next);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (effect !== current) {\n\t\t\tif (seen !== undefined && seen.has(effect)) {\n\t\t\t\tif (matched.length < stashed.length) {\n\t\t\t\t\t// more efficient to move later items to the front\n\t\t\t\t\tvar start = stashed[0];\n\t\t\t\t\tvar j;\n\n\t\t\t\t\tprev = start.prev;\n\n\t\t\t\t\tvar a = matched[0];\n\t\t\t\t\tvar b = matched[matched.length - 1];\n\n\t\t\t\t\tfor (j = 0; j < matched.length; j += 1) {\n\t\t\t\t\t\tmove(matched[j], start, anchor);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (j = 0; j < stashed.length; j += 1) {\n\t\t\t\t\t\tseen.delete(stashed[j]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlink(state, a.prev, b.next);\n\t\t\t\t\tlink(state, prev, a);\n\t\t\t\t\tlink(state, b, start);\n\n\t\t\t\t\tcurrent = start;\n\t\t\t\t\tprev = b;\n\t\t\t\t\ti -= 1;\n\n\t\t\t\t\tmatched = [];\n\t\t\t\t\tstashed = [];\n\t\t\t\t} else {\n\t\t\t\t\t// more efficient to move earlier items to the back\n\t\t\t\t\tseen.delete(effect);\n\t\t\t\t\tmove(effect, current, anchor);\n\n\t\t\t\t\tlink(state, effect.prev, effect.next);\n\t\t\t\t\tlink(state, effect, prev === null ? state.effect.first : prev.next);\n\t\t\t\t\tlink(state, prev, effect);\n\n\t\t\t\t\tprev = effect;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\twhile (current !== null && current !== effect) {\n\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = skip_to_branch(current.next);\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif ((effect.f & EFFECT_OFFSCREEN) === 0) {\n\t\t\tmatched.push(effect);\n\t\t}\n\n\t\tprev = effect;\n\t\tcurrent = skip_to_branch(effect.next);\n\t}\n\n\tif (state.outrogroups !== null) {\n\t\tfor (const group of state.outrogroups) {\n\t\t\tif (group.pending.size === 0) {\n\t\t\t\tdestroy_effects(state, array_from(group.done));\n\t\t\t\tstate.outrogroups?.delete(group);\n\t\t\t}\n\t\t}\n\n\t\tif (state.outrogroups.size === 0) {\n\t\t\tstate.outrogroups = null;\n\t\t}\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\t/** @type {Effect[]} */\n\t\tvar to_destroy = [];\n\n\t\tif (seen !== undefined) {\n\t\t\tfor (effect of seen) {\n\t\t\t\tif ((effect.f & INERT) === 0) {\n\t\t\t\t\tto_destroy.push(effect);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (current !== null) {\n\t\t\t// If the each block isn't inert, then inert effects are currently outroing and will be removed once the transition is finished\n\t\t\tif ((current.f & INERT) === 0 && current !== state.fallback) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\n\t\t\tcurrent = skip_to_branch(current.next);\n\t\t}\n\n\t\tvar destroy_length = to_destroy.length;\n\n\t\tif (destroy_length > 0) {\n\t\t\tvar controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;\n\n\t\t\tif (is_animated) {\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].nodes?.a?.measure();\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].nodes?.a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor);\n\t\t}\n\t}\n\n\tif (is_animated) {\n\t\tqueue_micro_task(() => {\n\t\t\tif (to_animate === undefined) return;\n\t\t\tfor (effect of to_animate) {\n\t\t\t\teffect.nodes?.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * @template V\n * @param {Map<any, EachItem>} items\n * @param {Node} anchor\n * @param {V} value\n * @param {unknown} key\n * @param {number} index\n * @param {(anchor: Node, item: V | Source<V>, index: number | Value<number>, collection: () => V[]) => void} render_fn\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @returns {EachItem}\n */\nfunction create_item(items, anchor, value, key, index, render_fn, flags, get_collection) {\n\tvar v =\n\t\t(flags & EACH_ITEM_REACTIVE) !== 0\n\t\t\t? (flags & EACH_ITEM_IMMUTABLE) === 0\n\t\t\t\t? mutable_source(value, false, false)\n\t\t\t\t: source(value)\n\t\t\t: null;\n\n\tvar i = (flags & EACH_INDEX_REACTIVE) !== 0 ? source(index) : null;\n\n\tif (DEV && v) {\n\t\t// For tracing purposes, we need to link the source signal we create with the\n\t\t// collection + index so that tracing works as intended\n\t\tv.trace = () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\tget_collection()[i?.v ?? index];\n\t\t};\n\t}\n\n\treturn {\n\t\tv,\n\t\ti,\n\t\te: branch(() => {\n\t\t\trender_fn(anchor, v ?? value, i ?? index, get_collection);\n\n\t\t\treturn () => {\n\t\t\t\titems.delete(key);\n\t\t\t};\n\t\t})\n\t};\n}\n\n/**\n * @param {Effect} effect\n * @param {Effect | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(effect, next, anchor) {\n\tif (!effect.nodes) return;\n\n\tvar node = effect.nodes.start;\n\tvar end = effect.nodes.end;\n\n\tvar dest =\n\t\tnext && (next.f & EFFECT_OFFSCREEN) === 0\n\t\t\t? /** @type {EffectNodes} */ (next.nodes).start\n\t\t\t: anchor;\n\n\twhile (node !== null) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\n\t\tif (node === end) {\n\t\t\treturn;\n\t\t}\n\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {Effect | null} prev\n * @param {Effect | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.effect.first = next;\n\t} else {\n\t\tprev.next = next;\n\t}\n\n\tif (next === null) {\n\t\tstate.effect.last = prev;\n\t} else {\n\t\tnext.prev = prev;\n\t}\n}\n\n/**\n * @param {Array<any>} array\n * @param {(item: any, index: number) => string} key_fn\n * @returns {void}\n */\nfunction validate_each_keys(array, key_fn) {\n\tconst keys = new Map();\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; i++) {\n\t\tconst key = key_fn(array[i], i);\n\n\t\tif (keys.has(key)) {\n\t\t\tconst a = String(keys.get(key));\n\t\t\tconst b = String(i);\n\n\t\t\t/** @type {string | null} */\n\t\t\tlet k = String(key);\n\t\t\tif (k.startsWith('[object ')) k = null;\n\n\t\t\te.each_key_duplicate(a, b, k);\n\t\t}\n\n\t\tkeys.set(key, i);\n\t}\n}\n","/** @import { Effect, TemplateNode } from '#client' */\n/** @import {} from 'trusted-types' */\nimport {\n\tFILENAME,\n\tHYDRATION_ERROR,\n\tNAMESPACE_SVG,\n\tNAMESPACE_MATHML\n} from '../../../../constants.js';\nimport { remove_effect_dom, template_effect } from '../../reactivity/effects.js';\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from '../hydration.js';\n\nimport { assign_nodes } from '../template.js';\nimport * as w from '../../warnings.js';\nimport { hash, sanitize_location } from '../../../../utils.js';\nimport { DEV } from 'esm-env';\nimport { dev_current_component_function } from '../../context.js';\nimport { create_element, get_first_child, get_next_sibling } from '../operations.js';\nimport { active_effect } from '../../runtime.js';\nimport { COMMENT_NODE } from '#client/constants';\n\n/**\n * @param {Element} element\n * @param {string | null} server_hash\n * @param {string | TrustedHTML} value\n */\nfunction check_hash(element, server_hash, value) {\n\tif (!server_hash || server_hash === hash(String(value ?? ''))) return;\n\n\tlet location;\n\n\t// @ts-expect-error\n\tconst loc = element.__svelte_meta?.loc;\n\tif (loc) {\n\t\tlocation = `near ${loc.file}:${loc.line}:${loc.column}`;\n\t} else if (dev_current_component_function?.[FILENAME]) {\n\t\tlocation = `in ${dev_current_component_function[FILENAME]}`;\n\t}\n\n\tw.hydration_html_changed(sanitize_location(location));\n}\n\n/**\n * @param {Element | Text | Comment} node\n * @param {() => string | TrustedHTML} get_value\n * @param {boolean} [is_controlled]\n * @param {boolean} [svg]\n * @param {boolean} [mathml]\n * @param {boolean} [skip_warning]\n * @returns {void}\n */\nexport function html(\n\tnode,\n\tget_value,\n\tis_controlled = false,\n\tsvg = false,\n\tmathml = false,\n\tskip_warning = false\n) {\n\tvar anchor = node;\n\n\t/** @type {string | TrustedHTML} */\n\tvar value = '';\n\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (node);\n\n\t\tif (hydrating) {\n\t\t\tanchor = set_hydrate_node(get_first_child(parent_node));\n\t\t}\n\t}\n\n\ttemplate_effect(() => {\n\t\tvar effect = /** @type {Effect} */ (active_effect);\n\n\t\tif (value === (value = get_value() ?? '')) {\n\t\t\tif (hydrating) hydrate_next();\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_controlled && !hydrating) {\n\t\t\t// When @html is the only child, use innerHTML directly.\n\t\t\t// This also handles contenteditable, where the user may delete the anchor comment.\n\t\t\teffect.nodes = null;\n\t\t\tparent_node.innerHTML = /** @type {string} */ (value);\n\n\t\t\tif (value !== '') {\n\t\t\t\tassign_nodes(\n\t\t\t\t\t/** @type {TemplateNode} */ (get_first_child(parent_node)),\n\t\t\t\t\t/** @type {TemplateNode} */ (parent_node.lastChild)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (effect.nodes !== null) {\n\t\t\tremove_effect_dom(effect.nodes.start, /** @type {TemplateNode} */ (effect.nodes.end));\n\t\t\teffect.nodes = null;\n\t\t}\n\n\t\tif (value === '') return;\n\n\t\tif (hydrating) {\n\t\t\t// We're deliberately not trying to repair mismatches between server and client,\n\t\t\t// as it's costly and error-prone (and it's an edge case to have a mismatch anyway)\n\t\t\tvar hash = /** @type {Comment} */ (hydrate_node).data;\n\n\t\t\t/** @type {TemplateNode | null} */\n\t\t\tvar next = hydrate_next();\n\t\t\tvar last = next;\n\n\t\t\twhile (\n\t\t\t\tnext !== null &&\n\t\t\t\t(next.nodeType !== COMMENT_NODE || /** @type {Comment} */ (next).data !== '')\n\t\t\t) {\n\t\t\t\tlast = next;\n\t\t\t\tnext = get_next_sibling(next);\n\t\t\t}\n\n\t\t\tif (next === null) {\n\t\t\t\tw.hydration_mismatch();\n\t\t\t\tthrow HYDRATION_ERROR;\n\t\t\t}\n\n\t\t\tif (DEV && !skip_warning) {\n\t\t\t\tcheck_hash(/** @type {Element} */ (next.parentNode), hash, value);\n\t\t\t}\n\n\t\t\tassign_nodes(hydrate_node, last);\n\t\t\tanchor = set_hydrate_node(next);\n\t\t\treturn;\n\t\t}\n\n\t\t// Don't use create_fragment_with_script_from_html here because that would mean script tags are executed.\n\t\t// @html is basically `.innerHTML = ...` and that doesn't execute scripts either due to security reasons.\n\t\t// Use a <template>, <svg>, or <math> wrapper depending on context. If value is a TrustedHTML object,\n\t\t// it will be assigned directly to innerHTML without coercion — this allows {@html policy.createHTML(...)} to work.\n\t\tvar ns = svg ? NAMESPACE_SVG : mathml ? NAMESPACE_MATHML : undefined;\n\t\tvar wrapper = /** @type {HTMLTemplateElement | SVGElement | MathMLElement} */ (\n\t\t\tcreate_element(svg ? 'svg' : mathml ? 'math' : 'template', ns)\n\t\t);\n\t\twrapper.innerHTML = /** @type {any} */ (value);\n\n\t\t/** @type {DocumentFragment | Element} */\n\t\tvar node = svg || mathml ? wrapper : /** @type {HTMLTemplateElement} */ (wrapper).content;\n\n\t\tassign_nodes(\n\t\t\t/** @type {TemplateNode} */ (get_first_child(node)),\n\t\t\t/** @type {TemplateNode} */ (node.lastChild)\n\t\t);\n\n\t\tif (svg || mathml) {\n\t\t\twhile (get_first_child(node)) {\n\t\t\t\tanchor.before(/** @type {TemplateNode} */ (get_first_child(node)));\n\t\t\t}\n\t\t} else {\n\t\t\tanchor.before(node);\n\t\t}\n\t});\n}\n","import { hydrate_next, hydrating } from '../hydration.js';\n\n/**\n * @param {Comment} anchor\n * @param {Record<string, any>} $$props\n * @param {string} name\n * @param {Record<string, unknown>} slot_props\n * @param {null | ((anchor: Comment) => void)} fallback_fn\n */\nexport function slot(anchor, $$props, name, slot_props, fallback_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar slot_fn = $$props.$$slots?.[name];\n\t// Interop: Can use snippets to fill slots\n\tvar is_interop = false;\n\tif (slot_fn === true) {\n\t\tslot_fn = $$props[name === 'default' ? 'children' : name];\n\t\tis_interop = true;\n\t}\n\n\tif (slot_fn === undefined) {\n\t\tif (fallback_fn !== null) {\n\t\t\tfallback_fn(anchor);\n\t\t}\n\t} else {\n\t\tslot_fn(anchor, is_interop ? () => slot_props : slot_props);\n\t}\n}\n\n/**\n * @param {Record<string, any>} props\n * @returns {Record<string, boolean>}\n */\nexport function sanitize_slots(props) {\n\t/** @type {Record<string, boolean>} */\n\tconst sanitized = {};\n\tif (props.children) sanitized.default = true;\n\tfor (const key in props.$$slots) {\n\t\tsanitized[key] = true;\n\t}\n\treturn sanitized;\n}\n","/** @import { TemplateNode, Dom } from '#client' */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport { block } from '../../reactivity/effects.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tread_hydration_instruction,\n\tset_hydrate_node,\n\tset_hydrating,\n\tskip_nodes\n} from '../hydration.js';\nimport { BranchManager } from './branches.js';\nimport { HYDRATION_START, HYDRATION_START_ELSE } from '../../../../constants.js';\n\n/**\n * @template P\n * @template {(props: P) => void} C\n * @param {TemplateNode} node\n * @param {() => C} get_component\n * @param {(anchor: TemplateNode, component: C) => Dom | void} render_fn\n * @returns {void}\n */\nexport function component(node, get_component, render_fn) {\n\t/** @type {TemplateNode | undefined} */\n\tvar hydration_start_node;\n\n\tif (hydrating) {\n\t\thydration_start_node = hydrate_node;\n\t\thydrate_next();\n\t}\n\n\tvar branches = new BranchManager(node);\n\n\tblock(() => {\n\t\tvar component = get_component() ?? null;\n\n\t\tif (hydrating) {\n\t\t\tvar data = read_hydration_instruction(/** @type {TemplateNode} */ (hydration_start_node));\n\n\t\t\tvar server_had_component = data === HYDRATION_START;\n\t\t\tvar client_has_component = component !== null;\n\n\t\t\tif (server_had_component !== client_has_component) {\n\t\t\t\t// Hydration mismatch: skip the server-rendered nodes and render fresh\n\t\t\t\tvar anchor = skip_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tbranches.anchor = anchor;\n\n\t\t\t\tset_hydrating(false);\n\t\t\t\tbranches.ensure(component, component && ((target) => render_fn(target, component)));\n\t\t\t\tset_hydrating(true);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tbranches.ensure(component, component && ((target) => render_fn(target, component)));\n\t}, EFFECT_TRANSPARENT);\n}\n","/** @import { Raf } from '#client' */\nimport { noop } from '../shared/utils.js';\n\nimport { BROWSER } from 'esm-env';\n\nconst now = BROWSER ? () => performance.now() : () => Date.now();\n\n/** @type {Raf} */\nexport const raf = {\n\t// don't access requestAnimationFrame eagerly outside method\n\t// this allows basic testing of user code without JSDOM\n\t// bunder will eval and remove ternary when the user's app is built\n\ttick: /** @param {any} _ */ (_) => (BROWSER ? requestAnimationFrame : noop)(_),\n\tnow: () => now(),\n\ttasks: new Set()\n};\n","/** @import { TaskCallback, Task, TaskEntry } from '#client' */\nimport { raf } from './timing.js';\n\n// TODO move this into timing.js where it probably belongs\n\n/**\n * @returns {void}\n */\nfunction run_tasks() {\n\t// use `raf.now()` instead of the `requestAnimationFrame` callback argument, because\n\t// otherwise things can get wonky https://github.com/sveltejs/svelte/pull/14541\n\tconst now = raf.now();\n\n\traf.tasks.forEach((task) => {\n\t\tif (!task.c(now)) {\n\t\t\traf.tasks.delete(task);\n\t\t\ttask.f();\n\t\t}\n\t});\n\n\tif (raf.tasks.size !== 0) {\n\t\traf.tick(run_tasks);\n\t}\n}\n\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n * @param {TaskCallback} callback\n * @returns {Task}\n */\nexport function loop(callback) {\n\t/** @type {TaskEntry} */\n\tlet task;\n\n\tif (raf.tasks.size === 0) {\n\t\traf.tick(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise((fulfill) => {\n\t\t\traf.tasks.add((task = { c: callback, f: fulfill }));\n\t\t}),\n\t\tabort() {\n\t\t\traf.tasks.delete(task);\n\t\t}\n\t};\n}\n","/** @import { AnimateFn, Animation, AnimationConfig, EachItem, Effect, EffectNodes, TransitionFn, TransitionManager } from '#client' */\nimport { noop, is_function } from '../../../shared/utils.js';\nimport { effect } from '../../reactivity/effects.js';\nimport { active_effect, untrack } from '../../runtime.js';\nimport { loop } from '../../loop.js';\nimport { should_intro } from '../../render.js';\nimport { TRANSITION_GLOBAL, TRANSITION_IN, TRANSITION_OUT } from '../../../../constants.js';\nimport { BLOCK_EFFECT, REACTION_RAN, EFFECT_TRANSPARENT } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { without_reactive_context } from './bindings/shared.js';\n\n/**\n * @param {Element} element\n * @param {'introstart' | 'introend' | 'outrostart' | 'outroend'} type\n * @returns {void}\n */\nfunction dispatch_event(element, type) {\n\twithout_reactive_context(() => {\n\t\telement.dispatchEvent(new CustomEvent(type));\n\t});\n}\n\n/**\n * Converts a property to the camel-case format expected by Element.animate(), KeyframeEffect(), and KeyframeEffect.setKeyframes().\n * @param {string} style\n * @returns {string}\n */\nfunction css_property_to_camelcase(style) {\n\t// in compliance with spec\n\tif (style === 'float') return 'cssFloat';\n\tif (style === 'offset') return 'cssOffset';\n\n\t// do not rename custom @properties\n\tif (style.startsWith('--')) return style;\n\n\tconst parts = style.split('-');\n\tif (parts.length === 1) return parts[0];\n\treturn (\n\t\tparts[0] +\n\t\tparts\n\t\t\t.slice(1)\n\t\t\t.map(/** @param {any} word */ (word) => word[0].toUpperCase() + word.slice(1))\n\t\t\t.join('')\n\t);\n}\n\n/**\n * @param {string} css\n * @returns {Keyframe}\n */\nfunction css_to_keyframe(css) {\n\t/** @type {Keyframe} */\n\tconst keyframe = {};\n\tconst parts = css.split(';');\n\tfor (const part of parts) {\n\t\tconst [property, value] = part.split(':');\n\t\tif (!property || value === undefined) break;\n\n\t\tconst formatted_property = css_property_to_camelcase(property.trim());\n\t\tkeyframe[formatted_property] = value.trim();\n\t}\n\treturn keyframe;\n}\n\n/** @param {number} t */\nconst linear = (t) => t;\n\n/** @type {Effect | null} */\nlet animation_effect_override = null;\n\n/** @param {Effect | null} v */\nexport function set_animation_effect_override(v) {\n\tanimation_effect_override = v;\n}\n\n/**\n * Called inside keyed `{#each ...}` blocks (as `$.animation(...)`). This creates an animation manager\n * and attaches it to the block, so that moves can be animated following reconciliation.\n * @template P\n * @param {Element} element\n * @param {() => AnimateFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n */\nexport function animation(element, get_fn, get_params) {\n\tvar effect = animation_effect_override ?? /** @type {Effect} */ (active_effect);\n\tvar nodes = /** @type {EffectNodes} */ (effect.nodes);\n\n\t/** @type {DOMRect} */\n\tvar from;\n\n\t/** @type {DOMRect} */\n\tvar to;\n\n\t/** @type {Animation | undefined} */\n\tvar animation;\n\n\t/** @type {null | { position: string, width: string, height: string, transform: string }} */\n\tvar original_styles = null;\n\n\tnodes.a ??= {\n\t\telement,\n\t\tmeasure() {\n\t\t\tfrom = this.element.getBoundingClientRect();\n\t\t},\n\t\tapply() {\n\t\t\tanimation?.abort();\n\n\t\t\tto = this.element.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tfrom.left !== to.left ||\n\t\t\t\tfrom.right !== to.right ||\n\t\t\t\tfrom.top !== to.top ||\n\t\t\t\tfrom.bottom !== to.bottom\n\t\t\t) {\n\t\t\t\tconst options = get_fn()(this.element, { from, to }, get_params?.());\n\n\t\t\t\tanimation = animate(\n\t\t\t\t\tthis.element,\n\t\t\t\t\toptions,\n\t\t\t\t\tundefined,\n\t\t\t\t\t1,\n\t\t\t\t\t() => {},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tanimation?.abort();\n\t\t\t\t\t\tanimation = undefined;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tfix() {\n\t\t\t// If an animation is already running, transforming the element is likely to fail,\n\t\t\t// because the styles applied by the animation take precedence. In the case of crossfade,\n\t\t\t// that means the `translate(...)` of the crossfade transition overrules the `translate(...)`\n\t\t\t// we would apply below, leading to the element jumping somewhere to the top left.\n\t\t\tif (element.getAnimations().length) return;\n\n\t\t\t// It's important to destructure these to get fixed values - the object itself has getters,\n\t\t\t// and changing the style to 'absolute' can for example influence the width.\n\t\t\tvar { position, width, height } = getComputedStyle(element);\n\n\t\t\tif (position !== 'absolute' && position !== 'fixed') {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\toriginal_styles = {\n\t\t\t\t\tposition: style.position,\n\t\t\t\t\twidth: style.width,\n\t\t\t\t\theight: style.height,\n\t\t\t\t\ttransform: style.transform\n\t\t\t\t};\n\n\t\t\t\tstyle.position = 'absolute';\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.height = height;\n\t\t\t\tvar to = element.getBoundingClientRect();\n\n\t\t\t\tif (from.left !== to.left || from.top !== to.top) {\n\t\t\t\t\tvar transform = `translate(${from.left - to.left}px, ${from.top - to.top}px)`;\n\t\t\t\t\tstyle.transform = style.transform ? `${style.transform} ${transform}` : transform;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tunfix() {\n\t\t\tif (original_styles) {\n\t\t\t\tvar style = /** @type {HTMLElement | SVGElement} */ (element).style;\n\n\t\t\t\tstyle.position = original_styles.position;\n\t\t\t\tstyle.width = original_styles.width;\n\t\t\t\tstyle.height = original_styles.height;\n\t\t\t\tstyle.transform = original_styles.transform;\n\t\t\t}\n\t\t}\n\t};\n\n\t// in the case of a `<svelte:element>`, it's possible for `$.animation(...)` to be called\n\t// when an animation manager already exists, if the tag changes. in that case, we need to\n\t// swap out the element rather than creating a new manager, in case it happened at the same\n\t// moment as a reconciliation\n\tnodes.a.element = element;\n}\n\n/**\n * Called inside block effects as `$.transition(...)`. This creates a transition manager and\n * attaches it to the current effect — later, inside `pause_effect` and `resume_effect`, we\n * use this to create `intro` and `outro` transitions.\n * @template P\n * @param {number} flags\n * @param {HTMLElement} element\n * @param {() => TransitionFn<P | undefined>} get_fn\n * @param {(() => P) | null} get_params\n * @returns {void}\n */\nexport function transition(flags, element, get_fn, get_params) {\n\tvar is_intro = (flags & TRANSITION_IN) !== 0;\n\tvar is_outro = (flags & TRANSITION_OUT) !== 0;\n\tvar is_both = is_intro && is_outro;\n\tvar is_global = (flags & TRANSITION_GLOBAL) !== 0;\n\n\t/** @type {'in' | 'out' | 'both'} */\n\tvar direction = is_both ? 'both' : is_intro ? 'in' : 'out';\n\n\t/** @type {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig) | undefined} */\n\tvar current_options;\n\n\tvar inert = element.inert;\n\n\t/**\n\t * The default overflow style, stashed so we can revert changes during the transition\n\t * that are necessary to work around a Safari <18 bug\n\t * TODO 6.0 remove this, if older versions of Safari have died out enough\n\t */\n\tvar overflow = element.style.overflow;\n\n\t/** @type {Animation | undefined} */\n\tvar intro;\n\n\t/** @type {Animation | undefined} */\n\tvar outro;\n\n\tfunction get_options() {\n\t\treturn without_reactive_context(() => {\n\t\t\t// If a transition is still ongoing, we use the existing options rather than generating\n\t\t\t// new ones. This ensures that reversible transitions reverse smoothly, rather than\n\t\t\t// jumping to a new spot because (for example) a different `duration` was used\n\t\t\treturn (current_options ??= get_fn()(element, get_params?.() ?? /** @type {P} */ ({}), {\n\t\t\t\tdirection\n\t\t\t}));\n\t\t});\n\t}\n\n\t/** @type {TransitionManager} */\n\tvar transition = {\n\t\tis_global,\n\t\tin() {\n\t\t\telement.inert = inert;\n\n\t\t\tif (!is_intro) {\n\t\t\t\toutro?.abort();\n\t\t\t\toutro?.reset?.();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!is_outro) {\n\t\t\t\t// if we intro then outro then intro again, we want to abort the first intro,\n\t\t\t\t// if it's not a bidirectional transition\n\t\t\t\tintro?.abort();\n\t\t\t}\n\n\t\t\tintro = animate(\n\t\t\t\telement,\n\t\t\t\tget_options(),\n\t\t\t\toutro,\n\t\t\t\t1,\n\t\t\t\t() => {\n\t\t\t\t\tdispatch_event(element, 'introstart');\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tdispatch_event(element, 'introend');\n\n\t\t\t\t\t// Ensure we cancel the animation to prevent leaking\n\t\t\t\t\tintro?.abort();\n\t\t\t\t\tintro = current_options = undefined;\n\n\t\t\t\t\telement.style.overflow = overflow;\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\tout(fn) {\n\t\t\tif (!is_outro) {\n\t\t\t\tfn?.();\n\t\t\t\tcurrent_options = undefined;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.inert = true;\n\n\t\t\toutro = animate(\n\t\t\t\telement,\n\t\t\t\tget_options(),\n\t\t\t\tintro,\n\t\t\t\t0,\n\t\t\t\t() => {\n\t\t\t\t\tdispatch_event(element, 'outrostart');\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tdispatch_event(element, 'outroend');\n\t\t\t\t\tfn?.();\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\tstop: () => {\n\t\t\tintro?.abort();\n\t\t\toutro?.abort();\n\t\t}\n\t};\n\n\tvar e = /** @type {Effect & { nodes: EffectNodes }} */ (active_effect);\n\n\t(e.nodes.t ??= []).push(transition);\n\n\t// if this is a local transition, we only want to run it if the parent (branch) effect's\n\t// parent (block) effect is where the state change happened. we can determine that by\n\t// looking at whether the block effect is currently initializing\n\tif (is_intro && should_intro) {\n\t\tvar run = is_global;\n\n\t\tif (!run) {\n\t\t\tvar block = /** @type {Effect | null} */ (e.parent);\n\n\t\t\t// skip over transparent blocks (e.g. snippets, else-if blocks)\n\t\t\twhile (block && (block.f & EFFECT_TRANSPARENT) !== 0) {\n\t\t\t\twhile ((block = block.parent)) {\n\t\t\t\t\tif ((block.f & BLOCK_EFFECT) !== 0) break;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trun = !block || (block.f & REACTION_RAN) !== 0;\n\t\t}\n\n\t\tif (run) {\n\t\t\teffect(() => {\n\t\t\t\tuntrack(() => transition.in());\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * Animates an element, according to the provided configuration\n * @param {Element} element\n * @param {AnimationConfig | ((opts: { direction: 'in' | 'out' }) => AnimationConfig)} options\n * @param {Animation | undefined} counterpart The corresponding intro/outro to this outro/intro\n * @param {number} t2 The target `t` value — `1` for intro, `0` for outro\n * @param {(() => void)} on_begin Called just before beginning the animation\n * @param {(() => void)} on_finish Called after successfully completing the animation\n * @returns {Animation}\n */\nfunction animate(element, options, counterpart, t2, on_begin, on_finish) {\n\tvar is_intro = t2 === 1;\n\n\tif (is_function(options)) {\n\t\t// In the case of a deferred transition (such as `crossfade`), `option` will be\n\t\t// a function rather than an `AnimationConfig`. We need to call this function\n\t\t// once the DOM has been updated...\n\t\t/** @type {Animation} */\n\t\tvar a;\n\t\tvar aborted = false;\n\n\t\tqueue_micro_task(() => {\n\t\t\tif (aborted) return;\n\t\t\tvar o = options({ direction: is_intro ? 'in' : 'out' });\n\t\t\ta = animate(element, o, counterpart, t2, on_begin, on_finish);\n\t\t});\n\n\t\t// ...but we want to do so without using `async`/`await` everywhere, so\n\t\t// we return a facade that allows everything to remain synchronous\n\t\treturn {\n\t\t\tabort: () => {\n\t\t\t\taborted = true;\n\t\t\t\ta?.abort();\n\t\t\t},\n\t\t\tdeactivate: () => a.deactivate(),\n\t\t\treset: () => a.reset(),\n\t\t\tt: () => a.t()\n\t\t};\n\t}\n\n\tcounterpart?.deactivate();\n\n\tif (!options?.duration && !options?.delay) {\n\t\ton_begin();\n\t\ton_finish();\n\n\t\treturn {\n\t\t\tabort: noop,\n\t\t\tdeactivate: noop,\n\t\t\treset: noop,\n\t\t\tt: () => t2\n\t\t};\n\t}\n\n\tconst { delay = 0, css, tick, easing = linear } = options;\n\n\tvar keyframes = [];\n\n\tif (is_intro && counterpart === undefined) {\n\t\tif (tick) {\n\t\t\ttick(0, 1); // TODO put in nested effect, to avoid interleaved reads/writes?\n\t\t}\n\n\t\tif (css) {\n\t\t\tvar styles = css_to_keyframe(css(0, 1));\n\t\t\tkeyframes.push(styles, styles);\n\t\t}\n\t}\n\n\tvar get_t = () => 1 - t2;\n\n\t// create a dummy animation that lasts as long as the delay (but with whatever devtools\n\t// multiplier is in effect). in the common case that it is `0`, we keep it anyway so that\n\t// the CSS keyframes aren't created until the DOM is updated\n\t//\n\t// fill forwards to prevent the element from rendering without styles applied\n\t// see https://github.com/sveltejs/svelte/issues/14732\n\tvar animation = element.animate(keyframes, { duration: delay, fill: 'forwards' });\n\n\tanimation.onfinish = () => {\n\t\t// remove dummy animation from the stack to prevent conflict with main animation\n\t\tanimation.cancel();\n\n\t\ton_begin();\n\n\t\t// for bidirectional transitions, we start from the current position,\n\t\t// rather than doing a full intro/outro\n\t\tvar t1 = counterpart?.t() ?? 1 - t2;\n\t\tcounterpart?.abort();\n\n\t\tvar delta = t2 - t1;\n\t\tvar duration = /** @type {number} */ (options.duration) * Math.abs(delta);\n\t\tvar keyframes = [];\n\n\t\tif (duration > 0) {\n\t\t\t/**\n\t\t\t * Whether or not the CSS includes `overflow: hidden`, in which case we need to\n\t\t\t * add it as an inline style to work around a Safari <18 bug\n\t\t\t * TODO 6.0 remove this, if possible\n\t\t\t */\n\t\t\tvar needs_overflow_hidden = false;\n\n\t\t\tif (css) {\n\t\t\t\tvar n = Math.ceil(duration / (1000 / 60)); // `n` must be an integer, or we risk missing the `t2` value\n\n\t\t\t\tfor (var i = 0; i <= n; i += 1) {\n\t\t\t\t\tvar t = t1 + delta * easing(i / n);\n\t\t\t\t\tvar styles = css_to_keyframe(css(t, 1 - t));\n\t\t\t\t\tkeyframes.push(styles);\n\n\t\t\t\t\tneeds_overflow_hidden ||= styles.overflow === 'hidden';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (needs_overflow_hidden) {\n\t\t\t\t/** @type {HTMLElement} */ (element).style.overflow = 'hidden';\n\t\t\t}\n\n\t\t\tget_t = () => {\n\t\t\t\tvar time = /** @type {number} */ (\n\t\t\t\t\t/** @type {globalThis.Animation} */ (animation).currentTime\n\t\t\t\t);\n\n\t\t\t\treturn t1 + delta * easing(time / duration);\n\t\t\t};\n\n\t\t\tif (tick) {\n\t\t\t\tloop(() => {\n\t\t\t\t\tif (animation.playState !== 'running') return false;\n\n\t\t\t\t\tvar t = get_t();\n\t\t\t\t\ttick(t, 1 - t);\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tanimation = element.animate(keyframes, { duration, fill: 'forwards' });\n\n\t\tanimation.onfinish = () => {\n\t\t\tget_t = () => t2;\n\t\t\ttick?.(t2, 1 - t2);\n\t\t\ton_finish();\n\t\t};\n\t};\n\n\treturn {\n\t\tabort: () => {\n\t\t\tif (animation) {\n\t\t\t\tanimation.cancel();\n\t\t\t\t// This prevents memory leaks in Chromium\n\t\t\t\tanimation.effect = null;\n\t\t\t\t// This prevents onfinish to be launched after cancel(),\n\t\t\t\t// which can happen in some rare cases\n\t\t\t\t// see https://github.com/sveltejs/svelte/issues/13681\n\t\t\t\tanimation.onfinish = noop;\n\t\t\t}\n\t\t},\n\t\tdeactivate: () => {\n\t\t\ton_finish = noop;\n\t\t},\n\t\treset: () => {\n\t\t\tif (t2 === 0) {\n\t\t\t\ttick?.(1, 0);\n\t\t\t}\n\t\t},\n\t\tt: () => get_t()\n\t};\n}\n","/** @import { Effect, EffectNodes, TemplateNode } from '#client' */\nimport { FILENAME, NAMESPACE_SVG } from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { create_element, create_text, get_first_child } from '../operations.js';\nimport { block, teardown } from '../../reactivity/effects.js';\nimport { set_should_intro } from '../../render.js';\nimport { active_effect } from '../../runtime.js';\nimport { component_context, dev_stack } from '../../context.js';\nimport { DEV } from 'esm-env';\nimport { EFFECT_TRANSPARENT, ELEMENT_NODE } from '#client/constants';\nimport { assign_nodes } from '../template.js';\nimport { is_raw_text_element } from '../../../../utils.js';\nimport { BranchManager } from './branches.js';\nimport { set_animation_effect_override } from '../elements/transitions.js';\n\n/**\n * @param {Comment | Element} node\n * @param {() => string} get_tag\n * @param {boolean} is_svg\n * @param {undefined | ((element: Element, anchor: Node | null) => void)} render_fn,\n * @param {undefined | (() => string)} get_namespace\n * @param {undefined | [number, number]} location\n * @returns {void}\n */\nexport function element(node, get_tag, is_svg, render_fn, get_namespace, location) {\n\tlet was_hydrating = hydrating;\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar filename = DEV && location && component_context?.function[FILENAME];\n\n\t/** @type {null | Element} */\n\tvar element = null;\n\n\tif (hydrating && hydrate_node.nodeType === ELEMENT_NODE) {\n\t\telement = /** @type {Element} */ (hydrate_node);\n\t\thydrate_next();\n\t}\n\n\tvar anchor = /** @type {TemplateNode} */ (hydrating ? hydrate_node : node);\n\n\t/**\n\t * We track this so we can set it when changing the element, allowing any\n\t * `animate:` directive to bind itself to the correct block\n\t */\n\tvar parent_effect = /** @type {Effect} */ (active_effect);\n\n\tvar branches = new BranchManager(anchor, false);\n\n\tblock(() => {\n\t\tconst next_tag = get_tag() || null;\n\t\tvar ns = get_namespace\n\t\t\t? get_namespace()\n\t\t\t: is_svg || next_tag === 'svg'\n\t\t\t\t? NAMESPACE_SVG\n\t\t\t\t: undefined;\n\n\t\tif (next_tag === null) {\n\t\t\tbranches.ensure(null, null);\n\t\t\tset_should_intro(true);\n\t\t\treturn;\n\t\t}\n\n\t\tbranches.ensure(next_tag, (anchor) => {\n\t\t\tif (next_tag) {\n\t\t\t\telement = hydrating ? /** @type {Element} */ (element) : create_element(next_tag, ns);\n\n\t\t\t\tif (DEV && location) {\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\telement.__svelte_meta = {\n\t\t\t\t\t\tparent: dev_stack,\n\t\t\t\t\t\tloc: {\n\t\t\t\t\t\t\tfile: filename,\n\t\t\t\t\t\t\tline: location[0],\n\t\t\t\t\t\t\tcolumn: location[1]\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tassign_nodes(element, element);\n\n\t\t\t\tif (render_fn) {\n\t\t\t\t\tif (hydrating && is_raw_text_element(next_tag)) {\n\t\t\t\t\t\t// prevent hydration glitches\n\t\t\t\t\t\telement.append(document.createComment(''));\n\t\t\t\t\t}\n\n\t\t\t\t\t// If hydrating, use the existing ssr comment as the anchor so that the\n\t\t\t\t\t// inner open and close methods can pick up the existing nodes correctly\n\t\t\t\t\tvar child_anchor = hydrating\n\t\t\t\t\t\t? get_first_child(element)\n\t\t\t\t\t\t: element.appendChild(create_text());\n\n\t\t\t\t\tif (hydrating) {\n\t\t\t\t\t\tif (child_anchor === null) {\n\t\t\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tset_hydrate_node(child_anchor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tset_animation_effect_override(parent_effect);\n\n\t\t\t\t\t// `child_anchor` is undefined if this is a void element, but we still\n\t\t\t\t\t// need to call `render_fn` in order to run actions etc. If the element\n\t\t\t\t\t// contains children, it's a user error (which is warned on elsewhere)\n\t\t\t\t\t// and the DOM will be silently discarded\n\t\t\t\t\trender_fn(element, child_anchor);\n\n\t\t\t\t\tset_animation_effect_override(null);\n\t\t\t\t}\n\n\t\t\t\t// we do this after calling `render_fn` so that child effects don't override `nodes.end`\n\t\t\t\t/** @type {Effect & { nodes: EffectNodes }} */ (active_effect).nodes.end = element;\n\n\t\t\t\tanchor.before(element);\n\t\t\t}\n\n\t\t\tif (hydrating) {\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t}\n\t\t});\n\n\t\t// revert to the default state after the effect has been created\n\t\tset_should_intro(true);\n\n\t\treturn () => {\n\t\t\tif (next_tag) {\n\t\t\t\t// if we're in this callback because we're re-running the effect,\n\t\t\t\t// disable intros (unless no element is currently displayed)\n\t\t\t\tset_should_intro(false);\n\t\t\t}\n\t\t};\n\t}, EFFECT_TRANSPARENT);\n\n\tteardown(() => {\n\t\tset_should_intro(true);\n\t});\n\n\tif (was_hydrating) {\n\t\tset_hydrating(true);\n\t\tset_hydrate_node(anchor);\n\t}\n}\n","/** @import { TemplateNode } from '#client' */\nimport { hydrate_node, hydrating, set_hydrate_node, set_hydrating } from '../hydration.js';\nimport { create_text, get_first_child, get_next_sibling } from '../operations.js';\nimport { block, branch } from '../../reactivity/effects.js';\nimport { COMMENT_NODE, HEAD_EFFECT } from '#client/constants';\n\n/**\n * @param {string} hash\n * @param {(anchor: Node) => void} render_fn\n * @returns {void}\n */\nexport function head(hash, render_fn) {\n\t// The head function may be called after the first hydration pass and ssr comment nodes may still be present,\n\t// therefore we need to skip that when we detect that we're not in hydration mode.\n\tlet previous_hydrate_node = null;\n\tlet was_hydrating = hydrating;\n\n\t/** @type {Comment | Text} */\n\tvar anchor;\n\n\tif (hydrating) {\n\t\tprevious_hydrate_node = hydrate_node;\n\n\t\tvar head_anchor = get_first_child(document.head);\n\n\t\t// There might be multiple head blocks in our app, and they could have been\n\t\t// rendered in an arbitrary order — find one corresponding to this component\n\t\twhile (\n\t\t\thead_anchor !== null &&\n\t\t\t(head_anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */ (head_anchor).data !== hash)\n\t\t) {\n\t\t\thead_anchor = get_next_sibling(head_anchor);\n\t\t}\n\n\t\t// If we can't find an opening hydration marker, skip hydration (this can happen\n\t\t// if a framework rendered body but not head content)\n\t\tif (head_anchor === null) {\n\t\t\tset_hydrating(false);\n\t\t} else {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_next_sibling(head_anchor));\n\t\t\thead_anchor.remove(); // in case this component is repeated\n\n\t\t\tset_hydrate_node(start);\n\t\t}\n\t}\n\n\tif (!hydrating) {\n\t\tanchor = document.head.appendChild(create_text());\n\t}\n\n\ttry {\n\t\tblock(() => {\n\t\t\tvar e = branch(() => render_fn(anchor));\n\t\t\te.f |= HEAD_EFFECT;\n\t\t});\n\t} finally {\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t\tset_hydrate_node(/** @type {TemplateNode} */ (previous_hydrate_node));\n\t\t}\n\t}\n}\n","/** @import { ActionPayload } from '#client' */\nimport { effect, render_effect } from '../../reactivity/effects.js';\nimport { safe_not_equal } from '../../reactivity/equality.js';\nimport { deep_read_state, untrack } from '../../runtime.js';\n\n/**\n * @template P\n * @param {Element} dom\n * @param {(dom: Element, value?: P) => ActionPayload<P>} action\n * @param {() => P} [get_value]\n * @returns {void}\n */\nexport function action(dom, action, get_value) {\n\teffect(() => {\n\t\tvar payload = untrack(() => action(dom, get_value?.()) || {});\n\n\t\tif (get_value && payload?.update) {\n\t\t\tvar inited = false;\n\t\t\t/** @type {P} */\n\t\t\tvar prev = /** @type {any} */ ({}); // initialize with something so it's never equal on first run\n\n\t\t\trender_effect(() => {\n\t\t\t\tvar value = get_value();\n\n\t\t\t\t// Action's update method is coarse-grained, i.e. when anything in the passed value changes, update.\n\t\t\t\t// This works in legacy mode because of mutable_source being updated as a whole, but when using $state\n\t\t\t\t// together with actions and mutation, it wouldn't notice the change without a deep read.\n\t\t\t\tdeep_read_state(value);\n\n\t\t\t\tif (inited && safe_not_equal(prev, value)) {\n\t\t\t\t\tprev = value;\n\t\t\t\t\t/** @type {Function} */ (payload.update)(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tinited = true;\n\t\t}\n\n\t\tif (payload?.destroy) {\n\t\t\treturn () => /** @type {Function} */ (payload.destroy)();\n\t\t}\n\t});\n}\n","/** @import { Effect } from '#client' */\nimport { branch, effect, destroy_effect, managed } from '../../reactivity/effects.js';\n\n// TODO in 6.0 or 7.0, when we remove legacy mode, we can simplify this by\n// getting rid of the block/branch stuff and just letting the effect rip.\n// see https://github.com/sveltejs/svelte/pull/15962\n\n/**\n * @param {Element} node\n * @param {() => (node: Element) => void} get_fn\n */\nexport function attach(node, get_fn) {\n\t/** @type {false | undefined | ((node: Element) => void)} */\n\tvar fn = undefined;\n\n\t/** @type {Effect | null} */\n\tvar e;\n\n\tmanaged(() => {\n\t\tif (fn !== (fn = get_fn())) {\n\t\t\tif (e) {\n\t\t\t\tdestroy_effect(e);\n\t\t\t\te = null;\n\t\t\t}\n\n\t\t\tif (fn) {\n\t\t\t\te = branch(() => {\n\t\t\t\t\teffect(() => /** @type {(node: Element) => void} */ (fn)(node));\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { escape_html } from '../../escaping.js';\nimport { clsx as _clsx } from 'clsx';\nimport { has_own_property } from './utils.js';\n\n/**\n * `<div translate={false}>` should be rendered as `<div translate=\"no\">` and _not_\n * `<div translate=\"false\">`, which is equivalent to `<div translate=\"yes\">`. There\n * may be other odd cases that need to be added to this list in future\n * @type {Record<string, Map<any, string>>}\n */\nconst replacements = {\n\ttranslate: new Map([\n\t\t[true, 'yes'],\n\t\t[false, 'no']\n\t])\n};\n\n/**\n * @template V\n * @param {string} name\n * @param {V} value\n * @param {boolean} [is_boolean]\n * @returns {string}\n */\nexport function attr(name, value, is_boolean = false) {\n\t// attribute hidden for values other than \"until-found\" behaves like a boolean attribute\n\tif (name === 'hidden' && value !== 'until-found') {\n\t\tis_boolean = true;\n\t}\n\tif (value == null || (!value && is_boolean)) return '';\n\tconst normalized =\n\t\t(has_own_property.call(replacements, name) && replacements[name].get(value)) || value;\n\tconst assignment = is_boolean ? `=\"\"` : `=\"${escape_html(normalized, true)}\"`;\n\treturn ` ${name}${assignment}`;\n}\n\n/**\n * Small wrapper around clsx to preserve Svelte's (weird) handling of falsy values.\n * TODO Svelte 6 revisit this, and likely turn all falsy values into the empty string (what clsx also does)\n * @param  {any} value\n */\nexport function clsx(value) {\n\tif (typeof value === 'object') {\n\t\treturn _clsx(value);\n\t} else {\n\t\treturn value ?? '';\n\t}\n}\n\nconst whitespace = [...' \\t\\n\\r\\f\\u00a0\\u000b\\ufeff'];\n\n/**\n * @param {any} value\n * @param {string | null} [hash]\n * @param {Record<string, boolean>} [directives]\n * @returns {string | null}\n */\nexport function to_class(value, hash, directives) {\n\tvar classname = value == null ? '' : '' + value;\n\n\tif (hash) {\n\t\tclassname = classname ? classname + ' ' + hash : hash;\n\t}\n\n\tif (directives) {\n\t\tfor (var key of Object.keys(directives)) {\n\t\t\tif (directives[key]) {\n\t\t\t\tclassname = classname ? classname + ' ' + key : key;\n\t\t\t} else if (classname.length) {\n\t\t\t\tvar len = key.length;\n\t\t\t\tvar a = 0;\n\n\t\t\t\twhile ((a = classname.indexOf(key, a)) >= 0) {\n\t\t\t\t\tvar b = a + len;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(a === 0 || whitespace.includes(classname[a - 1])) &&\n\t\t\t\t\t\t(b === classname.length || whitespace.includes(classname[b]))\n\t\t\t\t\t) {\n\t\t\t\t\t\tclassname = (a === 0 ? '' : classname.substring(0, a)) + classname.substring(b + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta = b;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn classname === '' ? null : classname;\n}\n\n/**\n *\n * @param {Record<string,any>} styles\n * @param {boolean} important\n */\nfunction append_styles(styles, important = false) {\n\tvar separator = important ? ' !important;' : ';';\n\tvar css = '';\n\n\tfor (var key of Object.keys(styles)) {\n\t\tvar value = styles[key];\n\t\tif (value != null && value !== '') {\n\t\t\tcss += ' ' + key + ': ' + value + separator;\n\t\t}\n\t}\n\n\treturn css;\n}\n\n/**\n * @param {string} name\n * @returns {string}\n */\nfunction to_css_name(name) {\n\tif (name[0] !== '-' || name[1] !== '-') {\n\t\treturn name.toLowerCase();\n\t}\n\treturn name;\n}\n\n/**\n * @param {any} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [styles]\n * @returns {string | null}\n */\nexport function to_style(value, styles) {\n\tif (styles) {\n\t\tvar new_style = '';\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar normal_styles;\n\n\t\t/** @type {Record<string,any> | undefined} */\n\t\tvar important_styles;\n\n\t\tif (Array.isArray(styles)) {\n\t\t\tnormal_styles = styles[0];\n\t\t\timportant_styles = styles[1];\n\t\t} else {\n\t\t\tnormal_styles = styles;\n\t\t}\n\n\t\tif (value) {\n\t\t\tvalue = String(value)\n\t\t\t\t.replaceAll(/\\s*\\/\\*.*?\\*\\/\\s*/g, '')\n\t\t\t\t.trim();\n\n\t\t\t/** @type {boolean | '\"' | \"'\"} */\n\t\t\tvar in_str = false;\n\t\t\tvar in_apo = 0;\n\t\t\tvar in_comment = false;\n\n\t\t\tvar reserved_names = [];\n\n\t\t\tif (normal_styles) {\n\t\t\t\treserved_names.push(...Object.keys(normal_styles).map(to_css_name));\n\t\t\t}\n\t\t\tif (important_styles) {\n\t\t\t\treserved_names.push(...Object.keys(important_styles).map(to_css_name));\n\t\t\t}\n\n\t\t\tvar start_index = 0;\n\t\t\tvar name_index = -1;\n\n\t\t\tconst len = value.length;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tvar c = value[i];\n\n\t\t\t\tif (in_comment) {\n\t\t\t\t\tif (c === '/' && value[i - 1] === '*') {\n\t\t\t\t\t\tin_comment = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (in_str) {\n\t\t\t\t\tif (in_str === c) {\n\t\t\t\t\t\tin_str = false;\n\t\t\t\t\t}\n\t\t\t\t} else if (c === '/' && value[i + 1] === '*') {\n\t\t\t\t\tin_comment = true;\n\t\t\t\t} else if (c === '\"' || c === \"'\") {\n\t\t\t\t\tin_str = c;\n\t\t\t\t} else if (c === '(') {\n\t\t\t\t\tin_apo++;\n\t\t\t\t} else if (c === ')') {\n\t\t\t\t\tin_apo--;\n\t\t\t\t}\n\n\t\t\t\tif (!in_comment && in_str === false && in_apo === 0) {\n\t\t\t\t\tif (c === ':' && name_index === -1) {\n\t\t\t\t\t\tname_index = i;\n\t\t\t\t\t} else if (c === ';' || i === len - 1) {\n\t\t\t\t\t\tif (name_index !== -1) {\n\t\t\t\t\t\t\tvar name = to_css_name(value.substring(start_index, name_index).trim());\n\n\t\t\t\t\t\t\tif (!reserved_names.includes(name)) {\n\t\t\t\t\t\t\t\tif (c !== ';') {\n\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar property = value.substring(start_index, i).trim();\n\t\t\t\t\t\t\t\tnew_style += ' ' + property + ';';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart_index = i + 1;\n\t\t\t\t\t\tname_index = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (normal_styles) {\n\t\t\tnew_style += append_styles(normal_styles);\n\t\t}\n\n\t\tif (important_styles) {\n\t\t\tnew_style += append_styles(important_styles, true);\n\t\t}\n\n\t\tnew_style = new_style.trim();\n\t\treturn new_style === '' ? null : new_style;\n\t}\n\n\treturn value == null ? null : String(value);\n}\n","import { to_class } from '../../../shared/attributes.js';\nimport { CLASS_CACHE } from '../../constants.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element} dom\n * @param {boolean | number} is_html\n * @param {string | null} value\n * @param {string} [hash]\n * @param {Record<string, any>} [prev_classes]\n * @param {Record<string, any>} [next_classes]\n * @returns {Record<string, boolean> | undefined}\n */\nexport function set_class(dom, is_html, value, hash, prev_classes, next_classes) {\n\tvar prev = /** @type {any} */ (dom)[CLASS_CACHE];\n\n\tif (\n\t\thydrating ||\n\t\tprev !== value ||\n\t\tprev === undefined // for edge case of `class={undefined}`\n\t) {\n\t\tvar next_class_name = to_class(value, hash, next_classes);\n\n\t\tif (!hydrating || next_class_name !== dom.getAttribute('class')) {\n\t\t\t// Removing the attribute when the value is only an empty string causes\n\t\t\t// performance issues vs simply making the className an empty string. So\n\t\t\t// we should only remove the class if the value is nullish\n\t\t\t// and there no hash/directives :\n\t\t\tif (next_class_name == null) {\n\t\t\t\tdom.removeAttribute('class');\n\t\t\t} else if (is_html) {\n\t\t\t\tdom.className = next_class_name;\n\t\t\t} else {\n\t\t\t\tdom.setAttribute('class', next_class_name);\n\t\t\t}\n\t\t}\n\n\t\t/** @type {any} */ (dom)[CLASS_CACHE] = value;\n\t} else if (next_classes && prev_classes !== next_classes) {\n\t\tfor (var key in next_classes) {\n\t\t\tvar is_present = !!next_classes[key];\n\n\t\t\tif (prev_classes == null || is_present !== !!prev_classes[key]) {\n\t\t\t\tdom.classList.toggle(key, is_present);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn next_classes;\n}\n","import { to_style } from '../../../shared/attributes.js';\nimport { STYLE_CACHE } from '../../constants.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {Record<string, any>} prev\n * @param {Record<string, any>} next\n * @param {string} [priority]\n */\nfunction update_styles(dom, prev = {}, next, priority) {\n\tfor (var key in next) {\n\t\tvar value = next[key];\n\n\t\tif (prev[key] !== value) {\n\t\t\tif (next[key] == null) {\n\t\t\t\tdom.style.removeProperty(key);\n\t\t\t} else {\n\t\t\t\tdom.style.setProperty(key, value, priority);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {string | null} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [prev_styles]\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]\n */\nexport function set_style(dom, value, prev_styles, next_styles) {\n\tvar prev = /** @type {any} */ (dom)[STYLE_CACHE];\n\n\tif (hydrating || prev !== value) {\n\t\tvar next_style_attr = to_style(value, next_styles);\n\n\t\tif (!hydrating || next_style_attr !== dom.getAttribute('style')) {\n\t\t\tif (next_style_attr == null) {\n\t\t\t\tdom.removeAttribute('style');\n\t\t\t} else {\n\t\t\t\tdom.style.cssText = next_style_attr;\n\t\t\t}\n\t\t}\n\n\t\t/** @type {any} */ (dom)[STYLE_CACHE] = value;\n\t} else if (next_styles) {\n\t\tif (Array.isArray(next_styles)) {\n\t\t\tupdate_styles(dom, prev_styles?.[0], next_styles[0]);\n\t\t\tupdate_styles(dom, prev_styles?.[1], next_styles[1], 'important');\n\t\t} else {\n\t\t\tupdate_styles(dom, prev_styles, next_styles);\n\t\t}\n\t}\n\n\treturn next_styles;\n}\n","import { effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport { is } from '../../../proxy.js';\nimport { is_array } from '../../../../shared/utils.js';\nimport * as w from '../../../warnings.js';\nimport { Batch, current_batch, previous_batch } from '../../../reactivity/batch.js';\nimport { async_mode_flag } from '../../../../flags/index.js';\n\n/**\n * Selects the correct option(s) (depending on whether this is a multiple select)\n * @template V\n * @param {HTMLSelectElement} select\n * @param {V} value\n * @param {boolean} mounting\n */\nexport function select_option(select, value, mounting = false) {\n\tif (select.multiple) {\n\t\t// If value is null or undefined, keep the selection as is\n\t\tif (value == undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If not an array, warn and keep the selection as is\n\t\tif (!is_array(value)) {\n\t\t\treturn w.select_multiple_invalid_value();\n\t\t}\n\n\t\t// Otherwise, update the selection\n\t\tfor (var option of select.options) {\n\t\t\toption.selected = value.includes(get_option_value(option));\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (option of select.options) {\n\t\tvar option_value = get_option_value(option);\n\t\tif (is(option_value, value)) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (!mounting || value !== undefined) {\n\t\tselect.selectedIndex = -1; // no option should be selected\n\t}\n}\n\n/**\n * Selects the correct option(s) if `value` is given,\n * and then sets up a mutation observer to sync the\n * current selection to the dom when it changes. Such\n * changes could for example occur when options are\n * inside an `#each` block.\n * @param {HTMLSelectElement} select\n */\nexport function init_select(select) {\n\tvar observer = new MutationObserver(() => {\n\t\t// @ts-ignore\n\t\tselect_option(select, select.__value);\n\t\t// Deliberately don't update the potential binding value,\n\t\t// the model should be preserved unless explicitly changed\n\t});\n\n\tobserver.observe(select, {\n\t\t// Listen to option element changes\n\t\tchildList: true,\n\t\tsubtree: true, // because of <optgroup>\n\t\t// Listen to option element value attribute changes\n\t\t// (doesn't get notified of select value changes,\n\t\t// because that property is not reflected as an attribute)\n\t\tattributes: true,\n\t\tattributeFilter: ['value']\n\t});\n\n\tteardown(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\n/**\n * @param {HTMLSelectElement} select\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_select_value(select, get, set = get) {\n\tvar batches = new WeakSet();\n\tvar mounting = true;\n\n\tlisten_to_event_and_reset_event(select, 'change', (is_reset) => {\n\t\tvar query = is_reset ? '[selected]' : ':checked';\n\t\t/** @type {unknown} */\n\t\tvar value;\n\n\t\tif (select.multiple) {\n\t\t\tvalue = [].map.call(select.querySelectorAll(query), get_option_value);\n\t\t} else {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option =\n\t\t\t\tselect.querySelector(query) ??\n\t\t\t\t// will fall back to first non-disabled option if no option is selected\n\t\t\t\tselect.querySelector('option:not([disabled])');\n\t\t\tvalue = selected_option && get_option_value(selected_option);\n\t\t}\n\n\t\tset(value);\n\n\t\t// @ts-ignore\n\t\tselect.__value = value;\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t});\n\n\t// Needs to be an effect, not a render_effect, so that in case of each loops the logic runs after the each block has updated\n\teffect(() => {\n\t\tvar value = get();\n\n\t\tif (select === document.activeElement) {\n\t\t\t// In sync mode render effects are executed during tree traversal -> needs current_batch\n\t\t\t// In async mode render effects are flushed once batch resolved, at which point current_batch is null -> needs previous_batch\n\t\t\tvar batch = /** @type {Batch} */ (async_mode_flag ? previous_batch : current_batch);\n\n\t\t\t// Don't update the <select> if it is focused. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the select:\n\t\t\t//\n\t\t\t// <select bind:value={selected}>...</select>\n\t\t\t// <p>{await find(selected)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tselect_option(select, value, mounting);\n\n\t\t// Mounting and value undefined -> take selection from dom\n\t\tif (mounting && value === undefined) {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option = select.querySelector(':checked');\n\t\t\tif (selected_option !== null) {\n\t\t\t\tvalue = get_option_value(selected_option);\n\t\t\t\tset(value);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-ignore\n\t\tselect.__value = value;\n\t\tmounting = false;\n\t});\n\n\tinit_select(select);\n}\n\n/** @param {HTMLOptionElement} option */\nfunction get_option_value(option) {\n\t// __value only exists if the <option> has a value attribute\n\tif ('__value' in option) {\n\t\treturn option.__value;\n\t} else {\n\t\treturn option.value;\n\t}\n}\n","/** @import { Blocker, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport { hydrating, set_hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate, delegated, event, event_symbol } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport {\n\tATTRIBUTES_CACHE,\n\tFORM_RESET_HANDLER,\n\tIS_XHTML,\n\tLOADING_ATTR_SYMBOL\n} from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { is_capture_event, can_delegate_event, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { attach } from './attachments.js';\nimport { clsx } from '../../../shared/attributes.js';\nimport { set_class } from './class.js';\nimport { set_style } from './style.js';\nimport { ATTACHMENT_KEY, NAMESPACE_HTML, UNINITIALIZED } from '../../../../constants.js';\nimport { branch, destroy_effect, effect, managed } from '../../reactivity/effects.js';\nimport { init_select, select_option } from './bindings/select.js';\nimport { flatten } from '../../reactivity/async.js';\n\nexport const CLASS = Symbol('class');\nexport const STYLE = Symbol('style');\n\nconst IS_CUSTOM_ELEMENT = Symbol('is custom element');\nconst IS_HTML = Symbol('is html');\n\nconst LINK_TAG = IS_XHTML ? 'link' : 'LINK';\nconst INPUT_TAG = IS_XHTML ? 'input' : 'INPUT';\nconst OPTION_TAG = IS_XHTML ? 'option' : 'OPTION';\nconst SELECT_TAG = IS_XHTML ? 'select' : 'SELECT';\nconst PROGRESS_TAG = IS_XHTML ? 'progress' : 'PROGRESS';\n\n/**\n * The value/checked attribute in the template actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLInputElement} input\n * @returns {void}\n */\nexport function remove_input_defaults(input) {\n\tif (!hydrating) return;\n\n\tvar already_removed = false;\n\n\t// We try and remove the default attributes later, rather than sync during hydration.\n\t// Doing it sync during hydration has a negative impact on performance, but deferring the\n\t// work in an idle task alleviates this greatly. If a form reset event comes in before\n\t// the idle callback, then we ensure the input defaults are cleared just before.\n\tvar remove_defaults = () => {\n\t\tif (already_removed) return;\n\t\talready_removed = true;\n\n\t\t// Remove the attributes but preserve the values\n\t\tif (input.hasAttribute('value')) {\n\t\t\tvar value = input.value;\n\t\t\tset_attribute(input, 'value', null);\n\t\t\tinput.value = value;\n\t\t}\n\n\t\tif (input.hasAttribute('checked')) {\n\t\t\tvar checked = input.checked;\n\t\t\tset_attribute(input, 'checked', null);\n\t\t\tinput.checked = checked;\n\t\t}\n\t};\n\n\t/** @type {any} */ (input)[FORM_RESET_HANDLER] = remove_defaults;\n\tqueue_micro_task(remove_defaults);\n\tadd_form_reset_listener();\n}\n\n/**\n * @param {Element} element\n * @param {any} value\n */\nexport function set_value(element, value) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.value ===\n\t\t\t(attributes.value =\n\t\t\t\t// treat null and undefined the same for the initial value\n\t\t\t\tvalue ?? undefined) ||\n\t\t// @ts-expect-error\n\t\t// `progress` elements always need their value set when it's `0`\n\t\t(element.value === value && (value !== 0 || element.nodeName !== PROGRESS_TAG))\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.value = value ?? '';\n}\n\n/**\n * @param {Element} element\n * @param {boolean} checked\n */\nexport function set_checked(element, checked) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.checked ===\n\t\t(attributes.checked =\n\t\t\t// treat null and undefined the same for the initial value\n\t\t\tchecked ?? undefined)\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.checked = checked;\n}\n\n/**\n * Sets the `selected` attribute on an `option` element.\n * Not set through the property because that doesn't reflect to the DOM,\n * which means it wouldn't be taken into account when a form is reset.\n * @param {HTMLOptionElement} element\n * @param {boolean} selected\n */\nexport function set_selected(element, selected) {\n\tif (selected) {\n\t\t// The selected option could've changed via user selection, and\n\t\t// setting the value without this check would set it back.\n\t\tif (!element.hasAttribute('selected')) {\n\t\t\telement.setAttribute('selected', '');\n\t\t}\n\t} else {\n\t\telement.removeAttribute('selected');\n\t}\n}\n\n/**\n * Applies the default checked property without influencing the current checked property.\n * @param {HTMLInputElement} element\n * @param {boolean} checked\n */\nexport function set_default_checked(element, checked) {\n\tconst existing_value = element.checked;\n\telement.defaultChecked = checked;\n\telement.checked = existing_value;\n}\n\n/**\n * Applies the default value property without influencing the current value property.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * @param {string} value\n */\nexport function set_default_value(element, value) {\n\tconst existing_value = element.value;\n\telement.defaultValue = value;\n\telement.value = existing_value;\n}\n\n/**\n * @param {Element} element\n * @param {string} attribute\n * @param {string | null} value\n * @param {boolean} [skip_warning]\n */\nexport function set_attribute(element, attribute, value, skip_warning) {\n\tvar attributes = get_attributes(element);\n\n\tif (hydrating) {\n\t\tattributes[attribute] = element.getAttribute(attribute);\n\n\t\tif (\n\t\t\tattribute === 'src' ||\n\t\t\tattribute === 'srcset' ||\n\t\t\t(attribute === 'href' && element.nodeName === LINK_TAG)\n\t\t) {\n\t\t\tif (!skip_warning) {\n\t\t\t\tcheck_src_in_dev_hydration(element, attribute, value ?? '');\n\t\t\t}\n\n\t\t\t// If we reset these attributes, they would result in another network request, which we want to avoid.\n\t\t\t// We assume they are the same between client and server as checking if they are equal is expensive\n\t\t\t// (we can't just compare the strings as they can be different between client and server but result in the\n\t\t\t// same url, so we would need to create hidden anchor elements to compare them)\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (attributes[attribute] === (attributes[attribute] = value)) return;\n\n\tif (attribute === 'loading') {\n\t\t// @ts-expect-error\n\t\telement[LOADING_ATTR_SYMBOL] = value;\n\t}\n\n\tif (value == null) {\n\t\telement.removeAttribute(attribute);\n\t} else if (typeof value !== 'string' && get_setters(element).includes(attribute)) {\n\t\t// @ts-ignore\n\t\telement[attribute] = value;\n\t} else {\n\t\telement.setAttribute(attribute, value);\n\t}\n}\n\n/**\n * @param {Element} dom\n * @param {string} attribute\n * @param {string} value\n */\nexport function set_xlink_attribute(dom, attribute, value) {\n\tdom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\n/**\n * @param {HTMLElement} node\n * @param {string} prop\n * @param {any} value\n */\nexport function set_custom_element_data(node, prop, value) {\n\t// We need to ensure that setting custom element props, which can\n\t// invoke lifecycle methods on other custom elements, does not also\n\t// associate those lifecycle methods with the current active reaction\n\t// or effect\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet was_hydrating = hydrating;\n\tif (hydrating) {\n\t\tset_hydrating(false);\n\t}\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\tif (\n\t\t\t// `style` should use `set_attribute` rather than the setter\n\t\t\tprop !== 'style' &&\n\t\t\t// Don't compute setters for custom elements while they aren't registered yet,\n\t\t\t// because during their upgrade/instantiation they might add more setters.\n\t\t\t// Instead, fall back to a simple \"an object, then set as property\" heuristic.\n\t\t\t(setters_cache.has(node.getAttribute('is') || node.nodeName) ||\n\t\t\t// customElements may not be available in browser extension contexts\n\t\t\t!customElements ||\n\t\t\tcustomElements.get(node.getAttribute('is') || node.nodeName.toLowerCase())\n\t\t\t\t? get_setters(node).includes(prop)\n\t\t\t\t: value && typeof value === 'object')\n\t\t) {\n\t\t\t// @ts-expect-error\n\t\t\tnode[prop] = value;\n\t\t} else {\n\t\t\t// We did getters etc checks already, stringify before passing to set_attribute\n\t\t\t// to ensure it doesn't invoke the same logic again, and potentially populating\n\t\t\t// the setters cache too early.\n\t\t\tset_attribute(node, prop, value == null ? value : String(value));\n\t\t}\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t}\n\t}\n}\n\n/**\n * Spreads attributes onto a DOM element, taking into account the currently set attributes\n * @param {Element & ElementCSSInlineStyle} element\n * @param {Record<string | symbol, any> | undefined} prev\n * @param {Record<string | symbol, any>} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n * @returns {Record<string, any>}\n */\nfunction set_attributes(\n\telement,\n\tprev,\n\tnext,\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tif (hydrating && should_remove_defaults && element.nodeName === INPUT_TAG) {\n\t\tvar input = /** @type {HTMLInputElement} */ (element);\n\t\tvar attribute = input.type === 'checkbox' ? 'defaultChecked' : 'defaultValue';\n\n\t\tif (!(attribute in next)) {\n\t\t\tremove_input_defaults(input);\n\t\t}\n\t}\n\n\tvar attributes = get_attributes(element);\n\n\tvar is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n\tvar preserve_attribute_case = !attributes[IS_HTML];\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet is_hydrating_custom_element = hydrating && is_custom_element;\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(false);\n\t}\n\n\tvar current = prev || {};\n\tvar is_option_element = element.nodeName === OPTION_TAG;\n\n\tfor (var key in prev) {\n\t\tif (!(key in next)) {\n\t\t\tnext[key] = null;\n\t\t}\n\t}\n\n\tif (next.class) {\n\t\tnext.class = clsx(next.class);\n\t} else if (css_hash || next[CLASS]) {\n\t\tnext.class = null; /* force call to set_class() */\n\t}\n\n\tif (next[STYLE]) {\n\t\tnext.style ??= null; /* force call to set_style() */\n\t}\n\n\tvar setters = get_setters(element);\n\n\t// since key is captured we use const\n\tfor (const key in next) {\n\t\t// let instead of var because referenced in a closure\n\t\tlet value = next[key];\n\n\t\t// Up here because we want to do this for the initial value, too, even if it's undefined,\n\t\t// and this wouldn't be reached in case of undefined because of the equality check below\n\t\tif (is_option_element && key === 'value' && value == null) {\n\t\t\t// The <option> element is a special case because removing the value attribute means\n\t\t\t// the value is set to the text content of the option element, and setting the value\n\t\t\t// to null or undefined means the value is set to the string \"null\" or \"undefined\".\n\t\t\t// To align with how we handle this case in non-spread-scenarios, this logic is needed.\n\t\t\t// There's a super-edge-case bug here that is left in in favor of smaller code size:\n\t\t\t// Because of the \"set missing props to null\" logic above, we can't differentiate\n\t\t\t// between a missing value and an explicitly set value of null or undefined. That means\n\t\t\t// that once set, the value attribute of an <option> element can't be removed. This is\n\t\t\t// a very rare edge case, and removing the attribute altogether isn't possible either\n\t\t\t// for the <option value={undefined}> case, so we're not losing any functionality here.\n\t\t\t// @ts-ignore\n\t\t\telement.value = element.__value = '';\n\t\t\tcurrent[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'class') {\n\t\t\tvar is_html = element.namespaceURI === 'http://www.w3.org/1999/xhtml';\n\t\t\tset_class(element, is_html, value, css_hash, prev?.[CLASS], next[CLASS]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[CLASS] = next[CLASS];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'style') {\n\t\t\tset_style(element, value, prev?.[STYLE], next[STYLE]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[STYLE] = next[STYLE];\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar prev_value = current[key];\n\n\t\t// Skip if value is unchanged, unless it's `undefined` and the element still has the attribute\n\t\tif (value === prev_value && !(value === undefined && element.hasAttribute(key))) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrent[key] = value;\n\n\t\tvar prefix = key[0] + key[1]; // this is faster than key.slice(0, 2)\n\t\tif (prefix === '$$') continue;\n\n\t\tif (prefix === 'on') {\n\t\t\t/** @type {{ capture?: true }} */\n\t\t\tconst opts = {};\n\t\t\tconst event_handle_key = '$$' + key;\n\t\t\tlet event_name = key.slice(2);\n\t\t\tvar is_delegated = can_delegate_event(event_name);\n\n\t\t\tif (is_capture_event(event_name)) {\n\t\t\t\tevent_name = event_name.slice(0, -7);\n\t\t\t\topts.capture = true;\n\t\t\t}\n\n\t\t\tif (!is_delegated && prev_value) {\n\t\t\t\t// Listening to same event but different handler -> our handle function below takes care of this\n\t\t\t\t// If we were to remove and add listeners in this case, it could happen that the event is \"swallowed\"\n\t\t\t\t// (the browser seems to not know yet that a new one exists now) and doesn't reach the handler\n\t\t\t\t// https://github.com/sveltejs/svelte/issues/11903\n\t\t\t\tif (value != null) continue;\n\n\t\t\t\telement.removeEventListener(event_name, current[event_handle_key], opts);\n\t\t\t\tcurrent[event_handle_key] = null;\n\t\t\t}\n\n\t\t\tif (is_delegated) {\n\t\t\t\tdelegated(event_name, element, value);\n\t\t\t\tdelegate([event_name]);\n\t\t\t} else if (value != null) {\n\t\t\t\t/**\n\t\t\t\t * @this {any}\n\t\t\t\t * @param {Event} evt\n\t\t\t\t */\n\t\t\t\tfunction handle(evt) {\n\t\t\t\t\tcurrent[key].call(this, evt);\n\t\t\t\t}\n\n\t\t\t\tcurrent[event_handle_key] = create_event(event_name, element, handle, opts);\n\t\t\t}\n\t\t} else if (key === 'style') {\n\t\t\t// avoid using the setter\n\t\t\tset_attribute(element, key, value);\n\t\t} else if (key === 'autofocus') {\n\t\t\tautofocus(/** @type {HTMLElement} */ (element), Boolean(value));\n\t\t} else if (!is_custom_element && (key === '__value' || (key === 'value' && value != null))) {\n\t\t\t// @ts-ignore We're not running this for custom elements because __value is actually\n\t\t\t// how Lit stores the current value on the element, and messing with that would break things.\n\t\t\telement.value = element.__value = value;\n\t\t} else if (key === 'selected' && is_option_element) {\n\t\t\tset_selected(/** @type {HTMLOptionElement} */ (element), value);\n\t\t} else {\n\t\t\tvar name = key;\n\t\t\tif (!preserve_attribute_case) {\n\t\t\t\tname = normalize_attribute(name);\n\t\t\t}\n\n\t\t\tvar is_default = name === 'defaultValue' || name === 'defaultChecked';\n\n\t\t\tif (value == null && !is_custom_element && !is_default) {\n\t\t\t\tattributes[key] = null;\n\n\t\t\t\tif (name === 'value' || name === 'checked') {\n\t\t\t\t\t// removing value/checked also removes defaultValue/defaultChecked — preserve\n\t\t\t\t\tlet input = /** @type {HTMLInputElement} */ (element);\n\t\t\t\t\tconst use_default = prev === undefined;\n\t\t\t\t\tif (name === 'value') {\n\t\t\t\t\t\tlet previous = input.defaultValue;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultValue = previous;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tinput.value = input.__value = use_default ? previous : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet previous = input.defaultChecked;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultChecked = previous;\n\t\t\t\t\t\tinput.checked = use_default ? previous : false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.removeAttribute(key);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tis_default ||\n\t\t\t\t(setters.includes(name) && (is_custom_element || typeof value !== 'string'))\n\t\t\t) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[name] = value;\n\t\t\t\t// remove it from attributes's cache\n\t\t\t\tif (name in attributes) attributes[name] = UNINITIALIZED;\n\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\tset_attribute(element, name, value, skip_warning);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(true);\n\t}\n\n\treturn current;\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} element\n * @param {(...expressions: any) => Record<string | symbol, any>} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n */\nexport function attribute_effect(\n\telement,\n\tfn,\n\tsync = [],\n\tasync = [],\n\tblockers = [],\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tflatten(blockers, sync, async, (values) => {\n\t\t/** @type {Record<string | symbol, any> | undefined} */\n\t\tvar prev = undefined;\n\n\t\t/** @type {Record<symbol, Effect>} */\n\t\tvar effects = {};\n\n\t\tvar is_select = element.nodeName === SELECT_TAG;\n\t\tvar inited = false;\n\n\t\tmanaged(() => {\n\t\t\tvar next = fn(...values.map(get));\n\t\t\t/** @type {Record<string | symbol, any>} */\n\t\t\tvar current = set_attributes(\n\t\t\t\telement,\n\t\t\t\tprev,\n\t\t\t\tnext,\n\t\t\t\tcss_hash,\n\t\t\t\tshould_remove_defaults,\n\t\t\t\tskip_warning\n\t\t\t);\n\n\t\t\tif (inited && is_select && 'value' in next) {\n\t\t\t\tselect_option(/** @type {HTMLSelectElement} */ (element), next.value);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(effects)) {\n\t\t\t\tif (!next[symbol]) destroy_effect(effects[symbol]);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(next)) {\n\t\t\t\tvar n = next[symbol];\n\n\t\t\t\tif (symbol.description === ATTACHMENT_KEY && (!prev || n !== prev[symbol])) {\n\t\t\t\t\tif (effects[symbol]) destroy_effect(effects[symbol]);\n\t\t\t\t\teffects[symbol] = branch(() => attach(element, () => n));\n\t\t\t\t}\n\n\t\t\t\tcurrent[symbol] = n;\n\t\t\t}\n\n\t\t\tprev = current;\n\t\t});\n\n\t\tif (is_select) {\n\t\t\tvar select = /** @type {HTMLSelectElement} */ (element);\n\n\t\t\teffect(() => {\n\t\t\t\tselect_option(select, /** @type {Record<string | symbol, any>} */ (prev).value, true);\n\t\t\t\tinit_select(select);\n\t\t\t});\n\t\t}\n\n\t\tinited = true;\n\t});\n}\n\n/**\n *\n * @param {Element} element\n */\nfunction get_attributes(element) {\n\treturn /** @type {Record<string | symbol, unknown>} **/ (\n\t\t/** @type {any} */ (element)[ATTRIBUTES_CACHE] ??= {\n\t\t\t[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),\n\t\t\t[IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n\t\t}\n\t);\n}\n\n/** @type {Map<string, string[]>} */\nvar setters_cache = new Map();\n\n/** @param {Element} element */\nfunction get_setters(element) {\n\tvar cache_key = element.getAttribute('is') || element.nodeName;\n\tvar setters = setters_cache.get(cache_key);\n\tif (setters) return setters;\n\tsetters_cache.set(cache_key, (setters = []));\n\n\tvar descriptors;\n\tvar proto = element; // In the case of custom elements there might be setters on the instance\n\tvar element_proto = Element.prototype;\n\n\t// Stop at Element, from there on there's only unnecessary (and dangerous, like innerHTML) setters we're not interested in\n\t// Do not use constructor.name here as that's unreliable in some browser environments\n\twhile (element_proto !== proto) {\n\t\tdescriptors = get_descriptors(proto);\n\n\t\tfor (var key in descriptors) {\n\t\t\tif (\n\t\t\t\tdescriptors[key].set &&\n\t\t\t\t// better safe than sorry, we don't want spread attributes to mess with HTML content\n\t\t\t\tkey !== 'innerHTML' &&\n\t\t\t\tkey !== 'textContent' &&\n\t\t\t\tkey !== 'innerText'\n\t\t\t) {\n\t\t\t\tsetters.push(key);\n\t\t\t}\n\t\t}\n\n\t\tproto = get_prototype_of(proto);\n\t}\n\n\treturn setters;\n}\n\n/**\n * @param {any} element\n * @param {string} attribute\n * @param {string} value\n */\nfunction check_src_in_dev_hydration(element, attribute, value) {\n\tif (!DEV) return;\n\tif (attribute === 'srcset' && srcset_url_equal(element, value)) return;\n\tif (src_url_equal(element.getAttribute(attribute) ?? '', value)) return;\n\n\tw.hydration_attribute_changed(\n\t\tattribute,\n\t\telement.outerHTML.replace(element.innerHTML, element.innerHTML && '...'),\n\t\tString(value)\n\t);\n}\n\n/**\n * @param {string} element_src\n * @param {string} url\n * @returns {boolean}\n */\nfunction src_url_equal(element_src, url) {\n\tif (element_src === url) return true;\n\treturn new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href;\n}\n\n/** @param {string} srcset */\nfunction split_srcset(srcset) {\n\treturn srcset.split(',').map((src) => src.trim().split(' ').filter(Boolean));\n}\n\n/**\n * @param {HTMLSourceElement | HTMLImageElement} element\n * @param {string} srcset\n * @returns {boolean}\n */\nfunction srcset_url_equal(element, srcset) {\n\tvar element_urls = split_srcset(element.srcset);\n\tvar urls = split_srcset(srcset);\n\n\treturn (\n\t\turls.length === element_urls.length &&\n\t\turls.every(\n\t\t\t([url, width], i) =>\n\t\t\t\twidth === element_urls[i][1] &&\n\t\t\t\t// We need to test both ways because Vite will create an a full URL with\n\t\t\t\t// `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the\n\t\t\t\t// relative URLs inside srcset are not automatically resolved to absolute URLs by\n\t\t\t\t// browsers (in contrast to img.src). This means both SSR and DOM code could\n\t\t\t\t// contain relative or absolute URLs.\n\t\t\t\t(src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0]))\n\t\t)\n\t);\n}\n","/** @import { Batch } from '../../../reactivity/batch.js' */\nimport { DEV } from 'esm-env';\nimport { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport * as e from '../../../errors.js';\nimport { is } from '../../../proxy.js';\nimport { queue_micro_task } from '../../task.js';\nimport { hydrating } from '../../hydration.js';\nimport { tick, untrack } from '../../../runtime.js';\nimport { is_runes } from '../../../context.js';\nimport { current_batch, previous_batch } from '../../../reactivity/batch.js';\nimport { async_mode_flag } from '../../../../flags/index.js';\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_value(input, get, set = get) {\n\tvar batches = new WeakSet();\n\n\tlisten_to_event_and_reset_event(input, 'input', async (is_reset) => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\t/** @type {any} */\n\t\tvar value = is_reset ? input.defaultValue : input.value;\n\t\tvalue = is_numberlike_input(input) ? to_number(value) : value;\n\t\tset(value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\n\t\t// Because `{#each ...}` blocks work by updating sources inside the flush,\n\t\t// we need to wait a tick before checking to see if we should forcibly\n\t\t// update the input and reset the selection state\n\t\tawait tick();\n\n\t\t// Respect any validation in accessors\n\t\tif (value !== (value = get())) {\n\t\t\tvar start = input.selectionStart;\n\t\t\tvar end = input.selectionEnd;\n\t\t\tvar length = input.value.length;\n\n\t\t\t// the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\n\t\t\t// Restore selection\n\t\t\tif (end !== null) {\n\t\t\t\tvar new_length = input.value.length;\n\t\t\t\t// If cursor was at end and new input is longer, move cursor to new end\n\t\t\t\tif (start === end && end === length && new_length > length) {\n\t\t\t\t\tinput.selectionStart = new_length;\n\t\t\t\t\tinput.selectionEnd = new_length;\n\t\t\t\t} else {\n\t\t\t\t\tinput.selectionStart = start;\n\t\t\t\t\tinput.selectionEnd = Math.min(end, new_length);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\t(hydrating && input.defaultValue !== input.value) ||\n\t\t// If defaultValue is set, then value == defaultValue\n\t\t// TODO Svelte 6: remove input.value check and set to empty string?\n\t\t(untrack(get) == null && input.value)\n\t) {\n\t\tset(is_numberlike_input(input) ? to_number(input.value) : input.value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t}\n\n\trender_effect(() => {\n\t\tif (DEV && input.type === 'checkbox') {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.bind_invalid_checkbox_value();\n\t\t}\n\n\t\tvar value = get();\n\n\t\tif (input === document.activeElement) {\n\t\t\t// In sync mode render effects are executed during tree traversal -> needs current_batch\n\t\t\t// In async mode render effects are flushed once batch resolved, at which point current_batch is null -> needs previous_batch\n\t\t\tvar batch = /** @type {Batch} */ (async_mode_flag ? previous_batch : current_batch);\n\n\t\t\t// Never rewrite the contents of a focused input. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the input:\n\t\t\t//\n\t\t\t// <input bind:value={query}>\n\t\t\t// <p>{await find(query)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (is_numberlike_input(input) && value === to_number(input.value)) {\n\t\t\t// handles 0 vs 00 case (see https://github.com/sveltejs/svelte/issues/9959)\n\t\t\treturn;\n\t\t}\n\n\t\tif (input.type === 'date' && !value && !input.value) {\n\t\t\t// Handles the case where a temporarily invalid date is set (while typing, for example with a leading 0 for the day)\n\t\t\t// and prevents this state from clearing the other parts of the date input (see https://github.com/sveltejs/svelte/issues/7897)\n\t\t\treturn;\n\t\t}\n\n\t\t// don't set the value of the input if it's the same to allow\n\t\t// minlength to work properly\n\t\tif (value !== input.value) {\n\t\t\t// @ts-expect-error the value is coerced on assignment\n\t\t\tinput.value = value ?? '';\n\t\t}\n\t});\n}\n\n/** @type {Set<HTMLInputElement[]>} */\nconst pending = new Set();\n\n/**\n * @param {HTMLInputElement[]} inputs\n * @param {null | [number]} group_index\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_group(inputs, group_index, input, get, set = get) {\n\tvar is_checkbox = input.getAttribute('type') === 'checkbox';\n\tvar binding_group = inputs;\n\n\t// needs to be let or related code isn't treeshaken out if it's always false\n\tlet hydration_mismatch = false;\n\n\tif (group_index !== null) {\n\t\tfor (var index of group_index) {\n\t\t\t// @ts-expect-error\n\t\t\tbinding_group = binding_group[index] ??= [];\n\t\t}\n\t}\n\n\tbinding_group.push(input);\n\n\tlisten_to_event_and_reset_event(\n\t\tinput,\n\t\t'change',\n\t\t() => {\n\t\t\t// @ts-ignore\n\t\t\tvar value = input.__value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t}\n\n\t\t\tset(value);\n\t\t},\n\t\t// TODO better default value handling\n\t\t() => set(is_checkbox ? [] : null)\n\t);\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\t// If we are hydrating and the value has since changed, then use the update value\n\t\t// from the input instead.\n\t\tif (hydrating && input.defaultChecked !== input.checked) {\n\t\t\thydration_mismatch = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (is_checkbox) {\n\t\t\tvalue = value || [];\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = value.includes(input.__value);\n\t\t} else {\n\t\t\t// @ts-ignore\n\t\t\tinput.checked = is(input.__value, value);\n\t\t}\n\t});\n\n\tteardown(() => {\n\t\tvar index = binding_group.indexOf(input);\n\n\t\tif (index !== -1) {\n\t\t\tbinding_group.splice(index, 1);\n\t\t}\n\t});\n\n\tif (!pending.has(binding_group)) {\n\t\tpending.add(binding_group);\n\n\t\tqueue_micro_task(() => {\n\t\t\t// necessary to maintain binding group order in all insertion scenarios\n\t\t\tbinding_group.sort((a, b) => (a.compareDocumentPosition(b) === 4 ? -1 : 1));\n\t\t\tpending.delete(binding_group);\n\t\t});\n\t}\n\n\tqueue_micro_task(() => {\n\t\tif (hydration_mismatch) {\n\t\t\tvar value;\n\n\t\t\tif (is_checkbox) {\n\t\t\t\tvalue = get_binding_group_value(binding_group, value, input.checked);\n\t\t\t} else {\n\t\t\t\tvar hydration_input = binding_group.find((input) => input.checked);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvalue = hydration_input?.__value;\n\t\t\t}\n\n\t\t\tset(value);\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_checked(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', (is_reset) => {\n\t\tvar value = is_reset ? input.defaultChecked : input.checked;\n\t\tset(value);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the update value from the input instead.\n\t\t(hydrating && input.defaultChecked !== input.checked) ||\n\t\t// If defaultChecked is set, then checked == defaultChecked\n\t\tuntrack(get) == null\n\t) {\n\t\tset(input.checked);\n\t}\n\n\trender_effect(() => {\n\t\tvar value = get();\n\t\tinput.checked = Boolean(value);\n\t});\n}\n\n/**\n * @template V\n * @param {Array<HTMLInputElement>} group\n * @param {V} __value\n * @param {boolean} checked\n * @returns {V[]}\n */\nfunction get_binding_group_value(group, __value, checked) {\n\t/** @type {Set<V>} */\n\tvar value = new Set();\n\n\tfor (var i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) {\n\t\t\t// @ts-ignore\n\t\t\tvalue.add(group[i].__value);\n\t\t}\n\t}\n\n\tif (!checked) {\n\t\tvalue.delete(__value);\n\t}\n\n\treturn Array.from(value);\n}\n\n/**\n * @param {HTMLInputElement} input\n */\nfunction is_numberlike_input(input) {\n\tvar type = input.type;\n\treturn type === 'number' || type === 'range';\n}\n\n/**\n * @param {string} value\n */\nfunction to_number(value) {\n\treturn value === '' ? null : +value;\n}\n\n/**\n * @param {HTMLInputElement} input\n * @param {() => FileList | null} get\n * @param {(value: FileList | null) => void} set\n */\nexport function bind_files(input, get, set = get) {\n\tlisten_to_event_and_reset_event(input, 'change', () => {\n\t\tset(input.files);\n\t});\n\n\tif (\n\t\t// If we are hydrating and the value has since changed,\n\t\t// then use the updated value from the input instead.\n\t\thydrating &&\n\t\tinput.files\n\t) {\n\t\tset(input.files);\n\t}\n\n\trender_effect(() => {\n\t\tinput.files = get();\n\t});\n}\n","import { teardown } from '../../../reactivity/effects.js';\nimport { get_descriptor } from '../../../../shared/utils.js';\n\n/**\n * Makes an `export`ed (non-prop) variable available on the `$$props` object\n * so that consumers can do `bind:x` on the component.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {V} value\n * @returns {void}\n */\nexport function bind_prop(props, prop, value) {\n\tvar desc = get_descriptor(props, prop);\n\n\tif (desc && desc.set) {\n\t\tprops[prop] = value;\n\t\tteardown(() => {\n\t\t\tprops[prop] = null;\n\t\t});\n\t}\n}\n","import { effect, teardown } from '../../../reactivity/effects.js';\nimport { untrack } from '../../../runtime.js';\n\n/**\n * We create one listener for all elements\n * @see {@link https://groups.google.com/a/chromium.org/g/blink-dev/c/z6ienONUb5A/m/F5-VcUZtBAAJ Explanation}\n */\nclass ResizeObserverSingleton {\n\t/** */\n\t#listeners = new WeakMap();\n\n\t/** @type {ResizeObserver | undefined} */\n\t#observer;\n\n\t/** @type {ResizeObserverOptions} */\n\t#options;\n\n\t/** @static */\n\tstatic entries = new WeakMap();\n\n\t/** @param {ResizeObserverOptions} options */\n\tconstructor(options) {\n\t\tthis.#options = options;\n\t}\n\n\t/**\n\t * @param {Element} element\n\t * @param {(entry: ResizeObserverEntry) => any} listener\n\t */\n\tobserve(element, listener) {\n\t\tvar listeners = this.#listeners.get(element) || new Set();\n\t\tlisteners.add(listener);\n\n\t\tthis.#listeners.set(element, listeners);\n\t\tthis.#getObserver().observe(element, this.#options);\n\n\t\treturn () => {\n\t\t\tvar listeners = this.#listeners.get(element);\n\t\t\tlisteners.delete(listener);\n\n\t\t\tif (listeners.size === 0) {\n\t\t\t\tthis.#listeners.delete(element);\n\t\t\t\t/** @type {ResizeObserver} */ (this.#observer).unobserve(element);\n\t\t\t}\n\t\t};\n\t}\n\n\t#getObserver() {\n\t\treturn (\n\t\t\tthis.#observer ??\n\t\t\t(this.#observer = new ResizeObserver(\n\t\t\t\t/** @param {any} entries */ (entries) => {\n\t\t\t\t\tfor (var entry of entries) {\n\t\t\t\t\t\tResizeObserverSingleton.entries.set(entry.target, entry);\n\t\t\t\t\t\tfor (var listener of this.#listeners.get(entry.target) || []) {\n\t\t\t\t\t\t\tlistener(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t))\n\t\t);\n\t}\n}\n\nvar resize_observer_content_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'content-box'\n});\n\nvar resize_observer_border_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'border-box'\n});\n\nvar resize_observer_device_pixel_content_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'device-pixel-content-box'\n});\n\n/**\n * @param {Element} element\n * @param {'contentRect' | 'contentBoxSize' | 'borderBoxSize' | 'devicePixelContentBoxSize'} type\n * @param {(entry: keyof ResizeObserverEntry) => void} set\n */\nexport function bind_resize_observer(element, type, set) {\n\tvar observer =\n\t\ttype === 'contentRect' || type === 'contentBoxSize'\n\t\t\t? resize_observer_content_box\n\t\t\t: type === 'borderBoxSize'\n\t\t\t\t? resize_observer_border_box\n\t\t\t\t: resize_observer_device_pixel_content_box;\n\n\tvar unsub = observer.observe(element, /** @param {any} entry */ (entry) => set(entry[type]));\n\tteardown(unsub);\n}\n\n/**\n * @param {HTMLElement} element\n * @param {'clientWidth' | 'clientHeight' | 'offsetWidth' | 'offsetHeight'} type\n * @param {(size: number) => void} set\n */\nexport function bind_element_size(element, type, set) {\n\tvar unsub = resize_observer_border_box.observe(element, () => set(element[type]));\n\n\teffect(() => {\n\t\t// The update could contain reads which should be ignored\n\t\tuntrack(() => set(element[type]));\n\t\treturn unsub;\n\t});\n}\n","/** @import { ComponentContext, Effect } from '#client' */\nimport { DESTROYING, STATE_SYMBOL } from '#client/constants';\nimport { component_context } from '../../../context.js';\nimport { effect, render_effect } from '../../../reactivity/effects.js';\nimport { active_effect, untrack } from '../../../runtime.js';\n\n/**\n * @param {any} bound_value\n * @param {Element} element_or_component\n * @returns {boolean}\n */\nfunction is_bound_this(bound_value, element_or_component) {\n\treturn (\n\t\tbound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component\n\t);\n}\n\n/**\n * @param {any} element_or_component\n * @param {(value: unknown, ...parts: unknown[]) => void} update\n * @param {(...parts: unknown[]) => unknown} get_value\n * @param {() => unknown[]} [get_parts] Set if the this binding is used inside an each block,\n * \t\t\t\t\t\t\t\t\t\treturns all the parts of the each block context that are used in the expression\n * @returns {void}\n */\nexport function bind_this(element_or_component = {}, update, get_value, get_parts) {\n\tvar component_effect = /** @type {ComponentContext} */ (component_context).r;\n\tvar parent = /** @type {Effect} */ (active_effect);\n\n\teffect(() => {\n\t\t/** @type {unknown[]} */\n\t\tvar old_parts;\n\n\t\t/** @type {unknown[]} */\n\t\tvar parts;\n\n\t\trender_effect(() => {\n\t\t\told_parts = parts;\n\t\t\t// We only track changes to the parts, not the value itself to avoid unnecessary reruns.\n\t\t\tparts = get_parts?.() || [];\n\n\t\t\tuntrack(() => {\n\t\t\t\tif (!is_bound_this(get_value(...parts), element_or_component)) {\n\t\t\t\t\tupdate(element_or_component, ...parts);\n\t\t\t\t\t// If this is an effect rerun (cause: each block context changes), then nullify the binding at\n\t\t\t\t\t// the previous position if it isn't already taken over by a different effect.\n\t\t\t\t\tif (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {\n\t\t\t\t\t\tupdate(null, ...old_parts);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\t// When the bind:this effect is destroyed, we go up the effect parent chain until we find the last parent effect that is destroyed,\n\t\t\t// or the effect containing the component bind:this is in (whichever comes first). That way we can time the nulling of the binding\n\t\t\t// as close to user/developer expectation as possible.\n\t\t\t// TODO Svelte 6: Decide if we want to keep this logic or just always null the binding in the component effect's teardown\n\t\t\t// (which would be simpler, but less intuitive in some cases, and breaks the `ondestroy-before-cleanup` test)\n\t\t\tlet p = parent;\n\t\t\twhile (p !== component_effect && p.parent !== null && p.parent.f & DESTROYING) {\n\t\t\t\tp = p.parent;\n\t\t\t}\n\t\t\tconst teardown = () => {\n\t\t\t\tif (parts && is_bound_this(get_value(...parts), element_or_component)) {\n\t\t\t\t\tupdate(null, ...parts);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst original_teardown = p.teardown;\n\t\t\tp.teardown = () => {\n\t\t\t\tteardown();\n\t\t\t\toriginal_teardown?.();\n\t\t\t};\n\t\t};\n\t});\n\n\treturn element_or_component;\n}\n","import { render_effect, teardown } from '../../../reactivity/effects.js';\nimport { listen } from './shared.js';\n\n/**\n * @param {'innerHTML' | 'textContent' | 'innerText'} property\n * @param {HTMLElement} element\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_content_editable(property, element, get, set = get) {\n\telement.addEventListener('input', () => {\n\t\t// @ts-ignore\n\t\tset(element[property]);\n\t});\n\n\trender_effect(() => {\n\t\tvar value = get();\n\n\t\tif (element[property] !== value) {\n\t\t\tif (value == null) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar non_null_value = element[property];\n\t\t\t\tset(non_null_value);\n\t\t\t} else {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[property] = value + '';\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * @param {string} property\n * @param {string} event_name\n * @param {Element} element\n * @param {(value: unknown) => void} set\n * @param {() => unknown} [get]\n * @returns {void}\n */\nexport function bind_property(property, event_name, element, set, get) {\n\tvar handler = () => {\n\t\t// @ts-ignore\n\t\tset(element[property]);\n\t};\n\n\telement.addEventListener(event_name, handler);\n\n\tif (get) {\n\t\trender_effect(() => {\n\t\t\t// @ts-ignore\n\t\t\telement[property] = get();\n\t\t});\n\t} else {\n\t\thandler();\n\t}\n\n\t// @ts-ignore\n\tif (element === document.body || element === window || element === document) {\n\t\tteardown(() => {\n\t\t\telement.removeEventListener(event_name, handler);\n\t\t});\n\t}\n}\n\n/**\n * @param {HTMLElement} element\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_focused(element, set) {\n\tlisten(element, ['focus', 'blur'], () => {\n\t\tset(element === document.activeElement);\n\t});\n}\n","import { noop } from '../../../shared/utils.js';\nimport { user_pre_effect } from '../../reactivity/effects.js';\nimport { on } from '../elements/events.js';\n\n/**\n * Substitute for the `trusted` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function trusted(fn) {\n\treturn function (...args) {\n\t\tvar event = /** @type {Event} */ (args[0]);\n\t\tif (event.isTrusted) {\n\t\t\t// @ts-ignore\n\t\t\tfn?.apply(this, args);\n\t\t}\n\t};\n}\n\n/**\n * Substitute for the `self` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function self(fn) {\n\treturn function (...args) {\n\t\tvar event = /** @type {Event} */ (args[0]);\n\t\t// @ts-ignore\n\t\tif (event.target === this) {\n\t\t\t// @ts-ignore\n\t\t\tfn?.apply(this, args);\n\t\t}\n\t};\n}\n\n/**\n * Substitute for the `stopPropagation` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function stopPropagation(fn) {\n\treturn function (...args) {\n\t\tvar event = /** @type {Event} */ (args[0]);\n\t\tevent.stopPropagation();\n\t\t// @ts-ignore\n\t\treturn fn?.apply(this, args);\n\t};\n}\n\n/**\n * Substitute for the `once` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function once(fn) {\n\tvar ran = false;\n\n\treturn function (...args) {\n\t\tif (ran) return;\n\t\tran = true;\n\n\t\t// @ts-ignore\n\t\treturn fn?.apply(this, args);\n\t};\n}\n\n/**\n * Substitute for the `stopImmediatePropagation` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function stopImmediatePropagation(fn) {\n\treturn function (...args) {\n\t\tvar event = /** @type {Event} */ (args[0]);\n\t\tevent.stopImmediatePropagation();\n\t\t// @ts-ignore\n\t\treturn fn?.apply(this, args);\n\t};\n}\n\n/**\n * Substitute for the `preventDefault` event modifier\n * @deprecated\n * @param {(event: Event, ...args: Array<unknown>) => void} fn\n * @returns {(event: Event, ...args: unknown[]) => void}\n */\nexport function preventDefault(fn) {\n\treturn function (...args) {\n\t\tvar event = /** @type {Event} */ (args[0]);\n\t\tevent.preventDefault();\n\t\t// @ts-ignore\n\t\treturn fn?.apply(this, args);\n\t};\n}\n\n/**\n * Substitute for the `passive` event modifier, implemented as an action\n * @deprecated\n * @param {HTMLElement} node\n * @param {[event: string, handler: () => EventListener]} options\n */\nexport function passive(node, [event, handler]) {\n\tuser_pre_effect(() => {\n\t\treturn on(node, event, handler() ?? noop, {\n\t\t\tpassive: true\n\t\t});\n\t});\n}\n\n/**\n * Substitute for the `nonpassive` event modifier, implemented as an action\n * @deprecated\n * @param {HTMLElement} node\n * @param {[event: string, handler: () => EventListener]} options\n */\nexport function nonpassive(node, [event, handler]) {\n\tuser_pre_effect(() => {\n\t\treturn on(node, event, handler() ?? noop, {\n\t\t\tpassive: false\n\t\t});\n\t});\n}\n","/** @import { ComponentContextLegacy } from '#client' */\nimport { run, run_all } from '../../../shared/utils.js';\nimport { component_context } from '../../context.js';\nimport { derived } from '../../reactivity/deriveds.js';\nimport { user_pre_effect, user_effect } from '../../reactivity/effects.js';\nimport { deep_read_state, get, untrack } from '../../runtime.js';\n\n/**\n * Legacy-mode only: Call `onMount` callbacks and set up `beforeUpdate`/`afterUpdate` effects\n * @param {boolean} [immutable]\n */\nexport function init(immutable = false) {\n\tconst context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\tconst callbacks = context.l.u;\n\tif (!callbacks) return;\n\n\tlet props = () => deep_read_state(context.s);\n\n\tif (immutable) {\n\t\tlet version = 0;\n\t\tlet prev = /** @type {Record<string, any>} */ ({});\n\n\t\t// In legacy immutable mode, before/afterUpdate only fire if the object identity of a prop changes\n\t\tconst d = derived(() => {\n\t\t\tlet changed = false;\n\t\t\tconst props = context.s;\n\t\t\tfor (const key in props) {\n\t\t\t\tif (props[key] !== prev[key]) {\n\t\t\t\t\tprev[key] = props[key];\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changed) version++;\n\t\t\treturn version;\n\t\t});\n\n\t\tprops = () => get(d);\n\t}\n\n\t// beforeUpdate\n\tif (callbacks.b.length) {\n\t\tuser_pre_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.b);\n\t\t});\n\t}\n\n\t// onMount (must run before afterUpdate)\n\tuser_effect(() => {\n\t\tconst fns = untrack(() => callbacks.m.map(run));\n\t\treturn () => {\n\t\t\tfor (const fn of fns) {\n\t\t\t\tif (typeof fn === 'function') {\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n\n\t// afterUpdate\n\tif (callbacks.a.length) {\n\t\tuser_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.a);\n\t\t});\n\t}\n}\n\n/**\n * Invoke the getter of all signals associated with a component\n * so they can be registered to the effect this function is called in.\n * @param {ComponentContextLegacy} context\n * @param {(() => void)} props\n */\nfunction observe_all(context, props) {\n\tif (context.l.s) {\n\t\tfor (const signal of context.l.s) get(signal);\n\t}\n\n\tprops();\n}\n","import { set, source } from '../../reactivity/sources.js';\nimport { get } from '../../runtime.js';\nimport { is_array } from '../../../shared/utils.js';\n\n/**\n * Under some circumstances, imports may be reactive in legacy mode. In that case,\n * they should be using `reactive_import` as part of the transformation\n * @param {() => any} fn\n */\nexport function reactive_import(fn) {\n\tvar s = source(0);\n\n\treturn function () {\n\t\tif (arguments.length === 1) {\n\t\t\tset(s, get(s) + 1);\n\t\t\treturn arguments[0];\n\t\t} else {\n\t\t\tget(s);\n\t\t\treturn fn();\n\t\t}\n\t};\n}\n\n/**\n * @this {any}\n * @param {Record<string, unknown>} $$props\n * @param {Event} event\n * @returns {void}\n */\nexport function bubble_event($$props, event) {\n\tvar events = /** @type {Record<string, Function[] | Function>} */ ($$props.$$events)?.[\n\t\tevent.type\n\t];\n\n\tvar callbacks = is_array(events) ? events.slice() : events == null ? [] : [events];\n\n\tfor (var fn of callbacks) {\n\t\t// Preserve \"this\" context\n\t\tfn.call(this, event);\n\t}\n}\n\n/**\n * Used to simulate `$on` on a component instance when `compatibility.componentApi === 4`\n * @param {Record<string, any>} $$props\n * @param {string} event_name\n * @param {Function} event_callback\n */\nexport function add_legacy_event_listener($$props, event_name, event_callback) {\n\t$$props.$$events ||= {};\n\t$$props.$$events[event_name] ||= [];\n\t$$props.$$events[event_name].push(event_callback);\n}\n\n/**\n * Used to simulate `$set` on a component instance when `compatibility.componentApi === 4`.\n * Needs component accessors so that it can call the setter of the prop. Therefore doesn't\n * work for updating props in `$$props` or `$$restProps`.\n * @this {Record<string, any>}\n * @param {Record<string, any>} $$new_props\n */\nexport function update_legacy_props($$new_props) {\n\tfor (var key in $$new_props) {\n\t\tif (key in this) {\n\t\t\tthis[key] = $$new_props[key];\n\t\t}\n\t}\n}\n","/** @import { Derived, Effect, Source } from './types.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tPROPS_IS_BINDABLE,\n\tPROPS_IS_IMMUTABLE,\n\tPROPS_IS_LAZY_INITIAL,\n\tPROPS_IS_RUNES,\n\tPROPS_IS_UPDATED\n} from '../../../constants.js';\nimport { get_descriptor, is_function } from '../../shared/utils.js';\nimport { set, source, update } from './sources.js';\nimport { derived, derived_safe_equal } from './deriveds.js';\nimport {\n\tactive_effect,\n\tget,\n\tis_destroying_effect,\n\tset_active_effect,\n\tuntrack\n} from '../runtime.js';\nimport * as e from '../errors.js';\nimport { DESTROYED, LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';\nimport { proxy } from '../proxy.js';\nimport { capture_store_binding } from './store.js';\nimport { legacy_mode_flag } from '../../flags/index.js';\nimport { effect, render_effect } from './effects.js';\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_prop(fn, d = 1) {\n\tconst value = fn();\n\tfn(value + d);\n\treturn value;\n}\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_prop(fn, d = 1) {\n\tconst value = fn() + d;\n\tfn(value);\n\treturn value;\n}\n\n/**\n * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).\n * Is passed the full `$$props` object and excludes the named props.\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}\n */\nconst rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\treturn target.props[key];\n\t},\n\tset(target, key) {\n\t\tif (DEV) {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.props_rest_readonly(`${target.name}.${String(key)}`);\n\t\t}\n\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @param {string} [name]\n * @returns {Record<string, unknown>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function rest_props(props, exclude, name) {\n\treturn new Proxy(\n\t\tDEV ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude },\n\t\trest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for legacy $$restProps and $$props\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, special: Record<string | symbol, (v?: unknown) => unknown>, version: Source<number>, parent_effect: Effect }>}}\n */\nconst legacy_rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tget(target.version);\n\t\treturn key in target.special ? target.special[key]() : target.props[key];\n\t},\n\tset(target, key, value) {\n\t\tif (!(key in target.special)) {\n\t\t\tvar previous_effect = active_effect;\n\n\t\t\ttry {\n\t\t\t\tset_active_effect(target.parent_effect);\n\n\t\t\t\t// Handle props that can temporarily get out of sync with the parent\n\t\t\t\t/** @type {Record<string, (v?: unknown) => unknown>} */\n\t\t\t\ttarget.special[key] = prop(\n\t\t\t\t\t{\n\t\t\t\t\t\tget [key]() {\n\t\t\t\t\t\t\treturn target.props[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t/** @type {string} */ (key),\n\t\t\t\t\tPROPS_IS_UPDATED\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t}\n\t\t}\n\n\t\ttarget.special[key](value);\n\t\tupdate(target.version); // $$props is coarse-grained: when $$props.x is updated, usages of $$props.y etc are also rerun\n\t\treturn true;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\tdeleteProperty(target, key) {\n\t\t// Svelte 4 allowed for deletions on $$restProps\n\t\tif (target.exclude.includes(key)) return true;\n\t\ttarget.exclude.push(key);\n\t\tupdate(target.version);\n\t\treturn true;\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @returns {Record<string, unknown>}\n */\nexport function legacy_rest_props(props, exclude) {\n\treturn new Proxy(\n\t\t{\n\t\t\tprops,\n\t\t\texclude,\n\t\t\tspecial: {},\n\t\t\tversion: source(0),\n\t\t\t// TODO this is only necessary because we need to track component\n\t\t\t// destruction inside `prop`, because of `bind:this`, but it\n\t\t\t// seems likely that we can simplify `bind:this` instead\n\t\t\tparent_effect: /** @type {Effect} */ (active_effect)\n\t\t},\n\t\tlegacy_rest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for spread props. Handles the incoming array of props\n * that looks like `() => { dynamic: props }, { static: prop }, ..` and wraps\n * them so that the whole thing is passed to the component as the `$$props` argument.\n * @type {ProxyHandler<{ props: Array<Record<string | symbol, unknown> | (() => Record<string | symbol, unknown>)> }>}}\n */\nconst spread_props_handler = {\n\tget(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) return p[key];\n\t\t}\n\t},\n\tset(target, key, value) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tconst desc = get_descriptor(p, key);\n\t\t\tif (desc && desc.set) {\n\t\t\t\tdesc.set(value);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) {\n\t\t\t\tconst descriptor = get_descriptor(p, key);\n\t\t\t\tif (descriptor && !descriptor.configurable) {\n\t\t\t\t\t// Prevent a \"Non-configurability Report Error\": The target is an array, it does\n\t\t\t\t\t// not actually contain this property. If it is now described as non-configurable,\n\t\t\t\t\t// the proxy throws a validation error. Setting it to true avoids that.\n\t\t\t\t\tdescriptor.configurable = true;\n\t\t\t\t}\n\t\t\t\treturn descriptor;\n\t\t\t}\n\t\t}\n\t},\n\thas(target, key) {\n\t\t// To prevent a false positive `is_entry_props` in the `prop` function\n\t\tif (key === STATE_SYMBOL || key === LEGACY_PROPS) return false;\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (p != null && key in p) return true;\n\t\t}\n\n\t\treturn false;\n\t},\n\townKeys(target) {\n\t\t/** @type {Array<string | symbol>} */\n\t\tconst keys = [];\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (!p) continue;\n\n\t\t\tfor (const key in p) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\n\t\t\tfor (const key of Object.getOwnPropertySymbols(p)) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\t\t}\n\n\t\treturn keys;\n\t}\n};\n\n/**\n * @param {Array<Record<string, unknown> | (() => Record<string, unknown>)>} props\n * @returns {any}\n */\nexport function spread_props(...props) {\n\treturn new Proxy({ props }, spread_props_handler);\n}\n\n/**\n * This function is responsible for synchronizing a possibly bound prop with the inner component state.\n * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} key\n * @param {number} flags\n * @param {V | (() => V)} [fallback]\n * @returns {(() => V | ((arg: V) => V) | ((arg: V, mutation: boolean) => V))}\n */\nexport function prop(props, key, flags, fallback) {\n\tvar runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;\n\tvar bindable = (flags & PROPS_IS_BINDABLE) !== 0;\n\tvar lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;\n\n\tvar fallback_value = /** @type {V} */ (fallback);\n\tvar fallback_dirty = true;\n\tvar fallback_signal = /** @type {Derived<V> | undefined} */ (undefined);\n\n\tvar get_fallback = () => {\n\t\tif (lazy && runes) {\n\t\t\tfallback_signal ??= derived(/** @type {() => V} */ (fallback));\n\t\t\treturn get(fallback_signal);\n\t\t}\n\n\t\tif (fallback_dirty) {\n\t\t\tfallback_dirty = false;\n\n\t\t\tfallback_value = lazy\n\t\t\t\t? untrack(/** @type {() => V} */ (fallback))\n\t\t\t\t: /** @type {V} */ (fallback);\n\t\t}\n\n\t\treturn fallback_value;\n\t};\n\n\t/** @type {((v: V) => void) | undefined} */\n\tlet setter;\n\n\tif (bindable) {\n\t\t// Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`\n\t\t// or `createClassComponent(Component, props)`\n\t\tvar is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;\n\n\t\tsetter =\n\t\t\tget_descriptor(props, key)?.set ??\n\t\t\t(is_entry_props && key in props ? (v) => (props[key] = v) : undefined);\n\t}\n\n\t/** @type {V} */\n\tvar initial_value;\n\tvar is_store_sub = false;\n\n\tif (bindable) {\n\t\t[initial_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));\n\t} else {\n\t\tinitial_value = /** @type {V} */ (props[key]);\n\t}\n\n\tif (initial_value === undefined && fallback !== undefined) {\n\t\tinitial_value = get_fallback();\n\n\t\tif (setter) {\n\t\t\tif (runes) e.props_invalid_value(key);\n\t\t\tsetter(initial_value);\n\t\t}\n\t}\n\n\t/** @type {() => V} */\n\tvar getter;\n\n\tif (runes) {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\t\t\tif (value === undefined) return get_fallback();\n\t\t\tfallback_dirty = true;\n\t\t\treturn value;\n\t\t};\n\t} else {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\n\t\t\tif (value !== undefined) {\n\t\t\t\t// in legacy mode, we don't revert to the fallback value\n\t\t\t\t// if the prop goes from defined to undefined. The easiest\n\t\t\t\t// way to model this is to make the fallback undefined\n\t\t\t\t// as soon as the prop has a value\n\t\t\t\tfallback_value = /** @type {V} */ (undefined);\n\t\t\t}\n\n\t\t\treturn value === undefined ? fallback_value : value;\n\t\t};\n\t}\n\n\t// prop is never written to — we only need a getter\n\tif (runes && (flags & PROPS_IS_UPDATED) === 0) {\n\t\treturn getter;\n\t}\n\n\t// prop is written to, but the parent component had `bind:foo` which\n\t// means we can just call `$$props.foo = value` directly\n\tif (setter) {\n\t\tvar legacy_parent = props.$$legacy;\n\t\treturn /** @type {() => V} */ (\n\t\t\tfunction (/** @type {V} */ value, /** @type {boolean} */ mutation) {\n\t\t\t\tif (arguments.length > 0) {\n\t\t\t\t\t// We don't want to notify if the value was mutated and the parent is in runes mode.\n\t\t\t\t\t// In that case the state proxy (if it exists) should take care of the notification.\n\t\t\t\t\t// If the parent is not in runes mode, we need to notify on mutation, too, that the prop\n\t\t\t\t\t// has changed because the parent will not be able to detect the change otherwise.\n\t\t\t\t\tif (!runes || !mutation || legacy_parent || is_store_sub) {\n\t\t\t\t\t\t/** @type {Function} */ (setter)(mutation ? getter() : value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\treturn getter();\n\t\t\t}\n\t\t);\n\t}\n\n\t// Either prop is written to, but there's no binding, which means we\n\t// create a derived that we can write to locally.\n\t// Or we are in legacy mode where we always create a derived to replicate that\n\t// Svelte 4 did not trigger updates when a primitive value was updated to the same value.\n\tvar overridden = false;\n\n\tvar d = ((flags & PROPS_IS_IMMUTABLE) !== 0 ? derived : derived_safe_equal)(() => {\n\t\toverridden = false;\n\t\treturn getter();\n\t});\n\n\tif (DEV) {\n\t\td.label = key;\n\t}\n\n\t// Capture the initial value if it's bindable\n\tif (bindable) get(d);\n\n\tvar parent_effect = /** @type {Effect} */ (active_effect);\n\n\treturn /** @type {() => V} */ (\n\t\tfunction (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\tconst new_value = mutation ? get(d) : runes && bindable ? proxy(value) : value;\n\n\t\t\t\tset(d, new_value);\n\t\t\t\toverridden = true;\n\n\t\t\t\tif (fallback_value !== undefined) {\n\t\t\t\t\tfallback_value = new_value;\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\t// special case — avoid recalculating the derived if we're in a\n\t\t\t// teardown function and the prop was overridden locally, or the\n\t\t\t// component was already destroyed (people could access props in a timeout)\n\t\t\tif ((is_destroying_effect && overridden) || (parent_effect.f & DESTROYED) !== 0) {\n\t\t\t\treturn d.v;\n\t\t\t}\n\n\t\t\treturn get(d);\n\t\t}\n\t);\n}\n","/** @import { Readable, Writable } from './public.js' */\nimport {\n\teffect_root,\n\teffect_tracking,\n\trender_effect\n} from '../internal/client/reactivity/effects.js';\nimport { get, writable } from './shared/index.js';\nimport { createSubscriber } from '../reactivity/create-subscriber.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../internal/client/runtime.js';\n\nexport { derived, get, readable, readonly, writable } from './shared/index.js';\n\n/**\n * @template V\n * @overload\n * @param {() => V} get\n * @param {(v: V) => void} set\n * @returns {Writable<V>}\n */\n/**\n * @template V\n * @overload\n * @param {() => V} get\n * @returns {Readable<V>}\n */\n/**\n * Create a store from a function that returns state, and (to make a writable store), an\n * optional second function that sets state.\n *\n * ```ts\n * import { toStore } from 'svelte/store';\n *\n * let count = $state(0);\n *\n * const store = toStore(() => count, (v) => (count = v));\n * ```\n * @template V\n * @param {() => V} get\n * @param {(v: V) => void} [set]\n * @returns {Writable<V> | Readable<V>}\n */\nexport function toStore(get, set) {\n\tvar effect = active_effect;\n\tvar reaction = active_reaction;\n\tvar init_value = get();\n\n\tconst store = writable(init_value, (set) => {\n\t\t// If the value has changed before we call subscribe, then\n\t\t// we need to treat the value as already having run\n\t\tvar ran = init_value !== get();\n\n\t\t// TODO do we need a different implementation on the server?\n\t\tvar teardown;\n\t\t// Apply the reaction and effect at the time of toStore being called\n\t\tvar previous_reaction = active_reaction;\n\t\tvar previous_effect = active_effect;\n\t\tset_active_reaction(reaction);\n\t\tset_active_effect(effect);\n\n\t\ttry {\n\t\t\tteardown = effect_root(() => {\n\t\t\t\trender_effect(() => {\n\t\t\t\t\tconst value = get();\n\t\t\t\t\tif (ran) set(value);\n\t\t\t\t});\n\t\t\t});\n\t\t} finally {\n\t\t\tset_active_reaction(previous_reaction);\n\t\t\tset_active_effect(previous_effect);\n\t\t}\n\n\t\tran = true;\n\n\t\treturn teardown;\n\t});\n\n\tif (set) {\n\t\treturn {\n\t\t\tset,\n\t\t\tupdate: (fn) => set(fn(get())),\n\t\t\tsubscribe: store.subscribe\n\t\t};\n\t}\n\n\treturn {\n\t\tsubscribe: store.subscribe\n\t};\n}\n\n/**\n * @template V\n * @overload\n * @param {Writable<V>} store\n * @returns {{ current: V }}\n */\n/**\n * @template V\n * @overload\n * @param {Readable<V>} store\n * @returns {{ readonly current: V }}\n */\n/**\n * Convert a store to an object with a reactive `current` property. If `store`\n * is a readable store, `current` will be a readonly property.\n *\n * ```ts\n * import { fromStore, get, writable } from 'svelte/store';\n *\n * const store = writable(0);\n *\n * const count = fromStore(store);\n *\n * count.current; // 0;\n * store.set(1);\n * count.current; // 1\n *\n * count.current += 1;\n * get(store); // 2\n * ```\n * @template V\n * @param {Writable<V> | Readable<V>} store\n */\nexport function fromStore(store) {\n\tlet value = /** @type {V} */ (undefined);\n\n\tconst subscribe = createSubscriber((update) => {\n\t\tlet ran = false;\n\n\t\tconst unsubscribe = store.subscribe((v) => {\n\t\t\tvalue = v;\n\t\t\tif (ran) update();\n\t\t});\n\n\t\tran = true;\n\n\t\treturn unsubscribe;\n\t});\n\n\tfunction current() {\n\t\tif (effect_tracking()) {\n\t\t\tsubscribe();\n\t\t\treturn value;\n\t\t}\n\n\t\treturn get(store);\n\t}\n\n\tif ('set' in store) {\n\t\treturn {\n\t\t\tget current() {\n\t\t\t\treturn current();\n\t\t\t},\n\t\t\tset current(v) {\n\t\t\t\tstore.set(v);\n\t\t\t}\n\t\t};\n\t}\n\n\treturn {\n\t\tget current() {\n\t\t\treturn current();\n\t\t}\n\t};\n}\n","import type { Action } from \"svelte/action\"\nimport { writable } from \"svelte/store\"\n\nexport type LocationState = {\n  path: string\n  search: string\n  hash: string\n  push: boolean\n  pop: boolean\n  url: string\n}\n\nexport type SpaNavigateOptions = {\n  replace?: boolean\n  noSearchParam?: boolean // defaults to true (strip existing query params)\n}\n\nexport type NavigationGuard = (\n  to: string,\n  options?: SpaNavigateOptions,\n  resume?: () => void,\n) => boolean | void\n\nconst isBrowser = typeof window !== \"undefined\"\nlet baseURL = isBrowser ? window.location.origin : \"\"\nlet stickyParams: string[] = []\nconst transientParams = [\"return_to\"]\nlet transientParamPrefixes = [\"table_\", \"sessions_\"]\n\n// Circuit-breaker against runaway publishLocation loops\nconst LOOP_WINDOW_MS = 1_000\nconst LOOP_MAX_EVENTS = 10\nconst LOOP_MAX_PER_KEY = 30\nlet loopWindowStart = Date.now()\nlet loopEvents = 0\nconst perKeyCounts = new Map<string, number>()\nconst recentPublishes: Array<{\n  ts: number\n  key: string\n  target?: string\n  normalizedPath: string\n  search: string\n  hash: string\n  stack?: string[]\n}> = []\nconst navDebug = true\nconst captureStack = () => {\n  const stack = new Error().stack\n\n  if (!stack) return undefined\n\n  return stack\n    .split(\"\\n\")\n    .slice(2, 10)\n    .map((line) => line.trim())\n}\nconst navLog = (event: string, payload?: unknown, includeStack = false) => {}\n\nconst createInitialLocation = (): LocationState => ({\n  path: isBrowser ? window.location.pathname || \"/\" : \"/\",\n  search: isBrowser ? window.location.search || \"\" : \"\",\n  hash: isBrowser ? window.location.hash || \"\" : \"\",\n  push: false,\n  pop: false,\n  url: `${baseURL}${isBrowser ? window.location.pathname || \"/\" : \"/\"}`,\n})\n\nexport const location = writable<LocationState>(createInitialLocation())\nlet lastLocationKey: string | null = null\n\nconst buildLocationKey = (path: string, search: string, hash: string) =>\n  `${path}::${search || \"\"}::${hash || \"\"}`\n\nif (navDebug && isBrowser) {\n  location.subscribe((value) => navLog(\"location:store-update\", value, true))\n}\n\nconst guards = new Map<string, NavigationGuard>()\n\nexport const registerNavigationGuard = (id: string, guard: NavigationGuard) => {\n  guards.set(id, guard)\n\n  return () => guards.delete(id)\n}\n\nexport const unregisterNavigationGuard = (id: string) => {\n  guards.delete(id)\n}\n\nexport const registerTransientQueryPrefix = (prefix: string) => {\n  const normalized = prefix.trim()\n\n  if (!normalized) return () => {}\n\n  if (!transientParamPrefixes.includes(normalized)) {\n    transientParamPrefixes = [...transientParamPrefixes, normalized]\n  }\n\n  return () => {\n    transientParamPrefixes = transientParamPrefixes.filter((entry) => entry !== normalized)\n  }\n}\n\nexport const isTransientQueryParam = (key: string) =>\n  transientParams.includes(key) || transientParamPrefixes.some((prefix) => key.startsWith(prefix))\n\nconst stripTransientQueryParams = (params: URLSearchParams, explicitKeys: Set<string>) => {\n  Array.from(params.keys()).forEach((key) => {\n    if (!explicitKeys.has(key) && isTransientQueryParam(key)) {\n      params.delete(key)\n    }\n  })\n}\n\nexport const stripTransientQueryParamsFromSearch = (search: string | null | undefined) => {\n  const normalized = typeof search === \"string\" ? search.replace(/^\\?/, \"\") : \"\"\n\n  if (!normalized) return \"\"\n\n  const params = new URLSearchParams(normalized)\n  Array.from(params.keys()).forEach((key) => {\n    if (isTransientQueryParam(key)) {\n      params.delete(key)\n    }\n  })\n\n  const serialized = params.toString()\n\n  return serialized ? `?${serialized}` : \"\"\n}\n\nconst runGuards = (to: string, options?: SpaNavigateOptions, resume?: () => void) => {\n  for (const guard of guards.values()) {\n    if (guard(to, options, resume) === false) {\n      return false\n    }\n  }\n\n  return true\n}\n\nconst sanitizeBaseUrl = (value: string | undefined) => {\n  if (!value) return baseURL\n\n  return value.replace(/\\/+$/, \"\") || baseURL\n}\n\nconst normalizePath = (value: string) => {\n  if (!value.startsWith(\"/\")) {\n    value = `/${value}`\n  }\n\n  if (value.length > 1 && value.endsWith(\"/\")) {\n    value = value.slice(0, -1)\n  }\n\n  return value || \"/\"\n}\n\nconst splitTarget = (target?: string) => {\n  let path = target\n  let search = \"\"\n  let hash = \"\"\n\n  if (typeof path === \"string\" && path.length > 0) {\n    const hashIndex = path.indexOf(\"#\")\n\n    if (hashIndex !== -1) {\n      hash = path.slice(hashIndex)\n      path = path.slice(0, hashIndex)\n    }\n\n    const queryIndex = path.indexOf(\"?\")\n\n    if (queryIndex !== -1) {\n      search = path.slice(queryIndex)\n      path = path.slice(0, queryIndex)\n    }\n  } else if (isBrowser) {\n    path = window.location.pathname\n    search = window.location.search || \"\"\n    hash = window.location.hash || \"\"\n  } else {\n    path = \"/\"\n  }\n\n  navLog(\"splitTarget\", { target, path, search, hash })\n\n  return {\n    path: path || \"/\",\n    search,\n    hash,\n  }\n}\n\nconst publishLocation = (target?: string) => {\n  const { path, search, hash } = splitTarget(target)\n  let normalizedPath = path\n\n  if (normalizedPath.startsWith(baseURL)) {\n    normalizedPath = normalizedPath.slice(baseURL.length) || \"/\"\n  }\n\n  if (!normalizedPath.startsWith(\"/\")) {\n    normalizedPath = `/${normalizedPath}`\n  }\n\n  const nextKey = buildLocationKey(normalizedPath, search || \"\", hash || \"\")\n\n  if (nextKey === lastLocationKey) {\n    navLog(\"publishLocation:dedupe\", { target, normalizedPath, search, hash, nextKey }, true)\n\n    return\n  }\n\n  lastLocationKey = nextKey\n\n  const now = Date.now()\n\n  if (now - loopWindowStart > LOOP_WINDOW_MS) {\n    loopWindowStart = now\n    loopEvents = 0\n  }\n\n  loopEvents += 1\n  const stack = captureStack()\n  recentPublishes.push({ ts: now, key: nextKey, target, normalizedPath, search, hash, stack })\n\n  if (recentPublishes.length > 20) {\n    recentPublishes.shift()\n  }\n\n  perKeyCounts.set(nextKey, (perKeyCounts.get(nextKey) ?? 0) + 1)\n  const keyCount = perKeyCounts.get(nextKey) ?? 0\n\n  if (loopEvents > LOOP_MAX_EVENTS || keyCount > LOOP_MAX_PER_KEY) {\n    console.error(\"[web-sdk:navigation] loop-detected\", {\n      loopEvents,\n      windowMs: LOOP_WINDOW_MS,\n      lastKey: nextKey,\n      perKeyCounts: Array.from(perKeyCounts.entries()),\n      recentPublishes,\n    })\n  }\n\n  navLog(\n    \"publishLocation:set\",\n    {\n      target,\n      normalizedPath,\n      search,\n      hash,\n      key: nextKey,\n      baseURL,\n    },\n    true,\n  )\n  location.set({\n    path: normalizedPath,\n    search: search || \"\",\n    hash: hash || \"\",\n    push: Boolean(target),\n    pop: !target,\n    url: `${baseURL}${normalizedPath}${search}${hash}`,\n  })\n}\n\nlet historyPatched = false\nlet nativePushState: History[\"pushState\"] | null = null\nlet nativeReplaceState: History[\"replaceState\"] | null = null\n\n// Restore the original history entry before a dialog asks whether to leave.\n// Approval replays the traversal, preserving both the back and forward stacks.\nconst historyIndexKey = \"__kwNavigationIndex\"\nconst readHistoryIndex = (state: unknown): number | null => {\n  const value =\n    state && typeof state === \"object\" ? (state as Record<string, unknown>)[historyIndexKey] : null\n\n  return typeof value === \"number\" && Number.isSafeInteger(value) ? value : null\n}\nlet currentHistoryIndex = isBrowser ? (readHistoryIndex(history.state) ?? 0) : 0\nlet traversalGeneration = 0\nlet restoringTraversal: { origin: number; target: number; url: string; generation: number } | null =\n  null\nlet approvedTraversal: number | null = null\n\nconst handleHistoryTraversal = (event: PopStateEvent) => {\n  const nextIndex = readHistoryIndex(event.state)\n\n  if (restoringTraversal && nextIndex !== null) {\n    const pending = restoringTraversal\n\n    if (nextIndex !== pending.origin) {\n      history.go(pending.origin - nextIndex)\n\n      return\n    }\n\n    restoringTraversal = null\n    const resume = () => {\n      if (pending.generation !== traversalGeneration) return\n\n      if (!runGuards(pending.url, undefined, resume)) return\n\n      traversalGeneration += 1\n      approvedTraversal = pending.target\n      history.go(pending.target - pending.origin)\n    }\n    resume()\n\n    return\n  }\n\n  if (nextIndex !== null && approvedTraversal === nextIndex) {\n    approvedTraversal = null\n    currentHistoryIndex = nextIndex\n    publishLocation()\n\n    return\n  }\n\n  approvedTraversal = null\n  traversalGeneration += 1\n\n  if (guards.size && nextIndex !== null && nextIndex !== currentHistoryIndex) {\n    restoringTraversal = {\n      origin: currentHistoryIndex,\n      target: nextIndex,\n      url: window.location.pathname + window.location.search + window.location.hash,\n      generation: traversalGeneration,\n    }\n    history.go(currentHistoryIndex - nextIndex)\n\n    return\n  }\n\n  currentHistoryIndex = nextIndex ?? currentHistoryIndex\n  publishLocation()\n}\n\nconst nativeReplaceStateGlobalKey = \"__kwNativeHistoryReplaceState\"\nconst suppressHistoryPublishGlobalKey = \"__kwSuppressHistoryPublish\"\n\nconst exposeNativeReplaceState = () => {\n  if (!isBrowser || !nativeReplaceState) return\n\n  ;(window as unknown as Record<string, History[\"replaceState\"]>)[nativeReplaceStateGlobalKey] =\n    nativeReplaceState\n}\n\nconst getSuppressHistoryPublishCount = () => {\n  if (!isBrowser) return 0\n\n  const raw = (window as unknown as Record<string, unknown>)[suppressHistoryPublishGlobalKey]\n\n  return typeof raw === \"number\" && Number.isFinite(raw) ? raw : 0\n}\n\nconst setSuppressHistoryPublishCount = (value: number) => {\n  if (!isBrowser) return\n\n  ;(window as unknown as Record<string, number>)[suppressHistoryPublishGlobalKey] = Math.max(\n    0,\n    value,\n  )\n}\n\nconst withSuppressedHistoryPublish = (callback: () => void) => {\n  const previous = getSuppressHistoryPublishCount()\n  setSuppressHistoryPublishCount(previous + 1)\n  try {\n    callback()\n  } finally {\n    setSuppressHistoryPublishCount(previous)\n  }\n}\n\nexport const initSpaRouter = (options?: { baseUrl?: string; stickyParams?: string[] }) => {\n  baseURL = sanitizeBaseUrl(options?.baseUrl)\n\n  if (options?.stickyParams) {\n    stickyParams = options.stickyParams\n  }\n\n  if (!isBrowser) {\n    publishLocation()\n\n    return\n  }\n\n  if (!historyPatched) {\n    historyPatched = true\n    nativePushState = history.pushState\n    nativeReplaceState = history.replaceState\n    exposeNativeReplaceState()\n    nativeReplaceState.call(\n      history,\n      { ...(history.state ?? {}), [historyIndexKey]: currentHistoryIndex },\n      \"\",\n    )\n\n    if (typeof Proxy !== \"undefined\") {\n      const historyApply = (target: any, thisArg: any, argumentsList: any[]) => {\n        const urlArg = argumentsList && argumentsList.length >= 3 ? argumentsList[2] : undefined\n        const nextIndex = target === nativePushState ? currentHistoryIndex + 1 : currentHistoryIndex\n        argumentsList[0] = { ...(argumentsList[0] ?? {}), [historyIndexKey]: nextIndex }\n        currentHistoryIndex = nextIndex\n        traversalGeneration += 1\n\n        if (getSuppressHistoryPublishCount() > 0) {\n          Reflect.apply(target, thisArg, argumentsList)\n\n          return\n        }\n\n        publishLocation(urlArg)\n        Reflect.apply(target, thisArg, argumentsList)\n      }\n\n      history.pushState = new Proxy(nativePushState, { apply: historyApply })\n      history.replaceState = new Proxy(nativeReplaceState, { apply: historyApply })\n    } else {\n      history.pushState = function pushState(data: any, title: string, url?: string | URL | null) {\n        currentHistoryIndex += 1\n        traversalGeneration += 1\n        arguments[0] = { ...(data ?? {}), [historyIndexKey]: currentHistoryIndex }\n\n        if (getSuppressHistoryPublishCount() > 0) {\n          return nativePushState!.apply(history, arguments as unknown as [any, string, string?])\n        }\n\n        publishLocation(typeof url === \"string\" ? url : url?.toString())\n\n        return nativePushState!.apply(history, arguments as unknown as [any, string, string?])\n      }\n\n      history.replaceState = function replaceState(\n        data: any,\n        title: string,\n        url?: string | URL | null,\n      ) {\n        traversalGeneration += 1\n        arguments[0] = { ...(data ?? {}), [historyIndexKey]: currentHistoryIndex }\n\n        if (getSuppressHistoryPublishCount() > 0) {\n          return nativeReplaceState!.apply(history, arguments as unknown as [any, string, string?])\n        }\n\n        publishLocation(typeof url === \"string\" ? url : url?.toString())\n\n        return nativeReplaceState!.apply(history, arguments as unknown as [any, string, string?])\n      }\n    }\n\n    window.addEventListener(\"popstate\", handleHistoryTraversal)\n  }\n\n  publishLocation()\n}\n\nexport const replaceUrlWithoutPublishing = (nextUrl: string) => {\n  if (!isBrowser) return\n\n  const exposedReplaceState = (\n    window as unknown as Record<string, History[\"replaceState\"] | undefined>\n  )[nativeReplaceStateGlobalKey]\n  const replaceState = exposedReplaceState ?? nativeReplaceState ?? history.replaceState\n  withSuppressedHistoryPublish(() => {\n    Reflect.apply(replaceState, history, [history.state, document.title, nextUrl])\n  })\n}\n\nconst mergeSearchParams = (target: string, options?: SpaNavigateOptions) => {\n  if (!isBrowser) {\n    return target\n  }\n\n  const hashIndex = target.indexOf(\"#\")\n  const hash = hashIndex !== -1 ? target.slice(hashIndex) : \"\"\n  const base = hashIndex !== -1 ? target.slice(0, hashIndex) : target\n  const queryIndex = base.indexOf(\"?\")\n  const pathOnly = queryIndex !== -1 ? base.slice(0, queryIndex) : base\n  const targetQuery = queryIndex !== -1 ? base.slice(queryIndex + 1) : \"\"\n\n  const targetParams = new URLSearchParams(targetQuery)\n  const targetKeys = new Set<string>()\n  targetParams.forEach((_, key) => targetKeys.add(key))\n  const currentParams = new URLSearchParams(window.location.search || \"\")\n  const noSearchParam = options?.noSearchParam ?? true\n\n  if (!noSearchParam) {\n    currentParams.forEach((value, key) => {\n      if (!targetParams.has(key)) {\n        targetParams.append(key, value)\n      }\n    })\n\n    stickyParams.forEach((param) => {\n      if (!targetParams.has(param)) {\n        const stickyValue = currentParams.get(param)\n\n        if (stickyValue !== null) {\n          targetParams.set(param, stickyValue)\n        }\n      }\n    })\n  } else if (stickyParams.length) {\n    stickyParams.forEach((param) => targetParams.delete(param))\n  }\n\n  stripTransientQueryParams(targetParams, targetKeys)\n\n  const serialized = targetParams.toString()\n\n  return `${pathOnly}${serialized ? `?${serialized}` : \"\"}${hash}`\n}\n\nexport const spaNavigate = (to: string, options?: SpaNavigateOptions, callback?: () => unknown) => {\n  if (!isBrowser) return\n\n  const { path, search, hash } = splitTarget(to)\n  const normalizedPath = normalizePath(path)\n  let targetPath = mergeSearchParams(`${normalizedPath}${search}${hash}`, options)\n\n  if (!runGuards(targetPath, options, () => spaNavigate(to, options, callback))) {\n    navLog(\"spaNavigate:blocked-by-guard\", { to, normalizedPath, targetPath, options }, true)\n\n    return\n  }\n\n  callback?.()\n\n  if (options?.replace) {\n    window.history.replaceState(null, \"\", targetPath)\n  } else {\n    window.history.pushState(null, \"\", targetPath)\n  }\n\n  publishLocation(targetPath)\n  window.dispatchEvent(\n    new CustomEvent(\"spa:navigate\", {\n      detail: { to: targetPath },\n    }),\n  )\n}\n\nexport const spaBack = () => {\n  if (typeof window === \"undefined\") return\n\n  window.history.back()\n}\n\nexport const spaLink: Action<HTMLAnchorElement, { onClick?: (e: MouseEvent) => void }> = (\n  node,\n  props,\n) => {\n  const onClick = (event: MouseEvent) => {\n    if (node.dataset.spaPrevent && node.dataset.spaPrevent !== \"false\") {\n      return\n    }\n\n    const anchor = event.currentTarget as HTMLAnchorElement\n\n    if (\n      (anchor.target === \"\" || anchor.target === \"_self\") &&\n      anchor.href.startsWith(window.location.origin)\n    ) {\n      event.preventDefault()\n      const currentUrl = window.location.pathname + window.location.search + window.location.hash\n      const newUrl = anchor.pathname + anchor.search + anchor.hash\n\n      if (currentUrl === newUrl) return\n\n      spaNavigate(anchor.pathname + anchor.search + anchor.hash)\n    }\n  }\n\n  const onClickWrapper = (event: MouseEvent) => {\n    props?.onClick?.(event)\n    onClick(event)\n  }\n\n  node.addEventListener(\"click\", onClickWrapper)\n\n  return {\n    destroy() {\n      node.removeEventListener(\"click\", onClickWrapper)\n    },\n  }\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","import { get, writable, type Writable } from \"svelte/store\"\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport type { Component } from \"svelte\"\n\ntype AnyComponent = Component<any, any, any>\n\nexport type OverlayEntry = {\n  id: string\n  title: string | AnyComponent\n  content: AnyComponent\n  properties?: Record<string, unknown> | null\n  closeOnParentOpen?: boolean\n  active?: boolean\n  hideTillDispatch?: boolean\n  reload?: string | number\n  isDark?: boolean\n  bodyPadding?: \"default\" | \"none\"\n  layout?: \"default\" | \"record\"\n  defaultFullscreen?: boolean\n  defaultMobileFullscreen?: boolean\n  closeDisabled?: boolean\n  beforeClose?: (() => boolean | Promise<boolean>) | null\n  onClose?: (() => void | Promise<void>) | null\n}\n\ntype OverlayInit = Omit<OverlayEntry, \"id\"> & { id?: string }\n\nconst createOverlayId = () => {\n  if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n    return crypto.randomUUID()\n  }\n\n  return `overlay-${Date.now()}-${Math.random().toString(16).slice(2)}`\n}\n\nconst coerceActive = (entry: OverlayInit): boolean => {\n  if (typeof entry.active === \"boolean\") {\n    return entry.active\n  }\n\n  return true\n}\n\nconst normalizeOverlayTitle = (title: unknown, overlayId: string): OverlayEntry[\"title\"] => {\n  if (typeof title === \"string\" || typeof title === \"function\") {\n    return title as OverlayEntry[\"title\"]\n  }\n\n  console.error(\"overlay_title_invalid\", {\n    overlayId,\n    titleType: title === null ? \"null\" : typeof title,\n  })\n\n  return \"Dialog\"\n}\n\nexport const getGlobalStore = <T>(key: string, init: () => Writable<T>): Writable<T> => {\n  const root = (typeof globalThis !== \"undefined\" ? globalThis : window) as Record<string, any>\n  root.__kwOverlayStores = root.__kwOverlayStores ?? {}\n\n  if (!root.__kwOverlayStores[key]) {\n    root.__kwOverlayStores[key] = init()\n  }\n\n  return root.__kwOverlayStores[key] as Writable<T>\n}\n\nexport const overlays = getGlobalStore<OverlayEntry[]>(\"overlays\", () =>\n  writable<OverlayEntry[]>([]),\n)\nexport const isMobile = getGlobalStore<boolean>(\"isMobile\", () => writable(false))\n\nconst notifyOverlayClosed = (entries: OverlayEntry[]) => {\n  for (const entry of entries) {\n    const onClose = entry.onClose\n\n    if (typeof onClose !== \"function\") continue\n\n    try {\n      Promise.resolve(onClose()).catch((error) => {\n        console.error(\"overlay_on_close_failed\", { overlayId: entry.id, error })\n      })\n    } catch (error) {\n      console.error(\"overlay_on_close_failed\", { overlayId: entry.id, error })\n    }\n  }\n}\n\nconst removeClosedOverlayEntries = (ids: Set<string>) => {\n  let closedEntries: OverlayEntry[] = []\n  overlays.update((current) => {\n    closedEntries = current.filter((entry) => ids.has(entry.id))\n    const next = current.filter((entry) => !ids.has(entry.id))\n\n    if (next.length) {\n      next[next.length - 1] = { ...next[next.length - 1], active: true }\n    }\n\n    return next\n  })\n  notifyOverlayClosed(closedEntries)\n}\n\nconst closeOverlayEntries = (entries: OverlayEntry[]) => {\n  const uniqueEntries = Array.from(new Map(entries.map((entry) => [entry.id, entry])).values())\n  removeClosedOverlayEntries(new Set(uniqueEntries.map((entry) => entry.id)))\n}\n\nconst syncIsMobile = (media: MediaQueryList | MediaQueryListEvent) => {\n  isMobile.set(media.matches)\n}\n\nif (typeof window !== \"undefined\") {\n  window.ResizeObserver = window.ResizeObserver ?? ResizeObserver\n  const matcher = window.matchMedia(\"(max-width: 600px)\")\n  syncIsMobile(matcher)\n  matcher.addEventListener(\"change\", syncIsMobile)\n}\n\nexport const openOverlay = (entry: OverlayInit) => {\n  const id = entry.id ?? createOverlayId()\n  let closedEntries: OverlayEntry[] = []\n  overlays.update((current) => {\n    let next = current\n\n    if (entry.closeOnParentOpen) {\n      closedEntries = current\n      next = []\n    } else if (next.length) {\n      next = next.map((item) => ({ ...item, active: false }))\n    }\n\n    return [\n      ...next,\n      {\n        id,\n        title: normalizeOverlayTitle(entry.title, id),\n        content: entry.content,\n        properties: entry.properties ?? null,\n        closeOnParentOpen: entry.closeOnParentOpen,\n        active: coerceActive(entry),\n        hideTillDispatch: entry.hideTillDispatch,\n        reload: entry.reload,\n        isDark: entry.isDark,\n        bodyPadding: entry.layout === \"record\" ? \"none\" : (entry.bodyPadding ?? \"default\"),\n        layout: entry.layout ?? \"default\",\n        defaultFullscreen: entry.defaultFullscreen,\n        defaultMobileFullscreen: entry.defaultMobileFullscreen,\n        closeDisabled: entry.closeDisabled ?? false,\n        beforeClose: entry.beforeClose ?? null,\n        onClose: entry.onClose ?? null,\n      },\n    ]\n  })\n  notifyOverlayClosed(closedEntries)\n\n  return id\n}\n\nexport const closeOverlayById = (id: string) => {\n  closeOverlayEntries(get(overlays).filter((entry) => entry.id === id))\n}\n\nexport const setOverlayCloseDisabled = (id: string, closeDisabled: boolean) => {\n  overlays.update((current) =>\n    current.map((entry) => (entry.id === id ? { ...entry, closeDisabled } : entry)),\n  )\n}\n\nexport const closeOverlaysFromIndex = (startIndex: number) => {\n  const current = get(overlays)\n  closeOverlayEntries(startIndex <= 0 ? current : current.slice(startIndex))\n}\n\nconst pendingCloseRequests = new Set<string>()\n\n/** User-initiated close: every affected dialog can protect unsaved work. */\nexport const requestCloseOverlaysFromIndex = async (\n  startIndex: number,\n  force = false,\n): Promise<boolean> => {\n  const entries = get(overlays).slice(Math.max(0, startIndex))\n\n  if (\n    !entries.length ||\n    entries.some((entry) => pendingCloseRequests.has(entry.id) || (!force && entry.closeDisabled))\n  )\n    return false\n\n  entries.forEach((entry) => pendingCloseRequests.add(entry.id))\n  try {\n    for (const entry of [...entries].reverse()) {\n      if (entry.beforeClose && !(await entry.beforeClose())) return false\n    }\n    const current = get(overlays).slice(Math.max(0, startIndex))\n\n    if (\n      current.length !== entries.length ||\n      current.some((entry, index) => entry.id !== entries[index]?.id)\n    )\n      return false\n\n    closeOverlayEntries(entries)\n\n    return true\n  } finally {\n    entries.forEach((entry) => pendingCloseRequests.delete(entry.id))\n  }\n}\n\nexport const clearOverlays = () => {\n  closeOverlayEntries(get(overlays))\n}\n\ntype ScrollPosition = {\n  top: number\n  left: number\n}\n\nconst scrollPosition: ScrollPosition = { top: 0, left: 0 }\n\nexport const stopScrolling = (position: ScrollPosition = scrollPosition) => {\n  if (typeof window === \"undefined\") return\n\n  position.top = window.scrollY\n  position.left = window.scrollX\n  document.body.classList.add(\"no-scroll\")\n  document.body.style.position = \"fixed\"\n  document.body.style.top = `-${position.top}px`\n  document.body.style.left = `-${position.left}px`\n  document.body.style.right = \"0\"\n  document.body.style.bottom = \"0\"\n}\n\nexport const enableScrolling = (position: ScrollPosition = scrollPosition) => {\n  if (typeof window === \"undefined\") return\n\n  document.body.classList.remove(\"no-scroll\")\n  document.body.style.position = \"\"\n  document.body.style.top = \"\"\n  document.body.style.left = \"\"\n  document.body.style.right = \"\"\n  document.body.style.bottom = \"\"\n  window.scrollTo(position.left, position.top)\n}\n\nexport const changeStateOfSite = (menuOn: boolean) => {\n  if (typeof window === \"undefined\") return\n\n  const locked = document.body.classList.contains(\"no-scroll\")\n\n  if (menuOn && !locked) {\n    stopScrolling()\n  } else if (!menuOn && locked) {\n    enableScrolling()\n  }\n}\n","export type ImportantActionReauthResponse = {\n  expires_at?: string | null\n  reauth_level?: string | null\n}\n\nexport type ImportantActionReauthConfig = {\n  title: string\n  description: string\n  actionLabel?: string\n  cancelLabel?: string\n  /** Keep an existing parent overlay mounted below the reauthentication overlay. */\n  preserveParent?: boolean\n}\n\nexport type ImportantActionReauthResult = {\n  ok: boolean\n  response?: ImportantActionReauthResponse | null\n}\n\nexport type ImportantActionReauthenticator = (\n  password: string,\n) => Promise<ImportantActionReauthResponse | null | undefined>\n\nconst REAUTH_EXPIRY_SAFETY_MS = 5_000\nconst REAUTH_REQUIRED_MESSAGES = [\n  \"erneute authentifizierung erforderlich\",\n  \"erneute authentifizierung ist abgelaufen\",\n  \"erneute authentifizierung ist fuer diese session nicht gueltig\",\n  \"erneute authentifizierung ist für diese session nicht gültig\",\n]\n\nlet recentReauthExpiresAt = 0\n\nconst statusFromError = (err: unknown): number | null => {\n  const candidate = err as { statusCode?: unknown; status?: unknown; statusCodeOrStatus?: unknown }\n  const raw = candidate?.statusCode ?? candidate?.status ?? candidate?.statusCodeOrStatus\n\n  return typeof raw === \"number\" ? raw : null\n}\n\nconst detailToText = (detail: unknown): string => {\n  if (typeof detail === \"string\") return detail\n\n  if (!detail || typeof detail !== \"object\") return \"\"\n\n  const record = detail as Record<string, unknown>\n\n  if (typeof record.detail === \"string\") return record.detail\n\n  if (typeof record.message === \"string\") return record.message\n\n  try {\n    return JSON.stringify(detail)\n  } catch {\n    return \"\"\n  }\n}\n\nconst errorToText = (err: unknown): string => {\n  const record = err as {\n    detail?: unknown\n    payload?: unknown\n    responseText?: unknown\n    message?: unknown\n  }\n\n  return [record?.detail, record?.payload, record?.responseText, record?.message]\n    .map(detailToText)\n    .filter(Boolean)\n    .join(\" \")\n    .toLowerCase()\n}\n\nexport const rememberImportantActionReauth = (response?: ImportantActionReauthResponse | null) => {\n  const rawExpiresAt = response?.expires_at\n\n  if (!rawExpiresAt) {\n    recentReauthExpiresAt = 0\n\n    return\n  }\n\n  const expiresAt = new Date(rawExpiresAt).getTime()\n  recentReauthExpiresAt = Number.isNaN(expiresAt) ? 0 : expiresAt\n}\n\nexport const clearImportantActionReauth = () => {\n  recentReauthExpiresAt = 0\n}\n\nexport const hasRecentImportantActionReauth = () =>\n  recentReauthExpiresAt > Date.now() + REAUTH_EXPIRY_SAFETY_MS\n\nexport const isReauthRequiredError = (err: unknown): boolean => {\n  if (statusFromError(err) !== 403) return false\n\n  const text = errorToText(err)\n\n  return REAUTH_REQUIRED_MESSAGES.some((message) => text.includes(message))\n}\n\nexport const runActionWithReauthRetry = async <T>(\n  action: () => Promise<T>,\n  requestReauth: () => Promise<boolean>,\n): Promise<T | undefined> => {\n  try {\n    return await action()\n  } catch (err) {\n    if (!isReauthRequiredError(err)) throw err\n\n    clearImportantActionReauth()\n    const approved = await requestReauth()\n\n    if (!approved) return undefined\n\n    return await action()\n  }\n}\n","// Material Design Icons v7.4.47\nexport var mdiAbTesting = \"M4 2A2 2 0 0 0 2 4V12H4V8H6V12H8V4A2 2 0 0 0 6 2H4M4 4H6V6H4M22 15.5V14A2 2 0 0 0 20 12H16V22H20A2 2 0 0 0 22 20V18.5A1.54 1.54 0 0 0 20.5 17A1.54 1.54 0 0 0 22 15.5M20 20H18V18H20V20M20 16H18V14H20M5.79 21.61L4.21 20.39L18.21 2.39L19.79 3.61Z\";\nexport var mdiAbacus = \"M5 5H7V11H5V5M10 5H8V11H10V5M5 19H7V13H5V19M10 13H8V19H10V17H15V15H10V13M2 21H4V3H2V21M20 3V7H13V5H11V11H13V9H20V15H18V13H16V19H18V17H20V21H22V3H20Z\";\nexport var mdiAbjadArabic = \"M12 4C10.08 4 8.5 5.58 8.5 7.5C8.5 8.43 8.88 9.28 9.5 9.91C7.97 10.91 7 12.62 7 14.5C7 17.53 9.47 20 12.5 20C14.26 20 16 19.54 17.5 18.66L16.5 16.93C15.28 17.63 13.9 18 12.5 18C10.56 18 9 16.45 9 14.5C9 12.91 10.06 11.53 11.59 11.12L16.8 9.72L16.28 7.79L11.83 9C11.08 8.9 10.5 8.28 10.5 7.5C10.5 6.66 11.16 6 12 6C12.26 6 12.5 6.07 12.75 6.2L13.75 4.47C13.22 4.16 12.61 4 12 4Z\";\nexport var mdiAbjadHebrew = \"M3.9 4L9 10.03C7.58 10.17 6.36 11.18 6 12.59L4 20H6.07L7.92 13.11C8.09 12.46 8.69 12 9.36 12H10.69L17.47 20H20.1L15 13.97C16.42 13.83 17.64 12.82 18 11.41L20 4H17.93L16.08 10.89C15.91 11.54 15.31 12 14.64 12H13.31L6.53 4Z\";\nexport var mdiAbugidaDevanagari = \"M8 3V5H11C12.32 5 13.41 5.83 13.82 7H6V9H14V10H12C9.25 10 7 12.25 7 15C7 17.75 9.25 20 12 20C12.77 20 13.45 19.73 14 19.3V21H16V17H14C13.55 17.62 12.83 18 12 18C10.33 18 9 16.67 9 15C9 13.33 10.33 12 12 12H16V9H18V7H15.9C15.43 4.72 13.41 3 11 3H8Z\";\nexport var mdiAbugidaThai = \"M9 20C9 17.44 10.87 12.42 13.86 7.25C14.29 6.5 15.08 6 16 6C17.12 6 18 6.88 18 8V20H20V8C20 5.8 18.2 4 16 4C14.34 4 12.9 4.92 12.13 6.25C10.56 8.96 9.61 11.15 9 13.03V6.5C9 5.13 7.87 4 6.5 4C5.13 4 4 5.13 4 6.5C4 7.87 5.13 9 6.5 9C6.67 9 6.84 9 7 8.95V20M6.5 6C6.79 6 7 6.21 7 6.5C7 6.79 6.79 7 6.5 7C6.21 7 6 6.79 6 6.5C6 6.21 6.21 6 6.5 6Z\";\nexport var mdiAccessPoint = \"M4.93,4.93C3.12,6.74 2,9.24 2,12C2,14.76 3.12,17.26 4.93,19.07L6.34,17.66C4.89,16.22 4,14.22 4,12C4,9.79 4.89,7.78 6.34,6.34L4.93,4.93M19.07,4.93L17.66,6.34C19.11,7.78 20,9.79 20,12C20,14.22 19.11,16.22 17.66,17.66L19.07,19.07C20.88,17.26 22,14.76 22,12C22,9.24 20.88,6.74 19.07,4.93M7.76,7.76C6.67,8.85 6,10.35 6,12C6,13.65 6.67,15.15 7.76,16.24L9.17,14.83C8.45,14.11 8,13.11 8,12C8,10.89 8.45,9.89 9.17,9.17L7.76,7.76M16.24,7.76L14.83,9.17C15.55,9.89 16,10.89 16,12C16,13.11 15.55,14.11 14.83,14.83L16.24,16.24C17.33,15.15 18,13.65 18,12C18,10.35 17.33,8.85 16.24,7.76M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiAccessPointCheck = \"M20.59 14.84L21.75 16.25L17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84M19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12V12.34C20.68 12.59 21.33 12.96 21.88 13.43C21.95 12.96 22 12.5 22 12C22 9.24 20.88 6.74 19.07 4.93M15.96 12.36C16.6 12.13 17.28 12 18 12C18 10.35 17.33 8.85 16.24 7.76L14.83 9.17C15.55 9.89 16 10.89 16 12C16 12.12 15.97 12.24 15.96 12.36M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M6.34 6.34L4.93 4.93C3.12 6.74 2 9.24 2 12S3.12 17.26 4.93 19.07L6.34 17.66C4.89 16.22 4 14.22 4 12C4 9.79 4.89 7.78 6.34 6.34M7.76 7.76C6.67 8.85 6 10.35 6 12S6.67 15.15 7.76 16.24L9.17 14.83C8.45 14.11 8 13.11 8 12S8.45 9.89 9.17 9.17L7.76 7.76Z\";\nexport var mdiAccessPointMinus = \"M16 12C16 10.89 15.55 9.89 14.83 9.17L16.24 7.76C17.33 8.85 18 10.35 18 12C17.28 12 16.6 12.13 15.96 12.36C15.97 12.24 16 12.12 16 12M20 12.34C20.68 12.59 21.33 12.96 21.88 13.43C21.95 12.96 22 12.5 22 12C22 9.24 20.88 6.74 19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12C20 12.12 20 12.23 20 12.34M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M7.76 7.76C6.67 8.85 6 10.35 6 12S6.67 15.15 7.76 16.24L9.17 14.83C8.45 14.11 8 13.11 8 12S8.45 9.89 9.17 9.17L7.76 7.76M6.34 6.34L4.93 4.93C3.12 6.74 2 9.24 2 12S3.12 17.26 4.93 19.07L6.34 17.66C4.89 16.22 4 14.22 4 12C4 9.79 4.89 7.78 6.34 6.34M14 19H22V17H14V19Z\";\nexport var mdiAccessPointNetwork = \"M4.93,3.93C3.12,5.74 2,8.24 2,11C2,13.76 3.12,16.26 4.93,18.07L6.34,16.66C4.89,15.22 4,13.22 4,11C4,8.79 4.89,6.78 6.34,5.34L4.93,3.93M19.07,3.93L17.66,5.34C19.11,6.78 20,8.79 20,11C20,13.22 19.11,15.22 17.66,16.66L19.07,18.07C20.88,16.26 22,13.76 22,11C22,8.24 20.88,5.74 19.07,3.93M7.76,6.76C6.67,7.85 6,9.35 6,11C6,12.65 6.67,14.15 7.76,15.24L9.17,13.83C8.45,13.11 8,12.11 8,11C8,9.89 8.45,8.89 9.17,8.17L7.76,6.76M16.24,6.76L14.83,8.17C15.55,8.89 16,9.89 16,11C16,12.11 15.55,13.11 14.83,13.83L16.24,15.24C17.33,14.15 18,12.65 18,11C18,9.35 17.33,7.85 16.24,6.76M12,9A2,2 0 0,0 10,11A2,2 0 0,0 12,13A2,2 0 0,0 14,11A2,2 0 0,0 12,9M11,15V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15A1,1 0 0,0 14,19H13V15H11Z\";\nexport var mdiAccessPointNetworkOff = \"M14.83,13.83C15.55,13.11 16,12.11 16,11C16,9.89 15.55,8.89 14.83,8.17L16.24,6.76C17.33,7.85 18,9.35 18,11C18,12.65 17.33,14.15 16.24,15.24L14.83,13.83M14,11A2,2 0 0,0 12,9C11.4,9 10.87,9.27 10.5,9.68L13.32,12.5C13.73,12.13 14,11.6 14,11M17.66,16.66L19.07,18.07C20.88,16.26 22,13.76 22,11C22,8.24 20.88,5.74 19.07,3.93L17.66,5.34C19.11,6.78 20,8.79 20,11C20,13.22 19.11,15.22 17.66,16.66M22,21.18V20H20.82L22,21.18M20.27,22L21,22.73L19.73,24L17.73,22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V15.27L8.34,12.61C8.54,13.07 8.82,13.5 9.17,13.83L7.76,15.24C6.67,14.15 6,12.65 6,11C6,10.77 6,10.54 6.04,10.31L4.37,8.64C4.14,9.39 4,10.18 4,11C4,13.22 4.89,15.22 6.34,16.66L4.93,18.07C3.12,16.26 2,13.76 2,11C2,9.61 2.29,8.28 2.81,7.08L1,5.27L2.28,4L3.7,5.42L5.15,6.87L6.63,8.35V8.35L8.17,9.9L10.28,12L11,12.71L18.27,20H18.28L20.28,22H20.27M15.73,20L13,17.27V19H14A1,1 0 0,1 15,20H15.73Z\";\nexport var mdiAccessPointOff = \"M20.84 22.73L12.1 14C12.06 14 12.03 14 12 14C10.9 14 10 13.11 10 12C10 11.97 10 11.94 10 11.9L8.4 10.29C8.15 10.81 8 11.38 8 12C8 13.11 8.45 14.11 9.17 14.83L7.76 16.24C6.67 15.15 6 13.65 6 12C6 10.83 6.34 9.74 6.93 8.82L5.5 7.37C4.55 8.67 4 10.27 4 12C4 14.22 4.89 16.22 6.34 17.66L4.93 19.07C3.12 17.26 2 14.76 2 12C2 9.72 2.77 7.63 4.06 5.95L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M15.93 12.73L17.53 14.33C17.83 13.61 18 12.83 18 12C18 10.35 17.33 8.85 16.24 7.76L14.83 9.17C15.55 9.89 16 10.89 16 12C16 12.25 15.97 12.5 15.93 12.73M19.03 15.83L20.5 17.28C21.44 15.75 22 13.94 22 12C22 9.24 20.88 6.74 19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12C20 13.39 19.65 14.7 19.03 15.83Z\";\nexport var mdiAccessPointPlus = \"M16 12C16 10.89 15.55 9.89 14.83 9.17L16.24 7.76C17.33 8.85 18 10.35 18 12C17.28 12 16.6 12.13 15.96 12.36C15.97 12.24 16 12.12 16 12M20 12.34C20.68 12.59 21.33 12.96 21.88 13.43C21.95 12.96 22 12.5 22 12C22 9.24 20.88 6.74 19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12C20 12.12 20 12.23 20 12.34M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M6.34 6.34L4.93 4.93C3.12 6.74 2 9.24 2 12S3.12 17.26 4.93 19.07L6.34 17.66C4.89 16.22 4 14.22 4 12C4 9.79 4.89 7.78 6.34 6.34M7.76 7.76C6.67 8.85 6 10.35 6 12S6.67 15.15 7.76 16.24L9.17 14.83C8.45 14.11 8 13.11 8 12S8.45 9.89 9.17 9.17L7.76 7.76M19 14H17V17H14V19H17V22H19V19H22V17H19V14Z\";\nexport var mdiAccessPointRemove = \"M16 12C16 10.89 15.55 9.89 14.83 9.17L16.24 7.76C17.33 8.85 18 10.35 18 12C17.28 12 16.6 12.13 15.96 12.36C15.97 12.24 16 12.12 16 12M6.34 6.34L4.93 4.93C3.12 6.74 2 9.24 2 12S3.12 17.26 4.93 19.07L6.34 17.66C4.89 16.22 4 14.22 4 12C4 9.79 4.89 7.78 6.34 6.34M19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12C20 12.12 20 12.23 20 12.34C20.68 12.59 21.33 12.96 21.88 13.43C21.95 12.96 22 12.5 22 12C22 9.24 20.88 6.74 19.07 4.93M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M7.76 7.76C6.67 8.85 6 10.35 6 12S6.67 15.15 7.76 16.24L9.17 14.83C8.45 14.11 8 13.11 8 12S8.45 9.89 9.17 9.17L7.76 7.76M20.12 14.46L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.53L18 19.41L20.12 21.53L21.53 20.12L19.41 18L21.53 15.88L20.12 14.46Z\";\nexport var mdiAccount = \"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\";\nexport var mdiAccountAlert = \"M10 4A4 4 0 0 1 14 8A4 4 0 0 1 10 12A4 4 0 0 1 6 8A4 4 0 0 1 10 4M10 14C14.42 14 18 15.79 18 18V20H2V18C2 15.79 5.58 14 10 14M20 12V7H22V13H20M20 17V15H22V17H20Z\";\nexport var mdiAccountAlertOutline = \"M20 12V7H22V13H20M20 17H22V15H20M10 13C12.67 13 18 14.34 18 17V20H2V17C2 14.34 7.33 13 10 13M10 4A4 4 0 0 1 14 8A4 4 0 0 1 10 12A4 4 0 0 1 6 8A4 4 0 0 1 10 4M10 14.9C7.03 14.9 3.9 16.36 3.9 17V18.1H16.1V17C16.1 16.36 12.97 14.9 10 14.9M10 5.9A2.1 2.1 0 0 0 7.9 8A2.1 2.1 0 0 0 10 10.1A2.1 2.1 0 0 0 12.1 8A2.1 2.1 0 0 0 10 5.9Z\";\nexport var mdiAccountArrowDown = \"M19 18V14H17V18H15L18 21L21 18H19M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14\";\nexport var mdiAccountArrowDownOutline = \"M19 18V14H17V18H15L18 21L21 18H19M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 6C12.1 6 13 6.9 13 8S12.1 10 11 10 9 9.1 9 8 9.9 6 11 6M11 13C8.3 13 3 14.3 3 17V20H12.5C12.2 19.4 12.1 18.8 12 18.1H4.9V17C4.9 16.4 8 14.9 11 14.9C11.5 14.9 12 15 12.5 15C12.8 14.4 13.1 13.8 13.6 13.3C12.6 13.1 11.7 13 11 13\";\nexport var mdiAccountArrowLeft = \"M17 18H21V16H17V14L14 17L17 20V18M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14\";\nexport var mdiAccountArrowLeftOutline = \"M17 18H21V16H17V14L14 17L17 20V18M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 6C12.1 6 13 6.9 13 8S12.1 10 11 10 9 9.1 9 8 9.9 6 11 6M11 13C8.3 13 3 14.3 3 17V20H12.5C12.2 19.4 12.1 18.8 12 18.1H4.9V17C4.9 16.4 8 14.9 11 14.9C11.5 14.9 12 15 12.5 15C12.8 14.4 13.1 13.8 13.6 13.3C12.6 13.1 11.7 13 11 13\";\nexport var mdiAccountArrowRight = \"M18 16H14V18H18V20L21 17L18 14V16M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14\";\nexport var mdiAccountArrowRightOutline = \"M18 16H14V18H18V20L21 17L18 14V16M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 6C12.1 6 13 6.9 13 8S12.1 10 11 10 9 9.1 9 8 9.9 6 11 6M11 13C8.3 13 3 14.3 3 17V20H12.5C12.2 19.4 12.1 18.8 12 18.1H4.9V17C4.9 16.4 8 14.9 11 14.9C11.5 14.9 12 15 12.5 15C12.8 14.4 13.1 13.8 13.6 13.3C12.6 13.1 11.7 13 11 13\";\nexport var mdiAccountArrowUp = \"M17 17V21H19V17H21L18 14L15 17H17M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14\";\nexport var mdiAccountArrowUpOutline = \"M17 17V21H19V17H21L18 14L15 17H17M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 6C12.1 6 13 6.9 13 8S12.1 10 11 10 9 9.1 9 8 9.9 6 11 6M11 13C8.3 13 3 14.3 3 17V20H12.5C12.2 19.4 12.1 18.8 12 18.1H4.9V17C4.9 16.4 8 14.9 11 14.9C11.5 14.9 12 15 12.5 15C12.8 14.4 13.1 13.8 13.6 13.3C12.6 13.1 11.7 13 11 13\";\nexport var mdiAccountBadge = \"M14 19.5C14 17.5 15.1 15.7 16.7 14.8C15.4 14.3 13.8 14 12 14C7.6 14 4 15.8 4 18V20H14V19.5M19.5 16C17.6 16 16 17.6 16 19.5S17.6 23 19.5 23 23 21.4 23 19.5 21.4 16 19.5 16M16 8C16 10.2 14.2 12 12 12S8 10.2 8 8 9.8 4 12 4 16 5.8 16 8Z\";\nexport var mdiAccountBadgeOutline = \"M14 20H4V17C4 14.3 9.3 13 12 13C13.5 13 15.9 13.4 17.7 14.3C16.9 14.6 16.3 15 15.7 15.5C14.6 15.1 13.3 14.9 12 14.9C9 14.9 5.9 16.4 5.9 17V18.1H14.2C14.1 18.5 14 19 14 19.5V20M23 19.5C23 21.4 21.4 23 19.5 23S16 21.4 16 19.5 17.6 16 19.5 16 23 17.6 23 19.5M12 6C13.1 6 14 6.9 14 8S13.1 10 12 10 10 9.1 10 8 10.9 6 12 6M12 4C9.8 4 8 5.8 8 8S9.8 12 12 12 16 10.2 16 8 14.2 4 12 4Z\";\nexport var mdiAccountBox = \"M6,17C6,15 10,13.9 12,13.9C14,13.9 18,15 18,17V18H6M15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6A3,3 0 0,1 15,9M3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5C3.89,3 3,3.9 3,5Z\";\nexport var mdiAccountBoxEditOutline = \"M21.7 13.58L20.42 12.3C20.21 12.09 19.86 12.09 19.65 12.3L18.65 13.3L20.7 15.35L21.7 14.35C21.91 14.14 21.91 13.79 21.7 13.58M12 22H14.06L20.11 15.93L18.06 13.88L12 19.94V22M10 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 4.47 3.21 3.96 3.59 3.59C3.96 3.21 4.47 3 5 3H19C20.1 3 21 3.89 21 5V10.33C20.36 10.07 19.63 10.08 19 10.36V5H5V19H10.11L10 19.11V21M14.62 14.5L12.11 17H7.5V16.25C7.5 14.75 10.5 14 12 14C12.7 14 13.73 14.16 14.62 14.5M13.59 11.59C13.17 12 12.6 12.25 12 12.25C11.4 12.25 10.83 12 10.41 11.59C10 11.17 9.75 10.6 9.75 10C9.75 9.4 10 8.83 10.41 8.41C10.83 8 11.4 7.75 12 7.75C12.6 7.75 13.17 8 13.59 8.41C14 8.83 14.25 9.4 14.25 10C14.25 10.6 14 11.17 13.59 11.59Z\";\nexport var mdiAccountBoxMinusOutline = \"M13.4 14.15C12.73 14.95 12.26 15.93 12.08 17H7.5V16.25C7.5 14.75 10.5 14 12 14C12.39 14 12.88 14.05 13.4 14.15M19 5V12.08C19.72 12.2 20.39 12.45 21 12.8V5C21 3.89 20.1 3 19 3H5C4.47 3 3.96 3.21 3.59 3.59C3.21 3.96 3 4.47 3 5V19C3 19.53 3.21 20.04 3.59 20.41C3.96 20.79 4.47 21 5 21H12.8C12.45 20.39 12.2 19.72 12.08 19H5V5H19M12 12.25C12.6 12.25 13.17 12 13.59 11.59C14 11.17 14.25 10.6 14.25 10C14.25 9.4 14 8.83 13.59 8.41C13.17 8 12.6 7.75 12 7.75C11.4 7.75 10.83 8 10.41 8.41C10 8.83 9.75 9.4 9.75 10C9.75 10.6 10 11.17 10.41 11.59C10.83 12 11.4 12.25 12 12.25M22 17V19H14V17H22Z\";\nexport var mdiAccountBoxMultiple = \"M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H8A2,2 0 0,1 6,16V4A2,2 0 0,1 8,2H20M17,7A3,3 0 0,0 14,4A3,3 0 0,0 11,7A3,3 0 0,0 14,10A3,3 0 0,0 17,7M8,15V16H20V15C20,13 16,11.9 14,11.9C12,11.9 8,13 8,15Z\";\nexport var mdiAccountBoxMultipleOutline = \"M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6M18.5 14.25C18.5 12.75 15.5 12 14 12S9.5 12.75 9.5 14.25V15H18.5M14 10.25C15.24 10.25 16.25 9.24 16.25 8S15.24 5.75 14 5.75 11.75 6.76 11.75 8 12.76 10.25 14 10.25M20 2H8C6.9 2 6 2.9 6 4V16C6 17.11 6.9 18 8 18H20C21.11 18 22 17.11 22 16V4C22 2.89 21.1 2 20 2M20 16H8V4H20V16Z\";\nexport var mdiAccountBoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M16.5,16.25C16.5,14.75 13.5,14 12,14C10.5,14 7.5,14.75 7.5,16.25V17H16.5M12,12.25A2.25,2.25 0 0,0 14.25,10A2.25,2.25 0 0,0 12,7.75A2.25,2.25 0 0,0 9.75,10A2.25,2.25 0 0,0 12,12.25Z\";\nexport var mdiAccountBoxPlusOutline = \"M13.4 14.15C12.73 14.95 12.26 15.93 12.08 17H7.5V16.25C7.5 14.75 10.5 14 12 14C12.39 14 12.88 14.05 13.4 14.15M19 5V12.08C19.72 12.2 20.39 12.45 21 12.8V5C21 3.89 20.1 3 19 3H5C4.47 3 3.96 3.21 3.59 3.59C3.21 3.96 3 4.47 3 5V19C3 19.53 3.21 20.04 3.59 20.41C3.96 20.79 4.47 21 5 21H12.8C12.45 20.39 12.2 19.72 12.08 19H5V5H19M12 12.25C12.6 12.25 13.17 12 13.59 11.59C14 11.17 14.25 10.6 14.25 10C14.25 9.4 14 8.83 13.59 8.41C13.17 8 12.6 7.75 12 7.75C11.4 7.75 10.83 8 10.41 8.41C10 8.83 9.75 9.4 9.75 10C9.75 10.6 10 11.17 10.41 11.59C10.83 12 11.4 12.25 12 12.25M17 14H19V17H22V19H19V22H17V19H14V17H17V14Z\";\nexport var mdiAccountCancel = \"M10 4A4 4 0 0 0 6 8A4 4 0 0 0 10 12A4 4 0 0 0 14 8A4 4 0 0 0 10 4M17.5 13C15 13 13 15 13 17.5C13 20 15 22 17.5 22C20 22 22 20 22 17.5C22 15 20 13 17.5 13M10 14C5.58 14 2 15.79 2 18V20H11.5A6.5 6.5 0 0 1 11 17.5A6.5 6.5 0 0 1 11.95 14.14C11.32 14.06 10.68 14 10 14M17.5 14.5C19.16 14.5 20.5 15.84 20.5 17.5C20.5 18.06 20.35 18.58 20.08 19L16 14.92C16.42 14.65 16.94 14.5 17.5 14.5M14.92 16L19 20.08C18.58 20.35 18.06 20.5 17.5 20.5C15.84 20.5 14.5 19.16 14.5 17.5C14.5 16.94 14.65 16.42 14.92 16Z\";\nexport var mdiAccountCancelOutline = \"M10 4A4 4 0 0 0 6 8A4 4 0 0 0 10 12A4 4 0 0 0 14 8A4 4 0 0 0 10 4M10 6A2 2 0 0 1 12 8A2 2 0 0 1 10 10A2 2 0 0 1 8 8A2 2 0 0 1 10 6M10 13C7.33 13 2 14.33 2 17V20H11.5A6.5 6.5 0 0 1 11.03 18.1H3.9V17C3.9 16.36 7.03 14.9 10 14.9C10.5 14.9 11 14.95 11.5 15.03A6.5 6.5 0 0 1 12.55 13.29C11.61 13.1 10.71 13 10 13M17.5 13C15 13 13 15 13 17.5C13 20 15 22 17.5 22C20 22 22 20 22 17.5C22 15 20 13 17.5 13M17.5 14.5C19.16 14.5 20.5 15.84 20.5 17.5C20.5 18.06 20.35 18.58 20.08 19L16 14.92C16.42 14.65 16.94 14.5 17.5 14.5M14.92 16L19 20.08C18.58 20.35 18.06 20.5 17.5 20.5C15.84 20.5 14.5 19.16 14.5 17.5C14.5 16.94 14.65 16.42 14.92 16Z\";\nexport var mdiAccountCard = \"M7 12C9.2 12 11 10.2 11 8S9.2 4 7 4 3 5.8 3 8 4.8 12 7 12M11 20V14.7C9.9 14.3 8.5 14 7 14C3.1 14 0 15.8 0 18V20H11M15 4C13.9 4 13 4.9 13 6V18C13 19.1 13.9 20 15 20H22C23.1 20 24 19.1 24 18V6C24 4.9 23.1 4 22 4H15Z\";\nexport var mdiAccountCardOutline = \"M7 4C4.8 4 3 5.8 3 8S4.8 12 7 12 11 10.2 11 8 9.2 4 7 4M7 10C5.9 10 5 9.1 5 8S5.9 6 7 6 9 6.9 9 8 8.1 10 7 10M0 18C0 15.8 3.1 14 7 14C8.5 14 9.9 14.3 11 14.7V17C10.2 16.5 8.8 16 7 16C3.8 16 2 17.4 2 18H11V20H0V18M22 4H15C13.9 4 13 4.9 13 6V18C13 19.1 13.9 20 15 20H22C23.1 20 24 19.1 24 18V6C24 4.9 23.1 4 22 4M22 18H15V6H22V18Z\";\nexport var mdiAccountCash = \"M11 8C11 10.21 9.21 12 7 12C4.79 12 3 10.21 3 8C3 5.79 4.79 4 7 4C9.21 4 11 5.79 11 8M11 14.72V20H0V18C0 15.79 3.13 14 7 14C8.5 14 9.87 14.27 11 14.72M24 20H13V3H24V20M16 11.5C16 10.12 17.12 9 18.5 9C19.88 9 21 10.12 21 11.5C21 12.88 19.88 14 18.5 14C17.12 14 16 12.88 16 11.5M22 7C20.9 7 20 6.11 20 5H17C17 6.11 16.11 7 15 7V16C16.11 16 17 16.9 17 18H20C20 16.9 20.9 16 22 16V7Z\";\nexport var mdiAccountCashOutline = \"M16 11.5C16 10.12 17.12 9 18.5 9S21 10.12 21 11.5 19.88 14 18.5 14 16 12.88 16 11.5M13 3V20H24V3H13M22 16C20.9 16 20 16.9 20 18H17C17 16.9 16.11 16 15 16V7C16.11 7 17 6.11 17 5H20C20 6.11 20.9 7 22 7V16M7 6C8.1 6 9 6.9 9 8S8.1 10 7 10 5 9.1 5 8 5.9 6 7 6M7 4C4.79 4 3 5.79 3 8S4.79 12 7 12 11 10.21 11 8 9.21 4 7 4M7 14C3.13 14 0 15.79 0 18V20H11V18H2C2 17.42 3.75 16 7 16C8.83 16 10.17 16.45 11 16.95V14.72C9.87 14.27 8.5 14 7 14Z\";\nexport var mdiAccountCheck = \"M21.1,12.5L22.5,13.91L15.97,20.5L12.5,17L13.9,15.59L15.97,17.67L21.1,12.5M10,17L13,20H3V18C3,15.79 6.58,14 11,14L12.89,14.11L10,17M11,4A4,4 0 0,1 15,8A4,4 0 0,1 11,12A4,4 0 0,1 7,8A4,4 0 0,1 11,4Z\";\nexport var mdiAccountCheckOutline = \"M21.1,12.5L22.5,13.91L15.97,20.5L12.5,17L13.9,15.59L15.97,17.67L21.1,12.5M11,4A4,4 0 0,1 15,8A4,4 0 0,1 11,12A4,4 0 0,1 7,8A4,4 0 0,1 11,4M11,6A2,2 0 0,0 9,8A2,2 0 0,0 11,10A2,2 0 0,0 13,8A2,2 0 0,0 11,6M11,13C11.68,13 12.5,13.09 13.41,13.26L11.74,14.93L11,14.9C8.03,14.9 4.9,16.36 4.9,17V18.1H11.1L13,20H3V17C3,14.34 8.33,13 11,13Z\";\nexport var mdiAccountChild = \"M12,2A3,3 0 0,1 15,5A3,3 0 0,1 12,8A3,3 0 0,1 9,5A3,3 0 0,1 12,2M12,9C13.63,9 15.12,9.35 16.5,10.05C17.84,10.76 18.5,11.61 18.5,12.61V18.38C18.5,19.5 17.64,20.44 15.89,21.19V19C15.89,18.05 15.03,17.38 13.31,16.97C12.75,16.84 12.31,16.78 12,16.78C11.13,16.78 10.3,16.95 9.54,17.3C8.77,17.64 8.31,18.08 8.16,18.61C9.5,19.14 10.78,19.41 12,19.41L13,19.31V21.94L12,22C10.63,22 9.33,21.72 8.11,21.19C6.36,20.44 5.5,19.5 5.5,18.38V12.61C5.5,11.61 6.16,10.76 7.5,10.05C8.88,9.35 10.38,9 12,9M12,11A2,2 0 0,0 10,13A2,2 0 0,0 12,15A2,2 0 0,0 14,13A2,2 0 0,0 12,11Z\";\nexport var mdiAccountChildCircle = \"M12,12A1.5,1.5 0 0,1 13.5,13.5A1.5,1.5 0 0,1 12,15A1.5,1.5 0 0,1 10.5,13.5A1.5,1.5 0 0,1 12,12M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,16C12.72,16 13.4,16.15 14.04,16.5C14.68,16.8 15,17.2 15,17.67V19.41C16.34,18.81 17,18.08 17,17.2V12.8C17,12 16.5,11.35 15.45,10.8C14.4,10.26 13.25,10 12,10C10.75,10 9.6,10.26 8.55,10.8C7.5,11.35 7,12 7,12.8V17.2C7,18 7.53,18.69 8.63,19.22C9.72,19.75 10.84,20 12,20L13,19.92V17.91L12,18C11,18 10,17.8 9.05,17.39C9.17,17 9.53,16.69 10.13,16.41C10.72,16.13 11.34,16 12,16M12,4A2.5,2.5 0 0,0 9.5,6.5A2.5,2.5 0 0,0 12,9A2.5,2.5 0 0,0 14.5,6.5A2.5,2.5 0 0,0 12,4Z\";\nexport var mdiAccountChildOutline = \"M12 17C10.9 17 10 16.1 10 15C10 13.9 10.9 13 12 13C13.1 13 14 13.9 14 15C14 16.1 13.1 17 12 17M12 10C14.34 10 19 11.16 19 13.5V18.63C19 19.5 18.31 20.24 17.34 20.79V13.38C17.34 12.82 14.6 11.54 12 11.54C9.4 11.54 6.66 12.82 6.66 13.38V18.75C6.66 19 7.31 19.46 8.28 19.85C9 19 10.93 18.56 12 18.56C13.33 18.56 16 19.22 16 20.56V21.39C14.63 21.88 13.07 22.13 12 22.13C10.93 22.13 9.38 21.88 8 21.39H8C6.37 20.81 5 19.89 5 18.63V13.5C5 11.16 9.66 10 12 10M12 3.75C11.03 3.75 10.25 4.53 10.25 5.5C10.25 6.47 11.03 7.25 12 7.25C12.97 7.25 13.75 6.47 13.75 5.5C13.75 4.53 12.97 3.75 12 3.75M12 9C10.07 9 8.5 7.43 8.5 5.5C8.5 3.57 10.07 2 12 2C13.93 2 15.5 3.57 15.5 5.5C15.5 7.43 13.93 9 12 9Z\";\nexport var mdiAccountCircle = \"M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\";\nexport var mdiAccountCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\";\nexport var mdiAccountClock = \"M10.63,14.1C12.23,10.58 16.38,9.03 19.9,10.63C23.42,12.23 24.97,16.38 23.37,19.9C22.24,22.4 19.75,24 17,24C14.3,24 11.83,22.44 10.67,20H1V18C1.06,16.86 1.84,15.93 3.34,15.18C4.84,14.43 6.72,14.04 9,14C9.57,14 10.11,14.05 10.63,14.1V14.1M9,4C10.12,4.03 11.06,4.42 11.81,5.17C12.56,5.92 12.93,6.86 12.93,8C12.93,9.14 12.56,10.08 11.81,10.83C11.06,11.58 10.12,11.95 9,11.95C7.88,11.95 6.94,11.58 6.19,10.83C5.44,10.08 5.07,9.14 5.07,8C5.07,6.86 5.44,5.92 6.19,5.17C6.94,4.42 7.88,4.03 9,4M17,22A5,5 0 0,0 22,17A5,5 0 0,0 17,12A5,5 0 0,0 12,17A5,5 0 0,0 17,22M16,14H17.5V16.82L19.94,18.23L19.19,19.53L16,17.69V14Z\";\nexport var mdiAccountClockOutline = \"M16,14H17.5V16.82L19.94,18.23L19.19,19.53L16,17.69V14M17,12A5,5 0 0,0 12,17A5,5 0 0,0 17,22A5,5 0 0,0 22,17A5,5 0 0,0 17,12M17,10A7,7 0 0,1 24,17A7,7 0 0,1 17,24C14.21,24 11.8,22.36 10.67,20H1V17C1,14.34 6.33,13 9,13C9.6,13 10.34,13.07 11.12,13.2C12.36,11.28 14.53,10 17,10M10,17C10,16.3 10.1,15.62 10.29,15C9.87,14.93 9.43,14.9 9,14.9C6.03,14.9 2.9,16.36 2.9,17V18.1H10.09C10.03,17.74 10,17.37 10,17M9,4A4,4 0 0,1 13,8A4,4 0 0,1 9,12A4,4 0 0,1 5,8A4,4 0 0,1 9,4M9,5.9A2.1,2.1 0 0,0 6.9,8A2.1,2.1 0 0,0 9,10.1A2.1,2.1 0 0,0 11.1,8A2.1,2.1 0 0,0 9,5.9Z\";\nexport var mdiAccountCog = \"M10 4A4 4 0 0 0 6 8A4 4 0 0 0 10 12A4 4 0 0 0 14 8A4 4 0 0 0 10 4M17 12C16.87 12 16.76 12.09 16.74 12.21L16.55 13.53C16.25 13.66 15.96 13.82 15.7 14L14.46 13.5C14.35 13.5 14.22 13.5 14.15 13.63L13.15 15.36C13.09 15.47 13.11 15.6 13.21 15.68L14.27 16.5C14.25 16.67 14.24 16.83 14.24 17C14.24 17.17 14.25 17.33 14.27 17.5L13.21 18.32C13.12 18.4 13.09 18.53 13.15 18.64L14.15 20.37C14.21 20.5 14.34 20.5 14.46 20.5L15.7 20C15.96 20.18 16.24 20.35 16.55 20.47L16.74 21.79C16.76 21.91 16.86 22 17 22H19C19.11 22 19.22 21.91 19.24 21.79L19.43 20.47C19.73 20.34 20 20.18 20.27 20L21.5 20.5C21.63 20.5 21.76 20.5 21.83 20.37L22.83 18.64C22.89 18.53 22.86 18.4 22.77 18.32L21.7 17.5C21.72 17.33 21.74 17.17 21.74 17C21.74 16.83 21.73 16.67 21.7 16.5L22.76 15.68C22.85 15.6 22.88 15.47 22.82 15.36L21.82 13.63C21.76 13.5 21.63 13.5 21.5 13.5L20.27 14C20 13.82 19.73 13.65 19.42 13.53L19.23 12.21C19.22 12.09 19.11 12 19 12H17M10 14C5.58 14 2 15.79 2 18V20H11.68A7 7 0 0 1 11 17A7 7 0 0 1 11.64 14.09C11.11 14.03 10.56 14 10 14M18 15.5C18.83 15.5 19.5 16.17 19.5 17C19.5 17.83 18.83 18.5 18 18.5C17.16 18.5 16.5 17.83 16.5 17C16.5 16.17 17.17 15.5 18 15.5Z\";\nexport var mdiAccountCogOutline = \"M10 4A4 4 0 0 0 6 8A4 4 0 0 0 10 12A4 4 0 0 0 14 8A4 4 0 0 0 10 4M10 6A2 2 0 0 1 12 8A2 2 0 0 1 10 10A2 2 0 0 1 8 8A2 2 0 0 1 10 6M17 12C16.84 12 16.76 12.08 16.76 12.24L16.5 13.5C16.28 13.68 15.96 13.84 15.72 14L14.44 13.5C14.36 13.5 14.2 13.5 14.12 13.6L13.16 15.36C13.08 15.44 13.08 15.6 13.24 15.68L14.28 16.5V17.5L13.24 18.32C13.16 18.4 13.08 18.56 13.16 18.64L14.12 20.4C14.2 20.5 14.36 20.5 14.44 20.5L15.72 20C15.96 20.16 16.28 20.32 16.5 20.5L16.76 21.76C16.76 21.92 16.84 22 17 22H19C19.08 22 19.24 21.92 19.24 21.76L19.4 20.5C19.72 20.32 20.04 20.16 20.28 20L21.5 20.5C21.64 20.5 21.8 20.5 21.8 20.4L22.84 18.64C22.92 18.56 22.84 18.4 22.76 18.32L21.72 17.5V16.5L22.76 15.68C22.84 15.6 22.92 15.44 22.84 15.36L21.8 13.6C21.8 13.5 21.64 13.5 21.5 13.5L20.28 14C20.04 13.84 19.72 13.68 19.4 13.5L19.24 12.24C19.24 12.08 19.08 12 19 12H17M10 13C7.33 13 2 14.33 2 17V20H11.67C11.39 19.41 11.19 18.77 11.09 18.1H3.9V17C3.9 16.36 7.03 14.9 10 14.9C10.43 14.9 10.87 14.94 11.3 15C11.5 14.36 11.77 13.76 12.12 13.21C11.34 13.08 10.6 13 10 13M18.04 15.5C18.84 15.5 19.5 16.16 19.5 17.04C19.5 17.84 18.84 18.5 18.04 18.5C17.16 18.5 16.5 17.84 16.5 17.04C16.5 16.16 17.16 15.5 18.04 15.5Z\";\nexport var mdiAccountConvert = \"M12 0L11.34 .03L15.15 3.84L16.5 2.5C19.75 4.07 22.09 7.24 22.45 11H23.95C23.44 4.84 18.29 0 12 0M12 4C10.07 4 8.5 5.57 8.5 7.5C8.5 9.43 10.07 11 12 11C13.93 11 15.5 9.43 15.5 7.5C15.5 5.57 13.93 4 12 4M.05 13C.56 19.16 5.71 24 12 24L12.66 23.97L8.85 20.16L7.5 21.5C4.25 19.94 1.91 16.76 1.55 13H.05M12 13C8.13 13 5 14.57 5 16.5V18H19V16.5C19 14.57 15.87 13 12 13Z\";\nexport var mdiAccountConvertOutline = \"M12 0L11.34 .03L15.15 3.84L16.5 2.5C19.75 4.07 22.09 7.24 22.45 11H23.95C23.44 4.84 18.29 0 12 0M12 4C10.07 4 8.5 5.57 8.5 7.5C8.5 9.43 10.07 11 12 11C13.93 11 15.5 9.43 15.5 7.5C15.5 5.57 13.93 4 12 4M12 6C12.83 6 13.5 6.67 13.5 7.5C13.5 8.33 12.83 9 12 9C11.17 9 10.5 8.33 10.5 7.5C10.5 6.67 11.17 6 12 6M.05 13C.56 19.16 5.71 24 12 24L12.66 23.97L8.85 20.16L7.5 21.5C4.25 19.94 1.91 16.76 1.55 13H.05M12 13C8.13 13 5 14.57 5 16.5V18H19V16.5C19 14.57 15.87 13 12 13M12 15C14.11 15 15.61 15.53 16.39 16H7.61C8.39 15.53 9.89 15 12 15Z\";\nexport var mdiAccountCowboyHat = \"M20 22H4V20C4 17.8 7.6 16 12 16S20 17.8 20 20M8 9H16V10C16 12.2 14.2 14 12 14S8 12.2 8 10M19 4C18.4 4 18 4.4 18 5V6H16.5L15.1 3C15 2.8 14.9 2.6 14.7 2.5C14.2 2 13.4 1.9 12.7 2.2L12 2.4L11.3 2.1C10.6 1.8 9.8 1.9 9.3 2.4C9.1 2.6 9 2.8 8.9 3L7.5 6H6V5C6 4.4 5.6 4 5 4S4 4.4 4 5V6C4 7.1 4.9 8 6 8H18C19.1 8 20 7.1 20 6V5C20 4.5 19.6 4 19 4Z\";\nexport var mdiAccountCowboyHatOutline = \"M19 4C18.4 4 18 4.4 18 5V6H16.5L15.1 3C15 2.8 14.9 2.6 14.7 2.5C14.2 2 13.4 1.9 12.7 2.2L12 2.4L11.3 2.1C10.6 1.8 9.8 1.9 9.3 2.4C9.1 2.6 9 2.8 8.9 3L7.5 6H6V5C6 4.4 5.6 4 5 4S4 4.4 4 5V6C4 7.1 4.9 8 6 8H18C19.1 8 20 7.1 20 6V5C20 4.5 19.6 4 19 4M4 22V19C4 16.33 9.33 15 12 15S20 16.33 20 19V22H4M18.1 20.1V19C18.1 18.36 14.97 16.9 12 16.9S5.9 18.36 5.9 19V20.1H18.1M16 9V10C16 12.21 14.21 14 12 14S8 12.21 8 10V9H10V10C10 11.11 10.9 12 12 12S14 11.11 14 10V9H16Z\";\nexport var mdiAccountCreditCard = \"M7 12C9.2 12 11 10.2 11 8S9.2 4 7 4 3 5.8 3 8 4.8 12 7 12M11 20V14.7C9.9 14.3 8.5 14 7 14C3.1 14 0 15.8 0 18V20H11M22 4H15C13.9 4 13 4.9 13 6V18C13 19.1 13.9 20 15 20H22C23.1 20 24 19.1 24 18V6C24 4.9 23.1 4 22 4M18 18H16V6H18V18Z\";\nexport var mdiAccountCreditCardOutline = \"M7 4C4.8 4 3 5.8 3 8S4.8 12 7 12 11 10.2 11 8 9.2 4 7 4M7 10C5.9 10 5 9.1 5 8S5.9 6 7 6 9 6.9 9 8 8.1 10 7 10M7 14C3.1 14 0 15.8 0 18V20H11V18H2C2 17.4 3.8 16 7 16C8.8 16 10.2 16.5 11 17V14.8C9.9 14.3 8.5 14 7 14M22 4H15C13.9 4 13 4.9 13 6V18C13 19.1 13.9 20 15 20H22C23.1 20 24 19.1 24 18V6C24 4.9 23.1 4 22 4M16 18H15V6H16V18M22 18H18V6H22V18Z\";\nexport var mdiAccountDetails = \"M11 9C11 10.66 9.66 12 8 12C6.34 12 5 10.66 5 9C5 7.34 6.34 6 8 6C9.66 6 11 7.34 11 9M14 20H2V18C2 15.79 4.69 14 8 14C11.31 14 14 15.79 14 18M22 12V14H13V12M22 8V10H13V8M22 4V6H13V4Z\";\nexport var mdiAccountDetailsOutline = \"M11 9C11 10.66 9.66 12 8 12C6.34 12 5 10.66 5 9C5 7.34 6.34 6 8 6C9.66 6 11 7.34 11 9M14 20H2V18C2 15.79 4.69 14 8 14C11.31 14 14 15.79 14 18M7 9C7 9.55 7.45 10 8 10C8.55 10 9 9.55 9 9C9 8.45 8.55 8 8 8C7.45 8 7 8.45 7 9M4 18H12C12 16.9 10.21 16 8 16C5.79 16 4 16.9 4 18M22 12V14H13V12M22 8V10H13V8M22 4V6H13V4Z\";\nexport var mdiAccountEdit = \"M21.7,13.35L20.7,14.35L18.65,12.3L19.65,11.3C19.86,11.09 20.21,11.09 20.42,11.3L21.7,12.58C21.91,12.79 21.91,13.14 21.7,13.35M12,18.94L18.06,12.88L20.11,14.93L14.06,21H12V18.94M12,14C7.58,14 4,15.79 4,18V20H10V18.11L14,14.11C13.34,14.03 12.67,14 12,14M12,4A4,4 0 0,0 8,8A4,4 0 0,0 12,12A4,4 0 0,0 16,8A4,4 0 0,0 12,4Z\";\nexport var mdiAccountEditOutline = \"M2 17V20H10V18.11H3.9V17C3.9 16.36 7.03 14.9 10 14.9C10.96 14.91 11.91 15.04 12.83 15.28L14.35 13.76C12.95 13.29 11.5 13.03 10 13C7.33 13 2 14.33 2 17M10 4C7.79 4 6 5.79 6 8S7.79 12 10 12 14 10.21 14 8 12.21 4 10 4M10 10C8.9 10 8 9.11 8 8S8.9 6 10 6 12 6.9 12 8 11.11 10 10 10M21.7 13.35L20.7 14.35L18.65 12.35L19.65 11.35C19.86 11.14 20.21 11.14 20.42 11.35L21.7 12.63C21.91 12.84 21.91 13.19 21.7 13.4M12 18.94L18.06 12.88L20.11 14.88L14.11 20.95H12V18.94\";\nexport var mdiAccountEye = \"M6 8C6 5.79 7.79 4 10 4S14 5.79 14 8 12.21 12 10 12 6 10.21 6 8M9.14 19.75L8.85 19L9.14 18.25C9.84 16.5 11.08 15.14 12.61 14.22C11.79 14.08 10.92 14 10 14C5.58 14 2 15.79 2 18V20H9.27C9.23 19.91 9.18 19.83 9.14 19.75M17 18C16.44 18 16 18.44 16 19S16.44 20 17 20 18 19.56 18 19 17.56 18 17 18M23 19C22.06 21.34 19.73 23 17 23S11.94 21.34 11 19C11.94 16.66 14.27 15 17 15S22.06 16.66 23 19M19.5 19C19.5 17.62 18.38 16.5 17 16.5S14.5 17.62 14.5 19 15.62 21.5 17 21.5 19.5 20.38 19.5 19Z\";\nexport var mdiAccountEyeOutline = \"M10 12C12.21 12 14 10.21 14 8S12.21 4 10 4 6 5.79 6 8 7.79 12 10 12M10 6C11.11 6 12 6.9 12 8S11.11 10 10 10 8 9.11 8 8 8.9 6 10 6M9.27 20H2V17C2 14.33 7.33 13 10 13C11.04 13 12.5 13.21 13.86 13.61C13 13.95 12.2 14.42 11.5 15C11 14.94 10.5 14.9 10 14.9C7.03 14.9 3.9 16.36 3.9 17V18.1H9.22C9.2 18.15 9.17 18.2 9.14 18.25L8.85 19L9.14 19.75C9.18 19.83 9.23 19.91 9.27 20M17 18C17.56 18 18 18.44 18 19S17.56 20 17 20 16 19.56 16 19 16.44 18 17 18M17 15C14.27 15 11.94 16.66 11 19C11.94 21.34 14.27 23 17 23S22.06 21.34 23 19C22.06 16.66 19.73 15 17 15M17 21.5C15.62 21.5 14.5 20.38 14.5 19S15.62 16.5 17 16.5 19.5 17.62 19.5 19 18.38 21.5 17 21.5Z\";\nexport var mdiAccountFile = \"M7.5 5C9.43 5 11 6.57 11 8.5C11 10.43 9.43 12 7.5 12C5.57 12 4 10.43 4 8.5C4 6.57 5.57 5 7.5 5M1 19V16.5C1 14.57 4.46 13 7.5 13C8.68 13 9.92 13.24 11 13.64V19H1M22 19H14C13.45 19 13 18.55 13 18V6C13 5.45 13.45 5 14 5H19L23 9V18C23 18.55 22.55 19 22 19M18 10H21V9.83L18.17 7H18V10Z\";\nexport var mdiAccountFileOutline = \"M7.5 5C9.43 5 11 6.57 11 8.5C11 10.43 9.43 12 7.5 12C5.57 12 4 10.43 4 8.5C4 6.57 5.57 5 7.5 5M1 19V16.5C1 14.57 4.46 13 7.5 13C8.68 13 9.92 13.24 11 13.64V15.56C10.18 15.22 8.91 15 7.5 15C5 15 3 15.67 3 16.5V17H11V19H1M22 19H14C13.45 19 13 18.55 13 18V6C13 5.45 13.45 5 14 5H19L23 9V18C23 18.55 22.55 19 22 19M15 7V17H21V10H18V7H15M7.5 7C6.67 7 6 7.67 6 8.5C6 9.33 6.67 10 7.5 10C8.33 10 9 9.33 9 8.5C9 7.67 8.33 7 7.5 7Z\";\nexport var mdiAccountFileText = \"M7.5 5C9.43 5 11 6.57 11 8.5C11 10.43 9.43 12 7.5 12C5.57 12 4 10.43 4 8.5C4 6.57 5.57 5 7.5 5M1 19V16.5C1 14.57 4.46 13 7.5 13C8.68 13 9.92 13.24 11 13.64V19H1M22 19H14C13.45 19 13 18.55 13 18V6C13 5.45 13.45 5 14 5H19L23 9V18C23 18.55 22.55 19 22 19M18 10H21V9.83L18.17 7H18V10M15 12V13.5H21V12H15M15 15V16.5H21V15H15Z\";\nexport var mdiAccountFileTextOutline = \"M7.5 5C9.43 5 11 6.57 11 8.5C11 10.43 9.43 12 7.5 12C5.57 12 4 10.43 4 8.5C4 6.57 5.57 5 7.5 5M1 19V16.5C1 14.57 4.46 13 7.5 13C8.68 13 9.92 13.24 11 13.64V15.56C10.18 15.22 8.91 15 7.5 15C5 15 3 15.67 3 16.5V17H11V19H1M22 19H14C13.45 19 13 18.55 13 18V6C13 5.45 13.45 5 14 5H19L23 9V18C23 18.55 22.55 19 22 19M15 7V17H21V10H18V7H15M7.5 7C6.67 7 6 7.67 6 8.5C6 9.33 6.67 10 7.5 10C8.33 10 9 9.33 9 8.5C9 7.67 8.33 7 7.5 7M16 13H20V15H16V13Z\";\nexport var mdiAccountFilter = \"M10 4C12.2 4 14 5.8 14 8S12.2 12 10 12 6 10.2 6 8 7.8 4 10 4M17 21L18.8 22.77C19.3 23.27 20 22.87 20 22.28V18L22.8 14.6C23.3 13.9 22.8 13 22 13H15C14.2 13 13.7 14 14.2 14.6L17 18V21M15 18.7L12.7 15.9C12.3 15.4 12.1 14.8 12.1 14.2C11.4 14 10.7 14 10 14C5.6 14 2 15.8 2 18V20H15V18.7Z\";\nexport var mdiAccountFilterOutline = \"M17 21L18.8 22.77C19.3 23.27 20 22.87 20 22.28V18L22.8 14.6C23.3 13.9 22.8 13 22 13H15C14.2 13 13.7 14 14.2 14.6L17 18V21M15 20H2V17C2 14.3 7.3 13 10 13C10.6 13 11.3 13.1 12.1 13.2C11.9 13.8 12 14.5 12.2 15.1C11.5 15 10.7 14.9 10 14.9C7 14.9 3.9 16.4 3.9 17V18.1H14.5L15 18.7V20M10 4C7.8 4 6 5.8 6 8S7.8 12 10 12 14 10.2 14 8 12.2 4 10 4M10 10C8.9 10 8 9.1 8 8S8.9 6 10 6 12 6.9 12 8 11.1 10 10 10Z\";\nexport var mdiAccountGroup = \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\";\nexport var mdiAccountGroupOutline = \"M12,5A3.5,3.5 0 0,0 8.5,8.5A3.5,3.5 0 0,0 12,12A3.5,3.5 0 0,0 15.5,8.5A3.5,3.5 0 0,0 12,5M12,7A1.5,1.5 0 0,1 13.5,8.5A1.5,1.5 0 0,1 12,10A1.5,1.5 0 0,1 10.5,8.5A1.5,1.5 0 0,1 12,7M5.5,8A2.5,2.5 0 0,0 3,10.5C3,11.44 3.53,12.25 4.29,12.68C4.65,12.88 5.06,13 5.5,13C5.94,13 6.35,12.88 6.71,12.68C7.08,12.47 7.39,12.17 7.62,11.81C6.89,10.86 6.5,9.7 6.5,8.5C6.5,8.41 6.5,8.31 6.5,8.22C6.2,8.08 5.86,8 5.5,8M18.5,8C18.14,8 17.8,8.08 17.5,8.22C17.5,8.31 17.5,8.41 17.5,8.5C17.5,9.7 17.11,10.86 16.38,11.81C16.5,12 16.63,12.15 16.78,12.3C16.94,12.45 17.1,12.58 17.29,12.68C17.65,12.88 18.06,13 18.5,13C18.94,13 19.35,12.88 19.71,12.68C20.47,12.25 21,11.44 21,10.5A2.5,2.5 0 0,0 18.5,8M12,14C9.66,14 5,15.17 5,17.5V19H19V17.5C19,15.17 14.34,14 12,14M4.71,14.55C2.78,14.78 0,15.76 0,17.5V19H3V17.07C3,16.06 3.69,15.22 4.71,14.55M19.29,14.55C20.31,15.22 21,16.06 21,17.07V19H24V17.5C24,15.76 21.22,14.78 19.29,14.55M12,16C13.53,16 15.24,16.5 16.23,17H7.77C8.76,16.5 10.47,16 12,16Z\";\nexport var mdiAccountHardHat = \"M12,15C7.58,15 4,16.79 4,19V21H20V19C20,16.79 16.42,15 12,15M8,9A4,4 0 0,0 12,13A4,4 0 0,0 16,9M11.5,2C11.2,2 11,2.21 11,2.5V5.5H10V3C10,3 7.75,3.86 7.75,6.75C7.75,6.75 7,6.89 7,8H17C16.95,6.89 16.25,6.75 16.25,6.75C16.25,3.86 14,3 14,3V5.5H13V2.5C13,2.21 12.81,2 12.5,2H11.5Z\";\nexport var mdiAccountHardHatOutline = \"M16 9C16 14.33 8 14.33 8 9H10C10 11.67 14 11.67 14 9M20 18V21H4V18C4 15.33 9.33 14 12 14C14.67 14 20 15.33 20 18M18.1 18C18.1 17.36 14.97 15.9 12 15.9C9.03 15.9 5.9 17.36 5.9 18V19.1H18.1M12.5 2C12.78 2 13 2.22 13 2.5V5.5H14V3C15.45 3.67 16.34 5.16 16.25 6.75C16.25 6.75 16.95 6.89 17 8H7C7 6.89 7.75 6.75 7.75 6.75C7.66 5.16 8.55 3.67 10 3V5.5H11V2.5C11 2.22 11.22 2 11.5 2\";\nexport var mdiAccountHeart = \"M15,14C12.3,14 7,15.3 7,18V20H23V18C23,15.3 17.7,14 15,14M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12M5,15L4.4,14.5C2.4,12.6 1,11.4 1,9.9C1,8.7 2,7.7 3.2,7.7C3.9,7.7 4.6,8 5,8.5C5.4,8 6.1,7.7 6.8,7.7C8,7.7 9,8.6 9,9.9C9,11.4 7.6,12.6 5.6,14.5L5,15Z\";\nexport var mdiAccountHeartOutline = \"M5,15L4.4,14.5C2.4,12.6 1,11.4 1,9.9C1,8.7 2,7.7 3.2,7.7C3.9,7.7 4.6,8 5,8.5C5.4,8 6.1,7.7 6.8,7.7C8,7.7 9,8.6 9,9.9C9,11.4 7.6,12.6 5.6,14.5L5,15M15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4M15,10.1A2.1,2.1 0 0,1 12.9,8A2.1,2.1 0 0,1 15,5.9C16.16,5.9 17.1,6.84 17.1,8C17.1,9.16 16.16,10.1 15,10.1M15,13C12.33,13 7,14.33 7,17V20H23V17C23,14.33 17.67,13 15,13M21.1,18.1H8.9V17C8.9,16.36 12,14.9 15,14.9C17.97,14.9 21.1,16.36 21.1,17V18.1Z\";\nexport var mdiAccountInjury = \"M8 6C8 3.79 9.79 2 12 2S16 3.79 16 6 14.21 10 12 10 8 8.21 8 6M17 22H18C19.1 22 20 21.1 20 20V15.22C20 14.1 19.39 13.07 18.39 12.56C17.96 12.34 17.5 12.13 17 11.94V22M12.34 17L15 11.33C14.07 11.12 13.07 11 12 11C9.47 11 7.29 11.7 5.61 12.56C4.61 13.07 4 14.1 4 15.22V22H6.34C6.12 21.55 6 21.04 6 20.5C6 18.57 7.57 17 9.5 17H12.34M10 22L11.41 19H9.5C8.67 19 8 19.67 8 20.5S8.67 22 9.5 22H10Z\";\nexport var mdiAccountInjuryOutline = \"M12 10C14.21 10 16 8.21 16 6S14.21 2 12 2 8 3.79 8 6 9.79 10 12 10M12 4C13.1 4 14 4.9 14 6S13.1 8 12 8 10 7.1 10 6 10.9 4 12 4M18.39 12.56C16.71 11.7 14.53 11 12 11S7.29 11.7 5.61 12.56C4.61 13.07 4 14.1 4 15.22V22H6V15.22C6 14.84 6.2 14.5 6.5 14.34C7.71 13.73 9.63 13 12 13C12.76 13 13.47 13.07 14.13 13.2L12.58 16.5H9.75C8.23 16.5 7 17.73 7 19.25S8.23 22 9.75 22H18C19.1 22 20 21.1 20 20V15.22C20 14.1 19.39 13.07 18.39 12.56M10.94 20H9.75C9.34 20 9 19.66 9 19.25S9.34 18.5 9.75 18.5H11.64L10.94 20M18 20H13.15L16.09 13.73C16.63 13.93 17.1 14.14 17.5 14.34C17.8 14.5 18 14.84 18 15.22V20Z\";\nexport var mdiAccountKey = \"M11 10V12H9V14H7V12H5.8C5.4 13.2 4.3 14 3 14C1.3 14 0 12.7 0 11S1.3 8 3 8C4.3 8 5.4 8.8 5.8 10H11M3 10C2.4 10 2 10.4 2 11S2.4 12 3 12 4 11.6 4 11 3.6 10 3 10M16 14C18.7 14 24 15.3 24 18V20H8V18C8 15.3 13.3 14 16 14M16 12C13.8 12 12 10.2 12 8S13.8 4 16 4 20 5.8 20 8 18.2 12 16 12Z\";\nexport var mdiAccountKeyOutline = \"M5.8 10C5.4 8.8 4.3 8 3 8C1.3 8 0 9.3 0 11S1.3 14 3 14C4.3 14 5.4 13.2 5.8 12H7V14H9V12H11V10H5.8M3 12C2.4 12 2 11.6 2 11S2.4 10 3 10 4 10.4 4 11 3.6 12 3 12M16 4C13.8 4 12 5.8 12 8S13.8 12 16 12 20 10.2 20 8 18.2 4 16 4M16 10.1C14.8 10.1 13.9 9.2 13.9 8C13.9 6.8 14.8 5.9 16 5.9C17.2 5.9 18.1 6.8 18.1 8S17.2 10.1 16 10.1M16 13C13.3 13 8 14.3 8 17V20H24V17C24 14.3 18.7 13 16 13M22.1 18.1H9.9V17C9.9 16.4 13 14.9 16 14.9C19 14.9 22.1 16.4 22.1 17V18.1Z\";\nexport var mdiAccountLock = \"M6 8C6 5.79 7.79 4 10 4S14 5.79 14 8 12.21 12 10 12 6 10.21 6 8M12 18.2C12 17.24 12.5 16.34 13.2 15.74V15.5C13.2 15.11 13.27 14.74 13.38 14.38C12.35 14.14 11.21 14 10 14C5.58 14 2 15.79 2 18V20H12V18.2M22 18.3V21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V15.5C15.2 14.1 16.6 13 18 13C19.4 13 20.8 14.1 20.8 15.5V17C21.4 17 22 17.6 22 18.3M19.5 15.5C19.5 14.7 18.8 14.2 18 14.2C17.2 14.2 16.5 14.7 16.5 15.5V17H19.5V15.5Z\";\nexport var mdiAccountLockOpen = \"M6 8C6 5.79 7.79 4 10 4S14 5.79 14 8 12.21 12 10 12 6 10.21 6 8M12 18.2C12 17.24 12.5 16.34 13.2 15.74V14.5C13.2 14.45 13.22 14.39 13.22 14.34C12.23 14.12 11.15 14 10 14C5.58 14 2 15.79 2 18V20H12V18.2M22 18.3V21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V14.5C15.2 13.1 16.6 12 18 12S20.8 13.1 20.8 14.5V15H19.5V14.5C19.5 13.7 18.8 13.2 18 13.2S16.5 13.7 16.5 14.5V17H20.8C21.4 17 22 17.6 22 18.3Z\";\nexport var mdiAccountLockOpenOutline = \"M10 12C12.21 12 14 10.21 14 8S12.21 4 10 4 6 5.79 6 8 7.79 12 10 12M10 6C11.11 6 12 6.9 12 8S11.11 10 10 10 8 9.11 8 8 8.9 6 10 6M12 20H2V17C2 14.33 7.33 13 10 13C10.91 13 12.13 13.16 13.35 13.47C13.26 13.8 13.2 14.15 13.2 14.5V15.39C12.22 15.1 11.1 14.9 10 14.9C7.03 14.9 3.9 16.36 3.9 17V18.1H12C12 18.13 12 18.17 12 18.2V20M20.8 17H16.5V14.5C16.5 13.7 17.2 13.2 18 13.2S19.5 13.7 19.5 14.5V15H20.8V14.5C20.8 13.1 19.4 12 18 12S15.2 13.1 15.2 14.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17Z\";\nexport var mdiAccountLockOutline = \"M10 12C12.21 12 14 10.21 14 8S12.21 4 10 4 6 5.79 6 8 7.79 12 10 12M10 6C11.11 6 12 6.9 12 8S11.11 10 10 10 8 9.11 8 8 8.9 6 10 6M12 20H2V17C2 14.33 7.33 13 10 13C11 13 12.38 13.19 13.71 13.56C13.41 14.12 13.23 14.74 13.21 15.39C12.23 15.1 11.11 14.9 10 14.9C7.03 14.9 3.9 16.36 3.9 17V18.1H12C12 18.13 12 18.17 12 18.2V20M20.8 17V15.5C20.8 14.1 19.4 13 18 13C16.6 13 15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2C18.8 14.2 19.5 14.7 19.5 15.5V17Z\";\nexport var mdiAccountMinus = \"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M1,10V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\";\nexport var mdiAccountMinusOutline = \"M15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4M15,5.9C16.16,5.9 17.1,6.84 17.1,8C17.1,9.16 16.16,10.1 15,10.1A2.1,2.1 0 0,1 12.9,8A2.1,2.1 0 0,1 15,5.9M1,10V12H9V10H1M15,13C12.33,13 7,14.33 7,17V20H23V17C23,14.33 17.67,13 15,13M15,14.9C17.97,14.9 21.1,16.36 21.1,17V18.1H8.9V17C8.9,16.36 12,14.9 15,14.9Z\";\nexport var mdiAccountMultiple = \"M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z\";\nexport var mdiAccountMultipleCheck = \"M19 17V19H7V17S7 13 13 13 19 17 19 17M16 8A3 3 0 1 0 13 11A3 3 0 0 0 16 8M19.2 13.06A5.6 5.6 0 0 1 21 17V19H24V17S24 13.55 19.2 13.06M18 5A2.91 2.91 0 0 0 17.11 5.14A5 5 0 0 1 17.11 10.86A2.91 2.91 0 0 0 18 11A3 3 0 0 0 18 5M7.34 8.92L8.5 10.33L3.75 15.08L1 12.08L2.16 10.92L3.75 12.5L7.34 8.92\";\nexport var mdiAccountMultipleCheckOutline = \"M13 11A3 3 0 1 0 10 8A3 3 0 0 0 13 11M13 7A1 1 0 1 1 12 8A1 1 0 0 1 13 7M17.11 10.86A5 5 0 0 0 17.11 5.14A2.91 2.91 0 0 1 18 5A3 3 0 0 1 18 11A2.91 2.91 0 0 1 17.11 10.86M13 13C7 13 7 17 7 17V19H19V17S19 13 13 13M9 17C9 16.71 9.32 15 13 15C16.5 15 16.94 16.56 17 17M24 17V19H21V17A5.6 5.6 0 0 0 19.2 13.06C24 13.55 24 17 24 17M7.34 8.92L8.5 10.33L3.75 15.08L1 12.08L2.16 10.92L3.75 12.5L7.34 8.92\";\nexport var mdiAccountMultipleMinus = \"M19 17V19H7V17S7 13 13 13 19 17 19 17M16 8A3 3 0 1 0 13 11A3 3 0 0 0 16 8M19.2 13.06A5.6 5.6 0 0 1 21 17V19H24V17S24 13.55 19.2 13.06M18 5A2.91 2.91 0 0 0 17.11 5.14A5 5 0 0 1 17.11 10.86A2.91 2.91 0 0 0 18 11A3 3 0 0 0 18 5M8 10H0V12H8Z\";\nexport var mdiAccountMultipleMinusOutline = \"M13 11A3 3 0 1 0 10 8A3 3 0 0 0 13 11M13 7A1 1 0 1 1 12 8A1 1 0 0 1 13 7M17.11 10.86A5 5 0 0 0 17.11 5.14A2.91 2.91 0 0 1 18 5A3 3 0 0 1 18 11A2.91 2.91 0 0 1 17.11 10.86M13 13C7 13 7 17 7 17V19H19V17S19 13 13 13M9 17C9 16.71 9.32 15 13 15C16.5 15 16.94 16.56 17 17M24 17V19H21V17A5.6 5.6 0 0 0 19.2 13.06C24 13.55 24 17 24 17M8 12H0V10H8Z\";\nexport var mdiAccountMultipleOutline = \"M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z\";\nexport var mdiAccountMultiplePlus = \"M19 17V19H7V17S7 13 13 13 19 17 19 17M16 8A3 3 0 1 0 13 11A3 3 0 0 0 16 8M19.2 13.06A5.6 5.6 0 0 1 21 17V19H24V17S24 13.55 19.2 13.06M18 5A2.91 2.91 0 0 0 17.11 5.14A5 5 0 0 1 17.11 10.86A2.91 2.91 0 0 0 18 11A3 3 0 0 0 18 5M8 10H5V7H3V10H0V12H3V15H5V12H8Z\";\nexport var mdiAccountMultiplePlusOutline = \"M13 11A3 3 0 1 0 10 8A3 3 0 0 0 13 11M13 7A1 1 0 1 1 12 8A1 1 0 0 1 13 7M17.11 10.86A5 5 0 0 0 17.11 5.14A2.91 2.91 0 0 1 18 5A3 3 0 0 1 18 11A2.91 2.91 0 0 1 17.11 10.86M13 13C7 13 7 17 7 17V19H19V17S19 13 13 13M9 17C9 16.71 9.32 15 13 15C16.5 15 16.94 16.56 17 17M24 17V19H21V17A5.6 5.6 0 0 0 19.2 13.06C24 13.55 24 17 24 17M8 12H5V15H3V12H0V10H3V7H5V10H8Z\";\nexport var mdiAccountMultipleRemove = \"M24 17V19H21V17C21 15.45 20.3 14.06 19.18 13.06C24 13.55 24 17 24 17M18 5C19.66 5 21 6.34 21 8C21 9.66 19.66 11 18 11C17.69 11 17.38 10.95 17.1 10.86C17.67 10.05 18 9.07 18 8C18 6.94 17.67 5.95 17.1 5.14C17.38 5.05 17.69 5 18 5M13 5C14.66 5 16 6.34 16 8C16 9.66 14.66 11 13 11C11.34 11 10 9.66 10 8C10 6.34 11.34 5 13 5M19 17V19H7V17C7 14.79 9.69 13 13 13C16.31 13 19 14.79 19 17M.464 13.12L2.59 11L.464 8.88L1.88 7.46L4 9.59L6.12 7.46L7.54 8.88L5.41 11L7.54 13.12L6.12 14.54L4 12.41L1.88 14.54Z\";\nexport var mdiAccountMultipleRemoveOutline = \"M24 17V19H21V17C21 15.45 20.3 14.06 19.18 13.06C24 13.55 24 17 24 17M18 5C19.66 5 21 6.34 21 8C21 9.66 19.66 11 18 11C17.69 11 17.38 10.95 17.1 10.86C17.67 10.05 18 9.07 18 8C18 6.94 17.67 5.95 17.1 5.14C17.38 5.05 17.69 5 18 5M13 5C14.66 5 16 6.34 16 8C16 9.66 14.66 11 13 11C11.34 11 10 9.66 10 8C10 6.34 11.34 5 13 5M19 17V19H7V17C7 14.79 9.69 13 13 13C16.31 13 19 14.79 19 17M13 7C12.45 7 12 7.45 12 8C12 8.55 12.45 9 13 9C13.55 9 14 8.55 14 8C14 7.45 13.55 7 13 7M13 15C10.79 15 9 15.9 9 17H17C17 15.9 15.21 15 13 15M.464 13.12L2.59 11L.464 8.88L1.88 7.46L4 9.59L6.12 7.46L7.54 8.88L5.41 11L7.54 13.12L6.12 14.54L4 12.41L1.88 14.54Z\";\nexport var mdiAccountMusic = \"M11,14C12,14 13.05,14.16 14.2,14.44C13.39,15.31 13,16.33 13,17.5C13,18.39 13.25,19.23 13.78,20H3V18C3,16.81 3.91,15.85 5.74,15.12C7.57,14.38 9.33,14 11,14M11,12C9.92,12 9,11.61 8.18,10.83C7.38,10.05 7,9.11 7,8C7,6.92 7.38,6 8.18,5.18C9,4.38 9.92,4 11,4C12.11,4 13.05,4.38 13.83,5.18C14.61,6 15,6.92 15,8C15,9.11 14.61,10.05 13.83,10.83C13.05,11.61 12.11,12 11,12M18.5,10H20L22,10V12H20V17.5A2.5,2.5 0 0,1 17.5,20A2.5,2.5 0 0,1 15,17.5A2.5,2.5 0 0,1 17.5,15C17.86,15 18.19,15.07 18.5,15.21V10Z\";\nexport var mdiAccountMusicOutline = \"M11,4A4,4 0 0,1 15,8A4,4 0 0,1 11,12A4,4 0 0,1 7,8A4,4 0 0,1 11,4M11,6A2,2 0 0,0 9,8A2,2 0 0,0 11,10A2,2 0 0,0 13,8A2,2 0 0,0 11,6M11,13C12.1,13 13.66,13.23 15.11,13.69C14.5,14.07 14,14.6 13.61,15.23C12.79,15.03 11.89,14.9 11,14.9C8.03,14.9 4.9,16.36 4.9,17V18.1H13.04C13.13,18.8 13.38,19.44 13.76,20H3V17C3,14.34 8.33,13 11,13M18.5,10H20L22,10V12H20V17.5A2.5,2.5 0 0,1 17.5,20A2.5,2.5 0 0,1 15,17.5A2.5,2.5 0 0,1 17.5,15C17.86,15 18.19,15.07 18.5,15.21V10Z\";\nexport var mdiAccountNetwork = \"M13,17V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H5V15.5C5,13.57 8.13,12 12,12C15.87,12 19,13.57 19,15.5V17H13M12,3A3.5,3.5 0 0,1 15.5,6.5A3.5,3.5 0 0,1 12,10A3.5,3.5 0 0,1 8.5,6.5A3.5,3.5 0 0,1 12,3Z\";\nexport var mdiAccountNetworkOff = \"M13.03 9.83L8.67 5.47C9.11 4.04 10.43 3 12 3C13.93 3 15.5 4.57 15.5 6.5C15.5 8.07 14.46 9.39 13.03 9.83M19 15.5C19 14.26 17.7 13.17 15.75 12.55L19 15.8V15.5M22 22H21.57L20.84 22.73L20.11 22H15C15 22.55 14.55 23 14 23H10C9.45 23 9 22.55 9 22H2V20H9C9 19.45 9.45 19 10 19H11V17H5V15.5C5 13.88 7.22 12.5 10.23 12.12L1.11 3L2.39 1.73L22 21.34V21.35L22.11 21.46L22 21.57V22M18.11 20L15.11 17H13V19H14C14.55 19 15 19.45 15 20H18.11Z\";\nexport var mdiAccountNetworkOffOutline = \"M19 15.8L15.75 12.55C17.7 13.17 19 14.26 19 15.5V15.8M13.03 9.83L8.67 5.47C9.11 4.04 10.43 3 12 3C13.93 3 15.5 4.57 15.5 6.5C15.5 8.07 14.46 9.39 13.03 9.83M12 8C12.83 8 13.5 7.33 13.5 6.5S12.83 5 12 5 10.5 5.67 10.5 6.5 11.17 8 12 8M22 22H21.57L20.84 22.73L20.11 22H15C15 22.55 14.55 23 14 23H10C9.45 23 9 22.55 9 22H2V20H9C9 19.45 9.45 19 10 19H11V17H5V15.5C5 13.88 7.22 12.5 10.23 12.12L1.11 3L2.39 1.73L22 21.34V21.35L22.11 21.46L22 21.57V22M13.11 15L12.11 14C12.08 14 12.04 14 12 14C9.89 14 8.39 14.53 7.61 15H13.11M18.11 20L15.11 17H13V19H14C14.55 19 15 19.45 15 20H18.11Z\";\nexport var mdiAccountNetworkOutline = \"M12,10A3.5,3.5 0 0,0 15.5,6.5A3.5,3.5 0 0,0 12,3A3.5,3.5 0 0,0 8.5,6.5A3.5,3.5 0 0,0 12,10M12,5A1.5,1.5 0 0,1 13.5,6.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 10.5,6.5A1.5,1.5 0 0,1 12,5M15,20A1,1 0 0,0 14,19H13V17H19V15.5C19,13.57 15.87,12 12,12C8.13,12 5,13.57 5,15.5V17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7.61,15C8.39,14.53 9.89,14 12,14C14.11,14 15.61,14.53 16.39,15H7.61Z\";\nexport var mdiAccountOff = \"M12,4A4,4 0 0,1 16,8C16,9.95 14.6,11.58 12.75,11.93L8.07,7.25C8.42,5.4 10.05,4 12,4M12.28,14L18.28,20L20,21.72L18.73,23L15.73,20H4V18C4,16.16 6.5,14.61 9.87,14.14L2.78,7.05L4.05,5.78L12.28,14M20,18V19.18L15.14,14.32C18,14.93 20,16.35 20,18Z\";\nexport var mdiAccountOffOutline = \"M2.75,7L4.03,5.75L13.26,15L20,21.72L18.73,23L15.73,20H4V17C4,15.14 6.61,13.92 9.09,13.36L2.75,7M20,17V19.18L18.1,17.28V17C18.1,16.74 17.6,16.35 16.8,16L14,13.18C16.71,13.63 20,14.91 20,17M5.9,17V18.1H13.83L10.72,15C8.19,15.3 5.9,16.45 5.9,17M12,4A4,4 0 0,1 16,8C16,9.95 14.6,11.58 12.75,11.93L8.07,7.25C8.42,5.4 10.05,4 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6Z\";\nexport var mdiAccountOutline = \"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M12,13C14.67,13 20,14.33 20,17V20H4V17C4,14.33 9.33,13 12,13M12,14.9C9.03,14.9 5.9,16.36 5.9,17V18.1H18.1V17C18.1,16.36 14.97,14.9 12,14.9Z\";\nexport var mdiAccountPlus = \"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\";\nexport var mdiAccountPlusOutline = \"M15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4M15,5.9C16.16,5.9 17.1,6.84 17.1,8C17.1,9.16 16.16,10.1 15,10.1A2.1,2.1 0 0,1 12.9,8A2.1,2.1 0 0,1 15,5.9M4,7V10H1V12H4V15H6V12H9V10H6V7H4M15,13C12.33,13 7,14.33 7,17V20H23V17C23,14.33 17.67,13 15,13M15,14.9C17.97,14.9 21.1,16.36 21.1,17V18.1H8.9V17C8.9,16.36 12,14.9 15,14.9Z\";\nexport var mdiAccountQuestion = \"M13,8A4,4 0 0,1 9,12A4,4 0 0,1 5,8A4,4 0 0,1 9,4A4,4 0 0,1 13,8M17,18V20H1V18C1,15.79 4.58,14 9,14C13.42,14 17,15.79 17,18M20.5,14.5V16H19V14.5H20.5M18.5,9.5H17V9A3,3 0 0,1 20,6A3,3 0 0,1 23,9C23,9.97 22.5,10.88 21.71,11.41L21.41,11.6C20.84,12 20.5,12.61 20.5,13.3V13.5H19V13.3C19,12.11 19.6,11 20.59,10.35L20.88,10.16C21.27,9.9 21.5,9.47 21.5,9A1.5,1.5 0 0,0 20,7.5A1.5,1.5 0 0,0 18.5,9V9.5Z\";\nexport var mdiAccountQuestionOutline = \"M20.5,14.5V16H19V14.5H20.5M18.5,9.5H17V9A3,3 0 0,1 20,6A3,3 0 0,1 23,9C23,9.97 22.5,10.88 21.71,11.41L21.41,11.6C20.84,12 20.5,12.61 20.5,13.3V13.5H19V13.3C19,12.11 19.6,11 20.59,10.35L20.88,10.16C21.27,9.9 21.5,9.47 21.5,9A1.5,1.5 0 0,0 20,7.5A1.5,1.5 0 0,0 18.5,9V9.5M9,13C11.67,13 17,14.34 17,17V20H1V17C1,14.34 6.33,13 9,13M9,4A4,4 0 0,1 13,8A4,4 0 0,1 9,12A4,4 0 0,1 5,8A4,4 0 0,1 9,4M9,14.9C6.03,14.9 2.9,16.36 2.9,17V18.1H15.1V17C15.1,16.36 11.97,14.9 9,14.9M9,5.9A2.1,2.1 0 0,0 6.9,8A2.1,2.1 0 0,0 9,10.1A2.1,2.1 0 0,0 11.1,8A2.1,2.1 0 0,0 9,5.9Z\";\nexport var mdiAccountReactivate = \"M21.5 9H16.5L18.36 7.14C16.9 5.23 14.59 4 12 4C7.58 4 4 7.58 4 12C4 13.83 4.61 15.5 5.64 16.85C6.86 15.45 9.15 14.5 12 14.5C14.85 14.5 17.15 15.45 18.36 16.85C19.39 15.5 20 13.83 20 12H22C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C15.14 2 17.95 3.45 19.78 5.72L21.5 4V9M12 7C13.66 7 15 8.34 15 10C15 11.66 13.66 13 12 13C10.34 13 9 11.66 9 10C9 8.34 10.34 7 12 7Z\";\nexport var mdiAccountReactivateOutline = \"M21.5 9H16.5L18.36 7.14C16.9 5.23 14.59 4 12 4C7.58 4 4 7.58 4 12C4 13.83 4.61 15.5 5.64 16.85C6.86 15.45 9.15 14.5 12 14.5C14.85 14.5 17.15 15.45 18.36 16.85C19.39 15.5 20 13.83 20 12H22C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C15.14 2 17.95 3.45 19.78 5.72L21.5 4V9M12 20C13.9 20 15.64 19.34 17 18.24C16.36 17.23 14.45 16.5 12 16.5C9.55 16.5 7.64 17.23 7 18.24C8.36 19.34 10.1 20 12 20M12 6C13.93 6 15.5 7.57 15.5 9.5C15.5 11.43 13.93 13 12 13C10.07 13 8.5 11.43 8.5 9.5C8.5 7.57 10.07 6 12 6M12 8C11.17 8 10.5 8.67 10.5 9.5C10.5 10.33 11.17 11 12 11C12.83 11 13.5 10.33 13.5 9.5C13.5 8.67 12.83 8 12 8Z\";\nexport var mdiAccountRemove = \"M15,14C17.67,14 23,15.33 23,18V20H7V18C7,15.33 12.33,14 15,14M15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12M5,9.59L7.12,7.46L8.54,8.88L6.41,11L8.54,13.12L7.12,14.54L5,12.41L2.88,14.54L1.46,13.12L3.59,11L1.46,8.88L2.88,7.46L5,9.59Z\";\nexport var mdiAccountRemoveOutline = \"M1.46,8.88L2.88,7.46L5,9.59L7.12,7.46L8.54,8.88L6.41,11L8.54,13.12L7.12,14.54L5,12.41L2.88,14.54L1.46,13.12L3.59,11L1.46,8.88M15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4M15,5.9A2.1,2.1 0 0,0 12.9,8A2.1,2.1 0 0,0 15,10.1C16.16,10.1 17.1,9.16 17.1,8C17.1,6.84 16.16,5.9 15,5.9M15,13C17.67,13 23,14.33 23,17V20H7V17C7,14.33 12.33,13 15,13M15,14.9C12,14.9 8.9,16.36 8.9,17V18.1H21.1V17C21.1,16.36 17.97,14.9 15,14.9Z\";\nexport var mdiAccountSchool = \"M16 8C16 10.21 14.21 12 12 12C9.79 12 8 10.21 8 8L8.11 7.06L5 5.5L12 2L19 5.5V10.5H18V6L15.89 7.06L16 8M12 14C16.42 14 20 15.79 20 18V20H4V18C4 15.79 7.58 14 12 14Z\";\nexport var mdiAccountSchoolOutline = \"M18 10.5V6L15.89 7.06C15.96 7.36 16 7.67 16 8C16 10.21 14.21 12 12 12C9.79 12 8 10.21 8 8C8 7.67 8.04 7.36 8.11 7.06L5 5.5L12 2L19 5.5V10.5H18M12 9L10 8C10 9.1 10.9 10 12 10C13.1 10 14 9.1 14 8L12 9M14.75 5.42L12.16 4.1L9.47 5.47L12.07 6.79L14.75 5.42M12 13C14.67 13 20 14.33 20 17V20H4V17C4 14.33 9.33 13 12 13M12 14.9C9 14.9 5.9 16.36 5.9 17V18.1H18.1V17C18.1 16.36 14.97 14.9 12 14.9Z\";\nexport var mdiAccountSearch = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M10,4A4,4 0 0,1 14,8C14,8.91 13.69,9.75 13.18,10.43C12.32,10.75 11.55,11.26 10.91,11.9L10,12A4,4 0 0,1 6,8A4,4 0 0,1 10,4M2,20V18C2,15.88 5.31,14.14 9.5,14C9.18,14.78 9,15.62 9,16.5C9,17.79 9.38,19 10,20H2Z\";\nexport var mdiAccountSearchOutline = \"M10,13C9.65,13.59 9.36,14.24 9.19,14.93C6.5,15.16 3.9,16.42 3.9,17V18.1H9.2C9.37,18.78 9.65,19.42 10,20H2V17C2,14.34 7.33,13 10,13M10,4A4,4 0 0,1 14,8C14,8.91 13.69,9.75 13.18,10.43C12.32,10.75 11.55,11.26 10.91,11.9L10,12A4,4 0 0,1 6,8A4,4 0 0,1 10,4M10,5.9A2.1,2.1 0 0,0 7.9,8A2.1,2.1 0 0,0 10,10.1A2.1,2.1 0 0,0 12.1,8A2.1,2.1 0 0,0 10,5.9M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14Z\";\nexport var mdiAccountSettings = \"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiAccountSettingsOutline = \"M12 4C14.21 4 16 5.79 16 8S14.21 12 12 12 8 10.21 8 8 9.79 4 12 4M12 6C10.9 6 10 6.9 10 8S10.9 10 12 10 14 9.11 14 8 13.11 6 12 6M12 13C14.67 13 20 14.33 20 17V20H4V17C4 14.33 9.33 13 12 13M12 14.9C9.03 14.9 5.9 16.36 5.9 17V18.1H18.1V17C18.1 16.36 14.97 14.9 12 14.9M13 22H11V24H13V22M17 22H15V24H17V22M9 22H7V24H9V22Z\";\nexport var mdiAccountStar = \"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12M5,13.28L7.45,14.77L6.8,11.96L9,10.08L6.11,9.83L5,7.19L3.87,9.83L1,10.08L3.18,11.96L2.5,14.77L5,13.28Z\";\nexport var mdiAccountStarOutline = \"M15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4M15,5.9A2.1,2.1 0 0,0 12.9,8A2.1,2.1 0 0,0 15,10.1C16.16,10.1 17.1,9.16 17.1,8C17.1,6.84 16.16,5.9 15,5.9M15,13C17.67,13 23,14.33 23,17V20H7V17C7,14.33 12.33,13 15,13M15,14.9C12,14.9 8.9,16.36 8.9,17V18.1H21.1V17C21.1,16.36 17.97,14.9 15,14.9M5,13.28L2.5,14.77L3.18,11.96L1,10.08L3.87,9.83L5,7.19L6.11,9.83L9,10.08L6.8,11.96L7.45,14.77L5,13.28Z\";\nexport var mdiAccountSupervisor = \"M16.5,12A2.5,2.5 0 0,0 19,9.5A2.5,2.5 0 0,0 16.5,7A2.5,2.5 0 0,0 14,9.5A2.5,2.5 0 0,0 16.5,12M9,11A3,3 0 0,0 12,8A3,3 0 0,0 9,5A3,3 0 0,0 6,8A3,3 0 0,0 9,11M16.5,14C14.67,14 11,14.92 11,16.75V19H22V16.75C22,14.92 18.33,14 16.5,14M9,13C6.67,13 2,14.17 2,16.5V19H9V16.75C9,15.9 9.33,14.41 11.37,13.28C10.5,13.1 9.66,13 9,13Z\";\nexport var mdiAccountSupervisorCircle = \"M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M15.6,8.34C16.67,8.34 17.53,9.2 17.53,10.27C17.53,11.34 16.67,12.2 15.6,12.2A1.93,1.93 0 0,1 13.67,10.27C13.66,9.2 14.53,8.34 15.6,8.34M9.6,6.76C10.9,6.76 11.96,7.82 11.96,9.12C11.96,10.42 10.9,11.5 9.6,11.5C8.3,11.5 7.24,10.42 7.24,9.12C7.24,7.81 8.29,6.76 9.6,6.76M9.6,15.89V19.64C7.2,18.89 5.3,17.04 4.46,14.68C5.5,13.56 8.13,13 9.6,13C10.13,13 10.8,13.07 11.5,13.21C9.86,14.08 9.6,15.23 9.6,15.89M12,20C11.72,20 11.46,20 11.2,19.96V15.89C11.2,14.47 14.14,13.76 15.6,13.76C16.67,13.76 18.5,14.15 19.44,14.91C18.27,17.88 15.38,20 12,20Z\";\nexport var mdiAccountSupervisorCircleOutline = \"M12.5 10C12.5 8.34 11.16 7 9.5 7C7.86 7 6.5 8.34 6.5 10C6.5 11.64 7.86 13 9.5 13C11.16 13 12.5 11.64 12.5 10M9.5 11C8.96 11 8.5 10.54 8.5 10C8.5 9.44 8.96 9 9.5 9C10.06 9 10.5 9.44 10.5 10C10.5 10.54 10.06 11 9.5 11M16 13C17.12 13 18 12.1 18 11C18 9.88 17.12 9 16 9C14.9 9 14 9.88 14 11C14 12.1 14.9 13 16 13M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M5.85 17.11C6.53 16.57 8.12 16 9.5 16C9.58 16 9.66 16 9.74 16C10 15.37 10.41 14.72 11.04 14.15C10.5 14.05 9.95 14 9.5 14C8.21 14 6.12 14.44 4.78 15.42C4.28 14.38 4 13.22 4 12C4 7.58 7.59 4 12 4C16.41 4 20 7.58 20 12C20 13.19 19.73 14.33 19.25 15.36C18.25 14.77 16.89 14.5 16 14.5C14.5 14.5 11.5 15.3 11.5 17.19V19.97C9.24 19.84 7.22 18.76 5.85 17.11Z\";\nexport var mdiAccountSupervisorOutline = \"M16.5 15.5C18.22 15.5 20.25 16.3 20.5 16.78V17.5H12.5V16.78C12.75 16.3 14.78 15.5 16.5 15.5M16.5 14C14.67 14 11 14.92 11 16.75V19H22V16.75C22 14.92 18.33 14 16.5 14M9 13C6.67 13 2 14.17 2 16.5V19H9V17.5H3.5V16.5C3.5 15.87 6.29 14.34 9.82 14.5A5.12 5.12 0 0 1 11.37 13.25A12.28 12.28 0 0 0 9 13M9 6.5A1.5 1.5 0 1 1 7.5 8A1.5 1.5 0 0 1 9 6.5M9 5A3 3 0 1 0 12 8A3 3 0 0 0 9 5M16.5 8.5A1 1 0 1 1 15.5 9.5A1 1 0 0 1 16.5 8.5M16.5 7A2.5 2.5 0 1 0 19 9.5A2.5 2.5 0 0 0 16.5 7Z\";\nexport var mdiAccountSwitch = \"M16 9C22 9 22 13 22 13V15H16V13C16 13 16 11.31 14.85 9.8C14.68 9.57 14.47 9.35 14.25 9.14C14.77 9.06 15.34 9 16 9M2 13C2 13 2 9 8 9S14 13 14 13V15H2V13M9 17V19H15V17L18 20L15 23V21H9V23L6 20L9 17M8 1C6.34 1 5 2.34 5 4S6.34 7 8 7 11 5.66 11 4 9.66 1 8 1M16 1C14.34 1 13 2.34 13 4S14.34 7 16 7 19 5.66 19 4 17.66 1 16 1Z\";\nexport var mdiAccountSwitchOutline = \"M16 9C22 9 22 13 22 13V15H16V13C16 13 16 11.31 14.85 9.8C14.68 9.57 14.47 9.35 14.25 9.14C14.77 9.06 15.34 9 16 9M8 11C11.5 11 11.94 12.56 12 13H4C4.06 12.56 4.5 11 8 11M8 9C2 9 2 13 2 13V15H14V13C14 13 14 9 8 9M9 17V19H15V17L18 20L15 23V21H9V23L6 20L9 17M8 3C8.55 3 9 3.45 9 4S8.55 5 8 5 7 4.55 7 4 7.45 3 8 3M8 1C6.34 1 5 2.34 5 4S6.34 7 8 7 11 5.66 11 4 9.66 1 8 1M16 1C14.34 1 13 2.34 13 4S14.34 7 16 7 19 5.66 19 4 17.66 1 16 1Z\";\nexport var mdiAccountSync = \"M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14M18 20C16.6 20 15.5 18.9 15.5 17.5C15.5 17.1 15.6 16.7 15.8 16.4L14.7 15.3C14.3 15.9 14 16.7 14 17.5C14 19.7 15.8 21.5 18 21.5V23L20.2 20.8L18 18.5V20M18 13.5V12L15.8 14.2L18 16.4V15C19.4 15 20.5 16.1 20.5 17.5C20.5 17.9 20.4 18.3 20.2 18.6L21.3 19.7C21.7 19.1 22 18.3 22 17.5C22 15.3 20.2 13.5 18 13.5Z\";\nexport var mdiAccountSyncOutline = \"M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 6C12.1 6 13 6.9 13 8S12.1 10 11 10 9 9.1 9 8 9.9 6 11 6M11 13C8.3 13 3 14.3 3 17V20H12.5C12.2 19.4 12.1 18.8 12 18.1H4.9V17C4.9 16.4 8 14.9 11 14.9C11.5 14.9 12 15 12.5 15C12.8 14.4 13.1 13.8 13.6 13.3C12.6 13.1 11.7 13 11 13M18 20C16.6 20 15.5 18.9 15.5 17.5C15.5 17.1 15.6 16.7 15.8 16.4L14.7 15.3C14.3 15.9 14 16.7 14 17.5C14 19.7 15.8 21.5 18 21.5V23L20.2 20.8L18 18.5V20M18 13.5V12L15.8 14.2L18 16.4V15C19.4 15 20.5 16.1 20.5 17.5C20.5 17.9 20.4 18.3 20.2 18.6L21.3 19.7C21.7 19.1 22 18.3 22 17.5C22 15.3 20.2 13.5 18 13.5Z\";\nexport var mdiAccountTag = \"M21.8 17.8L18.2 14.2C18 14.1 17.8 14 17.6 14H14.8C14.4 14 14 14.4 14 14.8V17.6C14 17.8 14.1 18 14.2 18.2L17.8 21.8C17.9 21.9 18.1 22 18.4 22C18.6 22 18.8 21.9 19 21.8L21.8 19C21.9 18.9 22 18.7 22 18.4C22 18.2 21.9 18 21.8 17.8M15.4 16C15.1 16 14.8 15.7 14.8 15.4C14.8 15.1 15.1 14.8 15.4 14.8C15.7 14.8 16 15.1 16 15.4C16 15.7 15.7 16 15.4 16M10 4C7.8 4 6 5.8 6 8S7.8 12 10 12 14 10.2 14 8 12.2 4 10 4M10 14C5.6 14 2 15.8 2 18V20H13.2L12.8 19.6C12.3 19.1 12 18.4 12 17.6V14.8C12 14.6 12 14.4 12.1 14.1C11.4 14 10.7 14 10 14Z\";\nexport var mdiAccountTagOutline = \"M15.4 16C15.1 16 14.8 15.7 14.8 15.4C14.8 15.1 15.1 14.8 15.4 14.8C15.7 14.8 16 15.1 16 15.4C16 15.7 15.7 16 15.4 16M21.8 17.8L18.2 14.2C18 14.1 17.8 14 17.6 14H14.8C14.4 14 14 14.4 14 14.8V17.6C14 17.8 14.1 18 14.2 18.2L17.8 21.8C17.9 21.9 18.1 22 18.4 22S18.8 21.9 19 21.8L21.8 19C21.9 18.9 22 18.7 22 18.4C22 18.2 21.9 18 21.8 17.8M10 4C7.8 4 6 5.8 6 8S7.8 12 10 12 14 10.2 14 8 12.2 4 10 4M10 6C11.1 6 12 6.9 12 8S11.1 10 10 10 8 9.1 8 8 8.9 6 10 6M10 13C7.3 13 2 14.3 2 17V20H13.2L12.8 19.6C12.4 19.2 12.1 18.7 12 18.1H3.9V17C3.9 16.4 7 14.9 10 14.9C10.7 14.9 11.4 15 12 15.1V14.8C12 14.2 12.2 13.7 12.5 13.3C11.6 13.1 10.7 13 10 13Z\";\nexport var mdiAccountTie = \"M12 3C14.21 3 16 4.79 16 7S14.21 11 12 11 8 9.21 8 7 9.79 3 12 3M16 13.54C16 14.6 15.72 17.07 13.81 19.83L13 15L13.94 13.12C13.32 13.05 12.67 13 12 13S10.68 13.05 10.06 13.12L11 15L10.19 19.83C8.28 17.07 8 14.6 8 13.54C5.61 14.24 4 15.5 4 17V21H20V17C20 15.5 18.4 14.24 16 13.54Z\";\nexport var mdiAccountTieHat = \"M16 14.5C16 15.6 15.7 18 13.8 20.8L13 16L13.9 14.1C13.3 14.1 12.7 14 12 14S10.7 14.1 10.1 14.1L11 16L10.2 20.8C8.3 18.1 8 15.6 8 14.5C5.6 15.2 4 16.5 4 18V22H20V18C20 16.5 18.4 15.2 16 14.5M6 4.5C6 3.1 8.7 2 12 2S18 3.1 18 4.5C18 4.9 17.8 5.2 17.5 5.5C16.6 4.6 14.5 4 12 4S7.4 4.6 6.5 5.5C6.2 5.2 6 4.9 6 4.5M15.9 7.4C16 7.6 16 7.8 16 8C16 10.2 14.2 12 12 12S8 10.2 8 8C8 7.8 8 7.6 8.1 7.4C9.1 7.8 10.5 8 12 8S14.9 7.8 15.9 7.4M16.6 6.1C15.5 6.6 13.9 7 12 7S8.5 6.6 7.4 6.1C8.1 5.5 9.8 5 12 5S15.9 5.5 16.6 6.1Z\";\nexport var mdiAccountTieHatOutline = \"M6 4.5C6 3.1 8.7 2 12 2S18 3.1 18 4.5C18 4.9 17.8 5.2 17.5 5.5C16.6 4.6 14.5 4 12 4S7.4 4.6 6.5 5.5C6.2 5.2 6 4.9 6 4.5M12 5C9.8 5 8.1 5.5 7.4 6.1C8.5 6.6 10.1 7 12 7S15.5 6.6 16.6 6.1C15.9 5.5 14.2 5 12 5M14 8C14 9.1 13.1 10 12 10S10 9.1 10 8V7.9C9.3 7.8 8.6 7.7 8 7.5V8C8 10.2 9.8 12 12 12S16 10.2 16 8C16 7.8 16 7.6 15.9 7.4C15.3 7.6 14.6 7.7 13.9 7.8C14 7.9 14 7.9 14 8M16.4 13.8L15.7 15L15.5 15.5C17 16 18.1 16.6 18.1 17V20.1H13.9L13 15L13.9 13.1C13.3 13.1 12.7 13 12 13S10.7 13 10.1 13.1L11 15L10.1 20.1H5.9V17C5.9 16.6 7 16 8.5 15.5L8.3 15L7.7 13.8C5.7 14.4 4 15.5 4 17V22H20V17C20 15.5 18.3 14.4 16.4 13.8Z\";\nexport var mdiAccountTieOutline = \"M16.36 12.76C18.31 13.42 20 14.5 20 16V21H4V16C4 14.5 5.69 13.42 7.65 12.76L8.27 14L8.5 14.5C7 14.96 5.9 15.62 5.9 16V19.1H10.12L11 14.03L10.06 12.15C10.68 12.08 11.33 12.03 12 12.03C12.67 12.03 13.32 12.08 13.94 12.15L13 14.03L13.88 19.1H18.1V16C18.1 15.62 17 14.96 15.5 14.5L15.73 14L16.36 12.76M12 5C10.9 5 10 5.9 10 7C10 8.1 10.9 9 12 9C13.1 9 14 8.1 14 7C14 5.9 13.1 5 12 5M12 11C9.79 11 8 9.21 8 7C8 4.79 9.79 3 12 3C14.21 3 16 4.79 16 7C16 9.21 14.21 11 12 11Z\";\nexport var mdiAccountTieVoice = \"M16.75 4.36C18.77 6.56 18.77 9.61 16.75 11.63L15.07 9.94C15.91 8.76 15.91 7.23 15.07 6.05L16.75 4.36M20.06 1C24 5.05 23.96 11.11 20.06 15L18.43 13.37C21.2 10.19 21.2 5.65 18.43 2.63L20.06 1M9 4C11.2 4 13 5.79 13 8S11.2 12 9 12 5 10.21 5 8 6.79 4 9 4M13 14.54C13 15.6 12.71 18.07 10.8 20.83L10 16L10.93 14.12C10.31 14.05 9.66 14 9 14S7.67 14.05 7.05 14.12L8 16L7.18 20.83C5.27 18.07 5 15.6 5 14.54C2.6 15.24 .994 16.5 .994 18V22H17V18C17 16.5 15.39 15.24 13 14.54Z\";\nexport var mdiAccountTieVoiceOff = \"M12.7 9.5L7.5 4.3C7.96 4.11 8.46 4 9 4C11.2 4 13 5.79 13 8C13 8.53 12.89 9.04 12.7 9.5M16.75 11.63C18.77 9.61 18.77 6.56 16.75 4.36L15.07 6.05C15.91 7.23 15.91 8.76 15.07 9.94L16.75 11.63M20.06 15C23.96 11.11 24 5.05 20.06 1L18.43 2.63C21.2 5.65 21.2 10.19 18.43 13.37L20.06 15M2.39 1.73L1.11 3L5.13 7C5.05 7.34 5 7.66 5 8C5 10.21 6.79 12 9 12C9.33 12 9.66 11.94 9.97 11.86L13 14.87C12.93 16.06 12.54 18.32 10.8 20.83L10 16L10.93 14.12C10.31 14.05 9.66 14 9 14C8.32 14 7.67 14.05 7.05 14.12L8 16L7.18 20.83C5.27 18.07 5 15.6 5 14.54C2.6 15.24 .994 16.5 .994 18V22H17V18.88L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiAccountTieVoiceOffOutline = \"M9.22 6L7.5 4.3C7.96 4.11 8.47 4 9 4C11.21 4 13 5.79 13 8C13 8.53 12.89 9.04 12.7 9.5L11 7.78C10.87 6.86 10.14 6.13 9.22 6M20.06 15C23.96 11.11 24 5.05 20.06 1L18.43 2.63C21.2 5.65 21.2 10.19 18.43 13.37L20.06 15M16.75 11.63C18.77 9.61 18.77 6.56 16.75 4.36L15.07 6.05C15.91 7.23 15.91 8.76 15.07 9.94L16.75 11.63M2.39 1.73L1.11 3L5.14 7.03C5.06 7.34 5 7.66 5 8C5 10.21 6.79 12 9 12C9.34 12 9.66 11.94 9.97 11.86L12.86 14.75L12.73 15L12.5 15.5C13.3 15.74 13.97 16.05 14.44 16.33L15.1 17V20.1H10.88L10 15.03L10.94 13.15C10.32 13.08 9.67 13.03 9 13.03S7.68 13.08 7.06 13.15L8 15.03L7.12 20.1H2.9V17C2.9 16.62 4 15.96 5.5 15.5L5.27 15L4.65 13.76C2.69 14.42 1 15.5 1 17V22H17V18.89L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiAccountTieVoiceOutline = \"M16.75 4.36C18.77 6.56 18.77 9.61 16.75 11.63L15.07 9.94C15.91 8.76 15.91 7.23 15.07 6.05L16.75 4.36M20.06 1C24 5.05 23.96 11.11 20.06 15L18.43 13.37C21.2 10.19 21.2 5.65 18.43 2.63L20.06 1M13.36 13.76C15.31 14.42 17 15.5 17 17V22H1V17C1 15.5 2.69 14.42 4.65 13.76L5.27 15L5.5 15.5C4 15.96 2.9 16.62 2.9 17V20.1H7.12L8 15.03L7.06 13.15C7.68 13.08 8.33 13.03 9 13.03S10.32 13.08 10.94 13.15L10 15.03L10.88 20.1H15.1V17C15.1 16.62 14 15.96 12.5 15.5L12.73 15L13.36 13.76M9 6C7.9 6 7 6.9 7 8S7.9 10 9 10 11 9.1 11 8 10.1 6 9 6M9 12C6.79 12 5 10.21 5 8S6.79 4 9 4 13 5.79 13 8 11.21 12 9 12Z\";\nexport var mdiAccountTieWoman = \"M11.94 3C9.75 3.03 8 4.81 8 7C7.94 8.64 7.81 10.47 7.03 11.59C9.71 13.22 12 13 12 13C12 13 14.29 13.22 16.97 11.59C16.12 10.22 15.94 8.54 16 7C16 4.79 14.21 3 12 3H11.94M8.86 13.32C6 13.93 4 15.35 4 17V21H12L9 17H6.5M12 21L13.78 13.81C13.78 13.81 13 14 12 14C11 14 10.22 13.81 10.22 13.81M12 21H20V17C20 15.35 18 13.93 15.14 13.32L17.5 17H15Z\";\nexport var mdiAccountVoice = \"M9,5A4,4 0 0,1 13,9A4,4 0 0,1 9,13A4,4 0 0,1 5,9A4,4 0 0,1 9,5M9,15C11.67,15 17,16.34 17,19V21H1V19C1,16.34 6.33,15 9,15M16.76,5.36C18.78,7.56 18.78,10.61 16.76,12.63L15.08,10.94C15.92,9.76 15.92,8.23 15.08,7.05L16.76,5.36M20.07,2C24,6.05 23.97,12.11 20.07,16L18.44,14.37C21.21,11.19 21.21,6.65 18.44,3.63L20.07,2Z\";\nexport var mdiAccountVoiceOff = \"M2,3.27L3.28,2L22,20.72L20.73,22L16.73,18C16.9,18.31 17,18.64 17,19V21H1V19C1,16.34 6.33,15 9,15C10.77,15 13.72,15.59 15.5,16.77L11.12,12.39C10.5,12.78 9.78,13 9,13A4,4 0 0,1 5,9C5,8.22 5.22,7.5 5.61,6.88L2,3.27M9,5A4,4 0 0,1 13,9V9.17L8.83,5H9M16.76,5.36C18.78,7.56 18.78,10.61 16.76,12.63L15.08,10.94C15.92,9.76 15.92,8.23 15.08,7.05L16.76,5.36M20.07,2C24,6.05 23.97,12.11 20.07,16L18.44,14.37C21.21,11.19 21.21,6.65 18.44,3.63L20.07,2Z\";\nexport var mdiAccountWrench = \"M22.9 21.2L18.8 17.1C19.2 16.1 19 14.8 18.1 14C17.2 13.1 15.9 12.9 14.8 13.4L16.7 15.3L15.3 16.7L13.3 14.7C12.8 15.8 13 17.1 13.9 18.1C14.8 19 16 19.2 17 18.8L21.1 22.9C21.3 23.1 21.6 23.1 21.7 22.9L22.7 21.9C23 21.6 23 21.3 22.9 21.2M13 20H2V18C2 15.8 5.6 14 10 14C10.5 14 11 14 11.4 14.1C11.1 14.7 11 15.3 11 16C11 17.6 11.8 19.1 13 20M10 4C7.8 4 6 5.8 6 8S7.8 12 10 12 14 10.2 14 8 12.2 4 10 4\";\nexport var mdiAccountWrenchOutline = \"M22.9 21.2L18.8 17.1C19.2 16.1 19 14.8 18.1 14C17.2 13.1 15.9 12.9 14.8 13.4L16.7 15.3L15.3 16.7L13.3 14.7C12.8 15.8 13 17.1 13.9 18.1C14.8 19 16 19.2 17 18.8L21.1 22.9C21.3 23.1 21.6 23.1 21.7 22.9L22.7 21.9C23 21.6 23 21.3 22.9 21.2M10 12C12.2 12 14 10.2 14 8S12.2 4 10 4 6 5.8 6 8 7.8 12 10 12M10 6C11.1 6 12 6.9 12 8S11.1 10 10 10 8 9.1 8 8 8.9 6 10 6M13 20H2V17C2 14.3 7.3 13 10 13C10.5 13 11.2 13.1 11.9 13.2C11.5 13.7 11.3 14.3 11.1 15C10.7 15 10.4 14.9 10 14.9C7 14.9 3.9 16.4 3.9 17V18.1H11.5C11.8 18.9 12.4 19.5 13 20Z\";\nexport var mdiAdjust = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12Z\";\nexport var mdiAdvertisements = \"M19 7C17.9 7 17 7.9 17 9V11C17 12.1 17.9 13 19 13H21V15H17V17H21C22.1 17 23 16.1 23 15V13C23 11.9 22.1 11 21 11H19V9H23V7H19M9 7V17H13C14.1 17 15 16.1 15 15V9C15 7.9 14.1 7 13 7H9M11 9H13V15H11V9M3 7C1.9 7 1 7.9 1 9V17H3V13H5V17H7V9C7 7.9 6.1 7 5 7H3M3 9H5V11H3V9Z\";\nexport var mdiAdvertisementsOff = \"M12.2 9L10.2 7H13C14.1 7 15 7.9 15 9V11.8L13 9.8V9H12.2M23 9V7H19C17.9 7 17 7.9 17 9V11C17 12.1 17.9 13 19 13H21V15H18.2L20.2 17H21C22.1 17 23 16.1 23 15V13C23 11.9 22.1 11 21 11H19V9H23M22.1 21.5L20.8 22.8L14.4 16.4C14.1 16.7 13.6 17 13 17H9V10.9L7 8.9V17H5V13H3V17H1V9C1 7.9 1.9 7 3 7H5.1L1.1 3L2.4 1.7L22.1 21.5M5 9H3V11H5V9M13 14.9L11 12.9V15H13V14.9Z\";\nexport var mdiAirConditioner = \"M6.59,0.66C8.93,-1.15 11.47,1.06 12.04,4.5C12.47,4.5 12.89,4.62 13.27,4.84C13.79,4.24 14.25,3.42 14.07,2.5C13.65,0.35 16.06,-1.39 18.35,1.58C20.16,3.92 17.95,6.46 14.5,7.03C14.5,7.46 14.39,7.89 14.16,8.27C14.76,8.78 15.58,9.24 16.5,9.06C18.63,8.64 20.38,11.04 17.41,13.34C15.07,15.15 12.53,12.94 11.96,9.5C11.53,9.5 11.11,9.37 10.74,9.15C10.22,9.75 9.75,10.58 9.93,11.5C10.35,13.64 7.94,15.39 5.65,12.42C3.83,10.07 6.05,7.53 9.5,6.97C9.5,6.54 9.63,6.12 9.85,5.74C9.25,5.23 8.43,4.76 7.5,4.94C5.37,5.36 3.62,2.96 6.59,0.66M5,16H7A2,2 0 0,1 9,18V24H7V22H5V24H3V18A2,2 0 0,1 5,16M5,18V20H7V18H5M12.93,16H15L12.07,24H10L12.93,16M18,16H21V18H18V22H21V24H18A2,2 0 0,1 16,22V18A2,2 0 0,1 18,16Z\";\nexport var mdiAirFilter = \"M19,18.31V20A2,2 0 0,1 17,22H7A2,2 0 0,1 5,20V16.3C4.54,16.12 3.95,16 3,16A1,1 0 0,1 2,15A1,1 0 0,1 3,14C3.82,14 4.47,14.08 5,14.21V12.3C4.54,12.12 3.95,12 3,12A1,1 0 0,1 2,11A1,1 0 0,1 3,10C3.82,10 4.47,10.08 5,10.21V8.3C4.54,8.12 3.95,8 3,8A1,1 0 0,1 2,7A1,1 0 0,1 3,6C3.82,6 4.47,6.08 5,6.21V4A2,2 0 0,1 7,2H17A2,2 0 0,1 19,4V6.16C20.78,6.47 21.54,7.13 21.71,7.29C22.1,7.68 22.1,8.32 21.71,8.71C21.32,9.1 20.8,9.09 20.29,8.71V8.71C20.29,8.71 19.25,8 17,8C15.74,8 14.91,8.41 13.95,8.9C12.91,9.41 11.74,10 10,10C9.64,10 9.31,10 9,9.96V7.95C9.3,8 9.63,8 10,8C11.26,8 12.09,7.59 13.05,7.11C14.09,6.59 15.27,6 17,6V4H7V20H17V18C18.5,18 18.97,18.29 19,18.31M17,10C15.27,10 14.09,10.59 13.05,11.11C12.09,11.59 11.26,12 10,12C9.63,12 9.3,12 9,11.95V13.96C9.31,14 9.64,14 10,14C11.74,14 12.91,13.41 13.95,12.9C14.91,12.42 15.74,12 17,12C19.25,12 20.29,12.71 20.29,12.71V12.71C20.8,13.1 21.32,13.1 21.71,12.71C22.1,12.32 22.1,11.69 21.71,11.29C21.5,11.08 20.25,10 17,10M17,14C15.27,14 14.09,14.59 13.05,15.11C12.09,15.59 11.26,16 10,16C9.63,16 9.3,16 9,15.95V17.96C9.31,18 9.64,18 10,18C11.74,18 12.91,17.41 13.95,16.9C14.91,16.42 15.74,16 17,16C19.25,16 20.29,16.71 20.29,16.71V16.71C20.8,17.1 21.32,17.1 21.71,16.71C22.1,16.32 22.1,15.69 21.71,15.29C21.5,15.08 20.25,14 17,14Z\";\nexport var mdiAirHorn = \"M19,2.8V6L19,9.2C19,9.5 18.7,9.8 18.4,9.7C18.4,9.7 14.5,7.1 10,7.1V9.5H10.2C10.7,9.5 11.2,9.7 11.4,10.1L12.7,11.9C12.9,12.1 13,12.4 13,12.6V20.6C13,21.3 12.3,22 11.5,22H6.5C5.7,22 5,21.4 5,20.6V12.6C5,12.3 5.1,12.1 5.3,11.9L6.6,10.1C6.9,9.7 7.3,9.5 7.8,9.5H8V8C7.6,8.5 7,8.8 6.4,8.8C5.1,8.8 4,7.5 4,6C4,4.5 5.1,3.2 6.4,3.2C7,3.3 7.6,3.6 8,4V2.6H10V5C14.5,5 18.4,2.4 18.4,2.4C18.7,2.3 19,2.5 19,2.8Z\";\nexport var mdiAirHumidifier = \"M11 9C8.79 9 7 10.79 7 13S8.79 17 11 17 15 15.21 15 13 13.21 9 11 9M11 15C9.9 15 9 14.11 9 13S9.9 11 11 11 13 11.9 13 13 12.11 15 11 15M7 4H14C16.21 4 18 5.79 18 8V9H16V8C16 6.9 15.11 6 14 6H7C5.9 6 5 6.9 5 8V20H16V18H18V22H3V8C3 5.79 4.79 4 7 4M19 10.5C19 10.5 21 12.67 21 14C21 15.1 20.1 16 19 16S17 15.1 17 14C17 12.67 19 10.5 19 10.5\";\nexport var mdiAirHumidifierOff = \"M22.1 21.5L2.4 1.7L1.1 3L3.8 5.7C3.3 6.3 3 7.1 3 8V22H18V19.9L20.8 22.7L22.1 21.5M9.6 11.5L12.4 14.3C12.1 14.7 11.6 15 11 15C9.9 15 9 14.1 9 13C9 12.4 9.3 11.9 9.6 11.5M16 17.9V20H5V8C5 7.7 5.1 7.4 5.2 7.1L8.2 10.1C7.5 10.8 7 11.9 7 13C7 15.2 8.8 17 11 17C12.1 17 13.2 16.5 13.9 15.8L16 17.9M17 13.8C17.1 12.5 19 10.5 19 10.5S21 12.7 21 14C21 15 20.2 15.9 19.2 16L17 13.8M9.2 6L7.2 4H14C16.2 4 18 5.8 18 8V9H16V8C16 6.9 15.1 6 14 6H9.2Z\";\nexport var mdiAirPurifier = \"M11,9A4,4 0 0,1 15,13A4,4 0 0,1 11,17A4,4 0 0,1 7,13A4,4 0 0,1 11,9M11,11A2,2 0 0,0 9,13A2,2 0 0,0 11,15A2,2 0 0,0 13,13A2,2 0 0,0 11,11M7,4H14A4,4 0 0,1 18,8V9H16V8A2,2 0 0,0 14,6H7A2,2 0 0,0 5,8V20H16V18H18V22H3V8A4,4 0 0,1 7,4M16,11C18.5,11 18.5,9 21,9V11C18.5,11 18.5,13 16,13V11M16,15C18.5,15 18.5,13 21,13V15C18.5,15 18.5,17 16,17V15Z\";\nexport var mdiAirPurifierOff = \"M21 11C18.6 11 18.5 12.9 16.2 13L16 12.8V11C18.5 11 18.5 9 21 9V11M22.1 21.5L20.8 22.8L18 19.9V22H3V8C3 7.1 3.3 6.3 3.8 5.7L1.1 3L2.4 1.7L22.1 21.5M9 13C9 14.1 9.9 15 11 15C11.6 15 12.1 14.7 12.5 14.4L9.7 11.6C9.3 11.9 9 12.4 9 13M16 17.9L13.9 15.8C13.2 16.5 12.1 17 11 17C8.8 17 7 15.2 7 13C7 11.9 7.5 10.8 8.2 10.1L5.2 7.1C5.1 7.4 5 7.7 5 8V20H16V17.9M21 15V13C19.3 13 18.7 14 17.7 14.5L18.8 15.6C19.4 15.3 20 15 21 15M14 6C15.1 6 16 6.9 16 8V9H18V8C18 5.8 16.2 4 14 4H7.2L9.2 6H14Z\";\nexport var mdiAirbag = \"M14,8A5,5 0 0,1 9,13A5,5 0 0,1 4,8A5,5 0 0,1 9,3A5,5 0 0,1 14,8M10.46,15.55L13,18.03L11,18.05L7.5,21.58L6,20.09L10.46,15.55M17,2C18.08,2 19,2.88 19,4C19,5.08 18.12,6 17,6C15.92,6 15,5.12 15,4C15,2.92 15.89,2 17,2M14.41,15H11.59L17.29,20.71L18.71,19.29L14.41,15M15.12,14.29L19.41,18.59L19.63,18.8C19.86,18.42 20,18 20,17.5V9.5A2.5,2.5 0 0,0 17.5,7A2.5,2.5 0 0,0 15,9.5V14.17L15.12,14.29Z\";\nexport var mdiAirballoon = \"M11,23A2,2 0 0,1 9,21V19H15V21A2,2 0 0,1 13,23H11M12,1C12.71,1 13.39,1.09 14.05,1.26C15.22,2.83 16,5.71 16,9C16,11.28 15.62,13.37 15,16A2,2 0 0,1 13,18H11A2,2 0 0,1 9,16C8.38,13.37 8,11.28 8,9C8,5.71 8.78,2.83 9.95,1.26C10.61,1.09 11.29,1 12,1M20,8C20,11.18 18.15,15.92 15.46,17.21C16.41,15.39 17,11.83 17,9C17,6.17 16.41,3.61 15.46,1.79C18.15,3.08 20,4.82 20,8M4,8C4,4.82 5.85,3.08 8.54,1.79C7.59,3.61 7,6.17 7,9C7,11.83 7.59,15.39 8.54,17.21C5.85,15.92 4,11.18 4,8Z\";\nexport var mdiAirballoonOutline = \"M11 23C9.9 23 9 22.1 9 21V19H15V21C15 22.1 14.1 23 13 23H11M12 3C12.28 3 12.55 3 12.81 3.05C13.42 4.22 14 6.26 14 9C14 11.1 13 16 13 16H11C11 16 10 11.1 10 9C10 6.26 10.58 4.22 11.19 3.05C11.45 3 11.72 3 12 3M12 1C11.29 1 10.61 1.09 9.95 1.26C8.78 2.83 8 5.71 8 9C8 11.28 8.38 13.37 9 16C9 17.1 9.9 18 11 18H13C14.1 18 15 17.1 15 16C15.62 13.37 16 11.28 16 9C16 5.71 15.22 2.83 14.05 1.26C13.39 1.09 12.71 1 12 1M4 8C4 11.18 5.85 15.92 8.54 17.21C8 16.21 7.61 14.67 7.34 13C6.55 11.53 6 9.62 6 8C6 6.66 6.44 5.67 7.47 4.8C7.73 3.67 8.09 2.65 8.54 1.79C5.85 3.08 4 4.82 4 8M15.46 1.79C15.91 2.65 16.27 3.67 16.53 4.8C17.56 5.67 18 6.66 18 8C18 9.62 17.45 11.53 16.66 13C16.39 14.67 16 16.21 15.46 17.21C18.15 15.92 20 11.18 20 8S18.15 3.08 15.46 1.79Z\";\nexport var mdiAirplane = \"M20.56 3.91C21.15 4.5 21.15 5.45 20.56 6.03L16.67 9.92L18.79 19.11L17.38 20.53L13.5 13.1L9.6 17L9.96 19.47L8.89 20.53L7.13 17.35L3.94 15.58L5 14.5L7.5 14.87L11.37 11L3.94 7.09L5.36 5.68L14.55 7.8L18.44 3.91C19 3.33 20 3.33 20.56 3.91Z\";\nexport var mdiAirplaneAlert = \"M17.56 3.91C18.15 4.5 18.15 5.45 17.56 6.03L13.67 9.92L15.79 19.11L14.38 20.53L10.5 13.1L6.6 17L6.96 19.47L5.89 20.53L4.13 17.35L.944 15.58L2 14.5L4.5 14.87L8.37 11L.944 7.09L2.36 5.68L11.55 7.8L15.44 3.91C16 3.33 17 3.33 17.56 3.91M20 7V13H22V7H20M20 17H22V15H20V17Z\";\nexport var mdiAirplaneCheck = \"M15.97 13.83C15.08 14.35 14.34 15.09 13.82 16L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.97 13.83M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiAirplaneClock = \"M16 9C15.09 9 14.23 9.18 13.43 9.5L12.73 6.45L16.62 2.56C17.2 2 17.2 1.03 16.62 .44S15.08-.146 14.5 .44L10.61 4.33L1.41 2.21L0 3.62L7.43 7.5L3.54 11.4L1.06 11.05L0 12.11L3.18 13.87L4.95 17.06L6 16L5.66 13.5L9.55 9.63L10.57 11.59C9.59 12.79 9 14.33 9 16C9 19.87 12.13 23 16 23S23 19.87 23 16 19.87 9 16 9M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25V12H15V17L18.61 19.16L19.36 17.94L16.5 16.25Z\";\nexport var mdiAirplaneCog = \"M15.73 12.81C14.76 13.33 13.92 14.07 13.29 14.96L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.73 12.81M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiAirplaneEdit = \"M11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L16.03 14.1L13.94 16.19L11.55 11.63M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiAirplaneLanding = \"M2.5,19H21.5V21H2.5V19M9.68,13.27L14.03,14.43L19.34,15.85C20.14,16.06 20.96,15.59 21.18,14.79C21.39,14 20.92,13.17 20.12,12.95L14.81,11.53L12.05,2.5L10.12,2V10.28L5.15,8.95L4.22,6.63L2.77,6.24V11.41L4.37,11.84L9.68,13.27Z\";\nexport var mdiAirplaneMarker = \"M15.33 11.05C14.17 11.88 13.34 13.14 13.09 14.58L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.33 11.05M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6\";\nexport var mdiAirplaneMinus = \"M15.97 13.83C15.08 14.35 14.34 15.09 13.82 16L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.97 13.83M15 18V20H23V18H15Z\";\nexport var mdiAirplaneOff = \"M20.84 22.73L18 19.9L17.38 20.53L16 17.89L12.35 14.24L9.6 17L9.96 19.47L8.89 20.53L7.13 17.35L3.94 15.58L5 14.5L7.5 14.87L10.23 12.12L6.59 8.5L3.94 7.09L4.57 6.46L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M16.67 9.92L20.56 6.03C21.15 5.45 21.15 4.5 20.56 3.91S19 3.33 18.44 3.91L14.55 7.8L9.94 6.74L17.74 14.54L16.67 9.92Z\";\nexport var mdiAirplanePlus = \"M15.97 13.83C15.08 14.35 14.34 15.09 13.82 16L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.97 13.83M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiAirplaneRemove = \"M15.97 13.83C15.08 14.35 14.34 15.09 13.82 16L11.55 11.63L7.66 15.5L8 18L6.95 19.06L5.18 15.87L2 14.11L3.06 13.05L5.54 13.4L9.43 9.5L2 5.62L3.41 4.21L12.61 6.33L16.5 2.44C17.08 1.85 18.03 1.85 18.62 2.44C19.2 3.03 19.2 4 18.62 4.56L14.73 8.45L15.97 13.83M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiAirplaneSearch = \"M9.55 9.63L10.9 12.22C11.5 11.17 12.41 10.31 13.5 9.74L12.73 6.45L16.62 2.56C17.2 1.97 17.2 1 16.62 .438S15.08-.148 14.5 .438L10.61 4.33L1.41 2.21L0 3.62L7.43 7.5L3.54 11.4L1.06 11.05L0 12.11L3.18 13.87L4.95 17.06L6 16L5.66 13.5L9.55 9.63M16.5 11C19 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11M16.5 13C15.12 13 14 14.12 14 15.5S15.12 18 16.5 18 19 16.88 19 15.5 17.88 13 16.5 13\";\nexport var mdiAirplaneSettings = \"M20.09 4.56L16.2 8.45L18.32 17.64L16.91 19.06L13 11.63L9.13 15.5L9.5 18L8.42 19.06L6.65 15.87L3.47 14.11L4.53 13.04L7 13.4L10.9 9.5L3.47 5.62L4.89 4.21L14.08 6.33L17.97 2.44C18.55 1.85 19.5 1.85 20.09 2.44C20.68 3 20.68 3.97 20.09 4.56M7 24H9V22H7V24M11 24H13V22H11V24M15 24H17V22H15V24Z\";\nexport var mdiAirplaneTakeoff = \"M2.5,19H21.5V21H2.5V19M22.07,9.64C21.86,8.84 21.03,8.36 20.23,8.58L14.92,10L8,3.57L6.09,4.08L10.23,11.25L5.26,12.58L3.29,11.04L1.84,11.43L3.66,14.59L4.43,15.92L6.03,15.5L11.34,14.07L15.69,12.91L21,11.5C21.81,11.26 22.28,10.44 22.07,9.64Z\";\nexport var mdiAirport = \"M14.97,5.92C14.83,5.41 14.3,5.1 13.79,5.24L10.39,6.15L5.95,2.03L4.72,2.36L7.38,6.95L4.19,7.8L2.93,6.82L2,7.07L3.66,9.95L14.28,7.11C14.8,6.96 15.1,6.43 14.97,5.92M21,10L20,12H15L14,10L15,9H17V7H18V9H20L21,10M22,20V22H2V20H15V13H20V20H22Z\";\nexport var mdiAlarm = \"M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M12.5,8H11V14L15.75,16.85L16.5,15.62L12.5,13.25V8M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72Z\";\nexport var mdiAlarmBell = \"M15,18.66V22H5V18.66C8.09,20.45 11.91,20.45 15,18.66M22,4A2,2 0 0,0 20,2C19.69,2 19.39,2.07 19.12,2.21C18.82,2.36 18.56,2.58 18.36,2.85C17.72,3.75 17.94,5 18.85,5.64C19.18,5.87 19.59,6 20,6C20.08,6 20.16,6 20.24,6C21.97,10.43 20.66,15.46 17,18.5C16.68,18.75 16.35,19 16,19.22V21H17V19.74C20.14,17.5 22,13.86 22,10C22,8.5 21.72,7 21.17,5.62C21.69,5.24 22,4.64 22,4M18,10A8,8 0 0,1 10,18A8,8 0 0,1 2,10A8,8 0 0,1 10,2A8,8 0 0,1 18,10Z\";\nexport var mdiAlarmCheck = \"M10.54,14.53L8.41,12.4L7.35,13.46L10.53,16.64L16.53,10.64L15.47,9.58L10.54,14.53M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72Z\";\nexport var mdiAlarmLight = \"M6,6.9L3.87,4.78L5.28,3.37L7.4,5.5L6,6.9M13,1V4H11V1H13M20.13,4.78L18,6.9L16.6,5.5L18.72,3.37L20.13,4.78M4.5,10.5V12.5H1.5V10.5H4.5M19.5,10.5H22.5V12.5H19.5V10.5M6,20H18A2,2 0 0,1 20,22H4A2,2 0 0,1 6,20M12,5A6,6 0 0,1 18,11V19H6V11A6,6 0 0,1 12,5Z\";\nexport var mdiAlarmLightOff = \"M18 14.8L9 5.8C9.9 5.3 10.9 5 12 5C15.3 5 18 7.7 18 11V14.8M20.1 4.8L18.7 3.4L16.6 5.5L18 6.9L20.1 4.8M19.5 10.5V12.5H22.5V10.5H19.5M4.5 10.5H1.5V12.5H4.5V10.5M1.1 3L6.6 8.5C6.2 9.2 6 10.1 6 11V19H17.1L18.1 20H6C4.9 20 4 20.9 4 22H20.1L20.8 22.7L22.1 21.4L2.4 1.7L1.1 3M13 1H11V4H13V1Z\";\nexport var mdiAlarmLightOffOutline = \"M10.5 7.3L9 5.8C9.9 5.3 10.9 5 12 5C15.3 5 18 7.7 18 11V14.8L16 12.8V11C16 8.8 14.2 7 12 7C11.5 7 11 7.1 10.5 7.3M20.1 4.8L18.7 3.4L16.6 5.5L18 6.9L20.1 4.8M19.5 10.5V12.5H22.5V10.5H19.5M4.5 10.5H1.5V12.5H4.5V10.5M2.4 1.7L22.1 21.4L20.8 22.7L20.1 22H4C4 20.9 4.9 20 6 20H18.1L17.1 19H6V11C6 10.1 6.2 9.2 6.6 8.5L1.1 3L2.4 1.7M8 17H15.1L8.1 10C8.1 10.3 8 10.7 8 11V17M13 1H11V4H13V1Z\";\nexport var mdiAlarmLightOutline = \"M6,6.9L3.87,4.78L5.28,3.37L7.4,5.5L6,6.9M13,1V4H11V1H13M20.13,4.78L18,6.9L16.6,5.5L18.72,3.37L20.13,4.78M4.5,10.5V12.5H1.5V10.5H4.5M19.5,10.5H22.5V12.5H19.5V10.5M6,20H18A2,2 0 0,1 20,22H4A2,2 0 0,1 6,20M12,5A6,6 0 0,1 18,11V19H6V11A6,6 0 0,1 12,5M12,7A4,4 0 0,0 8,11V17H16V11A4,4 0 0,0 12,7Z\";\nexport var mdiAlarmMultiple = \"M9.29,3.25L5.16,6.72L4,5.34L8.14,1.87L9.29,3.25M22,5.35L20.84,6.73L16.7,3.25L17.86,1.87L22,5.35M13,4A8,8 0 0,1 21,12A8,8 0 0,1 13,20A8,8 0 0,1 5,12A8,8 0 0,1 13,4M13,6A6,6 0 0,0 7,12A6,6 0 0,0 13,18A6,6 0 0,0 19,12A6,6 0 0,0 13,6M12,7.5H13.5V12.03L16.72,13.5L16.1,14.86L12,13V7.5M1,14C1,11.5 2.13,9.3 3.91,7.83C3.33,9.1 3,10.5 3,12L3.06,13.13L3,14C3,16.28 4.27,18.26 6.14,19.28C7.44,20.5 9.07,21.39 10.89,21.78C10.28,21.92 9.65,22 9,22A8,8 0 0,1 1,14Z\";\nexport var mdiAlarmNote = \"M17.4,1.86L16.11,3.39L20.71,7.25L22,5.72L17.4,1.86M6.6,1.86L2,5.71L3.29,7.24L7.88,3.39L6.6,1.86M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22C12.33,22 12.67,22 13,21.94V19.94C12.67,20 12.33,20 12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6C15.1,6 17.83,8.03 18.71,11H20.78C19.85,6.9 16.2,4 12,4M23,15H20V20.5A2.5,2.5 0 0,1 17.5,23A2.5,2.5 0 0,1 15,20.5A2.5,2.5 0 0,1 17.5,18C18.04,18 18.57,18.18 19,18.5V13H23V15M11.5,8V13.25L7.5,15.62L8.25,16.85L13,14V8H11.5Z\";\nexport var mdiAlarmNoteOff = \"M19,13V15.8L20,16.8V15H23V13H19M2.38,1.73L1.11,3L3,4.88L2,5.71L3.29,7.24L4.41,6.3L5.21,7.1C1.95,10.85 2.35,16.54 6.11,19.8C7.74,21.22 9.83,22 12,22C12.33,22 12.67,22 13,21.94V19.94C12.67,20 12.33,20 12,20A7,7 0 0,1 5,13C5,11.36 5.57,9.77 6.63,8.5L11.41,13.3L7.5,15.62L8.25,16.85L12.44,14.33L16.38,18.27C15.14,18.88 14.64,20.38 15.25,21.62C15.86,22.86 17.36,23.36 18.6,22.75C19.09,22.5 19.5,22.11 19.73,21.62L20.84,22.73L22.11,21.46L2.38,1.73M12,6C15.1,6 17.83,8.03 18.71,11H20.78C19.85,6.9 16.2,4 12,4C10.65,4 9.31,4.3 8.1,4.9L9.62,6.42C10.38,6.14 11.19,6 12,6M11.5,8.3L13,9.8V8H11.5V8.3M7.88,3.39L6.6,1.86L5.76,2.56L7.18,4L7.88,3.39M17.4,1.86L16.11,3.39L20.71,7.25L22,5.72L17.4,1.86Z\";\nexport var mdiAlarmOff = \"M8,3.28L6.6,1.86L5.74,2.57L7.16,4M16.47,18.39C15.26,19.39 13.7,20 12,20A7,7 0 0,1 5,13C5,11.3 5.61,9.74 6.61,8.53M2.92,2.29L1.65,3.57L3,4.9L1.87,5.83L3.29,7.25L4.4,6.31L5.2,7.11C3.83,8.69 3,10.75 3,13A9,9 0 0,0 12,22C14.25,22 16.31,21.17 17.89,19.8L20.09,22L21.36,20.73L3.89,3.27L2.92,2.29M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72M12,6A7,7 0 0,1 19,13C19,13.84 18.84,14.65 18.57,15.4L20.09,16.92C20.67,15.73 21,14.41 21,13A9,9 0 0,0 12,4C10.59,4 9.27,4.33 8.08,4.91L9.6,6.43C10.35,6.16 11.16,6 12,6Z\";\nexport var mdiAlarmPanel = \"M20 3H4C2.9 3 2 3.9 2 5V19C2 20.1 2.9 21 4 21H20C21.1 21 22 20.1 22 19V5C22 3.9 21.1 3 20 3M8 19H5V17H8V19M8 16H5V14H8V16M8 13H5V11H8V13M13.5 19H10.5V17H13.5V19M13.5 16H10.5V14H13.5V16M13.5 13H10.5V11H13.5V13M19 19H16V17H19V19M19 16H16V14H19V16M19 13H16V11H19V13M19 9H5V5H19V9Z\";\nexport var mdiAlarmPanelOutline = \"M9 12H6V10H9V12M13.5 10H10.5V12H13.5V10M18 10H15V12H18V10M18 6H6V9H18V6M20 5H4L4 19L20 19L20 5L20 5M20 3C21.1 3 22 3.9 22 5V19C22 20.1 21.1 21 20 21H4C2.9 21 2 20.1 2 19V5C2 3.9 2.9 3 4 3H20M9 13H6V15H9V13M13.5 13H10.5V15H13.5V13M18 13H15V15H18V13M9 16H6V18H9V16M13.5 16H10.5V18H13.5V16M18 16H15V18H18V16Z\";\nexport var mdiAlarmPlus = \"M13,9H11V12H8V14H11V17H13V14H16V12H13M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39Z\";\nexport var mdiAlarmSnooze = \"M7.88,3.39L6.6,1.86L2,5.71L3.29,7.24L7.88,3.39M22,5.72L17.4,1.86L16.11,3.39L20.71,7.25L22,5.72M12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,4M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M9,11H12.63L9,15.2V17H15V15H11.37L15,10.8V9H9V11Z\";\nexport var mdiAlbum = \"M12,11A1,1 0 0,0 11,12A1,1 0 0,0 12,13A1,1 0 0,0 13,12A1,1 0 0,0 12,11M12,16.5C9.5,16.5 7.5,14.5 7.5,12C7.5,9.5 9.5,7.5 12,7.5C14.5,7.5 16.5,9.5 16.5,12C16.5,14.5 14.5,16.5 12,16.5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nexport var mdiAlertBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M13,13V7H11V13H13M13,17V15H11V17H13Z\";\nexport var mdiAlertBoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M11,15H13V17H11V15M11,7H13V13H11V7\";\nexport var mdiAlertCircle = \"M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiAlertCircleCheck = \"M18.75 22.16L16 19.16L17.16 18L18.75 19.59L22.34 16L23.5 17.41L18.75 22.16M13 13V7H11V13H13M13 17V15H11V17H13M12 2C17.5 2 22 6.5 22 12L21.91 13.31C21.31 13.11 20.67 13 20 13C16.69 13 14 15.69 14 19C14 19.95 14.22 20.85 14.62 21.65C13.78 21.88 12.91 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2Z\";\nexport var mdiAlertCircleCheckOutline = \"M18.75 22.16L16 19.16L17.16 18L18.75 19.59L22.34 16L23.5 17.41L18.75 22.16M11 15H13V17H11V15M11 7H13V13H11V7M12 2C17.5 2 22 6.5 22 12L21.92 13.31C21.31 13.11 20.67 13 19.94 13L20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C12.71 20 13.39 19.91 14.05 19.74C14.13 20.42 14.33 21.06 14.62 21.65C13.78 21.88 12.9 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.47 2 12 2Z\";\nexport var mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nexport var mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nexport var mdiAlertDecagramOutline = \"M23,12L20.56,14.78L20.9,18.46L17.29,19.28L15.4,22.46L12,21L8.6,22.47L6.71,19.29L3.1,18.47L3.44,14.78L1,12L3.44,9.21L3.1,5.53L6.71,4.72L8.6,1.54L12,3L15.4,1.54L17.29,4.72L20.9,5.54L20.56,9.22L23,12M20.33,12L18.5,9.89L18.74,7.1L16,6.5L14.58,4.07L12,5.18L9.42,4.07L8,6.5L5.26,7.09L5.5,9.88L3.67,12L5.5,14.1L5.26,16.9L8,17.5L9.42,19.93L12,18.81L14.58,19.92L16,17.5L18.74,16.89L18.5,14.1L20.33,12M11,15H13V17H11V15M11,7H13V13H11V7\";\nexport var mdiAlertMinus = \"M14 19C14 16.21 15.91 13.87 18.5 13.2L12 2L1 21H14.35C14.13 20.37 14 19.7 14 19M13 18H11V16H13V18M13 14H11V10H13V14M24 18V20H16V18H24Z\";\nexport var mdiAlertMinusOutline = \"M11 15.5H13V17.5H11V15.5M14 19C14 18.86 14 18.73 14 18.6H5.4L12 7.3L16.11 14.44C16.62 14 17.2 13.65 17.84 13.41L12 3.3L2 20.6H14.22C14.08 20.09 14 19.56 14 19M13 10.5H11V14.5H13V10.5M16 18V20H24V18H16Z\";\nexport var mdiAlertOctagon = \"M13 13H11V7H13M11 15H13V17H11M15.73 3H8.27L3 8.27V15.73L8.27 21H15.73L21 15.73V8.27L15.73 3Z\";\nexport var mdiAlertOctagonOutline = \"M8.27,3L3,8.27V15.73L8.27,21H15.73C17.5,19.24 21,15.73 21,15.73V8.27L15.73,3M9.1,5H14.9L19,9.1V14.9L14.9,19H9.1L5,14.9V9.1M11,15H13V17H11V15M11,7H13V13H11V7\";\nexport var mdiAlertOctagram = \"M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06M13,17V15H11V17H13M13,13V7H11V13H13Z\";\nexport var mdiAlertOctagramOutline = \"M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06M4.81,9L6.05,12L4.81,15L7.79,16.21L9,19.19L12,17.95L15,19.19L16.21,16.21L19.19,15L17.95,12L19.19,9L16.21,7.79L15,4.81L12,6.05L9,4.81L7.79,7.79L4.81,9M11,15H13V17H11V15M11,7H13V13H11V7\";\nexport var mdiAlertOutline = \"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16\";\nexport var mdiAlertPlus = \"M14 19C14 16.21 15.91 13.87 18.5 13.2L12 2L1 21H14.35C14.13 20.37 14 19.7 14 19M13 18H11V16H13V18M13 14H11V10H13V14M21 15V18H24V20H21V23H19V20H16V18H19V15H21Z\";\nexport var mdiAlertPlusOutline = \"M11 15.5H13V17.5H11V15.5M14 19C14 18.86 14 18.73 14 18.6H5.4L12 7.3L16.11 14.44C16.62 14 17.2 13.65 17.84 13.41L12 3.3L2 20.6H14.22C14.08 20.09 14 19.56 14 19M13 10.5H11V14.5H13V10.5M19 15V18H16V20H19V23H21V20H24V18H21V15H19Z\";\nexport var mdiAlertRemove = \"M14 19C14 16.21 15.91 13.87 18.5 13.2L12 2L1 21H14.35C14.13 20.37 14 19.7 14 19M13 18H11V16H13V18M13 14H11V10H13V14M23.54 16.88L21.41 19L23.54 21.12L22.12 22.54L20 20.41L17.88 22.54L16.47 21.12L18.59 19L16.47 16.88L17.88 15.47L20 17.59L22.12 15.46L23.54 16.88Z\";\nexport var mdiAlertRemoveOutline = \"M11 15.5H13V17.5H11V15.5M14 19C14 18.86 14 18.73 14 18.6H5.4L12 7.3L16.11 14.44C16.62 14 17.2 13.65 17.84 13.41L12 3.3L2 20.6H14.22C14.08 20.09 14 19.56 14 19M13 10.5H11V14.5H13V10.5M22.12 15.46L20 17.59L17.88 15.46L16.47 16.88L18.59 19L16.47 21.12L17.88 22.54L20 20.41L22.12 22.54L23.54 21.12L21.41 19L23.54 16.88L22.12 15.46Z\";\nexport var mdiAlertRhombus = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M11 7H13V13H11V7M11 15H13V17H11V15Z\";\nexport var mdiAlertRhombusOutline = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L20 12L12 20L4 12M11 7V13H13V7M11 15V17H13V15Z\";\nexport var mdiAlien = \"M12,3C16.97,3 21,6.58 21,11C21,15.42 15,21 12,21C9,21 3,15.42 3,11C3,6.58 7.03,3 12,3M10.31,10.93C9.29,9.29 7.47,8.58 6.25,9.34C5.03,10.1 4.87,12.05 5.89,13.69C6.92,15.33 8.74,16.04 9.96,15.28C11.18,14.5 11.33,12.57 10.31,10.93M13.69,10.93C12.67,12.57 12.82,14.5 14.04,15.28C15.26,16.04 17.08,15.33 18.11,13.69C19.13,12.05 18.97,10.1 17.75,9.34C16.53,8.58 14.71,9.29 13.69,10.93M12,17.75C10,17.75 9.5,17 9.5,17C9.5,17.03 10,19 12,19C14,19 14.5,17 14.5,17C14.5,17 14,17.75 12,17.75Z\";\nexport var mdiAlienOutline = \"M10.31 10.93C11.33 12.57 11.18 14.5 9.96 15.28C8.74 16.04 6.92 15.33 5.89 13.69C4.87 12.05 5.03 10.1 6.25 9.34C7.47 8.58 9.29 9.29 10.31 10.93M12 17.75C14 17.75 14.5 17 14.5 17C14.5 17 14 19 12 19C10 19 9.5 17.03 9.5 17C9.5 17 10 17.75 12 17.75M17.75 9.34C18.97 10.1 19.13 12.05 18.11 13.69C17.08 15.33 15.26 16.04 14.04 15.28C12.82 14.5 12.67 12.57 13.69 10.93C14.71 9.29 16.53 8.58 17.75 9.34M12 20C14.5 20 20 14.86 20 11C20 7.14 16.41 4 12 4C7.59 4 4 7.14 4 11C4 14.86 9.5 20 12 20M12 2C17.5 2 22 6.04 22 11C22 15.08 16.32 22 12 22C7.68 22 2 15.08 2 11C2 6.04 6.5 2 12 2Z\";\nexport var mdiAlignHorizontalCenter = \"M11 2H13V7H21V10H13V14H18V17H13V22H11V17H6V14H11V10H3V7H11V2Z\";\nexport var mdiAlignHorizontalDistribute = \"M4 22H2V2H4V22M22 2H20V22H22V2M13.5 7H10.5V17H13.5V7Z\";\nexport var mdiAlignHorizontalLeft = \"M4 22H2V2H4V22M22 7H6V10H22V7M16 14H6V17H16V14Z\";\nexport var mdiAlignHorizontalRight = \"M20 2H22V22H20V2M2 10H18V7H2V10M8 17H18V14H8V17Z\";\nexport var mdiAlignVerticalBottom = \"M22 22H2V20H22V22M10 2H7V18H10V2M17 8H14V18H17V8Z\";\nexport var mdiAlignVerticalCenter = \"M22 11H17V6H14V11H10V3H7V11H1.8V13H7V21H10V13H14V18H17V13H22V11Z\";\nexport var mdiAlignVerticalDistribute = \"M22 2V4H2V2H22M7 10.5V13.5H17V10.5H7M2 20V22H22V20H2Z\";\nexport var mdiAlignVerticalTop = \"M22 2V4H2V2H22M7 22H10V6H7V22M14 16H17V6H14V16Z\";\nexport var mdiAllInclusive = \"M18.6,6.62C17.16,6.62 15.8,7.18 14.83,8.15L7.8,14.39C7.16,15.03 6.31,15.38 5.4,15.38C3.53,15.38 2,13.87 2,12C2,10.13 3.53,8.62 5.4,8.62C6.31,8.62 7.16,8.97 7.84,9.65L8.97,10.65L10.5,9.31L9.22,8.2C8.2,7.18 6.84,6.62 5.4,6.62C2.42,6.62 0,9.04 0,12C0,14.96 2.42,17.38 5.4,17.38C6.84,17.38 8.2,16.82 9.17,15.85L16.2,9.61C16.84,8.97 17.69,8.62 18.6,8.62C20.47,8.62 22,10.13 22,12C22,13.87 20.47,15.38 18.6,15.38C17.7,15.38 16.84,15.03 16.16,14.35L15,13.34L13.5,14.68L14.78,15.8C15.8,16.81 17.15,17.37 18.6,17.37C21.58,17.37 24,14.96 24,12C24,9 21.58,6.62 18.6,6.62Z\";\nexport var mdiAllInclusiveBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.1 3 19 3M16.1 15.9C15.07 15.9 14.09 15.5 13.35 14.76L12.71 14.12L14.13 12.71L14.76 13.34C15.12 13.7 15.6 13.9 16.11 13.9C17.15 13.9 18 13.05 18 12S17.15 10.1 16.1 10.1C15.6 10.1 15.12 10.3 14.76 10.66L10.65 14.76C9.91 15.5 8.94 15.9 7.9 15.9C5.75 15.9 4 14.15 4 12S5.75 8.1 7.9 8.1C8.94 8.1 9.91 8.5 10.65 9.24L11.29 9.88L9.87 11.3L9.24 10.66C8.88 10.3 8.4 10.1 7.9 10.1C6.85 10.1 6 10.95 6 12S6.85 13.9 7.9 13.9C8.4 13.9 8.88 13.7 9.24 13.34L13.35 9.24C14.09 8.5 15.06 8.1 16.1 8.1C18.25 8.1 20 9.85 20 12S18.25 15.9 16.1 15.9Z\";\nexport var mdiAllInclusiveBoxOutline = \"M19 12C19 13.84 17.5 15.34 15.66 15.34C14.77 15.34 13.94 15 13.31 14.36L12.71 13.76L13.77 12.71C14.04 13 14.37 13.3 14.37 13.3C14.71 13.65 15.18 13.84 15.67 13.84C16.68 13.84 17.5 13 17.5 12S16.68 10.16 15.67 10.16C15.18 10.16 14.71 10.36 14.37 10.7L10.7 14.36C10.07 15 9.23 15.34 8.34 15.34C6.5 15.34 5 13.84 5 12S6.5 8.66 8.34 8.66C9.23 8.66 10.07 9 10.7 9.64L11.29 10.24L10.23 11.3L9.64 10.7C9.29 10.36 8.83 10.16 8.34 10.16C7.32 10.16 6.5 11 6.5 12S7.32 13.84 8.34 13.84C8.83 13.84 9.29 13.65 9.64 13.3L13.31 9.64C13.94 9 14.77 8.66 15.66 8.66C17.5 8.66 19 10.16 19 12M21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3H19C20.1 3 21 3.89 21 5M19 5H5V19H19V5Z\";\nexport var mdiAllergy = \"M19.75 5.33A1.25 1.25 0 0 0 18.5 6.58V11.17H17.67V4.08A1.25 1.25 0 0 0 15.17 4.08V11.17H14.33V3.25A1.25 1.25 0 1 0 11.83 3.25V11.17H11V5.33A1.25 1.25 0 0 0 8.5 5.33V15.26L4.91 13.26A1 1 0 0 0 4.41 13.12A1 1 0 0 0 3.75 13.37L2.67 14.37L9.21 21A3.29 3.29 0 0 0 11.58 22H17.67A3.33 3.33 0 0 0 21 18.67V6.58A1.25 1.25 0 0 0 19.75 5.33M11 15A1 1 0 1 1 12 14A1 1 0 0 1 11 15M13 18A1 1 0 1 1 14 17A1 1 0 0 1 13 18M18 16A1 1 0 1 1 19 15A1 1 0 0 1 18 16M17 19A1 1 0 1 1 18 18A1 1 0 0 1 17 19M15 15A1 1 0 1 1 16 14A1 1 0 0 1 15 15Z\";\nexport var mdiAlpha = \"M18.08,17.8C17.62,17.93 17.21,18 16.85,18C15.65,18 14.84,17.12 14.43,15.35H14.38C13.39,17.26 12,18.21 10.25,18.21C8.94,18.21 7.89,17.72 7.1,16.73C6.31,15.74 5.92,14.5 5.92,13C5.92,11.25 6.37,9.85 7.26,8.76C8.15,7.67 9.36,7.12 10.89,7.12C11.71,7.12 12.45,7.35 13.09,7.8C13.73,8.26 14.22,8.9 14.56,9.73H14.6L15.31,7.33H17.87L15.73,12.65C15.97,13.89 16.22,14.74 16.5,15.19C16.74,15.64 17.08,15.87 17.5,15.87C17.74,15.87 17.93,15.83 18.1,15.76L18.08,17.8M13.82,12.56C13.61,11.43 13.27,10.55 12.81,9.95C12.36,9.34 11.81,9.04 11.18,9.04C10.36,9.04 9.7,9.41 9.21,10.14C8.72,10.88 8.5,11.79 8.5,12.86C8.5,13.84 8.69,14.65 9.12,15.31C9.54,15.97 10.11,16.29 10.82,16.29C11.42,16.29 11.97,16 12.46,15.45C12.96,14.88 13.37,14.05 13.7,12.96L13.82,12.56Z\";\nexport var mdiAlphaA = \"M11,7A2,2 0 0,0 9,9V17H11V13H13V17H15V9A2,2 0 0,0 13,7H11M11,9H13V11H11V9Z\";\nexport var mdiAlphaABox = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M11,7A2,2 0 0,0 9,9V17H11V13H13V17H15V9A2,2 0 0,0 13,7H11M11,9H13V11H11V9Z\";\nexport var mdiAlphaABoxOutline = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5M11,7H13A2,2 0 0,1 15,9V17H13V13H11V17H9V9A2,2 0 0,1 11,7M11,9V11H13V9H11Z\";\nexport var mdiAlphaACircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,7A2,2 0 0,0 9,9V17H11V13H13V17H15V9A2,2 0 0,0 13,7H11M11,9H13V11H11V9Z\";\nexport var mdiAlphaACircleOutline = \"M11,7H13A2,2 0 0,1 15,9V17H13V13H11V17H9V9A2,2 0 0,1 11,7M11,9V11H13V9H11M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaB = \"M15,10.5V9A2,2 0 0,0 13,7H9V17H13A2,2 0 0,0 15,15V13.5C15,12.7 14.3,12 13.5,12C14.3,12 15,11.3 15,10.5M13,15H11V13H13V15M13,11H11V9H13V11Z\";\nexport var mdiAlphaBBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M15,10.5V9A2,2 0 0,0 13,7H9V17H13A2,2 0 0,0 15,15V13.5C15,12.7 14.3,12 13.5,12C14.3,12 15,11.3 15,10.5M13,15H11V13H13V15M13,11H11V9H13V11Z\";\nexport var mdiAlphaBBoxOutline = \"M15,10.5C15,11.3 14.3,12 13.5,12C14.3,12 15,12.7 15,13.5V15A2,2 0 0,1 13,17H9V7H13A2,2 0 0,1 15,9V10.5M13,15V13H11V15H13M13,11V9H11V11H13M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaBCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M15,10.5V9A2,2 0 0,0 13,7H9V17H13A2,2 0 0,0 15,15V13.5C15,12.7 14.3,12 13.5,12C14.3,12 15,11.3 15,10.5M13,15H11V13H13V15M13,11H11V9H13V11Z\";\nexport var mdiAlphaBCircleOutline = \"M15,10.5C15,11.3 14.3,12 13.5,12C14.3,12 15,12.7 15,13.5V15A2,2 0 0,1 13,17H9V7H13A2,2 0 0,1 15,9V10.5M13,15V13H11V15H13M13,11V9H11V11H13M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaC = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V14H13V15H11V9H13V10H15V9A2,2 0 0,0 13,7H11Z\";\nexport var mdiAlphaCBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V14H13V15H11V9H13V10H15V9A2,2 0 0,0 13,7H11Z\";\nexport var mdiAlphaCBoxOutline = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5M11,7H13A2,2 0 0,1 15,9V10H13V9H11V15H13V14H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7Z\";\nexport var mdiAlphaCCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V14H13V15H11V9H13V10H15V9A2,2 0 0,0 13,7H11Z\";\nexport var mdiAlphaCCircleOutline = \"M11,7H13A2,2 0 0,1 15,9V10H13V9H11V15H13V14H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaD = \"M9,7V17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H9M11,9H13V15H11V9Z\";\nexport var mdiAlphaDBox = \"M9,7V17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H9M11,9H13V15H11V9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaDBoxOutline = \"M9,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H9V7M11,9V15H13V9H11M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaDCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M9,7V17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H9M11,9H13V15H11V9Z\";\nexport var mdiAlphaDCircleOutline = \"M9,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H9V7M11,9V15H13V9H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaE = \"M9,7V17H15V15H11V13H15V11H11V9H15V7H9Z\";\nexport var mdiAlphaEBox = \"M9,7V17H15V15H11V13H15V11H11V9H15V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaEBoxOutline = \"M9,7H15V9H11V11H15V13H11V15H15V17H9V7M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaECircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M9,7V17H15V15H11V13H15V11H11V9H15V7H9Z\";\nexport var mdiAlphaECircleOutline = \"M9,7H15V9H11V11H15V13H11V15H15V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaF = \"M9,7V17H11V13H14V11H11V9H15V7H9Z\";\nexport var mdiAlphaFBox = \"M9,7V17H11V13H14V11H11V9H15V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaFBoxOutline = \"M9,7H15V9H11V11H14V13H11V17H9V7M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaFCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M9,7V17H11V13H14V11H11V9H15V7H9Z\";\nexport var mdiAlphaFCircleOutline = \"M9,7H15V9H11V11H14V13H11V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaG = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V11H13V15H11V9H15V7H11Z\";\nexport var mdiAlphaGBox = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V11H13V15H11V9H15V7H11M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaGBoxOutline = \"M11,7H15V9H11V15H13V11H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaGCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V11H13V15H11V9H15V7H11Z\";\nexport var mdiAlphaGCircleOutline = \"M11,7H15V9H11V15H13V11H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaH = \"M9,7V17H11V13H13V17H15V7H13V11H11V7H9Z\";\nexport var mdiAlphaHBox = \"M9,7V17H11V13H13V17H15V7H13V11H11V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaHBoxOutline = \"M9,7H11V11H13V7H15V17H13V13H11V17H9V7M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M5,5V19H19V5H5Z\";\nexport var mdiAlphaHCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M9,7V17H11V13H13V17H15V7H13V11H11V7H9Z\";\nexport var mdiAlphaHCircleOutline = \"M9,7H11V11H13V7H15V17H13V13H11V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaI = \"M14,7V9H13V15H14V17H10V15H11V9H10V7H14Z\";\nexport var mdiAlphaIBox = \"M14,7H10V9H11V15H10V17H14V15H13V9H14V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaIBoxOutline = \"M14,7V9H13V15H14V17H10V15H11V9H10V7H14M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaICircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M14,7H10V9H11V15H10V17H14V15H13V9H14V7Z\";\nexport var mdiAlphaICircleOutline = \"M14,7V9H13V15H14V17H10V15H11V9H10V7H14M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaJ = \"M13,7V15H11V14H9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13Z\";\nexport var mdiAlphaJBox = \"M13,7V15H11V14H9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaJBoxOutline = \"M13,7H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V14H11V15H13V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaJCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M13,7V15H11V14H9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13Z\";\nexport var mdiAlphaJCircleOutline = \"M13,7H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V14H11V15H13V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaK = \"M9,7V17H11V13.67L13,17H15L12,12L15,7H13L11,10.33V7H9Z\";\nexport var mdiAlphaKBox = \"M9,7V17H11V13.67L13,17H15L12,12L15,7H13L11,10.33V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaKBoxOutline = \"M9,7H11V10.33L13,7H15L12,12L15,17H13L11,13.67V17H9V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaKCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M9,7V17H11V13.67L13,17H15L12,12L15,7H13L11,10.33V7H9Z\";\nexport var mdiAlphaKCircleOutline = \"M9,7H11V10.33L13,7H15L12,12L15,17H13L11,13.67V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaL = \"M9,7V17H15V15H11V7H9Z\";\nexport var mdiAlphaLBox = \"M9,7V17H15V15H11V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaLBoxOutline = \"M9,7H11V15H15V17H9V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaLCircle = \"M9,7V17H15V15H11V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaLCircleOutline = \"M9,7H11V15H15V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaM = \"M9,7A2,2 0 0,0 7,9V17H9V9H11V16H13V9H15V17H17V9A2,2 0 0,0 15,7H9Z\";\nexport var mdiAlphaMBox = \"M9,7A2,2 0 0,0 7,9V17H9V9H11V16H13V9H15V17H17V9A2,2 0 0,0 15,7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaMBoxOutline = \"M9,7H15A2,2 0 0,1 17,9V17H15V9H13V16H11V9H9V17H7V9A2,2 0 0,1 9,7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaMCircle = \"M9,7A2,2 0 0,0 7,9V17H9V9H11V16H13V9H15V17H17V9A2,2 0 0,0 15,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaMCircleOutline = \"M9,7H15A2,2 0 0,1 17,9V17H15V9H13V16H11V9H9V17H7V9A2,2 0 0,1 9,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaN = \"M9,7V17H11V12L13,17H15V7H13V12L11,7H9Z\";\nexport var mdiAlphaNBox = \"M9,7V17H11V12L13,17H15V7H13V12L11,7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaNBoxOutline = \"M9,7H11L13,12V7H15V17H13L11,12V17H9V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaNCircle = \"M9,7V17H11V12L13,17H15V7H13V12L11,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaNCircleOutline = \"M9,7H11L13,12V7H15V17H13L11,12V17H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaO = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9Z\";\nexport var mdiAlphaOBox = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaOBoxOutline = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11Z\";\nexport var mdiAlphaOCircle = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaOCircleOutline = \"M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaP = \"M9,7V17H11V13H13A2,2 0 0,0 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9Z\";\nexport var mdiAlphaPBox = \"M9,7V17H11V13H13A2,2 0 0,0 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaPBoxOutline = \"M9,7H13A2,2 0 0,1 15,9V11A2,2 0 0,1 13,13H11V17H9V7M11,9V11H13V9H11M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaPCircle = \"M9,7V17H11V13H13A2,2 0 0,0 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaPCircleOutline = \"M9,7H13A2,2 0 0,1 15,9V11A2,2 0 0,1 13,13H11V17H9V7M11,9V11H13V9H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaQ = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17V19H13V17A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9Z\";\nexport var mdiAlphaQBox = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17V19H13V17A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M5,4H19A2,2 0 0,1 21,6V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V6A2,2 0 0,1 5,4Z\";\nexport var mdiAlphaQBoxOutline = \"M5,4H19A2,2 0 0,1 21,6V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V6A2,2 0 0,1 5,4M5,6V20H19V6H5M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17V19H11V17A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11Z\";\nexport var mdiAlphaQCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17V19H13V17A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9Z\";\nexport var mdiAlphaQCircleOutline = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17V19H11V17A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11Z\";\nexport var mdiAlphaR = \"M9,7V17H11V13H11.8L13,17H15L13.76,12.85C14.5,12.55 15,11.84 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9Z\";\nexport var mdiAlphaRBox = \"M9,7V17H11V13H11.8L13,17H15L13.76,12.85C14.5,12.55 15,11.84 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaRBoxOutline = \"M9,7H13A2,2 0 0,1 15,9V11C15,11.84 14.5,12.55 13.76,12.85L15,17H13L11.8,13H11V17H9V7M11,9V11H13V9H11M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaRCircle = \"M9,7V17H11V13H11.8L13,17H15L13.76,12.85C14.5,12.55 15,11.84 15,11V9A2,2 0 0,0 13,7H9M11,9H13V11H11V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaRCircleOutline = \"M9,7H13A2,2 0 0,1 15,9V11C15,11.84 14.5,12.55 13.76,12.85L15,17H13L11.8,13H11V17H9V7M11,9V11H13V9H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,16.41 7.58,20 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaS = \"M11,7A2,2 0 0,0 9,9V11A2,2 0 0,0 11,13H13V15H9V17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H11Z\";\nexport var mdiAlphaSBox = \"M11,7A2,2 0 0,0 9,9V11A2,2 0 0,0 11,13H13V15H9V17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H11M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaSBoxOutline = \"M11,7H15V9H11V11H13A2,2 0 0,1 15,13V15A2,2 0 0,1 13,17H9V15H13V13H11A2,2 0 0,1 9,11V9A2,2 0 0,1 11,7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaSCircle = \"M11,7A2,2 0 0,0 9,9V11A2,2 0 0,0 11,13H13V15H9V17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaSCircleOutline = \"M11,7H15V9H11V11H13A2,2 0 0,1 15,13V15A2,2 0 0,1 13,17H9V15H13V13H11A2,2 0 0,1 9,11V9A2,2 0 0,1 11,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaT = \"M9,7V9H11V17H13V9H15V7H9Z\";\nexport var mdiAlphaTBox = \"M9,7V9H11V17H13V9H15V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaTBoxOutline = \"M9,7H15V9H13V17H11V9H9V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaTCircle = \"M9,7V9H11V17H13V9H15V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaTCircleOutline = \"M9,7H15V9H13V17H11V9H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaU = \"M9,7V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13V15H11V7H9Z\";\nexport var mdiAlphaUBox = \"M9,7V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13V15H11V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaUBoxOutline = \"M9,7H11V15H13V7H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaUCircle = \"M9,7V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V7H13V15H11V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaUCircleOutline = \"M9,7H11V15H13V7H15V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaV = \"M9,7L11,17H13L15,7H13L12,12L11,7H9Z\";\nexport var mdiAlphaVBox = \"M9,7L11,17H13L15,7H13L12,12L11,7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaVBoxOutline = \"M9,7H11L12,12L13,7H15L13,17H11L9,7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaVCircle = \"M9,7L11,17H13L15,7H13L12,12L11,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaVCircleOutline = \"M9,7H11L12,12L13,7H15L13,17H11L9,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaW = \"M9,17A2,2 0 0,1 7,15V7H9V15H11V8H13V15H15V7H17V15A2,2 0 0,1 15,17H9Z\";\nexport var mdiAlphaWBox = \"M9,17H15A2,2 0 0,0 17,15V7H15V15H13V8H11V15H9V7H7V15A2,2 0 0,0 9,17M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaWBoxOutline = \"M9,17A2,2 0 0,1 7,15V7H9V15H11V8H13V15H15V7H17V15A2,2 0 0,1 15,17H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaWCircle = \"M9,17H15A2,2 0 0,0 17,15V7H15V15H13V8H11V15H9V7H7V15A2,2 0 0,0 9,17M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaWCircleOutline = \"M9,17A2,2 0 0,1 7,15V7H9V15H11V8H13V15H15V7H17V15A2,2 0 0,1 15,17H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaX = \"M9,7L11,12L9,17H11L12,14.5L13,17H15L13,12L15,7H13L12,9.5L11,7H9Z\";\nexport var mdiAlphaXBox = \"M9,7L11,12L9,17H11L12,14.5L13,17H15L13,12L15,7H13L12,9.5L11,7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaXBoxOutline = \"M9,7H11L12,9.5L13,7H15L13,12L15,17H13L12,14.5L11,17H9L11,12L9,7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaXCircle = \"M9,7L11,12L9,17H11L12,14.5L13,17H15L13,12L15,7H13L12,9.5L11,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaXCircleOutline = \"M9,7H11L12,9.5L13,7H15L13,12L15,17H13L12,14.5L11,17H9L11,12L9,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaY = \"M9,7L11,13V17H13V13L15,7H13L12,10L11,7H9Z\";\nexport var mdiAlphaYBox = \"M9,7L11,13V17H13V13L15,7H13L12,10L11,7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaYBoxOutline = \"M9,7H11L12,10L13,7H15L13,13V17H11V13L9,7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaYCircle = \"M9,7L11,13V17H13V13L15,7H13L12,10L11,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaYCircleOutline = \"M9,7H11L12,10L13,7H15L13,13V17H11V13L9,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphaZ = \"M9,7V9H13L9,15V17H15V15H11L15,9V7H9Z\";\nexport var mdiAlphaZBox = \"M9,7V9H13L9,15V17H15V15H11L15,9V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiAlphaZBoxOutline = \"M9,7H15V9L11,15H15V17H9V15L13,9H9V7M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiAlphaZCircle = \"M9,7V9H13L9,15V17H15V15H11L15,9V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiAlphaZCircleOutline = \"M9,7H15V9L11,15H15V17H9V15L13,9H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiAlphabetAurebesh = \"M3 4V11H14.23L22 4H19L13.46 9H5V4H3M3 13V20H5V15H13.46L19 20H22L14.23 13H3Z\";\nexport var mdiAlphabetCyrillic = \"M16 6C14.36 6 13 7.36 13 9V15C13 16.65 14.36 18 16 18H17C18.65 18 20 16.65 20 15V12C20 10.36 18.65 9 17 9H15C15 8.44 15.44 8 16 8H18C19.09 8 20 7.09 20 6M5 9V11H8C8.57 11 9 11.43 9 12H7C5.36 12 4 13.36 4 15C4 16.65 5.36 18 7 18H11V12C11 10.36 9.65 9 8 9M15 11H17C17.57 11 18 11.43 18 12V15C18 15.57 17.57 16 17 16H16C15.43 16 15 15.57 15 15M7 14H9V16H7C6.43 16 6 15.57 6 15C6 14.43 6.43 14 7 14Z\";\nexport var mdiAlphabetGreek = \"M16 6C14.36 6 13 7.36 13 9V21H15V9C15 8.43 15.43 8 16 8H17C17.57 8 18 8.43 18 9V10C18 10.57 17.57 11 17 11H16V13H17C17.57 13 18 13.43 18 14V15C18 15.57 17.57 16 17 16H16V18H17C18.65 18 20 16.65 20 15V14C20 13.18 19.59 12.46 19 12C19.59 11.54 20 10.82 20 10V9C20 7.36 18.65 6 17 6M7 9C5.36 9 4 10.36 4 12V15C4 16.65 5.36 18 7 18H7.7C8.2 18 8.65 17.81 9 17.5V18H11V9H9V9.5C8.65 9.19 8.2 9 7.7 9M7 11H8C8.57 11 9 11.43 9 12V15C9 15.57 8.57 16 8 16H7C6.43 16 6 15.57 6 15V12C6 11.43 6.43 11 7 11Z\";\nexport var mdiAlphabetLatin = \"M13 6V18H15V17.31C15.37 17.73 15.9 18 16.5 18H17C18.65 18 20 16.65 20 15V12C20 10.36 18.65 9 17 9H16.5C15.9 9 15.37 9.27 15 9.7V6M5 9V11H8C8.57 11 9 11.43 9 12H7C5.36 12 4 13.36 4 15C4 16.65 5.36 18 7 18H11V12C11 10.36 9.65 9 8 9M16 11H17C17.57 11 18 11.43 18 12V15C18 15.57 17.57 16 17 16H16C15.43 16 15 15.57 15 15V12C15 11.43 15.43 11 16 11M7 14H9V16H7C6.43 16 6 15.57 6 15C6 14.43 6.43 14 7 14Z\";\nexport var mdiAlphabetPiqad = \"M13.04 4L6.54 17.85C6.21 18.55 5.5 19 4.73 19H4V20H16C17.2 20 18.27 20.54 19 21.39H20C19.05 19.32 17 18 14.7 18H12C11.29 18 10.62 17.63 10.24 17.03C9.85 16.43 9.8 15.68 10.1 15.03L10.58 14H19V13H17.5C15.29 13 13.5 11.21 13.5 9C13.5 6.79 15.29 5 17.5 5H20V4Z\";\nexport var mdiAlphabetTengwar = \"M10 7L12.5 3H15L11 7H10M12.5 9C11.96 9 11.46 9.13 11 9.35V9H8V11H9V21H11V12.5C11 11.67 11.67 11 12.5 11C13.33 11 14 11.67 14 12.5V14.5C14 15.33 13.33 16 12.5 16H12V18H12.5C14.43 18 16 16.43 16 14.5V12.5C16 10.57 14.43 9 12.5 9Z\";\nexport var mdiAlphabetical = \"M6,11A2,2 0 0,1 8,13V17H4A2,2 0 0,1 2,15V13A2,2 0 0,1 4,11H6M4,13V15H6V13H4M20,13V15H22V17H20A2,2 0 0,1 18,15V13A2,2 0 0,1 20,11H22V13H20M12,7V11H14A2,2 0 0,1 16,13V15A2,2 0 0,1 14,17H12A2,2 0 0,1 10,15V7H12M12,15H14V13H12V15Z\";\nexport var mdiAlphabeticalOff = \"M22.11 21.46L16 15.31L14 13.31L13.65 13L10 9.34L2.39 1.73L1.11 3L10 11.89V15A2 2 0 0 0 12 17H14A1.92 1.92 0 0 0 14.89 16.78L20.84 22.73M12 15V13.89L13.11 15M16 12.78L14.22 11A2 2 0 0 1 16 12.78M20.2 17L18 14.8V13A2 2 0 0 1 20 11H22V13H20V15H22V17M6 11H4A2 2 0 0 0 2 13V15A2 2 0 0 0 4 17H8V13A2 2 0 0 0 6 11M6 15H4V13H6M12 8.8L10.2 7H12Z\";\nexport var mdiAlphabeticalVariant = \"M3 7A2 2 0 0 0 1 9V17H3V13H5V17H7V9A2 2 0 0 0 5 7H3M3 9H5V11H3M15 10.5V9A2 2 0 0 0 13 7H9V17H13A2 2 0 0 0 15 15V13.5A1.54 1.54 0 0 0 13.5 12A1.54 1.54 0 0 0 15 10.5M13 15H11V13H13V15M13 11H11V9H13M19 7A2 2 0 0 0 17 9V15A2 2 0 0 0 19 17H21A2 2 0 0 0 23 15V14H21V15H19V9H21V10H23V9A2 2 0 0 0 21 7Z\";\nexport var mdiAlphabeticalVariantOff = \"M12.2 9L10.2 7H13A2 2 0 0 1 15 9V10.5A1.47 1.47 0 0 1 14.64 11.44L13 9.8V9M23 10V9A2 2 0 0 0 21 7H19A2 2 0 0 0 17 9V13.8L20.2 17H21A2 2 0 0 0 23 15V14H21V15H19V9H21V10M15 14.35L22.11 21.46L20.84 22.73L14.46 16.35A2 2 0 0 1 13 17H9V10.89L7 8.89V17H5V13H3V17H1V9A2 2 0 0 1 3 7H5.12L1.12 3L2.39 1.73L9 8.34L11 10.34L11.66 11L15 14.34M5 9H3V11H5M13 14.89L11.11 13H11V15H13Z\";\nexport var mdiAltimeter = \"M7,3V5H17V3H7M9,7V9H15V7H9M2,7.96V16.04L6.03,12L2,7.96M22.03,7.96L18,12L22.03,16.04V7.96M7,11V13H17V11H7M9,15V17H15V15H9M7,19V21H17V19H7Z\";\nexport var mdiAmbulance = \"M18,18.5A1.5,1.5 0 0,0 19.5,17A1.5,1.5 0 0,0 18,15.5A1.5,1.5 0 0,0 16.5,17A1.5,1.5 0 0,0 18,18.5M19.5,9.5H17V12H21.46L19.5,9.5M6,18.5A1.5,1.5 0 0,0 7.5,17A1.5,1.5 0 0,0 6,15.5A1.5,1.5 0 0,0 4.5,17A1.5,1.5 0 0,0 6,18.5M20,8L23,12V17H21A3,3 0 0,1 18,20A3,3 0 0,1 15,17H9A3,3 0 0,1 6,20A3,3 0 0,1 3,17H1V6C1,4.89 1.89,4 3,4H17V8H20M8,6V9H5V11H8V14H10V11H13V9H10V6H8Z\";\nexport var mdiAmmunition = \"M14,22H10V21H14V22M13,10V7H11V10L10,11.5V20H14V11.5L13,10M12,2C12,2 11,3 11,5V6H13V5C13,5 13,3 12,2M8,22H4V21H8V22M7,10V7H5V10L4,11.5V20H8V11.5L7,10M6,2C6,2 5,3 5,5V6H7V5C7,5 7,3 6,2M20,22H16V21H20V22M19,10V7H17V10L16,11.5V20H20V11.5L19,10M18,2C18,2 17,3 17,5V6H19V5C19,5 19,3 18,2Z\";\nexport var mdiAmpersand = \"M4.4,16.5C4.4,15.6 4.7,14.7 5.2,13.9C5.7,13.1 6.7,12.2 8.2,11.2C7.3,10.1 6.8,9.3 6.5,8.7C6.1,8 6,7.4 6,6.7C6,5.2 6.4,4.1 7.3,3.2C8.2,2.3 9.4,2 10.9,2C12.2,2 13.3,2.4 14.2,3.2C15.1,4 15.5,5 15.5,6.1C15.5,6.9 15.3,7.6 14.9,8.3C14.5,9 13.8,9.7 12.8,10.4L11.4,11.5L15.7,16.7C16.3,15.5 16.6,14.3 16.6,12.8H18.8C18.8,15.1 18.3,17 17.2,18.5L20,21.8H17L15.7,20.3C15,20.9 14.3,21.3 13.4,21.6C12.5,21.9 11.6,22.1 10.7,22.1C8.8,22.1 7.3,21.6 6.1,20.6C5,19.5 4.4,18.2 4.4,16.5M10.7,20C12,20 13.2,19.5 14.3,18.5L9.6,12.8L9.2,13.1C7.7,14.2 7,15.3 7,16.5C7,17.6 7.3,18.4 8,19C8.7,19.6 9.5,20 10.7,20M8.5,6.7C8.5,7.6 9,8.6 10.1,9.9L11.7,8.8C12.3,8.4 12.7,8 12.9,7.6C13.1,7.2 13.2,6.7 13.2,6.2C13.2,5.6 13,5.1 12.5,4.7C12.1,4.3 11.5,4.1 10.8,4.1C10.1,4.1 9.5,4.3 9.1,4.8C8.7,5.3 8.5,5.9 8.5,6.7Z\";\nexport var mdiAmplifier = \"M10,2H14A1,1 0 0,1 15,3H21V21H19A1,1 0 0,1 18,22A1,1 0 0,1 17,21H7A1,1 0 0,1 6,22A1,1 0 0,1 5,21H3V3H9A1,1 0 0,1 10,2M5,5V9H19V5H5M7,6A1,1 0 0,1 8,7A1,1 0 0,1 7,8A1,1 0 0,1 6,7A1,1 0 0,1 7,6M12,6H14V7H12V6M15,6H16V8H15V6M17,6H18V8H17V6M12,11A4,4 0 0,0 8,15A4,4 0 0,0 12,19A4,4 0 0,0 16,15A4,4 0 0,0 12,11M10,6A1,1 0 0,1 11,7A1,1 0 0,1 10,8A1,1 0 0,1 9,7A1,1 0 0,1 10,6Z\";\nexport var mdiAmplifierOff = \"M22.1 21.5L2.4 1.7L1.1 3L3 4.9V21H5C5 21.6 5.4 22 6 22S7 21.6 7 21H17C17 21.6 17.4 22 18 22S19 21.6 19 21H19.1L20.8 22.7L22.1 21.5M5 9V6.9L7.1 9H5M12 19C9.8 19 8 17.2 8 15C8 13.6 8.7 12.4 9.8 11.7L15.3 17.2C14.6 18.3 13.4 19 12 19M14 6V7H12V6H14M10 6C10.6 6 11 6.4 11 7C11 7.2 10.9 7.4 10.8 7.6L9.4 6.2C9.6 6.1 9.8 6 10 6M8.2 5L6.2 3H9C9 2.4 9.4 2 10 2H14C14.6 2 15 2.4 15 3H21V17.8L12.2 9H19V5H8.2M16 6V8H15V6H16M18 6V8H17V6H18Z\";\nexport var mdiAnchor = \"M12 2A3 3 0 0 0 9 5A3 3 0 0 0 11 7.83V9H8V11H11V19.92C10.26 19.79 9.5 19.58 8.79 19.27C8.05 18.95 7.4 18.56 6.82 18.09C6.24 17.62 5.78 17.11 5.44 16.55L7 15L3 12V15C3 15.97 3.27 16.88 3.82 17.72C4.37 18.56 5.09 19.31 6 19.95C6.87 20.59 7.84 21.09 8.88 21.45C9.93 21.81 10.97 22 12 22C13.03 22 14.07 21.8 15.12 21.44C16.16 21.08 17.13 20.58 18 19.95C18.92 19.31 19.63 18.57 20.18 17.72C20.73 16.88 21 15.97 21 15V12L17 15L18.56 16.55C18.22 17.11 17.76 17.62 17.18 18.09C16.6 18.56 15.95 18.95 15.21 19.27C14.5 19.58 13.74 19.79 13 19.92V11H16V9H13V7.82A3 3 0 0 0 15 5A3 3 0 0 0 12 2M12 4A1 1 0 0 1 13 5A1 1 0 0 1 12 6A1 1 0 0 1 11 5A1 1 0 0 1 12 4Z\";\nexport var mdiAndroid = \"M16.61 15.15C16.15 15.15 15.77 14.78 15.77 14.32S16.15 13.5 16.61 13.5H16.61C17.07 13.5 17.45 13.86 17.45 14.32C17.45 14.78 17.07 15.15 16.61 15.15M7.41 15.15C6.95 15.15 6.57 14.78 6.57 14.32C6.57 13.86 6.95 13.5 7.41 13.5H7.41C7.87 13.5 8.24 13.86 8.24 14.32C8.24 14.78 7.87 15.15 7.41 15.15M16.91 10.14L18.58 7.26C18.67 7.09 18.61 6.88 18.45 6.79C18.28 6.69 18.07 6.75 18 6.92L16.29 9.83C14.95 9.22 13.5 8.9 12 8.91C10.47 8.91 9 9.24 7.73 9.82L6.04 6.91C5.95 6.74 5.74 6.68 5.57 6.78C5.4 6.87 5.35 7.08 5.44 7.25L7.1 10.13C4.25 11.69 2.29 14.58 2 18H22C21.72 14.59 19.77 11.7 16.91 10.14H16.91Z\";\nexport var mdiAndroidStudio = \"M11,2H13V4H13.5A1.5,1.5 0 0,1 15,5.5V9L14.56,9.44L16.2,12.28C17.31,11.19 18,9.68 18,8H20C20,10.42 18.93,12.59 17.23,14.06L20.37,19.5L20.5,21.72L18.63,20.5L15.56,15.17C14.5,15.7 13.28,16 12,16C10.72,16 9.5,15.7 8.44,15.17L5.37,20.5L3.5,21.72L3.63,19.5L9.44,9.44L9,9V5.5A1.5,1.5 0 0,1 10.5,4H11V2M9.44,13.43C10.22,13.8 11.09,14 12,14C12.91,14 13.78,13.8 14.56,13.43L13.1,10.9H13.09C12.47,11.5 11.53,11.5 10.91,10.9H10.9L9.44,13.43M12,6A1,1 0 0,0 11,7A1,1 0 0,0 12,8A1,1 0 0,0 13,7A1,1 0 0,0 12,6Z\";\nexport var mdiAngleAcute = \"M20,19H4.09L14.18,4.43L15.82,5.57L11.28,12.13C12.89,12.96 14,14.62 14,16.54C14,16.7 14,16.85 13.97,17H20V19M7.91,17H11.96C12,16.85 12,16.7 12,16.54C12,15.28 11.24,14.22 10.14,13.78L7.91,17Z\";\nexport var mdiAngleObtuse = \"M21,19H9.31L4.07,5.36L5.93,4.64L8.96,12.5C9.5,12.29 10.09,12.17 10.71,12.17V12.17C13.38,12.17 15.56,14.34 15.58,17H21V19M10.69,17H13.58C13.56,15.42 12.3,14.17 10.71,14.17C10.34,14.17 10,14.24 9.67,14.36L10.69,17Z\";\nexport var mdiAngleRight = \"M5,4H7V11H13V17H20V19H5V4M7,17H11V13H7V17Z\";\nexport var mdiAngular = \"M12,2.5L20.84,5.65L19.5,17.35L12,21.5L4.5,17.35L3.16,5.65L12,2.5M12,4.6L6.47,17H8.53L9.64,14.22H14.34L15.45,17H17.5L12,4.6M13.62,12.5H10.39L12,8.63L13.62,12.5Z\";\nexport var mdiAngularjs = \"M12,2.5L20.84,5.65L19.5,17.35L12,21.5L4.5,17.35L3.16,5.65L12,2.5M12,4.5L5,7L6.08,16.22L12,19.5L17.92,16.22L19,7L12,4.5M12,5.72L16.58,16H14.87L13.94,13.72H10.04L9.12,16H7.41L12,5.72M13.34,12.3L12,9.07L10.66,12.3H13.34Z\";\nexport var mdiAnimation = \"M4,2C2.89,2 2,2.89 2,4V14H4V4H14V2H4M8,6C6.89,6 6,6.89 6,8V18H8V8H18V6H8M12,10C10.89,10 10,10.89 10,12V20C10,21.11 10.89,22 12,22H20C21.11,22 22,21.11 22,20V12C22,10.89 21.11,10 20,10H12Z\";\nexport var mdiAnimationOutline = \"M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10Z\";\nexport var mdiAnimationPlay = \"M4,2H14V4H4V14H2V4C2,2.89 2.89,2 4,2M8,6H18V8H8V18H6V8C6,6.89 6.89,6 8,6M12,10H20C21.11,10 22,10.89 22,12V20C22,21.11 21.11,22 20,22H12C10.89,22 10,21.11 10,20V12C10,10.89 10.89,10 12,10M14,12V20L20,16L14,12Z\";\nexport var mdiAnimationPlayOutline = \"M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M14,13V19L18,16L14,13Z\";\nexport var mdiAnsible = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M16.1 17C15.91 17 15.76 16.9 15.55 16.73L10.39 12.56L8.66 16.9H7.17L11.54 6.39C11.65 6.11 11.89 5.97 12.17 5.97C12.45 5.97 12.67 6.11 12.79 6.39L16.77 15.97C16.81 16.08 16.84 16.19 16.84 16.26C16.83 16.68 16.5 17 16.1 17M12.17 8.11L14.76 14.5L10.85 11.42L12.17 8.11Z\";\nexport var mdiAntenna = \"M12 7.5C12.69 7.5 13.27 7.73 13.76 8.2S14.5 9.27 14.5 10C14.5 11.05 14 11.81 13 12.28V21H11V12.28C10 11.81 9.5 11.05 9.5 10C9.5 9.27 9.76 8.67 10.24 8.2S11.31 7.5 12 7.5M16.69 5.3C17.94 6.55 18.61 8.11 18.7 10C18.7 11.8 18.03 13.38 16.69 14.72L15.5 13.5C16.5 12.59 17 11.42 17 10C17 8.67 16.5 7.5 15.5 6.5L16.69 5.3M6.09 4.08C4.5 5.67 3.7 7.64 3.7 10S4.5 14.3 6.09 15.89L4.92 17.11C3 15.08 2 12.7 2 10C2 7.3 3 4.94 4.92 2.91L6.09 4.08M19.08 2.91C21 4.94 22 7.3 22 10C22 12.8 21 15.17 19.08 17.11L17.91 15.89C19.5 14.3 20.3 12.33 20.3 10S19.5 5.67 17.91 4.08L19.08 2.91M7.31 5.3L8.5 6.5C7.5 7.42 7 8.58 7 10C7 11.33 7.5 12.5 8.5 13.5L7.31 14.72C5.97 13.38 5.3 11.8 5.3 10C5.3 8.2 5.97 6.64 7.31 5.3Z\";\nexport var mdiAnvil = \"M9,5V10C13.03,12.47 8.44,14.97 6,16V19H21V16C14.59,13.27 17.47,9 22,8V5H9M2,6C2.81,8.13 4.42,9.5 7,10V6H2Z\";\nexport var mdiApacheKafka = \"M15.54 12.97C14.86 12.97 14.24 13.22 13.76 13.64L12.47 12.89C12.56 12.6 12.6 12.29 12.6 11.97C12.6 11.65 12.56 11.34 12.5 11.05L13.73 10.32C14.21 10.76 14.85 11 15.54 11C17.03 11 18.24 9.81 18.24 8.32S17.03 5.63 15.54 5.63 12.84 6.84 12.84 8.33C12.84 8.5 12.86 8.7 12.89 8.88L11.64 9.6C11.21 9.15 10.64 8.82 10 8.65V7.26C11.09 6.91 11.88 5.89 11.88 4.69C11.88 3.2 10.67 2 9.18 2C7.69 2 6.5 3.2 6.5 4.69C6.5 5.89 7.26 6.9 8.34 7.26V8.66C6.86 9.04 5.76 10.37 5.76 11.97C5.76 13.57 6.86 14.91 8.34 15.28V16.73C7.26 17.09 6.5 18.1 6.5 19.3C6.5 20.79 7.69 22 9.18 22C10.67 22 11.88 20.79 11.88 19.3C11.88 18.1 11.09 17.08 10 16.73V15.29C10.64 15.13 11.2 14.8 11.64 14.35L12.9 15.08C12.86 15.27 12.84 15.46 12.84 15.66C12.84 17.15 14.05 18.36 15.54 18.36S18.24 17.15 18.24 15.66 17.03 12.97 15.54 12.97M15.54 7C16.28 7 16.87 7.59 16.87 8.32S16.28 9.66 15.54 9.66 14.21 9.06 14.21 8.32 14.8 7 15.54 7M7.85 4.69C7.85 3.95 8.44 3.35 9.18 3.35C9.92 3.35 10.5 3.95 10.5 4.69S9.92 6.03 9.18 6.03C8.44 6.03 7.85 5.43 7.85 4.69M10.5 19.3C10.5 20.04 9.92 20.64 9.18 20.64C8.44 20.64 7.85 20.04 7.85 19.3C7.85 18.56 8.44 17.96 9.18 17.96C9.92 17.96 10.5 18.56 10.5 19.3M9.18 13.89C8.12 13.89 7.26 13.03 7.26 11.97C7.26 10.91 8.12 10.05 9.18 10.05S11.1 10.91 11.1 11.97C11.1 13.03 10.24 13.89 9.18 13.89M15.54 17C14.8 17 14.21 16.4 14.21 15.66S14.8 14.33 15.54 14.33 16.87 14.93 16.87 15.66 16.28 17 15.54 17Z\";\nexport var mdiApi = \"M7 7H5A2 2 0 0 0 3 9V17H5V13H7V17H9V9A2 2 0 0 0 7 7M7 11H5V9H7M14 7H10V17H12V13H14A2 2 0 0 0 16 11V9A2 2 0 0 0 14 7M14 11H12V9H14M20 9V15H21V17H17V15H18V9H17V7H21V9Z\";\nexport var mdiApiOff = \"M7 11H5V9H7M14 7H11.38L13.29 9H14V9.75L15.87 11.71C15.95 11.5 16 11.25 16 11V9C16 7.9 15.11 7 14 7M4.45 2.62L3 4L5.86 7H5C3.9 7 3 7.9 3 9V17H5V13H7V17H9V10.3L10 11.34V17H12V13.45L19.55 21.38L21 20M20.9 17H21V15H20V9H21V7H17V9H18V13.95Z\";\nexport var mdiApple = \"M18.71,19.5C17.88,20.74 17,21.95 15.66,21.97C14.32,22 13.89,21.18 12.37,21.18C10.84,21.18 10.37,21.95 9.1,22C7.79,22.05 6.8,20.68 5.96,19.47C4.25,17 2.94,12.45 4.7,9.39C5.57,7.87 7.13,6.91 8.82,6.88C10.1,6.86 11.32,7.75 12.11,7.75C12.89,7.75 14.37,6.68 15.92,6.84C16.57,6.87 18.39,7.1 19.56,8.82C19.47,8.88 17.39,10.1 17.41,12.63C17.44,15.65 20.06,16.66 20.09,16.67C20.06,16.74 19.67,18.11 18.71,19.5M13,3.5C13.73,2.67 14.94,2.04 15.94,2C16.07,3.17 15.6,4.35 14.9,5.19C14.21,6.04 13.07,6.7 11.95,6.61C11.8,5.46 12.36,4.26 13,3.5Z\";\nexport var mdiAppleFinder = \"M8 11C7.45 11 7 10.55 7 10V8C7 7.45 7.45 7 8 7C8.55 7 9 7.45 9 8V10C9 10.55 8.55 11 8 11M17 10V8C17 7.45 16.55 7 16 7C15.45 7 15 7.45 15 8V10C15 10.55 15.45 11 16 11C16.55 11 17 10.55 17 10M22 5V20C22 21.1 21.1 22 20 22H4C2.9 22 2 21.1 2 20V5C2 3.9 2.9 3 4 3H20C21.1 3 22 3.9 22 5M4 20L13.06 20C12.96 19.35 12.89 18.64 12.83 17.94C12.56 17.96 12.3 18 12 18C8.24 18 6.31 15.73 6.23 15.63C5.88 15.21 5.94 14.58 6.36 14.22C6.78 13.87 7.41 13.93 7.77 14.35C7.83 14.43 9.23 16 12 16C12.27 16 12.5 15.97 12.74 15.95C12.71 14.75 12.73 13.74 12.74 13.26H10.93C10.28 13.26 9.75 12.7 9.75 12C9.77 11.75 10.07 7.82 11 5H4L4 20M20 20L20 5H12.6C11.74 7.19 11.37 10.73 11.27 11.76H13.08C13.72 11.76 14.25 12.32 14.25 13C14.25 13.04 14.21 14.15 14.24 15.6C15.54 15.11 16.22 14.35 16.23 14.34C16.58 13.92 17.21 13.85 17.63 14.2C18.06 14.55 18.12 15.18 17.77 15.61C17.71 15.68 16.55 17.05 14.32 17.68C14.38 18.5 14.46 19.29 14.58 20H20Z\";\nexport var mdiAppleIcloud = \"M22,15.04C22,17.23 20.24,19 18.07,19H5.93C3.76,19 2,17.23 2,15.04C2,13.07 3.43,11.44 5.31,11.14C5.28,11 5.27,10.86 5.27,10.71C5.27,9.33 6.38,8.2 7.76,8.2C8.37,8.2 8.94,8.43 9.37,8.8C10.14,7.05 11.13,5.44 13.91,5.44C17.28,5.44 18.87,8.06 18.87,10.83C18.87,10.94 18.87,11.06 18.86,11.17C20.65,11.54 22,13.13 22,15.04Z\";\nexport var mdiAppleIos = \"M2.09 16.8H3.75V9.76H2.09M2.92 8.84C3.44 8.84 3.84 8.44 3.84 7.94C3.84 7.44 3.44 7.04 2.92 7.04C2.4 7.04 2 7.44 2 7.94C2 8.44 2.4 8.84 2.92 8.84M9.25 7.06C6.46 7.06 4.7 8.96 4.7 12C4.7 15.06 6.46 16.96 9.25 16.96C12.04 16.96 13.8 15.06 13.8 12C13.8 8.96 12.04 7.06 9.25 7.06M9.25 8.5C10.96 8.5 12.05 9.87 12.05 12C12.05 14.15 10.96 15.5 9.25 15.5C7.54 15.5 6.46 14.15 6.46 12C6.46 9.87 7.54 8.5 9.25 8.5M14.5 14.11C14.57 15.87 16 16.96 18.22 16.96C20.54 16.96 22 15.82 22 14C22 12.57 21.18 11.77 19.23 11.32L18.13 11.07C16.95 10.79 16.47 10.42 16.47 9.78C16.47 9 17.2 8.45 18.28 8.45C19.38 8.45 20.13 9 20.21 9.89H21.84C21.8 8.2 20.41 7.06 18.29 7.06C16.21 7.06 14.73 8.21 14.73 9.91C14.73 11.28 15.56 12.13 17.33 12.53L18.57 12.82C19.78 13.11 20.27 13.5 20.27 14.2C20.27 15 19.47 15.57 18.31 15.57C17.15 15.57 16.26 15 16.16 14.11H14.5Z\";\nexport var mdiAppleKeyboardCaps = \"M15,14V8H17.17L12,2.83L6.83,8H9V14H15M12,0L22,10H17V16H7V10H2L12,0M7,18H17V24H7V18M15,20H9V22H15V20Z\";\nexport var mdiAppleKeyboardCommand = \"M6,2A4,4 0 0,1 10,6V8H14V6A4,4 0 0,1 18,2A4,4 0 0,1 22,6A4,4 0 0,1 18,10H16V14H18A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18V16H10V18A4,4 0 0,1 6,22A4,4 0 0,1 2,18A4,4 0 0,1 6,14H8V10H6A4,4 0 0,1 2,6A4,4 0 0,1 6,2M16,18A2,2 0 0,0 18,20A2,2 0 0,0 20,18A2,2 0 0,0 18,16H16V18M14,10H10V14H14V10M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18V16H6M8,6A2,2 0 0,0 6,4A2,2 0 0,0 4,6A2,2 0 0,0 6,8H8V6M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6V8H18Z\";\nexport var mdiAppleKeyboardControl = \"M19.78,11.78L18.36,13.19L12,6.83L5.64,13.19L4.22,11.78L12,4L19.78,11.78Z\";\nexport var mdiAppleKeyboardOption = \"M3,4H9.11L16.15,18H21V20H14.88L7.84,6H3V4M14,4H21V6H14V4Z\";\nexport var mdiAppleKeyboardShift = \"M15,18V12H17.17L12,6.83L6.83,12H9V18H15M12,4L22,14H17V20H7V14H2L12,4Z\";\nexport var mdiAppleSafari = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.09 4.8,16 6.11,17.41L9.88,9.88L17.41,6.11C16,4.8 14.09,4 12,4M12,20A8,8 0 0,0 20,12C20,9.91 19.2,8 17.89,6.59L14.12,14.12L6.59,17.89C8,19.2 9.91,20 12,20M12,12L11.23,11.23L9.7,14.3L12.77,12.77L12,12M12,17.5H13V19H12V17.5M15.88,15.89L16.59,15.18L17.65,16.24L16.94,16.95L15.88,15.89M17.5,12V11H19V12H17.5M12,6.5H11V5H12V6.5M8.12,8.11L7.41,8.82L6.35,7.76L7.06,7.05L8.12,8.11M6.5,12V13H5V12H6.5Z\";\nexport var mdiApplication = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 7H3V4H21V7Z\";\nexport var mdiApplicationArray = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M10 11H8V18H10V20H6V9H10V11M18 20H14V18H16V11H14V9H18V20M21 7H3V4H21V7Z\";\nexport var mdiApplicationArrayOutline = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20M6 8V18H10V16H8V10H10V8H6M16 16H14V18H18V8H14V10H16V16\";\nexport var mdiApplicationBraces = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M11 11H9V12.5C9 13.6 8.1 14.5 7 14.5C8.1 14.5 9 15.4 9 16.5V18H11V20H9C7.9 20 7 19.1 7 18V17.5C7 16.4 6.1 15.5 5 15.5V13.5C6.1 13.5 7 12.6 7 11.5V11C7 9.9 7.9 9 9 9H11V11M19 15.5C17.9 15.5 17 16.4 17 17.5V18C17 19.1 16.1 20 15 20H13V18H15V16.5C15 15.4 15.9 14.5 17 14.5C15.9 14.5 15 13.6 15 12.5V11H13V9H15C16.1 9 17 9.9 17 11V11.5C17 12.6 17.9 13.5 19 13.5V15.5M21 7H3V4H21V7Z\";\nexport var mdiApplicationBracesOutline = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20M9 8C7.9 8 7 8.9 7 10C7 11.1 6.1 12 5 12V14C6.1 14 7 14.9 7 16C7 17.1 7.9 18 9 18H11V16H9V15C9 13.9 8.1 13 7 13C8.1 13 9 12.1 9 11V10H11V8M15 8C16.1 8 17 8.9 17 10C17 11.1 17.9 12 19 12V14C17.9 14 17 14.9 17 16C17 17.1 16.1 18 15 18H13V16H15V15C15 13.9 15.9 13 17 13C15.9 13 15 12.1 15 11V10H13V8H15Z\";\nexport var mdiApplicationBrackets = \"M21,2H3A2,2 0 0,0 1,4V20A2,2 0 0,0 3,22H21A2,2 0 0,0 23,20V4A2,2 0 0,0 21,2M11,17.5L9.5,19L5,14.5L9.5,10L11,11.5L8,14.5L11,17.5M14.5,19L13,17.5L16,14.5L13,11.5L14.5,10L19,14.5L14.5,19M21,7H3V4H21V7Z\";\nexport var mdiApplicationBracketsOutline = \"M9.5,8.5L11,10L8,13L11,16L9.5,17.5L5,13L9.5,8.5M14.5,17.5L13,16L16,13L13,10L14.5,8.5L19,13L14.5,17.5M21,2H3A2,2 0 0,0 1,4V20A2,2 0 0,0 3,22H21A2,2 0 0,0 23,20V4A2,2 0 0,0 21,2M21,20H3V6H21V20Z\";\nexport var mdiApplicationCog = \"M21.7 18.6V17.6L22.8 16.8C22.9 16.7 23 16.6 22.9 16.5L21.9 14.8C21.9 14.7 21.7 14.7 21.6 14.7L20.4 15.2C20.1 15 19.8 14.8 19.5 14.7L19.3 13.4C19.3 13.3 19.2 13.2 19.1 13.2H17.1C16.9 13.2 16.8 13.3 16.8 13.4L16.6 14.7C16.3 14.9 16.1 15 15.8 15.2L14.6 14.7C14.5 14.7 14.4 14.7 14.3 14.8L13.3 16.5C13.3 16.6 13.3 16.7 13.4 16.8L14.5 17.6V18.6L13.4 19.4C13.3 19.5 13.2 19.6 13.3 19.7L14.3 21.4C14.4 21.5 14.5 21.5 14.6 21.5L15.8 21C16 21.2 16.3 21.4 16.6 21.5L16.8 22.8C16.9 22.9 17 23 17.1 23H19.1C19.2 23 19.3 22.9 19.3 22.8L19.5 21.5C19.8 21.3 20 21.2 20.3 21L21.5 21.4C21.6 21.4 21.7 21.4 21.8 21.3L22.8 19.6C22.9 19.5 22.9 19.4 22.8 19.4L21.7 18.6M18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5 19.5 17.2 19.5 18 18.8 19.5 18 19.5M11 18C11 14.1 14.1 11 18 11C20 11 21.7 11.8 23 13.1V4C23 2.9 22.1 2 21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H12.3C11.5 20.9 11 19.5 11 18M3 4H21V7H3V4Z\";\nexport var mdiApplicationCogOutline = \"M21.7 18.6V17.6L22.8 16.8C22.9 16.7 23 16.6 22.9 16.5L21.9 14.8C21.9 14.7 21.7 14.7 21.6 14.7L20.4 15.2C20.1 15 19.8 14.8 19.5 14.7L19.3 13.4C19.3 13.3 19.2 13.2 19.1 13.2H17.1C16.9 13.2 16.8 13.3 16.8 13.4L16.6 14.7C16.3 14.9 16.1 15 15.8 15.2L14.6 14.7C14.5 14.7 14.4 14.7 14.3 14.8L13.3 16.5C13.3 16.6 13.3 16.7 13.4 16.8L14.5 17.6V18.6L13.4 19.4C13.3 19.5 13.2 19.6 13.3 19.7L14.3 21.4C14.4 21.5 14.5 21.5 14.6 21.5L15.8 21C16 21.2 16.3 21.4 16.6 21.5L16.8 22.8C16.9 22.9 17 23 17.1 23H19.1C19.2 23 19.3 22.9 19.3 22.8L19.5 21.5C19.8 21.3 20 21.2 20.3 21L21.5 21.4C21.6 21.4 21.7 21.4 21.8 21.3L22.8 19.6C22.9 19.5 22.9 19.4 22.8 19.4L21.7 18.6M18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5 19.5 17.2 19.5 18 18.8 19.5 18 19.5M12.3 22H3C1.9 22 1 21.1 1 20V4C1 2.9 1.9 2 3 2H21C22.1 2 23 2.9 23 4V13.1C22.4 12.5 21.7 12 21 11.7V6H3V20H11.3C11.5 20.7 11.8 21.4 12.3 22Z\";\nexport var mdiApplicationEdit = \"M11 20.1L19.2 11.9C19.7 11.4 20.3 11.1 21 11.1C21.7 11.1 22.3 11.4 22.8 11.9L23 12.1V4C23 2.9 22.1 2 21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H11V20.1M3 4H21V7H3V4M21 13.1C20.9 13.1 20.7 13.2 20.6 13.3L19.6 14.3L21.7 16.4L22.7 15.4C22.9 15.2 22.9 14.8 22.7 14.6L21.4 13.3C21.3 13.2 21.2 13.1 21 13.1M19.1 14.9L13 20.9V23H15.1L21.2 16.9L19.1 14.9Z\";\nexport var mdiApplicationEditOutline = \"M11 20V22H3C1.9 22 1 21.1 1 20V4C1 2.9 1.9 2 3 2H21C22.1 2 23 2.9 23 4V12.1L22.8 11.9C22.3 11.4 21.7 11.1 21 11.1V6H3V20H11M21.4 13.3L22.7 14.6C22.9 14.8 22.9 15.2 22.7 15.4L21.7 16.4L19.6 14.3L20.6 13.3C20.7 13.2 20.8 13.1 21 13.1C21.2 13.1 21.3 13.2 21.4 13.3M21.1 16.9L15.1 23H13V20.9L19.1 14.8L21.1 16.9Z\";\nexport var mdiApplicationExport = \"M9 12H18.8L16.3 9.5L17.7 8.1L22.6 13L17.7 17.9L16.3 16.5L18.8 14H9V12M21 17.4V20H3V6H21V8.6L23 10.6V4C23 2.9 22.1 2 21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V15.4L21 17.4Z\";\nexport var mdiApplicationImport = \"M1 12H10.8L8.3 9.5L9.7 8.1L14.6 13L9.7 17.9L8.3 16.5L10.8 14H1V12M21 2H3C1.9 2 1 2.9 1 4V10.1H3V6H21V20H3V16H1V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2\";\nexport var mdiApplicationOutline = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20Z\";\nexport var mdiApplicationParentheses = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M10 19.4L8.4 20C6.9 18.6 6 16.6 6 14.5S6.9 10.4 8.4 9L10 9.6C8.7 10.7 8 12.6 8 14.5S8.7 18.2 10 19.4M15.6 20L14 19.4C15.3 18.2 16 16.4 16 14.5S15.3 10.8 14 9.6L15.6 9C17.1 10.4 18 12.4 18 14.5C18 16.6 17.1 18.6 15.6 20M21 7H3V4H21V7Z\";\nexport var mdiApplicationParenthesesOutline = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20M15.6 8C17.1 9.3 18 11.1 18 13C18 14.9 17.1 16.7 15.6 18L14 17.4C15.3 16.4 16 14.7 16 13S15.3 9.6 14 8.6L15.6 8M8.4 8L10 8.6C8.7 9.6 8 11.3 8 13S8.7 16.4 10 17.4L8.4 18C6.9 16.7 6 14.9 6 13S6.9 9.3 8.4 8Z\";\nexport var mdiApplicationSettings = \"M21 0H3C1.9 0 1 .9 1 2V18C1 19.1 1.9 20 3 20H21C22.1 20 23 19.1 23 18V2C23 .9 22.1 0 21 0M21 5H3V2H21V5M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22\";\nexport var mdiApplicationSettingsOutline = \"M21 0H3C1.9 0 1 .9 1 2V18C1 19.1 1.9 20 3 20H21C22.1 20 23 19.1 23 18V2C23 .9 22.1 0 21 0M21 18H3V4H21V18M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22\";\nexport var mdiApplicationVariable = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M7.4 20C5.9 18.6 5 16.6 5 14.5S5.9 10.4 7.4 9L9 9.6C7.7 10.7 7 12.6 7 14.5S7.7 18.2 9 19.4L7.4 20M12.7 18L11.9 16L10.5 18H9L11.3 14.9L10 12H11.3L12.1 14L13.5 12H15L12.8 15L14.1 18H12.7M16.6 20L15 19.4C16.3 18.2 17 16.4 17 14.5S16.3 10.8 15 9.6L16.6 9C18.1 10.4 19 12.4 19 14.5C19 16.6 18.1 18.6 16.6 20M21 7H3V4H21V7Z\";\nexport var mdiApplicationVariableOutline = \"M21 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H21C22.1 22 23 21.1 23 20V4C23 2.9 22.1 2 21 2M21 20H3V6H21V20M16.6 8C18.1 9.3 19 11.1 19 13C19 14.9 18.1 16.7 16.6 18L15 17.4C16.3 16.4 17 14.7 17 13S16.3 9.6 15 8.6L16.6 8M7.4 8L9 8.6C7.7 9.6 7 11.3 7 13S7.7 16.4 9 17.4L7.4 18C5.9 16.7 5 14.9 5 13S5.9 9.3 7.4 8M12.1 12L13.5 10H15L12.8 13L14.1 16H12.8L12 14L10.6 16H9L11.3 12.9L10 10H11.3L12.1 12Z\";\nexport var mdiApproximatelyEqual = \"M18.9 9.2C18.1 10.1 16.6 11 15 11C13.5 11 12.6 10.5 11.8 10.1C11 9.8 10.2 9.3 8.9 9.3C7.7 9.3 6.6 10 6 10.6L5 9.1C5.9 8.2 7.3 7.2 8.9 7.2C10.4 7.2 11.3 7.8 12.1 8.1C12.9 8.4 13.7 9 15 9C16.2 9 17.3 8.2 17.9 7.6L18.9 9.2M19 14.1C18.1 15 16.7 16 15.1 16C13.6 16 12.7 15.5 11.9 15.1C11.1 14.8 10.3 14.2 9 14.2C7.8 14.2 6.7 15 6.1 15.6L5.1 14C6 13.1 7.4 12.1 9 12.1C10.5 12.1 11.4 12.6 12.2 13C13 13.3 13.8 13.8 15.1 13.8C16.3 13.8 17.4 13 18 12.4L19 14.1Z\";\nexport var mdiApproximatelyEqualBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9.3 8.2C10.6 8.2 11.4 8.7 12.1 9C12.7 9.3 13.4 9.7 14.5 9.7C15.5 9.7 16.5 9 17 8.5L17.8 9.8C17.1 10.6 15.8 11.4 14.4 11.4C13.1 11.4 12.3 10.9 11.7 10.6C11.1 10.3 10.3 9.9 9.2 9.9C8.2 9.9 7.2 10.6 6.7 11.1L6 9.8C6.7 9 8 8.2 9.3 8.2M14.6 15.8C13.3 15.8 12.5 15.3 11.8 15C11.2 14.7 10.4 14.3 9.3 14.3C8.3 14.3 7.3 15 6.8 15.5L6 14.1C6.7 13.3 8 12.5 9.3 12.5C10.6 12.5 11.4 13 12.1 13.3C12.7 13.6 13.4 14 14.6 14C15.6 14 16.6 13.3 17.1 12.8L17.9 14.1C17.3 15 16 15.8 14.6 15.8Z\";\nexport var mdiApps = \"M16,20H20V16H16M16,14H20V10H16M10,8H14V4H10M16,8H20V4H16M10,14H14V10H10M4,14H8V10H4M4,20H8V16H4M10,20H14V16H10M4,8H8V4H4V8Z\";\nexport var mdiAppsBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7,7V9H9V7H7M11,7V9H13V7H11M15,7V9H17V7H15M7,11V13H9V11H7M11,11V13H13V11H11M15,11V13H17V11H15M7,15V17H9V15H7M11,15V17H13V15H11M15,15V17H17V15H15Z\";\nexport var mdiArch = \"M12,2C11.11,4.18 10.57,5.61 9.58,7.73C10.19,8.37 10.93,9.12 12.14,9.97C10.84,9.43 9.95,8.9 9.29,8.34C8,11 6.03,14.75 2,22C5.17,20.17 7.63,19.04 9.92,18.61C9.82,18.19 9.76,17.73 9.77,17.25V17.15C9.82,15.12 10.88,13.56 12.13,13.67C13.38,13.77 14.35,15.5 14.3,17.54C14.29,17.92 14.25,18.29 14.18,18.63C16.44,19.07 18.87,20.19 22,22C21.38,20.86 20.83,19.84 20.31,18.87C19.5,18.23 18.61,17.39 16.85,16.5C18.06,16.8 18.93,17.16 19.61,17.57C14.26,7.62 13.83,6.3 12,2Z\";\nexport var mdiArchive = \"M3,3H21V7H3V3M4,8H20V21H4V8M9.5,11A0.5,0.5 0 0,0 9,11.5V13H15V11.5A0.5,0.5 0 0,0 14.5,11H9.5Z\";\nexport var mdiArchiveAlert = \"M2 4H18V7H2V4M3 8H17V20H3V8M7.5 11C7.22 11 7 11.22 7 11.5V13H13V11.5C13 11.22 12.78 11 12.5 11H7.5M20 13V7H22V13H20M20 17V15H22V17H20Z\";\nexport var mdiArchiveAlertOutline = \"M2 4H18V7H2V4M7.5 11H12.5C12.78 11 13 11.22 13 11.5V13H7V11.5C7 11.22 7.22 11 7.5 11M20 13V7H22V13H20M20 17V15H22V17H20M3 8H5V18H15V8H17V20H3V8Z\";\nexport var mdiArchiveArrowDown = \"M3 3H21V7H3V3M4 21V8H20V21H4M14 14V11H10V14H7L12 19L17 14H14Z\";\nexport var mdiArchiveArrowDownOutline = \"M20 21H4V10H6V19H18V10H20V21M3 3H21V9H3V3M5 5V7H19V5M10.5 11V14H8L12 18L16 14H13.5V11\";\nexport var mdiArchiveArrowUp = \"M4 21H20V8H4M14 15V18H10V15H7L12 10L17 15M3 3H21V7H3\";\nexport var mdiArchiveArrowUpOutline = \"M20 21H4V10H6V19H18V10H20V21M3 3H21V9H3V3M5 5V7H19V5M10.5 17V14H8L12 10L16 14H13.5V17\";\nexport var mdiArchiveCancel = \"M18.5 12C19 12 19.5 12.07 20 12.18V8H4V21H12.5C12.18 20.23 12 19.39 12 18.5C12 14.91 14.91 12 18.5 12M9 13V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9M21 7H3V3H21V7M18.5 14C16 14 14 16 14 18.5S16 23 18.5 23 23 21 23 18.5 21 14 18.5 14M18.5 21.5C16.84 21.5 15.5 20.16 15.5 18.5C15.5 17.94 15.65 17.42 15.92 17L20 21.08C19.58 21.35 19.06 21.5 18.5 21.5M21.08 20L17 15.92C17.42 15.65 17.94 15.5 18.5 15.5C20.16 15.5 21.5 16.84 21.5 18.5C21.5 19.06 21.35 19.58 21.08 20Z\";\nexport var mdiArchiveCancelOutline = \"M14.5 11C14.78 11 15 11.22 15 11.5V13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M18.5 12C19 12 19.5 12.07 20 12.18V10H18V12.03C18.17 12 18.33 12 18.5 12M6 19V10H4V21H12.5C12.24 20.38 12.09 19.7 12.03 19H6M21 9H3V3H21V9M19 5H5V7H19V5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiArchiveCheck = \"M19 13C19.34 13 19.67 13.04 20 13.09V8H4V21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M9 13V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9M21 7H3V3H21V7M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiArchiveCheckOutline = \"M21 3H3V9H21V3M19 7H5V5H19V7M14.5 11C14.78 11 15 11.22 15 11.5V13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M18 13.09V10H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09M13 19C13 19.7 13.13 20.37 13.35 21H4V10H6V19H13M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiArchiveClock = \"M20 6H2V2H20V6M16.5 12H15V17L18.61 19.16L19.36 17.94L16.5 16.25V12M23 16C23 19.87 19.87 23 16 23C13.62 23 11.53 21.81 10.26 20H3V7H19V9.68C21.36 10.81 23 13.21 23 16M8 12H10.26C10.83 11.19 11.56 10.5 12.41 10H8.5C8.22 10 8 10.22 8 10.5V12M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiArchiveClockOutline = \"M20 2H2V8H20V2M18 6H4V4H18V6M16 9C14.69 9 13.46 9.37 12.41 10H8.5C8.22 10 8 10.22 8 10.5V12H10.26C9.47 13.13 9 14.5 9 16C9 16.7 9.11 17.37 9.29 18H5V9H3V20H10.26C11.53 21.81 13.62 23 16 23C19.87 23 23 19.87 23 16C23 12.13 19.87 9 16 9M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiArchiveCog = \"M21 7H3V3H21V7M12 19C12 19.7 12.11 20.37 12.3 21H4V8H20V12.08C19.67 12.03 19.34 12 19 12C15.13 12 12 15.13 12 19M15 13V11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H15M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiArchiveCogOutline = \"M18 12.08V10H20V12.08C19.67 12.03 19.34 12 19 12C18.66 12 18.33 12.03 18 12.08M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M6 19V10H4V21H12.3C12.11 20.37 12 19.7 12 19H6M21 9H3V3H21V9M19 5H5V7H19V5M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiArchiveEdit = \"M20 10.3V8H4V21H11V19.13L19.39 10.74C19.57 10.56 19.78 10.42 20 10.3M15 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13M21 7H3V3H21V7M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83Z\";\nexport var mdiArchiveEditOutline = \"M18 12.13V10H20V10.3C19.78 10.42 19.57 10.56 19.39 10.74L18 12.13M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M6 10H4V21H11V19.13L11.13 19H6V10M21 9H3V3H21V9M19 5H5V7H19V5M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiArchiveEye = \"M21 7H3V3H21V7M9.14 19.75C9.32 20.19 9.54 20.61 9.78 21H4V8H20V13.55C19.06 13.19 18.05 13 17 13C13.5 13 10.43 15.06 9.14 18.25L8.85 19L9.14 19.75M9 13H15V11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13M17 18C16.44 18 16 18.44 16 19S16.44 20 17 20 18 19.56 18 19 17.56 18 17 18M23 19C22.06 21.34 19.73 23 17 23S11.94 21.34 11 19C11.94 16.66 14.27 15 17 15S22.06 16.66 23 19M19.5 19C19.5 17.62 18.38 16.5 17 16.5S14.5 17.62 14.5 19 15.62 21.5 17 21.5 19.5 20.38 19.5 19Z\";\nexport var mdiArchiveEyeOutline = \"M14.5 11C14.78 11 15 11.22 15 11.5V13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M20 13.55V10H18V13.06C18.69 13.14 19.36 13.31 20 13.55M21 9H3V3H21V9M19 5H5V7H19V5M8.85 19H6V10H4V21H9.78C9.54 20.61 9.32 20.19 9.14 19.75L8.85 19M17 18C16.44 18 16 18.44 16 19S16.44 20 17 20 18 19.56 18 19 17.56 18 17 18M23 19C22.06 21.34 19.73 23 17 23S11.94 21.34 11 19C11.94 16.66 14.27 15 17 15S22.06 16.66 23 19M19.5 19C19.5 17.62 18.38 16.5 17 16.5S14.5 17.62 14.5 19 15.62 21.5 17 21.5 19.5 20.38 19.5 19Z\";\nexport var mdiArchiveLock = \"M21 7H3V3H21V7M9.5 11H14.5C14.78 11 15 11.22 15 11.5V12.06C15.87 10.83 17.35 10 19 10C19.34 10 19.68 10.04 20 10.11V8H4V21H13.03C13 20.9 13 20.8 13 20.7V17.2C13 16.24 13.5 15.34 14.2 14.74V14.5C14.2 14 14.32 13.47 14.5 13H9V11.5C9 11.22 9.22 11 9.5 11M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiArchiveLockOpen = \"M21 7H3V3H21V7M19 9C19.34 9 19.68 9.04 20 9.11V8H4V21H13.03C13 20.9 13 20.8 13 20.7V17.2C13 16.24 13.5 15.34 14.2 14.74V13.5C14.2 13.33 14.24 13.17 14.26 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5C14.67 11 14.82 11.09 14.91 11.22C15.75 9.91 17.28 9 19 9M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiArchiveLockOpenOutline = \"M14.5 11C14.67 11 14.82 11.09 14.91 11.22C14.56 11.76 14.34 12.36 14.26 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M13 19H6V10H4V21H13.03C13 20.9 13 20.8 13 20.7V19M21 9H3V3H21V9M19 5H5V7H19V5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiArchiveLockOutline = \"M15 12.06C14.79 12.35 14.64 12.67 14.5 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V12.06M21 9H3V3H21V9M19 5H5V7H19V5M13 19H6V10H4V21H13.03C13 20.9 13 20.8 13 20.7V19M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiArchiveMarker = \"M21 7H3V3H21V7M13.63 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5C14.72 11 14.9 11.14 14.97 11.33C15.93 10.5 17.17 10 18.5 10C19 10 19.5 10.08 20 10.22V8H4V21H15.19C14.12 19.43 13 17.35 13 15.5C13 14.61 13.23 13.76 13.63 13M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiArchiveMarkerOutline = \"M14.5 11C14.72 11 14.9 11.14 14.97 11.33C14.42 11.79 13.96 12.36 13.63 13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M21 9H3V3H21V9M19 5H5V7H19V5M6 19V10H4V21H15.19C14.78 20.4 14.36 19.72 14 19H6M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiArchiveMinus = \"M19 13C19.34 13 19.67 13.04 20 13.09V8H4V21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M9 13V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9M21 7H3V3H21V7M23 18V20H15V18H23Z\";\nexport var mdiArchiveMinusOutline = \"M13 19C13 19.7 13.13 20.37 13.35 21H4V10H6V19H13M19 13C19.34 13 19.67 13.04 20 13.09V10H18V13.09C18.33 13.04 18.66 13 19 13M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M21 9H3V3H21V9M19 5H5V7H19V5M15 18V20H23V18H15Z\";\nexport var mdiArchiveMusic = \"M16.5 16.11V11H20V8H4V21H13.03C13 20.84 13 20.67 13 20.5C13 18.36 14.5 16.57 16.5 16.11M9 13V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9M21 7H3V3H21V7M22 13V15H20V20.5C20 21.88 18.88 23 17.5 23S15 21.88 15 20.5 16.12 18 17.5 18C17.86 18 18.19 18.07 18.5 18.21V13H22Z\";\nexport var mdiArchiveMusicOutline = \"M21 3H3V9H21V3M19 7H5V5H19V7M18 11V10H20V11H18M14.5 11C14.78 11 15 11.22 15 11.5V13H9V11.5C9 11.22 9.22 11 9.5 11H14.5M13.26 19C13.09 19.47 13 19.97 13 20.5C13 20.67 13 20.84 13.03 21H4V10H6V19H13.26M22 13V15H20V20.5C20 21.88 18.88 23 17.5 23S15 21.88 15 20.5 16.12 18 17.5 18C17.86 18 18.19 18.07 18.5 18.21V13H22Z\";\nexport var mdiArchiveOff = \"M10.2 7L6.2 3H21V7H10.2M20 8H11.2L20 16.8V8M20 19.35V19.34L8.66 8H8.66L7.66 7H7.66L2.39 1.73L1.11 3L3 4.89V7H5.11L6.11 8H4V21H19.11L20.84 22.73L22.11 21.46L20 19.35Z\";\nexport var mdiArchiveOffOutline = \"M8.2 5L6.2 3H21V9H12.2L10.2 7H19V5H8.2M20 16.8V10H18V14.8L20 16.8M20 19.35V19.34L18 17.34V17.35L9.66 9H9.66L7.66 7H7.66L6.13 5.47L2.39 1.73L1.11 3L3 4.89V9H7.11L17.11 19H6V10H4V21H19.11L20.84 22.73L22.11 21.46L20 19.35Z\";\nexport var mdiArchiveOutline = \"M20 21H4V10H6V19H18V10H20V21M3 3H21V9H3V3M9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9V11.5C9 11.22 9.22 11 9.5 11M5 5V7H19V5H5Z\";\nexport var mdiArchivePlus = \"M21 7H3V3H21V7M13 19C13 19.7 13.13 20.37 13.35 21H4V8H20V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M15 13V11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H15M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiArchivePlusOutline = \"M18 13.09V10H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M21 9H3V3H21V9M19 5H5V7H19V5M6 19V10H4V21H13.35C13.13 20.37 13 19.7 13 19H6M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiArchiveRefresh = \"M18.5 12C19 12 19.5 12.07 20 12.18V8H4V21H12.5C12.18 20.23 12 19.39 12 18.5C12 14.91 14.91 12 18.5 12M9 13V11.5C9 11.22 9.22 11 9.5 11H14.5C14.78 11 15 11.22 15 11.5V13H9M21 7H3V3H21V7M18 18.5L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18Z\";\nexport var mdiArchiveRefreshOutline = \"M18 12.03V10H20V12.18C19.5 12.07 19 12 18.5 12C18.33 12 18.17 12 18 12.03M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M6 19V10H4V21H12.5C12.24 20.38 12.09 19.7 12.03 19H6M21 9H3V3H21V9M19 5H5V7H19V5M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiArchiveRemove = \"M21 7H3V3H21V7M13 19C13 19.7 13.13 20.37 13.35 21H4V8H20V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M15 13V11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H15M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiArchiveRemoveOutline = \"M18 13.09V10H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09M14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11M6 19V10H4V21H13.35C13.13 20.37 13 19.7 13 19H6M21 9H3V3H21V9M19 5H5V7H19V5M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiArchiveSearch = \"M20 6H2V2H20V6M11.03 12H8V10.5C8 10.22 8.22 10 8.5 10H13.04C14.84 8.87 17.07 8.7 19 9.5V7H3V20H11.82C9.7 17.8 9.44 14.5 11.03 12M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiArchiveSearchOutline = \"M13.04 10C12.64 10.25 12.26 10.55 11.9 10.9C11.57 11.24 11.27 11.61 11.03 12H8V10.5C8 10.22 8.22 10 8.5 10H13.04M20 8H2V2H20V8M18 4H4V6H18V4M5 18V9H3V20H11.82C11.24 19.4 10.8 18.72 10.5 18H5M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiArchiveSettings = \"M21 2V6H3V2H21M4 7H20V20H4V7M9 12H15V10.5C15 10.22 14.78 10 14.5 10H9.5C9.22 10 9 10.22 9 10.5V12M7 24H9V22H7V24M11 24H13V22H11V24M15 24H17V22H15V24Z\";\nexport var mdiArchiveSettingsOutline = \"M3 2V8H21V2H3M19 6H5V4H19V6M18 9H20V20H4V9H6V18H18V9M15 10.5V12H9V10.5C9 10.22 9.22 10 9.5 10H14.5C14.78 10 15 10.22 15 10.5M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22Z\";\nexport var mdiArchiveStar = \"M21 7H3V3H21V7M13 19C13 19.7 13.13 20.37 13.35 21H4V8H20V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M15 13V11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H15M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiArchiveStarOutline = \"M18 13.09V10H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09M9.5 11C9.22 11 9 11.22 9 11.5V13H15V11.5C15 11.22 14.78 11 14.5 11H9.5M6 19V10H4V21H13.35C13.13 20.37 13 19.7 13 19H6M21 9H3V3H21V9M19 5H5V7H19V5M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiArchiveSync = \"M21 7H3V3H21V7M9.5 11H14.5C14.78 11 15 11.22 15 11.5V12.82C16.17 11.69 17.75 11 19.5 11C19.67 11 19.84 11 20 11.03V8H4V21H14.03C13.38 20 13 18.79 13 17.5C13 15.75 13.69 14.17 14.82 13H9V11.5C9 11.22 9.22 11 9.5 11M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiArchiveSyncOutline = \"M18 11.18V10H20V11.03C19.84 11 19.67 11 19.5 11C19 11 18.5 11.07 18 11.18M15 11.5C15 11.22 14.78 11 14.5 11H9.5C9.22 11 9 11.22 9 11.5V13H14.82C14.88 12.94 14.94 12.88 15 12.82V11.5M6 19V10H4V21H14.03C13.64 20.39 13.35 19.72 13.18 19H6M21 9H3V3H21V9M19 5H5V7H19V5M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiArmFlex = \"M3 18.34C3 18.34 4 7.09 7 3L12 4L11 7.09H9V14.25H10C12 11.18 16.14 10.06 18.64 11.18C21.94 12.71 21.64 17.32 18.64 19.36C16.24 21 9 22.43 3 18.34Z\";\nexport var mdiArmFlexOutline = \"M7 7.76V16.25H11.08L11.68 15.34C12.84 13.55 14.93 12.75 16.47 12.75C17 12.75 17.45 12.84 17.79 13C18.7 13.41 18.95 14.18 19 14.74C19.08 15.87 18.5 17.03 17.5 17.71C16.6 18.33 14.44 19 11.87 19C10.12 19 7.61 18.69 5.12 17.3C5.41 14.85 6 10.88 7 7.76M7 3C4 7.09 3 18.34 3 18.34C5.9 20.31 9.08 21 11.87 21C14.86 21 17.39 20.21 18.64 19.36C21.64 17.32 21.94 12.71 18.64 11.18C18 10.89 17.26 10.75 16.47 10.75C14.17 10.75 11.5 11.96 10 14.25H9V7.09H11L12 4L7 3Z\";\nexport var mdiArrangeBringForward = \"M2,2H16V16H2V2M22,8V22H8V18H10V20H20V10H18V8H22Z\";\nexport var mdiArrangeBringToFront = \"M2,2H11V6H9V4H4V9H6V11H2V2M22,13V22H13V18H15V20H20V15H18V13H22M8,8H16V16H8V8Z\";\nexport var mdiArrangeSendBackward = \"M2,2H16V16H2V2M22,8V22H8V18H18V8H22M4,4V14H14V4H4Z\";\nexport var mdiArrangeSendToBack = \"M2,2H11V11H2V2M9,4H4V9H9V4M22,13V22H13V13H22M15,20H20V15H15V20M16,8V11H13V8H16M11,16H8V13H11V16Z\";\nexport var mdiArrowAll = \"M13,11H18L16.5,9.5L17.92,8.08L21.84,12L17.92,15.92L16.5,14.5L18,13H13V18L14.5,16.5L15.92,17.92L12,21.84L8.08,17.92L9.5,16.5L11,18V13H6L7.5,14.5L6.08,15.92L2.16,12L6.08,8.08L7.5,9.5L6,11H11V6L9.5,7.5L8.08,6.08L12,2.16L15.92,6.08L14.5,7.5L13,6V11Z\";\nexport var mdiArrowBottomLeft = \"M19,6.41L17.59,5L7,15.59V9H5V19H15V17H8.41L19,6.41Z\";\nexport var mdiArrowBottomLeftBoldBox = \"M5 21C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5M15.3 16L13.2 13.9L17 10L14.2 7.2L10.4 11.1L8.2 8.9V16H15.3Z\";\nexport var mdiArrowBottomLeftBoldBoxOutline = \"M8 16V8.9L10.1 11L14.2 7.1L17 10L12.9 13.9L15 16H8M21 19V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19M19 19H5V5H19V19Z\";\nexport var mdiArrowBottomLeftBoldOutline = \"M18.36,19.78H4.22V5.64L8.47,9.88L14.12,4.22L19.78,9.88L14.12,15.54L18.36,19.78M6.34,17.66H13.41L11.29,15.54L16.95,9.88L14.12,7.05L8.46,12.71L6.34,10.59V17.66Z\";\nexport var mdiArrowBottomLeftThick = \"M15.5,5.69L18.31,8.5L11.94,14.89H16.89V18.31H5.69V7.11H9.12V12.06L15.5,5.69Z\";\nexport var mdiArrowBottomLeftThin = \"M12.07 19L9.24 16.18L19 6.42L17.58 5L7.82 14.76L5 11.94V19Z\";\nexport var mdiArrowBottomLeftThinCircleOutline = \"M12 20.03C16.41 20.03 20.03 16.41 20.03 12C20.03 7.59 16.41 3.97 12 3.97C7.59 3.97 3.97 7.59 3.97 12C3.97 16.41 7.59 20.03 12 20.03M12 22C6.46 22 2 17.54 2 12C2 6.46 6.46 2 12 2C17.54 2 22 6.46 22 12C22 17.54 17.54 22 12 22M10.12 12.47L8 10.36V16H13.64L11.53 13.88L16.5 8.9L15.1 7.5\";\nexport var mdiArrowBottomRight = \"M5,6.41L6.41,5L17,15.59V9H19V19H9V17H15.59L5,6.41Z\";\nexport var mdiArrowBottomRightBoldBox = \"M19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21M15.8 16V8.9L13.7 11L9.8 7.2L7 10L10.8 13.9L8.7 16H15.8Z\";\nexport var mdiArrowBottomRightBoldBoxOutline = \"M16 16H8.9L11 13.9L7 10L9.8 7.2L13.9 11.1L16 8.9V16M5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21M5 5H19V19H5V5Z\";\nexport var mdiArrowBottomRightBoldOutline = \"M9.88,15.54L4.22,9.88L9.88,4.22L15.54,9.88L19.78,5.64V19.78H5.64L9.88,15.54M17.66,10.59L15.54,12.71L9.88,7.05L7.05,9.88L12.71,15.54L10.59,17.66H17.66V10.59Z\";\nexport var mdiArrowBottomRightThick = \"M14.89,12.06V7.11H18.31V18.31H7.11V14.89H12.06L5.69,8.5L8.5,5.69L14.89,12.06Z\";\nexport var mdiArrowBottomRightThin = \"M11.93 19L14.76 16.18L5 6.42L6.42 5L16.18 14.76L19 11.94V19Z\";\nexport var mdiArrowBottomRightThinCircleOutline = \"M12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 7.59 7.59 3.97 12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03M12 22C17.54 22 22 17.54 22 12C22 6.46 17.54 2 12 2C6.46 2 2 6.46 2 12C2 17.54 6.46 22 12 22M13.88 12.47L16 10.36V16H10.36L12.47 13.88L7.5 8.9L8.9 7.5\";\nexport var mdiArrowCollapse = \"M19.5,3.09L15,7.59V4H13V11H20V9H16.41L20.91,4.5L19.5,3.09M4,13V15H7.59L3.09,19.5L4.5,20.91L9,16.41V20H11V13H4Z\";\nexport var mdiArrowCollapseAll = \"M19.5,3.09L20.91,4.5L16.41,9H20V11H13V4H15V7.59L19.5,3.09M20.91,19.5L19.5,20.91L15,16.41V20H13V13H20V15H16.41L20.91,19.5M4.5,3.09L9,7.59V4H11V11H4V9H7.59L3.09,4.5L4.5,3.09M3.09,19.5L7.59,15H4V13H11V20H9V16.41L4.5,20.91L3.09,19.5Z\";\nexport var mdiArrowCollapseDown = \"M19.92,12.08L12,20L4.08,12.08L5.5,10.67L11,16.17V2H13V16.17L18.5,10.66L19.92,12.08M12,20H2V22H22V20H12Z\";\nexport var mdiArrowCollapseHorizontal = \"M13,20V4H15.03V20H13M10,20V4H12.03V20H10M5,8L9.03,12L5,16V13H2V11H5V8M20,16L16,12L20,8V11H23V13H20V16Z\";\nexport var mdiArrowCollapseLeft = \"M11.92,19.92L4,12L11.92,4.08L13.33,5.5L7.83,11H22V13H7.83L13.34,18.5L11.92,19.92M4,12V2H2V22H4V12Z\";\nexport var mdiArrowCollapseRight = \"M12.08,4.08L20,12L12.08,19.92L10.67,18.5L16.17,13H2V11H16.17L10.67,5.5L12.08,4.08M20,12V22H22V2H20V12Z\";\nexport var mdiArrowCollapseUp = \"M4.08,11.92L12,4L19.92,11.92L18.5,13.33L13,7.83V22H11V7.83L5.5,13.33L4.08,11.92M12,4H22V2H2V4H12Z\";\nexport var mdiArrowCollapseVertical = \"M4,12H20V14H4V12M4,9H20V11H4V9M16,4L12,8L8,4H11V1H13V4H16M8,19L12,15L16,19H13V22H11V19H8Z\";\nexport var mdiArrowDecision = \"M11,5H8L12,1L16,5H13V9.43C12.25,9.89 11.58,10.46 11,11.12V5M22,11L18,7V10C14.39,9.85 11.31,12.57 11,16.17C9.44,16.72 8.62,18.44 9.17,20C9.72,21.56 11.44,22.38 13,21.83C14.56,21.27 15.38,19.56 14.83,18C14.53,17.14 13.85,16.47 13,16.17C13.47,12.17 17.47,11.97 17.95,11.97V14.97L22,11M10.63,11.59C9.3,10.57 7.67,10 6,10V7L2,11L6,15V12C7.34,12.03 8.63,12.5 9.64,13.4C9.89,12.76 10.22,12.15 10.63,11.59Z\";\nexport var mdiArrowDecisionAuto = \"M12,5H9L13,1L17,5H14V9.43C13.25,9.89 12.58,10.46 12,11.12V5M10.4,15H8.5L7.8,13H4.6L3.9,15H2L5.2,6H7.2L10.4,15M7.35,11.65L6.2,8L5.05,11.65H7.35M23,11L19,7V10C15.39,9.85 12.31,12.57 12,16.17C10.44,16.72 9.62,18.44 10.17,20C10.72,21.56 12.44,22.38 14,21.83C15.56,21.27 16.38,19.56 15.83,18C15.53,17.14 14.85,16.47 14,16.17C14.47,12.17 18.47,11.97 18.95,11.97V14.97L23,11Z\";\nexport var mdiArrowDecisionAutoOutline = \"M19,15V12C18.5,12 14.5,12.16 14.05,16.2C15.61,16.75 16.43,18.47 15.88,20.03C15.33,21.59 13.61,22.41 12.05,21.86C10.5,21.3 9.67,19.59 10.22,18.03C10.5,17.17 11.2,16.5 12.05,16.2C12.34,12.61 15.4,9.88 19,10V7L23,11L19,15M14,19A1,1 0 0,0 13,18A1,1 0 0,0 12,19A1,1 0 0,0 13,20A1,1 0 0,0 14,19M12,11.12C12.58,10.46 13.25,9.89 14,9.43V5H17L13,1L9,5H12V11.12M7.2,6H5.2L2,15H3.9L4.6,13H7.8L8.5,15H10.4L7.2,6M5.05,11.65L6.2,8L7.35,11.65H5.05Z\";\nexport var mdiArrowDecisionOutline = \"M9.64,13.4C8.63,12.5 7.34,12.03 6,12V15L2,11L6,7V10C7.67,10 9.3,10.57 10.63,11.59C10.22,12.15 9.89,12.76 9.64,13.4M18,15V12C17.5,12 13.5,12.16 13.05,16.2C14.61,16.75 15.43,18.47 14.88,20.03C14.33,21.59 12.61,22.41 11.05,21.86C9.5,21.3 8.67,19.59 9.22,18.03C9.5,17.17 10.2,16.5 11.05,16.2C11.34,12.61 14.4,9.88 18,10V7L22,11L18,15M13,19A1,1 0 0,0 12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19M11,11.12C11.58,10.46 12.25,9.89 13,9.43V5H16L12,1L8,5H11V11.12Z\";\nexport var mdiArrowDown = \"M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z\";\nexport var mdiArrowDownBold = \"M9,4H15V12H19.84L12,19.84L4.16,12H9V4Z\";\nexport var mdiArrowDownBoldBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M12,17L17,12H14V8H10V12H7L12,17Z\";\nexport var mdiArrowDownBoldBoxOutline = \"M12,17L7,12H10V8H14V12H17L12,17M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiArrowDownBoldCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,17L17,12H14V8H10V12H7L12,17Z\";\nexport var mdiArrowDownBoldCircleOutline = \"M12,17L7,12H10V8H14V12H17L12,17M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiArrowDownBoldHexagonOutline = \"M12,17L7,12H10V8H14V12H17L12,17M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiArrowDownBoldOutline = \"M22,11L12,21L2,11H8V3H16V11H22M12,18L17,13H14V5H10V13H7L12,18Z\";\nexport var mdiArrowDownBox = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M11,6V14.5L7.5,11L6.08,12.42L12,18.34L17.92,12.42L16.5,11L13,14.5V6H11Z\";\nexport var mdiArrowDownCircle = \"M11,6V14L7.5,10.5L6.08,11.92L12,17.84L17.92,11.92L16.5,10.5L13,14V6H11M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22Z\";\nexport var mdiArrowDownCircleOutline = \"M11,6H13V14L16.5,10.5L17.92,11.92L12,17.84L6.08,11.92L7.5,10.5L11,14V6M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20Z\";\nexport var mdiArrowDownDropCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M7,10L12,15L17,10H7Z\";\nexport var mdiArrowDownDropCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M7,10L12,15L17,10H7Z\";\nexport var mdiArrowDownLeft = \"M20 4V6H13.5C11 6 9 8 9 10.5V16.17L12.09 13.09L13.5 14.5L8 20L2.5 14.5L3.91 13.08L7 16.17V10.5C7 6.91 9.91 4 13.5 4H20Z\";\nexport var mdiArrowDownLeftBold = \"M21 3V7H13.5C11.57 7 10 8.57 10 10.5V13H14L8 20L2 13H6V10.5C6 6.36 9.36 3 13.5 3H21Z\";\nexport var mdiArrowDownRight = \"M21.5 14.5L16 20L10.5 14.5L11.91 13.09L15 16.17V10.5C15 8 13 6 10.5 6H4V4H10.5C14.09 4 17 6.91 17 10.5V16.17L20.09 13.08L21.5 14.5Z\";\nexport var mdiArrowDownRightBold = \"M10.5 3C14.64 3 18 6.36 18 10.5V13H22L16 20L10 13H14V10.5C14 8.57 12.43 7 10.5 7H3V3H10.5Z\";\nexport var mdiArrowDownThick = \"M10,4H14V13L17.5,9.5L19.92,11.92L12,19.84L4.08,11.92L6.5,9.5L10,13V4Z\";\nexport var mdiArrowDownThin = \"M7.03 13.92H11.03V5L13.04 4.97V13.92H17.03L12.03 18.92Z\";\nexport var mdiArrowDownThinCircleOutline = \"M12 20.03C16.41 20.03 20.03 16.41 20.03 12C20.03 7.59 16.41 3.97 12 3.97C7.59 3.97 3.97 7.59 3.97 12C3.97 16.41 7.59 20.03 12 20.03M12 22C6.46 22 2 17.54 2 12C2 6.46 6.46 2 12 2C17.54 2 22 6.46 22 12C22 17.54 17.54 22 12 22M11 13.54H8L12 17.5L16 13.54H13V6.5H11\";\nexport var mdiArrowExpand = \"M10,21V19H6.41L10.91,14.5L9.5,13.09L5,17.59V14H3V21H10M14.5,10.91L19,6.41V10H21V3H14V5H17.59L13.09,9.5L14.5,10.91Z\";\nexport var mdiArrowExpandAll = \"M9.5,13.09L10.91,14.5L6.41,19H10V21H3V14H5V17.59L9.5,13.09M10.91,9.5L9.5,10.91L5,6.41V10H3V3H10V5H6.41L10.91,9.5M14.5,13.09L19,17.59V14H21V21H14V19H17.59L13.09,14.5L14.5,13.09M13.09,9.5L17.59,5H14V3H21V10H19V6.41L14.5,10.91L13.09,9.5Z\";\nexport var mdiArrowExpandDown = \"M22,4V2H2V4H11V18.17L5.5,12.67L4.08,14.08L12,22L19.92,14.08L18.5,12.67L13,18.17V4H22Z\";\nexport var mdiArrowExpandHorizontal = \"M9,11H15V8L19,12L15,16V13H9V16L5,12L9,8V11M2,20V4H4V20H2M20,20V4H22V20H20Z\";\nexport var mdiArrowExpandLeft = \"M20,22H22V2H20V11H5.83L11.33,5.5L9.92,4.08L2,12L9.92,19.92L11.33,18.5L5.83,13H20V22Z\";\nexport var mdiArrowExpandRight = \"M4,2H2V22H4V13H18.17L12.67,18.5L14.08,19.92L22,12L14.08,4.08L12.67,5.5L18.17,11H4V2Z\";\nexport var mdiArrowExpandUp = \"M2,20V22H22V20H13V5.83L18.5,11.33L19.92,9.92L12,2L4.08,9.92L5.5,11.33L11,5.83V20H2Z\";\nexport var mdiArrowExpandVertical = \"M13,9V15H16L12,19L8,15H11V9H8L12,5L16,9H13M4,2H20V4H4V2M4,20H20V22H4V20Z\";\nexport var mdiArrowHorizontalLock = \"M14.8 7V5.5C14.8 4.1 13.4 3 12 3S9.2 4.1 9.2 5.5V7C8.6 7 8 7.6 8 8.2V11.7C8 12.4 8.6 13 9.2 13H14.7C15.4 13 16 12.4 16 11.8V8.3C16 7.6 15.4 7 14.8 7M13.5 7H10.5V5.5C10.5 4.7 11.2 4.2 12 4.2S13.5 4.7 13.5 5.5V7M6 17V20L2 16L6 12V15H18V12L22 16L18 20V17H6Z\";\nexport var mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nexport var mdiArrowLeftBold = \"M20,9V15H12V19.84L4.16,12L12,4.16V9H20Z\";\nexport var mdiArrowLeftBoldBox = \"M21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5M7,12L12,17V14H16V10H12V7L7,12Z\";\nexport var mdiArrowLeftBoldBoxOutline = \"M7,12L12,7V10H16V14H12V17L7,12M21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5M19,5H5V19H19V5Z\";\nexport var mdiArrowLeftBoldCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M7,12L12,17V14H16V10H12V7L7,12Z\";\nexport var mdiArrowLeftBoldCircleOutline = \"M7,12L12,7V10H16V14H12V17L7,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12Z\";\nexport var mdiArrowLeftBoldHexagonOutline = \"M7,12L12,7V10H16V14H12V17L7,12M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiArrowLeftBoldOutline = \"M13,22L3,12L13,2V8H21V16H13V22M6,12L11,17V14H19V10H11V7L6,12Z\";\nexport var mdiArrowLeftBottom = \"M20 4V10.5C20 14.09 17.09 17 13.5 17H7.83L10.92 20.09L9.5 21.5L4 16L9.5 10.5L10.91 11.91L7.83 15H13.5C16 15 18 13 18 10.5V4H20Z\";\nexport var mdiArrowLeftBottomBold = \"M21 10.5C21 14.64 17.64 18 13.5 18H11V22L4 16L11 10V14H13.5C15.43 14 17 12.43 17 10.5V3H21V10.5Z\";\nexport var mdiArrowLeftBox = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5C3,3.89 3.9,3 5,3H19M18,11H9.5L13,7.5L11.58,6.08L5.66,12L11.58,17.92L13,16.5L9.5,13H18V11Z\";\nexport var mdiArrowLeftCircle = \"M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M18,11H10L13.5,7.5L12.08,6.08L6.16,12L12.08,17.92L13.5,16.5L10,13H18V11Z\";\nexport var mdiArrowLeftCircleOutline = \"M18,11V13H10L13.5,16.5L12.08,17.92L6.16,12L12.08,6.08L13.5,7.5L10,11H18M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12Z\";\nexport var mdiArrowLeftDropCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M14,7L9,12L14,17V7Z\";\nexport var mdiArrowLeftDropCircleOutline = \"M22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12M14,7L9,12L14,17V7Z\";\nexport var mdiArrowLeftRight = \"M6.45,17.45L1,12L6.45,6.55L7.86,7.96L4.83,11H19.17L16.14,7.96L17.55,6.55L23,12L17.55,17.45L16.14,16.04L19.17,13H4.83L7.86,16.04L6.45,17.45Z\";\nexport var mdiArrowLeftRightBold = \"M8,14V18L2,12L8,6V10H16V6L22,12L16,18V14H8Z\";\nexport var mdiArrowLeftRightBoldOutline = \"M14,16V22L24,12L14,2V8H10V2L0,12L10,22V16H14M8,14V17L3,12L8,7V10H16V7L21,12L16,17V14H8Z\";\nexport var mdiArrowLeftThick = \"M20,10V14H11L14.5,17.5L12.08,19.92L4.16,12L12.08,4.08L14.5,6.5L11,10H20Z\";\nexport var mdiArrowLeftThin = \"M10.05 16.94V12.94H18.97L19 10.93H10.05V6.94L5.05 11.94Z\";\nexport var mdiArrowLeftThinCircleOutline = \"M3.97 12C3.97 16.41 7.59 20.03 12 20.03C16.41 20.03 20.03 16.41 20.03 12C20.03 7.59 16.41 3.97 12 3.97C7.59 3.97 3.97 7.59 3.97 12M2 12C2 6.46 6.46 2 12 2C17.54 2 22 6.46 22 12C22 17.54 17.54 22 12 22C6.46 22 2 17.54 2 12M10.46 11V8L6.5 12L10.46 16V13H17.5V11\";\nexport var mdiArrowLeftTop = \"M20 13.5V20H18V13.5C18 11 16 9 13.5 9H7.83L10.91 12.09L9.5 13.5L4 8L9.5 2.5L10.92 3.91L7.83 7H13.5C17.09 7 20 9.91 20 13.5Z\";\nexport var mdiArrowLeftTopBold = \"M21 21H17V13.5C17 11.57 15.43 10 13.5 10H11V14L4 8L11 2V6H13.5C17.64 6 21 9.36 21 13.5V21Z\";\nexport var mdiArrowOscillating = \"M6 14H9L5 18L1 14H4C4 11.3 5.7 6.6 11 6.1V8.1C7.6 8.6 6 11.9 6 14M20 14C20 11.3 18.3 6.6 13 6.1V8.1C16.4 8.7 18 11.9 18 14H15L19 18L23 14H20Z\";\nexport var mdiArrowOscillatingOff = \"M13 8.1V6.1C18.3 6.6 20 11.4 20 14H23L20.1 16.9L17.2 14H18C18 11.9 16.4 8.6 13 8.1M7.8 7.1L2.4 1.7L1.1 3L6.3 8.2C4.7 10 4 12.4 4 14H1L5 18L9 14H6C6 12.7 6.6 11 7.9 9.7L20.9 22.7L22.2 21.4L9.3 8.7L7.8 7.1M11 6.1L9.5 6.4L11 7.8V6.1Z\";\nexport var mdiArrowProjectile = \"M22 2L20 7L19.03 6.03L8 17.06V19L5 22L4 20L2 19L5 16H6.94L17.97 4.97L17 4L22 2Z\";\nexport var mdiArrowProjectileMultiple = \"M19 16L22 19L20 20L19 22L16 19V17.06L12 13.06L8 17.06V19L5 22L4 20L2 19L5 16H6.94L10.94 12L4.97 6.03L4 7L2 2L7 4L6.03 4.97L12 10.94L17.97 4.97L17 4L22 2L20 7L19.03 6.03L13.06 12L17.06 16H19Z\";\nexport var mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nexport var mdiArrowRightBold = \"M4,15V9H12V4.16L19.84,12L12,19.84V15H4Z\";\nexport var mdiArrowRightBoldBox = \"M3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19M17,12L12,7V10H8V14H12V17L17,12Z\";\nexport var mdiArrowRightBoldBoxOutline = \"M17,12L12,17V14H8V10H12V7L17,12M3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19M5,19H19V5H5V19Z\";\nexport var mdiArrowRightBoldCircle = \"M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M17,12L12,7V10H8V14H12V17L17,12Z\";\nexport var mdiArrowRightBoldCircleOutline = \"M17,12L12,17V14H8V10H12V7L17,12M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12Z\";\nexport var mdiArrowRightBoldHexagonOutline = \"M17,12L12,17V14H8V10H12V7L17,12M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiArrowRightBoldOutline = \"M11,16H3V8H11V2L21,12L11,22V16M13,7V10H5V14H13V17L18,12L13,7Z\";\nexport var mdiArrowRightBottom = \"M20 16L14.5 21.5L13.08 20.09L16.17 17H10.5C6.91 17 4 14.09 4 10.5V4H6V10.5C6 13 8 15 10.5 15H16.17L13.09 11.91L14.5 10.5L20 16Z\";\nexport var mdiArrowRightBottomBold = \"M3 3H7V10.5C7 12.43 8.57 14 10.5 14H13V10L20 16L13 22V18H10.5C6.36 18 3 14.64 3 10.5V3Z\";\nexport var mdiArrowRightBox = \"M5,21A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19C21,20.11 20.1,21 19,21H5M6,13H14.5L11,16.5L12.42,17.92L18.34,12L12.42,6.08L11,7.5L14.5,11H6V13Z\";\nexport var mdiArrowRightCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M6,13H14L10.5,16.5L11.92,17.92L17.84,12L11.92,6.08L10.5,7.5L14,11H6V13Z\";\nexport var mdiArrowRightCircleOutline = \"M6,13V11H14L10.5,7.5L11.92,6.08L17.84,12L11.92,17.92L10.5,16.5L14,13H6M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12Z\";\nexport var mdiArrowRightDropCircle = \"M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M10,17L15,12L10,7V17Z\";\nexport var mdiArrowRightDropCircleOutline = \"M2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12M4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12M10,17L15,12L10,7V17Z\";\nexport var mdiArrowRightThick = \"M4,10V14H13L9.5,17.5L11.92,19.92L19.84,12L11.92,4.08L9.5,6.5L13,10H4Z\";\nexport var mdiArrowRightThin = \"M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z\";\nexport var mdiArrowRightThinCircleOutline = \"M20.03 12C20.03 7.59 16.41 3.97 12 3.97C7.59 3.97 3.97 7.59 3.97 12C3.97 16.41 7.59 20.03 12 20.03C16.41 20.03 20.03 16.41 20.03 12M22 12C22 17.54 17.54 22 12 22C6.46 22 2 17.54 2 12C2 6.46 6.46 2 12 2C17.54 2 22 6.46 22 12M13.54 13V16L17.5 12L13.54 8V11H6.5V13\";\nexport var mdiArrowRightTop = \"M20 8L14.5 13.5L13.09 12.09L16.17 9H10.5C8 9 6 11 6 13.5V20H4V13.5C4 9.91 6.91 7 10.5 7H16.17L13.08 3.91L14.5 2.5L20 8Z\";\nexport var mdiArrowRightTopBold = \"M3 13.5C3 9.36 6.36 6 10.5 6H13V2L20 8L13 14V10H10.5C8.57 10 7 11.57 7 13.5V21H3V13.5Z\";\nexport var mdiArrowSplitHorizontal = \"M8,18H11V15H2V13H22V15H13V18H16L12,22L8,18M12,2L8,6H11V9H2V11H22V9H13V6H16L12,2Z\";\nexport var mdiArrowSplitVertical = \"M18,16V13H15V22H13V2H15V11H18V8L22,12L18,16M2,12L6,16V13H9V22H11V2H9V11H6V8L2,12Z\";\nexport var mdiArrowTopLeft = \"M19,17.59L17.59,19L7,8.41V15H5V5H15V7H8.41L19,17.59Z\";\nexport var mdiArrowTopLeftBoldBox = \"M5 3H19C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3M8.2 8V15.1L10.3 13L14.1 16.9L17 14L13.2 10.1L15.3 8H8.2Z\";\nexport var mdiArrowTopLeftBoldBoxOutline = \"M8 8H15.1L13 10.1L17 14L14.2 16.8L10.1 12.9L8 15.1V8M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V5H19V19Z\";\nexport var mdiArrowTopLeftBoldOutline = \"M14.12,8.46L19.78,14.12L14.12,19.78L8.46,14.12L4.22,18.36V4.22H18.36L14.12,8.46M6.34,13.41L8.46,11.29L14.12,16.95L16.95,14.12L11.29,8.47L13.41,6.34H6.34V13.41Z\";\nexport var mdiArrowTopLeftBottomRight = \"M13,21H21V13H19V17.59L6.41,5H11V3H3V11H5V6.41L17.59,19H13V21Z\";\nexport var mdiArrowTopLeftBottomRightBold = \"M5.83,8.66L3,11.5V3H11.5L8.66,5.83L18.17,15.34L21,12.5V21H12.5L15.34,18.17L5.83,8.66Z\";\nexport var mdiArrowTopLeftThick = \"M9.12,11.94V16.89H5.69V5.69H16.89V9.12H11.94L18.31,15.5L15.5,18.31L9.12,11.94Z\";\nexport var mdiArrowTopLeftThin = \"M12.07 5L9.24 7.83L19 17.59L17.58 19L7.82 9.25L5 12.07V5Z\";\nexport var mdiArrowTopLeftThinCircleOutline = \"M12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 7.59 7.59 3.97 12 3.97M12 2C6.46 2 2 6.46 2 12C2 17.54 6.46 22 12 22C17.54 22 22 17.54 22 12C22 6.46 17.54 2 12 2M10.12 11.53L8 13.64V8H13.64L11.53 10.12L16.5 15.1L15.1 16.5\";\nexport var mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nexport var mdiArrowTopRightBoldBox = \"M19 3C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19M8.7 8L10.8 10.1L7 14L9.8 16.8L13.6 12.9L15.7 15V8H8.7Z\";\nexport var mdiArrowTopRightBoldBoxOutline = \"M16 8V15.1L13.9 13L9.8 16.9L7 14L11.1 10.1L8.9 8H16M3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5M5 5H19V19H5V5Z\";\nexport var mdiArrowTopRightBoldOutline = \"M5.64,4.22H19.78V18.36L15.54,14.12L9.88,19.78L4.22,14.12L9.88,8.46L5.64,4.22M17.66,6.34H10.59L12.71,8.46L7.05,14.12L9.88,16.95L15.54,11.29L17.66,13.41V6.34H17.66Z\";\nexport var mdiArrowTopRightBottomLeft = \"M11,21H3V13H5V17.59L17.59,5H13V3H21V11H19V6.41L6.41,19H11V21Z\";\nexport var mdiArrowTopRightBottomLeftBold = \"M18.17,8.66L21,11.5V3H12.5L15.34,5.83L5.83,15.34L3,12.5V21H11.5L8.66,18.17L18.17,8.66Z\";\nexport var mdiArrowTopRightThick = \"M8.5,18.31L5.69,15.5L12.06,9.12H7.11V5.69H18.31V16.89H14.89V11.94L8.5,18.31Z\";\nexport var mdiArrowTopRightThin = \"M11.93 5L14.76 7.83L5 17.59L6.42 19L16.18 9.25L19 12.07V5H11.93Z\";\nexport var mdiArrowTopRightThinCircleOutline = \"M12 3.97C7.59 3.97 3.97 7.59 3.97 12C3.97 16.41 7.59 20.03 12 20.03C16.41 20.03 20.03 16.41 20.03 12C20.03 7.59 16.41 3.97 12 3.97M12 2C17.54 2 22 6.46 22 12C22 17.54 17.54 22 12 22C6.46 22 2 17.54 2 12C2 6.46 6.46 2 12 2M13.88 11.53L16 13.64V8H10.36L12.47 10.12L7.5 15.1L8.9 16.5\";\nexport var mdiArrowUDownLeft = \"M20 10.5V18H18V10.5C18 8 16 6 13.5 6S9 8 9 10.5V16.17L12.09 13.09L13.5 14.5L8 20L2.5 14.5L3.91 13.08L7 16.17V10.5C7 6.91 9.91 4 13.5 4S20 6.91 20 10.5Z\";\nexport var mdiArrowUDownLeftBold = \"M21 10.5V18H17V10.5C17 8.57 15.43 7 13.5 7S10 8.57 10 10.5V13H14L8 20L2 13H6V10.5C6 6.36 9.36 3 13.5 3S21 6.36 21 10.5Z\";\nexport var mdiArrowUDownRight = \"M21.5 14.5L16 20L10.5 14.5L11.91 13.09L15 16.17V10.5C15 8 13 6 10.5 6S6 8 6 10.5V18H4V10.5C4 6.91 6.91 4 10.5 4S17 6.91 17 10.5V16.17L20.09 13.08L21.5 14.5Z\";\nexport var mdiArrowUDownRightBold = \"M10.5 3C14.64 3 18 6.36 18 10.5V13H22L16 20L10 13H14V10.5C14 8.57 12.43 7 10.5 7S7 8.57 7 10.5V18H3V10.5C3 6.36 6.36 3 10.5 3Z\";\nexport var mdiArrowULeftBottom = \"M20 10.5C20 14.09 17.09 17 13.5 17H7.83L10.92 20.09L9.5 21.5L4 16L9.5 10.5L10.91 11.91L7.83 15H13.5C16 15 18 13 18 10.5S16 6 13.5 6H6V4H13.5C17.09 4 20 6.91 20 10.5Z\";\nexport var mdiArrowULeftBottomBold = \"M21 10.5C21 14.64 17.64 18 13.5 18H11V22L4 16L11 10V14H13.5C15.43 14 17 12.43 17 10.5S15.43 7 13.5 7H6V3H13.5C17.64 3 21 6.36 21 10.5Z\";\nexport var mdiArrowULeftTop = \"M20 13.5C20 17.09 17.09 20 13.5 20H6V18H13.5C16 18 18 16 18 13.5S16 9 13.5 9H7.83L10.91 12.09L9.5 13.5L4 8L9.5 2.5L10.92 3.91L7.83 7H13.5C17.09 7 20 9.91 20 13.5Z\";\nexport var mdiArrowULeftTopBold = \"M13.5 21H6V17H13.5C15.43 17 17 15.43 17 13.5S15.43 10 13.5 10H11V14L4 8L11 2V6H13.5C17.64 6 21 9.36 21 13.5S17.64 21 13.5 21Z\";\nexport var mdiArrowURightBottom = \"M20 16L14.5 21.5L13.08 20.09L16.17 17H10.5C6.91 17 4 14.09 4 10.5S6.91 4 10.5 4H18V6H10.5C8 6 6 8 6 10.5S8 15 10.5 15H16.17L13.09 11.91L14.5 10.5L20 16Z\";\nexport var mdiArrowURightBottomBold = \"M10.5 3H18V7H10.5C8.57 7 7 8.57 7 10.5S8.57 14 10.5 14H13V10L20 16L13 22V18H10.5C6.36 18 3 14.64 3 10.5S6.36 3 10.5 3Z\";\nexport var mdiArrowURightTop = \"M10.5 18H18V20H10.5C6.91 20 4 17.09 4 13.5S6.91 7 10.5 7H16.17L13.08 3.91L14.5 2.5L20 8L14.5 13.5L13.09 12.09L16.17 9H10.5C8 9 6 11 6 13.5S8 18 10.5 18Z\";\nexport var mdiArrowURightTopBold = \"M3 13.5C3 9.36 6.36 6 10.5 6H13V2L20 8L13 14V10H10.5C8.57 10 7 11.57 7 13.5S8.57 17 10.5 17H18V21H10.5C6.36 21 3 17.64 3 13.5Z\";\nexport var mdiArrowUUpLeft = \"M20 6V13.5C20 17.09 17.09 20 13.5 20S7 17.09 7 13.5V7.83L3.91 10.92L2.5 9.5L8 4L13.5 9.5L12.09 10.91L9 7.83V13.5C9 16 11 18 13.5 18S18 16 18 13.5V6H20Z\";\nexport var mdiArrowUUpLeftBold = \"M13.5 21C9.36 21 6 17.64 6 13.5V11H2L8 4L14 11H10V13.5C10 15.43 11.57 17 13.5 17S17 15.43 17 13.5V6H21V13.5C21 17.64 17.64 21 13.5 21Z\";\nexport var mdiArrowUUpRight = \"M21.5 9.5L20.09 10.92L17 7.83V13.5C17 17.09 14.09 20 10.5 20S4 17.09 4 13.5V6H6V13.5C6 16 8 18 10.5 18S15 16 15 13.5V7.83L11.91 10.91L10.5 9.5L16 4L21.5 9.5Z\";\nexport var mdiArrowUUpRightBold = \"M3 13.5V6H7V13.5C7 15.43 8.57 17 10.5 17S14 15.43 14 13.5V11H10L16 4L22 11H18V13.5C18 17.64 14.64 21 10.5 21S3 17.64 3 13.5Z\";\nexport var mdiArrowUp = \"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\";\nexport var mdiArrowUpBold = \"M15,20H9V12H4.16L12,4.16L19.84,12H15V20Z\";\nexport var mdiArrowUpBoldBox = \"M19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21M12,7L7,12H10V16H14V12H17L12,7Z\";\nexport var mdiArrowUpBoldBoxOutline = \"M12,7L17,12H14V16H10V12H7L12,7M19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21M19,19V5H5V19H19Z\";\nexport var mdiArrowUpBoldCircle = \"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,7L7,12H10V16H14V12H17L12,7Z\";\nexport var mdiArrowUpBoldCircleOutline = \"M12,7L17,12H14V16H10V12H7L12,7M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20Z\";\nexport var mdiArrowUpBoldHexagonOutline = \"M12,7L17,12H14V16H10V12H7L12,7M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiArrowUpBoldOutline = \"M16,13V21H8V13H2L12,3L22,13H16M7,11H10V19H14V11H17L12,6L7,11Z\";\nexport var mdiArrowUpBox = \"M21,19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19C20.11,3 21,3.9 21,5V19M13,18V9.5L16.5,13L17.92,11.58L12,5.66L6.08,11.58L7.5,13L11,9.5V18H13Z\";\nexport var mdiArrowUpCircle = \"M13,18V10L16.5,13.5L17.92,12.08L12,6.16L6.08,12.08L7.5,13.5L11,10V18H13M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiArrowUpCircleOutline = \"M13,18H11V10L7.5,13.5L6.08,12.08L12,6.16L17.92,12.08L16.5,13.5L13,10V18M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiArrowUpDown = \"M17.45,17.55L12,23L6.55,17.55L7.96,16.14L11,19.17V4.83L7.96,7.86L6.55,6.45L12,1L17.45,6.45L16.04,7.86L13,4.83V19.17L16.04,16.14L17.45,17.55Z\";\nexport var mdiArrowUpDownBold = \"M10,8H6L12,2L18,8H14V16H18L12,22L6,16H10V8Z\";\nexport var mdiArrowUpDownBoldOutline = \"M16,10H22L12,0L2,10H8V14H2L12,24L22,14H16V10M14,16H17L12,21L7,16H10V8H7L12,3L17,8H14V16Z\";\nexport var mdiArrowUpDropCircle = \"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M17,14L12,9L7,14H17Z\";\nexport var mdiArrowUpDropCircleOutline = \"M12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M17,14L12,9L7,14H17Z\";\nexport var mdiArrowUpLeft = \"M20 18V20H13.5C9.91 20 7 17.09 7 13.5V7.83L3.91 10.92L2.5 9.5L8 4L13.5 9.5L12.09 10.91L9 7.83V13.5C9 16 11 18 13.5 18H20Z\";\nexport var mdiArrowUpLeftBold = \"M13.5 21C9.36 21 6 17.64 6 13.5V11H2L8 4L14 11H10V13.5C10 15.43 11.57 17 13.5 17H21V21H13.5Z\";\nexport var mdiArrowUpRight = \"M21.5 9.5L20.09 10.92L17 7.83V13.5C17 17.09 14.09 20 10.5 20H4V18H10.5C13 18 15 16 15 13.5V7.83L11.91 10.91L10.5 9.5L16 4L21.5 9.5Z\";\nexport var mdiArrowUpRightBold = \"M3 21V17H10.5C12.43 17 14 15.43 14 13.5V11H10L16 4L22 11H18V13.5C18 17.64 14.64 21 10.5 21H3Z\";\nexport var mdiArrowUpThick = \"M14,20H10V11L6.5,14.5L4.08,12.08L12,4.16L19.92,12.08L17.5,14.5L14,11V20Z\";\nexport var mdiArrowUpThin = \"M7.03 9.97H11.03V18.89L13.04 18.92V9.97H17.03L12.03 4.97Z\";\nexport var mdiArrowUpThinCircleOutline = \"M12 3.97C7.59 3.97 3.97 7.59 3.97 12C3.97 16.41 7.59 20.03 12 20.03C16.41 20.03 20.03 16.41 20.03 12C20.03 7.59 16.41 3.97 12 3.97M12 2C17.54 2 22 6.46 22 12C22 17.54 17.54 22 12 22C6.46 22 2 17.54 2 12C2 6.46 6.46 2 12 2M13 10.46H16L12 6.5L8 10.46H11V17.5H13\";\nexport var mdiArrowVerticalLock = \"M18.8 11V9.5C18.8 8.1 17.4 7 16 7S13.2 8.1 13.2 9.5V11C12.6 11 12 11.6 12 12.2V15.7C12 16.4 12.6 17 13.2 17H18.7C19.4 17 20 16.4 20 15.8V12.3C20 11.6 19.4 11 18.8 11M17.5 11H14.5V9.5C14.5 8.7 15.2 8.2 16 8.2C16.8 8.2 17.5 8.7 17.5 9.5V11M9 6H12L8 2L4 6H7V18H4L8 22L12 18H9V6Z\";\nexport var mdiArtboard = \"M17 9V15H7V9H17M19 3H17V6H19V3M7 3H5V6H7V3M23 7H20V9H23V7M19 7H5V17H19V7M4 7H1V9H4V7M23 15H20V17H23V15M4 15H1V17H4V15M19 18H17V21H19V18M7 18H5V21H7V18Z\";\nexport var mdiArtstation = \"M1.77,16.88L3.5,19.86C3.84,20.54 4.54,21 5.33,21H16.79L14.43,16.88H1.77M22.23,16.9C22.23,16.5 22.11,16.11 21.9,15.78L15.17,4.1C14.82,3.44 14.15,3 13.35,3H9.8L20.18,21L21.82,18.14C22.13,17.6 22.23,17.36 22.23,16.9M12.73,13.94L8.1,5.92L3.45,13.94H12.73Z\";\nexport var mdiAspectRatio = \"M19,12H17V15H14V17H19V12M7,9H10V7H5V12H7V9M21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3M21,19H3V5H21V19Z\";\nexport var mdiAssistant = \"M19,2H5A2,2 0 0,0 3,4V18A2,2 0 0,0 5,20H9L12,23L15,20H19A2,2 0 0,0 21,18V4A2,2 0 0,0 19,2M13.88,12.88L12,17L10.12,12.88L6,11L10.12,9.12L12,5L13.88,9.12L18,11\";\nexport var mdiAsterisk = \"M21 13H14.4L19.1 17.7L17.7 19.1L13 14.4V21H11V14.3L6.3 19L4.9 17.6L9.4 13H3V11H9.6L4.9 6.3L6.3 4.9L11 9.6V3H13V9.4L17.6 4.8L19 6.3L14.3 11H21V13Z\";\nexport var mdiAsteriskCircleOutline = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M12 20C7.61 20 4 16.39 4 12C4 7.61 7.61 4 12 4C16.39 4 20 7.61 20 12C20 16.39 16.39 20 12 20M13 10.27L15.83 8.63L16.83 10.37L14 12L16.83 13.63L15.83 15.37L13 13.73V17H11V13.73L8.17 15.37L7.17 13.63L10 12L7.17 10.37L8.17 8.63L11 10.27V7H13V10.27Z\";\nexport var mdiAt = \"M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z\";\nexport var mdiAtlassian = \"M7.93,11.24C7.74,11 7.38,10.94 7.13,11.13C7.06,11.19 7,11.26 6.96,11.34L2.06,21.15C1.91,21.44 2.03,21.79 2.32,21.94C2.4,22 2.5,22 2.59,22H9.41C9.63,22 9.84,21.88 9.94,21.68C11.41,18.63 10.5,14 7.93,11.24M11.53,2.31C9.05,6.14 8.76,11 10.77,15.09L14.06,21.68C14.17,21.88 14.37,22 14.59,22H21.41A0.59,0.59 0 0,0 22,21.41C22,21.32 22,21.23 21.94,21.15C21.94,21.15 12.76,2.77 12.5,2.31C12.39,2.04 12.06,1.92 11.78,2.06C11.67,2.11 11.58,2.2 11.53,2.31Z\";\nexport var mdiAtm = \"M8,9V10.5H10.25V15H11.75V10.5H14V9H8M6,9H3A1,1 0 0,0 2,10V15H3.5V13.5H5.5V15H7V10A1,1 0 0,0 6,9M5.5,12H3.5V10.5H5.5V12M21,9H16.5A1,1 0 0,0 15.5,10V15H17V10.5H18V14H19.5V10.5H20.5V15H22V10A1,1 0 0,0 21,9Z\";\nexport var mdiAtom = \"M12,11A1,1 0 0,1 13,12A1,1 0 0,1 12,13A1,1 0 0,1 11,12A1,1 0 0,1 12,11M4.22,4.22C5.65,2.79 8.75,3.43 12,5.56C15.25,3.43 18.35,2.79 19.78,4.22C21.21,5.65 20.57,8.75 18.44,12C20.57,15.25 21.21,18.35 19.78,19.78C18.35,21.21 15.25,20.57 12,18.44C8.75,20.57 5.65,21.21 4.22,19.78C2.79,18.35 3.43,15.25 5.56,12C3.43,8.75 2.79,5.65 4.22,4.22M15.54,8.46C16.15,9.08 16.71,9.71 17.23,10.34C18.61,8.21 19.11,6.38 18.36,5.64C17.62,4.89 15.79,5.39 13.66,6.77C14.29,7.29 14.92,7.85 15.54,8.46M8.46,15.54C7.85,14.92 7.29,14.29 6.77,13.66C5.39,15.79 4.89,17.62 5.64,18.36C6.38,19.11 8.21,18.61 10.34,17.23C9.71,16.71 9.08,16.15 8.46,15.54M5.64,5.64C4.89,6.38 5.39,8.21 6.77,10.34C7.29,9.71 7.85,9.08 8.46,8.46C9.08,7.85 9.71,7.29 10.34,6.77C8.21,5.39 6.38,4.89 5.64,5.64M9.88,14.12C10.58,14.82 11.3,15.46 12,16.03C12.7,15.46 13.42,14.82 14.12,14.12C14.82,13.42 15.46,12.7 16.03,12C15.46,11.3 14.82,10.58 14.12,9.88C13.42,9.18 12.7,8.54 12,7.97C11.3,8.54 10.58,9.18 9.88,9.88C9.18,10.58 8.54,11.3 7.97,12C8.54,12.7 9.18,13.42 9.88,14.12M18.36,18.36C19.11,17.62 18.61,15.79 17.23,13.66C16.71,14.29 16.15,14.92 15.54,15.54C14.92,16.15 14.29,16.71 13.66,17.23C15.79,18.61 17.62,19.11 18.36,18.36Z\";\nexport var mdiAtomVariant = \"M18.36,2.64C20,2.64 21.36,4 21.36,5.64C21.36,7.29 20,8.64 18.36,8.64C16.71,8.64 15.36,7.29 15.36,5.64C15.36,5.34 15.41,5.06 15.5,4.8C14.43,4.29 13.25,4 12,4A8,8 0 0,0 4,12L4.04,12.84L2.05,13.05L2,12A10,10 0 0,1 12,2C13.69,2 15.28,2.42 16.67,3.16C17.16,2.83 17.74,2.64 18.36,2.64M18.36,4.64A1,1 0 0,0 17.36,5.64A1,1 0 0,0 18.36,6.64C18.92,6.64 19.36,6.19 19.36,5.64C19.36,5.08 18.92,4.64 18.36,4.64M5.64,15.36C7.29,15.36 8.64,16.71 8.64,18.36C8.64,18.66 8.59,18.94 8.5,19.2C9.57,19.71 10.75,20 12,20A8,8 0 0,0 20,12L19.96,11.16L21.95,10.95L22,12A10,10 0 0,1 12,22C10.31,22 8.72,21.58 7.33,20.84C6.84,21.17 6.26,21.36 5.64,21.36C4,21.36 2.64,20 2.64,18.36C2.64,16.71 4,15.36 5.64,15.36M5.64,17.36C5.08,17.36 4.64,17.81 4.64,18.36C4.64,18.92 5.08,19.36 5.64,19.36A1,1 0 0,0 6.64,18.36A1,1 0 0,0 5.64,17.36M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8Z\";\nexport var mdiAttachment = \"M7.5,18A5.5,5.5 0 0,1 2,12.5A5.5,5.5 0 0,1 7.5,7H18A4,4 0 0,1 22,11A4,4 0 0,1 18,15H9.5A2.5,2.5 0 0,1 7,12.5A2.5,2.5 0 0,1 9.5,10H17V11.5H9.5A1,1 0 0,0 8.5,12.5A1,1 0 0,0 9.5,13.5H18A2.5,2.5 0 0,0 20.5,11A2.5,2.5 0 0,0 18,8.5H7.5A4,4 0 0,0 3.5,12.5A4,4 0 0,0 7.5,16.5H17V18H7.5Z\";\nexport var mdiAttachmentCheck = \"M16.61 13.5C15.81 13.85 15.11 14.36 14.54 15H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17V11.5H9.5C8.95 11.5 8.5 11.95 8.5 12.5S8.95 13.5 9.5 13.5H16.61M3.5 12.5C3.5 10.29 5.29 8.5 7.5 8.5H18C19.38 8.5 20.5 9.62 20.5 11C20.5 11.84 20.08 12.58 19.45 13.03C20.05 13.07 20.63 13.2 21.17 13.41C21.69 12.74 22 11.91 22 11C22 8.79 20.21 7 18 7H7.5C4.46 7 2 9.46 2 12.5S4.46 18 7.5 18H13.09C13.18 17.47 13.34 16.97 13.55 16.5H7.5C5.29 16.5 3.5 14.71 3.5 12.5M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiAttachmentLock = \"M18 13C16.6 13 15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17V15.5C20.8 14.1 19.4 13 18 13M18 14.2C18.8 14.2 19.5 14.7 19.5 15.5V17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2M7.5 5C4.5 5 2 7.5 2 10.5S4.5 16 7.5 16H13.2V15.5C13.2 15.2 13.2 14.8 13.3 14.5H7.5C5.3 14.5 3.5 12.7 3.5 10.5S5.3 6.5 7.5 6.5H18C19.4 6.5 20.5 7.6 20.5 9C20.5 9.9 20 10.7 19.2 11.2C19.8 11.3 20.3 11.6 20.8 11.9C21.6 11.1 22 10.1 22 9C22 6.8 20.2 5 18 5H7.5M9.5 8C8.1 8 7 9.1 7 10.5S8.1 13 9.5 13H14C14.5 12.3 15.1 11.8 15.8 11.5H9.5C8.9 11.5 8.5 11.1 8.5 10.5S8.9 9.5 9.5 9.5H17V8H9.5Z\";\nexport var mdiAttachmentMinus = \"M16.61 13.5C15.81 13.85 15.11 14.36 14.54 15H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17V11.5H9.5C8.95 11.5 8.5 11.95 8.5 12.5S8.95 13.5 9.5 13.5H16.61M3.5 12.5C3.5 10.29 5.29 8.5 7.5 8.5H18C19.38 8.5 20.5 9.62 20.5 11C20.5 11.84 20.08 12.58 19.45 13.03C20.05 13.07 20.63 13.2 21.17 13.41C21.69 12.74 22 11.91 22 11C22 8.79 20.21 7 18 7H7.5C4.46 7 2 9.46 2 12.5S4.46 18 7.5 18H13.09C13.18 17.47 13.34 16.97 13.55 16.5H7.5C5.29 16.5 3.5 14.71 3.5 12.5M15 18V20H23V18H15Z\";\nexport var mdiAttachmentOff = \"M17 10V11.5H14.7L13.2 10H17M18 8.5C19.38 8.5 20.5 9.62 20.5 11S19.38 13.5 18 13.5H16.7L18.18 15C20.31 14.89 22 13.15 22 11C22 8.79 20.21 7 18 7H10.2L11.7 8.5H18M22.11 21.46L20.84 22.73L16.11 18H7.5C4.46 18 2 15.54 2 12.5C2 10.17 3.45 8.19 5.5 7.38L1.11 3L2.39 1.73L22.11 21.46M8.5 12.5C8.5 13.05 8.95 13.5 9.5 13.5H11.61L9.61 11.5H9.5C8.95 11.5 8.5 11.95 8.5 12.5M14.61 16.5L13.11 15H9.5C8.12 15 7 13.88 7 12.5C7 11.5 7.57 10.69 8.38 10.27L6.69 8.58C4.87 8.96 3.5 10.57 3.5 12.5C3.5 14.71 5.29 16.5 7.5 16.5H14.61Z\";\nexport var mdiAttachmentPlus = \"M7.5 16.5H13.55C13.34 16.97 13.18 17.47 13.09 18H7.5C4.46 18 2 15.54 2 12.5S4.46 7 7.5 7H18C20.21 7 22 8.79 22 11C22 11.91 21.69 12.74 21.17 13.41C20.63 13.2 20.05 13.07 19.45 13.03C20.08 12.58 20.5 11.84 20.5 11C20.5 9.62 19.38 8.5 18 8.5H7.5C5.29 8.5 3.5 10.29 3.5 12.5S5.29 16.5 7.5 16.5M9.5 13.5C8.95 13.5 8.5 13.05 8.5 12.5S8.95 11.5 9.5 11.5H17V10H9.5C8.12 10 7 11.12 7 12.5S8.12 15 9.5 15H14.54C15.11 14.36 15.81 13.85 16.61 13.5H9.5M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiAttachmentRemove = \"M16.61 13.5C15.81 13.85 15.11 14.36 14.54 15H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17V11.5H9.5C8.95 11.5 8.5 11.95 8.5 12.5S8.95 13.5 9.5 13.5H16.61M3.5 12.5C3.5 10.29 5.29 8.5 7.5 8.5H18C19.38 8.5 20.5 9.62 20.5 11C20.5 11.84 20.08 12.58 19.45 13.03C20.05 13.07 20.63 13.2 21.17 13.41C21.69 12.74 22 11.91 22 11C22 8.79 20.21 7 18 7H7.5C4.46 7 2 9.46 2 12.5S4.46 18 7.5 18H13.09C13.18 17.47 13.34 16.97 13.55 16.5H7.5C5.29 16.5 3.5 14.71 3.5 12.5M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiAtv = \"M20 11C19.8 11 19.6 11 19.5 11.1L17.4 9H20V6L16.3 7.9L13.4 5H9V7H12.6L14.6 9H11L7 11L5 9H0V11H4C1.8 11 0 12.8 0 15S1.8 19 4 19 8 17.2 8 15L10 17H13L16.5 10.9L17.5 11.9C16.6 12.6 16 13.8 16 15C16 17.2 17.8 19 20 19S24 17.2 24 15 22.2 11 20 11M4 17C2.9 17 2 16.1 2 15S2.9 13 4 13 6 13.9 6 15 5.1 17 4 17M20 17C18.9 17 18 16.1 18 15S18.9 13 20 13 22 13.9 22 15 21.1 17 20 17Z\";\nexport var mdiAudioInputRca = \"M11 6V12H5V6H7V2C7 1.45 7.45 1 8 1S9 1.45 9 2V6H11M5 14V16C5 17.3 5.84 18.4 7 18.82V23H9V18.82C10.16 18.4 11 17.3 11 16V14H5M17 6V2C17 1.45 16.55 1 16 1S15 1.45 15 2V6H13V12H19V6H17M13 14V16C13 17.3 13.84 18.4 15 18.82V23H17V18.82C18.16 18.4 19 17.3 19 16V14H13Z\";\nexport var mdiAudioInputStereoMinijack = \"M11 4V3C11 2.45 11.45 2 12 2S13 2.45 13 3V4H11M13 9V5H11V9H9V15C9 16.3 9.84 17.4 11 17.82V22H13V17.82C14.16 17.4 15 16.3 15 15V9H13Z\";\nexport var mdiAudioInputXlr = \"M12 4C16.41 4 20 7.59 20 12S16.41 20 12 20 4 16.41 4 12 7.59 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M13.5 16.5C13.5 15.67 12.83 15 12 15S10.5 15.67 10.5 16.5C10.5 17.33 11.17 18 12 18S13.5 17.33 13.5 16.5M9 12C9 11.17 8.33 10.5 7.5 10.5S6 11.17 6 12 6.67 13.5 7.5 13.5 9 12.83 9 12M18 12C18 11.17 17.33 10.5 16.5 10.5C15.67 10.5 15 11.17 15 12S15.67 13.5 16.5 13.5C17.33 13.5 18 12.83 18 12Z\";\nexport var mdiAudioVideo = \"M20,7H4A2,2 0 0,0 2,9V15A2,2 0 0,0 4,17H5V18C5,18.6 5.4,19 6,19H8C8.6,19 9,18.6 9,18V17H15V18C15,18.6 15.4,19 16,19H18C18.6,19 19,18.6 19,18V17H20A2,2 0 0,0 22,15V9A2,2 0 0,0 20,7M14,12H4V10H14V12M18,13A2,2 0 0,1 16,11A2,2 0 0,1 18,9A2,2 0 0,1 20,11A2,2 0 0,1 18,13M6,15H4V14H6V15M10,15H8V14H10V15M14,15H12V14H14V15Z\";\nexport var mdiAudioVideoOff = \"M22.1 21.5L2.4 1.7L1.1 3L5.1 7H4C2.9 7 2 7.9 2 9V15C2 16.1 2.9 17 4 17H5V18C5 18.6 5.4 19 6 19H8C8.6 19 9 18.6 9 18V17H15V18C15 18.6 15.4 19 16 19H17.1L20.8 22.7L22.1 21.5M6 15H4V14H6V15M4 12V10H8.1L10.1 12H4M10 15H8V14H10V15M12 15V14H12.1L13.1 15H12M14 10V10.8L20.2 17C21.2 16.9 22 16.1 22 15V9C22 7.9 21.1 7 20 7H10.2L13.2 10H14M18 9C19.1 9 20 9.9 20 11S19.1 13 18 13 16 12.1 16 11 16.9 9 18 9Z\";\nexport var mdiAugmentedReality = \"M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M7,9H10C10.6,9 11,9.5 11,10V15H9.5V13.5H7.5V15H6V10C6,9.5 6.4,9 7,9M13,9H16.5C17.35,9 18,9.65 18,10.5V11.5C18,12.1 17.6,12.65 17.1,12.9L18,15H16.5L15.65,13H14.5V15H13V9M7.5,10.5V12H9.5V10.5H7.5M14.5,10.5V11.5H16.5V10.5H14.5\";\nexport var mdiAurora = \"M2 3C2.55 3 3 3.45 3 4V13H5V5C5 4.45 5.45 4 6 4C6.55 4 7 4.45 7 5V13H9V6C9 5.45 9.45 5 10 5C10.55 5 11 5.45 11 6V13H12.5C12.67 13 12.84 13 13 13.05V7C13 6.45 13.45 6 14 6C14.55 6 15 6.45 15 7V15.5C15 16.88 13.88 18 12.5 18H11.5C11.22 18 11 18.22 11 18.5C11 18.78 11.22 19 11.5 19H17V8C17 7.45 17.45 7 18 7C18.55 7 19 7.45 19 8V19H21V9C21 8.45 21.45 8 22 8C22.55 8 23 8.45 23 9V20C23 20.55 22.55 21 22 21H11.5C10.12 21 9 19.88 9 18.5C9 17.12 10.12 16 11.5 16H12.5C12.78 16 13 15.78 13 15.5C13 15.22 12.78 15 12.5 15H2C1.45 15 1 14.55 1 14V4C1 3.45 1.45 3 2 3Z\";\nexport var mdiAutoDownload = \"M22 17V19H11V17H22M19 4.5V9.5H22L16.5 15L11 9.5H14V4.5H19M10.7 15H8.8L8.1 13H4.9L4.2 15H2.3L5.5 6H7.5L10.7 15M7.65 11.65L6.5 8L5.35 11.65H7.65Z\";\nexport var mdiAutoFix = \"M7.5,5.6L5,7L6.4,4.5L5,2L7.5,3.4L10,2L8.6,4.5L10,7L7.5,5.6M19.5,15.4L22,14L20.6,16.5L22,19L19.5,17.6L17,19L18.4,16.5L17,14L19.5,15.4M22,2L20.6,4.5L22,7L19.5,5.6L17,7L18.4,4.5L17,2L19.5,3.4L22,2M13.34,12.78L15.78,10.34L13.66,8.22L11.22,10.66L13.34,12.78M14.37,7.29L16.71,9.63C17.1,10 17.1,10.65 16.71,11.04L5.04,22.71C4.65,23.1 4,23.1 3.63,22.71L1.29,20.37C0.9,20 0.9,19.35 1.29,18.96L12.96,7.29C13.35,6.9 14,6.9 14.37,7.29Z\";\nexport var mdiAutoMode = \"M19.8 5.67C21.05 7.19 21.82 9.04 22 11H19.94C19.74 9.57 19.16 8.22 18.26 7.1L19.8 5.67M13 2.05C14.96 2.24 16.81 3 18.33 4.26L16.9 5.69C15.77 4.8 14.42 4.24 13 4.05V2.05M11 2.06C9.04 2.26 7.19 3.03 5.67 4.27L7.1 5.69C8.23 4.81 9.58 4.24 11 4.06V2.06M4.26 5.67L5.63 7.06V7.1C4.75 8.23 4.18 9.58 4 11H2C2.21 9.04 3 7.18 4.26 5.67M2 14V19L3.6 17.4C5.38 20.17 8.47 22 12 22C16.82 22 20.87 18.55 21.8 14H19.75C18.86 17.45 15.72 20 12 20C9.05 20 6.39 18.39 5 16L7 14H2M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17Z\";\nexport var mdiAutoUpload = \"M5.35,12.65L6.5,9L7.65,12.65M5.5,7L2.3,16H4.2L4.9,14H8.1L8.8,16H10.7L7.5,7M11,20H22V18H11M14,16H19V11H22L16.5,5.5L11,11H14V16Z\";\nexport var mdiAutorenew = \"M12,6V9L16,5L12,1V4A8,8 0 0,0 4,12C4,13.57 4.46,15.03 5.24,16.26L6.7,14.8C6.25,13.97 6,13 6,12A6,6 0 0,1 12,6M18.76,7.74L17.3,9.2C17.74,10.04 18,11 18,12A6,6 0 0,1 12,18V15L8,19L12,23V20A8,8 0 0,0 20,12C20,10.43 19.54,8.97 18.76,7.74Z\";\nexport var mdiAutorenewOff = \"M18 12C18 11 17.74 10.04 17.3 9.2L18.76 7.74C19.54 8.97 20 10.43 20 12C20 13.39 19.64 14.68 19 15.82L17.5 14.32C17.82 13.6 18 12.83 18 12M2.39 1.73L1.11 3L5.5 7.37C4.55 8.68 4 10.27 4 12C4 13.57 4.46 15.03 5.24 16.26L6.7 14.8C6.25 13.97 6 13 6 12C6 10.83 6.34 9.74 6.92 8.81L15.19 17.08C14.26 17.66 13.17 18 12 18V15L8 19L12 23V20C13.73 20 15.32 19.45 16.63 18.5L20.84 22.73L22.11 21.46L2.39 1.73M12 6V8.8L12.1 8.9L16 5L12 1V4C10.62 4 9.32 4.36 8.18 5L9.68 6.5C10.4 6.18 11.18 6 12 6Z\";\nexport var mdiAvTimer = \"M11,17A1,1 0 0,0 12,18A1,1 0 0,0 13,17A1,1 0 0,0 12,16A1,1 0 0,0 11,17M11,3V7H13V5.08C16.39,5.57 19,8.47 19,12A7,7 0 0,1 12,19A7,7 0 0,1 5,12C5,10.32 5.59,8.78 6.58,7.58L12,13L13.41,11.59L6.61,4.79V4.81C4.42,6.45 3,9.05 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M18,12A1,1 0 0,0 17,11A1,1 0 0,0 16,12A1,1 0 0,0 17,13A1,1 0 0,0 18,12M6,12A1,1 0 0,0 7,13A1,1 0 0,0 8,12A1,1 0 0,0 7,11A1,1 0 0,0 6,12Z\";\nexport var mdiAwning = \"M5.06 7C4.63 7 4.22 7.14 3.84 7.42C3.46 7.7 3.24 8.06 3.14 8.5L2.11 12.91C1.86 14 2.06 14.92 2.69 15.73C2.81 15.85 2.93 15.97 3.04 16.07C3.63 16.64 4.28 17 5.22 17C6.16 17 6.91 16.59 7.47 16.05C8.1 16.67 8.86 17 9.8 17C10.64 17 11.44 16.63 12 16.07C12.68 16.7 13.45 17 14.3 17C15.17 17 15.91 16.67 16.54 16.05C17.11 16.62 17.86 17 18.81 17C19.76 17 20.43 16.65 21 16.06C21.09 15.97 21.18 15.87 21.28 15.77C21.94 14.95 22.14 14 21.89 12.91L20.86 8.5C20.73 8.06 20.5 7.7 20.13 7.42C19.77 7.14 19.38 7 18.94 7H5.06Z\";\nexport var mdiAwningOutline = \"M5.06 7C4.63 7 4.22 7.14 3.84 7.42C3.46 7.7 3.24 8.06 3.14 8.5L2.11 12.91C1.86 14 2.06 14.92 2.69 15.73C2.81 15.85 2.93 15.97 3.04 16.07C3.63 16.64 4.28 17 5.22 17C6.16 17 6.91 16.59 7.47 16.05C8.1 16.67 8.86 17 9.8 17C10.64 17 11.44 16.63 12 16.07C12.68 16.7 13.45 17 14.3 17C15.17 17 15.91 16.67 16.54 16.05C17.11 16.62 17.86 17 18.81 17C19.76 17 20.43 16.65 21 16.06C21.09 15.97 21.18 15.87 21.28 15.77C21.94 14.95 22.14 14 21.89 12.91L20.86 8.5C20.73 8.06 20.5 7.7 20.13 7.42C19.77 7.14 19.38 7 18.94 7H5.06M18.89 8.97L19.97 13.38C20.06 13.81 19.97 14.2 19.69 14.55C19.44 14.86 19.13 15 18.75 15C18.44 15 18.17 14.9 17.95 14.66C17.73 14.43 17.61 14.16 17.58 13.84L16.97 9L18.89 8.97M5.06 9H7.03L6.42 13.84C6.3 14.63 5.91 15 5.25 15C4.84 15 4.53 14.86 4.31 14.55C4.03 14.2 3.94 13.81 4.03 13.38L5.06 9M9.05 9H11V13.7C11 14.05 10.89 14.35 10.64 14.62C10.39 14.88 10.08 15 9.7 15C9.36 15 9.07 14.88 8.84 14.59C8.61 14.3 8.5 14 8.5 13.66V13.5L9.05 9M13 9H14.95L15.5 13.5C15.58 13.92 15.5 14.27 15.21 14.57C14.95 14.87 14.61 15 14.2 15C13.89 15 13.61 14.88 13.36 14.62C13.11 14.35 13 14.05 13 13.7V9Z\";\nexport var mdiAws = \"M7.64,10.38C7.64,10.63 7.66,10.83 7.71,11C7.76,11.12 7.83,11.28 7.92,11.46C7.96,11.5 7.97,11.56 7.97,11.61C7.97,11.68 7.93,11.74 7.84,11.81L7.42,12.09C7.36,12.13 7.3,12.15 7.25,12.15C7.18,12.15 7.12,12.11 7.05,12.05C6.96,11.95 6.88,11.85 6.81,11.74C6.75,11.63 6.68,11.5 6.61,11.35C6.09,11.96 5.44,12.27 4.65,12.27C4.09,12.27 3.65,12.11 3.32,11.79C3,11.47 2.83,11.04 2.83,10.5C2.83,9.95 3.03,9.5 3.43,9.14C3.84,8.8 4.38,8.62 5.06,8.62C5.29,8.62 5.5,8.64 5.77,8.68C6,8.71 6.27,8.76 6.53,8.82V8.34C6.53,7.83 6.43,7.5 6.22,7.27C6,7.06 5.65,6.97 5.14,6.97C4.9,6.97 4.66,7 4.42,7.05C4.17,7.11 3.93,7.18 3.7,7.28C3.59,7.32 3.5,7.35 3.47,7.36C3.42,7.38 3.39,7.38 3.36,7.38C3.27,7.38 3.22,7.32 3.22,7.18V6.85C3.22,6.75 3.23,6.67 3.27,6.62C3.3,6.57 3.36,6.53 3.45,6.5C3.69,6.36 3.96,6.26 4.29,6.18C4.62,6.09 4.96,6.05 5.33,6.05C6.12,6.05 6.7,6.23 7.07,6.59C7.44,6.95 7.62,7.5 7.62,8.23V10.38H7.64M4.94,11.4C5.16,11.4 5.38,11.36 5.62,11.28C5.86,11.2 6.07,11.05 6.25,10.85C6.36,10.72 6.44,10.58 6.5,10.42C6.5,10.26 6.55,10.07 6.55,9.84V9.57C6.35,9.5 6.15,9.5 5.93,9.45C5.72,9.43 5.5,9.41 5.31,9.41C4.86,9.41 4.54,9.5 4.32,9.68C4.1,9.86 4,10.11 4,10.44C4,10.76 4.07,11 4.24,11.15C4.4,11.32 4.63,11.4 4.94,11.4M10.28,12.11C10.16,12.11 10.08,12.09 10,12.05C9.97,12 9.92,11.91 9.88,11.79L8.32,6.65C8.28,6.5 8.26,6.43 8.26,6.38C8.26,6.27 8.31,6.21 8.42,6.21H9.07C9.2,6.21 9.29,6.23 9.33,6.28C9.39,6.32 9.43,6.41 9.47,6.54L10.58,10.94L11.62,6.54C11.65,6.41 11.69,6.32 11.75,6.28C11.8,6.24 11.89,6.21 12,6.21H12.55C12.67,6.21 12.76,6.23 12.81,6.28C12.86,6.32 12.91,6.41 12.94,6.54L14,11L15.14,6.54C15.18,6.41 15.23,6.32 15.27,6.28C15.33,6.24 15.41,6.21 15.53,6.21H16.15C16.26,6.21 16.32,6.27 16.32,6.38C16.32,6.41 16.31,6.45 16.3,6.5C16.3,6.5 16.28,6.58 16.26,6.65L14.65,11.79C14.61,11.93 14.57,12 14.5,12.05C14.46,12.09 14.37,12.12 14.26,12.12H13.69C13.56,12.12 13.5,12.1 13.42,12.05C13.37,12 13.32,11.92 13.3,11.79L12.27,7.5L11.24,11.78C11.21,11.91 11.17,12 11.12,12.05C11.06,12.09 10.97,12.11 10.85,12.11H10.28M18.83,12.29C18.5,12.29 18.13,12.25 17.8,12.17C17.47,12.09 17.21,12 17.04,11.91C16.93,11.85 16.86,11.78 16.83,11.72C16.8,11.66 16.79,11.6 16.79,11.54V11.2C16.79,11.06 16.84,11 16.94,11C17,11 17,11 17.06,11C17.1,11 17.16,11.05 17.23,11.08C17.45,11.18 17.7,11.26 17.96,11.31C18.23,11.36 18.5,11.39 18.75,11.39C19.17,11.39 19.5,11.32 19.72,11.17C19.95,11 20.07,10.81 20.07,10.54C20.07,10.35 20,10.2 19.89,10.07C19.77,9.95 19.54,9.83 19.22,9.73L18.25,9.43C17.77,9.27 17.41,9.05 17.19,8.75C16.97,8.46 16.86,8.13 16.86,7.78C16.86,7.5 16.92,7.26 17.04,7.05C17.16,6.83 17.32,6.65 17.5,6.5C17.72,6.35 17.94,6.24 18.21,6.16C18.47,6.08 18.75,6.04 19.05,6.04C19.19,6.04 19.34,6.05 19.5,6.07C19.64,6.09 19.78,6.12 19.92,6.14C20.06,6.18 20.18,6.21 20.3,6.25C20.42,6.29 20.5,6.33 20.58,6.37C20.67,6.42 20.74,6.47 20.78,6.53C20.82,6.59 20.84,6.66 20.84,6.75V7.07C20.84,7.21 20.79,7.28 20.69,7.28C20.64,7.28 20.55,7.25 20.43,7.2C20.06,7.03 19.63,6.94 19.16,6.94C18.78,6.94 18.5,7 18.27,7.13C18.07,7.25 17.96,7.45 17.96,7.72C17.96,7.91 18.03,8.07 18.16,8.19C18.29,8.32 18.54,8.44 18.89,8.56L19.84,8.86C20.32,9 20.66,9.22 20.87,9.5C21.07,9.77 21.17,10.08 21.17,10.43C21.17,10.71 21.11,10.97 21,11.2C20.88,11.42 20.72,11.62 20.5,11.78C20.31,11.95 20.06,12.07 19.78,12.16C19.5,12.25 19.16,12.29 18.83,12.29M20.08,15.53C17.89,17.14 14.71,18 12,18C8.15,18 4.7,16.58 2.09,14.23C1.88,14.04 2.07,13.79 2.32,13.94C5.14,15.57 8.61,16.56 12.21,16.56C14.64,16.56 17.31,16.06 19.76,15C20.13,14.85 20.44,15.26 20.08,15.53M21,14.5C20.71,14.13 19.14,14.32 18.43,14.4C18.22,14.43 18.19,14.24 18.38,14.1C19.63,13.23 21.69,13.5 21.92,13.77C22.16,14.07 21.86,16.13 20.69,17.11C20.5,17.26 20.33,17.18 20.41,17C20.68,16.32 21.27,14.84 21,14.5Z\";\nexport var mdiAxe = \"M12,2L22,8C22,12 20,14 16,15L13,10L9,6L12,2M4.11,19.84L2.12,18.33L9.19,9L11,10.81L4.11,19.84Z\";\nexport var mdiAxeBattle = \"M21.47 12.43C19.35 14.55 15.82 13.84 15.82 13.84V9.6L3.41 22L2 20.59L14.4 8.18H10.16C10.16 8.18 9.45 4.65 11.57 2.53C13.69 .406 17.23 1.11 17.23 1.11V5.36L17.94 4.65L19.35 6.06L18.64 6.77H22.89C22.89 6.77 23.59 10.31 21.47 12.43Z\";\nexport var mdiAxis = \"M2.61,21L1.61,19.27L11,13.85V3H13V13.85L22.39,19.27L21.39,21L12,15.58L2.61,21Z\";\nexport var mdiAxisArrow = \"M12,2L16,6H13V13.85L19.53,17.61L21,15.03L22.5,20.5L17,21.96L18.53,19.35L12,15.58L5.47,19.35L7,21.96L1.5,20.5L3,15.03L4.47,17.61L11,13.85V6H8L12,2Z\";\nexport var mdiAxisArrowInfo = \"M12 2L16 6H13V13.85L19.53 17.61L21 15.03L22.5 20.5L17 21.96L18.53 19.35L12 15.58L5.47 19.35L7 21.96L1.5 20.5L3 15.03L4.47 17.61L11 13.85V6H8L12 2M21 5H19V3H21V5M22 10V12H18V10H19V8H18V6H21V10H22Z\";\nexport var mdiAxisArrowLock = \"M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.2,2.2 17.5,2.7 17.5,3.5V5H20.5M1.74,19.25L3.21,13.79L4.68,16.34L9,13.85V6H6L10,2L14,6H11V13.85L18.03,17.86L19.5,15.28L21,20.74L15.5,22.21L17.03,19.6L10,15.58L5.68,18.07L7.21,20.71L1.74,19.25Z\";\nexport var mdiAxisLock = \"M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.2,2.2 17.5,2.7 17.5,3.5V5H20.5M11,13.82L20.39,19.25L19.39,21L10,15.56L3.17,19.5L2.17,17.77L9,13.82V3H11V13.82Z\";\nexport var mdiAxisXArrow = \"M1.5,20.5L3,15.03L4.46,17.6L11,13.82V3H13V13.82L22.39,19.25L21.39,21L12,15.56L5.46,19.33L7,21.96L1.5,20.5Z\";\nexport var mdiAxisXArrowLock = \"M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.31,2.2 17.69,2.58 17.54,3.2C17.5,3.29 17.5,3.39 17.5,3.5V5H20.5M1.74,19.25L3.21,13.79L4.67,16.32L9,13.82V3H11V13.82L20.39,19.25L19.39,21L10,15.56L5.67,18.06L7.21,20.71L1.74,19.25Z\";\nexport var mdiAxisXRotateClockwise = \"M12,10H14.91C14.57,6.55 13.4,4 12,4C10.42,4 9.12,7.27 9,11.42L7,12.57V12C7,6.5 9.24,2 12,2C14.42,2 16.44,5.44 16.9,10H20L16,14L12,10M12,22C10.12,22 8.47,19.92 7.62,16.84L9.37,15.83C9.87,18.31 10.86,20 12,20C13.27,20 14.36,17.89 14.79,14.92L16,16.12L16.7,15.42C16,19.26 14.16,22 12,22M2.11,18.87L1.11,17.13L1.06,17.06L11.12,11.25L12.72,12.84L2.15,18.94L2.11,18.87M21.89,5.13L22.89,6.87L19.2,9H17.77L17.5,7.66L21.89,5.13Z\";\nexport var mdiAxisXRotateCounterclockwise = \"M12,14L16,10L20,14H16.9C16.44,18.56 14.42,22 12,22C10.12,22 8.47,19.92 7.62,16.84L9.37,15.83C9.87,18.31 10.86,20 12,20C13.4,20 14.57,17.45 14.91,14H12M1.11,17.13L13.89,9.75L13.96,10.54L10.5,14H10.54L2.11,18.87L1.11,17.13M21.89,5.13L22.89,6.87L17.88,9.76C17.79,9.03 17.67,8.33 17.5,7.66L21.89,5.13M12,2C14.3,2 16.23,5.1 16.82,9.32L16,8.5L14.87,9.63C14.5,6.37 13.35,4 12,4C10.42,4 9.12,7.27 9,11.42L7,12.57V12C7,6.5 9.24,2 12,2Z\";\nexport var mdiAxisXYArrowLock = \"M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.2,2.2 17.5,2.7 17.5,3.5V5H20.5M1.74,19.25L3.21,13.79L4.68,16.34L9,13.85V3H11V13.85L17.53,17.61L19,15.03L20.5,20.5L15,21.96L16.53,19.35L10,15.58L5.68,18.07L7.21,20.71L1.74,19.25Z\";\nexport var mdiAxisYArrow = \"M22.5,20.5L17,21.96L18.53,19.35L12,15.58L2.61,21L1.61,19.27L11,13.85V3H13V13.85L19.53,17.61L21,15.03L22.5,20.5Z\";\nexport var mdiAxisYArrowLock = \"M11,13.82L18,17.88L19.5,15.28L21,20.74L15.5,22.21L17,19.61L10,15.56L3.17,19.5L2.17,17.77L9,13.82V3H11V13.82M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.2,2.2 17.5,2.7 17.5,3.5V5H20.5Z\";\nexport var mdiAxisYRotateClockwise = \"M12,10L16,14L20,10H16.9C16.44,5.44 14.42,2 12,2C10.12,2 8.47,4.08 7.62,7.16L9.37,8.17C9.87,5.69 10.86,4 12,4C13.4,4 14.57,6.55 14.91,10H12M1.11,6.87L13.89,14.25L13.96,13.46L10.5,10H10.54L2.11,5.13L1.11,6.87M21.89,18.87L22.89,17.13L17.88,14.24C17.79,14.97 17.67,15.67 17.5,16.34L21.89,18.87M12,22C14.3,22 16.23,18.9 16.82,14.68L16,15.5L14.87,14.37C14.5,17.63 13.35,20 12,20C10.42,20 9.12,16.73 9,12.58L7,11.43V12C7,17.5 9.24,22 12,22Z\";\nexport var mdiAxisYRotateCounterclockwise = \"M12,14H14.91C14.57,17.45 13.4,20 12,20C10.42,20 9.12,16.73 9,12.58L7,11.43V12C7,17.5 9.24,22 12,22C14.42,22 16.44,18.56 16.9,14H20L16,10L12,14M12,2C10.12,2 8.47,4.08 7.62,7.16L9.37,8.17C9.87,5.69 10.86,4 12,4C13.27,4 14.36,6.11 14.79,9.08L16,7.88L16.7,8.58C16,4.74 14.16,2 12,2M2.11,5.13L1.11,6.87L1.06,6.94L11.12,12.75L12.72,11.16L2.15,5.06L2.11,5.13M21.89,18.87L22.89,17.13L19.2,15H17.77L17.5,16.34L21.89,18.87Z\";\nexport var mdiAxisZArrow = \"M12,2L16,6H13V13.82L22.39,19.25L21.39,21L12,15.56L2.61,21L1.61,19.25L11,13.82V6H8L12,2Z\";\nexport var mdiAxisZArrowLock = \"M21.8,5C22.4,5 23,5.6 23,6.3V9.8C23,10.4 22.4,11 21.7,11H16.2C15.6,11 15,10.4 15,9.7V6.2C15,5.6 15.6,5 16.2,5V3.5C16.2,2.1 17.6,1 19,1C20.4,1 21.8,2.1 21.8,3.5V5M20.5,5V3.5C20.5,2.7 19.8,2.2 19,2.2C18.2,2.2 17.5,2.7 17.5,3.5V5H20.5M10,2L14,6H11V13.82L20.39,19.25L19.39,21L10,15.56L3.17,19.5L2.17,17.77L9,13.82V6H6L10,2Z\";\nexport var mdiAxisZRotateClockwise = \"M14,12L10,16L14,20V16.9C18.56,16.44 22,14.42 22,12C22,9.58 18.56,7.56 14,7.1V9.09C17.45,9.43 20,10.6 20,12C20,13.4 17.45,14.57 14,14.91V12M4,12C4,10.6 6.55,9.43 10,9.09V7.1C5.44,7.56 2,9.58 2,12C2,14.16 4.74,16 8.58,16.7L7.88,16L9.08,14.79C6.11,14.36 4,13.27 4,12M13,2H11V13L13,11V2M13,22V21L11,19V22H13Z\";\nexport var mdiAxisZRotateCounterclockwise = \"M10,12L14,16L10,20V16.9C5.44,16.44 2,14.42 2,12C2,9.58 5.44,7.56 10,7.1V9.09C6.55,9.43 4,10.6 4,12C4,13.4 6.55,14.57 10,14.91V12M20,12C20,10.6 17.45,9.43 14,9.09V7.1C18.56,7.56 22,9.58 22,12C22,14.16 19.26,16 15.42,16.7L16.12,16L14.92,14.79C17.89,14.36 20,13.27 20,12M11,2H13V13L11,11V2M11,22V21L13,19V22H11Z\";\nexport var mdiBabel = \"M15.14 2C13.8 2.12 12.04 2.59 9.87 3.43C9.28 3.87 8.6 4.3 7.84 4.72V4.85C7.9 4.85 7.96 4.81 8.04 4.77C8.13 4.76 8.19 4.79 8.19 4.88L8.32 4.8L8.39 4.79L8.4 4.86C8.41 4.92 7.93 5.29 7 5.96L7.06 6.09H7L6.84 6.04C6.84 6.09 6.78 6.11 6.64 6.12L6.65 6.19L6.81 6.37C6.75 6.37 6.68 6.36 6.6 6.32C6.29 6.35 6 6.58 5.69 7L5.77 7.12C6.03 6.88 6.18 6.76 6.22 6.76L6.24 6.95C6.2 6.95 6.12 7 6.04 7.03L6.2 7.27C6.5 6.93 6.86 6.64 7.24 6.41C7.43 6.46 7.53 6.5 7.53 6.58L7.67 6.57C8.69 5.81 9.71 5.27 10.71 4.93L10.72 5.06C10.53 5.34 10.4 5.5 10.33 5.5C10.34 5.59 10.38 5.67 10.43 5.74C10.45 5.92 10 7.06 9.07 9.19C6.95 14.13 5.19 17.78 3.77 20.16C3.77 20.2 3.8 20.27 3.85 20.35C4.2 20.26 4.42 20.18 4.5 20.1L4.6 20.09L4.61 20.22L4.74 20.21L4.88 20.13C4.88 20.18 4.93 20.19 5 20.18L5.03 20.31C5.03 20.45 4.96 20.65 4.8 20.92C4.65 21.08 4.5 21.42 4.34 21.94V22H4.47C5.04 21.35 5.5 20.72 5.78 20.11C7.44 19.62 8.71 19.15 9.59 18.67C10.47 18.6 11.15 18.37 11.61 18L11.6 17.91L11.27 18H11.19L11.18 17.95C11.83 17.85 12.28 17.7 12.5 17.5C13.79 16.54 14.74 15.85 15.39 15.44C17.39 13.97 18.33 12.55 18.22 11.21C18.21 11.07 17.76 10.5 16.9 9.56C16.88 9.38 17.19 9.12 17.8 8.77L19.53 7.24C19.92 6.74 20.15 5.94 20.23 4.83L20.2 4.57C20.14 3.79 19.58 3.16 18.5 2.68C17.88 2.25 16.76 2.03 15.14 2M17.24 2.87C18.53 2.92 19.19 3.14 19.23 3.55L19.18 3.68L17.24 2.87M16 3.96C16.89 3.95 17.35 4.18 17.4 4.68L17.5 4.67V4.34L17.64 4.33C18 4.5 18.16 4.74 18.18 5C18.2 5.2 18.1 5.42 17.89 5.69C17.8 5.7 17.75 5.64 17.74 5.5H17.6L17.56 5.91C17 6.78 16.56 7.23 16.3 7.26C16.06 7.58 15.91 7.75 15.85 7.75C15.67 7.97 15.17 8.35 14.35 8.87C14.08 8.9 13.07 9.28 11.34 10.04C11.25 10 11.16 10 11.06 10L11.05 9.88C11.03 9.62 11.14 9.31 11.39 8.92C11.5 8.21 11.67 7.8 11.83 7.7L13.28 4.44C13.27 4.24 13.57 4.09 14.21 4L14.42 3.96L14.44 4.15C15.06 4.05 15.45 4 15.6 4C15.74 3.97 15.88 3.96 16 3.96M19 4.29H19.04C19.16 4.3 19.28 4.5 19.41 4.91L19.42 5.03C19.35 5.04 19.22 4.83 19.03 4.41L19 4.29M10.82 6.36H10.88L10.9 6.55C10.84 6.56 10.75 6.65 10.65 6.83L10.64 6.7C10.76 6.55 10.82 6.43 10.82 6.36M6.67 6.46L6.68 6.5C6.63 6.5 6.56 6.56 6.5 6.6L6.41 6.61L6.39 6.5L6.67 6.46M10.24 7.72L10.26 8H10.19L10.16 7.73L10.24 7.72M10.07 8.19C10.05 8.41 10 8.5 9.89 8.53L9.82 8.54C9.9 8.39 9.94 8.29 9.93 8.21L10.07 8.19M9.78 8.87L9.79 8.93L9.67 9.14L9.54 9.15L9.53 9.09C9.66 9.08 9.72 9 9.71 8.88L9.78 8.87M9.5 9.5L9.45 9.81H9.38L9.36 9.5H9.5M16.57 9.72L16.85 9.89C16.86 10 16.82 10.03 16.73 10.04C16.61 9.96 16.5 9.93 16.44 9.93L16.43 9.73L16.57 9.72M11 10.46L11.03 10.58L10.76 10.61L10.75 10.5L11 10.46M15.5 10.91C15.68 11 15.78 11.09 15.79 11.16L15.8 11.22C15.61 11.24 15.45 11.14 15.29 10.93L15.5 10.91M17.66 11.12C17.81 11.18 17.88 11.25 17.89 11.31L17.93 11.82C17.87 11.96 17.81 12.03 17.74 12.03L17.66 11.12M14.16 11.18C14.86 11.17 15.4 11.33 15.76 11.68L15.79 11.94C15.5 12.85 15.13 13.38 14.75 13.54L13 14.93C11.7 15.79 11 16.21 10.9 16.22C8.83 17.36 7.54 17.95 7.04 18H6.96C7.03 17.76 7.95 15.87 9.73 12.33C10.5 12.26 11.76 11.89 13.44 11.23L13.85 11.19C13.96 11.19 14.06 11.18 14.16 11.18M11.62 11.59L11.63 11.65L11.35 11.67L11.34 11.61L11.62 11.59M7.26 15.81C7.17 16.26 7.08 16.5 7 16.5L6.97 16.43C6.95 16.2 7.05 16 7.26 15.81M13.18 16.09L13.19 16.21C13.2 16.27 13 16.43 12.6 16.72C11.44 17.29 10.76 17.68 10.56 17.88C9.3 18.32 8.68 18.59 8.69 18.69C7.57 19.14 6.84 19.46 6.5 19.66C6.41 19.67 6.29 19.63 6.13 19.56C6.12 19.34 6.21 19.15 6.44 19C6.63 19 6.82 19 7 19.09C7.21 19 7.57 18.87 8.08 18.74L8.07 18.61L7.66 18.65C7.71 18.58 8.11 18.4 8.86 18.09L9.07 18.07L9.08 18.13C8.73 18.16 8.53 18.27 8.5 18.46C8.5 18.53 8.53 18.58 8.62 18.57C8.87 18.39 9 18.3 9 18.27C9.5 18.18 10.9 17.44 13.18 16.09M6.86 16.69L6.87 16.75C6.88 16.84 6.83 16.89 6.74 16.9V16.84C6.73 16.76 6.77 16.71 6.86 16.69M10 17.5C10.07 17.47 10.12 17.5 10.12 17.58C9.96 17.6 9.65 17.73 9.19 18H9.12L9.11 17.87C9.44 17.84 9.73 17.71 9.97 17.5H10M6.95 18.5L6.96 18.58C6.9 18.58 6.84 18.61 6.75 18.66L6.62 18.67C6.61 18.61 6.65 18.55 6.74 18.53L6.95 18.5M5.35 19.3L5.5 19.36C5.44 19.76 5.33 19.96 5.13 20C4.97 19.91 4.83 19.88 4.7 19.89L4.68 19.7C4.67 19.62 4.72 19.57 4.82 19.55C4.9 19.54 4.95 19.6 4.96 19.73C5.2 19.44 5.33 19.3 5.35 19.3Z\";\nexport var mdiBaby = \"M18.5,4A2.5,2.5 0 0,1 21,6.5A2.5,2.5 0 0,1 18.5,9A2.5,2.5 0 0,1 16,6.5A2.5,2.5 0 0,1 18.5,4M4.5,20A1.5,1.5 0 0,1 3,18.5A1.5,1.5 0 0,1 4.5,17H11.5A1.5,1.5 0 0,1 13,18.5A1.5,1.5 0 0,1 11.5,20H4.5M16.09,19L14.69,15H11L6.75,10.75C6.75,10.75 9,8.25 12.5,8.25C15.5,8.25 15.85,9.25 16.06,9.87L18.92,18C19.2,18.78 18.78,19.64 18,19.92C17.22,20.19 16.36,19.78 16.09,19Z\";\nexport var mdiBabyBottle = \"M11.28 2.8L10.78 3.3A5.5 5.5 0 0 0 6.41 2.87L6.33 2.8A2.5 2.5 0 0 0 2.8 6.33L2.87 6.41A5.5 5.5 0 0 0 3.3 10.78L2.8 11.28A1.5 1.5 0 0 0 2.8 13.4L4.21 14.82A1.5 1.5 0 0 0 6.33 14.82L6.68 14.46L13.76 21.53A1.5 1.5 0 0 0 15.88 21.53L21.53 15.88A1.5 1.5 0 0 0 21.53 13.76L14.46 6.68L14.82 6.33A1.5 1.5 0 0 0 14.82 4.21L13.4 2.8A1.5 1.5 0 0 0 11.28 2.8M13.76 5.27L5.27 13.76L3.86 12.34L12.34 3.86M14.82 11.63L11.63 14.82L10.57 13.76L13.76 10.57M16.94 13.76L13.76 16.94L12.69 15.88L15.88 12.69Z\";\nexport var mdiBabyBottleOutline = \"M11.28 2.8L10.78 3.3C9.44 2.55 7.84 2.4 6.41 2.87L6.33 2.8C5.36 1.82 3.77 1.82 2.8 2.8S1.82 5.36 2.8 6.33L2.87 6.41C2.4 7.84 2.55 9.44 3.3 10.78L2.8 11.28C2.21 11.87 2.21 12.81 2.8 13.4L4.21 14.82C4.8 15.4 5.74 15.4 6.33 14.82L6.68 14.46L13.76 21.53C14.34 22.12 15.29 22.12 15.88 21.53L21.53 15.88C22.12 15.29 22.12 14.34 21.53 13.75L14.46 6.68L14.82 6.33C15.4 5.74 15.4 4.8 14.82 4.21L13.4 2.79C12.82 2.21 11.87 2.21 11.28 2.8M4.25 7.05C4.33 6.71 4.47 6.38 4.66 6.07L3.86 5.27C3.75 5.16 3.67 5.04 3.63 4.9C3.5 4.56 3.57 4.14 3.86 3.86S4.56 3.5 4.9 3.63C5.04 3.67 5.16 3.75 5.27 3.86L6.07 4.66C6.38 4.47 6.71 4.33 7.05 4.25C7.91 4 8.83 4.06 9.65 4.42L4.42 9.65C4.06 8.83 4 7.91 4.25 7.05M20.47 14.82L14.82 20.47L7.75 13.4L13.4 7.75L20.47 14.82M13.76 5.27L5.27 13.76L3.86 12.34L12.34 3.86L13.76 5.27M14.82 11.63L11.63 14.82L10.57 13.76L13.76 10.57L14.82 11.63M16.94 13.76L13.76 16.94L12.69 15.88L15.88 12.69L16.94 13.76Z\";\nexport var mdiBabyBuggy = \"M17 20A2 2 0 0 1 15 22A2 2 0 0 1 13 20A2 2 0 0 1 15 18A2 2 0 0 1 17 20M7 20A2 2 0 0 1 5 22A2 2 0 0 1 3 20A2 2 0 0 1 5 18A2 2 0 0 1 7 20M17.61 3C16.95 3 16.44 3.2 16 3.5C15.32 3.91 14.88 4.59 14.47 5.07L5.71 15.35C5.16 16 5.62 17 6.47 17H14C15.11 17 16 16.1 16 15V6.38C16.58 5.7 16.93 5 17.61 5C18.38 5 19 5.66 19 6.5V7H21V6.5C21 4.56 19.5 3 17.61 3M8.86 3.09C7.04 3.16 5.23 3.76 3.68 4.9L8.44 9.66L12.32 5.1C12.59 4.78 12.91 4.38 13.3 4C12.14 3.45 10.9 3.15 9.65 3.09C9.39 3.08 9.12 3.08 8.86 3.09Z\";\nexport var mdiBabyBuggyOff = \"M17 20C17 21.11 16.11 22 15 22S13 21.11 13 20 13.9 18 15 18 17 18.9 17 20M5 18C3.9 18 3 18.9 3 20S3.9 22 5 22 7 21.11 7 20 6.11 18 5 18M22.11 21.46L2.39 1.73L1.11 3L9.28 11.17L5.71 15.35C5.16 16 5.62 17 6.47 17H14C14.32 17 14.62 16.92 14.89 16.78L20.84 22.73L22.11 21.46M16 12.8V6.38C16.58 5.7 16.93 5 17.61 5C18.38 5 19 5.66 19 6.5V7H21V6.5C21 4.56 19.5 3 17.61 3C16.95 3 16.44 3.2 16 3.5C15.32 3.91 14.88 4.59 14.47 5.07L11.62 8.42L16 12.8M12.32 5.1C12.59 4.78 12.91 4.38 13.3 4C12.14 3.45 10.9 3.15 9.65 3.09C9.39 3.08 9.12 3.08 8.86 3.09C8.12 3.12 7.38 3.26 6.66 3.46L10.47 7.27L12.32 5.1Z\";\nexport var mdiBabyCarriage = \"M13,2V10H21A8,8 0 0,0 13,2M19.32,15.89C20.37,14.54 21,12.84 21,11H6.44L5.5,9H2V11H4.22C4.22,11 6.11,15.07 6.34,15.42C5.24,16 4.5,17.17 4.5,18.5A3.5,3.5 0 0,0 8,22C9.76,22 11.22,20.7 11.46,19H13.54C13.78,20.7 15.24,22 17,22A3.5,3.5 0 0,0 20.5,18.5C20.5,17.46 20.04,16.53 19.32,15.89M8,20A1.5,1.5 0 0,1 6.5,18.5A1.5,1.5 0 0,1 8,17A1.5,1.5 0 0,1 9.5,18.5A1.5,1.5 0 0,1 8,20M17,20A1.5,1.5 0 0,1 15.5,18.5A1.5,1.5 0 0,1 17,17A1.5,1.5 0 0,1 18.5,18.5A1.5,1.5 0 0,1 17,20Z\";\nexport var mdiBabyCarriageOff = \"M22 10C22 5.6 18.4 2 14 2V10H22M14.2 11H22C22 12.8 21.4 14.5 20.3 15.9C21 16.5 21.4 17.4 21.5 18.3L14.2 11M20.8 22.7L22.1 21.4L2.4 1.7L1.1 3L9.1 11H7.4L6.5 9H3V11H5.2C5.2 11 7.1 15.1 7.3 15.4C6.3 15.9 5.6 16.9 5.5 18C5.2 19.9 6.6 21.7 8.5 22C10.4 22.3 12.2 20.9 12.5 19H14.6C14.7 19.4 14.8 19.8 15 20.2C15.9 21.9 18.1 22.5 19.7 21.6L20.8 22.7M10.5 18.5C10.5 19.3 9.8 20 9 20S7.5 19.3 7.5 18.5 8.2 17 9 17 10.5 17.7 10.5 18.5M18.1 20C17.2 20 16.5 19.3 16.5 18.5V18.4L18.1 20Z\";\nexport var mdiBabyFace = \"M1,12C1,10.19 2.2,8.66 3.86,8.17C5.29,5.11 8.4,3 12,3C15.6,3 18.71,5.11 20.15,8.17C21.8,8.66 23,10.19 23,12C23,13.81 21.8,15.34 20.15,15.83C18.71,18.89 15.6,21 12,21C8.4,21 5.29,18.89 3.86,15.83C2.2,15.34 1,13.81 1,12M14.5,9.25A1.25,1.25 0 0,0 13.25,10.5A1.25,1.25 0 0,0 14.5,11.75A1.25,1.25 0 0,0 15.75,10.5A1.25,1.25 0 0,0 14.5,9.25M9.5,9.25A1.25,1.25 0 0,0 8.25,10.5A1.25,1.25 0 0,0 9.5,11.75A1.25,1.25 0 0,0 10.75,10.5A1.25,1.25 0 0,0 9.5,9.25M7.5,14C8.26,15.77 10,17 12,17C14,17 15.74,15.77 16.5,14H7.5M3,12C3,12.82 3.5,13.53 4.21,13.84C4.07,13.25 4,12.63 4,12C4,11.37 4.07,10.75 4.21,10.16C3.5,10.47 3,11.18 3,12M21,12C21,11.18 20.5,10.47 19.79,10.16C19.93,10.75 20,11.37 20,12C20,12.63 19.93,13.25 19.79,13.84C20.5,13.53 21,12.82 21,12Z\";\nexport var mdiBabyFaceOutline = \"M14.5,9.25A1.25,1.25 0 0,1 15.75,10.5A1.25,1.25 0 0,1 14.5,11.75A1.25,1.25 0 0,1 13.25,10.5A1.25,1.25 0 0,1 14.5,9.25M9.5,9.25A1.25,1.25 0 0,1 10.75,10.5A1.25,1.25 0 0,1 9.5,11.75A1.25,1.25 0 0,1 8.25,10.5A1.25,1.25 0 0,1 9.5,9.25M7.5,14H16.5C15.74,15.77 14,17 12,17C10,17 8.26,15.77 7.5,14M1,12C1,10.19 2.2,8.66 3.86,8.17C5.29,5.11 8.4,3 12,3C15.6,3 18.71,5.11 20.15,8.17C21.8,8.66 23,10.19 23,12C23,13.81 21.8,15.34 20.15,15.83C18.71,18.89 15.6,21 12,21C8.4,21 5.29,18.89 3.86,15.83C2.2,15.34 1,13.81 1,12M12,5C8.82,5 6.14,7.12 5.28,10H5A2,2 0 0,0 3,12A2,2 0 0,0 5,14H5.28C6.14,16.88 8.82,19 12,19C15.18,19 17.86,16.88 18.72,14H19A2,2 0 0,0 21,12A2,2 0 0,0 19,10H18.72C17.86,7.12 15.18,5 12,5Z\";\nexport var mdiBackburger = \"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z\";\nexport var mdiBackspace = \"M22,3H7C6.31,3 5.77,3.35 5.41,3.88L0,12L5.41,20.11C5.77,20.64 6.31,21 7,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12\";\nexport var mdiBackspaceOutline = \"M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12L19,15.59M22,3A2,2 0 0,1 24,5V19A2,2 0 0,1 22,21H7C6.31,21 5.77,20.64 5.41,20.11L0,12L5.41,3.88C5.77,3.35 6.31,3 7,3H22M22,5H7L2.28,12L7,19H22V5Z\";\nexport var mdiBackspaceReverse = \"M2,21H17C17.7,21 18.2,20.6 18.6,20.1L24,12L18.6,3.9C18.2,3.4 17.7,3 17,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21M5,8.4L6.4,7L10,10.6L13.6,7L15,8.4L11.4,12L15,15.6L13.6,17L10,13.4L6.4,17L5,15.6L8.6,12\";\nexport var mdiBackspaceReverseOutline = \"M5,15.59L6.41,17L10,13.41L13.59,17L15,15.59L11.41,12L15,8.41L13.59,7L10,10.59L6.41,7L5,8.41L8.59,12L5,15.59M2,3A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H17C17.69,21 18.23,20.64 18.59,20.11L24,12L18.59,3.88C18.23,3.35 17.69,3 17,3H2M2,5H17L21.72,12L17,19H2V5Z\";\nexport var mdiBackupRestore = \"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\";\nexport var mdiBacteria = \"M21,16C21,15.5 20.95,15.08 20.88,14.68L22.45,13.9L21.55,12.1L20.18,12.79C19.63,11.96 18.91,11.5 18.29,11.28L18.95,9.32L17.05,8.68L16.29,10.96C14.96,10.83 14.17,10.32 13.7,9.77L15.45,8.9L14.55,7.1L13,7.89C12.97,7.59 12.86,6.72 12.28,5.87L13.83,3.55L12.17,2.44L10.76,4.56C10.28,4.33 9.7,4.15 9,4.06V2H7V4.1C6.29,4.25 5.73,4.54 5.32,4.91L2.7,2.29L1.29,3.71L4.24,6.65C4,7.39 4,8 4,8H2V10H4.04C4.1,10.63 4.21,11.36 4.4,12.15L1.68,13.05L2.31,14.95L5,14.05C5.24,14.56 5.5,15.08 5.82,15.58L3.44,17.17L4.55,18.83L7.07,17.15C7.63,17.71 8.29,18.21 9.06,18.64L8.1,20.55L9.89,21.45L10.89,19.45L10.73,19.36C11.68,19.68 12.76,19.9 14,19.97V22H16V19.93C16.76,19.84 17.81,19.64 18.77,19.19L20.29,20.71L21.7,19.29L20.37,17.95C20.75,17.44 21,16.8 21,16M8.5,11A1.5,1.5 0 0,1 7,9.5A1.5,1.5 0 0,1 8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11M11,14A1,1 0 0,1 10,13A1,1 0 0,1 11,12A1,1 0 0,1 12,13A1,1 0 0,1 11,14M15.5,17A1.5,1.5 0 0,1 14,15.5A1.5,1.5 0 0,1 15.5,14A1.5,1.5 0 0,1 17,15.5A1.5,1.5 0 0,1 15.5,17Z\";\nexport var mdiBacteriaOutline = \"M9,2H7V4.1C6.29,4.25 5.73,4.54 5.32,4.91L2.7,2.29L1.29,3.71L4.24,6.65C4,7.39 4,8 4,8H2V10H4.04C4.1,10.63 4.21,11.36 4.4,12.15L1.68,13.05L2.31,14.95L5,14.05C5.24,14.56 5.5,15.08 5.82,15.58L3.44,17.17L4.55,18.83L7.07,17.15C7.63,17.71 8.29,18.21 9.06,18.64L8.1,20.55L9.89,21.45L10.89,19.45L10.73,19.36C11.68,19.68 12.76,19.9 14,19.97V22H16V19.93C16.76,19.84 17.81,19.64 18.77,19.19L20.29,20.71L21.7,19.29L20.37,17.95C20.75,17.44 21,16.8 21,16C21,15.5 20.95,15.08 20.88,14.68L22.45,13.9L21.55,12.1L20.18,12.79C19.63,11.96 18.91,11.5 18.29,11.28L18.95,9.32L17.05,8.68L16.29,10.96C14.96,10.83 14.17,10.32 13.7,9.77L15.45,8.9L14.55,7.1L13,7.89C12.97,7.59 12.86,6.72 12.28,5.87L13.83,3.55L12.17,2.44L10.76,4.56C10.28,4.33 9.7,4.15 9,4.06M15,18C12.06,18 9.81,17.18 8.31,15.56C5.68,12.72 6,8.2 6,8.17V8.11L6,8.03C6,7.1 6.39,6 8,6C10.63,6 10.97,7.43 11,8C11,10 12.6,13 17,13C17.33,13 19,13.15 19,16C19,17.89 15.03,18 15,18M8.5,8A1.5,1.5 0 0,0 7,9.5A1.5,1.5 0 0,0 8.5,11A1.5,1.5 0 0,0 10,9.5A1.5,1.5 0 0,0 8.5,8M11,12A1,1 0 0,0 10,13A1,1 0 0,0 11,14A1,1 0 0,0 12,13A1,1 0 0,0 11,12M15.5,14A1.5,1.5 0 0,0 14,15.5A1.5,1.5 0 0,0 15.5,17A1.5,1.5 0 0,0 17,15.5A1.5,1.5 0 0,0 15.5,14Z\";\nexport var mdiBadgeAccount = \"M17,3H14V6H10V3H7A2,2 0 0,0 5,5V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V5A2,2 0 0,0 17,3M12,8A2,2 0 0,1 14,10A2,2 0 0,1 12,12A2,2 0 0,1 10,10A2,2 0 0,1 12,8M16,16H8V15C8,13.67 10.67,13 12,13C13.33,13 16,13.67 16,15V16M13,5H11V1H13V5M16,19H8V18H16V19M12,21H8V20H12V21Z\";\nexport var mdiBadgeAccountAlert = \"M15,3H12V6H8V3H5A2,2 0 0,0 3,5V21A2,2 0 0,0 5,23H15A2,2 0 0,0 17,21V5A2,2 0 0,0 15,3M10,8A2,2 0 0,1 12,10A2,2 0 0,1 10,12A2,2 0 0,1 8,10A2,2 0 0,1 10,8M14,16H6V15C6,13.67 8.67,13 10,13C11.33,13 14,13.67 14,15V16M11,5H9V1H11V5M14,19H6V18H14V19M10,21H6V20H10V21M19,13V7H21V13H19M19,17V15H21V17H19Z\";\nexport var mdiBadgeAccountAlertOutline = \"M15,3H12V5H15V21H5V5H8V3H5A2,2 0 0,0 3,5V21A2,2 0 0,0 5,23H15A2,2 0 0,0 17,21V5A2,2 0 0,0 15,3M10,7A2,2 0 0,1 12,9A2,2 0 0,1 10,11A2,2 0 0,1 8,9A2,2 0 0,1 10,7M14,15H6V14C6,12.67 8.67,12 10,12C11.33,12 14,12.67 14,14V15M14,18H6V17H14V18M10,20H6V19H10V20M11,5H9V1H11V5M19,13V7H21V13H19M19,17V15H21V17H19Z\";\nexport var mdiBadgeAccountHorizontal = \"M22,4H14V7H10V4H2A2,2 0 0,0 0,6V20A2,2 0 0,0 2,22H22A2,2 0 0,0 24,20V6A2,2 0 0,0 22,4M8,9A2,2 0 0,1 10,11A2,2 0 0,1 8,13A2,2 0 0,1 6,11A2,2 0 0,1 8,9M12,17H4V16C4,14.67 6.67,14 8,14C9.33,14 12,14.67 12,16V17M20,18H14V16H20V18M20,14H14V12H20V14M20,10H14V8H20V10M13,6H11V2H13V6Z\";\nexport var mdiBadgeAccountHorizontalOutline = \"M8,9A2,2 0 0,1 10,11A2,2 0 0,1 8,13A2,2 0 0,1 6,11A2,2 0 0,1 8,9M12,17H4V16C4,14.67 6.67,14 8,14C9.33,14 12,14.67 12,16V17M20,8H14V10H20V8M20,12H14V14H20V12M20,16H14V18H20V16M22,4H14V6H22V20H2V6H10V4H2A2,2 0 0,0 0,6V20A2,2 0 0,0 2,22H22A2,2 0 0,0 24,20V6A2,2 0 0,0 22,4M13,6H11V2H13V6Z\";\nexport var mdiBadgeAccountOutline = \"M17,3H14V5H17V21H7V5H10V3H7A2,2 0 0,0 5,5V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V5A2,2 0 0,0 17,3M12,7A2,2 0 0,1 14,9A2,2 0 0,1 12,11A2,2 0 0,1 10,9A2,2 0 0,1 12,7M16,15H8V14C8,12.67 10.67,12 12,12C13.33,12 16,12.67 16,14V15M16,18H8V17H16V18M12,20H8V19H12V20M13,5H11V1H13V5Z\";\nexport var mdiBadminton = \"M12.3,2C11.33,2.03 10.58,2.84 10.61,3.8C10.62,4.04 10.67,4.27 10.77,4.5L11.06,5.14V5.14C11.1,5.27 11.03,5.41 10.89,5.45C10.8,5.5 10.7,5.45 10.63,5.37L10.21,4.82C9.88,4.4 9.38,4.14 8.85,4.13C7.88,4.11 7.08,4.88 7.06,5.84C7.05,6.26 7.19,6.66 7.45,7L7.87,7.5H7.88C7.96,7.63 7.93,7.79 7.82,7.87C7.73,7.94 7.61,7.94 7.53,7.87L7,7.45C6.66,7.19 6.25,7.05 5.84,7.06C4.88,7.08 4.11,7.88 4.13,8.85C4.14,9.38 4.4,9.88 4.82,10.21L5.39,10.65C5.5,10.75 5.5,10.91 5.38,11C5.31,11.07 5.21,11.09 5.12,11.05H5.11L4.5,10.77C4.27,10.68 4.04,10.62 3.8,10.61C2.84,10.58 2.03,11.34 2,12.31C2,13.03 2.4,13.69 3.06,13.97L14.45,19.04L19.04,14.45L13.97,3.06C13.69,2.39 13,1.97 12.3,2M13.13,6.1C13.55,6.09 13.93,6.33 14.09,6.71L17.14,13.55L13.19,9.61L12.26,7.5C11.96,6.87 12.42,6.12 13.13,6.1M9.85,8.85C10.12,8.85 10.37,8.95 10.56,9.15L15.37,13.96C15.77,14.34 15.78,14.97 15.4,15.37C15,15.77 14.38,15.78 13.96,15.37L9.15,10.56C8.75,10.18 8.74,9.54 9.13,9.15C9.32,8.95 9.58,8.85 9.85,8.85M7.13,12.17C7.26,12.17 7.4,12.21 7.5,12.26L9.63,13.2L13.57,17.14L6.71,14.09C5.69,13.65 6.03,12.14 7.13,12.17M20.28,16.04L16.04,20.28L16.89,21.13C17.65,21.88 18.75,22.17 19.78,21.9C20.81,21.62 21.62,20.81 21.9,19.78C22.17,18.75 21.88,17.65 21.13,16.89L20.28,16.04Z\";\nexport var mdiBagCarryOn = \"M14.6 21.4C15 21.8 15.4 22 16 22S17 21.8 17.4 21.4 18 20.6 18 20 17.8 19 17.4 18.6 16.5 18 16 18 15 18.2 14.6 18.6 14 19.4 14 20 14.2 21 14.6 21.4M6 19C6 19.5 6.2 20 6.6 20.4C7 20.8 7.5 21 8 21V7C7.5 7 7 7.2 6.6 7.6C6.2 8 6 8.5 6 9V19M16 2H12C12 2.5 12.2 3 12.6 3.4C13 3.8 13.5 4 14 4V7H9V21H13.2C13 20.5 13 20.2 13 20C13 19.2 13.3 18.5 13.9 17.9C14.5 17.3 15.2 17 16 17V2Z\";\nexport var mdiBagCarryOnCheck = \"M15.28,16.69L18.14,13.88L18.84,14.58L15.28,18.14L13.17,16L13.88,15.28L15.28,16.69M8,21A2,2 0 0,1 6,19V9A2,2 0 0,1 8,7V21M9,7H14V4A2,2 0 0,1 12,2H16V10A6,6 0 0,1 22,16A6,6 0 0,1 16,22C14.77,22 13.63,21.63 12.68,21H9V7M16,12A4,4 0 0,0 12,16A4,4 0 0,0 16,20A4,4 0 0,0 20,16A4,4 0 0,0 16,12Z\";\nexport var mdiBagCarryOnOff = \"M2.1 4.9L6 8.9V19C6 19.5 6.2 20 6.6 20.4C7 20.8 7.5 21 8 21V10.8L9 11.8V21H13.2C13.1 20.6 13 20.2 13 20C13 18.8 13.5 18 14.6 17.4L15.4 18.2C14.5 18.5 14.1 19.2 14.1 20.1C14.1 20.6 14.3 21.1 14.7 21.5C15 21.8 15.5 22 16 22C16.9 22 17.6 21.6 17.9 20.7L19.1 21.9L20.5 20.5L3.5 3.5L2.1 4.9M12 2C12 2.5 12.2 3 12.6 3.4S13.5 4 14 4V7H9.8L16 13.2V2H12Z\";\nexport var mdiBagChecked = \"M22 19H2V21H22V19M4 15C4 15.5 4.2 16 4.6 16.4C5 16.8 5.5 17 6 17V6C5.5 6 5 6.2 4.6 6.6C4.2 7 4 7.5 4 8V15M13.5 6H10.5C10.5 5.6 10.6 5.2 10.9 4.9C11.2 4.6 11.5 4.5 12 4.5C12.4 4.5 12.8 4.6 13.1 4.9C13.3 5.2 13.5 5.6 13.5 6M7 6V17H17V6H15C15 5.2 14.7 4.5 14.1 3.9S12.8 3 12 3C11.2 3 10.5 3.3 9.9 3.9C9.3 4.5 9 5.2 9 6H7M18 17C18.5 17 19 16.8 19.4 16.4C19.8 16 20 15.5 20 15V8C20 7.5 19.8 7 19.4 6.6C19 6.2 18.5 6 18 6V17Z\";\nexport var mdiBagPersonal = \"M16,5V4A2,2 0 0,0 14,2H10A2,2 0 0,0 8,4V5A4,4 0 0,0 4,9V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V9A4,4 0 0,0 16,5M10,4H14V5H10V4M12,9L14,11L12,13L10,11L12,9M18,16H9V18H8V16H6V15H18V16Z\";\nexport var mdiBagPersonalOff = \"M20,19.35L2.38,1.73L1.11,3L4.77,6.66C4.27,7.34 4,8.16 4,9V20A2,2 0 0,0 6,22H18C18.56,22 19.08,21.76 19.46,21.35L20.84,22.73L22.11,21.46L20,19.35M9,16V18H8V16H6V15H13.11L14.11,16H9M20,9A4,4 0 0,0 16,5V4A2,2 0 0,0 14,2H10A2,2 0 0,0 8,4V4.8L20,16.8V9M14,5H10V4H14V5Z\";\nexport var mdiBagPersonalOffOutline = \"M20,19.35L2.38,1.73L1.11,3L4.77,6.66C4.27,7.34 4,8.16 4,9V20A2,2 0 0,0 6,22H18C18.56,22 19.08,21.76 19.46,21.35L20.84,22.73L22.11,21.46L20,19.35M6,9C6,8.69 6.08,8.38 6.22,8.11L13.11,15H6V9M18,20H6V16H8V18H9V16H14.11L18,19.89V20M16,7A2,2 0 0,1 18,9V14.8L20,16.8V9A4,4 0 0,0 16,5V4A2,2 0 0,0 14,2H10A2,2 0 0,0 8,4V4.8L10.2,7H16M10,4H14V5H10V4Z\";\nexport var mdiBagPersonalOutline = \"M16,5V4A2,2 0 0,0 14,2H10A2,2 0 0,0 8,4V5A4,4 0 0,0 4,9V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V9A4,4 0 0,0 16,5M10,4H14V5H10V4M12,9L14,11L12,13L10,11L12,9M18,20H6V16H8V18H9V16H18V20M18,15H6V9A2,2 0 0,1 8,7H16A2,2 0 0,1 18,9V15Z\";\nexport var mdiBagPersonalPlus = \"M22 19H19V22H17V19H14V17H17V14H19V17H22V19M8 2C6.9 2 6 2.9 6 4V5C3.8 5 2 6.8 2 9V20C2 21.1 2.9 22 4 22H13.5C12.5 20.9 12 19.5 12 18C12 17.3 12.1 16.6 12.3 16H7V18H6V16H4V15H12.8C13.8 13.2 15.8 12 18 12V9C18 6.8 16.2 5 14 5V4C14 2.9 13.1 2 12 2H8M8 4H12V5H8V4M10 9L12 11L10 13L8 11L10 9Z\";\nexport var mdiBagPersonalPlusOutline = \"M22 19H19V22H17V19H14V17H17V14H19V17H22V19M8 2C6.9 2 6 2.9 6 4V5C3.8 5 2 6.8 2 9V20C2 21.1 2.9 22 4 22H13.5C13 21.4 12.6 20.7 12.3 20H4V16H6V18H7V16H12.3C12.4 15.7 12.6 15.3 12.8 15H4V9C4 7.9 4.9 7 6 7H14C15.1 7 16 7.9 16 9V12.3C16.6 12.1 17.3 12 18 12V9C18 6.8 16.2 5 14 5V4C14 2.9 13.1 2 12 2H8M8 4H12V5H8V4M10 9L8 11L10 13L12 11L10 9Z\";\nexport var mdiBagPersonalTag = \"M14 5V4C14 2.9 13.1 2 12 2H8C6.9 2 6 2.9 6 4V5C3.8 5 2 6.8 2 9V20C2 21.1 2.9 22 4 22H15.2L12.8 19.6C12.2 19.1 11.9 18.3 11.9 17.6V16H7V18H6V16H4V15H12V14.8C12 13.3 13.2 12 14.8 12H18V9C18 6.8 16.2 5 14 5M10 13L8 11L10 9L12 11L10 13M12 5H8V4H12V5M21.8 17.8L18.2 14.2C18 14.1 17.8 14 17.6 14H14.8C14.4 14 14 14.4 14 14.8V17.6C14 17.8 14.1 18 14.2 18.2L17.8 21.8C17.9 21.9 18.1 22 18.4 22C18.6 22 18.8 21.9 19 21.8L21.8 19C21.9 18.9 22 18.7 22 18.4C22 18.2 21.9 18 21.8 17.8M15.4 16C15.1 16 14.8 15.7 14.8 15.4C14.8 15.1 15.1 14.8 15.4 14.8C15.7 14.8 16 15.1 16 15.4C16 15.7 15.7 16 15.4 16Z\";\nexport var mdiBagPersonalTagOutline = \"M14 5V4C14 2.9 13.1 2 12 2H8C6.9 2 6 2.9 6 4V5C3.8 5 2 6.8 2 9V20C2 21.1 2.9 22 4 22H15.2L13.2 20H4V16H6V18H7V16H12V15H4V9C4 7.9 4.9 7 6 7H14C15.1 7 16 7.9 16 9V12H18V9C18 6.8 16.2 5 14 5M12 5H8V4H12V5M10 9L8 11L10 13L12 11L10 9M21.8 17.8L18.2 14.2C18 14.1 17.8 14 17.6 14H14.8C14.4 14 14 14.4 14 14.8V17.6C14 17.8 14.1 18 14.2 18.2L17.8 21.8C17.9 21.9 18.1 22 18.4 22C18.6 22 18.8 21.9 19 21.8L21.8 19C21.9 18.9 22 18.7 22 18.4C22 18.2 21.9 18 21.8 17.8M15.4 16C15.1 16 14.8 15.7 14.8 15.4C14.8 15.1 15.1 14.8 15.4 14.8C15.7 14.8 16 15.1 16 15.4C16 15.7 15.7 16 15.4 16Z\";\nexport var mdiBagSuitcase = \"M17.03 6C18.11 6 19 6.88 19 8V19C19 20.13 18.11 21 17.03 21C17.03 21.58 16.56 22 16 22C15.5 22 15 21.58 15 21H9C9 21.58 8.5 22 8 22C7.44 22 6.97 21.58 6.97 21C5.89 21 5 20.13 5 19V8C5 6.88 5.89 6 6.97 6H9V3C9 2.42 9.46 2 10 2H14C14.54 2 15 2.42 15 3V6H17.03M13.5 6V3.5H10.5V6H13.5M8 9V18H9.5V9H8M14.5 9V18H16V9H14.5M11.25 9V18H12.75V9H11.25Z\";\nexport var mdiBagSuitcaseOff = \"M2 4.77L3.28 3.5L21 21.22L19.73 22.5L18 20.76C17.71 20.93 17.38 21 17.03 21C17.03 21.58 16.56 22 16 22C15.5 22 15 21.58 15 21H9C9 21.58 8.5 22 8 22C7.44 22 6.97 21.58 6.97 21C5.89 21 5 20.13 5 19V7.77L2 4.77M17.03 6C18.11 6 19 6.88 19 8V16.68L16 13.68V9H14.5V12.18L12.75 10.43V9H11.32L8.31 6H9V3C9 2.42 9.46 2 10 2H14C14.54 2 15 2.42 15 3V6H17.03M8 18H9.5V12.27L8 10.77V18M11.25 18H12.75V15.5L11.25 14V18M14.5 18H15.23L14.5 17.27V18M13.5 6V3.5H10.5V6H13.5Z\";\nexport var mdiBagSuitcaseOffOutline = \"M2 4.77L3.28 3.5L21 21.22L19.73 22.5L18 20.76C17.71 20.93 17.38 21 17.03 21C17.03 21.58 16.56 22 16 22C15.5 22 15 21.58 15 21H9C9 21.58 8.5 22 8 22C7.44 22 6.97 21.58 6.97 21C5.89 21 5 20.13 5 19L5 7.78L2 4.77M9.5 18H8V10.78L6.97 9.74V19H16.23L15.25 18H14.5V17.26L12.75 15.5V18H11.25V14L9.5 12.28V18M12.75 9V10.43L11.32 9H12.75M14.5 9H16V13.67L14.5 12.17V9M17.03 6C18.11 6 19 6.88 19 8V16.68L17.03 14.7V8H10.33L8.31 6H9V3C9 2.42 9.46 2 10 2H14C14.54 2 15 2.42 15 3V6H17.03M10.5 3.5V6H13.5V3.5H10.5Z\";\nexport var mdiBagSuitcaseOutline = \"M9.5 18V9H8V18M12.75 18V9H11.25V18M16 18V9H14.5V18M17.03 6C18.11 6 19 6.88 19 8V19C19 20.13 18.11 21 17.03 21C17.03 21.58 16.56 22 16 22C15.5 22 15 21.58 15 21H9C9 21.58 8.5 22 8 22C7.44 22 6.97 21.58 6.97 21C5.89 21 5 20.13 5 19V8C5 6.88 5.89 6 6.97 6H9V3C9 2.42 9.46 2 10 2H14C14.54 2 15 2.42 15 3V6M10.5 3.5V6H13.5V3.5M17.03 19V8H6.97V19\";\nexport var mdiBaguette = \"M5 22C3.68 22 3.15 19.64 3.04 18.7A5.56 5.56 0 0 1 3.36 16A2.5 2.5 0 0 1 5.23 14.38C6.4 14.18 7.23 14.88 8.29 15.12A1.21 1.21 0 0 0 9.85 13.75C9.41 12.03 6.28 12 5 12C5 10.14 7.04 9.9 8.5 10.04A10.8 10.8 0 0 1 11.04 10.6C11.54 10.77 12.12 11.2 12.67 11.16C13.5 11.09 13.67 10.23 13.31 9.6C12.44 8.12 9.97 8 8.5 8C8.5 6 10.23 5.62 11.89 5.92A11.58 11.58 0 0 1 14.38 6.71C14.89 6.93 15.5 7.35 16.06 7.16C17.5 6.72 16 5.18 15.36 4.81A6.6 6.6 0 0 0 13.94 4.23C13.4 4.07 12.74 4.13 13.23 3.5A5.13 5.13 0 0 1 15.96 2.26C17.85 1.82 20.46 1.74 20.92 4.12A5.3 5.3 0 0 1 20.07 7.7A38.96 38.96 0 0 1 13.22 16.33A36.6 36.6 0 0 1 8.62 20.32C7.62 21.04 6.3 22 5 22Z\";\nexport var mdiBalcony = \"M10 10V12H8V10H10M16 12V10H14V12H16M21 14V22H3V14H4V10C4 5.58 7.58 2 12 2S20 5.58 20 10V14H21M7 16H5V20H7V16M11 16H9V20H11V16M11 4.08C8.16 4.56 6 7.03 6 10V14H11V4.08M13 14H18V10C18 7.03 15.84 4.56 13 4.08V14M15 16H13V20H15V16M19 16H17V20H19V16Z\";\nexport var mdiBalloon = \"M13.16,12.74L14,14H12.5C12.35,16.71 12,19.41 11.5,22.08L10.5,21.92C11,19.3 11.34,16.66 11.5,14H10L10.84,12.74C8.64,11.79 7,8.36 7,6A5,5 0 0,1 12,1A5,5 0 0,1 17,6C17,8.36 15.36,11.79 13.16,12.74Z\";\nexport var mdiBallot = \"M13,9.5H18V7.5H13V9.5M13,16.5H18V14.5H13V16.5M19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21M6,11H11V6H6V11M7,7H10V10H7V7M6,18H11V13H6V18M7,14H10V17H7V14Z\";\nexport var mdiBallotOutline = \"M13,7.5H18V9.5H13V7.5M13,14.5H18V16.5H13V14.5M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M19,19V5H5V19H19M11,6V11H6V6H11M10,10V7H7V10H10M11,13V18H6V13H11M10,17V14H7V17H10Z\";\nexport var mdiBallotRecount = \"M19,12V13.5A4,4 0 0,1 23,17.5C23,18.32 22.75,19.08 22.33,19.71L21.24,18.62C21.41,18.28 21.5,17.9 21.5,17.5A2.5,2.5 0 0,0 19,15V16.5L16.75,14.25L19,12M19,23V21.5A4,4 0 0,1 15,17.5C15,16.68 15.25,15.92 15.67,15.29L16.76,16.38C16.59,16.72 16.5,17.1 16.5,17.5A2.5,2.5 0 0,0 19,20V18.5L21.25,20.75L19,23M10,17H7V14H10V17M10,7V10H7V7H10M5,21A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V11.17C20.5,11.06 20,11 19.5,11A6.5,6.5 0 0,0 13,17.5C13,18.79 13.38,20 14,21H5M13,9.5H18V7.5H13V9.5M11,13H6V18H11V13M11,6H6V11H11V6Z\";\nexport var mdiBallotRecountOutline = \"M6,18V13H11V18H6M7,14V17H10V14H7M13,7.5H18V9.5H13V7.5M5,21A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V11.17C20.5,11.06 20,11 19.5,11H19V5H5V19H13.17C13.34,19.72 13.63,20.39 14,21H5M11,6V11H6V6H11M10,10V7H7V10H10M19,12V13.5A4,4 0 0,1 23,17.5C23,18.32 22.75,19.08 22.33,19.71L21.24,18.62C21.41,18.28 21.5,17.9 21.5,17.5A2.5,2.5 0 0,0 19,15V16.5L16.75,14.25L19,12M19,23V21.5A4,4 0 0,1 15,17.5C15,16.68 15.25,15.92 15.67,15.29L16.76,16.38C16.59,16.72 16.5,17.1 16.5,17.5A2.5,2.5 0 0,0 19,20V18.5L21.25,20.75L19,23Z\";\nexport var mdiBandage = \"M17.73,12L21.71,8.04C22.1,7.65 22.1,7 21.71,6.63L17.37,2.29C17,1.9 16.35,1.9 15.96,2.29L12,6.27L8,2.29C7.8,2.1 7.55,2 7.29,2C7.04,2 6.78,2.1 6.59,2.29L2.25,6.63C1.86,7 1.86,7.65 2.25,8.04L6.23,12L2.25,16C1.86,16.39 1.86,17 2.25,17.41L6.59,21.75C7,22.14 7.61,22.14 8,21.75L12,17.77L15.96,21.75C16.16,21.95 16.41,22.04 16.67,22.04C16.93,22.04 17.18,21.94 17.38,21.75L21.72,17.41C22.11,17 22.11,16.39 21.72,16L17.73,12M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7.29,10.96L3.66,7.34L7.29,3.71L10.91,7.33L7.29,10.96M10,13A1,1 0 0,1 9,12A1,1 0 0,1 10,11A1,1 0 0,1 11,12A1,1 0 0,1 10,13M12,15A1,1 0 0,1 11,14A1,1 0 0,1 12,13A1,1 0 0,1 13,14A1,1 0 0,1 12,15M14,11A1,1 0 0,1 15,12A1,1 0 0,1 14,13A1,1 0 0,1 13,12A1,1 0 0,1 14,11M16.66,20.34L13.03,16.72L16.66,13.09L20.28,16.71L16.66,20.34Z\";\nexport var mdiBank = \"M11.5,1L2,6V8H21V6M16,10V17H19V10M2,22H21V19H2M10,10V17H13V10M4,10V17H7V10H4Z\";\nexport var mdiBankCheck = \"M17.8 21.2L15 18.2L16.2 17L17.8 18.6L21.4 15L22.6 16.4L17.8 21.2M13 10H10V17H12.1C12.2 16.2 12.6 15.4 13 14.7V10M16 10V12.3C16.6 12.1 17.3 12 18 12C18.3 12 18.7 12 19 12.1V10H16M12.1 19H2V22H13.5C12.8 21.2 12.3 20.1 12.1 19M21 6L11.5 1L2 6V8H21V6M7 17V10H4V17H7Z\";\nexport var mdiBankCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M17 17H7V15H17V17M8 14V11H10V14H8M11 14V11H13V14H11M14 14V11H16V14H14M17 10H7V8.5L12 6L17 8.5V10Z\";\nexport var mdiBankCircleOutline = \"M12 4C16.4 4 20 7.6 20 12S16.4 20 12 20 4 16.4 4 12 7.6 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M17 17H7V15H17V17M8 14V11H10V14H8M11 14V11H13V14H11M14 14V11H16V14H14M17 10H7V8.5L12 6L17 8.5V10Z\";\nexport var mdiBankMinus = \"M14,17H22V19H14V17M11.5,1L21,6V8H2V6L11.5,1M16,10H19V12.08L18,12C17.3,12 16.63,12.12 16,12.34V10M2,22V19H12.08C12.27,20.14 12.79,21.17 13.53,22H2M10,10H13V14.68C12.54,15.37 12.22,16.15 12.08,17H10V10M4,10H7V17H4V10Z\";\nexport var mdiBankOff = \"M20.8 22.7L20.1 22H2V19H17.1L13 14.9V17H10V11.9L6.1 8H2V6L3.4 5.3L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M4 10V17H7V10H4M21 8V6L11.5 1L6.7 3.5L11.2 8H21M19 15.8V10H16V12.8L19 15.8Z\";\nexport var mdiBankOffOutline = \"M20.8 22.7L19.1 21H2V19H17.1L12.5 14.4V17H10.5V12.4L6.1 8H2V6L3.4 5.3L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M4.5 10V17H6.5V10H4.5M11.5 3.3L16.7 6H9.2L11.2 8H21V6L11.5 1L6.7 3.5L8.2 5L11.5 3.3M18.5 15.3V10H16.5V13.3L18.5 15.3Z\";\nexport var mdiBankOutline = \"M6.5,10H4.5V17H6.5V10M12.5,10H10.5V17H12.5V10M21,19H2V21H21V19M18.5,10H16.5V17H18.5V10M11.5,3.26L16.71,6H6.29L11.5,3.26M11.5,1L2,6V8H21V6L11.5,1Z\";\nexport var mdiBankPlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11.5,1L21,6V8H2V6L11.5,1M16,10H19V12.08L18,12C17.3,12 16.63,12.12 16,12.34V10M2,22V19H12.08C12.27,20.14 12.79,21.17 13.53,22H2M10,10H13V14.68C12.54,15.37 12.22,16.15 12.08,17H10V10M4,10H7V17H4V10Z\";\nexport var mdiBankRemove = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M11.5,1L21,6V8H2V6L11.5,1M16,10H19V12.08L18,12C17.3,12 16.63,12.12 16,12.34V10M2,22V19H12.08C12.27,20.14 12.79,21.17 13.53,22H2M10,10H13V14.68C12.54,15.37 12.22,16.15 12.08,17H10V10M4,10H7V17H4V10Z\";\nexport var mdiBankTransfer = \"M15,14V11H18V9L22,12.5L18,16V14H15M14,7.7V9H2V7.7L8,4L14,7.7M7,10H9V15H7V10M3,10H5V15H3V10M13,10V12.5L11,14.3V10H13M9.1,16L8.5,16.5L10.2,18H2V16H9.1M17,15V18H14V20L10,16.5L14,13V15H17Z\";\nexport var mdiBankTransferIn = \"M2,15V12H5V10L9,13.5L5,17V15H2M22,8.7V10H10V8.7L16,5L22,8.7M10,17H22V19H10V17M15,11H17V16H15V11M11,11H13V16H11V11M19,11H21V16H19V11Z\";\nexport var mdiBankTransferOut = \"M15,15V12H18V10L22,13.5L18,17V15H15M14,8.7V10H2V8.7L8,5L14,8.7M2,17H14V19H2V17M7,11H9V16H7V11M3,11H5V16H3V11M11,11H13V16H11V11Z\";\nexport var mdiBarcode = \"M2,6H4V18H2V6M5,6H6V18H5V6M7,6H10V18H7V6M11,6H12V18H11V6M14,6H16V18H14V6M17,6H20V18H17V6M21,6H22V18H21V6Z\";\nexport var mdiBarcodeOff = \"M20.84 22.73L16 17.89V18H14V15.89L12 13.89V18H11V12.89L10 11.89V18H7V8.89L6 7.89V18H5V6.89L1.11 3L2.39 1.73L7 6.34L10 9.34L11 10.34L12 11.34L14 13.35V13.34L16 15.34V15.35L17 16.35V16.34L18.66 18H18.65L22.11 21.46L20.84 22.73M16 6H14V10.8L16 12.8V6M12 6H11V7.8L12 8.8V6M20 6H17V13.8L20 16.8V6M22 18V6H21V17.8L21.2 18H22M10 6H9.2L10 6.8V6M2 18H4V6H2V18Z\";\nexport var mdiBarcodeScan = \"M4,6H6V18H4V6M7,6H8V18H7V6M9,6H12V18H9V6M13,6H14V18H13V6M16,6H18V18H16V6M19,6H20V18H19V6M2,4V8H0V4A2,2 0 0,1 2,2H6V4H2M22,2A2,2 0 0,1 24,4V8H22V4H18V2H22M2,16V20H6V22H2A2,2 0 0,1 0,20V16H2M22,20V16H24V20A2,2 0 0,1 22,22H18V20H22Z\";\nexport var mdiBarley = \"M7.33,18.33C6.5,17.17 6.5,15.83 6.5,14.5C8.17,15.5 9.83,16.5 10.67,17.67L11,18.23V15.95C9.5,15.05 8.08,14.13 7.33,13.08C6.5,11.92 6.5,10.58 6.5,9.25C8.17,10.25 9.83,11.25 10.67,12.42L11,13V10.7C9.5,9.8 8.08,8.88 7.33,7.83C6.5,6.67 6.5,5.33 6.5,4C8.17,5 9.83,6 10.67,7.17C10.77,7.31 10.86,7.46 10.94,7.62C10.77,7 10.66,6.42 10.65,5.82C10.64,4.31 11.3,2.76 11.96,1.21C12.65,2.69 13.34,4.18 13.35,5.69C13.36,6.32 13.25,6.96 13.07,7.59C13.15,7.45 13.23,7.31 13.33,7.17C14.17,6 15.83,5 17.5,4C17.5,5.33 17.5,6.67 16.67,7.83C15.92,8.88 14.5,9.8 13,10.7V13L13.33,12.42C14.17,11.25 15.83,10.25 17.5,9.25C17.5,10.58 17.5,11.92 16.67,13.08C15.92,14.13 14.5,15.05 13,15.95V18.23L13.33,17.67C14.17,16.5 15.83,15.5 17.5,14.5C17.5,15.83 17.5,17.17 16.67,18.33C15.92,19.38 14.5,20.3 13,21.2V23H11V21.2C9.5,20.3 8.08,19.38 7.33,18.33Z\";\nexport var mdiBarleyOff = \"M11.96,1.21C11.3,2.76 10.64,4.31 10.65,5.82C10.66,6.42 10.77,7 10.94,7.62C10.86,7.46 10.77,7.31 10.67,7.17C9.83,6 8.17,5 6.5,4C6.5,4.8 6.5,5.59 6.68,6.36L13,12.68V10.7C14.5,9.8 15.92,8.88 16.67,7.83C17.5,6.67 17.5,5.33 17.5,4C15.83,5 14.17,6 13.33,7.17C13.23,7.31 13.15,7.45 13.07,7.59C13.25,6.96 13.36,6.32 13.35,5.69C13.34,4.18 12.65,2.69 11.96,1.21M3.28,5.5L2,6.77L6.64,11.41C6.75,12 6.95,12.55 7.33,13.08C8.08,14.13 9.5,15.05 11,15.95V18.23L10.67,17.67C9.83,16.5 8.17,15.5 6.5,14.5C6.5,15.83 6.5,17.17 7.33,18.33C8.08,19.38 9.5,20.3 11,21.2V23H13V21.2C13.74,20.76 14.45,20.31 15.07,19.84L18.73,23.5L20,22.22C14,16.23 9.1,11.32 3.28,5.5M17.5,9.25C15.83,10.25 14.17,11.25 13.33,12.42L13.12,12.79L15,14.66C15.67,14.16 16.27,13.64 16.67,13.08C17.5,11.92 17.5,10.58 17.5,9.25M17.5,14.5C16.93,14.84 16.38,15.18 15.85,15.53L17.29,16.97C17.5,16.17 17.5,15.33 17.5,14.5Z\";\nexport var mdiBarn = \"M12,3L3,8.2V21H9L11.9,18L15,21H21V8.2L12,3M7.9,20V14L10.9,17L7.9,20M8.9,13H14.9L11.9,16L8.9,13M15.9,20L12.9,17L15.9,14V20M15,11H8.8V9H15V11Z\";\nexport var mdiBarrel = \"M20 13C20.55 13 21 12.55 21 12S20.55 11 20 11H19V5H20C20.55 5 21 4.55 21 4S20.55 3 20 3H4C3.45 3 3 3.45 3 4S3.45 5 4 5H5V11H4C3.45 11 3 11.45 3 12S3.45 13 4 13H5V19H4C3.45 19 3 19.45 3 20S3.45 21 4 21H20C20.55 21 21 20.55 21 20S20.55 19 20 19H19V13H20M12 16C10.34 16 9 14.68 9 13.05C9 11.75 9.5 11.38 12 8.5C14.47 11.36 15 11.74 15 13.05C15 14.68 13.66 16 12 16Z\";\nexport var mdiBarrelOutline = \"M9 13.05C9 14.68 10.34 16 12 16S15 14.68 15 13.05C15 11.74 14.47 11.36 12 8.5C9.5 11.38 9 11.75 9 13.05M20 13C20.55 13 21 12.55 21 12S20.55 11 20 11H19V5H20C20.55 5 21 4.55 21 4S20.55 3 20 3H4C3.45 3 3 3.45 3 4S3.45 5 4 5H5V11H4C3.45 11 3 11.45 3 12S3.45 13 4 13H5V19H4C3.45 19 3 19.45 3 20S3.45 21 4 21H20C20.55 21 21 20.55 21 20S20.55 19 20 19H19V13H20M17 19H7V13C7.55 13 8 12.55 8 12S7.55 11 7 11V5H17V11C16.45 11 16 11.45 16 12S16.45 13 17 13V19Z\";\nexport var mdiBaseball = \"M12,2C9.5,2 7.25,2.9 5.5,4.4C6,4.81 6.41,5.27 6.8,5.76L7.89,5.13L8.89,6.87L7.89,7.44C8.45,8.53 8.82,9.73 8.95,11H10V12L10,13H8.95C8.82,14.27 8.45,15.47 7.89,16.56L8.89,17.13L7.89,18.87L6.8,18.24C6.41,18.73 6,19.19 5.5,19.6C7.25,21.1 9.5,22 12,22C14.5,22 16.75,21.1 18.5,19.6C18,19.19 17.59,18.73 17.19,18.24L16.11,18.87L15.11,17.13L16.11,16.55C15.55,15.47 15.18,14.27 15.05,13H14V11H15.05C15.18,9.73 15.55,8.53 16.11,7.45L15.11,6.87L16.11,5.13L17.19,5.76C17.59,5.27 18,4.81 18.5,4.4C16.75,2.9 14.5,2 12,2M4.12,5.85C2.79,7.55 2,9.68 2,12C2,14.32 2.79,16.45 4.12,18.15C4.46,17.87 4.76,17.55 5.05,17.22L4.43,16.87L5.43,15.13L6.16,15.56C6.55,14.77 6.82,13.91 6.93,13H6V12L6,11H6.93C6.82,10.09 6.55,9.23 6.16,8.44L5.43,8.87L4.43,7.13L5.05,6.78C4.76,6.45 4.46,6.13 4.12,5.85M19.88,5.85C19.54,6.13 19.24,6.45 18.95,6.78L19.57,7.13L18.57,8.87L17.84,8.44C17.45,9.23 17.18,10.09 17.07,11H18V13H17.07C17.18,13.91 17.45,14.77 17.84,15.56L18.57,15.13L19.57,16.87L18.95,17.22C19.24,17.55 19.54,17.87 19.88,18.15C21.21,16.45 22,14.32 22,12C22,9.68 21.21,7.55 19.88,5.85Z\";\nexport var mdiBaseballBat = \"M20,2C19.72,2 19.5,2.11 19.29,2.29L9.79,11.79C9.75,11.83 9.72,11.87 7.23,15.35L4,18.59L3.71,18.29C3.5,18.1 3.26,18 3,18C2.44,18 2,18.44 2,19C2,19.26 2.1,19.5 2.29,19.71L4.29,21.71C4.68,22.11 5.31,22.12 5.71,21.74C6.11,21.35 6.12,20.72 5.71,20.29L5.41,20L8.64,16.77L12.21,14.21L21.71,4.71C22.1,4.32 22.1,3.68 21.71,3.29L20.71,2.29C20.5,2.1 20.26,2 20,2M18.5,13A2.5,2.5 0 0,0 16,15.5A2.5,2.5 0 0,0 18.5,18A2.5,2.5 0 0,0 21,15.5A2.5,2.5 0 0,0 18.5,13Z\";\nexport var mdiBaseballDiamond = \"M5.79 12.79L2 9C2 9 6 3 12 3S22 9 22 9L18.21 12.79L12 6.59L5.79 12.79M13.5 18H10.5V20L12 21L13.5 20V18M16.79 14.21L14.2 16.8C13.6 16.31 12.84 16 12 16S10.4 16.31 9.8 16.8L7.21 14.21L12 9.41L16.79 14.21M13 14C13 13.45 12.55 13 12 13S11 13.45 11 14 11.45 15 12 15 13 14.55 13 14Z\";\nexport var mdiBaseballDiamondOutline = \"M12 2C5 2 1 9 1 9L9.3 17.3C9.74 16.77 10.32 16.37 11 16.17L7.83 13L12 8.83L16.17 13L13 16.17C13.68 16.37 14.27 16.77 14.7 17.3L23 9C23 9 19 2 12 2M17.59 11.59L12 6L6.41 11.59L3.59 8.76C4.95 7 7.89 4 12 4C16.08 4 19.03 7 20.4 8.77L17.59 11.59M13 13C13 13.55 12.55 14 12 14S11 13.55 11 13 11.45 12 12 12 13 12.45 13 13M13.5 20L12 21L10.5 20V18H13.5V20Z\";\nexport var mdiBaseballOutline = \"M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M7.89 18.86C9.12 19.6 10.54 20 12 20C13.46 20 14.88 19.6 16.11 18.86L15.11 17.13L16.11 16.55C15.55 15.47 15.18 14.27 15.05 13H14V11H15.05C15.18 9.73 15.55 8.53 16.11 7.45L15.11 6.87L16.11 5.14C14.88 4.4 13.46 4 12 4C10.54 4 9.12 4.4 7.89 5.14L8.89 6.87L7.89 7.44C8.45 8.53 8.82 9.73 8.95 11H10V13H8.95C8.82 14.27 8.45 15.47 7.89 16.56L8.89 17.13L7.89 18.86M5 15.88L5.43 15.13L6.16 15.56C6.55 14.77 6.82 13.91 6.93 13H6V11H6.93C6.82 10.09 6.55 9.23 6.16 8.44L5.43 8.87L5 8.12C4.35 9.3 4 10.63 4 12C4 13.37 4.35 14.7 5 15.88M19 8.13L18.57 8.87L17.84 8.44C17.45 9.23 17.18 10.09 17.07 11H18V13H17.07C17.18 13.91 17.45 14.77 17.84 15.56L18.57 15.13L19 15.88C19.65 14.7 20 13.37 20 12C20 10.63 19.65 9.3 19 8.12Z\";\nexport var mdiBash = \"M5 9H7.31L7.63 6H9.63L9.31 9H11.31L11.63 6H13.63L13.31 9H15V11H13.1L12.9 13H15V15H12.69L12.37 18H10.37L10.69 15H8.69L8.37 18H6.37L6.69 15H5V13H6.9L7.1 11H5V9M9.1 11L8.9 13H10.9L11.1 11M19 6H17V14H19M19 16H17V18H19Z\";\nexport var mdiBasket = \"M5.5,21C4.72,21 4.04,20.55 3.71,19.9V19.9L1.1,10.44L1,10A1,1 0 0,1 2,9H6.58L11.18,2.43C11.36,2.17 11.66,2 12,2C12.34,2 12.65,2.17 12.83,2.44L17.42,9H22A1,1 0 0,1 23,10L22.96,10.29L20.29,19.9C19.96,20.55 19.28,21 18.5,21H5.5M12,4.74L9,9H15L12,4.74M12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13Z\";\nexport var mdiBasketCheck = \"M21.63 16.27L17.76 20.17L16.41 18.8L15 20.22L17.75 23L23.03 17.68L21.63 16.27M13 20C13 16.69 15.69 14 19 14C20 14 20.92 14.24 21.74 14.67L22.96 10.29L23 10C23 9.45 22.55 9 22 9H17.42L12.83 2.44C12.65 2.17 12.34 2 12 2S11.36 2.17 11.18 2.43L6.58 9H2C1.45 9 1 9.45 1 10L1.1 10.44L3.71 19.9C4.04 20.55 4.72 21 5.5 21H13.09C13.04 20.67 13 20.34 13 20M12 4.74L15 9H9L12 4.74M10 15C10 13.9 10.9 13 12 13S14 13.9 14 15 13.11 17 12 17 10 16.11 10 15Z\";\nexport var mdiBasketCheckOutline = \"M21.63 16.27L17.76 20.17L16.41 18.8L15 20.22L17.75 23L23.03 17.68L21.63 16.27M14 15C14 16.1 13.1 17 12 17S10 16.1 10 15 10.9 13 12 13 14 13.9 14 15M13 20C13 19.66 13.04 19.33 13.09 19H5.5L3.31 11H20.7L19.86 14.07C20.54 14.17 21.18 14.37 21.76 14.68L22.97 10.27L23 10C23 9.45 22.55 9 22 9H17.21L12.83 2.44C12.64 2.16 12.32 2 12 2S11.36 2.16 11.17 2.45L6.79 9H2C1.45 9 1 9.45 1 10C1 10.09 1 10.18 1.04 10.27L3.58 19.54C3.81 20.38 4.58 21 5.5 21H13.09C13.04 20.67 13 20.34 13 20M12 4.8L14.8 9H9.2L12 4.8Z\";\nexport var mdiBasketFill = \"M3,2H6V5H3V2M6,7H9V10H6V7M8,2H11V5H8V2M17,11L12,6H15V2H19V6H22L17,11M7.5,22C6.72,22 6.04,21.55 5.71,20.9V20.9L3.1,13.44L3,13A1,1 0 0,1 4,12H20A1,1 0 0,1 21,13L20.96,13.29L18.29,20.9C17.96,21.55 17.28,22 16.5,22H7.5M7.61,20H16.39L18.57,14H5.42L7.61,20Z\";\nexport var mdiBasketMinus = \"M23 18V20H15V18H23M23 10L22.96 10.29L22 13.8C21.11 13.29 20.09 13 19 13C15.69 13 13 15.69 13 19C13 19.7 13.13 20.37 13.35 21H5.5C4.72 21 4.04 20.55 3.71 19.9L1.1 10.44L1 10C1 9.45 1.45 9 2 9H6.58L11.18 2.43C11.36 2.17 11.66 2 12 2S12.65 2.17 12.83 2.44L17.42 9H22C22.55 9 23 9.45 23 10M14 15C14 13.9 13.11 13 12 13S10 13.9 10 15 10.9 17 12 17 14 16.11 14 15M15 9L12 4.74L9 9H15Z\";\nexport var mdiBasketMinusOutline = \"M23 18V20H15V18H23M12 13C10.9 13 10 13.9 10 15S10.9 17 12 17 14 16.1 14 15 13.1 13 12 13M13.35 21H5.5C4.58 21 3.81 20.38 3.58 19.54L1.04 10.27C1 10.18 1 10.09 1 10C1 9.45 1.45 9 2 9H6.79L11.17 2.45C11.36 2.16 11.68 2 12 2S12.64 2.16 12.83 2.44L17.21 9H22C22.55 9 23 9.45 23 10L22.97 10.27L22 13.81C21.43 13.5 20.79 13.24 20.12 13.11L20.7 11H3.31L5.5 19H13C13 19.7 13.13 20.37 13.35 21M9.2 9H14.8L12 4.8L9.2 9Z\";\nexport var mdiBasketOff = \"M23 10L22.96 10.29L20.9 17.7L12.2 9H15L12 4.74L10.32 7.12L8.89 5.69L11.18 2.43C11.36 2.17 11.66 2 12 2S12.65 2.17 12.83 2.44L17.42 9H22C22.55 9 23 9.45 23 10M22.11 21.46L20.84 22.73L19.03 20.92C18.86 20.97 18.68 21 18.5 21H5.5C4.72 21 4.04 20.55 3.71 19.9L1.1 10.44L1 10C1 9.45 1.45 9 2 9H6.58L6.8 8.69L1.11 3L2.39 1.73L22.11 21.46M13.85 15.74L11.26 13.15C10.5 13.44 10 14.16 10 15C10 16.11 10.9 17 12 17C12.84 17 13.56 16.5 13.85 15.74Z\";\nexport var mdiBasketOffOutline = \"M2.39 1.73L1.11 3L6.92 8.81L6.79 9H2C1.45 9 1 9.45 1 10C1 10.09 1 10.18 1.04 10.27L3.58 19.54C3.81 20.38 4.58 21 5.5 21H18.5C18.68 21 18.86 20.96 19.03 20.92L20.84 22.73L22.11 21.46L2.39 1.73M5.5 19L3.31 11H9.11L11.26 13.15C10.5 13.44 10 14.16 10 15C10 16.1 10.9 17 12 17C12.84 17 13.56 16.5 13.85 15.74L17.11 19H5.5M23 10L22.97 10.27L20.93 17.73L19.3 16.1L20.7 11H14.2L12.2 9H14.8L12 4.8L10.4 7.2L8.96 5.76L11.17 2.45C11.36 2.16 11.68 2 12 2S12.64 2.16 12.83 2.44L17.21 9H22C22.55 9 23 9.45 23 10Z\";\nexport var mdiBasketOutline = \"M22 9H17.21L12.83 2.44C12.64 2.16 12.32 2 12 2S11.36 2.16 11.17 2.45L6.79 9H2C1.45 9 1 9.45 1 10C1 10.09 1 10.18 1.04 10.27L3.58 19.54C3.81 20.38 4.58 21 5.5 21H18.5C19.42 21 20.19 20.38 20.43 19.54L22.97 10.27L23 10C23 9.45 22.55 9 22 9M12 4.8L14.8 9H9.2L12 4.8M18.5 19L5.5 19L3.31 11H20.7L18.5 19M12 13C10.9 13 10 13.9 10 15S10.9 17 12 17 14 16.1 14 15 13.1 13 12 13Z\";\nexport var mdiBasketPlus = \"M20 15V18H23V20H20V23H18V20H15V18H18V15H20M23 10L22.96 10.29L22 13.8C21.11 13.29 20.09 13 19 13C15.69 13 13 15.69 13 19C13 19.7 13.13 20.37 13.35 21H5.5C4.72 21 4.04 20.55 3.71 19.9L1.1 10.44L1 10C1 9.45 1.45 9 2 9H6.58L11.18 2.43C11.36 2.17 11.66 2 12 2S12.65 2.17 12.83 2.44L17.42 9H22C22.55 9 23 9.45 23 10M14 15C14 13.9 13.11 13 12 13S10 13.9 10 15 10.9 17 12 17 14 16.11 14 15M15 9L12 4.74L9 9H15Z\";\nexport var mdiBasketPlusOutline = \"M20 15V18H23V20H20V23H18V20H15V18H18V15H20M12 13C10.9 13 10 13.9 10 15S10.9 17 12 17 14 16.1 14 15 13.1 13 12 13M13.35 21H5.5C4.58 21 3.81 20.38 3.58 19.54L1.04 10.27C1 10.18 1 10.09 1 10C1 9.45 1.45 9 2 9H6.79L11.17 2.45C11.36 2.16 11.68 2 12 2S12.64 2.16 12.83 2.44L17.21 9H22C22.55 9 23 9.45 23 10L22.97 10.27L22 13.81C21.43 13.5 20.79 13.24 20.12 13.11L20.7 11H3.31L5.5 19H13C13 19.7 13.13 20.37 13.35 21M9.2 9H14.8L12 4.8L9.2 9Z\";\nexport var mdiBasketRemove = \"M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.46L22.54 16.88M23 10L22.96 10.29L22 13.8C21.11 13.29 20.09 13 19 13C15.69 13 13 15.69 13 19C13 19.7 13.13 20.37 13.35 21H5.5C4.72 21 4.04 20.55 3.71 19.9L1.1 10.44L1 10C1 9.45 1.45 9 2 9H6.58L11.18 2.43C11.36 2.17 11.66 2 12 2S12.65 2.17 12.83 2.44L17.42 9H22C22.55 9 23 9.45 23 10M14 15C14 13.9 13.11 13 12 13S10 13.9 10 15 10.9 17 12 17 14 16.11 14 15M15 9L12 4.74L9 9H15Z\";\nexport var mdiBasketRemoveOutline = \"M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.46L22.54 16.88M12 13C10.9 13 10 13.9 10 15S10.9 17 12 17 14 16.1 14 15 13.1 13 12 13M13.35 21H5.5C4.58 21 3.81 20.38 3.58 19.54L1.04 10.27C1 10.18 1 10.09 1 10C1 9.45 1.45 9 2 9H6.79L11.17 2.45C11.36 2.16 11.68 2 12 2S12.64 2.16 12.83 2.44L17.21 9H22C22.55 9 23 9.45 23 10L22.97 10.27L22 13.81C21.43 13.5 20.79 13.24 20.12 13.11L20.7 11H3.31L5.5 19H13C13 19.7 13.13 20.37 13.35 21M9.2 9H14.8L12 4.8L9.2 9Z\";\nexport var mdiBasketUnfill = \"M3,10H6V7H3V10M5,5H8V2H5V5M8,10H11V7H8V10M17,1L12,6H15V10H19V6H22L17,1M7.5,22C6.72,22 6.04,21.55 5.71,20.9V20.9L3.1,13.44L3,13A1,1 0 0,1 4,12H20A1,1 0 0,1 21,13L20.96,13.29L18.29,20.9C17.96,21.55 17.28,22 16.5,22H7.5M7.61,20H16.39L18.57,14H5.42L7.61,20Z\";\nexport var mdiBasketball = \"M2.34,14.63C2.94,14.41 3.56,14.3 4.22,14.3C5.56,14.3 6.73,14.72 7.73,15.56L4.59,18.7C3.53,17.5 2.78,16.13 2.34,14.63M15.56,9.8C17.53,11.27 19.66,11.63 21.94,10.88C21.97,11.09 22,11.47 22,12C22,13.03 21.75,14.18 21.28,15.45C20.81,16.71 20.23,17.73 19.55,18.5L13.22,12.19L15.56,9.8M8.77,16.64C9.83,18.17 10.05,19.84 9.42,21.66C8,21.25 6.73,20.61 5.67,19.73L8.77,16.64M12.19,13.22L18.5,19.55C16.33,21.45 13.78,22.25 10.88,21.94C11.09,21.28 11.2,20.56 11.2,19.78C11.2,19.16 11.06,18.43 10.78,17.6C10.5,16.77 10.17,16.09 9.8,15.56L12.19,13.22M8.81,14.5C7.88,13.67 6.8,13.15 5.58,12.91C4.36,12.68 3.19,12.75 2.06,13.13C2.03,12.91 2,12.53 2,12C2,10.97 2.25,9.82 2.72,8.55C3.19,7.29 3.77,6.27 4.45,5.5L11.11,12.19L8.81,14.5M15.56,7.73C14.22,6.08 13.91,4.28 14.63,2.34C15.25,2.5 15.96,2.8 16.76,3.26C17.55,3.71 18.2,4.16 18.7,4.59L15.56,7.73M21.66,9.38C21.06,9.59 20.44,9.7 19.78,9.7C18.69,9.7 17.64,9.38 16.64,8.72L19.73,5.67C20.61,6.77 21.25,8 21.66,9.38M12.19,11.11L5.5,4.45C7.67,2.55 10.22,1.75 13.13,2.06C12.91,2.72 12.8,3.44 12.8,4.22C12.8,4.94 12.96,5.75 13.29,6.66C13.62,7.56 14,8.28 14.5,8.81L12.19,11.11Z\";\nexport var mdiBasketballHoop = \"M21,2H3A2,2 0 0,0 1,4V16A2,2 0 0,0 3,18H5V14H19V18H21A2,2 0 0,0 23,16V4A2,2 0 0,0 21,2M17,12H15V9H9V12H7V9A2,2 0 0,1 9,7H15A2,2 0 0,1 17,9V12M7,16V19.5L8,23L10,21L12,23L14,21L16,23L17,19.5V16H7Z\";\nexport var mdiBasketballHoopOutline = \"M21,2H3A2,2 0 0,0 1,4V16A2,2 0 0,0 3,18H6.57L8,23L10,21L12,23L14,21L16,23L17.43,18H21A2,2 0 0,0 23,16V4A2,2 0 0,0 21,2M21,16H18V14H17V9A2,2 0 0,0 15,7H9A2,2 0 0,0 7,9V14H6V16H3V4H21V16M9,14V9H15V14H9Z\";\nexport var mdiBat = \"M0.75,8C0.75,8 5,7 8,9C8,9 8.5,12.75 10.5,12.75V11C10.5,11 11,12 12,12C13,12 13.5,11 13.5,11V12.75C15.5,12.75 16,9 16,9C19,7 23.25,8 23.25,8C21.25,9 21,12.5 21,12.5C17,12.5 17,15.75 17,15.75C12,14.75 12,18.5 12,18.5C12,18.5 12,14.75 7,15.75C7,15.75 7,12.5 3,12.5C3,12.5 2.75,9 0.75,8Z\";\nexport var mdiBathtub = \"M7 5C8.11 5 9 5.9 9 7S8.11 9 7 9 5 8.11 5 7 5.9 5 7 5M20 13V4.83C20 3.27 18.73 2 17.17 2C16.42 2 15.7 2.3 15.17 2.83L13.92 4.08C13.76 4.03 13.59 4 13.41 4C13 4 12.64 4.12 12.33 4.32L15.09 7.08C15.29 6.77 15.41 6.4 15.41 6C15.41 5.82 15.38 5.66 15.34 5.5L16.59 4.24C16.74 4.09 16.95 4 17.17 4C17.63 4 18 4.37 18 4.83V13H11.15C10.85 12.79 10.58 12.55 10.33 12.28L8.93 10.73C8.74 10.5 8.5 10.35 8.24 10.23C7.93 10.08 7.59 10 7.24 10C6 10 5 11 5 12.25V13H2V19C2 20.1 2.9 21 4 21C4 21.55 4.45 22 5 22H19C19.55 22 20 21.55 20 21C21.1 21 22 20.1 22 19V13H20Z\";\nexport var mdiBathtubOutline = \"M7 5C8.11 5 9 5.9 9 7S8.11 9 7 9 5 8.11 5 7 5.9 5 7 5M20 13V4.83C20 3.27 18.73 2 17.17 2C16.42 2 15.7 2.3 15.17 2.83L13.92 4.08C13.76 4.03 13.59 4 13.41 4C13 4 12.64 4.12 12.33 4.32L15.09 7.08C15.29 6.77 15.41 6.4 15.41 6C15.41 5.82 15.38 5.66 15.34 5.5L16.59 4.24C16.74 4.09 16.95 4 17.17 4C17.63 4 18 4.37 18 4.83V13H11.15C10.85 12.79 10.58 12.55 10.33 12.28L8.93 10.73C8.74 10.5 8.5 10.35 8.24 10.23C7.93 10.08 7.59 10 7.24 10C6 10 5 11 5 12.25V13H2V19C2 20.1 2.9 21 4 21C4 21.55 4.45 22 5 22H19C19.55 22 20 21.55 20 21C21.1 21 22 20.1 22 19V13H20M20 19H4V15H20V19Z\";\nexport var mdiBattery = \"M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery10 = \"M16,18H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery10Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V18H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery20 = \"M16,17H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery20Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V17H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery30 = \"M16,15H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery30Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V15H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery40 = \"M16,14H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery40Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V14H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery50 = \"M16,13H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery50Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V13H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery60 = \"M16,12H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery60Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V12H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery70 = \"M16,10H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery70Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V10H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery80 = \"M16,9H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery80Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V9H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBattery90 = \"M16,8H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBattery90Bluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M4,6H12V8H4V6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBatteryAlert = \"M13 14H11V8H13M13 18H11V16H13M16.7 4H15V2H9V4H7.3C6.6 4 6 4.6 6 5.3V20.6C6 21.4 6.6 22 7.3 22H16.6C17.3 22 17.9 21.4 17.9 20.7V5.3C18 4.6 17.4 4 16.7 4Z\";\nexport var mdiBatteryAlertBluetooth = \"M5 2V4H3.3C2.6 4 2 4.6 2 5.3V20.6C2 21.4 2.6 22 3.3 22H12.6C13.3 22 13.9 21.4 13.9 20.7V5.3C14 4.6 13.4 4 12.7 4H11V2H5M19 8V11.8L16.7 9.5L16 10.2L18.8 13L16 15.8L16.7 16.5L19 14.2V18H19.5L22.4 15.1L20.2 13L22.3 10.9L19.5 8H19M7 8H9V14H7M20 9.9L20.9 10.8L20 11.8V9.9M20 14.2L20.9 15.1L20 16.1V14.2M7 16H9V18H7V16Z\";\nexport var mdiBatteryAlertVariant = \"M14.67 4H13V2H7V4H5.33C4.6 4 4 4.6 4 5.33V20.67C4 21.4 4.6 22 5.33 22H14.67C15.4 22 16 21.4 16 20.67V5.33C16 4.6 15.4 4 14.67 4M21 13H19V7H21V13M21 17H19V15H21V17Z\";\nexport var mdiBatteryAlertVariantOutline = \"M14 20H6V6H14M14.67 4H13V2H7V4H5.33C4.6 4 4 4.6 4 5.33V20.67C4 21.4 4.6 22 5.33 22H14.67C15.4 22 16 21.4 16 20.67V5.33C16 4.6 15.4 4 14.67 4M21 7H19V13H21V8M21 15H19V17H21V15Z\";\nexport var mdiBatteryArrowDown = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M14.94 18.5L17.94 21.5L20.94 18.5H18.94V14.5H16.94V18.5H14.94\";\nexport var mdiBatteryArrowDownOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M14.94 18.5L17.94 21.5L20.94 18.5H18.94V14.5H16.94V18.5H14.94\";\nexport var mdiBatteryArrowUp = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M20.94 17.5L17.94 14.5L14.94 17.5H16.94V21.5H18.94V17.5H20.94\";\nexport var mdiBatteryArrowUpOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M20.94 17.5L17.94 14.5L14.94 17.5H16.94V21.5H18.94V17.5H20.94\";\nexport var mdiBatteryBluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4H11V2H5M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21Z\";\nexport var mdiBatteryBluetoothVariant = \"M9,2V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4H15V2H9M11.83,8H12.33L15.18,10.85L13.04,13L15.17,15.14L12.33,18H11.83V14.21L9.54,16.5L8.83,15.79L11.62,13L8.83,10.21L9.54,9.5L11.83,11.79V8M12.83,9.91V11.79L13.77,10.85L12.83,9.91M12.83,14.21V16.08L13.77,15.14L12.83,14.21Z\";\nexport var mdiBatteryCharging = \"M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.66C17.4,22 18,21.4 18,20.67V5.33C18,4.6 17.4,4 16.67,4M11,20V14.5H9L13,7V12.5H15\";\nexport var mdiBatteryCharging10 = \"M23.05,11H20.05V4L15.05,14H18.05V22M12,18H4L4.05,6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z\";\nexport var mdiBatteryCharging100 = \"M23,11H20V4L15,14H18V22M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z\";\nexport var mdiBatteryCharging20 = \"M23.05,11H20.05V4L15.05,14H18.05V22M12.05,17H4.05V6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z\";\nexport var mdiBatteryCharging30 = \"M12,15H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z\";\nexport var mdiBatteryCharging40 = \"M13 4H11V2H5V4H3C2.4 4 2 4.4 2 5V21C2 21.6 2.4 22 3 22H13C13.6 22 14 21.6 14 21V5C14 4.4 13.6 4 13 4M12 14.5H4V6H12V14.5M23 11H20V4L15 14H18V22\";\nexport var mdiBatteryCharging50 = \"M23,11H20V4L15,14H18V22M12,13H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z\";\nexport var mdiBatteryCharging60 = \"M12,11H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z\";\nexport var mdiBatteryCharging70 = \"M12,10H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z\";\nexport var mdiBatteryCharging80 = \"M23,11H20V4L15,14H18V22M12,9H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z\";\nexport var mdiBatteryCharging90 = \"M23,11H20V4L15,14H18V22M12,8H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z\";\nexport var mdiBatteryChargingHigh = \"M12 20H4V6H12M12.67 4H11V2H5V4H3.33C2.6 4 2 4.6 2 5.33V20.67C2 21.4 2.6 22 3.33 22H12.67C13.41 22 14 21.41 14 20.67V5.33C14 4.6 13.4 4 12.67 4M11 16H5V19H11V16M11 7H5V10H11V7M11 11.5H5V14.5H11V11.5M23 10H20V3L15 13H18V21\";\nexport var mdiBatteryChargingLow = \"M12 20H4V6H12M12.67 4H11V2H5V4H3.33C2.6 4 2 4.6 2 5.33V20.67C2 21.4 2.6 22 3.33 22H12.67C13.41 22 14 21.41 14 20.67V5.33C14 4.6 13.4 4 12.67 4M11 16H5V19H11V16M23 10H20V3L15 13H18V21\";\nexport var mdiBatteryChargingMedium = \"M12 20H4V6H12M12.67 4H11V2H5V4H3.33C2.6 4 2 4.6 2 5.33V20.67C2 21.4 2.6 22 3.33 22H12.67C13.41 22 14 21.41 14 20.67V5.33C14 4.6 13.4 4 12.67 4M11 16H5V19H11V16M11 11.5H5V14.5H11V11.5M23 10H20V3L15 13H18V21\";\nexport var mdiBatteryChargingOutline = \"M23.05,11H20.05V4L15.05,14H18.05V22M12,20H4L4.05,6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z\";\nexport var mdiBatteryChargingWireless = \"M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76Z\";\nexport var mdiBatteryChargingWireless10 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,18.5H4V6H12V18.5Z\";\nexport var mdiBatteryChargingWireless20 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,17H4V6H12V17Z\";\nexport var mdiBatteryChargingWireless30 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,16H4V6H12V16Z\";\nexport var mdiBatteryChargingWireless40 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,14.5H4V6H12V14.5Z\";\nexport var mdiBatteryChargingWireless50 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,13H4V6H12V13Z\";\nexport var mdiBatteryChargingWireless60 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,11.6H4V6H12V11.6Z\";\nexport var mdiBatteryChargingWireless70 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,10H4V6H12V10Z\";\nexport var mdiBatteryChargingWireless80 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,9H4V6H12V9Z\";\nexport var mdiBatteryChargingWireless90 = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,7.5H4V6H12V7.5Z\";\nexport var mdiBatteryChargingWirelessAlert = \"M13 4H11V2H5V4H3C2.4 4 2 4.4 2 5V21C2 21.6 2.4 22 3 22H13C13.6 22 14 21.6 14 21V5C14 4.4 13.6 4 13 4M9 18H7V16H9V18M9 14H7V8H9V14M20.1 4.9L18.7 6.3C21.8 9.4 21.8 14.5 18.7 17.6L20.1 19C24 15.2 24 8.8 20.1 4.9M17.2 7.8L15.8 9.2C17.4 10.8 17.4 13.3 15.8 14.9L17.2 16.3C19.6 13.9 19.6 10.1 17.2 7.8Z\";\nexport var mdiBatteryChargingWirelessOutline = \"M20.07,4.93L18.66,6.34C21.79,9.46 21.79,14.53 18.66,17.66L20.07,19.07C23.97,15.17 23.97,8.84 20.07,4.93M17.24,7.76L15.83,9.17C17.39,10.73 17.39,13.26 15.83,14.83L17.24,16.24C19.58,13.9 19.58,10.1 17.24,7.76M13,4H11V2H5V4H3A1,1 0 0,0 2,5V21A1,1 0 0,0 3,22H13A1,1 0 0,0 14,21V5A1,1 0 0,0 13,4M12,20H4V6H12V20Z\";\nexport var mdiBatteryCheck = \"M16.75 21.16L14 18.16L15.16 17L16.75 18.59L20.34 15L21.5 16.41L16.75 21.16M12 18C12 14.69 14.69 12 18 12V5.33C18 4.6 17.4 4 16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H13.54C12.58 20.94 12 19.54 12 18Z\";\nexport var mdiBatteryCheckOutline = \"M16.75 21.16L14 18.16L15.16 17L16.75 18.59L20.34 15L21.5 16.41L16.75 21.16M12.35 20H8V6H16V12.35C16.63 12.13 17.3 12 18 12V5.33C18 4.6 17.4 4 16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H13.54C13 21.42 12.61 20.75 12.35 20Z\";\nexport var mdiBatteryClock = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C14.69 23 13.46 22.63 12.41 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V9.29C20.89 10.15 23 12.83 23 16M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiBatteryClockOutline = \"M18 9.29V5.33C18 4.6 17.4 4 16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H12.41C13.46 22.63 14.69 23 16 23C19.87 23 23 19.87 23 16C23 12.83 20.89 10.15 18 9.29M8 6H16V9C12.13 9 9 12.13 9 16C9 17.5 9.47 18.87 10.26 20H8V6M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiBatteryHeart = \"M12.67 4H11V2H5V4H3.33A1.34 1.34 0 0 0 2 5.33V20.67A1.34 1.34 0 0 0 3.33 22H12.67A1.34 1.34 0 0 0 14 20.67V5.33A1.34 1.34 0 0 0 12.67 4M19 16.17L18.42 15.64C16.36 13.77 15 12.54 15 11A2.18 2.18 0 0 1 17.2 8.8A2.4 2.4 0 0 1 19 9.63A2.4 2.4 0 0 1 20.8 8.8A2.18 2.18 0 0 1 23 11C23 12.5 21.64 13.74 19.58 15.61Z\";\nexport var mdiBatteryHeartOutline = \"M19 16.2L18.4 15.7C16.4 13.8 15 12.5 15 11C15 9.8 16 8.8 17.2 8.8C17.9 8.8 18.5 9.1 19 9.6C19.5 9.1 20.1 8.8 20.8 8.8C22 8.8 23 9.8 23 11C23 12.5 21.6 13.7 19.6 15.6L19 16.2M12.7 4H11V2H5V4H3.3C2.6 4 2 4.6 2 5.3V20.6C2 21.4 2.6 22 3.3 22H12.6C13.3 22 13.9 21.4 13.9 20.7V5.3C14 4.6 13.4 4 12.7 4M12 20H4V6H12V20Z\";\nexport var mdiBatteryHeartVariant = \"M16.67 4H15V2H9V4H7.33A1.34 1.34 0 0 0 6 5.33V20.67A1.34 1.34 0 0 0 7.33 22H16.67A1.34 1.34 0 0 0 18 20.67V5.33A1.34 1.34 0 0 0 16.67 4M12.58 15.64L12 16.17L11.42 15.64C9.36 13.77 8 12.54 8 11A2.18 2.18 0 0 1 10.2 8.8A2.4 2.4 0 0 1 12 9.63A2.4 2.4 0 0 1 13.8 8.8A2.18 2.18 0 0 1 16 11C16 12.54 14.64 13.77 12.58 15.64Z\";\nexport var mdiBatteryHigh = \"M16 20H8V6H16M16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H16.67C17.41 22 18 21.41 18 20.67V5.33C18 4.6 17.4 4 16.67 4M15 16H9V19H15V16M15 7H9V10H15V7M15 11.5H9V14.5H15V11.5Z\";\nexport var mdiBatteryLock = \"M19.8 16V14.5C19.8 13.1 18.4 12 17 12S14.2 13.1 14.2 14.5V16C13.6 16 13 16.6 13 17.2V20.7C13 21.4 13.6 22 14.2 22H19.7C20.4 22 21 21.4 21 20.8V17.3C21 16.6 20.4 16 19.8 16M18.5 16H15.5V14.5C15.5 13.7 16.2 13.2 17 13.2S18.5 13.7 18.5 14.5V16M11.27 22H5.33C4.6 22 4 21.4 4 20.67V5.33C4 4.6 4.6 4 5.33 4H7V2H13V4H14.67C15.4 4 16 4.6 16 5.33V10.11C13.86 10.55 12.2 12.38 12.2 14.5V14.74C11.5 15.34 11 16.24 11 17.2V20.7C11 21.16 11.1 21.6 11.27 22Z\";\nexport var mdiBatteryLockOpen = \"M19.8 16H15.5V13.5C15.5 12.7 16.2 12.2 17 12.2S18.5 12.7 18.5 13.5V14H19.8V13.5C19.8 12.1 18.4 11 17 11S14.2 12.1 14.2 13.5V16C13.6 16 13 16.6 13 17.2V20.7C13 21.4 13.6 22 14.2 22H19.7C20.4 22 21 21.4 21 20.8V17.3C21 16.6 20.4 16 19.8 16M11.27 22H5.33C4.6 22 4 21.4 4 20.67V5.33C4 4.6 4.6 4 5.33 4H7V2H13V4H14.67C15.4 4 16 4.6 16 5.33V9.11C13.86 9.55 12.2 11.38 12.2 13.5V14.74C11.5 15.34 11 16.24 11 17.2V20.7C11 20.93 11.03 21.15 11.07 21.37L11.08 21.39C11.12 21.6 11.19 21.8 11.27 22Z\";\nexport var mdiBatteryLow = \"M16 20H8V6H16M16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H16.67C17.41 22 18 21.41 18 20.67V5.33C18 4.6 17.4 4 16.67 4M15 16H9V19H15V16\";\nexport var mdiBatteryMedium = \"M16 20H8V6H16M16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H16.67C17.41 22 18 21.41 18 20.67V5.33C18 4.6 17.4 4 16.67 4M15 16H9V19H15V16M15 11.5H9V14.5H15V11.5Z\";\nexport var mdiBatteryMinus = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M22 17V19H14V17H22Z\";\nexport var mdiBatteryMinusOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M22 17V19H14V17H22Z\";\nexport var mdiBatteryMinusVariant = \"M16.67,4C17.4,4 18,4.6 18,5.33V20.67A1.33,1.33 0 0,1 16.67,22H7.33C6.6,22 6,21.4 6,20.67V5.33A1.33,1.33 0 0,1 7.33,4H9V2H15V4H16.67M8,12V14H16V12\";\nexport var mdiBatteryNegative = \"M11.67,4A1.33,1.33 0 0,1 13,5.33V20.67C13,21.4 12.4,22 11.67,22H2.33C1.6,22 1,21.4 1,20.67V5.33A1.33,1.33 0 0,1 2.33,4H4V2H10V4H11.67M15,12H23V14H15V12M3,13H11V6H3V13Z\";\nexport var mdiBatteryOff = \"M18 14.8L7.21 4H9V2H15V4H16.67A1.34 1.34 0 0 1 18 5.33M18 17.35L3.38 2.73L2.11 4L6 7.89V20.67A1.34 1.34 0 0 0 7.33 22H16.67A1.34 1.34 0 0 0 18 20.67V19.89L20.84 22.73L22.11 21.46Z\";\nexport var mdiBatteryOffOutline = \"M18 17.35L3.38 2.73L2.11 4L6 7.89V20.67A1.34 1.34 0 0 0 7.33 22H16.67A1.34 1.34 0 0 0 18 20.67V19.89L20.84 22.73L22.11 21.46M16 20H8V9.89L16 17.89M16 6V12.8L18 14.8V5.33A1.34 1.34 0 0 0 16.67 4H15V2H9V4H7.21L9.21 6Z\";\nexport var mdiBatteryOutline = \"M16,20H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z\";\nexport var mdiBatteryPlus = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M22 17V19H19V22H17V19H14V17H17V14H19V17H22Z\";\nexport var mdiBatteryPlusOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M22 17V19H19V22H17V19H14V17H17V14H19V17H22Z\";\nexport var mdiBatteryPlusVariant = \"M16.67,4C17.4,4 18,4.6 18,5.33V20.67A1.33,1.33 0 0,1 16.67,22H7.33C6.6,22 6,21.4 6,20.67V5.33A1.33,1.33 0 0,1 7.33,4H9V2H15V4H16.67M16,14V12H13V9H11V12H8V14H11V17H13V14H16Z\";\nexport var mdiBatteryPositive = \"M11.67,4A1.33,1.33 0 0,1 13,5.33V20.67C13,21.4 12.4,22 11.67,22H2.33C1.6,22 1,21.4 1,20.67V5.33A1.33,1.33 0 0,1 2.33,4H4V2H10V4H11.67M23,14H20V17H18V14H15V12H18V9H20V12H23V14M3,13H11V6H3V13Z\";\nexport var mdiBatteryRemove = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12Z\";\nexport var mdiBatteryRemoveOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12Z\";\nexport var mdiBatterySync = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C14.69 12 12 14.69 12 18C12 19.54 12.58 20.94 13.54 22M18 13L20.25 15.25L18 17.5V16C16.15 16 14.94 17.96 15.76 19.62L14.67 20.71C12.91 18.05 14.81 14.5 18 14.5V13M18 24L15.75 21.75L18 19.5V21C19.85 21 21.06 19.04 20.24 17.38L21.33 16.29C23.09 18.95 21.19 22.5 18 22.5V24\";\nexport var mdiBatterySyncOutline = \"M13.54 22H7.33C6.6 22 6 21.4 6 20.67V5.33C6 4.6 6.6 4 7.33 4H9V2H15V4H16.67C17.4 4 18 4.6 18 5.33V12C17.3 12 16.63 12.13 16 12.35V6H8V20H12.35C12.61 20.75 13 21.42 13.54 22M18 13L20.25 15.25L18 17.5V16C16.15 16 14.94 17.96 15.76 19.62L14.67 20.71C12.91 18.05 14.81 14.5 18 14.5V13M18 24L15.75 21.75L18 19.5V21C19.85 21 21.06 19.04 20.24 17.38L21.33 16.29C23.09 18.95 21.19 22.5 18 22.5V24\";\nexport var mdiBatteryUnknown = \"M15.07,12.25L14.17,13.17C13.63,13.71 13.25,14.18 13.09,15H11.05C11.16,14.1 11.56,13.28 12.17,12.67L13.41,11.41C13.78,11.05 14,10.55 14,10C14,8.89 13.1,8 12,8A2,2 0 0,0 10,10H8A4,4 0 0,1 12,6A4,4 0 0,1 16,10C16,10.88 15.64,11.68 15.07,12.25M13,19H11V17H13M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.67C17.4,22 18,21.4 18,20.66V5.33C18,4.59 17.4,4 16.67,4Z\";\nexport var mdiBatteryUnknownBluetooth = \"M5,2V4H3.33A1.33,1.33 0 0,0 2,5.33V20.66C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.66V5.33C14,4.59 13.4,4 12.67,4H11V2H5M8,6A4,4 0 0,1 12,10C12,10.88 11.64,11.68 11.07,12.25L10.17,13.17C9.63,13.71 9.25,14.18 9.09,15H7.05C7.16,14.1 7.56,13.28 8.17,12.67L9.41,11.41C9.78,11.05 10,10.55 10,10C10,8.89 9.1,8 8,8A2,2 0 0,0 6,10H4A4,4 0 0,1 8,6M19,8V11.79L16.71,9.5L16,10.21L18.79,13L16,15.79L16.71,16.5L19,14.21V18H19.5L22.35,15.14L20.21,13L22.35,10.85L19.5,8H19M20,9.91L20.94,10.85L20,11.79V9.91M20,14.21L20.94,15.14L20,16.08V14.21M7,17H9V19H7V17Z\";\nexport var mdiBeach = \"M15,18.54C17.13,18.21 19.5,18 22,18V22H5C5,21.35 8.2,19.86 13,18.9V12.4C12.16,12.65 11.45,13.21 11,13.95C10.39,12.93 9.27,12.25 8,12.25C6.73,12.25 5.61,12.93 5,13.95C5.03,10.37 8.5,7.43 13,7.04V7A1,1 0 0,1 14,6A1,1 0 0,1 15,7V7.04C19.5,7.43 22.96,10.37 23,13.95C22.39,12.93 21.27,12.25 20,12.25C18.73,12.25 17.61,12.93 17,13.95C16.55,13.21 15.84,12.65 15,12.39V18.54M7,2A5,5 0 0,1 2,7V2H7Z\";\nexport var mdiBeaker = \"M3,3V5A2,2 0 0,1 5,7V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V7A2,2 0 0,1 21,5V3H3M7,9H10V10H7V9M7,11H10V12H7V11M10,16H7V15H10V16M12,14H7V13H12V14M12,8H7V7H12V8Z\";\nexport var mdiBeakerAlert = \"M3 3H21V5C19.9 5 19 5.9 19 7V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V7C5 5.9 4.1 5 3 5V3M7 9V10H10V9H7M7 11V12H10V11H7M10 16V15H7V16H10M12 14V13H7V14H12M12 8V7H7V8H12M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiBeakerAlertOutline = \"M3 3H21V5C19.9 5 19 5.9 19 7V19C19 20.11 18.11 21 17 21H7C5.9 21 5 20.11 5 19V7C5 5.9 4.11 5 3 5V3M7 5V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H17V5H7M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiBeakerCheck = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M3 3H21V5C19.9 5 19 5.9 19 7V12C15.69 12 13 14.69 13 18C13 19.09 13.29 20.12 13.8 21H7C5.9 21 5 20.1 5 19V7C5 5.9 4.1 5 3 5V3M7 9V10H10V9H7M7 11V12H10V11H7M10 16V15H7V16H10M12 14V13H7V14H12M12 8V7H7V8H12Z\";\nexport var mdiBeakerCheckOutline = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M3 3H21V5C19.9 5 19 5.9 19 7V12C18.3 12 17.63 12.12 17 12.34V5H7V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H13.08C13.2 19.72 13.45 20.39 13.8 21H7C5.9 21 5 20.11 5 19V7C5 5.9 4.11 5 3 5V3Z\";\nexport var mdiBeakerMinus = \"M23 17V19H15V17H23M3 3H21V5C19.9 5 19 5.9 19 7V12C15.69 12 13 14.69 13 18C13 19.09 13.29 20.12 13.8 21H7C5.9 21 5 20.1 5 19V7C5 5.9 4.1 5 3 5V3M7 9V10H10V9H7M7 11V12H10V11H7M10 16V15H7V16H10M12 14V13H7V14H12M12 8V7H7V8H12Z\";\nexport var mdiBeakerMinusOutline = \"M23 17V19H15V17M3 3H21V5C19.9 5 19 5.9 19 7V12C18.3 12 17.63 12.12 17 12.34V5H7V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H13.08C13.2 19.72 13.45 20.39 13.8 21H7C5.9 21 5 20.11 5 19V7C5 5.9 4.11 5 3 5V3Z\";\nexport var mdiBeakerOutline = \"M3,3H21V5A2,2 0 0,0 19,7V19A2,2 0 0,1 17,21H7A2,2 0 0,1 5,19V7A2,2 0 0,0 3,5V3M7,5V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H17V5H7Z\";\nexport var mdiBeakerPlus = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M3 3H21V5C19.9 5 19 5.9 19 7V12C15.69 12 13 14.69 13 18C13 19.09 13.29 20.12 13.8 21H7C5.9 21 5 20.1 5 19V7C5 5.9 4.1 5 3 5V3M7 9V10H10V9H7M7 11V12H10V11H7M10 16V15H7V16H10M12 14V13H7V14H12M12 8V7H7V8H12Z\";\nexport var mdiBeakerPlusOutline = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M3 3H21V5C19.9 5 19 5.9 19 7V12C18.3 12 17.63 12.12 17 12.34V5H7V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H13.08C13.2 19.72 13.45 20.39 13.8 21H7C5.9 21 5 20.11 5 19V7C5 5.9 4.11 5 3 5V3Z\";\nexport var mdiBeakerQuestion = \"M0 3H18V5C16.9 5 16 5.9 16 7V19C16 20.1 15.1 21 14 21H4C2.9 21 2 20.1 2 19V7C2 5.9 1.1 5 0 5V3M4 9V10H7V9H4M4 11V12H7V11H4M7 16V15H4V16H7M9 14V13H4V14H9M9 8V7H4V8H9M21.5 15.5V17H20V15.5H21.5M19.5 10.5H18V10C18 8.34 19.34 7 21 7C22.66 7 24 8.34 24 10C24 10.97 23.5 11.88 22.71 12.41L22.41 12.6C21.84 13 21.5 13.62 21.5 14.3V14.5H20V14.3C20 13.11 20.6 12 21.59 11.35L21.88 11.16C22.27 10.9 22.5 10.47 22.5 10C22.5 9.18 21.83 8.5 21 8.5C20.17 8.5 19.5 9.17 19.5 10V10.5Z\";\nexport var mdiBeakerQuestionOutline = \"M0 3H18V5C16.9 5 16 5.9 16 7V19C16 20.11 15.11 21 14 21H4C2.9 21 2 20.11 2 19V7C2 5.9 1.11 5 0 5V3M4 5V7H9V8H4V9H7V10H4V11H7V12H4V13H9V14H4V15H7V16H4V19H14V5H4M21.5 15.5V17H20V15.5H21.5M19.5 10.5H18V10C18 8.34 19.34 7 21 7C22.66 7 24 8.34 24 10C24 10.97 23.5 11.88 22.71 12.41L22.41 12.6C21.84 13 21.5 13.62 21.5 14.3V14.5H20V14.3C20 13.11 20.6 12 21.59 11.35L21.88 11.16C22.27 10.9 22.5 10.47 22.5 10C22.5 9.18 21.83 8.5 21 8.5C20.17 8.5 19.5 9.17 19.5 10V10.5Z\";\nexport var mdiBeakerRemove = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M3 3H21V5C19.9 5 19 5.9 19 7V12C15.69 12 13 14.69 13 18C13 19.09 13.29 20.12 13.8 21H7C5.9 21 5 20.1 5 19V7C5 5.9 4.1 5 3 5V3M7 9V10H10V9H7M7 11V12H10V11H7M10 16V15H7V16H10M12 14V13H7V14H12M12 8V7H7V8H12Z\";\nexport var mdiBeakerRemoveOutline = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M3 3H21V5C19.9 5 19 5.9 19 7V12C18.3 12 17.63 12.12 17 12.34V5H7V7H12V8H7V9H10V10H7V11H10V12H7V13H12V14H7V15H10V16H7V19H13.08C13.2 19.72 13.45 20.39 13.8 21H7C5.9 21 5 20.11 5 19V7C5 5.9 4.11 5 3 5V3Z\";\nexport var mdiBed = \"M19,7H11V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13Z\";\nexport var mdiBedClock = \"M19.2 9.5L16 7.7V4H17.5V6.8L19.9 8.2L19.2 9.5M22.2 11.7C22.7 12.4 23 13.2 23 14V23H21V20H3V23H1V8H3V17H11V10.6C10.4 9.5 10 8.3 10 7C10 3.1 13.1 0 17 0S24 3.1 24 7C24 8.8 23.3 10.4 22.2 11.7M12 7C12 9.8 14.2 12 17 12S22 9.8 22 7 19.8 2 17 2 12 4.2 12 7M7 16C8.7 16 10 14.7 10 13S8.7 10 7 10 4 11.3 4 13 5.3 16 7 16Z\";\nexport var mdiBedDouble = \"M18 10V7A2 2 0 0 0 16 5H8A2 2 0 0 0 6 7V10A2 2 0 0 0 4 12V17H5.33L6 19H7L7.67 17H16.33L17 19H18L18.67 17H20V12A2 2 0 0 0 18 10M11 10H8V7H11M16 10H13V7H16Z\";\nexport var mdiBedDoubleOutline = \"M8 5C7.5 5 7 5.21 6.61 5.6S6 6.45 6 7V10C5.47 10 5 10.19 4.59 10.59S4 11.47 4 12V17H5.34L6 19H7L7.69 17H16.36L17 19H18L18.66 17H20V12C20 11.47 19.81 11 19.41 10.59S18.53 10 18 10V7C18 6.45 17.8 6 17.39 5.6S16.5 5 16 5M8 7H11V10H8M13 7H16V10H13M6 12H18V15H6Z\";\nexport var mdiBedEmpty = \"M19,7H5V14H3V5H1V20H3V17H21V20H23V11A4,4 0 0,0 19,7\";\nexport var mdiBedKing = \"M6 5C5.47 5 5 5.21 4.59 5.6S4 6.45 4 7V10C3.45 10 3 10.19 2.6 10.59S2 11.47 2 12V17H3.33L4 19H5L5.67 17H18.33L19 19H20L20.67 17H22V12C22 11.47 21.79 11 21.4 10.59C21 10.19 20.55 10 20 10V7C20 6.45 19.81 6 19.41 5.6S18.53 5 18 5M6 7H11V10H6M13 7H18V10H13Z\";\nexport var mdiBedKingOutline = \"M20 10V7A2 2 0 0 0 18 5H6A2 2 0 0 0 4 7V10A2 2 0 0 0 2 12V17H3.33L4 19H5L5.67 17H18.33L19 19H20L20.67 17H22V12A2 2 0 0 0 20 10M13 7H18V10H13M6 7H11V10H6M20 15H4V12H20Z\";\nexport var mdiBedOutline = \"M7 14C8.66 14 10 12.66 10 11C10 9.34 8.66 8 7 8C5.34 8 4 9.34 4 11C4 12.66 5.34 14 7 14M7 10C7.55 10 8 10.45 8 11C8 11.55 7.55 12 7 12C6.45 12 6 11.55 6 11C6 10.45 6.45 10 7 10M19 7H11V15H3V5H1V20H3V17H21V20H23V11C23 8.79 21.21 7 19 7M21 15H13V9H19C20.1 9 21 9.9 21 11Z\";\nexport var mdiBedQueen = \"M19 10V7A2 2 0 0 0 17 5H7A2 2 0 0 0 5 7V10A2 2 0 0 0 3 12V17H4.33L5 19H6L6.67 17H17.33L18 19H19L19.67 17H21V12A2 2 0 0 0 19 10M17 10H7V7H17Z\";\nexport var mdiBedQueenOutline = \"M19 10V7A2 2 0 0 0 17 5H7A2 2 0 0 0 5 7V10A2 2 0 0 0 3 12V17H4.33L5 19H6L6.67 17H17.33L18 19H19L19.67 17H21V12A2 2 0 0 0 19 10M7 7H17V10H7M19 15H5V12H19Z\";\nexport var mdiBedSingle = \"M17 10V7C17 5.9 16.11 5 15 5H9C7.9 5 7 5.9 7 7V10C5.9 10 4.89 10.9 5 12V17H6.33L7 19H8L8.67 17H15.33L16 19H17L17.67 17H19V12C19 10.9 18.11 10 17 10M15 10H9V7H15Z\";\nexport var mdiBedSingleOutline = \"M17 10V7C17 5.9 16.11 5 15 5H9C7.9 5 7 5.9 7 7V10C5.9 10 5 10.9 5 12V17H6.33L7 19H8L8.67 17H15.33L16 19H17L17.67 17H19V12C19 10.9 18.11 10 17 10M9 7H15V10H9M17 15H7V12H17Z\";\nexport var mdiBee = \"M17.4 9C17 7.8 16.2 7 15 6.5V5H14V6.4H13.6C12.5 6.4 11.6 6.8 10.8 7.6L10.4 8L9 7.5C8.7 7.4 8.4 7.3 8 7.3C7.4 7.3 6.8 7.5 6.3 7.9C5.7 8.3 5.4 8.8 5.2 9.3C5 10 5 10.6 5.2 11.3C5.5 12 5.8 12.5 6.3 12.8C5.9 14.3 6.2 15.6 7.3 16.7C8.1 17.5 9 17.9 10.1 17.9C10.6 17.9 10.9 17.9 11.2 17.8C11.8 18.6 12.6 19.1 13.6 19.1C13.9 19.1 14.3 19.1 14.6 19C15.2 18.8 15.6 18.4 16 17.9C16.4 17.3 16.6 16.8 16.6 16.2C16.6 15.8 16.6 15.5 16.5 15.2L16 13.6L16.6 13.2C17.4 12.4 17.8 11.3 17.7 10.1H19V9H17.4M7.7 11.3C7.1 11 6.9 10.6 7.1 10C7.3 9.4 7.7 9.2 8.3 9.4L11.5 10.6C9.9 11.4 8.7 11.6 7.7 11.3M14 16.9C13.4 17.1 13 16.9 12.7 16.3C12.4 15.3 12.6 14.1 13.4 12.5L14.6 15.6C14.8 16.3 14.6 16.7 14 16.9M15.2 11.6L14.6 10V9.9L14.3 9.6H14.2L12.6 9C13 8.7 13.4 8.5 13.9 8.5C14.4 8.5 14.9 8.7 15.3 9.1C15.7 9.5 15.9 9.9 15.9 10.4C15.7 10.7 15.5 11.2 15.2 11.6Z\";\nexport var mdiBeeFlower = \"M11.6 13V12.9L11.3 12.6H11.2L9.6 12C10 11.7 10.4 11.5 10.9 11.5C11.4 11.5 11.9 11.7 12.3 12.1C12.7 12.5 12.9 12.9 12.9 13.4C12.9 13.9 12.8 14.3 12.4 14.7L11.6 13M9.7 19.3C9.4 18.3 9.6 17.1 10.4 15.5L11.6 18.6C11.8 19.2 11.6 19.6 11 19.9C10.4 20.2 10 20 9.7 19.3M4.1 13.1C4.3 12.5 4.7 12.3 5.3 12.5L8.5 13.7C6.9 14.5 5.7 14.7 4.7 14.4C4.1 14.1 3.9 13.7 4.1 13.1M12 8.1H11V9.5H10.6C9.5 9.5 8.6 9.9 7.8 10.7L7.4 11.3L6 10.5C5.7 10.4 5.4 10.4 5 10.4C4.4 10.4 3.8 10.6 3.3 11S2.4 11.8 2.2 12.4C2 13.1 2 13.7 2.2 14.4C2.5 15.1 2.8 15.6 3.3 15.9C2.9 17.4 3.2 18.7 4.3 19.8C5.1 20.6 6 21 7.1 21C7.6 21 7.9 21 8.2 20.9C8.8 21.7 9.6 22.2 10.6 22.2C10.9 22.2 11.3 22.2 11.6 22.1C12.2 21.9 12.6 21.5 13 21C13.4 20.4 13.6 19.9 13.6 19.3C13.6 18.9 13.6 18.6 13.5 18.3L12.9 16.9L13.5 16.5C14.3 15.7 14.7 14.6 14.6 13.4H16V12.4H14.4C14 11.2 13.2 10.4 12 10V8.1M17.3 6.8C17.1 6.6 17 6.3 17 6.1C17 5.8 17.1 5.6 17.3 5.4C17.5 5.2 17.7 5.1 18 5.1S18.5 5.2 18.7 5.4C18.9 5.5 19 5.8 19 6.1C19 6.4 18.9 6.6 18.7 6.8C18.5 7 18.3 7 18 7S17.5 7 17.3 6.8M20.7 4.1H19.6L19.3 3.2C19.1 2.5 18.7 2.2 18 2.2C17.3 2.2 16.8 2.5 16.7 3.2L16.4 4.1H15.3C14.7 4.1 14.3 4.4 14 5C13.8 5.6 14 6.1 14.6 6.5L15.5 7L15.1 8.2C14.9 8.6 15 9 15.2 9.4C15.5 9.8 15.8 10 16.3 10C16.7 10 17 9.9 17.2 9.7L18 9.1L18.8 9.8C19 9.9 19.3 10 19.7 10C20.2 10 20.5 9.8 20.8 9.4C21 9 21.1 8.6 20.9 8.2L20.5 7L21.3 6.5C21.9 6.1 22.1 5.6 21.9 5C21.7 4.3 21.3 4.1 20.7 4.1Z\";\nexport var mdiBeehiveOffOutline = \"M1.1 3L4.7 6.5C3.7 7.2 3 8.2 3 9.5C3 10.1 3.2 10.7 3.5 11.2C2 11.6 1 12.9 1 14.5C1 15.8 1.7 16.8 2.7 17.5C2.2 18 2 18.7 2 19.5C2 21.4 3.6 23 5.5 23H18.5C19.3 23 20 22.7 20.6 22.3L21.3 23L22.6 21.7L2.4 1.7L1.1 3M9.2 11H6.5C5.7 11 5 10.3 5 9.5C5 8.8 5.5 8.2 6.2 8L9.2 11M9 21H5.5C4.7 21 4 20.3 4 19.5S4.7 18 5.5 18H9V21M9.2 16H4.5C3.7 16 3 15.3 3 14.5S3.7 13 4.5 13H11.2L12.2 14H12C10.7 14 9.6 14.8 9.2 16M18.5 21H15V18H16.2L19.1 20.9C18.9 21 18.7 21 18.5 21M7.1 3.9L5.7 2.5C6.3 1.6 7.3 1 8.5 1H15.5C17.4 1 19 2.6 19 4.5C19 5.1 18.8 5.7 18.5 6.2C20 6.6 21 7.9 21 9.5C21 10.1 20.8 10.7 20.5 11.2C21.9 11.7 23 13 23 14.5C23 15.8 22.3 16.8 21.3 17.5C21.6 17.9 21.8 18.3 21.9 18.7L19.2 16H19.5C20.3 16 21 15.3 21 14.5S20.3 13 19.5 13H16.2L14.2 11H17.5C18.3 11 19 10.3 19 9.5S18.3 8 17.5 8H11.2L9.2 6H15.5C16.3 6 17 5.3 17 4.5S16.3 3 15.5 3H8.5C7.9 3 7.3 3.4 7.1 3.9Z\";\nexport var mdiBeehiveOutline = \"M23 14.5C23 12.94 21.97 11.63 20.55 11.18C20.83 10.68 21 10.11 21 9.5C21 7.94 19.97 6.63 18.55 6.18C18.83 5.68 19 5.11 19 4.5C19 2.57 17.43 1 15.5 1H8.5C6.57 1 5 2.57 5 4.5C5 5.11 5.17 5.68 5.45 6.18C4.04 6.63 3 7.94 3 9.5C3 10.11 3.17 10.68 3.45 11.18C2.04 11.63 1 12.94 1 14.5C1 15.76 1.67 16.84 2.67 17.46C2.25 18.03 2 18.74 2 19.5C2 21.43 3.57 23 5.5 23H18.5C20.43 23 22 21.43 22 19.5C22 18.74 21.75 18.03 21.33 17.46C22.33 16.84 23 15.76 23 14.5M8.5 3H15.5C16.33 3 17 3.67 17 4.5S16.33 6 15.5 6H8.5C7.67 6 7 5.33 7 4.5S7.67 3 8.5 3M6.5 8H17.5C18.33 8 19 8.67 19 9.5S18.33 11 17.5 11H6.5C5.67 11 5 10.33 5 9.5S5.67 8 6.5 8M4 19.5C4 18.67 4.67 18 5.5 18H9V21H5.5C4.67 21 4 20.33 4 19.5M18.5 21H15V18H18.5C19.33 18 20 18.67 20 19.5S19.33 21 18.5 21M19.5 16H14.82C14.4 14.84 13.3 14 12 14S9.6 14.84 9.18 16H4.5C3.67 16 3 15.33 3 14.5S3.67 13 4.5 13H19.5C20.33 13 21 13.67 21 14.5S20.33 16 19.5 16Z\";\nexport var mdiBeekeeper = \"M19 5H16C16 3.34 14.21 2 12 2C9.79 2 8 3.34 8 5H5C4.45 5 4 5.45 4 6S4.45 7 5 7V14C5 15.11 5.9 16 7 16H17C18.11 16 19 15.11 19 14V7C19.55 7 20 6.55 20 6S19.55 5 19 5M17 14H7V7H17V14M15.86 8C15.94 8.32 16 8.65 16 9C16 11.21 14.21 13 12 13S8 11.21 8 9C8 8.65 8.06 8.32 8.14 8H10.28C10.11 8.3 10 8.63 10 9C10 10.1 10.9 11 12 11S14 10.1 14 9C14 8.63 13.89 8.3 13.72 8H15.86M20 19V22H4V19C4 18.22 4.47 17.55 5.18 17H12C9.28 17 6.19 18.29 6 19V20H18V19C17.81 18.29 14.72 17 12 17H18.82C19.53 17.55 20 18.22 20 19Z\";\nexport var mdiBeer = \"M4,2H19L17,22H6L4,2M6.2,4L7.8,20H8.8L7.43,6.34C8.5,6 9.89,5.89 11,7C12.56,8.56 15.33,7.69 16.5,7.23L16.8,4H6.2Z\";\nexport var mdiBeerOutline = \"M4 2L6 22H17L19 2H4M6.2 4H16.8L16.5 7.23C13.18 8.5 11.85 7.67 11.38 7.31C11.13 7.12 10.77 6.69 10.11 6.39C9.45 6.08 8.55 6 7.5 6.32C7.09 6.43 6.77 6.61 6.5 6.79L6.2 4M8.86 8.11C9.05 8.11 9.16 8.15 9.27 8.2C9.5 8.3 9.71 8.55 10.17 8.9C11.03 9.56 13.03 10.36 16.26 9.41L15.2 20H7.8L6.71 9.06C6.76 9 6.91 8.89 7.17 8.71C7.5 8.5 7.91 8.28 8 8.25L8 8.25H8.03C8.41 8.14 8.67 8.1 8.86 8.11Z\";\nexport var mdiBell = \"M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21\";\nexport var mdiBellAlert = \"M23 7V13H21V7M21 15H23V17H21M12 2A2 2 0 0 0 10 4A2 2 0 0 0 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H21V19L19 17V11C19 7.82 16.88 5.14 14 4.29A2 2 0 0 0 14 4A2 2 0 0 0 12 2M10 21A2 2 0 0 0 12 23A2 2 0 0 0 14 21Z\";\nexport var mdiBellAlertOutline = \"M12 2A2 2 0 0 0 10 4A2 2 0 0 0 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H21V19L19 17V11C19 7.82 16.88 5.14 14 4.29A2 2 0 0 0 14 4A2 2 0 0 0 12 2M12 6A5 5 0 0 1 17 11V18H7V11A5 5 0 0 1 12 6M21 7V13H23V7H21M21 15V17H23V15H21M10 21A2 2 0 0 0 12 23A2 2 0 0 0 14 21H10Z\";\nexport var mdiBellBadge = \"M21 6.5C21 8.43 19.43 10 17.5 10S14 8.43 14 6.5 15.57 3 17.5 3 21 4.57 21 6.5M19 11.79C18.5 11.92 18 12 17.5 12C14.47 12 12 9.53 12 6.5C12 5.03 12.58 3.7 13.5 2.71C13.15 2.28 12.61 2 12 2C10.9 2 10 2.9 10 4V4.29C7.03 5.17 5 7.9 5 11V17L3 19V20H21V19L19 17V11.79M12 23C13.11 23 14 22.11 14 21H10C10 22.11 10.9 23 12 23Z\";\nexport var mdiBellBadgeOutline = \"M19 17V11.8C18.5 11.9 18 12 17.5 12H17V18H7V11C7 8.2 9.2 6 12 6C12.1 4.7 12.7 3.6 13.5 2.7C13.2 2.3 12.6 2 12 2C10.9 2 10 2.9 10 4V4.3C7 5.2 5 7.9 5 11V17L3 19V20H21V19L19 17M10 21C10 22.1 10.9 23 12 23S14 22.1 14 21H10M21 6.5C21 8.4 19.4 10 17.5 10S14 8.4 14 6.5 15.6 3 17.5 3 21 4.6 21 6.5\";\nexport var mdiBellCancel = \"M17.5 13A4.5 4.5 0 0 0 13 17.5A4.5 4.5 0 0 0 17.5 22A4.5 4.5 0 0 0 22 17.5A4.5 4.5 0 0 0 17.5 13M17.5 14.5A3 3 0 0 1 20.5 17.5A3 3 0 0 1 20.08 19L16 14.92A3 3 0 0 1 17.5 14.5M14.92 16L19 20.08A3 3 0 0 1 17.5 20.5A3 3 0 0 1 14.5 17.5A3 3 0 0 1 14.92 16M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H11.5A6.5 6.5 0 0 1 11 17.5A6.5 6.5 0 0 1 17.5 11A6.5 6.5 0 0 1 19 11.18V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M10 21C10 22.11 10.9 23 12 23C12.5 23 12.97 22.81 13.33 22.5A6.5 6.5 0 0 1 12.03 21Z\";\nexport var mdiBellCancelOutline = \"M17.5 13A4.5 4.5 0 0 0 13 17.5A4.5 4.5 0 0 0 17.5 22A4.5 4.5 0 0 0 22 17.5A4.5 4.5 0 0 0 17.5 13M17.5 14.5A3 3 0 0 1 20.5 17.5A3 3 0 0 1 20.08 19L16 14.92A3 3 0 0 1 17.5 14.5M14.92 16L19 20.08A3 3 0 0 1 17.5 20.5A3 3 0 0 1 14.5 17.5A3 3 0 0 1 14.92 16M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H11.5A6.5 6.5 0 0 1 11.03 18H7V11A5 5 0 0 1 12 6A5 5 0 0 1 17 11V11A6.5 6.5 0 0 1 17.5 11A6.5 6.5 0 0 1 19 11.18V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M10 21C10 22.11 10.9 23 12 23C12.5 23 12.97 22.81 13.33 22.5A6.5 6.5 0 0 1 12.03 21Z\";\nexport var mdiBellCheck = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M3 20V19L5 17V11C5 7.9 7.03 5.18 10 4.29V4C10 2.9 10.9 2 12 2C13.11 2 14 2.9 14 4V4.29C16.97 5.18 19 7.9 19 11V12.08L18 12C14.69 12 12 14.69 12 18C12 18.7 12.12 19.37 12.34 20H3M12 23C10.9 23 10 22.11 10 21H12.8C13.04 21.41 13.33 21.79 13.65 22.13C13.29 22.66 12.69 23 12 23Z\";\nexport var mdiBellCheckOutline = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M10 21H12.8C13.04 21.41 13.33 21.79 13.65 22.13C13.29 22.66 12.69 23 12 23C10.9 23 10 22.11 10 21M3 20V19L5 17V11C5 7.9 7.03 5.18 10 4.29V4C10 2.9 10.9 2 12 2C13.11 2 14 2.9 14 4V4.29C16.97 5.18 19 7.9 19 11V12.08L18 12L17 12.08V11C17 8.24 14.76 6 12 6C9.24 6 7 8.24 7 11V18H12C12 18.7 12.12 19.37 12.34 20H3Z\";\nexport var mdiBellCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M17,16V15L16,14V11.39C16,10.3 15.73,9.34 15.21,8.53C14.7,7.72 13.96,7.21 13,7V6.5A1,1 0 0,0 12,5.5A1,1 0 0,0 11,6.5V7C10.04,7.21 9.3,7.72 8.79,8.53C8.27,9.34 8,10.3 8,11.39V14L7,15V16H17M13.5,17H10.5A1.5,1.5 0 0,0 12,18.5A1.5,1.5 0 0,0 13.5,17Z\";\nexport var mdiBellCircleOutline = \"M17,16H7V15L8,14V11.39C8,10.3 8.27,9.34 8.79,8.53C9.3,7.72 10.04,7.21 11,7V6.5A1,1 0 0,1 12,5.5A1,1 0 0,1 13,6.5V7C13.96,7.21 14.7,7.72 15.21,8.53C15.73,9.34 16,10.3 16,11.39V14L17,15V16M13.5,17A1.5,1.5 0 0,1 12,18.5A1.5,1.5 0 0,1 10.5,17H13.5M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiBellCog = \"M19 12C15.13 12 12 15.13 12 19C12 19.34 12.03 19.67 12.08 20H3V19L5 17V11C5 7.9 7.03 5.17 10 4.29V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.29C16.97 5.17 19 7.9 19 11V12M10 21C10 22.11 10.9 23 12 23C12.39 23 12.75 22.88 13.06 22.69C12.74 22.17 12.5 21.6 12.3 21H10M23.77 20.32C23.87 20.39 23.89 20.53 23.83 20.64L22.83 22.37C22.77 22.5 22.64 22.5 22.53 22.5L21.28 21.97C21 22.17 20.75 22.34 20.44 22.47L20.25 23.79C20.23 23.91 20.13 24 20 24H18C17.88 24 17.77 23.91 17.75 23.79L17.57 22.47C17.25 22.34 17 22.17 16.72 21.97L15.5 22.5C15.37 22.5 15.23 22.5 15.17 22.37L14.17 20.64C14.11 20.53 14.14 20.39 14.23 20.32L15.29 19.5C15.27 19.33 15.25 19.17 15.25 19S15.27 18.67 15.29 18.5L14.23 17.68C14.14 17.61 14.11 17.5 14.17 17.36L15.17 15.64C15.23 15.53 15.37 15.5 15.5 15.53L16.72 16C17 15.83 17.25 15.66 17.57 15.54L17.75 14.21C17.77 14.09 17.88 14 18 14H20C20.13 14 20.23 14.09 20.25 14.21L20.44 15.54C20.75 15.66 21 15.83 21.28 16L22.53 15.53C22.64 15.5 22.77 15.53 22.83 15.64L23.83 17.36C23.89 17.5 23.87 17.61 23.77 17.68L22.72 18.5C22.74 18.67 22.75 18.84 22.75 19S22.74 19.33 22.72 19.5L23.77 20.32M20.75 19C20.75 18.03 19.97 17.25 19 17.25S17.25 18.03 17.25 19 18.04 20.75 19 20.75 20.75 19.97 20.75 19Z\";\nexport var mdiBellCogOutline = \"M22.72 19.5C22.74 19.33 22.75 19.17 22.75 19S22.74 18.67 22.72 18.5L23.77 17.68C23.87 17.61 23.89 17.5 23.83 17.36L22.83 15.64C22.77 15.53 22.64 15.5 22.53 15.53L21.28 16C21 15.83 20.75 15.66 20.44 15.54L20.25 14.21C20.23 14.09 20.13 14 20 14H18C17.88 14 17.77 14.09 17.75 14.21L17.57 15.54C17.25 15.66 17 15.83 16.72 16L15.5 15.53C15.37 15.5 15.23 15.53 15.17 15.64L14.17 17.36C14.11 17.5 14.14 17.61 14.23 17.68L15.29 18.5C15.27 18.67 15.25 18.84 15.25 19S15.27 19.33 15.29 19.5L14.23 20.32C14.14 20.39 14.11 20.53 14.17 20.64L15.17 22.37C15.23 22.5 15.37 22.5 15.5 22.5L16.72 21.97C17 22.17 17.25 22.34 17.57 22.47L17.75 23.79C17.77 23.91 17.88 24 18 24H20C20.13 24 20.23 23.91 20.25 23.79L20.44 22.47C20.75 22.34 21 22.17 21.28 21.97L22.53 22.5C22.64 22.5 22.77 22.5 22.83 22.37L23.83 20.64C23.89 20.53 23.87 20.39 23.77 20.32L22.72 19.5M19 20.75C18.04 20.75 17.25 19.97 17.25 19S18.04 17.25 19 17.25 20.75 18.03 20.75 19 19.97 20.75 19 20.75M12.08 20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V12C18.31 12 17.63 12.11 17 12.29V11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H12.08C12.03 18.33 12 18.66 12 19C12 19.34 12.03 19.67 12.08 20M12.3 21C12.5 21.6 12.74 22.17 13.06 22.69C12.75 22.88 12.39 23 12 23C10.9 23 10 22.1 10 21H12.3Z\";\nexport var mdiBellMinus = \"M22 19V17H14V19H22M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35C12.12 19.36 12 18.68 12 18C12 14.69 14.69 12 18 12C18.34 12 18.67 12.03 19 12.09V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M10 21C10 22.11 10.9 23 12 23C12.66 23 13.28 22.67 13.65 22.13C13.33 21.79 13.05 21.41 12.81 21H10Z\";\nexport var mdiBellMinusOutline = \"M12 2C10.9 2 10 2.9 10 4V4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35C12.12 19.36 12 18.68 12 18H7V11C7 8.24 9.24 6 12 6S17 8.24 17 11V12.09C17.33 12.03 17.67 12 18 12C18.34 12 18.67 12.03 19 12.09V11C19 7.82 16.88 5.14 14 4.29V4C14 2.9 13.11 2 12 2M14 17V19H22V17M10 21C10 22.11 10.9 23 12 23C12.66 23 13.28 22.67 13.65 22.13C13.33 21.79 13.05 21.41 12.81 21H10Z\";\nexport var mdiBellOff = \"M20.84,22.73L18.11,20H3V19L5,17V11C5,9.86 5.29,8.73 5.83,7.72L1.11,3L2.39,1.73L22.11,21.46L20.84,22.73M19,15.8V11C19,7.9 16.97,5.17 14,4.29C14,4.19 14,4.1 14,4A2,2 0 0,0 12,2A2,2 0 0,0 10,4C10,4.1 10,4.19 10,4.29C9.39,4.47 8.8,4.74 8.26,5.09L19,15.8M12,23A2,2 0 0,0 14,21H10A2,2 0 0,0 12,23Z\";\nexport var mdiBellOffOutline = \"M22.11,21.46L2.39,1.73L1.11,3L5.83,7.72C5.29,8.73 5,9.86 5,11V17L3,19V20H18.11L20.84,22.73L22.11,21.46M7,18V11C7,10.39 7.11,9.79 7.34,9.23L16.11,18H7M10,21H14A2,2 0 0,1 12,23A2,2 0 0,1 10,21M8.29,5.09C8.82,4.75 9.4,4.5 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V15.8L17,13.8V11A5,5 0 0,0 12,6C11.22,6 10.45,6.2 9.76,6.56L8.29,5.09Z\";\nexport var mdiBellOutline = \"M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z\";\nexport var mdiBellPlus = \"M17 14V17H14V19H17V22H19V19H22V17H19V14M12 2A2 2 0 0 0 10 4A2 2 0 0 0 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35A6 6 0 0 1 12 18A6 6 0 0 1 18 12A6 6 0 0 1 19 12.09V11C19 7.82 16.88 5.14 14 4.29A2 2 0 0 0 14 4A2 2 0 0 0 12 2M10 21A2 2 0 0 0 12 23A2 2 0 0 0 13.65 22.13A6 6 0 0 1 12.81 21Z\";\nexport var mdiBellPlusOutline = \"M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35C12.12 19.36 12 18.68 12 18H7V11C7 8.24 9.24 6 12 6C14.76 6 17 8.24 17 11V12.09C17.33 12.03 17.67 12 18 12C18.34 12 18.67 12.03 19 12.09V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M17 14V17H14V19H17V22H19V19H22V17H19V14M10 21C10 22.11 10.9 23 12 23C12.66 23 13.28 22.67 13.65 22.13C13.33 21.79 13.05 21.41 12.81 21Z\";\nexport var mdiBellRemove = \"M20.12 14.46L18 16.59L15.88 14.46L14.46 15.88L16.59 18L14.46 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35C12.12 19.36 12 18.68 12 18C12 14.69 14.69 12 18 12C18.34 12 18.67 12.03 19 12.09V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M10 21C10 22.11 10.9 23 12 23C12.66 23 13.28 22.67 13.65 22.13C13.33 21.79 13.05 21.41 12.81 21Z\";\nexport var mdiBellRemoveOutline = \"M20.12 14.46L18 16.59L15.88 14.46L14.46 15.88L16.59 18L14.46 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88M12 2C10.9 2 10 2.9 10 4C10 4.1 10 4.19 10 4.29C7.12 5.14 5 7.82 5 11V17L3 19V20H12.35C12.12 19.36 12 18.68 12 18H7V11A5 5 0 0 1 12 6A5 5 0 0 1 17 11V12.09C17.33 12.04 17.66 12 18 12C18.34 12 18.67 12.03 19 12.09V11C19 7.82 16.88 5.14 14 4.29C14 4.19 14 4.1 14 4C14 2.9 13.11 2 12 2M10 21C10 22.11 10.9 23 12 23C12.66 23 13.28 22.67 13.65 22.13C13.33 21.79 13.05 21.41 12.81 21Z\";\nexport var mdiBellRing = \"M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21M19.75,3.19L18.33,4.61C20.04,6.3 21,8.6 21,11H23C23,8.07 21.84,5.25 19.75,3.19M1,11H3C3,8.6 3.96,6.3 5.67,4.61L4.25,3.19C2.16,5.25 1,8.07 1,11Z\";\nexport var mdiBellRingOutline = \"M10,21H14A2,2 0 0,1 12,23A2,2 0 0,1 10,21M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M17,11A5,5 0 0,0 12,6A5,5 0 0,0 7,11V18H17V11M19.75,3.19L18.33,4.61C20.04,6.3 21,8.6 21,11H23C23,8.07 21.84,5.25 19.75,3.19M1,11H3C3,8.6 3.96,6.3 5.67,4.61L4.25,3.19C2.16,5.25 1,8.07 1,11Z\";\nexport var mdiBellSleep = \"M10,21H14A2,2 0 0,1 12,23A2,2 0 0,1 10,21M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M15,9H9V11H12.24L9,13.7V16H15V14H11.76L15,11.3V9Z\";\nexport var mdiBellSleepOutline = \"M10,21H14A2,2 0 0,1 12,23A2,2 0 0,1 10,21M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M17,11A5,5 0 0,0 12,6A5,5 0 0,0 7,11V18H17V11M9,9V11H12.24L9,13.7V16H15V14H11.76L15,11.3V9H9Z\";\nexport var mdiBench = \"M23 13H1V15H3V19H5V15H19V19H21V15H23V13Z\";\nexport var mdiBenchBack = \"M4 5C3.45 5 3 5.45 3 6V10C3 10.55 3.45 11 4 11H5V13H1V15H3V19H5V15H19V19H21V15H23V13H19V11H20C20.55 11 21 10.55 21 10V6C21 5.45 20.55 5 20 5H4M17 11V13H7V11H17Z\";\nexport var mdiBeta = \"M9.23,17.59V23.12H6.88V6.72C6.88,5.27 7.31,4.13 8.16,3.28C9,2.43 10.17,2 11.61,2C13,2 14.07,2.34 14.87,3C15.66,3.68 16.05,4.62 16.05,5.81C16.05,6.63 15.79,7.4 15.27,8.11C14.75,8.82 14.08,9.31 13.25,9.58V9.62C14.5,9.82 15.47,10.27 16.13,11C16.79,11.71 17.12,12.62 17.12,13.74C17.12,15.06 16.66,16.14 15.75,16.97C14.83,17.8 13.63,18.21 12.13,18.21C11.07,18.21 10.1,18 9.23,17.59M10.72,10.75V8.83C11.59,8.72 12.3,8.4 12.87,7.86C13.43,7.31 13.71,6.7 13.71,6C13.71,4.62 13,3.92 11.6,3.92C10.84,3.92 10.25,4.16 9.84,4.65C9.43,5.14 9.23,5.82 9.23,6.71V15.5C10.14,16.03 11.03,16.29 11.89,16.29C12.73,16.29 13.39,16.07 13.86,15.64C14.33,15.2 14.56,14.58 14.56,13.79C14.56,12 13.28,11 10.72,10.75Z\";\nexport var mdiBetamax = \"M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M8,9A4,4 0 0,1 12,13A4,4 0 0,1 8,17A4,4 0 0,1 4,13A4,4 0 0,1 8,9M13,9H20V17H13V9M8,11A2,2 0 0,0 6,13A2,2 0 0,0 8,15A2,2 0 0,0 10,13A2,2 0 0,0 8,11Z\";\nexport var mdiBiathlon = \"M12.88,3.64C13.65,3.64 14.28,4.27 14.28,5.04C14.28,5.81 13.65,6.44 12.88,6.44C12.11,6.44 11.5,5.81 11.5,5.04C11.5,4.27 12.11,3.64 12.88,3.64M15,13H16.5V19H15V13M15,8.5H16.5V10H15V8.5M10.04,2.6L8,2.04L6.06,8.58L3.9,11.42L7.17,12.37L10.04,2.6M19.67,18.55C19.31,18.93 18.88,19.5 18.4,19.7C17.91,19.92 17.54,20 17,20H13.5L13.43,17C13.42,16.83 13.37,16.67 13.28,16.5L10.88,12.24L11.76,9.5C12.34,10.55 13,11.73 13.06,11.83C13.21,12 13.45,12.13 13.69,12.13H15.9A0.81,0.81 0 0,0 16.71,11.32C16.71,10.9 16.38,10.56 15.96,10.53L14.29,10.4L12.4,7C12.4,7 12,6.42 11.14,6.42C10.27,6.42 10,6.84 9.83,7.42L6,20H3V22H17C18.37,22 19.53,21.34 20.5,20.37L19.67,18.55M9.75,14.39L11.62,17.39L11.75,20H7.75L9.75,14.39Z\";\nexport var mdiBicycle = \"M19 10C18.44 10 17.91 10.11 17.41 10.28L14.46 4.5H11V6H13.54L14.42 7.72L12 13.13L10.23 8.95C10.5 8.85 10.74 8.58 10.74 8.25C10.74 7.84 10.41 7.5 10 7.5H8C7.58 7.5 7.24 7.84 7.24 8.25S7.58 9 8 9H8.61L10.86 14.25H9.92C9.56 11.85 7.5 10 5 10C2.24 10 0 12.24 0 15S2.24 20 5 20C7.5 20 9.56 18.15 9.92 15.75H12.5L15.29 9.43L16.08 10.96C14.82 11.87 14 13.34 14 15C14 17.76 16.24 20 19 20S24 17.76 24 15 21.76 10 19 10M5 18.5C3.07 18.5 1.5 16.93 1.5 15S3.07 11.5 5 11.5C6.67 11.5 8.07 12.68 8.41 14.25H4V15.75H8.41C8.07 17.32 6.67 18.5 5 18.5M19 18.5C17.07 18.5 15.5 16.93 15.5 15C15.5 13.92 16 12.97 16.77 12.33L18.57 15.85L19.89 15.13L18.1 11.63C18.39 11.56 18.69 11.5 19 11.5C20.93 11.5 22.5 13.07 22.5 15S20.93 18.5 19 18.5Z\";\nexport var mdiBicycleBasket = \"M11.74 13.36L14.14 7.71L13.06 5.5H10.5V4H14L14.73 5.5H21.75L20.75 9H16.44L17.11 10.37C17.69 10.13 18.33 10 19 10C21.76 10 24 12.24 24 15C24 17.76 21.76 20 19 20C16.24 20 14 17.76 14 15C14 13.45 14.71 12.06 15.82 11.15L15 9.5L12.25 16H9.9C9.44 18.28 7.42 20 5 20C2.24 20 0 17.76 0 15C0 12.24 2.24 10 5 10C7.59 10 9.72 11.97 10 14.5H10.58L8.3 9H7.5C7.09 9 6.75 8.66 6.75 8.25C6.75 7.84 7.09 7.5 7.5 7.5H10.25C10.66 7.5 11 7.84 11 8.25C11 8.66 10.66 9 10.25 9H9.97L11.74 13.36M5 11.5C3.07 11.5 1.5 13.07 1.5 15C1.5 16.93 3.07 18.5 5 18.5C6.59 18.5 7.93 17.45 8.36 16H4V14.5H8.47C8.22 12.8 6.76 11.5 5 11.5M19 11.5C18.57 11.5 18.15 11.58 17.77 11.72L19.7 15.68L18.35 16.34L16.5 12.55C15.88 13.18 15.5 14.05 15.5 15C15.5 16.93 17.07 18.5 19 18.5C20.93 18.5 22.5 16.93 22.5 15C22.5 13.07 20.93 11.5 19 11.5Z\";\nexport var mdiBicycleCargo = \"M21 11.5V10L13.5 9V5H9V6.5H12V14.3H11L9 10C9.3 9.9 9.5 9.6 9.5 9.3C9.5 8.9 9.2 8.5 8.8 8.5H6.8C6.3 8.5 6 8.8 6 9.2S6.3 10 6.8 10H7.4L9.4 14.2H7.9C7.6 12.4 6 11 4 11C1.8 11 0 12.8 0 15S1.8 19 4 19C6 19 7.6 17.6 7.9 15.8H16.5C16.7 13.4 18.6 11.5 21 11.5M6.4 15.8C6.1 16.8 5.1 17.6 4 17.6C2.6 17.6 1.5 16.5 1.5 15.1S2.6 12.6 4 12.6C5.1 12.6 6.1 13.3 6.4 14.4H4V15.9H6.4M21 13C19.3 13 18 14.3 18 16S19.3 19 21 19 24 17.7 24 16 22.7 13 21 13M21 17.5C20.2 17.5 19.5 16.8 19.5 16S20.2 14.5 21 14.5 22.5 15.2 22.5 16 21.8 17.5 21 17.5Z\";\nexport var mdiBicycleElectric = \"M19 7C18.44 7 17.91 7.11 17.41 7.28L14.46 1.5H11V3H13.54L14.42 4.72L12 10.13L10.23 5.95C10.5 5.85 10.74 5.58 10.74 5.25C10.74 4.84 10.41 4.5 10 4.5H8C7.58 4.5 7.24 4.84 7.24 5.25S7.58 6 8 6H8.61L10.86 11.25H9.92C9.56 8.85 7.5 7 5 7C2.24 7 0 9.24 0 12S2.24 17 5 17C7.5 17 9.56 15.15 9.92 12.75H12.5L15.29 6.43L16.08 7.96C14.82 8.87 14 10.34 14 12C14 14.76 16.24 17 19 17S24 14.76 24 12 21.76 7 19 7M5 15.5C3.07 15.5 1.5 13.93 1.5 12S3.07 8.5 5 8.5C6.67 8.5 8.07 9.68 8.41 11.25H4V12.75H8.41C8.07 14.32 6.67 15.5 5 15.5M19 15.5C17.07 15.5 15.5 13.93 15.5 12C15.5 10.92 16 9.97 16.77 9.33L18.57 12.85L19.89 12.13L18.1 8.63C18.39 8.56 18.69 8.5 19 8.5C20.93 8.5 22.5 10.07 22.5 12S20.93 15.5 19 15.5M11 20H7L13 23V21H17L11 18V20Z\";\nexport var mdiBicyclePennyFarthing = \"M15.5 5.06V2H12V4H13.5V5.04C12.71 5.11 11.94 5.27 11.2 5.5C11.03 5.2 10.72 5 10.36 5H7C6.45 5 6 5.45 6 6S6.45 7 7 7H8.05C5.09 9 3.12 12.36 3 16.18C1.85 16.59 1 17.69 1 19C1 20.66 2.34 22 4 22S7 20.66 7 19C7 17.7 6.17 16.61 5 16.19C5.07 14.67 5.46 13.25 6.14 12C6.05 12.5 6 13 6 13.5C6 18.19 9.81 22 14.5 22C19.19 22 23 18.19 23 13.5C23 9.14 19.72 5.56 15.5 5.06M4 20C3.45 20 3 19.55 3 19S3.45 18 4 18 5 18.45 5 19 4.55 20 4 20M14.5 20C10.92 20 8 17.08 8 13.5C8 10.26 10.39 7.57 13.5 7.09V15H15.5V7.09C18.61 7.57 21 10.26 21 13.5C21 17.08 18.08 20 14.5 20Z\";\nexport var mdiBike = \"M5,20.5A3.5,3.5 0 0,1 1.5,17A3.5,3.5 0 0,1 5,13.5A3.5,3.5 0 0,1 8.5,17A3.5,3.5 0 0,1 5,20.5M5,12A5,5 0 0,0 0,17A5,5 0 0,0 5,22A5,5 0 0,0 10,17A5,5 0 0,0 5,12M14.8,10H19V8.2H15.8L13.86,4.93C13.57,4.43 13,4.1 12.4,4.1C11.93,4.1 11.5,4.29 11.2,4.6L7.5,8.29C7.19,8.6 7,9 7,9.5C7,10.13 7.33,10.66 7.85,10.97L11.2,13V18H13V11.5L10.75,9.85L13.07,7.5M19,20.5A3.5,3.5 0 0,1 15.5,17A3.5,3.5 0 0,1 19,13.5A3.5,3.5 0 0,1 22.5,17A3.5,3.5 0 0,1 19,20.5M19,12A5,5 0 0,0 14,17A5,5 0 0,0 19,22A5,5 0 0,0 24,17A5,5 0 0,0 19,12M16,4.8C17,4.8 17.8,4 17.8,3C17.8,2 17,1.2 16,1.2C15,1.2 14.2,2 14.2,3C14.2,4 15,4.8 16,4.8Z\";\nexport var mdiBikeFast = \"M16 1.2C15 1.2 14.2 2 14.2 3S15 4.8 16 4.8 17.8 4 17.8 3 17 1.2 16 1.2M12.4 4.1C11.93 4.1 11.5 4.29 11.2 4.6L7.5 8.29C7.19 8.6 7 9 7 9.5C7 10.13 7.33 10.66 7.85 10.97L11.2 13V18H13V11.5L10.75 9.85L13.07 7.5L14.8 10H19V8.2H15.8L13.86 4.93C13.57 4.43 13 4.1 12.4 4.1M10 3H3C2.45 3 2 2.55 2 2S2.45 1 3 1H12.79C12.58 1.34 12.41 1.71 12.32 2.11C11.46 2.13 10.65 2.45 10 3M5 12C2.24 12 0 14.24 0 17S2.24 22 5 22 10 19.76 10 17 7.76 12 5 12M5 20.5C3.07 20.5 1.5 18.93 1.5 17S3.07 13.5 5 13.5 8.5 15.07 8.5 17 6.93 20.5 5 20.5M19 12C16.24 12 14 14.24 14 17S16.24 22 19 22 24 19.76 24 17 21.76 12 19 12M19 20.5C17.07 20.5 15.5 18.93 15.5 17S17.07 13.5 19 13.5 22.5 15.07 22.5 17 20.93 20.5 19 20.5M5.32 11H1C.448 11 0 10.55 0 10S.448 9 1 9H5.05C5.03 9.16 5 9.33 5 9.5C5 10.03 5.12 10.54 5.32 11M6 7H2C1.45 7 1 6.55 1 6S1.45 5 2 5H7.97L6.09 6.87C6.05 6.91 6 6.96 6 7Z\";\nexport var mdiBikePedal = \"M6.85 5C5.87 5 5.04 5.71 4.87 6.67L4 12L4.87 17.33C5.04 18.29 5.87 19 6.85 19H14.15C15.13 19 15.97 18.29 16.13 17.33L16.68 14H18V13H20V11H18V10H16.68L16.13 6.67C15.97 5.71 15.13 5 14.15 5H6.85M6.85 7H14.15L14.82 11H6.18L6.85 7M6.18 13H14.82L14.15 17H6.85L6.18 13Z\";\nexport var mdiBikePedalClipless = \"M14.43 16.11L15.28 14H16V13H20V11H16V10H15.28L14.43 7.89C14 6.75 12.87 6 11.65 6H9.35C8.13 6 7 6.75 6.57 7.89L5.37 10.89C5.08 11.6 5.08 12.4 5.37 13.11L6.57 16.11C7 17.25 8.13 18 9.35 18H11.65C12.87 18 14 17.25 14.43 16.11M9.35 8H11.65C12.06 8 12.42 8.25 12.57 8.63L13.12 10H7.88L8.43 8.63C8.58 8.25 8.95 8 9.35 8M8.43 15.37L7.88 14H13.12L12.57 15.37C12.42 15.75 12.05 16 11.65 16H9.35C8.95 16 8.58 15.75 8.43 15.37Z\";\nexport var mdiBikePedalMountain = \"M6.82 5C5.87 5 5.05 5.67 4.86 6.61L4.04 10.71C4 10.84 4 10.97 4 11.1V12.9C4 13.03 4 13.16 4.04 13.29L4.86 17.39C5.05 18.33 5.87 19 6.82 19H13.38C14.14 19 14.83 18.57 15.17 17.89L16.79 14.66C16.89 14.45 16.96 14.23 17 14H18V13H20V11H18V10H17C16.96 9.77 16.89 9.55 16.79 9.34L15.17 6.11C14.83 5.43 14.14 5 13.38 5H6.82M6.82 7H7.38L9.88 12L7.38 17H6.82L6 12.9V11.1L6.82 7M11.62 11L9.62 7H13.38L15 10.24V11H11.62M11.62 13H15V13.76L13.38 17H9.62L11.62 13Z\";\nexport var mdiBillboard = \"M20 22H18V17H20M6 22H4V17H6M23 4V13A2 2 0 0 1 21 15H3A2 2 0 0 1 1 13V4A2 2 0 0 1 3 2H21A2 2 0 0 1 23 4M21 4H3V13H21M20 6H15V8H20M18 9H15V11H18M14 11H4L6.73 7.36L8.73 10.09L9.46 9.55L8.2 7.82L9.91 5.55Z\";\nexport var mdiBilliards = \"M11,13H13V15H11M11,9H13V11H11M11,17H13A2,2 0 0,0 15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9A2,2 0 0,0 13,7H11A2,2 0 0,0 9,9V10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 9,13.5V15A2,2 0 0,0 11,17M12,1C5.92,1 1,5.92 1,12C1,18.08 5.92,23 12,23C18.08,23 23,18.08 23,12C23,5.92 18.08,1 12,1M12,19A7,7 0 0,1 5,12A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19Z\";\nexport var mdiBilliardsRack = \"M20.31,16.44L14.54,6.47C13.72,5.04 11.89,4.55 10.46,5.38C10,5.64 9.63,6 9.36,6.47L3.6,16.44C2.77,17.87 3.26,19.69 4.69,20.5C5.14,20.78 5.65,20.92 6.18,20.92H17.73C19.38,20.91 20.72,19.57 20.71,17.92C20.71,17.4 20.57,16.89 20.31,16.44M5.37,17.43L11.11,7.47C11.38,7 12,6.82 12.46,7.1C12.62,7.18 12.75,7.31 12.84,7.47L18.58,17.43C18.85,17.91 18.69,18.5 18.21,18.79C18.06,18.88 17.89,18.93 17.72,18.93H6.21C5.66,18.92 5.21,18.47 5.22,17.92C5.22,17.75 5.26,17.58 5.35,17.43H5.37M11.97,13.45C10.87,13.45 10,12.56 10,11.46C10,10.35 10.87,9.46 11.97,9.46A2,2 0 0,1 13.97,11.46C13.97,12.56 13.07,13.45 11.95,13.45H11.97M9.46,17.93C8.36,17.93 7.47,17.04 7.47,15.94C7.47,14.84 8.36,13.95 9.46,13.95C10.56,13.95 11.46,14.84 11.46,15.94C11.46,17.04 10.56,17.93 9.46,17.93M14.44,17.93A2,2 0 0,1 12.45,15.94A2,2 0 0,1 14.44,13.95C15.54,13.95 16.44,14.84 16.44,15.94C16.44,17.04 15.54,17.93 14.44,17.93Z\";\nexport var mdiBinoculars = \"M11,6H13V13H11V6M9,20A1,1 0 0,1 8,21H5A1,1 0 0,1 4,20V15L6,6H10V13A1,1 0 0,1 9,14V20M10,5H7V3H10V5M15,20V14A1,1 0 0,1 14,13V6H18L20,15V20A1,1 0 0,1 19,21H16A1,1 0 0,1 15,20M14,5V3H17V5H14Z\";\nexport var mdiBio = \"M17,12H20A2,2 0 0,1 22,14V17A2,2 0 0,1 20,19H17A2,2 0 0,1 15,17V14A2,2 0 0,1 17,12M17,14V17H20V14H17M2,7H7A2,2 0 0,1 9,9V11A2,2 0 0,1 7,13A2,2 0 0,1 9,15V17A2,2 0 0,1 7,19H2V13L2,7M4,9V12H7V9H4M4,17H7V14H4V17M11,13H13V19H11V13M11,9H13V11H11V9Z\";\nexport var mdiBiohazard = \"M23,16.06C23,16.29 23,16.5 22.96,16.7C22.78,14.14 20.64,12.11 18,12.11C17.63,12.11 17.27,12.16 16.92,12.23C16.96,12.5 17,12.73 17,13C17,15.35 15.31,17.32 13.07,17.81C13.42,20.05 15.31,21.79 17.65,21.96C17.43,22 17.22,22 17,22C14.92,22 13.07,20.94 12,19.34C10.93,20.94 9.09,22 7,22C6.78,22 6.57,22 6.35,21.96C8.69,21.79 10.57,20.06 10.93,17.81C8.68,17.32 7,15.35 7,13C7,12.73 7.04,12.5 7.07,12.23C6.73,12.16 6.37,12.11 6,12.11C3.36,12.11 1.22,14.14 1.03,16.7C1,16.5 1,16.29 1,16.06C1,12.85 3.59,10.24 6.81,10.14C6.3,9.27 6,8.25 6,7.17C6,4.94 7.23,3 9.06,2C7.81,2.9 7,4.34 7,6C7,7.35 7.56,8.59 8.47,9.5C9.38,8.59 10.62,8.04 12,8.04C13.37,8.04 14.62,8.59 15.5,9.5C16.43,8.59 17,7.35 17,6C17,4.34 16.18,2.9 14.94,2C16.77,3 18,4.94 18,7.17C18,8.25 17.7,9.27 17.19,10.14C20.42,10.24 23,12.85 23,16.06M9.27,10.11C10.05,10.62 11,10.92 12,10.92C13,10.92 13.95,10.62 14.73,10.11C14,9.45 13.06,9.03 12,9.03C10.94,9.03 10,9.45 9.27,10.11M12,14.47C12.82,14.47 13.5,13.8 13.5,13A1.5,1.5 0 0,0 12,11.5A1.5,1.5 0 0,0 10.5,13C10.5,13.8 11.17,14.47 12,14.47M10.97,16.79C10.87,14.9 9.71,13.29 8.05,12.55C8.03,12.7 8,12.84 8,13C8,14.82 9.27,16.34 10.97,16.79M15.96,12.55C14.29,13.29 13.12,14.9 13,16.79C14.73,16.34 16,14.82 16,13C16,12.84 15.97,12.7 15.96,12.55Z\";\nexport var mdiBird = \"M23 11.5L19.95 10.37C19.69 9.22 19.04 8.56 19.04 8.56C17.4 6.92 14.75 6.92 13.11 8.56L11.63 10.04L5 3C4 7 5 11 7.45 14.22L2 19.5C2 19.5 10.89 21.5 16.07 17.45C18.83 15.29 19.45 14.03 19.84 12.7L23 11.5M17.71 11.72C17.32 12.11 16.68 12.11 16.29 11.72C15.9 11.33 15.9 10.7 16.29 10.31C16.68 9.92 17.32 9.92 17.71 10.31C18.1 10.7 18.1 11.33 17.71 11.72Z\";\nexport var mdiBitbucket = \"M2.65 3C2.3 3 2 3.3 2 3.65C2 3.69 2 3.73 2 3.77L4.73 20.27C4.8 20.69 5.16 21 5.58 21H18.63C18.94 21 19.22 20.78 19.27 20.46L22 3.77C22.05 3.42 21.81 3.09 21.46 3.04C21.43 3.03 21.39 3.03 21.35 3.03L2.65 3M14.1 14.95H9.94L8.81 9.07H15.11L14.1 14.95Z\";\nexport var mdiBitcoin = \"M14.24 10.56C13.93 11.8 12 11.17 11.4 11L11.95 8.82C12.57 9 14.56 9.26 14.24 10.56M11.13 12.12L10.53 14.53C11.27 14.72 13.56 15.45 13.9 14.09C14.26 12.67 11.87 12.3 11.13 12.12M21.7 14.42C20.36 19.78 14.94 23.04 9.58 21.7C4.22 20.36 .963 14.94 2.3 9.58C3.64 4.22 9.06 .964 14.42 2.3C19.77 3.64 23.03 9.06 21.7 14.42M14.21 8.05L14.66 6.25L13.56 6L13.12 7.73C12.83 7.66 12.54 7.59 12.24 7.53L12.68 5.76L11.59 5.5L11.14 7.29C10.9 7.23 10.66 7.18 10.44 7.12L10.44 7.12L8.93 6.74L8.63 7.91C8.63 7.91 9.45 8.1 9.43 8.11C9.88 8.22 9.96 8.5 9.94 8.75L8.71 13.68C8.66 13.82 8.5 14 8.21 13.95C8.22 13.96 7.41 13.75 7.41 13.75L6.87 15L8.29 15.36C8.56 15.43 8.82 15.5 9.08 15.56L8.62 17.38L9.72 17.66L10.17 15.85C10.47 15.93 10.76 16 11.04 16.08L10.59 17.87L11.69 18.15L12.15 16.33C14 16.68 15.42 16.54 16 14.85C16.5 13.5 16 12.7 15 12.19C15.72 12 16.26 11.55 16.41 10.57C16.61 9.24 15.59 8.53 14.21 8.05Z\";\nexport var mdiBlackMesa = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.39 5.05,16.53 6.71,18H9V12H17L19.15,15.59C19.69,14.5 20,13.29 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiBlender = \"M16.13 15.13L18 3H14V2H10V3H5C3.9 3 3 3.9 3 5V9C3 10.1 3.9 11 5 11H7.23L7.87 15.13C6.74 16.05 6 17.43 6 19V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V19C18 17.43 17.26 16.05 16.13 15.13M5 9V5H6.31L6.93 9H5M12 19C11.45 19 11 18.55 11 18S11.45 17 12 17 13 17.45 13 18 12.55 19 12 19M14.29 14H9.72L8.33 5H15.67L14.29 14Z\";\nexport var mdiBlenderOutline = \"M16.13 15.13L18 3H14V2H10V3H5C3.9 3 3 3.9 3 5V9C3 10.1 3.9 11 5 11H7.23L7.87 15.13C6.74 16.05 6 17.43 6 19V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V19C18 17.43 17.26 16.05 16.13 15.13M5 9V5H6.31L6.93 9H5M15.67 5L14.29 14H9.72L8.33 5H15.67M16 20H8V19C8 17.35 9.35 16 11 16H13C14.65 16 16 17.35 16 19V20M12 17C12.55 17 13 17.45 13 18S12.55 19 12 19 11 18.55 11 18 11.45 17 12 17Z\";\nexport var mdiBlenderSoftware = \"M12.58,3.12V3.13C12.27,3.13 11.96,3.22 11.71,3.39C11.21,3.74 11.15,4.32 11.6,4.69L14.46,7L5.73,7.03H5.72C5,7.03 4.3,7.5 4.16,8.1C4,8.71 4.5,9.22 5.26,9.22L9.69,9.21L1.76,15.3C1,15.87 0.77,16.82 1.24,17.42C1.72,18.03 2.73,18.03 3.5,17.42L7.8,13.89C7.8,13.89 7.73,14.37 7.74,14.65C7.74,14.94 7.84,15.5 7.97,15.93C8.26,16.86 8.75,17.71 9.43,18.46C10.13,19.23 11,19.85 12,20.29C13.03,20.76 14.17,21 15.34,21C16.5,21 17.65,20.75 18.69,20.28C19.69,19.84 20.55,19.21 21.25,18.44C21.93,17.69 22.42,16.83 22.71,15.91C22.85,15.44 22.94,14.97 23,14.5C23,14.03 23,13.56 22.94,13.09C22.81,12.18 22.5,11.32 22,10.54C21.56,9.83 21,9.2 20.31,8.67V8.67L13.42,3.38C13.19,3.21 12.89,3.12 12.58,3.12M15.34,9.21C16.5,9.21 17.59,9.59 18.46,10.29C18.9,10.65 19.25,11.07 19.5,11.54C19.77,12 19.94,12.55 20,13.11C20.04,13.67 19.96,14.23 19.77,14.77C19.57,15.31 19.25,15.81 18.82,16.26C17.93,17.16 16.69,17.68 15.34,17.68C14,17.68 12.75,17.17 11.86,16.27C11.43,15.83 11.11,15.32 10.91,14.78C10.72,14.25 10.64,13.69 10.69,13.12C10.74,12.56 10.91,12.03 11.17,11.55C11.43,11.08 11.79,10.66 12.23,10.3C13.09,9.59 14.19,9.21 15.34,9.21M15.44,10.61C14.66,10.61 13.94,10.89 13.41,11.34C12.87,11.8 12.5,12.44 12.47,13.18C12.43,13.93 12.73,14.63 13.26,15.15C13.8,15.68 14.58,16 15.44,16C16.3,16 17.07,15.68 17.62,15.15C18.15,14.63 18.45,13.93 18.41,13.18C18.37,12.44 18,11.8 17.47,11.34C16.94,10.89 16.22,10.61 15.44,10.61Z\";\nexport var mdiBlinds = \"M3,2H21A1,1 0 0,1 22,3V5A1,1 0 0,1 21,6H20V13A1,1 0 0,1 19,14H13V16.17C14.17,16.58 15,17.69 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.69 9.83,16.58 11,16.17V14H5A1,1 0 0,1 4,13V6H3A1,1 0 0,1 2,5V3A1,1 0 0,1 3,2M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z\";\nexport var mdiBlindsHorizontal = \"M20 19V3H4V19H2V21H22V19H20M16 9H18V11H16V9M14 11H6V9H14V11M18 7H16V5H18V7M14 5V7H6V5H14M6 19V13H14V14.82C13.55 15.14 13.25 15.66 13.25 16.25C13.25 17.22 14.03 18 15 18S16.75 17.22 16.75 16.25C16.75 15.66 16.45 15.13 16 14.82V13H18V19H6Z\";\nexport var mdiBlindsHorizontalClosed = \"M20 19V3H4V19H2V21H13.25C13.25 21.97 14.03 22.75 15 22.75S16.75 21.97 16.75 21H22V19H20M18 11H16V9H18V11M14 11H6V9H14V11M14 13V15H6V13H14M16 13H18V15H16V13M18 7H16V5H18V7M14 5V7H6V5H14M6 19V17H14V19H6M16 19V17H18V19H16Z\";\nexport var mdiBlindsOpen = \"M3 2H21C21.55 2 22 2.45 22 3V5C22 5.55 21.55 6 21 6H20V7C20 7.55 19.55 8 19 8H13V10.17C14.17 10.58 15 11.7 15 13C15 14.66 13.66 16 12 16C10.34 16 9 14.66 9 13C9 11.69 9.84 10.58 11 10.17V8H5C4.45 8 4 7.55 4 7V6H3C2.45 6 2 5.55 2 5V3C2 2.45 2.45 2 3 2M12 12C11.45 12 11 12.45 11 13C11 13.55 11.45 14 12 14C12.55 14 13 13.55 13 13C13 12.45 12.55 12 12 12Z\";\nexport var mdiBlindsVertical = \"M20 19V3H4V19H2V21H22V19H20M10 19V5H14V19H10Z\";\nexport var mdiBlindsVerticalClosed = \"M20 19V3H4V19H2V21H22V19H20M13 5H14.5V19H13V5M11 19H9.5V5H11V19M6 5H7.5V19H6V5M16.5 19V5H18V19H16.5Z\";\nexport var mdiBlockHelper = \"M12,0A12,12 0 0,1 24,12A12,12 0 0,1 12,24A12,12 0 0,1 0,12A12,12 0 0,1 12,0M12,2A10,10 0 0,0 2,12C2,14.4 2.85,16.6 4.26,18.33L18.33,4.26C16.6,2.85 14.4,2 12,2M12,22A10,10 0 0,0 22,12C22,9.6 21.15,7.4 19.74,5.67L5.67,19.74C7.4,21.15 9.6,22 12,22Z\";\nexport var mdiBloodBag = \"M21,7C20,7 20,6 20,6V5H18V7H16V6C16,4.27 14.75,1 10,1C5.25,1 4,4.27 4,6V19C4,19.33 3.9,21 2,21V23C4.93,23 6,20.61 6,19V6C6,5.88 6.05,3 10,3C13.83,3 14,5.7 14,6V7H12V5H10V6C10,6 10,7 9,7C8,7 8,8 8,8V20C8,20 8,22 13,22C13.24,22 14.13,22 17,22C22,22 22,20 22,20V8C22,8 22,7 21,7M15,19.4A3,3 0 0,1 12,16.4C12,14.4 15,11 15,11C15,11 18,14.4 18,16.4A3,3 0 0,1 15,19.4Z\";\nexport var mdiBluetooth = \"M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z\";\nexport var mdiBluetoothAudio = \"M12.88,16.29L11,18.17V14.41M11,5.83L12.88,7.71L11,9.58M15.71,7.71L10,2H9V9.58L4.41,5L3,6.41L8.59,12L3,17.58L4.41,19L9,14.41V22H10L15.71,16.29L11.41,12M19.53,6.71L18.26,8C18.89,9.18 19.25,10.55 19.25,12C19.25,13.45 18.89,14.82 18.26,16L19.46,17.22C20.43,15.68 21,13.87 21,11.91C21,10 20.46,8.23 19.53,6.71M14.24,12L16.56,14.33C16.84,13.6 17,12.82 17,12C17,11.18 16.84,10.4 16.57,9.68L14.24,12Z\";\nexport var mdiBluetoothConnect = \"M19,10L17,12L19,14L21,12M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12M7,12L5,10L3,12L5,14L7,12Z\";\nexport var mdiBluetoothOff = \"M13,5.83L14.88,7.71L13.28,9.31L14.69,10.72L17.71,7.7L12,2H11V7.03L13,9.03M5.41,4L4,5.41L10.59,12L5,17.59L6.41,19L11,14.41V22H12L16.29,17.71L18.59,20L20,18.59M13,18.17V14.41L14.88,16.29\";\nexport var mdiBluetoothSettings = \"M14.88,14.29L13,16.17V12.41L14.88,14.29M13,3.83L14.88,5.71L13,7.59M17.71,5.71L12,0H11V7.59L6.41,3L5,4.41L10.59,10L5,15.59L6.41,17L11,12.41V20H12L17.71,14.29L13.41,10L17.71,5.71M15,24H17V22H15M7,24H9V22H7M11,24H13V22H11V24Z\";\nexport var mdiBluetoothTransfer = \"M14.71,7.71L10.41,12L14.71,16.29L9,22H8V14.41L3.41,19L2,17.59L7.59,12L2,6.41L3.41,5L8,9.59V2H9L14.71,7.71M10,5.83V9.59L11.88,7.71L10,5.83M11.88,16.29L10,14.41V18.17L11.88,16.29M22,8H20V11H18V8H16L19,4L22,8M22,16L19,20L16,16H18V13H20V16H22Z\";\nexport var mdiBlur = \"M14,8.5A1.5,1.5 0 0,0 12.5,10A1.5,1.5 0 0,0 14,11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 14,8.5M14,12.5A1.5,1.5 0 0,0 12.5,14A1.5,1.5 0 0,0 14,15.5A1.5,1.5 0 0,0 15.5,14A1.5,1.5 0 0,0 14,12.5M10,17A1,1 0 0,0 9,18A1,1 0 0,0 10,19A1,1 0 0,0 11,18A1,1 0 0,0 10,17M10,8.5A1.5,1.5 0 0,0 8.5,10A1.5,1.5 0 0,0 10,11.5A1.5,1.5 0 0,0 11.5,10A1.5,1.5 0 0,0 10,8.5M14,20.5A0.5,0.5 0 0,0 13.5,21A0.5,0.5 0 0,0 14,21.5A0.5,0.5 0 0,0 14.5,21A0.5,0.5 0 0,0 14,20.5M14,17A1,1 0 0,0 13,18A1,1 0 0,0 14,19A1,1 0 0,0 15,18A1,1 0 0,0 14,17M21,13.5A0.5,0.5 0 0,0 20.5,14A0.5,0.5 0 0,0 21,14.5A0.5,0.5 0 0,0 21.5,14A0.5,0.5 0 0,0 21,13.5M18,5A1,1 0 0,0 17,6A1,1 0 0,0 18,7A1,1 0 0,0 19,6A1,1 0 0,0 18,5M18,9A1,1 0 0,0 17,10A1,1 0 0,0 18,11A1,1 0 0,0 19,10A1,1 0 0,0 18,9M18,17A1,1 0 0,0 17,18A1,1 0 0,0 18,19A1,1 0 0,0 19,18A1,1 0 0,0 18,17M18,13A1,1 0 0,0 17,14A1,1 0 0,0 18,15A1,1 0 0,0 19,14A1,1 0 0,0 18,13M10,12.5A1.5,1.5 0 0,0 8.5,14A1.5,1.5 0 0,0 10,15.5A1.5,1.5 0 0,0 11.5,14A1.5,1.5 0 0,0 10,12.5M10,7A1,1 0 0,0 11,6A1,1 0 0,0 10,5A1,1 0 0,0 9,6A1,1 0 0,0 10,7M10,3.5A0.5,0.5 0 0,0 10.5,3A0.5,0.5 0 0,0 10,2.5A0.5,0.5 0 0,0 9.5,3A0.5,0.5 0 0,0 10,3.5M10,20.5A0.5,0.5 0 0,0 9.5,21A0.5,0.5 0 0,0 10,21.5A0.5,0.5 0 0,0 10.5,21A0.5,0.5 0 0,0 10,20.5M3,13.5A0.5,0.5 0 0,0 2.5,14A0.5,0.5 0 0,0 3,14.5A0.5,0.5 0 0,0 3.5,14A0.5,0.5 0 0,0 3,13.5M14,3.5A0.5,0.5 0 0,0 14.5,3A0.5,0.5 0 0,0 14,2.5A0.5,0.5 0 0,0 13.5,3A0.5,0.5 0 0,0 14,3.5M14,7A1,1 0 0,0 15,6A1,1 0 0,0 14,5A1,1 0 0,0 13,6A1,1 0 0,0 14,7M21,10.5A0.5,0.5 0 0,0 21.5,10A0.5,0.5 0 0,0 21,9.5A0.5,0.5 0 0,0 20.5,10A0.5,0.5 0 0,0 21,10.5M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5M3,9.5A0.5,0.5 0 0,0 2.5,10A0.5,0.5 0 0,0 3,10.5A0.5,0.5 0 0,0 3.5,10A0.5,0.5 0 0,0 3,9.5M6,9A1,1 0 0,0 5,10A1,1 0 0,0 6,11A1,1 0 0,0 7,10A1,1 0 0,0 6,9M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M6,13A1,1 0 0,0 5,14A1,1 0 0,0 6,15A1,1 0 0,0 7,14A1,1 0 0,0 6,13Z\";\nexport var mdiBlurLinear = \"M13,17A1,1 0 0,0 14,16A1,1 0 0,0 13,15A1,1 0 0,0 12,16A1,1 0 0,0 13,17M13,13A1,1 0 0,0 14,12A1,1 0 0,0 13,11A1,1 0 0,0 12,12A1,1 0 0,0 13,13M13,9A1,1 0 0,0 14,8A1,1 0 0,0 13,7A1,1 0 0,0 12,8A1,1 0 0,0 13,9M17,12.5A0.5,0.5 0 0,0 17.5,12A0.5,0.5 0 0,0 17,11.5A0.5,0.5 0 0,0 16.5,12A0.5,0.5 0 0,0 17,12.5M17,8.5A0.5,0.5 0 0,0 17.5,8A0.5,0.5 0 0,0 17,7.5A0.5,0.5 0 0,0 16.5,8A0.5,0.5 0 0,0 17,8.5M3,3V5H21V3M17,16.5A0.5,0.5 0 0,0 17.5,16A0.5,0.5 0 0,0 17,15.5A0.5,0.5 0 0,0 16.5,16A0.5,0.5 0 0,0 17,16.5M9,17A1,1 0 0,0 10,16A1,1 0 0,0 9,15A1,1 0 0,0 8,16A1,1 0 0,0 9,17M5,13.5A1.5,1.5 0 0,0 6.5,12A1.5,1.5 0 0,0 5,10.5A1.5,1.5 0 0,0 3.5,12A1.5,1.5 0 0,0 5,13.5M5,9.5A1.5,1.5 0 0,0 6.5,8A1.5,1.5 0 0,0 5,6.5A1.5,1.5 0 0,0 3.5,8A1.5,1.5 0 0,0 5,9.5M3,21H21V19H3M9,9A1,1 0 0,0 10,8A1,1 0 0,0 9,7A1,1 0 0,0 8,8A1,1 0 0,0 9,9M9,13A1,1 0 0,0 10,12A1,1 0 0,0 9,11A1,1 0 0,0 8,12A1,1 0 0,0 9,13M5,17.5A1.5,1.5 0 0,0 6.5,16A1.5,1.5 0 0,0 5,14.5A1.5,1.5 0 0,0 3.5,16A1.5,1.5 0 0,0 5,17.5Z\";\nexport var mdiBlurOff = \"M3,13.5A0.5,0.5 0 0,0 2.5,14A0.5,0.5 0 0,0 3,14.5A0.5,0.5 0 0,0 3.5,14A0.5,0.5 0 0,0 3,13.5M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M10,20.5A0.5,0.5 0 0,0 9.5,21A0.5,0.5 0 0,0 10,21.5A0.5,0.5 0 0,0 10.5,21A0.5,0.5 0 0,0 10,20.5M3,9.5A0.5,0.5 0 0,0 2.5,10A0.5,0.5 0 0,0 3,10.5A0.5,0.5 0 0,0 3.5,10A0.5,0.5 0 0,0 3,9.5M6,13A1,1 0 0,0 5,14A1,1 0 0,0 6,15A1,1 0 0,0 7,14A1,1 0 0,0 6,13M21,13.5A0.5,0.5 0 0,0 20.5,14A0.5,0.5 0 0,0 21,14.5A0.5,0.5 0 0,0 21.5,14A0.5,0.5 0 0,0 21,13.5M10,17A1,1 0 0,0 9,18A1,1 0 0,0 10,19A1,1 0 0,0 11,18A1,1 0 0,0 10,17M2.5,5.27L6.28,9.05L6,9A1,1 0 0,0 5,10A1,1 0 0,0 6,11A1,1 0 0,0 7,10C7,9.9 6.97,9.81 6.94,9.72L9.75,12.53C9.04,12.64 8.5,13.26 8.5,14A1.5,1.5 0 0,0 10,15.5C10.74,15.5 11.36,14.96 11.47,14.25L14.28,17.06C14.19,17.03 14.1,17 14,17A1,1 0 0,0 13,18A1,1 0 0,0 14,19A1,1 0 0,0 15,18C15,17.9 14.97,17.81 14.94,17.72L18.72,21.5L20,20.23L3.77,4L2.5,5.27M14,20.5A0.5,0.5 0 0,0 13.5,21A0.5,0.5 0 0,0 14,21.5A0.5,0.5 0 0,0 14.5,21A0.5,0.5 0 0,0 14,20.5M18,7A1,1 0 0,0 19,6A1,1 0 0,0 18,5A1,1 0 0,0 17,6A1,1 0 0,0 18,7M18,11A1,1 0 0,0 19,10A1,1 0 0,0 18,9A1,1 0 0,0 17,10A1,1 0 0,0 18,11M18,15A1,1 0 0,0 19,14A1,1 0 0,0 18,13A1,1 0 0,0 17,14A1,1 0 0,0 18,15M10,7A1,1 0 0,0 11,6A1,1 0 0,0 10,5A1,1 0 0,0 9,6A1,1 0 0,0 10,7M21,10.5A0.5,0.5 0 0,0 21.5,10A0.5,0.5 0 0,0 21,9.5A0.5,0.5 0 0,0 20.5,10A0.5,0.5 0 0,0 21,10.5M10,3.5A0.5,0.5 0 0,0 10.5,3A0.5,0.5 0 0,0 10,2.5A0.5,0.5 0 0,0 9.5,3A0.5,0.5 0 0,0 10,3.5M14,3.5A0.5,0.5 0 0,0 14.5,3A0.5,0.5 0 0,0 14,2.5A0.5,0.5 0 0,0 13.5,3A0.5,0.5 0 0,0 14,3.5M13.8,11.5H14A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 14,8.5A1.5,1.5 0 0,0 12.5,10V10.2C12.61,10.87 13.13,11.39 13.8,11.5M14,7A1,1 0 0,0 15,6A1,1 0 0,0 14,5A1,1 0 0,0 13,6A1,1 0 0,0 14,7Z\";\nexport var mdiBlurRadial = \"M14,13A1,1 0 0,0 13,14A1,1 0 0,0 14,15A1,1 0 0,0 15,14A1,1 0 0,0 14,13M14,16.5A0.5,0.5 0 0,0 13.5,17A0.5,0.5 0 0,0 14,17.5A0.5,0.5 0 0,0 14.5,17A0.5,0.5 0 0,0 14,16.5M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M17,9.5A0.5,0.5 0 0,0 16.5,10A0.5,0.5 0 0,0 17,10.5A0.5,0.5 0 0,0 17.5,10A0.5,0.5 0 0,0 17,9.5M17,13.5A0.5,0.5 0 0,0 16.5,14A0.5,0.5 0 0,0 17,14.5A0.5,0.5 0 0,0 17.5,14A0.5,0.5 0 0,0 17,13.5M14,7.5A0.5,0.5 0 0,0 14.5,7A0.5,0.5 0 0,0 14,6.5A0.5,0.5 0 0,0 13.5,7A0.5,0.5 0 0,0 14,7.5M14,9A1,1 0 0,0 13,10A1,1 0 0,0 14,11A1,1 0 0,0 15,10A1,1 0 0,0 14,9M10,7.5A0.5,0.5 0 0,0 10.5,7A0.5,0.5 0 0,0 10,6.5A0.5,0.5 0 0,0 9.5,7A0.5,0.5 0 0,0 10,7.5M7,13.5A0.5,0.5 0 0,0 6.5,14A0.5,0.5 0 0,0 7,14.5A0.5,0.5 0 0,0 7.5,14A0.5,0.5 0 0,0 7,13.5M10,16.5A0.5,0.5 0 0,0 9.5,17A0.5,0.5 0 0,0 10,17.5A0.5,0.5 0 0,0 10.5,17A0.5,0.5 0 0,0 10,16.5M7,9.5A0.5,0.5 0 0,0 6.5,10A0.5,0.5 0 0,0 7,10.5A0.5,0.5 0 0,0 7.5,10A0.5,0.5 0 0,0 7,9.5M10,13A1,1 0 0,0 9,14A1,1 0 0,0 10,15A1,1 0 0,0 11,14A1,1 0 0,0 10,13M10,9A1,1 0 0,0 9,10A1,1 0 0,0 10,11A1,1 0 0,0 11,10A1,1 0 0,0 10,9Z\";\nexport var mdiBolt = \"M14,17.7V21H10V20.3L14,17.7M17,3H7V6H17V3M15,7L14,7.7V7H10V10.3L9,11V12L15,8.1V7M15,11L14,11.7V9.7L10,12.4V14.4L9,15V16L15,12.1V11M15,15L14,15.7V13.7L10,16.4V18.4L9,19V20L15,16.1V15Z\";\nexport var mdiBomb = \"M11.25,6A3.25,3.25 0 0,1 14.5,2.75A3.25,3.25 0 0,1 17.75,6C17.75,6.42 18.08,6.75 18.5,6.75C18.92,6.75 19.25,6.42 19.25,6V5.25H20.75V6A2.25,2.25 0 0,1 18.5,8.25A2.25,2.25 0 0,1 16.25,6A1.75,1.75 0 0,0 14.5,4.25A1.75,1.75 0 0,0 12.75,6H14V7.29C16.89,8.15 19,10.83 19,14A7,7 0 0,1 12,21A7,7 0 0,1 5,14C5,10.83 7.11,8.15 10,7.29V6H11.25M22,6H24V7H22V6M19,4V2H20V4H19M20.91,4.38L22.33,2.96L23.04,3.67L21.62,5.09L20.91,4.38Z\";\nexport var mdiBombOff = \"M14.5,2.75C12.7,2.75 11.25,4.2 11.25,6H10V7.29C9.31,7.5 8.67,7.81 8.08,8.2L17.79,17.91C18.58,16.76 19,15.39 19,14C19,10.83 16.89,8.15 14,7.29V6H12.75A1.75,1.75 0 0,1 14.5,4.25A1.75,1.75 0 0,1 16.25,6A2.25,2.25 0 0,0 18.5,8.25C19.74,8.25 20.74,7.24 20.74,6V5.25H19.25V6C19.25,6.42 18.91,6.75 18.5,6.75C18.08,6.75 17.75,6.42 17.75,6C17.75,4.2 16.29,2.75 14.5,2.75M3.41,6.36L2,7.77L5.55,11.32C5.2,12.14 5,13.04 5,14C5,17.86 8.13,21 12,21C12.92,21 13.83,20.81 14.68,20.45L18.23,24L19.64,22.59L3.41,6.36Z\";\nexport var mdiBone = \"M8,14A3,3 0 0,1 5,17A3,3 0 0,1 2,14C2,13.23 2.29,12.53 2.76,12C2.29,11.47 2,10.77 2,10A3,3 0 0,1 5,7A3,3 0 0,1 8,10C9.33,10.08 10.67,10.17 12,10.17C13.33,10.17 14.67,10.08 16,10A3,3 0 0,1 19,7A3,3 0 0,1 22,10C22,10.77 21.71,11.47 21.24,12C21.71,12.53 22,13.23 22,14A3,3 0 0,1 19,17A3,3 0 0,1 16,14C14.67,13.92 13.33,13.83 12,13.83C10.67,13.83 9.33,13.92 8,14Z\";\nexport var mdiBoneOff = \"M22.1 21.5L2.4 1.7L1.1 3L5.1 7H5C3.3 7 2 8.3 2 10C2 10.8 2.3 11.5 2.8 12C2.3 12.5 2 13.2 2 14C2 15.7 3.3 17 5 17S8 15.7 8 14C9.3 13.9 10.6 13.8 11.9 13.8L20.8 22.7L22.1 21.5M20 16.8L13.3 10.1C14.2 10.1 15.1 10 16 10C16 8.3 17.3 7 19 7S22 8.3 22 10C22 10.8 21.7 11.5 21.2 12C21.7 12.5 22 13.2 22 14C22 15.3 21.2 16.4 20 16.8Z\";\nexport var mdiBook = \"M18,22A2,2 0 0,0 20,20V4C20,2.89 19.1,2 18,2H12V9L9.5,7.5L7,9V2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18Z\";\nexport var mdiBookAccount = \"M18 2H12V9L9.5 7.5L7 9V2H6A2 2 0 0 0 4 4V20A2 2 0 0 0 6 22H18A2 2 0 0 0 20 20V4A2 2 0 0 0 18 2M14 12A2 2 0 1 1 12 14A2 2 0 0 1 14 12M18 20H10V19C10 17.67 12.67 17 14 17S18 17.67 18 19Z\";\nexport var mdiBookAccountOutline = \"M18 2A2 2 0 0 1 20 4V20A2 2 0 0 1 18 22H6A2 2 0 0 1 4 20V4A2 2 0 0 1 6 2H18M18 4H13V9L10.5 6.7L8 9V4H6V20H18M13 11A2 2 0 1 1 11 13A2 2 0 0 1 13 11M17 19H9V18C9 16.67 11.67 16 13 16S17 16.67 17 18V19\";\nexport var mdiBookAlert = \"M18 4V20C18 21.11 17.11 22 16 22H4C2.9 22 2 21.11 2 20V4C2 2.9 2.9 2 4 2H5V9L7.5 7.5L10 9V2H16C17.1 2 18 2.89 18 4M20 17H22V15H20V17M20 7V13H22V7H20Z\";\nexport var mdiBookAlertOutline = \"M16 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H16C17.11 22 18 21.11 18 20V4C18 2.9 17.11 2 16 2M16 20H4V4H6V12L8.5 9.75L11 12V4H16V20M20 15H22V17H20V15M22 7V13H20V7H22Z\";\nexport var mdiBookAlphabet = \"M5.81,2C4.83,2.09 4,3 4,4V20C4,21.05 4.95,22 6,22H18C19.05,22 20,21.05 20,20V4C20,2.89 19.1,2 18,2H12V9L9.5,7.5L7,9V2H6C5.94,2 5.87,2 5.81,2M12,13H13A1,1 0 0,1 14,14V18H13V16H12V18H11V14A1,1 0 0,1 12,13M12,14V15H13V14H12M15,15H18V16L16,19H18V20H15V19L17,16H15V15Z\";\nexport var mdiBookArrowDown = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M20 20V16H18V20H16L19 23L22 20H20Z\";\nexport var mdiBookArrowDownOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M20 20V16H18V20H16L19 23L22 20H20Z\";\nexport var mdiBookArrowLeft = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiBookArrowLeftOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiBookArrowRight = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiBookArrowRightOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiBookArrowUp = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M19 15L16 18H18V22H20V18H22L19 15Z\";\nexport var mdiBookArrowUpOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M19 15L16 18H18V22H20V18H22L19 15Z\";\nexport var mdiBookCancel = \"M12 18.5C12 19.79 12.39 21 13.04 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V12.18C19.5 12.07 19 12 18.5 12C14.91 12 12 14.91 12 18.5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiBookCancelOutline = \"M12.18 20C12.36 20.72 12.65 21.39 13.04 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V12.18C19.5 12.07 19 12 18.5 12C18.33 12 18.17 12 18 12.03V4H13V12L10.5 9.75L8 12V4H6V20H12.18M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiBookCheck = \"M16.75 22.16L14 19.16L15.16 18L16.75 19.59L20.34 16L21.5 17.41L16.75 22.16M6 22C4.89 22 4 21.1 4 20V4C4 2.89 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.34C19.37 13.12 18.7 13 18 13C14.69 13 12 15.69 12 19C12 20.09 12.29 21.12 12.8 22H6Z\";\nexport var mdiBookCheckOutline = \"M16.75 22.16L14 19.16L15.16 18L16.75 19.59L20.34 16L21.5 17.41L16.75 22.16M18 2C19.1 2 20 2.9 20 4V13.34C19.37 13.12 18.7 13 18 13V4H13V12L10.5 9.75L8 12V4H6V20H12.08C12.2 20.72 12.45 21.39 12.8 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H18Z\";\nexport var mdiBookClock = \"M16.5 17.25L19.36 18.94L18.61 20.16L15 18V13H16.5V17.25M23 17C23 20.87 19.87 24 16 24C14.09 24 12.37 23.24 11.11 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V11.26C21.81 12.53 23 14.62 23 17M21 17C21 14.24 18.76 12 16 12S11 14.24 11 17 13.24 22 16 22 21 19.76 21 17Z\";\nexport var mdiBookClockOutline = \"M20 11.26V4C20 2.9 19.11 2 18 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H11.11C12.37 23.24 14.09 24 16 24C19.87 24 23 20.87 23 17C23 14.62 21.81 12.53 20 11.26M18 4V10.29C17.37 10.11 16.7 10 16 10C14.93 10 13.91 10.25 13 10.68V4H18M6 4H8V12L10.5 9.75L12.1 11.19C10.23 12.45 9 14.58 9 17C9 18.08 9.25 19.09 9.68 20H6V4M16 22C13.24 22 11 19.76 11 17S13.24 12 16 12 21 14.24 21 17 18.76 22 16 22M16.5 17.25L19.36 18.94L18.61 20.16L15 18V13H16.5V17.25Z\";\nexport var mdiBookCog = \"M12 19C12 20.08 12.25 21.09 12.68 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V12.08C19.67 12.03 19.34 12 19 12C15.13 12 12 15.13 12 19M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiBookCogOutline = \"M18 4H13V12L10.5 9.75L8 12V4H6V20H12.08C12.18 20.71 12.39 21.38 12.69 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V12.08C19.67 12.03 19.34 12 19 12C18.66 12 18.33 12.03 18 12.08V4M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiBookCross = \"M5.81,2H7V9L9.5,7.5L12,9V2H18A2,2 0 0,1 20,4V20C20,21.05 19.05,22 18,22H6C4.95,22 4,21.05 4,20V4C4,3 4.83,2.09 5.81,2M13,10V13H10V15H13V20H15V15H18V13H15V10H13Z\";\nexport var mdiBookEdit = \"M19.39 10.74L11 19.13V22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V10.3C19.78 10.42 19.57 10.56 19.39 10.74M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiBookEditOutline = \"M6 20H11V22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V10.3C19.78 10.42 19.57 10.56 19.39 10.74L18 12.13V4H13V12L10.5 9.75L8 12V4H6V20M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiBookEducation = \"M8.82 17L13 19.28V22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V12.54L18.5 11.72L8.82 17M24 17L18.5 14L13 17L18.5 20L24 17M15 19.09V21.09L18.5 23L22 21.09V19.09L18.5 21L15 19.09Z\";\nexport var mdiBookEducationOutline = \"M6 20H13V22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V12.54L18.5 11.72L18 12V4H13V12L10.5 9.75L8 12V4H6V20M24 17L18.5 14L13 17L18.5 20L24 17M15 19.09V21.09L18.5 23L22 21.09V19.09L18.5 21L15 19.09Z\";\nexport var mdiBookHeart = \"M19 23.3L18.4 22.8C16.4 20.9 15 19.7 15 18.2C15 17 16 16 17.2 16C17.9 16 18.6 16.3 19 16.8C19.4 16.3 20.1 16 20.8 16C22 16 23 16.9 23 18.2C23 19.7 21.6 20.9 19.6 22.8L19 23.3M6 22C4.89 22 4 21.1 4 20V4C4 2.89 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.08L19 13C15.69 13 13 15.69 13 19C13 20.09 13.29 21.12 13.8 22H6Z\";\nexport var mdiBookHeartOutline = \"M19 23.3L18.4 22.8C16.4 20.9 15 19.7 15 18.2C15 17 16 16 17.2 16C17.9 16 18.6 16.3 19 16.8C19.4 16.3 20.1 16 20.8 16C22 16 23 16.9 23 18.2C23 19.7 21.6 20.9 19.6 22.8L19 23.3M18 2C19.1 2 20 2.9 20 4V13.08L19 13L18 13.08V4H13V12L10.5 9.75L8 12V4H6V20H13.08C13.2 20.72 13.45 21.39 13.8 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H18Z\";\nexport var mdiBookInformationVariant = \"M18 2H12V9L9.5 7.5L7 9V2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V4C20 2.89 19.1 2 18 2M17.68 18.41C17.57 18.5 16.47 19.25 16.05 19.5C15.63 19.79 14 20.72 14.26 18.92C14.89 15.28 16.11 13.12 14.65 14.06C14.27 14.29 14.05 14.43 13.91 14.5C13.78 14.61 13.79 14.6 13.68 14.41S13.53 14.23 13.67 14.13C13.67 14.13 15.9 12.34 16.72 12.28C17.5 12.21 17.31 13.17 17.24 13.61C16.78 15.46 15.94 18.15 16.07 18.54C16.18 18.93 17 18.31 17.44 18C17.44 18 17.5 17.93 17.61 18.05C17.72 18.22 17.83 18.3 17.68 18.41M16.97 11.06C16.4 11.06 15.94 10.6 15.94 10.03C15.94 9.46 16.4 9 16.97 9C17.54 9 18 9.46 18 10.03C18 10.6 17.54 11.06 16.97 11.06Z\";\nexport var mdiBookLock = \"M14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20.7C13 21.16 13.1 21.6 13.27 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V10.11C19.68 10.04 19.34 10 19 10C16.4 10 14.2 12.06 14.2 14.5M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiBookLockOpen = \"M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.7C13 21.16 13.1 21.6 13.27 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V9.11C19.68 9.04 19.34 9 19 9C16.4 9 14.2 11.06 14.2 13.5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiBookLockOpenOutline = \"M13 20.7C13 21.16 13.1 21.6 13.27 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V9.11C19.68 9.04 19.34 9 19 9S18.32 9.04 18 9.11V4H13V12L10.5 9.75L8 12V4H6V20H13V20.7M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiBookLockOutline = \"M13 20.7C13 21.16 13.1 21.6 13.27 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V10.11C19.68 10.04 19.34 10 19 10S18.32 10.04 18 10.11V4H13V12L10.5 9.75L8 12V4H6V20H13V20.7M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiBookMarker = \"M13 15.5C13 17.78 14.7 20.41 15.91 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V10.22C19.5 10.08 19 10 18.5 10C15.5 10 13 12.5 13 15.5M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiBookMarkerOutline = \"M14.55 20C15 20.76 15.5 21.44 15.91 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V10.22C19.5 10.08 19 10 18.5 10C18.33 10 18.17 10 18 10.03V4H13V12L10.5 9.75L8 12V4H6V20H14.55M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiBookMinus = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M15 18V20H23V18H15Z\";\nexport var mdiBookMinusMultiple = \"M13.09 20H5V6H3V20C3 21.11 3.9 22 5 22H13.81C13.44 21.39 13.2 20.71 13.09 20M19 2H14V7L12 5.5L10 7V2H9C7.9 2 7 2.9 7 4V16C7 17.11 7.9 18 9 18H13.09C13.64 14.73 16.74 12.53 20 13.08C20.34 13.14 20.68 13.23 21 13.34V4C21 2.9 20.11 2 19 2M23 18V20H15V18H23Z\";\nexport var mdiBookMinusMultipleOutline = \"M13.09 20H5V6H3V20C3 21.11 3.9 22 5 22H13.81C13.44 21.39 13.2 20.71 13.09 20M19 2H9C7.9 2 7 2.9 7 4V16C7 17.11 7.9 18 9 18H13.09C13.2 17.29 13.44 16.61 13.81 16H9V4H11V10L13.5 7.75L16 10V4H19V13C19.68 13 20.36 13.11 21 13.34V4C21 2.9 20.11 2 19 2M23 18V20H15V18H23Z\";\nexport var mdiBookMinusOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M15 18V20H23V18H15Z\";\nexport var mdiBookMultiple = \"M19,18H9A2,2 0 0,1 7,16V4A2,2 0 0,1 9,2H10V7L12,5.5L14,7V2H19A2,2 0 0,1 21,4V16A2,2 0 0,1 19,18M17,20V22H5A2,2 0 0,1 3,20V6H5V20H17Z\";\nexport var mdiBookMultipleOutline = \"M19 2A2 2 0 0 1 21 4V16A2 2 0 0 1 19 18H9A2 2 0 0 1 7 16V4A2 2 0 0 1 9 2H19M19 4H16V10L13.5 7.75L11 10V4H9V16H19M3 20A2 2 0 0 0 5 22H17V20H5V6H3Z\";\nexport var mdiBookMusic = \"M13 20.5C13 21.03 13.09 21.53 13.26 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V11H16.5V16.11C14.5 16.57 13 18.36 13 20.5M20 13H18.5V18.21C18.19 18.07 17.86 18 17.5 18C16.12 18 15 19.12 15 20.5S16.12 23 17.5 23 20 21.88 20 20.5V15H22V13H20Z\";\nexport var mdiBookMusicOutline = \"M13 20.5C13 21.03 13.09 21.53 13.26 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V11H18V4H13V12L10.5 9.75L8 12V4H6V20H13.04C13.03 20.17 13 20.33 13 20.5M20 13H18.5V18.21C18.19 18.07 17.86 18 17.5 18C16.12 18 15 19.12 15 20.5S16.12 23 17.5 23 20 21.88 20 20.5V15H22V13H20Z\";\nexport var mdiBookOff = \"M18.68 2.12L12 8.8V2H18C18.24 2 18.46 2.05 18.68 2.12M9.5 7.5L7 9V2H6C4.89 2 4 2.9 4 4V16.8L11.88 8.93L9.5 7.5M21.61 1.73L1.89 21.46L3.16 22.73L4.54 21.35C4.9 21.75 5.42 22 6 22H18C19.11 22 20 21.11 20 20V5.89L22.89 3L21.61 1.73Z\";\nexport var mdiBookOffOutline = \"M6 14.8L4 16.8V4C4 2.9 4.89 2 6 2H18C18.24 2 18.47 2.04 18.68 2.12L16.8 4H13V7.8L10.79 10L10.5 9.75L8 12V4H6V14.8M22.89 3L20 5.89V20C20 21.11 19.11 22 18 22H6C5.42 22 4.9 21.75 4.54 21.35L3.16 22.73L1.89 21.46L21.61 1.73L22.89 3M18 7.89L6 19.89V20H18V7.89Z\";\nexport var mdiBookOpen = \"M13,12H20V13.5H13M13,9.5H20V11H13M13,14.5H20V16H13M21,4H3A2,2 0 0,0 1,6V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V6A2,2 0 0,0 21,4M21,19H12V6H21\";\nexport var mdiBookOpenBlankVariant = \"M6.5 20C8.2 20 10.65 20.65 12 21.5C13.35 20.65 15.8 20 17.5 20C19.15 20 20.85 20.3 22.25 21.05C22.35 21.1 22.4 21.1 22.5 21.1C22.75 21.1 23 20.85 23 20.6V6C22.4 5.55 21.75 5.25 21 5C19.89 4.65 18.67 4.5 17.5 4.5C15.55 4.5 13.45 4.9 12 6C10.55 4.9 8.45 4.5 6.5 4.5C5.33 4.5 4.11 4.65 3 5C2.25 5.25 1.6 5.55 1 6V20.6C1 20.85 1.25 21.1 1.5 21.1C1.6 21.1 1.65 21.1 1.75 21.05C3.15 20.3 4.85 20 6.5 20M12 19.5V8C13.35 7.15 15.8 6.5 17.5 6.5C18.7 6.5 19.9 6.65 21 7V18.5C19.9 18.15 18.7 18 17.5 18C15.8 18 13.35 18.65 12 19.5Z\";\nexport var mdiBookOpenBlankVariantOutline = \"M12 21.5C10.65 20.65 8.2 20 6.5 20C4.85 20 3.15 20.3 1.75 21.05C1.65 21.1 1.6 21.1 1.5 21.1C1.25 21.1 1 20.85 1 20.6V6C1.6 5.55 2.25 5.25 3 5C4.11 4.65 5.33 4.5 6.5 4.5C8.45 4.5 10.55 4.9 12 6C13.45 4.9 15.55 4.5 17.5 4.5C18.67 4.5 19.89 4.65 21 5C21.75 5.25 22.4 5.55 23 6V20.6C23 20.85 22.75 21.1 22.5 21.1C22.4 21.1 22.35 21.1 22.25 21.05C20.85 20.3 19.15 20 17.5 20C15.8 20 13.35 20.65 12 21.5M11 7.5C9.64 6.9 7.84 6.5 6.5 6.5C5.3 6.5 4.1 6.65 3 7V18.5C4.1 18.15 5.3 18 6.5 18C7.84 18 9.64 18.4 11 19V7.5M13 19C14.36 18.4 16.16 18 17.5 18C18.7 18 19.9 18.15 21 18.5V7C19.9 6.65 18.7 6.5 17.5 6.5C16.16 6.5 14.36 6.9 13 7.5V19Z\";\nexport var mdiBookOpenOutline = \"M21,4H3A2,2 0 0,0 1,6V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V6A2,2 0 0,0 21,4M3,19V6H11V19H3M21,19H13V6H21V19M14,9.5H20V11H14V9.5M14,12H20V13.5H14V12M14,14.5H20V16H14V14.5Z\";\nexport var mdiBookOpenPageVariant = \"M19 2L14 6.5V17.5L19 13V2M6.5 5C4.55 5 2.45 5.4 1 6.5V21.16C1 21.41 1.25 21.66 1.5 21.66C1.6 21.66 1.65 21.59 1.75 21.59C3.1 20.94 5.05 20.5 6.5 20.5C8.45 20.5 10.55 20.9 12 22C13.35 21.15 15.8 20.5 17.5 20.5C19.15 20.5 20.85 20.81 22.25 21.56C22.35 21.61 22.4 21.59 22.5 21.59C22.75 21.59 23 21.34 23 21.09V6.5C22.4 6.05 21.75 5.75 21 5.5V19C19.9 18.65 18.7 18.5 17.5 18.5C15.8 18.5 13.35 19.15 12 20V6.5C10.55 5.4 8.45 5 6.5 5Z\";\nexport var mdiBookOpenPageVariantOutline = \"M19 1L14 6V17L19 12.5V1M21 5V18.5C19.9 18.15 18.7 18 17.5 18C15.8 18 13.35 18.65 12 19.5V6C10.55 4.9 8.45 4.5 6.5 4.5C4.55 4.5 2.45 4.9 1 6V20.65C1 20.9 1.25 21.15 1.5 21.15C1.6 21.15 1.65 21.1 1.75 21.1C3.1 20.45 5.05 20 6.5 20C8.45 20 10.55 20.4 12 21.5C13.35 20.65 15.8 20 17.5 20C19.15 20 20.85 20.3 22.25 21.05C22.35 21.1 22.4 21.1 22.5 21.1C22.75 21.1 23 20.85 23 20.6V6C22.4 5.55 21.75 5.25 21 5M10 18.41C8.75 18.09 7.5 18 6.5 18C5.44 18 4.18 18.19 3 18.5V7.13C3.91 6.73 5.14 6.5 6.5 6.5C7.86 6.5 9.09 6.73 10 7.13V18.41Z\";\nexport var mdiBookOpenVariant = \"M12 21.5C10.65 20.65 8.2 20 6.5 20C4.85 20 3.15 20.3 1.75 21.05C1.65 21.1 1.6 21.1 1.5 21.1C1.25 21.1 1 20.85 1 20.6V6C1.6 5.55 2.25 5.25 3 5C4.11 4.65 5.33 4.5 6.5 4.5C8.45 4.5 10.55 4.9 12 6C13.45 4.9 15.55 4.5 17.5 4.5C18.67 4.5 19.89 4.65 21 5C21.75 5.25 22.4 5.55 23 6V20.6C23 20.85 22.75 21.1 22.5 21.1C22.4 21.1 22.35 21.1 22.25 21.05C20.85 20.3 19.15 20 17.5 20C15.8 20 13.35 20.65 12 21.5M12 8V19.5C13.35 18.65 15.8 18 17.5 18C18.7 18 19.9 18.15 21 18.5V7C19.9 6.65 18.7 6.5 17.5 6.5C15.8 6.5 13.35 7.15 12 8M13 11.5C14.11 10.82 15.6 10.5 17.5 10.5C18.41 10.5 19.26 10.59 20 10.78V9.23C19.13 9.08 18.29 9 17.5 9C15.73 9 14.23 9.28 13 9.84V11.5M17.5 11.67C15.79 11.67 14.29 11.93 13 12.46V14.15C14.11 13.5 15.6 13.16 17.5 13.16C18.54 13.16 19.38 13.24 20 13.4V11.9C19.13 11.74 18.29 11.67 17.5 11.67M20 14.57C19.13 14.41 18.29 14.33 17.5 14.33C15.67 14.33 14.17 14.6 13 15.13V16.82C14.11 16.16 15.6 15.83 17.5 15.83C18.54 15.83 19.38 15.91 20 16.07V14.57Z\";\nexport var mdiBookOpenVariantOutline = \"M12 21.5C10.65 20.65 8.2 20 6.5 20C4.85 20 3.15 20.3 1.75 21.05C1.65 21.1 1.6 21.1 1.5 21.1C1.25 21.1 1 20.85 1 20.6V6C1.6 5.55 2.25 5.25 3 5C4.11 4.65 5.33 4.5 6.5 4.5C8.45 4.5 10.55 4.9 12 6C13.45 4.9 15.55 4.5 17.5 4.5C18.67 4.5 19.89 4.65 21 5C21.75 5.25 22.4 5.55 23 6V20.6C23 20.85 22.75 21.1 22.5 21.1C22.4 21.1 22.35 21.1 22.25 21.05C20.85 20.3 19.15 20 17.5 20C15.8 20 13.35 20.65 12 21.5M11 7.5C9.64 6.9 7.84 6.5 6.5 6.5C5.3 6.5 4.1 6.65 3 7V18.5C4.1 18.15 5.3 18 6.5 18C7.84 18 9.64 18.4 11 19V7.5M13 19C14.36 18.4 16.16 18 17.5 18C18.7 18 19.9 18.15 21 18.5V7C19.9 6.65 18.7 6.5 17.5 6.5C16.16 6.5 14.36 6.9 13 7.5V19M14 16.35C14.96 16 16.12 15.83 17.5 15.83C18.54 15.83 19.38 15.91 20 16.07V14.57C19.13 14.41 18.29 14.33 17.5 14.33C16.16 14.33 15 14.5 14 14.76V16.35M14 13.69C14.96 13.34 16.12 13.16 17.5 13.16C18.54 13.16 19.38 13.24 20 13.4V11.9C19.13 11.74 18.29 11.67 17.5 11.67C16.22 11.67 15.05 11.82 14 12.12V13.69M14 11C14.96 10.67 16.12 10.5 17.5 10.5C18.41 10.5 19.26 10.59 20 10.78V9.23C19.13 9.08 18.29 9 17.5 9C16.18 9 15 9.15 14 9.46V11Z\";\nexport var mdiBookOutline = \"M18,2A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H18M18,4H13V12L10.5,9.75L8,12V4H6V20H18V4Z\";\nexport var mdiBookPlay = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M17 16V22L22 19L17 16Z\";\nexport var mdiBookPlayOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M17 16V22L22 19L17 16Z\";\nexport var mdiBookPlus = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiBookPlusMultiple = \"M13.09 20H5V6H3V20A2 2 0 0 0 5 22H13.81A5.5 5.5 0 0 1 13.09 20M19 2H14V7L12 5.5L10 7V2H9A2 2 0 0 0 7 4V16A2 2 0 0 0 9 18H13.09A6 6 0 0 1 21 13.34V4A2 2 0 0 0 19 2M20 15V18H23V20H20V23H18V20H15V18H18V15Z\";\nexport var mdiBookPlusMultipleOutline = \"M13.09 20H5V6H3V20A2 2 0 0 0 5 22H13.81A5.5 5.5 0 0 1 13.09 20M19 2H9A2 2 0 0 0 7 4V16A2 2 0 0 0 9 18H13.09A5.5 5.5 0 0 1 13.81 16H9V4H11V10L13.5 7.75L16 10V4H19V13A6 6 0 0 1 21 13.34V4A2 2 0 0 0 19 2M20 15V18H23V20H20V23H18V20H15V18H18V15Z\";\nexport var mdiBookPlusOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiBookRefresh = \"M12 18.5C12 19.79 12.39 21 13.04 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V12.18C19.5 12.07 19 12 18.5 12C14.91 12 12 14.91 12 18.5M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiBookRefreshOutline = \"M12.18 20C12.36 20.72 12.65 21.39 13.04 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V12.18C19.5 12.07 19 12 18.5 12C18.33 12 18.17 12 18 12.03V4H13V12L10.5 9.75L8 12V4H6V20H12.18M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiBookRemove = \"M13 19C13 20.1 13.3 21.12 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiBookRemoveMultiple = \"M13.09 20H5V6H3V20A2 2 0 0 0 5 22H13.81A5.5 5.5 0 0 1 13.09 20M19 2H14V7L12 5.5L10 7V2H9A2 2 0 0 0 7 4V16A2 2 0 0 0 9 18H13.09A6 6 0 0 1 21 13.34V4A2 2 0 0 0 19 2M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.46 16.88L16.88 15.46L19 17.59L21.12 15.46Z\";\nexport var mdiBookRemoveMultipleOutline = \"M13.09 20H5V6H3V20A2 2 0 0 0 5 22H13.81A5.5 5.5 0 0 1 13.09 20M19 2H9A2 2 0 0 0 7 4V16A2 2 0 0 0 9 18H13.09A5.5 5.5 0 0 1 13.81 16H9V4H11V10L13.5 7.75L16 10V4H19V13A6 6 0 0 1 21 13.34V4A2 2 0 0 0 19 2M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.46 16.88L16.88 15.46L19 17.59L21.12 15.46Z\";\nexport var mdiBookRemoveOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V4H13V12L10.5 9.75L8 12V4H6V20H13.09M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiBookSearch = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M6,22A2,2 0 0,1 4,20V4C4,2.89 4.9,2 6,2H7V9L9.5,7.5L12,9V2H18A2,2 0 0,1 20,4V11.81C18.83,10.69 17.25,10 15.5,10A6.5,6.5 0 0,0 9,16.5C9,18.81 10.21,20.85 12.03,22H6Z\";\nexport var mdiBookSearchOutline = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M13,4V12L10.5,9.75L8,12V4H6V20H10C10.54,20.81 11.23,21.5 12.03,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H18A2,2 0 0,1 20,4V11.81C19.42,11.26 18.75,10.81 18,10.5V4H13Z\";\nexport var mdiBookSettings = \"M20 2V18C20 19.11 19.11 20 18 20H6C4.89 20 4 19.11 4 18V2C4 .895 4.89 0 6 0H7V7L9.5 5.5L12 7V0H18C19.1 0 20 .89 20 2M7 24H9V22H7V24M15 24H17V22H15V24M11 24H13V22H11V24Z\";\nexport var mdiBookSettingsOutline = \"M18 0H6C4.89 0 4 .895 4 2V18C4 19.11 4.89 20 6 20H18C19.11 20 20 19.11 20 18V2C20 .895 19.11 0 18 0M18 18H6V2H8V10L10.5 7.75L13 10V2H18V18M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22Z\";\nexport var mdiBookSync = \"M13 17.5C13 19.25 13.69 20.83 14.82 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H7V9L9.5 7.5L12 9V2H18C19.1 2 20 2.89 20 4V11.03C19.84 11 19.67 11 19.5 11C15.91 11 13 13.91 13 17.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiBookSyncOutline = \"M13.5 20C13.81 20.75 14.26 21.42 14.82 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H18C19.11 2 20 2.9 20 4V11.03C19.84 11 19.67 11 19.5 11C19 11 18.5 11.07 18 11.18V4H13V12L10.5 9.75L8 12V4H6V20H13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiBookVariant = \"M6,4H11V12L8.5,10.5L6,12M18,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2Z\";\nexport var mdiBookmark = \"M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z\";\nexport var mdiBookmarkBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M18 14L15.5 12.5L13 14V6H18V14Z\";\nexport var mdiBookmarkBoxMultiple = \"M4 6H2V20C2 21.1 2.9 22 4 22H18V20H4V6M20 2H8C6.9 2 6 2.9 6 4V16C6 17.1 6.9 18 8 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 12L17.5 10.5L15 12V4H20V12Z\";\nexport var mdiBookmarkBoxMultipleOutline = \"M4 20H18V22H4C2.9 22 2 21.1 2 20V6H4V20M22 4V16C22 17.1 21.1 18 20 18H8C6.9 18 6 17.1 6 16V4C6 2.9 6.9 2 8 2H20C21.1 2 22 2.9 22 4M20 4H8V16H20V4M18 6H13V13L15.5 11.5L18 13V6Z\";\nexport var mdiBookmarkBoxOutline = \"M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M19 19V5H5V19H19M17 7H12V15L14.5 13.5L17 15V7Z\";\nexport var mdiBookmarkCheck = \"M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M11,14L17.25,7.76L15.84,6.34L11,11.18L8.41,8.59L7,10L11,14Z\";\nexport var mdiBookmarkCheckOutline = \"M9.47 9.65L8.06 11.07L11 14L16.19 8.82L14.78 7.4L11 11.18M17 3H7C5.9 3 5 3.9 5 5L5 21L12 18L19 21V5C19 3.9 18.1 3 17 3M17 18L12 15.82L7 18V5H17Z\";\nexport var mdiBookmarkMinus = \"M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5A2,2 0 0,0 17,3M15,11H9V9H15V11Z\";\nexport var mdiBookmarkMinusOutline = \"M9,11V9H15V11H9M19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17C18.11,3 19,3.9 19,5M17,5H7V18L12,15.82L17,18V5Z\";\nexport var mdiBookmarkMultiple = \"M15,5A2,2 0 0,1 17,7V23L10,20L3,23V7C3,5.89 3.9,5 5,5H15M9,1H19A2,2 0 0,1 21,3V19L19,18.13V3H7A2,2 0 0,1 9,1Z\";\nexport var mdiBookmarkMultipleOutline = \"M9,1H19A2,2 0 0,1 21,3V19L19,18.13V3H7A2,2 0 0,1 9,1M15,20V7H5V20L10,17.82L15,20M15,5C16.11,5 17,5.9 17,7V23L10,20L3,23V7A2,2 0 0,1 5,5H15Z\";\nexport var mdiBookmarkMusic = \"M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M11,11A2,2 0 0,0 9,13A2,2 0 0,0 11,15A2,2 0 0,0 13,13V8H16V6H12V11.27C11.71,11.1 11.36,11 11,11Z\";\nexport var mdiBookmarkMusicOutline = \"M7 3C5.9 3 5 3.9 5 5V21L12 18L19 21V5C19 3.89 18.1 3 17 3H7M7 5H17V18L12 15.82L7 18V5M12 6V11.3C11.7 11.1 11.4 11 11 11C9.9 11 9 11.9 9 13C9 14.11 9.9 15 11 15C12.11 15 13 14.11 13 13V8H15V6H12Z\";\nexport var mdiBookmarkOff = \"M20,20.72L18.73,22L16.78,20.05L12,18L5,21V8.27L2,5.27L3.28,4L20,20.72M19,17.16V5C19,3.89 18.1,3 17,3H7C6.41,3 5.89,3.27 5.5,3.68L19,17.16Z\";\nexport var mdiBookmarkOffOutline = \"M3.28,4L2,5.27L5,8.27V21L12,18L16.78,20.05L18.73,22L20,20.72L3.28,4M7,18V10.27L13,16.25L12,15.82L7,18M7,5.16L5.5,3.67C5.88,3.26 6.41,3 7,3H17A2,2 0 0,1 19,5V17.16L17,15.16V5H7V5.16Z\";\nexport var mdiBookmarkOutline = \"M17,18L12,15.82L7,18V5H17M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z\";\nexport var mdiBookmarkPlus = \"M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M11,7V9H9V11H11V13H13V11H15V9H13V7H11Z\";\nexport var mdiBookmarkPlusOutline = \"M17,18V5H7V18L12,15.82L17,18M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M11,7H13V9H15V11H13V13H11V11H9V9H11V7Z\";\nexport var mdiBookmarkRemove = \"M17,3A2,2 0 0,1 19,5V21L12,18L5,21V5C5,3.89 5.9,3 7,3H17M8.17,8.58L10.59,11L8.17,13.41L9.59,14.83L12,12.41L14.41,14.83L15.83,13.41L13.41,11L15.83,8.58L14.41,7.17L12,9.58L9.59,7.17L8.17,8.58Z\";\nexport var mdiBookmarkRemoveOutline = \"M7 3C5.9 3 5 3.9 5 5V21L12 18L19 21V5C19 3.89 18.1 3 17 3H7M7 5H17V18L12 15.82L7 18V5M9.88 7.47L8.47 8.88L10.59 11L8.47 13.12L9.88 14.54L12 12.42L14.12 14.53L15.54 13.12L13.42 11L15.53 8.88L14.12 7.47L12 9.59L9.88 7.47Z\";\nexport var mdiBookshelf = \"M9 3V18H12V3H9M12 5L16 18L19 17L15 4L12 5M5 5V18H8V5H5M3 19V21H21V19H3Z\";\nexport var mdiBoomGate = \"M20,9H8.22C7.11,7.77 5.21,7.68 4,8.8C3.36,9.36 3,10.16 3,11V20A1,1 0 0,0 2,21V22H10V21A1,1 0 0,0 9,20V13H20A2,2 0 0,0 22,11A2,2 0 0,0 20,9M6,12.5A1.5,1.5 0 0,1 4.5,11A1.5,1.5 0 0,1 6,9.5A1.5,1.5 0 0,1 7.5,11A1.5,1.5 0 0,1 6,12.5M10.5,12L9,10H10.5L12,12H10.5M14.5,12L13,10H14.5L16,12H14.5M18.5,12L17,10H18.5L20,12H18.5Z\";\nexport var mdiBoomGateAlert = \"M19.9 3C19.3 2 18.1 1.7 17.2 2.3L6.9 8.2C6.6 8.1 6.3 8 6 8C4.3 8 3 9.3 3 11V20C2.4 20 2 20.4 2 21V22H10V21C10 20.4 9.6 20 9 20V11.6L19.1 5.8C20.1 5.2 20.4 4 19.9 3M6 12.5C5.2 12.5 4.5 11.8 4.5 11S5.2 9.5 6 9.5 7.5 10.2 7.5 11 6.8 12.5 6 12.5M10.4 9.6L8.1 8.6L9.4 7.8L11.7 8.8L10.4 9.6M13.9 7.6L11.6 6.6L12.9 5.8L15.2 6.8L13.9 7.6M17.3 5.6L15 4.6L16.3 3.8L18.6 4.8L17.3 5.6M20 18H18V20H20V18M20 10H18V16H20V10Z\";\nexport var mdiBoomGateAlertOutline = \"M19.9 3C19.3 2 18.1 1.7 17.2 2.3L6.9 8.2C6.6 8.1 6.3 8 6 8C4.3 8 3 9.3 3 11V20C2.4 20 2 20.4 2 21V22H10V21C10 20.4 9.6 20 9 20V11.6L19.1 5.8C20.1 5.2 20.4 4 19.9 3M7.5 20H4.5V13.6C5.4 14.1 6.6 14.1 7.5 13.6V20M6 12.5C5.2 12.5 4.5 11.8 4.5 11S5.2 9.5 6 9.5 7.5 10.2 7.5 11 6.8 12.5 6 12.5M10.4 9.6L8.1 8.6L9.4 7.8L11.7 8.8L10.4 9.6M13.9 7.6L11.6 6.6L12.9 5.8L15.2 6.8L13.9 7.6M17.3 5.6L15 4.6L16.3 3.8L18.6 4.8L17.3 5.6M20 16H18V10H20V16M20 20H18V18H20V20Z\";\nexport var mdiBoomGateArrowDown = \"M19.86,3C19.31,2.04 18.09,1.71 17.12,2.27L6.92,8.16C6.62,8.06 6.31,8 6,8A3,3 0 0,0 3,11V20A1,1 0 0,0 2,21V22H10V21A1,1 0 0,0 9,20V11.58L19.12,5.73C20.08,5.18 20.41,3.96 19.86,3M6,12.5A1.5,1.5 0 0,1 4.5,11A1.5,1.5 0 0,1 6,9.5A1.5,1.5 0 0,1 7.5,11A1.5,1.5 0 0,1 6,12.5M10.4,9.62L8.1,8.62L9.4,7.87L11.7,8.87L10.4,9.62M13.86,7.62L11.56,6.62L12.86,5.87L15.16,6.87L13.86,7.62M17.33,5.62L15.03,4.62L16.33,3.87L18.62,4.87L17.33,5.62M17,20L12,15H15V11H19V15H22L17,20\";\nexport var mdiBoomGateArrowDownOutline = \"M19.86,3C20.41,3.96 20.08,5.18 19.12,5.73L9,11.58V20A1,1 0 0,1 10,21V22H2V21A1,1 0 0,1 3,20V11A3,3 0 0,1 6,8C6.31,8 6.62,8.06 6.92,8.16L17.12,2.27C18.09,1.71 19.31,2.04 19.86,3M7.5,20V13.6C6.57,14.14 5.43,14.14 4.5,13.6V20H7.5M6,12.5A1.5,1.5 0 0,0 7.5,11A1.5,1.5 0 0,0 6,9.5A1.5,1.5 0 0,0 4.5,11A1.5,1.5 0 0,0 6,12.5M10.4,9.62L11.7,8.87L9.4,7.87L8.1,8.62L10.4,9.62M13.86,7.62L15.16,6.87L12.86,5.87L11.56,6.62L13.86,7.62M17.33,5.62L18.62,4.87L16.33,3.87L15.03,4.62L17.33,5.62M16,11.16H18V16.17L21,16.16L17,20L13,16.16L16,16.17V11.16Z\";\nexport var mdiBoomGateArrowUp = \"M19.86,3C19.31,2.04 18.09,1.71 17.12,2.27L6.92,8.16C6.62,8.06 6.31,8 6,8A3,3 0 0,0 3,11V20A1,1 0 0,0 2,21V22H10V21A1,1 0 0,0 9,20V11.58L19.12,5.73C20.08,5.18 20.41,3.96 19.86,3M6,12.5A1.5,1.5 0 0,1 4.5,11A1.5,1.5 0 0,1 6,9.5A1.5,1.5 0 0,1 7.5,11A1.5,1.5 0 0,1 6,12.5M10.4,9.62L8.1,8.62L9.4,7.87L11.7,8.87L10.4,9.62M13.86,7.62L11.56,6.62L12.86,5.87L15.16,6.87L13.86,7.62M17.33,5.62L15.03,4.62L16.33,3.87L18.62,4.87L17.33,5.62M17,11L22,16H19V20H15V16H12L17,11\";\nexport var mdiBoomGateArrowUpOutline = \"M19.86,3C20.41,3.96 20.08,5.18 19.12,5.73L9,11.58V20A1,1 0 0,1 10,21V22H2V21A1,1 0 0,1 3,20V11A3,3 0 0,1 6,8C6.31,8 6.62,8.06 6.92,8.16L17.12,2.27C18.09,1.71 19.31,2.04 19.86,3M7.5,20V13.6C6.57,14.14 5.43,14.14 4.5,13.6V20H7.5M6,12.5A1.5,1.5 0 0,0 7.5,11A1.5,1.5 0 0,0 6,9.5A1.5,1.5 0 0,0 4.5,11A1.5,1.5 0 0,0 6,12.5M10.4,9.62L11.7,8.87L9.4,7.87L8.1,8.62L10.4,9.62M13.86,7.62L15.16,6.87L12.86,5.87L11.56,6.62L13.86,7.62M17.33,5.62L18.62,4.87L16.33,3.87L15.03,4.62L17.33,5.62M16,20V15H13L17,11.16L21,15H18V20H16Z\";\nexport var mdiBoomGateOutline = \"M20,9H8.22C7.11,7.77 5.21,7.68 4,8.8C3.36,9.36 3,10.16 3,11V20A1,1 0 0,0 2,21V22H10V21A1,1 0 0,0 9,20V13H20A2,2 0 0,0 22,11A2,2 0 0,0 20,9M7.5,20H4.5V13.6C5.43,14.14 6.57,14.14 7.5,13.6V20M6,12.5A1.5,1.5 0 0,1 4.5,11A1.5,1.5 0 0,1 6,9.5A1.5,1.5 0 0,1 7.5,11A1.5,1.5 0 0,1 6,12.5M10.5,12L9,10H10.5L12,12H10.5M14.5,12L13,10H14.5L16,12H14.5M18.5,12L17,10H18.5L20,12H18.5Z\";\nexport var mdiBoomGateUp = \"M19.9 3C19.3 2 18.1 1.7 17.2 2.3L6.9 8.2C6.6 8.1 6.3 8 6 8C4.3 8 3 9.3 3 11V20C2.4 20 2 20.4 2 21V22H10V21C10 20.4 9.6 20 9 20V11.6L19.1 5.8C20.1 5.2 20.4 4 19.9 3M6 12.5C5.2 12.5 4.5 11.8 4.5 11S5.2 9.5 6 9.5 7.5 10.2 7.5 11 6.8 12.5 6 12.5M10.4 9.6L8.1 8.6L9.4 7.8L11.7 8.8L10.4 9.6M13.9 7.6L11.6 6.6L12.9 5.8L15.2 6.8L13.9 7.6M17.3 5.6L15 4.6L16.3 3.8L18.6 4.8L17.3 5.6\";\nexport var mdiBoomGateUpOutline = \"M19.9 3C19.3 2 18.1 1.7 17.2 2.3L6.9 8.2C6.6 8.1 6.3 8 6 8C4.3 8 3 9.3 3 11V20C2.4 20 2 20.4 2 21V22H10V21C10 20.4 9.6 20 9 20V11.6L19.1 5.8C20.1 5.2 20.4 4 19.9 3M7.5 20H4.5V13.6C5.4 14.1 6.6 14.1 7.5 13.6V20M6 12.5C5.2 12.5 4.5 11.8 4.5 11S5.2 9.5 6 9.5 7.5 10.2 7.5 11 6.8 12.5 6 12.5M10.4 9.6L8.1 8.6L9.4 7.8L11.7 8.8L10.4 9.6M13.9 7.6L11.6 6.6L12.9 5.8L15.2 6.8L13.9 7.6M17.3 5.6L15 4.6L16.3 3.8L18.6 4.8L17.3 5.6\";\nexport var mdiBoombox = \"M7,5L5,7V8H3A1,1 0 0,0 2,9V17A1,1 0 0,0 3,18H21A1,1 0 0,0 22,17V9A1,1 0 0,0 21,8H19V7L17,5H7M7,7H17V8H7V7M11,9H13A0.5,0.5 0 0,1 13.5,9.5A0.5,0.5 0 0,1 13,10H11A0.5,0.5 0 0,1 10.5,9.5A0.5,0.5 0 0,1 11,9M7.5,10.5A3,3 0 0,1 10.5,13.5A3,3 0 0,1 7.5,16.5A3,3 0 0,1 4.5,13.5A3,3 0 0,1 7.5,10.5M16.5,10.5A3,3 0 0,1 19.5,13.5A3,3 0 0,1 16.5,16.5A3,3 0 0,1 13.5,13.5A3,3 0 0,1 16.5,10.5M7.5,12A1.5,1.5 0 0,0 6,13.5A1.5,1.5 0 0,0 7.5,15A1.5,1.5 0 0,0 9,13.5A1.5,1.5 0 0,0 7.5,12M16.5,12A1.5,1.5 0 0,0 15,13.5A1.5,1.5 0 0,0 16.5,15A1.5,1.5 0 0,0 18,13.5A1.5,1.5 0 0,0 16.5,12Z\";\nexport var mdiBoomerang = \"M10 2H4C2.9 2 2 2.9 2 4S2.9 6 4 6H8L10 2M18 2C20.2 2 22 3.8 22 6V12L18 14C18 9.6 14.4 6 10 6L12 2H18M18 20V16L22 14V20C22 21.1 21.1 22 20 22S18 21.1 18 20Z\";\nexport var mdiBootstrap = \"M11.79 11.5H9.72V8.19H12.19C13.45 8.19 14.15 8.75 14.15 9.78C14.15 10.9 13.32 11.5 11.79 11.5M12.16 12.63H9.72V16.27L12.28 16.27C13.84 16.27 14.66 15.64 14.66 14.44S13.81 12.63 12.16 12.63M22 5.31V18.69C22 20.5 20.5 22 18.69 22H5.31C3.5 22 2 20.5 2 18.69V5.31C2 3.5 3.5 2 5.31 2H18.69C20.5 2 22 3.5 22 5.31M16 14.5C16 13.12 15.08 12.13 13.67 11.95V11.89C14.67 11.71 15.46 10.71 15.46 9.63C15.46 8.08 14.26 7.05 12.5 7.05H8.43V17.41H12.47C14.68 17.41 16 16.32 16 14.5Z\";\nexport var mdiBorderAll = \"M19,11H13V5H19M19,19H13V13H19M11,11H5V5H11M11,19H5V13H11M3,21H21V3H3V21Z\";\nexport var mdiBorderAllVariant = \"M3,21V3H21V21H3M5,5V19H19V5H5Z\";\nexport var mdiBorderBottom = \"M5,15H3V17H5M3,21H21V19H3M5,11H3V13H5M19,9H21V7H19M19,5H21V3H19M5,7H3V9H5M19,17H21V15H19M19,13H21V11H19M17,3H15V5H17M13,3H11V5H13M17,11H15V13H17M13,7H11V9H13M5,3H3V5H5M13,11H11V13H13M9,3H7V5H9M13,15H11V17H13M9,11H7V13H9V11Z\";\nexport var mdiBorderBottomVariant = \"M5,15H3V17H5M3,21H21V19H3M5,11H3V13H5M19,9H21V7H19M19,5H21V3H19M5,7H3V9H5M19,17H21V15H19M19,13H21V11H19M17,3H15V5H17M13,3H11V5H13M5,3H3V5H5M9,3H7V5H9\";\nexport var mdiBorderColor = \"M20.71,4.04C21.1,3.65 21.1,3 20.71,2.63L18.37,0.29C18,-0.1 17.35,-0.1 16.96,0.29L15,2.25L18.75,6M17.75,7L14,3.25L4,13.25V17H7.75L17.75,7Z\";\nexport var mdiBorderHorizontal = \"M19,21H21V19H19M15,21H17V19H15M11,17H13V15H11M19,9H21V7H19M19,5H21V3H19M3,13H21V11H3M11,21H13V19H11M19,17H21V15H19M13,3H11V5H13M13,7H11V9H13M17,3H15V5H17M9,3H7V5H9M5,3H3V5H5M7,21H9V19H7M3,17H5V15H3M5,7H3V9H5M3,21H5V19H3V21Z\";\nexport var mdiBorderInside = \"M19,17H21V15H19M19,21H21V19H19M13,3H11V11H3V13H11V21H13V13H21V11H13M15,21H17V19H15M19,5H21V3H19M19,9H21V7H19M17,3H15V5H17M5,3H3V5H5M9,3H7V5H9M3,17H5V15H3M5,7H3V9H5M7,21H9V19H7M3,21H5V19H3V21Z\";\nexport var mdiBorderLeft = \"M15,5H17V3H15M15,13H17V11H15M19,21H21V19H19M19,13H21V11H19M19,5H21V3H19M19,17H21V15H19M15,21H17V19H15M19,9H21V7H19M3,21H5V3H3M7,13H9V11H7M7,5H9V3H7M7,21H9V19H7M11,13H13V11H11M11,9H13V7H11M11,5H13V3H11M11,17H13V15H11M11,21H13V19H11V21Z\";\nexport var mdiBorderLeftVariant = \"M15,5H17V3H15M19,21H21V19H19M19,13H21V11H19M19,5H21V3H19M19,17H21V15H19M15,21H17V19H15M19,9H21V7H19M3,21H5V3H3M7,5H9V3H7M7,21H9V19H7M11,5H13V3H11M11,21H13V19H11V21Z\";\nexport var mdiBorderNone = \"M15,5H17V3H15M15,13H17V11H15M15,21H17V19H15M11,5H13V3H11M19,5H21V3H19M11,9H13V7H11M19,9H21V7H19M19,21H21V19H19M19,13H21V11H19M19,17H21V15H19M11,13H13V11H11M3,5H5V3H3M3,9H5V7H3M3,13H5V11H3M3,17H5V15H3M3,21H5V19H3M11,21H13V19H11M11,17H13V15H11M7,21H9V19H7M7,13H9V11H7M7,5H9V3H7V5Z\";\nexport var mdiBorderNoneVariant = \"M15,5H17V3H15M15,21H17V19H15M11,5H13V3H11M19,5H21V3H19M19,9H21V7H19M19,21H21V19H19M19,13H21V11H19M19,17H21V15H19M3,5H5V3H3M3,9H5V7H3M3,13H5V11H3M3,17H5V15H3M3,21H5V19H3M11,21H13V19H11M7,21H9V19H7M7,5H9V3H7V5Z\";\nexport var mdiBorderOutside = \"M9,11H7V13H9M13,15H11V17H13M19,19H5V5H19M3,21H21V3H3M17,11H15V13H17M13,11H11V13H13M13,7H11V9H13V7Z\";\nexport var mdiBorderRadius = \"M3 16C3 18.8 5.2 21 8 21H10V19H8C6.3 19 5 17.7 5 16V14H3V16M21 8C21 5.2 18.8 3 16 3H14V5H16C17.7 5 19 6.3 19 8V10H21V8M16 21C18.8 21 21 18.8 21 16V14H19V16C19 17.7 17.7 19 16 19H14V21H16M8 3C5.2 3 3 5.2 3 8V10H5V8C5 6.3 6.3 5 8 5H10V3H8Z\";\nexport var mdiBorderRight = \"M11,9H13V7H11M11,5H13V3H11M11,13H13V11H11M15,5H17V3H15M15,21H17V19H15M19,21H21V3H19M15,13H17V11H15M11,17H13V15H11M3,9H5V7H3M3,17H5V15H3M3,13H5V11H3M11,21H13V19H11M3,21H5V19H3M7,13H9V11H7M7,5H9V3H7M3,5H5V3H3M7,21H9V19H7V21Z\";\nexport var mdiBorderRightVariant = \"M11,5H13V3H11M15,5H17V3H15M15,21H17V19H15M19,21H21V3H19M3,9H5V7H3M3,17H5V15H3M3,13H5V11H3M11,21H13V19H11M3,21H5V19H3M7,5H9V3H7M3,5H5V3H3M7,21H9V19H7V21Z\";\nexport var mdiBorderStyle = \"M15,21H17V19H15M19,21H21V19H19M7,21H9V19H7M11,21H13V19H11M19,17H21V15H19M19,13H21V11H19M3,3V21H5V5H21V3M19,9H21V7H19\";\nexport var mdiBorderTop = \"M15,13H17V11H15M19,21H21V19H19M11,9H13V7H11M15,21H17V19H15M19,17H21V15H19M3,5H21V3H3M19,13H21V11H19M19,9H21V7H19M11,17H13V15H11M3,9H5V7H3M3,13H5V11H3M3,21H5V19H3M3,17H5V15H3M11,21H13V19H11M11,13H13V11H11M7,13H9V11H7M7,21H9V19H7V21Z\";\nexport var mdiBorderTopVariant = \"M19,21H21V19H19M15,21H17V19H15M19,17H21V15H19M3,5H21V3H3M19,13H21V11H19M19,9H21V7H19M3,9H5V7H3M3,13H5V11H3M3,21H5V19H3M3,17H5V15H3M11,21H13V19H11M7,21H9V19H7V21Z\";\nexport var mdiBorderVertical = \"M15,13H17V11H15M15,21H17V19H15M15,5H17V3H15M19,9H21V7H19M19,5H21V3H19M19,13H21V11H19M19,21H21V19H19M11,21H13V3H11M19,17H21V15H19M7,5H9V3H7M3,17H5V15H3M3,21H5V19H3M3,13H5V11H3M7,13H9V11H7M7,21H9V19H7M3,5H5V3H3M3,9H5V7H3V9Z\";\nexport var mdiBottleSoda = \"M15 11V20A2 2 0 0 1 13 22H11A2 2 0 0 1 9 20V11A2 2 0 0 1 9.6 9.58C11.1 7.89 11 4 11 4H10V2H14V4H13S12.9 7.89 14.4 9.58A2 2 0 0 1 15 11Z\";\nexport var mdiBottleSodaClassic = \"M15 13.77A3 3 0 0 0 15 18.23V20A2 2 0 0 1 13 22H11A2 2 0 0 1 9 20V18.23A3 3 0 0 0 9 13.77V9A12.28 12.28 0 0 0 10.91 4H10V2H14V4H13.09A12.28 12.28 0 0 0 15 9Z\";\nexport var mdiBottleSodaClassicOutline = \"M10 2V4H10.91C10.65 5.79 9 7.5 8 9V13.77C9.32 14.96 9.32 17.04 8 18.23V20C8 21.11 8.9 22 10 22H14C15.11 22 16 21.11 16 20V18.23C14.68 17.04 14.68 14.96 16 13.77V9C15 7.5 13.35 5.79 13.09 4H14V2M12 6.5C12.24 7 13.54 8.5 13.9 8.91L14 9V13C13.35 13.87 13 14.92 13 16C13 17.08 13.35 18.13 14 19V20H10V19C10.65 18.13 11 17.08 11 16C11 14.92 10.65 13.87 10 13V9L10.1 8.91C10.46 8.5 11.76 7 12 6.5Z\";\nexport var mdiBottleSodaOutline = \"M14.4 9.58C12.9 7.89 13 4 13 4H14V2H10V4H11S11.1 7.89 9.6 9.58A2 2 0 0 0 9 11V20A2 2 0 0 0 11 22H13A2 2 0 0 0 15 20V11A2 2 0 0 0 14.4 9.58M13 20H11V11L11.1 10.91A6.26 6.26 0 0 0 12 9.5A6.26 6.26 0 0 0 12.9 10.91L13 11Z\";\nexport var mdiBottleTonic = \"M13 4H11L10 2H14L13 4M19 13V22H5V13C5 10.24 7.24 8 10 8V6H9V5H15V6H14V8C16.76 8 19 10.24 19 13Z\";\nexport var mdiBottleTonicOutline = \"M13 4H11L10 2H14L13 4M19 13V22H5V13C5 10.24 7.24 8 10 8V6H9V5H15V6H14V8C16.76 8 19 10.24 19 13M17 13C17 11.35 15.65 10 14 10H10C8.35 10 7 11.35 7 13V20H17V13Z\";\nexport var mdiBottleTonicPlus = \"M13 4H11L10 2H14L13 4M14 8V6H15V5H9V6H10V8C7.24 8 5 10.24 5 13V22H19V13C19 10.24 16.76 8 14 8M16 17H13V20H11V17H8V15H11V12H13V15H16V17Z\";\nexport var mdiBottleTonicPlusOutline = \"M13 4H11L10 2H14L13 4M19 13V22H5V13C5 10.24 7.24 8 10 8V6H9V5H15V6H14V8C16.76 8 19 10.24 19 13M17 13C17 11.35 15.65 10 14 10H10C8.35 10 7 11.35 7 13V20H17V13M15 16H13V18H11V16H9V14H11V12H13V14H15V16Z\";\nexport var mdiBottleTonicSkull = \"M19 13V22H5V13C5 10.24 7.24 8 10 8V6H9V5H15V6H14V8C16.76 8 19 10.24 19 13M13 4L14 2H10L11 4H13M12 11C9.79 11 8 12.79 8 15C8 16 8.39 16.9 9 17.59V19H10.25V17.5H11.38V19H12.63V17.5H13.75V19H15V17.59C15.61 16.9 16 16 16 15C16 12.79 14.21 11 12 11M10.5 15C9.95 15 9.5 14.55 9.5 14S9.95 13 10.5 13 11.5 13.45 11.5 14 11.05 15 10.5 15M11.25 16.25L12 15L12.75 16.25H11.25M13.5 15C12.95 15 12.5 14.55 12.5 14S12.95 13 13.5 13 14.5 13.45 14.5 14 14.05 15 13.5 15Z\";\nexport var mdiBottleTonicSkullOutline = \"M13 4H11L10 2H14L13 4M14 8V6H15V5H9V6H10V8C7.24 8 5 10.24 5 13V22H19V13C19 10.24 16.76 8 14 8M17 20H7V13C7 11.35 8.35 10 10 10H14C15.65 10 17 11.35 17 13V20M12 11C9.79 11 8 12.79 8 15C8 16 8.39 16.9 9 17.59V19H10.25V17.5H11.38V19H12.63V17.5H13.75V19H15V17.59C15.61 16.9 16 16 16 15C16 12.79 14.21 11 12 11M10.5 15C9.95 15 9.5 14.55 9.5 14S9.95 13 10.5 13 11.5 13.45 11.5 14 11.05 15 10.5 15M11.25 16.25L12 15L12.75 16.25H11.25M13.5 15C12.95 15 12.5 14.55 12.5 14S12.95 13 13.5 13 14.5 13.45 14.5 14 14.05 15 13.5 15Z\";\nexport var mdiBottleWine = \"M10,22A1,1 0 0,1 9,21V11C9,9 10,7.25 11,7V2.5A0.5,0.5 0 0,1 11.5,2H12.5A0.5,0.5 0 0,1 13,2.5V7C14,7.25 15,9 15,11V21A1,1 0 0,1 14,22H10Z\";\nexport var mdiBottleWineOutline = \"M11.5 2C11.22 2 11 2.22 11 2.5V7C10.93 7 10.85 7 10.78 7.03C9.82 7.27 9.21 8 8.76 8.89C8.3 9.76 8 10.84 8 12C8.05 15 8 18.03 8 21C8 21.55 8.45 22 9 22C11 22 13 22 15 22C15.55 22 16 21.55 16 21C16.04 18 16 15 16 12C16 10.84 15.74 9.76 15.28 8.88C14.83 8 14.22 7.27 13.26 7.04C13.18 7 13.05 7 13 7V2.5C13 2.22 12.78 2 12.5 2M12 8.85C12.32 8.85 12.63 8.9 12.78 9C12.85 9.03 13.2 9.26 13.5 9.81C13.78 10.37 14 11.17 14 12V20H10V12C10 11.17 10.22 10.37 10.5 9.81C10.8 9.26 11.15 9.03 11.22 9C11.36 8.9 11.68 8.85 12 8.85Z\";\nexport var mdiBowArrow = \"M19.03 6.03L20 7L22 2L17 4L17.97 4.97L16.15 6.79C10.87 2.16 3.3 3.94 2.97 4L2 4.26L2.5 6.2L3.29 6L10.12 12.82L6.94 16H5L2 19L4 20L5 22L8 19V17.06L11.18 13.88L18 20.71L17.81 21.5L19.74 22L20 21.03C20.06 20.7 21.84 13.13 17.21 7.85L19.03 6.03M4.5 5.78C6.55 5.5 11.28 5.28 14.73 8.21L10.82 12.12L4.5 5.78M18.22 19.5L11.88 13.18L15.79 9.27C18.72 12.72 18.5 17.45 18.22 19.5Z\";\nexport var mdiBowTie = \"M15,14L21,17V7L15,10V14M9,14L3,17V7L9,10V14M10,10H14V14H10V10Z\";\nexport var mdiBowl = \"M22 15C22 18.9 18.9 22 15 22H9C5.1 22 2 18.9 2 15V12H22V15Z\";\nexport var mdiBowlMix = \"M16.2 11L20.3 4.5L22 5.5L18.6 11H16.2M15.6 12H2V15C2 18.9 5.1 22 9 22H15C18.9 22 22 18.9 22 15V12H15.6Z\";\nexport var mdiBowlMixOutline = \"M15.6 12H2V15C2 18.9 5.1 22 9 22H15C18.9 22 22 18.9 22 15V12H15.6M20 15C20 17.8 17.8 20 15 20H9C6.2 20 4 17.8 4 15V14H20V15M16.2 11L20.3 4.4L22 5.5L18.6 11H16.2Z\";\nexport var mdiBowlOutline = \"M2 12V15C2 18.9 5.1 22 9 22H15C18.9 22 22 18.9 22 15V12H2M4 14H20V15C20 17.8 17.8 20 15 20H9C6.2 20 4 17.8 4 15V14Z\";\nexport var mdiBowling = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12.5,11A1.5,1.5 0 0,0 11,12.5A1.5,1.5 0 0,0 12.5,14A1.5,1.5 0 0,0 14,12.5A1.5,1.5 0 0,0 12.5,11M12,5A2,2 0 0,0 10,7A2,2 0 0,0 12,9A2,2 0 0,0 14,7A2,2 0 0,0 12,5M5.93,8.5C5.38,9.45 5.71,10.67 6.66,11.22C7.62,11.78 8.84,11.45 9.4,10.5C9.95,9.53 9.62,8.31 8.66,7.76C7.71,7.21 6.5,7.53 5.93,8.5Z\";\nexport var mdiBox = \"M15.39,14.04V14.04C15.39,12.62 14.24,11.47 12.82,11.47C11.41,11.47 10.26,12.62 10.26,14.04V14.04C10.26,15.45 11.41,16.6 12.82,16.6C14.24,16.6 15.39,15.45 15.39,14.04M17.1,14.04C17.1,16.4 15.18,18.31 12.82,18.31C11.19,18.31 9.77,17.39 9.05,16.04C8.33,17.39 6.91,18.31 5.28,18.31C2.94,18.31 1.04,16.43 1,14.11V14.11H1V7H1V7C1,6.56 1.39,6.18 1.86,6.18C2.33,6.18 2.7,6.56 2.71,7V7H2.71V10.62C3.43,10.08 4.32,9.76 5.28,9.76C6.91,9.76 8.33,10.68 9.05,12.03C9.77,10.68 11.19,9.76 12.82,9.76C15.18,9.76 17.1,11.68 17.1,14.04V14.04M7.84,14.04V14.04C7.84,12.62 6.69,11.47 5.28,11.47C3.86,11.47 2.71,12.62 2.71,14.04V14.04C2.71,15.45 3.86,16.6 5.28,16.6C6.69,16.6 7.84,15.45 7.84,14.04M22.84,16.96V16.96C22.95,17.12 23,17.3 23,17.47C23,17.73 22.88,18 22.66,18.15C22.5,18.26 22.33,18.32 22.15,18.32C21.9,18.32 21.65,18.21 21.5,18L19.59,15.47L17.7,18V18C17.53,18.21 17.28,18.32 17.03,18.32C16.85,18.32 16.67,18.26 16.5,18.15C16.29,18 16.17,17.72 16.17,17.46C16.17,17.29 16.23,17.11 16.33,16.96V16.96H16.33V16.96L18.5,14.04L16.33,11.11V11.11H16.33V11.11C16.22,10.96 16.17,10.79 16.17,10.61C16.17,10.35 16.29,10.1 16.5,9.93C16.89,9.65 17.41,9.72 17.7,10.09V10.09L19.59,12.61L21.5,10.09C21.76,9.72 22.29,9.65 22.66,9.93C22.89,10.1 23,10.36 23,10.63C23,10.8 22.95,10.97 22.84,11.11V11.11H22.84V11.11L20.66,14.04L22.84,16.96V16.96H22.84Z\";\nexport var mdiBoxCutter = \"M7.22,11.91C6.89,12.24 6.71,12.65 6.66,13.08L12.17,15.44L20.66,6.96C21.44,6.17 21.44,4.91 20.66,4.13L19.24,2.71C18.46,1.93 17.2,1.93 16.41,2.71L7.22,11.91M5,16V21.75L10.81,16.53L5.81,14.53L5,16M17.12,4.83C17.5,4.44 18.15,4.44 18.54,4.83C18.93,5.23 18.93,5.86 18.54,6.25C18.15,6.64 17.5,6.64 17.12,6.25C16.73,5.86 16.73,5.23 17.12,4.83Z\";\nexport var mdiBoxCutterOff = \"M20.84 22.73L12.86 14.75L12.17 15.44L6.66 13.08C6.71 12.65 6.89 12.24 7.22 11.91L8.62 10.5L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M15.41 12.21L11.16 7.96L16.41 2.71C17.2 1.93 18.46 1.93 19.24 2.71L20.66 4.13C21.44 4.91 21.44 6.17 20.66 6.96L15.41 12.21M17.12 6.25C17.5 6.64 18.15 6.64 18.54 6.25C18.93 5.86 18.93 5.23 18.54 4.83C18.15 4.44 17.5 4.44 17.12 4.83C16.73 5.23 16.73 5.86 17.12 6.25M5 16V21.75L10.81 16.53L5.81 14.53L5 16Z\";\nexport var mdiBoxShadow = \"M3,3H18V18H3V3M19,19H21V21H19V19M19,16H21V18H19V16M19,13H21V15H19V13M19,10H21V12H19V10M19,7H21V9H19V7M16,19H18V21H16V19M13,19H15V21H13V19M10,19H12V21H10V19M7,19H9V21H7V19Z\";\nexport var mdiBoxingGlove = \"M19,16V6H22V16H19M12,4C8,4 7,4 7,4C7,4 2,4 2,8V14C2,15.77 3,16.76 4.07,17.31C4.4,15.43 6.03,14 8,14H11V16H8A2,2 0 0,0 6,18C6,19.11 6.9,20 8,20H13C17,20 17,16 17,16V6C17,6 16,4 12,4Z\";\nexport var mdiBraille = \"M7,8A1,1 0 0,1 8,7A1,1 0 0,1 9,8V12.47L10.21,12.6L15.15,14.79C15.67,15.03 16,15.56 16,16.14V20.5C15.97,21.32 15.32,21.97 14.5,22H8C7.62,22 7.26,21.85 7,21.57L2.1,17.37L2.84,16.6C3.03,16.39 3.3,16.28 3.58,16.28H3.8L7,18V8M19.5,2A1.5,1.5 0 0,0 18,3.5A1.5,1.5 0 0,0 19.5,5A1.5,1.5 0 0,0 21,3.5A1.5,1.5 0 0,0 19.5,2M19.5,7A1.5,1.5 0 0,0 18,8.5A1.5,1.5 0 0,0 19.5,10A1.5,1.5 0 0,0 21,8.5A1.5,1.5 0 0,0 19.5,7M14.5,7A1.5,1.5 0 0,0 13,8.5A1.5,1.5 0 0,0 14.5,10A1.5,1.5 0 0,0 16,8.5A1.5,1.5 0 0,0 14.5,7M19.5,12A1.5,1.5 0 0,0 18,13.5A1.5,1.5 0 0,0 19.5,15A1.5,1.5 0 0,0 21,13.5A1.5,1.5 0 0,0 19.5,12Z\";\nexport var mdiBrain = \"M21.33,12.91C21.42,14.46 20.71,15.95 19.44,16.86L20.21,18.35C20.44,18.8 20.47,19.33 20.27,19.8C20.08,20.27 19.69,20.64 19.21,20.8L18.42,21.05C18.25,21.11 18.06,21.14 17.88,21.14C17.37,21.14 16.89,20.91 16.56,20.5L14.44,18C13.55,17.85 12.71,17.47 12,16.9C11.5,17.05 11,17.13 10.5,17.13C9.62,17.13 8.74,16.86 8,16.34C7.47,16.5 6.93,16.57 6.38,16.56C5.59,16.57 4.81,16.41 4.08,16.11C2.65,15.47 1.7,14.07 1.65,12.5C1.57,11.78 1.69,11.05 2,10.39C1.71,9.64 1.68,8.82 1.93,8.06C2.3,7.11 3,6.32 3.87,5.82C4.45,4.13 6.08,3 7.87,3.12C9.47,1.62 11.92,1.46 13.7,2.75C14.12,2.64 14.56,2.58 15,2.58C16.36,2.55 17.65,3.15 18.5,4.22C20.54,4.75 22,6.57 22.08,8.69C22.13,9.8 21.83,10.89 21.22,11.82C21.29,12.18 21.33,12.54 21.33,12.91M16.33,11.5C16.9,11.57 17.35,12 17.35,12.57A1,1 0 0,1 16.35,13.57H15.72C15.4,14.47 14.84,15.26 14.1,15.86C14.35,15.95 14.61,16 14.87,16.07C20,16 19.4,12.87 19.4,12.82C19.34,11.39 18.14,10.27 16.71,10.33A1,1 0 0,1 15.71,9.33A1,1 0 0,1 16.71,8.33C17.94,8.36 19.12,8.82 20.04,9.63C20.09,9.34 20.12,9.04 20.12,8.74C20.06,7.5 19.5,6.42 17.25,6.21C16,3.25 12.85,4.89 12.85,5.81V5.81C12.82,6.04 13.06,6.53 13.1,6.56A1,1 0 0,1 14.1,7.56C14.1,8.11 13.65,8.56 13.1,8.56V8.56C12.57,8.54 12.07,8.34 11.67,8C11.19,8.31 10.64,8.5 10.07,8.56V8.56C9.5,8.61 9.03,8.21 9,7.66C8.92,7.1 9.33,6.61 9.88,6.56C10.04,6.54 10.82,6.42 10.82,5.79V5.79C10.82,5.13 11.07,4.5 11.5,4C10.58,3.75 9.59,4.08 8.59,5.29C6.75,5 6,5.25 5.45,7.2C4.5,7.67 4,8 3.78,9C4.86,8.78 5.97,8.87 7,9.25C7.5,9.44 7.78,10 7.59,10.54C7.4,11.06 6.82,11.32 6.3,11.13C5.57,10.81 4.75,10.79 4,11.07C3.68,11.34 3.68,11.9 3.68,12.34C3.68,13.08 4.05,13.77 4.68,14.17C5.21,14.44 5.8,14.58 6.39,14.57C6.24,14.31 6.11,14.04 6,13.76C5.81,13.22 6.1,12.63 6.64,12.44C7.18,12.25 7.77,12.54 7.96,13.08C8.36,14.22 9.38,15 10.58,15.13C11.95,15.06 13.17,14.25 13.77,13C14,11.62 15.11,11.5 16.33,11.5M18.33,18.97L17.71,17.67L17,17.83L18,19.08L18.33,18.97M13.68,10.36C13.7,9.83 13.3,9.38 12.77,9.33C12.06,9.29 11.37,9.53 10.84,10C10.27,10.58 9.97,11.38 10,12.19A1,1 0 0,0 11,13.19C11.57,13.19 12,12.74 12,12.19C12,11.92 12.07,11.65 12.23,11.43C12.35,11.33 12.5,11.28 12.66,11.28C13.21,11.31 13.68,10.9 13.68,10.36Z\";\nexport var mdiBreadSlice = \"M12,2C17.5,2 22,5.36 22,9.5C22,11.19 21.26,12.75 20,14V22H4V14C2.74,12.75 2,11.19 2,9.5C2,5.36 6.5,2 12,2M8,18H12V14H8V18Z\";\nexport var mdiBreadSliceOutline = \"M12,2C17.5,2 22,5.36 22,9.5C22,11.19 21.26,12.75 20,14V22H4V14C2.74,12.75 2,11.19 2,9.5C2,5.36 6.5,2 12,2M18,13.14C19.24,12.17 20,10.89 20,9.5C20,6.46 16.42,4 12,4C7.58,4 4,6.46 4,9.5C4,10.89 4.76,12.17 6,13.14V20H18V13.14M8,18V14H12V18H8Z\";\nexport var mdiBridge = \"M7,14V10.91C6.28,10.58 5.61,10.18 5,9.71V14H7M5,18H3V16H1V14H3V7H5V8.43C6.8,10 9.27,11 12,11C14.73,11 17.2,10 19,8.43V7H21V14H23V16H21V18H19V16H5V18M17,10.91V14H19V9.71C18.39,10.18 17.72,10.58 17,10.91M16,14V11.32C15.36,11.55 14.69,11.72 14,11.84V14H16M13,14V11.96L12,12L11,11.96V14H13M10,14V11.84C9.31,11.72 8.64,11.55 8,11.32V14H10Z\";\nexport var mdiBriefcase = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcaseAccount = \"M20,6H16V4A2,2 0 0,0 14,2H10C8.89,2 8,2.89 8,4V6H4C2.89,6 2,6.89 2,8V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V8A2,2 0 0,0 20,6M10,4H14V6H10V4M12,9A2.5,2.5 0 0,1 14.5,11.5A2.5,2.5 0 0,1 12,14A2.5,2.5 0 0,1 9.5,11.5A2.5,2.5 0 0,1 12,9M17,19H7V17.75C7,16.37 9.24,15.25 12,15.25C14.76,15.25 17,16.37 17,17.75V19Z\";\nexport var mdiBriefcaseAccountOutline = \"M20,6C20.58,6 21.05,6.2 21.42,6.59C21.8,7 22,7.45 22,8V19C22,19.55 21.8,20 21.42,20.41C21.05,20.8 20.58,21 20,21H4C3.42,21 2.95,20.8 2.58,20.41C2.2,20 2,19.55 2,19V8C2,7.45 2.2,7 2.58,6.59C2.95,6.2 3.42,6 4,6H8V4C8,3.42 8.2,2.95 8.58,2.58C8.95,2.2 9.42,2 10,2H14C14.58,2 15.05,2.2 15.42,2.58C15.8,2.95 16,3.42 16,4V6H20M4,8V19H20V8H4M14,6V4H10V6H14M12,9A2.25,2.25 0 0,1 14.25,11.25C14.25,12.5 13.24,13.5 12,13.5A2.25,2.25 0 0,1 9.75,11.25C9.75,10 10.76,9 12,9M16.5,18H7.5V16.88C7.5,15.63 9.5,14.63 12,14.63C14.5,14.63 16.5,15.63 16.5,16.88V18Z\";\nexport var mdiBriefcaseArrowLeftRight = \"M10 2H14C15.11 2 16 2.9 16 4V6H20C21.11 6 22 6.9 22 8V13.53C20.94 12.58 19.54 12 18 12C14.69 12 12 14.69 12 18C12 19.09 12.29 20.12 12.8 21H4C2.89 21 2 20.1 2 19V8C2 6.89 2.89 6 4 6H8V4C8 2.89 8.89 2 10 2M14 6V4H10V6H14M19 18.5V17H15V15H19V13.5L22 16L19 18.5M17 19H21V21H17V22.5L14 20L17 17.5V19Z\";\nexport var mdiBriefcaseArrowLeftRightOutline = \"M10 2H14C15.11 2 16 2.9 16 4V6H20C21.11 6 22 6.9 22 8V13.53C21.42 13 20.75 12.6 20 12.34V8H4V19H12.08C12.2 19.72 12.45 20.39 12.8 21H4C2.9 21 2 20.11 2 19V8C2 6.9 2.9 6 4 6H8V4C8 2.9 8.9 2 10 2M14 6V4H10V6H14M19 18.5V17H15V15H19V13.5L22 16L19 18.5M17 19H21V21H17V22.5L14 20L17 17.5V19Z\";\nexport var mdiBriefcaseArrowUpDown = \"M10 2H14C15.11 2 16 2.9 16 4V6H20C21.11 6 22 6.9 22 8V13.53C20.94 12.58 19.54 12 18 12C14.69 12 12 14.69 12 18C12 19.09 12.29 20.12 12.8 21H4C2.89 21 2 20.1 2 19V8C2 6.89 2.89 6 4 6H8V4C8 2.89 8.89 2 10 2M14 6V4H10V6H14M17.5 19H19V15H21V19H22.5L20 22L17.5 19M17 17V21H15V17H13.5L16 14L18.5 17H17Z\";\nexport var mdiBriefcaseArrowUpDownOutline = \"M10 2H14C15.11 2 16 2.9 16 4V6H20C21.11 6 22 6.9 22 8V13.53C21.42 13 20.75 12.6 20 12.34V8H4V19H12.08C12.2 19.72 12.45 20.39 12.8 21H4C2.9 21 2 20.11 2 19V8C2 6.9 2.9 6 4 6H8V4C8 2.9 8.9 2 10 2M14 6V4H10V6H14M17.5 19H19V15H21V19H22.5L20 22L17.5 19M17 17V21H15V17H13.5L16 14L18.5 17H17Z\";\nexport var mdiBriefcaseCheck = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V8A2,2 0 0,1 4,6H8V4A2,2 0 0,1 10,2M14,6V4H10V6H14M10.5,17.5L17.09,10.91L15.68,9.5L10.5,14.67L8.41,12.59L7,14L10.5,17.5Z\";\nexport var mdiBriefcaseCheckOutline = \"M20 6C20.58 6 21.05 6.2 21.42 6.59C21.8 7 22 7.45 22 8V19C22 19.55 21.8 20 21.42 20.41C21.05 20.8 20.58 21 20 21H4C3.42 21 2.95 20.8 2.58 20.41C2.2 20 2 19.55 2 19V8C2 7.45 2.2 7 2.58 6.59C2.95 6.2 3.42 6 4 6H8V4C8 3.42 8.2 2.95 8.58 2.58C8.95 2.2 9.42 2 10 2H14C14.58 2 15.05 2.2 15.42 2.58C15.8 2.95 16 3.42 16 4V6H20M4 8V19H20V8H4M14 6V4H10V6H14M10.46 17.5L17.05 10.91L15.64 9.5L10.46 14.67L8.37 12.59L6.96 14L10.46 17.5Z\";\nexport var mdiBriefcaseClock = \"M21 11.11V7A2 2 0 0 0 19 5H15V3A2 2 0 0 0 13 1H9A2 2 0 0 0 7 3V5H3A2 2 0 0 0 1 7V18A2 2 0 0 0 3 20H10.26A7 7 0 1 0 21 11.11M9 3H13V5H9M19 20A5 5 0 0 1 13 20A5 5 0 1 1 19 20M15 13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69V13\";\nexport var mdiBriefcaseClockOutline = \"M21 11.11V7A2 2 0 0 0 20.42 5.59A1.87 1.87 0 0 0 19 5H15V3A1.9 1.9 0 0 0 14.42 1.58A1.9 1.9 0 0 0 13 1H9A1.9 1.9 0 0 0 7.58 1.58A1.9 1.9 0 0 0 7 3V5H3A1.87 1.87 0 0 0 1.58 5.59A2 2 0 0 0 1 7V18A2 2 0 0 0 1.58 19.41A1.87 1.87 0 0 0 3 20H10.26A7 7 0 1 0 21 11.11M9 3H13V5H9M3 18V7H19V9.68A6.84 6.84 0 0 0 16 9A7 7 0 0 0 9 16A6.91 6.91 0 0 0 9.29 18M19 20A5 5 0 0 1 13 20A4.94 4.94 0 0 1 11 16A5 5 0 0 1 16 11A4.94 4.94 0 0 1 19 12A5 5 0 0 1 19 20M15 13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69V13\";\nexport var mdiBriefcaseDownload = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14M12,19L17,14H14V10H10V14H7L12,19Z\";\nexport var mdiBriefcaseDownloadOutline = \"M12,18L7,13H10V9H14V13H17L12,18M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14M4,8V19H20V8H4Z\";\nexport var mdiBriefcaseEdit = \"M14,2A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8L10.85,19C10.85,20.1 10.85,19.5 10.85,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2H14M14,6V4H10V6H14M21.04,12.13C20.9,12.13 20.76,12.19 20.65,12.3L19.65,13.3L21.7,15.35L22.7,14.35C22.92,14.14 22.92,13.79 22.7,13.58L21.42,12.3C21.31,12.19 21.18,12.13 21.04,12.13M19.07,13.88L13,19.94V22H15.06L21.12,15.93L19.07,13.88Z\";\nexport var mdiBriefcaseEditOutline = \"M21.04,12.13C21.18,12.13 21.31,12.19 21.42,12.3L22.7,13.58C22.92,13.79 22.92,14.14 22.7,14.35L21.7,15.35L19.65,13.3L20.65,12.3C20.76,12.19 20.9,12.13 21.04,12.13M19.07,13.88L21.12,15.93L15.06,22H13V19.94L19.07,13.88M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8L20,10V8H4V19H11V21H4A2,2 0 0,1 2,19V8A2,2 0 0,1 4,6H8V4A2,2 0 0,1 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcaseEye = \"M17 18C17.6 18 18 18.4 18 19S17.6 20 17 20 16 19.6 16 19 16.4 18 17 18M9.1 19.7L8.8 19L9.1 18.3C10.4 15.1 13.5 13 17 13C18.9 13 20.6 13.6 22 14.6V8C22 6.9 21.1 6 20 6H16V4C16 2.9 15.1 2 14 2H10C8.9 2 8 2.9 8 4V6H4C2.9 6 2 6.9 2 8V19C2 20.1 2.9 21 4 21H9.8C9.5 20.6 9.3 20.2 9.1 19.7M10 4H14V6H10V4M17 15C14.3 15 11.9 16.7 11 19C11.9 21.3 14.3 23 17 23S22.1 21.3 23 19C22.1 16.7 19.7 15 17 15M17 21.5C15.6 21.5 14.5 20.4 14.5 19S15.6 16.5 17 16.5 19.5 17.6 19.5 19 18.4 21.5 17 21.5Z\";\nexport var mdiBriefcaseEyeOutline = \"M17 18C17.6 18 18 18.4 18 19S17.6 20 17 20 16 19.6 16 19 16.4 18 17 18M17 15C14.3 15 11.9 16.7 11 19C11.9 21.3 14.3 23 17 23S22.1 21.3 23 19C22.1 16.7 19.7 15 17 15M17 21.5C15.6 21.5 14.5 20.4 14.5 19S15.6 16.5 17 16.5 19.5 17.6 19.5 19 18.4 21.5 17 21.5M9.1 19.7L8.8 19H4V8H20V13.6C20.7 13.9 21.4 14.2 22 14.7V8C22 7.5 21.8 7 21.4 6.6C21 6.2 20.6 6 20 6H16V4C16 3.4 15.8 3 15.4 2.6C15 2.2 14.6 2 14 2H10C9.4 2 9 2.2 8.6 2.6C8.2 3 8 3.4 8 4V6H4C3.4 6 3 6.2 2.6 6.6C2.2 7 2 7.5 2 8V19C2 19.5 2.2 20 2.6 20.4C3 20.8 3.4 21 4 21H9.8C9.5 20.6 9.3 20.2 9.1 19.7M10 4H14V6H10V4Z\";\nexport var mdiBriefcaseMinus = \"M22,17V19H14V17H22M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcaseMinusOutline = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C21.42,13 20.75,12.6 20,12.34V8H4V19H12.08C12.2,19.72 12.45,20.39 12.8,21H4A2,2 0 0,1 2,19V8A2,2 0 0,1 4,6H8V4A2,2 0 0,1 10,2M14,6V4H10V6H14M14,17H22V19H14V17Z\";\nexport var mdiBriefcaseOff = \"M22.11 21.46L20.84 22.73L19.11 21H4C2.89 21 2 20.1 2 19V8C2 6.89 2.89 6 4 6H4.11L1.11 3L2.39 1.73L22.11 21.46M22 18.8L8 4.8V4C8 2.89 8.89 2 10 2H14C15.11 2 16 2.9 16 4V6H20C21.11 6 22 6.9 22 8V18.8M14 4H10V6H14V4Z\";\nexport var mdiBriefcaseOffOutline = \"M20 8V16.8L22 18.8V8C22 7.45 21.8 7 21.42 6.59C21.05 6.2 20.58 6 20 6H16V4C16 3.42 15.8 2.95 15.42 2.58C15.05 2.2 14.58 2 14 2H10C9.42 2 8.95 2.2 8.58 2.58C8.2 2.95 8 3.42 8 4V4.8L11.2 8H20M10 4H14V6H10V4M2.39 1.73L1.11 3L4.11 6H4C3.42 6 2.95 6.2 2.58 6.59C2.2 7 2 7.45 2 8V19C2 19.55 2.2 20 2.58 20.41C2.95 20.8 3.42 21 4 21H19.11L20.84 22.73L22.11 21.46L2.39 1.73M4 19V8H6.11L17.11 19H4Z\";\nexport var mdiBriefcaseOutline = \"M20,6C20.58,6 21.05,6.2 21.42,6.59C21.8,7 22,7.45 22,8V19C22,19.55 21.8,20 21.42,20.41C21.05,20.8 20.58,21 20,21H4C3.42,21 2.95,20.8 2.58,20.41C2.2,20 2,19.55 2,19V8C2,7.45 2.2,7 2.58,6.59C2.95,6.2 3.42,6 4,6H8V4C8,3.42 8.2,2.95 8.58,2.58C8.95,2.2 9.42,2 10,2H14C14.58,2 15.05,2.2 15.42,2.58C15.8,2.95 16,3.42 16,4V6H20M4,8V19H20V8H4M14,6V4H10V6H14Z\";\nexport var mdiBriefcasePlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcasePlusOutline = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C21.42,13 20.75,12.6 20,12.34V8H4V19H12.08C12.2,19.72 12.45,20.39 12.8,21H4A2,2 0 0,1 2,19V8A2,2 0 0,1 4,6H8V4A2,2 0 0,1 10,2M14,6V4H10V6H14M14,17H17V14H19V17H22V19H19V22H17V19H14V17Z\";\nexport var mdiBriefcaseRemove = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcaseRemoveOutline = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C21.42,13 20.75,12.6 20,12.34V8H4V19H12.08C12.2,19.72 12.45,20.39 12.8,21H4A2,2 0 0,1 2,19V8A2,2 0 0,1 4,6H8V4A2,2 0 0,1 10,2M14,6V4H10V6H14M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88Z\";\nexport var mdiBriefcaseSearch = \"M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C20.85,11.21 18.82,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,18.25 10.69,19.83 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z\";\nexport var mdiBriefcaseSearchOutline = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C21.5,12.23 20.8,11.54 20,11V8H4V19H10.5C10.81,19.75 11.26,20.42 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14M20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9M16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19Z\";\nexport var mdiBriefcaseUpload = \"M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14M12,9L7,14H10V18H14V14H17L12,9Z\";\nexport var mdiBriefcaseUploadOutline = \"M12,9L17,14H14V18H10V14H7L12,9M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V19A2,2 0 0,1 20,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14M4,8V19H20V8H4Z\";\nexport var mdiBriefcaseVariant = \"M10 16V15H3L3 19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V15H14V16H10M20 7H16V5L14 3H10L8 5V7H4C2.9 7 2 7.9 2 9V12C2 13.11 2.89 14 4 14H10V12H14V14H20C21.1 14 22 13.1 22 12V9C22 7.9 21.1 7 20 7M14 7H10V5H14V7Z\";\nexport var mdiBriefcaseVariantOff = \"M10 6.8L8.1 4.9L10 3H14L16 5V7H20C21.1 7 22 7.9 22 9V12C22 13.1 21.1 14 20 14H17.2L10.2 7H14V5H10V6.8M2.39 1.73L1.11 3L5.11 7H4C2.9 7 2 7.9 2 9V12C2 13.11 2.89 14 4 14H10V12H10.11L14 15.89V16H10V15H3V19C3 20.11 3.89 21 5 21H19C19.03 21 19.07 21 19.1 21L20.84 22.73L22.11 21.46L2.39 1.73M21 17.8V15H18.2L21 17.8Z\";\nexport var mdiBriefcaseVariantOffOutline = \"M10 6.8L8.1 4.9L10 3H14L16 5V7H20C21.1 7 22 7.9 22 9V14C22 14.73 21.59 15.37 21 15.72V17.8L17.2 14H20V9H12.2L10.2 7H14V5H10V6.8M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.89 21 3 20.11 3 19V15.73C2.4 15.38 2 14.75 2 14V9C2 7.9 2.9 7 4 7H5.11L1.11 3L2.39 1.73L22.11 21.46M11 15H13V14.89L11.11 13H11V15M9 14V11H9.11L7.11 9H4V14H9M17.11 19L15 16.89V17H9V16H5V19H17.11Z\";\nexport var mdiBriefcaseVariantOutline = \"M20 7H16V5L14 3H10L8 5V7H4C2.9 7 2 7.9 2 9V14C2 14.75 2.4 15.38 3 15.73V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V15.72C21.59 15.37 22 14.73 22 14V9C22 7.9 21.1 7 20 7M10 5H14V7H10V5M4 9H20V14H15V11H9V14H4V9M13 15H11V13H13V15M19 19H5V16H9V17H15V16H19V19Z\";\nexport var mdiBrightness1 = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiBrightness2 = \"M10,2C8.18,2 6.47,2.5 5,3.35C8,5.08 10,8.3 10,12C10,15.7 8,18.92 5,20.65C6.47,21.5 8.18,22 10,22A10,10 0 0,0 20,12A10,10 0 0,0 10,2Z\";\nexport var mdiBrightness3 = \"M9,2C7.95,2 6.95,2.16 6,2.46C10.06,3.73 13,7.5 13,12C13,16.5 10.06,20.27 6,21.54C6.95,21.84 7.95,22 9,22A10,10 0 0,0 19,12A10,10 0 0,0 9,2Z\";\nexport var mdiBrightness4 = \"M12,18C11.11,18 10.26,17.8 9.5,17.45C11.56,16.5 13,14.42 13,12C13,9.58 11.56,7.5 9.5,6.55C10.26,6.2 11.11,6 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69Z\";\nexport var mdiBrightness5 = \"M12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z\";\nexport var mdiBrightness6 = \"M12,18V6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z\";\nexport var mdiBrightness7 = \"M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8M12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69Z\";\nexport var mdiBrightnessAuto = \"M14.3,16L13.6,14H10.4L9.7,16H7.8L11,7H13L16.2,16H14.3M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69M10.85,12.65H13.15L12,9L10.85,12.65Z\";\nexport var mdiBrightnessPercent = \"M20.04,8.71V4H15.34L12,0.69L8.71,4H4V8.71L0.69,12L4,15.34V20.04H8.71L12,23.35L15.34,20.04H20.04V15.34L23.35,12L20.04,8.71M8.83,7.05C9.81,7.05 10.6,7.84 10.6,8.83A1.77,1.77 0 0,1 8.83,10.6C7.84,10.6 7.05,9.81 7.05,8.83C7.05,7.84 7.84,7.05 8.83,7.05M15.22,17C14.24,17 13.45,16.2 13.45,15.22A1.77,1.77 0 0,1 15.22,13.45C16.2,13.45 17,14.24 17,15.22A1.78,1.78 0 0,1 15.22,17M8.5,17.03L7,15.53L15.53,7L17.03,8.5L8.5,17.03Z\";\nexport var mdiBroadcast = \"M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M18 12C18 8.7 15.3 6 12 6S6 8.7 6 12C6 14.2 7.2 16.1 9 17.2L10 15.5C8.8 14.8 8 13.5 8 12.1C8 9.9 9.8 8.1 12 8.1S16 9.9 16 12.1C16 13.6 15.2 14.9 14 15.5L15 17.2C16.8 16.2 18 14.2 18 12M12 2C6.5 2 2 6.5 2 12C2 15.7 4 18.9 7 20.6L8 18.9C5.6 17.5 4 14.9 4 12C4 7.6 7.6 4 12 4S20 7.6 20 12C20 15 18.4 17.5 16 18.9L17 20.6C20 18.9 22 15.7 22 12C22 6.5 17.5 2 12 2Z\";\nexport var mdiBroadcastOff = \"M17.6 14.2C17.9 13.5 18 12.8 18 12C18 8.7 15.3 6 12 6C11.2 6 10.4 6.2 9.8 6.4L11.4 8H12C14.2 8 16 9.8 16 12C16 12.2 16 12.4 15.9 12.6L17.6 14.2M12 4C16.4 4 20 7.6 20 12C20 13.4 19.6 14.6 19 15.7L20.5 17.2C21.4 15.7 22 13.9 22 12C22 6.5 17.5 2 12 2C10.1 2 8.3 2.5 6.8 3.5L8.3 5C9.4 4.3 10.6 4 12 4M3.3 2.5L2 3.8L4.1 5.9C2.8 7.6 2 9.7 2 12C2 15.7 4 18.9 7 20.6L8 18.9C5.6 17.5 4 14.9 4 12C4 10.2 4.6 8.6 5.5 7.3L7 8.8C6.4 9.7 6 10.8 6 12C6 14.2 7.2 16.1 9 17.2L10 15.5C8.8 14.8 8 13.5 8 12.1C8 11.5 8.2 10.9 8.4 10.3L10 11.9V12.1C10 13.2 10.9 14.1 12 14.1H12.2L19.7 21.6L21 20.3L4.3 3.5L3.3 2.5Z\";\nexport var mdiBroom = \"M19.36,2.72L20.78,4.14L15.06,9.85C16.13,11.39 16.28,13.24 15.38,14.44L9.06,8.12C10.26,7.22 12.11,7.37 13.65,8.44L19.36,2.72M5.93,17.57C3.92,15.56 2.69,13.16 2.35,10.92L7.23,8.83L14.67,16.27L12.58,21.15C10.34,20.81 7.94,19.58 5.93,17.57Z\";\nexport var mdiBrush = \"M20.71,4.63L19.37,3.29C19,2.9 18.35,2.9 17.96,3.29L9,12.25L11.75,15L20.71,6.04C21.1,5.65 21.1,5 20.71,4.63M7,14A3,3 0 0,0 4,17C4,18.31 2.84,19 2,19C2.92,20.22 4.5,21 6,21A4,4 0 0,0 10,17A3,3 0 0,0 7,14Z\";\nexport var mdiBrushOff = \"M20.8 22.7L12.4 14.3L11.8 15L9 12.2L9.7 11.5L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M7 14C5.3 14 4 15.3 4 17C4 18.3 2.8 19 2 19C2.9 20.2 4.5 21 6 21C8.2 21 10 19.2 10 17C10 15.3 8.7 14 7 14M20.7 6C21.1 5.6 21.1 5 20.7 4.6L19.4 3.3C19 2.9 18.4 2.9 18 3.3L12.2 9L15 11.8L20.7 6Z\";\nexport var mdiBrushOutline = \"M7 16C7.55 16 8 16.45 8 17C8 18.1 7.1 19 6 19C5.83 19 5.67 19 5.5 18.95C5.81 18.4 6 17.74 6 17C6 16.45 6.45 16 7 16M18.67 3C18.41 3 18.16 3.1 17.96 3.29L9 12.25L11.75 15L20.71 6.04C21.1 5.65 21.1 5 20.71 4.63L19.37 3.29C19.17 3.09 18.92 3 18.67 3M7 14C5.34 14 4 15.34 4 17C4 18.31 2.84 19 2 19C2.92 20.22 4.5 21 6 21C8.21 21 10 19.21 10 17C10 15.34 8.66 14 7 14Z\";\nexport var mdiBrushVariant = \"M8 3C5.79 3 4 4.79 4 7V14C4 15.1 4.9 16 6 16H9V20C9 21.1 9.9 22 11 22H13C14.1 22 15 21.1 15 20V16H18C19.1 16 20 15.1 20 14V3H8M8 5H12V7H14V5H15V9H17V5H18V10H6V7C6 5.9 6.9 5 8 5M6 14V12H18V14H6Z\";\nexport var mdiBucket = \"M3 4H21V7H20L17.5 21H6.5L4 7H3V4Z\";\nexport var mdiBucketOutline = \"M3 4H21V7H20L17.5 21H6.5L4 7H3V4M17.97 7H6.03L8.15 19H15.85L17.97 7Z\";\nexport var mdiBuffet = \"M9 14C9.55 14 10 14.45 10 15C10 15.55 9.55 16 9 16C8.45 16 8 15.55 8 15C8 14.45 8.45 14 9 14M15 14C15.55 14 16 14.45 16 15C16 15.55 15.55 16 15 16C14.45 16 14 15.55 14 15C14 14.45 14.45 14 15 14M3 22L4 19H3C2.45 19 2 18.55 2 18V12C2 11.45 2.45 11 3 11H21C21.55 11 22 11.45 22 12V18C22 18.55 21.55 19 21 19H20L21 22H19L18 19H6L5 22H3M13 13V17H20V13H13M4 13V17H11V13H4Z\";\nexport var mdiBug = \"M14,12H10V10H14M14,16H10V14H14M20,8H17.19C16.74,7.22 16.12,6.55 15.37,6.04L17,4.41L15.59,3L13.42,5.17C12.96,5.06 12.5,5 12,5C11.5,5 11.04,5.06 10.59,5.17L8.41,3L7,4.41L8.62,6.04C7.88,6.55 7.26,7.22 6.81,8H4V10H6.09C6.04,10.33 6,10.66 6,11V12H4V14H6V15C6,15.34 6.04,15.67 6.09,16H4V18H6.81C7.85,19.79 9.78,21 12,21C14.22,21 16.15,19.79 17.19,18H20V16H17.91C17.96,15.67 18,15.34 18,15V14H20V12H18V11C18,10.66 17.96,10.33 17.91,10H20V8Z\";\nexport var mdiBugCheck = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 16.46 14.61 14.2 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 15H9V13H13V15M13 11H9V9H13V11M17.75 22.16L15 19.16L16.16 18L17.75 19.59L21.34 16L22.5 17.41L17.75 22.16Z\";\nexport var mdiBugCheckOutline = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M21.34 16L17.75 19.59L16.16 18L15 19.16L17.75 22.16L22.5 17.41L21.34 16M13 9V11H9V9H13M13 13V15H9V13H13Z\";\nexport var mdiBugOutline = \"M20,8H17.19C16.74,7.2 16.12,6.5 15.37,6L17,4.41L15.59,3L13.42,5.17C12.96,5.06 12.5,5 12,5C11.5,5 11.05,5.06 10.59,5.17L8.41,3L7,4.41L8.62,6C7.87,6.5 7.26,7.21 6.81,8H4V10H6.09C6.03,10.33 6,10.66 6,11V12H4V14H6V15C6,15.34 6.03,15.67 6.09,16H4V18H6.81C8.47,20.87 12.14,21.84 15,20.18C15.91,19.66 16.67,18.9 17.19,18H20V16H17.91C17.97,15.67 18,15.34 18,15V14H20V12H18V11C18,10.66 17.97,10.33 17.91,10H20V8M16,15A4,4 0 0,1 12,19A4,4 0 0,1 8,15V11A4,4 0 0,1 12,7A4,4 0 0,1 16,11V15M14,10V12H10V10H14M10,14H14V16H10V14Z\";\nexport var mdiBugPause = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 16.46 14.61 14.2 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 15H9V13H13V15M13 11H9V9H13V11M20 16H22V22H20M16 16H18V22H16V16Z\";\nexport var mdiBugPauseOutline = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 9V11H9V9H13M13 13V15H9V13H13M20 16H22V22H20M16 16H18V22H16V16Z\";\nexport var mdiBugPlay = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 16.46 14.61 14.2 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 15H9V13H13V15M13 11H9V9H13V11M17 16V22L22 19L17 16Z\";\nexport var mdiBugPlayOutline = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 9V11H9V9H13M13 13V15H9V13H13M17 16V22L22 19L17 16Z\";\nexport var mdiBugStop = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 16.46 14.61 14.2 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 15H9V13H13V15M13 11H9V9H13V11M16 16H22V22H16V16Z\";\nexport var mdiBugStopOutline = \"M19 7H16.19C15.74 6.2 15.12 5.5 14.37 5L16 3.41L14.59 2L12.42 4.17C11.96 4.06 11.5 4 11 4S10.05 4.06 9.59 4.17L7.41 2L6 3.41L7.62 5C6.87 5.5 6.26 6.21 5.81 7H3V9H5.09C5.03 9.33 5 9.66 5 10V11H3V13H5V14C5 14.34 5.03 14.67 5.09 15H3V17H5.81C7.26 19.5 10.28 20.61 13 19.65V19C13 18.43 13.09 17.86 13.25 17.31C12.59 17.76 11.8 18 11 18C8.79 18 7 16.21 7 14V10C7 7.79 8.79 6 11 6S15 7.79 15 10V14C15 14.19 15 14.39 14.95 14.58C15.54 14.04 16.24 13.62 17 13.35V13H19V11H17V10C17 9.66 16.97 9.33 16.91 9H19V7M13 9V11H9V9H13M13 13V15H9V13H13M16 16H22V22H16V16Z\";\nexport var mdiBugle = \"M21,6C21,11 12,11 12,11C12,11 6,11 5,11C4,11 3,10 3,10H2V14H3C3,14 4,13 5,13C5.2,13 5.7,13 6.3,13C5.5,13.5 5,14.2 5,15C5,16.8 7.3,18 10.5,18C13.7,18 16,16.8 16,15C16,14.4 15.7,13.8 15.2,13.3C17.8,13.8 21,15 21,18H22V6H21M10.5,16.7C8.2,16.7 6.4,15.9 6.4,15C6.4,14.1 8.2,13.3 10.5,13.3C12.8,13.3 14.6,14.1 14.6,15C14.6,15.9 12.8,16.7 10.5,16.7Z\";\nexport var mdiBulkheadLight = \"M13 2.09C13 2.06 13 2.03 13 2C13 1.45 12.55 1 12 1S11 1.45 11 2C11 2.03 11 2.06 11 2.09C8.19 2.56 6.03 5 6.03 7.97V16C6.03 19 8.19 21.44 11 21.91C11 21.94 11 21.97 11 22C11 22.55 11.45 23 12 23S13 22.55 13 22C13 21.97 13 21.94 13 21.91C15.81 21.44 17.97 19 17.97 16V7.97C18 5 15.81 2.56 13 2.09M16 8H15V5.4C15.6 6.09 16 7 16 8V8M14 19.44C13.41 19.79 12.73 20 12 20C11.27 20 10.59 19.79 10 19.44V16H14V19.44M10 15V9H14V15H10M9 15H8.03V9H9V15M10 4.56C10.59 4.21 11.27 4 12 4C12.73 4 13.41 4.21 14 4.56V8H10V4.56M15 9H16V15H15V9M9 5.4V8H8.03V7.97C8.03 7 8.4 6.09 9 5.4M8.03 16H9V18.6C8.4 17.91 8.03 17 8.03 16.03V16M15 18.6V16H16V16C16 17 15.6 17.91 15 18.6Z\";\nexport var mdiBulldozer = \"M4,4A1,1 0 0,0 3,5V10C2.54,10 2.14,10.31 2.03,10.76V13.97H2.29C2.65,13.37 3.3,13 4,13H13C13.7,13 14.35,13.37 14.71,13.97H16.03L16,11V11A1,1 0 0,0 15,10H13V8A1,1 0 0,0 12,7A1,1 0 0,0 11,8V10H9V5A1,1 0 0,0 8,4H4M5,6H7V10L7,11H5V6M17,11V19H22V18L19,17L18,11H17M4,15A2,2 0 0,0 2,17A2,2 0 0,0 4,19H13A2,2 0 0,0 15,17A2,2 0 0,0 13,15H4Z\";\nexport var mdiBullet = \"M14,22H10V21H14V22M13,10V7H11V10L10,11.5V20H14V11.5L13,10M12,2C12,2 11,3 11,5V6H13V5C13,5 13,3 12,2Z\";\nexport var mdiBulletinBoard = \"M12.04,2.5L9.53,5H14.53L12.04,2.5M4,7V20H20V7H4M12,0L17,5V5H20A2,2 0 0,1 22,7V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V7A2,2 0 0,1 4,5H7V5L12,0M7,18V14H12V18H7M14,17V10H18V17H14M6,12V9H11V12H6Z\";\nexport var mdiBullhorn = \"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z\";\nexport var mdiBullhornOutline = \"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z\";\nexport var mdiBullhornVariant = \"M20 2V4L4 8V6H2V18H4V16L6 16.5V18.5C6 20.4 7.6 22 9.5 22S13 20.4 13 18.5V18.3L20 20V22H22V2H20M11 18.5C11 19.3 10.3 20 9.5 20S8 19.3 8 18.5V17L11 17.8V18.5Z\";\nexport var mdiBullhornVariantOutline = \"M20 2V4L4 8V6H2V18H4V16L6 16.5V18.5C6 20.4 7.6 22 9.5 22S13 20.4 13 18.5V18.3L20 20V22H22V2H20M11 18.5C11 19.3 10.3 20 9.5 20S8 19.3 8 18.5V17L11 17.8V18.5M20 18L4 14V10L20 6V18Z\";\nexport var mdiBullseye = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M12,6A6,6 0 0,0 6,12A6,6 0 0,0 12,18A6,6 0 0,0 18,12A6,6 0 0,0 12,6M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiBullseyeArrow = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,10.84 21.79,9.69 21.39,8.61L19.79,10.21C19.93,10.8 20,11.4 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.6,4 13.2,4.07 13.79,4.21L15.4,2.6C14.31,2.21 13.16,2 12,2M19,2L15,6V7.5L12.45,10.05C12.3,10 12.15,10 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12C14,11.85 14,11.7 13.95,11.55L16.5,9H18L22,5H19V2M12,6A6,6 0 0,0 6,12A6,6 0 0,0 12,18A6,6 0 0,0 18,12H16A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8V6Z\";\nexport var mdiBulma = \"M11.38 2L6.38 7L5.13 15.75L11.38 22L18.88 17L13.88 12L17.63 8.25L11.38 2Z\";\nexport var mdiBunkBed = \"M1 2V23H3V21H21V23H23V7C23 4.79 21.21 3 19 3H10V8H3V2M6.5 2A2.5 2.5 0 0 0 4 4.5A2.5 2.5 0 0 0 6.5 7A2.5 2.5 0 0 0 9 4.5A2.5 2.5 0 0 0 6.5 2M3 11H21V13.56C20.41 13.21 19.73 13 19 13H10V18H3M6.5 12A2.5 2.5 0 0 0 4 14.5A2.5 2.5 0 0 0 6.5 17A2.5 2.5 0 0 0 9 14.5A2.5 2.5 0 0 0 6.5 12Z\";\nexport var mdiBunkBedOutline = \"M1 2H3V9H10V3H19C21.2 3 23 4.8 23 7V23H21V21H3V23H1V2M12 5V9H21V7C21 5.9 20.1 5 19 5H12M3 11V19H10V13H19C19.7 13 20.4 13.2 21 13.6V11H3M6.5 13C7.9 13 9 14.1 9 15.5S7.9 18 6.5 18 4 16.9 4 15.5 5.1 13 6.5 13M6.5 14.6C6 14.6 5.6 15 5.6 15.5S6 16.4 6.5 16.4 7.4 16 7.4 15.5 7 14.6 6.5 14.6M12 15V19H21V17C21 15.9 20.1 15 19 15H12M6.5 3C7.9 3 9 4.1 9 5.5S7.9 8 6.5 8 4 6.9 4 5.5 5.1 3 6.5 3M6.5 4.6C6 4.6 5.6 5 5.6 5.5S6 6.4 6.5 6.4 7.4 6 7.4 5.5 7 4.6 6.5 4.6Z\";\nexport var mdiBus = \"M18,11H6V6H18M16.5,17A1.5,1.5 0 0,1 15,15.5A1.5,1.5 0 0,1 16.5,14A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 16.5,17M7.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,14A1.5,1.5 0 0,1 9,15.5A1.5,1.5 0 0,1 7.5,17M4,16C4,16.88 4.39,17.67 5,18.22V20A1,1 0 0,0 6,21H7A1,1 0 0,0 8,20V19H16V20A1,1 0 0,0 17,21H18A1,1 0 0,0 19,20V18.22C19.61,17.67 20,16.88 20,16V6C20,2.5 16.42,2 12,2C7.58,2 4,2.5 4,6V16Z\";\nexport var mdiBusAlert = \"M16,1A7,7 0 0,1 23,8C23,11.53 20.39,14.45 17,14.93V18C17,18.84 16.65,19.58 15.96,20.2V22C15.96,22.27 15.87,22.5 15.68,22.71C15.5,22.91 15.26,23 15,23H14C13.71,23 13.47,22.91 13.27,22.71C13.06,22.5 12.96,22.27 12.96,22V21H5.04V22C5.04,22.27 4.94,22.5 4.73,22.71C4.53,22.91 4.29,23 4,23H3C2.74,23 2.5,22.91 2.32,22.71C2.13,22.5 2.04,22.27 2.04,22V20.2C1.35,19.58 1,18.84 1,18V8C1,6.42 1.7,5.35 3.07,4.8C4.44,4.26 6.42,4 9,4L10.23,4.03C11.5,2.2 13.61,1 16,1M16,3A5,5 0 0,0 11,8A5,5 0 0,0 16,13A5,5 0 0,0 21,8A5,5 0 0,0 16,3M15,10H17V12H15V10M15,4H17V9H15V4M3,13H11.09C9.8,11.72 9,9.96 9,8H3V13M4.5,16C3.69,16 3,16.67 3,17.5A1.5,1.5 0 0,0 4.5,19C5.35,19 6,18.33 6,17.5A1.5,1.5 0 0,0 4.5,16M13.5,16C12.65,16 12,16.67 12,17.5A1.5,1.5 0 0,0 13.5,19C14.31,19 15,18.33 15,17.5A1.5,1.5 0 0,0 13.5,16Z\";\nexport var mdiBusArticulatedEnd = \"M21.5,6L20,7.5L21.5,9L20,10.5L21.5,12L20,13.5L21.5,15H12.5A3,3 0 0,1 9.5,18A3,3 0 0,1 6.5,15H2.5V8C2.5,6.89 3.39,6 4.5,6H21.5M18.5,7.5H15V10H18.5V7.5M13.5,7.5H9.5V10H13.5V7.5M8,7.5H4V10H8V7.5M9.5,13.5A1.5,1.5 0 0,0 8,15A1.5,1.5 0 0,0 9.5,16.5A1.5,1.5 0 0,0 11,15A1.5,1.5 0 0,0 9.5,13.5Z\";\nexport var mdiBusArticulatedFront = \"M1,6L2.5,7.5L1,9L2.5,10.5L1,12L2.5,13.5L1,15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V8C23,6.89 22.11,6 21,6H1M4,7.5H6.5V10H4V7.5M8,7.5H12V10H8V7.5M13.5,7.5H17.5V10H13.5V7.5M19,7.5H21.5V13L19,11V7.5M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiBusClock = \"M16.5,4V8.25L19.36,9.94L18.61,11.16L15,9V4H16.5M16,13C17.36,13 18.54,12.5 19.5,11.53C20.5,10.56 21,9.39 21,8C21,6.64 20.5,5.46 19.5,4.5C18.54,3.5 17.36,3 16,3C14.61,3 13.44,3.5 12.47,4.5C11.5,5.46 11,6.64 11,8C11,9.39 11.5,10.56 12.47,11.53C13.44,12.5 14.61,13 16,13M13.5,19C13.94,19 14.3,18.84 14.58,18.54C14.86,18.24 15,17.89 15,17.5C15,17.08 14.86,16.73 14.58,16.43C14.3,16.13 13.94,16 13.5,16C13.06,16 12.7,16.13 12.42,16.43C12.14,16.73 12,17.08 12,17.5C12,17.89 12.14,18.24 12.42,18.54C12.7,18.84 13.06,19 13.5,19M3,13H11.11C9.7,11.64 9,10 9,8H3V13M4.5,19C4.94,19 5.3,18.84 5.58,18.54C5.86,18.24 6,17.89 6,17.5C6,17.08 5.86,16.73 5.58,16.43C5.3,16.13 4.94,16 4.5,16C4.06,16 3.7,16.13 3.42,16.43C3.14,16.73 3,17.08 3,17.5C3,17.89 3.14,18.24 3.42,18.54C3.7,18.84 4.06,19 4.5,19M16,1C17.92,1 19.58,1.67 20.95,3.05C22.33,4.42 23,6.08 23,8C23,9.77 22.44,11.29 21.28,12.59C20.13,13.88 18.7,14.66 17,14.91V18C17,18.84 16.67,19.58 16,20.2V22C16,22.27 15.89,22.5 15.7,22.71C15.5,22.91 15.28,23 15,23H14C13.73,23 13.5,22.91 13.29,22.71C13.09,22.5 13,22.27 13,22V21H5V22C5,22.27 4.91,22.5 4.71,22.71C4.5,22.91 4.27,23 4,23H3C2.72,23 2.5,22.91 2.3,22.71C2.11,22.5 2,22.27 2,22V20.2C1.33,19.58 1,18.84 1,18V8C1,6.42 1.67,5.35 3.05,4.8C4.42,4.26 6.41,4 9,4C9.13,4 9.33,4 9.61,4C9.89,4 10.09,4.03 10.22,4.03C11.63,2 13.55,1 16,1Z\";\nexport var mdiBusDoubleDecker = \"M3,4C1.89,4 1,4.89 1,6V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V14C23,12.89 22.11,12 21,12H19V9.5H23V6C23,4.89 22.11,4 21,4H3M2.5,5.5H6.5V8H2.5V5.5M8,5.5H12V8H8V5.5M13.5,5.5H17.5V8H13.5V5.5M19,5.5H21.5V8H19V5.5M13.5,9.5H17.5V12H13.5V9.5M2.5,9.5H6.5V12H2.5V9.5M8,9.5H12V12H8V9.5M6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5M18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5Z\";\nexport var mdiBusElectric = \"M18 8H6V4H18M16.5 14C15.7 14 15 13.3 15 12.5C15 11.7 15.7 11 16.5 11C17.3 11 18 11.7 18 12.5C18 13.3 17.3 14 16.5 14M7.5 14C6.7 14 6 13.3 6 12.5C6 11.7 6.7 11 7.5 11S9 11.7 9 12.5C9 13.3 8.3 14 7.5 14M4 13C4 13.9 4.4 14.7 5 15.2V17C5 17.6 5.4 18 6 18H7C7.6 18 8 17.6 8 17V16H16V17C16 17.6 16.4 18 17 18H18C18.6 18 19 17.6 19 17V15.2C19.6 14.7 20 13.9 20 13V4C20 .5 16.4 0 12 0S4 .5 4 4V13M7 21H11V19L17 22H13V24L7 21Z\";\nexport var mdiBusMarker = \"M12 2C7.58 2 4 2.5 4 6V16A3 3 0 0 0 5 18.22V20A1 1 0 0 0 6 21H7A1 1 0 0 0 8 20V19H14A8 8 0 0 1 13 15.5A5.55 5.55 0 0 1 15.38 11H6V6H18V10A4.07 4.07 0 0 1 18.5 10A5.34 5.34 0 0 1 20 10.22V6C20 2.5 16.42 2 12 2M7.5 14A1.5 1.5 0 1 1 6 15.5A1.5 1.5 0 0 1 7.5 14M18.5 12A3.54 3.54 0 0 0 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5A3.54 3.54 0 0 0 18.5 12M18.5 16.8A1.2 1.2 0 1 1 18.5 14.4A1.29 1.29 0 0 1 19.7 15.6A1.15 1.15 0 0 1 18.5 16.8Z\";\nexport var mdiBusMultiple = \"M10 5C5.58 5 2 5.5 2 9V19C2 19.85 2.37 20.66 3 21.22V23C3 23.55 3.45 24 4 24H5C5.55 24 6 23.55 6 23V22H14V23C14 23.55 14.45 24 15 24H16C16.55 24 17 23.55 17 23V21.22C17.63 20.66 18 19.85 18 19V9C18 5.5 14.42 5 10 5M5.5 20C4.67 20 4 19.33 4 18.5S4.67 17 5.5 17 7 17.67 7 18.5 6.33 20 5.5 20M14.5 20C13.67 20 13 19.33 13 18.5S13.67 17 14.5 17 16 17.67 16 18.5 15.33 20 14.5 20M16 14H4V9H16V14M22 5V15C22 15.85 21.63 16.66 21 17.22V19C21 19.55 20.55 20 20 20H19.88C19.95 19.68 20 19.35 20 19V9C20 3 13 3 10 3C9.09 3 7.8 3 6.46 3.17C7.55 1.32 10.5 1 14 1C18.42 1 22 1.5 22 5Z\";\nexport var mdiBusSchool = \"M3,6C1.89,6 1,6.89 1,8V15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V12C23,10.89 22.11,10 21,10H19V8C19,6.89 18.11,6 17,6H3M13.5,7.5H17.5V10H13.5V7.5M2.5,7.5H6.5V10H2.5V7.5M8,7.5H12V10H8V7.5M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiBusSide = \"M3,6C1.89,6 1,6.89 1,8V15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V8C23,6.89 22.11,6 21,6H3M2.5,7.5H6.5V10H2.5V7.5M8,7.5H12V10H8V7.5M13.5,7.5H17.5V10H13.5V7.5M19,7.5H21.5V13L19,11V7.5M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiBusSign = \"M4 11H11.07C10.39 12.18 10 13.54 10 15C10 16.46 10.39 17.82 11.07 19H6V20C6 20.27 5.9 20.5 5.71 20.71C5.5 20.9 5.27 21 5 21H4C3.74 21 3.5 20.9 3.29 20.71C3.11 20.5 3 20.27 3 20V18.22C2.39 17.67 2 16.88 2 16V6C2 2.5 5.58 2 10 2C14.42 2 18 2.5 18 6V7C17.31 7 16.64 7.09 16 7.25V6H4V11M5.5 17C5.9 17 6.28 16.84 6.56 16.56C6.84 16.28 7 15.9 7 15.5C7 15.1 6.84 14.72 6.56 14.44C6.28 14.16 5.9 14 5.5 14C5.1 14 4.72 14.16 4.44 14.44C4.16 14.72 4 15.1 4 15.5C4 15.9 4.16 16.28 4.44 16.56C4.72 16.84 5.1 17 5.5 17M15 20V21H21V20C21 19.45 20.55 19 20 19H19V14H21L23 12L21 10H13L15 12L13 14H17V19H16C15.45 19 15 19.45 15 20Z\";\nexport var mdiBusStop = \"M22 7V16C22 16.71 21.62 17.36 21 17.72V19.25C21 19.66 20.66 20 20.25 20H19.75C19.34 20 19 19.66 19 19.25V18H12V19.25C12 19.66 11.66 20 11.25 20H10.75C10.34 20 10 19.66 10 19.25V17.72C9.39 17.36 9 16.71 9 16V7C9 4 12 4 15.5 4S22 4 22 7M13 15C13 14.45 12.55 14 12 14S11 14.45 11 15 11.45 16 12 16 13 15.55 13 15M20 15C20 14.45 19.55 14 19 14S18 14.45 18 15 18.45 16 19 16 20 15.55 20 15M20 7H11V11H20V7M7 9.5C6.97 8.12 5.83 7 4.45 7.05C3.07 7.08 1.97 8.22 2 9.6C2.03 10.77 2.86 11.77 4 12V20H5V12C6.18 11.76 7 10.71 7 9.5Z\";\nexport var mdiBusStopCovered = \"M20 3H7V2H6A1.78 1.78 0 0 0 4.59 3H2V5H3.73C2 10.58 2 22 2 22H7V5H20M22 8.5A2.5 2.5 0 1 0 19 11V22H20V11A2.5 2.5 0 0 0 22 8.5M15 11.5V16H14V22H12.5V17H11.5V22H10V16H9V11.5A1.5 1.5 0 0 1 10.5 10H13.5A1.5 1.5 0 0 1 15 11.5M12 6.5A1.5 1.5 0 1 0 13.5 8A1.5 1.5 0 0 0 12 6.5Z\";\nexport var mdiBusStopUncovered = \"M6 22V19H4V22H2V14A1 1 0 0 1 3 13A1 1 0 0 1 4 14V17H7A1 1 0 0 1 8 18V22M20 11V22H19V11A2.5 2.5 0 1 1 20 11M15 11.55V16H14V22H12.5V17H11.5V22H10V16H9V11.5A1.5 1.5 0 0 1 10.5 10H13.5A1.5 1.5 0 0 1 15 11.5M12 6.55A1.5 1.5 0 1 0 13.5 8A1.5 1.5 0 0 0 12 6.5Z\";\nexport var mdiBusWrench = \"M20 13V6C20 2.5 16.42 2 12 2C7.58 2 4 2.5 4 6V16C4 16.88 4.39 17.67 5 18.22V20C5 20.27 5.11 20.5 5.29 20.71C5.5 20.9 5.74 21 6 21H7C7.27 21 7.5 20.9 7.71 20.71C7.9 20.5 8 20.27 8 20V19H12C11.37 18.16 11 17.13 11 16C11 13.24 13.24 11 16 11C17.64 11 19.09 11.79 20 13M16 11H6V6H18V11H16M6.44 16.56C6.16 16.28 6 15.9 6 15.5C6 15.1 6.16 14.72 6.44 14.44C6.72 14.16 7.1 14 7.5 14C7.9 14 8.28 14.16 8.56 14.44C8.84 14.72 9 15.1 9 15.5C9 15.9 8.84 16.28 8.56 16.56C8.28 16.84 7.9 17 7.5 17C7.1 17 6.72 16.84 6.44 16.56M15.5 16.92L13.29 14.71C13.11 15.1 13 15.54 13 16C13 17.66 14.34 19 16 19C16.46 19 16.9 18.9 17.29 18.71L21.29 22.71L22.71 21.29L18.71 17.29C18.9 16.9 19 16.46 19 16C19 14.34 17.66 13 16 13C15.54 13 15.1 13.11 14.71 13.29L16.91 15.5L15.5 16.91Z\";\nexport var mdiButterfly = \"M13 21H11V6L9.03 3.97L10 3L12 5L14 3L15 4L13 6V21M7 6C4.24 6 2 8.24 2 11C2 12.64 2.79 14.09 4 15H4V17C4 19.21 5.79 21 8 21C8.72 21 9.39 20.81 9.97 20.5L10 20.46V7C9.16 6.37 8.13 6 7 6M6.5 12.5L5 11L6.5 9.5L8 11L6.5 12.5M22 11C22 8.24 19.76 6 17 6C15.88 6 14.85 6.37 14 7L14 7V20.46C14.59 20.81 15.27 21 16 21C18.21 21 20 19.21 20 17V15H20C21.21 14.09 22 12.64 22 11M17.5 12.5L16 11L17.5 9.5L19 11L17.5 12.5Z\";\nexport var mdiButterflyOutline = \"M13 21H11V6L9.03 3.97L10 3L12 5L14 3L15 4L13 6V21M14 9H14V7C14.84 6.37 15.88 6 17 6C19.76 6 22 8.24 22 11C22 12.64 21.21 14.09 20 15H20V17C20 19.21 18.21 21 16 21C15.27 21 14.59 20.81 14 20.46V18.46C14.59 18.81 15.27 19 16 19C17.1 19 18 18.1 18 17V13.83C19.17 13.42 20 12.31 20 11C20 9.35 18.67 8 17 8H17C15.88 8 14.84 8.37 14 9M10 9H10C9.16 8.37 8.13 8 7 8H7C5.33 8 4 9.35 4 11C4 12.31 4.84 13.42 6 13.83V17C6 18.1 6.9 19 8 19C8.73 19 9.41 18.81 10 18.46V20.46C9.41 20.81 8.73 21 8 21C5.79 21 4 19.21 4 17V15H4C2.79 14.09 2 12.64 2 11C2 8.24 4.24 6 7 6C8.13 6 9.16 6.37 10 7V9M9 11L7.5 9.5L6 11L7.5 12.5L9 11M18 11L16.5 9.5L15 11L16.5 12.5L18 11Z\";\nexport var mdiButtonCursor = \"M18.1 15.3C18 15.4 17.8 15.5 17.7 15.6L15.3 16L17 19.6C17.2 20 17 20.4 16.6 20.6L13.8 21.9C13.7 22 13.6 22 13.5 22C13.2 22 12.9 21.8 12.8 21.6L11.2 18L9.3 19.5C9.2 19.6 9 19.7 8.8 19.7C8.4 19.7 8 19.4 8 18.9V7.5C8 7 8.3 6.7 8.8 6.7C9 6.7 9.2 6.8 9.3 6.9L18 14.3C18.3 14.5 18.4 15 18.1 15.3M6 12H4V4H20V12H18.4L20.6 13.9C21.4 13.6 21.9 12.9 21.9 12V4C21.9 2.9 21 2 19.9 2H4C2.9 2 2 2.9 2 4V12C2 13.1 2.9 14 4 14H6V12Z\";\nexport var mdiButtonPointer = \"M20 20.5C20 21.3 19.3 22 18.5 22H13C12.6 22 12.3 21.9 12 21.6L8 17.4L8.7 16.6C8.9 16.4 9.2 16.3 9.5 16.3H9.7L12 18V9C12 8.4 12.4 8 13 8S14 8.4 14 9V13.5L15.2 13.6L19.1 15.8C19.6 16 20 16.6 20 17.1V20.5M20 2H4C2.9 2 2 2.9 2 4V12C2 13.1 2.9 14 4 14H8V12H4V4H20V12H18V14H20C21.1 14 22 13.1 22 12V4C22 2.9 21.1 2 20 2Z\";\nexport var mdiCabinAFrame = \"M12 3L4 21H20L12 3M9 19H7.08L9 14.67V19M13 19H11V14H13V19M10.19 12L12 7.92L13.81 12H10.19M15 14.67L16.92 19H15V14.67Z\";\nexport var mdiCableData = \"M7.05 3.5C5.68 4.88 5.68 7.1 7.05 8.47L15.54 16.95C16.12 17.54 16.12 18.5 15.54 19.07C14.95 19.66 14 19.66 13.41 19.07L9.17 14.83L10.23 13.77L6.7 10.23L6.34 10.59L4.93 9.17C4.54 8.78 3.91 8.78 3.5 9.17L2.1 10.59C1.71 11 1.71 11.61 2.1 12L3.5 13.41L3.16 13.77L6.7 17.3L7.76 16.24L12 20.5C13.37 21.85 15.58 21.85 16.95 20.5C18.32 19.12 18.32 16.9 16.95 15.54L8.46 7.05C7.88 6.46 7.88 5.5 8.46 4.93C9.05 4.34 10 4.34 10.59 4.93L14.83 9.17L13.77 10.23L17.3 13.77L17.66 13.41L19.07 14.83C19.46 15.22 20.1 15.22 20.5 14.83L21.9 13.41C22.29 13 22.29 12.39 21.9 12L20.5 10.59L20.84 10.23L17.3 6.7L16.24 7.76L12 3.5C10.63 2.15 8.42 2.15 7.05 3.5M2.81 11.29L4.22 9.88L5.64 11.29L4.22 12.71M18.36 12.71L19.78 11.29L21.19 12.71L19.78 14.12Z\";\nexport var mdiCached = \"M19,8L15,12H18A6,6 0 0,1 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20A8,8 0 0,0 20,12H23M6,12A6,6 0 0,1 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4A8,8 0 0,0 4,12H1L5,16L9,12\";\nexport var mdiCactus = \"M14,16V21H10V18H9A3,3 0 0,1 6,15V12A1,1 0 0,1 7,11A1,1 0 0,1 8,12V15C8,15.56 8.45,16 9,16H10V6A2,2 0 0,1 12,4A2,2 0 0,1 14,6V14H15A1,1 0 0,0 16,13V11A1,1 0 0,1 17,10A1,1 0 0,1 18,11V13A3,3 0 0,1 15,16H14Z\";\nexport var mdiCake = \"M11.5,0.5C12,0.75 13,2.4 13,3.5C13,4.6 12.33,5 11.5,5C10.67,5 10,4.85 10,3.75C10,2.65 11,2 11.5,0.5M18.5,9C21,9 23,11 23,13.5C23,15.06 22.21,16.43 21,17.24V23H12L3,23V17.24C1.79,16.43 1,15.06 1,13.5C1,11 3,9 5.5,9H10V6H13V9H18.5M12,16A2.5,2.5 0 0,0 14.5,13.5H16A2.5,2.5 0 0,0 18.5,16A2.5,2.5 0 0,0 21,13.5A2.5,2.5 0 0,0 18.5,11H5.5A2.5,2.5 0 0,0 3,13.5A2.5,2.5 0 0,0 5.5,16A2.5,2.5 0 0,0 8,13.5H9.5A2.5,2.5 0 0,0 12,16Z\";\nexport var mdiCakeLayered = \"M21,21V17C21,15.89 20.1,15 19,15H18V12C18,10.89 17.1,10 16,10H13V8H11V10H8C6.89,10 6,10.89 6,12V15H5C3.89,15 3,15.89 3,17V21H1V23H23V21M12,7A2,2 0 0,0 14,5C14,4.62 13.9,4.27 13.71,3.97L12,1L10.28,3.97C10.1,4.27 10,4.62 10,5A2,2 0 0,0 12,7Z\";\nexport var mdiCakeVariant = \"M12,6C13.11,6 14,5.1 14,4C14,3.62 13.9,3.27 13.71,2.97L12,0L10.29,2.97C10.1,3.27 10,3.62 10,4A2,2 0 0,0 12,6M16.6,16L15.53,14.92L14.45,16C13.15,17.29 10.87,17.3 9.56,16L8.5,14.92L7.4,16C6.75,16.64 5.88,17 4.96,17C4.23,17 3.56,16.77 3,16.39V21A1,1 0 0,0 4,22H20A1,1 0 0,0 21,21V16.39C20.44,16.77 19.77,17 19.04,17C18.12,17 17.25,16.64 16.6,16M18,9H13V7H11V9H6A3,3 0 0,0 3,12V13.54C3,14.62 3.88,15.5 4.96,15.5C5.5,15.5 6,15.3 6.34,14.93L8.5,12.8L10.61,14.93C11.35,15.67 12.64,15.67 13.38,14.93L15.5,12.8L17.65,14.93C18,15.3 18.5,15.5 19.03,15.5C20.11,15.5 21,14.62 21,13.54V12A3,3 0 0,0 18,9Z\";\nexport var mdiCakeVariantOutline = \"M12 6C13.11 6 14 5.1 14 4C14 3.62 13.9 3.27 13.71 2.97L12 0L10.29 2.97C10.1 3.27 10 3.62 10 4C10 5.1 10.9 6 12 6M18 9H13V7H11V9H6C4.34 9 3 10.34 3 12V21C3 21.55 3.45 22 4 22H20C20.55 22 21 21.55 21 21V12C21 10.34 19.66 9 18 9M19 20H5V17C5.9 17 6.76 16.63 7.4 16L8.5 14.92L9.56 16C10.87 17.3 13.15 17.29 14.45 16L15.53 14.92L16.6 16C17.24 16.63 18.1 17 19 17V20M19 15.5C18.5 15.5 18 15.3 17.65 14.93L15.5 12.8L13.38 14.93C12.64 15.67 11.35 15.67 10.61 14.93L8.5 12.8L6.34 14.93C6 15.29 5.5 15.5 5 15.5V12C5 11.45 5.45 11 6 11H18C18.55 11 19 11.45 19 12V15.5Z\";\nexport var mdiCalculator = \"M7,2H17A2,2 0 0,1 19,4V20A2,2 0 0,1 17,22H7A2,2 0 0,1 5,20V4A2,2 0 0,1 7,2M7,4V8H17V4H7M7,10V12H9V10H7M11,10V12H13V10H11M15,10V12H17V10H15M7,14V16H9V14H7M11,14V16H13V14H11M15,14V16H17V14H15M7,18V20H9V18H7M11,18V20H13V18H11M15,18V20H17V18H15Z\";\nexport var mdiCalculatorVariant = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M13 7.1L14.1 6L15.5 7.4L16.9 6L18 7.1L16.6 8.5L18 9.9L16.9 11L15.5 9.6L14.1 11L13 9.9L14.4 8.5L13 7.1M6.2 7.7H11.2V9.2H6.2V7.7M11.5 16H9.5V18H8V16H6V14.5H8V12.5H9.5V14.5H11.5V16M18 17.2H13V15.7H18V17.2M18 14.8H13V13.3H18V14.8Z\";\nexport var mdiCalculatorVariantOutline = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V5H19V19M6.2 7.7H11.2V9.2H6.2V7.7M13 15.8H18V17.3H13V15.8M13 13.2H18V14.7H13V13.2M8 18H9.5V16H11.5V14.5H9.5V12.5H8V14.5H6V16H8V18M14.1 10.9L15.5 9.5L16.9 10.9L18 9.9L16.6 8.5L18 7.1L16.9 6L15.5 7.4L14.1 6L13 7.1L14.4 8.5L13 9.9L14.1 10.9Z\";\nexport var mdiCalendar = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M17,12H12V17H17V12Z\";\nexport var mdiCalendarAccount = \"M12 9C14 9 15 11.42 13.59 12.84C12.17 14.26 9.75 13.25 9.75 11.25C9.75 10 10.75 9 12 9M16.5 18H7.5V16.88C7.5 15.63 9.5 14.63 12 14.63S16.5 15.63 16.5 16.88M19 19H5V8H19M16 1V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3H18V1H16Z\";\nexport var mdiCalendarAccountOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M12 10C14 10 15 12.42 13.59 13.84C12.17 15.26 9.75 14.25 9.75 12.25C9.75 11 10.75 10 12 10M16.5 17.88V18H7.5V17.88C7.5 16.63 9.5 15.63 12 15.63S16.5 16.63 16.5 17.88Z\";\nexport var mdiCalendarAlert = \"M6 1V3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3H18V1H16V3H8V1H6M5 8H19V19H5V8M11 9V14H13V9H11M11 16V18H13V16H11Z\";\nexport var mdiCalendarAlertOutline = \"M11 16H13V18H11V16M11 10H13V14H11V10M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5Z\";\nexport var mdiCalendarArrowLeft = \"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.89 20.1 3 19 3M19 19H5V8H19V19M12 10V12H16V15H12V17L8 13.5L12 10Z\";\nexport var mdiCalendarArrowRight = \"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.89 20.1 3 19 3M19 19H5V8H19V19M12 17V15H8V12H12V10L16 13.5L12 17Z\";\nexport var mdiCalendarBadge = \"M19.5 16C17.6 16 16 17.6 16 19.5S17.6 23 19.5 23 23 21.4 23 19.5 21.4 16 19.5 16M14.21 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3H6V1H8V3H16V1H18V3H19C20.1 3 21 3.89 21 5V14.21C20.5 14.08 20 14 19.5 14C19.33 14 19.17 14 19 14.03V8H5V19H14.03C14 19.17 14 19.33 14 19.5C14 20 14.08 20.5 14.21 21Z\";\nexport var mdiCalendarBadgeOutline = \"M19.5 16C17.6 16 16 17.6 16 19.5S17.6 23 19.5 23 23 21.4 23 19.5 21.4 16 19.5 16M14 19.5C14 19.33 14 19.17 14.03 19H5V9H19V14.03C19.17 14 19.33 14 19.5 14C20 14 20.5 14.08 21 14.21V5C21 3.9 20.11 3 19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H14.21C14.08 20.5 14 20 14 19.5M5 5H19V7H5V5Z\";\nexport var mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nexport var mdiCalendarBlankMultiple = \"M21 17V8H7V17H21M21 3C22.1 3 23 3.9 23 5V17C23 18.1 22.1 19 21 19H7C5.89 19 5 18.1 5 17V5C5 3.9 5.9 3 7 3H8V1H10V3H18V1H20V3H21M3 21H17V23H3C1.89 23 1 22.1 1 21V9H3V21Z\";\nexport var mdiCalendarBlankOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\";\nexport var mdiCalendarCheck = \"M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M16.53,11.06L15.47,10L10.59,14.88L8.47,12.76L7.41,13.82L10.59,17L16.53,11.06Z\";\nexport var mdiCalendarCheckOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M5 7V5H19V7H5M10.56 17.46L16.5 11.53L15.43 10.47L10.56 15.34L8.45 13.23L7.39 14.29L10.56 17.46Z\";\nexport var mdiCalendarClock = \"M15,13H16.5V15.82L18.94,17.23L18.19,18.53L15,16.69V13M19,8H5V19H9.67C9.24,18.09 9,17.07 9,16A7,7 0 0,1 16,9C17.07,9 18.09,9.24 19,9.67V8M5,21C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0 0,1 21,5V11.1C22.24,12.36 23,14.09 23,16A7,7 0 0,1 16,23C14.09,23 12.36,22.24 11.1,21H5M16,11.15A4.85,4.85 0 0,0 11.15,16C11.15,18.68 13.32,20.85 16,20.85A4.85,4.85 0 0,0 20.85,16C20.85,13.32 18.68,11.15 16,11.15Z\";\nexport var mdiCalendarClockOutline = \"M6 1V3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H11.1C12.36 22.24 14.09 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.36 21 11.1V5C21 3.9 20.11 3 19 3H18V1H16V3H8V1M5 5H19V7H5M5 9H19V9.67C18.09 9.24 17.07 9 16 9C12.13 9 9 12.13 9 16C9 17.07 9.24 18.09 9.67 19H5M16 11.15C18.68 11.15 20.85 13.32 20.85 16C20.85 18.68 18.68 20.85 16 20.85C13.32 20.85 11.15 18.68 11.15 16C11.15 13.32 13.32 11.15 16 11.15M15 13V16.69L18.19 18.53L18.94 17.23L16.5 15.82V13Z\";\nexport var mdiCalendarCollapseHorizontal = \"M19 19H5V8H19M16 1V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3H18V1M11 14L8 11V13H6V15H8V17L11 14M18 13H16V11L13 14L16 17V15H18V13Z\";\nexport var mdiCalendarCollapseHorizontalOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5M16 11L13 14L16 17V15H18V13H16V11M8 13H6V15H8V17L11 14L8 11V13Z\";\nexport var mdiCalendarCursor = \"M22.86 17.74C22.77 17.85 22.65 17.91 22.53 17.94L20.66 18.3L21.95 21.14C22.11 21.43 21.97 21.79 21.67 21.93L19.53 22.94C19.44 23 19.36 23 19.27 23C19.05 23 18.84 22.88 18.74 22.66L17.45 19.83L15.96 21.04C15.86 21.12 15.74 21.17 15.59 21.17C15.26 21.17 15 20.9 15 20.57V11.6C15 11.27 15.26 11 15.59 11C15.74 11 15.88 11.05 16 11.13L22.77 16.89C23.04 17.12 23.07 17.5 22.86 17.74M12 15V10H7V15H12M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H13V19H5V8H19V11.06L21 12.76V5C21 3.9 20.1 3 19 3Z\";\nexport var mdiCalendarCursorOutline = \"M5 9H19V11.1L21 12.8V5C21 3.9 20.1 3 19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H13V19H5V9M19 5V7H5V5H19M7 16V11H12V16H7M22.9 17.7C22.8 17.8 22.7 17.9 22.6 17.9L20.7 18.3L22 21.1C22.2 21.4 22 21.7 21.7 21.9L19.6 22.9C19.4 23 19.4 23 19.3 23C19.1 23 18.9 22.9 18.8 22.7L17.5 19.9L16 21C15.9 21.1 15.8 21.1 15.6 21.1C15.3 21.1 15 20.8 15 20.5V11.5C15 11.2 15.3 10.9 15.6 10.9C15.7 10.9 15.9 11 16 11L22.8 16.8C23 17.1 23.1 17.5 22.9 17.7Z\";\nexport var mdiCalendarEdit = \"M19,3H18V1H16V3H8V1H6V3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H10V19H5V8H19V9H21V5A2,2 0 0,0 19,3M21.7,13.35L20.7,14.35L18.65,12.35L19.65,11.35C19.85,11.14 20.19,11.13 20.42,11.35L21.7,12.63C21.89,12.83 21.89,13.15 21.7,13.35M12,18.94L18.07,12.88L20.12,14.88L14.06,21H12V18.94Z\";\nexport var mdiCalendarEditOutline = \"M21.7 13.35L20.7 14.35L18.65 12.35L19.65 11.35C19.85 11.14 20.19 11.13 20.42 11.35L21.7 12.63C21.89 12.83 21.89 13.15 21.7 13.35M12 18.94V21H14.06L20.12 14.88L18.07 12.88L12 18.94M5 19H10V21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5V9H5V19M5 5V7H19V5H5Z\";\nexport var mdiCalendarEnd = \"M22 14V22H20V18L16 22V19H11V17H16V14L20 18V14H22M5 19L9 19V21L5 21C3.9 21 3 20.1 3 19V5C3 3.89 3.9 3 5 3H6V.998H8V3H16V.998H18V3H19C20.11 3 21 3.89 21 5L21 12H19V8H5V19Z\";\nexport var mdiCalendarEndOutline = \"M5 9H19V12H21V5C21 3.9 20.1 3 19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H9V19H5V9M19 5V7H5V5H19M16 17H11V19H16V22L20 18L16 14V17M20 14V22H22V14H20Z\";\nexport var mdiCalendarExpandHorizontal = \"M19 19H5V8H19M16 1V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3H18V1M18 14L15 11V13H9V11L6 14L9 17V15H15V17L18 14Z\";\nexport var mdiCalendarExpandHorizontalOutline = \"M15 13H9V11L6 14L9 17V15H15V17L18 14L15 11V13M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5Z\";\nexport var mdiCalendarExport = \"M12 22L16 18H13V12H11V18H8L12 22M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H8L6 19H5V8H19V19H18L16 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3Z\";\nexport var mdiCalendarExportOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H8L6 19H5V9H19V19H18L16 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M5 7V5H19V7H5M13 18V12H11V18H8L12 22L16 18H13Z\";\nexport var mdiCalendarFilter = \"M6 1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5V11H19V8H5V19H15V21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H6V1M17 21L18.8 22.77C19.3 23.27 20 22.87 20 22.28V18L22.8 14.6C23.3 13.9 22.8 13 22 13H15C14.2 13 13.7 14 14.2 14.6L17 18V21\";\nexport var mdiCalendarFilterOutline = \"M19 3H18V1H16V3H8V1H6V3H4.75C4.31 3.07 3.9 3.27 3.58 3.58C3.27 3.9 3.07 4.31 3 4.75V19.25C3.07 19.69 3.27 20.1 3.58 20.42C3.9 20.73 4.31 20.93 4.75 21H15V19H5V9H19V11H21V5C21 3.89 20.11 3 19 3M19 7H5V5H19V7M17 21L18.8 22.77C19.3 23.27 20 22.87 20 22.28V18L22.8 14.6C23.3 13.9 22.8 13 22 13H15C14.2 13 13.7 14 14.2 14.6L17 18V21\";\nexport var mdiCalendarHeart = \"M19 19V8H5V19H19M16 1H18V3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1M12 17.17L11.42 16.64C9.36 14.77 8 13.54 8 12.03C8 10.8 8.97 9.83 10.2 9.83C10.9 9.83 11.56 10.15 12 10.66C12.44 10.15 13.1 9.83 13.8 9.83C15.03 9.83 16 10.8 16 12.03C16 13.54 14.64 14.77 12.58 16.64L12 17.17Z\";\nexport var mdiCalendarHeartOutline = \"M16 12.2C16 13.71 14.64 14.94 12.58 16.81L12 17.34L11.42 16.81C9.36 14.94 8 13.71 8 12.2C8 10.97 8.97 10 10.2 10C10.9 10 11.56 10.32 12 10.83C12.44 10.32 13.1 10 13.8 10C15.03 10 16 10.97 16 12.2M21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 5V7H19V5H5M19 19V9H5V19H19Z\";\nexport var mdiCalendarImport = \"M12 12L8 16H11V22H13V16H16M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H9V19H5V8H19V19H15V21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3Z\";\nexport var mdiCalendarImportOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H9V19H5V9H19V19H15V21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M5 7V5H19V7H5M12 12L8 16H11V22H13V16H16L12 12Z\";\nexport var mdiCalendarLock = \"M12 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.1 3 21 3.9 21 5V12C20.4 11.6 19.7 11.2 19 11.1V8H5V19H12V21M22 18.3V21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V15.5C15.2 14.1 16.6 13 18 13S20.8 14.1 20.8 15.5V17C21.4 17 22 17.6 22 18.3M19.5 15.5C19.5 14.7 18.8 14.2 18 14.2S16.5 14.7 16.5 15.5V17H19.5V15.5Z\";\nexport var mdiCalendarLockOpen = \"M12 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.1 3 21 3.9 21 5V11C20.4 10.6 19.7 10.2 19 10.1V8H5V19H12V21M22 18.3C22 17.6 21.4 17 20.8 17H16.5V14.5C16.5 13.7 17.2 13.2 18 13.2S19.5 13.7 19.5 14.5V15H20.8V14.5C20.8 13.1 19.4 12 18 12S15.2 13.1 15.2 14.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3Z\";\nexport var mdiCalendarLockOpenOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H12V19H5V9H19V10.1C19.7 10.3 20.4 10.6 21 11V5C21 3.9 20.1 3 19 3M19 7H5V5H19V7M22 21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V14.5C15.2 13.1 16.6 12 18 12S20.8 13.1 20.8 14.5V15H19.5V14.5C19.5 13.7 18.8 13.2 18 13.2S16.5 13.7 16.5 14.5V17H20.8C21.4 17 22 17.6 22 18.3V21.8Z\";\nexport var mdiCalendarLockOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H12V19H5V9H19V11C19.7 11.2 20.4 11.5 21 11.9V5C21 3.9 20.1 3 19 3M19 7H5V5H19V7M20.8 17V15.5C20.8 14.1 19.4 13 18 13S15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2S19.5 14.7 19.5 15.5V17Z\";\nexport var mdiCalendarMinus = \"M19 19V8H5V19H19M16 1H18V3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.89 3 5 3H6V1H8V3H16V1M16 12.5V14.5H8V12.5H16Z\";\nexport var mdiCalendarMinusOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5M8 13H16V15H8V13Z\";\nexport var mdiCalendarMonth = \"M9,10V12H7V10H9M13,10V12H11V10H13M17,10V12H15V10H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H6V1H8V3H16V1H18V3H19M19,19V8H5V19H19M9,14V16H7V14H9M13,14V16H11V14H13M17,14V16H15V14H17Z\";\nexport var mdiCalendarMonthOutline = \"M7 11H9V13H7V11M21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 7H19V5H5V7M19 19V9H5V19H19M15 13V11H17V13H15M11 13V11H13V13H11M7 15H9V17H7V15M15 17V15H17V17H15M11 17V15H13V17H11Z\";\nexport var mdiCalendarMultiple = \"M21,17V8H7V17H21M21,3A2,2 0 0,1 23,5V17A2,2 0 0,1 21,19H7C5.89,19 5,18.1 5,17V5A2,2 0 0,1 7,3H8V1H10V3H18V1H20V3H21M3,21H17V23H3C1.89,23 1,22.1 1,21V9H3V21M19,15H15V11H19V15Z\";\nexport var mdiCalendarMultipleCheck = \"M21,17V8H7V17H21M21,3A2,2 0 0,1 23,5V17A2,2 0 0,1 21,19H7C5.89,19 5,18.1 5,17V5A2,2 0 0,1 7,3H8V1H10V3H18V1H20V3H21M17.53,11.06L13.09,15.5L10.41,12.82L11.47,11.76L13.09,13.38L16.47,10L17.53,11.06M3,21H17V23H3C1.89,23 1,22.1 1,21V9H3V21Z\";\nexport var mdiCalendarMultiselect = \"M19,19V8H5V19H19M16,1H18V3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1M7,10H9V12H7V10M15,10H17V12H15V10M11,14H13V16H11V14M15,14H17V16H15V14Z\";\nexport var mdiCalendarMultiselectOutline = \"M7 11H9V13H7V11M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5M11 15H13V17H11V15M15 15H17V17H15V15M15 11H17V13H15V11Z\";\nexport var mdiCalendarOutline = \"M12 12H17V17H12V12M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5Z\";\nexport var mdiCalendarPlus = \"M19 19V8H5V19H19M16 1H18V3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.89 3 5 3H6V1H8V3H16V1M11 9.5H13V12.5H16V14.5H13V17.5H11V14.5H8V12.5H11V9.5Z\";\nexport var mdiCalendarPlusOutline = \"M13 13H16V15H13V18H11V15H8V13H11V10H13V13M21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.89 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 5V7H19V5H5M19 19V9H5V19H19Z\";\nexport var mdiCalendarQuestion = \"M6,1V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H18V1H16V3H8V1H6M5,8H19V19H5V8M12.19,9C11.32,9 10.62,9.2 10.08,9.59C9.56,10 9.3,10.57 9.31,11.36L9.32,11.39H11.25C11.26,11.09 11.35,10.86 11.53,10.7C11.71,10.55 11.93,10.47 12.19,10.47C12.5,10.47 12.76,10.57 12.94,10.75C13.12,10.94 13.2,11.2 13.2,11.5C13.2,11.82 13.13,12.09 12.97,12.32C12.83,12.55 12.62,12.75 12.36,12.91C11.85,13.25 11.5,13.55 11.31,13.82C11.11,14.08 11,14.5 11,15H13C13,14.69 13.04,14.44 13.13,14.26C13.22,14.08 13.39,13.9 13.64,13.74C14.09,13.5 14.46,13.21 14.75,12.81C15.04,12.41 15.19,12 15.19,11.5C15.19,10.74 14.92,10.13 14.38,9.68C13.85,9.23 13.12,9 12.19,9M11,16V18H13V16H11Z\";\nexport var mdiCalendarQuestionOutline = \"M11.95 10C11.21 10 10.61 10.18 10.15 10.5C9.71 10.89 9.5 11.4 9.5 12.1L9.5 12.12H11.15C11.16 11.86 11.24 11.65 11.39 11.5C11.54 11.38 11.73 11.31 11.95 11.31C12.21 11.31 12.43 11.4 12.59 11.56C12.74 11.73 12.81 11.96 12.81 12.22C12.81 12.5 12.75 12.75 12.61 12.95C12.5 13.16 12.31 13.33 12.09 13.5C11.66 13.78 11.36 14.05 11.2 14.29C11.03 14.5 10.94 14.89 10.94 15.33H12.64C12.64 15.06 12.67 14.84 12.75 14.68C12.83 14.5 12.97 14.36 13.18 14.21C13.57 14 13.88 13.74 14.13 13.39C14.37 13.03 14.5 12.67 14.5 12.22C14.5 11.55 14.27 11 13.81 10.61C13.36 10.2 12.74 10 11.95 10M10.94 16.22V18H12.64V16.22H10.94M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 5V7H5V5H19M5 19V9H19V19H5Z\";\nexport var mdiCalendarRange = \"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\";\nexport var mdiCalendarRangeOutline = \"M7 11H9V13H7V11M21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 7H19V5H5V7M19 19V9H5V19H19M15 13H17V11H15V13M11 13H13V11H11V13Z\";\nexport var mdiCalendarRefresh = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H14C13.4 20.5 12.9 19.8 12.5 19H5V8H19V10.6C19.7 10.7 20.4 10.9 21 11.3V5C21 3.9 20.1 3 19 3M18 12.5C19.1 12.5 20.1 12.9 20.8 13.7L22 12.5V16.5H18L19.8 14.7C19.3 14.3 18.7 14 18 14C16.6 14 15.5 15.1 15.5 16.5S16.6 19 18 19C18.8 19 19.5 18.6 20 18H21.7C21.1 19.5 19.7 20.5 18 20.5C15.8 20.5 14 18.7 14 16.5S15.8 12.5 18 12.5Z\";\nexport var mdiCalendarRefreshOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H14C13.4 20.5 12.9 19.8 12.5 19H5V9H19V10.6C19.7 10.7 20.4 10.9 21 11.3V5C21 3.9 20.1 3 19 3M19 7H5V5H19M18 12.5C19.1 12.5 20.1 12.9 20.8 13.7L22 12.5V16.5H18L19.8 14.7C19.3 14.3 18.7 14 18 14C16.6 14 15.5 15.1 15.5 16.5S16.6 19 18 19C18.8 19 19.5 18.6 20 18H21.7C21.1 19.5 19.7 20.5 18 20.5C15.8 20.5 14 18.7 14 16.5S15.8 12.5 18 12.5Z\";\nexport var mdiCalendarRemove = \"M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M9.31,17L11.75,14.56L14.19,17L15.25,15.94L12.81,13.5L15.25,11.06L14.19,10L11.75,12.44L9.31,10L8.25,11.06L10.69,13.5L8.25,15.94L9.31,17Z\";\nexport var mdiCalendarRemoveOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M5 7V5H19V7H5M8.23 16.41L9.29 17.47L11.73 15.03L14.17 17.47L15.23 16.41L12.79 13.97L15.23 11.53L14.17 10.47L11.73 12.91L9.29 10.47L8.23 11.53L10.67 13.97L8.23 16.41Z\";\nexport var mdiCalendarSearch = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M19,8H5V19H9.5C9.81,19.75 10.26,20.42 10.81,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0 0,1 21,5V13.03C20.5,12.22 19.8,11.54 19,11V8Z\";\nexport var mdiCalendarSearchOutline = \"M19.3 18.9C19.7 18.2 20 17.4 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.4 21 17.2 20.8 17.9 20.3L21 23.4L22.4 22L19.3 18.9M15.5 19C14.1 19 13 17.9 13 16.5S14.1 14 15.5 14 18 15.1 18 16.5 16.9 19 15.5 19M5 19V9H19V11C19.8 11.5 20.5 12.2 21 13V5C21 3.9 20.1 3 19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H10.8C10.2 20.4 9.8 19.8 9.5 19H5M19 5V7H5V5H19Z\";\nexport var mdiCalendarStar = \"M19 19H5V8H19M16 1V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3H18V1M10.88 12H7.27L10.19 14.11L9.08 17.56L12 15.43L14.92 17.56L13.8 14.12L16.72 12H13.12L12 8.56L10.88 12Z\";\nexport var mdiCalendarStarFourPoints = \"M10.74 12.25L12 9.5L13.25 12.25L16 13.5L13.25 14.76L12 17.5L10.74 14.76L8 13.5L10.74 12.25M16 3V1H18V3H19C19.53 3 20.04 3.21 20.41 3.59C20.79 3.96 21 4.47 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 4.47 3.21 3.96 3.59 3.59C3.96 3.21 4.47 3 5 3H6V1H8V3H16M5 8V19H19V8H5Z\";\nexport var mdiCalendarStarOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7M11 13H7.8L10.4 15L9.4 18L12 16.2L14.6 18L13.6 15L16.2 13H13L12 10L11 13Z\";\nexport var mdiCalendarStart = \"M2 14H4V17H9V14L13 18L9 22V19H4V22H2V14M19 19V8H5V12H3L3 5C3 3.89 3.89 3 5 3H6V.998H8V3H16V.998H18V3H19C20.1 3 21 3.89 21 5V19C21 20.1 20.1 21 19 21L12.83 21L14.83 19L19 19Z\";\nexport var mdiCalendarStartOutline = \"M13 18L9 14V17H4V14H2V22H4V19H9V22L13 18M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V12H5V9H19V19H14.8L12.8 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M5 7V5H19V7H5Z\";\nexport var mdiCalendarSync = \"M18,11V12.5C21.19,12.5 23.09,16.05 21.33,18.71L20.24,17.62C21.06,15.96 19.85,14 18,14V15.5L15.75,13.25L18,11M18,22V20.5C14.81,20.5 12.91,16.95 14.67,14.29L15.76,15.38C14.94,17.04 16.15,19 18,19V17.5L20.25,19.75L18,22M19,3H18V1H16V3H8V1H6V3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H14C13.36,20.45 12.86,19.77 12.5,19H5V8H19V10.59C19.71,10.7 20.39,10.94 21,11.31V5A2,2 0 0,0 19,3Z\";\nexport var mdiCalendarSyncOutline = \"M18,11V12.5C21.19,12.5 23.09,16.05 21.33,18.71L20.24,17.62C21.06,15.96 19.85,14 18,14V15.5L15.75,13.25L18,11M18,22V20.5C14.81,20.5 12.91,16.95 14.67,14.29L15.76,15.38C14.94,17.04 16.15,19 18,19V17.5L20.25,19.75L18,22M19,3H18V1H16V3H8V1H6V3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H14C13.36,20.45 12.86,19.77 12.5,19H5V9H19V10.59C19.71,10.7 20.39,10.94 21,11.31V5A2,2 0 0,0 19,3M19,7H5V5H19\";\nexport var mdiCalendarText = \"M14,14H7V16H14M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M17,10H7V12H17V10Z\";\nexport var mdiCalendarTextOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M5 7V5H19V7H5M7 11H17V13H7V11M7 15H14V17H7V15Z\";\nexport var mdiCalendarToday = \"M7,10H12V15H7M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiCalendarTodayOutline = \"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M7 11H12V16H7\";\nexport var mdiCalendarWeek = \"M6 1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.89 3 5 3H6V1M5 8V19H19V8H5M7 10H17V12H7V10Z\";\nexport var mdiCalendarWeekBegin = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M9,10H7V17H9V10Z\";\nexport var mdiCalendarWeekBeginOutline = \"M19 3C20.11 3 21 3.89 21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.9 3 5 3H6V1H8V3H16V1H18V3H19M19 19V9H5V19H19M19 7V5H5V7H19M7 11H9V17H7V11\";\nexport var mdiCalendarWeekOutline = \"M5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.89 21 5V19C21 20.1 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.9 3 5 3M5 19H19V9H5V19M5 7H19V5H5V7M17 11V13H7V11H17\";\nexport var mdiCalendarWeekend = \"M19 19V8H5V19H19M16 1H18V3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1M7 17V10H9V17H7M15 10H17V17H15V10Z\";\nexport var mdiCalendarWeekendOutline = \"M19 3C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19M19 19V9H5V19H19M19 7V5H5V7H19M7 11H9V17H7V11M15 11H17V17H15V11Z\";\nexport var mdiCallMade = \"M9,5V7H15.59L4,18.59L5.41,20L17,8.41V15H19V5\";\nexport var mdiCallMerge = \"M17,20.41L18.41,19L15,15.59L13.59,17M7.5,8H11V13.59L5.59,19L7,20.41L13,14.41V8H16.5L12,3.5\";\nexport var mdiCallMissed = \"M19.59,7L12,14.59L6.41,9H11V7H3V15H5V10.41L12,17.41L21,8.41\";\nexport var mdiCallReceived = \"M20,5.41L18.59,4L7,15.59V9H5V19H15V17H8.41\";\nexport var mdiCallSplit = \"M14,4L16.29,6.29L13.41,9.17L14.83,10.59L17.71,7.71L20,10V4M10,4H4V10L6.29,7.71L11,12.41V20H13V11.59L7.71,6.29\";\nexport var mdiCamcorder = \"M7 2C4.24 2 2 4.24 2 7V20C2 21.1 2.9 22 4 22H10C11.1 22 12 21.1 12 20V7C12 4.24 9.76 2 7 2M5 20C4.45 20 4 19.55 4 19S4.45 18 5 18 6 18.45 6 19 5.55 20 5 20M7 10C5.34 10 4 8.66 4 7S5.34 4 7 4 10 5.34 10 7 8.66 10 7 10M22 9V14C22 15.1 21.1 16 20 16H13V14H20V9H13V7H20C21.1 7 22 7.9 22 9Z\";\nexport var mdiCamcorderOff = \"M22.1 21.5L9.4 8.8L2.4 1.8L1.1 3L2.7 4.6C2.2 5.3 2 6.1 2 7V20C2 21.1 2.9 22 4 22H10C11.1 22 12 21.1 12 20V13.9L13 14.9V16H14.1L20.8 22.7L22.1 21.5M5 20C4.5 20 4 19.5 4 19S4.5 18 5 18 6 18.5 6 19 5.5 20 5 20M7 10C5.3 10 4 8.7 4 7C4 6.7 4.1 6.4 4.2 6.1L8 9.9C7.6 9.9 7.3 10 7 10M7.2 4L5.5 2.3C6 2.1 6.5 2 7 2C9.8 2 12 4.2 12 7V8.8L10 6.8C9.9 5.3 8.7 4.1 7.2 4M20 9H13V7H20C21.1 7 22 7.9 22 9V14C22 15.1 21.1 16 20 16H19.2L17.2 14H20V9Z\";\nexport var mdiCamera = \"M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z\";\nexport var mdiCameraAccount = \"M4,5H7L9,3H15L17,5H20A2,2 0 0,1 22,7V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V7A2,2 0 0,1 4,5M16,17V16C16,14.67 13.33,14 12,14C10.67,14 8,14.67 8,16V17H16M12,9A2,2 0 0,0 10,11A2,2 0 0,0 12,13A2,2 0 0,0 14,11A2,2 0 0,0 12,9Z\";\nexport var mdiCameraBurst = \"M1,5H3V19H1V5M5,5H7V19H5V5M22,5H10A1,1 0 0,0 9,6V18A1,1 0 0,0 10,19H22A1,1 0 0,0 23,18V6A1,1 0 0,0 22,5M11,17L13.5,13.85L15.29,16L17.79,12.78L21,17H11Z\";\nexport var mdiCameraControl = \"M9,12C9,11.19 9.3,10.5 9.89,9.89C10.5,9.3 11.19,9 12,9C12.81,9 13.5,9.3 14.11,9.89C14.7,10.5 15,11.19 15,12C15,12.81 14.7,13.5 14.11,14.11C13.5,14.7 12.81,15 12,15C11.19,15 10.5,14.7 9.89,14.11C9.3,13.5 9,12.81 9,12M5.53,8.44L7.31,10.22L5.53,12L7.31,13.78L5.53,15.56L2,12L5.53,8.44M8.44,18.47L10.22,16.69L12,18.47L13.78,16.69L15.56,18.47L12,22L8.44,18.47M18.47,15.56L16.69,13.78L18.47,12L16.69,10.22L18.47,8.44L22,12L18.47,15.56M15.56,5.53L13.78,7.31L12,5.53L10.22,7.31L8.44,5.53L12,2L15.56,5.53Z\";\nexport var mdiCameraDocument = \"M21 7V22H3V20H19V7H14.72C14.38 7.6 13.74 8 13 8C13 9.11 12.1 10 11 10H8C6.9 10 6 9.1 6 8V4C6 2.9 6.9 2 8 2H11C12.1 2 13 2.9 13 4C13.74 4 14.38 4.41 14.72 5H19C20.11 5 21 5.89 21 7M6 15H13L11 11H8L6 15Z\";\nexport var mdiCameraDocumentOff = \"M20.84 22.73L20.11 22H3V20H18.11L12.89 14.78L13 15H6L8 11H9.11L8.11 10H8C6.9 10 6 9.1 6 8V7.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M13 8C13.74 8 14.38 7.6 14.72 7H19V15.8L21 17.8V7C21 5.89 20.11 5 19 5H14.72C14.38 4.41 13.74 4 13 4C13 2.9 12.1 2 11 2H8C7.24 2 6.59 2.43 6.25 3.05L12.5 9.3C12.81 8.95 13 8.5 13 8Z\";\nexport var mdiCameraEnhance = \"M9,3L7.17,5H4A2,2 0 0,0 2,7V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V7A2,2 0 0,0 20,5H16.83L15,3M12,18A5,5 0 0,1 7,13A5,5 0 0,1 12,8A5,5 0 0,1 17,13A5,5 0 0,1 12,18M12,17L13.25,14.25L16,13L13.25,11.75L12,9L10.75,11.75L8,13L10.75,14.25\";\nexport var mdiCameraEnhanceOutline = \"M12,10L11.06,12.06L9,13L11.06,13.94L12,16L12.94,13.94L15,13L12.94,12.06L12,10M20,5H16.83L15,3H9L7.17,5H4A2,2 0 0,0 2,7V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V7A2,2 0 0,0 20,5M20,19H4V7H8.05L8.64,6.35L9.88,5H14.12L15.36,6.35L15.95,7H20V19M12,8A5,5 0 0,0 7,13A5,5 0 0,0 12,18A5,5 0 0,0 17,13A5,5 0 0,0 12,8M12,16A3,3 0 0,1 9,13A3,3 0 0,1 12,10A3,3 0 0,1 15,13A3,3 0 0,1 12,16Z\";\nexport var mdiCameraFlip = \"M20 5H17L15 3H9L7 5H4C2.9 5 2 5.9 2 7V19C2 20.11 2.9 21 4 21H20C21.11 21 22 20.11 22 19V7C22 5.9 21.11 5 20 5M5 12H7.1C7.65 9.29 10.29 7.55 13 8.1C13.76 8.25 14.43 8.59 15 9L13.56 10.45C13.11 10.17 12.58 10 12 10C10.74 10 9.6 10.8 9.18 12H11L8 15L5 12M16.91 14C16.36 16.71 13.72 18.45 11 17.9C10.25 17.74 9.58 17.41 9 17L10.44 15.55C10.9 15.83 11.43 16 12 16C13.27 16 14.41 15.2 14.83 14H13L16 11L19 14H16.91Z\";\nexport var mdiCameraFlipOutline = \"M20 5H16.83L15 3H9L7.17 5H4C2.9 5 2 5.9 2 7V19C2 20.11 2.9 21 4 21H20C21.11 21 22 20.11 22 19V7C22 5.9 21.11 5 20 5M20 19H4V7H8.05L9.88 5H14.12L16 7H20V19M5 12H7.1C7.65 9.29 10.29 7.55 13 8.1C13.76 8.25 14.43 8.59 15 9L13.56 10.45C13.11 10.17 12.58 10 12 10C10.74 10 9.6 10.8 9.18 12H11L8 15L5 12M16.91 14C16.36 16.71 13.72 18.45 11 17.9C10.25 17.74 9.58 17.41 9 17L10.44 15.55C10.9 15.83 11.43 16 12 16C13.27 16 14.41 15.2 14.83 14H13L16 11L19 14H16.91Z\";\nexport var mdiCameraFront = \"M7,2H17V12.5C17,10.83 13.67,10 12,10C10.33,10 7,10.83 7,12.5M17,0H7A2,2 0 0,0 5,2V16A2,2 0 0,0 7,18H17A2,2 0 0,0 19,16V2A2,2 0 0,0 17,0M12,8A2,2 0 0,0 14,6A2,2 0 0,0 12,4A2,2 0 0,0 10,6A2,2 0 0,0 12,8M14,20V22H19V20M10,20H5V22H10V24L13,21L10,18V20Z\";\nexport var mdiCameraFrontVariant = \"M6,0H18A2,2 0 0,1 20,2V22A2,2 0 0,1 18,24H6A2,2 0 0,1 4,22V2A2,2 0 0,1 6,0M12,6A3,3 0 0,1 15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6M11,1V3H13V1H11M6,4V16.5C6,15.12 8.69,14 12,14C15.31,14 18,15.12 18,16.5V4H6M13,18H9V20H13V22L16,19L13,16V18Z\";\nexport var mdiCameraGopro = \"M20,5H15A2,2 0 0,0 13,7V12A2,2 0 0,0 15,14H20A2,2 0 0,0 22,12V7A2,2 0 0,0 20,5M17.5,12.5A3,3 0 0,1 14.5,9.5A3,3 0 0,1 17.5,6.5A3,3 0 0,1 20.5,9.5A3,3 0 0,1 17.5,12.5M17.5,11A1.5,1.5 0 0,1 16,9.5A1.5,1.5 0 0,1 17.5,8A1.5,1.5 0 0,1 19,9.5A1.5,1.5 0 0,1 17.5,11M12,15V5H4A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V15H12M10,12H4V7H10V12Z\";\nexport var mdiCameraImage = \"M4,5H7L9,3H15L17,5H20A2,2 0 0,1 22,7V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V7A2,2 0 0,1 4,5M13.09,9.45L11.05,12.18L12.6,14.25L11.73,14.91L9.27,11.64L6,16H18L13.09,9.45Z\";\nexport var mdiCameraIris = \"M13.73,15L9.83,21.76C10.53,21.91 11.25,22 12,22C14.4,22 16.6,21.15 18.32,19.75L14.66,13.4M2.46,15C3.38,17.92 5.61,20.26 8.45,21.34L12.12,15M8.54,12L4.64,5.25C3,7 2,9.39 2,12C2,12.68 2.07,13.35 2.2,14H9.69M21.8,10H14.31L14.6,10.5L19.36,18.75C21,16.97 22,14.6 22,12C22,11.31 21.93,10.64 21.8,10M21.54,9C20.62,6.07 18.39,3.74 15.55,2.66L11.88,9M9.4,10.5L14.17,2.24C13.47,2.09 12.75,2 12,2C9.6,2 7.4,2.84 5.68,4.25L9.34,10.6L9.4,10.5Z\";\nexport var mdiCameraLock = \"M4 4H7L9 2H15L17 4H20C21.11 4 22 4.89 22 6V12C21.16 11.37 20.13 11 19 11C18.21 11 17.46 11.18 16.79 11.5C16.18 9.22 14.27 7 12 7C9.24 7 7 9.24 7 12C7 14.76 9.24 17 12 17C12.42 17 12.84 16.95 13.23 16.85C13.08 17.2 13 17.59 13 18V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4M12 9C13.66 9 15 10.34 15 12C15 13.66 13.66 15 12 15C10.34 15 9 13.66 9 12C9 10.34 10.34 9 12 9M23 18.3V21.8C23 22.4 22.4 23 21.7 23H16.2C15.6 23 15 22.4 15 21.7V18.2C15 17.6 15.6 17 16.2 17V15.5C16.2 14.1 17.6 13 19 13C20.4 13 21.8 14.1 21.8 15.5V17C22.4 17 23 17.6 23 18.3M20.5 15.5C20.5 14.7 19.8 14.2 19 14.2C18.2 14.2 17.5 14.7 17.5 15.5V17H20.5V15.5Z\";\nexport var mdiCameraLockOpen = \"M15 12C14.6 12.6 14.4 13.3 14.3 14C13.7 14.6 12.9 15 12 15C10.3 15 9 13.7 9 12S10.3 9 12 9 15 10.3 15 12M13 18.2C13 17.7 13.1 17.2 13.4 16.8C12.9 16.9 12.5 17 12 17C9.2 17 7 14.8 7 12S9.2 7 12 7C14.3 7 16.1 8.5 16.8 10.6C17.5 10.3 18.2 10 19 10C20.1 10 21.2 10.4 22 11V6C22 4.9 21.1 4 20 4H17L15 2H9L7 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13V18.2M21.8 17H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V15H21.8V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V17C15.6 17 15 17.6 15 18.2V21.7C15 22.4 15.6 23 16.2 23H21.7C22.4 23 23 22.4 23 21.8V18.3C23 17.6 22.4 17 21.8 17Z\";\nexport var mdiCameraLockOpenOutline = \"M13 20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H7.2L9 2H15L16.8 4H20C21.1 4 22 4.9 22 6V11C21.4 10.6 20.7 10.2 20 10.1V6H16L14.2 4H9.9L8 6H4V18H13V20M12 7C9.2 7 7 9.2 7 12S9.2 17 12 17C12.5 17 12.9 16.9 13.4 16.8C13.6 16.4 13.9 16 14.2 15.8V14.6C14.2 14.4 14.2 14.2 14.3 14.1C13.7 14.7 12.9 15.1 12 15.1C10.3 15.1 9 13.8 9 12.1S10.3 9.1 12 9.1 15 10.4 15 12.1V12.2C15.4 11.6 16.1 11.1 16.8 10.7C16.1 8.5 14.3 7 12 7M21.8 17H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V15H21.8V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V17C15.6 17 15 17.6 15 18.2V21.7C15 22.4 15.6 23 16.2 23H21.7C22.4 23 23 22.4 23 21.8V18.3C23 17.6 22.4 17 21.8 17Z\";\nexport var mdiCameraLockOutline = \"M23 18.3V21.8C23 22.4 22.4 23 21.7 23H16.2C15.6 23 15 22.4 15 21.7V18.2C15 17.6 15.6 17 16.2 17V15.5C16.2 14.1 17.6 13 19 13C20.4 13 21.8 14.1 21.8 15.5V17C22.4 17 23 17.6 23 18.3M20.5 15.5C20.5 14.7 19.8 14.2 19 14.2C18.2 14.2 17.5 14.7 17.5 15.5V17H20.5V15.5M20 4C21.1 4 22 4.9 22 6V12C21.42 11.56 20.74 11.25 20 11.1V6H15.95L14.12 4H9.88L8.05 6H4V18H13V20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H7.17L9 2H15L16.83 4H20M12 7C14.57 7 16.68 8.94 16.97 11.43C15.29 12.18 14.1 13.83 14 15.76C13.67 16.06 13.4 16.43 13.23 16.85C12.84 16.95 12.42 17 12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7M12 15C13.65 15 15 13.65 15 12C15 10.35 13.65 9 12 9C10.35 9 9 10.35 9 12C9 13.65 10.35 15 12 15Z\";\nexport var mdiCameraMarker = \"M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M9 2L7 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H14.5C13.9 19.1 13.4 18.1 13.1 16.9C12.8 17 12.4 17 12 17C9.2 17 7 14.8 7 12S9.2 7 12 7C14.1 7 16 8.3 16.7 10.3C17.3 10.1 17.9 10 18.5 10C19.8 10 21 10.5 22 11.3V6C22 4.9 21.1 4 20 4H17L15 2H9M11.9 9C10.3 9 9 10.4 9 12C9 13.7 10.3 15 12 15C12.4 15 12.7 14.9 13 14.8C13.2 13.4 13.9 12.2 14.9 11.3C14.6 10 13.4 9 11.9 9C12 9 12 9 11.9 9Z\";\nexport var mdiCameraMarkerOutline = \"M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M9 2L7.2 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H14.5C14.1 19.4 13.7 18.7 13.5 18H4V6H8.1L9.9 4H14.1L15.9 6H20V10.2C20.7 10.4 21.4 10.8 22 11.3V6C22 4.9 21.1 4 20 4H16.8L15 2H9M12 7C9.2 7 7 9.2 7 12S9.2 17 12 17C12.4 17 12.8 17 13.2 16.9C13.1 16.4 13 16 13 15.5V14.8C12.7 14.9 12.3 15 12 15C10.3 15 9 13.7 9 12S10.3 9 12 9C13.4 9 14.6 10 14.9 11.3C15.4 10.9 16 10.5 16.7 10.3C16 8.3 14.1 7 12 7Z\";\nexport var mdiCameraMeteringCenter = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H20V6H4M12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 12,10.5M12,7.5C14.14,7.5 15.93,9 16.39,11H14.83C14.42,9.83 13.31,9 12,9C10.69,9 9.58,9.83 9.17,11H7.61C8.07,9 9.86,7.5 12,7.5M12,16.5C9.86,16.5 8.07,15 7.61,13H9.17C9.58,14.17 10.69,15 12,15C13.31,15 14.42,14.17 14.83,13H16.39C15.93,15 14.14,16.5 12,16.5Z\";\nexport var mdiCameraMeteringMatrix = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H20V6H4M5.5,7.5H11V9.17C10.15,9.47 9.47,10.15 9.17,11H5.5V7.5M18.5,7.5V11H14.83C14.53,10.15 13.85,9.47 13,9.17V7.5H18.5M18.5,16.5H13V14.83C13.85,14.53 14.53,13.85 14.83,13H18.5V16.5M5.5,16.5V13H9.17C9.47,13.85 10.15,14.53 11,14.83V16.5H5.5M12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 12,10.5Z\";\nexport var mdiCameraMeteringPartial = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H20V6H4M12,7.5C14.14,7.5 15.93,9 16.39,11H14.83C14.42,9.83 13.31,9 12,9C10.69,9 9.58,9.83 9.17,11H7.61C8.07,9 9.86,7.5 12,7.5M12,16.5C9.86,16.5 8.07,15 7.61,13H9.17C9.58,14.17 10.69,15 12,15C13.31,15 14.42,14.17 14.83,13H16.39C15.93,15 14.14,16.5 12,16.5Z\";\nexport var mdiCameraMeteringSpot = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H20V6H4M12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 12,10.5Z\";\nexport var mdiCameraOff = \"M1.2,4.47L2.5,3.2L20,20.72L18.73,22L16.73,20H4A2,2 0 0,1 2,18V6C2,5.78 2.04,5.57 2.1,5.37L1.2,4.47M7,4L9,2H15L17,4H20A2,2 0 0,1 22,6V18C22,18.6 21.74,19.13 21.32,19.5L16.33,14.5C16.76,13.77 17,12.91 17,12A5,5 0 0,0 12,7C11.09,7 10.23,7.24 9.5,7.67L5.82,4H7M7,12A5,5 0 0,0 12,17C12.5,17 13.03,16.92 13.5,16.77L11.72,15C10.29,14.85 9.15,13.71 9,12.28L7.23,10.5C7.08,10.97 7,11.5 7,12M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9Z\";\nexport var mdiCameraOffOutline = \"M17 12C17 12.54 16.9 13.05 16.74 13.54L15 11.78C14.87 10.3 13.7 9.13 12.22 9L10.46 7.26C10.95 7.1 11.46 7 12 7C14.76 7 17 9.24 17 12M9.88 4H14.12L15.95 6H20V16.8L21.88 18.68C21.96 18.47 22 18.24 22 18V6C22 4.89 21.11 4 20 4H16.83L15 2H9L7.18 4L8.6 5.4L9.88 4M22.11 21.46L20.84 22.73L18.11 20H4C2.9 20 2 19.11 2 18V6C2 5.42 2.25 4.9 2.65 4.54L1.11 3L2.39 1.73L22.11 21.46M9 12C9 13.66 10.34 15 12 15C12.33 15 12.65 14.93 12.94 14.83L9.17 11.06C9.07 11.36 9 11.67 9 12M16.11 18L14.45 16.34C13.72 16.75 12.89 17 12 17C9.24 17 7 14.76 7 12C7 11.11 7.25 10.28 7.66 9.55L4.11 6H4V18H16.11Z\";\nexport var mdiCameraOutline = \"M20,4H16.83L15,2H9L7.17,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M20,18H4V6H8.05L9.88,4H14.12L15.95,6H20V18M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15Z\";\nexport var mdiCameraPartyMode = \"M12,17C10.37,17 8.94,16.21 8,15H12A3,3 0 0,0 15,12C15,11.65 14.93,11.31 14.82,11H16.9C16.96,11.32 17,11.66 17,12A5,5 0 0,1 12,17M12,7C13.63,7 15.06,7.79 16,9H12A3,3 0 0,0 9,12C9,12.35 9.07,12.68 9.18,13H7.1C7.03,12.68 7,12.34 7,12A5,5 0 0,1 12,7M20,4H16.83L15,2H9L7.17,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiCameraPlus = \"M3 4V1H5V4H8V6H5V9H3V6H0V4M6 10V7H9V4H16L17.8 6H21C22.1 6 23 6.9 23 8V20C23 21.1 22.1 22 21 22H5C3.9 22 3 21.1 3 20V10M13 19C17.45 19 19.69 13.62 16.54 10.46C13.39 7.31 8 9.55 8 14C8 16.76 10.24 19 13 19M9.8 14C9.8 16.85 13.25 18.28 15.26 16.26C17.28 14.25 15.85 10.8 13 10.8C11.24 10.8 9.8 12.24 9.8 14Z\";\nexport var mdiCameraPlusOutline = \"M21 6H17.8L16 4H10V6H15.1L17 8H21V20H5V11H3V20C3 21.1 3.9 22 5 22H21C22.1 22 23 21.1 23 20V8C23 6.9 22.1 6 21 6M8 14C8 18.45 13.39 20.69 16.54 17.54C19.69 14.39 17.45 9 13 9C10.24 9 8 11.24 8 14M13 11C14.64 11.05 15.95 12.36 16 14C15.95 15.64 14.64 16.95 13 17C11.36 16.95 10.05 15.64 10 14C10.05 12.36 11.36 11.05 13 11M5 6H8V4H5V1H3V4H0V6H3V9H5\";\nexport var mdiCameraRear = \"M12,6C10.89,6 10,5.1 10,4A2,2 0 0,1 12,2C13.09,2 14,2.9 14,4A2,2 0 0,1 12,6M17,0H7A2,2 0 0,0 5,2V16A2,2 0 0,0 7,18H17A2,2 0 0,0 19,16V2A2,2 0 0,0 17,0M14,20V22H19V20M10,20H5V22H10V24L13,21L10,18V20Z\";\nexport var mdiCameraRearVariant = \"M6,0H18A2,2 0 0,1 20,2V22A2,2 0 0,1 18,24H6A2,2 0 0,1 4,22V2A2,2 0 0,1 6,0M12,2A2,2 0 0,0 10,4A2,2 0 0,0 12,6A2,2 0 0,0 14,4A2,2 0 0,0 12,2M13,18H9V20H13V22L16,19L13,16V18Z\";\nexport var mdiCameraRetake = \"M20,5H17L15,3H9L7,5H4A2,2 0 0,0 2,7V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V7A2,2 0 0,0 20,5M12,18C10.92,18 9.86,17.65 9,17L10.44,15.56C10.91,15.85 11.45,16 12,16A3,3 0 0,0 15,13A3,3 0 0,0 12,10C10.74,10 9.6,10.8 9.18,12H11L8,15L5,12H7.1C7.65,9.29 10.29,7.55 13,8.1C15.7,8.65 17.45,11.29 16.9,14C16.42,16.33 14.38,18 12,18Z\";\nexport var mdiCameraRetakeOutline = \"M20,5H16.83L15,3H9L7.17,5H4A2,2 0 0,0 2,7V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V7A2,2 0 0,0 20,5M20,19H4V7H8.05L9.88,5H14.12L16,7H20V19M12,18C10.92,18 9.86,17.65 9,17L10.44,15.56C10.91,15.85 11.45,16 12,16A3,3 0 0,0 15,13A3,3 0 0,0 12,10C10.74,10 9.6,10.8 9.18,12H11L8,15L5,12H7.1C7.65,9.29 10.29,7.55 13,8.1C15.7,8.65 17.45,11.29 16.9,14C16.42,16.33 14.38,18 12,18Z\";\nexport var mdiCameraSwitch = \"M15,15.5V13H9V15.5L5.5,12L9,8.5V11H15V8.5L18.5,12M20,4H16.83L15,2H9L7.17,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiCameraSwitchOutline = \"M20 4H16.8L15 2H9L7.2 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4M9.9 4H14.1L15.9 6H20V18H4V6H8.1M15 11H9V8.5L5.5 12L9 15.5V13H15V15.5L18.5 12L15 8.5V11Z\";\nexport var mdiCameraTimer = \"M4.94,6.35C4.55,5.96 4.55,5.32 4.94,4.93C5.33,4.54 5.96,4.54 6.35,4.93L13.07,10.31L13.42,10.59C14.2,11.37 14.2,12.64 13.42,13.42C12.64,14.2 11.37,14.2 10.59,13.42L10.31,13.07L4.94,6.35M12,20A8,8 0 0,0 20,12C20,9.79 19.1,7.79 17.66,6.34L19.07,4.93C20.88,6.74 22,9.24 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12H4A8,8 0 0,0 12,20M12,1A2,2 0 0,1 14,3A2,2 0 0,1 12,5A2,2 0 0,1 10,3A2,2 0 0,1 12,1Z\";\nexport var mdiCameraWireless = \"M12,10.8A3.2,3.2 0 0,1 15.2,14A3.2,3.2 0 0,1 12,17.2A3.2,3.2 0 0,1 8.8,14A3.2,3.2 0 0,1 12,10.8M16,3.33V2A6,6 0 0,1 22,8H20.67C20.67,5.42 18.58,3.33 16,3.33M16,6V4.67C17.84,4.67 19.33,6.16 19.33,8H18C18,6.89 17.11,6 16,6M17,9H22V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V8A2,2 0 0,1 4,6H7.17L9,4H15V7C16.11,7 17,7.89 17,9M12,19A5,5 0 0,0 17,14A5,5 0 0,0 12,9A5,5 0 0,0 7,14A5,5 0 0,0 12,19Z\";\nexport var mdiCameraWirelessOutline = \"M20,9V20H4V8H8.05L9.88,6H15V4H9L7.17,6H4A2,2 0 0,0 2,8V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V9H20M20.67,8H22C22,4.68 19.31,2 16,2V3.33C18.58,3.33 20.66,5.41 20.67,8M18,8H19.33C19.32,6.15 17.84,4.67 16,4.67V6C17.11,6 18,6.89 18,8M7,14A5,5 0 0,0 12,19A5,5 0 0,0 17,14A5,5 0 0,0 12,9A5,5 0 0,0 7,14M15,14A3,3 0 0,1 12,17A3,3 0 0,1 9,14A3,3 0 0,1 12,11A3,3 0 0,1 15,14Z\";\nexport var mdiCampfire = \"M15.9,18.5L21.9,20.1L21.5,22L12.1,19.5L2.7,22L2.2,20.1L8.2,18.5L2.1,16.9L2.6,15L12,17.5L21.4,15L21.9,16.9L15.9,18.5M16.07,7.92C15.91,7.7 15.71,7.5 15.5,7.33C15.05,6.9 14.5,6.59 14.06,6.13C13,5.08 12.79,3.34 13.44,2C12.79,2.17 12.18,2.54 11.67,2.95C9.84,4.46 9.11,7.1 10,9.38C10,9.45 10.04,9.53 10.04,9.62C10.04,9.78 9.93,9.92 9.79,10C9.63,10.05 9.46,10 9.33,9.9C9.28,9.86 9.25,9.82 9.22,9.77C8.42,8.74 8.29,7.26 8.84,6.07C7.65,7.06 7,8.72 7.11,10.29C7.13,10.65 7.18,11 7.3,11.36C7.41,11.8 7.59,12.23 7.82,12.61C8.57,13.86 9.9,14.76 11.32,14.94C12.84,15.14 14.46,14.85 15.63,13.79C16.93,12.59 17.4,10.67 16.71,9L16.61,8.83C16.47,8.5 16.28,8.2 16.04,7.93L16.07,7.92M13.83,12.47C13.63,12.65 13.31,12.83 13.05,12.91C12.26,13.19 11.46,12.79 11,12.31C11.84,12.11 12.34,11.47 12.5,10.83C12.61,10.25 12.39,9.78 12.29,9.22C12.21,8.69 12.22,8.23 12.42,7.73C12.55,8 12.69,8.28 12.86,8.5C13.41,9.22 14.27,9.54 14.45,10.5C14.47,10.63 14.5,10.72 14.5,10.83C14.5,11.43 14.26,12.07 13.82,12.47\";\nexport var mdiCancel = \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\";\nexport var mdiCandelabra = \"M20.5 11C20.5 11.55 20.05 12 19.5 12H19V14C19 15.11 18.11 16 17 16H13V20H14C15.11 20 16 20.9 16 22H8C8 20.9 8.9 20 10 20H11V16H7C5.9 16 5 15.11 5 14V12H4.5C3.95 12 3.5 11.55 3.5 11S3.95 10 4.5 10H5V4L7 5V10H7.5C8.05 10 8.5 10.45 8.5 11S8.05 12 7.5 12H7V14H11V12H10.5C9.95 12 9.5 11.55 9.5 11S9.95 10 10.5 10H11V2L13 3V10H13.5C14.05 10 14.5 10.45 14.5 11S14.05 12 13.5 12H13V14H17V12H16.5C15.95 12 15.5 11.55 15.5 11S15.95 10 16.5 10H17V4L19 5V10H19.5C20.05 10 20.5 10.45 20.5 11Z\";\nexport var mdiCandelabraFire = \"M18 7C18.83 7 19.5 6.33 19.5 5.5C19.5 4.67 18.83 3 18 3S16.5 4.67 16.5 5.5C16.5 6.33 17.17 7 18 7M18 5.25C18.28 5.25 18.5 5.47 18.5 5.75S18.28 6.25 18 6.25 17.5 6.03 17.5 5.75 17.72 5.25 18 5.25M12 6C12.83 6 13.5 5.33 13.5 4.5C13.5 3.67 12.83 2 12 2S10.5 3.67 10.5 4.5C10.5 5.33 11.17 6 12 6M12 4.25C12.28 4.25 12.5 4.47 12.5 4.75S12.28 5.25 12 5.25 11.5 5.03 11.5 4.75 11.72 4.25 12 4.25M6 7C6.83 7 7.5 6.33 7.5 5.5C7.5 4.67 6.83 3 6 3S4.5 4.67 4.5 5.5C4.5 6.33 5.17 7 6 7M6 5.25C6.28 5.25 6.5 5.47 6.5 5.75S6.28 6.25 6 6.25 5.5 6.03 5.5 5.75 5.72 5.25 6 5.25M20.5 11C20.5 11.55 20.05 12 19.5 12H19V14C19 15.11 18.11 16 17 16H13V20H14C15.11 20 16 20.9 16 22H8C8 20.9 8.9 20 10 20H11V16H7C5.9 16 5 15.11 5 14V12H4.5C3.95 12 3.5 11.55 3.5 11S3.95 10 4.5 10V9C4.5 8.45 4.95 8 5.5 8H6.5C7.05 8 7.5 8.45 7.5 9V10C8.05 10 8.5 10.45 8.5 11S8.05 12 7.5 12H7V14H11V12H10.5C9.95 12 9.5 11.55 9.5 11S9.95 10 10.5 10V8C10.5 7.45 10.95 7 11.5 7H12.5C13.05 7 13.5 7.45 13.5 8V10C14.05 10 14.5 10.45 14.5 11S14.05 12 13.5 12H13V14H17V12H16.5C15.95 12 15.5 11.55 15.5 11S15.95 10 16.5 10V9C16.5 8.45 16.95 8 17.5 8H18.5C19.05 8 19.5 8.45 19.5 9V10C20.05 10 20.5 10.45 20.5 11Z\";\nexport var mdiCandle = \"M12.5,2C10.84,2 9.5,5.34 9.5,7A3,3 0 0,0 12.5,10A3,3 0 0,0 15.5,7C15.5,5.34 14.16,2 12.5,2M12.5,6.5A1,1 0 0,1 13.5,7.5A1,1 0 0,1 12.5,8.5A1,1 0 0,1 11.5,7.5A1,1 0 0,1 12.5,6.5M10,11A1,1 0 0,0 9,12V20H7A1,1 0 0,1 6,19V18A1,1 0 0,0 5,17A1,1 0 0,0 4,18V19A3,3 0 0,0 7,22H19A1,1 0 0,0 20,21A1,1 0 0,0 19,20H16V12A1,1 0 0,0 15,11H10Z\";\nexport var mdiCandy = \"M15.54 8.46C17.5 10.42 17.5 13.58 15.54 15.54S10.42 17.5 8.47 15.54 6.5 10.42 8.47 8.46 13.58 6.5 15.54 8.46M19.47 4.55C19.47 4.55 18.5 4.67 17.43 5.36C17.28 4.32 16.78 3.27 15.93 2.42C14.68 3.66 14.53 5.22 14.83 6.34C16.22 6.7 17.3 7.78 17.66 9.17C18.78 9.47 20.34 9.32 21.58 8.07C20.74 7.23 19.71 6.74 18.68 6.58C19.07 6 19.38 5.33 19.47 4.55M4.53 19.45C4.53 19.45 5.5 19.33 6.57 18.64C6.72 19.68 7.22 20.73 8.07 21.58C9.32 20.34 9.47 18.78 9.17 17.66C7.78 17.3 6.7 16.22 6.34 14.83C5.22 14.53 3.66 14.68 2.42 15.93C3.26 16.77 4.29 17.27 5.32 17.42C4.93 18 4.62 18.68 4.53 19.45Z\";\nexport var mdiCandyOff = \"M20.8 22.7L14.4 16.3C12.5 17.4 10 17.1 8.4 15.5C6.8 13.9 6.5 11.4 7.6 9.5L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M15.5 8.5C14.1 7.1 12.2 6.7 10.4 7.3L16.7 13.6C17.3 11.8 16.9 9.8 15.5 8.5M17.7 9.2C18.8 9.5 20.4 9.3 21.6 8.1C20.8 7.3 19.7 6.8 18.7 6.6C19.1 6 19.4 5.3 19.5 4.6C19.5 4.6 18.5 4.7 17.5 5.4C17.4 4.4 16.9 3.3 16 2.5C14.8 3.7 14.6 5.3 14.9 6.4C16.2 6.7 17.3 7.8 17.7 9.2M6.3 14.8C5.2 14.5 3.6 14.7 2.4 15.9C3.2 16.7 4.3 17.2 5.3 17.4C4.9 18 4.6 18.7 4.5 19.4C4.5 19.4 5.5 19.3 6.5 18.6C6.6 19.6 7.1 20.7 8 21.5C9.2 20.3 9.4 18.7 9.1 17.6C7.8 17.3 6.7 16.2 6.3 14.8Z\";\nexport var mdiCandyOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L7.7 9.6C6.6 11.5 6.9 14 8.5 15.6S12.6 17.5 14.5 16.4L20.9 22.8L22.1 21.5M9.9 14.1C9.1 13.3 8.8 12.1 9.2 11L13 14.8C11.9 15.2 10.7 15 9.9 14.1M14.8 6.3C14.5 5.2 14.6 3.6 15.9 2.4C16.8 3.3 17.3 4.3 17.4 5.3C18.5 4.6 19.4 4.5 19.4 4.5C19.3 5.3 19 6 18.6 6.5C19.6 6.7 20.7 7.2 21.5 8C20.3 9.2 18.7 9.4 17.6 9.1C17.3 7.8 16.2 6.7 14.8 6.3M12.2 9L10.4 7.2C12.1 6.6 14.1 7 15.5 8.4C16.9 9.8 17.3 11.7 16.7 13.5L15 11.8C14.9 11.1 14.7 10.4 14.1 9.9S12.9 9.1 12.2 9M9.2 17.7C9.5 18.8 9.4 20.4 8.1 21.6C7.2 20.7 6.7 19.7 6.6 18.7C5.5 19.4 4.6 19.5 4.6 19.5C4.7 18.7 5 18 5.4 17.5C4.4 17.3 3.3 16.8 2.5 16C3.7 14.8 5.3 14.6 6.4 14.9C6.7 16.2 7.8 17.3 9.2 17.7Z\";\nexport var mdiCandyOutline = \"M9.88 9.88C11.05 8.71 12.95 8.71 14.12 9.88S15.29 12.95 14.12 14.12 11.05 15.29 9.88 14.12 8.71 11.05 9.88 9.88M8.46 8.46C6.5 10.42 6.5 13.58 8.46 15.54S13.58 17.5 15.54 15.54 17.5 10.42 15.54 8.46 10.42 6.5 8.46 8.46M19.47 4.55C19.47 4.55 18.5 4.67 17.43 5.37C17.28 4.32 16.78 3.27 15.93 2.42C14.68 3.67 14.53 5.22 14.83 6.34C16.22 6.7 17.3 7.78 17.66 9.17C18.78 9.47 20.34 9.32 21.58 8.07C20.74 7.23 19.71 6.74 18.68 6.58C19.07 6 19.38 5.33 19.47 4.55M4.53 19.45C4.53 19.45 5.5 19.33 6.57 18.64C6.72 19.68 7.22 20.73 8.07 21.58C9.32 20.34 9.47 18.78 9.17 17.66C7.79 17.3 6.7 16.22 6.34 14.83C5.22 14.53 3.67 14.68 2.42 15.93C3.26 16.77 4.29 17.27 5.32 17.42C4.93 18 4.62 18.68 4.53 19.45Z\";\nexport var mdiCandycane = \"M10,10A2,2 0 0,1 8,12A2,2 0 0,1 6,10V8C6,7.37 6.1,6.77 6.27,6.2L10,9.93V10M12,2C12.74,2 13.44,2.13 14.09,2.38L11.97,6C11.14,6 10.44,6.5 10.15,7.25L7.24,4.34C8.34,2.92 10.06,2 12,2M17.76,6.31L14,10.07V8C14,7.62 13.9,7.27 13.72,6.97L15.83,3.38C16.74,4.13 17.42,5.15 17.76,6.31M18,13.09L14,17.09V12.9L18,8.9V13.09M18,20A2,2 0 0,1 16,22A2,2 0 0,1 14,20V19.91L18,15.91V20Z\";\nexport var mdiCannabis = \"M11.5,22V17.35C11,18.13 10,19.09 8.03,19.81C8.03,19.81 8.53,18.1 9.94,16.95C8.64,17.23 6.68,17.19 4,16C4,16 6.47,14.59 9.28,14.97C7.69,14 5.7,12.08 4.17,8.11C4.17,8.11 8.67,9.34 10.91,13.14C8.88,8.24 12,2 12,2C14.43,7.47 13.91,11.1 13.12,13.1C15.37,9.33 19.83,8.11 19.83,8.11C18.3,12.08 16.31,14 14.72,14.97C17.53,14.59 20,16 20,16C17.32,17.19 15.36,17.23 14.06,16.95C15.47,18.1 15.97,19.81 15.97,19.81C14,19.09 13,18.13 12.5,17.35V22H11.5Z\";\nexport var mdiCannabisOff = \"M16.62 13.42L14.5 11.32C16.84 8.94 19.83 8.11 19.83 8.11C18.87 10.6 17.73 12.27 16.62 13.42M12 2C12 2 10.86 4.3 10.41 7.21L13.72 10.5C13.92 8.45 13.61 5.63 12 2M20.84 22.73L22.11 21.46L2.39 1.73L1.11 3L8.62 10.5C6.5 8.75 4.17 8.11 4.17 8.11C5.7 12.08 7.69 14 9.28 14.97C6.47 14.59 4 16 4 16C6.68 17.19 8.64 17.23 9.94 16.95C8.53 18.1 8.03 19.81 8.03 19.81C10 19.09 11 18.13 11.5 17.35V22H12.5V17.35C13 18.13 14 19.09 15.97 19.81C15.97 19.81 15.47 18.1 14.06 16.95C14.39 17 14.77 17.07 15.2 17.09L20.84 22.73Z\";\nexport var mdiCapsLock = \"M9.96,13.71L12,8.29L14.03,13.72M11.14,6L6.43,18H8.36L9.32,15.43H14.68L15.64,18H17.57L12.86,6H11.14M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.9,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.1,2 20,2M20,20H4V4H20V20Z\";\nexport var mdiCar = \"M5,11L6.5,6.5H17.5L19,11M17.5,16A1.5,1.5 0 0,1 16,14.5A1.5,1.5 0 0,1 17.5,13A1.5,1.5 0 0,1 19,14.5A1.5,1.5 0 0,1 17.5,16M6.5,16A1.5,1.5 0 0,1 5,14.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 8,14.5A1.5,1.5 0 0,1 6.5,16M18.92,6C18.72,5.42 18.16,5 17.5,5H6.5C5.84,5 5.28,5.42 5.08,6L3,12V20A1,1 0 0,0 4,21H5A1,1 0 0,0 6,20V19H18V20A1,1 0 0,0 19,21H20A1,1 0 0,0 21,20V12L18.92,6Z\";\nexport var mdiCar2Plus = \"M8 16C8 13.6 9.1 11.5 10.7 10H3L4.5 5.5H15.5L16.3 8C16.9 8 17.5 8.1 18 8.3L16.9 5C16.7 4.4 16.1 4 15.5 4H4.5C3.8 4 3.3 4.4 3.1 5L1 11V19C1 19.5 1.5 20 2 20H3C3.5 20 4 19.5 4 19V18H8.3C8.1 17.4 8 16.7 8 16M4.5 15C3.7 15 3 14.3 3 13.5S3.7 12 4.5 12 6 12.7 6 13.5 5.3 15 4.5 15M16 20V18H13V17H14C15.1 17 16 16.1 16 15V14C16 12.9 15.1 12 14 12H11V14H14V15H13C11.9 15 11 15.9 11 17V20M23 17H21V19H19V17H17V15H19V13H21V15H23V17Z\";\nexport var mdiCar3Plus = \"M16.9 5C16.7 4.4 16.1 4 15.5 4H4.5C3.8 4 3.3 4.4 3.1 5L1 11V19C1 19.5 1.5 20 2 20H3C3.5 20 4 19.5 4 19V18H8.3C8.1 17.4 8 16.7 8 16C8 13.6 9.1 11.5 10.7 10H3L4.5 5.5H15.5L16.3 8C16.9 8 17.5 8.1 18 8.3L16.9 5M4.5 12C5.3 12 6 12.7 6 13.5S5.3 15 4.5 15 3 14.3 3 13.5 3.7 12 4.5 12M23 17H21V19H19V17H17V15H19V13H21V15H23V17M14.5 16C15.3 16 16 14.8 16 14C16 12.9 15.1 12 14 12H11V14H14V15H12V17H14V18H11V20H14C15.1 20 16 19.1 16 18C16 17.2 15.3 16 14.5 16Z\";\nexport var mdiCarArrowLeft = \"M12 18C12 14.69 14.69 12 18 12C19.09 12 20.12 12.3 21 12.81V12L18.92 6C18.72 5.42 18.16 5 17.5 5H6.5C5.84 5 5.28 5.42 5.08 6L3 12V20C3 20.55 3.45 21 4 21H5C5.55 21 6 20.55 6 20V19H12.09C12.04 18.67 12 18.34 12 18M6.5 6.5H17.5L19 11H5L6.5 6.5M6.5 16C5.67 16 5 15.33 5 14.5S5.67 13 6.5 13 8 13.67 8 14.5 7.33 16 6.5 16M18 15V17H22V19H18V21L15 18L18 15\";\nexport var mdiCarArrowRight = \"M12 18C12 14.69 14.69 12 18 12C19.09 12 20.12 12.3 21 12.81V12L18.92 6C18.72 5.42 18.16 5 17.5 5H6.5C5.84 5 5.28 5.42 5.08 6L3 12V20C3 20.55 3.45 21 4 21H5C5.55 21 6 20.55 6 20V19H12.09C12.04 18.67 12 18.34 12 18M6.5 6.5H17.5L19 11H5L6.5 6.5M6.5 16C5.67 16 5 15.33 5 14.5S5.67 13 6.5 13 8 13.67 8 14.5 7.33 16 6.5 16M19 21V19H15V17H19V15L22 18L19 21\";\nexport var mdiCarBack = \"M6,11L7,7H17L18,11M18.92,6C18.71,5.4 18.14,5 17.5,5H6.5C5.86,5 5.29,5.4 5.08,6L3,12V20A1,1 0 0,0 4,21H5A1,1 0 0,0 6,20V18H18V20A1,1 0 0,0 19,21H20A1,1 0 0,0 21,20V12L18.92,6M7,16H5V14H7V16M19,16H17V14H19V16M14,16H10V14H14V16Z\";\nexport var mdiCarBattery = \"M4,3V6H1V20H23V6H20V3H14V6H10V3H4M3,8H21V18H3V8M15,10V12H13V14H15V16H17V14H19V12H17V10H15M5,12V14H11V12H5Z\";\nexport var mdiCarBrakeAbs = \"M24,12C24,15.31 22.66,18.31 20.5,20.5L19.42,19.42C21.32,17.5 22.5,14.9 22.5,12C22.5,9.11 21.32,6.5 19.42,4.58L20.5,3.5C22.66,5.69 24,8.69 24,12M20,9.6V8H16.8C15.92,8 15.2,8.72 15.2,9.6V11.2A1.6,1.6 0 0,0 16.8,12.8H18.4V14.4H15.2V16H18.4C19.28,16 20,15.28 20,14.4V12.8A1.6,1.6 0 0,0 18.4,11.2H16.8V9.6H20M8.42,6C9.47,5.37 10.69,5 12,5C13.31,5 14.53,5.37 15.58,6H18.69C17.05,4.16 14.66,3 12,3C9.34,3 6.95,4.16 5.31,6H8.42M13.2,12C13.84,12 14.4,12.56 14.4,13.2V14.4A1.6,1.6 0 0,1 12.8,16H9.6V8H12.8A1.6,1.6 0 0,1 14.4,9.6V10.8C14.4,11.44 13.84,12 13.2,12M12.8,12.8H11.2V14.4H12.8V12.8M12.8,9.6H11.2V11.2H12.8V9.6M4.58,4.58L3.5,3.5C1.34,5.69 0,8.69 0,12C0,15.31 1.34,18.31 3.5,20.5L4.58,19.42C2.68,17.5 1.5,14.9 1.5,12C1.5,9.11 2.68,6.5 4.58,4.58M7.2,16V12.8H5.6V16H4V9.6A1.6,1.6 0 0,1 5.6,8H7.2C8.08,8 8.8,8.72 8.8,9.6V16H7.2M7.2,11.2V9.6H5.6V11.2H7.2M15.58,18C14.53,18.63 13.31,19 12,19C10.69,19 9.47,18.63 8.42,18H5.31C6.95,19.84 9.34,21 12,21C14.66,21 17.05,19.84 18.69,18H15.58Z\";\nexport var mdiCarBrakeAlert = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M12,19C8.14,19 5,15.86 5,12C5,8.14 8.14,5 12,5C15.86,5 19,8.14 19,12C19,15.86 15.86,19 12,19M20.5,20.5C22.66,18.31 24,15.31 24,12C24,8.69 22.66,5.69 20.5,3.5L19.42,4.58C21.32,6.5 22.5,9.11 22.5,12C22.5,14.9 21.32,17.5 19.42,19.42L20.5,20.5M4.58,19.42C2.68,17.5 1.5,14.9 1.5,12C1.5,9.11 2.68,6.5 4.58,4.58L3.5,3.5C1.34,5.69 0,8.69 0,12C0,15.31 1.34,18.31 3.5,20.5L4.58,19.42Z\";\nexport var mdiCarBrakeFluidLevel = \"M1.5 12C1.5 14.9 2.68 17.5 4.58 19.42L3.5 20.5C1.34 18.31 0 15.31 0 12S1.34 5.69 3.5 3.5L4.58 4.58C2.68 6.5 1.5 9.11 1.5 12M21 12C21 16.97 16.97 21 12 21S3 16.97 3 12 7.03 3 12 3 21 7.03 21 12M5 12C5 12.44 5.05 12.86 5.12 13.28C5.3 13.09 5.46 13 5.78 13C6.3 13 6.39 13.21 6.78 13.71C7.17 14.21 7.85 15 8.89 15C9.92 15 10.61 14.21 11 13.71C11.26 13.37 11.39 13.18 11.61 13.08C11.71 13.03 11.83 13 12 13C12.5 13 12.61 13.21 13 13.71C13.39 14.21 14.08 15 15.11 15C16.15 15 16.83 14.21 17.22 13.71C17.61 13.21 17.7 13 18.22 13C18.54 13 18.7 13.09 18.88 13.28C18.95 12.86 19 12.44 19 12C19 8.14 15.86 5 12 5S5 8.14 5 12M20.5 3.5L19.42 4.58C21.32 6.5 22.5 9.11 22.5 12C22.5 14.9 21.32 17.5 19.42 19.42L20.5 20.5C22.66 18.31 24 15.31 24 12S22.66 5.69 20.5 3.5Z\";\nexport var mdiCarBrakeHold = \"M12,3C7,3 3,7 3,12C3,17 7,21 12,21C17,21 21,17 21,12C21,7 17,3 12,3M12,19C8.1,19 5,15.9 5,12C5,8.1 8.1,5 12,5C15.9,5 19,8.1 19,12C19,15.9 15.9,19 12,19M20.5,20.5C22.7,18.3 24,15.3 24,12C24,8.7 22.7,5.7 20.5,3.5L19.4,4.6C21.3,6.5 22.5,9.1 22.5,12C22.5,14.9 21.3,17.5 19.4,19.4L20.5,20.5M4.6,19.4C2.7,17.5 1.5,14.9 1.5,12C1.5,9.1 2.7,6.5 4.6,4.6L3.5,3.5C1.3,5.7 0,8.7 0,12C0,15.3 1.3,18.3 3.5,20.5L4.6,19.4M9,7V17H11V13H13V17H15V7H13V11H11V7H9Z\";\nexport var mdiCarBrakeLowPressure = \"M13 12C13 12.55 12.55 13 12 13S11 12.55 11 12 11.45 11 12 11 13 11.45 13 12M10 12L7 9V11H3V13H7V15L10 12M14 12L17 15V13H21V11H17V9L14 12M20.5 3.5L19.42 4.58C21.32 6.5 22.5 9.11 22.5 12C22.5 14.9 21.32 17.5 19.42 19.42L20.5 20.5C22.66 18.31 24 15.31 24 12S22.66 5.69 20.5 3.5M5.69 9C6.81 6.64 9.22 5 12 5S17.19 6.64 18.32 9H20.5C19.24 5.5 15.92 3 12 3S4.76 5.5 3.5 9H5.69M4.58 4.58L3.5 3.5C1.34 5.69 0 8.69 0 12S1.34 18.31 3.5 20.5L4.58 19.42C2.68 17.5 1.5 14.9 1.5 12C1.5 9.11 2.68 6.5 4.58 4.58M18.32 15C17.19 17.36 14.79 19 12 19S6.81 17.36 5.69 15H3.5C4.76 18.5 8.08 21 12 21S19.24 18.5 20.5 15H18.32Z\";\nexport var mdiCarBrakeParking = \"M12,3C7,3 3,7 3,12C3,17 7,21 12,21C17,21 21,17 21,12C21,7 17,3 12,3M12,19C8.1,19 5,15.9 5,12C5,8.1 8.1,5 12,5C15.9,5 19,8.1 19,12C19,15.9 15.9,19 12,19M20.5,20.5C22.7,18.3 24,15.3 24,12C24,8.7 22.7,5.7 20.5,3.5L19.4,4.6C21.3,6.5 22.5,9.1 22.5,12C22.5,14.9 21.3,17.5 19.4,19.4L20.5,20.5M4.6,19.4C2.7,17.5 1.5,14.9 1.5,12C1.5,9.1 2.7,6.5 4.6,4.6L3.5,3.5C1.3,5.7 0,8.7 0,12C0,15.3 1.3,18.3 3.5,20.5L4.6,19.4M9.5,7V17H11.5V13H13.5A2,2 0 0,0 15.5,11V9A2,2 0 0,0 13.5,7H9.5M11.5,9H13.5V11H11.5V9Z\";\nexport var mdiCarBrakeRetarder = \"M12 3C7 3 3 7 3 12S7 21 12 21 21 17 21 12 17 3 12 3M12 19C8.1 19 5 15.9 5 12S8.1 5 12 5 19 8.1 19 12 15.9 19 12 19M20.5 20.5C22.7 18.3 24 15.3 24 12S22.7 5.7 20.5 3.5L19.4 4.6C21.3 6.5 22.5 9.1 22.5 12S21.3 17.5 19.4 19.4L20.5 20.5M4.6 19.4C2.7 17.5 1.5 14.9 1.5 12S2.7 6.5 4.6 4.6L3.5 3.5C1.3 5.7 0 8.7 0 12S1.3 18.3 3.5 20.5L4.6 19.4M15.3 10.5C15.96 10.5 16.5 11.17 16.5 12C16.5 12.81 15.95 13.5 15.3 13.5C14.93 13.5 14.66 13.29 14.5 13.11L14.47 13.08L14.44 13.05L13.38 12L14.47 10.92L14.5 10.89L14.53 10.86C14.74 10.63 15 10.5 15.3 10.5M8.7 10.5C9.07 10.5 9.34 10.71 9.5 10.88L9.5 10.92L9.56 10.95L10.62 12L9.53 13.08L9.5 13.11L9.47 13.15C9.26 13.37 9 13.5 8.7 13.5C8.05 13.5 7.5 12.81 7.5 12S8.05 10.5 8.7 10.5M15.3 9C14.58 9 13.9 9.31 13.42 9.85L12 11.25L10.61 9.88C10.1 9.31 9.42 9 8.7 9C7.21 9 6 10.35 6 12S7.21 15 8.7 15C9.42 15 10.1 14.69 10.59 14.15L12 12.75L13.39 14.12C13.9 14.68 14.58 15 15.3 15C16.79 15 18 13.65 18 12C18 10.33 16.79 9 15.3 9Z\";\nexport var mdiCarBrakeTemperature = \"M12 10H15V8H12V7C12 6.4 11.6 6 11 6S10 6.4 10 7V17.3C9.4 17.6 9 18.3 9 19C9 20.1 9.9 21 11 21S13 20.1 13 19C13 18.3 12.6 17.6 12 17.3V14H15V12H12V10M24 12C24 15.31 22.66 18.31 20.5 20.5L19.42 19.42C21.32 17.5 22.5 14.9 22.5 12C22.5 9.11 21.32 6.5 19.42 4.58L20.5 3.5C22.66 5.69 24 8.69 24 12M1.5 12C1.5 14.9 2.68 17.5 4.58 19.42L3.5 20.5C1.34 18.31 0 15.31 0 12S1.34 5.69 3.5 3.5L4.58 4.58C2.68 6.5 1.5 9.11 1.5 12M21 12C21 15.53 18.96 18.58 16 20.05V17.74C17.81 16.47 19 14.37 19 12C19 8.14 15.86 5 12 5S5 8.14 5 12C5 14.37 6.19 16.47 8 17.74V20.05C5.04 18.58 3 15.53 3 12C3 7.03 7.03 3 12 3S21 7.03 21 12Z\";\nexport var mdiCarBrakeWornLinings = \"M12 5C15.86 5 19 8.14 19 12S15.86 19 12 19 5 15.86 5 12 8.14 5 12 5M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21 21 16.97 21 12 16.97 3 12 3M4.58 4.58L3.5 3.5C2.37 4.65 1.47 6.03 .861 7.55L2.3 8C2.84 6.71 3.61 5.56 4.58 4.58M1.71 14.1C1.57 13.42 1.5 12.72 1.5 12C1.5 11.28 1.57 10.58 1.71 9.9L.275 9.46C.098 10.28 0 11.13 0 12S.098 13.72 .275 14.54L1.71 14.1M23.14 7.55C22.53 6.03 21.63 4.65 20.5 3.5L19.42 4.58C20.39 5.56 21.16 6.71 21.7 8L23.14 7.55M.861 16.45C1.47 18 2.37 19.35 3.5 20.5L4.58 19.42C3.61 18.44 2.84 17.29 2.3 16L.861 16.45M19.42 19.42L20.5 20.5C21.63 19.35 22.53 18 23.14 16.45L21.7 16C21.16 17.29 20.39 18.44 19.42 19.42M22.29 9.9C22.43 10.58 22.5 11.28 22.5 12C22.5 12.72 22.43 13.42 22.29 14.1L23.73 14.54C23.9 13.72 24 12.87 24 12S23.9 10.28 23.73 9.46L22.29 9.9Z\";\nexport var mdiCarChildSeat = \"M17 4.5C17 5.9 15.9 7 14.5 7S12 5.9 12 4.5 13.1 2 14.5 2 17 3.1 17 4.5M15 8H14.2C12.1 8 10.1 6.8 9.1 4.9C9 4.8 8.9 4.7 8.9 4.6L7.1 5.4C7.6 6.8 9.2 8.6 11.5 9.5L9.7 14.5L5.8 13.4L3 18.9L5 19.4L6.8 15.8L11.3 17C12.3 17.2 13.3 16.7 13.7 15.8L16 9.4C16.2 8.7 15.7 8 15 8M18.9 7L15.5 16.4C14.9 18 13.4 19 11.8 19C11.5 19 11.1 19 10.8 18.9L7.9 18.1L7 19.9L9 20.4L10.4 20.8C10.9 20.9 11.4 21 11.9 21C14.4 21 16.6 19.5 17.5 17.1L21 7H18.9Z\";\nexport var mdiCarClock = \"M23 8C23 4.13 19.87 1 16 1C12.47 1 9.57 3.61 9.08 7H4.5C3.84 7 3.28 7.42 3.08 8L1 14V22C1 22.55 1.45 23 2 23H3C3.55 23 4 22.55 4 22V21H16V22C16 22.55 16.45 23 17 23H18C18.55 23 19 22.55 19 22V14.32C21.36 13.19 23 10.79 23 8M4.5 8.5H9.03C9.15 10.26 9.92 11.84 11.11 13H3L4.5 8.5M4.5 18C3.67 18 3 17.33 3 16.5S3.67 15 4.5 15 6 15.67 6 16.5 5.33 18 4.5 18M15.5 18C14.67 18 14 17.33 14 16.5S14.67 15 15.5 15 17 15.67 17 16.5 16.33 18 15.5 18M16 13C14.61 13 13.44 12.5 12.47 11.53C11.5 10.56 11 9.39 11 8C11 6.64 11.5 5.46 12.47 4.5C13.44 3.5 14.61 3 16 3C17.36 3 18.54 3.5 19.5 4.5C20.5 5.46 21 6.64 21 8C21 9.39 20.5 10.56 19.5 11.53C18.54 12.5 17.36 13 16 13M16.5 8.25L19.36 9.94L18.61 11.16L15 9V4H16.5V8.25Z\";\nexport var mdiCarClutch = \"M10 18.84L14 20.7V23L8 20V14H5V10H8V4L14 1V3.3L10 5.16V18.84M19 10H15V5.41L12 6.8V17.2L15 18.6V14H19V10Z\";\nexport var mdiCarCog = \"M6.5 5C5.84 5 5.28 5.42 5.08 6L3 12V20A1 1 0 0 0 4 21H5A1 1 0 0 0 6 20V19H11.3A7 7 0 0 1 11 17A7 7 0 0 1 14.41 11H5L6.5 6.5H17.5L18.68 10.03A7 7 0 0 1 20.47 10.46L18.92 6C18.72 5.42 18.16 5 17.5 5H6.5M17 12C16.87 12 16.76 12.09 16.74 12.21L16.55 13.53C16.25 13.66 15.96 13.82 15.7 14L14.46 13.5C14.35 13.5 14.22 13.5 14.15 13.63L13.15 15.36C13.09 15.47 13.11 15.6 13.21 15.68L14.27 16.5C14.25 16.67 14.24 16.83 14.24 17C14.24 17.17 14.25 17.33 14.27 17.5L13.21 18.32C13.12 18.4 13.09 18.53 13.15 18.64L14.15 20.37C14.21 20.5 14.34 20.5 14.46 20.5L15.7 20C15.96 20.18 16.24 20.35 16.55 20.47L16.74 21.79C16.76 21.91 16.86 22 17 22H19C19.11 22 19.22 21.91 19.24 21.79L19.43 20.47C19.73 20.34 20 20.18 20.27 20L21.5 20.5C21.63 20.5 21.76 20.5 21.83 20.37L22.83 18.64C22.89 18.53 22.86 18.4 22.77 18.32L21.7 17.5C21.72 17.33 21.74 17.17 21.74 17C21.74 16.83 21.73 16.67 21.7 16.5L22.76 15.68C22.85 15.6 22.88 15.47 22.82 15.36L21.82 13.63C21.76 13.5 21.63 13.5 21.5 13.5L20.27 14C20 13.82 19.73 13.65 19.42 13.53L19.23 12.21C19.22 12.09 19.11 12 19 12H17M6.5 13A1.5 1.5 0 0 1 8 14.5A1.5 1.5 0 0 1 6.5 16A1.5 1.5 0 0 1 5 14.5A1.5 1.5 0 0 1 6.5 13M18 15.5C18.83 15.5 19.5 16.17 19.5 17C19.5 17.83 18.83 18.5 18 18.5C17.16 18.5 16.5 17.83 16.5 17C16.5 16.17 17.17 15.5 18 15.5Z\";\nexport var mdiCarConnected = \"M5,14H19L17.5,9.5H6.5L5,14M17.5,19A1.5,1.5 0 0,0 19,17.5A1.5,1.5 0 0,0 17.5,16A1.5,1.5 0 0,0 16,17.5A1.5,1.5 0 0,0 17.5,19M6.5,19A1.5,1.5 0 0,0 8,17.5A1.5,1.5 0 0,0 6.5,16A1.5,1.5 0 0,0 5,17.5A1.5,1.5 0 0,0 6.5,19M18.92,9L21,15V23A1,1 0 0,1 20,24H19A1,1 0 0,1 18,23V22H6V23A1,1 0 0,1 5,24H4A1,1 0 0,1 3,23V15L5.08,9C5.28,8.42 5.85,8 6.5,8H17.5C18.15,8 18.72,8.42 18.92,9M12,0C14.12,0 16.15,0.86 17.65,2.35L16.23,3.77C15.11,2.65 13.58,2 12,2C10.42,2 8.89,2.65 7.77,3.77L6.36,2.35C7.85,0.86 9.88,0 12,0M12,4C13.06,4 14.07,4.44 14.82,5.18L13.4,6.6C13.03,6.23 12.53,6 12,6C11.5,6 10.97,6.23 10.6,6.6L9.18,5.18C9.93,4.44 10.94,4 12,4Z\";\nexport var mdiCarConvertible = \"M16,6L15,6.75L17.5,10H13.5V8.5H12V10H3C1.89,10 1,10.89 1,12V15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V12C23,10.89 22.11,10 21,10H19L16,6M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiCarCoolantLevel = \"M19 7V5H21V3H13V5H15V7H1V21H23V7H19M21 14.42C20.71 14.13 20.5 14 20 14C19.33 14 19.21 14.21 18.71 14.71S17.33 16 16 16 13.79 15.21 13.29 14.71 12.67 14 12 14C11.78 14 11.63 14.03 11.5 14.08C11.22 14.18 11.05 14.37 10.71 14.71C10.21 15.21 9.33 16 8 16S5.79 15.21 5.29 14.71 4.67 14 4 14C3.5 14 3.29 14.13 3 14.42V9H21V14.42Z\";\nexport var mdiCarCruiseControl = \"M22,15C22,17.6 20.8,19.9 18.9,21.3L18.4,20.8L16.3,18.7L17.7,17.3L18.9,18.5C19.4,17.8 19.8,16.9 19.9,16H18V14H19.9C19.7,13.1 19.4,12.3 18.9,11.5L17.7,12.7L16.3,11.3L17.5,10.1C16.8,9.6 15.9,9.2 15,9.1V11H13V9.1C12.1,9.3 11.3,9.6 10.5,10.1L13.5,13.1C13.7,13.1 13.8,13 14,13A2,2 0 0,1 16,15A2,2 0 0,1 14,17A2,2 0 0,1 12,15C12,14.8 12,14.7 12.1,14.5L9.1,11.5C8.6,12.2 8.2,13.1 8.1,14H10V16H8.1C8.3,16.9 8.6,17.7 9.1,18.5L10.3,17.3L11.7,18.7L9.1,21.3C7.2,19.9 6,17.6 6,15A8,8 0 0,1 14,7A8,8 0 0,1 22,15M6.7,5.3L3.4,2L2,3.4L5.3,6.7L4,8H8V4L6.7,5.3Z\";\nexport var mdiCarDefrostFront = \"M15,23C14.7,23 14.5,22.9 14.3,22.7C13.9,22.3 14,21.7 14.4,21.3V21.3C14.9,20.9 16.1,19.5 16.1,18.4C16.1,17.8 15.7,17.2 15.3,16.5C14.8,15.7 14.1,14.7 14.1,13.5C14.1,11.2 15.4,10.3 15.6,10.2C16.1,9.9 16.7,10.1 17,10.5C17.3,11 17.1,11.6 16.7,11.9V11.9C16.7,11.9 16.2,12.3 16.2,13.5C16.2,14.1 16.6,14.7 17,15.4C17.5,16.2 18.2,17.2 18.2,18.4C18.2,20.6 16.1,22.6 15.9,22.8C15.5,22.9 15.2,23 15,23M11.7,22.7C11.9,22.5 14,20.5 14,18.3C14,17.1 13.4,16.1 12.8,15.3C12.4,14.6 12,14 12,13.4C12,12.2 12.5,11.8 12.5,11.8V11.8C13,11.5 13.1,10.9 12.8,10.4C12.5,9.9 11.9,9.8 11.4,10.1C11.2,10.2 9.9,11.1 9.9,13.4C9.9,14.6 10.5,15.6 11.1,16.4C11.5,17.1 11.9,17.7 11.9,18.3C11.9,19.4 10.7,20.8 10.2,21.2V21.2C9.8,21.6 9.8,22.2 10.1,22.6C10.3,22.8 10.6,22.9 10.8,22.9C11.2,23 11.5,22.9 11.7,22.7M7.7,22.7C7.9,22.5 10,20.5 10,18.3C10,17.1 9.4,16.1 8.8,15.3C8.4,14.7 8,14.1 8,13.4C8,12.2 8.5,11.8 8.5,11.8V11.8C9,11.5 9.1,10.9 8.8,10.4C8.6,10 7.9,9.9 7.5,10.1C7.3,10.2 6,11.1 6,13.4C6,14.6 6.6,15.6 7.2,16.4C7.6,17.1 8,17.7 8,18.3C8,19.4 6.8,20.8 6.3,21.2V21.2C5.9,21.6 5.9,22.2 6.2,22.6C6.5,22.9 6.7,23 7,23C7.2,23 7.5,22.9 7.7,22.7M12,3C9.4,3 1,3.3 1,7C1,9.4 2.2,15.4 2.8,18H4L4.8,18H5V16H4.4C3.8,13.1 3,8.8 3,7C3,6 7.4,5 12,5C16.6,5 21,6 21,7C21,8.8 20.2,13.1 19.6,16H19V18H19.2L20,18H21.2C21.8,15.4 23,9.4 23,7C23,3.3 14.6,3 12,3Z\";\nexport var mdiCarDefrostRear = \"M10,18.3C10,20.5 7.9,22.5 7.7,22.7C7.5,22.9 7.2,23 7,23C6.7,23 6.5,22.9 6.2,22.6C5.9,22.2 5.9,21.6 6.3,21.2C6.8,20.8 8,19.4 8,18.3C8,17.7 7.6,17.1 7.2,16.4C6.6,15.6 6,14.6 6,13.4C6,11.1 7.3,10.2 7.5,10.1C7.9,9.9 8.6,10 8.8,10.4C9.1,10.9 9,11.5 8.5,11.8C8.5,11.8 8,12.2 8,13.4C8,14.1 8.4,14.7 8.8,15.3C9.4,16.1 10,17.1 10,18.3M12,13.4C12,12.2 12.5,11.8 12.5,11.8C13,11.5 13.1,10.9 12.8,10.4C12.5,9.9 11.9,9.8 11.4,10.1C11.2,10.2 9.9,11.1 9.9,13.4C9.9,14.6 10.5,15.6 11.1,16.4C11.5,17.1 11.9,17.7 11.9,18.3C11.9,19.4 10.7,20.8 10.2,21.2C9.8,21.6 9.8,22.2 10.1,22.6C10.3,22.8 10.6,22.9 10.8,22.9C11.2,23 11.5,22.9 11.7,22.7C11.9,22.5 14,20.5 14,18.3C14,17.1 13.4,16.1 12.8,15.3C12.4,14.6 12,14 12,13.4M20,3H4A2,2 0 0,0 2,5V16A2,2 0 0,0 4,18H5V16H4V5H20V16H19V18H20A2,2 0 0,0 22,16V5A2,2 0 0,0 20,3M16.2,13.5C16.2,12.3 16.7,11.9 16.7,11.9C17.1,11.6 17.3,11 17,10.5C16.7,10.1 16.1,9.9 15.6,10.2C15.4,10.3 14.1,11.2 14.1,13.5C14.1,14.7 14.8,15.7 15.3,16.5C15.7,17.2 16.1,17.8 16.1,18.4C16.1,19.5 14.9,20.9 14.4,21.3C14,21.7 13.9,22.3 14.3,22.7C14.5,22.9 14.7,23 15,23C15.2,23 15.5,22.9 15.9,22.8C16.1,22.6 18.2,20.6 18.2,18.4C18.2,17.2 17.5,16.2 17,15.4C16.6,14.7 16.2,14.1 16.2,13.5Z\";\nexport var mdiCarDoor = \"M19,14H16V16H19V14M22,21H3V11L11,3H21A1,1 0 0,1 22,4V21M11.83,5L5.83,11H20V5H11.83Z\";\nexport var mdiCarDoorLock = \"M7.8 17V15.5C7.8 14.1 6.4 13 5 13S2.2 14.1 2.2 15.5V17C1.6 17 1 17.6 1 18.2V21.7C1 22.4 1.6 23 2.2 23H7.7C8.4 23 9 22.4 9 21.8V18.3C9 17.6 8.4 17 7.8 17M6.5 17H3.5V15.5C3.5 14.7 4.2 14.2 5 14.2S6.5 14.7 6.5 15.5V17M21 3H11L3 11V11.44C3.61 11.17 4.29 11 5 11C7.6 11 9.8 13.06 9.8 15.5V15.75C10.53 16.36 11 17.28 11 18.3V21H22V4C22 3.45 21.55 3 21 3M19 16H16V14H19V16M20 11H5.83L11.83 5H20V11Z\";\nexport var mdiCarDoorLockOpen = \"M22 21H11V16C11 15.26 10.6 14.61 10 14.26C10 14.18 10 14.09 10 14C10 12.87 9.63 11.84 9 11H20V5H11.83L7.28 9.55C6.6 9.2 5.82 9 5 9L11 3H21C21.27 3 21.5 3.11 21.71 3.29C21.9 3.5 22 3.74 22 4V21M19 14H16V16H19V14M7.8 16H3.5V13.5C3.5 12.7 4.2 12.2 5 12.2C5.8 12.2 6.5 12.7 6.5 13.5V14H7.8V13.5C7.8 12.1 6.4 11 5 11C3.6 11 2.2 12.1 2.2 13.5V16C1.6 16 1 16.6 1 17.2V20.7C1 21.4 1.6 22 2.2 22H7.7C8.4 22 9 21.4 9 20.8V17.3C9 16.6 8.4 16 7.8 16Z\";\nexport var mdiCarElectric = \"M18.92 2C18.72 1.42 18.16 1 17.5 1H6.5C5.84 1 5.29 1.42 5.08 2L3 8V16C3 16.55 3.45 17 4 17H5C5.55 17 6 16.55 6 16V15H18V16C18 16.55 18.45 17 19 17H20C20.55 17 21 16.55 21 16V8L18.92 2M6.5 12C5.67 12 5 11.33 5 10.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12M17.5 12C16.67 12 16 11.33 16 10.5S16.67 9 17.5 9 19 9.67 19 10.5 18.33 12 17.5 12M5 7L6.5 2.5H17.5L19 7H5M7 20H11V18L17 21H13V23L7 20Z\";\nexport var mdiCarElectricOutline = \"M18.92 2C18.72 1.42 18.16 1 17.5 1H6.5C5.84 1 5.29 1.42 5.08 2L3 8V16C3 16.55 3.45 17 4 17H5C5.55 17 6 16.55 6 16V15H18V16C18 16.55 18.45 17 19 17H20C20.55 17 21 16.55 21 16V8L18.92 2M6.85 3H17.14L18.22 6.11H5.77L6.85 3M19 13H5V8H19V13M7.5 9C8.33 9 9 9.67 9 10.5S8.33 12 7.5 12 6 11.33 6 10.5 6.67 9 7.5 9M16.5 9C17.33 9 18 9.67 18 10.5S17.33 12 16.5 12C15.67 12 15 11.33 15 10.5S15.67 9 16.5 9M7 20H11V18L17 21H13V23L7 20Z\";\nexport var mdiCarEmergency = \"M11 0V3H13V0H11M7.88 1.46L6.46 2.87L8.59 5L10 3.58L7.88 1.46M16.12 1.46L14 3.58L15.41 5L17.54 2.88L16.12 1.46M12 5A2 2 0 0 0 10 7V8H6.5C5.84 8 5.28 8.42 5.08 9L3 15V23A1 1 0 0 0 4 24H5A1 1 0 0 0 6 23V22H18V23A1 1 0 0 0 19 24H20A1 1 0 0 0 21 23V15L18.92 9C18.72 8.42 18.16 8 17.5 8H14V7A2 2 0 0 0 12 5M6.5 9.5H17.5L19 14H5L6.5 9.5M6.5 16A1.5 1.5 0 0 1 8 17.5A1.5 1.5 0 0 1 6.5 19A1.5 1.5 0 0 1 5 17.5A1.5 1.5 0 0 1 6.5 16M17.5 16A1.5 1.5 0 0 1 19 17.5A1.5 1.5 0 0 1 17.5 19A1.5 1.5 0 0 1 16 17.5A1.5 1.5 0 0 1 17.5 16Z\";\nexport var mdiCarEsp = \"M5.31,6C6.95,4.16 9.34,3 12,3C14.66,3 17.05,4.16 18.69,6H15.58C14.53,5.37 13.31,5 12,5C10.69,5 9.47,5.37 8.42,6H5.31M14.4,9.6V8H11.2A1.6,1.6 0 0,0 9.6,9.6V11.2C9.6,12.08 10.32,12.8 11.2,12.8H12.8V14.4H9.6V16H12.8A1.6,1.6 0 0,0 14.4,14.4V12.8C14.4,11.92 13.68,11.2 12.8,11.2H11.2V9.6H14.4M18.4,8H15.2V16H16.8V12.8H18.4A1.6,1.6 0 0,0 20,11.2V9.6C20,8.72 19.28,8 18.4,8M18.4,11.2H16.8V9.6H18.4V11.2M8.8,9.6V8H4V16H8.8V14.4H5.6V12.8H8.8V11.2H5.6V9.6H8.8M15.58,18C14.53,18.63 13.31,19 12,19C10.69,19 9.47,18.63 8.42,18H5.31C6.95,19.84 9.34,21 12,21C14.66,21 17.05,19.84 18.69,18H15.58M20.5,3.5L19.42,4.58C21.32,6.5 22.5,9.11 22.5,12C22.5,14.9 21.32,17.5 19.42,19.42L20.5,20.5C22.66,18.31 24,15.31 24,12C24,8.69 22.66,5.69 20.5,3.5M4.58,4.58L3.5,3.5C1.34,5.69 0,8.69 0,12C0,15.31 1.34,18.31 3.5,20.5L4.58,19.42C2.68,17.5 1.5,14.9 1.5,12C1.5,9.11 2.68,6.5 4.58,4.58Z\";\nexport var mdiCarEstate = \"M3,6H16L19,10H21C22.11,10 23,10.89 23,12V15H21A3,3 0 0,1 18,18A3,3 0 0,1 15,15H9A3,3 0 0,1 6,18A3,3 0 0,1 3,15H1V8C1,6.89 1.89,6 3,6M2.5,7.5V10H10.5V7.5H2.5M12,7.5V10H17.14L15.25,7.5H12M6,13.5A1.5,1.5 0 0,0 4.5,15A1.5,1.5 0 0,0 6,16.5A1.5,1.5 0 0,0 7.5,15A1.5,1.5 0 0,0 6,13.5M18,13.5A1.5,1.5 0 0,0 16.5,15A1.5,1.5 0 0,0 18,16.5A1.5,1.5 0 0,0 19.5,15A1.5,1.5 0 0,0 18,13.5Z\";\nexport var mdiCarHatchback = \"M16,6H6L1,12V15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V12C23,10.89 22.11,10 21,10H19L16,6M6.5,7.5H10.5V10H4.5L6.5,7.5M12,7.5H15.5L17.46,10H12V7.5M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiCarInfo = \"M19 15H17V13H19M20 20V22H16V20H17V18H16V16H19V20M18.92 5A1.5 1.5 0 0 0 17.5 4H6.5A1.5 1.5 0 0 0 5.08 5L3 11V19A1 1 0 0 0 4 20H5A1 1 0 0 0 6 19V18H11A7 7 0 0 1 18 11A6.84 6.84 0 0 1 21 11.68V11M6.5 15A1.5 1.5 0 1 1 8 13.5A1.5 1.5 0 0 1 6.5 15M5 10L6.5 5.5H17.5L19 10Z\";\nexport var mdiCarKey = \"M9 0C7.3 0 6 1.3 6 3S7.3 6 9 6C10.3 6 11.4 5.2 11.8 4H14V6H16V4H18V2H11.8C11.4 .8 10.3 0 9 0M9 2C9.6 2 10 2.4 10 3S9.6 4 9 4 8 3.6 8 3 8.4 2 9 2M6.5 8C5.8 8 5.3 8.4 5.1 9L3 15V23C3 23.6 3.4 24 4 24H5C5.6 24 6 23.6 6 23V22H18V23C18 23.6 18.4 24 19 24H20C20.6 24 21 23.6 21 23V15L18.9 9C18.7 8.4 18.1 8 17.5 8H6.5M6.5 9.5H17.5L19 14H5L6.5 9.5M6.5 16C7.3 16 8 16.7 8 17.5S7.3 19 6.5 19 5 18.3 5 17.5 5.7 16 6.5 16M17.5 16C18.3 16 19 16.7 19 17.5S18.3 19 17.5 19 16 18.3 16 17.5 16.7 16 17.5 16Z\";\nexport var mdiCarLiftedPickup = \"M18 14L18.79 14.1L18.77 14.33L19.24 14.5L19.39 14.34C19.89 14.6 20.32 15 20.6 15.5L20.43 15.67L20.63 16.12L20.86 16.1C20.95 16.39 21 16.69 21 17L20.9 17.78L20.66 17.77L20.47 18.24L20.66 18.39C20.39 18.9 20 19.32 19.5 19.6L19.33 19.42L18.87 19.62L18.89 19.86C18.61 19.95 18.31 20 18 20L17.21 19.9L17.22 19.65L16.76 19.47L16.6 19.66C16.1 19.39 15.67 19 15.39 18.5L15.57 18.32L15.37 17.86L15.13 17.88C15.05 17.6 15 17.31 15 17L15.11 16.2L15.34 16.21L15.53 15.75L15.35 15.6C15.62 15.09 16 14.68 16.5 14.39L16.67 14.56L17.13 14.36L17.11 14.14C17.39 14.05 17.69 14 18 14M18 15.5C17.17 15.5 16.5 16.17 16.5 17C16.5 17.83 17.17 18.5 18 18.5C18.83 18.5 19.5 17.83 19.5 17C19.5 16.17 18.83 15.5 18 15.5M6 14L6.79 14.1L6.77 14.33L7.24 14.5L7.39 14.34C7.89 14.6 8.32 15 8.6 15.5L8.43 15.67L8.63 16.12L8.86 16.1C8.95 16.39 9 16.69 9 17L8.9 17.78L8.65 17.77L8.47 18.24L8.66 18.39C8.39 18.9 8 19.32 7.5 19.6L7.33 19.42L6.87 19.62L6.89 19.86C6.61 19.95 6.31 20 6 20L5.21 19.9L5.22 19.65L4.76 19.47L4.6 19.66C4.1 19.39 3.67 19 3.39 18.5L3.57 18.32L3.37 17.86L3.13 17.88C3.05 17.6 3 17.31 3 17L3.11 16.2L3.34 16.21L3.53 15.75L3.35 15.6C3.62 15.09 4 14.68 4.5 14.39L4.67 14.56L5.13 14.36L5.11 14.14C5.39 14.05 5.69 14 6 14M6 15.5C5.17 15.5 4.5 16.17 4.5 17C4.5 17.83 5.17 18.5 6 18.5C6.83 18.5 7.5 17.83 7.5 17C7.5 16.17 6.83 15.5 6 15.5M16 6L19 10H21C22.11 10 23 10.89 23 12V15H21C21 13.34 19.66 12 18 12C16.34 12 15 13.34 15 15H9C9 13.34 7.66 12 6 12C4.34 12 3 13.34 3 15H1V10H10.5V6L16 6M12 7.5V10H17.46L15.5 7.5H12Z\";\nexport var mdiCarLightAlert = \"M23 7V13H21V7H23M21 17H23V15H21V17M1 9V11H5C5.1 10.3 5.1 9.6 5.2 9H1M5 13H1V15H5.2C5.1 14.4 5.1 13.7 5 13M5.9 6.4C6 5.8 6.3 5.4 6.5 5H1V7H5.7C5.8 6.8 5.8 6.6 5.9 6.4M1 17V19H6.6C6.2 18.4 5.9 17.8 5.7 17H1M10 4.8C6 4.8 6 19.2 10 19.2S19 16.5 19 12 14 4.8 10 4.8M10.1 17.2C9.7 16.8 9 15 9 12S9.7 7.2 10.1 6.8C13 6.9 17 8.7 17 12S13 17.1 10.1 17.2\";\nexport var mdiCarLightDimmed = \"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 15.9,17.1 13.1,17.2M8,10.5C8,11 7.9,11.5 7.9,12C7.9,12.2 7.9,12.4 7.9,12.6L2.4,14L1.9,12.1L8,10.5M2,7L9.4,5.1C9.2,5.4 9,5.8 8.9,6.3C8.8,6.6 8.7,7 8.6,7.4L2.5,8.9L2,7M8.2,15.5C8.3,16.2 8.5,16.9 8.7,17.4L2.4,19L1.9,17.1L8.2,15.5Z\";\nexport var mdiCarLightFog = \"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 16,17.1 13.1,17.2M6,8V11H8C8,11.3 8,11.7 8,12C8,12.3 8,12.7 8,13H6V16H8.4C8.6,16.7 8.8,17.4 9,18H6V21H4V18H2V16H4V13H2V11H4V8H2V6H4V3H6V6H9C9,6.1 8.9,6.2 8.9,6.4C8.7,6.9 8.5,7.4 8.4,8H6Z\";\nexport var mdiCarLightHigh = \"M13,4.8C9,4.8 9,19.2 13,19.2C17,19.2 22,16.5 22,12C22,7.5 17,4.8 13,4.8M13.1,17.2C12.7,16.8 12,15 12,12C12,9 12.7,7.2 13.1,6.8C16,6.9 20,8.7 20,12C20,15.3 16,17.1 13.1,17.2M2,5H9.5C9.3,5.4 9,5.8 8.9,6.4C8.8,6.6 8.8,6.8 8.7,7H2V5M8,11H2V9H8.2C8.1,9.6 8.1,10.3 8,11M8.7,17C8.9,17.8 9.2,18.4 9.6,19H2.1V17H8.7M8.2,15H2V13H8C8.1,13.7 8.1,14.4 8.2,15Z\";\nexport var mdiCarLimousine = \"M1,6L2.5,7.5L1,9L2.5,10.5L1,12L2.5,13.5L1,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V12C23,10.89 22.11,10 21,10H19L16,6H1M4.62,7.5H10.5V10H4.12L3.12,9L4.62,7.5M12,7.5H15.5L17.46,10H12V7.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiCarMultiple = \"M8,11L9.5,6.5H18.5L20,11M18.5,16A1.5,1.5 0 0,1 17,14.5A1.5,1.5 0 0,1 18.5,13A1.5,1.5 0 0,1 20,14.5A1.5,1.5 0 0,1 18.5,16M9.5,16A1.5,1.5 0 0,1 8,14.5A1.5,1.5 0 0,1 9.5,13A1.5,1.5 0 0,1 11,14.5A1.5,1.5 0 0,1 9.5,16M19.92,6C19.71,5.4 19.14,5 18.5,5H9.5C8.86,5 8.29,5.4 8.08,6L6,12V20A1,1 0 0,0 7,21H8A1,1 0 0,0 9,20V19H19V20A1,1 0 0,0 20,21H21A1,1 0 0,0 22,20V12L19.92,6M14.92,3C14.71,2.4 14.14,2 13.5,2H4.5C3.86,2 3.29,2.4 3.08,3L1,9V17A1,1 0 0,0 2,18H3A1,1 0 0,0 4,17V12.91C3.22,12.63 2.82,11.77 3.1,11C3.32,10.4 3.87,10 4.5,10H4.57L5.27,8H3L4.5,3.5H15.09L14.92,3Z\";\nexport var mdiCarOff = \"M20.5,19.85L6.41,5.76L2.41,1.76L1.11,3L4.57,6.46L3,11V19A1,1 0 0,0 4,20H5A1,1 0 0,0 6,19V18H16.11L20.84,22.73L22.11,21.46L20.5,19.85M6.5,15A1.5,1.5 0 0,1 5,13.5A1.5,1.5 0 0,1 6.5,12A1.5,1.5 0 0,1 8,13.5A1.5,1.5 0 0,1 6.5,15M5,10L5.78,7.67L8.11,10H5M17.5,5.5L19,10H13.2L16.12,12.92C16.5,12.17 17.37,11.86 18.12,12.21C18.87,12.57 19.18,13.47 18.83,14.21C18.68,14.5 18.43,14.77 18.12,14.92L21,17.8V11L18.92,5C18.71,4.4 18.14,4 17.5,4H7.2L8.7,5.5H17.5Z\";\nexport var mdiCarOutline = \"M18.9 6C18.7 5.4 18.1 5 17.5 5H6.5C5.8 5 5.3 5.4 5.1 6L3 12V20C3 20.5 3.5 21 4 21H5C5.6 21 6 20.5 6 20V19H18V20C18 20.5 18.5 21 19 21H20C20.5 21 21 20.5 21 20V12L18.9 6M6.8 7H17.1L18.2 10H5.8L6.8 7M19 17H5V12H19V17M7.5 13C8.3 13 9 13.7 9 14.5S8.3 16 7.5 16 6 15.3 6 14.5 6.7 13 7.5 13M16.5 13C17.3 13 18 13.7 18 14.5S17.3 16 16.5 16C15.7 16 15 15.3 15 14.5S15.7 13 16.5 13Z\";\nexport var mdiCarParkingLights = \"M7.3,9.2C8.1,9.6 9,10.5 9,12C9,13.5 8.1,14.4 7.3,14.8C6.9,13.4 6.9,10.6 7.3,9.2M6.5,7C4.5,7 4.5,17 6.5,17C8.5,17 11,15.1 11,12C11,8.9 8.5,7 6.5,7M16.7,9.2C17,10.6 17,13.4 16.7,14.8C15.9,14.4 15,13.5 15,12C15,10.5 15.9,9.6 16.7,9.2M17.5,7C15.5,7 13,8.9 13,12C13,15.1 15.5,17 17.5,17C19.5,17 19.5,7 17.5,7M4.9,6.2L2.5,4.6L1.4,6.3L4,8C4.2,7.3 4.5,6.6 4.9,6.2M20,8L22.6,6.3L21.5,4.6L19.1,6.2C19.4,6.6 19.8,7.2 20,8M4,16L1.4,17.7L2.5,19.4L4.9,17.8C4.6,17.4 4.2,16.8 4,16M20.5,11C20.5,11.3 20.5,11.7 20.5,12C20.5,12.3 20.5,12.6 20.5,13H24V11H20.5M19.1,17.8L21.5,19.4L22.6,17.7L20,16C19.8,16.7 19.5,17.4 19.1,17.8M3.5,12C3.5,11.7 3.5,11.4 3.5,11H0V13H3.5C3.5,12.7 3.5,12.3 3.5,12Z\";\nexport var mdiCarPickup = \"M16,6H10.5V10H1V15H3A3,3 0 0,0 6,18A3,3 0 0,0 9,15H15A3,3 0 0,0 18,18A3,3 0 0,0 21,15H23V12C23,10.89 22.11,10 21,10H19L16,6M12,7.5H15.5L17.46,10H12V7.5M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiCarSearch = \"M9.61 16.11C9.61 14.03 10.59 12.19 12.1 11H5L6.5 6.5H17.5L18.72 10.16C19.56 10.53 20.3 11.07 20.91 11.74L18.92 6C18.72 5.42 18.16 5 17.5 5H6.5C5.84 5 5.28 5.42 5.08 6L3 12V20C3 20.55 3.45 21 4 21H5C5.55 21 6 20.55 6 20V19H10.29C9.86 18.13 9.61 17.15 9.61 16.11M6.5 16C5.67 16 5 15.33 5 14.5S5.67 13 6.5 13 8 13.67 8 14.5 7.33 16 6.5 16M20.71 20.7L20.7 20.71L20.71 20.7M16.11 11.61C18.61 11.61 20.61 13.61 20.61 16.11C20.61 17 20.36 17.82 19.92 18.5L23 21.61L21.61 23L18.5 19.93C17.8 20.36 17 20.61 16.11 20.61C13.61 20.61 11.61 18.61 11.61 16.11S13.61 11.61 16.11 11.61M16.11 13.61C14.73 13.61 13.61 14.73 13.61 16.11S14.73 18.61 16.11 18.61 18.61 17.5 18.61 16.11 17.5 13.61 16.11 13.61\";\nexport var mdiCarSearchOutline = \"M10.29 19H6V20C6 20.5 5.6 21 5 21H4C3.5 21 3 20.5 3 20V12L5.1 6C5.3 5.4 5.8 5 6.5 5H17.5C18.1 5 18.7 5.4 18.9 6L20.91 11.74C20.17 10.93 19.24 10.31 18.18 9.95L17.1 7H6.8L5.8 10H13.91C12.79 10.4 11.81 11.1 11.08 12H5V17H9.68C9.78 17.71 10 18.38 10.29 19M6 14.5C6 15.3 6.7 16 7.5 16S9 15.3 9 14.5 8.3 13 7.5 13 6 13.7 6 14.5M16.11 11.61C13.61 11.61 11.61 13.61 11.61 16.11S13.61 20.61 16.11 20.61C17 20.61 17.8 20.36 18.5 19.93L21.61 23L23 21.61L19.92 18.5C20.36 17.82 20.61 17 20.61 16.11C20.61 13.61 18.61 11.61 16.11 11.61M16.11 13.61C17.5 13.61 18.61 14.73 18.61 16.11S17.5 18.61 16.11 18.61 13.61 17.5 13.61 16.11 14.73 13.61 16.11 13.61\";\nexport var mdiCarSeat = \"M7 18C7 18 4 10 4 6S6 2 6 2H7C7 2 8 2 8 3S7 4 7 6 10 10 10 13 7 18 7 18M12 17C11 17 8 19.5 8 19.5C7.7 19.7 7.8 20 8 20.3C8 20.3 9 22.1 11 22.1H17C18.1 22.1 19 21.2 19 20.1V19.1C19 18 18.1 17.1 17 17.1H12Z\";\nexport var mdiCarSeatCooler = \"M20.8 10.2L19.4 10.6L18.2 9.9V8.2L19.4 7.5L20.8 7.9L21.1 6.8L20 6.5L20.3 5.4L19.2 5.1L18.8 6.5L17.6 7.2L16.1 6.3V5L17.1 4L16.3 3.2L15.5 4L14.7 3.2L13.9 4L14.9 5V6.3L13.4 7.2L12.2 6.5L11.9 5.1L10.8 5.4L11.1 6.5L10 6.7L10.3 7.8L11.7 7.4L12.9 8.1V9.8L11.7 10.5L10.3 10.1L10 11.4L11.1 11.7L10.8 12.7L11.9 13L12.3 11.6L13.5 10.9L15 11.8V13.1L14 14.1L14.8 14.9L15.6 14.1L16.4 14.9L17.2 14.1L16.2 13.1V11.8L17.7 10.9L18.9 11.6L19.3 13L20.4 12.7L20 11.6L21.1 11.3L20.8 10.2M14 8.2L15.5 7.3L17 8.2V9.9L15.5 10.8L14 9.9V8.2M5 18C5 18 2 10 2 6S4 2 4 2H5C5 2 6 2 6 3S5 4 5 6 8 10 8 13 5 18 5 18M15 17C16.1 17 17 17.9 17 19V20C17 21.1 16.1 22 15 22H9C7 22 6 20.2 6 20.2C5.8 20 5.7 19.6 6 19.4C6 19.4 9 16.9 10 16.9H15Z\";\nexport var mdiCarSeatHeater = \"M5 18C5 18 2 10 2 6S4 2 4 2H5C5 2 6 2 6 3S5 4 5 6 8 10 8 13 5 18 5 18M15 17C16.1 17 17 17.9 17 19V20C17 21.1 16.1 22 15 22H9C7 22 6 20.2 6 20.2C5.8 20 5.7 19.6 6 19.4C6 19.4 9 16.9 10 16.9H15M13.7 3.4L12.3 6.8L13.7 10.2L11.7 15L10 13.6L11.4 10.2L10 6.8L12 2L13.7 3.4M17.9 3.4L16.5 6.8L17.9 10.2L15.9 15L14.2 13.6L15.6 10.2L14.2 6.8L16.2 2L17.9 3.4M22 3.4L20.6 6.8L22 10.2L20 15L18.3 13.6L19.7 10.2L18.3 6.8L20.3 2L22 3.4\";\nexport var mdiCarSelect = \"M5 13L6.5 8.5H17.5L19 13M17.5 18C16.7 18 16 17.3 16 16.5S16.7 15 17.5 15 19 15.7 19 16.5 18.3 18 17.5 18M6.5 18C5.7 18 5 17.3 5 16.5S5.7 15 6.5 15 8 15.7 8 16.5 7.3 18 6.5 18M18.9 8C18.7 7.4 18.1 7 17.5 7H6.5C5.8 7 5.3 7.4 5.1 8L3 14V22C3 22.6 3.4 23 4 23H5C5.6 23 6 22.6 6 22V21H18V22C18 22.6 18.4 23 19 23H20C20.6 23 21 22.6 21 22V14M8 1L12 5.5L16 1Z\";\nexport var mdiCarSettings = \"M15 22H17V24H15M11 22H13V24H11M7 22H9V24H7M5 11L6.5 6.5H17.5L19 11M17.5 16A1.5 1.5 0 0 1 16 14.5A1.5 1.5 0 0 1 17.5 13A1.5 1.5 0 0 1 19 14.5A1.5 1.5 0 0 1 17.5 16M6.5 16A1.5 1.5 0 0 1 5 14.5A1.5 1.5 0 0 1 6.5 13A1.5 1.5 0 0 1 8 14.5A1.5 1.5 0 0 1 6.5 16M18.92 6C18.72 5.42 18.16 5 17.5 5H6.5C5.84 5 5.28 5.42 5.08 6L3 12V20A1 1 0 0 0 4 21H5A1 1 0 0 0 6 20V19H18V20A1 1 0 0 0 19 21H20A1 1 0 0 0 21 20V12Z\";\nexport var mdiCarShiftPattern = \"M8 5H4V2H8V5M4 22H8V19H4V22M14 2H10V5H14V2M10 22H14V19H10V22M16 2V5H20V2H16M17 11H13V7H11V11H7V7H5V17H7V13H11V17H13V13H19V7H17V11Z\";\nexport var mdiCarSide = \"M16,6L19,10H21C22.11,10 23,10.89 23,12V15H21A3,3 0 0,1 18,18A3,3 0 0,1 15,15H9A3,3 0 0,1 6,18A3,3 0 0,1 3,15H1V12C1,10.89 1.89,10 3,10L6,6H16M10.5,7.5H6.75L4.86,10H10.5V7.5M12,7.5V10H17.14L15.25,7.5H12M6,13.5A1.5,1.5 0 0,0 4.5,15A1.5,1.5 0 0,0 6,16.5A1.5,1.5 0 0,0 7.5,15A1.5,1.5 0 0,0 6,13.5M18,13.5A1.5,1.5 0 0,0 16.5,15A1.5,1.5 0 0,0 18,16.5A1.5,1.5 0 0,0 19.5,15A1.5,1.5 0 0,0 18,13.5Z\";\nexport var mdiCarSpeedLimiter = \"M18 15C18 17.6 16.8 19.9 14.9 21.3L14.4 20.8L12.3 18.7L13.7 17.3L14.9 18.5C15.4 17.8 15.8 16.9 15.9 16H14V14H15.9C15.7 13.1 15.4 12.3 14.9 11.5L13.7 12.7L12.3 11.3L13.5 10.1C12.8 9.6 11.9 9.2 11 9.1V11H9V9.1C8.1 9.3 7.3 9.6 6.5 10.1L9.5 13.1C9.7 13.1 9.8 13 10 13C11.11 13 12 13.9 12 15S11.11 17 10 17 8 16.11 8 15C8 14.8 8 14.7 8.1 14.5L5.1 11.5C4.6 12.2 4.2 13.1 4.1 14H6V16H4.1C4.3 16.9 4.6 17.7 5.1 18.5L6.3 17.3L7.7 18.7L5.1 21.3C3.2 19.9 2 17.6 2 15C2 10.58 5.58 7 10 7S18 10.58 18 15M23 5C23 3.34 21.66 2 20 2S17 3.34 17 5C17 6.3 17.84 7.4 19 7.82V11H21V7.82C22.16 7.4 23 6.3 23 5M20 6C19.45 6 19 5.55 19 5S19.45 4 20 4 21 4.45 21 5 20.55 6 20 6Z\";\nexport var mdiCarSports = \"M12,8.5H7L4,11H3C1.89,11 1,11.89 1,13V16H3.17C3.6,17.2 4.73,18 6,18C7.27,18 8.4,17.2 8.82,16H15.17C15.6,17.2 16.73,18 18,18C19.27,18 20.4,17.2 20.82,16H23V15C23,13.89 21.97,13.53 21,13L12,8.5M5.25,12L7.5,10H11.5L15.5,12H5.25M6,13.5A1.5,1.5 0 0,1 7.5,15A1.5,1.5 0 0,1 6,16.5A1.5,1.5 0 0,1 4.5,15A1.5,1.5 0 0,1 6,13.5M18,13.5A1.5,1.5 0 0,1 19.5,15A1.5,1.5 0 0,1 18,16.5A1.5,1.5 0 0,1 16.5,15A1.5,1.5 0 0,1 18,13.5Z\";\nexport var mdiCarTireAlert = \"M11,13H13V15H11V13M11,5H13V11H11V5M17,4.76C18.86,6.19 20,8.61 20,11C20,14 18.33,16.64 15.86,18H8.14C5.67,16.64 4,14 4,11C4,8.61 5.09,6.17 7,4.76V2H5V3.86C3.15,5.68 2,8.2 2,11C2,13.8 3.15,16.32 5,18.14V22H7V20H9V22H11V20H13V22H15V20H17V22H19V18.14C20.85,16.32 22,13.8 22,11C22,8.2 20.85,5.68 19,3.86V2H17V4.76Z\";\nexport var mdiCarTractionControl = \"M9.5,11H10.5C10.8,11 11,10.8 11,10.5V9H19V10.5C19,10.8 19.2,11 19.5,11H20.5C20.8,11 21,10.8 21,10.5V9L21,8.5V6L19.6,1.7C19.5,1.3 19.1,1 18.7,1H11.4C11,1 10.6,1.3 10.5,1.7L9,6V8.5L9,9V10.5C9,10.8 9.2,11 9.5,11M11.3,2H18.6L19.5,5H10.4L11.3,2M12,23H10C10,22.2 8.1,21.5 6.6,20.9C4.5,20.1 2,19.2 2,17C2,14.7 4.3,14.1 6.2,13.5C7.9,13.1 9,12.7 9,12H11C11,14.3 8.7,14.9 6.8,15.5C5.1,15.9 4,16.3 4,17C4,17.8 5.9,18.5 7.4,19.1C9.5,19.9 12,20.8 12,23M22,23H20C20,22.2 18.1,21.5 16.6,20.9C14.5,20.1 12,19.2 12,17C12,14.7 14.3,14.1 16.2,13.5C17.8,13 19,12.7 19,12H21C21,14.3 18.7,14.9 16.8,15.5C15.2,15.9 14,16.3 14,17C14,17.8 15.9,18.5 17.4,19.1C19.5,19.9 22,20.8 22,23Z\";\nexport var mdiCarTurbocharger = \"M22 13V15H18.32C18.75 14.09 19 13.08 19 12C19 8.14 15.86 5 12 5H2V3H12C16.97 3 21 7.03 21 12C21 12.34 20.97 12.67 20.94 13H22M12 19C8.14 19 5 15.86 5 12C5 10.93 5.25 9.91 5.69 9H2V11H3.06C3.03 11.33 3 11.66 3 12C3 16.97 7.03 21 12 21H22V19H12M16.86 12.2C15.93 12.94 14.72 12.47 14 12.05V12C16.79 10.31 15.39 7.89 15.39 7.89S14.33 6.04 14.61 7.89C14.78 9.07 13.76 9.88 13.04 10.3L13 10.28C12.93 7 10.13 7 10.13 7S8 7 9.74 7.69C10.85 8.13 11.04 9.42 11.05 10.25L11 10.28C8.14 8.7 6.74 11.12 6.74 11.12S5.67 12.97 7.14 11.8C8.07 11.07 9.28 11.54 10 11.95V12C7.21 13.7 8.61 16.12 8.61 16.12S9.67 17.97 9.4 16.11C9.22 14.94 10.25 14.13 10.97 13.7L11 13.73C11.07 17 13.87 17 13.87 17S16 17 14.26 16.31C13.15 15.87 12.96 14.58 12.95 13.75L13 13.73C15.86 15.31 17.26 12.88 17.26 12.88S18.33 11.04 16.86 12.2Z\";\nexport var mdiCarWash = \"M5,13L6.5,8.5H17.5L19,13M17.5,18A1.5,1.5 0 0,1 16,16.5A1.5,1.5 0 0,1 17.5,15A1.5,1.5 0 0,1 19,16.5A1.5,1.5 0 0,1 17.5,18M6.5,18A1.5,1.5 0 0,1 5,16.5A1.5,1.5 0 0,1 6.5,15A1.5,1.5 0 0,1 8,16.5A1.5,1.5 0 0,1 6.5,18M18.92,8C18.72,7.42 18.16,7 17.5,7H6.5C5.84,7 5.28,7.42 5.08,8L3,14V22A1,1 0 0,0 4,23H5A1,1 0 0,0 6,22V21H18V22A1,1 0 0,0 19,23H20A1,1 0 0,0 21,22V14M7,5A1.5,1.5 0 0,0 8.5,3.5C8.5,2.5 7,0.8 7,0.8C7,0.8 5.5,2.5 5.5,3.5A1.5,1.5 0 0,0 7,5M12,5A1.5,1.5 0 0,0 13.5,3.5C13.5,2.5 12,0.8 12,0.8C12,0.8 10.5,2.5 10.5,3.5A1.5,1.5 0 0,0 12,5M17,5A1.5,1.5 0 0,0 18.5,3.5C18.5,2.5 17,0.8 17,0.8C17,0.8 15.5,2.5 15.5,3.5A1.5,1.5 0 0,0 17,5Z\";\nexport var mdiCarWindshield = \"M22.63 15.5L20.21 5.85A1 1 0 0 0 19.14 5.1C17.8 5.24 14.14 5.5 12 5.5S6.2 5.24 4.86 5.1A1 1 0 0 0 3.79 5.85L1.37 15.5A1.5 1.5 0 0 0 2.55 17.36A61.5 61.5 0 0 0 12 18A61.5 61.5 0 0 0 21.45 17.36A1.5 1.5 0 0 0 22.63 15.5Z\";\nexport var mdiCarWindshieldOutline = \"M22.63 15.5L20.21 5.85A1 1 0 0 0 19.14 5.1C17.8 5.24 14.14 5.5 12 5.5S6.2 5.24 4.86 5.1A1 1 0 0 0 3.79 5.85L1.37 15.5A1.5 1.5 0 0 0 2.55 17.36A61.5 61.5 0 0 0 12 18A61.5 61.5 0 0 0 21.45 17.36A1.5 1.5 0 0 0 22.63 15.5M12 16A63.33 63.33 0 0 1 3.44 15.5L5.5 7.18C7 7.32 10.16 7.5 12 7.5S17 7.32 18.5 7.18L20.56 15.5A63.33 63.33 0 0 1 12 16Z\";\nexport var mdiCarWireless = \"M12 5C10.9 5 10 5.9 10 7V8H6.5C5.84 8 5.28 8.42 5.08 9L3 15V23C3 23.55 3.45 24 4 24H5C5.55 24 6 23.55 6 23V22H18V23C18 23.55 18.45 24 19 24H20C20.55 24 21 23.55 21 23V15L18.92 9C18.72 8.42 18.16 8 17.5 8H14V7C14 5.9 13.11 5 12 5M6.5 9.5H17.5L19 14H5L6.5 9.5M6.5 16C7.33 16 8 16.67 8 17.5S7.33 19 6.5 19 5 18.33 5 17.5 5.67 16 6.5 16M17.5 16C18.33 16 19 16.67 19 17.5S18.33 19 17.5 19 16 18.33 16 17.5 16.67 16 17.5 16M16.2 3.4C15 2.3 13.5 1.7 12 1.7S9 2.3 7.8 3.4L7 2.6C8.4 1.2 10.2 .5 12 .5S15.6 1.2 17 2.6L16.2 3.4M15.3 4.2L14.5 5C13.8 4.3 12.9 4 12 4S10.2 4.3 9.5 5L8.7 4.2C9.6 3.3 10.8 2.8 12 2.8S14.4 3.3 15.3 4.2\";\nexport var mdiCarWrench = \"M20.96 16.45C20.97 16.3 21 16.15 21 16V16.5L20.96 16.45M11 16C11 16.71 11.15 17.39 11.42 18H6V19C6 19.55 5.55 20 5 20H4C3.45 20 3 19.55 3 19V11L5.08 5C5.28 4.42 5.84 4 6.5 4H17.5C18.16 4 18.72 4.42 18.92 5L21 11V16C21 13.24 18.76 11 16 11S11 13.24 11 16M8 13.5C8 12.67 7.33 12 6.5 12S5 12.67 5 13.5 5.67 15 6.5 15 8 14.33 8 13.5M19 10L17.5 5.5H6.5L5 10H19M22.87 21.19L18.76 17.08C19.17 16.04 18.94 14.82 18.08 13.97C17.18 13.06 15.83 12.88 14.74 13.38L16.68 15.32L15.33 16.68L13.34 14.73C12.8 15.82 13.05 17.17 13.93 18.08C14.79 18.94 16 19.16 17.05 18.76L21.16 22.86C21.34 23.05 21.61 23.05 21.79 22.86L22.83 21.83C23.05 21.65 23.05 21.33 22.87 21.19Z\";\nexport var mdiCarabiner = \"M8 17.5C8 18.33 7.33 19 6.5 19S5 18.33 5 17.5 5.67 16 6.5 16 8 16.67 8 17.5M18 5.59C17.79 3.54 16.18 2 14.24 2H8.88C6.95 2 5.36 3.5 5.15 5.53L5 6.59C4.92 7.34 5.5 8 6.24 8C6.87 8 7.39 7.53 7.47 6.91L7.61 5.82C7.68 5.07 8.23 4.5 8.88 4.5H14.24C14.89 4.5 15.44 5.07 15.5 5.82L16.5 16.88C16.59 17.74 16 18.5 15.25 18.5L10.04 17.82C9.95 18.77 9.5 19.6 8.8 20.18L14.93 21L15.09 21H15.25C16.27 21 17.26 20.56 17.96 19.78C18.71 18.94 19.09 17.8 19 16.65L18 5.59M11.66 7.94C11.08 7.57 10.31 7.75 9.94 8.34L6.39 14C6.43 14 6.46 14 6.5 14C7.38 14 8.18 14.34 8.8 14.88L12.06 9.66C12.43 9.08 12.25 8.31 11.66 7.94Z\";\nexport var mdiCaravan = \"M5,7A2,2 0 0,0 3,9V15A2,2 0 0,0 5,17H7A3,3 0 0,0 10,20A3,3 0 0,0 13,17H21V15H19V9A2,2 0 0,0 17,7H5M5,9H10V12H5V9M13,9H17V12H13V9M10,16A1,1 0 0,1 11,17A1,1 0 0,1 10,18A1,1 0 0,1 9,17A1,1 0 0,1 10,16Z\";\nexport var mdiCard = \"M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20Z\";\nexport var mdiCardAccountDetails = \"M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M14,6V7H22V6H14M14,8V9H21.5L22,9V8H14M14,10V11H21V10H14M8,13.91C6,13.91 2,15 2,17V18H14V17C14,15 10,13.91 8,13.91M8,6A3,3 0 0,0 5,9A3,3 0 0,0 8,12A3,3 0 0,0 11,9A3,3 0 0,0 8,6Z\";\nexport var mdiCardAccountDetailsOutline = \"M22,3H2C0.91,3.04 0.04,3.91 0,5V19C0.04,20.09 0.91,20.96 2,21H22C23.09,20.96 23.96,20.09 24,19V5C23.96,3.91 23.09,3.04 22,3M22,19H2V5H22V19M14,17V15.75C14,14.09 10.66,13.25 9,13.25C7.34,13.25 4,14.09 4,15.75V17H14M9,7A2.5,2.5 0 0,0 6.5,9.5A2.5,2.5 0 0,0 9,12A2.5,2.5 0 0,0 11.5,9.5A2.5,2.5 0 0,0 9,7M14,7V8H20V7H14M14,9V10H20V9H14M14,11V12H18V11H14\";\nexport var mdiCardAccountDetailsStar = \"M20 22.09L22.45 23.58L21.8 20.77L24 18.89L21.11 18.64L20 16L18.87 18.64L16 18.89L18.18 20.77L17.5 23.58L20 22.09M14.08 21H2C.95 21 0 20.05 0 19V5C0 3.95 .95 3 2 3H22C23.05 3 24 3.95 24 5V15.53C22.94 14.58 21.54 14 20 14C16.69 14 14 16.69 14 20C14 20.34 14.03 20.68 14.08 21M8 13.91C6 13.91 2 15 2 17V18H14V17C14 15 10 13.91 8 13.91M8 6C6.35 6 5 7.35 5 9C5 10.65 6.35 12 8 12C9.65 12 11 10.65 11 9C11 7.35 9.65 6 8 6M21 10H14V11H21V10M22 8H14V9H22V8M22 6H14V7H22V6Z\";\nexport var mdiCardAccountDetailsStarOutline = \"M20 22.09L22.45 23.58L21.8 20.77L24 18.89L21.11 18.64L20 16L18.87 18.64L16 18.89L18.18 20.77L17.5 23.58L20 22.09M14.08 21H2C.91 20.96 .04 20.09 0 19V5C.04 3.91 .91 3.04 2 3H22C23.09 3.04 23.96 3.91 24 5V15.53C23.42 15 22.75 14.61 22 14.34V5H2V19H14.08C14.03 19.33 14 19.66 14 20C14 20.34 14.03 20.68 14.08 21M14 17H4V15.75C4 14.09 7.34 13.25 9 13.25C10.66 13.25 14 14.09 14 15.75V17M14 11H18V12H14V11M9 7C7.63 7 6.5 8.13 6.5 9.5C6.5 10.87 7.63 12 9 12C10.37 12 11.5 10.87 11.5 9.5C11.5 8.13 10.37 7 9 7M14 9H20V10H14V9M14 7H20V8H14V7Z\";\nexport var mdiCardAccountMail = \"M21,8V7L18,9L15,7V8L18,10M22,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M8,6A3,3 0 0,1 11,9A3,3 0 0,1 8,12A3,3 0 0,1 5,9A3,3 0 0,1 8,6M14,18H2V17C2,15 6,13.9 8,13.9C10,13.9 14,15 14,17M22,12H14V6H22\";\nexport var mdiCardAccountMailOutline = \"M22,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M22,19H2V5H22V19M21,6H14V11H21V6M20,8L17.5,9.75L15,8V7L17.5,8.75L20,7V8M9,12A3,3 0 0,0 12,9A3,3 0 0,0 9,6A3,3 0 0,0 6,9A3,3 0 0,0 9,12M9,8A1,1 0 0,1 10,9A1,1 0 0,1 9,10A1,1 0 0,1 8,9A1,1 0 0,1 9,8M15,16.59C15,14.09 11.03,13 9,13C6.97,13 3,14.09 3,16.59V18H15V16.59M5.5,16C6.22,15.5 7.7,15 9,15C10.3,15 11.77,15.5 12.5,16H5.5Z\";\nexport var mdiCardAccountPhone = \"M22,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M8,6A3,3 0 0,1 11,9A3,3 0 0,1 8,12A3,3 0 0,1 5,9A3,3 0 0,1 8,6M14,18H2V17C2,15 6,13.9 8,13.9C10,13.9 14,15 14,17V18M17.85,14H19.5L21,16L19,18C17.7,17 16.73,15.61 16.28,14C16.1,13.36 16,12.69 16,12C16,11.31 16.1,10.64 16.28,10C16.73,8.38 17.7,7 19,6L21,8L19.5,10H17.85C17.63,10.63 17.5,11.3 17.5,12C17.5,12.7 17.63,13.37 17.85,14Z\";\nexport var mdiCardAccountPhoneOutline = \"M22,3H2A2,2 0 0,0 0,5V19A2,2 0 0,0 2,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M22,19H2V5H22V19M19,18L21,16L19.5,14H17.85C17.63,13.37 17.5,12.7 17.5,12C17.5,11.3 17.63,10.63 17.85,10H19.5L21,8L19,6C17.7,7 16.73,8.38 16.28,10C16.1,10.64 16,11.31 16,12C16,12.69 16.1,13.36 16.28,14C16.73,15.61 17.7,17 19,18M9,12A3,3 0 0,0 12,9A3,3 0 0,0 9,6A3,3 0 0,0 6,9A3,3 0 0,0 9,12M9,8A1,1 0 0,1 10,9A1,1 0 0,1 9,10A1,1 0 0,1 8,9A1,1 0 0,1 9,8M15,16.59C15,14.09 11.03,13 9,13C6.97,13 3,14.09 3,16.59V18H15V16.59M5.5,16C6.22,15.5 7.7,15 9,15C10.3,15 11.77,15.5 12.5,16H5.5Z\";\nexport var mdiCardBulleted = \"M20,4A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20M11,13H9V15H11V13M19,13H13V15H19V13M7,9H5V11H7V9M19,9H9V11H19V9Z\";\nexport var mdiCardBulletedOff = \"M3.35,3.58L20.65,20.87L19.23,22.29L16.94,20H4A2,2 0 0,1 2,18V6C2,5.72 2.06,5.46 2.16,5.22L1.23,4.29L2.65,2.87L3.35,3.58M6.6,4H20A2,2 0 0,1 22,6V18C22,18.4 21.88,18.77 21.68,19.08L17.6,15H20V13H15.6L13.6,11H20V9H11.6L6.6,4M9.94,13H9V15H11V14.06L9.94,13M5.94,9H5V11H7V10.06L5.94,9Z\";\nexport var mdiCardBulletedOffOutline = \"M20.59,20.87L19.17,22.29L16.88,20H4A2,2 0 0,1 2,18V6C2,5.74 2.05,5.5 2.14,5.26L1.17,4.29L2.59,2.87L3.73,4L20.59,20.87V20.87M6.54,4H20A2,2 0 0,1 22,6V18C22,18.41 21.87,18.8 21.66,19.12L20,17.46V6H8.54L6.54,4M4,18H14.88L11.88,15H10V13.12L7.88,11H6V9.12L4,7.12V18M18,15H17.54L15.54,13H18V15M18,11H13.54L11.54,9H18V11Z\";\nexport var mdiCardBulletedOutline = \"M12,15H10V13H12V15M18,15H14V13H18V15M8,11H6V9H8V11M18,11H10V9H18V11M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z\";\nexport var mdiCardBulletedSettings = \"M9,22V24H7V22H9M13,22V24H11V22H13M17,22V24H15V22H17M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M11,13H9V15H11V13M19,13H13V15H19V13M7,9H5V11H7V9M19,9H9V11H19V9Z\";\nexport var mdiCardBulletedSettingsOutline = \"M9,22V24H7V22H9M13,22V24H11V22H13M17,22V24H15V22H17M12,15H10V13H12V15M18,15H14V13H18V15M8,11H6V9H8V11M18,11H10V9H18V11M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z\";\nexport var mdiCardMinus = \"M23 18V20H15V18H23M19 13C20.09 13 21.12 13.3 22 13.81V6C22 4.89 21.11 4 20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19C13 15.69 15.69 13 19 13Z\";\nexport var mdiCardMinusOutline = \"M23 18V20H15V18H23M13.09 18H4V6H20V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.89 21.11 4 20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19C13 18.66 13.04 18.33 13.09 18Z\";\nexport var mdiCardMultiple = \"M21 3C21.53 3 22.04 3.21 22.41 3.59C22.79 3.96 23 4.47 23 5V15C23 15.53 22.79 16.04 22.41 16.41C22.04 16.79 21.53 17 21 17H7C6.47 17 5.96 16.79 5.59 16.41C5.21 16.04 5 15.53 5 15V5C5 4.47 5.21 3.96 5.59 3.59C5.96 3.21 6.47 3 7 3H21M3 19H18V21H3C2.47 21 1.96 20.79 1.59 20.41C1.21 20.04 1 19.53 1 19V8H3V19Z\";\nexport var mdiCardMultipleOutline = \"M21 16V6H7V16H21M21 4C21.53 4 22.04 4.21 22.41 4.59C22.79 4.96 23 5.47 23 6V16C23 16.53 22.79 17.04 22.41 17.41C22.04 17.79 21.53 18 21 18H7C5.89 18 5 17.1 5 16V6C5 4.89 5.89 4 7 4H21M3 20H18V22H3C2.47 22 1.96 21.79 1.59 21.41C1.21 21.04 1 20.53 1 20V9H3V20Z\";\nexport var mdiCardOff = \"M21.88 18.68L7.2 4H20C21.11 4 22 4.89 22 6V18C22 18.24 21.96 18.47 21.88 18.68M20.56 19.91L20.57 19.91L2.39 1.73L1.11 3L2.65 4.54C2.25 4.9 2 5.42 2 6V18C2 19.11 2.9 20 4 20H18.11L20.84 22.73L22.11 21.46L20.56 19.91Z\";\nexport var mdiCardOffOutline = \"M9.2 6L7.2 4H20C21.11 4 22 4.89 22 6V18C22 18.24 21.96 18.47 21.88 18.68L20 16.8V6H9.2M22.11 21.46L20.84 22.73L18.11 20H4C2.9 20 2 19.11 2 18V6C2 5.42 2.25 4.9 2.65 4.54L1.11 3L2.39 1.73L6.66 6L18.65 18H18.66L20.57 19.91L20.56 19.91L22.11 21.46M16.11 18L4.11 6H4V18H16.11Z\";\nexport var mdiCardOutline = \"M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z\";\nexport var mdiCardPlus = \"M13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H20C21.11 4 22 4.89 22 6V13.81C21.12 13.3 20.09 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiCardPlusOutline = \"M21 15V18H24V20H21V23H19V20H16V18H19V15H21M14 18H3V6H19V13H21V6C21 4.89 20.11 4 19 4H3C1.9 4 1 4.89 1 6V18C1 19.11 1.9 20 3 20H14V18Z\";\nexport var mdiCardRemove = \"M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19M19 13C20.09 13 21.12 13.3 22 13.81V6C22 4.89 21.11 4 20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19C13 15.69 15.69 13 19 13Z\";\nexport var mdiCardRemoveOutline = \"M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19M13.09 18H4V6H20V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.89 21.11 4 20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19C13 18.66 13.04 18.33 13.09 18Z\";\nexport var mdiCardSearch = \"M11.5 9C10.12 9 9 10.12 9 11.5S10.12 14 11.5 14 14 12.88 14 11.5 12.88 9 11.5 9M20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4M16.79 18.21L13.88 15.3C13.19 15.74 12.37 16 11.5 16C9 16 7 14 7 11.5S9 7 11.5 7 16 9 16 11.5C16 12.38 15.74 13.19 15.3 13.89L18.21 16.79L16.79 18.21Z\";\nexport var mdiCardSearchOutline = \"M11.5 16C12.37 16 13.19 15.74 13.88 15.3L16.32 17.74L17.74 16.32L15.3 13.89C15.74 13.19 16 12.38 16 11.5C16 9 14 7 11.5 7S7 9 7 11.5 9 16 11.5 16M11.5 9C12.88 9 14 10.12 14 11.5S12.88 14 11.5 14 9 12.88 9 11.5 10.12 9 11.5 9M20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4M20 18H4V6H20V18Z\";\nexport var mdiCardText = \"M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M5,13V15H16V13H5M5,9V11H19V9H5Z\";\nexport var mdiCardTextOutline = \"M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4M6,9H18V11H6V9M6,13H16V15H6V13Z\";\nexport var mdiCards = \"M21.47,4.35L20.13,3.79V12.82L22.56,6.96C22.97,5.94 22.5,4.77 21.47,4.35M1.97,8.05L6.93,20C7.24,20.77 7.97,21.24 8.74,21.26C9,21.26 9.27,21.21 9.53,21.1L16.9,18.05C17.65,17.74 18.11,17 18.13,16.26C18.14,16 18.09,15.71 18,15.45L13,3.5C12.71,2.73 11.97,2.26 11.19,2.25C10.93,2.25 10.67,2.31 10.42,2.4L3.06,5.45C2.04,5.87 1.55,7.04 1.97,8.05M18.12,4.25A2,2 0 0,0 16.12,2.25H14.67L18.12,10.59\";\nexport var mdiCardsClub = \"M12,2C14.3,2 16.3,4 16.3,6.2C16.21,8.77 14.34,9.83 14.04,10C15.04,9.5 16.5,9.5 16.5,9.5C19,9.5 21,11.3 21,13.8C21,16.3 19,18 16.5,18C16.5,18 15,18 13,17C13,17 12.7,19 15,22H9C11.3,19 11,17 11,17C9,18 7.5,18 7.5,18C5,18 3,16.3 3,13.8C3,11.3 5,9.5 7.5,9.5C7.5,9.5 8.96,9.5 9.96,10C9.66,9.83 7.79,8.77 7.7,6.2C7.7,4 9.7,2 12,2Z\";\nexport var mdiCardsClubOutline = \"M16.6 9.5C16.8 8.9 17 8.2 17 7.5C17 4.5 14.8 2 12 2S7 4.5 7 7.5C7 8.2 7.1 8.9 7.4 9.5C4.9 9.6 3 11.4 3 13.8C3 16.3 5 18 7.5 18C7.5 18 10 18 11 17C11 17 11.3 19 9 22H15C12.7 19 13 17 13 17C14 18 16.5 18 16.5 18C19 18 21 16.3 21 13.8C21 11.4 19.1 9.6 16.6 9.5M16.5 16C16.5 16 14 16 13 15H11C10 16 7.5 16 7.5 16C6.3 16 5 15.3 5 13.8C5 12.5 6.1 11.5 7.5 11.5C7.8 11.5 8.3 11.6 8.8 11.7C8.9 11.7 9 11.8 9.1 11.8L10 10.1C9.8 9.9 9.7 9.7 9.6 9.5C9.2 8.9 9 8.3 9 7.5C9 5.6 10.3 4 12 4S15 5.6 15 7.5C15 8.3 14.8 9 14.4 9.6C14.3 9.8 14.2 9.9 14.1 10.1L15 11.8C15.1 11.8 15.2 11.7 15.3 11.7C15.7 11.6 16.2 11.5 16.6 11.5C18 11.5 19.1 12.5 19.1 13.8C19 15.3 17.7 16 16.5 16Z\";\nexport var mdiCardsDiamond = \"M19,12L12,22L5,12L12,2\";\nexport var mdiCardsDiamondOutline = \"M12 2L5 12L12 22L19 12M7.44 12L12 5.5L16.56 12L12 18.5\";\nexport var mdiCardsHeart = \"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z\";\nexport var mdiCardsHeartOutline = \"M12.1 18.55L12 18.65L11.89 18.55C7.14 14.24 4 11.39 4 8.5C4 6.5 5.5 5 7.5 5C9.04 5 10.54 6 11.07 7.36H12.93C13.46 6 14.96 5 16.5 5C18.5 5 20 6.5 20 8.5C20 11.39 16.86 14.24 12.1 18.55M16.5 3C14.76 3 13.09 3.81 12 5.08C10.91 3.81 9.24 3 7.5 3C4.42 3 2 5.41 2 8.5C2 12.27 5.4 15.36 10.55 20.03L12 21.35L13.45 20.03C18.6 15.36 22 12.27 22 8.5C22 5.41 19.58 3 16.5 3Z\";\nexport var mdiCardsOutline = \"M11.19,2.25C10.93,2.25 10.67,2.31 10.42,2.4L3.06,5.45C2.04,5.87 1.55,7.04 1.97,8.05L6.93,20C7.24,20.77 7.97,21.23 8.74,21.25C9,21.25 9.27,21.22 9.53,21.1L16.9,18.05C17.65,17.74 18.11,17 18.13,16.25C18.14,16 18.09,15.71 18,15.45L13,3.5C12.71,2.73 11.97,2.26 11.19,2.25M14.67,2.25L18.12,10.6V4.25A2,2 0 0,0 16.12,2.25M20.13,3.79V12.82L22.56,6.96C22.97,5.94 22.5,4.78 21.47,4.36M11.19,4.22L16.17,16.24L8.78,19.3L3.8,7.29\";\nexport var mdiCardsPlaying = \"M14.7 2.2H16.2C17.3 2.2 18.2 3.1 18.2 4.2V10.6L14.7 2.2M20.1 3.8L21.4 4.4C22.4 4.8 22.9 6 22.5 7L20.1 12.9V3.8M18 15.5L13 3.5C12.7 2.7 12 2.3 11.2 2.3C10.9 2.3 10.7 2.4 10.4 2.5L3 5.5C2 5.9 1.5 7 2 8L7 20C7.3 20.8 8 21.2 8.8 21.2C9.1 21.2 9.3 21.2 9.6 21L17 18C17.8 17.7 18.2 17 18.2 16.2C18.1 16 18.1 15.7 18 15.5M11.4 15L8.2 12.6L8.6 8.6L11.8 11L11.4 15\";\nexport var mdiCardsPlayingClub = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M14 15C13.4 15 12.9 14.7 12.5 14.3L13.5 17H10.5L11.5 14.3C11.1 14.7 10.6 15 10 15C8.9 15 8 14.1 8 13S8.9 11 10 11H10.3C10.1 10.7 10 10.3 10 10C10 8.9 10.9 8 12 8S14 8.9 14 10C14 10.4 13.9 10.7 13.7 11H14C15.1 11 16 11.9 16 13S15.1 15 14 15Z\";\nexport var mdiCardsPlayingClubMultiple = \"M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M16 13C15.4 13 14.9 12.7 14.5 12.3L15.5 15H12.5L13.5 12.3C13.1 12.7 12.6 13 12 13C10.9 13 10 12.1 10 11S10.9 9 12 9H12.3C12.1 8.7 12 8.4 12 8C12 6.9 12.9 6 14 6S16 6.9 16 8C16 8.4 15.9 8.7 15.7 9H16C17.1 9 18 9.9 18 11S17.1 13 16 13Z\";\nexport var mdiCardsPlayingClubMultipleOutline = \"M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M19 18H9V2H19V18M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M14 6C12.9 6 12 6.9 12 8C12 8.4 12.1 8.7 12.3 9H12C10.9 9 10 9.9 10 11S10.9 13 12 13C12.6 13 13.1 12.7 13.5 12.3L12.5 15H15.5L14.5 12.3C14.9 12.7 15.4 13 16 13C17.1 13 18 12.1 18 11S17.1 9 16 9H15.7C15.9 8.7 16 8.4 16 8C16 6.9 15.1 6 14 6Z\";\nexport var mdiCardsPlayingClubOutline = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M17 20H7V4H17V20M12 8C10.9 8 10 8.9 10 10C10 10.4 10.1 10.7 10.3 11H10C8.9 11 8 11.9 8 13S8.9 15 10 15C10.6 15 11.1 14.7 11.5 14.3L10.5 17H13.5L12.5 14.3C12.9 14.7 13.4 15 14 15C15.1 15 16 14.1 16 13S15.1 11 14 11H13.7C13.9 10.7 14 10.3 14 10C14 8.9 13.1 8 12 8Z\";\nexport var mdiCardsPlayingDiamond = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M12 17L9 12L12 7L15 12L12 17Z\";\nexport var mdiCardsPlayingDiamondMultiple = \"M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M14 15L11 10L14 5L17 10L14 15Z\";\nexport var mdiCardsPlayingDiamondMultipleOutline = \"M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M19 18H9V2H19V18M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M14 5L11 10L14 15L17 10L14 5Z\";\nexport var mdiCardsPlayingDiamondOutline = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M17 20H7V4H17V20M12 7L9 12L12 17L15 12L12 7Z\";\nexport var mdiCardsPlayingHeart = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M12.6 15.8L12 16.3L11.4 15.8C9.4 13.9 8 12.7 8 11.2C8 10 9 9 10.2 9C10.9 9 11.6 9.3 12 9.8C12.4 9.3 13.1 9 13.8 9C15 9 16 9.9 16 11.2C16 12.7 14.6 13.9 12.6 15.8Z\";\nexport var mdiCardsPlayingHeartMultiple = \"M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M14.6 13.8L14 14.3L13.4 13.8C11.4 11.9 10 10.7 10 9.2C10 8 11 7 12.2 7C12.9 7 13.6 7.3 14 7.8C14.4 7.3 15.1 7 15.8 7C17 7 18 7.9 18 9.2C18 10.7 16.6 11.9 14.6 13.8Z\";\nexport var mdiCardsPlayingHeartMultipleOutline = \"M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M19 18H9V2H19V18M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M12.2 7C11 7 10 8 10 9.2C10 10.7 11.4 11.9 13.4 13.8L14 14.3L14.6 13.8C16.6 11.9 18 10.7 18 9.2C18 7.9 17 7 15.8 7C15.1 7 14.4 7.3 14 7.8C13.6 7.3 12.9 7 12.2 7Z\";\nexport var mdiCardsPlayingHeartOutline = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M17 20H7V4H17V20M10.2 9C9 9 8 10 8 11.2C8 12.7 9.4 13.9 11.4 15.8L12 16.3L12.6 15.8C14.6 13.9 16 12.7 16 11.2C16 9.9 15 9 13.8 9C13.1 9 12.4 9.3 12 9.8C11.6 9.3 10.9 9 10.2 9Z\";\nexport var mdiCardsPlayingOutline = \"M11.19,2.25C11.97,2.26 12.71,2.73 13,3.5L18,15.45C18.09,15.71 18.14,16 18.13,16.25C18.11,17 17.65,17.74 16.9,18.05L9.53,21.1C9.27,21.22 9,21.25 8.74,21.25C7.97,21.23 7.24,20.77 6.93,20L1.97,8.05C1.55,7.04 2.04,5.87 3.06,5.45L10.42,2.4C10.67,2.31 10.93,2.25 11.19,2.25M14.67,2.25H16.12A2,2 0 0,1 18.12,4.25V10.6L14.67,2.25M20.13,3.79L21.47,4.36C22.5,4.78 22.97,5.94 22.56,6.96L20.13,12.82V3.79M11.19,4.22L3.8,7.29L8.77,19.3L16.17,16.24L11.19,4.22M8.65,8.54L11.88,10.95L11.44,14.96L8.21,12.54L8.65,8.54Z\";\nexport var mdiCardsPlayingSpade = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M13.8 15C13.4 15 13 14.9 12.6 14.7L13.5 17H10.5L11.4 14.7C11 14.9 10.6 15 10.2 15C9 15 8 14 8 12.8C8 11.3 9.4 10.1 11.4 8.2L12 7.7L12.6 8.2C14.6 10.1 16 11.3 16 12.8C16 14.1 15 15 13.8 15Z\";\nexport var mdiCardsPlayingSpadeMultiple = \"M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M15.8 13C15.4 13 15 12.9 14.6 12.7L15.5 15H12.5L13.4 12.7C13 12.9 12.6 13 12.2 13C11 13 10 12 10 10.8C10 9.3 11.4 8.1 13.4 6.2L14 5.7L14.6 6.2C16.6 8.1 18 9.3 18 10.8C18 12.1 17 13 15.8 13Z\";\nexport var mdiCardsPlayingSpadeMultipleOutline = \"M19 0H9C7.9 0 7 .9 7 2V18C7 19.1 7.9 20 9 20H19C20.1 20 21 19.1 21 18V2C21 .9 20.1 0 19 0M19 18H9V2H19V18M3 4V22C3 23.1 3.9 24 5 24H17V22H5V4H3M14 5.7L13.4 6.2C11.4 8.1 10 9.3 10 10.8C10 12 11 13 12.2 13C12.6 13 13 12.9 13.4 12.7L12.5 15H15.5L14.6 12.7C14.9 12.9 15.4 13 15.8 13C17 13 18 12.1 18 10.8C18 9.3 16.6 8.1 14.6 6.2L14 5.7Z\";\nexport var mdiCardsPlayingSpadeOutline = \"M17 2H7C5.9 2 5 2.9 5 4V20C5 21.1 5.9 22 7 22H17C18.1 22 19 21.1 19 20V4C19 2.9 18.1 2 17 2M17 20H7V4H17V20M12 7.7L11.4 8.2C9.4 10.1 8 11.3 8 12.8C8 14 9 15 10.2 15C10.6 15 11 14.9 11.4 14.7L10.5 17H13.5L12.6 14.7C12.9 14.9 13.4 15 13.8 15C15 15 16 14.1 16 12.8C16 11.3 14.6 10.1 12.6 8.2L12 7.7Z\";\nexport var mdiCardsSpade = \"M12,2C9,7 4,9 4,14C4,16 6,18 8,18C9,18 10,18 11,17C11,17 11.32,19 9,22H15C13,19 13,17 13,17C14,18 15,18 16,18C18,18 20,16 20,14C20,9 15,7 12,2Z\";\nexport var mdiCardsSpadeOutline = \"M11 17C11 17 11.3 19 9 22H15C12.7 19 13 17 13 17S14 18 16 18 20 16 20 14C20 9 15 7 12 2C9 7 4 9 4 14C4 16 6 18 8 18S11 17 11 17M13 14H11C11 14 10 16 8 16C7.1 16 6 14.9 6 14C5.8 11 9.9 8.2 12 5.4C14.1 8.1 18.2 10.9 18 14C18 14.9 16.9 16 16 16C14 16 13 14 13 14Z\";\nexport var mdiCardsVariant = \"M5,2H19A1,1 0 0,1 20,3V13A1,1 0 0,1 19,14H5A1,1 0 0,1 4,13V3A1,1 0 0,1 5,2M6,4V12H18V4H6M20,17A1,1 0 0,1 19,18H5A1,1 0 0,1 4,17V16H20V17M20,21A1,1 0 0,1 19,22H5A1,1 0 0,1 4,21V20H20V21Z\";\nexport var mdiCarrot = \"M16,10L15.8,11H13.5A0.5,0.5 0 0,0 13,11.5A0.5,0.5 0 0,0 13.5,12H15.6L14.6,17H12.5A0.5,0.5 0 0,0 12,17.5A0.5,0.5 0 0,0 12.5,18H14.4L14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20L9,15H10.5A0.5,0.5 0 0,0 11,14.5A0.5,0.5 0 0,0 10.5,14H8.8L8,10C8,8.8 8.93,7.77 10.29,7.29L8.9,5.28C8.59,4.82 8.7,4.2 9.16,3.89C9.61,3.57 10.23,3.69 10.55,4.14L11,4.8V3A1,1 0 0,1 12,2A1,1 0 0,1 13,3V5.28L14.5,3.54C14.83,3.12 15.47,3.07 15.89,3.43C16.31,3.78 16.36,4.41 16,4.84L13.87,7.35C15.14,7.85 16,8.85 16,10Z\";\nexport var mdiCart = \"M17,18C15.89,18 15,18.89 15,20A2,2 0 0,0 17,22A2,2 0 0,0 19,20C19,18.89 18.1,18 17,18M1,2V4H3L6.6,11.59L5.24,14.04C5.09,14.32 5,14.65 5,15A2,2 0 0,0 7,17H19V15H7.42A0.25,0.25 0 0,1 7.17,14.75C7.17,14.7 7.18,14.66 7.2,14.63L8.1,13H15.55C16.3,13 16.96,12.58 17.3,11.97L20.88,5.5C20.95,5.34 21,5.17 21,5A1,1 0 0,0 20,4H5.21L4.27,2M7,18C5.89,18 5,18.89 5,20A2,2 0 0,0 7,22A2,2 0 0,0 9,20C9,18.89 8.1,18 7,18Z\";\nexport var mdiCartArrowDown = \"M10 0V4H8L12 8L16 4H14V0M1 2V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2M7 18C5.9 18 5 18.9 5 20S5.9 22 7 22 9 21.1 9 20 8.1 18 7 18M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18Z\";\nexport var mdiCartArrowRight = \"M9,20A2,2 0 0,1 7,22A2,2 0 0,1 5,20A2,2 0 0,1 7,18A2,2 0 0,1 9,20M17,18A2,2 0 0,0 15,20A2,2 0 0,0 17,22A2,2 0 0,0 19,20A2,2 0 0,0 17,18M7.2,14.63C7.19,14.67 7.19,14.71 7.2,14.75A0.25,0.25 0 0,0 7.45,15H19V17H7A2,2 0 0,1 5,15C5,14.65 5.07,14.31 5.24,14L6.6,11.59L3,4H1V2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,12C16.94,12.62 16.27,13 15.55,13H8.1L7.2,14.63M9,9.5H13V11.5L16,8.5L13,5.5V7.5H9V9.5Z\";\nexport var mdiCartArrowUp = \"M12 0L8 4H10V8H14V4H16M1 2V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2M7 18C5.9 18 5 18.9 5 20S5.9 22 7 22 9 21.1 9 20 8.1 18 7 18M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18Z\";\nexport var mdiCartCheck = \"M9 20C9 21.1 8.1 22 7 22S5 21.1 5 20 5.9 18 7 18 9 18.9 9 20M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18M7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2H1V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8M18 2.8L16.6 1.4L11.8 6.2L9.2 3.6L7.8 5L11.8 9L18 2.8Z\";\nexport var mdiCartHeart = \"M9 20C9 21.1 8.1 22 7 22S5 21.1 5 20 5.9 18 7 18 9 18.9 9 20M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18M7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2H1V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8M12 9.3L11.4 8.8C9.4 6.9 8 5.7 8 4.2C8 3 9 2 10.2 2C10.9 2 11.6 2.3 12 2.8C12.4 2.3 13.1 2 13.8 2C15 2 16 2.9 16 4.2C16 5.7 14.6 6.9 12.6 8.8L12 9.3Z\";\nexport var mdiCartMinus = \"M16 6V4H8V6M7 18C5.9 18 5 18.9 5 20S5.9 22 7 22 9 21.1 9 20 8.1 18 7 18M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18M7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2H1V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8Z\";\nexport var mdiCartOff = \"M22.73,22.73L1.27,1.27L0,2.54L4.39,6.93L6.6,11.59L5.25,14.04C5.09,14.32 5,14.65 5,15A2,2 0 0,0 7,17H14.46L15.84,18.38C15.34,18.74 15,19.33 15,20A2,2 0 0,0 17,22C17.67,22 18.26,21.67 18.62,21.16L21.46,24L22.73,22.73M7.42,15A0.25,0.25 0 0,1 7.17,14.75L7.2,14.63L8.1,13H10.46L12.46,15H7.42M15.55,13C16.3,13 16.96,12.59 17.3,11.97L20.88,5.5C20.96,5.34 21,5.17 21,5A1,1 0 0,0 20,4H6.54L15.55,13M7,18A2,2 0 0,0 5,20A2,2 0 0,0 7,22A2,2 0 0,0 9,20A2,2 0 0,0 7,18Z\";\nexport var mdiCartOutline = \"M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z\";\nexport var mdiCartPercent = \"M7 18C8.1 18 9 18.9 9 20S8.1 22 7 22 5 21.1 5 20 5.9 18 7 18M17 18C18.1 18 19 18.9 19 20S18.1 22 17 22 15 21.1 15 20 15.9 18 17 18M7.2 14.8C7.2 14.9 7.3 15 7.4 15H19V17H7C5.9 17 5 16.1 5 15C5 14.6 5.1 14.3 5.2 14L6.5 11.6L3 4H1V2H4.3L8.6 11H15.6L19.5 4L21.2 5L17.3 12C17 12.6 16.3 13 15.6 13H8.1L7.2 14.6V14.8M9.4 1C10.2 1 10.8 1.6 10.8 2.4S10.2 3.8 9.4 3.8 8 3.2 8 2.4 8.7 1 9.4 1M14.6 9C13.8 9 13.2 8.4 13.2 7.6S13.8 6.2 14.6 6.2 16 6.8 16 7.6 15.3 9 14.6 9M9.2 9L8 7.8L14.8 1L16 2.2L9.2 9\";\nexport var mdiCartPlus = \"M11 9H13V6H16V4H13V1H11V4H8V6H11M7 18C5.9 18 5 18.9 5 20S5.9 22 7 22 9 21.1 9 20 8.1 18 7 18M17 18C15.9 18 15 18.9 15 20S15.9 22 17 22 19 21.1 19 20 18.1 18 17 18M7.2 14.8V14.7L8.1 13H15.5C16.2 13 16.9 12.6 17.2 12L21.1 5L19.4 4L15.5 11H8.5L4.3 2H1V4H3L6.6 11.6L5.2 14C5.1 14.3 5 14.6 5 15C5 16.1 5.9 17 7 17H19V15H7.4C7.3 15 7.2 14.9 7.2 14.8Z\";\nexport var mdiCartRemove = \"M14.1 8.5L12 6.4L9.9 8.5L8.5 7.1L10.6 5L8.5 2.9L9.9 1.5L12 3.6L14.1 1.5L15.5 2.9L13.4 5L15.5 7.1L14.1 8.5M7 18C8.1 18 9 18.9 9 20S8.1 22 7 22 5 21.1 5 20 5.9 18 7 18M17 18C18.1 18 19 18.9 19 20S18.1 22 17 22 15 21.1 15 20 15.9 18 17 18M7.2 14.8C7.2 14.9 7.3 15 7.4 15H19V17H7C5.9 17 5 16.1 5 15C5 14.6 5.1 14.3 5.2 14L6.5 11.6L3 4H1V2H4.3L8.6 11H15.6L19.5 4L21.2 5L17.3 12C17 12.6 16.3 13 15.6 13H8.1L7.2 14.6V14.8Z\";\nexport var mdiCartVariant = \"M19 20C19 21.11 18.11 22 17 22C15.89 22 15 21.1 15 20C15 18.89 15.89 18 17 18C18.11 18 19 18.9 19 20M7 18C5.89 18 5 18.89 5 20C5 21.1 5.89 22 7 22C8.11 22 9 21.11 9 20S8.11 18 7 18M7.2 14.63L7.17 14.75C7.17 14.89 7.28 15 7.42 15H19V17H7C5.89 17 5 16.1 5 15C5 14.65 5.09 14.32 5.24 14.04L6.6 11.59L3 4H1V2H4.27L5.21 4H20C20.55 4 21 4.45 21 5C21 5.17 20.95 5.34 20.88 5.5L17.3 11.97C16.96 12.58 16.3 13 15.55 13H8.1L7.2 14.63M8.5 11H10V9H7.56L8.5 11M11 9V11H14V9H11M14 8V6H11V8H14M17.11 9H15V11H16L17.11 9M18.78 6H15V8H17.67L18.78 6M6.14 6L7.08 8H10V6H6.14Z\";\nexport var mdiCaseSensitiveAlt = \"M20,14C20,12.5 19.5,12 18,12H16V11C16,10 16,10 14,10V15.4L14,19H16L18,19C19.5,19 20,18.47 20,17V14M12,12C12,10.5 11.47,10 10,10H6C4.5,10 4,10.5 4,12V19H6V16H10V19H12V12M10,7H14V5H10V7M22,9V20C22,21.11 21.11,22 20,22H4A2,2 0 0,1 2,20V9C2,7.89 2.89,7 4,7H8V5L10,3H14L16,5V7H20A2,2 0 0,1 22,9H22M16,17H18V14H16V17M6,12H10V14H6V12Z\";\nexport var mdiCash = \"M3,6H21V18H3V6M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M7,8A2,2 0 0,1 5,10V14A2,2 0 0,1 7,16H17A2,2 0 0,1 19,14V10A2,2 0 0,1 17,8H7Z\";\nexport var mdiCash100 = \"M2,5H22V20H2V5M20,18V7H4V18H20M17,8A2,2 0 0,0 19,10V15A2,2 0 0,0 17,17H7A2,2 0 0,0 5,15V10A2,2 0 0,0 7,8H17M17,13V12C17,10.9 16.33,10 15.5,10C14.67,10 14,10.9 14,12V13C14,14.1 14.67,15 15.5,15C16.33,15 17,14.1 17,13M15.5,11A0.5,0.5 0 0,1 16,11.5V13.5A0.5,0.5 0 0,1 15.5,14A0.5,0.5 0 0,1 15,13.5V11.5A0.5,0.5 0 0,1 15.5,11M13,13V12C13,10.9 12.33,10 11.5,10C10.67,10 10,10.9 10,12V13C10,14.1 10.67,15 11.5,15C12.33,15 13,14.1 13,13M11.5,11A0.5,0.5 0 0,1 12,11.5V13.5A0.5,0.5 0 0,1 11.5,14A0.5,0.5 0 0,1 11,13.5V11.5A0.5,0.5 0 0,1 11.5,11M8,15H9V10H8L7,10.5V11.5L8,11V15Z\";\nexport var mdiCashCheck = \"M3 6V18H13.32C13.1 17.33 13 16.66 13 16H7C7 14.9 6.11 14 5 14V10C6.11 10 7 9.11 7 8H17C17 9.11 17.9 10 19 10V10.06C19.67 10.06 20.34 10.18 21 10.4V6H3M12 9C10.3 9.03 9 10.3 9 12C9 13.7 10.3 14.94 12 15C12.38 15 12.77 14.92 13.14 14.77C13.41 13.67 13.86 12.63 14.97 11.61C14.85 10.28 13.59 8.97 12 9M21.63 12.27L17.76 16.17L16.41 14.8L15 16.22L17.75 19L23.03 13.68L21.63 12.27Z\";\nexport var mdiCashClock = \"M17.5 16.82L19.94 18.23L19.19 19.53L16 17.69V14H17.5V16.82M24 17C24 20.87 20.87 24 17 24S10 20.87 10 17C10 16.66 10.03 16.33 10.08 16H2V4H20V10.68C22.36 11.81 24 14.21 24 17M10.68 14C10.86 13.64 11.05 13.3 11.28 12.97C11.19 13 11.1 13 11 13C9.34 13 8 11.66 8 10S9.34 7 11 7 14 8.34 14 10C14 10.25 13.96 10.5 13.9 10.73C14.84 10.27 15.89 10 17 10C17.34 10 17.67 10.03 18 10.08V8C16.9 8 16 7.11 16 6H6C6 7.11 5.11 8 4 8V12C5.11 12 6 12.9 6 14H10.68M22 17C22 14.24 19.76 12 17 12S12 14.24 12 17 14.24 22 17 22 22 19.76 22 17Z\";\nexport var mdiCashEdit = \"M3 6H21V9.1C19.96 9.1 19.35 9.72 19.2 9.87L19.19 9.89L19 10.07V10C18.47 10 17.96 9.79 17.59 9.41C17.21 9.04 17 8.53 17 8H7C7 8.53 6.79 9.04 6.41 9.41C6.04 9.79 5.53 10 5 10V14C5.53 14 6.04 14.21 6.41 14.59C6.79 14.96 7 15.47 7 16H13.07L11.07 18H3V6M12 9C12.8 9 13.56 9.32 14.12 9.88C14.68 10.44 15 11.2 15 12C15 12.8 14.68 13.56 14.12 14.12C13.56 14.68 12.8 15 12 15C11.2 15 10.44 14.68 9.88 14.12C9.32 13.56 9 12.8 9 12C9 11.2 9.32 10.44 9.88 9.88C10.44 9.32 11.2 9 12 9M22.7 12.6L21.4 11.3C21.3 11.2 21.2 11.1 21 11.1C20.8 11.1 20.7 11.2 20.6 11.3L19.6 12.3L21.7 14.4L22.7 13.4C22.9 13.2 22.9 12.8 22.7 12.6M15.1 21L21.1 14.9L19.1 12.8L13 18.9V21H15.1Z\";\nexport var mdiCashFast = \"M17.12 9.88C16.56 9.32 15.8 9 15 9S13.44 9.32 12.88 9.88C12.32 10.44 12 11.2 12 12S12.32 13.56 12.88 14.12 14.2 15 15 15 16.56 14.68 17.12 14.12 18 12.8 18 12 17.68 10.44 17.12 9.88M7 6V18H23V6H7M21 14C20.47 14 19.96 14.21 19.59 14.59C19.21 14.96 19 15.47 19 16H11C11 15.47 10.79 14.96 10.41 14.59C10.04 14.21 9.53 14 9 14V10C9.53 10 10.04 9.79 10.41 9.41C10.79 9.04 11 8.53 11 8H19C19 8.53 19.21 9.04 19.59 9.41C19.96 9.79 20.47 10 21 10V14M5 8H3C2.45 8 2 7.55 2 7C2 6.45 2.45 6 3 6H5V8M5 13H2C1.45 13 1 12.55 1 12C1 11.45 1.45 11 2 11H5V13M5 18H1C.448 18 0 17.55 0 17C0 16.45 .448 16 1 16H5V18Z\";\nexport var mdiCashLock = \"M21.8 15C22.4 15 23 15.6 23 16.3V19.8C23 20.4 22.4 21 21.7 21H16.2C15.6 21 15 20.4 15 19.7V16.2C15 15.6 15.6 15 16.2 15V13.5C16.2 12.1 17.6 11 19 11C20.4 11 21.8 12.1 21.8 13.5V15M20.5 15V13.5C20.5 12.7 19.8 12.2 19 12.2C18.2 12.2 17.5 12.7 17.5 13.5V15H20.5M2 6H20V9.1L19 9C18.18 9 17.41 9.2 16.73 9.54C16.28 9.18 16 8.62 16 8H6C6 9.11 5.11 10 4 10V14C5.11 14 6 14.9 6 16H13.04L13 16.5V18H2V6M11 9C12.66 9 14 10.34 14 12C14 13.66 12.66 15 11 15C9.34 15 8 13.66 8 12C8 10.34 9.34 9 11 9Z\";\nexport var mdiCashLockOpen = \"M21.8 16C22.4 16 23 16.6 23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V13.5C16.2 12.1 17.6 11 19 11C20.4 11 21.8 12.1 21.8 13.5V14H20.5V13.5C20.5 12.7 19.8 12.2 19 12.2C18.2 12.2 17.5 12.7 17.5 13.5V16H21.8M2 6H20V9.1L19 9C18.18 9 17.41 9.2 16.73 9.54C16.28 9.18 16 8.62 16 8H6C6 9.11 5.11 10 4 10V14C5.11 14 6 14.9 6 16H13.04L13 16.5V18H2V6M11 9C12.66 9 14 10.34 14 12C14 13.66 12.66 15 11 15C9.34 15 8 13.66 8 12C8 10.34 9.34 9 11 9Z\";\nexport var mdiCashMarker = \"M18.5,16.8C17.8,16.8 17.3,16.2 17.3,15.6C17.3,14.9 17.9,14.4 18.5,14.4C19.1,14.4 19.7,15 19.7,15.6C19.8,16.2 19.2,16.8 18.5,16.8M18.5,12C16.6,12 15,13.6 15,15.5C15,18.1 18.5,22 18.5,22C18.5,22 22,18.1 22,15.5C22,13.6 20.4,12 18.5,12M14.9,11.3C14.6,10 13.4,9 12,9C10.3,9 9,10.3 9,12C9,13.7 10.3,15 12,15C12.4,15 12.7,14.9 13,14.8C13.2,13.4 13.9,12.2 14.9,11.3M13,16H7A2,2 0 0,0 5,14V10A2,2 0 0,0 7,8H17A2,2 0 0,0 19,10C19,10 20,10 21,10.6V6H3V18H13.5C13.3,17.3 13.1,16.7 13,16Z\";\nexport var mdiCashMinus = \"M15 15V17H23V15M14.97 11.61C14.85 10.28 13.59 8.97 12 9C10.3 9.03 9 10.3 9 12C9 13.7 10.3 14.94 12 15C12.38 15 12.77 14.92 13.14 14.77C13.41 13.67 13.86 12.63 14.97 11.61M13 16H7C7 14.9 6.11 14 5 14V10C6.11 10 7 9.11 7 8H17C17 9.11 17.9 10 19 10V10.06C19.67 10.06 20.34 10.18 21 10.4V6H3V18H13.32C13.1 17.33 13 16.66 13 16Z\";\nexport var mdiCashMultiple = \"M5,6H23V18H5V6M14,9A3,3 0 0,1 17,12A3,3 0 0,1 14,15A3,3 0 0,1 11,12A3,3 0 0,1 14,9M9,8A2,2 0 0,1 7,10V14A2,2 0 0,1 9,16H19A2,2 0 0,1 21,14V10A2,2 0 0,1 19,8H9M1,10H3V20H19V22H1V10Z\";\nexport var mdiCashOff = \"M3 4.9V4.95L3.05 4.94L4.11 6H3V18H16.11L20.84 22.73L22.11 21.46L4.57 3.91L2.39 1.73L1.11 3L3 4.9M6.41 9.41C6.61 9.22 6.76 9 6.86 8.75L9.16 11.05C9.05 11.35 9 11.67 9 12C9 12.8 9.32 13.56 9.88 14.12C10.44 14.68 11.2 15 12 15C12.33 15 12.65 14.95 12.95 14.84L14.11 16H7C7 15.47 6.79 14.96 6.41 14.59C6.04 14.21 5.53 14 5 14V10C5.53 10 6.04 9.79 6.41 9.41M17.69 14.5L21 17.8V6H9.2L11.2 8H17C17 8.53 17.21 9.04 17.59 9.41C17.96 9.79 18.47 10 19 10V14C18.5 14 18.05 14.18 17.69 14.5Z\";\nexport var mdiCashPlus = \"M15 15V17H18V20H20V17H23V15H20V12H18V15M14.97 11.61C14.85 10.28 13.59 8.97 12 9C10.3 9.03 9 10.3 9 12C9 13.7 10.3 14.94 12 15C12.38 15 12.77 14.92 13.14 14.77C13.41 13.67 13.86 12.63 14.97 11.61M13 16H7C7 14.9 6.11 14 5 14V10C6.11 10 7 9.11 7 8H17C17 9.11 17.9 10 19 10V10.06C19.67 10.06 20.34 10.18 21 10.4V6H3V18H13.32C13.1 17.33 13 16.66 13 16Z\";\nexport var mdiCashRefund = \"M12.3 8.93L9.88 6.5H15.5V10H17V5H9.88L12.3 2.57L11.24 1.5L7 5.75L11.24 10L12.3 8.93M12 14A3 3 0 1 0 15 17A3 3 0 0 0 12 14M3 11V23H21V11M19 19A2 2 0 0 0 17 21H7A2 2 0 0 0 5 19V15A2 2 0 0 0 7 13H17A2 2 0 0 0 19 15Z\";\nexport var mdiCashRegister = \"M2,17H22V21H2V17M6.25,7H9V6H6V3H14V6H11V7H17.8C18.8,7 19.8,8 20,9L20.5,16H3.5L4.05,9C4.05,8 5.05,7 6.25,7M13,9V11H18V9H13M6,9V10H8V9H6M9,9V10H11V9H9M6,11V12H8V11H6M9,11V12H11V11H9M6,13V14H8V13H6M9,13V14H11V13H9M7,4V5H13V4H7Z\";\nexport var mdiCashRemove = \"M15.46 18.12L16.88 19.54L19 17.41L21.12 19.54L22.54 18.12L20.41 16L22.54 13.88L21.12 12.46L19 14.59L16.88 12.46L15.46 13.88L17.59 16M14.97 11.62C14.86 10.28 13.58 8.97 12 9C10.3 9.04 9 10.3 9 12C9 13.7 10.3 14.94 12 15C12.39 15 12.77 14.92 13.14 14.77C13.41 13.67 13.86 12.63 14.97 11.62M13 16H7C7 14.9 6.1 14 5 14V10C6.1 10 7 9.1 7 8H17C17 9.1 17.9 10 19 10V10.05C19.67 10.06 20.34 10.18 21 10.4V6H3V18H13.32C13.1 17.33 13 16.66 13 16Z\";\nexport var mdiCashSync = \"M3 6V18H13.32C13.1 17.33 13 16.66 13 16H7C7 14.9 6.11 14 5 14V10C6.11 10 7 9.11 7 8H17C17 9.11 17.9 10 19 10V10.06C19.67 10.06 20.34 10.18 21 10.4V6H3M12 9C10.3 9.03 9 10.3 9 12S10.3 14.94 12 15C12.38 15 12.77 14.92 13.14 14.77C13.41 13.67 13.86 12.63 14.97 11.61C14.85 10.28 13.59 8.97 12 9M19 11L21.25 13.25L19 15.5V14C17.15 14 15.94 15.96 16.76 17.62L15.67 18.71C13.91 16.05 15.81 12.5 19 12.5V11M19 22L16.75 19.75L19 17.5V19C20.85 19 22.06 17.04 21.24 15.38L22.33 14.29C24.09 16.95 22.19 20.5 19 20.5V22\";\nexport var mdiCassette = \"M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H6L7,17H17L18,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M9,10H15V13H9V10M17.5,10A1.5,1.5 0 0,1 19,11.5A1.5,1.5 0 0,1 17.5,13A1.5,1.5 0 0,1 16,11.5A1.5,1.5 0 0,1 17.5,10Z\";\nexport var mdiCast = \"M1,10V12A9,9 0 0,1 10,21H12C12,14.92 7.07,10 1,10M1,14V16A5,5 0 0,1 6,21H8A7,7 0 0,0 1,14M1,18V21H4A3,3 0 0,0 1,18M21,3H3C1.89,3 1,3.89 1,5V8H3V5H21V19H14V21H21A2,2 0 0,0 23,19V5C23,3.89 22.1,3 21,3Z\";\nexport var mdiCastAudio = \"M2 11V13C7 13 11 17 11 22H13C13 15.9 8.1 11 2 11M20 2H10C8.9 2 8 2.9 8 4V10.5C9 11 9.9 11.7 10.7 12.4C11.6 11 13.2 10 15 10C17.8 10 20 12.2 20 15S17.8 20 15 20H14.8C14.9 20.7 15 21.3 15 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M15 8C13.9 8 13 7.1 13 6C13 4.9 13.9 4 15 4C16.1 4 17 4.9 17 6S16.1 8 15 8M15 18C14.8 18 14.5 18 14.3 17.9C13.8 16.4 13.1 15.1 12.2 13.9C12.6 12.8 13.7 11.9 15 11.9C16.7 11.9 18 13.2 18 14.9S16.7 18 15 18M2 15V17C4.8 17 7 19.2 7 22H9C9 18.1 5.9 15 2 15M2 19V22H5C5 20.3 3.7 19 2 19\";\nexport var mdiCastAudioVariant = \"M14.5 12C14.5 10.62 13.38 9.5 12 9.5C10.62 9.5 9.5 10.62 9.5 12C9.5 13 10.09 13.84 10.93 14.25L9.82 15.35C8.73 14.64 8 13.41 8 12C8 9.79 9.79 8 12 8C14.21 8 16 9.79 16 12C16 13.41 15.27 14.64 14.18 15.35L13.08 14.25C13.92 13.84 14.5 13 14.5 12M12 2C6.5 2 2 6.5 2 12C2 15.06 3.38 17.8 5.54 19.63L6.61 18.57C4.71 17 3.5 14.64 3.5 12C3.5 7.31 7.31 3.5 12 3.5C16.69 3.5 20.5 7.31 20.5 12C20.5 14.64 19.29 17 17.39 18.57L18.46 19.63C20.62 17.79 22 15.06 22 12C22 6.5 17.5 2 12 2M19 12C19 8.13 15.87 5 12 5C8.13 5 5 8.13 5 12C5 14.23 6.05 16.22 7.68 17.5L8.75 16.43C7.39 15.42 6.5 13.82 6.5 12C6.5 8.97 8.97 6.5 12 6.5C15.03 6.5 17.5 8.97 17.5 12C17.5 13.82 16.61 15.42 15.25 16.43L16.33 17.5C17.95 16.22 19 14.23 19 12M6 22H18L12 16L6 22Z\";\nexport var mdiCastConnected = \"M21,3H3C1.89,3 1,3.89 1,5V8H3V5H21V19H14V21H21A2,2 0 0,0 23,19V5C23,3.89 22.1,3 21,3M1,10V12A9,9 0 0,1 10,21H12C12,14.92 7.07,10 1,10M19,7H5V8.63C8.96,9.91 12.09,13.04 13.37,17H19M1,14V16A5,5 0 0,1 6,21H8A7,7 0 0,0 1,14M1,18V21H4A3,3 0 0,0 1,18Z\";\nexport var mdiCastEducation = \"M21,3H3A2,2 0 0,0 1,5V8H3V5H21V19H14V21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3M1,18V21H4A3,3 0 0,0 1,18M1,14V16A5,5 0 0,1 6,21H8A7,7 0 0,0 1,14M1,10V12A9,9 0 0,1 10,21H12C12,14.92 7.07,10 1,10M11,11.09V13.09L14.5,15L18,13.09V11.09L14.5,13L11,11.09M14.5,6L9,9L14.5,12L20,9L14.5,6Z\";\nexport var mdiCastOff = \"M1.6,1.27L0.25,2.75L1.41,3.8C1.16,4.13 1,4.55 1,5V8H3V5.23L18.2,19H14V21H20.41L22.31,22.72L23.65,21.24M6.5,3L8.7,5H21V16.14L23,17.95V5C23,3.89 22.1,3 21,3M1,10V12A9,9 0 0,1 10,21H12C12,14.92 7.08,10 1,10M1,14V16A5,5 0 0,1 6,21H8A7,7 0 0,0 1,14M1,18V21H4A3,3 0 0,0 1,18Z\";\nexport var mdiCastVariant = \"M6,22H18L12,16M21,3H3A2,2 0 0,0 1,5V17A2,2 0 0,0 3,19H7V17H3V5H21V17H17V19H21A2,2 0 0,0 23,17V5A2,2 0 0,0 21,3Z\";\nexport var mdiCastle = \"M2,13H4V15H6V13H8V15H10V13H12V15H14V10L17,7V1H19L23,3L19,5V7L22,10V22H11V19A2,2 0 0,0 9,17A2,2 0 0,0 7,19V22H2V13M18,10C17.45,10 17,10.54 17,11.2V13H19V11.2C19,10.54 18.55,10 18,10Z\";\nexport var mdiCat = \"M12,8L10.67,8.09C9.81,7.07 7.4,4.5 5,4.5C5,4.5 3.03,7.46 4.96,11.41C4.41,12.24 4.07,12.67 4,13.66L2.07,13.95L2.28,14.93L4.04,14.67L4.18,15.38L2.61,16.32L3.08,17.21L4.53,16.32C5.68,18.76 8.59,20 12,20C15.41,20 18.32,18.76 19.47,16.32L20.92,17.21L21.39,16.32L19.82,15.38L19.96,14.67L21.72,14.93L21.93,13.95L20,13.66C19.93,12.67 19.59,12.24 19.04,11.41C20.97,7.46 19,4.5 19,4.5C16.6,4.5 14.19,7.07 13.33,8.09L12,8M9,11A1,1 0 0,1 10,12A1,1 0 0,1 9,13A1,1 0 0,1 8,12A1,1 0 0,1 9,11M15,11A1,1 0 0,1 16,12A1,1 0 0,1 15,13A1,1 0 0,1 14,12A1,1 0 0,1 15,11M11,14H13L12.3,15.39C12.5,16.03 13.06,16.5 13.75,16.5A1.5,1.5 0 0,0 15.25,15H15.75A2,2 0 0,1 13.75,17C13,17 12.35,16.59 12,16V16H12C11.65,16.59 11,17 10.25,17A2,2 0 0,1 8.25,15H8.75A1.5,1.5 0 0,0 10.25,16.5C10.94,16.5 11.5,16.03 11.7,15.39L11,14Z\";\nexport var mdiCctv = \"M6.03 12.03L8.03 15.5L5.5 18.68L2 12.62L6.03 12.03M17 18V15.29C17.88 14.9 18.5 14.03 18.5 13C18.5 12.43 18.3 11.9 17.97 11.5L19.94 10.35C20.95 9.76 21.3 8.47 20.71 7.46L19.33 5.06C18.74 4.05 17.45 3.7 16.44 4.28L8.31 9C7.36 9.53 7.03 10.75 7.58 11.71L9.08 14.31C9.63 15.26 10.86 15.59 11.81 15.04L13.69 13.96C13.94 14.55 14.41 15.03 15 15.29V18C15 19.1 15.9 20 17 20H22V18H17Z\";\nexport var mdiCctvOff = \"M20.84 22.73L18.11 20H17C15.9 20 15 19.1 15 18V16.89L12.66 14.55L11.81 15.04C10.86 15.59 9.63 15.26 9.08 14.31L7.58 11.71C7.18 11 7.25 10.18 7.68 9.57L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M18.5 13C18.5 12.43 18.3 11.9 17.97 11.5L19.94 10.35C20.95 9.76 21.3 8.47 20.71 7.46L19.33 5.06C18.74 4.05 17.45 3.7 16.44 4.28L10.77 7.57L17.86 14.66C18.26 14.22 18.5 13.64 18.5 13M2 12.62L5.5 18.68L8.03 15.5L6.03 12.03L2 12.62Z\";\nexport var mdiCeilingFan = \"M8 3V5H11V10.27C10.38 10.63 10 11.29 10 12V13H14V12C14 11.29 13.62 10.63 13 10.27V5H16V3H8M6 12C3.79 12 2 12.67 2 13.5S3.79 15 6 15 10 14.33 10 13.5 8.21 12 6 12M18 12C15.79 12 14 12.67 14 13.5S15.79 15 18 15 22 14.33 22 13.5 20.21 12 18 12M10 14V15C10 15.72 10.38 16.38 11 16.73C11.62 17.09 12.38 17.09 13 16.73C13.62 16.38 14 15.71 14 15V14H10Z\";\nexport var mdiCeilingFanLight = \"M8 3V5H11V10.27C10.38 10.63 10 11.29 10 12V13H14V12C14 11.29 13.62 10.63 13 10.27V5H16V3H8M6 12C3.79 12 2 12.67 2 13.5C2 14.33 3.79 15 6 15S10 14.33 10 13.5C10 12.67 8.21 12 6 12M18 12C15.79 12 14 12.67 14 13.5C14 14.33 15.79 15 18 15S22 14.33 22 13.5C22 12.67 20.21 12 18 12M10 14V15C10 15.72 10.38 16.38 11 16.73C11.62 17.09 12.38 17.09 13 16.73C13.62 16.38 14 15.71 14 15V14H10M13 19V22H11V19H13M15.88 16.46L18 18.59L16.59 20L14.47 17.88L15.88 16.46M9.54 17.88L7.41 20L6 18.59L8.12 16.47L9.54 17.88\";\nexport var mdiCeilingLight = \"M8,9H11V4H13V9H16L20,17H4L8,9M14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18H14Z\";\nexport var mdiCeilingLightMultiple = \"M10 11H13V6H15V11H18L22 19H6L10 11M16 20C16 21.11 15.11 22 14 22S12 21.11 12 20H16M8.21 10.11L8.76 9H11V2H9V7H6L2 15H5.76L8.21 10.11Z\";\nexport var mdiCeilingLightMultipleOutline = \"M16.76 13L18.76 17H9.24L11.24 13H16.76M15 6H13V11H10L6 19H22L18 11H15V6M16 20C16 21.11 15.11 22 14 22S12 21.11 12 20H16M8.21 10.11L8.76 9H11V2H9V7H6L2 15H5.76L8.21 10.11Z\";\nexport var mdiCeilingLightOutline = \"M14.76 11L16.76 15H7.24L9.24 11H14.76M13 4H11V9H8L4 17H20L16 9H13V4M14 18H10C10 19.11 10.9 20 12 20S14 19.11 14 18Z\";\nexport var mdiCellphone = \"M17,19H7V5H17M17,1H7C5.89,1 5,1.89 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3C19,1.89 18.1,1 17,1Z\";\nexport var mdiCellphoneArrowDown = \"M17,1H7A2,2 0 0,0 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3A2,2 0 0,0 17,1M17,19H7V5H17V19M16,13H13V8H11V13H8L12,17L16,13Z\";\nexport var mdiCellphoneArrowDownVariant = \"M18 14L23 9L21.6 7.6L19 10.2V3H17V10.2L14.4 7.6L13 9L18 14M19 16V21C19 22.1 18.1 23 17 23H7C5.9 23 5 22.1 5 21V3C5 1.9 5.9 1 7 1H14V5H7V19H17V16H19Z\";\nexport var mdiCellphoneBasic = \"M15,2A1,1 0 0,0 14,3V6H10C8.89,6 8,6.89 8,8V20C8,21.11 8.89,22 10,22H15C16.11,22 17,21.11 17,20V8C17,7.26 16.6,6.62 16,6.28V3A1,1 0 0,0 15,2M10,8H15V13H10V8M10,15H11V16H10V15M12,15H13V16H12V15M14,15H15V16H14V15M10,17H11V18H10V17M12,17H13V18H12V17M14,17H15V18H14V17M10,19H11V20H10V19M12,19H13V20H12V19M14,19H15V20H14V19Z\";\nexport var mdiCellphoneCharging = \"M11 18.5V13H9L13 5.5V11H15M17 19H7V5H17M17 1H7C5.89 1 5 1.89 5 3V21A2 2 0 0 0 7 23H17A2 2 0 0 0 19 21V3C19 1.89 18.1 1 17 1Z\";\nexport var mdiCellphoneCheck = \"M14.54 23H7C5.9 23 5 22.11 5 21V3C5 1.89 5.89 1 7 1H17C18.1 1 19 1.89 19 3V13C18.3 13 17.63 13.13 17 13.35V5H7V19H13C13 20.54 13.58 21.94 14.54 23M17.75 22.16L15 19.16L16.16 18L17.75 19.59L21.34 16L22.5 17.41L17.75 22.16\";\nexport var mdiCellphoneCog = \"M9.82,12.5C9.84,12.33 9.86,12.17 9.86,12C9.86,11.83 9.84,11.67 9.82,11.5L10.9,10.69C11,10.62 11,10.5 10.96,10.37L9.93,8.64C9.87,8.53 9.73,8.5 9.62,8.53L8.34,9.03C8.07,8.83 7.78,8.67 7.47,8.54L7.27,7.21C7.27,7.09 7.16,7 7.03,7H5C4.85,7 4.74,7.09 4.72,7.21L4.5,8.53C4.21,8.65 3.92,8.83 3.65,9L2.37,8.5C2.25,8.47 2.12,8.5 2.06,8.63L1.03,10.36C0.97,10.5 1,10.61 1.1,10.69L2.18,11.5C2.16,11.67 2.15,11.84 2.15,12C2.15,12.17 2.17,12.33 2.19,12.5L1.1,13.32C1,13.39 1,13.53 1.04,13.64L2.07,15.37C2.13,15.5 2.27,15.5 2.38,15.5L3.66,15C3.93,15.18 4.22,15.34 4.53,15.47L4.73,16.79C4.74,16.91 4.85,17 5,17H7.04C7.17,17 7.28,16.91 7.29,16.79L7.5,15.47C7.8,15.35 8.09,15.17 8.36,15L9.64,15.5C9.76,15.53 9.89,15.5 9.95,15.37L11,13.64C11.04,13.53 11,13.4 10.92,13.32L9.82,12.5M6,13.75C5,13.75 4.2,12.97 4.2,12C4.2,11.03 5,10.25 6,10.25C7,10.25 7.8,11.03 7.8,12C7.8,12.97 7,13.75 6,13.75M17,1H7A2,2 0 0,0 5,3V6H7V4H17V20H7V18H5V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3A2,2 0 0,0 17,1Z\";\nexport var mdiCellphoneDock = \"M16,15H8V5H16M16,1H8C6.89,1 6,1.89 6,3V17A2,2 0 0,0 8,19H16A2,2 0 0,0 18,17V3C18,1.89 17.1,1 16,1M8,23H16V21H8V23Z\";\nexport var mdiCellphoneInformation = \"M13 7H11V9H13V7M13 11H11V17H13V11M17 1H7C5.9 1 5 1.9 5 3V21C5 22.1 5.9 23 7 23H17C18.1 23 19 22.1 19 21V3C19 1.9 18.1 1 17 1M17 19H7V5H17V19Z\";\nexport var mdiCellphoneKey = \"M7 1C5.9 1 5 1.9 5 3V7H7V4H17V20H7V17H5V21C5 22.1 5.9 23 7 23H17C18.1 23 19 22.1 19 21V3C19 1.9 18.1 1 17 1H7M6 9C4.3 9 3 10.3 3 12S4.3 15 6 15C7.3 15 8.4 14.2 8.8 13H11V15H13V13H15V11H8.8C8.4 9.8 7.3 9 6 9M6 11C6.6 11 7 11.4 7 12S6.6 13 6 13 5 12.6 5 12 5.4 11 6 11Z\";\nexport var mdiCellphoneLink = \"M22,17H18V10H22M23,8H17A1,1 0 0,0 16,9V19A1,1 0 0,0 17,20H23A1,1 0 0,0 24,19V9A1,1 0 0,0 23,8M4,6H22V4H4A2,2 0 0,0 2,6V17H0V20H14V17H4V6Z\";\nexport var mdiCellphoneLinkOff = \"M23,8H17A1,1 0 0,0 16,9V13.18L18,15.18V10H22V17H19.82L22.82,20H23A1,1 0 0,0 24,19V9A1,1 0 0,0 23,8M4,6.27L14.73,17H4V6.27M1.92,1.65L0.65,2.92L2.47,4.74C2.18,5.08 2,5.5 2,6V17H0V20H17.73L20.08,22.35L21.35,21.08L3.89,3.62L1.92,1.65M22,6V4H6.82L8.82,6H22Z\";\nexport var mdiCellphoneLock = \"M17,1H7A2,2 0 0,0 5,3V6H7V4H17V20H7V18H5V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3A2,2 0 0,0 17,1M8.8,11V9.5C8.8,8.1 7.4,7 6,7C4.6,7 3.2,8.1 3.2,9.5V11C2.6,11 2,11.6 2,12.2V15.7C2,16.4 2.6,17 3.2,17H8.7C9.4,17 10,16.4 10,15.8V12.3C10,11.6 9.4,11 8.8,11M7.5,11H4.5V9.5C4.5,8.7 5.2,8.2 6,8.2C6.8,8.2 7.5,8.7 7.5,9.5V11Z\";\nexport var mdiCellphoneMarker = \"M18.5 13C16.6 13 15 14.61 15 16.5C15 19.11 18.5 23 18.5 23S22 19.11 22 16.5C22 14.61 20.4 13 18.5 13M18.5 17.81C17.8 17.81 17.3 17.21 17.3 16.61C17.3 15.91 17.9 15.41 18.5 15.41S19.7 16 19.7 16.61C19.8 17.21 19.2 17.81 18.5 17.81M15.91 23H7C5.9 23 5 22.11 5 21V3C5 1.89 5.89 1 7 1H17C18.1 1 19 1.89 19 3V11.03C18.84 11 18.67 11 18.5 11C18 11 17.5 11.08 17 11.22V5H7V19H13.54C14.14 20.5 15.12 21.97 15.91 23Z\";\nexport var mdiCellphoneMessage = \"M11,17V7H4V17H11M11,3A2,2 0 0,1 13,5V19A2,2 0 0,1 11,21H4C2.89,21 2,20.1 2,19V5A2,2 0 0,1 4,3H11M16.5,3H21.5A1.5,1.5 0 0,1 23,4.5V7.5A1.5,1.5 0 0,1 21.5,9H18L15,12V9L15,4.5A1.5,1.5 0 0,1 16.5,3Z\";\nexport var mdiCellphoneMessageOff = \"M2.39 1.73L1.11 3L2.22 4.11C2.08 4.38 2 4.68 2 5V19C2 20.1 2.89 21 4 21H11C12.1 21 13 20.1 13 19V14.89L20.84 22.73L22.11 21.46L2.39 1.73M11 17H4V7H5.11L11 12.89V17M23 4.5V7.5C23 8.33 22.33 9 21.5 9H18L15.1 11.9L15 11.8V4.5C15 3.67 15.67 3 16.5 3H21.5C22.33 3 23 3.67 23 4.5M10.2 7L6.2 3H11C12.1 3 13 3.9 13 5V9.8L11 7.8V7H10.2\";\nexport var mdiCellphoneNfc = \"M2,16V18A5,5 0 0,1 7,23H9A7,7 0 0,0 2,16M2,20V23H5A3,3 0 0,0 2,20M2,12V14A9,9 0 0,1 11,23H13C13,16.92 8.08,12 2,12M17,1H7A2,2 0 0,0 5,3V10.37C5.69,10.53 6.36,10.74 7,11V5H17V18H13.97C14.5,19.25 14.81,20.59 14.92,22H17A2,2 0 0,0 19,20V3A2,2 0 0,0 17,1Z\";\nexport var mdiCellphoneNfcOff = \"M20.84 22.73L18.85 20.74C18.56 21.5 17.84 22 17 22H14.92C14.81 20.59 14.5 19.25 13.97 18H16.11L7 8.89V11C6.36 10.74 5.69 10.53 5 10.37V6.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M17 5V13.8L19 15.8V3C19 1.9 18.11 1 17 1H7C6.24 1 5.59 1.43 5.25 2.05L8.2 5H17M2 20V23H5C5 21.34 3.66 20 2 20M2 16V18C4.76 18 7 20.24 7 23H9C9 19.13 5.87 16 2 16M2 12V14C6.97 14 11 18.03 11 23H13C13 16.92 8.08 12 2 12Z\";\nexport var mdiCellphoneOff = \"M2.38,1.73L1.11,3L5,6.89V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V20.89L20.84,22.73L22.11,21.46M17,19H7V8.89L17,18.89V19M17,5V13.8L19,15.8V3A2,2 0 0,0 17,1H7C6.28,1 5.6,1.37 5.24,2L8.24,5H17Z\";\nexport var mdiCellphonePlay = \"M17 19H7V5H17M17 1H7C5.89 1 5 1.89 5 3V21C5 22.1 5.9 23 7 23H17C18.1 23 19 22.1 19 21V3C19 1.89 18.1 1 17 1M10 9V15L14 12L10 9Z\";\nexport var mdiCellphoneRemove = \"M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88M14.54 23H7C5.9 23 5 22.11 5 21V3C5 1.89 5.89 1 7 1H17C18.1 1 19 1.89 19 3V13C18.3 13 17.63 13.13 17 13.35V5H7V19H13C13 20.54 13.58 21.94 14.54 23Z\";\nexport var mdiCellphoneScreenshot = \"M7,1A2,2 0 0,0 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3A2,2 0 0,0 17,1H7M7,4H17V20H7V4M9,6V10H10.5V7.5H13V6H9M13.5,14V16.5H11V18H15V14H13.5Z\";\nexport var mdiCellphoneSettings = \"M16,16H8V4H16M16,0H8A2,2 0 0,0 6,2V18A2,2 0 0,0 8,20H16A2,2 0 0,0 18,18V2A2,2 0 0,0 16,0M15,24H17V22H15M11,24H13V22H11M7,24H9V22H7V24Z\";\nexport var mdiCellphoneSound = \"M19.1,8.7C20.9,10.5 20.9,13.3 19.1,15.2L20.1,16.2C22.6,13.9 22.6,10.1 20.1,7.7L19.1,8.7M18,9.8L17,10.8C17.5,11.5 17.5,12.4 17,13.1L18,14.1C19.2,12.9 19.2,11.1 18,9.8M14,1H4A2,2 0 0,0 2,3V21A2,2 0 0,0 4,23H14A2,2 0 0,0 16,21V3A2,2 0 0,0 14,1M14,20H4V4H14V20Z\";\nexport var mdiCellphoneText = \"M17,19V5H7V19H17M17,1A2,2 0 0,1 19,3V21A2,2 0 0,1 17,23H7C5.89,23 5,22.1 5,21V3C5,1.89 5.89,1 7,1H17M9,7H15V9H9V7M9,11H13V13H9V11Z\";\nexport var mdiCellphoneWireless = \"M20.07,4.93C21.88,6.74 23,9.24 23,12C23,14.76 21.88,17.26 20.07,19.07L18.66,17.66C20.11,16.22 21,14.22 21,12C21,9.79 20.11,7.78 18.66,6.34L20.07,4.93M17.24,7.76C18.33,8.85 19,10.35 19,12C19,13.65 18.33,15.15 17.24,16.24L15.83,14.83C16.55,14.11 17,13.11 17,12C17,10.89 16.55,9.89 15.83,9.17L17.24,7.76M13,10A2,2 0 0,1 15,12A2,2 0 0,1 13,14A2,2 0 0,1 11,12A2,2 0 0,1 13,10M11.5,1A2.5,2.5 0 0,1 14,3.5V8H12V4H3V19H12V16H14V20.5A2.5,2.5 0 0,1 11.5,23H3.5A2.5,2.5 0 0,1 1,20.5V3.5A2.5,2.5 0 0,1 3.5,1H11.5Z\";\nexport var mdiCentos = \"M19.07 14.93L22 12L19.07 9.07V4.93H14.93L12 2L9.07 4.93H4.93V9.07L2 12L4.93 14.93V19.07H9.07L12 22L14.93 19.07H19.07V14.93M21.41 12L19.07 14.34V12.46H13.69L13.23 12L13.69 11.54H19.07V9.66L21.41 12M18.66 14.76L17.32 16.09L14.11 12.87H18.66V14.76M12.46 13.1L12 12.65L11.54 13.1V12.46H10.9L11.36 12L10.9 11.54H11.54V10.9L12 11.36L12.46 10.9V11.54H13.1L12.65 12L13.1 12.46H12.46V13.1M14.11 11.13L17.32 7.91L18.66 9.24V11.13H14.11M18.66 5.35V8.65L17.32 7.32L13.5 11.13H12.87V10.5L16.68 6.68L15.35 5.35H18.66M12.87 9.89V5.35H14.76L16.09 6.68L12.87 9.89M12 2.59L14.34 4.93H12.46V10.31L12 10.77L11.54 10.31V4.93H9.66L12 2.59M11.13 9.89L7.91 6.68L9.24 5.35H11.13V9.89M5.35 5.35H8.65L7.32 6.68L11.13 10.5V11.13H10.5L6.68 7.32L5.35 8.65V5.35M5.35 9.24L6.68 7.91L9.89 11.13H5.35V9.24M2.59 12L4.93 9.66V11.54H10.31L10.77 12L10.31 12.46H4.93V14.34L2.59 12M9.89 12.87L6.68 16.09L5.35 14.76V12.87H9.89M5.35 18.66V15.35L6.68 16.68L10.5 12.87H11.13V13.5L7.32 17.32L8.65 18.65H5.35M11.13 14.11V18.66H9.24L7.91 17.32L11.13 14.11M12 21.41L9.66 19.07H11.54V13.69L12 13.23L12.46 13.69V19.07H14.34L12 21.41M12.87 14.11L16.09 17.32L14.76 18.66H12.87V14.11M15.35 18.66L16.68 17.32L12.87 13.5V12.87H13.5L17.32 16.68L18.65 15.35V18.66H15.35Z\";\nexport var mdiCertificate = \"M4,3C2.89,3 2,3.89 2,5V15A2,2 0 0,0 4,17H12V22L15,19L18,22V17H20A2,2 0 0,0 22,15V8L22,6V5A2,2 0 0,0 20,3H16V3H4M12,5L15,7L18,5V8.5L21,10L18,11.5V15L15,13L12,15V11.5L9,10L12,8.5V5M4,5H9V7H4V5M4,9H7V11H4V9M4,13H9V15H4V13Z\";\nexport var mdiCertificateOutline = \"M13 21L15 20L17 21V14H13M17 9V7L15 8L13 7V9L11 10L13 11V13L15 12L17 13V11L19 10M20 3H4A2 2 0 0 0 2 5V15A2 2 0 0 0 4 17H11V15H4V5H20V15H19V17H20A2 2 0 0 0 22 15V5A2 2 0 0 0 20 3M11 8H5V6H11M9 11H5V9H9M11 14H5V12H11Z\";\nexport var mdiChairRolling = \"M22 10V13H19V10H22M2 13H5V10H2V13M17 5C17 3.9 16.1 3 15 3H9C7.9 3 7 3.9 7 5V13H17V5M7 15H6V17H11V18L7 22H9.8L12 19.8L14.2 22H17L13 18V17H18V15H7Z\";\nexport var mdiChairSchool = \"M22,5V7H17L13.53,12H16V14H14.46L18.17,22H15.97L15.04,20H6.38L5.35,22H3.1L7.23,14H7C6.55,14 6.17,13.7 6.04,13.3L2.87,3.84L3.82,3.5C4.34,3.34 4.91,3.63 5.08,4.15L7.72,12H12.1L15.57,7H12V5H22M9.5,14L7.42,18H14.11L12.26,14H9.5Z\";\nexport var mdiChandelier = \"M15 13.1C15 14.76 13.66 16.1 12 16.1S9 14.76 9 13.1 10.34 10.1 12 10.1 15 11.44 15 13.1M9 2V3C9 4.11 9.9 5 11 5V9.1C11.32 9.04 11.66 9 12 9S12.68 9.04 13 9.1V5C14.11 5 15 4.11 15 3V2H9M4 11.1C2.34 11.1 1 12.44 1 14.1S2.34 17.1 4 17.1 7 15.76 7 14.1 5.66 11.1 4 11.1M20 11.1C18.34 11.1 17 12.44 17 14.1S18.34 17.1 20 17.1 23 15.76 23 14.1 21.66 11.1 20 11.1M20 18.1C19.32 18.1 18.67 17.96 18.08 17.71C17.6 17.95 17.07 18.1 16.5 18.1C15.39 18.1 14.41 17.57 13.77 16.77C13.22 17 12.63 17.1 12 17.1S10.78 17 10.23 16.77C9.59 17.57 8.61 18.1 7.5 18.1C6.93 18.1 6.4 17.95 5.92 17.71C5.33 17.96 4.68 18.1 4 18.1C3.73 18.1 3.46 18.06 3.2 18C4.21 19.29 5.76 20.1 7.5 20.1C8.83 20.1 10.05 19.63 11 18.84V21.1C11 21.65 11.45 22.1 12 22.1C12.55 22.1 13 21.65 13 21.1V18.84C13.95 19.63 15.17 20.1 16.5 20.1C18.24 20.1 19.79 19.29 20.8 18C20.54 18.06 20.27 18.1 20 18.1Z\";\nexport var mdiCharity = \"M12.75,3.94C13.75,3.22 14.91,2.86 16.22,2.86C16.94,2.86 17.73,3.05 18.59,3.45C19.45,3.84 20.13,4.3 20.63,4.83C21.66,6.11 22.09,7.6 21.94,9.3C21.78,11 21.22,12.33 20.25,13.27L12.66,20.86C12.47,21.05 12.23,21.14 11.95,21.14C11.67,21.14 11.44,21.05 11.25,20.86C11.06,20.67 10.97,20.44 10.97,20.16C10.97,19.88 11.06,19.64 11.25,19.45L15.84,14.86C16.09,14.64 16.09,14.41 15.84,14.16C15.59,13.91 15.36,13.91 15.14,14.16L10.55,18.75C10.36,18.94 10.13,19.03 9.84,19.03C9.56,19.03 9.33,18.94 9.14,18.75C8.95,18.56 8.86,18.33 8.86,18.05C8.86,17.77 8.95,17.53 9.14,17.34L13.73,12.75C14,12.5 14,12.25 13.73,12C13.5,11.75 13.28,11.75 13.03,12L8.44,16.64C8.25,16.83 8,16.92 7.73,16.92C7.45,16.92 7.21,16.83 7,16.64C6.8,16.45 6.7,16.22 6.7,15.94C6.7,15.66 6.81,15.41 7.03,15.19L11.63,10.59C11.88,10.34 11.88,10.11 11.63,9.89C11.38,9.67 11.14,9.67 10.92,9.89L6.28,14.5C6.06,14.7 5.83,14.81 5.58,14.81C5.3,14.81 5.06,14.71 4.88,14.5C4.69,14.3 4.59,14.06 4.59,13.78C4.59,13.5 4.69,13.27 4.88,13.08C7.94,10 9.83,8.14 10.55,7.45L14.11,10.97C14.5,11.34 14.95,11.53 15.5,11.53C16.2,11.53 16.75,11.25 17.16,10.69C17.44,10.28 17.54,9.83 17.46,9.33C17.38,8.83 17.17,8.41 16.83,8.06L12.75,3.94M14.81,10.27L10.55,6L3.47,13.08C2.63,12.23 2.15,10.93 2.04,9.16C1.93,7.4 2.41,5.87 3.47,4.59C4.66,3.41 6.08,2.81 7.73,2.81C9.39,2.81 10.8,3.41 11.95,4.59L16.22,8.86C16.41,9.05 16.5,9.28 16.5,9.56C16.5,9.84 16.41,10.08 16.22,10.27C16.03,10.45 15.8,10.55 15.5,10.55C15.23,10.55 15,10.45 14.81,10.27V10.27Z\";\nexport var mdiCharitySearch = \"M10.5 6L3.4 13.1C2.6 12.2 2.2 10.9 2 9.2C1.9 7.4 2.4 5.9 3.5 4.6C4.7 3.4 6.1 2.8 7.8 2.8C9.5 2.8 10.9 3.4 12 4.6L13.7 6.3C13 6.5 12.4 6.8 11.8 7.2L10.5 6M15.5 6C18.4 6 20.9 7.9 21.7 10.6C21.8 10.2 21.9 9.8 21.9 9.3C22.1 7.6 21.6 6.1 20.6 4.8C20.1 4.3 19.4 3.8 18.6 3.4C17.7 3 16.9 2.8 16.2 2.8C14.9 2.8 13.7 3.2 12.7 3.9L14.8 6H15.5M11 7.9L10.6 7.5C9.8 8.1 7.9 10 4.9 13.1C4.7 13.3 4.6 13.5 4.6 13.8C4.6 14.1 4.7 14.3 4.9 14.5C5.1 14.7 5.3 14.8 5.6 14.8C5.8 14.8 6.1 14.7 6.3 14.5L9 11.8C9.2 10.2 9.9 8.9 11 7.9M10.2 16.3L9.1 17.4C9 17.5 8.9 17.8 8.9 18C8.9 18.3 9 18.5 9.2 18.7S9.6 19 9.8 19C10.1 19 10.3 18.9 10.5 18.7L11.6 17.6C11.1 17.3 10.6 16.8 10.2 16.3M9 13.2L7 15.2C6.8 15.4 6.7 15.7 6.7 16C6.7 16.3 6.8 16.5 7 16.7C7.2 16.9 7.5 17 7.7 17C8 17 8.2 16.9 8.4 16.7L9.6 15.4C9.3 14.7 9.1 14 9 13.2M12.5 18.2L11.3 19.4C11.1 19.6 11 19.8 11 20.1C11 20.4 11.1 20.6 11.3 20.8S11.7 21.1 12 21.1C12.3 21.1 12.5 21 12.7 20.8L14.6 18.9C13.8 18.8 13.1 18.6 12.5 18.2M22.2 17.8L20.8 19.2L17.9 16.3C17.2 16.7 16.4 17 15.5 17C13 17 11 15 11 12.5S13 8 15.5 8 20 10 20 12.5C20 13.4 19.7 14.2 19.3 14.9L22.2 17.8M18 12.5C18 11.1 16.9 10 15.5 10S13 11.1 13 12.5 14.1 15 15.5 15 18 13.9 18 12.5Z\";\nexport var mdiChartArc = \"M16.18,19.6L14.17,16.12C15.15,15.4 15.83,14.28 15.97,13H20C19.83,15.76 18.35,18.16 16.18,19.6M13,7.03V3C17.3,3.26 20.74,6.7 21,11H16.97C16.74,8.91 15.09,7.26 13,7.03M7,12.5C7,13.14 7.13,13.75 7.38,14.3L3.9,16.31C3.32,15.16 3,13.87 3,12.5C3,7.97 6.54,4.27 11,4V8.03C8.75,8.28 7,10.18 7,12.5M11.5,21C8.53,21 5.92,19.5 4.4,17.18L7.88,15.17C8.7,16.28 10,17 11.5,17C12.14,17 12.75,16.87 13.3,16.62L15.31,20.1C14.16,20.68 12.87,21 11.5,21Z\";\nexport var mdiChartAreaspline = \"M17.45,15.18L22,7.31V19L22,21H2V3H4V15.54L9.5,6L16,9.78L20.24,2.45L21.97,3.45L16.74,12.5L10.23,8.75L4.31,19H6.57L10.96,11.44L17.45,15.18Z\";\nexport var mdiChartAreasplineVariant = \"M22,21H2V3H4V15.54L9.5,6L16,9.78L20.24,2.45L21.97,3.45L22,21Z\";\nexport var mdiChartBar = \"M22,21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z\";\nexport var mdiChartBarStacked = \"M22,21H2V3H4V19H6V17H10V19H12V16H16V19H18V17H22V21M18,14H22V16H18V14M12,6H16V9H12V6M16,15H12V10H16V15M6,10H10V12H6V10M10,16H6V13H10V16Z\";\nexport var mdiChartBellCurve = \"M9.96,11.31C10.82,8.1 11.5,6 13,6C14.5,6 15.18,8.1 16.04,11.31C17,14.92 18.1,19 22,19V17C19.8,17 19,14.54 17.97,10.8C17.08,7.46 16.15,4 13,4C9.85,4 8.92,7.46 8.03,10.8C7.03,14.54 6.2,17 4,17V2H2V22H22V20H4V19C7.9,19 9,14.92 9.96,11.31Z\";\nexport var mdiChartBellCurveCumulative = \"M4 19V20H22V22H2V2H4V17C7 17 10 15 12.1 11.4C15.1 6.4 18.4 4 22 4V6C19.2 6 16.5 8.1 13.9 12.5C11.3 16.6 7.7 19 4 19Z\";\nexport var mdiChartBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9 17H7V10H9V17M13 17H11V7H13V17M17 17H15V13H17V17Z\";\nexport var mdiChartBoxMultiple = \"M4 20H16V22H4C2.9 22 2 21.1 2 20V7H4M22 4V16C22 17.1 21.1 18 20 18H8C6.9 18 6 17.1 6 16V4C6 2.9 6.9 2 8 2H20C21.1 2 22 2.9 22 4M12 8H10V14H12M15 6H13V14H15M18 11H16V14H18Z\";\nexport var mdiChartBoxMultipleOutline = \"M20 16V4H8V16M22 16C22 17.1 21.1 18 20 18H8C6.9 18 6 17.1 6 16V4C6 2.9 6.9 2 8 2H20C21.1 2 22 2.9 22 4M16 20V22H4C2.9 22 2 21.1 2 20V7H4V20M16 11H18V14H16M13 6H15V14H13M10 8H12V14H10Z\";\nexport var mdiChartBoxOutline = \"M9 17H7V10H9V17M13 17H11V7H13V17M17 17H15V13H17V17M19 19H5V5H19V19.1M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z\";\nexport var mdiChartBoxPlusOutline = \"M22 5V7H19V10H17V7H14V5H17V2H19V5H22M19 19H5V5H11V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V13H19V19M15 13V17H17V13H15M11 17H13V9H11V17M9 17V11H7V17H9Z\";\nexport var mdiChartBubble = \"M7.2,11.2C8.97,11.2 10.4,12.63 10.4,14.4C10.4,16.17 8.97,17.6 7.2,17.6C5.43,17.6 4,16.17 4,14.4C4,12.63 5.43,11.2 7.2,11.2M14.8,16A2,2 0 0,1 16.8,18A2,2 0 0,1 14.8,20A2,2 0 0,1 12.8,18A2,2 0 0,1 14.8,16M15.2,4A4.8,4.8 0 0,1 20,8.8C20,11.45 17.85,13.6 15.2,13.6A4.8,4.8 0 0,1 10.4,8.8C10.4,6.15 12.55,4 15.2,4Z\";\nexport var mdiChartDonut = \"M13,2.05V5.08C16.39,5.57 19,8.47 19,12C19,12.9 18.82,13.75 18.5,14.54L21.12,16.07C21.68,14.83 22,13.45 22,12C22,6.82 18.05,2.55 13,2.05M12,19A7,7 0 0,1 5,12C5,8.47 7.61,5.57 11,5.08V2.05C5.94,2.55 2,6.81 2,12A10,10 0 0,0 12,22C15.3,22 18.23,20.39 20.05,17.91L17.45,16.38C16.17,18 14.21,19 12,19Z\";\nexport var mdiChartDonutVariant = \"M13,2.05C18.05,2.55 22,6.82 22,12C22,13.45 21.68,14.83 21.12,16.07L18.5,14.54C18.82,13.75 19,12.9 19,12C19,8.47 16.39,5.57 13,5.08V2.05M12,19C14.21,19 16.17,18 17.45,16.38L20.05,17.91C18.23,20.39 15.3,22 12,22C6.47,22 2,17.5 2,12C2,6.81 5.94,2.55 11,2.05V5.08C7.61,5.57 5,8.47 5,12A7,7 0 0,0 12,19M12,6A6,6 0 0,1 18,12C18,14.97 15.84,17.44 13,17.92V14.83C14.17,14.42 15,13.31 15,12A3,3 0 0,0 12,9L11.45,9.05L9.91,6.38C10.56,6.13 11.26,6 12,6M6,12C6,10.14 6.85,8.5 8.18,7.38L9.72,10.05C9.27,10.57 9,11.26 9,12C9,13.31 9.83,14.42 11,14.83V17.92C8.16,17.44 6,14.97 6,12Z\";\nexport var mdiChartGantt = \"M2,5H10V2H12V22H10V18H6V15H10V13H4V10H10V8H2V5M14,5H17V8H14V5M14,10H19V13H14V10M14,15H22V18H14V15Z\";\nexport var mdiChartHistogram = \"M3,3H5V13H9V7H13V11H17V15H21V21H3V3Z\";\nexport var mdiChartLine = \"M16,11.78L20.24,4.45L21.97,5.45L16.74,14.5L10.23,10.75L5.46,19H22V21H2V3H4V17.54L9.5,8L16,11.78Z\";\nexport var mdiChartLineStacked = \"M17.45,15.18L22,6.81V19L22,21H2V3H4V15.54L4,19H4.31L6,19H6.57L10.96,11.44L17.45,15.18M22,3L21.97,3.45L17,11L10,6L6,12V3H22Z\";\nexport var mdiChartLineVariant = \"M3.5,18.5L9.5,12.5L13.5,16.5L22,6.92L20.59,5.5L13.5,13.5L9.5,9.5L2,17L3.5,18.5Z\";\nexport var mdiChartMultiline = \"M22,6.92L20.59,5.5L17.74,8.72C15.68,6.4 12.83,5 9.61,5C6.72,5 4.07,6.16 2,8L3.42,9.42C5.12,7.93 7.27,7 9.61,7C12.35,7 14.7,8.26 16.38,10.24L13.5,13.5L9.5,9.5L2,17L3.5,18.5L9.5,12.5L13.5,16.5L17.55,11.93C18.3,13.28 18.8,14.83 19,16.5H21C20.78,14.18 20.05,12.09 18.96,10.34L22,6.92Z\";\nexport var mdiChartMultiple = \"M22 16V18H6V2H8V13.57L13.71 4.57L16.87 6.68L19.29 4.26L20.71 5.68L17.13 9.29L14.29 7.4L8.82 16M4 20V4H2V22H22V20Z\";\nexport var mdiChartPie = \"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\";\nexport var mdiChartPieOutline = \"M13 11H19.95Q19.58 8.25 17.66 6.34 15.75 4.43 13 4.05M11 19.95V4.05Q8 4.43 6 6.69 4 8.95 4 12T6 17.31Q8 19.58 11 19.95M13 19.95Q15.75 19.6 17.68 17.68 19.6 15.75 19.95 13H13M12 12M12 22Q9.93 22 8.1 21.21 6.28 20.43 4.93 19.08 3.58 17.73 2.79 15.9 2 14.08 2 12T2.79 8.1Q3.58 6.28 4.93 4.93 6.28 3.58 8.1 2.79 9.93 2 12 2T15.89 2.79Q17.7 3.58 19.06 4.94 20.43 6.3 21.21 8.11 22 9.93 22 12 22 14.05 21.21 15.88 20.43 17.7 19.08 19.06 17.73 20.43 15.9 21.21 14.08 22 12 22Z\";\nexport var mdiChartPpf = \"M5 6V8C8.2 8 11.36 9.18 13.57 11.15C15.64 13 16.83 15.5 17 18H18.97A14 12.5 0 0 0 5 6M22 21H2V3H4V19H22Z\";\nexport var mdiChartSankey = \"M22 5H4V2H2V22H22V20H4V9C8.09 9 10.13 11 12.29 13.21S17.09 18 22 18V16C17.91 16 15.87 14 13.71 11.79S8.91 7 4 7H22Z\";\nexport var mdiChartSankeyVariant = \"M20 4V6H4V4H2V12H4V10C8.16 10 9.92 12.11 11.77 14.34S15.65 19 20 19V21H22V15H20V17C16.59 17 15.07 15.17 13.31 13.06C11.34 10.69 9.1 8 4 8H20V10H22V4Z\";\nexport var mdiChartScatterPlot = \"M2,2H4V20H22V22H2V2M9,10A3,3 0 0,1 12,13A3,3 0 0,1 9,16A3,3 0 0,1 6,13A3,3 0 0,1 9,10M13,2A3,3 0 0,1 16,5A3,3 0 0,1 13,8A3,3 0 0,1 10,5A3,3 0 0,1 13,2M18,12A3,3 0 0,1 21,15A3,3 0 0,1 18,18A3,3 0 0,1 15,15A3,3 0 0,1 18,12Z\";\nexport var mdiChartScatterPlotHexbin = \"M2,2H4V20H22V22H2V2M14,14.5L12,18H7.94L5.92,14.5L7.94,11H12L14,14.5M14.08,6.5L12.06,10H8L6,6.5L8,3H12.06L14.08,6.5M21.25,10.5L19.23,14H15.19L13.17,10.5L15.19,7H19.23L21.25,10.5Z\";\nexport var mdiChartTimeline = \"M2,2H4V20H22V22H2V2M7,10H17V13H7V10M11,15H21V18H11V15M6,4H22V8H20V6H8V8H6V4Z\";\nexport var mdiChartTimelineVariant = \"M3,14L3.5,14.07L8.07,9.5C7.89,8.85 8.06,8.11 8.59,7.59C9.37,6.8 10.63,6.8 11.41,7.59C11.94,8.11 12.11,8.85 11.93,9.5L14.5,12.07L15,12C15.18,12 15.35,12 15.5,12.07L19.07,8.5C19,8.35 19,8.18 19,8A2,2 0 0,1 21,6A2,2 0 0,1 23,8A2,2 0 0,1 21,10C20.82,10 20.65,10 20.5,9.93L16.93,13.5C17,13.65 17,13.82 17,14A2,2 0 0,1 15,16A2,2 0 0,1 13,14L13.07,13.5L10.5,10.93C10.18,11 9.82,11 9.5,10.93L4.93,15.5L5,16A2,2 0 0,1 3,18A2,2 0 0,1 1,16A2,2 0 0,1 3,14Z\";\nexport var mdiChartTimelineVariantShimmer = \"M21 8C19.5 8 18.7 9.4 19.1 10.5L15.5 14.1C15.2 14 14.8 14 14.5 14.1L11.9 11.5C12.3 10.4 11.5 9 10 9C8.6 9 7.7 10.4 8.1 11.5L3.5 16C2.4 15.7 1 16.5 1 18C1 19.1 1.9 20 3 20C4.4 20 5.3 18.6 4.9 17.5L9.4 12.9C9.7 13 10.1 13 10.4 12.9L13 15.5C12.7 16.5 13.5 18 15 18C16.5 18 17.3 16.6 16.9 15.5L20.5 11.9C21.6 12.2 23 11.4 23 10C23 8.9 22.1 8 21 8M15 9L15.9 6.9L18 6L15.9 5.1L15 3L14.1 5.1L12 6L14.1 6.9L15 9M3.5 11L4 9L6 8.5L4 8L3.5 6L3 8L1 8.5L3 9L3.5 11Z\";\nexport var mdiChartTree = \"M14,6H22V22H14V6M2,4H22V2H2V4M2,8H12V6H2V8M9,22H12V10H9V22M2,22H7V10H2V22Z\";\nexport var mdiChartWaterfall = \"M2 2H4V20H22V22H2V2M17 2H20V18H17V2M6 11H9V18H6V11M13 3H16V7H13V3M10 8H13V12H10V8Z\";\nexport var mdiChat = \"M12,3C17.5,3 22,6.58 22,11C22,15.42 17.5,19 12,19C10.76,19 9.57,18.82 8.47,18.5C5.55,21 2,21 2,21C4.33,18.67 4.7,17.1 4.75,16.5C3.05,15.07 2,13.13 2,11C2,6.58 6.5,3 12,3Z\";\nexport var mdiChatAlert = \"M12,3C17.5,3 22,6.58 22,11C22,15.42 17.5,19 12,19C10.76,19 9.57,18.82 8.47,18.5C5.55,21 2,21 2,21C4.33,18.67 4.7,17.1 4.75,16.5C3.05,15.07 2,13.13 2,11C2,6.58 6.5,3 12,3M11,14V16H13V14H11M11,12H13V6H11V12Z\";\nexport var mdiChatAlertOutline = \"M12 3C6.5 3 2 6.58 2 11C2.05 13.15 3.06 15.17 4.75 16.5C4.75 17.1 4.33 18.67 2 21C4.37 20.89 6.64 20 8.47 18.5C9.61 18.83 10.81 19 12 19C17.5 19 22 15.42 22 11S17.5 3 12 3M12 17C7.58 17 4 14.31 4 11S7.58 5 12 5 20 7.69 20 11 16.42 17 12 17M11 13V15H13V13H11M11 11H13V7H11V11Z\";\nexport var mdiChatMinus = \"M23 17V19H15V17H23M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C20.95 12.25 20 12 19 12C15.69 12 13 14.69 13 18L13.08 18.95L12 19C10.76 19 9.57 18.82 8.47 18.5C5.55 21 2 21 2 21C4.33 18.67 4.7 17.1 4.75 16.5C3.05 15.07 2 13.14 2 11C2 6.58 6.5 3 12 3Z\";\nexport var mdiChatMinusOutline = \"M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C21.19 12.38 20.55 12.16 19.88 12.06C19.96 11.72 20 11.36 20 11C20 7.69 16.42 5 12 5S4 7.69 4 11 7.58 17 12 17L13.09 16.95L13 18L13.08 18.95L12 19C10.81 19 9.62 18.83 8.47 18.5C6.64 20 4.37 20.89 2 21C4.33 18.67 4.75 17.1 4.75 16.5C3.06 15.17 2.05 13.15 2 11C2 6.58 6.5 3 12 3M23 17V19H15V17H23Z\";\nexport var mdiChatOutline = \"M12,3C6.5,3 2,6.58 2,11C2.05,13.15 3.06,15.17 4.75,16.5C4.75,17.1 4.33,18.67 2,21C4.37,20.89 6.64,20 8.47,18.5C9.61,18.83 10.81,19 12,19C17.5,19 22,15.42 22,11C22,6.58 17.5,3 12,3M12,17C7.58,17 4,14.31 4,11C4,7.69 7.58,5 12,5C16.42,5 20,7.69 20,11C20,14.31 16.42,17 12,17Z\";\nexport var mdiChatPlus = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C20.95 12.25 20 12 19 12C15.69 12 13 14.69 13 18L13.08 18.95L12 19C10.76 19 9.57 18.82 8.47 18.5C5.55 21 2 21 2 21C4.33 18.67 4.7 17.1 4.75 16.5C3.05 15.07 2 13.14 2 11C2 6.58 6.5 3 12 3Z\";\nexport var mdiChatPlusOutline = \"M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C21.19 12.38 20.55 12.16 19.88 12.06C19.96 11.72 20 11.36 20 11C20 7.69 16.42 5 12 5C7.58 5 4 7.69 4 11C4 14.31 7.58 17 12 17L13.09 16.95L13 18L13.08 18.95L12 19C10.81 19 9.62 18.83 8.47 18.5C6.64 20 4.37 20.89 2 21C4.33 18.67 4.75 17.1 4.75 16.5C3.06 15.17 2.05 13.15 2 11C2 6.58 6.5 3 12 3M18 14H20V17H23V19H20V22H18V19H15V17H18V14Z\";\nexport var mdiChatProcessing = \"M12,3C17.5,3 22,6.58 22,11C22,15.42 17.5,19 12,19C10.76,19 9.57,18.82 8.47,18.5C5.55,21 2,21 2,21C4.33,18.67 4.7,17.1 4.75,16.5C3.05,15.07 2,13.13 2,11C2,6.58 6.5,3 12,3M17,12V10H15V12H17M13,12V10H11V12H13M9,12V10H7V12H9Z\";\nexport var mdiChatProcessingOutline = \"M12 3C6.5 3 2 6.58 2 11C2.05 13.15 3.06 15.17 4.75 16.5C4.75 17.1 4.33 18.67 2 21C4.37 20.89 6.64 20 8.47 18.5C9.61 18.83 10.81 19 12 19C17.5 19 22 15.42 22 11S17.5 3 12 3M12 17C7.58 17 4 14.31 4 11S7.58 5 12 5 20 7.69 20 11 16.42 17 12 17M17 12V10H15V12H17M13 12V10H11V12H13M9 12V10H7V12H9Z\";\nexport var mdiChatQuestion = \"M12 3C6.5 3 2 6.6 2 11C2 13.1 3 15.1 4.8 16.5C4.8 17.1 4.4 18.7 2 21C2 21 5.5 21 8.5 18.5C9.6 18.8 10.8 19 12 19C17.5 19 22 15.4 22 11S17.5 3 12 3M13 15H11V13H13V15M14.8 10C14.5 10.4 14.1 10.6 13.7 10.8C13.4 11 13.3 11.1 13.2 11.3C13 11.5 13 11.7 13 12H11C11 11.5 11.1 11.2 11.3 10.9C11.5 10.7 11.9 10.4 12.4 10.1C12.7 10 12.9 9.8 13 9.6C13.1 9.4 13.2 9.1 13.2 8.9C13.2 8.6 13.1 8.4 12.9 8.2C12.7 8 12.4 7.9 12.1 7.9C11.8 7.9 11.6 8 11.4 8.1C11.2 8.2 11.1 8.4 11.1 8.7H9.1C9.2 8 9.5 7.4 10 7C10.5 6.6 11.2 6.5 12.1 6.5C13 6.5 13.8 6.7 14.3 7.1C14.8 7.5 15.1 8.1 15.1 8.8C15.2 9.2 15.1 9.6 14.8 10Z\";\nexport var mdiChatQuestionOutline = \"M12 3C6.5 3 2 6.6 2 11C2 13.2 3.1 15.2 4.8 16.5C4.8 17.1 4.4 18.7 2 21C4.4 20.9 6.6 20 8.5 18.5C9.6 18.8 10.8 19 12 19C17.5 19 22 15.4 22 11S17.5 3 12 3M12 17C7.6 17 4 14.3 4 11S7.6 5 12 5 20 7.7 20 11 16.4 17 12 17M12.2 6.5C11.3 6.5 10.6 6.7 10.1 7C9.5 7.4 9.2 8 9.3 8.7H11.3C11.3 8.4 11.4 8.2 11.6 8.1C11.8 8 12 7.9 12.3 7.9C12.6 7.9 12.9 8 13.1 8.2C13.3 8.4 13.4 8.6 13.4 8.9C13.4 9.2 13.3 9.4 13.2 9.6C13 9.8 12.8 10 12.6 10.1C12.1 10.4 11.7 10.7 11.5 10.9C11.1 11.2 11 11.5 11 12H13C13 11.7 13.1 11.5 13.1 11.3C13.2 11.1 13.4 11 13.6 10.8C14.1 10.6 14.4 10.3 14.7 9.9C15 9.5 15.1 9.1 15.1 8.7C15.1 8 14.8 7.4 14.3 7C13.9 6.7 13.1 6.5 12.2 6.5M11 13V15H13V13H11Z\";\nexport var mdiChatRemove = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.54 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.54L15.46 20.12L17.59 18L15.47 15.88M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C20.95 12.25 20 12 19 12C15.69 12 13 14.69 13 18L13.08 18.95L12 19C10.76 19 9.57 18.82 8.47 18.5C5.55 21 2 21 2 21C4.33 18.67 4.7 17.1 4.75 16.5C3.05 15.07 2 13.14 2 11C2 6.58 6.5 3 12 3Z\";\nexport var mdiChatRemoveOutline = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.54 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.54L15.46 20.12L17.59 18L15.47 15.88M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C21.19 12.38 20.55 12.16 19.88 12.06C19.96 11.72 20 11.36 20 11C20 7.69 16.42 5 12 5C7.58 5 4 7.69 4 11C4 14.31 7.58 17 12 17L13.09 16.95L13 18L13.08 18.95L12 19C10.81 19 9.62 18.83 8.47 18.5C6.64 20 4.37 20.89 2 21C4.33 18.67 4.75 17.1 4.75 16.5C3.06 15.17 2.05 13.15 2 11C2 6.58 6.5 3 12 3Z\";\nexport var mdiChatSleep = \"M12 3C6.5 3 2 6.58 2 11C2 13.13 3.05 15.07 4.75 16.5C4.7 17.1 4.33 18.67 2 21C2 21 5.55 21 8.47 18.5C9.57 18.82 10.76 19 12 19C17.5 19 22 15.42 22 11S17.5 3 12 3M15 9.3L11.76 13H15V15H9V12.7L12.24 9H9V7H15V9.3Z\";\nexport var mdiChatSleepOutline = \"M12 3C6.5 3 2 6.58 2 11C2.05 13.15 3.06 15.17 4.75 16.5C4.75 17.1 4.33 18.67 2 21C4.37 20.89 6.64 20 8.47 18.5C9.61 18.83 10.81 19 12 19C17.5 19 22 15.42 22 11S17.5 3 12 3M12 17C7.58 17 4 14.31 4 11S7.58 5 12 5 20 7.69 20 11 16.42 17 12 17M15 7H9V9H12.24L9 12.7V15H15V13H11.76L15 9.3V7Z\";\nexport var mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nexport var mdiCheckAll = \"M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z\";\nexport var mdiCheckBold = \"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\";\nexport var mdiCheckCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z\";\nexport var mdiCheckCircleOutline = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M16.59 7.58L10 14.17L7.41 11.59L6 13L10 17L18 9L16.59 7.58Z\";\nexport var mdiCheckDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9L10,17Z\";\nexport var mdiCheckDecagramOutline = \"M23 12L20.6 9.2L20.9 5.5L17.3 4.7L15.4 1.5L12 3L8.6 1.5L6.7 4.7L3.1 5.5L3.4 9.2L1 12L3.4 14.8L3.1 18.5L6.7 19.3L8.6 22.5L12 21L15.4 22.5L17.3 19.3L20.9 18.5L20.6 14.8L23 12M18.7 16.9L16 17.5L14.6 19.9L12 18.8L9.4 19.9L8 17.5L5.3 16.9L5.5 14.1L3.7 12L5.5 9.9L5.3 7.1L8 6.5L9.4 4.1L12 5.2L14.6 4.1L16 6.5L18.7 7.1L18.5 9.9L20.3 12L18.5 14.1L18.7 16.9M16.6 7.6L18 9L10 17L6 13L7.4 11.6L10 14.2L16.6 7.6Z\";\nexport var mdiCheckNetwork = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M8.25,10.08L9.41,8.92L11,10.5L14.59,6.92L15.75,8.33L11,13.08L8.25,10.08Z\";\nexport var mdiCheckNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M8,10.37L9.24,9.13L10.93,10.83L14.76,7L16,8.5L10.93,13.57L8,10.37Z\";\nexport var mdiCheckOutline = \"M19.78,2.2L24,6.42L8.44,22L0,13.55L4.22,9.33L8.44,13.55L19.78,2.2M19.78,5L8.44,16.36L4.22,12.19L2.81,13.55L8.44,19.17L21.19,6.42L19.78,5Z\";\nexport var mdiCheckUnderline = \"M21,5L9,17L3.5,11.5L4.91,10.09L9,14.17L19.59,3.59L21,5M3,21V19H21V21H3Z\";\nexport var mdiCheckUnderlineCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M17,18H7V16H17V18M10.3,14L7,10.7L8.4,9.3L10.3,11.2L15.6,5.9L17,7.3L10.3,14Z\";\nexport var mdiCheckUnderlineCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M7,15H17V17H7V15M10.3,11.2L8.4,9.3L7,10.7L10.3,14L17,7.3L15.6,5.9L10.3,11.2Z\";\nexport var mdiCheckbook = \"M5,14H19V15H5V14M21,17V8H3V17H21M1,5H23V19H1V5M5,10H12V12H5V10Z\";\nexport var mdiCheckbookArrowLeft = \"M5 14H15.53C15.25 14.31 15 14.64 14.8 15H5V14M21 8V12.08C21.72 12.2 22.39 12.45 23 12.8V5H1V19H14.08C14.03 18.68 14 18.34 14 18C14 17.66 14.03 17.33 14.08 17H3V8H21M5 10H12V12H5V10M16 18L19 15V17H23V19H19V21L16 18Z\";\nexport var mdiCheckbookArrowRight = \"M5 14H15.53C15.25 14.31 15 14.64 14.8 15H5V14M21 8V12.08C21.72 12.2 22.39 12.45 23 12.8V5H1V19H14.08C14.03 18.68 14 18.34 14 18C14 17.66 14.03 17.33 14.08 17H3V8H21M5 10H12V12H5V10M24 18L21 15V17H17V19H21V21L24 18Z\";\nexport var mdiCheckboxBlank = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiCheckboxBlankBadge = \"M23 4.5C23 6.43 21.43 8 19.5 8S16 6.43 16 4.5 17.57 1 19.5 1 23 2.57 23 4.5M19.5 10C16.47 10 14 7.53 14 4.5C14 4 14.08 3.5 14.21 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V9.79C20.5 9.92 20 10 19.5 10Z\";\nexport var mdiCheckboxBlankBadgeOutline = \"M23 4.5C23 6.43 21.43 8 19.5 8S16 6.43 16 4.5 17.57 1 19.5 1 23 2.57 23 4.5M19.5 10C19.33 10 19.17 10 19 10V19H5V5H14.03C14 4.84 14 4.67 14 4.5C14 4 14.08 3.5 14.21 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V9.79C20.5 9.92 20 10 19.5 10Z\";\nexport var mdiCheckboxBlankCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCheckboxBlankCircleOutline = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCheckboxBlankOff = \"M20.84 22.73L19.1 21C19.06 21 19.03 21 19 21H5C3.9 21 3 20.11 3 19V5C3 4.97 3 4.94 3 4.9L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M21 5C21 3.89 20.1 3 19 3H6.2L21 17.8V5Z\";\nexport var mdiCheckboxBlankOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L3 4.9V19C3 20.11 3.9 21 5 21H19.1L20.84 22.73L22.11 21.46M5 19V6.89L17.11 19H5M8.2 5L6.2 3H19C20.1 3 21 3.89 21 5V17.8L19 15.8V5H8.2Z\";\nexport var mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nexport var mdiCheckboxIntermediate = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M17,17H7V7H17V17Z\";\nexport var mdiCheckboxIntermediateVariant = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V5H19V19M7 17V7H17\";\nexport var mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCheckboxMarkedCircleAutoOutline = \"M12 22C12.8 22 13.6 21.9 14.3 21.7C13.9 21.2 13.5 20.6 13.3 19.9C12.9 20 12.4 20 12 20C7.6 20 4 16.4 4 12C4 7.6 7.6 4 12 4C12.8 4 13.5 4.1 14.2 4.3L15.8 2.7C14.6 2.3 13.3 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22M6.5 11.5L7.9 10.1L11 13.2L19.6 4.6L21 6L11 16L6.5 11.5M19 14L17.74 16.75L15 18L17.74 19.26L19 22L20.25 19.26L23 18L20.25 16.75L19 14Z\";\nexport var mdiCheckboxMarkedCircleMinusOutline = \"M14.3 21.7C13.6 21.9 12.8 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C13.3 2 14.6 2.3 15.8 2.7L14.2 4.3C13.5 4.1 12.8 4 12 4C7.6 4 4 7.6 4 12C4 16.4 7.6 20 12 20C12.4 20 12.9 20 13.3 19.9C13.5 20.6 13.9 21.2 14.3 21.7M7.9 10.1L6.5 11.5L11 16L21 6L19.6 4.6L11 13.2L7.9 10.1M15 17V19H23V17H15Z\";\nexport var mdiCheckboxMarkedCircleOutline = \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2,4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\";\nexport var mdiCheckboxMarkedCirclePlusOutline = \"M14.3 21.7C13.6 21.9 12.8 22 12 22C6.5 22 2 17.5 2 12S6.5 2 12 2C13.3 2 14.6 2.3 15.8 2.7L14.2 4.3C13.5 4.1 12.8 4 12 4C7.6 4 4 7.6 4 12S7.6 20 12 20C12.4 20 12.9 20 13.3 19.9C13.5 20.6 13.9 21.2 14.3 21.7M7.9 10.1L6.5 11.5L11 16L21 6L19.6 4.6L11 13.2L7.9 10.1M18 14V17H15V19H18V22H20V19H23V17H20V14H18Z\";\nexport var mdiCheckboxMarkedOutline = \"M19,19H5V5H15V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V11H19M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\";\nexport var mdiCheckboxMultipleBlank = \"M22,16A2,2 0 0,1 20,18H8C6.89,18 6,17.1 6,16V4C6,2.89 6.89,2 8,2H20A2,2 0 0,1 22,4V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16Z\";\nexport var mdiCheckboxMultipleBlankCircle = \"M14,2A8,8 0 0,0 6,10A8,8 0 0,0 14,18A8,8 0 0,0 22,10A8,8 0 0,0 14,2M4.93,5.82C3.08,7.34 2,9.61 2,12A8,8 0 0,0 10,20C10.64,20 11.27,19.92 11.88,19.77C10.12,19.38 8.5,18.5 7.17,17.29C5.22,16.25 4,14.21 4,12C4,11.7 4.03,11.41 4.07,11.11C4.03,10.74 4,10.37 4,10C4,8.56 4.32,7.13 4.93,5.82Z\";\nexport var mdiCheckboxMultipleBlankCircleOutline = \"M14,2A8,8 0 0,0 6,10A8,8 0 0,0 14,18A8,8 0 0,0 22,10A8,8 0 0,0 14,2M14,4C17.32,4 20,6.69 20,10C20,13.32 17.32,16 14,16A6,6 0 0,1 8,10A6,6 0 0,1 14,4M4.93,5.82C3.08,7.34 2,9.61 2,12A8,8 0 0,0 10,20C10.64,20 11.27,19.92 11.88,19.77C10.12,19.38 8.5,18.5 7.17,17.29C5.22,16.25 4,14.21 4,12C4,11.7 4.03,11.41 4.07,11.11C4.03,10.74 4,10.37 4,10C4,8.56 4.32,7.13 4.93,5.82Z\";\nexport var mdiCheckboxMultipleBlankOutline = \"M20,16V4H8V16H20M22,16A2,2 0 0,1 20,18H8C6.89,18 6,17.1 6,16V4C6,2.89 6.89,2 8,2H20A2,2 0 0,1 22,4V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16Z\";\nexport var mdiCheckboxMultipleMarked = \"M22,16A2,2 0 0,1 20,18H8C6.89,18 6,17.1 6,16V4C6,2.89 6.89,2 8,2H20A2,2 0 0,1 22,4V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16M13,14L20,7L18.59,5.59L13,11.17L9.91,8.09L8.5,9.5L13,14Z\";\nexport var mdiCheckboxMultipleMarkedCircle = \"M14,2A8,8 0 0,0 6,10A8,8 0 0,0 14,18A8,8 0 0,0 22,10A8,8 0 0,0 14,2M4.93,5.82C3.08,7.34 2,9.61 2,12A8,8 0 0,0 10,20C10.64,20 11.27,19.92 11.88,19.77C10.12,19.38 8.5,18.5 7.17,17.29C5.22,16.25 4,14.21 4,12C4,11.7 4.03,11.41 4.07,11.11C4.03,10.74 4,10.37 4,10C4,8.56 4.32,7.13 4.93,5.82M18.09,6.08L19.5,7.5L13,14L9.21,10.21L10.63,8.79L13,11.17\";\nexport var mdiCheckboxMultipleMarkedCircleOutline = \"M14,2A8,8 0 0,0 6,10A8,8 0 0,0 14,18A8,8 0 0,0 22,10H20C20,13.32 17.32,16 14,16A6,6 0 0,1 8,10A6,6 0 0,1 14,4C14.43,4 14.86,4.05 15.27,4.14L16.88,2.54C15.96,2.18 15,2 14,2M20.59,3.58L14,10.17L11.62,7.79L10.21,9.21L14,13L22,5M4.93,5.82C3.08,7.34 2,9.61 2,12A8,8 0 0,0 10,20C10.64,20 11.27,19.92 11.88,19.77C10.12,19.38 8.5,18.5 7.17,17.29C5.22,16.25 4,14.21 4,12C4,11.7 4.03,11.41 4.07,11.11C4.03,10.74 4,10.37 4,10C4,8.56 4.32,7.13 4.93,5.82Z\";\nexport var mdiCheckboxMultipleMarkedOutline = \"M20,16V10H22V16A2,2 0 0,1 20,18H8C6.89,18 6,17.1 6,16V4C6,2.89 6.89,2 8,2H16V4H8V16H20M10.91,7.08L14,10.17L20.59,3.58L22,5L14,13L9.5,8.5L10.91,7.08M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16Z\";\nexport var mdiCheckboxMultipleOutline = \"M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,16H8V4H20V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16M18.53,8.06L17.47,7L12.59,11.88L10.47,9.76L9.41,10.82L12.59,14L18.53,8.06Z\";\nexport var mdiCheckboxOutline = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,5V19H5V5H19M10,17L6,13L7.41,11.58L10,14.17L16.59,7.58L18,9\";\nexport var mdiCheckerboard = \"M2 2V22H22V2H2M20 12H16V16H20V20H16V16H12V20H8V16H4V12H8V8H4V4H8V8H12V4H16V8H20V12M16 8V12H12V8H16M12 12V16H8V12H12Z\";\nexport var mdiCheckerboardMinus = \"M14 17V19H22V17M8 16H12V12H8V16M12 12H16V8H12V12M2 2V22H13.5C13 21.4 12.6 20.7 12.3 20H8V16H4V12H8V8H4V4H8V8H12V4H16V8H20V12.4C20.7 12.7 21.4 13.1 22 13.6V2H2Z\";\nexport var mdiCheckerboardPlus = \"M19 17H22V19H19V22H17V19H14V17H17V14H19V17M8 16H12V12H8V16M12 12H16V8H12V12M2 2V22H13.54C13 21.42 12.63 20.74 12.36 20H8V16H4V12H8V8H4V4H8V8H12V4H16V8H20V12.36C20.74 12.63 21.42 13 22 13.54V2H2Z\";\nexport var mdiCheckerboardRemove = \"M8 16H12V12H8V16M12 12H16V8H12V12M2 2V22H13.5C13 21.4 12.6 20.7 12.3 20H8V16H4V12H8V8H4V4H8V8H12V4H16V8H20V12.4C20.7 12.7 21.4 13.1 22 13.6V2H2M20.1 14.5L18 16.6L15.9 14.5L14.5 15.9L16.6 18L14.5 20.1L15.9 21.5L18 19.4L20.1 21.5L21.5 20.1L19.4 18L21.5 15.9L20.1 14.5Z\";\nexport var mdiCheese = \"M11 17.5C11 16.67 11.67 16 12.5 16C12.79 16 13.06 16.09 13.29 16.23L20.75 11.93C20.35 11.22 19.9 10.55 19.41 9.9C19.29 9.96 19.15 10 19 10C18.45 10 18 9.55 18 9C18 8.8 18.08 8.62 18.18 8.46C16.45 6.64 14.34 5.2 12 4.25C11.85 5.24 11 6 10 6C8.9 6 8 5.11 8 4C8 3.72 8.06 3.45 8.16 3.21C7.3 3.08 6.41 3 5.5 3C5.33 3 5.17 3 5 3.03V9.05C6.14 9.28 7 10.29 7 11.5S6.14 13.72 5 13.95V21L11 17.54C11 17.53 11 17.5 11 17.5M14 9C15.11 9 16 9.9 16 11S15.11 13 14 13 12 12.11 12 11 12.9 9 14 9M9 16C8.45 16 8 15.55 8 15S8.45 14 9 14 10 14.45 10 15 9.55 16 9 16M9 10C8.45 10 8 9.55 8 9S8.45 8 9 8 10 8.45 10 9 9.55 10 9 10Z\";\nexport var mdiCheeseOff = \"M3.5 1.7L2.2 3L6.1 6.9V9C7.2 9.2 8.1 10.2 8.1 11.5S7.2 13.7 6.1 14V21L12.1 17.5C12.1 16.7 12.8 16 13.6 16C13.9 16 14.2 16.1 14.4 16.2L15.1 15.8L20.3 21L21.6 19.7L3.5 1.7M10.1 16C9.6 16 9.1 15.5 9.1 15S9.6 14 10.1 14 11.1 14.5 11.1 15 10.6 16 10.1 16M13.8 9.5L9.9 5.6C10.2 5.9 10.6 6 11.1 6C12.1 6 12.9 5.2 13.1 4.2C15.4 5.2 17.6 6.6 19.3 8.4C19.2 8.6 19.1 8.7 19.1 8.9C19.1 9.4 19.6 9.9 20.1 9.9C20.3 9.9 20.4 9.9 20.5 9.8C21 10.4 21.4 11.1 21.8 11.8L18.3 13.8L16.6 12.1C16.9 11.8 17.1 11.3 17.1 10.8C17.1 9.7 16.2 8.8 15.1 8.8C14.6 9 14.1 9.2 13.8 9.5M9.5 5.2L7.3 3C8 3 8.6 3.1 9.2 3.2C9.1 3.5 9.1 3.7 9.1 4C9.1 4.4 9.2 4.9 9.5 5.2Z\";\nexport var mdiChefHat = \"M12.5,1.5C10.73,1.5 9.17,2.67 8.67,4.37C8.14,4.13 7.58,4 7,4A4,4 0 0,0 3,8C3,9.82 4.24,11.41 6,11.87V19H19V11.87C20.76,11.41 22,9.82 22,8A4,4 0 0,0 18,4C17.42,4 16.86,4.13 16.33,4.37C15.83,2.67 14.27,1.5 12.5,1.5M12,10.5H13V17.5H12V10.5M9,12.5H10V17.5H9V12.5M15,12.5H16V17.5H15V12.5M6,20V21A1,1 0 0,0 7,22H18A1,1 0 0,0 19,21V20H6Z\";\nexport var mdiChemicalWeapon = \"M11,7.83C9.83,7.42 9,6.3 9,5A3,3 0 0,1 12,2A3,3 0 0,1 15,5C15,6.31 14.16,7.42 13,7.83V10.64C12.68,10.55 12.35,10.5 12,10.5C11.65,10.5 11.32,10.55 11,10.64V7.83M18.3,21.1C17.16,20.45 16.62,19.18 16.84,17.96L14.4,16.55C14.88,16.09 15.24,15.5 15.4,14.82L17.84,16.23C18.78,15.42 20.16,15.26 21.29,15.91C22.73,16.74 23.22,18.57 22.39,20C21.56,21.44 19.73,21.93 18.3,21.1M2.7,15.9C3.83,15.25 5.21,15.42 6.15,16.22L8.6,14.81C8.76,15.5 9.11,16.08 9.6,16.54L7.15,17.95C7.38,19.17 6.83,20.45 5.7,21.1C4.26,21.93 2.43,21.44 1.6,20C0.77,18.57 1.26,16.73 2.7,15.9M14,14A2,2 0 0,1 12,16C10.89,16 10,15.1 10,14A2,2 0 0,1 12,12C13.11,12 14,12.9 14,14M17,14L16.97,14.57L15.5,13.71C15.4,12.64 14.83,11.71 14,11.12V9.41C15.77,10.19 17,11.95 17,14M14.97,18.03C14.14,18.64 13.11,19 12,19C10.89,19 9.86,18.64 9.03,18L10.5,17.17C10.96,17.38 11.47,17.5 12,17.5C12.53,17.5 13.03,17.38 13.5,17.17L14.97,18.03M7.03,14.56L7,14C7,11.95 8.23,10.19 10,9.42V11.13C9.17,11.71 8.6,12.64 8.5,13.7L7.03,14.56Z\";\nexport var mdiChessBishop = \"M19,22H5V20H19V22M17.16,8.26C18.22,9.63 18.86,11.28 19,13C19,15.76 15.87,18 12,18C8.13,18 5,15.76 5,13C5,10.62 7.33,6.39 10.46,5.27C10.16,4.91 10,4.46 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.46 13.84,4.91 13.54,5.27C14.4,5.6 15.18,6.1 15.84,6.74L11.29,11.29L12.71,12.71L17.16,8.26Z\";\nexport var mdiChessKing = \"M19,22H5V20H19V22M17,10C15.58,10 14.26,10.77 13.55,12H13V7H16V5H13V2H11V5H8V7H11V12H10.45C9.35,10.09 6.9,9.43 5,10.54C3.07,11.64 2.42,14.09 3.5,16C4.24,17.24 5.57,18 7,18H17A4,4 0 0,0 21,14A4,4 0 0,0 17,10Z\";\nexport var mdiChessKnight = \"M19,22H5V20H19V22M13,2V2C11.75,2 10.58,2.62 9.89,3.66L7,8L9,10L11.06,8.63C11.5,8.32 12.14,8.44 12.45,8.9C12.47,8.93 12.5,8.96 12.5,9V9C12.8,9.59 12.69,10.3 12.22,10.77L7.42,15.57C6.87,16.13 6.87,17.03 7.43,17.58C7.69,17.84 8.05,18 8.42,18H17V6A4,4 0 0,0 13,2Z\";\nexport var mdiChessPawn = \"M19 22H5V20H19V22M16 18H8L10.18 10H8V8H10.72L10.79 7.74C10.1 7.44 9.55 6.89 9.25 6.2C8.58 4.68 9.27 2.91 10.79 2.25C12.31 1.58 14.08 2.27 14.74 3.79C15.41 5.31 14.72 7.07 13.2 7.74L13.27 8H16V10H13.82L16 18Z\";\nexport var mdiChessQueen = \"M18,3A2,2 0 0,1 20,5C20,5.81 19.5,6.5 18.83,6.82L17,13.15V18H7V13.15L5.17,6.82C4.5,6.5 4,5.81 4,5A2,2 0 0,1 6,3A2,2 0 0,1 8,5C8,5.5 7.82,5.95 7.5,6.3L10.3,9.35L10.83,5.62C10.33,5.26 10,4.67 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.67 13.67,5.26 13.17,5.62L13.7,9.35L16.47,6.29C16.18,5.94 16,5.5 16,5A2,2 0 0,1 18,3M5,20H19V22H5V20Z\";\nexport var mdiChessRook = \"M5,20H19V22H5V20M17,2V5H15V2H13V5H11V2H9V5H7V2H5V8H7V18H17V8H19V2H17Z\";\nexport var mdiChevronDoubleDown = \"M16.59,5.59L18,7L12,13L6,7L7.41,5.59L12,10.17L16.59,5.59M16.59,11.59L18,13L12,19L6,13L7.41,11.59L12,16.17L16.59,11.59Z\";\nexport var mdiChevronDoubleLeft = \"M18.41,7.41L17,6L11,12L17,18L18.41,16.59L13.83,12L18.41,7.41M12.41,7.41L11,6L5,12L11,18L12.41,16.59L7.83,12L12.41,7.41Z\";\nexport var mdiChevronDoubleRight = \"M5.59,7.41L7,6L13,12L7,18L5.59,16.59L10.17,12L5.59,7.41M11.59,7.41L13,6L19,12L13,18L11.59,16.59L16.17,12L11.59,7.41Z\";\nexport var mdiChevronDoubleUp = \"M7.41,18.41L6,17L12,11L18,17L16.59,18.41L12,13.83L7.41,18.41M7.41,12.41L6,11L12,5L18,11L16.59,12.41L12,7.83L7.41,12.41Z\";\nexport var mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nexport var mdiChevronDownBox = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M12,15.71L6,9.71L7.41,8.29L12,12.88L16.59,8.29L18,9.71L12,15.71Z\";\nexport var mdiChevronDownBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M7.41,8.29L12,12.88L16.59,8.29L18,9.71L12,15.71L6,9.71L7.41,8.29Z\";\nexport var mdiChevronDownCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M6,10L12,16L18,10L16.6,8.6L12,13.2L7.4,8.6L6,10Z\";\nexport var mdiChevronDownCircleOutline = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M6,10L12,16L18,10L16.6,8.6L12,13.2L7.4,8.6L6,10Z\";\nexport var mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nexport var mdiChevronLeftBox = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M15.71,16.59L14.29,18L8.29,12L14.29,6L15.71,7.41L11.12,12L15.71,16.59Z\";\nexport var mdiChevronLeftBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M15.71,7.41L11.12,12L15.71,16.59L14.29,18L8.29,12L14.29,6L15.71,7.41Z\";\nexport var mdiChevronLeftCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M15.4,16.6L10.8,12L15.4,7.4L14,6L8,12L14,18L15.4,16.6Z\";\nexport var mdiChevronLeftCircleOutline = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M15.4,16.6L10.8,12L15.4,7.4L14,6L8,12L14,18L15.4,16.6Z\";\nexport var mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nexport var mdiChevronRightBox = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M9.71,18L8.29,16.59L12.88,12L8.29,7.41L9.71,6L15.71,12L9.71,18Z\";\nexport var mdiChevronRightBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M8.29,16.59L12.88,12L8.29,7.41L9.71,6L15.71,12L9.71,18L8.29,16.59Z\";\nexport var mdiChevronRightCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10,18L16,12L10,6L8.6,7.4L13.2,12L8.6,16.6L10,18Z\";\nexport var mdiChevronRightCircleOutline = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M8.6,16.6L13.2,12L8.6,7.4L10,6L16,12L10,18L8.6,16.6Z\";\nexport var mdiChevronTripleDown = \"M7.41,14.58L12,19.17L16.59,14.58L18,16L12,22L6,16L7.41,14.58M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58M7.41,2.58L12,7.17L16.59,2.58L18,4L12,10L6,4L7.41,2.58Z\";\nexport var mdiChevronTripleLeft = \"M9.42,7.41L4.83,12L9.42,16.59L8,18L2,12L8,6L9.42,7.41M15.42,7.41L10.83,12L15.42,16.59L14,18L8,12L14,6L15.42,7.41M21.42,7.41L16.83,12L21.42,16.59L20,18L14,12L20,6L21.42,7.41Z\";\nexport var mdiChevronTripleRight = \"M14.58,16.59L19.17,12L14.58,7.41L16,6L22,12L16,18L14.58,16.59M8.58,16.59L13.17,12L8.58,7.41L10,6L16,12L10,18L8.58,16.59M2.58,16.59L7.17,12L2.58,7.41L4,6L10,12L4,18L2.58,16.59Z\";\nexport var mdiChevronTripleUp = \"M16.59,9.42L12,4.83L7.41,9.42L6,8L12,2L18,8L16.59,9.42M16.59,15.42L12,10.83L7.41,15.42L6,14L12,8L18,14L16.59,15.42M16.59,21.42L12,16.83L7.41,21.42L6,20L12,14L18,20L16.59,21.42Z\";\nexport var mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nexport var mdiChevronUpBox = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M16.59,15.71L12,11.12L7.41,15.71L6,14.29L12,8.29L18,14.29L16.59,15.71Z\";\nexport var mdiChevronUpBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M16.59,15.71L12,11.12L7.41,15.71L6,14.29L12,8.29L18,14.29L16.59,15.71Z\";\nexport var mdiChevronUpCircle = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M7.4,15.4L12,10.8L16.6,15.4L18,14L12,8L6,14L7.4,15.4Z\";\nexport var mdiChevronUpCircleOutline = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M7.4,15.4L12,10.8L16.6,15.4L18,14L12,8L6,14L7.4,15.4Z\";\nexport var mdiChiliAlert = \"M9.25 7.5L7.73 6.63C8.26 5.7 9.03 5 9.94 4.69C9.8 4.29 9.44 4 9 4V2C10.54 2 11.79 3.16 11.97 4.65C12.91 4.94 13.72 5.66 14.27 6.63L12.75 7.5L11 6.5L9.25 7.5M14 8.28L12.75 9L11 8L9.25 9L8 8.28C7.4 8.63 7 9.27 7 10V11C7 20 15 22 15 22V10C15 9.27 14.6 8.63 14 8.28M17 7V13H19V7H17M17 17H19V15H17V17Z\";\nexport var mdiChiliAlertOutline = \"M14 8.28L12.75 9L11 8L9.25 9L8 8.28C7.4 8.63 7 9.27 7 10V11C7 20 15 22 15 22V10C15 9.27 14.6 8.63 14 8.28M13 18.87C11.23 17.69 9.17 15.44 9 11.43L11 10.3L13 11.45V18.87M9.25 7.5L7.73 6.63C8.26 5.7 9.03 5 9.94 4.69C9.8 4.29 9.44 4 9 4V2C10.54 2 11.79 3.16 11.97 4.65C12.91 4.94 13.72 5.66 14.27 6.63L12.75 7.5L11 6.5L9.25 7.5M19 7V13H17V7H19M17 15H19V17H17V15Z\";\nexport var mdiChiliHot = \"M10.43 7.32L8.86 6.42C9.38 5.6 10.11 5 10.94 4.7C10.81 4.3 10.45 4 10 4V2C10.77 2 11.47 2.29 12 2.77V4C12.45 4 12.81 4.3 12.94 4.7C11.83 5.08 10.93 6.05 10.43 7.32M10 11C10 10.23 10.23 9.5 10.6 8.91L9.26 8.15C8.5 8.44 8 9.16 8 10V11C8 18.05 12.9 20.8 15.03 21.66C12.41 19.62 10 16.2 10 11M6.43 7.32L4.86 6.42C5.38 5.6 6.11 5 6.94 4.7C6.81 4.3 6.45 4 6 4V2C6.77 2 7.47 2.29 8 2.77V4C8.45 4 8.81 4.3 8.94 4.7C7.83 5.08 6.93 6.05 6.43 7.32M6 11C6 10.23 6.23 9.5 6.6 8.91L5.26 8.15C4.5 8.44 4 9.16 4 10V11C4 18.05 8.9 20.8 11.03 21.66C8.41 19.62 6 16.2 6 11M19 8.28L17.75 9L16 8L14.25 9L13 8.28C12.4 8.63 12 9.27 12 10V11C12 20 20 22 20 22V10C20 9.27 19.6 8.63 19 8.28M12.73 6.63L14.25 7.5L16 6.5L17.75 7.5L19.27 6.63C18.72 5.66 17.91 4.94 16.97 4.65C16.79 3.16 15.54 2 14 2V4C14.44 4 14.8 4.29 14.94 4.69C14.03 5 13.26 5.7 12.73 6.63Z\";\nexport var mdiChiliHotOutline = \"M10.94 4.7C10.81 4.3 10.45 4 10 4V2C10.77 2 11.47 2.29 12 2.77V4C12.45 4 12.81 4.3 12.94 4.7C11.83 5.08 10.93 6.05 10.43 7.32L8.86 6.42C9.38 5.6 10.11 5 10.94 4.7M10 11C10 10.23 10.23 9.5 10.6 8.91L9.26 8.15C8.5 8.44 8 9.16 8 10V11C8 18.05 12.9 20.8 15.03 21.66C12.41 19.62 10 16.2 10 11M8.94 4.7C8.81 4.3 8.45 4 8 4V2.77C7.47 2.29 6.77 2 6 2V4C6.45 4 6.81 4.3 6.94 4.7C6.11 5 5.38 5.6 4.86 6.42L6.43 7.32C6.93 6.05 7.83 5.08 8.94 4.7M6 11C6 10.23 6.23 9.5 6.6 8.91L5.26 8.15C4.5 8.44 4 9.16 4 10V11C4 18.05 8.9 20.8 11.03 21.66C8.41 19.62 6 16.2 6 11M20 10V22C20 22 12 20 12 11V10C12 9.27 12.4 8.63 13 8.28L14.25 9L16 8L17.75 9L19 8.28C19.6 8.63 20 9.27 20 10M18 18.87V11.45L16 10.3L14 11.43C14.17 15.44 16.23 17.69 18 18.87M12.73 6.63L14.25 7.5L16 6.5L17.75 7.5L19.27 6.63C18.72 5.66 17.91 4.94 16.97 4.65C16.79 3.16 15.54 2 14 2V4C14.44 4 14.8 4.29 14.94 4.69C14.03 5 13.26 5.7 12.73 6.63Z\";\nexport var mdiChiliMedium = \"M8.43 7.32L6.86 6.42C7.38 5.6 8.11 5 8.94 4.7C8.81 4.3 8.45 4 8 4V2C8.77 2 9.47 2.29 10 2.77V4C10.45 4 10.81 4.3 10.94 4.7C9.83 5.08 8.93 6.05 8.43 7.32M8 11C8 10.23 8.23 9.5 8.6 8.91L7.26 8.15C6.5 8.44 6 9.16 6 10V11C6 18.05 10.9 20.8 13.03 21.66C10.41 19.62 8 16.2 8 11M17 8.28L15.75 9L14 8L12.25 9L11 8.28C10.4 8.63 10 9.27 10 10V11C10 20 18 22 18 22V10C18 9.27 17.6 8.63 17 8.28M10.73 6.63L12.25 7.5L14 6.5L15.75 7.5L17.27 6.63C16.72 5.66 15.91 4.94 14.97 4.65C14.79 3.16 13.54 2 12 2V4C12.44 4 12.8 4.29 12.94 4.69C12.03 5 11.26 5.7 10.73 6.63Z\";\nexport var mdiChiliMediumOutline = \"M8.43 7.32L6.86 6.42C7.38 5.6 8.11 5 8.94 4.7C8.81 4.3 8.45 4 8 4V2C8.77 2 9.47 2.29 10 2.77V4C10.45 4 10.81 4.3 10.94 4.7C9.83 5.08 8.93 6.05 8.43 7.32M8 11C8 10.23 8.23 9.5 8.6 8.91L7.26 8.15C6.5 8.44 6 9.16 6 10V11C6 18.05 10.9 20.8 13.03 21.66C10.41 19.62 8 16.2 8 11M18 10V22C18 22 10 20 10 11V10C10 9.27 10.4 8.63 11 8.28L12.25 9L14 8L15.75 9L17 8.28C17.6 8.63 18 9.27 18 10M16 18.87V11.45L14 10.3L12 11.43C12.17 15.44 14.23 17.69 16 18.87M10.73 6.63L12.25 7.5L14 6.5L15.75 7.5L17.27 6.63C16.72 5.66 15.91 4.94 14.97 4.65C14.79 3.16 13.54 2 12 2V4C12.44 4 12.8 4.29 12.94 4.69C12.03 5 11.26 5.7 10.73 6.63Z\";\nexport var mdiChiliMild = \"M16 10V22C16 22 8 20 8 11V10C8 9.27 8.4 8.63 9 8.28L10.25 9L12 8L13.75 9L15 8.28C15.6 8.63 16 9.27 16 10M12 6.5L13.75 7.5L15.27 6.63C14.72 5.66 13.91 4.94 12.97 4.65C12.79 3.16 11.54 2 10 2V4C10.44 4 10.8 4.29 10.94 4.69C10.03 5 9.26 5.7 8.73 6.63L10.25 7.5L12 6.5Z\";\nexport var mdiChiliMildOutline = \"M10.25 7.5L8.73 6.63C9.26 5.7 10.03 5 10.94 4.69C10.8 4.29 10.44 4 10 4V2C11.54 2 12.79 3.16 12.97 4.65C13.91 4.94 14.72 5.66 15.27 6.63L13.75 7.5L12 6.5L10.25 7.5M16 10V22C16 22 8 20 8 11V10C8 9.27 8.4 8.63 9 8.28L10.25 9L12 8L13.75 9L15 8.28C15.6 8.63 16 9.27 16 10M14 11.45L12 10.3L10 11.43C10.17 15.44 12.23 17.69 14 18.87V11.45Z\";\nexport var mdiChiliOff = \"M15 8.28C15.6 8.63 16 9.27 16 10V12.8L11.5 8.29L12 8L13.75 9L15 8.28M12 6.5L13.75 7.5L15.27 6.63C14.72 5.66 13.91 4.94 12.97 4.65C12.79 3.16 11.54 2 10 2V4C10.44 4 10.8 4.29 10.94 4.69C10.26 4.92 9.66 5.37 9.17 5.97L10.54 7.34L12 6.5M2.39 1.73L1.11 3L8 9.9C8 9.94 8 9.97 8 10V11C8 20 16 22 16 22V17.89L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiChiliOffOutline = \"M15 8.28C15.6 8.63 16 9.27 16 10V12.8L11.5 8.29L12 8L13.75 9L15 8.28M12 6.5L13.75 7.5L15.27 6.63C14.72 5.66 13.91 4.94 12.97 4.65C12.79 3.16 11.54 2 10 2V4C10.44 4 10.8 4.29 10.94 4.69C10.26 4.92 9.66 5.37 9.17 5.97L10.54 7.34L12 6.5M22.11 21.46L20.84 22.73L16 17.89V22C16 22 8 20 8 11V10C8 9.97 8 9.94 8 9.9L1.11 3L2.39 1.73L22.11 21.46M14 15.89L10.07 11.96C10.38 15.63 12.31 17.74 14 18.87V15.89Z\";\nexport var mdiChip = \"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z\";\nexport var mdiChurch = \"M18 12.22V9L13 6.5V5H15V3H13V1H11V3H9V5H11V6.5L6 9V12.22L2 14V22H10V19C10 17.9 10.9 17 12 17S14 17.9 14 19V22H22V14L18 12.22M12 13.5C11.17 13.5 10.5 12.83 10.5 12S11.17 10.5 12 10.5 13.5 11.17 13.5 12 12.83 13.5 12 13.5Z\";\nexport var mdiChurchOutline = \"M18 12.22V9L13 6.5V5H15V3H13V1H11V3H9V5H11V6.5L6 9V12.22L2 14V22H11V18C11 17.45 11.45 17 12 17C12.55 17 13 17.45 13 18V22H22V14L18 12.22M20 20H15V17.96C15 16.27 13.65 14.9 12 14.9C10.35 14.9 9 16.27 9 17.96V20H4V15.21L8 13.4V10.05L12 8L16 10.04V13.39L20 15.2V20M12 10.5C12.83 10.5 13.5 11.17 13.5 12C13.5 12.83 12.83 13.5 12 13.5C11.17 13.5 10.5 12.83 10.5 12C10.5 11.17 11.17 10.5 12 10.5Z\";\nexport var mdiCigar = \"M16 10.2H14.5A2 2 0 0 1 12.65 8.2A1.78 1.78 0 0 1 14.5 6.45V5A3.35 3.35 0 1 0 14.5 11.7H16A1.93 1.93 0 0 1 18 13.7V15H19.5V13.36A3.31 3.31 0 0 0 16 10.2M18.82 7.73A3.34 3.34 0 0 0 16.5 2V3.5A1.85 1.85 0 1 1 16.5 7.2V8.7A4 4 0 0 1 20.5 12.77V15H22V12.76A5.55 5.55 0 0 0 18.85 7.73M18 16V22H19.5V16M20.5 16V22H22V16M12 16V17.27A2 2 0 0 1 12 20.73V22H17V16M2.88 16.88A3 3 0 0 0 5 22H10V20.73A2 2 0 0 1 10 17.27V16H5A3 3 0 0 0 2.88 16.88M12 19A1 1 0 1 1 11 18A1 1 0 0 1 12 19Z\";\nexport var mdiCigarOff = \"M20.84 22.73L18.11 20H18V19.89L17 18.89V20H12V18.73C12.3 18.56 12.55 18.31 12.73 18C13.28 17.05 12.96 15.83 12 15.27V14H12.11L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M14.5 9.7H16C17.07 9.66 17.96 10.5 18 11.56C18 11.61 18 11.65 18 11.7V13H19.5V11.36C19.42 9.53 17.88 8.12 16.05 8.2L16 8.2H14.5C13.45 8.12 12.65 7.25 12.65 6.2C12.67 5.22 13.5 4.43 14.46 4.45L14.5 4.45V3C12.65 3 11.15 4.5 11.15 6.35S12.65 9.7 14.5 9.7M20.5 10.7L20.5 10.77V13H22V10.76C22 8.62 20.78 6.66 18.85 5.73H18.82C19.58 5 19.9 4 19.8 3H18.32C18.34 3.11 18.35 3.23 18.35 3.35C18.35 4.37 17.5 5.2 16.5 5.2H16.5V6.7C18.71 6.7 20.5 8.5 20.5 10.7M9.27 16C9.45 15.7 9.7 15.45 10 15.27V14H5C4.21 14 3.44 14.32 2.88 14.88C1.71 16.05 1.71 17.95 2.88 19.12C3.45 19.68 4.21 20 5 20H10V18.73C9.05 18.18 8.72 16.95 9.27 16M18 14.8L19.5 16.3V14H18V14.8M20.5 17.3L22 18.8V14H20.5V17.3M11 16C10.45 16 10 16.45 10 17S10.45 18 11 18 12 17.55 12 17 11.55 16 11 16Z\";\nexport var mdiCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCircleBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 16C9.79 16 8 14.21 8 12S9.79 8 12 8 16 9.79 16 12 14.21 16 12 16Z\";\nexport var mdiCircleBoxOutline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 8C9.79 8 8 9.79 8 12S9.79 16 12 16 16 14.21 16 12 14.21 8 12 8Z\";\nexport var mdiCircleDouble = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M12,6A6,6 0 0,0 6,12A6,6 0 0,0 12,18A6,6 0 0,0 18,12A6,6 0 0,0 12,6M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8Z\";\nexport var mdiCircleEditOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12H20A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4V2M18.78,3C18.61,3 18.43,3.07 18.3,3.2L17.08,4.41L19.58,6.91L20.8,5.7C21.06,5.44 21.06,5 20.8,4.75L19.25,3.2C19.12,3.07 18.95,3 18.78,3M16.37,5.12L9,12.5V15H11.5L18.87,7.62L16.37,5.12Z\";\nexport var mdiCircleExpand = \"M16,4L20,8V4M20,16L16,20H20M8,20L4,16V20M4,8L8,4H4M16.95,7.05C14.22,4.32 9.78,4.32 7.05,7.05C4.32,9.78 4.32,14.22 7.05,16.95C9.78,19.68 14.22,19.68 16.95,16.95C19.68,14.22 19.68,9.79 16.95,7.05M15.85,15.85C13.72,18 10.28,18 8.15,15.85C6,13.72 6,10.28 8.15,8.15C10.28,6 13.72,6 15.85,8.15C18,10.28 18,13.72 15.85,15.85Z\";\nexport var mdiCircleHalf = \"M12 2A10 10 0 0 0 2 12A10 10 0 0 0 12 22V2Z\";\nexport var mdiCircleHalfFull = \"M12 2A10 10 0 0 0 2 12A10 10 0 0 0 12 22A10 10 0 0 0 22 12A10 10 0 0 0 12 2M12 4A8 8 0 0 1 20 12A8 8 0 0 1 12 20V4Z\";\nexport var mdiCircleMedium = \"M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8Z\";\nexport var mdiCircleMultiple = \"M15 4A8 8 0 1 1 7 12A8 8 0 0 1 15 4M3 12A6 6 0 0 0 7 17.65V19.74A8 8 0 0 1 7 4.26V6.35A6 6 0 0 0 3 12Z\";\nexport var mdiCircleMultipleOutline = \"M15,4A8,8 0 0,1 23,12A8,8 0 0,1 15,20A8,8 0 0,1 7,12A8,8 0 0,1 15,4M15,18A6,6 0 0,0 21,12A6,6 0 0,0 15,6A6,6 0 0,0 9,12A6,6 0 0,0 15,18M3,12C3,14.61 4.67,16.83 7,17.65V19.74C3.55,18.85 1,15.73 1,12C1,8.27 3.55,5.15 7,4.26V6.35C4.67,7.17 3,9.39 3,12Z\";\nexport var mdiCircleOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L4.06 5.95C2.78 7.63 2 9.72 2 12C2 17.5 6.5 22 12 22C14.28 22 16.37 21.23 18.05 19.94L20.84 22.73L22.11 21.46M12 20C7.58 20 4 16.42 4 12C4 10.27 4.56 8.68 5.5 7.38L16.62 18.5C15.32 19.45 13.73 20 12 20M8.17 4.97L6.72 3.5C8.25 2.56 10.06 2 12 2C17.5 2 22 6.5 22 12C22 13.94 21.44 15.75 20.5 17.28L19.03 15.83C19.65 14.69 20 13.39 20 12C20 7.58 16.42 4 12 4C10.61 4 9.31 4.35 8.17 4.97Z\";\nexport var mdiCircleOpacity = \"M18 10V8H20V10H18M18 12V10H16V12H18M18 8V6H16V8H18M16 2.84V4H18C17.37 3.54 16.71 3.15 16 2.84M18 4V6H20C19.42 5.25 18.75 4.58 18 4M20 6V8H21.16C20.85 7.29 20.46 6.63 20 6M22 12C22 11.32 21.93 10.65 21.8 10H20V12H22M16 6V4H14V6H16M16 16H18V14H16V16M18 18H20L20 18V16H18V18M16 20H18L18 20V18H16V20M14 21.8C14.7 21.66 15.36 21.44 16 21.16V20H14V21.8M18 14H20V12H18V14M16 8H14V10H16V8M20 16H21.16C21.44 15.36 21.66 14.7 21.8 14H20V16M16 12H14V14H16V12M12 18V16H14V14H12V12H14V10H12V8H14V6H12V4H14V2.2C13.35 2.07 12.69 2 12 2C6.5 2 2 6.5 2 12S6.5 22 12 22V20H14V18H12M14 18H16V16H14V18Z\";\nexport var mdiCircleOutline = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCircleSlice1 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C13.93 5 15.68 5.78 16.95 7.05L12 12V5Z\";\nexport var mdiCircleSlice2 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12H12V5Z\";\nexport var mdiCircleSlice3 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 13.93 18.22 15.68 16.95 16.95L12 12V5Z\";\nexport var mdiCircleSlice4 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19V5Z\";\nexport var mdiCircleSlice5 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19C10.07 19 8.32 18.22 7.05 16.95L12 12V5Z\";\nexport var mdiCircleSlice6 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19C8.13 19 5 15.87 5 12H12V5Z\";\nexport var mdiCircleSlice7 = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19C8.13 19 5 15.87 5 12C5 10.07 5.78 8.32 7.05 7.05L12 12V5Z\";\nexport var mdiCircleSlice8 = \"M12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4Z\";\nexport var mdiCircleSmall = \"M12,10A2,2 0 0,0 10,12C10,13.11 10.9,14 12,14C13.11,14 14,13.11 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiCircularSaw = \"M13,11A1,1 0 0,1 14,12A1,1 0 0,1 13,13A1,1 0 0,1 12,12A1,1 0 0,1 13,11M7.86,6.25C9.14,4.87 10.97,4 13,4C16.5,4 19.44,6.61 19.93,10H22V12H16A3,3 0 0,0 13,9A3,3 0 0,0 10,12H2V10H2.05C2.25,7.73 3.14,5.66 4.5,4L7.86,6.25M6.73,7.89L5.06,6.77C4.53,7.75 4.18,8.84 4.06,10H6.07C6.18,9.25 6.4,8.54 6.73,7.89M7.4,15.4L6,14H11.79C12.03,14.42 12.5,14.7 13,14.7C13.5,14.7 13.97,14.42 14.21,14H20V15.4C18.39,14.42 18.46,15.75 18.46,15.75V17.71L16.5,19.67C16,17.92 15.1,18.9 15.1,18.9L13.7,20.3H10.9C11.88,18.69 10.55,18.76 10.55,18.76H8.59L6.63,16.8C8.38,16.31 7.4,15.4 7.4,15.4Z\";\nexport var mdiCity = \"M19,15H17V13H19M19,19H17V17H19M13,7H11V5H13M13,11H11V9H13M13,15H11V13H13M13,19H11V17H13M7,11H5V9H7M7,15H5V13H7M7,19H5V17H7M15,11V5L12,2L9,5V7H3V21H21V11H15Z\";\nexport var mdiCitySwitch = \"M21 15V9H15V3L12 0L9 3V5H3V15H21M19 13H17V11H19V13M11 5V3H13V5H11M11 9V7H13V9H11M11 13V11H13V13H11M7 9H5V7H7V9M7 13H5V11H7V13M9 17V19H15V17L18 20L15 23V21H9V23L6 20L9 17Z\";\nexport var mdiCityVariant = \"M19,9V7A2,2 0 0,0 17,5H16V2H14V5H13A2,2 0 0,0 11,7V9A2,2 0 0,0 9,11V12H5A2,2 0 0,0 3,14V22H6V20H8V22H12V20H14V22H16V20H18V22H21V11A2,2 0 0,0 19,9M8,18H6V16H8V18M14,18H12V16H14V18M14,14H12V12H14V14M13,9V7H17V9H13M18,18H16V16H18V18M18,14H16V12H18V14Z\";\nexport var mdiCityVariantOutline = \"M15,23H13V21H15V23M19,21H17V23H19V21M15,17H13V19H15V17M7,21H5V23H7V21M7,17H5V19H7V17M19,17H17V19H19V17M15,13H13V15H15V13M19,13H17V15H19V13M21,9A2,2 0 0,1 23,11V23H21V11H11V23H9V15H3V23H1V15A2,2 0 0,1 3,13H9V11A2,2 0 0,1 11,9V7A2,2 0 0,1 13,5H15V1H17V5H19A2,2 0 0,1 21,7V9M19,9V7H13V9H19Z\";\nexport var mdiClipboard = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3\";\nexport var mdiClipboardAccount = \"M18,19H6V17.6C6,15.6 10,14.5 12,14.5C14,14.5 18,15.6 18,17.6M12,7A3,3 0 0,1 15,10A3,3 0 0,1 12,13A3,3 0 0,1 9,10A3,3 0 0,1 12,7M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardAccountOutline = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M12,9A2,2 0 0,1 14,11A2,2 0 0,1 12,13A2,2 0 0,1 10,11A2,2 0 0,1 12,9M8,17V16C8,14.9 9.79,14 12,14C14.21,14 16,14.9 16,16V17H8Z\";\nexport var mdiClipboardAlert = \"M12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5M13,14H11V8H13M13,18H11V16H13M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardAlertOutline = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M11,9H13V13.5H11V9M11,15H13V17H11V15Z\";\nexport var mdiClipboardArrowDown = \"M12,18L7,13H10V9H14V13H17M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardArrowDownOutline = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M12,18L7,13H10V9H14V13H17L12,18Z\";\nexport var mdiClipboardArrowLeft = \"M16,15H12V18L7,13L12,8V11H16M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardArrowLeftOutline = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M7,13L12,18V15H16V11H12V8L7,13Z\";\nexport var mdiClipboardArrowRight = \"M17,13L12,18V15H8V11H12V8M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardArrowRightOutline = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M16.91,13L11.91,18V15H7.91V11H11.91V8L16.91,13Z\";\nexport var mdiClipboardArrowUp = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,8L7,13H10V17H14V13H17L12,8M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3Z\";\nexport var mdiClipboardArrowUpOutline = \"M12,8L17,13H14V17H10V13H7L12,8M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7Z\";\nexport var mdiClipboardCheck = \"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardCheckMultiple = \"M4 7H2V21C2 22.1 2.9 23 4 23H18V21H4M20 3H16.8C16.4 1.8 15.3 1 14 1C12.7 1 11.6 1.8 11.2 3H8C6.9 3 6 3.9 6 5V17C6 18.1 6.9 19 8 19H20C21.1 19 22 18.1 22 17V5C22 3.9 21.1 3 20 3M14 3C14.6 3 15 3.5 15 4C15 4.5 14.5 5 14 5C13.5 5 13 4.5 13 4C13 3.5 13.4 3 14 3M12.3 15.1L9 11.8L10.4 10.4L12.3 12.3L17.6 7L19 8.4\";\nexport var mdiClipboardCheckMultipleOutline = \"M4 7V21H18V23H4C2.9 23 2 22.1 2 21V7H4M12.8 15.35L9.5 12.05L10.9 10.65L12.8 12.55L17.1 8.25L18.5 9.65L12.8 15.35M20 3C21.1 3 22 3.9 22 5V17C22 18.1 21.1 19 20 19H8C6.9 19 6 18.1 6 17V5C6 3.9 6.9 3 8 3H11.18C11.6 1.84 12.7 1 14 1C15.3 1 16.4 1.84 16.82 3H20M14 3C13.45 3 13 3.45 13 4C13 4.55 13.45 5 14 5C14.55 5 15 4.55 15 4C15 3.45 14.55 3 14 3M10 7V5H8V17H20V5H18V7H10Z\";\nexport var mdiClipboardCheckOutline = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M7,7H17V5H19V19H5V5H7V7M7.5,13.5L9,12L11,14L15.5,9.5L17,11L11,17L7.5,13.5Z\";\nexport var mdiClipboardClock = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C14.09 23 12.37 22.24 11.11 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1S14.4 1.84 14.82 3H19C20.11 3 21 3.9 21 5V11.11C22.24 12.37 23 14.09 23 16M11 4C11 4.55 11.45 5 12 5S13 4.55 13 4 12.55 3 12 3 11 3.45 11 4M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiClipboardClockOutline = \"M21 11.11V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11.11C12.37 22.24 14.09 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.37 21 11.11M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M5 19V5H7V7H17V5H19V9.68C18.09 9.25 17.08 9 16 9C12.13 9 9 12.13 9 16C9 17.08 9.25 18.09 9.68 19H5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiClipboardEdit = \"M21.04 12.13C21.18 12.13 21.31 12.19 21.42 12.3L22.7 13.58C22.92 13.79 22.92 14.14 22.7 14.35L21.7 15.35L19.65 13.3L20.65 12.3C20.76 12.19 20.9 12.13 21.04 12.13M19.07 13.88L21.12 15.93L15.06 22H13V19.94L19.07 13.88M19 3C20.1 3 21 3.9 21 5V9L11 19V21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1C13.3 1 14.4 1.84 14.82 3H19M12 3C11.45 3 11 3.45 11 4C11 4.55 11.45 5 12 5C12.55 5 13 4.55 13 4C13 3.45 12.55 3 12 3Z\";\nexport var mdiClipboardEditOutline = \"M21.04 12.13C21.18 12.13 21.31 12.19 21.42 12.3L22.7 13.58C22.92 13.79 22.92 14.14 22.7 14.35L21.7 15.35L19.65 13.3L20.65 12.3C20.76 12.19 20.9 12.13 21.04 12.13M19.07 13.88L21.12 15.93L15.06 22H13V19.94L19.07 13.88M11 19L9 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1C13.3 1 14.4 1.84 14.82 3H19C20.1 3 21 3.9 21 5V9L19 11V5H17V7H7V5H5V19H11M12 3C11.45 3 11 3.45 11 4C11 4.55 11.45 5 12 5C12.55 5 13 4.55 13 4C13 3.45 12.55 3 12 3Z\";\nexport var mdiClipboardFile = \"M19 3C20.1 3 21 3.9 21 5V9.17L19.83 8H15C12.79 8 11 9.79 11 12V21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1C13.3 1 14.4 1.84 14.82 3H19M12 3C11.45 3 11 3.45 11 4C11 4.55 11.45 5 12 5C12.55 5 13 4.55 13 4C13 3.45 12.55 3 12 3M15 23C13.9 23 13 22.11 13 21V12C13 10.9 13.9 10 15 10H19L23 14V21C23 22.11 22.11 23 21 23H15M21 14.83L18.17 12H18V15H21V14.83Z\";\nexport var mdiClipboardFileOutline = \"M15 23C13.9 23 13 22.11 13 21V12C13 10.9 13.9 10 15 10H19L23 14V21C23 22.11 22.11 23 21 23H15M15 21H21V14.83L18.17 12H15V21M19 3C20.1 3 21 3.9 21 5V9.17L19.83 8H19V5H17V7H7V5H5V19H11V21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1C13.3 1 14.4 1.84 14.82 3H19M12 3C11.45 3 11 3.45 11 4C11 4.55 11.45 5 12 5C12.55 5 13 4.55 13 4C13 3.45 12.55 3 12 3Z\";\nexport var mdiClipboardFlow = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M15,19L11,15H14V8H16V15H19L15,19M10,16H8V9H5L9,5L13,9H10V16\";\nexport var mdiClipboardFlowOutline = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M10 16H8V11H6L9 8L12 11H10V16M14 10H16V15H18L15 18L12 15H14V10Z\";\nexport var mdiClipboardList = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 8H9V12H8V9H7V8M10 17V18H7V17.08L9 15H7V14H9.25C9.66 14 10 14.34 10 14.75C10 14.95 9.92 15.14 9.79 15.27L8.12 17H10M11 4C11 3.45 11.45 3 12 3S13 3.45 13 4 12.55 5 12 5 11 4.55 11 4M17 17H12V15H17V17M17 11H12V9H17V11Z\";\nexport var mdiClipboardListOutline = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M12 17V15H17V17H12M12 11V9H17V11H12M8 12V9H7V8H9V12H8M9.25 14C9.66 14 10 14.34 10 14.75C10 14.95 9.92 15.14 9.79 15.27L8.12 17H10V18H7V17.08L9 15H7V14H9.25\";\nexport var mdiClipboardMinus = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M16 14H8V12H16V14Z\";\nexport var mdiClipboardMinusOutline = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M19 19H5V5H7V7H17V5H19V19M8 12H16V14H8V12Z\";\nexport var mdiClipboardMultiple = \"M4 7H2V21C2 22.1 2.9 23 4 23H18V21H4M20 3H16.8C16.4 1.8 15.3 1 14 1C12.7 1 11.6 1.8 11.2 3H8C6.9 3 6 3.9 6 5V17C6 18.1 6.9 19 8 19H20C21.1 19 22 18.1 22 17V5C22 3.9 21.1 3 20 3M14 3C14.6 3 15 3.5 15 4C15 4.5 14.5 5 14 5C13.5 5 13 4.5 13 4C13 3.5 13.4 3 14 3Z\";\nexport var mdiClipboardMultipleOutline = \"M4 7V21H18V23H4C2.9 23 2 22.1 2 21V7H4M20 3C21.1 3 22 3.9 22 5V17C22 18.1 21.1 19 20 19H8C6.9 19 6 18.1 6 17V5C6 3.9 6.9 3 8 3H11.18C11.6 1.84 12.7 1 14 1C15.3 1 16.4 1.84 16.82 3H20M14 3C13.45 3 13 3.45 13 4C13 4.55 13.45 5 14 5C14.55 5 15 4.55 15 4C15 3.45 14.55 3 14 3M10 7V5H8V17H20V5H18V7H10Z\";\nexport var mdiClipboardOff = \"M21 5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H6.2L21 17.8V5M12 5C11.45 5 11 4.55 11 4S11.45 3 12 3 13 3.45 13 4 12.55 5 12 5M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.9 21 3 20.11 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L22.11 21.46Z\";\nexport var mdiClipboardOffOutline = \"M2.39 1.73L1.11 3L3 4.9C3 4.93 3 4.97 3 5V19C3 20.11 3.9 21 5 21H19C19.03 21 19.07 21 19.1 21L20.84 22.73L22.11 21.46L2.39 1.73M5 19V6.89L17.11 19H5M17 7V5H19V15.8L21 17.8V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H6.2L10.2 7H17M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3Z\";\nexport var mdiClipboardOutline = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M7,7H17V5H19V19H5V5H7V7Z\";\nexport var mdiClipboardPlay = \"M19,3H14.82C14.25,1.44 12.53,0.64 11,1.2C10.14,1.5 9.5,2.16 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M10,17V9L15,13L10,17Z\";\nexport var mdiClipboardPlayMultiple = \"M4 21H18V23H4C2.9 23 2 22.1 2 21V7H4M22 5V17C22 18.1 21.1 19 20 19H8C6.9 19 6 18.1 6 17V5C6 3.9 6.9 3 8 3H11.2C11.6 1.8 12.7 1 14 1C15.3 1 16.4 1.8 16.8 3H20C21.1 3 22 3.9 22 5M13 4C13 4.5 13.5 5 14 5C14.5 5 15 4.5 15 4C15 3.5 14.6 3 14 3C13.4 3 13 3.5 13 4M17 12L12 8V16\";\nexport var mdiClipboardPlayMultipleOutline = \"M4 7V21H18V23H4C2.9 23 2 22.1 2 21V7H4M20 3C21.1 3 22 3.9 22 5V17C22 18.1 21.1 19 20 19H8C6.9 19 6 18.1 6 17V5C6 3.9 6.9 3 8 3H11.2C11.6 1.8 12.7 1 14 1C15.3 1 16.4 1.8 16.8 3H20M14 3C13.4 3 13 3.5 13 4C13 4.5 13.4 5 14 5C14.6 5 15 4.6 15 4C15 3.4 14.6 3 14 3M10 7V5H8V17H20V5H18V7M12 15V9L17 12\";\nexport var mdiClipboardPlayOutline = \"M19,3H14.82C14.25,1.44 12.53,0.64 11,1.2C10.14,1.5 9.5,2.16 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M7,7H17V5H19V19H5V5H7V7M10,17V9L15,13L10,17Z\";\nexport var mdiClipboardPlus = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M13,12H16V14H13V17H11V14H8V12H11V9H13V12Z\";\nexport var mdiClipboardPlusOutline = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M13 12H16V14H13V17H11V14H8V12H11V9H13V12Z\";\nexport var mdiClipboardPulse = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M5,13.46H7.17L10.5,7.08L11.44,14.05L13.93,10.86L16.53,13.46H19V15H15.89L14.07,13.21L10.38,17.92L9.62,12.15L8.11,15H5V13.46Z\";\nexport var mdiClipboardPulseOutline = \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M5,15H8.11L9.62,12.15L10.38,17.92L14.07,13.21L15.89,15H19V19H5V15M19,13.46H16.53L13.93,10.86L11.44,14.05L10.5,7.08L7.17,13.46H5V5H7V6H17V5H19V6L19,13.46Z\";\nexport var mdiClipboardRemove = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M15.54 15.12L14.12 16.54L12 14.41L9.88 16.54L8.47 15.12L10.59 13L8.47 10.88L9.88 9.47L12 11.59L14.12 9.47L15.54 10.88L13.41 13L15.54 15.12Z\";\nexport var mdiClipboardRemoveOutline = \"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M19 19H5V5H7V7H17V5H19V19M15.54 10.88L13.41 13L15.54 15.12L14.12 16.54L12 14.41L9.88 16.54L8.47 15.12L10.59 13L8.47 10.88L9.88 9.47L12 11.59L14.12 9.47L15.54 10.88Z\";\nexport var mdiClipboardSearch = \"M11.9 10.9C14.41 8.4 18.45 8.37 21 10.82V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.06C12.65 20.74 12.26 20.45 11.9 20.1C9.37 17.56 9.37 13.44 11.9 10.9M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M20.31 17.9C20.75 17.21 21 16.38 21 15.5C21 13 19 11 16.5 11S12 13 12 15.5 14 20 16.5 20C17.37 20 18.19 19.75 18.88 19.32L22 22.39L23.39 21L20.31 17.9M16.5 18C15.12 18 14 16.88 14 15.5S15.12 13 16.5 13 19 14.12 19 15.5 17.88 18 16.5 18Z\";\nexport var mdiClipboardSearchOutline = \"M11.03 19H5V5H7V7H17V5H19V9.5C19.72 9.8 20.4 10.24 21 10.82V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.06C12.65 20.74 12.26 20.45 11.9 20.1C11.57 19.76 11.27 19.39 11.03 19M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M20.31 17.9C20.75 17.21 21 16.38 21 15.5C21 13 19 11 16.5 11S12 13 12 15.5 14 20 16.5 20C17.37 20 18.19 19.75 18.88 19.32L22 22.39L23.39 21L20.31 17.9M16.5 18C15.12 18 14 16.88 14 15.5S15.12 13 16.5 13 19 14.12 19 15.5 17.88 18 16.5 18Z\";\nexport var mdiClipboardText = \"M17,9H7V7H17M17,13H7V11H17M14,17H7V15H14M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiClipboardTextClock = \"M21 11.11V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11.11C12.37 22.24 14.09 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.37 21 11.11M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M6 7H18V9H6V7M9.08 17H6V15H9.08C9.03 15.33 9 15.66 9 16S9.03 16.67 9.08 17M6 13V11H11.11C10.5 11.57 10.04 12.25 9.68 13H6M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiClipboardTextClockOutline = \"M21 11.11V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11.11C12.37 22.24 14.09 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.37 21 11.11M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M5 19V5H7V7H17V5H19V9.68C18.09 9.25 17.08 9 16 9H7V11H11.1C10.5 11.57 10.04 12.25 9.68 13H7V15H9.08C9.03 15.33 9 15.66 9 16C9 17.08 9.25 18.09 9.68 19H5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiClipboardTextMultiple = \"M20 3H16.8C16.4 1.8 15.3 1 14 1C12.7 1 11.6 1.8 11.2 3H8C6.9 3 6 3.9 6 5V17C6 18.1 6.9 19 8 19H20C21.1 19 22 18.1 22 17V5C22 3.9 21.1 3 20 3M14 3C14.6 3 15 3.5 15 4C15 4.5 14.5 5 14 5C13.5 5 13 4.5 13 4C13 3.5 13.4 3 14 3M16 14H9V12H16M19 10H9V8H19M4 21H18V23H4C2.9 23 2 22.1 2 21V7H4\";\nexport var mdiClipboardTextMultipleOutline = \"M4 7V21H18V23H4C2.9 23 2 22.1 2 21V7H4M20 3C21.1 3 22 3.9 22 5V17C22 18.1 21.1 19 20 19H8C6.9 19 6 18.1 6 17V5C6 3.9 6.9 3 8 3H11.18C11.6 1.84 12.7 1 14 1C15.3 1 16.4 1.84 16.82 3H20M14 3C13.45 3 13 3.45 13 4C13 4.55 13.45 5 14 5C14.55 5 15 4.55 15 4C15 3.45 14.55 3 14 3M10 7V5H8V17H20V5H18V7M15 15H10V13H15M18 11H10V9H18V11Z\";\nexport var mdiClipboardTextOff = \"M2.39 1.73L1.11 3L3 4.9C3 4.93 3 4.97 3 5V19C3 20.11 3.9 21 5 21H19C19.03 21 19.07 21 19.1 21L20.84 22.73L22.11 21.46L2.39 1.73M7 11H9.11L11.11 13H7V11M14 17H7V15H13.11L14 15.89V17M17 7V9H12.2L14.2 11H17V13H16.2L21 17.8V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H6.2L10.2 7H17M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3Z\";\nexport var mdiClipboardTextOffOutline = \"M17 7V5H19V15.8L21 17.8V5C21 3.9 20.11 3 19 3H14.82C14.25 1.44 12.53 .64 11 1.2C10.14 1.5 9.5 2.16 9.18 3H6.2L10.2 7H17M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M14.2 11L12.2 9H17V11H14.2M2.39 1.73L1.11 3L3 4.9C3 4.93 3 4.97 3 5V19C3 20.11 3.9 21 5 21H19C19.03 21 19.07 21 19.1 21L20.84 22.73L22.11 21.46L2.39 1.73M5 19V6.89L7.11 9H7V11H9.11L11.11 13H7V15H13.11L17.11 19H5Z\";\nexport var mdiClipboardTextOutline = \"M19,3H14.82C14.25,1.44 12.53,0.64 11,1.2C10.14,1.5 9.5,2.16 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M7,7H17V5H19V19H5V5H7V7M17,11H7V9H17V11M15,15H7V13H15V15Z\";\nexport var mdiClipboardTextPlay = \"M19,3A2,2 0 0,1 21,5V13.34C20.36,13.11 19.68,13 19,13C15.68,13 13,15.69 13,19C13,19.68 13.11,20.36 13.34,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.5,2.16 10.14,1.5 11,1.2C12.53,0.64 14.25,1.44 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M11,17V15H7V17H11M13,13V11H7V13H13M17,9V7H7V9H17M17,16L22,19L17,22V16Z\";\nexport var mdiClipboardTextPlayOutline = \"M19,3H14.82C14.25,1.44 12.53,0.64 11,1.2C10.14,1.5 9.5,2.16 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H15V19H5V5H7V7H17V5H19V14H21V5A2,2 0 0,0 19,3M12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5M17,16V22L22,19L17,16M17,11H7V9H17V11M15,15H7V13H15V15Z\";\nexport var mdiClipboardTextSearch = \"M10.18 17H7V15H10C10.08 14.32 10.23 13.64 10.5 13H7V11H11.82C11.85 10.97 11.87 10.94 11.9 10.9C13.17 9.64 14.84 9 16.5 9H7V7H17V9H16.5C18.12 9 19.74 9.61 21 10.82V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.06C12.65 20.74 12.26 20.45 11.9 20.1C11 19.21 10.45 18.13 10.18 17M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M20.31 17.9C20.75 17.21 21 16.38 21 15.5C21 13 19 11 16.5 11S12 13 12 15.5 14 20 16.5 20C17.37 20 18.19 19.75 18.88 19.32L22 22.39L23.39 21L20.31 17.9M16.5 18C15.12 18 14 16.88 14 15.5S15.12 13 16.5 13 19 14.12 19 15.5 17.88 18 16.5 18Z\";\nexport var mdiClipboardTextSearchOutline = \"M17 9H16.5 17M7 15H10C10.08 14.32 10.23 13.64 10.5 13H7V15M11.9 10.9C13.17 9.64 14.84 9 16.5 9H7V11H11.82C11.85 10.97 11.87 10.94 11.9 10.9M11.9 20.1C12.26 20.45 12.65 20.74 13.06 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H9.18C9.5 2.16 10.14 1.5 11 1.2C12.53 .64 14.25 1.44 14.82 3H19C20.11 3 21 3.9 21 5V10.82C20.4 10.24 19.72 9.8 19 9.5V5H17V7H7V5H5V19H11.03C11.27 19.39 11.57 19.76 11.9 20.1M11 4C11 4.55 11.45 5 12 5S13 4.55 13 4 12.55 3 12 3 11 3.45 11 4M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiClippy = \"M15,15.5A2.5,2.5 0 0,1 12.5,18A2.5,2.5 0 0,1 10,15.5V13.75A0.75,0.75 0 0,1 10.75,13A0.75,0.75 0 0,1 11.5,13.75V15.5A1,1 0 0,0 12.5,16.5A1,1 0 0,0 13.5,15.5V11.89C12.63,11.61 12,10.87 12,10C12,8.9 13,8 14.25,8C15.5,8 16.5,8.9 16.5,10C16.5,10.87 15.87,11.61 15,11.89V15.5M8.25,8C9.5,8 10.5,8.9 10.5,10C10.5,10.87 9.87,11.61 9,11.89V17.25A3.25,3.25 0 0,0 12.25,20.5A3.25,3.25 0 0,0 15.5,17.25V13.75A0.75,0.75 0 0,1 16.25,13A0.75,0.75 0 0,1 17,13.75V17.25A4.75,4.75 0 0,1 12.25,22A4.75,4.75 0 0,1 7.5,17.25V11.89C6.63,11.61 6,10.87 6,10C6,8.9 7,8 8.25,8M10.06,6.13L9.63,7.59C9.22,7.37 8.75,7.25 8.25,7.25C7.34,7.25 6.53,7.65 6.03,8.27L4.83,7.37C5.46,6.57 6.41,6 7.5,5.81V5.75A3.75,3.75 0 0,1 11.25,2A3.75,3.75 0 0,1 15,5.75V5.81C16.09,6 17.04,6.57 17.67,7.37L16.47,8.27C15.97,7.65 15.16,7.25 14.25,7.25C13.75,7.25 13.28,7.37 12.87,7.59L12.44,6.13C12.77,6 13.13,5.87 13.5,5.81V5.75C13.5,4.5 12.5,3.5 11.25,3.5C10,3.5 9,4.5 9,5.75V5.81C9.37,5.87 9.73,6 10.06,6.13M14.25,9.25C13.7,9.25 13.25,9.59 13.25,10C13.25,10.41 13.7,10.75 14.25,10.75C14.8,10.75 15.25,10.41 15.25,10C15.25,9.59 14.8,9.25 14.25,9.25M8.25,9.25C7.7,9.25 7.25,9.59 7.25,10C7.25,10.41 7.7,10.75 8.25,10.75C8.8,10.75 9.25,10.41 9.25,10C9.25,9.59 8.8,9.25 8.25,9.25Z\";\nexport var mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nexport var mdiClockAlert = \"M20 12H22V18H20V12M20 20H22V22H20V20M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22C14.3 22 16.3 21.2 18 20V10H21.8C20.9 5.4 16.8 2 12 2M16.2 16.2L11 13V7H12.5V12.2L17 14.9L16.2 16.2Z\";\nexport var mdiClockAlertOutline = \"M11 7V13L16.2 16.1L17 14.9L12.5 12.2V7H11M20 12V18H22V12H20M20 20V22H22V20H20M18 20C16.3 21.3 14.3 22 12 22C6.5 22 2 17.5 2 12S6.5 2 12 2C16.8 2 20.9 5.4 21.8 10H19.7C18.8 6.6 15.7 4 12 4C7.6 4 4 7.6 4 12S7.6 20 12 20C14.4 20 16.5 18.9 18 17.3V20Z\";\nexport var mdiClockCheck = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M13 19C13 17.5 13.5 16.2 14.4 15.1L11 13V7H12.5V12.2L15.6 14.1C16.6 13.4 17.7 13 19 13C20 13 21 13.3 21.8 13.7C21.9 13.1 22 12.6 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22C12.6 22 13.2 21.9 13.7 21.8C13.3 21 13 20 13 19Z\";\nexport var mdiClockCheckOutline = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M13.1 19.9C12.7 20 12.4 20 12 20C7.6 20 4 16.4 4 12S7.6 4 12 4 20 7.6 20 12C20 12.4 20 12.7 19.9 13.1C20.6 13.2 21.2 13.4 21.8 13.7C21.9 13.1 22 12.6 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12C2 17.5 6.5 22 12 22C12.6 22 13.2 21.9 13.7 21.8C13.4 21.3 13.2 20.6 13.1 19.9M15.6 14.1L12.5 12.3V7H11V13L14.5 15.1C14.8 14.7 15.2 14.4 15.6 14.1Z\";\nexport var mdiClockDigital = \"M2,6A2,2 0 0,0 0,8V16A2,2 0 0,0 2,18H22A2,2 0 0,0 24,16V8A2,2 0 0,0 22,6M2,8H22V16H2M3,9V10.5H6.25L3,15H4.75L8,10.5V9M9.25,9V10.5H10.75V9M12,9V10.5H13.5V15H15V9M17,9A1,1 0 0,0 16,10V14A1,1 0 0,0 17,15H20A1,1 0 0,0 21,14V10A1,1 0 0,0 20,9M17.5,10.5H19.5V13.5H17.5M9.25,13.5V15H10.75V13.5\";\nexport var mdiClockEdit = \"M21 13.1C20.9 13.1 20.7 13.2 20.6 13.3L19.6 14.3L21.7 16.4L22.7 15.4C22.9 15.2 22.9 14.8 22.7 14.6L21.4 13.3C21.3 13.2 21.2 13.1 21 13.1M19.1 14.9L13 20.9V23H15.1L21.2 16.9L19.1 14.9M11 21.9C5.9 21.4 2 17.1 2 12C2 6.5 6.5 2 12 2C17.3 2 21.6 6.1 22 11.3C21.7 11.2 21.4 11.1 21 11.1C20.2 11.1 19.6 11.5 19.2 11.9L16.5 14.6L12.5 12.2V7H11V13L15.4 15.7L11 20.1V21.9Z\";\nexport var mdiClockEditOutline = \"M21 13.1C20.9 13.1 20.7 13.2 20.6 13.3L19.6 14.3L21.7 16.4L22.7 15.4C22.9 15.2 22.9 14.8 22.7 14.6L21.4 13.3C21.3 13.2 21.2 13.1 21 13.1M19.1 14.9L13 20.9V23H15.1L21.2 16.9L19.1 14.9M12.5 7V12.2L16.5 14.6L15.5 15.6L11 13V7H12.5M11 21.9C5.9 21.4 2 17.1 2 12C2 6.5 6.5 2 12 2C17.3 2 21.6 6.1 22 11.3C21.7 11.2 21.4 11.1 21 11.1C20.6 11.1 20.3 11.2 20 11.3C19.6 7.2 16.2 4 12 4C7.6 4 4 7.6 4 12C4 16.1 7.1 19.5 11.1 19.9L11 20.1V21.9Z\";\nexport var mdiClockEnd = \"M12,1C8.14,1 5,4.14 5,8A7,7 0 0,0 12,15C15.86,15 19,11.87 19,8C19,4.14 15.86,1 12,1M12,3.15C14.67,3.15 16.85,5.32 16.85,8C16.85,10.68 14.67,12.85 12,12.85A4.85,4.85 0 0,1 7.15,8A4.85,4.85 0 0,1 12,3.15M11,5V8.69L14.19,10.53L14.94,9.23L12.5,7.82V5M15,16V19H3V21H15V24L19,20M19,20V24H21V16H19\";\nexport var mdiClockFast = \"M15,4A8,8 0 0,1 23,12A8,8 0 0,1 15,20A8,8 0 0,1 7,12A8,8 0 0,1 15,4M15,6A6,6 0 0,0 9,12A6,6 0 0,0 15,18A6,6 0 0,0 21,12A6,6 0 0,0 15,6M14,8H15.5V11.78L17.83,14.11L16.77,15.17L14,12.4V8M2,18A1,1 0 0,1 1,17A1,1 0 0,1 2,16H5.83C6.14,16.71 6.54,17.38 7,18H2M3,13A1,1 0 0,1 2,12A1,1 0 0,1 3,11H5.05L5,12L5.05,13H3M4,8A1,1 0 0,1 3,7A1,1 0 0,1 4,6H7C6.54,6.62 6.14,7.29 5.83,8H4Z\";\nexport var mdiClockIn = \"M2.21,0.79L0.79,2.21L4.8,6.21L3,8H8V3L6.21,4.8M12,8C8.14,8 5,11.13 5,15A7,7 0 0,0 12,22C15.86,22 19,18.87 19,15A7,7 0 0,0 12,8M12,10.15C14.67,10.15 16.85,12.32 16.85,15A4.85,4.85 0 0,1 12,19.85C9.32,19.85 7.15,17.68 7.15,15A4.85,4.85 0 0,1 12,10.15M11,12V15.69L14.19,17.53L14.94,16.23L12.5,14.82V12\";\nexport var mdiClockMinus = \"M13.72 21.84C13.16 21.94 12.59 22 12 22C6.5 22 2 17.5 2 12S6.5 2 12 2 22 6.5 22 12C22 12.59 21.94 13.16 21.84 13.72C21 13.26 20.03 13 19 13C17.74 13 16.57 13.39 15.6 14.06L12.5 12.2V7H11V13L14.43 15.11C13.54 16.16 13 17.5 13 19C13 20.03 13.26 21 13.72 21.84M15 18V20H23V18H15Z\";\nexport var mdiClockMinusOutline = \"M14.47 15.08L11 13V7H12.5V12.25L15.58 14.08C15.17 14.36 14.79 14.7 14.47 15.08M13.08 19.92C12.72 19.97 12.37 20 12 20C7.58 20 4 16.42 4 12S7.58 4 12 4 20 7.58 20 12C20 12.37 19.97 12.72 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12C2 17.5 6.47 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.4 21.25 13.18 20.61 13.08 19.92M15 18V20H23V18H15Z\";\nexport var mdiClockOut = \"M18,1L19.8,2.79L15.79,6.79L17.21,8.21L21.21,4.21L23,6V1M12,8C8.14,8 5,11.13 5,15A7,7 0 0,0 12,22C15.86,22 19,18.87 19,15A7,7 0 0,0 12,8M12,10.15C14.67,10.15 16.85,12.32 16.85,15A4.85,4.85 0 0,1 12,19.85C9.32,19.85 7.15,17.68 7.15,15A4.85,4.85 0 0,1 12,10.15M11,12V15.69L14.19,17.53L14.94,16.23L12.5,14.82V12\";\nexport var mdiClockOutline = \"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\";\nexport var mdiClockPlus = \"M13.72 21.84C13.16 21.94 12.59 22 12 22C6.5 22 2 17.5 2 12S6.5 2 12 2 22 6.5 22 12C22 12.59 21.94 13.16 21.84 13.72C21 13.26 20.03 13 19 13C17.74 13 16.57 13.39 15.6 14.06L12.5 12.2V7H11V13L14.43 15.11C13.54 16.16 13 17.5 13 19C13 20.03 13.26 21 13.72 21.84M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiClockPlusOutline = \"M14.47 15.08L11 13V7H12.5V12.25L15.58 14.08C15.17 14.36 14.79 14.7 14.47 15.08M13.08 19.92C12.72 19.97 12.37 20 12 20C7.58 20 4 16.42 4 12S7.58 4 12 4 20 7.58 20 12C20 12.37 19.97 12.72 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12C2 17.5 6.47 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.4 21.25 13.18 20.61 13.08 19.92M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiClockRemove = \"M13.72 21.84C13.16 21.94 12.59 22 12 22C6.5 22 2 17.5 2 12S6.5 2 12 2 22 6.5 22 12C22 12.59 21.94 13.16 21.84 13.72C21 13.26 20.03 13 19 13C17.74 13 16.57 13.39 15.6 14.06L12.5 12.2V7H11V13L14.43 15.11C13.54 16.16 13 17.5 13 19C13 20.03 13.26 21 13.72 21.84M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiClockRemoveOutline = \"M14.47 15.08L11 13V7H12.5V12.25L15.58 14.08C15.17 14.36 14.79 14.7 14.47 15.08M13.08 19.92C12.72 19.97 12.37 20 12 20C7.58 20 4 16.42 4 12S7.58 4 12 4 20 7.58 20 12C20 12.37 19.97 12.72 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12C2 17.5 6.47 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.4 21.25 13.18 20.61 13.08 19.92M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiClockStarFourPoints = \"M14.4 15.1C13.5 16.2 13 17.5 13 19C13 20 13.3 21 13.7 21.8C13.2 21.9 12.6 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12C22 12.5 21.92 12.97 21.84 13.5L21.8 13.7C21 13.3 20 13 19 13C17.7 13 16.6 13.4 15.6 14.1L12.5 12.2V7H11V13L14.4 15.1M17.74 17.75L19 15L20.25 17.75L23 19L20.25 20.26L19 23L17.74 20.26L15 19L17.74 17.75Z\";\nexport var mdiClockStarFourPointsOutline = \"M12 20C12.4 20 12.7 20 13.1 19.9C13.2 20.6 13.4 21.3 13.7 21.8C13.2 21.9 12.6 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12C22 12.5 21.92 12.97 21.84 13.5L21.8 13.7C21.2 13.4 20.6 13.2 19.9 13.1C20 12.7 20 12.4 20 12C20 7.6 16.4 4 12 4C7.6 4 4 7.6 4 12C4 16.4 7.6 20 12 20M12.5 12.3L15.6 14.1C15.2 14.4 14.8 14.7 14.5 15.1L11 13V7H12.5V12.3M17.74 17.75L19 15L20.25 17.75L23 19L20.25 20.26L19 23L17.74 20.26L15 19L17.74 17.75Z\";\nexport var mdiClockStart = \"M12,1C8.14,1 5,4.14 5,8A7,7 0 0,0 12,15C15.86,15 19,11.87 19,8C19,4.14 15.86,1 12,1M12,3.15C14.67,3.15 16.85,5.32 16.85,8C16.85,10.68 14.67,12.85 12,12.85A4.85,4.85 0 0,1 7.15,8A4.85,4.85 0 0,1 12,3.15M11,5V8.69L14.19,10.53L14.94,9.23L12.5,7.82V5M4,16V24H6V21H18V24L22,20L18,16V19H6V16\";\nexport var mdiClockTimeEight = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M7.7 15.5L7 14.2L11 11.9V7H12.5V12.8L7.7 15.5Z\";\nexport var mdiClockTimeEightOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 12.8L7.7 15.6L7 14.2L11 11.9V7H12.5V12.8Z\";\nexport var mdiClockTimeEleven = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 13H11L8.5 8.6L9.8 7.8L11 10V7H12.5V13Z\";\nexport var mdiClockTimeElevenOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 7V13H11L8.5 8.6L9.8 7.8L11 10V7H12.5Z\";\nexport var mdiClockTimeFive = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M14 17L11 11.8V7H12.5V11.4L15.3 16.3L14 17Z\";\nexport var mdiClockTimeFiveOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M15.3 16.2L14 17L11 11.8V7H12.5V11.4L15.3 16.2Z\";\nexport var mdiClockTimeFour = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M16.3 15.2L11 12.3V7H12.5V11.4L17 13.9L16.3 15.2Z\";\nexport var mdiClockTimeFourOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M17 13.9L16.3 15.2L11 12.3V7H12.5V11.4L17 13.9Z\";\nexport var mdiClockTimeNine = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 13H7V11.5H11V7H12.5V13Z\";\nexport var mdiClockTimeNineOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 7V13H7V11.5H11V7H12.5Z\";\nexport var mdiClockTimeOne = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.3 13H11V7H12.5V9.7L14 7.1L15.3 7.9L12.3 13Z\";\nexport var mdiClockTimeOneOutline = \"M12 20C16.42 20 20 16.42 20 12S16.42 4 12 4 4 7.58 4 12 7.58 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.5 2 12 2M15.3 7.8L12.3 13H11V7H12.5V9.65L14 7.05L15.3 7.8Z\";\nexport var mdiClockTimeSeven = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 12.2L9.8 17L8.5 16.2L11 11.8V7H12.5V12.2Z\";\nexport var mdiClockTimeSevenOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 7V12.2L9.8 17L8.5 16.2L11 11.8V7H12.5Z\";\nexport var mdiClockTimeSix = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 17H11V7H12.5V17Z\";\nexport var mdiClockTimeSixOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 7V17H11V7H12.5Z\";\nexport var mdiClockTimeTen = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 13H11L7 10.7L7.8 9.4L11.1 11.3V7H12.6V13Z\";\nexport var mdiClockTimeTenOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 13H11L7 10.7L7.8 9.4L11.1 11.3V7H12.6V13Z\";\nexport var mdiClockTimeThree = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M17 13H11V7H12.5V11.5H17V13Z\";\nexport var mdiClockTimeThreeOutline = \"M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M17 11.5V13H11V7H12.5V11.5H17Z\";\nexport var mdiClockTimeTwelve = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 13H11V7H12.5V13Z\";\nexport var mdiClockTimeTwelveOutline = \"M12 20C16.42 20 20 16.42 20 12S16.42 4 12 4 4 7.58 4 12 7.58 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 13.03H11V7H12.5V13.03Z\";\nexport var mdiClockTimeTwo = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12.5 13H11V7H12.5V11.3L16.2 9.2L17 10.5L12.5 13Z\";\nexport var mdiClockTimeTwoOutline = \"M12 20C16.42 20 20 16.42 20 12S16.42 4 12 4 4 7.58 4 12 7.58 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12.5 13V13H11V7H12.5V11.26L16.2 9.13L16.95 10.43L12.5 13Z\";\nexport var mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nexport var mdiCloseBox = \"M19,3H16.3H7.7H5A2,2 0 0,0 3,5V7.7V16.4V19A2,2 0 0,0 5,21H7.7H16.4H19A2,2 0 0,0 21,19V16.3V7.7V5A2,2 0 0,0 19,3M15.6,17L12,13.4L8.4,17L7,15.6L10.6,12L7,8.4L8.4,7L12,10.6L15.6,7L17,8.4L13.4,12L17,15.6L15.6,17Z\";\nexport var mdiCloseBoxMultiple = \"M4 20H18V22H4C2.9 22 2 21.11 2 20V6H4V20M20.22 2H7.78C6.8 2 6 2.8 6 3.78V16.22C6 17.2 6.8 18 7.78 18H20.22C21.2 18 22 17.2 22 16.22V3.78C22 2.8 21.2 2 20.22 2M19 13.6L17.6 15L14 11.4L10.4 15L9 13.6L12.6 10L9 6.4L10.4 5L14 8.6L17.6 5L19 6.4L15.4 10L19 13.6Z\";\nexport var mdiCloseBoxMultipleOutline = \"M20 2H8C6.9 2 6 2.9 6 4V16C6 17.11 6.9 18 8 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M20 16H8V4H20V16M4 6V20H18V22H4C2.9 22 2 21.11 2 20V6H4M9.77 12.84L12.6 10L9.77 7.15L11.17 5.75L14 8.6L16.84 5.77L18.24 7.17L15.4 10L18.23 12.84L16.83 14.24L14 11.4L11.17 14.24L9.77 12.84Z\";\nexport var mdiCloseBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M17,8.4L13.4,12L17,15.6L15.6,17L12,13.4L8.4,17L7,15.6L10.6,12L7,8.4L8.4,7L12,10.6L15.6,7L17,8.4Z\";\nexport var mdiCloseCircle = \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\";\nexport var mdiCloseCircleMultiple = \"M2 12C2 9.21 3.64 6.8 6 5.68V3.5C2.5 4.76 0 8.09 0 12S2.5 19.24 6 20.5V18.32C3.64 17.2 2 14.79 2 12M15 3C10.04 3 6 7.04 6 12S10.04 21 15 21 24 16.96 24 12 19.96 3 15 3M20 15.59L18.59 17L15 13.41L11.41 17L10 15.59L13.59 12L10 8.41L11.41 7L15 10.59L18.59 7L20 8.41L16.41 12L20 15.59Z\";\nexport var mdiCloseCircleMultipleOutline = \"M18.54 9.88L17.12 8.47L15 10.59L12.88 8.47L11.47 9.88L13.59 12L11.47 14.12L12.88 15.54L15 13.41L17.12 15.54L18.54 14.12L16.41 12M2 12C2 9.21 3.64 6.8 6 5.68V3.5C2.5 4.76 0 8.09 0 12S2.5 19.24 6 20.5V18.32C3.64 17.2 2 14.79 2 12M15 3C10.04 3 6 7.04 6 12S10.04 21 15 21 24 16.96 24 12 19.96 3 15 3M15 19C11.14 19 8 15.86 8 12S11.14 5 15 5 22 8.14 22 12 18.86 19 15 19Z\";\nexport var mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nexport var mdiCloseNetwork = \"M14.59,6L12,8.59L9.41,6L8,7.41L10.59,10L8,12.59L9.41,14L12,11.41L14.59,14L16,12.59L13.41,10L16,7.41L14.59,6M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\";\nexport var mdiCloseNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M15.54,12.12L13.41,10L15.53,7.87L14.12,6.46L12,8.59L9.88,6.46L8.47,7.87L10.59,10L8.47,12.13L9.88,13.54L12,11.41L14.12,13.54L15.54,12.12Z\";\nexport var mdiCloseOctagon = \"M8.27,3L3,8.27V15.73L8.27,21H15.73L21,15.73V8.27L15.73,3M8.41,7L12,10.59L15.59,7L17,8.41L13.41,12L17,15.59L15.59,17L12,13.41L8.41,17L7,15.59L10.59,12L7,8.41\";\nexport var mdiCloseOctagonOutline = \"M8.27,3L3,8.27V15.73L8.27,21H15.73C17.5,19.24 21,15.73 21,15.73V8.27L15.73,3M9.1,5H14.9L19,9.1V14.9L14.9,19H9.1L5,14.9V9.1M9.12,7.71L7.71,9.12L10.59,12L7.71,14.88L9.12,16.29L12,13.41L14.88,16.29L16.29,14.88L13.41,12L16.29,9.12L14.88,7.71L12,10.59\";\nexport var mdiCloseOutline = \"M3,16.74L7.76,12L3,7.26L7.26,3L12,7.76L16.74,3L21,7.26L16.24,12L21,16.74L16.74,21L12,16.24L7.26,21L3,16.74M12,13.41L16.74,18.16L18.16,16.74L13.41,12L18.16,7.26L16.74,5.84L12,10.59L7.26,5.84L5.84,7.26L10.59,12L5.84,16.74L7.26,18.16L12,13.41Z\";\nexport var mdiCloseThick = \"M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z\";\nexport var mdiClosedCaption = \"M18,11H16.5V10.5H14.5V13.5H16.5V13H18V14A1,1 0 0,1 17,15H14A1,1 0 0,1 13,14V10A1,1 0 0,1 14,9H17A1,1 0 0,1 18,10M11,11H9.5V10.5H7.5V13.5H9.5V13H11V14A1,1 0 0,1 10,15H7A1,1 0 0,1 6,14V10A1,1 0 0,1 7,9H10A1,1 0 0,1 11,10M19,4H5C3.89,4 3,4.89 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6C21,4.89 20.1,4 19,4Z\";\nexport var mdiClosedCaptionOutline = \"M5,4C4.45,4 4,4.18 3.59,4.57C3.2,4.96 3,5.44 3,6V18C3,18.56 3.2,19.04 3.59,19.43C4,19.82 4.45,20 5,20H19C19.5,20 20,19.81 20.39,19.41C20.8,19 21,18.53 21,18V6C21,5.47 20.8,5 20.39,4.59C20,4.19 19.5,4 19,4H5M4.5,5.5H19.5V18.5H4.5V5.5M7,9C6.7,9 6.47,9.09 6.28,9.28C6.09,9.47 6,9.7 6,10V14C6,14.3 6.09,14.53 6.28,14.72C6.47,14.91 6.7,15 7,15H10C10.27,15 10.5,14.91 10.71,14.72C10.91,14.53 11,14.3 11,14V13H9.5V13.5H7.5V10.5H9.5V11H11V10C11,9.7 10.91,9.47 10.71,9.28C10.5,9.09 10.27,9 10,9H7M14,9C13.73,9 13.5,9.09 13.29,9.28C13.09,9.47 13,9.7 13,10V14C13,14.3 13.09,14.53 13.29,14.72C13.5,14.91 13.73,15 14,15H17C17.3,15 17.53,14.91 17.72,14.72C17.91,14.53 18,14.3 18,14V13H16.5V13.5H14.5V10.5H16.5V11H18V10C18,9.7 17.91,9.47 17.72,9.28C17.53,9.09 17.3,9 17,9H14Z\";\nexport var mdiCloud = \"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20Z\";\nexport var mdiCloudAlert = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M13 17H11V15H13V17M13 13H11V7H13V13Z\";\nexport var mdiCloudAlertOutline = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M20.27 17.27C19.79 17.76 19.2 18 18.5 18H6.5C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16.5 8.44 17 9.62 17 11V13H18.5C19.2 13 19.79 13.24 20.27 13.73S21 14.8 21 15.5 20.76 16.79 20.27 17.27M11 15H13V17H11V15M11 7H13V13H11V7Z\";\nexport var mdiCloudArrowDown = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M20 16H18V20H16L19 23L22 20H20V16Z\";\nexport var mdiCloudArrowDownOutline = \"M4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03M20 16H18V20H16L19 23L22 20H20V16Z\";\nexport var mdiCloudArrowLeft = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M18 16L15 19L18 22V20H22V18H18V16Z\";\nexport var mdiCloudArrowLeftOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19M18 16L15 19L18 22V20H22V18H18V16Z\";\nexport var mdiCloudArrowRight = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiCloudArrowRightOutline = \"M4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiCloudArrowUp = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M16 18H18V22H20V18H22L19 15L16 18Z\";\nexport var mdiCloudArrowUpOutline = \"M4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03M16 18H18V22H20V18H22L19 15L16 18Z\";\nexport var mdiCloudBraces = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M10.5 10H9V11C9 12.11 8.11 13 7 13C8.11 13 9 13.9 9 15V16H10.5V18H9C7.9 18 7 17.11 7 16V15C7 14.45 6.55 14 6 14H5.5V12H6C6.55 12 7 11.55 7 11V10C7 8.9 7.9 8 9 8H10.5V10M18.5 14H18C17.45 14 17 14.45 17 15V16C17 17.11 16.11 18 15 18H13.5V16H15V15C15 13.9 15.9 13 17 13C15.9 13 15 12.11 15 11V10H13.5V8H15C16.11 8 17 8.9 17 10V11C17 11.55 17.45 12 18 12H18.5V14Z\";\nexport var mdiCloudCancel = \"M12 18.5C12 19 12.07 19.5 12.18 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.1 12.76 22.29 13.05 22.46 13.36C21.36 12.5 20 12 18.5 12C14.91 12 12 14.91 12 18.5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiCloudCancelOutline = \"M12 18.5C12 19 12.07 19.5 12.18 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.1 12.76 22.29 13.05 22.46 13.36C21.36 12.5 20 12 18.5 12C18 12 17.5 12.07 17 12.18V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H12.03C12 18.17 12 18.33 12 18.5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiCloudCheck = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84L17.75 19.43Z\";\nexport var mdiCloudCheckOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19M17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84L17.75 19.43Z\";\nexport var mdiCloudCheckVariant = \"M10.35 17L16 11.35L14.55 9.9L10.33 14.13L8.23 12.03L6.8 13.45M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20Z\";\nexport var mdiCloudCheckVariantOutline = \"M10.35 17L16 11.35L14.55 9.9L10.33 14.13L8.23 12.03L6.8 13.45M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20M6.5 18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 9.93 6 8.46 7.46 7 8.93 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18M12 12Z\";\nexport var mdiCloudCircle = \"M8.5 16H16Q17.25 16 18.13 15.13T19 13Q19 11.75 18.13 10.88T16 10Q15.8 8.55 14.68 7.53 13.55 6.5 12.15 6.5 10.88 6.5 9.84 7.15 8.8 7.8 8.3 9 6.88 9.13 5.94 10.09 5 11.05 5 12.5 5 13.95 6.03 15 7.05 16 8.5 16M12 22Q9.93 22 8.1 21.21 6.28 20.43 4.93 19.08 3.58 17.73 2.79 15.9 2 14.08 2 12T2.79 8.1Q3.58 6.28 4.93 4.93 6.28 3.58 8.1 2.79 9.93 2 12 2T15.9 2.79Q17.73 3.58 19.08 4.93 20.43 6.28 21.21 8.1 22 9.93 22 12T21.21 15.9Q20.43 17.73 19.08 19.08 17.73 20.43 15.9 21.21 14.08 22 12 22Z\";\nexport var mdiCloudCircleOutline = \"M8.5 16H16Q17.25 16 18.13 15.13T19 13Q19 11.75 18.13 10.88T16 10Q15.8 8.55 14.68 7.53 13.55 6.5 12.15 6.5 10.88 6.5 9.84 7.15 8.8 7.8 8.3 9 6.88 9.13 5.94 10.09 5 11.05 5 12.5 5 13.95 6.03 15 7.05 16 8.5 16M12 22Q9.93 22 8.1 21.21 6.28 20.43 4.93 19.08 3.58 17.73 2.79 15.9 2 14.08 2 12T2.79 8.1Q3.58 6.28 4.93 4.93 6.28 3.58 8.1 2.79 9.93 2 12 2T15.9 2.79Q17.73 3.58 19.08 4.93 20.43 6.28 21.21 8.1 22 9.93 22 12T21.21 15.9Q20.43 17.73 19.08 19.08 17.73 20.43 15.9 21.21 14.08 22 12 22M12 20Q15.33 20 17.66 17.66 20 15.33 20 12T17.66 6.34Q15.33 4 12 4T6.34 6.34Q4 8.68 4 12T6.34 17.66Q8.68 20 12 20M8.5 14Q7.88 14 7.44 13.56 7 13.13 7 12.5T7.44 11.44Q7.88 11 8.5 11H10V10.5Q10 9.68 10.59 9.09 11.18 8.5 12 8.5T13.41 9.09Q14 9.68 14 10.5V12H16Q16.43 12 16.71 12.29 17 12.58 17 13T16.71 13.71Q16.43 14 16 14M12 12Z\";\nexport var mdiCloudClock = \"M23 15.5C23 14.79 22.84 14.14 22.55 13.54C21.89 11.79 20.56 10.38 18.86 9.62C18.61 8.26 18 7.06 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H10.26C11.53 21.81 13.62 23 16 23C19.87 23 23 19.87 23 16C23 15.89 23 15.79 23 15.68C23 15.62 23 15.56 23 15.5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiCloudClockOutline = \"M23 15.5C23 14.79 22.84 14.14 22.55 13.54C21.89 11.79 20.56 10.38 18.86 9.62C18.61 8.26 18 7.06 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H10.26C11.53 21.81 13.62 23 16 23C19.87 23 23 19.87 23 16C23 15.89 23 15.79 23 15.68C23 15.62 23 15.56 23 15.5M6.5 18C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16 7.93 16.35 8.46 16.59 9.03C16.4 9 16.2 9 16 9C12.13 9 9 12.13 9 16C9 16.7 9.11 17.37 9.29 18H6.5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiCloudCog = \"M12 19C12 19.34 12.03 19.67 12.08 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C21.92 12.55 21.96 12.63 22 12.69C21.1 12.25 20.08 12 19 12C15.13 12 12 15.13 12 19M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.82 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiCloudCogOutline = \"M12 19C12 19.34 12.03 19.67 12.08 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C21.92 12.55 21.96 12.63 22 12.69C21.1 12.25 20.08 12 19 12C18.31 12 17.63 12.11 17 12.29V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H12.08C12.03 18.33 12 18.66 12 19M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.82 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiCloudDownload = \"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.83 7.13 7.39 5.75 8.95 4.38 11 4.08V12.15L9.4 10.6L8 12L12 16L16 12L14.6 10.6L13 12.15V4.08Q15.58 4.43 17.29 6.39 19 8.35 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20Z\";\nexport var mdiCloudDownloadOutline = \"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.68 7.35 7.38 5.73 9.07 4.1 11 4.1 11.83 4.1 12.41 4.69 13 5.28 13 6.1V12.15L14.6 10.6L16 12L12 16L8 12L9.4 10.6L11 12.15V6.1Q9.1 6.45 8.05 7.94 7 9.43 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 9.8 16.45 8.76 15.9 7.73 15 7V4.68Q16.85 5.55 17.93 7.26 19 9 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20M12 11.05Z\";\nexport var mdiCloudKey = \"M9.41 20H6.5C5 20 3.68 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1C2.96 10.08 4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43C9 4.5 10.42 4 12 4C13.95 4 15.61 4.68 16.96 6.04C18.32 7.39 19 9.05 19 11C20.15 11.13 21.11 11.63 21.86 12.5C22.5 13.23 22.86 14.06 22.96 15H18C17.07 13.77 15.61 13 14 13C11.2 13 9 15.2 9 18C9 18.72 9.15 19.39 9.41 20M23 17V19H21V21H19V19H16.8C16.4 20.2 15.3 21 14 21C12.3 21 11 19.7 11 18S12.3 15 14 15C15.3 15 16.4 15.8 16.8 17H23M15 18C15 17.5 14.6 17 14 17S13 17.5 13 18 13.4 19 14 19 15 18.5 15 18Z\";\nexport var mdiCloudKeyOutline = \"M9.41 20H6.5C5 20 3.68 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1C2.96 10.08 4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43C9 4.5 10.42 4 12 4C13.95 4 15.61 4.68 16.96 6.04C18.32 7.39 19 9.05 19 11C20.15 11.13 21.11 11.63 21.86 12.5C22.5 13.23 22.86 14.06 22.96 15H20.96C20.86 14.5 20.64 14.09 20.27 13.73C19.79 13.24 19.2 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.57 6.5 13.39 6 12 6C10.62 6 9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.3 4.03 17C4.71 17.67 5.53 18 6.5 18H9C9 18.72 9.15 19.39 9.41 20M23 17V19H21V21H19V19H16.8C16.4 20.2 15.3 21 14 21C12.3 21 11 19.7 11 18S12.3 15 14 15C15.3 15 16.4 15.8 16.8 17H23M15 18C15 17.5 14.6 17 14 17S13 17.5 13 18 13.4 19 14 19 15 18.5 15 18Z\";\nexport var mdiCloudLock = \"M14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.08 7.16 18.73 8.5 18.93 10C16.36 10.04 14.2 12.08 14.2 14.5M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiCloudLockOpen = \"M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C17.84 6.91 18.42 7.91 18.74 9.03C16.25 9.16 14.2 11.15 14.2 13.5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiCloudLockOpenOutline = \"M6.5 18H13V20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C17.84 6.91 18.42 7.91 18.74 9.03C18.03 9.06 17.37 9.25 16.78 9.56C16.55 8.78 16.15 8.08 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiCloudLockOutline = \"M6.5 18H13V20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.08 7.16 18.73 8.5 18.93 10C18.23 10 17.56 10.19 16.95 10.46C16.84 9.31 16.38 8.31 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiCloudMinus = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M15 18V20H23V18H15Z\";\nexport var mdiCloudMinusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19M15 18V20H23V18H15Z\";\nexport var mdiCloudOff = \"M19.8 22.6L17.15 20H6.5Q4.2 20 2.6 18.4T1 14.5Q1 12.58 2.19 11.08 3.38 9.57 5.25 9.15 5.33 8.95 5.4 8.76 5.5 8.57 5.55 8.35L1.4 4.2L2.8 2.8L21.2 21.2M21.6 18.75L8.05 5.23Q8.93 4.63 9.91 4.31 10.9 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 16.5 22.63 17.31 22.25 18.15 21.6 18.75Z\";\nexport var mdiCloudOffOutline = \"M19.8 22.6L17.15 20H6.5Q4.2 20 2.6 18.4T1 14.5Q1 12.58 2.19 11.08 3.38 9.57 5.25 9.15 5.33 8.95 5.4 8.76 5.5 8.57 5.55 8.35L1.4 4.2L2.8 2.8L21.2 21.2M6.5 18H15.15L7.1 9.95Q7.05 10.23 7.03 10.5 7 10.73 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18M11.13 14M21.6 18.75L20.15 17.35Q20.58 17 20.79 16.54 21 16.08 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 11.33 6 10.7 6.16 10.07 6.33 9.5 6.68L8.05 5.23Q8.93 4.63 9.91 4.31 10.9 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 16.5 22.63 17.31 22.25 18.15 21.6 18.75M14.83 12.03Z\";\nexport var mdiCloudOutline = \"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20M6.5 18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 9.93 6 8.46 7.46 7 8.93 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18M12 12Z\";\nexport var mdiCloudPercent = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M9.45 9.03C10.23 9.03 10.87 9.67 10.87 10.45C10.87 11.23 10.23 11.87 9.45 11.87C8.67 11.87 8.03 11.23 8.03 10.45C8.03 9.67 8.67 9.03 9.45 9.03M14.55 16.97C13.77 16.97 13.13 16.33 13.13 15.55C13.13 14.77 13.77 14.13 14.55 14.13C15.33 14.13 15.97 14.77 15.97 15.55C15.97 16.33 15.33 16.97 14.55 16.97M9.2 17L8 15.8L14.8 9L16 10.2L9.2 17Z\";\nexport var mdiCloudPercentOutline = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M20.27 17.27C19.79 17.76 19.2 18 18.5 18H6.5C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16.5 8.44 17 9.62 17 11V13H18.5C19.2 13 19.79 13.24 20.27 13.73S21 14.8 21 15.5 20.76 16.79 20.27 17.27M8.03 10.45C8.03 9.67 8.67 9.03 9.45 9.03C10.23 9.03 10.87 9.67 10.87 10.45C10.87 11.23 10.23 11.87 9.45 11.87C8.67 11.87 8.03 11.23 8.03 10.45M15.97 15.55C15.97 16.33 15.33 16.97 14.55 16.97C13.77 16.97 13.13 16.33 13.13 15.55C13.13 14.77 13.77 14.13 14.55 14.13C15.33 14.13 15.97 14.77 15.97 15.55M14.8 9L16 10.2L9.2 17L8 15.8L14.8 9Z\";\nexport var mdiCloudPlus = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiCloudPlusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiCloudPrint = \"M21.86 10.5C21.1 9.63 20.15 9.13 19 9C19 7.05 18.32 5.4 16.96 4.04C15.6 2.68 13.95 2 12 2C10.42 2 9 2.5 7.75 3.43S5.67 5.62 5.25 7.15C4 7.43 2.96 8.08 2.17 9.1S1 11.28 1 12.58C1 14.09 1.54 15.38 2.61 16.43C3.57 17.36 4.7 17.85 6 17.95V22H18V18H18.5C19.75 18 20.81 17.56 21.69 16.69C22.56 15.81 23 14.75 23 13.5C23 12.35 22.62 11.35 21.86 10.5M16 20H8V13H16V20M15 15H9V14H15V15M15 17H9V16H15V17M15 19H9V18H15V19Z\";\nexport var mdiCloudPrintOutline = \"M15 15H9V14H15V15M15 16H9V17H15V16M15 18H9V19H15V18M23 13.5C23 14.75 22.56 15.81 21.69 16.69C20.81 17.56 19.75 18 18.5 18H18V22H6V17.95C4.7 17.85 3.57 17.36 2.61 16.43C1.54 15.38 1 14.09 1 12.58C1 11.28 1.39 10.12 2.17 9.1S4 7.43 5.25 7.15C5.67 5.62 6.5 4.38 7.75 3.43S10.42 2 12 2C13.95 2 15.6 2.68 16.96 4.04C18.32 5.4 19 7.05 19 9C20.15 9.13 21.1 9.63 21.86 10.5C22.62 11.35 23 12.35 23 13.5M6 15.95V11H17V9C17 7.62 16.5 6.44 15.54 5.46C14.56 4.5 13.38 4 12 4S9.44 4.5 8.46 5.46C7.5 6.44 7 7.62 7 9H6.5C5.53 9 4.71 9.34 4.03 10.03C3.34 10.71 3 11.53 3 12.5S3.34 14.29 4.03 15C4.59 15.54 5.25 15.85 6 15.95M16 13H8V20H16V13M21 13.5C21 12.8 20.76 12.21 20.27 11.73S19.2 11 18.5 11H18V16H18.5C19.2 16 19.79 15.76 20.27 15.28S21 14.2 21 13.5Z\";\nexport var mdiCloudQuestion = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M13 17H11V15H13V17M14.8 11.82C14.5 12.21 14.13 12.5 13.67 12.75C13.41 12.91 13.24 13.07 13.15 13.26C13.06 13.45 13 13.69 13 14H11C11 13.45 11.11 13.08 11.3 12.82C11.5 12.56 11.85 12.25 12.37 11.91C12.63 11.75 12.84 11.56 13 11.32C13.15 11.09 13.23 10.81 13.23 10.5C13.23 10.18 13.14 9.94 12.96 9.76C12.78 9.56 12.5 9.47 12.2 9.47C11.93 9.47 11.71 9.55 11.5 9.7C11.35 9.85 11.25 10.08 11.25 10.39H9.28C9.23 9.64 9.5 9 10.06 8.59C10.6 8.2 11.31 8 12.2 8C13.14 8 13.89 8.23 14.43 8.68S15.24 9.75 15.24 10.5C15.24 11 15.09 11.41 14.8 11.82Z\";\nexport var mdiCloudQuestionOutline = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M20.27 17.27C19.79 17.76 19.2 18 18.5 18H6.5C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16.5 8.44 17 9.62 17 11V13H18.5C19.2 13 19.79 13.24 20.27 13.73S21 14.8 21 15.5 20.76 16.79 20.27 17.27M11 15H13V17H11V15M14.43 8.68C14.97 9.13 15.24 9.75 15.24 10.5C15.24 11 15.09 11.41 14.8 11.82C14.5 12.21 14.13 12.5 13.67 12.75C13.41 12.91 13.24 13.07 13.15 13.26C13.06 13.45 13 13.69 13 14H11C11 13.45 11.11 13.08 11.3 12.82C11.5 12.56 11.85 12.25 12.37 11.91C12.63 11.75 12.84 11.56 13 11.32C13.15 11.09 13.23 10.81 13.23 10.5C13.23 10.18 13.14 9.94 12.96 9.76C12.78 9.56 12.5 9.47 12.2 9.47C11.93 9.47 11.71 9.55 11.5 9.7C11.35 9.85 11.25 10.08 11.25 10.39H9.28C9.23 9.64 9.5 9 10.06 8.59C10.6 8.2 11.31 8 12.2 8C13.14 8 13.89 8.23 14.43 8.68Z\";\nexport var mdiCloudRefresh = \"M12 18.5C12 19 12.07 19.5 12.18 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.1 12.76 22.29 13.05 22.46 13.36C21.36 12.5 20 12 18.5 12C14.91 12 12 14.91 12 18.5M18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5Z\";\nexport var mdiCloudRefreshOutline = \"M12 18.5C12 19 12.07 19.5 12.18 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.1 12.76 22.29 13.05 22.46 13.36C21.36 12.5 20 12 18.5 12C18 12 17.5 12.07 17 12.18V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H12.03C12 18.17 12 18.33 12 18.5M18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5Z\";\nexport var mdiCloudRefreshVariant = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M16 13H12L13.77 11.23C13.32 10.78 12.69 10.5 12 10.5C10.62 10.5 9.5 11.62 9.5 13S10.62 15.5 12 15.5C12.82 15.5 13.54 15.11 14 14.5H15.71C15.12 15.97 13.68 17 12 17C9.79 17 8 15.21 8 13S9.79 9 12 9C13.11 9 14.11 9.45 14.83 10.17L16 9V13Z\";\nexport var mdiCloudRefreshVariantOutline = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M20.27 17.27C19.79 17.76 19.2 18 18.5 18H6.5C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16.5 8.44 17 9.62 17 11V13H18.5C19.2 13 19.79 13.24 20.27 13.73S21 14.8 21 15.5 20.76 16.79 20.27 17.27M14.83 10.17L16 9V13H12L13.77 11.23C13.32 10.78 12.69 10.5 12 10.5C10.62 10.5 9.5 11.62 9.5 13S10.62 15.5 12 15.5C12.82 15.5 13.54 15.11 14 14.5H15.71C15.12 15.97 13.68 17 12 17C9.79 17 8 15.21 8 13S9.79 9 12 9C13.11 9 14.11 9.45 14.83 10.17Z\";\nexport var mdiCloudRemove = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C15.69 13 13 15.69 13 19M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiCloudRemoveOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C20.15 11.13 21.1 11.63 21.86 12.5C22.37 13.07 22.7 13.71 22.86 14.42C21.82 13.54 20.5 13 19 13C18.89 13 18.79 13 18.68 13C18.62 13 18.56 13 18.5 13H17V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.09C13.04 18.33 13 18.66 13 19M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiCloudSearch = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M16.57 18L14 15.43C13.43 15.79 12.74 16 12 16C9.79 16 8 14.21 8 12S9.79 8 12 8 16 9.79 16 12C16 12.74 15.79 13.43 15.43 14L18 16.57L16.57 18M14 12C14 13.11 13.11 14 12 14S10 13.11 10 12 10.9 10 12 10 14 10.9 14 12Z\";\nexport var mdiCloudSearchOutline = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M20.27 17.27C19.79 17.76 19.2 18 18.5 18H6.5C5.53 18 4.71 17.66 4.03 17C3.34 16.29 3 15.47 3 14.5S3.34 12.71 4.03 12.03C4.71 11.34 5.53 11 6.5 11H7C7 9.62 7.5 8.44 8.46 7.46C9.44 6.5 10.62 6 12 6S14.56 6.5 15.54 7.46C16.5 8.44 17 9.62 17 11V13H18.5C19.2 13 19.79 13.24 20.27 13.73S21 14.8 21 15.5 20.76 16.79 20.27 17.27M16 12C16 9.79 14.21 8 12 8S8 9.79 8 12 9.79 16 12 16C12.74 16 13.43 15.79 14 15.43L16.57 18L18 16.57L15.43 14C15.79 13.43 16 12.74 16 12M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14Z\";\nexport var mdiCloudSync = \"M13 17.5C13 18.39 13.18 19.23 13.5 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C19.04 11 19.07 11 19.1 11C15.7 11.23 13 14.05 13 17.5M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiCloudSyncOutline = \"M13.03 18C13.08 18.7 13.24 19.38 13.5 20H6.5C5 20 3.69 19.5 2.61 18.43C1.54 17.38 1 16.09 1 14.58C1 13.28 1.39 12.12 2.17 11.1S4 9.43 5.25 9.15C5.67 7.62 6.5 6.38 7.75 5.43S10.42 4 12 4C13.95 4 15.6 4.68 16.96 6.04C18.32 7.4 19 9.05 19 11C19.04 11 19.07 11 19.1 11C18.36 11.07 17.65 11.23 17 11.5V11C17 9.62 16.5 8.44 15.54 7.46C14.56 6.5 13.38 6 12 6S9.44 6.5 8.46 7.46C7.5 8.44 7 9.62 7 11H6.5C5.53 11 4.71 11.34 4.03 12.03C3.34 12.71 3 13.53 3 14.5S3.34 16.29 4.03 17C4.71 17.66 5.53 18 6.5 18H13.03M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiCloudTags = \"M21.86 12.5C21.1 11.63 20.15 11.13 19 11C19 9.05 18.32 7.4 16.96 6.04C15.6 4.68 13.95 4 12 4C10.42 4 9 4.47 7.75 5.43S5.67 7.62 5.25 9.15C4 9.43 2.96 10.08 2.17 11.1S1 13.28 1 14.58C1 16.09 1.54 17.38 2.61 18.43C3.69 19.5 5 20 6.5 20H18.5C19.75 20 20.81 19.56 21.69 18.69C22.56 17.81 23 16.75 23 15.5C23 14.35 22.62 13.35 21.86 12.5M10.5 16.18L9.09 17.6L4.5 13L9.09 8.4L10.5 9.82L7.32 13L10.5 16.18M14.91 17.6L13.5 16.18L16.68 13L13.5 9.82L14.91 8.4L19.5 13L14.91 17.6Z\";\nexport var mdiCloudUpload = \"M11 20H6.5Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20H13V12.85L14.6 14.4L16 13L12 9L8 13L9.4 14.4L11 12.85Z\";\nexport var mdiCloudUploadOutline = \"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20H13Q12.18 20 11.59 19.41 11 18.83 11 18V12.85L9.4 14.4L8 13L12 9L16 13L14.6 14.4L13 12.85V18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 9.93 6 8.46 7.46 7 8.93 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18H9V20M12 13Z\";\nexport var mdiClouds = \"M19.19 12.07C19.69 11.54 20 10.82 20 10C20 8.3 18.7 6.84 17 6.84H14.2C14.2 4.17 12.03 2 9.36 2C7.31 2 5.56 3.28 4.85 5.08C2.72 5.14 1 6.89 1 9.04C1 11.22 2.78 13 4.96 13H8.1C8.04 13.33 8 13.66 8 14H7.5C5.57 14 4 15.57 4 17.5S5.57 21 7.5 21H18.5C21 21 23 19 23 16.5C23 14.26 21.34 12.41 19.19 12.07M18.5 19H7.5C6.67 19 6 18.33 6 17.5S6.67 16 7.5 16H10V14C10 12.07 11.57 10.5 13.5 10.5S17 12.07 17 14H18.5C19.88 14 21 15.12 21 16.5S19.88 19 18.5 19Z\";\nexport var mdiClover = \"M12,11.18C15.3,8.18 17,6.64 17,4.69C17,3.19 15.75,2 14.25,2C13.39,2 12.57,2.36 12,3C11.43,2.36 10.61,2 9.69,2C8.19,2 7,3.25 7,4.75C7,6.64 8.7,8.18 12,11.18M11.18,12C8.18,8.7 6.64,7 4.69,7C3.19,7 2,8.25 2,9.75C2,10.61 2.36,11.43 3,12C2.36,12.57 2,13.39 2,14.31C2,15.81 3.25,17 4.75,17C6.64,17 8.18,15.3 11.18,12M12.83,12C15.82,15.3 17.36,17 19.31,17C20.81,17 22,15.75 22,14.25C22,13.39 21.64,12.57 21,12C21.64,11.43 22,10.61 22,9.69C22,8.19 20.75,7 19.25,7C17.36,7 15.82,8.7 12.83,12M12,12.82C8.7,15.82 7,17.36 7,19.31C7,20.81 8.25,22 9.75,22C10.61,22 11.43,21.64 12,21C12.57,21.64 13.39,22 14.31,22C15.81,22 17,20.75 17,19.25C17,17.36 15.3,15.82 12,12.82Z\";\nexport var mdiCloverOutline = \"M10.61 12.62L10.65 12.58L11.16 12.03L11.18 12L11.16 11.97C11 11.78 10.82 11.6 10.66 11.42L10.61 11.38C8.42 8.97 7.03 7.53 5.58 7.12C5.29 7.04 5 7 4.69 7C3.19 7 2 8.25 2 9.75C2 10.38 2.19 11 2.55 11.5C2.68 11.68 2.83 11.85 3 12C2.83 12.15 2.68 12.32 2.55 12.5C2.19 13 2 13.64 2 14.31C2 15.81 3.25 17 4.75 17C5.03 17 5.31 16.96 5.58 16.89C7 16.5 8.4 15.05 10.61 12.62M8.47 12C7.57 12.97 6.88 13.69 6.26 14.21C5.43 14.91 5 15 4.75 15C4.3 15 4 14.65 4 14.31C4 13.93 4.14 13.66 4.33 13.5L6 12L4.33 10.5C4.13 10.33 4 10.05 4 9.75C4 9.3 4.35 9 4.69 9C5 9 5.43 9.1 6.26 9.8C6.88 10.31 7.57 11.03 8.47 12M7.12 18.43C7.04 18.72 7 19 7 19.31C7 20.81 8.25 22 9.75 22C10.38 22 11 21.81 11.5 21.45C11.68 21.32 11.85 21.17 12 21C12.15 21.17 12.32 21.32 12.5 21.45C13 21.81 13.64 22 14.31 22C15.81 22 17 20.75 17 19.25C17 18.97 16.96 18.69 16.89 18.42C16.5 17 15.05 15.6 12.62 13.39L12.58 13.35L12.03 12.85L12 12.82L11.97 12.85L11.42 13.35L11.38 13.38C8.97 15.58 7.53 16.97 7.12 18.43M12 15.53C12.97 16.43 13.69 17.12 14.21 17.74C14.91 18.57 15 19 15 19.25C15 19.7 14.65 20 14.31 20C13.93 20 13.66 19.86 13.5 19.67L12 18L10.5 19.67C10.33 19.87 10.05 20 9.75 20C9.3 20 9 19.65 9 19.31C9 19 9.1 18.57 9.8 17.74C10.31 17.12 11.03 16.43 12 15.53M13.39 12.62C15.59 15.03 16.97 16.47 18.43 16.88C18.72 16.96 19 17 19.31 17C20.81 17 22 15.75 22 14.25C22 13.62 21.81 13 21.45 12.5C21.32 12.32 21.17 12.15 21 12C21.17 11.85 21.32 11.68 21.45 11.5C21.81 11 22 10.37 22 9.69C22 8.19 20.75 7 19.25 7C18.97 7 18.69 7.04 18.42 7.11C17 7.5 15.6 8.95 13.39 11.38L13.36 11.42L12.83 12L12.83 12L12.83 12L13.36 12.58L13.39 12.62M15.54 12C16.43 11.03 17.13 10.31 17.74 9.79C18.58 9.09 19 9 19.25 9C19.7 9 20 9.35 20 9.69C20 10.07 19.86 10.34 19.67 10.5L18 12L19.67 13.5C19.87 13.68 20 13.95 20 14.25C20 14.7 19.65 15 19.31 15C19 15 18.57 14.9 17.74 14.2C17.13 13.69 16.43 12.97 15.54 12M12.62 10.62C15.03 8.42 16.47 7.03 16.88 5.58C16.96 5.29 17 5 17 4.69C17 3.19 15.75 2 14.25 2C13.62 2 13 2.19 12.5 2.55C12.32 2.68 12.15 2.83 12 3C11.85 2.83 11.68 2.68 11.5 2.55C11 2.19 10.37 2 9.69 2C8.19 2 7 3.25 7 4.75C7 5.03 7.04 5.31 7.11 5.58C7.5 7 8.95 8.4 11.38 10.62L11.42 10.65L11.97 11.15L12 11.18L12.03 11.16L12.59 10.65L12.62 10.61M12 8.47C11.03 7.57 10.31 6.88 9.79 6.26C9.09 5.43 9 5 9 4.75C9 4.3 9.35 4 9.69 4C10.07 4 10.34 4.14 10.5 4.33L12 6L13.5 4.33C13.68 4.13 13.95 4 14.25 4C14.7 4 15 4.35 15 4.69C15 5 14.9 5.43 14.2 6.26C13.69 6.88 12.97 7.57 12 8.47Z\";\nexport var mdiCoachLamp = \"M16 5L15 2H13L12 5L6 8H8L8.6 11H4V7H2V17H4V13H9L10 18L12 20L13 22H15L16 20L18 18L20 8H22M16.16 17H11.84L10 8H18Z\";\nexport var mdiCoachLampVariant = \"M12.5 2L12 4L10 6.31L5 9H7L9.5 18L12 20L12.5 22H13.5L14 20L16.5 18L19 9H21L16 6.31L14 4L13.5 2M9 9H17L14.78 17H11.22M3 14V22H11.5L11 20H8L5 17V14Z\";\nexport var mdiCoatRack = \"M18.33 7.78A1 1 0 0 0 16.66 8.89A2 2 0 1 1 13 10V7.82A3 3 0 1 0 11 7.82V10A2 2 0 1 1 7.34 8.89A1 1 0 1 0 5.67 7.78A4 4 0 0 0 11 13.46V20A2 2 0 0 0 9 22H15A2 2 0 0 0 13 20V13.46A4 4 0 0 0 18.33 7.78M12 4A1 1 0 1 1 11 5A1 1 0 0 1 12 4Z\";\nexport var mdiCodeArray = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M6,6V18H10V16H8V8H10V6H6M16,16H14V18H18V6H14V8H16V16Z\";\nexport var mdiCodeBlockBraces = \"M5 3C3.9 3 3 3.9 3 5S2.1 7 1 7V9C2.1 9 3 9.9 3 11S3.9 13 5 13H7V11H5V10C5 8.9 4.1 8 3 8C4.1 8 5 7.1 5 6V5H7V3M11 3C12.1 3 13 3.9 13 5S13.9 7 15 7V9C13.9 9 13 9.9 13 11S12.1 13 11 13H9V11H11V10C11 8.9 11.9 8 13 8C11.9 8 11 7.1 11 6V5H9V3H11M22 6V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V15H4V18H20V6H17.03V4H20C21.11 4 22 4.89 22 6Z\";\nexport var mdiCodeBlockBrackets = \"M2 3V13H6V11H4V5H6V3H2M12 11H10V13H14V3H10V5H12V11M22 6V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V15H4V18H20V6H17.03V4H20C21.11 4 22 4.89 22 6Z\";\nexport var mdiCodeBlockParentheses = \"M11.6 3C13.1 4.3 14 6.1 14 8S13.1 11.7 11.6 13L10 12.4C11.3 11.4 12 9.7 12 8S11.3 4.6 10 3.6L11.6 3M4.4 3L6 3.6C4.7 4.6 4 6.3 4 8S4.7 11.4 6 12.4L4.4 13C2.9 11.7 2 9.9 2 8S2.9 4.3 4.4 3M22 6V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V15H4V18H20V6H16.03V4H20C21.11 4 22 4.89 22 6Z\";\nexport var mdiCodeBlockTags = \"M5.59 3.41L7 4.82L3.82 8L7 11.18L5.59 12.6L1 8L5.59 3.41M11.41 3.41L16 8L11.41 12.6L10 11.18L13.18 8L10 4.82L11.41 3.41M22 6V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V14H4V18H20V6H17.03V4H20C21.11 4 22 4.89 22 6Z\";\nexport var mdiCodeBraces = \"M8,3A2,2 0 0,0 6,5V9A2,2 0 0,1 4,11H3V13H4A2,2 0 0,1 6,15V19A2,2 0 0,0 8,21H10V19H8V14A2,2 0 0,0 6,12A2,2 0 0,0 8,10V5H10V3M16,3A2,2 0 0,1 18,5V9A2,2 0 0,0 20,11H21V13H20A2,2 0 0,0 18,15V19A2,2 0 0,1 16,21H14V19H16V14A2,2 0 0,1 18,12A2,2 0 0,1 16,10V5H14V3H16Z\";\nexport var mdiCodeBracesBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M11 8H9V10C9 11.1 8.1 12 7 12C8.1 12 9 12.9 9 14V16H11V18H9C7.9 18 7 17.1 7 16V15C7 13.9 6.1 13 5 13V11C6.1 11 7 10.1 7 9V8C7 6.9 7.9 6 9 6H11V8M19 13C17.9 13 17 13.9 17 15V16C17 17.1 16.1 18 15 18H13V16H15V14C15 12.9 15.9 12 17 12C15.9 12 15 11.1 15 10V8H13V6H15C16.1 6 17 6.9 17 8V9C17 10.1 17.9 11 19 11V13Z\";\nexport var mdiCodeBrackets = \"M15,4V6H18V18H15V20H20V4M4,4V20H9V18H6V6H9V4H4Z\";\nexport var mdiCodeEqual = \"M6,13H11V15H6M13,13H18V15H13M13,9H18V11H13M6,9H11V11H6M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeGreaterThan = \"M10.41,7.41L15,12L10.41,16.6L9,15.18L12.18,12L9,8.82M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeGreaterThanOrEqual = \"M13,13H18V15H13M13,9H18V11H13M6.91,7.41L11.5,12L6.91,16.6L5.5,15.18L8.68,12L5.5,8.82M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeJson = \"M5,3H7V5H5V10A2,2 0 0,1 3,12A2,2 0 0,1 5,14V19H7V21H5C3.93,20.73 3,20.1 3,19V15A2,2 0 0,0 1,13H0V11H1A2,2 0 0,0 3,9V5A2,2 0 0,1 5,3M19,3A2,2 0 0,1 21,5V9A2,2 0 0,0 23,11H24V13H23A2,2 0 0,0 21,15V19A2,2 0 0,1 19,21H17V19H19V14A2,2 0 0,1 21,12A2,2 0 0,1 19,10V5H17V3H19M12,15A1,1 0 0,1 13,16A1,1 0 0,1 12,17A1,1 0 0,1 11,16A1,1 0 0,1 12,15M8,15A1,1 0 0,1 9,16A1,1 0 0,1 8,17A1,1 0 0,1 7,16A1,1 0 0,1 8,15M16,15A1,1 0 0,1 17,16A1,1 0 0,1 16,17A1,1 0 0,1 15,16A1,1 0 0,1 16,15Z\";\nexport var mdiCodeLessThan = \"M13.59,7.41L9,12L13.59,16.6L15,15.18L11.82,12L15,8.82M19,3C20.11,3 21,3.9 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19Z\";\nexport var mdiCodeLessThanOrEqual = \"M13,13H18V15H13M13,9H18V11H13M10.09,7.41L11.5,8.82L8.32,12L11.5,15.18L10.09,16.6L5.5,12M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeNotEqual = \"M6,15H8V17H6M11,13H18V15H11M11,9H18V11H11M6,7H8V13H6M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeNotEqualVariant = \"M11,6.5V9.33L8.33,12L11,14.67V17.5L5.5,12M13,6.43L18.57,12L13,17.57V14.74L15.74,12L13,9.26M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5Z\";\nexport var mdiCodeParentheses = \"M17.62,3C19.13,5.27 20,8.55 20,12C20,15.44 19.13,18.72 17.62,21L16,19.96C17.26,18.07 18,15.13 18,12C18,8.87 17.26,5.92 16,4.03L17.62,3M6.38,3L8,4.04C6.74,5.92 6,8.87 6,12C6,15.13 6.74,18.08 8,19.96L6.38,21C4.87,18.73 4,15.45 4,12C4,8.55 4.87,5.27 6.38,3Z\";\nexport var mdiCodeParenthesesBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M10 17.3L8.4 18C6.9 16.5 6 14.3 6 12S6.9 7.5 8.4 6L10 6.7C8.7 7.9 8 9.9 8 12S8.7 16.1 10 17.3M15.6 18L14 17.3C15.3 16 16 14.1 16 12S15.3 7.9 14 6.7L15.6 6C17.1 7.5 18 9.7 18 12C18 14.3 17.1 16.5 15.6 18Z\";\nexport var mdiCodeString = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M12.5,11H11.5A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 11.5,8H12.5A1.5,1.5 0 0,1 14,9.5H16A3.5,3.5 0 0,0 12.5,6H11.5A3.5,3.5 0 0,0 8,9.5A3.5,3.5 0 0,0 11.5,13H12.5A1.5,1.5 0 0,1 14,14.5A1.5,1.5 0 0,1 12.5,16H11.5A1.5,1.5 0 0,1 10,14.5H8A3.5,3.5 0 0,0 11.5,18H12.5A3.5,3.5 0 0,0 16,14.5A3.5,3.5 0 0,0 12.5,11Z\";\nexport var mdiCodeTags = \"M14.6,16.6L19.2,12L14.6,7.4L16,6L22,12L16,18L14.6,16.6M9.4,16.6L4.8,12L9.4,7.4L8,6L2,12L8,18L9.4,16.6Z\";\nexport var mdiCodeTagsCheck = \"M6.59,3.41L2,8L6.59,12.6L8,11.18L4.82,8L8,4.82L6.59,3.41M12.41,3.41L11,4.82L14.18,8L11,11.18L12.41,12.6L17,8L12.41,3.41M21.59,11.59L13.5,19.68L9.83,16L8.42,17.41L13.5,22.5L23,13L21.59,11.59Z\";\nexport var mdiCodepen = \"M8.21 12L6.88 12.89V11.11L8.21 12M11.47 9.82V7.34L7.31 10.12L9.16 11.36L11.47 9.82M16.7 10.12L12.53 7.34V9.82L14.84 11.36L16.7 10.12M7.31 13.88L11.47 16.66V14.18L9.16 12.64L7.31 13.88M12.53 14.18V16.66L16.7 13.88L14.84 12.64L12.53 14.18M12 10.74L10.12 12L12 13.26L13.88 12L12 10.74M22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12M18.18 10.12C18.18 10.09 18.18 10.07 18.18 10.05L18.17 10L18.17 10L18.16 9.95C18.15 9.94 18.15 9.93 18.14 9.91L18.13 9.89L18.11 9.85L18.1 9.83L18.08 9.8L18.06 9.77L18.03 9.74L18 9.72L18 9.7L17.96 9.68L17.95 9.67L12.3 5.91C12.12 5.79 11.89 5.79 11.71 5.91L6.05 9.67L6.05 9.68L6 9.7C6 9.71 6 9.72 6 9.72L5.97 9.74L5.94 9.77L5.93 9.8L5.9 9.83L5.89 9.85L5.87 9.89L5.86 9.91L5.84 9.95L5.84 10L5.83 10L5.82 10.05C5.82 10.07 5.82 10.09 5.82 10.12V13.88C5.82 13.91 5.82 13.93 5.82 13.95L5.83 14L5.84 14L5.84 14.05C5.85 14.06 5.85 14.07 5.86 14.09L5.87 14.11L5.89 14.15L5.9 14.17L5.92 14.2L5.94 14.23C5.95 14.24 5.96 14.25 5.97 14.26L6 14.28L6 14.3L6.04 14.32L6.05 14.33L11.71 18.1C11.79 18.16 11.9 18.18 12 18.18C12.1 18.18 12.21 18.15 12.3 18.1L17.95 14.33L17.96 14.32L18 14.3L18 14.28L18.03 14.26L18.06 14.23L18.08 14.2L18.1 14.17L18.11 14.15L18.13 14.11L18.14 14.09L18.16 14.05L18.16 14L18.17 14L18.18 13.95C18.18 13.93 18.18 13.91 18.18 13.88V10.12M17.12 12.89V11.11L15.79 12L17.12 12.89Z\";\nexport var mdiCoffee = \"M2,21H20V19H2M20,8H18V5H20M20,3H4V13A4,4 0 0,0 8,17H14A4,4 0 0,0 18,13V10H20A2,2 0 0,0 22,8V5C22,3.89 21.1,3 20,3Z\";\nexport var mdiCoffeeMaker = \"M18 6V4H20V2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H20V20H15.97C17.2 19.09 18 17.64 18 16V11H8V16C8 17.64 8.81 19.09 10.03 20H6V4H8V6C8 6.55 8.45 7 9 7H17C17.55 7 18 6.55 18 6M13 8C13.55 8 14 8.45 14 9S13.55 10 13 10 12 9.55 12 9 12.45 8 13 8Z\";\nexport var mdiCoffeeMakerCheck = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M13 18C13 15.78 14.21 13.85 16 12.81V11H6V16C6 17.64 6.81 19.09 8.03 20H4V4H6V6C6 6.55 6.45 7 7 7H15C15.55 7 16 6.55 16 6V4H18V2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H14.54C13.58 20.94 13 19.54 13 18M10 9C10 9.55 10.45 10 11 10S12 9.55 12 9 11.55 8 11 8 10 8.45 10 9Z\";\nexport var mdiCoffeeMakerCheckOutline = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M13 18.21C12.5 18.7 11.78 19 11 19C9.35 19 8 17.65 8 16V13H14V14.69C14.5 13.92 15.2 13.27 16 12.81V11H6V16C6 17.64 6.81 19.09 8.03 20H4V4H6V6C6 6.55 6.45 7 7 7H15C15.55 7 16 6.55 16 6V4H18V2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H14.54C13.63 21 13.06 19.67 13 18.21M10 9C10 9.55 10.45 10 11 10S12 9.55 12 9 11.55 8 11 8 10 8.45 10 9Z\";\nexport var mdiCoffeeMakerOutline = \"M18 6V4H20V2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H20V20H15.97C17.2 19.09 18 17.64 18 16V11H8V16C8 17.64 8.81 19.09 10.03 20H6V4H8V6C8 6.55 8.45 7 9 7H17C17.55 7 18 6.55 18 6M10 16V13H16V16C16 17.65 14.65 19 13 19S10 17.65 10 16M13 8C13.55 8 14 8.45 14 9S13.55 10 13 10 12 9.55 12 9 12.45 8 13 8Z\";\nexport var mdiCoffeeOff = \"M3.27 2L22 20.72L20.72 22L19.73 21H2V19H17.73L15.44 16.71C15 16.89 14.5 17 14 17H8C5.79 17 4 15.21 4 13V5.27L2 3.27L3.27 2M22 5V8C22 9.1 21.1 10 20 10H18V13C18 13.36 17.94 13.7 17.85 14.04L6.81 3H20C21.1 3 22 3.89 22 5M20 5H18V8H20V5Z\";\nexport var mdiCoffeeOffOutline = \"M2 3.27L4 5.27V13C4 15.21 5.79 17 8 17H14C14.5 17 15 16.89 15.44 16.71L17.73 19H2V21H19.73L20.72 22L22 20.72L3.27 2L2 3.27M8 15C6.9 15 6 14.1 6 13V7.27L13.73 15H8M20 3H6.81L8.81 5H16V12.19L17.85 14.04C17.94 13.7 18 13.36 18 13V10H20C21.1 10 22 9.1 22 8V5C22 3.9 21.1 3 20 3M20 8H18V5H20V8Z\";\nexport var mdiCoffeeOutline = \"M2,21V19H20V21H2M20,8V5H18V8H20M20,3A2,2 0 0,1 22,5V8A2,2 0 0,1 20,10H18V13A4,4 0 0,1 14,17H8A4,4 0 0,1 4,13V3H20M16,5H6V13A2,2 0 0,0 8,15H14A2,2 0 0,0 16,13V5Z\";\nexport var mdiCoffeeToGo = \"M3,19V17H17L15.26,15.24L16.67,13.83L20.84,18L16.67,22.17L15.26,20.76L17,19H3M17,8V5H15V8H17M17,3C18.11,3 19,3.9 19,5V8C19,9.11 18.11,10 17,10H15V11A4,4 0 0,1 11,15H7A4,4 0 0,1 3,11V3H17Z\";\nexport var mdiCoffeeToGoOutline = \"M3 3V11A4 4 0 0 0 7 15H11A4 4 0 0 0 15 11V10H17C18.11 10 19 9.11 19 8V5C19 3.9 18.11 3 17 3H3M5 5H13V11A2 2 0 0 1 11 13H7A2 2 0 0 1 5 11V5M15 5H17V8H15V5M16.67 13.83L15.26 15.24L17 17H3V19H17L15.26 20.76L16.67 22.17L20.84 18L16.67 13.83Z\";\nexport var mdiCoffin = \"M8,22L5,8L8,2H16L19,8L16,22H8M11,6V8H9V10H11V15H13V10H15V8H13V6H11Z\";\nexport var mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nexport var mdiCogBox = \"M17.25,12C17.25,12.23 17.23,12.46 17.2,12.68L18.68,13.84C18.81,13.95 18.85,14.13 18.76,14.29L17.36,16.71C17.27,16.86 17.09,16.92 16.93,16.86L15.19,16.16C14.83,16.44 14.43,16.67 14,16.85L13.75,18.7C13.72,18.87 13.57,19 13.4,19H10.6C10.43,19 10.28,18.87 10.25,18.7L10,16.85C9.56,16.67 9.17,16.44 8.81,16.16L7.07,16.86C6.91,16.92 6.73,16.86 6.64,16.71L5.24,14.29C5.15,14.13 5.19,13.95 5.32,13.84L6.8,12.68C6.77,12.46 6.75,12.23 6.75,12C6.75,11.77 6.77,11.54 6.8,11.32L5.32,10.16C5.19,10.05 5.15,9.86 5.24,9.71L6.64,7.29C6.73,7.13 6.91,7.07 7.07,7.13L8.81,7.84C9.17,7.56 9.56,7.32 10,7.15L10.25,5.29C10.28,5.13 10.43,5 10.6,5H13.4C13.57,5 13.72,5.13 13.75,5.29L14,7.15C14.43,7.32 14.83,7.56 15.19,7.84L16.93,7.13C17.09,7.07 17.27,7.13 17.36,7.29L18.76,9.71C18.85,9.86 18.81,10.05 18.68,10.16L17.2,11.32C17.23,11.54 17.25,11.77 17.25,12M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M12,10C10.89,10 10,10.89 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12C14,10.89 13.1,10 12,10Z\";\nexport var mdiCogClockwise = \"M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3M7.71 13.16C7.62 13.23 7.59 13.35 7.64 13.45L8.54 15C8.6 15.12 8.72 15.12 8.82 15.12L9.95 14.67C10.19 14.83 10.44 14.97 10.7 15.09L10.88 16.28C10.9 16.39 11 16.47 11.1 16.47H12.9C13 16.5 13.11 16.41 13.13 16.3L13.31 15.12C13.58 15 13.84 14.85 14.07 14.67L15.19 15.12C15.3 15.16 15.42 15.11 15.47 15L16.37 13.5C16.42 13.38 16.39 13.26 16.31 13.19L15.31 12.45C15.34 12.15 15.34 11.85 15.31 11.55L16.31 10.79C16.4 10.72 16.42 10.61 16.37 10.5L15.47 8.95C15.41 8.85 15.3 8.81 15.19 8.85L14.07 9.3C13.83 9.13 13.57 9 13.3 8.88L13.13 7.69C13.11 7.58 13 7.5 12.9 7.5H11.14C11.04 7.5 10.95 7.57 10.93 7.67L10.76 8.85C10.5 8.97 10.23 9.12 10 9.3L8.85 8.88C8.74 8.84 8.61 8.89 8.56 9L7.65 10.5C7.6 10.62 7.63 10.74 7.71 10.81L8.71 11.55C8.69 11.7 8.69 11.85 8.71 12C8.7 12.15 8.7 12.3 8.71 12.45L7.71 13.19M12 13.5H12C11.16 13.5 10.5 12.82 10.5 12C10.5 11.17 11.17 10.5 12 10.5S13.5 11.17 13.5 12 12.83 13.5 12 13.5\";\nexport var mdiCogCounterclockwise = \"M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3M16.29 13.19L15.29 12.45C15.3 12.3 15.3 12.15 15.29 12C15.31 11.85 15.31 11.7 15.29 11.55L16.29 10.81C16.37 10.74 16.4 10.62 16.35 10.5L15.44 9C15.39 8.89 15.26 8.84 15.15 8.88L14 9.3C13.77 9.12 13.5 8.97 13.24 8.85L13.07 7.67C13.05 7.57 12.96 7.5 12.86 7.5H11.1C11 7.5 10.89 7.58 10.87 7.69L10.7 8.88C10.43 9 10.17 9.13 9.93 9.3L8.81 8.85C8.71 8.81 8.59 8.85 8.53 8.95L7.63 10.5C7.58 10.61 7.6 10.72 7.69 10.79L8.69 11.55C8.66 11.85 8.66 12.15 8.69 12.45L7.69 13.19C7.61 13.26 7.58 13.38 7.63 13.5L8.53 15C8.58 15.11 8.7 15.16 8.81 15.12L9.93 14.67C10.16 14.85 10.42 15 10.69 15.12L10.87 16.3C10.89 16.41 11 16.5 11.1 16.47H12.9C13 16.47 13.11 16.39 13.12 16.28L13.3 15.09C13.56 14.97 13.81 14.83 14.05 14.67L15.18 15.12C15.28 15.12 15.4 15.12 15.46 15L16.36 13.45C16.41 13.35 16.38 13.23 16.29 13.16M12 13.5C11.17 13.5 10.5 12.83 10.5 12S11.17 10.5 12 10.5 13.5 11.17 13.5 12C13.5 12.82 12.84 13.5 12 13.5H12\";\nexport var mdiCogOff = \"M22.12 21.46L2.4 1.73L1.12 3L4 5.87L2.34 8.73C2.21 8.95 2.27 9.22 2.46 9.37L4.57 11C4.53 11.34 4.5 11.67 4.5 12S4.53 12.65 4.57 12.97L2.46 14.63C2.27 14.78 2.21 15.05 2.34 15.27L4.34 18.73C4.46 18.95 4.73 19.03 4.95 18.95L7.44 17.94C7.96 18.34 8.5 18.68 9.13 18.93L9.5 21.58C9.54 21.82 9.75 22 10 22H14C14.25 22 14.46 21.82 14.5 21.58L14.87 18.93C15.38 18.72 15.83 18.45 16.26 18.14L20.85 22.73L22.12 21.46M12 15.5C10.07 15.5 8.5 13.93 8.5 12C8.5 11.5 8.62 11.08 8.79 10.67L13.33 15.21C12.92 15.39 12.5 15.5 12 15.5M11.74 8.53L8.56 5.35C8.75 5.25 8.93 5.15 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.78 8.95 21.73 9.22 21.54 9.37L19.43 11C19.47 11.34 19.5 11.67 19.5 12S19.47 12.65 19.43 12.97L21.54 14.63C21.73 14.78 21.78 15.05 21.66 15.27L20.5 17.29L15.47 12.26C15.5 12.18 15.5 12.09 15.5 12C15.5 10.07 13.93 8.5 12 8.5C11.91 8.5 11.83 8.5 11.74 8.53Z\";\nexport var mdiCogOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L4 5.88L2.34 8.73C2.21 8.95 2.27 9.22 2.46 9.37L4.57 11L4.5 12L4.57 12.97L2.46 14.63C2.27 14.78 2.21 15.05 2.34 15.27L4.34 18.73C4.46 18.95 4.73 19.03 4.95 18.95L7.44 17.94C7.96 18.34 8.5 18.68 9.13 18.93L9.5 21.58C9.54 21.82 9.75 22 10 22H14C14.25 22 14.46 21.82 14.5 21.58L14.87 18.93C15.38 18.73 15.83 18.45 16.26 18.15L20.84 22.73L22.11 21.46M10 11.9L12.1 14C12.06 14 12.03 14 12 14C10.9 14 10 13.11 10 12C10 11.97 10 11.94 10 11.9M13.13 17.39L12.76 20H11.24L10.87 17.38C9.68 17.14 8.63 16.5 7.86 15.62L5.43 16.66L4.68 15.36L6.8 13.8C6.4 12.64 6.4 11.37 6.8 10.2L4.69 8.65L5.44 7.35L5.5 7.37L8.4 10.29C8.15 10.8 8 11.38 8 12C8 14.21 9.79 16 12 16C12.62 16 13.2 15.86 13.71 15.6L14.83 16.72C14.31 17.03 13.74 17.26 13.13 17.39M10.06 6.86L8.55 5.35C8.74 5.26 8.93 5.15 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.79 8.95 21.73 9.22 21.54 9.37L19.43 11L19.5 12L19.43 13L21.54 14.63C21.73 14.78 21.79 15.05 21.66 15.27L20.5 17.29L19.04 15.84L19.32 15.36L17.2 13.81C17.6 12.64 17.6 11.37 17.2 10.2L19.31 8.65L18.56 7.35L16.15 8.39C15.38 7.5 14.32 6.86 13.12 6.62L12.75 4H11.25L10.88 6.61C10.6 6.67 10.32 6.75 10.06 6.86M12 8C14.21 8 16 9.79 16 12C16 12.25 15.97 12.5 15.93 12.73L11.27 8.07C11.5 8.03 11.75 8 12 8Z\";\nexport var mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nexport var mdiCogPause = \"M13.53 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97C4.53 12.65 4.5 12.33 4.5 12S4.53 11.34 4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.78 8.95 21.73 9.22 21.54 9.37L19.43 11C19.47 11.34 19.5 11.67 19.5 12C19.5 12.06 19.5 12.12 19.5 12.19C19 12.07 18.5 12 18 12C17.08 12 16.22 12.21 15.44 12.58C15.47 12.39 15.5 12.2 15.5 12C15.5 10.07 13.93 8.5 12 8.5S8.5 10.07 8.5 12 10.07 15.5 12 15.5C12.2 15.5 12.39 15.47 12.58 15.44C12.21 16.22 12 17.08 12 18C12 19.54 12.58 20.94 13.53 22M19 15H21V21H19M15 15H17V21H15V15Z\";\nexport var mdiCogPauseOutline = \"M13.54 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97L4.5 12L4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.79 8.95 21.73 9.22 21.54 9.37L19.43 11L19.5 12L19.5 12.19C19 12.07 18.5 12 18 12C17.83 12 17.66 12 17.5 12.03C17.5 11.41 17.4 10.79 17.2 10.2L19.31 8.65L18.56 7.35L16.15 8.39C15.38 7.5 14.32 6.86 13.12 6.62L12.75 4H11.25L10.88 6.61C9.68 6.86 8.62 7.5 7.85 8.39L5.44 7.35L4.69 8.65L6.8 10.2C6.4 11.37 6.4 12.64 6.8 13.8L4.68 15.36L5.43 16.66L7.86 15.62C8.63 16.5 9.68 17.14 10.87 17.38L11.24 20H12.35C12.61 20.75 13 21.42 13.54 22M12.36 15.96C12.24 16 12.12 16 12 16C9.79 16 8 14.21 8 12S9.79 8 12 8 16 9.79 16 12C16 12.12 16 12.24 15.96 12.36C14.29 12.97 12.97 14.29 12.36 15.96M14 12C14 10.9 13.11 10 12 10S10 10.9 10 12 10.9 14 12 14 14 13.11 14 12M19 15H21V21H19M15 15H17V21H15V15Z\";\nexport var mdiCogPlay = \"M13.53 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97C4.53 12.65 4.5 12.33 4.5 12S4.53 11.34 4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.78 8.95 21.73 9.22 21.54 9.37L19.43 11C19.47 11.34 19.5 11.67 19.5 12V12.19C19 12.07 18.5 12 18 12C17.08 12 16.22 12.21 15.44 12.58C15.47 12.39 15.5 12.2 15.5 12C15.5 10.07 13.93 8.5 12 8.5S8.5 10.07 8.5 12 10.07 15.5 12 15.5C12.2 15.5 12.39 15.47 12.58 15.44C12.21 16.22 12 17.08 12 18C12 19.54 12.58 20.94 13.53 22M16 15V21L21 18L16 15Z\";\nexport var mdiCogPlayOutline = \"M13.54 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97L4.5 12L4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.79 8.95 21.73 9.22 21.54 9.37L19.43 11L19.5 12V12.19C19 12.07 18.5 12 18 12C17.83 12 17.66 12 17.5 12.03C17.5 11.41 17.4 10.79 17.2 10.2L19.31 8.65L18.56 7.35L16.15 8.39C15.38 7.5 14.32 6.86 13.12 6.62L12.75 4H11.25L10.88 6.61C9.68 6.86 8.62 7.5 7.85 8.39L5.44 7.35L4.69 8.65L6.8 10.2C6.4 11.37 6.4 12.64 6.8 13.8L4.68 15.36L5.43 16.66L7.86 15.62C8.63 16.5 9.68 17.14 10.87 17.38L11.24 20H12.35C12.61 20.75 13 21.42 13.54 22M15.96 12.36C16 12.24 16 12.12 16 12C16 9.79 14.21 8 12 8S8 9.79 8 12 9.79 16 12 16C12.12 16 12.24 16 12.36 15.96C12.97 14.29 14.29 12.97 15.96 12.36M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14M16 15V21L21 18L16 15Z\";\nexport var mdiCogRefresh = \"M18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5M11.5 18.5C11.5 17.4 11.8 16.4 12.2 15.5H12C10.1 15.5 8.5 13.9 8.5 12S10.1 8.5 12 8.5 15.5 10.1 15.5 12C15.5 12.2 15.5 12.4 15.4 12.5C16.2 12.2 17 12 18 12C18.5 12 19 12.1 19.5 12.2V12C19.5 11.7 19.5 11.3 19.4 11L21.5 9.4C21.7 9.2 21.7 9 21.6 8.8L19.6 5.3C19.5 5 19.3 5 19 5L16.5 6C16 5.6 15.4 5.3 14.8 5L14.4 2.3C14.5 2.2 14.2 2 14 2H10C9.8 2 9.5 2.2 9.5 2.4L9.1 5.1C8.5 5.3 8 5.7 7.4 6L5 5C4.7 5 4.5 5 4.3 5.3L2.3 8.8C2.2 9 2.3 9.2 2.5 9.4L4.6 11C4.6 11.3 4.5 11.7 4.5 12S4.5 12.7 4.6 13L2.5 14.7C2.3 14.9 2.3 15.1 2.4 15.3L4.4 18.8C4.5 19 4.7 19 5 19L7.5 18C8 18.4 8.6 18.7 9.2 19L9.6 21.7C9.6 21.9 9.8 22.1 10.1 22.1H12.6C11.9 21 11.5 19.8 11.5 18.5Z\";\nexport var mdiCogRefreshOutline = \"M18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5M11.7 20H11.3L10.9 17.4C9.7 17.2 8.7 16.5 7.9 15.6L5.5 16.6L4.7 15.3L6.8 13.7C6.4 12.5 6.4 11.3 6.8 10.1L4.7 8.7L5.5 7.4L7.9 8.4C8.7 7.5 9.7 6.9 10.9 6.6L11.2 4H12.7L13.1 6.6C14.3 6.8 15.4 7.5 16.1 8.4L18.5 7.4L19.3 8.7L17.2 10.2C17.4 10.8 17.5 11.4 17.5 12H18C18.5 12 19 12.1 19.5 12.2V12L19.4 11L21.5 9.4C21.7 9.2 21.7 9 21.6 8.8L19.6 5.3C19.5 5 19.3 5 19 5L16.5 6C16 5.6 15.4 5.3 14.8 5L14.4 2.3C14.5 2.2 14.2 2 14 2H10C9.8 2 9.5 2.2 9.5 2.4L9.1 5.1C8.5 5.3 8 5.7 7.4 6L5 5C4.7 5 4.5 5 4.3 5.3L2.3 8.8C2.2 9 2.3 9.2 2.5 9.4L4.6 11L4.5 12L4.6 13L2.5 14.7C2.3 14.9 2.3 15.1 2.4 15.3L4.4 18.8C4.5 19 4.7 19 5 19L7.5 18C8 18.4 8.6 18.7 9.2 19L9.6 21.7C9.6 21.9 9.8 22.1 10.1 22.1H12.6C12.1 21.4 11.9 20.7 11.7 20M16 12.3V12C16 9.8 14.2 8 12 8S8 9.8 8 12C8 14.2 9.8 16 12 16C12.7 14.3 14.2 12.9 16 12.3M10 12C10 10.9 10.9 10 12 10S14 10.9 14 12 13.1 14 12 14 10 13.1 10 12Z\";\nexport var mdiCogStop = \"M13.53 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97C4.53 12.65 4.5 12.33 4.5 12S4.53 11.34 4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.78 8.95 21.73 9.22 21.54 9.37L19.43 11C19.47 11.34 19.5 11.67 19.5 12C19.5 12.06 19.5 12.12 19.5 12.19C19 12.07 18.5 12 18 12C17.08 12 16.22 12.21 15.44 12.58C15.47 12.39 15.5 12.2 15.5 12C15.5 10.07 13.93 8.5 12 8.5S8.5 10.07 8.5 12 10.07 15.5 12 15.5C12.2 15.5 12.39 15.47 12.58 15.44C12.21 16.22 12 17.08 12 18C12 19.54 12.58 20.94 13.53 22M21 15H15V21H21V15Z\";\nexport var mdiCogStopOutline = \"M13.54 22H10C9.75 22 9.54 21.82 9.5 21.58L9.13 18.93C8.5 18.68 7.96 18.34 7.44 17.94L4.95 18.95C4.73 19.03 4.46 18.95 4.34 18.73L2.34 15.27C2.21 15.05 2.27 14.78 2.46 14.63L4.57 12.97L4.5 12L4.57 11L2.46 9.37C2.27 9.22 2.21 8.95 2.34 8.73L4.34 5.27C4.46 5.05 4.73 4.96 4.95 5.05L7.44 6.05C7.96 5.66 8.5 5.32 9.13 5.07L9.5 2.42C9.54 2.18 9.75 2 10 2H14C14.25 2 14.46 2.18 14.5 2.42L14.87 5.07C15.5 5.32 16.04 5.66 16.56 6.05L19.05 5.05C19.27 4.96 19.54 5.05 19.66 5.27L21.66 8.73C21.79 8.95 21.73 9.22 21.54 9.37L19.43 11L19.5 12L19.5 12.19C19 12.07 18.5 12 18 12C17.83 12 17.66 12 17.5 12.03C17.5 11.41 17.4 10.79 17.2 10.2L19.31 8.65L18.56 7.35L16.15 8.39C15.38 7.5 14.32 6.86 13.12 6.62L12.75 4H11.25L10.88 6.61C9.68 6.86 8.62 7.5 7.85 8.39L5.44 7.35L4.69 8.65L6.8 10.2C6.4 11.37 6.4 12.64 6.8 13.8L4.68 15.36L5.43 16.66L7.86 15.62C8.63 16.5 9.68 17.14 10.87 17.38L11.24 20H12.35C12.61 20.75 13 21.42 13.54 22M12.36 15.96C12.24 16 12.12 16 12 16C9.79 16 8 14.21 8 12S9.79 8 12 8 16 9.79 16 12C16 12.12 16 12.24 15.96 12.36C14.29 12.97 12.97 14.29 12.36 15.96M14 12C14 10.9 13.11 10 12 10S10 10.9 10 12 10.9 14 12 14 14 13.11 14 12M15 15H21V21H15V15Z\";\nexport var mdiCogSync = \"M11.5 18.5C11.5 17.4 11.8 16.4 12.2 15.5H12C10.1 15.5 8.5 13.9 8.5 12S10.1 8.5 12 8.5 15.5 10.1 15.5 12C15.5 12.2 15.5 12.4 15.4 12.5C16.2 12.2 17 12 18 12C18.5 12 19 12.1 19.5 12.2V12C19.5 11.7 19.5 11.3 19.4 11L21.5 9.4C21.7 9.2 21.7 9 21.6 8.8L19.6 5.3C19.5 5 19.3 5 19 5L16.5 6C16 5.6 15.4 5.3 14.8 5L14.4 2.3C14.5 2.2 14.2 2 14 2H10C9.8 2 9.5 2.2 9.5 2.4L9.1 5.1C8.5 5.3 8 5.7 7.4 6L5 5C4.7 5 4.5 5 4.3 5.3L2.3 8.8C2.2 9 2.3 9.2 2.5 9.4L4.6 11C4.6 11.3 4.5 11.7 4.5 12S4.5 12.7 4.6 13L2.5 14.7C2.3 14.9 2.3 15.1 2.4 15.3L4.4 18.8C4.5 19 4.7 19 5 19L7.5 18C8 18.4 8.6 18.7 9.2 19L9.6 21.7C9.6 21.9 9.8 22.1 10.1 22.1H12.6C11.9 21 11.5 19.8 11.5 18.5M18 14.5V13L15.8 15.2L18 17.4V16C19.4 16 20.5 17.1 20.5 18.5C20.5 18.9 20.4 19.3 20.2 19.6L21.3 20.7C22.5 18.9 22 16.4 20.2 15.2C19.6 14.7 18.8 14.5 18 14.5M18 21C16.6 21 15.5 19.9 15.5 18.5C15.5 18.1 15.6 17.7 15.8 17.4L14.7 16.3C13.5 18.1 14 20.6 15.8 21.8C16.5 22.2 17.2 22.5 18 22.5V24L20.2 21.8L18 19.5V21Z\";\nexport var mdiCogSyncOutline = \"M11.7 20H11.3L10.9 17.4C9.7 17.2 8.7 16.5 7.9 15.6L5.5 16.6L4.7 15.3L6.8 13.7C6.4 12.5 6.4 11.3 6.8 10.1L4.7 8.7L5.5 7.4L7.9 8.4C8.7 7.5 9.7 6.9 10.9 6.6L11.2 4H12.7L13.1 6.6C14.3 6.8 15.4 7.5 16.1 8.4L18.5 7.4L19.3 8.7L17.2 10.2C17.4 10.8 17.5 11.4 17.5 12H18C18.5 12 19 12.1 19.5 12.2V12L19.4 11L21.5 9.4C21.7 9.2 21.7 9 21.6 8.8L19.6 5.3C19.5 5 19.3 5 19 5L16.5 6C16 5.6 15.4 5.3 14.8 5L14.4 2.3C14.5 2.2 14.2 2 14 2H10C9.8 2 9.5 2.2 9.5 2.4L9.1 5.1C8.5 5.3 8 5.7 7.4 6L5 5C4.7 5 4.5 5 4.3 5.3L2.3 8.8C2.2 9 2.3 9.2 2.5 9.4L4.6 11L4.5 12L4.6 13L2.5 14.7C2.3 14.9 2.3 15.1 2.4 15.3L4.4 18.8C4.5 19 4.7 19 5 19L7.5 18C8 18.4 8.6 18.7 9.2 19L9.6 21.7C9.6 21.9 9.8 22.1 10.1 22.1H12.6C12.1 21.4 11.9 20.7 11.7 20M16 12.3V12C16 9.8 14.2 8 12 8S8 9.8 8 12C8 14.2 9.8 16 12 16C12.7 14.3 14.2 12.9 16 12.3M10 12C10 10.9 10.9 10 12 10S14 10.9 14 12 13.1 14 12 14 10 13.1 10 12M18 14.5V13L15.8 15.2L18 17.4V16C19.4 16 20.5 17.1 20.5 18.5C20.5 18.9 20.4 19.3 20.2 19.6L21.3 20.7C22.5 18.9 22 16.4 20.2 15.2C19.6 14.7 18.8 14.5 18 14.5M18 21C16.6 21 15.5 19.9 15.5 18.5C15.5 18.1 15.6 17.7 15.8 17.4L14.7 16.3C13.5 18.1 14 20.6 15.8 21.8C16.5 22.2 17.2 22.5 18 22.5V24L20.2 21.8L18 19.5V21Z\";\nexport var mdiCogTransfer = \"M14 18V16L10 19.5L14 23V21H17V18H14M22 15.5L18 12V14H15V17H18V19L22 15.5M21.66 8.73L19.66 5.27C19.54 5.05 19.28 4.96 19.05 5.05L16.56 6.05C16.05 5.64 15.5 5.31 14.87 5.05L14.5 2.42C14.46 2.18 14.25 2 14 2H10C9.75 2 9.54 2.18 9.5 2.42L9.13 5.07C8.5 5.33 7.96 5.66 7.44 6.07L5 5.05C4.77 4.96 4.5 5.05 4.39 5.27L2.39 8.73C2.26 8.94 2.31 9.22 2.5 9.37L4.57 11C4.53 11.33 4.5 11.67 4.5 12C4.5 12.33 4.53 12.67 4.57 13L2.46 14.63C2.26 14.78 2.21 15.06 2.34 15.27L4.34 18.73C4.45 19 4.74 19.11 5 19L5 19L7.5 18C7.74 18.19 8 18.37 8.26 18.53L11.77 15.53C9.84 15.4 8.38 13.73 8.5 11.8C8.65 9.87 10.32 8.41 12.25 8.55C13.69 8.64 14.92 9.62 15.35 11H19.43L21.54 9.37C21.73 9.22 21.78 8.94 21.66 8.73Z\";\nexport var mdiCogTransferOutline = \"M15 17V14H18V12L22 15.5L18 19V17H15M17 18V21H14V23L10 19.5L14 16V18H17M12 8C9.79 8 8 9.8 8 12C8 13.91 9.35 15.54 11.21 15.92L16 11.86C15.93 9.71 14.16 8 12 8M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14M21.66 8.73L19.66 5.27C19.54 5.05 19.28 4.96 19.05 5.05L16.56 6.05C16.05 5.64 15.5 5.31 14.87 5.05L14.5 2.42C14.46 2.18 14.25 2 14 2H10C9.75 2 9.54 2.18 9.5 2.42L9.13 5.07C8.5 5.33 7.96 5.66 7.44 6.07L5 5.05C4.77 4.96 4.5 5.05 4.39 5.27L2.39 8.73C2.26 8.94 2.31 9.22 2.5 9.37L4.57 11L4.5 12L4.57 13L2.46 14.63C2.26 14.78 2.21 15.06 2.34 15.27L4.34 18.73C4.45 19 4.74 19.11 5 19L5 19L7.5 18C7.74 18.19 8 18.37 8.26 18.53L9.91 17.13C9.14 16.8 8.46 16.31 7.91 15.68L5.5 16.68L4.73 15.38L6.8 13.8C6.4 12.63 6.4 11.37 6.8 10.2L4.69 8.65L5.44 7.35L7.85 8.35C8.63 7.45 9.68 6.82 10.85 6.57L11.25 4H12.75L13.12 6.62C14.29 6.86 15.34 7.5 16.12 8.39L18.53 7.39L19.28 8.69L17.2 10.2C17.29 10.46 17.36 10.73 17.4 11H19.4L21.5 9.37C21.72 9.23 21.78 8.95 21.66 8.73M12 8C9.79 8 8 9.8 8 12C8 13.91 9.35 15.54 11.21 15.92L16 11.86C15.93 9.71 14.16 8 12 8M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14M12 8C9.79 8 8 9.8 8 12C8 13.91 9.35 15.54 11.21 15.92L16 11.86C15.93 9.71 14.16 8 12 8M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14Z\";\nexport var mdiCogs = \"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z\";\nexport var mdiCollage = \"M5,3C3.89,3 3,3.89 3,5V19C3,20.11 3.89,21 5,21H11V3M13,3V11H21V5C21,3.89 20.11,3 19,3M13,13V21H19C20.11,21 21,20.11 21,19V13\";\nexport var mdiCollapseAll = \"M14,4H4V14H2V4A2,2 0 0,1 4,2H14V4M18,6H8A2,2 0 0,0 6,8V18H8V8H18V6M22,12V20A2,2 0 0,1 20,22H12A2,2 0 0,1 10,20V12A2,2 0 0,1 12,10H20A2,2 0 0,1 22,12M20,15H12V17H20V15Z\";\nexport var mdiCollapseAllOutline = \"M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H13V15H19V17Z\";\nexport var mdiColorHelper = \"M0,24H24V20H0V24Z\";\nexport var mdiComma = \"M7,3H16.95V12.96L12.96,20.94H8L11.97,12.96H7V3Z\";\nexport var mdiCommaBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M15,13V7H9V13H12L10,17H13L15,13Z\";\nexport var mdiCommaBoxOutline = \"M10,17L12,13H9V7H15V13L13,17H10M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiCommaCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M15,13L13,17H10L12,13H9V7H15V13Z\";\nexport var mdiCommaCircleOutline = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M10,17H13L15,13V7H9V13H12L10,17Z\";\nexport var mdiComment = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z\";\nexport var mdiCommentAccount = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M16,14V13C16,11.67 13.33,11 12,11C10.67,11 8,11.67 8,13V14H16M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6Z\";\nexport var mdiCommentAccountOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M16,14H8V13C8,11.67 10.67,11 12,11C13.33,11 16,11.67 16,13V14M12,6A2,2 0 0,1 14,8A2,2 0 0,1 12,10A2,2 0 0,1 10,8A2,2 0 0,1 12,6Z\";\nexport var mdiCommentAlert = \"M9 22C8.4 22 8 21.6 8 21V18H4C2.9 18 2 17.1 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4V16C22 17.1 21.1 18 20 18H13.9L10.2 21.7C10 21.9 9.8 22 9.5 22H9M13 11V5H11V11M13 15V13H11V15H13Z\";\nexport var mdiCommentAlertOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M13,10H11V6H13V10M13,14H11V12H13V14Z\";\nexport var mdiCommentArrowLeft = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M16 11H11.5L13.3 12.8L12 14L8 10L12 6L13.2 7.2L11.5 9H16V11Z\";\nexport var mdiCommentArrowLeftOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H13.1L10 19.1V16H4V4H20V16M16 11V9H11.5L13.3 7.2L12 6L8 10L12 14L13.2 12.8L11.5 11H16Z\";\nexport var mdiCommentArrowRight = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M12 14L10.8 12.8L12.6 11H8V9H12.5L10.7 7.2L12 6L16 10L12 14Z\";\nexport var mdiCommentArrowRightOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H13.1L10 19.1V16H4V4H20V16M8 9V11H12.5L10.7 12.8L12 14L16 10L12 6L10.8 7.2L12.5 9H8Z\";\nexport var mdiCommentBookmark = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M19 13L16.5 11.5L14 13V5H19V13Z\";\nexport var mdiCommentBookmarkOutline = \"M9 22C8.4 22 8 21.6 8 21V18H4C2.9 18 2 17.1 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4V16C22 17.1 21.1 18 20 18H13.9L10.2 21.7C10 21.9 9.8 22 9.5 22H9M10 16V19.1L13.1 16H20V4H4V16H10M18 14V6H13V14L15.5 12.5L18 14Z\";\nexport var mdiCommentCheck = \"M20 2H4C2.9 2 2 2.89 2 4V16C2 17.11 2.9 18 4 18H8V21C8 21.55 8.45 22 9 22H9.5C9.75 22 10 21.9 10.2 21.71L13.9 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M10.47 14L7 10.5L8.4 9.09L10.47 11.17L15.6 6L17 7.41L10.47 14Z\";\nexport var mdiCommentCheckOutline = \"M9 22C8.45 22 8 21.55 8 21V18H4C2.9 18 2 17.11 2 16V4C2 2.89 2.9 2 4 2H20C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H13.9L10.2 21.71C10 21.9 9.75 22 9.5 22H9M10 16V19.08L13.08 16H20V4H4V16H10M15.6 6L17 7.41L10.47 14L7 10.5L8.4 9.09L10.47 11.17L15.6 6\";\nexport var mdiCommentEdit = \"M20 2H4C2.89 2 2 2.89 2 4V16C2 17.11 2.9 18 4 18H8V21C8 21.55 8.45 22 9 22H9.5C9.75 22 10 21.9 10.2 21.71L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.89 21.1 2 20 2M9.08 15H7V12.91L13.17 6.72L15.24 8.8L9.08 15M16.84 7.2L15.83 8.21L13.76 6.18L14.77 5.16C14.97 4.95 15.31 4.94 15.55 5.16L16.84 6.41C17.05 6.62 17.06 6.96 16.84 7.2Z\";\nexport var mdiCommentEditOutline = \"M9 22C8.45 22 8 21.55 8 21V18H4C2.9 18 2 17.11 2 16V4C2 2.89 2.9 2 4 2H20C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H13.9L10.2 21.71C10 21.9 9.75 22 9.5 22H9M10 16V19.08L13.08 16H20V4H4V16H10M15.84 8.2L14.83 9.21L12.76 7.18L13.77 6.16C13.97 5.95 14.31 5.94 14.55 6.16L15.84 7.41C16.05 7.62 16.06 7.96 15.84 8.2M8 11.91L12.17 7.72L14.24 9.8L10.08 14H8V11.91Z\";\nexport var mdiCommentEye = \"M20,12V16C20,17.11 19.11,18 18,18H13.9L10.2,21.71C10,21.89 9.76,22 9.5,22H9A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V6C2,4.89 2.9,4 4,4H9.5C8.95,4.67 8.5,5.42 8.14,6.25L7.85,7L8.14,7.75C9.43,10.94 12.5,13 16,13C17.44,13 18.8,12.63 20,12M16,6C16.56,6 17,6.44 17,7C17,7.56 16.56,8 16,8C15.44,8 15,7.56 15,7C15,6.44 15.44,6 16,6M16,3C18.73,3 21.06,4.66 22,7C21.06,9.34 18.73,11 16,11C13.27,11 10.94,9.34 10,7C10.94,4.66 13.27,3 16,3M16,4.5A2.5,2.5 0 0,0 13.5,7A2.5,2.5 0 0,0 16,9.5A2.5,2.5 0 0,0 18.5,7A2.5,2.5 0 0,0 16,4.5\";\nexport var mdiCommentEyeOutline = \"M16,6C16.56,6 17,6.44 17,7C17,7.56 16.56,8 16,8C15.44,8 15,7.56 15,7C15,6.44 15.44,6 16,6M16,3C18.73,3 21.06,4.66 22,7C21.06,9.34 18.73,11 16,11C13.27,11 10.94,9.34 10,7C10.94,4.66 13.27,3 16,3M16,4.5A2.5,2.5 0 0,0 13.5,7A2.5,2.5 0 0,0 16,9.5A2.5,2.5 0 0,0 18.5,7A2.5,2.5 0 0,0 16,4.5M18,12.75V16H13.08L10,19.08V16H4V6H8.27C8.59,5.27 9,4.6 9.5,4H4A2,2 0 0,0 2,6V16C2,17.11 2.9,18 4,18H8V21A1,1 0 0,0 9,22H9.5C9.75,22 10,21.9 10.2,21.71L13.9,18H18C19.11,18 20,17.11 20,16V12C19.37,12.33 18.7,12.58 18,12.75Z\";\nexport var mdiCommentFlash = \"M22.5 16H20.3L22 12H17V18H19V23L22.5 16M15 18H13.9L10.2 21.7C10 21.9 9.8 22 9.5 22H9C8.4 22 8 21.6 8 21V18H4C2.9 18 2 17.1 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4V10H15V18Z\";\nexport var mdiCommentFlashOutline = \"M22.5 16H20.3L22 12H17V18H19V23L22.5 16M15 18H13.9L10.2 21.7C10 21.9 9.8 22 9.5 22H9C8.4 22 8 21.6 8 21V18H4C2.9 18 2 17.1 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4V10H20V4H4V16H10V19.1L13.1 16H15V18Z\";\nexport var mdiCommentMinus = \"M20 2H4C2.9 2 2 2.89 2 4V16C2 17.11 2.9 18 4 18H8V21C8 21.55 8.45 22 9 22H9.5C9.75 22 10 21.9 10.2 21.71L13.9 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M16 11H8V9H16V11Z\";\nexport var mdiCommentMinusOutline = \"M16 11H8V9H16V11M22 4V16C22 17.11 21.11 18 20 18H13.9L10.2 21.71C10 21.9 9.75 22 9.5 22H9C8.45 22 8 21.55 8 21V18H4C2.9 18 2 17.11 2 16V4C2 2.89 2.9 2 4 2H20C21.11 2 22 2.9 22 4M20 4H4V16H10V19.08L13.08 16H20V4\";\nexport var mdiCommentMultiple = \"M12,23A1,1 0 0,1 11,22V19H7A2,2 0 0,1 5,17V7A2,2 0 0,1 7,5H21A2,2 0 0,1 23,7V17A2,2 0 0,1 21,19H16.9L13.2,22.71C13,22.89 12.76,23 12.5,23H12M3,15H1V3A2,2 0 0,1 3,1H19V3H3V15Z\";\nexport var mdiCommentMultipleOutline = \"M12,23A1,1 0 0,1 11,22V19H7A2,2 0 0,1 5,17V7C5,5.89 5.9,5 7,5H21A2,2 0 0,1 23,7V17A2,2 0 0,1 21,19H16.9L13.2,22.71C13,22.9 12.75,23 12.5,23V23H12M13,17V20.08L16.08,17H21V7H7V17H13M3,15H1V3A2,2 0 0,1 3,1H19V3H3V15Z\";\nexport var mdiCommentOff = \"M22.11 21.46L20.84 22.73L16.11 18H13.9L10.2 21.71C10 21.9 9.75 22 9.5 22H9C8.45 22 8 21.55 8 21V18H4C2.9 18 2 17.11 2 16V4 3.9L1.11 3L2.39 1.73L22.11 21.46M22 16V4C22 2.9 21.11 2 20 2H5.2L20.95 17.75C21.57 17.41 22 16.76 22 16Z\";\nexport var mdiCommentOffOutline = \"M7.2 4L5.2 2H20C21.11 2 22 2.9 22 4V16C22 16.76 21.57 17.41 20.95 17.75L19.2 16H20V4H7.2M22.11 21.46L20.84 22.73L16.11 18H13.9L10.2 21.71C10 21.9 9.75 22 9.5 22H9C8.45 22 8 21.55 8 21V18H4C2.9 18 2 17.11 2 16V4C2 3.97 2 3.93 2 3.9L1.11 3L2.39 1.73L22.11 21.46M14.11 16L4 5.89V16H10V19.08L13.08 16H14.11Z\";\nexport var mdiCommentOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z\";\nexport var mdiCommentPlus = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22H9M11,6V9H8V11H11V14H13V11H16V9H13V6H11Z\";\nexport var mdiCommentPlusOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M11,6H13V9H16V11H13V14H11V11H8V9H11V6Z\";\nexport var mdiCommentProcessing = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M17,11V9H15V11H17M13,11V9H11V11H13M9,11V9H7V11H9Z\";\nexport var mdiCommentProcessingOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M17,11H15V9H17V11M13,11H11V9H13V11M9,11H7V9H9V11Z\";\nexport var mdiCommentQuestion = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2M12.19,5.5C11.3,5.5 10.59,5.68 10.05,6.04C9.5,6.4 9.22,7 9.27,7.69H11.24C11.24,7.41 11.34,7.2 11.5,7.06C11.7,6.92 11.92,6.85 12.19,6.85C12.5,6.85 12.77,6.93 12.95,7.11C13.13,7.28 13.22,7.5 13.22,7.8C13.22,8.08 13.14,8.33 13,8.54C12.83,8.76 12.62,8.94 12.36,9.08C11.84,9.4 11.5,9.68 11.29,9.92C11.1,10.16 11,10.5 11,11H13C13,10.72 13.05,10.5 13.14,10.32C13.23,10.15 13.4,10 13.66,9.85C14.12,9.64 14.5,9.36 14.79,9C15.08,8.63 15.23,8.24 15.23,7.8C15.23,7.1 14.96,6.54 14.42,6.12C13.88,5.71 13.13,5.5 12.19,5.5M11,12V14H13V12H11Z\";\nexport var mdiCommentQuestionOutline = \"M4,2A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H8V21A1,1 0 0,0 9,22H9.5V22C9.75,22 10,21.9 10.2,21.71L13.9,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2H4M4,4H20V16H13.08L10,19.08V16H4V4M12.19,5.5C11.3,5.5 10.59,5.68 10.05,6.04C9.5,6.4 9.22,7 9.27,7.69C0.21,7.69 6.57,7.69 11.24,7.69C11.24,7.41 11.34,7.2 11.5,7.06C11.7,6.92 11.92,6.85 12.19,6.85C12.5,6.85 12.77,6.93 12.95,7.11C13.13,7.28 13.22,7.5 13.22,7.8C13.22,8.08 13.14,8.33 13,8.54C12.83,8.76 12.62,8.94 12.36,9.08C11.84,9.4 11.5,9.68 11.29,9.92C11.1,10.16 11,10.5 11,11H13C13,10.72 13.05,10.5 13.14,10.32C13.23,10.15 13.4,10 13.66,9.85C14.12,9.64 14.5,9.36 14.79,9C15.08,8.63 15.23,8.24 15.23,7.8C15.23,7.1 14.96,6.54 14.42,6.12C13.88,5.71 13.13,5.5 12.19,5.5M11,12V14H13V12H11Z\";\nexport var mdiCommentQuote = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H8V21C8 21.6 8.4 22 9 22H9.5C9.7 22 10 21.9 10.2 21.7L13.9 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M11 13H7V8.8L8.3 6H10.3L8.9 9H11V13M17 13H13V8.8L14.3 6H16.3L14.9 9H17V13Z\";\nexport var mdiCommentQuoteOutline = \"M9 22C8.4 22 8 21.6 8 21V18H4C2.9 18 2 17.1 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4V16C22 17.1 21.1 18 20 18H13.9L10.2 21.7C10 21.9 9.8 22 9.5 22H9M10 16V19.1L13.1 16H20V4H4V16H10M16.3 6L14.9 9H17V13H13V8.8L14.3 6H16.3M10.3 6L8.9 9H11V13H7V8.8L8.3 6H10.3Z\";\nexport var mdiCommentRemove = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M9.41,6L8,7.41L10.59,10L8,12.59L9.41,14L12,11.41L14.59,14L16,12.59L13.41,10L16,7.41L14.59,6L12,8.59L9.41,6Z\";\nexport var mdiCommentRemoveOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M9.41,6L12,8.59L14.59,6L16,7.41L13.41,10L16,12.59L14.59,14L12,11.41L9.41,14L8,12.59L10.59,10L8,7.41L9.41,6Z\";\nexport var mdiCommentSearch = \"M15.5,2C18,2 20,4 20,6.5C20,7.38 19.75,8.2 19.31,8.89L22.41,12L21,13.39L17.89,10.31C17.2,10.75 16.38,11 15.5,11C13,11 11,9 11,6.5C11,4 13,2 15.5,2M15.5,4A2.5,2.5 0 0,0 13,6.5A2.5,2.5 0 0,0 15.5,9A2.5,2.5 0 0,0 18,6.5A2.5,2.5 0 0,0 15.5,4M4,4H9.5C9.19,4.79 9,5.64 9,6.5A6.5,6.5 0 0,0 15.5,13C16.18,13 16.83,12.89 17.46,12.69L20,15.23V16A2,2 0 0,1 18,18H13.9L10.2,21.71C10,21.89 9.76,22 9.5,22H9A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V6A2,2 0 0,1 4,4Z\";\nexport var mdiCommentSearchOutline = \"M4,4H9.5C9.25,4.64 9.09,5.31 9.04,6H4V16H10V19.08L13.08,16H18V13.23L20,15.23V16A2,2 0 0,1 18,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22H9A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V6C2,4.89 2.9,4 4,4M15.5,2C18,2 20,4 20,6.5C20,7.38 19.75,8.2 19.31,8.89L22.41,12L21,13.39L17.89,10.31C17.2,10.75 16.38,11 15.5,11C13,11 11,9 11,6.5C11,4 13,2 15.5,2M15.5,4A2.5,2.5 0 0,0 13,6.5A2.5,2.5 0 0,0 15.5,9A2.5,2.5 0 0,0 18,6.5A2.5,2.5 0 0,0 15.5,4Z\";\nexport var mdiCommentText = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M5,5V7H19V5H5M5,9V11H13V9H5M5,13V15H15V13H5Z\";\nexport var mdiCommentTextMultiple = \"M3,15H1V3A2,2 0 0,1 3,1H19V3H3V15M12,23A1,1 0 0,1 11,22V19H7A2,2 0 0,1 5,17V7A2,2 0 0,1 7,5H21A2,2 0 0,1 23,7V17A2,2 0 0,1 21,19H16.9L13.2,22.71C13,22.89 12.76,23 12.5,23H12M9,9V11H19V9H9M9,13V15H17V13H9Z\";\nexport var mdiCommentTextMultipleOutline = \"M12,23A1,1 0 0,1 11,22V19H7A2,2 0 0,1 5,17V7A2,2 0 0,1 7,5H21A2,2 0 0,1 23,7V17A2,2 0 0,1 21,19H16.9L13.2,22.71C13,22.89 12.76,23 12.5,23H12M13,17V20.08L16.08,17H21V7H7V17H13M3,15H1V3A2,2 0 0,1 3,1H19V3H3V15M9,9H19V11H9V9M9,13H17V15H9V13Z\";\nexport var mdiCommentTextOutline = \"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10M6,7H18V9H6V7M6,11H15V13H6V11Z\";\nexport var mdiCompare = \"M19,3H14V5H19V18L14,12V21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M10,18H5L10,12M10,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H10V23H12V1H10V3Z\";\nexport var mdiCompareHorizontal = \"M9 14H2V16H9V19L13 15L9 11V14M15 13V10H22V8H15V5L11 9L15 13Z\";\nexport var mdiCompareRemove = \"M19 5H14V3H19C20.1 3 21 3.9 21 5V13.4C20.4 13.2 19.7 13 19 13V5M10 1H12V23H10V21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H10V1M10 12L5 18H10V12M15.7 14L14 12V15.7C14.4 15 15 14.5 15.7 14M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiCompareVertical = \"M14 15V22H16V15H19L15 11L11 15H14M13 9H10V2H8V9H5L9 13L13 9Z\";\nexport var mdiCompass = \"M14.19,14.19L6,18L9.81,9.81L18,6M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,10.9A1.1,1.1 0 0,0 10.9,12A1.1,1.1 0 0,0 12,13.1A1.1,1.1 0 0,0 13.1,12A1.1,1.1 0 0,0 12,10.9Z\";\nexport var mdiCompassOff = \"M1,3.5L2.28,2.25L21.75,21.72L20.5,23L17.7,20.22C16.08,21.34 14.12,22 12,22A10,10 0 0,1 2,12C2,9.88 2.66,7.92 3.78,6.3L1,3.5M6,18L12.47,15L9,11.53L6,18M18,6L11.56,9L6.33,3.76C7.94,2.65 9.9,2 12,2A10,10 0 0,1 22,12C22,14.1 21.35,16.06 20.24,17.67L15,12.44L18,6Z\";\nexport var mdiCompassOffOutline = \"M1,3.5L2.28,2.25L21.75,21.72L20.5,23L17.7,20.22C16.08,21.34 14.12,22 12,22A10,10 0 0,1 2,12C2,9.88 2.66,7.92 3.78,6.3L1,3.5M7,17L9.39,11.91L5.23,7.74C4.45,9 4,10.44 4,12A8,8 0 0,0 12,20C13.56,20 15,19.55 16.26,18.77L12.09,14.61L7,17M17,7L14.62,12.05L11.95,9.38L17,7M12,2A10,10 0 0,1 22,12C22,14.1 21.35,16.06 20.24,17.67L18.8,16.22C19.56,15 20,13.55 20,12A8,8 0 0,0 12,4C10.45,4 9,4.44 7.78,5.2L6.33,3.76C7.94,2.65 9.9,2 12,2Z\";\nexport var mdiCompassOutline = \"M7,17L10.2,10.2L17,7L13.8,13.8L7,17M12,11.1A0.9,0.9 0 0,0 11.1,12A0.9,0.9 0 0,0 12,12.9A0.9,0.9 0 0,0 12.9,12A0.9,0.9 0 0,0 12,11.1M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiCompassRose = \"M15 9L12 0L9 9L0 12L9 15L12 24L15 15L24 12L15 9M4 12L10 10L11 12H4M12 20L10 14L12 13V20M12 4L14 10L12 11V4M14 14L13 12H20L14 14M8.7 17.3L5 19L6.7 15.3L8.3 15.8L8.7 17.3M17.3 15.3L19 19L15.3 17.3L15.8 15.7L17.3 15.3M6.7 8.7L5 5L8.7 6.7L8.2 8.2L6.7 8.7M15.3 6.7L19 5L17.3 8.7L15.7 8.2L15.3 6.7Z\";\nexport var mdiCompost = \"M18.92 14C18.64 15.97 17.53 17.68 15.96 18.76C15.76 17.93 14.53 17.25 12.92 17.06C13.09 15.87 13.44 14.76 13.68 14.12C14.06 14.36 14.5 14.5 15 14.5C18.55 14.5 18 8.5 18 8.5S17.5 9.5 16 9.5H15C13.62 9.5 12.5 10.62 12.5 12C12.5 12.5 12.64 12.93 12.87 13.31C13.53 12.62 14.24 12 15 11.5C13.68 12.83 12.67 14.5 12 16.1C11.37 14.87 10.58 13.93 10 13.5C10.47 13.7 10.91 14 11.33 14.3C11.44 14.06 11.5 13.79 11.5 13.5C11.45 10.77 7 11 7 11C7.31 11.42 7.5 11.95 7.5 12.5V13.5C7.5 14.6 8.4 15.5 9.5 15.5C10 15.5 10.45 15.32 10.8 15C11.03 15.63 11.2 16.35 11.29 17.04C9.57 17.19 8.25 17.89 8.04 18.77C6.21 17.5 5 15.39 5 13C5 9.14 8.14 6 12 6V9L17 5L12 1V4C7.03 4 3 8.03 3 13S7.03 22 12 22C16.63 22 20.44 18.5 20.94 14H18.92Z\";\nexport var mdiCone = \"M21.62 16.68H21.62L12.85 2.5C12.66 2.16 12.33 2 12 2C11.67 2 11.34 2.16 11.15 2.47L2.38 16.65H2.4C2.15 17.04 2 17.5 2 18C2 19.5 3.3 22 12 22C15.74 22 22 21.5 22 18C22 17.61 21.91 17.15 21.62 16.68M12 4.9L18 14.58C16.53 14.23 14.6 14 12 14C10.25 14 7.96 14.12 6 14.6L12 4.9M12 20C7.58 20 4 19.11 4 18C4 16.9 7.58 16 12 16S20 16.9 20 18C20 19.11 16.42 20 12 20Z\";\nexport var mdiConeOff = \"M10.5 7.31L9.06 5.86L11.15 2.47C11.34 2.16 11.67 2 12 2C12.33 2 12.66 2.16 12.85 2.5L21.62 16.68H21.62C21.91 17.15 22 17.61 22 18C22 18.25 21.96 18.5 21.9 18.7L17.73 14.53C17.81 14.55 17.9 14.56 18 14.58L12 4.9L10.5 7.31M22.11 21.46L20.84 22.73L19.17 21.06C17.03 21.83 14.11 22 12 22C3.3 22 2 19.5 2 18C2 17.5 2.15 17.04 2.4 16.65H2.38L7.11 9L1.11 3L2.39 1.73L22.11 21.46M6 14.6C7.96 14.12 10.25 14 12 14L12.11 14L8.56 10.45L6 14.6M17.55 19.44L14.19 16.08C13.5 16.03 12.76 16 12 16C7.58 16 4 16.9 4 18S7.58 20 12 20C14.16 20 16.11 19.79 17.55 19.44Z\";\nexport var mdiConnection = \"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z\";\nexport var mdiConsole = \"M20,19V7H4V19H20M20,3A2,2 0 0,1 22,5V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V5C2,3.89 2.9,3 4,3H20M13,17V15H18V17H13M9.58,13L5.57,9H8.4L11.7,12.3C12.09,12.69 12.09,13.33 11.7,13.72L8.42,17H5.59L9.58,13Z\";\nexport var mdiConsoleLine = \"M13,19V16H21V19H13M8.5,13L2.47,7H6.71L11.67,11.95C12.25,12.54 12.25,13.5 11.67,14.07L6.74,19H2.5L8.5,13Z\";\nexport var mdiConsoleNetwork = \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7A2,2 0 0,1 5,15V5A2,2 0 0,1 7,3H17M7,7L11,11L7,15H9.85L13.13,11.72C13.5,11.33 13.5,10.7 13.13,10.3L9.83,7H7M17,13H14V15H17V13Z\";\nexport var mdiConsoleNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M8,6.89L11.56,10.45L8,14H10.53L13.45,11.08C13.78,10.74 13.78,10.18 13.45,9.82L10.5,6.89H8M16,12.22H13.33V14H16V12.22Z\";\nexport var mdiConsolidate = \"M18 9H20V4H22V9A2 2 0 0 1 20 11H18V13L15 10L18 7M14 10A2 2 0 1 0 12 12A2 2 0 0 0 14 10M2 11V16H4V11H6V13L9 10L6 7V9H4A2 2 0 0 0 2 11M15 16L12 13L9 16H11V18A2 2 0 0 0 13 20H18V18H13V16\";\nexport var mdiContactlessPayment = \"M16.79,23C16.37,22.83 16.07,22.45 16,22C15.95,21.74 16,21.56 16.4,20.84C17.9,18.14 18.67,15.09 18.63,12C18.67,9 17.94,6.07 16.5,3.44C16.29,3 16.1,2.58 15.94,2.13C16,1.75 16.19,1.4 16.5,1.19C16.95,0.95 17.5,1 17.91,1.28C18.19,1.64 18.43,2 18.63,2.42C19.71,4.5 20.44,6.7 20.8,9C21.03,10.81 21.06,12.65 20.89,14.47C20.58,16.81 19.89,19.07 18.83,21.18C18.19,22.46 17.83,23 17.45,23C17.37,23 17.28,23 17.2,23C17.06,23 16.93,23 16.79,23V23M12.43,20.79C11.86,20.63 11.5,20.05 11.62,19.47C11.62,19.35 11.93,18.8 12.21,18.24C13.39,15.97 13.9,13.41 13.67,10.86C13.53,9.03 13,7.25 12.13,5.64C11.5,4.38 11.46,4.18 11.83,3.64C12.27,3.15 13,3.08 13.54,3.5C14.26,4.56 14.83,5.72 15.25,6.94C16.53,10.73 16.33,14.86 14.69,18.5C13.85,20.39 13.26,21 12.43,20.74V20.79M7.93,18.56C7.57,18.4 7.3,18.08 7.2,17.7C7.2,17.5 7.2,17.24 7.65,16.44C9.14,13.74 9.14,10.46 7.65,7.76C7,6.5 7,6.24 7.53,5.76C7.72,5.54 8,5.43 8.3,5.47C8.94,5.47 9.3,5.78 9.84,6.91C10.69,8.47 11.13,10.22 11.12,12C11.16,13.81 10.72,15.61 9.85,17.2C9.31,18.25 9.04,18.5 8.5,18.59C8.31,18.61 8.11,18.59 7.93,18.5V18.56M3.72,16.43C3.39,16.27 3.13,16 3,15.65C2.9,15.3 3,15 3.4,14.36C3.9,13.68 4.14,12.84 4.09,12C4.16,11.15 3.93,10.31 3.44,9.61C3.27,9.36 3.13,9.09 3,8.82C2.89,8.19 3.31,7.59 4,7.47C4.54,7.37 4.92,7.6 5.42,8.36C6.87,10.57 6.87,13.42 5.42,15.63C4.91,16.4 4.33,16.63 3.73,16.43H3.72Z\";\nexport var mdiContactlessPaymentCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M8.43 14.44L7.07 13.83C7.35 13.27 7.5 12.67 7.5 12.05C7.5 11.39 7.35 10.76 7.07 10.17L8.43 9.56C8.81 10.37 9 11.2 9 12.05C9 12.8 8.81 13.6 8.43 14.44M11.53 15.94L10.22 15.29C10.75 14.16 11 13 11 11.86C11 10.73 10.75 9.69 10.22 8.71L11.53 7.96C12.19 9.12 12.5 10.42 12.5 11.86C12.5 13.33 12.19 14.69 11.53 15.94M14.68 17.35L13.31 16.65C14.1 15.11 14.5 13.57 14.5 12S14.1 8.87 13.31 7.31L14.68 6.65C15.55 8.43 16 10.22 16 12C16 13.82 15.55 15.6 14.68 17.35Z\";\nexport var mdiContactlessPaymentCircleOutline = \"M12 4C16.41 4 20 7.59 20 12S16.41 20 12 20 4 16.41 4 12 7.59 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M8.43 14.44L7.07 13.83C7.35 13.27 7.5 12.67 7.5 12.05C7.5 11.39 7.35 10.76 7.07 10.17L8.43 9.56C8.81 10.37 9 11.2 9 12.05C9 12.8 8.81 13.6 8.43 14.44M11.53 15.94L10.22 15.29C10.75 14.16 11 13 11 11.86C11 10.73 10.75 9.69 10.22 8.71L11.53 7.96C12.19 9.12 12.5 10.42 12.5 11.86C12.5 13.33 12.19 14.69 11.53 15.94M14.68 17.35L13.31 16.65C14.1 15.11 14.5 13.57 14.5 12S14.1 8.87 13.31 7.31L14.68 6.65C15.55 8.43 16 10.22 16 12C16 13.82 15.55 15.6 14.68 17.35Z\";\nexport var mdiContacts = \"M20,0H4V2H20V0M4,24H20V22H4V24M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M12,6.75A2.25,2.25 0 0,1 14.25,9A2.25,2.25 0 0,1 12,11.25A2.25,2.25 0 0,1 9.75,9A2.25,2.25 0 0,1 12,6.75M17,17H7V15.5C7,13.83 10.33,13 12,13C13.67,13 17,13.83 17,15.5V17Z\";\nexport var mdiContactsOutline = \"M20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4M20 18H4V6H20V18M4 0H20V2H4M4 22H20V24H4M12 12C13.38 12 14.5 10.88 14.5 9.5S13.38 7 12 7 9.5 8.12 9.5 9.5 10.62 12 12 12M12 8.5C12.55 8.5 13 8.95 13 9.5S12.55 10.5 12 10.5 11 10.05 11 9.5 11.45 8.5 12 8.5M17 16C17 13.9 13.69 13 12 13S7 13.9 7 16V17H17V16M8.81 15.5C9.42 15 10.84 14.5 12 14.5C13.17 14.5 14.59 15 15.2 15.5H8.81Z\";\nexport var mdiContain = \"M2,3H8V5H4V19H8V21H2V3M7,17V15H9V17H7M11,17V15H13V17H11M15,17V15H17V17H15M22,3V21H16V19H20V5H16V3H22Z\";\nexport var mdiContainEnd = \"M7,17V15H9V17H7M11,17V15H13V17H11M15,17V15H17V17H15M22,3V21H16V19H20V5H16V3H22Z\";\nexport var mdiContainStart = \"M2,3H8V5H4V19H8V21H2V3M7,17V15H9V17H7M11,17V15H13V17H11M15,17V15H17V17H15Z\";\nexport var mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nexport var mdiContentCut = \"M19,3L13,9L15,11L22,4V3M12,12.5A0.5,0.5 0 0,1 11.5,12A0.5,0.5 0 0,1 12,11.5A0.5,0.5 0 0,1 12.5,12A0.5,0.5 0 0,1 12,12.5M6,20A2,2 0 0,1 4,18C4,16.89 4.9,16 6,16A2,2 0 0,1 8,18C8,19.11 7.1,20 6,20M6,8A2,2 0 0,1 4,6C4,4.89 4.9,4 6,4A2,2 0 0,1 8,6C8,7.11 7.1,8 6,8M9.64,7.64C9.87,7.14 10,6.59 10,6A4,4 0 0,0 6,2A4,4 0 0,0 2,6A4,4 0 0,0 6,10C6.59,10 7.14,9.87 7.64,9.64L10,12L7.64,14.36C7.14,14.13 6.59,14 6,14A4,4 0 0,0 2,18A4,4 0 0,0 6,22A4,4 0 0,0 10,18C10,17.41 9.87,16.86 9.64,16.36L12,14L19,21H22V20L9.64,7.64Z\";\nexport var mdiContentDuplicate = \"M11,17H4A2,2 0 0,1 2,15V3A2,2 0 0,1 4,1H16V3H4V15H11V13L15,16L11,19V17M19,21V7H8V13H6V7A2,2 0 0,1 8,5H19A2,2 0 0,1 21,7V21A2,2 0 0,1 19,23H8A2,2 0 0,1 6,21V19H8V21H19Z\";\nexport var mdiContentPaste = \"M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z\";\nexport var mdiContentSave = \"M15,9H5V5H15M12,19A3,3 0 0,1 9,16A3,3 0 0,1 12,13A3,3 0 0,1 15,16A3,3 0 0,1 12,19M17,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V7L17,3Z\";\nexport var mdiContentSaveAlert = \"M13 9H3V5H13M10 19C8.3 19 7 17.7 7 16S8.3 13 10 13 13 14.3 13 16 11.7 19 10 19M15 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H17C18.1 21 19 20.1 19 19V7L15 3M23 13H21V7H23V13M23 17H21V15H23V17Z\";\nexport var mdiContentSaveAlertOutline = \"M15 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H17C18.1 21 19 20.1 19 19V7L15 3M17 19H3V5H14.2L17 7.8V19M10 12C8.3 12 7 13.3 7 15S8.3 18 10 18 13 16.7 13 15 11.7 12 10 12M4 6H13V10H4V6M23 13H21V7H23V13M23 17H21V15H23V17Z\";\nexport var mdiContentSaveAll = \"M17,7V3H7V7H17M14,17A3,3 0 0,0 17,14A3,3 0 0,0 14,11A3,3 0 0,0 11,14A3,3 0 0,0 14,17M19,1L23,5V17A2,2 0 0,1 21,19H7C5.89,19 5,18.1 5,17V3A2,2 0 0,1 7,1H19M1,7H3V21H17V23H3A2,2 0 0,1 1,21V7Z\";\nexport var mdiContentSaveAllOutline = \"M1 7H3V21H17V23H3C1.9 23 1 22.11 1 21V7M19 1H7C5.89 1 5 1.9 5 3V17C5 18.1 5.89 19 7 19H21C22.1 19 23 18.1 23 17V5L19 1M21 17H7V3H18.17L21 5.83V17M14 10C12.34 10 11 11.34 11 13S12.34 16 14 16 17 14.66 17 13 15.66 10 14 10M8 4H17V8H8V4Z\";\nexport var mdiContentSaveCheck = \"M17 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11.81C11.42 20.34 11.17 19.6 11.07 18.84C9.5 18.31 8.66 16.6 9.2 15.03C9.61 13.83 10.73 13 12 13C12.44 13 12.88 13.1 13.28 13.29C15.57 11.5 18.83 11.59 21 13.54V7L17 3M15 9H5V5H15V9M15.75 21L13 18L14.16 16.84L15.75 18.43L19.34 14.84L20.5 16.25L15.75 21\";\nexport var mdiContentSaveCheckOutline = \"M14 12.8C13.5 12.31 12.78 12 12 12C10.34 12 9 13.34 9 15C9 16.31 9.84 17.41 11 17.82C11.07 15.67 12.27 13.8 14 12.8M11.09 19H5V5H16.17L19 7.83V12.35C19.75 12.61 20.42 13 21 13.54V7L17 3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H11.81C11.46 20.39 11.21 19.72 11.09 19M6 10H15V6H6V10M15.75 21L13 18L14.16 16.84L15.75 18.43L19.34 14.84L20.5 16.25L15.75 21\";\nexport var mdiContentSaveCog = \"M21 11.7V7L17 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11.7C11.4 20.3 11.2 19.6 11.1 18.8C9.9 18.4 9 17.3 9 16C9 14.3 10.3 13 12 13C12.3 13 12.6 13.1 12.9 13.2C14.2 11.8 16 11 18 11C19.1 11 20.1 11.2 21 11.7M15 9H5V5H15V9M21.7 18.6V17.6L22.8 16.8C22.9 16.7 23 16.6 22.9 16.5L21.9 14.8C21.9 14.7 21.7 14.7 21.6 14.7L20.4 15.2C20.1 15 19.8 14.8 19.5 14.7L19.3 13.4C19.3 13.3 19.2 13.2 19.1 13.2H17.1C16.9 13.2 16.8 13.3 16.8 13.4L16.6 14.7C16.3 14.9 16.1 15 15.8 15.2L14.6 14.7C14.5 14.7 14.4 14.7 14.3 14.8L13.3 16.5C13.3 16.6 13.3 16.7 13.4 16.8L14.5 17.6V18.6L13.4 19.4C13.3 19.5 13.2 19.6 13.3 19.7L14.3 21.4C14.4 21.5 14.5 21.5 14.6 21.5L15.8 21C16 21.2 16.3 21.4 16.6 21.5L16.8 22.8C16.9 22.9 17 23 17.1 23H19.1C19.2 23 19.3 22.9 19.3 22.8L19.5 21.5C19.8 21.3 20 21.2 20.3 21L21.5 21.4C21.6 21.4 21.7 21.4 21.8 21.3L22.8 19.6C22.9 19.5 22.9 19.4 22.8 19.4L21.7 18.6M18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5 19.5 17.2 19.5 18 18.8 19.5 18 19.5Z\";\nexport var mdiContentSaveCogOutline = \"M11.1 19C11.2 19.7 11.4 20.4 11.7 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H17L21 7V11.7C20.4 11.4 19.7 11.2 19 11.1V7.8L16.2 5H5V19H11.1M12 12C10.3 12 9 13.3 9 15C9 16.3 9.8 17.4 11 17.8C11.1 15.6 12.1 13.7 13.7 12.5C13.2 12.2 12.6 12 12 12M15 10V6H6V10H15M22.8 19.6L21.8 21.3C21.7 21.4 21.6 21.4 21.5 21.4L20.3 21C20 21.2 19.8 21.3 19.5 21.5L19.3 22.8C19.3 22.9 19.2 23 19.1 23H17.1C17 23 16.9 22.9 16.8 22.8L16.6 21.5C16.3 21.4 16 21.2 15.8 21L14.6 21.5C14.5 21.5 14.4 21.5 14.3 21.4L13.3 19.7C13.2 19.6 13.3 19.5 13.4 19.4L14.5 18.6V17.6L13.4 16.8C13.3 16.7 13.3 16.6 13.3 16.5L14.3 14.8C14.4 14.7 14.5 14.7 14.6 14.7L15.8 15.2C16.1 15 16.3 14.9 16.6 14.7L16.8 13.4C16.8 13.3 16.9 13.2 17.1 13.2H19.1C19.2 13.2 19.3 13.3 19.3 13.4L19.5 14.7C19.8 14.8 20.1 15 20.4 15.2L21.6 14.7C21.7 14.7 21.9 14.7 21.9 14.8L22.9 16.5C23 16.6 22.9 16.7 22.8 16.8L21.7 17.6V18.6L22.8 19.4C22.9 19.4 22.9 19.5 22.8 19.6M19.5 18C19.5 17.2 18.8 16.5 18 16.5S16.5 17.2 16.5 18 17.2 19.5 18 19.5C18.8 19.5 19.5 18.8 19.5 18Z\";\nexport var mdiContentSaveEdit = \"M10,19L10.14,18.86C8.9,18.5 8,17.36 8,16A3,3 0 0,1 11,13C12.36,13 13.5,13.9 13.86,15.14L20,9V7L16,3H4C2.89,3 2,3.9 2,5V19A2,2 0 0,0 4,21H10V19M4,5H14V9H4V5M20.04,12.13C19.9,12.13 19.76,12.19 19.65,12.3L18.65,13.3L20.7,15.35L21.7,14.35C21.92,14.14 21.92,13.79 21.7,13.58L20.42,12.3C20.31,12.19 20.18,12.13 20.04,12.13M18.07,13.88L12,19.94V22H14.06L20.12,15.93L18.07,13.88Z\";\nexport var mdiContentSaveEditOutline = \"M4 19H10V21H4C2.89 21 2 20.1 2 19V5C2 3.9 2.89 3 4 3H16L20 7V9.12L18 11.12V7.83L15.17 5H4V19M14 10V6H5V10H14M20.42 12.3C20.31 12.19 20.18 12.13 20.04 12.13C19.9 12.13 19.76 12.19 19.65 12.3L18.65 13.3L20.7 15.35L21.7 14.35C21.92 14.14 21.92 13.79 21.7 13.58L20.42 12.3M12 19.94V22H14.06L20.12 15.93L18.07 13.88L12 19.94M14 15C14 13.34 12.66 12 11 12S8 13.34 8 15 9.34 18 11 18C11.04 18 11.08 18 11.13 18L14 15.13C14 15.09 14 15.05 14 15\";\nexport var mdiContentSaveMinus = \"M17 3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H12.81C12.45 20.38 12.2 19.7 12.08 19L12 19C10.34 19 9 17.66 9 16S10.34 13 12 13C12.68 13 13.34 13.23 13.87 13.65C15 12.59 16.46 12 18 12C19.05 12 20.09 12.28 21 12.81V7L17 3M15 9H5V5H15V9M14 17V19H22V17H14Z\";\nexport var mdiContentSaveMinusOutline = \"M5 3C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H12.81C12.45 20.38 12.2 19.7 12.08 19H5V5H16.17L19 7.83V12.08C19.7 12.2 20.38 12.45 21 12.81V7L17 3H5M6 6V10H15V6H6M12 12C10.34 12 9 13.34 9 15S10.34 18 12 18C12 16.11 12.89 14.34 14.39 13.21C13.85 12.5 13 12 12 12M14 17V19H22V17H14Z\";\nexport var mdiContentSaveMove = \"M17,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H11.81C11.42,20.34 11.17,19.6 11.07,18.84C9.5,18.31 8.66,16.6 9.2,15.03C9.61,13.83 10.73,13 12,13C12.44,13 12.88,13.1 13.28,13.29C15.57,11.5 18.83,11.59 21,13.54V7L17,3M15,9H5V5H15V9M13,17H17V14L22,18.5L17,23V20H13V17\";\nexport var mdiContentSaveMoveOutline = \"M13 17H17V14L22 18.5L17 23V20H13V17M14 12.8C13.5 12.31 12.78 12 12 12C10.34 12 9 13.34 9 15C9 16.31 9.84 17.41 11 17.82C11.07 15.67 12.27 13.8 14 12.8M11.09 19H5V5H16.17L19 7.83V12.35C19.75 12.61 20.42 13 21 13.54V7L17 3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H11.81C11.46 20.39 11.21 19.72 11.09 19M6 10H15V6H6V10Z\";\nexport var mdiContentSaveOff = \"M8.2 5L6.2 3H17L21 7V17.8L12.2 9H15V5H8.2M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.9 21 3 20.11 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L22.11 21.46M7.11 9L5 6.89V9H7.11M14.89 16.78L11.22 13.11C9.95 13.46 9 14.61 9 16C9 17.66 10.34 19 12 19C13.39 19 14.54 18.05 14.89 16.78Z\";\nexport var mdiContentSaveOffOutline = \"M8.2 5L6.2 3H17L21 7V17.8L19 15.8V7.83L16.17 5H8.2M15 10V6H9.2L13.2 10H15M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.89 21 3 20.1 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L22.11 21.46M17.11 19L14.59 16.5C14.08 17.39 13.12 18 12 18C10.34 18 9 16.66 9 15C9 13.88 9.61 12.92 10.5 12.41L8.11 10H6V7.89L5 6.89V19H17.11Z\";\nexport var mdiContentSaveOutline = \"M17 3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V7L17 3M19 19H5V5H16.17L19 7.83V19M12 12C10.34 12 9 13.34 9 15S10.34 18 12 18 15 16.66 15 15 13.66 12 12 12M6 6H15V10H6V6Z\";\nexport var mdiContentSavePlus = \"M17 3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H12.81C12.45 20.38 12.2 19.7 12.08 19L12 19C10.34 19 9 17.66 9 16S10.34 13 12 13C12.68 13 13.34 13.23 13.87 13.65C15 12.59 16.46 12 18 12C19.05 12 20.09 12.28 21 12.81V7L17 3M15 9H5V5H15V9M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiContentSavePlusOutline = \"M5 3C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H12.81C12.45 20.38 12.2 19.7 12.08 19H5V5H16.17L19 7.83V12.08C19.7 12.2 20.38 12.45 21 12.81V7L17 3H5M6 6V10H15V6H6M12 12C10.34 12 9 13.34 9 15S10.34 18 12 18C12 16.11 12.89 14.34 14.39 13.21C13.85 12.5 13 12 12 12M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiContentSaveSettings = \"M15,8V4H5V8H15M12,18A3,3 0 0,0 15,15A3,3 0 0,0 12,12A3,3 0 0,0 9,15A3,3 0 0,0 12,18M17,2L21,6V18A2,2 0 0,1 19,20H5C3.89,20 3,19.1 3,18V4A2,2 0 0,1 5,2H17M11,22H13V24H11V22M7,22H9V24H7V22M15,22H17V24H15V22Z\";\nexport var mdiContentSaveSettingsOutline = \"M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22M17 2H5C3.89 2 3 2.9 3 4V18C3 19.1 3.89 20 5 20H19C20.1 20 21 19.1 21 18V6L17 2M19 18H5V4H16.17L19 6.83V18M12 11C10.34 11 9 12.34 9 14S10.34 17 12 17 15 15.66 15 14 13.66 11 12 11M6 5H15V9H6V5Z\";\nexport var mdiContrast = \"M4.38,20.9C3.78,20.71 3.3,20.23 3.1,19.63L19.63,3.1C20.23,3.3 20.71,3.78 20.9,4.38L4.38,20.9M20,16V18H13V16H20M3,6H6V3H8V6H11V8H8V11H6V8H3V6Z\";\nexport var mdiContrastBox = \"M17,15.5H12V17H17M19,19H5L19,5M5.5,7.5H7.5V5.5H9V7.5H11V9H9V11H7.5V9H5.5M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiContrastCircle = \"M12,20C9.79,20 7.79,19.1 6.34,17.66L17.66,6.34C19.1,7.79 20,9.79 20,12A8,8 0 0,1 12,20M6,8H8V6H9.5V8H11.5V9.5H9.5V11.5H8V9.5H6M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,16H17V14.5H12V16Z\";\nexport var mdiController = \"M7.97,16L5,19C4.67,19.3 4.23,19.5 3.75,19.5A1.75,1.75 0 0,1 2,17.75V17.5L3,10.12C3.21,7.81 5.14,6 7.5,6H16.5C18.86,6 20.79,7.81 21,10.12L22,17.5V17.75A1.75,1.75 0 0,1 20.25,19.5C19.77,19.5 19.33,19.3 19,19L16.03,16H7.97M7,8V10H5V11H7V13H8V11H10V10H8V8H7M16.5,8A0.75,0.75 0 0,0 15.75,8.75A0.75,0.75 0 0,0 16.5,9.5A0.75,0.75 0 0,0 17.25,8.75A0.75,0.75 0 0,0 16.5,8M14.75,9.75A0.75,0.75 0 0,0 14,10.5A0.75,0.75 0 0,0 14.75,11.25A0.75,0.75 0 0,0 15.5,10.5A0.75,0.75 0 0,0 14.75,9.75M18.25,9.75A0.75,0.75 0 0,0 17.5,10.5A0.75,0.75 0 0,0 18.25,11.25A0.75,0.75 0 0,0 19,10.5A0.75,0.75 0 0,0 18.25,9.75M16.5,11.5A0.75,0.75 0 0,0 15.75,12.25A0.75,0.75 0 0,0 16.5,13A0.75,0.75 0 0,0 17.25,12.25A0.75,0.75 0 0,0 16.5,11.5Z\";\nexport var mdiControllerClassic = \"M6,7H18A5,5 0 0,1 23,12A5,5 0 0,1 18,17C16.36,17 14.91,16.21 14,15H10C9.09,16.21 7.64,17 6,17A5,5 0 0,1 1,12A5,5 0 0,1 6,7M19.75,9.5A1.25,1.25 0 0,0 18.5,10.75A1.25,1.25 0 0,0 19.75,12A1.25,1.25 0 0,0 21,10.75A1.25,1.25 0 0,0 19.75,9.5M17.25,12A1.25,1.25 0 0,0 16,13.25A1.25,1.25 0 0,0 17.25,14.5A1.25,1.25 0 0,0 18.5,13.25A1.25,1.25 0 0,0 17.25,12M5,9V11H3V13H5V15H7V13H9V11H7V9H5Z\";\nexport var mdiControllerClassicOutline = \"M17.5,7A5.5,5.5 0 0,1 23,12.5A5.5,5.5 0 0,1 17.5,18C15.79,18 14.27,17.22 13.26,16H10.74C9.73,17.22 8.21,18 6.5,18A5.5,5.5 0 0,1 1,12.5A5.5,5.5 0 0,1 6.5,7H17.5M6.5,9A3.5,3.5 0 0,0 3,12.5A3.5,3.5 0 0,0 6.5,16C7.9,16 9.1,15.18 9.66,14H14.34C14.9,15.18 16.1,16 17.5,16A3.5,3.5 0 0,0 21,12.5A3.5,3.5 0 0,0 17.5,9H6.5M5.75,10.25H7.25V11.75H8.75V13.25H7.25V14.75H5.75V13.25H4.25V11.75H5.75V10.25M16.75,12.5A1,1 0 0,1 17.75,13.5A1,1 0 0,1 16.75,14.5A1,1 0 0,1 15.75,13.5A1,1 0 0,1 16.75,12.5M18.75,10.5A1,1 0 0,1 19.75,11.5A1,1 0 0,1 18.75,12.5A1,1 0 0,1 17.75,11.5A1,1 0 0,1 18.75,10.5Z\";\nexport var mdiControllerOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L12.73,16H7.97L5,19C4.67,19.3 4.23,19.5 3.75,19.5A1.75,1.75 0 0,1 2,17.75V17.5L3,10.12C3.1,9.09 3.53,8.17 4.19,7.46L2,5.27M5,10V11H7V13H8V11.27L6.73,10H5M16.5,6C18.86,6 20.79,7.81 21,10.12L22,17.5V17.75C22,18.41 21.64,19 21.1,19.28L7.82,6H16.5M16.5,8A0.75,0.75 0 0,0 15.75,8.75A0.75,0.75 0 0,0 16.5,9.5A0.75,0.75 0 0,0 17.25,8.75A0.75,0.75 0 0,0 16.5,8M14.75,9.75A0.75,0.75 0 0,0 14,10.5A0.75,0.75 0 0,0 14.75,11.25A0.75,0.75 0 0,0 15.5,10.5A0.75,0.75 0 0,0 14.75,9.75M18.25,9.75A0.75,0.75 0 0,0 17.5,10.5A0.75,0.75 0 0,0 18.25,11.25A0.75,0.75 0 0,0 19,10.5A0.75,0.75 0 0,0 18.25,9.75M16.5,11.5A0.75,0.75 0 0,0 15.75,12.25A0.75,0.75 0 0,0 16.5,13A0.75,0.75 0 0,0 17.25,12.25A0.75,0.75 0 0,0 16.5,11.5Z\";\nexport var mdiCookie = \"M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z\";\nexport var mdiCookieAlert = \"M18 10H16V9C16 8 15 8 15 8H13V7C13 6 12 6 12 6H11V4C11 3 10 3 10 3C5 3 1 7 1 12S5 21 10 21 19 17 19 12C19 11.5 19 11 18.9 10.5C18.6 10 18 10 18 10M4.5 13C3.7 13 3 12.3 3 11.5S3.7 10 4.5 10 6 10.7 6 11.5 5.3 13 4.5 13M6 7.5C6 6.7 6.7 6 7.5 6S9 6.7 9 7.5 8.3 9 7.5 9 6 8.3 6 7.5M9 19C8.2 19 7.5 18.3 7.5 17.5S8.2 16 9 16 10.5 16.7 10.5 17.5 9.8 19 9 19M9.5 14C8.7 14 8 13.3 8 12.5S8.7 11 9.5 11 11 11.7 11 12.5 10.3 14 9.5 14M14.5 16C13.7 16 13 15.3 13 14.5S13.7 13 14.5 13C15.3 13 16 13.7 16 14.5S15.3 16 14.5 16M21 15H23V17H21V15M23 7V13H21V7H23Z\";\nexport var mdiCookieAlertOutline = \"M16 14.5C16 15.3 15.3 16 14.5 16S13 15.3 13 14.5 13.7 13 14.5 13C15.3 13 16 13.7 16 14.5M18.9 10.5C19 11 19 11.5 19 12C19 17 15 21 10 21S1 17 1 12 5 3 10 3C10 3 11 3 11 4V6H12C12 6 13 6 13 7V8H15C15 8 16 8 16 9V10H18C18 10 18.6 10 18.9 10.5M17 12H15.5C14.7 12 14 11.3 14 10.5V10H12.5C11.7 10 11 9.3 11 8.5V8H10.5C9.7 8 9 7.3 9 6.5V5.1C5.9 5.5 3.5 8 3.1 11.1C3.2 10.5 3.8 10 4.5 10C5.3 10 6 10.7 6 11.5S5.3 13 4.5 13C3.7 13 3.1 12.4 3 11.6C3 12.1 3 12.6 3.1 13.1C3.5 15.8 5.6 18 8.2 18.7C7.8 18.4 7.5 18 7.5 17.5C7.5 16.7 8.2 16 9 16S10.5 16.7 10.5 17.5C10.5 18.2 10 18.8 9.3 19C13.5 19.4 17 16.1 17 12M9.5 11C8.7 11 8 11.7 8 12.5S8.7 14 9.5 14 11 13.3 11 12.5 10.3 11 9.5 11M9 7.5C9 6.7 8.3 6 7.5 6S6 6.7 6 7.5 6.7 9 7.5 9 9 8.3 9 7.5M21 17H23V15H21V17M21 7V13H23V7H21Z\";\nexport var mdiCookieCheck = \"M15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13C16.8 13 17.08 13.09 17.32 13.24C17.85 13.09 18.42 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 17.22 13.78 15.63 15 14.53M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5 11.83 19 11 19M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiCookieCheckOutline = \"M15 10H14.5C13.67 10 13 9.33 13 8.5V8H12.5C11.67 8 11 7.33 11 6.5V5.07C7.91 5.5 5.47 8 5.07 11.08C5.25 10.46 5.82 10 6.5 10C7.33 10 8 10.67 8 11.5S7.33 13 6.5 13C5.71 13 5.07 12.39 5 11.62C5 12.11 5 12.61 5.09 13.12C5.5 15.81 7.54 18.04 10.16 18.74C9.76 18.47 9.5 18 9.5 17.5C9.5 16.67 10.17 16 11 16S12.5 16.67 12.5 17.5C12.5 18.22 12 18.82 11.32 18.96C11.9 19 12.46 19 13 18.92C13 18.95 13 18.97 13 19C13 19.66 13.12 20.3 13.32 20.89C12.89 20.96 12.45 21 12 21C7.03 21 3 16.97 3 12S7.03 3 12 3C12 3 13 3 13 4V6H14C14 6 15 6 15 7V8H17C17 8 18 8 18 9V10H20C20 10 20.6 10 20.87 10.5C20.96 11 21 11.5 21 12C21 12.45 20.96 12.89 20.89 13.32C20.3 13.12 19.66 13 19 13C18.97 13 18.95 13 18.92 13C18.97 12.68 19 12.34 19 12H17.5C16.67 12 16 11.33 16 10.5V10H15M15 14.5C15 14.5 15 14.5 15 14.53C15.66 13.95 16.45 13.5 17.32 13.24C17.08 13.09 16.8 13 16.5 13C15.67 13 15 13.67 15 14.5M11.5 14C12.33 14 13 13.33 13 12.5S12.33 11 11.5 11 10 11.67 10 12.5 10.67 14 11.5 14M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiCookieClock = \"M19.97 10.24C19.95 10 19.91 9.74 19.87 9.5C19.6 9 19 9 19 9H17V8C17 7 16 7 16 7H14V6C14 5 13 5 13 5H12V3C12 2 11 2 11 2C6.03 2 2 6.03 2 11C2 15.71 5.62 19.57 10.23 19.96C11.5 21.8 13.61 23 16 23C19.87 23 23 19.87 23 16C23 13.61 21.8 11.5 19.97 10.24M11.64 10.53C10.87 11.15 10.23 11.92 9.78 12.81C9.32 12.55 9 12.06 9 11.5C9 10.67 9.67 10 10.5 10C10.96 10 11.36 10.21 11.64 10.53M5.5 12C4.67 12 4 11.33 4 10.5S4.67 9 5.5 9 7 9.67 7 10.5 6.33 12 5.5 12M7 6.5C7 5.67 7.67 5 8.5 5S10 5.67 10 6.5 9.33 8 8.5 8 7 7.33 7 6.5M8.5 16.5C8.5 16.04 8.71 15.64 9.03 15.36C9 15.57 9 15.79 9 16C9 16.62 9.09 17.22 9.24 17.79C8.8 17.5 8.5 17.05 8.5 16.5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z\";\nexport var mdiCookieClockOutline = \"M8.5 8C7.67 8 7 7.33 7 6.5S7.67 5 8.5 5 10 5.67 10 6.5 9.33 8 8.5 8M16.5 12H15V17L18.61 19.16L19.36 17.94L16.5 16.25V12M23 16C23 19.87 19.87 23 16 23C13.61 23 11.5 21.8 10.23 19.96C5.62 19.57 2 15.71 2 11C2 6.03 6.03 2 11 2C11 2 12 2 12 3V5H13C13 5 14 5 14 6V7H16C16 7 17 7 17 8V9H19C19 9 19.6 9 19.87 9.5C19.91 9.74 19.95 10 19.97 10.24C21.8 11.5 23 13.61 23 16M9.16 17.74C8.76 17.47 8.5 17 8.5 16.5C8.5 16.04 8.71 15.64 9.03 15.36C9.12 14.45 9.38 13.59 9.78 12.81C9.32 12.55 9 12.06 9 11.5C9 10.67 9.67 10 10.5 10C10.96 10 11.36 10.21 11.64 10.53C12.59 9.77 13.74 9.26 15 9.08V9H13.5C12.67 9 12 8.33 12 7.5V7H11.5C10.67 7 10 6.33 10 5.5V4.07C6.91 4.5 4.47 7 4.07 10.08C4.25 9.46 4.82 9 5.5 9C6.33 9 7 9.67 7 10.5S6.33 12 5.5 12C4.71 12 4.07 11.39 4 10.62C4 11.11 4 11.61 4.09 12.12C4.5 14.81 6.54 17.04 9.16 17.74M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiCookieCog = \"M21 12.29C21 12.19 21 12.1 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.1 21 12.19 21 12.29 21C12.11 20.36 12 19.69 12 19C12 18.86 12 18.73 12 18.59C11.75 18.84 11.4 19 11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16C11.59 16 12.1 16.35 12.34 16.84C13.25 14.03 15.89 12 19 12C19.69 12 20.36 12.11 21 12.29M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M9.5 9C8.67 9 8 8.33 8 7.5S8.67 6 9.5 6 11 6.67 11 7.5 10.33 9 9.5 9M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M22.7 19.6V18.6L23.8 17.8C23.9 17.7 24 17.6 23.9 17.5L22.9 15.8C22.9 15.7 22.7 15.7 22.6 15.7L21.4 16.2C21.1 16 20.8 15.8 20.5 15.7L20.3 14.4C20.3 14.3 20.2 14.2 20.1 14.2H18.1C17.9 14.2 17.8 14.3 17.8 14.4L17.6 15.7C17.3 15.9 17.1 16 16.8 16.2L15.6 15.7C15.5 15.7 15.4 15.7 15.3 15.8L14.3 17.5C14.3 17.6 14.3 17.7 14.4 17.8L15.5 18.6V19.6L14.4 20.4C14.3 20.5 14.2 20.6 14.3 20.7L15.3 22.4C15.4 22.5 15.5 22.5 15.6 22.5L16.8 22C17 22.2 17.3 22.4 17.6 22.5L17.8 23.8C17.9 23.9 18 24 18.1 24H20.1C20.2 24 20.3 23.9 20.3 23.8L20.5 22.5C20.8 22.3 21 22.2 21.3 22L22.5 22.4C22.6 22.4 22.7 22.4 22.8 22.3L23.8 20.6C23.9 20.5 23.9 20.4 23.8 20.4L22.7 19.6M19 20.5C18.2 20.5 17.5 19.8 17.5 19S18.2 17.5 19 17.5 20.5 18.2 20.5 19 19.8 20.5 19 20.5Z\";\nexport var mdiCookieCogOutline = \"M14.5 10C13.67 10 13 9.33 13 8.5V8H12.5C11.67 8 11 7.33 11 6.5V5.07C7.91 5.5 5.47 8 5.07 11.08C5.25 10.46 5.82 10 6.5 10C7.33 10 8 10.67 8 11.5S7.33 13 6.5 13C5.71 13 5.07 12.39 5 11.62C5 12.11 5 12.61 5.09 13.12C5.5 15.81 7.54 18.04 10.16 18.74C9.76 18.47 9.5 18 9.5 17.5C9.5 16.67 10.17 16 11 16C11.59 16 12.1 16.35 12.34 16.84C12.16 17.39 12.06 17.97 12 18.57C11.83 18.76 11.6 18.9 11.32 18.96C11.55 19 11.78 19 12 19V19C12 19.69 12.11 20.36 12.29 21C12.19 21 12.1 21 12 21C7.03 21 3 16.97 3 12S7.03 3 12 3C12 3 13 3 13 4V6H14C14 6 15 6 15 7V8H17C17 8 18 8 18 9V10H20C20 10 20.6 10 20.87 10.5C20.96 11 21 11.5 21 12C21 12.1 21 12.19 21 12.29C20.36 12.11 19.69 12 19 12H17.5C16.67 12 16 11.33 16 10.5V10H14.5M11.5 11C10.67 11 10 11.67 10 12.5S10.67 14 11.5 14 13 13.33 13 12.5 12.33 11 11.5 11M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiCookieEdit = \"M15.1 15.03C15.04 14.86 15 14.69 15 14.5C15 13.67 15.67 13 16.5 13C16.69 13 16.86 13.04 17.03 13.1L19.39 10.74C19.69 10.44 20.05 10.24 20.44 10.12C20.21 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12C3 16.63 6.5 20.44 11 20.94V19.13L11.14 19C11.1 19 11.05 19 11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5C12.5 17.55 12.5 17.6 12.5 17.64L15.1 15.03M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M9.5 9C8.67 9 8 8.33 8 7.5S8.67 6 9.5 6 11 6.67 11 7.5 10.33 9 9.5 9M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83Z\";\nexport var mdiCookieEditOutline = \"M9.5 6C10.33 6 11 6.67 11 7.5S10.33 9 9.5 9 8 8.33 8 7.5 8.67 6 9.5 6M11.5 11C10.67 11 10 11.67 10 12.5S10.67 14 11.5 14 13 13.33 13 12.5 12.33 11 11.5 11M11 16C10.17 16 9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H16V10.5C16 11.33 16.67 12 17.5 12H18.13L19.39 10.74C19.69 10.44 20.05 10.24 20.44 10.12C20.21 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12C3 16.63 6.5 20.44 11 20.94V19.13L12.47 17.66C12.5 17.6 12.5 17.55 12.5 17.5C12.5 16.67 11.83 16 11 16M15 14.5C15 14.69 15.04 14.86 15.1 15.03L17.03 13.1C16.86 13.04 16.69 13 16.5 13C15.67 13 15 13.67 15 14.5M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiCookieLock = \"M18.5 11C19.42 11 20.27 11.29 21 11.77C21 11.35 20.95 10.92 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.34 21 12.67 21 13 20.94V17C13 16.08 13.42 15.26 14.07 14.71C14.45 12.6 16.29 11 18.5 11M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5 11.83 19 11 19M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M21 16V15.5C21 14.12 19.88 13 18.5 13S16 14.12 16 15.5V16C15.45 16 15 16.45 15 17V21C15 21.55 15.45 22 16 22H21C21.55 22 22 21.55 22 21V17C22 16.45 21.55 16 21 16M20 16H17V15.5C17 14.67 17.67 14 18.5 14S20 14.67 20 15.5V16Z\";\nexport var mdiCookieLockOutline = \"M10 12.5C10 11.67 10.67 11 11.5 11S13 11.67 13 12.5 12.33 14 11.5 14 10 13.33 10 12.5M16 10V10.5C16 10.9 16.16 11.26 16.41 11.53C17.04 11.2 17.75 11 18.5 11C19.42 11 20.27 11.29 21 11.77C21 11.35 20.95 10.92 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.34 21 12.67 21 13 20.94V18.92C12.46 19 11.9 19 11.32 18.96C12 18.82 12.5 18.22 12.5 17.5C12.5 16.67 11.83 16 11 16S9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H16M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M22 17V21C22 21.55 21.55 22 21 22H16C15.45 22 15 21.55 15 21V17C15 16.45 15.45 16 16 16V15.5C16 14.12 17.12 13 18.5 13S21 14.12 21 15.5V16C21.55 16 22 16.45 22 17M20 15.5C20 14.67 19.33 14 18.5 14S17 14.67 17 15.5V16H20V15.5Z\";\nexport var mdiCookieMinus = \"M15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13C16.8 13 17.08 13.09 17.32 13.24C17.85 13.09 18.42 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 17.22 13.78 15.63 15 14.53M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5 11.83 19 11 19M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M23 18V20H15V18H23Z\";\nexport var mdiCookieMinusOutline = \"M15 10H14.5C13.67 10 13 9.33 13 8.5V8H12.5C11.67 8 11 7.33 11 6.5V5.07C7.91 5.5 5.47 8 5.07 11.08C5.25 10.46 5.82 10 6.5 10C7.33 10 8 10.67 8 11.5S7.33 13 6.5 13C5.71 13 5.07 12.39 5 11.62C5 12.11 5 12.61 5.09 13.12C5.5 15.81 7.54 18.04 10.16 18.74C9.76 18.47 9.5 18 9.5 17.5C9.5 16.67 10.17 16 11 16S12.5 16.67 12.5 17.5C12.5 18.22 12 18.82 11.32 18.96C11.9 19 12.46 19 13 18.92C13 18.95 13 18.97 13 19C13 19.66 13.12 20.3 13.32 20.89C12.89 20.96 12.45 21 12 21C7.03 21 3 16.97 3 12S7.03 3 12 3C12 3 13 3 13 4V6H14C14 6 15 6 15 7V8H17C17 8 18 8 18 9V10H20C20 10 20.6 10 20.87 10.5C20.96 11 21 11.5 21 12C21 12.45 20.96 12.89 20.89 13.32C20.3 13.12 19.66 13 19 13C18.97 13 18.95 13 18.92 13C18.97 12.68 19 12.34 19 12H17.5C16.67 12 16 11.33 16 10.5V10H15M15 14.5C15 14.5 15 14.5 15 14.53C15.66 13.95 16.45 13.5 17.32 13.24C17.08 13.09 16.8 13 16.5 13C15.67 13 15 13.67 15 14.5M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M11.5 14C12.33 14 13 13.33 13 12.5S12.33 11 11.5 11 10 11.67 10 12.5 10.67 14 11.5 14M15 18V20H23V18H15Z\";\nexport var mdiCookieOff = \"M9.25 6.05L7.45 4.25C8.79 3.46 10.34 3 12 3C12 3 13 3 13 4V6H14C14 6 15 6 15 7V8H17C17 8 18 8 18 9V10H20C20 10 20.6 10 20.87 10.5C20.96 11 21 11.5 21 12C21 13.66 20.54 15.22 19.75 16.55L17.95 14.75C17.97 14.67 18 14.59 18 14.5C18 13.67 17.33 13 16.5 13C16.41 13 16.33 13.03 16.25 13.05L10.95 7.75C10.97 7.67 11 7.59 11 7.5C11 6.67 10.33 6 9.5 6C9.41 6 9.33 6.03 9.25 6.05M22.11 21.46L20.84 22.73L17.34 19.23C15.85 20.34 14 21 12 21C7.03 21 3 16.97 3 12C3 10 3.66 8.15 4.77 6.66L1.11 3L2.39 1.73L22.11 21.46M8 11.5C8 10.67 7.33 10 6.5 10S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5M10 12.5C10 13.33 10.67 14 11.5 14C11.68 14 11.85 13.96 12 13.9L10.1 12C10.04 12.15 10 12.32 10 12.5M12.5 17.5C12.5 16.67 11.83 16 11 16S9.5 16.67 9.5 17.5 10.17 19 11 19 12.5 18.33 12.5 17.5Z\";\nexport var mdiCookieOffOutline = \"M8.93 5.73L7.45 4.25C8.79 3.46 10.34 3 12 3C12 3 13 3 13 4V6H14C14 6 15 6 15 7V8H17C17 8 18 8 18 9V10H20C20 10 20.6 10 20.87 10.5C20.96 11 21 11.5 21 12C21 13.66 20.54 15.22 19.75 16.55L18.28 15.08C18.74 14.15 19 13.11 19 12H17.5C16.67 12 16 11.33 16 10.5V10H14.5C13.67 10 13 9.33 13 8.5V8H12.5C11.67 8 11 7.33 11 6.5V5.07C10.26 5.18 9.57 5.41 8.93 5.73M9.25 6.05L10.95 7.75C10.97 7.67 11 7.59 11 7.5C11 6.67 10.33 6 9.5 6C9.41 6 9.33 6.03 9.25 6.05M16.25 13.05L17.95 14.75C17.97 14.67 18 14.59 18 14.5C18 13.67 17.33 13 16.5 13C16.41 13 16.33 13.03 16.25 13.05M22.11 21.46L20.84 22.73L17.34 19.23C15.85 20.34 14 21 12 21C7.03 21 3 16.97 3 12C3 10 3.66 8.15 4.77 6.66L1.11 3L2.39 1.73L22.11 21.46M15.9 17.79L12 13.9C11.85 13.96 11.68 14 11.5 14C10.67 14 10 13.33 10 12.5C10 12.32 10.04 12.15 10.1 12L6.21 8.1C5.62 9 5.21 10 5.07 11.08C5.25 10.46 5.82 10 6.5 10C7.33 10 8 10.67 8 11.5S7.33 13 6.5 13C5.71 13 5.07 12.39 5 11.62C5 12.11 5 12.61 5.09 13.12C5.5 15.81 7.54 18.04 10.16 18.74C9.76 18.47 9.5 18 9.5 17.5C9.5 16.67 10.17 16 11 16S12.5 16.67 12.5 17.5C12.5 18.22 12 18.82 11.32 18.96C13.03 19.12 14.61 18.66 15.9 17.79Z\";\nexport var mdiCookieOutline = \"M20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C16.97 21 21 16.97 21 12C21 11.5 20.96 11 20.87 10.5M11.32 18.96C12 18.82 12.5 18.22 12.5 17.5C12.5 16.67 11.83 16 11 16S9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H16V10.5C16 11.33 16.67 12 17.5 12H19C19 16.08 15.5 19.36 11.32 18.96M9.5 9C8.67 9 8 8.33 8 7.5S8.67 6 9.5 6 11 6.67 11 7.5 10.33 9 9.5 9M13 12.5C13 13.33 12.33 14 11.5 14S10 13.33 10 12.5 10.67 11 11.5 11 13 11.67 13 12.5M18 14.5C18 15.33 17.33 16 16.5 16S15 15.33 15 14.5 15.67 13 16.5 13 18 13.67 18 14.5Z\";\nexport var mdiCookiePlus = \"M15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13C16.8 13 17.08 13.09 17.32 13.24C17.85 13.09 18.42 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 17.22 13.78 15.63 15 14.53M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5 11.83 19 11 19M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiCookiePlusOutline = \"M16.5 13C16.8 13 17.08 13.09 17.32 13.24C16.45 13.5 15.66 13.95 15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13M16 10V10.5C16 11.33 16.67 12 17.5 12H19C19 12.34 18.97 12.68 18.92 13C18.95 13 18.97 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 18.97 13 18.95 13 18.92C12.46 19 11.9 19 11.32 18.96C12 18.82 12.5 18.22 12.5 17.5C12.5 16.67 11.83 16 11 16S9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H16M11.5 14C12.33 14 13 13.33 13 12.5S12.33 11 11.5 11 10 11.67 10 12.5 10.67 14 11.5 14M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiCookieRefresh = \"M11 16C11.53 16 12 16.28 12.26 16.69C13.04 14 15.54 12 18.5 12C19.38 12 20.21 12.18 21 12.5C21 12.33 21 12.17 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.17 21 12.33 21 12.5 21C12.19 20.24 12 19.44 12 18.61C11.74 18.85 11.39 19 11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16M13 12.5C13 13.33 12.33 14 11.5 14S10 13.33 10 12.5 10.67 11 11.5 11 13 11.67 13 12.5M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M18 18.5L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18Z\";\nexport var mdiCookieRefreshOutline = \"M13 12.5C13 13.33 12.33 14 11.5 14S10 13.33 10 12.5 10.67 11 11.5 11 13 11.67 13 12.5M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M15 10H16V10.5C16 11.33 16.67 12 17.5 12H19L19 12.03C19.69 12.09 20.36 12.24 21 12.5C21 12.33 21 12.17 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.17 21 12.33 21 12.5 21C12.24 20.36 12.09 19.69 12.03 19C11.8 19 11.56 19 11.32 18.96C11.59 18.9 11.81 18.76 12 18.58C12 18.55 12 18.53 12 18.5C12 17.87 12.1 17.27 12.26 16.69C12 16.28 11.53 16 11 16C10.17 16 9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H15M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiCookieRemove = \"M16.5 13C16.8 13 17.08 13.09 17.32 13.24C17.85 13.09 18.42 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 17.22 13.78 15.63 15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13M6.5 13C5.67 13 5 12.33 5 11.5S5.67 10 6.5 10 8 10.67 8 11.5 7.33 13 6.5 13M8 7.5C8 6.67 8.67 6 9.5 6S11 6.67 11 7.5 10.33 9 9.5 9 8 8.33 8 7.5M11 19C10.17 19 9.5 18.33 9.5 17.5S10.17 16 11 16 12.5 16.67 12.5 17.5 11.83 19 11 19M11.5 14C10.67 14 10 13.33 10 12.5S10.67 11 11.5 11 13 11.67 13 12.5 12.33 14 11.5 14M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiCookieRemoveOutline = \"M17.32 13.24C16.45 13.5 15.66 13.95 15 14.53C15 14.5 15 14.5 15 14.5C15 13.67 15.67 13 16.5 13C16.8 13 17.08 13.09 17.32 13.24M16 10V10.5C16 11.33 16.67 12 17.5 12H19C19 12.34 18.97 12.68 18.92 13C18.95 13 18.97 13 19 13C19.66 13 20.3 13.12 20.89 13.32C20.96 12.89 21 12.45 21 12C21 11.5 20.96 11 20.87 10.5C20.6 10 20 10 20 10H18V9C18 8 17 8 17 8H15V7C15 6 14 6 14 6H13V4C13 3 12 3 12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C12.45 21 12.89 20.96 13.32 20.89C13.12 20.3 13 19.66 13 19C13 18.97 13 18.95 13 18.92C12.46 19 11.9 19 11.32 18.96C12 18.82 12.5 18.22 12.5 17.5C12.5 16.67 11.83 16 11 16S9.5 16.67 9.5 17.5C9.5 18 9.76 18.47 10.16 18.74C7.54 18.04 5.5 15.81 5.09 13.12C5 12.61 5 12.11 5 11.62C5.07 12.39 5.71 13 6.5 13C7.33 13 8 12.33 8 11.5S7.33 10 6.5 10C5.82 10 5.25 10.46 5.07 11.08C5.47 8 7.91 5.5 11 5.07V6.5C11 7.33 11.67 8 12.5 8H13V8.5C13 9.33 13.67 10 14.5 10H16M11 7.5C11 6.67 10.33 6 9.5 6S8 6.67 8 7.5 8.67 9 9.5 9 11 8.33 11 7.5M11.5 14C12.33 14 13 13.33 13 12.5S12.33 11 11.5 11 10 11.67 10 12.5 10.67 14 11.5 14M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiCookieSettings = \"M20.87 9.5C20.6 9 20 9 20 9H18V8C18 7 17 7 17 7H15V6C15 5 14 5 14 5H13V3C13 2 12 2 12 2C7.03 2 3 6.03 3 11S7.03 20 12 20 21 15.97 21 11C21 10.5 20.96 10 20.87 9.5M6.5 12C5.67 12 5 11.33 5 10.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12M8 6.5C8 5.67 8.67 5 9.5 5S11 5.67 11 6.5 10.33 8 9.5 8 8 7.33 8 6.5M11 18C10.17 18 9.5 17.33 9.5 16.5S10.17 15 11 15 12.5 15.67 12.5 16.5 11.83 18 11 18M11.5 13C10.67 13 10 12.33 10 11.5S10.67 10 11.5 10 13 10.67 13 11.5 12.33 13 11.5 13M16.5 15C15.67 15 15 14.33 15 13.5S15.67 12 16.5 12 18 12.67 18 13.5 17.33 15 16.5 15M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15V22Z\";\nexport var mdiCookieSettingsOutline = \"M13 11.5C13 12.33 12.33 13 11.5 13S10 12.33 10 11.5 10.67 10 11.5 10 13 10.67 13 11.5M11 6.5C11 5.67 10.33 5 9.5 5S8 5.67 8 6.5 8.67 8 9.5 8 11 7.33 11 6.5M21 11C21 15.97 16.97 20 12 20S3 15.97 3 11 7.03 2 12 2C12 2 13 2 13 3V5H14C14 5 15 5 15 6V7H17C17 7 18 7 18 8V9H20C20 9 20.6 9 20.87 9.5C20.96 10 21 10.5 21 11M19 11H17.5C16.67 11 16 10.33 16 9.5V9H14.5C13.67 9 13 8.33 13 7.5V7H12.5C11.67 7 11 6.33 11 5.5V4.07C7.91 4.5 5.47 7 5.07 10.08C5.25 9.46 5.82 9 6.5 9C7.33 9 8 9.67 8 10.5S7.33 12 6.5 12C5.71 12 5.07 11.39 5 10.62C5 11.11 5 11.61 5.09 12.12C5.5 14.81 7.54 17.04 10.16 17.74C9.76 17.47 9.5 17 9.5 16.5C9.5 15.67 10.17 15 11 15S12.5 15.67 12.5 16.5C12.5 17.22 12 17.82 11.32 17.96C15.5 18.36 19 15.08 19 11M16.5 12C15.67 12 15 12.67 15 13.5S15.67 15 16.5 15 18 14.33 18 13.5 17.33 12 16.5 12M7 24H9V22H7V24M15 24H17V22H15V24M11 24H13V22H11V24Z\";\nexport var mdiCoolantTemperature = \"M11.5,1A1.5,1.5 0 0,0 10,2.5V14.5C9.37,14.97 9,15.71 9,16.5A2.5,2.5 0 0,0 11.5,19A2.5,2.5 0 0,0 14,16.5C14,15.71 13.63,15 13,14.5V13H17V11H13V9H17V7H13V5H17V3H13V2.5A1.5,1.5 0 0,0 11.5,1M0,15V17C0.67,17 0.79,17.21 1.29,17.71C1.79,18.21 2.67,19 4,19C5.33,19 6.21,18.21 6.71,17.71C6.82,17.59 6.91,17.5 7,17.41V15.16C6.21,15.42 5.65,15.93 5.29,16.29C4.79,16.79 4.67,17 4,17C3.33,17 3.21,16.79 2.71,16.29C2.21,15.79 1.33,15 0,15M16,15V17C16.67,17 16.79,17.21 17.29,17.71C17.79,18.21 18.67,19 20,19C21.33,19 22.21,18.21 22.71,17.71C23.21,17.21 23.33,17 24,17V15C22.67,15 21.79,15.79 21.29,16.29C20.79,16.79 20.67,17 20,17C19.33,17 19.21,16.79 18.71,16.29C18.21,15.79 17.33,15 16,15M8,20C6.67,20 5.79,20.79 5.29,21.29C4.79,21.79 4.67,22 4,22C3.33,22 3.21,21.79 2.71,21.29C2.35,20.93 1.79,20.42 1,20.16V22.41C1.09,22.5 1.18,22.59 1.29,22.71C1.79,23.21 2.67,24 4,24C5.33,24 6.21,23.21 6.71,22.71C7.21,22.21 7.33,22 8,22C8.67,22 8.79,22.21 9.29,22.71C9.73,23.14 10.44,23.8 11.5,23.96C11.66,24 11.83,24 12,24C13.33,24 14.21,23.21 14.71,22.71C15.21,22.21 15.33,22 16,22C16.67,22 16.79,22.21 17.29,22.71C17.79,23.21 18.67,24 20,24C21.33,24 22.21,23.21 22.71,22.71C22.82,22.59 22.91,22.5 23,22.41V20.16C22.21,20.42 21.65,20.93 21.29,21.29C20.79,21.79 20.67,22 20,22C19.33,22 19.21,21.79 18.71,21.29C18.21,20.79 17.33,20 16,20C14.67,20 13.79,20.79 13.29,21.29C12.79,21.79 12.67,22 12,22C11.78,22 11.63,21.97 11.5,21.92C11.22,21.82 11.05,21.63 10.71,21.29C10.21,20.79 9.33,20 8,20Z\";\nexport var mdiCopyleft = \"M13.92 10.86C14.04 11.85 14.12 13.1 13.62 14C13.5 14.27 13.28 14.5 13.03 14.64C12.8 14.79 12.5 14.86 12.14 14.87C11.72 14.87 11.33 14.73 11 14.47C10.87 14.34 10.75 14.19 10.66 14C10.57 13.83 10.5 13.64 10.5 13.43H8.72C8.73 13.84 8.84 14.22 9 14.58C9.2 14.94 9.45 15.25 9.76 15.5C11.2 16.83 13.85 16.62 15.06 15.13C16.37 13.46 16.34 10.54 15.05 8.87C13.83 7.35 11.13 7.16 9.68 8.5C9.38 8.78 9.15 9.12 9 9.5C8.81 9.9 8.72 10.33 8.7 10.8H10.5C10.5 10.37 10.69 9.94 10.97 9.63C11.26 9.34 11.67 9.14 12.12 9.14C12.81 9.15 13.33 9.44 13.62 10C13.76 10.24 13.87 10.53 13.92 10.86M12 2C6.5 2 2 6.5 2 12C2.53 25.26 21.47 25.27 22 12C22 6.5 17.5 2 12 2M4 12C4.44 1.39 19.56 1.39 20 12C20 16.41 16.41 20 12 20S4 16.41 4 12Z\";\nexport var mdiCopyright = \"M10.08 10.86C10.13 10.53 10.24 10.24 10.38 10C10.68 9.44 11.19 9.15 11.88 9.14C12.33 9.14 12.74 9.34 13.03 9.63C13.31 9.94 13.5 10.37 13.5 10.8H15.3C15.28 10.33 15.19 9.9 15 9.5C14.85 9.12 14.62 8.78 14.32 8.5C12.87 7.16 10.18 7.35 8.95 8.87C7.66 10.54 7.63 13.46 8.94 15.13C10.15 16.62 12.8 16.83 14.24 15.5C14.55 15.25 14.8 14.94 15 14.58C15.16 14.22 15.27 13.84 15.28 13.43H13.5C13.5 13.64 13.43 13.83 13.34 14C13.25 14.19 13.13 14.34 13 14.47C12.67 14.73 12.28 14.87 11.86 14.87C11.5 14.86 11.2 14.79 10.97 14.64C10.72 14.5 10.5 14.27 10.38 14C9.88 13.1 9.96 11.85 10.08 10.86M12 2C6.5 2 2 6.5 2 12C2.53 25.27 21.5 25.26 22 12C22 6.5 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12C4.44 1.39 19.56 1.39 20 12C20 16.41 16.41 20 12 20Z\";\nexport var mdiCordova = \"M20.18,21.55H16.94L17.17,18.82H15.58L15.35,21.55H8.65L8.42,18.82H6.83L7.06,21.55H3.82L2,9.73L6.55,2.45H17.45L22,9.73L20.18,21.55M16.55,6.09H13.62L13.82,7.45H10.18L10.38,6.09H7.45L5.64,9.73L6.55,17H17.45L18.36,9.73L16.55,6.09M14.95,14.59C14.7,14.59 14.5,13.83 14.5,12.9C14.5,11.96 14.7,11.2 14.95,11.2C15.21,11.2 15.41,11.96 15.41,12.9C15.41,13.83 15.21,14.59 14.95,14.59M9.22,14.73C8.96,14.73 8.76,13.97 8.76,13.04C8.76,12.1 8.96,11.35 9.22,11.35C9.47,11.35 9.67,12.1 9.67,13.04C9.67,13.97 9.47,14.73 9.22,14.73Z\";\nexport var mdiCorn = \"M11,12H8.82C9.62,12.5 10.35,13.07 11,13.68V12M7,11C7.27,5.88 9.37,2 12,2C14.66,2 16.77,5.94 17,11.12C18.5,10.43 20.17,10 22,10C16.25,12.57 18.25,22 12,22C6,22 7.93,12.57 2,10C3.82,10 5.5,10.4 7,11M11,11V9H8.24L8.03,11H11M11,8V6H9.05C8.8,6.6 8.6,7.27 8.43,8H11M11,5V3.3C10.45,3.63 9.95,4.22 9.5,5H11M12,3V5H13V6H12V8H14V9H12V11H15V12H12V14H14V15H12.23C13.42,16.45 14.15,18 14.32,19.23C15.31,17.56 15.96,14.84 16,11.76C15.94,7 14.13,3 12,3Z\";\nexport var mdiCornOff = \"M22.1 21.5L2.4 1.7L1.1 3L7.2 9.1C7.1 9.7 7 10.3 7 11C5.5 10.4 3.8 10 2 10C7.9 12.6 6 22 12 22C14.5 22 15.7 20.5 16.6 18.5L20.9 22.8L22.1 21.5M8.1 10L9.1 11H8L8.1 10M8.8 12H10.1L11 12.9V13.7C10.3 13.1 9.6 12.5 8.8 12M14.3 19.2C14.1 18 13.4 16.4 12.2 15H13.1L15.2 17.1C15 17.9 14.7 18.6 14.3 19.2M11 6V7.8L12.2 9H14V8H12V6H13V5H12V3C14.1 3 15.9 7 16 11.8V12.8L18 14.8C18.8 12.8 19.9 10.9 22 10C20.2 10 18.5 10.4 17 11.1C16.8 5.9 14.7 2 12 2C10.5 2 9.2 3.2 8.3 5.1L9.2 6H11M11 3.3V5H9.5C10 4.2 10.5 3.6 11 3.3M15 11.8L14.2 11H15V11.8Z\";\nexport var mdiCosineWave = \"M22 2V4C20.26 4 19 8.58 17.96 12.27C16.57 17.27 15.26 22 12 22C8.74 22 7.43 17.27 6.04 12.27C5 8.58 3.74 4 2 4V2C5.26 2 6.57 6.73 7.96 11.73C9 15.42 10.26 20 12 20C13.74 20 15 15.42 16.04 11.73C17.43 6.73 18.74 2 22 2Z\";\nexport var mdiCounter = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H11V6H4M20,18V6H18.76C19,6.54 18.95,7.07 18.95,7.13C18.88,7.8 18.41,8.5 18.24,8.75L15.91,11.3L19.23,11.28L19.24,12.5L14.04,12.47L14,11.47C14,11.47 17.05,8.24 17.2,7.95C17.34,7.67 17.91,6 16.5,6C15.27,6.05 15.41,7.3 15.41,7.3L13.87,7.31C13.87,7.31 13.88,6.65 14.25,6H13V18H15.58L15.57,17.14L16.54,17.13C16.54,17.13 17.45,16.97 17.46,16.08C17.5,15.08 16.65,15.08 16.5,15.08C16.37,15.08 15.43,15.13 15.43,15.95H13.91C13.91,15.95 13.95,13.89 16.5,13.89C19.1,13.89 18.96,15.91 18.96,15.91C18.96,15.91 19,17.16 17.85,17.63L18.37,18H20M8.92,16H7.42V10.2L5.62,10.76V9.53L8.76,8.41H8.92V16Z\";\nexport var mdiCountertop = \"M18 10V7C18 5.34 16.66 4 15 4S12 5.34 12 7H14C14 6.45 14.45 6 15 6S16 6.45 16 7V10H8C9.1 10 10 9.1 10 8V4H4V8C4 9.1 4.9 10 6 10H2V12H4V20H20V12H22V10H18M13 18H11V12H13V18Z\";\nexport var mdiCountertopOutline = \"M22 10H18V7C18 5.34 16.66 4 15 4S12 5.34 12 7H14C14 6.45 14.45 6 15 6S16 6.45 16 7V10H8C9.1 10 10 9.1 10 8V4H4V8C4 9.1 4.9 10 6 10H2V12H4V20H20V12H22V10M6 6H8V8H6V6M6 18V12H11V18H6M18 18H13V12H18V18Z\";\nexport var mdiCow = \"M10.5,18A0.5,0.5 0 0,1 11,18.5A0.5,0.5 0 0,1 10.5,19A0.5,0.5 0 0,1 10,18.5A0.5,0.5 0 0,1 10.5,18M13.5,18A0.5,0.5 0 0,1 14,18.5A0.5,0.5 0 0,1 13.5,19A0.5,0.5 0 0,1 13,18.5A0.5,0.5 0 0,1 13.5,18M10,11A1,1 0 0,1 11,12A1,1 0 0,1 10,13A1,1 0 0,1 9,12A1,1 0 0,1 10,11M14,11A1,1 0 0,1 15,12A1,1 0 0,1 14,13A1,1 0 0,1 13,12A1,1 0 0,1 14,11M18,18C18,20.21 15.31,22 12,22C8.69,22 6,20.21 6,18C6,17.1 6.45,16.27 7.2,15.6C6.45,14.6 6,13.35 6,12L6.12,10.78C5.58,10.93 4.93,10.93 4.4,10.78C3.38,10.5 1.84,9.35 2.07,8.55C2.3,7.75 4.21,7.6 5.23,7.9C5.82,8.07 6.45,8.5 6.82,8.96L7.39,8.15C6.79,7.05 7,4 10,3L9.91,3.14V3.14C9.63,3.58 8.91,4.97 9.67,6.47C10.39,6.17 11.17,6 12,6C12.83,6 13.61,6.17 14.33,6.47C15.09,4.97 14.37,3.58 14.09,3.14L14,3C17,4 17.21,7.05 16.61,8.15L17.18,8.96C17.55,8.5 18.18,8.07 18.77,7.9C19.79,7.6 21.7,7.75 21.93,8.55C22.16,9.35 20.62,10.5 19.6,10.78C19.07,10.93 18.42,10.93 17.88,10.78L18,12C18,13.35 17.55,14.6 16.8,15.6C17.55,16.27 18,17.1 18,18M12,16C9.79,16 8,16.9 8,18C8,19.1 9.79,20 12,20C14.21,20 16,19.1 16,18C16,16.9 14.21,16 12,16M12,14C13.12,14 14.17,14.21 15.07,14.56C15.65,13.87 16,13 16,12A4,4 0 0,0 12,8A4,4 0 0,0 8,12C8,13 8.35,13.87 8.93,14.56C9.83,14.21 10.88,14 12,14M14.09,3.14V3.14Z\";\nexport var mdiCowOff = \"M22.1 21.5L2.4 1.7L1.1 3L6.9 8.8L6.8 9C6.4 8.5 5.8 8.1 5.2 7.9C4.2 7.6 2.3 7.7 2 8.5S3.3 10.5 4.3 10.7C4.8 10.8 5.5 10.8 6 10.7V12C6 13.3 6.5 14.6 7.2 15.6C6.5 16.3 6 17.1 6 18C6 20.2 8.7 22 12 22C14.5 22 16.7 21 17.6 19.5L20.9 22.8L22.1 21.5M9.4 11.2C9.1 11.4 9 11.7 9 12C9 12.6 9.4 13 10 13C10.3 13 10.6 12.9 10.8 12.6L12.2 14H12.1C11 14 9.9 14.2 9 14.6C8.3 13.9 8 13 8 12C8 11.4 8.1 10.8 8.4 10.3L9.4 11.2M16 18C16 19.1 14.2 20 12 20S8 19.1 8 18 9.8 16 12 16C13 16 13.9 16.2 14.6 16.5L16 17.9V18M9.7 6.5L7.8 4.6C8.3 3.9 9 3.3 10 3L9.9 3.1C9.6 3.6 8.9 5 9.7 6.5M11.3 8.1L9.7 6.5C10.4 6.2 11.2 6 12 6S13.6 6.2 14.3 6.5C15.1 5 14.3 3.6 14.1 3.2L14 3C17 4 17.2 7 16.6 8.2L17.2 9C17.6 8.5 18.2 8.1 18.8 7.9C19.8 7.6 21.7 7.7 22 8.5S20.7 10.5 19.7 10.7C19.2 10.8 18.5 10.8 18 10.7V12C18 12.8 17.8 13.6 17.5 14.3L15.9 12.7C15.9 12.5 16 12.2 16 12C16 9.8 14.2 8 12 8C11.8 8 11.5 8 11.3 8.1M14 18.5C14 18.8 13.8 19 13.5 19S13 18.8 13 18.5 13.2 18 13.5 18 14 18.2 14 18.5M11 18.5C11 18.8 10.8 19 10.5 19S10 18.8 10 18.5 10.2 18 10.5 18 11 18.2 11 18.5Z\";\nexport var mdiCpu32Bit = \"M9,3V5H7A2,2 0 0,0 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11H21V9H19V7A2,2 0 0,0 17,5H15V3H13V5H11V3M7,9H10.5A1,1 0 0,1 11.5,10V14A1,1 0 0,1 10.5,15H7V13.5H10V12.75H8.5V11.25H10V10.5H7M12.5,9H16A1,1 0 0,1 17,10V11.75A1,1 0 0,1 16,12.75H14V13.5H17V15H12.5V12.25A1,1 0 0,1 13.5,11.25H15.5V10.5H12.5\";\nexport var mdiCpu64Bit = \"M9,3V5H7A2,2 0 0,0 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11H21V9H19V7A2,2 0 0,0 17,5H15V3H13V5H11V3M8,9H11.5V10.5H8.5V11.25H10.5A1,1 0 0,1 11.5,12.25V14A1,1 0 0,1 10.5,15H8A1,1 0 0,1 7,14V10A1,1 0 0,1 8,9M12.5,9H14V11H15.5V9H17V15H15.5V12.5H12.5M8.5,12.75V13.5H10V12.75\";\nexport var mdiCradle = \"M18 9H12V4H8C5.8 4 4 5.8 4 8V14C4 15.1 4.9 16 6 16H8V18.9C7.4 18.5 6.8 18.1 6.3 17.6L4.9 19C6.7 20.9 9.2 22 12 22S17.3 20.9 19.1 19.1L17.7 17.7C17.2 18.2 16.7 18.6 16.1 19V16H18.1C19.2 16 20.1 15.1 20.1 14V11C20 9.9 19.1 9 18 9M14 19.8C13.4 20 12.7 20 12 20S10.6 19.9 10 19.8V16H14V19.8Z\";\nexport var mdiCradleOutline = \"M18 9H12V4H8C5.8 4 4 5.8 4 8V14C4 15.1 4.9 16 6 16H8V18.9C7.4 18.5 6.8 18.1 6.3 17.6L4.9 19C6.7 20.9 9.2 22 12 22S17.3 20.9 19.1 19.1L17.7 17.7C17.2 18.2 16.7 18.6 16.1 19V16H18.1C19.2 16 20.1 15.1 20.1 14V11C20 9.9 19.1 9 18 9M14 19.8C13.4 20 12.7 20 12 20S10.6 19.9 10 19.8V16H14V19.8M18 14H6V8C6 6.9 6.9 6 8 6H10V11H18V14Z\";\nexport var mdiCrane = \"M20,6V5A1,1 0 0,0 19,4H9V3H6V4H5V6H6V15H5V13H3V15H2V17H3V21H5V17H10V21H12V19.92L12,17H13V15H12V13H10V15H9V6H17V10.62C16.53,10.79 16.19,11.23 16.19,11.76C16.19,12.2 16.43,12.6 16.8,12.82V14H17.42C17.76,14 18.03,14.28 18.03,14.62C18.03,14.96 17.76,15.24 17.42,15.24C17.2,15.24 17,15.12 16.89,14.93C16.71,14.64 16.34,14.54 16.05,14.71C15.75,14.87 15.65,15.25 15.82,15.55C16.15,16.11 16.76,16.47 17.42,16.47C18.43,16.47 19.26,15.64 19.26,14.62C19.26,13.84 18.76,13.14 18.03,12.88V12.82C18.41,12.6 18.65,12.2 18.65,11.76C18.65,11.3 18.38,10.91 18,10.7V6H20M8,13.66L7,14.66V13.24L8,12.24V13.66M8,10.71L7,11.71V10.29L8,9.29V10.71M7,8.71V7.29L8,6.29V7.71L7,8.71Z\";\nexport var mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nexport var mdiCreationOutline = \"M9 4L11.5 9.5L17 12L11.5 14.5L9 20L6.5 14.5L1 12L6.5 9.5L9 4M9 8.83L8 11L5.83 12L8 13L9 15.17L10 13L12.17 12L10 11L9 8.83M19 9L17.74 6.26L15 5L17.74 3.75L19 1L20.25 3.75L23 5L20.25 6.26L19 9M19 23L17.74 20.26L15 19L17.74 17.75L19 15L20.25 17.75L23 19L20.25 20.26L19 23Z\";\nexport var mdiCreativeCommons = \"M11.89,10.34L10.55,11.04C10.41,10.74 10.24,10.53 10.03,10.41C9.82,10.29 9.62,10.23 9.45,10.23C8.55,10.23 8.11,10.82 8.11,12C8.11,12.54 8.22,12.97 8.45,13.29C8.67,13.61 9,13.77 9.45,13.77C10.03,13.77 10.44,13.5 10.68,12.91L11.91,13.54C11.65,14.03 11.29,14.41 10.82,14.69C10.36,14.97 9.85,15.11 9.29,15.11C8.39,15.11 7.67,14.84 7.12,14.29C6.58,13.74 6.3,13 6.3,12C6.3,11.05 6.58,10.3 7.13,9.74C7.69,9.18 8.39,8.9 9.23,8.9C10.47,8.89 11.36,9.38 11.89,10.34M17.66,10.34L16.34,11.04C16.2,10.74 16,10.53 15.81,10.41C15.6,10.29 15.4,10.23 15.21,10.23C14.32,10.23 13.87,10.82 13.87,12C13.87,12.54 14,12.97 14.21,13.29C14.44,13.61 14.77,13.77 15.21,13.77C15.8,13.77 16.21,13.5 16.45,12.91L17.7,13.54C17.42,14.03 17.05,14.41 16.59,14.69C16.12,14.97 15.62,15.11 15.07,15.11C14.17,15.11 13.44,14.84 12.9,14.29C12.36,13.74 12.09,13 12.09,12C12.09,11.05 12.37,10.3 12.92,9.74C13.47,9.18 14.17,8.9 15,8.9C16.26,8.89 17.14,9.38 17.66,10.34M12,3.5A8.5,8.5 0 0,1 20.5,12A8.5,8.5 0 0,1 12,20.5A8.5,8.5 0 0,1 3.5,12A8.5,8.5 0 0,1 12,3.5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiCreditCard = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M20 11H4V8H20Z\";\nexport var mdiCreditCardCheck = \"M20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.03 19.67 13 19.34 13 19C13 15.69 15.69 13 19 13C20.06 13 21.09 13.28 22 13.81V6C22 4.89 21.11 4 20 4M20 11H4V8H20M17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25L17.75 22\";\nexport var mdiCreditCardCheckOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H3V12H19V13C19.7 13 20.37 13.13 21 13.35V6C21 4.89 20.11 4 19 4H3C1.89 4 1 4.89 1 6V18C1 19.1 1.89 20 3 20H13.09C13.04 19.67 13 19.34 13 19M3 6H19V8H3V6M17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25L17.75 22\";\nexport var mdiCreditCardChip = \"M20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.89 20 4 20H20C21.11 20 22 19.11 22 18V6C22 4.89 21.11 4 20 4M10 14H5V10H10V14Z\";\nexport var mdiCreditCardChipOutline = \"M20 6L20 18L4 18L4 6H20M20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.89 20 4 20H20C21.11 20 22 19.11 22 18V6C22 4.89 21.11 4 20 4M11 10H6V14H11V10Z\";\nexport var mdiCreditCardClock = \"M16,14H17.5V16.82L19.94,18.23L19.19,19.53L16,17.69V14M24,17A7,7 0 0,1 17,24C14.21,24 11.8,22.36 10.67,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H20A2,2 0 0,1 22,6V12.1C23.24,13.36 24,15.09 24,17M17,12A5,5 0 0,0 12,17A5,5 0 0,0 17,22A5,5 0 0,0 22,17A5,5 0 0,0 17,12M20,10V7H4V10H20Z\";\nexport var mdiCreditCardClockOutline = \"M16,14H17.5V16.82L19.94,18.23L19.19,19.53L16,17.69V14M24,17A7,7 0 0,1 17,24C14.21,24 11.8,22.36 10.67,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H20A2,2 0 0,1 22,6V12.1C23.24,13.36 24,15.09 24,17M10,17C10,15.04 10.81,13.27 12.1,12H4V18H10.07C10,17.67 10,17.34 10,17M17,12A5,5 0 0,0 12,17A5,5 0 0,0 17,22A5,5 0 0,0 22,17A5,5 0 0,0 17,12M20,8V6H4V8H20Z\";\nexport var mdiCreditCardEdit = \"M20.6 11.3C20.7 11.2 20.8 11.1 21 11.1C21.1 11.1 21.3 11.2 21.4 11.3L22.6 12.5C22.8 12.7 22.8 13.1 22.6 13.3L21.6 14.3L19.6 12.3L20.6 11.3M13 18.9L19 12.8L21.1 14.9L15.1 21H13V18.9M11 19.1V18.1L11.6 17.5L18.1 11H4V8H20V9.1L22 7.1V6C22 4.9 21.1 4 20 4H4C3.5 4 3 4.2 2.6 4.6C2.2 5 2 5.5 2 6V18C2 18.5 2.2 19 2.6 19.4C3 19.8 3.5 20 4 20H11V19.1Z\";\nexport var mdiCreditCardEditOutline = \"M13 18.9L19.1 12.8L21.2 14.9L15.1 21H13V18.9M21.4 11.3L22.7 12.6C22.9 12.8 22.9 13.1 22.7 13.3L21.7 14.3L19.6 12.3L20.6 11.3C20.7 11.2 20.8 11.1 21 11.1C21.2 11.1 21.3 11.2 21.4 11.3M11 18H4V12H17.1L22 7.1V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H11V18M4 6H20V8H4V6Z\";\nexport var mdiCreditCardFast = \"M3 8C2.45 8 2 7.55 2 7S2.45 6 3 6H5.54C5.19 6.6 5 7.29 5 8H3M5 13H2C1.45 13 1 12.55 1 12S1.45 11 2 11H5V13M1 18C.448 18 0 17.55 0 17S.448 16 1 16H5C5 16.71 5.19 17.4 5.54 18H1M21 6H9C7.89 6 7 6.89 7 8V16C7 17.11 7.89 18 9 18H21C22.11 18 23 17.11 23 16V8C23 6.89 22.11 6 21 6M21 12H9V9H21V12Z\";\nexport var mdiCreditCardFastOutline = \"M3 8C2.45 8 2 7.55 2 7S2.45 6 3 6H5.54C5.19 6.6 5 7.29 5 8H3M5 13H2C1.45 13 1 12.55 1 12S1.45 11 2 11H5V13M1 18C.448 18 0 17.55 0 17S.448 16 1 16H5C5 16.71 5.19 17.4 5.54 18H1M21 6H9C7.89 6 7 6.89 7 8V16C7 17.11 7.89 18 9 18H21C22.11 18 23 17.11 23 16V8C23 6.89 22.11 6 21 6M21 8V9H9V8H21M9 16L9 12H21L21 16L9 16Z\";\nexport var mdiCreditCardLock = \"M21.8 15V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V15C15.6 15 15 15.6 15 16.2V19.7C15 20.4 15.6 21 16.2 21H21.7C22.4 21 23 20.4 23 19.8V16.3C23 15.6 22.4 15 21.8 15M20.5 15H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V15M13.03 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H20C21.11 4 22 4.89 22 6V10.04C21.42 9.6 20.75 9.26 20 9.11V8H4V11H15.04C14.5 11.72 14.2 12.58 14.2 13.5V13.74C13.5 14.34 13 15.24 13 16.2V19.7C13 19.8 13 19.9 13.03 20Z\";\nexport var mdiCreditCardLockOutline = \"M21.8 15V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V15C15.6 15 15 15.6 15 16.2V19.7C15 20.4 15.6 21 16.2 21H21.7C22.4 21 23 20.4 23 19.8V16.3C23 15.6 22.4 15 21.8 15M20.5 15H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V15M13 19.7V18H4V12H14.5C15.18 10.28 16.96 9 19 9C20.13 9 21.17 9.4 22 10.04V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.03C13 19.9 13 19.8 13 19.7M4 6H20V8H4V6Z\";\nexport var mdiCreditCardMarker = \"M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8M14.55 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H20C21.11 4 22 4.89 22 6V11.3C21.42 10.81 20.74 10.44 20 10.22V8H4V11H15.39C13.96 12 13 13.66 13 15.5C13 17 13.72 18.61 14.55 20Z\";\nexport var mdiCreditCardMarkerOutline = \"M13.5,18H4V12H14.3C15.3,10.8 16.8,10 18.5,10C19.8,10 21,10.5 22,11.3V6A2,2 0 0,0 20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H14.6C14.2,19.4 13.8,18.7 13.5,18M4,6H20V8H4V6M18.5,12C16.6,12 15,13.6 15,15.5C15,18.1 18.5,22 18.5,22C18.5,22 22,18.1 22,15.5C22,13.6 20.4,12 18.5,12M18.5,16.8C17.8,16.8 17.3,16.2 17.3,15.6C17.3,14.9 17.9,14.4 18.5,14.4C19.1,14.4 19.7,15 19.7,15.6C19.8,16.2 19.2,16.8 18.5,16.8Z\";\nexport var mdiCreditCardMinus = \"M20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.03 19.67 13 19.34 13 19C13 15.69 15.69 13 19 13C20.06 13 21.09 13.28 22 13.81V6C22 4.89 21.11 4 20 4M20 11H4V8H20M23 18V20H15V18H23Z\";\nexport var mdiCreditCardMinusOutline = \"M24 18V20H16V18M19 8V6H3V8H19M19 12H3V18H14V20H3C1.89 20 1 19.1 1 18V6C1 4.89 1.89 4 3 4H19C20.11 4 21 4.89 21 6V13H19V12Z\";\nexport var mdiCreditCardMultiple = \"M21 9V6H7V9H21M21 3A2 2 0 0 1 23 5V15A2 2 0 0 1 21 17H7A2 2 0 0 1 5 15V5A2 2 0 0 1 7 3H21M3 19H18V21H3A2 2 0 0 1 1 19V8H3Z\";\nexport var mdiCreditCardMultipleOutline = \"M21,8V6H7V8H21M21,16V11H7V16H21M21,4A2,2 0 0,1 23,6V16A2,2 0 0,1 21,18H7C5.89,18 5,17.1 5,16V6C5,4.89 5.89,4 7,4H21M3,20H18V22H3A2,2 0 0,1 1,20V9H3V20Z\";\nexport var mdiCreditCardOff = \"M11.2 8L7.2 4H20A2 2 0 0 1 22 6V18A1.91 1.91 0 0 1 21.88 18.68L14.2 11H20V8M20.84 22.73L18.11 20H4A2 2 0 0 1 2 18V6A2 2 0 0 1 2.65 4.54L1.11 3L2.39 1.73L22.11 21.46M9.11 11L6.11 8H4V11Z\";\nexport var mdiCreditCardOffOutline = \"M0.93,4.2L2.21,2.93L20,20.72L18.73,22L16.73,20H4C2.89,20 2,19.1 2,18V6C2,5.78 2.04,5.57 2.11,5.38L0.93,4.2M20,8V6H7.82L5.82,4H20A2,2 0 0,1 22,6V18C22,18.6 21.74,19.13 21.32,19.5L19.82,18H20V12H13.82L9.82,8H20M4,8H4.73L4,7.27V8M4,12V18H14.73L8.73,12H4Z\";\nexport var mdiCreditCardOutline = \"M20,8H4V6H20M20,18H4V12H20M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiCreditCardPlus = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H13.09A5.47 5.47 0 0 1 13 19A6 6 0 0 1 19 13A5.88 5.88 0 0 1 22 13.81V6A2 2 0 0 0 20 4M20 11H4V8H20M20 15V18H23V20H20V23H18V20H15V18H18V15Z\";\nexport var mdiCreditCardPlusOutline = \"M21,18H24V20H21V23H19V20H16V18H19V15H21V18M19,8V6H3V8H19M19,12H3V18H14V20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H19A2,2 0 0,1 21,6V13H19V12Z\";\nexport var mdiCreditCardRefresh = \"M20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H11.68C11.57 19.5 11.5 19 11.5 18.5C11.5 14.91 14.41 12 18 12C19.5 12 20.9 12.53 22 13.4V6C22 4.89 21.11 4 20 4M20 11H4V8H20V11M20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67Z\";\nexport var mdiCreditCardRefreshOutline = \"M20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H11.68C11.57 19.5 11.5 19 11.5 18.5C11.5 18.33 11.5 18.17 11.53 18H4V12H20V12.32C20.74 12.56 21.41 12.93 22 13.4V6C22 4.89 21.1 4 20 4M20 8H4V6H20V8M20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67Z\";\nexport var mdiCreditCardRefund = \"M18 11H6A2 2 0 0 0 4 13V21A2 2 0 0 0 6 23H18A2 2 0 0 0 20 21V13A2 2 0 0 0 18 11M18 17H6V14H18M17 5V10H15.5V6.5H9.88L12.3 8.93L11.24 10L7 5.75L11.24 1.5L12.3 2.57L9.88 5Z\";\nexport var mdiCreditCardRefundOutline = \"M18,11H6A2,2 0 0,0 4,13V21A2,2 0 0,0 6,23H18A2,2 0 0,0 20,21V13A2,2 0 0,0 18,11M18,21H6V17H18V21M18,15H6V13H18V15M17,5V10H15.5V6.5H9.88L12.3,8.93L11.24,10L7,5.75L11.24,1.5L12.3,2.57L9.88,5H17Z\";\nexport var mdiCreditCardRemove = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H13.09A5.47 5.47 0 0 1 13 19A6 6 0 0 1 19 13A5.88 5.88 0 0 1 22 13.81V6A2 2 0 0 0 20 4M20 11H4V8H20M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.46 16.88L16.88 15.46L19 17.59L21.12 15.46Z\";\nexport var mdiCreditCardRemoveOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H3V12H19V13C19.7 13 20.37 13.13 21 13.35V6C21 4.89 20.11 4 19 4H3C1.89 4 1 4.89 1 6V18C1 19.1 1.89 20 3 20H13.09C13.04 19.67 13 19.34 13 19M3 6H19V8H3V6M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.46L22.54 16.88Z\";\nexport var mdiCreditCardScan = \"M18 6H6A2 2 0 0 0 4 8V16A2 2 0 0 0 6 18H18A2 2 0 0 0 20 16V8A2 2 0 0 0 18 6M18 12H6V9H18M2 4H6V2H2A2 2 0 0 0 0 4V8H2V4M22 2H18V4H22V8H24V4A2 2 0 0 0 22 2M2 16H0V20A2 2 0 0 0 2 22H6V20H2V16M22 20H18V22H22A2 2 0 0 0 24 20V16H22V20\";\nexport var mdiCreditCardScanOutline = \"M2,4H6V2H2A2,2 0 0,0 0,4V8H2V4M22,2H18V4H22V8H24V4A2,2 0 0,0 22,2M2,16H0V20A2,2 0 0,0 2,22H6V20H2V16M22,20H18V22H22A2,2 0 0,0 24,20V16H22V20M4,8V16A2,2 0 0,0 6,18H18A2,2 0 0,0 20,16V8A2,2 0 0,0 18,6H6A2,2 0 0,0 4,8M6,16V12H18V16H6M18,8V10H6V8H18Z\";\nexport var mdiCreditCardSearch = \"M11.82 11C9.4 13.5 9.4 17.5 11.82 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H20C21.11 4 22 4.89 22 6V12.06C21.74 11.65 21.45 11.26 21.1 10.9C20.76 10.57 20.39 10.27 20 10.03V8H4V11H11.82M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiCreditCardSearchOutline = \"M11.03 12C11.28 11.61 11.57 11.24 11.9 10.9C14.44 8.37 18.56 8.37 21.1 10.9C21.45 11.26 21.74 11.65 22 12.06V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H11.82C11.24 19.4 10.8 18.72 10.5 18H4V12H11.03M4 6H20V8H4V6M20.31 17.9C20.75 17.21 21 16.38 21 15.5C21 13 19 11 16.5 11S12 13 12 15.5 14 20 16.5 20C17.37 20 18.19 19.75 18.88 19.32L22 22.39L23.39 21L20.31 17.9M16.5 18C15.12 18 14 16.88 14 15.5S15.12 13 16.5 13 19 14.12 19 15.5 17.88 18 16.5 18Z\";\nexport var mdiCreditCardSettings = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M20 11H4V8H20M7 22H9V24H7V22M11 22H13V24H11V22M15 22H17V24H15Z\";\nexport var mdiCreditCardSettingsOutline = \"M20,8H4V6H20M20,18H4V12H20M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiCreditCardSync = \"M13 17.5C13 18.39 13.18 19.23 13.5 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H20C21.11 4 22 4.89 22 6V11.5C21.23 11.18 20.39 11 19.5 11H20V8H4V11H19.5C15.91 11 13 13.91 13 17.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiCreditCardSyncOutline = \"M4 18V12H16.05C17.05 11.37 18.23 11 19.5 11C20.39 11 21.23 11.18 22 11.5V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.5C13.24 19.38 13.08 18.7 13.03 18H4M4 6H20V8H4V6M23 17.5C23 18.32 22.75 19.08 22.33 19.71L21.24 18.62C21.41 18.28 21.5 17.9 21.5 17.5C21.5 16.12 20.38 15 19 15V16.5L16.75 14.25L19 12V13.5C21.21 13.5 23 15.29 23 17.5M19 18.5L21.25 20.75L19 23V21.5C16.79 21.5 15 19.71 15 17.5C15 16.68 15.25 15.92 15.67 15.29L16.76 16.38C16.59 16.72 16.5 17.1 16.5 17.5C16.5 18.88 17.62 20 19 20V18.5Z\";\nexport var mdiCreditCardWireless = \"M4.93 4.92L6.34 6.33C9.46 3.2 14.53 3.2 17.66 6.33L19.07 4.92C15.17 1 8.84 1 4.93 4.92M7.76 7.75L9.17 9.16C10.73 7.6 13.26 7.6 14.83 9.16L16.24 7.75C13.9 5.41 10.1 5.41 7.76 7.75M18 11H6C4.89 11 4 11.9 4 13V21C4 22.11 4.89 23 6 23H18C19.11 23 20 22.11 20 21V13C20 11.9 19.11 11 18 11M18 17H6V14H18V17Z\";\nexport var mdiCreditCardWirelessOff = \"M12 2C9.85 2 7.7 2.69 5.9 4.08L7.32 5.5C10.45 3.24 14.84 3.5 17.66 6.33L19.07 4.92C17.12 2.96 14.56 2 12 2M3.28 4L2 5.27L7.73 11H6C4.89 11 4 11.9 4 13V21C4 22.11 4.89 23 6 23H18C18.5 23 18.92 22.82 19.27 22.54L19.73 23L21 21.72M12 6C10.87 6 9.75 6.31 8.77 6.94L10.24 8.41C11.73 7.68 13.58 7.92 14.83 9.16L16.24 7.75C15.07 6.58 13.54 6 12 6M12.82 11L15.82 14H18V16.18L20 18.18V13C20 11.9 19.11 11 18 11M6 14H10.73L13.73 17H6Z\";\nexport var mdiCreditCardWirelessOffOutline = \"M12 2C9.85 2 7.7 2.69 5.9 4.08L7.32 5.5C10.45 3.24 14.84 3.5 17.66 6.33L19.07 4.92C17.12 2.96 14.56 2 12 2M3.28 4L2 5.27L7.73 11H6C4.89 11 4 11.9 4 13V21C4 22.11 4.89 23 6 23H18C18.47 23 18.92 22.84 19.27 22.54L19.73 23L21 21.72M12 6C10.87 6 9.75 6.31 8.77 6.94L10.24 8.41C11.73 7.68 13.58 7.92 14.83 9.16L16.24 7.75C15.07 6.58 13.54 6 12 6M12.82 11L14.82 13H18V15H16.82L20 18.18V13C20 11.9 19.11 11 18 11M6 13H9.73L11.73 15H6M6 17H13.73L17.73 21H6Z\";\nexport var mdiCreditCardWirelessOutline = \"M18,11H6A2,2 0 0,0 4,13V21A2,2 0 0,0 6,23H18A2,2 0 0,0 20,21V13A2,2 0 0,0 18,11M18,21H6V17H18V21M18,15H6V13H18V15M4.93,4.92L6.34,6.33C9.46,3.2 14.53,3.2 17.66,6.33L19.07,4.92C15.17,1 8.84,1 4.93,4.92M7.76,7.75L9.17,9.16C10.73,7.6 13.26,7.6 14.83,9.16L16.24,7.75C13.9,5.41 10.1,5.41 7.76,7.75Z\";\nexport var mdiCricket = \"M14.34,17.77L15.75,16.36L20,20.58L18.56,22L14.34,17.77M18.5,2A3.5,3.5 0 0,1 22,5.5A3.5,3.5 0 0,1 18.5,9A3.5,3.5 0 0,1 15,5.5A3.5,3.5 0 0,1 18.5,2M2.24,7.11L5.07,4.28C5.46,3.89 6.09,3.89 6.5,4.28L14.97,12.77C15.36,13.16 15.36,13.79 14.97,14.18L12.14,17C11.75,17.4 11.12,17.4 10.72,17L2.24,8.53C1.85,8.13 1.85,7.5 2.24,7.11Z\";\nexport var mdiCrop = \"M7,17V1H5V5H1V7H5V17A2,2 0 0,0 7,19H17V23H19V19H23V17M17,15H19V7C19,5.89 18.1,5 17,5H9V7H17V15Z\";\nexport var mdiCropFree = \"M19,3H15V5H19V9H21V5C21,3.89 20.1,3 19,3M19,19H15V21H19A2,2 0 0,0 21,19V15H19M5,15H3V19A2,2 0 0,0 5,21H9V19H5M3,5V9H5V5H9V3H5A2,2 0 0,0 3,5Z\";\nexport var mdiCropLandscape = \"M19,17H5V7H19M19,5H5A2,2 0 0,0 3,7V17A2,2 0 0,0 5,19H19A2,2 0 0,0 21,17V7C21,5.89 20.1,5 19,5Z\";\nexport var mdiCropPortrait = \"M17,19H7V5H17M17,3H7A2,2 0 0,0 5,5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V5C19,3.89 18.1,3 17,3Z\";\nexport var mdiCropRotate = \"M7.47,21.5C4.2,19.93 1.86,16.76 1.5,13H0C0.5,19.16 5.66,24 11.95,24C12.18,24 12.39,24 12.61,23.97L8.8,20.15L7.47,21.5M12.05,0C11.82,0 11.61,0 11.39,0.04L15.2,3.85L16.53,2.5C19.8,4.07 22.14,7.24 22.5,11H24C23.5,4.84 18.34,0 12.05,0M16,14H18V8C18,6.89 17.1,6 16,6H10V8H16V14M8,16V4H6V6H4V8H6V16A2,2 0 0,0 8,18H16V20H18V18H20V16H8Z\";\nexport var mdiCropSquare = \"M18,18H6V6H18M18,4H6A2,2 0 0,0 4,6V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18V6C20,4.89 19.1,4 18,4Z\";\nexport var mdiCross = \"M10.5,2H13.5V8H19V11H13.5V22H10.5V11H5V8H10.5V2Z\";\nexport var mdiCrossBolnisi = \"M22,7L21.5,6.5C19.93,8 18.47,9.4 16.93,10.18C15.5,10.91 14.44,10.91 13,11C13.09,9.56 13.09,8.5 13.82,7.07C14.6,5.53 16,4.07 17.5,2.5L17,2C15.32,3.23 13.64,3.83 12,3.83C10.36,3.83 8.68,3.23 7,2L6.5,2.5C8,4.07 9.4,5.53 10.18,7.07C10.91,8.5 10.91,9.56 11,11C9.56,10.91 8.5,10.91 7.07,10.18C5.53,9.4 4.06,8 2.5,6.5L2,7C3.23,8.68 3.83,10.36 3.83,12C3.83,13.64 3.23,15.32 2,17L2.5,17.5C4.07,16 5.53,14.6 7.07,13.82C8.5,13.09 9.56,13.09 11,13C10.91,14.44 10.91,15.5 10.18,16.93C9.4,18.47 8,19.93 6.5,21.5L7,22C8.68,20.77 10.36,20.17 12,20.17C13.64,20.17 15.32,20.77 17,22L17.5,21.5C16,19.93 14.6,18.47 13.82,16.93C13.09,15.5 13.09,14.44 13,13C14.44,13.09 15.5,13.09 16.93,13.82C18.47,14.6 19.93,16 21.5,17.5L22,17C20.77,15.32 20.17,13.64 20.17,12C20.17,10.36 20.77,8.68 22,7Z\";\nexport var mdiCrossCeltic = \"M17.8,8C17.26,5.89 15.61,4.24 13.5,3.7V2H10.5V3.7C8.39,4.24 6.74,5.89 6.2,8H4V11H6.2C6.74,13.11 8.39,14.76 10.5,15.3V22H13.5V15.3C15.61,14.76 17.26,13.11 17.8,11H19.97V8H17.8M12.04,9.53L14.5,11H15.76C15.35,12.03 14.53,12.84 13.5,13.26V12L12.06,9.56L12,9.5L11.94,9.56L10.5,12V13.26C9.47,12.84 8.66,12.03 8.24,11H9.5L11.96,9.53L12,9.5H11.96L9.5,8H8.24C8.65,6.97 9.47,6.16 10.5,5.74V7L11.94,9.44L12,9.5L12.06,9.44L13.5,7V5.74C14.53,6.16 15.35,6.97 15.76,8H14.5L12.04,9.5H12L12.04,9.53Z\";\nexport var mdiCrossOutline = \"M15.5,6V1H8.5V6H3V13H8.5V23H15.5V13H21V6H15.5M19,11H13.5V21H10.5V11H5V8H10.5V3H13.5V8H19V11Z\";\nexport var mdiCrosshairs = \"M3.05,13H1V11H3.05C3.5,6.83 6.83,3.5 11,3.05V1H13V3.05C17.17,3.5 20.5,6.83 20.95,11H23V13H20.95C20.5,17.17 17.17,20.5 13,20.95V23H11V20.95C6.83,20.5 3.5,17.17 3.05,13M12,5A7,7 0 0,0 5,12A7,7 0 0,0 12,19A7,7 0 0,0 19,12A7,7 0 0,0 12,5Z\";\nexport var mdiCrosshairsGps = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M3.05,13H1V11H3.05C3.5,6.83 6.83,3.5 11,3.05V1H13V3.05C17.17,3.5 20.5,6.83 20.95,11H23V13H20.95C20.5,17.17 17.17,20.5 13,20.95V23H11V20.95C6.83,20.5 3.5,17.17 3.05,13M12,5A7,7 0 0,0 5,12A7,7 0 0,0 12,19A7,7 0 0,0 19,12A7,7 0 0,0 12,5Z\";\nexport var mdiCrosshairsOff = \"M20.94 11C20.5 6.83 17.17 3.5 13 3.06V1H11V3.06C9.87 3.18 8.81 3.5 7.84 4.03L9.34 5.53C10.16 5.19 11.06 5 12 5C15.87 5 19 8.13 19 12C19 12.94 18.81 13.84 18.5 14.65L20 16.15C20.5 15.19 20.82 14.13 20.95 13H23V11H20.94M3 4.27L5.04 6.31C3.97 7.62 3.25 9.23 3.06 11H1V13H3.06C3.5 17.17 6.83 20.5 11 20.94V23H13V20.94C14.77 20.74 16.38 20.03 17.69 18.96L19.73 21L21 19.73L4.27 3L3 4.27M16.27 17.54C15.09 18.45 13.61 19 12 19C8.13 19 5 15.87 5 12C5 10.39 5.55 8.91 6.46 7.73L16.27 17.54Z\";\nexport var mdiCrosshairsQuestion = \"M3.05 13H1V11H3.05C3.5 6.83 6.83 3.5 11 3.05V1H13V3.05C17.17 3.5 20.5 6.83 20.95 11H23V13H20.95C20.5 17.17 17.17 20.5 13 20.95V23H11V20.95C6.83 20.5 3.5 17.17 3.05 13M12 5C8.13 5 5 8.13 5 12S8.13 19 12 19 19 15.87 19 12 15.87 5 12 5M11.13 17.25H12.88V15.5H11.13V17.25M12 6.75C10.07 6.75 8.5 8.32 8.5 10.25H10.25C10.25 9.28 11.03 8.5 12 8.5S13.75 9.28 13.75 10.25C13.75 12 11.13 11.78 11.13 14.63H12.88C12.88 12.66 15.5 12.44 15.5 10.25C15.5 8.32 13.93 6.75 12 6.75Z\";\nexport var mdiCrowd = \"M3.69 9.12C3.5 8.93 3.29 8.84 3.04 8.84C2.63 8.84 2.32 9.03 2.12 9.42S1.97 10.18 2.29 10.53C3.47 11.59 4.22 12.34 4.54 12.78C4.95 13.34 5.15 14.16 5.15 15.22C5.15 16.53 5.65 17.5 6.65 18.17C7.21 18.61 7.82 18.94 8.5 19.16L8.5 15.27C8.5 14.33 8.17 13.55 7.54 12.92M16.46 12.97C15.84 13.59 15.5 14.36 15.5 15.27L15.5 19.2C16.46 18.86 17.26 18.33 17.92 17.63C18.57 16.93 18.9 16.16 18.9 15.22C18.9 14.09 19.09 13.28 19.47 12.78C19.56 12.62 19.73 12.42 20 12.17C20.23 11.92 20.47 11.68 20.71 11.46C20.94 11.25 21.17 11.03 21.39 10.81L21.72 10.53C21.91 10.34 22 10.12 22 9.87C22 9.59 21.91 9.34 21.72 9.14C21.53 8.94 21.3 8.84 21 8.84S20.5 8.93 20.31 9.12M12 20C12.69 20 13.36 19.91 14 19.72L14 16.15C14 15.56 13.82 15.1 13.41 14.66C13 14.22 12.53 14 12 14C11.47 14 11 14.2 10.62 14.61C10.22 15 10 15.46 10 16.06L10 19.72C10.64 19.91 11.31 20 12 20M9 8.5C9 9.33 8.33 10 7.5 10S6 9.33 6 8.5 6.67 7 7.5 7 9 7.67 9 8.5M18 8.5C18 9.33 17.33 10 16.5 10C15.67 10 15 9.33 15 8.5S15.67 7 16.5 7C17.33 7 18 7.67 18 8.5M13.5 5.5C13.5 6.33 12.83 7 12 7S10.5 6.33 10.5 5.5 11.17 4 12 4 13.5 4.67 13.5 5.5M13.5 11C13.5 11.83 12.83 12.5 12 12.5S10.5 11.83 10.5 11 11.17 9.5 12 9.5 13.5 10.17 13.5 11Z\";\nexport var mdiCrown = \"M5 16L3 5L8.5 10L12 4L15.5 10L21 5L19 16H5M19 19C19 19.6 18.6 20 18 20H6C5.4 20 5 19.6 5 19V18H19V19Z\";\nexport var mdiCrownCircle = \"M12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22S22 17.5 22 12 17.5 2 12 2M16 15.44C16 15.78 15.78 16 15.44 16H8.56C8.22 16 8 15.78 8 15.44V15H16V15.44M16 14H8L7 8L10 10L12 7L14 10L17 8L16 14Z\";\nexport var mdiCrownCircleOutline = \"M12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22S22 17.5 22 12 17.5 2 12 2M12 20C7.58 20 4 16.42 4 12C4 7.58 7.58 4 12 4S20 7.58 20 12C20 16.42 16.42 20 12 20M8 14L7 8L10 10L12 7L14 10L17 8L16 14H8M8.56 16C8.22 16 8 15.78 8 15.44V15H16V15.44C16 15.78 15.78 16 15.44 16H8.56Z\";\nexport var mdiCrownOutline = \"M12 8L15 13.2L18 10.5L17.3 14H6.7L6 10.5L9 13.2L12 8M12 4L8.5 10L3 5L5 16H19L21 5L15.5 10L12 4M19 18H5V19C5 19.6 5.4 20 6 20H18C18.6 20 19 19.6 19 19V18Z\";\nexport var mdiCryengine = \"M23.03,12.4M23.03,12.5V12.5C23,13 20.91,15.23 17.82,16.24C14.05,17.5 7.97,17.03 7.97,12.3C7.97,10.08 9.78,8.27 12,8.27C14.25,8.27 16.05,10.09 16.05,12.31C16.05,13.39 15.58,14.44 14.87,15.18C15.54,15.17 17.94,15 20.21,13.12C20.46,12.88 20.62,12.68 20.69,12.55C20.71,12.5 20.74,12.46 20.73,12.4C20.73,11.92 18.12,8.19 12.72,7.12C19.22,7.46 23,11.32 23.03,12.4V12.5H23.03M12,10C10.74,10 9.71,11.04 9.71,12.3C9.71,13.57 10.74,14.59 12,14.59C13.27,14.59 14.29,13.57 14.29,12.3C14.29,11.04 13.27,10 12,10M3.31,12.34C3.31,12.34 3.31,12.31 3.31,12.42V12.42C3.41,12.94 4.82,15.41 10.28,16.88C3.96,16.37 1.12,13.28 1.04,12.42H1.03C1.03,12.31 1.03,12.36 1.03,12.35C1.03,11.5 4.96,7.58 10.92,7.15C6.14,8.26 3.31,11.87 3.31,12.34V12.34Z\";\nexport var mdiCrystalBall = \"M9.38,8.38L11.5,9.34L13.62,8.38L12.66,10.5L13.62,12.62L11.5,11.66L9.38,12.62L10.34,10.5L9.38,8.38M16.5,2.5L17.59,5.41L20.5,6.5L17.59,7.59L16.5,10.5L15.41,7.59L12.5,6.5L15.41,5.41L16.5,2.5M6,19H7V18A1,1 0 0,1 8,17H8.26C6,15.7 4.5,13.28 4.5,10.5A7.5,7.5 0 0,1 12,3C13.05,3 14.05,3.22 14.96,3.61L14.59,4.59L13.17,5.12C12.79,5.04 12.4,5 12,5A5.5,5.5 0 0,0 6.5,10.5A5.5,5.5 0 0,0 12,16C14.91,16 17.3,13.73 17.5,10.87L18.41,8.41L19.12,8.14C19.37,8.88 19.5,9.68 19.5,10.5C19.5,13.28 18,15.7 15.74,17H16A1,1 0 0,1 17,18V19H18A2,2 0 0,1 20,21V22H4V21A2,2 0 0,1 6,19Z\";\nexport var mdiCube = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L6.04,7.5L12,10.85L17.96,7.5L12,4.15Z\";\nexport var mdiCubeOff = \"M20.84 22.73L17.28 19.17L12.57 21.82C12.41 21.94 12.21 22 12 22S11.59 21.94 11.43 21.82L3.53 17.38C3.21 17.21 3 16.88 3 16.5V7.5C3 7.12 3.21 6.79 3.53 6.62L4.3 6.19L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M12 4.15L17.96 7.5L13.31 10.11L20.53 17.33C20.82 17.16 21 16.85 21 16.5V7.5C21 7.12 20.79 6.79 20.47 6.62L12.57 2.18C12.41 2.06 12.21 2 12 2S11.59 2.06 11.43 2.18L7.56 4.36L9 5.82L12 4.15Z\";\nexport var mdiCubeOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L4.3 6.19L3.53 6.62C3.21 6.79 3 7.12 3 7.5V16.5C3 16.88 3.21 17.21 3.53 17.38L11.43 21.82C11.59 21.94 11.79 22 12 22S12.41 21.94 12.57 21.82L17.28 19.17L20.84 22.73L22.11 21.46M5 15.91V9.21L10.29 12.18L11 12.89V19.29L5 15.91M13 19.29V14.89L15.82 17.7L13 19.29M9 5.82L7.56 4.36L11.43 2.18C11.59 2.06 11.79 2 12 2S12.41 2.06 12.57 2.18L20.47 6.62C20.79 6.79 21 7.12 21 7.5V16.5C21 16.85 20.82 17.16 20.53 17.33L19 15.8V9.21L14.78 11.58L13.31 10.11L17.96 7.5L12 4.15L9 5.82Z\";\nexport var mdiCubeOutline = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L6.04,7.5L12,10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V9.21L13,12.58V19.29L19,15.91Z\";\nexport var mdiCubeScan = \"M17,22V20H20V17H22V20.5C22,20.89 21.84,21.24 21.54,21.54C21.24,21.84 20.89,22 20.5,22H17M7,22H3.5C3.11,22 2.76,21.84 2.46,21.54C2.16,21.24 2,20.89 2,20.5V17H4V20H7V22M17,2H20.5C20.89,2 21.24,2.16 21.54,2.46C21.84,2.76 22,3.11 22,3.5V7H20V4H17V2M7,2V4H4V7H2V3.5C2,3.11 2.16,2.76 2.46,2.46C2.76,2.16 3.11,2 3.5,2H7M13,17.25L17,14.95V10.36L13,12.66V17.25M12,10.92L16,8.63L12,6.28L8,8.63L12,10.92M7,14.95L11,17.25V12.66L7,10.36V14.95M18.23,7.59C18.73,7.91 19,8.34 19,8.91V15.23C19,15.8 18.73,16.23 18.23,16.55L12.75,19.73C12.25,20.05 11.75,20.05 11.25,19.73L5.77,16.55C5.27,16.23 5,15.8 5,15.23V8.91C5,8.34 5.27,7.91 5.77,7.59L11.25,4.41C11.5,4.28 11.75,4.22 12,4.22C12.25,4.22 12.5,4.28 12.75,4.41L18.23,7.59Z\";\nexport var mdiCubeSend = \"M16,4L9,8.04V15.96L16,20L23,15.96V8.04M16,6.31L19.8,8.5L16,10.69L12.21,8.5M0,7V9H7V7M11,10.11L15,12.42V17.11L11,14.81M21,10.11V14.81L17,17.11V12.42M2,11V13H7V11M4,15V17H7V15\";\nexport var mdiCubeUnfolded = \"M6,9V4H13V9H23V16H18V21H11V16H1V9H6M16,16H13V19H16V16M8,9H11V6H8V9M6,14V11H3V14H6M18,11V14H21V11H18M13,11V14H16V11H13M8,11V14H11V11H8Z\";\nexport var mdiCup = \"M18.32,8H5.67L5.23,4H18.77M3,2L5,20.23C5.13,21.23 5.97,22 7,22H17C18,22 18.87,21.23 19,20.23L21,2H3Z\";\nexport var mdiCupOff = \"M1,4.27L2.28,3L21,21.72L19.73,23L18.27,21.54C17.93,21.83 17.5,22 17,22H7C5.97,22 5.13,21.23 5,20.23L3.53,6.8L1,4.27M18.32,8L18.77,4H5.82L3.82,2H21L19.29,17.47L9.82,8H18.32Z\";\nexport var mdiCupOffOutline = \"M3.83 2L5.83 4H18.78L17.5 15.66L19.3 17.5L21 2M2.27 3L1 4.27L3.53 6.8L5 20.23C5.13 21.23 5.97 22 7 22H17C17.47 22 17.91 21.82 18.26 21.54L19.73 23L21 21.73M5.78 9.06L16.73 20H7Z\";\nexport var mdiCupOutline = \"M3 2L5 20.23C5.13 21.23 5.97 22 7 22H17C18 22 18.87 21.23 19 20.23L21 2H3M5.22 4H18.78L17 20H7L5.22 4Z\";\nexport var mdiCupWater = \"M18.32,8H5.67L5.23,4H18.77M12,19A3,3 0 0,1 9,16C9,14 12,10.6 12,10.6C12,10.6 15,14 15,16A3,3 0 0,1 12,19M3,2L5,20.23C5.13,21.23 5.97,22 7,22H17C18,22 18.87,21.23 19,20.23L21,2H3Z\";\nexport var mdiCupboard = \"M17 2H7C5.9 2 5 2.9 5 4V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C18.11 21 19 20.11 19 19V4C19 2.9 18.11 2 17 2M10 18H8V15H10V18M16 18H14V15H16V18M17 12H7V9H17V12M17 7H7V4H17V7Z\";\nexport var mdiCupboardOutline = \"M7 2C5.9 2 5 2.9 5 4V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C18.11 21 19 20.11 19 19V4C19 2.9 18.11 2 17 2H7M7 4H17V7H7V4M7 9H17V12H7V9M7 14H11V19H7V14M13 14H17V19H13V14M8 15V18H10V15H8M14 15V18H16V15H14Z\";\nexport var mdiCupcake = \"M12,1.5A2.5,2.5 0 0,1 14.5,4A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 9.5,4A2.5,2.5 0 0,1 12,1.5M15.87,5C18,5 20,7 20,9C22.7,9 22.7,13 20,13H4C1.3,13 1.3,9 4,9C4,7 6,5 8.13,5C8.57,6.73 10.14,8 12,8C13.86,8 15.43,6.73 15.87,5M5,15H8L9,22H7L5,15M10,15H14L13,22H11L10,15M16,15H19L17,22H15L16,15Z\";\nexport var mdiCurling = \"M10,3V5C12.5,5 13.9,5.05 14.72,5.41C15.26,5.65 15.73,6.21 16.25,7H5V9H19.62L18.89,7.55C17.86,5.5 16.96,4.22 15.53,3.59C14.1,2.95 12.5,3 10,3M6,11C3.78,11 2,12.78 2,15V18C2,20.22 3.78,22 6,22H18C20.22,22 22,20.22 22,18V15C22,12.78 20.22,11 18,11H6Z\";\nexport var mdiCurrencyBdt = \"M18.09,10.5V9H9.59V4.5A1.5,1.5 0 0,0 8.09,3A1.5,1.5 0 0,0 6.59,4.5A1.5,1.5 0 0,0 8.09,6V9H5.09V10.5H8.09V16.7C8.09,19.06 10,20.97 12.34,21C14.68,20.96 16.54,19.04 16.5,16.7C16.5,15.11 15.75,13.61 14.5,12.62C14.28,12.44 14.05,12.28 13.8,12.15C13.58,12.05 13.34,12 13.1,12C12.39,12 11.74,12.39 11.39,13C11.2,13.3 11.1,13.65 11.1,14C11.11,15.1 12,16 13.11,16C13.73,16 14.31,15.69 14.69,15.2C14.9,15.67 15,16.18 15,16.7C15.04,18.2 13.86,19.45 12.34,19.5C10.81,19.5 9.58,18.23 9.59,16.7V10.5H18.09Z\";\nexport var mdiCurrencyBrl = \"M12,15H14C14,16.08 15.37,17 17,17C18.63,17 20,16.08 20,15C20,13.9 18.96,13.5 16.76,12.97C14.64,12.44 12,11.78 12,9C12,7.21 13.47,5.69 15.5,5.18V3H18.5V5.18C20.53,5.69 22,7.21 22,9H20C20,7.92 18.63,7 17,7C15.37,7 14,7.92 14,9C14,10.1 15.04,10.5 17.24,11.03C19.36,11.56 22,12.22 22,15C22,16.79 20.53,18.31 18.5,18.82V21H15.5V18.82C13.47,18.31 12,16.79 12,15M2,3H5.5A5.5,5.5 0 0,1 11,8.5C11,10.69 9.71,12.59 7.86,13.47L11.64,21H9.4L5.88,14H5.5L4,14V21H2V3M5.5,12A3.5,3.5 0 0,0 9,8.5A3.5,3.5 0 0,0 5.5,5H4V12H5.5Z\";\nexport var mdiCurrencyBtc = \"M17.06 11.57C17.65 10.88 18 10 18 9C18 7.14 16.73 5.57 15 5.13V3H13V5H11V3H9V5H6V7H8V17H6V19H9V21H11V19H13V21H15V19C17.21 19 19 17.21 19 15C19 13.55 18.22 12.27 17.06 11.57M10 7H14C15.1 7 16 7.9 16 9S15.1 11 14 11H10V7M15 17H10V13H15C16.1 13 17 13.9 17 15S16.1 17 15 17Z\";\nexport var mdiCurrencyCny = \"M13.28 12H18V14H13V21H11V14H6V12H10.72L5 3H7.37L12 10.29L16.63 3H19L13.28 12Z\";\nexport var mdiCurrencyEth = \"M6,5H18V7H6M7,11H17V13H7M5.5,17H18.5V19H5.5\";\nexport var mdiCurrencyEur = \"M15 18.5C12.5 18.5 10.32 17.08 9.24 15H15L16 13H8.58C8.53 12.67 8.5 12.34 8.5 12S8.53 11.33 8.58 11H15L16 9H9.24C10.32 6.92 12.5 5.5 15 5.5C16.61 5.5 18.09 6.09 19.23 7.07L21 5.3C19.41 3.87 17.3 3 15 3C11.08 3 7.76 5.5 6.5 9H3L2 11H6.06C6 11.33 6 11.66 6 12S6 12.67 6.06 13H3L2 15H6.5C7.76 18.5 11.08 21 15 21C17.31 21 19.41 20.13 21 18.7L19.22 16.93C18.09 17.91 16.62 18.5 15 18.5Z\";\nexport var mdiCurrencyEurOff = \"M22.11 21.46L2.39 1.73L1.11 3L6.7 8.59C6.64 8.73 6.57 8.86 6.5 9H3L2 11H6.06C6 11.33 6 11.66 6 12S6 12.67 6.06 13H3L2 15H6.5C7.76 18.5 11.08 21 15 21C16.21 21 17.36 20.74 18.41 20.3L20.84 22.73L22.11 21.46M8.58 13C8.53 12.67 8.5 12.34 8.5 12S8.53 11.33 8.58 11H9.11L11.11 13H8.58M15 18.5C12.5 18.5 10.32 17.08 9.24 15H13.11L16.44 18.33C15.97 18.43 15.5 18.5 15 18.5M12.2 9H16L15 11H14.2L12.2 9M10.5 7.32L8.74 5.54C10.36 3.97 12.56 3 15 3C17.3 3 19.41 3.87 21 5.3L19.23 7.07C18.09 6.09 16.61 5.5 15 5.5C13.26 5.5 11.69 6.2 10.5 7.32Z\";\nexport var mdiCurrencyFra = \"M18 5V3H7V16H5V18H7V21H9V18H13V16H9V13H17V11H9V5H18Z\";\nexport var mdiCurrencyGbp = \"M14 21C15.93 21 17.62 19.83 18 18L16.25 17.12C16 18.21 15.33 19 14 19H9.1C9.93 18 10.6 16.66 10.6 15C10.6 14.65 10.57 14.31 10.5 14H14V12H9.82C9 10.42 8 9.6 8 8C8 6.07 9.57 4.5 11.5 4.5C13 4.5 14.29 5.45 14.78 6.78L16.63 6C15.83 3.95 13.84 2.5 11.5 2.5C8.46 2.5 6 4.96 6 8C6 9.78 6.79 10.9 7.5 12H6V14H8.47C8.55 14.31 8.6 14.64 8.6 15C8.6 17.7 6 19 6 19V21H14Z\";\nexport var mdiCurrencyIls = \"M22,16A5,5 0 0,1 17,21H8V9H10V19H17A3,3 0 0,0 20,16V3H22V16M16,8V15H14V8A3,3 0 0,0 11,5H4V21H2V3H11A5,5 0 0,1 16,8Z\";\nexport var mdiCurrencyInr = \"M8,3H18L17,5H13.74C14.22,5.58 14.58,6.26 14.79,7H18L17,9H15C14.75,11.57 12.74,13.63 10.2,13.96V14H9.5L15.5,21H13L7,14V12H9.5V12C11.26,12 12.72,10.7 12.96,9H7L8,7H12.66C12.1,5.82 10.9,5 9.5,5H7L8,3Z\";\nexport var mdiCurrencyJpy = \"M13.92 11H18V13H13V15H18V17H13V21H11V17H6V15H11V13H6V11H10.08L5 3H7.37L12 10.29L16.63 3H19L13.92 11Z\";\nexport var mdiCurrencyKrw = \"M2,3H4L5.33,9H9.33L10.67,3H13.33L14.67,9H18.67L20,3H22L20.67,9H22V11H20.22L19.78,13H22V15H19.33L18,21H15.33L14,15H10L8.67,21H6L4.67,15H2V13H4.22L3.78,11H2V9H3.33L2,3M13.11,11H10.89L10.44,13H13.56L13.11,11M7.33,18L8,15H6.67L7.33,18M8.89,11H5.78L6.22,13H8.44L8.89,11M16.67,18L17.33,15H16L16.67,18M18.22,11H15.11L15.56,13H17.78L18.22,11M12,6L11.33,9H12.67L12,6Z\";\nexport var mdiCurrencyKzt = \"M5,3H19V5H5V3M5,6H19V8H13V21H11V8H5V6Z\";\nexport var mdiCurrencyMnt = \"M13 5V8.62L17 7.17V9.29L13 10.74V12.5L17 11.07V13.2L13 14.65V21H11V15.38L7 16.84V14.71L11 13.24V11.47L7 12.92V10.8L11 9.35V5H5V3H19V5H13Z\";\nexport var mdiCurrencyNgn = \"M4,9H6V3H8L11.42,9H16V3H18V9H20V11H18V13H20V15H18V21H16L12.57,15H8V21H6V15H4V13H6V11H4V9M8,9H9.13L8,7.03V9M8,11V13H11.42L10.28,11H8M16,17V15H14.85L16,17M12.56,11L13.71,13H16V11H12.56Z\";\nexport var mdiCurrencyPhp = \"M5,2V6H3V8H5V10H3V12H5V22H7V16H13C15.7,16 18.16,14.44 19.32,12H22V10H19.92C20.03,9.34 20.03,8.66 19.92,8H22V6H19.32C18.16,3.56 15.7,2 13,2M7,4H13C14.57,4 16.06,4.74 17,6H7V4M13,14H7V12H17C16.06,13.26 14.57,14 13,14M18,9C18,9.34 17.96,9.67 17.9,10H7V8H17.9C17.96,8.33 18,8.66 18,9Z\";\nexport var mdiCurrencyRial = \"M11,17H13V19H11V17M14,17H16V19H14V17M9,4H11V15A4,4 0 0,1 7,19H5A3,3 0 0,1 2,16V12H4V16A1,1 0 0,0 5,17H7C8.11,17 9,16.11 9,15V4M12,4H14V13H17V8H19V13C19,14.11 18.11,15 17,15H14C12.89,15 12,14.11 12,13V4M20,10H22V17A3,3 0 0,1 19,20H17V18H19A1,1 0 0,0 20,17V10Z\";\nexport var mdiCurrencyRub = \"M13.5 3H7V12H5V14H7V16H5V18H7V21H9V18H13V16H9V14H13.5C16.54 14 19 11.54 19 8.5S16.54 3 13.5 3M13.5 12H9V5H13.5C15.43 5 17 6.57 17 8.5S15.43 12 13.5 12Z\";\nexport var mdiCurrencyRupee = \"M13.66 7C13.1 5.82 11.9 5 10.5 5H6V3H18V5H14.74C15.22 5.58 15.58 6.26 15.79 7H18V9H16C15.73 11.8 13.37 14 10.5 14H9.77L16.5 21H13.73L7 14V12H10.5C12.26 12 13.72 10.7 13.96 9H6V7H13.66Z\";\nexport var mdiCurrencySign = \"M4.41 3L3 4.41L5.69 7.1C4.63 8.46 4 10.15 4 12C4 13.85 4.63 15.55 5.69 16.9L3 19.59L4.41 21L7.1 18.31C8.46 19.37 10.15 20 12 20C13.85 20 15.55 19.37 16.9 18.31L19.59 21L21 19.59L18.31 16.9C19.37 15.54 20 13.85 20 12C20 10.15 19.37 8.45 18.31 7.1L21 4.41L19.59 3L16.9 5.69C15.54 4.63 13.85 4 12 4C10.15 4 8.45 4.63 7.1 5.69L4.41 3M12 6C15.31 6 18 8.69 18 12C18 15.31 15.31 18 12 18C8.69 18 6 15.31 6 12C6 8.69 8.69 6 12 6Z\";\nexport var mdiCurrencyThb = \"M16.1 11.6C16.7 10.9 17 10 17 9C17 7.1 15.7 5.6 14 5.1L13 5V3H11V5H7V19H11V21H13V19H14C16.2 19 18 17.2 18 15C18 13.5 17.2 12.3 16.1 11.6M15 9C15 10.1 14.1 11 13 11V7C14.1 7 15 7.9 15 9M9 7H11V11H9V7M9 17V13H11V17H9M14 17H13V13H14C15.1 13 16 13.9 16 15S15.1 17 14 17Z\";\nexport var mdiCurrencyTry = \"M9 8.76V3H11V7.5L15 5V7.36L11 9.87L11 12.22L15 9.72V12.08L11 14.59V19C13.76 19 16 16.76 16 14H18C18 17.87 14.87 21 11 21H9V15.84L6 17.72V15.36L9 13.5V11.12L6 13V10.64L9 8.76Z\";\nexport var mdiCurrencyTwd = \"M3,11H21V13H15V19H21V21H15A2,2 0 0,1 13,19V13H10.35L5.73,21L4,20L8.04,13H3V11M5,3H19V5H5V3Z\";\nexport var mdiCurrencyUah = \"M14.59 11H18V9H16.32C16.74 8.34 17 7.68 17 7C17 4.37 14.5 3 12 3C9.65 3 7.53 5.06 7.29 5.29L8.71 6.71C9.19 6.23 10.71 5 12 5C13.04 5 15 5.42 15 7C15 7.5 14.5 8.24 13.76 9H6V11H11.63C11.21 11.36 9.75 12.67 9.41 13H6V15H7.68C7.26 15.66 7 16.32 7 17C7 19.63 9.5 21 12 21C14.35 21 16.47 18.94 16.71 18.71L15.29 17.29C14.82 17.77 13.29 19 12 19C10.96 19 9 18.58 9 17C9 16.5 9.5 15.76 10.24 15H18V13H12.38L14.59 11Z\";\nexport var mdiCurrencyUsd = \"M7,15H9C9,16.08 10.37,17 12,17C13.63,17 15,16.08 15,15C15,13.9 13.96,13.5 11.76,12.97C9.64,12.44 7,11.78 7,9C7,7.21 8.47,5.69 10.5,5.18V3H13.5V5.18C15.53,5.69 17,7.21 17,9H15C15,7.92 13.63,7 12,7C10.37,7 9,7.92 9,9C9,10.1 10.04,10.5 12.24,11.03C14.36,11.56 17,12.22 17,15C17,16.79 15.53,18.31 13.5,18.82V21H10.5V18.82C8.47,18.31 7,16.79 7,15Z\";\nexport var mdiCurrencyUsdOff = \"M3,4.27L4.28,3L21,19.72L19.73,21L16.06,17.33C15.44,18 14.54,18.55 13.5,18.82V21H10.5V18.82C8.47,18.31 7,16.79 7,15H9C9,16.08 10.37,17 12,17C13.13,17 14.14,16.56 14.65,15.92L11.68,12.95C9.58,12.42 7,11.75 7,9C7,8.77 7,8.55 7.07,8.34L3,4.27M10.5,5.18V3H13.5V5.18C15.53,5.69 17,7.21 17,9H15C15,7.92 13.63,7 12,7C11.63,7 11.28,7.05 10.95,7.13L9.4,5.58L10.5,5.18Z\";\nexport var mdiCurrentAc = \"M12.43 11C12.28 10.84 10 7 7 7S2.32 10.18 2 11V13H11.57C11.72 13.16 14 17 17 17S21.68 13.82 22 13V11H12.43M7 9C8.17 9 9.18 9.85 10 11H4.31C4.78 10.17 5.54 9 7 9M17 15C15.83 15 14.82 14.15 14 13H19.69C19.22 13.83 18.46 15 17 15Z\";\nexport var mdiCurrentDc = \"M2,9V11H22V9H2M2,13V15H7V13H2M9,13V15H15V13H9M17,13V15H22V13H17Z\";\nexport var mdiCursorDefault = \"M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z\";\nexport var mdiCursorDefaultClick = \"M10.76,8.69A0.76,0.76 0 0,0 10,9.45V20.9C10,21.32 10.34,21.66 10.76,21.66C10.95,21.66 11.11,21.6 11.24,21.5L13.15,19.95L14.81,23.57C14.94,23.84 15.21,24 15.5,24C15.61,24 15.72,24 15.83,23.92L18.59,22.64C18.97,22.46 19.15,22 18.95,21.63L17.28,18L19.69,17.55C19.85,17.5 20,17.43 20.12,17.29C20.39,16.97 20.35,16.5 20,16.21L11.26,8.86L11.25,8.87C11.12,8.76 10.95,8.69 10.76,8.69M15,10V8H20V10H15M13.83,4.76L16.66,1.93L18.07,3.34L15.24,6.17L13.83,4.76M10,0H12V5H10V0M3.93,14.66L6.76,11.83L8.17,13.24L5.34,16.07L3.93,14.66M3.93,3.34L5.34,1.93L8.17,4.76L6.76,6.17L3.93,3.34M7,10H2V8H7V10\";\nexport var mdiCursorDefaultClickOutline = \"M11.5,11L17.88,16.37L17,16.55L16.36,16.67C15.73,16.8 15.37,17.5 15.65,18.07L15.92,18.65L17.28,21.59L15.86,22.25L14.5,19.32L14.24,18.74C13.97,18.15 13.22,17.97 12.72,18.38L12.21,18.78L11.5,19.35V11M10.76,8.69A0.76,0.76 0 0,0 10,9.45V20.9C10,21.32 10.34,21.66 10.76,21.66C10.95,21.66 11.11,21.6 11.24,21.5L13.15,19.95L14.81,23.57C14.94,23.84 15.21,24 15.5,24C15.61,24 15.72,24 15.83,23.92L18.59,22.64C18.97,22.46 19.15,22 18.95,21.63L17.28,18L19.69,17.55C19.85,17.5 20,17.43 20.12,17.29C20.39,16.97 20.35,16.5 20,16.21L11.26,8.86L11.25,8.87C11.12,8.76 10.95,8.69 10.76,8.69M15,10V8H20V10H15M13.83,4.76L16.66,1.93L18.07,3.34L15.24,6.17L13.83,4.76M10,0H12V5H10V0M3.93,14.66L6.76,11.83L8.17,13.24L5.34,16.07L3.93,14.66M3.93,3.34L5.34,1.93L8.17,4.76L6.76,6.17L3.93,3.34M7,10H2V8H7V10\";\nexport var mdiCursorDefaultGesture = \"M15.59 8C15.26 8 15 8.27 15 8.6V17.57C15 17.9 15.26 18.17 15.59 18.17C15.74 18.17 15.86 18.12 15.96 18.04L17.45 16.83L18.74 19.66C18.84 19.88 19.05 20 19.27 20C19.36 20 19.44 20 19.53 19.94L21.67 18.93C21.97 18.79 22.11 18.43 21.95 18.14L20.66 15.3L22.53 14.94C22.65 14.91 22.77 14.85 22.86 14.74C23.07 14.5 23.04 14.12 22.77 13.89L16 8.13C15.88 8.05 15.74 8 15.59 8M12.5 6.73C12.72 6.66 13.17 7.19 13.59 7.76L15 6.71C14.87 6.5 14.69 6.25 14.47 5.96C14.31 5.75 13.59 4.93 12.66 4.8C12.04 4.72 10.81 5.06 10.6 6.61C10.47 7.58 10.76 8.19 11.21 9.08C11.46 9.6 12.04 10.96 12.18 11.78C12.33 12.59 12.06 13.16 11.74 13.12C11.44 13.08 11.2 12.65 11.03 12.41C10.89 12.22 10 10.82 9.67 10.23C9.22 9.5 8.04 7.96 6.44 7.74C4.35 7.46 3.44 9.2 3.18 10.36L1 10.06V11.88L2.93 12.15C2.75 15.6 4.5 16.82 5.67 17C6.92 17.15 8.08 16.28 8.24 15.06C8.41 13.84 7.56 11.5 4.96 10.69C5.1 10.15 5.21 9.43 6.36 9.59C7.26 9.71 8.21 11.26 8.93 12.44C9.58 13.53 10.1 14.39 10.83 14.72C11.45 15 12.16 14.97 12.73 14.65C13.42 14.26 13.86 13.55 14 12.63C14.22 10.9 12.7 8.17 12.57 7.84C12.4 7.46 12.12 6.82 12.5 6.73M6.5 14.78C6.43 15.11 6.1 15.25 5.88 15.22C5.38 15.16 4.66 14.5 4.71 12.53C6.17 13.13 6.53 14.35 6.5 14.78Z\";\nexport var mdiCursorDefaultGestureOutline = \"M16.5 10.54L20.37 13.83L18.5 14.18L19.29 15.92L20.22 17.96L19.72 18.19L18.81 16.2L18 14.43L16.5 15.66V10.54M15.59 8C15.26 8 15 8.27 15 8.6V17.57C15 17.9 15.26 18.17 15.59 18.17C15.74 18.17 15.86 18.12 15.96 18.04L17.45 16.83L18.74 19.66C18.84 19.88 19.05 20 19.27 20C19.36 20 19.44 20 19.53 19.94L21.67 18.93C21.97 18.79 22.11 18.43 21.95 18.14L20.66 15.3L22.53 14.94C22.65 14.91 22.77 14.85 22.86 14.74C23.07 14.5 23.04 14.12 22.77 13.89L16 8.13C15.88 8.05 15.74 8 15.59 8M12.5 6.73C12.72 6.66 13.17 7.19 13.59 7.76L15 6.71C14.87 6.5 14.69 6.25 14.47 5.96C14.31 5.75 13.59 4.93 12.66 4.8C12.04 4.72 10.81 5.06 10.6 6.61C10.47 7.58 10.76 8.19 11.21 9.08C11.46 9.6 12.04 10.96 12.18 11.78C12.33 12.59 12.06 13.16 11.74 13.12C11.44 13.08 11.2 12.65 11.03 12.41C10.89 12.22 10 10.82 9.67 10.23C9.22 9.5 8.04 7.96 6.44 7.74C4.35 7.46 3.44 9.2 3.18 10.36L1 10.06V11.88L2.93 12.15C2.75 15.6 4.5 16.82 5.67 17C6.92 17.15 8.08 16.28 8.24 15.06C8.41 13.84 7.56 11.5 4.96 10.69C5.1 10.15 5.21 9.43 6.36 9.59C7.26 9.71 8.21 11.26 8.93 12.44C9.58 13.53 10.1 14.39 10.83 14.72C11.45 15 12.16 14.97 12.73 14.65C13.42 14.26 13.86 13.55 14 12.63C14.22 10.9 12.7 8.17 12.57 7.84C12.4 7.46 12.12 6.82 12.5 6.73M6.5 14.78C6.43 15.11 6.1 15.25 5.88 15.22C5.38 15.16 4.66 14.5 4.71 12.53C6.17 13.13 6.53 14.35 6.5 14.78Z\";\nexport var mdiCursorDefaultOutline = \"M10.07,14.27C10.57,14.03 11.16,14.25 11.4,14.75L13.7,19.74L15.5,18.89L13.19,13.91C12.95,13.41 13.17,12.81 13.67,12.58L13.95,12.5L16.25,12.05L8,5.12V15.9L9.82,14.43L10.07,14.27M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z\";\nexport var mdiCursorMove = \"M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z\";\nexport var mdiCursorPointer = \"M13.75,10.19L14.38,10.32L18.55,12.4C19.25,12.63 19.71,13.32 19.65,14.06V14.19L19.65,14.32L18.75,20.44C18.69,20.87 18.5,21.27 18.15,21.55C17.84,21.85 17.43,22 17,22H10.12C9.63,22 9.18,21.82 8.85,21.47L2.86,15.5L3.76,14.5C4,14.25 4.38,14.11 4.74,14.13H5.03L9,15V4.5A2,2 0 0,1 11,2.5A2,2 0 0,1 13,4.5V10.19H13.75Z\";\nexport var mdiCursorText = \"M13,19A1,1 0 0,0 14,20H16V22H13.5C12.95,22 12,21.55 12,21C12,21.55 11.05,22 10.5,22H8V20H10A1,1 0 0,0 11,19V5A1,1 0 0,0 10,4H8V2H10.5C11.05,2 12,2.45 12,3C12,2.45 12.95,2 13.5,2H16V4H14A1,1 0 0,0 13,5V19Z\";\nexport var mdiCurtains = \"M23 3H1V1H23V3M2 22H6C6 19 4 17 4 17C10 13 11 4 11 4H2V22M22 4H13C13 4 14 13 20 17C20 17 18 19 18 22H22V4Z\";\nexport var mdiCurtainsClosed = \"M23 3H1V1H23V3M2 22H11V4H2V22M22 4H13V22H22V4Z\";\nexport var mdiCylinder = \"M12 2C9.89 2 3 2.29 3 6V18C3 21.71 9.89 22 12 22C14.11 22 21 21.71 21 18V6C21 2.29 14.11 2 12 2M12 10C13.38 10 16.8 9.87 19 8.75V15.25C16.8 14.13 13.38 14 12 14S7.2 14.13 5 15.25V8.75C7.2 9.87 10.62 10 12 10M12 4C15.87 4 19 4.89 19 6C19 7.11 15.87 8 12 8C8.13 8 5 7.11 5 6C5 4.89 8.13 4 12 4M12 20C8.13 20 5 19.11 5 18C5 16.9 8.13 16 12 16C15.87 16 19 16.9 19 18C19 19.11 15.87 20 12 20Z\";\nexport var mdiCylinderOff = \"M7.64 4.44L6.03 2.83C8.15 2.1 10.82 2 12 2C14.11 2 21 2.29 21 6V17.8L18.06 14.86C18.39 14.97 18.7 15.1 19 15.25V8.75C17.28 9.63 14.82 9.89 13.17 9.97L11.18 8C11.45 8 11.72 8 12 8C15.87 8 19 7.11 19 6S15.87 4 12 4C10.35 4 8.84 4.17 7.64 4.44M22.11 21.46L20.84 22.73L18.91 20.8C16.7 21.87 13.36 22 12 22C9.89 22 3 21.71 3 18V6C3 5.66 3.08 5.36 3.18 5.07L1.11 3L2.39 1.73L22.11 21.46M5 15.25C7.2 14.13 10.62 14 12 14L12.11 14L7.73 9.62C6.76 9.43 5.8 9.15 5 8.75V15.25M17.39 19.28L14.21 16.1C13.5 16.04 12.78 16 12 16C8.13 16 5 16.9 5 18S8.13 20 12 20C14.17 20 16.1 19.72 17.39 19.28Z\";\nexport var mdiDanceBallroom = \"M14 3.5C14 4.33 13.33 5 12.5 5S11 4.33 11 3.5 11.67 2 12.5 2 14 2.67 14 3.5M8.5 5C7.67 5 7 5.67 7 6.5S7.67 8 8.5 8 10 7.33 10 6.5 9.33 5 8.5 5M14 12L13.22 9.75H16.18L18.34 8.67C18.71 8.5 18.86 8.04 18.67 7.67C18.5 7.3 18.04 7.14 17.67 7.33L16.85 7.74L16.36 6.9C16.07 6.25 15.36 5.88 14.66 6.04L12.19 6.57C11.5 6.72 11 7.35 11 8.07V8.77L8.57 10.39H8.58C8.5 10.46 8.39 10.55 8.33 10.67L7.44 12.44L5.66 13.33C5.29 13.5 5.14 13.97 5.33 14.34C5.46 14.6 5.73 14.75 6 14.75C6.11 14.75 6.23 14.73 6.34 14.67L8.56 13.56L9.6 11.5L11 13C10 16 3 20 3 20S7 22 12 22 21 20 21 20 16 16 14 12M16.85 11.09L16.53 11.25H15.33L15.39 11.41C15.91 12.44 16.67 13.5 17.5 14.44L16.97 11.03L16.85 11.09Z\";\nexport var mdiDancePole = \"M12 1V2L11.23 1.36L7.76 5.5L11 7.5V5.16L10.78 5L12 3.56V23H14V13.24L15.93 11.31C18.5 11.71 21.13 10.36 22.66 8.83L21.24 7.41C20.1 8.56 17.7 9.61 16 9.26L14 7.24V1M17 4A2 2 0 0 0 15 6A2 2 0 0 0 17 8A2 2 0 0 0 19 6A2 2 0 0 0 17 4M11 7.76L7.1 11.66C5.25 13.5 4.31 14.85 3.06 18.16L4.94 18.86C5.94 16.2 6.66 15.14 7.87 13.84L9.22 15.19L4.27 20.14L5.69 21.56L11 16.24Z\";\nexport var mdiDataMatrix = \"M2 2V22H22V20H20V18H22V16H20V14H22V12H18V10H16V12H14V10H12V8H8V12H12V16H10V18H12V20H10V18H8V16H6V14H4V12H6V6H4V2H2M6 6H8V2H6V6M8 16H10V14H8V16M18 10H22V8H18V10M18 8V4H16V6H14V8H18M16 4V2H14V4H16M18 4H20V2H18V4M20 4V6H22V4H20M10 2V6H12V2H10M14 14H16V16H18V20H14V14M4 18H6V20H4V18Z\";\nexport var mdiDataMatrixEdit = \"M20 12.1C19.9 12.1 19.7 12.2 19.6 12.3L18.6 13.3L20.7 15.4L21.7 14.4C21.9 14.2 21.9 13.8 21.7 13.6L20.4 12.3C20.3 12.2 20.2 12.1 20 12.1M18.1 13.9L12 19.9V22H14.1L20.2 15.9L18.1 13.9M8 6H6V2H8V6M10 16H8V14H10V16M12 6H10V2H12V6M16 2V4H14V2H16M20 4H18V2H20V4M10 20V18H8V16H6V14H4V12H6V6H4V2H2V22H10V20M6 20H4V18H6V20M22 10H18V8H22V10M20 6V4H22V6H20M18 4V8H14V6H16V4H18M10 18V16H12V12H8V8H12V10H14V12H16V10H18V11.1L15.1 14H14V15.1L11.1 18H10Z\";\nexport var mdiDataMatrixMinus = \"M16 2V4H14V2H16M12 2H10V6H12V2M10 14H8V16H10V14M16 4V6H14V8H18V4H16M8 2H6V6H8V2M20 2H18V4H20V2M13.8 22H2V2H4V6H6V12H4V14H6V16H8V18H10V20H12V18H10V16H12V12H8V8H12V10H14V12H16V10H18V12H22V13.8C21.1 13.3 20.1 13 19 13C17.8 13 16.6 13.4 15.7 14H14V15.7C13.4 16.6 13 17.8 13 19C13 20.1 13.3 21.1 13.8 22M6 18H4V20H6V18M22 8H18V10H22V8M22 6V4H20V6H22M15 18V20H23V18H15Z\";\nexport var mdiDataMatrixPlus = \"M16 2V4H14V2H16M12 2H10V6H12V2M10 14H8V16H10V14M16 4V6H14V8H18V4H16M8 2H6V6H8V2M20 2H18V4H20V2M13.8 22H2V2H4V6H6V12H4V14H6V16H8V18H10V20H12V18H10V16H12V12H8V8H12V10H14V12H16V10H18V12H22V13.8C21.1 13.3 20.1 13 19 13C17.8 13 16.6 13.4 15.7 14H14V15.7C13.4 16.6 13 17.8 13 19C13 20.1 13.3 21.1 13.8 22M6 18H4V20H6V18M22 8H18V10H22V8M22 6V4H20V6H22M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiDataMatrixRemove = \"M16 2V4H14V2H16M12 2H10V6H12V2M10 14H8V16H10V14M16 4V6H14V8H18V4H16M8 2H6V6H8V2M20 2H18V4H20V2M13.8 22H2V2H4V6H6V12H4V14H6V16H8V18H10V20H12V18H10V16H12V12H8V8H12V10H14V12H16V10H18V12H22V13.8C21.1 13.3 20.1 13 19 13C17.8 13 16.6 13.4 15.7 14H14V15.7C13.4 16.6 13 17.8 13 19C13 20.1 13.3 21.1 13.8 22M6 18H4V20H6V18M22 8H18V10H22V8M22 6V4H20V6H22M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiDataMatrixScan = \"M2 2H6V0H2C.9 0 0 .9 0 2V6H2V2M22 0H18V2H22V6H24V2C24 .9 23.1 0 22 0M2 18H0V22C0 23.1 .9 24 2 24H6V22H2V18M22 22H18V24H22C23.1 24 24 23.1 24 22V18H22V22M8 6V4H10V6H8M10 14V12H12V14H10M16 4H18V6H16V4M18 6H20V8H18V6M18 14H20V16H18V14M20 12H16V18H20V20H4V4H6V6H8V10H6V12H8V14H10V16H12V18H14V16H12V14H14V10H10V6H12V4H14V8H16V10H20V12M8 18V16H6V18H8Z\";\nexport var mdiDatabase = \"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z\";\nexport var mdiDatabaseAlert = \"M18 7C18 9.21 14.42 11 10 11S2 9.21 2 7 5.58 3 10 3 18 4.79 18 7M10 18C5.58 18 2 16.21 2 14V17C2 19.21 5.58 21 10 21S18 19.21 18 17V14C18 16.21 14.42 18 10 18M10 13C5.58 13 2 11.21 2 9V12C2 14.21 5.58 16 10 16S18 14.21 18 12V9C18 11.21 14.42 13 10 13M20 17H22V15H20V17M20 7V13H22V7H20Z\";\nexport var mdiDatabaseAlertOutline = \"M10 3C5.58 3 2 4.79 2 7V17C2 19.21 5.59 21 10 21S18 19.21 18 17V7C18 4.79 14.42 3 10 3M16 17C16 17.5 13.87 19 10 19S4 17.5 4 17V14.77C5.61 15.55 7.72 16 10 16S14.39 15.55 16 14.77V17M16 12.45C14.7 13.4 12.42 14 10 14S5.3 13.4 4 12.45V9.64C5.47 10.47 7.61 11 10 11S14.53 10.47 16 9.64V12.45M10 9C6.13 9 4 7.5 4 7S6.13 5 10 5 16 6.5 16 7 13.87 9 10 9M22 7V13H20V7H22M20 15H22V17H20V15Z\";\nexport var mdiDatabaseArrowDown = \"M19 13C16.83 13 14.93 14.16 13.88 15.89C13.28 15.96 12.65 16 12 16C7.58 16 4 14.21 4 12V9C4 11.21 7.58 13 12 13S20 11.21 20 9V12C20 12.36 19.9 12.71 19.72 13.05C19.5 13 19.24 13 19 13M12 11C16.42 11 20 9.21 20 7S16.42 3 12 3 4 4.79 4 7 7.58 11 12 11M13.1 17.96C12.74 18 12.37 18 12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19C13 18.64 13.04 18.3 13.1 17.96M20 20V16H18V20H16L19 23L22 20H20Z\";\nexport var mdiDatabaseArrowDownOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M22 20L19 23L16 20H18V16H20V20H22Z\";\nexport var mdiDatabaseArrowLeft = \"M4 7C4 4.79 7.58 3 12 3S20 4.79 20 7 16.42 11 12 11 4 9.21 4 7M19.72 13.05C19.9 12.71 20 12.36 20 12V9C20 11.21 16.42 13 12 13S4 11.21 4 9V12C4 14.21 7.58 16 12 16C12.65 16 13.28 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.24 13 19.5 13 19.72 13.05M13.1 17.96C12.74 18 12.37 18 12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19C13 18.64 13.04 18.3 13.1 17.96M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiDatabaseArrowLeftOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M22 18V20H18V22L15 19L18 16V18H22Z\";\nexport var mdiDatabaseArrowRight = \"M4 7C4 4.79 7.58 3 12 3S20 4.79 20 7 16.42 11 12 11 4 9.21 4 7M19.72 13.05C19.9 12.71 20 12.36 20 12V9C20 11.21 16.42 13 12 13S4 11.21 4 9V12C4 14.21 7.58 16 12 16C12.65 16 13.28 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.24 13 19.5 13 19.72 13.05M13.1 17.96C12.74 18 12.37 18 12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19C13 18.64 13.04 18.3 13.1 17.96M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiDatabaseArrowRightOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M20 22V20H16V18H20V16L23 19L20 22Z\";\nexport var mdiDatabaseArrowUp = \"M19 13C16.83 13 14.93 14.16 13.88 15.89C13.28 15.96 12.65 16 12 16C7.58 16 4 14.21 4 12V9C4 11.21 7.58 13 12 13S20 11.21 20 9V12C20 12.36 19.9 12.71 19.72 13.05C19.5 13 19.24 13 19 13M12 11C16.42 11 20 9.21 20 7S16.42 3 12 3 4 4.79 4 7 7.58 11 12 11M13.1 17.96C12.74 18 12.37 18 12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19C13 18.64 13.04 18.3 13.1 17.96M19 15L16 18H18V22H20V18H22L19 15Z\";\nexport var mdiDatabaseArrowUpOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M22 18H20V22H18V18H16L19 15L22 18Z\";\nexport var mdiDatabaseCheck = \"M12 3C16.42 3 20 4.79 20 7S16.42 11 12 11 4 9.21 4 7 7.58 3 12 3M4 9C4 11.21 7.58 13 12 13S20 11.21 20 9V12.08L19 12C16.41 12 14.2 13.64 13.36 15.94L12 16C7.58 16 4 14.21 4 12V9M4 14C4 16.21 7.58 18 12 18H13C13 19.05 13.27 20.04 13.75 20.9L12 21C7.58 21 4 19.21 4 17V14M18 21.08L15.25 18.08L16.41 16.92L18 18.5L21.59 14.92L22.75 16.33L18 21.08\";\nexport var mdiDatabaseCheckOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiDatabaseClock = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C13.61 23 11.5 21.8 10.25 20C6.18 19.79 3 18.08 3 16V13C3 14.88 5.58 16.44 9.06 16.88C9.03 16.59 9 16.3 9 16C9 15.62 9.04 15.25 9.1 14.88C5.6 14.45 3 12.88 3 11V8C3 10.09 6.2 11.8 10.27 12C10.87 11.14 11.64 10.44 12.53 9.93C12.04 9.97 11.5 10 11 10C6.58 10 3 8.21 3 6S6.58 2 11 2 19 3.79 19 6C19 7.2 17.93 8.28 16.25 9C17 9.04 17.75 9.19 18.44 9.45C18.79 9 19 8.5 19 8V9.68C21.36 10.81 23 13.21 23 16M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiDatabaseClockOutline = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C13.61 23 11.5 21.8 10.25 20C6.19 19.79 3 18.08 3 16V6C3 3.79 6.58 2 11 2S19 3.79 19 6V9.68C21.36 10.81 23 13.21 23 16M17 9.08V8.64C16.77 8.77 16.5 8.9 16.24 9C16.5 9 16.75 9.04 17 9.08M5 6C5 6.5 7.13 8 11 8S17 6.5 17 6 14.87 4 11 4 5 5.5 5 6M5 11.45C6.07 12.23 7.8 12.76 9.72 12.93C10.33 11.67 11.32 10.62 12.54 9.92C12.04 9.97 11.53 10 11 10C8.61 10 6.47 9.47 5 8.64V11.45M9.26 17.87C9.1 17.27 9 16.65 9 16C9 15.61 9.04 15.23 9.1 14.86C7.56 14.69 6.15 14.33 5 13.77V16C5 16.42 6.5 17.5 9.26 17.87M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiDatabaseCog = \"M4 7C4 4.79 7.58 3 12 3S20 4.79 20 7 16.42 11 12 11 4 9.21 4 7M12.08 18L12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C12.1 21 12.2 21 12.29 21C12.11 20.36 12 19.69 12 19C12 18.66 12.03 18.33 12.08 18M20 12.08C20 12.05 20 12.03 20 12V9C20 11.21 16.42 13 12 13S4 11.21 4 9V12C4 14.21 7.58 16 12 16C12.23 16 12.46 16 12.69 16C13.82 13.63 16.22 12 19 12C19.34 12 19.67 12.03 20 12.08M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiDatabaseCogOutline = \"M12 14C9.58 14 7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.08C18.33 12.03 18.66 12 19 12C19.34 12 19.67 12.03 20 12.08V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.1 21 12.2 21 12.29 21C12.11 20.36 12 19.69 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.24 16 12.47 16 12.7 15.97C13.1 15.14 13.65 14.41 14.32 13.81C13.58 13.93 12.8 14 12 14M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M22.7 19.6V18.6L23.8 17.8C23.9 17.7 24 17.6 23.9 17.5L22.9 15.8C22.9 15.7 22.7 15.7 22.6 15.7L21.4 16.2C21.1 16 20.8 15.8 20.5 15.7L20.3 14.4C20.3 14.3 20.2 14.2 20.1 14.2H18.1C17.9 14.2 17.8 14.3 17.8 14.4L17.6 15.7C17.3 15.9 17.1 16 16.8 16.2L15.6 15.7C15.5 15.7 15.4 15.7 15.3 15.8L14.3 17.5C14.3 17.6 14.3 17.7 14.4 17.8L15.5 18.6V19.6L14.4 20.4C14.3 20.5 14.2 20.6 14.3 20.7L15.3 22.4C15.4 22.5 15.5 22.5 15.6 22.5L16.8 22C17 22.2 17.3 22.4 17.6 22.5L17.8 23.8C17.9 23.9 18 24 18.1 24H20.1C20.2 24 20.3 23.9 20.3 23.8L20.5 22.5C20.8 22.3 21 22.2 21.3 22L22.5 22.4C22.6 22.4 22.7 22.4 22.8 22.3L23.8 20.6C23.9 20.5 23.9 20.4 23.8 20.4L22.7 19.6M19 20.5C18.2 20.5 17.5 19.8 17.5 19S18.2 17.5 19 17.5 20.5 18.2 20.5 19 19.8 20.5 19 20.5Z\";\nexport var mdiDatabaseEdit = \"M4,14V17C4,19 7.05,20.72 11,21V18.11L11.13,18C7.12,17.76 4,16.06 4,14M12,13C7.58,13 4,11.21 4,9V12C4,14.21 7.58,16 12,16C12.39,16 12.77,16 13.16,16L17,12.12C15.4,12.72 13.71,13 12,13M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M21,11.13C20.85,11.13 20.71,11.19 20.61,11.3L19.61,12.3L21.66,14.3L22.66,13.3C22.87,13.1 22.88,12.76 22.66,12.53L21.42,11.3C21.32,11.19 21.18,11.13 21.04,11.13M19.04,12.88L13,18.94V21H15.06L21.12,14.93L19.04,12.88Z\";\nexport var mdiDatabaseEditOutline = \"M12 16C12.8 16 13.57 15.93 14.31 15.82L17.22 12.91C15.89 13.59 14 14 12 14C9.58 14 7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.13L19.39 10.74C19.57 10.56 19.78 10.42 20 10.3V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.04 7.06 20.72 11 20.97V19.13L11.17 18.96C7.84 18.76 6 17.46 6 17V14.77C7.61 15.55 9.72 16 12 16M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19Z\";\nexport var mdiDatabaseExport = \"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C12.5,11 13,10.97 13.5,10.92V9.5H16.39L15.39,8.5L18.9,5C17.5,3.8 14.94,3 12,3M18.92,7.08L17.5,8.5L20,11H15V13H20L17.5,15.5L18.92,16.92L23.84,12M4,9V12C4,14.21 7.58,16 12,16C13.17,16 14.26,15.85 15.25,15.63L16.38,14.5H13.5V12.92C13,12.97 12.5,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C14.94,21 17.5,20.2 18.9,19L17,17.1C15.61,17.66 13.9,18 12,18C7.58,18 4,16.21 4,14Z\";\nexport var mdiDatabaseExportOutline = \"M17.86 18L18.9 19C17.5 20.2 14.94 21 12 21C7.59 21 4 19.21 4 17V7C4 4.79 7.58 3 12 3C14.95 3 17.5 3.8 18.9 5L17.86 6L17.5 6.4C16.65 5.77 14.78 5 12 5C8.13 5 6 6.5 6 7S8.13 9 12 9C13.37 9 14.5 8.81 15.42 8.54L16.38 9.5H13.5V10.92C13 10.97 12.5 11 12 11C9.61 11 7.47 10.47 6 9.64V12.45C7.3 13.4 9.58 14 12 14C12.5 14 13 13.97 13.5 13.92V14.5H16.38L15.38 15.5L15.5 15.61C14.41 15.86 13.24 16 12 16C9.72 16 7.61 15.55 6 14.77V17C6 17.5 8.13 19 12 19C14.78 19 16.65 18.23 17.5 17.61L17.86 18M18.92 7.08L17.5 8.5L20 11H15V13H20L17.5 15.5L18.92 16.92L23.84 12L18.92 7.08Z\";\nexport var mdiDatabaseEye = \"M4 12V9C4 11.2 7.6 13 12 13S20 11.2 20 9V12C20 12.5 19.8 12.9 19.5 13.4C18.7 13.1 17.9 13 17 13C14.5 13 12.1 14.1 10.6 15.9C6.8 15.6 4 14 4 12M12 11C16.4 11 20 9.2 20 7S16.4 3 12 3 4 4.8 4 7 7.6 11 12 11M9.1 19.7L8.8 19L9.1 18.3C9.2 18.1 9.3 18 9.3 17.8C6.2 17.2 4 15.8 4 14V17C4 18.8 6.4 20.3 9.7 20.8C9.5 20.5 9.3 20.1 9.1 19.7M17 18C16.4 18 16 18.4 16 19S16.4 20 17 20 18 19.6 18 19 17.6 18 17 18M23 19C22.1 21.3 19.7 23 17 23S11.9 21.3 11 19C11.9 16.7 14.3 15 17 15S22.1 16.7 23 19M19.5 19C19.5 17.6 18.4 16.5 17 16.5S14.5 17.6 14.5 19 15.6 21.5 17 21.5 19.5 20.4 19.5 19Z\";\nexport var mdiDatabaseEyeOff = \"M14.1 10.9L7.1 3.9C8.4 3.3 10.1 3 12 3C16.4 3 20 4.8 20 7C20 8.9 17.5 10.4 14.1 10.9M16.2 13H17C17.9 13 18.7 13.1 19.5 13.4C19.8 13 20 12.5 20 12V9C20 10.5 18.3 11.9 15.7 12.5L16.2 13M18.4 15.2L22.8 19.6C22.9 19.4 23 19.2 23.1 19.1C22.2 17.1 20.5 15.6 18.4 15.2M22.1 21.5L20.8 22.8L20.2 22.2C19.2 22.7 18.1 23.1 17 23.1C14.3 23.1 11.9 21.4 11 19.1C11.6 17.7 12.6 16.6 13.9 15.9L12.4 14.4C11.7 14.8 11.1 15.4 10.5 16C6.8 15.6 4 14 4 12V9C4 11.1 7.1 12.7 11.1 13L8.8 10.7C6 10 4 8.6 4 7C4 6.7 4.1 6.4 4.2 6.1L1.1 3L2.4 1.7L22.1 21.5M18.8 20.7L17.7 19.6C17.6 19.9 17.3 20 17 20C16.4 20 16 19.6 16 19C16 18.7 16.1 18.4 16.4 18.2L15.3 17.1C14.8 17.6 14.5 18.2 14.5 18.9C14.5 20.3 15.6 21.4 17 21.4C17.7 21.5 18.4 21.2 18.8 20.7M8.8 19L9.1 18.3C9.2 18.1 9.3 18 9.3 17.8C6.2 17.2 4 15.8 4 14V17C4 18.8 6.4 20.3 9.7 20.8C9.5 20.5 9.3 20.1 9.2 19.7L8.8 19Z\";\nexport var mdiDatabaseEyeOffOutline = \"M23 19C22.9 19.2 22.8 19.4 22.7 19.5L18.3 15.1C20.5 15.6 22.2 17.1 23 19M12 5C15.9 5 18 6.5 18 7C18 7.5 15.9 8.9 12.2 9L14.1 10.9C15.6 10.7 17 10.3 18 9.7V12.5C17.7 12.7 17.4 12.9 17 13.1C18 13.1 19 13.3 20 13.7V7C20 4.8 16.4 3 12 3C10.1 3 8.4 3.3 7.1 3.9L8.7 5.5C9.5 5.2 10.7 5 12 5M22.1 21.5L20.8 22.8L20.2 22.2C19.2 22.7 18.1 23.1 17 23.1C14.3 23.1 11.9 21.4 11 19.1C11.6 17.7 12.6 16.6 13.9 15.9L12.4 14.4C11.7 14.8 11.1 15.4 10.5 16C8.8 15.9 7.2 15.5 5.9 14.8V17C5.9 17.3 7 18.2 8.9 18.6L8.8 19L9.1 19.7C9.3 20.1 9.4 20.4 9.6 20.8C6.4 20.3 4 18.8 4 17V7C4 6.7 4.1 6.4 4.2 6.1L1.1 3L2.4 1.7L22.1 21.5M12.1 14L8.7 10.6C7.6 10.4 6.7 10 5.9 9.6V12.4C7.2 13.4 9.5 13.9 11.9 13.9C12 14 12.1 14 12.1 14M18.8 20.7L17.7 19.6C17.6 19.9 17.3 20 17 20C16.4 20 16 19.6 16 19C16 18.7 16.1 18.4 16.4 18.2L15.3 17.1C14.8 17.6 14.5 18.2 14.5 18.9C14.5 20.3 15.6 21.4 17 21.4C17.7 21.5 18.4 21.2 18.8 20.7Z\";\nexport var mdiDatabaseEyeOutline = \"M9.1 19.7L8.8 19L9 18.6C7.1 18.1 6 17.3 6 17V14.8C7.3 15.4 8.8 15.8 10.6 16C11.3 15.2 12.2 14.5 13.1 14H12C9.6 14 7.3 13.4 6 12.5V9.6C7.5 10.4 9.6 11 12 11S16.5 10.5 18 9.6V12.4C17.7 12.6 17.4 12.8 17 13C18 13 19 13.2 20 13.6V7C20 4.8 16.4 3 12 3S4 4.8 4 7V17C4 18.8 6.4 20.3 9.7 20.8C9.5 20.5 9.3 20.1 9.1 19.7M12 5C15.9 5 18 6.5 18 7S15.9 9 12 9 6 7.5 6 7 8.1 5 12 5M17 18C17.6 18 18 18.4 18 19S17.6 20 17 20 16 19.6 16 19 16.4 18 17 18M17 15C14.3 15 11.9 16.7 11 19C11.9 21.3 14.3 23 17 23S22.1 21.3 23 19C22.1 16.7 19.7 15 17 15M17 21.5C15.6 21.5 14.5 20.4 14.5 19S15.6 16.5 17 16.5 19.5 17.6 19.5 19 18.4 21.5 17 21.5Z\";\nexport var mdiDatabaseImport = \"M12,3C8.59,3 5.69,4.07 4.54,5.57L9.79,10.82C10.5,10.93 11.22,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M3.92,7.08L2.5,8.5L5,11H0V13H5L2.5,15.5L3.92,16.92L8.84,12M20,9C20,11.21 16.42,13 12,13C11.34,13 10.7,12.95 10.09,12.87L7.62,15.34C8.88,15.75 10.38,16 12,16C16.42,16 20,14.21 20,12M20,14C20,16.21 16.42,18 12,18C9.72,18 7.67,17.5 6.21,16.75L4.53,18.43C5.68,19.93 8.59,21 12,21C16.42,21 20,19.21 20,17\";\nexport var mdiDatabaseImportOutline = \"M8.84 12L3.92 16.92L2.5 15.5L5 13H0V11H5L2.5 8.5L3.92 7.08L8.84 12M12 3C8.59 3 5.68 4.07 4.53 5.57L5 6L6.03 7.07C6 7.05 6 7 6 7C6 6.5 8.13 5 12 5S18 6.5 18 7 15.87 9 12 9C9.38 9 7.58 8.31 6.68 7.72L9.8 10.84C10.5 10.94 11.24 11 12 11C14.39 11 16.53 10.47 18 9.64V12.45C16.7 13.4 14.42 14 12 14C11.04 14 10.1 13.9 9.24 13.73L7.59 15.37C8.91 15.77 10.41 16 12 16C14.28 16 16.39 15.55 18 14.77V17C18 17.5 15.87 19 12 19S6 17.5 6 17V16.96L5 18L4.54 18.43C5.69 19.93 8.6 21 12 21C16.41 21 20 19.21 20 17V7C20 4.79 16.42 3 12 3Z\";\nexport var mdiDatabaseLock = \"M11,3C15.42,3 19,4.79 19,7C19,9.21 15.42,11 11,11C6.58,11 3,9.21 3,7C3,4.79 6.58,3 11,3M19,12.03C17.11,12.24 15.57,13.62 15.13,15.43C13.92,15.79 12.5,16 11,16C6.58,16 3,14.21 3,12V9C3,11.21 6.58,13 11,13C15.42,13 19,11.21 19,9V12.03M14,17.71V20.71C13.07,20.9 12.06,21 11,21C6.58,21 3,19.21 3,17V14C3,16.21 6.58,18 11,18C12.06,18 13.07,17.9 14,17.71M19.5,14A2.5,2.5 0 0,1 22,16.5V17A1,1 0 0,1 23,18V22A1,1 0 0,1 22,23H17A1,1 0 0,1 16,22V18A1,1 0 0,1 17,17V16.5A2.5,2.5 0 0,1 19.5,14M19.5,15A1.5,1.5 0 0,0 18,16.5V17H21V16.5A1.5,1.5 0 0,0 19.5,15Z\";\nexport var mdiDatabaseLockOutline = \"M6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V11.05C18.17 11.03 18.33 11 18.5 11C19.03 11 19.53 11.1 20 11.26V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.34 21 12.67 21 13 20.97V18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.41 16 12.81 15.97 13.21 15.94C13.4 15.46 13.68 15.03 14.07 14.7C14.13 14.39 14.23 14.09 14.34 13.8C13.6 13.93 12.81 14 12 14C9.58 14 7.3 13.4 6 12.45M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M21 16V15.5C21 14.12 19.88 13 18.5 13S16 14.12 16 15.5V16C15.45 16 15 16.45 15 17V21C15 21.55 15.45 22 16 22H21C21.55 22 22 21.55 22 21V17C22 16.45 21.55 16 21 16M20 16H17V15.5C17 14.67 17.67 14 18.5 14S20 14.67 20 15.5V16Z\";\nexport var mdiDatabaseMarker = \"M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8M4 12V9C4 11.21 7.58 13 12 13C12.57 13 13.13 12.97 13.67 12.91C13.25 13.69 13 14.57 13 15.5C13 15.65 13 15.81 13.03 15.96C12.69 16 12.35 16 12 16C7.58 16 4 14.21 4 12M4 7C4 4.79 7.58 3 12 3S20 4.79 20 7 16.42 11 12 11 4 9.21 4 7M15 20.71C14.07 20.9 13.06 21 12 21C7.58 21 4 19.21 4 17V14C4 16.21 7.58 18 12 18C12.5 18 13.03 17.97 13.5 17.93C13.9 18.91 14.44 19.87 15 20.71Z\";\nexport var mdiDatabaseMarkerOutline = \"M12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.35 16 12.69 15.97 13.03 15.95C13 15.8 13 15.65 13 15.5C13 14.96 13.09 14.44 13.24 13.94C12.83 14 12.42 14 12 14C9.58 14 7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V10.03C18.17 10 18.33 10 18.5 10C19 10 19.5 10.08 20 10.22V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C13.06 21 14.07 20.89 15 20.71C14.62 20.14 14.25 19.5 13.93 18.85C13.34 18.94 12.71 19 12 19M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8Z\";\nexport var mdiDatabaseMinus = \"M23 17V19H15V17M12 3C16.42 3 20 4.79 20 7S16.42 11 12 11 4 9.21 4 7 7.58 3 12 3M4 9C4 11.21 7.58 13 12 13S20 11.21 20 9V12.08L19 12C16.41 12 14.2 13.64 13.36 15.94L12 16C7.58 16 4 14.21 4 12V9M4 14C4 16.21 7.58 18 12 18H13C13 19.05 13.27 20.04 13.75 20.9L12 21C7.58 21 4 19.21 4 17V14Z\";\nexport var mdiDatabaseMinusOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M23 18V20H15V18H23Z\";\nexport var mdiDatabaseOff = \"M19.07 15.87C19.66 15.31 20 14.68 20 14V16.8L19.07 15.87M20 9C20 10.54 18.27 11.86 15.73 12.53L17.89 14.69C19.19 14 20 13.04 20 12V9M20 7C20 4.79 16.42 3 12 3C10.13 3 8.42 3.33 7.06 3.86L14.06 10.86C17.5 10.41 20 8.85 20 7M2.39 1.73L1.11 3L4.21 6.1C4.08 6.39 4 6.69 4 7C4 8.63 5.96 10.04 8.77 10.66L11.08 12.97C7.1 12.74 4 11.06 4 9V12C4 14.21 7.58 16 12 16C12.69 16 13.35 15.95 14 15.87L15.66 17.55C14.57 17.84 13.32 18 12 18C7.58 18 4 16.21 4 14V17C4 19.21 7.58 21 12 21C14.31 21 16.38 20.5 17.84 19.73L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiDatabaseOffOutline = \"M2.39 1.73L1.11 3L4.21 6.1C4.08 6.39 4 6.69 4 7V17C4 19.21 7.59 21 12 21C14.3 21 16.38 20.5 17.84 19.73L20.84 22.73L22.11 21.46L2.39 1.73M6 9.64C6.76 10.07 7.7 10.42 8.76 10.65L12.11 14C12.07 14 12.04 14 12 14C9.58 14 7.3 13.4 6 12.45V9.64M12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.68 16 13.34 15.95 14 15.87L16.34 18.23C15.33 18.65 13.87 19 12 19M8.64 5.44L7.06 3.86C8.42 3.33 10.13 3 12 3C16.42 3 20 4.79 20 7V16.8L18 14.8V14.77L18 14.78L16.45 13.25C17.05 13.03 17.58 12.76 18 12.45V9.64C16.97 10.22 15.61 10.65 14.06 10.86L12.19 9C15.94 8.94 18 7.5 18 7C18 6.5 15.87 5 12 5C10.66 5 9.54 5.18 8.64 5.44Z\";\nexport var mdiDatabaseOutline = \"M12 3C7.58 3 4 4.79 4 7V17C4 19.21 7.59 21 12 21S20 19.21 20 17V7C20 4.79 16.42 3 12 3M18 17C18 17.5 15.87 19 12 19S6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16S16.39 15.55 18 14.77V17M18 12.45C16.7 13.4 14.42 14 12 14C9.58 14 7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11C14.39 11 16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5C15.87 5 18 6.5 18 7S15.87 9 12 9Z\";\nexport var mdiDatabasePlus = \"M18,14H20V17H23V19H20V22H18V19H15V17H18V14M12,3C16.42,3 20,4.79 20,7C20,9.21 16.42,11 12,11C7.58,11 4,9.21 4,7C4,4.79 7.58,3 12,3M4,9C4,11.21 7.58,13 12,13C16.42,13 20,11.21 20,9V9L20,12.08L19,12C16.41,12 14.2,13.64 13.36,15.94L12,16C7.58,16 4,14.21 4,12V9M4,14C4,16.21 7.58,18 12,18H13C13,19.05 13.27,20.04 13.75,20.9L12,21C7.58,21 4,19.21 4,17V14Z\";\nexport var mdiDatabasePlusOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiDatabaseRefresh = \"M12 3C16.42 3 20 4.79 20 7C20 9.21 16.42 11 12 11C7.58 11 4 9.21 4 7C4 4.79 7.58 3 12 3M4 9C4 11.21 7.58 13 12 13C13.11 13 14.18 12.89 15.14 12.68C14.19 13.54 13.5 14.67 13.18 15.96L12 16C7.58 16 4 14.21 4 12V9M20 9V11L19.5 11L18.9 11.03C19.6 10.43 20 9.74 20 9M4 14C4 16.21 7.58 18 12 18L13 17.97C13.09 19.03 13.42 20 13.95 20.88L12 21C7.58 21 4 19.21 4 17V14M19 13.5C20.11 13.5 21.11 13.95 21.83 14.67L23 13.5V17.5H19L20.77 15.73C20.32 15.28 19.69 15 19 15C17.62 15 16.5 16.12 16.5 17.5C16.5 18.88 17.62 20 19 20C19.82 20 20.54 19.61 21 19H22.71C22.12 20.47 20.68 21.5 19 21.5C16.79 21.5 15 19.71 15 17.5C15 15.29 16.79 13.5 19 13.5Z\";\nexport var mdiDatabaseRefreshOutline = \"M6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.03C18.17 12 18.33 12 18.5 12C19 12 19.5 12.07 20 12.18V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.17 21 12.33 21 12.5 21C12.24 20.37 12.09 19.7 12.03 19L12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.17 16 12.34 16 12.5 16C12.85 15.18 13.34 14.46 13.95 13.86C13.32 13.95 12.67 14 12 14C9.58 14 7.3 13.4 6 12.45M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M18 18.5L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18Z\";\nexport var mdiDatabaseRemove = \"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.47L22.53,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.53L15.47,20.12L17.59,18L15.46,15.88M12,3C16.42,3 20,4.79 20,7C20,9.21 16.42,11 12,11C7.58,11 4,9.21 4,7C4,4.79 7.58,3 12,3M4,9C4,11.21 7.58,13 12,13C16.42,13 20,11.21 20,9V12.08L19,12C16.41,12 14.2,13.64 13.36,15.94L12,16C7.58,16 4,14.21 4,12V9M4,14C4,16.21 7.58,18 12,18H13C13,19.05 13.27,20.04 13.75,20.9L12,21C7.58,21 4,19.21 4,17V14Z\";\nexport var mdiDatabaseRemoveOutline = \"M20 13.09V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.46 21 12.9 21 13.33 20.94C13.12 20.33 13 19.68 13 19L13 18.95C12.68 19 12.35 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16C12.65 16 13.27 15.96 13.88 15.89C14.93 14.16 16.83 13 19 13C19.34 13 19.67 13.04 20 13.09M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19\";\nexport var mdiDatabaseSearch = \"M18.68,12.32C16.92,10.56 14.07,10.57 12.32,12.33C10.56,14.09 10.56,16.94 12.32,18.69C13.81,20.17 16.11,20.43 17.89,19.32L21,22.39L22.39,21L19.3,17.89C20.43,16.12 20.17,13.8 18.68,12.32M17.27,17.27C16.29,18.25 14.71,18.24 13.73,17.27C12.76,16.29 12.76,14.71 13.74,13.73C14.71,12.76 16.29,12.76 17.27,13.73C18.24,14.71 18.24,16.29 17.27,17.27M10.9,20.1C10.25,19.44 9.74,18.65 9.42,17.78C6.27,17.25 4,15.76 4,14V17C4,19.21 7.58,21 12,21V21C11.6,20.74 11.23,20.44 10.9,20.1M4,9V12C4,13.68 6.07,15.12 9,15.7C9,15.63 9,15.57 9,15.5C9,14.57 9.2,13.65 9.58,12.81C6.34,12.3 4,10.79 4,9M12,3C7.58,3 4,4.79 4,7C4,9 7,10.68 10.85,11H10.9C12.1,9.74 13.76,9 15.5,9C16.41,9 17.31,9.19 18.14,9.56C19.17,9.09 19.87,8.12 20,7C20,4.79 16.42,3 12,3Z\";\nexport var mdiDatabaseSearchOutline = \"M11 18.95C7.77 18.72 6 17.45 6 17V14.77C7.13 15.32 8.5 15.69 10 15.87C10 15.21 10.04 14.54 10.21 13.89C8.5 13.67 6.97 13.16 6 12.45V9.64C7.43 10.45 9.5 10.97 11.82 11C11.85 10.97 11.87 10.93 11.9 10.9C14.1 8.71 17.5 8.41 20 10.03V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.34 21 12.68 21 13 20.97C12.62 20.72 12.24 20.44 11.9 20.1C11.55 19.74 11.25 19.36 11 18.95M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M20.31 17.9C20.75 17.21 21 16.38 21 15.5C21 13 19 11 16.5 11S12 13 12 15.5 14 20 16.5 20C17.37 20 18.19 19.75 18.88 19.32L22 22.39L23.39 21L20.31 17.9M16.5 18C15.12 18 14 16.88 14 15.5S15.12 13 16.5 13 19 14.12 19 15.5 17.88 18 16.5 18Z\";\nexport var mdiDatabaseSettings = \"M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22M12,3C16.42,3 20,4.79 20,7C20,9.21 16.42,11 12,11C7.58,11 4,9.21 4,7C4,4.79 7.58,3 12,3M4,9C4,11.21 7.58,13 12,13C16.42,13 20,11.21 20,9V12C20,14.21 16.42,16 12,16C7.58,16 4,14.21 4,12V9M4,14C4,16.21 7.58,18 12,18C16.42,18 20,16.21 20,14V17C20,18.19 18.95,19.27 17.29,20H6.71C5.05,19.27 4,18.19 4,17V14Z\";\nexport var mdiDatabaseSettingsOutline = \"M12 3C7.58 3 4 4.79 4 7V17C4 18.2 5.06 19.27 6.73 20H17.27C18.94 19.27 20 18.2 20 17V7C20 4.79 16.42 3 12 3M18 17C18 17.5 15.87 19 12 19S6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16S16.39 15.55 18 14.77V17M18 12.45C16.7 13.4 14.42 14 12 14S7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V12.45M12 9C8.13 9 6 7.5 6 7S8.13 5 12 5 18 6.5 18 7 15.87 9 12 9M7 22H9V24H7V22M15 22H17V24H15V22M11 22H13V24H11V22Z\";\nexport var mdiDatabaseSync = \"M19,12V13.5A4,4 0 0,1 23,17.5C23,18.32 22.75,19.08 22.33,19.71L21.24,18.62C21.41,18.28 21.5,17.9 21.5,17.5A2.5,2.5 0 0,0 19,15V16.5L16.75,14.25L19,12M19,23V21.5A4,4 0 0,1 15,17.5C15,16.68 15.25,15.92 15.67,15.29L16.76,16.38C16.59,16.72 16.5,17.1 16.5,17.5A2.5,2.5 0 0,0 19,20V18.5L21.25,20.75L19,23M12,3C16.42,3 20,4.79 20,7C20,9.21 16.42,11 12,11C7.58,11 4,9.21 4,7C4,4.79 7.58,3 12,3M4,9C4,11.21 7.58,13 12,13C13.11,13 14.17,12.89 15.14,12.68C14.19,13.54 13.5,14.67 13.18,15.96L12,16C7.58,16 4,14.21 4,12V9M20,9V11H19.5L18.9,11.03C19.6,10.43 20,9.74 20,9M4,14C4,16.21 7.58,18 12,18L13,17.97C13.09,19.03 13.42,20 13.95,20.88L12,21C7.58,21 4,19.21 4,17V14Z\";\nexport var mdiDatabaseSyncOutline = \"M12 16C12.41 16 12.81 15.97 13.21 15.94C13.4 15.18 13.72 14.46 14.16 13.83C13.47 13.94 12.74 14 12 14C9.58 14 7.3 13.4 6 12.45V9.64C7.47 10.47 9.61 11 12 11S16.53 10.47 18 9.64V11.19C18.5 11.07 19 11 19.55 11C19.7 11 19.85 11 20 11.03V7C20 4.79 16.42 3 12 3S4 4.79 4 7V17C4 19.21 7.59 21 12 21C12.66 21 13.31 20.96 13.92 20.88C13.57 20.29 13.31 19.64 13.16 18.94C12.79 19 12.41 19 12 19C8.13 19 6 17.5 6 17V14.77C7.61 15.55 9.72 16 12 16M12 5C15.87 5 18 6.5 18 7S15.87 9 12 9 6 7.5 6 7 8.13 5 12 5M23 17.5C23 18.32 22.75 19.08 22.33 19.71L21.24 18.62C21.41 18.28 21.5 17.9 21.5 17.5C21.5 16.12 20.38 15 19 15V16.5L16.75 14.25L19 12V13.5C21.21 13.5 23 15.29 23 17.5M19 18.5L21.25 20.75L19 23V21.5C16.79 21.5 15 19.71 15 17.5C15 16.68 15.25 15.92 15.67 15.29L16.76 16.38C16.59 16.72 16.5 17.1 16.5 17.5C16.5 18.88 17.62 20 19 20V18.5Z\";\nexport var mdiDeathStar = \"M2.05,13H21.95C21.45,18.05 17.19,22 12,22C6.82,22 2.55,18.05 2.05,13M21.95,11H2.05C2.55,5.95 6.82,2 12,2C17.18,2 21.45,5.95 21.95,11M12,6.75A2.5,2.5 0 0,0 9.5,4.25A2.5,2.5 0 0,0 7,6.75A2.5,2.5 0 0,0 9.5,9.25A2.5,2.5 0 0,0 12,6.75Z\";\nexport var mdiDeathStarVariant = \"M2.05,13H21.94C21.88,13.69 21.74,14.36 21.54,15H14V17H17V19H15V21H12.5V22C12.33,22 12.17,22 12,22C6.82,22 2.55,18.05 2.05,13M21.94,11H2.05C2.55,5.95 6.82,2 12,2C13.62,2 15.15,2.39 16.5,3.08V5H18.5V7H20V9H21.54C21.74,9.64 21.88,10.31 21.94,11M12,6.75A2.5,2.5 0 0,0 9.5,4.25A2.5,2.5 0 0,0 7,6.75A2.5,2.5 0 0,0 9.5,9.25A2.5,2.5 0 0,0 12,6.75Z\";\nexport var mdiDeathlyHallows = \"M12,2L1,21H23L12,2M12.75,11.47C14.56,11.87 15.7,13.67 15.3,15.5C15,16.75 14,17.75 12.75,18.03V11.47M11.25,18C9.44,17.6 8.3,15.8 8.7,14C9,12.72 10,11.72 11.25,11.44V18M16.88,14.72C16.83,12.35 15.09,10.36 12.75,10V6.29L20.4,19.5H13.07C15.29,19 16.87,17.03 16.88,14.75V14.72M11.25,6.29V10C8.6,10.4 6.77,12.88 7.18,15.54C7.5,17.5 8.97,19.12 10.93,19.55H3.6L11.25,6.29Z\";\nexport var mdiDebian = \"M18.5,10.57L18.3,10.94C18.56,10.16 18.41,9.31 18.45,8.57L18.38,8.55C18.31,6.7 16.71,4.73 15.29,4.07C14.06,3.5 12.17,3.4 11.3,3.83C11.42,3.72 11.9,3.68 11.75,3.6C10.38,3.73 10.69,4.07 9.64,4.34C9.35,4.62 10.5,4.12 9.87,4.5C9.31,4.63 9.05,4.38 8.22,5.24C8.29,5.36 8.75,4.89 8.37,5.36C7.58,5.27 5.89,7.16 5.53,7.78L5.72,7.82C5.41,8.59 5,9.08 4.95,9.54C4.87,10.68 4.5,12.75 5.03,13.39L4.97,13.92L5.2,14.37L5.08,14.38C5.66,16.21 5.7,14.42 6.47,16.32C6.36,16.28 6.24,16.24 6.08,16C6.06,16.19 6.32,16.69 6.62,17.08L6.5,17.22C6.66,17.53 6.82,17.6 6.93,17.71C6.3,17.36 7.5,18.84 7.63,19.03L7.73,18.86C7.71,19.1 7.9,19.42 8.26,19.87L8.56,19.86C8.69,20.1 9.14,20.54 9.41,20.56L9.23,20.8C9.92,21 9.56,21.09 10.41,21.39L10.24,21.09C10.67,21.46 10.8,21.79 11.41,22.07C12.26,22.37 12.37,22.25 13.23,22.5C12.5,22.5 11.64,22.5 11.06,22.28C7.1,21.21 3.5,16.56 3.74,11.78C3.68,10.81 3.84,9.6 3.68,9.36C3.9,8.62 4.16,7.72 4.69,6.65C4.65,6.58 4.78,6.86 5.05,6.41C5.21,6.05 5.34,5.66 5.55,5.31L5.65,5.28C5.76,4.67 7.08,3.73 7.5,3.26V3.44C8.36,2.63 9.9,2.09 10.76,1.71C10.53,1.96 11.27,1.68 11.8,1.65L11.31,1.93C11.94,1.77 11.91,2 12.56,1.9C12.33,1.93 12.06,2 12.1,2.06C12.82,2.14 12.94,1.84 13.61,2.06L13.56,1.86C14.5,2.2 14.69,2.14 15.7,2.68C16.06,2.69 16.1,2.46 16.63,2.68C16.73,2.84 16.61,2.87 17.27,3.27C17.34,3.24 17.14,3.05 17,2.9C18.3,3.61 19.75,5.12 20.18,6.74C19.77,6 20.14,7.13 20,7.07C20.18,7.56 20.33,8.07 20.43,8.6C20.31,8.17 20.04,7.12 19.57,6.45C19.54,6.88 18.97,6.15 19.28,7.11C19.5,7.45 19.33,6.76 19.62,7.36C19.62,7.65 19.73,7.94 19.8,8.31C19.7,8.29 19.58,7.9 19.5,8C19.6,8.5 19.77,8.72 19.83,8.76C19.8,8.84 19.71,8.68 19.71,9C19.75,9.74 19.92,9.43 20,9.46C19.91,9.83 19.59,10.25 19.75,10.88L19.55,10.32C19.5,10.85 19.66,10.95 19.42,11.6C19.6,11 19.58,10.5 19.41,10.75C19.5,11.57 18.76,12.2 18.83,12.73L18.62,12.44C18.05,13.27 18.61,12.89 18.22,13.5C18.36,13.27 18.15,13.42 18.33,13.14C18.21,13.15 17.78,13.67 17.39,13.97C15.85,15.2 14,15.37 12.24,14.7H12.23C12.24,14.66 12.23,14.61 12.11,14.53C10.6,13.38 9.71,12.4 10,10.12C10.25,9.95 10.31,9 10.84,8.67C11.16,7.96 12.12,7.31 13.15,7.29C14.2,7.23 15.09,7.85 15.54,8.43C14.72,7.68 13.4,7.45 12.26,8C11.11,8.53 10.42,9.8 10.5,11.07C10.56,11 10.6,11.05 10.62,10.89C10.59,13.36 13.28,15.17 15.22,14.26L15.25,14.31C16.03,14.09 15.93,13.92 16.44,13.56C16.4,13.65 16.1,13.86 16.28,13.86C16.53,13.8 17.31,13.07 17.7,12.73C17.87,12.35 17.6,12.5 17.85,12.04L18.15,11.89C18.32,11.41 18.5,11.14 18.5,10.57\";\nexport var mdiDebugStepInto = \"M12,22A2,2 0 0,1 10,20A2,2 0 0,1 12,18A2,2 0 0,1 14,20A2,2 0 0,1 12,22M13,2V13L17.5,8.5L18.92,9.92L12,16.84L5.08,9.92L6.5,8.5L11,13V2H13Z\";\nexport var mdiDebugStepOut = \"M12,22A2,2 0 0,1 10,20A2,2 0 0,1 12,18A2,2 0 0,1 14,20A2,2 0 0,1 12,22M13,16H11V6L6.5,10.5L5.08,9.08L12,2.16L18.92,9.08L17.5,10.5L13,6V16Z\";\nexport var mdiDebugStepOver = \"M12,14A2,2 0 0,1 14,16A2,2 0 0,1 12,18A2,2 0 0,1 10,16A2,2 0 0,1 12,14M23.46,8.86L21.87,15.75L15,14.16L18.8,11.78C17.39,9.5 14.87,8 12,8C8.05,8 4.77,10.86 4.12,14.63L2.15,14.28C2.96,9.58 7.06,6 12,6C15.58,6 18.73,7.89 20.5,10.72L23.46,8.86Z\";\nexport var mdiDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12Z\";\nexport var mdiDecagramOutline = \"M23,12L20.56,14.78L20.9,18.46L17.29,19.28L15.4,22.46L12,21L8.6,22.47L6.71,19.29L3.1,18.47L3.44,14.78L1,12L3.44,9.21L3.1,5.53L6.71,4.72L8.6,1.54L12,3L15.4,1.54L17.29,4.72L20.9,5.54L20.56,9.22L23,12M20.33,12L18.5,9.89L18.74,7.1L16,6.5L14.58,4.07L12,5.18L9.42,4.07L8,6.5L5.26,7.09L5.5,9.88L3.67,12L5.5,14.1L5.26,16.9L8,17.5L9.42,19.93L12,18.81L14.58,19.92L16,17.5L18.74,16.89L18.5,14.1L20.33,12Z\";\nexport var mdiDecimal = \"M10 7A3 3 0 0 0 7 10V13A3 3 0 0 0 13 13V10A3 3 0 0 0 10 7M11 13A1 1 0 0 1 9 13V10A1 1 0 0 1 11 10M17 7A3 3 0 0 0 14 10V13A3 3 0 0 0 20 13V10A3 3 0 0 0 17 7M18 13A1 1 0 0 1 16 13V10A1 1 0 0 1 18 10M6 15A1 1 0 1 1 5 14A1 1 0 0 1 6 15Z\";\nexport var mdiDecimalComma = \"M10 7A3 3 0 0 1 13 10V13A3 3 0 0 1 7 13V10A3 3 0 0 1 10 7M10 9A1 1 0 0 0 9 10V13A1 1 0 0 0 11 13V10A1 1 0 0 0 10 9M17 7A3 3 0 0 1 20 10V13A3 3 0 0 1 14 13V10A3 3 0 0 1 17 7M17 9A1 1 0 0 0 16 10V13A1 1 0 0 0 18 13V10A1 1 0 0 0 17 9M5 14A1 1 0 0 0 4 15L5 18H6V15A1 1 0 0 0 5 14Z\";\nexport var mdiDecimalCommaDecrease = \"M5 13V16H4L3 13A1 1 0 0 1 5 13M15 16V14L12 17L15 20V18H21V16M12 11A3 3 0 0 1 6 11V8A3 3 0 0 1 12 8M10 8A1 1 0 0 0 8 8V11A1 1 0 0 0 10 11Z\";\nexport var mdiDecimalCommaIncrease = \"M9 5A3 3 0 0 0 6 8V11A3 3 0 0 0 12 11V8A3 3 0 0 0 9 5M10 11A1 1 0 0 1 8 11V8A1 1 0 0 1 10 8M16 14A3 3 0 0 0 19 11V8A3 3 0 0 0 13 8V11A3 3 0 0 0 16 14M15 8A1 1 0 0 1 17 8V11A1 1 0 0 1 15 11M19 20V18H13V16H19V14L22 17M5 13V16H4L3 13A1 1 0 0 1 5 13Z\";\nexport var mdiDecimalDecrease = \"M12,17L15,20V18H21V16H15V14L12,17M9,5A3,3 0 0,1 12,8V11A3,3 0 0,1 9,14A3,3 0 0,1 6,11V8A3,3 0 0,1 9,5M9,7A1,1 0 0,0 8,8V11A1,1 0 0,0 9,12A1,1 0 0,0 10,11V8A1,1 0 0,0 9,7M4,12A1,1 0 0,1 5,13A1,1 0 0,1 4,14A1,1 0 0,1 3,13A1,1 0 0,1 4,12Z\";\nexport var mdiDecimalIncrease = \"M22,17L19,20V18H13V16H19V14L22,17M9,5A3,3 0 0,1 12,8V11A3,3 0 0,1 9,14A3,3 0 0,1 6,11V8A3,3 0 0,1 9,5M9,7A1,1 0 0,0 8,8V11A1,1 0 0,0 9,12A1,1 0 0,0 10,11V8A1,1 0 0,0 9,7M16,5A3,3 0 0,1 19,8V11A3,3 0 0,1 16,14A3,3 0 0,1 13,11V8A3,3 0 0,1 16,5M16,7A1,1 0 0,0 15,8V11A1,1 0 0,0 16,12A1,1 0 0,0 17,11V8A1,1 0 0,0 16,7M4,12A1,1 0 0,1 5,13A1,1 0 0,1 4,14A1,1 0 0,1 3,13A1,1 0 0,1 4,12Z\";\nexport var mdiDelete = \"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\";\nexport var mdiDeleteAlert = \"M17 4V6H3V4H6.5L7.5 3H12.5L13.5 4H17M4 19V7H16V19C16 20.1 15.1 21 14 21H6C4.9 21 4 20.1 4 19M19 15H21V17H19V15M19 7H21V13H19V7Z\";\nexport var mdiDeleteAlertOutline = \"M4 19V7H16V19C16 20.1 15.1 21 14 21H6C4.9 21 4 20.1 4 19M6 9V19H14V9H6M13.5 4H17V6H3V4H6.5L7.5 3H12.5L13.5 4M19 17V15H21V17H19M19 13V7H21V13H19Z\";\nexport var mdiDeleteCircle = \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M17,7H14.5L13.5,6H10.5L9.5,7H7V9H17V7M9,18H15A1,1 0 0,0 16,17V10H8V17A1,1 0 0,0 9,18Z\";\nexport var mdiDeleteCircleOutline = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M16,10V17A1,1 0 0,1 15,18H9A1,1 0 0,1 8,17V10H16M13.5,6L14.5,7H17V9H7V7H9.5L10.5,6H13.5Z\";\nexport var mdiDeleteClock = \"M15 13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69V13M23 16C23 19.87 19.87 23 16 23C14.09 23 12.36 22.24 11.1 21H8C6.9 21 6 20.1 6 19V7H18V9.29C20.89 10.15 23 12.83 23 16M16 11C13.24 11 11 13.24 11 16C11 18.76 13.24 21 16 21C18.76 21 21 18.76 21 16C21 13.24 18.76 11 16 11M19 4V6H5V4H8.5L9.5 3H14.5L15.5 4H19Z\";\nexport var mdiDeleteClockOutline = \"M15 13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69V13M23 16C23 19.87 19.87 23 16 23C14.09 23 12.36 22.24 11.1 21H8C6.9 21 6 20.1 6 19V7H18V9.29C20.89 10.15 23 12.83 23 16M9 16C9 12.13 12.13 9 16 9H8V19H9.67C9.24 18.09 9 17.07 9 16M16 11C13.24 11 11 13.24 11 16C11 18.76 13.24 21 16 21C18.76 21 21 18.76 21 16C21 13.24 18.76 11 16 11M15.5 4H19V6H5V4H8.5L9.5 3H14.5L15.5 4Z\";\nexport var mdiDeleteEmpty = \"M20.37,8.91L19.37,10.64L7.24,3.64L8.24,1.91L11.28,3.66L12.64,3.29L16.97,5.79L17.34,7.16L20.37,8.91M6,19V7H11.07L18,11V19A2,2 0 0,1 16,21H8A2,2 0 0,1 6,19Z\";\nexport var mdiDeleteEmptyOutline = \"M20.37,8.91L19.37,10.64L7.24,3.64L8.24,1.91L11.28,3.66L12.64,3.29L16.97,5.79L17.34,7.16L20.37,8.91M6,19V7H11.07L18,11V19A2,2 0 0,1 16,21H8A2,2 0 0,1 6,19M8,19H16V12.2L10.46,9H8V19Z\";\nexport var mdiDeleteForever = \"M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19M8.46,11.88L9.87,10.47L12,12.59L14.12,10.47L15.53,11.88L13.41,14L15.53,16.12L14.12,17.53L12,15.41L9.88,17.53L8.47,16.12L10.59,14L8.46,11.88M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z\";\nexport var mdiDeleteForeverOutline = \"M14.12,10.47L12,12.59L9.87,10.47L8.46,11.88L10.59,14L8.47,16.12L9.88,17.53L12,15.41L14.12,17.53L15.53,16.12L13.41,14L15.53,11.88L14.12,10.47M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19M8,9H16V19H8V9Z\";\nexport var mdiDeleteOff = \"M2 5.27L3.28 4L5 5.72L5.28 6L6.28 7L18 18.72L20 20.72L18.73 22L17.27 20.54C16.93 20.83 16.5 21 16 21H8C6.9 21 6 20.1 6 19V9.27L2 5.27M19 4V6H7.82L5.82 4H8.5L9.5 3H14.5L15.5 4H19M18 7V16.18L8.82 7H18Z\";\nexport var mdiDeleteOffOutline = \"M2 5.27L3.28 4L5 5.72L5.28 6L6.28 7L8.28 9L16 16.72L18 18.72L20 20.72L18.73 22L17.27 20.54C16.93 20.83 16.5 21 16 21H8C6.9 21 6 20.1 6 19V9.27L2 5.27M8 19H15.73L8 11.27V19M18 7V16.18L16 14.18V9H10.82L8.82 7H18M15.5 4H19V6H7.82L5.82 4H8.5L9.5 3H14.5L15.5 4Z\";\nexport var mdiDeleteOutline = \"M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19M8,9H16V19H8V9M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z\";\nexport var mdiDeleteRestore = \"M14,14H16L12,10L8,14H10V18H14V14M6,7H18V19C18,19.5 17.8,20 17.39,20.39C17,20.8 16.5,21 16,21H8C7.5,21 7,20.8 6.61,20.39C6.2,20 6,19.5 6,19V7M19,4V6H5V4H8.5L9.5,3H14.5L15.5,4H19Z\";\nexport var mdiDeleteSweep = \"M15,16H19V18H15V16M15,8H22V10H15V8M15,12H21V14H15V12M3,18A2,2 0 0,0 5,20H11A2,2 0 0,0 13,18V8H3V18M14,5H11L10,4H6L5,5H2V7H14V5Z\";\nexport var mdiDeleteSweepOutline = \"M15,16H19V18H15V16M15,8H22V10H15V8M15,12H21V14H15V12M11,10V18H5V10H11M13,8H3V18A2,2 0 0,0 5,20H11A2,2 0 0,0 13,18V8M14,5H11L10,4H6L5,5H2V7H14V5Z\";\nexport var mdiDeleteVariant = \"M21.03,3L18,20.31C17.83,21.27 17,22 16,22H8C7,22 6.17,21.27 6,20.31L2.97,3H21.03M5.36,5L8,20H16L18.64,5H5.36M9,18V14H13V18H9M13,13.18L9.82,10L13,6.82L16.18,10L13,13.18Z\";\nexport var mdiDelta = \"M12,7.77L18.39,18H5.61L12,7.77M12,4L2,20H22\";\nexport var mdiDesk = \"M3 6H21C21.55 6 22 6.45 22 7C22 7.55 21.55 8 21 8V19H19V17H15V19H13V8H5V19H3V8C2.45 8 2 7.55 2 7C2 6.45 2.45 6 3 6M16 10.5V11H18V10.5C18 10.22 17.78 10 17.5 10H16.5C16.22 10 16 10.22 16 10.5M16 14.5V15H18V14.5C18 14.22 17.78 14 17.5 14H16.5C16.22 14 16 14.22 16 14.5Z\";\nexport var mdiDeskLamp = \"M10.85,2L9.18,4.5L10.32,5.25L7.14,10C7.1,10 7.05,10 7,10A2,2 0 0,0 5,12C5,12.94 5.66,13.75 6.58,13.95L10.62,20H7V22H17V20H13L8.53,13.28C8.83,12.92 9,12.47 9,12C9,11.7 8.93,11.4 8.8,11.13L12,6.37C11.78,8.05 12.75,9.89 14.45,11L18.89,4.37C17.2,3.24 15.12,3.04 13.65,3.87L10.85,2M18.33,7L16.67,9.5C17.35,9.95 18.29,9.77 18.75,9.08C19.21,8.39 19,7.46 18.33,7Z\";\nexport var mdiDeskLampOff = \"M9 10.87L8.8 11.13C8.93 11.4 9 11.7 9 12C9 12.47 8.83 12.92 8.53 13.28L13 20H17V22H7V20H10.62L6.58 13.95C5.66 13.75 5 12.94 5 12C5 10.9 5.9 10 7 10H7.14L7.53 9.42L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L9 10.87M18.33 7L16.67 9.5C17.35 9.95 18.29 9.77 18.75 9.08S19 7.46 18.33 7M9.57 6.37L11 7.82L12 6.37C11.78 8.05 12.75 9.89 14.45 11L18.89 4.37C17.2 3.24 15.12 3.04 13.65 3.87L10.85 2L9.18 4.5L10.32 5.25L9.57 6.37Z\";\nexport var mdiDeskLampOn = \"M10.85 2L9.18 4.5L10.32 5.25L7.14 10H7C5.9 10 5 10.9 5 12C5 12.94 5.66 13.75 6.58 13.95L10.62 20H7V22H17V20H13L8.53 13.28C8.83 12.92 9 12.47 9 12C9 11.7 8.93 11.4 8.8 11.13L12 6.37C11.78 8.05 12.75 9.89 14.45 11L18.89 4.37C17.2 3.24 15.12 3.04 13.65 3.87L10.85 2M18.33 7L16.67 9.5C17.35 9.95 18.29 9.77 18.75 9.08C19.21 8.39 19 7.46 18.33 7M21.7 12.58L19.58 10.45L20.28 9.75L22.4 11.87L21.7 12.58M23 7H20V6H23V7M16 14V11H17V14H16Z\";\nexport var mdiDeskphone = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M15,5V19H19V5H15M5,5V9H13V5H5M5,11V13H7V11H5M8,11V13H10V11H8M11,11V13H13V11H11M5,14V16H7V14H5M8,14V16H10V14H8M11,14V16H13V14H11M11,17V19H13V17H11M8,17V19H10V17H8M5,17V19H7V17H5Z\";\nexport var mdiDesktopClassic = \"M6,2C4.89,2 4,2.89 4,4V12C4,13.11 4.89,14 6,14H18C19.11,14 20,13.11 20,12V4C20,2.89 19.11,2 18,2H6M6,4H18V12H6V4M4,15C2.89,15 2,15.89 2,17V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V17C22,15.89 21.11,15 20,15H4M8,17H20V20H8V17M9,17.75V19.25H13V17.75H9M15,17.75V19.25H19V17.75H15Z\";\nexport var mdiDesktopTower = \"M8,2H16A2,2 0 0,1 18,4V20A2,2 0 0,1 16,22H8A2,2 0 0,1 6,20V4A2,2 0 0,1 8,2M8,4V6H16V4H8M16,8H8V10H16V8M16,18H14V20H16V18Z\";\nexport var mdiDesktopTowerMonitor = \"M22,18H17A1,1 0 0,1 16,17V7A1,1 0 0,1 17,6H22A1,1 0 0,1 23,7V17A1,1 0 0,1 22,18M22,8H17V9H22V8M22,10H17V11H22V10M9,15V17H10V18H5V17H6V15H2A1,1 0 0,1 1,14V7A1,1 0 0,1 2,6H13A1,1 0 0,1 14,7V14A1,1 0 0,1 13,15H9M12,8H3V13H12V8Z\";\nexport var mdiDetails = \"M6.38,6H17.63L12,16L6.38,6M3,4L12,20L21,4H3Z\";\nexport var mdiDevTo = \"M7.73 11.93C7.73 13.65 7.71 13.76 7.5 14C7.31 14.17 7.12 14.23 6.74 14.23L6.23 14.24L6.2 11.97L6.18 9.7H6.7C7.05 9.7 7.3 9.77 7.47 9.91C7.71 10.12 7.73 10.16 7.73 11.93M22 7.5V16.5C22 17.61 21.11 18.5 20 18.5H4C2.89 18.5 2 17.61 2 16.5V7.5C2 6.39 2.89 5.5 4 5.5H20C21.11 5.5 22 6.39 22 7.5M8.93 11.73C8.9 9.89 8.88 9.74 8.64 9.34C8.24 8.66 7.79 8.5 6.28 8.5H5V15.5H6.21C7.54 15.5 8.1 15.33 8.5 14.79C8.91 14.26 9 13.81 8.93 11.73M13.12 8.5H11.64C10.15 8.5 10.14 8.5 9.93 8.78S9.7 9.21 9.7 12V14.96L9.97 15.23C10.22 15.5 10.28 15.5 11.68 15.5H13.12V14.31L12.03 14.27L10.93 14.24V12.6L11.61 12.57L12.27 12.53V11.34H10.88V9.7H13.12V8.5M19 8.56C19 8.5 18.7 8.5 18.34 8.5L17.66 8.56L17.07 10.91C16.69 12.39 16.45 13.18 16.4 13.04C16.32 12.77 15.26 8.6 15.26 8.55C15.26 8.5 14.95 8.5 14.58 8.5H13.89L14.3 10.05C14.5 10.92 14.89 12.33 15.11 13.2C15.45 14.55 15.57 14.85 15.86 15.14C16.06 15.36 16.31 15.5 16.47 15.5C16.8 15.5 17.23 15.16 17.37 14.77C17.5 14.5 19 8.69 19 8.56Z\";\nexport var mdiDeveloperBoard = \"M22,9V7H20V5A2,2 0 0,0 18,3H4A2,2 0 0,0 2,5V19A2,2 0 0,0 4,21H18A2,2 0 0,0 20,19V17H22V15H20V13H22V11H20V9H22M18,19H4V5H18V19M6,13H11V17H6V13M12,7H16V10H12V7M6,7H11V12H6V7M12,11H16V17H12V11Z\";\nexport var mdiDeviantart = \"M6,6H12L14,2H18V6L14.5,13H18V18H12L10,22H6V18L9.5,11H6V6Z\";\nexport var mdiDevices = \"M3 6H21V4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H7V18H3V6M13 12H9V13.78C8.39 14.33 8 15.11 8 16C8 16.89 8.39 17.67 9 18.22V20H13V18.22C13.61 17.67 14 16.88 14 16S13.61 14.33 13 13.78V12M11 17.5C10.17 17.5 9.5 16.83 9.5 16S10.17 14.5 11 14.5 12.5 15.17 12.5 16 11.83 17.5 11 17.5M22 8H16C15.5 8 15 8.5 15 9V19C15 19.5 15.5 20 16 20H22C22.5 20 23 19.5 23 19V9C23 8.5 22.5 8 22 8M21 18H17V10H21V18Z\";\nexport var mdiDharmachakra = \"M11,2V3C9.27,3.2 7.69,3.9 6.4,4.94L5.64,4.18L4.22,5.6L5,6.35C3.9,7.68 3.21,9.3 3,11H2V13H3C3.21,14.68 3.9,16.26 5,17.56L4.22,18.32L5.64,19.74L6.39,19C7.71,20.07 9.3,20.77 11,21V22H13V21C14.69,20.77 16.29,20.07 17.6,19L18.36,19.74L19.78,18.32L19,17.57C20.1,16.27 20.79,14.68 21,13H22V11H21C20.79,9.3 20.1,7.69 19,6.36L19.78,5.6L18.36,4.18L17.61,4.94C16.29,3.87 14.69,3.2 13,3V2H11M11,5V8L10,8.5L7.81,6.35C8.72,5.67 9.81,5.17 11,5M13,5C14.16,5.18 15.26,5.64 16.2,6.35L14,8.5L13,8V5M6.4,7.76L8.5,10L8,11H5C5.16,9.84 5.7,8.7 6.39,7.75L6.4,7.76M17.6,7.76C18.33,8.71 18.81,9.82 19,11H16L15.5,10L17.61,7.76H17.6M12,10C13.12,10 14,10.88 14,12C14,13.12 13.12,14 12,14C10.88,14 10,13.12 10,12C10,10.88 10.88,10 12,10M5,13H8L8.57,14L6.39,16.15C5.67,15.24 5.19,14.16 5,13V13M16,13H19C18.81,14.15 18.33,15.24 17.61,16.16L15.5,14L16,13M10,15.5L11,16V19C9.83,18.8 8.73,18.31 7.8,17.57L10,15.5M14,15.5L16.19,17.57C15.28,18.25 14.19,18.83 13,19V16L14,15.5Z\";\nexport var mdiDiabetes = \"M14.73 2.29A1 1 0 0 1 16.14 3.7L13 6.79L13.76 7.74L15.7 12.74A1.46 1.46 0 0 1 15.36 14.29L12.27 17.38A1.55 1.55 0 0 1 10.15 17.38L5.55 12.78A1.37 1.37 0 0 1 5.15 11.78L4.65 5.34H5.72A1 1 0 0 1 6.47 5.64L6.61 5.81L7.66 9.29M7.66 22L2 16.36L4.12 14.24L9.78 19.9M19.5 4.5S17 7.26 17 9A2.5 2.5 0 1 0 22 9C22 7.26 19.5 4.5 19.5 4.5Z\";\nexport var mdiDialpad = \"M12,19A2,2 0 0,0 10,21A2,2 0 0,0 12,23A2,2 0 0,0 14,21A2,2 0 0,0 12,19M6,1A2,2 0 0,0 4,3A2,2 0 0,0 6,5A2,2 0 0,0 8,3A2,2 0 0,0 6,1M6,7A2,2 0 0,0 4,9A2,2 0 0,0 6,11A2,2 0 0,0 8,9A2,2 0 0,0 6,7M6,13A2,2 0 0,0 4,15A2,2 0 0,0 6,17A2,2 0 0,0 8,15A2,2 0 0,0 6,13M18,5A2,2 0 0,0 20,3A2,2 0 0,0 18,1A2,2 0 0,0 16,3A2,2 0 0,0 18,5M12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13M18,13A2,2 0 0,0 16,15A2,2 0 0,0 18,17A2,2 0 0,0 20,15A2,2 0 0,0 18,13M18,7A2,2 0 0,0 16,9A2,2 0 0,0 18,11A2,2 0 0,0 20,9A2,2 0 0,0 18,7M12,7A2,2 0 0,0 10,9A2,2 0 0,0 12,11A2,2 0 0,0 14,9A2,2 0 0,0 12,7M12,1A2,2 0 0,0 10,3A2,2 0 0,0 12,5A2,2 0 0,0 14,3A2,2 0 0,0 12,1Z\";\nexport var mdiDiameter = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M17,15V13H7V15L4,12L7,9V11H17V9L20,12L17,15Z\";\nexport var mdiDiameterOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M16,15V13H8V15L5,12L8,9V11H16V9L19,12L16,15Z\";\nexport var mdiDiameterVariant = \"M4.15,21.46L5.47,19.58C3.35,17.74 2,15.03 2,12A10,10 0 0,1 12,2C13.78,2 15.44,2.46 16.89,3.27L18.21,1.39L19.85,2.54L18.53,4.42C20.65,6.26 22,8.97 22,12A10,10 0 0,1 12,22C10.22,22 8.56,21.54 7.11,20.73L5.79,22.61L4.15,21.46M12,4A8,8 0 0,0 4,12C4,14.35 5,16.46 6.63,17.93L15.73,4.92C14.62,4.33 13.35,4 12,4M12,20A8,8 0 0,0 20,12C20,9.65 19,7.54 17.37,6.07L8.27,19.08C9.38,19.67 10.65,20 12,20Z\";\nexport var mdiDiamond = \"M6,2L2,8L12,22L22,8L18,2H6Z\";\nexport var mdiDiamondOutline = \"M18,2H6L2,8L12,22L22,8L18,2M4.43,8L7.07,4H16.93L19.57,8L12,18.56L4.43,8Z\";\nexport var mdiDiamondStone = \"M16,9H19L14,16M10,9H14L12,17M5,9H8L10,16M15,4H17L19,7H16M11,4H13L14,7H10M7,4H9L8,7H5M6,2L2,8L12,22L22,8L18,2H6Z\";\nexport var mdiDiaperOutline = \"M21 4H3C2.45 4 2 4.45 2 5V10C2 15.5 6.5 20 12 20C17.5 20 22 15.5 22 10V5C22 4.45 21.55 4 21 4M4 6H20V8H15V10H20C20 10.34 20 10.67 19.94 11C16.12 11.03 13.03 14.12 13 17.94C12.67 18 12.34 18 12 18C11.66 18 11.33 18 11 17.94C10.97 14.12 7.88 11.03 4.06 11C4 10.67 4 10.34 4 10H9V8H4V6M15.04 17.4C15.31 15.12 17.12 13.31 19.41 13.04C18.59 15 17 16.59 15.03 17.41M4.6 13.04C6.88 13.31 8.7 15.12 8.97 17.41C7 16.59 5.41 15 4.6 13.03Z\";\nexport var mdiDice1 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiDice1Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 10.5C11.17 10.5 10.5 11.17 10.5 12S11.17 13.5 12 13.5 13.5 12.83 13.5 12 12.83 10.5 12 10.5\";\nexport var mdiDice2 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15Z\";\nexport var mdiDice2Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6M16.5 15C15.67 15 15 15.67 15 16.5C15 17.33 15.67 18 16.5 18C17.33 18 18 17.33 18 16.5C18 15.67 17.33 15 16.5 15Z\";\nexport var mdiDice3 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15Z\";\nexport var mdiDice3Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M12 10.5C11.2 10.5 10.5 11.2 10.5 12S11.2 13.5 12 13.5 13.5 12.8 13.5 12 12.8 10.5 12 10.5M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M16.5 15C15.7 15 15 15.7 15 16.5C15 17.3 15.7 18 16.5 18C17.3 18 18 17.3 18 16.5C18 15.7 17.3 15 16.5 15Z\";\nexport var mdiDice4 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15M17,5A2,2 0 0,0 15,7A2,2 0 0,0 17,9A2,2 0 0,0 19,7A2,2 0 0,0 17,5M7,15A2,2 0 0,0 5,17A2,2 0 0,0 7,19A2,2 0 0,0 9,17A2,2 0 0,0 7,15Z\";\nexport var mdiDice4Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6M16.5 15C15.67 15 15 15.67 15 16.5C15 17.33 15.67 18 16.5 18C17.33 18 18 17.33 18 16.5C18 15.67 17.33 15 16.5 15M16.5 6C15.67 6 15 6.67 15 7.5S15.67 9 16.5 9C17.33 9 18 8.33 18 7.5S17.33 6 16.5 6M7.5 15C6.67 15 6 15.67 6 16.5C6 17.33 6.67 18 7.5 18S9 17.33 9 16.5C9 15.67 8.33 15 7.5 15Z\";\nexport var mdiDice5 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15M17,5A2,2 0 0,0 15,7A2,2 0 0,0 17,9A2,2 0 0,0 19,7A2,2 0 0,0 17,5M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M7,15A2,2 0 0,0 5,17A2,2 0 0,0 7,19A2,2 0 0,0 9,17A2,2 0 0,0 7,15Z\";\nexport var mdiDice5Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M16.5 15C15.7 15 15 15.7 15 16.5C15 17.3 15.7 18 16.5 18C17.3 18 18 17.3 18 16.5C18 15.7 17.3 15 16.5 15M16.5 6C15.7 6 15 6.7 15 7.5S15.7 9 16.5 9C17.3 9 18 8.3 18 7.5S17.3 6 16.5 6M12 10.5C11.2 10.5 10.5 11.2 10.5 12S11.2 13.5 12 13.5 13.5 12.8 13.5 12 12.8 10.5 12 10.5M7.5 15C6.7 15 6 15.7 6 16.5C6 17.3 6.7 18 7.5 18S9 17.3 9 16.5C9 15.7 8.3 15 7.5 15Z\";\nexport var mdiDice6 = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15M17,10A2,2 0 0,0 15,12A2,2 0 0,0 17,14A2,2 0 0,0 19,12A2,2 0 0,0 17,10M17,5A2,2 0 0,0 15,7A2,2 0 0,0 17,9A2,2 0 0,0 19,7A2,2 0 0,0 17,5M7,10A2,2 0 0,0 5,12A2,2 0 0,0 7,14A2,2 0 0,0 9,12A2,2 0 0,0 7,10M7,15A2,2 0 0,0 5,17A2,2 0 0,0 7,19A2,2 0 0,0 9,17A2,2 0 0,0 7,15Z\";\nexport var mdiDice6Outline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M16.5 15C15.7 15 15 15.7 15 16.5C15 17.3 15.7 18 16.5 18C17.3 18 18 17.3 18 16.5C18 15.7 17.3 15 16.5 15M16.5 10.5C15.7 10.5 15 11.2 15 12S15.7 13.5 16.5 13.5C17.3 13.5 18 12.8 18 12S17.3 10.5 16.5 10.5M16.5 6C15.7 6 15 6.7 15 7.5S15.7 9 16.5 9C17.3 9 18 8.3 18 7.5S17.3 6 16.5 6M7.5 10.5C6.7 10.5 6 11.2 6 12S6.7 13.5 7.5 13.5 9 12.8 9 12 8.3 10.5 7.5 10.5M7.5 15C6.7 15 6 15.7 6 16.5C6 17.3 6.7 18 7.5 18S9 17.3 9 16.5C9 15.7 8.3 15 7.5 15Z\";\nexport var mdiDiceD10 = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M14.07 8.21C15.5 8.21 16.64 9.36 16.64 10.78V13.42C16.64 14.84 15.5 16 14.07 16C12.64 16 11.5 14.84 11.5 13.42V10.78C11.5 9.36 12.65 8.21 14.07 8.21M10.36 8.41H10.5V16H9V10.21L7.22 10.76V9.53L10.36 8.41M14.06 9.65C13.47 9.65 13 10.13 13 10.71V13.5C13 14.07 13.47 14.54 14.06 14.54C14.64 14.54 15.14 14.06 15.14 13.5V10.71C15.14 10.12 14.64 9.65 14.06 9.65Z\";\nexport var mdiDiceD10Outline = \"M10.5 16H9V10.21L7.22 10.76V9.53L10.36 8.41H10.5V16M14.07 8.21C15.5 8.21 16.64 9.36 16.64 10.78V13.42C16.64 14.84 15.5 16 14.07 16C12.64 16 11.5 14.84 11.5 13.42V10.78C11.5 9.36 12.65 8.21 14.07 8.21M14.06 9.65C13.47 9.65 13 10.13 13 10.71V13.5C13 14.07 13.47 14.54 14.06 14.54C14.64 14.54 15.14 14.06 15.14 13.5V10.71C15.14 10.12 14.64 9.65 14.06 9.65M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L20 12L12 20L4 12Z\";\nexport var mdiDiceD12 = \"M12 2L1.5 9.64L5.5 22H18.5L22.5 9.64L12 2M10.5 17H8.89V10.89L7 11.47V10.19L10.31 9H10.5V17M17 17H11.66V15.91C11.66 15.91 15.23 12.45 15.23 11.4C15.23 10.12 14.18 10.25 14.18 10.25C13.5 10.3 13 10.87 13 11.55H11.44C11.5 10.09 12.72 8.94 14.27 9C16.74 9 16.77 10.85 16.77 11.3C16.77 13.07 13.58 15.77 13.58 15.77L17 15.75V17Z\";\nexport var mdiDiceD12Outline = \"M12,2L1.5,9.64L5.5,22H18.5L22.5,9.64L12,2M17,20H7L3.85,10.4L12,4.47L20.15,10.4L17,20M17,15.75V17H11.66V15.91C11.66,15.91 15.23,12.45 15.23,11.4C15.23,10.12 14.18,10.25 14.18,10.25C13.5,10.3 13,10.87 13,11.55H11.44C11.5,10.09 12.72,8.94 14.27,9C16.74,9 16.77,10.85 16.77,11.3C16.77,13.07 13.58,15.77 13.58,15.77L17,15.75M10.5,17H8.89V10.89L7,11.47V10.19L10.31,9H10.5V17Z\";\nexport var mdiDiceD20 = \"M20.47 6.62L12.57 2.18C12.41 2.06 12.21 2 12 2S11.59 2.06 11.43 2.18L3.53 6.62C3.21 6.79 3 7.12 3 7.5V16.5C3 16.88 3.21 17.21 3.53 17.38L11.43 21.82C11.59 21.94 11.79 22 12 22S12.41 21.94 12.57 21.82L20.47 17.38C20.79 17.21 21 16.88 21 16.5V7.5C21 7.12 20.79 6.79 20.47 6.62M11.45 15.96L6.31 15.93V14.91C6.31 14.91 9.74 11.58 9.75 10.57C9.75 9.33 8.73 9.46 8.73 9.46S7.75 9.5 7.64 10.71L6.14 10.76C6.14 10.76 6.18 8.26 8.83 8.26C11.2 8.26 11.23 10.04 11.23 10.5C11.23 12.18 8.15 14.77 8.15 14.77L11.45 14.76V15.96M17.5 13.5C17.5 14.9 16.35 16.05 14.93 16.05C13.5 16.05 12.36 14.9 12.36 13.5V10.84C12.36 9.42 13.5 8.27 14.93 8.27S17.5 9.42 17.5 10.84V13.5M16 10.77V13.53C16 14.12 15.5 14.6 14.92 14.6C14.34 14.6 13.86 14.12 13.86 13.53V10.77C13.86 10.18 14.34 9.71 14.92 9.71C15.5 9.71 16 10.18 16 10.77Z\";\nexport var mdiDiceD20Outline = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15M14.93,8.27A2.57,2.57 0 0,1 17.5,10.84V13.5C17.5,14.9 16.35,16.05 14.93,16.05C13.5,16.05 12.36,14.9 12.36,13.5V10.84A2.57,2.57 0 0,1 14.93,8.27M14.92,9.71C14.34,9.71 13.86,10.18 13.86,10.77V13.53C13.86,14.12 14.34,14.6 14.92,14.6C15.5,14.6 16,14.12 16,13.53V10.77C16,10.18 15.5,9.71 14.92,9.71M11.45,14.76V15.96L6.31,15.93V14.91C6.31,14.91 9.74,11.58 9.75,10.57C9.75,9.33 8.73,9.46 8.73,9.46C8.73,9.46 7.75,9.5 7.64,10.71L6.14,10.76C6.14,10.76 6.18,8.26 8.83,8.26C11.2,8.26 11.23,10.04 11.23,10.5C11.23,12.18 8.15,14.77 8.15,14.77L11.45,14.76Z\";\nexport var mdiDiceD4 = \"M10.25 15.15L11.92 12.47V15.15H10.25M21.92 21H2.08C1.24 21 .72 20.08 1.16 19.36L11.08 3.13C11.5 2.44 12.5 2.44 12.92 3.13L22.84 19.36C23.28 20.08 22.76 21 21.92 21M14.29 15.15H13.43V10.42H11.91L8.75 15.41L8.82 16.36H11.92V18H13.43V16.36H14.29V15.15Z\";\nexport var mdiDiceD4Outline = \"M13.43,15.15H14.29V16.36H13.43V18H11.92V16.36H8.82L8.75,15.41L11.91,10.42H13.43V15.15M10.25,15.15H11.92V12.47L10.25,15.15M22,21H2C1.64,21 1.31,20.81 1.13,20.5C0.95,20.18 0.96,19.79 1.15,19.5L11.15,3C11.5,2.38 12.5,2.38 12.86,3L22.86,19.5C23.04,19.79 23.05,20.18 22.87,20.5C22.69,20.81 22.36,21 22,21M3.78,19H20.23L12,5.43L3.78,19Z\";\nexport var mdiDiceD6 = \"M13.05 13.5C13.05 14.27 12.61 14.83 12 14.83S10.85 14.27 10.85 13.5L10.83 12.78C10.83 12.78 11.21 12 11.95 12.1C12.56 12.1 13.05 12.73 13.05 13.5M21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5M14.55 13.41C14.5 11.45 13.19 10.87 12.53 10.87C11.41 10.87 10.86 11.53 10.86 11.53S10.89 9.5 13.39 9.53V8.33C13.39 8.33 9.33 7.94 9.3 12.66C9.27 16.86 12.77 16 12.77 16S14.61 15.47 14.55 13.41Z\";\nexport var mdiDiceD6Outline = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5M13.39,9.53C10.89,9.5 10.86,11.53 10.86,11.53C10.86,11.53 11.41,10.87 12.53,10.87C13.19,10.87 14.5,11.45 14.55,13.41C14.61,15.47 12.77,16 12.77,16C12.77,16 9.27,16.86 9.3,12.66C9.33,7.94 13.39,8.33 13.39,8.33V9.53M11.95,12.1C11.21,12 10.83,12.78 10.83,12.78L10.85,13.5C10.85,14.27 11.39,14.83 12,14.83C12.61,14.83 13.05,14.27 13.05,13.5C13.05,12.73 12.56,12.1 11.95,12.1Z\";\nexport var mdiDiceD8 = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 8.25C13.31 8.25 14.38 9.2 14.38 10.38C14.38 11.07 14 11.68 13.44 12.07C14.14 12.46 14.6 13.13 14.6 13.9C14.6 15.12 13.44 16.1 12 16.1C10.56 16.1 9.4 15.12 9.4 13.9C9.4 13.13 9.86 12.46 10.56 12.07C10 11.68 9.63 11.07 9.63 10.38C9.63 9.2 10.69 8.25 12 8.25M12 9.5C11.5 9.5 11.1 9.95 11.1 10.5C11.1 11.05 11.5 11.5 12 11.5C12.5 11.5 12.9 11.05 12.9 10.5C12.9 9.95 12.5 9.5 12 9.5M12 12.65C11.39 12.65 10.9 13.14 10.9 13.75C10.9 14.36 11.39 14.85 12 14.85C12.61 14.85 13.1 14.36 13.1 13.75C13.1 13.14 12.61 12.65 12 12.65Z\";\nexport var mdiDiceD8Outline = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L20 12L12 20L4 12M12 8.25C13.31 8.25 14.38 9.2 14.38 10.38C14.38 11.07 14 11.68 13.44 12.07C14.14 12.46 14.6 13.13 14.6 13.9C14.6 15.12 13.44 16.1 12 16.1C10.56 16.1 9.4 15.12 9.4 13.9C9.4 13.13 9.86 12.46 10.56 12.07C10 11.68 9.63 11.07 9.63 10.38C9.63 9.2 10.69 8.25 12 8.25M12 12.65C11.39 12.65 10.9 13.14 10.9 13.75C10.9 14.36 11.39 14.85 12 14.85C12.61 14.85 13.1 14.36 13.1 13.75C13.1 13.14 12.61 12.65 12 12.65M12 9.5C11.5 9.5 11.1 9.95 11.1 10.5C11.1 11.05 11.5 11.5 12 11.5C12.5 11.5 12.9 11.05 12.9 10.5C12.9 9.95 12.5 9.5 12 9.5\";\nexport var mdiDiceMultiple = \"M19.78,3H11.22C10.55,3 10,3.55 10,4.22V8H16V14H19.78C20.45,14 21,13.45 21,12.78V4.22C21,3.55 20.45,3 19.78,3M12.44,6.67C11.76,6.67 11.21,6.12 11.21,5.44C11.21,4.76 11.76,4.21 12.44,4.21A1.23,1.23 0 0,1 13.67,5.44C13.67,6.12 13.12,6.67 12.44,6.67M18.56,12.78C17.88,12.79 17.33,12.24 17.32,11.56C17.31,10.88 17.86,10.33 18.54,10.32C19.22,10.31 19.77,10.86 19.78,11.56C19.77,12.23 19.23,12.77 18.56,12.78M18.56,6.67C17.88,6.68 17.33,6.13 17.32,5.45C17.31,4.77 17.86,4.22 18.54,4.21C19.22,4.2 19.77,4.75 19.78,5.44C19.78,6.12 19.24,6.66 18.56,6.67M4.22,10H12.78A1.22,1.22 0 0,1 14,11.22V19.78C14,20.45 13.45,21 12.78,21H4.22C3.55,21 3,20.45 3,19.78V11.22C3,10.55 3.55,10 4.22,10M8.5,14.28C7.83,14.28 7.28,14.83 7.28,15.5C7.28,16.17 7.83,16.72 8.5,16.72C9.17,16.72 9.72,16.17 9.72,15.5A1.22,1.22 0 0,0 8.5,14.28M5.44,11.22C4.77,11.22 4.22,11.77 4.22,12.44A1.22,1.22 0 0,0 5.44,13.66C6.11,13.66 6.66,13.11 6.66,12.44V12.44C6.66,11.77 6.11,11.22 5.44,11.22M11.55,17.33C10.88,17.33 10.33,17.88 10.33,18.55C10.33,19.22 10.88,19.77 11.55,19.77A1.22,1.22 0 0,0 12.77,18.55H12.77C12.77,17.88 12.23,17.34 11.56,17.33H11.55Z\";\nexport var mdiDiceMultipleOutline = \"M14 8C13.45 8 13 7.55 13 7S13.45 6 14 6C14.55 6 15 6.45 15 7C15 7.55 14.55 8 14 8M12 12V19H5V12H12M12.78 10H4.22C3.55 10 3 10.55 3 11.22V19.78C3 20.45 3.55 21 4.22 21H12.78C13.45 21 14 20.45 14 19.78V11.22C14 10.55 13.45 10 12.78 10M19.78 3H11.22C10.55 3 10 3.55 10 4.22V8H12V5H19V12H16V14H19.78C20.45 14 21 13.45 21 12.78V4.22C21 3.55 20.45 3 19.78 3M17 8C16.45 8 16 7.55 16 7S16.45 6 17 6C17.55 6 18 6.45 18 7C18 7.55 17.55 8 17 8M17 11C16.45 11 16 10.55 16 10S16.45 9 17 9C17.55 9 18 9.45 18 10C18 10.55 17.55 11 17 11M7 15C6.45 15 6 14.55 6 14S6.45 13 7 13C7.55 13 8 13.45 8 14C8 14.55 7.55 15 7 15M10 18C9.45 18 9 17.55 9 17S9.45 16 10 16C10.55 16 11 16.45 11 17C11 17.55 10.55 18 10 18\";\nexport var mdiDigitalOcean = \"M6 12H2C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22V18H8V14H12V18C15.32 18 18 15.31 18 12C18 8.69 15.31 6 12 6C8.69 6 6 8.69 6 12M8 18V21H5V18H8M3 16H5V18H3V16Z\";\nexport var mdiDipSwitch = \"M3,4H7A1,1 0 0,1 8,5V19A1,1 0 0,1 7,20H3A1,1 0 0,1 2,19V5A1,1 0 0,1 3,4M10,4H14A1,1 0 0,1 15,5V19A1,1 0 0,1 14,20H10A1,1 0 0,1 9,19V5A1,1 0 0,1 10,4M17,4H21A1,1 0 0,1 22,5V19A1,1 0 0,1 21,20H17A1,1 0 0,1 16,19V5A1,1 0 0,1 17,4M4,18H6V13H4V18M11,11H13V6H11V11M18,18H20V13H18V18Z\";\nexport var mdiDirections = \"M14,14.5V12H10V15H8V11A1,1 0 0,1 9,10H14V7.5L17.5,11M21.71,11.29L12.71,2.29H12.7C12.31,1.9 11.68,1.9 11.29,2.29L2.29,11.29C1.9,11.68 1.9,12.32 2.29,12.71L11.29,21.71C11.68,22.09 12.31,22.1 12.71,21.71L21.71,12.71C22.1,12.32 22.1,11.68 21.71,11.29Z\";\nexport var mdiDirectionsFork = \"M3,4V12.5L6,9.5L9,13C10,14 10,15 10,15V21H14V14C14,14 14,13 13.47,12C12.94,11 12,10 12,10L9,6.58L11.5,4M18,4L13.54,8.47L14,9C14,9 14.93,10 15.47,11C15.68,11.4 15.8,11.79 15.87,12.13L21,7\";\nexport var mdiDisc = \"M12,14C10.89,14 10,13.1 10,12C10,10.89 10.89,10 12,10C13.11,10 14,10.89 14,12A2,2 0 0,1 12,14M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiDiscAlert = \"M10 14C8.9 14 8 13.1 8 12C8 10.9 8.9 10 10 10C11.1 10 12 10.9 12 12S11.1 14 10 14M10 4C5.6 4 2 7.6 2 12S5.6 20 10 20 18 16.4 18 12 14.4 4 10 4M20 13H22V7H20M20 17H22V15H20V17Z\";\nexport var mdiDiscPlayer = \"M14.5,10.37C15.54,10.37 16.38,9.53 16.38,8.5C16.38,7.46 15.54,6.63 14.5,6.63C13.46,6.63 12.63,7.46 12.63,8.5A1.87,1.87 0 0,0 14.5,10.37M14.5,1A7.5,7.5 0 0,1 22,8.5C22,10.67 21.08,12.63 19.6,14H9.4C7.93,12.63 7,10.67 7,8.5C7,4.35 10.36,1 14.5,1M6,21V22H4V21H2V15H22V21H20V22H18V21H6M4,18V19H13V18H4M15,17V19H17V17H15M19,17A1,1 0 0,0 18,18A1,1 0 0,0 19,19A1,1 0 0,0 20,18A1,1 0 0,0 19,17Z\";\nexport var mdiDishwasher = \"M18,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2M10,4A1,1 0 0,1 11,5A1,1 0 0,1 10,6A1,1 0 0,1 9,5A1,1 0 0,1 10,4M7,4A1,1 0 0,1 8,5A1,1 0 0,1 7,6A1,1 0 0,1 6,5A1,1 0 0,1 7,4M18,20H6V8H18V20M14.67,15.33C14.69,16.03 14.41,16.71 13.91,17.21C12.86,18.26 11.15,18.27 10.09,17.21C9.59,16.71 9.31,16.03 9.33,15.33C9.4,14.62 9.63,13.94 10,13.33C10.37,12.5 10.81,11.73 11.33,11L12,10C13.79,12.59 14.67,14.36 14.67,15.33\";\nexport var mdiDishwasherAlert = \"M16 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H16C17.11 22 18 21.11 18 20V4C18 2.9 17.11 2 16 2M8 4C8.55 4 9 4.45 9 5S8.55 6 8 6 7 5.55 7 5 7.45 4 8 4M5 4C5.55 4 6 4.45 6 5S5.55 6 5 6 4 5.55 4 5 4.45 4 5 4M16 20H4V8H16V20M12.67 15.33C12.69 16.03 12.41 16.71 11.91 17.21C10.86 18.26 9.15 18.27 8.09 17.21C7.59 16.71 7.31 16.03 7.33 15.33C7.4 14.62 7.63 13.94 8 13.33C8.37 12.5 8.81 11.73 9.33 11L10 10C11.79 12.59 12.67 14.36 12.67 15.33M20 15H22V17H20V15M20 7H22V13H20V7Z\";\nexport var mdiDishwasherOff = \"M22.11 21.46L2.39 1.73L1.11 3L4 5.89V20C4 21.11 4.89 22 6 22H18C18.58 22 19.1 21.75 19.46 21.35L20.84 22.73L22.11 21.46M18 20H6V8H6.11L10.5 12.37C10.31 12.69 10.15 13 10 13.33C9.63 13.94 9.4 14.62 9.33 15.33C9.31 16.03 9.59 16.71 10.09 17.21C11.15 18.27 12.86 18.26 13.91 17.21C14.16 16.97 14.35 16.68 14.5 16.36L18 19.89V20M11.2 8H18V14.8L20 16.8V4C20 2.9 19.11 2 18 2H6C5.76 2 5.54 2.05 5.33 2.13L11.2 8M10 4C10.55 4 11 4.45 11 5S10.55 6 10 6 9 5.55 9 5 9.45 4 10 4Z\";\nexport var mdiDisqus = \"M12.08,22C9.63,22 7.39,21.11 5.66,19.63L1.41,20.21L3.05,16.15C2.5,14.88 2.16,13.5 2.16,12C2.16,6.5 6.6,2 12.08,2C17.56,2 22,6.5 22,12C22,17.5 17.56,22 12.08,22M17.5,11.97V11.94C17.5,9.06 15.46,7 11.95,7H8.16V17H11.9C15.43,17 17.5,14.86 17.5,11.97M12,14.54H10.89V9.46H12C13.62,9.46 14.7,10.39 14.7,12V12C14.7,13.63 13.62,14.54 12,14.54Z\";\nexport var mdiDistributeHorizontalCenter = \"M8 2V5H10V19H8V22H6V19H4V5H6V2H8M16 2V7H14V17H16V22H18V17H20V7H18V2H16Z\";\nexport var mdiDistributeHorizontalLeft = \"M21 7V17H16V22H14V2H16V7H21M5 2H3V22H5V19H10V5H5V2Z\";\nexport var mdiDistributeHorizontalRight = \"M3 17V7H8V2H10V22H8V17H3M19 22H21V2H19V5H14V19H19V22Z\";\nexport var mdiDistributeVerticalBottom = \"M7 3H17V8H22V10H2V8H7V3M2 19V21H22V19H19V14H5V19H2Z\";\nexport var mdiDistributeVerticalCenter = \"M2 16H5V14H19V16H22V18H19V20H5V18H2V16M2 8H7V10H17V8H22V6H17V4H7V6H2V8Z\";\nexport var mdiDistributeVerticalTop = \"M17 21H7V16H2V14H22V16H17V21M22 5V3H2V5H5V10H19V5H22Z\";\nexport var mdiDiversify = \"M19 2V4H12C10.9 4 10 4.89 10 6V9H12V6H19V8L22 5L19 2M19 9V11H14V13H19V15L22 12L19 9M11.05 10C9.94 10 9.04 10.87 9.03 12S9.9 14 11 14C12.11 14 13 13.11 13 12C13 10.91 12.13 10.03 11.05 10M2 11V13H8V11H2M10 15V18C10 19.11 10.9 20 12 20H19V22L22 19L19 16V18H12V15H10Z\";\nexport var mdiDiving = \"M13.26 5.2L13.3 5.18C13.72 4.82 14.35 4.88 14.71 5.3L16.97 8H20C20.55 8 21 8.45 21 9S20.55 10 20 10H16.5C16.15 10 15.85 9.82 15.67 9.56L14.17 7.77L11.64 10.13L14.57 12.18C14.83 12.36 15 12.66 15 13V17C15 17.55 14.55 18 14 18S13 17.55 13 17V13.5L9.77 11.26C8.82 10.6 8.74 9.23 9.6 8.46L13.26 5.2M16.5 5C17.34 5 18 4.33 18 3.5S17.34 2 16.5 2 15 2.67 15 3.5 15.68 5 16.5 5M6 19H5C3.34 19 2 20.34 2 22H6V20.5H15V19H6Z\";\nexport var mdiDivingFlippers = \"M20.28,3.66C19.28,3.44 18.54,2.25 17.57,2.04C16.6,1.83 15.4,2.59 14.42,2.37C13.38,2 12.22,2.13 11.28,2.71L11.21,17L11,18C10.64,19.62 11.67,21.22 13.29,21.58C14.9,21.93 16.5,20.91 16.86,19.29L17.07,18.29L23,5.28C22.39,4.35 21.39,3.76 20.28,3.66M14.91,18.86C14.79,19.41 14.25,19.76 13.7,19.65C13.14,19.53 12.79,19 12.91,18.43L13.77,14.5C13.86,13.97 14.37,13.6 14.92,13.69C15.46,13.78 15.83,14.3 15.74,14.84C15.74,14.88 15.73,14.91 15.72,14.95L14.91,18.86M9.72,21.34C9.33,20.73 9.08,20.05 9,19.34L8.24,16C8.1,15.47 8.41,14.92 9,14.76C9.07,14.75 9.15,14.75 9.22,14.76V3.43C8.31,3.43 7.22,2.86 6.38,3.06C5.54,3.26 4.69,4.44 3.72,4.66C2.61,4.76 1.61,5.35 1,6.28L6.93,19.28L7.14,20.28C7.5,21.9 9.09,22.92 10.71,22.57H10.81C10.38,22.22 10,21.81 9.72,21.34Z\";\nexport var mdiDivingHelmet = \"M16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12M19.45,7.89L18.07,8.58L18.32,9H20V15H18.33C17.84,16.03 17.11,16.92 16.21,17.6C17.85,18.11 19.1,18.91 19.67,19.86C18.69,21.1 15.62,22 12,22C8.38,22 5.31,21.1 4.33,19.86C4.9,18.91 6.15,18.11 7.79,17.6C6.89,16.92 6.16,16.03 5.67,15H4V9H5.68C6.37,7.54 7.54,6.37 9,5.68V4H15V5.68C15.68,6 16.29,6.46 16.82,7L18.55,6.14C19.93,5.42 20,4.1 20,2H22C22,4.06 22,6.62 19.45,7.89M17,12A5,5 0 0,0 12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12Z\";\nexport var mdiDivingScuba = \"M1 13C1 11.9 1.9 11 3 11S5 11.9 5 13 4.1 15 3 15 1 14.1 1 13M8.89 10.11L13.42 8.9L12.64 6L8.11 7.21C7.31 7.42 6.83 8.25 7.05 9.05C7.27 9.85 8.09 10.33 8.89 10.11M20.5 5.9L23 3L22 2L19 5L17 9L7.5 11.87C6.7 12.07 6.13 12.76 6 13.55L5.24 18L2.4 21.8L4 23L7 19L8.14 15.86L14 14L19 10.5L20.5 5.9Z\";\nexport var mdiDivingScubaFlag = \"M2,6L19,20H2V6M5,4L22,18V4H5Z\";\nexport var mdiDivingScubaMask = \"M12,15C13.31,15 14.42,15.83 14.83,17H18A4,4 0 0,1 22,21V22H20V21A2,2 0 0,0 18,19H14.83C14.42,20.17 13.31,21 12,21A3,3 0 0,1 9,18A3,3 0 0,1 12,15M12,17A1,1 0 0,0 11,18A1,1 0 0,0 12,19A1,1 0 0,0 13,18A1,1 0 0,0 12,17M18,3A2,2 0 0,1 20,5V10A2,2 0 0,1 18,12H14.85C14.43,12 14.05,12.24 13.9,12.63C13.7,13.23 13.23,13.71 12.62,13.91C11.58,14.25 10.44,13.68 10.1,12.63C9.95,12.24 9.57,12 9.15,12H6A2,2 0 0,1 4,10V5A2,2 0 0,1 6,3H18M18,10V5H6V10H10.65C10.9,9.46 11.41,9.09 12,9C12.59,9.09 13.1,9.46 13.35,10H18Z\";\nexport var mdiDivingScubaTank = \"M19,18.5A2.5,2.5 0 0,1 16.5,21A2.5,2.5 0 0,1 14,18.5C14,17.47 14.62,16.59 15.5,16.21V6H11V7.35C12.22,7.93 13,9.15 13,10.5V22H6V10.5C6,9.15 6.78,7.93 8,7.35V6H6V4H8V3.5A1.5,1.5 0 0,1 9.5,2A1.5,1.5 0 0,1 11,3.5V4H15.5A2,2 0 0,1 17.5,6V16.21C18.38,16.59 19,17.47 19,18.5Z\";\nexport var mdiDivingScubaTankMultiple = \"M22,18.5A2.5,2.5 0 0,1 19.5,21A2.5,2.5 0 0,1 17,18.5C17,17.47 17.62,16.59 18.5,16.21V6H14V7.35C15.22,7.93 16,9.15 16,10.5V22H2V10.5C2,9.15 2.78,7.93 4,7.35V6H2V4H4V3.5A1.5,1.5 0 0,1 5.5,2A1.5,1.5 0 0,1 7,3.5V4H11V3.5A1.5,1.5 0 0,1 12.5,2A1.5,1.5 0 0,1 14,3.5V4H18.5A2,2 0 0,1 20.5,6V16.21C21.38,16.59 22,17.47 22,18.5M11,7.35V6H7V7.35C8.22,7.93 9,9.15 9,10.5C9,9.15 9.78,7.93 11,7.35Z\";\nexport var mdiDivingSnorkel = \"M16,3H4A2,2 0 0,0 2,5V10A2,2 0 0,0 4,12H7.15C7.57,12 7.95,12.24 8.1,12.63C8.44,13.68 9.58,14.25 10.62,13.91C11.23,13.71 11.7,13.23 11.9,12.63C12.05,12.24 12.43,12 12.85,12H16A2,2 0 0,0 18,10V5A2,2 0 0,0 16,3M16,10H11.35C11.1,9.46 10.59,9.09 10,9C9.41,9.09 8.9,9.46 8.65,10H4V5H16V10M22,2V15.5A6.5,6.5 0 0,1 15.5,22C13.79,22 12.15,21.32 10.93,20.12C8.95,20.58 6.88,19.79 5.71,18.12L7.62,17.29C8.5,18.22 9.84,18.5 11,18C11.2,17.91 11.39,17.8 11.56,17.67C12.4,17.05 12.87,16.04 12.78,15L14.69,14.17C15.1,16.04 14.41,18 12.9,19.17C13.66,19.71 14.57,20 15.5,20C18,20 20,18 20,15.5V2H22Z\";\nexport var mdiDivision = \"M19,13H5V11H19V13M12,5A2,2 0 0,1 14,7A2,2 0 0,1 12,9A2,2 0 0,1 10,7A2,2 0 0,1 12,5M12,15A2,2 0 0,1 14,17A2,2 0 0,1 12,19A2,2 0 0,1 10,17A2,2 0 0,1 12,15Z\";\nexport var mdiDivisionBox = \"M17,13V11H7V13H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19M12,7A1,1 0 0,0 11,8A1,1 0 0,0 12,9A1,1 0 0,0 13,8A1,1 0 0,0 12,7M12,15A1,1 0 0,0 11,16A1,1 0 0,0 12,17A1,1 0 0,0 13,16A1,1 0 0,0 12,15Z\";\nexport var mdiDlna = \"M21.38,12.56H12.85C11.97,12.56 11.1,12.96 10.61,13.61V13.6C10.12,14.28 9.32,14.72 8.41,14.72C6.92,14.72 5.71,13.5 5.71,12C5.71,10.5 6.92,9.31 8.41,9.31C9.32,9.31 10.12,9.75 10.61,10.43V10.42C11.1,11.07 11.97,11.5 12.85,11.5H21.29C21.45,11.5 22,11.4 22,10.67C21.26,6.43 17.1,3.18 12.06,3.18C8.96,3.18 6.19,4.41 4.34,6.35C4.05,6.79 4.35,6.92 4.63,6.96H10.14C11,6.96 11.89,6.54 12.38,5.89V5.91C12.88,5.23 13.67,4.78 14.58,4.78C16.07,4.78 17.28,6 17.28,7.5C17.28,9 16.07,10.2 14.58,10.2C13.67,10.2 12.88,9.75 12.38,9.07V9.08C11.89,8.44 11,8.03 10.14,8.03H4.13L4.15,8.03C4.15,8.03 3.26,8 2.72,8.75C2.3,9.42 2,10.85 2,12C2,13.16 2.17,14.21 2.72,15.27C3.19,16.03 4.15,16 4.15,16H4.11L10.14,16C11,16 11.89,15.58 12.38,14.93V14.94C12.88,14.26 13.67,13.81 14.58,13.81C16.07,13.81 17.28,15.03 17.28,16.5C17.28,18 16.07,19.23 14.58,19.23C13.67,19.23 12.88,18.78 12.38,18.1V18.12C11.89,17.47 11,17.05 10.14,17.05H4.64C4.36,17.09 4.06,17.22 4.32,17.64C6.17,19.58 8.95,20.82 12.06,20.82C17.11,20.82 21.28,17.57 22,13.31C22,12.72 21.59,12.58 21.38,12.56\";\nexport var mdiDna = \"M4,2H6V4C6,5.44 6.68,6.61 7.88,7.78C8.74,8.61 9.89,9.41 11.09,10.2L9.26,11.39C8.27,10.72 7.31,10 6.5,9.21C5.07,7.82 4,6.1 4,4V2M18,2H20V4C20,6.1 18.93,7.82 17.5,9.21C16.09,10.59 14.29,11.73 12.54,12.84C10.79,13.96 9.09,15.05 7.88,16.22C6.68,17.39 6,18.56 6,20V22H4V20C4,17.9 5.07,16.18 6.5,14.79C7.91,13.41 9.71,12.27 11.46,11.16C13.21,10.04 14.91,8.95 16.12,7.78C17.32,6.61 18,5.44 18,4V2M14.74,12.61C15.73,13.28 16.69,14 17.5,14.79C18.93,16.18 20,17.9 20,20V22H18V20C18,18.56 17.32,17.39 16.12,16.22C15.26,15.39 14.11,14.59 12.91,13.8L14.74,12.61M7,3H17V4L16.94,4.5H7.06L7,4V3M7.68,6H16.32C16.08,6.34 15.8,6.69 15.42,7.06L14.91,7.5H9.07L8.58,7.06C8.2,6.69 7.92,6.34 7.68,6M9.09,16.5H14.93L15.42,16.94C15.8,17.31 16.08,17.66 16.32,18H7.68C7.92,17.66 8.2,17.31 8.58,16.94L9.09,16.5M7.06,19.5H16.94L17,20V21H7V20L7.06,19.5Z\";\nexport var mdiDns = \"M7,9A2,2 0 0,1 5,7A2,2 0 0,1 7,5A2,2 0 0,1 9,7A2,2 0 0,1 7,9M20,3H4A1,1 0 0,0 3,4V10A1,1 0 0,0 4,11H20A1,1 0 0,0 21,10V4A1,1 0 0,0 20,3M7,19A2,2 0 0,1 5,17A2,2 0 0,1 7,15A2,2 0 0,1 9,17A2,2 0 0,1 7,19M20,13H4A1,1 0 0,0 3,14V20A1,1 0 0,0 4,21H20A1,1 0 0,0 21,20V14A1,1 0 0,0 20,13Z\";\nexport var mdiDnsOutline = \"M19,15V19H5V15H19M20,13H4A1,1 0 0,0 3,14V20A1,1 0 0,0 4,21H20A1,1 0 0,0 21,20V14A1,1 0 0,0 20,13M7,18.5A1.5,1.5 0 0,1 5.5,17A1.5,1.5 0 0,1 7,15.5A1.5,1.5 0 0,1 8.5,17A1.5,1.5 0 0,1 7,18.5M19,5V9H5V5H19M20,3H4A1,1 0 0,0 3,4V10A1,1 0 0,0 4,11H20A1,1 0 0,0 21,10V4A1,1 0 0,0 20,3M7,8.5A1.5,1.5 0 0,1 5.5,7A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 8.5,7A1.5,1.5 0 0,1 7,8.5Z\";\nexport var mdiDockBottom = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M20 13H4V6H20Z\";\nexport var mdiDockLeft = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M20 18H9V6H20Z\";\nexport var mdiDockRight = \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\";\nexport var mdiDockTop = \"M4 20H20C21.11 20 22 19.11 22 18V6C22 4.89 21.11 4 20 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20M4 11H20V18H4V11Z\";\nexport var mdiDockWindow = \"M18 18V20H4A2 2 0 0 1 2 18V8H4V18M22 6V14A2 2 0 0 1 20 16H8A2 2 0 0 1 6 14V6A2 2 0 0 1 8 4H20A2 2 0 0 1 22 6M20 6H8V14H20Z\";\nexport var mdiDocker = \"M21.81 10.25C21.75 10.21 21.25 9.82 20.17 9.82C19.89 9.82 19.61 9.85 19.33 9.9C19.12 8.5 17.95 7.79 17.9 7.76L17.61 7.59L17.43 7.86C17.19 8.22 17 8.63 16.92 9.05C16.72 9.85 16.84 10.61 17.25 11.26C16.76 11.54 15.96 11.61 15.79 11.61H2.62C2.28 11.61 2 11.89 2 12.24C2 13.39 2.18 14.54 2.58 15.62C3.03 16.81 3.71 17.69 4.58 18.23C5.56 18.83 7.17 19.17 9 19.17C9.79 19.17 10.61 19.1 11.42 18.95C12.54 18.75 13.62 18.36 14.61 17.79C15.43 17.32 16.16 16.72 16.78 16C17.83 14.83 18.45 13.5 18.9 12.35H19.09C20.23 12.35 20.94 11.89 21.33 11.5C21.59 11.26 21.78 10.97 21.92 10.63L22 10.39L21.81 10.25M3.85 11.24H5.61C5.69 11.24 5.77 11.17 5.77 11.08V9.5C5.77 9.42 5.7 9.34 5.61 9.34H3.85C3.76 9.34 3.69 9.41 3.69 9.5V11.08C3.7 11.17 3.76 11.24 3.85 11.24M6.28 11.24H8.04C8.12 11.24 8.2 11.17 8.2 11.08V9.5C8.2 9.42 8.13 9.34 8.04 9.34H6.28C6.19 9.34 6.12 9.41 6.12 9.5V11.08C6.13 11.17 6.19 11.24 6.28 11.24M8.75 11.24H10.5C10.6 11.24 10.67 11.17 10.67 11.08V9.5C10.67 9.42 10.61 9.34 10.5 9.34H8.75C8.67 9.34 8.6 9.41 8.6 9.5V11.08C8.6 11.17 8.66 11.24 8.75 11.24M11.19 11.24H12.96C13.04 11.24 13.11 11.17 13.11 11.08V9.5C13.11 9.42 13.05 9.34 12.96 9.34H11.19C11.11 9.34 11.04 9.41 11.04 9.5V11.08C11.04 11.17 11.11 11.24 11.19 11.24M6.28 9H8.04C8.12 9 8.2 8.91 8.2 8.82V7.25C8.2 7.16 8.13 7.09 8.04 7.09H6.28C6.19 7.09 6.12 7.15 6.12 7.25V8.82C6.13 8.91 6.19 9 6.28 9M8.75 9H10.5C10.6 9 10.67 8.91 10.67 8.82V7.25C10.67 7.16 10.61 7.09 10.5 7.09H8.75C8.67 7.09 8.6 7.15 8.6 7.25V8.82C8.6 8.91 8.66 9 8.75 9M11.19 9H12.96C13.04 9 13.11 8.91 13.11 8.82V7.25C13.11 7.16 13.04 7.09 12.96 7.09H11.19C11.11 7.09 11.04 7.15 11.04 7.25V8.82C11.04 8.91 11.11 9 11.19 9M11.19 6.72H12.96C13.04 6.72 13.11 6.65 13.11 6.56V5C13.11 4.9 13.04 4.83 12.96 4.83H11.19C11.11 4.83 11.04 4.89 11.04 5V6.56C11.04 6.64 11.11 6.72 11.19 6.72M13.65 11.24H15.41C15.5 11.24 15.57 11.17 15.57 11.08V9.5C15.57 9.42 15.5 9.34 15.41 9.34H13.65C13.57 9.34 13.5 9.41 13.5 9.5V11.08C13.5 11.17 13.57 11.24 13.65 11.24\";\nexport var mdiDoctor = \"M14.84,16.26C17.86,16.83 20,18.29 20,20V22H4V20C4,18.29 6.14,16.83 9.16,16.26L12,21L14.84,16.26M8,8H16V10A4,4 0 0,1 12,14A4,4 0 0,1 8,10V8M8,7L8.41,2.9C8.46,2.39 8.89,2 9.41,2H14.6C15.11,2 15.54,2.39 15.59,2.9L16,7H8M12,3H11V4H10V5H11V6H12V5H13V4H12V3Z\";\nexport var mdiDog = \"M18,4C16.29,4 15.25,4.33 14.65,4.61C13.88,4.23 13,4 12,4C11,4 10.12,4.23 9.35,4.61C8.75,4.33 7.71,4 6,4C3,4 1,12 1,14C1,14.83 2.32,15.59 4.14,15.9C4.78,18.14 7.8,19.85 11.5,20V15.72C10.91,15.35 10,14.68 10,14C10,13 12,13 12,13C12,13 14,13 14,14C14,14.68 13.09,15.35 12.5,15.72V20C16.2,19.85 19.22,18.14 19.86,15.9C21.68,15.59 23,14.83 23,14C23,12 21,4 18,4M4.15,13.87C3.65,13.75 3.26,13.61 3,13.5C3.25,10.73 5.2,6.4 6.05,6C6.59,6 7,6.06 7.37,6.11C5.27,8.42 4.44,12.04 4.15,13.87M9,12A1,1 0 0,1 8,11C8,10.46 8.45,10 9,10A1,1 0 0,1 10,11C10,11.56 9.55,12 9,12M15,12A1,1 0 0,1 14,11C14,10.46 14.45,10 15,10A1,1 0 0,1 16,11C16,11.56 15.55,12 15,12M19.85,13.87C19.56,12.04 18.73,8.42 16.63,6.11C17,6.06 17.41,6 17.95,6C18.8,6.4 20.75,10.73 21,13.5C20.75,13.61 20.36,13.75 19.85,13.87Z\";\nexport var mdiDogService = \"M14,8L17,11V21H15V15H8L6,18V21H4V15L5,14V11L2,8L3,7L5,9H7V12A1,1 0 0,0 8,13H12A1,1 0 0,0 13,12V9L14,8M19,5V3L15,7L18,10L19,9L20,10L22,8L19,5M11.5,9.5L4.5,2.5C4.23,2.22 3.79,2.22 3.5,2.5V2.5C3.22,2.77 3.22,3.21 3.5,3.5L10.5,10.5C10.77,10.78 11.21,10.78 11.5,10.5V10.5C11.78,10.23 11.78,9.79 11.5,9.5Z\";\nexport var mdiDogSide = \"M19,3L15,7L18,10L19,9L20,10L22,8L19,5V3M3,7L2,8L5,11V14L4,15V21H6V18L8,15H15V21H17V11L14,8L13,9H5L3,7Z\";\nexport var mdiDogSideOff = \"M18 10L15 7L19 3V5L22 8L20 10L19 9L18 10M17 11L14 8L13 9H12.2L17 13.8V11M2.39 1.73L1.11 3L7.11 9H5L3 7L2 8L5 11V14L4 15V21H6V18L8 15H13.11L15 16.89V21H17V18.89L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiDolby = \"M2,5V19H22V5H2M6,17H4V7H6C8.86,7.09 11.1,9.33 11,12C11.1,14.67 8.86,16.91 6,17M20,17H18C15.14,16.91 12.9,14.67 13,12C12.9,9.33 15.14,7.09 18,7H20V17Z\";\nexport var mdiDolly = \"M11.97,19.88C10.93,20.26 9.78,19.72 9.4,18.69C9,17.65 9.55,16.5 10.59,16.13C11.63,15.75 12.78,16.28 13.16,17.31C13.54,18.35 13,19.5 11.97,19.88M9.9,14.25C7.83,15 6.76,17.3 7.5,19.38C8.28,21.45 10.58,22.5 12.66,21.75C14.73,21 15.79,18.7 15.04,16.63C14.28,14.55 11.97,13.5 9.9,14.25M15.94,4.58L9.37,7L10.75,10.74L17.32,8.33M20.32,13.62L15.54,15.37C15.71,15.66 15.85,15.96 15.97,16.28C16.09,16.6 16.17,16.93 16.22,17.25L21,15.5M19.54,8.58L11.09,11.68L11.58,13C12.83,13.09 14,13.64 14.89,14.55L20.92,12.34M2,2V4H5.09L8.66,13.75C8.94,13.57 9.24,13.43 9.56,13.31C9.88,13.19 10.21,13.11 10.53,13.06L6.5,2\";\nexport var mdiDolphin = \"M20 7C20 7 20 3 15 3C13.47 3 12.15 3.19 11 3.5C10.5 3.06 7.26 .309 4 3.57L6.56 6.13C2.5 10.53 4 18 4 18S1 18 1 22C1 22 5 21 5 21C5 21 9 22 9 22C9 18 6 18 6 18S6.85 12.24 13 11.18V14C15 14 15.68 12.19 15.89 11H18C22 11 23 10 23 9S21 7 20 7M18 8C17.45 8 17 7.55 17 7S17.45 6 18 6 19 6.45 19 7 18.55 8 18 8Z\";\nexport var mdiDomain = \"M18,15H16V17H18M18,11H16V13H18M20,19H12V17H14V15H12V13H14V11H12V9H20M10,7H8V5H10M10,11H8V9H10M10,15H8V13H10M10,19H8V17H10M6,7H4V5H6M6,11H4V9H6M6,15H4V13H6M6,19H4V17H6M12,7V3H2V21H22V7H12Z\";\nexport var mdiDomainOff = \"M12,19H16L14,17H12V19M10,15V13H8V15H10M10,19V17H8V19H10M6,11V9H4V11H6M6,15V13H4V15H6M6,19V17H4V19H6M1.31,1.78L22.31,22.69L21,24L18,21H2V5L0.09,3.09L1.31,1.78M16,11H18V13H16V11M8,5V5.91L5.11,3H12V7H22V19.92L20,17.91V9H12V9.89L9.09,7H10V5H8Z\";\nexport var mdiDomainPlus = \"M12 7V3H2V21H13.35A5.8 5.8 0 0 1 13 19H12V17H13.35A5 5 0 0 1 14 15.69V15H12V13H14V11H12V9H20V13.09A5.58 5.58 0 0 1 22 13.81V7M6 19H4V17H6M6 15H4V13H6M6 11H4V9H6M6 7H4V5H6M10 19H8V17H10M10 15H8V13H10M10 11H8V9H10M10 7H8V5H10M16 13H18V11H16M16 11V13H18V11M16 11V13H18V11M20 15V18H23V20H20V23H18V20H15V18H18V15Z\";\nexport var mdiDomainRemove = \"M12 7V3H2V21H13.35A5.8 5.8 0 0 1 13 19H12V17H13.35A5 5 0 0 1 14 15.69V15H12V13H14V11H12V9H20V13.09A5.58 5.58 0 0 1 22 13.81V7M6 19H4V17H6M6 15H4V13H6M6 11H4V9H6M6 7H4V5H6M10 19H8V17H10M10 15H8V13H10M10 11H8V9H10M10 7H8V5H10M16 13H18V11H16M16 11V13H18V11M16 11V13H18V11M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.46 16.88L16.88 15.46L19 17.59L21.12 15.46Z\";\nexport var mdiDomainSwitch = \"M16 9H18V11H16V9M22 15V5H12V1H2V15H22M20 13H12V11H14V9H12V7H20V13M8 5V3H10V5H8M8 9V7H10V9H8M8 13V11H10V13H8M4 5V3H6V5H4M4 9V7H6V9H4M4 13V11H6V13H4M9 17V19H15V17L18 20L15 23V21H9V23L6 20L9 17Z\";\nexport var mdiDomeLight = \"M21 10C21 14.97 16.97 19 12 19C7.03 19 3 14.97 3 10V9.03C3 8.76 3.11 8.5 3.3 8.3C3.5 8.11 3.76 8 4.03 8H20C20.25 8 20.5 8.11 20.7 8.3C20.89 8.5 21 8.75 21 9V10M5 10C5 13.86 8.14 17 12 17C15.86 17 19 13.86 19 10H5M20 6V7H4V6C4 5.73 4.1 5.5 4.29 5.29C4.5 5.1 4.73 5 5 5H10V3H14V5H19C19.25 5 19.5 5.11 19.7 5.3C19.89 5.5 20 5.75 20 6Z\";\nexport var mdiDominoMask = \"M15.83 9.81C14.7 9.7 13.69 10.38 13.46 11.5C13.46 11.84 14.81 12.29 16.05 12.29C17.29 12.29 18.41 11.5 18.41 11.28C18.41 11.05 17.63 9.93 15.83 9.81M8.18 9.81C6.38 9.93 5.59 10.94 5.59 11.27C5.59 11.5 6.82 12.29 7.95 12.29S10.54 11.84 10.54 11.5C10.31 10.38 9.19 9.7 8.18 9.81M16.95 16C15.04 16 13.8 13.75 12 13.75S8.85 16 7.05 16C4.69 16 3 13.86 3 10.04C3 7.68 3.68 7 6.71 7S10.54 8.24 12 8.24 14.36 7 17.29 7 21 7.79 21 10.04C21 13.86 19.31 16 16.95 16Z\";\nexport var mdiDonkey = \"M21.34,10.35L21.27,10.28L21.18,10.19L18,7V6A0.5,0.5 0 0,0 17.5,5.5C17.36,5.5 17.22,5.56 17.13,5.66L13.46,9H7C6.32,9 5.69,9.35 5.32,9.92L2.62,12.59C2.29,13.04 2.39,13.66 2.84,14C3.18,14.24 3.65,14.25 4,14L5,13.07V19H8V15H13V19H16V13.83C16,13.3 16.21,12.79 16.59,12.42L18,11L20,12V12C20.15,12.08 20.32,12.13 20.5,12.13C21.1,12.11 21.59,11.61 21.58,11C21.57,10.76 21.5,10.53 21.34,10.35Z\";\nexport var mdiDoor = \"M8,3C6.89,3 6,3.89 6,5V21H18V5C18,3.89 17.11,3 16,3H8M8,5H16V19H8V5M13,11V13H15V11H13Z\";\nexport var mdiDoorClosed = \"M16,11H18V13H16V11M12,3H19C20.11,3 21,3.89 21,5V19H22V21H2V19H10V5C10,3.89 10.89,3 12,3M12,5V19H19V5H12Z\";\nexport var mdiDoorClosedCancel = \"M6.5 11C9 11 11 9 11 6.5C11 4 9 2 6.5 2C4 2 2 4 2 6.5C2 9 4 11 6.5 11M3.92 5L8 9.09C7.58 9.35 7.06 9.5 6.5 9.5C4.84 9.5 3.5 8.16 3.5 6.5C3.5 5.94 3.65 5.42 3.92 5M9.5 6.5C9.5 7.06 9.35 7.58 9.09 8L5 3.92C5.42 3.65 5.94 3.5 6.5 3.5C8.16 3.5 9.5 4.84 9.5 6.5M10 12C10.81 11.46 11.5 10.77 12 9.97V19H19V5H12.83C12.66 4.28 12.37 3.61 12 3H19C20.11 3 21 3.89 21 5V19H22V21H2V19H10V12M16 11H18V13H16V11Z\";\nexport var mdiDoorClosedLock = \"M16 11H18V13H16V11M12 3H19A2 2 0 0 1 21 5V19H22V21H2V19H10V5A2 2 0 0 1 12 3M12 5V19H19V5M6.2 5H2.8V4.5A1.7 1.7 0 0 1 6.2 4.5M7 5V4.5A2.5 2.5 0 0 0 2 4.5V5A1 1 0 0 0 1 6V10A1 1 0 0 0 2 11H7A1 1 0 0 0 8 10V6A1 1 0 0 0 7 5\";\nexport var mdiDoorOpen = \"M12,3C10.89,3 10,3.89 10,5H3V19H2V21H22V19H21V5C21,3.89 20.11,3 19,3H12M12,5H19V19H12V5M5,11H7V13H5V11Z\";\nexport var mdiDoorSliding = \"M10 13H8V11H10V13M16 11H14V13H16V11M21 19V21H3V19H4V5C4 3.9 4.9 3 6 3H18C19.1 3 20 3.9 20 5V19H21M11 5H6V19H11V5M18 5H13V19H18V5Z\";\nexport var mdiDoorSlidingLock = \"M21.8 17V15.5C21.8 14.1 20.4 13 19 13S16.2 14.1 16.2 15.5V17C15.6 17 15 17.6 15 18.2V21.7C15 22.4 15.6 23 16.2 23H21.7C22.4 23 23 22.4 23 21.8V18.3C23 17.6 22.4 17 21.8 17M20.5 17H17.5V15.5C17.5 14.7 18.2 14.2 19 14.2S20.5 14.7 20.5 15.5V17M13 11H15V13H13V11M9 13H7V11H9V13M13 19H12V5H17V11.44C17.61 11.17 18.29 11 19 11V5C19 3.9 18.1 3 17 3H5C3.9 3 3 3.9 3 5V19H2V21H13V19M10 19H5V5H10V19Z\";\nexport var mdiDoorSlidingOpen = \"M6 11V13H4V11H6M22 5H17V19H22V5M7 5H2L2 19H7V5M22 3C23.11 3 24 3.89 24 5V21H0V5C0 3.89 .894 3 2 3H9V19H15V3H22M20 11H18V13H20V11Z\";\nexport var mdiDoorbell = \"M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M16 2H8C6.9 2 6 2.9 6 4V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V4C18 2.9 17.1 2 16 2M16 20H8V4H16V20Z\";\nexport var mdiDoorbellVideo = \"M14 15C14 16.11 13.11 17 12 17S10 16.11 10 15 10.9 13 12 13 14 13.9 14 15M18 4V20C18 21.1 17.11 22 16 22H8C6.9 22 6 21.11 6 20V4C6 2.9 6.9 2 8 2H16C17.11 2 18 2.9 18 4M10.5 7C10.5 7.83 11.17 8.5 12 8.5S13.5 7.83 13.5 7 12.83 5.5 12 5.5 10.5 6.17 10.5 7M16 10H8V20H16V10Z\";\nexport var mdiDotNet = \"M2,15A1,1 0 0,1 3,16A1,1 0 0,1 2,17A1,1 0 0,1 1,16A1,1 0 0,1 2,15M21,17H19V9H17V7H23V9H21V17M16,7V9H14V11H16V13H14V15H16V17H12V7H16M11,7V17H9L6,11V17H4V7H6L9,13V7H11Z\";\nexport var mdiDotsCircle = \"M12 19C13.1 19 14 19.9 14 21S13.1 23 12 23 10 22.1 10 21 10.9 19 12 19M12 1C13.1 1 14 1.9 14 3S13.1 5 12 5 10 4.1 10 3 10.9 1 12 1M6 16C7.1 16 8 16.9 8 18S7.1 20 6 20 4 19.1 4 18 4.9 16 6 16M3 10C4.1 10 5 10.9 5 12S4.1 14 3 14 1 13.1 1 12 1.9 10 3 10M6 4C7.1 4 8 4.9 8 6S7.1 8 6 8 4 7.1 4 6 4.9 4 6 4M18 16C19.1 16 20 16.9 20 18S19.1 20 18 20 16 19.1 16 18 16.9 16 18 16M21 10C22.1 10 23 10.9 23 12S22.1 14 21 14 19 13.1 19 12 19.9 10 21 10M18 4C19.1 4 20 4.9 20 6S19.1 8 18 8 16 7.1 16 6 16.9 4 18 4Z\";\nexport var mdiDotsGrid = \"M12 16C13.1 16 14 16.9 14 18S13.1 20 12 20 10 19.1 10 18 10.9 16 12 16M12 10C13.1 10 14 10.9 14 12S13.1 14 12 14 10 13.1 10 12 10.9 10 12 10M12 4C13.1 4 14 4.9 14 6S13.1 8 12 8 10 7.1 10 6 10.9 4 12 4M6 16C7.1 16 8 16.9 8 18S7.1 20 6 20 4 19.1 4 18 4.9 16 6 16M6 10C7.1 10 8 10.9 8 12S7.1 14 6 14 4 13.1 4 12 4.9 10 6 10M6 4C7.1 4 8 4.9 8 6S7.1 8 6 8 4 7.1 4 6 4.9 4 6 4M18 16C19.1 16 20 16.9 20 18S19.1 20 18 20 16 19.1 16 18 16.9 16 18 16M18 10C19.1 10 20 10.9 20 12S19.1 14 18 14 16 13.1 16 12 16.9 10 18 10M18 4C19.1 4 20 4.9 20 6S19.1 8 18 8 16 7.1 16 6 16.9 4 18 4Z\";\nexport var mdiDotsHexagon = \"M16 12C16 10.9 16.9 10 18 10S20 10.9 20 12 19.1 14 18 14 16 13.1 16 12M10 12C10 10.9 10.9 10 12 10S14 10.9 14 12 13.1 14 12 14 10 13.1 10 12M4 12C4 10.9 4.9 10 6 10S8 10.9 8 12 7.1 14 6 14 4 13.1 4 12M13 18C13 16.9 13.9 16 15 16S17 16.9 17 18 16.1 20 15 20 13 19.1 13 18M7 18C7 16.9 7.9 16 9 16S11 16.9 11 18 10.1 20 9 20 7 19.1 7 18M13 6C13 4.9 13.9 4 15 4S17 4.9 17 6 16.1 8 15 8 13 7.1 13 6M7 6C7 4.9 7.9 4 9 4S11 4.9 11 6 10.1 8 9 8 7 7.1 7 6\";\nexport var mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nexport var mdiDotsHorizontalCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 12,13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 12,10.5M6.5,10.5A1.5,1.5 0 0,0 5,12A1.5,1.5 0 0,0 6.5,13.5A1.5,1.5 0 0,0 8,12A1.5,1.5 0 0,0 6.5,10.5M17.5,10.5A1.5,1.5 0 0,0 16,12A1.5,1.5 0 0,0 17.5,13.5A1.5,1.5 0 0,0 19,12A1.5,1.5 0 0,0 17.5,10.5Z\";\nexport var mdiDotsHorizontalCircleOutline = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 12,10.5M7.5,10.5A1.5,1.5 0 0,1 9,12A1.5,1.5 0 0,1 7.5,13.5A1.5,1.5 0 0,1 6,12A1.5,1.5 0 0,1 7.5,10.5M16.5,10.5A1.5,1.5 0 0,1 18,12A1.5,1.5 0 0,1 16.5,13.5A1.5,1.5 0 0,1 15,12A1.5,1.5 0 0,1 16.5,10.5Z\";\nexport var mdiDotsSquare = \"M12 16C13.1 16 14 16.9 14 18S13.1 20 12 20 10 19.1 10 18 10.9 16 12 16M12 4C13.1 4 14 4.9 14 6S13.1 8 12 8 10 7.1 10 6 10.9 4 12 4M6 16C7.1 16 8 16.9 8 18S7.1 20 6 20 4 19.1 4 18 4.9 16 6 16M6 10C7.1 10 8 10.9 8 12S7.1 14 6 14 4 13.1 4 12 4.9 10 6 10M6 4C7.1 4 8 4.9 8 6S7.1 8 6 8 4 7.1 4 6 4.9 4 6 4M18 16C19.1 16 20 16.9 20 18S19.1 20 18 20 16 19.1 16 18 16.9 16 18 16M18 10C19.1 10 20 10.9 20 12S19.1 14 18 14 16 13.1 16 12 16.9 10 18 10M18 4C19.1 4 20 4.9 20 6S19.1 8 18 8 16 7.1 16 6 16.9 4 18 4Z\";\nexport var mdiDotsTriangle = \"M12 16C13.1 16 14 16.9 14 18S13.1 20 12 20 10 19.1 10 18 10.9 16 12 16M15 10C16.1 10 17 10.9 17 12S16.1 14 15 14 13 13.1 13 12 13.9 10 15 10M6 16C7.1 16 8 16.9 8 18S7.1 20 6 20 4 19.1 4 18 4.9 16 6 16M9 10C10.1 10 11 10.9 11 12S10.1 14 9 14 7 13.1 7 12 7.9 10 9 10M12 4C13.1 4 14 4.9 14 6S13.1 8 12 8 10 7.1 10 6 10.9 4 12 4M18 16C19.1 16 20 16.9 20 18S19.1 20 18 20 16 19.1 16 18 16.9 16 18 16\";\nexport var mdiDotsVertical = \"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z\";\nexport var mdiDotsVerticalCircle = \"M2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12M10.5,12A1.5,1.5 0 0,0 12,13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 12,10.5A1.5,1.5 0 0,0 10.5,12M10.5,17.5A1.5,1.5 0 0,0 12,19A1.5,1.5 0 0,0 13.5,17.5A1.5,1.5 0 0,0 12,16A1.5,1.5 0 0,0 10.5,17.5M10.5,6.5A1.5,1.5 0 0,0 12,8A1.5,1.5 0 0,0 13.5,6.5A1.5,1.5 0 0,0 12,5A1.5,1.5 0 0,0 10.5,6.5Z\";\nexport var mdiDotsVerticalCircleOutline = \"M10.5,12A1.5,1.5 0 0,1 12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12M10.5,16.5A1.5,1.5 0 0,1 12,15A1.5,1.5 0 0,1 13.5,16.5A1.5,1.5 0 0,1 12,18A1.5,1.5 0 0,1 10.5,16.5M10.5,7.5A1.5,1.5 0 0,1 12,6A1.5,1.5 0 0,1 13.5,7.5A1.5,1.5 0 0,1 12,9A1.5,1.5 0 0,1 10.5,7.5M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiDownload = \"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\";\nexport var mdiDownloadBox = \"M5 3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3M8 17H16V15H8V17M16 10H13.5V7H10.5V10H8L12 14L16 10Z\";\nexport var mdiDownloadBoxOutline = \"M8 17V15H16V17H8M16 10L12 14L8 10H10.5V7H13.5V10H16M5 3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3M5 5V19H19V5H5Z\";\nexport var mdiDownloadCircle = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M8 17H16V15H8V17M16 10H13.5V6H10.5V10H8L12 14L16 10Z\";\nexport var mdiDownloadCircleOutline = \"M8 17V15H16V17H8M16 10L12 14L8 10H10.5V6H13.5V10H16M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4Z\";\nexport var mdiDownloadLock = \"M5 20H14V18H5M19 9H15V3H9V9H5L12 16M22 16A1.08 1.08 0 0 1 23 17V21A1.08 1.08 0 0 1 22 22H17A1.08 1.08 0 0 1 16 21V17A1.08 1.08 0 0 1 17 16V14.5A2.5 2.5 0 0 1 22 14.5V16M21 16V14.5A1.5 1.5 0 0 0 18 14.5V16H21\";\nexport var mdiDownloadLockOutline = \"M22 16A1.08 1.08 0 0 1 23 17V21A1.08 1.08 0 0 1 22 22H17A1.08 1.08 0 0 1 16 21V17A1.08 1.08 0 0 1 17 16V14.5A2.5 2.5 0 0 1 22 14.5V16M21 16V14.5A1.5 1.5 0 0 0 18 14.5V16H21M13 5V11H14.17L12 13.17L9.83 11H11V5H13M15 3H9V9H5L12 16L19 9H15V3M14 18H5V20H14Z\";\nexport var mdiDownloadMultiple = \"M9,1V7H5L12,14L19,7H15V1H9M5,16V18H19V16H5M5,20V22H19V20H5Z\";\nexport var mdiDownloadMultipleOutline = \"M12 14L19 7H15V1H9V7H5L12 14M12 11.17L9.83 9H11V3H13V9H14.17L12 11.17M5 16V18H19V16H5M5 22V20H19V22H5Z\";\nexport var mdiDownloadNetwork = \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17M12,14.5L16.5,10H13V6H11V10H7.5L12,14.5Z\";\nexport var mdiDownloadNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M12,14L16,10H13V6H11V10H8L12,14Z\";\nexport var mdiDownloadOff = \"M20.84 22.73L18.11 20H5V18H16.11L13.06 14.95L12 16L5 9H7.11L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M19 9H15V3H9V5.8L15.6 12.4L19 9Z\";\nexport var mdiDownloadOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L7.11 9H5L12 16L13.06 14.95L16.11 18H5V20H18.11L20.84 22.73L22.11 21.46M11 5H13V9.8L15.6 12.4L19 9H15V3H9V5.8L11 7.8V5Z\";\nexport var mdiDownloadOutline = \"M13,5V11H14.17L12,13.17L9.83,11H11V5H13M15,3H9V9H5L12,16L19,9H15V3M19,18H5V20H19V18Z\";\nexport var mdiDrag = \"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\";\nexport var mdiDragHorizontal = \"M3,15V13H5V15H3M3,11V9H5V11H3M7,15V13H9V15H7M7,11V9H9V11H7M11,15V13H13V15H11M11,11V9H13V11H11M15,15V13H17V15H15M15,11V9H17V11H15M19,15V13H21V15H19M19,11V9H21V11H19Z\";\nexport var mdiDragHorizontalVariant = \"M21 11H3V9H21V11M21 13H3V15H21V13Z\";\nexport var mdiDragVariant = \"M22.67,12L18.18,16.5L15.67,14L17.65,12L15.67,10.04L18.18,7.53L22.67,12M12,1.33L16.47,5.82L13.96,8.33L12,6.35L10,8.33L7.5,5.82L12,1.33M12,22.67L7.53,18.18L10.04,15.67L12,17.65L14,15.67L16.5,18.18L12,22.67M1.33,12L5.82,7.5L8.33,10L6.35,12L8.33,13.96L5.82,16.47L1.33,12M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10Z\";\nexport var mdiDragVertical = \"M9,3H11V5H9V3M13,3H15V5H13V3M9,7H11V9H9V7M13,7H15V9H13V7M9,11H11V13H9V11M13,11H15V13H13V11M9,15H11V17H9V15M13,15H15V17H13V15M9,19H11V21H9V19M13,19H15V21H13V19Z\";\nexport var mdiDragVerticalVariant = \"M11 21H9V3H11V21M15 3H13V21H15V3Z\";\nexport var mdiDramaMasks = \"M8.11,19.45C5.94,18.65 4.22,16.78 3.71,14.35L2.05,6.54C1.81,5.46 2.5,4.4 3.58,4.17L13.35,2.1L13.38,2.09C14.45,1.88 15.5,2.57 15.72,3.63L16.07,5.3L20.42,6.23H20.45C21.5,6.47 22.18,7.53 21.96,8.59L20.3,16.41C19.5,20.18 15.78,22.6 12,21.79C10.42,21.46 9.08,20.61 8.11,19.45V19.45M20,8.18L10.23,6.1L8.57,13.92V13.95C8,16.63 9.73,19.27 12.42,19.84C15.11,20.41 17.77,18.69 18.34,16L20,8.18M16,16.5C15.37,17.57 14.11,18.16 12.83,17.89C11.56,17.62 10.65,16.57 10.5,15.34L16,16.5M8.47,5.17L4,6.13L5.66,13.94L5.67,13.97C5.82,14.68 6.12,15.32 6.53,15.87C6.43,15.1 6.45,14.3 6.62,13.5L7.05,11.5C6.6,11.42 6.21,11.17 6,10.81C6.06,10.2 6.56,9.66 7.25,9.5C7.33,9.5 7.4,9.5 7.5,9.5L8.28,5.69C8.32,5.5 8.38,5.33 8.47,5.17M15.03,12.23C15.35,11.7 16.03,11.42 16.72,11.57C17.41,11.71 17.91,12.24 18,12.86C17.67,13.38 17,13.66 16.3,13.5C15.61,13.37 15.11,12.84 15.03,12.23M10.15,11.19C10.47,10.66 11.14,10.38 11.83,10.53C12.5,10.67 13.03,11.21 13.11,11.82C12.78,12.34 12.11,12.63 11.42,12.5C10.73,12.33 10.23,11.8 10.15,11.19M11.97,4.43L13.93,4.85L13.77,4.05L11.97,4.43Z\";\nexport var mdiDraw = \"M9.75 20.85C11.53 20.15 11.14 18.22 10.24 17C9.35 15.75 8.12 14.89 6.88 14.06C6 13.5 5.19 12.8 4.54 12C4.26 11.67 3.69 11.06 4.27 10.94C4.86 10.82 5.88 11.4 6.4 11.62C7.31 12 8.21 12.44 9.05 12.96L10.06 11.26C8.5 10.23 6.5 9.32 4.64 9.05C3.58 8.89 2.46 9.11 2.1 10.26C1.78 11.25 2.29 12.25 2.87 13.03C4.24 14.86 6.37 15.74 7.96 17.32C8.3 17.65 8.71 18.04 8.91 18.5C9.12 18.94 9.07 18.97 8.6 18.97C7.36 18.97 5.81 18 4.8 17.36L3.79 19.06C5.32 20 7.88 21.47 9.75 20.85M20.84 5.25C21.06 5.03 21.06 4.67 20.84 4.46L19.54 3.16C19.33 2.95 18.97 2.95 18.76 3.16L17.74 4.18L19.82 6.26M11 10.92V13H13.08L19.23 6.85L17.15 4.77L11 10.92Z\";\nexport var mdiDrawPen = \"M9.75 20.85C11.53 20.15 11.14 18.22 10.24 17C9.35 15.75 8.12 14.89 6.88 14.06C6 13.5 5.19 12.8 4.54 12C4.26 11.67 3.69 11.06 4.27 10.94C4.86 10.82 5.88 11.4 6.4 11.62C7.31 12 8.21 12.44 9.05 12.96L10.06 11.26C8.5 10.23 6.5 9.32 4.64 9.05C3.58 8.89 2.46 9.11 2.1 10.26C1.78 11.25 2.29 12.25 2.87 13.03C4.24 14.86 6.37 15.74 7.96 17.32C8.3 17.65 8.71 18.04 8.91 18.5C9.12 18.94 9.07 18.97 8.6 18.97C7.36 18.97 5.81 18 4.8 17.36L3.79 19.06C5.32 20 7.88 21.47 9.75 20.85M18.96 7.33L13.29 13H11V10.71L16.67 5.03L18.96 7.33M22.36 6.55C22.35 6.85 22.04 7.16 21.72 7.47L19.2 10L18.33 9.13L20.93 6.54L20.34 5.95L19.67 6.62L17.38 4.33L19.53 2.18C19.77 1.94 20.16 1.94 20.39 2.18L21.82 3.61C22.06 3.83 22.06 4.23 21.82 4.47C21.61 4.68 21.41 4.88 21.41 5.08C21.39 5.28 21.59 5.5 21.79 5.67C22.08 5.97 22.37 6.25 22.36 6.55Z\";\nexport var mdiDrawing = \"M8.5,3A5.5,5.5 0 0,1 14,8.5C14,9.83 13.53,11.05 12.74,12H21V21H12V12.74C11.05,13.53 9.83,14 8.5,14A5.5,5.5 0 0,1 3,8.5A5.5,5.5 0 0,1 8.5,3Z\";\nexport var mdiDrawingBox = \"M18,18H12V12.21C11.34,12.82 10.47,13.2 9.5,13.2C7.46,13.2 5.8,11.54 5.8,9.5A3.7,3.7 0 0,1 9.5,5.8C11.54,5.8 13.2,7.46 13.2,9.5C13.2,10.47 12.82,11.34 12.21,12H18M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiDresser = \"M4 3C2.9 3 2 3.9 2 5V8H22V5C22 3.9 21.11 3 20 3H4M10 5H14V6H10V5M2 9V14H22V9H2M10 11H14V12H10V11M2 15V18C2 19.11 2.9 20 4 20V21H6V20H18V21H20V20C21.11 20 22 19.11 22 18V15H2M10 17H14V18H10V17Z\";\nexport var mdiDresserOutline = \"M4 3C2.9 3 2 3.9 2 5V18C2 19.11 2.9 20 4 20V21H6V20H18V21H20V20C21.11 20 22 19.11 22 18V5C22 3.9 21.11 3 20 3H4M4 5H20V8H4V5M10 6V7H14V6H10M4 10H20V13H4V10M10 11V12H14V11H10M4 15H20V18H4V15M10 16V17H14V16H10Z\";\nexport var mdiDrone = \"M22,11H21L20,9H13.75L16,12.5H14L10.75,9H4C3.45,9 2,8.55 2,8C2,7.45 3.5,5.5 5.5,5.5C7.5,5.5 7.67,6.5 9,7H21A1,1 0 0,1 22,8V9L22,11M10.75,6.5L14,3H16L13.75,6.5H10.75M18,11V9.5H19.75L19,11H18M3,19A1,1 0 0,1 2,18A1,1 0 0,1 3,17A4,4 0 0,1 7,21A1,1 0 0,1 6,22A1,1 0 0,1 5,21A2,2 0 0,0 3,19M11,21A1,1 0 0,1 10,22A1,1 0 0,1 9,21A6,6 0 0,0 3,15A1,1 0 0,1 2,14A1,1 0 0,1 3,13A8,8 0 0,1 11,21Z\";\nexport var mdiDropbox = \"M3 6.2L8 9.39L13 6.2L8 3L3 6.2M13 6.2L18 9.39L23 6.2L18 3L13 6.2M3 12.55L8 15.74L13 12.55L8 9.35L3 12.55M18 9.35L13 12.55L18 15.74L23 12.55L18 9.35M8.03 16.8L13.04 20L18.04 16.8L13.04 13.61L8.03 16.8Z\";\nexport var mdiDrupal = \"M20.47,14.65C20.47,15.29 20.25,16.36 19.83,17.1C19.4,17.85 19.08,18.06 18.44,18.06C17.7,17.95 16.31,15.82 15.36,15.72C14.18,15.72 11.73,18.17 9.71,18.17C8.54,18.17 8.11,17.95 7.79,17.74C7.15,17.31 6.94,16.67 6.94,15.82C6.94,14.22 8.43,12.84 10.24,12.84C12.59,12.84 14.18,15.18 15.36,15.08C16.31,15.08 18.23,13.16 19.19,13.16C20.15,12.95 20.47,14 20.47,14.65M16.63,5.28C15.57,4.64 14.61,4.32 13.54,3.68C12.91,3.25 12.05,2.3 11.31,1.44C11,2.83 10.78,3.36 10.24,3.79C9.18,4.53 8.64,4.85 7.69,5.28C6.94,5.7 3,8.05 3,13.16C3,18.27 7.37,22 12.05,22C16.85,22 21,18.5 21,13.27C21.21,8.05 17.27,5.7 16.63,5.28Z\";\nexport var mdiDuck = \"M8.5,5A1.5,1.5 0 0,0 7,6.5A1.5,1.5 0 0,0 8.5,8A1.5,1.5 0 0,0 10,6.5A1.5,1.5 0 0,0 8.5,5M10,2A5,5 0 0,1 15,7C15,8.7 14.15,10.2 12.86,11.1C14.44,11.25 16.22,11.61 18,12.5C21,14 22,12 22,12C22,12 21,21 15,21H9C9,21 4,21 4,16C4,13 7,12 6,10C2,10 2,6.5 2,6.5C3,7 4.24,7 5,6.65C5.19,4.05 7.36,2 10,2Z\";\nexport var mdiDumbbell = \"M20.57,14.86L22,13.43L20.57,12L17,15.57L8.43,7L12,3.43L10.57,2L9.14,3.43L7.71,2L5.57,4.14L4.14,2.71L2.71,4.14L4.14,5.57L2,7.71L3.43,9.14L2,10.57L3.43,12L7,8.43L15.57,17L12,20.57L13.43,22L14.86,20.57L16.29,22L18.43,19.86L19.86,21.29L21.29,19.86L19.86,18.43L22,16.29L20.57,14.86Z\";\nexport var mdiDumpTruck = \"M20,8H19L17,8H15V14H2V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V12L20,8M6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5M18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5M17,12V9.5H19.5L21.46,12H17M18,7H14V13H3L1.57,8H1V6H13L14,5H18V7Z\";\nexport var mdiEarHearing = \"M17,20C16.71,20 16.44,19.94 16.24,19.85C15.53,19.5 15.03,18.97 14.53,17.47C14,15.91 13.06,15.18 12.14,14.47C11.35,13.86 10.53,13.23 9.82,11.94C9.29,11 9,9.93 9,9C9,6.2 11.2,4 14,4C16.8,4 19,6.2 19,9H21C21,5.07 17.93,2 14,2C10.07,2 7,5.07 7,9C7,10.26 7.38,11.65 8.07,12.9C9,14.55 10.05,15.38 10.92,16.05C11.73,16.67 12.31,17.12 12.63,18.1C13.23,19.92 14,20.94 15.36,21.65C15.87,21.88 16.43,22 17,22A4,4 0 0,0 21,18H19A2,2 0 0,1 17,20M7.64,2.64L6.22,1.22C4.23,3.21 3,5.96 3,9C3,12.04 4.23,14.79 6.22,16.78L7.63,15.37C6,13.74 5,11.5 5,9C5,6.5 6,4.26 7.64,2.64M11.5,9A2.5,2.5 0 0,0 14,11.5A2.5,2.5 0 0,0 16.5,9A2.5,2.5 0 0,0 14,6.5A2.5,2.5 0 0,0 11.5,9Z\";\nexport var mdiEarHearingLoop = \"M12 6.5C10.62 6.5 9.5 7.62 9.5 9S10.62 11.5 12 11.5 14.5 10.38 14.5 9 13.38 6.5 12 6.5M16 17V19H18V23H20V19H22V17H16M11.69 13.47L3.67 22L2.4 20.73L9.75 12.87C10.33 13.21 11 13.42 11.69 13.47M19 9C19 10.26 18.62 11.65 17.93 12.9C17 14.55 15.95 15.38 15.08 16.05C14.27 16.67 13.69 17.12 13.37 18.1C12.77 19.92 12 20.94 10.64 21.65C10.13 21.88 9.57 22 9 22C7.81 22 6.75 21.47 6 20.65L7.43 19.22C7.79 19.69 8.36 20 9 20C9.29 20 9.56 19.94 9.76 19.85C10.47 19.5 10.97 18.97 11.47 17.47C12 15.91 12.94 15.18 13.86 14.47C14.65 13.86 15.47 13.23 16.18 11.94C16.71 11 17 9.93 17 9C17 6.2 14.8 4 12 4S7 6.2 7 9H5C5 5.07 8.07 2 12 2S19 5.07 19 9M18.37 4.12L20.72 1.73L22 3L19.32 5.72C19.06 5.15 18.74 4.61 18.37 4.12Z\";\nexport var mdiEarHearingOff = \"M1,4.27L2.28,3L20,20.72L18.73,22L12.91,16.18C12.19,16.74 11.67,17.19 11.37,18.1C10.77,19.92 10,20.94 8.64,21.65C8.13,21.88 7.57,22 7,22A4,4 0 0,1 3,18H5A2,2 0 0,0 7,20C7.29,20 7.56,19.94 7.76,19.85C8.47,19.5 8.97,18.97 9.47,17.47C9.91,16.12 10.69,15.39 11.5,14.76L5.04,8.31C5,8.54 5,8.77 5,9H3C3,8.17 3.14,7.39 3.39,6.66L1,4.27M14.18,11.94C14.71,11 15,9.93 15,9C15,6.2 12.8,4 10,4C8.81,4 7.74,4.39 6.89,5.06L5.46,3.63C6.67,2.61 8.25,2 10,2C13.93,2 17,5.07 17,9C17,10.26 16.62,11.65 15.93,12.9L15.47,13.65L14.03,12.2L14.18,11.94M16.36,2.64L17.78,1.22C19.77,3.21 21,5.96 21,9C21,11.83 19.93,14.41 18.18,16.36L16.77,14.94C18.15,13.36 19,11.28 19,9C19,6.5 18,4.26 16.36,2.64M12.5,9C12.5,9.5 12.36,9.93 12.13,10.31L8.69,6.87C9.07,6.64 9.5,6.5 10,6.5A2.5,2.5 0 0,1 12.5,9Z\";\nexport var mdiEarbuds = \"M10 8V20C10 20.55 9.55 21 9 21H8C7.45 21 7 20.55 7 20V13.27C6.32 13.72 5.61 14 5 14C3 14 2 12 2 11V6C2 5 3 3 5 3S10 6 10 8M16.5 3C13.46 3 11 5.46 11 8.5S13.46 14 16.5 14 22 11.54 22 8.5 19.54 3 16.5 3M14.5 14.68V20C14.5 20.55 14.95 21 15.5 21H17.5C18.05 21 18.5 20.55 18.5 20V14.68C17.87 14.89 17.2 15 16.5 15S15.13 14.89 14.5 14.68Z\";\nexport var mdiEarbudsOff = \"M10 9.34V9.34L11.56 10.91L11.56 10.9L14.1 13.45L14.09 13.44L15.58 14.93L15.59 14.93L18.5 17.84V17.85L22.11 21.46L20.84 22.73L18.43 20.33C18.3 20.72 17.94 21 17.5 21H15.5C14.95 21 14.5 20.55 14.5 20V16.39L10 11.89V20C10 20.55 9.55 21 9 21H8C7.45 21 7 20.55 7 20V13.27C6.32 13.72 5.61 14 5 14C3 14 2 12 2 11V6C2 5.58 2.19 5 2.55 4.43L1.11 3L2.39 1.73L6.1 5.44M22 8.5C22 5.46 19.54 3 16.5 3C13.69 3 11.37 5.12 11.04 7.84L17.16 13.96C19.89 13.63 22 11.32 22 8.5Z\";\nexport var mdiEarbudsOffOutline = \"M22.11 21.46L18.5 17.85V17.84L15.58 14.93L15.58 14.93L14.09 13.44L14.1 13.44L11.56 10.9L11.56 10.9L10 9.34V9.34L7 6.34L7 6.34L6.66 6L6.67 6L6.1 5.44L2.39 1.73L1.11 3L2.55 4.43C2.19 5 2 5.58 2 6V11C2 12 3 14 5 14C5.61 14 6.32 13.72 7 13.27V20C7 20.55 7.45 21 8 21H9C9.55 21 10 20.55 10 20V11.89L14.5 16.39V20C14.5 20.55 14.95 21 15.5 21H17.5C17.94 21 18.3 20.72 18.43 20.32L20.84 22.73L22.11 21.46M8 10.23L5.91 11.6C5.4 11.93 5.08 12 5 12C4.3 12 4 11.08 4 11L4 6.03C4 6 4 5.97 4.03 5.92L8 9.89V10.23M13.53 10.33L11.04 7.84C11.37 5.12 13.69 3 16.5 3C19.54 3 22 5.46 22 8.5C22 11.32 19.89 13.63 17.16 13.96L14.67 11.47C15.2 11.8 15.83 12 16.5 12C18.43 12 20 10.43 20 8.5S18.43 5 16.5 5 13 6.57 13 8.5C13 9.17 13.2 9.8 13.53 10.33Z\";\nexport var mdiEarbudsOutline = \"M5 3C3 3 2 5 2 6V11C2 12 3 14 5 14C5.61 14 6.32 13.72 7 13.27V20C7 20.55 7.45 21 8 21H9C9.55 21 10 20.55 10 20V8C10 6 7 3 5 3M8 10.23L5.91 11.6C5.4 11.93 5.08 12 5 12C4.3 12 4 11.08 4 11L4 6.03C4 5.92 4.3 5 5 5C5.9 5 8 7.1 8 8V10.23M16.5 15C17.2 15 17.87 14.89 18.5 14.68V20C18.5 20.55 18.05 21 17.5 21H15.5C14.95 21 14.5 20.55 14.5 20V14.68C15.13 14.89 15.8 15 16.5 15M16.5 3C13.46 3 11 5.46 11 8.5S13.46 14 16.5 14 22 11.54 22 8.5 19.54 3 16.5 3M16.5 12C14.57 12 13 10.43 13 8.5S14.57 5 16.5 5 20 6.57 20 8.5 18.43 12 16.5 12Z\";\nexport var mdiEarth = \"M17.9,17.39C17.64,16.59 16.89,16 16,16H15V13A1,1 0 0,0 14,12H8V10H10A1,1 0 0,0 11,9V7H13A2,2 0 0,0 15,5V4.59C17.93,5.77 20,8.64 20,12C20,14.08 19.2,15.97 17.9,17.39M11,19.93C7.05,19.44 4,16.08 4,12C4,11.38 4.08,10.78 4.21,10.21L9,15V16A2,2 0 0,0 11,18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiEarthArrowDown = \"M15 19H17V15H19V19H21L18 22L15 19M12 18C12 15.8 13.2 13.9 15 12.8C14.9 12.3 14.5 12 14 12H8V10H10C10.6 10 11 9.6 11 9V7H13C14.1 7 15 6.1 15 5V4.6C17.9 5.8 20 8.6 20 12V12.3C20.7 12.5 21.3 12.9 21.9 13.4C22 13 22 12.5 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22C12.5 22 13 22 13.4 21.9C12.5 20.8 12 19.5 12 18M11 19.9C7 19.4 4 16.1 4 12C4 11.4 4.1 10.8 4.2 10.2L9 15V16C9 17.1 9.9 18 11 18V19.9Z\";\nexport var mdiEarthArrowLeft = \"M17 15V17H21V19H17V21L14 18L17 15M12 18C12 15.8 13.2 13.9 15 12.8C14.9 12.3 14.5 12 14 12H8V10H10C10.6 10 11 9.6 11 9V7H13C14.1 7 15 6.1 15 5V4.6C17.9 5.8 20 8.6 20 12V12.3C20.7 12.5 21.3 12.9 21.9 13.4C22 13 22 12.5 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22C12.5 22 13 22 13.4 21.9C12.5 20.8 12 19.5 12 18M11 19.9C7 19.4 4 16.1 4 12C4 11.4 4.1 10.8 4.2 10.2L9 15V16C9 17.1 9.9 18 11 18V19.9Z\";\nexport var mdiEarthArrowRight = \"M19 21V19H15V17H19V15L22 18L19 21M12 18C12 15.8 13.2 13.9 15 12.8C14.9 12.3 14.5 12 14 12H8V10H10C10.6 10 11 9.6 11 9V7H13C14.1 7 15 6.1 15 5V4.6C17.9 5.8 20 8.6 20 12V12.3C20.7 12.5 21.3 12.9 21.9 13.4C22 13 22 12.5 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22C12.5 22 13 22 13.4 21.9C12.5 20.8 12 19.5 12 18M11 19.9C7 19.4 4 16.1 4 12C4 11.4 4.1 10.8 4.2 10.2L9 15V16C9 17.1 9.9 18 11 18V19.9Z\";\nexport var mdiEarthArrowUp = \"M21 17H19V21H17V17H15L18 14L21 17M12 18C12 15.8 13.2 13.9 15 12.8C14.9 12.3 14.5 12 14 12H8V10H10C10.6 10 11 9.6 11 9V7H13C14.1 7 15 6.1 15 5V4.6C17.9 5.8 20 8.6 20 12V12.3C20.7 12.5 21.3 12.9 21.9 13.4C22 13 22 12.5 22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22C12.5 22 13 22 13.4 21.9C12.5 20.8 12 19.5 12 18M11 19.9C7 19.4 4 16.1 4 12C4 11.4 4.1 10.8 4.2 10.2L9 15V16C9 17.1 9.9 18 11 18V19.9Z\";\nexport var mdiEarthBox = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H5M15.78,5H19V17.18C18.74,16.38 17.69,15.79 16.8,15.79H15.8V12.79A1,1 0 0,0 14.8,11.79H8.8V9.79H10.8A1,1 0 0,0 11.8,8.79V6.79H13.8C14.83,6.79 15.67,6 15.78,5M5,10.29L9.8,14.79V15.79C9.8,16.9 10.7,17.79 11.8,17.79V19H5V10.29Z\";\nexport var mdiEarthBoxMinus = \"M22 17V19H14V17H22M5 3H19C20.1 3 21 3.89 21 5V12.8C20.39 12.45 19.72 12.2 19 12.08V5H15.78C15.67 6 14.83 6.79 13.8 6.79H11.8V8.79C11.8 9.35 11.35 9.79 10.8 9.79H8.8V11.79H14.8C15.23 11.79 15.6 12.06 15.74 12.44C13.6 13.31 12.07 15.39 12 17.83C10.7 17.79 9.8 16.9 9.8 15.79V14.79L5 10.29V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3Z\";\nexport var mdiEarthBoxOff = \"M23,4.27L21,6.27V19A2,2 0 0,1 19,21H6.27L4.27,23L3,21.72L21.72,3L23,4.27M5,3H19.18L17.18,5H15.78C15.67,6 14.83,6.79 13.8,6.79H11.8V8.79C11.8,9.35 11.35,9.79 10.8,9.79H8.8V11.79H10.38L8.55,13.62L5,10.29V17.18L3,19.18V5C3,3.89 3.89,3 5,3M11.8,19V17.79C11.17,17.79 10.6,17.5 10.23,17.04L8.27,19H11.8M15.8,12.79V15.79H16.8C17.69,15.79 18.74,16.38 19,17.18V8.27L15.33,11.94C15.61,12.12 15.8,12.43 15.8,12.79Z\";\nexport var mdiEarthBoxPlus = \"M17 14H19V17H22V19H19V22H17V19H14V17H17V14M5 3H19C20.1 3 21 3.89 21 5V12.8C20.39 12.45 19.72 12.2 19 12.08V5H15.78C15.67 6 14.83 6.79 13.8 6.79H11.8V8.79C11.8 9.35 11.35 9.79 10.8 9.79H8.8V11.79H14.8C15.23 11.79 15.6 12.06 15.74 12.44C13.6 13.31 12.07 15.39 12 17.83C10.7 17.79 9.8 16.9 9.8 15.79V14.79L5 10.29V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3Z\";\nexport var mdiEarthBoxRemove = \"M14.46 15.88L15.88 14.46L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.46 20.12L16.59 18L14.47 15.88M5 3H19C20.1 3 21 3.89 21 5V12.8C20.39 12.45 19.72 12.2 19 12.08V5H15.78C15.67 6 14.83 6.79 13.8 6.79H11.8V8.79C11.8 9.35 11.35 9.79 10.8 9.79H8.8V11.79H14.8C15.23 11.79 15.6 12.06 15.74 12.44C13.6 13.31 12.07 15.39 12 17.83C10.7 17.79 9.8 16.9 9.8 15.79V14.79L5 10.29V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C3.9 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3Z\";\nexport var mdiEarthMinus = \"M14 17H22V19H14V17M20 12C20 8.64 17.93 5.77 15 4.59V5C15 6.1 14.1 7 13 7H11V9C11 9.55 10.55 10 10 10H8V12H14C14.5 12 14.9 12.35 15 12.81C13.2 13.85 12 15.79 12 18C12 19.5 12.54 20.85 13.44 21.9L12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12L21.9 13.44C21.34 12.96 20.7 12.59 20 12.34L20 12M11 19.93V18C9.9 18 9 17.1 9 16V15L4.21 10.21C4.08 10.78 4 11.38 4 12C4 16.08 7.06 19.44 11 19.93Z\";\nexport var mdiEarthOff = \"M22,5.27L20.5,6.75C21.46,8.28 22,10.07 22,12A10,10 0 0,1 12,22C10.08,22 8.28,21.46 6.75,20.5L5.27,22L4,20.72L20.72,4L22,5.27M17.9,17.39C19.2,15.97 20,14.08 20,12C20,10.63 19.66,9.34 19.05,8.22L14.83,12.44C14.94,12.6 15,12.79 15,13V16H16C16.89,16 17.64,16.59 17.9,17.39M11,19.93V18C10.5,18 10.07,17.83 9.73,17.54L8.22,19.05C9.07,19.5 10,19.8 11,19.93M15,4.59V5A2,2 0 0,1 13,7H11V9A1,1 0 0,1 10,10H8V12H10.18L8.09,14.09L4.21,10.21C4.08,10.78 4,11.38 4,12C4,13.74 4.56,15.36 5.5,16.67L4.08,18.1C2.77,16.41 2,14.3 2,12A10,10 0 0,1 12,2C14.3,2 16.41,2.77 18.1,4.08L16.67,5.5C16.16,5.14 15.6,4.83 15,4.59Z\";\nexport var mdiEarthPlus = \"M17 14H19V17H22V19H19V22H17V19H14V17H17V14M20 12C20 8.64 17.93 5.77 15 4.59V5C15 6.1 14.1 7 13 7H11V9C11 9.55 10.55 10 10 10H8V12H14C14.5 12 14.9 12.35 15 12.81C13.2 13.85 12 15.79 12 18C12 19.5 12.54 20.85 13.44 21.9L12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12L21.9 13.44C21.34 12.96 20.7 12.59 20 12.34L20 12M11 19.93V18C9.9 18 9 17.1 9 16V15L4.21 10.21C4.08 10.78 4 11.38 4 12C4 16.08 7.06 19.44 11 19.93Z\";\nexport var mdiEarthRemove = \"M14.46 15.88L15.88 14.46L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.46 20.12L16.59 18L14.47 15.88M20 12C20 8.64 17.93 5.77 15 4.59V5C15 6.1 14.1 7 13 7H11V9C11 9.55 10.55 10 10 10H8V12H14C14.5 12 14.9 12.35 15 12.81C13.2 13.85 12 15.79 12 18C12 19.5 12.54 20.85 13.44 21.9L12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12L21.9 13.44C21.34 12.96 20.7 12.59 20 12.34L20 12M11 19.93V18C9.9 18 9 17.1 9 16V15L4.21 10.21C4.08 10.78 4 11.38 4 12C4 16.08 7.06 19.44 11 19.93Z\";\nexport var mdiEgg = \"M19.5,14.5A7.5,7.5 0 0,1 12,22A7.5,7.5 0 0,1 4.5,14.5C4.5,10.36 7.86,2 12,2C16.14,2 19.5,10.36 19.5,14.5Z\";\nexport var mdiEggEaster = \"M6.89,6.36C8.23,3.91 10,2 12,2C14,2 15.77,3.91 17.11,6.36C16.26,6.57 15.5,7.07 15,7.77C13.79,6.11 11.46,5.75 9.8,6.97C9.5,7.19 9.22,7.46 9,7.77C8.5,7.07 7.74,6.57 6.89,6.36M15,18.06L12,15.06L9,18.06L6,15.06L4.73,16.33C5.75,20.35 9.83,22.77 13.84,21.76C16.5,21.08 18.59,19 19.27,16.33L18,15.06L15,18.06M9,15.94L12,12.94L15,15.94L18,12.94L19.5,14.44C19.37,12.13 18.8,9.86 17.81,7.76C16.65,7.86 15.75,8.83 15.75,10H14.25A2.25,2.25 0 0,0 12,7.75A2.25,2.25 0 0,0 9.75,10H8.25C8.25,8.83 7.35,7.86 6.19,7.76C5.2,9.86 4.63,12.13 4.5,14.44L6,12.94L9,15.94Z\";\nexport var mdiEggFried = \"M12 4.5C14.17 4.5 14.58 5.07 15.5 6.32C15.88 6.85 16.32 7.44 16.94 8.06C17.43 8.55 17.86 8.93 18.21 9.24C19.3 10.19 19.5 10.36 19.5 12C19.5 14.93 19.5 15.38 17.94 16.94C16 18.86 15.38 19.5 13 19.5C11.88 19.5 11.5 19.18 10.89 18.69C10.27 18.19 9.43 17.5 8 17.5C4.96 17.5 4.5 14.05 4.5 12C4.5 10.65 5 8.91 6.47 8.42C8.25 7.83 9.2 6.71 9.96 5.81C10.75 4.88 11.11 4.5 12 4.5M12 3C9 3 9 6 6 7C3.88 7.71 3 10 3 12C3 15 4 19 8 19C10 19 10 21 13 21S17 20 19 18 21 15 21 12 20 9 18 7 16 3 12 3M12 8C9.79 8 8 9.79 8 12S9.79 16 12 16 16 14.21 16 12 14.21 8 12 8M12 10C10.9 10 10 10.9 10 12H9C9 10.35 10.35 9 12 9V10Z\";\nexport var mdiEggOff = \"M22.1 21.5L2.4 1.7L1.1 3L6.1 8C5.1 10.3 4.5 12.8 4.5 14.5C4.5 18.6 7.9 22 12 22C14.2 22 16.2 21 17.6 19.5L20.8 22.7L22.1 21.5M19.5 14.5C19.5 10.4 16.1 2 12 2C10.5 2 9.1 3.1 7.9 4.7L19.3 16.1C19.4 15.6 19.5 15.1 19.5 14.5Z\";\nexport var mdiEggOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L6.1 8C5.1 10.28 4.5 12.76 4.5 14.5C4.5 18.64 7.86 22 12 22C14.23 22 16.22 21 17.59 19.5L20.84 22.73L22.11 21.46M12 20C8.97 20 6.5 17.53 6.5 14.5C6.5 13.08 6.95 11.25 7.63 9.5L16.17 18.06C15.16 19.24 13.67 20 12 20M9.36 6.16L7.92 4.72C9.1 3.11 10.5 2 12 2C16.14 2 19.5 10.36 19.5 14.5C19.5 15.06 19.43 15.6 19.32 16.12L17.5 14.29C17.38 10.46 14.28 4 12 4C11.17 4 10.22 4.87 9.36 6.16Z\";\nexport var mdiEggOutline = \"M12 4C14.32 4 17.5 10.7 17.5 14.5C17.5 17.53 15.03 20 12 20S6.5 17.53 6.5 14.5C6.5 10.7 9.68 4 12 4M12 2C7.86 2 4.5 10.36 4.5 14.5C4.5 18.64 7.86 22 12 22S19.5 18.64 19.5 14.5C19.5 10.36 16.14 2 12 2Z\";\nexport var mdiEiffelTower = \"M8.21 17C8.65 16.15 9.06 15.16 9.44 14H9V12H10C10.61 9.4 11 6.13 11 2H13C13 6.13 13.4 9.4 14 12H15V14H14.56C14.94 15.16 15.35 16.15 15.79 17H17L17 19L19 22H16.58C15.81 20.24 14.05 19 12 19C9.95 19 8.19 20.24 7.42 22H5L7 19L6.97 17H8.21M12.59 14H11.41C11.07 15.13 10.69 16.13 10.28 17H13.72C13.32 16.13 12.93 15.13 12.59 14Z\";\nexport var mdiEightTrack = \"M7,2L5,5V16L6,20C6.27,21.07 6.9,22 8,22H16A2,2 0 0,0 18,20L19,16V5L17,2H15V3H13V2H7M7,6H17V16H7V6Z\";\nexport var mdiEject = \"M12,5L5.33,15H18.67M5,17H19V19H5V17Z\";\nexport var mdiEjectCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M16.5 16H7.5V14H16.5V16M7.5 12L12 6L16.5 12H7.5Z\";\nexport var mdiEjectCircleOutline = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M16.5 12L12 6L7.5 12H16.5M16.5 16H7.5V14H16.5V16Z\";\nexport var mdiEjectOutline = \"M5,17H19V19H5V17M12,5L5.33,15H18.67L12,5M12,8.6L14.93,13H9.07L12,8.6Z\";\nexport var mdiElectricSwitch = \"M1,11H3.17C3.58,9.83 4.69,9 6,9C6.65,9 7.25,9.21 7.74,9.56L14.44,4.87L15.58,6.5L8.89,11.2C8.96,11.45 9,11.72 9,12A3,3 0 0,1 6,15C4.69,15 3.58,14.17 3.17,13H1V11M23,11V13H20.83C20.42,14.17 19.31,15 18,15A3,3 0 0,1 15,12A3,3 0 0,1 18,9C19.31,9 20.42,9.83 20.83,11H23M6,11A1,1 0 0,0 5,12A1,1 0 0,0 6,13A1,1 0 0,0 7,12A1,1 0 0,0 6,11M18,11A1,1 0 0,0 17,12A1,1 0 0,0 18,13A1,1 0 0,0 19,12A1,1 0 0,0 18,11Z\";\nexport var mdiElectricSwitchClosed = \"M20.83 11A3 3 0 0 0 15.18 11H8.82A3 3 0 0 0 3.17 11H1V13H3.17A3 3 0 0 0 8.82 13H15.18A3 3 0 0 0 20.83 13H23V11M6 13A1 1 0 1 1 7 12A1 1 0 0 1 6 13M18 13A1 1 0 1 1 19 12A1 1 0 0 1 18 13Z\";\nexport var mdiElectronFramework = \"M12 22C10.33 22 8.84 20.5 7.9 17.93C7.83 17.73 7.93 17.5 8.14 17.44C8.34 17.36 8.56 17.47 8.63 17.67C9.44 19.9 10.7 21.23 12 21.23C12.94 21.23 13.87 20.55 14.62 19.31C14.73 19.13 14.96 19.07 15.15 19.18C15.33 19.29 15.39 19.53 15.28 19.71C14.38 21.19 13.22 22 12 22M15.91 17.72C15.87 17.72 15.83 17.71 15.8 17.7C15.59 17.63 15.5 17.42 15.54 17.21C16 15.81 16.22 14.18 16.22 12.5C16.22 8.65 14.97 5.24 13.19 4.14C12.94 4.5 12.5 4.78 12 4.78C11.24 4.78 10.61 4.16 10.61 3.39C10.61 2.62 11.24 2 12 2C12.77 2 13.4 2.61 13.41 3.37C15.53 4.5 17 8.21 17 12.5C17 14.25 16.75 15.96 16.28 17.45C16.23 17.61 16.08 17.72 15.91 17.72M12 2.77C11.66 2.77 11.38 3.05 11.38 3.39C11.38 3.73 11.67 4 12 4C12.35 4 12.64 3.73 12.64 3.39C12.64 3.05 12.35 2.77 12 2.77M4.08 18.54C3.31 18.54 2.68 17.91 2.68 17.15C2.68 16.66 2.94 16.22 3.33 15.97C3.19 13.56 5.68 10.41 9.5 8.22C11.09 7.32 12.75 6.67 14.32 6.34C14.5 6.29 14.73 6.42 14.77 6.63C14.82 6.84 14.69 7.05 14.5 7.09C13 7.41 11.41 8.03 9.9 8.89C6.46 10.86 4.1 13.68 4.1 15.76C4.86 15.77 5.5 16.39 5.5 17.15C5.5 17.92 4.85 18.54 4.08 18.54M4.08 16.53C3.74 16.53 3.46 16.81 3.46 17.15C3.46 17.5 3.74 17.77 4.08 17.77S4.71 17.5 4.71 17.15C4.71 16.81 4.42 16.53 4.08 16.53M18.5 13.44C18.43 13.44 18.34 13.41 18.27 13.35C18.11 13.21 18.09 12.97 18.23 12.8C19.77 11 20.3 9.26 19.64 8.14C19.17 7.33 18.1 6.88 16.63 6.86C16.41 6.86 16.24 6.68 16.25 6.47C16.25 6.26 16.43 6.1 16.64 6.09C18.39 6.11 19.7 6.7 20.31 7.75C21.15 9.19 20.6 11.21 18.82 13.3C18.74 13.39 18.63 13.44 18.5 13.44M16.5 18.9C14.5 18.9 11.94 18.16 9.5 16.77C7.95 15.88 6.57 14.79 5.5 13.63C5.35 13.47 5.36 13.23 5.5 13.08C5.68 12.94 5.92 12.95 6.07 13.11C7.08 14.21 8.4 15.25 9.89 16.1C13.2 18 16.77 18.63 18.65 17.72C18.57 17.55 18.5 17.35 18.5 17.15C18.5 16.38 19.15 15.76 19.92 15.76C20.69 15.76 21.32 16.38 21.32 17.15C21.32 17.92 20.69 18.54 19.92 18.54C19.64 18.54 19.39 18.46 19.17 18.32C18.47 18.71 17.56 18.9 16.5 18.9M19.5 17.63C19.63 17.71 19.77 17.77 19.92 17.77C20.27 17.77 20.55 17.5 20.55 17.15C20.55 16.81 20.27 16.53 19.92 16.53S19.3 16.81 19.3 17.15C19.3 17.29 19.35 17.42 19.43 17.53C19.47 17.55 19.5 17.59 19.5 17.63M4.46 12C4.33 12 4.2 11.92 4.13 11.8C3.23 10.25 3.08 8.81 3.7 7.74C4.54 6.3 6.58 5.76 9.31 6.25C9.5 6.29 9.66 6.5 9.62 6.7C9.59 6.91 9.39 7.05 9.18 7C6.82 6.59 5 7 4.37 8.13C3.89 8.95 4.04 10.11 4.8 11.41C4.9 11.6 4.84 11.83 4.65 11.94C4.59 11.97 4.53 12 4.46 12M12.21 13.4C11.71 13.5 11.21 13.19 11.11 12.69C11 12.2 11.32 11.71 11.81 11.6C12.31 11.5 12.81 11.81 12.91 12.31C13 12.8 12.7 13.29 12.21 13.4Z\";\nexport var mdiElephant = \"M19.5,15.5A0.5,0.5 0 0,1 19,16A0.5,0.5 0 0,1 18.5,15.5V8.5C18.5,6.57 16.43,5 14.5,5H6A4,4 0 0,0 2,9V19H6V15H11V19H15V14.5A0.5,0.5 0 0,1 15.5,14A0.5,0.5 0 0,1 16,14.5V16A3,3 0 0,0 19,19A3,3 0 0,0 22,16V14H19.5V15.5Z\";\nexport var mdiElevationDecline = \"M21,21H3V11.25L9.45,15L13.22,12.8L21,17.29V21M3,8.94V6.75L9.45,10.5L13.22,8.3L21,12.79V15L13.22,10.5L9.45,12.67L3,8.94Z\";\nexport var mdiElevationRise = \"M3,21V17.29L10.78,12.8L14.55,15L21,11.25V21H3M21,8.94L14.55,12.67L10.78,10.5L3,15V12.79L10.78,8.3L14.55,10.5L21,6.75V8.94Z\";\nexport var mdiElevator = \"M7,2L11,6H8V10H6V6H3L7,2M17,10L13,6H16V2H18V6H21L17,10M7,12H17A2,2 0 0,1 19,14V20A2,2 0 0,1 17,22H7A2,2 0 0,1 5,20V14A2,2 0 0,1 7,12M7,14V20H17V14H7Z\";\nexport var mdiElevatorDown = \"M7 10L11 6H8V2H6V6H3L7 10M17 10L13 6H16V2H18V6H21L17 10M7 12H17C18.11 12 19 12.9 19 14V20C19 21.11 18.11 22 17 22H7C5.9 22 5 21.11 5 20V14C5 12.9 5.9 12 7 12M7 14V20H17V14H7Z\";\nexport var mdiElevatorPassenger = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M8.5 6C9.19 6 9.75 6.56 9.75 7.25S9.19 8.5 8.5 8.5 7.25 7.94 7.25 7.25 7.81 6 8.5 6M11 14H10V18H7V14H6V11.5C6 10.4 6.9 9.5 8 9.5H9C10.1 9.5 11 10.4 11 11.5V14M15.5 17L13 13H18L15.5 17M13 11L15.5 7L18 11H13Z\";\nexport var mdiElevatorPassengerOff = \"M22.11 21.46L20.7 20.05L20.7 20.04L2.39 1.73L1.11 3L3 4.9C3 4.94 3 4.97 3 5V19C3 20.1 3.9 21 5 21H19C19.03 21 19.06 21 19.1 21L20.84 22.73L22.11 21.46M11 14H10V18H7V14H6V11.5C6 10.5 6.71 9.71 7.65 9.54L11 12.89V14M13.46 10.26L6.2 3H19C20.1 3 21 3.9 21 5V17.8L17.31 14.11L18 13H16.2L14.2 11H18L15.5 7L13.46 10.26Z\";\nexport var mdiElevatorPassengerOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L3 4.9C3 4.94 3 4.97 3 5V19C3 20.1 3.9 21 5 21H19C19.03 21 19.06 21 19.1 21L20.84 22.73L22.11 21.46M5 19V6.89L7.65 9.54C6.71 9.71 6 10.5 6 11.5V14H7V18H10V14H11V12.89L17.11 19H5M8.2 5L6.2 3H19C20.1 3 21 3.9 21 5V17.8L19 15.8V5H8.2M18 11H14.2L13.46 10.26L15.5 7L18 11M17.31 14.11L16.2 13H18L17.31 14.11Z\";\nexport var mdiElevatorPassengerOutline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M10 18V14H11V11.5C11 10.4 10.1 9.5 9 9.5H8C6.9 9.5 6 10.4 6 11.5V14H7V18H10M8.5 8.5C9.19 8.5 9.75 7.94 9.75 7.25S9.19 6 8.5 6 7.25 6.56 7.25 7.25 7.81 8.5 8.5 8.5M18 11L15.5 7L13 11H18M13 13L15.5 17L18 13H13Z\";\nexport var mdiElevatorUp = \"M7 2L11 6H8V10H6V6H3L7 2M17 2L13 6H16V10H18V6H21L17 2M7 12H17C18.11 12 19 12.9 19 14V20C19 21.11 18.11 22 17 22H7C5.9 22 5 21.11 5 20V14C5 12.9 5.9 12 7 12M7 14V20H17V14H7Z\";\nexport var mdiEllipse = \"M12,4C6.5,4 2,7.58 2,12C2,16.42 6.5,20 12,20C17.5,20 22,16.42 22,12C22,7.58 17.5,4 12,4Z\";\nexport var mdiEllipseOutline = \"M12,6C16.41,6 20,8.69 20,12C20,15.31 16.41,18 12,18C7.59,18 4,15.31 4,12C4,8.69 7.59,6 12,6M12,4C6.5,4 2,7.58 2,12C2,16.42 6.5,20 12,20C17.5,20 22,16.42 22,12C22,7.58 17.5,4 12,4Z\";\nexport var mdiEmail = \"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiEmailAlert = \"M18 8L10 13L2 8V6L10 11L18 6M18 4H2C.9 4 0 4.9 0 6V18C0 19.1 .9 20 2 20H18C19.1 20 20 19.1 20 18V6C20 4.9 19.1 4 18 4M24 7H22V13H24V7M24 15H22V17H24V15Z\";\nexport var mdiEmailAlertOutline = \"M24 7H22V13H24V7M24 15H22V17H24V15M20 6C20 4.9 19.1 4 18 4H2C.9 4 0 4.9 0 6V18C0 19.1 .9 20 2 20H18C19.1 20 20 19.1 20 18V6M18 6L10 11L2 6H18M18 18H2V8L10 13L18 8V18Z\";\nexport var mdiEmailArrowLeft = \"M13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M4 8V6L12 11L20 6V8L12 13L4 8M18 16V18H22V20H18V22L15 19L18 16Z\";\nexport var mdiEmailArrowLeftOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M20 6L12 11L4 6H20M18 16V18H22V20H18V22L15 19L18 16Z\";\nexport var mdiEmailArrowRight = \"M13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M4 8V6L12 11L20 6V8L12 13L4 8M20 22V20H16V18H20V16L23 19L20 22Z\";\nexport var mdiEmailArrowRightOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M20 6L12 11L4 6H20M20 22V20H16V18H20V16L23 19L20 22Z\";\nexport var mdiEmailBox = \"M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M6.4,6.5H17.6C18.37,6.5 19,7.12 19,7.9V16.1A1.4,1.4 0 0,1 17.6,17.5H6.4C5.63,17.5 5,16.87 5,16.1V7.9C5,7.12 5.62,6.5 6.4,6.5M6,8V10L12,14L18,10V8L12,12L6,8Z\";\nexport var mdiEmailCheck = \"M13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M4 8V6L12 11L20 6V8L12 13L4 8M17.75 22.16L15 19.16L16.16 18L17.75 19.59L21.34 16L22.5 17.41L17.75 22.16\";\nexport var mdiEmailCheckOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M20 6L12 11L4 6H20M17.75 22.16L15 19.16L16.16 18L17.75 19.59L21.34 16L22.5 17.41L17.75 22.16\";\nexport var mdiEmailEdit = \"M21,12.13C20.85,12.14 20.71,12.19 20.61,12.3L19.61,13.3L21.66,15.3L22.66,14.3C22.88,14.09 22.88,13.74 22.66,13.53L21.42,12.3C21.32,12.19 21.18,12.14 21.04,12.13M19.04,13.88L13,19.94V22H15.06L21.12,15.93M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H11V19.11L19.24,10.89C19.71,10.4 20.36,10.13 21.04,10.13C21.38,10.13 21.72,10.19 22.04,10.32V6C22.04,4.88 21.12,4 20,4M20,8L12,13L4,8V6L12,11L20,6\";\nexport var mdiEmailEditOutline = \"M19.07 13.88L13 19.94V22H15.06L21.12 15.93M22.7 13.58L21.42 12.3C21.32 12.19 21.18 12.13 21.04 12.13C20.89 12.14 20.75 12.19 20.65 12.3L19.65 13.3L21.7 15.3L22.7 14.3C22.89 14.1 22.89 13.78 22.7 13.58M11 18H4V8L12 13L20 8V10H22V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H11V18M20 6L12 11L4 6H20Z\";\nexport var mdiEmailFast = \"M22 5.5H9C7.9 5.5 7 6.4 7 7.5V16.5C7 17.61 7.9 18.5 9 18.5H22C23.11 18.5 24 17.61 24 16.5V7.5C24 6.4 23.11 5.5 22 5.5M22 9.17L15.5 12.5L9 9.17V7.5L15.5 10.81L22 7.5V9.17M5 16.5C5 16.67 5.03 16.83 5.05 17H1C.448 17 0 16.55 0 16S.448 15 1 15H5V16.5M3 7H5.05C5.03 7.17 5 7.33 5 7.5V9H3C2.45 9 2 8.55 2 8S2.45 7 3 7M1 12C1 11.45 1.45 11 2 11H5V13H2C1.45 13 1 12.55 1 12Z\";\nexport var mdiEmailFastOutline = \"M22 5.5H9C7.9 5.5 7 6.4 7 7.5V16.5C7 17.61 7.9 18.5 9 18.5H22C23.11 18.5 24 17.61 24 16.5V7.5C24 6.4 23.11 5.5 22 5.5M22 16.5H9V9.17L15.5 12.5L22 9.17V16.5M15.5 10.81L9 7.5H22L15.5 10.81M5 16.5C5 16.67 5.03 16.83 5.05 17H1C.448 17 0 16.55 0 16S.448 15 1 15H5V16.5M3 7H5.05C5.03 7.17 5 7.33 5 7.5V9H3C2.45 9 2 8.55 2 8S2.45 7 3 7M1 12C1 11.45 1.45 11 2 11H5V13H2C1.45 13 1 12.55 1 12Z\";\nexport var mdiEmailHeartOutline = \"M10 9C8.9 9 8 9.92 8 11.05C8 11.62 8.22 12.12 8.59 12.5L12 16L15.42 12.5C15.78 12.13 16 11.61 16 11.05C16 9.92 15.1 9 14 9C13.46 9 12.95 9.23 12.59 9.6L12 10.2L11.42 9.61C11.05 9.23 10.54 9 10 9M20 4C21.1 4 22 4.9 22 6V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H20M16.7 8.06L20 6H4L7.3 8.06C6.89 8.45 6.55 8.92 6.33 9.45L4 8V18H20V8L17.67 9.45C17.45 8.92 17.11 8.45 16.7 8.06Z\";\nexport var mdiEmailLock = \"M12 18.2C12 17.24 12.5 16.34 13.2 15.74V15.5C13.2 13.06 15.4 11 18 11C19.65 11 21.13 11.83 22 13.06V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H12V18.2M4 6L12 11L20 6V8L12 13L4 8V6M20.8 17V15.5C20.8 14.1 19.4 13 18 13S15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2S19.5 14.7 19.5 15.5V17Z\";\nexport var mdiEmailLockOutline = \"M12 18.2C12 18.13 12 18.07 12 18H4V8L12 13L20 8V11.44C20.81 11.8 21.5 12.36 22 13.06V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H12V18.2M20 6L12 11L4 6H20M20.8 17V15.5C20.8 14.1 19.4 13 18 13S15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2S19.5 14.7 19.5 15.5V17Z\";\nexport var mdiEmailMarkAsUnread = \"M18.84,7H16.22L10.5,4L4,7.41V17A2,2 0 0,1 2,15V7.17C2,6.5 2.28,6.06 2.81,5.81L10.5,2L18.05,5.81C18.5,6.09 18.78,6.5 18.84,7M7,8H20A2,2 0 0,1 22,10V19A2,2 0 0,1 20,21H7A2,2 0 0,1 5,19V10A2,2 0 0,1 7,8M20,11.67V10L13.5,13.31L7,10V11.67L13.5,15L20,11.67Z\";\nexport var mdiEmailMinus = \"M13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M4 8V6L12 11L20 6V8L12 13L4 8M23 18V20H15V18H23Z\";\nexport var mdiEmailMinusOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M20 6L12 11L4 6H20M23 18V20H15V18H23Z\";\nexport var mdiEmailMultiple = \"M22,6V4L14,9L6,4V6L14,11L22,6M22,2A2,2 0 0,1 24,4V16A2,2 0 0,1 22,18H6C4.89,18 4,17.1 4,16V4C4,2.89 4.89,2 6,2H22M2,6V20H20V22H2A2,2 0 0,1 0,20V6H2Z\";\nexport var mdiEmailMultipleOutline = \"M2 6V20H20V22H2C.895 22 0 21.11 0 20V6H2M24 4C24 2.9 23.1 2 22 2H6C4.9 2 4 2.9 4 4V16C4 17.1 4.9 18 6 18H22C23.1 18 24 17.1 24 16V4M22 4L14 9L6 4H22M22 16H6V6L14 11L22 6V16Z\";\nexport var mdiEmailNewsletter = \"M12 .64L8.23 3H5V5L2.97 6.29C2.39 6.64 2 7.27 2 8V18C2 19.11 2.9 20 4 20H20C21.11 20 22 19.11 22 18V8C22 7.27 21.61 6.64 21.03 6.29L19 5V3H15.77M7 5H17V9.88L12 13L7 9.88M8 6V7.5H16V6M5 7.38V8.63L4 8M19 7.38L20 8L19 8.63M8 8.5V10H16V8.5Z\";\nexport var mdiEmailOff = \"M22.1 21.5L2.4 1.7L1.1 3L2.6 4.5C2.2 4.9 2 5.4 2 6V18C2 19.1 2.9 20 4 20H18.1L20.8 22.7L22.1 21.5M4 8V6L4.3 6.2L9.6 11.5L4 8M13.4 10.2L7.2 4H20C21.1 4 22 4.9 22 6V18C22 18.2 22 18.5 21.9 18.7L14.6 11.4L20 8V6L13.4 10.2Z\";\nexport var mdiEmailOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L2.6 4.5C2.3 4.9 2 5.4 2 6V18C2 19.1 2.9 20 4 20H18.1L20.8 22.7L22.1 21.5M4 18V8L9.6 11.5L16.1 18H4M9.2 6L7.2 4H20C21.1 4 22 4.9 22 6V18C22 18.2 22 18.5 21.9 18.7L20 16.8V8L14.6 11.4L13.4 10.2L20 6H9.2Z\";\nexport var mdiEmailOpen = \"M4,8L12,13L20,8V8L12,3L4,8V8M22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V8C2,7.27 2.39,6.64 2.97,6.29L12,0.64L21.03,6.29C21.61,6.64 22,7.27 22,8Z\";\nexport var mdiEmailOpenHeartOutline = \"M10 9C8.9 9 8 9.92 8 11.05C8 11.62 8.22 12.12 8.59 12.5L12 16L15.42 12.5C15.78 12.13 16 11.61 16 11.05C16 9.92 15.1 9 14 9C13.46 9 12.95 9.23 12.59 9.6L12 10.2L11.42 9.61C11.05 9.23 10.54 9 10 9M12 .64L21.03 6.29C21.61 6.64 22 7.27 22 8V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18V8C2 7.27 2.39 6.64 2.97 6.29L12 .64M4 10V18H20V10L18 11.25C18 11.19 18 11.12 18 11.05C18 10.5 17.88 9.95 17.67 9.45L20 8L12 3L4 8L6.33 9.45C6.12 9.95 6 10.5 6 11.05C6 11.12 6 11.19 6 11.25L4 10Z\";\nexport var mdiEmailOpenMultiple = \"M6,8L14,13L22,8V8L14,3L6,8V8M24,8V18A2,2 0 0,1 22,20H6A2,2 0 0,1 4,18V8C4,7.27 4.39,6.64 4.97,6.29L14,0.64L23.03,6.29C23.61,6.64 24,7.27 24,8M2,8V22H20V24H2A2,2 0 0,1 0,22V8H2Z\";\nexport var mdiEmailOpenMultipleOutline = \"M2 8V22H20V24H2C.895 24 0 23.11 0 22V8H2M23.03 6.29L14 .64L4.97 6.29C4.39 6.64 4 7.27 4 8V18C4 19.1 4.9 20 6 20H22C23.1 20 24 19.1 24 18V8C24 7.27 23.61 6.64 23.03 6.29M22 18H6V10L14 15L22 10V18M14 13L6 8L14 3L22 8L14 13Z\";\nexport var mdiEmailOpenOutline = \"M21.03 6.29L12 .64L2.97 6.29C2.39 6.64 2 7.27 2 8V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 7.27 21.61 6.64 21.03 6.29M20 18H4V10L12 15L20 10V18M12 13L4 8L12 3L20 8L12 13Z\";\nexport var mdiEmailOutline = \"M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z\";\nexport var mdiEmailPlus = \"M13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V6C22 4.89 21.1 4 20 4H4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M4 8V6L12 11L20 6V8L12 13L4 8M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiEmailPlusOutline = \"M13 19C13 18.66 13.04 18.33 13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19M20 6L12 11L4 6H20M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiEmailRemove = \"M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H20C21.1 4 22 4.89 22 6V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M20 8V6L12 11L4 6V8L12 13L20 8Z\";\nexport var mdiEmailRemoveOutline = \"M13.09 18H4V8L12 13L20 8V13.09C20.72 13.21 21.39 13.46 22 13.81V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H13.09C13.04 19.67 13 19.34 13 19C13 18.66 13.04 18.33 13.09 18M20 6L12 11L4 6H20M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiEmailSeal = \"M12.5 13.3C12.2 12.4 12.4 11.7 12.5 11.3C12.4 10.9 12.2 10.3 12.4 9.4C12.7 8.6 13.2 8.2 13.5 7.9C13.6 7.5 13.8 6.9 14.6 6.3C15.3 5.8 16 5.8 16.4 5.8C16.5 5.7 16.7 5.6 16.9 5.5V2.6C17 1.7 16.3 1 15.4 1H2.6C1.7 1 1 1.7 1 2.6V12.4C1 13.3 1.7 14 2.6 14H12.9C12.7 13.8 12.6 13.6 12.5 13.3M3 5V3L9 6L15 3V5L9 8L3 5M22.6 9.9C22.4 9.3 21.9 9.2 21.6 8.9C21.4 8.6 21.4 8 20.9 7.7C20.4 7.3 19.9 7.5 19.5 7.4C19.1 7.3 18.8 6.8 18.2 6.8S17.3 7.2 16.9 7.4C16.5 7.5 16 7.3 15.5 7.7C15 8 15.1 8.5 14.8 8.9C14.5 9.2 14 9.4 13.8 9.9C13.6 10.5 14 10.9 14 11.3C14 11.7 13.6 12.1 13.8 12.7C14 13.3 14.5 13.4 14.8 13.7C15 14 15 14.6 15.5 14.9C16 15.3 16.5 15.1 16.9 15.2C17.3 15.3 17.6 15.8 18.2 15.8S19.1 15.4 19.5 15.2C19.9 15.1 20.4 15.3 20.9 14.9C21.4 14.5 21.4 14 21.6 13.7C21.9 13.4 22.4 13.2 22.6 12.7C22.8 12.1 22.4 11.7 22.4 11.3C22.4 10.9 22.8 10.5 22.6 9.9M18.2 14.4C16.5 14.4 15.2 13 15.2 11.4S16.6 8.4 18.2 8.4 21.2 9.8 21.2 11.4 19.9 14.4 18.2 14.4M19.7 11.3C19.7 12.1 19 12.8 18.2 12.8S16.7 12.1 16.7 11.3C16.7 10.5 17.4 9.8 18.2 9.8S19.7 10.5 19.7 11.3M19.5 17.1L19 19.8L18.4 22.9L16.4 21L14 22.1L15 16.4C15.4 16.6 15.9 16.7 16.4 16.7C16.7 16.9 17.1 17.1 17.4 17.2C17.6 17.3 17.9 17.3 18.2 17.3C18.7 17.4 19.1 17.3 19.5 17.1M22.7 19.5L20.7 18.8L21.1 16.6L21.7 16.3L21.8 16.2L22.7 19.5Z\";\nexport var mdiEmailSealOutline = \"M12.5 13.3C12.3 12.8 12.3 12.4 12.4 12H3V4.5L9 8.5L15 4.5V6.2C15.6 5.9 16.1 5.9 16.4 5.9C16.5 5.8 16.7 5.7 16.9 5.6V2.6C17 1.7 16.3 1 15.4 1H2.6C1.7 1 1 1.7 1 2.6V12.4C1 13.3 1.7 14 2.6 14H12.9C12.7 13.8 12.6 13.6 12.5 13.3M15 3L9 7L3 3H15M22.6 9.9C22.4 9.3 21.9 9.2 21.6 8.9C21.4 8.6 21.4 8 20.9 7.7C20.4 7.3 19.9 7.5 19.5 7.4C19.1 7.3 18.8 6.8 18.2 6.8S17.3 7.2 16.9 7.4C16.5 7.5 16 7.3 15.5 7.7C15 8 15.1 8.5 14.8 8.9C14.5 9.2 14 9.4 13.8 9.9C13.6 10.5 14 10.9 14 11.3C14 11.7 13.6 12.1 13.8 12.7C14 13.3 14.5 13.4 14.8 13.7C15 14 15 14.6 15.5 14.9C16 15.3 16.5 15.1 16.9 15.2C17.3 15.3 17.6 15.8 18.2 15.8S19.1 15.4 19.5 15.2C19.9 15.1 20.4 15.3 20.9 14.9C21.4 14.5 21.4 14 21.6 13.7C21.9 13.4 22.4 13.2 22.6 12.7C22.8 12.1 22.4 11.7 22.4 11.3C22.4 10.9 22.8 10.5 22.6 9.9M18.2 14.4C16.5 14.4 15.2 13 15.2 11.4S16.6 8.4 18.2 8.4 21.2 9.8 21.2 11.4 19.9 14.4 18.2 14.4M19.7 11.3C19.7 12.1 19 12.8 18.2 12.8S16.7 12.1 16.7 11.3C16.7 10.5 17.4 9.8 18.2 9.8S19.7 10.5 19.7 11.3M19.5 17.1L19 19.8L18.4 22.9L16.4 21L14 22.1L15 16.4C15.4 16.6 15.9 16.7 16.4 16.7C16.7 16.9 17.1 17.1 17.4 17.2C17.6 17.3 17.9 17.3 18.2 17.3C18.7 17.4 19.1 17.3 19.5 17.1M22.7 19.5L20.7 18.8L21.1 16.6L21.7 16.3L21.8 16.2L22.7 19.5Z\";\nexport var mdiEmailSearch = \"M3,4H19A2,2 0 0,1 21,6V10.82C20,9.85 18.7,9.23 17.31,9.06L19,8V6L11,11L3,6V8L10.62,12.76C10.21,13.62 10,14.55 10,15.5C10,17.18 10.65,18.79 11.81,20H3A2,2 0 0,1 1,18V6C1,4.89 1.89,4 3,4M16.5,11C19,11 21,13 21,15.5C21,16.38 20.75,17.21 20.31,17.9L23.39,21L22,22.39L18.88,19.32C18.19,19.75 17.37,20 16.5,20C14,20 12,18 12,15.5C12,13 14,11 16.5,11M16.5,13A2.5,2.5 0 0,0 14,15.5A2.5,2.5 0 0,0 16.5,18A2.5,2.5 0 0,0 19,15.5A2.5,2.5 0 0,0 16.5,13Z\";\nexport var mdiEmailSearchOutline = \"M16.5 11C19 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11M16.5 13C15.12 13 14 14.12 14 15.5S15.12 18 16.5 18 19 16.88 19 15.5 17.88 13 16.5 13M10.5 18H3V8L10.62 12.76C11.65 10.54 13.9 9 16.5 9C16.77 9 17.04 9 17.31 9.06L19 8V9.5C19.75 9.81 20.42 10.27 21 10.82V6C21 4.9 20.1 4 19 4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H11.82C11.27 19.42 10.82 18.75 10.5 18M19 6L11 11L3 6H19Z\";\nexport var mdiEmailSync = \"M3 4C1.89 4 1 4.89 1 6V18C1 19.11 1.9 20 3 20H13.5A6.5 6.5 0 0 1 13 17.5A6.5 6.5 0 0 1 19.5 11A6.5 6.5 0 0 1 21 11.18V6C21 4.89 20.1 4 19 4H3M3 6L11 11L19 6V8L11 13L3 8V6M19 12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5V12M15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29Z\";\nexport var mdiEmailSyncOutline = \"M3 4C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H13.5A6.5 6.5 0 0 1 13 18H3V8L11 13L19 8V11A6.5 6.5 0 0 1 19.5 11A6.5 6.5 0 0 1 21 11.18V6C21 4.9 20.1 4 19 4H3M3 6H19L11 11L3 6M19 12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5V12M15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29Z\";\nexport var mdiEmailVariant = \"M12,13L2,6.76V6C2,4.89 2.89,4 4,4H20A2,2 0 0,1 22,6V6.75L12,13M22,18A2,2 0 0,1 20,20H4C2.89,20 2,19.1 2,18V9.11L4,10.36V18H20V10.36L22,9.11V18Z\";\nexport var mdiEmber = \"M22,14.22C22,14.22 17.61,17.35 14.72,17.39C11.84,17.44 12.13,15.56 12.13,15.56C12.13,15.56 22.71,11.94 19.83,4.79C18.53,2.95 17,2.37 14.89,2.42C12.76,2.46 10.17,3.76 8.46,7.6C7.64,9.44 7.41,11.18 7.24,12.5V12.5C7.24,12.5 5.32,12.88 4.32,12.04C3.32,11.2 2.77,12.04 2.77,12.04C2.77,12.04 1.03,14.2 2.75,14.87C4.46,15.54 7.12,15.82 7.12,15.82V15.82C7.36,17 8.08,19 10.17,20.6C13.3,23 19.32,20.4 19.32,20.4M11.63,12.33C11.76,7.36 15,5.18 16.15,6.27C17.27,7.36 16.86,9.7 14.72,11.16C12.59,12.63 11.63,12.33 11.63,12.33Z\";\nexport var mdiEmby = \"M11,2L6,7L7,8L2,13L7,18L8,17L13,22L18,17L17,16L22,11L17,6L16,7L11,2M10,8.5L16,12L10,15.5V8.5Z\";\nexport var mdiEmoticon = \"M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M15.5,8A1.5,1.5 0 0,1 17,9.5A1.5,1.5 0 0,1 15.5,11A1.5,1.5 0 0,1 14,9.5A1.5,1.5 0 0,1 15.5,8M8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11A1.5,1.5 0 0,1 7,9.5A1.5,1.5 0 0,1 8.5,8M12,17.5C9.67,17.5 7.69,16.04 6.89,14H17.11C16.3,16.04 14.33,17.5 12,17.5Z\";\nexport var mdiEmoticonAngry = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,9.5V8L10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5M14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5L17,8V9.5Z\";\nexport var mdiEmoticonAngryOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5V8L10,9.5M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5L17,8V9.5\";\nexport var mdiEmoticonConfused = \"M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2M8.5 8A1.5 1.5 0 1 1 7 9.5A1.54 1.54 0 0 1 8.5 8M17 16H13A4 4 0 0 0 9.53 18L7.8 17A6 6 0 0 1 13 14H17M15.5 11A1.5 1.5 0 1 1 17 9.5A1.54 1.54 0 0 1 15.5 11Z\";\nexport var mdiEmoticonConfusedOutline = \"M20 12A8 8 0 1 0 12 20A8 8 0 0 0 20 12M22 12A10 10 0 1 1 12 2A10 10 0 0 1 22 12M15.5 8A1.5 1.5 0 1 1 14 9.5A1.54 1.54 0 0 1 15.5 8M10 9.5A1.5 1.5 0 1 1 8.5 8A1.54 1.54 0 0 1 10 9.5M17 15H13A4 4 0 0 0 9.53 17L7.8 16A6 6 0 0 1 13 13H17Z\";\nexport var mdiEmoticonCool = \"M3.22,7.22C4.91,4.11 8.21,2 12,2C15.79,2 19.09,4.11 20.78,7.22L20,8H4L3.22,7.22M21.4,8.6C21.78,9.67 22,10.81 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12C2,10.81 2.22,9.67 2.6,8.6L4,10H5C5,11.38 7.12,12.5 8.5,12.5C9.88,12.5 11.25,11.38 11.25,10H12.75C12.75,11.38 14.12,12.5 15.5,12.5C16.88,12.5 19,11.38 19,10H20L21.4,8.6M16.19,15.42L14.77,14C14.32,14.72 13.25,15.23 12,15.23C10.75,15.23 9.68,14.72 9.23,14L7.81,15.42C8.71,16.5 10.25,17.23 12,17.23C13.75,17.23 15.29,16.5 16.19,15.42Z\";\nexport var mdiEmoticonCoolOutline = \"M19,10C19,11.38 16.88,12.5 15.5,12.5C14.12,12.5 12.75,11.38 12.75,10H11.25C11.25,11.38 9.88,12.5 8.5,12.5C7.12,12.5 5,11.38 5,10H4.25C4.09,10.64 4,11.31 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,11.31 19.91,10.64 19.75,10H19M12,4C9.04,4 6.45,5.61 5.07,8H18.93C17.55,5.61 14.96,4 12,4M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z\";\nexport var mdiEmoticonCry = \"M5.14,17.57C5.14,16.5 6.32,14.5 7.57,12.81C8.82,14.5 10,16.5 10,17.57A2.43,2.43 0 0,1 7.57,20C6.23,20 5.14,18.91 5.14,17.57M22,12A10,10 0 0,1 12,22C11.08,22 10.18,21.86 9.33,21.63C10.9,20.95 12,19.39 12,17.57C12,17.12 11.89,16.6 11.69,16C11.79,16 11.89,16 12,16C13.25,16 14.32,16.5 14.77,17.23L16.19,15.81C15.29,14.72 13.75,14 12,14C11.59,14 11.19,14.04 10.81,14.12C10.38,13.36 9.85,12.53 9.19,11.63L8.71,11C9.42,10.87 10,10.23 10,9.5C10,8.7 9.3,8 8.5,8C7.7,8 7,8.7 7,9.5C7,9.69 7.04,9.87 7.11,10.04L5.96,11.63C4.4,13.75 3.5,15.5 3.23,16.81C2.45,15.38 2,13.74 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M17,9.5C17,8.7 16.3,8 15.5,8C14.7,8 14,8.7 14,9.5C14,10.3 14.7,11 15.5,11C16.3,11 17,10.3 17,9.5Z\";\nexport var mdiEmoticonCryOutline = \"M7.57,20C6.23,20 5.14,18.91 5.14,17.57C5.14,16.5 6.32,14.5 7.57,12.81C8.82,14.5 10,16.5 10,17.57A2.43,2.43 0 0,1 7.57,20M12,2A10,10 0 0,0 2,12C2,13.75 2.45,15.38 3.24,16.81C3.4,16 3.81,15.07 4.31,14.17C4.11,13.5 4,12.75 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20C11.76,20 11.53,20 11.29,19.96C10.82,20.7 10.14,21.28 9.34,21.63C10.19,21.87 11.08,22 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,14C11.59,14 11.19,14.04 10.81,14.12C11.16,14.75 11.47,15.4 11.69,16C11.79,16 11.89,16 12,16C13.25,16 14.32,16.5 14.77,17.23L16.19,15.81C15.29,14.72 13.75,14 12,14M15.5,8C14.7,8 14,8.7 14,9.5C14,10.3 14.7,11 15.5,11C16.3,11 17,10.3 17,9.5C17,8.7 16.3,8 15.5,8M10,9.5C10,8.7 9.3,8 8.5,8C7.7,8 7,8.7 7,9.5C7,10.3 7.7,11 8.5,11C9.3,11 10,10.3 10,9.5\";\nexport var mdiEmoticonDead = \"M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2M6.76,8.82L7.82,7.76L8.88,8.82L9.94,7.76L11,8.82L9.94,9.88L11,10.94L9.94,12L8.88,10.94L7.82,12L6.76,10.94L7.82,9.88L6.76,8.82M6.89,17.5C7.69,15.46 9.67,14 12,14C14.33,14 16.31,15.46 17.11,17.5H6.89M17.24,10.94L16.18,12L15.12,10.94L14.06,12L13,10.94L14.06,9.88L13,8.82L14.06,7.76L15.12,8.82L16.18,7.76L17.24,8.82L16.18,9.88L17.24,10.94Z\";\nexport var mdiEmoticonDeadOutline = \"M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M16.18,7.76L15.12,8.82L14.06,7.76L13,8.82L14.06,9.88L13,10.94L14.06,12L15.12,10.94L16.18,12L17.24,10.94L16.18,9.88L17.24,8.82L16.18,7.76M7.82,12L8.88,10.94L9.94,12L11,10.94L9.94,9.88L11,8.82L9.94,7.76L8.88,8.82L7.82,7.76L6.76,8.82L7.82,9.88L6.76,10.94L7.82,12M12,14C9.67,14 7.69,15.46 6.89,17.5H17.11C16.31,15.46 14.33,14 12,14Z\";\nexport var mdiEmoticonDevil = \"M22.5,2.09C21.6,3 20.13,3.73 18.31,4.25C16.59,2.84 14.39,2 12,2C9.61,2 7.41,2.84 5.69,4.25C3.87,3.73 2.4,3 1.5,2.09C1.53,3.72 2.35,5.21 3.72,6.4C2.63,8 2,9.92 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,9.92 21.37,8 20.28,6.4C21.65,5.21 22.47,3.72 22.5,2.09M7.5,8.5L10.5,10C10.5,10.8 9.8,11.5 9,11.5C8.2,11.5 7.5,10.8 7.5,10V8.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23M16.5,10C16.5,10.8 15.8,11.5 15,11.5C14.2,11.5 13.5,10.8 13.5,10L16.5,8.5V10Z\";\nexport var mdiEmoticonDevilOutline = \"M1.5,2.09C2.4,3 3.87,3.73 5.69,4.25C7.41,2.84 9.61,2 12,2C14.39,2 16.59,2.84 18.31,4.25C20.13,3.73 21.6,3 22.5,2.09C22.47,3.72 21.65,5.21 20.28,6.4C21.37,8 22,9.92 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12C2,9.92 2.63,8 3.72,6.4C2.35,5.21 1.53,3.72 1.5,2.09M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M10.5,10C10.5,10.8 9.8,11.5 9,11.5C8.2,11.5 7.5,10.8 7.5,10V8.5L10.5,10M16.5,10C16.5,10.8 15.8,11.5 15,11.5C14.2,11.5 13.5,10.8 13.5,10L16.5,8.5V10M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z\";\nexport var mdiEmoticonExcited = \"M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2M8.88,7.82L11,9.94L9.94,11L8.88,9.94L7.82,11L6.76,9.94L8.88,7.82M12,17.5C9.67,17.5 7.69,16.04 6.89,14H17.11C16.31,16.04 14.33,17.5 12,17.5M16.18,11L15.12,9.94L14.06,11L13,9.94L15.12,7.82L17.24,9.94L16.18,11Z\";\nexport var mdiEmoticonExcitedOutline = \"M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M13,9.94L14.06,11L15.12,9.94L16.18,11L17.24,9.94L15.12,7.82L13,9.94M8.88,9.94L9.94,11L11,9.94L8.88,7.82L6.76,9.94L7.82,11L8.88,9.94M12,17.5C14.33,17.5 16.31,16.04 17.11,14H6.89C7.69,16.04 9.67,17.5 12,17.5Z\";\nexport var mdiEmoticonFrown = \"M12 2C6.47 2 2 6.5 2 12S6.47 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M15.5 8C16.33 8 17 8.67 17 9.5S16.33 11 15.5 11 14 10.33 14 9.5 14.67 8 15.5 8M8.5 8C9.33 8 10 8.67 10 9.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8M6.89 17C7.69 14.96 9.67 13.5 12 13.5S16.31 14.96 17.11 17H6.89Z\";\nexport var mdiEmoticonFrownOutline = \"M12 2C6.47 2 2 6.5 2 12S6.47 22 12 22C17.5 22 22 17.5 22 12S17.5 2 12 2M12 20C7.58 20 4 16.42 4 12S7.58 4 12 4 20 7.58 20 12 16.42 20 12 20M15.5 11C16.33 11 17 10.33 17 9.5S16.33 8 15.5 8 14 8.67 14 9.5 14.67 11 15.5 11M8.5 11C9.33 11 10 10.33 10 9.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11M12 13.5C9.67 13.5 7.69 14.96 6.89 17H17.11C16.31 14.96 14.33 13.5 12 13.5Z\";\nexport var mdiEmoticonHappy = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23M15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5C17,10.3 16.3,11 15.5,11Z\";\nexport var mdiEmoticonHappyOutline = \"M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z\";\nexport var mdiEmoticonKiss = \"M18.9,18.94L15.94,16C15.76,15.79 15.55,15.5 15.55,15.05A1.3,1.3 0 0,1 16.85,13.75C17.19,13.75 17.53,13.89 17.77,14.15L18.91,15.26L20.03,14.13C20.27,13.89 20.61,13.75 20.95,13.75A1.3,1.3 0 0,1 22.25,15.05C22.25,15.39 22.11,15.73 21.87,15.97L18.9,18.94M17.46,19.62C15.72,21.1 13.47,22 11,22A10,10 0 0,1 1,12A10,10 0 0,1 11,2A10,10 0 0,1 21,12C21,12.09 21,12.17 20.95,12.25C20.21,12.25 19.5,12.55 18.97,13.07L18.9,13.14L18.84,13.09C18.32,12.55 17.6,12.25 16.85,12.25A2.8,2.8 0 0,0 14.05,15.05C14.05,15.78 14.34,16.5 14.87,17.03L17.46,19.62M13,9.5C13,10.3 13.7,11 14.5,11C15.3,11 16,10.3 16,9.5C16,8.7 15.3,8 14.5,8C13.7,8 13,8.7 13,9.5M9,9.5C9,8.7 8.3,8 7.5,8C6.7,8 6,8.7 6,9.5C6,10.3 6.7,11 7.5,11C8.3,11 9,10.3 9,9.5M12.94,15.18L14,14.12L11.88,12L10.82,13.06L11.88,14.12L10.82,15.18L11.88,16.24L10.82,17.3L11.88,18.36L14,16.24L12.94,15.18Z\";\nexport var mdiEmoticonKissOutline = \"M9,9.5C9,10.3 8.3,11 7.5,11C6.7,11 6,10.3 6,9.5C6,8.7 6.7,8 7.5,8C8.3,8 9,8.7 9,9.5M16,9.5C16,10.3 15.3,11 14.5,11C13.7,11 13,10.3 13,9.5C13,8.7 13.7,8 14.5,8C15.3,8 16,8.7 16,9.5M14,14.12L11.88,12L10.82,13.06L11.88,14.12L10.82,15.18L11.88,16.24L10.82,17.3L11.88,18.36L14,16.24L12.94,15.18L14,14.12M16.85,13A2.05,2.05 0 0,0 14.8,15.05C14.8,15.62 15.03,16.12 15.4,16.5L18.9,20L22.4,16.5C22.77,16.13 23,15.61 23,15.05A2.05,2.05 0 0,0 20.95,13C20.4,13 19.87,13.23 19.5,13.6L18.9,14.2L18.3,13.61C17.93,13.23 17.4,13 16.85,13M15,18.92C13.82,19.6 12.46,20 11,20A8,8 0 0,1 3,12A8,8 0 0,1 11,4C15.26,4 18.73,7.33 19,11.5C19.58,11.19 20.26,11 20.95,11C20.45,5.95 16.18,2 11,2A10,10 0 0,0 1,12A10,10 0 0,0 11,22C13,22 14.88,21.4 16.45,20.38L15,18.92Z\";\nexport var mdiEmoticonLol = \"M15.07 8.93V4.93A4.06 4.06 0 0 1 15.73 2.72A10 10 0 0 0 2.73 15.72A4.06 4.06 0 0 1 4.94 15.06H8.94V19.06A4.06 4.06 0 0 1 8.28 21.27A10 10 0 0 0 21.28 8.27A4.06 4.06 0 0 1 19.07 8.93M11 6H12.5V7.5H14V9H11M7.5 14V12.5H6V11H9V14M15.89 15.9A5.5 5.5 0 0 1 9.8 17L17 9.8A5.5 5.5 0 0 1 15.89 15.89M4.89 21.08A2 2 0 0 1 2.89 19.08A2 2 0 0 1 4.89 17.08H6.89V19.08A2 2 0 0 1 4.93 21.07M19.07 2.93A2 2 0 0 1 21.07 4.93A2 2 0 0 1 19.07 6.93H17.07V4.93A2 2 0 0 1 19.07 2.93Z\";\nexport var mdiEmoticonLolOutline = \"M6 11V12.5H7.5V14H9V11M12.5 6H11V9H14V7.5H12.5M9.8 17A5.5 5.5 0 0 0 17 9.8M6.34 6.34A8 8 0 0 1 15.08 4.62A4.11 4.11 0 0 1 15.73 2.72A10 10 0 0 0 2.73 15.72A4.11 4.11 0 0 1 4.63 15.07A8 8 0 0 1 6.34 6.34M17.66 17.66A8 8 0 0 1 8.92 19.38A4.11 4.11 0 0 1 8.27 21.28A10 10 0 0 0 21.27 8.28A4.11 4.11 0 0 1 19.37 8.93A8 8 0 0 1 17.66 17.66M6 11V12.5H7.5V14H9V11M9.8 17A5.5 5.5 0 0 0 17 9.8M12.5 6H11V9H14V7.5H12.5M6 11V12.5H7.5V14H9V11M12.5 6H11V9H14V7.5H12.5M9.8 17A5.5 5.5 0 0 0 17 9.8M4.93 21A2 2 0 0 1 2.93 19A2 2 0 0 1 4.93 17H6.93V19A2 2 0 0 1 4.93 21.07M19.07 2.93A2 2 0 0 1 21.07 4.93A2 2 0 0 1 19.07 6.93H17.07V4.93A2 2 0 0 1 19.07 2.93Z\";\nexport var mdiEmoticonMinus = \"M15 18H23V20H15V18M12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21 13.26 20.03 13 19 13C17.77 13 16.63 13.37 15.68 14H6.89C7.69 16.04 9.67 17.5 12 17.5C12.42 17.5 12.83 17.45 13.23 17.36C13.08 17.88 13 18.43 13 19C13 20.03 13.26 21 13.72 21.85C13.16 21.95 12.59 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.47 2 12 2M15.5 8C14.67 8 14 8.67 14 9.5C14 10.33 14.67 11 15.5 11C16.33 11 17 10.33 17 9.5C17 8.67 16.33 8 15.5 8M8.5 8C7.67 8 7 8.67 7 9.5C7 10.33 7.67 11 8.5 11C9.33 11 10 10.33 10 9.5C10 8.67 9.33 8 8.5 8Z\";\nexport var mdiEmoticonMinusOutline = \"M15 18H23V20H15V18M12 17.5C9.67 17.5 7.69 16.04 6.89 14H15.69C14.5 14.78 13.62 15.97 13.23 17.36C12.83 17.45 12.42 17.5 12 17.5M8.5 11C7.67 11 7 10.33 7 9.5C7 8.67 7.67 8 8.5 8C9.33 8 10 8.67 10 9.5C10 10.33 9.33 11 8.5 11M15.5 11C14.67 11 14 10.33 14 9.5C14 8.67 14.67 8 15.5 8C16.33 8 17 8.67 17 9.5C17 10.33 16.33 11 15.5 11M12 20L13.07 19.93C13.18 20.61 13.4 21.26 13.72 21.85C13.16 21.95 12.58 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.47 2 12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21.26 13.4 20.62 13.18 19.93 13.07L20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20Z\";\nexport var mdiEmoticonNeutral = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,9.5A1.5,1.5 0 0,1 8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11A1.5,1.5 0 0,1 7,9.5M16,16H8V14H16V16M15.5,11A1.5,1.5 0 0,1 14,9.5A1.5,1.5 0 0,1 15.5,8A1.5,1.5 0 0,1 17,9.5A1.5,1.5 0 0,1 15.5,11Z\";\nexport var mdiEmoticonNeutralOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M8.5,11A1.5,1.5 0 0,1 7,9.5A1.5,1.5 0 0,1 8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11M17,9.5A1.5,1.5 0 0,1 15.5,11A1.5,1.5 0 0,1 14,9.5A1.5,1.5 0 0,1 15.5,8A1.5,1.5 0 0,1 17,9.5M16,14V16H8V14H16Z\";\nexport var mdiEmoticonOutline = \"M12,17.5C14.33,17.5 16.3,16.04 17.11,14H6.89C7.69,16.04 9.67,17.5 12,17.5M8.5,11A1.5,1.5 0 0,0 10,9.5A1.5,1.5 0 0,0 8.5,8A1.5,1.5 0 0,0 7,9.5A1.5,1.5 0 0,0 8.5,11M15.5,11A1.5,1.5 0 0,0 17,9.5A1.5,1.5 0 0,0 15.5,8A1.5,1.5 0 0,0 14,9.5A1.5,1.5 0 0,0 15.5,11M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiEmoticonPlus = \"M15 18H18V15H20V18H23V20H20V23H18V20H15V18M12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21 13.26 20.03 13 19 13C17.77 13 16.63 13.37 15.68 14H6.89C7.69 16.04 9.67 17.5 12 17.5C12.42 17.5 12.83 17.45 13.23 17.36C13.08 17.88 13 18.43 13 19C13 20.03 13.26 21 13.72 21.85C13.16 21.95 12.59 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.47 2 12 2M15.5 8C14.67 8 14 8.67 14 9.5C14 10.33 14.67 11 15.5 11C16.33 11 17 10.33 17 9.5C17 8.67 16.33 8 15.5 8M8.5 8C7.67 8 7 8.67 7 9.5C7 10.33 7.67 11 8.5 11C9.33 11 10 10.33 10 9.5C10 8.67 9.33 8 8.5 8Z\";\nexport var mdiEmoticonPlusOutline = \"M15 18H18V15H20V18H23V20H20V23H18V20H15V18M12 17.5C9.67 17.5 7.69 16.04 6.89 14H15.69C14.5 14.78 13.62 15.97 13.23 17.36C12.83 17.45 12.42 17.5 12 17.5M8.5 11C7.67 11 7 10.33 7 9.5C7 8.67 7.67 8 8.5 8C9.33 8 10 8.67 10 9.5C10 10.33 9.33 11 8.5 11M15.5 11C14.67 11 14 10.33 14 9.5C14 8.67 14.67 8 15.5 8C16.33 8 17 8.67 17 9.5C17 10.33 16.33 11 15.5 11M12 20L13.07 19.93C13.18 20.61 13.4 21.26 13.72 21.85C13.16 21.95 12.58 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.47 2 12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21.26 13.4 20.62 13.18 19.93 13.07L20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20Z\";\nexport var mdiEmoticonPoop = \"M11.36,2C11.15,2 10.87,2.12 10.57,2.32C10,2.7 8.85,3.9 8.4,5.1C8.06,6 8.05,6.82 8.19,7.43C7.63,7.53 7.22,7.71 7.06,7.78C6.55,8 5.47,8.96 5.37,10.45C5.34,10.97 5.41,11.5 5.57,12C4.91,12.19 4.53,12.43 4.5,12.44C4.18,12.56 3.65,12.93 3.5,13.13C3.15,13.53 2.92,14 2.79,14.5C2.5,15.59 2.6,16.83 3.13,17.83C3.42,18.39 3.82,19 4.26,19.43C5.7,20.91 8.18,21.47 10.14,21.79C12.53,22.19 15.03,22.05 17.26,21.13C20.61,19.74 21.5,17.5 21.64,16.89C21.93,15.5 21.57,14.19 21.42,13.87C21.2,13.41 20.84,12.94 20.25,12.64C19.85,12.39 19.5,12.26 19.24,12.2C19.5,11.25 19.13,10.5 18.62,9.94C17.85,9.12 17.06,9 17.06,9V9C17.32,8.5 17.42,7.9 17.28,7.32C17.12,6.61 16.73,6.16 16.22,5.86C15.7,5.55 15.06,5.4 14.4,5.28C14.08,5.22 12.75,5.03 12.2,4.27C11.75,3.65 11.74,2.53 11.62,2.2C11.57,2.07 11.5,2 11.36,2M16,9.61C16.07,9.61 16.13,9.62 16.19,9.62C17.62,9.78 18.64,11.16 18.47,12.69C18.3,14.22 17,15.34 15.57,15.18V15.18C14.14,15 13.12,13.65 13.29,12.11C13.45,10.66 14.64,9.56 16,9.61M8.62,9.61C9.95,9.65 11.06,10.78 11.16,12.21C11.28,13.75 10.21,15.08 8.78,15.19H8.77C7.34,15.3 6.08,14.14 5.96,12.6V12.6C5.85,11.06 6.92,9.73 8.35,9.62V9.62C8.44,9.61 8.53,9.61 8.62,9.61M8.64,11.31C8.6,11.31 8.57,11.31 8.53,11.32C7.97,11.39 7.57,11.9 7.64,12.45C7.7,13 8.21,13.39 8.77,13.32C9.33,13.25 9.73,12.74 9.67,12.19C9.61,11.67 9.15,11.3 8.64,11.31M15.94,11.33C15.42,11.35 15,11.75 14.96,12.28C14.92,12.83 15.35,13.31 15.91,13.34C16.5,13.38 16.96,12.95 17,12.4C17.04,11.84 16.61,11.36 16.05,11.33C16,11.33 16,11.33 15.94,11.33M8.71,16.15C9,16.14 9.26,16.23 9.5,16.28C10.68,16.5 11.7,16.53 12.19,16.53C12.68,16.53 13.69,16.5 14.86,16.28C15.27,16.2 15.74,16.03 16.11,16.28C16.59,16.6 16.24,17.75 15.5,18.53C15.04,19 13.97,19.91 12.19,19.91C10.41,19.91 9.33,19 8.88,18.53C8.14,17.75 7.79,16.6 8.26,16.28C8.4,16.19 8.55,16.15 8.71,16.15Z\";\nexport var mdiEmoticonPoopOutline = \"M21.42,13.87C21.2,13.41 20.84,12.94 20.25,12.64C19.85,12.39 19.5,12.26 19.24,12.2C19.5,11.25 19.13,10.5 18.62,9.94C17.85,9.12 17.06,9 17.06,9C17.32,8.5 17.42,7.9 17.28,7.32C17.12,6.61 16.73,6.16 16.22,5.86C15.7,5.55 15.06,5.4 14.4,5.28C14.08,5.22 12.75,5.03 12.2,4.27C11.75,3.65 11.74,2.53 11.62,2.2C11.57,2.07 11.5,2 11.36,2C11.15,2 10.87,2.12 10.57,2.32C10,2.7 8.85,3.9 8.4,5.1C8.06,6 8.05,6.82 8.19,7.43C7.63,7.53 7.22,7.71 7.06,7.78C6.55,8 5.47,8.96 5.37,10.45C5.34,10.89 5.41,11.34 5.5,11.78C5.5,11.86 5.5,11.94 5.5,12.03C4.88,12.22 4.53,12.43 4.5,12.44C4.18,12.56 3.65,12.93 3.5,13.13C3.15,13.53 2.92,14 2.79,14.5C2.5,15.59 2.6,16.83 3.13,17.83C3.42,18.39 3.82,19 4.26,19.43C5.7,20.91 8.18,21.47 10.14,21.79C10.96,21.93 11.8,22 12.63,22C14.22,22 15.8,21.73 17.26,21.13C20.61,19.74 21.5,17.5 21.64,16.89C21.93,15.5 21.57,14.19 21.42,13.87M16.05,11.33C16.61,11.36 17.04,11.84 17,12.4C16.96,12.95 16.5,13.38 15.91,13.34C15.35,13.31 14.92,12.83 14.96,12.28C15,11.75 15.42,11.35 15.94,11.33C16,11.33 16,11.33 16.05,11.33M20.18,16.55C20.17,16.57 19.7,18.5 16.69,19.74C15.47,20.25 14.1,20.5 12.63,20.5C11.9,20.5 11.14,20.44 10.38,20.31C8.76,20.05 6.5,19.56 5.31,18.36C5.04,18.09 4.72,17.63 4.46,17.13C4.12,16.5 4.04,15.65 4.24,14.88C4.32,14.58 4.45,14.32 4.63,14.12L4.65,14.09C4.74,14 4.95,13.88 5.03,13.84V13.84L5.14,13.8L5.26,13.74C5.32,13.7 5.46,13.63 5.67,13.55C6.13,14.81 7.28,15.7 8.59,15.7C8.67,15.7 8.74,15.69 8.82,15.69C9.65,15.63 10.41,15.22 10.94,14.55C11.47,13.89 11.73,13.04 11.66,12.17C11.54,10.5 10.22,9.16 8.64,9.11H8.62C8.5,9.11 8.4,9.11 8.31,9.12C8,9.15 7.73,9.23 7.46,9.34C7.55,9.24 7.63,9.17 7.66,9.15C7.79,9.1 8.07,9 8.45,8.91L10,8.63L9.65,7.09C9.61,6.9 9.53,6.35 9.81,5.63C9.96,5.2 10.27,4.76 10.58,4.38C10.68,4.65 10.81,4.91 11,5.15C11.77,6.23 13.12,6.58 14.06,6.74L14.13,6.76C14.6,6.84 15.13,6.95 15.46,7.15C15.67,7.28 15.76,7.41 15.82,7.67C15.87,7.87 15.84,8.1 15.73,8.31L15.21,9.2C13.95,9.5 12.95,10.64 12.79,12.06C12.59,13.87 13.78,15.46 15.5,15.68C15.62,15.69 15.74,15.7 15.85,15.7C16.56,15.7 17.25,15.44 17.82,14.95C18.23,14.59 18.54,14.13 18.74,13.62L18.9,13.66C19,13.68 19.17,13.74 19.45,13.91L19.5,13.95L19.57,14C19.78,14.08 19.94,14.26 20.05,14.5C20.13,14.67 20.38,15.6 20.18,16.55M7.64,12.45C7.57,11.9 7.97,11.39 8.53,11.32C8.57,11.31 8.6,11.31 8.64,11.31C9.15,11.3 9.61,11.67 9.67,12.19C9.73,12.74 9.33,13.25 8.77,13.32C8.21,13.39 7.7,13 7.64,12.45M8.71,16.15C9,16.14 9.26,16.23 9.5,16.28C10.68,16.5 11.7,16.53 12.19,16.53C12.68,16.53 13.69,16.5 14.86,16.28C15.27,16.2 15.74,16.03 16.11,16.28C16.59,16.6 16.24,17.75 15.5,18.53C15.04,19 13.97,19.91 12.19,19.91C10.41,19.91 9.33,19 8.88,18.53C8.14,17.75 7.79,16.6 8.26,16.28C8.4,16.19 8.55,16.15 8.71,16.15Z\";\nexport var mdiEmoticonRemove = \"M16.88 15.46L19 17.59L21.12 15.47L22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.47 16.88L16.88 15.46M12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21 13.26 20.03 13 19 13C17.77 13 16.63 13.37 15.68 14H6.89C7.69 16.04 9.67 17.5 12 17.5C12.42 17.5 12.83 17.45 13.23 17.36C13.08 17.88 13 18.43 13 19C13 20.03 13.26 21 13.72 21.85C13.16 21.95 12.59 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.47 2 12 2M15.5 8C14.67 8 14 8.67 14 9.5C14 10.33 14.67 11 15.5 11C16.33 11 17 10.33 17 9.5C17 8.67 16.33 8 15.5 8M8.5 8C7.67 8 7 8.67 7 9.5C7 10.33 7.67 11 8.5 11C9.33 11 10 10.33 10 9.5C10 8.67 9.33 8 8.5 8Z\";\nexport var mdiEmoticonRemoveOutline = \"M16.88 15.46L19 17.59L21.12 15.47L22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.47 16.88L16.88 15.46M12 17.5C9.67 17.5 7.69 16.04 6.89 14H15.69C14.5 14.78 13.62 15.97 13.23 17.36C12.83 17.45 12.42 17.5 12 17.5M8.5 11C7.67 11 7 10.33 7 9.5C7 8.67 7.67 8 8.5 8C9.33 8 10 8.67 10 9.5C10 10.33 9.33 11 8.5 11M15.5 11C14.67 11 14 10.33 14 9.5C14 8.67 14.67 8 15.5 8C16.33 8 17 8.67 17 9.5C17 10.33 16.33 11 15.5 11M12 20L13.07 19.93C13.18 20.61 13.4 21.26 13.72 21.85C13.16 21.95 12.58 22 12 22C6.47 22 2 17.5 2 12C2 6.5 6.47 2 12 2C17.5 2 22 6.5 22 12C22 12.59 21.95 13.16 21.85 13.72C21.26 13.4 20.62 13.18 19.93 13.07L20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20Z\";\nexport var mdiEmoticonSad = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5M14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23M15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5C17,10.3 16.3,11 15.5,11Z\";\nexport var mdiEmoticonSadOutline = \"M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M15.5,8C16.3,8 17,8.7 17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14Z\";\nexport var mdiEmoticonSick = \"M21 9C19.9 9 19 8.1 19 7S21 3 21 3 23 5.9 23 7 22.1 9 21 9M17.5 7C17.5 6.27 17.91 5.29 18.42 4.34C16.68 2.88 14.44 2 12 2C6.47 2 2 6.5 2 12S6.47 22 12 22C17.5 22 22 17.5 22 12C22 11.45 21.94 10.91 21.86 10.38C21.58 10.45 21.3 10.5 21 10.5C19.07 10.5 17.5 8.93 17.5 7M15.62 7.38L16.68 8.44L15.62 9.5L16.68 10.56L15.62 11.62L13.5 9.5L15.62 7.38M7.32 8.44L8.38 7.38L10.5 9.5L8.38 11.62L7.32 10.56L8.38 9.5L7.32 8.44M15.44 17C14.75 15.81 13.47 15 12 15S9.25 15.81 8.56 17H6.88C7.18 16.24 7.64 15.57 8.22 15L5.24 13.3C4.79 13.56 4.23 13.58 3.75 13.3C3.03 12.89 2.79 11.97 3.2 11.25S4.53 10.29 5.25 10.7C5.73 11 6 11.5 6 12L9.57 14.06C10.3 13.7 11.12 13.5 12 13.5C14.33 13.5 16.32 14.95 17.12 17H15.44Z\";\nexport var mdiEmoticonSickOutline = \"M7.32 10.56L8.38 9.5L7.32 8.44L8.38 7.38L10.5 9.5L8.38 11.62L7.32 10.56M4.5 9C4.53 9 4.55 9 4.58 9C5.77 6.07 8.64 4 12 4C14.19 4 16.16 4.88 17.61 6.3C17.76 5.7 18.06 5 18.42 4.34C16.68 2.88 14.44 2 12 2C7.11 2 3.05 5.5 2.18 10.14C2.74 9.44 3.59 9 4.5 9M21 10.5C20.58 10.5 20.18 10.41 19.81 10.28C19.93 10.83 20 11.41 20 12C20 16.42 16.42 20 12 20C8.64 20 5.77 17.93 4.58 15C4.55 15 4.53 15 4.5 15C4 15 3.46 14.86 3 14.6C2.68 14.42 2.41 14.18 2.18 13.9C3.07 18.5 7.11 22 12 22C17.5 22 22 17.5 22 12C22 11.45 21.94 10.91 21.86 10.38C21.58 10.45 21.3 10.5 21 10.5M21 3C21 3 19 5.9 19 7S19.9 9 21 9 23 8.1 23 7 21 3 21 3M15.62 7.38L13.5 9.5L15.62 11.62L16.68 10.56L15.62 9.5L16.68 8.44L15.62 7.38M8.56 17C9.25 15.81 10.53 15 12 15S14.75 15.81 15.44 17H17.12C16.32 14.95 14.33 13.5 12 13.5C11.13 13.5 10.3 13.7 9.57 14.07L6 12C6 11.5 5.73 11 5.25 10.71C4.53 10.3 3.62 10.54 3.2 11.26C2.79 12 3.03 12.89 3.75 13.31C4.23 13.59 4.8 13.56 5.24 13.31L8.21 15.03C7.64 15.56 7.18 16.24 6.88 17H8.56Z\";\nexport var mdiEmoticonTongue = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.27,11C7.1,10.71 7,10.36 7,10C7,8.89 7.89,8 9,8A2,2 0 0,1 11,10C11,10.36 10.9,10.71 10.73,11C10.39,10.4 9.74,10 9,10C8.26,10 7.61,10.4 7.27,11M16,15H15C15,17 14.1,18 13,18C11.9,18 11,17 11,15H8V13H16V15M16.73,11C16.39,10.4 15.74,10 15,10C14.26,10 13.61,10.4 13.27,11C13.1,10.71 13,10.36 13,10C13,8.89 13.89,8 15,8A2,2 0 0,1 17,10C17,10.36 16.9,10.71 16.73,11Z\";\nexport var mdiEmoticonTongueOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M9,10C8.26,10 7.61,10.4 7.27,11C7.1,10.71 7,10.36 7,10A2,2 0 0,1 9,8C10.11,8 11,8.9 11,10C11,10.36 10.9,10.71 10.73,11C10.39,10.4 9.74,10 9,10M17,10C17,10.36 16.9,10.71 16.73,11C16.39,10.4 15.74,10 15,10C14.26,10 13.61,10.4 13.27,11C13.1,10.71 13,10.36 13,10A2,2 0 0,1 15,8C16.11,8 17,8.9 17,10M16,13V15H15C15,17 14.1,18 13,18C11.9,18 11,17 11,15H8V13H16Z\";\nexport var mdiEmoticonWink = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23M17,10H13V9H17V10Z\";\nexport var mdiEmoticonWinkOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23M17,10H13V9H17V10Z\";\nexport var mdiEngine = \"M7,4V6H10V8H7L5,10V13H3V10H1V18H3V15H5V18H8L10,20H18V16H20V19H23V9H20V12H18V8H12V6H15V4H7Z\";\nexport var mdiEngineOff = \"M3.78,2.5L21.5,20.22L20.23,21.5L18,19.27V20H10L8,18H5V15H3V18H1V10H3V13H5V10L6.87,8.14L2.5,3.77L3.78,2.5M20,9V12H18V8H12V6H15V4H7.82L22.82,19H23V9H20Z\";\nexport var mdiEngineOffOutline = \"M2.5,3.77L6.87,8.14L5,10V13H3V10H1V18H3V15H5V18H8L10,20H18V19.27L21.23,22.5L22.5,21.22L3.78,2.5L2.5,3.77M16,18H11L9,16H7V11L8,10H8.73L16,17.27V18M23,9V19H22.82L16,12.18V10H13.82L7.82,4H15V6H12V8H18V12H20V9H23Z\";\nexport var mdiEngineOutline = \"M8,10H16V18H11L9,16H7V11M7,4V6H10V8H7L5,10V13H3V10H1V18H3V15H5V18H8L10,20H18V16H20V19H23V9H20V12H18V8H12V6H15V4H7Z\";\nexport var mdiEpsilon = \"M15.05 7.78L16.15 6.18C16.15 6.18 14.91 5 12.77 5C10.04 5 8.35 6.84 8.35 8.76C8.35 10.68 10.08 11.69 10.08 11.69C10.08 11.69 8 12.38 8 15C8 17.63 10.14 19 12.44 19C15.38 19 17 17.04 17 17.04L15.6 15.5C15.6 15.5 14.14 16.87 12.59 16.87C10.66 16.87 10.21 15.69 10.21 14.92C10.21 13.87 10.54 12.65 13.83 12.65L13.82 10.77C13.82 10.77 10.44 11.11 10.44 8.78C10.44 7.21 11.9 6.92 12.64 6.92C14.28 6.92 15.05 7.78 15.05 7.78\";\nexport var mdiEqual = \"M19,10H5V8H19V10M19,16H5V14H19V16Z\";\nexport var mdiEqualBox = \"M17,16V14H7V16H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19M17,10V8H7V10H17Z\";\nexport var mdiEqualizer = \"M10,20H14V4H10V20M4,20H8V12H4V20M16,9V20H20V9H16Z\";\nexport var mdiEqualizerOutline = \"M15,21H9V3H15V21M11,19H13V5H11V19M8,21H2V11H8V21M4,19H6V13H4V19M22,21H16V8H22V21M18,19H20V10H18V19Z\";\nexport var mdiEraser = \"M16.24,3.56L21.19,8.5C21.97,9.29 21.97,10.55 21.19,11.34L12,20.53C10.44,22.09 7.91,22.09 6.34,20.53L2.81,17C2.03,16.21 2.03,14.95 2.81,14.16L13.41,3.56C14.2,2.78 15.46,2.78 16.24,3.56M4.22,15.58L7.76,19.11C8.54,19.9 9.8,19.9 10.59,19.11L14.12,15.58L9.17,10.63L4.22,15.58Z\";\nexport var mdiEraserVariant = \"M15.14,3C14.63,3 14.12,3.2 13.73,3.59L2.59,14.73C1.81,15.5 1.81,16.77 2.59,17.56L5.03,20H12.69L21.41,11.27C22.2,10.5 22.2,9.23 21.41,8.44L16.56,3.59C16.17,3.2 15.65,3 15.14,3M17,18L15,20H22V18\";\nexport var mdiEscalator = \"M20,8H18.95L6.95,20H4A2,2 0 0,1 2,18A2,2 0 0,1 4,16H5.29L7,14.29V10A1,1 0 0,1 8,9H9A1,1 0 0,1 10,10V11.29L17.29,4H20A2,2 0 0,1 22,6A2,2 0 0,1 20,8M8.5,5A1.5,1.5 0 0,1 10,6.5A1.5,1.5 0 0,1 8.5,8A1.5,1.5 0 0,1 7,6.5A1.5,1.5 0 0,1 8.5,5Z\";\nexport var mdiEscalatorBox = \"M5 3C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3H5M14.34 6H17.05C18.16 6 19.05 6.9 19.05 8C19.05 9.11 18.16 10 17.05 10H16L10 18H7.05C5.95 18 5.05 17.11 5.05 16C5.05 14.9 5.95 14 7.05 14H8.34L14.34 6Z\";\nexport var mdiEscalatorDown = \"M20 8H18.95L6.95 20H4C2.9 20 2 19.11 2 18C2 16.9 2.9 16 4 16H5.29L7 14.29V10C7 9.45 7.45 9 8 9H9C9.55 9 10 9.45 10 10V11.29L17.29 4H20C21.11 4 22 4.89 22 6C22 7.11 21.11 8 20 8M8.5 5C9.33 5 10 5.67 10 6.5C10 7.33 9.33 8 8.5 8C7.67 8 7 7.33 7 6.5C7 5.67 7.67 5 8.5 5M14.83 17.34L20.34 11.83L22.17 13.66L16.66 19.17L18.5 21H13V15.5L14.83 17.34Z\";\nexport var mdiEscalatorUp = \"M20 8H18.95L6.95 20H4C2.9 20 2 19.11 2 18C2 16.9 2.9 16 4 16H5.29L7 14.29V10C7 9.45 7.45 9 8 9H9C9.55 9 10 9.45 10 10V11.29L17.29 4H20C21.11 4 22 4.89 22 6C22 7.11 21.11 8 20 8M8.5 5C9.33 5 10 5.67 10 6.5C10 7.33 9.33 8 8.5 8C7.67 8 7 7.33 7 6.5C7 5.67 7.67 5 8.5 5M20.17 15.66L14.66 21.17L12.83 19.34L18.34 13.83L16.5 12H22V17.5L20.17 15.66Z\";\nexport var mdiEslint = \"M7.95,9.55L11.84,7.3C11.94,7.25 12.06,7.25 12.16,7.3L16.05,9.55C16.15,9.61 16.21,9.71 16.21,9.82V14.32C16.21,14.43 16.15,14.53 16.05,14.59L12.16,16.84C12.06,16.89 11.94,16.89 11.84,16.84L7.95,14.59C7.85,14.53 7.79,14.43 7.79,14.32V9.82C7.79,9.71 7.85,9.61 7.95,9.55M22.12,11.6C22.29,11.89 22.29,12.23 22.12,12.53L17.47,20.56C17.3,20.86 17,21 16.65,21H7.35C7,21 6.7,20.85 6.53,20.56L1.88,12.53C1.71,12.24 1.71,11.87 1.88,11.58L6.53,3.5C6.7,3.22 7,3 7.35,3H16.65C17,3 17.3,3.22 17.47,3.5L22.12,11.6M18.27,15.5V8.65C18.27,8.53 18.2,8.42 18.09,8.36L12.16,4.95C12.06,4.89 11.93,4.89 11.83,4.95L5.91,8.36C5.8,8.42 5.73,8.53 5.73,8.65V15.5C5.73,15.61 5.8,15.72 5.91,15.78L11.84,19.19C11.94,19.25 12.07,19.25 12.17,19.19L18.09,15.78C18.2,15.72 18.27,15.61 18.27,15.5Z\";\nexport var mdiEt = \"M23,8.78L21.71,7.22C21.45,7.42 20.53,8 19.77,8C19.26,8 18.3,7.75 17.45,7.53C16.39,7.26 15.39,7 14.6,7C14,7 13.43,7.15 12.93,7.35C12.62,5.45 11,4 9,4C4.58,4 2,7.58 2,12C2,16.42 5.58,19 10,19C12.06,19 13.93,18.43 15.34,17.39L15,21.29L17,21.47L18,9.74C18.66,9.89 19.27,10 19.77,10C21.38,10 22.84,8.91 23,8.78M9,6A2,2 0 0,1 11,8A2,2 0 0,1 9,10H4.23C4.8,7.67 6.39,6 9,6M10,17C6.69,17 4,15.31 4,12H9C10.6,12 11.83,11.17 12.5,9.91V9.91C12.76,9.71 13.85,9 14.6,9C14.94,9 15.5,9.11 16.05,9.25L15.65,13.89C14.82,15.95 12.6,17 10,17Z\";\nexport var mdiEthereum = \"M12,1.75L5.75,12.25L12,16L18.25,12.25L12,1.75M5.75,13.5L12,22.25L18.25,13.5L12,17.25L5.75,13.5Z\";\nexport var mdiEthernet = \"M7,15H9V18H11V15H13V18H15V15H17V18H19V9H15V6H9V9H5V18H7V15M4.38,3H19.63C20.94,3 22,4.06 22,5.38V19.63A2.37,2.37 0 0,1 19.63,22H4.38C3.06,22 2,20.94 2,19.63V5.38C2,4.06 3.06,3 4.38,3Z\";\nexport var mdiEthernetCable = \"M11,3V7H13V3H11M8,4V11H16V4H14V8H10V4H8M10,12V22H14V12H10Z\";\nexport var mdiEthernetCableOff = \"M11,3H13V7H11V3M8,4H10V8H14V4H16V11H12.82L8,6.18V4M20,20.72L18.73,22L14,17.27V22H10V13.27L2,5.27L3.28,4L20,20.72Z\";\nexport var mdiEthernetOff = \"M2.39 1.73L1.11 3L2.32 4.21C2.12 4.56 2 4.95 2 5.38V19.63C2 20.94 3.06 22 4.38 22H19.63C19.78 22 19.92 22 20.07 21.96L20.84 22.73L22.11 21.46L2.39 1.73M15 18H13V15H11V18H9V15H7V18H5V9H7.11L15 16.89V18M9.2 6L6.2 3H19.63C20.94 3 22 4.06 22 5.38V18.8L19 15.8V9H15V6H9.2Z\";\nexport var mdiEvPlugCcs1 = \"M7.5 20C7.5 20.8 6.8 21.5 6 21.5S4.5 20.8 4.5 20 5.2 18.5 6 18.5 7.5 19.2 7.5 20M18 18.5C17.2 18.5 16.5 19.2 16.5 20S17.2 21.5 18 21.5 19.5 20.8 19.5 20 18.8 18.5 18 18.5M22 20C22 22.2 20.2 24 18 24H6C3.8 24 2 22.2 2 20S3.8 16 6 16H6.3C4.3 14.4 3 11.8 3 9C3 4 7 0 12 0S21 4 21 9C21 11.8 19.7 14.4 17.7 16H18C20.2 16 22 17.8 22 20M12 16C15.9 16 19 12.9 19 9S15.9 2 12 2 5 5.1 5 9 8.1 16 12 16M20 20C20 18.9 19.1 18 18 18H6C4.9 18 4 18.9 4 20S4.9 22 6 22H18C19.1 22 20 21.1 20 20M12.9 6.3C12.9 5.3 13.7 4.5 14.7 4.5S16.5 5.3 16.5 6.3 15.7 8.1 14.7 8.1 12.9 7.3 12.9 6.3M7.5 6.3C7.5 5.3 8.3 4.5 9.3 4.5S11.1 5.3 11.1 6.3 10.3 8.1 9.3 8.1 7.5 7.3 7.5 6.3M9.3 10.2C9.3 10.8 8.8 11.3 8.2 11.3C7.6 11.3 7.1 10.8 7.1 10.2S7.5 9 8.1 9C8.8 9 9.3 9.6 9.3 10.2M13.8 12.7C13.8 13.7 13 14.5 12 14.5S10.2 13.7 10.2 12.7 11 10.9 12 10.9 13.8 11.7 13.8 12.7M17 10.2C17 10.8 16.5 11.3 15.9 11.3C15.3 11.3 14.8 10.8 14.8 10.2S15.2 9 15.9 9C16.5 9 17 9.6 17 10.2\";\nexport var mdiEvPlugCcs2 = \"M7.5 19C7.5 19.8 6.8 20.5 6 20.5S4.5 19.8 4.5 19 5.2 17.5 6 17.5 7.5 18.2 7.5 19M18 17.5C17.2 17.5 16.5 18.2 16.5 19S17.2 20.5 18 20.5 19.5 19.8 19.5 19 18.8 17.5 18 17.5M18 15H17.7C19.7 13.4 21 10.8 21 8S19.7 2.6 17.7 1H6.3C4.3 2.6 3 5.2 3 8S4.3 13.4 6.3 15H6C3.8 15 2 16.8 2 19S3.8 23 6 23H18C20.2 23 22 21.2 22 19S20.2 15 18 15M5 8C5 6.1 5.8 4.3 7.1 3H16.9C18.2 4.3 19 6.1 19 8C19 11.9 15.9 15 12 15S5 11.9 5 8M18 21H6C4.9 21 4 20.1 4 19S4.9 17 6 17H18C19.1 17 20 17.9 20 19S19.1 21 18 21M12.9 5.3C12.9 6 13.5 6.6 14.2 6.6C14.9 6.6 15.5 6 15.5 5.3S14.9 4 14.1 4C13.4 4 12.9 4.6 12.9 5.3M8.6 5.3C8.6 6 9.2 6.6 9.9 6.6C10.6 6.6 11.2 6 11.2 5.3S10.6 4 9.9 4C9.1 4 8.6 4.6 8.6 5.3M7.7 10C8.7 10 9.4 9.2 9.4 8.3C9.4 7.4 8.6 6.6 7.7 6.6S6 7.3 6 8.3C6 9.2 6.8 10 7.7 10M11.6 11.7C11.6 10.8 10.8 10 9.9 10C8.9 10 8.2 10.8 8.2 11.7C8.2 12.7 9 13.4 9.9 13.4C10.8 13.4 11.6 12.7 11.6 11.7M12 10C13 10 13.7 9.2 13.7 8.3C13.7 7.4 12.9 6.6 12 6.6S10.3 7.4 10.3 8.3C10.3 9.2 11.1 10 12 10M15.9 11.7C15.9 10.8 15.1 10 14.2 10C13.2 10 12.5 10.8 12.5 11.7C12.5 12.7 13.3 13.4 14.2 13.4C15.1 13.4 15.9 12.7 15.9 11.7M18 8.3C18 7.4 17.2 6.6 16.3 6.6C15.3 6.6 14.6 7.4 14.6 8.3C14.6 9.3 15.4 10 16.3 10C17.2 10 18 9.2 18 8.3\";\nexport var mdiEvPlugChademo = \"M7.5 9.5C6.1 9.5 5 10.6 5 12S6.1 14.5 7.5 14.5 10 13.4 10 12 8.9 9.5 7.5 9.5M16.5 9.5C15.1 9.5 14 10.6 14 12S15.1 14.5 16.5 14.5 19 13.4 19 12 17.9 9.5 16.5 9.5M12 4C16.4 4 20 7.6 20 12S16.4 20 12 20 4 16.4 4 12 7.6 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 5C10.6 5 9.5 6.1 9.5 7.5S10.6 10 12 10 14.5 8.9 14.5 7.5 13.4 5 12 5M13.5 7.5C13.5 7.7 13.4 7.9 13.3 8.1L12.7 7.5L13.3 6.9C13.4 7.1 13.5 7.3 13.5 7.5M12.6 6.2L12 6.8L11.4 6.2C11.6 6.1 11.8 6 12 6S12.4 6.1 12.6 6.2M10.7 8.1C10.6 7.9 10.5 7.7 10.5 7.5S10.6 7.1 10.7 6.9L11.3 7.5L10.7 8.1M11.4 8.8L12 8.2L12.6 8.8C12.4 8.9 12.2 9 12 9S11.6 8.9 11.4 8.8M12 14C10.6 14 9.5 15.1 9.5 16.5S10.6 19 12 19 14.5 17.9 14.5 16.5 13.4 14 12 14M13.5 16.5C13.5 16.7 13.4 16.9 13.3 17.1L12.7 16.5L13.3 15.9C13.4 16.1 13.5 16.3 13.5 16.5M12.6 15.2L12 15.8L11.4 15.2C11.6 15.1 11.8 15 12 15S12.4 15.1 12.6 15.2M10.7 17.1C10.6 16.9 10.5 16.7 10.5 16.5S10.6 16.1 10.7 15.9L11.3 16.5L10.7 17.1M11.4 17.8L12 17.2L12.6 17.8C12.4 17.9 12.2 18 12 18S11.6 17.9 11.4 17.8Z\";\nexport var mdiEvPlugTesla = \"M6 9C6 8.45 6.45 8 7 8S8 8.45 8 9 7.55 10 7 10 6 9.55 6 9M17 10C17.55 10 18 9.55 18 9S17.55 8 17 8 16 8.45 16 9 16.45 10 17 10M22 9.93V11C22 15.97 17.97 20 13 20H11C6.03 20 2 16 2 11V9.93C2 6.65 4.65 4 7.93 4H16.07C19.35 4 22 6.65 22 9.93M14.5 9C14.5 10.38 15.62 11.5 17 11.5S19.5 10.38 19.5 9 18.38 6.5 17 6.5 14.5 7.62 14.5 9M4.5 9C4.5 10.38 5.62 11.5 7 11.5S9.5 10.38 9.5 9 8.38 6.5 7 6.5 4.5 7.62 4.5 9M9 17C9 16.45 8.55 16 8 16S7 16.45 7 17 7.45 18 8 18 9 17.55 9 17M13.5 17C13.5 16.17 12.83 15.5 12 15.5S10.5 16.17 10.5 17 11.17 18.5 12 18.5 13.5 17.83 13.5 17M17 17C17 16.45 16.55 16 16 16S15 16.45 15 17 15.45 18 16 18 17 17.55 17 17M19.97 11.66C19.23 12.5 18.18 13 17 13C14.79 13 13 11.21 13 9C13 7.8 13.54 6.73 14.38 6H9.62C10.46 6.73 11 7.8 11 9C11 11.21 9.21 13 7 13C5.82 13 4.76 12.5 4.03 11.66C4.19 13.32 4.93 14.82 6.04 15.94C7.71 14.73 9.76 14 12 14C14.24 14 16.29 14.73 17.96 15.94C19.07 14.82 19.81 13.32 19.97 11.66Z\";\nexport var mdiEvPlugType1 = \"M13 9C13 10.1 13.9 11 15 11S17 10.1 17 9 16.1 7 15 7 13 7.9 13 9M7 9C7 10.1 7.9 11 9 11S11 10.1 11 9 10.1 7 9 7 7 7.9 7 9M9 13.2C9 12.6 8.4 12 7.8 12S6.6 12.6 6.6 13.2 7.2 14.4 7.8 14.4 9 13.9 9 13.2M14 16C14 14.9 13.1 14 12 14S10 14.9 10 16 10.9 18 12 18 14 17.1 14 16M12 4C16.4 4 20 7.6 20 12S16.4 20 12 20 4 16.4 4 12 7.6 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M17.5 13.2C17.5 12.5 16.9 12 16.3 12C15.6 12 15.1 12.6 15.1 13.2S15.7 14.4 16.3 14.4C16.9 14.5 17.5 13.9 17.5 13.2\";\nexport var mdiEvPlugType2 = \"M17.3 5C19 6.5 20 8.6 20 11C20 15.4 16.4 19 12 19S4 15.4 4 11C4 8.6 5.1 6.5 6.7 5H17.3M18 3H6L5.4 3.5C3.2 5.4 2 8.1 2 11C2 16.5 6.5 21 12 21S22 16.5 22 11C22 8.1 20.8 5.4 18.6 3.5L18 3M13 7.5C13 8.3 13.7 9 14.5 9S16 8.3 16 7.5 15.3 6 14.5 6 13 6.7 13 7.5M8 7.5C8 8.3 8.7 9 9.5 9S11 8.3 11 7.5 10.3 6 9.5 6 8 6.7 8 7.5M7 13C8.1 13 9 12.1 9 11C9 9.9 8.1 9 7 9S5 9.9 5 11C5 12.1 5.9 13 7 13M11.5 15C11.5 13.9 10.6 13 9.5 13S7.5 13.9 7.5 15C7.5 16.1 8.4 17 9.5 17S11.5 16.1 11.5 15M12 13C13.1 13 14 12.1 14 11C14 9.9 13.1 9 12 9S10 9.9 10 11C10 12.1 10.9 13 12 13M16.5 15C16.5 13.9 15.6 13 14.5 13S12.5 13.9 12.5 15C12.5 16.1 13.4 17 14.5 17S16.5 16.1 16.5 15M19 11C19 9.9 18.1 9 17 9S15 9.9 15 11C15 12.1 15.9 13 17 13S19 12.1 19 11\";\nexport var mdiEvStation = \"M19.77,7.23L19.78,7.22L16.06,3.5L15,4.56L17.11,6.67C16.17,7.03 15.5,7.93 15.5,9A2.5,2.5 0 0,0 18,11.5C18.36,11.5 18.69,11.42 19,11.29V18.5A1,1 0 0,1 18,19.5A1,1 0 0,1 17,18.5V14A2,2 0 0,0 15,12H14V5A2,2 0 0,0 12,3H6A2,2 0 0,0 4,5V21H14V13.5H15.5V18.5A2.5,2.5 0 0,0 18,21A2.5,2.5 0 0,0 20.5,18.5V9C20.5,8.31 20.22,7.68 19.77,7.23M18,10A1,1 0 0,1 17,9A1,1 0 0,1 18,8A1,1 0 0,1 19,9A1,1 0 0,1 18,10M8,18V13.5H6L10,6V11H12L8,18Z\";\nexport var mdiEvernote = \"M15.09,11.63C15.09,11.63 15.28,10.35 16,10.35C16.76,10.35 17.78,12.06 17.78,12.06C17.78,12.06 15.46,11.63 15.09,11.63M19,4.69C18.64,4.09 16.83,3.41 15.89,3.41C14.96,3.41 13.5,3.41 13.5,3.41C13.5,3.41 12.7,2 10.88,2C9.05,2 9.17,2.81 9.17,3.5V6.32L8.34,7.19H4.5C4.5,7.19 3.44,7.91 3.44,9.44C3.44,11 3.92,16.35 7.13,16.85C10.93,17.43 11.58,15.67 11.58,15.46C11.58,14.56 11.6,13.21 11.6,13.21C11.6,13.21 12.71,15.33 14.39,15.33C16.07,15.33 17.04,16.3 17.04,17.29C17.04,18.28 17.04,19.13 17.04,19.13C17.04,19.13 17,20.28 16,20.28C15,20.28 13.89,20.28 13.89,20.28C13.89,20.28 13.2,19.74 13.2,19C13.2,18.25 13.53,18.05 13.93,18.05C14.32,18.05 14.65,18.09 14.65,18.09V16.53C14.65,16.53 11.47,16.5 11.47,18.94C11.47,21.37 13.13,22 14.46,22C15.8,22 16.63,22 16.63,22C16.63,22 20.56,21.5 20.56,13.75C20.56,6 19.33,5.28 19,4.69M7.5,6.31H4.26L8.32,2.22V5.5L7.5,6.31Z\";\nexport var mdiExcavator = \"M18.5 18.5C19.04 18.5 19.5 18.96 19.5 19.5S19.04 20.5 18.5 20.5H6.5C5.96 20.5 5.5 20.04 5.5 19.5S5.96 18.5 6.5 18.5H18.5M18.5 17H6.5C5.13 17 4 18.13 4 19.5S5.13 22 6.5 22H18.5C19.88 22 21 20.88 21 19.5S19.88 17 18.5 17M21 11H18V7H13L10 11V16H22L21 11M11.54 11L13.5 8.5H16V11H11.54M9.76 3.41L4.76 2L2 11.83C1.66 13.11 2.41 14.44 3.7 14.8L4.86 15.12L8.15 12.29L4.27 11.21L6.15 4.46L8.94 5.24C9.5 5.53 10.71 6.34 11.47 7.37L12.5 6H12.94C11.68 4.41 9.85 3.46 9.76 3.41Z\";\nexport var mdiExclamation = \"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\";\nexport var mdiExclamationThick = \"M10 3H14V14H10V3M10 21V17H14V21H10Z\";\nexport var mdiExitRun = \"M13.34,8.17C12.41,8.17 11.65,7.4 11.65,6.47A1.69,1.69 0 0,1 13.34,4.78C14.28,4.78 15.04,5.54 15.04,6.47C15.04,7.4 14.28,8.17 13.34,8.17M10.3,19.93L4.37,18.75L4.71,17.05L8.86,17.9L10.21,11.04L8.69,11.64V14.5H7V10.54L11.4,8.67L12.07,8.59C12.67,8.59 13.17,8.93 13.5,9.44L14.36,10.79C15.04,12 16.39,12.82 18,12.82V14.5C16.14,14.5 14.44,13.67 13.34,12.4L12.84,14.94L14.61,16.63V23H12.92V17.9L11.14,16.21L10.3,19.93M21,23H19V3H6V16.11L4,15.69V1H21V23M6,23H4V19.78L6,20.2V23Z\";\nexport var mdiExitToApp = \"M19,3H5C3.89,3 3,3.89 3,5V9H5V5H19V19H5V15H3V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M10.08,15.58L11.5,17L16.5,12L11.5,7L10.08,8.41L12.67,11H3V13H12.67L10.08,15.58Z\";\nexport var mdiExpandAll = \"M18,8H8V18H6V8A2,2 0 0,1 8,6H18V8M14,2H4A2,2 0 0,0 2,4V14H4V4H14V2M22,12V20A2,2 0 0,1 20,22H12A2,2 0 0,1 10,20V12A2,2 0 0,1 12,10H20A2,2 0 0,1 22,12M20,15H17V12H15V15H12V17H15V20H17V17H20V15Z\";\nexport var mdiExpandAllOutline = \"M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H17V19H15V17H13V15H15V13H17V15H19V17Z\";\nexport var mdiExpansionCard = \"M2,7V8.5H3V17H4.5V7C3.7,7 2.8,7 2,7M6,7V7L6,16H7V17H14V16H22V7H6M17.5,9A2.5,2.5 0 0,1 20,11.5A2.5,2.5 0 0,1 17.5,14A2.5,2.5 0 0,1 15,11.5A2.5,2.5 0 0,1 17.5,9Z\";\nexport var mdiExpansionCardVariant = \"M2 7H4.5V17H3V8.5H2M22 7V16H14V17H7V16H6V7M10 9H8V12H10M13 9H11V12H13M20 9H15V14H20V9Z\";\nexport var mdiExponent = \"M15.38,3L17.77,8.75C17.55,9.68 17.27,10.32 17,10.7C16.67,11.18 16.44,11.25 16.19,11.25V12.75C16.94,12.75 17.74,12.35 18.24,11.56C19.87,8.94 22,3 22,3H20.38L18.69,7.05L17,3H15.38M3.42,8.59L2,10L6.79,14.79L2,19.59L3.41,21L8.21,16.21L13,21L14.41,19.59L9.62,14.79L14.41,10L13,8.59L8.21,13.38L3.41,8.59H3.42Z\";\nexport var mdiExponentBox = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M13.76,6H15.39L16.5,8.6L17.59,6H19.24C19.24,6 17.5,10.57 16.46,12.32C16.08,12.89 15.35,13.27 14.5,13.25V11.75C14.96,11.76 15.25,11.5 15.5,11.13C15.61,11 15.68,10.8 15.74,10.64L13.76,6M6.41,9.59L9.21,12.38L12,9.59L13.41,11L10.62,13.79L13.41,16.59L12,18L9.21,15.21L6.41,18L5,16.59L7.79,13.79L5,11L6.41,9.59Z\";\nexport var mdiExport = \"M23,12L19,8V11H10V13H19V16M1,18V6C1,4.89 1.9,4 3,4H15A2,2 0 0,1 17,6V9H15V6H3V18H15V15H17V18A2,2 0 0,1 15,20H3A2,2 0 0,1 1,18Z\";\nexport var mdiExportVariant = \"M12,1L8,5H11V14H13V5H16M18,23H6C4.89,23 4,22.1 4,21V9A2,2 0 0,1 6,7H9V9H6V21H18V9H15V7H18A2,2 0 0,1 20,9V21A2,2 0 0,1 18,23Z\";\nexport var mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nexport var mdiEyeArrowLeft = \"M12 4.5C7 4.5 2.73 7.61 1 12C2.73 16.39 7 19.5 12 19.5C12.36 19.5 12.72 19.5 13.08 19.45C13.03 19.13 13 18.82 13 18.5C13 17.94 13.08 17.38 13.24 16.84C12.83 16.94 12.42 17 12 17C9.24 17 7 14.76 7 12S9.24 7 12 7 17 9.24 17 12C17 12.29 16.97 12.59 16.92 12.88C17.58 12.63 18.29 12.5 19 12.5C20.17 12.5 21.31 12.84 22.29 13.5C22.56 13 22.8 12.5 23 12C21.27 7.61 17 4.5 12 4.5M12 9C10.34 9 9 10.34 9 12S10.34 15 12 15 15 13.66 15 12 13.66 9 12 9M18 15V17H22V19H18V21L15 18L18 15\";\nexport var mdiEyeArrowLeftOutline = \"M12 4.5C7 4.5 2.73 7.61 1 12C2.73 16.39 7 19.5 12 19.5C12.36 19.5 12.72 19.5 13.08 19.45C13.03 19.13 13 18.82 13 18.5C13 18.14 13.04 17.78 13.1 17.42C12.74 17.46 12.37 17.5 12 17.5C8.24 17.5 4.83 15.36 3.18 12C4.83 8.64 8.24 6.5 12 6.5S19.17 8.64 20.82 12C20.7 12.24 20.56 12.45 20.43 12.68C21.09 12.84 21.72 13.11 22.29 13.5C22.56 13 22.8 12.5 23 12C21.27 7.61 17 4.5 12 4.5M12 9C10.34 9 9 10.34 9 12S10.34 15 12 15 15 13.66 15 12 13.66 9 12 9M18 15V17H22V19H18V21L15 18L18 15\";\nexport var mdiEyeArrowRight = \"M12 4.5C7 4.5 2.7 7.6 1 12C2.7 16.4 7 19.5 12 19.5H13.1C13 19.2 13 18.9 13 18.5C13 17.9 13.1 17.4 13.2 16.8C12.8 16.9 12.4 17 12 17C9.2 17 7 14.8 7 12S9.2 7 12 7 17 9.2 17 12C17 12.3 17 12.6 16.9 12.9C17.6 12.7 18.3 12.5 19 12.5C20.2 12.5 21.3 12.8 22.3 13.5C22.6 13 22.8 12.5 23 12C21.3 7.6 17 4.5 12 4.5M12 9C10.3 9 9 10.3 9 12S10.3 15 12 15 15 13.7 15 12 13.7 9 12 9M19 21V19H15V17H19V15L22 18L19 21\";\nexport var mdiEyeArrowRightOutline = \"M12 4.5C7 4.5 2.7 7.6 1 12C2.7 16.4 7 19.5 12 19.5H13.1C13 19.2 13 18.9 13 18.5C13 18.1 13 17.8 13.1 17.4C12.7 17.4 12.4 17.5 12 17.5C8.2 17.5 4.8 15.4 3.2 12C4.8 8.6 8.2 6.5 12 6.5S19.2 8.6 20.8 12C20.7 12.2 20.5 12.4 20.4 12.7C21.1 12.9 21.7 13.1 22.3 13.5C22.6 13 22.8 12.5 23 12C21.3 7.6 17 4.5 12 4.5M12 9C10.3 9 9 10.3 9 12S10.3 15 12 15 15 13.7 15 12 13.7 9 12 9M19 21V19H15V17H19V15L22 18L19 21\";\nexport var mdiEyeCheck = \"M23.5,17L18.5,22L15,18.5L16.5,17L18.5,19L22,15.5L23.5,17M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,17C12.5,17 12.97,16.93 13.42,16.79C13.15,17.5 13,18.22 13,19V19.45L12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5C17,4.5 21.27,7.61 23,12C22.75,12.64 22.44,13.26 22.08,13.85C21.18,13.31 20.12,13 19,13C18.22,13 17.5,13.15 16.79,13.42C16.93,12.97 17,12.5 17,12A5,5 0 0,0 12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17Z\";\nexport var mdiEyeCheckOutline = \"M23.5,17L18.5,22L15,18.5L16.5,17L18.5,19L22,15.5L23.5,17M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.75,12.65 22.44,13.26 22.08,13.85C21.5,13.5 20.86,13.25 20.18,13.12L20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12C4.83,15.36 8.24,17.5 12,17.5L13.21,17.43C13.07,17.93 13,18.46 13,19V19.46L12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5Z\";\nexport var mdiEyeCircle = \"M12,9.5A2.5,2.5 0 0,0 9.5,12A2.5,2.5 0 0,0 12,14.5A2.5,2.5 0 0,0 14.5,12A2.5,2.5 0 0,0 12,9.5M12,13A1,1 0 0,1 11,12A1,1 0 0,1 12,11A1,1 0 0,1 13,12A1,1 0 0,1 12,13M12,9.5A2.5,2.5 0 0,0 9.5,12A2.5,2.5 0 0,0 12,14.5A2.5,2.5 0 0,0 14.5,12A2.5,2.5 0 0,0 12,9.5M12,13A1,1 0 0,1 11,12A1,1 0 0,1 12,11A1,1 0 0,1 13,12A1,1 0 0,1 12,13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,16C9.37,16 7,14.43 6,12C7.38,8.69 11.19,7.12 14.5,8.5C16.08,9.16 17.34,10.42 18,12C17,14.43 14.63,16 12,16M12,9.5A2.5,2.5 0 0,0 9.5,12A2.5,2.5 0 0,0 12,14.5A2.5,2.5 0 0,0 14.5,12A2.5,2.5 0 0,0 12,9.5M12,13A1,1 0 0,1 11,12A1,1 0 0,1 12,11A1,1 0 0,1 13,12A1,1 0 0,1 12,13Z\";\nexport var mdiEyeCircleOutline = \"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,11A1,1 0 0,1 13,12A1,1 0 0,1 12,13A1,1 0 0,1 11,12A1,1 0 0,1 12,11M12,8C14.63,8 17,9.57 18,12C16.62,15.31 12.81,16.88 9.5,15.5C7.92,14.84 6.66,13.58 6,12C7,9.57 9.37,8 12,8M12,9.5A2.5,2.5 0 0,0 9.5,12A2.5,2.5 0 0,0 12,14.5A2.5,2.5 0 0,0 14.5,12A2.5,2.5 0 0,0 12,9.5\";\nexport var mdiEyeClosed = \"M12 17.5C8.2 17.5 4.8 15.4 3.2 12H1C2.7 16.4 7 19.5 12 19.5S21.3 16.4 23 12H20.8C19.2 15.4 15.8 17.5 12 17.5Z\";\nexport var mdiEyeLock = \"M20.8 17V15.5C20.8 14.1 19.4 13 18 13S15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2S19.5 14.7 19.5 15.5V17M15 12C14.1 12.7 13.5 13.6 13.3 14.7C12.9 14.9 12.5 15 12 15C10.3 15 9 13.7 9 12S10.3 9 12 9 15 10.3 15 12M12 19.5C7 19.5 2.7 16.4 1 12C2.7 7.6 7 4.5 12 4.5S21.3 7.6 23 12C22.8 12.5 22.5 13 22.3 13.5C21.5 12 19.8 11 18 11C17.6 11 17.3 11.1 16.9 11.1C16.5 8.8 14.5 7 12 7C9.2 7 7 9.2 7 12S9.2 17 12 17H12.3C12.1 17.4 12 17.8 12 18.2V19.5Z\";\nexport var mdiEyeLockOpen = \"M14.9 11.1C13.9 11.9 13.2 13.1 13.2 14.5V14.7C12.8 14.9 12.4 15 12 15C10.3 15 9 13.7 9 12S10.3 9 12 9C13.4 9 14.5 9.9 14.9 11.1M12 18.2C12 17.8 12.1 17.4 12.3 17H12C9.2 17 7 14.8 7 12S9.2 7 12 7C14.1 7 15.9 8.3 16.7 10.2C17.1 10.1 17.6 10 18 10C20.1 10 21.9 11.3 22.5 13.1C22.7 12.8 22.8 12.4 23 12C21.3 7.6 17 4.5 12 4.5S2.7 7.6 1 12C2.7 16.4 7 19.5 12 19.5V18.2M20.8 17H16.5V14.5C16.5 13.7 17.2 13.2 18 13.2S19.5 13.7 19.5 14.5V15H20.8V14.5C20.8 13.1 19.4 12 18 12S15.2 13.1 15.2 14.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17Z\";\nexport var mdiEyeLockOpenOutline = \"M12 19.5C7 19.5 2.7 16.4 1 12C2.7 7.6 7 4.5 12 4.5S21.3 7.6 23 12C22.9 12.4 22.7 12.7 22.5 13.1C22 11.9 21 10.9 19.7 10.4C17.9 8 15.1 6.5 12 6.5C8.2 6.5 4.8 8.6 3.2 12C4.9 15.4 8.3 17.5 12 17.5H12.1C12 17.7 12 18 12 18.2V19.5M12 9C10.3 9 9 10.3 9 12S10.3 15 12 15C12.4 15 12.8 14.9 13.2 14.7V14.5C13.2 13.2 13.9 12 14.9 11.1C14.5 9.9 13.4 9 12 9M20.8 17H16.5V14.5C16.5 13.7 17.2 13.2 18 13.2S19.5 13.7 19.5 14.5V15H20.8V14.5C20.8 13.1 19.4 12 18 12S15.2 13.1 15.2 14.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17Z\";\nexport var mdiEyeLockOutline = \"M20.8 17V15.5C20.8 14.1 19.4 13 18 13S15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17M19.5 17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2S19.5 14.7 19.5 15.5V17M15 12C14.1 12.7 13.5 13.6 13.3 14.7C12.9 14.9 12.5 15 12 15C10.3 15 9 13.7 9 12S10.3 9 12 9 15 10.3 15 12M12 19.5C7 19.5 2.7 16.4 1 12C2.7 7.6 7 4.5 12 4.5S21.3 7.6 23 12C22.8 12.5 22.5 13 22.3 13.5C21.9 12.8 21.4 12.2 20.7 11.8C19 8.5 15.7 6.5 12 6.5C8.2 6.5 4.8 8.6 3.2 12C4.9 15.4 8.3 17.5 12 17.5H12.1C12 17.7 12 18 12 18.2V19.5Z\";\nexport var mdiEyeMinus = \"M12 4.5A11.8 11.8 0 0 0 1 12A11.8 11.8 0 0 0 12 19.5H13.1A3.8 3.8 0 0 1 13 18.5A9.9 9.9 0 0 1 13.2 16.8L12 17A5 5 0 1 1 17 12A2.8 2.8 0 0 1 16.9 12.9A5.2 5.2 0 0 1 19 12.5A5.6 5.6 0 0 1 22.3 13.5A10.1 10.1 0 0 0 23 12A11.8 11.8 0 0 0 12 4.5M12 9A3 3 0 1 0 15 12A2.9 2.9 0 0 0 12 9M15 17.5V19.5H23V17.5Z\";\nexport var mdiEyeMinusOutline = \"M12 4.5A11.8 11.8 0 0 0 1 12A11.8 11.8 0 0 0 12 19.5H13.1A3.8 3.8 0 0 1 13 18.5A4.1 4.1 0 0 1 13.1 17.4H12A9.6 9.6 0 0 1 3.2 12A9.6 9.6 0 0 1 12 6.5A9.6 9.6 0 0 1 20.8 12L20.4 12.7A4.6 4.6 0 0 1 22.3 13.5A10.1 10.1 0 0 0 23 12A11.8 11.8 0 0 0 12 4.5M12 9A3 3 0 1 0 15 12A2.9 2.9 0 0 0 12 9M15 17.5V19.5H23V17.5Z\";\nexport var mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nexport var mdiEyeOffOutline = \"M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z\";\nexport var mdiEyeOutline = \"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\";\nexport var mdiEyePlus = \"M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C12.36,19.5 12.72,19.5 13.08,19.45C13.03,19.13 13,18.82 13,18.5C13,17.94 13.08,17.38 13.24,16.84C12.83,16.94 12.42,17 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12C17,12.29 16.97,12.59 16.92,12.88C17.58,12.63 18.29,12.5 19,12.5C20.17,12.5 21.31,12.84 22.29,13.5C22.56,13 22.8,12.5 23,12C21.27,7.61 17,4.5 12,4.5M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M18,14.5V17.5H15V19.5H18V22.5H20V19.5H23V17.5H20V14.5H18Z\";\nexport var mdiEyePlusOutline = \"M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C12.36,19.5 12.72,19.5 13.08,19.45C13.03,19.13 13,18.82 13,18.5C13,18.14 13.04,17.78 13.1,17.42C12.74,17.46 12.37,17.5 12,17.5C8.24,17.5 4.83,15.36 3.18,12C4.83,8.64 8.24,6.5 12,6.5C15.76,6.5 19.17,8.64 20.82,12C20.7,12.24 20.56,12.45 20.43,12.68C21.09,12.84 21.72,13.11 22.29,13.5C22.56,13 22.8,12.5 23,12C21.27,7.61 17,4.5 12,4.5M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M18,14.5V17.5H15V19.5H18V22.5H20V19.5H23V17.5H20V14.5H18Z\";\nexport var mdiEyeRefresh = \"M12 9C10.3 9 9 10.3 9 12S10.3 15 12 15 15 13.7 15 12 13.7 9 12 9M18 18.5L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18M12.1 19.5C12.1 19.5 12 19.5 12.1 19.5C7 19.5 2.7 16.4 1 12C2.7 7.6 7 4.5 12 4.5S21.3 7.6 23 12C22.8 12.4 22.6 12.9 22.4 13.3C21.3 12.5 20 12 18.5 12C18 12 17.5 12.1 17 12.2V12C17 9.2 14.8 7 12 7S7 9.2 7 12 9.2 17 12 17H12.2C12.1 17.5 12 18 12 18.5C12 18.8 12 19.2 12.1 19.5Z\";\nexport var mdiEyeRefreshOutline = \"M12 9C13.7 9 15 10.3 15 12S13.7 15 12 15 9 13.7 9 12 10.3 9 12 9M18 18.5L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18M12 18.5C12 18.2 12 17.8 12.1 17.5H12C8.2 17.5 4.8 15.4 3.2 12C4.8 8.6 8.2 6.5 12 6.5S19.2 8.6 20.8 12C20.7 12.1 20.7 12.2 20.6 12.4C21.2 12.6 21.8 12.9 22.4 13.3C22.6 12.9 22.8 12.4 23 12C21.3 7.6 17 4.5 12 4.5S2.7 7.6 1 12C2.7 16.4 7 19.5 12 19.5H12.1C12 19.2 12 18.8 12 18.5Z\";\nexport var mdiEyeRemove = \"M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88M12 9C10.34 9 9 10.34 9 12S10.34 15 12 15 15 13.66 15 12 13.66 9 12 9M12 17C9.24 17 7 14.76 7 12S9.24 7 12 7 17 9.24 17 12C17 12.5 16.9 13 16.77 13.43C17.46 13.16 18.21 13 19 13C20.12 13 21.17 13.32 22.07 13.85C22.43 13.27 22.74 12.65 23 12C21.27 7.61 17 4.5 12 4.5S2.73 7.61 1 12C2.73 16.39 7 19.5 12 19.5C12.35 19.5 12.69 19.5 13.03 19.45C13 19.3 13 19.15 13 19C13 18.21 13.16 17.46 13.43 16.77C13 16.9 12.5 17 12 17Z\";\nexport var mdiEyeRemoveOutline = \"M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88M12 9C10.34 9 9 10.34 9 12S10.34 15 12 15 15 13.66 15 12 13.66 9 12 9M12 17.5C8.24 17.5 4.83 15.36 3.18 12C4.83 8.64 8.24 6.5 12 6.5S19.17 8.64 20.82 12C20.63 12.39 20.41 12.77 20.17 13.13C20.85 13.26 21.5 13.5 22.07 13.85C22.43 13.27 22.74 12.65 23 12C21.27 7.61 17 4.5 12 4.5S2.73 7.61 1 12C2.73 16.39 7 19.5 12 19.5C12.35 19.5 12.69 19.5 13.03 19.45C13 19.3 13 19.15 13 19C13 18.45 13.08 17.92 13.22 17.41C12.82 17.46 12.41 17.5 12 17.5Z\";\nexport var mdiEyeSettings = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7.14,4.5 2.78,7.5 1,12C3.39,18.08 10.25,21.06 16.33,18.67C19.38,17.47 21.8,15.06 23,12C21.22,7.5 16.86,4.5 12,4.5M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiEyeSettingsOutline = \"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C16.86,4.5 21.22,7.5 23,12C20.61,18.08 13.75,21.06 7.67,18.67C4.62,17.47 2.2,15.06 1,12C2.78,7.5 7.14,4.5 12,4.5M3.18,12C5.56,16.87 11.45,18.89 16.32,16.5C18.28,15.54 19.86,13.96 20.82,12C18.44,7.13 12.55,5.11 7.68,7.5C5.72,8.46 4.14,10.04 3.18,12M9,22H7V24H9V22M13,22H11V24H13V22M17,22H15V24H17V22Z\";\nexport var mdiEyedropper = \"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z\";\nexport var mdiEyedropperMinus = \"M19.35 11.72L17.22 13.85L15.81 12.43L8.1 20.14L3.5 22L2 20.5L3.86 15.9L11.57 8.19L10.15 6.78L12.28 4.65L19.35 11.72M16.76 3C17.93 1.83 19.83 1.83 21 3S22.17 6.07 21 7.24L19.08 9.16L14.84 4.92L16.76 3M5.56 17.03L4.5 19.5L6.97 18.44L14.4 11L13 9.6L5.56 17.03M9 4V6H1V4H9Z\";\nexport var mdiEyedropperOff = \"M21 7.24L19.08 9.16L14.84 4.92L16.76 3C17.93 1.83 19.83 1.83 21 3S22.17 6.07 21 7.24M10.94 8.82L12.36 10.24L13 9.6L14.4 11L13.76 11.64L15.18 13.06L15.81 12.43L17.22 13.85L19.35 11.72L12.28 4.65L10.15 6.78L11.57 8.19L10.94 8.82M19.86 20.29L18.58 21.57L12.63 15.61L8.1 20.14L3.5 22L2 20.5L3.86 15.9L8.39 11.37L1.86 4.85L3.14 3.57L19.86 20.29M11.21 14.2L9.81 12.79L5.56 17.03L4.5 19.5L6.97 18.44L11.21 14.2Z\";\nexport var mdiEyedropperPlus = \"M19.35 11.72L17.22 13.85L15.81 12.43L8.1 20.14L3.5 22L2 20.5L3.86 15.9L11.57 8.19L10.15 6.78L12.28 4.65L19.35 11.72M16.76 3C17.93 1.83 19.83 1.83 21 3S22.17 6.07 21 7.24L19.08 9.16L14.84 4.92L16.76 3M5.56 17.03L4.5 19.5L6.97 18.44L14.4 11L13 9.6L5.56 17.03M6 1V4H9V6H6V9H4V6H1V4H4V1H6Z\";\nexport var mdiEyedropperRemove = \"M19.35 11.72L17.22 13.85L15.81 12.43L8.1 20.14L3.5 22L2 20.5L3.86 15.9L11.57 8.19L10.15 6.78L12.28 4.65L19.35 11.72M16.76 3C17.93 1.83 19.83 1.83 21 3S22.17 6.07 21 7.24L19.08 9.16L14.84 4.92L16.76 3M5.56 17.03L4.5 19.5L6.97 18.44L14.4 11L13 9.6L5.56 17.03M8.54 2.88L6.41 5L8.54 7.12L7.12 8.54L5 6.41L2.88 8.54L1.46 7.12L3.59 5L1.46 2.88L2.88 1.47L5 3.59L7.12 1.47L8.54 2.88Z\";\nexport var mdiEyedropperVariant = \"M6.92,19L5,17.08L13.06,9L15,10.94M20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L13.84,6.41L11.91,4.5L10.5,5.91L11.92,7.33L3,16.25V21H7.75L16.67,12.08L18.09,13.5L19.5,12.09L17.58,10.17L20.7,7.05C21.1,6.65 21.1,6 20.71,5.63Z\";\nexport var mdiFaceAgent = \"M18.72,14.76C19.07,13.91 19.26,13 19.26,12C19.26,11.28 19.15,10.59 18.96,9.95C18.31,10.1 17.63,10.18 16.92,10.18C13.86,10.18 11.15,8.67 9.5,6.34C8.61,8.5 6.91,10.26 4.77,11.22C4.73,11.47 4.73,11.74 4.73,12A7.27,7.27 0 0,0 12,19.27C13.05,19.27 14.06,19.04 14.97,18.63C15.54,19.72 15.8,20.26 15.78,20.26C14.14,20.81 12.87,21.08 12,21.08C9.58,21.08 7.27,20.13 5.57,18.42C4.53,17.38 3.76,16.11 3.33,14.73H2V10.18H3.09C3.93,6.04 7.6,2.92 12,2.92C14.4,2.92 16.71,3.87 18.42,5.58C19.69,6.84 20.54,8.45 20.89,10.18H22V14.67H22V14.69L22,14.73H21.94L18.38,18L13.08,17.4V15.73H17.91L18.72,14.76M9.27,11.77C9.57,11.77 9.86,11.89 10.07,12.11C10.28,12.32 10.4,12.61 10.4,12.91C10.4,13.21 10.28,13.5 10.07,13.71C9.86,13.92 9.57,14.04 9.27,14.04C8.64,14.04 8.13,13.54 8.13,12.91C8.13,12.28 8.64,11.77 9.27,11.77M14.72,11.77C15.35,11.77 15.85,12.28 15.85,12.91C15.85,13.54 15.35,14.04 14.72,14.04C14.09,14.04 13.58,13.54 13.58,12.91A1.14,1.14 0 0,1 14.72,11.77Z\";\nexport var mdiFaceMan = \"M9,11.75A1.25,1.25 0 0,0 7.75,13A1.25,1.25 0 0,0 9,14.25A1.25,1.25 0 0,0 10.25,13A1.25,1.25 0 0,0 9,11.75M15,11.75A1.25,1.25 0 0,0 13.75,13A1.25,1.25 0 0,0 15,14.25A1.25,1.25 0 0,0 16.25,13A1.25,1.25 0 0,0 15,11.75M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,11.71 4,11.42 4.05,11.14C6.41,10.09 8.28,8.16 9.26,5.77C11.07,8.33 14.05,10 17.42,10C18.2,10 18.95,9.91 19.67,9.74C19.88,10.45 20,11.21 20,12C20,16.41 16.41,20 12,20Z\";\nexport var mdiFaceManOutline = \"M10.25,13A1.25,1.25 0 0,1 9,14.25A1.25,1.25 0 0,1 7.75,13A1.25,1.25 0 0,1 9,11.75A1.25,1.25 0 0,1 10.25,13M15,11.75A1.25,1.25 0 0,0 13.75,13A1.25,1.25 0 0,0 15,14.25A1.25,1.25 0 0,0 16.25,13A1.25,1.25 0 0,0 15,11.75M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10.66,4.12C12.06,6.44 14.6,8 17.5,8C17.96,8 18.41,7.95 18.84,7.88C17.44,5.56 14.9,4 12,4C11.54,4 11.09,4.05 10.66,4.12M4.42,9.47C6.13,8.5 7.45,6.92 8.08,5.03C6.37,6 5.05,7.58 4.42,9.47M20,12C20,11.22 19.88,10.47 19.67,9.76C18.97,9.91 18.25,10 17.5,10C14.37,10 11.58,8.56 9.74,6.31C8.69,8.87 6.6,10.88 4,11.86C4,11.9 4,11.95 4,12C4,16.41 7.59,20 12,20C16.41,20 20,16.41 20,12Z\";\nexport var mdiFaceManProfile = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,8.39C13.57,9.4 15.42,10 17.42,10C18.2,10 18.95,9.91 19.67,9.74C19.88,10.45 20,11.21 20,12C20,16.41 16.41,20 12,20C9,20 6.39,18.34 5,15.89L6.75,14V13A1.25,1.25 0 0,1 8,11.75A1.25,1.25 0 0,1 9.25,13V14H12M16,11.75A1.25,1.25 0 0,0 14.75,13A1.25,1.25 0 0,0 16,14.25A1.25,1.25 0 0,0 17.25,13A1.25,1.25 0 0,0 16,11.75Z\";\nexport var mdiFaceManShimmer = \"M18.41 3.41L16 4.5L18.41 5.59L19.5 8L20.6 5.59L23 4.5L20.6 3.41L19.5 1M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 10.53 21.67 9.13 21.1 7.87L19.86 10.59C19.94 11.05 20 11.5 20 12C20 16.43 16.43 20 12 20C7.57 20 4 16.43 4 12C4 11.96 4 11.91 4 11.87A10 10 0 0 0 9.74 6.31A10 10 0 0 0 17.5 10A10 10 0 0 0 18.83 9.91L17.35 6.65L12.6 4.5L16.13 2.9C14.87 2.33 13.47 2 12 2M9 11.75A1.25 1.25 0 0 0 7.75 13A1.25 1.25 0 0 0 9 14.25A1.25 1.25 0 0 0 10.25 13A1.25 1.25 0 0 0 9 11.75M15 11.75A1.25 1.25 0 0 0 13.75 13A1.25 1.25 0 0 0 15 14.25A1.25 1.25 0 0 0 16.25 13A1.25 1.25 0 0 0 15 11.75Z\";\nexport var mdiFaceManShimmerOutline = \"M19.5 1L18.41 3.41L16 4.5L18.41 5.59L19.5 8L20.6 5.59L23 4.5L20.6 3.41L19.5 1M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 10.53 21.67 9.13 21.1 7.87L19.86 10.57C19.95 11.04 20 11.5 20 12C20 16.43 16.43 20 12 20C7.57 20 4 16.43 4 12C4 11.95 4 11.91 4 11.86A10 10 0 0 0 9.74 6.31C11.61 8.61 14.44 10 17.5 10C17.94 10 18.39 9.97 18.83 9.91L17.96 8C17.81 8 17.65 8 17.5 8C14.68 8 12.1 6.5 10.66 4.12C11.1 4.05 11.54 4 12 4C12.5 4 12.96 4.05 13.42 4.13L16.13 2.91C14.87 2.33 13.47 2 12 2M8.09 5A8 8 0 0 1 4.41 9.5C5.04 7.57 6.37 6 8.09 5M9 11.75A1.25 1.25 0 0 0 7.75 13A1.25 1.25 0 0 0 9 14.25A1.25 1.25 0 0 0 10.25 13A1.25 1.25 0 0 0 9 11.75M15 11.75A1.25 1.25 0 0 0 13.75 13A1.25 1.25 0 0 0 15 14.25A1.25 1.25 0 0 0 16.25 13A1.25 1.25 0 0 0 15 11.75Z\";\nexport var mdiFaceMask = \"M20.25 6C18.79 6 17.61 7.14 17.5 8.58L12.55 7.16C12.19 7.05 11.81 7.05 11.45 7.16L6.5 8.58C6.39 7.14 5.21 6 3.75 6C2.23 6 1 7.23 1 8.75V12.25C1 13.77 2.23 15 3.75 15H5.68C6.81 17.36 9.21 19 12 19S17.19 17.36 18.32 15H20.25C21.77 15 23 13.77 23 12.25V8.75C23 7.23 21.77 6 20.25 6M5 13.5H3.75C3.06 13.5 2.5 12.94 2.5 12.25V8.75C2.5 8.06 3.06 7.5 3.75 7.5S5 8.06 5 8.75V13.5M15 12L12.4 11.3C12.1 11.2 11.8 11.2 11.6 11.3L9 12V11L11.3 10.3C11.7 10.2 12.2 10.2 12.7 10.3L15 11V12M21.5 12.25C21.5 12.94 20.94 13.5 20.25 13.5H19V8.75C19 8.06 19.56 7.5 20.25 7.5S21.5 8.06 21.5 8.75V12.25Z\";\nexport var mdiFaceMaskOutline = \"M15 12L12.4 11.3C12.1 11.2 11.8 11.2 11.6 11.3L9 12V11L11.3 10.3C11.7 10.2 12.2 10.2 12.7 10.3L15 11V12M20.25 6C18.79 6 17.61 7.14 17.5 8.58L12.55 7.16C12.37 7.11 12.19 7.08 12 7.08C11.82 7.08 11.63 7.11 11.45 7.16L6.5 8.58C6.39 7.14 5.21 6 3.75 6C2.23 6 1 7.23 1 8.75V12.25C1 13.77 2.23 15 3.75 15H5.68C6.81 17.36 9.21 19 12 19S17.19 17.36 18.32 15H20.25C21.77 15 23 13.77 23 12.25V8.75C23 7.23 21.77 6 20.25 6M5 13.5H3.75C3.06 13.5 2.5 12.94 2.5 12.25V8.75C2.5 8.06 3.06 7.5 3.75 7.5S5 8.06 5 8.75V13.5M17 12C17 14.76 14.76 17 12 17S7 14.76 7 12L7 10.5L12 9.08H12L17 10.5V12M21.5 12.25C21.5 12.94 20.94 13.5 20.25 13.5H19V8.75C19 8.06 19.56 7.5 20.25 7.5S21.5 8.06 21.5 8.75V12.25Z\";\nexport var mdiFaceRecognition = \"M9,11.75A1.25,1.25 0 0,0 7.75,13A1.25,1.25 0 0,0 9,14.25A1.25,1.25 0 0,0 10.25,13A1.25,1.25 0 0,0 9,11.75M15,11.75A1.25,1.25 0 0,0 13.75,13A1.25,1.25 0 0,0 15,14.25A1.25,1.25 0 0,0 16.25,13A1.25,1.25 0 0,0 15,11.75M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12C3.97,11.71 3.97,11.43 4,11.14C6.38,10.1 8.27,8.17 9.26,5.77C11.13,8.42 14.17,10 17.42,10C18.18,10 18.93,9.91 19.67,9.74C20.92,14 18.5,18.43 14.26,19.67C13.5,19.89 12.76,20 12,20M0,2A2,2 0 0,1 2,0H6V2H2V6H0V2M24,22A2,2 0 0,1 22,24H18V22H22V18H24V22M2,24A2,2 0 0,1 0,22V18H2V22H6V24H2M22,0A2,2 0 0,1 24,2V6H22V2H18V0H22Z\";\nexport var mdiFaceWoman = \"M13.75 13C13.75 12.31 14.31 11.75 15 11.75S16.25 12.31 16.25 13 15.69 14.25 15 14.25 13.75 13.69 13.75 13M22 12V22H2V12C2 6.5 6.5 2 12 2S22 6.5 22 12M4 12C4 16.41 7.59 20 12 20S20 16.41 20 12C20 11.21 19.88 10.45 19.67 9.74C18.95 9.91 18.2 10 17.42 10C14.05 10 11.07 8.33 9.26 5.77C8.28 8.16 6.41 10.09 4.05 11.14C4 11.42 4 11.71 4 12M9 14.25C9.69 14.25 10.25 13.69 10.25 13S9.69 11.75 9 11.75 7.75 12.31 7.75 13 8.31 14.25 9 14.25Z\";\nexport var mdiFaceWomanOutline = \"M12 2C6.5 2 2 6.5 2 12V22H22V12C22 6.5 17.5 2 12 2M12 4C14.9 4 17.44 5.56 18.84 7.88C18.41 7.95 17.96 8 17.5 8C14.6 8 12.06 6.44 10.66 4.12C11.09 4.05 11.54 4 12 4M8.08 5.03C7.45 6.92 6.13 8.5 4.42 9.47C5.05 7.58 6.37 6 8.08 5.03M4 11.86C6.6 10.88 8.69 8.87 9.74 6.31C11.58 8.56 14.37 10 17.5 10C18.25 10 18.97 9.91 19.67 9.76C19.88 10.47 20 11.22 20 12C20 16.41 16.41 20 12 20S4 16.41 4 12V11.86M4 20V18C4.57 18.75 5.25 19.43 6 20H4M20 20H18C18.75 19.43 19.43 18.75 20 18V20M13.75 13C13.75 12.31 14.31 11.75 15 11.75S16.25 12.31 16.25 13 15.69 14.25 15 14.25 13.75 13.69 13.75 13M7.75 13C7.75 12.31 8.31 11.75 9 11.75S10.25 12.31 10.25 13 9.69 14.25 9 14.25 7.75 13.69 7.75 13Z\";\nexport var mdiFaceWomanProfile = \"M17.25 13C17.25 13.69 16.69 14.25 16 14.25S14.75 13.69 14.75 13 15.31 11.75 16 11.75 17.25 12.31 17.25 13M22 12C22 17.5 17.5 22 12 22H2V12C2 6.5 6.5 2 12 2S22 6.5 22 12M7 18C8.41 19.23 10 20 12 20C16.41 20 20 16.41 20 12C20 11.21 19.88 10.45 19.67 9.74C18.95 9.91 18.2 10 17.42 10C15.42 10 13.57 9.4 12 8.39C12 8.39 10.54 13.76 8.03 13C7.37 12.8 7 13.31 7 14\";\nexport var mdiFaceWomanShimmer = \"M19.5 1L18.41 3.41L16 4.5L18.41 5.59L19.5 8L20.6 5.59L23 4.5L20.6 3.41L19.5 1M12 2C6.5 2 2 6.5 2 12V22H22V12C22 10.53 21.67 9.13 21.1 7.87L19.86 10.59C19.94 11.05 20 11.5 20 12C20 16.43 16.43 20 12 20C7.57 20 4 16.43 4 12C4 11.96 4 11.91 4 11.87A10 10 0 0 0 9.74 6.31A10 10 0 0 0 17.5 10A10 10 0 0 0 18.83 9.91L17.35 6.65L12.6 4.5L16.13 2.9C14.87 2.33 13.47 2 12 2M9 11.75A1.25 1.25 0 0 0 7.75 13A1.25 1.25 0 0 0 9 14.25A1.25 1.25 0 0 0 10.25 13A1.25 1.25 0 0 0 9 11.75M15 11.75A1.25 1.25 0 0 0 13.75 13A1.25 1.25 0 0 0 15 14.25A1.25 1.25 0 0 0 16.25 13A1.25 1.25 0 0 0 15 11.75Z\";\nexport var mdiFaceWomanShimmerOutline = \"M19.5 1L18.41 3.41L16 4.5L18.41 5.59L19.5 8L20.6 5.59L23 4.5L20.6 3.41M12 2C6.5 2 2 6.5 2 12V22H22V12C22 10.53 21.67 9.13 21.1 7.87L19.86 10.57C19.95 11.04 20 11.5 20 12C20 16.43 16.43 20 12 20C7.57 20 4 16.43 4 12C4 11.95 4 11.91 4 11.86C6.61 10.89 8.69 8.88 9.74 6.31C11.61 8.61 14.44 10 17.5 10C17.94 10 18.39 9.97 18.83 9.91L17.96 8C17.81 8 17.65 8 17.5 8C14.68 8 12.1 6.5 10.66 4.12C11.1 4.05 11.54 4 12 4C12.5 4 12.96 4.05 13.42 4.13L16.13 2.91C14.87 2.33 13.47 2 12 2M8.09 5C7.46 6.91 6.15 8.5 4.41 9.5C5.04 7.57 6.37 6 8.09 5M9 11.75C8.31 11.75 7.75 12.31 7.75 13C7.75 13.69 8.31 14.25 9 14.25C9.69 14.25 10.25 13.69 10.25 13C10.25 12.31 9.69 11.75 9 11.75M15 11.75C14.31 11.75 13.75 12.31 13.75 13C13.75 13.69 14.31 14.25 15 14.25C15.69 14.25 16.25 13.69 16.25 13C16.25 12.31 15.69 11.75 15 11.75M4 17.97C4.58 18.74 5.26 19.42 6.03 20H4M20 17.97V20H17.97C18.74 19.42 19.42 18.74 20 17.97Z\";\nexport var mdiFacebook = \"M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z\";\nexport var mdiFacebookGaming = \"M9.5 14.5V9.5H21V21H15.5V14.5H9.5M3 3H21L21 8.5H8.5V15.5H14.5V21H3V3Z\";\nexport var mdiFacebookMessenger = \"M12,2C6.36,2 2,6.13 2,11.7C2,14.61 3.19,17.14 5.14,18.87C5.3,19 5.4,19.22 5.41,19.44L5.46,21.22C5.5,21.79 6.07,22.16 6.59,21.93L8.57,21.06C8.74,21 8.93,20.97 9.1,21C10,21.27 11,21.4 12,21.4C17.64,21.4 22,17.27 22,11.7C22,6.13 17.64,2 12,2M18,9.46L15.07,14.13C14.6,14.86 13.6,15.05 12.9,14.5L10.56,12.77C10.35,12.61 10.05,12.61 9.84,12.77L6.68,15.17C6.26,15.5 5.71,15 6,14.54L8.93,9.87C9.4,9.14 10.4,8.95 11.1,9.47L13.44,11.23C13.66,11.39 13.95,11.39 14.16,11.23L17.32,8.83C17.74,8.5 18.29,9 18,9.46Z\";\nexport var mdiFacebookWorkplace = \"M19.69,16.12C19.42,16.43 18.95,16.92 18.19,16.92C17.13,16.92 16.78,16.15 16.46,15.34L14.86,11.41L13.26,15.34C13,16 12.7,16.92 11.53,16.92C10.36,16.92 10.07,16 9.79,15.34L7.11,8.72H9.37L11.53,14.17L13.14,10.2C13.39,9.57 13.69,8.62 14.86,8.62C16,8.62 16.32,9.57 16.58,10.2L18.33,14.5C19.22,13.14 19.6,11.5 19.38,9.89C19.16,8.28 18.37,6.8 17.14,5.73C15.92,4.66 14.34,4.06 12.72,4.06C11.03,4.05 9.39,4.58 8,5.56C6.66,6.55 5.64,7.94 5.12,9.54C4.6,11.14 4.6,12.87 5.12,14.47C5.64,16.07 6.66,17.46 8.03,18.44C9.4,19.43 11.04,19.95 12.72,19.94C13.45,19.94 14.17,19.84 14.87,19.64V21.75C14.16,21.91 13.44,22 12.72,22C10.61,22 8.54,21.34 6.82,20.1C5.1,18.86 3.82,17.11 3.17,15.1C2.5,13.09 2.5,10.92 3.16,8.9C3.82,6.89 5.1,5.14 6.82,3.9C8.53,2.66 10.6,2 12.72,2C17.56,2 21.5,5.94 21.5,10.79C21.5,12.71 20.86,14.59 19.69,16.12V16.12Z\";\nexport var mdiFactory = \"M4,18V20H8V18H4M4,14V16H14V14H4M10,18V20H14V18H10M16,14V16H20V14H16M16,18V20H20V18H16M2,22V8L7,12V8L12,12V8L17,12L18,2H21L22,12V22H2Z\";\nexport var mdiFamilyTree = \"M12 1A2.5 2.5 0 0 0 9.5 3.5A2.5 2.5 0 0 0 11 5.79V7H7A2 2 0 0 0 5 9V9.71A2.5 2.5 0 0 0 3.5 12A2.5 2.5 0 0 0 5 14.29V15H4A2 2 0 0 0 2 17V18.21A2.5 2.5 0 0 0 .5 20.5A2.5 2.5 0 0 0 3 23A2.5 2.5 0 0 0 5.5 20.5A2.5 2.5 0 0 0 4 18.21V17H8V18.21A2.5 2.5 0 0 0 6.5 20.5A2.5 2.5 0 0 0 9 23A2.5 2.5 0 0 0 11.5 20.5A2.5 2.5 0 0 0 10 18.21V17A2 2 0 0 0 8 15H7V14.29A2.5 2.5 0 0 0 8.5 12A2.5 2.5 0 0 0 7 9.71V9H17V9.71A2.5 2.5 0 0 0 15.5 12A2.5 2.5 0 0 0 17 14.29V15H16A2 2 0 0 0 14 17V18.21A2.5 2.5 0 0 0 12.5 20.5A2.5 2.5 0 0 0 15 23A2.5 2.5 0 0 0 17.5 20.5A2.5 2.5 0 0 0 16 18.21V17H20V18.21A2.5 2.5 0 0 0 18.5 20.5A2.5 2.5 0 0 0 21 23A2.5 2.5 0 0 0 23.5 20.5A2.5 2.5 0 0 0 22 18.21V17A2 2 0 0 0 20 15H19V14.29A2.5 2.5 0 0 0 20.5 12A2.5 2.5 0 0 0 19 9.71V9A2 2 0 0 0 17 7H13V5.79A2.5 2.5 0 0 0 14.5 3.5A2.5 2.5 0 0 0 12 1M12 2.5A1 1 0 0 1 13 3.5A1 1 0 0 1 12 4.5A1 1 0 0 1 11 3.5A1 1 0 0 1 12 2.5M6 11A1 1 0 0 1 7 12A1 1 0 0 1 6 13A1 1 0 0 1 5 12A1 1 0 0 1 6 11M18 11A1 1 0 0 1 19 12A1 1 0 0 1 18 13A1 1 0 0 1 17 12A1 1 0 0 1 18 11M3 19.5A1 1 0 0 1 4 20.5A1 1 0 0 1 3 21.5A1 1 0 0 1 2 20.5A1 1 0 0 1 3 19.5M9 19.5A1 1 0 0 1 10 20.5A1 1 0 0 1 9 21.5A1 1 0 0 1 8 20.5A1 1 0 0 1 9 19.5M15 19.5A1 1 0 0 1 16 20.5A1 1 0 0 1 15 21.5A1 1 0 0 1 14 20.5A1 1 0 0 1 15 19.5M21 19.5A1 1 0 0 1 22 20.5A1 1 0 0 1 21 21.5A1 1 0 0 1 20 20.5A1 1 0 0 1 21 19.5Z\";\nexport var mdiFan = \"M12,11A1,1 0 0,0 11,12A1,1 0 0,0 12,13A1,1 0 0,0 13,12A1,1 0 0,0 12,11M12.5,2C17,2 17.11,5.57 14.75,6.75C13.76,7.24 13.32,8.29 13.13,9.22C13.61,9.42 14.03,9.73 14.35,10.13C18.05,8.13 22.03,8.92 22.03,12.5C22.03,17 18.46,17.1 17.28,14.73C16.78,13.74 15.72,13.3 14.79,13.11C14.59,13.59 14.28,14 13.88,14.34C15.87,18.03 15.08,22 11.5,22C7,22 6.91,18.42 9.27,17.24C10.25,16.75 10.69,15.71 10.89,14.79C10.4,14.59 9.97,14.27 9.65,13.87C5.96,15.85 2,15.07 2,11.5C2,7 5.56,6.89 6.74,9.26C7.24,10.25 8.29,10.68 9.22,10.87C9.41,10.39 9.73,9.97 10.14,9.65C8.15,5.96 8.94,2 12.5,2Z\";\nexport var mdiFanAlert = \"M10 11C9.43 11 9 11.45 9 12S9.43 13 10 13C10.54 13 11 12.55 11 12S10.54 11 10 11M10.5 2C15 2 15.09 5.57 12.73 6.75C11.74 7.24 11.3 8.29 11.11 9.22C11.59 9.42 12 9.73 12.33 10.13C16.03 8.13 20 8.92 20 12.5C20 17 16.43 17.1 15.26 14.73C14.76 13.74 13.7 13.3 12.77 13.11C12.57 13.59 12.26 14 11.86 14.34C13.85 18.03 13.06 22 9.5 22C5 22 4.9 18.42 7.26 17.24C8.24 16.75 8.68 15.71 8.88 14.79C8.39 14.59 7.96 14.27 7.64 13.87C3.95 15.85 0 15.07 0 11.5C0 7 3.56 6.89 4.73 9.26C5.23 10.25 6.28 10.68 7.21 10.87C7.4 10.39 7.72 9.97 8.13 9.65C6.14 5.96 6.93 2 10.5 2M22 13V7H24V13H22M22 17V15H24V17H22Z\";\nexport var mdiFanAuto = \"M12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2M12 11C12.54 11 13 11.45 13 12C13 12.55 12.54 13 12 13C11.43 13 11 12.55 11 12C11 11.45 11.43 11 12 11M18 15C16.89 15 16 15.9 16 17V23H18V21H20V23H22V17C22 15.9 21.1 15 20 15M18 17H20V19H18Z\";\nexport var mdiFanChevronDown = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M19 19.17L22.17 16L23.59 17.41L19 22L14.41 17.41L15.83 16L19 19.17\";\nexport var mdiFanChevronUp = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M19 17.83L15.83 21L14.41 19.59L19 15L23.59 19.59L22.17 21L19 17.83\";\nexport var mdiFanClock = \"M16 14H17.5V16.8L19.9 18.2L19.1 19.5L16 17.7V14M21 11.3C20.8 7.9 17 7.2 13.3 9.2C13 8.8 12.6 8.5 12.1 8.3C12.3 7.4 12.7 6.3 13.7 5.8C16.1 4.6 16 1 11.5 1C7.9 1 7.2 5 9.1 8.7C8.7 9 8.4 9.4 8.2 9.9C7.3 9.7 6.2 9.3 5.7 8.3C4.6 5.9 1 6 1 10.5C1 14.1 5 14.8 8.7 12.9C9 13.3 9.5 13.6 9.9 13.8C9.7 14.7 9.3 15.8 8.3 16.3C5.9 17.4 6 21 10.5 21C10.8 21 11 21 11.2 20.9C12.5 22.8 14.6 24 17 24C20.9 24 24 20.9 24 17C24 14.6 22.8 12.5 21 11.3M11 10C11.6 10 12 10.4 12 11S11.6 12 11 12 10 11.6 10 11 10.4 10 11 10M17 22C14.2 22 12 19.8 12 17S14.2 12 17 12 22 14.2 22 17 19.8 22 17 22Z\";\nexport var mdiFanMinus = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M23 18V20H15V18H23Z\";\nexport var mdiFanOff = \"M12.5,2C9.64,2 8.57,4.55 9.29,7.47L15,13.16C15.87,13.37 16.81,13.81 17.28,14.73C18.46,17.1 22.03,17 22.03,12.5C22.03,8.92 18.05,8.13 14.35,10.13C14.03,9.73 13.61,9.42 13.13,9.22C13.32,8.29 13.76,7.24 14.75,6.75C17.11,5.57 17,2 12.5,2M3.28,4L2,5.27L4.47,7.73C3.22,7.74 2,8.87 2,11.5C2,15.07 5.96,15.85 9.65,13.87C9.97,14.27 10.4,14.59 10.89,14.79C10.69,15.71 10.25,16.75 9.27,17.24C6.91,18.42 7,22 11.5,22C13.8,22 14.94,20.36 14.94,18.21L18.73,22L20,20.72L3.28,4Z\";\nexport var mdiFanPlus = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiFanRemove = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88Z\";\nexport var mdiFanSpeed1 = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M17 15V17H18V23H20V15H17Z\";\nexport var mdiFanSpeed2 = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M16 15V17H19V18H18C16.9 18 16 18.9 16 20V23H21V21H18V20H19C20.11 20 21 19.11 21 18V17C21 15.9 20.11 15 19 15H16Z\";\nexport var mdiFanSpeed3 = \"M13 19C13 17.59 13.5 16.3 14.3 15.28C14.17 14.97 14.03 14.65 13.86 14.34C14.26 14 14.57 13.59 14.77 13.11C15.26 13.21 15.78 13.39 16.25 13.67C17.07 13.25 18 13 19 13C20.05 13 21.03 13.27 21.89 13.74C21.95 13.37 22 12.96 22 12.5C22 8.92 18.03 8.13 14.33 10.13C14 9.73 13.59 9.42 13.11 9.22C13.3 8.29 13.74 7.24 14.73 6.75C17.09 5.57 17 2 12.5 2C8.93 2 8.14 5.96 10.13 9.65C9.72 9.97 9.4 10.39 9.21 10.87C8.28 10.68 7.23 10.25 6.73 9.26C5.56 6.89 2 7 2 11.5C2 15.07 5.95 15.85 9.64 13.87C9.96 14.27 10.39 14.59 10.88 14.79C10.68 15.71 10.24 16.75 9.26 17.24C6.9 18.42 7 22 11.5 22C12.31 22 13 21.78 13.5 21.41C13.19 20.67 13 19.86 13 19M12 13C11.43 13 11 12.55 11 12S11.43 11 12 11C12.54 11 13 11.45 13 12S12.54 13 12 13M21 21V20.5C21 19.67 20.33 19 19.5 19C20.33 19 21 18.33 21 17.5V17C21 15.89 20.1 15 19 15H16V17H19V18H17V20H19V21H16V23H19C20.11 23 21 22.11 21 21\";\nexport var mdiFastForward = \"M13,6V18L21.5,12M4,18L12.5,12L4,6V18Z\";\nexport var mdiFastForward10 = \"M10,12V22H8V14H6V12H10M18,14V20C18,21.11 17.11,22 16,22H14A2,2 0 0,1 12,20V14A2,2 0 0,1 14,12H16C17.11,12 18,12.9 18,14M14,14V20H16V14H14M11.5,3C14.15,3 16.55,4 18.4,5.6L21,3V10H14L16.62,7.38C15.23,6.22 13.46,5.5 11.5,5.5C7.96,5.5 4.95,7.81 3.9,11L1.53,10.22C2.92,6.03 6.85,3 11.5,3Z\";\nexport var mdiFastForward15 = \"M11.5 3C14.15 3 16.55 4 18.4 5.6L21 3V10H14L16.62 7.38C15.23 6.22 13.46 5.5 11.5 5.5C7.96 5.5 4.95 7.81 3.9 11L1.53 10.22C2.92 6.03 6.85 3 11.5 3M10 12V22H8V14H6V12H10M12 12H18V14H14V16H16C17.11 16 18 16.9 18 18V20C18 21.11 17.11 22 16 22H12V20H16V18H12V12Z\";\nexport var mdiFastForward30 = \"M11.5,3C6.85,3 2.92,6.03 1.53,10.22L3.9,11C4.95,7.81 7.96,5.5 11.5,5.5C13.46,5.5 15.23,6.22 16.62,7.38L14,10H21V3L18.4,5.6C16.55,4 14.15,3 11.5,3M19,14V20C19,21.11 18.11,22 17,22H15A2,2 0 0,1 13,20V14A2,2 0 0,1 15,12H17C18.11,12 19,12.9 19,14M15,14V20H17V14H15M11,20C11,21.11 10.1,22 9,22H5V20H9V18H7V16H9V14H5V12H9A2,2 0 0,1 11,14V15.5A1.5,1.5 0 0,1 9.5,17A1.5,1.5 0 0,1 11,18.5V20Z\";\nexport var mdiFastForward45 = \"M11.5 3C14.1 3 16.5 4 18.4 5.6L21 3V10H14L16.6 7.4C15.2 6.2 13.4 5.5 11.5 5.5C8 5.5 4.9 7.8 3.9 11L1.5 10.2C2.9 6 6.8 3 11.5 3M13 12H19V14H15V16H17C18.1 16 19 16.9 19 18V20C19 21.1 18.1 22 17 22H13V20H17V18H13V12M5 12V18H9V22H11V12H9V16H7V12H5Z\";\nexport var mdiFastForward5 = \"M11.5 3C14.15 3 16.55 4 18.4 5.6L21 3V10H14L16.62 7.38C15.23 6.22 13.46 5.5 11.5 5.5C7.96 5.5 4.95 7.81 3.9 11L1.53 10.22C2.92 6.03 6.85 3 11.5 3M9 12H15V14H11V16H13C14.11 16 15 16.9 15 18V20C15 21.11 14.11 22 13 22H9V20H13V18H9V12Z\";\nexport var mdiFastForward60 = \"M11.5 3C6.8 3 2.9 6 1.5 10.2L3.9 11C4.9 7.8 8 5.5 11.5 5.5C13.5 5.5 15.2 6.2 16.6 7.4L14 10H21V3L18.4 5.6C16.5 4 14.1 3 11.5 3M19 14V20C19 21.1 18.1 22 17 22H15C13.9 22 13 21.1 13 20V14C13 12.9 13.9 12 15 12H17C18.1 12 19 12.9 19 14M15 14V20H17V14H15M7 12C5.9 12 5 12.9 5 14V20C5 21.1 5.9 22 7 22H9C10.1 22 11 21.1 11 20V18C11 16.9 10.1 16 9 16H7V14H11V12H7M7 18H9V20H7V18Z\";\nexport var mdiFastForwardOutline = \"M15,9.9L18,12L15,14.1V9.9M6,9.9L9,12L6,14.1V9.9M13,6V18L21.5,12L13,6M4,6V18L12.5,12L4,6Z\";\nexport var mdiFaucet = \"M19 14V16H16V14.28L19 14M19 13C19 11.9 18 11 16.8 11H10V10H5V21H10V13.91L19 13M5 9H10V7L15.36 5.21C15.74 5.09 16 4.73 16 4.33C16 3.68 15.36 3.23 14.75 3.45L5 7V9Z\";\nexport var mdiFaucetVariant = \"M21 21H3C3 19.9 3.9 19 5 19H19C20.11 19 21 19.89 21 21M19 7C19 5.39 17.93 3 15 3S11 5.39 11 7V18H13V7C13 6.54 13.17 5 15 5S17 6.54 17 7H16.5V9H19.5V7H19M7 12C6.45 12 6 12.45 6 13V14H3V15H6V18H8V13C8 12.45 7.55 12 7 12M21 14H18V13C18 12.45 17.55 12 17 12S16 12.45 16 13V18H18V15H21V14Z\";\nexport var mdiFax = \"M19 9H18V4H8V20H22V12C22 10.34 20.66 9 19 9M10 6H16V9H10V6M14 17H10V12H14V17M16 17C15.45 17 15 16.55 15 16C15 15.45 15.45 15 16 15C16.55 15 17 15.45 17 16C17 16.55 16.55 17 16 17M16 14C15.45 14 15 13.55 15 13S15.45 12 16 12C16.55 12 17 12.45 17 13S16.55 14 16 14M19 17C18.45 17 18 16.55 18 16C18 15.45 18.45 15 19 15S20 15.45 20 16C20 16.55 19.55 17 19 17M19 14C18.45 14 18 13.55 18 13S18.45 12 19 12 20 12.45 20 13 19.55 14 19 14M4.5 8C3.12 8 2 9.12 2 10.5V18.5C2 19.88 3.12 21 4.5 21S7 19.88 7 18.5V10.5C7 9.12 5.88 8 4.5 8Z\";\nexport var mdiFeather = \"M22,2C22,2 14.36,1.63 8.34,9.88C3.72,16.21 2,22 2,22L3.94,21C5.38,18.5 6.13,17.47 7.54,16C10.07,16.74 12.71,16.65 15,14C13,13.44 11.4,13.57 9.04,13.81C11.69,12 13.5,11.6 16,12L17,10C15.2,9.66 14,9.63 12.22,10.04C14.19,8.65 15.56,7.87 18,8L19.21,6.07C17.65,5.96 16.71,6.13 14.92,6.57C16.53,5.11 18,4.45 20.14,4.32C20.14,4.32 21.19,2.43 22,2Z\";\nexport var mdiFeatureSearch = \"M20,20A2,2 0 0,1 18,22H4A2,2 0 0,1 2,20V6A2,2 0 0,1 4,4H9.5C9.2,4.8 9,5.6 9,6.5C9,10.1 11.9,13 15.5,13C16.3,13 17,12.9 17.6,12.6L20,15V20M19.3,8.9C19.7,8.2 20,7.4 20,6.5C20,4 18,2 15.5,2C13,2 11,4 11,6.5C11,9 13,11 15.5,11C16.4,11 17.2,10.7 17.9,10.3L21,13.4L22.4,12L19.3,8.9M15.5,9C14.1,9 13,7.9 13,6.5C13,5.1 14.1,4 15.5,4C16.9,4 18,5.1 18,6.5C18,7.9 16.9,9 15.5,9Z\";\nexport var mdiFeatureSearchOutline = \"M15.5,2C13,2 11,4 11,6.5C11,9 13,11 15.5,11C16.4,11 17.2,10.7 17.9,10.3L21,13.4L22.4,12L19.3,8.9C19.7,8.2 20,7.4 20,6.5C20,4 18,2 15.5,2M4,4A2,2 0 0,0 2,6V20A2,2 0 0,0 4,22H18A2,2 0 0,0 20,20V15L18,13V20H4V6H9.03C9.09,5.3 9.26,4.65 9.5,4H4M15.5,4C16.9,4 18,5.1 18,6.5C18,7.9 16.9,9 15.5,9C14.1,9 13,7.9 13,6.5C13,5.1 14.1,4 15.5,4Z\";\nexport var mdiFedora = \"M12 2C6.5 2 2 6.47 2 12H2V19.73H2C2 21 3 22 4.27 22H12C17.53 22 22 17.5 22 12C22 6.5 17.5 2 12 2M14.03 6.12C15.71 6.12 17.29 7.4 17.29 9.18C17.29 9.34 17.29 9.5 17.27 9.69C17.22 10.16 16.79 10.5 16.32 10.44C15.85 10.37 15.53 9.92 15.62 9.46C15.62 9.4 15.63 9.32 15.63 9.18C15.63 8.17 14.81 7.78 14.03 7.78C13.25 7.78 12.55 8.44 12.55 9.18C12.56 10.03 12.55 10.88 12.55 11.74L14 11.72C15.12 11.7 15.13 13.4 14 13.39L12.55 13.4L12.54 15.79C12.36 17.67 10.77 19.16 8.85 19.16C6.82 19.16 5.14 17.5 5.14 15.46C5.2 13.37 6.88 11.72 9 11.74L10.15 11.73V13.4L9 13.41H8.97C7.81 13.44 6.82 14.23 6.81 15.47C6.81 16.59 7.72 17.5 8.85 17.5C10 17.5 10.88 16.67 10.88 15.47C10.9 13.46 10.87 11.25 10.88 9.17C10.88 9.05 10.89 8.96 10.9 8.83C11.09 7.29 12.47 6.12 14.03 6.12\";\nexport var mdiFence = \"M9 9V11H7V9H5V11H3V9H1V21H3V19H5V21H7V19H9V21H11V19H13V21H15V19H17V21H19V19H21V21H23V9H21V11H19V9H17V11H15V9H13V11H11V9H9M3 13H5V17H3V13M7 13H9V17H7V13M11 13H13V17H11V13M15 13H17V17H15V13M19 13H21V17H19V13Z\";\nexport var mdiFenceElectric = \"M9 9V11H7V9H5V11H3V9H1V21H3V19H5V21H7V19H9V21H11V19H13V21H15V19H17V21H19V19H21V21H23V9H21V11H19V9H17V11H15V9H13V11H11V9H9M3 13H5V17H3V13M7 13H9V17H7V13M11 13H13V17H11V13M15 13H17V17H15V13M19 13H21V17H19V13M7 4H11V2L17 5H13V7L7 4Z\";\nexport var mdiFencing = \"M4.5 17.42L5.58 18.5L3.28 20.78C3 21.07 2.5 21.07 2.22 20.78S1.93 20 2.22 19.72L4.5 17.42M18.29 5.42L18.29 4L12 10.29L5.71 4L5.71 5.42L11.29 11L7.5 14.81C6.32 13.97 4.68 14.07 3.63 15.12L7.88 19.37C8.93 18.32 9.03 16.68 8.2 15.5L18.29 5.42M21.78 19.72L19.5 17.42L18.42 18.5L20.72 20.78C21 21.07 21.5 21.07 21.78 20.78S22.07 20 21.78 19.72M16.5 14.81L13.42 11.71L12.71 12.42L15.81 15.5C14.97 16.68 15.07 18.32 16.12 19.37L20.37 15.12C19.32 14.07 17.68 13.97 16.5 14.81Z\";\nexport var mdiFerrisWheel = \"M12,19C12.86,19 13.59,19.54 13.87,20.29C14.42,20.17 14.95,20 15.46,19.77L13.7,15.62C13.18,15.87 12.61,16 12,16C11.39,16 10.82,15.87 10.3,15.62L8.54,19.77C9.05,20 9.58,20.17 10.13,20.29C10.41,19.54 11.14,19 12,19M18.25,17.76C18,17.42 17.81,17 17.81,16.5C17.81,15.41 18.71,14.5 19.81,14.5L20.12,14.53C20.37,13.73 20.5,12.88 20.5,12C20.5,11.12 20.37,10.27 20.12,9.5H19.81C18.7,9.5 17.81,8.61 17.81,7.5C17.81,7 17.97,6.59 18.25,6.24C17.1,5 15.59,4.09 13.87,3.71C13.59,4.46 12.86,5 12,5C11.14,5 10.41,4.46 10.13,3.71C8.41,4.09 6.9,5 5.75,6.24C6.03,6.59 6.2,7.03 6.2,7.5C6.2,8.61 5.3,9.5 4.2,9.5H3.88C3.63,10.28 3.5,11.12 3.5,12C3.5,12.89 3.64,13.74 3.89,14.55L4.2,14.5C5.31,14.5 6.2,15.42 6.2,16.5C6.2,17 6.04,17.43 5.76,17.77C6.08,18.12 6.44,18.44 6.81,18.73L8.71,14.27C8.26,13.62 8,12.84 8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12C16,12.84 15.74,13.62 15.29,14.27L17.19,18.73C17.57,18.44 17.92,18.11 18.25,17.76M12,23C11,23 10.16,22.26 10,21.29C9.37,21.16 8.75,20.95 8.15,20.69L7.17,23H5L6.41,19.68C5.88,19.3 5.39,18.86 4.96,18.37C4.72,18.47 4.47,18.5 4.2,18.5A2,2 0 0,1 2.2,16.5C2.2,15.88 2.5,15.32 2.97,14.95C2.66,14 2.5,13.03 2.5,12C2.5,11 2.66,10 2.96,9.08C2.5,8.71 2.2,8.15 2.2,7.5C2.2,6.41 3.09,5.5 4.2,5.5C4.46,5.5 4.71,5.56 4.93,5.65C6.25,4.18 8,3.13 10,2.71C10.16,1.74 11,1 12,1C13,1 13.84,1.74 14,2.71C16,3.13 17.74,4.18 19.06,5.64C19.29,5.55 19.54,5.5 19.81,5.5A2,2 0 0,1 21.81,7.5C21.81,8.14 21.5,8.71 21.04,9.07C21.34,10 21.5,11 21.5,12C21.5,13 21.34,14 21.04,14.93C21.5,15.3 21.81,15.87 21.81,16.5C21.81,17.62 20.92,18.5 19.81,18.5C19.54,18.5 19.29,18.46 19.05,18.36C18.61,18.85 18.12,19.29 17.59,19.68L19,23H16.83L15.85,20.69C15.25,20.95 14.63,21.16 14,21.29C13.84,22.26 13,23 12,23Z\";\nexport var mdiFerry = \"M6,6H18V9.96L12,8L6,9.96M3.94,19H4C5.6,19 7,18.12 8,17C9,18.12 10.4,19 12,19C13.6,19 15,18.12 16,17C17,18.12 18.4,19 20,19H20.05L21.95,12.31C22.03,12.06 22,11.78 21.89,11.54C21.76,11.3 21.55,11.12 21.29,11.04L20,10.62V6C20,4.89 19.1,4 18,4H15V1H9V4H6A2,2 0 0,0 4,6V10.62L2.71,11.04C2.45,11.12 2.24,11.3 2.11,11.54C2,11.78 1.97,12.06 2.05,12.31M20,21C18.61,21 17.22,20.53 16,19.67C13.56,21.38 10.44,21.38 8,19.67C6.78,20.53 5.39,21 4,21H2V23H4C5.37,23 6.74,22.65 8,22C10.5,23.3 13.5,23.3 16,22C17.26,22.65 18.62,23 20,23H22V21H20Z\";\nexport var mdiFile = \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\";\nexport var mdiFileAccount = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M14,20V19C14,17.67 11.33,17 10,17C8.67,17 6,17.67 6,19V20H14M10,12A2,2 0 0,0 8,14A2,2 0 0,0 10,16A2,2 0 0,0 12,14A2,2 0 0,0 10,12Z\";\nexport var mdiFileAccountOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M13 13C13 14.1 12.1 15 11 15S9 14.1 9 13 9.9 11 11 11 13 11.9 13 13M15 18V19H7V18C7 16.67 9.67 16 11 16S15 16.67 15 18Z\";\nexport var mdiFileAlert = \"M20 17H22V15H20V17M20 7V13H22V7M4 2C2.89 2 2 2.89 2 4V20C2 21.11 2.89 22 4 22H16C17.11 22 18 21.11 18 20V8L12 2M11 3.5L16.5 9H11Z\";\nexport var mdiFileAlertOutline = \"M20 17H22V15H20V17M20 7V13H22V7M4 2C2.89 2 2 2.89 2 4V20C2 21.11 2.89 22 4 22H16C17.11 22 18 21.11 18 20V8L12 2M4 4H11V9H16V20H4Z\";\nexport var mdiFileArrowLeftRight = \"M19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M13 3.5L18.5 9H13V3.5M20 19.5V18H16V16H20V14.5L23 17L20 19.5M18 20H22V22H18V23.5L15 21L18 18.5V20Z\";\nexport var mdiFileArrowLeftRightOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V9H13V4H6V20H13.09M23 17L20 14.5V16H16V18H20V19.5L23 17M18 18.5L15 21L18 23.5V22H22V20H18V18.5Z\";\nexport var mdiFileArrowUpDown = \"M19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M13 3.5L18.5 9H13V3.5M23.5 20L21 23L18.5 20H20V16H22V20H23.5M19.5 18H18V22H16V18H14.5L17 15L19.5 18Z\";\nexport var mdiFileArrowUpDownOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V9H13V4H6V20H13.09M17 15L14.5 18H16V22H18V18H19.5L17 15M22 20V16H20V20H18.5L21 23L23.5 20H22Z\";\nexport var mdiFileCabinet = \"M14,8H10V6H14V8M20,4V20C20,21.11 19.11,22 18,22H6C4.89,22 4,21.11 4,20V4A2,2 0 0,1 6,2H18C19.11,2 20,2.9 20,4M18,13H6V20H18V13M18,4H6V11H18V4M14,15H10V17H14V15Z\";\nexport var mdiFileCad = \"M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M13 3.5L18.5 9H13M9.88 9.25H11.12V10.19C11.81 10.18 12.38 10.75 12.38 11.44V13.5L12.26 13.63L13.15 15.17C13.47 14.67 13.63 14.09 13.62 13.5H14.88C14.88 14.54 14.5 15.55 13.83 16.35L15.5 19.25V20.5L14.42 19.88L12.87 17.19C12.17 17.65 11.34 17.89 10.5 17.89C9.66 17.89 8.84 17.65 8.13 17.19L6.58 19.88L5.5 20.5V19.25L8.74 13.63L8.62 13.5V11.44C8.62 10.75 9.19 10.18 9.88 10.19M10.5 11.44C9.81 11.44 9.46 12.28 9.95 12.77C10.44 13.26 11.28 12.92 11.28 12.22C11.28 11.79 10.93 11.44 10.5 11.44M9.66 14.54L8.76 16.11C9.81 16.82 11.19 16.82 12.24 16.11L11.34 14.54C10.87 15 10.13 15 9.66 14.54Z\";\nexport var mdiFileCadBox = \"M5 3C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M11.25 5.25H12.75V6.38C13.58 6.38 14.25 7.05 14.25 7.88V10.37L14.11 10.5L15.18 12.36C15.55 11.76 15.75 11.07 15.75 10.36H17.25C17.26 11.61 16.81 12.82 16 13.77L18 17.25V18.75L16.7 18L14.84 14.78C13.12 15.91 10.89 15.91 9.16 14.78L7.3 18L6 18.75V17.25L9.89 10.5L9.75 10.37V7.88C9.75 7.05 10.42 6.38 11.25 6.38M12 7.88C11.16 7.88 10.74 8.9 11.34 9.5C11.94 10.08 12.95 9.65 12.94 8.81C12.94 8.29 12.5 7.88 12 7.88M11 11.6L9.91 13.5C11.17 14.36 12.83 14.36 14.09 13.5L13 11.6C12.43 12.11 11.57 12.11 11 11.6Z\";\nexport var mdiFileCancel = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M10.5,11C8,11 6,13 6,15.5C6,18 8,20 10.5,20C13,20 15,18 15,15.5C15,13 13,11 10.5,11M10.5,12.5A3,3 0 0,1 13.5,15.5C13.5,16.06 13.35,16.58 13.08,17L9,12.92C9.42,12.65 9.94,12.5 10.5,12.5M7.5,15.5C7.5,14.94 7.65,14.42 7.92,14L12,18.08C11.58,18.35 11.06,18.5 10.5,18.5A3,3 0 0,1 7.5,15.5Z\";\nexport var mdiFileCancelOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M11.5,10C14,10 16,12 16,14.5C16,17 14,19 11.5,19C9,19 7,17 7,14.5C7,12 9,10 11.5,10M11.5,11.5C10.94,11.5 10.42,11.65 10,11.92L14.08,16C14.35,15.58 14.5,15.06 14.5,14.5A3,3 0 0,0 11.5,11.5M8.5,14.5A3,3 0 0,0 11.5,17.5C12.06,17.5 12.58,17.35 13,17.08L8.92,13C8.65,13.42 8.5,13.94 8.5,14.5Z\";\nexport var mdiFileCertificate = \"M14 2H7A2 2 0 0 0 5 4V18A2 2 0 0 0 7 20H10V23L12 22L14 23V20H17A2 2 0 0 0 19 18V7M14 15V17L12 16L10 17V15L8 14L10 13V11L12 12L14 11V13L16 14M13 8V3.5L17.5 8Z\";\nexport var mdiFileCertificateOutline = \"M14 13V11L12 12L10 11V13L8 14L10 15V17L12 16L14 17V15L16 14M14 2H7A2 2 0 0 0 5 4V18A2 2 0 0 0 7 20H8V18H7V4H13V8H17V18H16V20H17A2 2 0 0 0 19 18V7M14 13V11L12 12L10 11V13L8 14L10 15V17L12 16L14 17V15L16 14M10 23L12 22L14 23V18H10M14 13V11L12 12L10 11V13L8 14L10 15V17L12 16L14 17V15L16 14Z\";\nexport var mdiFileChart = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M7,20H9V14H7V20M11,20H13V12H11V20M15,20H17V16H15V20Z\";\nexport var mdiFileChartCheck = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H13.8C13.3 21.1 13 20.1 13 19V20H11V12H13V19C13 15.7 15.7 13 19 13C19.3 13 19.7 13 20 13.1V8L14 2H6M13 3.5L18.5 9H13V3.5M7 14H9V20H7V14Z\";\nexport var mdiFileChartCheckOutline = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H13.8C13.4 21.4 13.2 20.7 13.1 20H6V4H13V9H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V8L14 2H6M11 11V19H13V11H11M7 13V19H9V13H7Z\";\nexport var mdiFileChartOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M18 20H6V4H13V9H18V20M9 13V19H7V13H9M15 15V19H17V15H15M11 11V19H13V11H11Z\";\nexport var mdiFileCheck = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M6 2C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 15.69 15.69 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 3.5L18.5 9H13Z\";\nexport var mdiFileCheckOutline = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M13.09 20H6V4H13V9H18V13.09C18.33 13.04 18.66 13 19 13S19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20Z\";\nexport var mdiFileClock = \"M4 2C2.89 2 2 2.89 2 4V20A2 2 0 0 0 4 22H12.41A7 7 0 0 0 16 23A7 7 0 0 0 23 16A7 7 0 0 0 18 9.3V8L12 2H4M11 3.5L16.5 9H11V3.5M16 11A5 5 0 0 1 21 16A5 5 0 0 1 16 21A5 5 0 0 1 11 16A5 5 0 0 1 16 11M15 12V17L18.61 19.16L19.36 17.94L16.5 16.25V12H15Z\";\nexport var mdiFileClockOutline = \"M4 2A2 2 0 0 0 2 4V20A2 2 0 0 0 4 22H12.41A7 7 0 0 0 16 23A7 7 0 0 0 23 16A7 7 0 0 0 18 9.3V8L12 2H4M4 4H11V9H16A7 7 0 0 0 9 16A7 7 0 0 0 10.26 20H4V4M16 11A5 5 0 0 1 21 16A5 5 0 0 1 16 21A5 5 0 0 1 11 16A5 5 0 0 1 16 11M15 12V17L18.61 19.16L19.36 17.94L16.5 16.25V12H15Z\";\nexport var mdiFileCloud = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M15.68,15C15.34,13.3 13.82,12 12,12C10.55,12 9.3,12.82 8.68,14C7.17,14.18 6,15.45 6,17A3,3 0 0,0 9,20H15.5A2.5,2.5 0 0,0 18,17.5C18,16.18 16.97,15.11 15.68,15Z\";\nexport var mdiFileCloudOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M17 16.92C17 18.07 16.07 19 14.92 19H9.5C8.12 19 7 17.88 7 16.5C7 15.21 8 14.15 9.23 14C9.75 13 10.79 12.33 12 12.33C13.5 12.33 14.78 13.42 15.07 14.83C16.14 14.93 17 15.82 17 16.92Z\";\nexport var mdiFileCode = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M6.12,15.5L9.86,19.24L11.28,17.83L8.95,15.5L11.28,13.17L9.86,11.76L6.12,15.5M17.28,15.5L13.54,11.76L12.12,13.17L14.45,15.5L12.12,17.83L13.54,19.24L17.28,15.5Z\";\nexport var mdiFileCodeOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M9.54 15.65L11.63 17.74L10.35 19L7 15.65L10.35 12.3L11.63 13.56L9.54 15.65M17 15.65L13.65 19L12.38 17.74L14.47 15.65L12.38 13.56L13.65 12.3L17 15.65Z\";\nexport var mdiFileCog = \"M6 2C4.89 2 4 2.89 4 4V20A2 2 0 0 0 6 22H12.68A7 7 0 0 1 12 19A7 7 0 0 1 19 12A7 7 0 0 1 20 12.08V8L14 2H6M13 3.5L18.5 9H13V3.5M18 14C17.87 14 17.76 14.09 17.74 14.21L17.55 15.53C17.25 15.66 16.96 15.82 16.7 16L15.46 15.5C15.35 15.5 15.22 15.5 15.15 15.63L14.15 17.36C14.09 17.47 14.11 17.6 14.21 17.68L15.27 18.5C15.25 18.67 15.24 18.83 15.24 19C15.24 19.17 15.25 19.33 15.27 19.5L14.21 20.32C14.12 20.4 14.09 20.53 14.15 20.64L15.15 22.37C15.21 22.5 15.34 22.5 15.46 22.5L16.7 22C16.96 22.18 17.24 22.35 17.55 22.47L17.74 23.79C17.76 23.91 17.86 24 18 24H20C20.11 24 20.22 23.91 20.24 23.79L20.43 22.47C20.73 22.34 21 22.18 21.27 22L22.5 22.5C22.63 22.5 22.76 22.5 22.83 22.37L23.83 20.64C23.89 20.53 23.86 20.4 23.77 20.32L22.7 19.5C22.72 19.33 22.74 19.17 22.74 19C22.74 18.83 22.73 18.67 22.7 18.5L23.76 17.68C23.85 17.6 23.88 17.47 23.82 17.36L22.82 15.63C22.76 15.5 22.63 15.5 22.5 15.5L21.27 16C21 15.82 20.73 15.65 20.42 15.53L20.23 14.21C20.22 14.09 20.11 14 20 14H18M19 17.5C19.83 17.5 20.5 18.17 20.5 19C20.5 19.83 19.83 20.5 19 20.5C18.16 20.5 17.5 19.83 17.5 19C17.5 18.17 18.17 17.5 19 17.5Z\";\nexport var mdiFileCogOutline = \"M6 2C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H12V20H6V4H13V9H18V12H20V8L14 2M18 14C17.87 14 17.76 14.09 17.74 14.21L17.55 15.53C17.25 15.66 16.96 15.82 16.7 16L15.46 15.5C15.35 15.5 15.22 15.5 15.15 15.63L14.15 17.36C14.09 17.47 14.11 17.6 14.21 17.68L15.27 18.5C15.25 18.67 15.24 18.83 15.24 19C15.24 19.17 15.25 19.33 15.27 19.5L14.21 20.32C14.12 20.4 14.09 20.53 14.15 20.64L15.15 22.37C15.21 22.5 15.34 22.5 15.46 22.5L16.7 22C16.96 22.18 17.24 22.35 17.55 22.47L17.74 23.79C17.76 23.91 17.86 24 18 24H20C20.11 24 20.22 23.91 20.24 23.79L20.43 22.47C20.73 22.34 21 22.18 21.27 22L22.5 22.5C22.63 22.5 22.76 22.5 22.83 22.37L23.83 20.64C23.89 20.53 23.86 20.4 23.77 20.32L22.7 19.5C22.72 19.33 22.74 19.17 22.74 19C22.74 18.83 22.73 18.67 22.7 18.5L23.76 17.68C23.85 17.6 23.88 17.47 23.82 17.36L22.82 15.63C22.76 15.5 22.63 15.5 22.5 15.5L21.27 16C21 15.82 20.73 15.65 20.42 15.53L20.23 14.21C20.22 14.09 20.11 14 20 14M19 17.5C19.83 17.5 20.5 18.17 20.5 19C20.5 19.83 19.83 20.5 19 20.5C18.16 20.5 17.5 19.83 17.5 19C17.5 18.17 18.17 17.5 19 17.5Z\";\nexport var mdiFileCompare = \"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z\";\nexport var mdiFileDelimited = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M15 16L13 20H10L12 16H9V11H15V16M13 9V3.5L18.5 9H13Z\";\nexport var mdiFileDelimitedOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M18 20H6V4H13V9H18V20M10 19L12 15H9V10H15V15L13 19H10\";\nexport var mdiFileDocument = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M15,18V16H6V18H15M18,14V12H6V14H18Z\";\nexport var mdiFileDocumentAlert = \"M20 17H22V15H20V17M20 7V13H22V7H20M11 9H16.5L11 3.5V9M4 2H12L18 8V20C18 21.11 17.11 22 16 22H4C2.89 22 2 21.1 2 20V4C2 2.89 2.89 2 4 2M13 18V16H4V18H13M16 14V12H4V14H16Z\";\nexport var mdiFileDocumentAlertOutline = \"M20 17H22V15H20V17M20 7V13H22V7M6 16H11V18H6M6 12H14V14H6M4 2C2.89 2 2 2.89 2 4V20C2 21.11 2.89 22 4 22H16C17.11 22 18 21.11 18 20V8L12 2M4 4H11V9H16V20H4Z\";\nexport var mdiFileDocumentArrowRight = \"M23 19L20 16V18H16V20H20V22L23 19M13 19C13 18.7 13 18.3 13.1 18H6V16H13.8C14.3 15.2 14.9 14.5 15.7 14H6V12H18V13.1C18.3 13 18.7 13 19 13S19.7 13 20 13.1V8L14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H13.8C13.3 21.1 13 20.1 13 19M13 3.5L18.5 9H13V3.5Z\";\nexport var mdiFileDocumentArrowRightOutline = \"M23 19L20 16V18H16V20H20V22L23 19M13.8 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H14L20 8V13.1C19.7 13 19.3 13 19 13S18.3 13 18 13.1V9H13V4H6V20H13.1C13.2 20.7 13.5 21.4 13.8 22M8 12H16V13.8C15.9 13.9 15.8 13.9 15.7 14H8V12M8 16H13V18H8V16Z\";\nexport var mdiFileDocumentCheck = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M6 2C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 18.67 13.03 18.33 13.08 18H6V16H13.81C14.27 15.2 14.91 14.5 15.68 14H6V12H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 3.5L18.5 9H13Z\";\nexport var mdiFileDocumentCheckOutline = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M6 2C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.45 21.38 13.2 20.7 13.08 20H6V4H13V9H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M8 12V14H16V12M8 16V18H13V16Z\";\nexport var mdiFileDocumentEdit = \"M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V20.09L12.09,18H6V16H14.09L16.09,14H6V12H18.09L20,10.09V8L14,2H6M13,3.5L18.5,9H13V3.5M20.15,13C20,13 19.86,13.05 19.75,13.16L18.73,14.18L20.82,16.26L21.84,15.25C22.05,15.03 22.05,14.67 21.84,14.46L20.54,13.16C20.43,13.05 20.29,13 20.15,13M18.14,14.77L12,20.92V23H14.08L20.23,16.85L18.14,14.77Z\";\nexport var mdiFileDocumentEditOutline = \"M8,12H16V14H8V12M10,20H6V4H13V9H18V12.1L20,10.1V8L14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H10V20M8,18H12.1L13,17.1V16H8V18M20.2,13C20.3,13 20.5,13.1 20.6,13.2L21.9,14.5C22.1,14.7 22.1,15.1 21.9,15.3L20.9,16.3L18.8,14.2L19.8,13.2C19.9,13.1 20,13 20.2,13M20.2,16.9L14.1,23H12V20.9L18.1,14.8L20.2,16.9Z\";\nexport var mdiFileDocumentMinus = \"M15 18H23V20H15M6 2C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 18.67 13.03 18.33 13.08 18H6V16H13.81C14.27 15.2 14.91 14.5 15.68 14H6V12H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 3.5L18.5 9H13Z\";\nexport var mdiFileDocumentMinusOutline = \"M23 18H15V20H23M6 2C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.45 21.38 13.2 20.7 13.08 20H6V4H13V9H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M8 12V14H16V12M8 16V18H13V16Z\";\nexport var mdiFileDocumentMultiple = \"M4 4V22H20V24H4C2.9 24 2 23.1 2 22V4H4M15 7H20.5L15 1.5V7M8 0H16L22 6V18C22 19.11 21.11 20 20 20H8C6.89 20 6 19.1 6 18V2C6 .89 6.89 0 8 0M17 16V14H8V16H17M20 12V10H8V12H20Z\";\nexport var mdiFileDocumentMultipleOutline = \"M16 0H8C6.9 0 6 .9 6 2V18C6 19.1 6.9 20 8 20H20C21.1 20 22 19.1 22 18V6L16 0M20 18H8V2H15V7H20V18M4 4V22H20V24H4C2.9 24 2 23.1 2 22V4H4M10 10V12H18V10H10M10 14V16H15V14H10Z\";\nexport var mdiFileDocumentOutline = \"M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M6,4H13V9H18V20H6V4M8,12V14H16V12H8M8,16V18H13V16H8Z\";\nexport var mdiFileDocumentPlus = \"M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 18.67 13.03 18.33 13.08 18H6V16H13.81C14.27 15.2 14.91 14.5 15.68 14H6V12H18V13.08C18.33 13.03 18.67 13 19 13S19.67 13.03 20 13.08V8L14 2M13 9V3.5L18.5 9H13M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFileDocumentPlusOutline = \"M23 18H20V15H18V18H15V20H18V23H20V20H23M6 2C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.45 21.38 13.2 20.7 13.08 20H6V4H13V9H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M8 12V14H16V12M8 16V18H13V16Z\";\nexport var mdiFileDocumentRefresh = \"M6 2H14L20 8V12.17C19.5 12.06 19 12 18.5 12H6V14H13.81C13.26 14.58 12.81 15.25 12.5 16H6V18H12V18.5C12 19.79 12.38 21 13 22H6C4.89 22 4 21.1 4 20V4C4 2.89 4.89 2 6 2M13 9H18.5L13 3.5V9M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5Z\";\nexport var mdiFileDocumentRefreshOutline = \"M6 2C5.47 2 4.96 2.21 4.59 2.59C4.21 2.96 4 3.47 4 4V20C4 20.53 4.21 21.04 4.59 21.41C4.96 21.79 5.47 22 6 22H13C12.63 21.4 12.34 20.72 12.17 20H6V4H13V9H18V12H18.5C19 12 19.5 12.06 20 12.17V8L14 2H6M12 18C12.07 17.3 12.24 16.62 12.5 16H8V18H12M13.81 14C14.43 13.36 15.17 12.85 16 12.5V12H8V14H13.81M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5Z\";\nexport var mdiFileDocumentRemove = \"M21.12 15.46L19 17.59L16.88 15.46L15.46 16.88L17.59 19L15.46 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88M6 2C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 18.67 13.03 18.33 13.08 18H6V16H13.81C14.27 15.2 14.91 14.5 15.68 14H6V12H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 3.5L18.5 9H13Z\";\nexport var mdiFileDocumentRemoveOutline = \"M22.54 21.12L20.41 19L22.54 16.88L21.12 15.46L19 17.59L16.88 15.46L15.46 16.88L17.59 19L15.46 21.12L16.88 22.54L19 20.41L21.12 22.54M6 2C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.45 21.38 13.2 20.7 13.08 20H6V4H13V9H18V13.08C18.33 13.03 18.67 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M8 12V14H16V12M8 16V18H13V16Z\";\nexport var mdiFileDownload = \"M14,2H6C4.89,2 4,2.89 4,4V20C4,21.11 4.89,22 6,22H18C19.11,22 20,21.11 20,20V8L14,2M12,19L8,15H10.5V12H13.5V15H16L12,19M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileDownloadOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z\";\nexport var mdiFileEdit = \"M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H10V20.1L20 10.1V8L14 2H6M13 3.5L18.5 9H13V3.5M20.1 13C20 13 19.8 13.1 19.7 13.2L18.7 14.2L20.8 16.3L21.8 15.3C22 15.1 22 14.7 21.8 14.5L20.5 13.2C20.4 13.1 20.3 13 20.1 13M18.1 14.8L12 20.9V23H14.1L20.2 16.9L18.1 14.8Z\";\nexport var mdiFileEditOutline = \"M10 20H6V4H13V9H18V12.1L20 10.1V8L14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H10V20M20.2 13C20.3 13 20.5 13.1 20.6 13.2L21.9 14.5C22.1 14.7 22.1 15.1 21.9 15.3L20.9 16.3L18.8 14.2L19.8 13.2C19.9 13.1 20 13 20.2 13M20.2 16.9L14.1 23H12V20.9L18.1 14.8L20.2 16.9Z\";\nexport var mdiFileExcel = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M15.8,20H14L12,16.6L10,20H8.2L11.1,15.5L8.2,11H10L12,14.4L14,11H15.8L12.9,15.5L15.8,20M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileExcelBox = \"M16.2,17H14.2L12,13.2L9.8,17H7.8L11,12L7.8,7H9.8L12,10.8L14.2,7H16.2L13,12M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiFileExcelBoxOutline = \"M5 3C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3H5M5 5H19V19H5V5M13 12L16.2 17H14.2L12 13.2L9.8 17H7.8L11 12L7.8 7H9.8L12 10.8L14.2 7H16.2L13 12Z\";\nexport var mdiFileExcelOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M12.9 14.5L15.8 19H14L12 15.6L10 19H8.2L11.1 14.5L8.2 10H10L12 13.4L14 10H15.8L12.9 14.5Z\";\nexport var mdiFileExport = \"M6,2C4.89,2 4,2.9 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13,3.5L18.5,9H13M8.93,12.22H16V19.29L13.88,17.17L11.05,20L8.22,17.17L11.05,14.35\";\nexport var mdiFileExportOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M18 20H6V4H13V9H18V20M16 11V18.1L13.9 16L11.1 18.8L8.3 16L11.1 13.2L8.9 11H16Z\";\nexport var mdiFileEye = \"M17,18C17.56,18 18,18.44 18,19C18,19.56 17.56,20 17,20C16.44,20 16,19.56 16,19C16,18.44 16.44,18 17,18M17,15C14.27,15 11.94,16.66 11,19C11.94,21.34 14.27,23 17,23C19.73,23 22.06,21.34 23,19C22.06,16.66 19.73,15 17,15M17,21.5A2.5,2.5 0 0,1 14.5,19A2.5,2.5 0 0,1 17,16.5A2.5,2.5 0 0,1 19.5,19A2.5,2.5 0 0,1 17,21.5M9.14,19.75L8.85,19L9.14,18.26C10.43,15.06 13.5,13 17,13C18.05,13 19.06,13.21 20,13.56V8L14,2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10.5C9.95,21.34 9.5,20.58 9.14,19.75M13,3.5L18.5,9H13V3.5Z\";\nexport var mdiFileEyeOutline = \"M17,18C17.56,18 18,18.44 18,19C18,19.56 17.56,20 17,20C16.44,20 16,19.56 16,19C16,18.44 16.44,18 17,18M17,15C14.27,15 11.94,16.66 11,19C11.94,21.34 14.27,23 17,23C19.73,23 22.06,21.34 23,19C22.06,16.66 19.73,15 17,15M17,21.5A2.5,2.5 0 0,1 14.5,19A2.5,2.5 0 0,1 17,16.5A2.5,2.5 0 0,1 19.5,19A2.5,2.5 0 0,1 17,21.5M9.27,20H6V4H13V9H18V13.07C18.7,13.15 19.36,13.32 20,13.56V8L14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H10.5C10,21.41 9.59,20.73 9.27,20Z\";\nexport var mdiFileFind = \"M9,13A3,3 0 0,0 12,16A3,3 0 0,0 15,13A3,3 0 0,0 12,10A3,3 0 0,0 9,13M20,19.59V8L14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18C18.45,22 18.85,21.85 19.19,21.6L14.76,17.17C13.96,17.69 13,18 12,18A5,5 0 0,1 7,13A5,5 0 0,1 12,8A5,5 0 0,1 17,13C17,14 16.69,14.96 16.17,15.75L20,19.59Z\";\nexport var mdiFileFindOutline = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M6,4H13L18,9V17.58L16.16,15.74C17.44,13.8 17.23,11.17 15.5,9.46C14.55,8.5 13.28,8 12,8C10.72,8 9.45,8.5 8.47,9.46C6.5,11.41 6.5,14.57 8.47,16.5C9.44,17.5 10.72,17.97 12,17.97C12.96,17.97 13.92,17.69 14.75,17.14L17.6,20H6V4M14.11,15.1C13.55,15.66 12.8,16 12,16C11.2,16 10.45,15.67 9.89,15.1C9.33,14.54 9,13.79 9,13C9,12.19 9.32,11.44 9.89,10.88C10.45,10.31 11.2,10 12,10C12.8,10 13.55,10.31 14.11,10.88C14.67,11.44 15,12.19 15,13C15,13.79 14.68,14.54 14.11,15.1Z\";\nexport var mdiFileGifBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M10 10.5H7.5V13.5H8.5V12H10V13.7C10 14.4 9.5 15 8.7 15H7.3C6.5 15 6 14.3 6 13.7V10.4C6 9.7 6.5 9 7.3 9H8.6C9.5 9 10 9.7 10 10.3V10.5M13 15H11.5V9H13V15M17.5 10.5H16V11.5H17.5V13H16V15H14.5V9H17.5V10.5Z\";\nexport var mdiFileHidden = \"M13,9H14V11H11V7H13V9M18.5,9L16.38,6.88L17.63,5.63L20,8V10H18V11H15V9H18.5M13,3.5V2H12V4H13V6H11V4H9V2H8V4H6V5H4V4C4,2.89 4.89,2 6,2H14L16.36,4.36L15.11,5.61L13,3.5M20,20A2,2 0 0,1 18,22H16V20H18V19H20V20M18,15H20V18H18V15M12,22V20H15V22H12M8,22V20H11V22H8M6,22C4.89,22 4,21.1 4,20V18H6V20H7V22H6M4,14H6V17H4V14M4,10H6V13H4V10M18,11H20V14H18V11M4,6H6V9H4V6Z\";\nexport var mdiFileImage = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M6,20H15L18,20V12L14,16L12,14L6,20M8,9A2,2 0 0,0 6,11A2,2 0 0,0 8,13A2,2 0 0,0 10,11A2,2 0 0,0 8,9Z\";\nexport var mdiFileImageMarker = \"M6 20L12 14L13.03 15.03C13.28 12.26 15.68 10 18.5 10C19 10 19.5 10.08 20 10.22V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.1 4.89 22 6 22H15.91C15.5 21.44 15 20.76 14.55 20H6M13 3.5L18.5 9H13V3.5M8 9C9.11 9 10 9.9 10 11S9.11 13 8 13 6 12.11 6 11 6.9 9 8 9M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8Z\";\nexport var mdiFileImageMarkerOutline = \"M8.5 12C7.67 12 7 11.33 7 10.5S7.67 9 8.5 9 10 9.67 10 10.5 9.33 12 8.5 12M14 19C13.43 17.86 13 16.64 13 15.5C13 15.34 13 15.18 13.03 15.03L12 14L7 19H14M6 20V4H13V9H18V10.03C18.17 10 18.33 10 18.5 10C19 10 19.5 10.08 20 10.22V8L14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H15.91C15.5 21.44 15 20.76 14.55 20H6M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiFileImageMinus = \"M13.09 20H6L12 14L13.88 15.88C14.5 14.9 15.36 14.1 16.4 13.6L18 12V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M13 3.5L18.5 9H13V3.5M8 9C9.11 9 10 9.9 10 11S9.11 13 8 13 6 12.11 6 11 6.9 9 8 9M23 18V20H15V18H23Z\";\nexport var mdiFileImageMinusOutline = \"M7 19L12 14L13.88 15.88C13.33 16.79 13 17.86 13 19H7M10 10.5C10 9.67 9.33 9 8.5 9S7 9.67 7 10.5 7.67 12 8.5 12 10 11.33 10 10.5M13.09 20H6V4H13V9H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M15 18V20H23V18H15Z\";\nexport var mdiFileImageOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M17,13V19H7L12,14L14,16M10,10.5A1.5,1.5 0 0,1 8.5,12A1.5,1.5 0 0,1 7,10.5A1.5,1.5 0 0,1 8.5,9A1.5,1.5 0 0,1 10,10.5Z\";\nexport var mdiFileImagePlus = \"M13.09 20H6L12 14L13.88 15.88C14.5 14.9 15.36 14.1 16.4 13.6L18 12V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M13 3.5L18.5 9H13V3.5M8 9C9.11 9 10 9.9 10 11S9.11 13 8 13 6 12.11 6 11 6.9 9 8 9M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiFileImagePlusOutline = \"M7 19L12 14L13.88 15.88C13.33 16.79 13 17.86 13 19H7M10 10.5C10 9.67 9.33 9 8.5 9S7 9.67 7 10.5 7.67 12 8.5 12 10 11.33 10 10.5M13.09 20H6V4H13V9H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFileImageRemove = \"M13.09 20H6L12 14L13.88 15.88C14.5 14.9 15.36 14.1 16.4 13.6L18 12V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M13 3.5L18.5 9H13V3.5M8 9C9.11 9 10 9.9 10 11S9.11 13 8 13 6 12.11 6 11 6.9 9 8 9M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88Z\";\nexport var mdiFileImageRemoveOutline = \"M7 19L12 14L13.88 15.88C13.33 16.79 13 17.86 13 19H7M10 10.5C10 9.67 9.33 9 8.5 9S7 9.67 7 10.5 7.67 12 8.5 12 10 11.33 10 10.5M13.09 20H6V4H13V9H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V8L14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H13.81C13.46 21.39 13.21 20.72 13.09 20M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiFileImport = \"M6,2C4.89,2 4,2.9 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13,3.5L18.5,9H13M10.05,11.22L12.88,14.05L15,11.93V19H7.93L10.05,16.88L7.22,14.05\";\nexport var mdiFileImportOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M15 11.93V19H7.93L10.05 16.88L7.22 14.05L10.05 11.22L12.88 14.05L15 11.93Z\";\nexport var mdiFileJpgBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9 13.5C9 14.6 8.1 15 7 15S5 14.6 5 13.5V12H6.5V13.5H7.5V9H9V13.5M14 11.5C14 12.3 13.3 13 12.5 13H11.5V15H10V9H12.5C13.3 9 14 9.7 14 10.5V11.5M19 10.5H16.5V13.5H17.5V12H19V13.7C19 14.4 18.5 15 17.7 15H16.4C15.6 15 15.1 14.3 15.1 13.7V10.4C15 9.7 15.5 9 16.3 9H17.6C18.4 9 18.9 9.7 18.9 10.3V10.5M11.5 10.5H12.5V11.5H11.5V10.5Z\";\nexport var mdiFileKey = \"M11 16C11 16.6 10.6 17 10 17S9 16.6 9 16C9 15.4 9.4 15 10 15S11 15.4 11 16M20 8V20C20 21.1 19.1 22 18 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H14M18 15H12.8C12.2 13.4 10.5 12.6 9 13.2C7.4 13.8 6.6 15.5 7.2 17S9.5 19.4 11 18.8C11.9 18.5 12.5 17.8 12.8 17H14V19H16V17H18M18.5 9L13 3.5V9H18.5Z\";\nexport var mdiFileKeyOutline = \"M14 2H6A2 2 0 0 0 4 4V20A2 2 0 0 0 6 22H18A2 2 0 0 0 20 20V8L14 2M18 20H6V4H13V9H18M12.83 15A3 3 0 1 0 12.83 17H14V19H16V17H17V15M10 17A1 1 0 1 1 11 16A1 1 0 0 1 10 17Z\";\nexport var mdiFileLink = \"M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M11 20H10C8.39 20 6 18.94 6 16C6 13.07 8.39 12 10 12H11V14H10C9.54 14 8 14.17 8 16C8 17.9 9.67 18 10 18H11V20M15 15V17H9V15H15M14 20H13V18H14C14.46 18 16 17.83 16 16C16 14.1 14.33 14 14 14H13V12H14C15.61 12 18 13.07 18 16C18 18.94 15.61 20 14 20M13 9V3.5L18.5 9H13Z\";\nexport var mdiFileLinkOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M11 19H10.75C9.45 19 7 18.22 7 15.25S9.45 11.5 10.75 11.5H11V13H10.75C10.38 13 8.5 13.13 8.5 15.25C8.5 17.44 10.5 17.5 10.75 17.5H11V19M14 16H10V14.5H14V16M13 11.5H13.25C14.55 11.5 17 12.28 17 15.25S14.55 19 13.25 19H13V17.5H13.25C13.62 17.5 15.5 17.37 15.5 15.25C15.5 13.06 13.5 13 13.25 13H13V11.5Z\";\nexport var mdiFileLock = \"M18 13C16.6 13 15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17V15.5C20.8 14.1 19.4 13 18 13M18 14.2C18.8 14.2 19.5 14.7 19.5 15.5V17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H12V18.2C12 17.2 12.4 16.5 13 16C13.1 15.9 13.2 15.9 13.2 15.8V15.5C13.2 12.8 15.6 11 18 11C18.7 11 19.4 11.2 20 11.4V8L14 2H6M13 3.5L18.5 9H13V3.5Z\";\nexport var mdiFileLockOpen = \"M22 18.3V21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V14.5C15.2 13.1 16.6 12 18 12S20.8 13.1 20.8 14.5V15H19.5V14.5C19.5 13.7 18.8 13.2 18 13.2S16.5 13.7 16.5 14.5V17H20.8C21.4 17 22 17.6 22 18.3M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H12V18.2C12 17.2 12.4 16.5 13 16C13.1 15.9 13.2 15.9 13.2 15.8V14.5C13.2 11.8 15.6 10 18 10C18.7 10 19.4 10.2 20 10.4V8L14 2H6M13 3.5L18.5 9H13V3.5Z\";\nexport var mdiFileLockOpenOutline = \"M22 18.3V21.8C22 22.4 21.4 23 20.7 23H15.2C14.6 23 14 22.4 14 21.7V18.2C14 17.6 14.6 17 15.2 17V14.5C15.2 13.1 16.6 12 18 12S20.8 13.1 20.8 14.5V15H19.5V14.5C19.5 13.7 18.8 13.2 18 13.2S16.5 13.7 16.5 14.5V17H20.8C21.4 17 22 17.6 22 18.3M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H12V20H6V4H13V9H18V10C18.7 10 19.4 10.2 20 10.4V8L14 2H6Z\";\nexport var mdiFileLockOutline = \"M18 13C16.6 13 15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17V15.5C20.8 14.1 19.4 13 18 13M18 14.2C18.8 14.2 19.5 14.7 19.5 15.5V17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2M6 2C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H12V20H6V4H13V9H18V11C18.7 11 19.4 11.2 20 11.4V8L14 2H6Z\";\nexport var mdiFileMarker = \"M18.5 10C19 10 19.5 10.08 20 10.22V8L14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H15.91C14.7 20.41 13 17.78 13 15.5C13 12.5 15.5 10 18.5 10M13 3.5L18.5 9H13V3.5M18.5 12C16.6 12 15 13.6 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5C22 13.6 20.4 12 18.5 12M18.5 16.8C17.8 16.8 17.3 16.2 17.3 15.6C17.3 14.9 17.9 14.4 18.5 14.4S19.7 15 19.7 15.6C19.8 16.2 19.2 16.8 18.5 16.8Z\";\nexport var mdiFileMarkerOutline = \"M14.55 20C15 20.76 15.5 21.44 15.91 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V10.22C19.5 10.08 19 10 18.5 10C18.33 10 18.17 10 18 10.03V9H13V4H6V20H14.55M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiFileMinus = \"M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 15.69 15.69 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 9V3.5L18.5 9H13M23 20H15V18H23V20Z\";\nexport var mdiFileMinusOutline = \"M13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V13.09C19.67 13.04 19.34 13 19 13S18.33 13.04 18 13.09V9H13V4H6V20H13.09C13.21 20.72 13.46 21.39 13.81 22M23 18H15V20H23V18Z\";\nexport var mdiFileMove = \"M14,17H18V14L23,18.5L18,23V20H14V17M13,9H18.5L13,3.5V9M6,2H14L20,8V12.34C19.37,12.12 18.7,12 18,12A6,6 0 0,0 12,18C12,19.54 12.58,20.94 13.53,22H6C4.89,22 4,21.1 4,20V4A2,2 0 0,1 6,2Z\";\nexport var mdiFileMoveOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 20.41 4.12 20.8 4.34 21.12C4.41 21.23 4.5 21.33 4.59 21.41C4.95 21.78 5.45 22 6 22H13.53C13 21.42 12.61 20.75 12.35 20H6V4H13V9H18V12C18.7 12 19.37 12.12 20 12.34V8L14 2M18 23L23 18.5L20 15.8L18 14V17H14V20H18V23Z\";\nexport var mdiFileMultiple = \"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\";\nexport var mdiFileMultipleOutline = \"M16 0H8C6.9 0 6 .9 6 2V18C6 19.1 6.9 20 8 20H20C21.1 20 22 19.1 22 18V6L16 0M20 18H8V2H15V7H20V18M4 4V22H20V24H4C2.9 24 2 23.1 2 22V4H4Z\";\nexport var mdiFileMusic = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13,13H11V18A2,2 0 0,1 9,20A2,2 0 0,1 7,18A2,2 0 0,1 9,16C9.4,16 9.7,16.1 10,16.3V11H13V13M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileMusicOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M13,10V12H11V17A2,2 0 0,1 9,19A2,2 0 0,1 7,17A2,2 0 0,1 9,15C9.4,15 9.7,15.1 10,15.3V10H13Z\";\nexport var mdiFileOutline = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z\";\nexport var mdiFilePdfBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9.5 11.5C9.5 12.3 8.8 13 8 13H7V15H5.5V9H8C8.8 9 9.5 9.7 9.5 10.5V11.5M14.5 13.5C14.5 14.3 13.8 15 13 15H10.5V9H13C13.8 9 14.5 9.7 14.5 10.5V13.5M18.5 10.5H17V11.5H18.5V13H17V15H15.5V9H18.5V10.5M12 10.5H13V13.5H12V10.5M7 10.5H8V11.5H7V10.5Z\";\nexport var mdiFilePercent = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M7.37,20L15,12.35L13.65,11L6,18.65L7.37,20M13,9H18.5L13,3.5V9M7.5,11A1.5,1.5 0 0,0 6,12.5A1.5,1.5 0 0,0 7.5,14A1.5,1.5 0 0,0 9,12.5A1.5,1.5 0 0,0 7.5,11M13.5,17A1.5,1.5 0 0,0 12,18.5A1.5,1.5 0 0,0 13.5,20A1.5,1.5 0 0,0 15,18.5A1.5,1.5 0 0,0 13.5,17Z\";\nexport var mdiFilePercentOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M10 11.5C10 12.33 9.33 13 8.5 13S7 12.33 7 11.5 7.67 10 8.5 10 10 10.67 10 11.5M16 17.5C16 18.33 15.33 19 14.5 19S13 18.33 13 17.5 13.67 16 14.5 16 16 16.67 16 17.5M16 11.35L8.37 19L7 17.65L14.65 10L16 11.35Z\";\nexport var mdiFilePhone = \"M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M17 19.44C17 19.75 16.75 20 16.44 20C11.23 20 7 15.77 7 10.56C7 10.25 7.25 10 7.56 10H9.5C9.81 10 10.06 10.25 10.06 10.56C10.06 11.25 10.17 11.92 10.37 12.54C10.43 12.73 10.39 12.95 10.23 13.11L9 14.33C9.81 15.9 11.1 17.19 12.67 18L13.9 16.77C14.05 16.61 14.27 16.57 14.46 16.63C15.08 16.83 15.75 16.95 16.45 16.95C16.75 16.95 17 17.19 17 17.5V19.44M13 9V3.5L18.5 9H13Z\";\nexport var mdiFilePhoneOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M9 13.33C9.81 14.9 11.1 16.19 12.67 17L13.89 15.77C14.05 15.61 14.27 15.57 14.46 15.63C15.08 15.83 15.75 15.95 16.44 15.95C16.75 15.95 17 16.19 17 16.5V18.45C17 18.75 16.75 19 16.44 19C11.23 19 7 14.77 7 9.56C7 9.25 7.25 9 7.56 9H9.5C9.81 9 10.06 9.25 10.06 9.56C10.06 10.25 10.17 10.92 10.37 11.54C10.43 11.73 10.39 11.95 10.23 12.11L9 13.33Z\";\nexport var mdiFilePlus = \"M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 15.69 15.69 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 9V3.5L18.5 9H13M23 20H20V23H18V20H15V18H18V15H20V18H23V20Z\";\nexport var mdiFilePlusOutline = \"M13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V13.09C19.67 13.04 19.34 13 19 13S18.33 13.04 18 13.09V9H13V4H6V20H13.09C13.21 20.72 13.46 21.39 13.81 22M23 18H20V15H18V18H15V20H18V23H20V20H23V18Z\";\nexport var mdiFilePngBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9 11.5C9 12.3 8.3 13 7.5 13H6.5V15H5V9H7.5C8.3 9 9 9.7 9 10.5V11.5M14 15H12.5L11.5 12.5V15H10V9H11.5L12.5 11.5V9H14V15M19 10.5H16.5V13.5H17.5V12H19V13.7C19 14.4 18.5 15 17.7 15H16.4C15.6 15 15.1 14.3 15.1 13.7V10.4C15 9.7 15.5 9 16.3 9H17.6C18.4 9 18.9 9.7 18.9 10.3V10.5H19M6.5 10.5H7.5V11.5H6.5V10.5Z\";\nexport var mdiFilePowerpoint = \"M12.6,12.3H10.6V15.5H12.7C13.3,15.5 13.6,15.3 13.9,15C14.2,14.7 14.3,14.4 14.3,13.9C14.3,13.4 14.2,13.1 13.9,12.8C13.6,12.5 13.2,12.3 12.6,12.3M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M15.2,16C14.6,16.5 14.1,16.7 12.8,16.7H10.6V20H9V11H12.8C14.1,11 14.7,11.3 15.2,11.8C15.8,12.4 16,13 16,13.9C16,14.8 15.8,15.5 15.2,16M13,9V3.5L18.5,9H13Z\";\nexport var mdiFilePowerpointBox = \"M9.8,13.4H12.3C13.8,13.4 14.46,13.12 15.1,12.58C15.74,12.03 16,11.25 16,10.23C16,9.26 15.75,8.5 15.1,7.88C14.45,7.29 13.83,7 12.3,7H8V17H9.8V13.4M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5C3,3.89 3.9,3 5,3H19M9.8,12V8.4H12.1C12.76,8.4 13.27,8.65 13.6,9C13.93,9.35 14.1,9.72 14.1,10.24C14.1,10.8 13.92,11.19 13.6,11.5C13.28,11.81 12.9,12 12.22,12H9.8Z\";\nexport var mdiFilePowerpointBoxOutline = \"M5 3C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3H5M5 5H19V19H5V5M15.1 7.88C14.45 7.29 13.83 7 12.3 7H8V17H9.8V13.4H12.3C13.8 13.4 14.46 13.12 15.1 12.58C15.74 12.03 16 11.25 16 10.23C16 9.26 15.75 8.5 15.1 7.88M13.6 11.5C13.28 11.81 12.9 12 12.22 12H9.8V8.4H12.1C12.76 8.4 13.27 8.65 13.6 9C13.93 9.35 14.1 9.72 14.1 10.24C14.1 10.8 13.92 11.19 13.6 11.5Z\";\nexport var mdiFilePowerpointOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M15.2 10.8C14.7 10.3 14.1 10 12.8 10H9V19H10.6V15.7H12.8C14.1 15.7 14.6 15.5 15.2 15C15.8 14.5 16 13.8 16 12.9C16 12 15.8 11.4 15.2 10.8M13.9 14C13.6 14.3 13.3 14.5 12.7 14.5H10.6V11.3H12.6C13.2 11.3 13.6 11.5 13.9 11.8C14.2 12.1 14.3 12.4 14.3 12.9S14.2 13.7 13.9 14Z\";\nexport var mdiFilePresentationBox = \"M19,16H5V8H19M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiFileQuestion = \"M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M13,3.5L18.5,9H13V3.5M12,11A3,3 0 0,1 15,14C15,15.88 12.75,16.06 12.75,17.75H11.25C11.25,15.31 13.5,15.5 13.5,14A1.5,1.5 0 0,0 12,12.5A1.5,1.5 0 0,0 10.5,14H9A3,3 0 0,1 12,11M11.25,18.5H12.75V20H11.25V18.5Z\";\nexport var mdiFileQuestionOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M15 13C15 14.89 12.75 15.07 12.75 16.76H11.25C11.25 14.32 13.5 14.5 13.5 13C13.5 12.18 12.83 11.5 12 11.5S10.5 12.18 10.5 13H9C9 11.35 10.34 10 12 10S15 11.35 15 13M12.75 17.5V19H11.25V17.5H12.75Z\";\nexport var mdiFileRefresh = \"M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5M13 9H18.5L13 3.5V9M6 2H14L20 8V12.17C19.5 12.06 19 12 18.5 12C14.91 12 12 14.91 12 18.5C12 19.79 12.37 21 13 22H6C4.88 22 4 21.1 4 20L4 4C4 2.89 4.89 2 6 2Z\";\nexport var mdiFileRefreshOutline = \"M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5M14 2L20 8V12.17C19.5 12.06 19 12 18.5 12L18 12V9H13V4H6V20H12.17C12.34 20.72 12.63 21.39 13 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H14Z\";\nexport var mdiFileRemove = \"M21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19L22.54 21.12L21.12 22.54M14 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.81C13.28 21.09 13 20.05 13 19C13 15.69 15.69 13 19 13C19.34 13 19.67 13.03 20 13.08V8L14 2M13 9V3.5L18.5 9H13Z\";\nexport var mdiFileRemoveOutline = \"M13.81 22H6C4.89 22 4 21.11 4 20V4C4 2.9 4.89 2 6 2H14L20 8V13.09C19.67 13.04 19.34 13 19 13S18.33 13.04 18 13.09V9H13V4H6V20H13.09C13.21 20.72 13.46 21.39 13.81 22M22.54 21.12L20.41 19L22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12Z\";\nexport var mdiFileReplace = \"M14,12H19.5L14,6.5V12M8,5H15L21,11V21A2,2 0 0,1 19,23H8C6.89,23 6,22.1 6,21V18H11V20L15,17L11,14V16H6V7A2,2 0 0,1 8,5M13.5,3H4V16H6V18H4A2,2 0 0,1 2,16V3A2,2 0 0,1 4,1H11.5L13.5,3Z\";\nexport var mdiFileReplaceOutline = \"M14,3L12,1H4A2,2 0 0,0 2,3V15A2,2 0 0,0 4,17H11V19L15,16L11,13V15H4V3H14M21,10V21A2,2 0 0,1 19,23H8A2,2 0 0,1 6,21V19H8V21H19V12H14V7H8V13H6V7A2,2 0 0,1 8,5H16L21,10Z\";\nexport var mdiFileRestore = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M12,18C9.95,18 8.19,16.76 7.42,15H9.13C9.76,15.9 10.81,16.5 12,16.5A3.5,3.5 0 0,0 15.5,13A3.5,3.5 0 0,0 12,9.5C10.65,9.5 9.5,10.28 8.9,11.4L10.5,13H6.5V9L7.8,10.3C8.69,8.92 10.23,8 12,8A5,5 0 0,1 17,13A5,5 0 0,1 12,18Z\";\nexport var mdiFileRestoreOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M18 20H6V4H13L18 9V20M17 13.24C17 15.86 14.87 18 12.24 18C10.29 18 8.61 16.82 7.88 15.14H9.5C10.11 16 11.11 16.57 12.24 16.57C14.08 16.57 15.57 15.07 15.57 13.24S14.08 9.9 12.24 9.9C10.95 9.9 9.86 10.65 9.29 11.71L10.81 13.24H7V9.43L8.24 10.67C9.09 9.35 10.55 8.5 12.24 8.5C14.87 8.47 17 10.61 17 13.24Z\";\nexport var mdiFileRotateLeft = \"M17 7H13C11.9 7 11 7.9 11 9V18C11 19.11 11.9 20 13 20H19C20.11 20 21 19.11 21 18V11L17 7M19 12H16V9H16.17L19 11.83V12M4 11C4 6.58 7.58 3 12 3L13 3.06V5.08L12 5C8.69 5 6 7.69 6 11H9L5 15L1 11H4\";\nexport var mdiFileRotateLeftOutline = \"M4 11C4 6.58 7.58 3 12 3L13 3.06V5.08L12 5C8.69 5 6 7.69 6 11H9L5 15L1 11H4M17 7H13C11.9 7 11 7.9 11 9V18C11 19.11 11.9 20 13 20H19C20.11 20 21 19.11 21 18V11L17 7M19 18H13V9H16V12H19V18Z\";\nexport var mdiFileRotateRight = \"M5 20C3.9 20 3 19.11 3 18V9C3 7.9 3.9 7 5 7H9L13 11V18C13 19.11 12.11 20 11 20H5M11 11.83L8.17 9H8V12H11V11.83M20 11H23L19 15L15 11H18C18 7.69 15.31 5 12 5L11 5.08V3.06L12 3C16.42 3 20 6.58 20 11\";\nexport var mdiFileRotateRightOutline = \"M20 11H23L19 15L15 11H18C18 7.69 15.31 5 12 5L11 5.08V3.06L12 3C16.42 3 20 6.58 20 11M9 7H5C3.9 7 3 7.9 3 9V18C3 19.11 3.9 20 5 20H11C12.11 20 13 19.11 13 18V11L9 7M11 18H5V9H8V12H11V18Z\";\nexport var mdiFileSearch = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 11.86,21.1C9.22,18.67 9.05,14.56 11.5,11.92C13.69,9.5 17.33,9.13 20,11V8L14,2M13,9V3.5L18.5,9H13M20.31,18.9C21.64,16.79 21,14 18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 14.09,20.3C15.55,21.23 17.41,21.23 18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\";\nexport var mdiFileSearchOutline = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 14.09,20.3C15.55,21.23 17.41,21.23 18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\";\nexport var mdiFileSend = \"M14,2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M12.54,19.37V17.37H8.54V15.38H12.54V13.38L15.54,16.38L12.54,19.37M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileSendOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M12.54 18.5V16.5H8.54V14.5H12.54V12.5L15.54 15.5L12.54 18.5Z\";\nexport var mdiFileSettings = \"M6 0C4.89 0 4 .89 4 2V18A2 2 0 0 0 6 20H18A2 2 0 0 0 20 18V6L14 0H6M13 1.5L18.5 7H13V1.5M7 22V24H9V22H7M11 22V24H13V22H11M15 22V24H17V22H15Z\";\nexport var mdiFileSettingsOutline = \"M6 0A2 2 0 0 0 4 2V18A2 2 0 0 0 6 20H18A2 2 0 0 0 20 18V6L14 0H6M6 2H13V7H18V18H6V2M7 22V24H9V22H7M11 22V24H13V22H11M15 22V24H17V22H15Z\";\nexport var mdiFileSign = \"M19.7 12.9L14 18.6H11.7V16.3L17.4 10.6L19.7 12.9M23.1 12.1C23.1 12.4 22.8 12.7 22.5 13L20 15.5L19.1 14.6L21.7 12L21.1 11.4L20.4 12.1L18.1 9.8L20.3 7.7C20.5 7.5 20.9 7.5 21.2 7.7L22.6 9.1C22.8 9.3 22.8 9.7 22.6 10C22.4 10.2 22.2 10.4 22.2 10.6C22.2 10.8 22.4 11 22.6 11.2C22.9 11.5 23.2 11.8 23.1 12.1M3 20V4H10V9H15V10.5L17 8.5V8L11 2H3C1.9 2 1 2.9 1 4V20C1 21.1 1.9 22 3 22H15C16.1 22 17 21.1 17 20H3M11 17.1C10.8 17.1 10.6 17.2 10.5 17.2L10 15H8.5L6.4 16.7L7 14H5.5L4.5 19H6L8.9 16.4L9.5 18.7H10.5L11 18.6V17.1Z\";\nexport var mdiFileStar = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M14.5 18.9L12 17.5L9.5 19L10.2 16.2L8 14.3L10.9 14.1L12 11.4L13.1 14L16 14.2L13.8 16.1L14.5 18.9M13 9V3.5L18.5 9H13Z\";\nexport var mdiFileStarFourPoints = \"M4 4C4 2.89 4.89 2 6 2H14L20 8V20C20 20.53 19.79 21.04 19.41 21.41C19.04 21.79 18.53 22 18 22H6C5.47 22 4.96 21.79 4.59 21.41C4.21 21.04 4 20.53 4 20V4M13 3.5V9H18.5L13 3.5M12 11L10.74 13.75L8 15L10.74 16.26L12 19L13.25 16.26L16 15L13.25 13.75L12 11Z\";\nexport var mdiFileStarFourPointsOutline = \"M12 11L10.74 13.75L8 15L10.74 16.26L12 19L13.25 16.26L16 15L13.25 13.75L12 11M6 2H14L20 8V20C20 21.1 19.1 22 18 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2M6 4V20H18V9H13V4H6Z\";\nexport var mdiFileStarOutline = \"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2M18 20H6V4H13V9H18V20M9.5 18L10.2 15.2L8 13.3L10.9 13.1L12 10.4L13.1 13L16 13.2L13.8 15.1L14.5 17.9L12 16.5L9.5 18Z\";\nexport var mdiFileSwap = \"M14 2H6A2 2 0 0 0 4 4V20A2 2 0 0 0 6 22H18A2 2 0 0 0 20 20V8M14 18V16H10V18L7 15L10 12V14H14V12L17 15M13 9V3.5L18.5 9Z\";\nexport var mdiFileSwapOutline = \"M17 15L14 12V14H10V12L7 15L10 18V16H14V18M14 2H6A2 2 0 0 0 4 4V20A2 2 0 0 0 6 22H18A2 2 0 0 0 20 20V8L14 2M18 20H6V4H13V9H18Z\";\nexport var mdiFileSync = \"M11 17.5C11 13.9 13.9 11 17.5 11C18.4 11 19.2 11.2 20 11.5V8L14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H12.8C11.7 20.8 11 19.2 11 17.5M13 3.5L18.5 9H13V3.5M17 12V13.5C19.2 13.5 21 15.3 21 17.5C21 18.3 20.8 19.1 20.3 19.7L19.2 18.6C19.4 18.3 19.5 17.9 19.5 17.5C19.5 16.1 18.4 15 17 15V16.5L14.8 14.3L17 12M17 23V21.5C14.8 21.5 13 19.7 13 17.5C13 16.7 13.2 15.9 13.7 15.3L14.8 16.4C14.6 16.7 14.5 17.1 14.5 17.5C14.5 18.9 15.6 20 17 20V18.5L19.2 20.7L17 23Z\";\nexport var mdiFileSyncOutline = \"M12.8 22H6C4.9 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2H14L20 8V11.5C19.4 11.2 18.7 11.1 18 11V9H13V4H6V20H11.5C11.8 20.7 12.3 21.4 12.8 22M17 12L14.8 14.2L17 16.4V15C18.4 15 19.5 16.1 19.5 17.5C19.5 17.9 19.4 18.3 19.2 18.6L20.3 19.7C20.7 19.1 21 18.3 21 17.5C21 15.3 19.2 13.5 17 13.5V12M19.2 20.8L17 18.5V20C15.6 20 14.5 18.9 14.5 17.5C14.5 17.1 14.6 16.7 14.8 16.4L13.7 15.3C13.3 15.9 13 16.7 13 17.5C13 19.7 14.8 21.5 17 21.5V23L19.2 20.8Z\";\nexport var mdiFileTable = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M10,19H7V17H10V19M10,16H7V14H10V16M10,13H7V11H10V13M14,19H11V17H14V19M14,16H11V14H14V16M14,13H11V11H14V13M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileTableBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.89 20.1 3 19 3M9 18H6V16H9V18M9 15H6V13H9V15M9 12H6V10H9V12M13 18H10V16H13V18M13 15H10V13H13V15M13 12H10V10H13V12Z\";\nexport var mdiFileTableBoxMultiple = \"M3 5V21H19V23H3C1.9 23 1 22.1 1 21V5H3M21 1H7C5.89 1 5 1.89 5 3V17C5 18.11 5.9 19 7 19H21C22.11 19 23 18.11 23 17V3C23 1.89 22.1 1 21 1M11 16H8V14H11V16M11 13H8V11H11V13M11 10H8V8H11V10M15 16H12V14H15V16M15 13H12V11H15V13M15 10H12V8H15V10Z\";\nexport var mdiFileTableBoxMultipleOutline = \"M3 5V21H19V23H3C1.9 23 1 22.1 1 21V5H3M21 1H7C5.89 1 5 1.89 5 3V17C5 18.1 5.9 19 7 19H21C22.11 19 23 18.11 23 17V3C23 1.9 22.1 1 21 1M21 17H7V3H21V17M11 14H8V16H11V14M15 14H12V16H15V14M11 11H8V13H11V11M15 11H12V13H15V11M11 8H8V10H11V8M15 8H12V10H15V8Z\";\nexport var mdiFileTableBoxOutline = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3M19 19H5V5H19V19M9 18H6V16H9V18M13 18H10V16H13V18M9 15H6V13H9V15M13 15H10V13H13V15M9 12H6V10H9V12M13 12H10V10H13V12Z\";\nexport var mdiFileTableOutline = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20M10,13H7V11H10V13M14,13H11V11H14V13M10,16H7V14H10V16M14,16H11V14H14V16M10,19H7V17H10V19M14,19H11V17H14V19Z\";\nexport var mdiFileTree = \"M3,3H9V7H3V3M15,10H21V14H15V10M15,17H21V21H15V17M13,13H7V18H13V20H7L5,20V9H7V11H13V13Z\";\nexport var mdiFileTreeOutline = \"M12 13H7V18H12V20H5V10H7V11H12V13M8 4V6H4V4H8M10 2H2V8H10V2M20 11V13H16V11H20M22 9H14V15H22V9M20 18V20H16V18H20M22 16H14V22H22V16Z\";\nexport var mdiFileUndo = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M12.16,14.31C10.6,14.31 9.19,14.89 8.11,15.83L6,13.72V19H11.28L9.15,16.88C9.97,16.2 11,15.78 12.16,15.78C14.23,15.78 16,17.13 16.61,19L18,18.54C17.19,16.09 14.88,14.31 12.16,14.31Z\";\nexport var mdiFileUndoOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M17 17.61L15.84 18C15.33 16.44 13.86 15.31 12.13 15.31C11.17 15.31 10.31 15.66 9.63 16.23L11.4 18H7V13.6L8.76 15.36C9.66 14.57 10.83 14.09 12.13 14.09C14.4 14.09 16.33 15.57 17 17.61Z\";\nexport var mdiFileUpload = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileUploadOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z\";\nexport var mdiFileVideo = \"M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M17,19V13L14,15.2V13H7V19H14V16.8L17,19Z\";\nexport var mdiFileVideoOutline = \"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M16,18L13.5,16.3V18H8V13H13.5V14.7L16,13V18Z\";\nexport var mdiFileWord = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M15.2,20H13.8L12,13.2L10.2,20H8.8L6.6,11H8.1L9.5,17.8L11.3,11H12.6L14.4,17.8L15.8,11H17.3L15.2,20M13,9V3.5L18.5,9H13Z\";\nexport var mdiFileWordBox = \"M15.5,17H14L12,9.5L10,17H8.5L6.1,7H7.8L9.34,14.5L11.3,7H12.7L14.67,14.5L16.2,7H17.9M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiFileWordBoxOutline = \"M5 3C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3H5M5 5H19V19H5V5M17.9 7L15.5 17H14L12 9.5L10 17H8.5L6.1 7H7.8L9.34 14.5L11.3 7H12.7L14.67 14.5L16.2 7H17.9Z\";\nexport var mdiFileWordOutline = \"M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M17.35 10L15.25 19H13.85L12.05 12.21L10.25 19H8.85L6.65 10H8.15L9.55 16.81L11.35 10H12.65L14.45 16.81L15.85 10H17.35Z\";\nexport var mdiFileXmlBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3M8 15H6.5L6 13L5.5 15H4L4.75 12L4 9H5.5L6 11L6.5 9H8L7.25 12L8 15M15.5 15H14V10.5H13V14H11.5V10.5H10.5V15H9V11C9 9.9 9.9 9 11 9H13.5C14.61 9 15.5 9.9 15.5 11V15M20 15H17V9H18.5V13.5H20V15Z\";\nexport var mdiFilm = \"M3.5,3H5V1.8C5,1.36 5.36,1 5.8,1H10.2C10.64,1 11,1.36 11,1.8V3H12.5A1.5,1.5 0 0,1 14,4.5V5H22V20H14V20.5A1.5,1.5 0 0,1 12.5,22H3.5A1.5,1.5 0 0,1 2,20.5V4.5A1.5,1.5 0 0,1 3.5,3M18,7V9H20V7H18M14,7V9H16V7H14M10,7V9H12V7H10M14,16V18H16V16H14M18,16V18H20V16H18M10,16V18H12V16H10Z\";\nexport var mdiFilmstrip = \"M18,9H16V7H18M18,13H16V11H18M18,17H16V15H18M8,9H6V7H8M8,13H6V11H8M8,17H6V15H8M18,3V5H16V3H8V5H6V3H4V21H6V19H8V21H16V19H18V21H20V3H18Z\";\nexport var mdiFilmstripBox = \"M19 3C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19M7 18V16H5V18H7M7 13V11H5V13H7M7 8V6H5V8H7M19 18V16H17V18H19M19 13V11H17V13H19M19 8V6H17V8H19Z\";\nexport var mdiFilmstripBoxMultiple = \"M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M10,15H8V13H10V15M10,11H8V9H10V11M10,7H8V5H10V7M20,15H18V13H20V15M20,11H18V9H20V11M20,7H18V5H20V7Z\";\nexport var mdiFilmstripOff = \"M1,4.27L2.28,3L21,21.72L19.73,23L16,19.27V21H8V19H6V21H4V7.27L1,4.27M18,9V7H16V9H18M18,13V11H16V13H18M18,15H16.82L6.82,5H8V3H16V5H18V3H20V18.18L18,16.18V15M8,13V11.27L7.73,11H6V13H8M8,17V15H6V17H8M6,3V4.18L4.82,3H6Z\";\nexport var mdiFilter = \"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\";\nexport var mdiFilterCheck = \"M12 12V19.88C12.04 20.18 11.94 20.5 11.71 20.71C11.32 21.1 10.69 21.1 10.3 20.71L8.29 18.7C8.06 18.47 7.96 18.16 8 17.87V12H7.97L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3H17C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L12.03 12H12M17.75 21L15 18L16.16 16.84L17.75 18.43L21.34 14.84L22.5 16.25L17.75 21\";\nexport var mdiFilterCheckOutline = \"M13 19.88C13.04 20.18 12.94 20.5 12.72 20.71C12.32 21.1 11.69 21.1 11.3 20.71L7.29 16.7C7.06 16.47 6.96 16.16 7 15.87V10.75L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3H17C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L13 10.75V19.88M5.04 5L9 10.07V15.58L11 17.58V10.05L14.96 5H5.04M17.75 21L15 18L16.16 16.84L17.75 18.43L21.34 14.84L22.5 16.25L17.75 21\";\nexport var mdiFilterCog = \"M22.77 19.32L21.7 18.5C21.72 18.33 21.74 18.17 21.74 18S21.73 17.67 21.7 17.5L22.76 16.68C22.85 16.6 22.88 16.47 22.82 16.36L21.82 14.63C21.76 14.5 21.63 14.5 21.5 14.5L20.27 15C20 14.82 19.73 14.65 19.42 14.53L19.23 13.21C19.22 13.09 19.11 13 19 13H17C16.87 13 16.76 13.09 16.74 13.21L16.55 14.53C16.25 14.66 15.96 14.82 15.7 15L14.46 14.5C14.35 14.5 14.22 14.5 14.15 14.63L13.15 16.36C13.09 16.47 13.11 16.6 13.21 16.68L14.27 17.5C14.25 17.67 14.24 17.83 14.24 18S14.25 18.33 14.27 18.5L13.21 19.32C13.12 19.4 13.09 19.53 13.15 19.64L14.15 21.37C14.21 21.5 14.34 21.5 14.46 21.5L15.7 21C15.96 21.18 16.24 21.35 16.55 21.47L16.74 22.79C16.76 22.91 16.86 23 17 23H19C19.11 23 19.22 22.91 19.24 22.79L19.43 21.47C19.73 21.34 20 21.18 20.27 21L21.5 21.5C21.63 21.5 21.76 21.5 21.83 21.37L22.83 19.64C22.89 19.53 22.86 19.4 22.77 19.32M18 19.5C17.16 19.5 16.5 18.83 16.5 18S17.17 16.5 18 16.5 19.5 17.17 19.5 18 18.83 19.5 18 19.5M3 3C2.78 3 2.57 3.08 2.38 3.22C1.95 3.56 1.87 4.19 2.21 4.62L7.97 12H8V17.87C7.96 18.16 8.06 18.47 8.29 18.7L10.3 20.71C10.65 21.06 11.19 21.08 11.58 20.8C11.2 19.91 11 18.96 11 18C11 16.73 11.35 15.5 12 14.4V12H12.03L17.79 4.62C18.13 4.19 18.05 3.56 17.62 3.22C17.43 3.08 17.22 3 17 3H3Z\";\nexport var mdiFilterCogOutline = \"M22.77 19.32L21.7 18.5C21.72 18.33 21.74 18.17 21.74 18S21.73 17.67 21.7 17.5L22.76 16.68C22.85 16.6 22.88 16.47 22.82 16.36L21.82 14.63C21.76 14.5 21.63 14.5 21.5 14.5L20.27 15C20 14.82 19.73 14.65 19.42 14.53L19.23 13.21C19.22 13.09 19.11 13 19 13H17C16.87 13 16.76 13.09 16.74 13.21L16.55 14.53C16.25 14.66 15.96 14.82 15.7 15L14.46 14.5C14.35 14.5 14.22 14.5 14.15 14.63L13.15 16.36C13.09 16.47 13.11 16.6 13.21 16.68L14.27 17.5C14.25 17.67 14.24 17.83 14.24 18S14.25 18.33 14.27 18.5L13.21 19.32C13.12 19.4 13.09 19.53 13.15 19.64L14.15 21.37C14.21 21.5 14.34 21.5 14.46 21.5L15.7 21C15.96 21.18 16.24 21.35 16.55 21.47L16.74 22.79C16.76 22.91 16.86 23 17 23H19C19.11 23 19.22 22.91 19.24 22.79L19.43 21.47C19.73 21.34 20 21.18 20.27 21L21.5 21.5C21.63 21.5 21.76 21.5 21.83 21.37L22.83 19.64C22.89 19.53 22.86 19.4 22.77 19.32M18 19.5C17.16 19.5 16.5 18.83 16.5 18S17.17 16.5 18 16.5 19.5 17.17 19.5 18 18.83 19.5 18 19.5M17.62 3.22C17.43 3.08 17.22 3 17 3H3C2.78 3 2.57 3.08 2.38 3.22C1.95 3.56 1.87 4.19 2.21 4.62L7 10.75V15.87C6.96 16.16 7.06 16.47 7.29 16.7L11.3 20.71C11.4 20.81 11.5 20.88 11.65 20.93C11.22 20 11 19 11 18C11 16.17 11.72 14.41 13 13.1V10.75L17.79 4.62C18.13 4.19 18.05 3.56 17.62 3.22M11 10.05V17.58L9 15.58V10.06L5.04 5H14.96L11 10.05Z\";\nexport var mdiFilterMenu = \"M11 11L16.76 3.62A1 1 0 0 0 16.59 2.22A1 1 0 0 0 16 2H2A1 1 0 0 0 1.38 2.22A1 1 0 0 0 1.21 3.62L7 11V16.87A1 1 0 0 0 7.29 17.7L9.29 19.7A1 1 0 0 0 10.7 19.7A1 1 0 0 0 11 18.87V11M13 16L18 21L23 16Z\";\nexport var mdiFilterMenuOutline = \"M12 18.88A1 1 0 0 1 11.71 19.71A1 1 0 0 1 10.3 19.71L6.3 15.71A1 1 0 0 1 6 14.87V9.75L1.21 3.62A1 1 0 0 1 1.38 2.22A1 1 0 0 1 2 2H16A1 1 0 0 1 16.62 2.22A1 1 0 0 1 16.79 3.62L12 9.75V18.88M4 4L8 9.06V14.58L10 16.58V9.05L14 4M13 16L18 21L23 16Z\";\nexport var mdiFilterMinus = \"M12 12V19.88C12.04 20.18 11.94 20.5 11.71 20.71C11.32 21.1 10.69 21.1 10.3 20.71L8.29 18.7C8.06 18.47 7.96 18.16 8 17.86V12H7.97L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3V3H17V3C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L12.03 12H12M15 17H23V19H15V17Z\";\nexport var mdiFilterMinusOutline = \"M15 17H23V19H15V17M13 19.88C13.04 20.18 12.94 20.5 12.72 20.71C12.32 21.1 11.69 21.1 11.3 20.71L7.29 16.7C7.06 16.47 6.96 16.16 7 15.87V10.75L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3V3H17V3C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L13 10.75V19.88M5.04 5L9 10.07V15.58L11 17.58V10.05L14.96 5H5.04Z\";\nexport var mdiFilterMultiple = \"M3.46 5C3.25 5 3.04 5.08 2.87 5.21C2.43 5.55 2.35 6.18 2.69 6.61L2.69 6.62L8 13.42V19.41L10.29 21.71C10.68 22.1 11.32 22.1 11.71 21.71C12.1 21.32 12.1 20.68 11.71 20.29L10 18.59V12.73L4.27 5.39C4.08 5.14 3.78 5 3.46 5M16 12V19.88C16.04 20.18 15.94 20.5 15.71 20.71C15.32 21.1 14.69 21.1 14.3 20.71L12.29 18.7C12.06 18.47 11.96 18.16 12 17.87V12H11.97L6.21 4.62C5.87 4.19 5.95 3.56 6.38 3.22C6.57 3.08 6.78 3 7 3H21C21.22 3 21.43 3.08 21.62 3.22C22.05 3.56 22.13 4.19 21.79 4.62L16.03 12H16Z\";\nexport var mdiFilterMultipleOutline = \"M3.47 5C3.25 5 3.04 5.08 2.87 5.21C2.43 5.55 2.35 6.18 2.69 6.61L2.69 6.62L7 12.14V18.05L10.64 21.71C11 22.1 11.66 22.1 12.05 21.71L12.05 21.71C12.44 21.32 12.44 20.69 12.06 20.3L9 17.22V11.45L4.27 5.39C4.08 5.14 3.78 5 3.47 5M21.62 3.22C21.43 3.08 21.22 3 21 3H7C6.78 3 6.57 3.08 6.38 3.22C5.95 3.56 5.87 4.19 6.21 4.62L11 10.75V15.87C10.96 16.16 11.06 16.47 11.29 16.7L15.3 20.71C15.69 21.1 16.32 21.1 16.71 20.71C16.94 20.5 17.04 20.18 17 19.88V10.75L21.79 4.62C22.13 4.19 22.05 3.56 21.62 3.22M15 10.05V17.58L13 15.58V10.06L9.04 5H18.96L15 10.05Z\";\nexport var mdiFilterOff = \"M2.39 1.73L1.11 3L9.5 11.37L9.97 12H10V17.87C9.96 18.16 10.06 18.47 10.29 18.7L12.3 20.71C12.69 21.1 13.32 21.1 13.71 20.71C13.94 20.5 14.04 20.18 14 19.88V15.89L20.84 22.73L22.11 21.46L14 13.35L9.41 8.76L4.15 3.5L2.39 1.73M6.21 3L14.54 11.34L19.79 4.62C20.13 4.19 20.05 3.56 19.62 3.22C19.43 3.08 19.22 3 19 3H6.21Z\";\nexport var mdiFilterOffOutline = \"M2.39 1.73L1.11 3L9 10.89V15.87C8.96 16.16 9.06 16.47 9.29 16.7L13.3 20.71C13.69 21.1 14.32 21.1 14.71 20.71C14.94 20.5 15.04 20.18 15 19.88V16.89L20.84 22.73L22.11 21.46L15 14.35V14.34L13 12.35L11 10.34L4.15 3.5L2.39 1.73M6.21 3L8.2 5H16.96L13.11 9.91L15 11.8V10.75L19.79 4.62C20.13 4.19 20.05 3.56 19.62 3.22C19.43 3.08 19.22 3 19 3H6.21M11 12.89L13 14.89V17.58L11 15.58V12.89Z\";\nexport var mdiFilterOutline = \"M15,19.88C15.04,20.18 14.94,20.5 14.71,20.71C14.32,21.1 13.69,21.1 13.3,20.71L9.29,16.7C9.06,16.47 8.96,16.16 9,15.87V10.75L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L15,10.75V19.88M7.04,5L11,10.06V15.58L13,17.58V10.05L16.96,5H7.04Z\";\nexport var mdiFilterPlus = \"M12 12V19.88C12.04 20.18 11.94 20.5 11.71 20.71C11.32 21.1 10.69 21.1 10.3 20.71L8.29 18.7C8.06 18.47 7.96 18.16 8 17.87V12H7.97L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3H17C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L12.03 12H12M15 17H18V14H20V17H23V19H20V22H18V19H15V17Z\";\nexport var mdiFilterPlusOutline = \"M15 17H18V14H20V17H23V19H20V22H18V19H15V17M13 19.88C13.04 20.18 12.94 20.5 12.72 20.71C12.32 21.1 11.69 21.1 11.3 20.71L7.29 16.7C7.06 16.47 6.96 16.16 7 15.87V10.75L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3V3H17V3C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L13 10.75V19.88M5.04 5L9 10.07V15.58L11 17.58V10.05L14.96 5H5.04Z\";\nexport var mdiFilterRemove = \"M14.76,20.83L17.6,18L14.76,15.17L16.17,13.76L19,16.57L21.83,13.76L23.24,15.17L20.43,18L23.24,20.83L21.83,22.24L19,19.4L16.17,22.24L14.76,20.83M12,12V19.88C12.04,20.18 11.94,20.5 11.71,20.71C11.32,21.1 10.69,21.1 10.3,20.71L8.29,18.7C8.06,18.47 7.96,18.16 8,17.87V12H7.97L2.21,4.62C1.87,4.19 1.95,3.56 2.38,3.22C2.57,3.08 2.78,3 3,3V3H17V3C17.22,3 17.43,3.08 17.62,3.22C18.05,3.56 18.13,4.19 17.79,4.62L12.03,12H12Z\";\nexport var mdiFilterRemoveOutline = \"M14.73,20.83L17.58,18L14.73,15.17L16.15,13.76L19,16.57L21.8,13.76L23.22,15.17L20.41,18L23.22,20.83L21.8,22.24L19,19.4L16.15,22.24L14.73,20.83M13,19.88C13.04,20.18 12.94,20.5 12.71,20.71C12.32,21.1 11.69,21.1 11.3,20.71L7.29,16.7C7.06,16.47 6.96,16.16 7,15.87V10.75L2.21,4.62C1.87,4.19 1.95,3.56 2.38,3.22C2.57,3.08 2.78,3 3,3V3H17V3C17.22,3 17.43,3.08 17.62,3.22C18.05,3.56 18.13,4.19 17.79,4.62L13,10.75V19.88M5.04,5L9,10.06V15.58L11,17.58V10.05L14.96,5H5.04Z\";\nexport var mdiFilterSettings = \"M15 22H17V24H15M11 22H13V24H11M7 22H9V24H7M14 12V19.88C14.04 20.18 13.94 20.5 13.71 20.71C13.32 21.1 12.69 21.1 12.3 20.71L10.29 18.7C10.06 18.47 9.96 18.16 10 17.87V12H9.97L4.21 4.62C3.87 4.19 3.95 3.56 4.38 3.22C4.57 3.08 4.78 3 5 3H19C19.22 3 19.43 3.08 19.62 3.22C20.05 3.56 20.13 4.19 19.79 4.62L14.03 12Z\";\nexport var mdiFilterSettingsOutline = \"M15 22H17V24H15M11 22H13V24H11M7 22H9V24H7M15 19.88C15.04 20.18 14.94 20.5 14.71 20.71C14.32 21.1 13.69 21.1 13.3 20.71L9.29 16.7C9.06 16.47 8.96 16.16 9 15.87V10.75L4.21 4.62C3.87 4.19 3.95 3.56 4.38 3.22C4.57 3.08 4.78 3 5 3H19C19.22 3 19.43 3.08 19.62 3.22C20.05 3.56 20.13 4.19 19.79 4.62L15 10.75V19.88M7.04 5L11 10.06V15.58L13 17.58V10.05L16.96 5Z\";\nexport var mdiFilterVariant = \"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z\";\nexport var mdiFilterVariantMinus = \"M21 8H3V6H21V8M13.81 16H10V18H13.09C13.21 17.28 13.46 16.61 13.81 16M18 11H6V13H18V11M23 18H15V20H23V18Z\";\nexport var mdiFilterVariantPlus = \"M21 8H3V6H21V8M13.81 16H10V18H13.09C13.21 17.28 13.46 16.61 13.81 16M18 11H6V13H18V11M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFilterVariantRemove = \"M21 8H3V6H21V8M13.81 16H10V18H13.09C13.21 17.28 13.46 16.61 13.81 16M18 11H6V13H18V11M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiFinance = \"M6,16.5L3,19.44V11H6M11,14.66L9.43,13.32L8,14.64V7H11M16,13L13,16V3H16M18.81,12.81L17,11H22V16L20.21,14.21L13,21.36L9.53,18.34L5.75,22H3L9.47,15.66L13,18.64\";\nexport var mdiFindReplace = \"M11,6C12.38,6 13.63,6.56 14.54,7.46L12,10H18V4L15.95,6.05C14.68,4.78 12.93,4 11,4C7.47,4 4.57,6.61 4.08,10H6.1C6.56,7.72 8.58,6 11,6M16.64,15.14C17.3,14.24 17.76,13.17 17.92,12H15.9C15.44,14.28 13.42,16 11,16C9.62,16 8.37,15.44 7.46,14.54L10,12H4V18L6.05,15.95C7.32,17.22 9.07,18 11,18C12.55,18 14,17.5 15.14,16.64L20,21.5L21.5,20L16.64,15.14Z\";\nexport var mdiFingerprint = \"M17.81,4.47C17.73,4.47 17.65,4.45 17.58,4.41C15.66,3.42 14,3 12,3C10.03,3 8.15,3.47 6.44,4.41C6.2,4.54 5.9,4.45 5.76,4.21C5.63,3.97 5.72,3.66 5.96,3.53C7.82,2.5 9.86,2 12,2C14.14,2 16,2.47 18.04,3.5C18.29,3.65 18.38,3.95 18.25,4.19C18.16,4.37 18,4.47 17.81,4.47M3.5,9.72C3.4,9.72 3.3,9.69 3.21,9.63C3,9.47 2.93,9.16 3.09,8.93C4.08,7.53 5.34,6.43 6.84,5.66C10,4.04 14,4.03 17.15,5.65C18.65,6.42 19.91,7.5 20.9,8.9C21.06,9.12 21,9.44 20.78,9.6C20.55,9.76 20.24,9.71 20.08,9.5C19.18,8.22 18.04,7.23 16.69,6.54C13.82,5.07 10.15,5.07 7.29,6.55C5.93,7.25 4.79,8.25 3.89,9.5C3.81,9.65 3.66,9.72 3.5,9.72M9.75,21.79C9.62,21.79 9.5,21.74 9.4,21.64C8.53,20.77 8.06,20.21 7.39,19C6.7,17.77 6.34,16.27 6.34,14.66C6.34,11.69 8.88,9.27 12,9.27C15.12,9.27 17.66,11.69 17.66,14.66A0.5,0.5 0 0,1 17.16,15.16A0.5,0.5 0 0,1 16.66,14.66C16.66,12.24 14.57,10.27 12,10.27C9.43,10.27 7.34,12.24 7.34,14.66C7.34,16.1 7.66,17.43 8.27,18.5C8.91,19.66 9.35,20.15 10.12,20.93C10.31,21.13 10.31,21.44 10.12,21.64C10,21.74 9.88,21.79 9.75,21.79M16.92,19.94C15.73,19.94 14.68,19.64 13.82,19.05C12.33,18.04 11.44,16.4 11.44,14.66A0.5,0.5 0 0,1 11.94,14.16A0.5,0.5 0 0,1 12.44,14.66C12.44,16.07 13.16,17.4 14.38,18.22C15.09,18.7 15.92,18.93 16.92,18.93C17.16,18.93 17.56,18.9 17.96,18.83C18.23,18.78 18.5,18.96 18.54,19.24C18.59,19.5 18.41,19.77 18.13,19.82C17.56,19.93 17.06,19.94 16.92,19.94M14.91,22C14.87,22 14.82,22 14.78,22C13.19,21.54 12.15,20.95 11.06,19.88C9.66,18.5 8.89,16.64 8.89,14.66C8.89,13.04 10.27,11.72 11.97,11.72C13.67,11.72 15.05,13.04 15.05,14.66C15.05,15.73 16,16.6 17.13,16.6C18.28,16.6 19.21,15.73 19.21,14.66C19.21,10.89 15.96,7.83 11.96,7.83C9.12,7.83 6.5,9.41 5.35,11.86C4.96,12.67 4.76,13.62 4.76,14.66C4.76,15.44 4.83,16.67 5.43,18.27C5.53,18.53 5.4,18.82 5.14,18.91C4.88,19 4.59,18.87 4.5,18.62C4,17.31 3.77,16 3.77,14.66C3.77,13.46 4,12.37 4.45,11.42C5.78,8.63 8.73,6.82 11.96,6.82C16.5,6.82 20.21,10.33 20.21,14.65C20.21,16.27 18.83,17.59 17.13,17.59C15.43,17.59 14.05,16.27 14.05,14.65C14.05,13.58 13.12,12.71 11.97,12.71C10.82,12.71 9.89,13.58 9.89,14.65C9.89,16.36 10.55,17.96 11.76,19.16C12.71,20.1 13.62,20.62 15.03,21C15.3,21.08 15.45,21.36 15.38,21.62C15.33,21.85 15.12,22 14.91,22Z\";\nexport var mdiFingerprintOff = \"M1.5,4.77L2.78,3.5L20.5,21.22L19.23,22.5L16.67,19.94C15.58,19.9 14.62,19.6 13.82,19.05C12.34,18.05 11.46,16.43 11.44,14.71L10.27,13.53C10.03,13.85 9.89,14.23 9.89,14.65C9.89,16.36 10.55,17.96 11.76,19.16C12.71,20.1 13.62,20.62 15.03,21C15.3,21.08 15.45,21.36 15.38,21.62C15.33,21.85 15.12,22 14.91,22H14.78C13.19,21.54 12.15,20.95 11.06,19.88C9.66,18.5 8.89,16.64 8.89,14.66C8.89,13.97 9.14,13.33 9.56,12.83L8.5,11.77C7.78,12.54 7.34,13.55 7.34,14.66C7.34,16.1 7.66,17.43 8.27,18.5C8.91,19.66 9.35,20.15 10.12,20.93C10.31,21.13 10.31,21.44 10.12,21.64C10,21.74 9.88,21.79 9.75,21.79C9.62,21.79 9.5,21.74 9.4,21.64C8.53,20.77 8.06,20.21 7.39,19C6.7,17.77 6.34,16.27 6.34,14.66C6.34,13.28 6.89,12 7.79,11.06L6.7,9.97C6.15,10.5 5.69,11.15 5.35,11.86C4.96,12.67 4.76,13.62 4.76,14.66C4.76,15.44 4.83,16.67 5.43,18.27C5.53,18.53 5.4,18.82 5.14,18.91C4.88,19 4.59,18.87 4.5,18.62C4,17.31 3.77,16 3.77,14.66C3.77,13.46 4,12.37 4.45,11.42C4.84,10.61 5.36,9.88 6,9.26L4.97,8.24C4.58,8.63 4.22,9.05 3.89,9.5C3.81,9.65 3.66,9.72 3.5,9.72L3.21,9.63C3,9.47 2.93,9.16 3.09,8.93C3.45,8.43 3.84,7.96 4.27,7.53L1.5,4.77M17.81,4.47L17.58,4.41C15.66,3.42 14,3 12,3C10.03,3 8.15,3.47 6.44,4.41L6.29,4.46L5.71,3.89C5.73,3.74 5.82,3.61 5.96,3.53C7.82,2.5 9.86,2 12,2C14.14,2 16,2.47 18.04,3.5C18.29,3.65 18.38,3.95 18.25,4.19C18.16,4.37 18,4.47 17.81,4.47M17.15,5.65C18.65,6.42 19.91,7.5 20.9,8.9C21.06,9.12 21,9.44 20.78,9.6C20.55,9.76 20.24,9.71 20.08,9.5C19.18,8.22 18.04,7.23 16.69,6.54C14.06,5.19 10.76,5.08 8.03,6.21L7.27,5.45C10.34,4.04 14.14,4.1 17.15,5.65M12,9.27C15.12,9.27 17.66,11.69 17.66,14.66A0.5,0.5 0 0,1 17.16,15.16L16.93,15.11L16.72,14.89L16.66,14.66C16.66,12.27 14.62,10.32 12.09,10.27L11.15,9.33L12,9.27M14.38,18.22C14.71,18.45 15.07,18.62 15.47,18.73L12.63,15.9C12.92,16.82 13.53,17.65 14.38,18.22M19.21,14.66C19.21,10.89 15.96,7.83 11.96,7.83C11.26,7.83 10.58,7.93 9.93,8.11L9.12,7.3C10,7 10.97,6.82 11.96,6.82C16.5,6.82 20.21,10.33 20.21,14.65C20.21,15.65 19.69,16.53 18.89,17.06L18.17,16.34C18.79,16 19.21,15.38 19.21,14.66Z\";\nexport var mdiFire = \"M17.66 11.2C17.43 10.9 17.15 10.64 16.89 10.38C16.22 9.78 15.46 9.35 14.82 8.72C13.33 7.26 13 4.85 13.95 3C13 3.23 12.17 3.75 11.46 4.32C8.87 6.4 7.85 10.07 9.07 13.22C9.11 13.32 9.15 13.42 9.15 13.55C9.15 13.77 9 13.97 8.8 14.05C8.57 14.15 8.33 14.09 8.14 13.93C8.08 13.88 8.04 13.83 8 13.76C6.87 12.33 6.69 10.28 7.45 8.64C5.78 10 4.87 12.3 5 14.47C5.06 14.97 5.12 15.47 5.29 15.97C5.43 16.57 5.7 17.17 6 17.7C7.08 19.43 8.95 20.67 10.96 20.92C13.1 21.19 15.39 20.8 17.03 19.32C18.86 17.66 19.5 15 18.56 12.72L18.43 12.46C18.22 12 17.66 11.2 17.66 11.2M14.5 17.5C14.22 17.74 13.76 18 13.4 18.1C12.28 18.5 11.16 17.94 10.5 17.28C11.69 17 12.4 16.12 12.61 15.23C12.78 14.43 12.46 13.77 12.33 13C12.21 12.26 12.23 11.63 12.5 10.94C12.69 11.32 12.89 11.7 13.13 12C13.9 13 15.11 13.44 15.37 14.8C15.41 14.94 15.43 15.08 15.43 15.23C15.46 16.05 15.1 16.95 14.5 17.5H14.5Z\";\nexport var mdiFireAlert = \"M15.66 11.2C15.43 10.9 15.15 10.64 14.89 10.38C14.22 9.78 13.46 9.35 12.82 8.72C11.33 7.26 11 4.85 11.95 3C11 3.23 10.17 3.75 9.46 4.32C6.87 6.4 5.85 10.07 7.07 13.22C7.11 13.32 7.15 13.42 7.15 13.55C7.15 13.77 7 13.97 6.8 14.05C6.57 14.15 6.33 14.09 6.14 13.93C6.08 13.88 6.04 13.83 6 13.76C4.87 12.33 4.69 10.28 5.45 8.64C3.78 10 2.87 12.3 3 14.47C3.06 14.97 3.12 15.47 3.29 15.97C3.43 16.57 3.7 17.17 4 17.7C5.08 19.43 6.95 20.67 8.96 20.92C11.1 21.19 13.39 20.8 15.03 19.32C16.86 17.66 17.5 15 16.56 12.72L16.43 12.46C16.22 12 15.66 11.2 15.66 11.2M12.5 17.5C12.22 17.74 11.76 18 11.4 18.1C10.28 18.5 9.16 17.94 8.5 17.28C9.69 17 10.4 16.12 10.61 15.23C10.78 14.43 10.46 13.77 10.33 13C10.21 12.26 10.23 11.63 10.5 10.94C10.69 11.32 10.89 11.7 11.13 12C11.9 13 13.11 13.44 13.37 14.8C13.41 14.94 13.43 15.08 13.43 15.23C13.46 16.05 13.1 16.95 12.5 17.5H12.5M21 13H19V7H21V13M21 17H19V15H21V17Z\";\nexport var mdiFireCircle = \"M14.66 14.18C14.69 14.29 14.7 14.4 14.7 14.5C14.73 15.15 14.44 15.85 13.97 16.28C13.75 16.47 13.39 16.67 13.11 16.75C12.23 17.06 11.35 16.62 10.83 16.11C11.77 15.89 12.32 15.21 12.5 14.5C12.62 13.89 12.37 13.38 12.27 12.78C12.17 12.2 12.19 11.71 12.4 11.18C12.55 11.47 12.71 11.77 12.9 12C13.5 12.78 14.45 13.12 14.66 14.18M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12 6.5 2 12 2 22 6.5 22 12M17.16 12.56L17.06 12.36C16.9 12 16.45 11.38 16.45 11.38C16.27 11.15 16.05 10.94 15.85 10.74C15.32 10.27 14.73 9.94 14.22 9.45C13.05 8.31 12.79 6.44 13.54 5C12.79 5.18 12.14 5.58 11.58 6.03C9.55 7.65 8.75 10.5 9.71 12.95C9.74 13.03 9.77 13.11 9.77 13.21C9.77 13.38 9.65 13.53 9.5 13.6C9.31 13.67 9.13 13.63 9 13.5C8.93 13.46 8.9 13.42 8.87 13.37C8 12.26 7.84 10.66 8.43 9.39C7.12 10.45 6.41 12.24 6.5 13.92C6.56 14.31 6.6 14.7 6.74 15.09C6.85 15.56 7.06 16 7.3 16.44C8.14 17.78 9.61 18.75 11.19 18.94C12.87 19.15 14.67 18.85 15.96 17.7C17.4 16.4 17.9 14.33 17.16 12.56Z\";\nexport var mdiFireExtinguisher = \"M10.5,7H11.75L12,5H10.25L6,7.5V9H4V6.5L10,3H12V2H14V3H16L17,2.5V5.5L16,5H14L14.25,7H15.5A1.5,1.5 0 0,1 17,8.5V22H9V8.5A1.5,1.5 0 0,1 10.5,7Z\";\nexport var mdiFireHydrant = \"M5 15V14H4V12H5V11H7V15H5M19 12V11H17V15H19V14H20V12H19M18 6H15.86C15.5 4.6 14.4 3.5 13 3.14V2H11V3.14C9.6 3.5 8.5 4.6 8.14 6H6V8H18V6M18 22H6C6 20.9 6.9 20 8 20V9H16V20C17.11 20 18 20.9 18 22M10 13C10 14.11 10.9 15 12 15S14 14.11 14 13 13.11 11 12 11 10 11.9 10 13Z\";\nexport var mdiFireHydrantAlert = \"M22 7H20V13H22V7M22 15H20V17H22V15M3 15V14H2V12H3V11H5V15H3M17 12V11H15V15H17V14H18V12H17M16 6H13.86C13.5 4.6 12.4 3.5 11 3.14V2H9V3.14C7.6 3.5 6.5 4.6 6.14 6H4V8H16V6M16 22H4C4 20.9 4.89 20 6 20V9H14V20C15.11 20 16 20.9 16 22M8 13C8 14.11 8.9 15 10 15S12 14.11 12 13 11.11 11 10 11 8 11.9 8 13Z\";\nexport var mdiFireHydrantOff = \"M20.84 22.73L22.11 21.46L2.39 1.73L1.11 3L8 9.89V20C6.9 20 6 20.9 6 22H18C18 20.9 17.11 20 16 20V17.89L20.84 22.73M10.22 12.11L12.89 14.78C12.62 14.92 12.32 15 12 15C10.9 15 10 14.11 10 13C10 12.68 10.08 12.38 10.22 12.11M11.2 8L8.44 5.24C8.94 4.21 9.87 3.43 11 3.14V2H13V3.14C14.4 3.5 15.5 4.6 15.86 6H18V8H11.2M19 11V12H20V14H19V15H18.2L17 13.8V11H19M5 15V14H4V12H5V11H7V15H5M16 12.8L12.2 9H16V12.8Z\";\nexport var mdiFireOff = \"M22.11 21.46L2.39 1.73L1.11 3L7.09 9C5.66 10.36 4.88 12.47 5 14.47C5.06 14.97 5.12 15.47 5.29 15.97C5.43 16.57 5.7 17.17 6 17.7C7.08 19.43 8.95 20.67 10.96 20.92C13.1 21.19 15.39 20.8 17.03 19.32C17.1 19.26 17.15 19.18 17.22 19.11L20.84 22.73L22.11 21.46M8.8 14.05C8.57 14.15 8.33 14.09 8.14 13.93C8.08 13.88 8.04 13.83 8 13.76C7 12.47 6.74 10.69 7.26 9.15L8.58 10.47C8.58 11.4 8.73 12.33 9.07 13.22C9.11 13.32 9.15 13.42 9.15 13.55C9.15 13.77 9 13.97 8.8 14.05M14.5 17.5C14.22 17.74 13.76 18 13.4 18.1C12.28 18.5 11.16 17.94 10.5 17.28C11.69 17 12.4 16.12 12.61 15.23C12.66 15 12.66 14.76 12.64 14.53L15 16.88C14.85 17.11 14.69 17.33 14.5 17.5M18.92 15.72L9.65 6.46C10.12 5.65 10.72 4.92 11.46 4.32C12.17 3.75 13 3.23 13.95 3C13 4.85 13.33 7.26 14.82 8.72C15.46 9.35 16.22 9.78 16.89 10.38C17.15 10.64 17.43 10.9 17.66 11.2C17.66 11.2 18.22 12 18.43 12.46L18.56 12.72C18.96 13.69 19.06 14.72 18.92 15.72Z\";\nexport var mdiFireStation = \"M13.11 10.39C13.37 10.15 13.53 9.75 13.5 9.39V9.2C13.43 8.81 13.18 8.6 12.92 8.37C12.78 8.24 12.63 8.12 12.5 7.95L12.26 7.5C12.13 7.8 12.12 8.08 12.17 8.41C12.19 8.5 12.21 8.6 12.24 8.69C12.29 8.92 12.35 9.14 12.29 9.39C12.2 9.78 11.9 10.17 11.37 10.3C11.67 10.59 12.15 10.82 12.64 10.66L13.11 10.39M2 22V7C2 6.74 2.11 6.5 2.29 6.29C2.5 6.11 2.74 6 3 6H7V2H17V6H21C21.27 6 21.5 6.11 21.71 6.29C21.9 6.5 22 6.74 22 7V22H19V17C19 17 19 15 15 15C11 15 11 17 11 17V22H8V17H4V22H2M14.47 7.62H14.5L14.14 7.25L13.25 6.5C12.61 5.88 12.46 4.82 12.87 4C12.5 4.1 12.1 4.33 11.79 4.58C10.68 5.5 10.23 7.12 10.76 8.5L10.8 8.65C10.8 8.75 10.73 8.84 10.64 8.87C10.55 8.92 10.44 8.89 10.36 8.82L10.3 8.74C9.81 8.11 9.73 7.21 10.06 6.5C9.34 7.09 8.96 8.1 9 9.06L9.13 9.72C9.19 10 9.3 10.25 9.45 10.5C9.9 11.24 10.71 11.79 11.58 11.9C12.5 12 13.5 11.85 14.21 11.19C15 10.45 15.29 9.3 14.87 8.29L14.81 8.17L14.47 7.62Z\";\nexport var mdiFireTruck = \"M17.04,2C16.85,2 16.66,2.04 16.5,2.14L5.59,8.5H9.55L17.5,3.86C18,3.58 18.13,2.97 17.85,2.5C17.68,2.2 17.38,2 17.04,2M16,8V10H3A2,2 0 0,0 1,12H2V15H1V19H3A3,3 0 0,0 6,22A3,3 0 0,0 9,19H15A3,3 0 0,0 18,22A3,3 0 0,0 21,19H23V12.5L19.5,8H16M18,9.5H19L21.5,12.5V13.5H18V9.5M4,12H7V15H4V12M9,12H12V15H9V12M14,12H16V15H14V12M6,17.5A1.5,1.5 0 0,1 7.5,19A1.5,1.5 0 0,1 6,20.5A1.5,1.5 0 0,1 4.5,19A1.5,1.5 0 0,1 6,17.5M18,17.5A1.5,1.5 0 0,1 19.5,19A1.5,1.5 0 0,1 18,20.5A1.5,1.5 0 0,1 16.5,19A1.5,1.5 0 0,1 18,17.5Z\";\nexport var mdiFirebase = \"M20,18.69L12.7,22.74C12.2,23 11.7,23 11.2,22.74L4,18.69L17.05,5.54L17.4,5.44C17.7,5.44 17.87,5.57 17.9,5.84L20,18.69M9.35,5.74L4.8,13.29L6.7,1.34C6.73,1.07 6.9,0.94 7.2,0.94C7.4,0.94 7.53,1 7.6,1.19L9.75,5.14L9.35,5.74M13.85,7L4.3,16.59L11.55,4.29C11.65,4.09 11.8,4 12,4C12.2,4 12.33,4.09 12.4,4.29L13.85,7Z\";\nexport var mdiFirefox = \"M9.27 7.94C9.27 7.94 9.27 7.94 9.27 7.94M6.85 6.74C6.86 6.74 6.86 6.74 6.85 6.74M21.28 8.6C20.85 7.55 19.96 6.42 19.27 6.06C19.83 7.17 20.16 8.28 20.29 9.1L20.29 9.12C19.16 6.3 17.24 5.16 15.67 2.68C15.59 2.56 15.5 2.43 15.43 2.3C15.39 2.23 15.36 2.16 15.32 2.09C15.26 1.96 15.2 1.83 15.17 1.69C15.17 1.68 15.16 1.67 15.15 1.67H15.13L15.12 1.67L15.12 1.67L15.12 1.67C12.9 2.97 11.97 5.26 11.74 6.71C11.05 6.75 10.37 6.92 9.75 7.22C9.63 7.27 9.58 7.41 9.62 7.53C9.67 7.67 9.83 7.74 9.96 7.68C10.5 7.42 11.1 7.27 11.7 7.23L11.75 7.23C11.83 7.22 11.92 7.22 12 7.22C12.5 7.21 12.97 7.28 13.44 7.42L13.5 7.44C13.6 7.46 13.67 7.5 13.75 7.5C13.8 7.54 13.86 7.56 13.91 7.58L14.05 7.64C14.12 7.67 14.19 7.7 14.25 7.73C14.28 7.75 14.31 7.76 14.34 7.78C14.41 7.82 14.5 7.85 14.54 7.89C14.58 7.91 14.62 7.94 14.66 7.96C15.39 8.41 16 9.03 16.41 9.77C15.88 9.4 14.92 9.03 14 9.19C17.6 11 16.63 17.19 11.64 16.95C11.2 16.94 10.76 16.85 10.34 16.7C10.24 16.67 10.14 16.63 10.05 16.58C10 16.56 9.93 16.53 9.88 16.5C8.65 15.87 7.64 14.68 7.5 13.23C7.5 13.23 8 11.5 10.83 11.5C11.14 11.5 12 10.64 12.03 10.4C12.03 10.31 10.29 9.62 9.61 8.95C9.24 8.59 9.07 8.42 8.92 8.29C8.84 8.22 8.75 8.16 8.66 8.1C8.43 7.3 8.42 6.45 8.63 5.65C7.6 6.12 6.8 6.86 6.22 7.5H6.22C5.82 7 5.85 5.35 5.87 5C5.86 5 5.57 5.16 5.54 5.18C5.19 5.43 4.86 5.71 4.56 6C4.21 6.37 3.9 6.74 3.62 7.14C3 8.05 2.5 9.09 2.28 10.18C2.28 10.19 2.18 10.59 2.11 11.1L2.08 11.33C2.06 11.5 2.04 11.65 2 11.91L2 11.94L2 12.27L2 12.32C2 17.85 6.5 22.33 12 22.33C16.97 22.33 21.08 18.74 21.88 14C21.9 13.89 21.91 13.76 21.93 13.63C22.13 11.91 21.91 10.11 21.28 8.6Z\";\nexport var mdiFireplace = \"M22,22H2V20H22V22M22,6H2V3H22V6M20,7V19H17V11C17,11 14.5,10 12,10C9.5,10 7,11 7,11V19H4V7H20M14.5,14.67H14.47L14.81,15.22L14.87,15.34C15.29,16.35 15,17.5 14.21,18.24C13.5,18.9 12.5,19.07 11.58,18.95C10.71,18.84 9.9,18.29 9.45,17.53C9.3,17.3 9.19,17.03 9.13,16.77L9,16.11C8.96,15.15 9.34,14.14 10.06,13.54C9.73,14.26 9.81,15.16 10.3,15.79L10.36,15.87C10.44,15.94 10.55,15.97 10.64,15.92C10.73,15.89 10.8,15.8 10.8,15.7L10.76,15.56C10.23,14.17 10.68,12.55 11.79,11.63C12.1,11.38 12.5,11.15 12.87,11.05C12.46,11.87 12.61,12.93 13.25,13.57L14.14,14.3L14.5,14.67M13.11,17.44V17.44C13.37,17.2 13.53,16.8 13.5,16.44V16.25C13.38,15.65 12.85,15.46 12.5,15L12.26,14.55C12.13,14.85 12.12,15.13 12.17,15.46C12.23,15.8 12.37,16.09 12.29,16.44C12.2,16.83 11.9,17.22 11.37,17.35C11.67,17.64 12.15,17.87 12.64,17.71L13.11,17.44Z\";\nexport var mdiFireplaceOff = \"M22,22H2V20H22V22M22,6H2V3H22V6M20,7V19H17V11C17,11 14.5,10 12,10C9.5,10 7,11 7,11V19H4V7H20Z\";\nexport var mdiFirewire = \"M12 10C13.1 10 14 10.9 14 12S13.1 14 12 14 10 13.1 10 12 10.9 10 12 10M12 8C9.8 8 8 9.8 8 12S9.8 16 12 16 16 14.2 16 12 14.2 8 12 8M15 17H9V19H15V17M15 20H9V22H15V20M6.3 10.6L10.5 6.4L9.2 4.9L4.9 9.2L6.3 10.6M4.2 8.5L8.4 4.3L7.1 2.8L2.8 7.1L4.2 8.5M15 17H9V19H15V17M13.4 6.3L17.6 10.5L21.1 7L16.9 2.8L13.4 6.3Z\";\nexport var mdiFirework = \"M5.8,16.59L4.5,15.28L12.26,7.5L16.5,11.74L8.72,19.5L7.29,18.09C7.04,18.16 6.8,18.28 6.63,18.5C6.57,18.57 6.5,18.65 6.5,18.74C6.42,18.88 6.38,19 6.32,19.15C6.21,19.42 6.09,19.69 5.93,19.93C5.81,20.1 5.68,20.26 5.53,20.39C5.42,20.5 5.29,20.59 5.16,20.66C5.08,20.71 5,20.76 4.9,20.79C4.3,21.04 3.63,21 3,21V19C3.23,19 3.83,19 3.9,19C4,19 4.08,19 4.16,18.94C4.18,18.92 4.19,18.91 4.21,18.89C4.28,18.81 4.34,18.7 4.39,18.6C4.47,18.42 4.53,18.24 4.6,18.06L4.64,17.96C4.76,17.69 4.9,17.45 5.08,17.23C5.18,17.1 5.3,17 5.42,16.87C5.54,16.77 5.66,16.67 5.8,16.59M21,3L19.88,11.19L12.81,4.12L21,3Z\";\nexport var mdiFireworkOff = \"M20.84 22.73L13.17 15.06L8.72 19.5L7.29 18.09C7.04 18.16 6.8 18.28 6.63 18.5C6.57 18.57 6.5 18.65 6.5 18.74C6.42 18.88 6.38 19 6.32 19.15C6.21 19.42 6.09 19.69 5.93 19.93C5.81 20.1 5.68 20.26 5.53 20.39C5.42 20.5 5.29 20.59 5.16 20.66C5.08 20.71 5 20.76 4.9 20.79C4.3 21.04 3.63 21 3 21V19H3.9C4 19 4.08 19 4.16 18.94L4.21 18.89C4.28 18.81 4.34 18.7 4.39 18.6C4.47 18.42 4.53 18.24 4.6 18.06L4.64 17.96C4.76 17.69 4.9 17.45 5.08 17.23C5.18 17.1 5.3 17 5.42 16.87C5.54 16.77 5.66 16.67 5.8 16.59L4.5 15.28L8.94 10.83L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M21 3L12.81 4.12L19.88 11.19L21 3M16.5 11.74L12.26 7.5L11.5 8.28L15.72 12.5L16.5 11.74Z\";\nexport var mdiFish = \"M12,20L12.76,17C9.5,16.79 6.59,15.4 5.75,13.58C5.66,14.06 5.53,14.5 5.33,14.83C4.67,16 3.33,16 2,16C3.1,16 3.5,14.43 3.5,12.5C3.5,10.57 3.1,9 2,9C3.33,9 4.67,9 5.33,10.17C5.53,10.5 5.66,10.94 5.75,11.42C6.4,10 8.32,8.85 10.66,8.32L9,5C11,5 13,5 14.33,5.67C15.46,6.23 16.11,7.27 16.69,8.38C19.61,9.08 22,10.66 22,12.5C22,14.38 19.5,16 16.5,16.66C15.67,17.76 14.86,18.78 14.17,19.33C13.33,20 12.67,20 12,20M17,11A1,1 0 0,0 16,12A1,1 0 0,0 17,13A1,1 0 0,0 18,12A1,1 0 0,0 17,11Z\";\nexport var mdiFishOff = \"M20.8 22.7L15.7 17.6C15.1 18.3 14.6 18.9 14.1 19.3C13.3 20 12.7 20 12 20L12.8 17C9.5 16.8 6.6 15.4 5.8 13.6C5.7 14.1 5.6 14.5 5.4 14.8C4.7 16 3.3 16 2 16C3.1 16 3.5 14.4 3.5 12.5S3.1 9 2 9C3.3 9 4.7 9 5.3 10.2C5.5 10.5 5.6 11 5.7 11.4C6 10.7 6.7 10 7.6 9.5L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M9.8 6.6L9 5C11 5 13 5 14.3 5.7C15.4 6.3 16.1 7.3 16.7 8.4C19.6 9.1 22 10.7 22 12.5C22 13.8 20.8 15 19 15.8L9.8 6.6M16 12C16 12.6 16.4 13 17 13S18 12.6 18 12 17.6 11 17 11 16 11.4 16 12Z\";\nexport var mdiFishbowl = \"M19.11,5H21V3H3V5H4.89C3.11,6.8 2,9.27 2,12C2,15.97 4.31,19.39 7.66,21H16.34C19.69,19.39 22,15.97 22,12C22,9.27 20.89,6.8 19.11,5M13.25,17C12.09,17 11.06,16.64 10.33,16.17C9.67,17 8.33,17 7,17C8.1,17 8.5,15.88 8.5,14.5C8.5,13.12 8.1,12 7,12C8.33,12 9.67,12 10.37,12.91C11.06,12.36 12.09,12 13.25,12C15.32,12 17,13.12 17,14.5C17,15.88 15.32,17 13.25,17M16,7C13.56,8.71 10.44,8.71 8,7C7.06,7.66 6,8.09 4.95,8.25C5.31,7.58 5.77,6.96 6.32,6.41L7.7,5H16.3L17.68,6.41C18.23,6.96 18.69,7.58 19.05,8.25C18,8.09 16.94,7.66 16,7Z\";\nexport var mdiFishbowlOutline = \"M19.11,5H21V3H3V5H4.89C3.11,6.8 2,9.27 2,12C2,15.97 4.31,19.39 7.66,21H16.34C19.69,19.39 22,15.97 22,12C22,9.27 20.89,6.8 19.11,5M6.32,6.41L7.7,5H16.3L17.68,6.41C18.23,6.96 18.69,7.58 19.05,8.25C18,8.09 16.94,7.66 16,7C13.56,8.71 10.44,8.71 8,7C7.06,7.66 6,8.09 4.95,8.25C5.31,7.58 5.77,6.96 6.32,6.41M15.85,19H8.15C5.58,17.59 4,14.95 4,12C4,11.43 4.07,10.86 4.19,10.32C5.5,10.29 6.8,9.95 8,9.33C10.5,10.63 13.5,10.63 16,9.33C17.2,9.95 18.5,10.29 19.81,10.32C19.93,10.86 20,11.43 20,12C20,14.95 18.42,17.59 15.85,19M17,14.5C17,15.88 15.32,17 13.25,17C12.09,17 11.06,16.64 10.33,16.16C9.67,17 8.33,17 7,17C8.1,17 8.5,15.88 8.5,14.5C8.5,13.12 8.1,12 7,12C8.33,12 9.67,12 10.37,12.91C11.06,12.36 12.09,12 13.25,12C15.32,12 17,13.12 17,14.5Z\";\nexport var mdiFitToPage = \"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M12,4L15,7H13V9H11V7H9M7,15L4,12L7,9V11H9V13H7M12,20L9,17H11V15H13V17H15M17,15V13H15V11H17V9L20,12\";\nexport var mdiFitToPageOutline = \"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M20,20H4V4H20M13,8V10H11V8H9L12,5L15,8M16,15V13H14V11H16V9L19,12M10,13H8V15L5,12L8,9V11H10M15,16L12,19L9,16H11V14H13V16\";\nexport var mdiFitToScreen = \"M17 4H20C21.1 4 22 4.9 22 6V8H20V6H17V4M4 8V6H7V4H4C2.9 4 2 4.9 2 6V8H4M20 16V18H17V20H20C21.1 20 22 19.1 22 18V16H20M7 18H4V16H2V18C2 19.1 2.9 20 4 20H7V18M18 8H6V16H18V8Z\";\nexport var mdiFitToScreenOutline = \"M17 4H20C21.1 4 22 4.9 22 6V8H20V6H17V4M4 8V6H7V4H4C2.9 4 2 4.9 2 6V8H4M20 16V18H17V20H20C21.1 20 22 19.1 22 18V16H20M7 18H4V16H2V18C2 19.1 2.9 20 4 20H7V18M16 10V14H8V10H16M18 8H6V16H18V8Z\";\nexport var mdiFlag = \"M14.4,6L14,4H5V21H7V14H12.6L13,16H20V6H14.4Z\";\nexport var mdiFlagCheckered = \"M14.4,6H20V16H13L12.6,14H7V21H5V4H14L14.4,6M14,14H16V12H18V10H16V8H14V10L13,8V6H11V8H9V6H7V8H9V10H7V12H9V10H11V12H13V10L14,12V14M11,10V8H13V10H11M14,10H16V12H14V10Z\";\nexport var mdiFlagMinus = \"M12.4,5H18V15H11L10.6,13H5V20H3V3H12L12.4,5M14,17H22V19H14V17Z\";\nexport var mdiFlagMinusOutline = \"M12.36 6L12.76 8H18V14H14.64L14.24 12H7V6H12.36M14 4H5V21H7V14H12.6L13 16H20V6H14.4M23 18H15V20H23V18Z\";\nexport var mdiFlagOff = \"M20.84 22.73L14.11 16H13L12.72 14.61L12.11 14H7V21H5V6.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M20 16V6H14.4L14 4H7.2L19.2 16H20\";\nexport var mdiFlagOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L5 6.89V21H7V14H12.11L12.72 14.61L13 16H14.11L20.84 22.73L22.11 21.46M7 12V8.89L10.11 12H7M9.2 6L7.2 4H14L14.4 6H20V16H19.2L17.2 14H18V8H12.76L12.36 6H9.2Z\";\nexport var mdiFlagOutline = \"M12.36,6L12.76,8H18V14H14.64L14.24,12H7V6H12.36M14,4H5V21H7V14H12.6L13,16H20V6H14.4\";\nexport var mdiFlagPlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M12.4,5H18V12C15.78,12 13.84,13.21 12.8,15H11L10.6,13H5V20H3V3H12L12.4,5Z\";\nexport var mdiFlagPlusOutline = \"M13 16L12.6 14H7V21H5V4H14L14.4 6H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V8H12.76L12.36 6H7V12H14.24L14.64 14H15.69C14.92 14.5 14.27 15.2 13.81 16H13M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFlagRemove = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M12.4,5H18V12C15.78,12 13.84,13.21 12.8,15H11L10.6,13H5V20H3V3H12L12.4,5Z\";\nexport var mdiFlagRemoveOutline = \"M13 16L12.6 14H7V21H5V4H14L14.4 6H20V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V8H12.76L12.36 6H7V12H14.24L14.64 14H15.69C14.92 14.5 14.27 15.2 13.81 16H13M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiFlagTriangle = \"M7,2H9V22H7V2M19,9L11,14.6V3.4L19,9Z\";\nexport var mdiFlagVariant = \"M6,3A1,1 0 0,1 7,4V4.88C8.06,4.44 9.5,4 11,4C14,4 14,6 16,6C19,6 20,4 20,4V12C20,12 19,14 16,14C13,14 13,12 11,12C8,12 7,14 7,14V21H5V4A1,1 0 0,1 6,3Z\";\nexport var mdiFlagVariantMinus = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M15 18V20H23V18H15Z\";\nexport var mdiFlagVariantMinusOutline = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M7 7.2V11.4C7 11.4 9 9.9 11 9.9S14 11.9 16 11.9 18 10.9 18 10.9V7.5C18 7.5 17 8 16 8C14 8 13 6 11 6S7 7.2 7 7.2M15 18V20H23V18H15Z\";\nexport var mdiFlagVariantOff = \"M20.8 22.7L10.2 12.1C7.8 12.4 7 14 7 14V21H5V6.9L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M20 12V4C20 4 19 6 16 6C14 6 14 4 11 4C9.8 4 8.7 4.3 7.8 4.6L17.1 13.9C19.2 13.5 20 12 20 12Z\";\nexport var mdiFlagVariantOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L5 6.9V21H7V14C7 14 7.8 12.4 10.2 12.1L20.9 22.8L22.1 21.5M7 11.5V8.9L8.7 10.6C7.7 11 7 11.5 7 11.5M9.4 6.2L7.8 4.6C8.7 4.3 9.8 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19.2 13.5 17.1 13.9L15 11.8C15.3 11.9 15.6 12 16 12C18 12 18 11 18 11V7.5C18 7.5 17 8 16 8C14 8 13 6 11 6C10.5 6 9.9 6.1 9.4 6.2Z\";\nexport var mdiFlagVariantOutline = \"M6,3A1,1 0 0,1 7,4V4.88C8.06,4.44 9.5,4 11,4C14,4 14,6 16,6C19,6 20,4 20,4V12C20,12 19,14 16,14C13,14 13,12 11,12C8,12 7,14 7,14V21H5V4A1,1 0 0,1 6,3M7,7.25V11.5C7,11.5 9,10 11,10C13,10 14,12 16,12C18,12 18,11 18,11V7.5C18,7.5 17,8 16,8C14,8 13,6 11,6C9,6 7,7.25 7,7.25Z\";\nexport var mdiFlagVariantPlus = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFlagVariantPlusOutline = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M7 7.2V11.4C7 11.4 9 9.9 11 9.9S14 11.9 16 11.9 18 10.9 18 10.9V7.5C18 7.5 17 8 16 8C14 8 13 6 11 6S7 7.2 7 7.2M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiFlagVariantRemove = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiFlagVariantRemoveOutline = \"M6 3C6.6 3 7 3.4 7 4V4.9C8.1 4.4 9.5 4 11 4C14 4 14 6 16 6C19 6 20 4 20 4V12C20 12 19 14 16 14S13 12 11 12C8 12 7 14 7 14V21H5V4C5 3.4 5.4 3 6 3M7 7.2V11.4C7 11.4 9 9.9 11 9.9S14 11.9 16 11.9 18 10.9 18 10.9V7.5C18 7.5 17 8 16 8C14 8 13 6 11 6S7 7.2 7 7.2M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiFlare = \"M7,11H1V13H7V11M9.17,7.76L7.05,5.64L5.64,7.05L7.76,9.17L9.17,7.76M13,1H11V7H13V1M18.36,7.05L16.95,5.64L14.83,7.76L16.24,9.17L18.36,7.05M17,11V13H23V11H17M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M14.83,16.24L16.95,18.36L18.36,16.95L16.24,14.83L14.83,16.24M5.64,16.95L7.05,18.36L9.17,16.24L7.76,14.83L5.64,16.95M11,23H13V17H11V23Z\";\nexport var mdiFlash = \"M7,2V13H10V22L17,10H13L17,2H7Z\";\nexport var mdiFlashAlert = \"M5,2V13H8V22L15,10H11L15,2M17,15H19V17H17V15M17,7H19V13H17V7Z\";\nexport var mdiFlashAlertOutline = \"M5,2H15L11.5,9H15L8,22V14H5V2M7,4V12H10V14.66L12,11H8.24L11.76,4M17,15H19V17H17V15M17,7H19V13H17V7Z\";\nexport var mdiFlashAuto = \"M16.85,7.65L18,4L19.15,7.65M19,2H17L13.8,11H15.7L16.4,9H19.6L20.3,11H22.2M3,2V14H6V23L13,11H9L13,2H3Z\";\nexport var mdiFlashOff = \"M17,10H13L17,2H7V4.18L15.46,12.64M3.27,3L2,4.27L7,9.27V13H10V22L13.58,15.86L17.73,20L19,18.73L3.27,3Z\";\nexport var mdiFlashOffOutline = \"M9 6.19L7 4.19V2H17L13.5 9H17L15.18 12.37L11.43 8.62L13.76 4H9V6.19M19 18.73L17.73 20L13.41 15.68L10 22V14H7V9.27L2 4.27L3.27 3L19 18.73Z\";\nexport var mdiFlashOutline = \"M7,2H17L13.5,9H17L10,22V14H7V2M9,4V12H12V14.66L14,11H10.24L13.76,4H9Z\";\nexport var mdiFlashRedEye = \"M16,5C15.44,5 15,5.44 15,6C15,6.56 15.44,7 16,7C16.56,7 17,6.56 17,6C17,5.44 16.56,5 16,5M16,2C13.27,2 10.94,3.66 10,6C10.94,8.34 13.27,10 16,10C18.73,10 21.06,8.34 22,6C21.06,3.66 18.73,2 16,2M16,3.5A2.5,2.5 0 0,1 18.5,6A2.5,2.5 0 0,1 16,8.5A2.5,2.5 0 0,1 13.5,6A2.5,2.5 0 0,1 16,3.5M3,2V14H6V23L13,11H9L10.12,8.5C9.44,7.76 8.88,6.93 8.5,6C9.19,4.29 10.5,2.88 12.11,2H3Z\";\nexport var mdiFlashTriangle = \"M12 2L1 21H23L12 2M10 15V10H14L12.5 13.5H14.5L11.5 19V15H10Z\";\nexport var mdiFlashTriangleOutline = \"M12 2L1 21H23M12 6L19.5 19H4.5M14 14H12.5L14 11H10V15H11V18L14 14Z\";\nexport var mdiFlashlight = \"M9,10L6,5H18L15,10H9M18,4H6V2H18V4M9,22V11H15V22H9M12,13A1,1 0 0,0 11,14A1,1 0 0,0 12,15A1,1 0 0,0 13,14A1,1 0 0,0 12,13Z\";\nexport var mdiFlashlightOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L15,18.27V22H9V12.27L2,5.27M18,5L15,10H11.82L6.82,5H18M18,4H6V2H18V4M15,11V13.18L12.82,11H15Z\";\nexport var mdiFlask = \"M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6M5,19A1,1 0 0,0 6,20H18A1,1 0 0,0 19,19C19,18.79 18.93,18.59 18.82,18.43L16.53,14.47L14,17L8.93,11.93L5.18,18.43C5.07,18.59 5,18.79 5,19M13,10A1,1 0 0,0 12,11A1,1 0 0,0 13,12A1,1 0 0,0 14,11A1,1 0 0,0 13,10Z\";\nexport var mdiFlaskEmpty = \"M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6Z\";\nexport var mdiFlaskEmptyMinus = \"M23 17V19H15V17H23M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C14.92 12.84 13 15.2 13 18C13 19.54 13.58 20.94 14.53 22H6Z\";\nexport var mdiFlaskEmptyMinusOutline = \"M23 17V19H15V17H23M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19Z\";\nexport var mdiFlaskEmptyOff = \"M20.8 22.7L19.6 21.5C19.1 21.8 18.6 22 18 22H6C4.3 22 3 20.7 3 19C3 18.4 3.2 17.8 3.5 17.4L7.9 9.8L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M15 7.8V6C15.6 6 16 5.6 16 5V4C16 2.9 15.1 2 14 2H10C8.9 2 8 2.9 8 4V4.8L20.4 17.2L15 7.8Z\";\nexport var mdiFlaskEmptyOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L7.9 9.8L3.5 17.4C3.2 17.8 3 18.4 3 19C3 20.7 4.3 22 6 22H18C18.6 22 19.2 21.8 19.6 21.5L20.8 22.7L22.1 21.5M18 20H6C5.4 20 5 19.6 5 19C5 18.8 5.1 18.6 5.2 18.4L9.4 11.2L18 20C18.1 20 18 20 18 20M11 7.8L8 4.8V4C8 2.9 8.9 2 10 2H14C15.1 2 16 2.9 16 4V5C16 5.6 15.6 6 15 6V7.8L20.4 17.2L15 11.8L13 8.4V4H11V7.8Z\";\nexport var mdiFlaskEmptyOutline = \"M5,19A1,1 0 0,0 6,20H18A1,1 0 0,0 19,19C19,18.79 18.93,18.59 18.82,18.43L13,8.35V4H11V8.35L5.18,18.43C5.07,18.59 5,18.79 5,19M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6Z\";\nexport var mdiFlaskEmptyPlus = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C14.92 12.84 13 15.2 13 18C13 19.54 13.58 20.94 14.53 22H6Z\";\nexport var mdiFlaskEmptyPlusOutline = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19Z\";\nexport var mdiFlaskEmptyRemove = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C14.92 12.84 13 15.2 13 18C13 19.54 13.58 20.94 14.53 22H6Z\";\nexport var mdiFlaskEmptyRemoveOutline = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19Z\";\nexport var mdiFlaskMinus = \"M23 17V19H15V17H23M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C15.5 12.7 13.86 14.26 13.26 16.26L8.93 11.93L5.18 18.43C5.07 18.59 5 18.79 5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6M13 10C12.45 10 12 10.45 12 11C12 11.55 12.45 12 13 12C13.55 12 14 11.55 14 11C14 10.45 13.55 10 13 10Z\";\nexport var mdiFlaskMinusOutline = \"M23 17V19H15V17H23M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19M13 16L13.58 15.42C13.21 16.2 13 17.08 13 18H7.73L10.39 13.39L13 16M12.5 12C12.78 12 13 12.22 13 12.5C13 12.78 12.78 13 12.5 13C12.22 13 12 12.78 12 12.5C12 12.22 12.22 12 12.5 12Z\";\nexport var mdiFlaskOff = \"M22.1 21.5L2.4 1.7L1.1 3L7.9 9.8L3.5 17.4C3.2 17.8 3 18.4 3 19C3 20.7 4.3 22 6 22H18C18.6 22 19.2 21.8 19.6 21.5L20.8 22.7L22.1 21.5M18 20H6C5.4 20 5 19.6 5 19C5 18.8 5.1 18.6 5.2 18.4L9 11.9L14 17L14.6 16.4L18 20C18.1 20 18 20 18 20M8 4.8V4C8 2.9 8.9 2 10 2H14C15.1 2 16 2.9 16 4V5C16 5.6 15.6 6 15 6V7.8L20.4 17.2L8 4.8Z\";\nexport var mdiFlaskOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L7.9 9.8L3.5 17.4C3.2 17.8 3 18.4 3 19C3 20.7 4.3 22 6 22H18C18.6 22 19.2 21.8 19.6 21.5L20.8 22.7L22.1 21.5M18 20H6C5.4 20 5 19.6 5 19C5 18.8 5.1 18.6 5.2 18.4L9.4 11.2L13.6 15.4L13 16L10.4 13.4L7.7 18H16.1L18 20C18.1 20 18 20 18 20M11 7.8L8 4.8V4C8 2.9 8.9 2 10 2H14C15.1 2 16 2.9 16 4V5C16 5.6 15.6 6 15 6V7.8L20.4 17.2L15 11.8L13 8.4V4H11V7.8Z\";\nexport var mdiFlaskOutline = \"M5,19A1,1 0 0,0 6,20H18A1,1 0 0,0 19,19C19,18.79 18.93,18.59 18.82,18.43L13,8.35V4H11V8.35L5.18,18.43C5.07,18.59 5,18.79 5,19M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6M13,16L14.34,14.66L16.27,18H7.73L10.39,13.39L13,16M12.5,12A0.5,0.5 0 0,1 13,12.5A0.5,0.5 0 0,1 12.5,13A0.5,0.5 0 0,1 12,12.5A0.5,0.5 0 0,1 12.5,12Z\";\nexport var mdiFlaskPlus = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C15.5 12.7 13.86 14.26 13.26 16.26L8.93 11.93L5.18 18.43C5.07 18.59 5 18.79 5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6M13 10C12.45 10 12 10.45 12 11C12 11.55 12.45 12 13 12C13.55 12 14 11.55 14 11C14 10.45 13.55 10 13 10Z\";\nexport var mdiFlaskPlusOutline = \"M18 14H20V17H23V19H20V22H18V19H15V17H18V14M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19M13 16L13.58 15.42C13.21 16.2 13 17.08 13 18H7.73L10.39 13.39L13 16M12.5 12C12.78 12 13 12.22 13 12.5C13 12.78 12.78 13 12.5 13C12.22 13 12 12.78 12 12.5C12 12.22 12.22 12 12.5 12Z\";\nexport var mdiFlaskRemove = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M6 22C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C15.5 12.7 13.86 14.26 13.26 16.26L8.93 11.93L5.18 18.43C5.07 18.59 5 18.79 5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6M13 10C12.45 10 12 10.45 12 11C12 11.55 12.45 12 13 12C13.55 12 14 11.55 14 11C14 10.45 13.55 10 13 10Z\";\nexport var mdiFlaskRemoveOutline = \"M15.46 15.88L16.88 14.46L19 16.59L21.12 14.47L22.53 15.88L20.41 18L22.54 20.12L21.12 21.54L19 19.41L16.88 21.53L15.47 20.12L17.59 18L15.46 15.88M5 19C5 19.55 5.45 20 6 20H13.34C13.61 20.75 14 21.42 14.53 22H6C4.34 22 3 20.66 3 19C3 18.4 3.18 17.84 3.5 17.36L9 7.81V6C8.45 6 8 5.55 8 5V4C8 2.9 8.9 2 10 2H14C15.11 2 16 2.9 16 4V5C16 5.55 15.55 6 15 6V7.81L17.5 12.18C16.86 12.35 16.24 12.63 15.69 13L13 8.35V4H11V8.35L5.18 18.43C5.07 18.59 5 18.79 5 19M13 16L13.58 15.42C13.21 16.2 13 17.08 13 18H7.73L10.39 13.39L13 16M12.5 12C12.78 12 13 12.22 13 12.5C13 12.78 12.78 13 12.5 13C12.22 13 12 12.78 12 12.5C12 12.22 12.22 12 12.5 12Z\";\nexport var mdiFlaskRoundBottom = \"M19 15C19 18.87 15.87 22 12 22C8.13 22 5 18.87 5 15C5 12.21 6.64 9.8 9 8.67V5C9 4.45 9.45 4 10 4H10.5L9.5 2H14.5L13.5 4H14C14.55 4 15 4.45 15 5V8.67C17.36 9.8 19 12.21 19 15M11 6V10.1C8.72 10.56 7 12.58 7 15L7.08 15.91L9 13.93L13.07 18L16.93 14.14C16.58 12.12 15 10.5 13 10.1V6H11M13.07 12C13.62 12 14.07 12.45 14.07 13C14.07 13.55 13.62 14 13.07 14C12.5 14 12.07 13.55 12.07 13C12.07 12.45 12.5 12 13.07 12Z\";\nexport var mdiFlaskRoundBottomEmpty = \"M19 15C19 18.87 15.87 22 12 22C8.13 22 5 18.87 5 15C5 12.21 6.64 9.8 9 8.67V5C9 4.45 9.45 4 10 4H10.5L9.5 2H14.5L13.5 4H14C14.55 4 15 4.45 15 5V8.67C17.36 9.8 19 12.21 19 15Z\";\nexport var mdiFlaskRoundBottomEmptyOutline = \"M19 15C19 18.87 15.87 22 12 22C8.13 22 5 18.87 5 15C5 12.21 6.64 9.8 9 8.67V5C9 4.45 9.45 4 10 4H10.5L9.5 2H14.5L13.5 4H14C14.55 4 15 4.45 15 5V8.67C17.36 9.8 19 12.21 19 15M11 6V10.1C8.72 10.56 7 12.58 7 15C7 17.76 9.24 20 12 20C14.76 20 17 17.76 17 15C17 12.58 15.28 10.56 13 10.1V6H11Z\";\nexport var mdiFlaskRoundBottomOutline = \"M15 15C15 16.66 13.66 18 12 18C10.34 18 9 16.66 9 15V14H11V15C11 15.55 11.45 16 12 16C12.55 16 13 15.55 13 15V14H15V15M19 15C19 18.87 15.87 22 12 22C8.13 22 5 18.87 5 15C5 12.21 6.64 9.8 9 8.67V5C9 4.45 9.45 4 10 4H10.5L9.5 2H14.5L13.5 4H14C14.55 4 15 4.45 15 5V8.67C17.36 9.8 19 12.21 19 15M11 6V10.1C8.72 10.56 7 12.58 7 15C7 17.76 9.24 20 12 20C14.76 20 17 17.76 17 15C17 12.58 15.28 10.56 13 10.1V6H11Z\";\nexport var mdiFleurDeLis = \"M12 2S9 4 9 7 11 12 11 16H10S10 14 9 12C7 8 3 10 3 13S5 16 5 16C5 13 8.5 13 8.5 16H7V18H10.5L9 20S10 21 11 20L12 22L13 20C14 21 15 20 15 20L13.5 18H17V16H15.5C15.5 13 19 13 19 16C19 16 21 16 21 13S17 8 15 12C14 14 14 16 14 16H13C13 12 15 10 15 7S12 2 12 2Z\";\nexport var mdiFlipHorizontal = \"M15 21H17V19H15M19 9H21V7H19M3 5V19C3 20.1 3.9 21 5 21H9V19H5V5H9V3H5C3.9 3 3 3.9 3 5M19 3V5H21C21 3.9 20.1 3 19 3M11 23H13V1H11M19 17H21V15H19M15 5H17V3H15M19 13H21V11H19M19 21C20.1 21 21 20.1 21 19H19Z\";\nexport var mdiFlipToBack = \"M15,17H17V15H15M15,5H17V3H15M5,7H3V19A2,2 0 0,0 5,21H17V19H5M19,17A2,2 0 0,0 21,15H19M19,9H21V7H19M19,13H21V11H19M9,17V15H7A2,2 0 0,0 9,17M13,3H11V5H13M19,3V5H21C21,3.89 20.1,3 19,3M13,15H11V17H13M9,3C7.89,3 7,3.89 7,5H9M9,11H7V13H9M9,7H7V9H9V7Z\";\nexport var mdiFlipToFront = \"M7,21H9V19H7M11,21H13V19H11M19,15H9V5H19M19,3H9C7.89,3 7,3.89 7,5V15A2,2 0 0,0 9,17H14L18,17H19A2,2 0 0,0 21,15V5C21,3.89 20.1,3 19,3M15,21H17V19H15M3,9H5V7H3M5,21V19H3A2,2 0 0,0 5,21M3,17H5V15H3M3,13H5V11H3V13Z\";\nexport var mdiFlipVertical = \"M3 15V17H5V15M15 19V21H17V19M19 3H5C3.9 3 3 3.9 3 5V9H5V5H19V9H21V5C21 3.9 20.1 3 19 3M21 19H19V21C20.1 21 21 20.1 21 19M1 11V13H23V11M7 19V21H9V19M19 15V17H21V15M11 19V21H13V19M3 19C3 20.1 3.9 21 5 21V19Z\";\nexport var mdiFloorLamp = \"M15,2L17,9H7L9,2M11,10H13V20H16V22H8V20H11V10Z\";\nexport var mdiFloorLampDual = \"M11.73 10.06L10.17 11.24L11 12.2V20H8V22H16V20H13V12.3L13.85 11.26L12.27 10.07L11.73 10.06M9.08 10.82L3 6.81L9.39 2L11.55 8.93L9.08 10.82M14.61 2L21 6.81L14.92 10.82L12.44 8.95L14.61 2Z\";\nexport var mdiFloorLampDualOutline = \"M11.73 10.06L10.17 11.24L11 12.2V20H8V22H16V20H13V12.3L13.85 11.26L12.27 10.07L11.73 10.06M8.32 5.31L9.23 8.19L9 8.37L6.47 6.7L8.32 5.31M9.39 2L3 6.81L9.08 10.82L11.55 8.93L9.39 2M15.67 5.3L17.53 6.7L15 8.37L14.77 8.2L15.67 5.3M14.61 2L12.44 8.95L14.92 10.82L21 6.81L14.61 2Z\";\nexport var mdiFloorLampOutline = \"M15 2L17 9H7L9 2M13.6 4H10.4L9.55 7H14.45M11 10H13V20H16V22H8V20H11Z\";\nexport var mdiFloorLampTorchiere = \"M7 2L10 9H14L17 2H7M13 20H16V22H8V20H11V10H13V20Z\";\nexport var mdiFloorLampTorchiereOutline = \"M14 4L12.7 7H11.3L10 4H14M17 2H7L10 9H14L17 2M13 20H16V22H8V20H11V10H13V20Z\";\nexport var mdiFloorLampTorchiereVariant = \"M7 2L10 9H14L17 2H7M15.92 22L13 15V22H11V15L8.08 22H5.92L10.92 10H13.08L18.08 22H15.92Z\";\nexport var mdiFloorLampTorchiereVariantOutline = \"M13.97 4L12.68 7H11.32L10.03 4H13.97M17 2H7L10 9H14L17 2M15.92 22L13 15V22H11V15L8.08 22H5.92L10.92 10H13.08L18.08 22H15.92Z\";\nexport var mdiFloorPlan = \"M10,5V10H9V5H5V13H9V12H10V17H9V14H5V19H12V17H13V19H19V17H21V21H3V3H21V15H19V10H13V15H12V9H19V5H10Z\";\nexport var mdiFloppy = \"M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5.5L18.5,3H17V9A1,1 0 0,1 16,10H8A1,1 0 0,1 7,9V3H5M12,4V9H15V4H12M7,12H17A1,1 0 0,1 18,13V19H6V13A1,1 0 0,1 7,12Z\";\nexport var mdiFloppyVariant = \"M3,3V21H21V3H3M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,15A1,1 0 0,1 13,16V19A1,1 0 0,1 12,20A1,1 0 0,1 11,19V16A1,1 0 0,1 12,15Z\";\nexport var mdiFlower = \"M3,13A9,9 0 0,0 12,22C12,17 7.97,13 3,13M12,5.5A2.5,2.5 0 0,1 14.5,8A2.5,2.5 0 0,1 12,10.5A2.5,2.5 0 0,1 9.5,8A2.5,2.5 0 0,1 12,5.5M5.6,10.25A2.5,2.5 0 0,0 8.1,12.75C8.63,12.75 9.12,12.58 9.5,12.31C9.5,12.37 9.5,12.43 9.5,12.5A2.5,2.5 0 0,0 12,15A2.5,2.5 0 0,0 14.5,12.5C14.5,12.43 14.5,12.37 14.5,12.31C14.88,12.58 15.37,12.75 15.9,12.75C17.28,12.75 18.4,11.63 18.4,10.25C18.4,9.25 17.81,8.4 16.97,8C17.81,7.6 18.4,6.74 18.4,5.75C18.4,4.37 17.28,3.25 15.9,3.25C15.37,3.25 14.88,3.41 14.5,3.69C14.5,3.63 14.5,3.56 14.5,3.5A2.5,2.5 0 0,0 12,1A2.5,2.5 0 0,0 9.5,3.5C9.5,3.56 9.5,3.63 9.5,3.69C9.12,3.41 8.63,3.25 8.1,3.25A2.5,2.5 0 0,0 5.6,5.75C5.6,6.74 6.19,7.6 7.03,8C6.19,8.4 5.6,9.25 5.6,10.25M12,22A9,9 0 0,0 21,13C16,13 12,17 12,22Z\";\nexport var mdiFlowerOutline = \"M8.66,13.07C6.92,13.07 5.5,11.66 5.5,9.93C5.5,9.22 5.76,8.54 6.19,8C5.77,7.46 5.5,6.78 5.5,6.07C5.5,4.34 6.93,2.93 8.66,2.93L9.09,2.96C9.56,1.81 10.69,1 12,1C13.31,1 14.44,1.81 14.91,2.96L15.34,2.93C17.07,2.93 18.5,4.34 18.5,6.07C18.5,6.78 18.24,7.46 17.81,8C18.23,8.54 18.5,9.22 18.5,9.93C18.5,11.66 17.07,13.07 15.34,13.07L14.91,13.04C14.44,14.19 13.31,15 12,15C10.69,15 9.56,14.19 9.09,13.04L8.66,13.07M12,13C12.62,13 13.12,12.5 13.14,11.9L13.03,10.81C12.71,10.93 12.36,11 12,11C11.64,11 11.3,10.93 11,10.81L10.86,11.9C10.88,12.5 11.38,13 12,13M15.34,11.07C15.97,11.07 16.5,10.56 16.5,9.92C16.5,9.5 16.23,9.08 15.83,8.89L14.95,8.47C14.83,9.21 14.44,9.85 13.89,10.3L14.7,10.87C14.88,11 15.1,11.07 15.34,11.07M14.69,5.13L13.87,5.69C14.43,6.14 14.82,6.78 14.94,7.5L15.82,7.1C16.23,6.9 16.5,6.5 16.5,6.07C16.5,5.44 15.97,4.93 15.34,4.93C15.11,4.93 14.89,5 14.69,5.13M12,3C11.38,3 10.88,3.5 10.86,4.1L11,5.19C11.3,5.07 11.64,5 12,5C12.36,5 12.71,5.07 13.03,5.19L13.14,4.1C13.12,3.5 12.62,3 12,3M8.66,4.93C8.03,4.93 7.5,5.44 7.5,6.07C7.5,6.5 7.77,6.9 8.17,7.1L9.05,7.5C9.17,6.78 9.56,6.14 10.11,5.69L9.3,5.13C9.12,5 8.9,4.93 8.66,4.93M8.17,8.9C7.77,9.1 7.5,9.5 7.5,9.92C7.5,10.55 8.03,11.06 8.66,11.06C8.89,11.06 9.11,11 9.31,10.86L10.12,10.31C9.56,9.86 9.17,9.22 9.05,8.5L8.17,8.9M12,22A9,9 0 0,1 3,13A9,9 0 0,1 12,22A9,9 0 0,1 21,13A9,9 0 0,1 12,22M14.44,19.56C16.34,18.85 17.85,17.34 18.56,15.44C16.66,16.14 15.15,17.66 14.44,19.56M5.44,15.44C6.15,17.34 7.66,18.85 9.56,19.56C8.86,17.66 7.34,16.15 5.44,15.44Z\";\nexport var mdiFlowerPollen = \"M18.4 12.75C18.4 11.37 17.28 10.25 15.9 10.25C15.37 10.25 14.88 10.41 14.5 10.69V10.5C14.5 9.12 13.38 8 12 8S9.5 9.12 9.5 10.5V10.69C9.12 10.41 8.63 10.25 8.1 10.25C6.72 10.25 5.6 11.37 5.6 12.75C5.6 13.74 6.19 14.6 7.03 15C6.19 15.4 5.6 16.25 5.6 17.25C5.6 18.63 6.72 19.75 8.1 19.75C8.63 19.75 9.12 19.58 9.5 19.31V19.5C9.5 20.88 10.62 22 12 22S14.5 20.88 14.5 19.5V19.31C14.88 19.58 15.37 19.75 15.9 19.75C17.28 19.75 18.4 18.63 18.4 17.25C18.4 16.25 17.81 15.4 16.97 15C17.81 14.6 18.4 13.74 18.4 12.75M12 17.5C10.62 17.5 9.5 16.38 9.5 15S10.62 12.5 12 12.5 14.5 13.62 14.5 15 13.38 17.5 12 17.5M11 6C11 5.45 11.45 5 12 5S13 5.45 13 6 12.55 7 12 7 11 6.55 11 6M7 8C7 7.45 7.45 7 8 7S9 7.45 9 8 8.55 9 8 9 7 8.55 7 8M5 6C4.45 6 4 5.55 4 5S4.45 4 5 4 6 4.45 6 5 5.55 6 5 6M8 3C8 2.45 8.45 2 9 2S10 2.45 10 3 9.55 4 9 4 8 3.55 8 3M14 3C14 2.45 14.45 2 15 2S16 2.45 16 3 15.55 4 15 4 14 3.55 14 3M20 5C20 5.55 19.55 6 19 6S18 5.55 18 5 18.45 4 19 4 20 4.45 20 5M16 7C16.55 7 17 7.45 17 8S16.55 9 16 9 15 8.55 15 8 15.45 7 16 7Z\";\nexport var mdiFlowerPollenOutline = \"M11 6C11 5.45 11.45 5 12 5S13 5.45 13 6 12.55 7 12 7 11 6.55 11 6M8 9C8.55 9 9 8.55 9 8S8.55 7 8 7 7 7.45 7 8 7.45 9 8 9M6 5C6 4.45 5.55 4 5 4S4 4.45 4 5 4.45 6 5 6 6 5.55 6 5M9 4C9.55 4 10 3.55 10 3S9.55 2 9 2 8 2.45 8 3 8.45 4 9 4M15 4C15.55 4 16 3.55 16 3S15.55 2 15 2 14 2.45 14 3 14.45 4 15 4M19 4C18.45 4 18 4.45 18 5S18.45 6 19 6 20 5.55 20 5 19.55 4 19 4M15 8C15 8.55 15.45 9 16 9S17 8.55 17 8 16.55 7 16 7 15 7.45 15 8M18.5 13.07C18.5 13.78 18.24 14.46 17.81 15C18.23 15.54 18.5 16.22 18.5 16.93C18.5 18.66 17.07 20.07 15.34 20.07L14.91 20.04C14.44 21.19 13.31 22 12 22S9.56 21.19 9.09 20.04L8.66 20.07C6.92 20.07 5.5 18.66 5.5 16.93C5.5 16.22 5.76 15.54 6.19 15C5.77 14.46 5.5 13.78 5.5 13.07C5.5 11.34 6.93 9.93 8.66 9.93L9.09 9.96C9.56 8.81 10.69 8 12 8S14.44 8.81 14.91 9.96L15.34 9.93C17.07 9.93 18.5 11.34 18.5 13.07M7.5 13.07C7.5 13.5 7.77 13.9 8.17 14.1L9.05 14.5C9.17 13.78 9.56 13.14 10.11 12.69L9.3 12.13C9.12 12 8.9 11.93 8.66 11.93C8.03 11.93 7.5 12.44 7.5 13.07M10.12 17.31C9.56 16.86 9.17 16.22 9.05 15.5L8.17 15.9C7.77 16.1 7.5 16.5 7.5 16.92C7.5 17.55 8.03 18.06 8.66 18.06C8.89 18.06 9.11 18 9.31 17.86L10.12 17.31M13.14 18.9L13.03 17.81C12.71 17.93 12.36 18 12 18S11.3 17.93 11 17.81L10.86 18.9C10.88 19.5 11.38 20 12 20S13.12 19.5 13.14 18.9M13.14 11.1C13.12 10.5 12.62 10 12 10S10.88 10.5 10.86 11.1L11 12.19C11.3 12.07 11.64 12 12 12S12.71 12.07 13.03 12.19L13.14 11.1M16.5 16.92C16.5 16.5 16.23 16.08 15.83 15.89L14.95 15.47C14.83 16.21 14.44 16.85 13.89 17.3L14.7 17.87C14.88 18 15.1 18.07 15.34 18.07C15.97 18.07 16.5 17.56 16.5 16.92M16.5 13.07C16.5 12.44 15.97 11.93 15.34 11.93C15.11 11.93 14.89 12 14.69 12.13L13.87 12.69C14.43 13.14 14.82 13.78 14.94 14.5L15.82 14.1C16.23 13.9 16.5 13.5 16.5 13.07Z\";\nexport var mdiFlowerPoppy = \"M18.5,12A3.5,3.5 0 0,0 22,8.5A6.5,6.5 0 0,0 15.5,2A3.5,3.5 0 0,0 12,5.5A3.5,3.5 0 0,0 8.5,2A6.5,6.5 0 0,0 2,8.5A3.5,3.5 0 0,0 5.5,12A3.5,3.5 0 0,0 2,15.5A6.5,6.5 0 0,0 8.5,22A3.5,3.5 0 0,0 12,18.5A3.5,3.5 0 0,0 15.5,22A6.5,6.5 0 0,0 22,15.5A3.5,3.5 0 0,0 18.5,12M12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16M14.5,12A2.5,2.5 0 0,1 12,14.5A2.5,2.5 0 0,1 9.5,12A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 14.5,12Z\";\nexport var mdiFlowerTulip = \"M3,13A9,9 0 0,0 12,22A9,9 0 0,0 3,13M12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,22M18,3V8A6,6 0 0,1 12,14A6,6 0 0,1 6,8V3C6.74,3 7.47,3.12 8.16,3.39C8.71,3.62 9.2,3.96 9.61,4.39L12,2L14.39,4.39C14.8,3.96 15.29,3.62 15.84,3.39C16.53,3.12 17.26,3 18,3Z\";\nexport var mdiFlowerTulipOutline = \"M3,13A9,9 0 0,0 12,22A9,9 0 0,0 3,13M5.44,15.44C7.35,16.15 8.85,17.65 9.56,19.56C7.65,18.85 6.15,17.35 5.44,15.44M12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,22M14.42,19.57C15.11,17.64 16.64,16.11 18.57,15.42C17.86,17.34 16.34,18.86 14.42,19.57M12,14A6,6 0 0,0 18,8V3C17.26,3 16.53,3.12 15.84,3.39C15.29,3.62 14.8,3.96 14.39,4.39L12,2L9.61,4.39C9.2,3.96 8.71,3.62 8.16,3.39C7.47,3.12 6.74,3 6,3V8A6,6 0 0,0 12,14M8,5.61L9.57,7.26L12,4.83L14.43,7.26L16,5.61V8A4,4 0 0,1 12,12A4,4 0 0,1 8,8V5.61Z\";\nexport var mdiFocusAuto = \"M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5V15M8 7C6.9 7 6 7.9 6 9V17H8V13H10V17H12V9C12 7.9 11.1 7 10 7H8M8 9H10V11H8V9M13 7V17H15V13H17V11H15V9H18V7H13Z\";\nexport var mdiFocusField = \"M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5V15M7 11H9V13H7V11M11 11H13V13H11V11M15 11H17V13H15V11M7 7H9V9H7V7M11 7H13V9H11V7M15 7H17V9H15V7M7 15H9V17H7V15M11 15H13V17H11V15M15 15H17V17H15V15Z\";\nexport var mdiFocusFieldHorizontal = \"M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5V15M7 11H9V13H7V11M11 11H13V13H11V11M15 11H17V13H15V11Z\";\nexport var mdiFocusFieldVertical = \"M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5V15M11 11H13V13H11V11M11 7H13V9H11V7M11 15H13V17H11V15Z\";\nexport var mdiFolder = \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\";\nexport var mdiFolderAccount = \"M19,17H11V16C11,14.67 13.67,14 15,14C16.33,14 19,14.67 19,16M15,9A2,2 0 0,1 17,11A2,2 0 0,1 15,13A2,2 0 0,1 13,11C13,9.89 13.9,9 15,9M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\";\nexport var mdiFolderAccountOutline = \"M15 14C16.33 14 19 14.67 19 16V17H11V16C11 14.67 13.67 14 15 14M15 13C16.11 13 17 12.11 17 11S16.11 9 15 9C13.9 9 13 9.89 13 11C13 12.11 13.9 13 15 13M22 8V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H10L12 6H20C21.11 6 22 6.9 22 8M20 8H4V18H20V8Z\";\nexport var mdiFolderAlert = \"M15,12H17V17H15V12M15,18H17V20H15V18M23,16A7,7 0 0,1 16,23C13.62,23 11.5,21.81 10.25,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9L11,6H19A2,2 0 0,1 21,8V11.1C22.24,12.36 23,14.09 23,16M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11Z\";\nexport var mdiFolderAlertOutline = \"M15,12H17V17H15V12M15,18H17V20H15V18M16,9C17.07,9 18.09,9.24 19,9.67V8H3V18H9.29C9.1,17.36 9,16.69 9,16A7,7 0 0,1 16,9M23,16A7,7 0 0,1 16,23C13.62,23 11.5,21.81 10.25,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9L11,6H19A2,2 0 0,1 21,8V11.1C22.24,12.36 23,14.09 23,16M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11Z\";\nexport var mdiFolderArrowDown = \"M22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M20 16H18V20H16L19 23L22 20H20V16Z\";\nexport var mdiFolderArrowDownOutline = \"M22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M20 16H18V20H16L19 23L22 20H20V16Z\";\nexport var mdiFolderArrowLeft = \"M22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M18 16L15 19L18 22V20H22V18H18V16Z\";\nexport var mdiFolderArrowLeftOutline = \"M22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M18 16L15 19L18 22V20H22V18H18V16Z\";\nexport var mdiFolderArrowLeftRight = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M23 17L20 14.5V16H16V18H20V19.5L23 17M18 18.5L15 21L18 23.5V22H22V20H18V18.5Z\";\nexport var mdiFolderArrowLeftRightOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M23 17L20 14.5V16H16V18H20V19.5L23 17M18 18.5L15 21L18 23.5V22H22V20H18V18.5Z\";\nexport var mdiFolderArrowRight = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiFolderArrowRightOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiFolderArrowUp = \"M22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M16 18H18V22H20V18H22L19 15L16 18Z\";\nexport var mdiFolderArrowUpDown = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M17 15L14.5 18H16V22H18V18H19.5L17 15M22 20V16H20V20H18.5L21 23L23.5 20H22Z\";\nexport var mdiFolderArrowUpDownOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M22 20V16H20V20H18.5L21 23L23.5 20H22M17 15L14.5 18H16V22H18V18H19.5L17 15Z\";\nexport var mdiFolderArrowUpOutline = \"M22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M16 18H18V22H20V18H22L19 15L16 18Z\";\nexport var mdiFolderCancel = \"M12 18.5C12 19 12.07 19.5 12.18 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.04C21 12.39 19.79 12 18.5 12C14.91 12 12 14.91 12 18.5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiFolderCancelOutline = \"M12 18.5C12 19 12.07 19.5 12.18 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.04C21.39 12.65 20.72 12.36 20 12.18V8H4V18H12.03C12 18.17 12 18.33 12 18.5M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiFolderCheck = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiFolderCheckOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiFolderClock = \"M3,4C1.89,4 1,4.89 1,6V18A2,2 0 0,0 3,20H10.26C11.57,21.88 13.71,23 16,23A7,7 0 0,0 23,16C23,14.17 22.28,12.42 21,11.11V8C21,6.89 20.1,6 19,6H11L9,4H3M16,11A5,5 0 0,1 21,16A5,5 0 0,1 16,21A5,5 0 0,1 11,16A5,5 0 0,1 16,11M15,12V17L18.61,19.16L19.36,17.94L16.5,16.25V12H15Z\";\nexport var mdiFolderClockOutline = \"M15,12H16.5V16.25L19.36,17.94L18.61,19.16L15,17V12M19,8H3V18H9.29C9.1,17.37 9,16.7 9,16A7,7 0 0,1 16,9C17.07,9 18.09,9.24 19,9.67V8M3,20C1.89,20 1,19.1 1,18V6A2,2 0 0,1 3,4H9L11,6H19A2,2 0 0,1 21,8V11.1C22.24,12.36 23,14.09 23,16A7,7 0 0,1 16,23C13.62,23 11.5,21.81 10.25,20H3M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11Z\";\nexport var mdiFolderCog = \"M4 4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H12.08A7 7 0 0 1 12 19A7 7 0 0 1 19 12A7 7 0 0 1 22 12.69V8C22 6.89 21.1 6 20 6H12L10 4H4M18 14C17.87 14 17.76 14.09 17.74 14.21L17.55 15.53C17.25 15.66 16.96 15.82 16.7 16L15.46 15.5C15.35 15.5 15.22 15.5 15.15 15.63L14.15 17.36C14.09 17.47 14.11 17.6 14.21 17.68L15.27 18.5C15.25 18.67 15.24 18.83 15.24 19C15.24 19.17 15.25 19.33 15.27 19.5L14.21 20.32C14.12 20.4 14.09 20.53 14.15 20.64L15.15 22.37C15.21 22.5 15.34 22.5 15.46 22.5L16.7 22C16.96 22.18 17.24 22.35 17.55 22.47L17.74 23.79C17.76 23.91 17.86 24 18 24H20C20.11 24 20.22 23.91 20.24 23.79L20.43 22.47C20.73 22.34 21 22.18 21.27 22L22.5 22.5C22.63 22.5 22.76 22.5 22.83 22.37L23.83 20.64C23.89 20.53 23.86 20.4 23.77 20.32L22.7 19.5C22.72 19.33 22.74 19.17 22.74 19C22.74 18.83 22.73 18.67 22.7 18.5L23.76 17.68C23.85 17.6 23.88 17.47 23.82 17.36L22.82 15.63C22.76 15.5 22.63 15.5 22.5 15.5L21.27 16C21 15.82 20.73 15.65 20.42 15.53L20.23 14.21C20.22 14.09 20.11 14 20 14H18M19 17.5C19.83 17.5 20.5 18.17 20.5 19C20.5 19.83 19.83 20.5 19 20.5C18.16 20.5 17.5 19.83 17.5 19C17.5 18.17 18.17 17.5 19 17.5Z\";\nexport var mdiFolderCogOutline = \"M4 4C2.89 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H12V18H4V8H20V12H22V8C22 6.89 21.1 6 20 6H12L10 4M18 14C17.87 14 17.76 14.09 17.74 14.21L17.55 15.53C17.25 15.66 16.96 15.82 16.7 16L15.46 15.5C15.35 15.5 15.22 15.5 15.15 15.63L14.15 17.36C14.09 17.47 14.11 17.6 14.21 17.68L15.27 18.5C15.25 18.67 15.24 18.83 15.24 19C15.24 19.17 15.25 19.33 15.27 19.5L14.21 20.32C14.12 20.4 14.09 20.53 14.15 20.64L15.15 22.37C15.21 22.5 15.34 22.5 15.46 22.5L16.7 22C16.96 22.18 17.24 22.35 17.55 22.47L17.74 23.79C17.76 23.91 17.86 24 18 24H20C20.11 24 20.22 23.91 20.24 23.79L20.43 22.47C20.73 22.34 21 22.18 21.27 22L22.5 22.5C22.63 22.5 22.76 22.5 22.83 22.37L23.83 20.64C23.89 20.53 23.86 20.4 23.77 20.32L22.7 19.5C22.72 19.33 22.74 19.17 22.74 19C22.74 18.83 22.73 18.67 22.7 18.5L23.76 17.68C23.85 17.6 23.88 17.47 23.82 17.36L22.82 15.63C22.76 15.5 22.63 15.5 22.5 15.5L21.27 16C21 15.82 20.73 15.65 20.42 15.53L20.23 14.21C20.22 14.09 20.11 14 20 14M19 17.5C19.83 17.5 20.5 18.17 20.5 19C20.5 19.83 19.83 20.5 19 20.5C18.16 20.5 17.5 19.83 17.5 19C17.5 18.17 18.17 17.5 19 17.5Z\";\nexport var mdiFolderDownload = \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H20M19.25,13H16V9H14V13H10.75L15,17.25\";\nexport var mdiFolderDownloadOutline = \"M20 18H4V8H20M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M14 9H16V13H19L15 17L11 13H14Z\";\nexport var mdiFolderEdit = \"M19.39 10.74L11 19.13V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.15C21.74 10.06 21.46 10 21.17 10C20.5 10 19.87 10.26 19.39 10.74M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiFolderEditOutline = \"M4 18H12.13L11 19.13V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.15C21.74 10.06 21.46 10 21.17 10C20.75 10 20.36 10.11 20 10.3V8H4V18M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiFolderEye = \"M9.3 20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H10L12 6H20C21.1 6 22 6.9 22 8V14.6C20.6 13.6 18.9 13 17 13C13.5 13 10.4 15.1 9.1 18.3L8.8 19L9.1 19.7C9.2 19.8 9.2 19.9 9.3 20M23 19C22.1 21.3 19.7 23 17 23S11.9 21.3 11 19C11.9 16.7 14.3 15 17 15S22.1 16.7 23 19M19.5 19C19.5 17.6 18.4 16.5 17 16.5S14.5 17.6 14.5 19 15.6 21.5 17 21.5 19.5 20.4 19.5 19M17 18C16.4 18 16 18.4 16 19S16.4 20 17 20 18 19.6 18 19 17.6 18 17 18\";\nexport var mdiFolderEyeOutline = \"M9.3 20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H10L12 6H20C21.1 6 22 6.9 22 8V14.6C21.4 14.2 20.7 13.8 20 13.5V8H4V18H9.3C9.3 18.1 9.2 18.2 9.2 18.3L8.8 19L9.1 19.7C9.2 19.8 9.2 19.9 9.3 20M23 19C22.1 21.3 19.7 23 17 23S11.9 21.3 11 19C11.9 16.7 14.3 15 17 15S22.1 16.7 23 19M19.5 19C19.5 17.6 18.4 16.5 17 16.5S14.5 17.6 14.5 19 15.6 21.5 17 21.5 19.5 20.4 19.5 19M17 18C16.4 18 16 18.4 16 19S16.4 20 17 20 18 19.6 18 19 17.6 18 17 18\";\nexport var mdiFolderFile = \"M15 8C12.79 8 11 9.79 11 12V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.17L20.41 8.59L19.83 8H15M23 14V21C23 22.11 22.11 23 21 23H15C13.9 23 13 22.11 13 21V12C13 10.9 13.9 10 15 10H19L23 14M21 14.83L18.17 12H18V15H21V14.83Z\";\nexport var mdiFolderFileOutline = \"M4 18H11V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.17L20.41 8.59L20 8.17V8H4V18M23 14V21C23 22.11 22.11 23 21 23H15C13.9 23 13 22.11 13 21V12C13 10.9 13.9 10 15 10H19L23 14M21 15H18V12H15V21H21V15Z\";\nexport var mdiFolderGoogleDrive = \"M13.75,9H16.14L19,14H16.05L13.5,9.46M18.3,17H12.75L14.15,14.5H19.27L19.53,14.96M11.5,17L10.4,14.86L13.24,9.9L14.74,12.56L12.25,17M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\";\nexport var mdiFolderHeart = \"M20 6H12L10 4H4C2.89 4 2 4.89 2 6V18C2 19.1 2.89 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M18.42 13.5L15 17L11.59 13.5C11.22 13.12 11 12.62 11 12.05C11 10.92 11.9 10 13 10C13.54 10 14.05 10.23 14.42 10.61L15 11.2L15.59 10.6C15.95 10.23 16.46 10 17 10C18.1 10 19 10.92 19 12.05C19 12.61 18.78 13.13 18.42 13.5Z\";\nexport var mdiFolderHeartOutline = \"M20 18H4V8H20M20 6H12L10 4H4C2.89 4 2 4.89 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.89 21.1 6 20 6M13 10C11.9 10 11 10.92 11 12.05C11 12.62 11.22 13.12 11.59 13.5L15 17L18.42 13.5C18.78 13.13 19 12.61 19 12.05C19 10.92 18.1 10 17 10C16.46 10 15.95 10.23 15.59 10.6L15 11.2L14.42 10.61C14.05 10.23 13.54 10 13 10Z\";\nexport var mdiFolderHidden = \"M9 4V8H6V4H9M4 16V13H2V16H4M2 12H4V9H2V12M18 8H22C22 6.89 21.1 6 20 6H18V8M22 13H20V16H22V13M20 9V12H22V9H20M9 20V18H6V20H9M5 18H4V17H2V18C2 19.11 2.9 20 4 20H5V18M20 17V18H18V20H20C21.11 20 22 19.11 22 18V17H20M4 8H5V4H4C2.89 4 2 4.89 2 6V8H4M17 18H14V20H17V18M13 18H10V20H13V18M17 6H14V8H17V6M10 8H13V6H12L10 4V8Z\";\nexport var mdiFolderHome = \"M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M17 13V17H15V14H13V17H11V13H9L14 9L19 13Z\";\nexport var mdiFolderHomeOutline = \"M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M20 18H4V8H20M13 17V14H15V17H17V13H19L14 9L9 13H11V17Z\";\nexport var mdiFolderImage = \"M5,17L9.5,11L13,15.5L15.5,12.5L19,17M20,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8A2,2 0 0,0 20,6Z\";\nexport var mdiFolderInformation = \"M21 11.1V8C21 6.9 20.1 6 19 6H11L9 4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H10.3C11.6 21.9 13.8 23 16 23C19.9 23 23 19.9 23 16C23 14.2 22.3 12.4 21 11.1M16 21C13.2 21 11 18.8 11 16S13.2 11 16 11 21 13.2 21 16 18.8 21 16 21M17 20H15V15H17V20M17 14H15V12H17V14Z\";\nexport var mdiFolderInformationOutline = \"M21 11.1V8C21 6.9 20.1 6 19 6H11L9 4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H10.2C11.4 21.8 13.6 23 16 23C19.9 23 23 19.9 23 16C23 14.1 22.2 12.4 21 11.1M9.3 18H3V8H19V9.7C18.1 9.2 17.1 9 16 9C12.1 9 9 12.1 9 16C9 16.7 9.1 17.4 9.3 18M16 21C13.2 21 11 18.8 11 16S13.2 11 16 11 21 13.2 21 16 18.8 21 16 21M17 14H15V12H17V14M17 20H15V15H17V20Z\";\nexport var mdiFolderKey = \"M4 4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6H12L10 4M11 10C12.3 10 13.4 10.8 13.8 12H20V14H18V16H16V14H13.8C13.4 15.2 12.3 16 11 16C9.3 16 8 14.7 8 13S9.3 10 11 10M11 12C10.4 12 10 12.4 10 13C10 13.6 10.4 14 11 14C11.6 14 12 13.6 12 13S11.6 12 11 12Z\";\nexport var mdiFolderKeyNetwork = \"M6 5C4.9 5 4 5.9 4 7V15C4 16.1 4.9 17 6 17H11V19H10C9.4 19 9 19.4 9 20H2V22H9C9 22.6 9.4 23 10 23H14C14.6 23 15 22.6 15 22H22V20H15C15 19.4 14.6 19 14 19H13V17H18C19.1 17 20 16.1 20 15V9C20 7.9 19.1 7 18 7H12L10 5H6M9 9C10.3 9 11.4 9.8 11.8 11H18V13H16V15H14V13H11.8C11.4 14.2 10.3 15 9 15C7.3 15 6 13.7 6 12S7.3 9 9 9M9 11C8.4 11 8 11.4 8 12C8 12.6 8.4 13 9 13C9.6 13 10 12.6 10 12S9.6 11 9 11Z\";\nexport var mdiFolderKeyNetworkOutline = \"M9 8C7.3 8 6 9.3 6 11S7.3 14 9 14C10.3 14 11.4 13.2 11.8 12H14V14H16V12H18V10H11.8C11.4 8.8 10.3 8 9 8M9 12C8.4 12 8 11.6 8 11S8.4 10 9 10 10 10.4 10 11 9.6 12 9 12M15 20C15 19.5 14.6 19 14 19H13V17H19C20.1 17 21 16.1 21 15V7C21 5.9 20.1 5 19 5H13L11 3H5C3.9 3 3 3.9 3 5V15C3 16.1 3.9 17 5 17H11V19H10C9.4 19 9 19.5 9 20H2V22H9C9 22.5 9.4 23 10 23H14C14.6 23 15 22.5 15 22H22V20H15M5 15V7H19V15H5Z\";\nexport var mdiFolderKeyOutline = \"M20 18H4V8H20M20 6H12L10 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M12.8 12C12.4 10.8 11.3 10 10 10C8.3 10 7 11.3 7 13S8.3 16 10 16C11.3 16 12.4 15.2 12.8 14H15V16H17V14H19V12H12.8M10 14C9.4 14 9 13.6 9 13C9 12.4 9.4 12 10 12S11 12.4 11 13 10.6 14 10 14Z\";\nexport var mdiFolderLock = \"M13 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V11.04C21.17 10.4 20.13 10 19 10C16.4 10 14.2 12.06 14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiFolderLockOpen = \"M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.04C21.17 9.4 20.13 9 19 9C16.4 9 14.2 11.06 14.2 13.5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiFolderLockOpenOutline = \"M4 18H13V20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V10.04C21.42 9.6 20.75 9.26 20 9.11V8H4V18M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiFolderLockOutline = \"M13 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V11.04C21.42 10.6 20.75 10.26 20 10.11V8H4V18H13V20M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiFolderMarker = \"M10 4L12 6H20C21.1 6 22 6.89 22 8V11.34C21.04 10.5 19.82 10 18.5 10C15.5 10 13 12.65 13 15.5C13 16.97 13.65 18.55 14.5 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10M18.5 12C20.4 12 22 13.6 22 15.5C22 18.1 18.5 22 18.5 22C18.5 22 15 18.1 15 15.5C15 13.6 16.6 12 18.5 12M18.5 16.8C19.2 16.8 19.8 16.2 19.7 15.6C19.7 15 19.1 14.4 18.5 14.4C17.9 14.4 17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8Z\";\nexport var mdiFolderMarkerOutline = \"M18.5 12C20.4 12 22 13.6 22 15.5C22 18.1 18.5 22 18.5 22C18.5 22 15 18.1 15 15.5C15 13.6 16.6 12 18.5 12M18.5 16.8C19.2 16.8 19.8 16.2 19.7 15.6C19.7 15 19.1 14.4 18.5 14.4C17.9 14.4 17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8M20 8H4V18H13.5C13.79 18.68 14.13 19.35 14.5 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V11.34C21.42 10.84 20.74 10.45 20 10.23V8Z\";\nexport var mdiFolderMinus = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M15 18V20H23V18H15Z\";\nexport var mdiFolderMinusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M15 18V20H23V18H15Z\";\nexport var mdiFolderMove = \"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\";\nexport var mdiFolderMoveOutline = \"M20 18H4V8H20V18M12 6L10 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H20C21.11 20 22 19.11 22 18V8C22 6.9 21.11 6 20 6H12M11 14V12H15V9L19 13L15 17V14H11Z\";\nexport var mdiFolderMultiple = \"M22,4H14L12,2H6A2,2 0 0,0 4,4V16A2,2 0 0,0 6,18H22A2,2 0 0,0 24,16V6A2,2 0 0,0 22,4M2,6H0V11H0V20A2,2 0 0,0 2,22H20V20H2V6Z\";\nexport var mdiFolderMultipleImage = \"M7,15L11.5,9L15,13.5L17.5,10.5L21,15M22,4H14L12,2H6A2,2 0 0,0 4,4V16A2,2 0 0,0 6,18H22A2,2 0 0,0 24,16V6A2,2 0 0,0 22,4M2,6H0V11H0V20A2,2 0 0,0 2,22H20V20H2V6Z\";\nexport var mdiFolderMultipleOutline = \"M22,4A2,2 0 0,1 24,6V16A2,2 0 0,1 22,18H6A2,2 0 0,1 4,16V4A2,2 0 0,1 6,2H12L14,4H22M2,6V20H20V22H2A2,2 0 0,1 0,20V11H0V6H2M6,6V16H22V6H6Z\";\nexport var mdiFolderMultiplePlus = \"M2 20V6H0V20C0 21.1 .9 22 2 22H20V20H2M22 4H14L12 2H6C5.6 2 5.2 2.1 4.9 2.3L4.3 2.9C4.1 3.2 4 3.6 4 4V16C4 16.4 4.1 16.8 4.3 17.1C4.4 17.2 4.5 17.3 4.5 17.4C5 17.8 5.5 18 6 18H22C23.1 18 24 17.1 24 16V6C24 4.9 23.1 4 22 4M22 12H19V15H17V12H14V10H17V7H19V10H22V12Z\";\nexport var mdiFolderMultiplePlusOutline = \"M22 4C23.1 4 24 4.9 24 6V16C24 17.1 23.1 18 22 18H6C4.9 18 4 17.1 4 16V4C4 2.9 4.9 2 6 2H12L14 4H22M2 6V20H20V22H2C.9 22 0 21.1 0 20V6H2M6 6V16H22V6H6M14 10H16V8H18V10H20V12H18V14H16V12H14V10Z\";\nexport var mdiFolderMusic = \"M22 8V11H16.5V16.11C14.66 16.53 13.26 18.09 13.04 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M18.5 13V18.21C18.19 18.07 17.86 18 17.5 18C16.12 18 15 19.12 15 20.5S16.12 23 17.5 23 20 21.88 20 20.5V15H22V13H18.5Z\";\nexport var mdiFolderMusicOutline = \"M22 8V11H20V8H4V18H13.78C13.38 18.59 13.13 19.26 13.04 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M18.5 13V18.21C18.19 18.07 17.86 18 17.5 18C16.12 18 15 19.12 15 20.5S16.12 23 17.5 23 20 21.88 20 20.5V15H22V13H18.5Z\";\nexport var mdiFolderNetwork = \"M3,15V5A2,2 0 0,1 5,3H11L13,5H19A2,2 0 0,1 21,7V15A2,2 0 0,1 19,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H5A2,2 0 0,1 3,15Z\";\nexport var mdiFolderNetworkOutline = \"M15 20C15 19.45 14.55 19 14 19H13V17H19C20.11 17 21 16.11 21 15V7C21 5.9 20.11 5 19 5H13L11 3H5C3.9 3 3 3.9 3 5V15C3 16.11 3.9 17 5 17H11V19H10C9.45 19 9 19.45 9 20H2V22H9C9 22.55 9.45 23 10 23H14C14.55 23 15 22.55 15 22H22V20H15M5 15V7H19V15H5Z\";\nexport var mdiFolderOff = \"M22.11 21.46L20.84 22.73L18.11 20H4C2.9 20 2 19.11 2 18V6C2 5.42 2.25 4.9 2.64 4.53L1.11 3L2.39 1.73L22.11 21.46M22 18V8C22 6.89 21.1 6 20 6H12L10 4H7.2L21.88 18.68C21.96 18.47 22 18.24 22 18Z\";\nexport var mdiFolderOffOutline = \"M2.39 1.73L1.11 3L2.64 4.53C2.25 4.9 2 5.42 2 6V18C2 19.11 2.9 20 4 20H18.11L20.84 22.73L22.11 21.46L2.39 1.73M4 18V8H6.11L16.11 18H4M11.2 8L7.2 4H10L12 6H20C21.1 6 22 6.89 22 8V18C22 18.24 21.96 18.47 21.88 18.68L20 16.8V8H11.2Z\";\nexport var mdiFolderOpen = \"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\";\nexport var mdiFolderOpenOutline = \"M6.1,10L4,18V8H21A2,2 0 0,0 19,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H19C19.9,20 20.7,19.4 20.9,18.5L23.2,10H6.1M19,18H6L7.6,12H20.6L19,18Z\";\nexport var mdiFolderOutline = \"M20,18H4V8H20M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\";\nexport var mdiFolderPlay = \"M22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M17 22L22 19L17 16V22Z\";\nexport var mdiFolderPlayOutline = \"M22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8M17 22L22 19L17 16V22Z\";\nexport var mdiFolderPlus = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiFolderPlusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiFolderPound = \"M15.25,13H17.25L16.75,15H14.75L15.25,13M22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H20A2,2 0 0,1 22,8M20,12H18.5L19,10H18L17.5,12H15.5L16,10H15L14.5,12H13V13H14.25L13.75,15H12V16H13.5L13,18H14L14.5,16H16.5L16,18H17L17.5,16H19V15H17.75L18.25,13H20V12Z\";\nexport var mdiFolderPoundOutline = \"M20,18H4V8H20M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6M19,12V11H17.5L18,9H17L16.5,11H14.5L15,9H14L13.5,11H12V12H13.25L12.75,14H11V15H12.5L12,17H13L13.5,15H15.5L15,17H16L16.5,15H18V14H16.75L17.25,12H19M15.75,14H13.75L14.25,12H16.25L15.75,14Z\";\nexport var mdiFolderQuestion = \"M20 6H12L10 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M16.8 18H15.3V16.5H16.8V18M16.8 15.8H15.3C15.3 13.4 17.5 13.5 17.5 12C17.5 11.2 16.8 10.5 16 10.5S14.5 11.2 14.5 12H13C13 10.3 14.3 9 16 9S19 10.3 19 12C19 13.9 16.8 14.1 16.8 15.8Z\";\nexport var mdiFolderQuestionOutline = \"M20 18H4V8H20M20 6H12L10 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M19 11.7C19 13.4 17 13.5 17 15H15.7C15.7 12.8 17.7 13 17.7 11.7C17.7 11 17.1 10.4 16.4 10.4C15.7 10.4 15.1 11 15.1 11.7H13.8C13.8 10.2 15 9 16.5 9S19 10.2 19 11.7M17 15.7V17H15.7V15.7H17Z\";\nexport var mdiFolderRefresh = \"M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5M10 4L12 6H20C21.1 6 22 6.89 22 8V13C21 12.38 19.79 12 18.5 12C14.91 12 12 14.91 12 18.5C12 19 12.06 19.5 12.17 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10Z\";\nexport var mdiFolderRefreshOutline = \"M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5M20 8H4V18H12L12 18.5C12 19 12.06 19.5 12.17 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13C21.39 12.63 20.72 12.34 20 12.17V8Z\";\nexport var mdiFolderRemove = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiFolderRemoveOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.39 13.46 20.72 13.22 20 13.09V8H4V18H13.09C13.04 18.33 13 18.66 13 19M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiFolderSearch = \"M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M9,4L11,6H19A2,2 0 0,1 21,8V11.81C19.83,10.69 18.25,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,17.79 10.37,19 11,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9Z\";\nexport var mdiFolderSearchOutline = \"M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M19,8H3V18H10.17C10.34,18.72 10.63,19.39 11,20H3C1.89,20 1,19.1 1,18V6C1,4.89 1.89,4 3,4H9L11,6H19A2,2 0 0,1 21,8V11.81C20.42,11.26 19.75,10.81 19,10.5V8Z\";\nexport var mdiFolderSettings = \"M4 4C2.89 4 2 4.89 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8C22 6.89 21.1 6 20 6H12L10 4H4M7 22V24H9V22H7M11 22V24H13V22H11M15 22V24H17V22H15Z\";\nexport var mdiFolderSettingsOutline = \"M4 4C2.89 4 2 4.89 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8C22 6.89 21.1 6 20 6H12L10 4H4M4 8H20V18H4V8M7 22V24H9V22H7M11 22V24H13V22H11M15 22V24H17V22H15\";\nexport var mdiFolderStar = \"M20,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8A2,2 0 0,0 20,6M17.94,17L15,15.28L12.06,17L12.84,13.67L10.25,11.43L13.66,11.14L15,8L16.34,11.14L19.75,11.43L17.16,13.67L17.94,17Z\";\nexport var mdiFolderStarMultiple = \"M2 6H0V20C0 21.11 .895 22 2 22H20V20H2V6M22 4H14L12 2H6C4.89 2 4 2.89 4 4V16C4 17.1 4.89 18 6 18H22C23.11 18 24 17.1 24 16V6C24 4.89 23.11 4 22 4M19.94 15L17 13.27L14.06 15L14.84 11.66L12.25 9.42L15.66 9.13L17 6L18.34 9.13L21.75 9.42L19.16 11.66L19.94 15Z\";\nexport var mdiFolderStarMultipleOutline = \"M2 6V20H20V22H2C.895 22 0 21.11 0 20V6H2M12.78 10.05L15.81 9.79L17 7L18.19 9.79L21.22 10.05L18.92 12.04L19.61 15L17 13.47L14.39 15L15.08 12.04L12.78 10.05M24 6V16C24 17.11 23.11 18 22 18H6C4.9 18 4 17.11 4 16V4C4 2.89 4.9 2 6 2H12L14 4H22C23.11 4 24 4.9 24 6M22 6H6V16H22V6Z\";\nexport var mdiFolderStarOutline = \"M10.78 12.05L13.81 11.79L15 9L16.19 11.79L19.22 12.05L16.92 14.04L17.61 17L15 15.47L12.39 17L13.08 14.04L10.78 12.05M22 8V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H10L12 6H20C21.11 6 22 6.9 22 8M20 8H4V18H20V8Z\";\nexport var mdiFolderSwap = \"M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M15 16V14H9V16L6 13L9 10V12H15V10L18 13Z\";\nexport var mdiFolderSwapOutline = \"M20 18H4V8H20M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M18 13L15 10V12H9V10L6 13L9 16V14H15V16Z\";\nexport var mdiFolderSync = \"M10,4L12,6H20A2,2 0 0,1 22,8V11.5C21.23,11.18 20.39,11 19.5,11A6.5,6.5 0 0,0 13,17.5C13,18.39 13.18,19.23 13.5,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10M19,12V13.5A4,4 0 0,1 23,17.5C23,18.32 22.75,19.08 22.33,19.71L21.24,18.62C21.41,18.28 21.5,17.9 21.5,17.5A2.5,2.5 0 0,0 19,15V16.5L16.75,14.25L19,12M19,23V21.5A4,4 0 0,1 15,17.5C15,16.68 15.25,15.92 15.67,15.29L16.76,16.38C16.59,16.72 16.5,17.1 16.5,17.5A2.5,2.5 0 0,0 19,20V18.5L21.25,20.75L19,23Z\";\nexport var mdiFolderSyncOutline = \"M10,4L12,6H20A2,2 0 0,1 22,8V11.5C21.38,11.24 20.7,11.07 20,11V8H4V18H13C13.07,18.7 13.24,19.38 13.5,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10M19,12V13.5A4,4 0 0,1 23,17.5C23,18.32 22.75,19.08 22.33,19.71L21.24,18.62C21.41,18.28 21.5,17.9 21.5,17.5A2.5,2.5 0 0,0 19,15V16.5L16.75,14.25L16.72,14.22C16.78,14.17 16.85,14.13 19,12M19,23V21.5A4,4 0 0,1 15,17.5C15,16.68 15.25,15.92 15.67,15.29L16.76,16.38C16.59,16.72 16.5,17.1 16.5,17.5A2.5,2.5 0 0,0 19,20V18.5L21.25,20.75L21.28,20.78C21.22,20.83 21.15,20.87 19,23Z\";\nexport var mdiFolderTable = \"M4 4C2.89 4 2 4.89 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8C22 6.89 21.1 6 20 6H12L10 4H4M12 9H15V11H12V9M16 9H19V11H16V9M12 12H15V14H12V12M16 12H19V14H16V12M12 15H15V17H12V15M16 15H19V17H16V15Z\";\nexport var mdiFolderTableOutline = \"M4 4C2.89 4 2 4.89 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8C22 6.89 21.1 6 20 6H12L10 4H4M4 8H20V18H4V8M12 9V11H15V9H12M16 9V11H19V9H16M12 12V14H15V12H12M16 12V14H19V12H16M12 15V17H15V15H12M16 15V17H19V15H16Z\";\nexport var mdiFolderText = \"M20,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8A2,2 0 0,0 20,6M15,16H6V14H15V16M18,12H6V10H18V12Z\";\nexport var mdiFolderTextOutline = \"M20,18H4V8H20M20,6H12L10,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8A2,2 0 0,0 20,6M15,16H6V14H15V16M18,12H6V10H18V12Z\";\nexport var mdiFolderUpload = \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\";\nexport var mdiFolderUploadOutline = \"M20 18H4V8H20M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M16 17H14V13H11L15 9L19 13H16Z\";\nexport var mdiFolderWrench = \"M13.03 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V17.5L20.96 16.44C20.97 16.3 21 16.15 21 16C21 13.24 18.76 11 16 11S11 13.24 11 16C11 17.64 11.8 19.09 13.03 20M22.87 21.19L18.76 17.08C19.17 16.04 18.94 14.82 18.08 13.97C17.18 13.06 15.83 12.88 14.74 13.38L16.68 15.32L15.33 16.68L13.34 14.73C12.8 15.82 13.05 17.17 13.93 18.08C14.79 18.94 16 19.16 17.05 18.76L21.16 22.86C21.34 23.05 21.61 23.05 21.79 22.86L22.83 21.83C23.05 21.65 23.05 21.33 22.87 21.19Z\";\nexport var mdiFolderWrenchOutline = \"M13.03 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V17.5L20.96 16.44C20.97 16.3 21 16.15 21 16C21 14.88 20.62 13.86 20 13.03V8H4V18H11.42C11.77 18.8 12.33 19.5 13.03 20M22.87 21.19L18.76 17.08C19.17 16.04 18.94 14.82 18.08 13.97C17.18 13.06 15.83 12.88 14.74 13.38L16.68 15.32L15.33 16.68L13.34 14.73C12.8 15.82 13.05 17.17 13.93 18.08C14.79 18.94 16 19.16 17.05 18.76L21.16 22.86C21.34 23.05 21.61 23.05 21.79 22.86L22.83 21.83C23.05 21.65 23.05 21.33 22.87 21.19Z\";\nexport var mdiFolderZip = \"M20 6H12L10 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M18 12H16V14H18V16H16V18H14V16H16V14H14V12H16V10H14V8H16V10H18V12Z\";\nexport var mdiFolderZipOutline = \"M20 6H12L10 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6M20 18H16V16H14V18H4V8H14V10H16V8H20V18M16 12V10H18V12H16M14 12H16V14H14V12M18 16H16V14H18V16Z\";\nexport var mdiFontAwesome = \"M19.76 2H4.24C3 2 2 3 2 4.24V19.76C2 21 3 22 4.24 22H19.76C21 22 22 21 22 19.76V4.24C22 3 21 2 19.76 2M17.73 14.69C17.73 14.88 17.57 14.96 17.38 15.04C16.64 15.36 15.84 15.65 15 15.65C13.78 15.65 13.22 14.91 11.78 14.91C10.74 14.91 9.65 15.28 8.77 15.68C8.71 15.71 8.66 15.71 8.61 15.73V17.76C8.61 17.84 8.61 17.92 8.58 17.97V18.03C8.47 18.4 8.13 18.67 7.73 18.67C7.22 18.67 6.82 18.26 6.82 17.76V8C6.47 7.73 6.24 7.31 6.24 6.83C6.24 6 6.9 5.33 7.73 5.33C8.56 5.33 9.23 6 9.23 6.83C9.23 7.31 9 7.73 8.64 8V8.83C8.72 8.8 8.8 8.77 8.88 8.72C9.71 8.37 10.7 8.08 11.63 8.08C12.64 8.08 13.44 8.35 14.35 8.69C14.54 8.77 14.72 8.8 14.93 8.8C15.95 8.8 17.07 8.08 17.34 8.08C17.55 8.08 17.74 8.24 17.74 8.43V14.69H17.73Z\";\nexport var mdiFood = \"M18.06 23H19.72C20.56 23 21.25 22.35 21.35 21.53L23 5.05H18V1H16.03V5.05H11.06L11.36 7.39C13.07 7.86 14.67 8.71 15.63 9.65C17.07 11.07 18.06 12.54 18.06 14.94V23M1 22V21H16.03V22C16.03 22.54 15.58 23 15 23H2C1.45 23 1 22.54 1 22M16.03 15C16.03 7 1 7 1 15H16.03M1 17H16V19H1V17Z\";\nexport var mdiFoodApple = \"M20,10C22,13 17,22 15,22C13,22 13,21 12,21C11,21 11,22 9,22C7,22 2,13 4,10C6,7 9,7 11,8V5C5.38,8.07 4.11,3.78 4.11,3.78C4.11,3.78 6.77,0.19 11,5V3H13V8C15,7 18,7 20,10Z\";\nexport var mdiFoodAppleOutline = \"M20,10C18.58,7.57 15.5,6.69 13,8V3H11V8C8.5,6.69 5.42,7.57 4,10C2,13 7,22 9,22C11,22 11,21 12,21C13,21 13,22 15,22C17,22 22,13 20,10M18.25,13.38C17.63,15.85 16.41,18.12 14.7,20C14.5,20 14.27,19.9 14.1,19.75C12.87,18.76 11.13,18.76 9.9,19.75C9.73,19.9 9.5,20 9.3,20C7.59,18.13 6.36,15.85 5.75,13.39C5.5,12.66 5.45,11.87 5.66,11.12C6.24,10.09 7.32,9.43 8.5,9.4C9.06,9.41 9.61,9.54 10.11,9.79L11,10.24H13L13.89,9.79C14.39,9.54 14.94,9.41 15.5,9.4C16.68,9.43 17.76,10.08 18.34,11.11C18.55,11.86 18.5,12.65 18.25,13.38M11,5C5.38,8.07 4.11,3.78 4.11,3.78C4.11,3.78 6.77,0.19 11,5Z\";\nexport var mdiFoodCroissant = \"M22,19L19,17L22,15V19M15,15L19,9L22,13L18,16L15,15M5,17L2,19V15L5,17M9,15L6,16L2,13L5,9L9,15M14,6L18,8L13,15H11L6,8L10,6H14Z\";\nexport var mdiFoodDrumstick = \"M20.16 12.73C22.93 9.96 22.57 5.26 19.09 3C17.08 1.67 14.39 1.66 12.36 2.97C10.6 4.1 9.63 5.86 9.46 7.68C9.33 9 8.83 10.23 7.91 11.15L7.88 11.18C6.72 12.34 6.72 14.11 7.81 15.19L8.8 16.18C9.89 17.27 11.66 17.27 12.75 16.18C13.72 15.21 15 14.68 16.39 14.53C17.76 14.38 19.1 13.78 20.16 12.73M6.26 19.86C6.53 20.42 6.44 21.1 5.97 21.56C5.39 22.15 4.44 22.15 3.85 21.56C3.58 21.29 3.44 20.94 3.42 20.58C3.06 20.56 2.71 20.42 2.44 20.15C1.85 19.56 1.85 18.61 2.44 18.03C2.9 17.57 3.59 17.47 4.14 17.74L6.62 15.31C6.76 15.5 6.92 15.72 7.1 15.9L8.09 16.89C8.3 17.09 8.5 17.26 8.76 17.41L6.26 19.86Z\";\nexport var mdiFoodDrumstickOff = \"M20.8 22.7L13.6 15.5C13.3 15.7 13 15.9 12.7 16.2C11.6 17.3 9.8 17.3 8.7 16.2L7.7 15.2C6.6 14.1 6.6 12.3 7.8 11.2C8 11 8.2 10.7 8.4 10.4L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M8.1 16.9L7.1 15.9C6.9 15.7 6.8 15.5 6.6 15.3L4.1 17.7C3.5 17.4 2.9 17.5 2.4 18C1.8 18.6 1.8 19.5 2.4 20.1C2.7 20.4 3 20.5 3.4 20.5C3.4 20.9 3.6 21.2 3.8 21.5C4.4 22.1 5.3 22.1 5.9 21.5C6.4 21 6.5 20.4 6.2 19.8L8.7 17.4C8.5 17.3 8.3 17.1 8.1 16.9M20.2 12.7C23 9.9 22.6 5.2 19.1 3C17.1 1.7 14.4 1.7 12.4 3C11 3.9 10.1 5.1 9.7 6.5L17.5 14.3C18.5 14 19.4 13.5 20.2 12.7Z\";\nexport var mdiFoodDrumstickOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L8.5 10.4C8.3 10.7 8.1 10.9 7.9 11.2C6.7 12.4 6.7 14.1 7.8 15.2L8.8 16.2C9.3 16.7 10.1 17 10.8 17C11.5 17 12.2 16.7 12.8 16.2C13.1 15.9 13.4 15.7 13.7 15.5L20.9 22.7L22.1 21.5M11.3 14.8C11.1 15 10.9 15 10.8 15S10.4 15 10.2 14.8L9.2 13.8C9 13.6 9 13.4 9 13.2C9 13 9.1 12.7 9.3 12.5C9.5 12.3 9.7 12 9.9 11.8L12.1 14C11.9 14.3 11.6 14.5 11.3 14.8M11.4 8.2L9.7 6.5C10.1 5.1 11 3.9 12.4 3C13.4 2.4 14.6 2 15.7 2C16.9 2 18.1 2.3 19.1 3C22.6 5.3 22.9 10 20.2 12.7C19.4 13.5 18.5 14 17.5 14.3L15.8 12.6C15.9 12.6 16 12.5 16.2 12.5C17.2 12.4 18.1 12 18.8 11.3C19.7 10.4 20.2 9.1 20 7.8C19.9 6.5 19.2 5.4 18 4.6C17.3 4.2 16.5 4 15.7 4C14.9 4 14.1 4.2 13.4 4.7C12.2 5.4 11.5 6.6 11.4 7.9V8.2M8.8 17.4L6.3 19.8C6.6 20.4 6.5 21 6 21.5C5.4 22.1 4.5 22.1 3.9 21.5C3.6 21.2 3.5 20.9 3.5 20.5C3.1 20.5 2.8 20.3 2.5 20.1C1.9 19.5 1.9 18.6 2.5 18C3 17.5 3.6 17.4 4.2 17.7L6.7 15.3C6.8 15.5 7 15.7 7.2 15.9L8.2 16.9C8.3 17.1 8.5 17.3 8.8 17.4\";\nexport var mdiFoodDrumstickOutline = \"M15.71 4C16.54 4 17.33 4.22 18 4.66C19.14 5.4 19.84 6.53 20 7.84C20.11 9.13 19.66 10.4 18.75 11.31C18.05 12 17.16 12.44 16.18 12.54C14.27 12.74 12.59 13.5 11.34 14.77C11.13 14.97 10.9 15 10.77 15C10.65 15 10.42 14.97 10.21 14.77L9.22 13.78C9.04 13.6 9 13.39 9 13.25C9 13 9.11 12.78 9.32 12.57C10.53 11.35 11.27 9.73 11.45 7.87C11.58 6.54 12.29 5.4 13.45 4.65C14.11 4.22 14.89 4 15.71 4M15.71 2C14.54 2 13.37 2.32 12.36 2.97C10.6 4.1 9.63 5.86 9.46 7.68C9.33 9 8.83 10.23 7.91 11.15L7.88 11.18C6.72 12.34 6.72 14.11 7.81 15.19L8.8 16.18C9.35 16.73 10.06 17 10.77 17S12.2 16.73 12.75 16.18C13.72 15.21 15 14.68 16.39 14.53C17.76 14.38 19.1 13.78 20.16 12.73C22.93 9.96 22.57 5.26 19.09 3C18.08 2.33 16.9 2 15.71 2M6.26 19.86C6.53 20.42 6.44 21.1 5.97 21.56C5.39 22.15 4.44 22.15 3.85 21.56C3.58 21.29 3.44 20.94 3.42 20.58C3.06 20.56 2.71 20.42 2.44 20.15C1.85 19.56 1.85 18.61 2.44 18.03C2.9 17.57 3.59 17.47 4.14 17.74L6.62 15.31C6.76 15.5 6.92 15.72 7.1 15.9L8.09 16.89C8.3 17.09 8.5 17.26 8.76 17.41L6.26 19.86Z\";\nexport var mdiFoodForkDrink = \"M3,3A1,1 0 0,0 2,4V8L2,9.5C2,11.19 3.03,12.63 4.5,13.22V19.5A1.5,1.5 0 0,0 6,21A1.5,1.5 0 0,0 7.5,19.5V13.22C8.97,12.63 10,11.19 10,9.5V8L10,4A1,1 0 0,0 9,3A1,1 0 0,0 8,4V8A0.5,0.5 0 0,1 7.5,8.5A0.5,0.5 0 0,1 7,8V4A1,1 0 0,0 6,3A1,1 0 0,0 5,4V8A0.5,0.5 0 0,1 4.5,8.5A0.5,0.5 0 0,1 4,8V4A1,1 0 0,0 3,3M19.88,3C19.75,3 19.62,3.09 19.5,3.16L16,5.25V9H12V11H13L14,21H20L21,11H22V9H18V6.34L20.5,4.84C21,4.56 21.13,4 20.84,3.5C20.63,3.14 20.26,2.95 19.88,3Z\";\nexport var mdiFoodHalal = \"M7 5V15C7 16.11 6.11 17 5 17H4C3.45 17 3 16.55 3 16V13H1V16C1 17.66 2.34 19 4 19H5C7.21 19 9 17.21 9 15V5M23 13.38L21.77 12.15C21.03 11.41 20.04 11 19 11H17V13H19C19.5 13 20 13.2 20.35 13.56L20.7 13.91L19.5 14.6C19.04 14.86 18.53 15 18 15H17C16.44 15 16 14.56 16 14V6H14V9.81L13.38 9.12C12.7 8.37 11.6 8 10.59 8H10V10H10.59C11.23 10 11.84 10.25 12.29 10.71L14 12.41V14C14 15.12 13.12 16 12 16H10V18H12C13.37 18 14.5 17.3 15.17 16.24C15.63 16.71 16.25 17 17 17H18C18.88 17 19.74 16.77 20.5 16.33L23 14.89Z\";\nexport var mdiFoodHotDog = \"M21 5.77C20.85 5.65 20.72 5.55 20.59 5.45L20.62 5.41C21.4 4.63 21.4 3.37 20.62 2.59C19.84 1.81 18.58 1.81 17.79 2.59L17.05 3.33C15.68 2.3 13.74 2.4 12.5 3.65L3.65 12.5C2.4 13.74 2.3 15.68 3.33 17.05L2.59 17.79C1.8 18.58 1.8 19.84 2.59 20.62C3.37 21.4 4.63 21.4 5.41 20.62L5.45 20.59C5.55 20.72 5.65 20.85 5.77 21C7.13 22.34 9.35 22.34 10.72 21L20.97 10.72C22.34 9.35 22.34 7.14 21 5.77M4.77 15.61C4.5 15.05 4.6 14.36 5.06 13.9L13.9 5.06C14.36 4.6 15.05 4.5 15.61 4.77L4.77 15.61M19.56 9.3L9.3 19.56C8.72 20.15 7.77 20.15 7.18 19.56C6.6 19 6.6 18 7.18 17.44L17.44 7.18C18 6.6 19 6.6 19.56 7.18C20.15 7.77 20.15 8.72 19.56 9.3Z\";\nexport var mdiFoodKosher = \"M1 7V9H3C3.57 9 4 9.43 4 10V17H6V10C6 8.36 4.64 7 3 7H1M7 7V14C7 15.65 8.36 17 10 17H14C15.65 17 17 15.65 17 14V7H15V14C15 14.57 14.57 15 14 15H10C9.43 15 9 14.57 9 14V13H10C11.65 13 13 11.65 13 10V7H11V10C11 10.57 10.57 11 10 11H9V7H7M18 7V9H20C20.57 9 21 9.43 21 10V14C21 14.57 20.57 15 20 15H18V17H20C21.65 17 23 15.65 23 14V10C23 8.36 21.65 7 20 7H18Z\";\nexport var mdiFoodOff = \"M11.35 8.5L11 5H16V1H18V5H23L21.62 18.79L11.35 8.5M1 21V22C1 22.55 1.45 23 2 23H15C15.55 23 16 22.55 16 22V21H1M21.9 21.9L2.1 2.1L.69 3.5L6.39 9.21C3.28 9.87 1 12 1 15H12.17L14.17 17H1V19H16V18.83L20.5 23.32L21.9 21.9Z\";\nexport var mdiFoodOffOutline = \"M1 21H16V22C16 22.54 15.56 23 15 23H2C1.45 23 1 22.54 1 22V21M20.5 23.31L16 18.83V19H1V17H14.17L12.17 15H1C1 11.76 3.46 9.83 6.38 9.21L.68 3.5L2.1 2.1L13 13L15 15L21.9 21.9L20.5 23.31M10.17 13L8.17 11C6.75 11.06 4.65 11.56 3.62 13H10.17M23 5H18V1H16V5H11L11.23 7H20.79L19.79 16.97L21.62 18.8L23 5Z\";\nexport var mdiFoodOutline = \"M1 22C1 22.54 1.45 23 2 23H15C15.56 23 16 22.54 16 22V21H1V22M8.5 9C4.75 9 1 11 1 15H16C16 11 12.25 9 8.5 9M3.62 13C4.73 11.45 7.09 11 8.5 11S12.27 11.45 13.38 13H3.62M1 17H16V19H1V17M18 5V1H16V5H11L11.23 7H20.79L19.39 21H18V23H19.72C20.56 23 21.25 22.35 21.35 21.53L23 5H18Z\";\nexport var mdiFoodSteak = \"M11.9 2C8 2 4.9 5.4 5 9.3C5.1 11.9 6.6 14.1 8.7 15.2C10.1 15.9 11 17.3 11 18.8V19C11 20.7 12.3 22 14 22C18 22 19 17 19 9C19 9 19 2 11.9 2M14 20C13.4 20 13 19.6 13 19V18.8C13 16.6 11.7 14.5 9.7 13.4C8.1 12.6 7.1 11 7 9.2C7 7.9 7.5 6.5 8.4 5.5C9.3 4.5 10.6 4 11.8 4C16.7 4 17 8.2 17 9C17 18.9 15.3 20 14 20M15.8 7.6L8.3 10.3C8.1 10 8 9.6 8 9.1C8 8.4 8.2 7.8 8.5 7.1L13.7 5.2C14.9 5.8 15.5 6.7 15.8 7.6M12.9 15.1L15.7 14.1C15.6 15.6 15.3 16.7 15.1 17.4L13.8 17.9C13.8 16.9 13.5 16 12.9 15.1M16 9.2C16 10.4 16 11.5 15.9 12.4L11.9 13.9C11.4 13.4 10.8 12.9 10.1 12.6C9.7 12.4 9.3 12.1 9 11.8L16 9.2Z\";\nexport var mdiFoodSteakOff = \"M2.39 1.73L1.11 3L5.27 7.16C5.08 7.83 5 8.53 5 9.26C5.1 11.83 6.59 14.05 8.74 15.19C10.1 15.9 11 17.25 11 18.79V19C11 20.66 12.34 22 14 22C15.68 22 16.83 21.11 17.6 19.5L20.84 22.73L22.11 21.46L2.39 1.73M14 20C13.45 20 13 19.55 13 19V18.79C13 16.56 11.72 14.5 9.67 13.42C8.09 12.58 7.07 10.96 7 9.18C7 9.09 7 9 7 8.9L8.16 10.05C8.19 10.15 8.21 10.25 8.24 10.35L8.4 10.29L9.62 11.5L9.08 11.71C9.38 12.04 9.73 12.32 10.14 12.53C10.81 12.89 11.4 13.34 11.91 13.85L11.95 13.84L13.17 15.06L12.95 15.14C13.46 15.96 13.8 16.89 13.93 17.85L15.2 17.39C15.22 17.32 15.25 17.24 15.27 17.16L16.07 17.96C15.47 19.68 14.68 20 14 20M15.79 7.6L12.14 8.94L9.88 6.68L13.69 5.3C14.94 5.77 15.53 6.72 15.79 7.6M8.59 5.39L7.17 3.97C8.41 2.77 10.07 2 11.88 2H11.88C19 2 19 9 19 9C19 11.46 18.9 13.63 18.66 15.46L16.84 13.64C16.94 12.36 17 10.83 17 9C17 8.18 16.69 4 11.88 4H11.88C10.67 4 9.5 4.5 8.59 5.39M15.68 12.5L13.36 10.15L16 9.19C16 10.41 15.97 11.46 15.92 12.4L15.68 12.5Z\";\nexport var mdiFoodTakeoutBox = \"M5.26 11H18.74L18.07 20H5.93L5.26 11M9 4H14.97L19 7.38L20.59 5.79L22 7.21L19.21 10H4.79L2 7.21L3.41 5.8L5 7.38L9 4Z\";\nexport var mdiFoodTakeoutBoxOutline = \"M7.79 18L7.28 11H16.74L16.23 18H7.79M9.83 5H14.16L16.96 7.73L16.87 9H7.12L7.03 7.73L9.83 5M22 7.46L20.59 6.05L19 7.63L19.03 7.07L15 3H9L4.97 7.07L5 7.57L3.41 6L2 7.44L5.23 10.55L5.93 20H18.07L18.77 10.56L22 7.46Z\";\nexport var mdiFoodTurkey = \"M5.44 7.96L5.96 7.43C6.54 6.85 7.5 6.85 8.1 7.47L8.12 7.5C8.61 8 9.26 8.24 9.97 8.31C10.94 8.4 11.88 8.92 12.5 9.86C13.18 10.94 13.17 12.38 12.46 13.45C11.26 15.3 8.75 15.5 7.28 14C6.72 13.45 6.4 12.74 6.32 12C6.24 11.27 5.95 10.58 5.44 10.07C4.86 9.5 4.86 8.54 5.44 7.96M9.64 16C8.47 16 7.38 15.55 6.57 14.72C5.87 14 5.43 13.1 5.32 12.12C5.29 11.82 5.2 11.43 4.96 11.07C4.36 11.9 4 12.9 4 14C4 15.64 4.8 17.09 6.03 18H19V17C19 13.4 16.61 10.35 13.34 9.35C14.23 10.75 14.21 12.62 13.3 14C12.5 15.25 11.12 16 9.64 16M14.78 7.56H16.05C16.92 7.56 17.68 8.17 17.68 9.26V10H18.93V9C18.93 7.5 17.6 6.36 16.05 6.36H14.78C13.95 6.36 13.24 5.54 13.24 4.7S13.95 3.24 14.78 3.24V2C13.24 2 12 3.24 12 4.78S13.24 7.56 14.78 7.56M4.5 7.55C4.56 7.45 4.64 7.35 4.73 7.25L5.25 6.73C5.34 6.64 5.44 6.57 5.54 6.5L4.13 5.07C4.27 4.8 4.22 4.45 4 4.22C3.7 3.93 3.22 3.93 2.93 4.22C2.79 4.36 2.72 4.53 2.71 4.71C2.53 4.72 2.36 4.79 2.22 4.93C1.93 5.22 1.93 5.7 2.22 6C2.45 6.22 2.79 6.27 3.07 6.13L4.5 7.55M18.39 4.39C18.9 3.88 19.22 3.19 19.22 2.42H17.97C17.97 3.25 17.27 3.95 16.44 3.95V5.19C18.3 5.19 19.76 6.71 19.76 8.57V11H21V8.57C21 6.72 19.94 5.13 18.39 4.39M5 21H19C20.11 21 21 20.11 21 19H3C3 20.11 3.9 21 5 21Z\";\nexport var mdiFoodVariant = \"M22,18A4,4 0 0,1 18,22H15A4,4 0 0,1 11,18V16H17.79L20.55,11.23L22.11,12.13L19.87,16H22V18M9,22H2C2,19 2,16 2.33,12.83C2.6,10.3 3.08,7.66 3.6,5H3V3H4L7,3H8V5H7.4C7.92,7.66 8.4,10.3 8.67,12.83C9,16 9,19 9,22Z\";\nexport var mdiFoodVariantOff = \"M2.28 3L1 4.27L3.31 6.58C2.91 8.7 2.55 10.8 2.33 12.83C2 16 2 19 2 22H9C9 19 9 16 8.67 12.83C8.63 12.5 8.58 12.15 8.54 11.81L12.73 16H11V18C11 20.21 12.79 22 15 22H18C18.23 22 18.45 22 18.67 21.94L19.73 23L21 21.72M4.82 3L7.53 5.71C7.5 5.47 7.45 5.24 7.4 5H8V3H7M20.55 11.23L17.8 16L21.59 19.76C21.86 19.21 22 18.61 22 18V16H19.87L22.11 12.13Z\";\nexport var mdiFootPrint = \"M16 2A2 2 0 1 1 14 4A2 2 0 0 1 16 2M12.04 3A1.5 1.5 0 1 1 10.54 4.5A1.5 1.5 0 0 1 12.04 3M9.09 4.5A1 1 0 1 1 8.09 5.5A1 1 0 0 1 9.09 4.5M7.04 6A1 1 0 1 1 6.04 7A1 1 0 0 1 7.04 6M14.53 12A2.5 2.5 0 0 0 17 9.24A2.6 2.6 0 0 0 14.39 7H11.91A6 6 0 0 0 6.12 11.4A2 2 0 0 0 6.23 12.8A6.8 6.8 0 0 1 6.91 15.76A6.89 6.89 0 0 1 6.22 18.55A1.92 1.92 0 0 0 6.3 20.31A3.62 3.62 0 0 0 10.19 21.91A3.5 3.5 0 0 0 12.36 16.63A2.82 2.82 0 0 1 11.91 15S11.68 12 14.53 12Z\";\nexport var mdiFootball = \"M8.39 21L3 15.61C3 16.7 3.04 17.71 3.2 18.63C3.35 19.55 3.5 20.1 3.71 20.29C3.9 20.5 4.44 20.65 5.35 20.81S7.27 21 8.39 21M15.5 9.89L9.89 15.5L8.5 14.11L14.11 8.5L15.5 9.89M3.29 13.08L10.92 20.71C13.7 20.21 15.9 19.15 17.53 17.53C19.15 15.9 20.21 13.7 20.71 10.92L13.08 3.29C10.3 3.79 8.1 4.85 6.47 6.47S3.79 10.3 3.29 13.08M15.61 3L21 8.39C21 7.3 20.96 6.29 20.81 5.37C20.65 4.45 20.5 3.9 20.29 3.71C20.1 3.5 19.56 3.35 18.65 3.2S16.73 3 15.61 3Z\";\nexport var mdiFootballAustralian = \"M7.5,7.5C9.17,5.87 11.29,4.69 13.37,4.18C18,3 21,6 19.82,10.63C19.31,12.71 18.13,14.83 16.5,16.5C14.83,18.13 12.71,19.31 10.63,19.82C6,21 3,18 4.18,13.37C4.69,11.29 5.87,9.17 7.5,7.5M10.62,11.26L10.26,11.62L12.38,13.74L12.74,13.38L10.62,11.26M11.62,10.26L11.26,10.62L13.38,12.74L13.74,12.38L11.62,10.26M9.62,12.26L9.26,12.62L11.38,14.74L11.74,14.38L9.62,12.26M12.63,9.28L12.28,9.63L14.4,11.75L14.75,11.4L12.63,9.28M8.63,13.28L8.28,13.63L10.4,15.75L10.75,15.4L8.63,13.28M13.63,8.28L13.28,8.63L15.4,10.75L15.75,10.4L13.63,8.28Z\";\nexport var mdiFootballHelmet = \"M13.5,12A1.5,1.5 0 0,0 12,13.5A1.5,1.5 0 0,0 13.5,15A1.5,1.5 0 0,0 15,13.5A1.5,1.5 0 0,0 13.5,12M13.5,3C18.19,3 22,6.58 22,11C22,12.62 22,14 21.09,16C17,16 16,20 12.5,20C10.32,20 9.27,18.28 9.05,16H9L8.24,16L6.96,20.3C6.81,20.79 6.33,21.08 5.84,21H3A1,1 0 0,1 2,20A1,1 0 0,1 3,19V16A1,1 0 0,1 2,15A1,1 0 0,1 3,14H6.75L7.23,12.39C6.72,12.14 6.13,12 5.5,12H5.07L5,11C5,6.58 8.81,3 13.5,3M5,16V19H5.26L6.15,16H5Z\";\nexport var mdiForest = \"M16 12L9 2L2 12H3.86L0 18H7V22H11V18H18L14.14 12H16M20.14 12H22L15 2L12.61 5.41L17.92 13H15.97L19.19 18H24L20.14 12M13 19H17V22H13V19Z\";\nexport var mdiForestOutline = \"M19.19 18H24L20.14 12H22L15 2L12.61 5.41L17.92 13H15.97L19.19 18M16 12L9 2L2 12H3.86L0 18H7V22H11V18H18L14.14 12H16M12.16 10H10.5L14.34 16H3.67L7.53 10H5.84L9 5.5L12.16 10M13 19V22H17V19H13Z\";\nexport var mdiForklift = \"M6,4V11H4C2.89,11 2,11.89 2,13V17A3,3 0 0,0 5,20A3,3 0 0,0 8,17H10A3,3 0 0,0 13,20A3,3 0 0,0 16,17V13L12,4H6M17,5V19H22V17.5H18.5V5H17M7.5,5.5H11.2L14.5,13H7.5V5.5M5,15.5A1.5,1.5 0 0,1 6.5,17A1.5,1.5 0 0,1 5,18.5A1.5,1.5 0 0,1 3.5,17A1.5,1.5 0 0,1 5,15.5M13,15.5A1.5,1.5 0 0,1 14.5,17A1.5,1.5 0 0,1 13,18.5A1.5,1.5 0 0,1 11.5,17A1.5,1.5 0 0,1 13,15.5Z\";\nexport var mdiFormDropdown = \"M17 5H20L18.5 7L17 5M3 2H21C22.11 2 23 2.9 23 4V8C23 9.11 22.11 10 21 10H16V20C16 21.11 15.11 22 14 22H3C1.9 22 1 21.11 1 20V4C1 2.9 1.9 2 3 2M3 4V8H14V4H3M21 8V4H16V8H21M3 20H14V10H3V20M5 12H12V14H5V12M5 16H12V18H5V16Z\";\nexport var mdiFormSelect = \"M15 5H18L16.5 7L15 5M5 2H19C20.11 2 21 2.9 21 4V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V4C3 2.9 3.9 2 5 2M5 4V8H19V4H5M5 20H19V10H5V20M7 12H17V14H7V12M7 16H17V18H7V16Z\";\nexport var mdiFormTextarea = \"M13 9H4V23H2V7H13M23 9V7H17V5A1 1 0 0 1 18 4H20V2H17.5C17 2 16 2.45 16 3C16 2.45 15.05 2 14.5 2H12V4H14A1 1 0 0 1 15 5V19A1 1 0 0 1 14 20H12V22H14.5C15.05 22 16 21.55 16 21C16 21.55 16.95 22 17.5 22H20V20H18A1 1 0 0 1 17 19V9Z\";\nexport var mdiFormTextbox = \"M17,7H22V17H17V19A1,1 0 0,0 18,20H20V22H17.5C16.95,22 16,21.55 16,21C16,21.55 15.05,22 14.5,22H12V20H14A1,1 0 0,0 15,19V5A1,1 0 0,0 14,4H12V2H14.5C15.05,2 16,2.45 16,3C16,2.45 16.95,2 17.5,2H20V4H18A1,1 0 0,0 17,5V7M2,7H13V9H4V15H13V17H2V7M20,15V9H17V15H20Z\";\nexport var mdiFormTextboxLock = \"M2 7H6V9H4V15H6V17H2V7M10 7H22V12C21.42 11.56 20.74 11.25 20 11.1V9H10V15H14.25C13.56 15 13 15.56 13 16.25V17H10V19C10 19.55 10.45 20 11 20H13V22H10.5C9.95 22 9 21.55 9 21C9 21.55 8.05 22 7.5 22H5V20H7C7.55 20 8 19.55 8 19V5C8 4.45 7.55 4 7 4H5V2H7.5C8.05 2 9 2.45 9 3C9 2.45 9.95 2 10.5 2H13V4H11C10.45 4 10 4.45 10 5V7M21.8 17C22.4 17 23 17.6 23 18.3V21.8C23 22.4 22.4 23 21.7 23H16.2C15.6 23 15 22.4 15 21.7V18.2C15 17.6 15.6 17 16.2 17V15.5C16.2 14.1 17.6 13 19 13C20.4 13 21.8 14.1 21.8 15.5V17M20.5 17V15.5C20.5 14.7 19.8 14.2 19 14.2C18.2 14.2 17.5 14.7 17.5 15.5V17H20.5Z\";\nexport var mdiFormTextboxPassword = \"M17,7H22V17H17V19A1,1 0 0,0 18,20H20V22H17.5C16.95,22 16,21.55 16,21C16,21.55 15.05,22 14.5,22H12V20H14A1,1 0 0,0 15,19V5A1,1 0 0,0 14,4H12V2H14.5C15.05,2 16,2.45 16,3C16,2.45 16.95,2 17.5,2H20V4H18A1,1 0 0,0 17,5V7M2,7H13V9H4V15H13V17H2V7M20,15V9H17V15H20M8.5,12A1.5,1.5 0 0,0 7,10.5A1.5,1.5 0 0,0 5.5,12A1.5,1.5 0 0,0 7,13.5A1.5,1.5 0 0,0 8.5,12M13,10.89C12.39,10.33 11.44,10.38 10.88,11C10.32,11.6 10.37,12.55 11,13.11C11.55,13.63 12.43,13.63 13,13.11V10.89Z\";\nexport var mdiFormatAlignBottom = \"M13,9L15.5,6.5L16.92,7.92L12,12.84L7.08,7.92L8.5,6.5L11,9V3H13V9M3,15H21V17H3V15M3,19H13V21H3V19Z\";\nexport var mdiFormatAlignCenter = \"M3,3H21V5H3V3M7,7H17V9H7V7M3,11H21V13H3V11M7,15H17V17H7V15M3,19H21V21H3V19Z\";\nexport var mdiFormatAlignJustify = \"M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z\";\nexport var mdiFormatAlignLeft = \"M3,3H21V5H3V3M3,7H15V9H3V7M3,11H21V13H3V11M3,15H15V17H3V15M3,19H21V21H3V19Z\";\nexport var mdiFormatAlignMiddle = \"M13,6L15,4L16.42,5.42L12,9.84L7.58,5.42L9,4L11,6V2H13V6M3,11H21V13H3V11M13,18V22H11V18L9,20L7.58,18.58L12,14.16L16.42,18.58L15,20L13,18Z\";\nexport var mdiFormatAlignRight = \"M3,3H21V5H3V3M9,7H21V9H9V7M3,11H21V13H3V11M9,15H21V17H9V15M3,19H21V21H3V19Z\";\nexport var mdiFormatAlignTop = \"M13,15L15.5,17.5L16.92,16.08L12,11.16L7.08,16.08L8.5,17.5L11,15V21H13V15M3,3H21V5H3V3M3,7H13V9H3V7Z\";\nexport var mdiFormatAnnotationMinus = \"M10.5,7H8.5L3,21H5.2L6.3,18H12.5L13.6,21H16L10.5,7M7.1,16L9.5,9.7L11.9,16H7.1M22,7H14V5H22V7Z\";\nexport var mdiFormatAnnotationPlus = \"M8.5,7H10.5L16,21H13.6L12.5,18H6.3L5.2,21H3L8.5,7M7.1,16H11.9L9.5,9.7L7.1,16M22,5V7H19V10H17V7H14V5H17V2H19V5H22Z\";\nexport var mdiFormatBold = \"M13.5,15.5H10V12.5H13.5A1.5,1.5 0 0,1 15,14A1.5,1.5 0 0,1 13.5,15.5M10,6.5H13A1.5,1.5 0 0,1 14.5,8A1.5,1.5 0 0,1 13,9.5H10M15.6,10.79C16.57,10.11 17.25,9 17.25,8C17.25,5.74 15.5,4 13.25,4H7V18H14.04C16.14,18 17.75,16.3 17.75,14.21C17.75,12.69 16.89,11.39 15.6,10.79Z\";\nexport var mdiFormatClear = \"M6,5V5.18L8.82,8H11.22L10.5,9.68L12.6,11.78L14.21,8H20V5H6M3.27,5L2,6.27L8.97,13.24L6.5,19H9.5L11.07,15.34L16.73,21L18,19.73L3.55,5.27L3.27,5Z\";\nexport var mdiFormatColorFill = \"M19,11.5C19,11.5 17,13.67 17,15A2,2 0 0,0 19,17A2,2 0 0,0 21,15C21,13.67 19,11.5 19,11.5M5.21,10L10,5.21L14.79,10M16.56,8.94L7.62,0L6.21,1.41L8.59,3.79L3.44,8.94C2.85,9.5 2.85,10.47 3.44,11.06L8.94,16.56C9.23,16.85 9.62,17 10,17C10.38,17 10.77,16.85 11.06,16.56L16.56,11.06C17.15,10.47 17.15,9.5 16.56,8.94Z\";\nexport var mdiFormatColorHighlight = \"M4,17L6.75,14.25L6.72,14.23C6.14,13.64 6.14,12.69 6.72,12.11L11.46,7.37L15.7,11.61L10.96,16.35C10.39,16.93 9.46,16.93 8.87,16.37L8.24,17H4M15.91,2.91C16.5,2.33 17.45,2.33 18.03,2.91L20.16,5.03C20.74,5.62 20.74,6.57 20.16,7.16L16.86,10.45L12.62,6.21L15.91,2.91Z\";\nexport var mdiFormatColorMarkerCancel = \"M16.5 8C14 8 12 10 12 12.5S14 17 16.5 17 21 15 21 12.5 19 8 16.5 8M16.5 15.5C14.8 15.5 13.5 14.2 13.5 12.5C13.5 11.9 13.7 11.4 13.9 11L18 15.1C17.6 15.3 17.1 15.5 16.5 15.5M19.1 14L15 9.9C15.4 9.6 15.9 9.5 16.5 9.5C18.2 9.5 19.5 10.8 19.5 12.5C19.5 13.1 19.3 13.6 19.1 14M12.1 7.7L10.6 6.2L13.9 2.9C14.5 2.3 15.4 2.3 16 2.9L18.2 5C18.6 5.4 18.7 5.8 18.6 6.3C18 6.1 17.3 6 16.6 6C14.8 6 13.3 6.7 12.1 7.7M10.5 14.9L9 16.3C8.4 16.9 7.5 16.9 6.9 16.3L6.2 17H2L4.8 14.2C4.2 13.6 4.2 12.7 4.8 12.1L9.5 7.4L11.1 9C10.4 10 10 11.2 10 12.5C10 13.3 10.2 14.1 10.5 14.9Z\";\nexport var mdiFormatColorText = \"M9.62,12L12,5.67L14.37,12M11,3L5.5,17H7.75L8.87,14H15.12L16.25,17H18.5L13,3H11Z\";\nexport var mdiFormatColumns = \"M3,3H11V5H3V3M13,3H21V5H13V3M3,7H11V9H3V7M13,7H21V9H13V7M3,11H11V13H3V11M13,11H21V13H13V11M3,15H11V17H3V15M13,15H21V17H13V15M3,19H11V21H3V19M13,19H21V21H13V19Z\";\nexport var mdiFormatFloatCenter = \"M9,7H15V13H9V7M3,3H21V5H3V3M3,15H21V17H3V15M3,19H17V21H3V19Z\";\nexport var mdiFormatFloatLeft = \"M3,7H9V13H3V7M3,3H21V5H3V3M21,7V9H11V7H21M21,11V13H11V11H21M3,15H17V17H3V15M3,19H21V21H3V19Z\";\nexport var mdiFormatFloatNone = \"M3,7H9V13H3V7M3,3H21V5H3V3M21,11V13H11V11H21M3,15H17V17H3V15M3,19H21V21H3V19Z\";\nexport var mdiFormatFloatRight = \"M15,7H21V13H15V7M3,3H21V5H3V3M13,7V9H3V7H13M9,11V13H3V11H9M3,15H17V17H3V15M3,19H21V21H3V19Z\";\nexport var mdiFormatFont = \"M17,8H20V20H21V21H17V20H18V17H14L12.5,20H14V21H10V20H11L17,8M18,9L14.5,16H18V9M5,3H10C11.11,3 12,3.89 12,5V16H9V11H6V16H3V5C3,3.89 3.89,3 5,3M6,5V9H9V5H6Z\";\nexport var mdiFormatFontSizeDecrease = \"M5.12,14L7.5,7.67L9.87,14M6.5,5L1,19H3.25L4.37,16H10.62L11.75,19H14L8.5,5H6.5M18,17L23,11.93L21.59,10.5L19,13.1V7H17V13.1L14.41,10.5L13,11.93L18,17Z\";\nexport var mdiFormatFontSizeIncrease = \"M5.12,14L7.5,7.67L9.87,14M6.5,5L1,19H3.25L4.37,16H10.62L11.75,19H14L8.5,5H6.5M18,7L13,12.07L14.41,13.5L17,10.9V17H19V10.9L21.59,13.5L23,12.07L18,7Z\";\nexport var mdiFormatHeader1 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M14,18V16H16V6.31L13.5,7.75V5.44L16,4H18V16H20V18H14Z\";\nexport var mdiFormatHeader2 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M21,18H15A2,2 0 0,1 13,16C13,15.47 13.2,15 13.54,14.64L18.41,9.41C18.78,9.05 19,8.55 19,8A2,2 0 0,0 17,6A2,2 0 0,0 15,8H13A4,4 0 0,1 17,4A4,4 0 0,1 21,8C21,9.1 20.55,10.1 19.83,10.83L15,16H21V18Z\";\nexport var mdiFormatHeader3 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M15,4H19A2,2 0 0,1 21,6V16A2,2 0 0,1 19,18H15A2,2 0 0,1 13,16V15H15V16H19V12H15V10H19V6H15V7H13V6A2,2 0 0,1 15,4Z\";\nexport var mdiFormatHeader4 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M18,18V13H13V11L18,4H20V11H21V13H20V18H18M18,11V7.42L15.45,11H18Z\";\nexport var mdiFormatHeader5 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M15,4H20V6H15V10H17A4,4 0 0,1 21,14A4,4 0 0,1 17,18H15A2,2 0 0,1 13,16V15H15V16H17A2,2 0 0,0 19,14A2,2 0 0,0 17,12H15A2,2 0 0,1 13,10V6A2,2 0 0,1 15,4Z\";\nexport var mdiFormatHeader6 = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M15,4H19A2,2 0 0,1 21,6V7H19V6H15V10H19A2,2 0 0,1 21,12V16A2,2 0 0,1 19,18H15A2,2 0 0,1 13,16V6A2,2 0 0,1 15,4M15,12V16H19V12H15Z\";\nexport var mdiFormatHeaderDecrease = \"M4,4H6V10H10V4H12V18H10V12H6V18H4V4M20.42,7.41L16.83,11L20.42,14.59L19,16L14,11L19,6L20.42,7.41Z\";\nexport var mdiFormatHeaderEqual = \"M4,4H6V10H10V4H12V18H10V12H6V18H4V4M14,10V8H21V10H14M14,12H21V14H14V12Z\";\nexport var mdiFormatHeaderIncrease = \"M4,4H6V10H10V4H12V18H10V12H6V18H4V4M14.59,7.41L18.17,11L14.59,14.59L16,16L21,11L16,6L14.59,7.41Z\";\nexport var mdiFormatHeaderPound = \"M3,4H5V10H9V4H11V18H9V12H5V18H3V4M13,8H15.31L15.63,5H17.63L17.31,8H19.31L19.63,5H21.63L21.31,8H23V10H21.1L20.9,12H23V14H20.69L20.37,17H18.37L18.69,14H16.69L16.37,17H14.37L14.69,14H13V12H14.9L15.1,10H13V8M17.1,10L16.9,12H18.9L19.1,10H17.1Z\";\nexport var mdiFormatHorizontalAlignCenter = \"M19,16V13H23V11H19V8L15,12L19,16M5,8V11H1V13H5V16L9,12L5,8M11,20H13V4H11V20Z\";\nexport var mdiFormatHorizontalAlignLeft = \"M11,16V13H21V11H11V8L7,12L11,16M3,20H5V4H3V20Z\";\nexport var mdiFormatHorizontalAlignRight = \"M13,8V11H3V13H13V16L17,12L13,8M19,20H21V4H19V20Z\";\nexport var mdiFormatIndentDecrease = \"M11,13H21V11H11M11,9H21V7H11M3,3V5H21V3M3,21H21V19H3M3,12L7,16V8M11,17H21V15H11V17Z\";\nexport var mdiFormatIndentIncrease = \"M11,13H21V11H11M11,9H21V7H11M3,3V5H21V3M11,17H21V15H11M3,8V16L7,12M3,21H21V19H3V21Z\";\nexport var mdiFormatItalic = \"M10,4V7H12.21L8.79,15H6V18H14V15H11.79L15.21,7H18V4H10Z\";\nexport var mdiFormatLetterCase = \"M20.06,18C20,17.83 19.91,17.54 19.86,17.11C19.19,17.81 18.38,18.16 17.45,18.16C16.62,18.16 15.93,17.92 15.4,17.45C14.87,17 14.6,16.39 14.6,15.66C14.6,14.78 14.93,14.1 15.6,13.61C16.27,13.12 17.21,12.88 18.43,12.88H19.83V12.24C19.83,11.75 19.68,11.36 19.38,11.07C19.08,10.78 18.63,10.64 18.05,10.64C17.53,10.64 17.1,10.76 16.75,11C16.4,11.25 16.23,11.54 16.23,11.89H14.77C14.77,11.46 14.92,11.05 15.22,10.65C15.5,10.25 15.93,9.94 16.44,9.71C16.95,9.5 17.5,9.36 18.13,9.36C19.11,9.36 19.87,9.6 20.42,10.09C20.97,10.58 21.26,11.25 21.28,12.11V16C21.28,16.8 21.38,17.42 21.58,17.88V18H20.06M17.66,16.88C18.11,16.88 18.54,16.77 18.95,16.56C19.35,16.35 19.65,16.07 19.83,15.73V14.16H18.7C16.93,14.16 16.04,14.63 16.04,15.57C16.04,16 16.19,16.3 16.5,16.53C16.8,16.76 17.18,16.88 17.66,16.88M5.46,13.71H9.53L7.5,8.29L5.46,13.71M6.64,6H8.36L13.07,18H11.14L10.17,15.43H4.82L3.86,18H1.93L6.64,6Z\";\nexport var mdiFormatLetterCaseLower = \"M20.06,18C20,17.83 19.91,17.54 19.86,17.11C19.19,17.81 18.38,18.16 17.45,18.16C16.62,18.16 15.93,17.92 15.4,17.45C14.87,17 14.6,16.39 14.6,15.66C14.6,14.78 14.93,14.1 15.6,13.61C16.27,13.12 17.21,12.88 18.43,12.88H19.83V12.24C19.83,11.75 19.68,11.36 19.38,11.07C19.08,10.78 18.63,10.64 18.05,10.64C17.53,10.64 17.1,10.76 16.75,11C16.4,11.25 16.23,11.54 16.23,11.89H14.77C14.77,11.46 14.92,11.05 15.22,10.65C15.5,10.25 15.93,9.94 16.44,9.71C16.95,9.5 17.5,9.36 18.13,9.36C19.11,9.36 19.87,9.6 20.42,10.09C20.97,10.58 21.26,11.25 21.28,12.11V16C21.28,16.8 21.38,17.42 21.58,17.88V18H20.06M17.66,16.88C18.11,16.88 18.54,16.77 18.95,16.56C19.35,16.35 19.65,16.07 19.83,15.73V14.16H18.7C16.93,14.16 16.04,14.63 16.04,15.57C16.04,16 16.19,16.3 16.5,16.53C16.8,16.76 17.18,16.88 17.66,16.88M5.46,13.71H9.53L7.5,8.29L5.46,13.71M6.64,6H8.36L13.07,18H11.14L10.17,15.43H4.82L3.86,18H1.93L6.64,6M22,20V22H14.5V20H22Z\";\nexport var mdiFormatLetterCaseUpper = \"M20.06,18C20,17.83 19.91,17.54 19.86,17.11C19.19,17.81 18.38,18.16 17.45,18.16C16.62,18.16 15.93,17.92 15.4,17.45C14.87,17 14.6,16.39 14.6,15.66C14.6,14.78 14.93,14.1 15.6,13.61C16.27,13.12 17.21,12.88 18.43,12.88H19.83V12.24C19.83,11.75 19.68,11.36 19.38,11.07C19.08,10.78 18.63,10.64 18.05,10.64C17.53,10.64 17.1,10.76 16.75,11C16.4,11.25 16.23,11.54 16.23,11.89H14.77C14.77,11.46 14.92,11.05 15.22,10.65C15.5,10.25 15.93,9.94 16.44,9.71C16.95,9.5 17.5,9.36 18.13,9.36C19.11,9.36 19.87,9.6 20.42,10.09C20.97,10.58 21.26,11.25 21.28,12.11V16C21.28,16.8 21.38,17.42 21.58,17.88V18H20.06M17.66,16.88C18.11,16.88 18.54,16.77 18.95,16.56C19.35,16.35 19.65,16.07 19.83,15.73V14.16H18.7C16.93,14.16 16.04,14.63 16.04,15.57C16.04,16 16.19,16.3 16.5,16.53C16.8,16.76 17.18,16.88 17.66,16.88M5.46,13.71H9.53L7.5,8.29L5.46,13.71M6.64,6H8.36L13.07,18H11.14L10.17,15.43H4.82L3.86,18H1.93L6.64,6M2,20H13V22H2V20Z\";\nexport var mdiFormatLetterEndsWith = \"M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H2V20H22V14Z\";\nexport var mdiFormatLetterMatches = \"M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H4V15H2V20H22V14Z\";\nexport var mdiFormatLetterSpacing = \"M14.4 10.7H18.5L16.5 5.3L14.4 10.7M15.6 3H17.3L22 15H20.1L19.1 12.4H13.7L12.7 15H10.8L15.6 3M11.2 3H13.1L8.4 15H6.7L2 3H3.9L7.5 12.7M19 22V20H5V22L2 19L5 16V18H19V16L22 19L19 22Z\";\nexport var mdiFormatLetterSpacingVariant = \"M22 3V21H20V3H22M4 3V21H2V3H4M10 13.7H14L12 8.3L10 13.7M11.2 6H12.9L17.6 18H15.6L14.7 15.4H9.4L8.5 18H6.5L11.2 6Z\";\nexport var mdiFormatLetterStartsWith = \"M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M4 18V15H2V20H22V18Z\";\nexport var mdiFormatLineHeight = \"M21 22H3V20H21V22M21 4H3V2H21V4M10 13.7H14L12 8.3L10 13.7M11.2 6H12.9L17.6 18H15.6L14.7 15.4H9.4L8.5 18H6.5L11.2 6Z\";\nexport var mdiFormatLineSpacing = \"M10,13H22V11H10M10,19H22V17H10M10,7H22V5H10M6,7H8.5L5,3.5L1.5,7H4V17H1.5L5,20.5L8.5,17H6V7Z\";\nexport var mdiFormatLineStyle = \"M3,16H8V14H3V16M9.5,16H14.5V14H9.5V16M16,16H21V14H16V16M3,20H5V18H3V20M7,20H9V18H7V20M11,20H13V18H11V20M15,20H17V18H15V20M19,20H21V18H19V20M3,12H11V10H3V12M13,12H21V10H13V12M3,4V8H21V4H3Z\";\nexport var mdiFormatLineWeight = \"M3,17H21V15H3V17M3,20H21V19H3V20M3,13H21V10H3V13M3,4V8H21V4H3Z\";\nexport var mdiFormatListBulleted = \"M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z\";\nexport var mdiFormatListBulletedSquare = \"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\";\nexport var mdiFormatListBulletedTriangle = \"M5,15.5L7.5,20H2.5L5,15.5M9,19H21V17H9V19M5,9.5L7.5,14H2.5L5,9.5M9,13H21V11H9V13M5,3.5L7.5,8H2.5L5,3.5M9,7H21V5H9V7Z\";\nexport var mdiFormatListBulletedType = \"M5,9.5L7.5,14H2.5L5,9.5M3,4H7V8H3V4M5,20A2,2 0 0,0 7,18A2,2 0 0,0 5,16A2,2 0 0,0 3,18A2,2 0 0,0 5,20M9,5V7H21V5H9M9,19H21V17H9V19M9,13H21V11H9V13Z\";\nexport var mdiFormatListCheckbox = \"M21,19V17H8V19H21M21,13V11H8V13H21M8,7H21V5H8V7M4,5V7H6V5H4M3,5A1,1 0 0,1 4,4H6A1,1 0 0,1 7,5V7A1,1 0 0,1 6,8H4A1,1 0 0,1 3,7V5M4,11V13H6V11H4M3,11A1,1 0 0,1 4,10H6A1,1 0 0,1 7,11V13A1,1 0 0,1 6,14H4A1,1 0 0,1 3,13V11M4,17V19H6V17H4M3,17A1,1 0 0,1 4,16H6A1,1 0 0,1 7,17V19A1,1 0 0,1 6,20H4A1,1 0 0,1 3,19V17Z\";\nexport var mdiFormatListChecks = \"M3,5H9V11H3V5M5,7V9H7V7H5M11,7H21V9H11V7M11,15H21V17H11V15M5,20L1.5,16.5L2.91,15.09L5,17.17L9.59,12.59L11,14L5,20Z\";\nexport var mdiFormatListGroup = \"M5 5V19H7V21H3V3H7V5H5M20 7H7V9H20V7M20 11H7V13H20V11M20 15H7V17H20V15Z\";\nexport var mdiFormatListGroupPlus = \"M17 14V17H14V19H17V22H19V19H22V17H19V14M20 11V12.3C19.4 12.1 18.7 12 18 12C16.8 12 15.6 12.4 14.7 13H7V11H20M12.1 17H7V15H12.8C12.5 15.6 12.2 16.3 12.1 17M7 7H20V9H7V7M5 19H7V21H3V3H7V5H5V19Z\";\nexport var mdiFormatListNumbered = \"M7,13V11H21V13H7M7,19V17H21V19H7M7,7V5H21V7H7M3,8V5H2V4H4V8H3M2,17V16H5V20H2V19H4V18.5H3V17.5H4V17H2M4.25,10A0.75,0.75 0 0,1 5,10.75C5,10.95 4.92,11.14 4.79,11.27L3.12,13H5V14H2V13.08L4,11H2V10H4.25Z\";\nexport var mdiFormatListNumberedRtl = \"M3,13V11H17V13H3M3,19V17H17V19H3M3,7V5H17V7H3M20,8V5H19V4H21V8H20M19,17V16H22V20H19V19H21V18.5H20V17.5H21V17H19M21.25,10C21.67,10 22,10.34 22,10.75C22,10.95 21.92,11.14 21.79,11.27L20.12,13H22V14H19V13.08L21,11H19V10H21.25Z\";\nexport var mdiFormatListText = \"M2 14H8V20H2M16 8H10V10H16M2 10H8V4H2M10 4V6H22V4M10 20H16V18H10M10 16H22V14H10\";\nexport var mdiFormatOverline = \"M5,5H19V3H5V5M9.62,16L12,9.67L14.37,16M11,7L5.5,21H7.75L8.87,18H15.12L16.25,21H18.5L13,7H11Z\";\nexport var mdiFormatPageBreak = \"M18,20H6V18H4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V18H18V20M14,2H6A2,2 0 0,0 4,4V12H6V4H14V8H18V12H20V8L14,2M11,16H8V14H11V16M16,16H13V14H16V16M3,14H6V16H3V14M21,16H18V14H21V16Z\";\nexport var mdiFormatPageSplit = \"M11 11V7H13V11H11M13 1V5H11V1H13M11 17V13H13V17H11M9 20H6V4H9V2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H9V20M15 3V8H18V20H15V22H18C19.11 22 20 21.11 20 20V8L15 3M13 19H11V23H13V19Z\";\nexport var mdiFormatPaint = \"M18,4V3A1,1 0 0,0 17,2H5A1,1 0 0,0 4,3V7A1,1 0 0,0 5,8H17A1,1 0 0,0 18,7V6H19V10H9V21A1,1 0 0,0 10,22H12A1,1 0 0,0 13,21V12H21V4H18Z\";\nexport var mdiFormatParagraph = \"M13,4A4,4 0 0,1 17,8A4,4 0 0,1 13,12H11V18H9V4H13M13,10A2,2 0 0,0 15,8A2,2 0 0,0 13,6H11V10H13Z\";\nexport var mdiFormatParagraphSpacing = \"M3 17H21V19H3V17M3 2H21V4H3V2M3 20H21V22H3V20M13 8H15L12 5L9 8H11V13H9L12 16L15 13H13V8Z\";\nexport var mdiFormatPilcrow = \"M10,11A4,4 0 0,1 6,7A4,4 0 0,1 10,3H18V5H16V21H14V5H12V21H10V11Z\";\nexport var mdiFormatPilcrowArrowLeft = \"M8,17V14L4,18L8,22V19H20V17M10,10V15H12V4H14V15H16V4H18V2H10A4,4 0 0,0 6,6A4,4 0 0,0 10,10Z\";\nexport var mdiFormatPilcrowArrowRight = \"M21,18L17,14V17H5V19H17V22M9,10V15H11V4H13V15H15V4H17V2H9A4,4 0 0,0 5,6A4,4 0 0,0 9,10Z\";\nexport var mdiFormatQuoteClose = \"M14,17H17L19,13V7H13V13H16M6,17H9L11,13V7H5V13H8L6,17Z\";\nexport var mdiFormatQuoteCloseOutline = \"M13 6V14H14.88L12.88 18H18.62L21 13.24V6M15 8H19V12.76L17.38 16H16.12L18.12 12H15M3 6V14H4.88L2.88 18H8.62L11 13.24V6M5 8H9V12.76L7.38 16H6.12L8.12 12H5Z\";\nexport var mdiFormatQuoteOpen = \"M10,7L8,11H11V17H5V11L7,7H10M18,7L16,11H19V17H13V11L15,7H18Z\";\nexport var mdiFormatQuoteOpenOutline = \"M11 18V10H9.12L11.12 6H5.38L3 10.76V18M9 16H5V11.24L6.62 8H7.88L5.88 12H9M21 18V10H19.12L21.12 6H15.38L13 10.76V18M19 16H15V11.24L16.62 8H17.88L15.88 12H19Z\";\nexport var mdiFormatRotate90 = \"M7.34,6.41L0.86,12.9L7.35,19.38L13.84,12.9L7.34,6.41M3.69,12.9L7.35,9.24L11,12.9L7.34,16.56L3.69,12.9M19.36,6.64C17.61,4.88 15.3,4 13,4V0.76L8.76,5L13,9.24V6C14.79,6 16.58,6.68 17.95,8.05C20.68,10.78 20.68,15.22 17.95,17.95C16.58,19.32 14.79,20 13,20C12.03,20 11.06,19.79 10.16,19.39L8.67,20.88C10,21.62 11.5,22 13,22C15.3,22 17.61,21.12 19.36,19.36C22.88,15.85 22.88,10.15 19.36,6.64Z\";\nexport var mdiFormatSection = \"M15.67,4.42C14.7,3.84 13.58,3.54 12.45,3.56C10.87,3.56 9.66,4.34 9.66,5.56C9.66,6.96 11,7.47 13,8.14C15.5,8.95 17.4,9.97 17.4,12.38C17.36,13.69 16.69,14.89 15.6,15.61C16.25,16.22 16.61,17.08 16.6,17.97C16.6,20.79 14,21.97 11.5,21.97C10.04,22.03 8.59,21.64 7.35,20.87L8,19.34C9.04,20.05 10.27,20.43 11.53,20.44C13.25,20.44 14.53,19.66 14.53,18.24C14.53,17 13.75,16.31 11.25,15.45C8.5,14.5 6.6,13.5 6.6,11.21C6.67,9.89 7.43,8.69 8.6,8.07C7.97,7.5 7.61,6.67 7.6,5.81C7.6,3.45 9.77,2 12.53,2C13.82,2 15.09,2.29 16.23,2.89L15.67,4.42M11.35,13.42C12.41,13.75 13.44,14.18 14.41,14.71C15.06,14.22 15.43,13.45 15.41,12.64C15.41,11.64 14.77,10.76 13,10.14C11.89,9.77 10.78,9.31 9.72,8.77C8.97,9.22 8.5,10.03 8.5,10.91C8.5,11.88 9.23,12.68 11.35,13.42Z\";\nexport var mdiFormatSize = \"M2 4V7H7V19H10V7H15V4H2M21 9H12V12H15V19H18V12H21V9Z\";\nexport var mdiFormatStrikethrough = \"M3,14H21V12H3M5,4V7H10V10H14V7H19V4M10,19H14V16H10V19Z\";\nexport var mdiFormatStrikethroughVariant = \"M7.2 9.8C6 7.5 7.7 4.8 10.1 4.3C13.2 3.3 17.7 4.7 17.6 8.5H14.6C14.6 8.2 14.5 7.9 14.5 7.7C14.3 7.1 13.9 6.8 13.3 6.6C12.5 6.3 11.2 6.4 10.5 6.9C9 8.2 10.4 9.5 12 10H7.4C7.3 9.9 7.3 9.8 7.2 9.8M21 13V11H3V13H12.6C12.8 13.1 13 13.1 13.2 13.2C13.8 13.5 14.3 13.7 14.5 14.3C14.6 14.7 14.7 15.2 14.5 15.6C14.3 16.1 13.9 16.3 13.4 16.5C11.6 17 9.4 16.3 9.5 14.1H6.5C6.4 16.7 8.6 18.5 11 18.8C14.8 19.6 19.3 17.2 17.3 12.9L21 13Z\";\nexport var mdiFormatSubscript = \"M16,7.41L11.41,12L16,16.59L14.59,18L10,13.41L5.41,18L4,16.59L8.59,12L4,7.41L5.41,6L10,10.59L14.59,6L16,7.41M21.85,21.03H16.97V20.03L17.86,19.23C18.62,18.58 19.18,18.04 19.56,17.6C19.93,17.16 20.12,16.75 20.13,16.36C20.14,16.08 20.05,15.85 19.86,15.66C19.68,15.5 19.39,15.38 19,15.38C18.69,15.38 18.42,15.44 18.16,15.56L17.5,15.94L17.05,14.77C17.32,14.56 17.64,14.38 18.03,14.24C18.42,14.1 18.85,14 19.32,14C20.1,14.04 20.7,14.25 21.1,14.66C21.5,15.07 21.72,15.59 21.72,16.23C21.71,16.79 21.53,17.31 21.18,17.78C20.84,18.25 20.42,18.7 19.91,19.14L19.27,19.66V19.68H21.85V21.03Z\";\nexport var mdiFormatSuperscript = \"M16,7.41L11.41,12L16,16.59L14.59,18L10,13.41L5.41,18L4,16.59L8.59,12L4,7.41L5.41,6L10,10.59L14.59,6L16,7.41M21.85,9H16.97V8L17.86,7.18C18.62,6.54 19.18,6 19.56,5.55C19.93,5.11 20.12,4.7 20.13,4.32C20.14,4.04 20.05,3.8 19.86,3.62C19.68,3.43 19.39,3.34 19,3.33C18.69,3.34 18.42,3.4 18.16,3.5L17.5,3.89L17.05,2.72C17.32,2.5 17.64,2.33 18.03,2.19C18.42,2.05 18.85,2 19.32,2C20.1,2 20.7,2.2 21.1,2.61C21.5,3 21.72,3.54 21.72,4.18C21.71,4.74 21.53,5.26 21.18,5.73C20.84,6.21 20.42,6.66 19.91,7.09L19.27,7.61V7.63H21.85V9Z\";\nexport var mdiFormatText = \"M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z\";\nexport var mdiFormatTextRotationAngleDown = \"M14.25 21H10.03L11.44 19.59L2.58 10.73L4.03 9.33L12.84 18.19L14.25 16.78M12.61 8L15.23 10.64L17.43 5.77M19.41 4.92L14.95 16.03L13.5 14.58L14.39 12.38L10.88 8.81L8.68 9.75L7.22 8.25L18.33 3.84Z\";\nexport var mdiFormatTextRotationAngleUp = \"M20.58 9.33V13.55L19.17 12.14L10.31 21L8.91 19.59L17.72 10.73L16.31 9.33M7.59 11L10.22 8.39L5.34 6.14M4.5 4.22L15.61 8.63L14.16 10.13L11.96 9.19L8.39 12.75L9.33 14.91L7.83 16.41L3.42 5.25Z\";\nexport var mdiFormatTextRotationDown = \"M6,19.73L3,16.73H5V4.27H7V16.73H9L6,19.73M14,9.38V13.13L19.03,11.25L14,9.38M21,12L10,16.73V14.67L12.19,13.73V8.77L10,7.83V5.77L21,10.5V12Z\";\nexport var mdiFormatTextRotationDownVertical = \"M15.25 4H13.75L9 15H11.1L12 12.8H17L17.9 15H20L15.25 4M12.63 11L14.5 6L16.37 11H12.63M5 17.5L8 14.5H6V2H4V14.5H2L5 17.5M22 20L19 17V19H6.5V21H19V23L22 20Z\";\nexport var mdiFormatTextRotationNone = \"M20.5,18L17.5,21V19H5V17H17.5V15L20.5,18M10.13,10H13.88L12,4.97L10.13,10M12.75,3L17.5,14H15.42L14.5,11.81H9.5L8.58,14H6.5L11.25,3H12.75Z\";\nexport var mdiFormatTextRotationUp = \"M3 12V13.5L14 18.25V16.15L11.8 15.25V10.25L14 9.35V7.25L3 12M10 14.62L5 12.75L10 10.88V14.62M18 4.25L15 7.25H17V19.75H19V7.25H21L18 4.25Z\";\nexport var mdiFormatTextRotationVertical = \"M15.75 5H14.25L9.5 16H11.6L12.5 13.8H17.5L18.4 16H20.5L15.75 5M13.13 12L15 7L16.87 12H13.13M6 19.75L9 16.75H7V4.25H5V16.75H3L6 19.75Z\";\nexport var mdiFormatTextVariant = \"M9.6,14L12,7.7L14.4,14M11,5L5.5,19H7.7L8.8,16H15L16.1,19H18.3L13,5H11Z\";\nexport var mdiFormatTextVariantOutline = \"M11 3C10.18 3 9.44 3.5 9.14 4.27L3.64 18.27C3.12 19.58 4.09 21 5.5 21H7.75C8.59 21 9.33 20.5 9.62 19.7L10.26 18H13.74L14.38 19.7C14.67 20.5 15.42 21 16.25 21H18.5C19.91 21 20.88 19.58 20.36 18.27L14.86 4.27C14.56 3.5 13.82 3 13 3M11 5H13L18.5 19H16.25L15.12 16H8.87L7.75 19H5.5M12 7.67L9.62 14H14.37Z\";\nexport var mdiFormatTextWrappingClip = \"M7,21H5V3H7V21M17,3V11H9V13H17V21H19V3H17Z\";\nexport var mdiFormatTextWrappingOverflow = \"M7,21H5V3H7V21M14,3H12V9H14V3M14,15H12V21H14V15M19,12L16,9V11H9V13H16V15L19,12Z\";\nexport var mdiFormatTextWrappingWrap = \"M7,21H5V3H7V21M19,3H17V21H19V3M13,8H9V10H12.97C13.14,10 14,10.16 14,12C14,13.84 13.14,14 13,14H11V12L8,15L11,18V16H13C14.04,16 16,15.16 16,12C16,8.84 14.04,8 13,8Z\";\nexport var mdiFormatTextbox = \"M21,7V3H17V4H7V3H3V7H4V17H3V21H7V20H17V21H21V17H20V7H21M18,4H20V6H18V4M4,4H6V6H4V4M6,20H4V18H6V20M20,20H18V18H20V20M18,17H17V18H7V17H6V7H7V6H17V7H18V17M16,8V10H13V16H11V10H8V8H16Z\";\nexport var mdiFormatTitle = \"M5,4V7H10.5V19H13.5V7H19V4H5Z\";\nexport var mdiFormatUnderline = \"M5,21H19V19H5V21M12,17A6,6 0 0,0 18,11V3H15.5V11A3.5,3.5 0 0,1 12,14.5A3.5,3.5 0 0,1 8.5,11V3H6V11A6,6 0 0,0 12,17Z\";\nexport var mdiFormatUnderlineWavy = \"M12 17C15.31 17 18 14.31 18 11V3H15.5V11C15.5 12.93 13.93 14.5 12 14.5S8.5 12.93 8.5 11V3H6V11C6 14.31 8.69 17 12 17M20 22C18.6 22 17.8 21.3 17.3 20.7C16.8 20.2 16.6 20 16 20S15.2 20.2 14.7 20.7C14.2 21.3 13.4 22 12 22S9.8 21.3 9.3 20.7C8.8 20.2 8.6 20 8 20S7.2 20.2 6.7 20.7C6.2 21.3 5.4 22 4 22V20C4.6 20 4.8 19.8 5.3 19.3C5.8 18.7 6.6 18 8 18S10.2 18.7 10.7 19.3C11.2 19.8 11.4 20 12 20S12.8 19.8 13.3 19.3C13.8 18.7 14.6 18 16 18S18.2 18.7 18.7 19.3C19.2 19.8 19.4 20 20 20V22Z\";\nexport var mdiFormatVerticalAlignBottom = \"M16,13H13V3H11V13H8L12,17L16,13M4,19V21H20V19H4Z\";\nexport var mdiFormatVerticalAlignCenter = \"M8,19H11V23H13V19H16L12,15L8,19M16,5H13V1H11V5H8L12,9L16,5M4,11V13H20V11H4Z\";\nexport var mdiFormatVerticalAlignTop = \"M8,11H11V21H13V11H16L12,7L8,11M4,3V5H20V3H4Z\";\nexport var mdiFormatWrapInline = \"M8,7L13,17H3L8,7M3,3H21V5H3V3M21,15V17H14V15H21M3,19H21V21H3V19Z\";\nexport var mdiFormatWrapSquare = \"M12,7L17,17H7L12,7M3,3H21V5H3V3M3,7H6V9H3V7M21,7V9H18V7H21M3,11H6V13H3V11M21,11V13H18V11H21M3,15H6V17H3V15M21,15V17H18V15H21M3,19H21V21H3V19Z\";\nexport var mdiFormatWrapTight = \"M12,7L17,17H7L12,7M3,3H21V5H3V3M3,7H9V9H3V7M21,7V9H15V7H21M3,11H7V13H3V11M21,11V13H17V11H21M3,15H6V17H3V15M21,15V17H18V15H21M3,19H21V21H3V19Z\";\nexport var mdiFormatWrapTopBottom = \"M12,7L17,17H7L12,7M3,3H21V5H3V3M3,19H21V21H3V19Z\";\nexport var mdiForum = \"M17,12V3A1,1 0 0,0 16,2H3A1,1 0 0,0 2,3V17L6,13H16A1,1 0 0,0 17,12M21,6H19V15H6V17A1,1 0 0,0 7,18H18L22,22V7A1,1 0 0,0 21,6Z\";\nexport var mdiForumMinus = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M22 17V19H14V17H22Z\";\nexport var mdiForumMinusOutline = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M15 11H5.2L4 12.2V4H15V11M22 17V19H14V17H22Z\";\nexport var mdiForumOutline = \"M15,4V11H5.17L4,12.17V4H15M16,2H3A1,1 0 0,0 2,3V17L6,13H16A1,1 0 0,0 17,12V3A1,1 0 0,0 16,2M21,6H19V15H6V17A1,1 0 0,0 7,18H18L22,22V7A1,1 0 0,0 21,6Z\";\nexport var mdiForumPlus = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M17 14H19V17H22V19H19V22H17V19H14V17H17V14Z\";\nexport var mdiForumPlusOutline = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M15 11H5.2L4 12.2V4H15V11M17 14H19V17H22V19H19V22H17V19H14V17H17V14Z\";\nexport var mdiForumRemove = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M20.12 14.46L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.46Z\";\nexport var mdiForumRemoveOutline = \"M21 6H19V12.1C20.2 12.3 21.2 12.8 22 13.5V7C22 6.5 21.5 6 21 6M6 17C6 17.5 6.5 18 7 18H12C12 16.9 12.3 15.9 12.8 15H6V17M16 2H3C2.5 2 2 2.5 2 3V17L6 13H14.7C15.4 12.5 16.2 12.2 17 12.1V3C17 2.5 16.5 2 16 2M15 11H5.2L4 12.2V4H15V11M20.12 14.46L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.46Z\";\nexport var mdiForward = \"M12,8V4L20,12L12,20V16H4V8H12Z\";\nexport var mdiForwardburger = \"M19,13H3V11H19L15,7L16.4,5.6L22.8,12L16.4,18.4L15,17L19,13M3,6H13V8H3V6M13,16V18H3V16H13Z\";\nexport var mdiFountain = \"M7.5,2C4.47,2 2,4.46 2,7.5V7.5L2,8H4V7.5A3.5,3.5 0 0,1 7.5,4C9,4 10.26,4.93 10.76,6.24C10.37,6.08 9.95,6 9.5,6C8.11,6 6.9,6.82 6.34,8L8.08,9C8.29,8.42 8.85,8 9.5,8A1.5,1.5 0 0,1 11,9.5V11H13V9.5A1.5,1.5 0 0,1 14.5,8C15.16,8 15.71,8.42 15.92,9L17.66,8C17.1,6.82 15.9,6 14.5,6C14.05,6 13.63,6.08 13.24,6.24C13.74,4.93 15,4 16.5,4A3.5,3.5 0 0,1 20,7.5V8H22V7.5H22A5.5,5.5 0 0,0 16.5,2C14.64,2 13,2.93 12,4.34C11,2.93 9.36,2 7.5,2M6,12V14H7.42C7.92,15.15 8.85,16.07 10,16.57C10,17.38 10,18.19 10,19H2C2,19 2.82,20.23 3.41,21.11C3.78,21.67 4.4,22 5.07,22H18.93C19.6,22 20.22,21.67 20.59,21.11L22,19H14C14,18.19 14,17.38 14,16.57C15.15,16.07 16.08,15.15 16.58,14H18V12H6Z\";\nexport var mdiFountainPen = \"M6.95,14.93L11.19,9.27L19.68,2.2C20.07,1.81 20.72,1.81 21.09,2.2L21.8,2.91C22.19,3.28 22.19,3.93 21.8,4.32L14.73,12.81L9.07,17.05L6.95,14.93M8.36,17.76L6.24,15.64L3.41,17.05L2,21.29L4.12,19.17C4.32,19 4.63,19 4.83,19.17C5,19.37 5,19.68 4.83,19.88L2.71,22L6.95,20.59L8.36,17.76Z\";\nexport var mdiFountainPenTip = \"M15.54,3.5L20.5,8.47L19.07,9.88L14.12,4.93L15.54,3.5M3.5,19.78L10,13.31C9.9,13 9.97,12.61 10.23,12.35C10.62,11.96 11.26,11.96 11.65,12.35C12.04,12.75 12.04,13.38 11.65,13.77C11.39,14.03 11,14.1 10.69,14L4.22,20.5L14.83,16.95L18.36,10.59L13.42,5.64L7.05,9.17L3.5,19.78Z\";\nexport var mdiFractionOneHalf = \"M5.79 21.61L4.21 20.39L18.21 2.39L19.79 3.61L5.79 21.61M4 2V4H6V12H8V2H4M15 12V14H19V16H17C15.9 16 15 16.9 15 18V22H21V20H17V18H19C20.11 18 21 17.11 21 16V14C21 12.9 20.11 12 19 12H15Z\";\nexport var mdiFreebsd = \"M2.69,2C3.54,1.95 6.08,3.16 6.13,3.19C4.84,4 3.74,5.09 2.91,6.38C2.09,4.81 1.34,2.91 2,2.25C2.17,2.08 2.4,2 2.69,2M20.84,2.13C21.25,2.08 21.58,2.14 21.78,2.34C22.85,3.42 19.88,8.15 19.38,8.66C18.87,9.16 17.57,8.7 16.5,7.63C15.43,6.55 14.97,5.26 15.47,4.75C15.88,4.34 19.09,2.3 20.84,2.13M12,2.56C13.29,2.56 14.53,2.82 15.66,3.28C15.17,3.6 14.81,3.85 14.69,3.97C13.7,4.96 14.14,6.83 15.72,8.41C16.7,9.38 17.84,9.97 18.78,9.97C19.46,9.97 19.92,9.68 20.16,9.44C20.33,9.27 20.6,8.88 20.91,8.41C21.42,9.59 21.69,10.88 21.69,12.25C21.69,17.61 17.36,21.97 12,21.97C6.64,21.97 2.31,17.61 2.31,12.25C2.31,6.89 6.64,2.56 12,2.56Z\";\nexport var mdiFrenchFries = \"M18 11V6H15V4H12V2H8V5H6V11H5L7 22H17L19 11H18M15.86 11C15.7 11.61 15.4 12.16 15 12.62V8.62L17 9.62V11H15.86M17 7V8.5L15 7.5V7H17M12 5H14V8.5L12 9.5V5M12 10.62L14 9.62V13.45C13.41 13.8 12.73 14 12 14V10.62M11 13.86C10.21 13.65 9.5 13.22 9 12.62V9.62L11 8.62V13.86M9 3H11V7.5L10 8V5H9V3M7 6H9V8.5L8 9V11H7V6Z\";\nexport var mdiFrequentlyAskedQuestions = \"M18,15H6L2,19V3A1,1 0 0,1 3,2H18A1,1 0 0,1 19,3V14A1,1 0 0,1 18,15M23,9V23L19,19H8A1,1 0 0,1 7,18V17H21V8H22A1,1 0 0,1 23,9M8.19,4C7.32,4 6.62,4.2 6.08,4.59C5.56,5 5.3,5.57 5.31,6.36L5.32,6.39H7.25C7.26,6.09 7.35,5.86 7.53,5.7C7.71,5.55 7.93,5.47 8.19,5.47C8.5,5.47 8.76,5.57 8.94,5.75C9.12,5.94 9.2,6.2 9.2,6.5C9.2,6.82 9.13,7.09 8.97,7.32C8.83,7.55 8.62,7.75 8.36,7.91C7.85,8.25 7.5,8.55 7.31,8.82C7.11,9.08 7,9.5 7,10H9C9,9.69 9.04,9.44 9.13,9.26C9.22,9.08 9.39,8.9 9.64,8.74C10.09,8.5 10.46,8.21 10.75,7.81C11.04,7.41 11.19,7 11.19,6.5C11.19,5.74 10.92,5.13 10.38,4.68C9.85,4.23 9.12,4 8.19,4M7,11V13H9V11H7M13,13H15V11H13V13M13,4V10H15V4H13Z\";\nexport var mdiFridge = \"M7,2H17A2,2 0 0,1 19,4V9H5V4A2,2 0 0,1 7,2M19,19A2,2 0 0,1 17,21V22H15V21H9V22H7V21A2,2 0 0,1 5,19V10H19V19M8,5V7H10V5H8M8,12V15H10V12H8Z\";\nexport var mdiFridgeAlert = \"M5 2H15C16.11 2 17 2.9 17 4V9H3V4C3 2.9 3.9 2 5 2M17 19C17 20.11 16.11 21 15 21V22H13V21H7V22H5V21C3.9 21 3 20.11 3 19V10H17V19M6 5V7H8V5H6M6 12V15H8V12H6M19 15H21V17H19V15M19 7H21V13H19V7Z\";\nexport var mdiFridgeAlertOutline = \"M7 21V22H5V21C3.9 21 3 20.11 3 19V4C3 2.9 3.9 2 5 2H15C16.11 2 17 2.9 17 4V19C17 20.11 16.11 21 15 21V22H13V21H7M5 4V9H15V4H5M5 19H15V11H5V19M6 12H8V15H6V12M6 6H8V8H6V6M19 15H21V17H19V15M19 7H21V13H19V7Z\";\nexport var mdiFridgeBottom = \"M7,2A2,2 0 0,0 5,4V19A2,2 0 0,0 7,21V22H9V21H15V22H17V21A2,2 0 0,0 19,19V4A2,2 0 0,0 17,2H7M8,6H10V8H8V6M7,11H17V19H7V11M8,12V15H10V12H8Z\";\nexport var mdiFridgeIndustrial = \"M17 2H7C5.9 2 5 2.9 5 4V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C18.11 21 19 20.11 19 19V4C19 2.9 18.11 2 17 2M10 15H8V10H10V15Z\";\nexport var mdiFridgeIndustrialAlert = \"M15 2H5C3.9 2 3 2.9 3 4V19C3 20.11 3.9 21 5 21V22H7V21H13V22H15V21C16.11 21 17 20.11 17 19V4C17 2.9 16.11 2 15 2M8 15H6V10H8V15M21 7V13H19V7H21M19 15H21V17H19V15Z\";\nexport var mdiFridgeIndustrialAlertOutline = \"M8 15H6V10H8V15M17 4V19C17 20.11 16.11 21 15 21V22H13V21H7V22H5V21C3.9 21 3 20.11 3 19V4C3 2.9 3.9 2 5 2H15C16.11 2 17 2.9 17 4M15 4H5V19H15V4M19 17H21V15H19V17M19 7V13H21V7H19Z\";\nexport var mdiFridgeIndustrialOff = \"M19 15.8L5.7 2.5C6.05 2.19 6.5 2 7 2H17C18.11 2 19 2.9 19 4V15.8M22.11 21.46L20.84 22.73L18.46 20.35C18.1 20.75 17.58 21 17 21V22H15V21H9V22H7V21C5.9 21 5 20.11 5 19V6.89L1.11 3L2.39 1.73L22.11 21.46M10 11.89L8.11 10H8V15H10V11.89Z\";\nexport var mdiFridgeIndustrialOffOutline = \"M7.2 4L5.7 2.5C6.05 2.19 6.5 2 7 2H17C18.11 2 19 2.9 19 4V15.8L17 13.8V4H7.2M22.11 21.46L20.84 22.73L18.46 20.35C18.1 20.75 17.58 21 17 21V22H15V21H9V22H7V21C5.9 21 5 20.11 5 19V6.89L1.11 3L2.39 1.73L22.11 21.46M17 18.89L10 11.89V15H8V10H8.11L7 8.89V19H17V18.89Z\";\nexport var mdiFridgeIndustrialOutline = \"M17 2H7C5.9 2 5 2.9 5 4V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C18.11 21 19 20.11 19 19V4C19 2.9 18.11 2 17 2M17 19H7V4H17V19M10 15H8V10H10V15Z\";\nexport var mdiFridgeOff = \"M22.11 21.46L2.39 1.73L1.11 3L5 6.89V9H7.11L8.11 10H5V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C17.58 21 18.1 20.75 18.46 20.35L20.84 22.73L22.11 21.46M10 15H8V12H10V15M19 15.8L13.2 10H19V15.8M8.2 5L5.7 2.5C6.05 2.19 6.5 2 7 2H17C18.11 2 19 2.9 19 4V9H12.2L10 6.8V5H8.2Z\";\nexport var mdiFridgeOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L5 6.89V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C17.58 21 18.1 20.75 18.46 20.35L20.84 22.73L22.11 21.46M17 19H7V11H9.11L17 18.89V19M7.2 4L5.7 2.5C6.05 2.19 6.5 2 7 2H17C18.11 2 19 2.9 19 4V15.8L17 13.8V11H14.2L12.2 9H17V4H7.2M8 12H10V15H8V12Z\";\nexport var mdiFridgeOutline = \"M9,21V22H7V21A2,2 0 0,1 5,19V4A2,2 0 0,1 7,2H17A2,2 0 0,1 19,4V19A2,2 0 0,1 17,21V22H15V21H9M7,4V9H17V4H7M7,19H17V11H7V19M8,12H10V15H8V12M8,6H10V8H8V6Z\";\nexport var mdiFridgeTop = \"M8,8V6H10V8H8M7,2H17A2,2 0 0,1 19,4V19A2,2 0 0,1 17,21V22H15V21H9V22H7V21A2,2 0 0,1 5,19V4A2,2 0 0,1 7,2M7,4V9H17V4H7M8,12V15H10V12H8Z\";\nexport var mdiFridgeVariant = \"M19 4V19C19 20.11 18.11 21 17 21V22H15V21H12.5V2H17C18.11 2 19 2.9 19 4M7 2H11.5V21H9V22H7V21C5.9 21 5 20.11 5 19V4C5 2.9 5.9 2 7 2M10 10H7V14H10V10Z\";\nexport var mdiFridgeVariantAlert = \"M17 4V19C17 20.11 16.11 21 15 21V22H13V21H10.5V2H15C16.11 2 17 2.9 17 4M5 2H9.5V21H7V22H5V21C3.9 21 3 20.11 3 19V4C3 2.9 3.9 2 5 2M8 10H5V14H8V10M19 7V13H21V7H19M19 17H21V15H19V17Z\";\nexport var mdiFridgeVariantAlertOutline = \"M15 2H5C3.9 2 3 2.9 3 4V19C3 20.11 3.9 21 5 21V22H7V21H13V22H15V21C16.11 21 17 20.11 17 19V4C17 2.9 16.11 2 15 2M9 19H5V14H8V10H5V4H9V19M15 19H11V4H15V19M19 15H21V17H19V15M21 7V13H19V7H21Z\";\nexport var mdiFridgeVariantOff = \"M2.39 1.73L1.11 3L5 6.89V19C5 20.11 5.9 21 7 21V22H9V21H11.5V13.39L12.5 14.39V21H15V22H17V21C17.58 21 18.1 20.75 18.46 20.35L20.84 22.73L22.11 21.46L2.39 1.73M10 14H7V10H8.11L10 11.89V14M19 15.8L12.5 9.3V2H17C18.11 2 19 2.9 19 4V15.8M11.5 8.3L5.7 2.5C6.05 2.19 6.5 2 7 2H11.5V8.3Z\";\nexport var mdiFridgeVariantOffOutline = \"M7.2 4L5.7 2.5C6.05 2.19 6.5 2 7 2H17C18.11 2 19 2.9 19 4V15.8L17 13.8V4H13V9.8L11 7.8V4H7.2M22.11 21.46L20.84 22.73L18.46 20.35C18.1 20.75 17.58 21 17 21V22H15V21H9V22H7V21C5.9 21 5 20.11 5 19V6.89L1.11 3L2.39 1.73L22.11 21.46M7 10H8.11L7 8.89V10M11 12.89L10 11.89V14H7V19H11V12.89M17 18.89L13 14.89V19H17V18.89Z\";\nexport var mdiFridgeVariantOutline = \"M17 2H7C5.9 2 5 2.9 5 4V19C5 20.11 5.9 21 7 21V22H9V21H15V22H17V21C18.11 21 19 20.11 19 19V4C19 2.9 18.11 2 17 2M7 19V14H10V10H7V4H11V19H7M17 19H13V4H17V19Z\";\nexport var mdiFruitCherries = \"M16 13H15.5C14.8 11.7 14.3 10 13.8 8.3L14.7 9.2C17.4 11.3 19.8 10.9 19.8 10.9S20.5 7.1 17.8 5.1C15.5 3.3 13.4 3.3 12.8 3.4C12.7 2.8 12.7 2.3 12.6 1.9L11.2 2C11.2 5.2 8.5 11.1 7.6 13C5.6 13.2 4 14.9 4 17C4 19.2 5.8 21 8 21C9.1 21 10 20.6 10.7 19.9C10.3 19 10 18 10 17S10.3 15 10.7 14.1C10.3 13.7 9.7 13.4 9.2 13.2C9.9 11.7 11.1 9 11.9 6.4C12.3 8.7 13.1 11.4 14.1 13.5C12.9 14.2 12 15.5 12 17C12 19.2 13.8 21 16 21S20 19.2 20 17 18.2 13 16 13M8 15.5C7.2 15.5 6.5 16.2 6.5 17H5.5C5.5 15.6 6.6 14.5 8 14.5V15.5M16 15.5C15.2 15.5 14.5 16.2 14.5 17H13.5C13.5 15.6 14.6 14.5 16 14.5V15.5Z\";\nexport var mdiFruitCherriesOff = \"M22.1 21.5L2.4 1.7L1.1 3L8.7 10.6C8.3 11.6 7.9 12.5 7.6 13C5.6 13.2 4 14.9 4 17C4 19.2 5.8 21 8 21C9.1 21 10 20.6 10.7 19.9C10.3 19 10 18 10 17S10.3 15 10.7 14.1C10.3 13.7 9.7 13.4 9.2 13.2C9.4 12.8 9.6 12.3 9.9 11.7L12.8 14.6C12.3 15.3 12 16.1 12 17C12 19.2 13.8 21 16 21C16.9 21 17.7 20.7 18.3 20.2L20.8 22.7L22.1 21.5M8 15.5C7.2 15.5 6.5 16.2 6.5 17H5.5C5.5 15.6 6.6 14.5 8 14.5V15.5M14.5 17H13.5C13.5 16.5 13.6 16.1 13.8 15.7L14.6 16.5C14.5 16.7 14.5 16.8 14.5 17M20 16.8L16.2 13C18.2 13.1 19.9 14.8 20 16.8M11.3 8.1L10.1 6.9C10.7 5.1 11.2 3.3 11.2 2L12.6 1.9C12.7 2.3 12.7 2.8 12.8 3.4C13.4 3.3 15.5 3.3 17.8 5.1C20.5 7.1 19.8 10.9 19.8 10.9S17.4 11.3 14.7 9.2L13.8 8.3C14.1 9.5 14.5 10.7 14.9 11.7L12.6 9.4C12.3 8.4 12.1 7.4 11.9 6.4C11.7 7 11.5 7.6 11.3 8.1Z\";\nexport var mdiFruitCitrus = \"M9 15.9C6.9 15.7 5.1 14.9 4 13.6C3.2 13.6 2.4 13.1 2.1 12.3C1.8 11.5 2.1 10.7 2.8 10.2C2.9 7.2 5.6 4.1 9.7 2.7C13.8 1.3 18 2.1 20 4.4C20.8 4.4 21.6 4.9 21.9 5.7C22.2 6.5 21.9 7.3 21.2 7.8C21.2 8.6 21 9.4 20.6 10.2C19.4 9.5 18 9 16.5 9C12.6 9 9.3 12 9 15.9M22 16.5C22 19.5 19.5 22 16.5 22S11 19.5 11 16.5 13.5 11 16.5 11 22 13.5 22 16.5M13.3 18L15.6 16.5L13.3 15C13.1 15.5 13 16 13 16.5S13.1 17.5 13.3 18M16 17.4L13.9 18.8C14.4 19.4 15.2 19.8 16 20V17.4M16 13.1C15.2 13.2 14.4 13.6 13.9 14.3L16 15.7V13.1M17 15.6L19.1 14.2C18.6 13.6 17.8 13.2 17 13V15.6M19.1 18.8L17 17.4V19.9C17.8 19.8 18.6 19.4 19.1 18.8M20 16.5C20 16 19.9 15.5 19.7 15L17.4 16.5L19.7 18C19.9 17.5 20 17 20 16.5Z\";\nexport var mdiFruitCitrusOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.4 6.3C3.4 7.5 2.9 8.9 2.8 10.2C2.1 10.7 1.8 11.5 2.1 12.3C2.4 13.1 3.2 13.6 4 13.6C5.1 14.9 6.9 15.7 9 15.9C9.1 14.5 9.6 13.3 10.3 12.2L11.8 13.7C11.3 14.5 11 15.5 11 16.5C11 19.5 13.5 22 16.5 22C17.5 22 18.5 21.7 19.3 21.2L20.8 22.7L22.1 21.5M13 16.5C13 16 13.1 15.6 13.3 15.1L15 16.8L13.3 18C13.1 17.5 13 17 13 16.5M13.9 18.8L15.7 17.6L16 17.9V20C15.2 19.8 14.4 19.4 13.9 18.8M17 19.9V18.9L17.8 19.7C17.5 19.8 17.3 19.9 17 19.9M20 16.8V16.5C20 16 19.9 15.5 19.7 15L18.8 15.6L18.1 14.9L19.1 14.2C18.6 13.6 17.8 13.2 17 13V13.8L14.6 11.4C15.2 11.2 15.9 11 16.5 11C19.5 11 22 13.5 22 16.5C22 17.2 21.9 17.8 21.6 18.4L20 16.8M13 9.8L7.1 3.9C7.9 3.4 8.8 3 9.7 2.7C13.8 1.3 18 2.1 20 4.4C20.8 4.4 21.6 4.9 21.9 5.7C22.2 6.5 21.9 7.3 21.2 7.8C21.2 8.6 21 9.4 20.6 10.2C19.4 9.5 18 9 16.5 9C15.3 9 14.1 9.3 13 9.8Z\";\nexport var mdiFruitGrapes = \"M14 12C14 13.1 13.1 14 12 14S10 13.1 10 12 10.9 10 12 10 14 10.9 14 12M7 10C5.9 10 5 10.9 5 12S5.9 14 7 14 9 13.1 9 12 8.1 10 7 10M17 10C15.9 10 15 10.9 15 12S15.9 14 17 14 19 13.1 19 12 18.1 10 17 10M14.5 6C13.4 6 12.5 6.9 12.5 8S13.4 10 14.5 10 16.5 9.1 16.5 8 15.6 6 14.5 6M9.5 6C8.4 6 7.5 6.9 7.5 8S8.4 10 9.5 10 11.5 9.1 11.5 8 10.6 6 9.5 6M14.5 14C13.4 14 12.5 14.9 12.5 16S13.4 18 14.5 18 16.5 17.1 16.5 16 15.6 14 14.5 14M9.5 14C8.4 14 7.5 14.9 7.5 16S8.4 18 9.5 18 11.5 17.1 11.5 16 10.6 14 9.5 14M12 18C10.9 18 10 18.9 10 20S10.9 22 12 22 14 21.1 14 20 13.1 18 12 18M14.4 2.2L13.6 1C11.4 2 11.2 5.6 11.2 6H12.7C12.8 5.2 13.1 2.7 14.4 2.2Z\";\nexport var mdiFruitGrapesOutline = \"M19 12C19 10.61 18.05 9.47 16.78 9.12C16.92 8.78 17 8.4 17 8C17 6.34 15.66 5 14 5C13.57 5 13.17 5.1 12.81 5.26C13 4.19 13.39 2.59 14.4 2.2L13.6 1C11.9 1.77 11.4 4.09 11.26 5.29C10.87 5.11 10.45 5 10 5C8.34 5 7 6.34 7 8C7 8.4 7.08 8.77 7.22 9.12C5.94 9.46 5 10.62 5 12C5 13.39 5.95 14.54 7.23 14.88C7.09 15.22 7 15.6 7 16C7 17.39 7.94 18.54 9.22 18.88C9.08 19.23 9 19.61 9 20C9 21.66 10.34 23 12 23S15 21.66 15 20C15 19.61 14.92 19.23 14.78 18.88C16.06 18.54 17 17.39 17 16C17 15.6 16.92 15.23 16.77 14.88C18.05 14.54 19 13.39 19 12M16.31 9.88V9.9H16.3L16.31 9.88M14 6.5C14.83 6.5 15.5 7.17 15.5 8S14.83 9.5 14 9.5 12.5 8.83 12.5 8 13.17 6.5 14 6.5M13.5 12C13.5 12.83 12.83 13.5 12 13.5S10.5 12.83 10.5 12 11.17 10.5 12 10.5 13.5 11.17 13.5 12M10 6.5C10.83 6.5 11.5 7.17 11.5 8S10.83 9.5 10 9.5 8.5 8.83 8.5 8 9.17 6.5 10 6.5M6.5 12C6.5 11.17 7.17 10.5 8 10.5S9.5 11.17 9.5 12 8.83 13.5 8 13.5 6.5 12.83 6.5 12M8.5 16C8.5 15.17 9.17 14.5 10 14.5S11.5 15.17 11.5 16 10.83 17.5 10 17.5 8.5 16.83 8.5 16M12 21.5C11.17 21.5 10.5 20.83 10.5 20S11.17 18.5 12 18.5 13.5 19.17 13.5 20 12.83 21.5 12 21.5M14 17.5C13.17 17.5 12.5 16.83 12.5 16S13.17 14.5 14 14.5 15.5 15.17 15.5 16 14.83 17.5 14 17.5M16 13.5C15.17 13.5 14.5 12.83 14.5 12S15.17 10.5 16 10.5 17.5 11.17 17.5 12 16.83 13.5 16 13.5Z\";\nexport var mdiFruitPear = \"M18 16C18 19.31 15.31 22 12 22C8.69 22 6 19.31 6 16C6 13 8 13 8 10C8 8.56 8.75 7.22 10 6.5C10.4 6.27 10.82 6.12 11.25 6.04V5C11.25 4.63 11.17 4.42 11.03 4.28C10.9 4.14 10.63 4 10 4V2.5C10.88 2.5 11.6 2.73 12.09 3.22C12.58 3.71 12.75 4.38 12.75 5V6.04C13.18 6.12 13.61 6.27 14 6.5C15.25 7.22 16 8.56 16 10C16 13 18 13 18 16Z\";\nexport var mdiFruitPineapple = \"M14.4 7.7C16.4 6.4 19 7 19 7C17.2 4.6 15.1 4.7 13.6 5.2V5C14.7 3.4 16.9 3.5 16.9 3.5C15.3 2.1 13.9 2.5 13 3C12.5 1.8 12 1 12 1C11.6 1.7 11.3 2.4 11 3.1C10.1 2.5 8.6 2.1 7 3.5C7 3.5 9.3 3.5 10.4 5.2C8.9 4.7 6.8 4.6 5 7C5 7 7.6 6.4 9.6 7.7C7.5 8.9 6 11.7 6 15C6 19.4 8.7 23 12 23S18 19.4 18 15C18 11.7 16.5 8.9 14.4 7.7M15.8 16.8C15.7 17.2 15.6 17.6 15.4 18L14 16L12.5 18L14.1 20.1C13.8 20.3 13.6 20.5 13.3 20.7L12 19L10.7 20.7C10.4 20.6 10.1 20.4 9.9 20.1L11.5 18L10 16L8.5 17.9C8.4 17.5 8.2 17.1 8.1 16.7L9.5 15L8.2 13.2C8.3 12.8 8.4 12.4 8.6 12L10 14L11.5 12L9.9 9.9C10.2 9.7 10.4 9.5 10.7 9.3L12 11L13.3 9.3C13.6 9.4 13.9 9.6 14.1 9.9L12.5 12L14 14L15.5 12.1C15.6 12.5 15.8 12.9 15.9 13.3L14.5 15L15.8 16.8M12 13L13.5 15L12 17L10.5 15L12 13Z\";\nexport var mdiFruitWatermelon = \"M16.4 16.4C19.8 13 19.8 7.5 16.4 4.2L4.2 16.4C7.5 19.8 13 19.8 16.4 16.4M16 7C16.6 7 17 7.4 17 8C17 8.6 16.6 9 16 9S15 8.6 15 8C15 7.4 15.4 7 16 7M16 11C16.6 11 17 11.4 17 12C17 12.6 16.6 13 16 13S15 12.6 15 12C15 11.4 15.4 11 16 11M12 11C12.6 11 13 11.4 13 12C13 12.6 12.6 13 12 13S11 12.6 11 12C11 11.4 11.4 11 12 11M12 15C12.6 15 13 15.4 13 16C13 16.6 12.6 17 12 17S11 16.6 11 16C11 15.4 11.4 15 12 15M8 17C7.4 17 7 16.6 7 16C7 15.4 7.4 15 8 15S9 15.4 9 16C9 16.6 8.6 17 8 17M18.6 18.6C14 23.2 6.6 23.2 2 18.6L3.4 17.2C7.2 21 13.3 21 17.1 17.2C20.9 13.4 20.9 7.3 17.1 3.5L18.6 2C23.1 6.6 23.1 14 18.6 18.6Z\";\nexport var mdiFuel = \"M3,2H6C6.28,2 6.53,2.11 6.71,2.29L8.79,4.38L9.59,3.59C10,3.2 10.5,3 11,3H17C17.5,3 18,3.2 18.41,3.59L19.41,4.59C19.8,5 20,5.5 20,6V19A2,2 0 0,1 18,21H8A2,2 0 0,1 6,19V13L6,12V8C6,7.5 6.2,7 6.59,6.59L7.38,5.79L5.59,4H3V2M11,5V7H17V5H11M11.41,11L9.41,9H8V10.41L10,12.41V15.59L8,17.59V19H9.41L11.41,17H14.59L16.59,19H18V17.59L16,15.59V12.41L18,10.41V9H16.59L14.59,11H11.41M12,13H14V15H12V13Z\";\nexport var mdiFuelCell = \"M6 3V5H4C2.9 5 2 5.9 2 7V17C2 18.1 2.9 19 4 19V20C4 21.1 4.9 22 6 22H7C8.1 22 9 21.1 9 20V19H15V20C15 21.1 15.9 22 17 22H18C19.1 22 20 21.1 20 20V19C21.1 19 22 18.1 22 17H11V5H8V3H6M16 3V5H13V7H22C22 5.9 21.1 5 20 5H18V3H16M7 7V11H9L6 17V13H4L7 7M13 9V11H22V9H13M13 13V15H22V13H13Z\";\nexport var mdiFullscreen = \"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\";\nexport var mdiFullscreenExit = \"M14,14H19V16H16V19H14V14M5,14H10V19H8V16H5V14M8,5H10V10H5V8H8V5M19,8V10H14V5H16V8H19Z\";\nexport var mdiFunction = \"M15.6,5.29C14.5,5.19 13.53,6 13.43,7.11L13.18,10H16V12H13L12.56,17.07C12.37,19.27 10.43,20.9 8.23,20.7C6.92,20.59 5.82,19.86 5.17,18.83L6.67,17.33C6.91,18.07 7.57,18.64 8.4,18.71C9.5,18.81 10.47,18 10.57,16.89L11,12H8V10H11.17L11.44,6.93C11.63,4.73 13.57,3.1 15.77,3.3C17.08,3.41 18.18,4.14 18.83,5.17L17.33,6.67C17.09,5.93 16.43,5.36 15.6,5.29Z\";\nexport var mdiFunctionVariant = \"M12.42,5.29C11.32,5.19 10.35,6 10.25,7.11L10,10H12.82V12H9.82L9.38,17.07C9.18,19.27 7.24,20.9 5.04,20.7C3.79,20.59 2.66,19.9 2,18.83L3.5,17.33C3.83,18.38 4.96,18.97 6,18.63C6.78,18.39 7.33,17.7 7.4,16.89L7.82,12H4.82V10H8L8.27,6.93C8.46,4.73 10.39,3.1 12.6,3.28C13.86,3.39 15,4.09 15.66,5.17L14.16,6.67C13.91,5.9 13.23,5.36 12.42,5.29M22,13.65L20.59,12.24L17.76,15.07L14.93,12.24L13.5,13.65L16.35,16.5L13.5,19.31L14.93,20.72L17.76,17.89L20.59,20.72L22,19.31L19.17,16.5L22,13.65Z\";\nexport var mdiFuriganaHorizontal = \"M8.5 2C7.12 2 6 3.12 6 4.5S7.12 7 8.5 7 11 5.88 11 4.5 9.88 2 8.5 2M15.5 2C14.12 2 13 3.12 13 4.5S14.12 7 15.5 7 18 5.88 18 4.5 16.88 2 15.5 2M11 8V10H5V12H14.95C14.53 13.13 13.5 14.5 12.16 15.67C11.12 14.74 10.35 13.82 9.82 13H7.5C8.08 14.25 9.13 15.62 10.62 16.96L6.55 20.22L5.76 20.84L7 22.41L7.8 21.78L12.17 18.28L16.55 21.78L17.33 22.41L18.58 20.84L17.8 20.22L13.73 16.97C15.34 15.5 16.7 13.85 17.07 12H19V10H13V8H11Z\";\nexport var mdiFuriganaVertical = \"M8 5V7H2V9H11.95C11.53 10.13 10.5 11.5 9.16 12.67C8.12 11.74 7.35 10.82 6.82 10H4.5C5.08 11.25 6.13 12.62 7.62 13.96L3.55 17.22L2.76 17.84L4 19.41L4.8 18.78L9.17 15.28L13.55 18.78L14.33 19.41L15.58 17.84L14.8 17.22L10.73 13.97C12.34 12.5 13.7 10.85 14.07 9H16V7H10V5H8M19.5 6C18.12 6 17 7.12 17 8.5S18.12 11 19.5 11 22 9.88 22 8.5 20.88 6 19.5 6M19.47 13C18.09 13 16.97 14.12 16.97 15.5S18.09 18 19.47 18 21.97 16.88 21.97 15.5 20.85 13 19.47 13Z\";\nexport var mdiFuse = \"M8,7V17H15V7H8M11.16,16V12.87H9.41L11.91,8V11.14H13.59L11.16,16M16,2V6H7V2A1,1 0 0,1 8,1H15A1,1 0 0,1 16,2M16,18V22A1,1 0 0,1 15,23H8A1,1 0 0,1 7,22V18H16Z\";\nexport var mdiFuseAlert = \"M6 7V17H13V7H6M9.16 16V12.87H7.41L9.91 8V11.14H11.59L9.16 16M14 2V6H5V2C5 1.45 5.45 1 6 1H13C13.55 1 14 1.45 14 2M14 18V22C14 22.55 13.55 23 13 23H6C5.45 23 5 22.55 5 22V18H14M19 13H17V7H19V13M19 17H17V15H19V17Z\";\nexport var mdiFuseBlade = \"M10,21H8L6,19V16H10V21M18,16H14V21H16L18,19V16M3,3V4A1,1 0 0,0 4,5V14A1,1 0 0,0 5,15H19A1,1 0 0,0 20,14V5H20A1,1 0 0,0 21,4V3H3M11.83,13V9.73H10L12.61,4.66V7.93H14.36L11.83,13Z\";\nexport var mdiFuseOff = \"M15 11.8L10.2 7H15V11.8M16 6V2C16 1.45 15.55 1 15 1H8C7.45 1 7 1.45 7 2V3.8L9.2 6H16M2.39 1.73L1.11 3L8 9.89V17H15.11L20.84 22.73L22.11 21.46L2.39 1.73M7 22C7 22.55 7.45 23 8 23H15C15.55 23 16 22.55 16 22V18H7V22Z\";\nexport var mdiGamepad = \"M16.5,9L13.5,12L16.5,15H22V9M9,16.5V22H15V16.5L12,13.5M7.5,9H2V15H7.5L10.5,12M15,7.5V2H9V7.5L12,10.5L15,7.5Z\";\nexport var mdiGamepadCircle = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8Z\";\nexport var mdiGamepadCircleDown = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8M12,3A2,2 0 0,0 10,5A2,2 0 0,0 12,7A2,2 0 0,0 14,5A2,2 0 0,0 12,3M5,10A2,2 0 0,0 3,12A2,2 0 0,0 5,14A2,2 0 0,0 7,12A2,2 0 0,0 5,10M19,10A2,2 0 0,0 17,12A2,2 0 0,0 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10Z\";\nexport var mdiGamepadCircleLeft = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8M19,10A2,2 0 0,0 17,12A2,2 0 0,0 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10M12,17A2,2 0 0,0 10,19A2,2 0 0,0 12,21A2,2 0 0,0 14,19A2,2 0 0,0 12,17M12,3A2,2 0 0,0 10,5A2,2 0 0,0 12,7A2,2 0 0,0 14,5A2,2 0 0,0 12,3Z\";\nexport var mdiGamepadCircleOutline = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M5,10A2,2 0 0,0 3,12A2,2 0 0,0 5,14A2,2 0 0,0 7,12A2,2 0 0,0 5,10M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,3A2,2 0 0,0 10,5A2,2 0 0,0 12,7A2,2 0 0,0 14,5A2,2 0 0,0 12,3M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M12,17A2,2 0 0,0 10,19A2,2 0 0,0 12,21A2,2 0 0,0 14,19A2,2 0 0,0 12,17M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8M19,10A2,2 0 0,0 17,12A2,2 0 0,0 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10Z\";\nexport var mdiGamepadCircleRight = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8M12,3A2,2 0 0,0 10,5A2,2 0 0,0 12,7A2,2 0 0,0 14,5A2,2 0 0,0 12,3M5,10A2,2 0 0,0 3,12A2,2 0 0,0 5,14A2,2 0 0,0 7,12A2,2 0 0,0 5,10M12,17A2,2 0 0,0 10,19A2,2 0 0,0 12,21A2,2 0 0,0 14,19A2,2 0 0,0 12,17Z\";\nexport var mdiGamepadCircleUp = \"M5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8M12,1A4,4 0 0,1 16,5A4,4 0 0,1 12,9A4,4 0 0,1 8,5A4,4 0 0,1 12,1M12,15A4,4 0 0,1 16,19A4,4 0 0,1 12,23A4,4 0 0,1 8,19A4,4 0 0,1 12,15M19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A4,4 0 0,1 15,12A4,4 0 0,1 19,8M5,10A2,2 0 0,0 3,12A2,2 0 0,0 5,14A2,2 0 0,0 7,12A2,2 0 0,0 5,10M19,10A2,2 0 0,0 17,12A2,2 0 0,0 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10M12,17A2,2 0 0,0 10,19A2,2 0 0,0 12,21A2,2 0 0,0 14,19A2,2 0 0,0 12,17Z\";\nexport var mdiGamepadDown = \"M9,2V7.5L12,10.5L15,7.5V2H9M2,9V15H7.5L10.5,12L7.5,9H2M16.5,9L13.5,12L16.5,15H22V9H16.5M12,13.5L9,16.5V22H15V16.5L12,13.5M11,18H13V20H11V18Z\";\nexport var mdiGamepadLeft = \"M9,2V7.5L12,10.5L15,7.5V2H9M2,9V15H7.5L10.5,12L7.5,9H2M16.5,9L13.5,12L16.5,15H22V9H16.5M4,11H6V13H4V11M12,13.5L9,16.5V22H15V16.5L12,13.5Z\";\nexport var mdiGamepadOutline = \"M7.5 9H2V15H7.5L10.5 12L7.5 9M6 13H4V11H6V13M15 7.5V2H9V7.5L12 10.5L15 7.5M11 4H13V6H11V4M9 16.5V22H15V16.5L12 13.5L9 16.5M13 20H11V18H13V20M16.5 9L13.5 12L16.5 15H22V9H16.5M20 13H18V11H20V13Z\";\nexport var mdiGamepadRight = \"M9,2V7.5L12,10.5L15,7.5V2H9M2,9V15H7.5L10.5,12L7.5,9H2M16.5,9L13.5,12L16.5,15H22V9H16.5M18,11H20V13H18V11M12,13.5L9,16.5V22H15V16.5L12,13.5Z\";\nexport var mdiGamepadRound = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8Z\";\nexport var mdiGamepadRoundDown = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8M10,16V20H14V16H10Z\";\nexport var mdiGamepadRoundLeft = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8M4,10V14H8V10H4Z\";\nexport var mdiGamepadRoundOutline = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8M4,10V14H10V20H14V14H20V10H14V4H10V10H4Z\";\nexport var mdiGamepadRoundRight = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8M16,10V14H20V10H16Z\";\nexport var mdiGamepadRoundUp = \"M4,8H8V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V8H20A2,2 0 0,1 22,10V14A2,2 0 0,1 20,16H16V20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8M10,4V8H14V4H10Z\";\nexport var mdiGamepadSquare = \"M21,6H3A2,2 0 0,0 1,8V16A2,2 0 0,0 3,18H21A2,2 0 0,0 23,16V8A2,2 0 0,0 21,6M11,13H8V16H6V13H3V11H6V8H8V11H11M15.5,15A1.5,1.5 0 0,1 14,13.5A1.5,1.5 0 0,1 15.5,12A1.5,1.5 0 0,1 17,13.5A1.5,1.5 0 0,1 15.5,15M19.5,12A1.5,1.5 0 0,1 18,10.5A1.5,1.5 0 0,1 19.5,9A1.5,1.5 0 0,1 21,10.5A1.5,1.5 0 0,1 19.5,12Z\";\nexport var mdiGamepadSquareOutline = \"M21,6H3A2,2 0 0,0 1,8V16A2,2 0 0,0 3,18H21A2,2 0 0,0 23,16V8A2,2 0 0,0 21,6M21,16H3V8H21M6,15H8V13H10V11H8V9H6V11H4V13H6M14.5,12A1.5,1.5 0 0,1 16,13.5A1.5,1.5 0 0,1 14.5,15A1.5,1.5 0 0,1 13,13.5A1.5,1.5 0 0,1 14.5,12M18.5,9A1.5,1.5 0 0,1 20,10.5A1.5,1.5 0 0,1 18.5,12A1.5,1.5 0 0,1 17,10.5A1.5,1.5 0 0,1 18.5,9Z\";\nexport var mdiGamepadUp = \"M9,2V7.5L12,10.5L15,7.5V2H9M11,4H13V6H11V4M2,9V15H7.5L10.5,12L7.5,9H2M16.5,9L13.5,12L16.5,15H22V9H16.5M12,13.5L9,16.5V22H15V16.5L12,13.5Z\";\nexport var mdiGamepadVariant = \"M7,6H17A6,6 0 0,1 23,12A6,6 0 0,1 17,18C15.22,18 13.63,17.23 12.53,16H11.47C10.37,17.23 8.78,18 7,18A6,6 0 0,1 1,12A6,6 0 0,1 7,6M6,9V11H4V13H6V15H8V13H10V11H8V9H6M15.5,12A1.5,1.5 0 0,0 14,13.5A1.5,1.5 0 0,0 15.5,15A1.5,1.5 0 0,0 17,13.5A1.5,1.5 0 0,0 15.5,12M18.5,9A1.5,1.5 0 0,0 17,10.5A1.5,1.5 0 0,0 18.5,12A1.5,1.5 0 0,0 20,10.5A1.5,1.5 0 0,0 18.5,9Z\";\nexport var mdiGamepadVariantOutline = \"M6,9H8V11H10V13H8V15H6V13H4V11H6V9M18.5,9A1.5,1.5 0 0,1 20,10.5A1.5,1.5 0 0,1 18.5,12A1.5,1.5 0 0,1 17,10.5A1.5,1.5 0 0,1 18.5,9M15.5,12A1.5,1.5 0 0,1 17,13.5A1.5,1.5 0 0,1 15.5,15A1.5,1.5 0 0,1 14,13.5A1.5,1.5 0 0,1 15.5,12M17,5A7,7 0 0,1 24,12A7,7 0 0,1 17,19C15.04,19 13.27,18.2 12,16.9C10.73,18.2 8.96,19 7,19A7,7 0 0,1 0,12A7,7 0 0,1 7,5H17M7,7A5,5 0 0,0 2,12A5,5 0 0,0 7,17C8.64,17 10.09,16.21 11,15H13C13.91,16.21 15.36,17 17,17A5,5 0 0,0 22,12A5,5 0 0,0 17,7H7Z\";\nexport var mdiGamma = \"M11.76 19C12.92 19 13.58 18 13.58 16.29C13.58 15.2 13.5 13.88 13.3 12.67L18 5H15.28L12.71 9.82L12.55 9.33C11.83 7.19 10.82 5 8.68 5C8 5 7.45 5.18 7 5.54C6 6.39 6 8 6 8.5H6.91C6.97 8.06 7.21 6.83 8.25 6.83C10 6.83 10.8 10 11.4 12.42C10.5 14.58 10 16.14 10 16.97C10 17.95 10.56 19 11.76 19\";\nexport var mdiGantryCrane = \"M21,6H22V4H21V3H18V4H6V3H3V4H2V6H3V20H2V22H7V20H6V6H11V7H11.5V10.62C11,10.79 10.69,11.25 10.69,11.76C10.69,12.2 10.92,12.6 11.3,12.82V14H11.92C12.26,14 12.54,14.27 12.55,14.61C12.55,14.96 12.28,15.24 11.93,15.24C11.71,15.24 11.5,15.12 11.39,14.93C11.22,14.64 10.84,14.54 10.55,14.71C10.26,14.87 10.15,15.25 10.32,15.55C10.65,16.12 11.26,16.47 11.92,16.47C12.94,16.46 13.76,15.62 13.75,14.6C13.74,13.83 13.26,13.14 12.53,12.88V12.82C13.12,12.5 13.34,11.78 13.03,11.2C12.92,11 12.74,10.81 12.53,10.7V7H13V6H18V20H17V22H22V20H21V6M5,15.29V16.71L4,17.71V16.29L5,15.29M4,20V19.24L5,18.24V19.66L4.66,20H4M4,7.29L5,6.29V7.71L4,8.71V7.29M4,10.29L5,9.29V10.71L4,11.71V10.29M4,13.29L5,12.29V13.71L4,14.71V13.24L4,13.29M20,15.29V16.71L19,17.71V16.29L20,15.29M19,20V19.24L20,18.24V19.66L19.66,20H19M19,7.29L20,6.29V7.71L19,8.71V7.29M19,10.29L20,9.29V10.71L19,11.71V10.29M19,13.29L20,12.29V13.71L19,14.71V13.24L19,13.29Z\";\nexport var mdiGarage = \"M19,20H17V11H7V20H5V9L12,5L19,9V20M8,12H16V14H8V12M8,15H16V17H8V15M16,18V20H8V18H16Z\";\nexport var mdiGarageAlert = \"M17,20H15V11H5V20H3V9L10,5L17,9V20M6,12H14V14H6V12M6,15H14V17H6V15M19,15V10H21V15H19M19,19V17H21V19H19Z\";\nexport var mdiGarageAlertVariant = \"M20 9V20H18V11H2V20H0V9L10 5L20 9M17 12H3V14H17V12M17 15H3V17H17V15M22 15V10H24V15H22M22 19V17H24V19H22Z\";\nexport var mdiGarageLock = \"M20.8 16V14.5C20.8 13.1 19.4 12 18 12S15.2 13.1 15.2 14.5V16C14.6 16 14 16.6 14 17.2V20.7C14 21.4 14.6 22 15.2 22H20.7C21.4 22 22 21.4 22 20.8V17.3C22 16.6 21.4 16 20.8 16M19.5 16H16.5V14.5C16.5 13.7 17.2 13.2 18 13.2S19.5 13.7 19.5 14.5V16M5 12H13V14H5V12M5 15H12.95C12.42 15.54 12.08 16.24 12 17H5V15M12 20H5V18H12V20M14 11H4V20H2V9L9 5L16 9V10.44C15.19 10.8 14.5 11.36 14 12.06V11Z\";\nexport var mdiGarageOpen = \"M19,20H17V11H7V20H5V9L12,5L19,9V20M8,12H16V14H8V12Z\";\nexport var mdiGarageOpenVariant = \"M22 9V20H20V11H4V20H2V9L12 5L22 9M19 12H5V14H19V12Z\";\nexport var mdiGarageVariant = \"M22 9V20H20V11H4V20H2V9L12 5L22 9M19 12H5V14H19V12M19 18H5V20H19V18M19 15H5V17H19V15Z\";\nexport var mdiGarageVariantLock = \"M21.8 16V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16M20.5 16H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V16M5 12H15.04C14.61 12.59 14.35 13.27 14.26 14H5V12M16.06 11H4V20H2V9L12 5L22 9V11.04C21.17 10.4 20.13 10 19 10C17.9 10 16.88 10.39 16.06 11M13 20H5V18H13V20M5 15H13.95C13.42 15.54 13.08 16.24 13 17H5V15Z\";\nexport var mdiGasBurner = \"M16.14 8.79L16.12 8.8C16.35 9.07 16.55 9.39 16.7 9.72L16.79 9.91C17.5 11.6 17 13.55 15.69 14.77C14.5 15.86 12.84 16.15 11.3 15.95C9.84 15.77 8.5 14.85 7.73 13.58C7.5 13.19 7.3 12.75 7.2 12.3C7.07 11.93 7.03 11.57 7 11.2C6.91 9.6 7.55 7.9 8.76 6.9C8.21 8.11 8.34 9.62 9.15 10.67L9.26 10.8C9.4 10.92 9.57 10.96 9.73 10.89C9.88 10.83 10 10.68 10 10.5L9.93 10.28C9.05 7.96 9.79 5.25 11.66 3.72C12.17 3.3 12.8 2.92 13.46 2.75C12.78 4.11 13 5.89 14.09 6.96C14.55 7.43 15.1 7.74 15.58 8.18L16.14 8.79M13.86 13.43L13.85 13.42C14.3 13.03 14.55 12.36 14.53 11.76L14.5 11.44C14.3 10.44 13.43 10.11 12.87 9.38C12.7 9.16 12.55 8.88 12.44 8.6C12.22 9.1 12.2 9.57 12.29 10.11C12.39 10.68 12.62 11.17 12.5 11.76C12.34 12.41 11.83 13.06 10.94 13.27C11.44 13.76 12.25 14.15 13.06 13.87C13.32 13.8 13.65 13.61 13.86 13.43M11 18V19C11 19.55 11.45 20 12 20C12.55 20 13 19.55 13 19V18H15V19C15 19.55 15.45 20 16 20C16.55 20 17 19.55 17 19V18C18.11 18 20 18.9 20 20V22H4V20C4 18.9 5.9 18 7 18V19C7 19.55 7.45 20 8 20C8.55 20 9 19.55 9 19V18H11Z\";\nexport var mdiGasCylinder = \"M16,9V14L16,20A2,2 0 0,1 14,22H10A2,2 0 0,1 8,20V14L8,9C8,7.14 9.27,5.57 11,5.13V4H9V2H15V4H13V5.13C14.73,5.57 16,7.14 16,9Z\";\nexport var mdiGasStation = \"M18,10A1,1 0 0,1 17,9A1,1 0 0,1 18,8A1,1 0 0,1 19,9A1,1 0 0,1 18,10M12,10H6V5H12M19.77,7.23L19.78,7.22L16.06,3.5L15,4.56L17.11,6.67C16.17,7 15.5,7.93 15.5,9A2.5,2.5 0 0,0 18,11.5C18.36,11.5 18.69,11.42 19,11.29V18.5A1,1 0 0,1 18,19.5A1,1 0 0,1 17,18.5V14C17,12.89 16.1,12 15,12H14V5C14,3.89 13.1,3 12,3H6C4.89,3 4,3.89 4,5V21H14V13.5H15.5V18.5A2.5,2.5 0 0,0 18,21A2.5,2.5 0 0,0 20.5,18.5V9C20.5,8.31 20.22,7.68 19.77,7.23Z\";\nexport var mdiGasStationInUse = \"M17 18.5V8.5C17 7.81 17.28 7.18 17.73 6.73L17.72 6.72L21.44 3L22.5 4.06L20.39 6.17C21.33 6.5 22 7.43 22 8.5C22 8.83 21.94 9.15 21.81 9.46C21.68 9.76 21.5 10.04 21.27 10.27C20.8 10.74 20.16 11 19.5 11C19.14 11 18.81 10.92 18.5 10.79V18.5C18.5 18.83 18.43 19.15 18.31 19.46C18.18 19.76 18 20.04 17.77 20.27C17.54 20.5 17.26 20.69 16.96 20.81C16.65 20.94 16.33 21 16 21C15.34 21 14.7 20.74 14.23 20.27C13.76 19.8 13.5 19.16 13.5 18.5V13.5H12V21H2V5C2 3.89 2.89 3 4 3H10C11.1 3 12 3.89 12 5V12H13C14.1 12 15 12.89 15 14V18.5C15 18.77 15.11 19 15.29 19.21C15.5 19.4 15.74 19.5 16 19.5C16.27 19.5 16.5 19.4 16.71 19.21C16.9 19 17 18.77 17 18.5M10 10V5H4V10H10M19.5 9.5C19.77 9.5 20 9.4 20.21 9.21C20.4 9 20.5 8.77 20.5 8.5C20.5 8.24 20.4 8 20.21 7.79C20 7.61 19.77 7.5 19.5 7.5C19.24 7.5 19 7.61 18.79 7.79C18.61 8 18.5 8.24 18.5 8.5C18.5 8.77 18.61 9 18.79 9.21C19 9.4 19.24 9.5 19.5 9.5Z\";\nexport var mdiGasStationInUseOutline = \"M17.73 6.73C17.28 7.17999 17 7.81 17 8.5V18.5C17 18.7652 16.8946 19.0196 16.7071 19.2071C16.5196 19.3946 16.2652 19.5 16 19.5C15.7348 19.5 15.4804 19.3946 15.2929 19.2071C15.1054 19.0196 15 18.7652 15 18.5V14C15 12.89 14.1 12 13 12H12V5C12 3.89 11.1 3 10 3H4C2.89 3 2 3.89 2 5V21H12V13.5H13.5V18.5C13.5 19.163 13.7634 19.7989 14.2322 20.2678C14.7011 20.7366 15.337 21 16 21C16.3283 21 16.6534 20.9353 16.9567 20.8097C17.26 20.6841 17.5356 20.4999 17.7678 20.2678C17.9999 20.0356 18.1841 19.76 18.3097 19.4567C18.4353 19.1534 18.5 18.8283 18.5 18.5V10.79C18.81 10.92 19.14 11 19.5 11C20.163 11 20.7989 10.7366 21.2678 10.2678C21.4999 10.0356 21.6841 9.76003 21.8097 9.45671C21.9353 9.1534 22 8.82831 22 8.5C22 7.42999 21.33 6.5 20.39 6.17L22.5 4.06L21.44 3L17.72 6.72L17.73 6.73ZM4 10V5H10V10H4ZM20.2071 9.20711C20.0196 9.39464 19.7652 9.5 19.5 9.5C19.2348 9.5 18.9804 9.39464 18.7929 9.20711C18.6054 9.01958 18.5 8.76521 18.5 8.5C18.5 8.23479 18.6054 7.98042 18.7929 7.79289C18.9804 7.60536 19.2348 7.5 19.5 7.5C19.7652 7.5 20.0196 7.60536 20.2071 7.79289C20.3946 7.98042 20.5 8.23479 20.5 8.5C20.5 8.76521 20.3946 9.01958 20.2071 9.20711ZM10 12V19H4V12H10Z\";\nexport var mdiGasStationOff = \"M1 4.27L2.28 3L21 21.72L19.73 23L17.71 21C16.56 20.85 15.65 19.94 15.5 18.78L14 17.27V21H4V7.27L1 4.27M18 10C18.55 10 19 9.55 19 9C19 8.45 18.55 8 18 8C17.45 8 17 8.45 17 9C17 9.55 17.45 10 18 10M12 10V5H6.82L5.06 3.23C5.34 3.08 5.66 3 6 3H12C13.1 3 14 3.89 14 5V12H15C16.1 12 17 12.89 17 14V15.18L11.82 10H12M6 10H6.73L6 9.27V10M19.77 7.23C20.22 7.68 20.5 8.31 20.5 9L20.5 18.67L19 17.18V11.29C18.69 11.42 18.36 11.5 18 11.5C16.62 11.5 15.5 10.38 15.5 9C15.5 7.93 16.17 7.03 17.11 6.67L15 4.56L16.06 3.5L19.78 7.22L19.77 7.23Z\";\nexport var mdiGasStationOffOutline = \"M1 4.27L2.28 3L6 6.72L21 21.72L19.73 23L17.72 21C16.56 20.85 15.65 19.94 15.5 18.78L14 17.27V21H4V7.27L1 4.27M19.77 7.23C20.22 7.68 20.5 8.31 20.5 9L20.5 18.67L19 17.18V11.29C18.69 11.42 18.36 11.5 18 11.5C16.62 11.5 15.5 10.38 15.5 9C15.5 7.93 16.17 7.03 17.11 6.67L15 4.56L16.06 3.5L19.78 7.22L19.77 7.23M11.82 10H12V5H6.82L5.06 3.24C5.34 3.09 5.66 3 6 3H12C13.1 3 14 3.9 14 5V12H15C16.1 12 17 12.9 17 14V15.18L11.82 10M6 10H6.73L6 9.27V10M6 12V19H12V15.27L8.73 12H6M18 10C18.55 10 19 9.55 19 9C19 8.45 18.55 8 18 8C17.45 8 17 8.45 17 9C17 9.55 17.45 10 18 10Z\";\nexport var mdiGasStationOutline = \"M19.77,7.23L19.78,7.22L16.06,3.5L15,4.56L17.11,6.67C16.17,7.03 15.5,7.93 15.5,9A2.5,2.5 0 0,0 18,11.5C18.36,11.5 18.69,11.42 19,11.29V18.5A1,1 0 0,1 18,19.5A1,1 0 0,1 17,18.5V14A2,2 0 0,0 15,12H14V5A2,2 0 0,0 12,3H6A2,2 0 0,0 4,5V21H14V13.5H15.5V18.5A2.5,2.5 0 0,0 18,21A2.5,2.5 0 0,0 20.5,18.5V9C20.5,8.31 20.22,7.68 19.77,7.23M12,13.5V19H6V12H12V13.5M12,10H6V5H12V10M18,10A1,1 0 0,1 17,9A1,1 0 0,1 18,8A1,1 0 0,1 19,9A1,1 0 0,1 18,10Z\";\nexport var mdiGate = \"M9 6V11H7V7H5V11H3V9H1V21H3V19H5V21H7V19H9V21H11V19H13V21H15V19H17V21H19V19H21V21H23V9H21V11H19V7H17V11H15V6H13V11H11V6H9M3 13H5V17H3V13M7 13H9V17H7V13M11 13H13V17H11V13M15 13H17V17H15V13M19 13H21V17H19V13Z\";\nexport var mdiGateAlert = \"M21 17H19V19H21V17M21 9H19V15H21V9M17 13V11H15V6H13V11H11V6H9V11H7V7H5V11H3V9H1V21H3V19H5V21H7V19H9V21H11V19H13V21H15V19H17V17H15V13H17M5 17H3V13H5V17M9 17H7V13H9V17M13 17H11V13H13V17Z\";\nexport var mdiGateAnd = \"M2,4V20H14A8,8 0 0,0 22,12A8,8 0 0,0 14,4H2M4,6H14A6,6 0 0,1 20,12A6,6 0 0,1 14,18H4V6Z\";\nexport var mdiGateArrowLeft = \"M9 6H7V11H5V6H3V11H2V13H3V14.81C3.62 14.45 4.3 14.21 5 14.09V13H7V14.09C7.7 14.21 8.38 14.45 9 14.81V13H11V16.69C11.65 17.67 12 18.82 12 20C12 20.34 11.97 20.67 11.91 21H13V19H15V21H17V9H15V11H13V7H11V11H9V6M15 13V17H13V13H15M2 20L5 23V21H9V19H5V17L2 20Z\";\nexport var mdiGateArrowRight = \"M15 6V11H13V7H11V11H9V9H7V21H9V19H11V21H12.09C12.03 20.67 12 20.34 12 20C12 18.82 12.35 17.67 13 16.69V13H15V14.81C15.62 14.45 16.3 14.21 17 14.09V13H19V14.09C19.7 14.21 20.38 14.45 21 14.81V13H22V11H21V6H19V11H17V6H15M9 13H11V17H9V13M19 17V19H15V21H19V23L22 20L19 17Z\";\nexport var mdiGateBuffer = \"M6 7.24L15.53 12L6 16.76V7.24M4 4V20L20 12L4 4Z\";\nexport var mdiGateNand = \"M2,4V20H10C13.43,20 16.5,17.84 17.6,14.6C18,14.8 18.5,15 19,15A3,3 0 0,0 22,12A3,3 0 0,0 19,9C18.5,9 18.03,9.15 17.6,9.4C16.5,6.16 13.43,4 10,4H2M4,6H10A6,6 0 0,1 16,12A6,6 0 0,1 10,18H4V6M19,11C19.5,11 20,11.5 20,12C20,12.5 19.5,13 19,13A1,1 0 0,1 18,12C18,11.5 18.5,11 19,11Z\";\nexport var mdiGateNor = \"M2,4C5,10 5,14 2,20H5C9.4,20 13,17.7 16.6,13.7C17.15,14.5 18.04,15 19,15A3,3 0 0,0 22,12A3,3 0 0,0 19,9C18.04,9 17.15,9.5 16.6,10.3C13,6.3 9.4,4 5,4H2M5,6C8.8,6 12,8.1 15.3,12C12,15.9 8.8,18 5,18C6.5,14 6.5,10 5,6M19,11C19.5,11 20,11.5 20,12C20,12.5 19.5,13 19,13A1,1 0 0,1 18,12C18,11.5 18.5,11 19,11Z\";\nexport var mdiGateNot = \"M2,4V20L16.2,13C16.62,14.19 17.74,15 19,15A3,3 0 0,0 22,12A3,3 0 0,0 19,9C17.74,9 16.62,9.81 16.2,11L2,4M4,7.3L13.7,12L4,16.7V7.3M19,11C19.5,11 20,11.5 20,12C20,12.5 19.5,13 19,13A1,1 0 0,1 18,12C18,11.5 18.5,11 19,11Z\";\nexport var mdiGateOpen = \"M7 21V7H5V11H3V9H1V21H3V19H5V21H7M3 17V13H5V17H3M21 9V11H19V7H17V21H19V19H21V21H23V9H21M21 17H19V13H21V17Z\";\nexport var mdiGateOr = \"M2,4C5,10 5,14 2,20H8C13,20 19,16 22,12C19,8 13,4 8,4H2M5,6H8C11.5,6 16.3,9 19.3,12C16.3,15 11.5,18 8,18H5C6.4,13.9 6.4,10.1 5,6Z\";\nexport var mdiGateXnor = \"M2,4C5,10 5,14 2,20H4C7,14 7,10 4.1,4H2M6,4C9,10 9,14 6,20H9C12.2,20 14.8,16.8 16.7,14C17.28,14.65 18.12,15 19,15A3,3 0 0,0 22,12A3,3 0 0,0 19,9C18.12,9 17.28,9.35 16.7,10C14.7,7.2 12.2,4 9,4H6M9,6C12,6 14,10 15.5,12C14,14 12,18 9,18C10.6,14 10.6,10 9,6M19,11C19.5,11 20,11.5 20,12C20,12.5 19.5,13 19,13A1,1 0 0,1 18,12C18,11.5 18.5,11 19,11Z\";\nexport var mdiGateXor = \"M2,4C5,10 5,14 2,20H4C7,14 7,10 4.1,4H2M6,4C9,10 9,14 6,20H9C14,20 18,17 22,12C18,7 14,4 9,4H6M9,6C12.8,6 16,8.1 19.3,12C15.9,15.9 12.8,18 9,18C10.5,14 10.5,10 9,6Z\";\nexport var mdiGatsby = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4C8.27,4 5.14,6.55 4.25,10L14,19.75C17.45,18.86 20,15.73 20,12H14.75V13.5H18.2C17.71,15.54 16.24,17.19 14.31,17.94L6.06,9.69C7,7.31 9.3,5.63 12,5.63C14.13,5.63 16,6.67 17.18,8.28L18.41,7.22C16.95,5.26 14.63,4 12,4M4,12A8,8 0 0,0 12,20C12.04,20 12.09,20 4,12Z\";\nexport var mdiGauge = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M14,5.89C13.62,5.9 13.26,6.15 13.1,6.54L11.81,9.77L11.71,10C11,10.13 10.41,10.6 10.14,11.26C9.73,12.29 10.23,13.45 11.26,13.86C12.29,14.27 13.45,13.77 13.86,12.74C14.12,12.08 14,11.32 13.57,10.76L13.67,10.5L14.96,7.29L14.97,7.26C15.17,6.75 14.92,6.17 14.41,5.96C14.28,5.91 14.15,5.89 14,5.89M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9M17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9Z\";\nexport var mdiGaugeEmpty = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.4 5,16.5 6.7,18C8.1,16.7 10,16 12,16C14,16 15.8,16.7 17.3,18C19,16.5 20,14.4 20,12A8,8 0 0,0 12,4M14,6A1,1 0 0,1 15,7A1,1 0 0,1 14,8A1,1 0 0,1 13,7A1,1 0 0,1 14,6M10,6A1,1 0 0,1 11,7A1,1 0 0,1 10,8A1,1 0 0,1 9,7A1,1 0 0,1 10,6M6.91,8.94C7.04,8.94 7.16,8.97 7.3,9L10.5,10.32L10.77,10.43C11.33,10 12.09,9.88 12.75,10.15C13.77,10.56 14.27,11.73 13.85,12.75C13.44,13.77 12.27,14.27 11.25,13.85C10.59,13.59 10.12,13 10,12.28L9.77,12.18L6.55,10.88L6.53,10.87C6,10.66 5.77,10.08 5.97,9.56C6.13,9.18 6.5,8.93 6.91,8.94V8.94M17,9A1,1 0 0,1 18,10A1,1 0 0,1 17,11A1,1 0 0,1 16,10A1,1 0 0,1 17,9Z\";\nexport var mdiGaugeFull = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M14,6A1,1 0 0,0 13,7A1,1 0 0,0 14,8A1,1 0 0,0 15,7A1,1 0 0,0 14,6M17.09,8.94C16.96,8.94 16.84,8.97 16.7,9L13.5,10.32L13.23,10.43C12.67,10 11.91,9.88 11.25,10.15C10.23,10.56 9.73,11.73 10.15,12.75C10.56,13.77 11.73,14.27 12.75,13.85C13.41,13.59 13.88,13 14,12.28L14.23,12.18L17.45,10.88L17.47,10.87C18,10.66 18.23,10.08 18.03,9.56C17.87,9.18 17.5,8.93 17.09,8.94M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9Z\";\nexport var mdiGaugeLow = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.4 5,16.5 6.7,18C8.1,16.7 10,16 12,16C14,16 15.8,16.7 17.3,18C19,16.5 20,14.4 20,12A8,8 0 0,0 12,4M10,5.89C10.38,5.9 10.74,6.15 10.9,6.54L12.19,9.77L12.29,10C13,10.13 13.59,10.6 13.86,11.26C14.27,12.29 13.77,13.45 12.74,13.86C11.71,14.27 10.55,13.77 10.14,12.74C9.88,12.08 10,11.32 10.43,10.76L10.33,10.5L9.04,7.29L9.03,7.26C8.83,6.75 9.08,6.17 9.59,5.96C9.72,5.91 9.85,5.89 10,5.89V5.89M14,6A1,1 0 0,1 15,7A1,1 0 0,1 14,8A1,1 0 0,1 13,7A1,1 0 0,1 14,6M17,9A1,1 0 0,1 18,10A1,1 0 0,1 17,11A1,1 0 0,1 16,10A1,1 0 0,1 17,9M7,9A1,1 0 0,1 8,10A1,1 0 0,1 7,11A1,1 0 0,1 6,10A1,1 0 0,1 7,9Z\";\nexport var mdiGavel = \"M2.3,20.28L11.9,10.68L10.5,9.26L9.78,9.97C9.39,10.36 8.76,10.36 8.37,9.97L7.66,9.26C7.27,8.87 7.27,8.24 7.66,7.85L13.32,2.19C13.71,1.8 14.34,1.8 14.73,2.19L15.44,2.9C15.83,3.29 15.83,3.92 15.44,4.31L14.73,5L16.15,6.43C16.54,6.04 17.17,6.04 17.56,6.43C17.95,6.82 17.95,7.46 17.56,7.85L18.97,9.26L19.68,8.55C20.07,8.16 20.71,8.16 21.1,8.55L21.8,9.26C22.19,9.65 22.19,10.29 21.8,10.68L16.15,16.33C15.76,16.72 15.12,16.72 14.73,16.33L14.03,15.63C13.63,15.24 13.63,14.6 14.03,14.21L14.73,13.5L13.32,12.09L3.71,21.7C3.32,22.09 2.69,22.09 2.3,21.7C1.91,21.31 1.91,20.67 2.3,20.28M20,19A2,2 0 0,1 22,21V22H12V21A2,2 0 0,1 14,19H20Z\";\nexport var mdiGenderFemale = \"M12,4A6,6 0 0,1 18,10C18,12.97 15.84,15.44 13,15.92V18H15V20H13V22H11V20H9V18H11V15.92C8.16,15.44 6,12.97 6,10A6,6 0 0,1 12,4M12,6A4,4 0 0,0 8,10A4,4 0 0,0 12,14A4,4 0 0,0 16,10A4,4 0 0,0 12,6Z\";\nexport var mdiGenderMale = \"M9,9C10.29,9 11.5,9.41 12.47,10.11L17.58,5H13V3H21V11H19V6.41L13.89,11.5C14.59,12.5 15,13.7 15,15A6,6 0 0,1 9,21A6,6 0 0,1 3,15A6,6 0 0,1 9,9M9,11A4,4 0 0,0 5,15A4,4 0 0,0 9,19A4,4 0 0,0 13,15A4,4 0 0,0 9,11Z\";\nexport var mdiGenderMaleFemale = \"M17.58,4H14V2H21V9H19V5.41L15.17,9.24C15.69,10.03 16,11 16,12C16,14.42 14.28,16.44 12,16.9V19H14V21H12V23H10V21H8V19H10V16.9C7.72,16.44 6,14.42 6,12A5,5 0 0,1 11,7C12,7 12.96,7.3 13.75,7.83L17.58,4M11,9A3,3 0 0,0 8,12A3,3 0 0,0 11,15A3,3 0 0,0 14,12A3,3 0 0,0 11,9Z\";\nexport var mdiGenderMaleFemaleVariant = \"M7 3A5 5 0 0 0 9 7A5 5 0 0 0 7 11A5 5 0 0 0 11 15.9V18H9V20H11V22H13V20H15V18H13V15.9A5 5 0 0 0 17 11A5 5 0 0 0 15 7A5 5 0 0 0 17 3H15A3 3 0 0 1 12 6A3 3 0 0 1 9 3M12 8A3 3 0 0 1 15 11A3 3 0 0 1 12 14A3 3 0 0 1 9 11A3 3 0 0 1 12 8Z\";\nexport var mdiGenderNonBinary = \"M13 3H11V5.27L9.04 4.13L8.04 5.87L10 7L8.04 8.13L9.04 9.87L11 8.73V12.1C8.72 12.56 7 14.58 7 17C7 19.76 9.24 22 12 22S17 19.76 17 17C17 14.58 15.28 12.56 13 12.1V8.73L14.96 9.87L15.96 8.13L14 7L15.96 5.87L14.96 4.13L13 5.27V3M12 20C10.35 20 9 18.65 9 17S10.35 14 12 14 15 15.35 15 17 13.65 20 12 20Z\";\nexport var mdiGenderTransgender = \"M19.58,3H15V1H23V9H21V4.41L16.17,9.24C16.69,10.03 17,11 17,12C17,14.42 15.28,16.44 13,16.9V19H15V21H13V23H11V21H9V19H11V16.9C8.72,16.44 7,14.42 7,12C7,11 7.3,10.04 7.82,9.26L6.64,8.07L5.24,9.46L3.83,8.04L5.23,6.65L3,4.42V8H1V1H8V3H4.41L6.64,5.24L8.08,3.81L9.5,5.23L8.06,6.66L9.23,7.84C10,7.31 11,7 12,7C13,7 13.96,7.3 14.75,7.83L19.58,3M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiGeneratorMobile = \"M4 2H2V19C2 20.11 2.9 21 4 21H12.1C12.03 20.68 12 20.34 12 20C12 19.66 12.03 19.32 12.1 19H4V2M13 17C13.91 15.79 15.36 15 17 15C18.64 15 20.09 15.79 21 17H22V6C22 4.89 21.11 4 20 4H8C6.9 4 6 4.89 6 6V17H13M20 6V8H14V6H20M14 10H20V12H14V10M7 11L10 5V9H12L9 15V11H7M14.17 19C14.06 19.31 14 19.65 14 20C14 20.35 14.06 20.69 14.17 21C14.58 22.17 15.7 23 17 23C18.66 23 20 21.66 20 20C20 18.34 18.66 17 17 17C15.69 17 14.58 17.84 14.17 19Z\";\nexport var mdiGeneratorPortable = \"M7 2C5.9 2 5 2.9 5 4V6H4C2.9 6 2 6.9 2 8V20H4V21C4 21.55 4.45 22 5 22H6C6.55 22 7 21.55 7 21V20H17V21C17 21.55 17.45 22 18 22H19C19.55 22 20 21.55 20 21V20H22V8C22 6.9 21.11 6 20 6H19V4C19 2.9 18.11 2 17 2H7M14 10V8H20V10H14M14 14V12H20V14H14M7 4H17V6H7V4M7 8V12H9L6 18V14H4L7 8Z\";\nexport var mdiGeneratorStationary = \"M6 3C4.89 3 4 3.9 4 5V16H6V17C6 17.55 6.45 18 7 18H8C8.55 18 9 17.55 9 17V16H15V17C15 17.55 15.45 18 16 18H17C17.55 18 18 17.55 18 17V16H20V5C20 3.9 19.11 3 18 3H6M12 7V5H18V7H12M12 9H18V11H12V9M8 5V9H10L7 15V11H5L8 5M22 20V22H2V20H22Z\";\nexport var mdiGentoo = \"M10.28,2C9.93,2 9.57,2.03 9.23,2.1C5.61,2.76 3.06,5.89 2.85,7.96C2.74,8.97 3.29,9.73 3.59,10.06C4.4,10.97 6.03,11.66 7.07,12.23C5.56,13.5 4.87,14.14 4.19,14.86C3.17,15.93 2.45,17.1 2.45,17.95C2.45,18.22 2.4,19.09 2.76,19.77C2.89,20.03 3.27,20.89 4.41,21.53C5.14,21.94 6.17,22.09 7.19,21.95C10.33,21.5 14.54,18.83 17.55,16.35C19.46,14.77 20.86,13.23 21.26,12.5C21.59,11.87 21.63,10.78 21.44,10.09C20.9,8.14 16.53,4.15 12.96,2.55C12.14,2.18 11.2,2 10.28,2M11.34,4.91C11.59,4.91 11.81,4.94 12,5C13.15,5.3 15.08,6.68 14.91,7.94C14.68,9.6 13.23,10.27 11.56,10.03C10.58,9.9 8.63,8.8 8.78,6.89C8.89,5.4 10.3,4.9 11.34,4.91M11.32,6.65C11.05,6.65 10.84,6.71 10.74,6.87C10.27,7.59 10.5,8.09 10.92,8.42C11.07,8.04 12.71,8.45 12.75,8.79C14.17,7.72 12.36,6.66 11.32,6.65Z\";\nexport var mdiGesture = \"M4.59,6.89C5.29,6.18 6,5.54 6.3,5.67C6.8,5.87 6.3,6.7 6,7.19C5.75,7.61 3.14,11.08 3.14,13.5C3.14,14.78 3.62,15.84 4.5,16.5C5.23,17.04 6.22,17.21 7.12,16.94C8.19,16.63 9.07,15.54 10.18,14.17C11.39,12.68 13,10.73 14.26,10.73C15.89,10.73 15.91,11.74 16,12.5C12.24,13.16 10.64,16.19 10.64,17.89C10.64,19.59 12.08,21 13.85,21C15.5,21 18.14,19.65 18.54,14.88H21V12.38H18.53C18.38,10.73 17.44,8.18 14.5,8.18C12.25,8.18 10.32,10.09 9.56,11C9,11.75 7.5,13.5 7.27,13.74C7,14.04 6.59,14.58 6.16,14.58C5.71,14.58 5.44,13.75 5.8,12.66C6.15,11.57 7.2,9.8 7.65,9.14C8.43,8 8.95,7.22 8.95,5.86C8.95,3.69 7.31,3 6.44,3C5.12,3 3.97,4 3.72,4.25C3.36,4.61 3.06,4.91 2.84,5.18L4.59,6.89M13.88,18.55C13.57,18.55 13.14,18.29 13.14,17.83C13.14,17.23 13.87,15.63 16,15.07C15.71,17.76 14.58,18.55 13.88,18.55Z\";\nexport var mdiGestureDoubleTap = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M11,5A4,4 0 0,1 15,9C15,10.5 14.2,11.77 13,12.46V11.24C13.61,10.69 14,9.89 14,9A3,3 0 0,0 11,6A3,3 0 0,0 8,9C8,9.89 8.39,10.69 9,11.24V12.46C7.8,11.77 7,10.5 7,9A4,4 0 0,1 11,5M11,3A6,6 0 0,1 17,9C17,10.7 16.29,12.23 15.16,13.33L14.16,12.88C15.28,11.96 16,10.56 16,9A5,5 0 0,0 11,4A5,5 0 0,0 6,9C6,11.05 7.23,12.81 9,13.58V14.66C6.67,13.83 5,11.61 5,9A6,6 0 0,1 11,3Z\";\nexport var mdiGesturePinch = \"M13,9A1,1 0 0,1 14,8A1,1 0 0,1 15,9V13.47L16.21,13.6L21.15,15.8C21.67,16.04 22,16.56 22,17.14V21.5C21.97,22.32 21.32,22.97 20.5,23H14C13.62,23 13.26,22.85 13,22.57L8.1,18.37L8.84,17.6C9.03,17.39 9.3,17.28 9.58,17.28H9.8L13,19V9M14,5C15.42,5 16.74,5.76 17.45,7C18.56,8.9 17.91,11.35 16,12.46V11.23C16.64,10.67 17,9.85 17,9A3,3 0 0,0 14,6A3,3 0 0,0 11,9C11,9.85 11.36,10.67 12,11.23V12.46C10.77,11.75 10,10.43 10,9A4,4 0 0,1 14,5M4,9L7,12H5V15H3V12H1L4,9M4,7L1,4H3V1H5V4H7L4,7M9,14C9.73,14 10.41,14.19 11,14.54V15.76C10.47,15.29 9.77,15 9,15A3,3 0 0,0 6,18C6,19 6.5,19.87 7.22,20.42L9.31,22H9A4,4 0 0,1 5,18A4,4 0 0,1 9,14Z\";\nexport var mdiGestureSpread = \"M4,1L7,4H5V7H3V4H1L4,1M4,15L1,12H3V9H5V12H7L4,15M13,9A1,1 0 0,1 14,8A1,1 0 0,1 15,9V13.47L16.21,13.6L21.15,15.8C21.67,16.04 22,16.56 22,17.14V21.5C21.97,22.32 21.32,22.97 20.5,23H14C13.62,23 13.26,22.85 13,22.57L8.1,18.37L8.84,17.6C9.03,17.39 9.3,17.28 9.58,17.28H9.8L13,19V9M14,5C15.42,5 16.74,5.76 17.45,7C18.56,8.9 17.91,11.35 16,12.46V11.23C16.64,10.67 17,9.85 17,9A3,3 0 0,0 14,6A3,3 0 0,0 11,9C11,9.85 11.36,10.67 12,11.23V12.46C10.77,11.75 10,10.43 10,9A4,4 0 0,1 14,5M9,14C9.73,14 10.41,14.19 11,14.54V15.76C10.47,15.29 9.77,15 9,15A3,3 0 0,0 6,18C6,19 6.5,19.87 7.22,20.42L9.31,22H9A4,4 0 0,1 5,18A4,4 0 0,1 9,14Z\";\nexport var mdiGestureSwipe = \"M20.11,3.89L22,2V7H17L19.08,4.92C18.55,4.23 17.64,3.66 16.36,3.19C15.08,2.72 13.63,2.5 12,2.5C10.38,2.5 8.92,2.72 7.64,3.19C6.36,3.66 5.45,4.23 4.92,4.92L7,7H2V2L3.89,3.89C4.64,3 5.74,2.31 7.2,1.78C8.65,1.25 10.25,1 12,1C13.75,1 15.35,1.25 16.8,1.78C18.26,2.31 19.36,3 20.11,3.89M19.73,16.27V16.45L19,21.7C18.92,22.08 18.76,22.39 18.5,22.64C18.23,22.89 17.91,23 17.53,23H10.73C10.36,23 10,22.86 9.7,22.55L4.73,17.63L5.53,16.83C5.75,16.61 6,16.5 6.33,16.5H6.56L10,17.25V6.5C10,6.11 10.13,5.76 10.43,5.46C10.73,5.16 11.08,5 11.5,5C11.89,5 12.24,5.16 12.54,5.46C12.84,5.76 13,6.11 13,6.5V12.5H13.78C13.88,12.5 14.05,12.55 14.3,12.61L18.84,14.86C19.44,15.14 19.73,15.61 19.73,16.27Z\";\nexport var mdiGestureSwipeDown = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M1,9L4,12L7,9H5V3H3V9H1Z\";\nexport var mdiGestureSwipeHorizontal = \"M6,1L3,4L6,7V5H9V7L12,4L9,1V3H6V1M11,8A1,1 0 0,0 10,9V19L6.8,17.28H6.58C6.3,17.28 6.03,17.39 5.84,17.6L5.1,18.37L10,22.57C10.26,22.85 10.62,23 11,23H17.5A1.5,1.5 0 0,0 19,21.5V17.14C19,16.56 18.68,16.03 18.15,15.79L13.21,13.6L12,13.47V9A1,1 0 0,0 11,8Z\";\nexport var mdiGestureSwipeLeft = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M3,4L6,7V5H12V3H6V1L3,4Z\";\nexport var mdiGestureSwipeRight = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M12,4L9,1V3H3V5H9V7L12,4Z\";\nexport var mdiGestureSwipeUp = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M7,6L4,3L1,6H3V12H5V6H7Z\";\nexport var mdiGestureSwipeVertical = \"M4,3L1,6H3V9H1L4,12L7,9H5V6H7L4,3M11,8A1,1 0 0,0 10,9V19L6.8,17.28H6.58C6.3,17.28 6.03,17.39 5.84,17.6L5.1,18.37L10,22.57C10.26,22.85 10.62,23 11,23H17.5A1.5,1.5 0 0,0 19,21.5V17.14C19,16.56 18.68,16.03 18.15,15.79L13.21,13.6L12,13.47V9A1,1 0 0,0 11,8Z\";\nexport var mdiGestureTap = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M11,5A4,4 0 0,1 15,9C15,10.5 14.2,11.77 13,12.46V11.24C13.61,10.69 14,9.89 14,9A3,3 0 0,0 11,6A3,3 0 0,0 8,9C8,9.89 8.39,10.69 9,11.24V12.46C7.8,11.77 7,10.5 7,9A4,4 0 0,1 11,5Z\";\nexport var mdiGestureTapBox = \"M20 2H4C2.89 2 2 2.89 2 4V20C2 21.11 2.89 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.89 21.11 2 20 2M11 4C13.21 4 15 5.79 15 8C15 9.5 14.2 10.77 13 11.46V10.24C13.61 9.69 14 8.89 14 8C14 6.34 12.66 5 11 5S8 6.34 8 8C8 8.89 8.39 9.69 9 10.24V11.46C7.8 10.77 7 9.5 7 8C7 5.79 8.79 4 11 4M18 18.5C17.97 19.32 17.32 19.97 16.5 20H11C10.62 20 10.26 19.85 10 19.57L6 15.37L6.74 14.6C6.93 14.39 7.2 14.28 7.5 14.28H7.7L10 16V8C10 7.45 10.45 7 11 7S12 7.45 12 8V12.47L13.21 12.6L17.15 14.79C17.68 15.03 18 15.56 18 16.14V18.5Z\";\nexport var mdiGestureTapButton = \"M13 5C15.21 5 17 6.79 17 9C17 10.5 16.2 11.77 15 12.46V11.24C15.61 10.69 16 9.89 16 9C16 7.34 14.66 6 13 6S10 7.34 10 9C10 9.89 10.39 10.69 11 11.24V12.46C9.8 11.77 9 10.5 9 9C9 6.79 10.79 5 13 5M20 20.5C19.97 21.32 19.32 21.97 18.5 22H13C12.62 22 12.26 21.85 12 21.57L8 17.37L8.74 16.6C8.93 16.39 9.2 16.28 9.5 16.28H9.7L12 18V9C12 8.45 12.45 8 13 8S14 8.45 14 9V13.47L15.21 13.6L19.15 15.79C19.68 16.03 20 16.56 20 17.14V20.5M20 2H4C2.9 2 2 2.9 2 4V12C2 13.11 2.9 14 4 14H8V12L4 12L4 4H20L20 12H18V14H20V13.96L20.04 14C21.13 14 22 13.09 22 12V4C22 2.9 21.11 2 20 2Z\";\nexport var mdiGestureTapHold = \"M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M9,12.44V9A2,2 0 0,1 11,7A2,2 0 0,1 13,9V12.44C14.19,11.75 15,10.47 15,9A4,4 0 0,0 11,5A4,4 0 0,0 7,9C7,10.47 7.81,11.75 9,12.44Z\";\nexport var mdiGestureTwoDoubleTap = \"M19,15.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V7A1,1 0 0,1 13,6A1,1 0 0,1 14,7V12L18.15,13.84C18.66,14.07 19,14.58 19,15.14M13,3A4,4 0 0,1 17,7C17,8.5 16.2,9.77 15,10.46V9.24C15.61,8.69 16,7.89 16,7A3,3 0 0,0 13,4C11.65,4 10.5,4.9 10.13,6.13C8.9,6.5 8,7.65 8,9C8,9.89 8.39,10.69 9,11.24V12.46C7.8,11.77 7,10.5 7,9C7,7.38 7.97,6 9.35,5.35C10,3.97 11.38,3 13,3M13,1A6,6 0 0,1 19,7C19,9.06 17.96,10.88 16.38,11.96L15.26,11.46C16.89,10.64 18,8.95 18,7A5,5 0 0,0 13,2C11.11,2 9.46,3.05 8.61,4.61C7.05,5.46 6,7.11 6,9C6,11.05 7.23,12.81 9,13.58V14.66C6.67,13.83 5,11.61 5,9C5,6.83 6.15,4.93 7.88,3.88C8.93,2.15 10.83,1 13,1Z\";\nexport var mdiGestureTwoTap = \"M19,15.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V7A1,1 0 0,1 13,6A1,1 0 0,1 14,7V12L18.15,13.84C18.66,14.07 19,14.58 19,15.14M15,10.45V9.24L15,9.23C15.23,9.03 15.42,8.79 15.57,8.54C15.84,8.09 16,7.56 16,7A3,3 0 0,0 13,4C12.21,4 11.5,4.31 10.95,4.81L10.81,4.95C10.68,5.09 10.56,5.24 10.46,5.4C10.36,5.56 10.27,5.74 10.2,5.92C10.17,6 10.15,6.06 10.13,6.13C8.9,6.5 8,7.65 8,9C8,9.7 8.24,10.34 8.64,10.85C8.74,11 8.87,11.11 9,11.23V11.24L9,12.46V12.46C7.8,11.77 7,10.5 7,9C7,7.38 7.97,6 9.35,5.35C10,3.97 11.38,3 13,3A4,4 0 0,1 17,7C17,8.5 16.2,9.77 15,10.46V10.45Z\";\nexport var mdiGhost = \"M12,2A9,9 0 0,0 3,11V22L6,19L9,22L12,19L15,22L18,19L21,22V11A9,9 0 0,0 12,2M9,8A2,2 0 0,1 11,10A2,2 0 0,1 9,12A2,2 0 0,1 7,10A2,2 0 0,1 9,8M15,8A2,2 0 0,1 17,10A2,2 0 0,1 15,12A2,2 0 0,1 13,10A2,2 0 0,1 15,8Z\";\nexport var mdiGhostOff = \"M2,3.27L3.28,2L22,20.72L20.73,22L17.87,19.13L15,22L12,19L9,22L6,19L3,22V11C3,9.09 3.59,7.33 4.6,5.87L2,3.27M12,2A9,9 0 0,1 21,11V17.18L15.7,11.88C16.46,11.59 17,10.86 17,10A2,2 0 0,0 15,8C14.14,8 13.41,8.54 13.13,9.3L7.2,3.38C8.59,2.5 10.24,2 12,2M7,10A2,2 0 0,0 9,12C9.5,12 9.93,11.83 10.27,11.54L7.46,8.73C7.17,9.07 7,9.5 7,10Z\";\nexport var mdiGhostOffOutline = \"M8.29 5.09L6.84 3.64C8.3 2.61 10.08 2 12 2C16.97 2 21 6.03 21 11V17.8L19 15.8V11C19 7.14 15.86 4 12 4C10.63 4 9.36 4.4 8.29 5.09M22.11 21.46L20.84 22.73L17.56 19.45L15 22L12 19L9 22L6 19L3 22V11C3 9.26 3.5 7.63 4.36 6.25L1.11 3L2.39 1.73L6.89 6.23L8.69 8.03H8.69L10.97 10.31V10.31L17.41 16.76L17.42 16.76L21 20.34V20.35L22.11 21.46M16.14 18.03L9.89 11.78C9.62 11.92 9.32 12 9 12C7.9 12 7 11.11 7 10C7 9.68 7.08 9.38 7.22 9.11L5.82 7.71C5.3 8.69 5 9.81 5 11V17.17L6 16.17L7.41 17.59L9 19.17L10.59 17.59L12 16.17L13.41 17.59L15 19.17L16.14 18.03M15 8C13.96 8 13.11 8.8 13 9.82L15.18 12C16.2 11.89 17 11.04 17 10C17 8.9 16.11 8 15 8Z\";\nexport var mdiGhostOutline = \"M12 2C7.03 2 3 6.03 3 11V22L6 19L9 22L12 19L15 22L18 19L21 22V11C21 6.03 16.97 2 12 2M19 17.17L18 16.17L16.59 17.59L15 19.17L13.41 17.59L12 16.17L10.59 17.59L9 19.17L7.41 17.59L6 16.17L5 17.17V11C5 7.14 8.14 4 12 4S19 7.14 19 11V17.17M11 10C11 11.11 10.11 12 9 12S7 11.11 7 10 7.9 8 9 8 11 8.9 11 10M17 10C17 11.11 16.11 12 15 12S13 11.11 13 10 13.9 8 15 8 17 8.9 17 10Z\";\nexport var mdiGift = \"M9.06,1.93C7.17,1.92 5.33,3.74 6.17,6H3A2,2 0 0,0 1,8V10A1,1 0 0,0 2,11H11V8H13V11H22A1,1 0 0,0 23,10V8A2,2 0 0,0 21,6H17.83C19,2.73 14.6,0.42 12.57,3.24L12,4L11.43,3.22C10.8,2.33 9.93,1.94 9.06,1.93M9,4C9.89,4 10.34,5.08 9.71,5.71C9.08,6.34 8,5.89 8,5A1,1 0 0,1 9,4M15,4C15.89,4 16.34,5.08 15.71,5.71C15.08,6.34 14,5.89 14,5A1,1 0 0,1 15,4M2,12V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V12H13V20H11V12H2Z\";\nexport var mdiGiftOff = \"M1.11 3L4.14 6.04H3C1.9 6.04 1 6.93 1 8.04V10.04C1 10.59 1.45 11.04 2 11.04H9.15L10.15 12.04H2V20.04C2 21.14 2.9 22.04 4 22.04H20C20.05 22.04 20.09 22.03 20.13 22L21.56 23.45L22.83 22.18L2.39 1.73L1.11 3M11 12.89L13 14.89V20.04H11V12.89M22 12.04V18.8L15.24 12.04H22M21 6.04H17.83C19 2.77 14.6 .455 12.57 3.28L12 4.04L11.43 3.26C10.8 2.37 9.93 2 9.06 1.97C8.06 1.96 7.08 2.5 6.5 3.3L8.04 4.84C8.13 4.38 8.5 4.04 9 4.04C9.89 4.04 10.34 5.12 9.71 5.75C9.56 5.89 9.39 6 9.21 6L11.24 8.04H13V9.8L14.24 11.04H22C22.55 11.04 23 10.59 23 10.04V8.04C23 6.93 22.11 6.04 21 6.04M15.71 5.75C15.08 6.38 14 5.93 14 5.04C14 4.5 14.45 4.04 15 4.04C15.89 4.04 16.34 5.12 15.71 5.75Z\";\nexport var mdiGiftOffOutline = \"M21 6H17.83C17.94 5.69 18 5.35 18 5C18 3.34 16.66 2 15 2C14 2 13.12 2.5 12.57 3.24V3.23L12 4L11.43 3.23V3.24C10.88 2.5 10 2 9 2C7.97 2 7.06 2.5 6.5 3.32L8.03 4.83C8.12 4.36 8.5 4 9 4C9.55 4 10 4.45 10 5C10 5.5 9.64 5.88 9.17 5.97L13 9.8V8H21V10H13.2L15.2 12H20V16.8L22 18.8V12C22.55 12 23 11.55 23 11V8C23 6.9 22.11 6 21 6M15 6C14.45 6 14 5.55 14 5S14.45 4 15 4 16 4.45 16 5 15.55 6 15 6M1.11 3L4.11 6H3C1.9 6 1 6.9 1 8V11C1 11.55 1.45 12 2 12V20C2 21.11 2.9 22 4 22H20C20.03 22 20.07 22 20.1 22L21.56 23.45L22.83 22.18L2.39 1.73L1.11 3M13 14.89L18.11 20H13V14.89M11 12.89V20H4V12H10.11L11 12.89M8.11 10H3V8H6.11L8.11 10Z\";\nexport var mdiGiftOpen = \"M22 10.92L19.26 9.33C21.9 7.08 19.25 2.88 16.08 4.31L15.21 4.68L15.1 3.72C15 2.64 14.44 1.87 13.7 1.42C12.06 .467 9.56 1.12 9.16 3.5L6.41 1.92C5.45 1.36 4.23 1.69 3.68 2.65L2.68 4.38C2.4 4.86 2.57 5.47 3.05 5.75L10.84 10.25L12.34 7.65L14.07 8.65L12.57 11.25L20.36 15.75C20.84 16 21.46 15.86 21.73 15.38L22.73 13.65C23.28 12.69 22.96 11.47 22 10.92M12.37 5C11.5 5.25 10.8 4.32 11.24 3.55C11.5 3.07 12.13 2.91 12.61 3.18C13.38 3.63 13.23 4.79 12.37 5M17.56 8C16.7 8.25 16 7.32 16.44 6.55C16.71 6.07 17.33 5.91 17.8 6.18C18.57 6.63 18.42 7.79 17.56 8M20.87 16.88C21.28 16.88 21.67 16.74 22 16.5V20C22 21.11 21.11 22 20 22H4C2.9 22 2 21.11 2 20V11H10.15L11 11.5V20H13V12.65L19.87 16.61C20.17 16.79 20.5 16.88 20.87 16.88Z\";\nexport var mdiGiftOpenOutline = \"M22 10.87L19.26 9.28C19.5 9.07 19.73 8.8 19.9 8.5C20.73 7.07 20.24 5.23 18.8 4.4C17.94 3.9 16.93 3.9 16.08 4.26L16.09 4.25L15.21 4.64L15.1 3.68L15.09 3.69C15 2.78 14.47 1.9 13.61 1.4C12.17 .575 10.34 1.07 9.5 2.5C9.33 2.8 9.22 3.13 9.16 3.45L6.41 1.87C5.45 1.32 4.23 1.64 3.68 2.6L2.18 5.2C1.9 5.68 2.07 6.29 2.55 6.56L4.28 7.56L8.5 10H2V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V14.87L22.73 13.6C23.28 12.64 22.96 11.42 22 10.87M16.44 6.5C16.71 6 17.33 5.86 17.8 6.13C18.28 6.41 18.45 7 18.17 7.5C17.89 8 17.28 8.14 16.8 7.87C16.33 7.59 16.16 7 16.44 6.5M14.07 8.6L21 12.6L20 14.33L13.07 10.33L14.07 8.6M11 20H4V12H11V20M11.34 9.33L4.41 5.33L5.41 3.6L12.34 7.6L11.34 9.33M11.61 4.87C11.13 4.59 10.97 4 11.24 3.5C11.5 3 12.13 2.86 12.61 3.13C13.09 3.41 13.25 4 12.97 4.5C12.7 5 12.09 5.14 11.61 4.87M13 20V12.6L20 16.64V20H13Z\";\nexport var mdiGiftOutline = \"M22,12V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V12A1,1 0 0,1 1,11V8A2,2 0 0,1 3,6H6.17C6.06,5.69 6,5.35 6,5A3,3 0 0,1 9,2C10,2 10.88,2.5 11.43,3.24V3.23L12,4L12.57,3.23V3.24C13.12,2.5 14,2 15,2A3,3 0 0,1 18,5C18,5.35 17.94,5.69 17.83,6H21A2,2 0 0,1 23,8V11A1,1 0 0,1 22,12M4,20H11V12H4V20M20,20V12H13V20H20M9,4A1,1 0 0,0 8,5A1,1 0 0,0 9,6A1,1 0 0,0 10,5A1,1 0 0,0 9,4M15,4A1,1 0 0,0 14,5A1,1 0 0,0 15,6A1,1 0 0,0 16,5A1,1 0 0,0 15,4M3,8V10H11V8H3M13,8V10H21V8H13Z\";\nexport var mdiGit = \"M2.6,10.59L8.38,4.8L10.07,6.5C9.83,7.35 10.22,8.28 11,8.73V14.27C10.4,14.61 10,15.26 10,16A2,2 0 0,0 12,18A2,2 0 0,0 14,16C14,15.26 13.6,14.61 13,14.27V9.41L15.07,11.5C15,11.65 15,11.82 15,12A2,2 0 0,0 17,14A2,2 0 0,0 19,12A2,2 0 0,0 17,10C16.82,10 16.65,10 16.5,10.07L13.93,7.5C14.19,6.57 13.71,5.55 12.78,5.16C12.35,5 11.9,4.96 11.5,5.07L9.8,3.38L10.59,2.6C11.37,1.81 12.63,1.81 13.41,2.6L21.4,10.59C22.19,11.37 22.19,12.63 21.4,13.41L13.41,21.4C12.63,22.19 11.37,22.19 10.59,21.4L2.6,13.41C1.81,12.63 1.81,11.37 2.6,10.59Z\";\nexport var mdiGithub = \"M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiGitlab = \"M21.94 13.11L20.89 9.89C20.89 9.86 20.88 9.83 20.87 9.8L18.76 3.32C18.65 3 18.33 2.75 17.96 2.75C17.6 2.75 17.28 3 17.17 3.33L15.17 9.5H8.84L6.83 3.33C6.72 3 6.4 2.75 6.04 2.75H6.04C5.67 2.75 5.35 3 5.24 3.33L3.13 9.82C3.13 9.82 3.13 9.83 3.13 9.83L2.06 13.11C1.9 13.61 2.07 14.15 2.5 14.45L11.72 21.16C11.89 21.28 12.11 21.28 12.28 21.15L21.5 14.45C21.93 14.15 22.1 13.61 21.94 13.11M8.15 10.45L10.72 18.36L4.55 10.45M13.28 18.37L15.75 10.78L15.85 10.45H19.46L13.87 17.61M17.97 3.94L19.78 9.5H16.16M14.86 10.45L13.07 15.96L12 19.24L9.14 10.45M6.03 3.94L7.84 9.5H4.23M3.05 13.69C2.96 13.62 2.92 13.5 2.96 13.4L3.75 10.97L9.57 18.42M20.95 13.69L14.44 18.42L14.46 18.39L20.25 10.97L21.04 13.4C21.08 13.5 21.04 13.62 20.95 13.69\";\nexport var mdiGlassCocktail = \"M7.5,7L5.5,5H18.5L16.5,7M11,13V19H6V21H18V19H13V13L21,5V3H3V5L11,13Z\";\nexport var mdiGlassCocktailOff = \"M13.33 12.67L7.66 7L6.13 5.47L2.39 1.73L1.11 3L3 4.89V5L11 13V19H6V21H18V19.89L20.84 22.73L22.11 21.46L13.33 12.67M13 19V14.89L17.11 19H13M8.2 5L6.2 3H21V5L14.6 11.4L10.2 7H16.5L18.5 5H8.2Z\";\nexport var mdiGlassFlute = \"M8,2H16C15.67,5 15.33,8 14.75,9.83C14.17,11.67 13.33,12.33 12.92,14.08C12.5,15.83 12.5,18.67 13.08,20C13.67,21.33 14.83,21.17 15.42,21.25C16,21.33 16,21.67 16,22H8C8,21.67 8,21.33 8.58,21.25C9.17,21.17 10.33,21.33 10.92,20C11.5,18.67 11.5,15.83 11.08,14.08C10.67,12.33 9.83,11.67 9.25,9.83C8.67,8 8.33,5 8,2M10,4C10.07,5.03 10.15,6.07 10.24,7H13.76C13.85,6.07 13.93,5.03 14,4H10Z\";\nexport var mdiGlassFragile = \"M13 20H18V22H6V20H11V13.97C8.19 13.7 6 11.34 6 8.46C6 8.15 6.03 7.85 6.08 7.55L7 2H13.54L12.33 4.41L11.79 5.5H13.79L12.33 8.41L11.79 9.5H14L13 12.75L15.67 9.09L16.46 8H14.21L15.67 5.09L16.21 4H14.21L15.21 2H17L17.93 7.55C18 7.85 18 8.15 18 8.46C18 11.34 15.81 13.7 13 13.97V20Z\";\nexport var mdiGlassMug = \"M10,4V7H18V4H10M8,2H20L21,2V3L20,4V20L21,21V22H20L8,22H7V21L8,20V18.6L4.2,16.83C3.5,16.5 3,15.82 3,15V8A2,2 0 0,1 5,6H8V4L7,3V2H8M5,15L8,16.39V8H5V15Z\";\nexport var mdiGlassMugOff = \"M20 19.35V19.34L6.66 6L6.07 5.41L2.39 1.73L1.11 3L4.26 6.15C3.5 6.44 3 7.16 3 8V15C3 15.82 3.5 16.5 4.2 16.83L8 18.6V20L7 21V22H20.11L20.84 22.73L22.11 21.46L20 19.35M8 16.39L5 15V8H6.11L8 9.89V16.39M8 4L7 3V2H21V3L20 4V16.8L10.2 7H18V4H10V6.8L8 4.8V4Z\";\nexport var mdiGlassMugVariant = \"M9.5 3C7.56 3 5.85 4.24 5.23 6.08C3.36 6.44 2 8.09 2 10C2 12.21 3.79 14 6 14V22H17V20H20C20.55 20 21 19.55 21 19V11C21 10.45 20.55 10 20 10H18V8C18 5.79 16.21 4 14 4H12.32C11.5 3.35 10.53 3 9.5 3M9.5 5C10.29 5 11.03 5.37 11.5 6H14C15.11 6 16 6.9 16 8H12C10 8 9.32 9.13 8.5 10.63C7.68 12.13 6 12 6 12C4.89 12 4 11.11 4 10C4 8.9 4.89 8 6 8H7V7.5C7 6.12 8.12 5 9.5 5M17 12H19V18H17Z\";\nexport var mdiGlassMugVariantOff = \"M8.44 5.24L7 3.79C7.71 3.29 8.57 3 9.5 3C10.53 3 11.5 3.35 12.32 4H14C16.21 4 18 5.79 18 8V10H20C20.55 10 21 10.45 21 11V17.8L19 15.8V12H17V13.8L11.26 8.06C11.5 8 11.73 8 12 8H16C16 6.9 15.11 6 14 6H11.5C11.03 5.37 10.29 5 9.5 5C9.12 5 8.76 5.09 8.44 5.24M22.11 21.46L20.84 22.73L18.11 20H17V22H6V14C3.79 14 2 12.21 2 10C2 8.37 3 6.94 4.44 6.33L1.11 3L2.39 1.73L7.19 6.54L9.61 8.96L17 16.34V16.35L18.65 18H18.66L20.5 19.84V19.85L22.11 21.46M8.59 10.5L6.11 8H6C4.89 8 4 8.9 4 10C4 11.11 4.89 12 6 12C6 12 7.68 12.13 8.5 10.63L8.59 10.5Z\";\nexport var mdiGlassPintOutline = \"M4 2L6 22H17L19 2H4M6.2 4H16.8L15.2 20H7.8L6.2 4Z\";\nexport var mdiGlassStange = \"M8,2H16V22H8V2M10,4V7H14V4H10Z\";\nexport var mdiGlassTulip = \"M8,2H16C15.67,2.67 15.33,3.33 15.58,5C15.83,6.67 16.67,9.33 16.25,10.74C15.83,12.14 14.17,12.28 13.33,13.86C12.5,15.44 12.5,18.47 13.08,19.9C13.67,21.33 14.83,21.17 15.42,21.25C16,21.33 16,21.67 16,22H8C8,21.67 8,21.33 8.58,21.25C9.17,21.17 10.33,21.33 10.92,19.9C11.5,18.47 11.5,15.44 10.67,13.86C9.83,12.28 8.17,12.14 7.75,10.74C7.33,9.33 8.17,6.67 8.42,5C8.67,3.33 8.33,2.67 8,2M10,4C10,5.19 9.83,6.17 9.64,7H14.27C14.13,6.17 14,5.19 14,4H10Z\";\nexport var mdiGlassWine = \"M15.5,21.27L14.66,21.18C13.9,21.11 13.25,20.6 13,19.87C12.47,17.91 12.47,15.83 13,13.87C15.32,13.4 17,11.37 17,9C17,7 15,2 15,2H9C9,2 7,7 7,9C7,11.38 8.67,13.42 11,13.9C11.53,15.86 11.53,17.94 11,19.9C10.76,20.62 10.12,21.13 9.37,21.21L8.5,21.3C8.5,21.3 8,21.28 8,22H16C16,21.28 15.5,21.27 15.5,21.27M9.44,7L10.44,4H13.56L14.56,7H9.44Z\";\nexport var mdiGlasses = \"M3,10C2.76,10 2.55,10.09 2.41,10.25C2.27,10.4 2.21,10.62 2.24,10.86L2.74,13.85C2.82,14.5 3.4,15 4,15H7C7.64,15 8.36,14.44 8.5,13.82L9.56,10.63C9.6,10.5 9.57,10.31 9.5,10.19C9.39,10.07 9.22,10 9,10H3M7,17H4C2.38,17 0.96,15.74 0.76,14.14L0.26,11.15C0.15,10.3 0.39,9.5 0.91,8.92C1.43,8.34 2.19,8 3,8H9C9.83,8 10.58,8.35 11.06,8.96C11.17,9.11 11.27,9.27 11.35,9.45C11.78,9.36 12.22,9.36 12.64,9.45C12.72,9.27 12.82,9.11 12.94,8.96C13.41,8.35 14.16,8 15,8H21C21.81,8 22.57,8.34 23.09,8.92C23.6,9.5 23.84,10.3 23.74,11.11L23.23,14.18C23.04,15.74 21.61,17 20,17H17C15.44,17 13.92,15.81 13.54,14.3L12.64,11.59C12.26,11.31 11.73,11.31 11.35,11.59L10.43,14.37C10.07,15.82 8.56,17 7,17M15,10C14.78,10 14.61,10.07 14.5,10.19C14.42,10.31 14.4,10.5 14.45,10.7L15.46,13.75C15.64,14.44 16.36,15 17,15H20C20.59,15 21.18,14.5 21.25,13.89L21.76,10.82C21.79,10.62 21.73,10.4 21.59,10.25C21.45,10.09 21.24,10 21,10H15Z\";\nexport var mdiGlobeLight = \"M7.1 10C8.1 9 9.5 8.3 11 8.1V2H13V8.1C14.5 8.3 15.9 9 16.9 10H7.1M5.3 13C5.1 13.6 5 14.3 5 15C5 18.9 8.1 22 12 22S19 18.9 19 15C19 14.3 18.9 13.6 18.7 13H5.3Z\";\nexport var mdiGlobeLightOutline = \"M13 8.08V2H11V8.08C7.61 8.57 5 11.47 5 15C5 18.87 8.13 22 12 22S19 18.87 19 15C19 11.47 16.39 8.57 13 8.08M12 20C9.24 20 7 17.76 7 15C7 13.87 7.39 12.84 8.03 12H15.97C16.61 12.84 17 13.87 17 15C17 17.76 14.76 20 12 20Z\";\nexport var mdiGlobeModel = \"M17.36,2.64L15.95,4.06C17.26,5.37 18,7.14 18,9A7,7 0 0,1 11,16C9.15,16 7.37,15.26 6.06,13.95L4.64,15.36C6.08,16.8 7.97,17.71 10,17.93V20H6V22H16V20H12V17.94C16.55,17.43 20,13.58 20,9C20,6.62 19.05,4.33 17.36,2.64M11,3.5A5.5,5.5 0 0,0 5.5,9A5.5,5.5 0 0,0 11,14.5A5.5,5.5 0 0,0 16.5,9A5.5,5.5 0 0,0 11,3.5M11,5.5C12.94,5.5 14.5,7.07 14.5,9A3.5,3.5 0 0,1 11,12.5A3.5,3.5 0 0,1 7.5,9A3.5,3.5 0 0,1 11,5.5Z\";\nexport var mdiGmail = \"M20,18H18V9.25L12,13L6,9.25V18H4V6H5.2L12,10.25L18.8,6H20M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiGnome = \"M18.42,2C14.26,2 13.5,7.93 15.82,7.93C18.16,7.93 22.58,2 18.42,2M12,2.73C11.92,2.73 11.85,2.73 11.78,2.74C9.44,3.04 10.26,7.12 11.5,7.19C12.72,7.27 14.04,2.73 12,2.73M7.93,4.34C7.81,4.34 7.67,4.37 7.53,4.43C5.65,5.21 7.24,8.41 8.3,8.2C9.27,8 9.39,4.3 7.93,4.34M4.93,6.85C4.77,6.84 4.59,6.9 4.41,7.03C2.9,8.07 4.91,10.58 5.8,10.19C6.57,9.85 6.08,6.89 4.93,6.85M13.29,8.77C10.1,8.8 6.03,10.42 5.32,13.59C4.53,17.11 8.56,22 12.76,22C14.83,22 17.21,20.13 17.66,17.77C18,15.97 13.65,16.69 13.81,17.88C14,19.31 12.76,20 11.55,19.1C7.69,16.16 17.93,14.7 17.25,10.69C17.03,9.39 15.34,8.76 13.29,8.77Z\";\nexport var mdiGoKart = \"M18,10H15.53L14.38,8.28L15.8,7.33L14.7,5.67L10.2,8.67L11.3,10.33L12.73,9.38L13.88,11.12L13,12H10.2L5.83,5.45L4.17,6.55L5.87,9.11C3.04,9.65 1,12.12 1,15V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V15A5,5 0 0,0 18,10M6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5M18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5Z\";\nexport var mdiGoKartTrack = \"M22,5.5A3.5,3.5 0 0,0 18.5,2A3.5,3.5 0 0,0 15,5.5V6A3,3 0 0,1 12,9C10,9 9,6 6,6A4,4 0 0,0 2,10V11H4V10A2,2 0 0,1 6,8C6.86,8 7.42,8.45 8.32,9.24C9.28,10.27 10.6,10.9 12,11A5,5 0 0,0 17,6V5.5A1.5,1.5 0 0,1 18.5,4A1.5,1.5 0 0,1 20,5.5C19.86,6.35 19.58,7.18 19.17,7.94C18.5,9.2 18.11,10.58 18,12C18.09,13.37 18.5,14.71 19.21,15.89C19.6,16.54 19.87,17.25 20,18A2,2 0 0,1 18,20A2,2 0 0,1 16,18A3.75,3.75 0 0,0 12.25,14.25A3.75,3.75 0 0,0 8.5,18V18.5A1.5,1.5 0 0,1 7,20A3,3 0 0,1 4,17V15H6V13H0V15H2V17A5,5 0 0,0 7,22A3.5,3.5 0 0,0 10.5,18.5V18A1.75,1.75 0 0,1 12.25,16.25A1.75,1.75 0 0,1 14,18A4,4 0 0,0 18,22A4,4 0 0,0 22,18C22,16 20,14 20,12C20,10 22,7.5 22,5.5Z\";\nexport var mdiGog = \"M4,3H20A2,2 0 0,1 22,5V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V5A2,2 0 0,1 4,3M10.46,5.54C9.95,5.54 9.54,5.95 9.54,6.46V9.54A0.92,0.92 0 0,0 10.46,10.46H13.54A0.92,0.92 0 0,0 14.46,9.54V6.46C14.46,5.95 14.05,5.54 13.54,5.54H10.46M11.08,6.77H12.92A0.31,0.31 0 0,1 13.23,7.08V8.92A0.31,0.31 0 0,1 12.92,9.23H11.08A0.31,0.31 0 0,1 10.77,8.92V7.08A0.31,0.31 0 0,1 11.08,6.77M4.92,5.54A0.92,0.92 0 0,0 4,6.46V9.54C4,10.05 4.41,10.46 4.92,10.46H7.08V9.23H5.54C5.37,9.23 5.23,9.09 5.23,8.92V7.08C5.23,6.91 5.37,6.77 5.54,6.77H7.38A0.31,0.31 0 0,1 7.69,7.08V10.77A0.31,0.31 0 0,1 7.38,11.08H4V12.31H8C8.5,12.31 8.92,11.89 8.92,11.38V6.46A0.92,0.92 0 0,0 8,5.54H4.92M16,5.54C15.5,5.54 15.08,5.95 15.08,6.46V9.54C15.08,10.05 15.5,10.46 16,10.46H18.15V9.23H16.62C16.45,9.23 16.31,9.09 16.31,8.92V7.08C16.31,6.91 16.45,6.77 16.62,6.77H18.46C18.63,6.77 18.77,6.91 18.77,7.08V10.77C18.77,10.94 18.63,11.08 18.46,11.08H15.08V12.31H19.08C19.59,12.31 20,11.89 20,11.38V6.46C20,5.95 19.59,5.54 19.08,5.54H16M9.85,13.54C9.34,13.54 8.92,13.95 8.92,14.46V17.54C8.92,18.05 9.34,18.46 9.85,18.46H12.92C13.43,18.46 13.85,18.05 13.85,17.54V14.46C13.85,13.95 13.43,13.54 12.92,13.54H9.85M10.46,14.77H12.31C12.5,14.77 12.62,14.91 12.62,15.08V16.92A0.31,0.31 0 0,1 12.31,17.23H10.46C10.29,17.23 10.15,17.09 10.15,16.92V15.08A0.31,0.31 0 0,1 10.46,14.77M4.92,13.54C4.41,13.54 4,13.95 4,14.46V17.54C4,18.05 4.41,18.46 4.92,18.46H8.31V17.23H5.54C5.37,17.23 5.23,17.09 5.23,16.92V15.08C5.23,14.91 5.37,14.77 5.54,14.77H8.31V13.54H4.92M15.38,13.54C14.87,13.54 14.46,13.95 14.46,14.46V18.46H15.69V15.08A0.31,0.31 0 0,1 16,14.77H16.62V18.46H17.85V14.77H18.77V18.46H20V13.54H15.38Z\";\nexport var mdiGold = \"M1 22L2.5 17H9.5L11 22H1M13 22L14.5 17H21.5L23 22H13M6 15L7.5 10H14.5L16 15H6M23 6.05L19.14 7.14L18.05 11L16.96 7.14L13.1 6.05L16.96 4.96L18.05 1.1L19.14 4.96L23 6.05Z\";\nexport var mdiGolf = \"M19.5,18A1.5,1.5 0 0,1 21,19.5A1.5,1.5 0 0,1 19.5,21A1.5,1.5 0 0,1 18,19.5A1.5,1.5 0 0,1 19.5,18M17,5.92L11,9V18.03C13.84,18.19 16,19 16,20C16,21.1 13.31,22 10,22C6.69,22 4,21.1 4,20C4,19.26 5.21,18.62 7,18.27V20H9V2L17,5.92Z\";\nexport var mdiGolfCart = \"M19.89 12.37L18.25 5H19V3H3V7H1V9H3V12.54A6 6 0 0 0 1 17V19H3A3 3 0 0 0 9 19H15A3 3 0 0 0 21 19H23V17A5 5 0 0 0 19.89 12.37M6 20.5A1.5 1.5 0 1 1 7.5 19A1.5 1.5 0 0 1 6 20.5M15.53 12L14.38 10.28L15.8 9.33L14.7 7.67L10.2 10.67L11.3 12.33L12.73 11.38L13.88 13.12L13 14H10.2L5 7V5H16.2L17.75 12M18 20.5A1.5 1.5 0 1 1 19.5 19A1.5 1.5 0 0 1 18 20.5Z\";\nexport var mdiGolfTee = \"M7 19V17H17V19H15C14.5 19 14 19.2 13.6 19.6S13 20.5 13 21V22H11V21C11 20.5 10.8 20 10.4 19.6S9.5 19 9 19H7M11 6C11 5.7 11.1 5.5 11.3 5.3S11.7 5 12 5 12.5 5.1 12.7 5.3 13 5.7 13 6 12.9 6.5 12.7 6.7 12.3 7 12 7 11.5 6.9 11.3 6.7 11 6.3 11 6M13 8C13 7.7 13.1 7.5 13.3 7.3S13.7 7 14 7 14.5 7.1 14.7 7.3 15 7.7 15 8 14.9 8.5 14.7 8.7 14.3 9 14 9 13.5 8.9 13.3 8.7 13 8.3 13 8M9 8C9 7.7 9.1 7.5 9.3 7.3S9.7 7 10 7 10.5 7.1 10.7 7.3 11 7.7 11 8 10.9 8.5 10.7 8.7 10.3 9 10 9 9.5 8.9 9.3 8.7 9 8.3 9 8M16.9 4.1C15.5 2.7 13.9 2.1 12 2.1S8.4 2.8 7.1 4.1 5 7.1 5 9 5.7 12.6 7 13.9 10 15.9 11.9 15.9 15.5 15.2 16.8 13.9 18.8 10.9 18.8 9 18.3 5.4 16.9 4.1M15.5 12.5C14.5 13.5 13.3 14 12 14S9.4 13.5 8.5 12.5 7 10.4 7 9 7.5 6.4 8.5 5.5 10.6 4 12 4 14.6 4.5 15.5 5.5 17 7.6 17 9 16.5 11.6 15.5 12.5Z\";\nexport var mdiGondola = \"M18,10H13V7.59L22.12,6.07L21.88,4.59L16.41,5.5C16.46,5.35 16.5,5.18 16.5,5A1.5,1.5 0 0,0 15,3.5A1.5,1.5 0 0,0 13.5,5C13.5,5.35 13.63,5.68 13.84,5.93L13,6.07V5H11V6.41L10.41,6.5C10.46,6.35 10.5,6.18 10.5,6A1.5,1.5 0 0,0 9,4.5A1.5,1.5 0 0,0 7.5,6C7.5,6.36 7.63,6.68 7.83,6.93L1.88,7.93L2.12,9.41L11,7.93V10H6C4.89,10 4,10.9 4,12V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18V12A2,2 0 0,0 18,10M6,12H8.25V16H6V12M9.75,16V12H14.25V16H9.75M18,16H15.75V12H18V16Z\";\nexport var mdiGoodreads = \"M17,12.77C15.96,14.42 14.22,15.5 12.25,15.5C9.07,15.5 6.5,12.7 6.5,9.25C6.5,5.8 9.07,3 12.25,3C14.22,3 15.96,4.08 17,5.73V3H18V15.25C18,20.71 14.54,21 11.5,21C9,21 7.55,19.31 7.13,17H8.14C8.5,18.75 9.54,20 11.5,20C13.72,20 17,20.05 17,15.25V15.25L17,12.77M12.25,4C9.63,4 7.5,6.35 7.5,9.25C7.5,12.15 9.63,14.5 12.25,14.5C14.87,14.5 17,12.15 17,9.25C17,6.35 14.87,4 12.25,4Z\";\nexport var mdiGoogle = \"M21.35,11.1H12.18V13.83H18.69C18.36,17.64 15.19,19.27 12.19,19.27C8.36,19.27 5,16.25 5,12C5,7.9 8.2,4.73 12.2,4.73C15.29,4.73 17.1,6.7 17.1,6.7L19,4.72C19,4.72 16.56,2 12.1,2C6.42,2 2.03,6.8 2.03,12C2.03,17.05 6.16,22 12.25,22C17.6,22 21.5,18.33 21.5,12.91C21.5,11.76 21.35,11.1 21.35,11.1V11.1Z\";\nexport var mdiGoogleAds = \"M12.25 1.47C11.55 1.42 10.82 1.58 10.17 1.96C8.41 2.97 7.81 5.21 8.82 6.96L16.16 19.66C17.17 21.42 19.41 22 21.17 21C22.92 20 23.5 17.75 22.5 16L15.18 3.3C14.54 2.2 13.43 1.56 12.25 1.47M6.82 6.76L1.5 16A3.67 3.67 0 0 0 1 17.83A3.67 3.67 0 0 0 4.67 21.5A3.67 3.67 0 0 0 7.84 19.66V19.67L11 14.19C9.65 11.89 8.27 9.6 7.03 7.23C6.95 7.08 6.88 6.92 6.83 6.76ZL16.4 5Z\";\nexport var mdiGoogleAnalytics = \"M15.86 4.39V19.39C15.86 21.06 17 22 18.25 22C19.39 22 20.64 21.21 20.64 19.39V4.5C20.64 2.96 19.5 2 18.25 2S15.86 3.06 15.86 4.39M9.61 12V19.39C9.61 21.07 10.77 22 12 22C13.14 22 14.39 21.21 14.39 19.39V12.11C14.39 10.57 13.25 9.61 12 9.61S9.61 10.67 9.61 12M5.75 17.23C7.07 17.23 8.14 18.3 8.14 19.61C8.14 20.93 7.07 22 5.75 22S3.36 20.93 3.36 19.61C3.36 18.3 4.43 17.23 5.75 17.23Z\";\nexport var mdiGoogleAssistant = \"M7,2A6,6 0 0,0 1,8A6,6 0 0,0 7,14A6,6 0 0,0 13,8A6,6 0 0,0 7,2M21.5,6A1.5,1.5 0 0,0 20,7.5A1.5,1.5 0 0,0 21.5,9A1.5,1.5 0 0,0 23,7.5A1.5,1.5 0 0,0 21.5,6M17,8A3,3 0 0,0 14,11A3,3 0 0,0 17,14A3,3 0 0,0 20,11A3,3 0 0,0 17,8M17,15A3.5,3.5 0 0,0 13.5,18.5A3.5,3.5 0 0,0 17,22A3.5,3.5 0 0,0 20.5,18.5A3.5,3.5 0 0,0 17,15Z\";\nexport var mdiGoogleCardboard = \"M20.74,6H3.2C2.55,6 2,6.57 2,7.27V17.73C2,18.43 2.55,19 3.23,19H8C8.54,19 9,18.68 9.16,18.21L10.55,14.74C10.79,14.16 11.35,13.75 12,13.75C12.65,13.75 13.21,14.16 13.45,14.74L14.84,18.21C15.03,18.68 15.46,19 15.95,19H20.74C21.45,19 22,18.43 22,17.73V7.27C22,6.57 21.45,6 20.74,6M7.22,14.58C6,14.58 5,13.55 5,12.29C5,11 6,10 7.22,10C8.44,10 9.43,11 9.43,12.29C9.43,13.55 8.44,14.58 7.22,14.58M16.78,14.58C15.56,14.58 14.57,13.55 14.57,12.29C14.57,11.03 15.56,10 16.78,10C18,10 19,11.03 19,12.29C19,13.55 18,14.58 16.78,14.58Z\";\nexport var mdiGoogleChrome = \"M12,20L15.46,14H15.45C15.79,13.4 16,12.73 16,12C16,10.8 15.46,9.73 14.62,9H19.41C19.79,9.93 20,10.94 20,12A8,8 0 0,1 12,20M4,12C4,10.54 4.39,9.18 5.07,8L8.54,14H8.55C9.24,15.19 10.5,16 12,16C12.45,16 12.88,15.91 13.29,15.77L10.89,19.91C7,19.37 4,16.04 4,12M15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12M12,4C14.96,4 17.54,5.61 18.92,8H12C10.06,8 8.45,9.38 8.08,11.21L5.7,7.08C7.16,5.21 9.44,4 12,4M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiGoogleCircles = \"M16.66,15H17C18,15 19,14.8 19.87,14.46C19.17,18.73 15.47,22 11,22C6,22 2,17.97 2,13C2,8.53 5.27,4.83 9.54,4.13C9.2,5 9,6 9,7V7.34C6.68,8.16 5,10.38 5,13A6,6 0 0,0 11,19C13.62,19 15.84,17.32 16.66,15M17,10A3,3 0 0,0 20,7A3,3 0 0,0 17,4A3,3 0 0,0 14,7A3,3 0 0,0 17,10M17,1A6,6 0 0,1 23,7A6,6 0 0,1 17,13A6,6 0 0,1 11,7C11,3.68 13.69,1 17,1Z\";\nexport var mdiGoogleCirclesCommunities = \"M15,12C13.89,12 13,12.89 13,14A2,2 0 0,0 15,16A2,2 0 0,0 17,14C17,12.89 16.1,12 15,12M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M14,9C14,7.89 13.1,7 12,7C10.89,7 10,7.89 10,9A2,2 0 0,0 12,11A2,2 0 0,0 14,9M9,12A2,2 0 0,0 7,14A2,2 0 0,0 9,16A2,2 0 0,0 11,14C11,12.89 10.1,12 9,12Z\";\nexport var mdiGoogleCirclesExtended = \"M18,19C16.89,19 16,18.1 16,17C16,15.89 16.89,15 18,15A2,2 0 0,1 20,17A2,2 0 0,1 18,19M18,13A4,4 0 0,0 14,17A4,4 0 0,0 18,21A4,4 0 0,0 22,17A4,4 0 0,0 18,13M12,11.1A1.9,1.9 0 0,0 10.1,13A1.9,1.9 0 0,0 12,14.9A1.9,1.9 0 0,0 13.9,13A1.9,1.9 0 0,0 12,11.1M6,19C4.89,19 4,18.1 4,17C4,15.89 4.89,15 6,15A2,2 0 0,1 8,17A2,2 0 0,1 6,19M6,13A4,4 0 0,0 2,17A4,4 0 0,0 6,21A4,4 0 0,0 10,17A4,4 0 0,0 6,13M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8C10.89,8 10,7.1 10,6C10,4.89 10.89,4 12,4M12,10A4,4 0 0,0 16,6A4,4 0 0,0 12,2A4,4 0 0,0 8,6A4,4 0 0,0 12,10Z\";\nexport var mdiGoogleCirclesGroup = \"M5,10A2,2 0 0,0 3,12C3,13.11 3.9,14 5,14C6.11,14 7,13.11 7,12A2,2 0 0,0 5,10M5,16A4,4 0 0,1 1,12A4,4 0 0,1 5,8A4,4 0 0,1 9,12A4,4 0 0,1 5,16M10.5,11H14V8L18,12L14,16V13H10.5V11M5,6C4.55,6 4.11,6.05 3.69,6.14C5.63,3.05 9.08,1 13,1C19.08,1 24,5.92 24,12C24,18.08 19.08,23 13,23C9.08,23 5.63,20.95 3.69,17.86C4.11,17.95 4.55,18 5,18C5.8,18 6.56,17.84 7.25,17.56C8.71,19.07 10.74,20 13,20A8,8 0 0,0 21,12A8,8 0 0,0 13,4C10.74,4 8.71,4.93 7.25,6.44C6.56,6.16 5.8,6 5,6Z\";\nexport var mdiGoogleClassroom = \"M23,2H1A1,1 0 0,0 0,3V21A1,1 0 0,0 1,22H23A1,1 0 0,0 24,21V3A1,1 0 0,0 23,2M22,20H20V19H15V20H2V4H22V20M10.29,9.71A1.71,1.71 0 0,1 12,8C12.95,8 13.71,8.77 13.71,9.71C13.71,10.66 12.95,11.43 12,11.43C11.05,11.43 10.29,10.66 10.29,9.71M5.71,11.29C5.71,10.58 6.29,10 7,10A1.29,1.29 0 0,1 8.29,11.29C8.29,12 7.71,12.57 7,12.57C6.29,12.57 5.71,12 5.71,11.29M15.71,11.29A1.29,1.29 0 0,1 17,10A1.29,1.29 0 0,1 18.29,11.29C18.29,12 17.71,12.57 17,12.57C16.29,12.57 15.71,12 15.71,11.29M20,15.14V16H16L14,16H10L8,16H4V15.14C4,14.2 5.55,13.43 7,13.43C7.55,13.43 8.11,13.54 8.6,13.73C9.35,13.04 10.7,12.57 12,12.57C13.3,12.57 14.65,13.04 15.4,13.73C15.89,13.54 16.45,13.43 17,13.43C18.45,13.43 20,14.2 20,15.14Z\";\nexport var mdiGoogleCloud = \"M23 14.75C23 18.2 20.2 21 16.75 21H7.25C3.8 21 1 18.2 1 14.75C1 12.61 2.08 10.72 3.71 9.6C4.58 5.82 7.96 3 12 3C16.04 3 19.42 5.82 20.29 9.6C21.93 10.72 23 12.61 23 14.75M16.63 17C17.94 17 19 15.94 19 14.63C19 13.35 18 12.3 16.72 12.25L16.75 11.75C16.75 9.13 14.62 7 12 7C10.58 7 9.3 7.62 8.43 8.61C9.93 8.9 11.23 9.72 12.14 10.86L9.5 13.5C9.08 12.77 8.29 12.25 7.38 12.25C6.06 12.25 5 13.31 5 14.63C5 15.9 6 16.93 7.25 17V17H16.63Z\";\nexport var mdiGoogleDownasaur = \"M13 2V3H12V9H11V10H9V11H8V12H7V13H5V12H4V11H3V9H2V15H3V16H4V17H5V18H6V22H8V21H7V20H8V19H9V18H10V19H11V22H13V21H12V17H13V16H14V15H15V12H16V13H17V11H15V9H20V8H17V7H22V3H21V2M14 3H15V4H14Z\";\nexport var mdiGoogleDrive = \"M7.71,3.5L1.15,15L4.58,21L11.13,9.5M9.73,15L6.3,21H19.42L22.85,15M22.28,14L15.42,2H8.58L8.57,2L15.43,14H22.28Z\";\nexport var mdiGoogleEarth = \"M12,12.14C11.09,10.77 10.14,9.78 9.14,9.19C8.14,8.59 7.27,8.38 6.5,8.55C5.77,8.73 5.14,9.14 4.64,9.8C4.2,10.39 4,11.06 4,11.81V12C4,12.78 4.11,13.58 4.36,14.39C4.45,14.64 4.5,14.64 4.55,14.39C4.67,13.77 4.96,13.31 5.41,13.03C5.87,12.75 6.47,12.76 7.22,13.05C7.97,13.35 8.7,14 9.42,14.95C10.7,16.67 12.2,17.72 13.92,18.09C16.14,18.41 17.81,17.7 18.94,16C19.25,15.39 19.5,14.86 19.64,14.39C19.73,14.08 19.69,14.05 19.5,14.3C19.03,14.92 18.4,15.33 17.6,15.5C16.8,15.7 15.89,15.5 14.86,15C13.83,14.43 12.88,13.5 12,12.14M16.97,8.16C15.41,5.81 13.72,4.5 11.91,4.17C10.47,3.95 8.91,4.45 7.22,5.67C7,5.83 6.9,5.91 6.91,5.93C6.93,5.95 7.06,5.89 7.31,5.77C9.81,4.55 12.22,5.83 14.53,9.61C15.03,10.45 15.55,11.11 16.1,11.58C16.65,12.05 17.16,12.33 17.65,12.42C18.13,12.5 18.57,12.5 18.96,12.38C19.35,12.25 19.7,12.05 20,11.77C20,11.17 19.91,10.5 19.69,9.8C19.19,9.92 18.74,9.88 18.35,9.68C17.96,9.5 17.5,8.97 16.97,8.16M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12C22,14.75 21,17.1 19.05,19.05C17.1,21 14.75,22 12,22C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z\";\nexport var mdiGoogleFit = \"M17,4A5,5 0 0,1 22,9C22,10.38 21.44,11.63 20.54,12.54L12,21.07L3.46,12.54C2.56,11.63 2,10.38 2,9A5,5 0 0,1 7,4C8.38,4 9.63,4.56 10.54,5.46L12,6.93L13.46,5.46C14.37,4.56 15.62,4 17,4M15.59,7.59L9.17,14L12,16.83L18.41,10.41C18.78,10.05 19,9.55 19,9A2,2 0 0,0 17,7C16.45,7 15.95,7.22 15.59,7.59M8.41,7.59C8.05,7.22 7.55,7 7,7A2,2 0 0,0 5,9C5,9.55 5.22,10.05 5.59,10.41L7.05,11.88L9.88,9.05L8.41,7.59Z\";\nexport var mdiGoogleGlass = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M16.75 18H15.25V8.9L6.72 18H4.66L15.45 6.5C15.66 6.26 16 6.19 16.27 6.3C16.56 6.42 16.75 6.69 16.75 7V18Z\";\nexport var mdiGoogleHangouts = \"M15,11L14,13H12.5L13.5,11H12V8H15M11,11L10,13H8.5L9.5,11H8V8H11M11.5,2A8.5,8.5 0 0,0 3,10.5A8.5,8.5 0 0,0 11.5,19H12V22.5C16.86,20.15 20,15 20,10.5C20,5.8 16.19,2 11.5,2Z\";\nexport var mdiGoogleKeep = \"M4 2H20C21.11 2 22 2.9 22 4V17.33L17.33 22H4C2.9 22 2 21.11 2 20V4C2 2.9 2.9 2 4 2M17 17V20.25L20.25 17H17M10 19H14V18H15V13C16.21 12.09 17 10.64 17 9C17 6.24 14.76 4 12 4S7 6.24 7 9C7 10.64 7.79 12.09 9 13V18H10V19M14 17H10V15H14V17M12 5C14.21 5 16 6.79 16 9C16 10.5 15.2 11.77 14 12.46V14H10V12.46C8.8 11.77 8 10.5 8 9C8 6.79 9.79 5 12 5Z\";\nexport var mdiGoogleLens = \"M6,2H18A4,4 0 0,1 22,6V12H20V6A2,2 0 0,0 18,4H6A2,2 0 0,0 4,6V18A2,2 0 0,0 6,20H12V22H6A4,4 0 0,1 2,18V6A4,4 0 0,1 6,2M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M18,16A2,2 0 0,1 20,18A2,2 0 0,1 18,20A2,2 0 0,1 16,18A2,2 0 0,1 18,16Z\";\nexport var mdiGoogleMaps = \"M18.27 6C19.28 8.17 19.05 10.73 17.94 12.81C17 14.5 15.65 15.93 14.5 17.5C14 18.2 13.5 18.95 13.13 19.76C13 20.03 12.91 20.31 12.81 20.59C12.71 20.87 12.62 21.15 12.53 21.43C12.44 21.69 12.33 22 12 22H12C11.61 22 11.5 21.56 11.42 21.26C11.18 20.53 10.94 19.83 10.57 19.16C10.15 18.37 9.62 17.64 9.08 16.93L18.27 6M9.12 8.42L5.82 12.34C6.43 13.63 7.34 14.73 8.21 15.83C8.42 16.08 8.63 16.34 8.83 16.61L13 11.67L12.96 11.68C11.5 12.18 9.88 11.44 9.3 10C9.22 9.83 9.16 9.63 9.12 9.43C9.07 9.06 9.06 8.79 9.12 8.43L9.12 8.42M6.58 4.62L6.57 4.63C4.95 6.68 4.67 9.53 5.64 11.94L9.63 7.2L9.58 7.15L6.58 4.62M14.22 2.36L11 6.17L11.04 6.16C12.38 5.7 13.88 6.28 14.56 7.5C14.71 7.78 14.83 8.08 14.87 8.38C14.93 8.76 14.95 9.03 14.88 9.4L14.88 9.41L18.08 5.61C17.24 4.09 15.87 2.93 14.23 2.37L14.22 2.36M9.89 6.89L13.8 2.24L13.76 2.23C13.18 2.08 12.59 2 12 2C10.03 2 8.17 2.85 6.85 4.31L6.83 4.32L9.89 6.89Z\";\nexport var mdiGoogleMyBusiness = \"M22 8.5C22 9.87 20.88 11 19.5 11S17 9.87 17 8.5C17 9.87 15.88 11 14.5 11C13.12 11 12 9.87 12 8.5C12 9.87 10.88 11 9.5 11S7 9.87 7 8.5C7 9.87 5.88 11 4.5 11S2 9.87 2 8.5L3.39 3.08C3.39 3.08 3.68 2 4.7 2H19.3C20.32 2 20.61 3.08 20.61 3.08L22 8.5M21 12.2V20C21 21.1 20.1 22 19 22H5C3.9 22 3 21.1 3 20V12.2C3.46 12.39 3.97 12.5 4.5 12.5C5.45 12.5 6.32 12.17 7 11.62C7.69 12.17 8.56 12.5 9.5 12.5C10.45 12.5 11.32 12.17 12 11.62C12.69 12.17 13.56 12.5 14.5 12.5C15.45 12.5 16.32 12.17 17 11.62C17.68 12.17 18.56 12.5 19.5 12.5C20.03 12.5 20.54 12.39 21 12.2M19 17.33C19 17.13 19 16.92 18.95 16.7L18.92 16.54H15.95V17.71H17.76C17.7 17.93 17.62 18.15 17.45 18.33C17.12 18.66 16.67 18.84 16.19 18.84C15.69 18.84 15.2 18.63 14.84 18.28C14.15 17.57 14.15 16.42 14.86 15.7C15.55 15 16.69 15 17.41 15.67L17.55 15.8L18.39 14.95L18.23 14.81C17.67 14.29 16.93 14 16.15 14H16.14C15.33 14 14.57 14.31 14 14.87C13.41 15.45 13.08 16.21 13.08 17C13.08 17.8 13.39 18.54 13.96 19.09H13.96C14.54 19.66 15.35 20 16.18 20H16.2C17 20 17.71 19.71 18.23 19.2C18.7 18.72 19 18 19 17.33Z\";\nexport var mdiGoogleNearby = \"M21.36,10.46L13.54,2.64C12.69,1.79 11.31,1.79 10.46,2.64L2.64,10.46C1.79,11.31 1.79,12.69 2.64,13.54L10.46,21.36C11.31,22.21 12.69,22.21 13.54,21.36L21.36,13.54C22.21,12.69 22.21,11.31 21.36,10.46M12,19L5,12L12,5L19,12L12,19M16.5,12L12,16.5L7.5,12L12,7.5L16.5,12Z\";\nexport var mdiGooglePlay = \"M3,20.5V3.5C3,2.91 3.34,2.39 3.84,2.15L13.69,12L3.84,21.85C3.34,21.6 3,21.09 3,20.5M16.81,15.12L6.05,21.34L14.54,12.85L16.81,15.12M20.16,10.81C20.5,11.08 20.75,11.5 20.75,12C20.75,12.5 20.53,12.9 20.18,13.18L17.89,14.5L15.39,12L17.89,9.5L20.16,10.81M6.05,2.66L16.81,8.88L14.54,11.15L6.05,2.66Z\";\nexport var mdiGooglePlus = \"M23,11H21V9H19V11H17V13H19V15H21V13H23M8,11V13.4H12C11.8,14.4 10.8,16.4 8,16.4C5.6,16.4 3.7,14.4 3.7,12C3.7,9.6 5.6,7.6 8,7.6C9.4,7.6 10.3,8.2 10.8,8.7L12.7,6.9C11.5,5.7 9.9,5 8,5C4.1,5 1,8.1 1,12C1,15.9 4.1,19 8,19C12,19 14.7,16.2 14.7,12.2C14.7,11.7 14.7,11.4 14.6,11H8Z\";\nexport var mdiGooglePodcast = \"M17.68,7.22V8.62C17.68,9.3 17.13,9.86 16.43,9.86C15.74,9.86 15.18,9.3 15.18,8.62V7.22A1.25,1.25 0 0,1 16.43,5.97C17.13,5.97 17.68,6.53 17.68,7.22M13.25,8.36V15.63C13.25,16.32 12.69,16.88 12,16.88C11.31,16.88 10.75,16.32 10.75,15.63V8.36C10.75,7.68 11.31,7.11 12,7.11C12.69,7.11 13.25,7.68 13.25,8.36M22,11.3V12.7C22,13.38 21.44,13.94 20.75,13.94C20.06,13.94 19.5,13.38 19.5,12.7V11.3C19.5,10.61 20.06,10.06 20.75,10.06C21.44,10.06 22,10.61 22,11.3M4.5,11.3V12.7C4.5,13.38 3.94,13.94 3.25,13.94C2.55,13.94 2,13.38 2,12.7V11.3C2,10.61 2.55,10.06 3.25,10.06C3.94,10.06 4.5,10.61 4.5,11.3M8.82,15.38V16.77C8.82,17.45 8.26,18 7.57,18C6.88,18 6.32,17.45 6.32,16.77V15.38C6.32,14.68 6.88,14.13 7.57,14.13A1.25,1.25 0 0,1 8.82,15.38M13.25,19.36V20.75A1.25,1.25 0 0,1 12,22A1.25,1.25 0 0,1 10.75,20.75V19.36A1.25,1.25 0 0,1 12,18.11A1.25,1.25 0 0,1 13.25,19.36M13.25,3.25V4.64A1.25,1.25 0 0,1 12,5.89A1.25,1.25 0 0,1 10.75,4.64V3.25C10.75,2.55 11.31,2 12,2A1.25,1.25 0 0,1 13.25,3.25M17.68,12.34V16.77C17.68,17.46 17.13,18 16.43,18C15.74,18 15.18,17.46 15.18,16.77V12.34C15.18,11.64 15.74,11.09 16.43,11.09C17.13,11.09 17.68,11.64 17.68,12.34M8.82,7.22V11.65C8.82,12.35 8.26,12.9 7.57,12.9A1.25,1.25 0 0,1 6.32,11.65V7.22A1.25,1.25 0 0,1 7.57,5.97A1.25,1.25 0 0,1 8.82,7.22Z\";\nexport var mdiGoogleSpreadsheet = \"M19,11V9H11V5H9V9H5V11H9V19H11V11H19M19,3C19.5,3 20,3.2 20.39,3.61C20.8,4 21,4.5 21,5V19C21,19.5 20.8,20 20.39,20.39C20,20.8 19.5,21 19,21H5C4.5,21 4,20.8 3.61,20.39C3.2,20 3,19.5 3,19V5C3,4.5 3.2,4 3.61,3.61C4,3.2 4.5,3 5,3H19Z\";\nexport var mdiGoogleStreetView = \"M11.95,9.27C13.96,9.27 15.59,7.64 15.59,5.63C15.59,3.63 13.96,2 11.95,2C9.94,2 8.32,3.63 8.32,5.63C8.32,7.64 9.94,9.27 11.95,9.27M9.36,12.97C9.36,12.97 8.27,15.94 7.96,16.5C7.85,16.71 7.87,16.77 7.6,16.77C7.33,16.77 6.91,16.5 6.91,16.5C6.91,16.5 6.71,16.37 6.79,16.14C7.03,15.4 8.12,11.08 8.35,10.25C8.6,9.36 9.28,9.39 9.28,9.39H9.93L12.03,13.04L14.14,9.39H14.92C14.92,9.39 15.23,9.43 15.46,9.7C15.7,9.97 15.75,10.44 15.75,10.44L17.14,15.84C17.14,15.84 17.24,16.22 17.21,16.33C17.17,16.5 17.08,16.5 17.08,16.5C17.08,16.5 16.69,16.62 16.47,16.69C16.07,16.82 16,16.44 16,16.44L14.7,13.04L14.55,22H12.6L12.27,16.89C12.27,16.89 12.21,16.76 12.03,16.76C11.86,16.76 11.8,16.89 11.8,16.89L11.45,22H9.5L9.37,12.97H9.36Z\";\nexport var mdiGoogleTranslate = \"M20,5H10.88L10,2H4A2,2 0 0,0 2,4V17A2,2 0 0,0 4,19H11L12,22H20A2,2 0 0,0 22,20V7A2,2 0 0,0 20,5M7.17,14.59A4.09,4.09 0 0,1 3.08,10.5A4.09,4.09 0 0,1 7.17,6.41C8.21,6.41 9.16,6.78 9.91,7.5L10,7.54L8.75,8.72L8.69,8.67C8.4,8.4 7.91,8.08 7.17,8.08C5.86,8.08 4.79,9.17 4.79,10.5C4.79,11.83 5.86,12.92 7.17,12.92C8.54,12.92 9.13,12.05 9.29,11.46H7.08V9.91H11.03L11.04,10C11.08,10.19 11.09,10.38 11.09,10.59C11.09,12.94 9.5,14.59 7.17,14.59M13.2,12.88C13.53,13.5 13.94,14.06 14.39,14.58L13.85,15.11L13.2,12.88M13.97,12.12H13L12.67,11.08H16.66C16.66,11.08 16.32,12.39 15.1,13.82C14.58,13.2 14.21,12.59 13.97,12.12M21,20A1,1 0 0,1 20,21H13L15,19L14.19,16.23L15.11,15.31L17.79,18L18.5,17.27L15.81,14.59C16.71,13.56 17.41,12.34 17.73,11.08H19V10.04H15.36V9H14.32V10.04H12.36L11.18,6H20A1,1 0 0,1 21,7V20Z\";\nexport var mdiGradientHorizontal = \"M9 13V11H11V13M11 15V13H13V15M11 11V9H13V11M9 9V7H11V9M9 17V15H11V17M3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5M18 15V17H16V15M18 11V13H16V11M18 7V9H16V7M11 5V7H13V5H15V7H13V9H15V11H13V13H15V15H13V17H15V19H13V17H11V19H5V5Z\";\nexport var mdiGradientVertical = \"M11,9H13V11H11V9M9,11H11V13H9V11M13,11H15V13H13V11M15,9H17V11H15V9M7,9H9V11H7V9M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M9,18H7V16H9V18M13,18H11V16H13V18M17,18H15V16H17V18M19,11H17V13H19V15H17V13H15V15H13V13H11V15H9V13H7V15H5V13H7V11H5V5H19V11Z\";\nexport var mdiGrain = \"M10,12A2,2 0 0,0 8,14A2,2 0 0,0 10,16A2,2 0 0,0 12,14A2,2 0 0,0 10,12M6,8A2,2 0 0,0 4,10A2,2 0 0,0 6,12A2,2 0 0,0 8,10A2,2 0 0,0 6,8M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18A2,2 0 0,0 6,16M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6A2,2 0 0,0 18,8M14,16A2,2 0 0,0 12,18A2,2 0 0,0 14,20A2,2 0 0,0 16,18A2,2 0 0,0 14,16M18,12A2,2 0 0,0 16,14A2,2 0 0,0 18,16A2,2 0 0,0 20,14A2,2 0 0,0 18,12M14,8A2,2 0 0,0 12,10A2,2 0 0,0 14,12A2,2 0 0,0 16,10A2,2 0 0,0 14,8M10,4A2,2 0 0,0 8,6A2,2 0 0,0 10,8A2,2 0 0,0 12,6A2,2 0 0,0 10,4Z\";\nexport var mdiGraph = \"M19.5 17C19.37 17 19.24 17 19.11 17.04L17.5 13.79C17.95 13.34 18.25 12.71 18.25 12C18.25 10.62 17.13 9.5 15.75 9.5C15.62 9.5 15.5 9.5 15.36 9.54L13.73 6.29C14.21 5.84 14.5 5.21 14.5 4.5C14.5 3.12 13.38 2 12 2S9.5 3.12 9.5 4.5C9.5 5.21 9.79 5.84 10.26 6.29L8.64 9.54C8.5 9.5 8.38 9.5 8.25 9.5C6.87 9.5 5.75 10.62 5.75 12C5.75 12.71 6.05 13.34 6.5 13.79L4.89 17.04C4.76 17 4.63 17 4.5 17C3.12 17 2 18.12 2 19.5C2 20.88 3.12 22 4.5 22S7 20.88 7 19.5C7 18.8 6.71 18.16 6.24 17.71L7.86 14.46C8 14.5 8.12 14.5 8.25 14.5C8.38 14.5 8.5 14.5 8.64 14.46L10.27 17.71C9.8 18.16 9.5 18.8 9.5 19.5C9.5 20.88 10.62 22 12 22S14.5 20.88 14.5 19.5C14.5 18.12 13.38 17 12 17C11.87 17 11.74 17 11.61 17.04L10 13.79C10.46 13.34 10.75 12.71 10.75 12S10.46 10.66 10 10.21L11.61 6.96C11.74 7 11.87 7 12 7S12.26 7 12.39 6.96L14 10.21C13.55 10.66 13.25 11.3 13.25 12C13.25 13.38 14.37 14.5 15.75 14.5C15.88 14.5 16 14.5 16.14 14.46L17.77 17.71C17.3 18.16 17 18.8 17 19.5C17 20.88 18.12 22 19.5 22S22 20.88 22 19.5C22 18.12 20.88 17 19.5 17Z\";\nexport var mdiGraphOutline = \"M19.5 17C19.36 17 19.24 17 19.11 17.04L17.5 13.8C17.95 13.35 18.25 12.71 18.25 12C18.25 10.62 17.13 9.5 15.75 9.5C15.61 9.5 15.5 9.5 15.35 9.54L13.74 6.3C14.21 5.84 14.5 5.21 14.5 4.5C14.5 3.12 13.38 2 12 2S9.5 3.12 9.5 4.5C9.5 5.2 9.79 5.84 10.26 6.29L8.65 9.54C8.5 9.5 8.39 9.5 8.25 9.5C6.87 9.5 5.75 10.62 5.75 12C5.75 12.71 6.04 13.34 6.5 13.79L4.89 17.04C4.76 17 4.64 17 4.5 17C3.12 17 2 18.12 2 19.5C2 20.88 3.12 22 4.5 22S7 20.88 7 19.5C7 18.8 6.71 18.16 6.24 17.71L7.86 14.46C8 14.5 8.12 14.5 8.25 14.5C8.38 14.5 8.5 14.5 8.63 14.46L10.26 17.71C9.79 18.16 9.5 18.8 9.5 19.5C9.5 20.88 10.62 22 12 22S14.5 20.88 14.5 19.5C14.5 18.12 13.38 17 12 17C11.87 17 11.74 17 11.61 17.04L10 13.8C10.45 13.35 10.75 12.71 10.75 12C10.75 11.3 10.46 10.67 10 10.21L11.61 6.96C11.74 7 11.87 7 12 7C12.13 7 12.26 7 12.39 6.96L14 10.21C13.54 10.66 13.25 11.3 13.25 12C13.25 13.38 14.37 14.5 15.75 14.5C15.88 14.5 16 14.5 16.13 14.46L17.76 17.71C17.29 18.16 17 18.8 17 19.5C17 20.88 18.12 22 19.5 22S22 20.88 22 19.5C22 18.12 20.88 17 19.5 17M4.5 20.5C3.95 20.5 3.5 20.05 3.5 19.5S3.95 18.5 4.5 18.5 5.5 18.95 5.5 19.5 5.05 20.5 4.5 20.5M13 19.5C13 20.05 12.55 20.5 12 20.5S11 20.05 11 19.5 11.45 18.5 12 18.5 13 18.95 13 19.5M7.25 12C7.25 11.45 7.7 11 8.25 11S9.25 11.45 9.25 12 8.8 13 8.25 13 7.25 12.55 7.25 12M11 4.5C11 3.95 11.45 3.5 12 3.5S13 3.95 13 4.5 12.55 5.5 12 5.5 11 5.05 11 4.5M14.75 12C14.75 11.45 15.2 11 15.75 11S16.75 11.45 16.75 12 16.3 13 15.75 13 14.75 12.55 14.75 12M19.5 20.5C18.95 20.5 18.5 20.05 18.5 19.5S18.95 18.5 19.5 18.5 20.5 18.95 20.5 19.5 20.05 20.5 19.5 20.5Z\";\nexport var mdiGraphql = \"M12,5.37L11.56,5.31L6,14.9C6.24,15.11 6.4,15.38 6.47,15.68H17.53C17.6,15.38 17.76,15.11 18,14.9L12.44,5.31L12,5.37M6.6,16.53L10.88,19.06C11.17,18.79 11.57,18.63 12,18.63C12.43,18.63 12.83,18.79 13.12,19.06L17.4,16.53H6.6M12,22A1.68,1.68 0 0,1 10.32,20.32L10.41,19.76L6.11,17.21C5.8,17.57 5.35,17.79 4.84,17.79A1.68,1.68 0 0,1 3.16,16.11C3.16,15.32 3.69,14.66 4.42,14.47V9.36C3.59,9.25 2.95,8.54 2.95,7.68A1.68,1.68 0 0,1 4.63,6C5.18,6 5.66,6.26 5.97,6.66L10.38,4.13L10.32,3.68C10.32,2.75 11.07,2 12,2C12.93,2 13.68,2.75 13.68,3.68L13.62,4.13L18.03,6.66C18.34,6.26 18.82,6 19.37,6A1.68,1.68 0 0,1 21.05,7.68C21.05,8.54 20.41,9.25 19.58,9.36V14.47C20.31,14.66 20.84,15.32 20.84,16.11A1.68,1.68 0 0,1 19.16,17.79C18.65,17.79 18.2,17.57 17.89,17.21L13.59,19.76L13.68,20.32A1.68,1.68 0 0,1 12,22M10.8,4.86L6.3,7.44L6.32,7.68C6.32,8.39 5.88,9 5.26,9.25L5.29,14.5L10.8,4.86M13.2,4.86L18.71,14.5L18.74,9.25C18.12,9 17.68,8.39 17.68,7.68L17.7,7.44L13.2,4.86Z\";\nexport var mdiGrass = \"M12 20H2V18H7.75C7 15.19 4.81 13 2 12.26C2.64 12.1 3.31 12 4 12C8.42 12 12 15.58 12 20M22 12.26C21.36 12.1 20.69 12 20 12C17.07 12 14.5 13.58 13.12 15.93C13.41 16.59 13.65 17.28 13.79 18C13.92 18.65 14 19.32 14 20H22V18H16.24C17 15.19 19.19 13 22 12.26M15.64 11C16.42 8.93 17.87 7.18 19.73 6C15.44 6.16 12 9.67 12 14V14C12.95 12.75 14.2 11.72 15.64 11M11.42 8.85C10.58 6.66 8.88 4.89 6.7 4C8.14 5.86 9 8.18 9 10.71C9 10.92 8.97 11.12 8.96 11.32C9.39 11.56 9.79 11.84 10.18 12.14C10.39 10.96 10.83 9.85 11.42 8.85Z\";\nexport var mdiGraveStone = \"M10,2H14C17.31,2 19,4.69 19,8V18.66C16.88,17.63 15.07,17 12,17C8.93,17 7.12,17.63 5,18.66V8C5,4.69 6.69,2 10,2M8,8V9.5H16V8H8M9,12V13.5H15V12H9M3,22V21.31C5.66,19.62 13.23,15.84 21,21.25V22H3Z\";\nexport var mdiGreasePencil = \"M18.62,1.5C18.11,1.5 17.6,1.69 17.21,2.09L10.75,8.55L14.95,12.74L21.41,6.29C22.2,5.5 22.2,4.24 21.41,3.46L20.04,2.09C19.65,1.69 19.14,1.5 18.62,1.5M9.8,9.5L3.23,16.07L3.93,16.77C3.4,17.24 2.89,17.78 2.38,18.29C1.6,19.08 1.6,20.34 2.38,21.12C3.16,21.9 4.42,21.9 5.21,21.12C5.72,20.63 6.25,20.08 6.73,19.58L7.43,20.27L14,13.7\";\nexport var mdiGreaterThan = \"M5.5,4.14L4.5,5.86L15,12L4.5,18.14L5.5,19.86L19,12L5.5,4.14Z\";\nexport var mdiGreaterThanOrEqual = \"M6.5,2.27L20,10.14L6.5,18L5.5,16.27L16.03,10.14L5.5,4L6.5,2.27M20,20V22H5V20H20Z\";\nexport var mdiGreenhouse = \"M12 3L4 9V21H20V9L12 3M10 10H14V19H10V10M16 10H18V13H16V10M15.33 8H8.67L12 5.5L15.33 8M8 10V13H6V10H8M6 15H8V19H6V15M16 19V15H18V19H16Z\";\nexport var mdiGrid = \"M10,4V8H14V4H10M16,4V8H20V4H16M16,10V14H20V10H16M16,16V20H20V16H16M14,20V16H10V20H14M8,20V16H4V20H8M8,14V10H4V14H8M8,8V4H4V8H8M10,14H14V10H10V14M4,2H20A2,2 0 0,1 22,4V20A2,2 0 0,1 20,22H4C2.92,22 2,21.1 2,20V4A2,2 0 0,1 4,2Z\";\nexport var mdiGridLarge = \"M4,2H20A2,2 0 0,1 22,4V20A2,2 0 0,1 20,22H4C2.92,22 2,21.1 2,20V4A2,2 0 0,1 4,2M4,4V11H11V4H4M4,20H11V13H4V20M20,20V13H13V20H20M20,4H13V11H20V4Z\";\nexport var mdiGridOff = \"M0,2.77L1.28,1.5L22.5,22.72L21.23,24L19.23,22H4C2.92,22 2,21.1 2,20V4.77L0,2.77M10,4V7.68L8,5.68V4H6.32L4.32,2H20A2,2 0 0,1 22,4V19.7L20,17.7V16H18.32L16.32,14H20V10H16V13.68L14,11.68V10H12.32L10.32,8H14V4H10M16,4V8H20V4H16M16,20H17.23L16,18.77V20M4,8H5.23L4,6.77V8M10,14H11.23L10,12.77V14M14,20V16.77L13.23,16H10V20H14M8,20V16H4V20H8M8,14V10.77L7.23,10H4V14H8Z\";\nexport var mdiGrill = \"M8.06,2C7.88,3.17 8.17,4.16 8.95,4.97C9.45,5.47 9.61,6.14 9.42,7H10.41C10.53,6.45 10.55,6 10.45,5.55C10.36,5.13 10.05,4.63 9.5,4.03C9.05,3.47 8.89,2.8 9.05,2H8.06M10.55,2C10.36,3.17 10.66,4.16 11.44,4.97C11.94,5.47 12.09,6.14 11.91,7H12.89C13,6.45 13.03,6 12.94,5.55C12.84,5.13 12.53,4.63 12,4.03C11.53,3.47 11.38,2.8 11.53,2H10.55M13.08,2C12.89,3.17 13.19,4.16 13.97,4.97C14.47,5.47 14.61,6.14 14.39,7H15.42C15.55,6.45 15.56,6 15.47,5.55C15.38,5.13 15.06,4.63 14.53,4.03C14.06,3.47 13.91,2.8 14.06,2H13.08M5,8C5,9.42 5.39,10.7 6.14,11.84C6.87,12.96 7.91,13.85 9.14,14.39L5.16,20.44C5.06,20.56 5,20.75 5,21C5,21.41 5.16,21.69 5.44,21.84C5.56,21.94 5.75,22 6,22C6.41,22 6.69,21.84 6.84,21.56L7.83,19.97H14.2C14.41,20.55 14.79,21.05 15.28,21.42C15.78,21.8 16.36,22 17,22C17.83,22 18.53,21.69 19.13,21.09C19.72,20.5 20,19.8 20,19C20,18.17 19.72,17.47 19.13,16.88C18.53,16.28 17.83,16 17,16C16.36,16 15.78,16.17 15.28,16.55C14.78,16.92 14.42,17.41 14.2,18H9.14L11.11,14.95C11.27,15 11.56,15 12,15C12.44,15 12.73,15 12.89,14.95L13.88,16.5C14.29,15.96 14.84,15.54 15.47,15.28L14.91,14.39C16.03,13.89 17,13 17.79,11.77C18.59,10.5 19,9.27 19,8H5M17,18C17.3,18 17.53,18.09 17.72,18.28C17.91,18.47 18,18.72 18,19C18,19.27 17.91,19.5 17.72,19.71C17.54,19.91 17.28,20 17,20C16.74,20 16.5,19.91 16.29,19.71C16.09,19.5 16,19.26 16,19C16,18.7 16.09,18.47 16.29,18.28C16.5,18.09 16.73,18 17,18Z\";\nexport var mdiGrillOutline = \"M17 22A3 3 0 1 0 14.18 18H9.14L11.13 14.94A6.36 6.36 0 0 0 12.87 14.94L13.89 16.5C14.31 16 14.85 15.56 15.5 15.3L14.89 14.37A7 7 0 0 0 19 8H5A7 7 0 0 0 9.12 14.37L5.17 20.45A1 1 0 0 0 6.84 21.54L7.84 20H14.18A3 3 0 0 0 17 22M17 18A1 1 0 0 1 18 19C18 19.55 17.55 20 17 20S16 19.55 16 19A1 1 0 0 1 17 18M7.42 10H16.58A5 5 0 0 1 7.42 10M9.41 7H10.41C10.56 5.85 10.64 5.36 9.5 4.04C9.1 3.54 8.84 3.27 9.06 2H8.07A3.14 3.14 0 0 0 8.96 4.96C9.18 5.2 9.75 5.63 9.41 7M11.89 7H12.89C13.04 5.85 13.12 5.36 12 4.04C11.58 3.54 11.32 3.26 11.54 2H10.55A3.14 3.14 0 0 0 11.44 4.96C11.67 5.2 12.24 5.63 11.89 7M14.41 7H15.41C15.56 5.85 15.64 5.36 14.5 4.04C14.1 3.54 13.84 3.27 14.06 2H13.07A3.14 3.14 0 0 0 13.96 4.96C14.18 5.2 14.75 5.63 14.41 7Z\";\nexport var mdiGroup = \"M1,1V5H2V19H1V23H5V22H19V23H23V19H22V5H23V1H19V2H5V1M5,4H19V5H20V19H19V20H5V19H4V5H5M6,6V14H9V18H18V9H14V6M8,8H12V12H8M14,11H16V16H11V14H14\";\nexport var mdiGuitarAcoustic = \"M19.59,3H22V5H20.41L16.17,9.24C15.8,8.68 15.32,8.2 14.76,7.83L19.59,3M12,8A4,4 0 0,1 16,12C16,13.82 14.77,15.42 13,15.87V16A5,5 0 0,1 8,21A5,5 0 0,1 3,16A5,5 0 0,1 8,11H8.13C8.58,9.24 10.17,8 12,8M12,10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 12,13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 12,10.5M6.94,14.24L6.23,14.94L9.06,17.77L9.77,17.06L6.94,14.24Z\";\nexport var mdiGuitarElectric = \"M19.59,3H22V5H20.41L15.12,10.29L13.71,8.9L19.59,3M12,9C12.26,9 12.5,9.1 12.71,9.3L14.71,11.3C14.89,11.5 15,11.73 15,12L14.9,12.4L10.9,20.4C10.71,20.75 10.36,20.93 10,20.93C9.65,20.93 9.29,20.75 9.11,20.4L7.25,16.7L3.55,14.9C3.18,14.7 3,14.35 3,14C3,13.65 3.18,13.3 3.55,13.1L11.55,9.1C11.69,9 11.84,9 12,9M9.35,11.82L8.65,12.5L11.5,15.35L12.18,14.65L9.35,11.82M7.94,13.23L7.23,13.94L10.06,16.77L10.77,16.06L7.94,13.23Z\";\nexport var mdiGuitarPick = \"M19,4.1C18.1,3.3 17,2.8 15.8,2.5C15.5,2.4 13.6,2 12.2,2C12.2,2 12.1,2 12,2C12,2 11.9,2 11.8,2C10.4,2 8.4,2.4 8.1,2.5C7,2.8 5.9,3.3 5,4.1C3,5.9 3,8.7 4,11C5,13.5 6.1,15.7 7.6,17.9C8.8,19.6 10.1,22 12,22C13.9,22 15.2,19.6 16.5,17.9C18,15.8 19.1,13.5 20.1,11C21,8.7 21,5.9 19,4.1Z\";\nexport var mdiGuitarPickOutline = \"M19,4.1C18.1,3.3 17,2.8 15.8,2.5C15.5,2.4 13.6,2 12.2,2C12.2,2 12.1,2 12,2C12,2 11.9,2 11.8,2C10.4,2 8.4,2.4 8.1,2.5C7,2.8 5.9,3.3 5,4.1C3,5.9 3,8.7 4,11C5,13.5 6.1,15.7 7.6,17.9C8.8,19.6 10.1,22 12,22C13.9,22 15.2,19.6 16.5,17.9C18,15.8 19.1,13.5 20.1,11C21,8.7 21,5.9 19,4.1M18.2,10.2C17.1,12.9 16.1,14.9 14.8,16.7C14.6,16.9 14.5,17.2 14.3,17.4C13.8,18.2 12.6,20 12,20C12,20 12,20 12,20C11.3,20 10.2,18.3 9.6,17.4C9.4,17.2 9.3,16.9 9.1,16.7C7.9,14.9 6.8,12.9 5.7,10.2C5.5,9.5 4.7,7 6.3,5.5C6.8,5 7.6,4.7 8.6,4.4C9,4.4 10.7,4 11.8,4C11.8,4 12.1,4 12.1,4C13.2,4 14.9,4.3 15.3,4.4C16.3,4.7 17.1,5 17.6,5.5C19.3,7 18.5,9.5 18.2,10.2Z\";\nexport var mdiGuyFawkesMask = \"M21,13A9,9 0 0,1 12,22A9,9 0 0,1 3,13L3.03,4.43C5.68,2.88 8.76,2 12.05,2C15.3,2 18.36,2.87 21,4.38V13M13,19.93C16.39,19.44 19,16.5 19,13V5.59C16.9,4.57 14.54,4 12.05,4C9.5,4 7.08,4.6 4.94,5.66L5,13C5,16.5 7.63,19.44 11,19.93V18H13V19.93M11,16H8L6,13L9,14H10L11,13H13L14,14H15L18,13L16,16H13L12,15L11,16M6,9.03C6.64,8.4 7.5,8.05 8.5,8.05C9.45,8.05 10.34,8.4 11,9.03C10.34,9.65 9.45,10 8.5,10C7.5,10 6.64,9.65 6,9.03M13,9.03C13.64,8.4 14.5,8.05 15.5,8.05C16.45,8.05 17.34,8.4 18,9.03C17.34,9.65 16.45,10 15.5,10C14.5,10 13.64,9.65 13,9.03Z\";\nexport var mdiGymnastics = \"M4 6C4 4.9 4.9 4 6 4S8 4.9 8 6 7.1 8 6 8 4 7.1 4 6M1 9H7L14 4L15.31 5.5L11.14 8.5H14L21.8 4L23 5.4L14.5 12L14 22H12L11.5 12L8 11H1V9Z\";\nexport var mdiHail = \"M4,16H7V22H4V16M19,2.39C18.92,3.86 18.55,5.13 17.86,6.21C17.17,7.29 16.22,8 15,8.39V22H13V16H11V22H9V10.08C8.72,10.17 8.5,10.28 8.39,10.41C7.45,11.16 7,12.19 7,13.5V14H5V13.5C5,11.53 5.72,9.94 7.13,8.72C8.53,7.56 10.16,7 12,7C13.41,7 14.56,6.64 15.47,5.95C16.5,5.11 17,3.95 17,2.5V2H19V2.39M12,2A2,2 0 0,1 14,4A2,2 0 0,1 12,6A2,2 0 0,1 10,4A2,2 0 0,1 12,2Z\";\nexport var mdiHairDryer = \"M22 9A4.32 4.32 0 0 1 19.78 8.45A3.4 3.4 0 0 0 18 8V7A4.32 4.32 0 0 1 20.22 7.55A3.4 3.4 0 0 0 22 8M22 6A3.4 3.4 0 0 1 20.22 5.55A4.32 4.32 0 0 0 18 5V6A3.4 3.4 0 0 1 19.78 6.45A4.32 4.32 0 0 0 22 7M22 10A3.4 3.4 0 0 1 20.22 9.55A4.32 4.32 0 0 0 18 9V10A3.4 3.4 0 0 1 19.78 10.45A4.32 4.32 0 0 0 22 11M10 12.73A70.39 70.39 0 0 0 17 11V4S10.5 2 7.5 2A5.5 5.5 0 0 0 6.12 12.82L7 19H8A3 3 0 0 0 9.46 21.33A3.15 3.15 0 0 1 11 24H12A4.12 4.12 0 0 0 10.09 20.55C9.39 20 9 19.63 9 19H10M7.5 10A2.5 2.5 0 1 1 10 7.5A2.5 2.5 0 0 1 7.5 10Z\";\nexport var mdiHairDryerOutline = \"M10 12.73A70.39 70.39 0 0 0 17 11V4S10.5 2 7.5 2A5.5 5.5 0 0 0 6.12 12.82L7 19H8A3 3 0 0 0 9.46 21.33A3.15 3.15 0 0 1 11 24H12A4.12 4.12 0 0 0 10.09 20.55C9.39 20 9 19.63 9 19H10M4 7.5A3.5 3.5 0 0 1 7.5 4A37.08 37.08 0 0 1 15 5.5V9.5A37.08 37.08 0 0 1 7.5 11A3.5 3.5 0 0 1 4 7.5M22 9A4.32 4.32 0 0 1 19.78 8.45A3.4 3.4 0 0 0 18 8V7A4.32 4.32 0 0 1 20.22 7.55A3.4 3.4 0 0 0 22 8M22 6A3.4 3.4 0 0 1 20.22 5.55A4.32 4.32 0 0 0 18 5V6A3.4 3.4 0 0 1 19.78 6.45A4.32 4.32 0 0 0 22 7M22 10A3.4 3.4 0 0 1 20.22 9.55A4.32 4.32 0 0 0 18 9V10A3.4 3.4 0 0 1 19.78 10.45A4.32 4.32 0 0 0 22 11M9 7.5A1.5 1.5 0 1 1 7.5 6A1.5 1.5 0 0 1 9 7.5Z\";\nexport var mdiHalloween = \"M6.5,6C7.47,6 8.37,6.5 9.11,7.38C9.66,6.79 10.31,6.36 11,6.15V4A2,2 0 0,1 13,2H15V4H13V6.15C13.69,6.36 14.34,6.79 14.89,7.38C15.63,6.5 16.53,6 17.5,6C20,6 22,9.36 22,13.5C22,17.64 20,21 17.5,21C16.53,21 15.63,20.5 14.89,19.62C14.08,20.5 13.08,21 12,21C10.92,21 9.92,20.5 9.11,19.62C8.37,20.5 7.47,21 6.5,21C4,21 2,17.64 2,13.5C2,9.36 4,6 6.5,6M9,10L7.75,12.25H10.25L9,10M15,10L13.75,12.25H16.25L15,10M8,17H10L11,16L12,17H14L15,16L16,17L17.5,14L13.92,14.62L13,16L12,15H10L9,16L8,15L6,14L8,17Z\";\nexport var mdiHamburger = \"M22 13C22 14.11 21.11 15 20 15H4C2.9 15 2 14.11 2 13S2.9 11 4 11H13L15.5 13L18 11H20C21.11 11 22 11.9 22 13M12 3C3 3 3 9 3 9H21C21 9 21 3 12 3M3 18C3 19.66 4.34 21 6 21H18C19.66 21 21 19.66 21 18V17H3V18Z\";\nexport var mdiHamburgerCheck = \"M21 9H3C3 9 3 3 12 3S21 9 21 9M13.35 17H3V18C3 19.66 4.34 21 6 21H13.35C13.13 20.37 13 19.7 13 19C13 18.3 13.13 17.63 13.35 17M21.86 13.73C21.95 13.5 22 13.26 22 13C22 11.9 21.11 11 20 11H11L8.5 13L6 11H4C2.9 11 2 11.9 2 13S2.9 15 4 15H14.54C15.64 13.78 17.23 13 19 13C20.04 13 21 13.26 21.86 13.73M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiHamburgerMinus = \"M21 9H3C3 9 3 3 12 3S21 9 21 9M13.35 17H3V18C3 19.66 4.34 21 6 21H13.35C13.13 20.37 13 19.7 13 19C13 18.3 13.13 17.63 13.35 17M21.86 13.73C21.95 13.5 22 13.26 22 13C22 11.9 21.11 11 20 11H11L8.5 13L6 11H4C2.9 11 2 11.9 2 13S2.9 15 4 15H14.54C15.64 13.78 17.23 13 19 13C20.04 13 21 13.26 21.86 13.73M15 18V20H23V18H15Z\";\nexport var mdiHamburgerOff = \"M20 11C21.11 11 22 11.9 22 13S21.11 15 20 15H18.2L14.2 11H20M20.42 19.77L20.42 19.76L17.66 17H17.65L15.65 15H15.66L11.66 11H11.66L9.66 9H9.66L2.39 1.73L1.11 3L4.12 6C3 7.5 3 9 3 9H7.11L9.11 11H4C2.9 11 2 11.9 2 13S2.9 15 4 15H13.11L15.11 17H3V18C3 19.66 4.34 21 6 21H18C18.33 21 18.65 20.93 18.94 20.83L20.84 22.73L22.11 21.46L20.42 19.77M21 9C21 9 21 3 12 3C9.88 3 8.28 3.34 7.05 3.85L12.2 9H21Z\";\nexport var mdiHamburgerPlus = \"M21 9H3C3 9 3 3 12 3S21 9 21 9M13.35 17H3V18C3 19.66 4.34 21 6 21H13.35C13.13 20.37 13 19.7 13 19C13 18.3 13.13 17.63 13.35 17M21.86 13.73C21.95 13.5 22 13.26 22 13C22 11.9 21.11 11 20 11H11L8.5 13L6 11H4C2.9 11 2 11.9 2 13S2.9 15 4 15H14.54C15.64 13.78 17.23 13 19 13C20.04 13 21 13.26 21.86 13.73M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiHamburgerRemove = \"M21 9H3C3 9 3 3 12 3S21 9 21 9M13.35 17H3V18C3 19.66 4.34 21 6 21H13.35C13.13 20.37 13 19.7 13 19C13 18.3 13.13 17.63 13.35 17M21.86 13.73C21.95 13.5 22 13.26 22 13C22 11.9 21.11 11 20 11H11L8.5 13L6 11H4C2.9 11 2 11.9 2 13S2.9 15 4 15H14.54C15.64 13.78 17.23 13 19 13C20.04 13 21 13.26 21.86 13.73M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiHammer = \"M2 19.63L13.43 8.2L12.72 7.5L14.14 6.07L12 3.89C13.2 2.7 15.09 2.7 16.27 3.89L19.87 7.5L18.45 8.91H21.29L22 9.62L18.45 13.21L17.74 12.5V9.62L16.27 11.04L15.56 10.33L4.13 21.76L2 19.63Z\";\nexport var mdiHammerScrewdriver = \"M16.06 13.09L21.69 18.68L18.37 21.96L12.78 16.37V15.45L15.14 13.09H16.06M16.97 10.56L16 9.6L11.21 14.4V16.37L5.58 22L2.3 18.68L7.89 13.09H9.86L10.64 12.31L6.8 8.46H5.5L2.69 5.62L5.31 3L8.11 5.8V7.11L12 10.95L14.66 8.29L13.7 7.28L15 5.97H12.34L11.69 5.32L15 2L15.66 2.66V5.32L16.97 4L20.25 7.28C21.34 8.38 21.34 10.17 20.25 11.26L18.28 9.25L16.97 10.56Z\";\nexport var mdiHammerSickle = \"M22 20.59L20.59 22L17.45 18.86C16.89 19.23 16.3 19.56 15.66 19.78C14 20.36 12.2 20.4 10.53 19.88C9.5 19.58 8.56 19.05 7.75 18.37L4.56 21.56C4 22.15 3.03 22.15 2.44 21.56C1.86 21 1.86 20 2.44 19.44L5.82 16.06L8.47 15.54C9.19 16.45 10.19 17.13 11.28 17.5C12.44 17.85 13.72 17.84 14.87 17.46C15.16 17.37 15.44 17.26 15.7 17.12L7.6 9L5.83 10.78L3 7.95L7.95 3L12.19 4.41L9 7.6L17.31 15.89C17.5 15.71 17.65 15.53 17.8 15.33C19.3 13.36 19.42 10.42 18.09 8C16.78 5.57 14.5 3.55 12 2C13.41 2.5 14.76 3.17 16 4.04C17.24 4.91 18.43 5.93 19.33 7.25C20.23 8.54 20.87 10.12 21 11.79C21.1 13.47 20.66 15.23 19.7 16.65C19.5 17 19.24 17.28 19 17.56L22 20.59Z\";\nexport var mdiHammerWrench = \"M13.78 15.3L19.78 21.3L21.89 19.14L15.89 13.14L13.78 15.3M17.5 10.1C17.11 10.1 16.69 10.05 16.36 9.91L4.97 21.25L2.86 19.14L10.27 11.74L8.5 9.96L7.78 10.66L6.33 9.25V12.11L5.63 12.81L2.11 9.25L2.81 8.55H5.62L4.22 7.14L7.78 3.58C8.95 2.41 10.83 2.41 12 3.58L9.89 5.74L11.3 7.14L10.59 7.85L12.38 9.63L14.2 7.75C14.06 7.42 14 7 14 6.63C14 4.66 15.56 3.11 17.5 3.11C18.09 3.11 18.61 3.25 19.08 3.53L16.41 6.2L17.91 7.7L20.58 5.03C20.86 5.5 21 6 21 6.63C21 8.55 19.45 10.1 17.5 10.1Z\";\nexport var mdiHandBackLeft = \"M3 16V5.75C3 5.06 3.56 4.5 4.25 4.5S5.5 5.06 5.5 5.75V12H6.5V2.75C6.5 2.06 7.06 1.5 7.75 1.5C8.44 1.5 9 2.06 9 2.75V12H10V1.25C10 .56 10.56 0 11.25 0S12.5 .56 12.5 1.25V12H13.5V3.25C13.5 2.56 14.06 2 14.75 2S16 2.56 16 3.25V15H16.75L18.16 11.47C18.38 10.92 18.84 10.5 19.4 10.31L20.19 10.05C21 9.79 21.74 10.58 21.43 11.37L18.4 19C17.19 22 14.26 24 11 24C6.58 24 3 20.42 3 16Z\";\nexport var mdiHandBackLeftOff = \"M22.11 21.46L2.39 1.73L1.11 3L3.21 5.1C3.09 5.29 3 5.5 3 5.75V16C3 20.42 6.58 24 11 24C13.93 24 16.58 22.39 17.97 19.86L20.84 22.73L22.11 21.46M5.5 12V7.39L6.5 8.39V12H5.5M10 12H9V10.89L10 11.89V12M16 12.8L13.5 10.3V3.25C13.5 2.56 14.06 2 14.75 2S16 2.56 16 3.25V12.8M19.5 16.28L17.16 13.96L18.16 11.47C18.38 10.92 18.84 10.5 19.4 10.31L20.19 10.05C21 9.79 21.74 10.58 21.43 11.37L19.5 16.28M9 5.8L6.5 3.3V2.75C6.5 2.06 7.06 1.5 7.75 1.5S9 2.06 9 2.75V5.8M12.5 9.3L10 6.8V1.25C10 .56 10.56 0 11.25 0S12.5 .56 12.5 1.25V9.3Z\";\nexport var mdiHandBackLeftOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L3.56 5.45C3.21 5.87 3 6.41 3 7V16C3 20.42 6.58 24 11 24C13.94 24 16.62 22.45 18.12 20L20.84 22.73L22.11 21.46M11 22C7.69 22 5 19.31 5 16V7C5 6.97 5 6.94 5 6.91L6 7.89V12H8V9.89L9 10.89V12H10.11L16.65 18.54C15.57 20.64 13.41 22 11 22M8 4.8L6.21 3C6.59 2.12 7.47 1.5 8.5 1.5C8.73 1.5 8.96 1.53 9.17 1.59C9.54 .66 10.44 0 11.5 0C12.73 0 13.75 .89 13.96 2.06C14.13 2 14.31 2 14.5 2C15.88 2 17 3.12 17 4.5V10.39C17.34 10.08 17.76 9.85 18.22 9.73L19 9.5C19.82 9.29 20.69 9.61 21.18 10.35C21.56 10.92 21.58 11.66 21.33 12.3L19.67 16.47L18.13 14.93L19.5 11.45L19 11.59C18.5 11.71 18.15 12.05 18 12.5L17.34 14.14L15 11.8V4.5C15 4.22 14.78 4 14.5 4S14 4.22 14 4.5V10.8L12 8.8V2.5C12 2.22 11.78 2 11.5 2S11 2.22 11 2.5V7.8L9 5.8V4C9 3.72 8.78 3.5 8.5 3.5S8 3.72 8 4V4.8Z\";\nexport var mdiHandBackLeftOutline = \"M3 16C3 20.42 6.58 24 11 24C14.43 24 17.5 21.91 18.77 18.73L21.33 12.3C21.58 11.66 21.56 10.92 21.18 10.35C20.69 9.61 19.82 9.29 19 9.5L18.22 9.73C17.76 9.85 17.34 10.08 17 10.39V4.5C17 3.12 15.88 2 14.5 2C14.31 2 14.13 2 13.96 2.06C13.75 .89 12.73 0 11.5 0C10.44 0 9.54 .66 9.17 1.59C8.96 1.53 8.73 1.5 8.5 1.5C7.12 1.5 6 2.62 6 4V4.55C5.84 4.5 5.67 4.5 5.5 4.5C4.12 4.5 3 5.62 3 7V16M5 7C5 6.72 5.22 6.5 5.5 6.5S6 6.72 6 7V12H8V4C8 3.72 8.22 3.5 8.5 3.5S9 3.72 9 4V12H11V2.5C11 2.22 11.22 2 11.5 2S12 2.22 12 2.5V12H14V4.5C14 4.22 14.22 4 14.5 4S15 4.22 15 4.5V15H17L18 12.5C18.15 12.05 18.5 11.71 19 11.59L19.5 11.45L16.91 18C15.95 20.41 13.61 22 11 22C7.69 22 5 19.31 5 16V7Z\";\nexport var mdiHandBackRight = \"M13 24C9.74 24 6.81 22 5.6 19L2.57 11.37C2.26 10.58 3 9.79 3.81 10.05L4.6 10.31C5.16 10.5 5.62 10.92 5.84 11.47L7.25 15H8V3.25C8 2.56 8.56 2 9.25 2S10.5 2.56 10.5 3.25V12H11.5V1.25C11.5 .56 12.06 0 12.75 0S14 .56 14 1.25V12H15V2.75C15 2.06 15.56 1.5 16.25 1.5C16.94 1.5 17.5 2.06 17.5 2.75V12H18.5V5.75C18.5 5.06 19.06 4.5 19.75 4.5S21 5.06 21 5.75V16C21 20.42 17.42 24 13 24Z\";\nexport var mdiHandBackRightOff = \"M20.84 22.73L19.17 21.06C17.7 22.85 15.5 24 13 24C9.74 24 6.81 22 5.6 19L2.57 11.37C2.26 10.58 3 9.79 3.81 10.05L4.6 10.31C5.16 10.5 5.62 10.92 5.84 11.47L7.25 15H8V9.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M14 1.25C14 .56 13.44 0 12.75 0S11.5 .56 11.5 1.25V8.3L14 10.8V1.25M21 16V5.75C21 5.06 20.44 4.5 19.75 4.5S18.5 5.06 18.5 5.75V12H17.5V2.75C17.5 2.06 16.94 1.5 16.25 1.5S15 2.06 15 2.75V11.8L20.83 17.63C20.94 17.11 21 16.56 21 16M10.5 3.25C10.5 2.56 9.94 2 9.25 2S8 2.56 8 3.25V4.8L10.5 7.3V3.25Z\";\nexport var mdiHandBackRightOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L7 8.89V10.39C6.66 10.08 6.24 9.85 5.78 9.73L5 9.5C4.18 9.29 3.31 9.61 2.82 10.35C2.44 10.92 2.42 11.66 2.67 12.3L5.23 18.73C6.5 21.91 9.57 24 13 24C15.5 24 17.7 22.85 19.17 21.06L20.84 22.73L22.11 21.46M13 22C10.39 22 8.05 20.41 7.09 18L4.5 11.45L5 11.59C5.5 11.71 5.85 12.05 6 12.5L7 15H9V10.89L17.75 19.64C16.66 21.07 14.94 22 13 22M9 5.8L7.09 3.89C7.36 2.8 8.33 2 9.5 2C9.69 2 9.87 2 10.04 2.06C10.25 .89 11.27 0 12.5 0C13.56 0 14.46 .66 14.83 1.59C15.04 1.53 15.27 1.5 15.5 1.5C16.88 1.5 18 2.62 18 4V4.55C18.16 4.5 18.33 4.5 18.5 4.5C19.88 4.5 21 5.62 21 7V16C21 16.56 20.94 17.11 20.83 17.63L19 15.8V7C19 6.72 18.78 6.5 18.5 6.5S18 6.72 18 7V12H16V4C16 3.72 15.78 3.5 15.5 3.5S15 3.72 15 4V11.8L13 9.8V2.5C13 2.22 12.78 2 12.5 2S12 2.22 12 2.5V8.8L10 6.8V4.5C10 4.22 9.78 4 9.5 4S9 4.22 9 4.5V5.8Z\";\nexport var mdiHandBackRightOutline = \"M21 7C21 5.62 19.88 4.5 18.5 4.5C18.33 4.5 18.16 4.5 18 4.55V4C18 2.62 16.88 1.5 15.5 1.5C15.27 1.5 15.04 1.53 14.83 1.59C14.46 .66 13.56 0 12.5 0C11.27 0 10.25 .89 10.04 2.06C9.87 2 9.69 2 9.5 2C8.12 2 7 3.12 7 4.5V10.39C6.66 10.08 6.24 9.85 5.78 9.73L5 9.5C4.18 9.29 3.31 9.61 2.82 10.35C2.44 10.92 2.42 11.66 2.67 12.3L5.23 18.73C6.5 21.91 9.57 24 13 24C17.42 24 21 20.42 21 16V7M19 16C19 19.31 16.31 22 13 22C10.39 22 8.05 20.41 7.09 18L4.5 11.45L5 11.59C5.5 11.71 5.85 12.05 6 12.5L7 15H9V4.5C9 4.22 9.22 4 9.5 4S10 4.22 10 4.5V12H12V2.5C12 2.22 12.22 2 12.5 2S13 2.22 13 2.5V12H15V4C15 3.72 15.22 3.5 15.5 3.5S16 3.72 16 4V12H18V7C18 6.72 18.22 6.5 18.5 6.5S19 6.72 19 7V16Z\";\nexport var mdiHandClap = \"M7.9 21.47C6 19.81 5.35 17.17 6.18 14.84L8.31 8.91C8.53 8.3 9.36 8.22 9.69 8.78L10 9.33C10.24 9.72 10.29 10.2 10.14 10.63L9.16 13.37L9.59 13.75L15.55 7C15.9 6.6 16.5 6.56 16.91 6.91C17.3 7.26 17.34 7.87 17 8.26L12.55 13.29L13.13 13.8L18.58 7.62C18.93 7.22 19.54 7.18 19.93 7.53C20.33 7.88 20.37 8.5 20 8.89L14.56 15.07L15.14 15.58L19.83 10.26C20.18 9.86 20.79 9.82 21.18 10.17S21.62 11.13 21.27 11.5L16.58 16.84L17.15 17.35L20.32 13.76C20.67 13.36 21.28 13.32 21.68 13.67S22.11 14.63 21.76 15L16.56 20.92C14.32 23.47 10.44 23.71 7.9 21.47M11.59 9.22L14.43 6C14.67 5.73 14.97 5.5 15.3 5.37L15.68 4.59C15.92 4.12 15.72 3.54 15.24 3.31C14.77 3.08 14.19 3.28 13.96 3.75L11.45 8.89C11.5 9 11.56 9.11 11.59 9.22M11 8L11 8.05L13.78 2.38C14 1.9 13.81 1.33 13.33 1.1C12.86 .865 12.28 1.06 12.05 1.54L9.41 6.95C10.06 7.06 10.63 7.43 11 8M4.77 14.33L6.9 8.4C7.17 7.65 7.8 7.14 8.55 6.97L10.69 2.58C10.92 2.1 10.72 1.53 10.25 1.3C9.77 1.07 9.2 1.26 8.97 1.74L5 9.84L4.5 9.59L4.71 6.68C4.75 6.23 4.57 5.78 4.25 5.46L3.79 5C3.32 4.57 2.55 4.86 2.5 5.5L2 11.79C1.87 13.83 2.77 15.78 4.35 17C4.33 16.12 4.46 15.21 4.77 14.33Z\";\nexport var mdiHandClapOff = \"M22.11 21.46L2.39 1.73L1.11 3L2.97 4.86C2.72 4.96 2.5 5.19 2.5 5.5L2 11.79C1.87 13.83 2.77 15.78 4.35 17C4.33 16.12 4.46 15.21 4.77 14.33L6.8 8.69L7.97 9.86L6.18 14.84C5.35 17.17 6 19.81 7.9 21.47C10.44 23.71 14.32 23.47 16.56 20.92L17.72 19.61L20.84 22.73L22.11 21.46M5 9.84L4.5 9.59L4.71 6.68C4.71 6.65 4.71 6.63 4.71 6.6L5.97 7.86L5 9.84M9.59 13.75L9.16 13.37L9.77 11.66L10.65 12.54L9.59 13.75M14.94 11.74L18.58 7.62C18.93 7.22 19.54 7.18 19.93 7.53C20.33 7.88 20.37 8.5 20 8.89L16.3 13.1L14.94 11.74M19.83 10.26C20.18 9.86 20.79 9.82 21.18 10.17C21.57 10.5 21.62 11.13 21.27 11.5L18.2 15L16.85 13.65L19.83 10.26M21.68 13.67C22.08 14 22.11 14.63 21.76 15L20.1 16.9L18.74 15.54L20.32 13.76C20.67 13.36 21.28 13.32 21.68 13.67M15.55 7C15.9 6.6 16.5 6.56 16.91 6.91C17.3 7.26 17.34 7.87 17 8.26L14.4 11.2L13.04 9.84L15.55 7M11.66 8.46L13.96 3.75C14.19 3.28 14.77 3.08 15.24 3.31C15.72 3.54 15.92 4.12 15.68 4.59L15.3 5.37C14.97 5.5 14.67 5.73 14.43 6L12 8.78L11.66 8.46M9.08 5.88L7.64 4.44L8.97 1.74C9.2 1.26 9.77 1.07 10.25 1.3C10.72 1.53 10.92 2.1 10.69 2.58L9.08 5.88M9.65 6.45L12.05 1.54C12.28 1.06 12.86 .865 13.33 1.1C13.81 1.33 14 1.9 13.78 2.38L11.08 7.88L9.65 6.45Z\";\nexport var mdiHandCoin = \"M16 12C18.76 12 21 9.76 21 7S18.76 2 16 2 11 4.24 11 7 13.24 12 16 12M21.45 17.6C21.06 17.2 20.57 17 20 17H13L10.92 16.27L11.25 15.33L13 16H15.8C16.15 16 16.43 15.86 16.66 15.63S17 15.12 17 14.81C17 14.27 16.74 13.9 16.22 13.69L8.95 11H7V20L14 22L22.03 19C22.04 18.47 21.84 18 21.45 17.6M5 11H.984V22H5V11Z\";\nexport var mdiHandCoinOutline = \"M16 2C13.24 2 11 4.24 11 7S13.24 12 16 12 21 9.76 21 7 18.76 2 16 2M16 10C14.34 10 13 8.66 13 7S14.34 4 16 4 19 5.34 19 7 17.66 10 16 10M19 16H17C17 14.8 16.25 13.72 15.13 13.3L8.97 11H1V22H7V20.56L14 22.5L22 20V19C22 17.34 20.66 16 19 16M5 20H3V13H5V20M13.97 20.41L7 18.5V13H8.61L14.43 15.17C14.77 15.3 15 15.63 15 16C15 16 13 15.95 12.7 15.85L10.32 15.06L9.69 16.96L12.07 17.75C12.58 17.92 13.11 18 13.65 18H19C19.39 18 19.74 18.24 19.9 18.57L13.97 20.41Z\";\nexport var mdiHandCycle = \"M19.5 13C18.18 13 17.05 13.74 16.45 14.81L13.23 12.18L10.96 13L9.87 11.32L11.21 11.69L13.87 9.5L12.93 8.36L10.9 10.03L7.96 9C7.96 9 7.96 9 7.95 9C7.54 8.85 7.08 8.89 6.69 9.14C6.04 9.56 5.83 10.39 6.16 11.07C5.95 11.03 5.73 11 5.5 11C3 11 1 13 1 15.5S3 20 5.5 20 10 18 10 15.5C10 15.37 9.97 15.25 9.96 15.12L13 14L16 16.5L16 16.5C16 18.43 17.57 20 19.5 20S23 18.43 23 16.5 21.43 13 19.5 13M5.5 18.5C3.85 18.5 2.5 17.15 2.5 15.5S3.85 12.5 5.5 12.5 8.5 13.85 8.5 15.5 7.15 18.5 5.5 18.5M19.5 18.5C18.4 18.5 17.5 17.6 17.5 16.5S18.4 14.5 19.5 14.5 21.5 15.4 21.5 16.5 20.6 18.5 19.5 18.5M6.44 7.57C5.85 7 5.85 6.06 6.44 5.5C7.03 4.89 7.97 4.89 8.56 5.5C9.15 6.06 9.15 7 8.56 7.57C7.97 8.15 7.03 8.15 6.44 7.57\";\nexport var mdiHandExtended = \"M20 13C20.6 13 21.1 13.2 21.5 13.6C21.8 14 22 14.5 22 15L14 18L7 16V7H8.9L16.2 9.7C16.7 9.9 17 10.3 17 10.8C17 11.1 16.9 11.4 16.7 11.6S16.1 12 15.8 12H13L11.2 11.3L10.9 12.2L13 13H20M1 7H5V18H1V7Z\";\nexport var mdiHandExtendedOutline = \"M22 15V16L14 18.5L7 16.6V18H1V7H9L15.2 9.3C16.2 9.7 17 10.8 17 12H19C20.7 12 22 13.3 22 15M5 16V9H3V16H5M19.9 14.6C19.7 14.2 19.4 14 19 14H13.6C13.1 14 12.5 13.9 12 13.8L9.7 13L10.3 11.1L12.7 11.9C13 11.9 15 12 15 12C15 11.6 14.8 11.3 14.4 11.2L8.6 9H7V14.5L14 16.4L19.9 14.6Z\";\nexport var mdiHandFrontLeft = \"M3 9.25V15.75C3 20.31 6.69 24 11.25 24S19.5 20.31 19.5 15.75V5.75C19.5 5.06 18.94 4.5 18.25 4.5S17 5.06 17 5.75V12H16V2.75C16 2.06 15.44 1.5 14.75 1.5S13.5 2.06 13.5 2.75V11H12.5V1.25C12.5 .56 11.94 0 11.25 0S10 .56 10 1.25V11H9V3.25C9 2.56 8.44 2 7.75 2C7.06 2 6.5 2.56 6.5 3.25V14.03C8.47 14.28 10 15.96 10 18H9C9 16.35 7.65 15 6 15H5.5V9.25C5.5 8.56 4.94 8 4.25 8S3 8.56 3 9.25Z\";\nexport var mdiHandFrontLeftOutline = \"M3 10.5V15.5C3 20.19 6.81 24 11.5 24S20 20.19 20 15.5V7C20 5.62 18.88 4.5 17.5 4.5C17.33 4.5 17.16 4.5 17 4.55V4C17 2.62 15.88 1.5 14.5 1.5C14.27 1.5 14.04 1.53 13.83 1.59C13.46 .66 12.56 0 11.5 0C10.27 0 9.25 .89 9.04 2.06C8.87 2 8.69 2 8.5 2C7.12 2 6 3.12 6 4.5V8.05C5.84 8 5.67 8 5.5 8C4.12 8 3 9.12 3 10.5M5 10.5C5 10.22 5.22 10 5.5 10S6 10.22 6 10.5V15C7.66 15 9 16.34 9 18H11C11 15.95 9.77 14.19 8 13.42V4.5C8 4.22 8.22 4 8.5 4S9 4.22 9 4.5V11H11V2.5C11 2.22 11.22 2 11.5 2S12 2.22 12 2.5V11H14V4C14 3.72 14.22 3.5 14.5 3.5S15 3.72 15 4V12H17V7C17 6.72 17.22 6.5 17.5 6.5S18 6.72 18 7V15.5C18 19.09 15.09 22 11.5 22S5 19.09 5 15.5V10.5Z\";\nexport var mdiHandFrontRight = \"M19.75 8C19.06 8 18.5 8.56 18.5 9.25V15H18C16.35 15 15 16.35 15 18H14C14 15.96 15.53 14.28 17.5 14.03V3.25C17.5 2.56 16.94 2 16.25 2C15.56 2 15 2.56 15 3.25V11H14V1.25C14 .56 13.44 0 12.75 0S11.5 .56 11.5 1.25V11H10.5V2.75C10.5 2.06 9.94 1.5 9.25 1.5S8 2.06 8 2.75V12H7V5.75C7 5.06 6.44 4.5 5.75 4.5S4.5 5.06 4.5 5.75V15.75C4.5 20.31 8.19 24 12.75 24S21 20.31 21 15.75V9.25C21 8.56 20.44 8 19.75 8Z\";\nexport var mdiHandFrontRightOutline = \"M18.5 8C18.33 8 18.16 8 18 8.05V4.5C18 3.12 16.88 2 15.5 2C15.31 2 15.13 2 14.96 2.06C14.75 .89 13.73 0 12.5 0C11.44 0 10.54 .66 10.17 1.59C9.96 1.53 9.73 1.5 9.5 1.5C8.12 1.5 7 2.62 7 4V4.55C6.84 4.5 6.67 4.5 6.5 4.5C5.12 4.5 4 5.62 4 7V15.5C4 20.19 7.81 24 12.5 24S21 20.19 21 15.5V10.5C21 9.12 19.88 8 18.5 8M19 15.5C19 19.09 16.09 22 12.5 22S6 19.09 6 15.5V7C6 6.72 6.22 6.5 6.5 6.5S7 6.72 7 7V12H9V4C9 3.72 9.22 3.5 9.5 3.5S10 3.72 10 4V11H12V2.5C12 2.22 12.22 2 12.5 2S13 2.22 13 2.5V11H15V4.5C15 4.22 15.22 4 15.5 4S16 4.22 16 4.5V13.42C14.23 14.19 13 15.95 13 18H15C15 16.34 16.34 15 18 15V10.5C18 10.22 18.22 10 18.5 10S19 10.22 19 10.5V15.5Z\";\nexport var mdiHandHeart = \"M20 17Q20.86 17 21.45 17.6T22.03 19L14 22L7 20V11H8.95L16.22 13.69Q17 14 17 14.81 17 15.28 16.66 15.63T15.8 16H13L11.25 15.33L10.92 16.27L13 17H20M16 3.23Q17.06 2 18.7 2 20.06 2 21 3T22 5.3Q22 6.33 21 7.76T19.03 10.15 16 13Q13.92 11.11 12.94 10.15T10.97 7.76 10 5.3Q10 3.94 10.97 3T13.31 2Q14.91 2 16 3.23M.984 11H5V22H.984V11Z\";\nexport var mdiHandHeartOutline = \"M16 3.23C16.71 2.41 17.61 2 18.7 2C19.61 2 20.37 2.33 21 3C21.63 3.67 21.96 4.43 22 5.3C22 6 21.67 6.81 21 7.76S19.68 9.5 19.03 10.15C18.38 10.79 17.37 11.74 16 13C14.61 11.74 13.59 10.79 12.94 10.15S11.63 8.71 10.97 7.76C10.31 6.81 10 6 10 5.3C10 4.39 10.32 3.63 10.97 3C11.62 2.37 12.4 2.04 13.31 2C14.38 2 15.27 2.41 16 3.23M22 19V20L14 22.5L7 20.56V22H1V11H8.97L15.13 13.3C16.25 13.72 17 14.8 17 16H19C20.66 16 22 17.34 22 19M5 20V13H3V20H5M19.9 18.57C19.74 18.24 19.39 18 19 18H13.65C13.11 18 12.58 17.92 12.07 17.75L9.69 16.96L10.32 15.06L12.7 15.85C13 15.95 15 16 15 16C15 15.63 14.77 15.3 14.43 15.17L8.61 13H7V18.5L13.97 20.41L19.9 18.57Z\";\nexport var mdiHandOkay = \"M13.3,19.26L18.96,13.61L21.08,15.73L15.42,21.38L13.3,19.26M16.5,11.13L13.4,8.05C13.27,7.92 13.13,7.83 13,7.76L11.88,3.47C11.74,2.93 11.2,2.61 10.66,2.75C10.13,2.88 9.81,3.43 9.94,3.96L11,8.03V8.03L8.67,3.19C8.44,2.69 7.84,2.5 7.34,2.71C6.84,2.95 6.63,3.55 6.87,4.05L8.56,7.59L5.19,4.25C4.8,3.86 4.16,3.86 3.77,4.25C3.38,4.65 3.39,5.28 3.78,5.67L7.5,9.37L6.8,9.64L5.72,10.07L3.81,11.39C3.81,11.39 3,12.44 2.93,12.89C2.85,13.34 3.72,15.6 3.72,15.6H3.73C3.89,15.94 4.23,16.18 4.63,16.18A1,1 0 0,0 5.63,15.18C5.63,15.08 5.6,15 5.57,14.91L5.59,14.9L5,13.17L6.23,12.19C6.7,12.21 7.71,12.29 8.2,12.32C10.93,14.77 8.35,15.73 8.35,15.73L4.89,16.79L4.72,16.93C4.5,17.13 4.41,17.4 4.42,17.68L4.44,18.75L10.87,18.25C11.25,18.26 11.61,18.12 11.89,17.85L16.5,13.25C17.03,12.71 17.05,11.7 16.5,11.13Z\";\nexport var mdiHandPeace = \"M7,19H15V22H7V19M16.15,12V12L12.97,10.34C12.82,10.34 12.69,10.4 12.6,10.5L12.3,10.81L12.89,13.23L11.91,13.47L10.72,8.5L9.25,9.18L10.29,13.47L9.32,13.7L8.32,9.59L7.85,9.8C7.35,10 7,10.53 7,11.14V15.5C7,16.3 7.73,17 8.5,17H15C15.39,17 15.74,16.84 16,16.57L16.5,16.16C16.5,16.16 17,15.78 17,15.36V13.7C17,13.7 17,12.56 16.15,12M16.94,1C16.4,0.91 15.87,1.25 15.76,1.8L14.69,7.97C14.47,7.94 14.38,7.86 14.08,7.83L13.65,7.88L12.41,1.8C12.3,1.26 11.78,0.91 11.24,1C10.69,1.13 10.34,1.66 10.45,2.2L11.65,8.11V8.11L12,9.67C12.28,9.47 12.61,9.34 12.97,9.34H13.31L16.31,10.95L17.72,2.2C17.83,1.66 17.5,1.13 16.94,1Z\";\nexport var mdiHandPeaceVariant = \"M7,19H15V22H7V19M16.94,1C16.4,0.91 15.87,1.25 15.76,1.8L14.75,7.57C14.53,7.54 14.29,7.5 14,7.47L13.57,7.5L12.41,1.8C12.31,1.26 11.78,0.91 11.24,1C10.7,1.13 10.35,1.66 10.45,2.2L11.65,8.11L7.85,9.8C7.35,10 7,10.53 7,11.14V15.5C7,16.3 7.73,17 8.5,17H15C15.39,17 15.74,16.84 16,16.57L16.5,16.16C16.5,16.16 17,15.78 17,15.36V13C17,13 17,11.86 16.13,11.3L17.71,2.2C17.83,1.66 17.5,1.13 16.94,1Z\";\nexport var mdiHandPointingDown = \"M9.9,21V11L6.7,12.69L6.5,12.72C6.19,12.72 5.93,12.6 5.74,12.4L5,11.63L9.9,7.43C10.16,7.16 10.5,7 10.9,7H17.4C18.17,7 18.9,7.7 18.9,8.5V12.86C18.9,13.47 18.55,14 18.05,14.2L13.11,16.4L11.9,16.53V21A1,1 0 0,1 10.9,22A1,1 0 0,1 9.9,21M18.9,5H10.9V2H18.9V5Z\";\nexport var mdiHandPointingLeft = \"M3,9H13L11.31,5.8L11.28,5.58C11.28,5.29 11.4,5.03 11.6,4.84L12.37,4.1L16.57,9C16.84,9.26 17,9.61 17,10V16.5C17,17.27 16.3,18 15.5,18H11.14C10.53,18 10,17.65 9.8,17.15L7.6,12.21L7.47,11H3A1,1 0 0,1 2,10A1,1 0 0,1 3,9M19,18V10H22V18H19Z\";\nexport var mdiHandPointingRight = \"M21,9A1,1 0 0,1 22,10A1,1 0 0,1 21,11H16.53L16.4,12.21L14.2,17.15C14,17.65 13.47,18 12.86,18H8.5C7.7,18 7,17.27 7,16.5V10C7,9.61 7.16,9.26 7.43,9L11.63,4.1L12.4,4.84C12.6,5.03 12.72,5.29 12.72,5.58L12.69,5.8L11,9H21M2,18V10H5V18H2Z\";\nexport var mdiHandPointingUp = \"M14,3V13L17.2,11.31L17.42,11.28C17.71,11.28 17.97,11.4 18.16,11.6L18.9,12.37L14,16.57C13.74,16.84 13.39,17 13,17H6.5C5.73,17 5,16.3 5,15.5V11.14C5,10.53 5.35,10 5.85,9.8L10.79,7.6L12,7.47V3A1,1 0 0,1 13,2A1,1 0 0,1 14,3M5,19H13V22H5V19Z\";\nexport var mdiHandSaw = \"M9.8,17L5.9,11.6L20,2L22,5V8H19V11H16V14H13V17M9.7,18.7L9.2,21.5L7.6,22.7C6.7,23.3 5.5,23.1 4.8,22.2L1.3,17.3C0.7,16.4 0.9,15.2 1.8,14.5L5.1,12.2L9.7,18.7M4.6,15L3,16.1L6.5,21L8.1,19.8L4.6,15Z\";\nexport var mdiHandWash = \"M17 5L17.62 6.37L19 7L17.62 7.63L17 9L16.36 7.63L15 7L16.36 6.37L17 5M11 6.13V4H13C13.57 4 14.1 4.17 14.55 4.45L16 3C15.15 2.39 14.13 2 13 2H7.5V4H9V6.14C7.23 6.5 5.81 7.8 5.26 9.5H9.24L15 11.65V11.03C15 8.61 13.28 6.59 11 6.13M1 22H5V11H1V22M20 17H13L10.91 16.27L11.24 15.33L13 16H15.82C16.47 16 17 15.47 17 14.82C17 14.33 16.69 13.89 16.23 13.71L8.97 11H7V20L14 22L22 19C22 17.9 21.11 17 20 17M20 14C21.1 14 22 13.1 22 12S20 8 20 8 18 10.9 18 12 18.9 14 20 14Z\";\nexport var mdiHandWashOutline = \"M17 5L17.62 6.37L19 7L17.62 7.63L17 9L16.36 7.63L15 7L16.36 6.37L17 5M20 14C21.1 14 22 13.1 22 12S20 8 20 8 18 10.9 18 12 18.9 14 20 14M11 6.1V4H13C13.57 4 14.1 4.17 14.55 4.45L16 3C15.15 2.39 14.13 2 13 2H7.5V4H9V6.11C7.22 6.5 5.8 7.79 5.25 9.5H7.41C7.94 8.61 8.89 8 10 8C11.62 8 12.94 9.29 13 10.9L15 11.65V11C15 8.58 13.28 6.56 11 6.1M22 19V20L14 22.5L7 20.56V22H1V11H8.97L15.13 13.3C16.25 13.72 17 14.8 17 16H19C20.66 16 22 17.34 22 19M5 20V13H3V20H5M19.9 18.57C19.74 18.24 19.39 18 19 18H13.65C13.11 18 12.58 17.92 12.07 17.75L9.69 16.96L10.32 15.06L12.7 15.85C13 15.95 15 16 15 16C15 15.63 14.77 15.3 14.43 15.17L8.61 13H7V18.5L13.97 20.41L19.9 18.57Z\";\nexport var mdiHandWater = \"M17.42 22.5H5.33C3.5 22.5 2 21 2 19.17V13.08C2 12.18 2.36 11.33 3 10.71L8.63 5.17C8.63 5.17 9.66 6.22 9.67 6.25C9.83 6.43 9.92 6.66 9.92 6.91C9.92 7.09 9.87 7.26 9.78 7.41C9.77 7.44 8 10 8 10H18.67C19.36 10 19.92 10.56 19.92 11.25C19.92 11.94 19.36 12.5 18.67 12.5H12.83V13.33H20.75C21.44 13.33 22 13.89 22 14.58C22 15.28 21.44 15.83 20.75 15.83H12.83V16.67H19.92C20.61 16.67 21.17 17.22 21.17 17.92C21.17 18.61 20.61 19.17 19.92 19.17H12.83V20H17.42C18.11 20 18.67 20.56 18.67 21.25C18.67 21.94 18.11 22.5 17.42 22.5M13.5 4.8C13.5 4.8 12 6.46 12 7.5C12 9.5 15 9.5 15 7.5C15 6.46 13.5 4.8 13.5 4.8M18.5 1C18.5 1 16 3.76 16 5.5C16 8.83 21 8.83 21 5.5C21 3.76 18.5 1 18.5 1Z\";\nexport var mdiHandWave = \"M23 17C23 20.31 20.31 23 17 23V21.5C19.5 21.5 21.5 19.5 21.5 17H23M1 7C1 3.69 3.69 1 7 1V2.5C4.5 2.5 2.5 4.5 2.5 7H1M8 4.32L3.41 8.92C.19 12.14 .19 17.37 3.41 20.59S11.86 23.81 15.08 20.59L22.15 13.5C22.64 13.03 22.64 12.24 22.15 11.75C21.66 11.26 20.87 11.26 20.38 11.75L15.96 16.17L15.25 15.46L21.79 8.92C22.28 8.43 22.28 7.64 21.79 7.15S20.5 6.66 20 7.15L14.19 13L13.5 12.27L20.37 5.38C20.86 4.89 20.86 4.1 20.37 3.61S19.09 3.12 18.6 3.61L11.71 10.5L11 9.8L16.5 4.32C17 3.83 17 3.04 16.5 2.55S15.22 2.06 14.73 2.55L7.11 10.17C8.33 11.74 8.22 14 6.78 15.45L6.07 14.74C7.24 13.57 7.24 11.67 6.07 10.5L5.72 10.15L9.79 6.08C10.28 5.59 10.28 4.8 9.79 4.31C9.29 3.83 8.5 3.83 8 4.32Z\";\nexport var mdiHandWaveOutline = \"M7.03 4.95L3.5 8.5C.17 11.81 .17 17.19 3.5 20.5S12.19 23.83 15.5 20.5L21.5 14.5C22.5 13.53 22.5 11.94 21.5 10.96C21.4 10.84 21.27 10.73 21.13 10.64L21.5 10.25C22.5 9.28 22.5 7.69 21.5 6.71C21.36 6.55 21.17 6.41 21 6.3C21.38 5.38 21.21 4.28 20.46 3.53C19.59 2.66 18.24 2.57 17.26 3.25C17.16 3.1 17.05 2.96 16.92 2.83C15.95 1.86 14.36 1.86 13.38 2.83L10.87 5.34C10.78 5.2 10.67 5.07 10.55 4.95C9.58 4 8 4 7.03 4.95M8.44 6.37C8.64 6.17 8.95 6.17 9.15 6.37S9.35 6.88 9.15 7.08L5.97 10.26C7.14 11.43 7.14 13.33 5.97 14.5L7.38 15.91C8.83 14.46 9.2 12.34 8.5 10.55L14.8 4.25C15 4.05 15.31 4.05 15.5 4.25S15.71 4.76 15.5 4.96L10.91 9.56L12.32 10.97L18.33 4.96C18.53 4.76 18.84 4.76 19.04 4.96C19.24 5.16 19.24 5.47 19.04 5.67L13.03 11.68L14.44 13.09L19.39 8.14C19.59 7.94 19.9 7.94 20.1 8.14C20.3 8.34 20.3 8.65 20.1 8.85L14.44 14.5L15.85 15.92L19.39 12.38C19.59 12.18 19.9 12.18 20.1 12.38C20.3 12.58 20.3 12.89 20.1 13.09L14.1 19.1C11.56 21.64 7.45 21.64 4.91 19.1S2.37 12.45 4.91 9.91L8.44 6.37M23 17C23 20.31 20.31 23 17 23V21.5C19.5 21.5 21.5 19.5 21.5 17H23M1 7C1 3.69 3.69 1 7 1V2.5C4.5 2.5 2.5 4.5 2.5 7H1Z\";\nexport var mdiHandball = \"M15.83 10.43A6.93 6.93 0 0 1 18.39 14.86A6.64 6.64 0 0 1 17.5 19.5L15.78 18.5A5 5 0 0 0 16.44 16A5.22 5.22 0 0 0 15.46 13.06L9.18 23.93L7.44 22.95L10.44 17.75L8.71 16.76L7.21 19.34L5.5 18.36L10.63 9.45A7 7 0 0 1 8.8 5.46A6.91 6.91 0 0 1 9.69 1.1L11.43 2.13A4.84 4.84 0 0 0 10.91 5.9A4.74 4.74 0 0 0 13.21 8.93M16 5A2 2 0 1 0 18 7A2 2 0 0 0 16 5M13.5 1A1.5 1.5 0 1 0 15 2.5A1.5 1.5 0 0 0 13.5 1Z\";\nexport var mdiHandcuffs = \"M20.24 6.76C18.4 4.91 15.65 4.53 13.42 5.59L12.46 4.63C12.07 4.24 11.44 4.24 11.05 4.63L10.97 4.72C10.83 3.75 10 3 9 3C7.9 3 7 3.9 7 5C7 5.09 7 5.18 7.03 5.26C6.42 5.61 6 6.25 6 7C6 7.46 6.16 7.87 6.42 8.21C6.17 8.39 6 8.67 6 9V10.35C3.67 11.17 2 13.39 2 16C2 19.31 4.69 22 8 22S14 19.31 14 16C14 13.39 12.33 11.17 10 10.35V9C10 8.67 9.83 8.39 9.58 8.21C9.84 7.87 10 7.46 10 7C10 6.91 10 6.82 9.97 6.74C10.15 6.64 10.3 6.5 10.43 6.38C11.36 6.88 12 7.86 12 9V9.08C12.13 9.15 12.25 9.25 12.38 9.33C12.57 8.91 12.83 8.5 13.17 8.17C14.73 6.61 17.27 6.61 18.83 8.17C20.39 9.73 20.39 12.27 18.83 13.83C18.03 14.63 17 15 15.93 15C16 15.32 16 15.66 16 16C16 16.34 15.97 16.67 15.93 17C17.5 17 19.05 16.43 20.24 15.24C22.59 12.9 22.59 9.1 20.24 6.76M9 4C9.55 4 10 4.45 10 5C10 5.33 9.83 5.61 9.58 5.79C9.22 5.31 8.65 5 8 5C8 4.45 8.45 4 9 4M7.42 6.21C7.78 6.69 8.35 7 9 7C9 7.55 8.55 8 8 8S7 7.55 7 7C7 6.67 7.17 6.39 7.42 6.21M12 16C12 18.21 10.21 20 8 20S4 18.21 4 16C4 13.79 5.79 12 8 12S12 13.79 12 16Z\";\nexport var mdiHandsPray = \"M11.43 9.67C11.47 9.78 11.5 9.88 11.5 10V15.22C11.5 15.72 11.31 16.2 10.97 16.57L8.18 19.62L4.78 16.22L6 15L8.8 2.86C8.92 2.36 9.37 2 9.89 2C10.5 2 11 2.5 11 3.11V8.07C10.84 8.03 10.67 8 10.5 8C9.4 8 8.5 8.9 8.5 10V13C8.5 13.28 8.72 13.5 9 13.5S9.5 13.28 9.5 13V10C9.5 9.45 9.95 9 10.5 9C10.69 9 10.85 9.07 11 9.16C11.12 9.23 11.21 9.32 11.3 9.42C11.33 9.46 11.36 9.5 11.38 9.55C11.4 9.59 11.42 9.63 11.43 9.67M2 19L6 22L7.17 20.73L3.72 17.28L2 19M18 15L15.2 2.86C15.08 2.36 14.63 2 14.11 2C13.5 2 13 2.5 13 3.11V8.07C13.16 8.03 13.33 8 13.5 8C14.6 8 15.5 8.9 15.5 10V13C15.5 13.28 15.28 13.5 15 13.5S14.5 13.28 14.5 13V10C14.5 9.45 14.05 9 13.5 9C13.31 9 13.15 9.07 13 9.16C12.88 9.23 12.79 9.32 12.71 9.42C12.68 9.46 12.64 9.5 12.62 9.55C12.6 9.59 12.58 9.63 12.57 9.67C12.53 9.78 12.5 9.88 12.5 10V15.22C12.5 15.72 12.69 16.2 13.03 16.57L15.82 19.62L19.22 16.22L18 15M20.28 17.28L16.83 20.73L18 22L22 19L20.28 17.28Z\";\nexport var mdiHandshake = \"M11 6H14L17.29 2.7A1 1 0 0 1 18.71 2.7L21.29 5.29A1 1 0 0 1 21.29 6.7L19 9H11V11A1 1 0 0 1 10 12A1 1 0 0 1 9 11V8A2 2 0 0 1 11 6M5 11V15L2.71 17.29A1 1 0 0 0 2.71 18.7L5.29 21.29A1 1 0 0 0 6.71 21.29L11 17H15A1 1 0 0 0 16 16V15H17A1 1 0 0 0 18 14V13H19A1 1 0 0 0 20 12V11H13V12A2 2 0 0 1 11 14H9A2 2 0 0 1 7 12V9Z\";\nexport var mdiHandshakeOutline = \"M21.71 8.71C22.96 7.46 22.39 6 21.71 5.29L18.71 2.29C17.45 1.04 16 1.61 15.29 2.29L13.59 4H11C9.1 4 8 5 7.44 6.15L3 10.59V14.59L2.29 15.29C1.04 16.55 1.61 18 2.29 18.71L5.29 21.71C5.83 22.25 6.41 22.45 6.96 22.45C7.67 22.45 8.32 22.1 8.71 21.71L11.41 19H15C16.7 19 17.56 17.94 17.87 16.9C19 16.6 19.62 15.74 19.87 14.9C21.42 14.5 22 13.03 22 12V9H21.41L21.71 8.71M20 12C20 12.45 19.81 13 19 13L18 13L18 14C18 14.45 17.81 15 17 15L16 15L16 16C16 16.45 15.81 17 15 17H10.59L7.31 20.28C7 20.57 6.82 20.4 6.71 20.29L3.72 17.31C3.43 17 3.6 16.82 3.71 16.71L5 15.41V11.41L7 9.41V11C7 12.21 7.8 14 10 14S13 12.21 13 11H20V12M20.29 7.29L18.59 9H11V11C11 11.45 10.81 12 10 12S9 11.45 9 11V8C9 7.54 9.17 6 11 6H14.41L16.69 3.72C17 3.43 17.18 3.6 17.29 3.71L20.28 6.69C20.57 7 20.4 7.18 20.29 7.29Z\";\nexport var mdiHanger = \"M12 4A3.5 3.5 0 0 0 8.5 7.5H10.5A1.5 1.5 0 0 1 12 6A1.5 1.5 0 0 1 13.5 7.5A1.5 1.5 0 0 1 12 9C11.45 9 11 9.45 11 10V11.75L2.4 18.2A1 1 0 0 0 3 20H21A1 1 0 0 0 21.6 18.2L13 11.75V10.85A3.5 3.5 0 0 0 15.5 7.5A3.5 3.5 0 0 0 12 4M12 13.5L18 18H6Z\";\nexport var mdiHardHat = \"M9.87,12.15L9,6.46C10.95,5.84 13.05,5.84 15,6.46L14.13,12.15C14.06,12.64 13.63,13 13.13,13H10.86C10.37,13 9.94,12.64 9.87,12.15M22,16V16C22,15.21 21.53,14.5 20.8,14.17C20.32,11.86 18.96,9.83 17,8.5L15.24,13.34C15.1,13.74 14.72,14 14.3,14H9.7C9.28,14 8.9,13.74 8.76,13.34L7,8.5C5.04,9.83 3.68,11.86 3.2,14.16C2.47,14.5 2,15.2 2,16L8.45,17.84C8.81,17.94 9.18,18 9.55,18H14.43C14.8,18 15.17,17.94 15.53,17.84L22,16Z\";\nexport var mdiHarddisk = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z\";\nexport var mdiHarddiskPlus = \"M12 9A1 1 0 1 0 13 10A1 1 0 0 0 12 9M12 9A1 1 0 1 0 13 10A1 1 0 0 0 12 9M18 2H6A2 2 0 0 0 4 4V13.09A5.47 5.47 0 0 1 5 13A5.71 5.71 0 0 1 7 13.36A6 6 0 1 1 15.71 14.69L13.79 12.27A1 1 0 0 0 12.42 11.9L11.56 12.4A1 1 0 0 0 11.19 13.77L12.1 16A6.12 6.12 0 0 1 10 15.62A6 6 0 0 1 10.19 22H18A2 2 0 0 0 20 20V4A2 2 0 0 0 18 2M14.58 19.58L12.09 13.27L12.95 12.77L17.17 18.08M12 11A1 1 0 1 0 11 10A1 1 0 0 0 12 11M9 20H6V23H4V20H1V18H4V15H6V18H9Z\";\nexport var mdiHarddiskRemove = \"M12 9A1 1 0 1 0 13 10A1 1 0 0 0 12 9M12 9A1 1 0 1 0 13 10A1 1 0 0 0 12 9M18 2H6A2 2 0 0 0 4 4V13.09A5.47 5.47 0 0 1 5 13A5.71 5.71 0 0 1 7 13.36A6 6 0 1 1 15.71 14.69L13.79 12.27A1 1 0 0 0 12.42 11.9L11.56 12.4A1 1 0 0 0 11.19 13.77L12.1 16A6.12 6.12 0 0 1 10 15.62A6 6 0 0 1 10.19 22H18A2 2 0 0 0 20 20V4A2 2 0 0 0 18 2M14.58 19.58L12.09 13.27L12.95 12.77L17.17 18.08M12 11A1 1 0 1 0 11 10A1 1 0 0 0 12 11M7.12 22.54L5 20.41L2.88 22.54L1.46 21.12L3.59 19L1.46 16.88L2.88 15.46L5 17.59L7.12 15.46L8.54 16.88L6.41 19L8.54 21.12Z\";\nexport var mdiHatFedora = \"M19.11,11.92C19.13,11.71 19.14,11.5 19.14,11.29C19.14,7.86 17.71,4.14 16.28,4.14C14.85,4.14 13.42,5.57 12,5.57C10.57,5.57 9.14,4.14 7.71,4.14C6.28,4.14 4.86,7.79 4.86,11.29C4.86,11.5 4.86,11.71 4.88,11.92C7.22,12.45 9.6,12.72 12,12.71C14.45,12.71 16.83,12.44 19.11,11.92M3.45,18.18C9,19.85 14.96,19.86 20.54,18.18C20.96,18.04 21.33,17.77 21.59,17.41C21.85,17.05 22,16.61 22,16.17C22,15.72 21.86,15.29 21.61,14.92C21.35,14.56 21,14.29 20.56,14.14C17.86,15 15,15.45 12,15.45C9,15.45 6.13,15 3.43,14.14C3,14.29 2.65,14.57 2.39,14.93C2.14,15.29 2,15.72 2,16.17C2,17.11 2.61,17.9 3.45,18.18V18.18Z\";\nexport var mdiHazardLights = \"M12,12L14.33,16H9.68L12,12M12,8L6.21,18H17.8L12,8M12,2L1,21H23L12,2M12,6L19.53,19H4.47L12,6Z\";\nexport var mdiHdmiPort = \"M21 7H3C1.9 7 1 7.9 1 9V14C1 15.1 1.9 16 3 16H4L5.4 17.4C5.8 17.8 6.3 18 6.8 18H17.1C17.6 18 18.1 17.8 18.5 17.4L20 16H21C22.1 16 23 15.1 23 14V9C23 7.9 22.1 7 21 7M3 14V9H21V14H19.2L17.2 16H6.8L4.8 14H3M19 11H5V13H19V11Z\";\nexport var mdiHdr = \"M21,11.5V10.5C21,9.7 20.3,9 19.5,9H16V15H17.5V13H18.6L19.5,15H21L20.1,12.9C20.6,12.6 21,12.1 21,11.5M19.5,11.5H17.5V10.5H19.5V11.5M6.5,11H4.5V9H3V15H4.5V12.5H6.5V15H8V9H6.5V11M13,9H9.5V15H13C13.8,15 14.5,14.3 14.5,13.5V10.5C14.5,9.7 13.8,9 13,9M13,13.5H11V10.5H13V13.5Z\";\nexport var mdiHdrOff = \"M17.5,15V13H18.6L19.5,15H21L20.1,12.9C20.6,12.7 21,12.1 21,11.5V10.5C21,9.7 20.3,9 19.5,9H16V13.9L17.1,15H17.5M17.5,10.5H19.5V11.5H17.5V10.5M13,10.5V10.9L14.5,12.4V10.5C14.5,9.7 13.8,9 13,9H11.1L12.6,10.5H13M9.5,9.5L2.5,2.5L1.4,3.5L6.9,9H6.5V11H4.5V9H3V15H4.5V12.5H6.5V15H8V10.1L9.5,11.6V15H12.9L20.5,22.6L21.6,21.5L9.5,9.5Z\";\nexport var mdiHead = \"M13 3C9.2 3 6.2 5.9 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3\";\nexport var mdiHeadAlert = \"M13 3C9.2 3 6.2 5.9 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3M14 15H12V13H14V14M14 11H12V5H14V11Z\";\nexport var mdiHeadAlertOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.8 1.9 12.8 2.3 13.6C2.7 14.3 3.3 14.8 4 14.9V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.8 22 13.1 22 10C22 5 18 1 13 1M14 15H12V13H14V15M14 11H12V5H14\";\nexport var mdiHeadCheck = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M12.47 13L9 9.5L10.4 8.09L12.47 10.17L16.6 6L18 7.41L12.47 13Z\";\nexport var mdiHeadCheckOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M13 1C8.42 1 4.61 4.43 4.06 8.91L2.5 11C1.92 11.72 1.82 12.72 2.24 13.59C2.6 14.31 3.24 14.8 4 14.95V16C4 17.86 5.28 19.43 7 19.87V23H18V17.47C20.5 15.83 22 13.06 22 10C22 5.04 17.96 1 13 1M12.47 13L9 9.5L10.4 8.09L12.47 10.17L16.6 6L18 7.41L12.47 13Z\";\nexport var mdiHeadCog = \"M13 8.58C13.78 8.58 14.44 9.19 14.44 10S13.78 11.44 13 11.44 11.58 10.78 11.58 10 12.19 8.58 13 8.58M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M16 10C16 9.84 16 9.75 15.94 9.61L16.83 8.95C16.88 8.91 16.92 8.77 16.88 8.67L16.08 7.31C16.03 7.22 15.89 7.17 15.8 7.22L14.81 7.64C14.63 7.45 14.39 7.31 14.16 7.22L14 6.19C13.97 6.05 13.92 6 13.78 6H12.19C12.09 6 12 6.05 12 6.19L11.86 7.22C11.63 7.31 11.39 7.45 11.2 7.64L10.17 7.22C10.08 7.17 10 7.22 9.94 7.31L9.14 8.67C9.09 8.81 9.09 8.91 9.19 8.95L10.03 9.61C10.03 9.75 10 9.89 10 10C10 10.13 10.03 10.27 10.03 10.41L9.19 11.06C9.09 11.11 9.09 11.2 9.14 11.3L9.94 12.7C10 12.8 10.08 12.8 10.17 12.8L11.16 12.37C11.39 12.56 11.58 12.66 11.86 12.75L12 13.83C12 13.92 12.09 14 12.19 14H13.78C13.92 14 13.97 13.92 14 13.83L14.16 12.75C14.39 12.66 14.63 12.56 14.81 12.38L15.8 12.8C15.89 12.8 16.03 12.8 16.08 12.7L16.88 11.3C16.92 11.2 16.88 11.11 16.83 11.06L16 10.41V10Z\";\nexport var mdiHeadCogOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M13 1C8.42 1 4.61 4.43 4.06 8.91L2.5 11C1.92 11.72 1.82 12.72 2.24 13.59C2.6 14.31 3.24 14.8 4 14.95V16C4 17.86 5.28 19.43 7 19.87V23H18V17.47C20.5 15.83 22 13.06 22 10C22 5.04 17.96 1 13 1M16.1 9.42V9C16.1 8.85 16.1 8.76 16.04 8.62L16.93 7.96C17 7.92 17 7.78 17 7.68L16.18 6.32C16.13 6.23 16 6.18 15.9 6.23L14.91 6.65C14.73 6.46 14.5 6.32 14.26 6.23L14.1 5.2C14.07 5.06 14 5 13.88 5H12.29C12.19 5 12.1 5.06 12.1 5.2L11.96 6.23C11.73 6.32 11.5 6.46 11.3 6.65L10.27 6.23C10.18 6.18 10.1 6.23 10.04 6.32L9.24 7.68C9.19 7.82 9.19 7.92 9.29 7.96L10.13 8.62C10.13 8.76 10.1 8.9 10.1 9C10.1 9.14 10.13 9.28 10.13 9.42L9.29 10.07C9.19 10.12 9.19 10.21 9.24 10.31L10.04 11.71C10.1 11.81 10.18 11.81 10.27 11.81L11.26 11.38C11.5 11.57 11.68 11.67 11.96 11.76L12.1 12.84C12.1 12.93 12.19 13 12.29 13H13.88C14 13 14.07 12.93 14.1 12.84L14.26 11.76C14.5 11.67 14.73 11.57 14.91 11.39L15.9 11.81C16 11.81 16.13 11.81 16.18 11.71L17 10.31C17 10.21 17 10.12 16.93 10.07L16.1 9.42M13.1 10.45C12.32 10.45 11.68 9.79 11.68 9S12.29 7.59 13.1 7.59C13.88 7.59 14.54 8.2 14.54 9S13.88 10.45 13.1 10.45Z\";\nexport var mdiHeadDotsHorizontal = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M10 11C9.45 11 9 10.55 9 10S9.45 9 10 9 11 9.45 11 10 10.55 11 10 11M13 11C12.45 11 12 10.55 12 10S12.45 9 13 9 14 9.45 14 10 13.55 11 13 11M16 11C15.45 11 15 10.55 15 10S15.45 9 16 9 17 9.45 17 10 16.55 11 16 11Z\";\nexport var mdiHeadDotsHorizontalOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.8 1.9 12.8 2.3 13.6C2.7 14.3 3.3 14.8 4 14.9V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.8 22 13.1 22 10C22 5 18 1 13 1M10 10C9.4 10 9 9.6 9 9S9.4 8 10 8 11 8.4 11 9 10.6 10 10 10M13 10C12.4 10 12 9.6 12 9S12.4 8 13 8 14 8.4 14 9 13.6 10 13 10M16 10C15.5 10 15 9.6 15 9S15.5 8 16 8 17 8.4 17 9 16.5 10 16 10Z\";\nexport var mdiHeadFlash = \"M13 3C9.2 3 6.2 6 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3M15 9L11.9 15L12.5 11H10.5L12.5 6H15L13.5 9H15Z\";\nexport var mdiHeadFlashOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.8 1.9 12.8 2.3 13.6C2.7 14.3 3.3 14.8 4 14.9V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.8 22 13.1 22 10C22 5 18 1 13 1M15 9L11.9 15L12.5 11H10.4L12.5 6H15L13.5 9H15Z\";\nexport var mdiHeadHeart = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M17 8.83C17 10.37 15.64 11.6 13.58 13.47L13 14L12.42 13.47C10.36 11.6 9 10.37 9 8.83C9 7.63 9.96 6.64 11.16 6.63H11.2C11.89 6.63 12.55 6.94 13 7.46C13.45 6.94 14.11 6.63 14.8 6.63C16 6.62 17 7.59 17 8.79V8.83Z\";\nexport var mdiHeadHeartOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M13 1C8.41 1 4.61 4.42 4.06 8.9L2.5 11L2.47 11L2.45 11.03C1.9 11.79 1.83 12.79 2.26 13.62C2.62 14.31 3.26 14.79 4 14.94V16C4 17.85 5.28 19.42 7 19.87V23H18V17.5C20.5 15.83 22 13.06 22 10C22 5.03 17.96 1 13 1M17 8.83C17 10.37 15.64 11.6 13.58 13.47L13 14L12.42 13.47C10.36 11.6 9 10.37 9 8.83C9 7.63 9.96 6.64 11.16 6.63H11.2C11.89 6.63 12.55 6.94 13 7.46C13.45 6.94 14.11 6.63 14.8 6.63C16 6.62 17 7.59 17 8.79V8.83Z\";\nexport var mdiHeadLightbulb = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M14 14H12V13H14V14M15.6 9.5C15.34 9.94 14.96 10.32 14.5 10.58V12H11.5V10.58C10.07 9.75 9.57 7.92 10.4 6.5S13.07 4.56 14.5 5.38 16.43 8.05 15.6 9.5Z\";\nexport var mdiHeadLightbulbOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.8 1.9 12.8 2.3 13.6C2.7 14.3 3.3 14.8 4 14.9V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.8 22 13.1 22 10C22 5 18 1 13 1M14 14H12V13H14V14M15.6 9.5C15.3 9.9 15 10.3 14.5 10.6V12H11.5V10.6C10.1 9.8 9.6 7.9 10.4 6.5S13.1 4.6 14.5 5.4 16.4 8.1 15.6 9.5Z\";\nexport var mdiHeadMinus = \"M13 3C9.2 3 6.2 5.9 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3M17 10H9V8H17V10Z\";\nexport var mdiHeadMinusOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.7 1.8 12.7 2.2 13.6C2.6 14.3 3.2 14.8 4 15V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.9 22 13.1 22 10C22 5 18 1 13 1M17 10H9V8H17V10Z\";\nexport var mdiHeadOutline = \"M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C2 11.8 1.9 12.8 2.3 13.6C2.7 14.3 3.3 14.8 4 14.9V16C4 17.8 5.3 19.4 7 19.9V23H18V17.5C20.5 15.8 22 13.1 22 10C22 5 18 1 13 1M16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 6 9.2 3 13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3Z\";\nexport var mdiHeadPlus = \"M13 3C9.2 3 6.2 5.9 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3M17 10H14V13H12V10H9V8H12V5H14V8H17V10Z\";\nexport var mdiHeadPlusOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.7 1.8 12.7 2.2 13.6C2.6 14.3 3.2 14.8 4 15V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.9 22 13.1 22 10C22 5 18 1 13 1M17 10H14V13H12V10H9V8H12V5H14V8H17V10Z\";\nexport var mdiHeadQuestion = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M14 14H12V12H14V14M15.75 8.81C15.46 9.21 15.09 9.5 14.64 9.74C14.39 9.9 14.22 10.07 14.13 10.26C14.04 10.44 14 10.69 14 11H12C12 10.5 12.11 10.08 12.31 9.82C12.5 9.55 12.85 9.25 13.36 8.91C13.62 8.75 13.83 8.55 13.97 8.32C14.13 8.09 14.2 7.82 14.2 7.5C14.2 7.2 14.12 6.94 13.94 6.75C13.76 6.57 13.5 6.47 13.19 6.47C12.93 6.47 12.71 6.55 12.53 6.7C12.35 6.86 12.26 7.09 12.25 7.39H10.32L10.31 7.36C10.3 6.57 10.56 6 11.08 5.59C11.62 5.2 12.32 5 13.19 5C14.12 5 14.85 5.23 15.38 5.68C15.92 6.13 16.19 6.74 16.19 7.5C16.19 8 16.04 8.41 15.75 8.81Z\";\nexport var mdiHeadQuestionOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M10.32 7.39H12.25C12.26 7.09 12.35 6.86 12.53 6.7C12.71 6.55 12.93 6.47 13.19 6.47C13.5 6.47 13.76 6.57 13.94 6.75C14.12 6.94 14.2 7.2 14.2 7.5C14.2 7.82 14.13 8.09 13.97 8.32C13.83 8.55 13.62 8.75 13.36 8.91C12.85 9.25 12.5 9.55 12.31 9.82C12.11 10.08 12 10.5 12 11H14C14 10.69 14.04 10.44 14.13 10.26C14.22 10.07 14.39 9.9 14.64 9.74C15.09 9.5 15.46 9.21 15.75 8.81C16.04 8.41 16.19 8 16.19 7.5C16.19 6.74 15.92 6.13 15.38 5.68C14.85 5.23 14.12 5 13.19 5C12.32 5 11.62 5.2 11.08 5.59C10.56 6 10.3 6.57 10.31 7.36L10.32 7.39M12 14H14V12H12V14M13 1C8.41 1 4.61 4.42 4.06 8.9L2.5 11L2.47 11L2.45 11.03C1.9 11.79 1.83 12.79 2.26 13.62C2.62 14.31 3.26 14.79 4 14.94V16C4 17.85 5.28 19.42 7 19.87V23H18V17.5C20.5 15.83 22 13.06 22 10C22 5.03 17.96 1 13 1Z\";\nexport var mdiHeadRemove = \"M13 3C9.2 3 6.2 5.9 6 9.7L4.1 12.2C3.9 12.5 4.1 13 4.5 13H6V16C6 17.1 6.9 18 8 18H9V21H16V16.3C18.4 15.2 20 12.8 20 10C20 6.1 16.9 3 13 3M15.1 12.5L13 10.4L10.9 12.5L9.5 11.1L11.6 9L9.5 6.9L10.9 5.5L13 7.6L15.1 5.5L16.5 6.9L14.4 9L16.5 11.1L15.1 12.5Z\";\nexport var mdiHeadRemoveOutline = \"M13 3C16.9 3 20 6.1 20 10C20 12.8 18.4 15.2 16 16.3V21H9V18H8C6.9 18 6 17.1 6 16V13H4.5C4.1 13 3.8 12.5 4.1 12.2L6 9.7C6.2 5.9 9.2 3 13 3M13 1C8.4 1 4.6 4.4 4.1 8.9L2.5 11C1.9 11.7 1.8 12.7 2.2 13.6C2.6 14.3 3.2 14.8 4 15V16C4 17.9 5.3 19.4 7 19.9V23H18V17.5C20.5 15.9 22 13.1 22 10C22 5 18 1 13 1M16.5 6.9L14.4 9L16.5 11.1L15.1 12.5L13 10.4L10.9 12.5L9.5 11.1L11.6 9L9.5 6.9L10.9 5.5L13 7.6L15.1 5.5L16.5 6.9Z\";\nexport var mdiHeadSnowflake = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M17.06 9.57L15.1 10.09L16.54 11.54C16.89 11.88 16.89 12.46 16.54 12.81C16.19 13.16 15.61 13.16 15.27 12.81L13.81 11.37L13.3 13.33C13.18 13.82 12.68 14.1 12.21 13.97C11.72 13.84 11.44 13.35 11.57 12.87L12.1 10.9L10.13 11.43C9.65 11.56 9.15 11.28 9.03 10.79C8.9 10.32 9.18 9.82 9.67 9.7L11.63 9.19L10.19 7.73C9.84 7.39 9.84 6.82 10.19 6.46C10.54 6.11 11.12 6.11 11.46 6.46L12.91 7.9L13.43 5.94C13.55 5.46 14.04 5.18 14.5 5.3C15 5.43 15.28 5.92 15.16 6.41L14.63 8.37L16.59 7.84C17.08 7.72 17.57 8 17.7 8.5C17.82 8.96 17.54 9.45 17.06 9.57Z\";\nexport var mdiHeadSnowflakeOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M13 1C8.41 1 4.61 4.42 4.06 8.9L2.5 11L2.47 11L2.45 11.03C1.9 11.79 1.83 12.79 2.26 13.62C2.62 14.31 3.26 14.79 4 14.94V16C4 17.85 5.28 19.42 7 19.87V23H18V17.5C20.5 15.83 22 13.06 22 10C22 5.03 17.96 1 13 1M17.33 9.3L15.37 9.81L16.81 11.27C17.16 11.61 17.16 12.19 16.81 12.54S15.88 12.89 15.54 12.54L14.09 11.1L13.57 13.06C13.45 13.55 12.96 13.82 12.5 13.7C12 13.57 11.72 13.08 11.84 12.59L12.37 10.63L10.41 11.16C9.92 11.28 9.43 11 9.3 10.5C9.18 10.05 9.46 9.55 9.94 9.43L11.9 8.91L10.46 7.46C10.11 7.12 10.11 6.55 10.46 6.19C10.81 5.84 11.39 5.84 11.73 6.19L13.19 7.63L13.7 5.67C13.82 5.18 14.32 4.9 14.79 5.03C15.28 5.16 15.56 5.65 15.43 6.13L14.9 8.1L16.87 7.57C17.35 7.44 17.84 7.72 17.97 8.21C18.1 8.68 17.82 9.18 17.33 9.3Z\";\nexport var mdiHeadSync = \"M13 3C9.23 3 6.19 5.95 6 9.66L4.08 12.19C3.84 12.5 4.08 13 4.5 13H6V16C6 17.11 6.89 18 8 18H9V21H16V16.31C18.37 15.19 20 12.8 20 10C20 6.14 16.88 3 13 3M13 15V13.5C10.79 13.5 9 11.71 9 9.5C9 8.68 9.25 7.92 9.67 7.29L10.76 8.38C10.59 8.72 10.5 9.1 10.5 9.5C10.5 10.88 11.62 12 13 12V10.5L15.25 12.75L13 15M16.33 11.71L15.24 10.62C15.41 10.28 15.5 9.9 15.5 9.5C15.5 8.12 14.38 7 13 7V8.5L10.75 6.25L13 4V5.5C15.21 5.5 17 7.29 17 9.5C17 10.32 16.75 11.08 16.33 11.71Z\";\nexport var mdiHeadSyncOutline = \"M13 3C16.88 3 20 6.14 20 10C20 12.8 18.37 15.19 16 16.31V21H9V18H8C6.89 18 6 17.11 6 16V13H4.5C4.08 13 3.84 12.5 4.08 12.19L6 9.66C6.19 5.95 9.23 3 13 3M13 1C8.41 1 4.61 4.42 4.06 8.9L2.5 11L2.47 11L2.45 11.03C1.9 11.79 1.83 12.79 2.26 13.62C2.62 14.31 3.26 14.79 4 14.94V16C4 17.85 5.28 19.42 7 19.87V23H18V17.5C20.5 15.83 22 13.06 22 10C22 5.03 17.96 1 13 1M14 15V13.5C11.79 13.5 10 11.71 10 9.5C10 8.68 10.25 7.92 10.67 7.29L11.76 8.38C11.59 8.72 11.5 9.1 11.5 9.5C11.5 10.88 12.62 12 14 12V10.5L16.25 12.75L14 15M17.33 11.71L16.24 10.62C16.41 10.28 16.5 9.9 16.5 9.5C16.5 8.12 15.38 7 14 7V8.5L11.75 6.25L14 4V5.5C16.21 5.5 18 7.29 18 9.5C18 10.32 17.75 11.08 17.33 11.71Z\";\nexport var mdiHeadphones = \"M12,1C7,1 3,5 3,10V17A3,3 0 0,0 6,20H9V12H5V10A7,7 0 0,1 12,3A7,7 0 0,1 19,10V12H15V20H18A3,3 0 0,0 21,17V10C21,5 16.97,1 12,1Z\";\nexport var mdiHeadphonesBluetooth = \"M8,6A6,6 0 0,0 2,12V16.8C2,17.46 2.54,18 3.2,18H6V14H4V12A4,4 0 0,1 8,8A4,4 0 0,1 12,12V14H10V18H12.8A1.2,1.2 0 0,0 14,16.8V12A6,6 0 0,0 8,6M19,7V10.79L16.71,8.5L16,9.21L18.79,12L16,14.79L16.71,15.5L19,13.21V17H19.5L22.35,14.14L20.21,12L22.35,9.85L19.5,7H19M20,8.91L20.94,9.85L20,10.79V8.91M20,13.21L20.94,14.14L20,15.08V13.21Z\";\nexport var mdiHeadphonesBox = \"M7.2,18C6.54,18 6,17.46 6,16.8V13.2L6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12V13.2L18,16.8A1.2,1.2 0 0,1 16.8,18H14V14H16V12A4,4 0 0,0 12,8A4,4 0 0,0 8,12V14H10V18M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiHeadphonesOff = \"M12,1A9,9 0 0,1 21,10V17C21,17.62 20.81,18.19 20.5,18.67L15,13.18V12H19V10A7,7 0 0,0 12,3C10,3 8.23,3.82 6.96,5.14L5.55,3.72C7.18,2.04 9.47,1 12,1M2.78,3.5L20.5,21.22L19.23,22.5L16.73,20H15V18.27L9,12.27V20H6A3,3 0 0,1 3,17V10C3,8.89 3.2,7.82 3.57,6.84L1.5,4.77L2.78,3.5M5.17,8.44C5.06,8.94 5,9.46 5,10V12H8.73L5.17,8.44Z\";\nexport var mdiHeadphonesSettings = \"M12,1A9,9 0 0,1 21,10V17A3,3 0 0,1 18,20H15V12H19V10A7,7 0 0,0 12,3A7,7 0 0,0 5,10V12H9V20H6A3,3 0 0,1 3,17V10A9,9 0 0,1 12,1M15,24V22H17V24H15M11,24V22H13V24H11M7,24V22H9V24H7Z\";\nexport var mdiHeadset = \"M12,1C7,1 3,5 3,10V17A3,3 0 0,0 6,20H9V12H5V10A7,7 0 0,1 12,3A7,7 0 0,1 19,10V12H15V20H19V21H12V23H18A3,3 0 0,0 21,20V10C21,5 16.97,1 12,1Z\";\nexport var mdiHeadsetDock = \"M2,18H9V6.13C7.27,6.57 6,8.14 6,10V11H8V17H6A2,2 0 0,1 4,15V10A6,6 0 0,1 10,4H11A6,6 0 0,1 17,10V12H18V9H20V12A2,2 0 0,1 18,14H17V15A2,2 0 0,1 15,17H13V11H15V10C15,8.14 13.73,6.57 12,6.13V18H22V20H2V18Z\";\nexport var mdiHeadsetOff = \"M1.5,4.77L3.57,6.84C3.2,7.82 3,8.89 3,10V20A3,3 0 0,0 6,23H12V21H5V20H9V12.27L15,18.27V20H16.73L19.23,22.5L20.5,21.22L2.78,3.5L1.5,4.77M12,1C9.47,1 7.18,2.04 5.55,3.72L6.96,5.14C8.23,3.82 10,3 12,3A7,7 0 0,1 19,10V12H15V13.18L20.5,18.67C20.81,18.19 21,17.62 21,17V10A9,9 0 0,0 12,1M5,12V10C5,9.46 5.06,8.94 5.17,8.44L8.73,12H5Z\";\nexport var mdiHeart = \"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z\";\nexport var mdiHeartBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M12,17L12.72,16.34C15.3,14 17,12.46 17,10.57C17,9.03 15.79,7.82 14.25,7.82C13.38,7.82 12.55,8.23 12,8.87C11.45,8.23 10.62,7.82 9.75,7.82C8.21,7.82 7,9.03 7,10.57C7,12.46 8.7,14 11.28,16.34L12,17Z\";\nexport var mdiHeartBoxOutline = \"M12,17L11.28,16.34C8.7,14 7,12.46 7,10.57C7,9.03 8.21,7.82 9.75,7.82C10.62,7.82 11.45,8.23 12,8.87C12.55,8.23 13.38,7.82 14.25,7.82C15.79,7.82 17,9.03 17,10.57C17,12.46 15.3,14 12.72,16.34L12,17M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M5,5V19H19V5H5Z\";\nexport var mdiHeartBroken = \"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C8.17,3 8.82,3.12 9.44,3.33L13,9.35L9,14.35L12,21.35V21.35M16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35L11,14.35L15.5,9.35L12.85,4.27C13.87,3.47 15.17,3 16.5,3Z\";\nexport var mdiHeartBrokenOutline = \"M7.5,5C7.7,5 7.9,5 8.1,5.1L10.5,9.2L6.8,13.8C5.1,11.8 4,10.2 4,8.5C4,6.5 5.5,5 7.5,5M7.5,3C4.4,3 2,5.4 2,8.5C2,12.3 5.4,15.4 10.6,20L12,21.3L9,14.3L13,9.3L9.4,3.3C8.8,3.1 8.2,3 7.5,3M16.5,5C18.5,5 20,6.5 20,8.5C20,11.1 17.4,13.7 13.4,17.3L13.1,15L17.9,9.7L15.6,5.2C15.9,5 16.2,5 16.5,5M16.5,3C15.2,3 13.9,3.5 12.9,4.3L15.5,9.4L11,14.4L12,21.4L13.4,20.1C18.6,15.4 22,12.3 22,8.6C22,5.4 19.6,3 16.5,3Z\";\nexport var mdiHeartCircle = \"M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M9.75,7.82C10.62,7.82 11.45,8.23 12,8.87C12.55,8.23 13.38,7.82 14.25,7.82C15.79,7.82 17,9.03 17,10.57C17,12.46 15.3,14 12.72,16.34L12,17L11.28,16.34C8.7,14 7,12.46 7,10.57C7,9.03 8.21,7.82 9.75,7.82Z\";\nexport var mdiHeartCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M9.75,7.82C8.21,7.82 7,9.03 7,10.57C7,12.46 8.7,14 11.28,16.34L12,17L12.72,16.34C15.3,14 17,12.46 17,10.57C17,9.03 15.79,7.82 14.25,7.82C13.38,7.82 12.55,8.23 12,8.87C11.45,8.23 10.62,7.82 9.75,7.82Z\";\nexport var mdiHeartCog = \"M12 19C12 19.71 12.12 20.4 12.32 21.06L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.8 21.59 11 20.84 12.25C20.25 12.09 19.63 12 19 12C15.14 12 12 15.14 12 19M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.83 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5C19.83 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiHeartCogOutline = \"M16.5 5C14.96 5 13.46 6 12.93 7.36H11.07C10.54 6 9.04 5 7.5 5C5.5 5 4 6.5 4 8.5C4 11.39 7.14 14.24 11.89 18.55L12 18.65L12 18.63C12 18.75 12 18.88 12 19C12 19.71 12.12 20.4 12.32 21.06L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.8 21.59 11 20.84 12.25C20.25 12.09 19.63 12 19 12C18.87 12 18.74 12 18.6 12C19.5 10.79 20 9.65 20 8.5C20 6.5 18.5 5 16.5 5M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.83 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5C19.83 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiHeartFlash = \"M16.5,2.83C14.76,2.83 13.09,3.64 12,4.9C10.91,3.64 9.24,2.83 7.5,2.83C4.42,2.83 2,5.24 2,8.33C2,12.1 5.4,15.19 10.55,19.86L12,21.17L13.45,19.86C18.6,15.19 22,12.1 22,8.33C22,5.24 19.58,2.83 16.5,2.83M12,17.83V13.83H9L12,6.83V10.83H15\";\nexport var mdiHeartHalf = \"M13,7.2V17.74L13,20.44L12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C10,3 13,5 13,7.2Z\";\nexport var mdiHeartHalfFull = \"M16.5,5C15,5 13.58,5.91 13,7.2V17.74C17.25,13.87 20,11.2 20,8.5C20,6.5 18.5,5 16.5,5M16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3Z\";\nexport var mdiHeartHalfOutline = \"M4,8.5C4,11.2 6.75,13.87 11,17.74V7.2C10.42,5.91 9,5 7.5,5C5.5,5 4,6.5 4,8.5M13,7.2V17.74L13,20.44L12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C10,3 13,5 13,7.2Z\";\nexport var mdiHeartMinus = \"M12 18C12 19 12.25 19.92 12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C19.83 12.23 18.94 12 18 12C14.69 12 12 14.69 12 18M14 17V19H22V17H14Z\";\nexport var mdiHeartMinusOutline = \"M12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C20 12.31 19.31 12.11 18.59 12.04C19.5 10.8 20 9.65 20 8.5C20 6.5 18.5 5 16.5 5C14.96 5 13.46 6 12.93 7.36H11.07C10.54 6 9.04 5 7.5 5C5.5 5 4 6.5 4 8.5C4 11.39 7.14 14.24 11.89 18.55L12 18.65L12.04 18.61C12.12 19.37 12.34 20.09 12.67 20.74M14 17V19H22V17H14Z\";\nexport var mdiHeartMultiple = \"M13.5,20C6.9,13.9 3.5,10.8 3.5,7.1C3.5,4 5.9,1.6 9,1.6C10.7,1.6 12.4,2.4 13.5,3.7C14.6,2.4 16.3,1.6 18,1.6C21.1,1.6 23.5,4 23.5,7.1C23.5,10.9 20.1,14 13.5,20M12,21.1C5.4,15.2 1.5,11.7 1.5,7C1.5,6.8 1.5,6.6 1.5,6.4C0.9,7.3 0.5,8.4 0.5,9.6C0.5,13.4 3.9,16.5 10.5,22.4L12,21.1Z\";\nexport var mdiHeartMultipleOutline = \"M12,21.1L10.5,22.4C3.9,16.5 0.5,13.4 0.5,9.6C0.5,8.4 0.9,7.3 1.5,6.4C1.5,6.6 1.5,6.8 1.5,7C1.5,11.7 5.4,15.2 12,21.1M13.6,17C18.3,12.7 21.5,9.9 21.6,7C21.6,5 20.1,3.5 18.1,3.5C16.5,3.5 15,4.5 14.5,5.9H12.6C12,4.5 10.5,3.5 9,3.5C7,3.5 5.5,5 5.5,7C5.5,9.9 8.6,12.7 13.4,17L13.5,17.1M18,1.5C21.1,1.5 23.5,3.9 23.5,7C23.5,10.7 20.1,13.8 13.5,19.8C6.9,13.9 3.5,10.8 3.5,7C3.5,3.9 5.9,1.5 9,1.5C10.7,1.5 12.4,2.3 13.5,3.6C14.6,2.3 16.3,1.5 18,1.5Z\";\nexport var mdiHeartOff = \"M1,4.27L2.28,3L20,20.72L18.73,22L15.18,18.44L13.45,20.03L12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,7.55 2.23,6.67 2.63,5.9L1,4.27M7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,11.07 20.42,13.32 17.79,15.97L5.27,3.45C5.95,3.16 6.7,3 7.5,3Z\";\nexport var mdiHeartOffOutline = \"M2.39 1.73L1.11 3L3.19 5.08C2.45 6 2 7.19 2 8.5C2 12.27 5.4 15.36 10.55 20.03L12 21.35L13.45 20.03C14.32 19.24 15.14 18.5 15.9 17.79L20 22L21.27 20.73M12.1 18.55L12 18.65L11.89 18.55C7.14 14.24 4 11.39 4 8.5C4 7.74 4.22 7.06 4.61 6.5L14.5 16.37C13.74 17.06 12.95 17.78 12.1 18.55M8.3 5.1L6.33 3.13C6.7 3.05 7.1 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 10.84 20.69 12.92 18.47 15.27L17.06 13.86C18.91 11.88 20 10.2 20 8.5C20 6.5 18.5 5 16.5 5C15.1 5 13.74 5.83 13.11 7H10.89C10.38 6.06 9.39 5.34 8.3 5.1Z\";\nexport var mdiHeartOutline = \"M12.1,18.55L12,18.65L11.89,18.55C7.14,14.24 4,11.39 4,8.5C4,6.5 5.5,5 7.5,5C9.04,5 10.54,6 11.07,7.36H12.93C13.46,6 14.96,5 16.5,5C18.5,5 20,6.5 20,8.5C20,11.39 16.86,14.24 12.1,18.55M16.5,3C14.76,3 13.09,3.81 12,5.08C10.91,3.81 9.24,3 7.5,3C4.42,3 2,5.41 2,8.5C2,12.27 5.4,15.36 10.55,20.03L12,21.35L13.45,20.03C18.6,15.36 22,12.27 22,8.5C22,5.41 19.58,3 16.5,3Z\";\nexport var mdiHeartPlus = \"M12 18C12 19 12.25 19.92 12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C19.83 12.23 18.94 12 18 12C14.69 12 12 14.69 12 18M19 14H17V17H14V19H17V22H19V19H22V17H19V14Z\";\nexport var mdiHeartPlusOutline = \"M12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C20 12.31 19.31 12.11 18.59 12.04C19.5 10.8 20 9.65 20 8.5C20 6.5 18.5 5 16.5 5C14.96 5 13.46 6 12.93 7.36H11.07C10.54 6 9.04 5 7.5 5C5.5 5 4 6.5 4 8.5C4 11.39 7.14 14.24 11.89 18.55L12 18.65L12.04 18.61C12.12 19.37 12.34 20.09 12.67 20.74M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiHeartPulse = \"M7.5,4A5.5,5.5 0 0,0 2,9.5C2,10 2.09,10.5 2.22,11H6.3L7.57,7.63C7.87,6.83 9.05,6.75 9.43,7.63L11.5,13L12.09,11.58C12.22,11.25 12.57,11 13,11H21.78C21.91,10.5 22,10 22,9.5A5.5,5.5 0 0,0 16.5,4C14.64,4 13,4.93 12,6.34C11,4.93 9.36,4 7.5,4V4M3,12.5A1,1 0 0,0 2,13.5A1,1 0 0,0 3,14.5H5.44L11,20C12,20.9 12,20.9 13,20L18.56,14.5H21A1,1 0 0,0 22,13.5A1,1 0 0,0 21,12.5H13.4L12.47,14.8C12.07,15.81 10.92,15.67 10.55,14.83L8.5,9.5L7.54,11.83C7.39,12.21 7.05,12.5 6.6,12.5H3Z\";\nexport var mdiHeartRemove = \"M12 18C12 19 12.25 19.92 12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C19.83 12.23 18.94 12 18 12C14.69 12 12 14.69 12 18M21.54 15.88L20.12 14.47L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88Z\";\nexport var mdiHeartRemoveOutline = \"M12.67 20.74L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5C22 9.93 21.5 11.26 20.62 12.61C20 12.31 19.31 12.11 18.59 12.04C19.5 10.8 20 9.65 20 8.5C20 6.5 18.5 5 16.5 5C14.96 5 13.46 6 12.93 7.36H11.07C10.54 6 9.04 5 7.5 5C5.5 5 4 6.5 4 8.5C4 11.39 7.14 14.24 11.89 18.55L12 18.65L12.04 18.61C12.12 19.37 12.34 20.09 12.67 20.74M20.12 14.46L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88L20.12 14.46Z\";\nexport var mdiHeartSearch = \"M19.3 14.9C19.7 14.2 20 13.4 20 12.5C20 10 18 8 15.5 8S11 10 11 12.5 13 17 15.5 17C16.4 17 17.2 16.7 17.9 16.3L20.8 19.2L22.2 17.8L19.3 14.9M15.5 15C14.1 15 13 13.9 13 12.5S14.1 10 15.5 10 18 11.1 18 12.5 16.9 15 15.5 15M14.7 18.9C14.3 19.3 13.9 19.6 13.5 20L12 21.3L10.5 20C5.4 15.4 2 12.3 2 8.5C2 5.4 4.4 3 7.5 3C9.2 3 10.9 3.8 12 5.1C13.1 3.8 14.8 3 16.5 3C19.6 3 22 5.4 22 8.5C22 9.2 21.9 9.8 21.7 10.5C20.8 7.9 18.4 6 15.5 6C11.9 6 9 8.9 9 12.5C9 15.8 11.5 18.5 14.7 18.9Z\";\nexport var mdiHeartSettings = \"M15 22H17V24H15V22M11 24H13V22H11V24M7 24H9V22H7V24M16.5 3C14.76 3 13.09 3.81 12 5.08C10.91 3.81 9.24 3 7.5 3C4.42 3 2 5.41 2 8.5C2 12.27 5.4 15.36 10.55 20.03L12 21.35L13.45 20.03C18.6 15.36 22 12.27 22 8.5C22 5.41 19.58 3 16.5 3Z\";\nexport var mdiHeartSettingsOutline = \"M7 22H9V24H7V22M11 24H13V22H11V24M15 24H17V22H15V24M22 8.5C22 12.27 18.6 15.36 13.45 20.03L12 21.35L10.55 20.03C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3C9.24 3 10.91 3.81 12 5.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5M20 8.5C20 6.5 18.5 5 16.5 5C14.96 5 13.46 6 12.93 7.36H11.07C10.54 6 9.04 5 7.5 5C5.5 5 4 6.5 4 8.5C4 11.39 7.14 14.24 11.89 18.55L12 18.65L12.1 18.55C16.86 14.24 20 11.39 20 8.5Z\";\nexport var mdiHeatPump = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M12.75 7.08C13.57 7.2 14.32 7.5 14.95 8L12.75 10.19V7.08M11.25 7.08V10.19L9.05 8C9.68 7.5 10.43 7.2 11.25 7.08M8 9.05L10.19 11.25H7.08C7.2 10.43 7.5 9.68 8 9.05M7.08 12.75H10.19L8 14.95C7.5 14.32 7.2 13.57 7.08 12.75M11.25 16.92C10.43 16.8 9.68 16.5 9.05 16L11.25 13.81V16.92M12 13C11.45 13 11 12.55 11 12S11.45 11 12 11 13 11.45 13 12 12.55 13 12 13M12.75 16.92V13.81L14.95 16C14.32 16.5 13.57 16.8 12.75 16.92M16 14.95L13.81 12.75H16.92C16.8 13.57 16.5 14.32 16 14.95M13.81 11.25L16 9.05C16.5 9.69 16.8 10.44 16.92 11.25H13.81Z\";\nexport var mdiHeatPumpOutline = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V5H19V19M12 18C15.31 18 18 15.31 18 12S15.31 6 12 6 6 8.69 6 12 8.69 18 12 18M11.25 15.92C10.7 15.82 10.2 15.6 9.75 15.3L11.25 13.8V15.92M12.75 15.92V13.81L14.25 15.31C13.8 15.61 13.3 15.82 12.75 15.92M15.31 14.25L13.81 12.75H15.92C15.82 13.3 15.61 13.8 15.31 14.25M15.92 11.25H13.81L15.31 9.75C15.61 10.2 15.82 10.7 15.92 11.25M12.75 8.08C13.3 8.18 13.8 8.4 14.25 8.7L12.75 10.2V8.08M12 11C12.55 11 13 11.45 13 12S12.55 13 12 13 11 12.55 11 12 11.45 11 12 11M11.25 8.08V10.19L9.75 8.69C10.2 8.39 10.7 8.18 11.25 8.08M8.69 9.75L10.19 11.25H8.08C8.18 10.7 8.39 10.2 8.69 9.75M10.19 12.75L8.69 14.25C8.39 13.81 8.18 13.3 8.07 12.75H10.19Z\";\nexport var mdiHeatWave = \"M8.5 4.5L5.4 9.5L8.5 14.7L5.2 20.5L3.4 19.6L6.1 14.7L3 9.5L6.7 3.6L8.5 4.5M14.7 4.4L11.6 9.5L14.7 14.5L11.4 20.3L9.6 19.4L12.3 14.5L9.2 9.5L12.9 3.5L14.7 4.4M21 4.4L17.9 9.5L21 14.5L17.7 20.3L15.9 19.4L18.6 14.5L15.5 9.5L19.2 3.5L21 4.4\";\nexport var mdiHeatingCoil = \"M19 17C20.21 17 22 16.2 22 14S20.21 11 19 11H17V9H19C21.2 9 22 7.21 22 6C22 3.8 20.21 3 19 3H17V2H16V3H8V2H7V3H2V5H7V7H5C3.79 7 2 7.8 2 10S3.79 13 5 13H7V15H5C3.79 15 2 15.8 2 18S3.79 21 5 21H7V22H8V21H16V22H17V21H22V19H17V17H19M19 13C19.45 13 20 13.19 20 14S19.45 15 19 15H17V13H19M16 11H8V9H16V11M19 5C19.45 5 20 5.2 20 6C20 6.45 19.81 7 19 7H17V5H19M8 5H16V7H8V5M5 11C4.55 11 4 10.81 4 10S4.55 9 5 9H7V11H5M8 13H16V15H8V13M5 19C4.55 19 4 18.81 4 18S4.55 17 5 17H7V19H5M16 19H8V17H16V19Z\";\nexport var mdiHelicopter = \"M3,3H17V5H3V3M23,6V10.5L14.75,12.2C14.91,12.6 15,13.04 15,13.5C15,14.9 14.18,16.1 13,16.66V17L13,19H16V21H4A3,3 0 0,1 1,18V17H3V18A1,1 0 0,0 4,19H5V16.74C3.25,16.13 2,14.46 2,12.5C2,10 4,8 6.5,8H9V6H11V8H21V6H23M11,19V17H7V19H11M7.5,10C6.12,10 5,10.9 5,12C5,13.1 6.12,14 7.5,14C8.88,14 10,13.1 10,12C10,10.9 8.88,10 7.5,10Z\";\nexport var mdiHelp = \"M10,19H13V22H10V19M12,2C17.35,2.22 19.68,7.62 16.5,11.67C15.67,12.67 14.33,13.33 13.67,14.17C13,15 13,16 13,17H10C10,15.33 10,13.92 10.67,12.92C11.33,11.92 12.67,11.33 13.5,10.67C15.92,8.43 15.32,5.26 12,5A3,3 0 0,0 9,8H6A6,6 0 0,1 12,2Z\";\nexport var mdiHelpBox = \"M11,18H13V16H11V18M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z\";\nexport var mdiHelpBoxMultiple = \"M16 20V22H4C2.9 22 2 21.1 2 20V7H4V20H16M20 2H8C6.9 2 6 2.9 6 4V16C6 17.1 6.9 18 8 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M15 14H13V12H15V14M16.8 8.8C16.5 9.2 16.1 9.5 15.7 9.7C15.5 9.9 15.3 10 15.2 10.2C15 10.4 15 10.7 15 11H13C13 10.5 13.1 10.1 13.3 9.8C13.5 9.5 13.8 9.2 14.3 8.9C14.6 8.7 14.8 8.5 14.9 8.3C15.1 8.1 15.1 7.8 15.1 7.5C15.1 7.2 15 6.9 14.8 6.7C14.6 6.5 14.4 6.4 14 6.4C13.7 6.4 13.5 6.5 13.3 6.6C13.1 6.8 13 7 13 7.3H11.1C11.1 6.5 11.3 5.9 11.9 5.5C12.6 5.2 13.3 5 14.2 5C15.1 5 15.9 5.2 16.4 5.7C16.9 6.2 17.2 6.8 17.2 7.5C17.2 8 17 8.4 16.8 8.8Z\";\nexport var mdiHelpBoxMultipleOutline = \"M20 16V4H8V16H20M22 16C22 17.1 21.1 18 20 18H8C6.9 18 6 17.1 6 16V4C6 2.9 6.9 2 8 2H20C21.1 2 22 2.9 22 4V16M16 20V22H4C2.9 22 2 21.1 2 20V7H4V20H16M14.2 5C13.3 5 12.6 5.2 12.1 5.6C11.6 6 11.3 6.6 11.3 7.4H13.2C13.2 7.1 13.3 6.9 13.5 6.7C13.7 6.6 13.9 6.5 14.2 6.5C14.5 6.5 14.8 6.6 15 6.8C15.2 7 15.3 7.2 15.3 7.6C15.3 7.9 15.2 8.2 15.1 8.4C15 8.6 14.7 8.8 14.5 9C14 9.3 13.6 9.6 13.5 9.9C13.1 10.1 13 10.5 13 11H15C15 10.7 15 10.4 15.1 10.3C15.2 10.1 15.4 9.9 15.6 9.8C16 9.6 16.4 9.3 16.7 8.9C17 8.4 17.2 8 17.2 7.5C17.2 6.7 16.9 6.1 16.4 5.7C15.9 5.2 15.1 5 14.2 5M13 12V14H15V12H13Z\";\nexport var mdiHelpBoxOutline = \"M11 18H13V16H11V18M12 6C9.8 6 8 7.8 8 10H10C10 8.9 10.9 8 12 8S14 8.9 14 10C14 12 11 11.8 11 15H13C13 12.8 16 12.5 16 10C16 7.8 14.2 6 12 6M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z\";\nexport var mdiHelpCircle = \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\";\nexport var mdiHelpCircleOutline = \"M11,18H13V16H11V18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6Z\";\nexport var mdiHelpNetwork = \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17M12.19,5C11.32,5 10.62,5.2 10.08,5.59C9.56,6 9.3,6.57 9.31,7.36L9.32,7.39H11.25C11.26,7.09 11.35,6.86 11.53,6.7C11.71,6.55 11.93,6.47 12.19,6.47C12.5,6.47 12.76,6.57 12.94,6.75C13.12,6.94 13.2,7.2 13.2,7.5C13.2,7.82 13.13,8.09 12.97,8.32C12.83,8.55 12.62,8.75 12.36,8.91C11.85,9.25 11.5,9.55 11.31,9.82C11.11,10.08 11,10.5 11,11H13C13,10.69 13.04,10.44 13.13,10.26C13.22,10.07 13.39,9.9 13.64,9.74C14.09,9.5 14.46,9.21 14.75,8.81C15.04,8.41 15.19,8 15.19,7.5C15.19,6.74 14.92,6.13 14.38,5.68C13.85,5.23 13.12,5 12.19,5M11,12V14H13V12H11Z\";\nexport var mdiHelpNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M11.95,6C11.17,6 10.55,6.18 10.07,6.5C9.61,6.89 9.38,7.4 9.39,8.1L9.4,8.13H11.11C11.12,7.86 11.2,7.65 11.36,7.5C11.5,7.38 11.72,7.31 11.95,7.31C12.22,7.31 12.45,7.4 12.61,7.56C12.77,7.73 12.85,7.96 12.85,8.22C12.85,8.5 12.78,8.75 12.64,8.95C12.5,9.16 12.33,9.33 12.1,9.5C11.65,9.78 11.34,10.05 11.17,10.29C11,10.5 10.89,10.89 10.89,11.33H12.67C12.67,11.06 12.7,10.84 12.78,10.68C12.86,10.5 13,10.36 13.24,10.21C13.64,10 13.97,9.74 14.22,9.39C14.5,9.03 14.62,8.67 14.62,8.22C14.62,7.55 14.38,7 13.9,6.61C13.42,6.2 12.77,6 11.95,6M10.89,12.22V14H12.67V12.22H10.89Z\";\nexport var mdiHelpRhombus = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 6.95C14.7 7.06 15.87 9.78 14.28 11.81C13.86 12.31 13.19 12.64 12.85 13.07C12.5 13.5 12.5 14 12.5 14.5H11C11 13.65 11 12.94 11.35 12.44C11.68 11.94 12.35 11.64 12.77 11.31C14 10.18 13.68 8.59 12 8.46C11.18 8.46 10.5 9.13 10.5 9.97H9C9 8.3 10.35 6.95 12 6.95M11 15.5H12.5V17H11V15.5Z\";\nexport var mdiHelpRhombusOutline = \"M11 15.5H12.5V17H11V15.5M12 6.95C14.7 7.06 15.87 9.78 14.28 11.81C13.86 12.31 13.19 12.64 12.85 13.07C12.5 13.5 12.5 14 12.5 14.5H11C11 13.65 11 12.94 11.35 12.44C11.68 11.94 12.35 11.64 12.77 11.31C14 10.18 13.68 8.59 12 8.46C11.18 8.46 10.5 9.13 10.5 9.97H9C9 8.3 10.35 6.95 12 6.95M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L20 12L12 20L4 12Z\";\nexport var mdiHexadecimal = \"M7 7C5.9 7 5 7.9 5 9V15C5 16.11 5.9 17 7 17H9C10.11 17 11 16.11 11 15V9C11 7.9 10.11 7 9 7H7M7 9H9V15H7V9M17.6 17L15.5 14.9L13.4 17L12 15.6L14.1 13.5L12 11.4L13.4 10L15.5 12.1L17.6 10L19 11.4L16.9 13.5L19 15.6L17.6 17Z\";\nexport var mdiHexagon = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5Z\";\nexport var mdiHexagonMultiple = \"M10.25,2C10.44,2 10.61,2.11 10.69,2.26L12.91,6.22L13,6.5L12.91,6.78L10.69,10.74C10.61,10.89 10.44,11 10.25,11H5.75C5.56,11 5.39,10.89 5.31,10.74L3.09,6.78L3,6.5L3.09,6.22L5.31,2.26C5.39,2.11 5.56,2 5.75,2H10.25M10.25,13C10.44,13 10.61,13.11 10.69,13.26L12.91,17.22L13,17.5L12.91,17.78L10.69,21.74C10.61,21.89 10.44,22 10.25,22H5.75C5.56,22 5.39,21.89 5.31,21.74L3.09,17.78L3,17.5L3.09,17.22L5.31,13.26C5.39,13.11 5.56,13 5.75,13H10.25M19.5,7.5C19.69,7.5 19.86,7.61 19.94,7.76L22.16,11.72L22.25,12L22.16,12.28L19.94,16.24C19.86,16.39 19.69,16.5 19.5,16.5H15C14.81,16.5 14.64,16.39 14.56,16.24L12.34,12.28L12.25,12L12.34,11.72L14.56,7.76C14.64,7.61 14.81,7.5 15,7.5H19.5Z\";\nexport var mdiHexagonMultipleOutline = \"M9.37 4L10.78 6.5L9.37 9H6.63L5.23 6.5L6.63 4H9.37M10.25 2H5.75C5.56 2 5.39 2.11 5.31 2.26L3.09 6.22L3 6.5L3.09 6.78L5.31 10.74C5.39 10.89 5.56 11 5.75 11H10.25C10.44 11 10.61 10.89 10.69 10.74L12.91 6.78L13 6.5L12.91 6.22L10.69 2.26C10.61 2.11 10.44 2 10.25 2M18.62 9.5L20 12L18.62 14.5H15.88L14.5 12L15.88 9.5H18.62M19.5 7.5H15C14.81 7.5 14.64 7.61 14.56 7.76L12.34 11.72L12.25 12L12.34 12.28L14.56 16.24C14.64 16.39 14.81 16.5 15 16.5H19.5C19.69 16.5 19.86 16.39 19.94 16.24L22.16 12.28L22.25 12L22.16 11.72L19.94 7.76C19.86 7.61 19.69 7.5 19.5 7.5M9.37 15L10.78 17.5L9.37 20H6.63L5.23 17.5L6.63 15H9.37M10.25 13H5.75C5.56 13 5.39 13.11 5.31 13.26L3.09 17.22L3 17.5L3.09 17.78L5.31 21.74C5.39 21.89 5.56 22 5.75 22H10.25C10.44 22 10.61 21.89 10.69 21.74L12.91 17.78L13 17.5L12.91 17.22L10.69 13.26C10.61 13.11 10.44 13 10.25 13Z\";\nexport var mdiHexagonOutline = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagonSlice1 = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15M12,12V5.32L17.94,8.66L12,12Z\";\nexport var mdiHexagonSlice2 = \"M18,15.38L12,12V5.32L18,8.69V15.38M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagonSlice3 = \"M12,5.32L18,8.69V15.31L12,18.68V5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagonSlice4 = \"M12,5.32L18,8.69V15.31L12,18.68L6.06,15.34L12,12V5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagonSlice5 = \"M12,5.32L18,8.69V15.31L12,18.68L6,15.31V8.69L12,12V5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagonSlice6 = \"M12,5.32L18,8.69V15.31L12,18.68L6,15.31V8.69L12,5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z\";\nexport var mdiHexagram = \"M14.5,7.66L20.64,6.97L17,12L20.68,16.97L14.5,16.32L12.03,22L9.5,16.34L3.36,17.03L7,12L3.32,7.03L9.5,7.68L11.97,2L14.5,7.66Z\";\nexport var mdiHexagramOutline = \"M12,7L13.3,9.8L16.5,9.4L14.5,12L16.4,14.5L13.2,14.1L12,17L10.7,14.2L7.5,14.6L9.5,12L7.6,9.5L10.8,9.9L12,7M12,2L9.5,7.7L3.3,7L7,12L3.4,17L9.6,16.3L12,22L14.5,16.3L20.7,16.9L17,12L20.6,7L14.4,7.7L12,2Z\";\nexport var mdiHighDefinition = \"M5,7H7V11H9V7H11V17H9V13H7V17H5V7M13,7H16A3,3 0 0,1 19,10V14A3,3 0 0,1 16,17H13V7M16,15A1,1 0 0,0 17,14V10A1,1 0 0,0 16,9H15V15H16Z\";\nexport var mdiHighDefinitionBox = \"M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M11,15H9.5V13H7.5V15H6V9H7.5V11.5H9.5V9H11V15M13,9H17A1,1 0 0,1 18,10V14A1,1 0 0,1 17,15H13V9M14.5,13.5H16.5V10.5H14.5V13.5Z\";\nexport var mdiHighway = \"M10,2L8,8H11V2H10M13,2V8H16L14,2H13M2,9V10H4V11H6V10H18L18.06,11H20V10H22V9H2M7,11L3.34,22H11V11H7M13,11V22H20.66L17,11H13Z\";\nexport var mdiHiking = \"M17.47 8.67H19V23H17.47V12.6C16.67 12.44 15.92 12.14 15.21 11.71S13.9 10.78 13.39 10.2L12.77 13.27L15 15.47V23H13V17L10.76 14.8L8.89 23H6.73C6.73 23 9.86 7.22 9.89 7.09C10 6.61 10.22 6.24 10.59 6C10.96 5.73 11.33 5.6 11.71 5.6C12.1 5.6 12.46 5.69 12.79 5.87C13.13 6.04 13.39 6.29 13.58 6.61L14.64 8.24C14.93 8.78 15.32 9.25 15.81 9.63S16.86 10.3 17.47 10.5V8.67M8.55 5.89L7.4 5.65C6.83 5.5 6.31 5.62 5.84 5.94C5.38 6.26 5.1 6.7 5 7.28L4.19 11.26C4.16 11.55 4.22 11.81 4.38 12.05C4.54 12.29 4.75 12.42 5 12.46L7.21 12.89L8.55 5.89M13 1C11.9 1 11 1.9 11 3S11.9 5 13 5 15 4.11 15 3 14.11 1 13 1Z\";\nexport var mdiHistory = \"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3\";\nexport var mdiHockeyPuck = \"M12,5C6.5,5 2,6.57 2,8.5C2,10.43 6.5,12 12,12C17.5,12 22,10.43 22,8.5C22,6.57 17.5,5 12,5M2,11.76V16.5C2,18.43 6.5,20 12,20C17.5,20 22,18.43 22,16.5V11.76C21.33,12.22 20.58,12.57 19.73,12.86C17.62,13.6 14.95,14 12,14C9.05,14 6.38,13.6 4.27,12.86C3.42,12.57 2.67,12.22 2,11.76Z\";\nexport var mdiHockeySticks = \"M17.68 4H14.3L12.56 8C12.53 8.04 12.45 8.22 12.31 8.5S12.06 9.04 12 9.19L9.7 4H6.32L10.41 12.84C10.5 13.06 10.73 13.59 11.11 14.43C11.5 15.28 11.78 15.91 12 16.35L13.41 19.44C13.6 19.78 13.89 19.95 14.3 19.95L19 20V16H15L13.6 12.84L17.68 4M20.03 16V20H22V17C22 16.73 21.91 16.5 21.72 16.28C21.53 16.08 21.3 16 21 16H20.03M5 16V20L9.7 19.95C10.11 19.95 10.4 19.78 10.59 19.44L11.44 17.5L9.84 14.06L9 16H5M2 20H3.97V16H3C2.7 16 2.47 16.08 2.28 16.28C2.09 16.5 2 16.73 2 17V20Z\";\nexport var mdiHololens = \"M12,8C12,8 22,8 22,11C22,11 22.09,14.36 21.75,14.25C21,11 12,11 12,11C12,11 3,11 2.25,14.25C1.91,14.36 2,11 2,11C2,8 12,8 12,8M12,12C20,12 20.75,14.25 20.75,14.25C19.75,17.25 19,18 15,18C12,18 13,16.5 12,16.5C11,16.5 12,18 9,18C5,18 4.25,17.25 3.25,14.25C3.25,14.25 4,12 12,12Z\";\nexport var mdiHome = \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\";\nexport var mdiHomeAccount = \"M12,3L2,12H5V20H19V12H22L12,3M12,8.75A2.25,2.25 0 0,1 14.25,11A2.25,2.25 0 0,1 12,13.25A2.25,2.25 0 0,1 9.75,11A2.25,2.25 0 0,1 12,8.75M12,15C13.5,15 16.5,15.75 16.5,17.25V18H7.5V17.25C7.5,15.75 10.5,15 12,15Z\";\nexport var mdiHomeAlert = \"M12 3L2 12H5V20H19V12H22L12 3M13 18H11V16H13V18M13 14H11V8H13V14Z\";\nexport var mdiHomeAlertOutline = \"M12 5.7L17 10.2V18H7V10.2L12 5.7M19 20V12H22L12 3L2 12H5V20M13 8H11V13H13V8M13 15H11V17H13V15\";\nexport var mdiHomeAnalytics = \"M12,3L2,12H5V20H19V12H22M9,18H7V12H9M13,18H11V10H13M17,18H15V14H17\";\nexport var mdiHomeAssistant = \"M21.8,13H20V21H13V17.67L15.79,14.88L16.5,15C17.66,15 18.6,14.06 18.6,12.9C18.6,11.74 17.66,10.8 16.5,10.8A2.1,2.1 0 0,0 14.4,12.9L14.5,13.61L13,15.13V9.65C13.66,9.29 14.1,8.6 14.1,7.8A2.1,2.1 0 0,0 12,5.7A2.1,2.1 0 0,0 9.9,7.8C9.9,8.6 10.34,9.29 11,9.65V15.13L9.5,13.61L9.6,12.9A2.1,2.1 0 0,0 7.5,10.8A2.1,2.1 0 0,0 5.4,12.9A2.1,2.1 0 0,0 7.5,15L8.21,14.88L11,17.67V21H4V13H2.25C1.83,13 1.42,13 1.42,12.79C1.43,12.57 1.85,12.15 2.28,11.72L11,3C11.33,2.67 11.67,2.33 12,2.33C12.33,2.33 12.67,2.67 13,3L17,7V6H19V9L21.78,11.78C22.18,12.18 22.59,12.59 22.6,12.8C22.6,13 22.2,13 21.8,13M7.5,12A0.9,0.9 0 0,1 8.4,12.9A0.9,0.9 0 0,1 7.5,13.8A0.9,0.9 0 0,1 6.6,12.9A0.9,0.9 0 0,1 7.5,12M16.5,12C17,12 17.4,12.4 17.4,12.9C17.4,13.4 17,13.8 16.5,13.8A0.9,0.9 0 0,1 15.6,12.9A0.9,0.9 0 0,1 16.5,12M12,6.9C12.5,6.9 12.9,7.3 12.9,7.8C12.9,8.3 12.5,8.7 12,8.7C11.5,8.7 11.1,8.3 11.1,7.8C11.1,7.3 11.5,6.9 12,6.9Z\";\nexport var mdiHomeAutomation = \"M12,3L2,12H5V20H19V12H22L12,3M12,8.5C14.34,8.5 16.46,9.43 18,10.94L16.8,12.12C15.58,10.91 13.88,10.17 12,10.17C10.12,10.17 8.42,10.91 7.2,12.12L6,10.94C7.54,9.43 9.66,8.5 12,8.5M12,11.83C13.4,11.83 14.67,12.39 15.6,13.3L14.4,14.47C13.79,13.87 12.94,13.5 12,13.5C11.06,13.5 10.21,13.87 9.6,14.47L8.4,13.3C9.33,12.39 10.6,11.83 12,11.83M12,15.17C12.94,15.17 13.7,15.91 13.7,16.83C13.7,17.75 12.94,18.5 12,18.5C11.06,18.5 10.3,17.75 10.3,16.83C10.3,15.91 11.06,15.17 12,15.17Z\";\nexport var mdiHomeBattery = \"M12 20L5 20V12H2L12 3L14.78 5.5H14V7.17C12.84 7.58 12 8.7 12 10V20M15 9H16V7.5H20V9H21C21.55 9 22 9.45 22 10V21C22 21.55 21.55 22 21 22H15C14.45 22 14 21.55 14 21V10C14 9.45 14.45 9 15 9M16 11V14H20V11H16Z\";\nexport var mdiHomeBatteryOutline = \"M15 9H16V7.5H20V9H21C21.55 9 22 9.45 22 10V21C22 21.55 21.55 22 21 22H15C14.45 22 14 21.55 14 21V10C14 9.45 14.45 9 15 9M16 11V14H20V11H16M12 5.69L7 10.19V18H12V20H5V12H2L12 3L14.78 5.5H14V7.17L13.76 7.27L12 5.69Z\";\nexport var mdiHomeCircle = \"M19.07,4.93C17.22,3 14.66,1.96 12,2C9.34,1.96 6.79,3 4.94,4.93C3,6.78 1.96,9.34 2,12C1.96,14.66 3,17.21 4.93,19.06C6.78,21 9.34,22.04 12,22C14.66,22.04 17.21,21 19.06,19.07C21,17.22 22.04,14.66 22,12C22.04,9.34 21,6.78 19.07,4.93M17,12V18H13.5V13H10.5V18H7V12H5L12,5L19.5,12H17Z\";\nexport var mdiHomeCircleOutline = \"M12 20C7.6 20 4 16.4 4 12S7.6 4 12 4 20 7.6 20 12 16.4 20 12 20M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M11 14H13V17H16V12H18L12 7L6 12H8V17H11V14\";\nexport var mdiHomeCity = \"M0,21V10L7.5,5L15,10V21H10V14H5V21H0M24,2V21H17V8.93L16,8.27V6H14V6.93L10,4.27V2H24M21,14H19V16H21V14M21,10H19V12H21V10M21,6H19V8H21V6Z\";\nexport var mdiHomeCityOutline = \"M10,2V4.26L12,5.59V4H22V19H17V21H24V2H10M7.5,5L0,10V21H15V10L7.5,5M14,6V6.93L15.61,8H16V6H14M18,6V8H20V6H18M7.5,7.5L13,11V19H10V13H5V19H2V11L7.5,7.5M18,10V12H20V10H18M18,14V16H20V14H18Z\";\nexport var mdiHomeClock = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C13.62 23 11.53 21.81 10.26 20H4V12H1L11 3L18 9.29C20.89 10.15 23 12.83 23 16M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiHomeClockOutline = \"M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M23 16C23 19.87 19.87 23 16 23C13.62 23 11.53 21.81 10.26 20H4V12H1L11 3L18 9.29C20.89 10.15 23 12.83 23 16M9.29 18C9.11 17.37 9 16.7 9 16C9 12.54 11.5 9.68 14.8 9.11L11 5.69L6 10.19V18H9.29M21 16C21 13.24 18.76 11 16 11S11 13.24 11 16 13.24 21 16 21 21 18.76 21 16Z\";\nexport var mdiHomeEdit = \"M12 3L2 12H5V20H10V14H14V15.11L19.43 9.68L12 3M21.04 11.14C20.9 11.14 20.76 11.2 20.65 11.3L19.65 12.3L21.7 14.35L22.7 13.35C22.91 13.14 22.91 12.79 22.7 12.58L21.42 11.3C21.32 11.2 21.18 11.14 21.04 11.14M19.06 12.88L13 18.94V21H15.06L21.11 14.93L19.06 12.88Z\";\nexport var mdiHomeEditOutline = \"M 21.0413,11.14C 21.1827,11.14 21.3173,11.1973 21.4213,11.3027L 22.6973,12.5787C 22.912,12.792 22.912,13.14 22.6973,13.3493L 21.6973,14.3493L 19.6507,12.3027L 20.6507,11.3027C 20.76,11.1973 20.9013,11.14 21.0413,11.14 Z M 19.0627,12.88L 21.1093,14.932L 15.0627,21L 13,21L 13,18.9373L 19.0627,12.88 Z M 12,5.688L 7,10.188L 7,18L 11,18L 11,20L 5,20L 5,12L 2,12L 12,3L 19.4587,9.71285L 17,12.1716L 17,10.188L 12,5.688 Z\";\nexport var mdiHomeExportOutline = \"M24 13L20 17V14H11V12H20V9L24 13M4 20V12H1L11 3L18 9.3V10H15.79L11 5.69L6 10.19V18H16V16H18V20H4Z\";\nexport var mdiHomeFlood = \"M18.67 19C16.72 19 16.58 20 15.34 20C14.15 20 13.92 19 12 19C10.06 19 9.91 20 8.67 20S7.29 19 5.34 19 3.24 20 2 20V22C3.95 22 4.11 21 5.34 21C6.58 21 6.72 22 8.67 22S10.77 21 12 21C13.23 21 13.41 22 15.34 22S17.44 21 18.67 21C19.89 21 20.07 22 22 22V20C20.76 20 20.62 19 18.67 19M8.68 17.5C10.63 17.5 10.77 16.5 12 16.5C13.2 16.5 13.43 17.5 15.34 17.5C17.29 17.5 17.43 16.5 18.67 16.5C19.86 16.5 20.07 17.5 22 17.5V15.5C21.35 15.5 21 15.22 20.5 14.95L18.5 7.42L20.57 8.27L21.31 6.41L9.78 2L2 11.61L3.57 12.84L4.96 11.06L5.89 14.54C5.71 14.5 5.54 14.5 5.33 14.5C3.38 14.5 3.24 15.5 2 15.5V17.5C3.9 17.5 4.17 16.5 5.35 16.5C6.54 16.5 6.77 17.5 8.68 17.5M14.04 10.18L15.46 15.5C14.12 15.58 14 14.5 12 14.5C11.63 14.5 11.34 14.54 11.08 14.6L10.17 11.21L14.04 10.18Z\";\nexport var mdiHomeFloor0 = \"M11,10H13V16H11V10M22,12H19V20H5V12H2L12,3L22,12M15,10A2,2 0 0,0 13,8H11A2,2 0 0,0 9,10V16A2,2 0 0,0 11,18H13A2,2 0 0,0 15,16V10Z\";\nexport var mdiHomeFloor1 = \"M12,3L2,12H5V20H19V12H22L12,3M10,8H14V18H12V10H10V8Z\";\nexport var mdiHomeFloor2 = \"M12,3L2,12H5V20H19V12H22L12,3M9,8H13A2,2 0 0,1 15,10V12A2,2 0 0,1 13,14H11V16H15V18H9V14A2,2 0 0,1 11,12H13V10H9V8Z\";\nexport var mdiHomeFloor3 = \"M12,3L22,12H19V20H5V12H2L12,3M15,11.5V10C15,8.89 14.1,8 13,8H9V10H13V12H11V14H13V16H9V18H13A2,2 0 0,0 15,16V14.5A1.5,1.5 0 0,0 13.5,13A1.5,1.5 0 0,0 15,11.5Z\";\nexport var mdiHomeFloorA = \"M12,3L2,12H5V20H19V12H22L12,3M11,8H13A2,2 0 0,1 15,10V18H13V15H11V18H9V10C9,8.89 9.9,8 11,8M11,10V13H13V10H11Z\";\nexport var mdiHomeFloorB = \"M12,3L2,12H5V20H19V12H22L12,3M9,8H13A2,2 0 0,1 15,10V11.5A1.5,1.5 0 0,1 13.5,13A1.5,1.5 0 0,1 15,14.5V16A2,2 0 0,1 13,18H9V8M11,10V12H13V10H11M11,14V16H13V14H11Z\";\nexport var mdiHomeFloorG = \"M12,3L2,12H5V20H19V12H22L12,3M11,8H15V10H11V16H13V12H15V16C15,17.11 14.1,18 13,18H11A2,2 0 0,1 9,16V10C9,8.89 9.9,8 11,8Z\";\nexport var mdiHomeFloorL = \"M12,3L2,12H5V20H19V12H22L12,3M9,8H11V16H15V18H9V8Z\";\nexport var mdiHomeFloorNegative1 = \"M12,3L2,12H5V20H19V12H22L12,3M11,15H7V13H11V15M15,18H13V10H11V8H15V18Z\";\nexport var mdiHomeGroup = \"M17,16H15V22H12V17H8V22H5V16H3L10,10L17,16M6,2L10,6H9V9H7V6H5V9H3V6H2L6,2M18,3L23,8H22V12H19V9H17V12H15.34L14,10.87V8H13L18,3Z\";\nexport var mdiHomeGroupMinus = \"M2 6H1L5 2L9 6H8V9H6V6H4V9H2V6M13 10.9L14.3 12H16V9H18V12H21V8H22L17 3L12 8H13V10.9M13.8 22C13.3 21.1 13 20.1 13 19C13 17.4 13.6 15.9 14.7 14.9L9 10L2 16H4V22H7V17H11V22H13.8M15 18V20H23V18H15Z\";\nexport var mdiHomeGroupPlus = \"M2 6H1L5 2L9 6H8V9H6V6H4V9H2V6M13 10.9L14.3 12H16V9H18V12H21V8H22L17 3L12 8H13V10.9M13.8 22C13.3 21.1 13 20.1 13 19C13 17.4 13.6 15.9 14.7 14.9L9 10L2 16H4V22H7V17H11V22H13.8M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiHomeGroupRemove = \"M2 6H1L5 2L9 6H8V9H6V6H4V9H2V6M13 10.9L14.3 12H16V9H18V12H21V8H22L17 3L12 8H13V10.9M13.8 22C13.3 21.1 13 20.1 13 19C13 17.4 13.6 15.9 14.7 14.9L9 10L2 16H4V22H7V17H11V22H13.8M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiHomeHeart = \"M2,12L12,3L22,12H19V20H5V12H2M12,18L12.72,17.34C15.3,15 17,13.46 17,11.57C17,10.03 15.79,8.82 14.25,8.82C13.38,8.82 12.55,9.23 12,9.87C11.45,9.23 10.62,8.82 9.75,8.82C8.21,8.82 7,10.03 7,11.57C7,13.46 8.7,15 11.28,17.34L12,18Z\";\nexport var mdiHomeImportOutline = \"M15 13L11 17V14H2V12H11V9L15 13M5 20V16H7V18H17V10.19L12 5.69L7.21 10H4.22L12 3L22 12H19V20H5Z\";\nexport var mdiHomeLightbulb = \"M12 3L2 12H5V20H19V12H22M13 18H11V17H13M13.5 14.58V16H10.5V14.58A3 3 0 1 1 13.5 14.58Z\";\nexport var mdiHomeLightbulbOutline = \"M5 20V12H2L12 3L22 12H19V20H5M12 5.69L7 10.19V18H17V10.19L12 5.69M11 17V16H13V17H11M11 15C10.72 15 10.5 14.78 10.5 14.5V13.6C9.6 13.08 9 12.11 9 11C9 9.34 10.34 8 12 8C13.66 8 15 9.34 15 11C15 12.11 14.4 13.08 13.5 13.6V14.5C13.5 14.78 13.28 15 13 15H11Z\";\nexport var mdiHomeLightningBolt = \"M12 3L2 12H5V20H19V12H22L12 3M11.5 18V14H9L12.5 7V11H15L11.5 18Z\";\nexport var mdiHomeLightningBoltOutline = \"M5 20V12H2L12 3L22 12H19V20H5M12 5.69L7 10.19V18H17V10.19L12 5.69M11.5 18V14H9L12.5 7V11H15L11.5 18Z\";\nexport var mdiHomeLock = \"M12,3L2,12H5V20H19V12H22L12,3M12,9A3,3 0 0,1 15,12V13H16V17H8V13H9V12A3,3 0 0,1 12,9M12,11A1,1 0 0,0 11,12V13H13V12C13,11.5 12.6,11 12,11Z\";\nexport var mdiHomeLockOpen = \"M12,3L2,12H5V20H19V12H22L12,3M12,8A3,3 0 0,1 15,11H13A1,1 0 0,0 12,10A1,1 0 0,0 11,11V13H16V17H8V13H9V11A3,3 0 0,1 12,8Z\";\nexport var mdiHomeMapMarker = \"M12,3L2,12H5V20H19V12H22L12,3M12,7.7C14.1,7.7 15.8,9.4 15.8,11.5C15.8,14.5 12,18 12,18C12,18 8.2,14.5 8.2,11.5C8.2,9.4 9.9,7.7 12,7.7M12,10A1.5,1.5 0 0,0 10.5,11.5A1.5,1.5 0 0,0 12,13A1.5,1.5 0 0,0 13.5,11.5A1.5,1.5 0 0,0 12,10Z\";\nexport var mdiHomeMinus = \"M22 17V19H14V17H22M12 3L22 12H18C14.69 12 12 14.69 12 18C12 18.7 12.12 19.37 12.34 20H5V12H2L12 3Z\";\nexport var mdiHomeMinusOutline = \"M14 17H22V19H14V17M5 20V12H2L12 3L22 12H17V10.19L12 5.69L7 10.19V18H12C12 18.7 12.12 19.37 12.34 20H5Z\";\nexport var mdiHomeModern = \"M6,21V8A2,2 0 0,1 8,6L16,3V6A2,2 0 0,1 18,8V21H12V16H8V21H6M14,19H16V16H14V19M8,13H10V9H8V13M12,13H16V9H12V13Z\";\nexport var mdiHomeOff = \"M20.84 22.73L18.11 20H14V15.89L12.11 14H10V20H5V12H2L6.27 8.16L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M19 12H22L12 3L8.95 5.75L19 15.8V12Z\";\nexport var mdiHomeOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L6.27 8.16L2 12H5V20H11V14H12.11L13 14.89V20H18.11L20.84 22.73L22.11 21.46M9 12V18H7V10.19L7.68 9.57L10.11 12H9M15 18V16.89L16.11 18H15M10.36 7.16L8.95 5.75L12 3L22 12H19V15.8L17 13.8V10.19L12 5.69L10.36 7.16Z\";\nexport var mdiHomeOutline = \"M12 5.69L17 10.19V18H15V12H9V18H7V10.19L12 5.69M12 3L2 12H5V20H11V14H13V20H19V12H22\";\nexport var mdiHomePercent = \"M19 12V20H5V12H2L12 3L22 12H19M15.53 11.03L14.47 9.97L8.47 15.97L9.53 17.03L15.53 11.03M10.63 10.37C10.4 10.13 10.08 10 9.75 10C9.42 10 9.1 10.13 8.87 10.37C8.63 10.6 8.5 10.92 8.5 11.25C8.5 11.58 8.63 11.9 8.87 12.13C9.1 12.37 9.42 12.5 9.75 12.5C10.08 12.5 10.4 12.37 10.63 12.13C10.87 11.9 11 11.58 11 11.25C11 10.92 10.87 10.6 10.63 10.37M15.13 14.87C14.9 14.63 14.58 14.5 14.25 14.5C13.92 14.5 13.6 14.63 13.37 14.87C13.13 15.1 13 15.42 13 15.75C13 16.08 13.13 16.4 13.37 16.63C13.6 16.87 13.92 17 14.25 17C14.58 17 14.9 16.87 15.13 16.63C15.37 16.4 15.5 16.08 15.5 15.75C15.5 15.42 15.37 15.1 15.13 14.87Z\";\nexport var mdiHomePercentOutline = \"M15.53 11.03L14.47 9.97L8.47 15.97L9.53 17.03L15.53 11.03M10.63 10.37C10.4 10.13 10.08 10 9.75 10C9.42 10 9.1 10.13 8.87 10.37C8.63 10.6 8.5 10.92 8.5 11.25C8.5 11.58 8.63 11.9 8.87 12.13C9.1 12.37 9.42 12.5 9.75 12.5C10.08 12.5 10.4 12.37 10.63 12.13C10.87 11.9 11 11.58 11 11.25C11 10.92 10.87 10.6 10.63 10.37M15.13 14.87C14.9 14.63 14.58 14.5 14.25 14.5C13.92 14.5 13.6 14.63 13.37 14.87C13.13 15.1 13 15.42 13 15.75C13 16.08 13.13 16.4 13.37 16.63C13.6 16.87 13.92 17 14.25 17C14.58 17 14.9 16.87 15.13 16.63C15.37 16.4 15.5 16.08 15.5 15.75C15.5 15.42 15.37 15.1 15.13 14.87M19 12V20H5V12H2L12 3L22 12H19M17 10.2L12 5.7L7 10.2V18H17V10.2Z\";\nexport var mdiHomePlus = \"M17 14H19V17H22V19H19V22H17V19H14V17H17V14M12 3L22 12H18C14.69 12 12 14.69 12 18C12 18.7 12.12 19.37 12.34 20H5V12H2L12 3Z\";\nexport var mdiHomePlusOutline = \"M17 14H19V17H22V19H19V22H17V19H14V17H17V14M5 20V12H2L12 3L22 12H17V10.19L12 5.69L7 10.19V18H12C12 18.7 12.12 19.37 12.34 20H5Z\";\nexport var mdiHomeRemove = \"M14.46 15.88L15.88 14.46L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.46 20.12L16.59 18L14.47 15.88M12 3L22 12H18C14.69 12 12 14.69 12 18C12 18.7 12.12 19.37 12.34 20H5V12H2L12 3Z\";\nexport var mdiHomeRemoveOutline = \"M14.46 15.88L15.88 14.46L18 16.59L20.12 14.47L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.46 20.12L16.59 18L14.47 15.88M5 20V12H2L12 3L22 12H17V10.19L12 5.69L7 10.19V18H12C12 18.7 12.12 19.37 12.34 20H5Z\";\nexport var mdiHomeRoof = \"M19 16H22L12 7L2 16H5L12 9.69L19 16M7 8.81V7H4V11.5L7 8.81Z\";\nexport var mdiHomeSearch = \"M19.31 18.9C19.75 18.21 20 17.38 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.37 21 17.19 20.75 17.88 20.32L21 23.39L22.39 22L19.31 18.9M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M5 20V12H2L12 3L22 12H20.18C19 10.77 17.34 10 15.5 10C11.92 10 9 12.92 9 16.5C9 17.79 9.38 19 10.03 20H5Z\";\nexport var mdiHomeSearchOutline = \"M19.31 18.9C19.75 18.21 20 17.38 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.37 21 17.19 20.75 17.88 20.32L21 23.39L22.39 22L19.31 18.9M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M5 20V12H2L12 3L22 12H20.18C19.33 11.11 18.23 10.47 17 10.18L12 5.69L7 10.19V18H9.18C9.35 18.72 9.64 19.39 10.03 20H5Z\";\nexport var mdiHomeSilo = \"M24 7.8C23.6 4.5 20.9 2 17.5 2C15.8 2 14.1 2.7 12.9 3.9C12.2 4.6 11.7 5.3 11.4 6.2L17 9.9V10H20V12H17V14H20V16H17V18H20V20H17V22H24V7.8M13.3 7C13.9 5.2 15.6 4 17.5 4S21.1 5.2 21.7 7H13.3M0 11V22H5V15H10V22H15V11L7.5 6L0 11Z\";\nexport var mdiHomeSiloOutline = \"M20 21H17V19H20V21M20 17H17V15H20V17M20 13H17V11H20V13M24 7.8C23.6 4.5 20.8 2 17.5 2C15.8 2 14.1 2.7 12.9 3.9C12.2 4.6 11.7 5.3 11.4 6.2L15.6 9H22V22H24V7.8M13.3 7C13.9 5.2 15.6 4 17.5 4S21.1 5.2 21.7 7H13.3M7.5 6L0 11V22H15V11L7.5 6M13 20H10V14H5V20H2V12L7.5 8.5L13 12V20Z\";\nexport var mdiHomeSoundIn = \"M6.58045 2C6.50974 4.6163 4.52984 6.59619 1.98426 6.59619V8.01041C5.44908 8.08112 8.13609 5.39411 7.99467 2H6.58045Z M1.98426 3.62635V5.04056C3.75202 4.96985 5.02482 3.69706 5.02482 2H3.6106C3.46918 2.84853 2.83278 3.48492 1.98426 3.62635Z M22.0157 6.59619C19.4702 6.59619 17.4903 4.6163 17.4196 2H16.0053C15.8639 5.39411 18.5509 8.08112 22.0157 8.01041V6.59619Z M22.0157 5.04056V3.62635C21.1672 3.48492 20.5308 2.84853 20.3894 2H18.9752C18.9752 3.69706 20.248 4.96985 22.0157 5.04056Z M19 20V12H22L12 3L2 12H5V20H19Z\";\nexport var mdiHomeSoundInOutline = \"M6.58045 2C6.50974 4.6163 4.52984 6.59619 1.98425 6.59619V8.01041C5.44908 8.08112 8.13608 5.39411 7.99466 2H6.58045Z M1.98425 3.62635V5.04056C3.75202 4.96985 5.02481 3.69706 5.02481 2H3.6106C3.46918 2.84853 2.83278 3.48492 1.98425 3.62635Z M22.0157 6.59619C19.4702 6.59619 17.4903 4.6163 17.4195 2H16.0053C15.8639 5.39411 18.5509 8.08112 22.0157 8.01041V6.59619Z M22.0157 5.04056V3.62635C21.1672 3.48492 20.5308 2.84853 20.3894 2H18.9752C18.9752 3.69706 20.248 4.96985 22.0157 5.04056Z M19 20V12H22L12 3L2 12H5V20H19ZM12 5.7L17 10.2V18H7V10.2L12 5.7Z\";\nexport var mdiHomeSoundOut = \"M2.4038 7.01172C2.47451 4.39542 4.45441 2.41552 7 2.41552V1.00131C3.53517 0.9306 0.848167 3.61761 0.989589 7.01172L2.4038 7.01172Z M7 5.38537V3.97116C5.23223 4.04187 3.95944 5.31466 3.95944 7.01172H5.37365C5.51507 6.16319 6.15147 5.52679 7 5.38537Z M17 2.41552C19.5456 2.41552 21.5255 4.39542 21.5962 7.01172L23.0104 7.01172C23.1518 3.61761 20.4648 0.9306 17 1.00131V2.41552Z M17 3.97116V5.38537C17.8485 5.52679 18.4849 6.16319 18.6263 7.01172H20.0406C20.0406 5.31466 18.7678 4.04187 17 3.97116Z M19 20V12H22L12 3L2 12H5V20H19Z\";\nexport var mdiHomeSoundOutOutline = \"M2.4038 7.01172C2.47451 4.39542 4.45441 2.41552 7 2.41552V1.00131C3.53517 0.9306 0.848167 3.61761 0.989589 7.01172L2.4038 7.01172Z M7 5.38537V3.97116C5.23223 4.04187 3.95944 5.31466 3.95944 7.01172H5.37365C5.51507 6.16319 6.15147 5.52679 7 5.38537Z M17 2.41552C19.5456 2.41552 21.5255 4.39542 21.5962 7.01172L23.0104 7.01172C23.1518 3.61761 20.4648 0.9306 17 1.00131V2.41552Z M17 3.97116V5.38537C17.8485 5.52679 18.4849 6.16319 18.6263 7.01172H20.0406C20.0406 5.31466 18.7678 4.04187 17 3.97116Z M19 20V12H22L12 3L2 12H5V20H19ZM12 5.7L17 10.2V18H7V10.2L12 5.7Z\";\nexport var mdiHomeSwitch = \"M6.5 15V11H9.5V15H13V9H15L8 3L1 9H3V15H6.5M9 16V18H15V16L18 19L15 22V20H9V22L6 19L9 16M23 9H21V15H15V10H19L13.54 5.11L16 3L23 9Z\";\nexport var mdiHomeSwitchOutline = \"M8 3L1 9H3V15H7V11H9V15H13V9H15L8 3M11.5 9V13.5H10.5V9.5H5.5V13.5H4.5V8L8 5L11.5 8V9M9 16V18H15V16L18 19L15 22V20H9V22L6 19L9 16M23 9H21V15H15V10H19L13.54 5.11L16 3L23 9Z\";\nexport var mdiHomeThermometer = \"M19 8C20.11 8 21 8.9 21 10V16.76C21.61 17.31 22 18.11 22 19C22 20.66 20.66 22 19 22C17.34 22 16 20.66 16 19C16 18.11 16.39 17.31 17 16.76V10C17 8.9 17.9 8 19 8M19 9C18.45 9 18 9.45 18 10V11H20V10C20 9.45 19.55 9 19 9M5 20V12H2L12 3L16.4 6.96C15.54 7.69 15 8.78 15 10V16C14.37 16.83 14 17.87 14 19L14.1 20H5Z\";\nexport var mdiHomeThermometerOutline = \"M19 8C20.11 8 21 8.9 21 10V16.76C21.61 17.31 22 18.11 22 19C22 20.66 20.66 22 19 22C17.34 22 16 20.66 16 19C16 18.11 16.39 17.31 17 16.76V10C17 8.9 17.9 8 19 8M19 9C18.45 9 18 9.45 18 10V11H20V10C20 9.45 19.55 9 19 9M12 5.69L7 10.19V18H14.1L14 19L14.1 20H5V12H2L12 3L16.4 6.96C15.89 7.4 15.5 7.97 15.25 8.61L12 5.69Z\";\nexport var mdiHomeVariant = \"M12,3L20,9V21H15V14H9V21H4V9L12,3Z\";\nexport var mdiHomeVariantOutline = \"M9,13H15V19H18V10L12,5.5L6,10V19H9V13M4,21V9L12,3L20,9V21H4Z\";\nexport var mdiHook = \"M18,6C18,7.82 16.76,9.41 15,9.86V17A5,5 0 0,1 10,22A5,5 0 0,1 5,17V12L10,17H7A3,3 0 0,0 10,20A3,3 0 0,0 13,17V9.86C11.23,9.4 10,7.8 10,5.97C10,3.76 11.8,2 14,2C16.22,2 18,3.79 18,6M14,8A2,2 0 0,0 16,6A2,2 0 0,0 14,4A2,2 0 0,0 12,6A2,2 0 0,0 14,8Z\";\nexport var mdiHookOff = \"M13,9.86V11.18L15,13.18V9.86C17.14,9.31 18.43,7.13 17.87,5C17.32,2.85 15.14,1.56 13,2.11C10.86,2.67 9.57,4.85 10.13,7C10.5,8.4 11.59,9.5 13,9.86M14,4A2,2 0 0,1 16,6A2,2 0 0,1 14,8A2,2 0 0,1 12,6A2,2 0 0,1 14,4M18.73,22L14.86,18.13C14.21,20.81 11.5,22.46 8.83,21.82C6.6,21.28 5,19.29 5,17V12L10,17H7A3,3 0 0,0 10,20A3,3 0 0,0 13,17V16.27L2,5.27L3.28,4L13,13.72L15,15.72L20,20.72L18.73,22Z\";\nexport var mdiHoopHouse = \"M12 5C6.5 5 2 9.5 2 15V21H22V15C22 9.5 17.5 5 12 5M12 7C14.53 7 16.78 8.17 18.25 10H5.76C7.22 8.17 9.47 7 12 7M8 19H4V15C4 13.94 4.21 12.93 4.58 12H8V19M14 19H10V12H14V19M20 19H16V12H19.42C19.79 12.93 20 13.94 20 15V19Z\";\nexport var mdiHops = \"M21,12C21,12 12.5,10 12.5,2C12.5,2 21,2 21,12M3,12C3,2 11.5,2 11.5,2C11.5,10 3,12 3,12M12,6.5C12,6.5 13,8.66 15,10.5C14.76,14.16 12,16 12,16C12,16 9.24,14.16 9,10.5C11,8.66 12,6.5 12,6.5M20.75,13.25C20.75,13.25 20,17 18,19C18,19 15.53,17.36 14.33,14.81C15.05,13.58 15.5,12.12 15.75,11.13C17.13,12.18 18.75,13 20.75,13.25M15.5,18.25C14.5,20.25 12,21.75 12,21.75C12,21.75 9.5,20.25 8.5,18.25C8.5,18.25 9.59,17.34 10.35,15.8C10.82,16.35 11.36,16.79 12,17C12.64,16.79 13.18,16.35 13.65,15.8C14.41,17.34 15.5,18.25 15.5,18.25M3.25,13.25C5.25,13 6.87,12.18 8.25,11.13C8.5,12.12 8.95,13.58 9.67,14.81C8.47,17.36 6,19 6,19C4,17 3.25,13.25 3.25,13.25Z\";\nexport var mdiHorizontalRotateClockwise = \"M12 14L8 10L4 14H7.1C7.56 18.56 9.58 22 12 22S16.44 18.56 16.9 14H14.91C14.57 17.45 13.4 20 12 20S9.43 17.45 9.09 14H12M12 4C13.4 4 14.57 6.55 14.91 10H16.9C16.44 5.44 14.42 2 12 2C9.84 2 8 4.74 7.3 8.58L8 7.88L9.21 9.08C9.64 6.11 10.73 4 12 4M22 13V11H11L13 13H22M2 13H3L5 11H2V13Z\";\nexport var mdiHorizontalRotateCounterclockwise = \"M12 10H9.09C9.43 6.55 10.6 4 12 4S14.57 6.55 14.91 10H16.9C16.44 5.44 14.42 2 12 2S7.56 5.44 7.1 10H4L8 14L12 10M12 20C10.73 20 9.64 17.89 9.21 14.92L8 16.12L7.3 15.42C8 19.26 9.84 22 12 22C14.42 22 16.44 18.56 16.9 14H14.91C14.57 17.45 13.4 20 12 20M22 11H13L11 13H22V11M2 13H5L3 11H2V13\";\nexport var mdiHorse = \"M22 6V9.5L20.5 10L18.96 7.54C18.83 7.33 18.5 7.42 18.5 7.67V11.25C18.5 12.23 18.11 13.11 17.5 13.78V21H15V15C14.92 15 14.84 15 14.75 15C14.54 15 14.33 14.97 14.13 14.94L9.69 14.2L8.57 16.21L9.53 21H7L6 16.25C5.97 15.95 6 15.65 6.16 15.39L7.18 13.58C6.2 13.03 5.53 12 5.5 10.81C5.46 10.96 5.44 11.18 5.47 11.5C5.5 11.94 5.61 12.59 5.54 13.31C5.5 14.03 5.17 14.77 4.75 15.26C4.32 15.75 3.85 16.09 3.35 16.35L2.65 15.65C2.84 15.18 3.03 14.76 3.07 14.37C3.13 14 3.06 13.7 2.95 13.43L2.42 12.3C2.21 11.79 1.95 11.05 2 10.18C2.03 9.33 2.5 8.22 3.39 7.61C4.29 7 5.26 6.92 6.05 7.08C6.55 7.18 7.06 7.42 7.5 7.76C7.87 7.59 8.3 7.5 8.75 7.5H14.5V7C14.5 4.79 16.29 3 18.5 3H22L21.11 4.34C21.65 4.7 22 5.31 22 6Z\";\nexport var mdiHorseHuman = \"M10 3.5C10 2.67 10.67 2 11.5 2S13 2.67 13 3.5 12.33 5 11.5 5 10 4.33 10 3.5M22 8V11.5L20.97 11.85C20.8 13.06 19.76 14 18.5 14H18.42C18.28 14.68 17.95 15.29 17.5 15.78V22H15V17C14.92 17 14.84 17 14.75 17C14.54 17 14.33 16.97 14.13 16.94L9.69 16.2L8.57 18.21L9.32 22H6.78L6 18.25C5.97 17.95 6 17.65 6.16 17.39L7.18 15.58C6.2 15.03 5.53 14 5.5 12.81C5.46 12.96 5.44 13.18 5.47 13.5C5.5 13.94 5.61 14.59 5.54 15.31C5.5 16.03 5.17 16.77 4.75 17.26C4.32 17.75 3.85 18.09 3.35 18.35L2.65 17.65C2.84 17.18 3.03 16.76 3.07 16.37C3.13 16 3.06 15.7 2.95 15.43L2.42 14.3C2.21 13.79 1.95 13.05 2 12.18C2.03 11.33 2.5 10.22 3.39 9.61C4.29 9 5.26 8.91 6.05 9.08C6.55 9.18 7.06 9.42 7.5 9.76C7.87 9.59 8.3 9.5 8.75 9.5H9V8.11C9 7.11 9.68 6.19 10.66 6.03C11.92 5.82 13 6.79 13 8V9.5H14.5V9C14.5 6.79 16.29 5 18.5 5H22L21.11 6.34C21.65 6.7 22 7.31 22 8M20 11.2L18.96 9.54C18.83 9.33 18.5 9.42 18.5 9.67V13C19.33 13 20 12.33 20 11.5V11.2Z\";\nexport var mdiHorseVariant = \"M20 8V16L17 17L13.91 11.5C13.65 11.04 12.92 11.27 13 11.81L14 21L4 17L5.15 8.94C5.64 5.53 8.56 3 12 3H20L18.42 5.37C19.36 5.88 20 6.86 20 8Z\";\nexport var mdiHorseVariantFast = \"M23 8V16L20 17L16.91 11.5C16.65 11.04 15.92 11.27 16 11.81L17 21L7 17L8.15 8.94C8.64 5.53 11.56 3 15 3H23L21.42 5.37C22.36 5.88 23 6.86 23 8M4 5H7.58C8.08 4.24 8.7 3.57 9.41 3H4C3.45 3 3 3.45 3 4S3.45 5 4 5M5.84 11H2C1.45 11 1 11.45 1 12S1.45 13 2 13H5.55L5.84 11M3 9H6.12L6.17 8.66C6.25 8.08 6.39 7.53 6.58 7H3C2.45 7 2 7.45 2 8S2.45 9 3 9Z\";\nexport var mdiHorseshoe = \"M19,4H20V1H16V4C16,4 18,8 18,12C18,16 16,19 12,19C8,19 6,16 6,12C6,8 8,4 8,4V1H4V4H5C5,4 2,8 2,14C2,19 7,23 12,23C17,23 22,19 22,14C22,8 19,4 19,4M4,13C3.4,13 3,12.6 3,12C3,11.4 3.4,11 4,11C4.6,11 5,11.4 5,12C5,12.6 4.6,13 4,13M6,19C5.4,19 5,18.6 5,18C5,17.4 5.4,17 6,17C6.6,17 7,17.4 7,18C7,18.6 6.6,19 6,19M12,22C11.4,22 11,21.6 11,21C11,20.4 11.4,20 12,20C12.6,20 13,20.4 13,21C13,21.6 12.6,22 12,22M18,19C17.4,19 17,18.6 17,18C17,17.4 17.4,17 18,17C18.6,17 19,17.4 19,18C19,18.6 18.6,19 18,19M20,13C19.4,13 19,12.6 19,12C19,11.4 19.4,11 20,11C20.6,11 21,11.4 21,12C21,12.6 20.6,13 20,13Z\";\nexport var mdiHospital = \"M18 14H14V18H10V14H6V10H10V6H14V10H18\";\nexport var mdiHospitalBox = \"M18,14H14V18H10V14H6V10H10V6H14V10H18M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiHospitalBoxOutline = \"M18 14H14V18H10V14H6V10H10V6H14V10H18M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M20 20H4V4H20V20Z\";\nexport var mdiHospitalBuilding = \"M2,22V7A1,1 0 0,1 3,6H7V2H17V6H21A1,1 0 0,1 22,7V22H14V17H10V22H2M9,4V10H11V8H13V10H15V4H13V6H11V4H9M4,20H8V17H4V20M4,15H8V12H4V15M16,20H20V17H16V20M16,15H20V12H16V15M10,15H14V12H10V15Z\";\nexport var mdiHospitalMarker = \"M12,2C15.86,2 19,5.13 19,9C19,14.25 12,22 12,22C12,22 5,14.25 5,9A7,7 0 0,1 12,2M9,6V12H11V10H13V12H15V6H13V8H11V6H9Z\";\nexport var mdiHotTub = \"M7,4A2,2 0 0,1 9,6A2,2 0 0,1 7,8A2,2 0 0,1 5,6A2,2 0 0,1 7,4M11.15,12H22V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V12H5V11.25C5,10 6,9 7.25,9H7.28C7.62,9 7.95,9.09 8.24,9.23C8.5,9.35 8.74,9.5 8.93,9.73L10.33,11.28C10.56,11.54 10.84,11.78 11.15,12M7,20V14H5V20H7M11,20V14H9V20H11M15,20V14H13V20H15M19,20V14H17V20H19M18.65,5.86C19.68,6.86 20.16,8.21 19.95,9.57L19.89,10H18L18.09,9.41C18.24,8.62 18,7.83 17.42,7.21L17.35,7.15C16.32,6.14 15.85,4.79 16.05,3.43L16.11,3H18L17.91,3.59C17.76,4.38 18,5.17 18.58,5.79L18.65,5.86M14.65,5.86C15.68,6.86 16.16,8.21 15.95,9.57L15.89,10H14L14.09,9.41C14.24,8.62 14,7.83 13.42,7.21L13.35,7.15C12.32,6.14 11.85,4.79 12.05,3.43L12.11,3H14L13.91,3.59C13.76,4.38 14,5.17 14.58,5.79L14.65,5.86Z\";\nexport var mdiHours12 = \"M13 2V4C17 4.5 20 7.8 20 11.9C20 15.1 18.1 17.9 15.3 19.2L13 17V22H18L16.8 20.8C19.9 19.1 22 15.8 22 12C22 6.8 18 2.5 13 2M11 2C9.1 2.2 7.2 3 5.7 4.2L7.1 5.6C8.2 4.8 9.6 4.2 11 4V2M4.2 5.7C3 7.2 2.2 9.1 2 11H4C4.2 9.6 4.8 8.2 5.6 7.1L4.2 5.7M2 13C2.2 14.9 3 16.8 4.2 18.3L5.6 16.9C4.8 15.8 4.2 14.4 4 13H2M7.1 18.4L5.7 19.8C7.2 21 9.1 21.8 11 22V20C9.6 19.8 8.2 19.2 7.1 18.4M12 8V10H15V11H14C12.9 11 12 11.9 12 13V16H17V14H14V13H15C16.1 13 17 12.1 17 11V10C17 8.9 16.1 8 15 8H12M7 8V10H8V16H10V8H7Z\";\nexport var mdiHours24 = \"M13 2.05V4.07C16.95 4.56 20 7.92 20 12C20 15.21 18.08 18 15.28 19.28L13 17V22H18L16.78 20.78C19.91 19.07 22 15.76 22 12C22 6.82 18.05 2.55 13 2.05M11 2C9.05 2.2 7.2 2.96 5.68 4.21L7.1 5.63C8.23 4.75 9.58 4.2 11 4V2M4.2 5.68C2.96 7.2 2.2 9.05 2 11H4C4.19 9.58 4.75 8.23 5.63 7.1L4.2 5.68M6 8V10H9V11H8C6.9 11 6 11.9 6 13V16H11V14H8V13H9C10.11 13 11 12.11 11 11V10C11 8.9 10.11 8 9 8H6M12 8V13H15V16H17V13H18V11H17V8H15V11H14V8H12M2 13C2.2 14.95 2.97 16.8 4.22 18.32L5.64 16.9C4.76 15.77 4.2 14.42 4 13H2M7.11 18.37L5.68 19.79C7.2 21.03 9.05 21.8 11 22V20C9.58 19.81 8.24 19.25 7.11 18.37Z\";\nexport var mdiHub = \"M8.4 18.2C8.8 18.7 9 19.3 9 20C9 21.7 7.7 23 6 23S3 21.7 3 20 4.3 17 6 17C6.4 17 6.8 17.1 7.2 17.3L8.6 15.5C7.7 14.5 7.3 13.1 7.5 11.8L5.5 11.1C5 11.9 4.1 12.5 3 12.5C1.3 12.5 0 11.2 0 9.5S1.3 6.5 3 6.5 6 7.8 6 9.5V9.7L8 10.4C8.6 9.2 9.8 8.3 11.2 8.1V5.9C10 5.6 9 4.4 9 3C9 1.3 10.3 0 12 0S15 1.3 15 3C15 4.4 14 5.6 12.8 5.9V8.1C14.2 8.3 15.4 9.2 16 10.4L18 9.7V9.5C18 7.8 19.3 6.5 21 6.5S24 7.8 24 9.5 22.7 12.5 21 12.5C19.9 12.5 19 11.9 18.5 11.1L16.5 11.8C16.7 13.1 16.3 14.5 15.4 15.5L16.8 17.3C17.2 17.1 17.6 17 18 17C19.7 17 21 18.3 21 20S19.7 23 18 23 15 21.7 15 20C15 19.3 15.2 18.7 15.6 18.2L14.2 16.4C12.8 17.2 11.2 17.2 9.8 16.4L8.4 18.2Z\";\nexport var mdiHubOutline = \"M21 6.5C19.3 6.5 18 7.8 18 9.5V9.7L16 10.4C15.4 9.2 14.2 8.3 12.8 8.1V5.9C14 5.6 15 4.4 15 3C15 1.3 13.7 0 12 0S9 1.3 9 3C9 4.4 10 5.6 11.2 5.9V8.1C9.9 8.3 8.7 9.2 8 10.4L6 9.7V9.5C6 7.8 4.7 6.5 3 6.5S0 7.8 0 9.5 1.3 12.5 3 12.5C4.1 12.5 5 11.9 5.5 11.1L7.5 11.8C7.3 13.1 7.7 14.5 8.6 15.5L7.2 17.3C6.8 17.1 6.4 17 6 17C4.3 17 3 18.3 3 20S4.3 23 6 23 9 21.7 9 20C9 19.3 8.8 18.7 8.4 18.2L9.8 16.4C11.2 17.2 12.8 17.2 14.2 16.4L15.6 18.2C15.2 18.7 15 19.3 15 20C15 21.7 16.3 23 18 23S21 21.7 21 20 19.7 17 18 17C17.6 17 17.1 17.1 16.8 17.3L15.4 15.5C16.3 14.5 16.7 13.1 16.5 11.8L18.5 11.1C19 11.9 20 12.5 21 12.5C22.7 12.5 24 11.2 24 9.5S22.7 6.5 21 6.5M3 10.5C2.5 10.5 2 10.1 2 9.5S2.5 8.5 3 8.5 4 8.9 4 9.5 3.5 10.5 3 10.5M6 21C5.4 21 5 20.5 5 20S5.4 19 6 19 7 19.5 7 20 6.6 21 6 21M11 3C11 2.5 11.4 2 12 2S13 2.5 13 3 12.6 4 12 4 11 3.5 11 3M12 15C10.6 15 9.5 13.9 9.5 12.5S10.6 10 12 10 14.5 11.1 14.5 12.5 13.4 15 12 15M18 19C18.5 19 19 19.5 19 20S18.5 21 18 21 17 20.5 17 20 17.5 19 18 19M21 10.5C20.5 10.5 20 10.1 20 9.5S20.5 8.5 21 8.5 22 8.9 22 9.5 21.5 10.5 21 10.5Z\";\nexport var mdiHubspot = \"M17.1,8.6V6.2C17.7,5.9 18.2,5.3 18.2,4.6V4.5C18.2,3.5 17.4,2.7 16.4,2.7H16.3C15.3,2.7 14.5,3.5 14.5,4.5V4.6C14.5,5.3 14.9,5.9 15.6,6.2V8.6C14.7,8.7 13.8,9.1 13.1,9.7L6.5,4.6C6.8,3.5 6.1,2.3 5,2.1C3.9,1.9 2.8,2.4 2.5,3.5C2.2,4.6 2.9,5.8 4,6.1C4.5,6.2 5.1,6.2 5.6,5.9L12,10.9C10.8,12.7 10.8,15 12.1,16.8L10.1,18.8C9.9,18.8 9.8,18.7 9.6,18.7C8.7,18.7 7.9,19.5 7.9,20.4C7.9,21.3 8.7,22 9.6,22C10.5,22 11.3,21.2 11.3,20.3V20.3C11.3,20.1 11.3,20 11.2,19.8L13.1,17.9C15.4,19.6 18.7,19.2 20.4,16.9C22.1,14.6 21.7,11.3 19.4,9.6C18.8,9.1 18,8.7 17.1,8.6M16.3,16.4C14.8,16.4 13.6,15.2 13.6,13.7C13.6,12.2 14.8,11 16.3,11C17.8,11 19,12.2 19,13.7C19,15.2 17.8,16.4 16.3,16.4\";\nexport var mdiHulu = \"M19.5,12.8V22H14.7V13.9C14.7,13.2 14.1,12.6 13.4,12.6H10.5C9.8,12.6 9.2,13.2 9.2,13.9V22H4.5V2H9.3V8.4C9.6,8.3 9.9,8.2 10.2,8.2H15C17.5,8.2 19.5,10.3 19.5,12.8Z\";\nexport var mdiHuman = \"M21,9H15V22H13V16H11V22H9V9H3V7H21M12,2A2,2 0 0,1 14,4A2,2 0 0,1 12,6C10.89,6 10,5.1 10,4C10,2.89 10.89,2 12,2Z\";\nexport var mdiHumanBabyChangingTable = \"M6.5 6.08C5.72 6.12 5 6.62 4.72 7.4L3 12.13V22H7V12.84L8.42 8.94L10.7 10H14V8H11.15L7.29 6.2C7.03 6.11 6.76 6.07 6.5 6.08M9 17H21V19H9M10 3.5A2 2 0 0 1 8 5.5A2 2 0 0 1 6 3.5A2 2 0 0 1 8 1.5A2 2 0 0 1 10 3.5M21 14.5A1.5 1.5 0 0 1 19.5 16A1.5 1.5 0 0 1 18 14.5A1.5 1.5 0 0 1 19.5 13A1.5 1.5 0 0 1 21 14.5M9 11V13H11V14C11 15.11 11.89 16 13 16H15C16.11 16 17 15.11 17 14V11H15V13H13V12A1 1 0 0 0 12 11Z\";\nexport var mdiHumanCane = \"M18 12.24V22H17.06V12.24C17.06 12.09 17 12 16.93 11.89C16.84 11.8 16.74 11.76 16.62 11.76C16.47 11.76 16.36 11.8 16.27 11.89C16.18 12 16.14 12.1 16.14 12.24V13.16H15.23V12.5C14.53 12.33 13.9 12.04 13.35 11.63C12.8 11.22 12.34 10.74 11.96 10.19L11.61 11.39C11.5 11.81 11.5 12.24 11.5 12.68L11.5 13L11.5 13.33L13.35 15.94V22H11.5V17.34L9.82 15L9.65 18.25L6.86 22L5.38 20.87L7.77 17.64V12.68C7.77 12.15 7.82 11.63 7.91 11.11L8.25 9.54L6.86 10.32V13.63H5V9.23L10 6.4C10.29 6.26 10.59 6.18 10.91 6.18C11.23 6.18 11.54 6.27 11.83 6.44C12.15 6.62 12.39 6.88 12.57 7.23L13.31 8.8C13.6 9.38 14.04 9.87 14.64 10.26C15.23 10.65 15.89 10.85 16.62 10.85C17 10.85 17.32 11 17.6 11.24C17.88 11.5 18 11.83 18 12.24M12 2C13.11 2 14 2.9 14 4C14 5.11 13.11 6 12 6C10.9 6 10 5.11 10 4C10 2.9 10.9 2 12 2Z\";\nexport var mdiHumanCapacityDecrease = \"M16 4C16 2.9 16.9 2 18 2S20 2.9 20 4 19.1 6 18 6 16 5.1 16 4M20.78 7.58C19.93 7.21 19 7 18 7C17.33 7 16.69 7.1 16.08 7.28C16.66 7.83 17 8.6 17 9.43V10H22V9.43C22 8.62 21.5 7.9 20.78 7.58M6 6C7.1 6 8 5.1 8 4S7.1 2 6 2 4 2.9 4 4 4.9 6 6 6M7.92 7.28C7.31 7.1 6.67 7 6 7C5 7 4.07 7.21 3.22 7.58C2.5 7.9 2 8.62 2 9.43V10H7V9.43C7 8.6 7.34 7.83 7.92 7.28M10 4C10 2.9 10.9 2 12 2S14 2.9 14 4 13.1 6 12 6 10 5.1 10 4M16 10H8V9.43C8 8.62 8.5 7.9 9.22 7.58C10.07 7.21 11 7 12 7C13 7 13.93 7.21 14.78 7.58C15.5 7.9 16 8.62 16 9.43V10M15 16C15 14.9 15.9 14 17 14S19 14.9 19 16 18.1 18 17 18 15 17.1 15 16M21 22H13V21.43C13 20.62 13.5 19.9 14.22 19.58C15.07 19.21 16 19 17 19C18 19 18.93 19.21 19.78 19.58C20.5 19.9 21 20.62 21 21.43V22M5 16C5 14.9 5.9 14 7 14S9 14.9 9 16 8.1 18 7 18 5 17.1 5 16M11 22H3V21.43C3 20.62 3.5 19.9 4.22 19.58C5.07 19.21 6 19 7 19C8 19 8.93 19.21 9.78 19.58C10.5 19.9 11 20.62 11 21.43V22M12.75 13V11H11.25V13H9L12 16L15 13H12.75Z\";\nexport var mdiHumanCapacityIncrease = \"M16 4C16 2.9 16.9 2 18 2C19.1 2 20 2.9 20 4C20 5.1 19.1 6 18 6C16.9 6 16 5.1 16 4M20.78 7.58C19.93 7.21 19 7 18 7C17.33 7 16.69 7.1 16.08 7.28C16.66 7.83 17 8.6 17 9.43V10H22V9.43C22 8.62 21.5 7.9 20.78 7.58M6 6C7.1 6 8 5.1 8 4C8 2.9 7.1 2 6 2C4.9 2 4 2.9 4 4C4 5.1 4.9 6 6 6M7.92 7.28C7.31 7.1 6.67 7 6 7C5 7 4.07 7.21 3.22 7.58C2.5 7.9 2 8.62 2 9.43V10H7V9.43C7 8.6 7.34 7.83 7.92 7.28M10 4C10 2.9 10.9 2 12 2C13.1 2 14 2.9 14 4C14 5.1 13.1 6 12 6C10.9 6 10 5.1 10 4M16 10H8V9.43C8 8.62 8.5 7.9 9.22 7.58C10.07 7.21 11 7 12 7C13 7 13.93 7.21 14.78 7.58C15.5 7.9 16 8.62 16 9.43M15 16C15 14.9 15.9 14 17 14C18.1 14 19 14.9 19 16C19 17.1 18.1 18 17 18C15.9 18 15 17.1 15 16M21 22H13V21.43C13 20.62 13.5 19.9 14.22 19.58C15.07 19.21 16 19 17 19C18 19 18.93 19.21 19.78 19.58C20.5 19.9 21 20.62 21 21.43M5 16C5 14.9 5.9 14 7 14C8.1 14 9 14.9 9 16C9 17.1 8.1 18 7 18C5.9 18 5 17.1 5 16M11 22H3V21.43C3 20.62 3.5 19.9 4.22 19.58C5.07 19.21 6 19 7 19C8 19 8.93 19.21 9.78 19.58C10.5 19.9 11 20.62 11 21.43M12.75 14V16H11.25V14H9L12 11L15 14Z\";\nexport var mdiHumanChild = \"M12,2A3,3 0 0,1 15,5A3,3 0 0,1 12,8A3,3 0 0,1 9,5A3,3 0 0,1 12,2M11,22H8V16H6V9H18V16H16V22H13V18H11V22Z\";\nexport var mdiHumanDolly = \"M16.78 21.84C15.77 22.27 14.59 21.8 14.16 20.78C13.73 19.77 14.2 18.59 15.22 18.16C16.23 17.73 17.41 18.2 17.84 19.22C18.27 20.23 17.8 21.41 16.78 21.84M7.62 6C8.73 6 9.62 5.11 9.62 4C9.62 2.9 8.73 2 7.62 2C6.5 2 5.62 2.9 5.62 4C5.62 5.11 6.5 6 7.62 6M22.05 16.34L18.2 18C18.42 18.22 18.62 18.5 18.76 18.82C18.9 19.15 18.96 19.5 19 19.82L22.83 18.18L22.05 16.34M10.16 8.78L10.9 10.59C10.66 10.5 10.44 10.38 10.26 10.26C9.66 9.87 9.22 9.38 8.93 8.8L8.19 7.23C8 6.88 7.77 6.62 7.45 6.44C7.16 6.27 6.85 6.18 6.53 6.18C6.21 6.18 5.91 6.26 5.62 6.4C4.22 7.5 3.87 9.54 3.87 9.54L3.53 11.11C3.44 11.63 3.39 12.15 3.39 12.68V17.64L1 20.87L2.5 22L5.27 18.25L5.44 15L7.12 17.34V22H8.97V15.94L7.12 13.33V12.68C7.12 12.24 7.12 11.81 7.23 11.39L7.58 10.19C7.96 10.74 8.42 11.22 8.97 11.63C9.42 11.97 10.68 12.57 11.87 12.86L14 17.8C14.22 17.58 14.5 17.38 14.83 17.24C15.15 17.1 15.5 17.04 15.82 17L12 8L10.16 8.78M15.36 12.12L17.32 16.72L22.95 14.31L21 9.72\";\nexport var mdiHumanEdit = \"M19.07 14.88L21.12 16.93L15.06 23H13V20.94L19.07 14.88M21.04 13.13C21.18 13.13 21.31 13.19 21.42 13.3L22.7 14.58C22.92 14.79 22.92 15.14 22.7 15.35L21.7 16.35L19.65 14.3L20.65 13.3C20.76 13.19 20.9 13.13 21.04 13.13M21 9H15V16L13 18V16H11V22H9V9H3V7H21V9M12 2C13.1 2 14 2.9 14 4C14 5.1 13.1 6 12 6C10.9 6 10 5.1 10 4C10 2.9 10.9 2 12 2Z\";\nexport var mdiHumanFemale = \"M12,2A2,2 0 0,1 14,4A2,2 0 0,1 12,6A2,2 0 0,1 10,4A2,2 0 0,1 12,2M10.5,22V16H7.5L10.09,8.41C10.34,7.59 11.1,7 12,7C12.9,7 13.66,7.59 13.91,8.41L16.5,16H13.5V22H10.5Z\";\nexport var mdiHumanFemaleBoy = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,22V16H3L5.6,8.4C5.9,7.6 6.6,7 7.5,7C8.4,7 9.2,7.6 9.4,8.4L12,16H9V22H6M14.5,12A2,2 0 0,1 16.5,10A2,2 0 0,1 18.5,12A2,2 0 0,1 16.5,14A2,2 0 0,1 14.5,12M13.5,15H19.5V19H18V22H15V19H13.5V15Z\";\nexport var mdiHumanFemaleDance = \"M17 17H15V23H13V17H10.88L9.34 18.93L11.71 21.29L10.29 22.71L7.93 20.34C7.58 20 7.38 19.53 7.35 19.04C7.32 18.55 7.47 18.06 7.78 17.68L8.32 17H7L9 13V10C8.38 10.47 7.88 11.07 7.53 11.76C7.18 12.46 7 13.22 7 14H5C5 12.14 5.74 10.36 7.05 9.05C8.36 7.74 10.14 7 12 7C13.33 7 14.6 6.47 15.54 5.54C16.47 4.6 17 3.33 17 2H19C19 3.32 18.62 4.62 17.91 5.73C17.2 6.85 16.2 7.74 15 8.31V13L17 17M14 4C14 4.4 13.88 4.78 13.66 5.11C13.44 5.44 13.13 5.7 12.77 5.85C12.4 6 12 6.04 11.61 5.96C11.22 5.88 10.87 5.69 10.59 5.41C10.31 5.13 10.12 4.78 10.04 4.39C9.96 4 10 3.6 10.15 3.24C10.3 2.87 10.56 2.56 10.89 2.34C11.22 2.12 11.6 2 12 2C12.53 2 13.04 2.21 13.41 2.59C13.79 2.96 14 3.47 14 4Z\";\nexport var mdiHumanFemaleFemale = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,22V16H3L5.6,8.4C5.9,7.6 6.6,7 7.5,7C8.4,7 9.2,7.6 9.4,8.4L12,16L14.6,8.4C14.9,7.6 15.6,7 16.5,7C17.4,7 18.2,7.6 18.4,8.4L21,16H18V22H15V16H12L9,16V22H6M16.5,2A2,2 0 0,1 18.5,4A2,2 0 0,1 16.5,6A2,2 0 0,1 14.5,4A2,2 0 0,1 16.5,2Z\";\nexport var mdiHumanFemaleFemaleChild = \"M16 4C16 2.9 16.9 2 18 2S20 2.9 20 4 19.1 6 18 6 16 5.1 16 4M20 16H22.5L20 8.4C19.7 7.6 19 7 18.1 7H18C17.1 7 16.4 7.6 16.1 8.4L15.2 11C16.3 11.6 17 12.7 17 14.1V22H20M12.5 11.5C13.3 11.5 14 10.8 14 10S13.3 8.5 12.5 8.5 11 9.2 11 10 11.7 11.5 12.5 11.5M5 6C6.1 6 7 5.1 7 4S6.1 2 5 2 3 2.9 3 4 3.9 6 5 6M14 22V18H15V14C15 13.2 14.3 12.5 13.5 12.5H11.5C10.7 12.5 10 13.2 10 14V18H11V22H14M7 22V16H9.5L7 8.4C6.7 7.6 6 7 5.1 7H5C4.1 7 3.4 7.6 3.1 8.4L1.5 16H4V22H7Z\";\nexport var mdiHumanFemaleGirl = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,22V16H3L5.6,8.4C5.9,7.6 6.6,7 7.5,7C8.4,7 9.2,7.6 9.4,8.4L12,16H9V22H6M14.5,12A2,2 0 0,1 16.5,10A2,2 0 0,1 18.5,12A2,2 0 0,1 16.5,14A2,2 0 0,1 14.5,12M15,15H18L19.5,19H18V22H15V19H13.5L15,15Z\";\nexport var mdiHumanGreeting = \"M12 2C13.1 2 14 2.9 14 4S13.1 6 12 6 10 5.1 10 4 10.9 2 12 2M15.9 8.1C15.5 7.7 14.8 7 13.5 7H11C8.2 7 6 4.8 6 2H4C4 5.2 6.1 7.8 9 8.7V22H11V16H13V22H15V10.1L19 14L20.4 12.6L15.9 8.1Z\";\nexport var mdiHumanGreetingProximity = \"M11 14H9C9 9.03 13.03 5 18 5V7C14.13 7 11 10.13 11 14M18 11V9C15.24 9 13 11.24 13 14H15C15 12.34 16.34 11 18 11M7 4C7 2.89 6.11 2 5 2S3 2.89 3 4 3.89 6 5 6 7 5.11 7 4M11.45 4.5H9.45C9.21 5.92 8 7 6.5 7H3.5C2.67 7 2 7.67 2 8.5V11H8V8.74C9.86 8.15 11.25 6.5 11.45 4.5M19 17C20.11 17 21 16.11 21 15S20.11 13 19 13 17 13.89 17 15 17.89 17 19 17M20.5 18H17.5C16 18 14.79 16.92 14.55 15.5H12.55C12.75 17.5 14.14 19.15 16 19.74V22H22V19.5C22 18.67 21.33 18 20.5 18Z\";\nexport var mdiHumanGreetingVariant = \"M1.5,4V5.5C1.5,9.65 3.71,13.28 7,15.3V20H22V18C22,15.34 16.67,14 14,14C14,14 13.83,14 13.75,14C9,14 5,10 5,5.5V4M14,4A4,4 0 0,0 10,8A4,4 0 0,0 14,12A4,4 0 0,0 18,8A4,4 0 0,0 14,4Z\";\nexport var mdiHumanHandsdown = \"M12,1C10.89,1 10,1.9 10,3C10,4.11 10.89,5 12,5C13.11,5 14,4.11 14,3A2,2 0 0,0 12,1M10,6C9.73,6 9.5,6.11 9.31,6.28H9.3L4,11.59L5.42,13L9,9.41V22H11V15H13V22H15V9.41L18.58,13L20,11.59L14.7,6.28C14.5,6.11 14.27,6 14,6\";\nexport var mdiHumanHandsup = \"M5,1C5,3.7 6.56,6.16 9,7.32V22H11V15H13V22H15V7.31C17.44,6.16 19,3.7 19,1H17A5,5 0 0,1 12,6A5,5 0 0,1 7,1M12,1C10.89,1 10,1.89 10,3C10,4.11 10.89,5 12,5C13.11,5 14,4.11 14,3C14,1.89 13.11,1 12,1Z\";\nexport var mdiHumanMale = \"M12,2A2,2 0 0,1 14,4A2,2 0 0,1 12,6A2,2 0 0,1 10,4A2,2 0 0,1 12,2M10.5,7H13.5A2,2 0 0,1 15.5,9V14.5H14V22H10V14.5H8.5V9A2,2 0 0,1 10.5,7Z\";\nexport var mdiHumanMaleBoard = \"M20,17A2,2 0 0,0 22,15V4A2,2 0 0,0 20,2H9.46C9.81,2.61 10,3.3 10,4H20V15H11V17M15,7V9H9V22H7V16H5V22H3V14H1.5V9A2,2 0 0,1 3.5,7H15M8,4A2,2 0 0,1 6,6A2,2 0 0,1 4,4A2,2 0 0,1 6,2A2,2 0 0,1 8,4Z\";\nexport var mdiHumanMaleBoardPoll = \"M20 17C21.1 17 22 16.1 22 15V4C22 2.9 21.1 2 20 2H9.5C9.8 2.6 10 3.3 10 4H20V15H11V17M15 7V9H9V22H7V16H5V22H3V14H1.5V9C1.5 7.9 2.4 7 3.5 7H15M8 4C8 5.1 7.1 6 6 6S4 5.1 4 4 4.9 2 6 2 8 2.9 8 4M17 6H19V14H17V6M14 10H16V14H14V10M11 10H13V14H11V10Z\";\nexport var mdiHumanMaleBoy = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,7H9A2,2 0 0,1 11,9V14.5H9.5V22H5.5V14.5H4V9A2,2 0 0,1 6,7M14.5,12A2,2 0 0,1 16.5,10A2,2 0 0,1 18.5,12A2,2 0 0,1 16.5,14A2,2 0 0,1 14.5,12M13.5,15H19.5V19H18V22H15V19H13.5V15Z\";\nexport var mdiHumanMaleChild = \"M7 2C5.9 2 5 2.9 5 4S5.9 6 7 6 9 5.11 9 4 8.11 2 7 2M5 7C3.89 7 3 7.89 3 9V15H5V22H10V11.6L12.53 16H14.97L16 14.66V22H20V17H21V14C21 12.89 20.11 12 19 12H16.5C15.9 12 15.37 12.26 15 12.68C14.67 13.1 14.32 13.56 14 14H13.69L10 7.66C9.84 7.38 9.22 7 8.5 7H5M18 8C17.17 8 16.5 8.67 16.5 9.5S17.17 11 18 11 19.5 10.33 19.5 9.5 18.83 8 18 8Z\";\nexport var mdiHumanMaleFemale = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,7H9A2,2 0 0,1 11,9V14.5H9.5V22H5.5V14.5H4V9A2,2 0 0,1 6,7M16.5,2A2,2 0 0,1 18.5,4A2,2 0 0,1 16.5,6A2,2 0 0,1 14.5,4A2,2 0 0,1 16.5,2M15,22V16H12L14.59,8.41C14.84,7.59 15.6,7 16.5,7C17.4,7 18.16,7.59 18.41,8.41L21,16H18V22H15Z\";\nexport var mdiHumanMaleFemaleChild = \"M16 4C16 2.9 16.9 2 18 2S20 2.9 20 4 19.1 6 18 6 16 5.1 16 4M20 22V16H22.5L20 8.4C19.7 7.6 19 7 18.1 7H18C17.1 7 16.4 7.6 16.1 8.4L15.2 11C16.3 11.6 17 12.7 17 14.1V22H20M12.5 11.5C13.3 11.5 14 10.8 14 10S13.3 8.5 12.5 8.5 11 9.2 11 10 11.7 11.5 12.5 11.5M5.5 6C6.6 6 7.5 5.1 7.5 4S6.6 2 5.5 2 3.5 2.9 3.5 4 4.4 6 5.5 6M7.5 22V15H9V9C9 7.9 8.1 7 7 7H4C2.9 7 2 7.9 2 9V15H3.5V22H7.5M14 22V18H15V14C15 13.2 14.3 12.5 13.5 12.5H11.5C10.7 12.5 10 13.2 10 14V18H11V22H14Z\";\nexport var mdiHumanMaleGirl = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,7H9A2,2 0 0,1 11,9V14.5H9.5V22H5.5V14.5H4V9A2,2 0 0,1 6,7M14.5,12A2,2 0 0,1 16.5,10A2,2 0 0,1 18.5,12A2,2 0 0,1 16.5,14A2,2 0 0,1 14.5,12M15,15H18L19.5,19H18V22H15V19H13.5L15,15Z\";\nexport var mdiHumanMaleHeight = \"M7,2C8.78,2 9.67,4.16 8.42,5.42C7.16,6.67 5,5.78 5,4A2,2 0 0,1 7,2M5.5,7H8.5A2,2 0 0,1 10.5,9V14.5H9V22H5V14.5H3.5V9A2,2 0 0,1 5.5,7M21,8H15V10H21M21,11H18V13H21M21,2H15V4H21M21,5H18V7H21M21,14H15V16H21M21,20H15V22H21M21,17H18V19H21\";\nexport var mdiHumanMaleHeightVariant = \"M7,2C8.78,2 9.67,4.16 8.42,5.42C7.16,6.67 5,5.78 5,4A2,2 0 0,1 7,2M5.5,7H8.5A2,2 0 0,1 10.5,9V14.5H9V22H5V14.5H3.5V9A2,2 0 0,1 5.5,7M19,8H21L18,4L15,8H17V16H15L18,20L21,16H19M22,2H14V4H22M22,20H14V22H22\";\nexport var mdiHumanMaleMale = \"M7.5,2A2,2 0 0,1 9.5,4A2,2 0 0,1 7.5,6A2,2 0 0,1 5.5,4A2,2 0 0,1 7.5,2M6,7H9A2,2 0 0,1 11,9V14.5H9.5V22H5.5V14.5H4V9A2,2 0 0,1 6,7M16.5,2A2,2 0 0,1 18.5,4A2,2 0 0,1 16.5,6A2,2 0 0,1 14.5,4A2,2 0 0,1 16.5,2M15,7H18A2,2 0 0,1 20,9V14.5H18.5V22H14.5V14.5H13V9A2,2 0 0,1 15,7Z\";\nexport var mdiHumanMaleMaleChild = \"M12.5 11.5C13.3 11.5 14 10.8 14 10S13.3 8.5 12.5 8.5 11 9.2 11 10 11.7 11.5 12.5 11.5M5.5 6C6.6 6 7.5 5.1 7.5 4S6.6 2 5.5 2 3.5 2.9 3.5 4 4.4 6 5.5 6M7.5 22V15H9V9C9 7.9 8.1 7 7 7H4C2.9 7 2 7.9 2 9V15H3.5V22H7.5M14 22V18H15V14C15 13.2 14.3 12.5 13.5 12.5H11.5C10.7 12.5 10 13.2 10 14V18H11V22H14M18.5 6C19.6 6 20.5 5.1 20.5 4S19.6 2 18.5 2 16.5 2.9 16.5 4 17.4 6 18.5 6M22 9V15H20.5V22H17V14C17 12.6 16.2 11.4 15 10.9V9C15 7.9 15.9 7 17 7H20C21.1 7 22 7.9 22 9Z\";\nexport var mdiHumanNonBinary = \"M12 2C13.11 2 14 2.9 14 4S13.11 6 12 6 10 5.11 10 4 10.9 2 12 2M13.91 8.41C13.66 7.59 12.9 7 12 7H10.5C9.4 7 8.5 7.9 8.5 9V14.5H10V22H13.5V16H16.5L13.91 8.41Z\";\nexport var mdiHumanPregnant = \"M9,4C9,2.89 9.89,2 11,2C12.11,2 13,2.89 13,4C13,5.11 12.11,6 11,6C9.89,6 9,5.11 9,4M16,13C16,11.66 15.17,10.5 14,10A3,3 0 0,0 11,7A3,3 0 0,0 8,10V17H10V22H13V17H16V13Z\";\nexport var mdiHumanQueue = \"M5 6C3.9 6 3 6.9 3 8S3.9 10 5 10 7 9.11 7 8 6.11 6 5 6M12 4C10.9 4 10 4.89 10 6S10.9 8 12 8 14 7.11 14 6 13.11 4 12 4M19 2C17.9 2 17 2.9 17 4S17.9 6 19 6 21 5.11 21 4 20.11 2 19 2M3.5 11C2.67 11 2 11.67 2 12.5V17H3V22H7V17H8V12.5C8 11.67 7.33 11 6.5 11H3.5M10.5 9C9.67 9 9 9.67 9 10.5V15H10V20H14V15H15V10.5C15 9.67 14.33 9 13.5 9H10.5M17.5 7C16.67 7 16 7.67 16 8.5V13H17V18H21V13H22V8.5C22 7.67 21.33 7 20.5 7H17.5Z\";\nexport var mdiHumanScooter = \"M16.5 2.25C17.33 2.25 18 2.92 18 3.75C18 4.58 17.33 5.25 16.5 5.25C15.67 5.25 15 4.58 15 3.75C15 2.92 15.67 2.25 16.5 2.25M20 18C21.11 18 22 18.9 22 20C22 21.11 21.11 22 20 22C19.26 22 18.61 21.6 18.27 21H8.73C8.39 21.6 7.74 22 7 22C5.9 22 5 21.11 5 20C5 18.9 5.9 18 7 18C7.74 18 8.39 18.4 8.73 19H13V13.5L9.73 11.23L6.77 14C6.36 14.37 5.73 14.34 5.35 13.94L2.28 10.65C1.91 10.24 1.93 9.61 2.33 9.23C2.74 8.86 3.37 8.88 3.74 9.28L6.13 11.84L13.26 5.2L13.3 5.18C13.72 4.82 14.35 4.88 14.71 5.3L16.97 8H20C20.55 8 21 8.45 21 9C21 9.55 20.55 10 20 10H16.5C16.15 10 15.85 9.82 15.67 9.56L14.17 7.77L11.64 10.13L14.57 12.18H14.57C14.83 12.36 15 12.66 15 13V19H15.61C16.04 17.13 17.63 15.7 19.58 15.5L18.81 11H20.31L21.39 17.34C20.97 17.12 20.5 17 20 17C18.69 17 17.58 17.84 17.17 19H18.27C18.61 18.4 19.26 18 20 18Z\";\nexport var mdiHumanWalker = \"M12 2C13.1 2 14 2.9 14 4S13.1 6 12 6 10 5.1 10 4 10.9 2 12 2M19.8 17.7L19.2 11.3C19.1 10.5 18.5 10 17.7 10H16C14.5 10 13.1 9.5 12.2 8.6L10.2 6.6C10.1 6.4 9.6 6 8.8 6C8.3 6 7.8 6.2 7.4 6.6L4.1 9.9C3.6 10.6 3.6 11.5 3.9 12L5.3 14.8L2.2 18.8L3.8 20L7.5 15.3L7.2 14L8 14.8V20H10V13.9L7.9 11.8L10.3 9.4C11.2 10.3 12 11.2 13.9 11.7L13 20H14.5L14.9 16.5H18.1L18.2 17.7C17.8 18 17.5 18.4 17.5 19C17.5 19.8 18.2 20.5 19 20.5S20.5 19.8 20.5 19C20.5 18.5 20.2 18 19.8 17.7M15.1 15L15.5 11.5H17.5L17.9 15H15.1Z\";\nexport var mdiHumanWheelchair = \"M8.5 4A2 2 0 0 1 6.5 6A2 2 0 0 1 4.5 4A2 2 0 0 1 6.5 2A2 2 0 0 1 8.5 4M5 7C3.89 7 3 7.89 3 9V15H5V22H8.61A7 7 0 0 1 6.5 17A7 7 0 0 1 10 10.95V9C10 7.89 9.11 7 8 7M13 8V16H18.5L21.2 19.6L22.8 18.4L19.5 14H15V8M12 12.23A5 5 0 0 0 8.5 17A5 5 0 0 0 13.5 22A5 5 0 0 0 18.5 17H16.5A3 3 0 0 1 13.5 20A3 3 0 0 1 10.5 17A3 3 0 0 1 12 14.41Z\";\nexport var mdiHumanWhiteCane = \"M8 4C8 2.9 8.9 2 10 2C11.11 2 12 2.9 12 4C12 5.11 11.11 6 10 6C8.9 6 8 5.11 8 4M20.65 21.5L14.5 10.85L14.5 10.85V10.85C13.77 10.85 13.23 10.65 12.64 10.26C12.04 9.87 11.6 9.38 11.31 8.8L10.57 7.23C10.39 6.88 10.15 6.62 9.83 6.44C9.54 6.27 9.23 6.18 8.91 6.18C8.59 6.18 8.29 6.26 8 6.4L3 9.23V13.63H4.86V10.32L6.25 9.54L5.91 11.11C5.82 11.63 5.77 12.15 5.77 12.68V17.64L3.38 20.87L4.86 22L7.65 18.25L7.82 15L9.5 17.34V22H11.35V15.94L9.5 13.33V12.68C9.5 12.24 9.5 11.81 9.61 11.39L9.96 10.19C10.34 10.74 10.81 11.2 11.35 11.63C12.2 12.31 13 12.59 14.35 12.58L19.78 22L20.65 21.5Z\";\nexport var mdiHumbleBundle = \"M16.91,18.12C14.09,18.12 18.43,2.13 18.43,2.13H15.53C15.53,2.13 14.34,5.89 13.55,10.07H11.05C11.11,9.21 11.15,8.34 11.13,7.5C11,0.59 7,1.87 5.18,3.45C3.47,4.95 2.03,7.8 2,10C2.27,10 3.35,10 3.35,10C3.35,10 4.25,5.88 7.07,5.88C9.89,5.88 5.54,21.87 5.54,21.87H8.45C8.45,21.87 9.95,17.59 10.7,12.81L13.09,12.8C12.95,14.04 12.91,15.4 12.93,16.67C13.04,23.56 17.06,22.08 18.86,20.5C20.67,18.92 22,15.58 22,14H20.61C20.62,14.12 19.73,18.12 16.91,18.12V18.12Z\";\nexport var mdiHvac = \"M8.58 14C8.3 13.55 8.11 13.03 8.06 12.5H15.94C15.89 13.03 15.7 13.55 15.47 14H8.58M12 16C10.97 16 10.08 15.61 9.38 15H14.63C13.92 15.61 13.03 16 12 16M12 8C13.03 8 13.92 8.39 14.63 9H9.38C10.08 8.39 10.97 8 12 8M8.58 10H15.42C15.7 10.45 15.89 10.97 15.94 11.5H8.06C8.11 10.97 8.3 10.45 8.58 10M3 3V21H21V3H3M12 18C8.67 18 6 15.33 6 12S8.67 6 12 6 18 8.67 18 12 15.33 18 12 18Z\";\nexport var mdiHvacOff = \"M22.11 21.46L2.39 1.73L1.11 3L3 4.89V21H19.11L20.84 22.73L22.11 21.46M12 18C8.67 18 6 15.33 6 12C6 10.82 6.34 9.73 6.92 8.81L8.43 10.32C8.24 10.69 8.1 11.09 8.06 11.5H9.61L10.61 12.5H8.06C8.11 13.03 8.3 13.55 8.58 14H12.11L13.11 15H9.38C10.08 15.61 10.97 16 12 16C12.63 16 13.19 15.84 13.7 15.59L15.19 17.08C14.27 17.66 13.18 18 12 18M12 8C13.03 8 13.92 8.39 14.63 9H12.2L11.27 8.07C11.5 8.03 11.75 8 12 8M9.67 6.47L6.2 3H21V17.8L17.53 14.33C17.83 13.62 18 12.83 18 12C18 8.67 15.33 6 12 6C11.17 6 10.38 6.17 9.67 6.47M15.94 11.5H14.7L13.2 10H15.42C15.7 10.45 15.89 10.97 15.94 11.5Z\";\nexport var mdiHydraulicOilLevel = \"M15 18C13.34 18 12 16.66 12 15C12 13 15 9.63 15 9.63S18 13 18 15C18 16.66 16.66 18 15 18M20 4V20H10V4H8V20C8 21.11 8.89 22 10 22H20C21.11 22 22 21.11 22 20V4H20M2 19L7 14L2 9V19M16 6V2H14V6H11V8H19V6H16Z\";\nexport var mdiHydraulicOilTemperature = \"M9 18C7.34 18 6 16.66 6 15C6 13 9 9.63 9 9.63S12 13 12 15C12 16.66 10.66 18 9 18M14 4V20H4V4H2V20C2 21.11 2.89 22 4 22H14C15.11 22 16 21.11 16 20V4H14M10 6V2H8V6H5V8H13V6H10M21 17.5V5.5C21 4.67 20.33 4 19.5 4S18 4.67 18 5.5V17.5C17.37 17.97 17 18.71 17 19.5C17 20.88 18.12 22 19.5 22S22 20.88 22 19.5C22 18.71 21.63 18 21 17.5M20 13H19V6H20V13Z\";\nexport var mdiHydroPower = \"M17.12 3.55A2 2 0 0 0 15.2 4.95L14.4 7.5A3 3 0 0 0 13.33 7.74L11.5 5.77L10.17 4.29A2 2 0 0 0 10.05 7.12L11.86 9.09A3 3 0 0 0 11.64 9.6A3 3 0 0 0 11.53 10.13L8.92 10.71L6.96 11.15A2 2 0 0 0 9.35 12.67L11.96 12.08A3 3 0 0 0 12.7 12.89L11.9 15.44L11.3 17.35A2 2 0 0 0 13.8 16.04L14.61 13.5A3 3 0 0 0 15.68 13.26L17.5 15.23L18.83 16.7A2 2 0 0 0 18.96 13.88L17.15 11.91A3 3 0 0 0 17.36 11.4A3 3 0 0 0 17.5 10.86L20.09 10.28L22.04 9.85A2 2 0 0 0 19.66 8.33L17.05 8.91A3 3 0 0 0 16.31 8.11L17.11 5.55L17.71 3.65A2 2 0 0 0 17.12 3.55M14.56 9A1.5 1.5 0 0 1 14.95 9.07A1.5 1.5 0 0 1 15.93 10.95A1.5 1.5 0 0 1 14.05 11.93A1.5 1.5 0 0 1 13.07 10.05A1.5 1.5 0 0 1 14.55 9M8 13.67C6.78 14.53 5.39 15 4 15H2V17H4C5.37 17 6.74 16.65 8 16C8.77 16.4 9.58 16.66 10.41 16.81L10.94 15.14L11.03 14.88C9.97 14.73 8.93 14.32 8 13.67M20.45 15C20.5 15.7 20.33 16.41 19.91 17C19.93 17 19.97 17 20 17H22V15H20.45M8 17.67C6.78 18.53 5.39 19 4 19H2V21H4C5.37 21 6.74 20.65 8 20C10.5 21.3 13.5 21.3 16 20C17.26 20.65 18.62 21 20 21H22V19H20C18.61 19 17.22 18.53 16 17.67C13.56 19.38 10.44 19.38 8 17.67Z\";\nexport var mdiHydrogenStation = \"M6 3C4.89 3 4 3.9 4 5V21H14V13.5H15.5V18.5C15.5 19.88 16.62 21 18 21S20.5 19.88 20.5 18.5V9C20.5 8.31 20.22 7.68 19.77 7.23L19.78 7.22L16.06 3.5L15 4.56L17.11 6.67C16.17 7.03 15.5 7.93 15.5 9C15.5 10.38 16.62 11.5 18 11.5C18.36 11.5 18.69 11.42 19 11.29V18.5C19 19.05 18.55 19.5 18 19.5S17 19.05 17 18.5V14C17 12.9 16.11 12 15 12H14V5C14 3.9 13.11 3 12 3H6M6 7H8V11H10V7H12V17H10V13H8V17H6V7M18 8C18.55 8 19 8.45 19 9S18.55 10 18 10 17 9.55 17 9 17.45 8 18 8Z\";\nexport var mdiIceCream = \"M17.5 6.05C17.25 3.22 14.89 1 12 1S6.75 3.22 6.5 6.05C5.09 6.28 4 7.5 4 9C4 10.66 5.34 12 7 12L12 22L17 12C18.66 12 20 10.66 20 9C20 7.5 18.91 6.28 17.5 6.05M12 17.53L8.89 11.31C8.95 11.26 9 11.21 9.08 11.16C9.93 11.69 10.93 12 12 12S14.07 11.69 14.92 11.16C15 11.21 15.05 11.26 15.11 11.31L12 17.53Z\";\nexport var mdiIceCreamOff = \"M22.11 21.46L2.39 1.73L1.11 3L4.95 6.84C4.37 7.38 4 8.14 4 9C4 10.66 5.34 12 7 12L12 22L14.7 16.59L20.84 22.73L22.11 21.46M12 17.53L8.89 11.31C8.95 11.26 9 11.21 9.08 11.16C9.21 11.24 9.35 11.3 9.5 11.37L13.21 15.1L12 17.53M7.15 3.95C8.07 2.2 9.89 1 12 1C14.89 1 17.25 3.22 17.5 6.05C18.91 6.28 20 7.5 20 9C20 10.66 18.66 12 17 12L16.4 13.2L7.15 3.95Z\";\nexport var mdiIcePop = \"M18.15 14.96L9.95 18.65L5.85 9.65C7.21 9.13 8.12 7.82 8.15 6.36C8.14 5 7.36 3.76 6.15 3.15C6.54 2.8 7 2.5 7.45 2.25C9.71 1.25 12.37 2.23 13.45 4.46M13.15 18.36L14.75 21.86L17.45 20.65L15.85 17.15\";\nexport var mdiIdCard = \"M4 4C2.89 4 2 4.89 2 6V18C2 19.11 2.89 20 4 20H20C21.11 20 22 19.11 22 18V6C22 4.89 21.11 4 20 4H4M4 6H20V10H4V6M4 12H8V14H4V12M10 12H20V14H10V12M4 16H14V18H4V16M16 16H20V18H16V16Z\";\nexport var mdiIdentifier = \"M10 7V9H9V15H10V17H6V15H7V9H6V7H10M16 7C17.11 7 18 7.9 18 9V15C18 16.11 17.11 17 16 17H12V7M16 9H14V15H16V9Z\";\nexport var mdiIdeogramCjk = \"M11 4V6H4V10H6V8H18V10H20V6H13V4M8 10V12H13.59L11.59 14H4V16H11V18H10V20H13V16H20V14H14.21L16 12.21V10Z\";\nexport var mdiIdeogramCjkVariant = \"M11 4V6H4V8H15.36C15.13 8.87 14.63 9.77 13.88 10.69C13.35 11.35 12.71 12 12 12.67C11.29 12 10.65 11.35 10.12 10.69C9.65 10.12 9.3 9.55 9.03 9H6.85C7.21 10.05 7.82 11.03 8.56 11.95C9.13 12.66 9.79 13.34 10.5 14L5.36 18.23L6.64 19.77L12 15.34L17.36 19.77L18.64 18.23L13.5 14C14.21 13.34 14.87 12.66 15.44 11.95C16.41 10.74 17.16 9.43 17.4 8H20V6H13V4Z\";\nexport var mdiImage = \"M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z\";\nexport var mdiImageAlbum = \"M6,19L9,15.14L11.14,17.72L14.14,13.86L18,19H6M6,4H11V12L8.5,10.5L6,12M18,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2Z\";\nexport var mdiImageArea = \"M20,5A2,2 0 0,1 22,7V17A2,2 0 0,1 20,19H4C2.89,19 2,18.1 2,17V7C2,5.89 2.89,5 4,5H20M5,16H19L14.5,10L11,14.5L8.5,11.5L5,16Z\";\nexport var mdiImageAreaClose = \"M12,23L8,19H16L12,23M20,3A2,2 0 0,1 22,5V15A2,2 0 0,1 20,17H4A2,2 0 0,1 2,15V5A2,2 0 0,1 4,3H20M5,14H19L14.5,8L11,12.5L8.5,9.5L5,14Z\";\nexport var mdiImageAutoAdjust = \"M19 10V19H5V5H14V3H5C3.92 3 3 3.9 3 5V19C3 20.1 3.92 21 5 21H19C20.12 21 21 20.1 21 19V10H19M17 10L17.94 7.94L20 7L17.94 6.06L17 4L16.06 6.06L14 7L16.06 7.94L17 10M13.25 10.75L12 8L10.75 10.75L8 12L10.75 13.25L12 16L13.25 13.25L16 12L13.25 10.75Z\";\nexport var mdiImageBroken = \"M19,3A2,2 0 0,1 21,5V11H19V13H19L17,13V15H15V17H13V19H11V21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H19M21,15V19A2,2 0 0,1 19,21H19L15,21V19H17V17H19V15H21M19,8.5A0.5,0.5 0 0,0 18.5,8H5.5A0.5,0.5 0 0,0 5,8.5V15.5A0.5,0.5 0 0,0 5.5,16H11V15H13V13H15V11H17V9H19V8.5Z\";\nexport var mdiImageBrokenVariant = \"M21,5V11.59L18,8.58L14,12.59L10,8.59L6,12.59L3,9.58V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5M18,11.42L21,14.43V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V12.42L6,15.41L10,11.41L14,15.41\";\nexport var mdiImageCheck = \"M12.5 21C12.18 20.23 12 19.39 12 18.5C12 18.33 12 18.17 12.03 18H5L8.5 13.5L11 16.5L14.5 12L15.19 12.92C16.16 12.34 17.29 12 18.5 12C19.39 12 20.23 12.18 21 12.5V5C21 4.47 20.79 3.96 20.41 3.59C20.04 3.21 19.53 3 19 3H5C3.9 3 3 3.9 3 5V19C3 19.53 3.21 20.04 3.59 20.41C3.96 20.79 4.47 21 5 21H12.5M17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25L17.75 22Z\";\nexport var mdiImageCheckOutline = \"M12.18 17C12.54 15.5 13.43 14.16 14.68 13.25L13.96 12.29L11.21 15.83L9.25 13.47L6.5 17H12.18M5 5V19H12.03C12.09 19.7 12.24 20.38 12.5 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.9 3.9 3 5 3H19C19.53 3 20.04 3.21 20.41 3.59C20.79 3.96 21 4.47 21 5V12.5C20.38 12.24 19.7 12.09 19 12.03V5H5M17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25L17.75 22Z\";\nexport var mdiImageEdit = \"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\";\nexport var mdiImageEditOutline = \"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M11.21 15.83L9.25 13.47L6.5 17H13.12L15.66 14.55L13.96 12.29L11.21 15.83M11 19.9V19.05L11.05 19H5V5H19V11.31L21 9.38V5C21 3.9 20.11 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11V19.9Z\";\nexport var mdiImageFilterBlackWhite = \"M19,19L12,11V19H5L12,11V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiImageFilterCenterFocus = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M19,19H15V21H19A2,2 0 0,0 21,19V15H19M19,3H15V5H19V9H21V5A2,2 0 0,0 19,3M5,5H9V3H5A2,2 0 0,0 3,5V9H5M5,15H3V19A2,2 0 0,0 5,21H9V19H5V15Z\";\nexport var mdiImageFilterCenterFocusStrong = \"M12 8C8.44 8 6.65 12.31 9.17 14.83C11.69 17.35 16 15.56 16 12C16 9.79 14.21 8 12 8M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19\";\nexport var mdiImageFilterCenterFocusStrongOutline = \"M17 12C17 7.55 11.62 5.31 8.46 8.46C5.31 11.61 7.55 17 12 17C14.76 17 17 14.76 17 12M12 15C9.33 15 8 11.77 9.88 9.88C11.77 8 15 9.33 15 12C15 13.66 13.66 15 12 15M5 15H3V19C3 20.1 3.9 21 5 21H9V19H5M5 5H9V3H5C3.9 3 3 3.9 3 5V9H5M19 3H15V5H19V9H21V5C21 3.9 20.1 3 19 3M19 19H15V21H19C20.1 21 21 20.1 21 19V15H19\";\nexport var mdiImageFilterCenterFocusWeak = \"M5,15H3V19A2,2 0 0,0 5,21H9V19H5M5,5H9V3H5A2,2 0 0,0 3,5V9H5M19,3H15V5H19V9H21V5A2,2 0 0,0 19,3M19,19H15V21H19A2,2 0 0,0 21,19V15H19M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8M12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14Z\";\nexport var mdiImageFilterDrama = \"M6.5 20H18.5Q20.38 20 21.69 18.69 23 17.38 23 15.5 23 13.8 21.79 12.4 20.58 11 19 11 19 8.05 17 6.03 14.95 4 12 4 9.88 4 8.29 5.08 6.7 6.15 6.25 8 8.8 8.45 10.4 10.19 12 11.93 12 14.5H10Q10 12.68 8.66 11.34 7.33 10 5.5 10T2.34 11.34Q1 12.68 1 14.5 1 16.8 2.6 18.4T6.5 20Z\";\nexport var mdiImageFilterDramaOutline = \"M6.5 20Q4.2 20 2.6 18.4T1 14.5Q1 12.55 2.21 11.06 3.43 9.57 5.25 9.15 5.88 6.9 7.73 5.45 9.57 4 12 4 15 4 17 6.06 19 8.13 19 11 20.88 11.2 21.94 12.55 23 13.9 23 15.5 23 17.35 21.69 18.68 20.38 20 18.5 20M6.5 18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 10.43 6 9.2 6.86 8 7.73 7.4 9.07 9.35 9.4 10.68 10.91 12 12.43 12 14.5H10Q10 13.05 9 12.03 7.95 11 6.5 11 5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18Z\";\nexport var mdiImageFilterFrames = \"M18,8H6V18H18M20,20H4V6H8.5L12.04,2.5L15.5,6H20M20,4H16L12,0L8,4H4A2,2 0 0,0 2,6V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V6A2,2 0 0,0 20,4Z\";\nexport var mdiImageFilterHdr = \"M14,6L10.25,11L13.1,14.8L11.5,16C9.81,13.75 7,10 7,10L1,18H23L14,6Z\";\nexport var mdiImageFilterHdrOutline = \"M23 18H1L8.25 8.33L10.25 11L14 6L23 18M11.5 12.67L14 16L19 16L14 9.33L11.5 12.67M5 16L11.5 16L8.25 11.67L5 16Z\";\nexport var mdiImageFilterNone = \"M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiImageFilterTiltShift = \"M5.68,19.74C7.16,20.95 9,21.75 11,21.95V19.93C9.54,19.75 8.21,19.17 7.1,18.31M13,19.93V21.95C15,21.75 16.84,20.95 18.32,19.74L16.89,18.31C15.79,19.17 14.46,19.75 13,19.93M18.31,16.9L19.74,18.33C20.95,16.85 21.75,15 21.95,13H19.93C19.75,14.46 19.17,15.79 18.31,16.9M15,12A3,3 0 0,0 12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12M4.07,13H2.05C2.25,15 3.05,16.84 4.26,18.32L5.69,16.89C4.83,15.79 4.25,14.46 4.07,13M5.69,7.1L4.26,5.68C3.05,7.16 2.25,9 2.05,11H4.07C4.25,9.54 4.83,8.21 5.69,7.1M19.93,11H21.95C21.75,9 20.95,7.16 19.74,5.68L18.31,7.1C19.17,8.21 19.75,9.54 19.93,11M18.32,4.26C16.84,3.05 15,2.25 13,2.05V4.07C14.46,4.25 15.79,4.83 16.9,5.69M11,4.07V2.05C9,2.25 7.16,3.05 5.68,4.26L7.1,5.69C8.21,4.83 9.54,4.25 11,4.07Z\";\nexport var mdiImageFilterVintage = \"M12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16M18.7,12.4C18.42,12.24 18.13,12.11 17.84,12C18.13,11.89 18.42,11.76 18.7,11.6C20.62,10.5 21.69,8.5 21.7,6.41C19.91,5.38 17.63,5.3 15.7,6.41C15.42,6.57 15.16,6.76 14.92,6.95C14.97,6.64 15,6.32 15,6C15,3.78 13.79,1.85 12,0.81C10.21,1.85 9,3.78 9,6C9,6.32 9.03,6.64 9.08,6.95C8.84,6.75 8.58,6.56 8.3,6.4C6.38,5.29 4.1,5.37 2.3,6.4C2.3,8.47 3.37,10.5 5.3,11.59C5.58,11.75 5.87,11.88 6.16,12C5.87,12.1 5.58,12.23 5.3,12.39C3.38,13.5 2.31,15.5 2.3,17.58C4.09,18.61 6.37,18.69 8.3,17.58C8.58,17.42 8.84,17.23 9.08,17.04C9.03,17.36 9,17.68 9,18C9,20.22 10.21,22.15 12,23.19C13.79,22.15 15,20.22 15,18C15,17.68 14.97,17.36 14.92,17.05C15.16,17.25 15.42,17.43 15.7,17.59C17.62,18.7 19.9,18.62 21.7,17.59C21.69,15.5 20.62,13.5 18.7,12.4Z\";\nexport var mdiImageFrame = \"M10,14.29L6.5,19H17.46L14.75,15.46L12.78,17.8L10,14.29M5,21V7H18.96V21H5M12,2.4L14.61,5.03H9.37L12,2.4M5,5.03C4.5,5.03 4,5.22 3.61,5.61C3.2,6 3,6.46 3,7V21C3,21.5 3.2,22 3.61,22.39C4,22.8 4.5,23 5,23H18.96C19.5,23 19.96,22.8 20.37,22.39C20.77,22 21,21.5 21,21V7C21,6.46 20.77,6 20.37,5.61C19.96,5.22 19.5,5.03 18.96,5.03H16L12,1L7.96,5.03H5Z\";\nexport var mdiImageLock = \"M21.8 16V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16M20.5 16H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V16M5 3C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.03C13 20.9 13 20.8 13 20.7V18H5L8.5 13.5L11 16.5L14.5 12L14.77 12.37C15.61 10.89 17.27 10 19 10C19.69 10 20.37 10.16 21 10.42V5C21 3.89 20.1 3 19 3H5Z\";\nexport var mdiImageLockOutline = \"M21.8 16V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16M20.5 16H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V16M5 3C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.03C13 20.9 13 20.8 13 20.7V19H5V5H19V10C19.69 10 20.37 10.16 21 10.42V5C21 3.9 20.11 3 19 3H5M13.96 12.29L11.21 15.83L9.25 13.47L6.5 17H13C13.08 16.14 13.46 15.46 13.96 14.96C14.03 14.89 14.13 14.85 14.2 14.79V14.5C14.2 13.95 14.3 13.44 14.47 12.97L13.96 12.29Z\";\nexport var mdiImageMarker = \"M13.55 18C13.97 19.08 14.59 20.12 15.19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.89 21 5V10.63C20.25 10.23 19.39 10 18.5 10C16.29 10 14.33 11.39 13.47 13.33L11 16.5L8.5 13.5L5 18H13.55M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiImageMarkerOutline = \"M14 19C14.36 19.72 14.78 20.4 15.19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5V10.63C20.39 10.3 19.71 10.09 19 10.03V5H5V19H14M13.96 12.29L11.21 15.83L9.25 13.47L6.5 17H13.22C13.09 16.5 13 16 13 15.5C13 14.35 13.38 13.26 14 12.37L13.96 12.29M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiImageMinus = \"M15 18V20H23V18H15M13.3 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5V13.3C20.4 13.1 19.7 13 19 13C17.9 13 16.8 13.3 15.9 13.9L14.5 12L11 16.5L8.5 13.5L5 18H13.1C13 18.3 13 18.7 13 19C13 19.7 13.1 20.4 13.3 21Z\";\nexport var mdiImageMinusOutline = \"M15.4 14.21C14.47 14.91 13.75 15.88 13.35 17H6.5L9.25 13.47L11.21 15.83L13.96 12.29L15.4 14.21M5 19V5H19V13C19.7 13 20.37 13.13 21 13.35V5C21 3.9 20.11 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H13.35C13.13 20.37 13 19.7 13 19H5M15 18V20H23V18H15Z\";\nexport var mdiImageMove = \"M15,3H19V0L24,5L19,10V7H15V3M21,11.94V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H12.06C12,3.33 12,3.67 12,4A8,8 0 0,0 20,12C20.33,12 20.67,12 21,11.94M19,18L14.5,12L11,16.5L8.5,13.5L5,18H19Z\";\nexport var mdiImageMultiple = \"M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6\";\nexport var mdiImageMultipleOutline = \"M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3M15.96,10.29L13.21,13.83L11.25,11.47L8.5,15H19.5L15.96,10.29Z\";\nexport var mdiImageOff = \"M21 17.2L6.8 3H19C20.1 3 21 3.9 21 5V17.2M20.7 22L19.7 21H5C3.9 21 3 20.1 3 19V4.3L2 3.3L3.3 2L22 20.7L20.7 22M16.8 18L12.9 14.1L11 16.5L8.5 13.5L5 18H16.8Z\";\nexport var mdiImageOffOutline = \"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8\";\nexport var mdiImageOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M13.96,12.29L11.21,15.83L9.25,13.47L6.5,17H17.5L13.96,12.29Z\";\nexport var mdiImagePlus = \"M18 15V18H15V20H18V23H20V20H23V18H20V15H18M13.3 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5V13.3C20.4 13.1 19.7 13 19 13C17.9 13 16.8 13.3 15.9 13.9L14.5 12L11 16.5L8.5 13.5L5 18H13.1C13 18.3 13 18.7 13 19C13 19.7 13.1 20.4 13.3 21Z\";\nexport var mdiImagePlusOutline = \"M13 19C13 19.7 13.13 20.37 13.35 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13M13.96 12.29L11.21 15.83L9.25 13.47L6.5 17H13.35C13.75 15.88 14.47 14.91 15.4 14.21L13.96 12.29M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiImageRefresh = \"M12 18.5C12 19.39 12.18 20.23 12.5 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.89 21 5V12.5C20.23 12.18 19.39 12 18.5 12C17.29 12 16.16 12.34 15.19 12.92L14.5 12L11 16.5L8.5 13.5L5 18H12.03C12 18.17 12 18.33 12 18.5M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiImageRefreshOutline = \"M14.68 13.25C13.45 14.15 12.54 15.47 12.18 17H6.5L9.25 13.47L11.21 15.83L13.96 12.29L14.68 13.25M5 19V5H19V12.03C19.7 12.09 20.38 12.24 21 12.5V5C21 3.9 20.11 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H12.5C12.24 20.38 12.09 19.7 12.03 19H5M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiImageRemove = \"M13.3 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5V13.3C20.4 13.1 19.7 13 19 13C17.9 13 16.8 13.3 15.9 13.9L14.5 12L11 16.5L8.5 13.5L5 18H13.1C13 18.3 13 18.7 13 19C13 19.7 13.1 20.4 13.3 21M20.4 19L22.5 21.1L21.1 22.5L19 20.4L16.9 22.5L15.5 21.1L17.6 19L15.5 16.9L16.9 15.5L19 17.6L21.1 15.5L22.5 16.9L20.4 19Z\";\nexport var mdiImageRemoveOutline = \"M13 19C13 19.7 13.13 20.37 13.35 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13M11.21 15.83L9.25 13.47L6.5 17H13.35C13.75 15.88 14.47 14.91 15.4 14.21L13.96 12.29L11.21 15.83M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiImageSearch = \"M15.5,2C18,2 20,4 20,6.5C20,7.38 19.75,8.21 19.31,8.9L22.39,12L21,13.39L17.88,10.32C17.19,10.75 16.37,11 15.5,11C13,11 11,9 11,6.5C11,4 13,2 15.5,2M15.5,4A2.5,2.5 0 0,0 13,6.5A2.5,2.5 0 0,0 15.5,9A2.5,2.5 0 0,0 18,6.5A2.5,2.5 0 0,0 15.5,4M7.5,14.5L4,19H18L13.5,13L10,17.5L7.5,14.5M20,20A2,2 0 0,1 18,22H4A2,2 0 0,1 2,20V6A2,2 0 0,1 4,4H9.5C9.18,4.77 9,5.61 9,6.5A6.5,6.5 0 0,0 15.5,13C16.18,13 16.84,12.89 17.46,12.7L20,15.24V20Z\";\nexport var mdiImageSearchOutline = \"M15.5,9C16.2,9 16.79,8.76 17.27,8.27C17.76,7.79 18,7.2 18,6.5C18,5.83 17.76,5.23 17.27,4.73C16.79,4.23 16.2,4 15.5,4C14.83,4 14.23,4.23 13.73,4.73C13.23,5.23 13,5.83 13,6.5C13,7.2 13.23,7.79 13.73,8.27C14.23,8.76 14.83,9 15.5,9M19.31,8.91L22.41,12L21,13.41L17.86,10.31C17.08,10.78 16.28,11 15.47,11C14.22,11 13.16,10.58 12.3,9.7C11.45,8.83 11,7.77 11,6.5C11,5.27 11.45,4.2 12.33,3.33C13.2,2.45 14.27,2 15.5,2C16.77,2 17.83,2.45 18.7,3.33C19.58,4.2 20,5.27 20,6.5C20,7.33 19.78,8.13 19.31,8.91M16.5,18H5.5L8.25,14.5L10.22,16.83L12.94,13.31L16.5,18M18,13L20,15V20C20,20.55 19.81,21 19.41,21.4C19,21.79 18.53,22 18,22H4C3.45,22 3,21.79 2.6,21.4C2.21,21 2,20.55 2,20V6C2,5.47 2.21,5 2.6,4.59C3,4.19 3.45,4 4,4H9.5C9.2,4.64 9.03,5.31 9,6H4V20H18V13Z\";\nexport var mdiImageSizeSelectActual = \"M21,3H3C2,3 1,4 1,5V19A2,2 0 0,0 3,21H21C22,21 23,20 23,19V5C23,4 22,3 21,3M5,17L8.5,12.5L11,15.5L14.5,11L19,17H5Z\";\nexport var mdiImageSizeSelectLarge = \"M21,15H23V17H21V15M21,11H23V13H21V11M23,19H21V21C22,21 23,20 23,19M13,3H15V5H13V3M21,7H23V9H21V7M21,3V5H23C23,4 22,3 21,3M1,7H3V9H1V7M17,3H19V5H17V3M17,19H19V21H17V19M3,3C2,3 1,4 1,5H3V3M9,3H11V5H9V3M5,3H7V5H5V3M1,11V19A2,2 0 0,0 3,21H15V11H1M3,19L5.5,15.79L7.29,17.94L9.79,14.72L13,19H3Z\";\nexport var mdiImageSizeSelectSmall = \"M23,15H21V17H23V15M23,11H21V13H23V11M23,19H21V21C22,21 23,20 23,19M15,3H13V5H15V3M23,7H21V9H23V7M21,3V5H23C23,4 22,3 21,3M3,21H11V15H1V19A2,2 0 0,0 3,21M3,7H1V9H3V7M15,19H13V21H15V19M19,3H17V5H19V3M19,19H17V21H19V19M3,3C2,3 1,4 1,5H3V3M3,11H1V13H3V11M11,3H9V5H11V3M7,3H5V5H7V3Z\";\nexport var mdiImageSync = \"M8.5 13.5L5 18H13.03C13.11 19.1 13.47 20.12 14.03 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.89 21 5V11.18C20.5 11.07 20 11 19.5 11C17.78 11 16.23 11.67 15.07 12.76L14.5 12L11 16.5L8.5 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiImageSyncOutline = \"M13.18 19C13.35 19.72 13.64 20.39 14.03 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5V11.18C20.5 11.07 20 11 19.5 11C19.33 11 19.17 11 19 11.03V5H5V19H13.18M11.21 15.83L9.25 13.47L6.5 17H13.03C13.14 15.54 13.73 14.22 14.64 13.19L13.96 12.29L11.21 15.83M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiImageText = \"M22 13H14V11H22V13M22 7H14V9H22V7M14 17H22V15H14V17M12 9V15C12 16.1 11.1 17 10 17H4C2.9 17 2 16.1 2 15V9C2 7.9 2.9 7 4 7H10C11.1 7 12 7.9 12 9M10.5 15L8.3 12L6.5 14.3L5.3 12.8L3.5 15H10.5Z\";\nexport var mdiImport = \"M14,12L10,8V11H2V13H10V16M20,18V6C20,4.89 19.1,4 18,4H6A2,2 0 0,0 4,6V9H6V6H18V18H6V15H4V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18Z\";\nexport var mdiInbox = \"M19,15H15A3,3 0 0,1 12,18A3,3 0 0,1 9,15H5V5H19M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiInboxArrowDown = \"M16,10H14V7H10V10H8L12,14M19,15H15A3,3 0 0,1 12,18A3,3 0 0,1 9,15H5V5H19M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiInboxArrowDownOutline = \"M19 3H5A2 2 0 0 0 3 5V19A2 2 0 0 0 5 21H19A2 2 0 0 0 21 19V5A2 2 0 0 0 19 3M5 19V17H8.13A4.13 4.13 0 0 0 9.4 19M19 19H14.6A4.13 4.13 0 0 0 15.87 17H19M19 15H14V16A2 2 0 0 1 10 16V15H5V5H19M16 10H14V7H10V10H8L12 14\";\nexport var mdiInboxArrowUp = \"M14,14H10V11H8L12,7L16,11H14V14M16,11M5,15V5H19V15H15A3,3 0 0,1 12,18A3,3 0 0,1 9,15H5M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3\";\nexport var mdiInboxArrowUpOutline = \"M19 3H5A2 2 0 0 0 3 5V19A2 2 0 0 0 5 21H19A2 2 0 0 0 21 19V5A2 2 0 0 0 19 3M5 19V17H8.13A4.13 4.13 0 0 0 9.4 19M19 19H14.6A4.13 4.13 0 0 0 15.87 17H19M19 15H14V16A2 2 0 0 1 10 16V15H5V5H19M8 11H10V14H14V11H16L12 7\";\nexport var mdiInboxFull = \"M19 15V5H5V15H9C9 16.66 10.34 18 12 18C13.66 18 15 16.66 15 15H19M19 3C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.89 21 3 20.1 3 19L3 5C3 3.9 3.89 3 5 3H19M7 13V11H17V13H7M7 9V7H17V9H7Z\";\nexport var mdiInboxFullOutline = \"M19 3C20.1 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19M5 19H9.4C8.79 18.47 8.35 17.78 8.13 17H5V19M19 19V17H15.87C15.65 17.78 15.21 18.47 14.6 19H19M19 15V5H5V15H10V16C10 18.67 14 18.67 14 16V15H19M7 7H17V9H7V7M17 11V13H7V11H17Z\";\nexport var mdiInboxMultiple = \"M19,8V5H5V8H9A3,3 0 0,0 12,11A3,3 0 0,0 15,8H19M19,3A2,2 0 0,1 21,5V12A2,2 0 0,1 19,14H5A2,2 0 0,1 3,12V5A2,2 0 0,1 5,3H19M3,15H9A3,3 0 0,0 12,18A3,3 0 0,0 15,15H21V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V15Z\";\nexport var mdiInboxMultipleOutline = \"M19,3A2,2 0 0,1 21,5V12A2,2 0 0,1 19,14H5A2,2 0 0,1 3,12V5A2,2 0 0,1 5,3H19M5,10V12H9.4C8.8,11.47 8.34,10.78 8.13,10H5M19,12V10H15.87C15.66,10.78 15.2,11.47 14.6,12H19M19,8V5H5V8H10V9C10,10.07 10.93,11 12,11C13.07,11 14,10.07 14,9V8H19M21,19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V15H10V16C10,17.07 10.93,18 12,18C13.07,18 14,17.07 14,16V15H21V19M5,17V19H9.4C8.8,18.47 8.34,17.78 8.13,17H5M19,19V17H15.87C15.66,17.78 15.2,18.47 14.6,19H19Z\";\nexport var mdiInboxOutline = \"M19 3H5A2 2 0 0 0 3 5V19A2 2 0 0 0 5 21H19A2 2 0 0 0 21 19V5A2 2 0 0 0 19 3M5 19V17H8.13A4.13 4.13 0 0 0 9.4 19M19 19H14.6A4.13 4.13 0 0 0 15.87 17H19M19 15H14V16A2 2 0 0 1 10 16V15H5V5H19Z\";\nexport var mdiInboxRemove = \"M19 15H15C15 16.7 13.7 18 12 18S9 16.7 9 15H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M14.1 6.5L15.5 7.9L13.4 10L15.5 12.1L14.1 13.5L12 11.4L9.9 13.5L8.5 12.1L10.6 10L8.5 7.9L9.9 6.5L12 8.6L14.1 6.5Z\";\nexport var mdiInboxRemoveOutline = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M5 19V17H8.1C8.3 17.8 8.8 18.5 9.4 19M19 19H14.6C15.2 18.5 15.7 17.8 15.9 17H19M19 15H14V16C14 17.1 13.1 18 12 18S10 17.1 10 16V15H5V5H19V15M14.1 6.5L15.5 7.9L13.4 10L15.5 12.1L14.1 13.5L12 11.4L9.9 13.5L8.5 12.1L10.6 10L8.5 7.9L9.9 6.5L12 8.6L14.1 6.5Z\";\nexport var mdiIncognito = \"M17.06 13C15.2 13 13.64 14.33 13.24 16.1C12.29 15.69 11.42 15.8 10.76 16.09C10.35 14.31 8.79 13 6.94 13C4.77 13 3 14.79 3 17C3 19.21 4.77 21 6.94 21C9 21 10.68 19.38 10.84 17.32C11.18 17.08 12.07 16.63 13.16 17.34C13.34 19.39 15 21 17.06 21C19.23 21 21 19.21 21 17C21 14.79 19.23 13 17.06 13M6.94 19.86C5.38 19.86 4.13 18.58 4.13 17S5.39 14.14 6.94 14.14C8.5 14.14 9.75 15.42 9.75 17S8.5 19.86 6.94 19.86M17.06 19.86C15.5 19.86 14.25 18.58 14.25 17S15.5 14.14 17.06 14.14C18.62 14.14 19.88 15.42 19.88 17S18.61 19.86 17.06 19.86M22 10.5H2V12H22V10.5M15.53 2.63C15.31 2.14 14.75 1.88 14.22 2.05L12 2.79L9.77 2.05L9.72 2.04C9.19 1.89 8.63 2.17 8.43 2.68L6 9H18L15.56 2.68L15.53 2.63Z\";\nexport var mdiIncognitoCircle = \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M14.92 12.81C13.84 12.81 12.95 13.56 12.71 14.56C12.17 14.33 11.66 14.39 11.29 14.55C11.05 13.55 10.15 12.81 9.08 12.81C7.83 12.81 6.82 13.82 6.82 15.07C6.82 16.32 7.83 17.33 9.08 17.33C10.28 17.33 11.24 16.42 11.33 15.25C11.53 15.12 12.04 14.86 12.67 15.26C12.77 16.42 13.73 17.33 14.92 17.33C16.17 17.33 17.18 16.32 17.18 15.07C17.18 13.82 16.17 12.81 14.92 12.81M9.08 13.45C10 13.45 10.7 14.18 10.7 15.07C10.7 15.96 10 16.69 9.08 16.69C8.19 16.69 7.46 15.96 7.46 15.07C7.46 14.18 8.19 13.45 9.08 13.45M14.92 13.45C15.81 13.45 16.54 14.18 16.54 15.07C16.54 15.96 15.81 16.69 14.92 16.69C14 16.69 13.3 15.96 13.3 15.07C13.3 14.18 14 13.45 14.92 13.45M17.83 11.5H6.17V12.17H17.83V11.5M14.15 6.89C14 6.59 13.67 6.43 13.35 6.53L12 7L10.65 6.53L10.61 6.5C10.29 6.43 9.95 6.61 9.84 6.92L8.36 10.83H15.64L14.16 6.92L14.15 6.89Z\";\nexport var mdiIncognitoCircleOff = \"M22.11 21.46L2.39 1.73L1.11 3L4.06 5.95C2.77 7.63 2 9.72 2 12C2 17.5 6.5 22 12 22C14.28 22 16.37 21.23 18.05 19.94L20.84 22.73L22.11 21.46M8.94 10.83H8.36L8.5 10.41L8.94 10.83M6.17 11.5H9.61L10.28 12.17H6.17V11.5M14.92 17.33C13.73 17.33 12.77 16.42 12.67 15.26C12.04 14.86 11.53 15.12 11.33 15.25C11.24 16.42 10.28 17.33 9.08 17.33C7.83 17.33 6.82 16.32 6.82 15.07C6.82 13.82 7.83 12.81 9.08 12.81C10.15 12.81 11.05 13.55 11.29 14.55C11.65 14.4 12.13 14.34 12.65 14.54L13.31 15.2C13.37 16 14 16.61 14.78 16.67L15.38 17.27C15.23 17.3 15.08 17.33 14.92 17.33M9.94 6.74L6.72 3.5C8.25 2.56 10.06 2 12 2C17.5 2 22 6.5 22 12C22 13.94 21.44 15.75 20.5 17.28L15.37 12.17H17.83V11.5H14.7L14.03 10.83H15.64L14.16 6.92L14.15 6.89C14 6.59 13.67 6.43 13.35 6.53L12 7L10.65 6.53L10.61 6.5C10.36 6.45 10.1 6.55 9.94 6.74M10.7 15.07C10.7 15.96 10 16.69 9.08 16.69C8.19 16.69 7.46 15.96 7.46 15.07S8.19 13.45 9.08 13.45C10 13.45 10.7 14.18 10.7 15.07Z\";\nexport var mdiIncognitoOff = \"M22.11 21.46L2.39 1.73L1.11 3L6.31 8.2L6 9H7.11L8.61 10.5H2V12H10.11L13.5 15.37C13.38 15.61 13.3 15.85 13.24 16.1C12.29 15.69 11.41 15.8 10.76 16.09C10.35 14.31 8.79 13 6.94 13C4.77 13 3 14.79 3 17C3 19.21 4.77 21 6.94 21C9 21 10.68 19.38 10.84 17.32C11.18 17.08 12.07 16.63 13.16 17.34C13.34 19.39 15 21 17.06 21C17.66 21 18.22 20.86 18.72 20.61L20.84 22.73L22.11 21.46M6.94 19.86C5.38 19.86 4.13 18.58 4.13 17C4.13 15.42 5.39 14.14 6.94 14.14C8.5 14.14 9.75 15.42 9.75 17C9.75 18.58 8.5 19.86 6.94 19.86M17.06 19.86C15.5 19.86 14.25 18.58 14.25 17C14.25 16.74 14.29 16.5 14.36 16.25L17.84 19.73C17.59 19.81 17.34 19.86 17.06 19.86M22 12H15.2L13.7 10.5H22V12M17.06 13C19.23 13 21 14.79 21 17C21 17.25 20.97 17.5 20.93 17.73L19.84 16.64C19.68 15.34 18.66 14.32 17.38 14.17L16.29 13.09C16.54 13.03 16.8 13 17.06 13M12.2 9L7.72 4.5L8.43 2.68C8.63 2.17 9.19 1.89 9.72 2.04L9.77 2.05L12 2.79L14.22 2.05C14.75 1.88 15.32 2.14 15.54 2.63L15.56 2.68L18 9H12.2Z\";\nexport var mdiInduction = \"M23 2C20.75 2 18.75 2.61 17.19 3.33C15.79 2.61 14 2 12 2S8.21 2.61 6.81 3.33C5.25 2.61 3.25 2 1 2V4C2.36 4 3.61 4.27 4.71 4.64C4.03 5.15 3.63 5.54 3.59 5.59C3.21 5.96 3 6.47 3 7V18C3 20.21 4.79 22 7 22S11 20.21 11 18V7C11 6.42 10.75 5.88 10.32 5.5C10.26 5.45 9.8 5.05 9 4.54C9.92 4.22 10.92 4 12 4S14.08 4.22 15 4.54C14.2 5.05 13.74 5.45 13.68 5.5C13.25 5.88 13 6.42 13 7V18C13 20.21 14.79 22 17 22S21 20.21 21 18V7C21 6.47 20.79 5.96 20.41 5.59C20.37 5.54 19.97 5.15 19.29 4.64C20.39 4.27 21.64 4 23 4V2M9 7V18C9 19.11 8.11 20 7 20S5 19.11 5 18V7C5 7 5.7 6.31 6.87 5.58C8.2 6.31 9 7 9 7M19 7V18C19 19.11 18.11 20 17 20S15 19.11 15 18V7C15 7 15.8 6.31 17.13 5.58C18.3 6.31 19 7 19 7Z\";\nexport var mdiInfinity = \"M18.6,6.62C21.58,6.62 24,9 24,12C24,14.96 21.58,17.37 18.6,17.37C17.15,17.37 15.8,16.81 14.78,15.8L12,13.34L9.17,15.85C8.2,16.82 6.84,17.38 5.4,17.38C2.42,17.38 0,14.96 0,12C0,9.04 2.42,6.62 5.4,6.62C6.84,6.62 8.2,7.18 9.22,8.2L12,10.66L14.83,8.15C15.8,7.18 17.16,6.62 18.6,6.62M7.8,14.39L10.5,12L7.84,9.65C7.16,8.97 6.31,8.62 5.4,8.62C3.53,8.62 2,10.13 2,12C2,13.87 3.53,15.38 5.4,15.38C6.31,15.38 7.16,15.03 7.8,14.39M16.2,9.61L13.5,12L16.16,14.35C16.84,15.03 17.7,15.38 18.6,15.38C20.47,15.38 22,13.87 22,12C22,10.13 20.47,8.62 18.6,8.62C17.69,8.62 16.84,8.97 16.2,9.61Z\";\nexport var mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiInformationBox = \"M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M13 9V7H11V9H13M13 17V11H11V17H13Z\";\nexport var mdiInformationBoxOutline = \"M13 9H11V7H13V9M13 17H11V11H13V17M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M19 19V5H5V19H19Z\";\nexport var mdiInformationOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 17.5 6.5 22 12 22C14.3 22 16.4 21.2 18 19.9L20.8 22.7L22.1 21.5M13 17H11V12.9L13 14.9V17M11 7.8L6.7 3.5C8.3 2.6 10.1 2 12 2C17.5 2 22 6.5 22 12C22 13.9 21.4 15.7 20.5 17.3L12.2 9H13V7H11V7.8Z\";\nexport var mdiInformationOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 17.5 6.5 22 12 22C14.3 22 16.4 21.2 18 19.9L20.8 22.7L22.1 21.5M12 20C7.6 20 4 16.4 4 12C4 10.3 4.6 8.7 5.5 7.4L11 12.9V17H13V14.9L16.6 18.5C15.3 19.4 13.7 20 12 20M8.2 5L6.7 3.5C8.3 2.6 10.1 2 12 2C17.5 2 22 6.5 22 12C22 13.9 21.4 15.7 20.5 17.3L19 15.8C19.6 14.7 20 13.4 20 12C20 7.6 16.4 4 12 4C10.6 4 9.3 4.4 8.2 5M11 7H13V9H11V7Z\";\nexport var mdiInformationOutline = \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z\";\nexport var mdiInformationSlabBox = \"M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M11 9H13V7H11V9M14 17V15H13V11H10V13H11V15H10V17H14Z\";\nexport var mdiInformationSlabBoxOutline = \"M11 9H13V7H11V9M14 17V15H13V11H10V13H11V15H10V17H14M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M19 19V5H5V19H19Z\";\nexport var mdiInformationSlabCircle = \"M12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22M11 7H13V9H11V7M14 17H10V15H11V13H10V11H13V15H14V17Z\";\nexport var mdiInformationSlabCircleOutline = \"M11 7V9H13V7H11M14 17V15H13V11H10V13H11V15H10V17H14M22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12M20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12Z\";\nexport var mdiInformationSlabSymbol = \"M13 9H11V7H13V9M14 15V17H10V15H11V13H10V11H13V15H14Z\";\nexport var mdiInformationSymbol = \"M11 9H13V7H11V9M11 17H13V11H11V17Z\";\nexport var mdiInformationVariant = \"M13.5,4A1.5,1.5 0 0,0 12,5.5A1.5,1.5 0 0,0 13.5,7A1.5,1.5 0 0,0 15,5.5A1.5,1.5 0 0,0 13.5,4M13.14,8.77C11.95,8.87 8.7,11.46 8.7,11.46C8.5,11.61 8.56,11.6 8.72,11.88C8.88,12.15 8.86,12.17 9.05,12.04C9.25,11.91 9.58,11.7 10.13,11.36C12.25,10 10.47,13.14 9.56,18.43C9.2,21.05 11.56,19.7 12.17,19.3C12.77,18.91 14.38,17.8 14.54,17.69C14.76,17.54 14.6,17.42 14.43,17.17C14.31,17 14.19,17.12 14.19,17.12C13.54,17.55 12.35,18.45 12.19,17.88C12,17.31 13.22,13.4 13.89,10.71C14,10.07 14.3,8.67 13.14,8.77Z\";\nexport var mdiInformationVariantBox = \"M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M12.3 7.29C12.11 7.5 12 7.74 12 8C12 8.27 12.11 8.5 12.3 8.71C12.5 8.9 12.74 9 13 9C13.27 9 13.5 8.9 13.71 8.71C13.9 8.5 14 8.27 14 8C14 7.74 13.9 7.5 13.71 7.29C13.5 7.11 13.27 7 13 7C12.74 7 12.5 7.11 12.3 7.29M9.8 11.97C9.7 12.06 9.7 12.07 9.77 12.17L9.82 12.25L9.85 12.31C9.92 12.44 9.93 12.44 10.04 12.36C10.17 12.27 10.39 12.13 10.76 11.91C11.68 11.32 11.5 12 11.09 13.5C10.87 14.33 10.59 15.39 10.38 16.62C10.14 18.37 11.71 17.47 12.12 17.2C12.5 16.96 13.44 16.3 13.66 16.15L13.7 16.13C13.82 16.04 13.77 16 13.68 15.86L13.62 15.78C13.54 15.67 13.46 15.75 13.46 15.75L13.3 15.86C12.85 16.16 12.23 16.59 12.13 16.25C12.04 16 12.41 14.64 12.79 13.25C12.96 12.64 13.13 12 13.26 11.47L13.28 11.41C13.35 10.97 13.5 10.12 12.77 10.18C11.97 10.25 9.8 11.97 9.8 11.97Z\";\nexport var mdiInformationVariantBoxOutline = \"M12.3 7.29C12.5 7.11 12.74 7 13 7C13.27 7 13.5 7.11 13.71 7.29C13.9 7.5 14 7.74 14 8C14 8.27 13.9 8.5 13.71 8.71C13.5 8.9 13.27 9 13 9C12.74 9 12.5 8.9 12.3 8.71C12.11 8.5 12 8.27 12 8C12 7.74 12.11 7.5 12.3 7.29M9.8 11.97C9.8 11.97 11.97 10.25 12.76 10.18C13.5 10.12 13.35 10.97 13.28 11.41L13.27 11.47C13.13 12 12.96 12.64 12.79 13.25C12.41 14.64 12.04 16 12.13 16.25C12.23 16.59 12.85 16.16 13.3 15.86C13.36 15.82 13.41 15.78 13.46 15.75C13.46 15.75 13.54 15.67 13.62 15.78C13.64 15.81 13.66 15.84 13.68 15.86C13.77 16 13.82 16.05 13.7 16.13L13.66 16.15C13.44 16.3 12.5 16.96 12.12 17.2C11.71 17.47 10.14 18.37 10.38 16.62C10.59 15.39 10.87 14.33 11.09 13.5C11.5 12 11.68 11.32 10.76 11.91C10.39 12.13 10.17 12.27 10.04 12.36C9.93 12.44 9.92 12.44 9.85 12.31L9.82 12.25L9.77 12.17C9.7 12.07 9.7 12.06 9.8 11.97M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M19 19V5H5V19H19Z\";\nexport var mdiInformationVariantCircle = \"M12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22M12.3 7.29C12.5 7.11 12.74 7 13 7C13.27 7 13.5 7.11 13.71 7.29C13.9 7.5 14 7.74 14 8C14 8.27 13.9 8.5 13.71 8.71C13.5 8.9 13.27 9 13 9C12.74 9 12.5 8.9 12.3 8.71C12.11 8.5 12 8.27 12 8C12 7.74 12.11 7.5 12.3 7.29M9.8 11.97C9.8 11.97 11.97 10.25 12.76 10.18C13.5 10.12 13.35 10.97 13.28 11.41L13.27 11.47C13.13 12 12.96 12.64 12.79 13.25C12.41 14.64 12.04 16 12.13 16.25C12.23 16.59 12.85 16.16 13.3 15.86C13.36 15.82 13.41 15.78 13.46 15.75C13.46 15.75 13.54 15.67 13.62 15.78C13.64 15.81 13.66 15.84 13.68 15.86C13.77 16 13.82 16.05 13.7 16.13L13.66 16.15C13.44 16.3 12.5 16.96 12.12 17.2C11.71 17.47 10.14 18.37 10.38 16.62C10.59 15.39 10.87 14.33 11.09 13.5C11.5 12 11.68 11.32 10.76 11.91C10.39 12.13 10.17 12.27 10.04 12.36C9.93 12.44 9.92 12.44 9.85 12.31L9.82 12.25L9.77 12.17C9.7 12.07 9.7 12.06 9.8 11.97Z\";\nexport var mdiInformationVariantCircleOutline = \"M12.3 7.29C12.5 7.11 12.74 7 13 7C13.27 7 13.5 7.11 13.71 7.29C13.9 7.5 14 7.74 14 8C14 8.27 13.9 8.5 13.71 8.71C13.5 8.9 13.27 9 13 9C12.74 9 12.5 8.9 12.3 8.71C12.11 8.5 12 8.27 12 8C12 7.74 12.11 7.5 12.3 7.29M9.8 11.97C9.8 11.97 11.97 10.25 12.76 10.18C13.5 10.12 13.35 10.97 13.28 11.41L13.27 11.47C13.13 12 12.96 12.64 12.79 13.25C12.41 14.64 12.04 16 12.13 16.25C12.23 16.59 12.85 16.16 13.3 15.86C13.36 15.82 13.41 15.78 13.46 15.75C13.46 15.75 13.54 15.67 13.62 15.78C13.64 15.81 13.66 15.84 13.68 15.86C13.77 16 13.82 16.05 13.7 16.13L13.66 16.15C13.44 16.3 12.5 16.96 12.12 17.2C11.71 17.47 10.14 18.37 10.38 16.62C10.59 15.39 10.87 14.33 11.09 13.5C11.5 12 11.68 11.32 10.76 11.91C10.39 12.13 10.17 12.27 10.04 12.36C9.93 12.44 9.92 12.44 9.85 12.31L9.82 12.25L9.77 12.17C9.7 12.07 9.7 12.06 9.8 11.97M22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12M20 12C20 7.58 16.42 4 12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12Z\";\nexport var mdiInstagram = \"M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiInstrumentTriangle = \"M11.5 2H10.5V6.2C10.4 6.3 10.3 6.3 10.2 6.5L2.1 20.7C1.8 21.3 2.2 22 2.9 22H16V20H4.8L11 9.2L16.7 19.2L18.4 18.2L11.8 6.4L11.5 6.1V2M21 6H20V18L19.5 22H21.5L21 18V6Z\";\nexport var mdiIntegratedCircuitChip = \"M10 4H20C21.11 4 22 4.89 22 6V8H18.59L16 10.59V14.59L14 16.59V20H10V16.59L8 14.59V9.41L10 7.41V4M18 11.41V14H22V10H19.41L18 11.41M6.59 8L8 6.59V4H4C2.89 4 2 4.89 2 6V8H6.59M6 14V10H2V14H6M8 17.41L6.59 16H2V18C2 19.11 2.89 20 4 20H8V17.41M17.41 16L16 17.41V20H20C21.11 20 22 19.11 22 18V16H17.41Z\";\nexport var mdiInvertColors = \"M12,19.58V19.58C10.4,19.58 8.89,18.96 7.76,17.83C6.62,16.69 6,15.19 6,13.58C6,12 6.62,10.47 7.76,9.34L12,5.1M17.66,7.93L12,2.27V2.27L6.34,7.93C3.22,11.05 3.22,16.12 6.34,19.24C7.9,20.8 9.95,21.58 12,21.58C14.05,21.58 16.1,20.8 17.66,19.24C20.78,16.12 20.78,11.05 17.66,7.93Z\";\nexport var mdiInvertColorsOff = \"M20.65,20.87L18.3,18.5L12,12.23L8.44,8.66L7,7.25L4.27,4.5L3,5.77L5.78,8.55C3.23,11.69 3.42,16.31 6.34,19.24C7.9,20.8 9.95,21.58 12,21.58C13.79,21.58 15.57,21 17.03,19.8L19.73,22.5L21,21.23L20.65,20.87M12,19.59C10.4,19.59 8.89,18.97 7.76,17.83C6.62,16.69 6,15.19 6,13.59C6,12.27 6.43,11 7.21,10L12,14.77V19.59M12,5.1V9.68L19.25,16.94C20.62,14 20.09,10.37 17.65,7.93L12,2.27L8.3,5.97L9.71,7.38L12,5.1Z\";\nexport var mdiInvoice = \"M21 22L18 20L15 22L12 20L9 22L6 20L3 22V3H21V22Z\";\nexport var mdiInvoiceArrowLeft = \"M21 13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiInvoiceArrowLeftOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiInvoiceArrowRight = \"M21 13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiInvoiceArrowRightOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiInvoiceCheck = \"M19 13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13M15.5 19L18.25 22L23 17.23L21.84 15.82L18.25 19.41L16.66 17.82L15.5 19Z\";\nexport var mdiInvoiceCheckOutline = \"M19 13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 18.76 13 18.5 13.04 18.29L12 17.6L9 19.6L6 17.6L5 18.26V5H19V13M15.5 19L18.25 22L23 17.23L21.84 15.82L18.25 19.41L16.66 17.82L15.5 19Z\";\nexport var mdiInvoiceClock = \"M15 13V16.69L18.19 18.53L18.94 17.23L16.5 15.82V13H15M9 22L10.87 20.76C12.14 22.14 13.97 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.36 21 11.1V3H3V22L6 20L9 22M16 21C13.24 21 11 18.76 11 16C11 13.24 13.24 11 16 11C18.76 11 21 13.24 21 16C21 18.76 18.76 21 16 21Z\";\nexport var mdiInvoiceClockOutline = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M10.87 20.76L9 22L6 20L3 22V3H21V11.1C22.24 12.36 23 14.09 23 16C23 19.87 19.87 23 16 23C13.97 23 12.14 22.14 10.87 20.76M9.73 19.11C9.26 18.17 9 17.12 9 16C9 12.13 12.13 9 16 9C17.07 9 18.09 9.24 19 9.67V5H5V18.26L6 17.6L9 19.6L9.73 19.11M16 21C18.76 21 21 18.76 21 16C21 13.24 18.76 11 16 11C13.24 11 11 13.24 11 16C11 18.76 13.24 21 16 21Z\";\nexport var mdiInvoiceEdit = \"M9.86 21.43L9 22L6 20L3 22V3H21V10.2C20.1 9.82 19 10 18.24 10.75L9.86 19.13V21.43M11.86 19.96L18 13.83L20.03 15.87L13.9 22H11.86V19.96M20.39 12.15C20.37 12.13 20.34 12.1 20.31 12.09C20.12 11.96 19.86 11.97 19.69 12.13L19.67 12.15L18.69 13.13L20.73 15.17L21.71 14.19C21.91 14 21.91 13.67 21.71 13.47L20.39 12.15Z\";\nexport var mdiInvoiceEditOutline = \"M9.86 21.43L9 22L6 20L3 22V3H21V10.2C20.37 9.93 19.64 9.93 19 10.22V5H5V18.26L6 17.6L9 19.6L9.86 19V21.43M11.86 19.96L18 13.83L20.03 15.87L13.9 22H11.86V19.96M20.73 15.17L21.71 14.19C21.91 14 21.91 13.67 21.71 13.47L20.39 12.15C20.37 12.13 20.34 12.1 20.31 12.09C20.12 11.96 19.86 11.97 19.69 12.13L19.67 12.15L18.69 13.13L20.73 15.17Z\";\nexport var mdiInvoiceExportOutline = \"M21 22L18 20L15 22L12 20L9 22L6 20L3 22V3H21V9.67L19 7.67V5H5V18.26L6 17.6L9 19.6L12 17.6L15 19.6L18 17.6L19 18.26V16.33L21 14.33V22M20.5 12L15.5 7L14.08 8.41L16.67 11H7V13H16.67L14.08 15.58L15.5 17L20.5 12Z\";\nexport var mdiInvoiceFast = \"M22 5H7V21L9.5 19.32L12 21L14.5 19.32L17 21L19.5 19.32L22 21V5M2 8C2 7.4 2.4 7 3 7H5V9H3C2.4 9 2 8.6 2 8M1 12C1 11.4 1.4 11 2 11H5V13H2C1.4 13 1 12.6 1 12M0 16C0 15.4 .4 15 1 15H5V17H1C.4 17 0 16.6 0 16Z\";\nexport var mdiInvoiceFastOutline = \"M19.5 19.32L22 21V5H7V21L9.5 19.32L12 21L14.5 19.32L17 21L19.5 19.32M20 7V16.57L17 18.59L14.5 16.9L12 18.59L9 16.57V7H20M2 8C2 7.4 2.4 7 3 7H5V9H3C2.4 9 2 8.6 2 8M2 11C1.4 11 1 11.4 1 12C1 12.6 1.4 13 2 13H5V11H2M0 16C0 15.4 .4 15 1 15H5V17H1C.4 17 0 16.6 0 16Z\";\nexport var mdiInvoiceImport = \"M18 20L21 22V3H3V11H12.67L10.08 8.41L11.5 7L16.5 12L11.5 17L10.08 15.58L12.67 13H3V22L6 20L9 22L12 20L15 22L18 20Z\";\nexport var mdiInvoiceImportOutline = \"M18 20L21 22V3H3V9H5V5H19V18.26L18 17.6L15 19.6L12 17.6L9 19.6L6 17.6L5 18.26V15H3V22L6 20L9 22L12 20L15 22L18 20M11.5 17L10.08 15.58L12.67 13H3V11H12.67L10.08 8.41L11.5 7L16.5 12L11.5 17Z\";\nexport var mdiInvoiceList = \"M3 22V3H21V22L18 20L15 22L12 20L9 22L6 20L3 22M17 9V7H15V9H17M13 9V7H7V9H13M13 11H7V13H13V11M15 13H17V11H15V13Z\";\nexport var mdiInvoiceListOutline = \"M17 7V9H15V7H17M13 7V9H7V7H13M13 11H7V13H13V11M15 11V13H17V11H15M21 22L18 20L15 22L12 20L9 22L6 20L3 22V3H21V22M19 18.26V5H5V18.26L6 17.6L9 19.6L12 17.6L15 19.6L18 17.6L19 18.26Z\";\nexport var mdiInvoiceMinus = \"M3 22V3H21V13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22M15 18V20H23V18H15Z\";\nexport var mdiInvoiceMinusOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M15 18V20H23V18H15Z\";\nexport var mdiInvoiceMultiple = \"M17 2H2V17H4V4H17V2M21 22L18.5 20.32L16 22L13.5 20.32L11 22L8.5 20.32L6 22V6H21V22Z\";\nexport var mdiInvoiceMultipleOutline = \"M2 2V17H4V4H17V2H2M18.5 20.32L21 22V6H6V22L8.5 20.32L11 22L13.5 20.32L16 22L18.5 20.32M19 8V17.57L16 19.59L13.5 17.9L11 19.59L8 17.57V8H19Z\";\nexport var mdiInvoiceOutline = \"M21 22L18 20L15 22L12 20L9 22L6 20L3 22V3H21V22M19 18.26V5H5V18.26L6 17.6L9 19.6L12 17.6L15 19.6L18 17.6L19 18.26Z\";\nexport var mdiInvoicePlus = \"M3 22V3H21V13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiInvoicePlusOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiInvoiceRemove = \"M19 13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13M19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5L19 17.6Z\";\nexport var mdiInvoiceRemoveOutline = \"M19 13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 18.76 13 18.5 13.04 18.29L12 17.6L9 19.6L6 17.6L5 18.26V5H19V13M19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5L19 17.6Z\";\nexport var mdiInvoiceSend = \"M3 22V3H21V14.26L12 9.76V20L9 22L6 20L3 22M24 18L14 23V19L18 18L14 17V13L24 18Z\";\nexport var mdiInvoiceSendOutline = \"M24 18L14 13V17L18 18L14 19V23L24 18M19 13.26L21 14.26V3H3V22L6 20L9 22L12 20V17.6L9 19.6L6 17.6L5 18.26V5H19V13.26Z\";\nexport var mdiInvoiceText = \"M3 3V22L6 20L9 22L12 20L15 22L18 20L21 22V3H3M17 7V9H7V7H17M15 11V13H7V11H15Z\";\nexport var mdiInvoiceTextArrowLeft = \"M3 22V3H21V13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22M17 9V7H7V9H17M15 13V11H7V13H15M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiInvoiceTextArrowLeftOutline = \"M13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86M17 7V9H7V7H17M15 11V13H7V11H15M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiInvoiceTextArrowRight = \"M3 22V3H21V13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22M17 9V7H7V9H17M15 13V11H7V13H15M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiInvoiceTextArrowRightOutline = \"M13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86M17 7V9H7V7H17M15 11V13H7V11H15M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiInvoiceTextCheck = \"M3 3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13C19.7 13 20.37 13.12 21 13.34V3H3M17 7V9H7V7H17M15 11V13H7V11H15M15.5 19L18.25 22L23 17.23L21.84 15.82L18.25 19.41L16.66 17.82L15.5 19Z\";\nexport var mdiInvoiceTextCheckOutline = \"M12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 18.76 13 18.5 13.04 18.29L12 17.6L9 19.6L6 17.6L5 18.26V5H19V13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20M17 9V7H7V9H17M15 13V11H7V13H15M15.5 19L18.25 22L23 17.23L21.84 15.82L18.25 19.41L16.66 17.82L15.5 19Z\";\nexport var mdiInvoiceTextClock = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M3 22V3H21V11.1C22.24 12.36 23 14.09 23 16C23 19.87 19.87 23 16 23C13.97 23 12.14 22.14 10.87 20.76L9 22L6 20L3 22M9.67 13C10.03 12.25 10.5 11.57 11.1 11H7V13H9.67M17 9V7H7V9H17M16 21C18.76 21 21 18.76 21 16C21 13.24 18.76 11 16 11C13.24 11 11 13.24 11 16C11 18.76 13.24 21 16 21Z\";\nexport var mdiInvoiceTextClockOutline = \"M17 9H7V7H17V9M15 13V16.69L18.19 18.53L18.94 17.23L16.5 15.82V13H15M9 22L10.87 20.76C12.14 22.14 13.97 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.36 21 11.1V3H3V22L6 20L9 22M9 19.6L6 17.6L5 18.26V5H19V9.67C18.09 9.24 17.07 9 16 9C14.09 9 12.36 9.76 11.1 11H7V13H9.67C9.24 13.91 9 14.93 9 16C9 17.12 9.26 18.17 9.73 19.11L9 19.6M16 21C13.24 21 11 18.76 11 16C11 13.24 13.24 11 16 11C18.76 11 21 13.24 21 16C21 18.76 18.76 21 16 21Z\";\nexport var mdiInvoiceTextEdit = \"M9.86 21.43L9 22L6 20L3 22V3H21V10.2C20.1 9.82 19 10 18.24 10.75L9.86 19.13V21.43M17 7H7V9H17V7M15 11H7V13H15V11M11.86 19.96V22H13.9L20.03 15.87L18 13.83L11.86 19.96M21.71 13.47L20.39 12.15C20.37 12.13 20.34 12.1 20.31 12.09C20.12 11.96 19.86 11.97 19.69 12.13L19.67 12.15L18.69 13.13L20.73 15.17L21.71 14.19C21.91 14 21.91 13.67 21.71 13.47Z\";\nexport var mdiInvoiceTextEditOutline = \"M9.86 21.43L9 22L6 20L3 22V3H21V10.2C20.37 9.93 19.64 9.93 19 10.22V5H5V18.26L6 17.6L9 19.6L9.86 19V21.43M11.86 19.96L18 13.83L20.03 15.87L13.9 22H11.86V19.96M21.71 14.19L20.73 15.17L18.69 13.13L19.67 12.15L19.68 12.14L19.69 12.13C19.86 11.97 20.12 11.96 20.31 12.09C20.34 12.1 20.37 12.13 20.39 12.15L21.71 13.47C21.91 13.67 21.91 14 21.71 14.19M17 9V7H7V9H17M15 13V11H7V13H15Z\";\nexport var mdiInvoiceTextFast = \"M7 5H22V21L19.5 19.32L17 21L14.5 19.32L12 21L9.5 19.32L7 21V5M18 9H11V11H18V9M11 13V15H16V13H11M3 7C2.4 7 2 7.4 2 8C2 8.6 2.4 9 3 9H5V7H3M1 12C1 11.4 1.4 11 2 11H5V13H2C1.4 13 1 12.6 1 12M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1Z\";\nexport var mdiInvoiceTextFastOutline = \"M18 9H11V11H18V9M11 13H16V15H11V13M22 21L19.5 19.32L17 21L14.5 19.32L12 21L9.5 19.32L7 21V5H22V21M20 16.57V7H9V16.57L12 18.59L14.5 16.9L17 18.59L20 16.57M3 7C2.4 7 2 7.4 2 8C2 8.6 2.4 9 3 9H5V7H3M2 11C1.4 11 1 11.4 1 12C1 12.6 1.4 13 2 13H5V11H2M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1Z\";\nexport var mdiInvoiceTextMinus = \"M3 3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13C19.7 13 20.37 13.12 21 13.34V3H3M17 7V9H7V7H17M15 11V13H7V11H15M15 18V20H23V18H15Z\";\nexport var mdiInvoiceTextMinusOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M17 9V7H7V9H17M15 13V11H7V13H15M15 18V20H23V18H15Z\";\nexport var mdiInvoiceTextMultiple = \"M17 2H2V17H4V4H17V2M21 22L18.5 20.32L16 22L13.5 20.32L11 22L8.5 20.32L6 22V6H21V22M10 10V12H17V10H10M15 14H10V16H15V14Z\";\nexport var mdiInvoiceTextMultipleOutline = \"M2 2V17H4V4H17V2H2M10 10H17V12H10V10M15 14H10V16H15V14M18.5 20.32L21 22V6H6V22L8.5 20.32L11 22L13.5 20.32L16 22L18.5 20.32M19 8V17.57L16 19.59L13.5 17.9L11 19.59L8 17.57V8H19Z\";\nexport var mdiInvoiceTextOutline = \"M17 7V9H7V7H17M15 11V13H7V11H15M18 20L21 22V3H3V22L6 20L9 22L12 20L15 22L18 20M19 5V18.26L18 17.6L15 19.6L12 17.6L9 19.6L6 17.6L5 18.26V5H19Z\";\nexport var mdiInvoiceTextPlus = \"M3 3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13C19.7 13 20.37 13.12 21 13.34V3H3M17 7V9H7V7H17M15 11V13H7V11H15M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiInvoiceTextPlusOutline = \"M21 13.34C20.37 13.12 19.7 13 19 13V5H5V18.26L6 17.6L9 19.6L12 17.6L13.04 18.29C13 18.5 13 18.76 13 19C13 19.65 13.1 20.28 13.3 20.86L12 20L9 22L6 20L3 22V3H21V13.34M17 9V7H7V9H17M15 13V11H7V13H15M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiInvoiceTextRemove = \"M3 3V22L6 20L9 22L12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 15.69 15.69 13 19 13C19.7 13 20.37 13.12 21 13.34V3H3M17 7V9H7V7H17M15 11V13H7V11H15M19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5L19 17.6Z\";\nexport var mdiInvoiceTextRemoveOutline = \"M12 20L13.3 20.86C13.1 20.28 13 19.65 13 19C13 18.76 13 18.5 13.04 18.29L12 17.6L9 19.6L6 17.6L5 18.26V5H19V13C19.7 13 20.37 13.12 21 13.34V3H3V22L6 20L9 22L12 20M17 9V7H7V9H17M15 13V11H7V13H15M19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5L19 17.6Z\";\nexport var mdiInvoiceTextSend = \"M3 3V22L6 20L9 22L12 20V13H7V11H14.47L21 14.26V3H3M17 9H7V7H17V9M14 23V19L18 18L14 17V13L24 18L14 23Z\";\nexport var mdiInvoiceTextSendOutline = \"M24 18L14 23V19L18 18L14 17V13L24 18M21 14.26L19 13.26V5H5V18.26L6 17.6L9 19.6L12 17.6V20L9 22L6 20L3 22V3H21V14.26M17 7V9H7V7H17M12 13V11H7V13H12Z\";\nexport var mdiIobroker = \"M12 2C11.5 2 11 2.04 10.5 2.11V4.85C11 4.75 11.5 4.7 12 4.7C12.5 4.7 13 4.75 13.5 4.85V2.12C13 2.04 12.5 2 12 2M9.82 2.25C5.4 3.25 2.11 7.24 2.11 12C2.11 17.5 6.53 22 12 22C17.47 22 21.89 17.5 21.89 12C21.89 7.24 18.6 3.25 14.19 2.25V5.03C17.17 5.96 19.34 8.73 19.34 12C19.34 16 16.05 19.3 12 19.3C7.96 19.3 4.67 16 4.67 12C4.67 8.73 6.84 5.96 9.82 5.03M12 5.45C11.5 5.45 11 5.5 10.5 5.62V18.27C11 18.38 11.5 18.44 12 18.44C12.5 18.44 13 18.39 13.5 18.27V5.62C13 5.5 12.5 5.45 12 5.45Z\";\nexport var mdiIp = \"M16,11H14V9H16V11M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M10,7H8V17H10V7M12,17H14V13H16A2,2 0 0,0 18,11V9A2,2 0 0,0 16,7H12V17Z\";\nexport var mdiIpNetwork = \"M15,9H13V7H15V9M22,20V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7A2,2 0 0,1 5,15V5A2,2 0 0,1 7,3H17A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22M9,5H7V15H9V5M11,15H13V11H15A2,2 0 0,0 17,9V7A2,2 0 0,0 15,5H11V15Z\";\nexport var mdiIpNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M10,6H8V14H10V6M14,6H11V14H13V12H14A2,2 0 0,0 16,10V8A2,2 0 0,0 14,6M14,10H13V8H14V10Z\";\nexport var mdiIpOutline = \"M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9 7H7V17H9V7M15 7H11V17H13V13H15C16.1 13 17 12.1 17 11V9C17 7.9 16.1 7 15 7M15 11H13V9H15V11Z\";\nexport var mdiIpod = \"M7,2A2,2 0 0,0 5,4V20A2,2 0 0,0 7,22H17A2,2 0 0,0 19,20V4A2,2 0 0,0 17,2H7M7,4H17V10H7V4M12,12A4,4 0 0,1 16,16A4,4 0 0,1 12,20A4,4 0 0,1 8,16A4,4 0 0,1 12,12M12,14A2,2 0 0,0 10,16A2,2 0 0,0 12,18A2,2 0 0,0 14,16A2,2 0 0,0 12,14Z\";\nexport var mdiIron = \"M21 6C19.34 6 18 7.34 18 9V13C18 13.55 17.55 14 17 14V10C17 8.34 15.66 7 14 7H10C8.34 7 7 8.34 7 10H9C9 9.45 9.45 9 10 9H14C14.55 9 15 9.45 15 10V11H6C3.79 11 2 12.79 2 15V18H17V16C18.66 16 20 14.66 20 13V9C20 8.45 20.45 8 21 8H22V6H21Z\";\nexport var mdiIronBoard = \"M19 6H16V4.8C16 3.68 16.56 2.63 17.5 2C18.44 2.63 19 3.68 19 4.8V6M15.28 13.63L19.59 19C20.38 19.06 21 19.7 21 20.5C21 21.33 20.33 22 19.5 22S18 21.33 18 20.5C18 20.42 18 20.34 18 20.26L14 15.23L10 20.26C10 20.34 10 20.42 10 20.5C10 21.33 9.33 22 8.5 22S7 21.33 7 20.5C7 19.7 7.63 19.06 8.41 19L12.72 13.63L9 9H3V7H21V9H19L15.28 13.63M14 12L16.42 9H11.58L14 12Z\";\nexport var mdiIronOutline = \"M21 6C19.34 6 18 7.34 18 9V13C18 13.55 17.55 14 17 14V10C17 8.34 15.66 7 14 7H10C8.34 7 7 8.34 7 10H9C9 9.45 9.45 9 10 9H14C14.55 9 15 9.45 15 10V11H6C3.79 11 2 12.79 2 15V18H17V16C18.66 16 20 14.66 20 13V9C20 8.45 20.45 8 21 8H22V6H21M15 16H4V15C4 13.9 4.9 13 6 13H15V16Z\";\nexport var mdiIsland = \"M20 20C18.61 20 17.22 19.53 16 18.67C13.56 20.38 10.44 20.38 8 18.67C6.78 19.53 5.39 20 4 20H2V22H4C5.37 22 6.74 21.65 8 21C10.5 22.3 13.5 22.3 16 21C17.26 21.65 18.62 22 20 22H22V20H20M20.78 19H20C18.82 19 17.64 18.6 16.58 17.85L16 17.45L15.42 17.85C14.39 18.57 13.21 18.95 12 18.95C10.77 18.95 9.59 18.57 8.56 17.85L8 17.45L7.43 17.85C6.36 18.6 5.18 19 4 19H3.22C3.75 17.54 5.58 15 12 15C14 15 15 15.24 15 15.24C15.68 13.87 16.83 10.77 16 6.82L17.06 7.53C17.39 8.96 18 11.75 16.8 15.65C19.43 16.5 20.42 18 20.78 19M22 7.59C21.21 6.5 20 5.71 18.58 5.53C18.7 5.67 18.81 5.83 18.92 6C20.12 7.91 19.87 10.32 18.47 11.95C19.06 10.5 19 8.79 18.08 7.36C18 7.28 17.96 7.2 17.9 7.11C17.5 6.53 16.96 6.06 16.38 5.72C14.35 6.37 12.88 8.27 12.88 10.5C12.88 11.03 12.96 11.53 13.1 12C12.5 11.17 12.16 10.17 12.16 9.07C12.16 7.41 12.96 5.95 14.2 5.03C13.16 4.95 12.09 5.18 11.14 5.78C10.7 6.05 10.32 6.38 10 6.76C10.39 5.82 11.05 5 12 4.4C13.04 3.74 14.25 3.5 15.39 3.69C15.1 3.29 14.75 2.92 14.33 2.6C13.92 2.29 13.47 2.05 13 1.88C14 1.91 15.04 2.24 15.91 2.89C16.35 3.22 16.7 3.62 17 4.05C17.06 4.05 17.12 4.04 17.19 4.04C19.45 4.04 21.37 5.53 22 7.59Z\";\nexport var mdiIslandVariant = \"M15 15.26V13H11L15 9H12L15 6H13L16 3L19 6H17L20 9H17L21 13H17V15.76C19.13 16.47 20.68 17.67 21 19C19.3 18.87 17.62 18.54 16 18C14.79 18.61 13.37 19 12 19C10.71 19 9.17 18.58 8 18C6.37 18.54 4.72 18.87 3 19C3.54 16.77 7.4 15 12 15C13.05 15 14.06 15.09 15 15.26M8 19C8 19 5 20 2 20V22C5 22 8 21 8 21C8 21 10 22 12 22C14 22 16 21 16 21C16 21 19 22 22 22V20C19 20 16 19 16 19C16 19 14 20 12 20C10 20 8 19 8 19Z\";\nexport var mdiIvBag = \"M14 1H10C5 1 5 3 5 3V15C5 15 5 17 10 17V19H11V20C11 21.21 11.8 23 14 23H18V21H14C13.19 21 13 20.45 13 20V19H14V17C19 17 19 15 19 15V3C19 3 19 1 14 1M17 12H14V11H17V12M17 5H14V6H17V8H14V9H17V10H7V3.5C7.3 3.32 8.13 3 10 3H14C15.88 3 16.7 3.32 17 3.5V5Z\";\nexport var mdiJabber = \"M5.23,5.72C4.61,5.55 5,3.19 5,3.17C5,3.19 12.58,-0.71 16.7,5.73C20.8,12.15 15.86,14.86 13.97,16.06C12.08,17.27 12.73,19.72 12.73,20.13C12.73,20.53 12.16,20.97 12,20.41C11.88,19.84 11.25,16.55 13.33,15.16C17.13,12.61 17.9,10.1 16,6.42C14.2,3 8.28,3.41 7.03,4.08C5.78,4.75 5.86,5.89 5.23,5.72M9.33,12.63L9.11,12.16C9.23,10.28 7.63,10.39 8.08,13.33C8.21,14.16 7.47,13.8 7.45,13.73C6.89,11.44 7.42,10.22 8.55,10.45C9.62,10.68 9.53,11.83 9.53,11.83C9.56,11.78 11,10.17 11.5,10.92C12.58,12.5 10.53,14.47 10.41,14.63C10.28,14.78 10.14,15.05 9.92,14.84C9.7,14.64 9.72,14.5 9.89,14.27C12.77,10 9.59,12.22 9.33,12.63M6.5,15.33V15.31C6.5,15.31 8,18.13 10.61,17.08C11,16.92 11.17,17.14 11.2,17.27C11.27,17.53 11.13,17.64 10.86,17.73C7.86,18.72 5.89,16.63 5.63,16.13C5.39,15.68 5.5,15.38 5.75,15.22C6,15.06 6.5,15.33 6.5,15.33M6,17.5C6,17.5 7.67,19.5 10.8,19C11.09,18.94 11.2,19.13 11.25,19.38C11.3,19.63 11.22,19.84 10.92,19.94C10.63,20.03 7.08,20.5 5.13,17.72C5,17.56 5.3,17.36 5.47,17.36C5.64,17.36 6.03,17.5 6,17.5M5.95,19.39C7.53,21.5 10.33,21.55 11.28,20.88C11.5,20.73 11.7,21.05 11.56,21.19C9.64,23.16 5.67,21 5.27,20.33C5.09,20.05 5.13,19.66 5.31,19.45C5.5,19.25 5.93,19.38 5.95,19.39Z\";\nexport var mdiJeepney = \"M19,13V7H20V4H4V7H5V13H2C2,13.93 2.5,14.71 3.5,14.93V20A1,1 0 0,0 4.5,21H5.5A1,1 0 0,0 6.5,20V19H17.5V20A1,1 0 0,0 18.5,21H19.5A1,1 0 0,0 20.5,20V14.93C21.5,14.7 22,13.93 22,13H19M8,15A1.5,1.5 0 0,1 6.5,13.5A1.5,1.5 0 0,1 8,12A1.5,1.5 0 0,1 9.5,13.5A1.5,1.5 0 0,1 8,15M16,15A1.5,1.5 0 0,1 14.5,13.5A1.5,1.5 0 0,1 16,12A1.5,1.5 0 0,1 17.5,13.5A1.5,1.5 0 0,1 16,15M17.5,10.5C15.92,10.18 14.03,10 12,10C9.97,10 8,10.18 6.5,10.5V7H17.5V10.5Z\";\nexport var mdiJellyfish = \"M19.5,14.5C18.92,14.43 18.43,14.92 18.5,15.5C18.5,16.17 17.5,16.17 17.5,15.5V13.2L19.2,12.7C19.92,12.36 20.41,11.68 20.5,10.9C20.5,5.5 16.7,2 12,2C7.3,2 3.5,5.5 3.5,10.9C3.56,11.7 4.06,12.4 4.8,12.7L6.5,13.2V15.5A0.5,0.5 0 0,1 6,16A0.5,0.5 0 0,1 5.5,15.5C5.57,14.92 5.08,14.43 4.5,14.5C3.92,14.43 3.43,14.92 3.5,15.5C3.44,16.91 4.59,18.06 6,18C7.41,18.06 8.56,16.91 8.5,15.5V13.7H9.5V19.4C9.5,20.07 8.5,20.07 8.5,19.4C8.57,18.82 8.08,18.33 7.5,18.4C6.92,18.33 6.43,18.82 6.5,19.4C6.38,20.84 7.55,22.07 9,22C10.41,22.06 11.56,20.91 11.5,19.5V14H12.5V19.5C12.44,20.91 13.59,22.06 15,22C16.41,22.06 17.56,20.91 17.5,19.5C17.5,18.17 15.5,18.17 15.5,19.5C15.5,20.17 14.5,20.17 14.5,19.5V13.8H15.5V15.6C15.5,16.96 16.63,18.06 18,18C19.41,18.06 20.56,16.91 20.5,15.5C20.57,14.92 20.08,14.43 19.5,14.5M10.6,4.7C9.09,5.03 7.79,5.97 7,7.3C6.83,7.5 6.5,7.57 6.3,7.4C6.08,7.23 6.04,6.92 6.2,6.7C7.16,5.19 8.67,4.12 10.4,3.7C10.67,3.68 10.91,3.85 11,4.1C11.06,4.37 10.88,4.65 10.6,4.7Z\";\nexport var mdiJellyfishOutline = \"M12,4C15.8,4 18.5,6.8 18.5,10.8C14.31,12.39 9.69,12.39 5.5,10.8C5.5,6.8 8.2,4 12,4M12,2C7.3,2 3.5,5.5 3.5,10.9C3.56,11.7 4.06,12.4 4.8,12.7L6.5,13.2V15.5A0.5,0.5 0 0,1 6,16A0.5,0.5 0 0,1 5.5,15.5C5.57,14.92 5.08,14.43 4.5,14.5C3.92,14.43 3.43,14.92 3.5,15.5C3.44,16.86 4.54,18 5.9,18H6C7.41,18.06 8.56,16.91 8.5,15.5V13.7H9.5V19.4C9.5,20.07 8.5,20.07 8.5,19.4C8.57,18.82 8.08,18.33 7.5,18.4C6.92,18.33 6.43,18.82 6.5,19.4C6.39,20.8 7.5,22 8.9,22H9C10.41,22.06 11.56,20.91 11.5,19.5V14H12.5V19.5C12.44,20.91 13.59,22.06 15,22H15.1C16.47,22 17.56,20.86 17.5,19.5C17.5,18.17 15.5,18.17 15.5,19.5C15.5,20.17 14.5,20.17 14.5,19.5V13.8H15.5V15.6C15.5,16.96 16.63,18.06 18,18H18.1C19.47,18 20.56,16.86 20.5,15.5C20.5,14.17 18.5,14.17 18.5,15.5C18.5,16.17 17.5,16.17 17.5,15.5V13.2L19.2,12.7C19.92,12.36 20.41,11.68 20.5,10.9C20.5,5.5 16.7,2 12,2M12,6.2C10.53,6.6 9.24,7.53 8.4,8.8C8,9.33 7.2,8.73 7.6,8.2C8.6,6.73 10.09,5.67 11.8,5.2C12.08,5.14 12.35,5.32 12.4,5.6C12.5,5.9 12.3,6.1 12,6.2Z\";\nexport var mdiJira = \"M11.53,2C11.53,4.4 13.5,6.35 15.88,6.35H17.66V8.05C17.66,10.45 19.6,12.39 22,12.4V2.84A0.84,0.84 0 0,0 21.16,2H11.53M6.77,6.8C6.78,9.19 8.72,11.13 11.11,11.14H12.91V12.86C12.92,15.25 14.86,17.19 17.25,17.2V7.63C17.24,7.17 16.88,6.81 16.42,6.8H6.77M2,11.6C2,14 3.95,15.94 6.35,15.94H8.13V17.66C8.14,20.05 10.08,22 12.47,22V12.43A0.84,0.84 0 0,0 11.63,11.59L2,11.6Z\";\nexport var mdiJquery = \"M22.88,10.41C20.77,12.18 17.61,11.9 15.84,9.79C14.06,7.67 14.34,4.5 16.45,2.75L16.96,2.37C15.27,4.19 15.16,7.03 16.8,9C18.43,10.94 21.25,11.32 23.34,9.97L22.88,10.41M21.1,14.5C17.93,17.17 13.2,16.76 10.54,13.58C7.87,10.41 8.29,5.68 11.46,3L12.38,2.36C9.96,5.09 9.84,9.26 12.26,12.14C14.68,15 18.8,15.63 21.91,13.72L21.1,14.5M19.97,19.38C15.53,23.11 8.9,22.53 5.17,18.08C1.45,13.64 2.03,7 6.47,3.29L7.58,2.5C4.07,6.3 3.85,12.23 7.28,16.32C10.71,20.4 16.59,21.22 20.96,18.43L19.97,19.38Z\";\nexport var mdiJsfiddle = \"M17.34 13.7C17.34 15 16.23 16.04 14.86 16.04C13.65 16.04 12.64 15 11.75 14.04L11.5 13.79C11.5 13.76 11.47 13.73 11.45 13.7C10.74 12.96 9.96 12.22 9.21 12.22C8.32 12.22 7.6 12.88 7.6 13.69C7.6 14.5 8.32 15.17 9.21 15.17C9.97 15.17 10.35 14.75 10.63 14.45L10.7 14.37C10.86 14.2 11.14 14.19 11.31 14.35C11.5 14.5 11.5 14.79 11.33 14.96L11.27 15.03C10.94 15.38 10.35 16.03 9.21 16.03C7.84 16.03 6.73 15 6.73 13.69C6.73 12.4 7.84 11.35 9.21 11.35C10.42 11.35 11.43 12.41 12.32 13.35L12.56 13.6C12.58 13.63 12.6 13.66 12.62 13.69C13.33 14.43 14.11 15.17 14.86 15.17C15.75 15.17 16.47 14.5 16.47 13.69C16.47 12.88 15.75 12.22 14.86 12.22C14.11 12.22 13.72 12.64 13.44 12.94L13.37 13C13.21 13.19 12.94 13.2 12.76 13.04C12.59 12.87 12.58 12.6 12.74 12.42L12.81 12.36C13.13 12 13.73 11.36 14.86 11.36C16.23 11.36 17.34 12.4 17.34 13.7M22 14.85C22 15.96 21.57 17 20.78 17.79C20 18.57 18.95 19 17.84 19H6.28C3.96 18.96 2.07 17.06 2.07 14.75C2.07 13.37 2.76 12.07 3.89 11.28C3.85 11.09 3.83 10.9 3.83 10.7C3.83 9.03 5.2 7.67 6.88 7.67C7.39 7.67 7.88 7.79 8.32 8.03C9.41 6.17 11.43 5 13.6 5C16.97 5 19.7 7.72 19.7 11.07L19.7 11.14C21.11 11.84 22 13.27 22 14.85M21.13 14.85C21.13 13.5 20.33 12.32 19.09 11.81C18.92 11.74 18.81 11.57 18.82 11.38L18.83 11.29C18.83 11.22 18.84 11.14 18.84 11.07C18.84 8.2 16.5 5.87 13.6 5.87C11.6 5.87 9.74 7.03 8.87 8.83C8.82 8.95 8.71 9.04 8.58 9.07C8.46 9.1 8.32 9.07 8.22 9C7.83 8.69 7.37 8.53 6.88 8.53C5.68 8.53 4.7 9.5 4.7 10.7C4.7 10.92 4.73 11.14 4.8 11.34C4.86 11.54 4.78 11.75 4.61 11.85C3.56 12.47 2.94 13.55 2.94 14.75C2.94 16.59 4.44 18.1 6.29 18.13H17.83C18.72 18.13 19.54 17.79 20.16 17.17C20.79 16.55 21.13 15.73 21.13 14.85Z\";\nexport var mdiJumpRope = \"M21 4.5V10.5C21 11.2 20.5 11.9 19.8 12V17.3C19.8 18.6 19 21.1 16 21.1H14.5C14.9 20.7 15.3 20.2 15.5 19.6H16C18.1 19.6 18.2 17.7 18.2 17.4V12C17.5 11.9 17 11.3 17 10.5V4.5C17 3.7 17.7 3 18.5 3H19.5C20.3 3 21 3.7 21 4.5M14.8 18.2C14.8 19.7 13.6 21 12 21H8C5 21 4.2 18.5 4.2 17.2V12C3.5 11.9 3 11.2 3 10.5V4.5C3 3.7 3.7 3 4.5 3H5.5C6.3 3 7 3.7 7 4.5V10.5C7 11.2 6.5 11.9 5.8 12V17.3C5.8 17.7 5.9 19.5 8 19.5H9.6C9.4 19.1 9.3 18.7 9.3 18.3V8.3C9.3 6.8 10.5 5.5 12.1 5.5S14.8 6.7 14.8 8.3M13.2 8.2C13.2 7.6 12.7 7 12 7S10.8 7.6 10.8 8.2V18.2C10.8 18.9 11.4 19.4 12 19.4S13.2 18.8 13.2 18.2V8.2Z\";\nexport var mdiKabaddi = \"M11.2 10.6C12.2 11.6 13.4 12.1 14.8 12.1L14.9 14.2C13 14.2 11.3 13.5 9.8 12.1L9.1 11.4L6.8 13.8L9 15.9V21.9H7V16.7L5.7 15.5V17.7L1.5 22L.1 20.6L3.7 17L2.5 13.5C2.3 12.9 2.6 12.4 3.1 12L6.4 8.7C6.8 8.2 7.3 8 7.8 8C8.3 8 8.6 8.1 8.9 8.3L11.2 10.6M24 11.9H22V8.5L20.2 7.8L21.1 12.2L22.1 17.4L23 21.8H20.9L19.1 13.8L17 15.8V21.8H15V14.3L17.1 12.3L16.5 9.3C15.9 9.9 15.2 10.5 14.4 10.9C13.5 10.8 12.6 10.4 11.9 9.7C13.5 9.4 14.6 8.6 15.3 7.4L16.3 5.8C16.9 4.8 17.8 4.5 18.9 5L24 7.2V11.9M11.4 4.4C12.5 4.4 13.4 5.3 13.4 6.4C13.4 7.5 12.5 8.4 11.4 8.4C10.3 8.4 9.4 7.5 9.4 6.4C9.4 5.3 10.3 4.4 11.4 4.4M16.5 .3C17.6 .3 18.5 1.2 18.5 2.3C18.5 3.4 17.6 4.3 16.5 4.3C15.4 4.3 14.5 3.4 14.5 2.3C14.5 1.2 15.4 .3 16.5 .3Z\";\nexport var mdiKangaroo = \"M19.8 6.59L19 7.97V10.04L17.69 11.61L17.31 13.25L16 14L15.5 13.12L16.44 12.59L16.7 11.45L16.7 11.45L16.77 11.15L16.77 11.15V11.15L17.47 10.31C17.65 10.1 17.62 9.78 17.41 9.61C17.2 9.43 16.88 9.46 16.7 9.67L15.85 10.69L15.56 11.93C15.38 11.96 15.2 12 15 12C14.31 12 13.68 11.76 13.23 11.4C13.15 12.7 12.73 13.81 12.13 14.43L10.5 16.19L9.96 19.79L8.07 21L7.53 20.17L9.04 19.19L9.5 15.92L9.5 15.91L10 14.54C9.47 14.08 9.08 13.28 8.88 12.3L8.71 12.61C8.35 13.25 8 13.9 7.56 14.56C7.11 15.2 6.66 15.9 5.78 16.44C5.34 16.72 4.7 16.84 4.17 16.73C3.61 16.61 3.14 16.26 2.86 15.89C2.31 15.13 2.15 14.35 2 13.62L2.97 13.36C3.2 14 3.5 14.65 3.88 15C4.26 15.33 4.57 15.26 4.84 15C5.16 14.73 5.47 14.15 5.73 13.55C6 12.94 6.22 12.28 6.45 11.6C6.93 10.24 7.39 8.82 8.2 7.36C8.62 6.64 9.13 5.89 9.92 5.22C10.7 4.55 11.73 4 13 4S15.7 5.22 16.58 6.34C17 6.89 17.87 6.82 18.22 6.21L19.14 4.63C19 4.58 18.89 4.5 18.79 4.4C18.4 4 18.4 3.38 18.79 3L19.93 4.13C19.96 4.13 20 4.11 20 4.11C20.41 4.11 20.75 4.35 20.91 4.69L22 7L21 7.5L19.8 6.59Z\";\nexport var mdiKarate = \"M19.8 2L11.6 8.7L10.39 7.66L14 5.58L9.41 1L8 2.41L10.74 5.15L5 8.46L3.81 12.75L6.27 17L8 16L5.97 12.5L6.32 11.18L9.5 13L10 22H12L12.5 12L21 3.4L19.8 2M5 3C6.11 3 7 3.9 7 5S6.11 7 5 7 3 6.11 3 5 3.9 3 5 3Z\";\nexport var mdiKayaking = \"M22 23V21C20.58 21.05 19.21 20.9 18 20C16.23 21.25 13.77 21.25 12 20C10.23 21.25 7.77 21.25 6 20C4.79 20.9 3.42 21.05 2 21V23C3.38 23.05 4.79 22.94 6 22.25C7.84 23.25 10.16 23.25 12 22.25C13.84 23.25 16.16 23.25 18 22.25C19.21 22.94 20.62 23.05 22 23M23.39 17.21C21.13 16.29 18.3 15.56 15.66 15.22L19.36 6.88L20.67 6.41L22 3.41L18.8 2L17.5 4.95L18 6.27L16.31 9.97L13.5 11.47L11 10.2C10.95 10.14 10.86 10.09 10.74 10.06C9.82 9.73 8.77 10.32 8.5 11.23L7.13 15.41C6.59 15.18 1.25 16.97 .915 17.12L0 17.47C1.33 18.04 2.2 18.39 3.94 18.88C4.75 18.63 5.44 18.09 6 17.47C7.5 19.42 10.5 19.42 12 17.47C13.5 19.42 16.5 19.42 18 17.47C18.56 18.09 19.25 18.63 20.06 18.88L22.95 17.91L24 17.47L23.39 17.21M14.06 15.08C13.07 15 12.06 15 11.06 15L11.77 12.83L13.5 13.77L15 12.92L14.06 15.08M14 7.5C14 8.61 13.11 9.5 12 9.5S10 8.61 10 7.5 10.9 5.5 12 5.5 14 6.4 14 7.5Z\";\nexport var mdiKeg = \"M5,22V20H6V16H5V14H6V11H5V7H11V3H10V2H11L13,2H14V3H13V7H19V11H18V14H19V16H18V20H19V22H5M17,9A1,1 0 0,0 16,8H14A1,1 0 0,0 13,9A1,1 0 0,0 14,10H16A1,1 0 0,0 17,9Z\";\nexport var mdiKettle = \"M12.5,3C7.81,3 4,5.69 4,9V9C4,10.19 4.5,11.34 5.44,12.33C4.53,13.5 4,14.96 4,16.5C4,17.64 4,18.83 4,20C4,21.11 4.89,22 6,22H19C20.11,22 21,21.11 21,20C21,18.85 21,17.61 21,16.5C21,15.28 20.66,14.07 20,13L22,11L19,8L16.9,10.1C15.58,9.38 14.05,9 12.5,9C10.65,9 8.95,9.53 7.55,10.41C7.19,9.97 7,9.5 7,9C7,7.21 9.46,5.75 12.5,5.75V5.75C13.93,5.75 15.3,6.08 16.33,6.67L18.35,4.65C16.77,3.59 14.68,3 12.5,3M12.5,11C12.84,11 13.17,11.04 13.5,11.09C10.39,11.57 8,14.25 8,17.5V20H6V17.5A6.5,6.5 0 0,1 12.5,11Z\";\nexport var mdiKettleAlert = \"M9.5 3C4.8 3 1 5.7 1 9C1 10.2 1.5 11.3 2.4 12.3C1.5 13.5 1 15 1 16.5V20C1 21.1 1.9 22 3 22H16C17.1 22 18 21.1 18 20V16.5C18 15.3 17.7 14.1 17 13L19 11L16 8L13.9 10.1C12.6 9.4 11.1 9 9.5 9C7.7 9 5.9 9.5 4.6 10.4C4.2 10 4 9.5 4 9C4 7.2 6.5 5.8 9.5 5.8C10.9 5.8 12.3 6.1 13.3 6.7L15.3 4.7C13.8 3.6 11.7 3 9.5 3M9.5 11C9.8 11 10.2 11 10.5 11.1C7.4 11.6 5 14.2 5 17.5V20H3V17.5C3 13.9 5.9 11 9.5 11M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiKettleAlertOutline = \"M9.5 3C4.8 3 1 5.7 1 9C1 10.2 1.5 11.3 2.4 12.3C1.5 13.5 1 15 1 16.5V20C1 21.1 1.9 22 3 22H16C17.1 22 18 21.1 18 20V16.5C18 15.3 17.7 14.1 17 13L19 11L16 8L13.9 10.1C11 8.5 7.4 8.6 4.6 10.4C4.2 10 4 9.5 4 9C4 7.2 6.5 5.7 9.5 5.7C10.9 5.7 12.3 6.1 13.3 6.7L15.3 4.7C13.6 3.5 11.6 3 9.5 3M9.5 11C13 11 16 14 16 16.5V20H3V16.5C3 14 6 11 9.5 11M10 12.5C7 12.5 5 14 5 17V18H7V17C7 16 7 13.5 10 12.5M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiKettleOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.7 6.6C4.3 7.3 4 8.1 4 9C4 10.2 4.5 11.3 5.4 12.3C4.5 13.5 4 15 4 16.5V20C4 21.1 4.9 22 6 22H19C19.3 22 19.6 21.9 19.9 21.8L20.8 22.7L22.1 21.5M8.2 10.1L7.6 10.4C7.2 10 7 9.5 7 9V8.9L8.2 10.1M8 17.5V20H6V17.5C6 14.9 7.5 12.7 9.7 11.6L10.5 12.4C9 13.6 8 15.4 8 17.5M16.9 10.1L19 8L22 11L20 13C20.7 14.1 21 15.3 21 16.5V17.8L12.2 9H12.5C14 9 15.6 9.4 16.9 10.1M9.5 6.3L7.4 4.2C8.8 3.5 10.6 3 12.5 3C14.7 3 16.8 3.6 18.3 4.7L16.3 6.7C15.3 6.1 13.9 5.8 12.5 5.8C11.4 5.8 10.4 5.9 9.5 6.3Z\";\nexport var mdiKettleOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L4.7 6.6C4.3 7.3 4 8.1 4 9C4 10.2 4.5 11.3 5.4 12.3C4.5 13.5 4 15 4 16.5V20C4 21.1 4.9 22 6 22H19C19.3 22 19.6 21.9 19.9 21.8L20.8 22.7L22.1 21.5M8.2 10.1L7.6 10.4C7.2 10 7 9.5 7 9V8.9L8.2 10.1M6 20V16.5C6 14.7 7.6 12.6 9.7 11.6L10.9 12.8C9.1 13.4 8 14.8 8 17V18H10V17C10 16.2 10 14.5 11.4 13.3L18.1 20H6M16.9 10.1L19 8L22 11L20 13C20.7 14.1 21 15.3 21 16.5V17.8L18.9 15.7C18.5 13.9 16.8 12.1 14.6 11.4L12.2 9C13.8 8.9 15.4 9.3 16.9 10.1M9.5 6.3L7.4 4.2C8.8 3.5 10.6 3 12.5 3C14.6 3 16.6 3.5 18.3 4.7L16.3 6.7C15.3 6.1 13.9 5.7 12.5 5.7C11.4 5.7 10.3 5.9 9.5 6.3Z\";\nexport var mdiKettleOutline = \"M12.5 3C7.8 3 4 5.7 4 9C4 10.2 4.5 11.3 5.4 12.3A6.8 6.8 0 0 0 4 16.5V20C4 21.1 4.9 22 6 22H19A2 2 0 0 0 21 20V16.5C21 15.3 20.7 14.1 20 13L22 11L19 8L16.9 10.1A9.2 9.2 0 0 0 7.6 10.4A2 2 0 0 1 7 9C7 7.2 9.5 5.7 12.5 5.7C13.9 5.7 15.3 6.1 16.3 6.7L18.3 4.7A10 10 0 0 0 12.5 3M12.5 11C16 11 19 14 19 16.5V20H6V16.5C6 14 9 11 12.5 11M13 12.5C10 12.5 8 14 8 17V18H10V17C10 16 10 13.5 13 12.5Z\";\nexport var mdiKettlePourOver = \"M10 4C9.4 4 9 4.4 9 5V6H14V5C14 4.4 13.6 4 13 4H10M3 7L4.1 14.1C4.2 14.8 4.5 15.5 5.1 16.1C5.5 16.6 6.2 16.9 7 17C7 17.6 7.4 18 8 18H16C16.6 18 17 17.6 17 17L15 11H17L20.3 16L22 15L18.7 10L20 9.2L19 7.5L16.4 9H15V7H8V11L7.2 16C6.5 15.9 6.1 15.7 5.8 15.4C5.4 15 5.2 14.5 5.1 13.9L4 7H3M4 19V21H20V19H4Z\";\nexport var mdiKettleSteam = \"M19 11L16 8L13.9 10.1C12.58 9.38 11.05 9 9.5 9C7.65 9 5.95 9.53 4.55 10.41C4.19 9.97 4 9.5 4 9C4 7.21 6.46 5.75 9.5 5.75C10.93 5.75 12.3 6.08 13.33 6.67L15.35 4.65C13.77 3.59 11.68 3 9.5 3C4.81 3 1 5.69 1 9C1 10.19 1.5 11.34 2.44 12.33C1.53 13.5 1 14.96 1 16.5V20C1 21.11 1.89 22 3 22H16C17.11 22 18 21.11 18 20V16.5C18 15.28 17.66 14.07 17 13L19 11M5 17.5V20H3V17.5C3 13.91 5.91 11 9.5 11C9.84 11 10.17 11.04 10.5 11.09C7.39 11.57 5 14.25 5 17.5M23 7.3C23 8.93 21.91 10.6 20.38 10.97L19.71 10.29L19 9.6H19.75C20.75 9.6 21.5 8.22 21.5 7.2C21.5 6.18 20.65 5.14 19.65 5.14V3.64C21.5 3.64 23 5.45 23 7.3M17.65 6.73C17.03 6.12 16.65 5.28 16.65 4.35C16.65 2.5 18.15 1 20 1V2.5C19 2.5 18.15 3.33 18.15 4.35C18.15 5.37 19 6.2 20 6.2V7.7C19.18 7.7 18.42 7.95 17.79 8.38L16.72 7.31C17 7.09 17.32 6.89 17.65 6.73Z\";\nexport var mdiKettleSteamOutline = \"M9.5 3C4.8 3 1 5.7 1 9C1 10.2 1.5 11.3 2.4 12.3C1.5 13.5 .985 15 1 16.5V20C1 21.1 1.9 22 3 22H16C17.11 22 18 21.11 18 20V16.5C18 15.3 17.7 14.1 17 13L19 11L16 8L13.9 10.1C10.97 8.5 7.42 8.63 4.6 10.4C4.22 10.03 4 9.53 4 9C4 7.2 6.5 5.7 9.5 5.7C10.9 5.7 12.3 6.1 13.3 6.7L15.3 4.7C13.59 3.55 11.56 2.96 9.5 3M9.5 11C13 11 16 14 16 16.5V20H3V16.5C3 14 6 11 9.5 11M10 12.5C7 12.5 5 14 5 17V18H7V17C7 16 7 13.5 10 12.5M23 7.3C23 8.93 21.91 10.6 20.38 10.97L19.71 10.29L19 9.6H19.75C20.75 9.6 21.5 8.22 21.5 7.2C21.5 6.18 20.65 5.14 19.65 5.14V3.64C21.5 3.64 23 5.45 23 7.3M17.65 6.73C17.03 6.12 16.65 5.28 16.65 4.35C16.65 2.5 18.15 1 20 1V2.5C19 2.5 18.15 3.33 18.15 4.35C18.15 5.37 19 6.2 20 6.2V7.7C19.18 7.7 18.42 7.95 17.79 8.38L16.72 7.31C17 7.09 17.32 6.89 17.65 6.73Z\";\nexport var mdiKettlebell = \"M16.2 10.7L16.8 8.3C16.9 8 17.3 6.6 16.5 5.4C15.9 4.5 14.7 4 13 4H11C9.3 4 8.1 4.5 7.5 5.4C6.7 6.6 7.1 7.9 7.2 8.3L7.8 10.7C6.7 11.8 6 13.3 6 15C6 17.1 7.1 18.9 8.7 20H15.3C16.9 18.9 18 17.1 18 15C18 13.3 17.3 11.8 16.2 10.7M9.6 9.5L9.1 7.8V7.7C9.1 7.7 8.9 7 9.2 6.6C9.4 6.2 10 6 11 6H13C13.9 6 14.6 6.2 14.9 6.5C15.2 6.9 15 7.6 15 7.6L14.5 9.5C13.7 9.2 12.9 9 12 9C11.1 9 10.3 9.2 9.6 9.5Z\";\nexport var mdiKey = \"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\";\nexport var mdiKeyAlert = \"M4 6.5C4 4 6 2 8.5 2S13 4 13 6.5C13 8.46 11.75 10.13 10 10.74V15H13V18H10V22H7V10.74C5.25 10.13 4 8.46 4 6.5M7 6.5C7 7.33 7.67 8 8.5 8S10 7.33 10 6.5 9.33 5 8.5 5 7 5.67 7 6.5M18 7H20V13H18M18 17H20V15H18\";\nexport var mdiKeyAlertOutline = \"M16 22H12V24H6V13.32C3.58 12.17 2 9.72 2 7C2 3.14 5.14 0 9 0C12.86 0 16 3.14 16 7C16 9.72 14.42 12.18 12 13.32V16H16V22M14 18H10V11.94L10.67 11.71C12.66 11 14 9.11 14 7C14 4.24 11.76 2 9 2S4 4.24 4 7C4 9.11 5.34 11 7.33 11.71L8 11.94V22H10V20H14V18M12 7C12 8.66 10.66 10 9 10S6 8.66 6 7 7.34 4 9 4 12 5.34 12 7M9 8C9.55 8 10 7.55 10 7S9.55 6 9 6 8 6.45 8 7 8.45 8 9 8M20 7H22V13H20M20 17H22V15H20\";\nexport var mdiKeyArrowRight = \"M11.7 6C11.1 4.2 9.4 3 7.5 3C5 3 3 5 3 7.5S5 12 7.5 12C9.5 12 11.1 10.8 11.7 9H15V12H18V9H21V6H11.7M7.5 9C6.7 9 6 8.3 6 7.5S6.7 6 7.5 6 9 6.7 9 7.5 8.3 9 7.5 9M13 21V19H8V17H13V15L16 18L13 21\";\nexport var mdiKeyChain = \"M12.67 13.67C12.2 14.13 11.63 14.5 11 14.73V23H8V21H5V18H8V14.72C6.26 14.1 5 12.46 5 10.5C5 8 7 6 9.5 6C9.54 6 9.57 6 9.6 6C9.13 6.95 8.92 8 9.03 9.08C8.44 9.28 8 9.84 8 10.5C8 11.33 8.67 12 9.5 12C9.73 12 9.95 11.94 10.15 11.85C10.79 12.69 11.67 13.32 12.67 13.67M20.73 19.44L17.97 20.6L17.19 18.76L14.43 19.93L13.26 17.16L16.03 16L14.76 13C12.91 13.08 11.11 12.05 10.35 10.25C9.39 7.96 10.47 5.32 12.76 4.35C13 4.25 13.26 4.18 13.5 4.12C12.84 2.87 11.5 2 10 2C7.79 2 6 3.79 6 6C6 6.08 6 6.16 6 6.24C5.7 6.5 5.4 6.82 5.15 7.15C5.06 6.78 5 6.4 5 6C5 3.24 7.24 1 10 1S15 3.24 15 6C15 7.42 14.4 8.67 13.45 9.57C13.87 10 14.5 10.13 15.08 9.88C15.85 9.56 16.2 8.68 15.88 7.92C15.85 7.83 15.8 7.74 15.74 7.66C15.9 7.13 16 6.58 16 6C16 5.37 15.9 4.76 15.72 4.19C17 4.55 18.1 5.44 18.65 6.76C19.41 8.56 18.89 10.57 17.5 11.81L20.73 19.44M13 8.6C13.37 8.19 13.65 7.71 13.82 7.18C13.28 7.45 12.97 8 13 8.6Z\";\nexport var mdiKeyChainVariant = \"M12.66 13.67C12.32 14 11.93 14.29 11.5 14.5V21L9.5 23L7.5 21L9.5 19.29L8 18L9.5 16.71L7.5 15V14.5C6 13.77 5 12.26 5 10.5C5 8 7 6 9.5 6C9.54 6 9.58 6 9.61 6C9.59 6.07 9.54 6.12 9.5 6.18C9.23 6.79 9.08 7.43 9.03 8.08C8.43 8.28 8 8.84 8 9.5C8 10.33 8.67 11 9.5 11C9.53 11 9.57 11 9.6 11C10.24 12.25 11.34 13.2 12.66 13.67M16 6C16 5.37 15.9 4.75 15.72 4.18C17.06 4.56 18.21 5.55 18.73 6.96C19.33 8.62 18.89 10.39 17.75 11.59L20 17.68L18.78 20.25L16.22 19.05L17.5 16.76L15.66 16.06L16.63 14.34L14.16 13.41L14 12.95C12.36 12.77 10.88 11.7 10.27 10.04C9.42 7.71 10.63 5.12 12.96 4.27C13.14 4.21 13.33 4.17 13.5 4.13C12.84 2.87 11.53 2 10 2C7.79 2 6 3.79 6 6C6 6.09 6 6.17 6.03 6.26C5.7 6.53 5.4 6.82 5.15 7.15C5.06 6.78 5 6.4 5 6C5 3.24 7.24 1 10 1S15 3.24 15 6C15 7.16 14.6 8.21 13.94 9.06C16.08 8.88 16 6 16 6M12.81 8.1C12.87 8.27 12.96 8.41 13.06 8.54C13.62 7.88 13.97 7.04 14 6.11C13.89 6.13 13.8 6.15 13.7 6.18C12.92 6.47 12.5 7.33 12.81 8.1Z\";\nexport var mdiKeyChange = \"M7.5 2C9.5 2 11.1 3.2 11.7 5H21V8H18V11H15V8H11.7C11.1 9.8 9.4 11 7.5 11C5 11 3 9 3 6.5S5 2 7.5 2M7.5 5C6.7 5 6 5.7 6 6.5S6.7 8 7.5 8 9 7.3 9 6.5 8.3 5 7.5 5M7.5 13C9.5 13 11.1 14.2 11.7 16H21V19H20V22H18V19H16V22H13V19H11.7C11.1 20.8 9.4 22 7.5 22C5 22 3 20 3 17.5S5 13 7.5 13M7.5 16C6.7 16 6 16.7 6 17.5S6.7 19 7.5 19 9 18.3 9 17.5 8.3 16 7.5 16Z\";\nexport var mdiKeyLink = \"M7.5 3C5 3 3 5 3 7.5S5 12 7.5 12C9.5 12 11.1 10.8 11.7 9H15V12H18V9H21V6H11.7C11.1 4.2 9.5 3 7.5 3M7.5 6C8.3 6 9 6.7 9 7.5S8.3 9 7.5 9 6 8.3 6 7.5 6.7 6 7.5 6M10 14C8.4 14 6 15.1 6 18C6 20.9 8.4 22 10 22H11V20H10C9.7 20 8 19.9 8 18C8 16.2 9.5 16 10 16H11V14M13 14V16H14C14.3 16 16 16.1 16 18C16 19.8 14.5 20 14 20H13V22H14C15.6 22 18 20.9 18 18C18 15.1 15.6 14 14 14M9 17V19H15V17H9Z\";\nexport var mdiKeyMinus = \"M7.5 3C9.5 3 11.1 4.2 11.7 6H21V9H18V12H15V9H11.7C11.1 10.8 9.4 12 7.5 12C5 12 3 10 3 7.5S5 3 7.5 3M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M8 17H16V19H8V17Z\";\nexport var mdiKeyOutline = \"M21 18H15V15H13.3C12.2 17.4 9.7 19 7 19C3.1 19 0 15.9 0 12S3.1 5 7 5C9.7 5 12.2 6.6 13.3 9H24V15H21V18M17 16H19V13H22V11H11.9L11.7 10.3C11 8.3 9.1 7 7 7C4.2 7 2 9.2 2 12S4.2 17 7 17C9.1 17 11 15.7 11.7 13.7L11.9 13H17V16M7 15C5.3 15 4 13.7 4 12S5.3 9 7 9 10 10.3 10 12 8.7 15 7 15M7 11C6.4 11 6 11.4 6 12S6.4 13 7 13 8 12.6 8 12 7.6 11 7 11Z\";\nexport var mdiKeyPlus = \"M7.5 3C9.5 3 11.1 4.2 11.7 6H21V9H18V12H15V9H11.7C11.1 10.8 9.4 12 7.5 12C5 12 3 10 3 7.5S5 3 7.5 3M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M8 17H11V14H13V17H16V19H13V22H11V19H8V17Z\";\nexport var mdiKeyRemove = \"M7.5 3C9.5 3 11.1 4.2 11.7 6H21V9H18V12H15V9H11.7C11.1 10.8 9.4 12 7.5 12C5 12 3 10 3 7.5S5 3 7.5 3M7.5 6C6.7 6 6 6.7 6 7.5S6.7 9 7.5 9 9 8.3 9 7.5 8.3 6 7.5 6M14.6 14L16 15.4L13.4 18L16 20.6L14.6 22L12 19.4L9.4 22L8 20.6L10.6 18L8 15.4L9.4 14L12 16.6L14.6 14Z\";\nexport var mdiKeyStar = \"M7.5 3C5 3 3 5 3 7.5S5 12 7.5 12C9.5 12 11.1 10.8 11.7 9H15V12H18V9H21V6H11.7C11.1 4.2 9.5 3 7.5 3M7.5 6C8.3 6 9 6.7 9 7.5S8.3 9 7.5 9 6 8.3 6 7.5 6.7 6 7.5 6M12 14L10.9 16.6L8 16.9L10.2 18.8L9.5 21.6L12 20.1L14.4 21.6L13.8 18.8L16 16.9L13.1 16.7L12 14Z\";\nexport var mdiKeyVariant = \"M22,18V22H18V19H15V16H12L9.74,13.74C9.19,13.91 8.61,14 8,14A6,6 0 0,1 2,8A6,6 0 0,1 8,2A6,6 0 0,1 14,8C14,8.61 13.91,9.19 13.74,9.74L22,18M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5Z\";\nexport var mdiKeyWireless = \"M4.9 5.9L6.3 7.3C9.4 4.2 14.5 4.2 17.6 7.3L19 5.9C15.2 2 8.8 2 4.9 5.9M7.8 8.8L9.2 10.2C10.8 8.6 13.3 8.6 14.9 10.2L16.3 8.8C13.9 6.4 10.1 6.4 7.8 8.8M11.8 15C11 12.7 8.4 11.4 6.1 12.3S2.4 15.7 3.3 18 6.7 21.6 9 20.7C10.3 20.2 11.3 19.2 11.7 18H15V21H18V18H21V15M7.5 18C6.7 18 6 17.3 6 16.5C6 15.7 6.7 15 7.5 15S9 15.7 9 16.5C9 17.3 8.3 18 7.5 18Z\";\nexport var mdiKeyboard = \"M19,10H17V8H19M19,13H17V11H19M16,10H14V8H16M16,13H14V11H16M16,17H8V15H16M7,10H5V8H7M7,13H5V11H7M8,11H10V13H8M8,8H10V10H8M11,11H13V13H11M11,8H13V10H11M20,5H4C2.89,5 2,5.89 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7C22,5.89 21.1,5 20,5Z\";\nexport var mdiKeyboardBackspace = \"M21,11H6.83L10.41,7.41L9,6L3,12L9,18L10.41,16.58L6.83,13H21V11Z\";\nexport var mdiKeyboardCaps = \"M6,18H18V16H6M12,8.41L16.59,13L18,11.58L12,5.58L6,11.58L7.41,13L12,8.41Z\";\nexport var mdiKeyboardClose = \"M12,23L16,19H8M19,8H17V6H19M19,11H17V9H19M16,8H14V6H16M16,11H14V9H16M16,15H8V13H16M7,8H5V6H7M7,11H5V9H7M8,9H10V11H8M8,6H10V8H8M11,9H13V11H11M11,6H13V8H11M20,3H4C2.89,3 2,3.89 2,5V15A2,2 0 0,0 4,17H20A2,2 0 0,0 22,15V5C22,3.89 21.1,3 20,3Z\";\nexport var mdiKeyboardCloseOutline = \"M12 23L16 19H8M4 3C2.9 3 2 3.9 2 5V15C2 16.1 2.9 17 4 17H20C21.1 17 22 16.1 22 15V5C22 3.9 21.1 3 20 3H4M4 5H20V15H4V5M5 6V8H7V6H5M8 6V8H10V6H8M11 6V8H13V6H11M14 6V8H16V6H14M17 6V8H19V6H17M5 9V11H7V9H5M8 9V11H10V9H8M11 9V11H13V9H11M14 9V11H16V9H14M17 9V11H19V9H17M8 12V14H16V12H8Z\";\nexport var mdiKeyboardEsc = \"M1 7H7V9H3V11H7V13H3V15H7V17H1V7M11 7H15V9H11V11H13C14.11 11 15 11.9 15 13V15C15 16.11 14.11 17 13 17H9V15H13V13H11C9.9 13 9 12.11 9 11V9C9 7.9 9.9 7 11 7M19 7H21C22.11 7 23 7.9 23 9V10H21V9H19V15H21V14H23V15C23 16.11 22.11 17 21 17H19C17.9 17 17 16.11 17 15V9C17 7.9 17.9 7 19 7Z\";\nexport var mdiKeyboardF1 = \"M6 7H12V9H8V11H11V13H8V17H6V7M14 7H18V17H16V9H14V7Z\";\nexport var mdiKeyboardF10 = \"M2 7H8V9H4V11H7V13H4V17H2V7M10 7H14V17H12V9H10V7M18 7H20C21.11 7 22 7.9 22 9V15C22 16.11 21.11 17 20 17H18C16.9 17 16 16.11 16 15V9C16 7.9 16.9 7 18 7M18 9V15H20V9H18Z\";\nexport var mdiKeyboardF11 = \"M3 7H9V9H5V11H8V13H5V17H3V7M11 7H15V17H13V9H11V7M17 7H21V17H19V9H17V7Z\";\nexport var mdiKeyboardF12 = \"M2 7H8V9H4V11H7V13H4V17H2V7M16 7H20C21.11 7 22 7.9 22 9V11C22 12.11 21.11 13 20 13H18V15H22V17H16V13C16 11.9 16.9 11 18 11H20V9H16V7M10 7H14V17H12V9H10V7Z\";\nexport var mdiKeyboardF2 = \"M5 7H11V9H7V11H10V13H7V17H5V7M13 7H17C18.11 7 19 7.9 19 9V11C19 12.11 18.11 13 17 13H15V15H19V17H13V13C13 11.9 13.9 11 15 11H17V9H13V7Z\";\nexport var mdiKeyboardF3 = \"M5 7H11V9H7V11H10V13H7V17H5V7M19 15C19 16.11 18.11 17 17 17H13V15H17V13H15V11H17V9H13V7H17C18.1 7 19 7.89 19 9V10.5C19 11.33 18.33 12 17.5 12C18.33 12 19 12.67 19 13.5V15Z\";\nexport var mdiKeyboardF4 = \"M5 7H11V9H7V11H10V13H7V17H5V7M13 7H15V11H17V7H19V17H17V13H13V7Z\";\nexport var mdiKeyboardF5 = \"M5 7H11V9H7V11H10V13H7V17H5V7M13 7H19V9H15V11H17C18.11 11 19 11.9 19 13V15C19 16.11 18.11 17 17 17H13V15H17V13H13V7Z\";\nexport var mdiKeyboardF6 = \"M5 7H11V9H7V11H10V13H7V17H5V7M15 7H19V9H15V11H17C18.11 11 19 11.9 19 13V15C19 16.11 18.11 17 17 17H15C13.9 17 13 16.11 13 15V9C13 7.9 13.9 7 15 7M15 13V15H17V13H15Z\";\nexport var mdiKeyboardF7 = \"M5 7H11V9H7V11H10V13H7V17H5V7M15 17H13L17 9H13V7H19V9L15 17Z\";\nexport var mdiKeyboardF8 = \"M5 7H11V9H7V11H10V13H7V17H5V7M15 13V15H17V13H15M15 9V11H17V9H15M15 17C13.9 17 13 16.11 13 15V13.5C13 12.67 13.67 12 14.5 12C13.67 12 13 11.33 13 10.5V9C13 7.9 13.9 7 15 7H17C18.1 7 19 7.89 19 9V10.5C19 11.33 18.33 12 17.5 12C18.33 12 19 12.67 19 13.5V15C19 16.11 18.11 17 17 17H15Z\";\nexport var mdiKeyboardF9 = \"M5 7H11V9H7V11H10V13H7V17H5V7M17 17H13V15H17V13H15C13.9 13 13 12.11 13 11V9C13 7.9 13.9 7 15 7H17C18.11 7 19 7.9 19 9V15C19 16.11 18.11 17 17 17M17 11V9H15V11H17Z\";\nexport var mdiKeyboardOff = \"M1,4.27L2.28,3L20,20.72L18.73,22L15.73,19H4C2.89,19 2,18.1 2,17V7C2,6.5 2.18,6.07 2.46,5.73L1,4.27M19,10V8H17V10H19M19,13V11H17V13H19M16,10V8H14V10H16M16,13V11H14V12.18L11.82,10H13V8H11V9.18L9.82,8L6.82,5H20A2,2 0 0,1 22,7V17C22,17.86 21.46,18.59 20.7,18.87L14.82,13H16M8,15V17H13.73L11.73,15H8M5,10H6.73L5,8.27V10M7,13V11H5V13H7M8,13H9.73L8,11.27V13Z\";\nexport var mdiKeyboardOffOutline = \"M1,4.27L2.47,5.74C2.18,6.08 2,6.5 2,7V17A2,2 0 0,0 4,19H15.73L18.73,22L20,20.72L2.28,3L1,4.27M4,17V7.27L5,8.27V10H6.73L8,11.27V13H9.73L10.73,14H8V16H12.73L13.73,17H4M5,11H7V13H5V11M17,11H19V13H17V11M19,10H17V8H19V10M14,11H16V13H14.83L14,12.17V11M13,10H11.83L11,9.17V8H13V10M22,7V17C22,17.86 21.45,18.58 20.7,18.87L18.83,17H20V7H8.83L6.83,5H20A2,2 0 0,1 22,7M16,10H14V8H16V10Z\";\nexport var mdiKeyboardOutline = \"M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M4,7H20V17H4V7M5,8V10H7V8H5M8,8V10H10V8H8M11,8V10H13V8H11M14,8V10H16V8H14M17,8V10H19V8H17M5,11V13H7V11H5M8,11V13H10V11H8M11,11V13H13V11H11M14,11V13H16V11H14M17,11V13H19V11H17M8,14V16H16V14H8Z\";\nexport var mdiKeyboardReturn = \"M19,7V11H5.83L9.41,7.41L8,6L2,12L8,18L9.41,16.58L5.83,13H21V7H19Z\";\nexport var mdiKeyboardSettings = \"M19,10H17V8H19M19,13H17V11H19M16,10H14V8H16M16,13H14V11H16M16,17H8V15H16M7,10H5V8H7M7,13H5V11H7M8,11H10V13H8M8,8H10V10H8M11,11H13V13H11M11,8H13V10H11M20,5H4A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiKeyboardSettingsOutline = \"M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M4,7H20V17H4V7M5,8V10H7V8H5M8,8V10H10V8H8M11,8V10H13V8H11M14,8V10H16V8H14M17,8V10H19V8H17M5,11V13H7V11H5M8,11V13H10V11H8M11,11V13H13V11H11M14,11V13H16V11H14M17,11V13H19V11H17M8,14V16H16V14H8Z\";\nexport var mdiKeyboardSpace = \"M3 15H5V19H19V15H21V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V15Z\";\nexport var mdiKeyboardTab = \"M20,18H22V6H20M11.59,7.41L15.17,11H1V13H15.17L11.59,16.58L13,18L19,12L13,6L11.59,7.41Z\";\nexport var mdiKeyboardTabReverse = \"M4 6H2V18H4M11 6L5 12L11 18L12.41 16.58L8.83 13H23V11H8.83L12.41 7.41L11 6Z\";\nexport var mdiKeyboardVariant = \"M6,16H18V18H6V16M6,13V15H2V13H6M7,15V13H10V15H7M11,15V13H13V15H11M14,15V13H17V15H14M18,15V13H22V15H18M2,10H5V12H2V10M19,12V10H22V12H19M18,12H16V10H18V12M8,12H6V10H8V12M12,12H9V10H12V12M15,12H13V10H15V12M2,9V7H4V9H2M5,9V7H7V9H5M8,9V7H10V9H8M11,9V7H13V9H11M14,9V7H16V9H14M17,9V7H22V9H17Z\";\nexport var mdiKhanda = \"M16 20C19.72 18 22 15.27 22 12C22 9.34 20.46 6.9 17.89 5H17.82C19 6.35 19.68 8.09 19.68 10C19.68 13 18 15 15.5 16.83C15.5 16.84 14.38 17.54 13 18.41V17.33L15 16C15 16 14.8 15.4 14.58 14.46C16.6 13.58 18 11.69 18 9.5C18 7.34 16.64 5.47 14.65 4.57C14.84 3.63 15 3 15 3L12 1L9 3C9 3 9.16 3.63 9.35 4.57C7.37 5.47 6 7.34 6 9.5C6 11.69 7.4 13.58 9.42 14.46C9.2 15.4 9 16 9 16L11 17.33V18.41C9.62 17.54 8.5 16.84 8.5 16.83C6 15 4.32 13 4.32 10C4.32 8.09 5 6.35 6.18 5H6.12C3.54 6.9 2 9.34 2 12C2 15.27 4.29 18 8 20L9 18.5L10.92 19.73L7.34 22L8 23L11 21.07V23H13V21.07L16 23L16.66 22L13.08 19.73L15 18.5L16 20M16.75 9.5C16.75 11.09 15.76 12.46 14.31 13.19C14.14 12.23 14 11.12 14 10C14 8.67 14.2 7.15 14.42 5.86C15.81 6.6 16.75 7.95 16.75 9.5M7.25 9.5C7.25 7.95 8.19 6.6 9.59 5.86C9.8 7.15 10 8.67 10 10C10 11.12 9.86 12.23 9.69 13.19C8.24 12.46 7.25 11.09 7.25 9.5Z\";\nexport var mdiKickstarter = \"M19.3 10.2L17.5 12L19.3 13.8C21.19 15.67 21.19 18.72 19.3 20.59C17.42 22.46 14.35 22.46 12.47 20.59L11.8 19.93C10.93 21.19 9.5 22 7.83 22C5.16 22 3 19.85 3 17.2V6.8C3 4.15 5.16 2 7.83 2C9.5 2 10.93 2.82 11.8 4.07L12.47 3.41C14.35 1.54 17.42 1.54 19.3 3.41C21.19 5.28 21.19 8.33 19.3 10.2Z\";\nexport var mdiKite = \"M13.69 3.46C13.35 3.15 12.96 3 12.5 3C12.05 3 11.66 3.15 11.33 3.46L5.54 9.08C5.23 9.38 5.06 9.75 5 10.2C5 10.64 5.08 11.04 5.33 11.4L11.45 19.83C11.2 20.36 10.75 20.62 10.09 20.62C9.29 20.62 8.79 20.25 8.6 19.5C8.4 18.84 8 18.27 7.38 17.8C6.76 17.34 6.1 17.1 5.41 17.1C4.36 17.1 3.5 17.5 2.85 18.3L4.21 19.42C4.5 19.03 4.92 18.84 5.41 18.84C6.21 18.84 6.71 19.21 6.9 19.95C7.09 20.62 7.5 21.19 8.12 21.67C8.74 22.15 9.4 22.4 10.09 22.4C11.33 22.4 12.28 21.83 12.94 20.7L19.68 11.39C19.93 11.04 20.03 10.64 20 10.2C19.95 9.75 19.77 9.38 19.47 9.08L13.69 3.46Z\";\nexport var mdiKiteOutline = \"M12.5 5.1L17.95 10.38L12.5 17.88L7.07 10.38L12.5 5.1M12.5 3C12.05 3 11.66 3.15 11.33 3.46L5.54 9.08C5.23 9.38 5.06 9.75 5 10.2C5 10.64 5.08 11.04 5.33 11.4L11.45 19.83C11.2 20.36 10.75 20.62 10.09 20.62C9.29 20.62 8.79 20.25 8.6 19.5C8.4 18.84 8 18.27 7.38 17.8C6.76 17.34 6.1 17.1 5.41 17.1C4.36 17.1 3.5 17.5 2.85 18.3L4.21 19.42C4.5 19.03 4.92 18.84 5.41 18.84C6.21 18.84 6.71 19.21 6.9 19.95C7.09 20.62 7.5 21.19 8.12 21.67S9.4 22.4 10.09 22.4C11.33 22.4 12.28 21.83 12.94 20.7L19.68 11.4C19.93 11.04 20.03 10.64 20 10.2C19.95 9.76 19.77 9.38 19.47 9.08L13.68 3.46C13.35 3.15 12.96 3 12.5 3Z\";\nexport var mdiKitesurfing = \"M16.5 4.5L15.5 3.43L17.92 1H20L16.5 4.5M20.96 23C19.9 23 18.9 22.75 17.96 22.25C16.12 23.25 13.81 23.25 11.97 22.25C10.13 23.25 7.82 23.25 6 22.25C4.77 22.94 3.36 23.05 2 23V21C3.41 21.05 4.77 20.9 6 20C7.74 21.25 10.21 21.25 11.97 20C13.74 21.25 16.2 21.25 17.96 20C19.17 20.9 20.54 21.05 21.94 21V23H20.96M20.35 12.26C18.3 11.5 16.14 12.61 14.08 13.36L12.39 11.5H9.58V8C11.89 8.19 14.29 7.67 15.9 5.96L14.5 4.56C13.6 5.46 12.3 6 11 6H8C6.89 6 5.95 6.92 6 8C6.07 9.35 5.67 12.73 6.45 13.87L8 16.82C7.43 17.23 6.93 17.62 6.5 18C8.09 19.5 10.65 19.17 11.97 17.5C12.91 18.59 14.45 19.3 15.9 18.83C17.45 17.77 22.74 14 20.35 12.26M11.43 14.65C11 14.89 10.16 15.37 9.82 15.61L8.97 13.59L11.46 13.5L12.16 14.25L11.43 14.65M8 1C6.9 1 6 1.9 6 3S6.9 5 8 5 10 4.11 10 3 9.11 1 8 1Z\";\nexport var mdiKlingon = \"M4.79 21.5L4.71 21.24C4.53 20.65 4.47 20.08 4.5 19.4C4.6 18.17 5.14 17.31 5.82 16.59C5.64 16 5.53 15.39 5.53 14.74C5.53 13 6.26 11.44 7.45 10.3C8.33 9.46 9.46 8.86 10.71 8.6C11.37 6.23 11.8 3.8 12 1.5C12.24 3.5 12.65 6.12 13.3 8.58C14.6 8.82 15.76 9.43 16.67 10.3C17.85 11.44 18.59 13 18.59 14.74C18.59 15.35 18.5 15.93 18.33 16.5C19.21 16.92 20.2 17.17 21.5 17.29L21.44 17.44C21.32 17.77 21 18 20.71 18.18L20.69 18.19C20.13 18.57 19.18 19 17.85 19C17.7 19 17.56 19 17.41 19C17.23 19 17.06 18.97 16.9 18.95C16.83 19 16.75 19.1 16.67 19.18C15.5 20.31 13.86 21 12.06 21C10.27 21 8.64 20.31 7.46 19.18C7.42 19.14 7.38 19.1 7.34 19.06C6.34 19.59 5.54 20.33 4.94 21.27L4.8 21.5M6.5 15.94C6.65 15.82 8.2 14.5 8.63 13.78L8.73 13.61C9.65 15 10.4 16.28 11.43 18.08L11.22 18.09C10.08 18.16 9.05 18.37 8.15 18.7C9.17 19.62 10.55 20.19 12.06 20.19C13.54 20.19 14.88 19.65 15.89 18.77C15.64 18.72 15.39 18.65 15.15 18.59C14.38 18.41 13.65 18.22 12.81 18.19L12.62 18.18L12.7 18C13.1 17.2 14.8 14.41 15.23 13.63L15.34 13.81C16 14.77 16.73 15.5 17.58 16.07C17.69 15.64 17.75 15.2 17.75 14.75C17.75 13.25 17.11 11.89 16.09 10.9C15.4 10.24 14.53 9.74 13.55 9.5C13.85 10.5 14.2 11.5 14.59 12.35L14.62 12.4L14.59 12.46C14.2 13.22 13.76 13.95 13.33 14.66C12.94 15.3 12.54 15.96 12.18 16.64L12.08 16.83L11.96 16.65C11.39 15.82 9.75 13.06 9.41 12.5C9.81 11.5 10.15 10.5 10.45 9.5C9.5 9.78 8.7 10.26 8.03 10.9C7 11.88 6.37 13.25 6.37 14.74C6.37 15.16 6.42 15.56 6.5 15.95\";\nexport var mdiKnife = \"M20.62,2C23.97,7.61 12.47,20.15 12.47,20.15L9.6,17.28L4.91,22L2.77,19.86L20.62,2Z\";\nexport var mdiKnifeMilitary = \"M22,2L17.39,3.75L10.46,10.68L14,14.22L20.92,7.29C22.43,5.78 22,2 22,2M8.33,10L6.92,11.39L8.33,12.8L2.68,18.46L6.21,22L11.87,16.34L13.28,17.76L14.7,16.34L8.33,10Z\";\nexport var mdiKnob = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M13 10H11V4.1C11.3 4 11.7 4 12 4S12.7 4 13 4.1V10Z\";\nexport var mdiKoala = \"M19 3C18.1 3 15.5 3 14.3 6.1C13.9 6 13.4 6 13 6H11C10.6 6 10.1 6 9.7 6.1C8.5 3 5.9 3 5 3C4 3 1 4 1 9C1 12.6 3.5 13.6 5 13.9V15C5 18.3 7.7 21 11 21H13C16.3 21 19 18.3 19 15V13.9C20.5 13.6 23 12.6 23 9C23 4 20 3 19 3M5 12V12.4C2.9 11.8 3.3 9.5 4.3 8.7C4 8.3 3 9 3 8.6C3 8.1 4.8 7.4 5.1 7.3C4.8 6.8 3.6 7 3.6 6.6C3.6 6.3 4.8 5.8 5.8 6C6.3 6.1 6.9 6.3 7.4 6.7C6 8 5 9.8 5 12M8.5 15C6.5 15 6.5 12 8.5 12C10.5 12 10.5 15 8.5 15M12.5 18H11.5C10.8 18 10.3 17.3 10.6 16.7L11.3 13.7C11.4 13.3 11.8 13.1 12.1 13C12.4 13 12.7 13.2 12.9 13.7L13.6 16.7C13.7 17.3 13.2 18 12.5 18M15.5 15C13.5 15 13.5 12 15.5 12C17.5 12 17.5 15 15.5 15M19.7 8.6C20.7 9.4 21.1 11.7 19 12.3C19.1 10.1 18.1 8 16.6 6.7C17.1 6.3 17.7 6.1 18.2 6C19.2 5.8 20.4 6.2 20.4 6.6C20.4 7 19.2 6.8 18.9 7.2C19.2 7.4 21 8.1 21 8.6C21 9 20.1 8.3 19.7 8.6Z\";\nexport var mdiKodi = \"M12.03,1C11.82,1 11.6,1.11 11.41,1.31C10.56,2.16 9.72,3 8.88,3.84C8.66,4.06 8.6,4.18 8.38,4.38C8.09,4.62 7.96,4.91 7.97,5.28C8,6.57 8,7.84 8,9.13C8,10.46 8,11.82 8,13.16C8,13.26 8,13.34 8.03,13.44C8.11,13.75 8.31,13.82 8.53,13.59C9.73,12.39 10.8,11.3 12,10.09C13.36,8.73 14.73,7.37 16.09,6C16.5,5.6 16.5,5.15 16.09,4.75C14.94,3.6 13.77,2.47 12.63,1.31C12.43,1.11 12.24,1 12.03,1M18.66,7.66C18.45,7.66 18.25,7.75 18.06,7.94C16.91,9.1 15.75,10.24 14.59,11.41C14.2,11.8 14.2,12.23 14.59,12.63C15.74,13.78 16.88,14.94 18.03,16.09C18.43,16.5 18.85,16.5 19.25,16.09C20.36,15 21.5,13.87 22.59,12.75C22.76,12.58 22.93,12.42 23,12.19V11.88C22.93,11.64 22.76,11.5 22.59,11.31C21.47,10.19 20.37,9.06 19.25,7.94C19.06,7.75 18.86,7.66 18.66,7.66M4.78,8.09C4.65,8.04 4.58,8.14 4.5,8.22C3.35,9.39 2.34,10.43 1.19,11.59C0.93,11.86 0.93,12.24 1.19,12.5C1.81,13.13 2.44,13.75 3.06,14.38C3.6,14.92 4,15.33 4.56,15.88C4.72,16.03 4.86,16 4.94,15.81C5,15.71 5,15.58 5,15.47C5,14.29 5,13.37 5,12.19C5,11 5,9.81 5,8.63C5,8.55 5,8.45 4.97,8.38C4.95,8.25 4.9,8.14 4.78,8.09M12.09,14.25C11.89,14.25 11.66,14.34 11.47,14.53C10.32,15.69 9.18,16.87 8.03,18.03C7.63,18.43 7.63,18.85 8.03,19.25C9.14,20.37 10.26,21.47 11.38,22.59C11.54,22.76 11.71,22.93 11.94,23H12.22C12.44,22.94 12.62,22.79 12.78,22.63C13.9,21.5 15.03,20.38 16.16,19.25C16.55,18.85 16.5,18.4 16.13,18C14.97,16.84 13.84,15.69 12.69,14.53C12.5,14.34 12.3,14.25 12.09,14.25Z\";\nexport var mdiKubernetes = \"M13.95 13.5H13.72C13.54 13.61 13.46 13.82 13.54 14L14.4 16.11C15.23 15.58 15.86 14.79 16.19 13.86L13.96 13.5H13.95M10.5 13.79C10.44 13.62 10.29 13.5 10.12 13.5H10.04L7.82 13.87C8.15 14.79 8.78 15.57 9.61 16.1L10.46 14.03V14C10.5 13.95 10.5 13.86 10.5 13.79M12.33 14.6C12.23 14.42 12 14.35 11.82 14.45C11.75 14.5 11.7 14.53 11.67 14.6H11.66L10.57 16.57C11.35 16.83 12.19 16.88 13 16.69C13.14 16.66 13.29 16.62 13.43 16.57L12.34 14.6H12.33M15.78 10.03L14.1 11.5L14.11 11.53C13.95 11.67 13.93 11.91 14.07 12.06C14.12 12.12 14.18 12.16 14.25 12.18L14.26 12.19L16.43 12.81C16.5 11.84 16.29 10.86 15.78 10.03M12.67 10.19C12.68 10.4 12.85 10.56 13.06 10.55C13.14 10.55 13.21 10.53 13.27 10.5H13.28L15.11 9.19C14.41 8.5 13.5 8.07 12.54 7.95L12.67 10.19M10.73 10.5C10.9 10.61 11.13 10.58 11.25 10.41C11.3 10.35 11.32 10.28 11.33 10.2H11.34L11.46 7.95C11.31 7.97 11.16 8 11 8.03C10.2 8.21 9.46 8.61 8.88 9.19L10.72 10.5H10.73M9.74 12.19C9.94 12.14 10.06 11.93 10 11.73C10 11.65 9.95 11.59 9.89 11.54V11.53L8.21 10C7.69 10.86 7.47 11.84 7.58 12.82L9.74 12.2V12.19M11.38 12.85L12 13.15L12.62 12.85L12.77 12.18L12.34 11.65H11.65L11.22 12.18L11.38 12.85M22.27 14.17L20.5 6.5C20.41 6.08 20.13 5.74 19.76 5.56L12.59 2.13C12.22 1.96 11.78 1.96 11.4 2.13L4.24 5.56C3.87 5.74 3.59 6.08 3.5 6.5L1.73 14.17C1.68 14.37 1.68 14.57 1.73 14.76C1.74 14.82 1.76 14.88 1.78 14.94C1.81 15.03 1.86 15.13 1.91 15.21C1.94 15.25 1.96 15.29 2 15.32L6.95 21.5C6.97 21.5 7 21.54 7 21.56C7.1 21.65 7.19 21.72 7.28 21.78C7.4 21.86 7.54 21.92 7.68 21.95C7.79 22 7.91 22 8 22H16.12C16.19 22 16.26 21.97 16.32 21.95C16.37 21.94 16.42 21.92 16.46 21.91C16.5 21.89 16.53 21.88 16.57 21.86C16.62 21.84 16.67 21.81 16.72 21.78C16.84 21.7 16.95 21.6 17.05 21.5L17.2 21.3L22 15.32C22.1 15.2 22.17 15.07 22.22 14.94C22.24 14.88 22.26 14.82 22.27 14.76C22.32 14.57 22.32 14.36 22.27 14.17M14.84 17.16C14.86 17.22 14.88 17.28 14.91 17.33C14.87 17.41 14.85 17.5 14.88 17.59C15 17.83 15.11 18.05 15.26 18.27C15.34 18.38 15.42 18.5 15.5 18.61C15.5 18.64 15.53 18.69 15.54 18.73C15.66 18.93 15.6 19.19 15.39 19.32S14.92 19.37 14.8 19.17C14.79 19.14 14.78 19.12 14.77 19.09C14.75 19.06 14.73 19 14.71 19C14.66 18.85 14.62 18.72 14.59 18.59C14.5 18.34 14.42 18.1 14.29 17.87C14.24 17.8 14.16 17.75 14.08 17.73L14 17.57C12.71 18.05 11.3 18.05 10.03 17.56L9.93 17.74C9.86 17.75 9.79 17.78 9.74 17.83C9.6 18.07 9.5 18.32 9.41 18.6C9.38 18.73 9.34 18.86 9.29 19C9.27 19 9.25 19.07 9.23 19.1C9.15 19.32 8.91 19.44 8.68 19.36C8.46 19.28 8.34 19.04 8.42 18.81C8.43 18.78 8.45 18.76 8.46 18.73C8.5 18.7 8.5 18.65 8.5 18.62C8.59 18.5 8.66 18.39 8.74 18.27C8.9 18.06 9.03 17.82 9.13 17.58C9.14 17.5 9.13 17.41 9.1 17.33L9.17 17.15C8 16.45 7.12 15.36 6.7 14.06L6.5 14.09C6.44 14.04 6.35 14 6.27 14C6 14.05 5.76 14.13 5.5 14.22C5.39 14.28 5.26 14.33 5.13 14.37C5.1 14.38 5.06 14.39 5 14.4C4.78 14.47 4.54 14.35 4.46 14.13C4.39 13.9 4.5 13.66 4.74 13.58C4.76 13.58 4.79 13.57 4.82 13.57V13.56H4.83L4.94 13.54C5.08 13.5 5.22 13.5 5.35 13.5C5.61 13.5 5.87 13.44 6.12 13.38C6.2 13.33 6.26 13.27 6.31 13.19L6.5 13.14C6.29 11.78 6.6 10.41 7.36 9.27L7.22 9.15C7.22 9.06 7.19 8.97 7.14 8.9C6.94 8.73 6.73 8.58 6.5 8.45C6.38 8.39 6.26 8.32 6.14 8.24C6.12 8.22 6.08 8.19 6.06 8.17L6.05 8.16C5.85 8 5.8 7.74 5.94 7.53C6.03 7.43 6.15 7.38 6.29 7.38C6.4 7.39 6.5 7.43 6.59 7.5L6.68 7.57C6.78 7.66 6.87 7.77 6.96 7.87C7.14 8.06 7.33 8.24 7.54 8.39C7.62 8.43 7.71 8.44 7.8 8.42L7.95 8.53C8.7 7.73 9.68 7.17 10.75 6.93C11 6.87 11.27 6.83 11.53 6.81L11.54 6.63C11.61 6.57 11.65 6.5 11.68 6.4C11.69 6.14 11.67 5.88 11.63 5.63C11.6 5.5 11.58 5.36 11.57 5.22V5.1C11.55 4.86 11.72 4.65 11.96 4.62S12.4 4.77 12.43 5V5.22C12.42 5.36 12.4 5.5 12.37 5.63C12.33 5.88 12.31 6.14 12.32 6.4C12.34 6.5 12.39 6.57 12.46 6.62L12.47 6.81C13.83 6.93 15.09 7.54 16.03 8.53L16.19 8.41C16.28 8.43 16.37 8.42 16.45 8.38C16.66 8.23 16.86 8.05 17.03 7.86C17.12 7.76 17.21 7.66 17.31 7.56C17.34 7.54 17.38 7.5 17.41 7.5C17.58 7.32 17.85 7.32 18 7.5C18.19 7.66 18.18 7.93 18 8.1C18 8.12 17.97 8.14 17.94 8.16C17.92 8.18 17.88 8.21 17.85 8.23C17.74 8.31 17.62 8.38 17.5 8.44C17.27 8.57 17.05 8.72 16.86 8.89C16.8 8.96 16.77 9.04 16.78 9.13L16.62 9.27C17.39 10.4 17.7 11.78 17.5 13.13L17.69 13.18C17.73 13.26 17.8 13.32 17.88 13.36C18.13 13.43 18.39 13.47 18.65 13.5H19.06C19.09 13.53 19.14 13.54 19.18 13.55C19.42 13.58 19.58 13.8 19.55 14.04C19.5 14.27 19.31 14.44 19.07 14.41C19.04 14.4 19 14.4 19 14.39V14.38C18.94 14.38 18.9 14.37 18.86 14.36C18.73 14.32 18.61 14.27 18.5 14.21C18.24 14.11 18 14.04 17.73 14C17.64 14 17.56 14 17.5 14.08C17.43 14.07 17.37 14.06 17.31 14.05C16.9 15.36 16 16.46 14.84 17.16Z\";\nexport var mdiLabel = \"M17.63,5.84C17.27,5.33 16.67,5 16,5H5A2,2 0 0,0 3,7V17A2,2 0 0,0 5,19H16C16.67,19 17.27,18.66 17.63,18.15L22,12L17.63,5.84Z\";\nexport var mdiLabelMultiple = \"M4 19H13L11 21H4C3.5 21 2.97 20.79 2.59 20.41C2.21 20.03 2 19.5 2 19V9H4V19M17.63 5.84C17.27 5.33 16.67 5 16 5H8C6.9 5 6 5.9 6 7V15C6 16.1 6.9 17 8 17H16C16.67 17 17.27 16.66 17.63 16.15L22 11L17.63 5.84Z\";\nexport var mdiLabelMultipleOutline = \"M4 18H13L11 20H4C3.5 20 2.97 19.79 2.59 19.41C2.21 19.03 2 18.5 2 18V8H4V18M17.63 4.84C17.27 4.33 16.67 4 16 4H8C6.9 4 6 4.9 6 6V14C6 15.1 6.9 16 8 16H16C16.67 16 17.27 15.66 17.63 15.15L22 10L17.63 4.84M16 14H8V6H16L19.55 10Z\";\nexport var mdiLabelOff = \"M2,4.27L3.28,3L20,19.72L18.73,21L16.63,18.9C16.43,18.96 16.22,19 16,19H5A2,2 0 0,1 3,17V7C3,6.5 3.17,6.07 3.46,5.73L2,4.27M17.63,5.84L22,12L19,16.2L7.83,5H16C16.67,5 17.27,5.33 17.63,5.84Z\";\nexport var mdiLabelOffOutline = \"M2,4.27L3.28,3L20,19.72L18.73,21L16.63,18.9C16.43,18.96 16.22,19 16,19H5A2,2 0 0,1 3,17V7C3,6.5 3.17,6.07 3.46,5.73L2,4.27M5,17H14.73L5,7.27V17M19.55,12L16,7H9.82L7.83,5H16C16.67,5 17.27,5.33 17.63,5.84L22,12L19,16.2L17.59,14.76L19.55,12Z\";\nexport var mdiLabelOutline = \"M16,17H5V7H16L19.55,12M17.63,5.84C17.27,5.33 16.67,5 16,5H5A2,2 0 0,0 3,7V17A2,2 0 0,0 5,19H16C16.67,19 17.27,18.66 17.63,18.15L22,12L17.63,5.84Z\";\nexport var mdiLabelPercent = \"M17.63 5.84C17.27 5.33 16.67 5 16 5H5C3.9 5 3 5.9 3 7V17C3 18.11 3.9 19 5 19H16C16.67 19 17.27 18.66 17.63 18.15L22 12L17.63 5.84M8.45 8.03C9.23 8.03 9.87 8.67 9.87 9.45S9.23 10.87 8.45 10.87 7.03 10.23 7.03 9.45 7.67 8.03 8.45 8.03M13.55 15.97C12.77 15.97 12.13 15.33 12.13 14.55S12.77 13.13 13.55 13.13 14.97 13.77 14.97 14.55 14.33 15.97 13.55 15.97M8.2 16L7 14.8L13.8 8L15 9.2L8.2 16Z\";\nexport var mdiLabelPercentOutline = \"M16 17H5V7H16L19.55 12M17.63 5.84C17.27 5.33 16.67 5 16 5H5C3.9 5 3 5.9 3 7V17C3 18.11 3.9 19 5 19H16C16.67 19 17.27 18.66 17.63 18.15L22 12L17.63 5.84M13.8 8L15 9.2L8.2 16L7 14.8M8.45 8.03C9.23 8.03 9.87 8.67 9.87 9.45S9.23 10.87 8.45 10.87 7.03 10.23 7.03 9.45 7.67 8.03 8.45 8.03M13.55 13.13C14.33 13.13 14.97 13.77 14.97 14.55C14.97 15.33 14.33 15.97 13.55 15.97C12.77 15.97 12.13 15.33 12.13 14.55C12.13 13.77 12.77 13.13 13.55 13.13Z\";\nexport var mdiLabelVariant = \"M3.5,19L8.34,12L3.5,5H14.5C15.17,5 15.72,5.3 16.13,5.86L20.5,12L16.13,18.14C15.72,18.7 15.17,19 14.5,19H3.5Z\";\nexport var mdiLabelVariantOutline = \"M6.5,17H15L18.5,12L15,7H6.5L10,12L6.5,17M15,19H3L7.5,12L3,5H15C15.69,5 16.23,5.3 16.64,5.86L21,12L16.64,18.14C16.23,18.7 15.69,19 15,19Z\";\nexport var mdiLadder = \"M14 1V3H10V1H8V22H10V20H14V22H16V1H14M14 5V8H10V5H14M14 10V13H10V10H14M10 18V15H14V18H10Z\";\nexport var mdiLadybug = \"M12,5C12.74,5 13.47,5.1 14.15,5.29L15.78,2.46C16.06,2 16.67,1.82 17.15,2.1C17.63,2.37 17.79,3 17.5,3.46L16,6.07C17.22,6.78 18.23,7.79 18.93,9H5.07C5.77,7.79 6.78,6.78 8,6.07L6.5,3.46C6.21,3 6.37,2.37 6.85,2.1C7.33,1.82 7.94,2 8.22,2.46L9.85,5.29C10.53,5.1 11.26,5 12,5M20,13C20,17.17 16.82,20.59 12.75,20.97V10.5H19.6C19.86,11.29 20,12.13 20,13M4,13C4,12.13 4.14,11.29 4.4,10.5H11.25V20.97C7.18,20.59 4,17.17 4,13Z\";\nexport var mdiLambda = \"M6,20L10.16,7.91L9.34,6H8V4H10C10.42,4 10.78,4.26 10.93,4.63L16.66,18H18V20H16C15.57,20 15.21,19.73 15.07,19.36L11.33,10.65L8.12,20H6Z\";\nexport var mdiLamp = \"M8,2H16L20,14H4L8,2M11,15H13V20H18V22H6V20H11V15Z\";\nexport var mdiLampOutline = \"M14.56 4L17.23 12H6.78L9.44 4H14.56M16 2H8L4 14H20L16 2M11 15H13V20H18V22H6V20H11V15Z\";\nexport var mdiLamps = \"M10 2L12 9H2L4 2M6 10H8V20H11V22H3V20H6V10M20 8L22 15H12L14 8M16 16H18V20H21V22H13V20H16V16Z\";\nexport var mdiLampsOutline = \"M8.5 4L9.35 7H4.65L5.5 4H8.5M10 2H4L2 9H12L10 2M6 10H8V20H11V22H3V20H6V10M18.5 10L19.35 13H14.65L15.5 10H18.5M20 8H14L12 15H22L20 8M16 16H18V20H21V22H13V20H16V16Z\";\nexport var mdiLan = \"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z\";\nexport var mdiLanCheck = \"M4 1C2.89 1 2 1.89 2 3V7C2 8.11 2.89 9 4 9H1V11H13V9H10C11.11 9 12 8.11 12 7V3C12 1.89 11.11 1 10 1H4M4 3H10V7H4V3M14 13C12.89 13 12 13.89 12 15V19C12 20.11 12.89 21 14 21H11V23H23V21H20C21.11 21 22 20.11 22 19V15C22 13.89 21.11 13 20 13H14M14 15H20V19H14V15M5.5 20.5L10.5 15.5L9 14L5.5 17.5L3.5 15.5L2 17L5.5 20.5Z\";\nexport var mdiLanConnect = \"M4,1C2.89,1 2,1.89 2,3V7C2,8.11 2.89,9 4,9H1V11H13V9H10C11.11,9 12,8.11 12,7V3C12,1.89 11.11,1 10,1H4M4,3H10V7H4V3M3,13V18L3,20H10V18H5V13H3M14,13C12.89,13 12,13.89 12,15V19C12,20.11 12.89,21 14,21H11V23H23V21H20C21.11,21 22,20.11 22,19V15C22,13.89 21.11,13 20,13H14M14,15H20V19H14V15Z\";\nexport var mdiLanDisconnect = \"M4,1C2.89,1 2,1.89 2,3V7C2,8.11 2.89,9 4,9H1V11H13V9H10C11.11,9 12,8.11 12,7V3C12,1.89 11.11,1 10,1H4M4,3H10V7H4V3M14,13C12.89,13 12,13.89 12,15V19C12,20.11 12.89,21 14,21H11V23H23V21H20C21.11,21 22,20.11 22,19V15C22,13.89 21.11,13 20,13H14M3.88,13.46L2.46,14.88L4.59,17L2.46,19.12L3.88,20.54L6,18.41L8.12,20.54L9.54,19.12L7.41,17L9.54,14.88L8.12,13.46L6,15.59L3.88,13.46M14,15H20V19H14V15Z\";\nexport var mdiLanPending = \"M4,1C2.89,1 2,1.89 2,3V7C2,8.11 2.89,9 4,9H1V11H13V9H10C11.11,9 12,8.11 12,7V3C12,1.89 11.11,1 10,1H4M4,3H10V7H4V3M3,12V14H5V12H3M14,13C12.89,13 12,13.89 12,15V19C12,20.11 12.89,21 14,21H11V23H23V21H20C21.11,21 22,20.11 22,19V15C22,13.89 21.11,13 20,13H14M3,15V17H5V15H3M14,15H20V19H14V15M3,18V20H5V18H3M6,18V20H8V18H6M9,18V20H11V18H9Z\";\nexport var mdiLandFields = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M15.3 4C14.5 5.1 14 6.5 14 8H10C10 6.4 10.8 4.9 12 4H15.3M14 14H10C10 12.5 9.5 11.1 8.7 10H12C13.2 10.9 14 12.4 14 14M4 4H9.3C8.5 5.1 8 6.5 8 8H4V4M4 10H6C7.2 10.9 8 12.3 8 14H4V10M4 20V16H9.3C8.5 17.1 8 18.5 8 20H4M10 20C10 18.4 10.8 16.9 12 16H15.3C14.5 17.1 14 18.5 14 20H10M20 20H16C16 18.4 16.8 16.9 18 16H20V20M20 14H16C16 12.5 15.5 11.1 14.7 10H20V14M20 8H16C16 6.4 16.8 4.9 18 4H20V8Z\";\nexport var mdiLandPlots = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M4 4H8V14H4V4M4 20V16H8V20H4M20 20H10V10H20V20M20 8H10V4H20V8Z\";\nexport var mdiLandPlotsCircle = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M13 7.5C13 5.6 14.6 4 16.5 4C18.4 4 20 5.6 20 7.5C20 9.4 18.4 11 16.5 11C14.6 11 13 9.4 13 7.5M4 4H11V11H4V4M4 20V13H11V20H4M20 20H13V13H20V20Z\";\nexport var mdiLandPlotsCircleVariant = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M20 9C20 11.8 17.8 14 15 14C12.2 14 10 11.8 10 9C10 6.2 12.2 4 15 4C17.8 4 20 6.2 20 9M4 4H8V14H4V4M4 20V16H8V20H4M20 20H10V16H20V20Z\";\nexport var mdiLandPlotsMarker = \"M4 2H20C21.1 2 22 2.9 22 4V10H10V20H14.55C14.73 20.3 14.91 20.58 15.09 20.84C15.38 21.27 15.66 21.66 15.92 22H4C2.9 22 2 21.1 2 20V4C2 2.9 2.9 2 4 2M8 4H4V14H8V4M4 16V20H8V16H4M10 8H20V4H10V8M18.5 22C18.5 22 17.92 21.35 17.23 20.41C17.14 20.28 17.04 20.14 16.94 20C16 18.66 15 16.89 15 15.5C15 13.6 16.6 12 18.5 12C19.03 12 19.54 12.13 20 12.35C21.17 12.92 22 14.13 22 15.5C22 17.04 20.77 19.04 19.77 20.41C19.08 21.35 18.5 22 18.5 22M17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8C19.2 16.8 19.8 16.2 19.7 15.6C19.7 15 19.1 14.4 18.5 14.4C17.9 14.4 17.3 14.9 17.3 15.6Z\";\nexport var mdiLandRowsHorizontal = \"M22 20V4C22 2.9 21.1 2 20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20M4 6.5V4H20V6.5H4M4 11V8.5H20V11H4M4 15.5V13H20V15.5H4M4 20V17.5H20V20H4Z\";\nexport var mdiLandRowsVertical = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M6.5 20H4V4H6.5V20M11 20H8.5V4H11V20M15.5 20H13V4H15.5V20M20 20H17.5V4H20V20Z\";\nexport var mdiLandslide = \"M15.47 13.79L12.89 12.76L6 15.05L2 13.5V15.61L6 16.95L15.47 13.79M10.57 11.42L8 8H2V11.61L6 12.95L10.57 11.42M6 19.05L2 17.72V22H22L17.03 15.38L6 19.05M17 6V1L12 0L9 2V6L12 8L17 6M18.5 7L16 9V12L18.5 14L23 12V8L18.5 7Z\";\nexport var mdiLandslideOutline = \"M11 12L8 8H2V22H22L16 14L11 12M12.53 14.77L6 16.95L4 16.28V14.39L6 15.06L9.95 13.74L12.53 14.77M7 10L8.57 12.09L6 12.95L4 12.28V10H7M4 20V18.39L6 19.06L15.03 16.05L18 20H4M17 6V1L12 0L9 2V6L12 8L17 6M11 3.07L12.42 2.12L15 2.64V4.65L12.23 5.76L11 4.93V3.07M18.5 7L16 9V12L18.5 14L23 12V8L18.5 7M21 10.7L18.8 11.68L18 11.04V9.96L19 9.16L21 9.6V10.7Z\";\nexport var mdiLanguageC = \"M15.45,15.97L15.87,18.41C15.61,18.55 15.19,18.68 14.63,18.8C14.06,18.93 13.39,19 12.62,19C10.41,18.96 8.75,18.3 7.64,17.04C6.5,15.77 5.96,14.16 5.96,12.21C6,9.9 6.68,8.13 8,6.89C9.28,5.64 10.92,5 12.9,5C13.65,5 14.3,5.07 14.84,5.19C15.38,5.31 15.78,5.44 16.04,5.59L15.44,8.08L14.4,7.74C14,7.64 13.53,7.59 13,7.59C11.85,7.58 10.89,7.95 10.14,8.69C9.38,9.42 9,10.54 8.96,12.03C8.97,13.39 9.33,14.45 10.04,15.23C10.75,16 11.74,16.4 13.03,16.41L14.36,16.29C14.79,16.21 15.15,16.1 15.45,15.97Z\";\nexport var mdiLanguageCpp = \"M10.5,15.97L10.91,18.41C10.65,18.55 10.23,18.68 9.67,18.8C9.1,18.93 8.43,19 7.66,19C5.45,18.96 3.79,18.3 2.68,17.04C1.56,15.77 1,14.16 1,12.21C1.05,9.9 1.72,8.13 3,6.89C4.32,5.64 5.96,5 7.94,5C8.69,5 9.34,5.07 9.88,5.19C10.42,5.31 10.82,5.44 11.08,5.59L10.5,8.08L9.44,7.74C9.04,7.64 8.58,7.59 8.05,7.59C6.89,7.58 5.93,7.95 5.18,8.69C4.42,9.42 4.03,10.54 4,12.03C4,13.39 4.37,14.45 5.08,15.23C5.79,16 6.79,16.4 8.07,16.41L9.4,16.29C9.83,16.21 10.19,16.1 10.5,15.97M11,11H13V9H15V11H17V13H15V15H13V13H11V11M18,11H20V9H22V11H24V13H22V15H20V13H18V11Z\";\nexport var mdiLanguageCsharp = \"M11.5,15.97L11.91,18.41C11.65,18.55 11.23,18.68 10.67,18.8C10.1,18.93 9.43,19 8.66,19C6.45,18.96 4.79,18.3 3.68,17.04C2.56,15.77 2,14.16 2,12.21C2.05,9.9 2.72,8.13 4,6.89C5.32,5.64 6.96,5 8.94,5C9.69,5 10.34,5.07 10.88,5.19C11.42,5.31 11.82,5.44 12.08,5.59L11.5,8.08L10.44,7.74C10.04,7.64 9.58,7.59 9.05,7.59C7.89,7.58 6.93,7.95 6.18,8.69C5.42,9.42 5.03,10.54 5,12.03C5,13.39 5.37,14.45 6.08,15.23C6.79,16 7.79,16.4 9.07,16.41L10.4,16.29C10.83,16.21 11.19,16.1 11.5,15.97M13.89,19L14.5,15H13L13.34,13H14.84L15.16,11H13.66L14,9H15.5L16.11,5H18.11L17.5,9H18.5L19.11,5H21.11L20.5,9H22L21.66,11H20.16L19.84,13H21.34L21,15H19.5L18.89,19H16.89L17.5,15H16.5L15.89,19H13.89M16.84,13H17.84L18.16,11H17.16L16.84,13Z\";\nexport var mdiLanguageCss3 = \"M5,3L4.35,6.34H17.94L17.5,8.5H3.92L3.26,11.83H16.85L16.09,15.64L10.61,17.45L5.86,15.64L6.19,14H2.85L2.06,18L9.91,21L18.96,18L20.16,11.97L20.4,10.76L21.94,3H5Z\";\nexport var mdiLanguageFortran = \"M5 4V6H6C6.55 6 7 6.45 7 7V17C7 17.55 6.55 18 6 18H5V20H14V18H12C11.45 18 11 17.55 11 17V13H13C13.55 13 14 13.45 14 14V16H16V8H14V10C14 10.55 13.55 11 13 11H11V6H16C17.11 6 18 7.34 18 9V10H20V4Z\";\nexport var mdiLanguageGo = \"M2.64,10.33L2.62,10.27L2.84,10L2.96,9.92H6.8L6.83,10L6.65,10.26L6.54,10.32L2.64,10.33M1.03,11.31L1,11.26L1.22,10.97L1.34,10.91H6.24L6.29,11L6.21,11.24L6.11,11.31H1.03M3.63,12.3L3.59,12.24L3.75,11.96L3.85,11.9H6L6.07,11.97L6.05,12.22L5.97,12.3H3.63M14.78,10.14L13,10.61C12.81,10.65 12.8,10.66 12.66,10.5C12.5,10.32 12.39,10.21 12.16,10.1C11.5,9.76 10.83,9.86 10.22,10.25C9.5,10.73 9.11,11.42 9.12,12.3C9.13,13.16 9.72,13.87 10.57,14C11.3,14.09 11.91,13.83 12.4,13.28L12.69,12.89H10.62C10.4,12.89 10.35,12.75 10.42,12.57L10.97,11.39C11,11.33 11.08,11.22 11.24,11.22H14.68C14.83,10.72 15.09,10.26 15.43,9.81C16.21,8.78 17.16,8.24 18.43,8C19.5,7.82 20.56,7.93 21.5,8.57C22.34,9.15 22.87,9.93 23,10.96C23.19,12.41 22.76,13.59 21.76,14.61C21.05,15.33 20.18,15.78 19.19,16L18.33,16.08C17.35,16.06 16.46,15.78 15.71,15.13C15.19,14.68 14.83,14.14 14.65,13.5C14.5,13.74 14.38,13.97 14.21,14.2C13.44,15.22 12.43,15.85 11.15,16C10.1,16.16 9.12,15.95 8.26,15.31C7.47,14.71 7,13.91 6.9,12.92C6.76,11.75 7.1,10.7 7.81,9.78C8.57,8.78 9.58,8.15 10.82,7.92C11.82,7.74 12.79,7.86 13.66,8.44C14.23,8.82 14.63,9.34 14.9,9.96C14.94,10.05 14.9,10.11 14.78,10.14M20.89,11.74L20.86,11.38C20.67,10.32 19.69,9.72 18.67,9.95C17.66,10.17 17,10.8 16.79,11.81C16.6,12.65 17,13.5 17.77,13.84C18.36,14.1 18.96,14.06 19.53,13.78C20.37,13.35 20.84,12.66 20.89,11.74Z\";\nexport var mdiLanguageHaskell = \"M2.08,19L6.75,12L2.08,5H5.58L10.25,12L5.58,19H2.08M6.75,19L11.42,12L6.75,5H10.25L19.59,19H16.09L13.17,14.63L10.25,19H6.75M18.03,14.92L16.5,12.58H21.92V14.92H18.03M15.7,11.42L14.14,9.08H21.92V11.42H15.7Z\";\nexport var mdiLanguageHtml5 = \"M12,17.56L16.07,16.43L16.62,10.33H9.38L9.2,8.3H16.8L17,6.31H7L7.56,12.32H14.45L14.22,14.9L12,15.5L9.78,14.9L9.64,13.24H7.64L7.93,16.43L12,17.56M4.07,3H19.93L18.5,19.2L12,21L5.5,19.2L4.07,3Z\";\nexport var mdiLanguageJava = \"M16.5,6.08C16.5,6.08 9.66,7.79 12.94,11.56C13.91,12.67 12.69,13.67 12.69,13.67C12.69,13.67 15.14,12.42 14,10.82C12.94,9.35 12.14,8.62 16.5,6.08M12.03,7.28C16.08,4.08 14,2 14,2C14.84,5.3 11.04,6.3 9.67,8.36C8.73,9.76 10.13,11.27 12,13C11.29,11.3 8.78,9.84 12.03,7.28M9.37,17.47C6.29,18.33 11.25,20.1 15.16,18.43C14.78,18.28 14.41,18.1 14.06,17.89C12.7,18.2 11.3,18.26 9.92,18.07C8.61,17.91 9.37,17.47 9.37,17.47M14.69,15.79C12.94,16.17 11.13,16.26 9.35,16.05C8.04,15.92 8.9,15.28 8.9,15.28C5.5,16.41 10.78,17.68 15.5,16.3C15.21,16.19 14.93,16 14.69,15.79M18.11,19.09C18.11,19.09 18.68,19.56 17.5,19.92C15.22,20.6 8.07,20.81 6.09,19.95C5.38,19.64 6.72,19.21 7.14,19.12C7.37,19.06 7.6,19.04 7.83,19.04C7.04,18.5 2.7,20.14 5.64,20.6C13.61,21.9 20.18,20 18.11,19.09M15.37,14.23C15.66,14.04 15.97,13.88 16.29,13.74C16.29,13.74 14.78,14 13.27,14.14C11.67,14.3 10.06,14.32 8.46,14.2C6.11,13.89 9.75,13 9.75,13C8.65,13 7.57,13.26 6.59,13.75C4.54,14.75 11.69,15.2 15.37,14.23M16.27,16.65C16.25,16.69 16.23,16.72 16.19,16.75C21.2,15.44 19.36,12.11 16.96,12.94C16.83,13 16.72,13.08 16.65,13.19C16.79,13.14 16.93,13.1 17.08,13.07C18.28,12.83 20,14.7 16.27,16.65M16.4,21.26C13.39,21.78 10.31,21.82 7.28,21.4C7.28,21.4 7.74,21.78 10.09,21.93C13.69,22.16 19.22,21.8 19.35,20.1C19.38,20.11 19.12,20.75 16.4,21.26Z\";\nexport var mdiLanguageJavascript = \"M3,3H21V21H3V3M7.73,18.04C8.13,18.89 8.92,19.59 10.27,19.59C11.77,19.59 12.8,18.79 12.8,17.04V11.26H11.1V17C11.1,17.86 10.75,18.08 10.2,18.08C9.62,18.08 9.38,17.68 9.11,17.21L7.73,18.04M13.71,17.86C14.21,18.84 15.22,19.59 16.8,19.59C18.4,19.59 19.6,18.76 19.6,17.23C19.6,15.82 18.79,15.19 17.35,14.57L16.93,14.39C16.2,14.08 15.89,13.87 15.89,13.37C15.89,12.96 16.2,12.64 16.7,12.64C17.18,12.64 17.5,12.85 17.79,13.37L19.1,12.5C18.55,11.54 17.77,11.17 16.7,11.17C15.19,11.17 14.22,12.13 14.22,13.4C14.22,14.78 15.03,15.43 16.25,15.95L16.67,16.13C17.45,16.47 17.91,16.68 17.91,17.26C17.91,17.74 17.46,18.09 16.76,18.09C15.93,18.09 15.45,17.66 15.09,17.06L13.71,17.86Z\";\nexport var mdiLanguageKotlin = \"M2 2H22L12 12L22 22H2Z\";\nexport var mdiLanguageLua = \"M10.5,5A8.5,8.5 0 0,0 2,13.5A8.5,8.5 0 0,0 10.5,22A8.5,8.5 0 0,0 19,13.5A8.5,8.5 0 0,0 10.5,5M13.5,13A2.5,2.5 0 0,1 11,10.5A2.5,2.5 0 0,1 13.5,8A2.5,2.5 0 0,1 16,10.5A2.5,2.5 0 0,1 13.5,13M19.5,2A2.5,2.5 0 0,0 17,4.5A2.5,2.5 0 0,0 19.5,7A2.5,2.5 0 0,0 22,4.5A2.5,2.5 0 0,0 19.5,2\";\nexport var mdiLanguageMarkdown = \"M20.56 18H3.44C2.65 18 2 17.37 2 16.59V7.41C2 6.63 2.65 6 3.44 6H20.56C21.35 6 22 6.63 22 7.41V16.59C22 17.37 21.35 18 20.56 18M6.81 15.19V11.53L8.73 13.88L10.65 11.53V15.19H12.58V8.81H10.65L8.73 11.16L6.81 8.81H4.89V15.19H6.81M19.69 12H17.77V8.81H15.85V12H13.92L16.81 15.28L19.69 12Z\";\nexport var mdiLanguageMarkdownOutline = \"M20.56 18H3.44C2.65 18 2 17.37 2 16.59V7.41C2 6.63 2.65 6 3.44 6H20.56C21.35 6 22 6.63 22 7.41V16.59C22 17.37 21.35 18 20.56 18M3.44 6.94C3.18 6.94 2.96 7.15 2.96 7.41V16.6C2.96 16.85 3.18 17.06 3.44 17.06H20.56C20.82 17.06 21.04 16.85 21.04 16.6V7.41C21.04 7.15 20.82 6.94 20.56 6.94H3.44M4.89 15.19V8.81H6.81L8.73 11.16L10.65 8.81H12.58V15.19H10.65V11.53L8.73 13.88L6.81 11.53V15.19H4.89M16.9 15.19L14 12.09H15.94V8.81H17.86V12.09H19.79L16.9 15.19\";\nexport var mdiLanguagePhp = \"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z\";\nexport var mdiLanguagePython = \"M19.14,7.5A2.86,2.86 0 0,1 22,10.36V14.14A2.86,2.86 0 0,1 19.14,17H12C12,17.39 12.32,17.96 12.71,17.96H17V19.64A2.86,2.86 0 0,1 14.14,22.5H9.86A2.86,2.86 0 0,1 7,19.64V15.89C7,14.31 8.28,13.04 9.86,13.04H15.11C16.69,13.04 17.96,11.76 17.96,10.18V7.5H19.14M14.86,19.29C14.46,19.29 14.14,19.59 14.14,20.18C14.14,20.77 14.46,20.89 14.86,20.89A0.71,0.71 0 0,0 15.57,20.18C15.57,19.59 15.25,19.29 14.86,19.29M4.86,17.5C3.28,17.5 2,16.22 2,14.64V10.86C2,9.28 3.28,8 4.86,8H12C12,7.61 11.68,7.04 11.29,7.04H7V5.36C7,3.78 8.28,2.5 9.86,2.5H14.14C15.72,2.5 17,3.78 17,5.36V9.11C17,10.69 15.72,11.96 14.14,11.96H8.89C7.31,11.96 6.04,13.24 6.04,14.82V17.5H4.86M9.14,5.71C9.54,5.71 9.86,5.41 9.86,4.82C9.86,4.23 9.54,4.11 9.14,4.11C8.75,4.11 8.43,4.23 8.43,4.82C8.43,5.41 8.75,5.71 9.14,5.71Z\";\nexport var mdiLanguageR = \"M12,4.29C6.5,4.29 2,7.29 2,11C2,14.28 5.56,17 10.24,17.58V19.71H13.65V17.59C14.5,17.5 15.29,17.34 16.04,17.11L17.42,19.71H21.28L18.96,15.8C20.83,14.58 22,12.87 22,11C22,7.29 17.5,4.29 12,4.29V4.29M13.53,6.91C17.73,6.91 20.83,8.31 20.83,11.5C20.83,13.21 19.91,14.41 18.41,15.15C18.32,15.1 18.24,15.05 18.19,15C17.83,14.84 17.23,14.66 17.23,14.66C17.23,14.66 20.21,14.44 20.21,11.47C20.21,8.5 17.09,8.45 17.09,8.45H10.24V15.61C7.69,14.87 5.93,13.3 5.93,11.5C5.93,8.96 9.33,6.91 13.53,6.91M13.68,10.89H15.75C15.75,10.89 16.7,10.84 16.7,11.83C16.7,12.8 15.75,12.8 15.75,12.8H13.68V10.89M13.65,15.3H14.57C14.75,15.3 14.84,15.35 15,15.5C15.13,15.6 15.27,15.79 15.39,15.96C14.84,16.03 14.26,16.06 13.65,16.06V15.3Z\";\nexport var mdiLanguageRuby = \"M18.8,2.07C21.32,2.5 22.04,4.23 22,6.04V6L20.86,20.93L6.08,21.94H6.09C4.86,21.89 2.13,21.77 2,17.95L3.37,15.45L6.14,21.91L8.5,14.29L8.45,14.3L8.47,14.28L16.18,16.74L14.19,8.96L21.54,8.5L15.75,3.76L18.8,2.06V2.07M2,17.91V17.93L2,17.91V17.91M6.28,6.23C9.24,3.28 13.07,1.54 14.54,3.03C16,4.5 14.46,8.12 11.5,11.06C8.5,14 4.73,15.84 3.26,14.36C1.79,12.87 3.3,9.17 6.27,6.23H6.28Z\";\nexport var mdiLanguageRubyOnRails = \"M19.8,16.7C19.8,16.7 21.6,16.5 21.6,14.3C21.6,12.1 19.5,11.8 19.5,11.8H15.7V19H17.6V17.3L19.3,19H22L19.8,16.7M19,15.3H17.5V13.7H19C19,13.7 19.4,13.9 19.4,14.5C19.5,15.1 19,15.3 19,15.3M21.3,8.2V8.4C13.2,6.1 10,13.2 10.6,18.7C10.6,18.7 4.9,18.7 4.3,18.7C5,13.3 11.8,2.6 21.3,8.2M20.5,6.9C19.8,6.6 19.1,6.3 18.4,6.1L18.5,4.8L20.6,5.6L20.5,6.9M18.5,8.7C19.2,8.7 19.9,8.8 20.6,9L20.5,10.2L18.7,10L18.5,8.7M13.9,5.8L13.5,4.6L15.6,4.4L16,5.7C15.8,5.7 14.1,5.8 13.9,5.8M15.2,9.5C15.6,9.3 16.3,9 17.2,8.8L17.6,10L15.8,10.7L15.2,9.5M11.8,6.5C11.2,6.8 10.6,7.1 10,7.5L9.2,6.2L11,5.2L11.8,6.5M14.3,10.1L15.1,11.3L14,12.6L12.9,11.6C13.2,11 13.7,10.5 14.3,10.1M11.6,15C11.7,14.2 11.9,13.5 12.2,12.7L13.4,13.7L13.1,15.6L11.6,15M7.9,9.3C7.4,9.8 6.9,10.4 6.5,10.9L5.2,9.8L6.7,8.2L7.9,9.3M4.8,13.7C4.4,14.5 4.1,15.3 3.8,16L2,15.3L2.9,13L4.8,13.7M11.5,16.3L13.3,16.9L13.6,18.9L11.6,18.4C11.6,18.2 11.5,17.5 11.5,16.3Z\";\nexport var mdiLanguageRust = \"M21.9 11.7L21 11.2V11L21.7 10.3C21.8 10.2 21.8 10 21.7 9.9L21.6 9.8L20.7 9.5C20.7 9.4 20.7 9.3 20.6 9.3L21.2 8.5C21.3 8.4 21.3 8.2 21.1 8.1C21.1 8.1 21 8.1 21 8L20 7.8C20 7.7 19.9 7.7 19.9 7.6L20.3 6.7V6.4C20.2 6.3 20.1 6.3 20 6.3H19C19 6.3 19 6.2 18.9 6.2L19.1 5.2C19.1 5 19 4.9 18.9 4.9H18.8L17.8 5.1C17.8 5 17.7 5 17.6 4.9V3.9C17.6 3.7 17.5 3.6 17.3 3.6H17.2L16.3 4H16.2L16 3C16 2.8 15.8 2.7 15.7 2.8H15.6L14.8 3.4C14.7 3.4 14.6 3.4 14.6 3.3L14.3 2.4C14.2 2.3 14.1 2.2 13.9 2.2C13.9 2.2 13.8 2.2 13.8 2.3L13 3H12.8L12.3 2.2C12.2 2 12 2 11.8 2L11.7 2.1L11.2 3H11L10.3 2.3C10.2 2.2 10 2.2 9.9 2.3L9.8 2.4L9.5 3.3C9.4 3.3 9.3 3.3 9.3 3.4L8.5 2.8C8.3 2.7 8.1 2.7 8 2.9V3L7.8 4C7.8 4 7.7 4 7.6 4.1L6.7 3.7C6.6 3.6 6.4 3.7 6.3 3.8V4.9C6.3 5 6.2 5 6.2 5.1L5.2 4.9C5 4.8 4.9 4.9 4.9 5.1V5.2L5.1 6.2C5 6.2 5 6.3 4.9 6.3H3.9C3.7 6.3 3.6 6.4 3.6 6.6V6.7L4 7.6V7.8L3 8C2.8 8 2.7 8.2 2.7 8.3V8.4L3.3 9.2C3.3 9.3 3.3 9.4 3.2 9.4L2.4 9.8C2.3 9.9 2.2 10 2.2 10.2C2.2 10.2 2.2 10.3 2.3 10.3L3 11V11.2L2.2 11.7C2 11.8 2 12 2 12.1L2.1 12.2L3 12.8V13L2.3 13.7C2.2 13.8 2.2 14 2.3 14.1L2.4 14.2L3.3 14.5C3.3 14.6 3.3 14.7 3.4 14.7L2.8 15.5C2.7 15.6 2.7 15.8 2.9 15.9C2.9 15.9 3 15.9 3 16L4 16.2C4 16.3 4.1 16.3 4.1 16.4L3.7 17.3C3.6 17.4 3.7 17.6 3.8 17.7H4.9C5 17.7 5 17.8 5.1 17.8L4.9 18.8C4.9 19 5 19.1 5.1 19.1H5.2L6.2 18.9C6.2 19 6.3 19 6.4 19.1V20.1C6.4 20.3 6.5 20.4 6.7 20.4H6.8L7.7 20H7.8L8 21C8 21.2 8.2 21.3 8.3 21.2H8.4L9.2 20.6C9.3 20.6 9.4 20.6 9.4 20.7L9.7 21.6C9.8 21.7 9.9 21.8 10.1 21.8C10.1 21.8 10.2 21.8 10.2 21.7L11 21H11.2L11.7 21.8C11.8 21.9 12 22 12.1 21.9L12.2 21.8L12.7 21H12.9L13.6 21.7C13.7 21.8 13.9 21.8 14 21.7L14.1 21.6L14.4 20.7C14.5 20.7 14.6 20.7 14.6 20.6L15.4 21.2C15.5 21.3 15.7 21.3 15.8 21.1C15.8 21.1 15.8 21 15.9 21L16.1 20C16.2 20 16.2 19.9 16.3 19.9L17.2 20.3C17.3 20.4 17.5 20.3 17.6 20.2V19.1L17.8 18.9L18.8 19.1C19 19.1 19.1 19 19.1 18.9V18.8L18.9 17.8L19.1 17.6H20.1C20.3 17.6 20.4 17.5 20.4 17.3V17.2L20 16.3C20 16.2 20.1 16.2 20.1 16.1L21.1 15.9C21.3 15.9 21.4 15.7 21.3 15.6V15.5L20.7 14.7L20.8 14.5L21.7 14.2C21.8 14.1 21.9 14 21.9 13.8C21.9 13.8 21.9 13.7 21.8 13.7L21 13V12.8L21.8 12.3C22 12.2 22 12 21.9 11.7C21.9 11.8 21.9 11.8 21.9 11.7M16.2 18.7C15.9 18.6 15.7 18.3 15.7 18C15.8 17.7 16.1 17.5 16.4 17.5C16.7 17.6 16.9 17.9 16.9 18.2C16.9 18.6 16.6 18.8 16.2 18.7M16 16.8C15.7 16.7 15.4 16.9 15.4 17.2L15 18.6C14.1 19 13.1 19.2 12 19.2C10.9 19.2 9.9 19 8.9 18.5L8.6 17.1C8.5 16.8 8.3 16.6 8 16.7L6.8 17C6.6 16.8 6.4 16.5 6.2 16.3H12.2C12.3 16.3 12.3 16.3 12.3 16.2V14.1C12.3 14 12.3 14 12.2 14H10.5V12.7H12.4C12.6 12.7 13.3 12.7 13.6 13.7C13.7 14 13.8 15 14 15.3C14.1 15.6 14.6 16.3 15.1 16.3H18.2C18 16.6 17.8 16.8 17.5 17.1L16 16.8M7.7 18.7C7.4 18.8 7.1 18.6 7 18.2C6.9 17.9 7.1 17.6 7.5 17.5S8.1 17.6 8.2 18C8.2 18.3 8 18.6 7.7 18.7M5.4 9.5C5.5 9.8 5.4 10.2 5.1 10.3C4.8 10.4 4.4 10.3 4.3 10C4.2 9.7 4.3 9.3 4.6 9.2C5 9.1 5.3 9.2 5.4 9.5M4.7 11.1L6 10.6C6.3 10.5 6.4 10.2 6.3 9.9L6 9.3H7V14H5C4.7 13 4.6 12.1 4.7 11.1M10.3 10.7V9.3H12.8C12.9 9.3 13.7 9.4 13.7 10C13.7 10.5 13.1 10.7 12.6 10.7H10.3M19.3 11.9V12.4H18.5C18.4 12.4 18.4 12.4 18.4 12.5V12.8C18.4 13.6 17.9 13.8 17.5 13.8C17.1 13.8 16.7 13.6 16.6 13.4C16.4 12.1 16 11.9 15.4 11.4C16.1 10.9 16.9 10.2 16.9 9.3C16.9 8.3 16.2 7.7 15.8 7.4C15.1 7 14.4 6.9 14.2 6.9H6.6C7.7 5.7 9.1 4.9 10.7 4.6L11.6 5.6C11.8 5.8 12.1 5.8 12.4 5.6L13.4 4.6C15.5 5 17.3 6.3 18.4 8.2L17.7 9.8C17.6 10.1 17.7 10.4 18 10.5L19.3 11.1V11.9M11.6 3.9C11.8 3.7 12.2 3.7 12.4 3.9C12.6 4.1 12.6 4.5 12.4 4.7C12.1 5 11.8 5 11.5 4.7C11.3 4.5 11.4 4.2 11.6 3.9M18.5 9.5C18.6 9.2 19 9.1 19.3 9.2C19.6 9.3 19.7 9.7 19.6 10C19.5 10.3 19.1 10.4 18.8 10.3C18.5 10.2 18.4 9.8 18.5 9.5Z\";\nexport var mdiLanguageSwift = \"M17.09,19.72C14.73,21.08 11.5,21.22 8.23,19.82C5.59,18.7 3.4,16.74 2,14.5C2.67,15.05 3.46,15.5 4.3,15.9C7.67,17.47 11.03,17.36 13.4,15.9C10.03,13.31 7.16,9.94 5.03,7.19C4.58,6.74 4.25,6.18 3.91,5.68C12.19,11.73 11.83,13.27 6.32,4.67C11.21,9.61 15.75,12.41 15.75,12.41C15.91,12.5 16,12.57 16.11,12.63C16.21,12.38 16.3,12.12 16.37,11.85C17.16,9 16.26,5.73 14.29,3.04C18.84,5.79 21.54,10.95 20.41,15.28C20.38,15.39 20.35,15.5 20.36,15.67C22.6,18.5 22,21.45 21.71,20.89C20.5,18.5 18.23,19.24 17.09,19.72V19.72Z\";\nexport var mdiLanguageTypescript = \"M3,3H21V21H3V3M13.71,17.86C14.21,18.84 15.22,19.59 16.8,19.59C18.4,19.59 19.6,18.76 19.6,17.23C19.6,15.82 18.79,15.19 17.35,14.57L16.93,14.39C16.2,14.08 15.89,13.87 15.89,13.37C15.89,12.96 16.2,12.64 16.7,12.64C17.18,12.64 17.5,12.85 17.79,13.37L19.1,12.5C18.55,11.54 17.77,11.17 16.7,11.17C15.19,11.17 14.22,12.13 14.22,13.4C14.22,14.78 15.03,15.43 16.25,15.95L16.67,16.13C17.45,16.47 17.91,16.68 17.91,17.26C17.91,17.74 17.46,18.09 16.76,18.09C15.93,18.09 15.45,17.66 15.09,17.06L13.71,17.86M13,11.25H8V12.75H9.5V20H11.25V12.75H13V11.25Z\";\nexport var mdiLanguageXaml = \"M16.93 7.9L19.31 12L16.95 16.09L16.33 15L17.8 12.5C17.97 12.19 17.97 11.83 17.8 11.54L16.32 9L16.93 7.9M16.92 6.57C16.89 6.57 16.85 6.59 16.83 6.62L15.56 8.87C15.5 8.94 15.5 9 15.56 9.09L17.18 11.9C17.22 11.97 17.22 12.05 17.18 12.12L15.57 14.91C15.53 14.97 15.53 15.06 15.57 15.13L16.85 17.36C16.87 17.4 16.91 17.42 16.94 17.42C17 17.42 17 17.4 17.04 17.36L20 12.23C20.08 12.09 20.08 11.92 20 11.79L17 6.62C17 6.59 16.96 6.57 16.92 6.57M21.91 11.67L17.23 3.58C17.11 3.38 16.89 3.25 16.66 3.25H7.28C7.05 3.25 6.83 3.38 6.71 3.58L2 11.67C1.91 11.87 1.91 12.13 2 12.33L6.71 20.42C6.83 20.62 7.05 20.75 7.28 20.75H16.66C16.89 20.75 17.11 20.62 17.23 20.42L21.91 12.33C22.03 12.13 22.03 11.88 21.91 11.67M7.3 3.95H16.12L11.76 11.65H6.93L10.87 4.82C10.91 4.75 10.86 4.66 10.78 4.66L8.21 4.65C8.13 4.65 8.06 4.7 8 4.76L4.04 11.65H2.84L7.3 3.95M6.17 12.46L9.74 18.63L8.5 18.63L4.87 12.35L4.67 12L4.87 11.65L8.5 5.37L9.73 5.37L6.17 11.53C6.15 11.57 6.13 11.61 6.11 11.65C6.03 11.88 6.03 12.13 6.12 12.35C6.13 12.39 6.15 12.43 6.17 12.46M7.3 20.05L2.85 12.35H4.05L8.03 19.23C8.07 19.3 8.14 19.34 8.22 19.34L10.79 19.34C10.87 19.34 10.92 19.25 10.88 19.18L6.94 12.35H11.77L16.17 20.05H7.3M16.8 19.75L12.37 12L16.78 4.21L21.29 12L16.8 19.75Z\";\nexport var mdiLaptop = \"M4,6H20V16H4M20,18A2,2 0 0,0 22,16V6C22,4.89 21.1,4 20,4H4C2.89,4 2,4.89 2,6V16A2,2 0 0,0 4,18H0V20H24V18H20Z\";\nexport var mdiLaptopAccount = \"M20 4C21.1 4 22 4.89 22 6V16C22 17.11 21.11 18 20 18H24V20H0V18H4C2.9 18 2 17.11 2 16V6C2 4.89 2.89 4 4 4H20M20 6H4V16H20V6M12 12C14.21 12 16 12.9 16 14V15H8V14C8 12.9 9.79 12 12 12M12 7C13.11 7 14 7.9 14 9S13.11 11 12 11 10 10.11 10 9 10.9 7 12 7Z\";\nexport var mdiLaptopOff = \"M1,4.27L2.28,3L20,20.72L18.73,22L16.73,20H0V18H4C2.89,18 2,17.1 2,16V6C2,5.78 2.04,5.57 2.1,5.37L1,4.27M4,16H12.73L4,7.27V16M20,16V6H7.82L5.82,4H20A2,2 0 0,1 22,6V16A2,2 0 0,1 20,18H24V20H21.82L17.82,16H20Z\";\nexport var mdiLaravel = \"M21.7 6.53C21.71 6.55 21.71 6.58 21.71 6.61V10.9C21.71 11 21.65 11.12 21.56 11.17L17.95 13.25V17.36C17.95 17.47 17.9 17.57 17.8 17.63L10.28 21.96C10.26 21.97 10.24 22 10.22 22L10.2 22C10.15 22 10.09 22 10.04 22C10.03 22 10 22 10 22C10 22 10 21.97 9.96 21.96L2.44 17.63C2.35 17.58 2.29 17.47 2.29 17.36V4.5C2.29 4.45 2.29 4.42 2.3 4.4C2.3 4.39 2.31 4.38 2.31 4.37C2.31 4.35 2.32 4.34 2.33 4.32C2.33 4.31 2.34 4.3 2.35 4.29C2.36 4.28 2.37 4.27 2.38 4.26C2.39 4.25 2.4 4.24 2.41 4.23C2.42 4.22 2.43 4.21 2.44 4.21L6.2 2.04C6.3 2 6.42 2 6.5 2.04L10.28 4.21H10.28C10.29 4.22 10.3 4.22 10.31 4.23C10.32 4.24 10.33 4.25 10.34 4.26C10.35 4.27 10.36 4.28 10.37 4.29C10.38 4.3 10.39 4.31 10.39 4.32C10.4 4.34 10.41 4.35 10.41 4.37C10.41 4.38 10.42 4.39 10.42 4.4C10.43 4.43 10.43 4.45 10.43 4.5V12.5L13.57 10.72V6.61C13.57 6.58 13.57 6.55 13.58 6.53L13.59 6.5C13.59 6.5 13.6 6.47 13.61 6.45C13.61 6.44 13.62 6.43 13.63 6.42C13.64 6.41 13.65 6.4 13.66 6.39C13.67 6.38 13.68 6.37 13.69 6.36C13.7 6.35 13.71 6.34 13.72 6.34L17.5 4.17C17.58 4.11 17.7 4.11 17.8 4.17L21.56 6.34C21.57 6.34 21.58 6.35 21.59 6.36L21.62 6.39C21.63 6.4 21.64 6.41 21.65 6.42C21.66 6.43 21.66 6.44 21.67 6.45C21.68 6.47 21.68 6.5 21.69 6.5C21.7 6.5 21.7 6.5 21.7 6.53M21.09 10.72V7.15L17.95 8.95V12.5L21.09 10.72M17.33 17.18V13.6L10.43 17.54V21.15L17.33 17.18M2.91 5V17.18L9.81 21.15V17.54L6.21 15.5L6.2 15.5L6.2 15.5C6.19 15.5 6.18 15.5 6.17 15.47C6.16 15.47 6.15 15.46 6.14 15.45V15.45C6.13 15.44 6.12 15.43 6.11 15.42C6.1 15.41 6.1 15.4 6.09 15.39V15.39C6.08 15.37 6.08 15.36 6.07 15.35C6.07 15.33 6.06 15.32 6.06 15.31C6.05 15.3 6.05 15.28 6.05 15.27C6.05 15.25 6.05 15.24 6.05 15.23V6.82L2.91 5M6.36 2.68L3.23 4.5L6.36 6.28L9.5 4.5L6.36 2.68M9.81 12.88V5L6.67 6.82V14.69L9.81 12.88M17.64 4.8L14.5 6.61L17.64 8.41L20.77 6.61L17.64 4.8M17.33 8.95L14.19 7.15V10.72L17.33 12.5V8.95M10.12 17L17 13.06L13.88 11.26L7 15.23L10.12 17Z\";\nexport var mdiLaserPointer = \"M9 13L5 16C4 16.88 3.86 18.12 4 19C4.13 20 4.91 21.22 6 21.68C7.57 22.35 9.09 21.9 10.04 20.92L19 13C20.86 11.62 20 9 18 9H12L19.46 4.61C19.9 4.29 20.08 3.82 20.06 3.37C20 2.67 19.46 2 18.6 2H18.54C18.19 2 17.86 2.11 17.56 2.29L5 9C4.19 9.46 3.94 10.24 4 11C4.05 12.03 4.74 13 6 13M5 18.5C5 17.12 6.12 16 7.5 16S10 17.12 10 18.5 8.88 21 7.5 21 5 19.88 5 18.5Z\";\nexport var mdiLasso = \"M22 9C22 5.13 17.5 2 12 2C6.5 2 2 5.13 2 9C2 9.00843 2.00002 9.01685 2.00006 9.02527C2.00952 10.8953 3.06771 12.5956 4.78 13.85C4.78103 13.847 4.78207 13.844 4.7831 13.841C5.18858 14.1369 5.63069 14.408 6.10419 14.6507C6.03614 14.9227 6 15.2072 6 15.5C6 16.76 6.67 17.87 7.67 18.5C7.46 19.11 6.97 20.96 8.3 22.05C9.91 23.38 11.66 22.97 12.56 22.69C12.8116 22.6126 13.0655 22.5076 13.3395 22.3944C14.0563 22.0981 14.9105 21.7451 16.22 21.68C17.6764 21.5995 18.9321 21.8104 19.5651 21.9167C19.7188 21.9425 19.8358 21.9622 19.91 21.97C19.91 21.97 20.86 21.97 20.97 21.04C21.08 20.1 20.03 19.97 20.03 19.97C20.03 19.97 18.43 19.7 16.39 19.71C14.9823 19.7145 13.7447 20.1595 12.703 20.5341C11.4434 20.987 10.4704 21.3368 9.83 20.68C9.18 20 9.39 19.36 9.6 19C11.3416 18.9542 12.7471 17.6481 12.9693 15.9673C13.4921 15.9319 14.0034 15.8699 14.5 15.78C18.6753 15.0244 21.7995 12.4293 21.9907 9.30406C21.9969 9.20324 22 9.10187 22 9ZM20 9C20 10.2554 19.2572 11.4047 18.032 12.2843C16.6998 13.2393 14.7966 13.8752 12.6542 13.9835C12.0881 12.8109 10.887 12 9.5 12C8.57261 12 7.72834 12.3625 7.10143 12.9533C6.61638 12.7181 6.17578 12.4489 5.78883 12.1513L5.79 12.15C4.6875 11.3034 4.02105 10.2243 4.00049 9.05571C4.00016 9.03717 4 9.01859 4 9C4 6.24 7.58 4 12 4C16.42 4 20 6.24 20 9ZM10.9988 15.5603C10.9933 15.6993 10.9689 15.8333 10.9281 15.96C10.7345 16.5641 10.1694 17 9.5 17C8.67 17 8 16.33 8 15.5C8 15.4718 8.00078 15.4437 8.00231 15.4159C8.04595 14.6266 8.69981 14 9.5 14C10.3284 14 11 14.6716 11 15.5C11 15.5202 10.9996 15.5403 10.9988 15.5603Z\";\nexport var mdiLastpass = \"M14,12A2,2 0 0,1 16,10A2,2 0 0,1 18,12A2,2 0 0,1 16,14A2,2 0 0,1 14,12M8,12A2,2 0 0,1 10,10A2,2 0 0,1 12,12A2,2 0 0,1 10,14A2,2 0 0,1 8,12M2,12A2,2 0 0,1 4,10A2,2 0 0,1 6,12A2,2 0 0,1 4,14A2,2 0 0,1 2,12M22,5H20V19H22V5Z\";\nexport var mdiLatitude = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 4C15 4 17.5 5.6 18.9 8H5.1C6.5 5.6 9 4 12 4M12 20C9 20 6.5 18.4 5.1 16H18.9C17.5 18.4 15 20 12 20M4.3 14C4.1 13.4 4 12.7 4 12S4.1 10.6 4.3 10H19.8C20 10.6 20.1 11.3 20.1 12S20 13.4 19.8 14H4.3Z\";\nexport var mdiLaunch = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nexport var mdiLavaLamp = \"M10,3L8,16H16L14,3H10M11.5,5.75A0.75,0.75 0 0,1 12.25,6.5A0.75,0.75 0 0,1 11.5,7.25A0.75,0.75 0 0,1 10.75,6.5A0.75,0.75 0 0,1 11.5,5.75M12.5,8.5A1,1 0 0,1 13.5,9.5A1,1 0 0,1 12.5,10.5A1,1 0 0,1 11.5,9.5A1,1 0 0,1 12.5,8.5M11.5,12A1.5,1.5 0 0,1 13,13.5A1.5,1.5 0 0,1 11.5,15A1.5,1.5 0 0,1 10,13.5A1.5,1.5 0 0,1 11.5,12M8,17L10,19L8,21H16L14,19L16,17H8Z\";\nexport var mdiLayers = \"M12,16L19.36,10.27L21,9L12,2L3,9L4.63,10.27M12,18.54L4.62,12.81L3,14.07L12,21.07L21,14.07L19.37,12.8L12,18.54Z\";\nexport var mdiLayersEdit = \"M4.63 10.27L3 9L12 2L19.94 8.17L12.5 15.61L12 16L4.63 10.27M10 18.94V18.11L10.59 17.53L10.63 17.5L4.62 12.81L3 14.07L10 19.5V18.94M21.7 12.58L20.42 11.3C20.21 11.09 19.86 11.09 19.65 11.3L18.65 12.3L20.7 14.35L21.7 13.35C21.91 13.14 21.91 12.79 21.7 12.58M12 21H14.06L20.11 14.93L18.06 12.88L12 18.94V21Z\";\nexport var mdiLayersMinus = \"M22,17V19H14V17H22M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z\";\nexport var mdiLayersOff = \"M3.27,1L2,2.27L6.22,6.5L3,9L4.63,10.27L12,16L14.1,14.37L15.53,15.8L12,18.54L4.63,12.81L3,14.07L12,21.07L16.95,17.22L20.73,21L22,19.73L3.27,1M19.36,10.27L21,9L12,2L9.09,4.27L16.96,12.15L19.36,10.27M19.81,15L21,14.07L19.57,12.64L18.38,13.56L19.81,15Z\";\nexport var mdiLayersOffOutline = \"M12,4.53L10.83,5.44L9.41,4L12,2L21,9L17.28,11.89L15.85,10.47L17.74,9L12,4.53M21,14.07L20.13,14.75L18.7,13.32L19.37,12.8L21,14.07M3.41,0.86L22.14,19.59L20.73,21L16.95,17.22L12,21.07L3,14.07L4.62,12.81L12,18.54L15.5,15.79L14.1,14.37L12,16L3,9L6.22,6.5L2,2.27L3.41,0.86M12,13.47L12.67,12.94L7.65,7.92L6.26,9L12,13.47Z\";\nexport var mdiLayersOutline = \"M12,18.54L19.37,12.8L21,14.07L12,21.07L3,14.07L4.62,12.81L12,18.54M12,16L3,9L12,2L21,9L12,16M12,4.53L6.26,9L12,13.47L17.74,9L12,4.53Z\";\nexport var mdiLayersPlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z\";\nexport var mdiLayersRemove = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z\";\nexport var mdiLayersSearch = \"M19.31 18.9C19.75 18.21 20 17.38 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.37 21 17.19 20.75 17.88 20.32L21 23.39L22.39 22L19.31 18.9M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M9.59 19.2L3 14.07L4.62 12.81L9 16.22C9 16.32 9 16.41 9 16.5C9 17.46 9.22 18.38 9.59 19.2M4.63 10.27L3 9L12 2L21 9L19.36 10.27L18.65 10.82C17.72 10.3 16.64 10 15.5 10C12.79 10 10.46 11.68 9.5 14.05L4.63 10.27Z\";\nexport var mdiLayersSearchOutline = \"M19.31 18.9C19.75 18.21 20 17.38 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.37 21 17.19 20.75 17.88 20.32L21 23.39L22.39 22L19.31 18.9M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M9.59 19.2L3 14.07L4.62 12.81L9 16.22C9 16.32 9 16.41 9 16.5C9 17.46 9.22 18.38 9.59 19.2M9.5 14.04L3 9L12 2L21 9L18.66 10.82C17.96 10.44 17.19 10.18 16.37 10.07L17.74 9L12 4.53L6.26 9L10.53 12.32C10.1 12.84 9.74 13.42 9.5 14.04Z\";\nexport var mdiLayersTriple = \"M12 0L3 7L4.63 8.27L12 14L19.36 8.27L21 7L12 0M19.37 10.73L12 16.47L4.62 10.74L3 12L12 19L21 12L19.37 10.73M19.37 15.73L12 21.47L4.62 15.74L3 17L12 24L21 17L19.37 15.73Z\";\nexport var mdiLayersTripleOutline = \"M12 16.54L19.37 10.8L21 12.07L12 19.07L3 12.07L4.62 10.81L12 16.54M12 14L3 7L12 0L21 7L12 14M12 2.53L6.26 7L12 11.47L17.74 7L12 2.53M12 21.47L19.37 15.73L21 17L12 24L3 17L4.62 15.74L12 21.47\";\nexport var mdiLeadPencil = \"M16.84,2.73C16.45,2.73 16.07,2.88 15.77,3.17L13.65,5.29L18.95,10.6L21.07,8.5C21.67,7.89 21.67,6.94 21.07,6.36L17.9,3.17C17.6,2.88 17.22,2.73 16.84,2.73M12.94,6L4.84,14.11L7.4,14.39L7.58,16.68L9.86,16.85L10.15,19.41L18.25,11.3M4.25,15.04L2.5,21.73L9.2,19.94L8.96,17.78L6.65,17.61L6.47,15.29\";\nexport var mdiLeaf = \"M17,8C8,10 5.9,16.17 3.82,21.34L5.71,22L6.66,19.7C7.14,19.87 7.64,20 8,20C19,20 22,3 22,3C21,5 14,5.25 9,6.25C4,7.25 2,11.5 2,13.5C2,15.5 3.75,17.25 3.75,17.25C7,8 17,8 17,8Z\";\nexport var mdiLeafCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M9.6 17.2C9.38 17.2 9.08 17.12 8.8 17L8.23 18.4L7.09 18L7.25 17.61C8.45 14.59 9.83 11.15 15 10C15 10 9 10 7.05 15.55C7.05 15.55 6 14.5 6 13.3S7.2 9.55 10.2 8.95C11.05 8.78 12 8.65 12.94 8.5C15.3 8.18 17.57 7.86 18 7C18 7 16.2 17.2 9.6 17.2Z\";\nexport var mdiLeafCircleOutline = \"M8.04 16.34C9.05 13.83 10.19 10.96 14.5 10C14.5 10 9.5 10 7.88 14.63C7.88 14.63 7 13.75 7 12.75S8 9.63 10.5 9.13C11.21 9 12 8.87 12.78 8.76C14.75 8.5 16.64 8.22 17 7.5C17 7.5 15.5 16 10 16C9.82 16 9.57 15.94 9.33 15.85L8.86 17L7.91 16.67L8.04 16.34M12 4C16.41 4 20 7.59 20 12S16.41 20 12 20 4 16.41 4 12 7.59 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2Z\";\nexport var mdiLeafMaple = \"M21.79,13L16,16L17,18L13,17.25V21H11V17.25L7,18L8,16L2.21,13L3.21,11.27L1.61,8L5.21,7.77L6.21,6L9.63,9.9L8,5H10L12,2L14,5H16L14.37,9.9L17.79,6L18.79,7.73L22.39,7.96L20.79,11.19L21.79,13Z\";\nexport var mdiLeafMapleOff = \"M18.11 14.91L8.2 5H10L12 2L14 5H16L14.37 9.9L17.79 6L18.79 7.73L22.39 7.96L20.79 11.19L21.79 13L18.11 14.91M2.39 1.73L1.11 3L5.45 7.34L5.21 7.77L1.61 8L3.21 11.27L2.21 13L8 16L7 18L11 17.25V21H13V17.25L15.91 17.8L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiLeafOff = \"M20.84 22.73L15.14 17.03C13.26 18.79 10.92 20 8 20C7.64 20 7.14 19.87 6.66 19.7L5.71 22L3.82 21.34C5.15 18.03 6.5 14.32 9.66 11.55L8.77 10.66C6.76 12.03 4.86 14.1 3.75 17.25C3.75 17.25 2 15.5 2 13.5C2 12 3.12 9.32 5.72 7.61L1.11 3L2.39 1.73C2.39 1.73 16.39 15.74 16.39 15.74L22.11 21.46L20.84 22.73M17 8C15.35 8.37 13.93 8.88 12.7 9.5L17.5 14.29C20.87 9.35 22 3 22 3C21.03 4.95 14.35 5.24 9.38 6.18L12.15 8.95C14.81 8 17 8 17 8Z\";\nexport var mdiLeak = \"M6,3H3V6A3,3 0 0,0 6,3M14,3H12A9,9 0 0,1 3,12V14C9.08,14 14,9.07 14,3M10,3H8A5,5 0 0,1 3,8V10A7,7 0 0,0 10,3M10,21H12A9,9 0 0,1 21,12V10A11,11 0 0,0 10,21M18,21H21V18A3,3 0 0,0 18,21M14,21H16A5,5 0 0,1 21,16V14A7,7 0 0,0 14,21Z\";\nexport var mdiLeakOff = \"M10,3H8C8,3.37 7.96,3.72 7.88,4.06L9.47,5.65C9.81,4.84 10,3.94 10,3M3,4.27L5.84,7.11C5.03,7.67 4.06,8 3,8V10C4.61,10 6.09,9.45 7.27,8.54L8.7,9.97C7.14,11.24 5.16,12 3,12V14C5.71,14 8.19,13 10.11,11.38L12.61,13.88C11,15.81 10,18.29 10,21H12C12,18.84 12.76,16.86 14.03,15.31L15.46,16.74C14.55,17.91 14,19.39 14,21H16C16,19.94 16.33,18.97 16.89,18.16L19.73,21L21,19.73L4.27,3L3,4.27M14,3H12C12,4.5 11.63,5.91 11,7.16L12.44,8.62C13.42,7 14,5.06 14,3M19.94,16.12C20.28,16.04 20.63,16 21,16V14C20.06,14 19.16,14.19 18.34,14.5L19.94,16.12M15.38,11.56L16.84,13C18.09,12.37 19.5,12 21,12V10C18.94,10 17,10.58 15.38,11.56Z\";\nexport var mdiLectern = \"M17 21V22H7V21H9V11H15V21H17M17.5 6C17.5 4.39 16.41 3.05 14.93 2.64C14.78 2.27 14.43 2 14 2C13.45 2 13 2.45 13 3C13 3.55 13.45 4 14 4C14.31 4 14.58 3.85 14.76 3.63C15.77 3.95 16.5 4.89 16.5 6H4L5 10H19L20 6H17.5Z\";\nexport var mdiLedOff = \"M12,6A4,4 0 0,0 8,10V16H6V18H9V23H11V18H13V23H15V18H18V16H16V10A4,4 0 0,0 12,6Z\";\nexport var mdiLedOn = \"M11,0V4H13V0H11M18.3,2.29L15.24,5.29L16.64,6.71L19.7,3.71L18.3,2.29M5.71,2.29L4.29,3.71L7.29,6.71L8.71,5.29L5.71,2.29M12,6A4,4 0 0,0 8,10V16H6V18H9V23H11V18H13V23H15V18H18V16H16V10A4,4 0 0,0 12,6M2,9V11H6V9H2M18,9V11H22V9H18Z\";\nexport var mdiLedOutline = \"M12,6A4,4 0 0,0 8,10V16H6V18H9V23H11V18H13V23H15V18H18V16H16V10A4,4 0 0,0 12,6M12,8A2,2 0 0,1 14,10V15H10V10A2,2 0 0,1 12,8Z\";\nexport var mdiLedStrip = \"M2.81,8.46L14.83,20.5L15.54,19.78L16.95,21.19L18.36,19.78L16.95,18.36L18.36,16.95L19.78,18.36L21.19,16.95L19.78,15.54L20.5,14.83L8.46,2.81L2.81,8.46M5.64,8.46L8.46,5.64L17.66,14.83L14.83,17.66L5.64,8.46M7.05,8.46L8.46,9.88L9.88,8.46L8.46,7.05L7.05,8.46M9.17,10.59L10.59,12L12,10.59L10.59,9.17L9.17,10.59M11.29,12.71L12.71,14.12L14.12,12.71L12.71,11.29L11.29,12.71M13.41,14.83L14.83,16.24L16.24,14.83L14.83,13.41L13.41,14.83Z\";\nexport var mdiLedStripVariant = \"M2.95 3L2 6.91L19.34 11.25L20.29 7.34L2.95 3M6.09 6.89L4.16 6.41L4.64 4.46L6.57 4.94L6.09 6.89M9.94 7.86L8 7.38L8.5 5.42L10.42 5.91L9.94 7.86M13.8 8.82L11.87 8.34L12.35 6.39L14.27 6.87L13.8 8.82M17.65 9.79L15.72 9.31L16.2 7.35L18.13 7.84L17.65 9.79M4.66 12.75L3.71 16.66L21.05 21L22 17.1L4.66 12.75M7.8 16.65L5.88 16.16L6.35 14.21L8.28 14.69L7.8 16.65M11.65 17.61L9.73 17.13L10.2 15.18L12.13 15.66L11.65 17.61M15.5 18.58L13.58 18.09L14.06 16.14L16 16.62L15.5 18.58M19.36 19.54L17.43 19.06L17.91 17.11L19.84 17.59L19.36 19.54M6.25 12.11L11 10.2L17.75 11.89L13 13.8L6.25 12.11Z\";\nexport var mdiLedStripVariantOff = \"M22.11 21.46L2.39 1.73L1.11 3L2.59 4.5L2 6.91L6.03 7.92L9.08 10.97L6.25 12.11L11.55 13.44L12.94 14.83L4.66 12.75L3.71 16.66L18.46 20.35L20.84 22.73L22.11 21.46M7.8 16.65L5.88 16.16L6.35 14.21L8.28 14.69L7.8 16.65M11.65 17.61L9.73 17.13L10.2 15.18L12.13 15.66L11.65 17.61M15.5 18.58L13.58 18.09L14.06 16.14L14.31 16.2L15.74 17.63L15.5 18.58M19.73 16.53L22 17.1L21.67 18.47L19.73 16.53M15.85 12.65L14.2 11L17.75 11.89L15.85 12.65M10.42 5.91L10.16 6.96L12.82 9.62L19.34 11.25L20.29 7.34L7.29 4.09L8.66 5.46L10.42 5.91M16.2 7.35L18.13 7.84L17.65 9.79L15.72 9.31L16.2 7.35M12.35 6.39L14.27 6.87L13.8 8.82L11.87 8.34L12.35 6.39Z\";\nexport var mdiLedVariantOff = \"M12,3C10.05,3 8.43,4.4 8.08,6.25L16.82,15H18V13H16V7A4,4 0 0,0 12,3M3.28,4L2,5.27L8,11.27V13H6V15H9V21H11V15H11.73L13,16.27V21H15V18.27L18.73,22L20,20.72L15,15.72L8,8.72L3.28,4Z\";\nexport var mdiLedVariantOn = \"M12,3A4,4 0 0,0 8,7V13H6V15H9V21H11V15H13V21H15V15H18V13H16V7A4,4 0 0,0 12,3Z\";\nexport var mdiLedVariantOutline = \"M12,3A4,4 0 0,0 8,7V13H6V15H9V21H11V15H13V21H15V15H18V13H16V7A4,4 0 0,0 12,3M12,5A2,2 0 0,1 14,7V12H10V7A2,2 0 0,1 12,5Z\";\nexport var mdiLeek = \"M10 2V5.55L12 7.55L14 5.55V2H10M6.34 4L3.87 6.5L15 17.62V12.67L6.34 4M17.66 4L13.06 8.61L15.54 11.09L20.13 6.5L17.66 4M9 13.74V20A2 2 0 0 0 11 22H13A2 2 0 0 0 15 20V19.74L13 17.74V20H11V15.74L9 13.74Z\";\nexport var mdiLessThan = \"M18.5,4.14L19.5,5.86L8.97,12L19.5,18.14L18.5,19.86L5,12L18.5,4.14Z\";\nexport var mdiLessThanOrEqual = \"M18.5,2.27L5,10.14L18.5,18L19.5,16.27L8.97,10.14L19.5,4L18.5,2.27M5,20V22H20V20H5Z\";\nexport var mdiLibrary = \"M12,8A3,3 0 0,0 15,5A3,3 0 0,0 12,2A3,3 0 0,0 9,5A3,3 0 0,0 12,8M12,11.54C9.64,9.35 6.5,8 3,8V19C6.5,19 9.64,20.35 12,22.54C14.36,20.35 17.5,19 21,19V8C17.5,8 14.36,9.35 12,11.54Z\";\nexport var mdiLibraryOutline = \"M12 14.27L10.64 13C9.09 11.57 7.16 10.57 5 10.18V17.13C7.61 17.47 10 18.47 12 19.95C14 18.47 16.39 17.47 19 17.13V10.18C16.84 10.57 14.91 11.57 13.36 13M19 8.15C19.65 8.05 20.32 8 21 8V19C17.5 19 14.36 20.35 12 22.54C9.64 20.35 6.5 19 3 19V8C3.68 8 4.35 8.05 5 8.15C7.69 8.56 10.1 9.78 12 11.54C13.9 9.78 16.31 8.56 19 8.15M12 6C12.27 6 12.5 5.9 12.71 5.71C12.9 5.5 13 5.27 13 5S12.9 4.5 12.71 4.29C12.5 4.11 12.27 4 12 4S11.5 4.11 11.29 4.29C11.11 4.5 11 4.74 11 5S11.11 5.5 11.29 5.71C11.5 5.9 11.74 6 12 6M14.12 7.12C13.56 7.68 12.8 8 12 8S10.44 7.68 9.88 7.12C9.32 6.56 9 5.8 9 5S9.32 3.44 9.88 2.88C10.44 2.32 11.2 2 12 2S13.56 2.32 14.12 2.88 15 4.2 15 5 14.68 6.56 14.12 7.12Z\";\nexport var mdiLibraryShelves = \"M19.5,9V1.5H16.5V9H13.5V1.5H10.5V9H7.5V1.5H4.65V9H3V10.5H21V9H19.5M19.5,13.5H16.5V21H13.5V13.5H10.5V21H7.5V13.5H4.65V21H3V22.5H21V21H19.5V13.5Z\";\nexport var mdiLicense = \"M9 10A3.04 3.04 0 0 1 12 7A3.04 3.04 0 0 1 15 10A3.04 3.04 0 0 1 12 13A3.04 3.04 0 0 1 9 10M12 19L16 20V16.92A7.54 7.54 0 0 1 12 18A7.54 7.54 0 0 1 8 16.92V20M12 4A5.78 5.78 0 0 0 7.76 5.74A5.78 5.78 0 0 0 6 10A5.78 5.78 0 0 0 7.76 14.23A5.78 5.78 0 0 0 12 16A5.78 5.78 0 0 0 16.24 14.23A5.78 5.78 0 0 0 18 10A5.78 5.78 0 0 0 16.24 5.74A5.78 5.78 0 0 0 12 4M20 10A8.04 8.04 0 0 1 19.43 12.8A7.84 7.84 0 0 1 18 15.28V23L12 21L6 23V15.28A7.9 7.9 0 0 1 4 10A7.68 7.68 0 0 1 6.33 4.36A7.73 7.73 0 0 1 12 2A7.73 7.73 0 0 1 17.67 4.36A7.68 7.68 0 0 1 20 10Z\";\nexport var mdiLifebuoy = \"M19.79,15.41C20.74,13.24 20.74,10.75 19.79,8.59L17.05,9.83C17.65,11.21 17.65,12.78 17.06,14.17L19.79,15.41M15.42,4.21C13.25,3.26 10.76,3.26 8.59,4.21L9.83,6.94C11.22,6.35 12.79,6.35 14.18,6.95L15.42,4.21M4.21,8.58C3.26,10.76 3.26,13.24 4.21,15.42L6.95,14.17C6.35,12.79 6.35,11.21 6.95,9.82L4.21,8.58M8.59,19.79C10.76,20.74 13.25,20.74 15.42,19.78L14.18,17.05C12.8,17.65 11.22,17.65 9.84,17.06L8.59,19.79M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8Z\";\nexport var mdiLightFloodDown = \"M8 11H2V9H8C8.55 9 9 9.45 9 10C9 10.55 8.55 11 8 11M14.87 4.35L14.5 5.27L8.18 4.86L6.9 8H8C9.1 8 10 8.9 10 10S9.1 12 8 12H5.27L4.41 14.12L9.21 18.24L8.83 19.16L10.69 19.92L16.72 5.1L14.87 4.35M20.81 6.29L21.57 8.14L19.26 9.1L18.5 7.25L20.81 6.29M18.78 13.57L21.55 14.72L20.79 16.57L18 15.42L18.78 13.57M16.15 21.23L14.3 22L13.34 19.69L15.19 18.93L16.15 21.23Z\";\nexport var mdiLightFloodUp = \"M8 15H2V13H8C8.55 13 9 13.45 9 14C9 14.55 8.55 15 8 15M16.72 18.9L10.69 4.08L8.83 4.84L9.21 5.76L4.41 9.88L5.27 12H8C9.1 12 10 12.9 10 14S9.1 16 8 16H6.9L8.18 19.14L14.5 18.73L14.87 19.65L16.72 18.9M20.81 17.71L18.5 16.75L19.26 14.9L21.57 15.86L20.81 17.71M18.78 10.43L18 8.58L20.79 7.43L21.55 9.28L18.78 10.43M15.19 5.07L13.34 4.31L14.3 2L16.15 2.77L15.19 5.07Z\";\nexport var mdiLightRecessed = \"M12 7C6.5 7 2 9.46 2 12.5S6.5 18 12 18 22 15.54 22 12.5 17.5 7 12 7M16.5 10C16.5 10.4 14.9 11.54 12 11.54S7.5 10.4 7.5 10C7.5 9.91 7.65 9.74 7.9 9.55C9.06 9.21 10.44 9 12 9S14.94 9.21 16.1 9.55C16.35 9.74 16.5 9.91 16.5 10M12 16C7.12 16 4 13.93 4 12.5C4 11.81 4.73 11 6.03 10.29C6.3 11.83 8.87 13.04 12 13.04C15.13 13.04 17.7 11.83 17.97 10.29C19.27 11 20 11.81 20 12.5C20 13.93 16.88 16 12 16Z\";\nexport var mdiLightSwitch = \"M8 6V18H16V6H8M14 10H10V8H14V10M19.4 1.6C19 1.2 18.5 1 18 1H6C5.5 1 5 1.2 4.6 1.6C4.2 2 4 2.5 4 3V21C4 21.5 4.2 22 4.6 22.4C5 22.8 5.5 23 6 23H18C18.5 23 19 22.8 19.4 22.4C19.8 22 20 21.5 20 21V3C20 2.5 19.8 2 19.4 1.6M18 21H6V3H18V21Z\";\nexport var mdiLightSwitchOff = \"M19.4 1.6C19 1.2 18.5 1 18 1H6C5.5 1 5 1.2 4.6 1.6C4.2 2 4 2.5 4 3V21C4 21.5 4.2 22 4.6 22.4C5 22.8 5.5 23 6 23H18C18.5 23 19 22.8 19.4 22.4C19.8 22 20 21.5 20 21V3C20 2.5 19.8 2 19.4 1.6M18 21H6V3H18V21M8 6V18H16V6H8M15 17H9V7H15V17M10 14H14V16H10V14Z\";\nexport var mdiLightbulb = \"M12,2A7,7 0 0,0 5,9C5,11.38 6.19,13.47 8,14.74V17A1,1 0 0,0 9,18H15A1,1 0 0,0 16,17V14.74C17.81,13.47 19,11.38 19,9A7,7 0 0,0 12,2M9,21A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21V20H9V21Z\";\nexport var mdiLightbulbAlert = \"M10 2C6.1 2 3 5.1 3 9C3 11.4 4.2 13.5 6 14.7V17C6 17.6 6.4 18 7 18H13C13.6 18 14 17.6 14 17V14.7C15.8 13.4 17 11.3 17 9C17 5.1 13.9 2 10 2M7 21C7 21.6 7.4 22 8 22H12C12.6 22 13 21.6 13 21V20H7V21M19 12V7H21V13H19M19 17V15H21V17H19Z\";\nexport var mdiLightbulbAlertOutline = \"M10 2C13.9 2 17 5.1 17 9C17 11.4 15.8 13.5 14 14.7V17C14 17.6 13.6 18 13 18H7C6.4 18 6 17.6 6 17V14.7C4.2 13.5 3 11.4 3 9C3 5.1 6.1 2 10 2M7 21V20H13V21C13 21.6 12.6 22 12 22H8C7.4 22 7 21.6 7 21M10 4C7.2 4 5 6.2 5 9C5 11.1 6.2 12.8 8 13.6V16H12V13.6C13.8 12.8 15 11.1 15 9C15 6.2 12.8 4 10 4M19 12V7H21V13H19M19 17V15H21V17H19Z\";\nexport var mdiLightbulbAuto = \"M9 2C5.13 2 2 5.13 2 9C2 11.38 3.19 13.47 5 14.74V17C5 17.55 5.45 18 6 18H12C12.55 18 13 17.55 13 17V14.74C14.81 13.47 16 11.38 16 9C16 5.13 12.87 2 9 2M6 21C6 21.55 6.45 22 7 22H11C11.55 22 12 21.55 12 21V20H6V21M19 13H17L13.8 22H15.7L16.4 20H19.6L20.3 22H22.2L19 13M16.85 18.65L18 15L19.15 18.65H16.85Z\";\nexport var mdiLightbulbAutoOutline = \"M9 2C12.87 2 16 5.13 16 9C16 11.38 14.81 13.47 13 14.74V17C13 17.55 12.55 18 12 18H6C5.45 18 5 17.55 5 17V14.74C3.19 13.47 2 11.38 2 9C2 5.13 5.13 2 9 2M6 21V20H12V21C12 21.55 11.55 22 11 22H7C6.45 22 6 21.55 6 21M9 4C6.24 4 4 6.24 4 9C4 11.05 5.23 12.81 7 13.58V16H11V13.58C12.77 12.81 14 11.05 14 9C14 6.24 11.76 4 9 4M19 13H17L13.8 22H15.7L16.4 20H19.6L20.3 22H22.2L19 13M16.85 18.65L18 15L19.15 18.65H16.85Z\";\nexport var mdiLightbulbCfl = \"M10.5 2C11.88 2 13 3.12 13 4.5V14H14V4.47C14 3.56 13.63 2.7 13 2.05C13.17 2 13.33 2 13.5 2C14.88 2 16 3.12 16 4.5V14H17V17C17 17.55 16.55 18 16 18H8C7.45 18 7 17.55 7 17V14H8V4.5C8 3.12 9.12 2 10.5 2M10.5 4C10.22 4 10 4.22 10 4.5V14H11V4.5C11 4.22 10.78 4 10.5 4M9 20H15V21C15 21.55 14.55 22 14 22H10C9.45 22 9 21.55 9 21V20Z\";\nexport var mdiLightbulbCflOff = \"M14 4.47C14 3.56 13.63 2.7 13 2.05C13.17 2 13.33 2 13.5 2C14.88 2 16 3.12 16 4.5V14H17V15.18L14 12.18V4.5L14 4.47M10 4.5C10 4.22 10.22 4 10.5 4S11 4.22 11 4.5V9.18L13 11.18V4.5C13 3.12 11.88 2 10.5 2S8 3.12 8 4.5V6.18L10 8.18V4.5M9 21C9 21.55 9.45 22 10 22H14C14.55 22 15 21.55 15 21V20H9V21M20 20.72L18.73 22L14.73 18H8C7.45 18 7 17.55 7 17V14H8V11.27L2 5.27L3.28 4L20 20.72Z\";\nexport var mdiLightbulbCflSpiral = \"M11 2C10.84 2 10.69 2.03 10.55 2.1L8.55 3.1C7.56 3.66 8 5 9 5C9.16 5 9.32 4.95 9.45 4.9L11.45 3.9C12.43 3.36 12 2 11 2M15 4C14.83 4 14.69 4.03 14.55 4.1L8.55 7.1C7.56 7.68 8 9 9 9C9.18 9 9.32 8.95 9.45 8.9L15.45 5.9C16.41 5.43 16 4 15 4M15 8C14.84 8 14.69 8.03 14.55 8.1L8.7 11.03C8.2 11.25 8 11.6 8 12V14H7V17C7 17.55 7.44 18 8 18H16C16.55 18 17 17.55 17 17V14H16V13C16 12.44 15.55 12 15 12C14.45 12 14 12.45 14 13V14H10V12.62L15.45 9.9C16.42 9.34 16 8 15 8M9 20V21C9 21.57 9.46 22 10 22H14C14.56 22 15 21.55 15 21V20\";\nexport var mdiLightbulbCflSpiralOff = \"M15.45 9.9L13.88 10.68L12.38 9.18L14.55 8.1C14.69 8.03 14.84 8 15 8C16 8 16.42 9.34 15.45 9.9M11.22 8L15.45 5.9C16.41 5.43 16 4 15 4C14.83 4 14.69 4.03 14.55 4.1L9.72 6.5L11.22 8M20.84 22.73L16.09 18H8C7.44 18 7 17.55 7 17V14H8V12C8 11.6 8.2 11.25 8.7 11.03L9 10.88L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M12.11 14L10.5 12.38L10 12.62V14H12.11M9 21C9 21.57 9.46 22 10 22H14C14.56 22 15 21.55 15 21V20H9V21M9 5C9.16 5 9.32 4.95 9.45 4.9L11.45 3.9C12.43 3.36 12 2 11 2C10.84 2 10.69 2.03 10.55 2.1L8.55 3.1C7.56 3.66 8 5 9 5Z\";\nexport var mdiLightbulbFluorescentTube = \"M7.05 2.81L6.5 3.34L5.11 1.92L3.87 3.16L5.28 4.58L4.58 5.28L3.16 3.87L1.92 5.11L3.34 6.5L2.81 7.05L16.95 21.19L17.5 20.66L18.89 22.08L20.13 20.84L18.72 19.43L19.42 18.72L20.84 20.13L22.08 18.9L20.66 17.5L21.19 16.95L7.05 2.81Z\";\nexport var mdiLightbulbFluorescentTubeOutline = \"M7.05 2.81L6.5 3.34L5.11 1.92L3.87 3.16L5.28 4.58L4.58 5.28L3.16 3.87L1.92 5.11L3.34 6.5L2.81 7.05L4.22 8.46L15.54 19.78L16.95 21.19L17.5 20.66L18.89 22.08L20.13 20.84L18.72 19.43L19.43 18.72L20.84 20.13L22.08 18.89L20.66 17.5L21.19 16.95L19.78 15.54L8.46 4.22M7.05 5.64L18.36 16.95L16.95 18.36L5.64 7.05Z\";\nexport var mdiLightbulbGroup = \"M15 14V16A1 1 0 0 1 14 17H10A1 1 0 0 1 9 16V14A5 5 0 1 1 15 14M14 18H10V19A1 1 0 0 0 11 20H13A1 1 0 0 0 14 19M7 19V18H5V19A1 1 0 0 0 6 20H7.17A2.93 2.93 0 0 1 7 19M5 10A6.79 6.79 0 0 1 5.68 7A4 4 0 0 0 4 14.45V16A1 1 0 0 0 5 17H7V14.88A6.92 6.92 0 0 1 5 10M17 18V19A2.93 2.93 0 0 1 16.83 20H18A1 1 0 0 0 19 19V18M18.32 7A6.79 6.79 0 0 1 19 10A6.92 6.92 0 0 1 17 14.88V17H19A1 1 0 0 0 20 16V14.45A4 4 0 0 0 18.32 7Z\";\nexport var mdiLightbulbGroupOff = \"M20.84 22.73L18.09 20C18.06 20 18.03 20 18 20H16.83C16.94 19.68 17 19.34 17 19V18.89L14.75 16.64C14.57 16.86 14.31 17 14 17H10C9.45 17 9 16.55 9 16V14C7.4 12.8 6.74 10.84 7.12 9L5.5 7.4C5.18 8.23 5 9.11 5 10C5 11.83 5.72 13.58 7 14.88V17H5C4.45 17 4 16.55 4 16V14.45C2.86 13.79 2.12 12.62 2 11.31C1.85 9.27 3.25 7.5 5.2 7.09L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M15 6C13.22 4.67 10.86 4.72 9.13 5.93L16.08 12.88C17.63 10.67 17.17 7.63 15 6M19.79 16.59C19.91 16.42 20 16.22 20 16V14.45C21.91 13.34 22.57 10.9 21.46 9C20.8 7.85 19.63 7.11 18.32 7C18.77 7.94 19 8.96 19 10C19 11.57 18.47 13.09 17.5 14.31L19.79 16.59M10 19C10 19.55 10.45 20 11 20H13C13.55 20 14 19.55 14 19V18H10V19M7 18H5V19C5 19.55 5.45 20 6 20H7.17C7.06 19.68 7 19.34 7 19V18Z\";\nexport var mdiLightbulbGroupOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L5.2 7.09C3.25 7.5 1.85 9.27 2 11.31C2.12 12.62 2.86 13.79 4 14.45V16C4 16.55 4.45 17 5 17H7V14.88C5.72 13.58 5 11.83 5 10C5 9.11 5.18 8.23 5.5 7.4L7.12 9C6.74 10.84 7.4 12.8 9 14V16C9 16.55 9.45 17 10 17H14C14.31 17 14.57 16.86 14.75 16.64L17 18.89V19C17 19.34 16.94 19.68 16.83 20H18C18.03 20 18.06 20 18.09 20L20.84 22.73L22.11 21.46M9.23 11.12L10.87 12.76C10.11 12.46 9.53 11.86 9.23 11.12M13 15H11V12.89L13 14.89V15M10.57 7.37L9.13 5.93C10.86 4.72 13.22 4.67 15 6C16.26 6.94 17 8.43 17 10C17 11.05 16.67 12.05 16.08 12.88L14.63 11.43C14.86 11 15 10.5 15 10C15 8.34 13.67 7 12 7C11.5 7 11 7.14 10.57 7.37M17.5 14.31C18.47 13.09 19 11.57 19 10C19 8.96 18.77 7.94 18.32 7C19.63 7.11 20.8 7.85 21.46 9C22.57 10.9 21.91 13.34 20 14.45V16C20 16.22 19.91 16.42 19.79 16.59L17.5 14.31M10 18H14V19C14 19.55 13.55 20 13 20H11C10.45 20 10 19.55 10 19V18M7 19C7 19.34 7.06 19.68 7.17 20H6C5.45 20 5 19.55 5 19V18H7V19Z\";\nexport var mdiLightbulbGroupOutline = \"M7 19A2.93 2.93 0 0 0 7.17 20H6A1 1 0 0 1 5 19V18H7M10 19A1 1 0 0 0 11 20H13A1 1 0 0 0 14 19V18H10M4 16A1 1 0 0 0 5 17H7V14.88A6.92 6.92 0 0 1 5 10A6.79 6.79 0 0 1 5.68 7A4 4 0 0 0 4 14.45M17 19A2.93 2.93 0 0 1 16.83 20H18A1 1 0 0 0 19 19V18H17M17 10A5 5 0 0 1 15 14V16A1 1 0 0 1 14 17H10A1 1 0 0 1 9 16V14A5 5 0 1 1 17 10M15 10A3 3 0 1 0 11 12.82V15H13V12.82A3 3 0 0 0 15 10M18.32 7A6.79 6.79 0 0 1 19 10A6.92 6.92 0 0 1 17 14.88V17H19A1 1 0 0 0 20 16V14.45A4 4 0 0 0 18.32 7Z\";\nexport var mdiLightbulbMultiple = \"M17 16V18C17 18.55 16.53 19 16 19H12C11.42 19 11 18.55 11 18V16C8.77 14.34 8.32 11.21 10 9S14.77 6.34 17 8 19.63 12.79 18 15C17.69 15.38 17.35 15.72 17 16M16 20H12V21C12 21.55 12.42 22 13 22H15C15.53 22 16 21.55 16 21M7.66 15H7V16C7 16.55 7.42 17 8 17H9V16.88C8.44 16.33 8 15.7 7.66 15M13.58 5C12.46 2.47 9.5 1.33 7 2.45S3.31 6.5 4.43 9.04C4.77 9.81 5.3 10.5 6 11V13C6 13.55 6.42 14 7 14H7.28C7.07 13.35 6.97 12.68 7 12C6.97 8.29 9.87 5.21 13.58 5Z\";\nexport var mdiLightbulbMultipleOff = \"M20.84 22.73L16.74 18.63C16.55 18.85 16.29 19 16 19H12C11.42 19 11 18.55 11 18V16C9.37 14.8 8.71 12.82 9.1 11L7.5 9.39C7.17 10.2 6.97 11.08 7 12C6.97 12.68 7.07 13.35 7.28 14H7C6.42 14 6 13.55 6 13V11C5.3 10.5 4.77 9.81 4.43 9.04C4 8.05 3.91 7 4.12 6L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M13.58 5C12.46 2.47 9.5 1.33 7 2.45C6.68 2.58 6.39 2.75 6.13 2.93L9.67 6.47C10.76 5.63 12.1 5.08 13.58 5M18.06 14.86C19.6 12.66 19.14 9.62 17 8C15.2 6.67 12.84 6.72 11.12 7.92L18.06 14.86M12 21C12 21.55 12.42 22 13 22H15C15.53 22 16 21.55 16 21V20H12V21M7 15V16C7 16.55 7.42 17 8 17H9V16.88C8.43 16.33 8 15.7 7.66 15H7Z\";\nexport var mdiLightbulbMultipleOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L4.14 6.03C3.93 7 4 8.05 4.45 9.04C4.79 9.81 5.33 10.5 6 11V13C6 13.55 6.45 14 7 14H7.3C7.1 13.35 7 12.68 7 12C7 11.08 7.19 10.21 7.5 9.41L9.11 11C9.05 11.33 9 11.66 9 12C9 13.57 9.74 15.06 11 16V18C11 18.55 11.45 19 12 19H16C16.31 19 16.57 18.86 16.75 18.64L20.84 22.73L22.11 21.46M11.23 13.12L12.87 14.76C12.1 14.44 11.53 13.85 11.23 13.12M15 17H13V14.89L15 16.89V17M9.69 6.5L6.14 2.94C6.41 2.75 6.7 2.58 7 2.44C9.53 1.33 12.5 2.47 13.6 5C12.12 5.09 10.77 5.63 9.69 6.5M11.12 7.92C11.94 7.35 12.93 7 14 7C15.57 7 17.06 7.74 18 9C19.33 10.78 19.28 13.14 18.07 14.87L16.62 13.42C16.7 13.28 16.77 13.14 16.83 13C17.38 11.43 16.56 9.72 15 9.16C14.16 8.87 13.29 8.97 12.57 9.37L11.12 7.92M7.68 15C8 15.7 8.46 16.33 9 16.88V17H8C7.45 17 7 16.55 7 16V15H7.68M12 20H16V21C16 21.55 15.55 22 15 22H13C12.45 22 12 21.55 12 21V20Z\";\nexport var mdiLightbulbMultipleOutline = \"M12 21C12 21.55 12.45 22 13 22H15C15.55 22 16 21.55 16 21V20H12M14 7C11.24 7 9 9.24 9 12C9 13.57 9.74 15.06 11 16V18C11 18.55 11.45 19 12 19H16C16.55 19 17 18.55 17 18V16C19.21 14.34 19.66 11.21 18 9C17.06 7.74 15.57 7 14 7M15 14.82V17H13V14.82C11.44 14.27 10.62 12.55 11.17 11C11.72 9.43 13.44 8.61 15 9.16C16.56 9.72 17.38 11.43 16.83 13C16.53 13.85 15.85 14.5 15 14.82M7.68 15H7V16C7 16.55 7.45 17 8 17H9V16.88C8.46 16.33 8 15.7 7.68 15M13.6 5C12.5 2.47 9.53 1.33 7 2.45S3.34 6.5 4.45 9.04C4.79 9.81 5.33 10.5 6 11V13C6 13.55 6.45 14 7 14H7.3C7.1 13.35 7 12.68 7 12C7 8.29 9.89 5.21 13.6 5Z\";\nexport var mdiLightbulbNight = \"M6 21C6 21.55 6.45 22 7 22H11C11.55 22 12 21.55 12 21V20H6V21M13 16.32V17C13 17.55 12.55 18 12 18H6C5.45 18 5 17.55 5 17V14.74C3.19 13.47 2 11.38 2 9C2 5.13 5.13 2 9 2C10.65 2 12.16 2.57 13.35 3.5C10.8 4.57 9 7.07 9 10C9 12.79 10.64 15.19 13 16.32M20.92 9.94L19.5 9.03L18.1 10L18.5 8.35L17.17 7.32L18.85 7.21L19.41 5.6L20.04 7.18L21.72 7.22L20.42 8.3L20.92 9.94M19.39 13C17.5 15.27 14.03 15.19 12.22 12.95C10 10.13 11.56 6 15 5.34C15.34 5.29 15.64 5.63 15.5 5.97C15.05 7.25 15.12 8.71 15.85 9.97C16.58 11.24 17.79 12.03 19.12 12.25C19.47 12.3 19.62 12.74 19.39 13Z\";\nexport var mdiLightbulbNightOutline = \"M6 20H12V21C12 21.55 11.55 22 11 22H7C6.45 22 6 21.55 6 21V20M11 14.89V16H7V13.58C5.23 12.81 4 11.05 4 9C4 6.24 6.24 4 9 4C9.9 4 10.73 4.26 11.46 4.67C12 4.2 12.66 3.81 13.35 3.5C12.16 2.57 10.65 2 9 2C5.13 2 2 5.13 2 9C2 11.38 3.19 13.47 5 14.74V17C5 17.55 5.45 18 6 18H12C12.55 18 13 17.55 13 17V16.32C12.25 15.96 11.57 15.5 11 14.89M20.92 9.94L20.42 8.3L21.72 7.22L20.04 7.18L19.41 5.6L18.85 7.21L17.17 7.32L18.5 8.35L18.1 10L19.5 9.03L20.92 9.94M19.12 12.25C17.79 12.03 16.58 11.24 15.85 9.97C15.12 8.71 15.05 7.25 15.5 5.97C15.64 5.63 15.34 5.29 15 5.34C11.56 6 10 10.13 12.22 12.95C14.03 15.19 17.5 15.27 19.39 13C19.62 12.74 19.47 12.3 19.12 12.25Z\";\nexport var mdiLightbulbOff = \"M12,2C9.76,2 7.78,3.05 6.5,4.68L16.31,14.5C17.94,13.21 19,11.24 19,9A7,7 0 0,0 12,2M3.28,4L2,5.27L5.04,8.3C5,8.53 5,8.76 5,9C5,11.38 6.19,13.47 8,14.74V17A1,1 0 0,0 9,18H14.73L18.73,22L20,20.72L3.28,4M9,20V21A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21V20H9Z\";\nexport var mdiLightbulbOffOutline = \"M12,2C9.76,2 7.78,3.05 6.5,4.68L7.93,6.11C8.84,4.84 10.32,4 12,4A5,5 0 0,1 17,9C17,10.68 16.16,12.16 14.89,13.06L16.31,14.5C17.94,13.21 19,11.24 19,9A7,7 0 0,0 12,2M3.28,4L2,5.27L5.04,8.3C5,8.53 5,8.76 5,9C5,11.38 6.19,13.47 8,14.74V17A1,1 0 0,0 9,18H14.73L18.73,22L20,20.72L3.28,4M7.23,10.5L12.73,16H10V13.58C8.68,13 7.66,11.88 7.23,10.5M9,20V21A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21V20H9Z\";\nexport var mdiLightbulbOn = \"M12,6A6,6 0 0,1 18,12C18,14.22 16.79,16.16 15,17.2V19A1,1 0 0,1 14,20H10A1,1 0 0,1 9,19V17.2C7.21,16.16 6,14.22 6,12A6,6 0 0,1 12,6M14,21V22A1,1 0 0,1 13,23H11A1,1 0 0,1 10,22V21H14M20,11H23V13H20V11M1,11H4V13H1V11M13,1V4H11V1H13M4.92,3.5L7.05,5.64L5.63,7.05L3.5,4.93L4.92,3.5M16.95,5.63L19.07,3.5L20.5,4.93L18.37,7.05L16.95,5.63Z\";\nexport var mdiLightbulbOn10 = \"M1 11H4V13H1V11M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M11 1H13V4H11V1M4.9 3.5L3.5 4.9L5.6 7L7 5.6L4.9 3.5M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M12 6C8.7 6 6 8.7 6 12C6 14.2 7.2 16.2 9 17.2V19C9 19.6 9.4 20 10 20H14C14.6 20 15 19.6 15 19V17.2C16.8 16.2 18 14.2 18 12C18 8.7 15.3 6 12 6M13 15.9V17H11V15.9C9.3 15.5 8 13.9 8 12C8 9.8 9.8 8 12 8S16 9.8 16 12C16 13.9 14.7 15.4 13 15.9M20 11H23V13H20V11Z\";\nexport var mdiLightbulbOn20 = \"M1 11H4V13H1V11M4.9 3.5L3.5 4.9L5.6 7L7 5.6L4.9 3.5M13 1H11V4H13V1M20 11V13H23V11H20M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M16 12C16 9.79 14.21 8 12 8S8 9.79 8 12 9.79 16 12 16 16 14.21 16 12Z\";\nexport var mdiLightbulbOn30 = \"M7 5.6L5.6 7L3.5 4.9L4.9 3.5L7 5.6M1 13H4V11H1V13M13 1H11V4H13V1M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M16 12C16 9.79 14.21 8 12 8S8 9.79 8 12C8 13.2 8.54 14.27 9.38 15H14.62C15.46 14.27 16 13.2 16 12M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M20 11V13H23V11H20M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5Z\";\nexport var mdiLightbulbOn40 = \"M1 11H4V13H1V11M13 1H11V4H13V1M4.9 3.5L3.5 4.9L5.6 7L7 5.6L4.9 3.5M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M20 11V13H23V11H20M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M16 12C16 9.79 14.21 8 12 8S8 9.79 8 12C8 12.74 8.22 13.41 8.57 14H15.43C15.78 13.41 16 12.74 16 12Z\";\nexport var mdiLightbulbOn50 = \"M1 11H4V13H1V11M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M13 1H11V4H13V1M4.9 3.5L3.5 4.9L5.6 7L7 5.6L4.9 3.5M20 11V13H23V11H20M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M8 12C8 12.35 8.05 12.68 8.14 13H15.86C15.95 12.68 16 12.35 16 12C16 9.79 14.21 8 12 8S8 9.79 8 12Z\";\nexport var mdiLightbulbOn60 = \"M10 21H14V22C14 22.6 13.6 23 13 23H11C10.4 23 10 22.6 10 22V21M1 13H4V11H1V13M4.9 3.5L3.5 4.9L5.6 7L7 5.6L4.9 3.5M13 1H11V4H13V1M20 11V13H23V11H20M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M8 12H16C16 9.79 14.21 8 12 8S8 9.79 8 12M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5Z\";\nexport var mdiLightbulbOn70 = \"M7 5.6L5.6 7L3.5 4.9L4.9 3.5L7 5.6M13 1H11V4H13V1M1 13H4V11H1V13M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M8.14 11H15.86C15.41 9.28 13.86 8 12 8S8.59 9.28 8.14 11M20 11V13H23V11H20Z\";\nexport var mdiLightbulbOn80 = \"M7 5.6L5.6 7L3.5 4.9L4.9 3.5L7 5.6M1 13H4V11H1V13M13 1H11V4H13V1M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M20 11V13H23V11H20M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M8.56 10H15.44C14.75 8.81 13.5 8 12 8S9.25 8.81 8.56 10Z\";\nexport var mdiLightbulbOn90 = \"M7 5.6L5.6 7L3.5 4.9L4.9 3.5L7 5.6M10 22C10 22.6 10.4 23 11 23H13C13.6 23 14 22.6 14 22V21H10V22M1 13H4V11H1V13M13 1H11V4H13V1M20 11V13H23V11H20M19.1 3.5L17 5.6L18.4 7L20.5 4.9L19.1 3.5M18 12C18 14.2 16.8 16.2 15 17.2V19C15 19.6 14.6 20 14 20H10C9.4 20 9 19.6 9 19V17.2C7.2 16.2 6 14.2 6 12C6 8.7 8.7 6 12 6S18 8.7 18 12M12 8C11 8 10.09 8.38 9.39 9H14.61C13.91 8.38 13 8 12 8Z\";\nexport var mdiLightbulbOnOutline = \"M20,11H23V13H20V11M1,11H4V13H1V11M13,1V4H11V1H13M4.92,3.5L7.05,5.64L5.63,7.05L3.5,4.93L4.92,3.5M16.95,5.63L19.07,3.5L20.5,4.93L18.37,7.05L16.95,5.63M12,6A6,6 0 0,1 18,12C18,14.22 16.79,16.16 15,17.2V19A1,1 0 0,1 14,20H10A1,1 0 0,1 9,19V17.2C7.21,16.16 6,14.22 6,12A6,6 0 0,1 12,6M14,21V22A1,1 0 0,1 13,23H11A1,1 0 0,1 10,22V21H14M11,18H13V15.87C14.73,15.43 16,13.86 16,12A4,4 0 0,0 12,8A4,4 0 0,0 8,12C8,13.86 9.27,15.43 11,15.87V18Z\";\nexport var mdiLightbulbOutline = \"M12,2A7,7 0 0,1 19,9C19,11.38 17.81,13.47 16,14.74V17A1,1 0 0,1 15,18H9A1,1 0 0,1 8,17V14.74C6.19,13.47 5,11.38 5,9A7,7 0 0,1 12,2M9,21V20H15V21A1,1 0 0,1 14,22H10A1,1 0 0,1 9,21M12,4A5,5 0 0,0 7,9C7,11.05 8.23,12.81 10,13.58V16H14V13.58C15.77,12.81 17,11.05 17,9A5,5 0 0,0 12,4Z\";\nexport var mdiLightbulbQuestion = \"M8 2C4.1 2 1 5.1 1 9C1 11.4 2.2 13.5 4 14.7V17C4 17.6 4.4 18 5 18H11C11.6 18 12 17.6 12 17V14.7C13.8 13.4 15 11.3 15 9C15 5.1 11.9 2 8 2M5 21C5 21.6 5.4 22 6 22H10C10.6 22 11 21.6 11 21V20H5V21M20.5 14.5V16H19V14.5H20.5M18.5 9.5H17V9C17 7.3 18.3 6 20 6S23 7.3 23 9C23 10 22.5 10.9 21.7 11.4L21.4 11.6C20.8 12 20.5 12.6 20.5 13.3V13.5H19V13.3C19 12.1 19.6 11 20.6 10.4L20.9 10.2C21.3 9.9 21.5 9.5 21.5 9C21.5 8.2 20.8 7.5 20 7.5S18.5 8.2 18.5 9V9.5Z\";\nexport var mdiLightbulbQuestionOutline = \"M8 2C11.9 2 15 5.1 15 9C15 11.4 13.8 13.5 12 14.7V17C12 17.6 11.6 18 11 18H5C4.4 18 4 17.6 4 17V14.7C2.2 13.5 1 11.4 1 9C1 5.1 4.1 2 8 2M5 21V20H11V21C11 21.6 10.6 22 10 22H6C5.4 22 5 21.6 5 21M8 4C5.2 4 3 6.2 3 9C3 11.1 4.2 12.8 6 13.6V16H10V13.6C11.8 12.8 13 11.1 13 9C13 6.2 10.8 4 8 4M20.5 14.5V16H19V14.5H20.5M18.5 9.5H17V9C17 7.3 18.3 6 20 6S23 7.3 23 9C23 10 22.5 10.9 21.7 11.4L21.4 11.6C20.8 12 20.5 12.6 20.5 13.3V13.5H19V13.3C19 12.1 19.6 11 20.6 10.4L20.9 10.2C21.3 9.9 21.5 9.5 21.5 9C21.5 8.2 20.8 7.5 20 7.5S18.5 8.2 18.5 9V9.5Z\";\nexport var mdiLightbulbSpot = \"M9 19H11V22H9L9 19M13 22H15V19H13V22M2 2V4H22V2H2M9 14L9 17H15V14C17.5 12.57 20 11 20 6H4C4 11 6.5 12.57 9 14Z\";\nexport var mdiLightbulbSpotOff = \"M20.84 22.73L15.11 17H9L9 14C6.5 12.57 4 11 4 6V5.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M22 4V2H5.2L7.2 4H22M20 6H9.2L16.37 13.17C18.33 11.87 20 10.07 20 6M13 22H15V19H13V22M9 22H11V19H9L9 22Z\";\nexport var mdiLightbulbVariant = \"M9 20H15V21C15 21.55 14.55 22 14 22H10C9.45 22 9 21.55 9 21V20M19 9C19 11.38 17.81 13.47 16 14.74V17C16 17.55 15.55 18 15 18H9C8.45 18 8 17.55 8 17V14.74C6.19 13.47 5 11.38 5 9C5 5.13 8.13 2 12 2S19 5.13 19 9M14.71 8.29C14.32 7.9 13.68 7.9 13.29 8.29L12 9.59L10.71 8.29C10.32 7.9 9.68 7.9 9.29 8.29C8.9 8.68 8.9 9.32 9.29 9.71L11 11.41V16H13V11.41L14.71 9.71C15.1 9.32 15.1 8.68 14.71 8.29Z\";\nexport var mdiLightbulbVariantOutline = \"M12 2C8.13 2 5 5.13 5 9C5 11.38 6.19 13.47 8 14.74V17C8 17.55 8.45 18 9 18H15C15.55 18 16 17.55 16 17V14.74C17.81 13.47 19 11.38 19 9C19 5.13 15.87 2 12 2M14 13.58V16H13V11.41L14.71 9.71C15.1 9.32 15.1 8.68 14.71 8.29C14.32 7.9 13.68 7.9 13.29 8.29L12 9.59L10.71 8.29C10.32 7.9 9.68 7.9 9.29 8.29C8.9 8.68 8.9 9.32 9.29 9.71L11 11.41V16H10V13.58C8.23 12.81 7 11.05 7 9C7 6.24 9.24 4 12 4S17 6.24 17 9C17 11.05 15.77 12.81 14 13.58M9 20H15V21C15 21.55 14.55 22 14 22H10C9.45 22 9 21.55 9 21V20Z\";\nexport var mdiLighthouse = \"M8,10V8H9V4H8V3L12,1L16,3V4H15V8H16V10H14.74L8.44,13.64L9,10H8M13,8V4H11V8H13M7,23L7.04,22.76L16.15,17.5L16.67,20.88L13,23H7M8.05,16.17L15.31,12L15.83,15.37L7.43,20.22L8.05,16.17Z\";\nexport var mdiLighthouseOn = \"M1,10V2L10,5V7L1,10M8,10V8H13V4H8V3L12,1L16,3V4H15V8H16V10H14.74L8.44,13.64L9,10H8M7,23L7.04,22.76L16.15,17.5L16.67,20.88L13,23H7M8.05,16.17L15.31,12L15.83,15.37L7.43,20.22L8.05,16.17Z\";\nexport var mdiLightningBolt = \"M11 15H6L13 1V9H18L11 23V15Z\";\nexport var mdiLightningBoltCircle = \"M11.5,20L16.36,10.27H13V4L8,13.73H11.5V20M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12C22,14.75 21,17.1 19.05,19.05C17.1,21 14.75,22 12,22C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z\";\nexport var mdiLightningBoltOutline = \"M11 9.47V11H14.76L13 14.53V13H9.24L11 9.47M13 1L6 15H11V23L18 9H13V1Z\";\nexport var mdiLineScan = \"M17 22V20H20V17H22V20.5C22 20.9 21.8 21.2 21.5 21.5C21.2 21.8 20.8 22 20.5 22H17M7 22H3.5C3.1 22 2.8 21.8 2.5 21.5C2.2 21.2 2 20.8 2 20.5V17H4V20H7V22M17 2H20.5C20.9 2 21.2 2.2 21.5 2.5C21.8 2.8 22 3.1 22 3.5V7H20V4H17V2M7 2V4H4V7H2V3.5C2 3.1 2.2 2.8 2.5 2.5S3.1 2 3.5 2H7M19 11H5V13H19V11Z\";\nexport var mdiLingerie = \"M22 7H20V2H18V4.34L12 6.91L6 4.34V2H4V7H2V9H4.05C4.3 11.25 6.19 13 8.5 13C9.92 13 11.18 12.33 12 11.3C12.83 12.33 14.08 13 15.5 13C17.81 13 19.7 11.25 19.95 9H22V7M8.5 11C7.12 11 6 9.88 6 8.5V6.5L11 8.65C10.9 9.96 9.83 11 8.5 11M18 8.5C18 9.88 16.88 11 15.5 11C14.17 11 13.1 9.96 13 8.65L18 6.5V8.5M2 15V17H3C5.97 17 8.43 19.17 8.91 22H15.09C15.57 19.17 18.03 17 21 17H22V15H2M13.59 20H10.41C9.94 18.84 9.21 17.82 8.29 17H15.71C14.79 17.82 14.06 18.84 13.59 20Z\";\nexport var mdiLink = \"M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z\";\nexport var mdiLinkBox = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M11,16H10C8.39,16 6,14.94 6,12C6,9.07 8.39,8 10,8H11V10H10C9.54,10 8,10.17 8,12C8,13.9 9.67,14 10,14H11V16M15,11V13H9V11H15M14,16H13V14H14C14.46,14 16,13.83 16,12C16,10.1 14.33,10 14,10H13V8H14C15.61,8 18,9.07 18,12C18,14.94 15.61,16 14,16Z\";\nexport var mdiLinkBoxOutline = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M11,16H10C8.39,16 6,14.94 6,12C6,9.07 8.39,8 10,8H11V10H10C9.54,10 8,10.17 8,12C8,13.9 9.67,14 10,14H11V16M14,16H13V14H14C14.46,14 16,13.83 16,12C16,10.1 14.33,10 14,10H13V8H14C15.61,8 18,9.07 18,12C18,14.94 15.61,16 14,16M15,13H9V11H15V13Z\";\nexport var mdiLinkBoxVariant = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M13.94,14.81L11.73,17C11.08,17.67 10.22,18 9.36,18C8.5,18 7.64,17.67 7,17C5.67,15.71 5.67,13.58 7,12.26L8.35,10.9L8.34,11.5C8.33,12 8.41,12.5 8.57,12.94L8.62,13.09L8.22,13.5C7.91,13.8 7.74,14.21 7.74,14.64C7.74,15.07 7.91,15.47 8.22,15.78C8.83,16.4 9.89,16.4 10.5,15.78L12.7,13.59C13,13.28 13.18,12.87 13.18,12.44C13.18,12 13,11.61 12.7,11.3C12.53,11.14 12.44,10.92 12.44,10.68C12.44,10.45 12.53,10.23 12.7,10.06C13.03,9.73 13.61,9.74 13.94,10.06C14.57,10.7 14.92,11.54 14.92,12.44C14.92,13.34 14.57,14.18 13.94,14.81M17,11.74L15.66,13.1V12.5C15.67,12 15.59,11.5 15.43,11.06L15.38,10.92L15.78,10.5C16.09,10.2 16.26,9.79 16.26,9.36C16.26,8.93 16.09,8.53 15.78,8.22C15.17,7.6 14.1,7.61 13.5,8.22L11.3,10.42C11,10.72 10.82,11.13 10.82,11.56C10.82,12 11,12.39 11.3,12.7C11.47,12.86 11.56,13.08 11.56,13.32C11.56,13.56 11.47,13.78 11.3,13.94C11.13,14.11 10.91,14.19 10.68,14.19C10.46,14.19 10.23,14.11 10.06,13.94C8.75,12.63 8.75,10.5 10.06,9.19L12.27,7C13.58,5.67 15.71,5.68 17,7C17.65,7.62 18,8.46 18,9.36C18,10.26 17.65,11.1 17,11.74Z\";\nexport var mdiLinkBoxVariantOutline = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V5H19V19M13.94,10.06C14.57,10.7 14.92,11.54 14.92,12.44C14.92,13.34 14.57,14.18 13.94,14.81L11.73,17C11.08,17.67 10.22,18 9.36,18C8.5,18 7.64,17.67 7,17C5.67,15.71 5.67,13.58 7,12.26L8.35,10.9L8.34,11.5C8.33,12 8.41,12.5 8.57,12.94L8.62,13.09L8.22,13.5C7.91,13.8 7.74,14.21 7.74,14.64C7.74,15.07 7.91,15.47 8.22,15.78C8.83,16.4 9.89,16.4 10.5,15.78L12.7,13.59C13,13.28 13.18,12.87 13.18,12.44C13.18,12 13,11.61 12.7,11.3C12.53,11.14 12.44,10.92 12.44,10.68C12.44,10.45 12.53,10.23 12.7,10.06C13.03,9.73 13.61,9.74 13.94,10.06M18,9.36C18,10.26 17.65,11.1 17,11.74L15.66,13.1V12.5C15.67,12 15.59,11.5 15.43,11.06L15.38,10.92L15.78,10.5C16.09,10.2 16.26,9.79 16.26,9.36C16.26,8.93 16.09,8.53 15.78,8.22C15.17,7.6 14.1,7.61 13.5,8.22L11.3,10.42C11,10.72 10.82,11.13 10.82,11.56C10.82,12 11,12.39 11.3,12.7C11.47,12.86 11.56,13.08 11.56,13.32C11.56,13.56 11.47,13.78 11.3,13.94C11.13,14.11 10.91,14.19 10.68,14.19C10.46,14.19 10.23,14.11 10.06,13.94C8.75,12.63 8.75,10.5 10.06,9.19L12.27,7C13.58,5.67 15.71,5.68 17,7C17.65,7.62 18,8.46 18,9.36Z\";\nexport var mdiLinkCircle = \"M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M10 16H11V14H10C9.67 14 8 13.9 8 12C8 10.17 9.54 10 10 10H11V8H10C8.39 8 6 9.07 6 12C6 14.94 8.39 16 10 16M13 16H14C15.61 16 18 14.94 18 12C18 9.07 15.61 8 14 8H13V10H14C14.33 10 16 10.1 16 12C16 13.83 14.46 14 14 14H13V16M9 13H15V11H9V13Z\";\nexport var mdiLinkCircleOutline = \"M10 16H11V14H10C9.67 14 8 13.9 8 12C8 10.17 9.54 10 10 10H11V8H10C8.39 8 6 9.07 6 12C6 14.94 8.39 16 10 16M13 16H14C15.61 16 18 14.94 18 12C18 9.07 15.61 8 14 8H13V10H14C14.33 10 16 10.1 16 12C16 13.83 14.46 14 14 14H13V16M9 13H15V11H9V13M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M6.34 17.66C7.84 19.16 9.88 20 12 20C14.12 20 16.16 19.16 17.66 17.66C19.16 16.16 20 14.12 20 12C20 9.88 19.16 7.84 17.66 6.34C16.16 4.84 14.12 4 12 4C9.88 4 7.84 4.84 6.34 6.34C4.84 7.84 4 9.88 4 12C4 14.12 4.84 16.16 6.34 17.66Z\";\nexport var mdiLinkEdit = \"M13 22V19.96L19.13 13.83L21.17 15.88L15.04 22H13M21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15M20.54 8.46C20.73 8.65 20.9 8.86 21.06 9.08L19.68 10.45C19.15 9.5 18.15 8.9 17 8.9H13V7H17C18.33 7 19.6 7.53 20.54 8.46M3.9 12C3.9 10.29 5.29 8.9 7 8.9H11V7H7C5.67 7 4.4 7.53 3.46 8.46C2.53 9.4 2 10.67 2 12C2 13.33 2.53 14.6 3.46 15.54C4.4 16.47 5.67 17 7 17H11V15.1H7C5.29 15.1 3.9 13.71 3.9 12M8 13H16V11H8V13Z\";\nexport var mdiLinkLock = \"M23 16V15.5A2.5 2.5 0 0 0 18 15.5V16A1 1 0 0 0 17 17V21A1 1 0 0 0 18 22H23A1 1 0 0 0 24 21V17A1 1 0 0 0 23 16M22 16H19V15.5A1.5 1.5 0 0 1 22 15.5M7 8.9H11V7H7A5 5 0 0 0 7 17H11V15.1H7A3.1 3.1 0 0 1 7 8.9M8 11V13H16V11M13 15.1V17H15V15.1M17 7H13V8.9H17A3.09 3.09 0 0 1 19.94 11A5.12 5.12 0 0 1 20.5 11H21.9A5 5 0 0 0 17 7Z\";\nexport var mdiLinkOff = \"M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.43 19.12,14.63 17.79,15L19.25,16.44C20.88,15.61 22,13.95 22,12A5,5 0 0,0 17,7M16,11H13.81L15.81,13H16V11M2,4.27L5.11,7.38C3.29,8.12 2,9.91 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12C3.9,10.41 5.11,9.1 6.66,8.93L8.73,11H8V13H10.73L13,15.27V17H14.73L18.74,21L20,19.74L3.27,3L2,4.27Z\";\nexport var mdiLinkPlus = \"M7,7H11V9H7A3,3 0 0,0 4,12A3,3 0 0,0 7,15H11V17H7A5,5 0 0,1 2,12A5,5 0 0,1 7,7M17,7A5,5 0 0,1 22,12H20A3,3 0 0,0 17,9H13V7H17M8,11H16V13H8V11M17,12H19V15H22V17H19V20H17V17H14V15H17V12Z\";\nexport var mdiLinkVariant = \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\";\nexport var mdiLinkVariantMinus = \"M10.6 13.4A1 1 0 0 1 9.2 14.8A4.8 4.8 0 0 1 9.2 7.8L12.7 4.2A5.1 5.1 0 0 1 19.8 4.2A5.1 5.1 0 0 1 19.8 11.3L18.3 12.8A6.4 6.4 0 0 0 17.9 10.4L18.4 9.9A3.2 3.2 0 0 0 18.4 5.6A3.2 3.2 0 0 0 14.1 5.6L10.6 9.2A2.9 2.9 0 0 0 10.6 13.4M23 18V20H15V18M16.2 13.7A4.8 4.8 0 0 0 14.8 9.2A1 1 0 0 0 13.4 10.6A2.9 2.9 0 0 1 13.4 14.8L9.9 18.4A3.2 3.2 0 0 1 5.6 18.4A3.2 3.2 0 0 1 5.6 14.1L6.1 13.7A7.3 7.3 0 0 1 5.7 11.2L4.2 12.7A5.1 5.1 0 0 0 4.2 19.8A5.1 5.1 0 0 0 11.3 19.8L13.1 18A6 6 0 0 1 16.2 13.7Z\";\nexport var mdiLinkVariantOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L13.9,17.17L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L12.5,15.76L10.88,14.15C10.87,14.39 10.77,14.64 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C8.12,13.77 7.63,12.37 7.72,11L2,5.27M12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.79,8.97L9.38,7.55L12.71,4.22M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.2,10.54 16.61,12.5 16.06,14.23L14.28,12.46C14.23,11.78 13.94,11.11 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\";\nexport var mdiLinkVariantPlus = \"M10.6 13.4A1 1 0 0 1 9.2 14.8A4.8 4.8 0 0 1 9.2 7.8L12.7 4.2A5.1 5.1 0 0 1 19.8 4.2A5.1 5.1 0 0 1 19.8 11.3L18.3 12.8A6.4 6.4 0 0 0 17.9 10.4L18.4 9.9A3.2 3.2 0 0 0 18.4 5.6A3.2 3.2 0 0 0 14.1 5.6L10.6 9.2A2.9 2.9 0 0 0 10.6 13.4M23 18V20H20V23H18V20H15V18H18V15H20V18M16.2 13.7A4.8 4.8 0 0 0 14.8 9.2A1 1 0 0 0 13.4 10.6A2.9 2.9 0 0 1 13.4 14.8L9.9 18.4A3.2 3.2 0 0 1 5.6 18.4A3.2 3.2 0 0 1 5.6 14.1L6.1 13.7A7.3 7.3 0 0 1 5.7 11.2L4.2 12.7A5.1 5.1 0 0 0 4.2 19.8A5.1 5.1 0 0 0 11.3 19.8L13.1 18A6 6 0 0 1 16.2 13.7Z\";\nexport var mdiLinkVariantRemove = \"M10.6 13.4A1 1 0 0 1 9.2 14.8A4.8 4.8 0 0 1 9.2 7.8L12.7 4.2A5.1 5.1 0 0 1 19.8 4.2A5.1 5.1 0 0 1 19.8 11.3L18.3 12.8A6.4 6.4 0 0 0 17.9 10.4L18.4 9.9A3.2 3.2 0 0 0 18.4 5.6A3.2 3.2 0 0 0 14.1 5.6L10.6 9.2A2.9 2.9 0 0 0 10.6 13.4M16.2 13.7A4.8 4.8 0 0 0 14.8 9.2A1 1 0 0 0 13.4 10.6A2.9 2.9 0 0 1 13.4 14.8L9.9 18.4A3.2 3.2 0 0 1 5.6 18.4A3.2 3.2 0 0 1 5.6 14.1L6.1 13.7A7.3 7.3 0 0 1 5.7 11.2L4.2 12.7A5.1 5.1 0 0 0 4.2 19.8A5.1 5.1 0 0 0 11.3 19.8L13.1 18A6 6 0 0 1 16.2 13.7M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9Z\";\nexport var mdiLinkedin = \"M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z\";\nexport var mdiLinux = \"M14.62,8.35C14.2,8.63 12.87,9.39 12.67,9.54C12.28,9.85 11.92,9.83 11.53,9.53C11.33,9.37 10,8.61 9.58,8.34C9.1,8.03 9.13,7.64 9.66,7.42C11.3,6.73 12.94,6.78 14.57,7.45C15.06,7.66 15.08,8.05 14.62,8.35M21.84,15.63C20.91,13.54 19.64,11.64 18,9.97C17.47,9.42 17.14,8.8 16.94,8.09C16.84,7.76 16.77,7.42 16.7,7.08C16.5,6.2 16.41,5.3 16,4.47C15.27,2.89 14,2.07 12.16,2C10.35,2.05 9,2.81 8.21,4.4C8,4.83 7.85,5.28 7.75,5.74C7.58,6.5 7.43,7.29 7.25,8.06C7.1,8.71 6.8,9.27 6.29,9.77C4.68,11.34 3.39,13.14 2.41,15.12C2.27,15.41 2.13,15.7 2.04,16C1.85,16.66 2.33,17.12 3.03,16.96C3.47,16.87 3.91,16.78 4.33,16.65C4.74,16.5 4.9,16.6 5,17C5.65,19.15 7.07,20.66 9.24,21.5C13.36,23.06 18.17,20.84 19.21,16.92C19.28,16.65 19.38,16.55 19.68,16.65C20.14,16.79 20.61,16.89 21.08,17C21.57,17.09 21.93,16.84 22,16.36C22.03,16.1 21.94,15.87 21.84,15.63\";\nexport var mdiLinuxMint = \"M2,3.23V6.8H3.5C4.59,6.8 4.78,7.53 4.78,8.55V14.86C4.78,18.12 7.65,20.77 11.18,20.77H19.9C21,20.77 22,20.07 22,19V9.2C22,5.93 19.13,3.28 15.6,3.28H11.93V3.27L2,3.23V3.23M6.62,5.46H8.37V14.45C8.37,15.65 9.19,16.59 10.16,16.59L16.13,16.61C17.38,16.61 18.35,15.75 18.35,14.73L18.34,9.96C18.34,9.65 18.24,9.41 18,9.19C17.79,8.96 17.56,8.86 17.25,8.86C16.94,8.86 16.71,8.96 16.5,9.19C16.27,9.41 16.16,9.65 16.16,9.96V14.05H14.31V9.96C14.31,9.65 14.21,9.41 14,9.19C13.77,8.96 13.54,8.86 13.22,8.86C12.92,8.86 12.68,8.96 12.46,9.19C12.24,9.41 12.14,9.65 12.14,9.96V14.05H10.29V9.96C10.29,9.15 10.58,8.44 11.15,7.86C11.72,7.29 12.43,7 13.22,7C14,7 14.68,7.28 15.24,7.82C15.79,7.28 16.47,7 17.25,7C18.05,7 18.76,7.29 19.32,7.86C19.89,8.44 20.19,9.15 20.19,9.96L20.2,15.06C20.11,15.91 19.75,16.67 19.13,17.31V17.31C18.4,18.04 17.5,18.42 16.5,18.42H9.83C9,18.34 8.29,17.95 7.69,17.36C7,16.65 6.62,15.79 6.62,14.79V5.46H6.62Z\";\nexport var mdiLipstick = \"M9 23C8.45 23 8 22.55 8 22V13C8 12.45 8.45 12 9 12H15C15.55 12 16 12.45 16 13V22C16 22.55 15.55 23 15 23H9M10 11C9.45 11 9 10.55 9 10V5.25C9 5.25 11 3 11.75 1C12.83 1.67 13.92 2.33 14.46 3.83C15 5.33 15 7.67 15 10C15 10.55 14.55 11 14 11H10Z\";\nexport var mdiLiquidSpot = \"M18.14 16.7C17.23 18.21 16.08 17.73 15 17.09S12.9 15.68 12.25 16.59C11.54 17.37 12.09 18.62 12.37 19.72C12.65 20.83 12.67 21.79 10.9 22C9.5 21.81 9.58 20.65 9.81 19.42C10.04 18.19 10.4 16.89 9.5 16.43C8.78 15.95 8.28 16.78 7.65 17.6C7 18.41 6.26 19.2 5.04 18.62C3.94 17.71 4.36 17.18 4.94 16.5S6.27 14.91 5.84 13.31C5.66 12.66 4.76 12.81 3.87 12.79C3 12.77 2.12 12.59 2.03 11.29C1.96 10.5 2.55 10.18 3.16 9.93C3.78 9.68 4.41 9.5 4.42 8.87C4.45 8.26 4.04 7.83 3.78 7.38S3.41 6.46 4.03 5.76C5.08 4.9 5.92 5.63 6.76 6.42S8.43 8.04 9.46 7.39C10.28 6.85 9.53 5.9 8.95 4.97S7.96 3.15 9.46 2.74C10.76 2.38 11.26 3.27 11.71 4.3C12.17 5.33 12.57 6.5 13.67 6.71C15.24 7 16.38 5.16 17.47 3.7S19.63 1.15 21 2.95C22.5 4.84 21.07 5.72 19.4 6.5C17.73 7.23 15.81 7.87 16.27 9.28C16.54 10.1 17.42 9.65 18.35 9.34C19.27 9.03 20.26 8.86 20.74 10.27C21.25 11.76 20.04 12.1 18.68 12.24C17.32 12.38 15.8 12.32 15.7 13C15.59 13.71 16.5 14 17.29 14.42C18.08 14.85 18.75 15.42 18.14 16.7M20.5 19C19.55 19 19.06 18.26 19.06 17.5C19.06 16.74 19.54 16 20.5 16C21.5 16 22 16.74 22 17.5C22 18.26 21.5 19 20.5 19Z\";\nexport var mdiLiquor = \"M3 14C3 15.3 3.8 16.4 5 16.8V20H3V22H9V20H7V16.8C8.2 16.4 9 15.3 9 14V6H3V14M5 8H7V11H5V8M20.6 8.5L19.6 8.2C19.3 8.1 19 7.7 19 7.3V3C19 2.5 18.5 2 18 2H15C14.4 2 14 2.5 14 3V7.3C14 7.7 13.7 8.1 13.3 8.3L12.4 8.6C11.6 8.9 11 9.6 11 10.5V20C11 21.1 11.9 22 13 22H20C21.1 22 22 21.1 22 20V10.4C22 9.6 21.5 8.8 20.6 8.5M16 4H17V5H16V4M13 10.4L13.9 10.1C15.2 9.7 16 8.6 16 7.3V7H17V7.3C17 8.6 17.8 9.7 19 10.1L20 10.4V12H13V10.4M20 20H13V18H20V20Z\";\nexport var mdiListBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\";\nexport var mdiListBoxOutline = \"M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z\";\nexport var mdiListStatus = \"M16.5 11L13 7.5L14.4 6.1L16.5 8.2L20.7 4L22.1 5.4L16.5 11M11 7H2V9H11V7M21 13.4L19.6 12L17 14.6L14.4 12L13 13.4L15.6 16L13 18.6L14.4 20L17 17.4L19.6 20L21 18.6L18.4 16L21 13.4M11 15H2V17H11V15Z\";\nexport var mdiLitecoin = \"M12.55,15.92L13.16,13.78L14.81,13.19L16.25,7.63L14.56,8.31L16.25,2H8L5.38,11.77L3.72,12.34L2.22,17.91L4,17.27L2.66,22H20.16L21.78,15.92H12.55M19.39,21H4L5.46,15.65L3.72,16.3L4.58,13.11L6.24,12.54L8.74,3H15L13.13,10L14.83,9.3L14,12.42L12.33,13L11.22,16.91H20.5L19.39,21Z\";\nexport var mdiLoading = \"M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z\";\nexport var mdiLocationEnter = \"M14 12L10 8V11H2V13H10V16M22 12A10 10 0 0 1 2.46 15H4.59A8 8 0 1 0 4.59 9H2.46A10 10 0 0 1 22 12Z\";\nexport var mdiLocationExit = \"M22 12L18 8V11H10V13H18V16M20 18A10 10 0 1 1 20 6H17.27A8 8 0 1 0 17.27 18Z\";\nexport var mdiLock = \"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\";\nexport var mdiLockAlert = \"M10 17C11.1 17 12 16.1 12 15C12 13.9 11.1 13 10 13C8.9 13 8 13.9 8 15S8.9 17 10 17M16 8C17.1 8 18 8.9 18 10V20C18 21.1 17.1 22 16 22H4C2.9 22 2 21.1 2 20V10C2 8.9 2.9 8 4 8H5V6C5 3.2 7.2 1 10 1S15 3.2 15 6V8H16M10 3C8.3 3 7 4.3 7 6V8H13V6C13 4.3 11.7 3 10 3M22 13H20V7H22V13M22 17H20V15H22V17Z\";\nexport var mdiLockAlertOutline = \"M10 17C8.9 17 8 16.1 8 15C8 13.9 8.9 13 10 13C11.1 13 12 13.9 12 15S11.1 17 10 17M16 20V10H4V20H16M16 8C17.1 8 18 8.9 18 10V20C18 21.1 17.1 22 16 22H4C2.9 22 2 21.1 2 20V10C2 8.9 2.9 8 4 8H5V6C5 3.2 7.2 1 10 1S15 3.2 15 6V8H16M10 3C8.3 3 7 4.3 7 6V8H13V6C13 4.3 11.7 3 10 3M22 7H20V13H22V7M22 15H20V17H22V15Z\";\nexport var mdiLockCheck = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6V8H6C4.9 8 4 8.89 4 10V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M9 6C9 4.34 10.34 3 12 3S15 4.34 15 6V8H9V6M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13C13.1 13 14 13.89 14 15C14 16.11 13.11 17 12 17M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiLockCheckOutline = \"M14 15C14 16.11 13.11 17 12 17C10.89 17 10 16.1 10 15C10 13.89 10.89 13 12 13C13.11 13 14 13.9 14 15M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.1 4 20V10C4 8.89 4.89 8 6 8H7V6C7 3.24 9.24 1 12 1S17 3.24 17 6V8H18C19.11 8 20 8.9 20 10V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V10H6V20H13.09M9 8H15V6C15 4.34 13.66 3 12 3S9 4.34 9 6V8M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiLockClock = \"M8.5,2C6,2 4,4 4,6.5V7C2.89,7 2,7.89 2,9V18C2,19.11 2.89,20 4,20H8.72C10.18,21.29 12.06,22 14,22A8,8 0 0,0 22,14A8,8 0 0,0 14,6C13.66,6 13.32,6.03 13,6.08C12.76,3.77 10.82,2 8.5,2M8.5,4A2.5,2.5 0 0,1 11,6.5V7H6V6.5A2.5,2.5 0 0,1 8.5,4M14,8A6,6 0 0,1 20,14A6,6 0 0,1 14,20A6,6 0 0,1 8,14A6,6 0 0,1 14,8M13,10V15L16.64,17.19L17.42,15.9L14.5,14.15V10H13Z\";\nexport var mdiLockMinus = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6V8H6C4.9 8 4 8.89 4 10V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M9 6C9 4.34 10.34 3 12 3S15 4.34 15 6V8H9V6M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13C13.1 13 14 13.89 14 15C14 16.11 13.11 17 12 17M23 18V20H15V18H23Z\";\nexport var mdiLockMinusOutline = \"M14 15C14 16.11 13.11 17 12 17C10.89 17 10 16.1 10 15C10 13.89 10.89 13 12 13C13.11 13 14 13.9 14 15M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.1 4 20V10C4 8.89 4.89 8 6 8H7V6C7 3.24 9.24 1 12 1S17 3.24 17 6V8H18C19.11 8 20 8.9 20 10V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V10H6V20H13.09M9 8H15V6C15 4.34 13.66 3 12 3S9 4.34 9 6V8M15 18V20H23V18H15Z\";\nexport var mdiLockOff = \"M9 5.82L7.36 4.16C8.09 2.31 9.89 1 12 1C14.76 1 17 3.24 17 6V8H18C19.11 8 20 8.9 20 10V16.8L11.2 8H15V6C15 4.34 13.66 3 12 3C10.41 3 9.11 4.25 9 5.82M22.11 21.46L20.84 22.73L19.46 21.35C19.1 21.75 18.58 22 18 22H6C4.89 22 4 21.11 4 20V10C4 8.89 4.9 8 6 8H6.11L1.11 3L2.39 1.73L22.11 21.46M13.85 15.74L11.26 13.15C10.5 13.44 10 14.16 10 15C10 16.11 10.9 17 12 17C12.84 17 13.56 16.5 13.85 15.74Z\";\nexport var mdiLockOffOutline = \"M9 5.82L7.36 4.16C8.09 2.31 9.89 1 12 1C14.76 1 17 3.24 17 6V8H18C19.11 8 20 8.9 20 10V16.8L18 14.8V10H13.2L11.2 8H15V6C15 4.34 13.66 3 12 3C10.41 3 9.11 4.25 9 5.82M22.11 21.46L20.84 22.73L19.46 21.35C19.1 21.75 18.58 22 18 22H6C4.89 22 4 21.1 4 20V10C4 8.89 4.89 8 6 8H6.11L1.11 3L2.39 1.73L22.11 21.46M18 19.89L13.85 15.74C13.56 16.5 12.84 17 12 17C10.89 17 10 16.1 10 15C10 14.15 10.5 13.44 11.26 13.15L8.11 10H6V20H18V19.89Z\";\nexport var mdiLockOpen = \"M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z\";\nexport var mdiLockOpenAlert = \"M16 8C17.1 8 18 8.9 18 10V20C18 21.1 17.1 22 16 22H4C2.9 22 2 21.1 2 20V10C2 8.9 2.9 8 4 8H13V6C13 4.3 11.7 3 10 3S7 4.3 7 6H5C5 3.2 7.2 1 10 1S15 3.2 15 6V8H16M10 17C11.1 17 12 16.1 12 15S11.1 13 10 13 8 13.9 8 15 8.9 17 10 17M22 13H20V7H22V13M22 17H20V15H22V17Z\";\nexport var mdiLockOpenAlertOutline = \"M16 20V10H4V20H16M16 8C17.1 8 18 8.9 18 10V20C18 21.1 17.1 22 16 22H4C2.9 22 2 21.1 2 20V10C2 8.9 2.9 8 4 8H13V6C13 4.3 11.7 3 10 3S7 4.3 7 6H5C5 3.2 7.2 1 10 1S15 3.2 15 6V8H16M10 17C8.9 17 8 16.1 8 15S8.9 13 10 13 12 13.9 12 15 11.1 17 10 17M22 7H20V13H22V7M22 15H20V17H22V15Z\";\nexport var mdiLockOpenCheck = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13 14 13.9 14 15 13.11 17 12 17M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiLockOpenCheckOutline = \"M14 15C14 16.11 13.11 17 12 17S10 16.11 10 15 10.9 13 12 13 14 13.9 14 15M6 20V10H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.22 20.72 13.09 20H6M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiLockOpenMinus = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13 14 13.9 14 15 13.11 17 12 17M23 18V20H15V18H23Z\";\nexport var mdiLockOpenMinusOutline = \"M14 15C14 16.11 13.11 17 12 17S10 16.11 10 15 10.9 13 12 13 14 13.9 14 15M6 20V10H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.22 20.72 13.09 20H6M15 18V20H23V18H15Z\";\nexport var mdiLockOpenOutline = \"M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,1 10,15A2,2 0 0,1 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17Z\";\nexport var mdiLockOpenPlus = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13 14 13.9 14 15 13.11 17 12 17M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiLockOpenPlusOutline = \"M14 15C14 16.11 13.11 17 12 17S10 16.11 10 15 10.9 13 12 13 14 13.9 14 15M6 20V10H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.22 20.72 13.09 20H6M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiLockOpenRemove = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13 14 13.9 14 15 13.11 17 12 17M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiLockOpenRemoveOutline = \"M14 15C14 16.11 13.11 17 12 17S10 16.11 10 15 10.9 13 12 13 14 13.9 14 15M6 20V10H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6H9C9 4.34 10.34 3 12 3S15 4.34 15 6V8H6C4.89 8 4 8.9 4 10V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.22 20.72 13.09 20H6M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiLockOpenVariant = \"M18 1C15.24 1 13 3.24 13 6V8H4C2.9 8 2 8.89 2 10V20C2 21.11 2.9 22 4 22H16C17.11 22 18 21.11 18 20V10C18 8.9 17.11 8 16 8H15V6C15 4.34 16.34 3 18 3C19.66 3 21 4.34 21 6V8H23V6C23 3.24 20.76 1 18 1M10 13C11.1 13 12 13.89 12 15C12 16.11 11.11 17 10 17C8.9 17 8 16.11 8 15C8 13.9 8.9 13 10 13Z\";\nexport var mdiLockOpenVariantOutline = \"M10 13C11.1 13 12 13.89 12 15C12 16.11 11.11 17 10 17S8 16.11 8 15 8.9 13 10 13M18 1C15.24 1 13 3.24 13 6V8H4C2.9 8 2 8.9 2 10V20C2 21.1 2.9 22 4 22H16C17.1 22 18 21.1 18 20V10C18 8.9 17.1 8 16 8H15V6C15 4.34 16.34 3 18 3S21 4.34 21 6V8H23V6C23 3.24 20.76 1 18 1M16 10V20H4V10H16Z\";\nexport var mdiLockOutline = \"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\";\nexport var mdiLockPattern = \"M7,3A4,4 0 0,1 11,7C11,8.86 9.73,10.43 8,10.87V13.13C8.37,13.22 8.72,13.37 9.04,13.56L13.56,9.04C13.2,8.44 13,7.75 13,7A4,4 0 0,1 17,3A4,4 0 0,1 21,7A4,4 0 0,1 17,11C16.26,11 15.57,10.8 15,10.45L10.45,15C10.8,15.57 11,16.26 11,17A4,4 0 0,1 7,21A4,4 0 0,1 3,17C3,15.14 4.27,13.57 6,13.13V10.87C4.27,10.43 3,8.86 3,7A4,4 0 0,1 7,3M17,13A4,4 0 0,1 21,17A4,4 0 0,1 17,21A4,4 0 0,1 13,17A4,4 0 0,1 17,13M17,15A2,2 0 0,0 15,17A2,2 0 0,0 17,19A2,2 0 0,0 19,17A2,2 0 0,0 17,15Z\";\nexport var mdiLockPercent = \"M18 8H17V6C17 3.2 14.8 1 12 1S7 3.2 7 6V8H6C4.9 8 4 8.9 4 10V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V10C20 8.9 19.1 8 18 8M9 6C9 4.3 10.3 3 12 3S15 4.3 15 6V8H9V6M9.5 11C10.3 11 11 11.7 11 12.5S10.3 14 9.5 14 8 13.3 8 12.5 8.7 11 9.5 11M14.5 19C13.7 19 13 18.3 13 17.5S13.7 16 14.5 16 16 16.7 16 17.5 15.3 19 14.5 19M9.2 19.2L7.8 17.8L14.9 10.7L16.3 12.1L9.2 19.2Z\";\nexport var mdiLockPercentOpen = \"M18 8H17V6C17 3.2 14.8 1 12 1S7 3.2 7 6H9C9 4.3 10.3 3 12 3S15 4.3 15 6V8H6C4.9 8 4 8.9 4 10V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V10C20 8.9 19.1 8 18 8M9.5 11C10.3 11 11 11.7 11 12.5S10.3 14 9.5 14 8 13.3 8 12.5 8.7 11 9.5 11M14.5 19C13.7 19 13 18.3 13 17.5S13.7 16 14.5 16 16 16.7 16 17.5 15.3 19 14.5 19M9.2 19.2L7.8 17.8L14.9 10.7L16.3 12.1L9.2 19.2Z\";\nexport var mdiLockPercentOpenOutline = \"M9.5 11C10.3 11 11 11.7 11 12.5S10.3 14 9.5 14 8 13.3 8 12.5 8.7 11 9.5 11M14.5 19C13.7 19 13 18.3 13 17.5S13.7 16 14.5 16 16 16.7 16 17.5 15.3 19 14.5 19M9.2 19.2L7.8 17.8L14.9 10.7L16.3 12.1L9.2 19.2M18 8H17V6C17 3.2 14.8 1 12 1S7 3.2 7 6H9C9 4.3 10.3 3 12 3S15 4.3 15 6V8H6C4.9 8 4 8.9 4 10V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V10C20 8.9 19.1 8 18 8M18 20H6V10H18V20Z\";\nexport var mdiLockPercentOpenVariant = \"M18 1C15.2 1 13 3.2 13 6V8H4C2.9 8 2 8.9 2 10V20C2 21.1 2.9 22 4 22H16C17.1 22 18 21.1 18 20V10C18 8.9 17.1 8 16 8H15V6C15 4.3 16.3 3 18 3S21 4.3 21 6V8H23V6C23 3.2 20.8 1 18 1M7.5 11C8.3 11 9 11.7 9 12.5S8.3 14 7.5 14 6 13.3 6 12.5 6.7 11 7.5 11M12.5 19C11.7 19 11 18.3 11 17.5S11.7 16 12.5 16 14 16.7 14 17.5 13.3 19 12.5 19M7.2 19.2L5.8 17.8L12.9 10.7L14.3 12.1L7.2 19.2Z\";\nexport var mdiLockPercentOpenVariantOutline = \"M7.5 11C8.3 11 9 11.7 9 12.5S8.3 14 7.5 14 6 13.3 6 12.5 6.7 11 7.5 11M12.5 19C11.7 19 11 18.3 11 17.5S11.7 16 12.5 16 14 16.7 14 17.5 13.3 19 12.5 19M7.2 19.2L5.8 17.8L12.9 10.7L14.3 12.1L7.2 19.2M18 1C15.2 1 13 3.2 13 6V8H4C2.9 8 2 8.9 2 10V20C2 21.1 2.9 22 4 22H16C17.1 22 18 21.1 18 20V10C18 8.9 17.1 8 16 8H15V6C15 4.3 16.3 3 18 3S21 4.3 21 6V8H23V6C23 3.2 20.8 1 18 1M16 10V20H4V10H16Z\";\nexport var mdiLockPercentOutline = \"M18 8H17V6C17 3.2 14.8 1 12 1S7 3.2 7 6V8H6C4.9 8 4 8.9 4 10V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V10C20 8.9 19.1 8 18 8M9 6C9 4.3 10.3 3 12 3S15 4.3 15 6V8H9V6M18 20H6V10H18V20M11 12.5C11 13.3 10.3 14 9.5 14S8 13.3 8 12.5 8.7 11 9.5 11 11 11.7 11 12.5M16 17.5C16 18.3 15.3 19 14.5 19S13 18.3 13 17.5 13.7 16 14.5 16 16 16.7 16 17.5M16.2 12.2L9.1 19.3L7.7 17.9L14.8 10.8L16.2 12.2Z\";\nexport var mdiLockPlus = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6V8H6C4.9 8 4 8.89 4 10V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M9 6C9 4.34 10.34 3 12 3S15 4.34 15 6V8H9V6M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13C13.1 13 14 13.89 14 15C14 16.11 13.11 17 12 17M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiLockPlusOutline = \"M6 20V10H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6V8H6C4.89 8 4 8.89 4 10V20C4 21.1 4.89 22 6 22H13.81C13.46 21.39 13.22 20.72 13.09 20H6M9 6C9 4.34 10.34 3 12 3S15 4.34 15 6V8H9V6M14 15C14 16.11 13.11 17 12 17C10.89 17 10 16.1 10 15C10 13.89 10.89 13 12 13C13.11 13 14 13.9 14 15M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiLockQuestion = \"M12,1A5,5 0 0,0 7,6V8H6A2,2 0 0,0 4,10V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V10A2,2 0 0,0 18,8H17V6A5,5 0 0,0 12,1M12,2.9C13.71,2.9 15.1,4.29 15.1,6V8H8.9V6C8.9,4.29 10.29,2.9 12,2.9M12.19,10.5C13.13,10.5 13.88,10.71 14.42,11.12C14.96,11.54 15.23,12.1 15.23,12.8C15.23,13.24 15.08,13.63 14.79,14C14.5,14.36 14.12,14.64 13.66,14.85C13.4,15 13.23,15.15 13.14,15.32C13.05,15.5 13,15.72 13,16H11C11,15.5 11.1,15.16 11.29,14.92C11.5,14.68 11.84,14.4 12.36,14.08C12.62,13.94 12.83,13.76 13,13.54C13.14,13.33 13.22,13.08 13.22,12.8C13.22,12.5 13.13,12.28 12.95,12.11C12.77,11.93 12.5,11.85 12.19,11.85C11.92,11.85 11.7,11.92 11.5,12.06C11.34,12.2 11.24,12.41 11.24,12.69H9.27C9.22,12 9.5,11.4 10.05,11.04C10.59,10.68 11.3,10.5 12.19,10.5M11,17H13V19H11V17Z\";\nexport var mdiLockRemove = \"M19 13C19.34 13 19.67 13.04 20 13.09V10C20 8.9 19.11 8 18 8H17V6C17 3.24 14.76 1 12 1S7 3.24 7 6V8H6C4.9 8 4 8.89 4 10V20C4 21.11 4.89 22 6 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M9 6C9 4.34 10.34 3 12 3S15 4.34 15 6V8H9V6M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13C13.1 13 14 13.89 14 15C14 16.11 13.11 17 12 17M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiLockRemoveOutline = \"M14 15C14 16.11 13.11 17 12 17C10.89 17 10 16.1 10 15C10 13.89 10.89 13 12 13C13.11 13 14 13.9 14 15M13.09 20C13.21 20.72 13.46 21.39 13.81 22H6C4.89 22 4 21.1 4 20V10C4 8.89 4.89 8 6 8H7V6C7 3.24 9.24 1 12 1S17 3.24 17 6V8H18C19.11 8 20 8.9 20 10V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V10H6V20H13.09M9 8H15V6C15 4.34 13.66 3 12 3S9 4.34 9 6V8M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiLockReset = \"M12.63,2C18.16,2 22.64,6.5 22.64,12C22.64,17.5 18.16,22 12.63,22C9.12,22 6.05,20.18 4.26,17.43L5.84,16.18C7.25,18.47 9.76,20 12.64,20A8,8 0 0,0 20.64,12A8,8 0 0,0 12.64,4C8.56,4 5.2,7.06 4.71,11H7.47L3.73,14.73L0,11H2.69C3.19,5.95 7.45,2 12.63,2M15.59,10.24C16.09,10.25 16.5,10.65 16.5,11.16V15.77C16.5,16.27 16.09,16.69 15.58,16.69H10.05C9.54,16.69 9.13,16.27 9.13,15.77V11.16C9.13,10.65 9.54,10.25 10.04,10.24V9.23C10.04,7.7 11.29,6.46 12.81,6.46C14.34,6.46 15.59,7.7 15.59,9.23V10.24M12.81,7.86C12.06,7.86 11.44,8.47 11.44,9.23V10.24H14.19V9.23C14.19,8.47 13.57,7.86 12.81,7.86Z\";\nexport var mdiLockSmart = \"M12,2A6,6 0 0,0 6,8V16A6,6 0 0,0 12,22A6,6 0 0,0 18,16V8A6,6 0 0,0 12,2M8,6H10V8H8V6M11,6H13V8H11V6M14,6H16V8H14V6M8,9H10V11H8V9M11,9H13V11H11V9M14,9H16V11H14V9M8,12H10V14H8V12M11,12H13V14H11V12M14,12H16V14H14V12M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16Z\";\nexport var mdiLocker = \"M8,2H16A2,2 0 0,1 18,4V20A2,2 0 0,1 16,22H8A2,2 0 0,1 6,20V4A2,2 0 0,1 8,2M8,4V20H16V4H8M10,13H12V17H10V13M10,6H14V7.5H10V6M10,9H14V10.5H10V9Z\";\nexport var mdiLockerMultiple = \"M3,2H21A2,2 0 0,1 23,4V20A2,2 0 0,1 21,22H3A2,2 0 0,1 1,20V4A2,2 0 0,1 3,2M13,4V20H21V4H13M3,4V20H11V4H3M5,13H7V17H5V13M5,6H9V7.5H5V6M5,9H9V10.5H5V9M15,13H17V17H15V13M15,6H19V7.5H15V6M15,9H19V10.5H15V9Z\";\nexport var mdiLogin = \"M11 7L9.6 8.4L12.2 11H2V13H12.2L9.6 15.6L11 17L16 12L11 7M20 19H12V21H20C21.1 21 22 20.1 22 19V5C22 3.9 21.1 3 20 3H12V5H20V19Z\";\nexport var mdiLoginVariant = \"M19,3H5C3.89,3 3,3.89 3,5V9H5V5H19V19H5V15H3V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M10.08,15.58L11.5,17L16.5,12L11.5,7L10.08,8.41L12.67,11H3V13H12.67L10.08,15.58Z\";\nexport var mdiLogout = \"M17 7L15.59 8.41L18.17 11H8V13H18.17L15.59 15.58L17 17L22 12M4 5H12V3H4C2.9 3 2 3.9 2 5V19C2 20.1 2.9 21 4 21H12V19H4V5Z\";\nexport var mdiLogoutVariant = \"M14.08,15.59L16.67,13H7V11H16.67L14.08,8.41L15.5,7L20.5,12L15.5,17L14.08,15.59M19,3A2,2 0 0,1 21,5V9.67L19,7.67V5H5V19H19V16.33L21,14.33V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19Z\";\nexport var mdiLongitude = \"M12 2A10 10 0 1 0 22 12A10.03 10.03 0 0 0 12 2M9.4 19.6A8.05 8.05 0 0 1 9.4 4.4A16.45 16.45 0 0 0 7.5 12A16.45 16.45 0 0 0 9.4 19.6M12 20A13.81 13.81 0 0 1 9.5 12A13.81 13.81 0 0 1 12 4A13.81 13.81 0 0 1 14.5 12A13.81 13.81 0 0 1 12 20M14.6 19.6A16.15 16.15 0 0 0 14.6 4.4A8.03 8.03 0 0 1 20 12A7.9 7.9 0 0 1 14.6 19.6Z\";\nexport var mdiLooks = \"M12,6A11,11 0 0,0 1,17H3C3,12.04 7.04,8 12,8C16.96,8 21,12.04 21,17H23A11,11 0 0,0 12,6M12,10C8.14,10 5,13.14 5,17H7A5,5 0 0,1 12,12A5,5 0 0,1 17,17H19C19,13.14 15.86,10 12,10Z\";\nexport var mdiLotion = \"M15.5 6.5C15.5 5.66 17 4 17 4S18.5 5.66 18.5 6.5C18.5 7.33 17.83 8 17 8S15.5 7.33 15.5 6.5M19.5 15C20.88 15 22 13.88 22 12.5C22 10.83 19.5 8 19.5 8S17 10.83 17 12.5C17 13.88 18.12 15 19.5 15M16 12V22H4V12C4 9.03 6.16 6.57 9 6.09V4H7V2H13C14.13 2 15.15 2.39 16 3L14.56 4.44C14.1 4.17 13.57 4 13 4H11V6.09C13.84 6.57 16 9.03 16 12Z\";\nexport var mdiLotionOutline = \"M15.5 6.5C15.5 5.66 17 4 17 4S18.5 5.66 18.5 6.5C18.5 7.33 17.83 8 17 8S15.5 7.33 15.5 6.5M19.5 15C20.88 15 22 13.88 22 12.5C22 10.83 19.5 8 19.5 8S17 10.83 17 12.5C17 13.88 18.12 15 19.5 15M16 12V20C16 21.1 15.1 22 14 22H6C4.9 22 4 21.1 4 20V12C4 9.03 6.16 6.57 9 6.09V4H7V2H13C14.13 2 15.15 2.39 16 3L14.56 4.44C14.1 4.17 13.57 4 13 4H11V6.09C13.84 6.57 16 9.03 16 12M14 12C14 9.79 12.21 8 10 8S6 9.79 6 12V20H14V12Z\";\nexport var mdiLotionPlus = \"M15.5 6.5C15.5 5.66 17 4 17 4S18.5 5.66 18.5 6.5C18.5 7.33 17.83 8 17 8S15.5 7.33 15.5 6.5M19.5 15C20.88 15 22 13.88 22 12.5C22 10.83 19.5 8 19.5 8S17 10.83 17 12.5C17 13.88 18.12 15 19.5 15M13 14H11V12H9V14H7V16H9V18H11V16H13V14M16 12V22H4V12C4 9.03 6.16 6.57 9 6.09V4H7V2H13C14.13 2 15.15 2.39 16 3L14.56 4.44C14.1 4.17 13.57 4 13 4H11V6.09C13.84 6.57 16 9.03 16 12Z\";\nexport var mdiLotionPlusOutline = \"M15.5 6.5C15.5 5.66 17 4 17 4S18.5 5.66 18.5 6.5C18.5 7.33 17.83 8 17 8S15.5 7.33 15.5 6.5M19.5 15C20.88 15 22 13.88 22 12.5C22 10.83 19.5 8 19.5 8S17 10.83 17 12.5C17 13.88 18.12 15 19.5 15M13 14H11V12H9V14H7V16H9V18H11V16H13V14M16 12V20C16 21.1 15.1 22 14 22H6C4.9 22 4 21.1 4 20V12C4 9.03 6.16 6.57 9 6.09V4H7V2H13C14.13 2 15.15 2.39 16 3L14.56 4.44C14.1 4.17 13.57 4 13 4H11V6.09C13.84 6.57 16 9.03 16 12M14 12C14 9.79 12.21 8 10 8S6 9.79 6 12V20H14V12Z\";\nexport var mdiLoupe = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22H20A2,2 0 0,0 22,20V12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z\";\nexport var mdiLumx = \"M12.35,1.75L20.13,9.53L13.77,15.89L12.35,14.47L17.3,9.53L10.94,3.16L12.35,1.75M15.89,9.53L14.47,10.94L10.23,6.7L5.28,11.65L3.87,10.23L10.23,3.87L15.89,9.53M10.23,8.11L11.65,9.53L6.7,14.47L13.06,20.84L11.65,22.25L3.87,14.47L10.23,8.11M8.11,14.47L9.53,13.06L13.77,17.3L18.72,12.35L20.13,13.77L13.77,20.13L8.11,14.47Z\";\nexport var mdiLungs = \"M15.47 3.11C15 2.85 14.37 3.05 14.11 3.54C14.04 3.68 14 3.84 14 4V6.59L13.29 5.88C13.1 5.69 13 5.44 13 5.18V1H11V5.17C11 5.44 10.9 5.69 10.71 5.88L10 6.59V4C10 3.44 9.54 3 9 3C8.83 3 8.67 3.04 8.53 3.11C4.72 5 2 9.97 2 15.77C2 17.67 2.33 19.55 3 21.32C3.19 21.85 3.76 22.13 4.29 21.94C4.34 21.92 4.39 21.9 4.44 21.87L9.5 19.07C9.81 18.9 10 18.56 10 18.19V9.41L11.3 8.12C11.69 7.73 12.32 7.73 12.71 8.12L14 9.42V18.2C14 18.56 14.21 18.9 14.5 19.08L19.58 21.88C20.07 22.14 20.68 21.96 20.94 21.46C20.96 21.42 21 21.37 21 21.32C21.67 19.55 22 17.67 22 15.77C22 9.97 19.29 5 15.47 3.11Z\";\nexport var mdiMace = \"M19.92 9.27C19.97 9 20 8.76 20 8.5S19.97 8 19.92 7.73L23 8.5L19.92 9.27M14.69 12.92L15.5 16.16L16.31 12.92C16.05 12.97 15.78 13 15.5 13S14.95 12.97 14.69 12.92M11.7 10.89L6.79 15.79L6.09 15.09L1 20.17L3.83 23L8.91 17.91L8.21 17.21L13.11 12.3C12.54 11.94 12.06 11.46 11.7 10.89M16.27 4.08L15.5 1L14.73 4.08C15 4.03 15.24 4 15.5 4S16 4.03 16.27 4.08M8 8.5L11.08 9.27C11.03 9 11 8.76 11 8.5S11.03 8 11.08 7.73L8 8.5M18.63 10.04C18.86 9.58 19 9.06 19 8.5S18.86 7.42 18.63 6.96L21 3L17.04 5.37C16.58 5.14 16.06 5 15.5 5S14.42 5.14 13.96 5.37L10 3L12.37 6.96C12.14 7.42 12 7.94 12 8.5C12 10.43 13.57 12 15.5 12C16.06 12 16.58 11.86 17.04 11.63L21 14L18.63 10.04Z\";\nexport var mdiMagazinePistol = \"M14 1L12 3H7L9 21H8V23H18V21L16 1M9 5H12L12.24 7H9.24M9.47 9H12.47L12.71 11H9.71M9.94 13H12.94L13.18 15H10.18M10.41 17H13.41L13.65 19H10.65Z\";\nexport var mdiMagazineRifle = \"M7 1V3H8V13L5 19L14 23L18 13V3H19V1M10 3H16V5H11.88V13.45L9.6 18.14L8 17.5L10 13.5Z\";\nexport var mdiMagicStaff = \"M17.5 9C16.12 9 15 7.88 15 6.5S16.12 4 17.5 4 20 5.12 20 6.5 18.88 9 17.5 9M14.43 8.15L2 20.59L3.41 22L15.85 9.57C15.25 9.24 14.76 8.75 14.43 8.15M13 5L13.63 3.63L15 3L13.63 2.37L13 1L12.38 2.37L11 3L12.38 3.63L13 5M21 5L21.63 3.63L23 3L21.63 2.37L21 1L20.38 2.37L19 3L20.38 3.63L21 5M21 9L20.38 10.37L19 11L20.38 11.63L21 13L21.63 11.63L23 11L21.63 10.37L21 9Z\";\nexport var mdiMagnet = \"M3,7V13A9,9 0 0,0 12,22A9,9 0 0,0 21,13V7H17V13A5,5 0 0,1 12,18A5,5 0 0,1 7,13V7M17,5H21V2H17M3,5H7V2H3\";\nexport var mdiMagnetOn = \"M3,7V13A9,9 0 0,0 12,22A9,9 0 0,0 21,13V7H17V13A5,5 0 0,1 12,18A5,5 0 0,1 7,13V7M17,5H21V2H17M3,5H7V2H3M13,1.5L9,9H11V14.5L15,7H13V1.5Z\";\nexport var mdiMagnify = \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\";\nexport var mdiMagnifyClose = \"M9,2A7,7 0 0,1 16,9C16,10.5 15.5,12 14.61,13.19L15.41,14H16L22,20L20,22L14,16V15.41L13.19,14.61C12,15.5 10.5,16 9,16A7,7 0 0,1 2,9A7,7 0 0,1 9,2M11.12,5.46L9,7.59L6.88,5.46L5.46,6.88L7.59,9L5.46,11.12L6.88,12.54L9,10.41L11.12,12.54L12.54,11.12L10.41,9L12.54,6.88L11.12,5.46Z\";\nexport var mdiMagnifyExpand = \"M18 16H17.42L16.61 15.19C17.5 14 18 12.5 18 11C18 7.13 14.87 4 11 4C9.5 4 8 4.5 6.79 5.4C3.7 7.72 3.07 12.11 5.39 15.2C7.71 18.29 12.1 18.92 15.19 16.6L16 17.41V18L21 23L23 21L18 16M11 16C8.24 16 6 13.76 6 11S8.24 6 11 6 16 8.24 16 11 13.76 16 11 16M3 6L1 8V1H8L6 3H3V6M21 1V8L19 6V3H16L14 1H21M6 19L8 21H1V14L3 16V19H6Z\";\nexport var mdiMagnifyMinus = \"M9,2A7,7 0 0,1 16,9C16,10.57 15.5,12 14.61,13.19L15.41,14H16L22,20L20,22L14,16V15.41L13.19,14.61C12,15.5 10.57,16 9,16A7,7 0 0,1 2,9A7,7 0 0,1 9,2M5,8V10H13V8H5Z\";\nexport var mdiMagnifyMinusCursor = \"M11,4A7,7 0 0,1 18,11C18,12.5 17.5,14 16.61,15.19L17.42,16H18L23,21L21,23L16,18V17.41L15.19,16.6C12.1,18.92 7.71,18.29 5.39,15.2C3.07,12.11 3.7,7.72 6.79,5.4C8,4.5 9.5,4 11,4M7,10V12H15V10H7M1,1V8L8,1H1Z\";\nexport var mdiMagnifyMinusOutline = \"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z\";\nexport var mdiMagnifyPlus = \"M9,2A7,7 0 0,1 16,9C16,10.57 15.5,12 14.61,13.19L15.41,14H16L22,20L20,22L14,16V15.41L13.19,14.61C12,15.5 10.57,16 9,16A7,7 0 0,1 2,9A7,7 0 0,1 9,2M8,5V8H5V10H8V13H10V10H13V8H10V5H8Z\";\nexport var mdiMagnifyPlusCursor = \"M11,4A7,7 0 0,1 18,11C18,12.5 17.5,14 16.61,15.19L17.42,16H18L23,21L21,23L16,18V17.41L15.19,16.6C12.1,18.92 7.71,18.29 5.39,15.2C3.07,12.11 3.7,7.72 6.79,5.4C8,4.5 9.5,4 11,4M10,7V10H7V12H10V15H12V12H15V10H12V7H10M1,1V8L8,1H1Z\";\nexport var mdiMagnifyPlusOutline = \"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z\";\nexport var mdiMagnifyRemoveCursor = \"M1 1V8L8 1H1M18 16H17.42L16.61 15.19C17.5 14 18 12.5 18 11C18 7.13 14.87 4 11 4C9.5 4 8 4.5 6.79 5.4C3.7 7.72 3.07 12.11 5.39 15.2C7.71 18.29 12.1 18.92 15.19 16.6L16 17.41V18L21 23L23 21L18 16M14.6 13.16L13.18 14.58L11.06 12.45L8.94 14.58L7.5 13.16L9.65 11.04L7.5 8.92L8.94 7.5L11.06 9.63L13.18 7.5L14.6 8.92L12.47 11.04L14.6 13.16Z\";\nexport var mdiMagnifyRemoveOutline = \"M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.5L20.5 19L15.5 14M9.5 14C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14M10.91 11.62L9.5 10.21L8.09 11.62L7.38 10.91L8.79 9.5L7.38 8.09L8.09 7.38L9.5 8.79L10.91 7.38L11.62 8.09L10.21 9.5L11.62 10.91L10.91 11.62Z\";\nexport var mdiMagnifyScan = \"M17 22V20H20V17H22V20.5C22 20.89 21.84 21.24 21.54 21.54C21.24 21.84 20.89 22 20.5 22H17M7 22H3.5C3.11 22 2.76 21.84 2.46 21.54C2.16 21.24 2 20.89 2 20.5V17H4V20H7V22M17 2H20.5C20.89 2 21.24 2.16 21.54 2.46C21.84 2.76 22 3.11 22 3.5V7H20V4H17V2M7 2V4H4V7H2V3.5C2 3.11 2.16 2.76 2.46 2.46C2.76 2.16 3.11 2 3.5 2H7M10.5 6C13 6 15 8 15 10.5C15 11.38 14.75 12.2 14.31 12.9L17.57 16.16L16.16 17.57L12.9 14.31C12.2 14.75 11.38 15 10.5 15C8 15 6 13 6 10.5C6 8 8 6 10.5 6M10.5 8C9.12 8 8 9.12 8 10.5C8 11.88 9.12 13 10.5 13C11.88 13 13 11.88 13 10.5C13 9.12 11.88 8 10.5 8Z\";\nexport var mdiMail = \"M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4M17,17H7V15H17M17,13H7V11H17M20,9H17V6H20\";\nexport var mdiMailbox = \"M17,4H7A5,5 0 0,0 2,9V20H20A2,2 0 0,0 22,18V9A5,5 0 0,0 17,4M10,18H4V9A3,3 0 0,1 7,6A3,3 0 0,1 10,9V18M19,15H17V13H13V11H19V15M9,11H5V9H9V11Z\";\nexport var mdiMailboxOpen = \"M8,4A5,5 0 0,0 3,9V18H1V20H21A2,2 0 0,0 23,18V9A5,5 0 0,0 18,4H8M8,6A3,3 0 0,1 11,9V18H5V9A3,3 0 0,1 8,6M14,11H20V15H18V13H14V11Z\";\nexport var mdiMailboxOpenOutline = \"M14,11H20V15H18V13H14V11M18,4H8A5,5 0 0,0 3,9V18H1V20H21A2,2 0 0,0 23,18V9A5,5 0 0,0 18,4M11,18H5V9A3,3 0 0,1 8,6A3,3 0 0,1 11,9V18M21,18H13V9C13,7.92 12.65,6.86 12,6H18A3,3 0 0,1 21,9V18Z\";\nexport var mdiMailboxOpenUp = \"M8,4A5,5 0 0,0 3,9V18H1V20H21A2,2 0 0,0 23,18V9A5,5 0 0,0 18,4H8M8,6A3,3 0 0,1 11,9V18H5V9A3,3 0 0,1 8,6M13,13V7H17V9H15V13H13Z\";\nexport var mdiMailboxOpenUpOutline = \"M14,12.85V6.85H18V8.85H16V12.85H14M18,3.85H8A5,5 0 0,0 3,8.85V17.85H1V19.85H21A2,2 0 0,0 23,17.85V8.85A5,5 0 0,0 18,3.85M11,17.85H5V8.85A3,3 0 0,1 8,5.85A3,3 0 0,1 11,8.85V17.85M21,17.85H13V8.85C13,7.76 12.65,6.71 12,5.85H18A3,3 0 0,1 21,8.85V17.85Z\";\nexport var mdiMailboxOutline = \"M17,4H7A5,5 0 0,0 2,9V20H20A2,2 0 0,0 22,18V9A5,5 0 0,0 17,4M10,18H4V9A3,3 0 0,1 7,6A3,3 0 0,1 10,9V18M20,18H12V9C12,7.92 11.65,6.86 11,6H17A3,3 0 0,1 20,9V18M13,11V13H17V15H19V11H13M9,11H5V9H9V11Z\";\nexport var mdiMailboxUp = \"M5,9H9V11H5V9M22,9V18A2,2 0 0,1 20,20H2V9A5,5 0 0,1 7,4H17A5,5 0 0,1 22,9M10,9A3,3 0 0,0 7,6A3,3 0 0,0 4,9V18H10V9M16,7H12V13H14V9H16V7Z\";\nexport var mdiMailboxUpOutline = \"M17,4H7A5,5 0 0,0 2,9V20H20A2,2 0 0,0 22,18V9A5,5 0 0,0 17,4M10,18H4V9A3,3 0 0,1 7,6A3,3 0 0,1 10,9V18M20,18H12V9C12,7.92 11.65,6.86 11,6H17A3,3 0 0,1 20,9V18M13,13H15V9H17V7H13V13M9,11H5V9H9V11Z\";\nexport var mdiManjaro = \"M2 2V22H7.6V7.6H14.8V2H2M9.2 9.2V22H14.8V9.2H9.2M16.4 2V22H22V2H16.4Z\";\nexport var mdiMap = \"M15,19L9,16.89V5L15,7.11M20.5,3C20.44,3 20.39,3 20.34,3L15,5.1L9,3L3.36,4.9C3.15,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21C3.55,21 3.61,21 3.66,20.97L9,18.9L15,21L20.64,19.1C20.85,19 21,18.85 21,18.62V3.5A0.5,0.5 0 0,0 20.5,3Z\";\nexport var mdiMapCheck = \"M18.25,22L15.5,19L16.66,17.82L18.25,19.41L21.84,15.82L23,17.23M20.5,3A0.5,0.5 0 0,1 21,3.5V13.36C20.36,13.13 19.69,13 19,13C17.46,13 16.06,13.6 15,14.56V7.1L9,5V16.9L13.04,18.3C13,18.54 13,18.77 13,19C13,19.46 13.06,19.92 13.16,20.36L9,18.9L3.66,20.97C3.59,21 3.55,21 3.5,21A0.5,0.5 0 0,1 3,20.5V5.38C3,5.15 3.16,4.97 3.35,4.9L9,3L15,5.1L20.33,3\";\nexport var mdiMapCheckOutline = \"M18.25,22L15.5,19L16.66,17.82L18.25,19.41L21.84,15.82L23,17.23L18.25,22M20.5,3A0.5,0.5 0 0,1 21,3.5V13.34C20.37,13.12 19.7,13 19,13V5.7L16,6.86V13.8C15.2,14.27 14.5,14.91 14,15.68V6.87L10,5.47V17.13L13.05,18.2L13,19C13,19.46 13.05,19.92 13.15,20.35L9,18.9L3.66,20.97L3.5,21A0.5,0.5 0 0,1 3,20.5V5.38C3,5.15 3.15,4.97 3.36,4.9L9,3L15,5.1L20.34,3.03L20.5,3M5,6.46V18.31L8,17.15V5.45L5,6.46Z\";\nexport var mdiMapClock = \"M15,12H16.5V16.25L19.36,17.94L18.61,19.16L15,17V12M23,16A7,7 0 0,1 16,23C13,23 10.4,21.08 9.42,18.4L8,17.9L2.66,19.97L2.5,20A0.5,0.5 0 0,1 2,19.5V4.38C2,4.15 2.15,3.97 2.36,3.9L8,2L14,4.1L19.34,2H19.5A0.5,0.5 0 0,1 20,2.5V10.25C21.81,11.5 23,13.62 23,16M9,16C9,12.83 11.11,10.15 14,9.29V6.11L8,4V15.89L9,16.24C9,16.16 9,16.08 9,16M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11Z\";\nexport var mdiMapClockOutline = \"M15,12H16.5V16.25L19.36,17.94L18.61,19.16L15,17V12M16,9C16.69,9 17.37,9.1 18,9.29V4.7L15,5.86V9.07C15.33,9 15.66,9 16,9M23,16A7,7 0 0,1 16,23C13,23 10.4,21.08 9.42,18.4L8,17.9L2.66,19.97L2.5,20A0.5,0.5 0 0,1 2,19.5V4.38C2,4.15 2.15,3.97 2.36,3.9L8,2L14,4.1L19.34,2.03L19.5,2A0.5,0.5 0 0,1 20,2.5V10.25C21.81,11.5 23,13.62 23,16M9,16C9,13.21 10.63,10.8 13,9.67V5.87L9,4.47V16.13H9C9,16.09 9,16.04 9,16M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11M4,5.46V17.31L7,16.15V4.45L4,5.46Z\";\nexport var mdiMapLegend = \"M9,3L3.36,4.9C3.15,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21L3.66,20.97L9,18.9L15,21L20.64,19.1C20.85,19.03 21,18.85 21,18.62V3.5A0.5,0.5 0 0,0 20.5,3L20.34,3.03L15,5.1L9,3M8,5.45V17.15L5,18.31V6.46L8,5.45M10,5.47L14,6.87V18.53L10,17.13V5.47M19,5.7V17.54L16,18.55V6.86L19,5.7M7.46,6.3L5.57,6.97V9.12L7.46,8.45V6.3M7.46,9.05L5.57,9.72V11.87L7.46,11.2V9.05M7.46,11.8L5.57,12.47V14.62L7.46,13.95V11.8M7.46,14.55L5.57,15.22V17.37L7.46,16.7V14.55Z\";\nexport var mdiMapMarker = \"M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z\";\nexport var mdiMapMarkerAccount = \"M12 2C8.14 2 5 5.14 5 9C5 14.25 12 22 12 22S19 14.25 19 9C19 5.14 15.86 2 12 2M12 4C13.1 4 14 4.9 14 6C14 7.11 13.1 8 12 8S10 7.11 10 6C10 4.9 10.9 4 12 4M12 14C10.33 14 8.86 13.15 8 11.85C8 10.53 10.67 9.8 12 9.8S16 10.53 16 11.85C15.14 13.15 13.67 14 12 14Z\";\nexport var mdiMapMarkerAccountOutline = \"M12 4C14.8 4 17 6.2 17 9C17 11.9 14.1 16.2 12 18.9C9.9 16.2 7 11.9 7 9C7 6.2 9.2 4 12 4M12 2C8.1 2 5 5.1 5 9C5 14.2 12 22 12 22S19 14.2 19 9C19 5.1 15.9 2 12 2M12 10C13.33 10 16 10.67 16 12V12.16C15.03 13.28 13.6 14 12 14S8.97 13.28 8 12.16V12C8 10.67 10.67 10 12 10M12 9C10.9 9 10 8.1 10 7S10.9 5 12 5 14 5.9 14 7 13.1 9 12 9Z\";\nexport var mdiMapMarkerAlert = \"M12 2C15.9 2 19 5.1 19 9C19 14.2 12 22 12 22S5 14.2 5 9C5 5.1 8.1 2 12 2M11 6V12H13V6H11M11 14V16H13V14H11Z\";\nexport var mdiMapMarkerAlertOutline = \"M12,2A7,7 0 0,1 19,9C19,14.25 12,22 12,22C12,22 5,14.25 5,9A7,7 0 0,1 12,2M12,4A5,5 0 0,0 7,9C7,10 7,12 12,18.71C17,12 17,10 17,9A5,5 0 0,0 12,4M11,6H13V11H11V6M11,13H13V15H11V13Z\";\nexport var mdiMapMarkerCheck = \"M12,2C15.86,2 19,5.14 19,9C19,14.25 12,22 12,22C12,22 5,14.25 5,9C5,5.14 8.14,2 12,2M10.47,14L17,7.41L15.6,6L10.47,11.18L8.4,9.09L7,10.5L10.47,14Z\";\nexport var mdiMapMarkerCheckOutline = \"M12 4C14.8 4 17 6.2 17 9C17 11.9 14.1 16.2 12 18.9C9.9 16.2 7 11.9 7 9C7 6.2 9.2 4 12 4M12 2C8.1 2 5 5.1 5 9C5 14.2 12 22 12 22S19 14.2 19 9C19 5.1 15.9 2 12 2M11.3 14L16.2 9L14.8 7.6L11.3 11.2L9.7 9.6L8.3 11L11.3 14Z\";\nexport var mdiMapMarkerCircle = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,12.5A1.5,1.5 0 0,1 10.5,11A1.5,1.5 0 0,1 12,9.5A1.5,1.5 0 0,1 13.5,11A1.5,1.5 0 0,1 12,12.5M12,7.2C9.9,7.2 8.2,8.9 8.2,11C8.2,14 12,17.5 12,17.5C12,17.5 15.8,14 15.8,11C15.8,8.9 14.1,7.2 12,7.2Z\";\nexport var mdiMapMarkerDistance = \"M6.5,8.11C5.61,8.11 4.89,7.39 4.89,6.5A1.61,1.61 0 0,1 6.5,4.89C7.39,4.89 8.11,5.61 8.11,6.5V6.5A1.61,1.61 0 0,1 6.5,8.11M6.5,2C4,2 2,4 2,6.5C2,9.87 6.5,14.86 6.5,14.86C6.5,14.86 11,9.87 11,6.5C11,4 9,2 6.5,2M17.5,8.11A1.61,1.61 0 0,1 15.89,6.5C15.89,5.61 16.61,4.89 17.5,4.89C18.39,4.89 19.11,5.61 19.11,6.5A1.61,1.61 0 0,1 17.5,8.11M17.5,2C15,2 13,4 13,6.5C13,9.87 17.5,14.86 17.5,14.86C17.5,14.86 22,9.87 22,6.5C22,4 20,2 17.5,2M17.5,16C16.23,16 15.1,16.8 14.68,18H9.32C8.77,16.44 7.05,15.62 5.5,16.17C3.93,16.72 3.11,18.44 3.66,20C4.22,21.56 5.93,22.38 7.5,21.83C8.35,21.53 9,20.85 9.32,20H14.69C15.24,21.56 16.96,22.38 18.5,21.83C20.08,21.28 20.9,19.56 20.35,18C19.92,16.8 18.78,16 17.5,16V16M17.5,20.5A1.5,1.5 0 0,1 16,19A1.5,1.5 0 0,1 17.5,17.5A1.5,1.5 0 0,1 19,19A1.5,1.5 0 0,1 17.5,20.5Z\";\nexport var mdiMapMarkerDown = \"M12 2A7 7 0 0 0 5 9C5 14.25 12 22 12 22S19 14.25 19 9A7 7 0 0 0 12 2M7.5 10H10V5H14V10H16.5L12 14.5Z\";\nexport var mdiMapMarkerLeft = \"M15 11.5C13.62 11.5 12.5 10.38 12.5 9S13.62 6.5 15 6.5 17.5 7.62 17.5 9 16.38 11.5 15 11.5M8 9C8 14.25 15 22 15 22S22 14.25 22 9C22 5.13 18.87 2 15 2S8 5.13 8 9M6 7L1 12L6 17V7Z\";\nexport var mdiMapMarkerLeftOutline = \"M15 6.5C16.38 6.5 17.5 7.62 17.5 9S16.38 11.5 15 11.5 12.5 10.38 12.5 9 13.62 6.5 15 6.5M15 2C18.87 2 22 5.13 22 9C22 14.25 15 22 15 22S8 14.25 8 9C8 5.13 11.13 2 15 2M10 9C10 10 10 12 15 18.71C20 12 20 10 20 9C20 6.24 17.76 4 15 4S10 6.24 10 9M6 7L1 12L6 17V7Z\";\nexport var mdiMapMarkerMinus = \"M9,11.5A2.5,2.5 0 0,0 11.5,9A2.5,2.5 0 0,0 9,6.5A2.5,2.5 0 0,0 6.5,9A2.5,2.5 0 0,0 9,11.5M9,2C12.86,2 16,5.13 16,9C16,14.25 9,22 9,22C9,22 2,14.25 2,9A7,7 0 0,1 9,2M15,17H23V19H15V17Z\";\nexport var mdiMapMarkerMinusOutline = \"M15 17H23V19H15V17M9 6.5C10.4 6.5 11.5 7.6 11.5 9S10.4 11.5 9 11.5 6.5 10.4 6.5 9 7.6 6.5 9 6.5M9 2C12.9 2 16 5.1 16 9C16 14.2 9 22 9 22S2 14.2 2 9C2 5.1 5.1 2 9 2M9 4C6.2 4 4 6.2 4 9C4 10 4 12 9 18.7C14 12 14 10 14 9C14 6.2 11.8 4 9 4Z\";\nexport var mdiMapMarkerMultiple = \"M14,11.5A2.5,2.5 0 0,0 16.5,9A2.5,2.5 0 0,0 14,6.5A2.5,2.5 0 0,0 11.5,9A2.5,2.5 0 0,0 14,11.5M14,2C17.86,2 21,5.13 21,9C21,14.25 14,22 14,22C14,22 7,14.25 7,9A7,7 0 0,1 14,2M5,9C5,13.5 10.08,19.66 11,20.81L10,22C10,22 3,14.25 3,9C3,5.83 5.11,3.15 8,2.29C6.16,3.94 5,6.33 5,9Z\";\nexport var mdiMapMarkerMultipleOutline = \"M11.5 9C11.5 7.62 12.62 6.5 14 6.5C15.1 6.5 16.03 7.21 16.37 8.19C16.45 8.45 16.5 8.72 16.5 9C16.5 10.38 15.38 11.5 14 11.5C12.91 11.5 12 10.81 11.64 9.84C11.55 9.58 11.5 9.29 11.5 9M5 9C5 13.5 10.08 19.66 11 20.81L10 22C10 22 3 14.25 3 9C3 5.83 5.11 3.15 8 2.29C6.16 3.94 5 6.33 5 9M14 2C17.86 2 21 5.13 21 9C21 14.25 14 22 14 22C14 22 7 14.25 7 9C7 5.13 10.14 2 14 2M14 4C11.24 4 9 6.24 9 9C9 10 9 12 14 18.71C19 12 19 10 19 9C19 6.24 16.76 4 14 4Z\";\nexport var mdiMapMarkerOff = \"M16.37,16.1L11.75,11.47L11.64,11.36L3.27,3L2,4.27L5.18,7.45C5.06,7.95 5,8.46 5,9C5,14.25 12,22 12,22C12,22 13.67,20.15 15.37,17.65L18.73,21L20,19.72M12,6.5A2.5,2.5 0 0,1 14.5,9C14.5,9.73 14.17,10.39 13.67,10.85L17.3,14.5C18.28,12.62 19,10.68 19,9A7,7 0 0,0 12,2C10,2 8.24,2.82 6.96,4.14L10.15,7.33C10.61,6.82 11.26,6.5 12,6.5Z\";\nexport var mdiMapMarkerOffOutline = \"M20 19.7L3.3 3L2 4.3L5.2 7.5C5.1 8 5 8.5 5 9C5 14.2 12 22 12 22S13.7 20.1 15.4 17.6L18.8 21L20 19.7M12 18.7C7.4 12.5 7 10.4 7 9.3L13.8 16.1C13.3 16.9 12.7 17.7 12 18.7M8.4 5.6L7 4.2C8.2 2.8 10 2 12 2C15.9 2 19 5.1 19 9C19 10.7 18.3 12.6 17.3 14.5L15.8 13C17 10.6 17 9.6 17 9C17 6.2 14.8 4 12 4C10.6 4 9.3 4.6 8.4 5.6M12 6.5C13.4 6.5 14.5 7.6 14.5 9C14.5 9.7 14.2 10.4 13.7 10.9L10.2 7.4C10.6 6.8 11.3 6.5 12 6.5Z\";\nexport var mdiMapMarkerOutline = \"M12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5M12,2A7,7 0 0,1 19,9C19,14.25 12,22 12,22C12,22 5,14.25 5,9A7,7 0 0,1 12,2M12,4A5,5 0 0,0 7,9C7,10 7,12 12,18.71C17,12 17,10 17,9A5,5 0 0,0 12,4Z\";\nexport var mdiMapMarkerPath = \"M18,15A3,3 0 0,1 21,18A3,3 0 0,1 18,21C16.69,21 15.58,20.17 15.17,19H14V17H15.17C15.58,15.83 16.69,15 18,15M18,17A1,1 0 0,0 17,18A1,1 0 0,0 18,19A1,1 0 0,0 19,18A1,1 0 0,0 18,17M18,8A1.43,1.43 0 0,0 19.43,6.57C19.43,5.78 18.79,5.14 18,5.14C17.21,5.14 16.57,5.78 16.57,6.57A1.43,1.43 0 0,0 18,8M18,2.57A4,4 0 0,1 22,6.57C22,9.56 18,14 18,14C18,14 14,9.56 14,6.57A4,4 0 0,1 18,2.57M8.83,17H10V19H8.83C8.42,20.17 7.31,21 6,21A3,3 0 0,1 3,18C3,16.69 3.83,15.58 5,15.17V14H7V15.17C7.85,15.47 8.53,16.15 8.83,17M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M6,3A3,3 0 0,1 9,6C9,7.31 8.17,8.42 7,8.83V10H5V8.83C3.83,8.42 3,7.31 3,6A3,3 0 0,1 6,3M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5M11,19V17H13V19H11M7,13H5V11H7V13Z\";\nexport var mdiMapMarkerPlus = \"M9,11.5A2.5,2.5 0 0,0 11.5,9A2.5,2.5 0 0,0 9,6.5A2.5,2.5 0 0,0 6.5,9A2.5,2.5 0 0,0 9,11.5M9,2C12.86,2 16,5.13 16,9C16,14.25 9,22 9,22C9,22 2,14.25 2,9A7,7 0 0,1 9,2M15,17H18V14H20V17H23V19H20V22H18V19H15V17Z\";\nexport var mdiMapMarkerPlusOutline = \"M15 17H18V14H20V17H23V19H20V22H18V19H15V17M9 6.5C10.4 6.5 11.5 7.6 11.5 9S10.4 11.5 9 11.5 6.5 10.4 6.5 9 7.6 6.5 9 6.5M9 2C12.9 2 16 5.1 16 9C16 14.2 9 22 9 22S2 14.2 2 9C2 5.1 5.1 2 9 2M9 4C6.2 4 4 6.2 4 9C4 10 4 12 9 18.7C14 12 14 10 14 9C14 6.2 11.8 4 9 4Z\";\nexport var mdiMapMarkerQuestion = \"M12,2C8.14,2 5,5.14 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9C19,5.14 15.86,2 12,2M12.88,15.75H11.13V14H12.88M12.88,12.88H11.13C11.13,10.04 13.75,10.26 13.75,8.5A1.75,1.75 0 0,0 12,6.75A1.75,1.75 0 0,0 10.25,8.5H8.5A3.5,3.5 0 0,1 12,5A3.5,3.5 0 0,1 15.5,8.5C15.5,10.69 12.88,10.91 12.88,12.88Z\";\nexport var mdiMapMarkerQuestionOutline = \"M12,1C7.59,1 4,4.59 4,9C4,14.57 10.96,22.34 11.26,22.67L12,23.5L12.74,22.67C13.04,22.34 20,14.57 20,9C20,4.59 16.41,1 12,1M12,20.47C9.82,17.86 6,12.54 6,9A6,6 0 0,1 12,3A6,6 0 0,1 18,9C18,12.83 13.75,18.36 12,20.47M11.13,14H12.88V15.75H11.13M12,5A3.5,3.5 0 0,0 8.5,8.5H10.25A1.75,1.75 0 0,1 12,6.75A1.75,1.75 0 0,1 13.75,8.5C13.75,10.26 11.13,10.04 11.13,12.88H12.88C12.88,10.91 15.5,10.69 15.5,8.5A3.5,3.5 0 0,0 12,5Z\";\nexport var mdiMapMarkerRadius = \"M12,2C15.31,2 18,4.66 18,7.95C18,12.41 12,19 12,19C12,19 6,12.41 6,7.95C6,4.66 8.69,2 12,2M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M20,19C20,21.21 16.42,23 12,23C7.58,23 4,21.21 4,19C4,17.71 5.22,16.56 7.11,15.83L7.75,16.74C6.67,17.19 6,17.81 6,18.5C6,19.88 8.69,21 12,21C15.31,21 18,19.88 18,18.5C18,17.81 17.33,17.19 16.25,16.74L16.89,15.83C18.78,16.56 20,17.71 20,19Z\";\nexport var mdiMapMarkerRadiusOutline = \"M12 4C14.2 4 16 5.8 16 8C16 10.1 13.9 13.5 12 15.9C10.1 13.4 8 10.1 8 8C8 5.8 9.8 4 12 4M12 2C8.7 2 6 4.7 6 8C6 12.5 12 19 12 19S18 12.4 18 8C18 4.7 15.3 2 12 2M12 6C10.9 6 10 6.9 10 8S10.9 10 12 10 14 9.1 14 8 13.1 6 12 6M20 19C20 21.2 16.4 23 12 23S4 21.2 4 19C4 17.7 5.2 16.6 7.1 15.8L7.7 16.7C6.7 17.2 6 17.8 6 18.5C6 19.9 8.7 21 12 21S18 19.9 18 18.5C18 17.8 17.3 17.2 16.2 16.7L16.8 15.8C18.8 16.6 20 17.7 20 19Z\";\nexport var mdiMapMarkerRemove = \"M9,2C5.14,2 2,5.14 2,9C2,14.25 9,22 9,22C9,22 16,14.25 16,9A7,7 0 0,0 9,2M9,6.5A2.5,2.5 0 0,1 11.5,9A2.5,2.5 0 0,1 9,11.5A2.5,2.5 0 0,1 6.5,9A2.5,2.5 0 0,1 9,6.5M16.58,14.16L15.17,15.58L17.58,18L15.17,20.41L16.58,21.82L19,19.41L21.41,21.82L22.83,20.41L20.41,18L22.83,15.58L21.41,14.16L19,16.58\";\nexport var mdiMapMarkerRemoveOutline = \"M16.6 14.2L15.2 15.6L17.6 18L15.2 20.4L16.6 21.8L19 19.4L21.4 21.8L22.8 20.4L20.4 18L22.8 15.6L21.4 14.2L19 16.6M9 6.5C10.4 6.5 11.5 7.6 11.5 9S10.4 11.5 9 11.5 6.5 10.4 6.5 9 7.6 6.5 9 6.5M9 2C12.9 2 16 5.1 16 9C16 14.2 9 22 9 22S2 14.2 2 9C2 5.1 5.1 2 9 2M9 4C6.2 4 4 6.2 4 9C4 10 4 12 9 18.7C14 12 14 10 14 9C14 6.2 11.8 4 9 4Z\";\nexport var mdiMapMarkerRemoveVariant = \"M12,2C8.14,2 5,5.14 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9C19,5.14 15.86,2 12,2M9.59,5.17L12,7.58L14.41,5.17L15.83,6.58L13.41,9L15.83,11.41L14.41,12.83L12,10.41L9.59,12.83L8.17,11.41L10.59,9L8.17,6.58\";\nexport var mdiMapMarkerRight = \"M9 11.5C7.62 11.5 6.5 10.38 6.5 9S7.62 6.5 9 6.5 11.5 7.62 11.5 9 10.38 11.5 9 11.5M9 2C5.13 2 2 5.13 2 9C2 14.25 9 22 9 22S16 14.25 16 9C16 5.13 12.87 2 9 2M18 17L23 12L18 7V17Z\";\nexport var mdiMapMarkerRightOutline = \"M9 6.5C10.38 6.5 11.5 7.62 11.5 9S10.38 11.5 9 11.5 6.5 10.38 6.5 9 7.62 6.5 9 6.5M9 2C12.87 2 16 5.13 16 9C16 14.25 9 22 9 22S2 14.25 2 9C2 5.13 5.13 2 9 2M9 4C6.24 4 4 6.24 4 9C4 10 4 12 9 18.71C14 12 14 10 14 9C14 6.24 11.76 4 9 4M18 17L23 12L18 7V17Z\";\nexport var mdiMapMarkerStar = \"M12 2C8.1 2 5 5.1 5 9C5 14.2 12 22 12 22S19 14.2 19 9C19 5.1 15.9 2 12 2M14.5 13L12 11.5L9.5 13L10.2 10.2L8 8.3L10.9 8.1L12 5.4L13.1 8L16 8.3L13.8 10.2L14.5 13Z\";\nexport var mdiMapMarkerStarOutline = \"M12 2C15.9 2 19 5.1 19 9C19 14.2 12 22 12 22S5 14.2 5 9C5 5.1 8.1 2 12 2M12 4C9.2 4 7 6.2 7 9C7 10 7 12 12 18.7C17 12 17 10 17 9C17 6.2 14.8 4 12 4M12 11.5L14.4 13L13.8 10.2L16 8.3L13.1 8.1L12 5.4L10.9 8L8 8.3L10.2 10.2L9.5 13L12 11.5Z\";\nexport var mdiMapMarkerUp = \"M12 2A7 7 0 0 0 5 9C5 14.25 12 22 12 22S19 14.25 19 9A7 7 0 0 0 12 2M16.5 9H14V14H10V9H7.5L12 4.5Z\";\nexport var mdiMapMinus = \"M15 18V20H23V18H15M13.16 20.36L9 18.9L3.66 20.97C3.6 21 3.55 21 3.5 21C3.22 21 3 20.78 3 20.5V5.38C3 5.15 3.16 4.97 3.36 4.9L9 3L15 5.1L20.34 3H20.5C20.78 3 21 3.22 21 3.5V13.35C20.37 13.13 19.7 13 19 13C17.46 13 16.06 13.58 15 14.54V7.1L9 5V16.9L13.04 18.32C13 18.54 13 18.77 13 19C13 19.47 13.06 19.92 13.16 20.36Z\";\nexport var mdiMapOutline = \"M20.5,3L20.34,3.03L15,5.1L9,3L3.36,4.9C3.15,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21L3.66,20.97L9,18.9L15,21L20.64,19.1C20.85,19.03 21,18.85 21,18.62V3.5A0.5,0.5 0 0,0 20.5,3M10,5.47L14,6.87V18.53L10,17.13V5.47M5,6.46L8,5.45V17.15L5,18.31V6.46M19,17.54L16,18.55V6.86L19,5.7V17.54Z\";\nexport var mdiMapPlus = \"M9,3L3.36,4.9C3.16,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21C3.55,21 3.6,21 3.66,20.97L9,18.9L13.16,20.36C13.06,19.92 13,19.46 13,19C13,18.77 13,18.54 13.04,18.3L9,16.9V5L15,7.1V14.56C16.07,13.6 17.47,13 19,13C19.7,13 20.37,13.13 21,13.36V3.5A0.5,0.5 0 0,0 20.5,3H20.34L15,5.1L9,3M18,15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiMapSearch = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M14,6.11L8,4V15.89L9,16.24V16.5C9,17.14 9.09,17.76 9.26,18.34L8,17.9L2.66,19.97L2.5,20A0.5,0.5 0 0,1 2,19.5V4.38C2,4.15 2.15,3.97 2.36,3.9L8,2L14,4.1L19.34,2H19.5A0.5,0.5 0 0,1 20,2.5V11.81C18.83,10.69 17.25,10 15.5,10C15,10 14.5,10.06 14,10.17V6.11Z\";\nexport var mdiMapSearchOutline = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.2 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M19.5,2A0.5,0.5 0 0,1 20,2.5V11.81C19.42,11.26 18.75,10.81 18,10.5V4.7L15,5.86V10C14.3,10.07 13.62,10.24 13,10.5V5.87L9,4.47V16.13H9V16.5C9,17.14 9.09,17.76 9.26,18.34L8,17.9L2.66,19.97L2.5,20A0.5,0.5 0 0,1 2,19.5V4.38C2,4.15 2.15,3.97 2.36,3.9L8,2L14,4.1L19.34,2.03L19.5,2M4,5.46V17.31L7,16.15V4.45L4,5.46Z\";\nexport var mdiMapbox = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M16.75,14.45C18.65,12.55 18.58,9.39 16.59,7.41C14.6,5.43 11.45,5.35 9.55,7.25C6.12,10.68 7.22,16.78 7.22,16.78C7.22,16.78 13.33,17.87 16.75,14.45M13.15,7.86L14.13,9.87L16.14,10.85L14.13,11.83L13.15,13.84L12.17,11.83L10.16,10.85L12.17,9.87L13.15,7.86Z\";\nexport var mdiMargin = \"M20,4V9L18.5,7.5L5.5,20.5L3.5,18.5L16.5,5.5L15,4H20M17,20A3,3 0 0,1 14,17V15A3,3 0 0,1 17,12A3,3 0 0,1 20,15V17A3,3 0 0,1 17,20M17,14A1,1 0 0,0 16,15V17A1,1 0 0,0 17,18A1,1 0 0,0 18,17V15A1,1 0 0,0 17,14M7,12A3,3 0 0,1 4,9V7A3,3 0 0,1 7,4A3,3 0 0,1 10,7V9A3,3 0 0,1 7,12M7,6A1,1 0 0,0 6,7V9A1,1 0 0,0 7,10A1,1 0 0,0 8,9V7A1,1 0 0,0 7,6Z\";\nexport var mdiMarker = \"M18.5,1.15C17.97,1.15 17.46,1.34 17.07,1.73L11.26,7.55L16.91,13.2L22.73,7.39C23.5,6.61 23.5,5.35 22.73,4.56L19.89,1.73C19.5,1.34 19,1.15 18.5,1.15M10.3,8.5L4.34,14.46C3.56,15.24 3.56,16.5 4.36,17.31C3.14,18.54 1.9,19.77 0.67,21H6.33L7.19,20.14C7.97,20.9 9.22,20.89 10,20.12L15.95,14.16\";\nexport var mdiMarkerCancel = \"M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,14.5C16.94,14.5 16.42,14.65 16,14.92L20.08,19C20.35,18.58 20.5,18.06 20.5,17.5A3,3 0 0,0 17.5,14.5M14.5,17.5A3,3 0 0,0 17.5,20.5C18.06,20.5 18.58,20.35 19,20.08L14.92,16C14.65,16.42 14.5,16.94 14.5,17.5M18.5,1.15C19,1.15 19.5,1.34 19.89,1.73L22.73,4.56C23.5,5.35 23.5,6.61 22.73,7.39L18.95,11.16C18.5,11.06 18,11 17.5,11C16.67,11 15.88,11.16 15.15,11.44L11.26,7.55L17.07,1.73C17.46,1.34 17.97,1.15 18.5,1.15M10.3,8.5L13.89,12.1C12.15,13.26 11,15.25 11,17.5C11,18 11.06,18.5 11.16,18.95L10,20.12C9.22,20.89 7.97,20.9 7.19,20.14L6.33,21H0.67L4.36,17.31C3.56,16.5 3.56,15.24 4.34,14.46L10.3,8.5Z\";\nexport var mdiMarkerCheck = \"M10,16L5,11L6.41,9.58L10,13.17L17.59,5.58L19,7M19,1H5C3.89,1 3,1.89 3,3V15.93C3,16.62 3.35,17.23 3.88,17.59L12,23L20.11,17.59C20.64,17.23 21,16.62 21,15.93V3C21,1.89 20.1,1 19,1Z\";\nexport var mdiMastodon = \"M20.94,14C20.66,15.41 18.5,16.96 15.97,17.26C14.66,17.41 13.37,17.56 12,17.5C9.75,17.39 8,16.96 8,16.96V17.58C8.32,19.8 10.22,19.93 12.03,20C13.85,20.05 15.47,19.54 15.47,19.54L15.55,21.19C15.55,21.19 14.27,21.87 12,22C10.75,22.07 9.19,21.97 7.38,21.5C3.46,20.45 2.78,16.26 2.68,12L2.67,8.57C2.67,4.23 5.5,2.96 5.5,2.96C6.95,2.3 9.41,2 11.97,2H12.03C14.59,2 17.05,2.3 18.5,2.96C18.5,2.96 21.33,4.23 21.33,8.57C21.33,8.57 21.37,11.78 20.94,14M18,8.91C18,7.83 17.7,7 17.15,6.35C16.59,5.72 15.85,5.39 14.92,5.39C13.86,5.39 13.05,5.8 12.5,6.62L12,7.5L11.5,6.62C10.94,5.8 10.14,5.39 9.07,5.39C8.15,5.39 7.41,5.72 6.84,6.35C6.29,7 6,7.83 6,8.91V14.17H8.1V9.06C8.1,8 8.55,7.44 9.46,7.44C10.46,7.44 10.96,8.09 10.96,9.37V12.16H13.03V9.37C13.03,8.09 13.53,7.44 14.54,7.44C15.44,7.44 15.89,8 15.89,9.06V14.17H18V8.91Z\";\nexport var mdiMaterialDesign = \"M21,12C21,9.97 20.33,8.09 19,6.38V17.63C20.33,15.97 21,14.09 21,12M17.63,19H6.38C7.06,19.55 7.95,20 9.05,20.41C10.14,20.8 11.13,21 12,21C12.88,21 13.86,20.8 14.95,20.41C16.05,20 16.94,19.55 17.63,19M11,17L7,9V17H11M17,9L13,17H17V9M12,14.53L15.75,7H8.25L12,14.53M17.63,5C15.97,3.67 14.09,3 12,3C9.91,3 8.03,3.67 6.38,5H17.63M5,17.63V6.38C3.67,8.09 3,9.97 3,12C3,14.09 3.67,15.97 5,17.63M23,12C23,15.03 21.94,17.63 19.78,19.78C17.63,21.94 15.03,23 12,23C8.97,23 6.38,21.94 4.22,19.78C2.06,17.63 1,15.03 1,12C1,8.97 2.06,6.38 4.22,4.22C6.38,2.06 8.97,1 12,1C15.03,1 17.63,2.06 19.78,4.22C21.94,6.38 23,8.97 23,12Z\";\nexport var mdiMaterialUi = \"M8,16.61V15.37L14,11.91V7.23L9,10.12L4,7.23V13L3,13.58L2,13V5L3.07,4.38L9,7.81L12.93,5.54L14.93,4.38L16,5V13.06L10.92,16L14.97,18.33L20,15.43V11L21,10.42L22,11V16.58L14.97,20.64L8,16.61M22,9.75L21,10.33L20,9.75V8.58L21,8L22,8.58V9.75Z\";\nexport var mdiMathCompass = \"M20,19.88V22L18.2,20.83L13.41,11.83C14.07,11.62 14.67,11.28 15.19,10.83L20,19.88M15,7A3,3 0 0,1 12,10C11.85,10 11.71,10 11.56,10L5.8,20.83L4,22V19.88L9.79,9C8.69,7.77 8.79,5.87 10.03,4.76C10.57,4.28 11.27,4 12,4V2A1,1 0 0,1 13,3V4.18C14.2,4.6 15,5.73 15,7M13,7A1,1 0 0,0 12,6A1,1 0 0,0 11,7A1,1 0 0,0 12,8A1,1 0 0,0 13,7Z\";\nexport var mdiMathCos = \"M4,7A2,2 0 0,0 2,9V15A2,2 0 0,0 4,17H6A2,2 0 0,0 8,15V14H6V15H4V9H6V10H8V9A2,2 0 0,0 6,7H4M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M18,7A2,2 0 0,0 16,9V11A2,2 0 0,0 18,13H20V15H16V17H20A2,2 0 0,0 22,15V13A2,2 0 0,0 20,11H18V9H22V7H18Z\";\nexport var mdiMathIntegral = \"M11.5 19.1C11.3 20.2 10.9 21 10.2 21.5C9.5 22 8.6 22.1 7.5 21.9C7.1 21.8 6.3 21.7 6 21.5L6.5 20C6.8 20.1 7.4 20.3 7.7 20.3C8.8 20.5 9.4 20 9.6 18.8L12 5.2C12.2 4 12.7 3.2 13.4 2.6C14.1 2.1 15.1 1.9 16.2 2.1C16.6 2.2 17.4 2.3 18 2.6L17.5 4C17.3 3.9 16.6 3.8 16.3 3.7C15 3.5 14.3 4.1 14 5.6L11.5 19.1Z\";\nexport var mdiMathIntegralBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M15.9 6.9C15.9 6.9 15.2 6.6 14.9 6.6C14.3 6.5 13.9 6.7 13.7 7.7L12 16.8C11.8 17.6 11.5 18.2 11 18.6C10.6 18.9 10.2 19 9.7 19C8.9 19 7.7 18.5 7.7 18.5L8.2 17.1C8.2 17.1 9 17.4 9.2 17.4C9.5 17.5 9.7 17.4 9.9 17.3C10.1 17.2 10.2 16.9 10.3 16.6L11.9 7.4C12 6.6 12.4 6 12.9 5.5C13.5 5.1 14.2 5 15 5.1C15.7 5.2 16.5 5.6 16.5 5.6L15.9 6.9Z\";\nexport var mdiMathLog = \"M18 7C16.9 7 16 7.9 16 9V15C16 16.1 16.9 17 18 17H20C21.1 17 22 16.1 22 15V11H20V15H18V9H22V7H18M2 7V17H8V15H4V7H2M11 7C9.9 7 9 7.9 9 9V15C9 16.1 9.9 17 11 17H13C14.1 17 15 16.1 15 15V9C15 7.9 14.1 7 13 7H11M11 9H13V15H11V9Z\";\nexport var mdiMathNorm = \"M14 21V3H16V21H14M8 21V3H10V21H8Z\";\nexport var mdiMathNormBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M10 18H8V6H10V18M16 18H14V6H16V18Z\";\nexport var mdiMathSin = \"M4,7A2,2 0 0,0 2,9V11A2,2 0 0,0 4,13H6V15H2V17H6A2,2 0 0,0 8,15V13A2,2 0 0,0 6,11H4V9H8V7H4M14,7V9H13V15H14V17H10V15H11V9H10V7H14M16,7V17H18V12L20,17H22V7H20V12L18,7H16Z\";\nexport var mdiMathTan = \"M2,7V9H4V17H6V9H8V7H2M11,7A2,2 0 0,0 9,9V17H11V13H13V17H15V9A2,2 0 0,0 13,7H11M11,9H13V11H11V9M16,7V17H18V12L20,17H22V7H20V12L18,7H16Z\";\nexport var mdiMatrix = \"M2,2H6V4H4V20H6V22H2V2M20,4H18V2H22V22H18V20H20V4M9,5H10V10H11V11H8V10H9V6L8,6.5V5.5L9,5M15,13H16V18H17V19H14V18H15V14L14,14.5V13.5L15,13M9,13C10.1,13 11,14.34 11,16C11,17.66 10.1,19 9,19C7.9,19 7,17.66 7,16C7,14.34 7.9,13 9,13M9,14C8.45,14 8,14.9 8,16C8,17.1 8.45,18 9,18C9.55,18 10,17.1 10,16C10,14.9 9.55,14 9,14M15,5C16.1,5 17,6.34 17,8C17,9.66 16.1,11 15,11C13.9,11 13,9.66 13,8C13,6.34 13.9,5 15,5M15,6C14.45,6 14,6.9 14,8C14,9.1 14.45,10 15,10C15.55,10 16,9.1 16,8C16,6.9 15.55,6 15,6Z\";\nexport var mdiMedal = \"M20,2H4V4L9.81,8.36C6.14,9.57 4.14,13.53 5.35,17.2C6.56,20.87 10.5,22.87 14.19,21.66C17.86,20.45 19.86,16.5 18.65,12.82C17.95,10.71 16.3,9.05 14.19,8.36L20,4V2M14.94,19.5L12,17.78L9.06,19.5L9.84,16.17L7.25,13.93L10.66,13.64L12,10.5L13.34,13.64L16.75,13.93L14.16,16.17L14.94,19.5Z\";\nexport var mdiMedalOutline = \"M14.94 19.5L12 17.77L9.06 19.5L9.84 16.16L7.25 13.92L10.66 13.63L12 10.5L13.34 13.63L16.75 13.92L14.16 16.16M20 2H4V4L8.86 7.64A8 8 0 1 0 15.14 7.64L20 4M18 15A6 6 0 1 1 10.82 9.12A5.86 5.86 0 0 1 13.18 9.12A6 6 0 0 1 18 15M12.63 7H11.37L7.37 4H16.71Z\";\nexport var mdiMedicalBag = \"M10,3L8,5V7H5C3.85,7 3.12,8 3,9L2,19C1.88,20 2.54,21 4,21H20C21.46,21 22.12,20 22,19L21,9C20.88,8 20.06,7 19,7H16V5L14,3H10M10,5H14V7H10V5M11,10H13V13H16V15H13V18H11V15H8V13H11V10Z\";\nexport var mdiMedicalCottonSwab = \"M3 3H15V5H3V3M2 21H16V6H2V21M5 12H7.5V9.5H10.5V12H13V15H10.5V17.5H7.5V15H5V12M20 6C18.3 6 17 7.8 17 10C17 11.8 17.8 13.2 19 13.8V21H21V13.8C22.2 13.3 23 11.8 23 10C23 7.8 21.7 6 20 6Z\";\nexport var mdiMedication = \"M6 3H18V5H6V3M17 6H7C5.9 6 5 6.9 5 8V19C5 20.1 5.9 21 7 21H17C18.1 21 19 20.1 19 19V8C19 6.9 18.1 6 17 6M16 15H13.5V17.5H10.5V15H8V12H10.5V9.5H13.5V12H16V15Z\";\nexport var mdiMedicationOutline = \"M10.5 15H8V12H10.5V9.5H13.5V12H16V15H13.5V17.5H10.5V15M19 8V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V8C5 6.9 5.9 6 7 6H17C18.1 6 19 6.9 19 8M17 8H7V19H17V8M18 3H6V5H18V3\";\nexport var mdiMeditation = \"M12 4C13.11 4 14 4.89 14 6S13.11 8 12 8 10 7.11 10 6 10.9 4 12 4M21 16V14C18.76 14 16.84 13.04 15.4 11.32L14.06 9.72C13.68 9.26 13.12 9 12.53 9H11.5C10.89 9 10.33 9.26 9.95 9.72L8.61 11.32C7.16 13.04 5.24 14 3 14V16C5.77 16 8.19 14.83 10 12.75V15L6.12 16.55C5.45 16.82 5 17.5 5 18.21C5 19.2 5.8 20 6.79 20H9V19.5C9 18.12 10.12 17 11.5 17H14.5C14.78 17 15 17.22 15 17.5S14.78 18 14.5 18H11.5C10.67 18 10 18.67 10 19.5V20H17.21C18.2 20 19 19.2 19 18.21C19 17.5 18.55 16.82 17.88 16.55L14 15V12.75C15.81 14.83 18.23 16 21 16Z\";\nexport var mdiMemory = \"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z\";\nexport var mdiMemoryArrowDown = \"M19 19V15H17V19H15L18 22L21 19H19M12.1 19H11V21H9V19H7C5.9 19 5 18.1 5 17V15H3V13H5V11H3V9H5V7C5 5.9 5.9 5 7 5H9V3H11V5H13V3H15V5H17C18.1 5 19 5.9 19 7V9H21V11H19V12.1C18.7 12 18.3 12 18 12S17.3 12 17 12.1V7H7V17H12.1C12 17.3 12 17.7 12 18S12 18.7 12.1 19M9 15H12.8C13.3 14.1 14.1 13.3 15 12.8V9H9V15M11 11H13V13H11V11Z\";\nexport var mdiMenorah = \"M21 11V6L19 5V11H17V6L15 5V11H13V3L11 2V11H9V6L7 5V11H5V6L3 5V11C2.45 11 2 11.45 2 12S2.45 13 3 13H4.25C4.95 14.92 6.94 17.58 11 17.95V20H10C8.9 20 8 20.9 8 22H16C16 20.9 15.11 20 14 20H13V17.95C17.06 17.57 19.05 14.92 19.75 13H21C21.55 13 22 12.55 22 12S21.55 11 21 11M11 15.94C8.34 15.63 7.05 14.11 6.45 13H11V15.94M13 15.94V13H17.55C16.95 14.11 15.66 15.63 13 15.94Z\";\nexport var mdiMenorahFire = \"M21.5 11.15V10C21.5 9.45 21.05 9 20.5 9H19.5C18.95 9 18.5 9.45 18.5 10V11H17.5V10C17.5 9.45 17.05 9 16.5 9H15.5C14.95 9 14.5 9.45 14.5 10V11H13.5V8C13.5 7.45 13.05 7 12.5 7H11.5C10.95 7 10.5 7.45 10.5 8V11H9.5V10C9.5 9.45 9.05 9 8.5 9H7.5C6.95 9 6.5 9.45 6.5 10V11H5.5V10C5.5 9.45 5.05 9 4.5 9H3.5C2.95 9 2.5 9.45 2.5 10V11.15C2.21 11.33 2 11.63 2 12C2 12.55 2.45 13 3 13H4.25C4.95 14.92 6.94 17.58 11 17.95V20H10C8.9 20 8 20.9 8 22H16C16 20.9 15.11 20 14 20H13V17.95C17.06 17.57 19.05 14.92 19.75 13H21C21.55 13 22 12.55 22 12C22 11.63 21.79 11.33 21.5 11.15M6.45 13H11V15.94C8.34 15.63 7.05 14.11 6.45 13M13 15.94V13H17.55C16.95 14.11 15.66 15.63 13 15.94M12 6C12.83 6 13.5 5.33 13.5 4.5C13.5 3.67 12.83 2 12 2S10.5 3.67 10.5 4.5C10.5 5.33 11.17 6 12 6M12 4.25C12.28 4.25 12.5 4.47 12.5 4.75S12.28 5.25 12 5.25 11.5 5.03 11.5 4.75 11.72 4.25 12 4.25M16 8C16.83 8 17.5 7.33 17.5 6.5C17.5 5.67 16.83 4 16 4S14.5 5.67 14.5 6.5C14.5 7.33 15.17 8 16 8M16 6.25C16.28 6.25 16.5 6.47 16.5 6.75S16.28 7.25 16 7.25 15.5 7.03 15.5 6.75 15.72 6.25 16 6.25M20 8C20.83 8 21.5 7.33 21.5 6.5C21.5 5.67 20.83 4 20 4S18.5 5.67 18.5 6.5C18.5 7.33 19.17 8 20 8M20 6.25C20.28 6.25 20.5 6.47 20.5 6.75S20.28 7.25 20 7.25 19.5 7.03 19.5 6.75 19.72 6.25 20 6.25M4 8C4.83 8 5.5 7.33 5.5 6.5C5.5 5.67 4.83 4 4 4S2.5 5.67 2.5 6.5C2.5 7.33 3.17 8 4 8M4 6.25C4.28 6.25 4.5 6.47 4.5 6.75S4.28 7.25 4 7.25 3.5 7.03 3.5 6.75 3.72 6.25 4 6.25M8 8C8.83 8 9.5 7.33 9.5 6.5C9.5 5.67 8.83 4 8 4S6.5 5.67 6.5 6.5C6.5 7.33 7.17 8 8 8M8 6.25C8.28 6.25 8.5 6.47 8.5 6.75S8.28 7.25 8 7.25 7.5 7.03 7.5 6.75 7.72 6.25 8 6.25Z\";\nexport var mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nexport var mdiMenuClose = \"M3 6H13V8H3V6M3 16H13V18H3V16M3 11H15V13H3V11M16 7L14.58 8.39L18.14 12L14.58 15.61L16 17L21 12L16 7Z\";\nexport var mdiMenuDown = \"M7,10L12,15L17,10H7Z\";\nexport var mdiMenuDownOutline = \"M18,9V10.5L12,16.5L6,10.5V9H18M12,13.67L14.67,11H9.33L12,13.67Z\";\nexport var mdiMenuLeft = \"M14,7L9,12L14,17V7Z\";\nexport var mdiMenuLeftOutline = \"M15,18H13.5L7.5,12L13.5,6H15V18M10.33,12L13,14.67V9.33L10.33,12Z\";\nexport var mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nexport var mdiMenuRight = \"M10,17L15,12L10,7V17Z\";\nexport var mdiMenuRightOutline = \"M9,6H10.5L16.5,12L10.5,18H9V6M13.67,12L11,9.33V14.67L13.67,12Z\";\nexport var mdiMenuSwap = \"M12,6L7,11H17L12,6M7,13L12,18L17,13H7Z\";\nexport var mdiMenuSwapOutline = \"M12,3.5L6,9.5V11H18V9.5L12,3.5M12,6.33L14.67,9H9.33L12,6.33M6,13V14.5L12,20.5L18,14.5V13H6M9.33,15H14.67L12,17.67L9.33,15Z\";\nexport var mdiMenuUp = \"M7,15L12,10L17,15H7Z\";\nexport var mdiMenuUpOutline = \"M18,16V14.5L12,8.5L6,14.5V16H18M12,11.33L14.67,14H9.33L12,11.33Z\";\nexport var mdiMerge = \"M8 17L12 13H15.2C15.6 14.2 16.7 15 18 15C19.7 15 21 13.7 21 12S19.7 9 18 9C16.7 9 15.6 9.8 15.2 11H12L8 7V3H3V8H6L10.2 12L6 16H3V21H8V17Z\";\nexport var mdiMessage = \"M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMessageAlert = \"M13 11H11V5H13M13 15H11V13H13M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2Z\";\nexport var mdiMessageAlertOutline = \"M13,10H11V6H13V10M13,12H11V14H13V12M22,4V16A2,2 0 0,1 20,18H6L2,22V4A2,2 0 0,1 4,2H20A2,2 0 0,1 22,4M20,4H4V17.2L5.2,16H20V4Z\";\nexport var mdiMessageArrowLeft = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M16 11H11.5L13.3 12.8L12 14L8 10L12 6L13.2 7.2L11.5 9H16V11Z\";\nexport var mdiMessageArrowLeftOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M16 11V9H11.5L13.3 7.2L12 6L8 10L12 14L13.2 12.8L11.5 11H16Z\";\nexport var mdiMessageArrowRight = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M12 14L10.8 12.8L12.6 11H8V9H12.5L10.7 7.2L12 6L16 10L12 14Z\";\nexport var mdiMessageArrowRightOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M8 9V11H12.5L10.7 12.8L12 14L16 10L12 6L10.8 7.2L12.5 9H8Z\";\nexport var mdiMessageBadge = \"M22 7V16C22 17.1 21.1 18 20 18H6L2 22V4C2 2.9 2.9 2 4 2H14.1C14 2.3 14 2.7 14 3C14 5.8 16.2 8 19 8C20.1 8 21.2 7.6 22 7M16 3C16 4.7 17.3 6 19 6S22 4.7 22 3 20.7 0 19 0 16 1.3 16 3Z\";\nexport var mdiMessageBadgeOutline = \"M22 7V16C22 17.1 21.1 18 20 18H6L2 22V4C2 2.9 2.9 2 4 2H14.1C14 2.3 14 2.7 14 3S14 3.7 14.1 4H4V16H20V7.9C20.7 7.8 21.4 7.4 22 7M16 3C16 4.7 17.3 6 19 6S22 4.7 22 3 20.7 0 19 0 16 1.3 16 3Z\";\nexport var mdiMessageBookmark = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M19 13L16.5 11.5L14 13V5H19V13Z\";\nexport var mdiMessageBookmarkOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M18 14V6H13V14L15.5 12.5L18 14\";\nexport var mdiMessageBulleted = \"M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M8,14H6V12H8V14M8,11H6V9H8V11M8,8H6V6H8V8M15,14H10V12H15V14M18,11H10V9H18V11M18,8H10V6H18V8Z\";\nexport var mdiMessageBulletedOff = \"M1.27,1.73L0,3L2,5V22L6,18H15L20.73,23.73L22,22.46L1.27,1.73M8,14H6V12H8V14M6,11V9L8,11H6M20,2H4.08L10,7.92V6H18V8H10.08L11.08,9H18V11H13.08L20.07,18C21.14,17.95 22,17.08 22,16V4A2,2 0 0,0 20,2Z\";\nexport var mdiMessageCheck = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.11 18 22 17.11 22 16V4C22 2.89 21.1 2 20 2M10.47 14L7 10.5L8.4 9.09L10.47 11.17L15.6 6L17 7.41L10.47 14Z\";\nexport var mdiMessageCheckOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M10.47 14L7 10.5L8.4 9.09L10.47 11.17L15.6 6L17 7.41L10.47 14Z\";\nexport var mdiMessageCog = \"M13.5,10A1.5,1.5 0 0,1 12,11.5C11.16,11.5 10.5,10.83 10.5,10A1.5,1.5 0 0,1 12,8.5A1.5,1.5 0 0,1 13.5,10M22,4V16A2,2 0 0,1 20,18H6L2,22V4A2,2 0 0,1 4,2H20A2,2 0 0,1 22,4M16.77,11.32L15.7,10.5C15.71,10.33 15.71,10.16 15.7,10C15.72,9.84 15.72,9.67 15.7,9.5L16.76,8.68C16.85,8.6 16.88,8.47 16.82,8.36L15.82,6.63C15.76,6.5 15.63,6.47 15.5,6.5L14.27,7C14,6.8 13.73,6.63 13.42,6.5L13.23,5.19C13.21,5.08 13.11,5 13,5H11C10.88,5 10.77,5.09 10.75,5.21L10.56,6.53C10.26,6.65 9.97,6.81 9.7,7L8.46,6.5C8.34,6.46 8.21,6.5 8.15,6.61L7.15,8.34C7.09,8.45 7.11,8.58 7.21,8.66L8.27,9.5C8.23,9.82 8.23,10.16 8.27,10.5L7.21,11.32C7.12,11.4 7.09,11.53 7.15,11.64L8.15,13.37C8.21,13.5 8.34,13.53 8.46,13.5L9.7,13C9.96,13.2 10.24,13.37 10.55,13.5L10.74,14.81C10.77,14.93 10.88,15 11,15H13C13.12,15 13.23,14.91 13.25,14.79L13.44,13.47C13.74,13.34 14,13.18 14.28,13L15.53,13.5C15.65,13.5 15.78,13.5 15.84,13.37L16.84,11.64C16.9,11.53 16.87,11.4 16.77,11.32Z\";\nexport var mdiMessageCogOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M16.8 11.3L15.7 10.5V10 9.5L16.8 8.7C16.9 8.6 16.9 8.5 16.9 8.4L15.9 6.7C15.8 6.6 15.7 6.5 15.6 6.6L14.3 7C14 6.8 13.8 6.6 13.4 6.5L13.2 5.2C13.2 5.1 13.1 5 13 5H11C10.9 5 10.8 5.1 10.8 5.2L10.6 6.5C10.3 6.7 10 6.8 9.7 7L8.5 6.5C8.4 6.5 8.3 6.5 8.2 6.6L7.2 8.3C7.1 8.4 7.2 8.5 7.3 8.6L8.4 9.4V10.4L7.3 11.2C7.2 11.3 7.2 11.4 7.2 11.5L8.2 13.2C8.3 13.3 8.4 13.4 8.5 13.3L9.7 13C10 13.2 10.2 13.4 10.5 13.5L10.7 14.8C10.7 14.9 10.8 15 11 15H13C13.1 15 13.2 14.9 13.2 14.8L13.4 13.5C13.7 13.4 14 13.2 14.2 13L15.4 13.5C15.5 13.5 15.6 13.5 15.7 13.4L16.7 11.7C16.9 11.5 16.9 11.4 16.8 11.3M12 11.5C11.2 11.5 10.5 10.8 10.5 10S11.2 8.5 12 8.5 13.5 9.2 13.5 10 12.8 11.5 12 11.5Z\";\nexport var mdiMessageDraw = \"M18,14H10.5L12.5,12H18M6,14V11.5L12.88,4.64C13.07,4.45 13.39,4.45 13.59,4.64L15.35,6.41C15.55,6.61 15.55,6.92 15.35,7.12L8.47,14M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMessageFast = \"M3 7C2.4 7 2 7.4 2 8S2.4 9 3 9H5V7H3M2 11C1.4 11 1 11.4 1 12S1.4 13 2 13H5V11H2M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1M20 5H9C7.9 5 7 5.9 7 7V21L11 17H20C21.1 17 22 16.1 22 15V7C22 5.9 21.1 5 20 5Z\";\nexport var mdiMessageFastOutline = \"M20 5H9C7.9 5 7 5.9 7 7V21L11 17H20C21.1 17 22 16.1 22 15V7C22 5.9 21.1 5 20 5M20 15H10.2L9 16.2V7H20V15M3 7C2.4 7 2 7.4 2 8S2.4 9 3 9H5V7H3M2 11C1.4 11 1 11.4 1 12S1.4 13 2 13H5V11H2M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1Z\";\nexport var mdiMessageFlash = \"M22 4C22 2.9 21.1 2 20 2H4C2.9 2 2 2.9 2 4V22L6 18H15V10H22V4M22.5 16H20.3L22 12H17V18H19V23L22.5 16Z\";\nexport var mdiMessageFlashOutline = \"M4 17.2V4H20V10H22V4C22 2.9 21.1 2 20 2H4C2.9 2 2 2.9 2 4V22L6 18H15V16H5.2L4 17.2M22.5 16H20.3L22 12H17V18H19V23L22.5 16Z\";\nexport var mdiMessageImage = \"M5,14L8.5,9.5L11,12.5L14.5,8L19,14M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMessageImageOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M5 14L8.5 9.5L11 12.5L14.5 8L19 14\";\nexport var mdiMessageLock = \"M20.5 0A2.5 2.5 0 0 0 18 2.5V3A1 1 0 0 0 17 4V8A1 1 0 0 0 18 9H23A1 1 0 0 0 24 8V4A1 1 0 0 0 23 3V2.5A2.5 2.5 0 0 0 20.5 0M20.5 1A1.5 1.5 0 0 1 22 2.5V3H19V2.5A1.5 1.5 0 0 1 20.5 1M4 2A2 2 0 0 0 2 4V22L6 18H20A2 2 0 0 0 22 16V11H17C15.89 11 15 10.11 15 9V2H4Z\";\nexport var mdiMessageLockOutline = \"M23 3V2.5C23 1.1 21.9 0 20.5 0S18 1.1 18 2.5V3C17.5 3 17 3.5 17 4V8C17 8.5 17.5 9 18 9H23C23.5 9 24 8.5 24 8V4C24 3.5 23.5 3 23 3M22 3H19V2.5C19 1.7 19.7 1 20.5 1S22 1.7 22 2.5V3M22 11V16C22 17.1 21.1 18 20 18H6L2 22V4C2 2.9 2.9 2 4 2H15V4H4V17.2L5.2 16H20V11H22Z\";\nexport var mdiMessageMinus = \"M20 2C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H6L2 22V4C2 2.89 2.9 2 4 2H20M8 9V11H16V9H8Z\";\nexport var mdiMessageMinusOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M8 9V11H16V9H8Z\";\nexport var mdiMessageOff = \"M20.95 17.75L5.2 2H20C21.1 2 22 2.89 22 4V16C22 16.76 21.57 17.41 20.95 17.75M2.39 1.73L1.11 3L2 3.9C2 3.93 2 3.97 2 4V22L6 18H16.11L20.84 22.73L22.11 21.46L2.39 1.73Z\";\nexport var mdiMessageOffOutline = \"M7.2 4L5.2 2H20C21.11 2 22 2.9 22 4V16C22 16.76 21.57 17.41 20.95 17.75L19.2 16H20V4H7.2M22.11 21.46L20.84 22.73L16.11 18H6L2 22V4C2 3.97 2 3.93 2 3.9L1.11 3L2.39 1.73L6.1 5.44L16.65 16H16.66L18.66 18H18.65L22.11 21.46M14.11 16L4 5.89V18L6 16H14.11Z\";\nexport var mdiMessageOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16Z\";\nexport var mdiMessagePlus = \"M20,2A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H6L2,22V4C2,2.89 2.9,2 4,2H20M11,6V9H8V11H11V14H13V11H16V9H13V6H11Z\";\nexport var mdiMessagePlusOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M16 9V11H13V14H11V11H8V9H11V6H13V9H16Z\";\nexport var mdiMessageProcessing = \"M17,11H15V9H17M13,11H11V9H13M9,11H7V9H9M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMessageProcessingOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M17 11H15V9H17M13 11H11V9H13M9 11H7V9H9\";\nexport var mdiMessageQuestion = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M13 14H11V12H13V14M14.8 9C14.5 9.4 14.1 9.6 13.7 9.8C13.4 10 13.3 10.1 13.2 10.3C13 10.5 13 10.7 13 11H11C11 10.5 11.1 10.2 11.3 9.9C11.5 9.7 11.9 9.4 12.4 9.1C12.7 9 12.9 8.8 13 8.6C13.1 8.4 13.2 8.1 13.2 7.9C13.2 7.6 13.1 7.4 12.9 7.2C12.7 7 12.4 6.9 12.1 6.9C11.8 6.9 11.6 7 11.4 7.1C11.2 7.2 11.1 7.4 11.1 7.7H9.1C9.2 7 9.5 6.4 10 6C10.5 5.6 11.2 5.5 12.1 5.5C13 5.5 13.8 5.7 14.3 6.1C14.8 6.5 15.1 7.1 15.1 7.8C15.2 8.2 15.1 8.6 14.8 9Z\";\nexport var mdiMessageQuestionOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M12.2 5.5C11.3 5.5 10.6 5.7 10.1 6C9.5 6.4 9.2 7 9.3 7.7H11.3C11.3 7.4 11.4 7.2 11.6 7.1C11.8 7 12 6.9 12.3 6.9C12.6 6.9 12.9 7 13.1 7.2C13.3 7.4 13.4 7.6 13.4 7.9C13.4 8.2 13.3 8.4 13.2 8.6C13 8.8 12.8 9 12.6 9.1C12.1 9.4 11.7 9.7 11.5 9.9C11.1 10.2 11 10.5 11 11H13C13 10.7 13.1 10.5 13.1 10.3C13.2 10.1 13.4 10 13.6 9.8C14.1 9.6 14.4 9.3 14.7 8.9C15 8.5 15.1 8.1 15.1 7.7C15.1 7 14.8 6.4 14.3 6C13.9 5.7 13.1 5.5 12.2 5.5M11 12V14H13V12H11Z\";\nexport var mdiMessageReply = \"M22,4C22,2.89 21.1,2 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z\";\nexport var mdiMessageReplyOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.1 2.9 18 4 18H18L22 22V4C22 2.9 21.1 2 20 2M20 17.2L18.8 16H4V4H20V17.2Z\";\nexport var mdiMessageReplyText = \"M18,8H6V6H18V8M18,11H6V9H18V11M18,14H6V12H18V14M22,4A2,2 0 0,0 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z\";\nexport var mdiMessageReplyTextOutline = \"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z\";\nexport var mdiMessageSettings = \"M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M11,24H13V22H11V24M7,24H9V22H7V24M15,24H17V22H15V24Z\";\nexport var mdiMessageSettingsOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M11 24H13V22H11V24M7 24H9V22H7V24M15 24H17V22H15V24\";\nexport var mdiMessageStar = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M14.6 14L12 12.4L9.4 14L10.1 11L7.8 9L10.8 8.7L12 6L13.2 8.8L16.2 9.1L13.9 11.1L14.6 14Z\";\nexport var mdiMessageStarOutline = \"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16M12 12.4L14.6 14L13.9 11L16.2 9L13.2 8.7L12 6L10.8 8.8L7.8 9L10.1 11L9.4 14L12 12.4Z\";\nexport var mdiMessageText = \"M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M6,9H18V11H6M14,14H6V12H14M18,8H6V6H18\";\nexport var mdiMessageTextClock = \"M22 12.41V4C22 2.9 21.11 2 20 2H4C2.9 2 2 2.9 2 4V22L6 18H9.29C10.15 20.89 12.83 23 16 23C19.86 23 23 19.87 23 16C23 14.69 22.63 13.46 22 12.41M6 6H18V8H6V6M16 9C14.1 9 12.37 9.77 11.11 11H6V9H16M6 12H10.26C9.84 12.6 9.5 13.28 9.3 14H6V12M16 20.85C13.32 20.85 11.15 18.68 11.15 16S13.32 11.15 16 11.15C18.67 11.15 20.85 13.32 20.85 16S18.67 20.85 16 20.85M16.5 15.82L18.94 17.23L18.19 18.53L15 16.69V13H16.5V15.82Z\";\nexport var mdiMessageTextClockOutline = \"M22 12.41V4C22 2.9 21.11 2 20 2H4C2.9 2 2 2.89 2 4V22L6 18H9.29C10.15 20.89 12.83 23 16 23C19.86 23 23 19.87 23 16C23 14.69 22.63 13.46 22 12.41M5.17 16L4 17.17V4H20V10.26C18.86 9.47 17.5 9 16 9C14.1 9 12.37 9.77 11.11 11H6V13H9.69C9.25 13.91 9 14.93 9 16H5.17M16 20.85C13.32 20.85 11.15 18.68 11.15 16S13.32 11.15 16 11.15C18.67 11.15 20.85 13.32 20.85 16S18.67 20.85 16 20.85M18 9H6V7H18V9M16.5 15.82L18.94 17.23L18.19 18.53L15 16.69V13H16.5V15.82Z\";\nexport var mdiMessageTextFast = \"M9 5C7.9 5 7 5.9 7 7V21L11 17H20C21.1 17 22 16.1 22 15V7C22 5.9 21.1 5 20 5H9M3 7C2.4 7 2 7.4 2 8S2.4 9 3 9H5V7H3M11 8H19V10H11V8M2 11C1.4 11 1 11.4 1 12S1.4 13 2 13H5V11H2M11 12H16V14H11V12M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1Z\";\nexport var mdiMessageTextFastOutline = \"M10 11.5H17V13H10V11.5M10 8.5H19V10H10V8.5M20 5H9C7.9 5 7 5.9 7 7V21L11 17H20C21.1 17 22 16.1 22 15V7C22 5.9 21.1 5 20 5M20 15H10.2L9 16.2V7H20V15M3 7C2.4 7 2 7.4 2 8S2.4 9 3 9H5V7H3M2 11C1.4 11 1 11.4 1 12S1.4 13 2 13H5V11H2M1 15C.4 15 0 15.4 0 16C0 16.6 .4 17 1 17H5V15H1Z\";\nexport var mdiMessageTextLock = \"M20.5 0A2.5 2.5 0 0 0 18 2.5V3A1 1 0 0 0 17 4V8A1 1 0 0 0 18 9H23A1 1 0 0 0 24 8V4A1 1 0 0 0 23 3V2.5A2.5 2.5 0 0 0 20.5 0M20.5 1A1.5 1.5 0 0 1 22 2.5V3H19V2.5A1.5 1.5 0 0 1 20.5 1M4 2A2 2 0 0 0 2 4V22L6 18H20A2 2 0 0 0 22 16V11H17C15.89 11 15 10.11 15 9V2H4M6 6H13V8H6V6M6 9H13V11H6V9M6 12H14V14H6V12Z\";\nexport var mdiMessageTextLockOutline = \"M23 3V2.5C23 1.12 21.88 0 20.5 0S18 1.12 18 2.5V3C17.45 3 17 3.45 17 4V8C17 8.55 17.45 9 18 9H23C23.55 9 24 8.55 24 8V4C24 3.45 23.55 3 23 3M22 3H19V2.5C19 1.67 19.67 1 20.5 1S22 1.67 22 2.5V3M6 11H15V13H6V11M6 7H15V9H6V7M22 11V16C22 17.11 21.11 18 20 18H6L2 22V4C2 2.89 2.9 2 4 2H15V4H4V17.17L5.17 16H20V11H22Z\";\nexport var mdiMessageTextOutline = \"M20,2A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H6L2,22V4C2,2.89 2.9,2 4,2H20M4,4V17.17L5.17,16H20V4H4M6,7H18V9H6V7M6,11H15V13H6V11Z\";\nexport var mdiMessageVideo = \"M18,14L14,10.8V14H6V6H14V9.2L18,6M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMeteor = \"M2.8,3L19.67,18.82C19.67,18.82 20,19.27 19.58,19.71C19.17,20.15 18.63,19.77 18.63,19.77L2.8,3M7.81,4.59L20.91,16.64C20.91,16.64 21.23,17.08 20.82,17.5C20.4,17.97 19.86,17.59 19.86,17.59L7.81,4.59M4.29,8L17.39,20.03C17.39,20.03 17.71,20.47 17.3,20.91C16.88,21.36 16.34,21 16.34,21L4.29,8M12.05,5.96L21.2,14.37C21.2,14.37 21.42,14.68 21.13,15C20.85,15.3 20.47,15.03 20.47,15.03L12.05,5.96M5.45,11.91L14.6,20.33C14.6,20.33 14.82,20.64 14.54,20.95C14.25,21.26 13.87,21 13.87,21L5.45,11.91M16.38,7.92L20.55,11.74C20.55,11.74 20.66,11.88 20.5,12.03C20.38,12.17 20.19,12.05 20.19,12.05L16.38,7.92M7.56,16.1L11.74,19.91C11.74,19.91 11.85,20.06 11.7,20.2C11.56,20.35 11.37,20.22 11.37,20.22L7.56,16.1Z\";\nexport var mdiMeterElectric = \"M12 2C7.04 2 3 6.04 3 11C3 14.91 5.5 18.24 9 19.47V22H11V19.94C11.33 20 11.66 20 12 20S12.67 20 13 19.94V22H15V19.47C18.5 18.23 21 14.9 21 11C21 6.04 16.96 2 12 2M14.25 14L11.25 17L9.75 15.5L11 14.25L9.75 13L12.75 10L14.25 11.5L13 12.75L14.25 14M16 9H8V7H16V9Z\";\nexport var mdiMeterElectricOutline = \"M21 11C21 6.03 16.97 2 12 2S3 6.03 3 11C3 14.92 5.5 18.24 9 19.5V22H11V19.94C11.33 20 11.66 20 12 20S12.67 20 13 19.94V22H15V19.5C18.5 18.24 21 14.92 21 11M12 18C8.14 18 5 14.86 5 11S8.14 4 12 4 19 7.14 19 11 15.86 18 12 18M8 7H16V9H8V7M12.75 10L9.75 13L11 14.25L9.75 15.5L11.25 17L14.25 14L13 12.75L14.25 11.5L12.75 10Z\";\nexport var mdiMeterGas = \"M16 4H15V2H13V4H11V2H9V4H8C5.79 4 4 5.79 4 8V18C4 20.21 5.79 22 8 22H16C18.21 22 20 20.21 20 18V8C20 5.79 18.21 4 16 4M12 18C10.62 18 9.5 16.9 9.5 15.54C9.5 14.45 9.93 14.15 12 11.75C14.05 14.13 14.5 14.45 14.5 15.54C14.5 16.9 13.38 18 12 18M16 10H8V8H16V10Z\";\nexport var mdiMeterGasOutline = \"M16 4H15V2H13V4H11V2H9V4H8C5.79 4 4 5.79 4 8V18C4 20.21 5.79 22 8 22H16C18.21 22 20 20.21 20 18V8C20 5.79 18.21 4 16 4M18 18C18 19.1 17.1 20 16 20H8C6.9 20 6 19.1 6 18V8C6 6.9 6.9 6 8 6H16C17.1 6 18 6.9 18 8V18M9.5 15.54C9.5 16.9 10.62 18 12 18S14.5 16.9 14.5 15.54C14.5 14.45 14.05 14.13 12 11.75C9.93 14.15 9.5 14.46 9.5 15.54M8 8H16V10H8V8Z\";\nexport var mdiMetronome = \"M12,1.75L8.57,2.67L4.06,19.53C4.03,19.68 4,19.84 4,20C4,21.11 4.89,22 6,22H18C19.11,22 20,21.11 20,20C20,19.84 19.97,19.68 19.94,19.53L18.58,14.42L17,16L17.2,17H13.41L16.25,14.16L14.84,12.75L10.59,17H6.8L10.29,4H13.71L15.17,9.43L16.8,7.79L15.43,2.67L12,1.75M11.25,5V14.75L12.75,13.25V5H11.25M19.79,7.8L16.96,10.63L16.25,9.92L14.84,11.34L17.66,14.16L19.08,12.75L18.37,12.04L21.2,9.21L19.79,7.8Z\";\nexport var mdiMetronomeTick = \"M12,1.75L8.57,2.67L4.07,19.5C4.06,19.5 4,19.84 4,20C4,21.11 4.89,22 6,22H18C19.11,22 20,21.11 20,20C20,19.84 19.94,19.5 19.93,19.5L15.43,2.67L12,1.75M10.29,4H13.71L17.2,17H13V12H11V17H6.8L10.29,4M11,5V9H10V11H14V9H13V5H11Z\";\nexport var mdiMicroSd = \"M8,2A2,2 0 0,0 6,4V11L4,13V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2H8M9,4H11V8H9V4M12,4H14V8H12V4M15,4H17V8H15V4Z\";\nexport var mdiMicrophone = \"M12,2A3,3 0 0,1 15,5V11A3,3 0 0,1 12,14A3,3 0 0,1 9,11V5A3,3 0 0,1 12,2M19,11C19,14.53 16.39,17.44 13,17.93V21H11V17.93C7.61,17.44 5,14.53 5,11H7A5,5 0 0,0 12,16A5,5 0 0,0 17,11H19Z\";\nexport var mdiMicrophoneMessage = \"M8,7A2,2 0 0,1 10,9V14A2,2 0 0,1 8,16A2,2 0 0,1 6,14V9A2,2 0 0,1 8,7M14,14C14,16.97 11.84,19.44 9,19.92V22H7V19.92C4.16,19.44 2,16.97 2,14H4A4,4 0 0,0 8,18A4,4 0 0,0 12,14H14M21.41,9.41L17.17,13.66L18.18,10H14A2,2 0 0,1 12,8V4A2,2 0 0,1 14,2H20A2,2 0 0,1 22,4V8C22,8.55 21.78,9.05 21.41,9.41Z\";\nexport var mdiMicrophoneMessageOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L13.38,16.65C12.55,18.35 10.93,19.59 9,19.92V22H7V19.92C4.16,19.44 2,16.97 2,14H4A4,4 0 0,0 8,18C9.82,18 11.36,16.78 11.84,15.11L10,13.27V14A2,2 0 0,1 8,16A2,2 0 0,1 6,14V9.27L2,5.27M21.41,9.41L17.17,13.66L18.18,10H14A2,2 0 0,1 12,8V4A2,2 0 0,1 14,2H20A2,2 0 0,1 22,4V8C22,8.55 21.78,9.05 21.41,9.41Z\";\nexport var mdiMicrophoneMinus = \"M9,2A3,3 0 0,1 12,5V11A3,3 0 0,1 9,14A3,3 0 0,1 6,11V5A3,3 0 0,1 9,2M16,11C16,14.5 13.44,17.43 10,17.93V21H8V17.93C4.56,17.43 2,14.5 2,11H4A5,5 0 0,0 9,16A5,5 0 0,0 14,11H16M15,5H23V7H15V5Z\";\nexport var mdiMicrophoneOff = \"M19,11C19,12.19 18.66,13.3 18.1,14.28L16.87,13.05C17.14,12.43 17.3,11.74 17.3,11H19M15,11.16L9,5.18V5A3,3 0 0,1 12,2A3,3 0 0,1 15,5V11L15,11.16M4.27,3L21,19.73L19.73,21L15.54,16.81C14.77,17.27 13.91,17.58 13,17.72V21H11V17.72C7.72,17.23 5,14.41 5,11H6.7C6.7,14 9.24,16.1 12,16.1C12.81,16.1 13.6,15.91 14.31,15.58L12.65,13.92L12,14A3,3 0 0,1 9,11V10.28L3,4.27L4.27,3Z\";\nexport var mdiMicrophoneOutline = \"M17.3,11C17.3,14 14.76,16.1 12,16.1C9.24,16.1 6.7,14 6.7,11H5C5,14.41 7.72,17.23 11,17.72V21H13V17.72C16.28,17.23 19,14.41 19,11M10.8,4.9C10.8,4.24 11.34,3.7 12,3.7C12.66,3.7 13.2,4.24 13.2,4.9L13.19,11.1C13.19,11.76 12.66,12.3 12,12.3C11.34,12.3 10.8,11.76 10.8,11.1M12,14A3,3 0 0,0 15,11V5A3,3 0 0,0 12,2A3,3 0 0,0 9,5V11A3,3 0 0,0 12,14Z\";\nexport var mdiMicrophonePlus = \"M9,2A3,3 0 0,1 12,5V11A3,3 0 0,1 9,14A3,3 0 0,1 6,11V5A3,3 0 0,1 9,2M16,11C16,14.5 13.44,17.43 10,17.93V21H8V17.93C4.56,17.43 2,14.5 2,11H4A5,5 0 0,0 9,16A5,5 0 0,0 14,11H16M15,5H18V2H20V5H23V7H20V10H18V7H15V5Z\";\nexport var mdiMicrophoneQuestion = \"M9 2C10.66 2 12 3.34 12 5V11C12 12.66 10.66 14 9 14S6 12.66 6 11V5C6 3.34 7.34 2 9 2M16 11C16 14.53 13.39 17.44 10 17.93V21H8V17.93C4.61 17.44 2 14.53 2 11H4C4 13.76 6.24 16 9 16S14 13.76 14 11H16M20.5 14.5V16H19V14.5H20.5M18.5 9.5H17V9C17 7.34 18.34 6 20 6S23 7.34 23 9C23 9.97 22.5 10.88 21.71 11.41L21.41 11.6C20.84 12 20.5 12.61 20.5 13.3V13.5H19V13.3C19 12.11 19.6 11 20.59 10.35L20.88 10.16C21.27 9.9 21.5 9.47 21.5 9C21.5 8.17 20.83 7.5 20 7.5S18.5 8.17 18.5 9V9.5Z\";\nexport var mdiMicrophoneQuestionOutline = \"M14.3 11C14.3 14 11.76 16.1 9 16.1S3.7 14 3.7 11H2C2 14.41 4.72 17.23 8 17.72V21H10V17.72C13.28 17.23 16 14.41 16 11M7.8 4.9C7.8 4.24 8.34 3.7 9 3.7S10.2 4.24 10.2 4.9L10.19 11.1C10.19 11.76 9.66 12.3 9 12.3S7.8 11.76 7.8 11.1M9 14C10.66 14 12 12.66 12 11V5C12 3.34 10.66 2 9 2S6 3.34 6 5V11C6 12.66 7.34 14 9 14M20.5 14.5V16H19V14.5H20.5M18.5 9.5H17V9C17 7.34 18.34 6 20 6S23 7.34 23 9C23 9.97 22.5 10.88 21.71 11.41L21.41 11.6C20.84 12 20.5 12.61 20.5 13.3V13.5H19V13.3C19 12.11 19.6 11 20.59 10.35L20.88 10.16C21.27 9.9 21.5 9.47 21.5 9C21.5 8.17 20.83 7.5 20 7.5S18.5 8.17 18.5 9V9.5Z\";\nexport var mdiMicrophoneSettings = \"M19,10H17.3C17.3,13 14.76,15.1 12,15.1C9.24,15.1 6.7,13 6.7,10H5C5,13.41 7.72,16.23 11,16.72V20H13V16.72C16.28,16.23 19,13.41 19,10M15,24H17V22H15M11,24H13V22H11M12,13A3,3 0 0,0 15,10V4A3,3 0 0,0 12,1A3,3 0 0,0 9,4V10A3,3 0 0,0 12,13M7,24H9V22H7V24Z\";\nexport var mdiMicrophoneVariant = \"M9,3A4,4 0 0,1 13,7H5A4,4 0 0,1 9,3M11.84,9.82L11,18H10V19A2,2 0 0,0 12,21A2,2 0 0,0 14,19V14A4,4 0 0,1 18,10H20L19,11L20,12H18A2,2 0 0,0 16,14V19A4,4 0 0,1 12,23A4,4 0 0,1 8,19V18H7L6.16,9.82C5.67,9.32 5.31,8.7 5.13,8H12.87C12.69,8.7 12.33,9.32 11.84,9.82M9,11A1,1 0 0,0 8,12A1,1 0 0,0 9,13A1,1 0 0,0 10,12A1,1 0 0,0 9,11Z\";\nexport var mdiMicrophoneVariantOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L16,19.26C15.86,21.35 14.12,23 12,23A4,4 0 0,1 8,19V18H7L6.16,9.82C5.82,9.47 5.53,9.06 5.33,8.6L2,5.27M9,3A4,4 0 0,1 13,7H8.82L6.08,4.26C6.81,3.5 7.85,3 9,3M11.84,9.82L11.82,10L9.82,8H12.87C12.69,8.7 12.33,9.32 11.84,9.82M11,18H10V19A2,2 0 0,0 12,21A2,2 0 0,0 14,19V17.27L11.35,14.62L11,18M18,10H20L19,11L20,12H18A2,2 0 0,0 16,14V14.18L14.3,12.5C14.9,11 16.33,10 18,10M8,12A1,1 0 0,0 9,13C9.21,13 9.4,12.94 9.56,12.83L8.17,11.44C8.06,11.6 8,11.79 8,12Z\";\nexport var mdiMicroscope = \"M9.46,6.28L11.05,9C8.47,9.26 6.5,11.41 6.5,14A5,5 0 0,0 11.5,19C13.55,19 15.31,17.77 16.08,16H13.5V14H21.5V16H19.25C18.84,17.57 17.97,18.96 16.79,20H19.5V22H3.5V20H6.21C4.55,18.53 3.5,16.39 3.5,14C3.5,10.37 5.96,7.2 9.46,6.28M12.74,2.07L13.5,3.37L14.36,2.87L17.86,8.93L14.39,10.93L10.89,4.87L11.76,4.37L11,3.07L12.74,2.07Z\";\nexport var mdiMicrosoft = \"M2,3H11V12H2V3M11,22H2V13H11V22M21,3V12H12V3H21M21,22H12V13H21V22Z\";\nexport var mdiMicrosoftAccess = \"M14.5 2.63Q15.84 2.63 17.18 2.77L17.85 2.86Q18.3 2.93 18.84 3.04 19.37 3.15 19.93 3.31 20.5 3.47 20.96 3.69 21.42 3.91 21.71 4.19 22 4.47 22 4.81V19.19Q22 19.53 21.71 19.81 21.41 20.09 20.96 20.31 20.5 20.53 19.93 20.69 19.37 20.85 18.83 20.96 18.3 21.07 17.86 21.14 17.41 21.21 17.17 21.23 15.84 21.38 14.5 21.38 13.15 21.38 11.82 21.23 11.59 21.21 11.15 21.14 10.7 21.07 10.16 20.96 9.63 20.85 9.07 20.69 8.5 20.53 8.05 20.31 7.59 20.09 7.29 19.81 7 19.53 7 19.19V17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H7V4.81Q7 4.47 7.29 4.19 7.59 3.91 8.05 3.69 8.5 3.47 9.07 3.31 9.63 3.15 10.17 3.04 10.7 2.93 11.14 2.86 11.59 2.8 11.83 2.77 13.15 2.63 14.5 2.63M14.5 3.88Q13.87 3.88 13.08 3.92 12.3 3.96 11.5 4.07 10.69 4.18 9.93 4.36 9.17 4.54 8.58 4.81 9.19 5.1 9.95 5.28 10.7 5.46 11.5 5.56 12.29 5.66 13.07 5.71 13.85 5.75 14.5 5.75 15.16 5.75 15.93 5.71 16.71 5.66 17.5 5.56 18.3 5.46 19.06 5.28 19.81 5.1 20.42 4.81 19.83 4.54 19.07 4.36 18.31 4.18 17.5 4.07 16.7 3.96 15.92 3.92 15.14 3.88 14.5 3.88M5.94 13.79H8.06L8.55 15.28H10.22L7.83 8.72H6.2L3.78 15.28H5.44M20.75 19V16Q20.11 16.31 19.31 16.5 18.5 16.68 17.67 16.79 16.83 16.9 16 16.95 15.19 17 14.5 17 13.79 17 13.08 16.96 12.37 16.91 11.67 16.83 11.44 17 11.17 17H8.25V19Q8.53 19.21 9 19.38 9.5 19.56 10.07 19.68 10.65 19.81 11.29 19.9 11.92 20 12.5 20.03 13.12 20.09 13.64 20.11 14.16 20.13 14.5 20.13 14.84 20.12 15.36 20.1 15.88 20.09 16.5 20.03 17.08 20 17.71 19.9 18.35 19.81 18.93 19.68 19.5 19.56 20 19.38 20.47 19.21 20.75 19M20.75 14.63V11Q20.11 11.31 19.31 11.5 18.5 11.68 17.67 11.79 16.83 11.9 16 11.95 15.19 12 14.5 12 13.88 12 13.25 11.97 12.63 11.93 12 11.87V15.62Q12.63 15.69 13.25 15.72 13.88 15.75 14.5 15.75 14.86 15.75 15.38 15.73 15.9 15.71 16.5 15.66 17.08 15.6 17.7 15.5 18.33 15.44 18.9 15.31 19.5 15.18 19.96 15 20.45 14.85 20.75 14.63M20.75 9.63V6Q20.11 6.31 19.31 6.5 18.5 6.68 17.67 6.79 16.83 6.9 16 6.95 15.19 7 14.5 7 13.81 7 13 6.95 12.17 6.9 11.33 6.79 10.5 6.68 9.69 6.5 8.89 6.31 8.25 6V7H11.17Q11.5 7 11.76 7.24 12 7.5 12 7.83V10.62Q12.63 10.69 13.25 10.72 13.88 10.75 14.5 10.75 14.86 10.75 15.38 10.73 15.9 10.71 16.5 10.66 17.08 10.6 17.7 10.5 18.33 10.44 18.9 10.31 19.5 10.18 19.96 10 20.44 9.85 20.75 9.63M6.32 12.5L7 10.5L7.65 12.5Z\";\nexport var mdiMicrosoftAzure = \"M13.05,4.24L6.56,18.05L2,18L7.09,9.24L13.05,4.24M13.75,5.33L22,19.76H6.74L16.04,18.1L11.17,12.31L13.75,5.33Z\";\nexport var mdiMicrosoftAzureDevops = \"M22 18L17 22L9 19V22L4.81 16.25L17.72 17.3V6.34L22 5.65V18M4.81 16.25V8.96L17.72 6.34L10.6 2V4.84L3.97 6.76L2 9.38V15.07L4.81 16.25Z\";\nexport var mdiMicrosoftBing = \"M5,3V19L8.72,21L18,15.82V11.73H18L9.77,8.95L11.38,12.84L13.94,14L8.7,16.92V4.27L5,3\";\nexport var mdiMicrosoftDynamics365 = \"M6,2L17.25,8.5L13.5,11.5L6,8V2M6,9L9.5,11.25L6,22L18,9V15L6,22V9Z\";\nexport var mdiMicrosoftEdge = \"M10.86 15.37C10.17 14.6 9.7 13.68 9.55 12.65C9.25 13.11 9 13.61 8.82 14.15C7.9 16.9 9.5 20.33 12.22 21.33C14.56 22.11 17.19 20.72 18.92 19.2C19.18 18.85 21.23 17.04 20.21 16.84C17.19 18.39 13.19 17.95 10.86 15.37M11.46 9.56C12.5 9.55 11.5 9.13 11.07 8.81C10.03 8.24 8.81 7.96 7.63 7.96C3.78 8 .995 10.41 2.3 14.4C3.24 18.28 6.61 21.4 10.59 21.9C8.54 20.61 7.3 18.19 7.3 15.78C7.38 13.25 8.94 10.28 11.46 9.56M2.78 8.24C5.82 6 10.66 6.18 13.28 9C14.3 10.11 15 12 14.07 13.37C12.33 15.25 17.15 15.5 18.18 15.22C21.92 14.5 22.91 10.15 21.13 7.15C19.43 3.75 15.66 1.97 11.96 2C7.9 1.93 4.25 4.5 2.78 8.24Z\";\nexport var mdiMicrosoftExcel = \"M21.17 3.25Q21.5 3.25 21.76 3.5 22 3.74 22 4.08V19.92Q22 20.26 21.76 20.5 21.5 20.75 21.17 20.75H7.83Q7.5 20.75 7.24 20.5 7 20.26 7 19.92V17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H7V4.08Q7 3.74 7.24 3.5 7.5 3.25 7.83 3.25M7 13.06L8.18 15.28H9.97L8 12.06L9.93 8.89H8.22L7.13 10.9L7.09 10.96L7.06 11.03Q6.8 10.5 6.5 9.96 6.25 9.43 5.97 8.89H4.16L6.05 12.08L4 15.28H5.78M13.88 19.5V17H8.25V19.5M13.88 15.75V12.63H12V15.75M13.88 11.38V8.25H12V11.38M13.88 7V4.5H8.25V7M20.75 19.5V17H15.13V19.5M20.75 15.75V12.63H15.13V15.75M20.75 11.38V8.25H15.13V11.38M20.75 7V4.5H15.13V7Z\";\nexport var mdiMicrosoftInternetExplorer = \"M13,3L14,3.06C16.8,1.79 19.23,1.64 20.5,2.92C21.5,3.93 21.58,5.67 20.92,7.72C21.61,9 22,10.45 22,12L21.95,13H9.08C9.45,15.28 11.06,17 13,17C14.31,17 15.47,16.21 16.2,15H21.5C20.25,18.5 16.92,21 13,21C11.72,21 10.5,20.73 9.41,20.25C6.5,21.68 3.89,21.9 2.57,20.56C1,18.96 1.68,15.57 4,12C4.93,10.54 6.14,9.06 7.57,7.65L8.38,6.88C7.21,7.57 5.71,8.62 4.19,10.17C5.03,6.08 8.66,3 13,3M13,7C11.21,7 9.69,8.47 9.18,10.5H16.82C16.31,8.47 14.79,7 13,7M20.06,4.06C19.4,3.39 18.22,3.35 16.74,3.81C18.22,4.5 19.5,5.56 20.41,6.89C20.73,5.65 20.64,4.65 20.06,4.06M3.89,20C4.72,20.84 6.4,20.69 8.44,19.76C6.59,18.67 5.17,16.94 4.47,14.88C3.27,17.15 3,19.07 3.89,20Z\";\nexport var mdiMicrosoftOffice = \"M19.94 5.59V18.39Q19.94 19.06 19.55 19.59 19.16 20.11 18.5 20.29L12.77 21.94Q12.65 21.97 12.5 22H12.28Q11.95 22 11.68 21.91 11.41 21.82 11.13 21.67L7.38 19.55Q7.17 19.43 7.05 19.24 6.93 19.05 6.93 18.81 6.93 18.45 7.19 18.2 7.44 17.95 7.8 17.95H12.66V6.14L9 7.44Q8.57 7.6 8.3 8 8.03 8.38 8.03 8.85V15.58Q8.03 16 7.82 16.34 7.62 16.68 7.25 16.88L5.53 17.82Q5.29 17.95 5.05 17.95 4.64 17.95 4.35 17.66 4.06 17.37 4.06 16.95V7.47Q4.06 6.95 4.33 6.5 4.61 6 5.06 5.74L11.22 2.24Q11.43 2.12 11.67 2.06 11.91 2 12.15 2 12.32 2 12.46 2.03 12.6 2.05 12.77 2.1L18.5 3.69Q18.83 3.78 19.09 3.96 19.35 4.14 19.54 4.39 19.74 4.65 19.84 4.95 19.94 5.26 19.94 5.59M18.62 18.39V5.59Q18.62 5.36 18.5 5.19 18.35 5 18.13 4.96L15.31 4.18Q15 4.09 14.65 4 14.32 3.89 14 3.81V20.21L18.13 19Q18.35 18.96 18.5 18.79 18.62 18.62 18.62 18.39Z\";\nexport var mdiMicrosoftOnedrive = \"M18.21 10.29Q19 10.34 19.7 10.68 20.39 11 20.9 11.57 21.41 12.12 21.71 12.83 22 13.54 22 14.34 22 15.18 21.68 15.92 21.36 16.66 20.8 17.21 20.25 17.76 19.5 18.08 18.78 18.41 17.94 18.41H7Q5.97 18.41 5.06 18 4.15 17.61 3.47 16.94 2.79 16.26 2.4 15.35 2 14.44 2 13.41 2 12.59 2.26 11.83 2.5 11.08 3 10.45 3.44 9.82 4.08 9.35 4.72 8.88 5.5 8.63 5.87 8.5 6.21 8.5 6.56 8.43 6.93 8.41H6.94Q7.37 7.75 7.95 7.23 8.5 6.71 9.2 6.34 9.87 6 10.62 5.78 11.37 5.59 12.16 5.59 13.22 5.59 14.2 5.94 15.18 6.29 16 6.91 16.8 7.53 17.37 8.39 17.95 9.26 18.21 10.29M12.16 6.84Q11.05 6.84 10.06 7.3 9.06 7.75 8.36 8.6 8.73 8.7 9.07 8.85 9.4 9 9.73 9.2L13.71 11.58L16 10.62Q16.21 10.53 16.44 10.45 16.67 10.38 16.92 10.33 16.68 9.55 16.21 8.91 15.74 8.27 15.11 7.81 14.5 7.35 13.73 7.1 13 6.84 12.16 6.84M4 15.66L12.27 12.18L9.08 10.26Q8.59 9.97 8.06 9.81 7.5 9.66 6.95 9.66 6.19 9.66 5.5 9.96 4.84 10.26 4.34 10.77 3.84 11.29 3.54 11.97 3.25 12.65 3.25 13.41 3.25 14 3.45 14.59 3.64 15.19 4 15.66M17.94 17.16Q18.41 17.16 18.84 17 19.27 16.86 19.64 16.58L13.61 13L5.03 16.59Q5.47 16.86 5.97 17 6.47 17.16 7 17.16M20.45 15.61Q20.75 15 20.75 14.34 20.75 13.7 20.5 13.17 20.26 12.65 19.85 12.28 19.43 11.91 18.88 11.71 18.32 11.5 17.7 11.5 17.35 11.5 17 11.6 16.66 11.68 16.33 11.81 16 11.93 15.67 12.08 15.35 12.23 15.04 12.37Z\";\nexport var mdiMicrosoftOnenote = \"M21.17 3.25Q21.5 3.25 21.76 3.5 22 3.74 22 4.08V19.92Q22 20.26 21.76 20.5 21.5 20.75 21.17 20.75H7.83Q7.5 20.75 7.24 20.5 7 20.26 7 19.92V17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H7V4.08Q7 3.74 7.24 3.5 7.5 3.25 7.83 3.25M5.8 11.17L8.16 15.27H9.65V8.73H8.2V12.92L5.93 8.73H4.35V15.27H5.8M20.75 19.5V17H18.25V19.5M20.75 15.75V13.25H18.25V15.75M20.75 12V9.5H18.25V12M20.75 8.25V4.5H8.25V7H11.17Q11.5 7 11.76 7.24 12 7.5 12 7.83V16.17Q12 16.5 11.76 16.76 11.5 17 11.17 17H8.25V19.5H17V8.25Z\";\nexport var mdiMicrosoftOutlook = \"M8.56 12.03Q8.56 12.41 8.5 12.76 8.39 13.1 8.2 13.38 8 13.65 7.71 13.81 7.41 13.97 7 13.97 6.58 13.97 6.29 13.8 6 13.63 5.81 13.35 5.62 13.07 5.54 12.72 5.45 12.37 5.45 12 5.45 11.64 5.54 11.28 5.62 10.93 5.81 10.65 6 10.37 6.31 10.2 6.61 10.03 7.03 10.03 7.46 10.03 7.75 10.2 8.05 10.38 8.23 10.66 8.41 10.95 8.5 11.3 8.56 11.66 8.56 12.03M22 12V19.81Q22 20.2 21.73 20.5 21.45 20.75 21.06 20.75H7.94Q7.55 20.75 7.27 20.5 7 20.2 7 19.81V17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H8.25V4.13Q8.25 3.76 8.5 3.5 8.76 3.25 9.13 3.25H19.87Q20.24 3.25 20.5 3.5 20.75 3.76 20.75 4.13V11.04L21.79 11.64H21.8Q21.88 11.7 21.94 11.8 22 11.89 22 12M17 5.13V7.63H19.5V5.13M17 8.88V11.38H19.5V8.88M17 12.63V14.15L19.54 12.63M12.63 5.13V7.63H15.75V5.13M12.63 8.88V11.38H15.75V8.88M12.63 12.63V14.32L14.64 15.56L15.75 14.9V12.63M9.5 5.13V7H11.27Q11.33 7 11.38 7.04V5.12M7 15.32Q7.73 15.32 8.32 15.06 8.9 14.8 9.31 14.35 9.71 13.9 9.91 13.28 10.12 12.66 10.13 11.94 10.13 11.25 9.92 10.65 9.72 10.06 9.32 9.62 8.93 9.18 8.37 8.93 7.8 8.68 7.08 8.68 6.31 8.68 5.71 8.93 5.12 9.18 4.71 9.63 4.3 10.09 4.09 10.71 3.88 11.34 3.88 12.08 3.88 12.78 4.09 13.38 4.31 13.97 4.71 14.4 5.11 14.83 5.68 15.08 6.26 15.32 7 15.32M8.25 19.5H18.57L12 15.4V16.17Q12 16.5 11.76 16.76 11.5 17 11.17 17H8.25M20.75 19.39V13.36L15.83 16.31Z\";\nexport var mdiMicrosoftPowerpoint = \"M13.25 3.25Q14.46 3.25 15.58 3.56 16.7 3.88 17.67 4.45 18.64 5 19.44 5.81 20.23 6.61 20.8 7.58 21.38 8.55 21.69 9.67 22 10.79 22 12 22 13.21 21.69 14.33 21.38 15.45 20.8 16.42 20.23 17.39 19.44 18.19 18.64 19 17.67 19.55 16.7 20.13 15.58 20.44 14.46 20.75 13.25 20.75 12.18 20.75 11.15 20.5 10.12 20.24 9.2 19.76 8.28 19.27 7.5 18.58 6.69 17.88 6.07 17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.25 2.5 7 2.83 7H6.07Q6.69 6.12 7.5 5.42 8.28 4.72 9.2 4.24 10.13 3.76 11.15 3.5 12.18 3.25 13.25 3.25M13.88 4.53V11.37H20.72Q20.6 10 20.03 8.81 19.46 7.62 18.55 6.7 17.64 5.79 16.43 5.22 15.23 4.65 13.88 4.53M9.5 10.84Q9.5 10.27 9.3 9.87 9.11 9.46 8.78 9.21 8.45 8.95 8 8.84 7.55 8.72 7 8.72H4.37V15.27H5.91V13H6.94Q7.42 13 7.87 12.84 8.33 12.7 8.69 12.43 9.05 12.17 9.27 11.76 9.5 11.36 9.5 10.84M13.25 19.5Q14.23 19.5 15.14 19.26 16.04 19 16.85 18.58 17.66 18.13 18.33 17.5 19 16.89 19.5 16.13 20 15.36 20.33 14.47 20.64 13.58 20.72 12.62H12.64V4.53Q11.19 4.65 9.91 5.29 8.63 5.93 7.67 7H11.17Q11.5 7 11.76 7.25 12 7.5 12 7.83V16.17Q12 16.5 11.76 16.76 11.5 17 11.17 17H7.67Q8.2 17.6 8.84 18.06 9.5 18.5 10.19 18.84 10.91 19.17 11.68 19.33 12.45 19.5 13.25 19.5M6.85 10Q7.32 10 7.61 10.19 7.89 10.38 7.89 10.89 7.89 11.11 7.79 11.25 7.69 11.39 7.53 11.5 7.37 11.57 7.18 11.6 7 11.64 6.8 11.64H5.91V10H6.85Z\";\nexport var mdiMicrosoftSharepoint = \"M22 13.25Q22 14.29 21.6 15.2 21.21 16.1 20.53 16.78 19.85 17.46 18.94 17.86 18.03 18.25 17 18.25 16.36 18.25 15.73 18.09 15.64 18.92 15.27 19.63 14.89 20.35 14.3 20.88 13.72 21.41 12.97 21.7 12.21 22 11.38 22 10.47 22 9.67 21.65 8.88 21.31 8.28 20.72 7.69 20.13 7.35 19.33 7 18.53 7 17.63V17.31Q7.03 17.16 7.05 17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H5.78Q5.9 5.94 6.39 5 6.87 4.11 7.63 3.44 8.38 2.76 9.34 2.38 10.3 2 11.38 2 12.54 2 13.56 2.44 14.59 2.89 15.35 3.65 16.11 4.41 16.56 5.44 17 6.46 17 7.63V7.94Q17 8.09 16.96 8.25 18 8.25 18.91 8.64 19.83 9.03 20.5 9.71 21.21 10.38 21.6 11.29 22 12.21 22 13.25M11.37 3.25Q10.56 3.25 9.83 3.54 9.09 3.82 8.5 4.32 7.94 4.82 7.55 5.5 7.17 6.2 7.05 7H11.17Q11.5 7 11.76 7.25 12 7.5 12 7.83V11.95L12.18 11.92Q12.35 11.3 12.68 10.74 13 10.17 13.47 9.72 13.92 9.27 14.5 8.93 15.04 8.6 15.67 8.43 15.75 8 15.75 7.63 15.75 6.72 15.4 5.92 15.06 5.13 14.46 4.54 13.87 3.95 13.08 3.6 12.28 3.25 11.37 3.25M7.1 15.25Q7.55 15.25 8 15.16 8.42 15.07 8.76 14.85 9.1 14.64 9.31 14.29 9.5 13.93 9.5 13.41 9.5 12.88 9.3 12.53 9.08 12.18 8.75 11.94 8.42 11.71 8.04 11.56L7.32 11.27Q7 11.14 6.77 11 6.55 10.85 6.55 10.62 6.55 10.46 6.67 10.35 6.79 10.25 6.95 10.2 7.11 10.13 7.28 10.11 7.46 10.1 7.58 10.1 8.07 10.1 8.46 10.22 8.84 10.35 9.25 10.6V9.12Q9 9.05 8.81 9 8.61 8.95 8.42 8.92 8.22 8.89 8 8.87 7.8 8.86 7.55 8.86 7.12 8.86 6.67 8.95 6.22 9.05 5.85 9.27 5.5 9.5 5.26 9.83 5.03 10.18 5.03 10.69 5.03 11.19 5.25 11.5 5.47 11.85 5.8 12.09 6.13 12.32 6.5 12.5L7.22 12.79Q7.56 12.93 7.78 13.08 8 13.24 8 13.46 8 13.65 7.89 13.76 7.79 13.87 7.63 13.92 7.5 14 7.31 14H7Q6.41 14 5.96 13.82 5.5 13.62 5.04 13.3V14.86Q6.03 15.25 7.1 15.25M11.37 20.75Q12 20.75 12.58 20.5 13.15 20.26 13.58 19.84 14 19.41 14.25 18.84 14.5 18.27 14.5 17.63 14.5 17.07 14.31 16.56 14.13 16.05 13.8 15.65 13.46 15.24 13 14.96 12.55 14.68 12 14.56V16.17Q12 16.5 11.76 16.76 11.5 17 11.17 17H8.31Q8.25 17.31 8.25 17.63 8.25 18.27 8.5 18.84 8.74 19.41 9.16 19.84 9.59 20.26 10.16 20.5 10.73 20.75 11.37 20.75M17 17Q17.77 17 18.45 16.71 19.14 16.42 19.65 15.9 20.16 15.39 20.46 14.71 20.75 14.03 20.75 13.25 20.75 12.5 20.46 11.8 20.16 11.11 19.65 10.6 19.14 10.09 18.45 9.79 17.77 9.5 17 9.5 16.23 9.5 15.55 9.8 14.87 10.1 14.36 10.61 13.85 11.12 13.55 11.8 13.25 12.5 13.25 13.25V13.46L13.27 13.68Q13.73 13.9 14.12 14.22 14.5 14.54 14.82 14.93 15.12 15.33 15.34 15.79 15.55 16.25 15.66 16.74 16.32 17 17 17Z\";\nexport var mdiMicrosoftTeams = \"M19.19 8.77Q18.73 8.77 18.33 8.6 17.94 8.43 17.64 8.13 17.34 7.83 17.17 7.44 17 7.04 17 6.58 17 6.13 17.17 5.73 17.34 5.33 17.64 5.04 17.94 4.74 18.33 4.57 18.73 4.39 19.19 4.4 19.64 4.39 20.04 4.57 20.44 4.74 20.74 5.04 21.03 5.33 21.21 5.73 21.38 6.13 21.38 6.58 21.38 7.04 21.21 7.44 21.04 7.83 20.74 8.13 20.44 8.43 20.04 8.6 19.64 8.77 19.19 8.77M19.19 5.65Q18.8 5.65 18.5 5.92 18.25 6.19 18.25 6.58 18.25 6.97 18.5 7.25 18.8 7.5 19.19 7.5 19.58 7.5 19.85 7.25 20.13 7 20.13 6.58 20.13 6.19 19.85 5.92 19.58 5.65 19.19 5.65M22 10.33V15Q22 15.63 21.76 16.2 21.5 16.77 21.09 17.19 20.66 17.62 20.09 17.86 19.5 18.11 18.88 18.11 18.5 18.11 18.12 18 17.73 17.93 17.41 17.75 17.17 18.54 16.7 19.19 16.23 19.84 15.6 20.3 14.97 20.76 14.21 21 13.45 21.27 12.63 21.27 11.67 21.27 10.82 20.94 10 20.61 9.32 20 8.66 19.43 8.23 18.64 7.79 17.84 7.66 16.9H2.83Q2.5 16.9 2.24 16.65 2 16.41 2 16.07V7.73Q2 7.39 2.24 7.14 2.5 6.9 2.83 6.9H10Q9.71 6.3 9.71 5.65 9.71 5.04 9.94 4.5 10.16 4 10.56 3.58 10.96 3.19 11.5 2.96 12 2.73 12.62 2.73 13.23 2.73 13.76 2.96 14.29 3.19 14.69 3.58 15.09 4 15.31 4.5 15.54 5.04 15.54 5.65 15.54 6.25 15.31 6.79 15.09 7.32 14.69 7.71 14.29 8.11 13.76 8.34 13.23 8.57 12.62 8.57 12.47 8.57 12.31 8.55 12.16 8.53 12 8.5V9.4H21.06Q21.45 9.4 21.73 9.67 22 9.94 22 10.33M12.63 4Q12.28 4 12 4.11 11.67 4.24 11.44 4.47 11.22 4.7 11.09 5 10.96 5.31 10.96 5.65 10.96 6 11.09 6.3 11.22 6.6 11.44 6.83 11.67 7.05 12 7.19 12.28 7.32 12.63 7.32 12.97 7.32 13.27 7.19 13.57 7.05 13.8 6.83 14.03 6.6 14.16 6.3 14.3 6 14.3 5.65 14.3 5.31 14.16 5 14.03 4.7 13.8 4.47 13.57 4.24 13.27 4.11 12.97 4 12.63 4M7.78 10.18H9.66V8.62H4.34V10.18H6.22V15.18H7.78M16.38 16.27V10.65H12V16.07Q12 16.41 11.76 16.65 11.5 16.9 11.17 16.9H8.92Q9.05 17.57 9.39 18.15 9.73 18.72 10.21 19.14 10.69 19.55 11.31 19.79 11.92 20 12.63 20 13.4 20 14.08 19.73 14.76 19.43 15.28 18.92 15.79 18.41 16.08 17.73 16.38 17.05 16.38 16.27M20.75 15V10.65H17.63V16.36Q17.88 16.61 18.2 16.74 18.5 16.86 18.88 16.86 19.27 16.86 19.61 16.71 19.95 16.56 20.2 16.31 20.46 16.06 20.6 15.71 20.75 15.37 20.75 15Z\";\nexport var mdiMicrosoftVisualStudio = \"M17,8.5L12.25,12.32L17,16V8.5M4.7,18.4L2,16.7V7.7L5,6.7L9.3,10.03L18,2L22,4.5V20L17,22L9.34,14.66L4.7,18.4M5,14L6.86,12.28L5,10.5V14Z\";\nexport var mdiMicrosoftVisualStudioCode = \"M17,16.47V7.39L11,11.93M2.22,9.19C1.92,8.87 1.91,8.37 2.2,8.04L3.4,6.93C3.6,6.75 4.09,6.67 4.45,6.93L7.87,9.54L15.8,2.29C16.12,1.97 16.67,1.84 17.3,2.17L21.3,4.08C21.66,4.29 22,4.62 22,5.23V18.73C22,19.13 21.71,19.56 21.4,19.73L17,21.83C16.68,21.96 16.08,21.84 15.87,21.63L7.85,14.33L4.45,16.93C4.07,17.19 3.6,17.12 3.4,16.93L2.2,15.83C1.88,15.5 1.92,14.96 2.25,14.63L5.25,11.93\";\nexport var mdiMicrosoftWindows = \"M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z\";\nexport var mdiMicrosoftWindowsClassic = \"M2.67,5.3V5.91L1.96,6.21V5.6L2.67,5.3M2.67,11.24V11.86L1.96,12.15V11.56L2.67,11.24M2.67,17.27V17.89L1.96,18.18V17.59L2.67,17.27M2.6,7.29V7.84L2.03,8.1V7.56L2.6,7.29M2.6,9.28V9.82L2.03,10.08V9.54L2.6,9.28M2.6,13.31V13.84L2.03,14.1V13.56L2.6,13.31M2.6,15.33V15.87L2.03,16.13V15.6L2.6,15.33M4.5,5.64V6.36L3.5,6.73V6L4.5,5.64M4.5,11.66V12.37L3.5,12.74V12.03L4.5,11.66M4.5,17.7V18.41L3.5,18.81V18.1L4.5,17.7M4.43,7.72V8.38L3.64,8.68V8L4.43,7.72M4.43,9.73V10.37L3.65,10.67V10L4.43,9.73M4.43,13.74V14.38L3.65,14.69V14.03L4.43,13.74M4.43,15.76V16.41L3.65,16.72V16.06L4.43,15.76M6.31,6.09V6.94L5.05,7.43V6.59L6.31,6.09M6.31,12.11V12.96L5.05,13.45V12.61L6.31,12.11M6.31,18.08V18.93L5.05,19.43V18.58L6.31,18.08M6.25,8.18V8.94L5.19,9.34V8.61L6.25,8.18M6.25,10.18V10.93L5.19,11.35V10.6L6.25,10.18M6.25,14.19V14.94L5.19,15.37V14.62L6.25,14.19M6.25,16.14V16.9L5.19,17.32V16.57L6.25,16.14M8.29,6.04V7.16L6.72,7.78V6.67L8.29,6.04M8.29,12.06V13.19L6.72,13.8V12.68L8.29,12.06M8.29,18.03V19.15L6.72,19.77V18.66L8.29,18.03M8.2,8.13V9.16L6.89,9.69V8.66L8.2,8.13M8.2,10.13V11.15L6.89,11.68V10.65L8.2,10.13M8.2,14.15V15.18L6.89,15.7V14.67L8.2,14.15M8.2,16.1V17.12L6.89,17.64V16.63L8.2,16.1M10.34,5.85V7.32L8.61,8V6.56L10.34,5.85M10.34,11.87V13.33L8.61,14.03V12.56L10.34,11.87M10.34,17.84V19.3L8.61,20V18.54L10.34,17.84M10.26,8.05V9.28L8.78,9.87V8.64L10.26,8.05M10.26,9.97V11.2L8.78,11.78V10.56L10.26,9.97M10.26,14.06V15.31L8.78,15.88V14.65L10.26,14.06M10.26,16V17.25L8.78,17.84V16.6L10.26,16M12.45,5.12V7.12L10.59,7.89V6C11.23,5.65 11.85,5.35 12.45,5.12M12.45,7.33V9.06L10.59,9.84V8.1L12.45,7.33M12.45,9.28V11.04L10.59,11.82V10.06L12.45,9.28M12.45,11.25V13L10.59,13.77V12L12.45,11.25M12.45,13.21V15L10.59,15.78V14L12.45,13.21M12.45,15.21V16.96L10.59,17.76V16L12.45,15.21M12.45,17.17V19.04C11.72,19.32 11.1,19.59 10.59,19.84V17.96L12.45,17.17M22.04,5.18V19.23C20.85,18.44 19.37,18.05 17.59,18.05C16.12,18.05 14.47,18.35 12.65,18.96V17.06C13.62,16.69 14.68,16.42 15.84,16.26V11.69C14.86,11.81 13.8,12.15 12.65,12.71V11.4C13.64,10.94 14.71,10.63 15.84,10.46V6C14.82,6.18 13.76,6.53 12.65,7V5.03C14.27,4.34 15.86,4 17.41,4C19.09,4 20.63,4.39 22.04,5.18M20.15,6.41C19.39,6 18.5,5.82 17.42,5.82C17.29,5.82 17.17,5.83 17.05,5.84V10.38L17.46,10.37C18.37,10.37 19.27,10.5 20.15,10.8V6.41M20.15,12.1C19.34,11.74 18.43,11.56 17.44,11.56C17.31,11.56 17.18,11.57 17.05,11.58V16.16H17.46C18.45,16.16 19.35,16.28 20.15,16.53V12.1H20.15Z\";\nexport var mdiMicrosoftWord = \"M21.17 3.25Q21.5 3.25 21.76 3.5 22 3.74 22 4.08V19.92Q22 20.26 21.76 20.5 21.5 20.75 21.17 20.75H7.83Q7.5 20.75 7.24 20.5 7 20.26 7 19.92V17H2.83Q2.5 17 2.24 16.76 2 16.5 2 16.17V7.83Q2 7.5 2.24 7.24 2.5 7 2.83 7H7V4.08Q7 3.74 7.24 3.5 7.5 3.25 7.83 3.25M7.03 11.34L8.23 15.28H9.6L10.91 8.72H9.53L8.75 12.6L7.64 8.85H6.5L5.31 12.62L4.53 8.72H3.09L4.4 15.28H5.77M20.75 19.5V17H8.25V19.5M20.75 15.75V12.63H12V15.75M20.75 11.38V8.25H12V11.38M20.75 7V4.5H8.25V7Z\";\nexport var mdiMicrosoftXbox = \"M6.43,3.72C6.5,3.66 6.57,3.6 6.62,3.56C8.18,2.55 10,2 12,2C13.88,2 15.64,2.5 17.14,3.42C17.25,3.5 17.54,3.69 17.7,3.88C16.25,2.28 12,5.7 12,5.7C10.5,4.57 9.17,3.8 8.16,3.5C7.31,3.29 6.73,3.5 6.46,3.7M19.34,5.21C19.29,5.16 19.24,5.11 19.2,5.06C18.84,4.66 18.38,4.56 18,4.59C17.61,4.71 15.9,5.32 13.8,7.31C13.8,7.31 16.17,9.61 17.62,11.96C19.07,14.31 19.93,16.16 19.4,18.73C21,16.95 22,14.59 22,12C22,9.38 21,7 19.34,5.21M15.73,12.96C15.08,12.24 14.13,11.21 12.86,9.95C12.59,9.68 12.3,9.4 12,9.1C12,9.1 11.53,9.56 10.93,10.17C10.16,10.94 9.17,11.95 8.61,12.54C7.63,13.59 4.81,16.89 4.65,18.74C4.65,18.74 4,17.28 5.4,13.89C6.3,11.68 9,8.36 10.15,7.28C10.15,7.28 9.12,6.14 7.82,5.35L7.77,5.32C7.14,4.95 6.46,4.66 5.8,4.62C5.13,4.67 4.71,5.16 4.71,5.16C3.03,6.95 2,9.35 2,12A10,10 0 0,0 12,22C14.93,22 17.57,20.74 19.4,18.73C19.4,18.73 19.19,17.4 17.84,15.5C17.53,15.07 16.37,13.69 15.73,12.96Z\";\nexport var mdiMicrosoftXboxController = \"M8.75,15.75C6.75,15.75 6,18 4,19C2,19 0.5,16 4.5,7.5H4.75L5.19,6.67C5.19,6.67 8,5 9.33,6.23H14.67C16,5 18.81,6.67 18.81,6.67L19.25,7.5H19.5C23.5,16 22,19 20,19C18,18 17.25,15.75 15.25,15.75H8.75M12,7A1,1 0 0,0 11,8A1,1 0 0,0 12,9A1,1 0 0,0 13,8A1,1 0 0,0 12,7Z\";\nexport var mdiMicrosoftXboxControllerBatteryAlert = \"M21,19V7H15V19H21M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8M17,9H19V14H17V9M17,15H19V17H17V15Z\";\nexport var mdiMicrosoftXboxControllerBatteryCharging = \"M20,5H21.67C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5M21,7H15V19H21V7M15.5,14L18.5,7.5V12H20.5L17.5,18.5V14H15.5M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8Z\";\nexport var mdiMicrosoftXboxControllerBatteryEmpty = \"M21,19V7H15V19H21M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8Z\";\nexport var mdiMicrosoftXboxControllerBatteryFull = \"M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8Z\";\nexport var mdiMicrosoftXboxControllerBatteryLow = \"M21,16V7H15V16H21M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8Z\";\nexport var mdiMicrosoftXboxControllerBatteryMedium = \"M21,12V7H15V12H21M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8Z\";\nexport var mdiMicrosoftXboxControllerBatteryUnknown = \"M21.67,5C22.4,5 23,5.6 23,6.33V19.67A1.33,1.33 0 0,1 21.67,21H14.33C13.6,21 13,20.4 13,19.67V16.75H7.75C5.75,16.75 5,19 3,20C1,20 -0.5,17 3.5,8.5H3.75L4.19,7.67C4.19,7.67 7,6 8.33,7.23H13V6.33A1.33,1.33 0 0,1 14.33,5H16V3H20V5H21.67M11,8A1,1 0 0,0 10,9A1,1 0 0,0 11,10A1,1 0 0,0 12,9A1,1 0 0,0 11,8M18.19,8C17.32,8 16.62,8.2 16.08,8.59C15.56,9 15.3,9.57 15.31,10.36L15.32,10.39H17.25C17.26,10.09 17.35,9.86 17.53,9.7C17.71,9.55 17.93,9.47 18.19,9.47C18.5,9.47 18.76,9.57 18.94,9.75C19.12,9.94 19.2,10.2 19.2,10.5C19.2,10.82 19.13,11.09 18.97,11.32C18.83,11.55 18.62,11.75 18.36,11.91C17.85,12.25 17.5,12.55 17.31,12.82C17.11,13.08 17,13.5 17,14H19C19,13.69 19.04,13.44 19.13,13.26C19.22,13.08 19.39,12.9 19.64,12.74C20.09,12.5 20.46,12.21 20.75,11.81C21.04,11.41 21.19,11 21.19,10.5C21.19,9.74 20.92,9.13 20.38,8.68C19.85,8.23 19.12,8 18.19,8M17,15V17H19V15H17Z\";\nexport var mdiMicrosoftXboxControllerMenu = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M6,7H18V9H6V7M6,11H18V13H6V11M6,15H18V17H6V15Z\";\nexport var mdiMicrosoftXboxControllerOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L12.5,15.75H8.75C6.75,15.75 6,18 4,19C2,19 0.5,16.04 4.42,7.69L2,5.27M9.33,6.23H14.67C16,5 18.81,6.67 18.81,6.67L19.25,7.5H19.5C23,15 22.28,18.2 20.69,18.87L7.62,5.8C8.25,5.73 8.87,5.81 9.33,6.23M12,7A1,1 0 0,0 11,8A1,1 0 0,0 12,9A1,1 0 0,0 13,8A1,1 0 0,0 12,7Z\";\nexport var mdiMicrosoftXboxControllerView = \"M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M6,7H15V9H8V14H6V7M9,10H18V17H9V10M11,12V15H16V12H11Z\";\nexport var mdiMicrowave = \"M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M4,7H16V17H4V7M19,7A1,1 0 0,1 20,8A1,1 0 0,1 19,9A1,1 0 0,1 18,8A1,1 0 0,1 19,7M13,9V15H15V9H13M19,11A1,1 0 0,1 20,12A1,1 0 0,1 19,13A1,1 0 0,1 18,12A1,1 0 0,1 19,11Z\";\nexport var mdiMicrowaveOff = \"M22.11 21.46L2.39 1.73L1.11 3L3.26 5.15C2.5 5.44 2 6.16 2 7V17C2 18.11 2.9 19 4 19H17.11L20.84 22.73L22.11 21.46M4 17V7H5.11L15.11 17H4M16 7V12.8L21.5 18.31C21.81 17.95 22 17.5 22 17V7C22 5.9 21.11 5 20 5H8.2L10.2 7H16M19 7C19.55 7 20 7.45 20 8S19.55 9 19 9 18 8.55 18 8 18.45 7 19 7M19 11C19.55 11 20 11.45 20 12S19.55 13 19 13 18 12.55 18 12 18.45 11 19 11M13 9.8V9H15V11.8L13 9.8Z\";\nexport var mdiMiddleware = \"M23 12L19 8V11H14.82C14.4 9.84 13.3 9 12 9S9.6 9.84 9.18 11H5L2 8V16L5 13H9.18C9.6 14.16 10.7 15 12 15S14.4 14.16 14.82 13H19V16L23 12Z\";\nexport var mdiMiddlewareOutline = \"M23 12L19 8V11H15.86C15.41 9.28 13.86 8 12 8S8.59 9.28 8.14 11H5L2 8V16L5 13H8.14C8.59 14.72 10.14 16 12 16S15.41 14.72 15.86 13H19V16L23 12M12 14C10.9 14 10 13.1 10 12C10 10.9 10.9 10 12 10S14 10.9 14 12C14 13.1 13.1 14 12 14Z\";\nexport var mdiMidi = \"M20.15 8.26H22V15.74H20.15M13 8.26H18.43C19 8.26 19.3 8.74 19.3 9.3V14.81C19.3 15.5 19 15.74 18.38 15.74H13V11H14.87V13.91H17.5V9.95H13M10.32 8.26H12.14V15.74H10.32M2 8.26H8.55C9.1 8.26 9.41 8.74 9.41 9.3V15.74H7.59V10.15H6.5V15.74H4.87V10.15H3.83V15.74H2Z\";\nexport var mdiMidiPort = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M20.18,12C20.18,8.18 17.55,4.96 14,4.07V6H10V4.07C6.45,4.96 3.82,8.18 3.82,12A8.18,8.18 0 0,0 12,20.18A8.18,8.18 0 0,0 20.18,12M7,10.64A1.36,1.36 0 0,1 8.36,12A1.36,1.36 0 0,1 7,13.36C6.25,13.36 5.64,12.75 5.64,12C5.64,11.25 6.25,10.64 7,10.64M17,10.64A1.36,1.36 0 0,1 18.36,12A1.36,1.36 0 0,1 17,13.36A1.36,1.36 0 0,1 15.64,12A1.36,1.36 0 0,1 17,10.64M8.36,14.27A1.37,1.37 0 0,1 9.73,15.64C9.73,16.39 9.12,17 8.36,17A1.36,1.36 0 0,1 7,15.64C7,14.88 7.61,14.27 8.36,14.27M15.64,14.27C16.39,14.27 17,14.88 17,15.64A1.36,1.36 0 0,1 15.64,17C14.88,17 14.27,16.39 14.27,15.64A1.37,1.37 0 0,1 15.64,14.27M12,15.64A1.36,1.36 0 0,1 13.36,17A1.36,1.36 0 0,1 12,18.36A1.36,1.36 0 0,1 10.64,17A1.36,1.36 0 0,1 12,15.64Z\";\nexport var mdiMine = \"M23,13V11H19.93C19.75,9.58 19.19,8.23 18.31,7.1L20.5,4.93L19.07,3.5L16.9,5.69C15.77,4.81 14.42,4.25 13,4.07V1H11V4.07C9.58,4.25 8.23,4.81 7.1,5.69L4.93,3.5L3.5,4.93L5.69,7.1C4.81,8.23 4.25,9.58 4.07,11H1V13H4.07C4.25,14.42 4.81,15.77 5.69,16.9L3.5,19.07L4.93,20.5L7.1,18.31C8.23,19.19 9.58,19.75 11,19.93V23H13V19.93C14.42,19.75 15.77,19.19 16.9,18.31L19.07,20.5L20.5,19.07L18.31,16.9C19.19,15.77 19.75,14.42 19.93,13H23M12,8A4,4 0 0,0 8,12H6A6,6 0 0,1 12,6V8Z\";\nexport var mdiMinecraft = \"M4,2H20A2,2 0 0,1 22,4V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M6,6V10H10V12H8V18H10V16H14V18H16V12H14V10H18V6H14V10H10V6H6Z\";\nexport var mdiMiniSd = \"M6,4A2,2 0 0,0 4,6V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18V12L18,10V6A2,2 0 0,0 16,4H6M7,6H9V10H7V6M10,6H12V10H10V6M13,6H15V10H13V6Z\";\nexport var mdiMinidisc = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H5M12,5C15.09,5 17.82,7.04 18.7,10H16A1,1 0 0,0 15,11V13A1,1 0 0,0 16,14H18.71C17.82,16.97 15.09,19 12,19A7,7 0 0,1 5,12A7,7 0 0,1 12,5M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiMinus = \"M19,13H5V11H19V13Z\";\nexport var mdiMinusBox = \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiMinusBoxMultiple = \"M19 11H9V9H19M20 2H8C6.9 2 6 2.9 6 4V16C6 17.11 6.9 18 8 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6Z\";\nexport var mdiMinusBoxMultipleOutline = \"M18 11H10V9H18M20 4V16H8V4H20M20 2H8C6.9 2 6 2.9 6 4V16C6 17.11 6.9 18 8 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6Z\";\nexport var mdiMinusBoxOutline = \"M19,19V5H5V19H19M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5C3,3.89 3.9,3 5,3H19M17,11V13H7V11H17Z\";\nexport var mdiMinusCircle = \"M17,13H7V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiMinusCircleMultiple = \"M2 12C2 9.21 3.64 6.8 6 5.68V3.5C2.5 4.76 0 8.09 0 12S2.5 19.24 6 20.5V18.32C3.64 17.2 2 14.79 2 12M15 3C10.04 3 6 7.04 6 12S10.04 21 15 21 24 16.96 24 12 19.96 3 15 3M20 13H10V11H20V13Z\";\nexport var mdiMinusCircleMultipleOutline = \"M11 11V13H19V11H11M2 12C2 9.21 3.64 6.8 6 5.68V3.5C2.5 4.76 0 8.09 0 12S2.5 19.24 6 20.5V18.32C3.64 17.2 2 14.79 2 12M15 3C10.04 3 6 7.04 6 12S10.04 21 15 21 24 16.96 24 12 19.96 3 15 3M15 19C11.14 19 8 15.86 8 12S11.14 5 15 5 22 8.14 22 12 18.86 19 15 19Z\";\nexport var mdiMinusCircleOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 17.5 6.5 22 12 22C14.3 22 16.4 21.2 18 19.9L20.8 22.7L22.1 21.5M7 13V11H9.1L11.1 13H7M14.2 11L6.7 3.5C8.3 2.6 10.1 2 12 2C17.5 2 22 6.5 22 12C22 13.9 21.4 15.7 20.5 17.3L16.2 13H17V11H14.2Z\";\nexport var mdiMinusCircleOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 17.5 6.5 22 12 22C14.3 22 16.4 21.2 18 19.9L20.8 22.7L22.1 21.5M12 20C7.6 20 4 16.4 4 12C4 10.3 4.6 8.7 5.5 7.4L9.1 11H7V13H11.1L16.6 18.5C15.3 19.4 13.7 20 12 20M8.2 5L6.7 3.5C8.3 2.6 10.1 2 12 2C17.5 2 22 6.5 22 12C22 13.9 21.4 15.7 20.5 17.3L19 15.8C19.6 14.7 20 13.4 20 12C20 7.6 16.4 4 12 4C10.6 4 9.3 4.4 8.2 5M16.2 13L14.2 11H17V13H16.2Z\";\nexport var mdiMinusCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7\";\nexport var mdiMinusNetwork = \"M16,11V9H8V11H16M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\";\nexport var mdiMinusNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M15,11V9H9V11H15\";\nexport var mdiMinusThick = \"M20 14H4V10H20\";\nexport var mdiMirror = \"M12 1C16.69 1 20.5 5.93 20.5 12C20.5 18.08 16.69 23 12 23C7.31 23 3.5 18.08 3.5 12C3.5 5.93 7.31 1 12 1M12 3C8.41 3 5.5 7.03 5.5 12C5.5 16.97 8.41 21 12 21C15.59 21 18.5 16.97 18.5 12C18.5 7.03 15.59 3 12 3M8.29 10.28L11.53 7.03L12.59 8.09L9.35 11.34L8.29 10.28M8.7 14.61L14.36 8.95L15.42 10L9.76 15.67L8.7 14.61Z\";\nexport var mdiMirrorRectangle = \"M8.29 10.28L11.53 7.03L12.59 8.09L9.35 11.34L8.29 10.28M8.7 14.61L14.36 8.95L15.42 10L9.76 15.67L8.7 14.61M18 3V21H6V3H18M20 1H4V23H20V1Z\";\nexport var mdiMirrorVariant = \"M8.29 10.28L11.53 7.03L12.59 8.09L9.35 11.34L8.29 10.28M8.7 14.61L14.36 8.95L15.42 10L9.76 15.67L8.7 14.61M14.17 3L18 6.83V17.17L14.17 21H9.83L6 17.17V6.83L9.83 3H14.17M15 1H9L4 6V18L9 23H15L20 18V6L15 1Z\";\nexport var mdiMixedMartialArts = \"M15,10V7H7V10H15M18,7C18.28,7 18.5,7.09 18.7,7.29C18.89,7.5 19,7.73 19,8V10.78C19,10.97 18.97,11.11 18.94,11.2L18.14,15.19C18,15.72 17.7,16 17.2,16H6.8C6.27,16 5.95,15.72 5.86,15.19L5.06,11.2C5.03,11.11 5,10.97 5,10.78V5C5,4.5 5.21,4 5.6,3.61C6,3.2 6.45,3 7,3H15C15.53,3 16,3.2 16.41,3.61C16.81,4 17,4.5 17,5V8C17,7.73 17.11,7.5 17.3,7.29C17.5,7.09 17.72,7 18,7M7,20V17H17V20C17,20.3 16.91,20.53 16.71,20.72C16.5,20.91 16.27,21 16,21H8C7.73,21 7.5,20.91 7.29,20.72C7.09,20.53 7,20.3 7,20Z\";\nexport var mdiMixedReality = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3M8.25,15H9.75L10.75,11.57V15H12.25V9H10L9,12.43L8,9H5.75V15H7.25V11.57L8.25,15M13.5,9V15H15V13H16.15L17,15H18.5L17.6,12.9C18.1,12.65 18.5,12.1 18.5,11.5V10.5C18.5,9.65 17.85,9 17,9H13.5M15,10.5H17V11.5H15V10.5Z\";\nexport var mdiMolecule = \"M7.27,10L9,7H14.42L15.58,5L15.5,4.5A1.5,1.5 0 0,1 17,3A1.5,1.5 0 0,1 18.5,4.5C18.5,5.21 18,5.81 17.33,5.96L16.37,7.63L17.73,10L18.59,8.5L18.5,8A1.5,1.5 0 0,1 20,6.5A1.5,1.5 0 0,1 21.5,8C21.5,8.71 21,9.3 20.35,9.46L18.89,12L20.62,15C21.39,15.07 22,15.71 22,16.5A1.5,1.5 0 0,1 20.5,18A1.5,1.5 0 0,1 19,16.5V16.24L17.73,14L16.37,16.37L17.33,18.04C18,18.19 18.5,18.79 18.5,19.5A1.5,1.5 0 0,1 17,21A1.5,1.5 0 0,1 15.5,19.5L15.58,19L14.42,17H10.58L9.42,19L9.5,19.5A1.5,1.5 0 0,1 8,21A1.5,1.5 0 0,1 6.5,19.5C6.5,18.79 7,18.19 7.67,18.04L8.63,16.37L4.38,9C3.61,8.93 3,8.29 3,7.5A1.5,1.5 0 0,1 4.5,6A1.5,1.5 0 0,1 6,7.5C6,7.59 6,7.68 6,7.76L7.27,10M10.15,9L8.42,12L10.15,15H14.85L16.58,12L14.85,9H10.15Z\";\nexport var mdiMoleculeCo = \"M8 7C6.9 7 6 7.9 6 9V15C6 16.11 6.9 17 8 17H11V15H8V9H11V7H8M14 7C12.9 7 12 7.9 12 9V15C12 16.11 12.9 17 14 17H16C17.11 17 18 16.11 18 15V9C18 7.9 17.11 7 16 7H14M14 9H16V15H14V9\";\nexport var mdiMoleculeCo2 = \"M5,7A2,2 0 0,0 3,9V15A2,2 0 0,0 5,17H8V15H5V9H8V7H5M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M16,10.5V12H19V13.5H17.5A1.5,1.5 0 0,0 16,15V18H20.5V16.5H17.5V15H19A1.5,1.5 0 0,0 20.5,13.5V12A1.5,1.5 0 0,0 19,10.5H16Z\";\nexport var mdiMonitor = \"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z\";\nexport var mdiMonitorAccount = \"M21 2C22.05 2 22.92 2.81 23 3.85L23 4V16C23 17.05 22.18 17.92 21.15 18L21 18H14V20H16V22H8V20H10V18H3C1.95 18 1.08 17.18 1 16.15L1 16V4C1 2.94 1.81 2.08 2.85 2L3 2H21M21 4H3V16H21V4M12 11C14.21 11 16 11.9 16 13V14H8V13C8 11.9 9.79 11 12 11M12 6C13.11 6 14 6.9 14 8S13.11 10 12 10 10 9.11 10 8 10.9 6 12 6Z\";\nexport var mdiMonitorArrowDown = \"M21 16H3V4H21M21 2H3C1.9 2 1 2.9 1 4V16C1 17.1 1.9 18 3 18H10V20H8V22H16V20H14V18H21C22.1 18 23 17.1 23 16V4C23 2.9 22.1 2 21 2M16 10H13V6H11V10H8L12 14L16 10\";\nexport var mdiMonitorArrowDownVariant = \"M17 14L22 9L20.6 7.6L18 10.2V3H16V10.2L13.4 7.6L12 9L17 14M23 14V16C23 17.1 22.1 18 21 18H14V20H16V22H8V20H10V18H3C1.9 18 1 17.1 1 16V4C1 2.9 1.9 2 3 2H12V4H3V16H21V14H23Z\";\nexport var mdiMonitorCellphone = \"M23,11H18A1,1 0 0,0 17,12V21A1,1 0 0,0 18,22H23A1,1 0 0,0 24,21V12A1,1 0 0,0 23,11M23,20H18V13H23V20M20,2H2C0.89,2 0,2.89 0,4V16A2,2 0 0,0 2,18H9V20H7V22H15V20H13V18H15V16H2V4H20V9H22V4C22,2.89 21.1,2 20,2Z\";\nexport var mdiMonitorCellphoneStar = \"M23,11H18A1,1 0 0,0 17,12V21A1,1 0 0,0 18,22H23A1,1 0 0,0 24,21V12A1,1 0 0,0 23,11M23,20H18V13H23V20M20,2H2C0.89,2 0,2.89 0,4V16A2,2 0 0,0 2,18H9V20H7V22H15V20H13V18H15V16H2V4H20V9H22V4C22,2.89 21.1,2 20,2M11.97,9L11,6L10.03,9H7L9.47,10.76L8.53,13.67L11,11.87L13.47,13.67L12.53,10.76L15,9H11.97Z\";\nexport var mdiMonitorDashboard = \"M21,16V4H3V16H21M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H14V20H16V22H8V20H10V18H3C1.89,18 1,17.1 1,16V4C1,2.89 1.89,2 3,2H21M5,6H14V11H5V6M15,6H19V8H15V6M19,9V14H15V9H19M5,12H9V14H5V12M10,12H14V14H10V12Z\";\nexport var mdiMonitorEdit = \"M21 2H3C1.9 2 1 2.9 1 4V16C1 17.11 1.9 18 3 18H10V20H8V22H16V20H14V18H21C22.11 18 23 17.11 23 16V4C23 2.9 22.11 2 21 2M21 16H3V4H21V16M15.84 8.2L14.83 9.21L12.76 7.18L13.77 6.16C13.97 5.95 14.31 5.94 14.55 6.16L15.84 7.41C16.05 7.62 16.06 7.96 15.84 8.2M8 11.91L12.17 7.72L14.24 9.8L10.08 14H8V11.91Z\";\nexport var mdiMonitorEye = \"M3 4V16H21V4H3M3 2H21C22.1 2 23 2.89 23 4V16C23 16.53 22.79 17.04 22.41 17.41C22.04 17.79 21.53 18 21 18H14V20H16V22H8V20H10V18H3C2.47 18 1.96 17.79 1.59 17.41C1.21 17.04 1 16.53 1 16V4C1 2.89 1.89 2 3 2M10.84 8.93C11.15 8.63 11.57 8.45 12 8.45C12.43 8.46 12.85 8.63 13.16 8.94C13.46 9.24 13.64 9.66 13.64 10.09C13.64 10.53 13.46 10.94 13.16 11.25C12.85 11.56 12.43 11.73 12 11.73C11.57 11.73 11.15 11.55 10.84 11.25C10.54 10.94 10.36 10.53 10.36 10.09C10.36 9.66 10.54 9.24 10.84 8.93M10.07 12C10.58 12.53 11.28 12.82 12 12.82C12.72 12.82 13.42 12.53 13.93 12C14.44 11.5 14.73 10.81 14.73 10.09C14.73 9.37 14.44 8.67 13.93 8.16C13.42 7.65 12.72 7.36 12 7.36C11.28 7.36 10.58 7.65 10.07 8.16C9.56 8.67 9.27 9.37 9.27 10.09C9.27 10.81 9.56 11.5 10.07 12M6 10.09C6.94 7.7 9.27 6 12 6C14.73 6 17.06 7.7 18 10.09C17.06 12.5 14.73 14.18 12 14.18C9.27 14.18 6.94 12.5 6 10.09Z\";\nexport var mdiMonitorLock = \"M20.5,13A2.5,2.5 0 0,1 23,15.5V16A1,1 0 0,1 24,17V21A1,1 0 0,1 23,22H18A1,1 0 0,1 17,21V17A1,1 0 0,1 18,16V15.5A2.5,2.5 0 0,1 20.5,13M20.5,14A1.5,1.5 0 0,0 19,15.5V16H22V15.5A1.5,1.5 0 0,0 20.5,14M20,4H2V16H15V18H13V20H15V22H7V20H9V18H2C0.89,18 0,17.1 0,16V4C0,2.89 0.89,2 2,2H20A2,2 0 0,1 22,4V11.53C21.41,11.19 20.73,11 20,11V4Z\";\nexport var mdiMonitorMultiple = \"M22,17V7H6V17H22M22,5A2,2 0 0,1 24,7V17C24,18.11 23.1,19 22,19H16V21H18V23H10V21H12V19H6C4.89,19 4,18.11 4,17V7A2,2 0 0,1 6,5H22M2,3V15H0V3A2,2 0 0,1 2,1H20V3H2Z\";\nexport var mdiMonitorOff = \"M14,18V20H16V22H8V20H10V18H3A2,2 0 0,1 1,16V4L0,3L1.41,1.58L22.16,22.34L20.75,23.75L15,18H14M3,16H13L3,6V16M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H20.66L18.66,16H21V4H6.66L4.66,2H21Z\";\nexport var mdiMonitorScreenshot = \"M9,6H5V10H7V8H9M19,10H17V12H15V14H19M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2\";\nexport var mdiMonitorShare = \"M23 4V16C23 17.11 22.11 18 21 18H15V16H21V4H3V16H9V18H3C1.9 18 1 17.11 1 16V4C1 2.89 1.89 2 3 2H21C22.1 2 23 2.89 23 4M13 13H16L12 9L8 13H11V20H8V22H16V20H13V13Z\";\nexport var mdiMonitorShimmer = \"M21 16H3V4H21M21 2H3C1.89 2 1 2.89 1 4V16C1 17.11 1.9 18 3 18H10V20H8V22H16V20H14V18H21C22.11 18 23 17.11 23 16V4C23 2.89 22.1 2 21 2M15 5.5L14.38 6.87L13 7.5L14.38 8.13L15 9.5L15.63 8.13L17 7.5L15.63 6.87L15 5.5M10.5 7.5L9.41 9.91L7 11L9.41 12.09L10.5 14.5L11.6 12.09L14 11L11.6 9.91L10.5 7.5\";\nexport var mdiMonitorSmall = \"M19 2H5C3.89 2 3 2.89 3 4V16C3 17.11 3.9 18 5 18H10V20H8V22H16V20H14V18H19C20.11 18 21 17.11 21 16V4C21 2.89 20.1 2 19 2M19 16H5V4H19V16Z\";\nexport var mdiMonitorSpeaker = \"M3 2C1.9 2 1 2.9 1 4V16C1 17.1 1.9 18 3 18H10V20H8V22H12V16H3V4H21V7H23V4C23 2.9 22.1 2 21 2H3M21 9H16C14.9 9 14 9.9 14 11V20C14 21.1 14.9 22 16 22H21C22.1 22 23 21.1 23 20V11C23 9.9 22.1 9 21 9M18.5 10.5C19.3 10.5 20 11.2 20 12S19.3 13.5 18.5 13.5 17 12.8 17 12 17.7 10.5 18.5 10.5M18.5 20.5C16.8 20.5 15.5 19.2 15.5 17.5C15.5 15.9 16.8 14.5 18.4 14.5H18.5C20.2 14.5 21.5 15.8 21.5 17.5S20.2 20.5 18.5 20.5M18.5 16C17.7 16 17 16.7 17 17.5S17.7 19 18.5 19 20 18.3 20 17.5 19.3 16 18.5 16Z\";\nexport var mdiMonitorSpeakerOff = \"M2.4 1.7L1.1 3L1.2 3.1C1.1 3.4 1 3.7 1 4V16C1 17.1 1.9 18 3 18H10V20H8V22H12V16H3V4.9L14 15.9V20C14 21.1 14.9 22 16 22H20.1L20.8 22.7C20.8 22.7 22 21.7 22.2 21.5L2.4 1.7M18.5 20.5C16.8 20.5 15.5 19.2 15.5 17.5V17.4L18.6 20.5H18.5M23 4V7H21V4H7.2L5.2 2H21C22.1 2 23 2.9 23 4M21 9H16C15 9 14.1 9.8 14 10.8L17.8 14.6C18 14.5 18.2 14.5 18.5 14.5H18.6C20.3 14.5 21.6 15.8 21.6 17.5C21.6 17.7 21.6 18 21.5 18.2L23.1 19.8V11C23 9.9 22.1 9 21 9M18.5 13.5C17.7 13.5 17 12.8 17 12S17.7 10.5 18.5 10.5 20 11.2 20 12 19.3 13.5 18.5 13.5Z\";\nexport var mdiMonitorStar = \"M21,16V4H3V16H21M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H14V20H16V22H8V20H10V18H3C1.89,18 1,17.1 1,16V4C1,2.89 1.89,2 3,2H21M12.97,9H16L13.53,10.76L14.47,13.67L12,11.87L9.53,13.67L10.47,10.76L8,9H11.03L12,6L12.97,9Z\";\nexport var mdiMonitorVertical = \"M16 2H8C6.89 2 6 2.89 6 4V16C6 17.11 6.9 18 8 18H10V20H8V22H16V20H14V18H16C17.11 18 18 17.11 18 16V4C18 2.89 17.1 2 16 2M16 16H8V4H16V16Z\";\nexport var mdiMoonFirstQuarter = \"M12 2V22A10 10 0 0 0 12 2Z\";\nexport var mdiMoonFull = \"M12 2A10 10 0 1 1 2 12A10 10 0 0 1 12 2Z\";\nexport var mdiMoonLastQuarter = \"M12 2A10 10 0 0 0 12 22Z\";\nexport var mdiMoonNew = \"M12 20A8 8 0 1 1 20 12A8 8 0 0 1 12 20M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2Z\";\nexport var mdiMoonWaningCrescent = \"M2 12A10 10 0 0 0 15 21.54A10 10 0 0 1 15 2.46A10 10 0 0 0 2 12Z\";\nexport var mdiMoonWaningGibbous = \"M18 12C18 7.5 16.08 3.26 12 2A10 10 0 0 0 12 22C16.08 20.74 18 16.5 18 12Z\";\nexport var mdiMoonWaxingCrescent = \"M12 2A9.91 9.91 0 0 0 9 2.46A10 10 0 0 1 9 21.54A10 10 0 1 0 12 2Z\";\nexport var mdiMoonWaxingGibbous = \"M6 12C6 7.5 7.93 3.26 12 2A10 10 0 0 1 12 22C7.93 20.74 6 16.5 6 12Z\";\nexport var mdiMoped = \"M19 15C19.55 15 20 15.45 20 16C20 16.55 19.55 17 19 17S18 16.55 18 16C18 15.45 18.45 15 19 15M19 13C17.34 13 16 14.34 16 16S17.34 19 19 19 22 17.66 22 16 20.66 13 19 13M10 6H5V8H10V6M17 5H14V7H17V9.65L13.5 14H10V9H6C3.79 9 2 10.79 2 13V16H4C4 17.66 5.34 19 7 19S10 17.66 10 16H14.5L19 10.35V7C19 5.9 18.11 5 17 5M7 17C6.45 17 6 16.55 6 16H8C8 16.55 7.55 17 7 17Z\";\nexport var mdiMopedElectric = \"M19 5C19 3.9 18.1 3 17 3H14V5H17V7.65L13.5 12H10V7H6C3.79 7 2 8.79 2 11V14H4C4 15.66 5.34 17 7 17S10 15.66 10 14H14.5L19 8.35V5M7 15C6.45 15 6 14.55 6 14H8C8 14.55 7.55 15 7 15M5 4H10V6H5V4M19 11C17.34 11 16 12.34 16 14S17.34 17 19 17 22 15.66 22 14 20.66 11 19 11M19 15C18.45 15 18 14.55 18 14S18.45 13 19 13 20 13.45 20 14 19.55 15 19 15M7 20H11V18L17 21H13V23L7 20Z\";\nexport var mdiMopedElectricOutline = \"M19 5C19 3.9 18.1 3 17 3H14V5H17V7.65L13.5 12H10V7H6C3.79 7 2 8.79 2 11V14H4C4 15.66 5.34 17 7 17S10 15.66 10 14H14.5L19 8.35V5M4 12V11C4 9.9 4.9 9 6 9H8V12H4M7 15C6.45 15 6 14.55 6 14H8C8 14.55 7.55 15 7 15M5 4H10V6H5V4M19 11C17.34 11 16 12.34 16 14S17.34 17 19 17 22 15.66 22 14 20.66 11 19 11M19 15C18.45 15 18 14.55 18 14S18.45 13 19 13 20 13.45 20 14 19.55 15 19 15M7 20H11V18L17 21H13V23L7 20Z\";\nexport var mdiMopedOutline = \"M19 7C19 5.9 18.11 5 17 5H14V7H17V9.65L13.5 14H10V9H6C3.79 9 2 10.79 2 13V16H4C4 17.66 5.34 19 7 19S10 17.66 10 16H14.5L19 10.35V7M7 17C6.45 17 6 16.55 6 16H8C8 16.55 7.55 17 7 17M8 14H4V13C4 11.9 4.9 11 6 11H8V14M19 13C17.34 13 16 14.34 16 16S17.34 19 19 19 22 17.66 22 16 20.66 13 19 13M19 17C18.45 17 18 16.55 18 16S18.45 15 19 15 20 15.45 20 16 19.55 17 19 17M10 8H5V6H10V8Z\";\nexport var mdiMore = \"M19,13.5A1.5,1.5 0 0,1 17.5,12A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 20.5,12A1.5,1.5 0 0,1 19,13.5M14,13.5A1.5,1.5 0 0,1 12.5,12A1.5,1.5 0 0,1 14,10.5A1.5,1.5 0 0,1 15.5,12A1.5,1.5 0 0,1 14,13.5M9,13.5A1.5,1.5 0 0,1 7.5,12A1.5,1.5 0 0,1 9,10.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 9,13.5M22,3H7C6.31,3 5.77,3.35 5.41,3.88L0,12L5.41,20.11C5.77,20.64 6.37,21 7.06,21H22A2,2 0 0,0 24,19V5C24,3.89 23.1,3 22,3Z\";\nexport var mdiMortarPestle = \"M21 7L19 13L21 19V21H3V19L5 13L3 7V5H15.7L17.2 1L19.5 1.8L18.3 5H21V7Z\";\nexport var mdiMortarPestlePlus = \"M16,14H13V17H11V14H8V12H11V9H13V12H16M21,5H18.35L19.5,1.85L17.15,1L15.69,5H3V7L5,13L3,19V21H21V19L19,13L21,7V5Z\";\nexport var mdiMosque = \"M7 8H17C17.3 8 17.6 8.1 17.8 8.1C17.9 7.8 18 7.4 18 7.1C18 5.8 17.4 4.6 16.3 3.9L12 1L7.7 3.8C6.7 4.6 6 5.8 6 7.1C6 7.5 6.1 7.8 6.2 8.1C6.4 8.1 6.7 8 7 8M24 7C24 5.9 22 4 22 4S20 5.9 20 7C20 7.7 20.4 8.4 21 8.7V13H19V11C19 9.9 18.1 9 17 9H7C5.9 9 5 9.9 5 11V13H3V8.7C3.6 8.4 4 7.7 4 7C4 5.9 2 4 2 4S0 5.9 0 7C0 7.7 .4 8.4 1 8.7V21H10V17C10 15.9 10.9 15 12 15S14 15.9 14 17V21H23V8.7C23.6 8.4 24 7.7 24 7Z\";\nexport var mdiMosqueOutline = \"M24 7C24 5.9 22 4 22 4S20 5.9 20 7C20 7.7 20.4 8.4 21 8.7V13H19V11C19 10.1 18.3 9.3 17.5 9.1C17.8 8.5 18 7.9 18 7.1C18 5.8 17.4 4.6 16.3 3.9L12 1L7.7 3.8C6.7 4.6 6 5.8 6 7.1C6 7.8 6.2 8.5 6.6 9.1C5.7 9.3 5 10.1 5 11V13H3V8.7C3.6 8.4 4 7.7 4 7C4 5.9 2 4 2 4S0 5.9 0 7C0 7.7 .4 8.4 1 8.7V21H11V17C11 16.5 11.4 16 12 16S13 16.5 13 17V21H23V8.7C23.6 8.4 24 7.7 24 7M8.9 5.5L12 3.4L15.1 5.5C15.7 5.9 16 6.4 16 7.1C16 8.1 15.1 9 14.1 9H9.9C8.9 9 8 8.1 8 7.1C8 6.4 8.3 5.9 8.9 5.5M21 19H15V17C15 15.4 13.6 14 12 14S9 15.4 9 17V19H3V15H7V11H17V15H21V19Z\";\nexport var mdiMotherHeart = \"M12 2C13.66 2 15 3.34 15 5S13.66 8 12 8 9 6.66 9 5 10.34 2 12 2M20 18L18 12.56C17.65 11.57 17.34 10.71 16 10C14.63 9.3 13.63 9 12 9C10.39 9 9.39 9.3 8 10C6.68 10.71 6.37 11.57 6 12.56L4 18C3.77 19.13 6.38 20.44 8.13 21.19C9.34 21.72 10.64 22 12 22C13.38 22 14.67 21.72 15.89 21.19C17.64 20.44 20.25 19.13 20 18M15.42 17.5L12 21L8.58 17.5C8.22 17.12 8 16.61 8 16.05C8 14.92 8.9 14 10 14C10.55 14 11.06 14.23 11.42 14.61L12 15.2L12.58 14.6C12.94 14.23 13.45 14 14 14C15.11 14 16 14.92 16 16.05C16 16.61 15.78 17.13 15.42 17.5Z\";\nexport var mdiMotherNurse = \"M12,2A3,3 0 0,1 15,5A3,3 0 0,1 12,8A3,3 0 0,1 9,5A3,3 0 0,1 12,2M20,18L18,12.56C17.65,11.57 17.34,10.71 16,10C14.62,9.3 13.62,9 12,9C10.37,9 9.38,9.3 8,10C6.66,10.71 6.35,11.57 6,12.56L4,18C3.68,19.35 6.36,20.44 8.11,21.19V19C8.11,18.05 8.97,17.38 10.69,16.97C10.85,16.93 11,16.91 11.12,16.89C10.58,16.07 10.36,15.34 10.34,15.28L12.11,14.68C12.12,14.7 12.63,16.27 13.84,17.06C14.05,17.13 14.26,17.21 14.46,17.3C15.23,17.64 15.69,18.08 15.84,18.61C14.5,19.14 13.22,19.41 12,19.41L11,19.31V21.94L12,22C13.37,22 14.67,21.72 15.89,21.19C17.64,20.44 20.25,19.13 20,18M15.5,17A1.5,1.5 0 0,1 14,15.5A1.5,1.5 0 0,1 15.5,14A1.5,1.5 0 0,1 17,15.5A1.5,1.5 0 0,1 15.5,17Z\";\nexport var mdiMotion = \"M7 13H3C2.45 13 2 12.55 2 12S2.45 11 3 11H7C7.55 11 8 11.45 8 12S7.55 13 7 13M6 8C6 7.45 5.55 7 5 7H4C3.45 7 3 7.45 3 8S3.45 9 4 9H5C5.55 9 6 8.55 6 8M22 12C22 14.76 19.76 17 17 17H4C3.45 17 3 16.55 3 16S3.45 15 4 15H13C12.58 14.42 12.25 13.74 12.1 13H10C9.45 13 9 12.55 9 12S9.45 11 10 11H12.1C12.25 10.26 12.58 9.58 13 9H8C7.45 9 7 8.55 7 8S7.45 7 8 7H17C19.76 7 22 9.24 22 12Z\";\nexport var mdiMotionOutline = \"M7 13H3C2.45 13 2 12.55 2 12S2.45 11 3 11H7C7.55 11 8 11.45 8 12S7.55 13 7 13M6 8C6 7.45 5.55 7 5 7H4C3.45 7 3 7.45 3 8S3.45 9 4 9H5C5.55 9 6 8.55 6 8M22 12C22 14.76 19.76 17 17 17H4C3.45 17 3 16.55 3 16S3.45 15 4 15H13C12.58 14.42 12.25 13.74 12.1 13H10C9.45 13 9 12.55 9 12S9.45 11 10 11H12.1C12.25 10.26 12.58 9.58 13 9H8C7.45 9 7 8.55 7 8S7.45 7 8 7H17C19.76 7 22 9.24 22 12M20 12C20 10.35 18.65 9 17 9S14 10.35 14 12C14 13.65 15.35 15 17 15S20 13.65 20 12Z\";\nexport var mdiMotionPause = \"M22 12C22 6.46 17.54 2 12 2C10.83 2 9.7 2.19 8.62 2.56L9.32 4.5C10.17 4.16 11.06 3.97 12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 11.06 4.16 10.12 4.5 9.28L2.56 8.62C2.19 9.7 2 10.83 2 12C2 17.54 6.46 22 12 22C17.54 22 22 17.54 22 12M5.47 3.97C6.32 3.97 7 4.68 7 5.47C7 6.32 6.32 7 5.47 7C4.68 7 3.97 6.32 3.97 5.47C3.97 4.68 4.68 3.97 5.47 3.97M18 12C18 8.67 15.33 6 12 6C8.67 6 6 8.67 6 12C6 15.33 8.67 18 12 18C15.33 18 18 15.33 18 12M11 9V15H9V9M15 9V15H13V9\";\nexport var mdiMotionPauseOutline = \"M22 12C22 6.46 17.54 2 12 2C10.83 2 9.7 2.19 8.62 2.56L9.32 4.5C10.17 4.16 11.06 3.97 12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 11.06 4.16 10.12 4.5 9.28L2.56 8.62C2.19 9.7 2 10.83 2 12C2 17.54 6.46 22 12 22C17.54 22 22 17.54 22 12M5.47 7C4.68 7 3.97 6.32 3.97 5.47C3.97 4.68 4.68 3.97 5.47 3.97C6.32 3.97 7 4.68 7 5.47C7 6.32 6.32 7 5.47 7M9 9H11V15H9M13 9H15V15H13\";\nexport var mdiMotionPlay = \"M22 12C22 6.46 17.54 2 12 2C10.83 2 9.7 2.19 8.62 2.56L9.32 4.5C10.17 4.16 11.06 3.97 12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 11.06 4.16 10.12 4.5 9.28L2.56 8.62C2.19 9.7 2 10.83 2 12C2 17.54 6.46 22 12 22C17.54 22 22 17.54 22 12M5.47 3.97C6.32 3.97 7 4.68 7 5.47C7 6.32 6.32 7 5.47 7C4.68 7 3.97 6.32 3.97 5.47C3.97 4.68 4.68 3.97 5.47 3.97M18 12C18 8.67 15.33 6 12 6C8.67 6 6 8.67 6 12C6 15.33 8.67 18 12 18C15.33 18 18 15.33 18 12M15 12L10 15V9\";\nexport var mdiMotionPlayOutline = \"M10 16.5L16 12L10 7.5M22 12C22 6.46 17.54 2 12 2C10.83 2 9.7 2.19 8.62 2.56L9.32 4.5C10.17 4.16 11.06 3.97 12 3.97C16.41 3.97 20.03 7.59 20.03 12C20.03 16.41 16.41 20.03 12 20.03C7.59 20.03 3.97 16.41 3.97 12C3.97 11.06 4.16 10.12 4.5 9.28L2.56 8.62C2.19 9.7 2 10.83 2 12C2 17.54 6.46 22 12 22C17.54 22 22 17.54 22 12M5.47 3.97C6.32 3.97 7 4.68 7 5.47C7 6.32 6.32 7 5.47 7C4.68 7 3.97 6.32 3.97 5.47C3.97 4.68 4.68 3.97 5.47 3.97Z\";\nexport var mdiMotionSensor = \"M10,0.2C9,0.2 8.2,1 8.2,2C8.2,3 9,3.8 10,3.8C11,3.8 11.8,3 11.8,2C11.8,1 11,0.2 10,0.2M15.67,1A7.33,7.33 0 0,0 23,8.33V7A6,6 0 0,1 17,1H15.67M18.33,1C18.33,3.58 20.42,5.67 23,5.67V4.33C21.16,4.33 19.67,2.84 19.67,1H18.33M21,1A2,2 0 0,0 23,3V1H21M7.92,4.03C7.75,4.03 7.58,4.06 7.42,4.11L2,5.8V11H3.8V7.33L5.91,6.67L2,22H3.8L6.67,13.89L9,17V22H10.8V15.59L8.31,11.05L9.04,8.18L10.12,10H15V8.2H11.38L9.38,4.87C9.08,4.37 8.54,4.03 7.92,4.03Z\";\nexport var mdiMotionSensorOff = \"M11.4 8.2H15V10H13.2L11.4 8.2M19.67 1H18.33C18.33 3.58 20.42 5.67 23 5.67V4.33C21.16 4.33 19.67 2.84 19.67 1M21 1C21 2.11 21.9 3 23 3V1H21M17 1H15.67C15.67 5.05 18.95 8.33 23 8.33V7C19.69 7 17 4.31 17 1M10 3.8C11 3.8 11.8 3 11.8 2S11 .2 10 .2 8.2 1 8.2 2 9 3.8 10 3.8M2.39 1.73L1.11 3L3.46 5.35L2 5.8V11H3.8V7.33L5.05 6.94L5.68 7.57L2 22H3.8L6.67 13.89L9 17V22H10.8V15.59L8.31 11.05L8.5 10.37L20.84 22.73L22.11 21.46L2.39 1.73M9.38 4.87C9.08 4.37 8.54 4.03 7.92 4.03C7.75 4.03 7.58 4.06 7.42 4.11L7.34 4.14L11.35 8.15L9.38 4.87Z\";\nexport var mdiMotorbike = \"M17.42,10L13.41,6H9V8H12.59L14.59,10H6.5C4,10 2,12 2,14.5C2,17 4,19 6.5,19C8.72,19 10.56,17.38 10.92,15.27L13.04,14C13,14.17 13,14.33 13,14.5C13,17 15,19 17.5,19C20,19 22,17 22,14.5C22,12 20,10 17.5,10M8.84,15.26C8.5,16.27 7.58,17 6.47,17C5.09,17 3.97,15.88 3.97,14.5C3.97,13.12 5.09,12 6.47,12C7.59,12 8.5,12.74 8.84,13.75H6V15.25L8.84,15.26M17.47,17C16.09,17 14.97,15.88 14.97,14.5C14.97,13.12 16.09,12 17.47,12A2.5,2.5 0 0,1 19.97,14.5A2.5,2.5 0 0,1 17.47,17Z\";\nexport var mdiMotorbikeElectric = \"M17.42 8L13.41 4H9V6H12.59L14.59 8H6.5C4 8 2 10 2 12.5S4 17 6.5 17C8.72 17 10.56 15.38 10.92 13.27L13.04 12C13 12.17 13 12.33 13 12.5C13 15 15 17 17.5 17S22 15 22 12.5 20 8 17.5 8M8.84 13.26C8.5 14.27 7.58 15 6.47 15C5.09 15 3.97 13.88 3.97 12.5S5.09 10 6.47 10C7.59 10 8.5 10.74 8.84 11.75H6V13.25L8.84 13.26M17.47 15C16.09 15 14.97 13.88 14.97 12.5S16.09 10 17.47 10C18.85 10 19.97 11.12 19.97 12.5S18.85 15 17.47 15M11 20H7L13 23V21H17L11 18V20Z\";\nexport var mdiMotorbikeOff = \"M22.1 21.5L2.4 1.7L1.1 3L8.1 10H6.5C4 10 2 12 2 14.5S4 19 6.5 19C8.7 19 10.6 17.4 10.9 15.3L12.4 14.4L13 15C13.2 17.1 14.9 18.8 17 19L20.8 22.8L22.1 21.5M8.8 15.3C8.5 16.3 7.5 17 6.4 17C5.1 17 4 15.9 4 14.5S5.1 12 6.5 12C7.6 12 8.5 12.7 8.9 13.8H6V15.3H8.8M11.2 8L9.2 6H13.4L17.4 10H17.5C20 10 22 12 22 14.5C22 15.7 21.5 16.8 20.8 17.6L19.4 16.2C19.8 15.8 20 15.2 20 14.6C20 13.2 18.9 12.1 17.5 12.1C16.9 12.1 16.3 12.3 15.9 12.7L13.2 10H14.6L12.6 8H11.2Z\";\nexport var mdiMouse = \"M11,1.07C7.05,1.56 4,4.92 4,9H11M4,15A8,8 0 0,0 12,23A8,8 0 0,0 20,15V11H4M13,1.07V9H20C20,4.92 16.94,1.56 13,1.07Z\";\nexport var mdiMouseBluetooth = \"M20,7H20.5L23.35,9.85L21.21,12L23.35,14.14L20.5,17H20V13.21L17.71,15.5L17,14.79L19.79,12L17,9.21L17.71,8.5L20,10.79V7M21,8.91V10.79L21.94,9.85L21,8.91M21,13.21V15.08L21.94,14.14L21,13.21M15,9V10H9V2.07C12.39,2.56 15,5.47 15,9M1,10V9C1,5.47 3.61,2.56 7,2.07V10H1M15,15A7,7 0 0,1 8,22A7,7 0 0,1 1,15V12H15V15Z\";\nexport var mdiMouseLeftClick = \"M13 9V1.07C16.94 1.56 20 4.92 20 9H13M6.34 20.66C4.84 19.16 4 17.12 4 15V11H20V15C20 17.12 19.16 19.16 17.66 20.66C16.16 22.16 14.12 23 12 23C9.88 23 7.84 22.16 6.34 20.66M11 9V1.07C10.3 1.16 9.63 1.33 9 1.59C6.67 2.53 4.89 4.53 4.25 7C4.09 7.64 4 8.31 4 9H11M6.34 7C6.82 5.65 7.78 4.5 9 3.81V7H6.34Z\";\nexport var mdiMouseLeftClickOutline = \"M13 9V1.07C13.7 1.16 14.37 1.33 15 1.59C17.33 2.53 19.11 4.53 19.75 7C19.91 7.64 20 8.31 20 9H13M17.66 7C17.18 5.65 16.23 4.5 15 3.81V7H17.66M6 15V13H18V15C18 16.59 17.37 18.12 16.24 19.24C15.12 20.37 13.59 21 12 21C10.41 21 8.88 20.37 7.76 19.24C6.63 18.12 6 16.59 6 15M4 15C4 17.12 4.84 19.16 6.34 20.66C7.84 22.16 9.88 23 12 23C14.12 23 16.16 22.16 17.66 20.66C19.16 19.16 20 17.12 20 15V11H4V15M11 9V1.07C7.06 1.56 4 4.92 4 9H11Z\";\nexport var mdiMouseMoveDown = \"M7 9H2C2 6.04 4.17 3.57 7 3.09V9M20 7H18V13H15L19 17L23 13H20V7M9 3.09V9H14C14 6.04 11.83 3.57 9 3.09M2 15C2 18.3 4.7 21 8 21S14 18.3 14 15V11H2V15Z\";\nexport var mdiMouseMoveUp = \"M7 9H2C2 6.04 4.17 3.57 7 3.09V9M18 17H20V11H23L19 7L15 11H18V17M9 3.09V9H14C14 6.04 11.83 3.57 9 3.09M2 15C2 18.3 4.7 21 8 21S14 18.3 14 15V11H2V15Z\";\nexport var mdiMouseMoveVertical = \"M20 6H23L19 2L15 6H18V18H15L19 22L23 18H20V6M9 3.09C11.83 3.57 14 6.04 14 9H9V3.09M14 11V15C14 18.3 11.3 21 8 21S2 18.3 2 15V11H14M7 9H2C2 6.04 4.17 3.57 7 3.09V9Z\";\nexport var mdiMouseOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L17.5,20.79C16.08,22.16 14.14,23 12,23A8,8 0 0,1 4,15V11H7.73L5.73,9H4C4,8.46 4.05,7.93 4.15,7.42L2,5.27M11,1.07V9H10.82L5.79,3.96C7.05,2.4 8.9,1.33 11,1.07M20,11V15C20,15.95 19.83,16.86 19.53,17.71L12.82,11H20M13,1.07C16.94,1.56 20,4.92 20,9H13V1.07Z\";\nexport var mdiMouseOutline = \"M13 9V1.07C13.7 1.16 14.37 1.33 15 1.59C17.33 2.53 19.11 4.53 19.75 7C19.91 7.64 20 8.31 20 9H13M17.66 7C17.18 5.65 16.23 4.5 15 3.81V7H17.66M11 9V1.07C10.3 1.16 9.63 1.33 9 1.59C6.67 2.53 4.89 4.53 4.25 7C4.09 7.64 4 8.31 4 9H11M6.34 7C6.82 5.65 7.78 4.5 9 3.81V7H6.34M6 15V13H18V15C18 16.59 17.37 18.12 16.24 19.24C15.12 20.37 13.59 21 12 21C10.41 21 8.88 20.37 7.76 19.24C6.63 18.12 6 16.59 6 15M4 15C4 17.12 4.84 19.16 6.34 20.66C7.84 22.16 9.88 23 12 23C14.12 23 16.16 22.16 17.66 20.66C19.16 19.16 20 17.12 20 15V11H4V15Z\";\nexport var mdiMouseRightClick = \"M13 9V1.07C13.7 1.16 14.37 1.33 15 1.59C17.33 2.53 19.11 4.53 19.75 7C19.91 7.64 20 8.31 20 9H13M17.66 7C17.18 5.65 16.23 4.5 15 3.81V7H17.66M11 9V1.07C7.06 1.56 4 4.92 4 9H11M6.34 20.66C4.84 19.16 4 17.12 4 15V11H20V15C20 17.12 19.16 19.16 17.66 20.66C16.16 22.16 14.12 23 12 23C9.88 23 7.84 22.16 6.34 20.66Z\";\nexport var mdiMouseRightClickOutline = \"M13 9V1.07C16.94 1.56 20 4.92 20 9H13M11 9V1.07C10.3 1.16 9.63 1.33 9 1.59C6.67 2.53 4.89 4.53 4.25 7C4.09 7.64 4 8.31 4 9H11M6.34 7C6.82 5.65 7.78 4.5 9 3.81V7H6.34M6 15V13H18V15C18 16.59 17.37 18.12 16.24 19.24C15.12 20.37 13.59 21 12 21C10.41 21 8.88 20.37 7.76 19.24C6.63 18.12 6 16.59 6 15M4 15C4 17.12 4.84 19.16 6.34 20.66C7.84 22.16 9.88 23 12 23C14.12 23 16.16 22.16 17.66 20.66C19.16 19.16 20 17.12 20 15V11H4V15Z\";\nexport var mdiMouseScrollWheel = \"M11 1.07C7.05 1.56 4 4.92 4 9H11V7.73C10.4 7.39 10 6.74 10 6V4C10 3.26 10.4 2.61 11 2.27V1.07M13 9V7.73C13.6 7.39 14 6.74 14 6V4C14 3.26 13.6 2.61 13 2.27V1.07C16.94 1.56 20 4.92 20 9H13M4 15C4 17.12 4.84 19.16 6.34 20.66C7.84 22.16 9.88 23 12 23C14.12 23 16.16 22.16 17.66 20.66C19.16 19.16 20 17.12 20 15V11H4V15M13 6V4C13 3.45 12.55 3 12 3C11.45 3 11 3.45 11 4V6C11 6.55 11.45 7 12 7C12.55 7 13 6.55 13 6Z\";\nexport var mdiMouseVariant = \"M14,7H10V2.1C12.28,2.56 14,4.58 14,7M4,7C4,4.58 5.72,2.56 8,2.1V7H4M14,12C14,14.42 12.28,16.44 10,16.9V18A3,3 0 0,0 13,21A3,3 0 0,0 16,18V13A4,4 0 0,1 20,9H22L21,10L22,11H20A2,2 0 0,0 18,13H18V18A5,5 0 0,1 13,23A5,5 0 0,1 8,18V16.9C5.72,16.44 4,14.42 4,12V9H14V12Z\";\nexport var mdiMouseVariantOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L17.29,20.56C16.42,22 14.82,23 13,23A5,5 0 0,1 8,18V16.9C5.72,16.44 4,14.42 4,12V9H5.73L2,5.27M14,7H10V2.1C12.28,2.56 14,4.58 14,7M8,2.1V6.18L5.38,3.55C6.07,2.83 7,2.31 8,2.1M14,12V12.17L10.82,9H14V12M10,16.9V18A3,3 0 0,0 13,21C14.28,21 15.37,20.2 15.8,19.07L12.4,15.67C11.74,16.28 10.92,16.71 10,16.9M16,13A4,4 0 0,1 20,9H22L21,10L22,11H20A2,2 0 0,0 18,13V16.18L16,14.18V13Z\";\nexport var mdiMoveResize = \"M9,1V2H10V5H9V6H12V5H11V2H12V1M9,7C7.89,7 7,7.89 7,9V21C7,22.11 7.89,23 9,23H21C22.11,23 23,22.11 23,21V9C23,7.89 22.11,7 21,7M1,9V12H2V11H5V12H6V9H5V10H2V9M9,9H21V21H9M14,10V11H15V16H11V15H10V18H11V17H15V19H14V20H17V19H16V17H19V18H20V15H19V16H16V11H17V10\";\nexport var mdiMoveResizeVariant = \"M1.88,0.46L0.46,1.88L5.59,7H2V9H9V2H7V5.59M11,7V9H21V15H23V9A2,2 0 0,0 21,7M7,11V21A2,2 0 0,0 9,23H15V21H9V11M15.88,14.46L14.46,15.88L19.6,21H17V23H23V17H21V19.59\";\nexport var mdiMovie = \"M18,4L20,8H17L15,4H13L15,8H12L10,4H8L10,8H7L5,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V4H18Z\";\nexport var mdiMovieCheck = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiMovieCheckOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiMovieCog = \"M12 19C12 19.34 12.03 19.67 12.08 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V12.68C21.09 12.25 20.08 12 19 12C15.13 12 12 15.13 12 19M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiMovieCogOutline = \"M12 19C12 19.34 12.03 19.67 12.08 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V12.68C21.38 12.39 20.71 12.18 20 12.08V10H5.76L4 6.47V18H12.08C12.03 18.33 12 18.66 12 19M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiMovieEdit = \"M21.04 11.13C20.9 11.13 20.76 11.19 20.65 11.3L19.65 12.3L21.7 14.35L22.7 13.35C22.92 13.14 22.92 12.79 22.7 12.58L21.42 11.3C21.31 11.19 21.18 11.13 21.04 11.13M19.07 12.88L13 18.94V21H15.06L21.12 14.93L19.07 12.88M11 20H3C1.9 20 1 19.11 1 18V6C1 4.89 1.9 4 3 4H4L6 8H9L7 4H9L11 8H14L12 4H14L16 8H19L17 4H21V8.12L11 18.11V20Z\";\nexport var mdiMovieEditOutline = \"M21 4V8.12L19.12 10H4.76L3 6.47V18H11V20H3C1.9 20 1 19.11 1 18V6C1 4.89 1.9 4 3 4H4L6 8H9L7 4H9L11 8H14L12 4H14L16 8H19L17 4H21M21.42 12.3L22.7 13.58C22.92 13.79 22.92 14.14 22.7 14.35L21.7 15.35L19.65 13.3L20.65 12.3C20.76 12.19 20.9 12.13 21.04 12.13C21.18 12.13 21.31 12.19 21.42 12.3M21.12 15.93L15.06 22H13V19.94L19.07 13.88L21.12 15.93Z\";\nexport var mdiMovieFilter = \"M18 4L20 7H17L15 4H13L15 7H12L10 4H8L10 7H7L5 4H4C2.9 4 2 4.9 2 6L2 18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V4H18M11.25 15.25L10 18L8.75 15.25L6 14L8.75 12.75L10 10L11.25 12.75L14 14L11.25 15.25M16.94 11.94L16 14L15.06 11.94L13 11L15.06 10.06L16 8L16.94 10.06L19 11L16.94 11.94Z\";\nexport var mdiMovieFilterOutline = \"M10 11L9.06 13.06L7 14L9.06 14.94L10 17L10.94 14.94L13 14L10.94 13.06M18 4L20 8H17L15 4H13L15 8H12L10 4H8L10 8H7L5 4H4C2.91 4 2 4.9 2 6L2 18C2 19.1 2.91 20 4 20H20C21.11 20 22 19.1 22 18V4H18M20 18H4V6.47L5.77 10H16L15.37 11.37L14 12L15.37 12.63L16 14L16.63 12.63L18 12L16.63 11.37L16 10H20V18Z\";\nexport var mdiMovieMinus = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M15 18V20H23V18H15Z\";\nexport var mdiMovieMinusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19M15 18V20H23V18H15Z\";\nexport var mdiMovieOff = \"M22.11 21.46L20.84 22.73L18.11 20H4C2.9 20 2 19.11 2 18V6C2 5.42 2.25 4.9 2.65 4.54L1.11 3L2.39 1.73L22.11 21.46M21.88 18.68C21.96 18.47 22 18.24 22 18V4H18L20 8H17L15 4H13L15 8H12L10 4H8L8.8 5.6L21.88 18.68Z\";\nexport var mdiMovieOffOutline = \"M2.39 1.73L1.11 3L2.65 4.54C2.25 4.9 2 5.42 2 6V18C2 19.11 2.9 20 4 20H18.11L20.84 22.73L22.11 21.46L2.39 1.73M4 18V6.47L5.76 10H8.11L16.11 18H4M8.8 5.6L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V18C22 18.24 21.96 18.47 21.88 18.68L20 16.8V10H13.2L8.8 5.6Z\";\nexport var mdiMovieOpen = \"M20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1L20.84 2.18M13.97 3.54L12 3.93L14.75 7.46L16.71 7.07L13.97 3.54M9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05L9.07 4.5M4.16 5.5L3.18 5.69A2 2 0 0 0 1.61 8.04L2 10L6.9 9.03L4.16 5.5M2 10V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V10H2Z\";\nexport var mdiMovieOpenCheck = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M19 13C20.1 13 21.12 13.3 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiMovieOpenCheckOutline = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M4 20V12H20V13.09C20.72 13.21 21.39 13.46 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.46 21.39 13.22 20.72 13.09 20H4M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiMovieOpenCog = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M19 12C20.08 12 21.09 12.25 22 12.68V10H2V20C2 21.11 2.9 22 4 22H12.68C12.25 21.09 12 20.08 12 19C12 15.13 15.13 12 19 12M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiMovieOpenCogOutline = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M4 20V12H20V12.08C20.71 12.18 21.38 12.39 22 12.69V10H2V20C2 21.11 2.9 22 4 22H12.68C12.39 21.38 12.18 20.71 12.08 20H4M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiMovieOpenEdit = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M2 10V20C2 21.11 2.9 22 4 22H11V19.13L20.13 10H2M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiMovieOpenEditOutline = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M4 12H18.13L20.13 10H2V20C2 21.11 2.9 22 4 22H11V20H4V12M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiMovieOpenMinus = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M19 13C20.1 13 21.12 13.3 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M15 18V20H23V18H15Z\";\nexport var mdiMovieOpenMinusOutline = \"M13.09 20C13.21 20.72 13.46 21.39 13.81 22H4C2.9 22 2 21.11 2 20V10H22V13.81C21.39 13.46 20.72 13.22 20 13.09V12H4V20H13.09M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M15 18V20H23V18H15Z\";\nexport var mdiMovieOpenOff = \"M13.2 10H22V18.8L13.2 10M21.6 6.1L20.8 2.2L16.9 3L19.6 6.5L21.6 6.1M11.8 8L9.1 4.5L7.9 4.7L11.3 8.1L11.8 8M2.4 1.7L1.1 3L3.7 5.6L3.2 5.7C2.1 5.9 1.4 7 1.6 8L2 10L7.1 9L8.1 10H2V20C2 21.1 2.9 22 4 22H20.1L20.8 22.7L22.1 21.4L2.4 1.7M16.7 7.1L14 3.5L12 3.9L14.8 7.4L16.7 7.1Z\";\nexport var mdiMovieOpenOffOutline = \"M19.7 6.5L16.9 3L20.8 2.2L21.6 6.1L19.7 6.5M22.1 21.5L20.8 22.8L20.1 22H4C2.9 22 2 21.1 2 20V10H8.1L7.1 9L2 10L1.6 8C1.4 7 2.1 5.9 3.2 5.7L3.7 5.6L1.1 3L2.4 1.7L22.1 21.5M18.1 20L10.1 12H4V20H18.1M22 18.8V10H13.2L15.2 12H20V16.8L22 18.8M16.7 7.1L14 3.5L12 3.9L14.8 7.4L16.7 7.1M11.8 8L9.1 4.5L7.9 4.7L11.3 8.1L11.8 8Z\";\nexport var mdiMovieOpenOutline = \"M20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1L20.84 2.18M13.97 3.54L12 3.93L14.75 7.46L16.71 7.07L13.97 3.54M9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05L9.07 4.5M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M20 12V20H4V12H20M22 10H2V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V10Z\";\nexport var mdiMovieOpenPlay = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M2 10V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13C20.1 13 21.12 13.3 22 13.81V10H2M17 22L22 19L17 16V22Z\";\nexport var mdiMovieOpenPlayOutline = \"M22 10V13.81C21.39 13.46 20.72 13.22 20 13.09V12H4V20H13.09C13.21 20.72 13.46 21.39 13.81 22H4C2.9 22 2 21.11 2 20V10H22M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M17 22L22 19L17 16V22Z\";\nexport var mdiMovieOpenPlus = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M19 13C20.1 13 21.12 13.3 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiMovieOpenPlusOutline = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M4 20V12H20V13.09C20.72 13.21 21.39 13.46 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.46 21.39 13.22 20.72 13.09 20H4M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiMovieOpenRemove = \"M14.75 7.46L12 3.93L13.97 3.54L16.71 7.07L14.75 7.46M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M21.62 6.1L20.84 2.18L16.91 2.96L19.65 6.5L21.62 6.1M19 13C20.1 13 21.12 13.3 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiMovieOpenRemoveOutline = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4 20V12H20V13.09C20.72 13.21 21.39 13.46 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.46 21.39 13.22 20.72 13.09 20H4M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiMovieOpenSettings = \"M14.75 5.46L12 1.93L13.97 1.54L16.71 5.07L14.75 5.46M21.62 4.1L20.84 .18L16.91 .96L19.65 4.5L21.62 4.1M11.81 6.05L9.07 2.5L7.1 2.91L9.85 6.44L11.81 6.05M2 8V18C2 19.11 2.9 20 4 20H20C21.11 20 22 19.11 22 18V8H2M4.16 3.5L3.18 3.69C2.1 3.91 1.4 4.96 1.61 6.04L2 8L6.9 7.03L4.16 3.5M11 24H13V22H11V24M7 24H9V22H7V24M15 24H17V22H15V24Z\";\nexport var mdiMovieOpenSettingsOutline = \"M19.65 4.5L16.91 .96L20.84 .18L21.62 4.1L19.65 4.5M16.71 5.07L13.97 1.54L12 1.93L14.75 5.46L16.71 5.07M11.81 6.05L9.07 2.5L7.1 2.91L9.85 6.44L11.81 6.05M4.16 3.5L3.18 3.69C2.1 3.9 1.39 4.96 1.61 6.04L2 8L6.9 7.03L4.16 3.5M22 8V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V8H22M20 10H4V18H20V10M7 24H9V22H7V24M15 24H17V22H15V24M11 24H13V22H11V24Z\";\nexport var mdiMovieOpenStar = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M19 13C20.1 13 21.12 13.3 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.3 21.12 13 20.1 13 19C13 15.69 15.69 13 19 13M4.16 5.5L3.18 5.69C2.1 5.91 1.4 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiMovieOpenStarOutline = \"M19.65 6.5L16.91 2.96L20.84 2.18L21.62 6.1L19.65 6.5M16.71 7.07L13.97 3.54L12 3.93L14.75 7.46L16.71 7.07M4.16 5.5L3.18 5.69C2.1 5.9 1.39 6.96 1.61 8.04L2 10L6.9 9.03L4.16 5.5M11.81 8.05L9.07 4.5L7.1 4.91L9.85 8.44L11.81 8.05M4 20V12H20V13.09C20.72 13.21 21.39 13.46 22 13.81V10H2V20C2 21.11 2.9 22 4 22H13.81C13.46 21.39 13.22 20.72 13.09 20H4M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiMovieOutline = \"M5.76,10H20V18H4V6.47M22,4H18L20,8H17L15,4H13L15,8H12L10,4H8L10,8H7L5,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V4Z\";\nexport var mdiMoviePlay = \"M22 4V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22M17 22L22 19L17 16V22Z\";\nexport var mdiMoviePlayOutline = \"M22 4V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22M17 22L22 19L17 16V22Z\";\nexport var mdiMoviePlus = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiMoviePlusOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiMovieRemove = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiMovieRemoveOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiMovieRoll = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A2.5,2.5 0 0,0 9.5,6.5A2.5,2.5 0 0,0 12,9A2.5,2.5 0 0,0 14.5,6.5A2.5,2.5 0 0,0 12,4M4.4,9.53C3.97,10.84 4.69,12.25 6,12.68C7.32,13.1 8.73,12.39 9.15,11.07C9.58,9.76 8.86,8.35 7.55,7.92C6.24,7.5 4.82,8.21 4.4,9.53M19.61,9.5C19.18,8.21 17.77,7.5 16.46,7.92C15.14,8.34 14.42,9.75 14.85,11.07C15.28,12.38 16.69,13.1 18,12.67C19.31,12.25 20.03,10.83 19.61,9.5M7.31,18.46C8.42,19.28 10,19.03 10.8,17.91C11.61,16.79 11.36,15.23 10.24,14.42C9.13,13.61 7.56,13.86 6.75,14.97C5.94,16.09 6.19,17.65 7.31,18.46M16.7,18.46C17.82,17.65 18.07,16.09 17.26,14.97C16.45,13.85 14.88,13.6 13.77,14.42C12.65,15.23 12.4,16.79 13.21,17.91C14,19.03 15.59,19.27 16.7,18.46M12,10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 12,13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 12,10.5Z\";\nexport var mdiMovieSearch = \"M11.03 20H4C2.9 20 2 19.1 2 18L2 6C2 4.9 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.05C20.85 11.22 18.82 10 16.5 10C12.92 10 10 12.92 10 16.5C10 17.79 10.38 19 11.03 20M23.39 22L22 23.39L18.88 20.32C18.19 20.75 17.37 21 16.5 21C14 21 12 19 12 16.5S14 12 16.5 12 21 14 21 16.5C21 17.38 20.75 18.21 20.31 18.9L23.39 22M19 16.5C19 15.12 17.88 14 16.5 14S14 15.12 14 16.5 15.12 19 16.5 19 19 17.88 19 16.5Z\";\nexport var mdiMovieSearchOutline = \"M11 20H4C2.9 20 2 19.1 2 18V6C2 4.9 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13C21.5 12.2 20.8 11.5 20 11V10H5.8L4 6.5V18H10.2C10.4 18.7 10.6 19.4 11 20M20.3 18.9C20.7 18.2 21 17.4 21 16.5C21 14 19 12 16.5 12S12 14 12 16.5 14 21 16.5 21C17.4 21 18.2 20.8 18.9 20.3L22 23.4L23.4 22L20.3 18.9M16.5 19C15.1 19 14 17.9 14 16.5S15.1 14 16.5 14 19 15.1 19 16.5 17.9 19 16.5 19Z\";\nexport var mdiMovieSettings = \"M22 4V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22M7 24H9V22H7V24M11 24H13V22H11V24M15 24H17V22H15V24Z\";\nexport var mdiMovieSettingsOutline = \"M18 4L20 8H17L15 4H13L15 8H12L10 4H8L10 8H7L5 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H20C21.11 20 22 19.11 22 18V4H18M20 18H4V6.47L5.76 10H20V18M11 22H13V24H11V22M7 22H9V24H7V22M15 22H17V24H15V22Z\";\nexport var mdiMovieStar = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiMovieStarOutline = \"M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.9 4 4 4H5L7 8H10L8 4H10L12 8H15L13 4H15L17 8H20L18 4H22V13.81C21.39 13.46 20.72 13.22 20 13.09V10H5.76L4 6.47V18H13.09C13.04 18.33 13 18.66 13 19M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiMower = \"M18.5 14C17.55 14 16.69 14.38 16.06 15H9.39L5.74 3H2V5H4.26L7 14.05C6.85 14.03 6.68 14 6.5 14C4.57 14 3 15.57 3 17.5S4.57 21 6.5 21C7.89 21 9.09 20.18 9.65 19H15.35C15.91 20.18 17.11 21 18.5 21C20.43 21 22 19.43 22 17.5S20.43 14 18.5 14M6.5 19C5.67 19 5 18.33 5 17.5S5.67 16 6.5 16 8 16.67 8 17.5 7.33 19 6.5 19M18.5 19C17.67 19 17 18.33 17 17.5S17.67 16 18.5 16 20 16.67 20 17.5 19.33 19 18.5 19M10.13 14L9.53 12H12.76C13.5 12 14.21 12.43 14.55 13.11L15 14H10.13Z\";\nexport var mdiMowerBag = \"M11.95 14L10.82 12H14.76C15.5 12 16.21 12.43 16.55 13.11L17 14H11.95M23 18C23 19.66 21.66 21 20 21C18.7 21 17.6 20.16 17.18 19H11.65C11.09 20.18 9.89 21 8.5 21S5.91 20.18 5.35 19H2C1.45 19 1 18.55 1 18V11C1 10.67 1.17 10.36 1.44 10.17C1.71 10 2.06 9.95 2.37 10.07L7.43 12.09L3.42 5H1V3H4.58L11.37 15H20C21.66 15 23 16.34 23 18M7.34 14.21L3 12.5V17H5.05C5.24 15.7 6.13 14.64 7.34 14.21M10 17.5C10 16.67 9.33 16 8.5 16S7 16.67 7 17.5 7.67 19 8.5 19 10 18.33 10 17.5M21 18C21 17.45 20.55 17 20 17S19 17.45 19 18 19.45 19 20 19 21 18.55 21 18Z\";\nexport var mdiMowerBagOn = \"M12 2H14V7H12V2M22 6.3L20.6 4.9L17 8.4L18.4 9.8C18.4 9.8 21.9 6.3 22 6.3M10.8 12L11.9 14H17L16.5 13.1C16.2 12.4 15.5 12 14.7 12H10.8M20 15H11.4L4.6 3H1V5H3.4L7.4 12.1L2.3 10.1C2.1 10 1.7 10 1.4 10.2C1.2 10.4 1 10.7 1 11V18C1 18.5 1.5 19 2 19H5.3C5.9 20.2 7.1 21 8.5 21S11.1 20.2 11.7 19H17.2C17.6 20.2 18.7 21 20 21C21.7 21 23 19.7 23 18S21.7 15 20 15M5 17H3V12.5L7.3 14.2C6.1 14.6 5.2 15.7 5 17M8.5 19C7.7 19 7 18.3 7 17.5S7.7 16 8.5 16 10 16.7 10 17.5 9.3 19 8.5 19M20 19C19.5 19 19 18.5 19 18S19.5 17 20 17 21 17.5 21 18 20.5 19 20 19Z\";\nexport var mdiMowerOn = \"M12 2H14V7H12V2M22 6.3L20.6 4.9L17 8.4L18.4 9.8C18.4 9.8 21.9 6.3 22 6.3M18.5 14C17.5 14 16.7 14.4 16.1 15H9.4L5.7 3H2V5H4.3L7 14H6.5C4.6 14 3 15.6 3 17.5S4.6 21 6.5 21C7.9 21 9.1 20.2 9.7 19H15.4C16 20.2 17.2 21 18.6 21C20.5 21 22.1 19.4 22.1 17.5S20.4 14 18.5 14M6.5 19C5.7 19 5 18.3 5 17.5S5.7 16 6.5 16 8 16.7 8 17.5 7.3 19 6.5 19M18.5 19C17.7 19 17 18.3 17 17.5S17.7 16 18.5 16 20 16.7 20 17.5 19.3 19 18.5 19M9.5 12L10.1 14H15L14.6 13.1C14.3 12.4 13.5 12 12.8 12H9.5Z\";\nexport var mdiMuffin = \"M16,5C16,5 15,2 12,2C9,2 8,5 8,5C6,5 4,7 4,9C1.3,9 1.3,13 4,13H20C22.7,13 22.7,9 20,9C20,7 18,5 16,5M5,15L7,22H9L8,15H5M10,15L11,22H13L14,15H10M16,15L15,22H17L19,15H16Z\";\nexport var mdiMulticast = \"M17 2V4H12C10.9 4 10 4.89 10 6V9H12V6H17V8L20 5L17 2M17 9V11H6.73C6.37 10.38 5.71 10 5 10C3.9 10 3 10.9 3 12S3.9 14 5 14C5.71 14 6.37 13.62 6.73 13H17V15L20 12L17 9M10 15V18C10 19.11 10.9 20 12 20H17V22L20 19L17 16V18H12V15H10Z\";\nexport var mdiMultimedia = \"M9 13V5C9 3.9 9.9 3 11 3H20C21.1 3 22 3.9 22 5V11H18.57L17.29 9.26C17.23 9.17 17.11 9.17 17.05 9.26L15.06 12C15 12.06 14.88 12.07 14.82 12L13.39 10.25C13.33 10.18 13.22 10.18 13.16 10.25L11.05 12.91C10.97 13 11.04 13.15 11.16 13.15H17.5V15H11C9.89 15 9 14.11 9 13M6 22V21H4V22H2V2H4V3H6V2H8.39C7.54 2.74 7 3.8 7 5V13C7 15.21 8.79 17 11 17H15.7C14.67 17.83 14 19.08 14 20.5C14 21.03 14.11 21.53 14.28 22H6M4 7H6V5H4V7M4 11H6V9H4V11M4 15H6V13H4V15M6 19V17H4V19H6M23 13V15H21V20.5C21 21.88 19.88 23 18.5 23S16 21.88 16 20.5 17.12 18 18.5 18C18.86 18 19.19 18.07 19.5 18.21V13H23Z\";\nexport var mdiMultiplication = \"M11,3H13V10.27L19.29,6.64L20.29,8.37L14,12L20.3,15.64L19.3,17.37L13,13.72V21H11V13.73L4.69,17.36L3.69,15.63L10,12L3.72,8.36L4.72,6.63L11,10.26V3Z\";\nexport var mdiMultiplicationBox = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19M11,17H13V13.73L15.83,15.36L16.83,13.63L14,12L16.83,10.36L15.83,8.63L13,10.27V7H11V10.27L8.17,8.63L7.17,10.36L10,12L7.17,13.63L8.17,15.36L11,13.73V17Z\";\nexport var mdiMushroom = \"M12,2A10,10 0 0,1 22,12A2,2 0 0,1 20,14H4A2,2 0 0,1 2,12A10,10 0 0,1 12,2M12,8A2,2 0 0,0 14,6A2,2 0 0,0 12,4A2,2 0 0,0 10,6A2,2 0 0,0 12,8M17,12A2,2 0 0,0 19,10A2,2 0 0,0 17,8A2,2 0 0,0 15,10A2,2 0 0,0 17,12M7,12A2,2 0 0,0 9,10A2,2 0 0,0 7,8A2,2 0 0,0 5,10A2,2 0 0,0 7,12M15,15L16.27,19.45L16.35,20C16.35,21.1 15.45,22 14.35,22H9.65A2,2 0 0,1 7.65,20L7.73,19.45L9,15H15Z\";\nexport var mdiMushroomOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 13.1 2.9 14 4 14H12.1L13.1 15H9L7.7 19.5V20C7.7 21.1 8.6 22 9.7 22H14.4C15.5 22 16.4 21.1 16.4 20L16.3 19.5L15.8 17.7L20.9 22.8L22.1 21.5M7 12C5.9 12 5 11.1 5 10C5 9.2 5.5 8.4 6.3 8.1L8.9 10.7C8.6 11.5 7.8 12 7 12M10 6C10 4.9 10.9 4 12 4S14 4.9 14 6 13.1 8 12 8C11.5 8 11.1 7.8 10.7 7.5L17.2 14H20C21.1 14 22 13.1 22 12C22 6.5 17.5 2 12 2C10.1 2 8.3 2.6 6.7 3.5L10.4 7.2C10.2 6.9 10 6.5 10 6M17 8C18.1 8 19 8.9 19 10S18.1 12 17 12 15 11.1 15 10 15.9 8 17 8Z\";\nexport var mdiMushroomOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L4.1 6C2.8 7.6 2 9.7 2 12C2 13.1 2.9 14 4 14H12.1L13.1 15H9L8 18.5L7.7 19.5C7.4 20.6 8.1 21.7 9.1 21.9L9.7 22H14.4C15.5 22 16.4 21.1 16.4 20L16.3 19.5L16 18.5L15.8 17.6L20.9 22.7L22.1 21.5M4 12C4 10.3 4.6 8.7 5.5 7.4L6.2 8.1C6.1 8.4 6 8.7 6 9C6 10.1 6.9 11 8 11C8.3 11 8.6 10.9 8.9 10.8L10.1 12H4M9.7 20L10 19L10.6 17H13.6L14.2 19L14.5 20H9.7M16 11C14.9 11 14 10.1 14 9S14.9 7 16 7 18 7.9 18 9 17.1 11 16 11M8.2 5L6.7 3.5C8.3 2.6 10.1 2 12 2C17.5 2 22 6.5 22 12C22 13.1 21.1 14 20 14H17.2L15.2 12H20C20 8.3 17.4 5.1 14 4.2C13.9 5.2 13 6 12 6S10.1 5.2 10 4.2C9.4 4.4 8.7 4.7 8.2 5Z\";\nexport var mdiMushroomOutline = \"M4,12H20C20,8.27 17.44,5.13 14,4.25C13.86,5.24 13,6 12,6C11,6 10.14,5.24 10,4.25C6.56,5.13 4,8.27 4,12M12,2A10,10 0 0,1 22,12A2,2 0 0,1 20,14H4A2,2 0 0,1 2,12A10,10 0 0,1 12,2M13.5,17H10.5L9.92,19L9.65,20H14.35L14.08,19L13.5,17M15,15L16,18.5L16.27,19.45L16.35,20C16.35,21.1 15.45,22 14.35,22H9.65L9.17,21.94C8.1,21.66 7.45,20.57 7.73,19.5L8,18.5L9,15H15M16,7A2,2 0 0,1 18,9A2,2 0 0,1 16,11A2,2 0 0,1 14,9A2,2 0 0,1 16,7M8,7A2,2 0 0,1 10,9A2,2 0 0,1 8,11A2,2 0 0,1 6,9A2,2 0 0,1 8,7Z\";\nexport var mdiMusic = \"M21,3V15.5A3.5,3.5 0 0,1 17.5,19A3.5,3.5 0 0,1 14,15.5A3.5,3.5 0 0,1 17.5,12C18.04,12 18.55,12.12 19,12.34V6.47L9,8.6V17.5A3.5,3.5 0 0,1 5.5,21A3.5,3.5 0 0,1 2,17.5A3.5,3.5 0 0,1 5.5,14C6.04,14 6.55,14.12 7,14.34V6L21,3Z\";\nexport var mdiMusicAccidentalDoubleFlat = \"M15.5 9C14.8 9 14.11 9.28 13.5 9.67V5H11.5V9.62C11.04 9.24 10.39 9 9.5 9C8.8 9 8.11 9.28 7.5 9.67V5H5.5V19C8.5 17.32 10.43 15.79 11.5 14.41V19C16.36 16.26 18.5 13.91 18.5 12C18.5 10.59 17.79 9 15.5 9M7.5 15.38V12.26C8.12 11.59 8.95 11 9.5 11C10.09 11 10.5 11.07 10.5 12C10.5 12.15 10.4 13.3 7.5 15.38M13.5 15.38V12.26C14.12 11.59 14.95 11 15.5 11C16.09 11 16.5 11.07 16.5 12C16.5 12.15 16.4 13.3 13.5 15.38Z\";\nexport var mdiMusicAccidentalDoubleSharp = \"M15.41 10H17V7H14V8.59L12 10.59L10 8.59V7H7V10H8.59L10.59 12L8.59 14H7V17H10V15.41L12 13.41L14 15.41V17H17V14H15.41L13.41 12L15.41 10Z\";\nexport var mdiMusicAccidentalFlat = \"M8.5 19C13.36 16.26 15.5 13.91 15.5 12C15.5 10.59 14.79 9 12.5 9C11.8 9 11.11 9.28 10.5 9.67V5H8.5M10.5 15.38V12.26C11.12 11.59 11.95 11 12.5 11C13.09 11 13.5 11.07 13.5 12C13.5 12.15 13.4 13.3 10.5 15.38Z\";\nexport var mdiMusicAccidentalNatural = \"M10 8.75V3.5H8V17.5L14 15.25V20.5H16V6.5L10 8.75M14 13.25L10 14.75V10.75L14 9.25V13.25Z\";\nexport var mdiMusicAccidentalSharp = \"M17 9.5V7.5L15 8.1V5.5H13V8.7L11 9.3V6.5H9V9.9L7 10.5V12.5L9 11.9V13.9L7 14.5V16.5L9 15.9V18.5H11V15.3L13 14.7V17.5H15V14.1L17 13.5V11.5L15 12.1V10.1L17 9.5M13 12.7L11 13.3V11.3L13 10.7V12.7Z\";\nexport var mdiMusicBox = \"M16,9H13V14.5A2.5,2.5 0 0,1 10.5,17A2.5,2.5 0 0,1 8,14.5A2.5,2.5 0 0,1 10.5,12C11.07,12 11.58,12.19 12,12.5V7H16M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiMusicBoxMultiple = \"M4,6H2V20A2,2 0 0,0 4,22H18V20H4M18,7H15V12.5A2.5,2.5 0 0,1 12.5,15A2.5,2.5 0 0,1 10,12.5A2.5,2.5 0 0,1 12.5,10C13.07,10 13.58,10.19 14,10.5V5H18M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2Z\";\nexport var mdiMusicBoxMultipleOutline = \"M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,16H8V4H20M12.5,15A2.5,2.5 0 0,0 15,12.5V7H18V5H14V10.5C13.58,10.19 13.07,10 12.5,10A2.5,2.5 0 0,0 10,12.5A2.5,2.5 0 0,0 12.5,15M4,6H2V20A2,2 0 0,0 4,22H18V20H4\";\nexport var mdiMusicBoxOutline = \"M16,9H13V14.5A2.5,2.5 0 0,1 10.5,17A2.5,2.5 0 0,1 8,14.5A2.5,2.5 0 0,1 10.5,12C11.07,12 11.58,12.19 12,12.5V7H16V9M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M5,5V19H19V5H5Z\";\nexport var mdiMusicCircle = \"M16,9V7H12V12.5C11.58,12.19 11.07,12 10.5,12A2.5,2.5 0 0,0 8,14.5A2.5,2.5 0 0,0 10.5,17A2.5,2.5 0 0,0 13,14.5V9H16M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiMusicCircleOutline = \"M16,9H13V14.5A2.5,2.5 0 0,1 10.5,17A2.5,2.5 0 0,1 8,14.5A2.5,2.5 0 0,1 10.5,12C11.07,12 11.58,12.19 12,12.5V7H16V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiMusicClefAlto = \"M5 4H7V20H5M15.46 13H14.83L13.83 12L14.83 11H15.46A3.5 3.5 0 1 0 11.96 7.5H13.96A1.5 1.5 0 1 1 15.46 9H14L12 11H11V4H9V20H11V13H12L14 15H15.46A1.5 1.5 0 1 1 13.96 16.5H11.96A3.5 3.5 0 1 0 15.46 13Z\";\nexport var mdiMusicClefBass = \"M18.5 5A1.5 1.5 0 1 1 17 6.5A1.5 1.5 0 0 1 18.5 5M18.5 11A1.5 1.5 0 1 1 17 12.5A1.5 1.5 0 0 1 18.5 11M10 4A5 5 0 0 0 5 9V10A2 2 0 1 0 7.18 8A3 3 0 0 1 10 6A4 4 0 0 1 14 10C14 13.59 11.77 16.19 7 18.2L7.76 20.04C13.31 17.72 16 14.43 16 10A6 6 0 0 0 10 4Z\";\nexport var mdiMusicClefTreble = \"M13 11V7.5L15.2 5.29C16 4.5 16.15 3.24 15.59 2.26C15.14 1.47 14.32 1 13.45 1C13.24 1 13 1.03 12.81 1.09C11.73 1.38 11 2.38 11 3.5V6.74L7.86 9.91C6.2 11.6 5.7 14.13 6.61 16.34C7.38 18.24 9.06 19.55 11 19.89V20.5C11 20.76 10.77 21 10.5 21H9V23H10.5C11.85 23 13 21.89 13 20.5V20C15.03 20 17.16 18.08 17.16 15.25C17.16 12.95 15.24 11 13 11M13 3.5C13 3.27 13.11 3.09 13.32 3.03C13.54 2.97 13.77 3.06 13.88 3.26C14 3.46 13.96 3.71 13.8 3.87L13 4.73V3.5M11 11.5C10.03 12.14 9.3 13.24 9.04 14.26L11 14.78V17.83C9.87 17.53 8.9 16.71 8.43 15.57C7.84 14.11 8.16 12.45 9.26 11.33L11 9.5V11.5M13 18V12.94C14.17 12.94 15.18 14.04 15.18 15.25C15.18 17 13.91 18 13 18Z\";\nexport var mdiMusicNote = \"M12 3V13.55C11.41 13.21 10.73 13 10 13C7.79 13 6 14.79 6 17S7.79 21 10 21 14 19.21 14 17V7H18V3H12Z\";\nexport var mdiMusicNoteBluetooth = \"M22 9.85L19.14 7H18.64V10.79L16.35 8.5L15.64 9.21L18.43 12L15.64 14.79L16.35 15.5L18.64 13.21V17H19.14L22 14.15L19.85 12L22 9.85M19.64 8.91L20.58 9.85L19.64 10.79V8.91M20.58 14.15L19.64 15.09V13.21L20.58 14.15M9.64 3V13.55C9.05 13.21 8.37 13 7.64 13C5.43 13 3.64 14.79 3.64 17S5.43 21 7.64 21 11.64 19.21 11.64 17V7H15.64V3H9.64Z\";\nexport var mdiMusicNoteBluetoothOff = \"M22 9.85L19.14 7H18.64V10.79L16.35 8.5L15.64 9.21L18.43 12L15.64 14.79L16.35 15.5L18.64 13.21V17H19.14L22 14.15L19.85 12L22 9.85M19.64 8.91L20.58 9.85L19.64 10.79V8.91M20.58 14.15L19.64 15.09V13.21L20.58 14.15M1.96 3L.687 4.27L9.69 13.27V13.55C9.1 13.21 8.42 13 7.69 13C5.5 13 3.69 14.79 3.69 17S5.5 21 7.69 21 11.69 19.21 11.69 17V15.27L17.42 21L18.69 19.73L1.96 3M11.69 7H15.69V3H9.69V8.18L11.69 10.18V7Z\";\nexport var mdiMusicNoteEighth = \"M12 3V13.55C11.41 13.21 10.73 13 10 13C7.79 13 6 14.79 6 17S7.79 21 10 21 14 19.21 14 17V7H18V3H12Z\";\nexport var mdiMusicNoteEighthDotted = \"M12 3V13.55A4 4 0 1 0 14 17V7H18V3M16.5 20A1.5 1.5 0 1 1 18 18.5A1.5 1.5 0 0 1 16.5 20Z\";\nexport var mdiMusicNoteHalf = \"M16 3H14V13.56A3.96 3.96 0 0 0 12 13A4 4 0 1 0 16 17V3M12 19A2 2 0 1 1 14 17A2 2 0 0 1 12 19Z\";\nexport var mdiMusicNoteHalfDotted = \"M14 3H12V13.56A3.96 3.96 0 0 0 10 13A4 4 0 1 0 14 17V3M10 19A2 2 0 1 1 12 17A2 2 0 0 1 10 19M16.5 20A1.5 1.5 0 1 1 18 18.5A1.5 1.5 0 0 1 16.5 20Z\";\nexport var mdiMusicNoteMinus = \"M14 12V14H22V12H14M9 3V13.55C8.41 13.21 7.73 13 7 13C4.79 13 3 14.79 3 17S4.79 21 7 21 11 19.21 11 17V7H15V3H9Z\";\nexport var mdiMusicNoteOff = \"M4.27 3L3 4.27L12 13.27V13.55C11.41 13.21 10.73 13 10 13C7.79 13 6 14.79 6 17S7.79 21 10 21 14 19.21 14 17V15.27L19.73 21L21 19.73L4.27 3M14 7H18V3H12V8.18L14 10.18Z\";\nexport var mdiMusicNoteOffOutline = \"M14 7H18V3H12V7.61L14 9.61M12 10.44L4.41 2.86L3 4.27L12 13.27V13.55A3.94 3.94 0 0 0 8.67 13.23A4 4 0 0 0 10.65 20.95A4.1 4.1 0 0 0 14 16.85V15.27L19.73 21L21.14 19.59M10 19A2 2 0 1 1 12 17A2 2 0 0 1 10 19Z\";\nexport var mdiMusicNoteOutline = \"M12 3V13.55A4 4 0 1 0 14 17V7H18V3M10 19A2 2 0 1 1 12 17A2 2 0 0 1 10 19Z\";\nexport var mdiMusicNotePlus = \"M17 9V12H14V14H17V17H19V14H22V12H19V9H17M9 3V13.55C8.41 13.21 7.73 13 7 13C4.79 13 3 14.79 3 17S4.79 21 7 21 11 19.21 11 17V7H15V3H9Z\";\nexport var mdiMusicNoteQuarter = \"M14 3V13.56C13.41 13.21 12.73 13 12 13C9.79 13 8 14.79 8 17S9.79 21 12 21 16 19.21 16 17V3H14Z\";\nexport var mdiMusicNoteQuarterDotted = \"M12 13V13.56A3.96 3.96 0 0 0 10 13A4 4 0 1 0 14 17V3H12M16.5 17A1.5 1.5 0 1 1 15 18.5A1.5 1.5 0 0 1 16.5 17Z\";\nexport var mdiMusicNoteSixteenth = \"M18 7V3H12V13.55C11.41 13.21 10.73 13 10 13C7.79 13 6 14.79 6 17S7.79 21 10 21 14 19.21 14 17V11H18V8H14V7H18Z\";\nexport var mdiMusicNoteSixteenthDotted = \"M18 18.5A1.5 1.5 0 1 1 16.5 17A1.5 1.5 0 0 1 18 18.5M18 7V3H12V13.55A4 4 0 1 0 14 17V11H18V8H14V7Z\";\nexport var mdiMusicNoteWhole = \"M12 15A2 2 0 1 1 10 17A2 2 0 0 1 12 15M12 13A4 4 0 1 0 16 17A4 4 0 0 0 12 13Z\";\nexport var mdiMusicNoteWholeDotted = \"M10 15A2 2 0 1 1 8 17A2 2 0 0 1 10 15M10 13A4 4 0 1 0 14 17A4 4 0 0 0 10 13M16.5 17A1.5 1.5 0 1 1 15 18.5A1.5 1.5 0 0 1 16.5 17Z\";\nexport var mdiMusicOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L9,12.27V17.5A3.5,3.5 0 0,1 5.5,21A3.5,3.5 0 0,1 2,17.5A3.5,3.5 0 0,1 5.5,14C6.04,14 6.55,14.12 7,14.34V10.27L2,5.27M21,3V15.5C21,16.5 20.57,17.42 19.88,18.06L14.94,13.12C15.58,12.43 16.5,12 17.5,12C18.04,12 18.55,12.12 19,12.34V6.47L10.17,8.35L7.66,5.84L21,3Z\";\nexport var mdiMusicRestEighth = \"M14 6A5.56 5.56 0 0 1 10.95 7.86A1.5 1.5 0 1 0 9.5 9H9.74A6.32 6.32 0 0 0 13.25 7.93L10 18H12L16 6Z\";\nexport var mdiMusicRestHalf = \"M6 14H8V10H16V14H18V15H6V14Z\";\nexport var mdiMusicRestQuarter = \"M11.71 16.81C10.91 17.6 10.88 18.84 11.64 19.58L10.19 21C8.66 19.5 8.72 17.03 10.32 15.46C10.85 14.94 11.5 14.61 12.16 14.42L9 11.34L10.45 9.92L10.82 9.57C11.82 8.59 11.85 7.04 10.9 6.11L9.16 4.42L10.62 3L14.78 7.06C15.54 7.81 15.5 9.05 14.71 9.83L12.53 11.95L16 15.33L15.61 15.72C15.11 16.21 14.38 16.46 13.72 16.28C13.04 16.1 12.26 16.28 11.71 16.81Z\";\nexport var mdiMusicRestSixteenth = \"M15 3A5.56 5.56 0 0 1 11.95 4.86A1.5 1.5 0 1 0 10.5 6H10.74A6.32 6.32 0 0 0 14.25 4.93L12.9 9.1A5.56 5.56 0 0 1 9.95 10.86A1.5 1.5 0 1 0 8.5 12H8.74A6.32 6.32 0 0 0 12.25 10.93L9 21H11L17 3Z\";\nexport var mdiMusicRestWhole = \"M18 10H16V14H8V10H6V9H18V10Z\";\nexport var mdiMustache = \"M21 12C19 12 18 9 15 9S12 11 12 11 12 9 9 9 5 12 3 12C2 12 1 11 1 11S2 16 6 16C11 16 12 13 12 13S13 16 18 16C22 16 23 11 23 11S22 12 21 12Z\";\nexport var mdiNail = \"M13.5,5V16L12,22L10.5,16V5H13.5M17,2H7V4H17V2Z\";\nexport var mdiNas = \"M4,5C2.89,5 2,5.89 2,7V17C2,18.11 2.89,19 4,19H20C21.11,19 22,18.11 22,17V7C22,5.89 21.11,5 20,5H4M4.5,7A1,1 0 0,1 5.5,8A1,1 0 0,1 4.5,9A1,1 0 0,1 3.5,8A1,1 0 0,1 4.5,7M7,7H20V17H7V7M8,8V16H11V8H8M12,8V16H15V8H12M16,8V16H19V8H16M9,9H10V10H9V9M13,9H14V10H13V9M17,9H18V10H17V9Z\";\nexport var mdiNativescript = \"M7.5,3H16.5C19,3 21,5 21,7.5V16.5C21,19 19,21 16.5,21H7.5C5,21 3,19 3,16.5V7.5C3,5 5,3 7.5,3M6,13.5V16.5A1.5,1.5 0 0,0 7.5,18H9V10.5L15,18H16.5A1.5,1.5 0 0,0 18,16.5V13.5A1.5,1.5 0 0,1 19.5,12A1.5,1.5 0 0,1 18,10.5V7.5A1.5,1.5 0 0,0 16.5,6H15V13.5L9,6H7.5A1.5,1.5 0 0,0 6,7.5V10.5A1.5,1.5 0 0,1 4.5,12A1.5,1.5 0 0,1 6,13.5Z\";\nexport var mdiNature = \"M13,16.12C16.47,15.71 19.17,12.76 19.17,9.17C19.17,5.3 16.04,2.17 12.17,2.17A7,7 0 0,0 5.17,9.17C5.17,12.64 7.69,15.5 11,16.06V20H5V22H19V20H13V16.12Z\";\nexport var mdiNatureOutline = \"M12.08 14.22L12.77 14.13C15.24 13.84 17.17 11.73 17.17 9.17C17.17 6.41 14.94 4.17 12.17 4.17C10.84 4.17 9.57 4.7 8.63 5.63C7.7 6.57 7.17 7.84 7.17 9.17C7.17 11.64 8.96 13.69 11.33 14.09L12.08 14.22M13 16.12V20H19V22H5V20H11V16.06C7.69 15.5 5.17 12.64 5.17 9.17C5.17 7.31 5.91 5.53 7.22 4.22C8.53 2.91 10.31 2.17 12.17 2.17C16.04 2.17 19.17 5.3 19.17 9.17C19.17 12.76 16.47 15.71 13 16.12Z\";\nexport var mdiNaturePeople = \"M4.5,11A1.5,1.5 0 0,0 6,9.5A1.5,1.5 0 0,0 4.5,8A1.5,1.5 0 0,0 3,9.5A1.5,1.5 0 0,0 4.5,11M22.17,9.17C22.17,5.3 19.04,2.17 15.17,2.17A7,7 0 0,0 8.17,9.17C8.17,12.64 10.69,15.5 14,16.06V20H6V17H7V13A1,1 0 0,0 6,12H3A1,1 0 0,0 2,13V17H3V22H19V20H16V16.12C19.47,15.71 22.17,12.76 22.17,9.17Z\";\nexport var mdiNaturePeopleOutline = \"M16 20V16.12C19.47 15.71 22.17 12.76 22.17 9.17C22.17 5.3 19.04 2.17 15.17 2.17C13.31 2.17 11.53 2.91 10.22 4.22C8.91 5.53 8.17 7.31 8.17 9.17C8.17 9.95 8.3 10.69 8.53 11.38C8.64 11.71 8.77 12.03 8.93 12.33C9.91 14.27 11.78 15.68 14 16.06V20H6V17H7V12.95C7 12.72 6.89 12.5 6.74 12.33L6.71 12.29L6.66 12.25C6.5 12.09 6.25 12 6 12H3C2.76 12 2.5 12.09 2.34 12.25L2.29 12.29C2.11 12.5 2 12.74 2 13V17H3V22H19V20H16M15.08 14.22L14.33 14.09C11.96 13.69 10.17 11.64 10.17 9.17C10.17 7.84 10.7 6.57 11.63 5.63C12.57 4.7 13.85 4.17 15.17 4.17C17.93 4.17 20.17 6.41 20.17 9.17C20.17 11.73 18.24 13.84 15.77 14.13L15.08 14.21M4.5 11C5.33 11 6 10.33 6 9.5C6 8.67 5.33 8 4.5 8C3.67 8 3 8.67 3 9.5C3 10.33 3.67 11 4.5 11Z\";\nexport var mdiNavigation = \"M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z\";\nexport var mdiNavigationOutline = \"M12 7.3L16.3 17.7L12.8 16.2L12 15.8L11.2 16.2L7.7 17.7L12 7.3M12 2L4.5 20.3L5.2 21L12 18L18.8 21L19.5 20.3L12 2Z\";\nexport var mdiNavigationVariant = \"M21 3L3 10.53V11.5L9.84 14.16L12.5 21H13.46L21 3Z\";\nexport var mdiNavigationVariantOutline = \"M17.27 6.73L13.03 16.86L11.71 13.44L11.39 12.61L10.57 12.29L7.14 10.96L17.27 6.73M21 3L3 10.53V11.5L9.84 14.16L12.5 21H13.46L21 3Z\";\nexport var mdiNearMe = \"M21,3L3,10.53V11.5L9.84,14.16L12.5,21H13.46L21,3Z\";\nexport var mdiNecklace = \"M21.5 5H19.5C19.5 9.14 16.14 12.5 12 12.5C7.86 12.5 4.5 9.14 4.5 5H2.5C2.55 10.11 6.59 14.29 11.7 14.5C11.1 15.4 10 17.2 10 18C10 20.67 14 20.67 14 18C14 17.2 12.9 15.4 12.3 14.5C17.41 14.29 21.45 10.11 21.5 5Z\";\nexport var mdiNeedle = \"M11.15,15.18L9.73,13.77L11.15,12.35L12.56,13.77L13.97,12.35L12.56,10.94L13.97,9.53L15.39,10.94L16.8,9.53L13.97,6.7L6.9,13.77L9.73,16.6L11.15,15.18M3.08,19L6.2,15.89L4.08,13.77L13.97,3.87L16.1,6L17.5,4.58L16.1,3.16L17.5,1.75L21.75,6L20.34,7.4L18.92,6L17.5,7.4L19.63,9.53L9.73,19.42L7.61,17.3L3.08,21.84V19Z\";\nexport var mdiNeedleOff = \"M22.1 21.5L2.4 1.7L1.1 3L8 9.9L4.1 13.8L6.2 15.9L3.1 19V21.8L7.6 17.3L9.7 19.4L13.6 15.5L20.8 22.7L22.1 21.5M11.2 15.2L9.8 16.6L7 13.8L9.5 11.3L10.9 12.7L9.8 13.8L11.2 15.2M11.9 8.7L10.5 7.3L14 3.9L16.1 6L17.5 4.6L16.1 3.2L17.5 1.8L21.8 6L20.4 7.4L18.9 6L17.5 7.4L19.6 9.5L16.2 13L13.4 10.2L14 9.5L15.4 10.9L16.8 9.5L14 6.7L11.9 8.7Z\";\nexport var mdiNetflix = \"M6.5,2H10.5L13.44,10.83L13.5,2H17.5V22C16.25,21.78 14.87,21.64 13.41,21.58L10.5,13L10.43,21.59C9.03,21.65 7.7,21.79 6.5,22V2Z\";\nexport var mdiNetwork = \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\";\nexport var mdiNetworkOff = \"M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z\";\nexport var mdiNetworkOffOutline = \"M1.04,5.27L5,9.23V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.77L19.77,24L21.04,22.72L2.32,4L1.04,5.27M7,11.23L10.77,15H7V11.23M15,20A1,1 0 0,0 14,19H13V17.23L15.77,20H15M22,20V21.14L20.86,20H22M7,6.14L5.14,4.28C5.43,3.53 6.16,3 7,3H17A2,2 0 0,1 19,5V15C19,15.85 18.47,16.57 17.72,16.86L15.86,15H17V5H7V6.14Z\";\nexport var mdiNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7Z\";\nexport var mdiNetworkPos = \"M17 9H8V7H17V9M7 7H5V9H7V7M7 4H5V6H7V4M10 4H8V6H10V4M13 17V19H14C14.55 19 15 19.45 15 20H22V22H15C15 22.55 14.55 23 14 23H10C9.45 23 9 22.55 9 22H2V20H9C9 19.45 9.45 19 10 19H11V17H4C2.89 17 2 16.11 2 15L2 3C2 1.89 2.9 1 4 1H20C21.11 1 22 1.89 22 3L22 15C22 16.11 21.11 17 20 17H13M20 15V3H4V15L20 15M11 6H19V4H11V6M5 12H11V10H5V12M13 14H19V12H13V14Z\";\nexport var mdiNetworkStrength1 = \"M1,21H21V1M19,5.83V19H11V13.83\";\nexport var mdiNetworkStrength1Alert = \"M21 1L1 21H17V19H11V13.8L19 5.8V9H21M19 11V17H21V11M19 19V21H21V19\";\nexport var mdiNetworkStrength2 = \"M1,21H21V1M19,5.83V19H13V11.83\";\nexport var mdiNetworkStrength2Alert = \"M21 1L1 21H17V19H13V11.8L19 5.8V9H21M19 11V17H21V11M19 19V21H21V19\";\nexport var mdiNetworkStrength3 = \"M1,21H21V1M19,5.83V19H16V8.83\";\nexport var mdiNetworkStrength3Alert = \"M21 1L1 21H17V19H16V8.8L19 5.8V9H21M19 11V17H21V11M19 19V21H21V19\";\nexport var mdiNetworkStrength4 = \"M1,21H21V1\";\nexport var mdiNetworkStrength4Alert = \"M19 17H21V11H19M19 21H21V19H19M1 21H17V9H21V1\";\nexport var mdiNetworkStrength4Cog = \"M17 13C16.9 13 16.8 13.1 16.7 13.2L16.5 14.5C16.2 14.6 15.9 14.8 15.7 15L14.5 14.5C14.4 14.5 14.3 14.5 14.2 14.6L13.2 16.3C13.1 16.4 13.2 16.5 13.3 16.6L14.4 17.4V18.4L13.3 19.2C13.2 19.3 13.2 19.4 13.2 19.5L14.2 21.2C14.3 21.3 14.4 21.3 14.5 21.3L15.7 20.8C16 21 16.2 21.2 16.5 21.3L16.7 22.6C16.7 22.7 16.8 22.8 17 22.8H19C19.1 22.8 19.2 22.7 19.2 22.6L19.4 21.3C19.7 21.2 20 21 20.2 20.8L21.4 21.3C21.5 21.3 21.7 21.3 21.7 21.2L22.7 19.5C22.8 19.4 22.7 19.3 22.6 19.2L21.5 18.4V17.9 17.4L22.6 16.6C22.7 16.5 22.7 16.4 22.7 16.3L21.7 14.6C21.6 14.5 21.5 14.5 21.4 14.5L20.3 15C20 14.8 19.8 14.6 19.4 14.5L19.2 13.2C19.2 13.1 19.1 13 19 13H17M18 16.5C18.8 16.5 19.5 17.2 19.5 18S18.8 19.5 18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5M11.7 21H1L21 1V11.7C20.1 11.3 19.1 11 18 11C14.1 11 11 14.1 11 18C11 19.1 11.2 20.1 11.7 21Z\";\nexport var mdiNetworkStrengthOff = \"M21,1L12.4,9.6L21,18.19M4.77,4.5L3.5,5.77L9.86,12.13L1,21H18.73L20.73,23L22,21.73\";\nexport var mdiNetworkStrengthOffOutline = \"M21,1L12.4,9.6L13.85,11.05L19,5.83V16.19L21,18.19M4.77,4.5L3.5,5.77L9.86,12.13L1,21H18.73L20.73,23L22,21.73M11.33,13.6L16.73,19H6\";\nexport var mdiNetworkStrengthOutline = \"M1,21H21V1M19,5.83V19H6\";\nexport var mdiNewBox = \"M20,4C21.11,4 22,4.89 22,6V18C22,19.11 21.11,20 20,20H4C2.89,20 2,19.11 2,18V6C2,4.89 2.89,4 4,4H20M8.5,15V9H7.25V12.5L4.75,9H3.5V15H4.75V11.5L7.3,15H8.5M13.5,10.26V9H9.5V15H13.5V13.75H11V12.64H13.5V11.38H11V10.26H13.5M20.5,14V9H19.25V13.5H18.13V10H16.88V13.5H15.75V9H14.5V14A1,1 0 0,0 15.5,15H19.5A1,1 0 0,0 20.5,14Z\";\nexport var mdiNewspaper = \"M20,11H4V8H20M20,15H13V13H20M20,19H13V17H20M11,19H4V13H11M20.33,4.67L18.67,3L17,4.67L15.33,3L13.67,4.67L12,3L10.33,4.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V3L20.33,4.67Z\";\nexport var mdiNewspaperCheck = \"M20.33 4.67L18.67 3L17 4.67L15.33 3L13.67 4.67L12 3L10.33 4.67L8.67 3L7 4.67L5.33 3L3.67 4.67L2 3V19C2 20.11 2.9 21 4 21H12.8C12.29 20.12 12 19.09 12 18C12 16.77 12.37 15.63 13 14.68V13H14.68C15.63 12.37 16.77 12 18 12C19.53 12 20.93 12.58 22 13.5V3L20.33 4.67M11 19H4V13H11V19M20 11H4V8H20V11M16.75 21.16L14 18.16L15.16 17L16.75 18.59L20.34 15L21.5 16.41L16.75 21.16\";\nexport var mdiNewspaperMinus = \"M22,17V19H14V17H22M20,11V8H4V11H20M13,13V14.68C12.37,15.63 12,16.77 12,18C12,19.09 12.29,20.12 12.8,21H4A2,2 0 0,1 2,19V3L3.67,4.67L5.33,3L7,4.67L8.67,3L10.33,4.67L12,3L13.67,4.67L15.33,3L17,4.67L18.67,3L20.33,4.67L22,3V13.5C20.93,12.58 19.53,12 18,12C16.77,12 15.63,12.37 14.68,13H13M11,19V13H4V19H11Z\";\nexport var mdiNewspaperPlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M20,11V8H4V11H20M13,13V14.68C12.37,15.63 12,16.77 12,18C12,19.09 12.29,20.12 12.8,21H4A2,2 0 0,1 2,19V3L3.67,4.67L5.33,3L7,4.67L8.67,3L10.33,4.67L12,3L13.67,4.67L15.33,3L17,4.67L18.67,3L20.33,4.67L22,3V13.5C20.93,12.58 19.53,12 18,12C16.77,12 15.63,12.37 14.68,13H13M11,19V13H4V19H11Z\";\nexport var mdiNewspaperRemove = \"M20.12 14.46L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.46M20.33 4.67L18.67 3L17 4.67L15.33 3L13.67 4.67L12 3L10.33 4.67L8.67 3L7 4.67L5.33 3L3.67 4.67L2 3V19C2 20.11 2.9 21 4 21H12.8C12.29 20.12 12 19.09 12 18C12 16.77 12.37 15.63 13 14.68V13H14.68C15.63 12.37 16.77 12 18 12C19.53 12 20.93 12.58 22 13.5V3L20.33 4.67M11 19H4V13H11V19M20 11H4V8H20V11Z\";\nexport var mdiNewspaperVariant = \"M20 3H4C2.89 3 2 3.89 2 5V19C2 20.11 2.89 21 4 21H20C21.11 21 22 20.11 22 19V5C22 3.89 21.11 3 20 3M5 7H10V13H5V7M19 17H5V15H19V17M19 13H12V11H19V13M19 9H12V7H19V9Z\";\nexport var mdiNewspaperVariantMultiple = \"M4 7V19H19V21H4C2 21 2 19 2 19V7H4M21.3 3H7.7C6.76 3 6 3.7 6 4.55V15.45C6 16.31 6.76 17 7.7 17H21.3C22.24 17 23 16.31 23 15.45V4.55C23 3.7 22.24 3 21.3 3M8 5H13V11H8V5M21 15H8V13H21V15M21 11H15V9H21V11M21 7H15V5H21V7Z\";\nexport var mdiNewspaperVariantMultipleOutline = \"M4 7V19H19V21H4C2 21 2 19 2 19V7H4M21 5V15H8V5H21M21.3 3H7.7C6.76 3 6 3.7 6 4.55V15.45C6 16.31 6.76 17 7.7 17H21.3C22.24 17 23 16.31 23 15.45V4.55C23 3.7 22.24 3 21.3 3M9 6H12V11H9V6M20 14H9V12H20V14M20 8H14V6H20V8M20 11H14V9H20V11Z\";\nexport var mdiNewspaperVariantOutline = \"M20 5L20 19L4 19L4 5H20M20 3H4C2.89 3 2 3.89 2 5V19C2 20.11 2.89 21 4 21H20C21.11 21 22 20.11 22 19V5C22 3.89 21.11 3 20 3M18 15H6V17H18V15M10 7H6V13H10V7M12 9H18V7H12V9M18 11H12V13H18V11Z\";\nexport var mdiNfc = \"M7.24 2C5.6 2 3.96 2 3.55 2.04C2.67 2.09 2.08 2.73 2.04 3.56C2 4.37 2 19.59 2.04 20.41C2.09 21.23 2.71 21.86 3.55 21.91C4.46 21.96 7.44 21.97 8.29 21.97C6.76 20.91 6.55 18.92 6.41 15.23C6.33 13.04 6.4 5.36 6.41 5.04L6.45 2.94L14.5 11V13.5L8.09 7.11C8.08 8.38 8.06 10.03 8.06 11.54C8.06 13 8.08 14.34 8.12 15.05C8.36 19.07 8.74 20.96 10.83 21.7C11.5 21.93 12.07 22 13.07 22C13.89 22 19.63 22 20.45 21.96C21.33 21.91 21.93 21.27 21.97 20.44C22 19.63 22 4.45 21.97 3.62C21.91 2.8 21.29 2.18 20.45 2.13C19.54 2.08 16.57 2.03 15.71 2.03C17.24 3.09 17.44 5.08 17.59 8.78C17.67 10.97 17.6 18.64 17.59 18.97L17.55 21.06L9.53 13V10.5L15.91 16.89C15.92 15.62 15.94 13.97 15.94 12.46C15.94 11 15.92 9.66 15.88 8.96C15.64 4.93 15.26 3.04 13.17 2.3C12.53 2.07 11.93 2 10.93 2H7.24Z\";\nexport var mdiNfcSearchVariant = \"M16.5,12C19,12 21,14 21,16.5C21,17.38 20.76,18.21 20.32,18.9L23.4,22L22,23.39L18.89,20.32C18.2,20.75 17.38,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19C17.89,19 19,17.88 19,16.5A2.5,2.5 0 0,0 16.5,14M18,6V10.18C17.33,10 16.66,9.97 16,10V8H13V10.28L13.53,10.72C12.34,11.33 11.35,12.3 10.72,13.53C10.28,13.17 10,12.62 10,12C10,11.26 10.41,10.62 11,10.28V8A2,2 0 0,1 13,6H18M6,18V6H8L10,6V8H8V16H10C9.96,16.68 10,17.35 10.17,18H6M20,4H4V20H11C11.53,20.8 12.21,21.5 13.03,22H4C2.89,22 2,21.1 2,20V4A2,2 0 0,1 4,2H20A2,2 0 0,1 22,4V13.04C21.5,12.24 20.82,11.54 20,11V4Z\";\nexport var mdiNfcTap = \"M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M4,4H11A2,2 0 0,1 13,6V9H11V6H4V11H6V9L9,12L6,15V13H4A2,2 0 0,1 2,11V6A2,2 0 0,1 4,4M20,20H13A2,2 0 0,1 11,18V15H13V18H20V13H18V15L15,12L18,9V11H20A2,2 0 0,1 22,13V18A2,2 0 0,1 20,20Z\";\nexport var mdiNfcVariant = \"M18,6H13A2,2 0 0,0 11,8V10.28C10.41,10.62 10,11.26 10,12A2,2 0 0,0 12,14C13.11,14 14,13.1 14,12C14,11.26 13.6,10.62 13,10.28V8H16V16H8V8H10V6H8L6,6V18H18M20,20H4V4H20M20,2H4A2,2 0 0,0 2,4V20A2,2 0 0,0 4,22H20C21.11,22 22,21.1 22,20V4C22,2.89 21.11,2 20,2Z\";\nexport var mdiNfcVariantOff = \"M1.25,2.05L21.95,22.75L20.7,24L18.7,22H4A2,2 0 0,1 2,20V5.3L0,3.3L1.25,2.05M3.81,2C3.87,2 3.94,2 4,2H20C21.11,2 22,2.89 22,4V20C22,20.06 22,20.13 22,20.19L20,18.2V4H5.8L3.81,2M6,9.3L4,7.3V20H16.7L14.7,18H6V9.3M18,16.2L16,14.2V8H13V10.28C13.6,10.62 14,11.26 14,12C14,12.06 14,12.13 14,12.19L11,9.2V8A2,2 0 0,1 13,6H18V16.2M8,16H12.7L8,11.3V16M10,8H9.8L7.8,6H10V8Z\";\nexport var mdiNinja = \"M7.75,13C7.74,12.65 7.9,12.31 8.17,12.08C8.92,12.24 9.62,12.55 10.25,13C10.25,13.68 9.69,14.24 9,14.24C8.31,14.24 7.76,13.69 7.75,13M13.75,13C14.38,12.56 15.08,12.25 15.83,12.09C16.1,12.32 16.26,12.66 16.25,13C16.25,13.7 15.69,14.26 15,14.26C14.31,14.26 13.75,13.7 13.75,13V13M12,9C9.23,8.96 6.5,9.65 4.07,11L4,12C4,13.23 4.29,14.44 4.84,15.54C7.21,15.18 9.6,15 12,15C14.4,15 16.79,15.18 19.16,15.54C19.71,14.44 20,13.23 20,12L19.93,11C17.5,9.65 14.77,8.96 12,9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNintendoGameBoy = \"M7 1C5.9 1 5 1.9 5 3V21C5 22.11 5.9 23 7 23H14C16.76 23 19 20.76 19 18V3C19 1.9 18.11 1 17 1H7M8 4H16V11H8V4M9 14H10V16H12V17H10V19H9V17H7V16H9V14M16 15C16.55 15 17 15.45 17 16C17 16.55 16.55 17 16 17C15.45 17 15 16.55 15 16C15 15.45 15.45 15 16 15M14 17C14.55 17 15 17.45 15 18C15 18.55 14.55 19 14 19C13.45 19 13 18.55 13 18C13 17.45 13.45 17 14 17Z\";\nexport var mdiNintendoSwitch = \"M10.04,20.4H7.12C6.19,20.4 5.3,20 4.64,19.36C4,18.7 3.6,17.81 3.6,16.88V7.12C3.6,6.19 4,5.3 4.64,4.64C5.3,4 6.19,3.62 7.12,3.62H10.04V20.4M7.12,2A5.12,5.12 0 0,0 2,7.12V16.88C2,19.71 4.29,22 7.12,22H11.65V2H7.12M5.11,8C5.11,9.04 5.95,9.88 7,9.88C8.03,9.88 8.87,9.04 8.87,8C8.87,6.96 8.03,6.12 7,6.12C5.95,6.12 5.11,6.96 5.11,8M17.61,11C18.72,11 19.62,11.89 19.62,13C19.62,14.12 18.72,15 17.61,15C16.5,15 15.58,14.12 15.58,13C15.58,11.89 16.5,11 17.61,11M16.88,22A5.12,5.12 0 0,0 22,16.88V7.12C22,4.29 19.71,2 16.88,2H13.65V22H16.88Z\";\nexport var mdiNintendoWii = \"M17.84,16.94H15.97V10.79H17.84V16.94M18,8.58C18,9.19 17.5,9.69 16.9,9.69A1.11,1.11 0 0,1 15.79,8.58C15.79,7.96 16.29,7.46 16.9,7.46C17.5,7.46 18,7.96 18,8.58M21.82,16.94H19.94V10.79H21.82V16.94M22,8.58C22,9.19 21.5,9.69 20.88,9.69A1.11,1.11 0 0,1 19.77,8.58C19.77,7.96 20.27,7.46 20.88,7.46C21.5,7.46 22,7.96 22,8.58M12.9,8.05H14.9L12.78,15.5C12.78,15.5 12.5,17.04 11.28,17.04C10.07,17.04 9.79,15.5 9.79,15.5L8.45,10.64L7.11,15.5C7.11,15.5 6.82,17.04 5.61,17.04C4.4,17.04 4.12,15.5 4.12,15.5L2,8.05H4L5.72,14.67L7.11,9.3C7.43,7.95 8.45,7.97 8.45,7.97C8.45,7.97 9.47,7.95 9.79,9.3L11.17,14.67L12.9,8.05Z\";\nexport var mdiNintendoWiiu = \"M2,15.96C2,18.19 3.54,19.5 5.79,19.5H18.57C20.47,19.5 22,18.2 22,16.32V6.97C22,5.83 21.15,4.6 20.11,4.6H17.15V12.3C17.15,18.14 6.97,18.09 6.97,12.41V4.5H4.72C3.26,4.5 2,5.41 2,6.85V15.96M9.34,11.23C9.34,15.74 14.66,15.09 14.66,11.94V4.5H9.34V11.23Z\";\nexport var mdiNix = \"M9.9 8.7L5 17.2L3.9 15.3L5.2 13H2.6L2 12L2.6 11H6.3L7.6 8.7H9.9M10.2 15.5H19.9L18.8 17.4H16.2L17.5 19.7L16.9 20.7H15.8L14 17.4H11.3L10.2 15.5M15.9 11.8L11 3.3H13.2L14.5 5.6L15.8 3.3H16.9L17.5 4.3L15.6 7.5L17 9.8L15.9 11.8M13.8 8.5H4L5.1 6.6H7.7L6.4 4.3L7 3.3H8.1L10 6.5H12.7L13.8 8.5M14.1 15.3L19 6.8L20.1 8.7L18.8 11H21.4L22 12L21.4 13H17.7L16.4 15.3H14.1M8.1 12.2L13 20.6H10.8L9.5 18.3L8.4 20.6H7.1L6.5 19.6L8.4 16.4L7 14.2L8.1 12.2Z\";\nexport var mdiNodejs = \"M12,1.85C11.73,1.85 11.45,1.92 11.22,2.05L3.78,6.35C3.3,6.63 3,7.15 3,7.71V16.29C3,16.85 3.3,17.37 3.78,17.65L5.73,18.77C6.68,19.23 7,19.24 7.44,19.24C8.84,19.24 9.65,18.39 9.65,16.91V8.44C9.65,8.32 9.55,8.22 9.43,8.22H8.5C8.37,8.22 8.27,8.32 8.27,8.44V16.91C8.27,17.57 7.59,18.22 6.5,17.67L4.45,16.5C4.38,16.45 4.34,16.37 4.34,16.29V7.71C4.34,7.62 4.38,7.54 4.45,7.5L11.89,3.21C11.95,3.17 12.05,3.17 12.11,3.21L19.55,7.5C19.62,7.54 19.66,7.62 19.66,7.71V16.29C19.66,16.37 19.62,16.45 19.55,16.5L12.11,20.79C12.05,20.83 11.95,20.83 11.88,20.79L10,19.65C9.92,19.62 9.84,19.61 9.79,19.64C9.26,19.94 9.16,20 8.67,20.15C8.55,20.19 8.36,20.26 8.74,20.47L11.22,21.94C11.46,22.08 11.72,22.15 12,22.15C12.28,22.15 12.54,22.08 12.78,21.94L20.22,17.65C20.7,17.37 21,16.85 21,16.29V7.71C21,7.15 20.7,6.63 20.22,6.35L12.78,2.05C12.55,1.92 12.28,1.85 12,1.85M14,8C11.88,8 10.61,8.89 10.61,10.39C10.61,12 11.87,12.47 13.91,12.67C16.34,12.91 16.53,13.27 16.53,13.75C16.53,14.58 15.86,14.93 14.3,14.93C12.32,14.93 11.9,14.44 11.75,13.46C11.73,13.36 11.64,13.28 11.53,13.28H10.57C10.45,13.28 10.36,13.37 10.36,13.5C10.36,14.74 11.04,16.24 14.3,16.24C16.65,16.24 18,15.31 18,13.69C18,12.08 16.92,11.66 14.63,11.35C12.32,11.05 12.09,10.89 12.09,10.35C12.09,9.9 12.29,9.3 14,9.3C15.5,9.3 16.09,9.63 16.32,10.66C16.34,10.76 16.43,10.83 16.53,10.83H17.5C17.55,10.83 17.61,10.81 17.65,10.76C17.69,10.72 17.72,10.66 17.7,10.6C17.56,8.82 16.38,8 14,8Z\";\nexport var mdiNoodles = \"M22 3L10 4.41V6H22V7H10V12H22C22 13.81 21.43 15.46 20.32 16.95S17.77 19.53 16 20.25V22H8V20.25C6.24 19.53 4.79 18.43 3.68 16.95S2 13.81 2 12H5V4L22 2V3M6 4.88V6H7V4.78L6 4.88M6 7V12H7V7H6M9 12V7H8V12H9M9 6V4.55L8 4.64V6H9Z\";\nexport var mdiNotEqual = \"M21,10H9V8H21V10M21,16H9V14H21V16M4,5H6V16H4V5M6,18V20H4V18H6Z\";\nexport var mdiNotEqualVariant = \"M14.08,4.61L15.92,5.4L14.8,8H19V10H13.95L12.23,14H19V16H11.38L9.92,19.4L8.08,18.61L9.2,16H5V14H10.06L11.77,10H5V8H12.63L14.08,4.61Z\";\nexport var mdiNote = \"M14,10V4.5L19.5,10M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V9L15,3H5Z\";\nexport var mdiNoteAlert = \"M3 3C1.89 3 1 3.89 1 5V19C1 20.11 1.9 21 3 21H17C18.11 21 19 20.11 19 19V9L13 3H3M12 10V4.5L17.5 10H12M23 7V13H21V7H23M21 15H23V17H21V15Z\";\nexport var mdiNoteAlertOutline = \"M3 3C1.89 3 1 3.89 1 5V19C1 20.1 1.89 21 3 21H17C18.11 21 19 20.11 19 19V9L13 3H3M17 19H3V5H10V12H17V19M12 10V4.5L17.5 10H12M23 7V13H21V7H23M21 15H23V17H21V15Z\";\nexport var mdiNoteCheck = \"M19 13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M14 4.5L19.5 10H14V4.5M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiNoteCheckOutline = \"M5 19V5H12V12H19V13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H13.35C13.13 20.37 13 19.7 13 19H5M14 4.5L19.5 10H14V4.5M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiNoteEdit = \"M21 10V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H11V19.13L19.39 10.74C19.83 10.3 20.39 10.06 21 10M14 4.5L19.5 10H14V4.5M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83Z\";\nexport var mdiNoteEditOutline = \"M18.13 12L19.39 10.74C19.83 10.3 20.39 10.06 21 10V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H11V19.13L11.13 19H5V5H12V12H18.13M14 4.5L19.5 10H14V4.5M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19Z\";\nexport var mdiNoteMinus = \"M19 13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M14 4.5L19.5 10H14V4.5M23 18V20H15V18H23Z\";\nexport var mdiNoteMinusOutline = \"M23 18V20H15V18H23M13 19C13 19.7 13.13 20.37 13.35 21H5C3.89 21 3 20.1 3 19V5C3 3.89 3.89 3 5 3H15L21 9V13.35C20.37 13.13 19.7 13 19 13V12H12V5H5V19H13M14 10H19.5L14 4.5V10Z\";\nexport var mdiNoteMultiple = \"M16,9H21.5L16,3.5V9M7,2H17L23,8V18A2,2 0 0,1 21,20H7C5.89,20 5,19.1 5,18V4A2,2 0 0,1 7,2M3,6V22H21V24H3A2,2 0 0,1 1,22V6H3Z\";\nexport var mdiNoteMultipleOutline = \"M3,6V22H21V24H3A2,2 0 0,1 1,22V6H3M16,9H21.5L16,3.5V9M7,2H17L23,8V18A2,2 0 0,1 21,20H7C5.89,20 5,19.1 5,18V4A2,2 0 0,1 7,2M7,4V18H21V11H14V4H7Z\";\nexport var mdiNoteOff = \"M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.9 21 3 20.11 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L20.7 20.04L20.7 20.05L22.11 21.46M21 17.8L6.2 3H15L21 9V17.8M19.5 10L14 4.5V10H19.5Z\";\nexport var mdiNoteOffOutline = \"M12 5V8.8L15.2 12H19V15.8L21 17.8V9L15 3H6.2L8.2 5H12M14 4.5L19.5 10H14V4.5M20.7 20.05L20.7 20.04L19 18.34V18.35L12.66 12H12.66L12 11.34V11.35L6.14 5.5L2.39 1.73L1.11 3L3 4.9C3 4.93 3 4.97 3 5V19C3 20.1 3.89 21 5 21H19C19.03 21 19.07 21 19.1 21L20.84 22.73L22.11 21.46L20.7 20.05M5 19V6.89L17.11 19H5Z\";\nexport var mdiNoteOutline = \"M14,10H19.5L14,4.5V10M5,3H15L21,9V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3M5,5V19H19V12H12V5H5Z\";\nexport var mdiNotePlus = \"M19 13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M14 4.5L19.5 10H14V4.5M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiNotePlusOutline = \"M5 19V5H12V12H19V13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H13.35C13.13 20.37 13 19.7 13 19H5M14 4.5L19.5 10H14V4.5M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiNoteRemove = \"M19 13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H13.35C13.13 20.37 13 19.7 13 19C13 15.69 15.69 13 19 13M14 4.5L19.5 10H14V4.5M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiNoteRemoveOutline = \"M5 19V5H12V12H19V13C19.7 13 20.37 13.13 21 13.35V9L15 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H13.35C13.13 20.37 13 19.7 13 19H5M14 4.5L19.5 10H14V4.5M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiNoteSearch = \"M15 3H5C3.89 3 3 3.89 3 5V10.82C5.55 8.37 9.59 8.4 12.1 10.9C14.63 13.44 14.63 17.56 12.1 20.1C11.74 20.45 11.35 20.74 10.94 21H19C20.11 21 21 20.11 21 19V9L15 3M14 10V4.5L19.5 10H14M7.5 11C5 11 3 13 3 15.5C3 16.38 3.25 17.21 3.69 17.9L.61 21L2 22.39L5.12 19.32C5.81 19.75 6.63 20 7.5 20C10 20 12 18 12 15.5S10 11 7.5 11M7.5 18C6.12 18 5 16.88 5 15.5S6.12 13 7.5 13 10 14.12 10 15.5 8.88 18 7.5 18Z\";\nexport var mdiNoteSearchOutline = \"M15 3H5C3.89 3 3 3.89 3 5V10.82C3.6 10.24 4.28 9.8 5 9.5V5H12V10.82C12.03 10.85 12.07 10.87 12.1 10.9C12.44 11.24 12.73 11.61 12.97 12H19V19H12.97C12.73 19.39 12.44 19.76 12.1 20.1C11.74 20.45 11.35 20.74 10.94 21H19C20.11 21 21 20.11 21 19V9L15 3M14 10V4.5L19.5 10H14M7.5 11C5 11 3 13 3 15.5C3 16.38 3.25 17.21 3.69 17.9L.61 21L2 22.39L5.12 19.32C5.81 19.75 6.63 20 7.5 20C10 20 12 18 12 15.5S10 11 7.5 11M7.5 18C6.12 18 5 16.88 5 15.5S6.12 13 7.5 13 10 14.12 10 15.5 8.88 18 7.5 18Z\";\nexport var mdiNoteText = \"M14,10H19.5L14,4.5V10M5,3H15L21,9V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3M5,12V14H19V12H5M5,16V18H14V16H5Z\";\nexport var mdiNoteTextOutline = \"M15 3H5A2 2 0 0 0 3 5V19A2 2 0 0 0 5 21H19A2 2 0 0 0 21 19V9L15 3M19 19H5V5H14V10H19M17 14H7V12H17M14 17H7V15H14\";\nexport var mdiNotebook = \"M3,7V5H5V4C5,2.89 5.9,2 7,2H13V9L15.5,7.5L18,9V2H19C20.05,2 21,2.95 21,4V20C21,21.05 20.05,22 19,22H7C5.95,22 5,21.05 5,20V19H3V17H5V13H3V11H5V7H3M7,11H5V13H7V11M7,7V5H5V7H7M7,19V17H5V19H7Z\";\nexport var mdiNotebookCheck = \"M16.75 22.16L14 19.16L15.16 18L16.75 19.59L20.34 16L21.5 17.41L16.75 22.16M3 7V5H5V4C5 2.89 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20.05 2 21 2.95 21 4V13.8C20.12 13.29 19.09 13 18 13C14.69 13 12 15.69 12 19C12 20.09 12.29 21.12 12.8 22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3M5 5V7H7V5H5M5 19H7V17H5V19M5 13H7V11H5V13Z\";\nexport var mdiNotebookCheckOutline = \"M16.75 22.16L14 19.16L15.16 18L16.75 19.59L20.34 16L21.5 17.41L16.75 22.16M17 4V10L15 8L13 10V4H9V20H12.08C12.2 20.72 12.45 21.39 12.8 22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.89 5.9 2 7 2H19C20.05 2 21 2.95 21 4V13.8C20.39 13.45 19.72 13.2 19 13.08V4H17M5 19H7V17H5V19M5 13H7V11H5V13M5 7H7V5H5V7Z\";\nexport var mdiNotebookEdit = \"M21.04 13.13C21.18 13.13 21.31 13.19 21.42 13.3L22.7 14.58C22.92 14.79 22.92 15.14 22.7 15.35L21.7 16.35L19.65 14.3L20.65 13.3C20.76 13.19 20.9 13.13 21.04 13.13M19.07 14.88L21.12 16.93L15.06 23H13V20.94L19.07 14.88M3 7V5H5V4C5 2.89 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20.05 2 21 2.95 21 4V10L11 20V22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3M5 7H7V5H5V7M5 11V13H7V11H5M5 17V19H7V17H5Z\";\nexport var mdiNotebookEditOutline = \"M19.07 14.88L21.12 16.93L15.06 23H13V20.94L19.07 14.88M21.04 13.13C21.18 13.13 21.31 13.19 21.42 13.3L22.7 14.58C22.92 14.79 22.92 15.14 22.7 15.35L21.7 16.35L19.65 14.3L20.65 13.3C20.76 13.19 20.9 13.13 21.04 13.13M17 4V10L15 8L13 10V4H9V20H11V22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.89 5.9 2 7 2H19C20.05 2 21 2.95 21 4V10L19 12V4H17M5 5V7H7V5H5M5 11V13H7V11H5M5 17V19H7V17H5Z\";\nexport var mdiNotebookHeart = \"M19 23.3L18.4 22.8C16.4 20.9 15 19.7 15 18.2C15 17 16 16 17.2 16C17.9 16 18.6 16.3 19 16.8C19.4 16.3 20.1 16 20.8 16C22 16 23 16.9 23 18.2C23 19.7 21.6 20.9 19.6 22.8L19 23.3M3 7V5H5V4C5 2.89 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20.05 2 21 2.95 21 4V13.34C20.37 13.12 19.7 13 19 13C15.69 13 13 15.69 13 19C13 20.09 13.29 21.12 13.8 22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3M5 5V7H7V5H5M5 19H7V17H5V19M5 13H7V11H5V13Z\";\nexport var mdiNotebookHeartOutline = \"M19 23.3L18.4 22.8C16.4 20.9 15 19.7 15 18.2C15 17 16 16 17.2 16C17.9 16 18.6 16.3 19 16.8C19.4 16.3 20.1 16 20.8 16C22 16 23 16.9 23 18.2C23 19.7 21.6 20.9 19.6 22.8L19 23.3M17 4V10L15 8L13 10V4H9V20H13.08C13.2 20.72 13.45 21.39 13.8 22H7C5.95 22 5 21.05 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.89 5.9 2 7 2H19C20.05 2 21 2.95 21 4V13.34C20.37 13.12 19.7 13 19 13V4H17M5 19H7V17H5V19M5 13H7V11H5V13M5 7H7V5H5V7Z\";\nexport var mdiNotebookMinus = \"M3 7V5H5V4C5 2.9 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20 2 21 3 21 4V13.8C20.1 13.3 19.1 13 18 13C14.7 13 12 15.7 12 19C12 20.1 12.3 21.1 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3M5 5V7H7V5H5M5 19H7V17H5V19M5 13H7V11H5V13M14 18V20H22V18H14Z\";\nexport var mdiNotebookMinusOutline = \"M17 4V10L15 8L13 10V4H9V20H12.1C12.2 20.7 12.5 21.4 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.9 5.9 2 7 2H19C20 2 21 3 21 4V13.8C20.4 13.4 19.7 13.2 19 13.1V4H17M5 19H7V17H5V19M5 13H7V11H5V13M5 7H7V5H5V7M14 18V20H22V18H14Z\";\nexport var mdiNotebookMultiple = \"M9.05,9H7.06V6H9.05V4.03H7.06V3.03C7.06,1.92 7.95,1.04 9.05,1.04H15.03V8L17.5,6.5L20,8V1.04H21C22.05,1.04 23,2 23,3.03V17C23,18.03 22.05,19 21,19H9.05C8,19 7.06,18.05 7.06,17V16H9.05V14H7.06V11H9.05V9M1,18H3V15H1V13H3V10H1V8H3V5H5V8H3V10H5V13H3V15H5V18H3V20H5V21H21V23H5A2,2 0 0,1 3,21V20H1V18Z\";\nexport var mdiNotebookOutline = \"M17,4V10L15,8L13,10V4H9V20H19V4H17M3,7V5H5V4C5,2.89 5.9,2 7,2H19C20.05,2 21,2.95 21,4V20C21,21.05 20.05,22 19,22H7C5.95,22 5,21.05 5,20V19H3V17H5V13H3V11H5V7H3M5,5V7H7V5H5M5,19H7V17H5V19M5,13H7V11H5V13Z\";\nexport var mdiNotebookPlus = \"M3 7V5H5V4C5 2.9 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20 2 21 3 21 4V13.8C20.1 13.3 19.1 13 18 13C14.7 13 12 15.7 12 19C12 20.1 12.3 21.1 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3M5 5V7H7V5H5M5 19H7V17H5V19M5 13H7V11H5V13M17 15V18H14V20H17V23H19V20H22V18H19V15H17Z\";\nexport var mdiNotebookPlusOutline = \"M17 4V10L15 8L13 10V4H9V20H12.1C12.2 20.7 12.5 21.4 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.9 5.9 2 7 2H19C20 2 21 3 21 4V13.8C20.4 13.4 19.7 13.2 19 13.1V4H17M5 19H7V17H5V19M5 13H7V11H5V13M5 7H7V5H5V7M17 15V18H14V20H17V23H19V20H22V18H19V15H17Z\";\nexport var mdiNotebookRemove = \"M3 7V5H5V4C5 2.9 5.9 2 7 2H13V9L15.5 7.5L18 9V2H19C20 2 21 3 21 4V13.8C20.1 13.3 19.1 13 18 13C14.7 13 12 15.7 12 19C12 20.1 12.3 21.1 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3M5 5V7H7V5H5M5 19H7V17H5V19M5 13H7V11H5V13M20.1 15.5L18 17.6L15.9 15.5L14.5 16.9L16.6 19L14.5 21.1L15.9 22.5L18 20.4L20.1 22.5L21.5 21.1L19.4 19L21.5 16.9L20.1 15.5Z\";\nexport var mdiNotebookRemoveOutline = \"M17 4V10L15 8L13 10V4H9V20H12.1C12.2 20.7 12.5 21.4 12.8 22H7C5.9 22 5 21 5 20V19H3V17H5V13H3V11H5V7H3V5H5V4C5 2.9 5.9 2 7 2H19C20 2 21 3 21 4V13.8C20.4 13.4 19.7 13.2 19 13.1V4H17M5 19H7V17H5V19M5 13H7V11H5V13M5 7H7V5H5V7M20.1 15.5L18 17.6L15.9 15.5L14.5 16.9L16.6 19L14.5 21.1L15.9 22.5L18 20.4L20.1 22.5L21.5 21.1L19.4 19L21.5 16.9L20.1 15.5Z\";\nexport var mdiNotificationClearAll = \"M5,13H19V11H5M3,17H17V15H3M7,7V9H21V7\";\nexport var mdiNpm = \"M4,10V14H6V11H7V14H8V10H4M9,10V15H11V14H13V10H9M12,11V13H11V11H12M14,10V14H16V11H17V14H18V11H19V14H20V10H14M3,9H21V15H12V16H8V15H3V9Z\";\nexport var mdiNuke = \"M14.04,12H10V11H5.5A3.5,3.5 0 0,1 2,7.5A3.5,3.5 0 0,1 5.5,4C6.53,4 7.45,4.44 8.09,5.15C8.5,3.35 10.08,2 12,2C13.92,2 15.5,3.35 15.91,5.15C16.55,4.44 17.47,4 18.5,4A3.5,3.5 0 0,1 22,7.5A3.5,3.5 0 0,1 18.5,11H14.04V12M10,16.9V15.76H5V13.76H19V15.76H14.04V16.92L20,19.08C20.58,19.29 21,19.84 21,20.5A1.5,1.5 0 0,1 19.5,22H4.5A1.5,1.5 0 0,1 3,20.5C3,19.84 3.42,19.29 4,19.08L10,16.9Z\";\nexport var mdiNull = \"M12,2C13.85,2 15.55,2.78 16.9,4.1L18.6,1.93L20.18,3.16L18.2,5.68C19.33,7.41 20,9.6 20,12C20,17.5 16.42,22 12,22C10.15,22 8.45,21.22 7.1,19.9L5.4,22.07L3.82,20.84L5.8,18.32C4.67,16.59 4,14.4 4,12C4,6.5 7.58,2 12,2M12,4C8.69,4 6,7.58 6,12C6,13.73 6.41,15.33 7.11,16.64L15.67,5.67C14.66,4.62 13.38,4 12,4M12,20C15.31,20 18,16.42 18,12C18,10.27 17.59,8.67 16.89,7.36L8.33,18.33C9.34,19.38 10.62,20 12,20Z\";\nexport var mdiNumeric = \"M4,17V9H2V7H6V17H4M22,15C22,16.11 21.1,17 20,17H16V15H20V13H18V11H20V9H16V7H20A2,2 0 0,1 22,9V10.5A1.5,1.5 0 0,1 20.5,12A1.5,1.5 0 0,1 22,13.5V15M14,15V17H8V13C8,11.89 8.9,11 10,11H12V9H8V7H12A2,2 0 0,1 14,9V11C14,12.11 13.1,13 12,13H10V15H14Z\";\nexport var mdiNumeric0 = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9Z\";\nexport var mdiNumeric0Box = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9Z\";\nexport var mdiNumeric0BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M13,5A2,2 0 0,0 11,7V13A2,2 0 0,0 13,15H15A2,2 0 0,0 17,13V7A2,2 0 0,0 15,5H13M13,7H15V13H13V7Z\";\nexport var mdiNumeric0BoxMultipleOutline = \"M21,17V3H7V17H21M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M13,5H15A2,2 0 0,1 17,7V13A2,2 0 0,1 15,15H13A2,2 0 0,1 11,13V7A2,2 0 0,1 13,5M13,7V13H15V7H13Z\";\nexport var mdiNumeric0BoxOutline = \"M19,19V5H5V19H19M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11Z\";\nexport var mdiNumeric0Circle = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11M11,9H13V15H11V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric0CircleOutline = \"M11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,9V15H13V9H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric1 = \"M10,7V9H12V17H14V7H10Z\";\nexport var mdiNumeric1Box = \"M14,17H12V9H10V7H14M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric1BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M14,15H16V5H12V7H14V15Z\";\nexport var mdiNumeric1BoxMultipleOutline = \"M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M14,15H16V5H12V7H14M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric1BoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,17H14V7H10V9H12\";\nexport var mdiNumeric1Circle = \"M10,7V9H12V17H14V7H10M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric1CircleOutline = \"M10,7H14V17H12V9H10V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric10 = \"M10 7H6V9H8V17H10V7M16 7H14C12.9 7 12 7.9 12 9V15C12 16.11 12.9 17 14 17H16C17.11 17 18 16.11 18 15V9C18 7.9 17.11 7 16 7M16 15H14V9H16V15Z\";\nexport var mdiNumeric10Box = \"M14,9H16V15H14V9M21,5V19C21,20.11 20.11,21 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19C20.11,3 21,3.9 21,5M10,7H6V9H8V17H10V7M18,9A2,2 0 0,0 16,7H14A2,2 0 0,0 12,9V15C12,16.11 12.9,17 14,17H16C17.11,17 18,16.11 18,15V9Z\";\nexport var mdiNumeric10BoxMultiple = \"M3 5V21H19V23H3C1.9 23 1 22.11 1 21V5H3M16 13H18V7H16V13M21 1H7C5.9 1 5 1.9 5 3V17C5 18.11 5.9 19 7 19H21C22.11 19 23 18.11 23 17V3C23 1.9 22.11 1 21 1M12 15H10V7H8V5H12V15M20 13C20 14.11 19.11 15 18 15H16C14.9 15 14 14.11 14 13V7C14 5.9 14.9 5 16 5H18C19.11 5 20 5.9 20 7V13Z\";\nexport var mdiNumeric10BoxMultipleOutline = \"M21 17V3H7V17H21M21 1C22.11 1 23 1.9 23 3V17C23 18.11 22.11 19 21 19H7C5.9 19 5 18.11 5 17V3C5 1.9 5.9 1 7 1H21M3 5V21H19V23H3C1.9 23 1 22.11 1 21V5H3M12 5H8V7H10V15H12V5M18 5H16C14.9 5 14 5.9 14 7V13C14 14.11 14.9 15 16 15H18C19.11 15 20 14.11 20 13V7C20 5.9 19.11 5 18 5M18 13H16V7H18V13Z\";\nexport var mdiNumeric10BoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19C3,20.11 3.9,21 5,21H19C20.11,21 21,20.11 21,19V5A2,2 0 0,0 19,3M8,17H10V7H6V9H8M14,7H16C17.11,7 18,7.9 18,9V15C18,16.11 17.11,17 16,17H14A2,2 0 0,1 12,15V9A2,2 0 0,1 14,7M14,9V15H16V9H14Z\";\nexport var mdiNumeric10Circle = \"M14 9H16V15H14V9M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12 6.5 2 12 2 22 6.5 22 12M10 7H6V9H8V17H10V7M18 9C18 7.9 17.11 7 16 7H14C12.9 7 12 7.9 12 9V15C12 16.11 12.9 17 14 17H16C17.11 17 18 16.11 18 15V9Z\";\nexport var mdiNumeric10CircleOutline = \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12S7.58 20 12 20 20 16.42 20 12 16.42 4 12 4M10 7H6V9H8V17H10V7M16 7H14C12.9 7 12 7.9 12 9V15C12 16.11 12.9 17 14 17H16C17.11 17 18 16.11 18 15V9C18 7.9 17.11 7 16 7M16 15H14V9H16V15Z\";\nexport var mdiNumeric2 = \"M9,7V9H13V11H11A2,2 0 0,0 9,13V17H11L15,17V15H11V13H13A2,2 0 0,0 15,11V9A2,2 0 0,0 13,7H9Z\";\nexport var mdiNumeric2Box = \"M15,11C15,12.11 14.1,13 13,13H11V15H15V17H9V13C9,11.89 9.9,11 11,11H13V9H9V7H13A2,2 0 0,1 15,9M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric2BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M17,13H13V11H15A2,2 0 0,0 17,9V7C17,5.89 16.1,5 15,5H11V7H15V9H13A2,2 0 0,0 11,11V15H17V13M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21Z\";\nexport var mdiNumeric2BoxMultipleOutline = \"M17,13H13V11H15A2,2 0 0,0 17,9V7C17,5.89 16.1,5 15,5H11V7H15V9H13A2,2 0 0,0 11,11V15H17M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric2BoxOutline = \"M15,15H11V13H13A2,2 0 0,0 15,11V9C15,7.89 14.1,7 13,7H9V9H13V11H11A2,2 0 0,0 9,13V17H15M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric2Circle = \"M9,7V9H13V11H11A2,2 0 0,0 9,13V17H11L15,17V15H11V13H13A2,2 0 0,0 15,11V9A2,2 0 0,0 13,7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric2CircleOutline = \"M9,7H13A2,2 0 0,1 15,9V11A2,2 0 0,1 13,13H11V15H15V17H11L9,17V13A2,2 0 0,1 11,11H13V9H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric3 = \"M15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H9V9H13V11H11V13H13V15H9V17H13A2,2 0 0,0 15,15\";\nexport var mdiNumeric3Box = \"M15,10.5A1.5,1.5 0 0,1 13.5,12C14.34,12 15,12.67 15,13.5V15C15,16.11 14.11,17 13,17H9V15H13V13H11V11H13V9H9V7H13C14.11,7 15,7.89 15,9M19,3H5C3.91,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19C20.11,21 21,20.1 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric3BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M17,13V11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 17,8.5V7C17,5.89 16.1,5 15,5H11V7H15V9H13V11H15V13H11V15H15A2,2 0 0,0 17,13M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21Z\";\nexport var mdiNumeric3BoxMultipleOutline = \"M17,13V11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 17,8.5V7C17,5.89 16.1,5 15,5H11V7H15V9H13V11H15V13H11V15H15A2,2 0 0,0 17,13M3,5H1V21A2,2 0 0,0 3,23H19V21H3M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1Z\";\nexport var mdiNumeric3BoxOutline = \"M15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H9V9H13V11H11V13H13V15H9V17H13A2,2 0 0,0 15,15M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric3Circle = \"M15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H9V9H13V11H11V13H13V15H9V17H13A2,2 0 0,0 15,15M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric3CircleOutline = \"M15,15A2,2 0 0,1 13,17H9V15H13V13H11V11H13V9H9V7H13A2,2 0 0,1 15,9V10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 15,13.5V15M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric4 = \"M9,7V13H13V17H15V7H13V11H11V7H9Z\";\nexport var mdiNumeric4Box = \"M15,17H13V13H9V7H11V11H13V7H15M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric4BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M15,15H17V5H15V9H13V5H11V11H15V15Z\";\nexport var mdiNumeric4BoxMultipleOutline = \"M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M15,15H17V5H15V9H13V5H11V11H15M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric4BoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M13,17H15V7H13V11H11V7H9V13H13\";\nexport var mdiNumeric4Circle = \"M9,7V13H13V17H15V7H13V11H11V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric4CircleOutline = \"M9,7H11V11H13V7H15V17H13V13H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric5 = \"M9,7V13H13V15H9V17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H9Z\";\nexport var mdiNumeric5Box = \"M15,9H11V11H13A2,2 0 0,1 15,13V15C15,16.11 14.1,17 13,17H9V15H13V13H9V7H15M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric5BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M17,13V11C17,9.89 16.1,9 15,9H13V7H17V5H11V11H15V13H11V15H15A2,2 0 0,0 17,13Z\";\nexport var mdiNumeric5BoxMultipleOutline = \"M17,13V11C17,9.89 16.1,9 15,9H13V7H17V5H11V11H15V13H11V15H15A2,2 0 0,0 17,13M3,5H1V21A2,2 0 0,0 3,23H19V21H3M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1Z\";\nexport var mdiNumeric5BoxOutline = \"M15,15V13C15,11.89 14.1,11 13,11H11V9H15V7H9V13H13V15H9V17H13A2,2 0 0,0 15,15M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric5Circle = \"M9,7V13H13V15H9V17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric5CircleOutline = \"M9,7H15V9H11V11H13A2,2 0 0,1 15,13V15A2,2 0 0,1 13,17H9V15H13V13H9V7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric6 = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H11M11,13H13V15H11V13Z\";\nexport var mdiNumeric6Box = \"M15,9H11V11H13A2,2 0 0,1 15,13V15C15,16.11 14.1,17 13,17H11A2,2 0 0,1 9,15V9C9,7.89 9.9,7 11,7H15M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M11,15H13V13H11V15Z\";\nexport var mdiNumeric6BoxMultiple = \"M13,11H15V13H13V11M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M13,15H15A2,2 0 0,0 17,13V11C17,9.89 16.1,9 15,9H13V7H17V5H13A2,2 0 0,0 11,7V13C11,14.11 11.9,15 13,15Z\";\nexport var mdiNumeric6BoxMultipleOutline = \"M13,11H15V13H13M13,15H15A2,2 0 0,0 17,13V11C17,9.89 16.1,9 15,9H13V7H17V5H13A2,2 0 0,0 11,7V13C11,14.11 11.9,15 13,15M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric6BoxOutline = \"M11,13H13V15H11M11,17H13A2,2 0 0,0 15,15V13C15,11.89 14.1,11 13,11H11V9H15V7H11A2,2 0 0,0 9,9V15C9,16.11 9.9,17 11,17M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric6Circle = \"M11,7A2,2 0 0,0 9,9V15A2,2 0 0,0 11,17H13A2,2 0 0,0 15,15V13A2,2 0 0,0 13,11H11V9H15V7H11M11,13H13V15H11V13M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric6CircleOutline = \"M11,7H15V9H11V11H13A2,2 0 0,1 15,13V15A2,2 0 0,1 13,17H11A2,2 0 0,1 9,15V9A2,2 0 0,1 11,7M11,13V15H13V13H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric7 = \"M11,17L15,9V7H9V9H13L9,17\";\nexport var mdiNumeric7Box = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M11,17L15,9V7H9V9H13L9,17H11Z\";\nexport var mdiNumeric7BoxMultiple = \"M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M13,15L17,7V5H11V7H15L11,15H13M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21Z\";\nexport var mdiNumeric7BoxMultipleOutline = \"M13,15L17,7V5H11V7H15L11,15M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric7BoxOutline = \"M11,17L15,9V7H9V9H13L9,17M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric7Circle = \"M11,17L15,9V7H9V9H13L9,17H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric7CircleOutline = \"M11,17H9L13,9H9V7H15V9L11,17M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric8 = \"M11,13H13V15H11M11,9H13V11H11M11,17H13A2,2 0 0,0 15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H11A2,2 0 0,0 9,9V10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 9,13.5V15C9,16.11 9.9,17 11,17\";\nexport var mdiNumeric8Box = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M11,17H13A2,2 0 0,0 15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H11A2,2 0 0,0 9,9V10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 9,13.5V15C9,16.11 9.9,17 11,17M11,13H13V15H11V13M11,9H13V11H11V9Z\";\nexport var mdiNumeric8BoxMultiple = \"M13,11H15V13H13V11M13,7H15V9H13V7M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M13,15H15A2,2 0 0,0 17,13V11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 17,8.5V7C17,5.89 16.1,5 15,5H13A2,2 0 0,0 11,7V8.5A1.5,1.5 0 0,0 12.5,10A1.5,1.5 0 0,0 11,11.5V13C11,14.11 11.9,15 13,15M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21Z\";\nexport var mdiNumeric8BoxMultipleOutline = \"M13,11H15V13H13M13,7H15V9H13M13,15H15A2,2 0 0,0 17,13V11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 17,8.5V7C17,5.89 16.1,5 15,5H13A2,2 0 0,0 11,7V8.5A1.5,1.5 0 0,0 12.5,10A1.5,1.5 0 0,0 11,11.5V13C11,14.11 11.9,15 13,15M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric8BoxOutline = \"M11,13H13V15H11M11,9H13V11H11M11,17H13A2,2 0 0,0 15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H11A2,2 0 0,0 9,9V10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 9,13.5V15C9,16.11 9.9,17 11,17M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric8Circle = \"M11,13H13V15H11V13M11,9H13V11H11V9M11,17H13A2,2 0 0,0 15,15V13.5A1.5,1.5 0 0,0 13.5,12A1.5,1.5 0 0,0 15,10.5V9C15,7.89 14.1,7 13,7H11A2,2 0 0,0 9,9V10.5A1.5,1.5 0 0,0 10.5,12A1.5,1.5 0 0,0 9,13.5V15C9,16.11 9.9,17 11,17M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric8CircleOutline = \"M11,13V15H13V13H11M11,9V11H13V9H11M11,17A2,2 0 0,1 9,15V13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 9,10.5V9A2,2 0 0,1 11,7H13A2,2 0 0,1 15,9V10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 15,13.5V15A2,2 0 0,1 13,17H11M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric9 = \"M13,17A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11A2,2 0 0,0 9,9V11A2,2 0 0,0 11,13H13V15H9V17H13M13,11H11V9H13V11Z\";\nexport var mdiNumeric9Box = \"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M13,11H11V9H13V11M13,7H11A2,2 0 0,0 9,9V11C9,12.11 9.9,13 11,13H13V15H9V17H13A2,2 0 0,0 15,15V9C15,7.89 14.1,7 13,7Z\";\nexport var mdiNumeric9BoxMultiple = \"M15,9H13V7H15V9M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M15,5H13A2,2 0 0,0 11,7V9C11,10.11 11.9,11 13,11H15V13H11V15H15A2,2 0 0,0 17,13V7C17,5.89 16.1,5 15,5M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21Z\";\nexport var mdiNumeric9BoxMultipleOutline = \"M15,9H13V7H15M15,5H13A2,2 0 0,0 11,7V9C11,10.11 11.9,11 13,11H15V13H11V15H15A2,2 0 0,0 17,13V7C17,5.89 16.1,5 15,5M21,17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric9BoxOutline = \"M13,11H11V9H13M13,7H11A2,2 0 0,0 9,9V11C9,12.11 9.9,13 11,13H13V15H9V17H13A2,2 0 0,0 15,15V9C15,7.89 14.1,7 13,7M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z\";\nexport var mdiNumeric9Circle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M13,17A2,2 0 0,0 15,15V9A2,2 0 0,0 13,7H11A2,2 0 0,0 9,9V11A2,2 0 0,0 11,13H13V15H9V17H13M13,11H11V9H13V11Z\";\nexport var mdiNumeric9CircleOutline = \"M13,17H9V15H13V13H11A2,2 0 0,1 9,11V9A2,2 0 0,1 11,7H13A2,2 0 0,1 15,9V15A2,2 0 0,1 13,17M13,11V9H11V11H13M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumeric9Plus = \"M19 11H17V9H15V11H13V13H15V15H17V13H19V11M10 7H8C6.9 7 6 7.9 6 9V11C6 12.11 6.9 13 8 13H10V15H6V17H10C11.11 17 12 16.11 12 15V9C12 7.89 11.1 7 10 7M10 11H8V9H10V11Z\";\nexport var mdiNumeric9PlusBox = \"M21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5M19,11H17V9H15V11H13V13H15V15H17V13H19V11M10,7H8A2,2 0 0,0 6,9V11C6,12.11 6.9,13 8,13H10V15H6V17H10A2,2 0 0,0 12,15V9C12,7.89 11.1,7 10,7M8,9H10V11H8V9Z\";\nexport var mdiNumeric9PlusBoxMultiple = \"M11,9V8H12V9H11M21,1A2,2 0 0,1 23,3V17A2,2 0 0,1 21,19H7A2,2 0 0,1 5,17V3A2,2 0 0,1 7,1H21M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M15,9V11H17V13H19V11H21V9H19V7H17V9H15M14,12V8C14,6.89 13.1,6 12,6H11A2,2 0 0,0 9,8V9C9,10.11 9.9,11 11,11H12V12H9V14H12A2,2 0 0,0 14,12Z\";\nexport var mdiNumeric9PlusBoxMultipleOutline = \"M21,9H19V7H17V9H15V11H17V13H19V11H21V17H7V3H21M21,1H7A2,2 0 0,0 5,3V17A2,2 0 0,0 7,19H21A2,2 0 0,0 23,17V3A2,2 0 0,0 21,1M11,9V8H12V9M14,12V8C14,6.89 13.1,6 12,6H11A2,2 0 0,0 9,8V9C9,10.11 9.9,11 11,11H12V12H9V14H12A2,2 0 0,0 14,12M3,5H1V21A2,2 0 0,0 3,23H19V21H3V5Z\";\nexport var mdiNumeric9PlusBoxOutline = \"M19,11H17V9H15V11H13V13H15V15H17V13H19V19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M9,11V10H10V11M12,14V10C12,8.89 11.1,8 10,8H9A2,2 0 0,0 7,10V11C7,12.11 7.9,13 9,13H10V14H7V16H10A2,2 0 0,0 12,14Z\";\nexport var mdiNumeric9PlusCircle = \"M19,11H17V9H15V11H13V13H15V15H17V13H19V11M10,7H8A2,2 0 0,0 6,9V11C6,12.11 6.9,13 8,13H10V15H6V17H10A2,2 0 0,0 12,15V9C12,7.89 11.1,7 10,7M8,9H10V11H8V9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z\";\nexport var mdiNumeric9PlusCircleOutline = \"M19,11V13H17V15H15V13H13V11H15V9H17V11H19M10,7A2,2 0 0,1 12,9V15C12,16.11 11.1,17 10,17H6V15H10V13H8A2,2 0 0,1 6,11V9C6,7.89 6.9,7 8,7H10M8,9V11H10V9H8M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiNumericNegative1 = \"M13 7V9H15V17H17V7H13M11 13H5V11H11V13Z\";\nexport var mdiNumericOff = \"M22.1 21.5L2.4 1.7L1.1 3L5.1 7H2V9H4V17H6V7.9L9.3 11.2C8.5 11.4 8 12.2 8 13V17H14V15.9L20.8 22.7L22.1 21.5M10 15V13H11.1L13.1 15H10M14 10.8L10.2 7H12C13.1 7 14 7.9 14 9V10.8M20 9H16V7H20C21.1 7 22 7.9 22 9V10.5C22 11.3 21.3 12 20.5 12C21.3 12 22 12.7 22 13.5V15C22 16 21.2 16.9 20.2 17L18.2 15H20V13H18V11H20V9Z\";\nexport var mdiNumericPositive1 = \"M13 7V9H15V17H17V7H13M11 13H9V15H7V13H5V11H7V9H9V11H11V13Z\";\nexport var mdiNut = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nexport var mdiNutrition = \"M22,18A4,4 0 0,1 18,22H14A4,4 0 0,1 10,18V16H22V18M4,3H14A2,2 0 0,1 16,5V14H8V19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,6V8H6V6H4M14,8V6H8V8H14M4,10V12H6V10H4M8,10V12H14V10H8M4,14V16H6V14H4Z\";\nexport var mdiNuxt = \"M21.8 18.36L16.03 8.08C15.93 8 15.63 7.43 15.03 7.43C14.78 7.43 14.43 7.53 14.07 8.08L13.33 9.26L11.31 5.65C11.26 5.55 10.91 5 10.31 5C10.06 5 9.66 5.1 9.36 5.65L2.18 18.31C2.13 18.41 1.83 19 2.13 19.5C2.23 19.75 2.53 20 3.19 20H20.85C20.95 20 21.6 20 21.9 19.5C22 19.26 22.1 18.86 21.8 18.36M8.1 18.31L7.95 18.86H3.24L10.36 6.34L12.66 10.47L8.1 18.31M9.21 18.86L13.32 11.66L17.5 18.86H9.21M18.74 18.86L18.54 18.31L14 10.46L15.03 8.73L20.75 18.86H18.74Z\";\nexport var mdiOar = \"M20.23,15.21C18.77,13.75 14.97,10.2 12.77,11.27L4.5,3L3,4.5L11.28,12.79C10.3,15 13.88,18.62 15.35,20.08C17.11,21.84 18.26,20.92 19.61,19.57C21.1,18.08 21.61,16.61 20.23,15.21Z\";\nexport var mdiOcarina = \"M20,12C16.8,10.4 13.4,9.7 10.8,9.3L9.7,5.9C9.3,4.8 7.7,4.8 7.3,5.9L6.3,9C3.9,9.4 2,11.5 2,14C2,16.8 4.2,19 7,19C7,19 14,19 20,16C20,16 22,15 22,14C22,13 20,12 20,12M5,14C4.4,14 4,13.6 4,13C4,12.4 4.4,12 5,12C5.6,12 6,12.4 6,13C6,13.5 5.6,14 5,14M7,17C6.4,17 6,16.6 6,16C6,15.4 6.4,15 7,15C7.6,15 8,15.4 8,16C8,16.5 7.6,17 7,17M9,14C8.4,14 8,13.6 8,13C8,12.4 8.4,12 9,12C9.6,12 10,12.4 10,13C10,13.5 9.6,14 9,14M11,17C10.4,17 10,16.6 10,16C10,15.4 10.4,15 11,15C11.6,15 12,15.4 12,16C12,16.5 11.6,17 11,17M16,14C15.4,14 15,13.6 15,13C15,12.4 15.4,12 16,12C16.6,12 17,12.4 17,13C17,13.5 16.6,14 16,14M19,15C18.4,15 18,14.6 18,14C18,13.4 18.4,13 19,13C19.6,13 20,13.4 20,14C20,14.5 19.6,15 19,15Z\";\nexport var mdiOci = \"M2 2V22H22V2M19.12 19.03H4.87V5H19.13V19.03M14.83 10.71H17.69V17.59H14.83M14.83 6.41H17.69V9.27H14.83M6.3 6.41V17.59H13.4V14.72H9.17V9.28H13.4V6.41Z\";\nexport var mdiOcr = \"M2 5V19H14V17H12C10.89 17 10 16.11 10 15V9C10 7.89 10.89 7 12 7H14V5M14 7V9H16V7M14 9H12V15H14M14 15V17H16V15M5 7H7C8.11 7 9 7.89 9 9V15C9 16.11 8.11 17 7 17H5C3.89 17 3 16.11 3 15V9C3 7.89 3.89 7 5 7M17 7V17H19V13H20V14H21V17H23V14H22V12H23V8H22V7M5 9V15H7V9M19 9H21V11H19Z\";\nexport var mdiOctagon = \"M15.73,3H8.27L3,8.27V15.73L8.27,21H15.73L21,15.73V8.27\";\nexport var mdiOctagonOutline = \"M8.27,3L3,8.27V15.73L8.27,21H15.73C17.5,19.24 21,15.73 21,15.73V8.27L15.73,3M9.1,5H14.9L19,9.1V14.9L14.9,19H9.1L5,14.9V9.1\";\nexport var mdiOctagram = \"M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06Z\";\nexport var mdiOctagramEdit = \"M2.2 16.06L3.88 12L2.2 7.94L6.26 6.26L7.94 2.2L12 3.88L16.06 2.2L17.74 6.26L21.8 7.94L20.94 10C20.38 10.06 19.82 10.3 19.38 10.75L11 19.13V20.53L7.94 21.8L6.26 17.74L2.2 16.06M19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19L21.87 15.17L19.83 13.13M21.17 15.88L15.04 22H13V19.96L19.13 13.83L21.17 15.88L21.17 15.88Z\";\nexport var mdiOctagramEditOutline = \"M3.88 12L2.2 16.06L6.26 17.74L7.94 21.8L11 20.53V18.36L9 19.19L7.79 16.21L4.81 15L6.05 12L4.81 9L7.79 7.79L9 4.81L12 6.05L15 4.81L16.21 7.79L19.19 9L17.95 12L18 12.13L19.38 10.75C19.82 10.3 20.38 10.06 20.94 10L21.8 7.94L17.74 6.26L16.06 2.2L12 3.88L7.94 2.2L6.26 6.26L2.2 7.94L3.88 12M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiOctagramMinus = \"M2.2 16.06L3.88 12L2.2 7.94L6.26 6.26L7.94 2.2L12 3.88L16.06 2.2L17.74 6.26L21.8 7.94L20.12 12L20.63 13.22C20.11 13.08 19.56 13 19 13C15.69 13 13 15.69 13 19C13 19.56 13.08 20.11 13.22 20.63L12 20.12L7.94 21.8L6.26 17.74L2.2 16.06M15 20V18H23V20H15Z\";\nexport var mdiOctagramMinusOutline = \"M2.2 16.06L3.88 12L2.2 7.94L6.26 6.26L7.94 2.2L12 3.88L16.06 2.2L17.74 6.26L21.8 7.94L20.12 12L20.63 13.22C20.11 13.08 19.56 13 19 13C18.79 13 18.58 13 18.38 13.03L17.95 12L19.19 9L16.21 7.79L15 4.81L12 6.05L9 4.81L7.79 7.79L4.81 9L6.05 12L4.81 15L7.79 16.21L9 19.19L12 17.95L13.03 18.38C13 18.58 13 18.79 13 19C13 19.56 13.08 20.11 13.22 20.63L12 20.12L7.94 21.8L6.26 17.74L2.2 16.06M15 18V20H23V18H15Z\";\nexport var mdiOctagramOutline = \"M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06M4.81,9L6.05,12L4.81,15L7.79,16.21L9,19.19L12,17.95L15,19.19L16.21,16.21L19.19,15L17.95,12L19.19,9L16.21,7.79L15,4.81L12,6.05L9,4.81L7.79,7.79L4.81,9Z\";\nexport var mdiOctagramPlus = \"M2.2 16.06L3.88 12L2.2 7.94L6.26 6.26L7.94 2.2L12 3.88L16.06 2.2L17.74 6.26L21.8 7.94L20.12 12L20.63 13.22C20.11 13.08 19.56 13 19 13C15.69 13 13 15.69 13 19C13 19.56 13.08 20.11 13.22 20.63L12 20.12L7.94 21.8L6.26 17.74L2.2 16.06M20 20H23V18H20V15H18V18H15V20H18V23H20V20Z\";\nexport var mdiOctagramPlusOutline = \"M2.2 16.06L3.88 12L2.2 7.94L6.26 6.26L7.94 2.2L12 3.88L16.06 2.2L17.74 6.26L21.8 7.94L20.12 12L20.63 13.22C20.11 13.08 19.56 13 19 13C18.79 13 18.58 13 18.38 13.03L17.95 12L19.19 9L16.21 7.79L15 4.81L12 6.05L9 4.81L7.79 7.79L4.81 9L6.05 12L4.81 15L7.79 16.21L9 19.19L12 17.95L13.03 18.38C13 18.58 13 18.79 13 19C13 19.56 13.08 20.11 13.22 20.63L12 20.12L7.94 21.8L6.26 17.74L2.2 16.06M20 20H23V18H20V15H18V18H15V20H18V23H20V20Z\";\nexport var mdiOctahedron = \"M21.7 11.29H21.71L12.71 2.29C12.5 2.1 12.26 2 12 2C11.74 2 11.5 2.1 11.29 2.29L2.29 11.29H2.3C1.91 11.68 1.91 12.32 2.3 12.71H2.29L11.29 21.71C11.5 21.9 11.74 22 12 22C12.26 22 12.5 21.9 12.71 21.71L21.71 12.71H21.7C22.09 12.32 22.09 11.68 21.7 11.29M13 8.28V5.41L17.3 9.71L13 8.28M11 8.28L6.7 9.71L11 5.41V8.28M12 10.05L17.84 12L12 13.95L6.16 12L12 10.05M11 15.72V18.59L6.7 14.29L11 15.72M13 15.72L17.3 14.29L13 18.59V15.72Z\";\nexport var mdiOctahedronOff = \"M11 5.41V7.8L13.88 10.68L17.84 12L15.86 12.66L18.81 15.61L21.71 12.71H21.7C22.09 12.32 22.09 11.68 21.7 11.29H21.71L12.71 2.29C12.5 2.1 12.26 2 12 2S11.5 2.1 11.29 2.29L8.39 5.19L9.81 6.61L11 5.41M13 5.41L17.3 9.71L13 8.28V5.41M2.39 1.73L1.11 3L5.85 7.74L2.29 11.29H2.3C1.91 11.68 1.91 12.32 2.3 12.71H2.29L11.29 21.71C11.5 21.9 11.74 22 12 22S12.5 21.9 12.71 21.71L16.26 18.15L20.84 22.73L22.11 21.46L2.39 1.73M7.26 9.15L7.54 9.43L6.7 9.71L7.26 9.15M11 18.59L6.7 14.29L11 15.72V18.59M12 13.95L6.16 12L9.12 11L12.04 13.93L12 13.95M13 18.59V15.72L13.62 15.5L14.85 16.74L13 18.59Z\";\nexport var mdiOdnoklassniki = \"M17.83,12.74C17.55,12.17 16.76,11.69 15.71,12.5C14.28,13.64 12,13.64 12,13.64C12,13.64 9.72,13.64 8.29,12.5C7.24,11.69 6.45,12.17 6.17,12.74C5.67,13.74 6.23,14.23 7.5,15.04C8.59,15.74 10.08,16 11.04,16.1L10.24,16.9C9.1,18.03 8,19.12 7.25,19.88C6.8,20.34 6.8,21.07 7.25,21.5L7.39,21.66C7.84,22.11 8.58,22.11 9.03,21.66L12,18.68C13.15,19.81 14.24,20.9 15,21.66C15.45,22.11 16.18,22.11 16.64,21.66L16.77,21.5C17.23,21.07 17.23,20.34 16.77,19.88L13.79,16.9L13,16.09C13.95,16 15.42,15.73 16.5,15.04C17.77,14.23 18.33,13.74 17.83,12.74M12,4.57C13.38,4.57 14.5,5.69 14.5,7.06C14.5,8.44 13.38,9.55 12,9.55C10.62,9.55 9.5,8.44 9.5,7.06C9.5,5.69 10.62,4.57 12,4.57M12,12.12C14.8,12.12 17.06,9.86 17.06,7.06C17.06,4.27 14.8,2 12,2C9.2,2 6.94,4.27 6.94,7.06C6.94,9.86 9.2,12.12 12,12.12Z\";\nexport var mdiOffer = \"M21 13C21.6 13 22.1 13.2 22.4 13.6C22.8 14 23 14.5 23 15L15 18L8 16V7H9.9L17.2 9.7C17.7 9.9 18 10.3 18 10.8C18 11.1 17.9 11.4 17.7 11.6C17.5 11.8 17.2 12 16.8 12H14L12.3 11.3L12 12.2L14 13H21M2 7H6V18H2V7Z\";\nexport var mdiOfficeBuilding = \"M5,3V21H11V17.5H13V21H19V3H5M7,5H9V7H7V5M11,5H13V7H11V5M15,5H17V7H15V5M7,9H9V11H7V9M11,9H13V11H11V9M15,9H17V11H15V9M7,13H9V15H7V13M11,13H13V15H11V13M15,13H17V15H15V13M7,17H9V19H7V17M15,17H17V19H15V17Z\";\nexport var mdiOfficeBuildingCog = \"M16 13C15.87 13 15.76 13.09 15.74 13.21L15.55 14.53C15.25 14.66 14.96 14.82 14.7 15L13.46 14.5C13.35 14.5 13.22 14.5 13.15 14.63L12.15 16.36C12.09 16.47 12.11 16.6 12.21 16.68L13.27 17.5C13.25 17.67 13.24 17.83 13.24 18S13.25 18.33 13.27 18.5L12.21 19.32C12.12 19.4 12.09 19.53 12.15 19.64L13.15 21.37C13.21 21.5 13.34 21.5 13.46 21.5L14.7 21C14.96 21.18 15.24 21.35 15.55 21.47L15.74 22.79C15.76 22.91 15.86 23 16 23H18C18.11 23 18.22 22.91 18.24 22.79L18.43 21.47C18.73 21.34 19 21.18 19.27 21L20.5 21.5C20.63 21.5 20.76 21.5 20.83 21.37L21.83 19.64C21.89 19.53 21.86 19.4 21.77 19.32L20.7 18.5C20.72 18.33 20.74 18.17 20.74 18S20.73 17.67 20.7 17.5L21.76 16.68C21.85 16.6 21.88 16.47 21.82 16.36L20.82 14.63C20.76 14.5 20.63 14.5 20.5 14.5L19.27 15C19 14.82 18.73 14.65 18.42 14.53L18.23 13.21C18.22 13.09 18.11 13 18 13H16M17 16.5C17.83 16.5 18.5 17.17 18.5 18S17.83 19.5 17 19.5C16.16 19.5 15.5 18.83 15.5 18S16.17 16.5 17 16.5M16 11.08V3H2V21H8V17.5H10.03C10.26 14.2 12.77 11.54 16 11.08M6 19H4V17H6V19M6 15H4V13H6V15M6 11H4V9H6V11M6 7H4V5H6V7M12 5H14V7H12V5M12 9H14V11H12V9M10 15H8V13H10V15M10 11H8V9H10V11M8 7V5H10V7H8Z\";\nexport var mdiOfficeBuildingCogOutline = \"M17 13C16.87 13 16.76 13.09 16.74 13.21L16.55 14.53C16.25 14.66 15.96 14.82 15.7 15L14.46 14.5C14.35 14.5 14.22 14.5 14.15 14.63L13.15 16.36C13.09 16.47 13.11 16.6 13.21 16.68L14.27 17.5C14.25 17.67 14.24 17.83 14.24 18S14.25 18.33 14.27 18.5L13.21 19.32C13.12 19.4 13.09 19.53 13.15 19.64L14.15 21.37C14.21 21.5 14.34 21.5 14.46 21.5L15.7 21C15.96 21.18 16.24 21.35 16.55 21.47L16.74 22.79C16.76 22.91 16.86 23 17 23H19C19.11 23 19.22 22.91 19.24 22.79L19.43 21.47C19.73 21.34 20 21.18 20.27 21L21.5 21.5C21.63 21.5 21.76 21.5 21.83 21.37L22.83 19.64C22.89 19.53 22.86 19.4 22.77 19.32L21.7 18.5C21.72 18.33 21.74 18.17 21.74 18S21.73 17.67 21.7 17.5L22.76 16.68C22.85 16.6 22.88 16.47 22.82 16.36L21.82 14.63C21.76 14.5 21.63 14.5 21.5 14.5L20.27 15C20 14.82 19.73 14.65 19.42 14.53L19.23 13.21C19.22 13.09 19.11 13 19 13H17M18 16.5C18.83 16.5 19.5 17.17 19.5 18S18.83 19.5 18 19.5C17.16 19.5 16.5 18.83 16.5 18S17.17 16.5 18 16.5M10 5H12V7H10V5M16 7H14V5H16V7M14 9H16V11H14V9M10 9H12V11H10V9M13.11 23H2V1H20V11.29C19.37 11.11 18.7 11 18 11V3H4V21H10V17.5H11.03C11 17.67 11 17.83 11 18C11 19.96 11.81 21.73 13.11 23M8 15H6V13H8V15M8 11H6V9H8V11M8 7H6V5H8V7M6 17H8V19H6V17M10 13H12V14.41C11.89 14.6 11.78 14.8 11.68 15H10V13Z\";\nexport var mdiOfficeBuildingMarker = \"M15.19 21C14.12 19.43 13 17.36 13 15.5C13 13.67 13.96 12 15.4 11H15V9H17V10.23C17.5 10.09 18 10 18.5 10C18.67 10 18.84 10 19 10.03V3H5V21H11V17.5H13V21H15.19M15 5H17V7H15V5M9 19H7V17H9V19M9 15H7V13H9V15M9 11H7V9H9V11M9 7H7V5H9V7M11 5H13V7H11V5M11 9H13V11H11V9M11 15V13H13V15H11M18.5 12C16.6 12 15 13.61 15 15.5C15 18.11 18.5 22 18.5 22S22 18.11 22 15.5C22 13.61 20.4 12 18.5 12M18.5 16.81C17.8 16.81 17.3 16.21 17.3 15.61C17.3 14.91 17.9 14.41 18.5 14.41S19.7 15 19.7 15.61C19.8 16.21 19.2 16.81 18.5 16.81Z\";\nexport var mdiOfficeBuildingMarkerOutline = \"M15 9H17V11H15V9M17 5H15V7H17V5M11 15H13V13H11V15M13 5H11V7H13V5M11 11H13V9H11V11M9 5H7V7H9V5M9 9H7V11H9V9M14.55 21H13V17.5H11V21H5V3H19V11.03C19.71 11.09 20.39 11.31 21 11.63V1H3V23H15.91C15.5 22.44 15 21.76 14.55 21M7 19H9V17H7V19M9 13H7V15H9V13M22 16.5C22 19.1 18.5 23 18.5 23S15 19.1 15 16.5C15 14.6 16.6 13 18.5 13S22 14.6 22 16.5M19.7 16.6C19.7 16 19.1 15.4 18.5 15.4S17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8S19.8 17.2 19.7 16.6Z\";\nexport var mdiOfficeBuildingMinus = \"M13.4 21C13.2 20.4 13 19.7 13 19C13 17.5 13.6 16.1 14.5 15H13V13H15V14.5C15.6 14 16.3 13.6 17 13.3V3H3V21H9V17.5H11V21H13.4M13 5H15V7H13V5M13 9H15V11H13V9M7 19H5V17H7V19M7 15H5V13H7V15M7 11H5V9H7V11M7 7H5V5H7V7M9 5H11V7H9V5M9 9H11V11H9V9M9 15V13H11V15H9M23 18V20H15V18H23Z\";\nexport var mdiOfficeBuildingMinusOutline = \"M12 11H10V9H12V11M14 11H16V9H14V11M13.4 21H12V17.5H10V21H4V3H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V1H2V23H14.5C14 22.4 13.6 21.7 13.4 21M14 7H16V5H14V7M16 13.8V13H14V15H14.5C15 14.5 15.5 14.1 16 13.8M8 5H6V7H8V5M8 9H6V11H8V9M6 19H8V17H6V19M12 5H10V7H12V5M10 15H12V13H10V15M8 13H6V15H8V13M15 18V20H23V18H15Z\";\nexport var mdiOfficeBuildingOutline = \"M19 3V21H13V17.5H11V21H5V3H19M15 7H17V5H15V7M11 7H13V5H11V7M7 7H9V5H7V7M15 11H17V9H15V11M11 11H13V9H11V11M7 11H9V9H7V11M15 15H17V13H15V15M11 15H13V13H11V15M7 15H9V13H7V15M15 19H17V17H15V19M7 19H9V17H7V19M21 1H3V23H21V1Z\";\nexport var mdiOfficeBuildingPlus = \"M13.4 21C13.2 20.4 13 19.7 13 19C13 17.5 13.6 16.1 14.5 15H13V13H15V14.5C15.6 14 16.3 13.6 17 13.3V3H3V21H9V17.5H11V21H13.4M13 5H15V7H13V5M13 9H15V11H13V9M7 19H5V17H7V19M7 15H5V13H7V15M7 11H5V9H7V11M7 7H5V5H7V7M9 5H11V7H9V5M9 9H11V11H9V9M9 15V13H11V15H9M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiOfficeBuildingPlusOutline = \"M12 11H10V9H12V11M14 11H16V9H14V11M13.4 21H12V17.5H10V21H4V3H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V1H2V23H14.5C14 22.4 13.6 21.7 13.4 21M14 7H16V5H14V7M16 13.8V13H14V15H14.5C15 14.5 15.5 14.1 16 13.8M8 5H6V7H8V5M8 9H6V11H8V9M6 19H8V17H6V19M12 5H10V7H12V5M10 15H12V13H10V15M8 13H6V15H8V13M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiOfficeBuildingRemove = \"M13.4 21C13.2 20.4 13 19.7 13 19C13 17.5 13.6 16.1 14.5 15H13V13H15V14.5C15.6 14 16.3 13.6 17 13.3V3H3V21H9V17.5H11V21H13.4M13 5H15V7H13V5M13 9H15V11H13V9M7 19H5V17H7V19M7 15H5V13H7V15M7 11H5V9H7V11M7 7H5V5H7V7M9 5H11V7H9V5M9 9H11V11H9V9M9 15V13H11V15H9M22.5 16.9L20.4 19L22.5 21.1L21.1 22.5L19 20.4L16.9 22.5L15.5 21.1L17.6 19L15.5 16.9L16.9 15.5L19 17.6L21.1 15.5L22.5 16.9Z\";\nexport var mdiOfficeBuildingRemoveOutline = \"M12 11H10V9H12V11M14 11H16V9H14V11M13.4 21H12V17.5H10V21H4V3H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V1H2V23H14.5C14 22.4 13.6 21.7 13.4 21M14 7H16V5H14V7M16 13.8V13H14V15H14.5C15 14.5 15.5 14.1 16 13.8M8 5H6V7H8V5M8 9H6V11H8V9M6 19H8V17H6V19M12 5H10V7H12V5M10 15H12V13H10V15M8 13H6V15H8V13M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5Z\";\nexport var mdiOil = \"M22,12.5C22,12.5 24,14.67 24,16A2,2 0 0,1 22,18A2,2 0 0,1 20,16C20,14.67 22,12.5 22,12.5M6,6H10A1,1 0 0,1 11,7A1,1 0 0,1 10,8H9V10H11C11.74,10 12.39,10.4 12.73,11L19.24,7.24L22.5,9.13C23,9.4 23.14,10 22.87,10.5C22.59,10.97 22,11.14 21.5,10.86L19.4,9.65L15.75,15.97C15.41,16.58 14.75,17 14,17H5A2,2 0 0,1 3,15V12A2,2 0 0,1 5,10H7V8H6A1,1 0 0,1 5,7A1,1 0 0,1 6,6M5,12V15H14L16.06,11.43L12.6,13.43L11.69,12H5M0.38,9.21L2.09,7.5C2.5,7.11 3.11,7.11 3.5,7.5C3.89,7.89 3.89,8.5 3.5,8.91L1.79,10.62C1.4,11 0.77,11 0.38,10.62C0,10.23 0,9.6 0.38,9.21Z\";\nexport var mdiOilLamp = \"M5,20H16V22H5M11,5H10A2,2 0 0,0 8,7H13A2,2 0 0,0 11,5M16,8H22A2,2 0 0,1 20,10H19A4,4 0 0,0 15,14V15A4,4 0 0,1 11,19H10A4,4 0 0,1 6,15H4A2,2 0 0,1 2,13V10A2,2 0 0,1 4,8M6,10H4V13H6M19,5A2,2 0 0,1 21,7H22A2.9,2.9 0 0,0 19,4A2,2 0 0,1 17,2H16A2.9,2.9 0 0,0 19,5\";\nexport var mdiOilLevel = \"M8 18C6.67 18 5.79 18.79 5.29 19.29S4.67 20 4 20 3.21 19.79 2.71 19.29C2.35 18.93 1.79 18.42 1 18.16V20.41C1.09 20.5 1.18 20.59 1.29 20.71C1.79 21.21 2.67 22 4 22S6.21 21.21 6.71 20.71 7.33 20 8 20 8.79 20.21 9.29 20.71C9.73 21.14 10.44 21.8 11.5 21.96C11.66 22 11.83 22 12 22C13.33 22 14.21 21.21 14.71 20.71S15.33 20 16 20 16.79 20.21 17.29 20.71 18.67 22 20 22 22.21 21.21 22.71 20.71C22.82 20.59 22.91 20.5 23 20.41V18.16C22.21 18.42 21.65 18.93 21.29 19.29C20.79 19.79 20.67 20 20 20S19.21 19.79 18.71 19.29 17.33 18 16 18 13.79 18.79 13.29 19.29 12.67 20 12 20C11.78 20 11.63 19.97 11.5 19.92C11.22 19.82 11.05 19.63 10.71 19.29C10.21 18.79 9.33 18 8 18M22 10.5C22 10.5 24 12.67 24 14C24 15.1 23.1 16 22 16S20 15.1 20 14C20 12.67 22 10.5 22 10.5M22.5 7.13L19.24 5.24L12.73 9C12.39 8.4 11.74 8 11 8H9V6H10C10.55 6 11 5.55 11 5S10.55 4 10 4H6C5.45 4 5 4.45 5 5S5.45 6 6 6H7V8H5C3.9 8 3 8.9 3 10V13C3 14.1 3.9 15 5 15H14C14.75 15 15.41 14.58 15.75 13.97L19.4 7.65L21.5 8.86C22 9.14 22.59 8.97 22.87 8.5C23.14 8 23 7.4 22.5 7.13M14 13H5V10H11.69L12.6 11.43L16.06 9.43L14 13M3.5 6.92L1.79 8.62A1 1 0 0 1 .38 7.21L2.09 5.5A1 1 0 0 1 3.5 5.5C3.89 5.89 3.89 6.5 3.5 6.92Z\";\nexport var mdiOilTemperature = \"M10 5H13V3H10V2C10 1.4 9.6 1 9 1S8 1.4 8 2V15.3C7.4 15.6 7 16.3 7 17C7 18.1 7.9 19 9 19S11 18.1 11 17C11 16.3 10.6 15.6 10 15.3V13H13V11H10V9H13V7H10V5M22 17.5C22 17.5 24 19.7 24 21C24 22.1 23.1 23 22 23S20 22.1 20 21C20 19.7 22 17.5 22 17.5M22.9 15.5C22.6 16 22 16.1 21.5 15.9L19.4 14.7L15.8 21C15.5 21.6 14.8 22 14 22H5C3.9 22 3 21.1 3 20V17C3 15.9 3.9 15 5 15V20H14L16.1 16.4L13 18.2V15.8L19.2 12.2L22.5 14.1C23 14.4 23.1 15 22.9 15.5M3.5 13.9L1.8 15.6C1.4 16 .8 16 .4 15.6S0 14.6.4 14.2L2.1 12.5C2.5 12.1 3.1 12.1 3.5 12.5S3.9 13.5 3.5 13.9Z\";\nexport var mdiOm = \"M15,2L13.5,3.5L15,5L16.5,3.5L15,2M11,3C10,9 17,10 20,6L18,4.5C17,6 13,8 11,3M9,7C7,7 4.5,8.5 4.5,8.5L6,11C7,10 9,9.5 10,10C12,11 9,13 7,12V15.5C10,14 12,16 11,17.5C8,22 3,16 3,13C1,19 6,22 9,22C12,22 14,20 12.5,15H14C12.5,19.5 18,24 21,18C22,16 22,9.5 17,9.5C13,9.5 14,15 10.5,13.5C14,10 12,7 9,7M19,12C22,15 15,21 15,15C15,13 17,10.5 19,12Z\";\nexport var mdiOmega = \"M19.15,19H13.39V16.87C15.5,15.25 16.59,13.24 16.59,10.84C16.59,9.34 16.16,8.16 15.32,7.29C14.47,6.42 13.37,6 12.03,6C10.68,6 9.57,6.42 8.71,7.3C7.84,8.17 7.41,9.37 7.41,10.88C7.41,13.26 8.5,15.26 10.61,16.87V19H4.85V16.87H8.41C6.04,15.32 4.85,13.23 4.85,10.6C4.85,8.5 5.5,6.86 6.81,5.66C8.12,4.45 9.84,3.85 11.97,3.85C14.15,3.85 15.89,4.45 17.19,5.64C18.5,6.83 19.15,8.5 19.15,10.58C19.15,13.21 17.95,15.31 15.55,16.87H19.15V19Z\";\nexport var mdiOneUp = \"M10,19V19C9.4,19 9,18.6 9,18V17C9,16.5 9.4,16 10,16V16C10.5,16 11,16.4 11,17V18C11,18.6 10.6,19 10,19M15,18V17C15,16.5 14.6,16 14,16V16C13.5,16 13,16.4 13,17V18C13,18.5 13.4,19 14,19V19C14.6,19 15,18.6 15,18M22,12C22,14.6 20.4,16.9 18,18.4V20A2,2 0 0,1 16,22H8A2,2 0 0,1 6,20V18.4C3.6,16.9 2,14.6 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M7,10C7,8.9 6.4,7.9 5.5,7.4C4.5,8.7 4,10.3 4,12C4,12.3 4,12.7 4.1,13C5.7,12.9 7,11.6 7,10M9,9C9,10.7 10.3,12 12,12C13.7,12 15,10.7 15,9C15,7.3 13.7,6 12,6C10.3,6 9,7.3 9,9M16,20V15.5C14.8,15.2 13.4,15 12,15C10.6,15 9.2,15.2 8,15.5V20H16M19.9,13C20,12.7 20,12.3 20,12C20,10.3 19.5,8.7 18.5,7.4C17.6,7.9 17,8.9 17,10C17,11.6 18.3,12.9 19.9,13Z\";\nexport var mdiOnepassword = \"M12,1C5.92,1 1,5.92 1,12C1,18.08 5.92,23 12,23C18.08,23 23,18.08 23,12C23,5.92 18.08,1 12,1M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M13,13.5C13,14.13 13.4,14.7 14,14.91V18H10V11.91C10.78,11.64 11.19,10.8 10.93,10C10.78,9.58 10.44,9.24 10,9.09V6H14V12.09C13.4,12.3 13,12.87 13,13.5Z\";\nexport var mdiOpacity = \"M17.66,8L12,2.35L6.34,8C4.78,9.56 4,11.64 4,13.64C4,15.64 4.78,17.75 6.34,19.31C7.9,20.87 9.95,21.66 12,21.66C14.05,21.66 16.1,20.87 17.66,19.31C19.22,17.75 20,15.64 20,13.64C20,11.64 19.22,9.56 17.66,8M6,14C6,12 6.62,10.73 7.76,9.6L12,5.27L16.24,9.65C17.38,10.77 18,12 18,14H6Z\";\nexport var mdiOpenInApp = \"M12,10L8,14H11V20H13V14H16M19,4H5C3.89,4 3,4.9 3,6V18A2,2 0 0,0 5,20H9V18H5V8H19V18H15V20H19A2,2 0 0,0 21,18V6A2,2 0 0,0 19,4Z\";\nexport var mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nexport var mdiOpenSourceInitiative = \"M15.41,22C15.35,22 15.28,22 15.22,22C15.1,21.95 15,21.85 14.96,21.73L12.74,15.93C12.65,15.69 12.77,15.42 13,15.32C13.71,15.06 14.28,14.5 14.58,13.83C15.22,12.4 14.58,10.73 13.15,10.09C11.72,9.45 10.05,10.09 9.41,11.5C9.11,12.21 9.09,13 9.36,13.69C9.66,14.43 10.25,15 11,15.28C11.24,15.37 11.37,15.64 11.28,15.89L9,21.69C8.96,21.81 8.87,21.91 8.75,21.96C8.63,22 8.5,22 8.39,21.96C3.24,19.97 0.67,14.18 2.66,9.03C4.65,3.88 10.44,1.31 15.59,3.3C18.06,4.26 20.05,6.15 21.13,8.57C22.22,11 22.29,13.75 21.33,16.22C20.32,18.88 18.23,21 15.58,22C15.5,22 15.47,22 15.41,22M12,3.59C7.03,3.46 2.9,7.39 2.77,12.36C2.68,16.08 4.88,19.47 8.32,20.9L10.21,16C8.38,15 7.69,12.72 8.68,10.89C9.67,9.06 11.96,8.38 13.79,9.36C15.62,10.35 16.31,12.64 15.32,14.47C14.97,15.12 14.44,15.65 13.79,16L15.68,20.93C17.86,19.95 19.57,18.16 20.44,15.93C22.28,11.31 20.04,6.08 15.42,4.23C14.33,3.8 13.17,3.58 12,3.59Z\";\nexport var mdiOpenid = \"M14,2L11,3.5V19.94C7,19.5 4,17.46 4,15C4,12.75 6.5,10.85 10,10.22V8.19C4.86,8.88 1,11.66 1,15C1,18.56 5.36,21.5 11,21.94C11.03,21.94 11.06,21.94 11.09,21.94L14,20.5V2M15,8.19V10.22C16.15,10.43 17.18,10.77 18.06,11.22L16.5,12L23,13.5L22.5,9L20.5,10C19,9.12 17.12,8.47 15,8.19Z\";\nexport var mdiOpera = \"M9.04,17.07C8.04,15.9 7.4,14.16 7.35,12.21V11.79C7.4,9.84 8.04,8.1 9.04,6.93C9.86,5.95 10.93,5.37 12.1,5.37C14.72,5.37 16.84,8.34 16.84,12C16.84,15.66 14.72,18.63 12.1,18.63C10.93,18.63 10.33,18.5 9.04,17.07M12.03,3H12A9,9 0 0,0 3,12C3,16.83 6.8,20.77 11.57,21H12C14.3,21 16.4,20.13 18,18.71C19.84,17.06 21,14.67 21,12C21,9.33 19.84,6.94 18,5.29C16.41,3.87 14.32,3 12.03,3Z\";\nexport var mdiOrbit = \"M8.11,1.75C9.3,1.25 10.62,1 12,1C18.08,1 23,5.92 23,12C23,18.08 18.08,23 12,23C5.92,23 1,18.08 1,12C1,10.62 1.25,9.3 1.72,8.08C2.24,8.61 2.83,8.96 3.45,9.18C3.16,10.07 3,11 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3C11,3 10.07,3.16 9.18,3.45C8.96,2.83 8.61,2.24 8.11,1.75M4.93,2.93C6.03,2.93 6.93,3.82 6.93,4.93A2,2 0 0,1 4.93,6.93C3.82,6.93 2.93,6.03 2.93,4.93C2.93,3.82 3.82,2.93 4.93,2.93M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7Z\";\nexport var mdiOrbitVariant = \"M19 8L15 12H18C18 15.31 15.31 18 12 18C11 18 10.03 17.75 9.2 17.3L7.74 18.76C8.97 19.54 10.43 20 12 20C16.42 20 20 16.42 20 12H23M6 12C6 8.69 8.69 6 12 6C13 6 13.97 6.25 14.8 6.7L16.26 5.24C15.03 4.46 13.57 4 12 4C7.58 4 4 7.58 4 12H1L5 16L9 12M14 12C14 13.11 13.11 14 12 14S10 13.11 10 12 10.9 10 12 10 14 10.9 14 12Z\";\nexport var mdiOrderAlphabeticalAscending = \"M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12M9 13V15L5.67 19H9V21H3V19L6.33 15H3V13M7 3H5C3.9 3 3 3.9 3 5V11H5V9H7V11H9V5C9 3.9 8.11 3 7 3M7 7H5V5H7Z\";\nexport var mdiOrderAlphabeticalDescending = \"M7 13H5C3.9 13 3 13.9 3 15V21H5V19H7V21H9V15C9 13.9 8.11 13 7 13M7 17H5V15H7M9 3V5L5.67 9H9V11H3V9L6.33 5H3V3M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12Z\";\nexport var mdiOrderBoolAscending = \"M6 3C3.79 3 2 4.79 2 7S3.79 11 6 11 10 9.21 10 7 8.21 3 6 3M6 9C4.9 9 4 8.1 4 7S4.9 5 6 5 8 5.9 8 7 7.1 9 6 9M6 13C3.79 13 2 14.79 2 17S3.79 21 6 21 10 19.21 10 17 8.21 13 6 13M12 5H22V7H12V5M12 19V17H22V19H12M12 11H22V13H12V11Z\";\nexport var mdiOrderBoolAscendingVariant = \"M4 13C2.89 13 2 13.89 2 15V19C2 20.11 2.89 21 4 21H8C9.11 21 10 20.11 10 19V15C10 13.89 9.11 13 8 13M8.2 14.5L9.26 15.55L5.27 19.5L2.74 16.95L3.81 15.9L5.28 17.39M4 3C2.89 3 2 3.89 2 5V9C2 10.11 2.89 11 4 11H8C9.11 11 10 10.11 10 9V5C10 3.89 9.11 3 8 3M4 5H8V9H4M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12Z\";\nexport var mdiOrderBoolDescending = \"M6 13C3.79 13 2 14.79 2 17S3.79 21 6 21 10 19.21 10 17 8.21 13 6 13M6 19C4.9 19 4 18.1 4 17S4.9 15 6 15 8 15.9 8 17 7.1 19 6 19M6 3C3.79 3 2 4.79 2 7S3.79 11 6 11 10 9.21 10 7 8.21 3 6 3M12 5H22V7H12V5M12 19V17H22V19H12M12 11H22V13H12V11Z\";\nexport var mdiOrderBoolDescendingVariant = \"M4 3C2.89 3 2 3.89 2 5V9C2 10.11 2.89 11 4 11H8C9.11 11 10 10.11 10 9V5C10 3.89 9.11 3 8 3M8.2 4.5L9.26 5.55L5.27 9.5L2.74 6.95L3.81 5.9L5.28 7.39M4 13C2.89 13 2 13.89 2 15V19C2 20.11 2.89 21 4 21H8C9.11 21 10 20.11 10 19V15C10 13.89 9.11 13 8 13M4 15H8V19H4M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12Z\";\nexport var mdiOrderNumericAscending = \"M7 21H3V19H7V18H5C3.9 18 3 17.11 3 16V15C3 13.9 3.9 13 5 13H7C8.11 13 9 13.9 9 15V19C9 20.11 8.11 21 7 21M7 15H5V16H7M5 3H7C8.11 3 9 3.9 9 5V9C9 10.11 8.11 11 7 11H5C3.9 11 3 10.11 3 9V5C3 3.9 3.9 3 5 3M5 9H7V5H5M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12Z\";\nexport var mdiOrderNumericDescending = \"M7 11H3V9H7V8H5C3.9 8 3 7.11 3 6V5C3 3.9 3.9 3 5 3H7C8.11 3 9 3.9 9 5V9C9 10.11 8.11 11 7 11M7 5H5V6H7M5 13H7C8.11 13 9 13.9 9 15V19C9 20.11 8.11 21 7 21H5C3.9 21 3 20.11 3 19V15C3 13.9 3.9 13 5 13M5 19H7V15H5M12 5H22V7H12M12 19V17H22V19M12 11H22V13H12Z\";\nexport var mdiOrigin = \"M12,2.13C12,2.23 11.95,2.33 11.89,2.41C11.5,3 11.16,3.64 11.04,4.33L11,4.56L12,4.5A7.5,7.5 0 0,1 19.5,12C19.5,13.62 19,15.11 18.12,16.34C16.73,18.68 14.72,20.65 12.34,21.97C12.25,22 12.12,22 12.06,21.93C12,21.83 12,21.7 12.09,21.61C12.47,21.09 12.73,20.5 12.87,19.85L12.93,19.44L12,19.5A7.5,7.5 0 0,1 4.5,12C4.5,10.39 5,8.89 5.88,7.67C7.26,5.32 9.28,3.34 11.67,2C11.78,1.95 11.94,2 12,2.13M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiOrnament = \"M12,1A3,3 0 0,1 15,4V5A1,1 0 0,1 16,6V7.07C18.39,8.45 20,11.04 20,14A8,8 0 0,1 12,22A8,8 0 0,1 4,14C4,11.04 5.61,8.45 8,7.07V6A1,1 0 0,1 9,5V4A3,3 0 0,1 12,1M12,3A1,1 0 0,0 11,4V5H13V4A1,1 0 0,0 12,3M12,8C10.22,8 8.63,8.77 7.53,10H16.47C15.37,8.77 13.78,8 12,8M6.34,16H7.59L6,14.43C6.05,15 6.17,15.5 6.34,16M12.59,16L8.59,12H6.41L10.41,16H12.59M17.66,12H16.41L18,13.57C17.95,13 17.83,12.5 17.66,12M11.41,12L15.41,16H17.59L13.59,12H11.41M12,20C13.78,20 15.37,19.23 16.47,18H7.53C8.63,19.23 10.22,20 12,20Z\";\nexport var mdiOrnamentVariant = \"M12,1A3,3 0 0,1 15,4V5A1,1 0 0,1 16,6V7.07C18.39,8.45 20,11.04 20,14A8,8 0 0,1 12,22A8,8 0 0,1 4,14C4,11.04 5.61,8.45 8,7.07V6A1,1 0 0,1 9,5V4A3,3 0 0,1 12,1M12,3A1,1 0 0,0 11,4V5H13V4A1,1 0 0,0 12,3M12,8C10.22,8 8.63,8.77 7.53,10H16.47C15.37,8.77 13.78,8 12,8M12,20C13.78,20 15.37,19.23 16.47,18H7.53C8.63,19.23 10.22,20 12,20M12,12A2,2 0 0,0 10,14A2,2 0 0,0 12,16A2,2 0 0,0 14,14A2,2 0 0,0 12,12M18,14C18,13.31 17.88,12.65 17.67,12C16.72,12.19 16,13 16,14C16,15 16.72,15.81 17.67,15.97C17.88,15.35 18,14.69 18,14M6,14C6,14.69 6.12,15.35 6.33,15.97C7.28,15.81 8,15 8,14C8,13 7.28,12.19 6.33,12C6.12,12.65 6,13.31 6,14Z\";\nexport var mdiOutdoorLamp = \"M15 22H13C11.9 22 11 21.1 11 20V15H17V20C17 21.1 16.1 22 15 22M7 14H21L15 9.71V6C15 4.39 13.94 2 11 2S7 4.39 7 6C7 6.45 6.81 7 6 7H5V3H3V12H5V9H6C8.2 9 9 7.21 9 6C9 5.67 9.1 4 11 4C12.83 4 13 5.54 13 6V9.71L7 14Z\";\nexport var mdiOverscan = \"M12 5.5L10 8H14L12 5.5M18 10V14L20.5 12L18 10M6 10L3.5 12L6 14V10M14 16H10L12 18.5L14 16M21 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H21C22.1 21 23 20.1 23 19V5C23 3.9 22.1 3 21 3M21 19H3V5H21V19Z\";\nexport var mdiOwl = \"M12,16C12.56,16.84 13.31,17.53 14.2,18L12,20.2L9.8,18C10.69,17.53 11.45,16.84 12,16M17,11.2A2,2 0 0,0 15,13.2A2,2 0 0,0 17,15.2A2,2 0 0,0 19,13.2C19,12.09 18.1,11.2 17,11.2M7,11.2A2,2 0 0,0 5,13.2A2,2 0 0,0 7,15.2A2,2 0 0,0 9,13.2C9,12.09 8.1,11.2 7,11.2M17,8.7A4,4 0 0,1 21,12.7A4,4 0 0,1 17,16.7A4,4 0 0,1 13,12.7A4,4 0 0,1 17,8.7M7,8.7A4,4 0 0,1 11,12.7A4,4 0 0,1 7,16.7A4,4 0 0,1 3,12.7A4,4 0 0,1 7,8.7M2.24,1C4,4.7 2.73,7.46 1.55,10.2C1.19,11 1,11.83 1,12.7A6,6 0 0,0 7,18.7C7.21,18.69 7.42,18.68 7.63,18.65L10.59,21.61L12,23L13.41,21.61L16.37,18.65C16.58,18.68 16.79,18.69 17,18.7A6,6 0 0,0 23,12.7C23,11.83 22.81,11 22.45,10.2C21.27,7.46 20,4.7 21.76,1C19.12,3.06 15.36,4.69 12,4.7C8.64,4.69 4.88,3.06 2.24,1Z\";\nexport var mdiPacMan = \"M12,12L19.07,19.07C15.17,23 8.83,23 4.93,19.07C1,15.17 1,8.84 4.93,4.93C8.83,1 15.16,1 19.07,4.93L12,12M19,10A2,2 0 0,0 17,12A2,2 0 0,0 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10Z\";\nexport var mdiPackage = \"M5.12,5H18.87L17.93,4H5.93L5.12,5M20.54,5.23C20.83,5.57 21,6 21,6.5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V6.5C3,6 3.17,5.57 3.46,5.23L4.84,3.55C5.12,3.21 5.53,3 6,3H18C18.47,3 18.88,3.21 19.15,3.55L20.54,5.23M6,18H12V15H6V18Z\";\nexport var mdiPackageCheck = \"M6 3C5.5 3 5.1 3.2 4.8 3.6L3.5 5.2C3.2 5.6 3 6 3 6.5V19C3 20.1 3.9 21 5 21H13.3C13.1 20.4 13 19.7 13 19C13 15.7 15.7 13 19 13C19.7 13 20.4 13.1 21 13.3V6.5C21 6 20.8 5.6 20.5 5.2L19.1 3.5C18.9 3.2 18.5 3 18 3H6M5.9 4H17.9L18.8 5H5.1L5.9 4M6 15H12V18H6V15M21.3 15.8L17.7 19.4L16.1 17.8L15 19L17.8 22L22.6 17.2L21.3 15.8Z\";\nexport var mdiPackageDown = \"M5.12,5L5.93,4H17.93L18.87,5M12,17.5L6.5,12H10V10H14V12H17.5L12,17.5M20.54,5.23L19.15,3.55C18.88,3.21 18.47,3 18,3H6C5.53,3 5.12,3.21 4.84,3.55L3.46,5.23C3.17,5.57 3,6 3,6.5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V6.5C21,6 20.83,5.57 20.54,5.23Z\";\nexport var mdiPackageUp = \"M20.54,5.23C20.83,5.57 21,6 21,6.5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V6.5C3,6 3.17,5.57 3.46,5.23L4.84,3.55C5.12,3.21 5.53,3 6,3H18C18.47,3 18.88,3.21 19.15,3.55L20.54,5.23M5.12,5H18.87L17.93,4H5.93L5.12,5M12,9.5L6.5,15H10V17H14V15H17.5L12,9.5Z\";\nexport var mdiPackageVariant = \"M2,10.96C1.5,10.68 1.35,10.07 1.63,9.59L3.13,7C3.24,6.8 3.41,6.66 3.6,6.58L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.66,6.72 20.82,6.88 20.91,7.08L22.36,9.6C22.64,10.08 22.47,10.69 22,10.96L21,11.54V16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V10.96C2.7,11.13 2.32,11.14 2,10.96M12,4.15V4.15L12,10.85V10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V12.69L14,15.59C13.67,15.77 13.3,15.76 13,15.6V19.29L19,15.91M13.85,13.36L20.13,9.73L19.55,8.72L13.27,12.35L13.85,13.36Z\";\nexport var mdiPackageVariantClosed = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L10.11,5.22L16,8.61L17.96,7.5L12,4.15M6.04,7.5L12,10.85L13.96,9.75L8.08,6.35L6.04,7.5M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V9.21L13,12.58V19.29L19,15.91Z\";\nexport var mdiPackageVariantClosedCheck = \"M12 2C11.8 2 11.6 2.1 11.4 2.2L3.5 6.6C3.2 6.8 3 7.1 3 7.5V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3V12.6L19 9.2V13C19.7 13 20.4 13.1 21 13.3V7.5C21 7.1 20.8 6.8 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2M12 4.2L18 7.5L16 8.6L10.1 5.2L12 4.2M8.1 6.3L14 9.8L12 10.9L6 7.5L8.1 6.3M5 9.2L11 12.6V19.3L5 15.9V9.2M21.3 15.8L17.7 19.4L16.1 17.8L15 19L17.8 22L22.6 17.2L21.3 15.8Z\";\nexport var mdiPackageVariantClosedMinus = \"M13 12.6L19 9.2V13C19.7 13 20.4 13.1 21 13.4V7.5C21 7.1 20.8 6.8 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.5 6.6C3.2 6.8 3 7.1 3 7.5V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M12 4.2L18 7.5L16 8.6L10.1 5.2L12 4.2M11 19.3L5 15.9V9.2L11 12.6V19.3M12 10.8L6 7.5L8 6.3L14 9.8L12 10.8M23 18V20H15V18H23Z\";\nexport var mdiPackageVariantClosedPlus = \"M13 19.3V12.6L19 9.2V13C19.7 13 20.4 13.1 21 13.4V7.5C21 7.1 20.8 6.8 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.5 6.6C3.2 6.8 3 7.1 3 7.5V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M12 4.2L18 7.5L16 8.6L10.1 5.2L12 4.2M11 19.3L5 15.9V9.2L11 12.6V19.3M12 10.8L6 7.5L8 6.3L14 9.8L12 10.8M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiPackageVariantClosedRemove = \"M13 12.6L19 9.2V13C19.7 13 20.4 13.1 21 13.4V7.5C21 7.1 20.8 6.8 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.5 6.6C3.2 6.8 3 7.1 3 7.5V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M12 4.2L18 7.5L16 8.6L10.1 5.2L12 4.2M11 19.3L5 15.9V9.2L11 12.6V19.3M12 10.8L6 7.5L8 6.3L14 9.8L12 10.8M16.9 15.5L19 17.6L21.1 15.5L22.5 16.9L20.4 19L22.5 21.1L21.1 22.5L19 20.4L16.9 22.5L15.5 21.1L17.6 19L15.5 16.9L16.9 15.5Z\";\nexport var mdiPackageVariantMinus = \"M13 15.6C13.3 15.8 13.7 15.8 14 15.6L19 12.7V13C19.7 13 20.4 13.1 21 13.4V11.6L22 11C22.5 10.7 22.6 10.1 22.4 9.6L20.9 7.1C20.8 6.9 20.7 6.7 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.6 6.6C3.4 6.7 3.2 6.8 3.1 7L1.6 9.6C1.3 10.1 1.5 10.7 2 11C2.3 11.2 2.7 11.2 3 11V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M11 19.3L5 15.9V9.2L11 12.6V19.3M20.1 9.7L13.8 13.3L13.2 12.3L19.5 8.7L20.1 9.7M12 10.8V4.2L18 7.5L12 10.8M23 20H15V18H23V20Z\";\nexport var mdiPackageVariantPlus = \"M13 15.6C13.3 15.8 13.7 15.8 14 15.6L19 12.7V13C19.7 13 20.4 13.1 21 13.4V11.6L22 11C22.5 10.7 22.6 10.1 22.4 9.6L20.9 7.1C20.8 6.9 20.7 6.7 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.6 6.6C3.4 6.7 3.2 6.8 3.1 7L1.6 9.6C1.3 10.1 1.5 10.7 2 11C2.3 11.2 2.7 11.2 3 11V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M11 19.3L5 15.9V9.2L11 12.6V19.3M20.1 9.7L13.8 13.3L13.2 12.3L19.5 8.7L20.1 9.7M12 10.8V4.2L18 7.5L12 10.8M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiPackageVariantRemove = \"M13 15.6C13.3 15.8 13.7 15.8 14 15.6L19 12.7V13C19.7 13 20.4 13.1 21 13.4V11.6L22 11C22.5 10.7 22.6 10.1 22.4 9.6L20.9 7.1C20.8 6.9 20.7 6.7 20.5 6.6L12.6 2.2C12.4 2.1 12.2 2 12 2S11.6 2.1 11.4 2.2L3.6 6.6C3.4 6.7 3.2 6.8 3.1 7L1.6 9.6C1.3 10.1 1.5 10.7 2 11C2.3 11.2 2.7 11.2 3 11V16.5C3 16.9 3.2 17.2 3.5 17.4L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L13.5 21.3C13.2 20.7 13.1 20 13 19.3M11 19.3L5 15.9V9.2L11 12.6V19.3M20.1 9.7L13.8 13.3L13.2 12.3L19.5 8.7L20.1 9.7M12 10.8V4.2L18 7.5L12 10.8M22.5 16.9L20.4 19L22.5 21.1L21.1 22.5L19 20.4L16.9 22.5L15.5 21.1L17.6 19L15.5 16.9L16.9 15.5L19 17.6L21.1 15.5L22.5 16.9Z\";\nexport var mdiPageFirst = \"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z\";\nexport var mdiPageLast = \"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z\";\nexport var mdiPageLayoutBody = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M6,8V16H18V8H6Z\";\nexport var mdiPageLayoutFooter = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M6,16V20H18V16H6Z\";\nexport var mdiPageLayoutHeader = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M6,4V8H18V4H6Z\";\nexport var mdiPageLayoutHeaderFooter = \"M18 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V4C20 2.9 19.11 2 18 2M18 20H6V16H18V20M18 8H6V4H18V8Z\";\nexport var mdiPageLayoutSidebarLeft = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M6,8V16H10V8H6Z\";\nexport var mdiPageLayoutSidebarRight = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M14,8V16H18V8H14Z\";\nexport var mdiPageNext = \"M20,3H5A2,2 0 0,0 3,5V11H7V9L11,12L7,15V13H3V19A2,2 0 0,0 5,21H20A2,2 0 0,0 22,19V5A2,2 0 0,0 20,3M17,17H13V15H17V17M20,13H13V11H20V13M20,9H13V7H20V9M3,13H0V11H3V13Z\";\nexport var mdiPageNextOutline = \"M22,3H5A2,2 0 0,0 3,5V9H5V5H22V19H5V15H3V19A2,2 0 0,0 5,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M7,15V13H0V11H7V9L11,12L7,15M20,13H13V11H20V13M20,9H13V7H20V9M17,17H13V15H17V17Z\";\nexport var mdiPagePrevious = \"M4,21H19A2,2 0 0,0 21,19V13H17V15L13,12L17,9V11H21V5A2,2 0 0,0 19,3H4A2,2 0 0,0 2,5V19A2,2 0 0,0 4,21M4,15H8V17H4V15M4,11H11V13H4V11M4,7H11V9H4V7M21,11H24V13H21V11Z\";\nexport var mdiPagePreviousOutline = \"M2,3H19A2,2 0 0,1 21,5V9H19V5H2V19H19V15H21V19A2,2 0 0,1 19,21H2A2,2 0 0,1 0,19V5A2,2 0 0,1 2,3M17,15V13H24V11H17V9L13,12L17,15M4,13H11V11H4V13M4,9H11V7H4V9M4,17H8V15H4V17Z\";\nexport var mdiPail = \"M11.5 7.63C11.97 7.35 12.58 7.5 12.86 8C13.14 8.47 12.97 9.09 12.5 9.36L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L11.5 7.63M7 21L5.79 14.97L13.21 10.69C14 10.26 14.5 9.44 14.5 8.5C14.5 7.12 13.38 6 12 6C11.53 6 11.09 6.13 10.71 6.36L4.76 9.79L4 6H3V4H21V6H20L17 21H7Z\";\nexport var mdiPailMinus = \"M12.5 9.36L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L11.5 7.63C11.97 7.35 12.58 7.5 12.86 8C13.14 8.47 12.97 9.09 12.5 9.36M13 19C13 15.82 15.47 13.23 18.6 13L20 6H21V4H3V6H4L4.76 9.79L10.71 6.36C11.09 6.13 11.53 6 12 6C13.38 6 14.5 7.12 14.5 8.5C14.5 9.44 14 10.26 13.21 10.69L5.79 14.97L7 21H13.35C13.13 20.37 13 19.7 13 19M15 18V20H23V18H15Z\";\nexport var mdiPailMinusOutline = \"M4 6H3V4H21V6H20L18.6 13C17.83 13.07 17.11 13.26 16.45 13.58L17.96 6H6.04L6.5 8.22L4.65 9.27L4 6M12.86 8C12.58 7.5 11.97 7.35 11.5 7.63L3.27 12.38C2.79 12.66 2.62 13.27 2.9 13.75C3.18 14.23 3.79 14.39 4.27 14.11L12.5 9.36C12.97 9.09 13.14 8.47 12.86 8M13 19H8.64L7.73 14.43L5.9 15.5L7 21H13.35C13.13 20.37 13 19.7 13 19M15 18V20H23V18H15Z\";\nexport var mdiPailOff = \"M20.84 22.73L17.35 19.24L17 21H7L5.79 14.97L10.41 12.3L9.31 11.2L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L7.85 9.74L6.75 8.64L4.76 9.79L4 6H3V4.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M10.71 6.36C11.09 6.13 11.53 6 12 6C13.38 6 14.5 7.12 14.5 8.5C14.5 9.27 14.16 9.94 13.6 10.4L18.2 15L20 6H21V4H7.2L10 6.78L10.71 6.36M11.5 7.63L11.08 7.88L12.53 9.33C12.97 9.05 13.13 8.46 12.86 8C12.58 7.5 11.97 7.35 11.5 7.63Z\";\nexport var mdiPailOffOutline = \"M20.84 22.73L17.35 19.24L17 21H7L5.9 15.5L7.73 14.43L8.64 19H15.36L15.65 17.54L9.31 11.2L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L7.85 9.74L6.38 8.27L4.65 9.27L4 6H3V4.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M17.96 6L16.5 13.3L18.2 15L20 6H21V4H7.2L9.2 6H17.96M11.5 7.63L11.08 7.88L12.53 9.33C12.97 9.05 13.13 8.46 12.86 8C12.58 7.5 11.97 7.35 11.5 7.63Z\";\nexport var mdiPailOutline = \"M11.5 7.63C11.97 7.35 12.58 7.5 12.86 8C13.14 8.47 12.97 9.09 12.5 9.36L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75S2.79 12.66 3.27 12.38L11.5 7.63M3 4V6H4L4.65 9.27L6.5 8.22L6.04 6H17.96L15.36 19H8.64L7.73 14.43L5.9 15.5L7 21H17L20 6H21V4H3Z\";\nexport var mdiPailPlus = \"M12.5 9.36L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L11.5 7.63C11.97 7.35 12.58 7.5 12.86 8C13.14 8.47 12.97 9.09 12.5 9.36M13 19C13 15.82 15.47 13.23 18.6 13L20 6H21V4H3V6H4L4.76 9.79L10.71 6.36C11.09 6.13 11.53 6 12 6C13.38 6 14.5 7.12 14.5 8.5C14.5 9.44 14 10.26 13.21 10.69L5.79 14.97L7 21H13.35C13.13 20.37 13 19.7 13 19M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiPailPlusOutline = \"M4 6H3V4H21V6H20L18.6 13C17.83 13.07 17.11 13.26 16.45 13.58L17.96 6H6.04L6.5 8.22L4.65 9.27L4 6M12.86 8C12.58 7.5 11.97 7.35 11.5 7.63L3.27 12.38C2.79 12.66 2.62 13.27 2.9 13.75C3.18 14.23 3.79 14.39 4.27 14.11L12.5 9.36C12.97 9.09 13.14 8.47 12.86 8M13 19H8.64L7.73 14.43L5.9 15.5L7 21H13.35C13.13 20.37 13 19.7 13 19M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiPailRemove = \"M12.5 9.36L4.27 14.11C3.79 14.39 3.18 14.23 2.9 13.75C2.62 13.27 2.79 12.66 3.27 12.38L11.5 7.63C11.97 7.35 12.58 7.5 12.86 8C13.14 8.47 12.97 9.09 12.5 9.36M13 19C13 15.82 15.47 13.23 18.6 13L20 6H21V4H3V6H4L4.76 9.79L10.71 6.36C11.09 6.13 11.53 6 12 6C13.38 6 14.5 7.12 14.5 8.5C14.5 9.44 14 10.26 13.21 10.69L5.79 14.97L7 21H13.35C13.13 20.37 13 19.7 13 19M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiPailRemoveOutline = \"M4 6H3V4H21V6H20L18.6 13C17.83 13.07 17.11 13.26 16.45 13.58L17.96 6H6.04L6.5 8.22L4.65 9.27L4 6M12.86 8C12.58 7.5 11.97 7.35 11.5 7.63L3.27 12.38C2.79 12.66 2.62 13.27 2.9 13.75C3.18 14.23 3.79 14.39 4.27 14.11L12.5 9.36C12.97 9.09 13.14 8.47 12.86 8M13 19H8.64L7.73 14.43L5.9 15.5L7 21H13.35C13.13 20.37 13 19.7 13 19M21.12 15.46L19 17.59L16.88 15.46L15.46 16.88L17.58 19L15.46 21.12L16.87 22.54L19 20.41L21.12 22.54L22.53 21.12L20.41 19L22.53 16.88L21.12 15.46Z\";\nexport var mdiPalette = \"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\";\nexport var mdiPaletteAdvanced = \"M22,22H10V20H22V22M2,22V20H9V22H2M18,18V10H22V18H18M18,3H22V9H18V3M2,18V3H16V18H2M9,14.56A3,3 0 0,0 12,11.56C12,9.56 9,6.19 9,6.19C9,6.19 6,9.56 6,11.56A3,3 0 0,0 9,14.56Z\";\nexport var mdiPaletteOutline = \"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2C17.5,2 22,6 22,11A6,6 0 0,1 16,17H14.2C13.9,17 13.7,17.2 13.7,17.5C13.7,17.6 13.8,17.7 13.8,17.8C14.2,18.3 14.4,18.9 14.4,19.5C14.5,20.9 13.4,22 12,22M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C12.3,20 12.5,19.8 12.5,19.5C12.5,19.3 12.4,19.2 12.4,19.1C12,18.6 11.8,18.1 11.8,17.5C11.8,16.1 12.9,15 14.3,15H16A4,4 0 0,0 20,11C20,7.1 16.4,4 12,4M6.5,10C7.3,10 8,10.7 8,11.5C8,12.3 7.3,13 6.5,13C5.7,13 5,12.3 5,11.5C5,10.7 5.7,10 6.5,10M9.5,6C10.3,6 11,6.7 11,7.5C11,8.3 10.3,9 9.5,9C8.7,9 8,8.3 8,7.5C8,6.7 8.7,6 9.5,6M14.5,6C15.3,6 16,6.7 16,7.5C16,8.3 15.3,9 14.5,9C13.7,9 13,8.3 13,7.5C13,6.7 13.7,6 14.5,6M17.5,10C18.3,10 19,10.7 19,11.5C19,12.3 18.3,13 17.5,13C16.7,13 16,12.3 16,11.5C16,10.7 16.7,10 17.5,10Z\";\nexport var mdiPaletteSwatch = \"M2.53,19.65L3.87,20.21V11.18L1.44,17.04C1.03,18.06 1.5,19.23 2.53,19.65M22.03,15.95L17.07,4C16.76,3.23 16.03,2.77 15.26,2.75C15,2.75 14.73,2.79 14.47,2.9L7.1,5.95C6.35,6.26 5.89,7 5.87,7.75C5.86,8 5.91,8.29 6,8.55L11,20.5C11.29,21.28 12.03,21.74 12.81,21.75C13.07,21.75 13.33,21.7 13.58,21.6L20.94,18.55C21.96,18.13 22.45,16.96 22.03,15.95M7.88,8.75A1,1 0 0,1 6.88,7.75A1,1 0 0,1 7.88,6.75C8.43,6.75 8.88,7.2 8.88,7.75C8.88,8.3 8.43,8.75 7.88,8.75M5.88,19.75A2,2 0 0,0 7.88,21.75H9.33L5.88,13.41V19.75Z\";\nexport var mdiPaletteSwatchOutline = \"M2.5 19.6L3.8 20.2V11.2L1.4 17C1 18.1 1.5 19.2 2.5 19.6M15.2 4.8L20.2 16.8L12.9 19.8L7.9 7.9V7.8L15.2 4.8M15.3 2.8C15 2.8 14.8 2.8 14.5 2.9L7.1 6C6.4 6.3 5.9 7 5.9 7.8C5.9 8 5.9 8.3 6 8.6L11 20.5C11.3 21.3 12 21.7 12.8 21.7C13.1 21.7 13.3 21.7 13.6 21.6L21 18.5C22 18.1 22.5 16.9 22.1 15.9L17.1 4C16.8 3.2 16 2.8 15.3 2.8M10.5 9.9C9.9 9.9 9.5 9.5 9.5 8.9S9.9 7.9 10.5 7.9C11.1 7.9 11.5 8.4 11.5 8.9S11.1 9.9 10.5 9.9M5.9 19.8C5.9 20.9 6.8 21.8 7.9 21.8H9.3L5.9 13.5V19.8Z\";\nexport var mdiPaletteSwatchVariant = \"M20 14H6C3.8 14 2 15.8 2 18S3.8 22 6 22H20C21.1 22 22 21.1 22 20V16C22 14.9 21.1 14 20 14M6 20C4.9 20 4 19.1 4 18S4.9 16 6 16 8 16.9 8 18 7.1 20 6 20M6.3 12L13 5.3C13.8 4.5 15 4.5 15.8 5.3L18.6 8.1C19.4 8.9 19.4 10.1 18.6 10.9L17.7 12H6.3M2 13.5V4C2 2.9 2.9 2 4 2H8C9.1 2 10 2.9 10 4V5.5L2 13.5Z\";\nexport var mdiPalmTree = \"M12 9C13.59 16.61 10 22 10 22H13C14.88 16.2 14 12.09 13.5 10M15.66 7.16C15.83 7.37 16 7.59 16.13 7.82C17.84 10.53 17.5 13.95 15.5 16.26C16.34 14.21 16.22 11.79 14.95 9.77C14.87 9.64 14.78 9.53 14.7 9.41C14.11 8.58 13.36 7.92 12.54 7.43C9.66 8.35 7.58 11.04 7.58 14.22C7.58 14.96 7.69 15.67 7.89 16.33C7.05 15.16 6.56 13.73 6.56 12.19C6.56 9.84 7.7 7.76 9.45 6.46C8 6.35 6.46 6.67 5.12 7.5C4.5 7.91 3.96 8.38 3.5 8.91C4.05 7.58 5 6.39 6.3 5.57C7.8 4.63 9.5 4.32 11.14 4.56C10.73 4 10.23 3.47 9.63 3C9.05 2.58 8.42 2.24 7.76 2C9.2 2.04 10.64 2.5 11.87 3.43C12.5 3.9 13 4.47 13.4 5.07C13.5 5.07 13.59 5.06 13.69 5.06C16.89 5.06 19.6 7.17 20.5 10.08C19.38 8.5 17.65 7.43 15.66 7.16Z\";\nexport var mdiPan = \"M12,2.5L8,7H16L12,2.5M7,8L2.5,12L7,16V8M17,8V16L21.5,12L17,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M8,17L12,21.5L16,17H8Z\";\nexport var mdiPanBottomLeft = \"M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M5.35,13L11,18.65L5,19L5.35,13Z\";\nexport var mdiPanBottomRight = \"M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M13,18.65L18.65,13L19,19L13,18.65Z\";\nexport var mdiPanDown = \"M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M8,17L12,21.5L16,17H8Z\";\nexport var mdiPanHorizontal = \"M7,8L2.5,12L7,16V8M17,8V16L21.5,12L17,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiPanLeft = \"M7,8L2.5,12L7,16V8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiPanRight = \"M17,8V16L21.5,12L17,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiPanTopLeft = \"M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M11,5.35L5.35,11L5,5L11,5.35Z\";\nexport var mdiPanTopRight = \"M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M18.65,11L13,5.35L19,5L18.65,11Z\";\nexport var mdiPanUp = \"M12,2.5L8,7H16L12,2.5M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiPanVertical = \"M12,2.5L8,7H16L12,2.5M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M8,17L12,21.5L16,17H8Z\";\nexport var mdiPanda = \"M12,3C13.74,3 15.36,3.5 16.74,4.35C17.38,3.53 18.38,3 19.5,3A3.5,3.5 0 0,1 23,6.5C23,8 22.05,9.28 20.72,9.78C20.9,10.5 21,11.23 21,12A9,9 0 0,1 12,21A9,9 0 0,1 3,12C3,11.23 3.1,10.5 3.28,9.78C1.95,9.28 1,8 1,6.5A3.5,3.5 0 0,1 4.5,3C5.62,3 6.62,3.53 7.26,4.35C8.64,3.5 10.26,3 12,3M12,5A7,7 0 0,0 5,12A7,7 0 0,0 12,19A7,7 0 0,0 19,12A7,7 0 0,0 12,5M16.19,10.3C16.55,11.63 16.08,12.91 15.15,13.16C14.21,13.42 13.17,12.54 12.81,11.2C12.45,9.87 12.92,8.59 13.85,8.34C14.79,8.09 15.83,8.96 16.19,10.3M7.81,10.3C8.17,8.96 9.21,8.09 10.15,8.34C11.08,8.59 11.55,9.87 11.19,11.2C10.83,12.54 9.79,13.42 8.85,13.16C7.92,12.91 7.45,11.63 7.81,10.3M12,14C12.6,14 13.13,14.19 13.5,14.5L12.5,15.5C12.5,15.92 12.84,16.25 13.25,16.25A0.75,0.75 0 0,0 14,15.5A0.5,0.5 0 0,1 14.5,15A0.5,0.5 0 0,1 15,15.5A1.75,1.75 0 0,1 13.25,17.25C12.76,17.25 12.32,17.05 12,16.72C11.68,17.05 11.24,17.25 10.75,17.25A1.75,1.75 0 0,1 9,15.5A0.5,0.5 0 0,1 9.5,15A0.5,0.5 0 0,1 10,15.5A0.75,0.75 0 0,0 10.75,16.25A0.75,0.75 0 0,0 11.5,15.5L10.5,14.5C10.87,14.19 11.4,14 12,14Z\";\nexport var mdiPandora = \"M10,20A1,1 0 0,1 9,21H4V3H13.71A6.75,6.75 0 0,1 20.46,9.75C20.46,13.5 17.44,16.5 13.71,16.5H10V20Z\";\nexport var mdiPanorama = \"M8.5,12.5L11,15.5L14.5,11L19,17H5M23,18V6A2,2 0 0,0 21,4H3A2,2 0 0,0 1,6V18A2,2 0 0,0 3,20H21A2,2 0 0,0 23,18Z\";\nexport var mdiPanoramaFisheye = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2Z\";\nexport var mdiPanoramaHorizontal = \"M12 5.5C8.1 5.5 5.1 4.7 3.3 4.1C2.7 3.8 2 4.3 2 5V19C2 19.7 2.7 20.2 3.3 20C5.4 19.3 8.1 18.5 12 18.5C15.9 18.5 18.7 19.3 20.7 20C21.4 20.2 22 19.7 22 19V5C22 4.3 21.3 3.8 20.7 4.1C18.7 4.7 15.9 5.5 12 5.5Z\";\nexport var mdiPanoramaHorizontalOutline = \"M21.43,4C21.33,4 21.23,4 21.12,4.06C18.18,5.16 15.09,5.7 12,5.7C8.91,5.7 5.82,5.15 2.88,4.06C2.77,4 2.66,4 2.57,4C2.23,4 2,4.23 2,4.63V19.38C2,19.77 2.23,20 2.57,20C2.67,20 2.77,20 2.88,19.94C5.82,18.84 8.91,18.3 12,18.3C15.09,18.3 18.18,18.85 21.12,19.94C21.23,20 21.33,20 21.43,20C21.76,20 22,19.77 22,19.37V4.63C22,4.23 21.76,4 21.43,4M20,6.54V17.45C17.4,16.68 14.72,16.29 12,16.29C9.28,16.29 6.6,16.68 4,17.45V6.54C6.6,7.31 9.28,7.7 12,7.7C14.72,7.71 17.4,7.32 20,6.54Z\";\nexport var mdiPanoramaOutline = \"M21 4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H21C22.1 20 23 19.1 23 18V6C23 4.9 22.1 4 21 4M21 18H3V6H21V18M14.5 11L11 15.5L8.5 12.5L5 17H19L14.5 11Z\";\nexport var mdiPanoramaSphere = \"M22 8.1C21.7 8 21.3 7.8 21 7.7C19.4 4.3 16 2 12 2S4.6 4.3 3 7.7C2.7 7.8 2.3 8 2.1 8.1C1.4 8.5 1 9.2 1 9.9V14.1C1 14.8 1.4 15.5 2 15.9C2.3 16 2.7 16.2 3 16.3C4.6 19.7 8 22 12 22S19.4 19.7 21 16.3C21.3 16.2 21.6 16 21.9 15.8C22.5 15.4 23 14.8 23 14V9.9C23 9.2 22.6 8.5 22 8.1M12 4C14.4 4 16.5 5 18 6.7C16.2 6.2 14.1 6 12 6S7.8 6.2 6.1 6.7C7.5 5 9.6 4 12 4M12 20C9.6 20 7.5 19 6.1 17.3C7.8 17.8 9.9 18 12 18S16.2 17.8 18 17.3C16.5 19 14.4 20 12 20Z\";\nexport var mdiPanoramaSphereOutline = \"M22 8.1C21.7 8 21.3 7.8 21 7.7C19.4 4.3 16 2 12 2S4.6 4.3 3 7.7C2.7 7.8 2.3 8 2.1 8.1C1.4 8.5 1 9.2 1 9.9V14.1C1 14.8 1.4 15.5 2 15.9C2.3 16 2.7 16.2 3 16.3C4.6 19.7 8 22 12 22S19.4 19.7 21 16.3C21.3 16.2 21.6 16 21.9 15.8C22.5 15.4 23 14.8 23 14V9.9C23 9.2 22.6 8.5 22 8.1M21 9.9V14.1C18.8 15.3 15.5 16 12 16S5.2 15.3 3 14.1V9.9C5.2 8.7 8.5 8 12 8S18.8 8.7 21 9.9M12 4C14.4 4 16.5 5 18 6.7C16.2 6.2 14.1 6 12 6S7.8 6.2 6.1 6.7C7.5 5 9.6 4 12 4M12 20C9.6 20 7.5 19 6.1 17.3C7.8 17.8 9.9 18 12 18S16.2 17.8 18 17.3C16.5 19 14.4 20 12 20Z\";\nexport var mdiPanoramaVariant = \"M20.7 4.1C18.7 4.8 15.9 5.5 12 5.5C8.1 5.5 5.1 4.7 3.3 4.1C2.7 3.8 2 4.3 2 5V19C2 19.7 2.7 20.2 3.3 20C5.4 19.3 8.1 18.5 12 18.5C15.9 18.5 18.7 19.3 20.7 20C21.4 20.2 22 19.7 22 19V5C22 4.3 21.3 3.8 20.7 4.1M12 15C9.7 15 7.5 15.1 5.5 15.4L9.2 11L11.2 13.4L14 10L18.5 15.4C16.5 15.1 14.3 15 12 15Z\";\nexport var mdiPanoramaVariantOutline = \"M21 4C20.4 4 17.4 5.5 12 5.5C6.7 5.5 3.5 4 3 4C2.5 4 2 4.4 2 5V19C2 19.6 2.5 20 3 20C3.6 20 6.5 18.5 12 18.5C17.4 18.5 20.4 20 21 20C21.5 20 22 19.6 22 19V5C22 4.4 21.5 4 21 4M20 17.6C18 17 15.4 16.5 12 16.5C8.6 16.5 6 17 4 17.6V6.4C6.6 7.1 9.3 7.5 12 7.5C15.4 7.5 18 7 20 6.4V17.6M9.2 11L5.5 15.4C7.5 15.1 9.7 15 12 15C14.3 15 16.5 15.1 18.5 15.4L14 10L11.2 13.4L9.2 11Z\";\nexport var mdiPanoramaVertical = \"M18.5 12C18.5 8.1 19.3 5.1 19.9 3.3C20.1 2.7 19.7 2 19 2H5C4.3 2 3.8 2.7 4.1 3.3C4.7 5.4 5.5 8.1 5.5 12C5.5 15.9 4.7 18.7 4.1 20.7C3.8 21.3 4.3 22 5 22H19C19.7 22 20.2 21.3 20 20.7C19.3 18.7 18.5 15.9 18.5 12Z\";\nexport var mdiPanoramaVerticalOutline = \"M6.54,20C7.31,17.4 7.7,14.72 7.7,12C7.7,9.28 7.31,6.6 6.54,4H17.45C16.68,6.6 16.29,9.28 16.29,12C16.29,14.72 16.68,17.4 17.45,20M19.94,21.12C18.84,18.18 18.3,15.09 18.3,12C18.3,8.91 18.85,5.82 19.94,2.88C20,2.77 20,2.66 20,2.57C20,2.23 19.77,2 19.37,2H4.63C4.23,2 4,2.23 4,2.57C4,2.67 4,2.77 4.06,2.88C5.16,5.82 5.71,8.91 5.71,12C5.71,15.09 5.16,18.18 4.07,21.12C4,21.23 4,21.34 4,21.43C4,21.76 4.23,22 4.63,22H19.38C19.77,22 20,21.76 20,21.43C20,21.33 20,21.23 19.94,21.12Z\";\nexport var mdiPanoramaWideAngle = \"M12 4C8 4 5.2 4.6 3 5C2.5 7 2 8.9 2 12C2 15 2.5 17 3 19C5.2 19.4 8 20 12 20C16 20 18.9 19.4 21 19C21.6 17 22 15 22 12C22 9 21.5 6.9 21 5C18.9 4.6 16 4 12 4Z\";\nexport var mdiPanoramaWideAngleOutline = \"M12,4C9.27,4 6.78,4.24 4.05,4.72L3.12,4.88L2.87,5.78C2.29,7.85 2,9.93 2,12C2,14.07 2.29,16.15 2.87,18.22L3.12,19.11L4.05,19.27C6.78,19.76 9.27,20 12,20C14.73,20 17.22,19.76 19.95,19.28L20.88,19.12L21.13,18.23C21.71,16.15 22,14.07 22,12C22,9.93 21.71,7.85 21.13,5.78L20.88,4.89L19.95,4.73C17.22,4.24 14.73,4 12,4M12,6C14.45,6 16.71,6.2 19.29,6.64C19.76,8.42 20,10.22 20,12C20,13.78 19.76,15.58 19.29,17.36C16.71,17.8 14.45,18 12,18C9.55,18 7.29,17.8 4.71,17.36C4.24,15.58 4,13.78 4,12C4,10.22 4.24,8.42 4.71,6.64C7.29,6.2 9.55,6 12,6Z\";\nexport var mdiPaperCutVertical = \"M11.43,3.23L12,4L12.57,3.23V3.24C13.12,2.5 14,2 15,2A3,3 0 0,1 18,5C18,5.35 17.94,5.69 17.83,6H20A2,2 0 0,1 22,8V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V8A2,2 0 0,1 4,6H6.17C6.06,5.69 6,5.35 6,5A3,3 0 0,1 9,2C10,2 10.88,2.5 11.43,3.24V3.23M4,8V20H11A1,1 0 0,1 12,19A1,1 0 0,1 13,20H20V8H15L14.9,8L17,10.92L15.4,12.1L12.42,8H11.58L8.6,12.1L7,10.92L9.1,8H9L4,8M9,4A1,1 0 0,0 8,5A1,1 0 0,0 9,6A1,1 0 0,0 10,5A1,1 0 0,0 9,4M15,4A1,1 0 0,0 14,5A1,1 0 0,0 15,6A1,1 0 0,0 16,5A1,1 0 0,0 15,4M12,16A1,1 0 0,1 13,17A1,1 0 0,1 12,18A1,1 0 0,1 11,17A1,1 0 0,1 12,16M12,13A1,1 0 0,1 13,14A1,1 0 0,1 12,15A1,1 0 0,1 11,14A1,1 0 0,1 12,13M12,10A1,1 0 0,1 13,11A1,1 0 0,1 12,12A1,1 0 0,1 11,11A1,1 0 0,1 12,10Z\";\nexport var mdiPaperRoll = \"M9 3C5.69 3 3.14 5.69 3 9V21H12V13.46C13.1 14.45 14.5 15 16 15C19.31 15 22 12.31 22 9C22 5.69 19.31 3 16 3H9M16 5C18.21 5 20 6.79 20 9C20 11.21 18.21 13 16 13C13.79 13 12 11.21 12 9C12 6.79 13.79 5 16 5M16 7.25C15.03 7.25 14.25 8.03 14.25 9C14.25 9.97 15.03 10.75 16 10.75C16.97 10.75 17.75 9.97 17.75 9C17.75 8.03 16.97 7.25 16 7.25M4 12H5V13H4V12M6 12H7V13H6V12M8 12H9V13H8V12M10 12H11V13H10V12Z\";\nexport var mdiPaperRollOutline = \"M9 3C5.69 3 3.14 5.69 3 9V21H12V13.46C13.1 14.45 14.5 15 16 15C19.31 15 22 12.31 22 9C22 5.69 19.31 3 16 3H9M9 5H11.54C10.55 6.1 10 7.5 10 9V12H9V13H10V19H5V13H6V12H5V9C5 6.79 6.79 5 9 5M16 5C18.21 5 20 6.79 20 9C20 11.21 18.21 13 16 13C13.79 13 12 11.21 12 9C12 6.79 13.79 5 16 5M16 7.25C15.03 7.25 14.25 8.03 14.25 9C14.25 9.97 15.03 10.75 16 10.75C16.97 10.75 17.75 9.97 17.75 9C17.75 8.03 16.97 7.25 16 7.25M7 12V13H8V12H7Z\";\nexport var mdiPaperclip = \"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\";\nexport var mdiPaperclipCheck = \"M13.5 21.36C13.7 21.84 13.97 22.29 14.29 22.7C13.73 22.89 13.13 23 12.5 23C9.46 23 7 20.54 7 17.5V5C7 2.79 8.79 1 11 1S15 2.79 15 5V14.54C14.03 15.41 13.35 16.58 13.1 17.92C12.91 17.97 12.71 18 12.5 18C11.12 18 10 16.88 10 15.5V6H11.5V15.5C11.5 16.05 11.95 16.5 12.5 16.5S13.5 16.05 13.5 15.5V5C13.5 3.62 12.38 2.5 11 2.5S8.5 3.62 8.5 5V17.5C8.5 19.71 10.29 21.5 12.5 21.5C12.84 21.5 13.17 21.44 13.5 21.36M18 6H16.5V13.55C16.97 13.34 17.47 13.18 18 13.09V6M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiPaperclipLock = \"M18 13C16.6 13 15.2 14.1 15.2 15.5V17C14.6 17 14 17.6 14 18.2V21.7C14 22.4 14.6 23 15.2 23H20.7C21.4 23 22 22.4 22 21.8V18.3C22 17.6 21.4 17 20.8 17V15.5C20.8 14.1 19.4 13 18 13M18 14.2C18.8 14.2 19.5 14.7 19.5 15.5V17H16.5V15.5C16.5 14.7 17.2 14.2 18 14.2M8.9 2C6.8 2 5 3.8 5 6V16.5C5 19.5 7.5 22 10.5 22C11 22 11.5 21.9 12 21.8V20.2C11.5 20.4 11 20.5 10.5 20.5C8.3 20.5 6.5 18.7 6.5 16.5V6C6.5 4.6 7.6 3.5 9 3.5S11.5 4.6 11.5 6V14.5C11.5 15.1 11.1 15.5 10.5 15.5S9.5 15.1 9.5 14.5V7H8V14.5C8 15.9 9.1 17 10.5 17S13 15.9 13 14.5V6C13 3.8 11.2 2 8.9 2C9 2 9 2 8.9 2M14.5 7V12.4C14.9 12 15.4 11.6 16 11.4V7H14.5Z\";\nexport var mdiPaperclipMinus = \"M18 13.09C17.47 13.18 16.97 13.34 16.5 13.55V6H18V13.09M12.5 21.5C10.29 21.5 8.5 19.71 8.5 17.5V5C8.5 3.62 9.62 2.5 11 2.5S13.5 3.62 13.5 5V15.5C13.5 16.05 13.05 16.5 12.5 16.5S11.5 16.05 11.5 15.5V6H10V15.5C10 16.88 11.12 18 12.5 18C12.71 18 12.91 17.97 13.1 17.92C13.35 16.58 14.03 15.41 15 14.54V5C15 2.79 13.21 1 11 1S7 2.79 7 5V17.5C7 20.54 9.46 23 12.5 23C13.13 23 13.73 22.89 14.29 22.7C13.97 22.29 13.7 21.84 13.5 21.36C13.17 21.44 12.84 21.5 12.5 21.5M15 18V20H23V18H15Z\";\nexport var mdiPaperclipOff = \"M8.5 5.3L7.16 3.96C7.62 2.26 9.15 1 11 1C13.21 1 15 2.79 15 5V11.8L13.5 10.3V5C13.5 3.62 12.38 2.5 11 2.5S8.5 3.62 8.5 5V5.3M18 6H16.5V13.3L18 14.8V6M22.11 21.46L20.84 22.73L17.62 19.5C16.81 21.55 14.83 23 12.5 23C9.46 23 7 20.54 7 17.5V8.89L1.11 3L2.39 1.73L22.11 21.46M11.5 15.5C11.5 16.05 11.95 16.5 12.5 16.5S13.5 16.05 13.5 15.5V15.39L11.5 13.39V15.5M16.42 18.31L14.73 16.62C14.32 17.43 13.5 18 12.5 18C11.12 18 10 16.88 10 15.5V11.89L8.5 10.39V17.5C8.5 19.71 10.29 21.5 12.5 21.5C14.43 21.5 16.04 20.13 16.42 18.31M10 6.8L11.5 8.3V6H10V6.8Z\";\nexport var mdiPaperclipPlus = \"M18 13.09C17.47 13.18 16.97 13.34 16.5 13.55V6H18V13.09M12.5 21.5C10.29 21.5 8.5 19.71 8.5 17.5V5C8.5 3.62 9.62 2.5 11 2.5S13.5 3.62 13.5 5V15.5C13.5 16.05 13.05 16.5 12.5 16.5S11.5 16.05 11.5 15.5V6H10V15.5C10 16.88 11.12 18 12.5 18C12.71 18 12.91 17.97 13.1 17.92C13.35 16.58 14.03 15.41 15 14.54V5C15 2.79 13.21 1 11 1S7 2.79 7 5V17.5C7 20.54 9.46 23 12.5 23C13.13 23 13.73 22.89 14.29 22.7C13.97 22.29 13.7 21.84 13.5 21.36C13.17 21.44 12.84 21.5 12.5 21.5M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiPaperclipRemove = \"M18 13.09C17.47 13.18 16.97 13.34 16.5 13.55V6H18V13.09M11 1C8.79 1 7 2.79 7 5V17.5C7 20.54 9.46 23 12.5 23C13.13 23 13.73 22.89 14.29 22.7C13.97 22.29 13.7 21.84 13.5 21.36C13.17 21.44 12.84 21.5 12.5 21.5C10.29 21.5 8.5 19.71 8.5 17.5V5C8.5 3.62 9.62 2.5 11 2.5S13.5 3.62 13.5 5V15.5C13.5 16.05 13.05 16.5 12.5 16.5S11.5 16.05 11.5 15.5V6H10V15.5C10 16.88 11.12 18 12.5 18C12.71 18 12.91 17.97 13.1 17.92C13.35 16.58 14.03 15.41 15 14.54V5C15 2.79 13.21 1 11 1M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiParachute = \"M21.2,10.95L12,23L2.78,10.96L2.87,10.88C3.08,10.67 3.33,10.5 3.58,10.36L10.73,19.69L8.58,13L9.24,11.81L12,20.38L14.73,11.8L15.4,13L13.27,19.69L20.41,10.35C20.66,10.5 20.9,10.64 21.1,10.85L21.2,10.95M5,9C6.5,9 7.81,9.86 8.5,11.1C9.17,9.86 10.47,9 12,9C13.5,9 14.8,9.85 15.5,11.09C16.16,9.84 17.47,9 19,9C20.09,9 21.09,9.42 21.81,10.14C20.94,5.5 16.88,2 12,2C7.09,2 3.03,5.5 2.16,10.17C2.89,9.45 3.89,9 5,9Z\";\nexport var mdiParachuteOutline = \"M21.2,10.95L12,23L2.78,10.96L2.87,10.88C3.08,10.67 3.33,10.5 3.58,10.36L10.73,19.69L8.58,13L9.24,11.81L12,20.38L14.73,11.8L15.4,13L13.27,19.69L20.41,10.35C20.66,10.5 20.9,10.64 21.1,10.85L21.2,10.95M12,4C14.5,4 16.77,5.17 18.25,7.03C17.24,7.15 16.28,7.54 15.47,8.13C14.47,7.41 13.26,7 12,7C10.71,7 9.5,7.41 8.5,8.14C7.68,7.55 6.72,7.17 5.71,7.04C7.19,5.17 9.47,4 12,4M12,2C7.09,2 3.03,5.5 2.16,10.17C2.89,9.45 3.89,9 5,9C6.5,9 7.81,9.86 8.5,11.1C9.17,9.86 10.47,9 12,9C13.5,9 14.8,9.85 15.5,11.09C16.16,9.84 17.47,9 19,9C20.09,9 21.09,9.42 21.81,10.14C20.94,5.5 16.88,2 12,2Z\";\nexport var mdiParagliding = \"M12 17C10.9 17 10 16.11 10 15S10.9 13 12 13 14 13.9 14 15 13.11 17 12 17M19 14H17C17 16.76 14.76 19 12 19S7 16.76 7 14H5C5 16.79 6.64 19.19 9 20.32V23H15V20.32C17.36 19.19 19 16.79 19 14M23 7.76C23.04 8.56 22.05 9.06 21.41 8.6C21.27 8.46 21.16 8.44 21 8.32L18.97 13H17L15.5 6.73C13.21 6.5 10.79 6.5 8.5 6.73L7 13H5.03L3 8.32C2.84 8.44 2.73 8.46 2.59 8.6C1.95 9.06 .959 8.56 1 7.76V4C1 4 1 1 12 1S23 4 23 4M6.9 7C6 7.2 5.15 7.43 4.37 7.71L5.87 11.27L6.9 7M19.63 7.71C18.85 7.43 18 7.2 17.1 7L18.13 11.27L19.63 7.71Z\";\nexport var mdiParking = \"M13.2,11H10V7H13.2A2,2 0 0,1 15.2,9A2,2 0 0,1 13.2,11M13,3H6V21H10V15H13A6,6 0 0,0 19,9C19,5.68 16.31,3 13,3Z\";\nexport var mdiPartyPopper = \"M14.53 1.45L13.45 2.53L15.05 4.13C15.27 4.38 15.38 4.67 15.38 5S15.27 5.64 15.05 5.86L11.5 9.47L12.5 10.55L16.13 6.94C16.66 6.35 16.92 5.7 16.92 5C16.92 4.3 16.66 3.64 16.13 3.05L14.53 1.45M10.55 3.47L9.47 4.55L10.08 5.11C10.3 5.33 10.41 5.63 10.41 6S10.3 6.67 10.08 6.89L9.47 7.45L10.55 8.53L11.11 7.92C11.64 7.33 11.91 6.69 11.91 6C11.91 5.28 11.64 4.63 11.11 4.03L10.55 3.47M21 5.06C20.31 5.06 19.67 5.33 19.08 5.86L13.45 11.5L14.53 12.5L20.11 6.94C20.36 6.69 20.66 6.56 21 6.56S21.64 6.69 21.89 6.94L22.5 7.55L23.53 6.47L22.97 5.86C22.38 5.33 21.72 5.06 21 5.06M7 8L2 22L16 17L7 8M19 11.06C18.3 11.06 17.66 11.33 17.06 11.86L15.47 13.45L16.55 14.53L18.14 12.94C18.39 12.69 18.67 12.56 19 12.56C19.33 12.56 19.63 12.69 19.88 12.94L21.5 14.53L22.55 13.5L20.95 11.86C20.36 11.33 19.7 11.06 19 11.06Z\";\nexport var mdiPassport = \"M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2H6M12,5A5,5 0 0,1 17,10A5,5 0 0,1 12,15A5,5 0 0,1 7,10A5,5 0 0,1 12,5M12,6C11.59,6.62 11.25,7.29 11.04,8H12.96C12.75,7.29 12.42,6.62 12,6M10.7,6.22C9.78,6.53 9,7.17 8.54,8H10C10.18,7.38 10.4,6.78 10.7,6.22M13.29,6.22C13.59,6.78 13.82,7.38 14,8H15.46C15,7.17 14.21,6.54 13.29,6.22M8.13,9C8.05,9.32 8,9.65 8,10C8,10.35 8.05,10.68 8.13,11H9.82C9.78,10.67 9.75,10.34 9.75,10C9.75,9.66 9.78,9.33 9.82,9H8.13M10.83,9C10.78,9.32 10.75,9.66 10.75,10C10.75,10.34 10.78,10.67 10.83,11H13.17C13.21,10.67 13.25,10.34 13.25,10C13.25,9.66 13.21,9.32 13.17,9H10.83M14.18,9C14.22,9.33 14.25,9.66 14.25,10C14.25,10.34 14.22,10.67 14.18,11H15.87C15.95,10.68 16,10.35 16,10C16,9.65 15.95,9.32 15.87,9H14.18M8.54,12C9,12.83 9.78,13.46 10.7,13.78C10.4,13.22 10.18,12.63 10,12H8.54M11.04,12C11.25,12.72 11.59,13.38 12,14C12.42,13.38 12.75,12.72 12.96,12H11.04M14,12C13.82,12.63 13.59,13.22 13.29,13.78C14.21,13.46 15,12.83 15.46,12H14M7,17H17V19H7V17Z\";\nexport var mdiPassportAlert = \"M10 6C9.59 6.62 9.25 7.29 9.04 8H10.96C10.75 7.29 10.42 6.62 10 6M8.7 6.22C7.78 6.53 7 7.17 6.54 8H8C8.18 7.38 8.4 6.78 8.7 6.22M11.29 6.22C11.59 6.78 11.82 7.38 12 8H13.46C13 7.17 12.21 6.54 11.29 6.22M6.13 9C6.05 9.32 6 9.65 6 10C6 10.35 6.05 10.68 6.13 11H7.82C7.78 10.67 7.75 10.34 7.75 10C7.75 9.66 7.78 9.33 7.82 9H6.13M8.83 9C8.78 9.32 8.75 9.66 8.75 10C8.75 10.34 8.78 10.67 8.83 11H11.17C11.21 10.67 11.25 10.34 11.25 10C11.25 9.66 11.21 9.32 11.17 9H8.83M12.18 9C12.22 9.33 12.25 9.66 12.25 10C12.25 10.34 12.22 10.67 12.18 11H13.87C13.95 10.68 14 10.35 14 10C14 9.65 13.95 9.32 13.87 9H12.18M6.54 12C7 12.83 7.78 13.46 8.7 13.78C8.4 13.22 8.18 12.63 8 12H6.54M9.04 12C9.25 12.72 9.59 13.38 10 14C10.42 13.38 10.75 12.72 10.96 12H9.04M12 12C11.82 12.63 11.59 13.22 11.29 13.78C12.21 13.46 13 12.83 13.46 12H12M4 2C3.47 2 2.96 2.21 2.59 2.59C2.21 2.96 2 3.47 2 4V20C2 20.53 2.21 21.04 2.59 21.41C2.96 21.79 3.47 22 4 22H16C16.53 22 17.04 21.79 17.41 21.41C17.79 21.04 18 20.53 18 20V4C18 3.47 17.79 2.96 17.41 2.59C17.04 2.21 16.53 2 16 2H4M10 5C11.33 5 12.6 5.53 13.54 6.46C14.47 7.4 15 8.67 15 10C15 11.33 14.47 12.6 13.54 13.54C12.6 14.47 11.33 15 10 15C8.67 15 7.4 14.47 6.46 13.54C5.53 12.6 5 11.33 5 10C5 8.67 5.53 7.4 6.46 6.46C7.4 5.53 8.67 5 10 5M15 17V19H5V17H15M20 7H22V13H20V7M22 15H20V17H22V15Z\";\nexport var mdiPassportBiometric = \"M4,4A2,2 0 0,0 2,6V11H8.13C8.59,9.24 10.18,8 12,8C13.82,8 15.41,9.24 15.87,11H22V6A2,2 0 0,0 20,4H4M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M2,13V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V13H15.87C15.41,14.76 13.82,16 12,16C10.18,16 8.59,14.76 8.13,13H2Z\";\nexport var mdiPassportCancel = \"M6 2C5.47 2 4.96 2.21 4.59 2.59C4.21 2.96 4 3.47 4 4V20C4 20.53 4.21 21.04 4.59 21.41C4.96 21.79 5.47 22 6 22H13C12.46 21.12 12.1 20.1 12 19H7V17H12.17C12.36 16.23 12.67 15.5 13.1 14.88C12.74 14.96 12.37 15 12 15C10.67 15 9.4 14.47 8.46 13.54C7.53 12.6 7 11.33 7 10C7 8.67 7.53 7.4 8.46 6.46C9.4 5.53 10.67 5 12 5C13.33 5 14.6 5.53 15.54 6.46C16.47 7.4 17 8.67 17 10C17 10.82 16.8 11.63 16.42 12.34C17.07 12.12 17.77 12 18.5 12C19 12 19.5 12.06 20 12.17V4C20 3.47 19.79 2.96 19.41 2.59C19.04 2.21 18.53 2 18 2H6M12 6C11.59 6.62 11.25 7.29 11.04 8H12.96C12.75 7.29 12.42 6.62 12 6M10.7 6.22C9.78 6.53 9 7.17 8.54 8H10C10.18 7.38 10.4 6.78 10.7 6.22M13.29 6.22C13.59 6.78 13.82 7.38 14 8H15.46C15 7.17 14.21 6.54 13.29 6.22M8.13 9C8.05 9.32 8 9.65 8 10C8 10.35 8.05 10.68 8.13 11H9.82C9.78 10.67 9.75 10.34 9.75 10C9.75 9.66 9.78 9.33 9.82 9H8.13M10.83 9C10.78 9.32 10.75 9.66 10.75 10C10.75 10.34 10.78 10.67 10.83 11H13.17C13.21 10.67 13.25 10.34 13.25 10C13.25 9.66 13.21 9.32 13.17 9H10.83M14.18 9C14.22 9.33 14.25 9.66 14.25 10C14.25 10.34 14.22 10.67 14.18 11H15.87C15.95 10.68 16 10.35 16 10C16 9.65 15.95 9.32 15.87 9H14.18M8.54 12C9 12.83 9.78 13.46 10.7 13.78C10.4 13.22 10.18 12.63 10 12H8.54M11.04 12C11.25 12.72 11.59 13.38 12 14C12.42 13.38 12.75 12.72 12.96 12H11.04M14 12C13.82 12.63 13.59 13.22 13.29 13.78C14.21 13.46 15 12.83 15.46 12H14M18.5 23C21 23 23 21 23 18.5C23 16 21 14 18.5 14C16 14 14 16 14 18.5C14 21 16 23 18.5 23M15.92 17L20 21.09C19.58 21.35 19.06 21.5 18.5 21.5C16.84 21.5 15.5 20.16 15.5 18.5C15.5 17.94 15.65 17.42 15.92 17M21.5 18.5C21.5 19.06 21.35 19.58 21.09 20L17 15.92C17.42 15.65 17.94 15.5 18.5 15.5C20.16 15.5 21.5 16.84 21.5 18.5Z\";\nexport var mdiPassportCheck = \"M12 6C11.59 6.62 11.25 7.29 11.04 8H12.96C12.75 7.29 12.42 6.62 12 6M10.7 6.22C9.78 6.53 9 7.17 8.54 8H10C10.18 7.38 10.4 6.78 10.7 6.22M13.29 6.22C13.59 6.78 13.82 7.38 14 8H15.46C15 7.17 14.21 6.54 13.29 6.22M8.13 9C8.05 9.32 8 9.65 8 10C8 10.35 8.05 10.68 8.13 11H9.82C9.78 10.67 9.75 10.34 9.75 10C9.75 9.66 9.78 9.33 9.82 9H8.13M10.83 9C10.78 9.32 10.75 9.66 10.75 10C10.75 10.34 10.78 10.67 10.83 11H13.17C13.21 10.67 13.25 10.34 13.25 10C13.25 9.66 13.21 9.32 13.17 9H10.83M14.18 9C14.22 9.33 14.25 9.66 14.25 10C14.25 10.34 14.22 10.67 14.18 11H15.87C15.95 10.68 16 10.35 16 10C16 9.65 15.95 9.32 15.87 9H14.18M8.54 12C9 12.83 9.78 13.46 10.7 13.78C10.4 13.22 10.18 12.63 10 12H8.54M11.04 12C11.25 12.72 11.59 13.38 12 14C12.42 13.38 12.75 12.72 12.96 12H11.04M14 12C13.82 12.63 13.59 13.22 13.29 13.78C14.21 13.46 15 12.83 15.46 12H14M6 2C5.47 2 4.96 2.21 4.59 2.59C4.21 2.96 4 3.47 4 4V20C4 20.53 4.21 21.04 4.59 21.41C4.96 21.79 5.47 22 6 22H14.8C14.29 21.12 14 20.09 14 19H7V17H14.34C15.17 14.67 17.39 13 20 13V4C20 3.47 19.79 2.96 19.41 2.59C19.04 2.21 18.53 2 18 2H6M12 5C13.33 5 14.6 5.53 15.54 6.46C16.47 7.4 17 8.67 17 10C17 11.33 16.47 12.6 15.54 13.54C14.6 14.47 13.33 15 12 15C10.67 15 9.4 14.47 8.46 13.54C7.53 12.6 7 11.33 7 10C7 8.67 7.53 7.4 8.46 6.46C9.4 5.53 10.67 5 12 5M18.75 22.16L16 19.16L17.16 18L18.75 19.59L22.34 16L23.5 17.41L18.75 22.16Z\";\nexport var mdiPassportMinus = \"M12 6C11.59 6.62 11.25 7.29 11.04 8H12.96C12.75 7.29 12.42 6.62 12 6Z M10.7 6.22C9.78 6.53 9 7.17 8.54 8H10C10.18 7.38 10.4 6.78 10.7 6.22Z M13.29 6.22C13.59 6.78 13.82 7.38 14 8H15.46C15 7.17 14.21 6.54 13.29 6.22Z M8.13 9C8.05 9.32 8 9.65 8 10C8 10.35 8.05 10.68 8.13 11H9.82C9.78 10.67 9.75 10.34 9.75 10C9.75 9.66 9.78 9.33 9.82 9H8.13Z M10.83 9C10.78 9.32 10.75 9.66 10.75 10C10.75 10.34 10.78 10.67 10.83 11H13.17C13.21 10.67 13.25 10.34 13.25 10C13.25 9.66 13.21 9.32 13.17 9H10.83Z M14.18 9C14.22 9.33 14.25 9.66 14.25 10C14.25 10.34 14.22 10.67 14.18 11H15.87C15.95 10.68 16 10.35 16 10C16 9.65 15.95 9.32 15.87 9H14.18Z M8.54 12C9 12.83 9.78 13.46 10.7 13.78C10.4 13.22 10.18 12.63 10 12H8.54Z M11.04 12C11.25 12.72 11.59 13.38 12 14C12.42 13.38 12.75 12.72 12.96 12H11.04Z M14 12C13.82 12.63 13.59 13.22 13.29 13.78C14.21 13.46 15 12.83 15.46 12H14Z M6 2C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H13.8027C13.2922 21.1175 13 20.0929 13 19H7V17H13.3414C14.1651 14.6696 16.3876 13 19 13C19.3407 13 19.6748 13.0284 20 13.083V4C20 3.46957 19.7893 2.96086 19.4142 2.58579C19.0391 2.21071 18.5304 2 18 2H6ZM12 5C13.3261 5 14.5979 5.52678 15.5355 6.46447C16.4732 7.40215 17 8.67392 17 10C17 11.3261 16.4732 12.5979 15.5355 13.5355C14.5979 14.4732 13.3261 15 12 15C10.6739 15 9.40215 14.4732 8.46447 13.5355C7.52678 12.5979 7 11.3261 7 10C7 8.67392 7.52678 7.40215 8.46447 6.46447C9.40215 5.52678 10.6739 5 12 5Z M23 20V18H15V20H23Z\";\nexport var mdiPassportPlus = \"M12 6C11.59 6.62 11.25 7.29 11.04 8H12.96C12.75 7.29 12.42 6.62 12 6M10.7 6.22C9.78 6.53 9 7.17 8.54 8H10C10.18 7.38 10.4 6.78 10.7 6.22M13.29 6.22C13.59 6.78 13.82 7.38 14 8H15.46C15 7.17 14.21 6.54 13.29 6.22M8.13 9C8.05 9.32 8 9.65 8 10C8 10.35 8.05 10.68 8.13 11H9.82C9.78 10.67 9.75 10.34 9.75 10C9.75 9.66 9.78 9.33 9.82 9H8.13M10.83 9C10.78 9.32 10.75 9.66 10.75 10C10.75 10.34 10.78 10.67 10.83 11H13.17C13.21 10.67 13.25 10.34 13.25 10C13.25 9.66 13.21 9.32 13.17 9H10.83M14.18 9C14.22 9.33 14.25 9.66 14.25 10C14.25 10.34 14.22 10.67 14.18 11H15.87C15.95 10.68 16 10.35 16 10C16 9.65 15.95 9.32 15.87 9H14.18M8.54 12C9 12.83 9.78 13.46 10.7 13.78C10.4 13.22 10.18 12.63 10 12H8.54M11.04 12C11.25 12.72 11.59 13.38 12 14C12.42 13.38 12.75 12.72 12.96 12H11.04M14 12C13.82 12.63 13.59 13.22 13.29 13.78C14.21 13.46 15 12.83 15.46 12H14M6 2C5.47 2 4.96 2.21 4.59 2.59C4.21 2.96 4 3.47 4 4V20C4 20.53 4.21 21.04 4.59 21.41C4.96 21.79 5.47 22 6 22H13.8C13.29 21.12 13 20.09 13 19H7V17H13.34C14.17 14.67 16.39 13 19 13C19.34 13 19.68 13.03 20 13.08V4C20 3.47 19.79 2.96 19.41 2.59C19.04 2.21 18.53 2 18 2H6M12 5C13.33 5 14.6 5.53 15.54 6.46C16.47 7.4 17 8.67 17 10C17 11.33 16.47 12.6 15.54 13.54C14.6 14.47 13.33 15 12 15C10.67 15 9.4 14.47 8.46 13.54C7.53 12.6 7 11.33 7 10C7 8.67 7.53 7.4 8.46 6.46C9.4 5.53 10.67 5 12 5M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z\";\nexport var mdiPassportRemove = \"M12 6C11.59 6.62 11.25 7.29 11.04 8H12.96C12.75 7.29 12.42 6.62 12 6M10.7 6.22C9.78 6.53 9 7.17 8.54 8H10C10.18 7.38 10.4 6.78 10.7 6.22M13.29 6.22C13.59 6.78 13.82 7.38 14 8H15.46C15 7.17 14.21 6.54 13.29 6.22M8.13 9C8.05 9.32 8 9.65 8 10C8 10.35 8.05 10.68 8.13 11H9.82C9.78 10.67 9.75 10.34 9.75 10C9.75 9.66 9.78 9.33 9.82 9H8.13M10.83 9C10.78 9.32 10.75 9.66 10.75 10C10.75 10.34 10.78 10.67 10.83 11H13.17C13.21 10.67 13.25 10.34 13.25 10C13.25 9.66 13.21 9.32 13.17 9H10.83M14.18 9C14.22 9.33 14.25 9.66 14.25 10C14.25 10.34 14.22 10.67 14.18 11H15.87C15.95 10.68 16 10.35 16 10C16 9.65 15.95 9.32 15.87 9H14.18M8.54 12C9 12.83 9.78 13.46 10.7 13.78C10.4 13.22 10.18 12.63 10 12H8.54M11.04 12C11.25 12.72 11.59 13.38 12 14C12.42 13.38 12.75 12.72 12.96 12H11.04M14 12C13.82 12.63 13.59 13.22 13.29 13.78C14.21 13.46 15 12.83 15.46 12H14M6 2C5.47 2 4.96 2.21 4.59 2.59C4.21 2.96 4 3.47 4 4V20C4 20.53 4.21 21.04 4.59 21.41C4.96 21.79 5.47 22 6 22H13.8C13.29 21.12 13 20.09 13 19H7V17H13.34C14.17 14.67 16.39 13 19 13C19.34 13 19.68 13.03 20 13.08V4C20 3.47 19.79 2.96 19.41 2.59C19.04 2.21 18.53 2 18 2H6M12 5C13.33 5 14.6 5.53 15.54 6.46C16.47 7.4 17 8.67 17 10C17 11.33 16.47 12.6 15.54 13.54C14.6 14.47 13.33 15 12 15C10.67 15 9.4 14.47 8.46 13.54C7.53 12.6 7 11.33 7 10C7 8.67 7.53 7.4 8.46 6.46C9.4 5.53 10.67 5 12 5M15.46 16.88L16.88 15.46L19 17.59L21.12 15.47L22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.47 16.88Z\";\nexport var mdiPasta = \"M4 16.5V8H3V7H4V6H3V5H4V4H3V3H9C9.5 3.03 9.95 3.24 10.34 3.63S10.95 4.5 11 5H21V6H11C10.95 6.53 10.73 7 10.34 7.43S9.5 8.05 9 8H7V15.05C7.05 15.05 7.13 15.04 7.24 15S7.44 15 7.5 15C8.06 15 8.7 15.14 9.42 15.42C9.83 14.5 10.53 13.68 11.53 13S13.53 12 14.53 12C16.06 12 17.36 12.53 18.42 13.59S20 15.95 20 17.5C20 17.55 20 17.64 20 17.77S19.97 17.97 19.97 18H3.14C3.27 17.5 3.55 17 4 16.5M6 15.23V8H5V15.7C5.5 15.45 5.81 15.3 6 15.23M9 7V6H7V7H9M9 4H7V5H9V4M5 4V5H6V4H5M5 6V7H6V6H5M2 19H22L20 21H4L2 19Z\";\nexport var mdiPatioHeater = \"M15 22H9V21H15V22M19 4L15 2H9L5 4H19M8 5L8.4 6H15.6L16 5H8M10 10H11V15C10.4 15 10 15.4 10 16V20H14V16C14 15.4 13.6 15 13 15V10H14L14.4 9H9.6L10 10M9.2 8H14.8L15.2 7H8.8L9.2 8Z\";\nexport var mdiPatreon = \"M14.82 2.41C18.78 2.41 22 5.65 22 9.62C22 13.58 18.78 16.8 14.82 16.8C10.85 16.8 7.61 13.58 7.61 9.62C7.61 5.65 10.85 2.41 14.82 2.41M2 21.6H5.5V2.41H2V21.6Z\";\nexport var mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nexport var mdiPauseBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.1 3 19 3M11 16H9V8H11V16M15 16H13V8H15V16Z\";\nexport var mdiPauseBoxOutline = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M19 19H5V5H19V19M13 16V8H15V16H13M9 16V8H11V16H9\";\nexport var mdiPauseCircle = \"M15,16H13V8H15M11,16H9V8H11M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiPauseCircleOutline = \"M13,16V8H15V16H13M9,16V8H11V16H9M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiPauseOctagon = \"M15.73,3L21,8.27V15.73L15.73,21H8.27L3,15.73V8.27L8.27,3H15.73M15,16V8H13V16H15M11,16V8H9V16H11Z\";\nexport var mdiPauseOctagonOutline = \"M15,16H13V8H15V16M11,16H9V8H11V16M15.73,3L21,8.27V15.73L15.73,21H8.27L3,15.73V8.27L8.27,3H15.73M14.9,5H9.1L5,9.1V14.9L9.1,19H14.9L19,14.9V9.1L14.9,5Z\";\nexport var mdiPaw = \"M8.35,3C9.53,2.83 10.78,4.12 11.14,5.9C11.5,7.67 10.85,9.25 9.67,9.43C8.5,9.61 7.24,8.32 6.87,6.54C6.5,4.77 7.17,3.19 8.35,3M15.5,3C16.69,3.19 17.35,4.77 17,6.54C16.62,8.32 15.37,9.61 14.19,9.43C13,9.25 12.35,7.67 12.72,5.9C13.08,4.12 14.33,2.83 15.5,3M3,7.6C4.14,7.11 5.69,8 6.5,9.55C7.26,11.13 7,12.79 5.87,13.28C4.74,13.77 3.2,12.89 2.41,11.32C1.62,9.75 1.9,8.08 3,7.6M21,7.6C22.1,8.08 22.38,9.75 21.59,11.32C20.8,12.89 19.26,13.77 18.13,13.28C17,12.79 16.74,11.13 17.5,9.55C18.31,8 19.86,7.11 21,7.6M19.33,18.38C19.37,19.32 18.65,20.36 17.79,20.75C16,21.57 13.88,19.87 11.89,19.87C9.9,19.87 7.76,21.64 6,20.75C5,20.26 4.31,18.96 4.44,17.88C4.62,16.39 6.41,15.59 7.47,14.5C8.88,13.09 9.88,10.44 11.89,10.44C13.89,10.44 14.95,13.05 16.3,14.5C17.41,15.72 19.26,16.75 19.33,18.38Z\";\nexport var mdiPawOff = \"M2,4.27L3.28,3L21.5,21.22L20.23,22.5L18.23,20.5C18.09,20.6 17.94,20.68 17.79,20.75C16,21.57 13.88,19.87 11.89,19.87C9.9,19.87 7.76,21.64 6,20.75C5,20.26 4.31,18.96 4.44,17.88C4.62,16.39 6.41,15.59 7.47,14.5C8.21,13.77 8.84,12.69 9.55,11.82L2,4.27M8.35,3C9.53,2.83 10.78,4.12 11.14,5.9C11.32,6.75 11.26,7.56 11,8.19L7.03,4.2C7.29,3.55 7.75,3.1 8.35,3M15.5,3C16.69,3.19 17.35,4.77 17,6.54C16.62,8.32 15.37,9.61 14.19,9.43C13,9.25 12.35,7.67 12.72,5.9C13.08,4.12 14.33,2.83 15.5,3M3,7.6C4.14,7.11 5.69,8 6.5,9.55C7.26,11.13 7,12.79 5.87,13.28C4.74,13.77 3.2,12.89 2.41,11.32C1.62,9.75 1.9,8.08 3,7.6M21,7.6C22.1,8.08 22.38,9.75 21.59,11.32C20.8,12.89 19.26,13.77 18.13,13.28C17,12.79 16.74,11.13 17.5,9.55C18.31,8 19.86,7.11 21,7.6Z\";\nexport var mdiPawOffOutline = \"M22.83 8.25C22.56 7.5 22.05 6.96 21.39 6.68C20.22 6.18 18.8 6.6 17.7 7.66C17.81 7.37 17.91 7.06 18 6.73C18.25 5.38 18 4.03 17.38 3.12C16.95 2.5 16.33 2.11 15.64 2C14.1 1.78 12.57 3.08 11.93 5C11.28 3.05 9.74 1.76 8.19 2C7.5 2.12 6.88 2.53 6.45 3.16C6.44 3.18 6.43 3.2 6.42 3.22L7.91 4.71C7.96 4.54 8 4.4 8.1 4.29C8.22 4.12 8.36 4 8.5 4C9 3.91 9.88 4.69 10.16 6.1C10.23 6.44 10.24 6.75 10.22 7L11.88 8.68C11.89 8.65 11.91 8.62 11.93 8.58C11.97 8.69 12.04 8.78 12.09 8.89L13.43 10.23C13.63 10.32 13.83 10.39 14.04 10.42C14.16 10.44 14.29 10.45 14.41 10.45C15.13 10.45 15.83 10.12 16.43 9.57C16 10.64 15.96 11.73 16.29 12.63C16.56 13.35 17.07 13.91 17.73 14.2C18.07 14.34 18.43 14.41 18.8 14.41C20.18 14.41 21.66 13.4 22.5 11.77C23.08 10.58 23.21 9.3 22.83 8.25M16 6.33C15.72 7.73 14.83 8.5 14.34 8.44C14.28 8.43 14.12 8.41 13.94 8.15C13.69 7.79 13.5 7.07 13.7 6.1C13.97 4.76 14.8 4 15.29 4C15.31 4 15.34 4 15.36 4C15.5 4 15.63 4.11 15.75 4.27C16.07 4.73 16.18 5.54 16 6.33M20.7 10.87C20.12 12 19.08 12.6 18.53 12.36C18.47 12.34 18.28 12.26 18.16 11.93C18 11.43 18.07 10.68 18.39 10C18.9 9.04 19.74 8.47 20.33 8.47C20.43 8.47 20.5 8.5 20.6 8.5H20.6C20.75 8.58 20.87 8.72 20.95 8.94C21.09 9.34 21.1 10.06 20.7 10.87M1.11 3L4.8 6.69C4.06 6.41 3.29 6.39 2.6 6.68C1.94 6.97 1.43 7.53 1.17 8.27C.793 9.31 .919 10.58 1.5 11.77C2.34 13.4 3.82 14.41 5.21 14.41C5.57 14.41 5.93 14.34 6.27 14.2C6.93 13.91 7.44 13.35 7.71 12.63C8 11.79 8 10.77 7.64 9.76C7.83 9.91 8.04 10.03 8.24 10.13L9.73 11.62C8.94 12.5 8.27 13.7 7.47 14.5C6.41 15.59 4.62 16.39 4.44 17.88C4.31 18.96 5 20.26 6 20.75C6.35 20.93 6.72 21 7.1 21C8.61 21 10.3 19.87 11.89 19.87C13.5 19.87 15.18 20.97 16.71 20.97C17.08 20.97 17.44 20.91 17.79 20.75C18 20.65 18.23 20.5 18.43 20.32L20.84 22.73L22.11 21.46L2.39 1.73L1.11 3M11.15 13.04L17 18.9C17 18.91 16.97 18.92 16.96 18.93C16.92 18.95 16.85 18.97 16.71 18.97C16.28 18.97 15.63 18.75 15 18.54C14.08 18.23 13.03 17.87 11.89 17.87C10.75 17.87 9.7 18.24 8.78 18.56C8.15 18.77 7.5 19 7.1 19C6.97 19 6.92 19 6.88 18.95C6.66 18.84 6.4 18.37 6.43 18.12C6.5 17.89 7.23 17.31 7.59 17C8.03 16.68 8.5 16.33 8.89 15.91C9.44 15.36 9.89 14.73 10.33 14.12C10.55 13.8 10.86 13.38 11.15 13.04M5.6 10C5.93 10.68 6 11.43 5.84 11.93C5.71 12.26 5.53 12.34 5.47 12.36C4.92 12.6 3.88 12 3.3 10.87C2.9 10.06 2.91 9.35 3.05 8.94C3.13 8.73 3.25 8.58 3.4 8.5C3.5 8.5 3.57 8.46 3.68 8.46C4.26 8.46 5.1 9.03 5.6 10Z\";\nexport var mdiPawOutline = \"M22.83 8.25C22.56 7.5 22.05 6.96 21.4 6.68C20.23 6.18 18.81 6.6 17.7 7.66C17.81 7.37 17.91 7.06 18 6.73C18.25 5.38 18.03 4.03 17.38 3.12C16.95 2.5 16.33 2.11 15.64 2C14.1 1.78 12.57 3.08 11.93 5C11.29 3.05 9.74 1.76 8.19 2C7.5 2.12 6.88 2.53 6.45 3.16C5.81 4.09 5.61 5.39 5.89 6.74C5.94 7 6 7.24 6.09 7.47C5 6.56 3.7 6.2 2.6 6.68C1.94 6.97 1.44 7.53 1.17 8.27C.794 9.31 .92 10.58 1.5 11.77C2.34 13.4 3.82 14.41 5.21 14.41C5.57 14.41 5.93 14.34 6.27 14.2C6.93 13.91 7.44 13.35 7.71 12.63C8.03 11.79 8 10.77 7.64 9.76C8.19 10.19 8.81 10.45 9.45 10.45C9.57 10.45 9.7 10.44 9.82 10.42C10.5 10.32 11.12 9.92 11.55 9.3C11.7 9.08 11.83 8.84 11.93 8.58C12.03 8.84 12.15 9.08 12.3 9.29C12.73 9.91 13.35 10.31 14.04 10.42C14.16 10.44 14.29 10.45 14.41 10.45C15.13 10.45 15.83 10.12 16.43 9.57C16 10.64 15.96 11.73 16.29 12.63C16.56 13.36 17.07 13.91 17.73 14.2C18.07 14.34 18.43 14.41 18.8 14.41C20.18 14.41 21.66 13.4 22.5 11.77C23.08 10.58 23.21 9.3 22.83 8.25M5.84 11.93C5.72 12.26 5.53 12.34 5.47 12.36C4.92 12.6 3.88 12 3.3 10.87C2.9 10.06 2.91 9.35 3.05 8.94C3.13 8.73 3.25 8.58 3.4 8.5C3.5 8.5 3.58 8.46 3.68 8.46C4.26 8.46 5.1 9.03 5.6 10C5.93 10.68 6.03 11.43 5.84 11.93M9.91 8.16C9.79 8.32 9.66 8.42 9.5 8.44C9 8.5 8.14 7.73 7.85 6.34C7.65 5.38 7.85 4.66 8.1 4.29C8.22 4.12 8.36 4 8.5 4C9 3.91 9.88 4.69 10.16 6.1C10.36 7.07 10.16 7.8 9.91 8.16M16 6.33C15.72 7.73 14.83 8.5 14.34 8.44C14.28 8.43 14.12 8.41 13.94 8.15C13.69 7.79 13.5 7.07 13.7 6.1C13.97 4.76 14.8 4 15.29 4C15.32 4 15.34 4 15.36 4C15.5 4 15.63 4.11 15.75 4.27C16.07 4.73 16.18 5.54 16 6.33M20.7 10.87C20.12 12 19.08 12.6 18.53 12.36C18.47 12.34 18.28 12.26 18.16 11.93C18 11.43 18.07 10.68 18.39 10C18.9 9.04 19.75 8.47 20.33 8.47C20.43 8.47 20.5 8.5 20.6 8.5H20.61C20.76 8.58 20.87 8.72 20.95 8.94C21.1 9.34 21.11 10.06 20.7 10.87M16.3 14.5C14.95 13.05 13.89 10.44 11.89 10.44C9.88 10.44 8.88 13.09 7.47 14.5C6.41 15.59 4.62 16.39 4.44 17.88C4.31 18.96 5 20.26 6 20.75C6.35 20.93 6.72 21 7.1 21C8.61 21 10.3 19.87 11.89 19.87C13.5 19.87 15.18 20.97 16.71 20.97C17.08 20.97 17.44 20.91 17.79 20.75C18.65 20.36 19.37 19.32 19.33 18.38C19.26 16.75 17.41 15.72 16.3 14.5M16.96 18.93C16.92 18.95 16.85 18.97 16.71 18.97C16.29 18.97 15.63 18.75 15 18.54C14.08 18.23 13.03 17.87 11.89 17.87C10.75 17.87 9.7 18.24 8.78 18.56C8.15 18.77 7.5 19 7.1 19C6.97 19 6.92 19 6.88 18.95C6.66 18.84 6.4 18.37 6.43 18.12C6.5 17.89 7.23 17.31 7.59 17C8.03 16.68 8.5 16.33 8.89 15.91C9.44 15.36 9.89 14.73 10.33 14.12C10.78 13.5 11.53 12.44 11.89 12.44C12.29 12.44 13.08 13.56 13.56 14.22C13.95 14.78 14.36 15.35 14.82 15.85C15.21 16.27 15.62 16.64 16 17C16.54 17.45 17.32 18.14 17.33 18.44C17.32 18.58 17.12 18.86 16.96 18.93Z\";\nexport var mdiPeace = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,14.41V19.93C9.58,19.75 8.23,19.19 7.1,18.31L11,14.41M13,14.41L16.9,18.31C15.77,19.19 14.42,19.75 13,19.93V14.41M4,12C4,7.97 7,4.57 11,4.07V11.59L5.69,16.9C4.59,15.5 4,13.78 4,12M18.31,16.9L13,11.59V4.07C17,4.57 20,7.97 20,12C20,13.78 19.41,15.5 18.31,16.9Z\";\nexport var mdiPeanut = \"M16 12.77A2 2 0 0 1 15.86 10.12A5 5 0 0 0 13.04 2.12A5.74 5.74 0 0 0 12 2A5 5 0 0 0 7 7A5 5 0 0 0 8.11 10.12A2 2 0 0 1 8 12.72A5.5 5.5 0 0 0 10.81 21.87A5.42 5.42 0 0 0 12 22A5.5 5.5 0 0 0 16 12.77M13 5A1 1 0 1 1 12 6A1 1 0 0 1 13 5M11 18A1 1 0 1 1 12 17A1 1 0 0 1 11 18M12 15A1 1 0 1 1 13 16A1 1 0 0 1 12 15M14 19A1 1 0 1 1 15 18A1 1 0 0 1 14 19Z\";\nexport var mdiPeanutOff = \"M15.9 10.12A5 5 0 0 0 13.08 2.12A5.74 5.74 0 0 0 12 2A5 5 0 0 0 7.68 4.5L16.38 13.18A4.35 4.35 0 0 0 16.04 12.77A2 2 0 0 1 15.9 10.12M13 7A1 1 0 1 1 14 6A1 1 0 0 1 13 7M7 6.39L2.39 1.73L1.11 3L7.8 9.69C7.9 9.84 8 10 8.11 10.12A2 2 0 0 1 8 12.72A5.5 5.5 0 0 0 10.81 21.87A5.42 5.42 0 0 0 12 22A5.5 5.5 0 0 0 17 18.86L20.87 22.73L22.14 21.46M11 18A1 1 0 1 1 12 17A1 1 0 0 1 11 18M14 19A1 1 0 1 1 15 18A1 1 0 0 1 14 19M13 16A1 1 0 0 1 12 15A1 1 0 0 1 12.35 14.24L13.76 15.65A1 1 0 0 1 13 16Z\";\nexport var mdiPeanutOffOutline = \"M22.11 21.46L20.84 22.73L17.69 19.58C17.36 20.21 16.93 20.77 16.41 21.25C14.86 22.71 12.69 23.31 10.61 22.85C7.1 22.1 4.87 18.64 5.62 15.13C5.87 13.95 6.45 12.87 7.28 12C7.62 11.64 7.62 11.08 7.28 10.72C6.63 9.91 6.21 8.95 6.04 7.93L1.11 3L2.39 1.73L22.11 21.46M15.3 19.56C15.69 19.13 16 18.63 16.19 18.08L13.75 15.64C13.57 15.87 13.29 16 13 16C12.45 16 12 15.55 12 15C12 14.71 12.13 14.43 12.36 14.25L9.55 11.44C9.53 12.18 9.24 12.88 8.73 13.41C7.03 15.22 7.13 18.07 8.94 19.77L8.95 19.78C10.76 21.47 13.61 21.37 15.3 19.56M14 17C12.71 17 12.72 19 14 19C15.28 19 15.29 17 14 17M6.9 3.7L8.43 5.23C8.68 4.71 9.05 4.25 9.5 3.89C10.2 3.31 11.09 3 12 3H12.88C13.47 3.14 14 3.41 14.5 3.79C16.22 5.17 16.5 7.69 15.12 9.41C14.7 9.93 14.46 10.58 14.45 11.25L18.32 15.12C18.07 13.97 17.5 12.92 16.72 12.06C16.37 11.7 16.33 11.13 16.62 10.72C16.62 10.72 18 9 18 7S15.97.997 12 .997 6.9 3.7 6.9 3.7M12 17C12 15.71 10 15.72 10 17C10 18.28 12 18.29 12 17M13 5C11.71 5 11.72 7 13 7C14.28 7 14.29 5 13 5Z\";\nexport var mdiPeanutOutline = \"M12 23C11.53 23 11.07 22.95 10.61 22.85C7.1 22.1 4.87 18.64 5.62 15.13C5.87 13.95 6.45 12.87 7.28 12C7.62 11.64 7.62 11.08 7.28 10.72C5.2 8.14 5.6 4.36 8.18 2.28S14.54.607 16.62 3.19C18.39 5.38 18.39 8.5 16.62 10.72C16.33 11.13 16.37 11.7 16.72 12.06C19.17 14.68 19.04 18.8 16.41 21.25C15.22 22.37 13.64 23 12 23M12 3C11.09 3 10.2 3.31 9.5 3.89C8.55 4.65 8 5.79 8 7C8 7.91 8.31 8.79 8.88 9.5C9.84 10.64 9.77 12.33 8.73 13.41C7.03 15.22 7.13 18.07 8.94 19.77S13.6 21.38 15.3 19.56C16.92 17.83 16.92 15.14 15.3 13.41C14.23 12.32 14.15 10.6 15.12 9.41C16.5 7.69 16.22 5.17 14.5 3.79C14 3.41 13.47 3.14 12.88 3C12.59 3 12.29 3 12 3M12 6C12 6.55 12.45 7 13 7S14 6.55 14 6 13.55 5 13 5 12 5.45 12 6M14 19C14.55 19 15 18.55 15 18S14.55 17 14 17 13 17.45 13 18 13.45 19 14 19M13 16C13.55 16 14 15.55 14 15S13.55 14 13 14 12 14.45 12 15 12.45 16 13 16M11 18C11.55 18 12 17.55 12 17S11.55 16 11 16 10 16.45 10 17 10.45 18 11 18Z\";\nexport var mdiPen = \"M20.71,7.04C20.37,7.38 20.04,7.71 20.03,8.04C20,8.36 20.34,8.69 20.66,9C21.14,9.5 21.61,9.95 21.59,10.44C21.57,10.93 21.06,11.44 20.55,11.94L16.42,16.08L15,14.66L19.25,10.42L18.29,9.46L16.87,10.87L13.12,7.12L16.96,3.29C17.35,2.9 18,2.9 18.37,3.29L20.71,5.63C21.1,6 21.1,6.65 20.71,7.04M3,17.25L12.56,7.68L16.31,11.43L6.75,21H3V17.25Z\";\nexport var mdiPenLock = \"M21.7,7C21.4,7.4 21,7.7 21,8C21,8.3 21.3,8.6 21.6,9C22.1,9.5 22.6,9.9 22.5,10.4C22.5,10.9 22,11.4 21.5,11.9L17.4,16L16,14.7L20.2,10.5L19.2,9.5L17.8,10.9L14,7.1L18,3.3C18.4,2.9 19,2.9 19.4,3.3L21.7,5.6C22.1,6 22.1,6.7 21.7,7M4,17.2L13.6,7.6L17.3,11.4L7.8,21H4V17.2M8,5V4.5C8,3.1 6.9,2 5.5,2C4.1,2 3,3.1 3,4.5V5C2.4,5 2,5.4 2,6V10C2,10.6 2.4,11 3,11H8C8.6,11 9,10.6 9,10V6C9,5.4 8.6,5 8,5M7,5H4V4.5C4,3.7 4.7,3 5.5,3C6.3,3 7,3.7 7,4.5V5Z\";\nexport var mdiPenMinus = \"M20.7,7C20.4,7.4 20,7.7 20,8C20,8.3 20.3,8.6 20.6,9C21.1,9.5 21.6,9.9 21.5,10.4C21.5,10.9 21,11.4 20.5,11.9L16.4,16L15,14.7L19.2,10.5L18.2,9.5L16.8,10.9L13,7.1L17,3.3C17.4,2.9 18,2.9 18.4,3.3L20.7,5.6C21.1,6 21.1,6.7 20.7,7M3,17.2L12.6,7.6L16.3,11.4L6.8,21H3V17.2M10,5V7H2V5H10Z\";\nexport var mdiPenOff = \"M2.3,5L1,6.3L7.5,12.8L3,17.2V21H6.8L11.3,16.5L17.8,23L19.1,21.7L2.3,5M16.9,10.9L13.1,7.1L17,3.3C17.4,2.9 18,2.9 18.4,3.3L20.7,5.6C21.1,6 21.1,6.6 20.7,7C20.4,7.4 20,7.7 20,8C20,8.3 20.3,8.7 20.6,9C21.1,9.5 21.6,10 21.5,10.4C21.5,10.9 21,11.4 20.5,11.9L16.4,16L15,14.7L19.2,10.5L18.2,9.5L16.9,10.9M10,10.2L12.5,7.7L16.3,11.5L13.8,14L10,10.2Z\";\nexport var mdiPenPlus = \"M20.7,7C20.4,7.4 20,7.7 20,8C20,8.3 20.3,8.6 20.6,9C21.1,9.5 21.6,9.9 21.5,10.4C21.5,10.9 21,11.4 20.5,11.9L16.4,16L15,14.7L19.2,10.5L18.2,9.5L16.8,10.9L13,7.1L17,3.3C17.4,2.9 18,2.9 18.4,3.3L20.7,5.6C21.1,6 21.1,6.7 20.7,7M3,17.2L12.6,7.6L16.3,11.4L6.8,21H3V17.2M7,2V5H10V7H7V10H5V7H2V5H5V2H7Z\";\nexport var mdiPenRemove = \"M20.7,7C20.4,7.4 20,7.7 20,8C20,8.3 20.3,8.6 20.6,9C21.1,9.5 21.6,9.9 21.5,10.4C21.5,10.9 21,11.4 20.5,11.9L16.4,16L15,14.7L19.2,10.5L18.2,9.5L16.8,10.9L13,7.1L17,3.3C17.4,2.9 18,2.9 18.4,3.3L20.7,5.6C21.1,6 21.1,6.7 20.7,7M3,17.2L12.6,7.6L16.3,11.4L6.8,21H3V17.2M3.88,2.46L6,4.59L8.12,2.46L9.54,3.88L7.41,6L9.54,8.12L8.12,9.54L6,7.41L3.88,9.54L2.46,8.12L4.59,6L2.46,3.88L3.88,2.46Z\";\nexport var mdiPencil = \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\";\nexport var mdiPencilBox = \"M19,3A2,2 0 0,1 21,5V19C21,20.11 20.1,21 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M16.7,9.35C16.92,9.14 16.92,8.79 16.7,8.58L15.42,7.3C15.21,7.08 14.86,7.08 14.65,7.3L13.65,8.3L15.7,10.35L16.7,9.35M7,14.94V17H9.06L15.12,10.94L13.06,8.88L7,14.94Z\";\nexport var mdiPencilBoxMultiple = \"M20.22 2H7.78C6.8 2 6 2.8 6 3.78V16.22C6 17.2 6.8 18 7.78 18H20.22C21.2 18 22 17.21 22 16.22V3.78C22 2.8 21.2 2 20.22 2M11.06 15H9V12.94L15.06 6.88L17.12 8.94L11.06 15M18.7 7.35L17.7 8.35L15.65 6.3L16.65 5.3C16.86 5.08 17.21 5.08 17.42 5.3L18.7 6.58C18.92 6.79 18.92 7.14 18.7 7.35M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6Z\";\nexport var mdiPencilBoxMultipleOutline = \"M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6M18.7 7.35L17.7 8.35L15.65 6.3L16.65 5.3C16.86 5.08 17.21 5.08 17.42 5.3L18.7 6.58C18.92 6.79 18.92 7.14 18.7 7.35M9 12.94L15.06 6.88L17.12 8.94L11.06 15H9V12.94M20 4L20 4L20 16L8 16L8 4H20M20 2H8C6.9 2 6 2.9 6 4V16C6 17.1 6.9 18 8 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2Z\";\nexport var mdiPencilBoxOutline = \"M19,19V5H5V19H19M19,3A2,2 0 0,1 21,5V19C21,20.11 20.1,21 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M16.7,9.35L15.7,10.35L13.65,8.3L14.65,7.3C14.86,7.08 15.21,7.08 15.42,7.3L16.7,8.58C16.92,8.79 16.92,9.14 16.7,9.35M7,14.94L13.06,8.88L15.12,10.94L9.06,17H7V14.94Z\";\nexport var mdiPencilCircle = \"M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M15.1,7.07C15.24,7.07 15.38,7.12 15.5,7.23L16.77,8.5C17,8.72 17,9.07 16.77,9.28L15.77,10.28L13.72,8.23L14.72,7.23C14.82,7.12 14.96,7.07 15.1,7.07M13.13,8.81L15.19,10.87L9.13,16.93H7.07V14.87L13.13,8.81Z\";\nexport var mdiPencilCircleOutline = \"M7,14.94L13.06,8.88L15.12,10.94L9.06,17H7V14.94M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M16.7,9.35L15.7,10.35L13.65,8.3L14.65,7.3C14.86,7.08 15.21,7.08 15.42,7.3L16.7,8.58C16.92,8.79 16.92,9.14 16.7,9.35M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2\";\nexport var mdiPencilLock = \"M5.5,2A2.5,2.5 0 0,0 3,4.5V5A1,1 0 0,0 2,6V10A1,1 0 0,0 3,11H8A1,1 0 0,0 9,10V6A1,1 0 0,0 8,5V4.5A2.5,2.5 0 0,0 5.5,2M5.5,3A1.5,1.5 0 0,1 7,4.5V5H4V4.5A1.5,1.5 0 0,1 5.5,3M19.66,3C19.4,3 19.16,3.09 18.97,3.28L17.13,5.13L20.88,8.88L22.72,7.03C23.11,6.64 23.11,6 22.72,5.63L20.38,3.28C20.18,3.09 19.91,3 19.66,3M16.06,6.19L5,17.25V21H8.75L19.81,9.94L16.06,6.19Z\";\nexport var mdiPencilLockOutline = \"M16.1,9L17,9.9L7.9,19H7V18.1L16.1,9M19.7,3C19.5,3 19.2,3.1 19,3.3L17.2,5.1L20.9,8.9L22.7,7C23.1,6.6 23.1,6 22.7,5.6L20.4,3.3C20.2,3.1 19.9,3 19.7,3M16.1,6.2L5,17.2V21H8.8L19.8,9.9L16.1,6.2M8,5V4.5C8,3.1 6.9,2 5.5,2C4.1,2 3,3.1 3,4.5V5C2.4,5 2,5.4 2,6V10C2,10.6 2.4,11 3,11H8C8.6,11 9,10.6 9,10V6C9,5.4 8.6,5 8,5M7,5H4V4.5C4,3.7 4.7,3 5.5,3C6.3,3 7,3.7 7,4.5V5Z\";\nexport var mdiPencilMinus = \"M20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18,2.9 17.4,2.9 17,3.3L15.2,5.1L19,8.9M3,17.2V21H6.8L17.8,9.9L14.1,6.1L3,17.2M10,5V7H2V5H10Z\";\nexport var mdiPencilMinusOutline = \"M14.1,9L15,9.9L5.9,19H5V18.1L14.1,9M17.7,3C17.5,3 17.2,3.1 17,3.3L15.2,5.1L18.9,8.9L20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18.2,3.1 17.9,3 17.7,3M14.1,6.2L3,17.2V21H6.8L17.8,9.9L14.1,6.2M10,5V7H2V5H10Z\";\nexport var mdiPencilOff = \"M18.66,2C18.4,2 18.16,2.09 17.97,2.28L16.13,4.13L19.88,7.88L21.72,6.03C22.11,5.64 22.11,5 21.72,4.63L19.38,2.28C19.18,2.09 18.91,2 18.66,2M3.28,4L2,5.28L8.5,11.75L4,16.25V20H7.75L12.25,15.5L18.72,22L20,20.72L13.5,14.25L9.75,10.5L3.28,4M15.06,5.19L11.03,9.22L14.78,12.97L18.81,8.94L15.06,5.19Z\";\nexport var mdiPencilOffOutline = \"M10,10.2L14,6.2L17.8,10L13.8,14L12.4,12.6L15,9.9L14.1,9L11.5,11.6L10,10.2M20.7,5.6L18.4,3.3C18.2,3.1 17.9,3 17.7,3C17.5,3 17.2,3.1 17,3.3L15.2,5.1L19,8.9L20.7,7C21.1,6.7 21.1,6 20.7,5.6M19,21.7L17.7,23L11.2,16.5L6.8,21H3V17.2L7.5,12.7L1,6.3L2.3,5L19,21.7M9.8,15.1L8.9,14.2L5,18.1V19H5.9L9.8,15.1Z\";\nexport var mdiPencilOutline = \"M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z\";\nexport var mdiPencilPlus = \"M20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18,2.9 17.4,2.9 17,3.3L15.2,5.1L19,8.9M3,17.2V21H6.8L17.8,9.9L14.1,6.1L3,17.2M7,2V5H10V7H7V10H5V7H2V5H5V2H7Z\";\nexport var mdiPencilPlusOutline = \"M14.1,9L15,9.9L5.9,19H5V18.1L14.1,9M17.7,3C17.5,3 17.2,3.1 17,3.3L15.2,5.1L18.9,8.9L20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18.2,3.1 17.9,3 17.7,3M14.1,6.2L3,17.2V21H6.8L17.8,9.9L14.1,6.2M7,2V5H10V7H7V10H5V7H2V5H5V2H7Z\";\nexport var mdiPencilRemove = \"M20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18,2.9 17.4,2.9 17,3.3L15.2,5.1L19,8.9M3,17.2V21H6.8L17.8,9.9L14.1,6.1L3,17.2M3.9,2.4L6,4.5L8.1,2.4L9.5,3.8L7.4,5.9L9.5,8L8.1,9.5L6,7.4L3.9,9.5L2.5,8.1L4.6,6L2.5,3.8L3.9,2.4Z\";\nexport var mdiPencilRemoveOutline = \"M17.7,3C17.5,3 17.2,3.1 17,3.3L15.2,5.1L18.9,8.9L20.7,7C21.1,6.6 21.1,6 20.7,5.6L18.4,3.3C18.2,3.1 17.9,3 17.7,3M14.1,6.2L3,17.2V21H6.8L17.8,9.9L14.1,6.2M5.9,19H5V18.1L14.1,9L15,9.9L5.9,19M3.9,2.5L6,4.6L8.1,2.5L9.5,3.9L7.4,6L9.5,8.1L8.1,9.5L6,7.4L3.9,9.5L2.5,8.1L4.6,6L2.5,3.9L3.9,2.5Z\";\nexport var mdiPencilRuler = \"M3 17.25V21H6.75L17.81 9.93L14.06 6.18L3 17.25M22.61 18.36L18.36 22.61L13.16 17.41L14.93 15.64L15.93 16.64L18.4 14.16L19.82 15.58L18.36 17L19.42 18L20.84 16.6L22.61 18.36M6.61 10.83L1.39 5.64L5.64 1.39L7.4 3.16L4.93 5.64L6 6.7L8.46 4.22L9.88 5.64L8.46 7.05L9.46 8.05L6.61 10.83M20.71 7C21.1 6.61 21.1 6 20.71 5.59L18.37 3.29C18 2.9 17.35 2.9 16.96 3.29L15.12 5.12L18.87 8.87L20.71 7Z\";\nexport var mdiPencilRulerOutline = \"M22.61 18.36L18.36 22.61L13.16 17.41L14.93 15.64L15.93 16.64L18.4 14.16L19.82 15.58L18.36 17L19.42 18L20.84 16.6L22.61 18.36M6.61 10.83L1.39 5.64L5.64 1.39L7.4 3.16L4.93 5.64L6 6.7L8.46 4.22L9.88 5.64L8.46 7.05L9.46 8.05L6.61 10.83M14.06 9L15 9.93L5.92 19H5V18.08L14.06 9M17.67 3C17.42 3 17.16 3.09 16.96 3.29L15.12 5.12L18.87 8.87L20.71 7C21.1 6.61 21.1 6 20.71 5.59L18.37 3.29C18.18 3.1 17.93 3 17.67 3M14.06 6.18L3 17.25V21H6.75L17.81 9.93L14.06 6.18Z\";\nexport var mdiPenguin = \"M19,16C19,17.72 18.37,19.3 17.34,20.5C17.75,20.89 18,21.41 18,22H6C6,21.41 6.25,20.89 6.66,20.5C5.63,19.3 5,17.72 5,16H3C3,14.75 3.57,13.64 4.46,12.91L4.47,12.89C6,11.81 7,10 7,8V7A5,5 0 0,1 12,2A5,5 0 0,1 17,7V8C17,10 18,11.81 19.53,12.89L19.54,12.91C20.43,13.64 21,14.75 21,16H19M16,16A4,4 0 0,0 12,12A4,4 0 0,0 8,16A4,4 0 0,0 12,20A4,4 0 0,0 16,16M10,9L12,10.5L14,9L12,7.5L10,9M10,5A1,1 0 0,0 9,6A1,1 0 0,0 10,7A1,1 0 0,0 11,6A1,1 0 0,0 10,5M14,5A1,1 0 0,0 13,6A1,1 0 0,0 14,7A1,1 0 0,0 15,6A1,1 0 0,0 14,5Z\";\nexport var mdiPentagon = \"M12,2.5L2,9.8L5.8,21.5H18.2L22,9.8L12,2.5Z\";\nexport var mdiPentagonOutline = \"M12,5L19.6,10.5L16.7,19.4H7.3L4.4,10.5L12,5M12,2.5L2,9.8L5.8,21.5H18.1L22,9.8L12,2.5Z\";\nexport var mdiPentagram = \"M16.15 14.4L18.71 22.26L12 17.4L5.28 22.3L7.85 14.37L1.15 9.5H9.44L12 1.61L14.56 9.5H22.89L16.15 14.4M13.3 16.47L15.86 18.33L14.88 15.32L13.3 16.47M11 9.5H13L12 6.47L11 9.5M10.74 16.47L9.13 15.3L8.13 18.37L10.74 16.47M18.28 11H15.05L15.67 12.9L18.28 11M10.53 11L9.62 13.8L12 15.54L14.39 13.82L13.47 11H10.53M5.76 11L8.34 12.87L8.95 11H5.76Z\";\nexport var mdiPercent = \"M18.5,3.5L3.5,18.5L5.5,20.5L20.5,5.5M7,4A3,3 0 0,0 4,7A3,3 0 0,0 7,10A3,3 0 0,0 10,7A3,3 0 0,0 7,4M17,14A3,3 0 0,0 14,17A3,3 0 0,0 17,20A3,3 0 0,0 20,17A3,3 0 0,0 17,14Z\";\nexport var mdiPercentBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.1 3 19 3M8.83 7.05C9.81 7.05 10.6 7.84 10.6 8.83C10.6 9.81 9.81 10.6 8.83 10.6C7.84 10.6 7.05 9.81 7.05 8.83C7.05 7.84 7.84 7.05 8.83 7.05M15.22 17C14.24 17 13.45 16.2 13.45 15.22C13.45 14.24 14.24 13.45 15.22 13.45C16.2 13.45 17 14.24 17 15.22C17 16.2 16.2 17 15.22 17M8.5 17.03L7 15.53L15.53 7L17.03 8.5L8.5 17.03Z\";\nexport var mdiPercentBoxOutline = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.1 3 19 3M19 19H5V5H19V19M17 15.22C17 16.2 16.2 17 15.22 17C14.24 17 13.45 16.2 13.45 15.22C13.45 14.24 14.24 13.45 15.22 13.45C16.2 13.45 17 14.24 17 15.22M8.5 17.03L7 15.53L15.53 7L17.03 8.5L8.5 17.03M7.05 8.83C7.05 7.84 7.84 7.05 8.83 7.05C9.81 7.05 10.6 7.84 10.6 8.83C10.6 9.81 9.81 10.6 8.83 10.6C7.84 10.6 7.05 9.81 7.05 8.83Z\";\nexport var mdiPercentCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M8.83 7.05C9.81 7.05 10.6 7.84 10.6 8.83C10.6 9.81 9.81 10.6 8.83 10.6C7.84 10.6 7.05 9.81 7.05 8.83C7.05 7.84 7.84 7.05 8.83 7.05M15.22 17C14.24 17 13.45 16.2 13.45 15.22C13.45 14.24 14.24 13.45 15.22 13.45C16.2 13.45 17 14.24 17 15.22C17 16.2 16.2 17 15.22 17M8.5 17.03L7 15.53L15.53 7L17.03 8.5L8.5 17.03Z\";\nexport var mdiPercentCircleOutline = \"M17 15.22C17 16.2 16.2 17 15.22 17C14.24 17 13.45 16.2 13.45 15.22C13.45 14.24 14.24 13.45 15.22 13.45C16.2 13.45 17 14.24 17 15.22M8.83 10.6C9.81 10.6 10.6 9.81 10.6 8.83C10.6 7.84 9.81 7.05 8.83 7.05C7.84 7.05 7.05 7.84 7.05 8.83C7.05 9.81 7.84 10.6 8.83 10.6M7 15.53L8.5 17.03L17.03 8.5L15.53 7L7 15.53M22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12M20 12C20 7.59 16.41 4 12 4C7.59 4 4 7.59 4 12C4 16.41 7.59 20 12 20C16.41 20 20 16.41 20 12Z\";\nexport var mdiPercentOutline = \"M18.5 3.5L20.5 5.5L5.5 20.5L3.5 18.5L18.5 3.5M7 4C8.66 4 10 5.34 10 7C10 8.66 8.66 10 7 10C5.34 10 4 8.66 4 7C4 5.34 5.34 4 7 4M17 14C18.66 14 20 15.34 20 17C20 18.66 18.66 20 17 20C15.34 20 14 18.66 14 17C14 15.34 15.34 14 17 14M7 6C6.45 6 6 6.45 6 7C6 7.55 6.45 8 7 8C7.55 8 8 7.55 8 7C8 6.45 7.55 6 7 6M17 16C16.45 16 16 16.45 16 17C16 17.55 16.45 18 17 18C17.55 18 18 17.55 18 17C18 16.45 17.55 16 17 16Z\";\nexport var mdiPeriodicTable = \"M2,4V6H4V4H2M20,4V6H22V4H20M2,7V9H4V7H2M5,7V9H7V7H5M14,7V9H16V7H14M17,7V9H19V7H17M20,7V9H22V7H20M2,10V12H4V10H2M5,10V12H7V10H5M8,10V12H10V10H8M11,10V12H13V10H11M14,10V12H16V10H14M17,10V12H19V10H17M20,10V12H22V10H20M2,13V15H4V13H2M5,13V15H7V13H5M8,13V15H10V13H8M11,13V15H13V13H11M14,13V15H16V13H14M17,13V15H19V13H17M20,13V15H22V13H20M5,17V19H7V17H5M8,17V19H10V17H8M11,17V19H13V17H11M14,17V19H16V17H14M17,17V19H19V17H17Z\";\nexport var mdiPerspectiveLess = \"M16.56,12L19.23,20H4.78L7.44,12H16.56M7,1L3,5L7,9V6H11V4H7V1M17,1V4H13V6H17V9L21,5L17,1M18,10H6L2,22H22L18,10Z\";\nexport var mdiPerspectiveMore = \"M16.56,12L19.23,20H4.78L7.44,12H16.56M17,1L13,5L17,9V6H21V4H17V1M7,1V4H3V6H7V9L11,5L7,1M18,10H6L2,22H22L18,10Z\";\nexport var mdiPh = \"M13 7V17H15V13H17V17H19V7H17V11H15V7H13M11 15V13C11 11.9 10.11 11 9 11H5V21H7V17H9C10.11 17 11 16.11 11 15M9 15H7V13H9V15Z\";\nexport var mdiPhone = \"M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z\";\nexport var mdiPhoneAlert = \"M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4C3,3.44 3.45,3 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.24 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.58L6.62,10.79M17,12V10H19V12H17M17,8V2H19V8H17Z\";\nexport var mdiPhoneAlertOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M17 12V10H19V12H17M17 8V2H19V8H17Z\";\nexport var mdiPhoneBluetooth = \"M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5M18,7.21L18.94,8.14L18,9.08M18,2.91L18.94,3.85L18,4.79M14.71,9.5L17,7.21V11H17.5L20.35,8.14L18.21,6L20.35,3.85L17.5,1H17V4.79L14.71,2.5L14,3.21L16.79,6L14,8.79L14.71,9.5Z\";\nexport var mdiPhoneBluetoothOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M18 7.21L18.94 8.14L18 9.08M18 2.91L18.94 3.85L18 4.79M14.71 9.5L17 7.21V11H17.5L20.35 8.14L18.21 6L20.35 3.85L17.5 1H17V4.79L14.71 2.5L14 3.21L16.79 6L14 8.79L14.71 9.5Z\";\nexport var mdiPhoneCancel = \"M6.62 10.79C8.06 13.62 10.38 15.94 13.21 17.38L15.41 15.18C15.69 14.9 16.08 14.82 16.43 14.93C17.55 15.3 18.75 15.5 20 15.5C20.55 15.5 21 15.95 21 16.5V20C21 20.55 20.55 21 20 21C10.61 21 3 13.39 3 4C3 3.45 3.45 3 4 3H7.5C8.05 3 8.5 3.45 8.5 4C8.5 5.25 8.7 6.45 9.07 7.57C9.18 7.92 9.1 8.31 8.82 8.59L6.62 10.79M16.5 2C14 2 12 4 12 6.5S14 11 16.5 11 21 9 21 6.5 19 2 16.5 2M16.5 9.5C14.84 9.5 13.5 8.16 13.5 6.5C13.5 5.94 13.65 5.42 13.92 5L18 9.08C17.58 9.35 17.06 9.5 16.5 9.5M19.08 8L15 3.92C15.42 3.65 15.94 3.5 16.5 3.5C18.16 3.5 19.5 4.84 19.5 6.5C19.5 7.06 19.35 7.58 19.08 8Z\";\nexport var mdiPhoneCancelOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M16.5 2C14 2 12 4 12 6.5S14 11 16.5 11 21 9 21 6.5 19 2 16.5 2M16.5 9.5C14.84 9.5 13.5 8.16 13.5 6.5C13.5 5.94 13.65 5.42 13.92 5L18 9.08C17.58 9.35 17.06 9.5 16.5 9.5M19.08 8L15 3.92C15.42 3.65 15.94 3.5 16.5 3.5C18.16 3.5 19.5 4.84 19.5 6.5C19.5 7.06 19.35 7.58 19.08 8Z\";\nexport var mdiPhoneCheck = \"M6.62 10.79A15.1 15.1 0 0 0 13.21 17.38L15.41 15.18A1 1 0 0 1 16.41 14.93A11.36 11.36 0 0 0 20 15.5A1 1 0 0 1 21 16.5V20A1 1 0 0 1 20 21A17 17 0 0 1 3 4A1 1 0 0 1 4 3H7.5A1 1 0 0 1 8.5 4A11.36 11.36 0 0 0 9.07 7.57A1 1 0 0 1 8.82 8.57M21.71 4.71L20.29 3.29L15 8.59L12.71 6.29L11.29 7.71L15 11.41Z\";\nexport var mdiPhoneCheckOutline = \"M20 15.5A11.36 11.36 0 0 1 16.43 14.93A1 1 0 0 0 15.43 15.18L13.23 17.38A15.1 15.1 0 0 1 6.64 10.79L8.84 8.59A1 1 0 0 0 9.09 7.59A11.36 11.36 0 0 1 8.5 4A1 1 0 0 0 7.5 3H4A1 1 0 0 0 3 4A17 17 0 0 0 20 21A1 1 0 0 0 21 20V16.5A1 1 0 0 0 20 15.5M5 5H6.54A12.54 12.54 0 0 0 7 7.59L5.79 8.8A15 15 0 0 1 5 5M19 19A15 15 0 0 1 15.2 18.24L16.41 17A12.31 12.31 0 0 0 19 17.45M15 11.44L11.29 7.74L12.71 6.32L15 8.59L20.29 3.29L21.71 4.71Z\";\nexport var mdiPhoneClassic = \"M12,3C7.46,3 3.34,4.78 0.29,7.67C0.11,7.85 0,8.1 0,8.38C0,8.66 0.11,8.91 0.29,9.09L2.77,11.57C2.95,11.75 3.2,11.86 3.5,11.86C3.75,11.86 4,11.75 4.18,11.58C4.97,10.84 5.87,10.22 6.84,9.73C7.17,9.57 7.4,9.23 7.4,8.83V5.73C8.85,5.25 10.39,5 12,5C13.59,5 15.14,5.25 16.59,5.72V8.82C16.59,9.21 16.82,9.56 17.15,9.72C18.13,10.21 19,10.84 19.82,11.57C20,11.75 20.25,11.85 20.5,11.85C20.8,11.85 21.05,11.74 21.23,11.56L23.71,9.08C23.89,8.9 24,8.65 24,8.37C24,8.09 23.88,7.85 23.7,7.67C20.65,4.78 16.53,3 12,3M9,7V10C9,10 3,15 3,18V22H21V18C21,15 15,10 15,10V7H13V9H11V7H9M12,12A4,4 0 0,1 16,16A4,4 0 0,1 12,20A4,4 0 0,1 8,16A4,4 0 0,1 12,12M12,13.5A2.5,2.5 0 0,0 9.5,16A2.5,2.5 0 0,0 12,18.5A2.5,2.5 0 0,0 14.5,16A2.5,2.5 0 0,0 12,13.5Z\";\nexport var mdiPhoneClassicOff = \"M12 3C16.53 3 20.65 4.78 23.7 7.67C23.88 7.85 24 8.09 24 8.37C24 8.65 23.89 8.9 23.71 9.08L21.23 11.56C21.05 11.74 20.8 11.85 20.5 11.85C20.25 11.85 20 11.75 19.82 11.57C19 10.84 18.13 10.21 17.15 9.72C16.82 9.56 16.59 9.21 16.59 8.82V5.72C15.14 5.25 13.59 5 12 5C10.44 5 8.93 5.24 7.5 5.69L5.94 4.11C7.82 3.4 9.86 3 12 3M9 7H11V9H13V7H15V10C15 10 21 15 21 18V19.18L9 7.18V7M1 4.27L2.28 3L21.5 22.22L20.23 23.5L18.73 22H3V18C3 15.86 6.05 12.71 7.8 11.07L6.59 9.86C5.71 10.33 4.9 10.9 4.18 11.58C4 11.75 3.75 11.86 3.5 11.86C3.2 11.86 2.95 11.75 2.77 11.57L.29 9.09C.11 8.91 0 8.66 0 8.38C0 8.1 .11 7.85 .29 7.67C.996 7 2.58 5.85 2.58 5.85L1 4.27M8 16C8 18.21 9.79 20 12 20C13.29 20 14.44 19.39 15.17 18.44L14.1 17.36C13.65 18.05 12.88 18.5 12 18.5C10.62 18.5 9.5 17.38 9.5 16C9.5 15.12 9.95 14.35 10.64 13.91L9.56 12.83C8.61 13.56 8 14.71 8 16Z\";\nexport var mdiPhoneClock = \"M15.9 1C12.1 1.1 9 4.2 9 8C9 11.9 12.1 15 16 15S23 11.9 23 8 19.9 1 15.9 1C16 1 15.9 1 15.9 1M16 3C18.8 3 21 5.2 21 8S18.8 13 16 13 11 10.8 11 8 13.2 3 16 3M15 4V9L18.6 11.2L19.4 10L16.5 8.3V4H15M4.6 12.8C6 15.6 8.4 18 11.2 19.4L13.4 17.2C13.7 16.9 14.1 16.8 14.4 17C15.5 17.4 16.7 17.6 18 17.6C18.5 17.6 19 18.1 19 18.6V22C19 22.5 18.5 23 18 23C8.6 23 1 15.4 1 6C1 5.4 1.5 5 2 5H5.5C6.1 5 6.5 5.4 6.5 6C6.5 7.2 6.7 8.4 7.1 9.6C7.2 10 7.1 10.3 6.9 10.6L4.6 12.8\";\nexport var mdiPhoneDial = \"M6.6 10.8C8 13.6 10.4 15.9 13.2 17.4L15.4 15.2C15.7 14.9 16.1 14.8 16.4 15C17.5 15.4 18.7 15.6 20 15.6C20.6 15.6 21 16 21 16.6V20C21 20.6 20.6 21 20 21C10.6 21 3 13.4 3 4C3 3.4 3.5 3 4 3H7.5C8.1 3 8.5 3.4 8.5 4C8.5 5.2 8.7 6.4 9.1 7.6C9.2 7.9 9.1 8.3 8.9 8.6L6.6 10.8M14 3C13.4 3 13 3.4 13 4S13.4 5 14 5 15 4.6 15 4 14.6 3 14 3M17 3C16.4 3 16 3.4 16 4S16.4 5 17 5 18 4.6 18 4 17.6 3 17 3M20 3C19.4 3 19 3.4 19 4S19.4 5 20 5 21 4.6 21 4 20.6 3 20 3M14 6C13.4 6 13 6.4 13 7S13.4 8 14 8 15 7.6 15 7 14.6 6 14 6M17 6C16.4 6 16 6.4 16 7S16.4 8 17 8 18 7.6 18 7 17.6 6 17 6M20 6C19.4 6 19 6.4 19 7S19.4 8 20 8 21 7.6 21 7 20.6 6 20 6M14 9C13.4 9 13 9.4 13 10S13.4 11 14 11 15 10.6 15 10 14.6 9 14 9M17 9C16.4 9 16 9.4 16 10S16.4 11 17 11 18 10.6 18 10 17.6 9 17 9M20 9C19.4 9 19 9.4 19 10S19.4 11 20 11 21 10.6 21 10 20.6 9 20 9Z\";\nexport var mdiPhoneDialOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M15 4C15 4.6 14.6 5 14 5S13 4.6 13 4 13.4 3 14 3 15 3.4 15 4M18 4C18 4.6 17.6 5 17 5S16 4.6 16 4 16.4 3 17 3 18 3.4 18 4M21 4C21 4.6 20.6 5 20 5S19 4.6 19 4 19.4 3 20 3 21 3.4 21 4M15 7C15 7.6 14.6 8 14 8S13 7.6 13 7 13.4 6 14 6 15 6.4 15 7M18 7C18 7.6 17.6 8 17 8S16 7.6 16 7 16.4 6 17 6 18 6.4 18 7M21 7C21 7.6 20.6 8 20 8S19 7.6 19 7 19.4 6 20 6 21 6.4 21 7M15 10C15 10.6 14.6 11 14 11S13 10.6 13 10 13.4 9 14 9 15 9.4 15 10M18 10C18 10.6 17.6 11 17 11S16 10.6 16 10 16.4 9 17 9 18 9.4 18 10M21 10C21 10.6 20.6 11 20 11S19 10.6 19 10 19.4 9 20 9 21 9.4 21 10Z\";\nexport var mdiPhoneForward = \"M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5M18,11L23,6L18,1V4H14V8H18V11Z\";\nexport var mdiPhoneForwardOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M18 11L23 6L18 1V4H14V8H18V11Z\";\nexport var mdiPhoneHangup = \"M12,9C10.4,9 8.85,9.25 7.4,9.72V12.82C7.4,13.22 7.17,13.56 6.84,13.72C5.86,14.21 4.97,14.84 4.17,15.57C4,15.75 3.75,15.86 3.5,15.86C3.2,15.86 2.95,15.74 2.77,15.56L0.29,13.08C0.11,12.9 0,12.65 0,12.38C0,12.1 0.11,11.85 0.29,11.67C3.34,8.77 7.46,7 12,7C16.54,7 20.66,8.77 23.71,11.67C23.89,11.85 24,12.1 24,12.38C24,12.65 23.89,12.9 23.71,13.08L21.23,15.56C21.05,15.74 20.8,15.86 20.5,15.86C20.25,15.86 20,15.75 19.82,15.57C19.03,14.84 18.14,14.21 17.16,13.72C16.83,13.56 16.6,13.22 16.6,12.82V9.72C15.15,9.25 13.6,9 12,9Z\";\nexport var mdiPhoneHangupOutline = \"M23.71 11.67A17 17 0 0 0 .29 11.67A1 1 0 0 0 0 12.38A1 1 0 0 0 .29 13.08L2.77 15.56A1 1 0 0 0 3.5 15.85A1 1 0 0 0 4.18 15.57A11.5 11.5 0 0 1 6.84 13.72A1 1 0 0 0 7.4 12.82V9.72A14.91 14.91 0 0 1 12 9A14.5 14.5 0 0 1 16.59 9.73V12.83A1 1 0 0 0 17.15 13.73A11.27 11.27 0 0 1 19.82 15.58A1 1 0 0 0 20.5 15.86A1 1 0 0 0 21.23 15.57L23.71 13.09A1 1 0 0 0 23.71 11.67M5.4 12.22A13.68 13.68 0 0 0 3.53 13.5L2.46 12.42A15.54 15.54 0 0 1 5.4 10.5M20.5 13.5A13.75 13.75 0 0 0 18.6 12.23V10.53A14.26 14.26 0 0 1 21.55 12.43Z\";\nexport var mdiPhoneInTalk = \"M15,12H17A5,5 0 0,0 12,7V9A3,3 0 0,1 15,12M19,12H21C21,7 16.97,3 12,3V5C15.86,5 19,8.13 19,12M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z\";\nexport var mdiPhoneInTalkOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M15 12H17A5 5 0 0 0 12 7V9A3 3 0 0 1 15 12M19 12H21C21 7 16.97 3 12 3V5C15.86 5 19 8.13 19 12Z\";\nexport var mdiPhoneIncoming = \"M4,3A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.17L13.21,17.37C10.38,15.93 8.06,13.62 6.62,10.78L8.82,8.57C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4M19,11V9.5H15.5L21,4L20,3L14.5,8.5V5H13V11H19Z\";\nexport var mdiPhoneIncomingOutgoing = \"M20 17.5V21C20 21.55 19.55 22 19 22C9.61 22 2 14.39 2 5C2 4.45 2.45 4 3 4H6.5C7.05 4 7.5 4.45 7.5 5C7.5 6.25 7.7 7.45 8.07 8.57C8.18 8.92 8.1 9.31 7.82 9.57L5.62 11.78C7.06 14.62 9.38 16.93 12.21 18.37L14.41 16.17C14.69 15.9 15.08 15.82 15.43 15.93C16.55 16.3 17.75 16.5 19 16.5C19.55 16.5 20 16.95 20 17.5M16 7.5H12.5L18 2L17 1L11.5 6.5V3H10V9H16V7.5M17 6V7.5H20.5L15 13L16 14L21.5 8.5V12H23V6H17Z\";\nexport var mdiPhoneIncomingOutgoingOutline = \"M19 16.5C17.8 16.5 16.5 16.3 15.4 15.9H15.1C14.8 15.9 14.6 16 14.4 16.2L12.2 18.4C9.4 16.9 7 14.6 5.6 11.8L7.8 9.6C8.1 9.3 8.2 8.9 8 8.6C7.7 7.5 7.5 6.2 7.5 5C7.5 4.5 7 4 6.5 4H3C2.5 4 2 4.5 2 5C2 14.4 9.6 22 19 22C19.5 22 20 21.5 20 21V17.5C20 17 19.5 16.5 19 16.5M4 6H5.5C5.6 6.9 5.8 7.8 6 8.6L4.8 9.8C4.4 8.6 4.1 7.3 4 6M18 20C16.7 19.9 15.4 19.6 14.2 19.2L15.4 18C16.2 18.2 17.1 18.4 18 18.4V20M16 9V7.5H12.5L18 2L17 1L11.5 6.5V3H10V9H16M17 6V7.5H20.5L15 13L16 14L21.5 8.5V12H23V6H17Z\";\nexport var mdiPhoneIncomingOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M19 11V9.5H15.5L21 4L20 3L14.5 8.5V5H13V11H19Z\";\nexport var mdiPhoneLock = \"M19.2,4H15.8V3.5C15.8,2.56 16.56,1.8 17.5,1.8C18.44,1.8 19.2,2.56 19.2,3.5M20,4V3.5A2.5,2.5 0 0,0 17.5,1A2.5,2.5 0 0,0 15,3.5V4A1,1 0 0,0 14,5V9A1,1 0 0,0 15,10H20A1,1 0 0,0 21,9V5A1,1 0 0,0 20,4M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z\";\nexport var mdiPhoneLockOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M19.2 4H15.8V3.5C15.8 2.56 16.56 1.8 17.5 1.8C18.44 1.8 19.2 2.56 19.2 3.5M20 4V3.5A2.5 2.5 0 0 0 17.5 1A2.5 2.5 0 0 0 15 3.5V4A1 1 0 0 0 14 5V9A1 1 0 0 0 15 10H20A1 1 0 0 0 21 9V5A1 1 0 0 0 20 4Z\";\nexport var mdiPhoneLog = \"M20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.24 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.58L6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5M12,3H14V5H12M15,3H21V5H15M12,6H14V8H12M15,6H21V8H15M12,9H14V11H12M15,9H21V11H15\";\nexport var mdiPhoneLogOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M12 3H14V5H12M15 3H21V5H15M12 6H14V8H12M15 6H21V8H15M12 9H14V11H12M15 9H21V11H15Z\";\nexport var mdiPhoneMessage = \"M20 15.5C18.75 15.5 17.55 15.3 16.43 14.93C16.08 14.82 15.69 14.9 15.41 15.17L13.21 17.37C10.38 15.93 8.06 13.62 6.62 10.79L8.82 8.58C9.1 8.31 9.18 7.92 9.07 7.57C8.7 6.45 8.5 5.25 8.5 4C8.5 3.45 8.05 3 7.5 3H4C3.45 3 3 3.45 3 4C3 13.39 10.61 21 20 21C20.55 21 21 20.55 21 20V16.5C21 15.95 20.55 15.5 20 15.5M12 3V13L15 10H21V3H12Z\";\nexport var mdiPhoneMessageOutline = \"M20 15.5C18.75 15.5 17.55 15.3 16.43 14.93C16.33 14.9 16.22 14.88 16.12 14.88C15.86 14.88 15.61 15 15.41 15.17L13.21 17.37C10.38 15.93 8.06 13.62 6.62 10.79L8.82 8.58C9.1 8.31 9.18 7.92 9.07 7.57C8.7 6.45 8.5 5.25 8.5 4C8.5 3.45 8.05 3 7.5 3H4C3.45 3 3 3.45 3 4C3 13.39 10.61 21 20 21C20.55 21 21 20.55 21 20V16.5C21 15.95 20.55 15.5 20 15.5M5.03 5H6.53C6.6 5.88 6.75 6.75 7 7.59L5.79 8.8C5.38 7.59 5.12 6.32 5.03 5M19 18.97C17.68 18.88 16.4 18.62 15.2 18.21L16.4 17C17.25 17.25 18.12 17.4 19 17.46V18.97M12 3V13L15 10H21V3H12M19 8H14V5H19V8Z\";\nexport var mdiPhoneMinus = \"M4,3A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.76,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.07,13.62 6.62,10.79L8.82,8.58C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.24 8.5,4A1,1 0 0,0 7.5,3M13,6V8H21V6\";\nexport var mdiPhoneMinusOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M13 6V8H21V6Z\";\nexport var mdiPhoneMissed = \"M23.71,16.67C20.66,13.77 16.54,12 12,12C7.46,12 3.34,13.77 0.29,16.67C0.11,16.85 0,17.1 0,17.38C0,17.65 0.11,17.9 0.29,18.08L2.77,20.56C2.95,20.74 3.2,20.86 3.5,20.86C3.75,20.86 4,20.75 4.18,20.57C4.97,19.83 5.86,19.21 6.84,18.72C7.17,18.56 7.4,18.22 7.4,17.82V14.72C8.85,14.25 10.39,14 12,14C13.6,14 15.15,14.25 16.6,14.72V17.82C16.6,18.22 16.83,18.56 17.16,18.72C18.14,19.21 19.03,19.83 19.82,20.57C20,20.75 20.25,20.86 20.5,20.86C20.8,20.86 21.05,20.74 21.23,20.56L23.71,18.08C23.89,17.9 24,17.65 24,17.38C24,17.1 23.89,16.85 23.71,16.67M6.5,5.5L12,11L19,4L18,3L12,9L7.5,4.5H11V3H5V9H6.5V5.5Z\";\nexport var mdiPhoneMissedOutline = \"M18.6 15.5v1.8c.7.4 1.3.8 1.9 1.3l1.1-1.1c-.9-.9-1.9-1.5-3-2m-13.2 0c-1 .5-2 1.1-2.9 1.9l1.1 1.1c.6-.5 1.2-.9 1.9-1.3v-1.7M12 12c4.5 0 8.7 1.7 11.7 4.7.2.2.3.4.3.7 0 .3-.1.5-.3.7l-2.5 2.5c-.2.2-.4.3-.7.3-.2 0-.5-.1-.7-.3-.8-.7-1.7-1.4-2.7-1.8-.3-.2-.6-.5-.6-.9v-3.1c-1.5-.5-3-.7-4.6-.7-1.6 0-3.1.2-4.6.7v3.1c0 .4-.2.7-.6.9-1 .5-1.9 1.1-2.7 1.8-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3L.1 18.1c0-.2-.1-.5-.1-.7 0-.3.1-.5.3-.7C3.3 13.8 7.5 12 12 12zM6.5 5.5V9H5V3h6v1.5H7.5L12 9l6-6 1 1-7 7-5.5-5.5z\";\nexport var mdiPhoneOff = \"M20.22,2.5L2.5,20.22L3.77,21.5L8.65,16.62C11.76,19.43 15.81,21 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C12.06,16.8 11,16.06 10.06,15.21L21.5,3.77L20.22,2.5M4,3A1,1 0 0,0 3,4C3,7.57 4.14,11.05 6.24,13.94L7.66,12.5C7.28,11.97 6.93,11.39 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4Z\";\nexport var mdiPhoneOffOutline = \"M16.4 17C17.2 17.2 18.1 17.4 19 17.5V19C17.7 18.9 16.4 18.7 15.2 18.2L16.4 17M20.2 2.5L2.5 20.2L3.8 21.5L8.7 16.6C11.8 19.4 15.8 21 20 21C20.6 21 21 20.6 21 20V16.5C21 15.9 20.6 15.5 20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C12.1 16.8 11 16.1 10.1 15.2L21.5 3.8L20.2 2.5M6.5 5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5H6.5M7.5 3H4C3.4 3 3 3.4 3 4C3 7.6 4.1 11 6.2 13.9L7.6 12.5C7.2 12 6.9 11.4 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.4 8.5 5.2 8.5 4C8.5 3.4 8.1 3 7.5 3Z\";\nexport var mdiPhoneOutgoing = \"M4,3A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.17L13.21,17.37C10.38,15.93 8.06,13.62 6.62,10.78L8.82,8.57C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4M15,3V4.5H18.5L13,10L14,11L19.5,5.5V9H21V3H15Z\";\nexport var mdiPhoneOutgoingOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M15 3V4.5H18.5L13 10L14 11L19.5 5.5V9H21V3H15Z\";\nexport var mdiPhoneOutline = \"M20,15.5C18.8,15.5 17.5,15.3 16.4,14.9C16.3,14.9 16.2,14.9 16.1,14.9C15.8,14.9 15.6,15 15.4,15.2L13.2,17.4C10.4,15.9 8,13.6 6.6,10.8L8.8,8.6C9.1,8.3 9.2,7.9 9,7.6C8.7,6.5 8.5,5.2 8.5,4C8.5,3.5 8,3 7.5,3H4C3.5,3 3,3.5 3,4C3,13.4 10.6,21 20,21C20.5,21 21,20.5 21,20V16.5C21,16 20.5,15.5 20,15.5M5,5H6.5C6.6,5.9 6.8,6.8 7,7.6L5.8,8.8C5.4,7.6 5.1,6.3 5,5M19,19C17.7,18.9 16.4,18.6 15.2,18.2L16.4,17C17.2,17.2 18.1,17.4 19,17.4V19Z\";\nexport var mdiPhonePaused = \"M19,10H21V3H19M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5M17,3H15V10H17V3Z\";\nexport var mdiPhonePausedOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M19 10H21V3H19M17 3H15V10H17V3Z\";\nexport var mdiPhonePlus = \"M4,3A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.76,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.07,13.62 6.62,10.79L8.82,8.58C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.24 8.5,4A1,1 0 0,0 7.5,3M16,3V6H13V8H16V11H18V8H21V6H18V3\";\nexport var mdiPhonePlusOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M16 3V6H13V8H16V11H18V8H21V6H18V3Z\";\nexport var mdiPhoneRefresh = \"M6.62 10.79C8.06 13.62 10.38 15.94 13.21 17.38L15.41 15.18C15.69 14.9 16.08 14.82 16.43 14.93C17.55 15.3 18.75 15.5 20 15.5C20.55 15.5 21 15.95 21 16.5V20C21 20.55 20.55 21 20 21C10.61 21 3 13.39 3 4C3 3.45 3.45 3 4 3H7.5C8.05 3 8.5 3.45 8.5 4C8.5 5.25 8.7 6.45 9.07 7.57C9.18 7.92 9.1 8.31 8.82 8.59L6.62 10.79M17 7L18.77 5.23C18.32 4.78 17.69 4.5 17 4.5C15.62 4.5 14.5 5.62 14.5 7S15.62 9.5 17 9.5C17.82 9.5 18.54 9.11 19 8.5H20.71C20.12 9.97 18.68 11 17 11C14.79 11 13 9.21 13 7S14.79 3 17 3C18.11 3 19.11 3.45 19.83 4.17L21 3V7H17Z\";\nexport var mdiPhoneRefreshOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M17 7L18.77 5.23C18.32 4.78 17.69 4.5 17 4.5C15.62 4.5 14.5 5.62 14.5 7S15.62 9.5 17 9.5C17.82 9.5 18.54 9.11 19 8.5H20.71C20.12 9.97 18.68 11 17 11C14.79 11 13 9.21 13 7S14.79 3 17 3C18.11 3 19.11 3.45 19.83 4.17L21 3V7H17Z\";\nexport var mdiPhoneRemove = \"M4 3C3.4 3 3 3.4 3 4C3 13.4 10.6 21 20 21C20.6 21 21 20.6 21 20V16.5C21 15.9 20.6 15.5 20 15.5C18.8 15.5 17.5 15.3 16.4 14.9C16 14.8 15.7 14.9 15.4 15.1L13.2 17.3C10.4 15.9 8.1 13.5 6.6 10.7L8.8 8.5C9.1 8.2 9.2 7.8 9 7.5C8.7 6.4 8.5 5.2 8.5 4C8.5 3.4 8.1 3 7.5 3M19.1 3.5L17 5.6L14.9 3.5L13.5 4.9L15.6 7L13.5 9.1L14.9 10.5L17 8.4L19.1 10.5L20.5 9.1L18.4 7L20.5 4.9\";\nexport var mdiPhoneRemoveOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M19.1 3.5L17 5.6L14.9 3.5L13.5 4.9L15.6 7L13.5 9.1L14.9 10.5L17 8.4L19.1 10.5L20.5 9.1L18.4 7L20.5 4.9L19.1 3.5Z\";\nexport var mdiPhoneReturn = \"M21,6V11H19.5V7.5H13.87L16.3,9.93L15.24,11L11,6.75L15.24,2.5L16.3,3.57L13.87,6H21M8.82,8.58C9.08,8.32 9.17,7.93 9.06,7.58C8.69,6.42 8.5,5.22 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5C18.79,15.5 17.58,15.31 16.43,14.93C16.08,14.82 15.69,14.91 15.43,15.17L13.23,17.37C10.39,15.92 8.09,13.62 6.64,10.78L8.82,8.58Z\";\nexport var mdiPhoneReturnOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M21 6V11H19.5V7.5H13.87L16.3 9.93L15.24 11L11 6.75L15.24 2.5L16.3 3.57L13.87 6H21Z\";\nexport var mdiPhoneRing = \"M23.71 16.67C20.66 13.78 16.54 12 12 12S3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 0 0-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z\";\nexport var mdiPhoneRingOutline = \"M23.71 16.67C20.66 13.78 16.54 12 12 12S3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 0 0-.29-.7zm-18.31.56c-.66.37-1.29.8-1.87 1.27l-1.07-1.07c.91-.75 1.9-1.39 2.95-1.9v1.7H5.4zm15.07 1.26c-.59-.48-1.21-.9-1.87-1.27v-1.7c1.04.51 2.03 1.15 2.94 1.9l-1.07 1.07zm.69-12.23l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM11 2h2v5h-2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z\";\nexport var mdiPhoneRotateLandscape = \"M9,1H3A2,2 0 0,0 1,3V16A2,2 0 0,0 3,18H9A2,2 0 0,0 11,16V3A2,2 0 0,0 9,1M9,15H3V3H9V15M21,13H13V15H21V21H9V20H6V21A2,2 0 0,0 8,23H21A2,2 0 0,0 23,21V15A2,2 0 0,0 21,13M23,10L19,8L20.91,7.09C19.74,4.31 17,2.5 14,2.5V1A9,9 0 0,1 23,10Z\";\nexport var mdiPhoneRotatePortrait = \"M9,1H3A2,2 0 0,0 1,3V16A2,2 0 0,0 3,18H4V15H3V3H9V11H11V3A2,2 0 0,0 9,1M23,21V15A2,2 0 0,0 21,13H8A2,2 0 0,0 6,15V21A2,2 0 0,0 8,23H21A2,2 0 0,0 23,21M9,21V15H21V21H9M23,10H21.5C21.5,7 19.69,4.27 16.92,3.09L16,5L14,1A9,9 0 0,1 23,10Z\";\nexport var mdiPhoneSettings = \"M19,11H21V9H19M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5M17,9H15V11H17M13,9H11V11H13V9Z\";\nexport var mdiPhoneSettingsOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M17 9H15V11H17M13 9H11V11H13V9M19 11H21V9H19Z\";\nexport var mdiPhoneSync = \"M6.62 10.79C8.06 13.62 10.38 15.94 13.21 17.38L15.41 15.18C15.69 14.9 16.08 14.82 16.43 14.93C17.55 15.3 18.75 15.5 20 15.5C20.55 15.5 21 15.95 21 16.5V20C21 20.55 20.55 21 20 21C10.61 21 3 13.39 3 4C3 3.45 3.45 3 4 3H7.5C8.05 3 8.5 3.45 8.5 4C8.5 5.25 8.7 6.45 9.07 7.57C9.18 7.92 9.1 8.31 8.82 8.59L6.62 10.79M17 3V1.5L14.75 3.75L17 6V4.5C18.38 4.5 19.5 5.62 19.5 7C19.5 7.4 19.41 7.78 19.24 8.12L20.33 9.21C20.75 8.58 21 7.82 21 7C21 4.79 19.21 3 17 3M17 9.5C15.62 9.5 14.5 8.38 14.5 7C14.5 6.6 14.59 6.22 14.76 5.88L13.67 4.79C13.25 5.42 13 6.18 13 7C13 9.21 14.79 11 17 11V12.5L19.25 10.25L17 8V9.5Z\";\nexport var mdiPhoneSyncOutline = \"M20 15.5C18.8 15.5 17.5 15.3 16.4 14.9H16.1C15.8 14.9 15.6 15 15.4 15.2L13.2 17.4C10.4 15.9 8 13.6 6.6 10.8L8.8 8.6C9.1 8.3 9.2 7.9 9 7.6C8.7 6.5 8.5 5.2 8.5 4C8.5 3.5 8 3 7.5 3H4C3.5 3 3 3.5 3 4C3 13.4 10.6 21 20 21C20.5 21 21 20.5 21 20V16.5C21 16 20.5 15.5 20 15.5M5 5H6.5C6.6 5.9 6.8 6.8 7 7.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5M19 19C17.7 18.9 16.4 18.6 15.2 18.2L16.4 17C17.2 17.2 18.1 17.4 19 17.4V19M17 3V1.5L14.75 3.75L17 6V4.5C18.38 4.5 19.5 5.62 19.5 7C19.5 7.4 19.41 7.78 19.24 8.12L20.33 9.21C20.75 8.58 21 7.82 21 7C21 4.79 19.21 3 17 3M17 9.5C15.62 9.5 14.5 8.38 14.5 7C14.5 6.6 14.59 6.22 14.76 5.88L13.67 4.79C13.25 5.42 13 6.18 13 7C13 9.21 14.79 11 17 11V12.5L19.25 10.25L17 8V9.5Z\";\nexport var mdiPhoneVoip = \"M13,17V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H13M23.7,7.67C23.88,7.85 24,8.09 24,8.37C24,8.65 23.89,8.9 23.71,9.08L21.23,11.56C21.05,11.74 20.8,11.85 20.5,11.85C20.25,11.85 20,11.75 19.82,11.57C19,10.84 18.13,10.21 17.15,9.72C16.82,9.56 16.59,9.21 16.59,8.82V5.72C15.14,5.25 13.59,5 12,5C10.4,5 8.85,5.25 7.4,5.73V8.83C7.4,9.23 7.17,9.57 6.84,9.73C5.87,10.22 4.97,10.84 4.18,11.58C4,11.75 3.75,11.86 3.5,11.86C3.2,11.86 2.95,11.75 2.77,11.57L0.29,9.09C0.11,8.91 0,8.66 0,8.38C0,8.1 0.11,7.85 0.29,7.67C3.34,4.78 7.46,3 12,3C16.53,3 20.65,4.78 23.7,7.67M11,10V15H10V10H11M12,10H15V13H13V15H12V10M14,12V11H13V12H14Z\";\nexport var mdiPi = \"M4,5V7H6V19H8V7H14V16A3,3 0 0,0 17,19A3,3 0 0,0 20,16H18A1,1 0 0,1 17,17A1,1 0 0,1 16,16V7H18V5\";\nexport var mdiPiBox = \"M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M6,7H17V9H15V14A1,1 0 0,0 16,15A1,1 0 0,0 17,14H19A3,3 0 0,1 16,17A3,3 0 0,1 13,14V9H10V17H8V9H6\";\nexport var mdiPiHole = \"M5.62,2C9.5,2 11.57,4.29 11.77,7.93C12.5,3.57 15.93,4.08 15.93,4.08C16.1,6.55 14.07,8.05 11.77,8.17C11.12,6.81 7.25,3.47 7.25,3.47C7.23,3.5 10.97,6.74 10.83,8.15C8.33,7.88 5.82,6 5.62,2M6.06,13.11L9.92,9.25C11.09,8.08 13,8.08 14.16,9.25L18,13.11C19.19,14.28 19.19,16.18 18,17.35L14.16,21.21C13,22.38 11.09,22.38 9.92,21.21L6.06,17.35C4.89,16.18 4.89,14.28 6.06,13.11M9.39,19.59C9.39,18.36 10.15,16.85 12.09,16.85C13.4,16.85 14.87,18.1 16.31,17.96C14.87,17.92 13.59,16.85 13.59,15.19C13.59,13.86 14.69,12.9 14.69,11.34C14.63,12.33 13.82,13.77 12,13.77C10.59,13.77 9.55,12.63 7.87,12.63C8.58,12.67 10.5,13.3 10.5,15.35C10.5,17 9.39,17.5 9.39,19.59Z\";\nexport var mdiPiano = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M14.74 14H15V20H9V14H9.31C9.86 14 10.3 13.56 10.3 13V4H13.75V13C13.75 13.56 14.19 14 14.74 14M4 4H6.8V13C6.8 13.56 7.24 14 7.79 14H8V20H4V4M20 20H16V14H16.26C16.81 14 17.25 13.56 17.25 13V4H20V20Z\";\nexport var mdiPianoOff = \"M22.11 21.46L2.39 1.73L1.11 3L2 3.89V20C2 21.11 2.9 22 4 22H20.11L20.84 22.73L22.11 21.46M8 20H4V5.89L6.8 8.69V13C6.8 13.56 7.24 14 7.79 14H8V20M15 20H9V14H9.31C9.86 14 10.3 13.56 10.3 13V12.19L15 16.89V20M16 20V17.89L18.11 20H16M10.3 7.1L5.2 2H20C21.11 2 22 2.9 22 4V18.8L20 16.8V4H17.25V13C17.25 13.3 17.13 13.55 16.93 13.73L13.75 10.55V4H10.3V7.1Z\";\nexport var mdiPickaxe = \"M14.79,10.62L3.5,21.9L2.1,20.5L13.38,9.21L14.79,10.62M19.27,7.73L19.86,7.14L19.07,6.35L19.71,5.71L18.29,4.29L17.65,4.93L16.86,4.14L16.27,4.73C14.53,3.31 12.57,2.17 10.47,1.37L9.64,3.16C11.39,4.08 13,5.19 14.5,6.5L14,7L17,10L17.5,9.5C18.81,11 19.92,12.61 20.84,14.36L22.63,13.53C21.83,11.43 20.69,9.47 19.27,7.73Z\";\nexport var mdiPictureInPictureBottomRight = \"M19,11H11V17H19V11M23,19V5C23,3.88 22.1,3 21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19M21,19H3V4.97H21V19Z\";\nexport var mdiPictureInPictureBottomRightOutline = \"M19,11H11V17H19V11M17,15H13V13H17V15M21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5C23,3.88 22.1,3 21,3M21,19H3V4.97H21V19Z\";\nexport var mdiPictureInPictureTopRight = \"M19,7H11V13H19V7M21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3M21,19H3V5H21V19Z\";\nexport var mdiPictureInPictureTopRightOutline = \"M19,7H11V13H19V7M17,11H13V9H17V11M21,3H3A2,2 0 0,0 1,5V19C1,20.11 1.9,21 3,21H21A2,2 0 0,0 23,19V5C23,3.91 22.1,3 21,3M21,19H3V5H21V19Z\";\nexport var mdiPier = \"M20,18C18.6,18 17.2,17.5 16,16.7C13.6,18.4 10.4,18.4 8,16.7C6.8,17.5 5.4,18 4,18H2V20H4C5.4,20 6.7,19.6 8,19C10.5,20.3 13.5,20.3 16,19C17.3,19.6 18.6,20 20,20H22V18H20M20,13H19V16.9C18.3,16.8 17.6,16.6 17,16.2V13H12V17C11.3,17 10.7,16.9 10,16.7V13H5V16.9C4.7,17 4.3,17 4,17H3V13H2V11H3V9H5V11H10V9H12V11H17V9H19V11H20V13Z\";\nexport var mdiPierCrane = \"M20,20C18.61,20 17.22,19.53 16,18.67C13.56,20.38 10.44,20.38 8,18.67C6.78,19.53 5.39,20 4,20H2V22H4C5.37,22 6.74,21.65 8,21C10.5,22.3 13.5,22.3 16,21C17.26,21.65 18.62,22 20,22H22V20H20M20,4V3A1,1 0 0,0 19,2H9V1H6V2H5V4H6V13H5V11H3V13H2V15H3V19H4C4.33,19 4.67,18.97 5,18.92V15H10V18.65C10.65,18.85 11.33,18.95 12,18.95V18.92L12,15H13V13H12V11H10V13H9V4H17V8.62C16.53,8.79 16.19,9.23 16.19,9.76C16.19,10.2 16.43,10.6 16.8,10.82V12H17.42C17.76,12 18.03,12.28 18.03,12.62C18.03,12.96 17.76,13.24 17.42,13.24C17.2,13.24 17,13.12 16.88,12.93C16.71,12.64 16.34,12.54 16.05,12.71C15.75,12.87 15.65,13.25 15.82,13.55C16.15,14.11 16.76,14.47 17.42,14.47C18.43,14.47 19.26,13.64 19.26,12.62C19.26,11.84 18.76,11.14 18.03,10.88V10.82C18.41,10.6 18.65,10.2 18.65,9.76C18.65,9.3 18.38,8.91 18,8.7V4H20M8,11.66L7,12.66V11.24L8,10.24V11.66M8,8.71L7,9.71V8.29L8,7.29V8.71M7,6.71V5.29L8,4.29V5.71L7,6.71Z\";\nexport var mdiPig = \"M9.5,9A1.5,1.5 0 0,0 8,10.5A1.5,1.5 0 0,0 9.5,12A1.5,1.5 0 0,0 11,10.5A1.5,1.5 0 0,0 9.5,9M14.5,9A1.5,1.5 0 0,0 13,10.5A1.5,1.5 0 0,0 14.5,12A1.5,1.5 0 0,0 16,10.5A1.5,1.5 0 0,0 14.5,9M12,4L12.68,4.03C13.62,3.24 14.82,2.59 15.72,2.35C17.59,1.85 20.88,2.23 21.31,3.83C21.62,5 20.6,6.45 19.03,7.38C20.26,8.92 21,10.87 21,13A9,9 0 0,1 12,22A9,9 0 0,1 3,13C3,10.87 3.74,8.92 4.97,7.38C3.4,6.45 2.38,5 2.69,3.83C3.12,2.23 6.41,1.85 8.28,2.35C9.18,2.59 10.38,3.24 11.32,4.03L12,4M10,16A1,1 0 0,1 11,17A1,1 0 0,1 10,18A1,1 0 0,1 9,17A1,1 0 0,1 10,16M14,16A1,1 0 0,1 15,17A1,1 0 0,1 14,18A1,1 0 0,1 13,17A1,1 0 0,1 14,16M12,13C9.24,13 7,15.34 7,17C7,18.66 9.24,20 12,20C14.76,20 17,18.66 17,17C17,15.34 14.76,13 12,13M7.76,4.28C7.31,4.16 4.59,4.35 4.59,4.35C4.59,4.35 6.8,6.1 7.24,6.22C7.69,6.34 9.77,6.43 9.91,5.9C10.06,5.36 8.2,4.4 7.76,4.28M16.24,4.28C15.8,4.4 13.94,5.36 14.09,5.9C14.23,6.43 16.31,6.34 16.76,6.22C17.2,6.1 19.41,4.35 19.41,4.35C19.41,4.35 16.69,4.16 16.24,4.28Z\";\nexport var mdiPigVariant = \"M19.83 7.5L17.56 5.23C17.63 4.81 17.74 4.42 17.88 4.08C17.96 3.9 18 3.71 18 3.5C18 2.67 17.33 2 16.5 2C14.86 2 13.41 2.79 12.5 4H7.5C4.46 4 2 6.46 2 9.5S4.5 21 4.5 21H10V19H12V21H17.5L19.18 15.41L22 14.47V7.5H19.83M16 11C15.45 11 15 10.55 15 10S15.45 9 16 9C16.55 9 17 9.45 17 10S16.55 11 16 11Z\";\nexport var mdiPigVariantOutline = \"M15 10C15 9.45 15.45 9 16 9C16.55 9 17 9.45 17 10S16.55 11 16 11 15 10.55 15 10M22 7.5V14.47L19.18 15.41L17.5 21H12V19H10V21H4.5C4.5 21 2 12.54 2 9.5S4.46 4 7.5 4H12.5C13.41 2.79 14.86 2 16.5 2C17.33 2 18 2.67 18 3.5C18 3.71 17.96 3.9 17.88 4.08C17.74 4.42 17.62 4.81 17.56 5.23L19.83 7.5H22M20 9.5H19L15.5 6C15.5 5.35 15.59 4.71 15.76 4.09C14.79 4.34 14 5.06 13.67 6H7.5C5.57 6 4 7.57 4 9.5C4 11.38 5.22 16.15 6 19H8V17H14V19H16L17.56 13.85L20 13.03V9.5Z\";\nexport var mdiPiggyBank = \"M19.83 7.5L17.56 5.23C17.63 4.81 17.74 4.42 17.88 4.08C17.96 3.9 18 3.71 18 3.5C18 2.67 17.33 2 16.5 2C14.86 2 13.41 2.79 12.5 4H7.5C4.46 4 2 6.46 2 9.5S4.5 21 4.5 21H10V19H12V21H17.5L19.18 15.41L22 14.47V7.5H19.83M13 9H8V7H13V9M16 11C15.45 11 15 10.55 15 10S15.45 9 16 9C16.55 9 17 9.45 17 10S16.55 11 16 11Z\";\nexport var mdiPiggyBankOutline = \"M15 10C15 9.45 15.45 9 16 9C16.55 9 17 9.45 17 10S16.55 11 16 11 15 10.55 15 10M8 9H13V7H8V9M22 7.5V14.47L19.18 15.41L17.5 21H12V19H10V21H4.5C4.5 21 2 12.54 2 9.5S4.46 4 7.5 4H12.5C13.41 2.79 14.86 2 16.5 2C17.33 2 18 2.67 18 3.5C18 3.71 17.96 3.9 17.88 4.08C17.74 4.42 17.62 4.81 17.56 5.23L19.83 7.5H22M20 9.5H19L15.5 6C15.5 5.35 15.59 4.71 15.76 4.09C14.79 4.34 14 5.06 13.67 6H7.5C5.57 6 4 7.57 4 9.5C4 11.38 5.22 16.15 6 19H8V17H14V19H16L17.56 13.85L20 13.03V9.5Z\";\nexport var mdiPill = \"M4.22,11.29L11.29,4.22C13.64,1.88 17.43,1.88 19.78,4.22C22.12,6.56 22.12,10.36 19.78,12.71L12.71,19.78C10.36,22.12 6.56,22.12 4.22,19.78C1.88,17.43 1.88,13.64 4.22,11.29M5.64,12.71C4.59,13.75 4.24,15.24 4.6,16.57L10.59,10.59L14.83,14.83L18.36,11.29C19.93,9.73 19.93,7.2 18.36,5.64C16.8,4.07 14.27,4.07 12.71,5.64L5.64,12.71Z\";\nexport var mdiPillMultiple = \"M16.2 3.5C15.2 2.5 13.9 2 12.7 2S10.1 2.5 9.2 3.5L3.4 9.1C1.4 11.1 1.4 14.2 3.4 16.2S8.5 18.2 10.5 16.2L16.2 10.5C18.1 8.6 18.1 5.4 16.2 3.5M14.8 9.1L12 11.9L8.4 8.4L4 12.8C4 12 4.2 11.1 4.9 10.5L10.6 4.8C11.1 4.3 11.9 4 12.6 4S14.1 4.3 14.7 4.8C15.9 6.1 15.9 7.9 14.8 9.1M19.6 7.1C19.6 7.9 19.4 8.6 19.2 9.4C20.2 10.6 20.2 12.4 19.1 13.5L16.3 16.3L14.8 14.8L12 17.6C10.7 18.9 8.9 19.6 7.2 19.6C7.4 19.9 7.6 20.2 7.9 20.5C9.9 22.5 13 22.5 15 20.5L20.7 14.8C22.7 12.8 22.7 9.7 20.7 7.7C20.2 7.5 19.9 7.3 19.6 7.1Z\";\nexport var mdiPillOff = \"M22.11 21.46L2.39 1.73L1.11 3L6.81 8.7L4.22 11.29C1.88 13.64 1.88 17.43 4.22 19.78C6.56 22.12 10.36 22.12 12.71 19.78L15.3 17.19L20.84 22.73L22.11 21.46M4.6 16.57C4.24 15.24 4.59 13.75 5.64 12.71L8.23 10.12L9.64 11.53L4.6 16.57M10.78 7.58L9.36 6.16L11.29 4.22C13.64 1.88 17.43 1.88 19.78 4.22C22.12 6.56 22.12 10.36 19.78 12.71L17.85 14.65L16.43 13.23L18.36 11.29C19.93 9.73 19.93 7.2 18.36 5.64C16.8 4.07 14.27 4.07 12.71 5.64L10.78 7.58Z\";\nexport var mdiPillar = \"M6,5H18A1,1 0 0,1 19,6A1,1 0 0,1 18,7H6A1,1 0 0,1 5,6A1,1 0 0,1 6,5M21,2V4H3V2H21M15,8H17V22H15V8M7,8H9V22H7V8M11,8H13V22H11V8Z\";\nexport var mdiPin = \"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\";\nexport var mdiPinOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\";\nexport var mdiPinOffOutline = \"M8,6.2V4H7V2H17V4H16V12L18,14V16H17.8L14,12.2V4H10V8.2L8,6.2M20,20.7L18.7,22L12.8,16.1V22H11.2V16H6V14L8,12V11.3L2,5.3L3.3,4L20,20.7M8.8,14H10.6L9.7,13.1L8.8,14Z\";\nexport var mdiPinOutline = \"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12M8.8,14L10,12.8V4H14V12.8L15.2,14H8.8Z\";\nexport var mdiPineTree = \"M10,21V18H3L8,13H5L10,8H7L12,3L17,8H14L19,13H16L21,18H14V21H10Z\";\nexport var mdiPineTreeBox = \"M4,2H20A2,2 0 0,1 22,4V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M11,19H13V17H18L14,13H17L13,9H16L12,5L8,9H11L7,13H10L6,17H11V19Z\";\nexport var mdiPineTreeFire = \"M22.14 14.84L22.12 14.85C22.35 15.13 22.55 15.44 22.7 15.77L22.79 15.96C23.5 17.65 23 19.6 21.69 20.82C20.5 21.91 18.84 22.2 17.3 22C15.84 21.82 14.5 20.9 13.73 19.63C13.5 19.24 13.3 18.8 13.2 18.35C13.07 18 13.03 17.62 13 17.25C12.91 15.65 13.55 13.95 14.76 12.95C14.21 14.16 14.34 15.67 15.15 16.72L15.26 16.85C15.4 16.97 15.57 17 15.73 16.94C15.88 16.88 16 16.73 16 16.57L15.93 16.33C15.05 14 15.79 11.3 17.66 9.77C18.17 9.35 18.8 8.97 19.46 8.8C18.78 10.16 19 11.94 20.09 13C20.55 13.5 21.11 13.79 21.58 14.23L22.14 14.84M19.86 19.5L19.85 19.47C20.3 19.08 20.55 18.41 20.53 17.81L20.5 17.5C20.3 16.5 19.43 16.16 18.87 15.43C18.7 15.21 18.55 14.93 18.44 14.65C18.22 15.15 18.2 15.62 18.29 16.16C18.39 16.73 18.61 17.22 18.5 17.81C18.34 18.46 17.83 19.11 16.94 19.32C17.44 19.81 18.25 20.2 19.06 19.92C19.32 19.85 19.65 19.66 19.86 19.5M9 21V18H2L7 13H4L9 8H6L11 3L16 8H13L14.82 9.82C12.55 11.06 11 13.59 11 16.5C11 18.19 11.5 19.75 12.4 21H9Z\";\nexport var mdiPineTreeVariant = \"M19 12L12 2L5 12H6.86L3 18H10V22H14V18H21L17.14 12H19Z\";\nexport var mdiPineTreeVariantOutline = \"M19 12L12 2L5 12H6.86L3 18H10V22H14V18H21L17.14 12H19M15.16 10H13.5L17.34 16H6.67L10.53 10H8.84L12 5.5L15.16 10Z\";\nexport var mdiPinterest = \"M9.04,21.54C10,21.83 10.97,22 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12C2,16.25 4.67,19.9 8.44,21.34C8.35,20.56 8.26,19.27 8.44,18.38L9.59,13.44C9.59,13.44 9.3,12.86 9.3,11.94C9.3,10.56 10.16,9.53 11.14,9.53C12,9.53 12.4,10.16 12.4,10.97C12.4,11.83 11.83,13.06 11.54,14.24C11.37,15.22 12.06,16.08 13.06,16.08C14.84,16.08 16.22,14.18 16.22,11.5C16.22,9.1 14.5,7.46 12.03,7.46C9.21,7.46 7.55,9.56 7.55,11.77C7.55,12.63 7.83,13.5 8.29,14.07C8.38,14.13 8.38,14.21 8.35,14.36L8.06,15.45C8.06,15.62 7.95,15.68 7.78,15.56C6.5,15 5.76,13.18 5.76,11.71C5.76,8.55 8,5.68 12.32,5.68C15.76,5.68 18.44,8.15 18.44,11.43C18.44,14.87 16.31,17.63 13.26,17.63C12.29,17.63 11.34,17.11 11,16.5L10.33,18.87C10.1,19.73 9.47,20.88 9.04,21.57V21.54Z\";\nexport var mdiPinwheel = \"M12,12C12,9 14.5,6.5 17.5,6.5C20.5,6.5 23,9 23,12H12M12,12C12,15 9.5,17.5 6.5,17.5C3.5,17.5 1,15 1,12H12M12,12C9,12 6.5,9.5 6.5,6.5C6.5,3.5 9,1 12,1V12M12,12C15,12 17.5,14.5 17.5,17.5C17.5,20.5 15,23 12,23V12Z\";\nexport var mdiPinwheelOutline = \"M12,23H11V16.43C9.93,17.4 8.5,18 7,18C3.75,18 1,15.25 1,12V11H7.57C6.6,9.93 6,8.5 6,7C6,3.75 8.75,1 12,1H13V7.57C14.07,6.6 15.5,6 17,6C20.25,6 23,8.75 23,12V13H16.43C17.4,14.07 18,15.5 18,17C18,20.25 15.25,23 12,23M13,13.13V20.87C14.7,20.41 16,18.83 16,17C16,15.17 14.7,13.59 13,13.13M3.13,13C3.59,14.7 5.17,16 7,16C8.83,16 10.41,14.7 10.87,13H3.13M13.13,11H20.87C20.41,9.3 18.82,8 17,8C15.18,8 13.59,9.3 13.13,11M11,3.13C9.3,3.59 8,5.18 8,7C8,8.82 9.3,10.41 11,10.87V3.13Z\";\nexport var mdiPipe = \"M22,14H20V16H14V13H16V11H14V6A2,2 0 0,0 12,4H4V2H2V10H4V8H10V11H8V13H10V18A2,2 0 0,0 12,20H20V22H22\";\nexport var mdiPipeDisconnected = \"M16,9V11H8V9H10V8H4V10H2V2H4V4H12A2,2 0 0,1 14,6V9H16M10,15V18A2,2 0 0,0 12,20H20V22H22V14H20V16H14V15H16V13H8V15H10Z\";\nexport var mdiPipeLeak = \"M2,5V13H4V11H10L12,9L10,7H4V5H2M20,5V7H12L14,9L12,11H20V13H22V5H20M12,13C12,13 10,15.17 10,16.5A2,2 0 0,0 12,18.5A2,2 0 0,0 14,16.5C14,15.17 12,13 12,13Z\";\nexport var mdiPipeValve = \"M22 13V21H20V19H16.58C15.81 20.76 14.05 22 12 22S8.19 20.76 7.42 19H4V21H2V13H4V15H7.43C7.93 13.85 8.85 12.93 10 12.42V11H8V9H16V11H14V12.42C15.15 12.93 16.07 13.85 16.57 15H20V13H22M17 2H7C6.45 2 6 2.45 6 3S6.45 4 7 4H10V5H11V8H13V5H14V4H17C17.55 4 18 3.55 18 3S17.55 2 17 2Z\";\nexport var mdiPipeWrench = \"M16.17 5.63L14.06 7.78L11.91 5.63L16.17 1.41L19.69 4.92C20.86 6.09 20.86 8 19.69 9.19L16.17 5.63M4.83 12.7L7 14.81L10.5 11.3L8.39 9.19L4.83 12.7M15.47 7.78L19 11.3L17.58 12.7L16.88 12L6.23 22.59L3.42 19.78L11.91 11.3L7.69 7.03L9.8 4.92L14.06 9.19L15.47 7.78Z\";\nexport var mdiPirate = \"M8.2,12.1C7.9,12.3 7.7,12.7 7.8,13C7.8,13.7 8.5,14.2 9.1,14.2C9.7,14.2 10.3,13.7 10.3,13C9.7,12.6 9,12.3 8.2,12.1M22,11L23,7C23,7 21,7 18,5C15,3 15,1 12,1C9,1 9,3 6,5C3,7 1,7 1,7L2,11H2.1C2,11.3 2,11.7 2,12C2,15.5 3.8,18.6 6.5,20.4L6,21.3C12.4,25.4 18,21.3 18,21.3L17.5,20.4C20.2,18.6 22,15.5 22,12C22,11.7 22,11.3 22,11M11.3,4.5L9.9,3.1L10.6,2.4L12,3.8L13.4,2.4L14.1,3.1L12.7,4.5L14.1,5.9L13.4,6.6L12,5.2L10.6,6.6L9.9,5.9L11.3,4.5M9.3,8.5C10.3,8.2 11.3,8 12,8C14.2,8 17.9,9.6 19.8,10.4C19.9,10.7 19.9,11 19.9,11.3L9.3,8.5M13.6,19.1C12.9,19.5 12.2,19.8 11.4,19.9C10.9,19.5 10.9,18.7 11.4,18.3C11.8,17.9 12.7,17.7 13.2,18.2C13.5,18.3 13.6,18.8 13.6,19.1M20,13.4C19.5,15.5 18.2,17.4 16.5,18.6L15,16H9L7.5,18.6C5.4,17.2 4,14.8 4,12C4,11.5 4.1,11 4.2,10.5C4.7,10.3 5.3,10 6,9.7L13.1,11.6V14C13.1,14.5 13.5,15 14.1,15H16.1C16.6,15 17.1,14.6 17.1,14V12.6L20,13.4Z\";\nexport var mdiPistol = \"M7,5H23V9H22V10H16A1,1 0 0,0 15,11V12A2,2 0 0,1 13,14H9.62C9.24,14 8.89,14.22 8.72,14.56L6.27,19.45C6.1,19.79 5.76,20 5.38,20H2C2,20 -1,20 3,14C3,14 6,10 2,10V5H3L3.5,4H6.5L7,5M14,12V11A1,1 0 0,0 13,10H12C12,10 11,11 12,12A2,2 0 0,1 10,10A1,1 0 0,0 9,11V12A1,1 0 0,0 10,13H13A1,1 0 0,0 14,12Z\";\nexport var mdiPiston = \"M13,16.18C13.5,16.35 13.9,16.63 14.23,17H15V21H14.21C13.89,21.35 13.5,21.63 13,21.8C11.85,22.22 10.58,21.87 9.78,21H9V17H9.77C10.1,16.63 10.5,16.35 11,16.18V12H13V16.18M12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20M17,4H15V5H17V11H7V5H9V4H7V2H17V4M12,9A1,1 0 0,0 13,8A1,1 0 0,0 12,7A1,1 0 0,0 11,8A1,1 0 0,0 12,9Z\";\nexport var mdiPitchfork = \"M15.9 .9L13.1 3.7C12.3 4.5 12.3 5.7 13.1 6.5L14.5 8L9.2 13.4L7.8 12C7 11.2 5.8 11.2 5 12L1 16L2.4 17.4L6.4 13.4L7.8 14.8L3.8 18.8L5.2 20.2L9.2 16.2L10.6 17.6L9.9 18.4L6.7 21.6L8 23L12 19C12.8 18.2 12.8 17 12 16.2L10.6 14.8L15.9 9.4L17.3 10.8C18.1 11.6 19.3 11.6 20.1 10.8L23 8L15.9 .9M18.7 9.4L14.5 5.2L15.9 3.8L20.1 8L18.7 9.4Z\";\nexport var mdiPizza = \"M12,15A2,2 0 0,1 10,13C10,11.89 10.9,11 12,11A2,2 0 0,1 14,13A2,2 0 0,1 12,15M7,7C7,5.89 7.89,5 9,5A2,2 0 0,1 11,7A2,2 0 0,1 9,9C7.89,9 7,8.1 7,7M12,2C8.43,2 5.23,3.54 3,6L12,22L21,6C18.78,3.54 15.57,2 12,2Z\";\nexport var mdiPlaneCar = \"M21.57 12.66C21.43 12.26 21.05 12 20.6 12H13.41C12.95 12 12.58 12.26 12.43 12.66L11 16.77V22.28C11 22.66 11.32 23 11.7 23H12.32C12.7 23 13 22.62 13 22.24V21H21V22.24C21 22.62 21.31 23 21.69 23H22.3C22.68 23 23 22.66 23 22.28V16.77L21.57 12.66M13.41 13H20.6L21.63 16H12.38L13.41 13M13 19C12.45 19 12 18.55 12 18S12.45 17 13 17 14 17.45 14 18 13.55 19 13 19M21 19C20.45 19 20 18.55 20 18S20.45 17 21 17 22 17.45 22 18 21.55 19 21 19M6.66 14.53L7 17L5.95 18.06L4.19 14.88L1 13.11L2.06 12.03L4.56 12.4L8.43 8.53L1 4.62L2.42 3.21L11.61 5.33L15.5 1.44C16.06 .855 17.06 .855 17.62 1.44C18.21 2.03 18.21 3 17.62 3.56L13.73 7.45L14.55 11H13.41C12.54 11 11.79 11.5 11.5 12.31L11.47 12.37L10.56 10.63L6.66 14.53Z\";\nexport var mdiPlaneTrain = \"M20 8H14C12.34 8 11 9.34 11 11V18C11 19.66 12.34 21 14 21L13 22V23H14L16 20.97H18L20 23H21V22L20 21C21.66 21 23 19.66 23 18V11C23 9.34 21.66 8 20 8M14 19C13.45 19 13 18.55 13 18S13.45 17 14 17 15 17.45 15 18 14.55 19 14 19M20 19C19.45 19 19 18.55 19 18S19.45 17 20 17 21 17.45 21 18 20.55 19 20 19M21 16H13V10H21V16M6.66 14.53L7 17L5.95 18.06L4.19 14.88L1 13.11L2.06 12.03L4.56 12.4L8.43 8.53L1 4.62L2.42 3.21L11.61 5.33L15.5 1.44C16.06 .855 17.06 .855 17.62 1.44C18.21 2.03 18.21 3 17.62 3.56L14.18 7H14C11.79 7 10 8.79 10 11V11.19L6.66 14.53Z\";\nexport var mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nexport var mdiPlayBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.89 20.1 3 19 3M10 16V8L15 12\";\nexport var mdiPlayBoxEditOutline = \"M13 18.9L19.1 12.8L21.2 14.9L15.1 21H13V18.9M21.4 11.3L22.7 12.6C22.9 12.8 22.9 13.1 22.7 13.3L21.7 14.3L19.6 12.3L20.6 11.3C20.7 11.2 20.8 11.1 21 11.1S21.3 11.1 21.4 11.3M11 21H5C4.5 21 4 20.8 3.6 20.4C3.2 20 3 19.5 3 19V5C3 4.5 3.2 4 3.6 3.6C4 3.2 4.5 3 5 3H19C20.1 3 21 3.9 21 5V9H19V5H5V19H11V21M15 12L10 8V16L15 12Z\";\nexport var mdiPlayBoxLock = \"M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12C20.4 12 21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M13 19V21H4C2.89 21 2 20.1 2 19V5C2 3.89 2.89 3 4 3H18C19.1 3 20 3.89 20 5V10.1L19 10L18 10.1C15.79 10.55 14.12 12.45 14 14.76C13.39 15.31 13 16.11 13 17V19M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2C18.2 13.2 17.5 13.7 17.5 14.5V16H20.5V14.5M9 8V16L14 12L9 8Z\";\nexport var mdiPlayBoxLockOpen = \"M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V13.5C16.2 12.1 17.6 11 19 11C20.4 11 21.8 12.1 21.8 13.5V14H20.5V13.5C20.5 12.7 19.8 12.2 19 12.2C18.2 12.2 17.5 12.7 17.5 13.5V16H21.8C22.4 16 23 16.6 23 17.3M9 8V16L14 12L9 8M13 19V21H4C2.89 21 2 20.1 2 19V5C2 3.89 2.89 3 4 3H18C19.1 3 20 3.89 20 5V9.1L19 9C16.24 9 14 11.24 14 14V14.76C13.39 15.31 13 16.11 13 17V19Z\";\nexport var mdiPlayBoxLockOpenOutline = \"M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V13.5C16.2 12.1 17.6 11 19 11C20.4 11 21.8 12.1 21.8 13.5V14H20.5V13.5C20.5 12.7 19.8 12.2 19 12.2C18.2 12.2 17.5 12.7 17.5 13.5V16H21.8C22.4 16 23 16.6 23 17.3M18 5H4V19H13V21H4C2.89 21 2 20.1 2 19V5C2 3.89 2.89 3 4 3H18C19.1 3 20 3.89 20 5V9.1L19 9L18 9.1V5M9 8L14 12L9 16V8Z\";\nexport var mdiPlayBoxLockOutline = \"M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12C20.4 12 21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2C18.2 13.2 17.5 13.7 17.5 14.5V16H20.5V14.5M18 5H4V19H13V21H4C2.89 21 2 20.1 2 19V5C2 3.89 2.89 3 4 3H18C19.1 3 20 3.89 20 5V10.1L19 10L18 10.1V5M9 8L14 12L9 16V8Z\";\nexport var mdiPlayBoxMultiple = \"M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M12,14.5V5.5L18,10L12,14.5Z\";\nexport var mdiPlayBoxMultipleOutline = \"M4 6H2V20C2 21.1 2.9 22 4 22H18V20H4V6M20 4V16H8V4H20M20 2H8C6.9 2 6 2.9 6 4V16C6 17.1 6.9 18 8 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M12 14.5V5.5L18 10L12 14.5Z\";\nexport var mdiPlayBoxOutline = \"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M10,8V16L15,12L10,8Z\";\nexport var mdiPlayCircle = \"M10,16.5V7.5L16,12M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiPlayCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M10,16.5L16,12L10,7.5V16.5Z\";\nexport var mdiPlayNetwork = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M10,14V6L15,10L10,14Z\";\nexport var mdiPlayNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M10,14V6L15,10L10,14Z\";\nexport var mdiPlayOutline = \"M8.5,8.64L13.77,12L8.5,15.36V8.64M6.5,5V19L17.5,12\";\nexport var mdiPlayPause = \"M3,5V19L11,12M13,19H16V5H13M18,5V19H21V5\";\nexport var mdiPlayProtectedContent = \"M2,5V18H11V16H4V7H17V11H19V5H2M9,9V14L12.5,11.5L9,9M21.04,11.67L16.09,16.62L13.96,14.5L12.55,15.91L16.09,19.45L22.45,13.09L21.04,11.67Z\";\nexport var mdiPlaySpeed = \"M13,2.05V4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03V2.05M5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37L5.67,19.74M7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74M5.69,7.1L4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1M4.06,13H2.06C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13M10,16.5L16,12L10,7.5V16.5Z\";\nexport var mdiPlaylistCheck = \"M14 10H3V12H14V10M14 6H3V8H14V6M3 16H10V14H3V16M21.5 11.5L23 13L16 20L11.5 15.5L13 14L16 17L21.5 11.5Z\";\nexport var mdiPlaylistEdit = \"M3 6V8H14V6H3M3 10V12H14V10H3M20 10.1C19.9 10.1 19.7 10.2 19.6 10.3L18.6 11.3L20.7 13.4L21.7 12.4C21.9 12.2 21.9 11.8 21.7 11.6L20.4 10.3C20.3 10.2 20.2 10.1 20 10.1M18.1 11.9L12 17.9V20H14.1L20.2 13.9L18.1 11.9M3 14V16H10V14H3Z\";\nexport var mdiPlaylistMinus = \"M3 16H10V14H3M12 14V16H22V14M14 6H3V8H14M14 10H3V12H14V10Z\";\nexport var mdiPlaylistMusic = \"M15,6H3V8H15V6M15,10H3V12H15V10M3,16H11V14H3V16M17,6V14.18C16.69,14.07 16.35,14 16,14A3,3 0 0,0 13,17A3,3 0 0,0 16,20A3,3 0 0,0 19,17V8H22V6H17Z\";\nexport var mdiPlaylistMusicOutline = \"M15,6V8H3V6H15M15,10V12H3V10H15M3,16V14H11V16H3M17,6H22V8H19V17A3,3 0 0,1 16,20A3,3 0 0,1 13,17A3,3 0 0,1 16,14C16.35,14 16.69,14.07 17,14.18V6M16,16A1,1 0 0,0 15,17A1,1 0 0,0 16,18A1,1 0 0,0 17,17A1,1 0 0,0 16,16Z\";\nexport var mdiPlaylistPlay = \"M3 10H14V12H3V10M3 6H14V8H3V6M3 14H10V16H3V14M16 13V21L22 17L16 13Z\";\nexport var mdiPlaylistPlus = \"M3 16H10V14H3M18 14V10H16V14H12V16H16V20H18V16H22V14M14 6H3V8H14M14 10H3V12H14V10Z\";\nexport var mdiPlaylistRemove = \"M14 10H3V12H14V10M14 6H3V8H14V6M3 16H10V14H3V16M14.4 22L17 19.4L19.6 22L21 20.6L18.4 18L21 15.4L19.6 14L17 16.6L14.4 14L13 15.4L15.6 18L13 20.6L14.4 22Z\";\nexport var mdiPlaylistStar = \"M17 19.1L19.5 20.6L18.8 17.8L21 15.9L18.1 15.7L17 13L15.9 15.6L13 15.9L15.2 17.8L14.5 20.6L17 19.1M3 14H11V16H3V14M3 6H15V8H3V6M3 10H15V12H3V10Z\";\nexport var mdiPlex = \"M4,2C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2H4M8.56,6H12.06L15.5,12L12.06,18H8.56L12,12L8.56,6Z\";\nexport var mdiPliers = \"M9.4 12.2C9.4 12.2 11.7 15.3 13.8 17.4C14.7 18.3 15.6 18.9 16.3 19.4C17.1 19.9 17.3 21 16.6 21.7C16.2 22.1 15.5 22.3 15 22C14.2 21.6 13 20.8 11.7 19.6C9.6 17.5 7.3 14.4 7.3 14.4L9.4 12.2M12.2 9.4C12.2 9.4 15.3 11.7 17.4 13.8C18.3 14.7 18.9 15.6 19.4 16.3C19.9 17.1 21 17.3 21.7 16.6C22.1 16.2 22.3 15.5 22 15C21.6 14.2 20.8 13 19.6 11.7C17.5 9.6 14.4 7.3 14.4 7.3L12.2 9.4M10.4 5.5L7.6 2.7L4.1 2L3.6 2.5L5.9 4.8C6.4 4.7 6.9 4.8 7.3 5.2C7.9 5.8 7.9 6.7 7.3 7.3S5.8 7.9 5.2 7.3C4.8 6.9 4.7 6.3 4.8 5.8L2.5 3.6L2 4.1L2.7 7.6L5.5 10.4L6.9 13.2L8.8 11.3L7.8 9.5L9.4 7.9L11.3 8.8L13.2 6.9L10.4 5.5Z\";\nexport var mdiPlus = \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\";\nexport var mdiPlusBox = \"M17,13H13V17H11V13H7V11H11V7H13V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiPlusBoxMultiple = \"M19,11H15V15H13V11H9V9H13V5H15V9H19M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6Z\";\nexport var mdiPlusBoxMultipleOutline = \"M18 11H15V14H13V11H10V9H13V6H15V9H18M20 4V16H8V4H20M20 2H8C6.9 2 6 2.9 6 4V16C6 17.11 6.9 18 8 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M4 6H2V20C2 21.11 2.9 22 4 22H18V20H4V6Z\";\nexport var mdiPlusBoxOutline = \"M19,19V5H5V19H19M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5C3,3.89 3.9,3 5,3H19M11,7H13V11H17V13H13V17H11V13H7V11H11V7Z\";\nexport var mdiPlusCircle = \"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiPlusCircleMultiple = \"M2 12C2 9.2 3.6 6.8 6 5.7V3.5C2.5 4.8 0 8.1 0 12S2.5 19.2 6 20.5V18.3C3.6 17.2 2 14.8 2 12M15 3C10 3 6 7 6 12S10 21 15 21 24 17 24 12 20 3 15 3M20 13H16V17H14V13H10V11H14V7H16V11H20V13Z\";\nexport var mdiPlusCircleMultipleOutline = \"M16,8H14V11H11V13H14V16H16V13H19V11H16M2,12C2,9.21 3.64,6.8 6,5.68V3.5C2.5,4.76 0,8.09 0,12C0,15.91 2.5,19.24 6,20.5V18.32C3.64,17.2 2,14.79 2,12M15,3C10.04,3 6,7.04 6,12C6,16.96 10.04,21 15,21C19.96,21 24,16.96 24,12C24,7.04 19.96,3 15,3M15,19C11.14,19 8,15.86 8,12C8,8.14 11.14,5 15,5C18.86,5 22,8.14 22,12C22,15.86 18.86,19 15,19Z\";\nexport var mdiPlusCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z\";\nexport var mdiPlusLock = \"M21.14 17.67V17.22C21.14 16 20.2 15 19 15S16.86 16 16.86 17.22V17.67C16.34 17.67 16 18 16 18.56V22.11C16 22.65 16.34 23 16.86 23H21.14C21.66 23 22 22.65 22 22.11V18.55C22 18 21.66 17.67 21.14 17.67M20.29 17.67H17.72V17.22C17.72 16.5 18.31 15.89 19 15.89C19.69 15.89 20.29 16.5 20.29 17.22V17.67M11 5V11H5V13H11V19H13V13H19V11H13V5H11Z\";\nexport var mdiPlusLockOpen = \"M11 5V11H5V13H11V19H13V13H19V11H13V5H11M19 15C17.95 15 16.9 15.8 16.9 16.82V18.64C16.45 18.64 16 19.07 16 19.5V22.05C16 22.56 16.45 23 16.9 23H21.03C21.55 23 22 22.56 22 22.13V19.58C22 19.07 21.55 18.64 21.1 18.64H17.88V16.82C17.88 16.24 18.4 15.87 19 15.87S20.13 16.24 20.13 16.82V17.18H21.1V16.82C21.1 15.8 20.05 15 19 15Z\";\nexport var mdiPlusMinus = \"M11,4V9H6V11H11V16H13V11H18V9H13V4H11M6,18V20H18V18H6Z\";\nexport var mdiPlusMinusBox = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M11,6H13V9H16V11H13V14H11V11H8V9H11V6M8,16H16V18H8V16Z\";\nexport var mdiPlusMinusVariant = \"M3 7H6V4H8V7H11V9H8V12H6V9H3V7M13 15H21V17H13V15M16.04 3H18.35L7.96 21H5.65L16.04 3Z\";\nexport var mdiPlusNetwork = \"M16,11V9H13V6H11V9H8V11H11V14H13V11H16M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\";\nexport var mdiPlusNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M15,11H13V13H11V11H9V9H11V7H13V9H15V11Z\";\nexport var mdiPlusOutline = \"M4,9H9V4H15V9H20V15H15V20H9V15H4V9M11,13V18H13V13H18V11H13V6H11V11H6V13H11Z\";\nexport var mdiPlusThick = \"M20 14H14V20H10V14H4V10H10V4H14V10H20V14Z\";\nexport var mdiPocket = \"M4 3H20V17.63L12 22.25L4 17.63V3M18 9H6V16.5L12 19.94L18 16.5V9M18 5H6V7H18V5Z\";\nexport var mdiPodcast = \"M17,18.25V21.5H7V18.25C7,16.87 9.24,15.75 12,15.75C14.76,15.75 17,16.87 17,18.25M12,5.5A6.5,6.5 0 0,1 18.5,12C18.5,13.25 18.15,14.42 17.54,15.41L16,14.04C16.32,13.43 16.5,12.73 16.5,12C16.5,9.5 14.5,7.5 12,7.5C9.5,7.5 7.5,9.5 7.5,12C7.5,12.73 7.68,13.43 8,14.04L6.46,15.41C5.85,14.42 5.5,13.25 5.5,12A6.5,6.5 0 0,1 12,5.5M12,1.5A10.5,10.5 0 0,1 22.5,12C22.5,14.28 21.77,16.39 20.54,18.11L19.04,16.76C19.96,15.4 20.5,13.76 20.5,12A8.5,8.5 0 0,0 12,3.5A8.5,8.5 0 0,0 3.5,12C3.5,13.76 4.04,15.4 4.96,16.76L3.46,18.11C2.23,16.39 1.5,14.28 1.5,12A10.5,10.5 0 0,1 12,1.5M12,9.5A2.5,2.5 0 0,1 14.5,12A2.5,2.5 0 0,1 12,14.5A2.5,2.5 0 0,1 9.5,12A2.5,2.5 0 0,1 12,9.5Z\";\nexport var mdiPodium = \"M12,7.09L14.45,8.58L13.8,5.77L16,3.89L13.11,3.64L12,1L10.87,3.64L8,3.89L10.18,5.77L9.5,8.58L12,7.09M4,13.09L6.45,14.58L5.8,11.77L8,9.89L5.11,9.64L4,7L2.87,9.64L0,9.89L2.18,11.77L1.5,14.58L4,13.09M20,10.09L22.45,11.58L21.8,8.77L24,6.89L21.11,6.64L20,4L18.87,6.64L16,6.89L18.18,8.77L17.5,11.58L20,10.09M15,23H9V10H15V23M7,23H1V17H7V23M23,23H17V13H23V23Z\";\nexport var mdiPodiumBronze = \"M4,13.09L6.45,14.58L5.8,11.77L8,9.89L5.11,9.64L4,7L2.87,9.64L0,9.89L2.18,11.77L1.5,14.58L4,13.09M7,23H1V17H7V23M9,10V23H15V10H9M13,21H11V12H13V21M17,13V23H23V13H17M21,21H19V15H21V21Z\";\nexport var mdiPodiumGold = \"M12,7.09L14.45,8.58L13.8,5.77L16,3.89L13.11,3.64L12,1L10.87,3.64L8,3.89L10.18,5.77L9.5,8.58L12,7.09M15,23H9V10H15V23M1,17V23H7V17H1M5,21H3V19H5V21M17,13V23H23V13H17M21,21H19V15H21V21Z\";\nexport var mdiPodiumSilver = \"M20,10.09L22.45,11.58L21.8,8.77L24,6.89L21.11,6.64L20,4L18.87,6.64L16,6.89L18.18,8.77L17.5,11.58L20,10.09M23,23H17V13H23V23M1,17V23H7V17H1M5,21H3V19H5V21M9,10V23H15V10H9M13,21H11V12H13V21Z\";\nexport var mdiPointOfSale = \"M20,5C19.4,5 19,5.5 19,6.1V16C19,16.6 19.4,17 20,17.1C20.6,17.1 21,16.6 21,16V6.1C21,5.5 20.6,5 20,5M16.4,2H4.6C3.7,2 3,2.7 3,3.6V17.4C3,18.3 3.7,19 4.6,19H6V21C6,21.6 6.4,22 7,22H13C13.6,22 14,21.6 14,21V19H16.4C17.3,19 18,18.3 18,17.4V3.6C18,2.7 17.3,2 16.4,2M5,8H8V10H5V8M12,11V13H9V11H12M9,10V8H12V10H9M12,14V16H9V14H12M5,11H8V13H5V11M5,16V14H8V16H5M8,21H7V19H8V21M13,21H10V19H13V21M16,16H13V14H16V16M16,13H13V11H16V13M16,10H13V8H16V10M16,6H5V4H16V6Z\";\nexport var mdiPokeball = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4C7.92,4 4.55,7.05 4.06,11H8.13C8.57,9.27 10.14,8 12,8C13.86,8 15.43,9.27 15.87,11H19.94C19.45,7.05 16.08,4 12,4M12,20C16.08,20 19.45,16.95 19.94,13H15.87C15.43,14.73 13.86,16 12,16C10.14,16 8.57,14.73 8.13,13H4.06C4.55,16.95 7.92,20 12,20M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiPokemonGo = \"M12,2A7,7 0 0,1 19,9C19,10.4 18.59,11.71 17.88,12.8L12,22.21L6.12,12.8C5.41,11.71 5,10.4 5,9A7,7 0 0,1 12,2M12,3.5C9.3,3.5 7.06,5.44 6.59,8H9.17C9.58,6.83 10.69,6 12,6C13.31,6 14.42,6.83 14.83,8H17.41C16.94,5.44 14.7,3.5 12,3.5M12,12C10.69,12 9.58,11.17 9.17,10H6.59C6.72,10.69 6.97,11.34 7.34,11.91V11.91L7.38,12C8.36,13.5 10.06,14.5 12,14.5C13.94,14.5 15.64,13.5 16.62,12L16.66,11.91V11.91C17.03,11.34 17.28,10.69 17.41,10H14.83C14.42,11.17 13.31,12 12,12M12,7.5A1.5,1.5 0 0,0 10.5,9A1.5,1.5 0 0,0 12,10.5A1.5,1.5 0 0,0 13.5,9A1.5,1.5 0 0,0 12,7.5Z\";\nexport var mdiPokerChip = \"M23,12C23,18.08 18.08,23 12,23C5.92,23 1,18.08 1,12C1,5.92 5.92,1 12,1C18.08,1 23,5.92 23,12M13,4.06C15.13,4.33 17.07,5.45 18.37,7.16L20.11,6.16C18.45,3.82 15.86,2.3 13,2V4.06M3.89,6.16L5.63,7.16C6.93,5.45 8.87,4.33 11,4.06V2C8.14,2.3 5.55,3.82 3.89,6.16M2.89,16.1L4.62,15.1C3.79,13.12 3.79,10.88 4.62,8.9L2.89,7.9C1.7,10.5 1.7,13.5 2.89,16.1M11,19.94C8.87,19.67 6.93,18.55 5.63,16.84L3.89,17.84C5.55,20.18 8.14,21.7 11,22V19.94M20.11,17.84L18.37,16.84C17.07,18.55 15.13,19.67 13,19.94V21.94C15.85,21.65 18.44,20.16 20.11,17.84M21.11,16.1C22.3,13.5 22.3,10.5 21.11,7.9L19.38,8.9C20.21,10.88 20.21,13.12 19.38,15.1L21.11,16.1M15,12L12,7L9,12L12,17L15,12Z\";\nexport var mdiPolaroid = \"M6,3H18A2,2 0 0,1 20,5V19A2,2 0 0,1 18,21H6A2,2 0 0,1 4,19V5A2,2 0 0,1 6,3M6,5V17H18V5H6Z\";\nexport var mdiPoliceBadge = \"M22 4L20 2C18.85 2.64 17.4 3 16 3C14.6 3 13.14 2.63 12 2C10.86 2.63 9.4 3 8 3C6.6 3 5.15 2.64 4 2L2 4C2 4 4 6 4 8S2 14 2 16C2 20 12 22 12 22S22 20 22 16C22 14 20 10 20 8S22 4 22 4M15.05 16.45L11.97 14.59L8.9 16.45L9.72 12.95L7 10.61L10.58 10.3L11.97 7L13.37 10.29L16.95 10.6L14.23 12.94L15.05 16.45Z\";\nexport var mdiPoliceBadgeOutline = \"M12 4.21C13.24 4.72 14.65 5 16 5C17.05 5 18.1 4.84 19.08 4.54C18.5 5.5 18 6.71 18 8C18 9.32 18.54 10.93 19.1 12.63C19.5 13.83 20 15.33 20 16C20 17.03 16.47 19 12 19.96C7.54 19 4 17.03 4 16C4 15.33 4.5 13.83 4.9 12.63C5.46 10.93 6 9.32 6 8C6 6.71 5.5 5.5 4.92 4.54C5.9 4.84 6.96 5 8 5C9.35 5 10.76 4.72 12 4.21M20 2C18.85 2.64 17.4 3 16 3C14.6 3 13.14 2.63 12 2C10.86 2.63 9.4 3 8 3C6.6 3 5.15 2.64 4 2L2 4C2 4 4 6 4 8S2 14 2 16C2 20 12 22 12 22S22 20 22 16C22 14 20 10 20 8S22 4 22 4L20 2M15.05 16.45L11.97 14.59L8.9 16.45L9.72 12.95L7 10.61L10.58 10.3L11.97 7L13.37 10.29L16.95 10.6L14.23 12.94L15.05 16.45\";\nexport var mdiPoliceStation = \"M12 10C12 10 16 9.2 16 7.6C16 6.8 15.2 5.2 15.2 4.4C15.2 3.6 16 2.8 16 2.8L15.2 2C14.74 2.26 14.16 2.4 13.6 2.4S12.46 2.25 12 2C11.54 2.25 10.96 2.4 10.4 2.4C9.84 2.4 9.26 2.26 8.8 2L8 2.8C8 2.8 8.8 3.6 8.8 4.4C8.8 5.2 8 6.8 8 7.6C8 9.2 12 10 12 10M11.43 5.32L12 4L12.55 5.32L14 5.44L12.89 6.38L13.22 7.78L12 7.04L10.76 7.78L11.09 6.38L10 5.44L11.43 5.32M21 6H16.65C16.84 6.58 17 7.12 17 7.6C17 9.85 13.32 10.76 12.2 11L12 11L11.8 11C10.68 10.76 7 9.85 7 7.6C7 7.12 7.16 6.58 7.35 6H3C2.45 6 2 6.45 2 7V22H10V17H14V22H22V7C22 6.45 21.55 6 21 6M8 20H4V17H8V20M8 15H4V12H8V15M14 15H10V12H14V15M20 20H16V17H20V20M20 15H16V12H20V15Z\";\nexport var mdiPoll = \"M3,22V8H7V22H3M10,22V2H14V22H10M17,22V14H21V22H17Z\";\nexport var mdiPolo = \"M22 9.5C22 10.88 20.88 12 19.5 12S17 10.88 17 9.5 18.12 7 19.5 7 22 8.12 22 9.5M11 17V3H8V17H2L6 21H13V17H11M16 17H14V21H16V17Z\";\nexport var mdiPolymer = \"M19,4H15L7.1,16.63L4.5,12L9,4H5L0.5,12L5,20H9L16.89,7.37L19.5,12L15,20H19L23.5,12L19,4Z\";\nexport var mdiPool = \"M2,15C3.67,14.25 5.33,13.5 7,13.17V5A3,3 0 0,1 10,2C11.31,2 12.42,2.83 12.83,4H10A1,1 0 0,0 9,5V6H14V5A3,3 0 0,1 17,2C18.31,2 19.42,2.83 19.83,4H17A1,1 0 0,0 16,5V14.94C18,14.62 20,13 22,13V15C19.78,15 17.56,17 15.33,17C13.11,17 10.89,15 8.67,15C6.44,15 4.22,16 2,17V15M14,8H9V10H14V8M14,12H9V13C10.67,13.16 12.33,14.31 14,14.79V12M2,19C4.22,18 6.44,17 8.67,17C10.89,17 13.11,19 15.33,19C17.56,19 19.78,17 22,17V19C19.78,19 17.56,21 15.33,21C13.11,21 10.89,19 8.67,19C6.44,19 4.22,20 2,21V19Z\";\nexport var mdiPoolThermometer = \"M19 6C17.9 6 17 6.9 17 8V14.8C16.4 15.4 16 16.2 16 17C16 18.7 17.3 20 19 20S22 18.7 22 17C22 16.1 21.6 15.3 21 14.8V8C21 6.9 20.1 6 19 6M19 7C19.5 7 20 7.4 20 8V9H18V8C18 7.4 18.5 7 19 7M15 20.3C14.1 20.7 13.2 21 12.3 21C10.1 21 7.9 19 5.6 19C4.4 19 3.2 19.3 1.9 19.7V17.7C3.2 17.3 4.4 17 5.7 17C7.9 17 10.1 19 12.4 19C13.3 19 14.2 18.7 15.1 18.3V20.3M12.3 17C13.2 17 14.1 16.7 15 16.3V14.3C14.3 14.6 13.7 14.8 13 15V5C13 4.4 13.4 4 14 4H16.8C16.4 2.8 15.3 2 14 2C12.3 2 11 3.3 11 5V6H6V5C6 4.4 6.4 4 7 4H9.8C9.4 2.8 8.3 2 7 2C5.3 2 4 3.3 4 5V13.2C3.3 13.3 2.7 13.5 2 13.8V15.8C3.2 15.3 4.4 15 5.7 15C7.9 15 10.1 17 12.3 17M6 8H11V10H6V8M6 12H11V14.8C9.3 14.3 7.7 13.2 6 13V12Z\";\nexport var mdiPopcorn = \"M7,22H4.75C4.75,22 4,22 3.81,20.65L2.04,3.81L2,3.5C2,2.67 2.9,2 4,2C5.1,2 6,2.67 6,3.5C6,2.67 6.9,2 8,2C9.1,2 10,2.67 10,3.5C10,2.67 10.9,2 12,2C13.09,2 14,2.66 14,3.5V3.5C14,2.67 14.9,2 16,2C17.1,2 18,2.67 18,3.5C18,2.67 18.9,2 20,2C21.1,2 22,2.67 22,3.5L21.96,3.81L20.19,20.65C20,22 19.25,22 19.25,22H17L16.5,22H13.75L10.25,22H7.5L7,22M17.85,4.93C17.55,4.39 16.84,4 16,4C15.19,4 14.36,4.36 14,4.87L13.78,20H16.66L17.85,4.93M10,4.87C9.64,4.36 8.81,4 8,4C7.16,4 6.45,4.39 6.15,4.93L7.34,20H10.22L10,4.87Z\";\nexport var mdiPost = \"M3 3V21H21V3H3M18 18H6V17H18V18M18 16H6V15H18V16M18 12H6V6H18V12Z\";\nexport var mdiPostLamp = \"M14 3L13 1H11L10 3L5 6H7L8 14L10 16L10.5 17H9V23H15V17H13.5L14 16L16 14L17 6H19L14 3M14.16 13H9.84L9 6H15L14.16 13Z\";\nexport var mdiPostOutline = \"M19 5V19H5V5H19M21 3H3V21H21V3M17 17H7V16H17V17M17 15H7V14H17V15M17 12H7V7H17V12Z\";\nexport var mdiPostageStamp = \"M2,2V5.5C3.1,5.5 4,6.62 4,8C4,9.38 3.1,10.5 2,10.5V13.5C3.1,13.5 4,14.62 4,16C4,17.38 3.1,18.5 2,18.5V22H5.5C5.5,20.9 6.62,20 8,20C9.38,20 10.5,20.9 10.5,22H13.5C13.5,20.9 14.62,20 16,20C17.38,20 18.5,20.9 18.5,22H22V18.5C20.9,18.5 20,17.38 20,16V16C20,14.62 20.9,13.5 22,13.5V10.5C20.9,10.5 20,9.38 20,8V8C20,6.62 20.9,5.5 22,5.5V2H18.5C18.5,3.1 17.38,4 16,4C14.62,4 13.5,3.1 13.5,2H10.5C10.5,3.1 9.38,4 8,4C6.62,4 5.5,3.1 5.5,2H2M6,6H18V18H6V6M9,7A2,2 0 0,0 7,9A2,2 0 0,0 9,11A2,2 0 0,0 11,9A2,2 0 0,0 9,7M17,10L14,13L12,12L7,17H17V10Z\";\nexport var mdiPot = \"M19 19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V12H3V10H21V12H19V19Z\";\nexport var mdiPotMix = \"M14.6 9L18 3.1L19.7 4.1L16.9 9H14.6M14 10H3V12H5V19C5 20.1 5.9 21 7 21H17C18.1 21 19 20.1 19 19V12H21V10H14Z\";\nexport var mdiPotMixOutline = \"M14.6 9L18 3.1L19.7 4.1L16.9 9H14.6M16.3 10H21V12H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V12H3V10H16.3M17 12H7V19H17V12Z\";\nexport var mdiPotOutline = \"M3 10V12H5V19C5 20.1 5.9 21 7 21H17C18.1 21 19 20.1 19 19V12H21V10H3M7 12H17V19H7V12Z\";\nexport var mdiPotSteam = \"M19 19C19 20.11 18.11 21 17 21H7C5.9 21 5 20.11 5 19V12H3V10H21V12H19M8 1.5C6.15 1.5 4.65 3 4.65 4.85C4.65 6.7 6.15 8.2 8 8.2H9.53C9.92 8.2 10.29 8.3 10.61 8.5H12.63C12.05 7.45 10.86 6.75 9.53 6.75H8C7 6.75 6.15 5.77 6.15 4.75C6.15 3.73 7 3 8 3M12.85 2C12.85 3 12 3.85 11 3.85V5.35C12.92 5.35 14.5 6.7 14.89 8.5H16.42C16.12 6.67 14.96 5.15 13.35 4.38C13.97 3.77 14.35 2.93 14.35 2Z\";\nexport var mdiPotSteamOutline = \"M8 1.5C6.15 1.5 4.65 3 4.65 4.85C4.65 6.7 6.15 8.2 8 8.2H9.53C9.92 8.2 10.29 8.3 10.61 8.5H12.63C12.05 7.45 10.86 6.75 9.53 6.75H8C7 6.75 6.15 5.77 6.15 4.75C6.15 3.73 7 3 8 3V1.5M12.85 2C12.85 3 12 3.85 11 3.85V5.35C12.92 5.35 14.5 6.7 14.89 8.5H16.42C16.12 6.67 14.96 5.15 13.35 4.38C13.97 3.77 14.35 2.93 14.35 2H12.85M3 10V12H5V19C5 20.11 5.9 21 7 21H17C18.11 21 19 20.11 19 19V12H21V10H3M7 12H17V19H7V12Z\";\nexport var mdiPound = \"M5.41,21L6.12,17H2.12L2.47,15H6.47L7.53,9H3.53L3.88,7H7.88L8.59,3H10.59L9.88,7H15.88L16.59,3H18.59L17.88,7H21.88L21.53,9H17.53L16.47,15H20.47L20.12,17H16.12L15.41,21H13.41L14.12,17H8.12L7.41,21H5.41M9.53,9L8.47,15H14.47L15.53,9H9.53Z\";\nexport var mdiPoundBox = \"M3,5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5M7,18H9L9.35,16H13.35L13,18H15L15.35,16H17.35L17.71,14H15.71L16.41,10H18.41L18.76,8H16.76L17.12,6H15.12L14.76,8H10.76L11.12,6H9.12L8.76,8H6.76L6.41,10H8.41L7.71,14H5.71L5.35,16H7.35L7,18M10.41,10H14.41L13.71,14H9.71L10.41,10Z\";\nexport var mdiPoundBoxOutline = \"M19 19H5V5H19M19 3H5A2 2 0 0 0 3 5V19A2 2 0 0 0 5 21H19A2 2 0 0 0 21 19V5A2 2 0 0 0 19 3M7 9H9.31L9.63 6H11.63L11.31 9H13.31L13.63 6H15.63L15.31 9H17V11H15.1L14.9 13H17V15H14.69L14.37 18H12.37L12.69 15H10.69L10.37 18H8.37L8.69 15H7V13H8.9L9.1 11H7V9M11.1 11L10.9 13H12.9L13.1 11Z\";\nexport var mdiPower = \"M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13\";\nexport var mdiPowerCycle = \"M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M12,19A7,7 0 0,1 5,12A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19M13,17H11V7H13V17Z\";\nexport var mdiPowerOff = \"M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M12,19A7,7 0 0,1 5,12A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19Z\";\nexport var mdiPowerOn = \"M11,3H13V21H11V3Z\";\nexport var mdiPowerPlug = \"M16,7V3H14V7H10V3H8V7H8C7,7 6,8 6,9V14.5L9.5,18V21H14.5V18L18,14.5V9C18,8 17,7 16,7Z\";\nexport var mdiPowerPlugBattery = \"M12 10C12 9.35 11.57 8.7 11 8.32C10.7 8.12 10.35 8 10 8V4H8V8H4V4H2V8C1 8 0 9 0 10V15.5L3.5 19V22H8.5V19L12 15.5V10M12.33 4C12.22 4 12.11 4 12 4.04V6.59C12.3 6.77 12.56 7 12.79 7.21C13.44 7.87 14 8.85 14 10V16.33L11 19.33V20.67C11 21.4 11.6 22 12.33 22H21.67C22 22 22.36 21.86 22.61 21.61C22.86 21.36 23 21 23 20.67V5.33C23 4.6 22.4 4 21.67 4H20V2H14V4H12.33Z\";\nexport var mdiPowerPlugBatteryOutline = \"M11 8.32C11.57 8.7 12 9.35 12 10V15.5L8.5 19V22H3.5V19L0 15.5V10C0 9 1 8 2 8V4H4V8H8V4H10V8C10.35 8 10.7 8.12 11 8.32M7.09 17.59L10 14.67V10.09C10 10.06 9.95 10 9.92 10H2.09C2.06 10 2 10.06 2 10.09V14.67L5.33 18H6.67L7.09 17.59M12 4.04C12.11 4 12.22 4 12.33 4H14V2H20V4H21.67C22.4 4 23 4.6 23 5.33V20.67C23 21 22.86 21.36 22.61 21.61C22.36 21.86 22 22 21.67 22H12.33C11.6 22 11 21.4 11 20.67V19.33L13 17.33V20H21V6H12V4.04Z\";\nexport var mdiPowerPlugOff = \"M20.84 22.73L15.31 17.2L14.5 18V21H9.5V18L6 14.5V9C6 8.7 6.1 8.41 6.25 8.14L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M18 14.5V9C18 8 17 7 16 7V3H14V7H10.2L17.85 14.65L18 14.5M10 3H8V4.8L10 6.8V3Z\";\nexport var mdiPowerPlugOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L6.25 8.14C6.1 8.41 6 8.7 6 9V14.5L9.5 18V21H14.5V18L15.31 17.2L20.84 22.73L22.11 21.46M13.09 16.59L12.67 17H11.33L10.92 16.59L8 13.67V9.89L13.89 15.78L13.09 16.59M12.2 9L10.2 7H14V3H16V7C17 7 18 8 18 9V14.5L17.85 14.65L16 12.8V9.09C16 9.06 15.95 9 15.92 9H12.2M10 6.8L8 4.8V3H10V6.8Z\";\nexport var mdiPowerPlugOutline = \"M16 7V3H14V7H10V3H8V7C7 7 6 8 6 9V14.5L9.5 18V21H14.5V18L18 14.5V9C18 8 17 7 16 7M16 13.67L13.09 16.59L12.67 17H11.33L10.92 16.59L8 13.67V9.09C8 9.06 8.06 9 8.09 9H15.92C15.95 9 16 9.06 16 9.09V13.67Z\";\nexport var mdiPowerSettings = \"M15,24H17V22H15M16.56,4.44L15.11,5.89C16.84,6.94 18,8.83 18,11A6,6 0 0,1 12,17A6,6 0 0,1 6,11C6,8.83 7.16,6.94 8.88,5.88L7.44,4.44C5.36,5.88 4,8.28 4,11A8,8 0 0,0 12,19A8,8 0 0,0 20,11C20,8.28 18.64,5.88 16.56,4.44M13,2H11V12H13M11,24H13V22H11M7,24H9V22H7V24Z\";\nexport var mdiPowerSleep = \"M18.73,18C15.4,21.69 9.71,22 6,18.64C2.33,15.31 2.04,9.62 5.37,5.93C6.9,4.25 9,3.2 11.27,3C7.96,6.7 8.27,12.39 12,15.71C13.63,17.19 15.78,18 18,18C18.25,18 18.5,18 18.73,18Z\";\nexport var mdiPowerSocket = \"M15,15H17V11H15M7,15H9V11H7M11,13H13V9H11M8.83,7H15.2L19,10.8V17H5V10.8M8,5L3,10V19H21V10L16,5H8Z\";\nexport var mdiPowerSocketAu = \"M4.22,2A2.22,2.22 0 0,0 2,4.22V19.78C2,21 3,22 4.22,22H19.78A2.22,2.22 0 0,0 22,19.78V4.22C22,3 21,2 19.78,2H4.22M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M8.27,7.54L6.27,11L8,12L10,8.54L8.27,7.54M15.73,7.54L14,8.54L16,12L17.73,11L15.73,7.54M11,14V18H13V14H11Z\";\nexport var mdiPowerSocketCh = \"M19.78 2H4.22C3 2 2 3 2 4.22V19.78C2 21 3 22 4.22 22H19.78C21 22 22 21 22 19.78V4.22C22 3 21 2 19.78 2M20 13L16.55 16.45C16.19 16.81 15.75 17 15.3 17H8.7C8.25 17 7.81 16.81 7.45 16.45L4 13C3.5 12.5 3.5 11.5 4 11L7.45 7.55C7.81 7.19 8.25 7 8.7 7H15.3C15.75 7 16.19 7.19 16.55 7.55L20 11C20.5 11.5 20.5 12.5 20 13M10.5 14C10.5 13.17 11.17 12.5 12 12.5S13.5 13.17 13.5 14 12.83 15.5 12 15.5 10.5 14.83 10.5 14M15.5 12C15.5 11.17 16.17 10.5 17 10.5S18.5 11.17 18.5 12 17.83 13.5 17 13.5 15.5 12.83 15.5 12M5.5 12C5.5 11.17 6.17 10.5 7 10.5S8.5 11.17 8.5 12 7.83 13.5 7 13.5 5.5 12.83 5.5 12Z\";\nexport var mdiPowerSocketDe = \"M4.22 2A2.22 2.22 0 0 0 2 4.22V19.78C2 21 3 22 4.22 22H19.78A2.22 2.22 0 0 0 22 19.78V4.22C22 3 21 2 19.78 2H4.22M11 4.07V6H13V4.07A8 8 0 0 1 20 12A8 8 0 0 1 13 19.93V18H11V19.93A8 8 0 0 1 4 12A8 8 0 0 1 11 4.07M7.5 10.5A1.5 1.5 0 0 0 6 12C6 12.83 6.66 13.5 7.5 13.5A1.5 1.5 0 0 0 9 12A1.5 1.5 0 0 0 7.5 10.5M16.5 10.5A1.5 1.5 0 0 0 15 12A1.5 1.5 0 0 0 16.5 13.5A1.5 1.5 0 0 0 18 12A1.5 1.5 0 0 0 16.5 10.5Z\";\nexport var mdiPowerSocketEu = \"M7.5,10.5A1.5,1.5 0 0,1 9,12A1.5,1.5 0 0,1 7.5,13.5C6.66,13.5 6,12.83 6,12A1.5,1.5 0 0,1 7.5,10.5M16.5,10.5A1.5,1.5 0 0,1 18,12A1.5,1.5 0 0,1 16.5,13.5A1.5,1.5 0 0,1 15,12A1.5,1.5 0 0,1 16.5,10.5M4.22,2H19.78C21,2 22,3 22,4.22V19.78A2.22,2.22 0 0,1 19.78,22H4.22C3,22 2,21 2,19.78V4.22A2.22,2.22 0 0,1 4.22,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiPowerSocketFr = \"M4.22 2A2.22 2.22 0 0 0 2 4.22V19.78C2 21 3 22 4.22 22H19.78A2.22 2.22 0 0 0 22 19.78V4.22C22 3 21 2 19.78 2H4.22M12 4A8 8 0 0 1 20 12A8 8 0 0 1 12 20A8 8 0 0 1 4 12A8 8 0 0 1 12 4M12 6A1.5 1.5 0 0 0 10.5 7.5A1.5 1.5 0 0 0 12 9A1.5 1.5 0 0 0 13.5 7.5A1.5 1.5 0 0 0 12 6M7.5 10.5A1.5 1.5 0 0 0 6 12C6 12.83 6.66 13.5 7.5 13.5A1.5 1.5 0 0 0 9 12A1.5 1.5 0 0 0 7.5 10.5M16.5 10.5A1.5 1.5 0 0 0 15 12A1.5 1.5 0 0 0 16.5 13.5A1.5 1.5 0 0 0 18 12A1.5 1.5 0 0 0 16.5 10.5Z\";\nexport var mdiPowerSocketIt = \"M10.5 16.5C10.5 15.68 11.17 15 12 15C12.83 15 13.5 15.68 13.5 16.5C13.5 17.34 12.83 18 12 18C11.17 18 10.5 17.34 10.5 16.5M10.5 7.5C10.5 6.67 11.17 6 12 6C12.83 6 13.5 6.67 13.5 7.5C13.5 8.33 12.83 9 12 9C11.17 9 10.5 8.33 10.5 7.5M4.22 2H19.78C21 2 22 3 22 4.22V19.78C22 21 21 22 19.78 22H4.22C3 22 2 21 2 19.78V4.22C2 3 3 2 4.22 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M10.5 12C10.5 11.17 11.17 10.5 12 10.5C12.83 10.5 13.5 11.17 13.5 12C13.5 12.83 12.83 13.5 12 13.5C11.17 13.5 10.5 12.83 10.5 12Z\";\nexport var mdiPowerSocketJp = \"M10 9.5V14.5H8V9.5M19.78 2C21 2 22 3 22 4.22V19.78C22 21 21 22 19.78 22H4.22C3 22 2 21 2 19.78V4.22C2 3 3 2 4.22 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M16 9.5V14.5H14V9.5Z\";\nexport var mdiPowerSocketUk = \"M4 2A2 2 0 0 0 2 4V20A2 2 0 0 0 4 22H20A2 2 0 0 0 22 20V4A2 2 0 0 0 20 2H4M4 4H20V20H4V4M11 7V11H13V7H11M6 14.75V17H9.5V14.75H6M14.5 14.75V17H18V14.75H14.5Z\";\nexport var mdiPowerSocketUs = \"M8,7H10V12H8V7M4.22,2H19.78C21,2 22,3 22,4.22V19.78A2.22,2.22 0 0,1 19.78,22H4.22C3,22 2,21 2,19.78V4.22A2.22,2.22 0 0,1 4.22,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M14,7.5H16V11.5H14V7.5M10.5,16.25A1.5,1.5 0 0,1 12,14.75A1.5,1.5 0 0,1 13.5,16.25V17H10.5V16.25Z\";\nexport var mdiPowerStandby = \"M13,3H11V13H13V3M17.83,5.17L16.41,6.59C18.05,7.91 19,9.9 19,12A7,7 0 0,1 12,19C8.14,19 5,15.88 5,12C5,9.91 5.95,7.91 7.58,6.58L6.17,5.17C2.38,8.39 1.92,14.07 5.14,17.86C8.36,21.64 14.04,22.1 17.83,18.88C19.85,17.17 21,14.65 21,12C21,9.37 19.84,6.87 17.83,5.17Z\";\nexport var mdiPowershell = \"M21.83,4C22.32,4 22.63,4.4 22.5,4.89L19.34,19.11C19.23,19.6 18.75,20 18.26,20H2.17C1.68,20 1.37,19.6 1.5,19.11L4.66,4.89C4.77,4.4 5.25,4 5.74,4H21.83M15.83,16H11.83C11.37,16 11,16.38 11,16.84C11,17.31 11.37,17.69 11.83,17.69H15.83C16.3,17.69 16.68,17.31 16.68,16.84C16.68,16.38 16.3,16 15.83,16M5.78,16.28C5.38,16.56 5.29,17.11 5.57,17.5C5.85,17.92 6.41,18 6.81,17.73C14.16,12.56 14.21,12.5 14.26,12.47C14.44,12.31 14.53,12.09 14.54,11.87C14.55,11.67 14.5,11.5 14.38,11.31L9.46,6.03C9.13,5.67 8.57,5.65 8.21,6C7.85,6.32 7.83,6.88 8.16,7.24L12.31,11.68L5.78,16.28Z\";\nexport var mdiPrescription = \"M4,4V10L4,14H6V10H8L13.41,15.41L9.83,19L11.24,20.41L14.83,16.83L18.41,20.41L19.82,19L16.24,15.41L19.82,11.83L18.41,10.41L14.83,14L10.83,10H11A3,3 0 0,0 14,7A3,3 0 0,0 11,4H4M6,6H11A1,1 0 0,1 12,7A1,1 0 0,1 11,8H6V6Z\";\nexport var mdiPresentation = \"M2,3H10A2,2 0 0,1 12,1A2,2 0 0,1 14,3H22V5H21V16H15.25L17,22H15L13.25,16H10.75L9,22H7L8.75,16H3V5H2V3M5,5V14H19V5H5Z\";\nexport var mdiPresentationPlay = \"M2,3H10A2,2 0 0,1 12,1A2,2 0 0,1 14,3H22V5H21V16H15.25L17,22H15L13.25,16H10.75L9,22H7L8.75,16H3V5H2V3M5,5V14H19V5H5M11.85,11.85C11.76,11.94 11.64,12 11.5,12A0.5,0.5 0 0,1 11,11.5V7.5A0.5,0.5 0 0,1 11.5,7C11.64,7 11.76,7.06 11.85,7.15L13.25,8.54C13.57,8.86 13.89,9.18 13.89,9.5C13.89,9.82 13.57,10.14 13.25,10.46L11.85,11.85Z\";\nexport var mdiPretzel = \"M5.15 15.84C3.81 14.27 3 12.23 3 10V9.97C3 7.22 5.25 5 8 5C9.64 5 11.09 5.79 12 7C12.91 5.79 14.37 5 16 5C18.76 5 21 7.24 21 10C21 12.23 20.19 14.27 18.85 15.84L20.21 17.2L18.79 18.61L17.39 17.21C15.89 18.33 14 19 12 19C10 19 8.11 18.33 6.61 17.21L5.21 18.61L3.79 17.2L5.15 15.84M15.96 15.77L12 11.82L8.04 15.77C9.17 16.55 10.53 17 12 17C13.47 17 14.83 16.55 15.96 15.77M11 10C11 8.34 9.65 7 8 7C6.34 7 5 8.34 5 10C5 11.68 5.59 13.21 6.57 14.42L11 10M17.43 14.42C18.41 13.21 19 11.68 19 10V10C19 8.33 17.65 7 16 7C14.35 7 13 8.34 13 10L17.43 14.42Z\";\nexport var mdiPrinter = \"M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z\";\nexport var mdiPrinter3d = \"M19,6A1,1 0 0,0 20,5A1,1 0 0,0 19,4A1,1 0 0,0 18,5A1,1 0 0,0 19,6M19,2A3,3 0 0,1 22,5V11H18V7H6V11H2V5A3,3 0 0,1 5,2H19M18,18.25C18,18.63 17.79,18.96 17.47,19.13L12.57,21.82C12.4,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L6.53,19.13C6.21,18.96 6,18.63 6,18.25V13C6,12.62 6.21,12.29 6.53,12.12L11.43,9.68C11.59,9.56 11.79,9.5 12,9.5C12.21,9.5 12.4,9.56 12.57,9.68L17.47,12.12C17.79,12.29 18,12.62 18,13V18.25M12,11.65L9.04,13L12,14.6L14.96,13L12,11.65M8,17.66L11,19.29V16.33L8,14.71V17.66M16,17.66V14.71L13,16.33V19.29L16,17.66Z\";\nexport var mdiPrinter3dNozzle = \"M7,2H17V8H19V13H16.5L13,17H11L7.5,13H5V8H7V2M10,22H2V20H10A1,1 0 0,0 11,19V18H13V19A3,3 0 0,1 10,22Z\";\nexport var mdiPrinter3dNozzleAlert = \"M7 2H17V8H19V13H16.5L13 17H11L7.5 13H5V8H7V2M10 22H2V20H10C10.6 20 11 19.5 11 19V18H13V19C13 20.7 11.7 22 10 22M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiPrinter3dNozzleAlertOutline = \"M7 2H17V7H19V13H16.5L13 17H11L7.5 13H5V7H7V2M10 22H2V20H10C10.6 20 11 19.5 11 19V18H13V19C13 20.7 11.7 22 10 22M7 9V11H8.5L12 15L15.5 11H17V9H15V4H9V9H7M21 13V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiPrinter3dNozzleHeat = \"M4 2H14V7H16V13H13.5L10 17H8L4.5 13H2V7H4V2M23 14.5L21.6 16.7L23 18.9L21 22L19.2 21.1L20.7 18.9L19.2 16.7L21.2 13.6L23 14.5M18.7 14.5L17.2 16.7L18.7 18.9L16.7 22L14.9 21.1L16.3 18.9L14.9 16.7L16.9 13.6L18.7 14.5\";\nexport var mdiPrinter3dNozzleHeatOutline = \"M23 14.5L21.6 16.7L23 18.9L21 22L19.2 21.1L20.7 18.9L19.2 16.7L21.2 13.6L23 14.5M18.7 14.5L17.2 16.7L18.7 18.9L16.7 22L14.9 21.1L16.3 18.9L14.9 16.7L16.9 13.6L18.7 14.5M4 2H14V7H16V13H13.5L10 17H8L4.5 13H2V7H4V2M4 9V11H5.5L9 15L12.5 11H14V9H12V4H6V9H4Z\";\nexport var mdiPrinter3dNozzleOff = \"M20.8 22.7L14 15.9L13 17H11L7.5 13H5V8H6.1L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M11 19C11 19.6 10.6 20 10 20H2V22H10C11.7 22 13 20.7 13 19V18H11V19M19 13V8H17V2H7V3.8L16.2 13H19Z\";\nexport var mdiPrinter3dNozzleOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L5.1 7H5V13H7.5L11 17H13L14 15.9L20.9 22.8L22.1 21.5M12 15L8.5 11H7V9H7.1L12.5 14.4L12 15M11 18H13V19C13 20.7 11.7 22 10 22H2V20H10C10.6 20 11 19.6 11 19V18M9 5.8L7 3.8V2H17V7H19V13H16.2L14.9 11.7L15.5 11H17V9H15V4H9V5.8Z\";\nexport var mdiPrinter3dNozzleOutline = \"M7,2H17V7H19V13H16.5L13,17H11L7.5,13H5V7H7V2M10,22H2V20H10A1,1 0 0,0 11,19V18H13V19A3,3 0 0,1 10,22M7,9V11H8.5L12,15L15.5,11H17V9H15V4H9V9H7Z\";\nexport var mdiPrinter3dOff = \"M2.3 2L1 3.3L2.1 4.4C2 4.6 2 4.8 2 5V11H6V8.3L8.7 11L6.5 12.1C6.2 12.3 6 12.6 6 13V18.2C6 18.6 6.2 18.9 6.5 19.1L11.4 21.8C11.6 21.9 11.8 22 12 22S12.4 21.9 12.6 21.8L17.1 19.3L20.8 23L22.1 21.7L2.3 2M4.9 2H4.8L9.8 7H18V11H22V5C22 3.3 20.7 2 19 2H4.9C5 2 5 2 4.9 2M19 4C19.6 4 20 4.4 20 5S19.6 6 19 6 18 5.6 18 5 18.4 4 19 4M12.4 9.6L18 15.2V13C18 12.6 17.8 12.3 17.5 12.1L12.6 9.7C12.5 9.7 12.5 9.6 12.4 9.6M10.2 12.5L12.2 14.5L12 14.6L9 13L10.2 12.5M8 14.7L11 16.3V19.3L8 17.7V14.7M13.7 16L15.6 17.9L13 19.3V16.3L13.7 16Z\";\nexport var mdiPrinterAlert = \"M16 3H4V7H16M17 12C16.4 12 16 11.6 16 11S16.4 10 17 10 18 10.4 18 11 17.6 12 17 12M14 19H6V14H14M17 8H3C1.3 8 0 9.3 0 11V17H4V21H16V17H20V11C20 9.3 18.7 8 17 8M24 13H22V7H24V13M24 17H22V15H24V17Z\";\nexport var mdiPrinterCheck = \"M18 7H6V3H18V7M6 21V17H2V11C2 9.34 3.34 8 5 8H19C20.66 8 22 9.34 22 11V13.81C21.12 13.3 20.1 13 19 13C17.77 13 16.64 13.37 15.69 14H8V19H13C13 19.7 13.13 20.37 13.35 21H6M18 11C18 11.55 18.45 12 19 12S20 11.55 20 11 19.55 10 19 10 18 10.45 18 11M23.5 17L22 15.5L18.5 19L16.5 17L15 18.5L18.5 22L23.5 17\";\nexport var mdiPrinterEye = \"M9.8 21C9.6 20.6 9.3 20.2 9.2 19.7L8.8 19H8V14H13C14.2 13.4 15.6 13 17 13C18.9 13 20.6 13.6 22 14.6V11C22 9.3 20.7 8 19 8H5C3.3 8 2 9.3 2 11V17H6V21H9.8M19 10C19.6 10 20 10.4 20 11S19.6 12 19 12 18 11.6 18 11 18.4 10 19 10M18 7H6V3H18V7M17 18C17.6 18 18 18.4 18 19S17.6 20 17 20 16 19.6 16 19 16.4 18 17 18M17 15C14.3 15 11.9 16.7 11 19C11.9 21.3 14.3 23 17 23S22.1 21.3 23 19C22.1 16.7 19.7 15 17 15M17 21.5C15.6 21.5 14.5 20.4 14.5 19S15.6 16.5 17 16.5 19.5 17.6 19.5 19 18.4 21.5 17 21.5Z\";\nexport var mdiPrinterOff = \"M6,3V4.18L8.82,7H18V3H6M2.28,3L1,4.27L4.75,8C3.19,8.15 2,9.44 2,11V17H6V21H17.73L19.73,23L21,21.72L2.28,3M9.82,8L18.82,17H22V11A3,3 0 0,0 19,8H9.82M19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10M8,14H10.73L15.73,19H8V14Z\";\nexport var mdiPrinterOffOutline = \"M1.41 1.6L22.36 22.55L20.95 23.96L18 21H6V17H2V11C2 9.34 3.34 8 5 8L0 3L1.41 1.6M6 15V13H10L7 10H5C4.45 10 4 10.45 4 11V15H6M8 19H16L12 15H8V19M8 5V5.36L6 3.36V3H18V8H19C20.66 8 22 9.34 22 11V17H19.66L15.66 13H18V15L20 15V11C20 10.45 19.55 10 19 10H12.66L10.66 8H16V5H8M19 11.5C19 12.06 18.55 12.5 18 12.5C17.45 12.5 17 12.06 17 11.5C17 10.96 17.45 10.5 18 10.5C18.55 10.5 19 10.96 19 11.5Z\";\nexport var mdiPrinterOutline = \"M19 8C20.66 8 22 9.34 22 11V17H18V21H6V17H2V11C2 9.34 3.34 8 5 8H6V3H18V8H19M8 5V8H16V5H8M16 19V15H8V19H16M18 15H20V11C20 10.45 19.55 10 19 10H5C4.45 10 4 10.45 4 11V15H6V13H18V15M19 11.5C19 12.05 18.55 12.5 18 12.5C17.45 12.5 17 12.05 17 11.5C17 10.95 17.45 10.5 18 10.5C18.55 10.5 19 10.95 19 11.5Z\";\nexport var mdiPrinterPos = \"M18 10H6A2 2 0 0 0 4 12V19H20V12A2 2 0 0 0 18 10M18 14H14V12H18M17 9H7V4H17Z\";\nexport var mdiPrinterPosAlert = \"M16 10H4C2.9 10 2 10.9 2 12V19H18V12C18 10.9 17.11 10 16 10M16 14H12V12H16V14M15 9H5V4H15V9M22 7V13H20V7H22M20 15H22V17H20V15Z\";\nexport var mdiPrinterPosAlertOutline = \"M15 15H11V13H15V15M18 12V19H2V12C2 10.9 2.9 10 4 10H5V4H15V10H16C17.11 10 18 10.9 18 12M7 10H13V6H7V10M16 12H4V17H16V12M20 17H22V15H20V17M20 7V13H22V7H20Z\";\nexport var mdiPrinterPosCancel = \"M17 9H7V4H17V9M12 18.5C12 18.67 12 18.83 12.03 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V12.18C19.5 12.07 19 12 18.5 12C14.91 12 12 14.91 12 18.5M10 12H6V14H10V12M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiPrinterPosCancelOutline = \"M18.5 14C16 14 14 16 14 18.5S16 23 18.5 23 23 21 23 18.5 21 14 18.5 14M18.5 21.5C16.84 21.5 15.5 20.16 15.5 18.5C15.5 17.94 15.65 17.42 15.92 17L20 21.08C19.58 21.35 19.06 21.5 18.5 21.5M21.08 20L17 15.92C17.42 15.65 17.94 15.5 18.5 15.5C20.16 15.5 21.5 16.84 21.5 18.5C21.5 19.06 21.35 19.58 21.08 20M7 15V13H11V15H7M6 17V12H20C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H12.03C12 18.83 12 18.67 12 18.5C12 18 12.07 17.5 12.18 17H6M9 6H15V10H9V6Z\";\nexport var mdiPrinterPosCheck = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiPrinterPosCheckOutline = \"M7 15V13H11V15H7M6 17H13.35C13.13 17.63 13 18.3 13 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V12H6V17M9 10H15V6H9V10M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiPrinterPosCog = \"M17 9H7V4H17V9M19 12C15.13 12 12 15.13 12 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V12.08C19.67 12.03 19.34 12 19 12M10 12H6V14H10V12M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiPrinterPosCogOutline = \"M22.7 19.6V18.6L23.8 17.8C23.9 17.7 24 17.6 23.9 17.5L22.9 15.8C22.9 15.7 22.7 15.7 22.6 15.7L21.4 16.2C21.1 16 20.8 15.8 20.5 15.7L20.3 14.4C20.3 14.3 20.2 14.2 20.1 14.2H18.1C17.9 14.2 17.8 14.3 17.8 14.4L17.6 15.7C17.3 15.9 17.1 16 16.8 16.2L15.6 15.7C15.5 15.7 15.4 15.7 15.3 15.8L14.3 17.5C14.3 17.6 14.3 17.7 14.4 17.8L15.5 18.6V19.6L14.4 20.4C14.3 20.5 14.2 20.6 14.3 20.7L15.3 22.4C15.4 22.5 15.5 22.5 15.6 22.5L16.8 22C17 22.2 17.3 22.4 17.6 22.5L17.8 23.8C17.9 23.9 18 24 18.1 24H20.1C20.2 24 20.3 23.9 20.3 23.8L20.5 22.5C20.8 22.3 21 22.2 21.3 22L22.5 22.4C22.6 22.4 22.7 22.4 22.8 22.3L23.8 20.6C23.9 20.5 23.9 20.4 23.8 20.4L22.7 19.6M19 20.5C18.2 20.5 17.5 19.8 17.5 19S18.2 17.5 19 17.5 20.5 18.2 20.5 19 19.8 20.5 19 20.5M7 15V13H11V15H7M6 12H20C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H12C12 18.31 12.11 17.63 12.29 17H6V12M9 6H15V10H9V6Z\";\nexport var mdiPrinterPosEdit = \"M17 9H7V4H17V9M19.39 10.74L11.13 19H4V12C4 10.9 4.89 10 6 10H18C18.59 10 19.11 10.26 19.5 10.67C19.45 10.69 19.42 10.71 19.39 10.74M10 12H6V14H10V12M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiPrinterPosEditOutline = \"M6 17V12H18.13L19.39 10.74C19.42 10.71 19.45 10.69 19.5 10.67C19.11 10.26 18.59 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H11.13L13.13 17H6M9 6H15V10H9V6M7 15V13H11V15H7M22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15C21 11.95 21.33 11.95 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19M19.13 13.83L21.17 15.87L15.04 22H13V19.96L19.13 13.83Z\";\nexport var mdiPrinterPosMinus = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M15 18V20H23V18H15Z\";\nexport var mdiPrinterPosMinusOutline = \"M6 12H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V12C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H13C13 18.3 13.13 17.63 13.35 17H6V12M9 6H15V10H9V6M7 15V13H11V15H7M23 18V20H15V18H23Z\";\nexport var mdiPrinterPosNetwork = \"M17 7H7V2H17V7M22 20V22H15C15 22.55 14.55 23 14 23H10C9.45 23 9 22.55 9 22H2V20H9C9 19.45 9.45 19 10 19H11V17H4V10C4 8.9 4.89 8 6 8H18C19.11 8 20 8.9 20 10V17H13V19H14C14.55 19 15 19.45 15 20H22M18 10H14V12H18V10Z\";\nexport var mdiPrinterPosNetworkOutline = \"M13 11H17V13H13V11M22 20V22H15C15 22.55 14.55 23 14 23H10C9.45 23 9 22.55 9 22H2V20H9C9 19.45 9.45 19 10 19H11V17H4V10C4 8.9 4.89 8 6 8H7V2H17V8H18C19.11 8 20 8.9 20 10V17H13V19H14C14.55 19 15 19.45 15 20H22M9 8H15V4H9V8M18 15V10H6V15H18Z\";\nexport var mdiPrinterPosOff = \"M12.2 9L7.2 4H17V9H12.2M20 16.8V12C20 10.9 19.11 10 18 10H13.2L20 16.8M22.11 21.46L20.84 22.73L17.11 19H4V12C4 10.9 4.89 10 6 10H8.11L1.11 3L2.39 1.73L22.11 21.46M10 12H6V14H10V12Z\";\nexport var mdiPrinterPosOffOutline = \"M2.39 1.73L1.11 3L7 8.89V10H6C4.89 10 4 10.9 4 12V19H17.11L20.84 22.73L22.11 21.46L2.39 1.73M6 17V12H10.11L15.11 17H6M9.2 6L7.2 4H17V10H18C19.11 10 20 10.9 20 12V16.8L18 14.8V12H15.2L13.2 10H15V6H9.2M7 13H11V15H7V13Z\";\nexport var mdiPrinterPosOutline = \"M18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H20V12C20 10.9 19.11 10 18 10M9 6H15V10H9V6M18 17H6V12H18V17M17 15H13V13H17V15Z\";\nexport var mdiPrinterPosPause = \"M17 9H7V4H17V9M20 13.09C19.67 13.04 19.34 13 19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09M10 12H6V14H10V12M16 22H18V16H16V22M20 16V22H22V16H20Z\";\nexport var mdiPrinterPosPauseOutline = \"M20 12C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H13C13 18.3 13.13 17.63 13.35 17H6V12H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V12M15 10H9V6H15V10M7 15V13H11V15H7M16 16H18V22H16V16M22 16V22H20V16H22Z\";\nexport var mdiPrinterPosPlay = \"M20 13.09V12C20 10.9 19.11 10 18 10H6C4.89 10 4 10.9 4 12V19H13C13 15.69 15.69 13 19 13C19.34 13 19.67 13.04 20 13.09M10 14H6V12H10V14M17 9H7V4H17V9M22 19L17 22V16L22 19Z\";\nexport var mdiPrinterPosPlayOutline = \"M7 15V13H11V15H7M6 17H13.35C13.13 17.63 13 18.3 13 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V12H6V17M9 10H15V6H9V10M17 16V22L22 19L17 16Z\";\nexport var mdiPrinterPosPlus = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiPrinterPosPlusOutline = \"M6 12H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V12C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H13C13 18.3 13.13 17.63 13.35 17H6V12M9 6H15V10H9V6M7 15V13H11V15H7M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiPrinterPosRefresh = \"M17 9H7V4H17V9M12 18.5C12 18.67 12 18.83 12.03 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V12.18C19.5 12.07 19 12 18.5 12C14.91 12 12 14.91 12 18.5M10 12H6V14H10V12M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiPrinterPosRefreshOutline = \"M7 15V13H11V15H7M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22M12.18 17C12.07 17.5 12 18 12 18.5C12 18.67 12 18.83 12.03 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C19.11 10 20 10.9 20 12H6V17H12.18M9 10H15V6H9V10Z\";\nexport var mdiPrinterPosRemove = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiPrinterPosRemoveOutline = \"M7 15V13H11V15H7M6 17H13.35C13.13 17.63 13 18.3 13 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13C18.66 13 18.33 13.04 18 13.09V12H6V17M9 10H15V6H9V10M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiPrinterPosStar = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiPrinterPosStarOutline = \"M6 12H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V12C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H13C13 18.3 13.13 17.63 13.35 17H6V12M9 6H15V10H9V6M7 15V13H11V15H7M20.8 19.77L21.45 22.58L19 21.09L16.5 22.58L17.18 19.77L15 17.89L17.87 17.64L19 15L20.11 17.64L23 17.89L20.8 19.77Z\";\nexport var mdiPrinterPosStop = \"M17 9H7V4H17V9M19 13C15.69 13 13 15.69 13 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.09C19.67 13.04 19.34 13 19 13M10 12H6V14H10V12M16 16V22H22V16H16Z\";\nexport var mdiPrinterPosStopOutline = \"M6 12H18V13.09C18.33 13.04 18.66 13 19 13C19.34 13 19.67 13.04 20 13.09V12C20 10.9 19.11 10 18 10H17V4H7V10H6C4.89 10 4 10.9 4 12V19H13C13 18.3 13.13 17.63 13.35 17H6V12M9 6H15V10H9V6M7 15V13H11V15H7M22 16V22H16V16H22Z\";\nexport var mdiPrinterPosSync = \"M17 9H7V4H17V9M13 17.5C13 18 13.07 18.5 13.18 19H4V12C4 10.9 4.89 10 6 10H18C18.74 10 19.38 10.41 19.73 11C19.65 11 19.58 11 19.5 11C15.91 11 13 13.91 13 17.5M10 12H6V14H10V12M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiPrinterPosSyncOutline = \"M7 15V13H11V15H7M13 17.5C13 18 13.07 18.5 13.18 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C18.74 10 19.38 10.41 19.73 11C19.65 11 19.58 11 19.5 11C18.23 11 17.05 11.37 16.05 12H6V17H13.03C13 17.17 13 17.33 13 17.5M9 10H15V6H9V10M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiPrinterPosWrench = \"M17 9H7V4H17V9M11 16C11 17.13 11.39 18.16 12 19H4V12C4 10.9 4.89 10 6 10H18C19.11 10 20 10.9 20 12V13.03C19.09 11.8 17.64 11 16 11C13.24 11 11 13.24 11 16M10 12H6V14H10V12M22.87 21.19L18.76 17.08C19.17 16.04 18.94 14.82 18.08 13.97C17.18 13.06 15.83 12.88 14.74 13.38L16.68 15.32L15.33 16.68L13.34 14.73C12.8 15.82 13.05 17.17 13.93 18.08C14.79 18.94 16 19.16 17.05 18.76L21.16 22.86C21.34 23.05 21.61 23.05 21.79 22.86L22.83 21.83C23.05 21.65 23.05 21.33 22.87 21.19Z\";\nexport var mdiPrinterPosWrenchOutline = \"M7 15V13H11V15H7M13.03 12H6V17H11.1C11.25 17.74 11.58 18.42 12 19H4V12C4 10.9 4.89 10 6 10H7V4H17V10H18C19.11 10 20 10.9 20 12V13.03C19.09 11.8 17.64 11 16 11C14.88 11 13.86 11.38 13.03 12M9 10H15V6H9V10M22.87 21.19L18.76 17.08C19.17 16.04 18.94 14.82 18.08 13.97C17.18 13.06 15.83 12.88 14.74 13.38L16.68 15.32L15.33 16.68L13.34 14.73C12.8 15.82 13.05 17.17 13.93 18.08C14.79 18.94 16 19.16 17.05 18.76L21.16 22.86C21.34 23.05 21.61 23.05 21.79 22.86L22.83 21.83C23.05 21.65 23.05 21.33 22.87 21.19Z\";\nexport var mdiPrinterSearch = \"M20.3 18.9C20.7 18.2 21 17.4 21 16.5C21 14 19 12 16.5 12S12 14 12 16.5 14 21 16.5 21C17.4 21 18.2 20.8 18.9 20.3L22 23.4L23.4 22L20.3 18.9M16.5 19C15.1 19 14 17.9 14 16.5S15.1 14 16.5 14 19 15.1 19 16.5 17.9 19 16.5 19M18 7H6V3H18V7M6 21V17H2V11C2 9.3 3.3 8 5 8H19C20.7 8 22 9.3 22 11V13C20.8 11.2 18.8 10 16.5 10C13.8 10 11.5 11.7 10.5 14H8V19H10.5C10.8 19.7 11.3 20.4 11.8 21H6Z\";\nexport var mdiPrinterSettings = \"M18,2V6H6V2H18M19,11A1,1 0 0,0 20,10A1,1 0 0,0 19,9A1,1 0 0,0 18,10A1,1 0 0,0 19,11M16,18V13H8V18H16M19,7A3,3 0 0,1 22,10V16H18V20H6V16H2V10A3,3 0 0,1 5,7H19M15,24V22H17V24H15M11,24V22H13V24H11M7,24V22H9V24H7Z\";\nexport var mdiPrinterWireless = \"M4.93,3.92L6.34,5.33C9.46,2.2 14.53,2.2 17.66,5.33L19.07,3.92C15.17,0 8.84,0 4.93,3.92M7.76,6.75L9.17,8.16C10.73,6.6 13.26,6.6 14.83,8.16L16.24,6.75C13.9,4.41 10.1,4.41 7.76,6.75M19,14A1,1 0 0,1 18,13A1,1 0 0,1 19,12A1,1 0 0,1 20,13A1,1 0 0,1 19,14M16,20H8V15H16V20M19,10H5A3,3 0 0,0 2,13V18H6V22H18V18H22V13A3,3 0 0,0 19,10Z\";\nexport var mdiPriorityHigh = \"M14,19H22V17H14V19M14,13.5H22V11.5H14V13.5M14,8H22V6H14V8M2,12.5C2,8.92 4.92,6 8.5,6H9V4L12,7L9,10V8H8.5C6,8 4,10 4,12.5C4,15 6,17 8.5,17H12V19H8.5C4.92,19 2,16.08 2,12.5Z\";\nexport var mdiPriorityLow = \"M14,5H22V7H14V5M14,10.5H22V12.5H14V10.5M14,16H22V18H14V16M2,11.5C2,15.08 4.92,18 8.5,18H9V20L12,17L9,14V16H8.5C6,16 4,14 4,11.5C4,9 6,7 8.5,7H12V5H8.5C4.92,5 2,7.92 2,11.5Z\";\nexport var mdiProfessionalHexagon = \"M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M5,9V15H6.25V13H7A2,2 0 0,0 9,11A2,2 0 0,0 7,9H5M6.25,12V10H6.75A1,1 0 0,1 7.75,11A1,1 0 0,1 6.75,12H6.25M9.75,9V15H11V13H11.75L12.41,15H13.73L12.94,12.61C13.43,12.25 13.75,11.66 13.75,11A2,2 0 0,0 11.75,9H9.75M11,12V10H11.5A1,1 0 0,1 12.5,11A1,1 0 0,1 11.5,12H11M17,9C15.62,9 14.5,10.34 14.5,12C14.5,13.66 15.62,15 17,15C18.38,15 19.5,13.66 19.5,12C19.5,10.34 18.38,9 17,9M17,10.25C17.76,10.25 18.38,11.03 18.38,12C18.38,12.97 17.76,13.75 17,13.75C16.24,13.75 15.63,12.97 15.63,12C15.63,11.03 16.24,10.25 17,10.25Z\";\nexport var mdiProgressAlert = \"M13,2V4C17.39,4.54 20.5,8.53 19.96,12.92C19.5,16.56 16.64,19.43 13,19.88V21.88C18.5,21.28 22.45,16.34 21.85,10.85C21.33,6.19 17.66,2.5 13,2M11,2C9.04,2.18 7.19,2.95 5.67,4.2L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.24,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.06,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37H7.06M13,13V7H11V13H13M13,17V15H11V17H13Z\";\nexport var mdiProgressCheck = \"M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M15.5,8.5L10.62,13.38L8.5,11.26L7.44,12.32L10.62,15.5L16.56,9.56L15.5,8.5M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37Z\";\nexport var mdiProgressClock = \"M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\";\nexport var mdiProgressClose = \"M13 2.03V4.05C17.39 4.59 20.5 8.58 19.96 12.97C19.5 16.61 16.64 19.5 13 19.93V21.93C18.5 21.38 22.5 16.5 21.95 11C21.5 6.25 17.73 2.5 13 2.03M11 2.06C9.05 2.25 7.19 3 5.67 4.26L7.1 5.74C8.22 4.84 9.57 4.26 11 4.06V2.06M4.26 5.67C3 7.19 2.25 9.04 2.05 11H4.05C4.24 9.58 4.8 8.23 5.69 7.1L4.26 5.67M2.06 13C2.26 14.96 3.03 16.81 4.27 18.33L5.69 16.9C4.81 15.77 4.24 14.42 4.06 13H2.06M7.1 18.37L5.67 19.74C7.18 21 9.04 21.79 11 22V20C9.58 19.82 8.23 19.25 7.1 18.37M14.59 8L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41L14.59 8Z\";\nexport var mdiProgressDownload = \"M13,2.03C17.73,2.5 21.5,6.25 21.95,11C22.5,16.5 18.5,21.38 13,21.93V19.93C16.64,19.5 19.5,16.61 19.96,12.97C20.5,8.58 17.39,4.59 13,4.05V2.05L13,2.03M11,2.06V4.06C9.57,4.26 8.22,4.84 7.1,5.74L5.67,4.26C7.19,3 9.05,2.25 11,2.06M4.26,5.67L5.69,7.1C4.8,8.23 4.24,9.58 4.05,11H2.05C2.25,9.04 3,7.19 4.26,5.67M2.06,13H4.06C4.24,14.42 4.81,15.77 5.69,16.9L4.27,18.33C3.03,16.81 2.26,14.96 2.06,13M7.1,18.37C8.23,19.25 9.58,19.82 11,20V22C9.04,21.79 7.18,21 5.67,19.74L7.1,18.37M12,16.5L7.5,12H11V8H13V12H16.5L12,16.5Z\";\nexport var mdiProgressHelper = \"M13 2V4C17.39 4.54 20.5 8.53 19.96 12.92C19.5 16.56 16.64 19.43 13 19.88V21.88C18.5 21.28 22.45 16.34 21.85 10.85C21.33 6.19 17.66 2.5 13 2M11 2C9.04 2.18 7.19 2.95 5.67 4.2L7.1 5.74C8.22 4.84 9.57 4.26 11 4.06V2M4.26 5.67C3 7.19 2.24 9.04 2.05 11H4.05C4.24 9.58 4.8 8.23 5.69 7.1L4.26 5.67M2.06 13C2.26 14.96 3.03 16.81 4.27 18.33L5.69 16.9C4.81 15.77 4.24 14.42 4.06 13H2.06M7.06 18.37L5.67 19.74C7.18 21 9.04 21.79 11 22V20C9.58 19.82 8.23 19.25 7.1 18.37H7.06Z\";\nexport var mdiProgressPencil = \"M15.84 10.2L14.83 11.21L12.76 9.18L13.77 8.16C13.97 7.95 14.31 7.94 14.55 8.16L15.84 9.41C16.05 9.62 16.06 9.96 15.84 10.2M8 13.91L12.17 9.72L14.24 11.8L10.08 16H8V13.91M13 2V4C17.39 4.54 20.5 8.53 19.96 12.92C19.5 16.56 16.64 19.43 13 19.88V21.88C18.5 21.28 22.45 16.34 21.85 10.85C21.33 6.19 17.66 2.5 13 2M11 2C9.04 2.18 7.19 2.95 5.67 4.2L7.1 5.74C8.22 4.84 9.57 4.26 11 4.06V2.06M4.26 5.67C3 7.19 2.24 9.04 2.05 11H4.05C4.24 9.58 4.8 8.23 5.69 7.1L4.26 5.67M2.06 13C2.26 14.96 3.03 16.81 4.27 18.33L5.69 16.9C4.81 15.77 4.24 14.42 4.06 13H2.06M7.06 18.37L5.67 19.74C7.18 21 9.04 21.79 11 22V20C9.58 19.82 8.23 19.25 7.1 18.37H7.06Z\";\nexport var mdiProgressQuestion = \"M13 18H11V16H13V18M13 15H11C11 11.75 14 12 14 10C14 8.9 13.1 8 12 8C10.9 8 10 8.9 10 10H8C8 7.79 9.79 6 12 6C14.21 6 16 7.79 16 10C16 12.5 13 12.75 13 15M22 12C22 17.18 18.05 21.45 13 21.95V19.94C16.95 19.45 20 16.08 20 12C20 7.92 16.95 4.55 13 4.06V2.05C18.05 2.55 22 6.82 22 12M11 2.05V4.06C9.54 4.24 8.2 4.82 7.09 5.68L5.67 4.26C7.15 3.05 9 2.25 11 2.05M4.06 11H2.05C2.25 9 3.05 7.15 4.26 5.67L5.68 7.1C4.82 8.2 4.24 9.54 4.06 11M11 19.94V21.95C9 21.75 7.15 20.96 5.67 19.74L7.09 18.32C8.2 19.18 9.54 19.76 11 19.94M2.05 13H4.06C4.24 14.46 4.82 15.8 5.68 16.91L4.26 18.33C3.05 16.85 2.25 15 2.05 13Z\";\nexport var mdiProgressStar = \"M13 2V4C17.39 4.54 20.5 8.53 19.96 12.92C19.5 16.56 16.64 19.43 13 19.88V21.88C18.5 21.28 22.45 16.34 21.85 10.85C21.33 6.19 17.66 2.5 13 2M11 2C9.04 2.18 7.19 2.95 5.67 4.2L7.1 5.74C8.22 4.84 9.57 4.26 11 4.06V2.06M4.26 5.67C3 7.19 2.24 9.04 2.05 11H4.05C4.24 9.58 4.8 8.23 5.69 7.1L4.26 5.67M2.06 13C2.26 14.96 3.03 16.81 4.27 18.33L5.69 16.9C4.81 15.77 4.24 14.42 4.06 13H2.06M7.06 18.37L5.67 19.74C7.18 21 9.04 21.79 11 22V20C9.58 19.82 8.23 19.25 7.1 18.37H7.06M8.58 16.8L9.5 12.91L6.5 10.33L10.45 9.96L12 6.35L13.55 10L17.5 10.33L14.5 12.91L15.42 16.8L12 14.74L8.58 16.8\";\nexport var mdiProgressStarFourPoints = \"M13 4V2C17.66 2.5 21.33 6.19 21.85 10.85C22.45 16.34 18.5 21.28 13 21.88V19.88C16.64 19.43 19.5 16.56 19.96 12.92C20.5 8.53 17.39 4.54 13 4M5.67 4.2C7.19 2.95 9.04 2.18 11 2V4.06C9.57 4.26 8.22 4.84 7.1 5.74L5.67 4.2M2.05 11C2.24 9.04 3 7.19 4.26 5.67L5.69 7.1C4.8 8.23 4.24 9.58 4.05 11H2.05M4.27 18.33C3.03 16.81 2.26 14.96 2.06 13H4.06C4.24 14.42 4.81 15.77 5.69 16.9L4.27 18.33M5.67 19.74L7.06 18.37H7.1C8.23 19.25 9.58 19.82 11 20V22C9.04 21.79 7.18 21 5.67 19.74M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17Z\";\nexport var mdiProgressTag = \"M13 4V2C17.66 2.5 21.33 6.19 21.85 10.85C22.45 16.34 18.5 21.28 13 21.88V19.88C16.64 19.43 19.5 16.56 19.96 12.92C20.5 8.53 17.39 4.54 13 4M5.67 4.2C7.19 2.95 9.04 2.18 11 2V4.06C9.57 4.26 8.22 4.84 7.1 5.74L5.67 4.2M2.05 11C2.24 9.04 3 7.19 4.26 5.67L5.69 7.1C4.8 8.23 4.24 9.58 4.05 11H2.05M4.27 18.33C3.03 16.81 2.26 14.96 2.06 13H4.06C4.24 14.42 4.81 15.77 5.69 16.9L4.27 18.33M5.67 19.74L7.06 18.37H7.1C8.23 19.25 9.58 19.82 11 20V22C9.04 21.79 7.18 21 5.67 19.74M11.6 8C11.8 8 12 8.1 12.2 8.2L15.8 11.8C15.9 12 16 12.2 16 12.4C16 12.7 15.9 12.9 15.8 13L13 15.8C12.8 15.9 12.6 16 12.4 16C12.1 16 11.9 15.9 11.8 15.8L8.2 12.2C8.1 12 8 11.8 8 11.6V8.8C8 8.4 8.4 8 8.8 8H11.6M8.8 9.4C8.8 9.7 9.1 10 9.4 10C9.7 10 10 9.7 10 9.4C10 9.1 9.7 8.8 9.4 8.8C9.1 8.8 8.8 9.1 8.8 9.4Z\";\nexport var mdiProgressUpload = \"M13,2.03C17.73,2.5 21.5,6.25 21.95,11C22.5,16.5 18.5,21.38 13,21.93V19.93C16.64,19.5 19.5,16.61 19.96,12.97C20.5,8.58 17.39,4.59 13,4.05V2.05L13,2.03M11,2.06V4.06C9.57,4.26 8.22,4.84 7.1,5.74L5.67,4.26C7.19,3 9.05,2.25 11,2.06M4.26,5.67L5.69,7.1C4.8,8.23 4.24,9.58 4.05,11H2.05C2.25,9.04 3,7.19 4.26,5.67M2.06,13H4.06C4.24,14.42 4.81,15.77 5.69,16.9L4.27,18.33C3.03,16.81 2.26,14.96 2.06,13M7.1,18.37C8.23,19.25 9.58,19.82 11,20V22C9.04,21.79 7.18,21 5.67,19.74L7.1,18.37M12,7.5L7.5,12H11V16H13V12H16.5L12,7.5Z\";\nexport var mdiProgressWrench = \"M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37M16.82,15.19L12.71,11.08C13.12,10.04 12.89,8.82 12.03,7.97C11.13,7.06 9.78,6.88 8.69,7.38L10.63,9.32L9.28,10.68L7.29,8.73C6.75,9.82 7,11.17 7.88,12.08C8.74,12.94 9.96,13.16 11,12.76L15.11,16.86C15.29,17.05 15.56,17.05 15.74,16.86L16.78,15.83C17,15.65 17,15.33 16.82,15.19Z\";\nexport var mdiProjector = \"M16,6C14.87,6 13.77,6.35 12.84,7H4C2.89,7 2,7.89 2,9V15C2,16.11 2.89,17 4,17H5V18A1,1 0 0,0 6,19H8A1,1 0 0,0 9,18V17H15V18A1,1 0 0,0 16,19H18A1,1 0 0,0 19,18V17H20C21.11,17 22,16.11 22,15V9C22,7.89 21.11,7 20,7H19.15C18.23,6.35 17.13,6 16,6M16,7.5A3.5,3.5 0 0,1 19.5,11A3.5,3.5 0 0,1 16,14.5A3.5,3.5 0 0,1 12.5,11A3.5,3.5 0 0,1 16,7.5M4,9H8V10H4V9M16,9A2,2 0 0,0 14,11A2,2 0 0,0 16,13A2,2 0 0,0 18,11A2,2 0 0,0 16,9M4,11H8V12H4V11M4,13H8V14H4V13Z\";\nexport var mdiProjectorOff = \"M16 9C14.97 9 14.1 9.79 14 10.82L16.18 13C18.72 12.76 18.55 9 16 9M15 14.35H15L18.95 18.31V18.3M7.64 7L12.65 12V12L7.65 7M20 7H19.15C17.26 5.67 14.73 5.67 12.84 7H10.19L12.8 9.61C13.78 7.34 16.73 6.78 18.5 8.53C20.22 10.27 19.66 13.22 17.39 14.2L20.18 17C21.21 16.9 22 16.04 22 15V9C22 7.9 21.1 7 20 7M16 9C14.97 9 14.1 9.79 14 10.82L16.18 13C18.72 12.76 18.55 9 16 9M16 9C14.97 9 14.1 9.79 14 10.82L16.18 13C18.72 12.76 18.55 9 16 9M22.25 21.61L2.53 1.89L1.26 3.16L5.1 7H4C2.9 7 2 7.9 2 9V15C2 16.11 2.9 17 4 17H5V18C5 18.55 5.45 19 6 19H8C8.55 19 9 18.55 9 18V17H15V18C15 18.55 15.45 19 16 19H17.1L21 22.89L22.26 21.61M8 14H4V13H8M8 12H4V11H8M8 10H4V9H7.1L8 9.9M2.54 1.89L7.64 7L2.53 1.89M7.65 7L12.65 12V12L7.64 7M18.95 18.3V18.31L15 14.35H15M7.64 7L2.53 1.89H2.54M12.65 12V12L7.64 7H7.65M18.95 18.3V18.31L15 14.35H15\";\nexport var mdiProjectorScreen = \"M4,2A1,1 0 0,0 3,3V4A1,1 0 0,0 4,5H5V14H11V16.59L6.79,20.79L8.21,22.21L11,19.41V22H13V19.41L15.79,22.21L17.21,20.79L13,16.59V14H19V5H20A1,1 0 0,0 21,4V3A1,1 0 0,0 20,2H4Z\";\nexport var mdiProjectorScreenOff = \"M13 14.89V16.59L17.21 20.79L15.79 22.21L13 19.41V22H11V19.41L8.21 22.21L6.79 20.79L11 16.59V14H5V6.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L13 14.89M19 14V5H20C20.55 5 21 4.55 21 4V3C21 2.45 20.55 2 20 2H5.2L17.2 14H19Z\";\nexport var mdiProjectorScreenOffOutline = \"M20.84 22.73L22.11 21.46L2.39 1.73L1.11 3L5 6.89V14H11V16.59L6.79 20.79L8.21 22.21L11 19.41V22H13V19.41L15.79 22.21L17.21 20.79L13 16.59V14.89L20.84 22.73M7 12V8.89L10.11 12H7M8.2 5L5.2 2H20C20.55 2 21 2.45 21 3V4C21 4.55 20.55 5 20 5H19V14H17.2L15.2 12H17V5H8.2Z\";\nexport var mdiProjectorScreenOutline = \"M20 2H4C3.45 2 3 2.45 3 3V4C3 4.55 3.45 5 4 5H5V14H11V16.59L6.79 20.79L8.21 22.21L11 19.41V22H13V19.41L15.79 22.21L17.21 20.79L13 16.59V14H19V5H20C20.55 5 21 4.55 21 4V3C21 2.45 20.55 2 20 2M17 12H7V5H17V12Z\";\nexport var mdiProjectorScreenVariant = \"M19 18V9H20C20.55 9 21 8.55 21 8V7C21 6.45 20.55 6 20 6H4C3.45 6 3 6.45 3 7V8C3 8.55 3.45 9 4 9H5V18H19Z\";\nexport var mdiProjectorScreenVariantOff = \"M20.84 22.73L16.11 18H5V9H4C3.45 9 3 8.55 3 8V7C3 6.45 3.45 6 4 6H4.11L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M19 9H20C20.55 9 21 8.55 21 8V7C21 6.45 20.55 6 20 6H9.2L19 15.8V9Z\";\nexport var mdiProjectorScreenVariantOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L4.11 6H4C3.45 6 3 6.45 3 7V8C3 8.55 3.45 9 4 9H5V18H16.11L20.84 22.73L22.11 21.46M7 16V9H7.11L14.11 16H7M12.2 9L9.2 6H20C20.55 6 21 6.45 21 7V8C21 8.55 20.55 9 20 9H19V15.8L17 13.8V9H12.2Z\";\nexport var mdiProjectorScreenVariantOutline = \"M20 6H4C3.45 6 3 6.45 3 7V8C3 8.55 3.45 9 4 9H5V18H19V9H20C20.55 9 21 8.55 21 8V7C21 6.45 20.55 6 20 6M17 16H7V9H17V16Z\";\nexport var mdiPropaneTank = \"M4 15V18C4 20.21 5.79 22 8 22H16C18.21 22 20 20.21 20 18V15H4M20 13V10C20 8.14 18.72 6.59 17 6.14V4C17 2.9 16.1 2 15 2H9C7.9 2 7 2.9 7 4V6.14C5.28 6.59 4 8.14 4 10V13H20M9 4H15V6H13C13 5.45 12.55 5 12 5S11 5.45 11 6H9V4Z\";\nexport var mdiPropaneTankOutline = \"M17 6.14V4C17 2.9 16.1 2 15 2H9C7.9 2 7 2.9 7 4V6.14C5.28 6.59 4 8.14 4 10V18C4 20.21 5.79 22 8 22H16C18.21 22 20 20.21 20 18V10C20 8.14 18.72 6.59 17 6.14M9 4H15V6H13C13 5.45 12.55 5 12 5S11 5.45 11 6H9V4M8 8H16C17.1 8 18 8.9 18 10V13H6V10C6 8.9 6.9 8 8 8M16 20H8C6.9 20 6 19.1 6 18V15H18V18C18 19.1 17.1 20 16 20Z\";\nexport var mdiProtocol = \"M18 20H14L18 4H22M16 4H12L8 20H12M2 16.5A2.5 2.5 0 0 0 4.5 19A2.5 2.5 0 0 0 7 16.5A2.5 2.5 0 0 0 4.5 14A2.5 2.5 0 0 0 2 16.5M2 9.5A2.5 2.5 0 0 0 4.5 12A2.5 2.5 0 0 0 7 9.5A2.5 2.5 0 0 0 4.5 7A2.5 2.5 0 0 0 2 9.5Z\";\nexport var mdiPublish = \"M5,4V6H19V4H5M5,14H9V20H15V14H19L12,7L5,14Z\";\nexport var mdiPublishOff = \"M20.8 22.7L15 16.9V20H9V14H5L8.6 10.4L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M19 6V4H7.2L9.2 6H19M17.2 14H19L12 7L11.1 7.9L17.2 14Z\";\nexport var mdiPulse = \"M3,13H5.79L10.1,4.79L11.28,13.75L14.5,9.66L17.83,13H21V15H17L14.67,12.67L9.92,18.73L8.94,11.31L7,15H3V13Z\";\nexport var mdiPump = \"M2 21V15H3.5C3.18 14.06 3 13.05 3 12C3 7.03 7.03 3 12 3H22V9H20.5C20.82 9.94 21 10.95 21 12C21 16.97 16.97 21 12 21H2M5 12C5 13.28 5.34 14.47 5.94 15.5L9.4 13.5C9.15 13.06 9 12.55 9 12C9 11.35 9.21 10.75 9.56 10.26L6.3 7.93C5.5 9.08 5 10.5 5 12M12 19C14.59 19 16.85 17.59 18.06 15.5L14.6 13.5C14.08 14.4 13.11 15 12 15L11.71 15L11.33 18.97L12 19M12 9C13.21 9 14.26 9.72 14.73 10.76L18.37 9.1C17.27 6.68 14.83 5 12 5V9M12 11C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13C12.55 13 13 12.55 13 12C13 11.45 12.55 11 12 11Z\";\nexport var mdiPumpOff = \"M22.1 21.5L2.4 1.7L1.1 3L4.8 6.7C3.7 8.2 3 10 3 12C3 13 3.2 14.1 3.5 15H2V21H12C14 21 15.8 20.3 17.3 19.2L20.8 22.7L22.1 21.5M5.9 15.5C5.3 14.5 5 13.3 5 12C5 10.6 5.5 9.2 6.2 8.1L9.2 11.1C9.1 11.3 9 11.7 9 12C9 12.5 9.2 13.1 9.4 13.5L5.9 15.5M12 19H11.3L11.7 15H12C12.3 15 12.6 14.9 12.9 14.8L15.9 17.8C14.8 18.5 13.4 19 12 19M12 8.8L7.4 4.2C8.8 3.5 10.3 3 12 3H22V9H20.5C20.8 9.9 21 11 21 12C21 13.7 20.5 15.2 19.8 16.6L12.2 9C13.3 9.1 14.3 9.8 14.7 10.7L18.3 9C17.3 6.7 14.8 5 12 5V8.8Z\";\nexport var mdiPumpkin = \"M6.5,6C7.47,6 8.37,6.5 9.11,7.38C9.66,6.79 10.31,6.36 11,6.15V4A2,2 0 0,1 13,2H15V4H13V6.15C13.69,6.36 14.34,6.79 14.89,7.38C15.63,6.5 16.53,6 17.5,6C20,6 22,9.36 22,13.5C22,17.64 20,21 17.5,21C16.53,21 15.63,20.5 14.89,19.62C14.08,20.5 13.08,21 12,21C10.92,21 9.92,20.5 9.11,19.62C8.37,20.5 7.47,21 6.5,21C4,21 2,17.64 2,13.5C2,9.36 4,6 6.5,6Z\";\nexport var mdiPurse = \"M22,19.1L21,10.5A1.65,1.65 0 0,0 19.3,9H16V5L14,3H10L8,5V9H4.7A1.65,1.65 0 0,0 3,10.5L2,19.1A1.74,1.74 0 0,0 3.7,21H20.3A1.74,1.74 0 0,0 22,19.1M10,5H14V9H10\";\nexport var mdiPurseOutline = \"M19,11L20,19H4L5,11H19M14,3H10L8,5V9H4.7A1.65,1.65 0 0,0 3,10.5L2,19.1A1.74,1.74 0 0,0 3.7,21H20.3A1.74,1.74 0 0,0 22,19.1L21,10.5A1.65,1.65 0 0,0 19.3,9H16V5L14,3M10,9V5H14V9\";\nexport var mdiPuzzle = \"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z\";\nexport var mdiPuzzleCheck = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M20.5 11C21.88 11 23 12.12 23 13.5C23 13.81 22.94 14.11 22.84 14.39C21.8 13.5 20.46 13 19 13C15.69 13 13 15.69 13 19V19.54C12.64 18.5 11.65 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.1 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.89 2.9 5 4 5H8V3.5C8 2.12 9.12 .998 10.5 .998S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11H20.5\";\nexport var mdiPuzzleCheckOutline = \"M23.5 17L18.5 22L15 18.5L16.5 17L18.5 19L22 15.5L23.5 17M22 13.5L22 13.8C21.37 13.44 20.67 13.19 19.94 13.07C19.75 12.45 19.18 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4C9.67 4 9 4.67 9 5.5V7H4L4 9.12C5.76 9.8 7 11.5 7 13.5C7 15.5 5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.47 17 12.37 17.3 13.12 17.8L13 19C13 20.09 13.29 21.12 13.8 22H13.2V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.1 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5C5 12 3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2C12.26 2 13.72 3.3 13.96 5H17C18.1 5 19 5.9 19 7V10.04C20.7 10.28 22 11.74 22 13.5Z\";\nexport var mdiPuzzleEdit = \"M21.04 12.13C20.9 12.13 20.76 12.19 20.65 12.3L19.65 13.3L21.7 15.35L22.7 14.35C22.92 14.14 22.92 13.79 22.7 13.58L21.42 12.3C21.31 12.19 21.18 12.13 21.04 12.13M19.07 13.88L13 19.94V22H15.06L21.12 15.93L19.07 13.88M19 11.12L11.91 18.2C11.5 17.95 11 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.11 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.9 2.9 5 4 5H8V3.5C8 2.12 9.12 1 10.5 1S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11.12Z\";\nexport var mdiPuzzleEditOutline = \"M21.04 12.13C20.9 12.13 20.76 12.19 20.65 12.3L19.65 13.3L21.7 15.35L22.7 14.35C22.92 14.14 22.92 13.79 22.7 13.58L21.42 12.3C21.31 12.19 21.18 12.13 21.04 12.13M19.07 13.88L13 19.94V22H15.06L21.12 15.93L19.07 13.88M11.05 19.06C10.87 19 10.69 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C19.36 10.09 19.69 10.21 20 10.36C19.73 10.5 19.46 10.66 19.24 10.89L18.12 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.26 17 12 17.18 12.61 17.5L11.05 19.06Z\";\nexport var mdiPuzzleHeart = \"M19 22.3L18.4 21.8C16.4 19.9 15 18.7 15 17.2C15 16 16 15 17.2 15C17.9 15 18.6 15.3 19 15.8C19.4 15.3 20.1 15 20.8 15C22 15 23 15.9 23 17.2C23 18.7 21.6 19.9 19.6 21.8L19 22.3M20.5 11H19V7C19 5.89 18.1 5 17 5H13V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4C2.9 5 2 5.9 2 7V10.8H3.5C5 10.8 6.2 12 6.2 13.5S5 16.2 3.5 16.2H2V20C2 21.11 2.9 22 4 22H7.8V20.5C7.8 19 9 17.8 10.5 17.8C11.44 17.8 12.27 18.27 12.75 19H13.09C13.04 18.67 13 18.34 13 18C13 14.69 15.69 12 19 12C20.54 12 21.94 12.58 23 13.53C23 13.5 23 13.5 23 13.5C23 12.12 21.88 11 20.5 11Z\";\nexport var mdiPuzzleHeartOutline = \"M13.2 22V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C20.45 10.25 21.61 11.34 21.91 12.76C21.05 12.28 20.06 12 19 12C18.89 12 18.78 12 18.67 12C18.61 12 18.56 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.43 17 12.29 17.28 13 17.74C13 17.83 13 17.91 13 18C13 19.54 13.58 20.94 14.54 22H13.2M19 22.3L19.6 21.8C21.6 19.9 23 18.7 23 17.2C23 15.9 22 15 20.8 15C20.1 15 19.4 15.3 19 15.8C18.6 15.3 17.9 15 17.2 15C16 15 15 16 15 17.2C15 18.7 16.4 19.9 18.4 21.8L19 22.3\";\nexport var mdiPuzzleMinus = \"M13.04 19.61C12.67 18.55 11.68 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.11 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.9 2.9 5 4 5H8V3.5C8 2.12 9.12 1 10.5 1S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11H20.5C21.88 11 23 12.12 23 13.5C23 13.82 22.94 14.12 22.83 14.39C21.79 13.53 20.46 13 19 13C15.69 13 13 15.69 13 19C13 19.2 13 19.41 13.04 19.61M15 18V20H23V18H15Z\";\nexport var mdiPuzzleMinusOutline = \"M13.2 22V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C20.7 10.28 22 11.74 22 13.5C22 13.6 22 13.7 21.97 13.79C21.35 13.44 20.67 13.2 19.93 13.08C19.75 12.46 19.18 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.47 17 12.37 17.3 13.12 17.81C13.04 18.19 13 18.59 13 19C13 20.1 13.3 21.12 13.81 22H13.2M15 18V20H23V18H15Z\";\nexport var mdiPuzzleOutline = \"M22,13.5C22,15.26 20.7,16.72 19,16.96V20A2,2 0 0,1 17,22H13.2V21.7A2.7,2.7 0 0,0 10.5,19C9,19 7.8,20.21 7.8,21.7V22H4A2,2 0 0,1 2,20V16.2H2.3C3.79,16.2 5,15 5,13.5C5,12 3.79,10.8 2.3,10.8H2V7A2,2 0 0,1 4,5H7.04C7.28,3.3 8.74,2 10.5,2C12.26,2 13.72,3.3 13.96,5H17A2,2 0 0,1 19,7V10.04C20.7,10.28 22,11.74 22,13.5M17,15H18.5A1.5,1.5 0 0,0 20,13.5A1.5,1.5 0 0,0 18.5,12H17V7H12V5.5A1.5,1.5 0 0,0 10.5,4A1.5,1.5 0 0,0 9,5.5V7H4V9.12C5.76,9.8 7,11.5 7,13.5C7,15.5 5.75,17.2 4,17.88V20H6.12C6.8,18.25 8.5,17 10.5,17C12.5,17 14.2,18.25 14.88,20H17V15Z\";\nexport var mdiPuzzlePlus = \"M13.04 19.61C12.67 18.55 11.68 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.11 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.9 2.9 5 4 5H8V3.5C8 2.12 9.12 1 10.5 1S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11H20.5C21.88 11 23 12.12 23 13.5C23 13.82 22.94 14.12 22.83 14.39C21.79 13.53 20.46 13 19 13C15.69 13 13 15.69 13 19C13 19.2 13 19.41 13.04 19.61M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiPuzzlePlusOutline = \"M13.2 22V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C20.7 10.28 22 11.74 22 13.5C22 13.6 22 13.7 21.97 13.79C21.35 13.44 20.67 13.2 19.93 13.08C19.75 12.46 19.18 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.47 17 12.37 17.3 13.12 17.81C13.04 18.19 13 18.59 13 19C13 20.1 13.3 21.12 13.81 22H13.2M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiPuzzleRemove = \"M13.04 19.61C12.67 18.55 11.68 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.11 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.9 2.9 5 4 5H8V3.5C8 2.12 9.12 1 10.5 1S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11H20.5C21.88 11 23 12.12 23 13.5C23 13.82 22.94 14.12 22.83 14.39C21.79 13.53 20.46 13 19 13C15.69 13 13 15.69 13 19C13 19.2 13 19.41 13.04 19.61M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiPuzzleRemoveOutline = \"M13.2 22V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C20.7 10.28 22 11.74 22 13.5C22 13.6 22 13.7 21.97 13.79C21.35 13.44 20.67 13.2 19.93 13.08C19.75 12.46 19.18 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.47 17 12.37 17.3 13.12 17.81C13.04 18.19 13 18.59 13 19C13 20.1 13.3 21.12 13.81 22H13.2M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiPuzzleStar = \"M19 20.09L21.45 21.58L20.8 18.77L23 16.89L20.11 16.64L19 14L17.87 16.64L15 16.89L17.18 18.77L16.5 21.58L19 20.09M23 13.5C23 13.5 23 13.5 23 13.53C21.94 12.58 20.54 12 19 12C15.69 12 13 14.69 13 18C13 18.34 13.04 18.67 13.09 19H12.75C12.27 18.27 11.44 17.8 10.5 17.8C9 17.8 7.8 19 7.8 20.5V22H4C2.9 22 2 21.11 2 20V16.2H3.5C5 16.2 6.2 15 6.2 13.5S5 10.8 3.5 10.8H2V7C2 5.9 2.9 5 4 5H8V3.5C8 2.12 9.12 1 10.5 1S13 2.12 13 3.5V5H17C18.1 5 19 5.89 19 7V11H20.5C21.88 11 23 12.12 23 13.5Z\";\nexport var mdiPuzzleStarOutline = \"M13.2 22V21.7C13.2 20.21 12 19 10.5 19C9 19 7.8 20.21 7.8 21.7V22H4C2.9 22 2 21.11 2 20V16.2H2.3C3.79 16.2 5 15 5 13.5S3.79 10.8 2.3 10.8H2V7C2 5.9 2.9 5 4 5H7.04C7.28 3.3 8.74 2 10.5 2S13.72 3.3 13.96 5H17C18.11 5 19 5.9 19 7V10.04C20.45 10.25 21.61 11.34 21.91 12.76C21.05 12.28 20.06 12 19 12C18.89 12 18.78 12 18.67 12C18.61 12 18.56 12 18.5 12H17V7H12V5.5C12 4.67 11.33 4 10.5 4S9 4.67 9 5.5V7H4V9.12C5.76 9.8 7 11.5 7 13.5S5.75 17.2 4 17.88V20H6.12C6.8 18.25 8.5 17 10.5 17C11.43 17 12.29 17.28 13 17.74C13 17.83 13 17.91 13 18C13 19.54 13.58 20.94 14.54 22H13.2M19 20.09L16.5 21.58L17.18 18.77L15 16.89L17.87 16.64L19 14L20.11 16.64L23 16.89L20.8 18.77L21.45 21.58L19 20.09\";\nexport var mdiPyramid = \"M21.85 16.96H21.85L12.85 2.47C12.65 2.16 12.33 2 12 2S11.35 2.16 11.15 2.47L2.15 16.96H2.15C1.84 17.45 2 18.18 2.64 18.43L11.64 21.93C11.75 22 11.88 22 12 22S12.25 22 12.36 21.93L21.36 18.43C22 18.18 22.16 17.45 21.85 16.96M11 6.5V13.32L5.42 15.5L11 6.5M12 19.93L5.76 17.5L12 15.07L18.24 17.5L12 19.93M13 13.32V6.5L18.58 15.5L13 13.32Z\";\nexport var mdiPyramidOff = \"M10.5 7.3L9.05 5.85L11.15 2.47C11.35 2.16 11.67 2 12 2C12.33 2 12.65 2.16 12.85 2.47L21.85 16.96H21.85C22.13 17.4 22 18 21.5 18.32L18.41 15.21L13 6.5V9.8L11 7.8V6.5L10.5 7.3M22.11 21.46L20.84 22.73L17.89 19.78L12.36 21.93C12.25 22 12.12 22 12 22S11.75 22 11.64 21.93L2.64 18.43C2 18.18 1.84 17.45 2.15 16.96H2.15L7.1 9L1.11 3L2.39 1.73L22.11 21.46M5.42 15.5L11 13.32V12.89L8.55 10.44L5.42 15.5M16.35 18.24L13.94 15.83L12 15.07L5.76 17.5L12 19.93L16.35 18.24Z\";\nexport var mdiQi = \"M12.09,6.56V14.64C12.09,14.72 12,14.79 11.94,14.79C9.62,14.79 7.75,12.91 7.75,10.6C7.75,8.28 9.62,6.4 11.94,6.4C12,6.4 12.09,6.47 12.09,6.56M12.09,17.86V20.29C12.06,21.69 13.12,22.87 14.5,23C14.66,23 14.78,22.89 14.79,22.73V4.47C14.78,4.3 14.68,4.15 14.5,4.09C10.92,2.67 6.86,4.44 5.44,8.03C4,11.63 5.79,15.69 9.38,17.11C10.16,17.42 11,17.58 11.81,17.6C11.95,17.59 12.07,17.71 12.08,17.87M16.19,5.5V15.72C16.19,16 16.19,16.2 16.46,16V16C19.42,13.5 19.81,9.09 17.33,6.13C17.07,5.81 16.77,5.5 16.46,5.26C16.19,5.05 16.19,5.26 16.19,5.53M14.79,2.43C14.79,1.66 15.42,1.03 16.19,1.03C16.96,1.03 17.59,1.66 17.59,2.43C17.59,3.2 16.96,3.83 16.19,3.83V3.83C15.42,3.83 14.79,3.2 14.79,2.43\";\nexport var mdiQqchat = \"M3.18,13.54C3.76,12.16 4.57,11.14 5.17,10.92C5.16,10.12 5.31,9.62 5.56,9.22C5.56,9.19 5.5,8.86 5.72,8.45C5.87,4.85 8.21,2 12,2C15.79,2 18.13,4.85 18.28,8.45C18.5,8.86 18.44,9.19 18.44,9.22C18.69,9.62 18.84,10.12 18.83,10.92C19.43,11.14 20.24,12.16 20.82,13.55C21.57,15.31 21.69,17 21.09,17.3C20.68,17.5 20.03,17 19.42,16.12C19.18,17.1 18.58,18 17.73,18.71C18.63,19.04 19.21,19.58 19.21,20.19C19.21,21.19 17.63,22 15.69,22C13.93,22 12.5,21.34 12.21,20.5H11.79C11.5,21.34 10.07,22 8.31,22C6.37,22 4.79,21.19 4.79,20.19C4.79,19.58 5.37,19.04 6.27,18.71C5.42,18 4.82,17.1 4.58,16.12C3.97,17 3.32,17.5 2.91,17.3C2.31,17 2.43,15.31 3.18,13.54Z\";\nexport var mdiQrcode = \"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\";\nexport var mdiQrcodeEdit = \"M5,5H7V7H5V5M1,1H11V11H1V1M3,3V9H9V3H3M5,17H7V19H5V17M1,13H11V23H1V13M3,15V21H9V15H3M13,13H17V15H19V13H23V15H19V17H23V23H19V21H15V23H13V21H15V19H13V13M21,21V19H19V21H21M19,17H17V15H15V19H19V17M22.7,3.35L21.7,4.35L19.65,2.35L20.65,1.35C20.85,1.14 21.19,1.13 21.42,1.35L22.7,2.58C22.91,2.78 22.92,3.12 22.7,3.35M13,8.94L19.07,2.88L21.12,4.93L15.06,11H13V8.94Z\";\nexport var mdiQrcodeMinus = \"M5 5H7V7H5V5M1 1H11V11H1V1M3 3V9H9V3H3M5 17H7V19H5V17M1 13H11V23H1V13M3 15V21H9V15H3M13 13H17V15H19V13H23V15H19V17H23V23H19V21H15V23H13V21H15V19H13V13M21 21V19H19V21H21M19 17H17V15H15V19H19V17M14 5V7H22V5Z\";\nexport var mdiQrcodePlus = \"M5 5H7V7H5V5M1 1H11V11H1V1M3 3V9H9V3H3M5 17H7V19H5V17M1 13H11V23H1V13M3 15V21H9V15H3M13 13H17V15H19V13H23V15H19V17H23V23H19V21H15V23H13V21H15V19H13V13M21 21V19H19V21H21M19 17H17V15H15V19H19V17M17 2V5H14V7H17V10H19V7H22V5H19V2Z\";\nexport var mdiQrcodeRemove = \"M5 5H7V7H5V5M1 1H11V11H1V1M3 3V9H9V3H3M5 17H7V19H5V17M1 13H11V23H1V13M3 15V21H9V15H3M13 13H17V15H19V13H23V15H19V17H23V23H19V21H15V23H13V21H15V19H13V13M21 21V19H19V21H21M19 17H17V15H15V19H19V17M15.17 1.76L13.76 3.17L16.59 6L13.76 8.83L15.17 10.24L18 7.41L20.83 10.24L22.24 8.83L19.41 6L22.24 3.17L20.83 1.76L18 4.59L15.17 1.76Z\";\nexport var mdiQrcodeScan = \"M4,4H10V10H4V4M20,4V10H14V4H20M14,15H16V13H14V11H16V13H18V11H20V13H18V15H20V18H18V20H16V18H13V20H11V16H14V15M16,15V18H18V15H16M4,20V14H10V20H4M6,6V8H8V6H6M16,6V8H18V6H16M6,16V18H8V16H6M4,11H6V13H4V11M9,11H13V15H11V13H9V11M11,6H13V10H11V6M2,2V6H0V2A2,2 0 0,1 2,0H6V2H2M22,0A2,2 0 0,1 24,2V6H22V2H18V0H22M2,18V22H6V24H2A2,2 0 0,1 0,22V18H2M22,22V18H24V22A2,2 0 0,1 22,24H18V22H22Z\";\nexport var mdiQuadcopter = \"M5.5,1C8,1 10,3 10,5.5C10,6.38 9.75,7.2 9.31,7.9L9.41,8H14.59L14.69,7.9C14.25,7.2 14,6.38 14,5.5C14,3 16,1 18.5,1C21,1 23,3 23,5.5C23,8 21,10 18.5,10C17.62,10 16.8,9.75 16.1,9.31L15,10.41V13.59L16.1,14.69C16.8,14.25 17.62,14 18.5,14C21,14 23,16 23,18.5C23,21 21,23 18.5,23C16,23 14,21 14,18.5C14,17.62 14.25,16.8 14.69,16.1L14.59,16H9.41L9.31,16.1C9.75,16.8 10,17.62 10,18.5C10,21 8,23 5.5,23C3,23 1,21 1,18.5C1,16 3,14 5.5,14C6.38,14 7.2,14.25 7.9,14.69L9,13.59V10.41L7.9,9.31C7.2,9.75 6.38,10 5.5,10C3,10 1,8 1,5.5C1,3 3,1 5.5,1M5.5,3A2.5,2.5 0 0,0 3,5.5A2.5,2.5 0 0,0 5.5,8A2.5,2.5 0 0,0 8,5.5A2.5,2.5 0 0,0 5.5,3M5.5,16A2.5,2.5 0 0,0 3,18.5A2.5,2.5 0 0,0 5.5,21A2.5,2.5 0 0,0 8,18.5A2.5,2.5 0 0,0 5.5,16M18.5,3A2.5,2.5 0 0,0 16,5.5A2.5,2.5 0 0,0 18.5,8A2.5,2.5 0 0,0 21,5.5A2.5,2.5 0 0,0 18.5,3M18.5,16A2.5,2.5 0 0,0 16,18.5A2.5,2.5 0 0,0 18.5,21A2.5,2.5 0 0,0 21,18.5A2.5,2.5 0 0,0 18.5,16M3.91,17.25L5.04,17.91C5.17,17.81 5.33,17.75 5.5,17.75A0.75,0.75 0 0,1 6.25,18.5L6.24,18.6L7.37,19.25L7.09,19.75L5.96,19.09C5.83,19.19 5.67,19.25 5.5,19.25A0.75,0.75 0 0,1 4.75,18.5L4.76,18.4L3.63,17.75L3.91,17.25M3.63,6.25L4.76,5.6L4.75,5.5A0.75,0.75 0 0,1 5.5,4.75C5.67,4.75 5.83,4.81 5.96,4.91L7.09,4.25L7.37,4.75L6.24,5.4L6.25,5.5A0.75,0.75 0 0,1 5.5,6.25C5.33,6.25 5.17,6.19 5.04,6.09L3.91,6.75L3.63,6.25M16.91,4.25L18.04,4.91C18.17,4.81 18.33,4.75 18.5,4.75A0.75,0.75 0 0,1 19.25,5.5L19.24,5.6L20.37,6.25L20.09,6.75L18.96,6.09C18.83,6.19 18.67,6.25 18.5,6.25A0.75,0.75 0 0,1 17.75,5.5L17.76,5.4L16.63,4.75L16.91,4.25M16.63,19.25L17.75,18.5A0.75,0.75 0 0,1 18.5,17.75C18.67,17.75 18.83,17.81 18.96,17.91L20.09,17.25L20.37,17.75L19.25,18.5A0.75,0.75 0 0,1 18.5,19.25C18.33,19.25 18.17,19.19 18.04,19.09L16.91,19.75L16.63,19.25Z\";\nexport var mdiQualityHigh = \"M14.5,13.5H16.5V10.5H14.5M18,14A1,1 0 0,1 17,15H16.25V16.5H14.75V15H14A1,1 0 0,1 13,14V10A1,1 0 0,1 14,9H17A1,1 0 0,1 18,10M11,15H9.5V13H7.5V15H6V9H7.5V11.5H9.5V9H11M19,4H5C3.89,4 3,4.89 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6C21,4.89 20.1,4 19,4Z\";\nexport var mdiQualityLow = \"M14.5,13.5H16.5V10.5H14.5M18,14C18,14.6 17.6,15 17,15H16.25V16.5H14.75V15H14C13.4,15 13,14.6 13,14V10C13,9.4 13.4,9 14,9H17C17.6,9 18,9.4 18,10M19,4H5A2,2 0 0,0 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6A2,2 0 0,0 19,4M11,13.5V15H6V9H7.5V13.5H11Z\";\nexport var mdiQualityMedium = \"M21,6V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V6A2,2 0 0,1 5,4H19A2,2 0 0,1 21,6M12,10C12,9.5 11.5,9 11,9H6.5C6,9 5.5,9.5 5.5,10V15H7V10.5H8V14H9.5V10.5H10.5V15H12V10M14.5,9A1,1 0 0,0 13.5,10V14A1,1 0 0,0 14.5,15H15.5V16.5H16.75V15H17.5A1,1 0 0,0 18.5,14V10A1,1 0 0,0 17.5,9H14.5M15,10.5H17V13.5H15V10.5Z\";\nexport var mdiQueueFirstInLastOut = \"M6 6H18V8H6V6M6 10.5H18V12.5H6V10.5M6 15H18V17H6V15M9 19H15L12 22L9 19M9 2H15L12 5L9 2Z\";\nexport var mdiQuora = \"M19.7,18.8C20.2,18.2 20.1,17.7 20.1,17.7H21.6C21.6,17.7 21.6,18.1 21.5,18.6C21.4,19 21.3,19.3 21.2,19.6C21,20.3 20,21.1 20,21.1C18.9,22 17.7,21.9 17.7,21.9C17.7,21.9 16.3,22.1 15.2,21.4C14.1,20.7 13.2,19.2 13.2,19.2C13.2,19.2 8.8,20.4 5.4,17.5C2,14.6 2.2,11.1 2.2,10.8C2.2,10.1 2.6,2.3 10.8,2C15.6,1.8 18.2,4.8 19.2,7.2C19.9,8.9 19.9,10.2 19.9,10.4C19.9,10.6 19.9,11.5 19.7,12.4C19.6,13.3 19.2,14.3 18.9,14.8C18.6,15.3 18.2,16 17.7,16.5C17.2,17.1 16.6,17.6 16.5,17.7C16.5,17.7 17.5,18.9 18.1,19.1C18.3,19.1 19.2,19.4 19.7,18.8M12.7,17.3C12.8,17.2 12.4,16.7 12.2,16.4C12,16.1 12.3,16.5 11.5,15.4C11.2,14.9 10.8,14.7 10.2,14.6C10,14.6 9.7,14.6 9.5,14.6C9,14.6 8.7,14.7 8.6,14.7C8.6,14.6 8.4,14.4 8.3,14.2C8.2,14 8.2,13.7 8.2,13.7C8.2,13.5 9.7,12.8 11.4,12.8C12.8,12.8 13.8,13.6 14.2,14C14.6,14.3 14.7,14.7 15.1,15C15.1,15 15.2,15 15.2,15.1C15.6,15.4 16.1,12.1 16,9.9C15.9,7.7 15.8,6.6 15,5.5C14.3,4.5 12.8,3.7 11.4,3.7C10.7,3.7 8.4,3.8 7.4,5.5C6.2,7.5 6.4,11.1 6.4,11.1C6.4,11.1 6.1,14.3 7.8,16C9.5,17.7 11.2,17.4 12,17.4L12.7,17.3Z\";\nexport var mdiRabbit = \"M18.05,21L15.32,16.26C15.32,14.53 14.25,13.42 12.95,13.42C12.05,13.42 11.27,13.92 10.87,14.66C11.2,14.47 11.59,14.37 12,14.37C13.3,14.37 14.36,15.43 14.36,16.73C14.36,18.04 13.31,19.11 12,19.11H15.3V21H6.79C6.55,21 6.3,20.91 6.12,20.72C5.75,20.35 5.75,19.75 6.12,19.38V19.38L6.62,18.88C6.28,18.73 6,18.5 5.72,18.26C5.5,18.76 5,19.11 4.42,19.11C3.64,19.11 3,18.47 3,17.68C3,16.9 3.64,16.26 4.42,16.26L4.89,16.34V14.37C4.89,11.75 7,9.63 9.63,9.63H9.65C11.77,9.64 13.42,10.47 13.42,9.16C13.42,8.23 13.62,7.86 13.96,7.34C13.23,7 12.4,6.79 11.53,6.79C11,6.79 10.58,6.37 10.58,5.84C10.58,5.41 10.86,5.05 11.25,4.93L10.58,4.89C10.06,4.89 9.63,4.47 9.63,3.95C9.63,3.42 10.06,3 10.58,3H11.53C13.63,3 15.47,4.15 16.46,5.85L16.74,5.84C17.45,5.84 18.11,6.07 18.65,6.45L19.1,6.83C21.27,8.78 21,10.1 21,10.11C21,11.39 19.94,12.44 18.65,12.44L18.16,12.39V12.47C18.16,13.58 17.68,14.57 16.93,15.27L20.24,21H18.05M18.16,7.74C17.63,7.74 17.21,8.16 17.21,8.68C17.21,9.21 17.63,9.63 18.16,9.63C18.68,9.63 19.11,9.21 19.11,8.68C19.11,8.16 18.68,7.74 18.16,7.74Z\";\nexport var mdiRabbitVariant = \"M16.84 14.5C16.58 14.33 16.22 13.89 16.05 13.68C17.24 12 19 8.87 19 5C19 3.05 18.26 2 17 2C15.46 2 13.04 4.06 12 7.97C10.96 4.06 8.54 2 7 2C5.74 2 5 3.05 5 5C5 8.87 6.76 12 7.95 13.68C7.78 13.89 7.42 14.33 7.16 14.5C6.66 14.93 5.5 15.89 5.5 17.5C5.5 19.71 7.29 21.5 9.5 21.5C11.05 21.5 12 20.94 12 20.94S12.95 21.5 14.5 21.5C16.71 21.5 18.5 19.71 18.5 17.5C18.5 15.89 17.34 14.93 16.84 14.5M9.35 12.2C8.34 10.7 7 8.12 7 5C7 4.5 7.06 4.2 7.12 4.03C8.06 4.34 10.36 6.74 10.5 11.67C10.03 11.79 9.66 11.97 9.35 12.2M10.5 16.75C10.22 16.75 10 16.41 10 16S10.22 15.25 10.5 15.25 11 15.59 11 16 10.78 16.75 10.5 16.75M12 19.5C11.45 19.5 11 18.78 11 18.5S11.45 18 12 18 13 18.22 13 18.5 12.55 19.5 12 19.5M13.5 16.75C13.22 16.75 13 16.41 13 16S13.22 15.25 13.5 15.25 14 15.59 14 16 13.78 16.75 13.5 16.75M13.5 11.67C13.64 6.74 15.94 4.34 16.88 4.03C16.94 4.2 17 4.5 17 5C17 8.12 15.66 10.7 14.65 12.2C14.34 11.97 13.97 11.79 13.5 11.67Z\";\nexport var mdiRabbitVariantOutline = \"M17 14C16.76 13.76 16.56 13.5 16.35 13.25C17.5 11.5 19 8.56 19 5C19 3.05 18.26 2 17 2C15.46 2 13.04 4.06 12 7.97C10.96 4.06 8.54 2 7 2C5.74 2 5 3.05 5 5C5 8.56 6.5 11.5 7.65 13.25C7.44 13.5 7.24 13.76 7 14C6.75 14.25 5 15.39 5 17.5C5 20 7 22 9.5 22C11 22 12 21.5 12 21.5S13 22 14.5 22C17 22 19 20 19 17.5C19 15.39 17.25 14.25 17 14M16.88 4.03C16.94 4.2 17 4.5 17 5C17 7.84 15.89 10.24 14.93 11.78C14.55 11.5 14.1 11.3 13.53 11.16C13.77 6.64 15.97 4.33 16.88 4.03M7 5C7 4.5 7.06 4.2 7.12 4.03C8.03 4.33 10.23 6.64 10.5 11.16C9.9 11.3 9.45 11.5 9.08 11.78C8.11 10.24 7 7.84 7 5M14.5 20C13.5 20 12.7 19.67 12.28 19.44C12.7 19.26 13 18.73 13 18.5C13 18.22 12.55 18 12 18S11 18.22 11 18.5C11 18.73 11.3 19.26 11.72 19.44C11.3 19.67 10.5 20 9.5 20C8.12 20 7 18.88 7 17.5C7 16.8 7.43 16.26 8 15.77C8.44 15.41 8.61 15.25 9.3 14.4C10.06 13.45 10.39 13 12 13S13.94 13.45 14.7 14.4C15.39 15.25 15.56 15.41 16 15.77C16.57 16.26 17 16.8 17 17.5C17 18.88 15.88 20 14.5 20M14 16C14 16.41 13.78 16.75 13.5 16.75S13 16.41 13 16 13.22 15.25 13.5 15.25 14 15.59 14 16M11 16C11 16.41 10.78 16.75 10.5 16.75S10 16.41 10 16 10.22 15.25 10.5 15.25 11 15.59 11 16Z\";\nexport var mdiRacingHelmet = \"M2.2,11.2C2,13.6 2.7,15.6 4.2,17.4C5.7,19.2 7.7,20 10.1,20H20.1C20.6,20 21.1,19.8 21.5,19.4C21.9,19 22.1,18.5 22.1,18V17.2C22.1,16.6 22,15.9 21.9,15H13.7C12.7,15 11.9,14.6 11.2,13.9C10.5,13.2 10.1,12.3 10.1,11.4C10.1,9.8 10.8,8.7 12.3,8.1L17.1,6C15.4,4.8 13.4,4.1 11.1,4C8.9,3.8 6.9,4.5 5.1,5.9C3.3,7.3 2.4,9 2.2,11.2M12.1,11.4C12.1,11.8 12.3,12.2 12.6,12.5C12.9,12.8 13.3,13 13.7,13H21.5C20.9,10.8 20,9 18.7,7.6L13.1,9.9C12.4,10.1 12.1,10.6 12.1,11.4Z\";\nexport var mdiRacquetball = \"M18.5,16C19.9,16 21,17.1 21,18.5C21,19.9 19.9,21 18.5,21C17.1,21 16,19.9 16,18.5C16,17.1 17.1,16 18.5,16M10.5,1C3,1 3,3.7 3,9.8C3,13.2 6.4,16.9 9,18.1V23H12V18.1C14.6,16.9 18,13.2 18,9.8C18,3.6 18,1 10.5,1M15.4,4.2C15.7,4.6 15.8,5.2 15.9,6H15V3.8C15.2,3.9 15.3,4.1 15.4,4.2M16,9.8C16,9.9 16,10 16,10H15V7H16C16,7.8 16,8.7 16,9.8M14,14H11V11H14V14M7,14V11H10V14H7M5,9.8C5,8.8 5,7.9 5,7H6V10H5C5,9.9 5,9.8 5,9.8M7,7H10V10H7V7M11,3C12.4,3 13.4,3.2 14,3.3V6H11V3M10,6H7V3.4C7.6,3.2 8.6,3 10,3V6M11,10V7H14V10H11M6,3.8V6H5.1C5.2,5.2 5.3,4.6 5.6,4.2C5.7,4.1 5.8,4 6,3.8M5.2,11H6V12.7C5.7,12.1 5.4,11.6 5.2,11M8,15H10V16.3L9.8,16.2C9.2,16 8.6,15.5 8,15M11.2,16.3H11V15H13C12.4,15.5 11.8,16 11.2,16.3M15,12.7V11H15.8C15.6,11.5 15.3,12.1 15,12.7Z\";\nexport var mdiRadar = \"M19.07,4.93L17.66,6.34C19.1,7.79 20,9.79 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12C4,7.92 7.05,4.56 11,4.07V6.09C8.16,6.57 6,9.03 6,12A6,6 0 0,0 12,18A6,6 0 0,0 18,12C18,10.34 17.33,8.84 16.24,7.76L14.83,9.17C15.55,9.9 16,10.9 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12C8,10.14 9.28,8.59 11,8.14V10.28C10.4,10.63 10,11.26 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12C14,11.26 13.6,10.62 13,10.28V2H12A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,9.24 20.88,6.74 19.07,4.93Z\";\nexport var mdiRadiator = \"M7.95,3L6.53,5.19L7.95,7.4H7.94L5.95,10.5L4.22,9.6L5.64,7.39L4.22,5.19L6.22,2.09L7.95,3M13.95,2.89L12.53,5.1L13.95,7.3L13.94,7.31L11.95,10.4L10.22,9.5L11.64,7.3L10.22,5.1L12.22,2L13.95,2.89M20,2.89L18.56,5.1L20,7.3V7.31L18,10.4L16.25,9.5L17.67,7.3L16.25,5.1L18.25,2L20,2.89M2,22V14A2,2 0 0,1 4,12H20A2,2 0 0,1 22,14V22H20V20H4V22H2M6,14A1,1 0 0,0 5,15V17A1,1 0 0,0 6,18A1,1 0 0,0 7,17V15A1,1 0 0,0 6,14M10,14A1,1 0 0,0 9,15V17A1,1 0 0,0 10,18A1,1 0 0,0 11,17V15A1,1 0 0,0 10,14M14,14A1,1 0 0,0 13,15V17A1,1 0 0,0 14,18A1,1 0 0,0 15,17V15A1,1 0 0,0 14,14M18,14A1,1 0 0,0 17,15V17A1,1 0 0,0 18,18A1,1 0 0,0 19,17V15A1,1 0 0,0 18,14Z\";\nexport var mdiRadiatorDisabled = \"M20,12H4A2,2 0 0,0 2,14V22H4V20H20V22H22V14A2,2 0 0,0 20,12M7,17A1,1 0 0,1 6,18A1,1 0 0,1 5,17V15A1,1 0 0,1 6,14A1,1 0 0,1 7,15V17M11,17A1,1 0 0,1 10,18A1,1 0 0,1 9,17V15A1,1 0 0,1 10,14A1,1 0 0,1 11,15V17M15,17A1,1 0 0,1 14,18A1,1 0 0,1 13,17V15A1,1 0 0,1 14,14A1,1 0 0,1 15,15V17M19,17A1,1 0 0,1 18,18A1,1 0 0,1 17,17V15A1,1 0 0,1 18,14A1,1 0 0,1 19,15V17Z\";\nexport var mdiRadiatorOff = \"M3.28,2L2,3.27L4.77,6.04L5.64,7.39L4.22,9.6L5.95,10.5L7.23,8.5L10.73,12H4A2,2 0 0,0 2,14V22H4V20H18.73L20,21.27V22H22V20.73L22,20.72V20.72L3.28,2M7,17A1,1 0 0,1 6,18A1,1 0 0,1 5,17V15A1,1 0 0,1 6,14A1,1 0 0,1 7,15V17M11,17A1,1 0 0,1 10,18A1,1 0 0,1 9,17V15A1,1 0 0,1 10,14A1,1 0 0,1 11,15V17M15,17A1,1 0 0,1 14,18A1,1 0 0,1 13,17V15C13,14.79 13.08,14.61 13.18,14.45L15,16.27V17M16.25,9.5L17.67,7.3L16.25,5.1L18.25,2L20,2.89L18.56,5.1L20,7.3V7.31L18,10.4L16.25,9.5M22,14V18.18L19,15.18V15A1,1 0 0,0 18,14C17.95,14 17.9,14 17.85,14.03L15.82,12H20C21.11,12 22,12.9 22,14M11.64,7.3L10.22,5.1L12.22,2L13.95,2.89L12.53,5.1L13.95,7.3L13.94,7.31L12.84,9L11.44,7.62L11.64,7.3M7.5,3.69L6.1,2.28L6.22,2.09L7.95,3L7.5,3.69Z\";\nexport var mdiRadio = \"M20,6A2,2 0 0,1 22,8V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V8C2,7.15 2.53,6.42 3.28,6.13L15.71,1L16.47,2.83L8.83,6H20M20,8H4V12H16V10H18V12H20V8M7,14A3,3 0 0,0 4,17A3,3 0 0,0 7,20A3,3 0 0,0 10,17A3,3 0 0,0 7,14Z\";\nexport var mdiRadioAm = \"M5,7A2,2 0 0,0 3,9V17H5V13H7V17H9V9A2,2 0 0,0 7,7H5M5,9H7V11H5V9M13,7A2,2 0 0,0 11,9V17H13V9H15V16H17V9H19V17H21V9A2,2 0 0,0 19,7H13Z\";\nexport var mdiRadioFm = \"M3,7V17H5V13H8V11H5V9H9V7H3M13,7A2,2 0 0,0 11,9V17H13V9H15V16H17V9H19V17H21V9A2,2 0 0,0 19,7H13Z\";\nexport var mdiRadioHandheld = \"M9,2A1,1 0 0,0 8,3C8,8.67 8,14.33 8,20C8,21.11 8.89,22 10,22H15C16.11,22 17,21.11 17,20V9C17,7.89 16.11,7 15,7H10V3A1,1 0 0,0 9,2M10,9H15V13H10V9Z\";\nexport var mdiRadioOff = \"M1 4.27L3 6.27C2.4 6.61 2 7.26 2 8V20C2 21.11 2.9 22 4 22H18.73L20.73 24L22 22.72L2.28 3L1 4.27M20 6H8.83L16.47 2.83L15.71 1L6.59 4.76L9.82 8H20V12H18V10H16V12H13.82L22 20.18V8C22 6.9 21.11 6 20 6M4 8H4.73L8.73 12H4V8M7 14C8.66 14 10 15.34 10 17C10 18.66 8.66 20 7 20C5.34 20 4 18.66 4 17C4 15.34 5.34 14 7 14Z\";\nexport var mdiRadioTower = \"M12,10A2,2 0 0,1 14,12C14,12.5 13.82,12.94 13.53,13.29L16.7,22H14.57L12,14.93L9.43,22H7.3L10.47,13.29C10.18,12.94 10,12.5 10,12A2,2 0 0,1 12,10M12,8A4,4 0 0,0 8,12C8,12.5 8.1,13 8.28,13.46L7.4,15.86C6.53,14.81 6,13.47 6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12C18,13.47 17.47,14.81 16.6,15.86L15.72,13.46C15.9,13 16,12.5 16,12A4,4 0 0,0 12,8M12,4A8,8 0 0,0 4,12C4,14.36 5,16.5 6.64,17.94L5.92,19.94C3.54,18.11 2,15.23 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12C22,15.23 20.46,18.11 18.08,19.94L17.36,17.94C19,16.5 20,14.36 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiRadioactive = \"M14 11C14 12.1 13.1 13 12 13S10 12.1 10 11 10.9 9 12 9 14 9.9 14 11M16 11H22C22 7.3 20 4.1 17 2.3L14 7.5C15.2 8.2 16 9.5 16 11M12 15C11.3 15 10.6 14.8 10 14.4C8.8 16.5 7.4 18.8 7 19.6C8.5 20.5 10.2 20.9 12 20.9S15.5 20.4 17 19.6L14 14.4C13.4 14.8 12.7 15 12 15M10 7.6C8.8 5.5 7.4 3.1 7 2.3C4 4 2 7.3 2 11H8C8 9.5 8.8 8.2 10 7.6Z\";\nexport var mdiRadioactiveCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M20 12H16C16 10.5 15.2 9.2 14 8.6L16 5.1C18.4 6.5 20 9 20 12M12 10C13.1 10 14 10.9 14 12S13.1 14 12 14 10 13.1 10 12 10.9 10 12 10M8 5.1C8.6 6.1 9.3 7.4 10 8.6C8.8 9.3 8 10.6 8 12H4C4 9 5.6 6.5 8 5.1M8 18.9C8.6 17.9 9.3 16.6 10 15.4C10.6 15.7 11.3 16 12 16S13.4 15.8 14 15.4L16 18.9C14.8 19.6 13.5 20 12 20C10.5 20 9.2 19.6 8 18.9Z\";\nexport var mdiRadioactiveCircleOutline = \"M12 4C16.4 4 20 7.6 20 12S16.4 20 12 20 4 16.4 4 12 7.6 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M15 17.2L13.2 14.2C12.8 14.4 12.4 14.5 12 14.5S11.1 14.4 10.8 14.2C10.3 15.1 9.6 16.2 9 17.2C9.9 17.7 10.9 18 12 18S14.1 17.7 15 17.2M15 6.8L13.2 9.8C13.9 10.2 14.5 11 14.5 12H18C18 9.8 16.8 7.8 15 6.8M12 13C12.6 13 13 12.6 13 12S12.6 11 12 11 11 11.4 11 12 11.4 13 12 13M6 12H9.5C9.5 11.1 10 10.3 10.8 9.8C10.3 8.9 9.6 7.8 9 6.8C7.2 7.8 6 9.8 6 12Z\";\nexport var mdiRadioactiveOff = \"M20.8 22.7L15.9 17.8L16.9 19.6C15.4 20.5 13.7 20.9 11.9 20.9S8.4 20.4 6.9 19.6C7.3 18.8 8.7 16.5 9.9 14.4C10.5 14.7 11.2 15 11.9 15C12.2 15 12.6 15 12.9 14.9L8.1 10C8.1 10.3 8 10.7 8 11H2C2 9 2.6 7.1 3.6 5.5L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M16 11H22C22 7.3 20 4.1 17 2.3L14 7.5C15.2 8.2 16 9.5 16 11M12.2 9L14 10.8C13.9 9.9 13.1 9.1 12.2 9M7 2.3L6.1 2.9L9 5.8C8.1 4.3 7.3 2.9 7 2.3Z\";\nexport var mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiRadioboxIndeterminateVariant = \"M8.46 8.46C9.4 7.53 10.67 7 12 7C13.33 7 14.6 7.53 15.54 8.46L8.46 15.54C7.53 14.6 7 13.33 7 12C7 10.67 7.53 9.4 8.46 8.46M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M6.34 17.66C7.84 19.16 9.88 20 12 20C14.12 20 16.16 19.16 17.66 17.66C19.16 16.16 20 14.12 20 12C20 9.88 19.16 7.84 17.66 6.34C16.16 4.84 14.12 4 12 4C9.88 4 7.84 4.84 6.34 6.34C4.84 7.84 4 9.88 4 12C4 14.12 4.84 16.16 6.34 17.66Z\";\nexport var mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nexport var mdiRadiologyBox = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3M17.1 13H13V14H17C17 14 16.94 17 15.5 17C14.15 17 14.5 15.47 13 15V17C13 17.55 12.55 18 12 18S11 17.55 11 17V15C9.5 15.47 9.85 17 8.5 17C7.06 17 7 14 7 14H11V13H6.9C6.85 12.69 6.84 12.35 6.8 12H11V11H6.81C6.83 10.67 6.91 10.33 7 10H11V9H7.34C7.5 8.65 7.65 8.31 7.83 8H11V7C11 6.45 11.45 6 12 6S13 6.45 13 7V8H16.17C16.35 8.31 16.5 8.65 16.66 9H13V10H17C17.1 10.33 17.17 10.67 17.19 11H13V12H17.2C17.16 12.35 17.15 12.69 17.1 13Z\";\nexport var mdiRadiologyBoxOutline = \"M19 5V19H5V5H19M19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3M12 6C12.55 6 13 6.45 13 7V8H16.17C16.35 8.31 16.5 8.65 16.66 9H13V10H17C17.1 10.33 17.17 10.67 17.19 11H13V12H17.2C17.16 12.35 17.15 12.69 17.1 13H13V14H17C17 14 16.94 17 15.5 17C14.15 17 14.5 15.47 13 15V17C13 17.55 12.55 18 12 18S11 17.55 11 17V15C9.5 15.47 9.85 17 8.5 17C7.06 17 7 14 7 14H11V13H6.9C6.85 12.69 6.84 12.35 6.8 12H11V11H6.81C6.83 10.67 6.91 10.33 7 10H11V9H7.34C7.5 8.65 7.65 8.31 7.83 8H11V7C11 6.45 11.45 6 12 6Z\";\nexport var mdiRadius = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M17,15V13H13.72C13.36,13.62 12.71,14 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10C12.71,10 13.36,10.38 13.72,11H17V9L20,12L17,15Z\";\nexport var mdiRadiusOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M16,15V13H13.72C13.36,13.62 12.71,14 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10C12.71,10 13.36,10.38 13.72,11H16V9L19,12L16,15Z\";\nexport var mdiRailroadLight = \"M17.67,10.5C16.4,10.5 15.27,11.3 14.85,12.5H13.17V7.77L16.66,9.86L17.66,8.14L14.11,6L17.68,3.86L16.68,2.14L13.17,4.23V2H11.17V4.23L7.68,2.14L6.68,3.86L10.23,6L6.66,8.14L7.66,9.86L11.17,7.77V12.5H9.5C8.36,9.32 3.66,10.13 3.66,13.5C3.66,16.87 8.36,17.68 9.5,14.5H11.17V20A2,2 0 0,0 9.17,22H15.17A2,2 0 0,0 13.17,20V14.5H14.85C15.66,16.8 18.73,17.22 20.13,15.23C21.53,13.24 20.1,10.5 17.67,10.5M6.67,14.5C5.78,14.5 5.33,13.42 5.96,12.79C6.59,12.16 7.67,12.61 7.67,13.5A1,1 0 0,1 6.67,14.5M17.67,14.5C16.78,14.5 16.33,13.42 16.96,12.79C17.59,12.16 18.67,12.61 18.67,13.5A1,1 0 0,1 17.67,14.5Z\";\nexport var mdiRake = \"M10.5 17.05L9.43 16L22.07 3.35L20.66 1.93L8 14.58L6.95 13.5C6.17 12.73 4.9 12.73 4.12 13.5L2 15.64L2.71 16.34L4.83 14.22L5.54 14.93L3.41 17.05L4.12 17.76L6.24 15.64L6.95 16.34L4.83 18.46L5.54 19.17L7.66 17.05L8.36 17.76L6.24 19.88L6.95 20.59L9.07 18.46L9.78 19.17L7.66 21.29L8.36 22L10.5 19.88C11.27 19.1 11.27 17.83 10.5 17.05Z\";\nexport var mdiRaspberryPi = \"M20,8H22V10H20V8M4,5H20A2,2 0 0,1 22,7H19V9H5V13H8V16H19V17H22A2,2 0 0,1 20,19H16V20H14V19H11V20H7V19H4A2,2 0 0,1 2,17V7A2,2 0 0,1 4,5M19,15H9V10H19V11H22V13H19V15M13,12V14H15V12H13M5,6V8H6V6H5M7,6V8H8V6H7M9,6V8H10V6H9M11,6V8H12V6H11M13,6V8H14V6H13M15,6V8H16V6H15M20,14H22V16H20V14Z\";\nexport var mdiRaw = \"M6.5 9C7.3 9 8 9.7 8 10.5V11.5C8 12.1 7.6 12.6 7.1 12.9L8 15H6.5L5.6 13H4.5V15H3V9H6.5M6.5 11.5V10.5H4.5V11.5H6.5M10.25 9H12.75L14.25 15H12.75L12.38 13.5H10.63L10.25 15H8.75L10.25 9M11 12H12L11.75 11H11.25L11 12M20 9H21.5L20 15H18.5L17.74 11.96L17 15H15.5L14 9H15.5L16.24 12L17 9H18.5L19.24 12L20 9Z\";\nexport var mdiRawOff = \"M17.15 14.32L14.72 11.9L14 9H15.5L16.24 12L17 9H18.5L19.24 12L20 9H21.5L20 15H18.5L17.74 11.96L17.15 14.32M1.39 4.22L2.81 2.81L21.19 21.2L19.78 22.61L10.67 13.5H10.63L10.25 15H8.75L9.43 12.26L8 10.83V11.5C8 12.1 7.6 12.6 7.1 12.9L8 15H6.5L5.6 13H4.5V15H3V9H6.17L1.39 4.22M6.5 11.5V10.5H4.5V11.5H6.5Z\";\nexport var mdiRayEnd = \"M20,9C18.69,9 17.58,9.83 17.17,11H2V13H17.17C17.58,14.17 18.69,15 20,15A3,3 0 0,0 23,12A3,3 0 0,0 20,9Z\";\nexport var mdiRayEndArrow = \"M1,12L5,16V13H17.17C17.58,14.17 18.69,15 20,15A3,3 0 0,0 23,12A3,3 0 0,0 20,9C18.69,9 17.58,9.83 17.17,11H5V8L1,12Z\";\nexport var mdiRayStart = \"M4,9C5.31,9 6.42,9.83 6.83,11H22V13H6.83C6.42,14.17 5.31,15 4,15A3,3 0 0,1 1,12A3,3 0 0,1 4,9Z\";\nexport var mdiRayStartArrow = \"M23,12L19,16V13H6.83C6.42,14.17 5.31,15 4,15A3,3 0 0,1 1,12A3,3 0 0,1 4,9C5.31,9 6.42,9.83 6.83,11H19V8L23,12Z\";\nexport var mdiRayStartEnd = \"M4,9C5.31,9 6.42,9.83 6.83,11H17.17C17.58,9.83 18.69,9 20,9A3,3 0 0,1 23,12A3,3 0 0,1 20,15C18.69,15 17.58,14.17 17.17,13H6.83C6.42,14.17 5.31,15 4,15A3,3 0 0,1 1,12A3,3 0 0,1 4,9Z\";\nexport var mdiRayStartVertexEnd = \"M20 9C18.69 9 17.58 9.83 17.17 11H14.82C14.4 9.84 13.3 9 12 9S9.6 9.84 9.18 11H6.83C6.42 9.83 5.31 9 4 9C2.34 9 1 10.34 1 12S2.34 15 4 15C5.31 15 6.42 14.17 6.83 13H9.18C9.6 14.16 10.7 15 12 15S14.4 14.16 14.82 13H17.17C17.58 14.17 18.69 15 20 15C21.66 15 23 13.66 23 12S21.66 9 20 9\";\nexport var mdiRayVertex = \"M2,11H9.17C9.58,9.83 10.69,9 12,9C13.31,9 14.42,9.83 14.83,11H22V13H14.83C14.42,14.17 13.31,15 12,15C10.69,15 9.58,14.17 9.17,13H2V11Z\";\nexport var mdiRazorDoubleEdge = \"M20 8C19.45 8 19 7.55 19 7C19 6.45 19.45 6 20 6V5H4V6C4.55 6 5 6.45 5 7C5 7.55 4.55 8 4 8H2V15H4C4.55 15 5 15.45 5 16C5 16.55 4.55 17 4 17V18H20V17C19.45 17 19 16.55 19 16C19 15.45 19.45 15 20 15H22V8H20M20 12H19V13H17V12H13.41C13.2 12.58 12.65 13 12 13S10.8 12.58 10.59 12H7V13H5V12H4V11H5V10H7V11H10.59C10.8 10.42 11.35 10 12 10S13.2 10.42 13.41 11H17V10H19V11H20V12Z\";\nexport var mdiRazorSingleEdge = \"M22 5V8H2V5H22M22 13V18H2V13H3.5C4.33 13 5 12.33 5 11.5S4.33 10 3.5 10L2 10V9H22V10H20.5C19.67 10 19 10.67 19 11.5S19.67 13 20.5 13H22M13 11C13 10.45 12.55 10 12 10S11 10.45 11 11V13C11 13.55 11.45 14 12 14S13 13.55 13 13V11Z\";\nexport var mdiReact = \"M12,10.11C13.03,10.11 13.87,10.95 13.87,12C13.87,13 13.03,13.85 12,13.85C10.97,13.85 10.13,13 10.13,12C10.13,10.95 10.97,10.11 12,10.11M7.37,20C8,20.38 9.38,19.8 10.97,18.3C10.45,17.71 9.94,17.07 9.46,16.4C8.64,16.32 7.83,16.2 7.06,16.04C6.55,18.18 6.74,19.65 7.37,20M8.08,14.26L7.79,13.75C7.68,14.04 7.57,14.33 7.5,14.61C7.77,14.67 8.07,14.72 8.38,14.77C8.28,14.6 8.18,14.43 8.08,14.26M14.62,13.5L15.43,12L14.62,10.5C14.32,9.97 14,9.5 13.71,9.03C13.17,9 12.6,9 12,9C11.4,9 10.83,9 10.29,9.03C10,9.5 9.68,9.97 9.38,10.5L8.57,12L9.38,13.5C9.68,14.03 10,14.5 10.29,14.97C10.83,15 11.4,15 12,15C12.6,15 13.17,15 13.71,14.97C14,14.5 14.32,14.03 14.62,13.5M12,6.78C11.81,7 11.61,7.23 11.41,7.5C11.61,7.5 11.8,7.5 12,7.5C12.2,7.5 12.39,7.5 12.59,7.5C12.39,7.23 12.19,7 12,6.78M12,17.22C12.19,17 12.39,16.77 12.59,16.5C12.39,16.5 12.2,16.5 12,16.5C11.8,16.5 11.61,16.5 11.41,16.5C11.61,16.77 11.81,17 12,17.22M16.62,4C16,3.62 14.62,4.2 13.03,5.7C13.55,6.29 14.06,6.93 14.54,7.6C15.36,7.68 16.17,7.8 16.94,7.96C17.45,5.82 17.26,4.35 16.62,4M15.92,9.74L16.21,10.25C16.32,9.96 16.43,9.67 16.5,9.39C16.23,9.33 15.93,9.28 15.62,9.23C15.72,9.4 15.82,9.57 15.92,9.74M17.37,2.69C18.84,3.53 19,5.74 18.38,8.32C20.92,9.07 22.75,10.31 22.75,12C22.75,13.69 20.92,14.93 18.38,15.68C19,18.26 18.84,20.47 17.37,21.31C15.91,22.15 13.92,21.19 12,19.36C10.08,21.19 8.09,22.15 6.62,21.31C5.16,20.47 5,18.26 5.62,15.68C3.08,14.93 1.25,13.69 1.25,12C1.25,10.31 3.08,9.07 5.62,8.32C5,5.74 5.16,3.53 6.62,2.69C8.09,1.85 10.08,2.81 12,4.64C13.92,2.81 15.91,1.85 17.37,2.69M17.08,12C17.42,12.75 17.72,13.5 17.97,14.26C20.07,13.63 21.25,12.73 21.25,12C21.25,11.27 20.07,10.37 17.97,9.74C17.72,10.5 17.42,11.25 17.08,12M6.92,12C6.58,11.25 6.28,10.5 6.03,9.74C3.93,10.37 2.75,11.27 2.75,12C2.75,12.73 3.93,13.63 6.03,14.26C6.28,13.5 6.58,12.75 6.92,12M15.92,14.26C15.82,14.43 15.72,14.6 15.62,14.77C15.93,14.72 16.23,14.67 16.5,14.61C16.43,14.33 16.32,14.04 16.21,13.75L15.92,14.26M13.03,18.3C14.62,19.8 16,20.38 16.62,20C17.26,19.65 17.45,18.18 16.94,16.04C16.17,16.2 15.36,16.32 14.54,16.4C14.06,17.07 13.55,17.71 13.03,18.3M8.08,9.74C8.18,9.57 8.28,9.4 8.38,9.23C8.07,9.28 7.77,9.33 7.5,9.39C7.57,9.67 7.68,9.96 7.79,10.25L8.08,9.74M10.97,5.7C9.38,4.2 8,3.62 7.37,4C6.74,4.35 6.55,5.82 7.06,7.96C7.83,7.8 8.64,7.68 9.46,7.6C9.94,6.93 10.45,6.29 10.97,5.7Z\";\nexport var mdiRead = \"M21.59,11.59L23,13L13.5,22.5L8.42,17.41L9.83,16L13.5,19.68L21.59,11.59M4,16V3H6L9,3A4,4 0 0,1 13,7C13,8.54 12.13,9.88 10.85,10.55L14,16H12L9.11,11H6V16H4M6,9H9A2,2 0 0,0 11,7A2,2 0 0,0 9,5H6V9Z\";\nexport var mdiReceipt = \"M3 22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.5 20.5L15 22L16.5 20.5L18 22L19.5 20.5L21 22V2L19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2\";\nexport var mdiReceiptClock = \"M3 22L4.5 20.5L6 22L7.5 20.5L9 22L10.58 20.42C10.72 20.61 10.88 20.78 11.05 20.95C12.36 22.26 14.14 23 16 23C19.86 23 23 19.87 23 16C23 14.17 22.28 12.41 21 11.1V2L19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22M20.85 16C20.85 16.64 20.73 17.27 20.5 17.86C20.24 18.44 19.88 19 19.43 19.43C19 19.88 18.44 20.24 17.86 20.5C17.27 20.73 16.64 20.85 16 20.85C13.32 20.85 11.15 18.68 11.15 16C11.15 14.71 11.66 13.5 12.57 12.57C13.5 11.66 14.71 11.15 16 11.15C18.67 11.15 20.85 13.32 20.85 16M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69Z\";\nexport var mdiReceiptClockOutline = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.58 20.42C10.72 20.61 10.88 20.78 11.05 20.95C12.36 22.26 14.14 23 16 23C19.86 23 23 19.87 23 16C23 14.17 22.28 12.41 21 11.1V2L19.5 3.5M19 9.68C18.07 9.24 17.05 9 16 9C12.14 9 9 12.13 9 16C9 17.05 9.24 18.07 9.68 19H5V5H19V9.68M20.85 16C20.85 16.64 20.73 17.27 20.5 17.86C20.24 18.44 19.88 19 19.43 19.43C19 19.88 18.44 20.24 17.86 20.5C17.27 20.73 16.64 20.85 16 20.85C13.32 20.85 11.15 18.68 11.15 16C11.15 14.71 11.66 13.5 12.57 12.57C13.5 11.66 14.71 11.15 16 11.15C18.67 11.15 20.85 13.32 20.85 16M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69Z\";\nexport var mdiReceiptOutline = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.5 20.5L15 22L16.5 20.5L18 22L19.5 20.5L21 22V2L19.5 3.5M19 19H5V5H19V19Z\";\nexport var mdiReceiptSend = \"M4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V14.26L12 9.76V22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5M14 19L18 18L14 17V13L24 18L14 23V19Z\";\nexport var mdiReceiptSendOutline = \"M18 2L19.5 3.5L21 2V14.26L19 13.26V5H5V19H12V22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2M14 19L18 18L14 17V13L24 18L14 23V19Z\";\nexport var mdiReceiptText = \"M3,22L4.5,20.5L6,22L7.5,20.5L9,22L10.5,20.5L12,22L13.5,20.5L15,22L16.5,20.5L18,22L19.5,20.5L21,22V2L19.5,3.5L18,2L16.5,3.5L15,2L13.5,3.5L12,2L10.5,3.5L9,2L7.5,3.5L6,2L4.5,3.5L3,2M18,9H6V7H18M18,13H6V11H18M18,17H6V15H18V17Z\";\nexport var mdiReceiptTextArrowLeft = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9M18 18V16L15 19L18 22V20H22V18H18Z\";\nexport var mdiReceiptTextArrowLeftOutline = \"M12 22L13.26 20.74C13.1 20.22 13 19.66 13 19.09H5V4.91H19V13C19.7 13 20.37 13.13 21 13.35V2L19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22M13.35 17C13.61 16.25 14 15.58 14.54 15H6V17H13.35M18 11H6V13H18V11M18 7H6V9H18V7M18 20V22L15 19L18 16V18H22V20H18Z\";\nexport var mdiReceiptTextArrowRight = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiReceiptTextArrowRightOutline = \"M13.26 20.74L12 22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V13.35C20.37 13.13 19.7 13 19 13V4.91H5V19.09H13C13 19.66 13.1 20.22 13.26 20.74M14.54 15C14 15.58 13.61 16.25 13.35 17H6V15H14.54M6 11H18V13H6V11M6 7H18V9H6V7M19 22V20H15V18H19V16L22 19L19 22Z\";\nexport var mdiReceiptTextCheck = \"M18.25 22L15.5 19L16.66 17.82L18.25 19.41L21.84 15.82L23 17.23M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9Z\";\nexport var mdiReceiptTextCheckOutline = \"M13.26 20.74L12 22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13C13 19.57 13.1 20.22 13.26 20.74M6 15V17H13.35C13.61 16.25 14 15.58 14.54 15H6M6 13H18V11H6V13M6 9H18V7H6V9M23 17.23L21.84 15.82L18.25 19.41L16.66 17.82L15.5 19L18.25 22\";\nexport var mdiReceiptTextClock = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.58 20.42C10.72 20.61 10.88 20.78 11.05 20.95C12.36 22.26 14.14 23 16 23C19.86 23 23 19.87 23 16C23 14.17 22.28 12.41 21 11.1V2L19.5 3.5M11.1 11C10.5 11.57 10.03 12.25 9.67 13H6V11H11.1M9.07 15C9 15.33 9 15.66 9 16C9 16.34 9 16.67 9.07 17H6V15H9.07M18 9H6V7H18V9M20.85 16C20.85 16.64 20.73 17.27 20.5 17.86C20.24 18.44 19.88 19 19.43 19.43C19 19.88 18.44 20.24 17.86 20.5C17.27 20.73 16.64 20.85 16 20.85C13.32 20.85 11.15 18.68 11.15 16C11.15 14.71 11.66 13.5 12.57 12.57C13.5 11.66 14.71 11.15 16 11.15C18.67 11.15 20.85 13.32 20.85 16Z\";\nexport var mdiReceiptTextClockOutline = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M10.58 20.42L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V11.1C22.28 12.41 23 14.17 23 16C23 19.87 19.86 23 16 23C14.14 23 12.36 22.26 11.05 20.95C10.88 20.78 10.72 20.61 10.58 20.42M9.72 19.09C9.4 18.43 9.18 17.73 9.07 17H6V15H9.07C9.17 14.29 9.38 13.62 9.68 13H6V11H11.1C12.37 9.76 14.1 9 16 9H6V7H18V9H16C17.05 9 18.07 9.24 19 9.68V4.91H5V19.09H9.72M20.85 16C20.85 13.32 18.67 11.15 16 11.15C14.71 11.15 13.5 11.66 12.57 12.57C11.66 13.5 11.15 14.71 11.15 16C11.15 18.68 13.32 20.85 16 20.85C16.64 20.85 17.27 20.73 17.86 20.5C18.44 20.24 19 19.88 19.43 19.43C19.88 19 20.24 18.44 20.5 17.86C20.73 17.27 20.85 16.64 20.85 16Z\";\nexport var mdiReceiptTextEdit = \"M3 22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5V19.63L13.13 17H6V15H15.13L17.13 13H6V11H18V12.13L21 9.13V2L19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22M6 9V7H18V9H6M13 22V19.96L19.13 13.83L21.17 15.87L15.04 22H13M21 12.03C21.18 11.97 21.39 12 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19L21.87 15.17L19.83 13.13L20.81 12.15L20.83 12.13C20.88 12.09 20.94 12.05 21 12.03Z\";\nexport var mdiReceiptTextEditOutline = \"M18 2L19.5 3.5L21 2V9.13L19 11.13V4.91H5V19.09H10.5V20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2M13 19.96L19.13 13.83L21.17 15.87L15.04 22H13V19.96M19.83 13.13L20.81 12.15L20.83 12.13C20.88 12.09 20.94 12.05 21 12.03C21.18 11.97 21.39 12 21.53 12.15L22.85 13.47C23.05 13.67 23.05 14 22.85 14.19L21.87 15.17L19.83 13.13M18 12.13L17.13 13H6V11H18V12.13M15.13 15L13.13 17H6V15H15.13M18 9V7H6V9H18Z\";\nexport var mdiReceiptTextMinus = \"M15 18V20H23V18H15M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9Z\";\nexport var mdiReceiptTextMinusOutline = \"M15 18V20H23V18H15M13.26 20.74L12 22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13C13 19.57 13.1 20.22 13.26 20.74M14.54 15C14 15.58 13.61 16.25 13.35 17H6V15H14.54M6 11H18V13H6V11M6 7H18V9H6V7Z\";\nexport var mdiReceiptTextOutline = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.5 20.5L15 22L16.5 20.5L18 22L19.5 20.5L21 22V2L19.5 3.5M19 19H5V5H19V19M6 15H18V17H6M6 11H18V13H6M6 7H18V9H6V7Z\";\nexport var mdiReceiptTextPlus = \"M18 15V18H15V20H18V23H20V20H23V18H20V15H18M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9Z\";\nexport var mdiReceiptTextPlusOutline = \"M18 15V18H15V20H18V23H20V20H23V18H20V15H18M13.26 20.74L12 22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13C13 19.57 13.1 20.22 13.26 20.74M14.54 15C14 15.58 13.61 16.25 13.35 17H6V15H14.54M6 11H18V13H6V11M6 7H18V9H6V7Z\";\nexport var mdiReceiptTextRemove = \"M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22L13.26 20.74C13.09 20.18 13 19.59 13 19C13 18.32 13.12 17.64 13.34 17H6V15H14.53C15.67 13.73 17.29 13 19 13C19.68 13 20.36 13.12 21 13.34V2L19.5 3.5M18 13H6V11H18V13M18 9H6V7H18V9Z\";\nexport var mdiReceiptTextRemoveOutline = \"M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46M13.26 20.74L12 22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13C13 19.57 13.1 20.22 13.26 20.74M14.54 15C14 15.58 13.61 16.25 13.35 17H6V15H14.54M6 11H18V13H6V11M6 7H18V9H6V7Z\";\nexport var mdiReceiptTextSend = \"M4.5 20.5L3 22V2L4.5 3.5L6 2L7.5 3.5L9 2L10.5 3.5L12 2L13.5 3.5L15 2L16.5 3.5L18 2L19.5 3.5L21 2V14.26L18 12.76V11H6V13H12V15H6V17H12V22L10.5 20.5L9 22L7.5 20.5L6 22L4.5 20.5M6 7V9H18V7H6M14 13L24 18L14 23V19L18 18L14 17V13Z\";\nexport var mdiReceiptTextSendOutline = \"M19.5 3.5L18 2L16.5 3.5L15 2L13.5 3.5L12 2L10.5 3.5L9 2L7.5 3.5L6 2L4.5 3.5L3 2V22L4.5 20.5L6 22L7.5 20.5L9 22L10.5 20.5L12 22V19.09H5V4.91H19V13.26L21 14.26V2L19.5 3.5M14 23V19L18 18L14 17V13L24 18L14 23M12 11V13H6V11H12M6 17V15H12V17H6M18 7V9H6V7H18Z\";\nexport var mdiRecord = \"M19,12C19,15.86 15.86,19 12,19C8.14,19 5,15.86 5,12C5,8.14 8.14,5 12,5C15.86,5 19,8.14 19,12Z\";\nexport var mdiRecordCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z\";\nexport var mdiRecordCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiRecordPlayer = \"M5,17.5A0.5,0.5 0 0,1 4.5,18H3.5A0.5,0.5 0 0,1 3,17.5V17H2A1,1 0 0,1 1,16V13A1,1 0 0,1 2,12H19V10H7L6,11V9A1,1 0 0,1 7,8H19V7H21V8A1,1 0 0,1 22,9V10H21V12H22A1,1 0 0,1 23,13V16A1,1 0 0,1 22,17H21V17.5A0.5,0.5 0 0,1 20.5,18H19.5A0.5,0.5 0 0,1 19,17.5V17H5V17.5M3,14V15H5V14H3M6,14V15H8V14H6M20.5,13.5A1,1 0 0,0 19.5,14.5A1,1 0 0,0 20.5,15.5A1,1 0 0,0 21.5,14.5A1,1 0 0,0 20.5,13.5Z\";\nexport var mdiRecordRec = \"M12.5,5A7.5,7.5 0 0,0 5,12.5A7.5,7.5 0 0,0 12.5,20A7.5,7.5 0 0,0 20,12.5A7.5,7.5 0 0,0 12.5,5M7,10H9A1,1 0 0,1 10,11V12C10,12.5 9.62,12.9 9.14,12.97L10.31,15H9.15L8,13V15H7M12,10H14V11H12V12H14V13H12V14H14V15H12A1,1 0 0,1 11,14V11A1,1 0 0,1 12,10M16,10H18V11H16V14H18V15H16A1,1 0 0,1 15,14V11A1,1 0 0,1 16,10M8,11V12H9V11\";\nexport var mdiRectangle = \"M4,6V19H20V6H4Z\";\nexport var mdiRectangleOutline = \"M4,6V19H20V6H4M18,17H6V8H18V17Z\";\nexport var mdiRecycle = \"M21.82,15.42L19.32,19.75C18.83,20.61 17.92,21.06 17,21H15V23L12.5,18.5L15,14V16H17.82L15.6,12.15L19.93,9.65L21.73,12.77C22.25,13.54 22.32,14.57 21.82,15.42M9.21,3.06H14.21C15.19,3.06 16.04,3.63 16.45,4.45L17.45,6.19L19.18,5.19L16.54,9.6L11.39,9.69L13.12,8.69L11.71,6.24L9.5,10.09L5.16,7.59L6.96,4.47C7.37,3.64 8.22,3.06 9.21,3.06M5.05,19.76L2.55,15.43C2.06,14.58 2.13,13.56 2.64,12.79L3.64,11.06L1.91,10.06L7.05,10.14L9.7,14.56L7.97,13.56L6.56,16H11V21H7.4C6.47,21.07 5.55,20.61 5.05,19.76Z\";\nexport var mdiRecycleVariant = \"M7.17 7.91L8.9 8.91L12.08 3.42L14.33 7.31L11.73 8.81L17.19 10.27L18.66 4.81L16.06 6.31L13.81 2.41C13.26 1.45 12.03 1.12 11.08 1.68C10.81 1.83 10.58 2.05 10.41 2.31M10 20V18L3.66 18L5.9 14.1L8.5 15.6L7.04 10.14L1.57 11.6L4.17 13.1L1.92 17C1.37 17.96 1.7 19.18 2.65 19.73C2.92 19.89 3.22 19.97 3.54 20M19.06 11.5L17.32 12.5L20.5 18H16V15L12 19L16 23V20H20.5C21.61 20 22.5 19.11 22.5 18C22.5 17.69 22.42 17.38 22.28 17.11Z\";\nexport var mdiReddit = \"M14.5 15.41C14.58 15.5 14.58 15.69 14.5 15.8C13.77 16.5 12.41 16.56 12 16.56C11.61 16.56 10.25 16.5 9.54 15.8C9.44 15.69 9.44 15.5 9.54 15.41C9.65 15.31 9.82 15.31 9.92 15.41C10.38 15.87 11.33 16 12 16C12.69 16 13.66 15.87 14.1 15.41C14.21 15.31 14.38 15.31 14.5 15.41M10.75 13.04C10.75 12.47 10.28 12 9.71 12C9.14 12 8.67 12.47 8.67 13.04C8.67 13.61 9.14 14.09 9.71 14.08C10.28 14.08 10.75 13.61 10.75 13.04M14.29 12C13.72 12 13.25 12.5 13.25 13.05S13.72 14.09 14.29 14.09C14.86 14.09 15.33 13.61 15.33 13.05C15.33 12.5 14.86 12 14.29 12M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12C2 6.5 6.5 2 12 2S22 6.5 22 12M18.67 12C18.67 11.19 18 10.54 17.22 10.54C16.82 10.54 16.46 10.7 16.2 10.95C15.2 10.23 13.83 9.77 12.3 9.71L12.97 6.58L15.14 7.05C15.16 7.6 15.62 8.04 16.18 8.04C16.75 8.04 17.22 7.57 17.22 7C17.22 6.43 16.75 5.96 16.18 5.96C15.77 5.96 15.41 6.2 15.25 6.55L12.82 6.03C12.75 6 12.68 6.03 12.63 6.07C12.57 6.11 12.54 6.17 12.53 6.24L11.79 9.72C10.24 9.77 8.84 10.23 7.82 10.96C7.56 10.71 7.2 10.56 6.81 10.56C6 10.56 5.35 11.21 5.35 12C5.35 12.61 5.71 13.11 6.21 13.34C6.19 13.5 6.18 13.62 6.18 13.78C6.18 16 8.79 17.85 12 17.85C15.23 17.85 17.85 16.03 17.85 13.78C17.85 13.64 17.84 13.5 17.81 13.34C18.31 13.11 18.67 12.6 18.67 12Z\";\nexport var mdiRedhat = \"M15.34 13.16C16.66 13.16 18.56 12.89 18.56 11.32C18.57 11.2 18.56 11.08 18.53 10.96L17.75 7.56C17.57 6.81 17.41 6.47 16.09 5.81C15.07 5.29 12.85 4.43 12.19 4.43C11.58 4.43 11.4 5.22 10.67 5.22C9.97 5.22 9.45 4.63 8.79 4.63C8.16 4.63 7.75 5.06 7.43 5.94C7.43 5.94 6.55 8.44 6.43 8.8C6.42 8.87 6.41 8.93 6.41 9C6.41 9.97 10.23 13.15 15.34 13.15M18.77 11.96C18.95 12.82 18.95 12.91 18.95 13C18.95 14.5 17.29 15.31 15.12 15.31C10.2 15.31 5.89 12.43 5.89 10.53C5.89 10.26 5.95 10 6.05 9.76C4.28 9.84 2 10.16 2 12.18C2 15.5 9.84 19.57 16.05 19.57C20.81 19.57 22 17.42 22 15.72C22 14.38 20.85 12.86 18.77 11.96\";\nexport var mdiRedo = \"M18.4,10.6C16.55,9 14.15,8 11.5,8C6.85,8 2.92,11.03 1.54,15.22L3.9,16C4.95,12.81 7.95,10.5 11.5,10.5C13.45,10.5 15.23,11.22 16.62,12.38L13,16H22V7L18.4,10.6Z\";\nexport var mdiRedoVariant = \"M10.5,7A6.5,6.5 0 0,0 4,13.5A6.5,6.5 0 0,0 10.5,20H14V18H10.5C8,18 6,16 6,13.5C6,11 8,9 10.5,9H16.17L13.09,12.09L14.5,13.5L20,8L14.5,2.5L13.08,3.91L16.17,7H10.5M18,18H16V20H18V18Z\";\nexport var mdiReflectHorizontal = \"M22,20H14A1,1 0 0,1 13,19V4.97C13,4.5 13.31,4.12 13.74,4C14.19,3.88 14.65,4.08 14.87,4.47L22.89,18.5C23.07,18.81 23.07,19.19 22.89,19.5C22.71,19.81 22.38,20 22,20M2,20C1.62,20 1.29,19.81 1.11,19.5C0.93,19.19 0.93,18.81 1.11,18.5L9.13,4.47C9.35,4.08 9.81,3.88 10.26,4C10.69,4.12 11,4.5 11,4.97V19A1,1 0 0,1 10,20H2M9,18V8.74L3.71,18H9Z\";\nexport var mdiReflectVertical = \"M18,23H6C5.61,23 5.26,22.79 5.09,22.45C4.92,22.11 4.96,21.7 5.19,21.4L11.2,13.38C11.58,12.87 12.42,12.87 12.8,13.38L18.81,21.4C19.04,21.7 19.08,22.11 18.91,22.45C18.74,22.79 18.39,23 18,23M18,1C18.39,1 18.74,1.21 18.91,1.55C19.08,1.89 19.04,2.3 18.81,2.6L12.8,10.62C12.42,11.13 11.58,11.13 11.2,10.62L5.19,2.6C4.96,2.3 4.92,1.89 5.09,1.55C5.26,1.21 5.61,1 6,1H18M8,3L12,8.35L16,3H8Z\";\nexport var mdiRefresh = \"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\";\nexport var mdiRefreshAuto = \"M12.68 6H11.32L7 16H9L9.73 14H14.27L15 16H17L12.68 6M10.3 12.5L12 8L13.7 12.5H10.3M17.4 20.4L19 22H14V17L16 19C18.39 17.61 20 14.95 20 12C20 7.59 16.41 4 12 4S4 7.59 4 12C4 14.95 5.61 17.53 8 18.92V21.16C4.47 19.61 2 16.1 2 12C2 6.5 6.5 2 12 2S22 6.5 22 12C22 15.53 20.17 18.62 17.4 20.4Z\";\nexport var mdiRefreshCircle = \"M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2M18 11H13L14.81 9.19A3.94 3.94 0 0 0 12 8A4 4 0 1 0 15.86 13H17.91A6 6 0 1 1 12 6A5.91 5.91 0 0 1 16.22 7.78L18 6Z\";\nexport var mdiRegex = \"M16,16.92C15.67,16.97 15.34,17 15,17C14.66,17 14.33,16.97 14,16.92V13.41L11.5,15.89C11,15.5 10.5,15 10.11,14.5L12.59,12H9.08C9.03,11.67 9,11.34 9,11C9,10.66 9.03,10.33 9.08,10H12.59L10.11,7.5C10.3,7.25 10.5,7 10.76,6.76V6.76C11,6.5 11.25,6.3 11.5,6.11L14,8.59V5.08C14.33,5.03 14.66,5 15,5C15.34,5 15.67,5.03 16,5.08V8.59L18.5,6.11C19,6.5 19.5,7 19.89,7.5L17.41,10H20.92C20.97,10.33 21,10.66 21,11C21,11.34 20.97,11.67 20.92,12H17.41L19.89,14.5C19.7,14.75 19.5,15 19.24,15.24V15.24C19,15.5 18.75,15.7 18.5,15.89L16,13.41V16.92H16V16.92M5,19A2,2 0 0,1 7,17A2,2 0 0,1 9,19A2,2 0 0,1 7,21A2,2 0 0,1 5,19H5Z\";\nexport var mdiRegisteredTrademark = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12.25,13.27H10.81V16.5H9V7.71H12.26C13.29,7.71 14.09,7.94 14.66,8.4C15.22,8.87 15.5,9.5 15.5,10.36C15.5,10.96 15.37,11.46 15.11,11.86C14.85,12.26 14.46,12.58 13.93,12.81L15.83,16.4V16.5H13.89L12.25,13.27M10.81,11.81H12.27C12.72,11.81 13.07,11.69 13.32,11.46C13.57,11.23 13.69,10.91 13.69,10.5C13.69,10.09 13.58,9.77 13.34,9.53C13.11,9.29 12.75,9.18 12.26,9.18H10.81V11.81Z\";\nexport var mdiReiterate = \"M10.5 4A6.5 6.5 0 0 0 4 10H1L5 14L9 10H6.03A4.5 4.5 0 0 1 10.5 6A4.5 4.5 0 0 1 15 10.5A4.5 4.5 0 0 1 10.5 15H2V17H10.5A6.5 6.5 0 0 0 17 10.5A6.5 6.5 0 0 0 10.5 4M19 12V15H16.5A7.5 7.5 0 0 1 14.24 17H19V20L23 16Z\";\nexport var mdiRelationManyToMany = \"M22 13V19H21L19 17H11V9H5L3 11H2V5H3L5 7H13V15H19L21 13Z\";\nexport var mdiRelationManyToOne = \"M22 15V17H19V19H17V17H11V9H5L3 11H2V5H3L5 7H13V15H17V13H19V15Z\";\nexport var mdiRelationManyToOneOrMany = \"M22 13V19H21L19 17V19H17V17H11V9H5L3 11H2V5H3L5 7H13V15H17V13H19V15L21 13Z\";\nexport var mdiRelationManyToOnlyOne = \"M22 15V17H21V19H19V17H18V19H16V17H11V9H5L3 11H2V5H3L5 7H13V15H16V13H18V15H19V13H21V15Z\";\nexport var mdiRelationManyToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H5L3 5H2V11H3L5 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationManyToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H5L3 5H2V11H3L5 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOneOrManyToMany = \"M22 13V19H21L19 17H11V9H7V11H5V9L3 11H2V5H3L5 7V5H7V7H13V15H19L21 13Z\";\nexport var mdiRelationOneOrManyToOne = \"M22 15V17H19V19H17V17H11V9H7V11H5V9L3 11H2V5H3L5 7V5H7V7H13V15H17V13H19V15Z\";\nexport var mdiRelationOneOrManyToOneOrMany = \"M22 13V19H21L19 17V19H17V17H11V9H7V11H5V9L3 11H2V5H3L5 7V5H7V7H13V15H17V13H19V15L21 13Z\";\nexport var mdiRelationOneOrManyToOnlyOne = \"M22 15V17H21V19H19V17H18V19H16V17H11V9H7V11H5V9L3 11H2V5H3L5 7V5H7V7H13V15H16V13H18V15H19V13H21V15Z\";\nexport var mdiRelationOneOrManyToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H7V5H5V7L3 5H2V11H3L5 9V11H7V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOneOrManyToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H7V5H5V7L3 5H2V11H3L5 9V11H7V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOneToMany = \"M22 13V19H21L19 17H11V9H7V11H5V9H2V7H5V5H7V7H13V15H19L21 13Z\";\nexport var mdiRelationOneToOne = \"M22 15V17H19V19H17V17H11V9H7V11H5V9H2V7H5V5H7V7H13V15H17V13H19V15Z\";\nexport var mdiRelationOneToOneOrMany = \"M22 13V19H21L19 17V19H17V17H11V9H7V11H5V9H2V7H5V5H7V7H13V15H17V13H19V15L21 13Z\";\nexport var mdiRelationOneToOnlyOne = \"M22 15V17H21V19H19V17H18V19H16V17H11V9H7V11H5V9H2V7H5V5H7V7H13V15H16V13H18V15H19V13H21V15Z\";\nexport var mdiRelationOneToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H7V5H5V7H2V9H5V11H7V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOneToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H7V5H5V7H2V9H5V11H7V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOnlyOneToMany = \"M22 13V19H21L19 17H11V9H8V11H6V9H5V11H3V9H2V7H3V5H5V7H6V5H8V7H13V15H19L21 13Z\";\nexport var mdiRelationOnlyOneToOne = \"M22 15V17H19V19H17V17H11V9H8V11H6V9H5V11H3V9H2V7H3V5H5V7H6V5H8V7H13V15H17V13H19V15Z\";\nexport var mdiRelationOnlyOneToOneOrMany = \"M22 13V19H21L19 17V19H17V17H11V9H8V11H6V9H5V11H3V9H2V7H3V5H5V7H6V5H8V7H13V15H17V13H19V15L21 13Z\";\nexport var mdiRelationOnlyOneToOnlyOne = \"M22 15V17H21V19H19V17H18V19H16V17H11V9H8V11H6V9H5V11H3V9H2V7H3V5H5V7H6V5H8V7H13V15H16V13H18V15H19V13H21V15Z\";\nexport var mdiRelationOnlyOneToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H8V5H6V7H5V5H3V7H2V9H3V11H5V9H6V11H8V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationOnlyOneToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H8V5H6V7H5V5H3V7H2V9H3V11H5V9H6V11H8V9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationZeroOrManyToMany = \"M21 13L19 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H19L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrManyToOne = \"M19 15V13H17V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H17V19H19V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrManyToOneOrMany = \"M21 13L19 15V13H17V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H17V19H19V17L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrManyToOnlyOne = \"M21 15V13H19V15H18V13H16V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H16V19H18V17H19V19H21V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrManyToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationZeroOrManyToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5L3 5H2V11H3L5 9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationZeroOrOneToMany = \"M21 13L19 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H19L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrOneToOne = \"M19 15V13H17V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H17V19H19V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrOneToOneOrMany = \"M21 13L19 15V13H17V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H17V19H19V17L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrOneToOnlyOne = \"M21 15V13H19V15H18V13H16V15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H16V19H18V17H19V19H21V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9Z\";\nexport var mdiRelationZeroOrOneToZeroOrMany = \"M21 13L19 15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19L21 19H22V13M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelationZeroOrOneToZeroOrOne = \"M21 15V13H19V15H18.79A2.5 2.5 0 0 0 14.21 15H13V7H9.79A2.5 2.5 0 0 0 5.21 7H5V5H3V7H2V9H3V11H5V9H5.21A2.5 2.5 0 0 0 9.79 9H11V17H14.21A2.5 2.5 0 0 0 18.79 17H19V19H21V17H22V15M7.5 9A1 1 0 1 1 8.5 8A1 1 0 0 1 7.5 9M16.5 17A1 1 0 1 1 17.5 16A1 1 0 0 1 16.5 17Z\";\nexport var mdiRelativeScale = \"M20,18H4V6H20M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4M12,10H10V12H12M8,10H6V12H8M16,14H14V16H16M16,10H14V12H16V10Z\";\nexport var mdiReload = \"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\";\nexport var mdiReloadAlert = \"M2 12C2 17 6 21 11 21C13.4 21 15.7 20.1 17.4 18.4L15.9 16.9C14.6 18.3 12.9 19 11 19C4.8 19 1.6 11.5 6.1 7.1S18 5.8 18 12H15L19 16H19.1L23 12H20C20 7 16 3 11 3S2 7 2 12M10 15H12V17H10V15M10 7H12V13H10V7\";\nexport var mdiReminder = \"M7.25,3C7.9,3 8.5,3.21 9,3.56V3A2,2 0 0,1 11,1A2,2 0 0,1 13,3V3.57C13.5,3.22 14.1,3 14.75,3A3,3 0 0,1 17.75,6C17.75,7.58 16.54,8.87 15,9H13V10H14.24L14.72,10.13L19.31,12.42C20.13,12.73 20.53,13.34 20.53,14.25L20.5,14.39V14.53L19.5,21.28C19.44,21.75 19.22,22.16 18.84,22.5C18.47,22.84 18.05,23 17.58,23H10C9.45,23 9,22.81 8.58,22.41L2,15.84L3.05,14.77C3.33,14.5 3.69,14.34 4.13,14.34H4.45L9,15.33V10L9,9H7V9C5.46,8.86 4.25,7.57 4.25,6A3,3 0 0,1 7.25,3M9,6A1.75,1.75 0 0,0 7.25,4.25A1.75,1.75 0 0,0 5.5,6C5.5,6.88 6.15,7.61 7,7.73V7.75H9V6M15,7.75V7.74C15.85,7.62 16.5,6.89 16.5,6C16.5,5.04 15.72,4.26 14.75,4.26C13.78,4.26 13,5.04 13,6V7.75H15Z\";\nexport var mdiRemote = \"M12,0C8.96,0 6.21,1.23 4.22,3.22L5.63,4.63C7.26,3 9.5,2 12,2C14.5,2 16.74,3 18.36,4.64L19.77,3.23C17.79,1.23 15.04,0 12,0M7.05,6.05L8.46,7.46C9.37,6.56 10.62,6 12,6C13.38,6 14.63,6.56 15.54,7.46L16.95,6.05C15.68,4.78 13.93,4 12,4C10.07,4 8.32,4.78 7.05,6.05M12,15A2,2 0 0,1 10,13A2,2 0 0,1 12,11A2,2 0 0,1 14,13A2,2 0 0,1 12,15M15,9H9A1,1 0 0,0 8,10V22A1,1 0 0,0 9,23H15A1,1 0 0,0 16,22V10A1,1 0 0,0 15,9Z\";\nexport var mdiRemoteDesktop = \"M3,2A2,2 0 0,0 1,4V16C1,17.11 1.9,18 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4A2,2 0 0,0 21,2M3,4H21V16H3M15,5L11.5,8.5L15,12L16.4,10.6L14.3,8.5L16.4,6.4M9,8L7.6,9.4L9.7,11.5L7.6,13.6L9,15L12.5,11.5\";\nexport var mdiRemoteOff = \"M2,5.27L3.28,4L21,21.72L19.73,23L16,19.27V22A1,1 0 0,1 15,23H9C8.46,23 8,22.55 8,22V11.27L2,5.27M12,0C15.05,0 17.8,1.23 19.77,3.23L18.36,4.64C16.75,3 14.5,2 12,2C9.72,2 7.64,2.85 6.06,4.24L4.64,2.82C6.59,1.07 9.17,0 12,0M12,4C13.94,4 15.69,4.78 16.95,6.05L15.55,7.46C14.64,6.56 13.39,6 12,6C10.83,6 9.76,6.4 8.9,7.08L7.5,5.66C8.7,4.62 10.28,4 12,4M15,9C15.56,9 16,9.45 16,10V14.18L13.5,11.69L13.31,11.5L10.82,9H15M10.03,13.3C10.16,14.16 10.84,14.85 11.71,15L10.03,13.3Z\";\nexport var mdiRemoteTv = \"M9,2C7.89,2 7,2.89 7,4V20C7,21.11 7.89,22 9,22H15C16.11,22 17,21.11 17,20V4C17,2.89 16.11,2 15,2H13V4H11V2H9M11,6H13V8H15V10H13V12H11V10H9V8H11V6M9,14H11V16H9V14M13,14H15V16H13V14M9,18H11V20H9V18M13,18H15V20H13V18Z\";\nexport var mdiRemoteTvOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L17,20.25C16.86,21.24 16,22 15,22H9A2,2 0 0,1 7,20V10.27L2,5.27M9,2H11V4H13V2H15A2,2 0 0,1 17,4V15.18L13,11.18V10H15V8H13V6H11V8H9.82L7,5.18V4A2,2 0 0,1 9,2M9,20H11V18H9V20M13,20H15V18.27L14.73,18H13V20M9,14V16H11V14.27L10.73,14H9Z\";\nexport var mdiRename = \"M15 16L11 20H21V16H15M12.06 7.19L3 16.25V20H6.75L15.81 10.94L12.06 7.19M18.71 8.04C19.1 7.65 19.1 7 18.71 6.63L16.37 4.29C16.17 4.09 15.92 4 15.66 4C15.41 4 15.15 4.1 14.96 4.29L13.13 6.12L16.88 9.87L18.71 8.04Z\";\nexport var mdiRenameBox = \"M18,17H10.5L12.5,15H18M6,17V14.5L13.88,6.65C14.07,6.45 14.39,6.45 14.59,6.65L16.35,8.41C16.55,8.61 16.55,8.92 16.35,9.12L8.47,17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiRenameBoxOutline = \"M17 17H11.5L13.5 15H17M7 17V14.5L14.9 6.7C15.1 6.5 15.4 6.5 15.6 6.7L17.4 8.5C17.6 8.7 17.6 9 17.4 9.2L9.5 17M19 5V19H5V5H19M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z\";\nexport var mdiRenameOutline = \"M15 16L11 20H21V16H15M12.06 7.19L3 16.25V20H6.75L15.81 10.94L12.06 7.19M5.92 18H5V17.08L12.06 10L13 10.94L5.92 18M18.71 8.04C19.1 7.65 19.1 7 18.71 6.63L16.37 4.29C16.17 4.09 15.92 4 15.66 4C15.41 4 15.15 4.1 14.96 4.29L13.13 6.12L16.88 9.87L18.71 8.04Z\";\nexport var mdiReorderHorizontal = \"M3,15H21V13H3V15M3,19H21V17H3V19M3,11H21V9H3V11M3,5V7H21V5H3Z\";\nexport var mdiReorderVertical = \"M9,3V21H11V3H9M5,3V21H7V3H5M13,3V21H15V3H13M19,3H17V21H19V3Z\";\nexport var mdiRepeat = \"M17,17H7V14L3,18L7,22V19H19V13H17M7,7H17V10L21,6L17,2V5H5V11H7V7Z\";\nexport var mdiRepeatOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L15.73,19H7V22L3,18L7,14V17H13.73L7,10.27V11H5V8.27L2,5.27M17,13H19V17.18L17,15.18V13M17,5V2L21,6L17,10V7H8.82L6.82,5H17Z\";\nexport var mdiRepeatOnce = \"M13,15V9H12L10,10V11H11.5V15M17,17H7V14L3,18L7,22V19H19V13H17M7,7H17V10L21,6L17,2V5H5V11H7V7Z\";\nexport var mdiRepeatVariant = \"M6,5.75L10.25,10H7V16H13.5L15.5,18H7A2,2 0 0,1 5,16V10H1.75L6,5.75M18,18.25L13.75,14H17V8H10.5L8.5,6H17A2,2 0 0,1 19,8V14H22.25L18,18.25Z\";\nexport var mdiReplay = \"M12,5V1L7,6L12,11V7A6,6 0 0,1 18,13A6,6 0 0,1 12,19A6,6 0 0,1 6,13H4A8,8 0 0,0 12,21A8,8 0 0,0 20,13A8,8 0 0,0 12,5Z\";\nexport var mdiReply = \"M10,9V5L3,12L10,19V14.9C15,14.9 18.5,16.5 21,20C20,15 17,10 10,9Z\";\nexport var mdiReplyAll = \"M13,9V5L6,12L13,19V14.9C18,14.9 21.5,16.5 24,20C23,15 20,10 13,9M7,8V5L0,12L7,19V16L3,12L7,8Z\";\nexport var mdiReplyAllOutline = \"M11,9.8V10.7L12.7,10.9C15.3,11.3 17.2,12.3 18.6,13.6C16.9,13.1 15.1,12.8 13,12.8H11V14.1L8.8,12L11,9.8M13,5L6,12L13,19V14.9C18,14.9 21.5,16.5 24,20C23,15 20,10 13,9M7,8V5L0,12L7,19V16L3,12\";\nexport var mdiReplyCircle = \"M2 12C2 17.5 6.5 22 12 22S22 17.5 22 12 17.5 2 12 2 2 6.5 2 12M5 11L10 6V9C15.06 9.73 17.28 13.33 18 17C16.19 14.43 13.61 13 10 13V16L5 11Z\";\nexport var mdiReplyOutline = \"M8,9.8V10.7L9.7,11C12.3,11.4 14.2,12.4 15.6,13.7C13.9,13.2 12.1,12.9 10,12.9H8V14.2L5.8,12L8,9.8M10,5L3,12L10,19V14.9C15,14.9 18.5,16.5 21,20C20,15 17,10 10,9\";\nexport var mdiReproduction = \"M12.72,13.15L13.62,12.26C13.6,11 14.31,9.44 15.62,8.14C17.57,6.18 20.11,5.55 21.28,6.72C22.45,7.89 21.82,10.43 19.86,12.38C18.56,13.69 17,14.4 15.74,14.38L14.85,15.28C14.5,15.61 14,15.66 13.6,15.41C12.76,15.71 12,16.08 11.56,16.8C11.03,17.68 11.03,19.1 10.47,19.95C9.91,20.81 8.79,21.1 7.61,21.1C6.43,21.1 5,21 3.95,19.5L6.43,19.92C7,20 8.5,19.39 9.05,18.54C9.61,17.68 9.61,16.27 10.14,15.38C10.61,14.6 11.5,14.23 12.43,13.91C12.42,13.64 12.5,13.36 12.72,13.15M7,2A5,5 0 0,1 12,7A5,5 0 0,1 7,12A5,5 0 0,1 2,7A5,5 0 0,1 7,2M7,4A3,3 0 0,0 4,7A3,3 0 0,0 7,10A3,3 0 0,0 10,7A3,3 0 0,0 7,4Z\";\nexport var mdiResistor = \"M2,11H7L10.07,15.35L13.11,4L18,11H22V13H17L13.93,8.65L10.89,20L6,13H2V11Z\";\nexport var mdiResistorNodes = \"M2,11H3.67C4.08,9.83 5.19,9 6.5,9A3,3 0 0,1 9.5,12C9.5,12.65 9.29,13.25 8.94,13.74L10.07,15.35L13.11,4L14.61,6.13L16.7,9.11L17.5,9C18.81,9 19.92,9.83 20.33,11H22V13H20.33C19.92,14.17 18.81,15 17.5,15A3,3 0 0,1 14.5,12C14.5,11.35 14.71,10.75 15.06,10.26L13.93,8.65L10.89,20L7.3,14.89C7.05,14.96 6.78,15 6.5,15C5.19,15 4.08,14.17 3.67,13H2V11M17.5,10.5A1.5,1.5 0 0,0 16,12A1.5,1.5 0 0,0 17.5,13.5A1.5,1.5 0 0,0 19,12A1.5,1.5 0 0,0 17.5,10.5M6.5,10.5A1.5,1.5 0 0,0 5,12A1.5,1.5 0 0,0 6.5,13.5A1.5,1.5 0 0,0 8,12A1.5,1.5 0 0,0 6.5,10.5Z\";\nexport var mdiResize = \"M10.59,12L14.59,8H11V6H18V13H16V9.41L12,13.41V16H20V4H8V12H10.59M22,2V18H12V22H2V12H6V2H22M10,14H4V20H10V14Z\";\nexport var mdiResizeBottomRight = \"M22,22H20V20H22V22M22,18H20V16H22V18M18,22H16V20H18V22M18,18H16V16H18V18M14,22H12V20H14V22M22,14H20V12H22V14Z\";\nexport var mdiResponsive = \"M4,6V16H9V12A2,2 0 0,1 11,10H16A2,2 0 0,1 18,12V16H20V6H4M0,20V18H4A2,2 0 0,1 2,16V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V16A2,2 0 0,1 20,18H24V20H18V20C18,21.11 17.1,22 16,22H11A2,2 0 0,1 9,20H9L0,20M11.5,20A0.5,0.5 0 0,0 11,20.5A0.5,0.5 0 0,0 11.5,21A0.5,0.5 0 0,0 12,20.5A0.5,0.5 0 0,0 11.5,20M15.5,20A0.5,0.5 0 0,0 15,20.5A0.5,0.5 0 0,0 15.5,21A0.5,0.5 0 0,0 16,20.5A0.5,0.5 0 0,0 15.5,20M13,20V21H14V20H13M11,12V19H16V12H11Z\";\nexport var mdiRestart = \"M12,4C14.1,4 16.1,4.8 17.6,6.3C20.7,9.4 20.7,14.5 17.6,17.6C15.8,19.5 13.3,20.2 10.9,19.9L11.4,17.9C13.1,18.1 14.9,17.5 16.2,16.2C18.5,13.9 18.5,10.1 16.2,7.7C15.1,6.6 13.5,6 12,6V10.6L7,5.6L12,0.6V4M6.3,17.6C3.7,15 3.3,11 5.1,7.9L6.6,9.4C5.5,11.6 5.9,14.4 7.8,16.2C8.3,16.7 8.9,17.1 9.6,17.4L9,19.4C8,19 7.1,18.4 6.3,17.6Z\";\nexport var mdiRestartAlert = \"M10 4.03V.633L5 5.63L10 10.63V6.03C11.5 6.03 13.11 6.63 14.21 7.73C16.5 10.13 16.5 13.93 14.21 16.23C12.91 17.53 11.11 18.13 9.4 17.93L8.9 19.93C11.31 20.23 13.81 19.53 15.61 17.63C18.7 14.53 18.7 9.43 15.61 6.33C14.11 4.83 12.11 4.03 10 4.03M4.31 17.63C5.11 18.43 6 19.03 7 19.43L7.61 17.43C6.91 17.13 6.31 16.73 5.81 16.23C3.91 14.43 3.5 11.63 4.61 9.43L3.11 7.93C1.31 11.03 1.71 15.03 4.31 17.63M20 13H22V7H20V13M20 17H22V15H20V17Z\";\nexport var mdiRestartOff = \"M20.8,22.7L16.6,18.5C14.9,19.7 12.9,20.2 10.9,19.9L11.4,17.9C12.7,18 14,17.7 15.1,17L1.1,3L2.4,1.7L16.5,15.8L17.9,17.2L22.1,21.4L20.8,22.7M12,6C13.5,6 15.1,6.6 16.2,7.8C18,9.6 18.4,12.2 17.5,14.4L19,15.9C20.7,12.9 20.2,9 17.6,6.4C16.1,4.8 14,4 12,4V0.7L7.9,4.7L12,8.8V6M6.6,9.4L5.1,7.9C3.3,11 3.7,15 6.3,17.7C7.1,18.4 8,19 9,19.4L9.5,17.4C8.9,17.1 8.3,16.7 7.7,16.2C5.9,14.4 5.5,11.6 6.6,9.4Z\";\nexport var mdiRestore = \"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z\";\nexport var mdiRestoreAlert = \"M13 3C8 3 4 7 4 12H1L4.9 15.9L5 16L9 12H6C6 8.1 9.1 5 13 5S20 8.1 20 12 16.9 19 13 19C11.1 19 9.3 18.2 8.1 16.9L6.7 18.3C8.3 20 10.5 21 13 21C18 21 22 17 22 12S18 3 13 3M12 15H14V17H12V15M12 7H14V13H12V7\";\nexport var mdiRewind = \"M11.5,12L20,18V6M11,18V6L2.5,12L11,18Z\";\nexport var mdiRewind10 = \"M12.5,3C17.15,3 21.08,6.03 22.47,10.22L20.1,11C19.05,7.81 16.04,5.5 12.5,5.5C10.54,5.5 8.77,6.22 7.38,7.38L10,10H3V3L5.6,5.6C7.45,4 9.85,3 12.5,3M10,12V22H8V14H6V12H10M18,14V20C18,21.11 17.11,22 16,22H14A2,2 0 0,1 12,20V14A2,2 0 0,1 14,12H16C17.11,12 18,12.9 18,14M14,14V20H16V14H14Z\";\nexport var mdiRewind15 = \"M12.5 3C17.15 3 21.08 6.03 22.47 10.22L20.1 11C19.05 7.81 16.04 5.5 12.5 5.5C10.54 5.5 8.77 6.22 7.38 7.38L10 10H3V3L5.6 5.6C7.45 4 9.85 3 12.5 3M10 12V22H8V14H6V12H10M12 12H18V14H14V16H16C17.11 16 18 16.9 18 18V20C18 21.11 17.11 22 16 22H12V20H16V18H12V12Z\";\nexport var mdiRewind30 = \"M19,14V20C19,21.11 18.11,22 17,22H15A2,2 0 0,1 13,20V14A2,2 0 0,1 15,12H17C18.11,12 19,12.9 19,14M15,14V20H17V14H15M11,20C11,21.11 10.1,22 9,22H5V20H9V18H7V16H9V14H5V12H9A2,2 0 0,1 11,14V15.5A1.5,1.5 0 0,1 9.5,17A1.5,1.5 0 0,1 11,18.5V20M12.5,3C17.15,3 21.08,6.03 22.47,10.22L20.1,11C19.05,7.81 16.04,5.5 12.5,5.5C10.54,5.5 8.77,6.22 7.38,7.38L10,10H3V3L5.6,5.6C7.45,4 9.85,3 12.5,3Z\";\nexport var mdiRewind45 = \"M12.5 3C17.1 3 21.1 6 22.5 10.2L20.1 11C19 7.8 16 5.5 12.5 5.5C10.5 5.5 8.8 6.2 7.4 7.4L10 10H3V3L5.6 5.6C7.4 4 9.9 3 12.5 3M13 12H19V14H15V16H17C18.1 16 19 16.9 19 18V20C19 21.1 18.1 22 17 22H13V20H17V18H13V12M5 12V18H9V22H11V12H9V16H7V12H5Z\";\nexport var mdiRewind5 = \"M12.5 3C17.15 3 21.08 6.03 22.47 10.22L20.1 11C19.05 7.81 16.04 5.5 12.5 5.5C10.54 5.5 8.77 6.22 7.38 7.38L10 10H3V3L5.6 5.6C7.45 4 9.85 3 12.5 3M9 12H15V14H11V16H13C14.11 16 15 16.9 15 18V20C15 21.11 14.11 22 13 22H9V20H13V18H9V12Z\";\nexport var mdiRewind60 = \"M19 14V20C19 21.1 18.1 22 17 22H15C13.9 22 13 21.1 13 20V14C13 12.9 13.9 12 15 12H17C18.1 12 19 12.9 19 14M15 14V20H17V14H15M12.5 3C17.1 3 21.1 6 22.5 10.2L20.1 11C19 7.8 16 5.5 12.5 5.5C10.5 5.5 8.8 6.2 7.4 7.4L10 10H3V3L5.6 5.6C7.4 4 9.9 3 12.5 3M7 12C5.9 12 5 12.9 5 14V20C5 21.1 5.9 22 7 22H9C10.1 22 11 21.1 11 20V18C11 16.9 10.1 16 9 16H7V14H11V12H7M7 18H9V20H7V18Z\";\nexport var mdiRewindOutline = \"M10,9.9L7,12L10,14.1V9.9M19,9.9L16,12L19,14.1V9.9M12,6V18L3.5,12L12,6M21,6V18L12.5,12L21,6Z\";\nexport var mdiRhombus = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2Z\";\nexport var mdiRhombusMedium = \"M12 6.46C11.72 6.46 11.44 6.56 11.22 6.78L6.78 11.22C6.35 11.65 6.35 12.35 6.78 12.78L11.22 17.22C11.65 17.65 12.35 17.65 12.78 17.22L17.22 12.78C17.65 12.35 17.65 11.65 17.22 11.22L12.78 6.78C12.56 6.56 12.28 6.46 12 6.46Z\";\nexport var mdiRhombusMediumOutline = \"M12 6.46C11.72 6.46 11.44 6.56 11.22 6.78L6.78 11.22C6.35 11.65 6.35 12.35 6.78 12.78L11.22 17.22C11.65 17.65 12.35 17.65 12.78 17.22L17.22 12.78C17.65 12.35 17.65 11.65 17.22 11.22L12.78 6.78C12.56 6.56 12.28 6.46 12 6.46M12 8.83L15.17 12L12 15.17L8.83 12L12 8.83Z\";\nexport var mdiRhombusOutline = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L20 12L12 20L4 12Z\";\nexport var mdiRhombusSplit = \"M12 2C11.5 2 11 2.19 10.59 2.59L7.29 5.88L12 10.58L16.71 5.88L13.41 2.59C13 2.19 12.5 2 12 2M5.88 7.29L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L5.88 16.71L10.58 12L5.88 7.29M18.12 7.29L13.42 12L18.12 16.71L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L18.12 7.29M12 13.42L7.29 18.12L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L16.71 18.12L12 13.42Z\";\nexport var mdiRhombusSplitOutline = \"M12 2C11.5 2 11 2.19 10.59 2.59L2.59 10.59C1.8 11.37 1.8 12.63 2.59 13.41L10.59 21.41C11.37 22.2 12.63 22.2 13.41 21.41L21.41 13.41C22.2 12.63 22.2 11.37 21.41 10.59L13.41 2.59C13 2.19 12.5 2 12 2M12 4L15.29 7.29L12 10.59L8.71 7.29L12 4M7.29 8.71L10.59 12L7.29 15.29L4 12L7.29 8.71M16.71 8.71L20 12L16.71 15.29L13.41 12L16.71 8.71M12 13.41L15.29 16.71L12 20L8.71 16.71L12 13.41Z\";\nexport var mdiRibbon = \"M13.41,19.31L16.59,22.5L18,21.07L14.83,17.9M15.54,11.53H15.53L12,15.07L8.47,11.53H8.46V11.53C7.56,10.63 7,9.38 7,8A5,5 0 0,1 12,3A5,5 0 0,1 17,8C17,9.38 16.44,10.63 15.54,11.53M16.9,13C18.2,11.73 19,9.96 19,8A7,7 0 0,0 12,1A7,7 0 0,0 5,8C5,9.96 5.81,11.73 7.1,13V13L10.59,16.5L6,21.07L7.41,22.5L16.9,13Z\";\nexport var mdiRice = \"M22,11H19.7C19.4,9.9 18.9,8.8 18.2,8L21.6,2.6L19.9,1.5L16.7,6.6C16.3,6.3 16,6.1 15.5,5.9L16.4,2.3L14.5,1.8L13.7,5.2C13.1,5.1 12.6,5 12,5C8.3,5 5.2,7.6 4.3,11H2C2,15.1 4.5,18.6 8,20.2V22H16V20.2C19.5,18.6 22,15.1 22,11M12,7C14.6,7 16.8,8.7 17.6,11H6.4C7.2,8.7 9.4,7 12,7Z\";\nexport var mdiRickshaw = \"M20 14.05V12.73C20 12.26 19.84 11.8 19.54 11.44L15.6 6.72C15.22 6.26 14.66 6 14.06 6H4C2.9 6 2 6.9 2 8V15C2 16.1 2.9 17 4 17H4.05C4.28 18.14 5.29 19 6.5 19S8.72 18.14 8.95 17H17.05C17.28 18.14 18.29 19 19.5 19C20.88 19 22 17.88 22 16.5C22 15.29 21.14 14.28 20 14.05M3.5 8C3.5 7.73 3.73 7.5 4 7.5H7V12H3.5V8M6.5 17.5C5.95 17.5 5.5 17.05 5.5 16.5S5.95 15.5 6.5 15.5 7.5 15.95 7.5 16.5 7.05 17.5 6.5 17.5M13 15.5H9V14H11V12H9V7.5H13V15.5M15 8.34L18.05 12H15V8.34M19.5 17.5C18.95 17.5 18.5 17.05 18.5 16.5S18.95 15.5 19.5 15.5 20.5 15.95 20.5 16.5 20.05 17.5 19.5 17.5Z\";\nexport var mdiRickshawElectric = \"M20 12.05V10.73C20 10.26 19.84 9.8 19.54 9.44L15.6 4.72C15.22 4.26 14.66 4 14.06 4H4C2.9 4 2 4.9 2 6V13C2 14.1 2.9 15 4 15H4.05C4.28 16.14 5.29 17 6.5 17S8.72 16.14 8.95 15H17.05C17.28 16.14 18.29 17 19.5 17C20.88 17 22 15.88 22 14.5C22 13.29 21.14 12.28 20 12.05M3.5 6C3.5 5.73 3.73 5.5 4 5.5H7V10H3.5V6M6.5 15.5C5.95 15.5 5.5 15.05 5.5 14.5S5.95 13.5 6.5 13.5 7.5 13.95 7.5 14.5 7.05 15.5 6.5 15.5M13 13.5H9V12H11V10H9V5.5H13V13.5M15 6.34L18.05 10H15V6.34M19.5 15.5C18.95 15.5 18.5 15.05 18.5 14.5S18.95 13.5 19.5 13.5 20.5 13.95 20.5 14.5 20.05 15.5 19.5 15.5M11 20H7L13 23V21H17L11 18V20Z\";\nexport var mdiRing = \"M12,10L8,4.4L9.6,2H14.4L16,4.4L12,10M15.5,6.8L14.3,8.5C16.5,9.4 18,11.5 18,14A6,6 0 0,1 12,20A6,6 0 0,1 6,14C6,11.5 7.5,9.4 9.7,8.5L8.5,6.8C5.8,8.1 4,10.8 4,14A8,8 0 0,0 12,22A8,8 0 0,0 20,14C20,10.8 18.2,8.1 15.5,6.8Z\";\nexport var mdiRivet = \"M11.43,2C10.61,2 9.94,2.65 9.94,3.5C9.94,4.64 9.94,5.8 9.94,6.96H7.95V7.95H15.91V6.96H13.92C13.92,5.8 13.92,4.64 13.92,3.5C13.92,2.65 13.25,2 12.43,2H11.43M10.94,8.95V21.87L11.93,22.87L12.92,21.87V8.95H10.94Z\";\nexport var mdiRoad = \"M11,16H13V20H11M11,10H13V14H11M11,4H13V8H11M4,22H20V2H4V22Z\";\nexport var mdiRoadVariant = \"M18.1,4.8C18,4.3 17.6,4 17.1,4H13L13.2,7H10.8L11,4H6.8C6.3,4 5.9,4.4 5.8,4.8L3.1,18.8C3,19.4 3.5,20 4.1,20H10L10.3,15H13.7L14,20H19.8C20.4,20 20.9,19.4 20.8,18.8L18.1,4.8M10.4,13L10.6,9H13.2L13.4,13H10.4Z\";\nexport var mdiRobber = \"M10.7 12.5C10.7 12.8 9.4 13.2 8.4 13.2S6.3 12.5 6.3 12.3C6.3 12 7 11.1 8.6 11C9.5 10.9 10.5 11.5 10.7 12.5M15.4 11C14.4 10.9 13.5 11.5 13.3 12.5C13.3 12.8 14.5 13.2 15.6 13.2C16.7 13.2 17.7 12.5 17.7 12.3S17 11.1 15.4 11M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12 6.5 2 12 2 22 6.5 22 12M20 11.2C20 9.2 19.3 8.5 16.7 8.5C14.1 8.5 13.3 9.6 12 9.6S10 8.5 7.3 8.5 4 9.1 4 11.2C4 14.6 5.5 16.5 7.6 16.5C9.2 16.5 10.4 14.5 12 14.5S14.7 16.5 16.4 16.5C18.5 16.5 20 14.6 20 11.2Z\";\nexport var mdiRobot = \"M12,2A2,2 0 0,1 14,4C14,4.74 13.6,5.39 13,5.73V7H14A7,7 0 0,1 21,14H22A1,1 0 0,1 23,15V18A1,1 0 0,1 22,19H21V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V19H2A1,1 0 0,1 1,18V15A1,1 0 0,1 2,14H3A7,7 0 0,1 10,7H11V5.73C10.4,5.39 10,4.74 10,4A2,2 0 0,1 12,2M7.5,13A2.5,2.5 0 0,0 5,15.5A2.5,2.5 0 0,0 7.5,18A2.5,2.5 0 0,0 10,15.5A2.5,2.5 0 0,0 7.5,13M16.5,13A2.5,2.5 0 0,0 14,15.5A2.5,2.5 0 0,0 16.5,18A2.5,2.5 0 0,0 19,15.5A2.5,2.5 0 0,0 16.5,13Z\";\nexport var mdiRobotAngry = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M7.5 18C6.12 18 5 16.88 5 15.5C5 14.68 5.4 13.96 6 13.5L9.83 16.38C9.5 17.32 8.57 18 7.5 18M16.5 18C15.43 18 14.5 17.32 14.17 16.38L18 13.5C18.6 13.96 19 14.68 19 15.5C19 16.88 17.88 18 16.5 18Z\";\nexport var mdiRobotAngryOutline = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M21 17H19V20H5V17H3V16H5V14C5 11.24 7.24 9 10 9H14C16.76 9 19 11.24 19 14V16H21V17M17.5 15.5C17.5 16.61 16.61 17.5 15.5 17.5C14.53 17.5 13.73 16.81 13.54 15.9L16.5 13.78C17.1 14.13 17.5 14.76 17.5 15.5M7.5 13.78L10.46 15.9C10.28 16.81 9.47 17.5 8.5 17.5C7.4 17.5 6.5 16.61 6.5 15.5C6.5 14.76 6.9 14.13 7.5 13.78Z\";\nexport var mdiRobotConfused = \"M20 4H18V3H20.5C20.78 3 21 3.22 21 3.5V5.5C21 5.78 20.78 6 20.5 6H20V7H19V5H20V4M19 9H20V8H19V9M17 3H16V7H17V3M23 15V18C23 18.55 22.55 19 22 19H21V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 10.13 6.13 7 10 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C14.34 7 14.67 7.03 15 7.08V10H19.74C20.53 11.13 21 12.5 21 14H22C22.55 14 23 14.45 23 15M10 15.5C10 14.12 8.88 13 7.5 13S5 14.12 5 15.5 6.12 18 7.5 18 10 16.88 10 15.5M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5M17 8H16V9H17V8Z\";\nexport var mdiRobotConfusedOutline = \"M19 8H20V9H19V8M20 5H19V7H20V6H20.5C20.78 6 21 5.78 21 5.5V3.5C21 3.22 20.78 3 20.5 3H18V4H20V5M17 3H16V7H17V3M13.5 15.5C13.5 16.61 14.4 17.5 15.5 17.5S17.5 16.61 17.5 15.5 16.61 13.5 15.5 13.5 13.5 14.4 13.5 15.5M17 8H16V9H17V8M22 14H21C21 12.5 20.53 11.13 19.74 10H16.97C18.19 10.91 19 12.36 19 14V16H21V17H19V20H5V17H3V16H5V14C5 11.24 7.24 9 10 9H14C14.34 9 14.68 9.04 15 9.1V7.08C14.67 7.03 14.34 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M8.5 13.5C7.4 13.5 6.5 14.4 6.5 15.5S7.4 17.5 8.5 17.5 10.5 16.61 10.5 15.5 9.61 13.5 8.5 13.5Z\";\nexport var mdiRobotDead = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M9.86 16.68L8.68 17.86L7.5 16.68L6.32 17.86L5.14 16.68L6.32 15.5L5.14 14.32L6.32 13.14L7.5 14.32L8.68 13.14L9.86 14.32L8.68 15.5L9.86 16.68M18.86 16.68L17.68 17.86L16.5 16.68L15.32 17.86L14.14 16.68L15.32 15.5L14.14 14.32L15.32 13.14L16.5 14.32L17.68 13.14L18.86 14.32L17.68 15.5L18.86 16.68Z\";\nexport var mdiRobotDeadOutline = \"M10.62 14.44L9.56 15.5L10.62 16.56L9.56 17.62L8.5 16.56L7.44 17.62L6.38 16.56L7.44 15.5L6.38 14.44L7.44 13.38L8.5 14.44L9.56 13.38L10.62 14.44M16.56 13.38L15.5 14.44L14.44 13.38L13.38 14.44L14.44 15.5L13.38 16.56L14.44 17.62L15.5 16.56L16.56 17.62L17.62 16.56L16.56 15.5L17.62 14.44L16.56 13.38M23 15V18C23 18.55 22.55 19 22 19H21V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 10.13 6.13 7 10 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M21 16H19V14C19 11.24 16.76 9 14 9H10C7.24 9 5 11.24 5 14V16H3V17H5V20H19V17H21V16Z\";\nexport var mdiRobotExcited = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M8.68 17.04L7.5 15.86L6.32 17.04L5.14 15.86L7.5 13.5L9.86 15.86L8.68 17.04M17.68 17.04L16.5 15.86L15.32 17.04L14.14 15.86L16.5 13.5L18.86 15.86L17.68 17.04Z\";\nexport var mdiRobotExcitedOutline = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M21 17H19V20H5V17H3V16H5V14C5 11.24 7.24 9 10 9H14C16.76 9 19 11.24 19 14V16H21V17M8.5 13.5L10.86 15.86L9.68 17.04L8.5 15.86L7.32 17.04L6.14 15.86L8.5 13.5M15.5 13.5L17.86 15.86L16.68 17.04L15.5 15.86L14.32 17.04L13.14 15.86L15.5 13.5Z\";\nexport var mdiRobotHappy = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M9.79 16.5C9.4 15.62 8.53 15 7.5 15S5.6 15.62 5.21 16.5C5.08 16.19 5 15.86 5 15.5C5 14.12 6.12 13 7.5 13S10 14.12 10 15.5C10 15.86 9.92 16.19 9.79 16.5M18.79 16.5C18.4 15.62 17.5 15 16.5 15S14.6 15.62 14.21 16.5C14.08 16.19 14 15.86 14 15.5C14 14.12 15.12 13 16.5 13S19 14.12 19 15.5C19 15.86 18.92 16.19 18.79 16.5Z\";\nexport var mdiRobotHappyOutline = \"M10.5 15.5C10.5 15.87 10.4 16.2 10.22 16.5C9.88 15.91 9.24 15.5 8.5 15.5S7.12 15.91 6.78 16.5C6.61 16.2 6.5 15.87 6.5 15.5C6.5 14.4 7.4 13.5 8.5 13.5S10.5 14.4 10.5 15.5M23 15V18C23 18.55 22.55 19 22 19H21V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 10.13 6.13 7 10 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M21 16H19V14C19 11.24 16.76 9 14 9H10C7.24 9 5 11.24 5 14V16H3V17H5V20H19V17H21V16M15.5 13.5C14.4 13.5 13.5 14.4 13.5 15.5C13.5 15.87 13.61 16.2 13.78 16.5C14.12 15.91 14.76 15.5 15.5 15.5S16.88 15.91 17.22 16.5C17.4 16.2 17.5 15.87 17.5 15.5C17.5 14.4 16.61 13.5 15.5 13.5Z\";\nexport var mdiRobotIndustrial = \"M18.41,4L16,6.41V6.59L18.41,9H22V11H17.59L16,9.41V12H15A2,2 0 0,1 13,10V7.5H9.86C9.77,7.87 9.62,8.22 9.42,8.55L15.18,19H20A2,2 0 0,1 22,21V22H2V21A2,2 0 0,1 4,19H10.61L5.92,10.5C4.12,10.47 2.56,9.24 2.11,7.5C1.56,5.36 2.85,3.18 5,2.63C7.13,2.08 9.31,3.36 9.86,5.5H13V3A2,2 0 0,1 15,1H16V3.59L17.59,2H22V4H18.41M6,4.5A2,2 0 0,0 4,6.5A2,2 0 0,0 6,8.5A2,2 0 0,0 8,6.5A2,2 0 0,0 6,4.5Z\";\nexport var mdiRobotIndustrialOutline = \"M4 19H8.6L2.62 8.64C2.23 8 2 7.29 2 6.5C2 4.29 3.79 2.5 6 2.5C7.86 2.5 9.43 3.78 9.87 5.5H14V3C14 1.9 14.9 1 16 1V3.59L17.59 2H22V4H18.41L16 6.41V6.59L18.41 9H22V11H17.59L16 9.41V12C14.9 12 14 11.11 14 10V7.5H9.87C9.77 7.89 9.61 8.26 9.41 8.6L15.41 19H20C21.11 19 22 19.9 22 21V22H2V21C2 19.9 2.9 19 4 19M7.91 10C7.35 10.32 6.7 10.5 6 10.5L10.91 19H13.1L7.91 10M6 4.5C4.89 4.5 4 5.4 4 6.5C4 7.61 4.89 8.5 6 8.5C7.11 8.5 8 7.61 8 6.5C8 5.4 7.11 4.5 6 4.5Z\";\nexport var mdiRobotLove = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M9.7 15.45L8.97 16.18L7.5 17.65L5.3 15.45C4.9 15.05 4.9 14.39 5.3 14C5.71 13.58 6.36 13.58 6.77 14L7.5 14.72L8.23 14C8.64 13.58 9.29 13.58 9.7 14C10.1 14.39 10.1 15.05 9.7 15.45M18.7 15.45L17.97 16.18L16.5 17.65L14.3 15.45C13.9 15.05 13.9 14.39 14.3 14C14.71 13.58 15.36 13.58 15.77 14L16.5 14.72L17.23 14C17.64 13.58 18.29 13.58 18.7 14C19.1 14.39 19.1 15.05 18.7 15.45Z\";\nexport var mdiRobotLoveOutline = \"M22 14H21C21 10.13 17.87 7 14 7H13V5.73C13.6 5.39 14 4.74 14 4C14 2.9 13.11 2 12 2S10 2.9 10 4C10 4.74 10.4 5.39 11 5.73V7H10C6.13 7 3 10.13 3 14H2C1.45 14 1 14.45 1 15V18C1 18.55 1.45 19 2 19H3V20C3 21.11 3.9 22 5 22H19C20.11 22 21 21.11 21 20V19H22C22.55 19 23 18.55 23 18V15C23 14.45 22.55 14 22 14M21 17H19V20H5V17H3V16H5V14C5 11.24 7.24 9 10 9H14C16.76 9 19 11.24 19 14V16H21V17M10.7 14C11.1 14.39 11.1 15.05 10.7 15.45L9.97 16.18L8.5 17.65L6.3 15.45C5.9 15.05 5.9 14.39 6.3 14C6.71 13.58 7.36 13.58 7.77 14L8.5 14.72L9.23 14C9.64 13.58 10.29 13.58 10.7 14M17.7 14C18.1 14.39 18.1 15.05 17.7 15.45L16.97 16.18L15.5 17.65L13.3 15.45C12.9 15.05 12.9 14.39 13.3 14C13.71 13.58 14.36 13.58 14.77 14L15.5 14.72L16.23 14C16.64 13.58 17.29 13.58 17.7 14Z\";\nexport var mdiRobotMower = \"M1 14V5H13C18.5 5 23 9.5 23 15V17H20.83C20.42 18.17 19.31 19 18 19C16.69 19 15.58 18.17 15.17 17H10C9.09 18.21 7.64 19 6 19C3.24 19 1 16.76 1 14M6 11C4.34 11 3 12.34 3 14C3 15.66 4.34 17 6 17C7.66 17 9 15.66 9 14C9 12.34 7.66 11 6 11M15 10V12H20.25C19.92 11.27 19.5 10.6 19 10H15Z\";\nexport var mdiRobotMowerOutline = \"M1 14C1 16.76 3.24 19 6 19C7.64 19 9.09 18.21 10 17H15.17C15.58 18.17 16.7 19 18 19C19.31 19 20.42 18.17 20.83 17H23V15C23 9.5 18.5 5 13 5H1V14M21 15H10.9C10.97 14.68 11 14.34 11 14C11 11.24 8.76 9 6 9C4.87 9 3.84 9.37 3 10V7H12.5C15.1 7 17.42 8.16 19 10H15V12H20.25C20.67 12.92 20.92 13.94 21 15M6 11C7.66 11 9 12.34 9 14C9 15.66 7.66 17 6 17C4.34 17 3 15.66 3 14C3 12.34 4.34 11 6 11Z\";\nexport var mdiRobotOff = \"M23 15V18C23 18.5 22.64 18.88 22.17 18.97L18.97 15.77C19 15.68 19 15.59 19 15.5C19 14.12 17.88 13 16.5 13C16.41 13 16.32 13 16.23 13.03L10.2 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M22.11 21.46L20.84 22.73L19.89 21.78C19.62 21.92 19.32 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 11.53 4.29 9.36 6.22 8.11L1.11 3L2.39 1.73L22.11 21.46M10 15.5C10 14.12 8.88 13 7.5 13S5 14.12 5 15.5 6.12 18 7.5 18 10 16.88 10 15.5M16.07 17.96L14.04 15.93C14.23 16.97 15.04 17.77 16.07 17.96Z\";\nexport var mdiRobotOffOutline = \"M23 15V18C23 18.5 22.64 18.88 22.17 18.97L20.2 17H21V16H19.2L19 15.8V14C19 11.24 16.76 9 14 9H12.2L10.2 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M8.5 13.5C7.4 13.5 6.5 14.4 6.5 15.5S7.4 17.5 8.5 17.5 10.5 16.61 10.5 15.5 9.61 13.5 8.5 13.5M22.11 21.46L20.84 22.73L19.89 21.78C19.62 21.92 19.32 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 11.53 4.29 9.36 6.22 8.11L1.11 3L2.39 1.73L22.11 21.46M18.11 20L15.6 17.5C15.57 17.5 15.53 17.5 15.5 17.5C14.4 17.5 13.5 16.61 13.5 15.5C13.5 15.47 13.5 15.43 13.5 15.4L7.7 9.59C6.1 10.42 5 12.08 5 14V16H3V17H5V20H18.11Z\";\nexport var mdiRobotOutline = \"M17.5 15.5C17.5 16.61 16.61 17.5 15.5 17.5S13.5 16.61 13.5 15.5 14.4 13.5 15.5 13.5 17.5 14.4 17.5 15.5M8.5 13.5C7.4 13.5 6.5 14.4 6.5 15.5S7.4 17.5 8.5 17.5 10.5 16.61 10.5 15.5 9.61 13.5 8.5 13.5M23 15V18C23 18.55 22.55 19 22 19H21V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 10.13 6.13 7 10 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M21 16H19V14C19 11.24 16.76 9 14 9H10C7.24 9 5 11.24 5 14V16H3V17H5V20H19V17H21V16Z\";\nexport var mdiRobotVacuum = \"M12,2C14.65,2 17.19,3.06 19.07,4.93L17.65,6.35C16.15,4.85 14.12,4 12,4C9.88,4 7.84,4.84 6.35,6.35L4.93,4.93C6.81,3.06 9.35,2 12,2M3.66,6.5L5.11,7.94C4.39,9.17 4,10.57 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,10.57 19.61,9.17 18.88,7.94L20.34,6.5C21.42,8.12 22,10.04 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12C2,10.04 2.58,8.12 3.66,6.5M12,6A6,6 0 0,1 18,12C18,13.59 17.37,15.12 16.24,16.24L14.83,14.83C14.08,15.58 13.06,16 12,16C10.94,16 9.92,15.58 9.17,14.83L7.76,16.24C6.63,15.12 6,13.59 6,12A6,6 0 0,1 12,6M12,8A1,1 0 0,0 11,9A1,1 0 0,0 12,10A1,1 0 0,0 13,9A1,1 0 0,0 12,8Z\";\nexport var mdiRobotVacuumAlert = \"M10 2C12.6 2 15.2 3.1 17.1 4.9L15.7 6.3C14.1 4.8 12.1 4 10 4S5.8 4.8 4.3 6.3L2.9 4.9C4.8 3.1 7.4 2 10 2M1.7 6.5L3.2 7.9C2.4 9.2 2 10.6 2 12C2 16.4 5.6 20 10 20S18 16.4 18 12C18 10.6 17.6 9.2 16.9 7.9L18.4 6.5C19.4 8.1 20 10 20 12C20 17.5 15.5 22 10 22S0 17.5 0 12C0 10 .6 8.1 1.7 6.5M10 6C13.3 6 16 8.7 16 12C16 13.6 15.4 15.1 14.2 16.2L12.8 14.8C12.1 15.6 11.1 16 10 16S7.9 15.6 7.2 14.8L5.8 16.2C4.6 15.1 4 13.6 4 12C4 8.7 6.7 6 10 6M10 8C9.4 8 9 8.4 9 9S9.4 10 10 10 11 9.6 11 9 10.6 8 10 8M22 12V7H24V13H22M22 17V15H24V17H22Z\";\nexport var mdiRobotVacuumOff = \"M20.8 22.7L18 19.9C16.3 21.2 14.2 22 12 22C6.5 22 2 17.5 2 12C2 10 2.6 8.1 3.7 6.5L5.2 7.9C4.4 9.2 4 10.6 4 12C4 16.4 7.6 20 12 20C13.7 20 15.3 19.4 16.6 18.5L13.7 15.6C13.2 15.9 12.6 16 12 16C10.9 16 9.9 15.6 9.2 14.8L7.8 16.2C6.6 15.1 6 13.6 6 12C6 10.8 6.3 9.7 6.9 8.8L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M20 12C20 13.4 19.6 14.7 19 15.8L20.5 17.3C21.5 15.8 22 14 22 12C22 10 21.4 8.1 20.3 6.5L18.8 7.9C19.6 9.2 20 10.6 20 12M12 4C14.1 4 16.2 4.8 17.7 6.3L19.1 4.9C17.2 3.1 14.7 2 12 2C10.1 2 8.3 2.5 6.7 3.5L8.2 5C9.3 4.3 10.7 4 12 4M17.5 14.3C17.8 13.6 18 12.8 18 12C18 8.7 15.3 6 12 6C11.2 6 10.4 6.2 9.7 6.5L11.4 8.2C11.6 8.1 11.8 8 12 8C12.6 8 13 8.4 13 9C13 9.2 12.9 9.4 12.8 9.6L17.5 14.3Z\";\nexport var mdiRobotVacuumVariant = \"M5,3A2,2 0 0,0 3,5V7H5V5H19V7H21V5A2,2 0 0,0 19,3H5M8,7V9H16V7H8M3,9V12A9,9 0 0,0 12,21A9,9 0 0,0 21,12V9H19V12A7,7 0 0,1 12,19A7,7 0 0,1 5,12V9H3M12,12A2.5,2.5 0 0,0 9.5,14.5A2.5,2.5 0 0,0 12,17A2.5,2.5 0 0,0 14.5,14.5A2.5,2.5 0 0,0 12,12Z\";\nexport var mdiRobotVacuumVariantAlert = \"M3 3C1.9 3 1 3.9 1 5V7H3V5H17V7H19V5C19 3.9 18.1 3 17 3H3M6 7V9H14V7H6M1 9V12C1 17 5 21 10 21S19 17 19 12V9H17V12C17 15.9 13.9 19 10 19S3 15.9 3 12V9H1M10 12C8.6 12 7.5 13.1 7.5 14.5S8.6 17 10 17 12.5 15.9 12.5 14.5 11.4 12 10 12M21 12V7H23V13H21M21 17V15H23V17H21Z\";\nexport var mdiRobotVacuumVariantOff = \"M20.8 22.7L17.3 19.2C15.8 20.3 14 21 12 21C7 21 3 17 3 12V9H5V12C5 15.9 8.1 19 12 19C13.4 19 14.8 18.5 15.9 17.8L14 15.9C13.5 16.5 12.8 17 12 17C10.6 17 9.5 15.9 9.5 14.5C9.5 13.7 9.9 12.9 10.6 12.5L5 6.9V7H3V4.9L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M19 5V7H21V5C21 3.9 20.1 3 19 3H6.2L8.2 5H19M19 12C19 13.1 18.7 14.1 18.3 15.1L19.8 16.6C20.6 15.3 21 13.7 21 12V9H19V12M16 9V7H10.2L12.2 9H16Z\";\nexport var mdiRocket = \"M20 22L16.14 20.45C16.84 18.92 17.34 17.34 17.65 15.73L20 22M7.86 20.45L4 22L6.35 15.73C6.66 17.34 7.16 18.92 7.86 20.45M12 2C12 2 17 4 17 12C17 15.1 16.25 17.75 15.33 19.83C15 20.55 14.29 21 13.5 21H10.5C9.71 21 9 20.55 8.67 19.83C7.76 17.75 7 15.1 7 12C7 4 12 2 12 2M12 12C13.1 12 14 11.1 14 10C14 8.9 13.1 8 12 8C10.9 8 10 8.9 10 10C10 11.1 10.9 12 12 12Z\";\nexport var mdiRocketLaunch = \"M13.13 22.19L11.5 18.36C13.07 17.78 14.54 17 15.9 16.09L13.13 22.19M5.64 12.5L1.81 10.87L7.91 8.1C7 9.46 6.22 10.93 5.64 12.5M21.61 2.39C21.61 2.39 16.66 .269 11 5.93C8.81 8.12 7.5 10.53 6.65 12.64C6.37 13.39 6.56 14.21 7.11 14.77L9.24 16.89C9.79 17.45 10.61 17.63 11.36 17.35C13.5 16.53 15.88 15.19 18.07 13C23.73 7.34 21.61 2.39 21.61 2.39M14.54 9.46C13.76 8.68 13.76 7.41 14.54 6.63S16.59 5.85 17.37 6.63C18.14 7.41 18.15 8.68 17.37 9.46C16.59 10.24 15.32 10.24 14.54 9.46M8.88 16.53L7.47 15.12L8.88 16.53M6.24 22L9.88 18.36C9.54 18.27 9.21 18.12 8.91 17.91L4.83 22H6.24M2 22H3.41L8.18 17.24L6.76 15.83L2 20.59V22M2 19.17L6.09 15.09C5.88 14.79 5.73 14.47 5.64 14.12L2 17.76V19.17Z\";\nexport var mdiRocketLaunchOutline = \"M13.13 22.19L11.5 18.36C13.07 17.78 14.54 17 15.9 16.09L13.13 22.19M5.64 12.5L1.81 10.87L7.91 8.1C7 9.46 6.22 10.93 5.64 12.5M19.22 4C19.5 4 19.75 4 19.96 4.05C20.13 5.44 19.94 8.3 16.66 11.58C14.96 13.29 12.93 14.6 10.65 15.47L8.5 13.37C9.42 11.06 10.73 9.03 12.42 7.34C15.18 4.58 17.64 4 19.22 4M19.22 2C17.24 2 14.24 2.69 11 5.93C8.81 8.12 7.5 10.53 6.65 12.64C6.37 13.39 6.56 14.21 7.11 14.77L9.24 16.89C9.62 17.27 10.13 17.5 10.66 17.5C10.89 17.5 11.13 17.44 11.36 17.35C13.5 16.53 15.88 15.19 18.07 13C23.73 7.34 21.61 2.39 21.61 2.39S20.7 2 19.22 2M14.54 9.46C13.76 8.68 13.76 7.41 14.54 6.63S16.59 5.85 17.37 6.63C18.14 7.41 18.15 8.68 17.37 9.46C16.59 10.24 15.32 10.24 14.54 9.46M8.88 16.53L7.47 15.12L8.88 16.53M6.24 22L9.88 18.36C9.54 18.27 9.21 18.12 8.91 17.91L4.83 22H6.24M2 22H3.41L8.18 17.24L6.76 15.83L2 20.59V22M2 19.17L6.09 15.09C5.88 14.79 5.73 14.47 5.64 14.12L2 17.76V19.17Z\";\nexport var mdiRocketOutline = \"M12 2C12 2 7 4 7 12C7 15.1 7.76 17.75 8.67 19.83C9 20.55 9.71 21 10.5 21H13.5C14.29 21 15 20.55 15.33 19.83C16.25 17.75 17 15.1 17 12C17 4 12 2 12 2M13.5 19H10.5C9.5 16.76 9 14.41 9 12C9 7.36 10.9 5.2 12 4.33C13.1 5.2 15 7.36 15 12C15 14.41 14.5 16.76 13.5 19M20 22L16.14 20.45C16.84 18.92 17.34 17.34 17.65 15.73M7.86 20.45L4 22L6.35 15.73C6.66 17.34 7.16 18.92 7.86 20.45M12 12C10.9 12 10 11.1 10 10C10 8.9 10.9 8 12 8C13.1 8 14 8.9 14 10C14 11.1 13.1 12 12 12Z\";\nexport var mdiRodent = \"M21.33 17.39C22.73 18.66 21.8 21 19.92 21H11.06C8.25 21 6 18.75 6 15.94V15.89C3.7 15.42 2 13.41 2 11C2 8.25 4.22 6 7 6H9.5C9.8 6 10 5.77 10 5.5S9.8 5 9.5 5H7V3H9.5C10.88 3 12 4.13 12 5.5C12 6.89 10.88 8 9.5 8H7C5.34 8 4 9.33 4 11C4 12.37 4.92 13.5 6.14 13.87C6.7 11.67 8.67 10 11.06 10C11.86 10 12.66 10.22 13.36 10.55C11.95 11.34 11 12.8 11 14.5C11 15.75 11.5 16.87 12.33 17.67L13.03 16.97C12.38 16.36 12 15.47 12 14.5C12 11.91 14.34 11 15.5 11C17.58 11 19.45 12.89 18.94 15.23L21.33 17.39M18 19C18.56 19 19 18.56 19 18S18.56 17 18 17 17 17.44 17 18 17.44 19 18 19Z\";\nexport var mdiRollerShade = \"M20 19V3H4V19H2V21H22V19H20M6 19V13H11V14.8C10.6 15.1 10.2 15.6 10.2 16.2C10.2 17.2 11 18 12 18S13.8 17.2 13.8 16.2C13.8 15.6 13.5 15.1 13 14.8V13H18V19H6Z\";\nexport var mdiRollerShadeClosed = \"M20 19V3H4V19H2V21H10.25C10.25 21.97 11.03 22.75 12 22.75S13.75 21.97 13.75 21H22V19H20M6 19V17H11V19H6M13 19V17H18V19H13Z\";\nexport var mdiRollerSkate = \"M6.5 18C5.1 18 4 19.12 4 20.5S5.1 23 6.5 23 9 21.88 9 20.5 7.86 18 6.5 18M16.5 18C15.1 18 14 19.12 14 20.5S15.1 23 16.5 23 19 21.88 19 20.5 17.86 18 16.5 18M20 17C20 15.63 20.09 13.81 19.5 12.95C18.55 10.9 15.82 10.56 13.91 10.05C13 10 12 9 11.82 8H9C8.71 8 8.5 7.78 8.5 7.5C8.5 7.22 8.71 7 9 7H11.5V6H9C8.71 6 8.5 5.78 8.5 5.5C8.5 5.22 8.71 5 9 5H11.5V2H3V17H20Z\";\nexport var mdiRollerSkateOff = \"M20.84 22.73L18.95 20.84C18.78 22.06 17.75 23 16.5 23C15.1 23 14 21.88 14 20.5C14 19.24 14.93 18.2 16.14 18.03L15.11 17H3V4.9L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M9 5H11.5V2H5.2L8.5 5.32C8.59 5.13 8.77 5 9 5M12.56 9.36C12.18 9 11.9 8.5 11.82 8H11.2L12.56 9.36M19.5 12.95C18.55 10.9 15.82 10.56 13.91 10.05C13.45 10.03 13 9.77 12.6 9.4L20 16.79C20 15.45 20.06 13.76 19.5 12.95M9.2 6L10.2 7H11.5V6H9.2M6.5 18C5.1 18 4 19.12 4 20.5C4 21.88 5.1 23 6.5 23S9 21.88 9 20.5C9 19.12 7.86 18 6.5 18Z\";\nexport var mdiRollerblade = \"M4.5 18C3.12 18 2 19.12 2 20.5S3.12 23 4.5 23 7 21.88 7 20.5 5.88 18 4.5 18M18.5 18C17.12 18 16 19.12 16 20.5S17.12 23 18.5 23 21 21.88 21 20.5 19.88 18 18.5 18M20 17C20 15.63 20.09 13.81 19.5 12.95C18.55 10.9 15.82 10.56 13.91 10.05C13 10 12 9 11.82 8H9C8.71 8 8.5 7.78 8.5 7.5C8.5 7.22 8.71 7 9 7H11.5V6H9C8.71 6 8.5 5.78 8.5 5.5C8.5 5.22 8.71 5 9 5H11.5V2H3V17H20M11.5 18C10.12 18 9 19.12 9 20.5S10.12 23 11.5 23 14 21.88 14 20.5 12.88 18 11.5 18Z\";\nexport var mdiRollerbladeOff = \"M20.84 22.73L20.32 22.21C19.86 22.69 19.22 23 18.5 23C17.12 23 16 21.88 16 20.5C16 19.78 16.31 19.14 16.79 18.68L15.11 17H3V4.9L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M19.5 12.95C18.55 10.9 15.82 10.56 13.91 10.05C13.45 10.03 13 9.77 12.6 9.4L20 16.79C20 15.45 20.06 13.76 19.5 12.95M9.2 6L10.2 7H11.5V6H9.2M12.56 9.36C12.18 9 11.9 8.5 11.82 8H11.2L12.56 9.36M11.5 18C10.12 18 9 19.12 9 20.5C9 21.88 10.12 23 11.5 23S14 21.88 14 20.5C14 19.12 12.88 18 11.5 18M9 5H11.5V2H5.2L8.5 5.32C8.59 5.13 8.77 5 9 5M4.5 18C3.12 18 2 19.12 2 20.5C2 21.88 3.12 23 4.5 23S7 21.88 7 20.5C7 19.12 5.88 18 4.5 18Z\";\nexport var mdiRollupjs = \"M19.46,8.64C19.46,11.11 18.11,13.26 16.12,14.4C16,14.5 15.93,14.66 16,14.81L19.41,21.55C19.5,21.76 19.36,22 19.13,22H6.1L6.17,21.96C6.66,21.68 10.06,14.97 13.38,11.79C16.7,8.61 17.12,9.67 15.29,6.21C15.29,6.21 16.7,8.96 15.5,9.17C14.56,9.34 12.4,7.25 13.2,5.37C14,3.53 17.15,3.88 18.6,5.38C19.15,6.34 19.46,7.45 19.46,8.64M7.16,13.13C5.84,15.56 5,17.33 4.54,18.57V2.31C4.54,2.14 4.68,2 4.85,2H12.92C15.26,2.04 17.31,3.28 18.46,5.15C17.62,4.1 16.3,3.5 15,3.5C12.53,3.5 11.91,4.4 7.16,13.13Z\";\nexport var mdiRolodex = \"M19.89 5H18.5V7C18.5 8.38 17.38 9.5 16 9.5S13.5 8.38 13.5 7V5.25C13.5 5.11 13.39 5 13.25 5H10.75C10.61 5 10.5 5.11 10.5 5.25V7C10.5 8.38 9.38 9.5 8 9.5S5.5 8.38 5.5 7V5H4.11C3 4.97 2.03 5.87 2 7V19C2.03 20.13 3 21.03 4.11 21H19.89C21 21.03 21.97 20.13 22 19V7C21.97 5.87 21 4.97 19.89 5M7 18H5V16H7V18M7 14H5V12H7V14M11 18H9V16H11V18M11 14H9V12H11V14M15 18H13V16H15V18M15 14H13V12H15V14M19 18H17V16H19V18M19 14H17V12H19V14M16 8C15.45 8 15 7.55 15 7V4C15 3.45 15.45 3 16 3C16.55 3 17 3.45 17 4V7C17 7.55 16.55 8 16 8M8 8C7.45 8 7 7.55 7 7V4C7 3.45 7.45 3 8 3C8.55 3 9 3.45 9 4V7C9 7.55 8.55 8 8 8Z\";\nexport var mdiRolodexOutline = \"M7 18H5V16H7V18M7 14H5V12H7V14M11 18H9V16H11V18M11 14H9V12H11V14M15 18H13V16H15V18M15 14H13V12H15V14M19 18H17V16H19V18M19 14H17V12H19V14M16 8C15.45 8 15 7.55 15 7V4C15 3.45 15.45 3 16 3C16.55 3 17 3.45 17 4V7C17 7.55 16.55 8 16 8M8 8C7.45 8 7 7.55 7 7V4C7 3.45 7.45 3 8 3C8.55 3 9 3.45 9 4V7C9 7.55 8.55 8 8 8M19.89 5H18.5V7C18.5 8.38 17.38 9.5 16 9.5S13.5 8.38 13.5 7V5.25C13.5 5.11 13.39 5 13.25 5H10.75C10.61 5 10.5 5.11 10.5 5.25V7C10.5 8.38 9.38 9.5 8 9.5S5.5 8.38 5.5 7V5H4.11C3 4.97 2.03 5.87 2 7V19C2.03 20.13 3 21.03 4.11 21H19.89C21 21.03 21.97 20.13 22 19V7C21.97 5.87 21 4.97 19.89 5M20 19H4V11H20V19Z\";\nexport var mdiRomanNumeral1 = \"M14 7V9H13V15H14V17H10V15H11V9H10V7H14Z\";\nexport var mdiRomanNumeral10 = \"M9 7L11 12L9 17H11L12 14.5L13 17H15L13 12L15 7H13L12 9.5L11 7H9Z\";\nexport var mdiRomanNumeral2 = \"M11 7V9H10V15H11V17H7V15H8V9H7V7H11M17 7V9H16V15H17V17H13V15H14V9H13V7H17Z\";\nexport var mdiRomanNumeral3 = \"M9 7V9H8V15H9V17H5V15H6V9H5V7H9M14 7V9H13V15H14V17H10V15H11V9H10V7H14M19 7V9H18V15H19V17H15V15H16V9H15V7H19Z\";\nexport var mdiRomanNumeral4 = \"M12 7L14 17H16L18 7H16L15 12L14 7H12M11 7V9H10V15H11V17H7V15H8V9H7V7H11Z\";\nexport var mdiRomanNumeral5 = \"M9 7L11 17H13L15 7H13L12 12L11 7H9Z\";\nexport var mdiRomanNumeral6 = \"M6 7L8 17H10L12 7H10L9 12L8 7H6M17 7V9H16V15H17V17H13V15H14V9H13V7H17Z\";\nexport var mdiRomanNumeral7 = \"M4 7L6 17H8L10 7H8L7 12L6 7H4M15 7V9H14V15H15V17H11V15H12V9H11V7H15M20 7V9H19V15H20V17H16V15H17V9H16V7H20Z\";\nexport var mdiRomanNumeral8 = \"M1 7L3 17H5L7 7H5L4 12L3 7H1M12 7V9H11V15H12V17H8V15H9V9H8V7H12M17 7V9H16V15H17V17H13V15H14V9H13V7H17M22 7V9H21V15H22V17H18V15H19V9H18V7H22Z\";\nexport var mdiRomanNumeral9 = \"M11 7V9H10V15H11V17H7V15H8V9H7V7H11M12 7L14 12L12 17H14L15 14.5L16 17H18L16 12L18 7H16L15 9.5L14 7H12Z\";\nexport var mdiRoomService = \"M12,5A2,2 0 0,1 14,7C14,7.24 13.96,7.47 13.88,7.69C17.95,8.5 21,11.91 21,16H3C3,11.91 6.05,8.5 10.12,7.69C10.04,7.47 10,7.24 10,7A2,2 0 0,1 12,5M22,19H2V17H22V19Z\";\nexport var mdiRoomServiceOutline = \"M12,5A2,2 0 0,1 14,7C14,7.24 13.96,7.47 13.88,7.69C17.95,8.5 21,11.91 21,16H3C3,11.91 6.05,8.5 10.12,7.69C10.04,7.47 10,7.24 10,7A2,2 0 0,1 12,5M22,19H2V17H22V19M12,9.5C8.89,9.5 6.25,11.39 5.34,14H18.66C17.75,11.39 15.11,9.5 12,9.5Z\";\nexport var mdiRotate360 = \"M12 7C6.5 7 2 9.2 2 12C2 14.2 4.9 16.1 9 16.8V20L13 16L9 12V14.7C5.8 14.1 4 12.8 4 12C4 10.9 7 9 12 9S20 10.9 20 12C20 12.7 18.5 13.9 16 14.5V16.6C19.5 15.8 22 14.1 22 12C22 9.2 17.5 7 12 7Z\";\nexport var mdiRotate3d = \"M7.47,21.5C4.2,19.94 1.86,16.76 1.5,13H0C0.5,19.16 5.66,24 11.95,24L12.61,23.97L8.8,20.16L7.47,21.5M8.36,14.96C8.17,14.96 8,14.93 7.84,14.88C7.68,14.82 7.55,14.75 7.44,14.64C7.33,14.54 7.24,14.42 7.18,14.27C7.12,14.13 7.09,13.97 7.09,13.8H5.79C5.79,14.16 5.86,14.5 6,14.75C6.14,15 6.33,15.25 6.56,15.44C6.8,15.62 7.07,15.76 7.38,15.85C7.68,15.95 8,16 8.34,16C8.71,16 9.06,15.95 9.37,15.85C9.69,15.75 9.97,15.6 10.2,15.41C10.43,15.22 10.62,15 10.75,14.69C10.88,14.4 10.95,14.08 10.95,13.72C10.95,13.53 10.93,13.34 10.88,13.16C10.83,13 10.76,12.81 10.65,12.65C10.55,12.5 10.41,12.35 10.25,12.22C10.08,12.09 9.88,12 9.64,11.91C9.84,11.82 10,11.71 10.16,11.58C10.31,11.45 10.43,11.31 10.53,11.16C10.63,11 10.7,10.86 10.75,10.7C10.8,10.54 10.82,10.38 10.82,10.22C10.82,9.86 10.76,9.54 10.64,9.26C10.5,9 10.35,8.75 10.13,8.57C9.93,8.38 9.66,8.24 9.36,8.14C9.05,8.05 8.71,8 8.34,8C8,8 7.65,8.05 7.34,8.16C7.04,8.27 6.77,8.42 6.55,8.61C6.34,8.8 6.17,9 6.04,9.28C5.92,9.54 5.86,9.82 5.86,10.13H7.16C7.16,9.96 7.19,9.81 7.25,9.68C7.31,9.55 7.39,9.43 7.5,9.34C7.61,9.25 7.73,9.17 7.88,9.12C8.03,9.07 8.18,9.04 8.36,9.04C8.76,9.04 9.06,9.14 9.25,9.35C9.44,9.55 9.54,9.84 9.54,10.21C9.54,10.39 9.5,10.55 9.46,10.7C9.41,10.85 9.32,10.97 9.21,11.07C9.1,11.17 8.96,11.25 8.8,11.31C8.64,11.37 8.44,11.4 8.22,11.4H7.45V12.43H8.22C8.44,12.43 8.64,12.45 8.82,12.5C9,12.55 9.15,12.63 9.27,12.73C9.39,12.84 9.5,12.97 9.56,13.13C9.63,13.29 9.66,13.5 9.66,13.7C9.66,14.11 9.54,14.42 9.31,14.63C9.08,14.86 8.76,14.96 8.36,14.96M16.91,9.04C16.59,8.71 16.21,8.45 15.77,8.27C15.34,8.09 14.85,8 14.31,8H11.95V16H14.25C14.8,16 15.31,15.91 15.76,15.73C16.21,15.55 16.6,15.3 16.92,14.97C17.24,14.64 17.5,14.24 17.66,13.78C17.83,13.31 17.92,12.79 17.92,12.21V11.81C17.92,11.23 17.83,10.71 17.66,10.24C17.5,9.77 17.23,9.37 16.91,9.04M16.5,12.2C16.5,12.62 16.47,13 16.38,13.33C16.28,13.66 16.14,13.95 15.95,14.18C15.76,14.41 15.5,14.59 15.24,14.71C14.95,14.83 14.62,14.89 14.25,14.89H13.34V9.12H14.31C15.03,9.12 15.58,9.35 15.95,9.81C16.33,10.27 16.5,10.93 16.5,11.8M11.95,0L11.29,0.03L15.1,3.84L16.43,2.5C19.7,4.06 22.04,7.23 22.39,11H23.89C23.39,4.84 18.24,0 11.95,0Z\";\nexport var mdiRotate3dVariant = \"M12,5C16.97,5 21,7.69 21,11C21,12.68 19.96,14.2 18.29,15.29C19.36,14.42 20,13.32 20,12.13C20,9.29 16.42,7 12,7V10L8,6L12,2V5M12,19C7.03,19 3,16.31 3,13C3,11.32 4.04,9.8 5.71,8.71C4.64,9.58 4,10.68 4,11.88C4,14.71 7.58,17 12,17V14L16,18L12,22V19Z\";\nexport var mdiRotateLeft = \"M13,4.07V1L8.45,5.55L13,10V6.09C15.84,6.57 18,9.03 18,12C18,14.97 15.84,17.43 13,17.91V19.93C16.95,19.44 20,16.08 20,12C20,7.92 16.95,4.56 13,4.07M7.1,18.32C8.26,19.22 9.61,19.76 11,19.93V17.9C10.13,17.75 9.29,17.41 8.54,16.87L7.1,18.32M6.09,13H4.07C4.24,14.39 4.79,15.73 5.69,16.89L7.1,15.47C6.58,14.72 6.23,13.88 6.09,13M7.11,8.53L5.7,7.11C4.8,8.27 4.24,9.61 4.07,11H6.09C6.23,10.13 6.58,9.28 7.11,8.53Z\";\nexport var mdiRotateLeftVariant = \"M4,2H7A2,2 0 0,1 9,4V20A2,2 0 0,1 7,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M20,15A2,2 0 0,1 22,17V20A2,2 0 0,1 20,22H11V15H20M14,4A8,8 0 0,1 22,12L21.94,13H19.92L20,12A6,6 0 0,0 14,6V9L10,5L14,1V4Z\";\nexport var mdiRotateOrbit = \"M8,14.25L4.75,11H7C7.25,5.39 9.39,1 12,1C14,1 15.77,3.64 16.55,7.45C20.36,8.23 23,10 23,12C23,13.83 20.83,15.43 17.6,16.3L17.89,14.27C19.8,13.72 21,12.91 21,12C21,10.94 19.35,10 16.87,9.5C16.95,10.29 17,11.13 17,12C17,18.08 14.76,23 12,23C10.17,23 8.57,20.83 7.7,17.6L9.73,17.89C10.28,19.8 11.09,21 12,21C13.66,21 15,16.97 15,12C15,11 14.95,10.05 14.85,9.15C13.95,9.05 13,9 12,9L10.14,9.06L10.43,7.05L12,7C12.87,7 13.71,7.05 14.5,7.13C14,4.65 13.06,3 12,3C10.46,3 9.18,6.5 9,11H11.25L8,14.25M14.25,16L11,19.25V17C5.39,16.75 1,14.61 1,12C1,10.17 3.17,8.57 6.4,7.7L6.11,9.73C4.2,10.28 3,11.09 3,12C3,13.54 6.5,14.82 11,15V12.75L14.25,16Z\";\nexport var mdiRotateRight = \"M16.89,15.5L18.31,16.89C19.21,15.73 19.76,14.39 19.93,13H17.91C17.77,13.87 17.43,14.72 16.89,15.5M13,17.9V19.92C14.39,19.75 15.74,19.21 16.9,18.31L15.46,16.87C14.71,17.41 13.87,17.76 13,17.9M19.93,11C19.76,9.61 19.21,8.27 18.31,7.11L16.89,8.53C17.43,9.28 17.77,10.13 17.91,11M15.55,5.55L11,1V4.07C7.06,4.56 4,7.92 4,12C4,16.08 7.05,19.44 11,19.93V17.91C8.16,17.43 6,14.97 6,12C6,9.03 8.16,6.57 11,6.09V10L15.55,5.55Z\";\nexport var mdiRotateRightVariant = \"M10,4V1L14,5L10,9V6A6,6 0 0,0 4,12L4.08,13H2.06L2,12A8,8 0 0,1 10,4M17,2H20A2,2 0 0,1 22,4V20A2,2 0 0,1 20,22H17A2,2 0 0,1 15,20V4A2,2 0 0,1 17,2M4,15H13V22H4A2,2 0 0,1 2,20V17A2,2 0 0,1 4,15Z\";\nexport var mdiRoundedCorner = \"M19,19H21V21H19V19M19,17H21V15H19V17M3,13H5V11H3V13M3,17H5V15H3V17M3,9H5V7H3V9M3,5H5V3H3V5M7,5H9V3H7V5M15,21H17V19H15V21M11,21H13V19H11V21M15,21H17V19H15V21M7,21H9V19H7V21M3,21H5V19H3V21M21,8A5,5 0 0,0 16,3H11V5H16A3,3 0 0,1 19,8V13H21V8Z\";\nexport var mdiRouter = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M12 20C7.58 20 4 16.42 4 12C4 7.58 7.58 4 12 4C16.42 4 20 7.58 20 12C20 16.42 16.42 20 12 20M13 13V16H15L12 19L9 16H11V13M5 13H8V15L11 12L8 9V11H5M11 11V8H9L12 5L15 8H13V11M19 11H16V9L13 12L16 15V13H19\";\nexport var mdiRouterNetwork = \"M5 9C3.9 9 3 9.9 3 11V15C3 16.11 3.9 17 5 17H11V19H10C9.45 19 9 19.45 9 20H2V22H9C9 22.55 9.45 23 10 23H14C14.55 23 15 22.55 15 22H22V20H15C15 19.45 14.55 19 14 19H13V17H19C20.11 17 21 16.11 21 15V11C21 9.9 20.11 9 19 9H5M6 12H8V14H6V12M9.5 12H11.5V14H9.5V12M13 12H15V14H13V12Z\";\nexport var mdiRouterNetworkWireless = \"M21 3.1L20.2 3.9C19 2.8 17.5 2.2 16 2.2C14.5 2.2 13 2.8 11.8 3.9L11 3.1C12.4 1.7 14.2 1 16 1C17.8 1 19.6 1.7 21 3.1M16 3.3C17.2 3.3 18.4 3.8 19.3 4.7L18.5 5.5C17.8 4.8 16.9 4.5 16 4.5C15.1 4.5 14.2 4.8 13.5 5.5L12.7 4.7C13.6 3.8 14.8 3.3 16 3.3M17 10H19C19.53 10 20.04 10.21 20.41 10.59C20.79 10.96 21 11.47 21 12V14C21 14.53 20.79 15.04 20.41 15.41C20.04 15.79 19.53 16 19 16H13V18H14C14.55 18 15 18.45 15 19H22V21H15C15 21.55 14.55 22 14 22H10C9.45 22 9 21.55 9 21H2V19H9C9 18.45 9.45 18 10 18H11V16H5C4.47 16 3.96 15.79 3.59 15.41C3.21 15.04 3 14.53 3 14V12C3 11.47 3.21 10.96 3.59 10.59C3.96 10.21 4.47 10 5 10H15V6H17V10M5 14H7V12H5V14M8.5 14H10.5V12H8.5V14M12 14H14V12H12V14Z\";\nexport var mdiRouterWireless = \"M20.2,5.9L21,5.1C19.6,3.7 17.8,3 16,3C14.2,3 12.4,3.7 11,5.1L11.8,5.9C13,4.8 14.5,4.2 16,4.2C17.5,4.2 19,4.8 20.2,5.9M19.3,6.7C18.4,5.8 17.2,5.3 16,5.3C14.8,5.3 13.6,5.8 12.7,6.7L13.5,7.5C14.2,6.8 15.1,6.5 16,6.5C16.9,6.5 17.8,6.8 18.5,7.5L19.3,6.7M19,13H17V9H15V13H5A2,2 0 0,0 3,15V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V15A2,2 0 0,0 19,13M8,18H6V16H8V18M11.5,18H9.5V16H11.5V18M15,18H13V16H15V18Z\";\nexport var mdiRouterWirelessOff = \"M11.8 5.9L11 5.1C12.4 3.7 14.2 3 16 3S19.6 3.7 21 5.1L20.2 5.9C19 4.8 17.5 4.2 16 4.2S13 4.8 11.8 5.9M21 15C21 13.9 20.1 13 19 13H17V9H15V11.8L21 17.8V15M18.5 7.5L19.3 6.7C18.4 5.8 17.2 5.3 16 5.3S13.6 5.8 12.7 6.7L13.5 7.5C14.2 6.8 15.1 6.5 16 6.5C16.9 6.5 17.8 6.8 18.5 7.5M22.1 21.5L20.8 22.8L19.1 21H5C3.9 21 3 20.1 3 19V15C3 13.9 3.9 13 5 13H11.1L1.1 3L2.4 1.7L22.1 21.5M8 16H6V18H8V16M11.5 16H9.5V18H11.5V16M15 16.9L14.1 16H13V18H15V16.9Z\";\nexport var mdiRouterWirelessSettings = \"M20.2,4.9C19,3.8 17.5,3.2 16,3.2C14.5,3.2 13,3.8 11.8,4.9L11,4.1C12.4,2.7 14.2,2 16,2C17.8,2 19.6,2.7 21,4.1L20.2,4.9M19.3,5.7L18.5,6.5C17.8,5.8 16.9,5.5 16,5.5C15.1,5.5 14.2,5.8 13.5,6.5L12.7,5.7C13.6,4.8 14.8,4.3 16,4.3C17.2,4.3 18.4,4.8 19.3,5.7M19,12A2,2 0 0,1 21,14V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V14A2,2 0 0,1 5,12H15V8H17V12H19M8,17V15H6V17H8M11.5,17V15H9.5V17H11.5M15,17V15H13V17H15M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiRoutes = \"M11,10H5L3,8L5,6H11V3L12,2L13,3V4H19L21,6L19,8H13V10H19L21,12L19,14H13V20A2,2 0 0,1 15,22H9A2,2 0 0,1 11,20V10Z\";\nexport var mdiRoutesClock = \"M16.5 13H15V16.69L18.19 18.53L18.94 17.23L16.5 15.82V13M16 9C14.04 9 12.27 9.82 11 11.12V7H17L19 5L17 3H11V2L10 1L9 2V6H3L1 8L3 10H9V20C7.9 20 7 20.9 7 22H12.41C13.46 22.63 14.69 23 16 23C19.87 23 23 19.87 23 16S19.87 9 16 9M16 20.85C13.32 20.85 11.15 18.68 11.15 16S13.32 11.15 16 11.15 20.85 13.32 20.85 16 18.68 20.85 16 20.85Z\";\nexport var mdiRowing = \"M8.5,14.5L4,19L5.5,20.5L9,17H11L8.5,14.5M15,1A2,2 0 0,0 13,3A2,2 0 0,0 15,5A2,2 0 0,0 17,3A2,2 0 0,0 15,1M21,21L18,24L15,21V19.5L7.91,12.41C7.6,12.46 7.3,12.5 7,12.5V10.32C8.66,10.35 10.61,9.45 11.67,8.28L13.07,6.73C13.26,6.5 13.5,6.35 13.76,6.23C14.05,6.09 14.38,6 14.72,6H14.75C16,6 17,7 17,8.26V14C17,14.85 16.65,15.62 16.08,16.17L12.5,12.59V10.32C11.87,10.84 11.07,11.34 10.21,11.71L16.5,18H18L21,21Z\";\nexport var mdiRss = \"M6.18,15.64A2.18,2.18 0 0,1 8.36,17.82C8.36,19 7.38,20 6.18,20C5,20 4,19 4,17.82A2.18,2.18 0 0,1 6.18,15.64M4,4.44A15.56,15.56 0 0,1 19.56,20H16.73A12.73,12.73 0 0,0 4,7.27V4.44M4,10.1A9.9,9.9 0 0,1 13.9,20H11.07A7.07,7.07 0 0,0 4,12.93V10.1Z\";\nexport var mdiRssBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M7.5,15A1.5,1.5 0 0,0 6,16.5A1.5,1.5 0 0,0 7.5,18A1.5,1.5 0 0,0 9,16.5A1.5,1.5 0 0,0 7.5,15M6,10V12A6,6 0 0,1 12,18H14A8,8 0 0,0 6,10M6,6V8A10,10 0 0,1 16,18H18A12,12 0 0,0 6,6Z\";\nexport var mdiRssOff = \"M2.5,3.77L3.78,2.5L21.5,20.22L20.23,21.5L18.73,20H16.73C16.73,19.25 16.67,18.5 16.54,17.81L6.19,7.46C5.5,7.33 4.75,7.27 4,7.27V5.27L2.5,3.77M6.18,15.64A2.18,2.18 0 0,1 8.36,17.82C8.36,19 7.38,20 6.18,20C5,20 4,19 4,17.82A2.18,2.18 0 0,1 6.18,15.64M4,10.1A9.9,9.9 0 0,1 13.9,20H11.07A7.07,7.07 0 0,0 4,12.93V10.1M9.13,5.31C13.59,6.87 17.13,10.41 18.69,14.87L9.13,5.31Z\";\nexport var mdiRug = \"M12 14C10.9 14 10 13.11 10 12S10.9 10 12 10 14 10.9 14 12 13.11 14 12 14M23 19H1V17H4V15H1V13H4V11H1V9H4V7H1V5H23V7H20V9H23V11H20V13H23V15H20V17H23V19M12 15.92C12.62 16.62 13.66 16.81 14.5 16.33C15.34 15.85 15.69 14.84 15.4 13.96C16.31 13.78 17 12.97 17 12S16.31 10.22 15.4 10.04C15.69 9.16 15.34 8.15 14.5 7.67C13.66 7.19 12.62 7.38 12 8.08C11.38 7.38 10.34 7.19 9.5 7.67C8.66 8.15 8.31 9.16 8.61 10.04C7.69 10.22 7 11.03 7 12S7.69 13.78 8.61 13.96C8.31 14.84 8.66 15.85 9.5 16.33C10.34 16.82 11.38 16.62 12 15.92Z\";\nexport var mdiRugby = \"M16.22,16.22C18.25,14.19 19.33,11.5 19.45,8.2C18.36,10.61 16.81,12.81 14.81,14.81C12.81,16.81 10.61,18.36 8.2,19.45C11.5,19.36 14.16,18.28 16.22,16.22M7.78,7.78C5.75,9.81 4.67,12.5 4.55,15.8C5,14.8 5.7,13.65 6.61,12.35C7.5,11.05 8.38,10 9.19,9.19C11.19,7.19 13.39,5.64 15.8,4.55C12.5,4.64 9.84,5.72 7.78,7.78M20.5,3.5C21,4.05 21.34,5.11 21.47,6.7C21.59,8.3 21.35,10.16 20.74,12.3C20.13,14.45 19.11,16.23 17.67,17.67C16.36,19 14.8,19.95 13,20.55C11.21,21.16 9.44,21.47 7.69,21.47C5.56,21.47 4.17,21.14 3.5,20.5C3,19.95 2.66,18.89 2.53,17.3C2.41,15.7 2.65,13.84 3.26,11.7C3.87,9.55 4.89,7.77 6.33,6.33C7.64,5 9.2,4.05 11,3.45C12.79,2.84 14.56,2.53 16.31,2.53C18.44,2.53 19.83,2.86 20.5,3.5Z\";\nexport var mdiRuler = \"M1.39,18.36L3.16,16.6L4.58,18L5.64,16.95L4.22,15.54L5.64,14.12L8.11,16.6L9.17,15.54L6.7,13.06L8.11,11.65L9.53,13.06L10.59,12L9.17,10.59L10.59,9.17L13.06,11.65L14.12,10.59L11.65,8.11L13.06,6.7L14.47,8.11L15.54,7.05L14.12,5.64L15.54,4.22L18,6.7L19.07,5.64L16.6,3.16L18.36,1.39L22.61,5.64L5.64,22.61L1.39,18.36Z\";\nexport var mdiRulerSquare = \"M3,5V21H9V19.5H7V18H9V16.5H5V15H9V13.5H7V12H9V10.5H5V9H9V5H10.5V9H12V7H13.5V9H15V5H16.5V9H18V7H19.5V9H21V3H5A2,2 0 0,0 3,5M6,7A1,1 0 0,1 5,6A1,1 0 0,1 6,5A1,1 0 0,1 7,6A1,1 0 0,1 6,7Z\";\nexport var mdiRulerSquareCompass = \"M20 19.88V22L18.2 20.83L13.41 11.83A4.94 4.94 0 0 0 15.19 10.83M15 7A3 3 0 0 1 12 10A3.27 3.27 0 0 1 11.56 10L5.8 20.83L4 22V19.88L9.79 9A3 3 0 0 1 12 4V2A1 1 0 0 1 13 3V4.18A3 3 0 0 1 15 7M13 7A1 1 0 1 0 12 8A1 1 0 0 0 13 7M4.22 10L6 11.8L4.56 14.56L2.1 12.1M12 17.76L10.5 16.25L9 19L12 22L15 19L13.53 16.23M19.78 10L18 11.8L19.5 14.56L21.9 12.1Z\";\nexport var mdiRun = \"M13.5,5.5C14.59,5.5 15.5,4.58 15.5,3.5C15.5,2.38 14.59,1.5 13.5,1.5C12.39,1.5 11.5,2.38 11.5,3.5C11.5,4.58 12.39,5.5 13.5,5.5M9.89,19.38L10.89,15L13,17V23H15V15.5L12.89,13.5L13.5,10.5C14.79,12 16.79,13 19,13V11C17.09,11 15.5,10 14.69,8.58L13.69,7C13.29,6.38 12.69,6 12,6C11.69,6 11.5,6.08 11.19,6.08L6,8.28V13H8V9.58L9.79,8.88L8.19,17L3.29,16L2.89,18L9.89,19.38Z\";\nexport var mdiRunFast = \"M16.5,5.5A2,2 0 0,0 18.5,3.5A2,2 0 0,0 16.5,1.5A2,2 0 0,0 14.5,3.5A2,2 0 0,0 16.5,5.5M12.9,19.4L13.9,15L16,17V23H18V15.5L15.9,13.5L16.5,10.5C17.89,12.09 19.89,13 22,13V11C20.24,11.03 18.6,10.11 17.7,8.6L16.7,7C16.34,6.4 15.7,6 15,6C14.7,6 14.5,6.1 14.2,6.1L9,8.3V13H11V9.6L12.8,8.9L11.2,17L6.3,16L5.9,18L12.9,19.4M4,9A1,1 0 0,1 3,8A1,1 0 0,1 4,7H7V9H4M5,5A1,1 0 0,1 4,4A1,1 0 0,1 5,3H10V5H5M3,13A1,1 0 0,1 2,12A1,1 0 0,1 3,11H7V13H3Z\";\nexport var mdiRvTruck = \"M20 8H22V6L20 4H3A2 2 0 0 0 1 6V15A2 2 0 0 0 3 17H4A3 3 0 0 0 7 20A3 3 0 0 0 10 17H15A3 3 0 0 0 21 17H23V12M7 18.5A1.5 1.5 0 0 1 7 15.5A1.5 1.5 0 0 1 7 18.5M9 12H3V9H9M14 15H11V9H14M18 18.5A1.5 1.5 0 1 1 19.5 17A1.54 1.54 0 0 1 18 18.5M17 12V9.5H19.5L21.5 12Z\";\nexport var mdiSack = \"M16,9C20,11 21,18 21,18C21,18 22,22 16,22C10,22 8,22 8,22C2,22 3,18 3,18C3,18 4,11 8,9M14,4L12,2L10,4L6,2L8,7H16L18,2L14,4Z\";\nexport var mdiSackOutline = \"M19 18.28V18.05C18.95 17.88 18.9 17.63 18.83 17.32C18.69 16.69 18.46 15.85 18.13 14.95C17.5 13.23 16.58 11.74 15.47 11H8.53C7.42 11.74 6.5 13.23 5.87 14.95C5.54 15.85 5.31 16.69 5.17 17.32C5.1 17.63 5.05 17.88 5 18.05V18.29L4.97 18.39L4.95 18.45C4.94 18.5 4.94 18.55 4.94 18.63C4.94 18.79 4.97 18.96 5.04 19.11C5.09 19.21 5.5 20 8 20H16C18.5 20 18.91 19.21 18.96 19.11C19.03 18.96 19.06 18.79 19.06 18.63C19.06 18.55 19.06 18.5 19.05 18.45L19.03 18.39L19 18.29V18.28M3 18C3 18 4 11 8 9H16C20 11 21 18 21 18C21 18 22 22 16 22H8C2 22 3 18 3 18M10 4L12 2L14 4L18 2L16 7H8L6 2L10 4Z\";\nexport var mdiSackPercent = \"M8,7L6,2L10,4L12,2L14,4L18,2L16,7H8M16,22C10,22 8,22 8,22C2,22 3,18 3,18C3,18 4,11 8,9H16C20,11 21,18 21,18C21,18 22,22 16,22M7.5,12.5A1.5,1.5 0 0,0 9,14A1.5,1.5 0 0,0 10.5,12.5A1.5,1.5 0 0,0 9,11A1.5,1.5 0 0,0 7.5,12.5M16.5,18.5A1.5,1.5 0 0,0 15,17A1.5,1.5 0 0,0 13.5,18.5A1.5,1.5 0 0,0 15,20A1.5,1.5 0 0,0 16.5,18.5M16.5,12.35L15.15,11L7.5,18.65L8.87,20L16.5,12.35Z\";\nexport var mdiSafe = \"M4,4A2,2 0 0,0 2,6V17A2,2 0 0,0 4,19V20H6V19H17V20H19V19A2,2 0 0,0 21,17V16H22V14H21V9H22V7H21V6A2,2 0 0,0 19,4H4M4,6H19V17H4V6M13.5,7.5A4,4 0 0,0 9.5,11.5A4,4 0 0,0 13.5,15.5A4,4 0 0,0 17.5,11.5A4,4 0 0,0 13.5,7.5M5,9V14H7V9H5M13.5,9.5A2,2 0 0,1 15.5,11.5A2,2 0 0,1 13.5,13.5A2,2 0 0,1 11.5,11.5A2,2 0 0,1 13.5,9.5Z\";\nexport var mdiSafeSquare = \"M20 2C21.1 2 22 2.9 22 4V20C22 21.1 21.1 22 20 22H19V23H15V22H9V23H5V22H4C2.9 22 2 21.1 2 20V4C2 2.9 2.9 2 4 2H20M17 12C17 11 16.7 10 16.2 9.2L17.7 7.7L16.3 6.3L14.8 7.8C14 7.3 13 7 12 7C11 7 10 7.3 9.2 7.8L7.8 6.3L6.3 7.8L7.8 9.3C7.3 10 7 11 7 12C7 13 7.3 14 7.8 14.8L6.3 16.3L7.8 17.7L9.3 16.2C10 16.7 11 17 12 17C13 17 14 16.7 14.8 16.2L16.3 17.7L17.7 16.3L16.2 14.8C16.7 14 17 13 17 12M12 9C13.7 9 15 10.3 15 12C15 13.7 13.7 15 12 15C10.3 15 9 13.7 9 12C9 10.3 10.3 9 12 9M12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14Z\";\nexport var mdiSafeSquareOutline = \"M10 12C10 10.9 10.9 10 12 10C13.1 10 14 10.9 14 12C14 13.1 13.1 14 12 14C10.9 14 10 13.1 10 12M7.8 17.7L6.3 16.3L7.8 14.8C7.3 14 7 13 7 12C7 11 7.3 10 7.8 9.3L6.3 7.8L7.8 6.3L9.2 7.8C10 7.3 11 7 12 7C13 7 14 7.3 14.8 7.8L16.3 6.3L17.7 7.7L16.2 9.2C16.7 10 17 11 17 12C17 13 16.7 14 16.2 14.8L17.7 16.3L16.3 17.7L14.8 16.2C14 16.7 13 17 12 17C11 17 10 16.7 9.3 16.2L7.8 17.7M12 9C10.3 9 9 10.3 9 12C9 13.7 10.3 15 12 15C13.7 15 15 13.7 15 12C15 10.3 13.7 9 12 9M20 2C21.1 2 22 2.9 22 4V20C22 21.1 21.1 22 20 22H19V23H15V22H9V23H5V22H4C2.9 22 2 21.1 2 20V4C2 2.9 2.9 2 4 2H20M20 20V4H4V20H20Z\";\nexport var mdiSafetyGoggles = \"M18,9C19.11,9 20,9.89 20,11V14C20,15.11 19.11,16 18,16H15.77L14.53,14.77C13.78,14 12.77,13.6 11.7,13.6C10.63,13.6 9.63,14 8.87,14.77L7.64,16H6C4.89,16 4,15.11 4,14V11C4,9.89 4.89,9 6,9H18M18,7H6A4,4 0 0,0 2,11H2L1,11V14H2V14A4,4 0 0,0 6,18H8.5C8.54,17.94 8.59,17.88 10.29,16.18C10.68,15.79 11.19,15.6 11.7,15.6C12.22,15.6 12.73,15.79 13.12,16.18L14.91,18H18A4,4 0 0,0 22,14H22L23,14V11H22V11A4,4 0 0,0 18,7Z\";\nexport var mdiSailBoat = \"M3 13.5L11 2.03V13.5H3M12.5 13.5C13.85 9.75 13.67 4.71 12.5 1C17.26 2.54 20.9 8.4 20.96 13.5H12.5M21.1 17.08C20.69 17.72 20.21 18.27 19.65 18.74C19 18.45 18.42 18 17.96 17.5C16.47 19.43 13.46 19.43 11.97 17.5C10.5 19.43 7.47 19.43 6 17.5C5.5 18 4.95 18.45 4.3 18.74C3.16 17.8 2.3 16.46 2 15H21.94C21.78 15.75 21.5 16.44 21.1 17.08M20.96 23C19.9 23 18.9 22.75 17.96 22.25C16.12 23.25 13.81 23.25 11.97 22.25C10.13 23.25 7.82 23.25 6 22.25C4.77 22.94 3.36 23.05 2 23V21C3.41 21.05 4.77 20.9 6 20C7.74 21.25 10.21 21.25 11.97 20C13.74 21.25 16.2 21.25 17.96 20C19.17 20.9 20.54 21.05 21.94 21V23H20.96Z\";\nexport var mdiSailBoatSink = \"M20.96 21C19.9 21 18.9 20.74 17.96 20.24C16.12 21.24 13.81 21.24 11.97 20.24C10.13 21.24 7.82 21.24 6 20.24C4.77 20.93 3.36 21.04 2 21V19C3.41 19.04 4.77 18.89 6 18C7.74 19.24 10.21 19.24 11.97 18C13.74 19.24 16.2 19.24 17.96 18C19.17 18.89 20.54 19.04 21.94 19V21H20.96M22 3.5L7.11 5.96L13.11 12.17L22 3.5M10.81 16.36L11.97 15.54L13.12 16.36C13.65 16.72 14.3 16.93 14.97 16.93C15.12 16.93 15.28 16.91 15.43 16.89L5.2 6.31C4.29 7.65 3.9 9.32 4 10.92L9.74 16.83C10.13 16.74 10.5 16.58 10.81 16.36Z\";\nexport var mdiSale = \"M18.65,2.85L19.26,6.71L22.77,8.5L21,12L22.78,15.5L19.24,17.29L18.63,21.15L14.74,20.54L11.97,23.3L9.19,20.5L5.33,21.14L4.71,17.25L1.22,15.47L3,11.97L1.23,8.5L4.74,6.69L5.35,2.86L9.22,3.5L12,0.69L14.77,3.46L18.65,2.85M9.5,7A1.5,1.5 0 0,0 8,8.5A1.5,1.5 0 0,0 9.5,10A1.5,1.5 0 0,0 11,8.5A1.5,1.5 0 0,0 9.5,7M14.5,14A1.5,1.5 0 0,0 13,15.5A1.5,1.5 0 0,0 14.5,17A1.5,1.5 0 0,0 16,15.5A1.5,1.5 0 0,0 14.5,14M8.41,17L17,8.41L15.59,7L7,15.59L8.41,17Z\";\nexport var mdiSaleOutline = \"M9.5 7C10.33 7 11 7.67 11 8.5C11 9.33 10.33 10 9.5 10C8.67 10 8 9.33 8 8.5C8 7.67 8.67 7 9.5 7M14.5 14C15.33 14 16 14.67 16 15.5C16 16.33 15.33 17 14.5 17C13.67 17 13 16.33 13 15.5C13 14.67 13.67 14 14.5 14M8.41 17L7 15.59L15.59 7L17 8.41L8.41 17M18.65 2.85L19.26 6.71L22.77 8.5L21 12L22.78 15.5L19.24 17.29L18.63 21.15L14.74 20.54L11.97 23.31L9.19 20.5L5.33 21.14L4.71 17.25L1.22 15.47L3 11.97L1.23 8.5L4.74 6.69L5.35 2.87L9.22 3.5L12 .695L14.76 3.46L18.65 2.85M20.1 9.37L17.5 8L17 5.11L14.1 5.53L12 3.5L9.9 5.53L7 5.11L6.5 8L3.9 9.37L5.2 12L3.9 14.63L6.5 16L7 18.89L9.9 18.47L12 20.5L14.1 18.47L17 18.89L17.5 16L20.1 14.63L18.8 12L20.1 9.37Z\";\nexport var mdiSalesforce = \"M18.38,6.37C17.68,6.37 17.07,6.58 16.47,6.78C15.77,5.57 14.46,4.77 13.05,4.77C11.95,4.77 10.95,5.27 10.24,5.97C9.44,4.97 8.23,4.26 6.83,4.26C4.5,4.26 2.5,6.17 2.5,8.5C2.5,9.09 2.71,9.69 2.91,10.29C1.8,10.9 1,12.1 1,13.5C1,15.5 2.61,17.22 4.62,17.22C4.92,17.22 5.22,17.22 5.42,17.12C5.82,18.63 7.33,19.74 9.14,19.74C10.84,19.74 12.25,18.73 12.75,17.32C13.26,17.53 13.76,17.73 14.26,17.73C15.57,17.73 16.77,17 17.37,15.92C17.68,16 18,16 18.28,16C20.89,16 23,13.91 23,11.2C23.1,8.5 21,6.37 18.38,6.37Z\";\nexport var mdiSass = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M10,15.33C10.16,15.87 10.14,16.37 10,16.83C10,16.88 9.96,16.93 9.94,17C9.92,17 9.9,17.07 9.87,17.12C9.76,17.36 9.6,17.59 9.41,17.79C8.83,18.43 8,18.67 7.67,18.47C7.29,18.25 7.5,17.35 8.16,16.64C8.88,15.88 9.92,15.38 9.92,15.38V15.38L10,15.33M18.27,6.28C17.82,4.5 14.87,3.92 12.09,4.91C10.43,5.5 8.63,6.42 7.34,7.63C5.81,9.07 5.56,10.32 5.66,10.84C6,12.68 8.54,13.89 9.58,14.78V14.79C9.28,14.94 7.04,16.07 6.5,17.23C5.96,18.45 6.6,19.33 7,19.45C8.34,19.81 9.69,19.16 10.41,18.07C11.11,17.03 11.06,15.68 10.75,15C11.17,14.9 11.66,14.85 12.28,14.92C14.04,15.13 14.38,16.22 14.31,16.68C14.25,17.14 13.88,17.39 13.76,17.47C13.64,17.54 13.6,17.57 13.61,17.63C13.62,17.71 13.68,17.71 13.78,17.69C13.93,17.66 14.71,17.32 14.74,16.47C14.78,15.39 13.75,14.19 11.93,14.22C11.18,14.24 10.71,14.31 10.37,14.44L10.29,14.35C9.16,13.15 7.08,12.3 7.17,10.68C7.2,10.09 7.4,8.55 11.17,6.67C14.25,5.13 16.72,5.55 17.15,6.5C17.76,7.83 15.83,10.32 12.63,10.68C11.41,10.82 10.76,10.34 10.6,10.17C10.43,10 10.41,9.97 10.35,10C10.24,10.07 10.31,10.23 10.35,10.33C10.44,10.58 10.84,11 11.5,11.24C12.09,11.43 13.53,11.54 15.26,10.87C17.2,10.12 18.72,8.03 18.27,6.28Z\";\nexport var mdiSatellite = \"M5,18L8.5,13.5L11,16.5L14.5,12L19,18M5,12V10A5,5 0 0,0 10,5H12A7,7 0 0,1 5,12M5,5H8A3,3 0 0,1 5,8M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiSatelliteUplink = \"M11.86,2L11.34,3.93C15.75,4.78 19.2,8.23 20.05,12.65L22,12.13C20.95,7.03 16.96,3.04 11.86,2M10.82,5.86L10.3,7.81C13.34,8.27 15.72,10.65 16.18,13.68L18.12,13.16C17.46,9.44 14.55,6.5 10.82,5.86M3.72,9.69C3.25,10.73 3,11.86 3,13C3,14.95 3.71,16.82 5,18.28V22H8V20.41C8.95,20.8 9.97,21 11,21C12.14,21 13.27,20.75 14.3,20.28L3.72,9.69M9.79,9.76L9.26,11.72A3,3 0 0,1 12.26,14.72L14.23,14.2C14,11.86 12.13,10 9.79,9.76Z\";\nexport var mdiSatelliteVariant = \"M11.62,1L17.28,6.67L15.16,8.79L13.04,6.67L11.62,8.09L13.95,10.41L12.79,11.58L13.24,12.04C14.17,11.61 15.31,11.77 16.07,12.54L12.54,16.07C11.77,15.31 11.61,14.17 12.04,13.24L11.58,12.79L10.41,13.95L8.09,11.62L6.67,13.04L8.79,15.16L6.67,17.28L1,11.62L3.14,9.5L5.26,11.62L6.67,10.21L3.84,7.38C3.06,6.6 3.06,5.33 3.84,4.55L4.55,3.84C5.33,3.06 6.6,3.06 7.38,3.84L10.21,6.67L11.62,5.26L9.5,3.14L11.62,1M18,14A4,4 0 0,1 14,18V16A2,2 0 0,0 16,14H18M22,14A8,8 0 0,1 14,22V20A6,6 0 0,0 20,14H22Z\";\nexport var mdiSausage = \"M19 5.3C20.2 5.8 21 7.1 21 8.5C21 15.4 15.4 21 8.5 21C7.1 21 5.9 20.2 5.3 19L3 20.5V14.5L5.3 16C5.9 14.8 7.1 14 8.5 14C11.5 14 14 11.5 14 8.5C14 7.1 14.8 5.9 16 5.3L14.5 3H20.5L19 5.3Z\";\nexport var mdiSausageOff = \"M20.8 22.7L16.3 18.2C14.2 19.9 11.4 21 8.5 21C7.1 21 5.9 20.2 5.3 19L3 20.5V14.5L5.3 16C5.8 14.8 7.1 14 8.5 14C9.5 14 10.5 13.7 11.3 13.2L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M21 8.5C21 7.1 20.2 5.9 19 5.3L20.5 3H14.5L16 5.3C14.8 5.8 14 7.1 14 8.5C14 9.2 13.9 9.8 13.6 10.4L18.7 15.6C20.2 13.6 21 11.1 21 8.5Z\";\nexport var mdiSawBlade = \"M20,15C20,15 18.6,16.3 21.1,17L18.3,19.8H15.5C15.5,19.8 13.6,19.7 15,22H11L9,20C9,20 7.7,18.6 7,21.1L4.2,18.3V15.5C4.2,15.5 4.3,13.6 2,15V11L4,9C4,9 5.4,7.7 2.8,7.1L5.6,4.2H8.5C8.5,4.2 10.4,4.3 9,2H13L15,4C15,4 16.3,5.4 17,2.8L19.8,5.6V8.5C19.8,8.5 19.7,10.4 22,9V13L20,15M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\";\nexport var mdiSawtoothWave = \"M11 22V6.83L2 16V13.17L13 2V17.17L22 8V10.83L11 22Z\";\nexport var mdiSaxophone = \"M4,2A1,1 0 0,0 3,3A1,1 0 0,0 4,4A3,3 0 0,1 7,7V8.66L7,15.5C7,19.1 9.9,22 13.5,22C17.1,22 20,19.1 20,15.5V13A1,1 0 0,0 21,12A1,1 0 0,0 20,11H14A1,1 0 0,0 13,12A1,1 0 0,0 14,13V15A1,1 0 0,1 13,16A1,1 0 0,1 12,15V11A1,1 0 0,0 13,10A1,1 0 0,0 12,9V8A1,1 0 0,0 13,7A1,1 0 0,0 12,6V5.5A3.5,3.5 0 0,0 8.5,2H4Z\";\nexport var mdiScale = \"M8.46,15.06L7.05,16.47L5.68,15.1C4.82,16.21 4.24,17.54 4.06,19H6V21H2V20C2,15.16 5.44,11.13 10,10.2V8.2L2,5V3H22V5L14,8.2V10.2C18.56,11.13 22,15.16 22,20V21H18V19H19.94C19.76,17.54 19.18,16.21 18.32,15.1L16.95,16.47L15.54,15.06L16.91,13.68C15.8,12.82 14.46,12.24 13,12.06V14H11V12.06C9.54,12.24 8.2,12.82 7.09,13.68L8.46,15.06M12,18A2,2 0 0,1 14,20A2,2 0 0,1 12,22C11.68,22 11.38,21.93 11.12,21.79L7.27,20L11.12,18.21C11.38,18.07 11.68,18 12,18Z\";\nexport var mdiScaleBalance = \"M12,3C10.73,3 9.6,3.8 9.18,5H3V7H4.95L2,14C1.53,16 3,17 5.5,17C8,17 9.56,16 9,14L6.05,7H9.17C9.5,7.85 10.15,8.5 11,8.83V20H2V22H22V20H13V8.82C13.85,8.5 14.5,7.85 14.82,7H17.95L15,14C14.53,16 16,17 18.5,17C21,17 22.56,16 22,14L19.05,7H21V5H14.83C14.4,3.8 13.27,3 12,3M12,5A1,1 0 0,1 13,6A1,1 0 0,1 12,7A1,1 0 0,1 11,6A1,1 0 0,1 12,5M5.5,10.25L7,14H4L5.5,10.25M18.5,10.25L20,14H17L18.5,10.25Z\";\nexport var mdiScaleBathroom = \"M5,2H19A2,2 0 0,1 21,4V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V4A2,2 0 0,1 5,2M12,4A4,4 0 0,0 8,8H11.26L10.85,5.23L12.9,8H16A4,4 0 0,0 12,4M5,10V20H19V10H5Z\";\nexport var mdiScaleOff = \"M22.11 21.46L20.84 22.73L19.11 21H18V19.89L12.11 14H11V12.89L10.31 12.2A7.92 7.92 0 0 0 7.09 13.68L8.46 15.06L7.05 16.47L5.68 15.1A7.94 7.94 0 0 0 4.06 19H6V21H2V20A10 10 0 0 1 8.68 10.57L3.85 5.74L2 5V3.89L1.11 3L2.39 1.73M21.91 18.71A10 10 0 0 0 14 10.2V8.2L22 5V3H6.2M12 18A1.84 1.84 0 0 0 11.12 18.21L7.27 20L11.12 21.79A1.84 1.84 0 0 0 12 22A2 2 0 0 0 12 18Z\";\nexport var mdiScaleUnbalanced = \"M13 20V8.8C13.5 8.6 14 8.3 14.3 7.9L17.8 9.2L14.9 16C14.4 18 15.9 19 18.4 19S22.5 18 21.9 16L19.3 9.7L20.2 10L20.9 8.1L15 6C15 4.8 14.3 3.6 13 3.1C11.8 2.6 10.5 3.1 9.7 4L3.9 2L3.2 3.8L4.8 4.4L2.1 11C1.6 13 3.1 14 5.6 14S9.7 13 9.1 11L6.6 5.1L9 6C9 7.2 9.7 8.4 11 8.9V20H2V22H22V20H13M19.9 16H16.9L18.4 12.2L19.9 16M7.1 11H4.1L5.6 7.2L7.1 11M11.1 5.7C11.3 5.2 11.9 4.9 12.4 5.1S13.2 5.9 13 6.4 12.2 7.2 11.7 7 10.9 6.2 11.1 5.7Z\";\nexport var mdiScanHelper = \"M0 2A2 2 0 0 1 2 0H6V2H2V6H0V2M24 22A2 2 0 0 1 22 24H18V22H22V18H24V22M2 24A2 2 0 0 1 0 22V18H2V22H6V24H2M22 0A2 2 0 0 1 24 2V6H22V2H18V0H22Z\";\nexport var mdiScanner = \"M4.2,10.7L19.8,5L20.5,6.9L6.4,12H19A2,2 0 0,1 21,14V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V12.5C3,11.7 3.5,10.9 4.2,10.7M17,17H19V15H17V17M5,17H15V15H5V17Z\";\nexport var mdiScannerOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L16.73,20H5A2,2 0 0,1 3,18V12.5C3,11.7 3.5,10.9 4.2,10.7L6.57,9.84L2,5.27M6.4,12H8.73L8.11,11.38L6.4,12M5,15V17H13.73L11.73,15H5M19.8,5L20.5,6.9L11.85,10.03L10.3,8.47L19.8,5M19,12A2,2 0 0,1 21,14V18C21,18.34 20.91,18.66 20.76,18.94L19,17.18V15H16.82L13.82,12H19Z\";\nexport var mdiScatterPlot = \"M7,11A3,3 0 0,1 10,14A3,3 0 0,1 7,17A3,3 0 0,1 4,14A3,3 0 0,1 7,11M11,3A3,3 0 0,1 14,6A3,3 0 0,1 11,9A3,3 0 0,1 8,6A3,3 0 0,1 11,3M16.6,14.6C18.25,14.6 19.6,15.94 19.6,17.6A3,3 0 0,1 16.6,20.6C14.94,20.6 13.6,19.25 13.6,17.6A3,3 0 0,1 16.6,14.6Z\";\nexport var mdiScatterPlotOutline = \"M7,18A4,4 0 0,1 3,14A4,4 0 0,1 7,10A4,4 0 0,1 11,14A4,4 0 0,1 7,18M7,12A2,2 0 0,0 5,14A2,2 0 0,0 7,16A2,2 0 0,0 9,14A2,2 0 0,0 7,12M11,10A4,4 0 0,1 7,6A4,4 0 0,1 11,2A4,4 0 0,1 15,6A4,4 0 0,1 11,10M11,4A2,2 0 0,0 9,6A2,2 0 0,0 11,8A2,2 0 0,0 13,6A2,2 0 0,0 11,4M16.6,21.6C14.39,21.6 12.6,19.81 12.6,17.6A4,4 0 0,1 16.6,13.6C18.81,13.6 20.6,15.39 20.6,17.6A4,4 0 0,1 16.6,21.6M16.6,15.6A2,2 0 0,0 14.6,17.6C14.6,18.7 15.5,19.6 16.6,19.6A2,2 0 0,0 18.6,17.6C18.6,16.5 17.7,15.6 16.6,15.6Z\";\nexport var mdiScent = \"M17.5 5.1C18.5 6.4 19 7.6 19 9C19 10.7 18.3 12.3 16.6 14.1C14.7 16.1 13 18.3 13 20.5C13 20.9 13.1 21.3 13.2 21.8C13.2 21.9 13.2 22 13.1 22.1C13 22.2 12.9 22.1 12.9 22C11.9 20.7 11.4 19.5 11.4 18.1C11.4 16.4 12.1 14.8 13.8 13C15.7 11 17.4 8.8 17.4 6.6C17.4 6.2 17.3 5.8 17.2 5.3C17.2 5.2 17.2 5.1 17.3 5C17.4 5 17.4 5 17.5 5.1M9.7 2.1C10.4 3 10.7 4 10.7 4.9C10.7 6.2 10.1 7.4 8.9 8.7C7.5 10.2 6.2 11.9 6.2 13.5C6.2 13.8 6.3 14.2 6.4 14.4C6.4 14.5 6.4 14.5 6.3 14.6C6.2 14.7 6.1 14.6 6.1 14.6C5.3 13.6 5 12.6 5 11.7C5 10.4 5.6 9.2 6.8 7.9C8.2 6.4 9.5 4.7 9.5 3.1C9.5 2.8 9.4 2.4 9.3 2.2V2C9.5 2 9.6 2 9.7 2.1M10.1 9.9C12 7.9 13.7 5.7 13.7 3.5C13.7 3.1 13.6 2.7 13.5 2.2C13.5 2.1 13.5 2 13.6 1.9C13.7 1.8 13.8 1.9 13.8 2C14.8 3.3 15.3 4.5 15.3 5.9C15.3 7.6 14.6 9.2 12.9 11C11 13 9.3 15.2 9.3 17.4C9.3 17.8 9.4 18.2 9.5 18.7C9.5 18.8 9.5 18.9 9.4 19C9.3 19.1 9.2 19 9.2 18.9C8.2 17.6 7.7 16.4 7.7 15C7.7 13.3 8.4 11.7 10.1 9.9Z\";\nexport var mdiScentOff = \"M14.6 16.5C13.7 17.8 13 19.2 13 20.5C13 20.9 13.1 21.3 13.2 21.8C13.2 21.9 13.2 22 13.1 22.1C13 22.2 12.9 22.1 12.9 22C11.9 20.7 11.4 19.5 11.4 18.1C11.4 16.9 11.8 15.7 12.6 14.5L11.2 13.1C10.1 14.5 9.4 16 9.4 17.5C9.4 17.9 9.5 18.3 9.6 18.8C9.6 18.9 9.6 19 9.5 19.1C9.4 19.2 9.3 19.1 9.3 19C8.3 17.7 7.8 16.5 7.8 15.1C7.8 13.8 8.3 12.5 9.3 11.1L7.9 9.8C6.9 11 6.2 12.2 6.2 13.4C6.2 13.7 6.3 14.1 6.4 14.3C6.4 14.4 6.4 14.4 6.3 14.5C6.2 14.6 6.1 14.5 6.1 14.5C5.3 13.6 5 12.6 5 11.7C5 10.6 5.5 9.5 6.4 8.4L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7L14.6 16.5M10.2 7C10.6 6.3 10.8 5.6 10.8 4.9C10.8 4 10.5 3 9.7 2.1C9.6 2 9.5 2 9.4 2C9.3 2 9.4 2.1 9.4 2.2C9.5 2.5 9.6 2.8 9.6 3.1C9.6 3.9 9.3 4.7 8.8 5.5L10.2 7M17.3 6.5C17.3 8.2 16.2 10 14.8 11.6L16.8 13.6C18.3 12.1 19 10.6 19 9C19 7.7 18.5 6.4 17.5 5.1C17.4 5 17.4 5 17.3 5C17.2 5.1 17.2 5.2 17.2 5.3C17.2 5.7 17.3 6.1 17.3 6.5M13.5 10.3C14.7 8.8 15.3 7.4 15.3 5.9C15.3 4.6 14.8 3.3 13.8 2H13.6C13.5 2.1 13.5 2.2 13.5 2.3C13.6 2.7 13.7 3.1 13.7 3.6C13.7 5.2 12.8 6.8 11.5 8.4L13.5 10.3Z\";\nexport var mdiSchool = \"M12,3L1,9L12,15L21,10.09V17H23V9M5,13.18V17.18L12,21L19,17.18V13.18L12,17L5,13.18Z\";\nexport var mdiSchoolOutline = \"M12 3L1 9L5 11.18V17.18L12 21L19 17.18V11.18L21 10.09V17H23V9L12 3M18.82 9L12 12.72L5.18 9L12 5.28L18.82 9M17 16L12 18.72L7 16V12.27L12 15L17 12.27V16Z\";\nexport var mdiScissorsCutting = \"M11,21H7V19H11V21M15.5,19H17V21H13V19H13.2L11.8,12.9L9.3,13.5C9.2,14 9,14.4 8.8,14.8C7.9,16.3 6,16.7 4.5,15.8C3,14.9 2.6,13 3.5,11.5C4.4,10 6.3,9.6 7.8,10.5C8.2,10.7 8.5,11.1 8.7,11.4L11.2,10.8L10.6,8.3C10.2,8.2 9.8,8 9.4,7.8C8,6.9 7.5,5 8.4,3.5C9.3,2 11.2,1.6 12.7,2.5C14.2,3.4 14.6,5.3 13.7,6.8C13.5,7.2 13.1,7.5 12.8,7.7L15.5,19M7,11.8C6.3,11.3 5.3,11.6 4.8,12.3C4.3,13 4.6,14 5.3,14.4C6,14.9 7,14.7 7.5,13.9C7.9,13.2 7.7,12.2 7,11.8M12.4,6C12.9,5.3 12.6,4.3 11.9,3.8C11.2,3.3 10.2,3.6 9.7,4.3C9.3,5 9.5,6 10.3,6.5C11,6.9 12,6.7 12.4,6M12.8,11.3C12.6,11.2 12.4,11.2 12.3,11.4C12.2,11.6 12.2,11.8 12.4,11.9C12.6,12 12.8,12 12.9,11.8C13.1,11.6 13,11.4 12.8,11.3M21,8.5L14.5,10L15,12.2L22.5,10.4L23,9.7L21,8.5M23,19H19V21H23V19M5,19H1V21H5V19Z\";\nexport var mdiScooter = \"M7.82 19H15V18C15 15.79 16.79 14 19 14H19.74L17.84 5.56C17.63 4.65 16.82 4 15.89 4H12V6H15.89L17.29 12.25H17.28C15.12 12.9 13.47 14.73 13.09 17H7.82C7.34 15.66 5.96 14.76 4.4 15.06C3.22 15.29 2.27 16.26 2.05 17.44C1.7 19.34 3.16 21 5 21C6.3 21 7.4 20.16 7.82 19M5 19C4.45 19 4 18.55 4 18S4.45 17 5 17 6 17.45 6 18 5.55 19 5 19M19 15C17.34 15 16 16.34 16 18S17.34 21 19 21 22 19.66 22 18 20.66 15 19 15M19 19C18.45 19 18 18.55 18 18S18.45 17 19 17 20 17.45 20 18 19.55 19 19 19Z\";\nexport var mdiScooterElectric = \"M7.82 16H15V15C15 12.79 16.79 11 19 11H19.74L17.84 2.56C17.63 1.65 16.82 1 15.89 1H12V3H15.89L17.29 9.25H17.28C15.12 9.9 13.47 11.73 13.09 14H7.82C7.34 12.66 5.96 11.76 4.4 12.06C3.22 12.29 2.27 13.26 2.05 14.44C1.7 16.34 3.16 18 5 18C6.3 18 7.4 17.16 7.82 16M5 16C4.45 16 4 15.55 4 15S4.45 14 5 14 6 14.45 6 15 5.55 16 5 16M19 12C17.34 12 16 13.34 16 15S17.34 18 19 18 22 16.66 22 15 20.66 12 19 12M19 16C18.45 16 18 15.55 18 15S18.45 14 19 14 20 14.45 20 15 19.55 16 19 16M11 20H7L13 23V21H17L11 18V20Z\";\nexport var mdiScoreboard = \"M6 9H8V15H6V9M16 9H18V15H16V9M21 3C22.1 3 23 3.9 23 5V19C23 20.1 22.1 21 21 21H3C1.9 21 1 20.1 1 19V5C1 3.9 1.9 3 3 3H21M5 7C4.4 7 4 7.4 4 8V16C4 16.6 4.4 17 5 17H9C9.6 17 10 16.6 10 16V8C10 7.4 9.6 7 9 7H5M15 7C14.4 7 14 7.4 14 8V16C14 16.6 14.4 17 15 17H19C19.6 17 20 16.6 20 16V8C20 7.4 19.6 7 19 7H15M12 11C12.6 11 13 10.6 13 10C13 9.4 12.6 9 12 9C11.4 9 11 9.4 11 10C11 10.6 11.4 11 12 11M12 15C12.6 15 13 14.6 13 14C13 13.4 12.6 13 12 13C11.4 13 11 13.4 11 14C11 14.6 11.4 15 12 15Z\";\nexport var mdiScoreboardOutline = \"M21 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H21C22.1 21 23 20.1 23 19V5C23 3.9 22.1 3 21 3M21 19H3V5H21M5 7H9C9.6 7 10 7.4 10 8V16C10 16.6 9.6 17 9 17H5C4.4 17 4 16.6 4 16V8C4 7.4 4.4 7 5 7M6 9V15H8V9M15 7H19C19.6 7 20 7.4 20 8V16C20 16.6 19.6 17 19 17H15C14.4 17 14 16.6 14 16V8C14 7.4 14.4 7 15 7M16 9V15H18V9M12 11C12.6 11 13 10.6 13 10C13 9.4 12.6 9 12 9C11.4 9 11 9.4 11 10C11 10.6 11.4 11 12 11M12 15C12.6 15 13 14.6 13 14C13 13.4 12.6 13 12 13C11.4 13 11 13.4 11 14C11 14.6 11.4 15 12 15Z\";\nexport var mdiScreenRotation = \"M7.5,21.5C4.25,19.94 1.91,16.76 1.55,13H0.05C0.56,19.16 5.71,24 12,24L12.66,23.97L8.85,20.16M14.83,21.19L2.81,9.17L9.17,2.81L21.19,14.83M10.23,1.75C9.64,1.16 8.69,1.16 8.11,1.75L1.75,8.11C1.16,8.7 1.16,9.65 1.75,10.23L13.77,22.25C14.36,22.84 15.31,22.84 15.89,22.25L22.25,15.89C22.84,15.3 22.84,14.35 22.25,13.77L10.23,1.75M16.5,2.5C19.75,4.07 22.09,7.24 22.45,11H23.95C23.44,4.84 18.29,0 12,0L11.34,0.03L15.15,3.84L16.5,2.5Z\";\nexport var mdiScreenRotationLock = \"M16.8,2.5C16.8,1.56 17.56,0.8 18.5,0.8C19.44,0.8 20.2,1.56 20.2,2.5V3H16.8V2.5M16,9H21A1,1 0 0,0 22,8V4A1,1 0 0,0 21,3V2.5A2.5,2.5 0 0,0 18.5,0A2.5,2.5 0 0,0 16,2.5V3A1,1 0 0,0 15,4V8A1,1 0 0,0 16,9M8.47,20.5C5.2,18.94 2.86,15.76 2.5,12H1C1.5,18.16 6.66,23 12.95,23L13.61,22.97L9.8,19.15L8.47,20.5M23.25,12.77L20.68,10.2L19.27,11.61L21.5,13.83L15.83,19.5L4.5,8.17L10.17,2.5L12.27,4.61L13.68,3.2L11.23,0.75C10.64,0.16 9.69,0.16 9.11,0.75L2.75,7.11C2.16,7.7 2.16,8.65 2.75,9.23L14.77,21.25C15.36,21.84 16.31,21.84 16.89,21.25L23.25,14.89C23.84,14.3 23.84,13.35 23.25,12.77Z\";\nexport var mdiScrewFlatTop = \"M13.5,17V19L12,22L10.5,19L13.5,17M14.5,6.3L13.5,7V6H10.5V9L9.5,9.7V10.7L14.5,7.4V6.3M14.5,10.3L13.5,11V9L10.5,11V13L9.5,13.7V14.7L14.5,11.4V10.3M14.5,14.3L13.5,15V13L10.5,15V17L9.5,17.7V18.7L14.5,15.4V14.3M8,2C8,2 7,2 7,3L10,5H14L17,3C17,3 17,2 16,2C15,2 8,2 8,2Z\";\nexport var mdiScrewLag = \"M10,19.3L14,16.6V20L12,22L10,20V19.3M14,12.7L10,15.4V17.4L9,18V19L15,15.1V14L14,14.7V12.7M7,2V5H17V2H7M9,6V9L10,9.7V13.4L9,14V15L15,11.1V10L14,10.7C14,10.7 14,10.3 14,9.7L15,9V6H9Z\";\nexport var mdiScrewMachineFlatTop = \"M14.5,7.3L13.5,8V7H10.5V10L9.5,10.7V11.7L14.5,8.4V7.3M14.5,11.3L13.5,12V10L10.5,12V14L9.5,14.7V15.7L14.5,12.4V11.3M14.5,15.3L13.5,16V14L10.5,16V18L9.5,18.7V19.7L14.5,16.4V15.3M8,3C8,3 7,3 7,4L10,6H14L17,4C17,4 17,3 16,3C15,3 8,3 8,3M13.5,18V21H10.5V20L13.5,18Z\";\nexport var mdiScrewMachineRoundTop = \"M14.5,7.3L13.5,8V7H10.5V10L9.5,10.7V11.7L14.5,8.4V7.3M14.5,11.3L13.5,12V10L10.5,12V14L9.5,14.7V15.7L14.5,12.4V11.3M14.5,15.3L13.5,16V14L10.5,16V18L9.5,18.7V19.7L14.5,16.4V15.3M7,6H17C17,6 16,3 12,3C8,3 7,6 7,6M13.5,18V21H10.5V20L13.5,18Z\";\nexport var mdiScrewRoundTop = \"M13.5,17V19L12,22L10.5,19L13.5,17M14.5,6.3L13.5,7V6H10.5V9L9.5,9.7V10.7L14.5,7.4V6.3M14.5,10.3L13.5,11V9L10.5,11V13L9.5,13.7V14.7L14.5,11.4V10.3M14.5,14.3L13.5,15V13L10.5,15V17L9.5,17.7V18.7L14.5,15.4V14.3M7,5H17C17,5 16,2 12,2C8,2 7,5 7,5Z\";\nexport var mdiScrewdriver = \"M18,1.83C17.5,1.83 17,2 16.59,2.41C13.72,5.28 8,11 8,11L9.5,12.5L6,16H4L2,20L4,22L8,20V18L11.5,14.5L13,16C13,16 18.72,10.28 21.59,7.41C22.21,6.5 22.37,5.37 21.59,4.59L19.41,2.41C19,2 18.5,1.83 18,1.83M18,4L20,6L13,13L11,11L18,4Z\";\nexport var mdiScript = \"M17.8,20C17.4,21.2 16.3,22 15,22H5C3.3,22 2,20.7 2,19V18H5L14.2,18C14.6,19.2 15.7,20 17,20H17.8M19,2H8C6.3,2 5,3.3 5,5V16H16V17C16,17.6 16.4,18 17,18H18V5C18,4.4 18.4,4 19,4C19.6,4 20,4.4 20,5V6H22V5C22,3.3 20.7,2 19,2Z\";\nexport var mdiScriptOutline = \"M15,20A1,1 0 0,0 16,19V4H8A1,1 0 0,0 7,5V16H5V5A3,3 0 0,1 8,2H19A3,3 0 0,1 22,5V6H20V5A1,1 0 0,0 19,4A1,1 0 0,0 18,5V9L18,19A3,3 0 0,1 15,22H5A3,3 0 0,1 2,19V18H13A2,2 0 0,0 15,20Z\";\nexport var mdiScriptText = \"M17.8,20C17.4,21.2 16.3,22 15,22H5C3.3,22 2,20.7 2,19V18H5L14.2,18C14.6,19.2 15.7,20 17,20H17.8M19,2C20.7,2 22,3.3 22,5V6H20V5C20,4.4 19.6,4 19,4C18.4,4 18,4.4 18,5V18H17C16.4,18 16,17.6 16,17V16H5V5C5,3.3 6.3,2 8,2H19M8,6V8H15V6H8M8,10V12H14V10H8Z\";\nexport var mdiScriptTextKey = \"M17.8 19C17.4 17.8 16.3 17 15 17C13.3 17 12 18.3 12 20S13.3 23 15 23C16.3 23 17.4 22.2 17.8 21H19V23H21V21H23V19H17.8M15 21.3C14.3 21.3 13.7 20.7 13.7 20S14.3 18.7 15 18.7 16.3 19.3 16.3 20 15.7 21.3 15 21.3M15 15C16.1 15 17.2 15.4 18 16V5C18 4.4 18.4 4 19 4S20 4.4 20 5V6H22V5C22 3.3 20.7 2 19 2H8C6.3 2 5 3.3 5 5V16H12C12.8 15.4 13.9 15 15 15M8 6H15V8H8V6M8 10H14V12H8V10M10.4 22H5C3.3 22 2 20.7 2 19V18H10.4C10.1 18.6 10 19.3 10 20S10.1 21.4 10.4 22\";\nexport var mdiScriptTextKeyOutline = \"M17.8 19C17.4 17.8 16.3 17 15 17C13.3 17 12 18.3 12 20S13.3 23 15 23C16.3 23 17.4 22.2 17.8 21H19V23H21V21H23V19H17.8M15 21.3C14.3 21.3 13.7 20.7 13.7 20S14.3 18.7 15 18.7 16.3 19.3 16.3 20 15.7 21.3 15 21.3M9 10H14V12H9V10M9 6H14V8H9V6M7 5C7 4.4 7.4 4 8 4H16V15.1C16.7 15.3 17.4 15.6 18 16V5C18 4.4 18.4 4 19 4S20 4.4 20 5V6H22V5C22 3.3 20.7 2 19 2H8C6.3 2 5 3.3 5 5V16H7V5M10 20C10 19.3 10.1 18.6 10.4 18H2V19C2 20.7 3.3 22 5 22H10.4C10.1 21.4 10 20.7 10 20M9 16H12C12.6 15.6 13.3 15.2 14 15.1V14H9V16Z\";\nexport var mdiScriptTextOutline = \"M15,20A1,1 0 0,0 16,19V4H8A1,1 0 0,0 7,5V16H5V5A3,3 0 0,1 8,2H19A3,3 0 0,1 22,5V6H20V5A1,1 0 0,0 19,4A1,1 0 0,0 18,5V9L18,19A3,3 0 0,1 15,22H5A3,3 0 0,1 2,19V18H13A2,2 0 0,0 15,20M9,6H14V8H9V6M9,10H14V12H9V10M9,14H14V16H9V14Z\";\nexport var mdiScriptTextPlay = \"M13.8 22H5C3.3 22 2 20.7 2 19V18H13.1C13 18.3 13 18.7 13 19C13 20.1 13.3 21.1 13.8 22M13.8 16H5V5C5 3.3 6.3 2 8 2H19C20.7 2 22 3.3 22 5V6H20V5C20 4.4 19.6 4 19 4S18 4.4 18 5V13.1C16.2 13.4 14.7 14.5 13.8 16M8 8H15V6H8V8M8 12H14V10H8V12M17 16V22L22 19L17 16Z\";\nexport var mdiScriptTextPlayOutline = \"M9 14H14V15.7C13.9 15.8 13.9 15.9 13.8 16H9V14M9 12H14V10H9V12M9 8H14V6H9V8M7 5C7 4.4 7.4 4 8 4H16V13.8C16.6 13.4 17.3 13.2 18 13.1V5C18 4.4 18.4 4 19 4S20 4.4 20 5V6H22V5C22 3.3 20.7 2 19 2H8C6.3 2 5 3.3 5 5V16H7V5M13 19V18.4 18H2V19C2 20.7 3.3 22 5 22H13.8C13.3 21.1 13 20.1 13 19M17 16V22L22 19L17 16Z\";\nexport var mdiSd = \"M18,8H16V4H18M15,8H13V4H15M12,8H10V4H12M18,2H10L4,8V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V4A2,2 0 0,0 18,2Z\";\nexport var mdiSeal = \"M20.39,19.37L16.38,18L15,22L11.92,16L9,22L7.62,18L3.61,19.37L6.53,13.37C5.57,12.17 5,10.65 5,9A7,7 0 0,1 12,2A7,7 0 0,1 19,9C19,10.65 18.43,12.17 17.47,13.37L20.39,19.37M7,9L9.69,10.34L9.5,13.34L12,11.68L14.5,13.33L14.33,10.34L17,9L14.32,7.65L14.5,4.67L12,6.31L9.5,4.65L9.67,7.66L7,9Z\";\nexport var mdiSealVariant = \"M17.71 6.15C17.46 5.38 16.79 5.21 16.45 4.77C16.14 4.31 16.18 3.62 15.53 3.15S14.23 2.92 13.7 2.77 12.81 2 12 2 10.82 2.58 10.3 2.77 9.13 2.67 8.47 3.15 7.86 4.31 7.55 4.77C7.21 5.21 6.55 5.38 6.29 6.15S6.5 7.45 6.5 8 6 9.08 6.29 9.85 7.21 10.79 7.55 11.23C7.86 11.69 7.82 12.38 8.47 12.85S9.77 13.08 10.3 13.23 11.19 14 12 14 13.18 13.42 13.7 13.23 14.87 13.33 15.53 12.85 16.14 11.69 16.45 11.23C16.79 10.79 17.45 10.62 17.71 9.85S17.5 8.55 17.5 8 18 6.92 17.71 6.15M12 12A4 4 0 1 1 16 8A4 4 0 0 1 12 12M14 8A2 2 0 1 1 12 6A2 2 0 0 1 14 8M13.71 15.56L13.08 19.16L12.35 23.29L9.74 20.8L6.44 22.25L7.77 14.75A4 4 0 0 0 9.66 15.17A4.15 4.15 0 0 0 11 15.85A3.32 3.32 0 0 0 12 16A3.5 3.5 0 0 0 13.71 15.56M17.92 18.78L15.34 17.86L15.85 14.92A3.2 3.2 0 0 0 16.7 14.47L16.82 14.37Z\";\nexport var mdiSearchWeb = \"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,4.5L8.95,4.53C8.71,5.05 8.34,5.93 8.07,7H10.93C10.66,5.93 10.29,5.05 10.05,4.53C9.87,4.5 9.69,4.5 9.5,4.5M13.83,7C13.24,5.97 12.29,5.17 11.15,4.78C11.39,5.31 11.7,6.08 11.93,7H13.83M5.17,7H7.07C7.3,6.08 7.61,5.31 7.85,4.78C6.71,5.17 5.76,5.97 5.17,7M4.5,9.5C4.5,10 4.58,10.53 4.73,11H6.87L6.75,9.5L6.87,8H4.73C4.58,8.47 4.5,9 4.5,9.5M14.27,11C14.42,10.53 14.5,10 14.5,9.5C14.5,9 14.42,8.47 14.27,8H12.13C12.21,8.5 12.25,9 12.25,9.5C12.25,10 12.21,10.5 12.13,11H14.27M7.87,8L7.75,9.5L7.87,11H11.13C11.21,10.5 11.25,10 11.25,9.5C11.25,9 11.21,8.5 11.13,8H7.87M9.5,14.5C9.68,14.5 9.86,14.5 10.03,14.47C10.28,13.95 10.66,13.07 10.93,12H8.07C8.34,13.07 8.72,13.95 8.97,14.47L9.5,14.5M13.83,12H11.93C11.7,12.92 11.39,13.69 11.15,14.22C12.29,13.83 13.24,13.03 13.83,12M5.17,12C5.76,13.03 6.71,13.83 7.85,14.22C7.61,13.69 7.3,12.92 7.07,12H5.17Z\";\nexport var mdiSeat = \"M4,18V21H7V18H17V21H20V15H4V18M19,10H22V13H19V10M2,10H5V13H2V10M17,13H7V5A2,2 0 0,1 9,3H15A2,2 0 0,1 17,5V13Z\";\nexport var mdiSeatFlat = \"M22,11V13H9V7H18A4,4 0 0,1 22,11M2,14V16H8V18H16V16H22V14M7.14,12.1C8.3,10.91 8.28,9 7.1,7.86C5.91,6.7 4,6.72 2.86,7.9C1.7,9.09 1.72,11 2.9,12.14C4.09,13.3 6,13.28 7.14,12.1Z\";\nexport var mdiSeatFlatAngled = \"M22.25,14.29L21.56,16.18L9.2,11.71L11.28,6.05L19.84,9.14C21.94,9.9 23,12.2 22.25,14.29M1.5,12.14L8,14.5V19H16V17.37L20.5,19L21.21,17.11L2.19,10.25M7.3,10.2C8.79,9.5 9.42,7.69 8.71,6.2C8,4.71 6.2,4.08 4.7,4.8C3.21,5.5 2.58,7.3 3.3,8.8C4,10.29 5.8,10.92 7.3,10.2Z\";\nexport var mdiSeatIndividualSuite = \"M7,13A3,3 0 0,0 10,10A3,3 0 0,0 7,7A3,3 0 0,0 4,10A3,3 0 0,0 7,13M19,7H11V14H3V7H1V17H23V11A4,4 0 0,0 19,7Z\";\nexport var mdiSeatLegroomExtra = \"M4,12V3H2V12A5,5 0 0,0 7,17H13V15H7A3,3 0 0,1 4,12M22.83,17.24C22.45,16.5 21.54,16.27 20.8,16.61L19.71,17.11L16.3,10.13C15.96,9.45 15.27,9 14.5,9H11V3H5V11A3,3 0 0,0 8,14H15L18.41,21L22.13,19.3C22.9,18.94 23.23,18 22.83,17.24Z\";\nexport var mdiSeatLegroomNormal = \"M5,12V3H3V12A5,5 0 0,0 8,17H14V15H8A3,3 0 0,1 5,12M20.5,18H19V11A2,2 0 0,0 17,9H12V3H6V11A3,3 0 0,0 9,14H16V21H20.5A1.5,1.5 0 0,0 22,19.5A1.5,1.5 0 0,0 20.5,18Z\";\nexport var mdiSeatLegroomReduced = \"M19.97,19.2C20.15,20.16 19.42,21 18.5,21H14V18L15,14H9A3,3 0 0,1 6,11V3H12V9H17A2,2 0 0,1 19,11L17,18H18.44C19.17,18 19.83,18.5 19.97,19.2M5,12V3H3V12A5,5 0 0,0 8,17H12V15H8A3,3 0 0,1 5,12Z\";\nexport var mdiSeatOutline = \"M15,5V12H9V5H15M15,3H9A2,2 0 0,0 7,5V14H17V5A2,2 0 0,0 15,3M22,10H19V13H22V10M5,10H2V13H5V10M20,15H4V21H6V17H18V21H20V15Z\";\nexport var mdiSeatPassenger = \"M9 19H15V21H9C6.24 21 4 18.76 4 16V7H6V16C6 17.66 7.34 19 9 19M10.42 5.41C11.2 4.63 11.2 3.36 10.42 2.58C9.64 1.8 8.37 1.8 7.59 2.58C6.81 3.36 6.81 4.63 7.59 5.41C8.37 6.2 9.63 6.2 10.42 5.41M11.5 9C11.5 7.9 10.6 7 9.5 7H9C7.9 7 7 7.9 7 9V15C7 16.66 8.34 18 10 18H15.07L18.57 21.5L20 20.07L14.93 15H11.5L11.5 9Z\";\nexport var mdiSeatReclineExtra = \"M5.35,5.64C4.45,5 4.23,3.76 4.86,2.85C5.5,1.95 6.74,1.73 7.65,2.36C8.55,3 8.77,4.24 8.14,5.15C7.5,6.05 6.26,6.27 5.35,5.64M16,19H8.93C7.45,19 6.19,17.92 5.97,16.46L4,7H2L4,16.76C4.37,19.2 6.47,21 8.94,21H16M16.23,15H11.35L10.32,10.9C11.9,11.79 13.6,12.44 15.47,12.12V10C13.84,10.3 12.03,9.72 10.78,8.74L9.14,7.47C8.91,7.29 8.65,7.17 8.38,7.09C8.06,7 7.72,6.97 7.39,7.03H7.37C6.14,7.25 5.32,8.42 5.53,9.64L6.88,15.56C7.16,17 8.39,18 9.83,18H16.68L20.5,21L22,19.5\";\nexport var mdiSeatReclineNormal = \"M7.59,5.41C6.81,4.63 6.81,3.36 7.59,2.58C8.37,1.8 9.64,1.8 10.42,2.58C11.2,3.36 11.2,4.63 10.42,5.41C9.63,6.2 8.37,6.2 7.59,5.41M6,16V7H4V16A5,5 0 0,0 9,21H15V19H9A3,3 0 0,1 6,16M20,20.07L14.93,15H11.5V11.32C12.9,12.47 15.1,13.5 17,13.5V11.32C15.34,11.34 13.39,10.45 12.33,9.28L10.93,7.73C10.74,7.5 10.5,7.35 10.24,7.23C9.95,7.09 9.62,7 9.28,7H9.25C8,7 7,8 7,9.25V15A3,3 0 0,0 10,18H15.07L18.57,21.5\";\nexport var mdiSeatbelt = \"M12,2C13.11,2 14,2.9 14,4C14,5.11 13.11,6 12,6A2,2 0 0,1 10,4A2,2 0 0,1 12,2M12.39,14.79C14.03,14.79 15.46,14.89 16.64,15.04C16.7,12.32 16.46,9.92 16,9C15.87,8.73 15.69,8.5 15.5,8.3L7.43,15.22C8.79,15 10.5,14.79 12.39,14.79M7.46,17C7.59,18.74 7.85,20.5 8.27,22H10.34C10.05,21.12 9.84,20.09 9.68,19C9.68,19 12,18.56 14.32,19C14.16,20.09 13.95,21.12 13.66,22H15.73C16.17,20.45 16.43,18.61 16.56,16.79C15.41,16.65 14,16.54 12.39,16.54C10.46,16.54 8.78,16.75 7.46,17M12,7C12,7 9,7 8,9C7.66,9.68 7.44,11.15 7.37,12.96L13.92,7.34C12.93,7 12,7 12,7M18.57,5.67L17.43,4.34L13.92,7.35C14.47,7.54 15.05,7.84 15.5,8.3L18.57,5.67M20.67,15.83C20.58,15.8 19.14,15.33 16.64,15.04C16.63,15.61 16.6,16.2 16.56,16.79C18.81,17.07 20.1,17.5 20.12,17.5L20.67,15.83M7.37,12.96L3.43,16.34L4.32,17.82C4.34,17.81 5.5,17.36 7.46,17C7.35,15.59 7.32,14.2 7.37,12.96Z\";\nexport var mdiSecurity = \"M12,12H19C18.47,16.11 15.72,19.78 12,20.92V12H5V6.3L12,3.19M12,1L3,5V11C3,16.55 6.84,21.73 12,23C17.16,21.73 21,16.55 21,11V5L12,1Z\";\nexport var mdiSecurityNetwork = \"M13,19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17.34C8.07,16.13 6,13 6,9.67V5.67L12,3L18,5.67V9.67C18,13 15.93,16.13 13,17.34V19M12,5L8,6.69V10H12V5M12,10V16C13.91,15.53 16,13.06 16,11V10H12Z\";\nexport var mdiSeed = \"M20.7,3.3C20.7,3.3 19.3,3 17.2,3C11.7,3 1.6,5.1 3.2,20.8C4.3,20.9 5.4,21 6.4,21C24.3,21 20.7,3.3 20.7,3.3M7,17C7,17 7,7 17,7C17,7 11,9 7,17Z\";\nexport var mdiSeedOff = \"M22.1 21.5L2.4 1.7L1.1 3L5.9 7.8C3.8 10.5 2.6 14.6 3.2 20.8C4.3 20.9 5.4 21 6.4 21C10.9 21 14.1 19.9 16.3 18.2L20.9 22.8L22.1 21.5M7 17C7 17 7 13.7 8.9 10.8L10.2 12.1C9.1 13.4 8 15 7 17M11.6 8.4L8.5 5.3C11.3 3.4 14.7 3 17.2 3C19.3 3 20.7 3.3 20.7 3.3S22.1 10.3 18.7 15.5L12.8 9.6C15.1 7.6 17 7 17 7C14.7 7 12.9 7.5 11.6 8.4Z\";\nexport var mdiSeedOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L5.9 7.8C3.8 10.5 2.6 14.6 3.2 20.8C4.3 20.9 5.4 21 6.4 21C10.9 21 14.1 19.9 16.3 18.2L20.9 22.8L22.1 21.5M6.4 19H5.1C4.9 14.8 5.6 11.5 7.3 9.2L8.9 10.8C7 13.7 7 17 7 17C8 15 9.1 13.4 10.2 12.1L14.8 16.7C12.8 18.2 10 19 6.4 19M10 6.8L8.5 5.3C11.3 3.4 14.7 3 17.2 3C19.3 3 20.7 3.3 20.7 3.3S22.1 10.3 18.7 15.5L17.2 14C19.1 10.9 19 7.1 18.9 5.1C18.4 5 17.8 5 17.2 5C15.1 5 12.3 5.3 10 6.8M12.8 9.6L11.6 8.4C12.9 7.5 14.7 7 17 7C17 7 15.1 7.6 12.8 9.6Z\";\nexport var mdiSeedOutline = \"M17.2,5V5C17.8,5 18.4,5 18.9,5.1C19.1,7.4 19.1,12 16.4,15.2C14.4,17.7 11,19 6.4,19C6,19 5.5,19 5.1,19C4.9,14.4 5.8,10.8 7.9,8.5C10.4,5.6 14.4,5 17.2,5M17.2,3C11.7,3 1.6,5.1 3.2,20.8C4.3,20.9 5.4,21 6.4,21C24.3,21 20.7,3.3 20.7,3.3C20.7,3.3 19.3,3 17.2,3M17,7C7,7 7,17 7,17C11,9 17,7 17,7Z\";\nexport var mdiSeedPlus = \"M17 17H14V19H17V22H19V19H22V17H19V14H17V17M12 18C12 14.69 14.69 12 18 12C18.77 12 19.5 12.15 20.17 12.41C21.63 7.9 20.7 3.3 20.7 3.3S19.3 3 17.2 3C11.7 3 1.6 5.1 3.2 20.8C4.3 20.9 5.4 21 6.4 21C8.76 21 10.74 20.69 12.41 20.15C12.15 19.5 12 18.76 12 18M7 17C7 17 7 7 17 7C17 7 11 9 7 17Z\";\nexport var mdiSeedPlusOutline = \"M17.2 5C17.8 5 18.4 5 18.9 5.1C19.04 6.7 19.08 9.42 18.18 12C18.89 12 19.56 12.17 20.18 12.41C21.64 7.9 20.7 3.3 20.7 3.3S19.3 3 17.2 3C11.7 3 1.6 5.1 3.2 20.8C4.3 20.9 5.4 21 6.4 21C8.75 21 10.74 20.69 12.4 20.16C12.16 19.54 12 18.87 12 18.17C10.41 18.72 8.53 19 6.4 19H5.1C4.9 14.4 5.8 10.8 7.9 8.5C10.4 5.6 14.4 5 17.2 5M17 7C7 7 7 17 7 17C11 9 17 7 17 7M17 17H14V19H17V22H19V19H22V17H19V14H17V17Z\";\nexport var mdiSeesaw = \"M21.68 13.26L22.04 15.23L2.35 18.77L2 16.8L4.95 16.27L4.6 14.3C4.5 13.76 4.86 13.24 5.41 13.14C5.95 13.04 6.47 13.4 6.57 13.95L6.92 15.91L16.76 14.15L16.41 12.18C16.31 11.63 16.67 11.11 17.22 11C17.76 10.92 18.28 11.28 18.38 11.82L18.73 13.79L21.68 13.26M10.06 18.4L8 22H16L13.58 17.77L10.06 18.4Z\";\nexport var mdiSegment = \"M21,8H3V6H21M9,13H21V11H9M9,18H21V16H9\";\nexport var mdiSelect = \"M4,3H5V5H3V4A1,1 0 0,1 4,3M20,3A1,1 0 0,1 21,4V5H19V3H20M15,5V3H17V5H15M11,5V3H13V5H11M7,5V3H9V5H7M21,20A1,1 0 0,1 20,21H19V19H21V20M15,21V19H17V21H15M11,21V19H13V21H11M7,21V19H9V21H7M4,21A1,1 0 0,1 3,20V19H5V21H4M3,15H5V17H3V15M21,15V17H19V15H21M3,11H5V13H3V11M21,11V13H19V11H21M3,7H5V9H3V7M21,7V9H19V7H21Z\";\nexport var mdiSelectAll = \"M9,9H15V15H9M7,17H17V7H7M15,5H17V3H15M15,21H17V19H15M19,17H21V15H19M19,9H21V7H19M19,21A2,2 0 0,0 21,19H19M19,13H21V11H19M11,21H13V19H11M9,3H7V5H9M3,17H5V15H3M5,21V19H3A2,2 0 0,0 5,21M19,3V5H21A2,2 0 0,0 19,3M13,3H11V5H13M3,9H5V7H3M7,21H9V19H7M3,13H5V11H3M3,5H5V3A2,2 0 0,0 3,5Z\";\nexport var mdiSelectArrowDown = \"M4 3H5V5H3V4C3 3.4 3.4 3 4 3M20 3C20.6 3 21 3.4 21 4V5H19V3H20M15 5V3H17V5H15M11 5V3H13V5H11M7 5V3H9V5H7M11 21V19H13V21H11M7 21V19H9V21H7M4 21C3.4 21 3 20.6 3 20V19H5V21H4M3 15H5V17H3V15M3 11H5V13H3V11M21 11V13H19V11H21M3 7H5V9H3V7M21 7V9H19V7H21M19 22L22 19H20V15H18V19H16L19 22Z\";\nexport var mdiSelectArrowUp = \"M4 3H5V5H3V4C3 3.4 3.4 3 4 3M20 3C20.6 3 21 3.4 21 4V5H19V3H20M15 5V3H17V5H15M11 5V3H13V5H11M7 5V3H9V5H7M11 21V19H13V21H11M7 21V19H9V21H7M4 21C3.4 21 3 20.6 3 20V19H5V21H4M3 15H5V17H3V15M3 11H5V13H3V11M21 11V13H19V11H21M3 7H5V9H3V7M21 7V9H19V7H21M19 15L16 18H18V22H20V18H22L19 15Z\";\nexport var mdiSelectColor = \"M3.88,3C3.38,3.06 3,3.5 3,4V4L3,5H4L5,5V4L5,3H4L3.88,3M7,3V5H9V3H7M11,3V5H13V3H11M15,3V5H17V3H15M19,3V4L19,5H20L21,5V4L21,3.88C20.94,3.38 20.5,3 20,3H19M3,7V9H5V7H3M19,7V9H21V7H19M3,11V13H5V11H3M19.31,12C19.18,12 19.05,12.05 18.95,12.14L17.39,13.71L16.43,12.75L15.72,13.46L16.43,14.17L11.97,18.63V21H14.35L18.8,16.54L19.5,17.25L20.22,16.54L19.26,15.58L20.82,14.03C21,13.83 21,13.5 20.82,13.31L19.65,12.14C19.56,12.05 19.44,12 19.31,12M3,15V17H5V15H3M17,15L17.97,15.97L13.93,20L12.97,19.04L17,15M3,19V20L3,20.12C3.06,20.62 3.5,21 4,21V21H5V20L5,19H4L3,19M7,19V21H9V19H7Z\";\nexport var mdiSelectCompare = \"M13,23H11V1H13V23M9,19H5V5H9V3H5C3.89,3 3,3.89 3,5V19C3,20.11 3.9,21 5,21H9V19M19,7V9H21V7H19M19,5H21C21,3.89 20.1,3 19,3V5M21,15H19V17H21V15M19,11V13H21V11H19M17,3H15V5H17V3M19,21C20.11,21 21,20.11 21,19H19V21M17,19H15V21H17V19Z\";\nexport var mdiSelectDrag = \"M13,17H17V13H19V17H23V19H19V23H17V19H13V17M11,17V19H9V17H11M7,17V19H5V17H7M19,9V11H17V9H19M19,5V7H17V5H19M15,5V7H13V5H15M11,5V7H9V5H11M7,5V7H5V5H7M7,13V15H5V13H7M7,9V11H5V9H7Z\";\nexport var mdiSelectGroup = \"M5 3A2 2 0 0 0 3 5H5M7 3V5H9V3M11 3V5H13V3M15 3V5H17V3M19 3V5H21A2 2 0 0 0 19 3M3 7V9H5V7M7 7V11H11V7M13 7V11H17V7M19 7V9H21V7M3 11V13H5V11M19 11V13H21V11M7 13V17H11V13M13 13V17H17V13M3 15V17H5V15M19 15V17H21V15M3 19A2 2 0 0 0 5 21V19M7 19V21H9V19M11 19V21H13V19M15 19V21H17V19M19 19V21A2 2 0 0 0 21 19Z\";\nexport var mdiSelectInverse = \"M5,3H7V5H9V3H11V5H13V3H15V5H17V3H19V5H21V7H19V9H21V11H19V13H21V15H19V17H21V19H19V21H17V19H15V21H13V19H11V21H9V19H7V21H5V19H3V17H5V15H3V13H5V11H3V9H5V7H3V5H5V3Z\";\nexport var mdiSelectMarker = \"M4 3H5V5H3V4C3 3.45 3.45 3 4 3M20 3C20.55 3 21 3.45 21 4V5H19V3H20M15 5V3H17V5H15M11 5V3H13V5H11M7 5V3H9V5H7M11 21V19H13V21H11M7 21V19H9V21H7M4 21C3.45 21 3 20.55 3 20V19H5V21H4M3 15H5V17H3V15M3 11H5V13H3V11M3 7H5V9H3V7M21 7V9H19V7H21M19.5 13C21.4 13 23 14.6 23 16.5C23 19.1 19.5 23 19.5 23C19.5 23 16 19.1 16 16.5C16 14.6 17.6 13 19.5 13M19.5 17.8C20.2 17.8 20.8 17.2 20.7 16.6C20.7 16 20.1 15.4 19.5 15.4C18.9 15.4 18.3 15.9 18.3 16.6C18.3 17.2 18.8 17.8 19.5 17.8Z\";\nexport var mdiSelectMultiple = \"M18 12H20V14H18V12M14 16H16V18H14V16M20 17C20 17.55 19.55 18 19 18H18V16H20V17M7 4H8V6H6V5C6 4.45 6.45 4 7 4M19 4C19.55 4 20 4.45 20 5V6H18V4H19M14 6V4H16V6H14M10 6V4H12V6H10M10 18V16H12V18H10M7 18C6.45 18 6 17.55 6 17V16H8V18H7M6 12H8V14H6V12M6 8H8V10H6V8M20 8V10H18V8H20M3 8H4V20H16V21C16 21.54 15.57 22 15.03 22H15L3 22C2.45 22 2 21.55 2 21V9C2 8.45 2.45 8 3 8Z\";\nexport var mdiSelectMultipleMarker = \"M7 4H8V6H6V5C6 4.45 6.45 4 7 4M19 4C19.55 4 20 4.45 20 5V6H18V4H19M14 6V4H16V6H14M10 6V4H12V6H10M10 18V16H12V18H10M7 18C6.45 18 6 17.55 6 17V16H8V18H7M6 12H8V14H6V12M6 8H8V10H6V8M20 8V10H18V8H20M3 8H4V20H14.58L16.03 22L3 22C2.45 22 2 21.55 2 21V9C2 8.45 2.45 8 3 8M18.5 12C20.4 12 22 13.6 22 15.5C22 18.1 18.5 22 18.5 22C18.5 22 15 18.1 15 15.5C15 13.6 16.6 12 18.5 12M18.5 16.8C19.2 16.8 19.8 16.2 19.7 15.6C19.7 15 19.1 14.4 18.5 14.4C17.9 14.4 17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8Z\";\nexport var mdiSelectOff = \"M1,4.27L2.28,3L21,21.72L19.73,23L17,20.27V21H15V19H15.73L5,8.27V9H3V7H3.73L1,4.27M20,3A1,1 0 0,1 21,4V5H19V3H20M15,5V3H17V5H15M11,5V3H13V5H11M7,5V3H9V5H7M11,21V19H13V21H11M7,21V19H9V21H7M4,21A1,1 0 0,1 3,20V19H5V21H4M3,15H5V17H3V15M21,15V17H19V15H21M3,11H5V13H3V11M21,11V13H19V11H21M21,7V9H19V7H21Z\";\nexport var mdiSelectPlace = \"M4 3H5V5H3V4C3 3.5 3.5 3 4 3M20 3C20.5 3 21 3.5 21 4V5H19V3H20M15 5V3H17V5H15M11 5V3H13V5H11M7 5V3H9V5H7M21 12C21 12.5 20.5 13 20 13H19V11H21V12M15 13V11H17V13H15M11 13V11H13V13H11M7 13V11H9V13H7M4 13C3.5 13 3 12.5 3 12V11H5V13H4M3 7H5V9H3V7M21 7V9H19V7H21M7 16L12 21L17 16H7Z\";\nexport var mdiSelectRemove = \"M21 20C21 20.55 20.55 21 20 21H19V19H21V20M15 21V19H17V21H15M11 21V19H13V21H11M7 21V19H9V21H7M4 21C3.45 21 3 20.55 3 20V19H5V21H4M3 15H5V17H3V15M21 15V17H19V15H21M14.59 8L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41L14.59 8M3 11H5V13H3V11M21 11V13H19V11H21M3 7H5V9H3V7M21 7V9H19V7H21M4 3H5V5H3V4C3 3.45 3.45 3 4 3M20 3C20.55 3 21 3.45 21 4V5H19V3H20M15 5V3H17V5H15M11 5V3H13V5H11M7 5V3H9V5H7Z\";\nexport var mdiSelectSearch = \"M19.31 18.9C19.75 18.21 20 17.38 20 16.5C20 14 18 12 15.5 12S11 14 11 16.5 13 21 15.5 21C16.37 21 17.19 20.75 17.88 20.32L21 23.39L22.39 22L19.31 18.9M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M21 9H19V7H21V9M21 5H19V3H20C20.55 3 21 3.45 21 4V5M19 11.03V11H21V13H20.97C20.46 12.21 19.79 11.54 19 11.03M17 5H15V3H17V5M13 5H11V3H13V5M3 7H5V9H3V7M7 19H9V21H7V19M3 11H5V13H3V11M4 3H5V5H3V4C3 3.45 3.45 3 4 3M9 5H7V3H9V5M3 19H5V21H4C3.45 21 3 20.55 3 20V19M3 15H5V17H3V15Z\";\nexport var mdiSelection = \"M2,4C2,2.89 2.9,2 4,2H7V4H4V7H2V4M22,4V7H20V4H17V2H20A2,2 0 0,1 22,4M20,20V17H22V20C22,21.11 21.1,22 20,22H17V20H20M2,20V17H4V20H7V22H4A2,2 0 0,1 2,20M10,2H14V4H10V2M10,20H14V22H10V20M20,10H22V14H20V10M2,10H4V14H2V10Z\";\nexport var mdiSelectionDrag = \"M14,17H17V14H19V17H22V19H19V22H17V19H14V17M12,17V19H9V17H12M7,17V19H3V15H5V17H7M3,13V10H5V13H3M3,8V4H7V6H5V8H3M9,4H12V6H9V4M15,4H19V8H17V6H15V4M19,10V12H17V10H19Z\";\nexport var mdiSelectionEllipse = \"M6.35,20.25L7.56,18.66C8.42,19.23 9.39,19.64 10.43,19.85L10.16,21.83C8.77,21.57 7.5,21 6.35,20.25M16.43,18.66L17.64,20.26C16.5,21.03 15.23,21.57 13.84,21.83L13.57,19.85C14.61,19.64 15.57,19.23 16.43,18.66M19.84,13.59L21.83,13.86C21.57,15.25 21,16.54 20.24,17.66L18.65,16.45C19.22,15.6 19.63,14.63 19.84,13.59M2.17,13.84L4.15,13.57C4.36,14.61 4.77,15.58 5.34,16.44L3.75,17.65C3,16.5 2.43,15.23 2.17,13.84M18.66,7.56L20.25,6.35C21.03,7.5 21.58,8.78 21.83,10.18L19.85,10.45C19.64,9.4 19.23,8.42 18.66,7.56M13.57,4.15L13.84,2.17C15.23,2.43 16.5,3 17.65,3.75L16.44,5.34C15.58,4.77 14.61,4.36 13.57,4.15M7.56,5.34L6.35,3.75C7.5,3 8.77,2.43 10.16,2.17L10.43,4.15C9.39,4.36 8.42,4.77 7.56,5.34M4.15,10.43L2.17,10.16C2.43,8.77 3,7.5 3.75,6.35L5.34,7.56C4.77,8.42 4.36,9.39 4.15,10.43Z\";\nexport var mdiSelectionEllipseArrowInside = \"M11.2 4C9.94 4.12 8.72 4.53 7.64 5.2L6.64 3.47C7.95 2.64 9.45 2.13 11 2M17.53 6.25C16.62 5.39 15.53 4.73 14.34 4.33L15 2.39C16.5 2.84 17.89 3.66 19 4.78M5.34 7.41C4.64 8.44 4.19 9.6 4 10.83L2 10.55C2.2 9 2.79 7.5 3.7 6.23M22 12V12.66L20 12.5V12C20 10.92 19.81 9.86 19.39 8.86L21.22 8.06C21.75 9.31 22 10.65 22 12M6 17.3L4.5 18.61C3.47 17.43 2.72 16.04 2.3 14.53L4.17 14C4.53 15.22 5.16 16.35 6 17.3M12.14 22H12C10.5 22 9 21.68 7.64 21.07L8.53 19.24C9.62 19.75 10.8 20 12 20H12.19M17 21H15V15H21V17H18.42L21.14 19.76L19.73 21.17L17 18.5\";\nexport var mdiSelectionEllipseRemove = \"M6.35 20.25L7.56 18.66C8.42 19.23 9.39 19.64 10.43 19.85L10.16 21.83C8.77 21.57 7.5 21 6.35 20.25M16.43 18.66L17.64 20.26C16.5 21.03 15.23 21.57 13.84 21.83L13.57 19.85C14.61 19.64 15.57 19.23 16.43 18.66M19.84 13.59L21.83 13.86C21.57 15.25 21 16.54 20.24 17.66L18.65 16.45C19.22 15.6 19.63 14.63 19.84 13.59M2.17 13.84L4.15 13.57C4.36 14.61 4.77 15.58 5.34 16.44L3.75 17.65C3 16.5 2.43 15.23 2.17 13.84M14.59 8L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41L14.59 8M18.66 7.56L20.25 6.35C21.03 7.5 21.58 8.78 21.83 10.18L19.85 10.45C19.64 9.4 19.23 8.42 18.66 7.56M4.15 10.43L2.17 10.16C2.43 8.77 3 7.5 3.75 6.35L5.34 7.56C4.77 8.42 4.36 9.39 4.15 10.43M13.57 4.15L13.84 2.17C15.23 2.43 16.5 3 17.65 3.75L16.44 5.34C15.58 4.77 14.61 4.36 13.57 4.15M7.56 5.34L6.35 3.75C7.5 3 8.77 2.43 10.16 2.17L10.43 4.15C9.39 4.36 8.42 4.77 7.56 5.34Z\";\nexport var mdiSelectionMarker = \"M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z\";\nexport var mdiSelectionMultiple = \"M11 6V4H15V6H11M6 9H8V13H6V9M6 6C6 4.89 6.9 4 8 4H9V6H8V7H6V6M8 18C6.89 18 6 17.1 6 16V15H8V16H9V18H8M18 4C19.11 4 20 4.9 20 6V7H18V6H17V4H18M15 16V18H11V16H15M20 13H18V9H20V13M20 16C20 17.11 19.1 18 18 18H17V16H18V15H20V16M3 8H4V20H16V21C16 21.54 15.57 22 15.03 22H15L3 22C2.45 22 2 21.55 2 21V9C2 8.45 2.45 8 3 8Z\";\nexport var mdiSelectionMultipleMarker = \"M7 4H9V6H8V7H6V5C6 4.45 6.45 4 7 4M19 4C19.55 4 20 4.45 20 5V7H18V6H17V4H19M11 6V4H15V6H11M7 18C6.45 18 6 17.55 6 17V15H8V16H9V18H7M6 9H8V13H6V9M3 8H4V20H14.58L16.03 22L3 22C2.45 22 2 21.55 2 21V9C2 8.45 2.45 8 3 8M18.5 12C20.4 12 22 13.6 22 15.5C22 18.1 18.5 22 18.5 22C18.5 22 15 18.1 15 15.5C15 13.6 16.6 12 18.5 12M18.5 16.8C19.2 16.8 19.8 16.2 19.7 15.6C19.7 15 19.1 14.4 18.5 14.4C17.9 14.4 17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8M11 18V16H13C13.09 16.66 13.27 17.33 13.5 18H11M20 9V10.23C19.5 10.08 19 10 18.5 10L18 10.03V9H20Z\";\nexport var mdiSelectionOff = \"M0.5,3.77L1.78,2.5L21.5,22.22L20.23,23.5L18.73,22H17V20.27L3.73,7H2V5.27L0.5,3.77M4,2H7V4H5.82L3.83,2H4M22,4V7H20V4H17V2H20A2,2 0 0,1 22,4M20,17H22V20L22,20.17L20,18.18V17M2,20V17H4V20H7V22H4A2,2 0 0,1 2,20M10,2H14V4H10V2M10,20H14V22H10V20M20,10H22V14H20V10M2,10H4V14H2V10Z\";\nexport var mdiSelectionRemove = \"M20 20V17H22V20C22 21.11 21.1 22 20 22H17V20H20M2 20V17H4V20H7V22H4C2.9 22 2 21.1 2 20M10 20H14V22H10V20M14.59 8L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41L14.59 8M20 10H22V14H20V10M2 10H4V14H2V10M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.9 22 4M10 2H14V4H10V2Z\";\nexport var mdiSelectionSearch = \"M19.27 18.9C19.7 18.21 19.95 17.38 19.95 16.5C19.95 14 17.95 12 15.46 12S10.96 14 10.96 16.5 12.96 21 15.46 21C16.33 21 17.15 20.75 17.84 20.32L20.96 23.39L22.35 22L19.27 18.9M15.46 19C14.07 19 12.96 17.88 12.96 16.5S14.07 14 15.46 14 17.95 15.12 17.95 16.5 16.84 19 15.46 19M22 14H21.45C21.12 13.19 20.62 12.47 20 11.86V10H22V14M20 4H17V2H20C21.11 2 22 2.9 22 4V7H20V4M14 4H10V2H14V4M4 2H7V4H4V7H2V4C2 2.89 2.9 2 4 2M12 22H10V20C10.5 20.82 11.2 21.5 12 22M4 20H7V22H4C2.9 22 2 21.11 2 20V17H4V20M4 14H2V10H4V14Z\";\nexport var mdiSemanticWeb = \"M12.9 4.22C18.73 6.84 20 2 20 2S18.89 8.07 13.79 10.55C12.75 11.06 12.1 11.33 12.1 11.33L3.73 7.25L12.1 3.82C12.1 3.82 11.9 3.76 12.9 4.22M11.12 22L3.33 17.78V9.07L11.12 13.04V22M12.88 22L20.68 17.78V9.07L12.88 13.04V22Z\";\nexport var mdiSend = \"M2,21L23,12L2,3V10L17,12L2,14V21Z\";\nexport var mdiSendCheck = \"M2 3V10L17 12L2 14V21L23 12M22 15.5L18.5 19L16.5 17L15 18.5L18.5 22L23.5 17Z\";\nexport var mdiSendCheckOutline = \"M2 3V10L17 12L2 14V21L23 12M4 6.03L11.53 9.25L4 8.25M11.53 14.75L4 17.97V15.75M22 15.5L18.5 19L16.5 17L15 18.5L18.5 22L23.5 17Z\";\nexport var mdiSendCircle = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M8,7.71V11.05L15.14,12L8,12.95V16.29L18,12L8,7.71Z\";\nexport var mdiSendCircleOutline = \"M8,7.71L18,12L8,16.29V12.95L15.14,12L8,11.05V7.71M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiSendClock = \"M2 3V10L11 12L2 14V21L9.27 17.89A7 7 0 0 0 16 23A7 7 0 0 0 23 16A7 7 0 0 0 16 9L2 3M16 11A5 5 0 0 1 21 16A5 5 0 0 1 16 21A5 5 0 0 1 11 16A5 5 0 0 1 16 11M15 12.5V16.5L18 18.5L18.75 17.25L16.5 15.75V12.5H15Z\";\nexport var mdiSendClockOutline = \"M2 3V10L11 12L2 14V21L9.27 17.89A7 7 0 0 0 16 23A7 7 0 0 0 23 16A7 7 0 0 0 16 9L2 3M4 6.03L12.78 9.8A7 7 0 0 0 12.1 10.2L4 8.4V6.03M16 11A5 5 0 0 1 21 16A5 5 0 0 1 16 21A5 5 0 0 1 11 16A5 5 0 0 1 16 11M15 12.5V16.5L18 18.5L18.75 17.25L16.5 15.75V12.5H15M9.18 14.45A7 7 0 0 0 9 15.82L4 17.97V15.6L9.18 14.45Z\";\nexport var mdiSendLock = \"M23,18V17.5A2.5,2.5 0 0,0 20.5,15A2.5,2.5 0 0,0 18,17.5V18A1,1 0 0,0 17,19V23A1,1 0 0,0 18,24H23A1,1 0 0,0 24,23V19A1,1 0 0,0 23,18M22,18H19V17.5A1.5,1.5 0 0,1 20.5,16A1.5,1.5 0 0,1 22,17.5V18M23,12L2,21V14L17,12L2,10V3L23,12Z\";\nexport var mdiSendLockOutline = \"M23 18V17.5C23 16.12 21.88 15 20.5 15S18 16.12 18 17.5V18C17.45 18 17 18.45 17 19V23C17 23.55 17.45 24 18 24H23C23.55 24 24 23.55 24 23V19C24 18.45 23.55 18 23 18M22 18H19V17.5C19 16.67 19.67 16 20.5 16S22 16.67 22 17.5V18M4 6.03L11.5 9.25L4 8.25L4 6.03M11.5 14.75L4 17.97V15.75L11.5 14.75M2 3L2 10L17 12L2 14L2 21L23 12L2 3Z\";\nexport var mdiSendOutline = \"M4 6.03L11.5 9.25L4 8.25L4 6.03M11.5 14.75L4 17.97V15.75L11.5 14.75M2 3L2 10L17 12L2 14L2 21L23 12L2 3Z\";\nexport var mdiSendVariant = \"M3 20V14L11 12L3 10V4L22 12Z\";\nexport var mdiSendVariantClock = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M3 20V14L10.11 12.22C10.19 12.09 10.28 11.97 10.37 11.84L3 10V4L15.03 9.07C15.35 9 15.67 9 16 9C17.86 9 19.64 9.74 20.95 11.05C21.2 11.3 21.43 11.57 21.63 11.85L22 12L21.8 12.08C22.58 13.23 23 14.59 23 16C23 19.87 19.86 23 16 23C14.14 23 12.36 22.26 11.05 20.95C10.08 20 9.42 18.74 9.14 17.41L3 20M20.85 16C20.85 13.32 18.67 11.15 16 11.15C14.71 11.15 13.5 11.66 12.57 12.57C11.66 13.5 11.15 14.71 11.15 16C11.15 18.68 13.32 20.85 16 20.85C16.64 20.85 17.27 20.73 17.86 20.5C18.44 20.24 19 19.88 19.43 19.43C19.88 19 20.24 18.44 20.5 17.86C20.73 17.27 20.85 16.64 20.85 16Z\";\nexport var mdiSendVariantClockOutline = \"M15 16.69V13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69M21.63 11.85L22 12L21.8 12.08C22.58 13.23 23 14.59 23 16C23 19.87 19.86 23 16 23C14.14 23 12.36 22.26 11.05 20.95C10.08 20 9.42 18.74 9.14 17.41L3 20V4L15.03 9.07C15.35 9 15.67 9 16 9C17.86 9 19.64 9.74 20.95 11.05C21.2 11.3 21.43 11.57 21.63 11.85M12.28 10.07L5 7V10.5L10.37 11.84C10.89 11.14 11.54 10.54 12.28 10.07M10.11 12.22L5 13.5V17L9.04 15.3C9.15 14.17 9.53 13.13 10.11 12.22M20.85 16C20.85 13.32 18.67 11.15 16 11.15C14.71 11.15 13.5 11.66 12.57 12.57C11.66 13.5 11.15 14.71 11.15 16C11.15 18.68 13.32 20.85 16 20.85C16.64 20.85 17.27 20.73 17.86 20.5C18.44 20.24 19 19.88 19.43 19.43C19.88 19 20.24 18.44 20.5 17.86C20.73 17.27 20.85 16.64 20.85 16Z\";\nexport var mdiSendVariantOutline = \"M3 20V4L22 12M5 17L16.85 12L5 7V10.5L11 12L5 13.5M5 17V7 13.5Z\";\nexport var mdiSerialPort = \"M7,3H17V5H19V8H16V14H8V8H5V5H7V3M17,9H19V14H17V9M11,15H13V22H11V15M5,9H7V14H5V9Z\";\nexport var mdiServer = \"M4,1H20A1,1 0 0,1 21,2V6A1,1 0 0,1 20,7H4A1,1 0 0,1 3,6V2A1,1 0 0,1 4,1M4,9H20A1,1 0 0,1 21,10V14A1,1 0 0,1 20,15H4A1,1 0 0,1 3,14V10A1,1 0 0,1 4,9M4,17H20A1,1 0 0,1 21,18V22A1,1 0 0,1 20,23H4A1,1 0 0,1 3,22V18A1,1 0 0,1 4,17M9,5H10V3H9V5M9,13H10V11H9V13M9,21H10V19H9V21M5,3V5H7V3H5M5,11V13H7V11H5M5,19V21H7V19H5Z\";\nexport var mdiServerMinus = \"M4,4H20A1,1 0 0,1 21,5V9A1,1 0 0,1 20,10H4A1,1 0 0,1 3,9V5A1,1 0 0,1 4,4M9,8H10V6H9V8M5,6V8H7V6H5M8,16H16V18H8V16Z\";\nexport var mdiServerMinusOutline = \"M8 17H16V19H8V17M2 5.6V10.4C2 11.3 2.5 12 3.2 12H20.9C21.5 12 22.1 11.3 22.1 10.4V5.6C22 4.7 21.5 4 20.8 4H3.2C2.5 4 2 4.7 2 5.6M10 9V7H9V9H10M5 9H7V7H5V9M20 10H4V6H20V10Z\";\nexport var mdiServerNetwork = \"M13,19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H4A1,1 0 0,1 3,16V12A1,1 0 0,1 4,11H20A1,1 0 0,1 21,12V16A1,1 0 0,1 20,17H13V19M4,3H20A1,1 0 0,1 21,4V8A1,1 0 0,1 20,9H4A1,1 0 0,1 3,8V4A1,1 0 0,1 4,3M9,7H10V5H9V7M9,15H10V13H9V15M5,5V7H7V5H5M5,13V15H7V13H5Z\";\nexport var mdiServerNetworkOff = \"M13,19H14A1,1 0 0,1 15,20H15.73L13,17.27V19M22,20V21.18L20.82,20H22M21,22.72L19.73,24L17.73,22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H4A1,1 0 0,1 3,16V12A1,1 0 0,1 4,11H6.73L4.73,9H4A1,1 0 0,1 3,8V7.27L1,5.27L2.28,4L21,22.72M4,3H20A1,1 0 0,1 21,4V8A1,1 0 0,1 20,9H9.82L7,6.18V5H5.82L3.84,3C3.89,3 3.94,3 4,3M20,11A1,1 0 0,1 21,12V16A1,1 0 0,1 20,17H17.82L11.82,11H20M9,7H10V5H9V7M9,15H10V14.27L9,13.27V15M5,13V15H7V13H5Z\";\nexport var mdiServerNetworkOutline = \"M13 13V15H14C14.6 15 15 15.4 15 16H22V18H15C15 18.6 14.6 19 14 19H10C9.4 19 9 18.6 9 18H2V16H9C9 15.4 9.4 15 10 15H11V13H3.2C2.5 13 2 12.3 2 11.4V6.6C2 5.7 2.5 5 3.2 5H20.8C21.5 5 22 5.7 22 6.6V11.4C22 12.3 21.5 13 20.8 13H13M9 10V8H10V10H9M5 8H7V10H5V8M20 7H4V11H20V7Z\";\nexport var mdiServerOff = \"M4,1H20A1,1 0 0,1 21,2V6A1,1 0 0,1 20,7H8.82L6.82,5H7V3H5V3.18L3.21,1.39C3.39,1.15 3.68,1 4,1M22,22.72L20.73,24L19.73,23H4A1,1 0 0,1 3,22V18A1,1 0 0,1 4,17H13.73L11.73,15H4A1,1 0 0,1 3,14V10A1,1 0 0,1 4,9H5.73L3.68,6.95C3.38,6.85 3.15,6.62 3.05,6.32L1,4.27L2.28,3L22,22.72M20,9A1,1 0 0,1 21,10V14A1,1 0 0,1 20,15H16.82L10.82,9H20M20,17A1,1 0 0,1 21,18V19.18L18.82,17H20M9,5H10V3H9V5M9,13H9.73L9,12.27V13M9,21H10V19H9V21M5,11V13H7V11H5M5,19V21H7V19H5Z\";\nexport var mdiServerOutline = \"M2 4.6V9.4C2 10.3 2.5 11 3.2 11H20.9C21.5 11 22.1 10.3 22.1 9.4V4.6C22 3.7 21.5 3 20.8 3H3.2C2.5 3 2 3.7 2 4.6M10 8V6H9V8H10M5 8H7V6H5V8M20 9H4V5H20V9M2 14.6V19.4C2 20.3 2.5 21 3.2 21H20.9C21.5 21 22.1 20.3 22.1 19.4V14.6C22.1 13.7 21.6 13 20.9 13H3.2C2.5 13 2 13.7 2 14.6M10 18V16H9V18H10M5 18H7V16H5V18M20 19H4V15H20V19Z\";\nexport var mdiServerPlus = \"M4,4H20A1,1 0 0,1 21,5V9A1,1 0 0,1 20,10H4A1,1 0 0,1 3,9V5A1,1 0 0,1 4,4M9,8H10V6H9V8M5,6V8H7V6H5M8,16H11V13H13V16H16V18H13V21H11V18H8V16Z\";\nexport var mdiServerPlusOutline = \"M2 4.6V9.4C2 10.3 2.5 11 3.2 11H20.9C21.5 11 22.1 10.3 22.1 9.4V4.6C22 3.7 21.5 3 20.8 3H3.2C2.5 3 2 3.7 2 4.6M10 8V6H9V8H10M5 8H7V6H5V8M20 9H4V5H20V9M8 16H11V13H13V16H16V18H13V21H11V18H8V16Z\";\nexport var mdiServerRemove = \"M4,4H20A1,1 0 0,1 21,5V9A1,1 0 0,1 20,10H4A1,1 0 0,1 3,9V5A1,1 0 0,1 4,4M9,8H10V6H9V8M5,6V8H7V6H5M10.59,17L8,14.41L9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17Z\";\nexport var mdiServerSecurity = \"M3,1H19A1,1 0 0,1 20,2V6A1,1 0 0,1 19,7H3A1,1 0 0,1 2,6V2A1,1 0 0,1 3,1M3,9H19A1,1 0 0,1 20,10V10.67L17.5,9.56L11,12.44V15H3A1,1 0 0,1 2,14V10A1,1 0 0,1 3,9M3,17H11C11.06,19.25 12,21.4 13.46,23H3A1,1 0 0,1 2,22V18A1,1 0 0,1 3,17M8,5H9V3H8V5M8,13H9V11H8V13M8,21H9V19H8V21M4,3V5H6V3H4M4,11V13H6V11H4M4,19V21H6V19H4M17.5,12L22,14V17C22,19.78 20.08,22.37 17.5,23C14.92,22.37 13,19.78 13,17V14L17.5,12M17.5,13.94L15,15.06V17.72C15,19.26 16.07,20.7 17.5,21.06V13.94Z\";\nexport var mdiSetAll = \"M9,5C10.04,5 11.06,5.24 12,5.68C12.94,5.24 13.96,5 15,5A7,7 0 0,1 22,12A7,7 0 0,1 15,19C13.96,19 12.94,18.76 12,18.32C11.06,18.76 10.04,19 9,19A7,7 0 0,1 2,12A7,7 0 0,1 9,5M8.5,12C8.5,13.87 9.29,15.56 10.56,16.75L11.56,16.29C10.31,15.29 9.5,13.74 9.5,12C9.5,10.26 10.31,8.71 11.56,7.71L10.56,7.25C9.29,8.44 8.5,10.13 8.5,12M15.5,12C15.5,10.13 14.71,8.44 13.44,7.25L12.44,7.71C13.69,8.71 14.5,10.26 14.5,12C14.5,13.74 13.69,15.29 12.44,16.29L13.44,16.75C14.71,15.56 15.5,13.87 15.5,12Z\";\nexport var mdiSetCenter = \"M9,5A7,7 0 0,0 2,12A7,7 0 0,0 9,19C10.04,19 11.06,18.76 12,18.32C12.94,18.76 13.96,19 15,19A7,7 0 0,0 22,12A7,7 0 0,0 15,5C13.96,5 12.94,5.24 12,5.68C11.06,5.24 10.04,5 9,5M9,7C9.34,7 9.67,7.03 10,7.1C8.72,8.41 8,10.17 8,12C8,13.83 8.72,15.59 10,16.89C9.67,16.96 9.34,17 9,17A5,5 0 0,1 4,12A5,5 0 0,1 9,7M15,7A5,5 0 0,1 20,12A5,5 0 0,1 15,17C14.66,17 14.33,16.97 14,16.9C15.28,15.59 16,13.83 16,12C16,10.17 15.28,8.41 14,7.11C14.33,7.04 14.66,7 15,7Z\";\nexport var mdiSetCenterRight = \"M15,19C13.96,19 12.94,18.76 12,18.32C11.06,18.76 10.04,19 9,19A7,7 0 0,1 2,12A7,7 0 0,1 9,5C10.04,5 11.06,5.24 12,5.68C12.94,5.24 13.96,5 15,5A7,7 0 0,1 22,12A7,7 0 0,1 15,19M9,17L10,16.89C8.72,15.59 8,13.83 8,12C8,10.17 8.72,8.41 10,7.1L9,7A5,5 0 0,0 4,12A5,5 0 0,0 9,17M15.5,12C15.5,10.13 14.71,8.44 13.44,7.25L12.44,7.71C13.69,8.71 14.5,10.26 14.5,12C14.5,13.74 13.69,15.29 12.44,16.29L13.44,16.75C14.71,15.56 15.5,13.87 15.5,12Z\";\nexport var mdiSetLeft = \"M9,5A7,7 0 0,0 2,12A7,7 0 0,0 9,19C10.04,19 11.06,18.76 12,18.32C12.94,18.76 13.96,19 15,19A7,7 0 0,0 22,12A7,7 0 0,0 15,5C13.96,5 12.94,5.24 12,5.68C11.06,5.24 10.04,5 9,5M15,7A5,5 0 0,1 20,12A5,5 0 0,1 15,17C14.66,17 14.33,16.97 14,16.9C15.28,15.59 16,13.83 16,12C16,10.17 15.28,8.41 14,7.11C14.33,7.04 14.66,7 15,7M12,8C13.26,8.95 14,10.43 14,12C14,13.57 13.26,15.05 12,16C10.74,15.05 10,13.57 10,12C10,10.43 10.74,8.95 12,8Z\";\nexport var mdiSetLeftCenter = \"M9,5C10.04,5 11.06,5.24 12,5.68C12.94,5.24 13.96,5 15,5A7,7 0 0,1 22,12A7,7 0 0,1 15,19C13.96,19 12.94,18.76 12,18.32C11.06,18.76 10.04,19 9,19A7,7 0 0,1 2,12A7,7 0 0,1 9,5M15,7L14,7.11C15.28,8.41 16,10.17 16,12C16,13.83 15.28,15.59 14,16.9L15,17A5,5 0 0,0 20,12A5,5 0 0,0 15,7M8.5,12C8.5,13.87 9.29,15.56 10.56,16.75L11.56,16.29C10.31,15.29 9.5,13.74 9.5,12C9.5,10.26 10.31,8.71 11.56,7.71L10.56,7.25C9.29,8.44 8.5,10.13 8.5,12Z\";\nexport var mdiSetLeftRight = \"M9,5C10.04,5 11.06,5.24 12,5.68C12.94,5.24 13.96,5 15,5A7,7 0 0,1 22,12A7,7 0 0,1 15,19C13.96,19 12.94,18.76 12,18.32C11.06,18.76 10.04,19 9,19A7,7 0 0,1 2,12A7,7 0 0,1 9,5M9,12C9,14.22 10.21,16.16 12,17.2C13.79,16.16 15,14.22 15,12C15,9.78 13.79,7.84 12,6.8C10.21,7.84 9,9.78 9,12Z\";\nexport var mdiSetMerge = \"M2 7V9H7V7H2M12 9V11H9V13H12V15L15 12L12 9M17 9V15H22V9H17M2 11V13H7V11H2M2 15V17H7V15H2Z\";\nexport var mdiSetNone = \"M9,5A7,7 0 0,0 2,12A7,7 0 0,0 9,19C10.04,19 11.06,18.76 12,18.32C12.94,18.76 13.96,19 15,19A7,7 0 0,0 22,12A7,7 0 0,0 15,5C13.96,5 12.94,5.24 12,5.68C11.06,5.24 10.04,5 9,5M9,7C9.34,7 9.67,7.03 10,7.1C8.72,8.41 8,10.17 8,12C8,13.83 8.72,15.59 10,16.89C9.67,16.96 9.34,17 9,17A5,5 0 0,1 4,12A5,5 0 0,1 9,7M15,7A5,5 0 0,1 20,12A5,5 0 0,1 15,17C14.66,17 14.33,16.97 14,16.9C15.28,15.59 16,13.83 16,12C16,10.17 15.28,8.41 14,7.11C14.33,7.04 14.66,7 15,7M12,8C13.26,8.95 14,10.43 14,12C14,13.57 13.26,15.05 12,16C10.74,15.05 10,13.57 10,12C10,10.43 10.74,8.95 12,8Z\";\nexport var mdiSetRight = \"M15,19C13.96,19 12.94,18.76 12,18.32C11.06,18.76 10.04,19 9,19A7,7 0 0,1 2,12A7,7 0 0,1 9,5C10.04,5 11.06,5.24 12,5.68C12.94,5.24 13.96,5 15,5A7,7 0 0,1 22,12A7,7 0 0,1 15,19M9,17L10,16.89C8.72,15.59 8,13.83 8,12C8,10.17 8.72,8.41 10,7.1L9,7A5,5 0 0,0 4,12A5,5 0 0,0 9,17M12,16C13.26,15.05 14,13.57 14,12C14,10.43 13.26,8.95 12,8C10.74,8.95 10,10.43 10,12C10,13.57 10.74,15.05 12,16Z\";\nexport var mdiSetSplit = \"M17 7V9H22V7H17M2 9V15H7V9H2M12 9V11H9V13H12V15L15 12L12 9M17 11V13H22V11H17M17 15V17H22V15H17Z\";\nexport var mdiSetSquare = \"M17.7 17.7L16.6 18.8L15.9 18L17 17L15 15L14 16.1L13.3 15.4L14.4 14.3L12.5 12.4L11.4 13.5L10.7 12.8L11.8 11.7L9.8 9.8L8.7 10.9L8 10.2L9 9L7.1 7.1L6 8.1L5.3 7.4L6.4 6.3L4 4V20H20L17.7 17.7M7 17V11.2L12.8 17H7Z\";\nexport var mdiSetTopBox = \"M5,15.5A0.5,0.5 0 0,1 4.5,16H3.5A0.5,0.5 0 0,1 3,15.5V15H2A1,1 0 0,1 1,14V11A1,1 0 0,1 2,10H22A1,1 0 0,1 23,11V14A1,1 0 0,1 22,15H21V15.5A0.5,0.5 0 0,1 20.5,16H19.5A0.5,0.5 0 0,1 19,15.5V15H5V15.5M3,12V13H5V12H3M6,12V13H8V12H6M20.5,11.5A1,1 0 0,0 19.5,12.5A1,1 0 0,0 20.5,13.5A1,1 0 0,0 21.5,12.5A1,1 0 0,0 20.5,11.5Z\";\nexport var mdiSettingsHelper = \"M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22Z\";\nexport var mdiShaker = \"M7 16C7 16.55 6.55 17 6 17S5 16.55 5 16C5 15.45 5.45 15 6 15S7 15.45 7 16M9 16C8.45 16 8 16.45 8 17S8.45 18 9 18 10 17.55 10 17 9.55 16 9 16M4 18C3.45 18 3 18.45 3 19S3.45 20 4 20 5 19.55 5 19 4.55 18 4 18M7 19C6.45 19 6 19.45 6 20S6.45 21 7 21 8 20.55 8 20 7.55 19 7 19M15.33 2.72L9.8 9.65L13.34 13.19L20.28 7.67C21.18 6.91 21.25 5.54 20.41 4.7L18.3 2.59C17.46 1.75 16.09 1.82 15.33 2.72M8.39 12.5L10.5 14.6C10.9 15 11.54 15 11.93 14.6L12.63 13.9L9.1 10.36L8.39 11.07C8 11.46 8 12.09 8.39 12.5Z\";\nexport var mdiShakerOutline = \"M16.88 4L16.88 4L19.03 6.1L13.5 10.5L12.5 9.5L16.87 4L16.88 4M16.88 2C16.3 2 15.73 2.24 15.33 2.72L9.8 9.65L13.34 13.19L20.28 7.67C21.18 6.91 21.25 5.54 20.41 4.7L18.3 2.59C17.9 2.19 17.39 2 16.88 2M9.1 10.36L8.39 11.07C8 11.46 8 12.09 8.39 12.5L10.5 14.6C10.71 14.8 10.96 14.89 11.22 14.89S11.73 14.8 11.93 14.6L12.63 13.9L9.1 10.36M6 15C5.45 15 5 15.45 5 16C5 16.55 5.45 17 6 17C6.55 17 7 16.55 7 16C7 15.45 6.55 15 6 15M9 16C8.45 16 8 16.45 8 17S8.45 18 9 18C9.55 18 10 17.55 10 17S9.55 16 9 16M4 18C3.45 18 3 18.45 3 19S3.45 20 4 20C4.55 20 5 19.55 5 19S4.55 18 4 18M7 19C6.45 19 6 19.45 6 20S6.45 21 7 21C7.55 21 8 20.55 8 20S7.55 19 7 19Z\";\nexport var mdiShape = \"M11,13.5V21.5H3V13.5H11M12,2L17.5,11H6.5L12,2M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13Z\";\nexport var mdiShapeCirclePlus = \"M11,19A6,6 0 0,0 17,13H19A8,8 0 0,1 11,21A8,8 0 0,1 3,13A8,8 0 0,1 11,5V7A6,6 0 0,0 5,13A6,6 0 0,0 11,19M19,5H22V7H19V10H17V7H14V5H17V2H19V5Z\";\nexport var mdiShapeOutline = \"M11,13.5V21.5H3V13.5H11M9,15.5H5V19.5H9V15.5M12,2L17.5,11H6.5L12,2M12,5.86L10.08,9H13.92L12,5.86M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13M17.5,15A2.5,2.5 0 0,0 15,17.5A2.5,2.5 0 0,0 17.5,20A2.5,2.5 0 0,0 20,17.5A2.5,2.5 0 0,0 17.5,15Z\";\nexport var mdiShapeOvalPlus = \"M19 5H22V7H19V10H17V7H14V5H17V2H19V5M11 4L12 4.09V6.14C11.68 6.05 11.34 6 11 6C8.24 6 6 9.13 6 13C6 16.87 8.24 20 11 20C13.76 20 16 16.87 16 13L15.95 12H17.96L18 13C18 17.97 14.87 22 11 22C7.13 22 4 17.97 4 13C4 8.03 7.13 4 11 4Z\";\nexport var mdiShapePlus = \"M2,2H11V11H2V2M17.5,2C20,2 22,4 22,6.5C22,9 20,11 17.5,11C15,11 13,9 13,6.5C13,4 15,2 17.5,2M6.5,14L11,22H2L6.5,14M19,17H22V19H19V22H17V19H14V17H17V14H19V17Z\";\nexport var mdiShapePlusOutline = \"M11 11V2H2V11M4 9V4H9V9M20 6.5C20 7.9 18.9 9 17.5 9S15 7.9 15 6.5 16.11 4 17.5 4 20 5.11 20 6.5M6.5 14L2 22H11M7.58 20H5.42L6.5 18.08M22 6.5C22 4 20 2 17.5 2S13 4 13 6.5 15 11 17.5 11 22 9 22 6.5M19 17V14H17V17H14V19H17V22H19V19H22V17Z\";\nexport var mdiShapePolygonPlus = \"M17,15.7V13H19V17L10,21L3,14L7,5H11V7H8.3L5.4,13.6L10.4,18.6L17,15.7M22,5V7H19V10H17V7H14V5H17V2H19V5H22Z\";\nexport var mdiShapeRectanglePlus = \"M19,6H22V8H19V11H17V8H14V6H17V3H19V6M17,17V14H19V19H3V6H11V8H5V17H17Z\";\nexport var mdiShapeSquarePlus = \"M19,5H22V7H19V10H17V7H14V5H17V2H19V5M17,19V13H19V21H3V5H11V7H5V19H17Z\";\nexport var mdiShapeSquareRoundedPlus = \"M17 2H19V5H22V7H19V10H17V7H14V5H17V2M7 5H11V7H7C5.9 7 5 7.9 5 9V17C5 18.11 5.9 19 7 19H15C16.11 19 17 18.11 17 17V13H19V17C19 19.21 17.21 21 15 21H7C4.79 21 3 19.21 3 17V9C3 6.79 4.79 5 7 5Z\";\nexport var mdiShare = \"M21,12L14,5V9C7,10 4,15 3,20C5.5,16.5 9,14.9 14,14.9V19L21,12Z\";\nexport var mdiShareAll = \"M11 9V5L18 12L11 19V14.9C6 14.9 2.5 16.5 0 20C1 15 4 10 11 9M17 8V5L24 12L17 19V16L21 12L17 8Z\";\nexport var mdiShareAllOutline = \"M13 9.8V10.7L11.3 10.9C8.7 11.3 6.8 12.3 5.4 13.6C7.1 13.1 8.9 12.8 11 12.8H13V14.1L15.2 12L13 9.8M11 5L18 12L11 19V14.9C6 14.9 2.5 16.5 0 20C1 15 4 10 11 9M17 8V5L24 12L17 19V16L21 12\";\nexport var mdiShareCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\";\nexport var mdiShareOff = \"M20.8 22.7L15.6 17.5L14 19V15.9L13.1 14.9C8.6 15.2 5.4 16.8 3 20.1C3.58 16.31 5.72 12.94 8.9 10.8L1.1 3L2.4 1.7L22.1 21.5M18.1 14.9L21 12L14 5V9L12.5 9.3\";\nexport var mdiShareOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L8.9 10.8C5.4 12.9 3.7 16.4 3 20C5.3 16.7 8.6 15.1 13 14.9L14 15.9V19L15.6 17.4L20.8 22.7M8.3 13.8C8.94 13.22 9.65 12.71 10.4 12.3L11.3 13.1M14.2 11L12.5 9.3L14 9V5L21 12L18.1 14.9L16.7 13.5L18.2 12L16 9.8V10.7\";\nexport var mdiShareOutline = \"M14,5V9C7,10 4,15 3,20C5.5,16.5 9,14.9 14,14.9V19L21,12L14,5M16,9.83L18.17,12L16,14.17V12.9H14C11.93,12.9 10.07,13.28 8.34,13.85C9.74,12.46 11.54,11.37 14.28,11L16,10.73V9.83Z\";\nexport var mdiShareVariant = \"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z\";\nexport var mdiShareVariantOutline = \"M18 16.08C17.24 16.08 16.56 16.38 16.04 16.85L8.91 12.7C8.96 12.47 9 12.24 9 12S8.96 11.53 8.91 11.3L15.96 7.19C16.5 7.69 17.21 8 18 8C19.66 8 21 6.66 21 5S19.66 2 18 2 15 3.34 15 5C15 5.24 15.04 5.47 15.09 5.7L8.04 9.81C7.5 9.31 6.79 9 6 9C4.34 9 3 10.34 3 12S4.34 15 6 15C6.79 15 7.5 14.69 8.04 14.19L15.16 18.34C15.11 18.55 15.08 18.77 15.08 19C15.08 20.61 16.39 21.91 18 21.91S20.92 20.61 20.92 19C20.92 17.39 19.61 16.08 18 16.08M18 4C18.55 4 19 4.45 19 5S18.55 6 18 6 17 5.55 17 5 17.45 4 18 4M6 13C5.45 13 5 12.55 5 12S5.45 11 6 11 7 11.45 7 12 6.55 13 6 13M18 20C17.45 20 17 19.55 17 19S17.45 18 18 18 19 18.45 19 19 18.55 20 18 20Z\";\nexport var mdiShark = \"M15.56 9.09C14.66 7.18 12.54 6 11 6C11.47 7.4 11.28 8.57 10.95 9.43C8.45 10 6 11 6 11S3 7 1 7L3 13L2 17C4 17 6 14 6 14S11 16 14 16V18C14.65 18 15.91 17.17 16.73 15.77C17.97 15.56 19 15.21 19.87 14.81C19.72 14.63 19.53 14.44 19.28 14.3C18.63 13.91 17.82 13.67 17 13.5C17.82 13.34 18.67 13.22 19.59 13.35C20.05 13.41 20.54 13.54 21 13.86C21.1 13.92 21.17 14 21.24 14.05C22.4 13.26 23 12.44 23 12C23 11.13 19.19 9.5 15.56 9.09M18 12C17.45 12 17 11.55 17 11C17 10.76 17.1 10.55 17.23 10.38C17.84 10.5 18.43 10.67 18.97 10.84C19 10.89 19 10.94 19 11C19 11.55 18.55 12 18 12Z\";\nexport var mdiSharkFin = \"M22 16V18H20C18.6 18 17.2 17.6 16 17C13.5 18.3 10.5 18.3 8 17C6.8 17.6 5.4 18 4 18H2V16H4C5.4 16 6.8 15.5 8 14.7C10.4 16.4 13.6 16.4 16 14.7C17.2 15.5 18.6 16 20 16H22M5.28 13.79C5.82 13.63 6.37 13.38 6.89 13.04L8.03 12.27L9.16 13.07C10 13.66 11 14 12 14C13 14 14 13.66 14.84 13.07L15.97 12.27L17.11 13.04C17.93 13.59 18.83 13.9 19.67 13.97C18.24 7.4 12.37 2 6 2C5.65 2 5.33 2.18 5.15 2.47C4.97 2.77 4.95 3.14 5.11 3.45C7.28 7.79 6.61 11.29 5.28 13.79M16 18.7C13.6 20.4 10.4 20.4 8 18.7C6.8 19.5 5.4 20 4 20H2V22H4C5.4 22 6.8 21.6 8 21C10.5 22.3 13.5 22.3 16 21C17.2 21.6 18.6 22 20 22H22V20H20C18.6 20 17.2 19.5 16 18.7Z\";\nexport var mdiSharkFinOutline = \"M22 16V18H20C18.6 18 17.2 17.6 16 17C13.5 18.3 10.5 18.3 8 17C6.8 17.6 5.4 18 4 18H2V16H4C5.4 16 6.8 15.5 8 14.7C10.4 16.4 13.6 16.4 16 14.7C17.2 15.5 18.6 16 20 16H22M5.28 13.79C5.82 13.63 6.37 13.38 6.89 13.04L8 12.28C8.69 10 8.78 7.27 7.59 4.14C11.95 4.89 15.89 8.65 17.37 13.19C18.12 13.64 18.91 13.91 19.66 13.97C18.24 7.4 12.37 2 6 2C5.65 2 5.33 2.18 5.15 2.47C4.97 2.77 4.95 3.14 5.11 3.45C7.28 7.79 6.61 11.29 5.28 13.79M16 18.7C13.6 20.4 10.4 20.4 8 18.7C6.8 19.5 5.4 20 4 20H2V22H4C5.4 22 6.8 21.6 8 21C10.5 22.3 13.5 22.3 16 21C17.2 21.6 18.6 22 20 22H22V20H20C18.6 20 17.2 19.5 16 18.7Z\";\nexport var mdiSharkOff = \"M11.26 8.06L18.53 15.33C19 15.17 19.46 15 19.87 14.81C19.72 14.63 19.53 14.44 19.28 14.3C18.63 13.91 17.82 13.67 17 13.5C17.82 13.34 18.67 13.22 19.59 13.35C20.05 13.41 20.54 13.54 21 13.86C21.1 13.92 21.17 14 21.24 14.05C22.4 13.26 23 12.44 23 12C23 11.13 19.19 9.5 15.56 9.09C14.66 7.18 12.54 6 11 6C11.25 6.76 11.31 7.45 11.26 8.06M17.23 10.38C17.84 10.5 18.43 10.67 18.97 10.84C19 10.89 19 10.94 19 11C19 11.55 18.55 12 18 12S17 11.55 17 11C17 10.76 17.1 10.55 17.23 10.38M22.11 21.46L20.84 22.73L15.42 17.31C14.88 17.75 14.35 18 14 18V16C11 16 6 14 6 14S4 17 2 17L3 13L1 7C3 7 6 11 6 11S6.96 10.62 8.3 10.19L1.11 3L2.39 1.73L22.11 21.46Z\";\nexport var mdiSheep = \"M20,8.5A2.5,2.5 0 0,1 17.5,11C16.42,11 15.5,10.31 15.16,9.36C14.72,9.75 14.14,10 13.5,10C12.94,10 12.42,9.81 12,9.5C11.58,9.81 11.07,10 10.5,10C9.86,10 9.28,9.75 8.84,9.36C8.5,10.31 7.58,11 6.5,11A2.5,2.5 0 0,1 4,8.5C4,7.26 4.91,6.23 6.1,6.04C6.04,5.87 6,5.69 6,5.5A1.5,1.5 0 0,1 7.5,4C7.7,4 7.89,4.04 8.06,4.11C8.23,3.47 8.81,3 9.5,3C9.75,3 10,3.07 10.18,3.17C10.5,2.5 11.19,2 12,2C12.81,2 13.5,2.5 13.82,3.17C14,3.07 14.25,3 14.5,3C15.19,3 15.77,3.47 15.94,4.11C16.11,4.04 16.3,4 16.5,4A1.5,1.5 0 0,1 18,5.5C18,5.69 17.96,5.87 17.9,6.04C19.09,6.23 20,7.26 20,8.5M10,12A1,1 0 0,0 9,13A1,1 0 0,0 10,14A1,1 0 0,0 11,13A1,1 0 0,0 10,12M14,12A1,1 0 0,0 13,13A1,1 0 0,0 14,14A1,1 0 0,0 15,13A1,1 0 0,0 14,12M20.23,10.66C19.59,11.47 18.61,12 17.5,12C17.05,12 16.62,11.9 16.21,11.73C16.2,14.28 15.83,17.36 14.45,18.95C13.93,19.54 13.3,19.86 12.5,19.96V18H11.5V19.96C10.7,19.86 10.07,19.55 9.55,18.95C8.16,17.35 7.79,14.29 7.78,11.74C7.38,11.9 6.95,12 6.5,12C5.39,12 4.41,11.47 3.77,10.66C2.88,11.55 2,12 2,12C2,12 3,14 5,14C5.36,14 5.64,13.96 5.88,13.91C6.22,17.73 7.58,22 12,22C16.42,22 17.78,17.73 18.12,13.91C18.36,13.96 18.64,14 19,14C21,14 22,12 22,12C22,12 21.12,11.55 20.23,10.66Z\";\nexport var mdiShield = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1Z\";\nexport var mdiShieldAccount = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M17.13,17C15.92,18.85 14.11,20.24 12,20.92C9.89,20.24 8.08,18.85 6.87,17C6.53,16.5 6.24,16 6,15.47C6,13.82 8.71,12.47 12,12.47C15.29,12.47 18,13.79 18,15.47C17.76,16 17.47,16.5 17.13,17Z\";\nexport var mdiShieldAccountOutline = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M12,3.18L19,6.3V11.22C19,12.92 18.5,14.65 17.65,16.17C16,14.94 13.26,14.5 12,14.5C10.74,14.5 8,14.94 6.35,16.17C5.5,14.65 5,12.92 5,11.22V6.3L12,3.18M12,6A3.5,3.5 0 0,0 8.5,9.5A3.5,3.5 0 0,0 12,13A3.5,3.5 0 0,0 15.5,9.5A3.5,3.5 0 0,0 12,6M12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8M12,16.5C13.57,16.5 15.64,17.11 16.53,17.84C15.29,19.38 13.7,20.55 12,21C10.3,20.55 8.71,19.38 7.47,17.84C8.37,17.11 10.43,16.5 12,16.5Z\";\nexport var mdiShieldAccountVariant = \"M17 11C17.3 11 17.7 11 18 11.1V6.3L10.5 3L3 6.3V11.2C3 15.7 6.2 20 10.5 21C11.1 20.9 11.6 20.7 12.1 20.5C11.4 19.5 11 18.3 11 17C11 13.7 13.7 11 17 11M17 13C14.8 13 13 14.8 13 17S14.8 21 17 21 21 19.2 21 17 19.2 13 17 13M17 14.4C17.6 14.4 18.1 14.9 18.1 15.5C18.1 16.1 17.6 16.6 17 16.6S15.9 16.1 15.9 15.5 16.4 14.4 17 14.4M17 19.8C16.1 19.8 15.3 19.3 14.8 18.6C14.9 17.9 16.3 17.5 17 17.5S19.2 17.9 19.2 18.6C18.7 19.3 17.9 19.8 17 19.8Z\";\nexport var mdiShieldAccountVariantOutline = \"M17 14.4C17.6 14.4 18.1 14.9 18.1 15.5S17.6 16.6 17 16.6 15.9 16.1 15.9 15.5 16.4 14.4 17 14.4M17 17.5C16.3 17.5 14.8 17.9 14.8 18.6C15.3 19.3 16.1 19.8 17 19.8S18.7 19.3 19.2 18.6C19.2 17.9 17.7 17.5 17 17.5M18 11.1V6.3L10.5 3L3 6.3V11.2C3 15.7 6.2 20 10.5 21C11.1 20.9 11.6 20.7 12.1 20.5C13.2 22 15 23 17 23C20.3 23 23 20.3 23 17C23 14 20.8 11.6 18 11.1M11 17C11 17.6 11.1 18.1 11.2 18.6C11 18.7 10.7 18.8 10.5 18.9C7.3 17.9 5 14.7 5 11.2V7.6L10.5 5.2L16 7.6V11.1C13.2 11.6 11 14 11 17M17 21C14.8 21 13 19.2 13 17S14.8 13 17 13 21 14.8 21 17 19.2 21 17 21Z\";\nexport var mdiShieldAirplane = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M12,5.68C12.5,5.68 12.95,6.11 12.95,6.63V10.11L18,13.26V14.53L12.95,12.95V16.42L14.21,17.37V18.32L12,17.68L9.79,18.32V17.37L11.05,16.42V12.95L6,14.53V13.26L11.05,10.11V6.63C11.05,6.11 11.5,5.68 12,5.68Z\";\nexport var mdiShieldAirplaneOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M12,5.68C12.5,5.68 12.95,6.11 12.95,6.63V10.11L18,13.26V14.53L12.95,12.95V16.42L14.21,17.37V18.32L12,17.68L9.79,18.32V17.37L11.05,16.42V12.95L6,14.53V13.26L11.05,10.11V6.63C11.05,6.11 11.5,5.68 12,5.68Z\";\nexport var mdiShieldAlert = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5M11,7H13V13H11M11,15H13V17H11\";\nexport var mdiShieldAlertOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M11,7H13V13H11V7M11,15H13V17H11V15Z\";\nexport var mdiShieldBug = \"M11 13H13V14H11V13M21 5V11C21 16.5 17.2 21.7 12 23C6.8 21.7 3 16.5 3 11V5L12 1L21 5M17 10H14.8C14.6 9.4 14.2 8.9 13.7 8.5L14.9 7.3L14.2 6.6L12.8 8H12C11.8 8 11.5 8 11.3 8.1L9.9 6.6L9.1 7.4L10.3 8.6C9.8 8.9 9.4 9.4 9.2 10H7V11H9V12H7V13H9V14H7V15H9.2C9.6 16.2 10.7 17 12 17S14.4 16.2 14.8 15H17V14H15V13H17V12H15V11H17V10M11 12H13V11H11V12Z\";\nexport var mdiShieldBugOutline = \"M9.9 6.6L9.1 7.4L10.3 8.6C9.8 8.9 9.4 9.4 9.2 10H7V11H9V12H7V13H9V14H7V15H9.2C9.6 16.2 10.7 17 12 17S14.4 16.2 14.8 15H17V14H15V13H17V12H15V11H17V10H14.8C14.6 9.4 14.2 8.9 13.7 8.5L14.9 7.3L14.2 6.6L12.8 8H12C11.8 8 11.5 8 11.3 8.1L9.9 6.6M11 11H13V12H11V11M11 13H13V14H11V13M21 11C21 16.5 17.2 21.7 12 23C6.8 21.7 3 16.5 3 11V5L12 1L21 5V11M12 21C15.8 20 19 15.5 19 11.2V6.3L12 3.2L5 6.3V11.2C5 15.5 8.2 20 12 21Z\";\nexport var mdiShieldCar = \"M14.42 7.5L16 11H8L9.42 7.5H14.42M9 12C8.45 12 8 12.45 8 13S8.45 14 9 14 10 13.55 10 13 9.55 12 9 12M15 12C14.45 12 14 12.45 14 13S14.45 14 15 14 16 13.55 16 13 15.55 12 15 12M21 5V11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1L21 5M18 12L15.84 7C15.64 6.42 15.08 6 14.42 6H9.42C8.76 6 8.2 6.42 8 7L6 12V16C6 16.55 6.45 17 7 17H8C8.55 17 9 16.55 9 16V15H15V16C15 16.55 15.45 17 16 17H17C17.55 17 18 16.55 18 16V12Z\";\nexport var mdiShieldCheck = \"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1Z\";\nexport var mdiShieldCheckOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9\";\nexport var mdiShieldCross = \"M12,1L3,5V11C3,16.5 6.8,21.7 12,23C17.2,21.7 21,16.5 21,11V5L12,1M16,10H13V18H11V10H8V8H11V5H13V8H16V10Z\";\nexport var mdiShieldCrossOutline = \"M21,11C21,16.5 17.2,21.7 12,23C6.8,21.7 3,16.5 3,11V5L12,1L21,5V11M12,21C15.8,20 19,15.5 19,11.2V6.3L12,3.2L5,6.3V11.2C5,15.5 8.3,20 12,21M16,9H13V6H11V9H8V11H11V19H13V11H16V9Z\";\nexport var mdiShieldCrown = \"M12 1L21 5V11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1M16 14H8V15.5C8 15.77 8.19 15.96 8.47 16L8.57 16H15.43C15.74 16 15.95 15.84 16 15.59L16 15.5V14M17 8L17 8L14.33 10.67L12 8.34L9.67 10.67L7 8L7 8L8 13H16L17 8Z\";\nexport var mdiShieldCrownOutline = \"M12 1L21 5V11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1M12 3.18L5 6.3V11.22C5 15.54 8.25 20 12 21C15.75 20 19 15.54 19 11.22V6.3L12 3.18M16 14V15.5L16 15.59C15.96 15.81 15.78 15.96 15.53 16L15.43 16H8.57L8.47 16C8.22 15.96 8.04 15.81 8 15.59L8 15.5V14H16M17 8L16 13H8L7 8L7 8L9.67 10.67L12 8.34L14.33 10.67L17 8L17 8Z\";\nexport var mdiShieldEdit = \"M21.7 14.4L20.7 15.4L18.6 13.3L19.6 12.3C19.8 12.1 20.2 12.1 20.4 12.3L21.7 13.6C21.9 13.8 21.9 14.1 21.7 14.4M12 19.9L18.1 13.8L20.2 15.9L14.1 22H12V19.9M10 19.1L21 8.1V5L12 1L3 5V11C3 15.8 5.9 20.3 10 22.3V19.1Z\";\nexport var mdiShieldEditOutline = \"M21.7 13.6L20.4 12.3C20.3 12.2 20.2 12.1 20 12.1C19.9 12.1 19.7 12.2 19.6 12.3L18.6 13.3L20.6 15.3L21.6 14.3C21.9 14.1 21.9 13.8 21.7 13.6M12 19.9V22H14.1L20.2 15.9L18.2 13.8L12 19.9M10 22.3C5.9 20.3 3 15.8 3 11V5L12 1L21 5V8.1L19 10.1V6.3L12 3.2L5 6.3V11.2C5 14.7 7.2 18.3 10 20.1V22.3Z\";\nexport var mdiShieldHalf = \"M12 1L3 5V11C3 16.5 6.8 21.7 12 23V1Z\";\nexport var mdiShieldHalfFull = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18V21Z\";\nexport var mdiShieldHome = \"M11,13H13V16H16V11H18L12,6L6,11H8V16H11V13M12,1L21,5V11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1Z\";\nexport var mdiShieldHomeOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M11,14H13V17H16V12H18L12,7L6,12H8V17H11V14\";\nexport var mdiShieldKey = \"M12,8A1,1 0 0,1 13,9A1,1 0 0,1 12,10A1,1 0 0,1 11,9A1,1 0 0,1 12,8M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,6A3,3 0 0,0 9,9C9,10.31 9.83,11.42 11,11.83V18H13V16H15V14H13V11.83C14.17,11.42 15,10.31 15,9A3,3 0 0,0 12,6Z\";\nexport var mdiShieldKeyOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M12,6A3,3 0 0,1 15,9C15,10.31 14.17,11.42 13,11.83V14H15V16H13V18H11V11.83C9.83,11.42 9,10.31 9,9A3,3 0 0,1 12,6M12,8A1,1 0 0,0 11,9A1,1 0 0,0 12,10A1,1 0 0,0 13,9A1,1 0 0,0 12,8Z\";\nexport var mdiShieldLinkVariant = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M14.28,14.08L12.26,16.1C11.66,16.7 10.87,17 10.08,17C9.29,17 8.5,16.7 7.9,16.1C6.7,14.9 6.7,12.95 7.9,11.74L9.15,10.5L9.14,11.06C9.14,11.5 9.21,11.95 9.36,12.37L9.41,12.5L9.04,12.87C8.76,13.15 8.6,13.53 8.6,13.92C8.6,14.32 8.76,14.69 9.04,14.97C9.6,15.53 10.57,15.53 11.13,14.97L13.14,12.96C13.43,12.67 13.58,12.3 13.58,11.91C13.58,11.5 13.43,11.14 13.15,10.86C13,10.71 12.9,10.5 12.9,10.29C12.9,10.08 13,9.88 13.15,9.73C13.45,9.42 14,9.43 14.28,9.73C14.86,10.31 15.18,11.08 15.18,11.9C15.18,12.73 14.86,13.5 14.28,14.08M17.1,11.26L15.85,12.5L15.86,11.94C15.86,11.5 15.79,11.06 15.64,10.64L15.6,10.5L15.96,10.13C16.25,9.85 16.4,9.5 16.4,9.08C16.4,8.69 16.25,8.32 15.97,8.04C15.4,7.47 14.43,7.47 13.87,8.04L11.86,10.05C11.58,10.33 11.42,10.7 11.42,11.1C11.42,11.5 11.57,11.86 11.86,12.14C12,12.29 12.1,12.5 12.1,12.71C12.1,12.93 12,13.13 11.85,13.28C11.7,13.44 11.5,13.5 11.29,13.5C11.09,13.5 10.88,13.43 10.72,13.28C9.5,12.08 9.5,10.12 10.72,8.92L12.74,6.9C13.95,5.7 15.9,5.7 17.1,6.9C17.68,7.5 18,8.26 18,9.08C18,9.9 17.68,10.68 17.1,11.26Z\";\nexport var mdiShieldLinkVariantOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M14.28,9.73C14.86,10.31 15.18,11.08 15.18,11.9C15.18,12.73 14.86,13.5 14.28,14.08L12.26,16.1C11.66,16.7 10.87,17 10.08,17C9.29,17 8.5,16.7 7.9,16.1C6.7,14.9 6.7,12.95 7.9,11.74L9.15,10.5L9.14,11.06C9.14,11.5 9.21,11.95 9.36,12.36L9.4,12.5L9.04,12.87C8.75,13.15 8.6,13.5 8.6,13.92C8.6,14.31 8.75,14.68 9.03,14.96C9.6,15.53 10.57,15.53 11.13,14.97L13.14,12.95C13.43,12.67 13.58,12.3 13.58,11.91C13.58,11.5 13.43,11.14 13.14,10.86C13,10.71 12.9,10.5 12.9,10.29C12.9,10.08 13,9.87 13.14,9.72C13.45,9.42 14,9.42 14.28,9.73M18,9.08C18,9.9 17.68,10.68 17.1,11.26L15.85,12.5L15.86,11.94C15.86,11.5 15.79,11.06 15.64,10.64L15.59,10.5L15.96,10.13C16.25,9.85 16.4,9.5 16.4,9.08C16.4,8.69 16.25,8.32 15.96,8.04C15.4,7.47 14.43,7.47 13.87,8.03L11.86,10.05C11.57,10.33 11.42,10.7 11.42,11.1C11.42,11.5 11.57,11.86 11.85,12.14C12,12.29 12.1,12.5 12.1,12.71C12.1,12.93 12,13.13 11.85,13.28C11.7,13.43 11.5,13.5 11.29,13.5C11.09,13.5 10.88,13.43 10.72,13.28C9.5,12.07 9.5,10.12 10.72,8.92L12.74,6.9C13.95,5.7 15.9,5.7 17.1,6.9C17.68,7.5 18,8.26 18,9.08Z\";\nexport var mdiShieldLock = \"M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M12,7C13.4,7 14.8,8.1 14.8,9.5V11C15.4,11 16,11.6 16,12.3V15.8C16,16.4 15.4,17 14.7,17H9.2C8.6,17 8,16.4 8,15.7V12.2C8,11.6 8.6,11 9.2,11V9.5C9.2,8.1 10.6,7 12,7M12,8.2C11.2,8.2 10.5,8.7 10.5,9.5V11H13.5V9.5C13.5,8.7 12.8,8.2 12,8.2Z\";\nexport var mdiShieldLockOpen = \"M12 1L3 5V11C3 16.5 6.8 21.7 12 23C17.2 21.7 21 16.5 21 11V5L12 1M16 15.8C16 16.4 15.4 17 14.7 17H9.2C8.6 17 8 16.4 8 15.7V12.2C8 11.6 8.6 11 9.2 11V8.5C9.2 7.1 10.6 6 12 6S14.8 7.1 14.8 8.5V9H13.5V8.5C13.5 7.7 12.8 7.2 12 7.2S10.5 7.7 10.5 8.5V11H14.8C15.4 11 16 11.6 16 12.3V15.8Z\";\nexport var mdiShieldLockOpenOutline = \"M21 11C21 16.5 17.2 21.7 12 23C6.8 21.7 3 16.5 3 11V5L12 1L21 5V11M12 21C15.8 20 19 15.5 19 11.2V6.3L12 3.2L5 6.3V11.2C5 15.5 8.2 20 12 21M14.8 11H10.5V8.5C10.5 7.7 11.2 7.2 12 7.2S13.5 7.7 13.5 8.5V9H14.8V8.5C14.8 7.1 13.4 6 12 6S9.2 7.1 9.2 8.5V11C8.6 11 8 11.6 8 12.2V15.7C8 16.4 8.6 17 9.2 17H14.7C15.4 17 16 16.4 16 15.8V12.3C16 11.6 15.4 11 14.8 11Z\";\nexport var mdiShieldLockOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21M14.8,11V9.5C14.8,8.1 13.4,7 12,7C10.6,7 9.2,8.1 9.2,9.5V11C8.6,11 8,11.6 8,12.2V15.7C8,16.4 8.6,17 9.2,17H14.7C15.4,17 16,16.4 16,15.8V12.3C16,11.6 15.4,11 14.8,11M13.5,11H10.5V9.5C10.5,8.7 11.2,8.2 12,8.2C12.8,8.2 13.5,8.7 13.5,9.5V11Z\";\nexport var mdiShieldMoon = \"M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1M15.97 14.41C14.13 16.58 10.76 16.5 9 14.34C6.82 11.62 8.36 7.62 11.7 7C12.04 6.95 12.33 7.28 12.21 7.61C11.75 8.84 11.82 10.25 12.53 11.47C13.24 12.69 14.42 13.46 15.71 13.67C16.05 13.72 16.2 14.14 15.97 14.41Z\";\nexport var mdiShieldMoonOutline = \"M21 11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1L21 5V11M12 21C15.75 20 19 15.54 19 11.22V6.3L12 3.18L5 6.3V11.22C5 15.54 8.25 20 12 21M9 14.33C10.76 16.5 14.13 16.57 15.97 14.4C16.2 14.13 16.05 13.72 15.71 13.66C14.42 13.45 13.23 12.68 12.53 11.46C11.82 10.24 11.75 8.83 12.21 7.6C12.33 7.27 12.05 6.94 11.7 7C8.36 7.62 6.81 11.61 9 14.33\";\nexport var mdiShieldOff = \"M1,4.27L2.28,3L20.5,21.22L19.23,22.5L17,20.25C15.57,21.57 13.87,22.54 12,23C6.84,21.74 3,16.55 3,11V6.27L1,4.27M12,1L21,5V11C21,13.28 20.35,15.5 19.23,17.41L5.65,3.82L12,1Z\";\nexport var mdiShieldOffOutline = \"M1,4.27L3,6.27V11C3,16.55 6.84,21.74 12,23C13.87,22.54 15.57,21.56 16.97,20.24L19.23,22.5L20.5,21.22L2.28,3L1,4.27M12,21C8.25,20 5,15.54 5,11.22V8.27L15.59,18.86C14.53,19.89 13.3,20.65 12,21M21,5V11C21,13.28 20.35,15.5 19.23,17.4L17.77,15.95C18.54,14.5 19,12.84 19,11.22V6.3L12,3.18L7.16,5.34L5.65,3.82L12,1L21,5Z\";\nexport var mdiShieldOutline = \"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21Z\";\nexport var mdiShieldPlus = \"M19,20V22.97H17V20H14V18H17V15H19V18H22V20H19M12,1L21,5V11C21,11.9 20.9,12.78 20.71,13.65C19.9,13.23 19,13 18,13A6,6 0 0,0 12,19C12,20.36 12.45,21.62 13.22,22.62L12,23C6.84,21.74 3,16.55 3,11V5L12,1Z\";\nexport var mdiShieldPlusOutline = \"M19,20V22.97H17V20H14V18H17V15H19V18H22V20H19M21,11C21,11.9 20.9,12.78 20.71,13.65C20.13,13.35 19.5,13.15 18.81,13.05C18.93,12.45 19,11.83 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21L12.31,20.91C12.5,21.53 12.83,22.11 13.22,22.62L12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11Z\";\nexport var mdiShieldRefresh = \"M18 12C19 12 20 12.2 20.9 12.7C21 12.1 21 11.6 21 11V5L12 1L3 5V11C3 16.5 6.8 21.7 12 23C12.4 22.9 12.7 22.8 13 22.7C12 21.5 11.5 20 11.5 18.5C11.5 14.9 14.4 12 18 12M18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5Z\";\nexport var mdiShieldRefreshOutline = \"M12 21C8.2 20 5 15.5 5 11.2V6.3L12 3.2L19 6.3V12.1C19.7 12.2 20.3 12.4 20.9 12.7C21 12.1 21 11.6 21 11V5L12 1L3 5V11C3 16.5 6.8 21.7 12 23C12.4 22.9 12.7 22.8 13 22.7C12.6 22.2 12.2 21.6 12 21M18 14.5C19.1 14.5 20.1 14.9 20.8 15.7L22 14.5V18.5H18L19.8 16.7C19.3 16.3 18.7 16 18 16C16.6 16 15.5 17.1 15.5 18.5S16.6 21 18 21C18.8 21 19.5 20.6 20 20H21.7C21.1 21.5 19.7 22.5 18 22.5C15.8 22.5 14 20.7 14 18.5S15.8 14.5 18 14.5Z\";\nexport var mdiShieldRemove = \"M19.43,19L21.5,21.11L20.12,22.5L18.03,20.41L15.91,22.53L14.5,21.11L16.61,19L14.5,16.86L15.88,15.47L18,17.59L20.12,15.47L21.55,16.9L19.43,19M12,1L21,5V11C21,11.9 20.9,12.78 20.71,13.65C19.9,13.23 19,13 18,13A6,6 0 0,0 12,19C12,20.36 12.45,21.62 13.22,22.62L12,23C6.84,21.74 3,16.55 3,11V5L12,1Z\";\nexport var mdiShieldRemoveOutline = \"M19.43,19L21.5,21.11L20.12,22.5L18.03,20.41L15.91,22.53L14.5,21.11L16.61,19L14.5,16.86L15.88,15.47L18,17.59L20.12,15.47L21.55,16.9L19.43,19M21,11C21,11.9 20.9,12.78 20.71,13.65C20.13,13.35 19.5,13.15 18.81,13.05C18.93,12.45 19,11.83 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21L12.31,20.91C12.5,21.53 12.83,22.11 13.22,22.62L12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11Z\";\nexport var mdiShieldSearch = \"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M17.86,19.31C16.23,21.22 14.28,22.45 12,23C9.44,22.39 7.3,20.93 5.58,18.63C3.86,16.34 3,13.8 3,11V5L12,1L21,5V11C21,13.39 20.36,15.61 19.08,17.67L16.17,14.76C16.69,13.97 17,13 17,12A5,5 0 0,0 12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17C13,17 13.97,16.69 14.76,16.17L17.86,19.31Z\";\nexport var mdiShieldStar = \"M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1M15.08 16L12 14.15L8.93 16L9.74 12.5L7.03 10.16L10.61 9.85L12 6.55L13.39 9.84L16.97 10.15L14.26 12.5L15.08 16Z\";\nexport var mdiShieldStarOutline = \"M21 11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1L21 5V11M12 21C15.75 20 19 15.54 19 11.22V6.3L12 3.18L5 6.3V11.22C5 15.54 8.25 20 12 21M15.05 16L11.97 14.15L8.9 16L9.71 12.5L7 10.16L10.58 9.85L11.97 6.55L13.37 9.84L16.95 10.15L14.23 12.5L15.05 16\";\nexport var mdiShieldSun = \"M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1M12 8.89C13.6 8.89 14.89 10.18 14.89 11.78S13.6 14.67 12 14.67 9.11 13.37 9.11 11.78 10.41 8.89 12 8.89M12 6L13.38 8C12.96 7.82 12.5 7.73 12 7.73S11.05 7.82 10.62 8L12 6M7 8.89L9.4 8.69C9.06 9 8.74 9.34 8.5 9.76C8.25 10.18 8.1 10.62 8 11.08L7 8.89M7 14.67L8.03 12.5C8.11 12.93 8.27 13.38 8.5 13.8C8.75 14.23 9.06 14.59 9.4 14.88L7 14.67M17 8.89L16 11.08C15.9 10.62 15.74 10.18 15.5 9.76C15.26 9.34 14.95 9 14.6 8.68L17 8.89M17 14.67L14.6 14.87C14.94 14.58 15.25 14.22 15.5 13.8C15.74 13.38 15.89 12.93 15.97 12.5L17 14.67M12 17.55L10.61 15.57C11.04 15.72 11.5 15.82 12 15.82C12.5 15.82 12.95 15.72 13.37 15.57L12 17.55Z\";\nexport var mdiShieldSunOutline = \"M21 11C21 16.55 17.16 21.74 12 23C6.84 21.74 3 16.55 3 11V5L12 1L21 5V11M12 21C15.75 20 19 15.54 19 11.22V6.3L12 3.18L5 6.3V11.22C5 15.54 8.25 20 12 21M12 8.89C13.6 8.89 14.89 10.18 14.89 11.78S13.6 14.67 12 14.67 9.11 13.37 9.11 11.78 10.41 8.89 12 8.89M12 6L13.38 8C12.96 7.82 12.5 7.73 12 7.73S11.05 7.82 10.62 8L12 6M7 8.89L9.4 8.69C9.06 9 8.74 9.34 8.5 9.76C8.25 10.18 8.1 10.62 8 11.08L7 8.89M7 14.67L8.03 12.5C8.11 12.93 8.27 13.38 8.5 13.8C8.75 14.23 9.06 14.59 9.4 14.88L7 14.67M17 8.89L16 11.08C15.9 10.62 15.74 10.18 15.5 9.76C15.26 9.34 14.95 9 14.6 8.68L17 8.89M17 14.67L14.6 14.87C14.94 14.58 15.25 14.22 15.5 13.8C15.74 13.38 15.89 12.93 15.97 12.5L17 14.67M12 17.55L10.61 15.57C11.04 15.72 11.5 15.82 12 15.82C12.5 15.82 12.95 15.72 13.37 15.57L12 17.55Z\";\nexport var mdiShieldSword = \"M12 1L3 5V11C3 16.5 6.8 21.7 12 23C17.2 21.7 21 16.5 21 11V5L12 1M15 15H13V18H11V15H9V13H11L10 7.1L12 5.5L14 7.1L13 13H15V15Z\";\nexport var mdiShieldSwordOutline = \"M12 1L21 5V11C21 16.5 17.2 21.7 12 23C6.8 21.7 3 16.5 3 11V5L12 1M12 3.2L5 6.3V11.2C5 15.5 8.2 20 12 21C15.8 20 19 15.5 19 11.2V6.3L12 3.2M12 5.5L14 7.1L13 13H15V15H13V18H11V15H9V13H11L10 7.1L12 5.5Z\";\nexport var mdiShieldSync = \"M18 12A6.41 6.41 0 0 1 20.87 12.67A11.63 11.63 0 0 0 21 11V5L12 1L3 5V11C3 16.55 6.84 21.74 12 23C12.35 22.91 12.7 22.8 13 22.68A6.42 6.42 0 0 1 11.5 18.5A6.5 6.5 0 0 1 18 12M18 14.5V13L15.75 15.25L18 17.5V16A2.5 2.5 0 0 1 20.24 19.62L21.33 20.71A4 4 0 0 0 18 14.5M18 21A2.5 2.5 0 0 1 15.76 17.38L14.67 16.29A4 4 0 0 0 18 22.5V24L20.25 21.75L18 19.5Z\";\nexport var mdiShieldSyncOutline = \"M12 21C8.25 20 5 15.54 5 11.22V6.3L12 3.18L19 6.3V12.07A6.45 6.45 0 0 1 20.91 12.67A11.63 11.63 0 0 0 21 11V5L12 1L3 5V11C3 16.55 6.84 21.74 12 23C12.35 22.91 12.7 22.8 13 22.68A6.3 6.3 0 0 1 12 21M18 14.5V13L15.75 15.25L18 17.5V16A2.5 2.5 0 0 1 20.24 19.62L21.33 20.71A4 4 0 0 0 18 14.5M18 21A2.5 2.5 0 0 1 15.76 17.38L14.67 16.29A4 4 0 0 0 18 22.5V24L20.25 21.75L18 19.5Z\";\nexport var mdiShimmer = \"M10.6 9.6L9 15L7.4 9.6L2 8L7.4 6.4L9 1L10.6 6.4L16 8L10.6 9.6M17 14.2L21 12L18.8 16L21 20L17 17.8L13 20L15.2 16L13 12L17 14.2M10 16L8.3 19L10 22L7 20.3L4 22L5.7 19L4 16L7 17.7L10 16\";\nexport var mdiShipWheel = \"M2,11L4.05,11.1C4.3,8.83 5.5,6.85 7.25,5.56L6.13,3.84C5.86,3.36 6,2.75 6.5,2.47C7,2.2 7.59,2.36 7.87,2.84L8.8,4.66C9.78,4.24 10.86,4 12,4C13.14,4 14.22,4.24 15.2,4.66L16.13,2.84C16.41,2.36 17,2.2 17.5,2.47C18,2.75 18.14,3.36 17.87,3.84L16.75,5.56C18.5,6.85 19.7,8.83 19.95,11.1L22,11A1,1 0 0,1 23,12A1,1 0 0,1 22,13L19.95,12.9C19.7,15.17 18.5,17.15 16.75,18.44L17.87,20.16C18.14,20.64 18,21.25 17.5,21.53C17,21.8 16.41,21.64 16.13,21.16L15.2,19.34C14.22,19.76 13.14,20 12,20C10.86,20 9.78,19.76 8.8,19.34L7.87,21.16C7.59,21.64 7,21.8 6.5,21.53C6,21.25 5.86,20.64 6.13,20.16L7.25,18.44C5.5,17.15 4.3,15.17 4.05,12.9L2,13A1,1 0 0,1 1,12A1,1 0 0,1 2,11M9.07,11.35C9.2,10.74 9.53,10.2 10,9.79L8.34,7.25C7.11,8.19 6.27,9.6 6.05,11.2L9.07,11.35M12,9C12.32,9 12.62,9.05 12.9,9.14L14.28,6.45C13.58,6.16 12.81,6 12,6C11.19,6 10.42,6.16 9.72,6.45L11.1,9.14C11.38,9.05 11.68,9 12,9M14.93,11.35L17.95,11.2C17.73,9.6 16.89,8.19 15.66,7.25L14,9.79C14.47,10.2 14.8,10.74 14.93,11.35M14.93,12.65C14.8,13.26 14.47,13.8 14,14.21L15.66,16.75C16.89,15.81 17.73,14.4 17.95,12.8L14.93,12.65M12,15C11.68,15 11.38,14.95 11.09,14.86L9.72,17.55C10.42,17.84 11.19,18 12,18C12.81,18 13.58,17.84 14.28,17.55L12.91,14.86C12.62,14.95 12.32,15 12,15M9.07,12.65L6.05,12.8C6.27,14.4 7.11,15.81 8.34,16.75L10,14.21C9.53,13.8 9.2,13.26 9.07,12.65Z\";\nexport var mdiShippingPallet = \"M3 20H5V18H11V20H13V18H19V20H21V15H19V16H17V15H15V16H13V15H11V16H9V15H7V16H5V15H3M5 13H19V4H5Z\";\nexport var mdiShoeBallet = \"M12.78 11.97C12.27 8.54 10.86 2 7.53 2S2.8 8.54 2.28 11.97C2.07 13.42 2 14.89 2.16 16.35C2.5 19.39 3.55 20.84 4.27 21.5C4.64 21.83 5.11 22 5.6 22H9.47C9.96 22 10.43 21.83 10.8 21.5C11.5 20.84 12.55 19.39 12.91 16.35C13.08 14.89 13 13.42 12.78 11.97M7.53 4C7.89 3.87 8.59 4.73 9.27 6.31L4.58 10.33C5.41 6.26 6.94 3.79 7.53 4M9.75 13H5.31C5.1 13 4.92 12.92 4.76 12.81L10 8.33C10.29 9.35 10.56 10.5 10.75 11.83C10.84 12.44 10.37 13 9.75 13M21.78 11.97C21.27 8.54 19.86 2 16.53 2C15.04 2 13.94 3.32 13.13 5.08C13.5 6.04 13.84 7.14 14.13 8.37L19.31 12.81C19.15 12.92 18.97 13 18.75 13H14.92C15.04 14.27 15.03 15.45 14.89 16.59C14.62 18.87 14 20.45 13.32 21.53C13.68 21.84 14.13 22 14.6 22H18.47C18.96 22 19.43 21.83 19.8 21.5C20.5 20.84 21.55 19.39 21.91 16.35C22.08 14.89 22 13.42 21.78 11.97M14.8 6.31C15.5 4.73 16.18 3.87 16.53 4C17.13 3.79 18.65 6.26 19.5 10.33L14.8 6.31Z\";\nexport var mdiShoeCleat = \"M21 8C20.76 8 20.53 8 20.3 8L20.25 7.97C18.14 7.84 16.38 7.17 15.53 6.23L14 7C13.95 7.1 13.89 7.19 13.84 7.28C14.55 7.89 15 8.65 15 9.5C15 9.83 14.91 10.14 14.79 10.45L12.92 8.58C12.7 8.83 12.47 9.07 12.22 9.29L14.25 11.32C14.04 11.57 13.8 11.79 13.5 12L11.43 9.91C11.14 10.11 10.85 10.28 10.55 10.45L12.58 12.5C12.25 12.63 11.89 12.74 11.5 12.82L9.59 10.91C9.25 11.05 8.91 11.18 8.56 11.29L10.26 13C10.17 13 10.09 13 10 13C8.5 13 7.2 12.54 6.28 11.82C5.46 11.95 4.68 12 4 12C2 12 2 15 2 15V15C2 16.11 2.89 17 4 17H4V18C4 18.55 4.45 19 5 19S6 18.55 6 18V17H7V18C7 18.55 7.45 19 8 19S9 18.55 9 18V17H10V18C10 18.55 10.45 19 11 19S12 18.55 12 18V17H15V18C15 18.55 15.45 19 16 19S17 18.55 17 18V17H18V18C18 18.55 18.45 19 19 19S20 18.55 20 18V17H21C21 17 22 17 22 12.5C22 9 21 8 21 8Z\";\nexport var mdiShoeFormal = \"M21.5,9V8H20.5L19.5,9H15L14,8H13L7,12H4A2,2 0 0,0 2,14V16H10L13,15H15V16H21.5V14C21.5,14 22,13 22,11.5C22,10 21.5,9 21.5,9Z\";\nexport var mdiShoeHeel = \"M3,18H11.7L17,14H18V18H20V14C20,14 21,12 21,10C21,8 20.5,6 20.5,6H18.5L18,7L10,14H8L3,16V18Z\";\nexport var mdiShoePrint = \"M10.74,11.72C11.21,12.95 11.16,14.23 9.75,14.74C6.85,15.81 6.2,13 6.16,12.86L10.74,11.72M5.71,10.91L10.03,9.84C9.84,8.79 10.13,7.74 10.13,6.5C10.13,4.82 8.8,1.53 6.68,2.06C4.26,2.66 3.91,5.35 4,6.65C4.12,7.95 5.64,10.73 5.71,10.91M17.85,19.85C17.82,20 17.16,22.8 14.26,21.74C12.86,21.22 12.8,19.94 13.27,18.71L17.85,19.85M20,13.65C20.1,12.35 19.76,9.65 17.33,9.05C15.22,8.5 13.89,11.81 13.89,13.5C13.89,14.73 14.17,15.78 14,16.83L18.3,17.9C18.38,17.72 19.89,14.94 20,13.65Z\";\nexport var mdiShoeSneaker = \"M2 15C2 15 2 12 4 12C4.68 12 5.46 11.95 6.28 11.82C7.2 12.54 8.5 13 10 13H10.25L8.56 11.29C8.91 11.18 9.25 11.05 9.59 10.91L11.5 12.82C11.89 12.74 12.25 12.63 12.58 12.5L10.55 10.45C10.85 10.28 11.14 10.11 11.43 9.91L13.5 12C13.8 11.79 14.04 11.56 14.25 11.32L12.22 9.29C12.46 9.07 12.7 8.83 12.92 8.58L14.79 10.45C14.91 10.14 15 9.83 15 9.5C15 8.65 14.55 7.89 13.84 7.28C13.89 7.19 13.95 7.1 14 7L15.53 6.23C16.38 7.17 18.14 7.84 20.25 7.97L20.3 8H21C21 8 22 9 22 12.5C22 13.07 22 13.57 21.96 14H19C17.9 14 16.58 14.26 15.3 14.5C14.12 14.76 12.9 15 12 15H2M21 17C21 17 21.58 17 21.86 15H19C17 15 14 16 12 16H2.28C2.62 16.6 3.26 17 4 17H21Z\";\nexport var mdiShopping = \"M12,13A5,5 0 0,1 7,8H9A3,3 0 0,0 12,11A3,3 0 0,0 15,8H17A5,5 0 0,1 12,13M12,3A3,3 0 0,1 15,6H9A3,3 0 0,1 12,3M19,6H17A5,5 0 0,0 12,1A5,5 0 0,0 7,6H5C3.89,6 3,6.89 3,8V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V8C21,6.89 20.1,6 19,6Z\";\nexport var mdiShoppingMusic = \"M12,3A3,3 0 0,0 9,6H15A3,3 0 0,0 12,3M19,6A2,2 0 0,1 21,8V20A2,2 0 0,1 19,22H5C3.89,22 3,21.1 3,20V8C3,6.89 3.89,6 5,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6H19M9,19L16.5,14L9,10V19Z\";\nexport var mdiShoppingOutline = \"M19 6H17C17 3.2 14.8 1 12 1S7 3.2 7 6H5C3.9 6 3 6.9 3 8V20C3 21.1 3.9 22 5 22H19C20.1 22 21 21.1 21 20V8C21 6.9 20.1 6 19 6M12 3C13.7 3 15 4.3 15 6H9C9 4.3 10.3 3 12 3M19 20H5V8H19V20M12 12C10.3 12 9 10.7 9 9H7C7 11.8 9.2 14 12 14S17 11.8 17 9H15C15 10.7 13.7 12 12 12Z\";\nexport var mdiShoppingSearch = \"M19 6H17A5 5 0 0 0 7 6H5A2 2 0 0 0 3 8V20A2 2 0 0 0 5 22H12.05A6.5 6.5 0 0 1 9 16.5A6.4 6.4 0 0 1 10.25 12.68A5 5 0 0 1 7 8H9A3 3 0 0 0 12 11H12.06A6.22 6.22 0 0 1 14.06 10.16A3 3 0 0 0 15 8H17A4.88 4.88 0 0 1 16.54 10.09A6.5 6.5 0 0 1 21 13.09V8A2 2 0 0 0 19 6M9 6A3 3 0 0 1 15 6M19.31 18.9A4.5 4.5 0 1 0 17.88 20.32L21 23.39L22.39 22M15.5 19A2.5 2.5 0 1 1 18 16.5A2.5 2.5 0 0 1 15.5 19Z\";\nexport var mdiShoppingSearchOutline = \"M19.31 18.9C20.64 16.8 20 14 17.91 12.69S13.03 12 11.7 14.1 11 19 13.1 20.3C14.56 21.22 16.42 21.23 17.88 20.32L21 23.39L22.39 22M15.5 19C14.12 19 13 17.88 13 16.5S14.12 14 15.5 14 18 15.12 18 16.5 16.88 19 15.5 19M10.03 20H5V8H19V11.03C19.81 11.55 20.5 12.24 21 13.05V8C21 6.9 20.1 6 19 6H17C17 3.2 14.8 1 12 1S7 3.2 7 6H5C3.9 6 3 6.9 3 8V20C3 21.1 3.9 22 5 22H12.05C11.24 21.5 10.55 20.81 10.03 20M12 3C13.7 3 15 4.3 15 6H9C9 4.3 10.3 3 12 3M15 9H17C17 9.4 16.95 9.78 16.86 10.15C16.42 10.05 15.97 10 15.5 10C15.27 10 15.04 10 14.82 10.04C14.93 9.71 15 9.37 15 9M9.76 13.46C8.12 12.65 7 11 7 9H9C9 10.34 9.82 11.42 11 11.82C10.5 12.3 10.08 12.85 9.76 13.46Z\";\nexport var mdiShore = \"M20 12H22V14H20C18.6 14 17.3 13.6 16 13C13.5 14.3 10.5 14.3 8 13C6.7 13.6 5.4 14 4 14H2V12H4C5.4 12 6.8 11.5 8 10.7C10.4 12.4 13.6 12.4 16 10.7C17.2 11.5 18.6 12 20 12M20 6H22V8H20C18.6 8 17.3 7.7 16 7C13.5 8.3 10.5 8.3 8 7C6.7 7.7 5.4 8 4 8H2V6H4C5.4 6 6.8 5.5 8 4.7C10.4 6.4 13.6 6.4 16 4.7C17.2 5.5 18.6 6 20 6M22 20H2V18H22\";\nexport var mdiShovel = \"M15.1,1.81L12.27,4.64C11.5,5.42 11.5,6.69 12.27,7.47L13.68,8.88L9.13,13.43L6.31,10.6L4.89,12C-0.06,17 3.5,20.5 3.5,20.5C3.5,20.5 7,24 12,19.09L13.41,17.68L10.61,14.88L15.15,10.34L16.54,11.73C17.32,12.5 18.59,12.5 19.37,11.73L22.2,8.9L15.1,1.81M17.93,10.28L16.55,8.9L15.11,7.46L13.71,6.06L15.12,4.65L19.35,8.88L17.93,10.28Z\";\nexport var mdiShovelOff = \"M15.1,1.81L12.27,4.65C11.5,5.43 11.5,6.69 12.27,7.47L13.68,8.89L13,9.62L14.44,11.06L15.17,10.33L16.56,11.72C17.34,12.5 18.61,12.5 19.39,11.72L22.22,8.88L15.1,1.81M17.93,10.28L13.7,6.06L15.11,4.65L19.34,8.88L17.93,10.28M20.7,20.24L19.29,21.65L11.5,13.88L10.5,14.88L13.33,17.69L12,19.09C7,24 3.5,20.5 3.5,20.5C3.5,20.5 -0.06,17 4.89,12L6.31,10.6L9.13,13.43L10.13,12.43L2.35,4.68L3.77,3.26L20.7,20.24Z\";\nexport var mdiShower = \"M21,14V15C21,16.91 19.93,18.57 18.35,19.41L19,22H17L16.5,20C16.33,20 16.17,20 16,20H8C7.83,20 7.67,20 7.5,20L7,22H5L5.65,19.41C4.07,18.57 3,16.91 3,15V14H2V12H20V5A1,1 0 0,0 19,4C18.5,4 18.12,4.34 18,4.79C18.63,5.33 19,6.13 19,7H13A3,3 0 0,1 16,4C16.06,4 16.11,4 16.17,4C16.58,2.84 17.69,2 19,2A3,3 0 0,1 22,5V14H21V14M19,14H5V15A3,3 0 0,0 8,18H16A3,3 0 0,0 19,15V14Z\";\nexport var mdiShowerHead = \"M20,20A1,1 0 0,1 21,21A1,1 0 0,1 20,22A1,1 0 0,1 19,21A1,1 0 0,1 20,20M16,20A1,1 0 0,1 17,21A1,1 0 0,1 16,22A1,1 0 0,1 15,21A1,1 0 0,1 16,20M12,20A1,1 0 0,1 13,21A1,1 0 0,1 12,22A1,1 0 0,1 11,21A1,1 0 0,1 12,20M8,20A1,1 0 0,1 9,21A1,1 0 0,1 8,22A1,1 0 0,1 7,21A1,1 0 0,1 8,20M4,20A1,1 0 0,1 5,21A1,1 0 0,1 4,22A1,1 0 0,1 3,21A1,1 0 0,1 4,20M6,17A1,1 0 0,1 7,18A1,1 0 0,1 6,19H6A1,1 0 0,1 5,18A1,1 0 0,1 6,17H6M10,17A1,1 0 0,1 11,18A1,1 0 0,1 10,19A1,1 0 0,1 9,18A1,1 0 0,1 10,17M14,17A1,1 0 0,1 15,18A1,1 0 0,1 14,19A1,1 0 0,1 13,18A1,1 0 0,1 14,17M18,17A1,1 0 0,1 19,18A1,1 0 0,1 18,19A1,1 0 0,1 17,18A1,1 0 0,1 18,17M8,14A1,1 0 0,1 9,15A1,1 0 0,1 8,16A1,1 0 0,1 7,15A1,1 0 0,1 8,14M12,14A1,1 0 0,1 13,15A1,1 0 0,1 12,16A1,1 0 0,1 11,15A1,1 0 0,1 12,14M16,14A1,1 0 0,1 17,15A1,1 0 0,1 16,16A1,1 0 0,1 15,15A1,1 0 0,1 16,14M19,12H5V10H19V12M17.92,9H6.08C6.5,6.5 8.5,4.5 11,4.08V2H13V4.08C15.5,4.5 17.5,6.5 17.92,9Z\";\nexport var mdiShredder = \"M6,3V7H8V5H16V7H18V3H6M5,8A3,3 0 0,0 2,11V17H5V14H19V17H22V11A3,3 0 0,0 19,8H5M18,10A1,1 0 0,1 19,11A1,1 0 0,1 18,12A1,1 0 0,1 17,11A1,1 0 0,1 18,10M7,16V21H9V16H7M11,16V20H13V16H11M15,16V21H17V16H15Z\";\nexport var mdiShuffle = \"M14.83,13.41L13.42,14.82L16.55,17.95L14.5,20H20V14.5L17.96,16.54L14.83,13.41M14.5,4L16.54,6.04L4,18.59L5.41,20L17.96,7.46L20,9.5V4M10.59,9.17L5.41,4L4,5.41L9.17,10.58L10.59,9.17Z\";\nexport var mdiShuffleDisabled = \"M16,4.5V7H5V9H16V11.5L19.5,8M16,12.5V15H5V17H16V19.5L19.5,16\";\nexport var mdiShuffleVariant = \"M17,3L22.25,7.5L17,12L22.25,16.5L17,21V18H14.26L11.44,15.18L13.56,13.06L15.5,15H17V12L17,9H15.5L6.5,18H2V15H5.26L14.26,6H17V3M2,6H6.5L9.32,8.82L7.2,10.94L5.26,9H2V6Z\";\nexport var mdiShuriken = \"M14.5 9.5L12 2L9.5 9.5L2 12L9.5 14.5L12 22L14.5 14.5L22 12L14.5 9.5M12 13.7C11.1 13.7 10.3 13 10.3 12C10.3 11.1 11 10.3 12 10.3C12.9 10.3 13.7 11 13.7 12C13.7 12.9 12.9 13.7 12 13.7Z\";\nexport var mdiSickle = \"M19.3 7.2C17.5 4.7 14.9 3 12 2C26.2 10.5 15.4 22.9 8.5 15.5L5.9 16L2.5 19.4C1.9 20 1.9 21 2.5 21.5C3.1 22.1 4.1 22.1 4.6 21.5L7.8 18.3C15.3 24.3 25 15 19.3 7.2Z\";\nexport var mdiSigma = \"M18,6H8.83L14.83,12L8.83,18H18V20H6V18L12,12L6,6V4H18V6Z\";\nexport var mdiSigmaLower = \"M19,12C19,16.42 15.64,20 11.5,20C7.36,20 4,16.42 4,12C4,7.58 7.36,4 11.5,4H20V6H16.46C18,7.47 19,9.61 19,12M11.5,6C8.46,6 6,8.69 6,12C6,15.31 8.46,18 11.5,18C14.54,18 17,15.31 17,12C17,8.69 14.54,6 11.5,6Z\";\nexport var mdiSignCaution = \"M2,3H22V13H18V21H16V13H8V21H6V13H2V3M18.97,11L20,9.97V7.15L16.15,11H18.97M13.32,11L19.32,5H16.5L10.5,11H13.32M7.66,11L13.66,5H10.83L4.83,11H7.66M5.18,5L4,6.18V9L8,5H5.18Z\";\nexport var mdiSignDirection = \"M11,12H3.5L6,9.5L3.5,7H11V3L12,2L13,3V7H18L20.5,9.5L18,12H13V20A2,2 0 0,1 15,22H9A2,2 0 0,1 11,20V12Z\";\nexport var mdiSignDirectionMinus = \"M20.5 9.5L18 12H13V22H9A2 2 0 0 1 11 20V12H3.5L6 9.5L3.5 7H11V3L12 2L13 3V7H18M23 18H15V20H23Z\";\nexport var mdiSignDirectionPlus = \"M13 20H13.09A5.5 5.5 0 0 0 13.81 22H9A2 2 0 0 1 11 20V12H3.5L6 9.5L3.5 7H11V3L12 2L13 3V7H18L20.5 9.5L18 12H13M18 15V18H15V20H18V23H20V20H23V18H20V15Z\";\nexport var mdiSignDirectionRemove = \"M13 20H13.09A5.5 5.5 0 0 0 13.81 22H9A2 2 0 0 1 11 20V12H3.5L6 9.5L3.5 7H11V3L12 2L13 3V7H18L20.5 9.5L18 12H13M21.12 15.46L19 17.59L16.88 15.46L15.46 16.88L17.59 19L15.46 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiSignLanguage = \"M7.5 4C7.9 3.6 8.5 3.6 8.9 4L11.8 7C11 7.4 10.6 7.6 10.2 8.2L7.5 5.5C7.1 5.1 7.1 4.4 7.5 4M6.3 7.2C6.7 6.8 7.3 6.8 7.7 7.2L9.6 9.2C9.4 9.8 9.3 10.5 9.4 11H8.6L6.3 8.6C5.9 8.2 5.9 7.6 6.3 7.2M19 21.5C19 22.9 17.9 24 16.5 24H5.5C5 24 4.5 23.5 4.5 23S5 22 5.5 22H10V21H4C3.5 21 3 20.5 3 20S3.5 19 4 19H10V18H3C2.5 18 2 17.5 2 17S2.5 16 3 16H10V15H4.5C4 15 3.5 14.5 3.5 14S4 13 4.5 13H12.5L11.6 11.1C11.2 10.4 11.5 9.5 12.3 9.1L12.5 9L18.2 14.5C18.7 15 19 15.6 19 16.3V21.5M22 11.3C22 12 21.7 12.6 21.2 13.1L20.3 13.9C20.1 13.6 19.9 13.3 19.6 13L19 12.4L15.4 9L12.7 6.6L8.9 2.6C8.5 2.2 8.5 1.6 8.9 1.2C9.3 .8 9.9 .8 10.3 1.2L15.1 6.3L15.8 5.6L12 1.6C11.6 1.2 11.6 .6 12 .2S13-.2 13.4 .2L18.9 6L19.6 4C20.1 3.4 21 3 21.7 3.2L22 3.3V11.3Z\";\nexport var mdiSignLanguageOutline = \"M7.5 4C7.9 3.6 8.5 3.6 8.9 4L11.8 7C11 7.4 10.6 7.6 10.2 8.2L7.5 5.5C7.1 5.1 7.1 4.4 7.5 4M6.3 7.2C6.7 6.8 7.3 6.8 7.7 7.2L9.6 9.2C9.4 9.8 9.3 10.5 9.4 11H8.6L6.3 8.6C5.9 8.2 5.9 7.6 6.3 7.2M18.2 14.5L12.5 9L12.2 9.1C11.5 9.5 11.2 10.4 11.5 11.1L12.4 13H4.4C3.9 13 3.4 13.5 3.4 14S3.9 15 4.4 15H10V16H3C2.5 16 2 16.5 2 17S2.5 18 3 18H10V19H4C3.5 19 3 19.5 3 20S3.5 21 4 21H10V22H5.5C5 22 4.5 22.5 4.5 23S5 24 5.5 24H16.5C17.9 24 19 22.9 19 21.5V16.3C19 15.6 18.7 14.9 18.2 14.5M17 21C17 21.5 16.5 22 16 22H12V15H14V13.2L16.7 15.7C16.9 15.9 17 16.2 17 16.4V21M22 11.3C22 12 21.7 12.6 21.2 13.1L20.3 13.9C20.1 13.6 19.9 13.3 19.6 13L19 12.4L19.7 11.7C19.9 11.5 20 11.2 20 11V7.3L18.7 8.5L17.3 7L15.4 9L12.7 6.6L8.9 2.6C8.5 2.2 8.5 1.6 8.9 1.2C9.3 .8 9.9 .8 10.3 1.2L15.1 6.3L15.8 5.6L12 1.6C11.6 1.2 11.6 .6 12 .2S13-.2 13.4 .2L18.9 6L19.6 4C20.1 3.4 21 3 21.7 3.2L22 3.3V11.3Z\";\nexport var mdiSignPole = \"M11 3L12 2L13 3V20C14.11 20 15 20.9 15 22H9C9 20.9 9.9 20 11 20V3Z\";\nexport var mdiSignRealEstate = \"M18 8H8C6.9 8 6 8.9 6 10V16C6 17.11 6.9 18 8 18H18C19.11 18 20 17.11 20 16V10C20 8.9 19.11 8 18 8M14 16H8V14H14V16M18 12H8V10H18V12M22 6H4V22H2V2H4V4H22V6Z\";\nexport var mdiSignText = \"M11,3L12,2L13,3V5H20A1,1 0 0,1 21,6V16A1,1 0 0,1 20,17H13V20A2,2 0 0,1 15,22H9A2,2 0 0,1 11,20V17H4A1,1 0 0,1 3,16V6A1,1 0 0,1 4,5H11V3M6,8V10H18V8H6M6,12V14H13V12H6Z\";\nexport var mdiSignYield = \"M20.5 3H3.5C2.4 3 1.6 4.3 2.2 5.3L10.7 20.2C11 20.7 11.5 21 12 21S13 20.7 13.3 20.2L21.8 5.3C22.4 4.3 21.6 3 20.5 3M12 18.5L4.3 5H19.6L12 18.5M6.9 6.5H17.1L12 15.5L6.9 6.5Z\";\nexport var mdiSignal = \"M3,21H6V18H3M8,21H11V14H8M13,21H16V9H13M18,21H21V3H18V21Z\";\nexport var mdiSignal2g = \"M11,19.5H2V13.5A3,3 0 0,1 5,10.5H8V7.5H2V4.5H8A3,3 0 0,1 11,7.5V10.5A3,3 0 0,1 8,13.5H5V16.5H11M22,10.5H17.5V13.5H19V16.5H16V7.5H22V4.5H16A3,3 0 0,0 13,7.5V16.5A3,3 0 0,0 16,19.5H19A3,3 0 0,0 22,16.5\";\nexport var mdiSignal3g = \"M11,16.5V14.25C11,13 10,12 8.75,12C10,12 11,11 11,9.75V7.5A3,3 0 0,0 8,4.5H2V7.5H8V10.5H5V13.5H8V16.5H2V19.5H8A3,3 0 0,0 11,16.5M22,16.5V10.5H17.5V13.5H19V16.5H16V7.5H22V4.5H16A3,3 0 0,0 13,7.5V16.5A3,3 0 0,0 16,19.5H19A3,3 0 0,0 22,16.5Z\";\nexport var mdiSignal4g = \"M22,16.5V10.5H17.5V13.5H19V16.5H16V7.5H22V4.5H16A3,3 0 0,0 13,7.5V16.5A3,3 0 0,0 16,19.5H19A3,3 0 0,0 22,16.5M8,19.5H11V4.5H8V10.5H5V4.5H2V13.5H8V19.5Z\";\nexport var mdiSignal5g = \"M22,16.5V10.5H17.5V13.5H19V16.5H16V7.5H22V4.5H16A3,3 0 0,0 13,7.5V16.5A3,3 0 0,0 16,19.5H19A3,3 0 0,0 22,16.5M10,4.5H3V12L3,13.5H7V16.5H3V19.5H8.5A1.5,1.5 0 0,0 10,18V12A1.5,1.5 0 0,0 8.5,10.5H6V7.5H10V4.5Z\";\nexport var mdiSignalCellular1 = \"M19.5,5.5V18.5H17.5V5.5H19.5M12.5,10.5V18.5H10.5V10.5H12.5M21,4H16V20H21V4M14,9H9V20H14V9M7,14H2V20H7V14Z\";\nexport var mdiSignalCellular2 = \"M19.5,5.5V18.5H17.5V5.5H19.5M21,4H16V20H21V4M14,9H9V20H14V9M7,14H2V20H7V14Z\";\nexport var mdiSignalCellular3 = \"M21,4H16V20H21V4M14,9H9V20H14V9M7,14H2V20H7V14Z\";\nexport var mdiSignalCellularOutline = \"M19.5,5.5V18.5H17.5V5.5H19.5M12.5,10.5V18.5H10.5V10.5H12.5M5.5,15.5V18.5H3.5V15.5H5.5M21,4H16V20H21V4M14,9H9V20H14V9M7,14H2V20H7V14Z\";\nexport var mdiSignalDistanceVariant = \"M4,6V4A12,12 0 0,1 16,16H14A10,10 0 0,0 4,6M4,10V8A8,8 0 0,1 12,16H10A6,6 0 0,0 4,10M4,12A4,4 0 0,1 8,16H4V12M3,18H19V16L22,19L19,22V20H3V18Z\";\nexport var mdiSignalHspa = \"M10.5,10.5H13.5V4.5H16.5V19.5H13.5V13.5H10.5V19.5H7.5V4.5H10.5V10.5Z\";\nexport var mdiSignalHspaPlus = \"M19,8V11H22V14H19V17H16V14H13V11H16V8H19M5,10.5H8V4.5H11V19.5H8V13.5H5V19.5H2V4.5H5V10.5Z\";\nexport var mdiSignalOff = \"M18,3V16.18L21,19.18V3H18M4.28,5L3,6.27L10.73,14H8V21H11V14.27L13,16.27V21H16V19.27L19.73,23L21,21.72L4.28,5M13,9V11.18L16,14.18V9H13M3,18V21H6V18H3Z\";\nexport var mdiSignalVariant = \"M4,6V4H4.1C12.9,4 20,11.1 20,19.9V20H18V19.9C18,12.2 11.8,6 4,6M4,10V8A12,12 0 0,1 16,20H14A10,10 0 0,0 4,10M4,14V12A8,8 0 0,1 12,20H10A6,6 0 0,0 4,14M4,16A4,4 0 0,1 8,20H4V16Z\";\nexport var mdiSignature = \"M22,22H2V20H22V22M2.26,16.83L5.09,14L2.26,11.17L3.67,9.76L6.5,12.59L9.33,9.76L10.74,11.17L7.91,14L10.74,16.83L9.33,18.24L6.5,15.41L3.67,18.24L2.26,16.83Z\";\nexport var mdiSignatureFreehand = \"M22,22H2V20H22V22M6.2,17.3L5.5,18L4.1,16.6L2.7,18L2,17.3L3.4,15.9L2,14.5L2.7,13.8L4.1,15.2L5.5,13.8L6.2,14.5L4.8,15.9L6.2,17.3M16.22,14.43C16.22,13.85 15.5,13.2 14.06,12.46C12.23,11.54 11,10.79 10.36,10.24C9.71,9.68 9.39,9.06 9.39,8.37C9.39,6.59 10.3,5.12 12.12,3.95C13.94,2.78 15.43,2.19 16.57,2.19C17.31,2.19 17.85,2.32 18.18,2.58C18.5,2.83 18.68,3.27 18.68,3.9C18.68,4.18 18.56,4.42 18.31,4.63C18.07,4.83 17.87,4.93 17.74,4.93C17.63,4.93 17.43,4.83 17.13,4.64L16.55,4.38C16.08,4.38 15.14,4.71 13.71,5.38C12.29,6.04 11.58,6.79 11.58,7.63C11.58,8.14 11.82,8.6 12.32,9C12.82,9.42 13.71,9.93 15,10.53C16.03,11 16.86,11.5 17.5,12.07C18.1,12.61 18.41,13.25 18.41,14C18.41,15.34 17.47,16.41 15.58,17.17C13.7,17.94 11.9,18.32 10.19,18.32C8.75,18.32 8,17.83 8,16.86C8,16.5 8.19,16.27 8.5,16.11C8.83,15.95 9.16,15.87 9.5,15.87L10.25,16L10.97,16.13C11.95,16.13 13,15.97 14.13,15.64C15.26,15.32 15.96,14.91 16.22,14.43Z\";\nexport var mdiSignatureImage = \"M22,22H2V20H22V22M6.2,17.3L4.8,15.9L6.2,14.5L5.5,13.8L4.1,15.2L2.7,13.8L2,14.5L3.4,15.9L2,17.3L2.7,18L4.1,16.6L5.5,18L6.2,17.3M20,5H10A2,2 0 0,0 8,7V16A2,2 0 0,0 10,18H20A2,2 0 0,0 22,16V7A2,2 0 0,0 20,5M10,16L12.6,12.7L14.4,14.9L16.8,11.6L20,16H10Z\";\nexport var mdiSignatureText = \"M22,22H2V20H22V22M6.2,17.3L4.8,15.9L6.2,14.5L5.5,13.8L4.1,15.2L2.7,13.8L2,14.5L3.4,15.9L2,17.3L2.7,18L4.1,16.6L5.5,18L6.2,17.3M20.5,3L21.7,7.4L20.7,7.7C20.2,6.8 19.8,6 19.3,5.5C18.7,5 18.1,5 17.5,5H15V15.5C15,16 15,16.5 15.3,16.7C15.6,16.9 16.3,16.9 17,16.9V17.9H11V16.9C11.7,16.9 12.3,16.9 12.7,16.7C13,16.5 13,16 13,15.5V5H10.5C9.9,5 9.3,5 8.7,5.4C8.2,5.8 7.7,6.7 7.3,7.6L6.3,7.3L7.5,3H20.5Z\";\nexport var mdiSilo = \"M15 7.8C14.6 4.5 11.8 2 8.5 2C6.8 2 5.1 2.7 3.9 3.9S2 6.8 2 8.5V22H15V9.8L18 11.6V22H20V12.8L22 14V12L15 7.8M11 20H6V18H11V20M11 16H6V14H11V16M11 12H6V10H11V12M4.3 7C4.9 5.2 6.6 4 8.5 4S12.1 5.2 12.7 7H4.3Z\";\nexport var mdiSiloOutline = \"M8.5,2C11.85,2 14.6,4.53 14.96,7.78L22,12V14L20,12.8V22H18V11.6L15,9.8V22H13V9H4V22H2V8.5A6.5,6.5 0 0,1 8.5,2M8.5,4C6.54,4 4.87,5.25 4.26,7H12.74C12.13,5.25 10.46,4 8.5,4M6,11H11V13H6V11M6,15H11V17H6V15M6,19H11V21H6V19Z\";\nexport var mdiSilverware = \"M8.1,13.34L3.91,9.16C2.35,7.59 2.35,5.06 3.91,3.5L10.93,10.5L8.1,13.34M14.88,11.53L13.41,13L20.29,19.88L18.88,21.29L12,14.41L5.12,21.29L3.71,19.88L13.47,10.12C12.76,8.59 13.26,6.44 14.85,4.85C16.76,2.93 19.5,2.57 20.96,4.03C22.43,5.5 22.07,8.24 20.15,10.15C18.56,11.74 16.41,12.24 14.88,11.53Z\";\nexport var mdiSilverwareClean = \"M15 0L14.38 1.37L13 2L14.38 2.63L15 4L15.63 2.63L17 2L15.63 1.37L15 0M10.5 2L9.41 4.41L7 5.5L9.41 6.59L10.5 9L11.6 6.59L14 5.5L11.6 4.41L10.5 2M18.89 5.14C17.56 5.06 16.04 5.65 14.84 6.84C13.25 8.43 12.75 10.58 13.46 12.11L3.7 21.87L5.11 23.28L12 16.41L18.88 23.29L20.29 21.88L13.41 15L14.88 13.53C16.41 14.24 18.56 13.74 20.15 12.15C22.06 10.24 22.43 7.5 20.96 6.03C20.41 5.5 19.68 5.19 18.89 5.14M3.91 5.5C2.35 7.06 2.35 9.59 3.91 11.16L8.1 15.34L10.93 12.5L3.91 5.5Z\";\nexport var mdiSilverwareFork = \"M5.12,21.29L3.71,19.88L13.36,10.22L13.16,10C12.38,9.23 12.38,7.97 13.16,7.19L17.5,2.82L18.43,3.74L15.19,7L16.15,7.94L19.39,4.69L20.31,5.61L17.06,8.85L18,9.81L21.26,6.56L22.18,7.5L17.81,11.84C17.03,12.62 15.77,12.62 15,11.84L14.78,11.64L5.12,21.29Z\";\nexport var mdiSilverwareForkKnife = \"M11,9H9V2H7V9H5V2H3V9C3,11.12 4.66,12.84 6.75,12.97V22H9.25V12.97C11.34,12.84 13,11.12 13,9V2H11V9M16,6V14H18.5V22H21V2C18.24,2 16,4.24 16,6Z\";\nexport var mdiSilverwareSpoon = \"M14.88,11.53L5.12,21.29L3.71,19.88L13.47,10.12C12.76,8.59 13.26,6.44 14.85,4.85C16.76,2.93 19.5,2.57 20.96,4.03C22.43,5.5 22.07,8.24 20.15,10.15C18.56,11.74 16.41,12.24 14.88,11.53Z\";\nexport var mdiSilverwareVariant = \"M8.1,13.34L3.91,9.16C2.35,7.59 2.35,5.06 3.91,3.5L10.93,10.5L8.1,13.34M13.41,13L20.29,19.88L18.88,21.29L12,14.41L5.12,21.29L3.71,19.88L13.36,10.22L13.16,10C12.38,9.23 12.38,7.97 13.16,7.19L17.5,2.82L18.43,3.74L15.19,7L16.15,7.94L19.39,4.69L20.31,5.61L17.06,8.85L18,9.81L21.26,6.56L22.18,7.5L17.81,11.84C17.03,12.62 15.77,12.62 15,11.84L14.78,11.64L13.41,13Z\";\nexport var mdiSim = \"M20,4A2,2 0 0,0 18,2H10L4,8V20A2,2 0 0,0 6,22H18C19.11,22 20,21.1 20,20V4M9,19H7V17H9V19M17,19H15V17H17V19M9,15H7V11H9V15M13,19H11V15H13V19M13,13H11V11H13V13M17,15H15V11H17V15Z\";\nexport var mdiSimAlert = \"M13 13H11V7H13M13 17H11V15H13M18 2H10L4 8V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V4C20 2.9 19.1 2 18 2Z\";\nexport var mdiSimAlertOutline = \"M13 13H11V7H13M13 17H11V15H13M18 4V20H6V8.8L10.8 4H18M18 2H10L4 8V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V4C20 2.9 19.1 2 18 2Z\";\nexport var mdiSimOff = \"M20.84 22.73L19.46 21.35C19.1 21.75 18.58 22 18 22H6C4.89 22 4 21.11 4 20V8L5.06 6.95L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M20 4C20 2.9 19.11 2 18 2H10L7.6 4.4L20 16.8V4Z\";\nexport var mdiSimOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L5.06 6.95L4 8V20C4 21.11 4.89 22 6 22H18C18.58 22 19.1 21.75 19.46 21.35L20.84 22.73L22.11 21.46M18 20H6V8.83L6.47 8.36L18 19.89V20M10.83 4H18V14.8L20 16.8V4C20 2.9 19.11 2 18 2H10L7.6 4.4L9 5.81L10.83 4Z\";\nexport var mdiSimOutline = \"M18 4V20H6V8.8L10.8 4H18M18 2H10L4 8V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V4C20 2.9 19.1 2 18 2M9.5 19H7.5V17H9.5V19M16.5 19H14.5V17H16.5V19M9.5 15H7.5V11H9.5V15M13 19H11V15H13V19M13 13H11V11H13V13M16.5 15H14.5V11H16.5V15Z\";\nexport var mdiSimpleIcons = \"M18.25 17C18.25 17.88 18.07 18.74 17.71 19.53H16.31C17.71 17.15 16.91 14.09 14.53 12.69C13.76 12.24 12.89 12 12 12C9.24 12 7 9.76 7 7C7 4.24 9.24 2 12 2C14.76 2 17 4.24 17 7H15.75C15.75 4.93 14.07 3.25 12 3.25C9.93 3.25 8.25 4.93 8.25 7C8.25 9.07 9.93 10.75 12 10.75C15.45 10.75 18.25 13.56 18.25 17M6.29 19.53C5.93 18.74 5.75 17.87 5.75 17H7C7 17.93 7.25 18.79 7.69 19.53H6.29M18.25 20.75V22H5.75V20.75H9.5V15.75H8.25V14.5H15.75V15.75H14.5V20.75H18.25M13.25 15.75H10.75V20.75H13.25V15.75M14.44 7.07C14.4 8.4 13.33 9.47 12 9.5C10.62 9.46 9.53 8.32 9.57 6.94C9.6 5.61 10.67 4.53 12 4.5C13.38 4.54 14.47 5.68 14.44 7.07M13.25 7C13.25 6.31 12.69 5.75 12 5.75C11.31 5.75 10.75 6.31 10.75 7C10.75 7.69 11.31 8.25 12 8.25C12.69 8.25 13.25 7.69 13.25 7Z\";\nexport var mdiSinaWeibo = \"M9.82,13.87C10.89,13.87 11.77,14.74 11.77,15.82A1.95,1.95 0 0,1 9.82,17.77C8.74,17.77 7.87,16.89 7.87,15.82C7.87,14.74 8.74,13.87 9.82,13.87M14.5,3.34L15.18,3.31C18.94,3.31 22,6.37 22,10.13L21.95,10.95L20.76,10.58L20.78,10.13C20.78,7.04 18.27,4.53 15.18,4.53L14.83,4.54L14.5,3.34M15.32,6.23C17.38,6.3 19.05,8 19.08,10.06L17.84,9.68C17.65,8.56 16.78,7.68 15.67,7.5L15.32,6.23M2,15.41C1.97,14.8 2.07,12.64 4.95,9.97C8.35,6.81 9.82,7.05 9.82,7.05C9.82,7.05 13,6.75 11.06,10.46H11.13C11.6,9.96 12.62,9.21 14.69,9C16.77,8.79 16.77,10.5 16.5,11.7C18.38,12.64 19.56,14.03 19.56,15.58C19.56,18.4 15.63,20.69 10.78,20.69H10.65L10.5,20.69C7,20.69 4,19.42 2.71,17.59C2.25,16.97 2,16.29 2,15.58V15.41M9.82,11.92C6.59,11.92 3.97,13.67 3.97,15.82C3.97,17.97 6.59,19.72 9.82,19.72C13.05,19.72 15.67,17.97 15.67,15.82C15.67,13.67 13.05,11.92 9.82,11.92Z\";\nexport var mdiSineWave = \"M16.5,21C13.5,21 12.31,16.76 11.05,12.28C10.14,9.04 9,5 7.5,5C4.11,5 4,11.93 4,12H2C2,11.63 2.06,3 7.5,3C10.5,3 11.71,7.25 12.97,11.74C13.83,14.8 15,19 16.5,19C19.94,19 20.03,12.07 20.03,12H22.03C22.03,12.37 21.97,21 16.5,21Z\";\nexport var mdiSitemap = \"M9,2V8H11V11H5C3.89,11 3,11.89 3,13V16H1V22H7V16H5V13H11V16H9V22H15V16H13V13H19V16H17V22H23V16H21V13C21,11.89 20.11,11 19,11H13V8H15V2H9Z\";\nexport var mdiSitemapOutline = \"M21 16V13C21 11.89 20.11 11 19 11H13V8H15V2H9V8H11V11H5C3.89 11 3 11.89 3 13V16H1V22H7V16H5V13H11V16H9V22H15V16H13V13H19V16H17V22H23V16H21M11 4H13V6H11V4M5 20H3V18H5V20M13 20H11V18H13V20M21 20H19V18H21V20Z\";\nexport var mdiSizeL = \"M9 7V17H15V15H11V7H9Z\";\nexport var mdiSizeM = \"M9 7C7.9 7 7 7.9 7 9V17H9V9H11V16H13V9H15V17H17V9C17 7.9 16.11 7 15 7H9Z\";\nexport var mdiSizeS = \"M11 7C9.9 7 9 7.9 9 9V11C9 12.11 9.9 13 11 13H13V15H9V17H13C14.11 17 15 16.11 15 15V13C15 11.9 14.11 11 13 11H11V9H15V7H11Z\";\nexport var mdiSizeXl = \"M6 7H8L9 9.5L10 7H12L10 12L12 17H10L9 14.5L8 17H6L8 12L6 7M13 7H15V15H19V17H13V7Z\";\nexport var mdiSizeXs = \"M6 7H8L9 9.5L10 7H12L10 12L12 17H10L9 14.5L8 17H6L8 12L6 7M15 7H19V9H15V11H17C18.11 11 19 11.9 19 13V15C19 16.11 18.11 17 17 17H13V15H17V13H15C13.9 13 13 12.11 13 11V9C13 7.9 13.9 7 15 7Z\";\nexport var mdiSizeXxl = \"M9 7H11L12 9.5L13 7H15L13 12L15 17H13L12 14.5L11 17H9L11 12L9 7M16 7H18V15H22V17H16V7M2 7H4L5 9.5L6 7H8L6 12L8 17H6L5 14.5L4 17H2L4 12L2 7Z\";\nexport var mdiSizeXxs = \"M9 7H11L12 9.5L13 7H15L13 12L15 17H13L12 14.5L11 17H9L11 12L9 7M18 7H22V9H18V11H20C21.11 11 22 11.9 22 13V15C22 16.11 21.11 17 20 17H16V15H20V13H18C16.9 13 16 12.11 16 11V9C16 7.9 16.9 7 18 7M2 7H4L5 9.5L6 7H8L6 12L8 17H6L5 14.5L4 17H2L4 12L2 7Z\";\nexport var mdiSizeXxxl = \"M9 7H11L12 9.5L13 7H15L13 12L15 17H13L12 14.5L11 17H9L11 12L9 7M16 7H18V15H22V17H16V7M8 15C8 16.11 7.11 17 6 17H2V15H6V13H4V11H6V9H2V7H6C7.1 7 8 7.89 8 9V10.5C8 11.33 7.33 12 6.5 12C7.33 12 8 12.67 8 13.5V15Z\";\nexport var mdiSkate = \"M20.95 17C20.7 18.69 19.26 20 17.5 20H16V18H19C18.93 16.72 19.26 14.04 18.53 12.95C17.56 10.9 14.83 10.56 12.93 10.05C12 10 11 9 10.84 8H8C7.72 8 7.5 7.78 7.5 7.5C7.5 7.22 7.72 7 8 7H10.5V6H8C7.72 6 7.5 5.78 7.5 5.5C7.5 5.22 7.72 5 8 5H10.5V2H2.03V18H5V20H1V22H17.5C20.36 22 22.72 19.8 23 17H20.95M14 20H7V18H14V20Z\";\nexport var mdiSkateOff = \"M19 15.81L13.36 10.16C15.22 10.62 17.63 11.05 18.53 12.95C18.95 13.57 19 14.71 19 15.81M20.95 17C20.92 17.21 20.87 17.41 20.8 17.6L22.32 19.12C22.68 18.5 22.92 17.77 23 17H20.95M10.5 7V6H9.2L10.2 7H10.5M22.11 21.46L20.84 22.73L19.66 21.55C19 21.83 18.27 22 17.5 22H1V20H5V18H2.03V3.92L1.11 3L2.03 2.09V2H2.12L2.39 1.73L22.11 21.46M14 18H7V20H14V18M18.06 19.95L16.11 18H16V20H17.5C17.69 20 17.88 20 18.06 19.95M10.5 5V2H5.2L8.2 5H10.5Z\";\nexport var mdiSkateboard = \"M9 14.5C9 15.33 8.33 16 7.5 16S6 15.33 6 14.5 6.67 13 7.5 13 9 13.67 9 14.5M16.5 13C15.67 13 15 13.67 15 14.5S15.67 16 16.5 16C17.33 16 18 15.33 18 14.5S17.33 13 16.5 13M21.59 9.19C21.14 8.87 20.5 8.97 20.19 9.41L20.06 9.59C19.88 9.85 19.57 10 19.26 10L4.74 10C4.43 10 4.13 9.85 3.94 9.59L3.81 9.41C3.5 8.97 2.86 8.87 2.41 9.19C1.96 9.5 1.87 10.15 2.19 10.59L2.32 10.77C2.88 11.54 3.79 12 4.74 12H19.26C20.21 12 21.12 11.54 21.68 10.77L21.81 10.59C22.13 10.15 22.04 9.5 21.59 9.19Z\";\nexport var mdiSkateboarding = \"M19.78 18.39C19.93 18.54 20 18.7 20 18.88C20 19 19.94 19.17 19.82 19.32C19.44 19.85 18.96 20.26 18.37 20.56C17.78 20.85 17.15 21 16.47 21H7.53C6.82 21 6.17 20.85 5.59 20.56C5 20.26 4.5 19.85 4.13 19.32C4.04 19.17 4 19.03 4 18.88C4 18.7 4.07 18.54 4.2 18.39S4.5 18.17 4.71 18.17C4.94 18.17 5.13 18.27 5.28 18.5C5.69 19 6.22 19.36 6.87 19.54L9.82 15.96L8.54 12.07C8.36 11.5 8.44 11 8.76 10.5L11 6.86H8.8L7 9.77L5.41 8.76L7.75 5H13.12C13.54 5 13.87 5.12 14.14 5.35C14.4 5.59 14.58 5.8 14.67 5.97L15.15 7.12C15.5 7.89 16 8.5 16.7 9C17.4 9.45 18.18 9.69 19.03 9.69V11.59C17.94 11.59 16.95 11.32 16.03 10.79C15.12 10.26 14.4 9.57 13.87 8.71L12.16 11.41L16.21 13.93V19.59H16.47C16.92 19.59 17.33 19.5 17.73 19.28S18.46 18.81 18.72 18.5C18.87 18.27 19.05 18.17 19.25 18.17S19.63 18.25 19.78 18.39M14.36 15.25L11.05 13.18L12 16.32L9.24 19.59H14.36V15.25M15 1C13.9 1 13 1.9 13 3S13.9 5 15 5 17 4.11 17 3 16.11 1 15 1M8 21.5C7.59 21.5 7.25 21.84 7.25 22.25S7.59 23 8 23C8.41 23 8.75 22.66 8.75 22.25S8.41 21.5 8 21.5M16 21.5C15.59 21.5 15.25 21.84 15.25 22.25S15.59 23 16 23 16.75 22.66 16.75 22.25 16.41 21.5 16 21.5Z\";\nexport var mdiSkewLess = \"M17.5,11L15.41,20H10.5L12.59,11H17.5M20,9H11L8,22H17L20,9M4,6L8,2V5H16V7H8V10L4,6Z\";\nexport var mdiSkewMore = \"M12.5,11L10.41,20H5.5L7.59,11H12.5M15,9H6L3,22H12L15,9M21,6L17,2V5H9V7H17V10L21,6Z\";\nexport var mdiSki = \"M17.92 13.32C17.67 13.28 16.71 13 16.46 12.89L14.39 19.37L11.3 18.24L13.5 12.47L10.45 9L13 7.54C13.45 8.67 14.17 9.62 15.12 10.4S17.16 11.67 18.38 11.86L19.5 8.43L18.06 7.96L17.54 9.56C16.88 9.28 16.3 8.86 15.8 8.32C15.3 7.77 14.94 7.13 14.72 6.41L14.39 5.33C14.27 4.93 14.04 4.61 13.71 4.37C13.38 4.14 13 4 12.63 3.97C12.24 3.94 11.86 4 11.5 4.21L8 6.23C7.63 6.44 7.36 6.74 7.19 7.12C7 7.5 6.96 7.88 7 8.29S7.26 9.06 7.54 9.37L11.11 13.08L9.42 17.54L2.47 15.05L2 16.46L16.04 21.58C16.82 21.86 17.65 22 18.53 22C19.15 22 19.76 21.92 20.36 21.77C20.95 21.61 21.5 21.39 22 21.11L20.87 20C20.12 20.33 19.34 20.5 18.53 20.5C17.87 20.5 17.21 20.39 16.55 20.17L15.8 19.89L17.92 13.32M19 3C19 4.11 18.11 5 17 5S15 4.11 15 3 15.9 1 17 1 19 1.9 19 3Z\";\nexport var mdiSkiCrossCountry = \"M19 14H17.6V22H19V14M6.44 22H5L7 14H8.44L6.44 22M8.76 9.54V13H7V8.32L11.61 6.31C12.04 6.14 12.5 6.13 12.96 6.27S13.79 6.69 14.06 7.1L15 8.58C15.37 9.25 15.9 9.95 16.62 10.37C17.33 10.79 18.13 11 19 11V12.83C18 12.83 17 12.62 16.13 12.2S14.5 11.06 13.88 10.37L13.31 13.16L15.28 15V22H13.4V16.5L11.5 14.55L9.77 22H7.8L10.43 8.89L8.76 9.54M16 4C16 5.11 15.11 6 14 6S12 5.11 12 4 12.9 2 14 2 16 2.9 16 4Z\";\nexport var mdiSkiWater = \"M4.2 3.5C4.2 2.7 4.9 1.9 5.8 1.9C6.7 1.9 7.4 2.6 7.4 3.5S6.6 5 5.8 5 4.2 4.3 4.2 3.5M22 3.9L21.5 3L13.5 7.1L14 8L22 3.9M20.8 20.3L21.7 21.2C21.1 21.8 20.5 22.2 19.8 22.5S18.3 23 17.5 23H2V21.7H4.7L6.8 18.2L4.5 15L3.7 7.2C3.7 6.3 4.5 5.5 5.4 5.5C5.7 5.5 6 5.6 6.2 5.7L9.7 8.3L12 7.5L12.8 9.1L9.3 10.6C9.2 10.5 7.7 9.4 6.6 8.5L7 12L12.3 16.5L14 21.7H17.5C18.1 21.7 18.7 21.6 19.3 21.3C19.9 21.1 20.4 20.7 20.8 20.3M7 21.7H12L10.4 17.8L8.1 15.9L9.3 18.4L7 21.7Z\";\nexport var mdiSkipBackward = \"M20,5V19L13,12M6,5V19H4V5M13,5V19L6,12\";\nexport var mdiSkipBackwardOutline = \"M18,14.17L15.83,12L18,9.83V14.17M20,19V5L13,12M4,19H6V5H4M11,14.17L8.83,12L11,9.83V14.17M13,19V5L6,12\";\nexport var mdiSkipForward = \"M4,5V19L11,12M18,5V19H20V5M11,5V19L18,12\";\nexport var mdiSkipForwardOutline = \"M6,9.83L8.17,12L6,14.17V9.83M4,5V19L11,12M20,5H18V19H20M13,9.83L15.17,12L13,14.17V9.83M11,5V19L18,12\";\nexport var mdiSkipNext = \"M16,18H18V6H16M6,18L14.5,12L6,6V18Z\";\nexport var mdiSkipNextCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M8,8L13,12L8,16M14,8H16V16H14\";\nexport var mdiSkipNextCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4M8,8V16L13,12M14,8V16H16V8\";\nexport var mdiSkipNextOutline = \"M6,18L14.5,12L6,6M8,9.86L11.03,12L8,14.14M16,6H18V18H16\";\nexport var mdiSkipPrevious = \"M6,18V6H8V18H6M9.5,12L18,6V18L9.5,12Z\";\nexport var mdiSkipPreviousCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M8,8H10V16H8M16,8V16L11,12\";\nexport var mdiSkipPreviousCircleOutline = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4C7.59,4 4,7.59 4,12C4,16.41 7.59,20 12,20C16.41,20 20,16.41 20,12C20,7.59 16.41,4 12,4M16,8V16L11,12M10,8V16H8V8\";\nexport var mdiSkipPreviousOutline = \"M6,6H8V18H6M9.5,12L18,18V6M16,14.14L12.97,12L16,9.86V14.14Z\";\nexport var mdiSkull = \"M12,2A9,9 0 0,0 3,11C3,14.03 4.53,16.82 7,18.47V22H9V19H11V22H13V19H15V22H17V18.46C19.47,16.81 21,14 21,11A9,9 0 0,0 12,2M8,11A2,2 0 0,1 10,13A2,2 0 0,1 8,15A2,2 0 0,1 6,13A2,2 0 0,1 8,11M16,11A2,2 0 0,1 18,13A2,2 0 0,1 16,15A2,2 0 0,1 14,13A2,2 0 0,1 16,11M12,14L13.5,17H10.5L12,14Z\";\nexport var mdiSkullCrossbones = \"M15.8,18.5L21.8,20.1L21.4,22L12,19.5L2.6,22L2.1,20.1L8.1,18.5L2,16.9L2.5,15L11.9,17.5L21.3,15L21.8,16.9L15.8,18.5M18,8C18,9.8 17.2,11.3 16,12.4V15H14V13.7L14,13H13V15H11V13H10V13.7L10,15H8V12.4C6.8,11.3 6,9.8 6,8A6,6 0 0,1 12,2A6,6 0 0,1 18,8M11,7.5C11,6.7 10.3,6 9.5,6C8.7,6 8,6.7 8,7.5C8,8.3 8.7,9 9.5,9C10.3,9 11,8.3 11,7.5M13,11L12,9L11,11H13M16,7.5C16,6.7 15.3,6 14.5,6C13.7,6 13,6.7 13,7.5C13,8.3 13.7,9 14.5,9C15.3,9 16,8.3 16,7.5Z\";\nexport var mdiSkullCrossbonesOutline = \"M15.8,18.5L21.8,20.1L21.4,22L12,19.5L2.6,22L2.1,20.1L8.1,18.5L2,16.9L2.5,15L11.9,17.5L21.3,15L21.8,16.9L15.8,18.5M9.5,6C8.7,6 8,6.7 8,7.5C8,8.3 8.7,9 9.5,9C10.3,9 11,8.3 11,7.5C11,6.7 10.3,6 9.5,6M14.5,6C13.7,6 13,6.7 13,7.5C13,8.3 13.7,9 14.5,9C15.3,9 16,8.3 16,7.5C16,6.7 15.3,6 14.5,6M13,11L12,9L11,11H13M12,1C8.1,1 5,4.1 5,8C5,9.9 5.8,11.6 7,12.9V16H17V12.9C18.2,11.6 19,9.9 19,8C19,4.1 15.9,1 12,1M15,12V14H14V12H13V14H11V12H10V14H9V12H9C7.8,11.1 7,9.7 7,8C7,5.2 9.2,3 12,3C14.8,3 17,5.2 17,8C17,9.6 16.2,11.1 15,12Z\";\nexport var mdiSkullOutline = \"M8,15A2,2 0 0,1 6,13A2,2 0 0,1 8,11A2,2 0 0,1 10,13A2,2 0 0,1 8,15M10.5,17L12,14L13.5,17H10.5M16,15A2,2 0 0,1 14,13A2,2 0 0,1 16,11A2,2 0 0,1 18,13A2,2 0 0,1 16,15M22,11A10,10 0 0,0 12,1A10,10 0 0,0 2,11C2,13.8 3.2,16.3 5,18.1V22H19V18.1C20.8,16.3 22,13.8 22,11M17,20H15V18H13V20H11V18H9V20H7V17.2C5.2,15.7 4,13.5 4,11A8,8 0 0,1 12,3A8,8 0 0,1 20,11C20,13.5 18.8,15.8 17,17.2V20Z\";\nexport var mdiSkullScan = \"M2 0C.9 0 0 .9 0 2V6H2V2H6V0H2M18 0V2H22V6H24V2C24 .9 23.1 0 22 0H18M12 3C7.6 3 4 6.6 4 11C4 13.5 5.2 15.8 7 17.2V21H9V18H11V21H13V18H15V21H17V17.2C18.8 15.7 20 13.5 20 11C20 6.6 16.4 3 12 3M8 14C6.9 14 6 13.1 6 12S6.9 10 8 10 10 10.9 10 12 9.1 14 8 14M10.5 16L12 13L13.5 16H10.5M16 14C14.9 14 14 13.1 14 12S14.9 10 16 10 18 10.9 18 12 17.1 14 16 14M0 18V22C0 23.1 .9 24 2 24H6V22H2V18H0M22 18V22H18V24H22C23.1 24 24 23.1 24 22V18H22Z\";\nexport var mdiSkullScanOutline = \"M2 0C.9 0 0 .9 0 2V6H2V2H6V0H2M18 0V2H22V6H24V2C24 .9 23.1 0 22 0H18M9.5 13C8.7 13 8 12.3 8 11.5S8.7 10 9.5 10 11 10.7 11 11.5 10.3 13 9.5 13M11 15L12 13L13 15H11M14.5 13C13.7 13 13 12.3 13 11.5S13.7 10 14.5 10 16 10.7 16 11.5 15.3 13 14.5 13M0 18V22C0 23.1 .9 24 2 24H6V22H2V18H0M22 18V22H18V24H22C23.1 24 24 23.1 24 22V18H22M12 3C7.6 3 4 6.6 4 11C4 13 4.8 14.9 6 16.3V21H18V16.3C19.2 14.9 20 13.1 20 11C20 6.6 16.4 3 12 3M16 15.4V19H14V17H13V19H11V17H10V19H8V15.4C6.8 14.3 6 12.7 6 11C6 7.7 8.7 5 12 5S18 7.7 18 11C18 12.8 17.2 14.3 16 15.4Z\";\nexport var mdiSkype = \"M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M12.04,17.16C14.91,17.16 16.34,15.78 16.34,13.92C16.34,12.73 15.78,11.46 13.61,10.97L11.62,10.53C10.86,10.36 10,10.13 10,9.42C10,8.7 10.6,8.2 11.7,8.2C13.93,8.2 13.72,9.73 14.83,9.73C15.41,9.73 15.91,9.39 15.91,8.8C15.91,7.43 13.72,6.4 11.86,6.4C9.85,6.4 7.7,7.26 7.7,9.54C7.7,10.64 8.09,11.81 10.25,12.35L12.94,13.03C13.75,13.23 13.95,13.68 13.95,14.1C13.95,14.78 13.27,15.45 12.04,15.45C9.63,15.45 9.96,13.6 8.67,13.6C8.09,13.6 7.67,14 7.67,14.57C7.67,15.68 9,17.16 12.04,17.16Z\";\nexport var mdiSkypeBusiness = \"M12.03,16.53C9.37,16.53 8.18,15.22 8.18,14.24C8.18,13.74 8.55,13.38 9.06,13.38C10.2,13.38 9.91,15 12.03,15C13.12,15 13.73,14.43 13.73,13.82C13.73,13.46 13.55,13.06 12.83,12.88L10.46,12.29C8.55,11.81 8.2,10.78 8.2,9.81C8.2,7.79 10.1,7.03 11.88,7.03C13.5,7.03 15.46,7.94 15.46,9.15C15.46,9.67 15,9.97 14.5,9.97C13.5,9.97 13.7,8.62 11.74,8.62C10.77,8.62 10.23,9.06 10.23,9.69C10.23,10.32 11,10.5 11.66,10.68L13.42,11.07C15.34,11.5 15.83,12.62 15.83,13.67C15.83,15.31 14.57,16.53 12.03,16.53M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M8,5A3,3 0 0,0 5,8C5,8.79 5.3,9.5 5.8,10.04C5.1,12.28 5.63,14.82 7.4,16.6C9.18,18.37 11.72,18.9 13.96,18.2C14.5,18.7 15.21,19 16,19A3,3 0 0,0 19,16C19,15.21 18.7,14.5 18.2,13.96C18.9,11.72 18.37,9.18 16.6,7.4C14.82,5.63 12.28,5.1 10.04,5.8C9.5,5.3 8.79,5 8,5Z\";\nexport var mdiSlack = \"M6,15A2,2 0 0,1 4,17A2,2 0 0,1 2,15A2,2 0 0,1 4,13H6V15M7,15A2,2 0 0,1 9,13A2,2 0 0,1 11,15V20A2,2 0 0,1 9,22A2,2 0 0,1 7,20V15M9,7A2,2 0 0,1 7,5A2,2 0 0,1 9,3A2,2 0 0,1 11,5V7H9M9,8A2,2 0 0,1 11,10A2,2 0 0,1 9,12H4A2,2 0 0,1 2,10A2,2 0 0,1 4,8H9M17,10A2,2 0 0,1 19,8A2,2 0 0,1 21,10A2,2 0 0,1 19,12H17V10M16,10A2,2 0 0,1 14,12A2,2 0 0,1 12,10V5A2,2 0 0,1 14,3A2,2 0 0,1 16,5V10M14,18A2,2 0 0,1 16,20A2,2 0 0,1 14,22A2,2 0 0,1 12,20V18H14M14,17A2,2 0 0,1 12,15A2,2 0 0,1 14,13H19A2,2 0 0,1 21,15A2,2 0 0,1 19,17H14Z\";\nexport var mdiSlashForward = \"M7 21L14.9 3H17L9.1 21H7Z\";\nexport var mdiSlashForwardBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9.3 19H7L14.7 5H17L9.3 19Z\";\nexport var mdiSledding = \"M22.91 16.64C22.75 15.95 22.44 15.34 21.97 14.81C21.5 14.28 20.91 13.91 20.2 13.69L19.77 15.14C20.43 15.33 20.91 15.73 21.23 16.36C21.54 17 21.58 17.62 21.37 18.27C21.15 18.93 20.73 19.41 20.12 19.73S18.88 20.08 18.23 19.86L14.9 18.79L15.37 17.38L18.7 18.46L19.16 17L17.2 16.4L15.14 11.91C14.95 11.5 14.66 11.19 14.27 10.97C13.88 10.75 13.45 10.67 13 10.74L10.88 11.11L11.91 7.84C12.06 7.37 12.03 6.91 11.81 6.5C11.6 6.04 11.24 5.74 10.74 5.59C10.33 5.46 9.91 5.5 9.47 5.68L4 8V12.1L2.4 11.58L1.94 13L5.87 14.3L5.4 15.7L1.47 14.44L1 15.84L17.76 21.32C18.45 21.54 19.13 21.57 19.82 21.41C20.5 21.26 21.12 20.94 21.65 20.5C22.18 20 22.55 19.43 22.77 18.74C23 18 23.07 17.32 22.91 16.64M6 9.33L7.93 8.5L6.9 11.67C6.74 12.14 6.79 12.61 7.04 13.08L6 12.75V9.33M13.5 18.32L6.81 16.17L7.27 14.76L13.92 16.92L13.5 18.32M9.47 13.87L13.45 13L14.62 15.56L9.47 13.87M14 3C14 4.11 13.11 5 12 5S10 4.11 10 3 10.9 1 12 1 14 1.9 14 3Z\";\nexport var mdiSleep = \"M23,12H17V10L20.39,6H17V4H23V6L19.62,10H23V12M15,16H9V14L12.39,10H9V8H15V10L11.62,14H15V16M7,20H1V18L4.39,14H1V12H7V14L3.62,18H7V20Z\";\nexport var mdiSleepOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L12.73,16H9V14L9.79,13.06L2,5.27M23,12H17V10L20.39,6H17V4H23V6L19.62,10H23V12M9.82,8H15V10L13.54,11.72L9.82,8M7,20H1V18L4.39,14H1V12H7V14L3.62,18H7V20Z\";\nexport var mdiSlide = \"M14.83 15.45C14.47 14.9 14.18 14.39 13.91 13.92C12.74 11.91 11.79 10.55 9 10.13V5.5C9 3.57 7.43 2 5.5 2S2 3.57 2 5.5V22H4V20H7V22H9V12.16C10.76 12.5 11.29 13.39 12.17 14.92C12.46 15.43 12.78 15.97 13.17 16.56C15.41 19.92 17.67 22 22 22V20C18.53 20 16.8 18.4 14.83 15.45M5.5 4C6.33 4 7 4.67 7 5.5V10H4V5.5C4 4.67 4.67 4 5.5 4M4 18V16H7V18H4M7 14H4V12H7V14Z\";\nexport var mdiSlopeDownhill = \"M22,19V22H2V13L22,19M19.09,7.5L18.25,10.26L8.13,7.26C8.06,5.66 6.7,4.42 5.1,4.5C3.5,4.57 2.26,5.93 2.34,7.53C2.41,9.13 3.77,10.36 5.37,10.29C6.24,10.25 7.05,9.82 7.57,9.11L17.69,12.11L16.85,14.89L21.67,12.29L19.09,7.5Z\";\nexport var mdiSlopeUphill = \"M22,13V22H2V19L22,13M21.68,7.06L16.86,4.46L17.7,7.24L7.58,10.24C6.63,8.95 4.82,8.67 3.53,9.62C2.24,10.57 1.96,12.38 2.91,13.67C3.85,14.97 5.67,15.24 6.96,14.29C7.67,13.78 8.1,12.97 8.14,12.09L18.26,9.09L19.1,11.87L21.68,7.06Z\";\nexport var mdiSlotMachine = \"M5 12L7 8V7H4V8H6L4 12M9 12L11 8V7H8V8H10L8 12M13 12L15 8V7H12V8H14L12 12M21 2C19.9 2 19 2.9 19 4C19 4.7 19.4 5.4 20 5.7V17H17V15C17.6 15 18 14.6 18 14V5C18 4.4 17.6 4 17 4H13.2C12.4 2.8 11 2 9.5 2S6.6 2.8 5.8 4H2C1.4 4 1 4.4 1 5V14C1 14.6 1.4 15 2 15V22H17V19H20C21.1 19 22 18.1 22 17V5.7C22.6 5.4 23 4.7 23 4C23 2.9 22.1 2 21 2M13 19H6V17H13V19M16 13H3V6H16V13Z\";\nexport var mdiSlotMachineOutline = \"M5 12L7 8V7H4V8H6L4 12M9 12L11 8V7H8V8H10L8 12M13 12L15 8V7H12V8H14L12 12M21 2C19.9 2 19 2.9 19 4C19 4.7 19.4 5.4 20 5.7V17H17V15C17.6 15 18 14.6 18 14V5C18 4.4 17.6 4 17 4H13.2C12.4 2.8 11 2 9.5 2S6.6 2.8 5.8 4H2C1.4 4 1 4.4 1 5V14C1 14.6 1.4 15 2 15V22H17V19H20C21.1 19 22 18.1 22 17V5.7C22.6 5.4 23 4.7 23 4C23 2.9 22.1 2 21 2M3 6H16V13H3V6M15 20H4V15H15V20M13 19H6V17H13V19Z\";\nexport var mdiSmartCard = \"M2 3H22A2.07 2.07 0 0 1 24 5V19A2.07 2.07 0 0 1 22 21H2A2.07 2.07 0 0 1 0 19V5A2.07 2.07 0 0 1 2 3M8 13.91C6 13.91 2 15 2 17V18H14V17C14 15 10 13.91 8 13.91M8 6A3 3 0 1 0 11 9A3 3 0 0 0 8 6M17 10V13H21V10H17\";\nexport var mdiSmartCardOff = \"M2.39 1.73L1.11 3L1.27 3.16C.545 3.47 .028 4.17 0 5V19C.036 20.09 .911 20.96 2 21H19.11L20.84 22.73L22.11 21.46L2.39 1.73M14 18H2V17C2 15 6 13.91 8 13.91S14 15 14 17V18M8 12C6.34 12 5 10.66 5 9C5 8.4 5.18 7.84 5.5 7.38L9.62 11.5C9.16 11.82 8.6 12 8 12M22 3H6.2L9.88 6.68C10.04 6.81 10.19 6.96 10.32 7.12L23.5 20.29C23.79 19.94 24 19.5 24 19V5C23.96 3.91 23.09 3.04 22 3M21 13H17V10H21V13Z\";\nexport var mdiSmartCardOffOutline = \"M19 13H16.2L15 11.8V10H19V13M22 3H6.2L8.2 5H22V18.8L23.5 20.29C23.79 19.94 24 19.5 24 19V5C23.96 3.91 23.09 3.04 22 3M22.11 21.46L20.84 22.73L19.11 21H2C.911 20.96 .036 20.09 0 19V5C.028 4.17 .545 3.47 1.27 3.16L1.11 3L2.39 1.73L22.11 21.46M17.11 19L14 15.89V17H4V15.75C4 14.09 7.34 13.25 9 13.25C9.78 13.25 10.91 13.44 11.91 13.8L9.91 11.8C9.63 11.92 9.33 12 9 12C7.62 12 6.5 10.88 6.5 9.5C6.5 9.17 6.58 8.87 6.7 8.59L3.11 5H2V19H17.11Z\";\nexport var mdiSmartCardOutline = \"M22 3H2A2.07 2.07 0 0 0 0 5V19A2.07 2.07 0 0 0 2 21H22A2.07 2.07 0 0 0 24 19V5A2.07 2.07 0 0 0 22 3M22 19H2V5H22M14 17V15.75C14 14.09 10.66 13.25 9 13.25S4 14.09 4 15.75V17H14M9 7A2.5 2.5 0 1 0 11.5 9.5A2.5 2.5 0 0 0 9 7M15 10V13H19V10H15\";\nexport var mdiSmartCardReader = \"M21 4A2.07 2.07 0 0 0 19 2H5A2.07 2.07 0 0 0 3 4V18H21M8.25 16H7V6H8.25C9.91 6 10.75 9.34 10.75 11S9.91 16 8.25 16M14.5 13.5A2.5 2.5 0 1 1 17 11A2.5 2.5 0 0 1 14.5 13.5M23 21V22H1V21A2 2 0 0 1 3 19H21A2 2 0 0 1 23 21Z\";\nexport var mdiSmartCardReaderOutline = \"M14.5 8.5A2.5 2.5 0 1 0 17 11A2.5 2.5 0 0 0 14.5 8.5M8.25 6H7V16H8.25C9.91 16 10.75 12.66 10.75 11S9.91 6 8.25 6M19 2H5A2.07 2.07 0 0 0 3 4V18H5V4H19V18H21V4A2.07 2.07 0 0 0 19 2M23 22H1V21A2 2 0 0 1 3 19H21A2 2 0 0 1 23 21Z\";\nexport var mdiSmog = \"M12,2C10.08,2 8.5,3.35 8.09,5.15C7.45,4.44 6.53,4 5.5,4A3.5,3.5 0 0,0 2,7.5H2A3.5,3.5 0 0,0 5.5,11H6.68V12H10.72V11H13.28V12H17.32V11H18.5A3.5,3.5 0 0,0 22,7.5H22A3.5,3.5 0 0,0 18.5,4H18.5C17.47,4 16.55,4.44 15.91,5.15C15.5,3.35 13.92,2 12,2M7.2,14L6.4,22H11L10.2,14H7.2M13.8,14L13,22H17.6L16.8,14H13.8Z\";\nexport var mdiSmoke = \"M17 19V22H15V19C15 17.9 14.1 17 13 17H10C7.2 17 5 14.8 5 12C5 10.8 5.4 9.8 6.1 8.9C3.8 8.5 2 6.4 2 4C2 3.3 2.2 2.6 2.4 2H4.8C4.3 2.5 4 3.2 4 4C4 5.7 5.3 7 7 7H10V9C8.3 9 7 10.3 7 12S8.3 15 10 15H13C15.2 15 17 16.8 17 19M17.9 8.9C20.2 8.5 22 6.4 22 4C22 3.3 21.8 2.6 21.6 2H19.2C19.7 2.5 20 3.2 20 4C20 5.7 18.7 7 17 7H15.8C15.9 7.3 16 7.6 16 8C16 9.7 14.7 11 13 11V13C15.8 13 18 15.2 18 18V22H20V18C20 15.3 18.5 13 16.2 11.8C17.1 11.1 17.7 10.1 17.9 8.9Z\";\nexport var mdiSmokeDetector = \"M12,18A6,6 0 0,0 18,12C18,8.68 15.31,6 12,6C8.68,6 6,8.68 6,12A6,6 0 0,0 12,18M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19M8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12Z\";\nexport var mdiSmokeDetectorAlert = \"M10 18C13.3 18 16 15.3 16 12C16 8.7 13.3 6 10 6C6.7 6 4 8.7 4 12C4 15.3 6.7 18 10 18M17 3C18.1 3 19 3.9 19 5V19C19 20.1 18.1 21 17 21H3C1.9 21 1 20.1 1 19V5C1 3.9 1.9 3 3 3H17M6 12C6 9.8 7.8 8 10 8S14 9.8 14 12 12.2 16 10 16 6 14.2 6 12M23 7H21V13H23V8M23 15H21V17H23V15Z\";\nexport var mdiSmokeDetectorAlertOutline = \"M17 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H17C18.1 21 19 20.1 19 19V5C19 3.9 18.1 3 17 3M17 19H3V5H17V19M10 18C13.3 18 16 15.3 16 12C16 8.7 13.3 6 10 6C6.7 6 4 8.7 4 12C4 15.3 6.7 18 10 18M10 8C12.2 8 14 9.8 14 12S12.2 16 10 16 6 14.2 6 12 7.8 8 10 8M23 7H21V13H23V8M23 15H21V17H23V15Z\";\nexport var mdiSmokeDetectorOff = \"M12 8C14.21 8 16 9.79 16 12C16 12.25 15.97 12.5 15.93 12.73L11.27 8.07C11.5 8.03 11.75 8 12 8M12 6C15.31 6 18 8.68 18 12C18 12.83 17.82 13.6 17.5 14.32L21 17.8V5C21 3.9 20.11 3 19 3H6.2L9.68 6.5C10.4 6.18 11.17 6 12 6M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.89 21 3 20.1 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L22.11 21.46M15.19 17.08L13.71 15.6C13.19 15.85 12.62 16 12 16C9.79 16 8 14.21 8 12C8 11.39 8.15 10.81 8.4 10.29L6.92 8.81C6.34 9.74 6 10.83 6 12C6 15.31 8.69 18 12 18C13.17 18 14.26 17.66 15.19 17.08Z\";\nexport var mdiSmokeDetectorOffOutline = \"M8.2 5L6.2 3H19C20.11 3 21 3.9 21 5V17.8L19 15.8V5H8.2M17.5 14.32C17.82 13.6 18 12.83 18 12C18 8.68 15.31 6 12 6C11.17 6 10.4 6.18 9.68 6.5L11.27 8.07C11.5 8.03 11.75 8 12 8C14.21 8 16 9.79 16 12C16 12.25 15.97 12.5 15.93 12.73L17.5 14.32M22.11 21.46L20.84 22.73L19.1 21C19.07 21 19.03 21 19 21H5C3.89 21 3 20.1 3 19V5C3 4.97 3 4.93 3 4.9L1.11 3L2.39 1.73L22.11 21.46M8 12C8 14.21 9.79 16 12 16C12.62 16 13.19 15.85 13.71 15.6L8.4 10.29C8.15 10.81 8 11.39 8 12M17.11 19L15.19 17.08C14.26 17.66 13.17 18 12 18C8.69 18 6 15.31 6 12C6 10.83 6.34 9.74 6.92 8.81L5 6.89V19H17.11Z\";\nexport var mdiSmokeDetectorOutline = \"M19 3H5C3.89 3 3 3.89 3 5V19C3 20.1 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V5H19V19M12 18C15.31 18 18 15.31 18 12C18 8.68 15.31 6 12 6C8.68 6 6 8.68 6 12C6 15.31 8.69 18 12 18M12 8C14.21 8 16 9.79 16 12S14.21 16 12 16 8 14.21 8 12 9.79 8 12 8Z\";\nexport var mdiSmokeDetectorVariant = \"M12 4C16.41 4 20 7.59 20 12S16.41 20 12 20 4 16.41 4 12 7.59 4 12 4M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 11C11.45 11 11 11.45 11 12S11.45 13 12 13 13 12.55 13 12 12.55 11 12 11M10.72 9.3C11.11 9.11 11.54 9 12 9S12.89 9.11 13.29 9.3L14 8.57C13.43 8.22 12.74 8 12 8S10.58 8.22 10 8.57L10.72 9.3M15 12C15 12.46 14.89 12.89 14.7 13.29L15.43 14C15.79 13.43 16 12.74 16 12S15.79 10.58 15.43 10L14.7 10.72C14.89 11.11 15 11.54 15 12M9 12C9 11.54 9.11 11.11 9.3 10.72L8.57 10C8.22 10.58 8 11.26 8 12S8.22 13.43 8.57 14L9.3 13.29C9.11 12.89 9 12.46 9 12M13.29 14.7C12.89 14.89 12.46 15 12 15S11.11 14.89 10.72 14.7L10 15.43C10.58 15.79 11.26 16 12 16S13.43 15.79 14 15.43L13.29 14.7M16.89 8.53L16.17 9.25C16.69 10.04 17 11 17 12S16.69 13.96 16.17 14.75L16.89 15.47C17.59 14.5 18 13.3 18 12S17.59 9.5 16.89 8.53M9.25 7.83C10.04 7.31 11 7 12 7S13.96 7.31 14.75 7.83L15.47 7.11C14.5 6.42 13.3 6 12 6S9.5 6.42 8.53 7.11L9.25 7.83M14.75 16.17C13.96 16.69 13 17 12 17S10.04 16.69 9.25 16.17L8.53 16.89C9.5 17.59 10.7 18 12 18S14.5 17.59 15.47 16.89L14.75 16.17M7.83 14.75C7.31 13.96 7 13 7 12S7.31 10.04 7.83 9.25L7.11 8.53C6.42 9.5 6 10.7 6 12S6.42 14.5 7.11 15.47L7.83 14.75Z\";\nexport var mdiSmokeDetectorVariantAlert = \"M10 4C14.4 4 18 7.6 18 12S14.4 20 10 20 2 16.4 2 12 5.6 4 10 4M10 2C4.5 2 0 6.5 0 12S4.5 22 10 22 20 17.5 20 12 15.5 2 10 2M10 11C9.4 11 9 11.4 9 12S9.4 13 10 13 11 12.6 11 12 10.6 11 10 11M8.7 9.3C9.1 9.1 9.5 9 10 9S10.9 9.1 11.3 9.3L12 8.6C11.4 8.2 10.7 8 10 8S8.6 8.2 8 8.6L8.7 9.3M13 12C13 12.5 12.9 12.9 12.7 13.3L13.4 14C13.8 13.4 14 12.7 14 12S13.8 10.6 13.4 10L12.7 10.7C12.9 11.1 13 11.5 13 12M7 12C7 11.5 7.1 11.1 7.3 10.7L6.6 10C6.2 10.6 6 11.3 6 12S6.2 13.4 6.6 14L7.3 13.3C7.1 12.9 7 12.5 7 12M11.3 14.7C10.9 14.9 10.5 15 10 15S9.1 14.9 8.7 14.7L8 15.4C8.6 15.8 9.3 16 10 16S11.4 15.8 12 15.4L11.3 14.7M14.9 8.5L14.2 9.2C14.7 10 15 11 15 12S14.7 14 14.2 14.8L14.9 15.5C15.6 14.5 16 13.3 16 12S15.6 9.5 14.9 8.5M7.2 7.8C8 7.3 9 7 10 7S12 7.3 12.8 7.8L13.5 7.1C12.5 6.4 11.3 6 10 6S7.5 6.4 6.5 7.1L7.2 7.8M12.8 16.2C12 16.7 11 17 10 17S8 16.7 7.2 16.2L6.5 16.9C7.5 17.6 8.7 18 10 18S12.5 17.6 13.5 16.9L12.8 16.2M5.8 14.8C5.3 14 5 13 5 12S5.3 10 5.8 9.2L5.1 8.5C4.4 9.5 4 10.7 4 12S4.4 14.5 5.1 15.5L5.8 14.8M24 7H22V13H24V8M24 15H22V17H24V15Z\";\nexport var mdiSmokeDetectorVariantOff = \"M22.11 21.46L2.39 1.73L1.11 3L4.06 5.95C2.77 7.63 2 9.72 2 12C2 17.5 6.5 22 12 22C14.28 22 16.37 21.23 18.05 19.94L20.84 22.73L22.11 21.46M12 20C7.59 20 4 16.41 4 12C4 10.28 4.56 8.69 5.5 7.38L6.93 8.82C6.35 9.75 6 10.83 6 12C6 13.3 6.42 14.5 7.11 15.47L7.83 14.75C7.31 13.96 7 13 7 12C7 11.11 7.25 10.28 7.66 9.55L8.4 10.3C8.15 10.81 8 11.39 8 12C8 12.74 8.22 13.43 8.57 14L9.3 13.29C9.11 12.89 9 12.46 9 12C9 11.67 9.07 11.36 9.18 11.07L12.93 14.82C12.64 14.93 12.33 15 12 15C11.54 15 11.11 14.89 10.72 14.7L10 15.43C10.58 15.79 11.26 16 12 16C12.61 16 13.19 15.85 13.71 15.6L14.45 16.34C13.72 16.75 12.89 17 12 17C11 17 10.04 16.69 9.25 16.17L8.53 16.89C9.5 17.59 10.7 18 12 18C13.17 18 14.25 17.65 15.18 17.07L16.62 18.5C15.32 19.44 13.72 20 12 20M12 8C12.74 8 13.43 8.22 14 8.57L13.29 9.3C12.96 9.15 12.6 9.06 12.23 9.03L11.28 8.08C11.5 8.03 11.75 8 12 8M14.97 11.77C14.94 11.4 14.86 11.04 14.7 10.72L15.43 10C15.79 10.58 16 11.26 16 12C16 12.25 15.97 12.5 15.92 12.72L14.97 11.77M14.75 7.83C13.96 7.31 13 7 12 7C11.46 7 10.94 7.09 10.45 7.25L9.69 6.5C10.4 6.18 11.18 6 12 6C13.3 6 14.5 6.42 15.47 7.11L14.75 7.83M8.18 5L6.72 3.5C8.25 2.56 10.06 2 12 2C17.5 2 22 6.5 22 12C22 13.94 21.44 15.75 20.5 17.28L19 15.83C19.65 14.69 20 13.38 20 12C20 7.59 16.41 4 12 4C10.62 4 9.31 4.35 8.18 5M16.75 13.55C16.91 13.06 17 12.54 17 12C17 11 16.69 10.04 16.17 9.25L16.89 8.53C17.59 9.5 18 10.7 18 12C18 12.83 17.82 13.6 17.5 14.32L16.75 13.55Z\";\nexport var mdiSmoking = \"M2,16H17V19H2V16M20.5,16H22V19H20.5V16M18,16H19.5V19H18V16M18.85,7.73C19.47,7.12 19.85,6.28 19.85,5.35C19.85,3.5 18.35,2 16.5,2V3.5C17.5,3.5 18.35,4.33 18.35,5.35C18.35,6.37 17.5,7.2 16.5,7.2V8.7C18.74,8.7 20.5,10.53 20.5,12.77V15H22V12.76C22,10.54 20.72,8.62 18.85,7.73M16.03,10.2H14.5C13.5,10.2 12.65,9.22 12.65,8.2C12.65,7.18 13.5,6.45 14.5,6.45V4.95C12.65,4.95 11.15,6.45 11.15,8.3A3.35,3.35 0 0,0 14.5,11.65H16.03C17.08,11.65 18,12.39 18,13.7V15H19.5V13.36C19.5,11.55 17.9,10.2 16.03,10.2Z\";\nexport var mdiSmokingOff = \"M2,6L9,13H2V16H12L19,23L20.25,21.75L3.25,4.75L2,6M20.5,13H22V16H20.5V13M18,13H19.5V16H18V13M18.85,4.88C19.47,4.27 19.85,3.43 19.85,2.5H18.35C18.35,3.5 17.5,4.35 16.5,4.35V5.85C18.74,5.85 20.5,7.68 20.5,9.92V12H22V9.92C22,7.69 20.72,5.77 18.85,4.88M14.5,8.7H16.03C17.08,8.7 18,9.44 18,10.75V12H19.5V10.41C19.5,8.61 17.9,7.25 16.03,7.25H14.5C13.5,7.25 12.65,6.27 12.65,5.25C12.65,4.23 13.5,3.5 14.5,3.5V2A3.35,3.35 0 0,0 11.15,5.35A3.35,3.35 0 0,0 14.5,8.7M17,15.93V13H14.07L17,15.93Z\";\nexport var mdiSmokingPipe = \"M16 13C14.89 13 14 13.89 14 15V18H13C12 18 11 17.92 10.3 17.23L6.53 13.47C5.6 12.53 4.33 12 3 12H2V14H3C3.8 14 4.56 14.32 5.12 14.88L8.89 18.65C11.72 21.5 13 22 16 22H18C20.21 22 22 20.21 22 18V15C22 13.89 21.11 13 20 13H16M14 7.2H12.5C11.45 7.12 10.65 6.25 10.65 5.2C10.67 4.22 11.5 3.43 12.46 3.45L12.5 3.45V2C10.65 2 9.15 3.5 9.15 5.35S10.65 8.7 12.5 8.7H14C15.07 8.66 15.96 9.5 16 10.56C16 10.61 16 10.65 16 10.7V12H17.5V10.36C17.42 8.53 15.88 7.12 14.05 7.2L14 7.2M20 9.76V12H18.5V9.77L18.5 9.7C18.5 7.5 16.71 5.7 14.5 5.7V4.2H14.5C15.5 4.2 16.35 3.37 16.35 2.35C16.35 2.23 16.34 2.11 16.32 2H17.79C17.89 3 17.58 4 16.82 4.73H16.85C18.78 5.66 20 7.62 20 9.76Z\";\nexport var mdiSmokingPipeOff = \"M20.84 22.73L19.71 21.6C19.19 21.85 18.62 22 18 22H16C13 22 11.72 21.5 8.89 18.65L5.12 14.88C4.56 14.32 3.8 14 3 14H2V12H3C4.33 12 5.6 12.53 6.53 13.47L10.3 17.23C11 17.92 12 18 13 18H14V15.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M21.93 18.73C21.97 18.5 22 18.25 22 18V15C22 13.89 21.11 13 20 13H16.2L21.93 18.73M18.5 9.7L18.5 9.77V12H20V9.76C20 7.62 18.78 5.66 16.85 4.73H16.82C17.58 4 17.9 3 17.8 2H16.32C16.34 2.11 16.35 2.23 16.35 2.35C16.35 3.37 15.5 4.2 14.5 4.2H14.5V5.7C16.71 5.7 18.5 7.5 18.5 9.7M11.83 8.63C12.05 8.68 12.27 8.7 12.5 8.7H14C15.07 8.66 15.96 9.5 16 10.56C16 10.61 16 10.65 16 10.7V12H17.5V10.36C17.42 8.53 15.88 7.12 14.05 7.2L14 7.2H12.5C11.45 7.12 10.65 6.25 10.65 5.2C10.67 4.22 11.5 3.43 12.46 3.45L12.5 3.45V2C10.65 2 9.15 3.5 9.15 5.35C9.15 5.58 9.17 5.8 9.22 6L11.83 8.63Z\";\nexport var mdiSnail = \"M20.31 8.03L21.24 4.95C21.67 4.85 22 4.47 22 4C22 3.45 21.55 3 21 3S20 3.45 20 4C20 4.26 20.11 4.5 20.27 4.68L19.5 7.26L18.73 4.68C18.89 4.5 19 4.26 19 4C19 3.45 18.55 3 18 3S17 3.45 17 4C17 4.47 17.33 4.85 17.76 4.95L18.69 8.03C17.73 8.18 17 9 17 10V12.25C15.65 9.16 12.63 7 9.11 7C5.19 7 2 10.26 2 14.26C2 16.1 2.82 17.75 4.1 18.85L2.88 19C2.38 19.06 2 19.5 2 20C2 20.55 2.45 21 3 21L19.12 21C20.16 21 21 20.16 21 19.12V11.72C21.6 11.38 22 10.74 22 10C22 9 21.27 8.18 20.31 8.03M15.6 17.41L12.07 17.86C12.5 17.1 12.8 16.21 12.8 15.26C12.8 12.94 10.95 11.06 8.67 11.06C8.14 11.06 7.62 11.18 7.14 11.41C6.65 11.66 6.44 12.26 6.69 12.75C6.93 13.25 7.53 13.45 8.03 13.21C8.23 13.11 8.45 13.06 8.67 13.06C9.85 13.06 10.8 14.04 10.8 15.26C10.8 16.92 9.5 18.27 7.89 18.27C5.75 18.27 4 16.47 4 14.26C4 11.36 6.29 9 9.11 9C12.77 9 15.75 12.06 15.75 15.82C15.75 16.36 15.69 16.89 15.6 17.41Z\";\nexport var mdiSnake = \"M19.5 17H18C19.1 17 20 16.1 20 15S19.1 13 18 13V9C18 8 18 7 16.92 6.14C16.97 5.93 17 5.72 17 5.5C17 3.57 15 2 12.5 2C10.24 2 8.38 3.31 8.07 5H6L3.71 2.79L3 3.5L5 5.5L3 7.5L3.71 8.21L6 6H8.07C8.38 7.69 10.24 9 12.5 9C13 9 13.5 8.92 13.93 8.8C13.97 8.87 14 8.94 14 9V13H8C6.9 13 6 13.9 6 15S6.9 17 8 17H6.5C5.12 17 4 18.12 4 19.5C4 19.67 4 19.84 4.05 20H4C2.9 20 2 20.9 2 22H19.5C20.88 22 22 20.88 22 19.5S20.88 17 19.5 17M12 5C11.45 5 11 4.55 11 4S11.45 3 12 3 13 3.45 13 4 12.55 5 12 5Z\";\nexport var mdiSnapchat = \"M21.93 16.56C21.79 16.18 21.5 16 21.22 15.81C21.17 15.78 21.11 15.75 21.07 15.73C21 15.68 20.89 15.64 20.8 15.59C19.86 15.09 19.12 14.46 18.61 13.72C18.47 13.5 18.35 13.29 18.24 13.06C18.2 12.93 18.2 12.86 18.23 12.8C18.26 12.75 18.3 12.7 18.35 12.67C18.5 12.56 18.68 12.46 18.79 12.38C19 12.25 19.15 12.15 19.25 12.08C19.64 11.81 19.91 11.5 20.08 11.2C20.32 10.75 20.35 10.22 20.16 9.75C19.91 9.08 19.27 8.66 18.5 8.66C18.34 8.66 18.18 8.68 18 8.71C18 8.72 17.94 8.73 17.9 8.74C17.9 8.28 17.89 7.8 17.85 7.32C17.71 5.64 17.12 4.76 16.5 4.06C16.11 3.62 15.65 3.24 15.14 2.95C14.21 2.42 13.15 2.15 12 2.15S9.8 2.42 8.87 2.95C8.35 3.24 7.89 3.62 7.5 4.06C6.88 4.76 6.3 5.64 6.15 7.32C6.11 7.8 6.1 8.28 6.11 8.74C6.06 8.73 6 8.72 6 8.71C5.82 8.68 5.66 8.66 5.5 8.66C4.73 8.66 4.09 9.08 3.84 9.75C3.65 10.22 3.68 10.75 3.92 11.2C4.09 11.5 4.36 11.81 4.75 12.08C4.85 12.15 5 12.25 5.21 12.39L5.63 12.66C5.69 12.7 5.73 12.75 5.77 12.8C5.8 12.87 5.8 12.94 5.75 13.07C5.65 13.3 5.53 13.5 5.39 13.72C4.89 14.45 4.18 15.07 3.27 15.56C2.78 15.82 2.28 16 2.07 16.56C1.91 17 2 17.5 2.42 17.91C2.57 18.06 2.74 18.19 2.93 18.29C3.33 18.5 3.75 18.68 4.18 18.79C4.27 18.82 4.36 18.85 4.43 18.91C4.58 19.03 4.56 19.23 4.76 19.5C4.86 19.66 5 19.79 5.13 19.89C5.54 20.18 6 20.19 6.5 20.21C6.94 20.23 7.44 20.25 8 20.44C8.26 20.5 8.5 20.67 8.79 20.85C9.5 21.27 10.42 21.85 12 21.85C13.57 21.85 14.5 21.27 15.22 20.84C15.5 20.67 15.75 20.5 16 20.44C16.55 20.25 17.06 20.23 17.5 20.21C18 20.2 18.46 20.18 18.87 19.89C19.04 19.77 19.18 19.61 19.29 19.43C19.43 19.19 19.43 19 19.56 18.91C19.63 18.86 19.71 18.82 19.8 18.8C20.24 18.68 20.66 18.5 21.06 18.29C21.27 18.18 21.45 18.04 21.6 17.87L21.61 17.87C22 17.46 22.08 17 21.93 16.56M20.53 17.31C19.67 17.78 19.1 17.73 18.66 18C18.5 18.12 18.45 18.28 18.42 18.44C18.41 18.5 18.4 18.58 18.39 18.64C18.37 18.78 18.34 18.9 18.24 18.97C17.9 19.2 16.91 18.95 15.63 19.37C14.57 19.72 13.9 20.73 12 20.73C10.1 20.73 9.45 19.73 8.37 19.37C7.1 18.95 6.1 19.2 5.77 18.97C5.5 18.78 5.72 18.26 5.34 18C4.9 17.73 4.33 17.78 3.5 17.31C3.19 17.15 3.14 17 3.18 16.93C3.22 16.84 3.34 16.77 3.42 16.73C5.07 15.94 6 14.91 6.47 14.1C6.91 13.38 7 12.83 7.03 12.75C7.06 12.54 7.09 12.38 6.86 12.17C6.64 11.96 5.66 11.36 5.39 11.17C4.93 10.85 4.74 10.54 4.88 10.15L4.88 10.15V10.15C5 9.88 5.23 9.78 5.5 9.78C5.58 9.78 5.66 9.79 5.74 9.81C6.24 9.91 6.72 10.16 7 10.23C7.03 10.24 7.06 10.24 7.1 10.24C7.19 10.24 7.24 10.21 7.27 10.15C7.28 10.11 7.29 10.06 7.29 10C7.25 9.46 7.18 8.41 7.26 7.42C7.3 7 7.37 6.64 7.46 6.33C7.66 5.65 8 5.2 8.34 4.79C8.59 4.5 9.75 3.27 12 3.27C13.85 3.27 14.96 4.11 15.44 4.56C15.54 4.66 15.62 4.74 15.66 4.79C16.04 5.23 16.38 5.71 16.58 6.47C16.65 6.74 16.71 7.06 16.74 7.42C16.82 8.4 16.75 9.46 16.71 10C16.71 10.04 16.71 10.08 16.72 10.11C16.73 10.2 16.79 10.24 16.9 10.24C16.94 10.24 16.97 10.24 17 10.23C17.28 10.16 17.76 9.91 18.26 9.8C18.34 9.79 18.42 9.78 18.5 9.78C18.75 9.78 19 9.87 19.1 10.1L19.11 10.14L19.12 10.14L19.12 10.15C19.27 10.53 19.07 10.85 18.62 11.16C18.35 11.35 17.36 11.96 17.14 12.16C16.91 12.38 16.94 12.54 16.97 12.75C17 12.85 17.18 13.8 18.08 14.86C18.63 15.5 19.42 16.17 20.58 16.73C20.65 16.76 20.74 16.81 20.79 16.87C20.82 16.92 20.84 16.96 20.83 17C20.82 17.1 20.73 17.2 20.53 17.31Z\";\nexport var mdiSnowboard = \"M21.87 20.37C21.76 20.2 21.62 20.09 21.43 20.06C21.18 20 20.96 20.05 20.78 20.2C20.43 20.5 20.04 20.73 19.58 20.86C19.13 21 18.66 21 18.16 20.9L17.04 20.62L16 14.46L12.74 11.79L14.5 8.94C15.08 9.85 15.85 10.58 16.83 11.14C17.81 11.7 18.88 12 20.03 12V9.97C19.09 9.97 18.26 9.72 17.53 9.22S16.26 8.07 15.92 7.26L15.36 6.05C15.26 5.86 15.08 5.64 14.82 5.39C14.55 5.14 14.19 5 13.72 5H8.07L5.54 9L7.27 10.06L9.14 7H11.5L9 10.95C8.69 11.42 8.6 11.93 8.72 12.5L9.56 15.95L6.06 18.29L5.59 18.19C5.13 18.1 4.7 17.91 4.33 17.61C3.96 17.31 3.68 16.96 3.5 16.56C3.4 16.31 3.23 16.17 3 16.14C2.76 16.08 2.56 16.11 2.39 16.23S2.12 16.5 2.09 16.7C2.06 16.85 2.07 17 2.13 17.17C2.42 17.79 2.83 18.33 3.37 18.78C3.92 19.23 4.55 19.5 5.27 19.64L17.88 22.35C18.6 22.5 19.29 22.5 19.96 22.3C20.63 22.12 21.23 21.79 21.76 21.32C21.88 21.23 21.96 21.11 22 20.95C22 20.73 22 20.54 21.87 20.37M8.77 18.89L11.81 16.89L11.34 13.57L14.19 15.58L14.94 20.2L8.77 18.89M18 3C18 4.11 17.11 5 16 5S14 4.11 14 3 14.9 1 16 1 18 1.9 18 3Z\";\nexport var mdiSnowflake = \"M20.79,13.95L18.46,14.57L16.46,13.44V10.56L18.46,9.43L20.79,10.05L21.31,8.12L19.54,7.65L20,5.88L18.07,5.36L17.45,7.69L15.45,8.82L13,7.38V5.12L14.71,3.41L13.29,2L12,3.29L10.71,2L9.29,3.41L11,5.12V7.38L8.5,8.82L6.5,7.69L5.92,5.36L4,5.88L4.47,7.65L2.7,8.12L3.22,10.05L5.55,9.43L7.55,10.56V13.45L5.55,14.58L3.22,13.96L2.7,15.89L4.47,16.36L4,18.12L5.93,18.64L6.55,16.31L8.55,15.18L11,16.62V18.88L9.29,20.59L10.71,22L12,20.71L13.29,22L14.7,20.59L13,18.88V16.62L15.5,15.17L17.5,16.3L18.12,18.63L20,18.12L19.53,16.35L21.3,15.88L20.79,13.95M9.5,10.56L12,9.11L14.5,10.56V13.44L12,14.89L9.5,13.44V10.56Z\";\nexport var mdiSnowflakeAlert = \"M16.46,9.41L13,7.38V5.12L14.71,3.41L13.29,2L12,3.29L10.71,2L9.29,3.41L11,5.12V7.38L8.5,8.82L6.5,7.69L5.92,5.36L4,5.88L4.47,7.65L2.7,8.12L3.22,10.05L5.55,9.43L7.55,10.56V13.45L5.55,14.58L3.22,13.96L2.7,15.89L4.47,16.36L4,18.12L5.93,18.64L6.55,16.31L8.55,15.18L11,16.62V18.88L9.29,20.59L10.71,22L12,20.71L13.29,22L14.7,20.59L13,18.88V16.62L16.46,14.61M9.5,10.56L12,9.11L14.5,10.56V13.44L12,14.89L9.5,13.44M19,13V7H21V13H19M19,17V15H21V17H19Z\";\nexport var mdiSnowflakeCheck = \"M17.75 21.16L15 18.16L16.16 17L17.75 18.59L21.34 15L22.5 16.41L17.75 21.16M12 18C12 16.46 12.59 15.06 13.54 14L12 14.89L9.5 13.44V10.56L12 9.11L14.5 10.56V13.13C15.08 12.71 15.75 12.4 16.46 12.21V10.56L18.46 9.43L20.79 10.05L21.31 8.12L19.54 7.65L20 5.88L18.07 5.36L17.45 7.69L15.45 8.82L13 7.38V5.12L14.71 3.41L13.29 2L12 3.29L10.71 2L9.29 3.41L11 5.12V7.38L8.5 8.82L6.5 7.69L5.92 5.36L4 5.88L4.47 7.65L2.7 8.12L3.22 10.05L5.55 9.43L7.55 10.56V13.45L5.55 14.58L3.22 13.96L2.7 15.89L4.47 16.36L4 18.12L5.93 18.64L6.55 16.31L8.55 15.18L11 16.62V18.88L9.29 20.59L10.71 22L12 20.71L13.29 22L13.42 21.87C12.54 20.83 12 19.5 12 18Z\";\nexport var mdiSnowflakeMelt = \"M8 17.85C8 19.04 7.11 20 6 20S4 19.04 4 17.85C4 16.42 6 14 6 14S8 16.42 8 17.85M16.46 12V10.56L18.46 9.43L20.79 10.05L21.31 8.12L19.54 7.65L20 5.88L18.07 5.36L17.45 7.69L15.45 8.82L13 7.38V5.12L14.71 3.41L13.29 2L12 3.29L10.71 2L9.29 3.41L11 5.12V7.38L8.5 8.82L6.5 7.69L5.92 5.36L4 5.88L4.47 7.65L2.7 8.12L3.22 10.05L5.55 9.43L7.55 10.56V12H2V13H22V12H16.46M9.5 12V10.56L12 9.11L14.5 10.56V12H9.5M20 17.85C20 19.04 19.11 20 18 20S16 19.04 16 17.85C16 16.42 18 14 18 14S20 16.42 20 17.85M14 20.85C14 22.04 13.11 23 12 23S10 22.04 10 20.85C10 19.42 12 17 12 17S14 19.42 14 20.85Z\";\nexport var mdiSnowflakeOff = \"M11 5.12L9.29 3.41L10.71 2L12 3.29L13.29 2L14.71 3.41L13 5.12V7.38L15.45 8.82L17.45 7.69L18.07 5.36L20 5.88L19.54 7.65L21.31 8.12L20.79 10.05L18.46 9.43L16.46 10.56V13.26L14.5 11.3V10.56L12.74 9.54L10.73 7.53L11 7.38V5.12M18.46 14.57L16.87 13.67L19.55 16.35L21.3 15.88L20.79 13.95L18.46 14.57M13 16.62V18.88L14.7 20.59L13.29 22L12 20.71L10.71 22L9.29 20.59L11 18.88V16.62L8.55 15.18L6.55 16.31L5.93 18.64L4 18.12L4.47 16.36L2.7 15.89L3.22 13.96L5.55 14.58L7.55 13.45V10.56L5.55 9.43L3.22 10.05L2.7 8.12L4.47 7.65L4 5.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L14.1 16L13 16.62M12 14.89L12.63 14.5L9.5 11.39V13.44L12 14.89Z\";\nexport var mdiSnowflakeThermometer = \"M14.46 9.41L11 7.38V5.12L12.71 3.41L11.29 2L10 3.29L8.71 2L7.29 3.41L9 5.12V7.38L6.5 8.82L4.5 7.69L3.92 5.36L2 5.88L2.47 7.65L.7 8.12L1.22 10.05L3.55 9.43L5.55 10.56V13.45L3.55 14.58L1.22 13.96L.7 15.89L2.47 16.36L2 18.12L3.93 18.64L4.55 16.31L6.55 15.18L9 16.62V18.88L7.29 20.59L8.71 22L10 20.71L11.29 22L12.7 20.59L11 18.88V16.62L14.46 14.61M7.5 10.56L10 9.11L12.5 10.56V13.44L10 14.89L7.5 13.44M19 5C17.89 5 17 5.89 17 7V13.76C16.36 14.33 16 15.15 16 16C16 17.66 17.34 19 19 19S22 17.66 22 16C22 15.15 21.64 14.33 21 13.77V7C21 5.89 20.11 5 19 5M19 6C19.55 6 20 6.45 20 7V8H18V7C18 6.45 18.45 6 19 6\";\nexport var mdiSnowflakeVariant = \"M14.25,12L16.27,11H23L22,9H18.03L20.42,5.83L19.43,3.83L15.37,9.2L13.35,10.21L13.75,8L17.83,2.62L15.64,2.22L12,7L8.4,2.2L6.2,2.6L10.26,8L10.66,10.21L8.82,9.29L8.66,9.21L4.6,3.8L3.6,5.8L6,9H2L1,11H7.77L9.75,12L7.73,13H1L2,15H5.97L3.58,18.17L4.57,20.17L8.63,14.8L10.65,13.79L10.25,16L6.17,21.38L8.36,21.79L12,17L15.6,21.8L17.8,21.4L13.74,16L13.34,13.79L15.34,14.79L19.4,20.2L20.4,18.2L18,15H22L23,13H16.23\";\nexport var mdiSnowman = \"M17,17A5,5 0 0,1 12,22A5,5 0 0,1 7,17C7,15.5 7.65,14.17 8.69,13.25C8.26,12.61 8,11.83 8,11C8,10.86 8,10.73 8,10.59L5.04,8.87L4.83,8.71L2.29,9.39L2.03,8.43L4.24,7.84L2.26,6.69L2.76,5.82L4.74,6.97L4.15,4.75L5.11,4.5L5.8,7.04L6.04,7.14L8.73,8.69C9.11,8.15 9.62,7.71 10.22,7.42C9.5,6.87 9,6 9,5A3,3 0 0,1 12,2A3,3 0 0,1 15,5C15,6 14.5,6.87 13.78,7.42C14.38,7.71 14.89,8.15 15.27,8.69L17.96,7.14L18.2,7.04L18.89,4.5L19.85,4.75L19.26,6.97L21.24,5.82L21.74,6.69L19.76,7.84L21.97,8.43L21.71,9.39L19.17,8.71L18.96,8.87L16,10.59V11C16,11.83 15.74,12.61 15.31,13.25C16.35,14.17 17,15.5 17,17Z\";\nexport var mdiSnowmobile = \"M20.34 17.93L18.4 16C19.5 15.91 22.66 15.53 22.97 13.36C23 13.12 22.92 12.89 22.78 12.7C22.12 11.82 19.88 9.07 15 5H12V7H14L16 9L12 11L3 10L1 13L5.58 14.38L2.58 16.09C2.22 16.26 1 16.89 1 18.05C1 18.4 1 18.89 1.33 19.32C1.83 20 2.71 20 3 20H9C10.26 20 12.53 19.13 12.93 16H15.59L17.59 18H15V20H20C21.65 20 23 18.65 23 17H21C21 17.43 20.73 17.79 20.34 17.93M9 18H3.25C3.33 17.95 3.41 17.91 3.5 17.87L8.22 15.17L10.92 16C10.58 17.84 9.28 18 9 18Z\";\nexport var mdiSnowshoeing = \"M12.5 3.5C12.5 2.4 13.4 1.5 14.5 1.5S16.5 2.4 16.5 3.5 15.6 5.5 14.5 5.5 12.5 4.6 12.5 3.5M6.32 19.03L5.18 17.56L4 18.5L6.38 21.54C6.89 22.19 7.54 22.69 8.26 22.95C8.54 23.05 8.79 23 9 22.84C9.28 22.61 9.4 22.14 9.1 21.77C9 21.67 8.9 21.6 8.79 21.55C8.36 21.37 7.97 21.1 7.65 20.72L7.57 20.62L11 18.2L11.89 15L14 17V21.5H12V23H15.87C16.69 23 17.5 22.79 18.13 22.39C18.39 22.23 18.5 22 18.5 21.75C18.5 21.37 18.2 21 17.73 21C17.6 21 17.47 21.04 17.36 21.1C16.96 21.33 16.5 21.47 16 21.5V15.5L13.89 13.5L14.5 10.5C15.79 12 17.8 13 20 13V11C18.1 11 16.5 10 15.69 8.58L14.69 7C14.29 6.4 13.69 6 13 6C12.24 6 11.58 6.34 7 8.28V13H9V9.58L10.79 8.88L9.2 17L6.32 19.03Z\";\nexport var mdiSoccer = \"M16.93 17.12L16.13 15.76L17.59 11.39L19 10.92L20 11.67C20 11.7 20 11.75 20 11.81C20 11.88 20.03 11.94 20.03 12C20.03 13.97 19.37 15.71 18.06 17.21L16.93 17.12M9.75 15L8.38 10.97L12 8.43L15.62 10.97L14.25 15H9.75M12 20.03C11.12 20.03 10.29 19.89 9.5 19.61L8.81 18.1L9.47 17H14.58L15.19 18.1L14.5 19.61C13.71 19.89 12.88 20.03 12 20.03M5.94 17.21C5.41 16.59 4.95 15.76 4.56 14.75C4.17 13.73 3.97 12.81 3.97 12C3.97 11.94 4 11.88 4 11.81C4 11.75 4 11.7 4 11.67L5 10.92L6.41 11.39L7.87 15.76L7.07 17.12L5.94 17.21M11 5.29V6.69L7 9.46L5.66 9.04L5.24 7.68C5.68 7 6.33 6.32 7.19 5.66S8.87 4.57 9.65 4.35L11 5.29M14.35 4.35C15.13 4.57 15.95 5 16.81 5.66C17.67 6.32 18.32 7 18.76 7.68L18.34 9.04L17 9.47L13 6.7V5.29L14.35 4.35M4.93 4.93C3 6.89 2 9.25 2 12S3 17.11 4.93 19.07 9.25 22 12 22 17.11 21 19.07 19.07 22 14.75 22 12 21 6.89 19.07 4.93 14.75 2 12 2 6.89 3 4.93 4.93Z\";\nexport var mdiSoccerField = \"M4,4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4H4M4,6H11V8.13C9.24,8.59 8,10.18 8,12C8,13.82 9.24,15.41 11,15.87V18H4V16H7V8H4V6M13,6H20V8H17V16H20V18H13V15.87C14.76,15.41 16,13.82 16,12C16,10.18 14.76,8.59 13,8.13V6M4,10H5V14H4V10M19,10H20V14H19V10M13,10.27C13.62,10.63 14,11.29 14,12C14,12.71 13.62,13.37 13,13.73V10.27M11,10.27V13.73C10.38,13.37 10,12.71 10,12C10,11.29 10.38,10.63 11,10.27Z\";\nexport var mdiSocialDistance2Meters = \"M6 6C7.1 6 8 5.1 8 4S7.1 2 6 2 4 2.9 4 4 4.9 6 6 6M10 9.43C10 8.62 9.5 7.9 8.78 7.58C7.93 7.21 7 7 6 7S4.07 7.21 3.22 7.58C2.5 7.9 2 8.62 2 9.43V10H10V9.43M18 6C19.1 6 20 5.1 20 4S19.1 2 18 2 16 2.9 16 4 16.9 6 18 6M22 9.43C22 8.62 21.5 7.9 20.78 7.58C19.93 7.21 19 7 18 7S16.07 7.21 15.22 7.58C14.5 7.9 14 8.62 14 9.43V10H22V9.43M19 17V15L5 15V17L2 14L5 11V13L19 13V11L22 14L19 17M9 20.5V21H11V22H8V20.5C8 19.95 8.45 19.5 9 19.5H10V19H8V18H10C10.55 18 11 18.45 11 19V19.5C11 20.05 10.55 20.5 10 20.5H9M16 19V22H15V19H14.5V21H13.5V19H13V22H12V19C12 18.45 12.45 18 13 18H15C15.55 18 16 18.45 16 19Z\";\nexport var mdiSocialDistance6Feet = \"M6 6C7.1 6 8 5.1 8 4S7.1 2 6 2 4 2.9 4 4 4.9 6 6 6M10 9.43C10 8.62 9.5 7.9 8.78 7.58C7.93 7.21 7 7 6 7S4.07 7.21 3.22 7.58C2.5 7.9 2 8.62 2 9.43V10H10V9.43M18 6C19.1 6 20 5.1 20 4S19.1 2 18 2 16 2.9 16 4 16.9 6 18 6M22 9.43C22 8.62 21.5 7.9 20.78 7.58C19.93 7.21 19 7 18 7S16.07 7.21 15.22 7.58C14.5 7.9 14 8.62 14 9.43V10H22V9.43M19 17V15H5V17L2 14L5 11V13H19V11L22 14L19 17M10 19V18H7.5C7.22 18 7 18.22 7 18.5V21.5C7 21.78 7.22 22 7.5 22H9.5C9.78 22 10 21.78 10 21.5V20C10 19.72 9.78 19.5 9.5 19.5H8V19H10M9 20.5V21H8V20.5H9M17.5 19H16.5V22H15.5V19H14.5V18H17.5V19M12.5 19V19.5H13.5V20.5H12.5V22H11.5V18H14V19H12.5Z\";\nexport var mdiSofa = \"M12.5 7C12.5 5.89 13.39 5 14.5 5H18C19.1 5 20 5.9 20 7V9.16C18.84 9.57 18 10.67 18 11.97V14H12.5V7M6 11.96V14H11.5V7C11.5 5.89 10.61 5 9.5 5H6C4.9 5 4 5.9 4 7V9.15C5.16 9.56 6 10.67 6 11.96M20.66 10.03C19.68 10.19 19 11.12 19 12.12V15H5V12C5 10.9 4.11 10 3 10S1 10.9 1 12V17C1 18.1 1.9 19 3 19V21H5V19H19V21H21V19C22.1 19 23 18.1 23 17V12C23 10.79 21.91 9.82 20.66 10.03Z\";\nexport var mdiSofaOutline = \"M21 9V7C21 5.35 19.65 4 18 4H14C13.23 4 12.53 4.3 12 4.78C11.47 4.3 10.77 4 10 4H6C4.35 4 3 5.35 3 7V9C1.35 9 0 10.35 0 12V17C0 18.65 1.35 20 3 20V22H5V20H19V22H21V20C22.65 20 24 18.65 24 17V12C24 10.35 22.65 9 21 9M14 6H18C18.55 6 19 6.45 19 7V9.78C18.39 10.33 18 11.12 18 12V14H13V7C13 6.45 13.45 6 14 6M5 7C5 6.45 5.45 6 6 6H10C10.55 6 11 6.45 11 7V14H6V12C6 11.12 5.61 10.33 5 9.78V7M22 17C22 17.55 21.55 18 21 18H3C2.45 18 2 17.55 2 17V12C2 11.45 2.45 11 3 11S4 11.45 4 12V16H20V12C20 11.45 20.45 11 21 11S22 11.45 22 12V17Z\";\nexport var mdiSofaSingle = \"M5 9.15V7C5 5.9 5.9 5 7 5H17C18.1 5 19 5.9 19 7V9.16C17.84 9.57 17 10.67 17 11.97V14H7V11.96C7 10.67 6.16 9.56 5 9.15M20 10C18.9 10 18 10.9 18 12V15H6V12C6 10.9 5.11 10 4 10S2 10.9 2 12V17C2 18.1 2.9 19 4 19V21H6V19H18V21H20V19C21.1 19 22 18.1 22 17V12C22 10.9 21.1 10 20 10Z\";\nexport var mdiSofaSingleOutline = \"M19 9V7C19 5.35 17.65 4 16 4H8C6.35 4 5 5.35 5 7V9C3.35 9 2 10.35 2 12V17C2 18.65 3.35 20 5 20V22H7V20H17V22H19V20C20.65 20 22 18.65 22 17V12C22 10.35 20.65 9 19 9M7 7C7 6.45 7.45 6 8 6H16C16.55 6 17 6.45 17 7V9.78C16.39 10.33 16 11.12 16 12V14H8V12C8 11.12 7.61 10.33 7 9.78V7M20 17C20 17.55 19.55 18 19 18H5C4.45 18 4 17.55 4 17V12C4 11.45 4.45 11 5 11S6 11.45 6 12V16H18V12C18 11.45 18.45 11 19 11S20 11.45 20 12V17Z\";\nexport var mdiSolarPanel = \"M4,2H20A2,2 0 0,1 22,4V14A2,2 0 0,1 20,16H15V20H18V22H13V16H11V22H6V20H9V16H4A2,2 0 0,1 2,14V4A2,2 0 0,1 4,2M4,4V8H11V4H4M4,14H11V10H4V14M20,14V10H13V14H20M20,4H13V8H20V4Z\";\nexport var mdiSolarPanelLarge = \"M3,6H6V3H3V6M8,3V6H11V3H8M13,3V6H16V3H13M18,3V6H21V3H18M21,8H18V11H21V8M21,13H18V16H21V13M16,16V13H13V16H16M11,16V13H8V16H11M6,16V13H3V16H6M3,11H6V8H3V11M13,8V11H16V8H13M8,8V11H11V8H8M3,1H21A2,2 0 0,1 23,3V16A2,2 0 0,1 21,18H15V21H18V23H13V18H11V23H6V21H9V18H3A2,2 0 0,1 1,16V3A2,2 0 0,1 3,1Z\";\nexport var mdiSolarPower = \"M11.45,2V5.55L15,3.77L11.45,2M10.45,8L8,10.46L11.75,11.71L10.45,8M2,11.45L3.77,15L5.55,11.45H2M10,2H2V10C2.57,10.17 3.17,10.25 3.77,10.25C7.35,10.26 10.26,7.35 10.27,3.75C10.26,3.16 10.17,2.57 10,2M17,22V16H14L19,7V13H22L17,22Z\";\nexport var mdiSolarPowerVariant = \"M3.33 16H11V13H4L3.33 16M13 16H20.67L20 13H13V16M21.11 18H13V22H22L21.11 18M2 22H11V18H2.89L2 22M11 8H13V11H11V8M15.76 7.21L17.18 5.79L19.3 7.91L17.89 9.33L15.76 7.21M4.71 7.91L6.83 5.79L8.24 7.21L6.12 9.33L4.71 7.91M3 2H6V4H3V2M18 2H21V4H18V2M12 7C14.76 7 17 4.76 17 2H7C7 4.76 9.24 7 12 7Z\";\nexport var mdiSolarPowerVariantOutline = \"M20 12H4L2 22H22L20 12M18.36 14L18.76 16H13V14H18.36M11 14V16H5.24L5.64 14H11M4.84 18H11V20H4.44L4.84 18M13 20V18H19.16L19.56 20H13M11 8H13V11H11V8M15.76 7.21L17.18 5.79L19.3 7.91L17.89 9.33L15.76 7.21M4.71 7.91L6.83 5.79L8.24 7.21L6.12 9.33L4.71 7.91M3 2H6V4H3V2M18 2H21V4H18V2M12 7C14.76 7 17 4.76 17 2H15C15 3.65 13.65 5 12 5S9 3.65 9 2H7C7 4.76 9.24 7 12 7Z\";\nexport var mdiSolderingIron = \"M4.86 4.03L2.03 6.86L5.21 10.04V12.87L6.63 14.28L12.28 8.63L10.87 7.21H8.04L4.86 4.03M17 6V7.5C18 7.5 18.85 8.33 18.85 9.35C18.85 10.37 18 11.2 17 11.2V12.7C19.24 12.7 21 14.53 21 16.77V21H22.5V16.76C22.5 14.54 21.22 12.62 19.35 11.73C19.97 11.12 20.35 10.28 20.35 9.35C20.35 7.5 18.85 6 17 6M11.93 11.1L9.1 13.93L14.05 18.88L14.76 18.17L16.88 20.29L19 21L18.29 18.88L16.17 16.76L16.88 16.05L11.93 11.1Z\";\nexport var mdiSolid = \"M0,0H24V24H0\";\nexport var mdiSonyPlaystation = \"M9.5,4.27C10.88,4.53 12.9,5.14 14,5.5C16.75,6.45 17.69,7.63 17.69,10.29C17.69,12.89 16.09,13.87 14.05,12.89V8.05C14.05,7.5 13.95,6.97 13.41,6.82C13,6.69 12.76,7.07 12.76,7.63V19.73L9.5,18.69V4.27M13.37,17.62L18.62,15.75C19.22,15.54 19.31,15.24 18.83,15.08C18.34,14.92 17.47,14.97 16.87,15.18L13.37,16.41V14.45L13.58,14.38C13.58,14.38 14.59,14 16,13.87C17.43,13.71 19.17,13.89 20.53,14.4C22.07,14.89 22.25,15.61 21.86,16.1C21.46,16.6 20.5,16.95 20.5,16.95L13.37,19.5V17.62M3.5,17.42C1.93,17 1.66,16.05 2.38,15.5C3.05,15 4.18,14.65 4.18,14.65L8.86,13V14.88L5.5,16.09C4.9,16.3 4.81,16.6 5.29,16.76C5.77,16.92 6.65,16.88 7.24,16.66L8.86,16.08V17.77L8.54,17.83C6.92,18.09 5.2,18 3.5,17.42Z\";\nexport var mdiSort = \"M18 21L14 17H17V7H14L18 3L22 7H19V17H22M2 19V17H12V19M2 13V11H9V13M2 7V5H6V7H2Z\";\nexport var mdiSortAlphabeticalAscending = \"M19 17H22L18 21L14 17H17V3H19M11 13V15L7.67 19H11V21H5V19L8.33 15H5V13M9 3H7C5.9 3 5 3.9 5 5V11H7V9H9V11H11V5C11 3.9 10.11 3 9 3M9 7H7V5H9Z\";\nexport var mdiSortAlphabeticalAscendingVariant = \"M9.25 5L12.5 1.75L15.75 5H9.25M8.89 14.3H6L5.28 17H2.91L6 7H9L12.13 17H9.67L8.89 14.3M6.33 12.68H8.56L7.93 10.56L7.67 9.59L7.42 8.63H7.39L7.17 9.6L6.93 10.58L6.33 12.68M13.05 17V15.74L17.8 8.97V8.91H13.5V7H20.73V8.34L16.09 15V15.08H20.8V17H13.05Z\";\nexport var mdiSortAlphabeticalDescending = \"M19 7H22L18 3L14 7H17V21H19M11 13V15L7.67 19H11V21H5V19L8.33 15H5V13M9 3H7C5.9 3 5 3.9 5 5V11H7V9H9V11H11V5C11 3.9 10.11 3 9 3M9 7H7V5H9Z\";\nexport var mdiSortAlphabeticalDescendingVariant = \"M15.75 19L12.5 22.25L9.25 19H15.75M8.89 14.3H6L5.28 17H2.91L6 7H9L12.13 17H9.67L8.89 14.3M6.33 12.68H8.56L7.93 10.56L7.67 9.59L7.42 8.63H7.39L7.17 9.6L6.93 10.58L6.33 12.68M13.05 17V15.74L17.8 8.97V8.91H13.5V7H20.73V8.34L16.09 15V15.08H20.8V17H13.05Z\";\nexport var mdiSortAlphabeticalVariant = \"M9.25,5L12.5,1.75L15.75,5H9.25M15.75,19L12.5,22.25L9.25,19H15.75M8.89,14.3H6L5.28,17H2.91L6,7H9L12.13,17H9.67L8.89,14.3M6.33,12.68H8.56L7.93,10.56L7.67,9.59L7.42,8.63H7.39L7.17,9.6L6.93,10.58L6.33,12.68M13.05,17V15.74L17.8,8.97V8.91H13.5V7H20.73V8.34L16.09,15V15.08H20.8V17H13.05Z\";\nexport var mdiSortAscending = \"M19 17H22L18 21L14 17H17V3H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z\";\nexport var mdiSortBoolAscending = \"M19 17H22L18 21L14 17H17V3H19V17M7 3C4.79 3 3 4.79 3 7S4.79 11 7 11 11 9.21 11 7 9.21 3 7 3M7 9C5.9 9 5 8.1 5 7S5.9 5 7 5 9 5.9 9 7 8.1 9 7 9M7 13C4.79 13 3 14.79 3 17S4.79 21 7 21 11 19.21 11 17 9.21 13 7 13Z\";\nexport var mdiSortBoolAscendingVariant = \"M19 17H22L18 21L14 17H17V3H19V17M9 13H5C3.89 13 3 13.89 3 15V19C3 20.11 3.89 21 5 21H9C10.11 21 11 20.11 11 19V15C11 13.89 10.11 13 9 13M6.27 19.5L3.74 16.95L4.81 15.9L6.28 17.39L9.2 14.5L10.26 15.55L6.27 19.5M9 3H5C3.89 3 3 3.89 3 5V9C3 10.11 3.89 11 5 11H9C10.11 11 11 10.11 11 9V5C11 3.89 10.11 3 9 3M9 9H5V5H9V9Z\";\nexport var mdiSortBoolDescending = \"M19 7H22L18 3L14 7H17V21H19M5 7C5 8.1 5.9 9 7 9C8.1 9 9 8.1 9 7C9 5.9 8.1 5 7 5C5.9 5 5 5.9 5 7M7 3C9.21 3 11 4.79 11 7C11 9.21 9.21 11 7 11C4.79 11 3 9.21 3 7C3 4.79 4.79 3 7 3M7 13C4.79 13 3 14.79 3 17C3 19.21 4.79 21 7 21C9.21 21 11 19.21 11 17C11 14.79 9.21 13 7 13Z\";\nexport var mdiSortBoolDescendingVariant = \"M19 7H22L18 3L14 7H17V21H19M5 13C3.89 13 3 13.89 3 15V19C3 20.11 3.89 21 5 21H9C10.11 21 11 20.11 11 19V15C11 13.89 10.11 13 9 13M9.2 14.5L10.26 15.55L6.27 19.5L3.74 16.95L4.81 15.9L6.28 17.39M5 3C3.89 3 3 3.89 3 5V9C3 10.11 3.89 11 5 11H9C10.11 11 11 10.11 11 9V5C11 3.89 10.11 3 9 3M5 5H9V9H5Z\";\nexport var mdiSortCalendarAscending = \"M21 17H24L20 21L16 17H19V3H21V17M8 16H11V13H8V16M13 5H12V3H10V5H6V3H4V5H3C1.89 5 1 5.89 1 7V18C1 19.11 1.89 20 3 20H13C14.11 20 15 19.11 15 18V7C15 5.89 14.11 5 13 5M3 18L3 11H13L13 18L3 18Z\";\nexport var mdiSortCalendarDescending = \"M19 7H16L20 3L24 7H21V21H19V7M8 16H11V13H8V16M13 5H12V3H10V5H6V3H4V5H3C1.89 5 1 5.89 1 7V18C1 19.11 1.89 20 3 20H13C14.11 20 15 19.11 15 18V7C15 5.89 14.11 5 13 5M3 18L3 11H13L13 18L3 18Z\";\nexport var mdiSortClockAscending = \"M20 17H23L19 21L15 17H18V3H20V17M8 5C4.14 5 1 8.13 1 12C1 15.87 4.13 19 8 19C11.86 19 15 15.87 15 12C15 8.13 11.87 5 8 5M10.19 14.53L7 12.69V9H8.5V11.82L10.94 13.23L10.19 14.53Z\";\nexport var mdiSortClockAscendingOutline = \"M20 17H23L19 21L15 17H18V3H20V17M8 5C4.14 5 1 8.13 1 12C1 15.87 4.13 19 8 19C11.86 19 15 15.87 15 12C15 8.13 11.87 5 8 5M8 7.15C10.67 7.15 12.85 9.32 12.85 12C12.85 14.68 10.68 16.85 8 16.85C5.32 16.85 3.15 14.68 3.15 12C3.15 9.32 5.32 7.15 8 7.15M7 9V12.69L10.19 14.53L10.94 13.23L8.5 11.82V9\";\nexport var mdiSortClockDescending = \"M18 7H15L19 3L23 7H20V21H18V7M8 5C4.14 5 1 8.13 1 12C1 15.87 4.13 19 8 19C11.86 19 15 15.87 15 12C15 8.13 11.87 5 8 5M10.19 14.53L7 12.69V9H8.5V11.82L10.94 13.23L10.19 14.53Z\";\nexport var mdiSortClockDescendingOutline = \"M18 7H15L19 3L23 7H20V21H18V7M8 5C4.14 5 1 8.13 1 12C1 15.87 4.13 19 8 19C11.86 19 15 15.87 15 12C15 8.13 11.87 5 8 5M8 7.15C10.67 7.15 12.85 9.32 12.85 12C12.85 14.68 10.68 16.85 8 16.85C5.32 16.85 3.15 14.68 3.15 12C3.15 9.32 5.32 7.15 8 7.15M7 9V12.69L10.19 14.53L10.94 13.23L8.5 11.82V9\";\nexport var mdiSortDescending = \"M19 7H22L18 3L14 7H17V21H19M2 17H12V19H2M6 5V7H2V5M2 11H9V13H2V11Z\";\nexport var mdiSortNumericAscending = \"M19 17H22L18 21L14 17H17V3H19V17M9 13H7C5.9 13 5 13.9 5 15V16C5 17.11 5.9 18 7 18H9V19H5V21H9C10.11 21 11 20.11 11 19V15C11 13.9 10.11 13 9 13M9 16H7V15H9V16M9 3H7C5.9 3 5 3.9 5 5V9C5 10.11 5.9 11 7 11H9C10.11 11 11 10.11 11 9V5C11 3.9 10.11 3 9 3M9 9H7V5H9V9Z\";\nexport var mdiSortNumericAscendingVariant = \"M7.78 7C9.08 7.04 10 7.53 10.57 8.46C11.13 9.4 11.41 10.56 11.39 11.95C11.4 13.5 11.09 14.73 10.5 15.62C9.88 16.5 8.95 16.97 7.71 17C6.45 16.96 5.54 16.5 4.96 15.56C4.38 14.63 4.09 13.45 4.09 12S4.39 9.36 5 8.44C5.59 7.5 6.5 7.04 7.78 7M7.75 8.63C7.31 8.63 6.96 8.9 6.7 9.46C6.44 10 6.32 10.87 6.32 12C6.31 13.15 6.44 14 6.69 14.54C6.95 15.1 7.31 15.37 7.77 15.37C8.69 15.37 9.16 14.24 9.17 12C9.17 9.77 8.7 8.65 7.75 8.63M13.33 17V15.22L13.76 15.24L14.3 15.22L15.34 15.03C15.68 14.92 16 14.78 16.26 14.58C16.59 14.35 16.86 14.08 17.07 13.76C17.29 13.45 17.44 13.12 17.53 12.78L17.5 12.77C17.05 13.19 16.38 13.4 15.47 13.41C14.62 13.4 13.91 13.15 13.34 12.65S12.5 11.43 12.46 10.5C12.47 9.5 12.81 8.69 13.47 8.03C14.14 7.37 15 7.03 16.12 7C17.37 7.04 18.29 7.45 18.88 8.24C19.47 9 19.76 10 19.76 11.19C19.75 12.15 19.61 13 19.32 13.76C19.03 14.5 18.64 15.13 18.12 15.64C17.66 16.06 17.11 16.38 16.47 16.61C15.83 16.83 15.12 16.96 14.34 17H13.33M16.06 8.63C15.65 8.64 15.32 8.8 15.06 9.11C14.81 9.42 14.68 9.84 14.68 10.36C14.68 10.8 14.8 11.16 15.03 11.46C15.27 11.77 15.63 11.92 16.11 11.93C16.43 11.93 16.7 11.86 16.92 11.74C17.14 11.61 17.3 11.46 17.41 11.28C17.5 11.17 17.53 10.97 17.53 10.71C17.54 10.16 17.43 9.69 17.2 9.28C16.97 8.87 16.59 8.65 16.06 8.63M9.25 5L12.5 1.75L15.75 5H9.25\";\nexport var mdiSortNumericDescending = \"M19 7H22L18 3L14 7H17V21H19M9 21H5V19H9V18H7C5.9 18 5 17.11 5 16V15C5 13.9 5.9 13 7 13H9C10.11 13 11 13.9 11 15V19C11 20.11 10.11 21 9 21M9 15H7V16H9M7 3H9C10.11 3 11 3.9 11 5V9C11 10.11 10.11 11 9 11H7C5.9 11 5 10.11 5 9V5C5 3.9 5.9 3 7 3M7 9H9V5H7Z\";\nexport var mdiSortNumericDescendingVariant = \"M7.78 7C9.08 7.04 10 7.53 10.57 8.46C11.13 9.4 11.41 10.56 11.39 11.95C11.4 13.5 11.09 14.73 10.5 15.62C9.88 16.5 8.95 16.97 7.71 17C6.45 16.96 5.54 16.5 4.96 15.56C4.38 14.63 4.09 13.45 4.09 12S4.39 9.36 5 8.44C5.59 7.5 6.5 7.04 7.78 7M7.75 8.63C7.31 8.63 6.96 8.9 6.7 9.46C6.44 10 6.32 10.87 6.32 12C6.31 13.15 6.44 14 6.69 14.54C6.95 15.1 7.31 15.37 7.77 15.37C8.69 15.37 9.16 14.24 9.17 12C9.17 9.77 8.7 8.65 7.75 8.63M13.33 17V15.22L13.76 15.24L14.3 15.22L15.34 15.03C15.68 14.92 16 14.78 16.26 14.58C16.59 14.35 16.86 14.08 17.07 13.76C17.29 13.45 17.44 13.12 17.53 12.78L17.5 12.77C17.05 13.19 16.38 13.4 15.47 13.41C14.62 13.4 13.91 13.15 13.34 12.65S12.5 11.43 12.46 10.5C12.47 9.5 12.81 8.69 13.47 8.03C14.14 7.37 15 7.03 16.12 7C17.37 7.04 18.29 7.45 18.88 8.24C19.47 9 19.76 10 19.76 11.19C19.75 12.15 19.61 13 19.32 13.76C19.03 14.5 18.64 15.13 18.12 15.64C17.66 16.06 17.11 16.38 16.47 16.61C15.83 16.83 15.12 16.96 14.34 17H13.33M16.06 8.63C15.65 8.64 15.32 8.8 15.06 9.11C14.81 9.42 14.68 9.84 14.68 10.36C14.68 10.8 14.8 11.16 15.03 11.46C15.27 11.77 15.63 11.92 16.11 11.93C16.43 11.93 16.7 11.86 16.92 11.74C17.14 11.61 17.3 11.46 17.41 11.28C17.5 11.17 17.53 10.97 17.53 10.71C17.54 10.16 17.43 9.69 17.2 9.28C16.97 8.87 16.59 8.65 16.06 8.63M15.75 19L12.5 22.25L9.25 19H15.75Z\";\nexport var mdiSortNumericVariant = \"M7.78,7C9.08,7.04 10,7.53 10.57,8.46C11.13,9.4 11.41,10.56 11.39,11.95C11.4,13.5 11.09,14.73 10.5,15.62C9.88,16.5 8.95,16.97 7.71,17C6.45,16.96 5.54,16.5 4.96,15.56C4.38,14.63 4.09,13.45 4.09,12C4.09,10.55 4.39,9.36 5,8.44C5.59,7.5 6.5,7.04 7.78,7M7.75,8.63C7.31,8.63 6.96,8.9 6.7,9.46C6.44,10 6.32,10.87 6.32,12C6.31,13.15 6.44,14 6.69,14.54C6.95,15.1 7.31,15.37 7.77,15.37C8.69,15.37 9.16,14.24 9.17,12C9.17,9.77 8.7,8.65 7.75,8.63M13.33,17V15.22L13.76,15.24L14.3,15.22L15.34,15.03C15.68,14.92 16,14.78 16.26,14.58C16.59,14.35 16.86,14.08 17.07,13.76C17.29,13.45 17.44,13.12 17.53,12.78L17.5,12.77C17.05,13.19 16.38,13.4 15.47,13.41C14.62,13.4 13.91,13.15 13.34,12.65C12.77,12.15 12.5,11.43 12.46,10.5C12.47,9.5 12.81,8.69 13.47,8.03C14.14,7.37 15,7.03 16.12,7C17.37,7.04 18.29,7.45 18.88,8.24C19.47,9 19.76,10 19.76,11.19C19.75,12.15 19.61,13 19.32,13.76C19.03,14.5 18.64,15.13 18.12,15.64C17.66,16.06 17.11,16.38 16.47,16.61C15.83,16.83 15.12,16.96 14.34,17H13.33M16.06,8.63C15.65,8.64 15.32,8.8 15.06,9.11C14.81,9.42 14.68,9.84 14.68,10.36C14.68,10.8 14.8,11.16 15.03,11.46C15.27,11.77 15.63,11.92 16.11,11.93C16.43,11.93 16.7,11.86 16.92,11.74C17.14,11.61 17.3,11.46 17.41,11.28C17.5,11.17 17.53,10.97 17.53,10.71C17.54,10.16 17.43,9.69 17.2,9.28C16.97,8.87 16.59,8.65 16.06,8.63M9.25,5L12.5,1.75L15.75,5H9.25M15.75,19L12.5,22.25L9.25,19H15.75Z\";\nexport var mdiSortReverseVariant = \"M3 11H15V13H3M3 18V16H21V18M3 6H9V8H3Z\";\nexport var mdiSortVariant = \"M3,13H15V11H3M3,6V8H21V6M3,18H9V16H3V18Z\";\nexport var mdiSortVariantLock = \"M21.8 16V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16M20.5 16H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V16M3 13V11H15V13H3M3 6H21V8H3V6M3 18V16H9V18H3\";\nexport var mdiSortVariantLockOpen = \"M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V13.5C16.2 12.1 17.6 11 19 11S21.8 12.1 21.8 13.5V14H20.5V13.5C20.5 12.7 19.8 12.2 19 12.2S17.5 12.7 17.5 13.5V16H21.8C22.4 16 23 16.6 23 17.3M3 13V11H15V13H3M3 6H21V8H3V6M3 18V16H9V18H3\";\nexport var mdiSortVariantOff = \"M20.84 22.73L11.11 13H3V11H9.11L6.11 8H3V6H4.11L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M15 11H14.2L15 11.8V11M21 8V6H9.2L11.2 8H21M3 18H9V16H3V18Z\";\nexport var mdiSortVariantRemove = \"M3 13H15V11H3M3 6V8H21V6M3 18H9V16H3V18M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.46L22.54 16.88\";\nexport var mdiSoundbar = \"M4 8C2.9 8 2 8.9 2 10V14C2 15.11 2.9 16 4 16H20C21.11 16 22 15.11 22 14V10C22 8.9 21.11 8 20 8M9 10C10.11 10 11 10.9 11 12C11 13.11 10.11 14 9 14C7.9 14 7 13.11 7 12C7 10.9 7.9 10 9 10M15 10C16.11 10 17 10.9 17 12C17 13.11 16.11 14 15 14C13.9 14 13 13.11 13 12C13 10.9 13.9 10 15 10M5 11C5.55 11 6 11.45 6 12C6 12.55 5.55 13 5 13C4.45 13 4 12.55 4 12C4 11.45 4.45 11 5 11M9 11C8.45 11 8 11.45 8 12C8 12.55 8.45 13 9 13C9.55 13 10 12.55 10 12C10 11.45 9.55 11 9 11M15 11C14.45 11 14 11.45 14 12C14 12.55 14.45 13 15 13C15.55 13 16 12.55 16 12C16 11.45 15.55 11 15 11M19 11C19.55 11 20 11.45 20 12C20 12.55 19.55 13 19 13C18.45 13 18 12.55 18 12C18 11.45 18.45 11 19 11Z\";\nexport var mdiSoundcloud = \"M11.56,8.87V17H20.32V17C22.17,16.87 23,15.73 23,14.33C23,12.85 21.88,11.66 20.38,11.66C20,11.66 19.68,11.74 19.35,11.88C19.11,9.54 17.12,7.71 14.67,7.71C13.5,7.71 12.39,8.15 11.56,8.87M10.68,9.89C10.38,9.71 10.06,9.57 9.71,9.5V17H11.1V9.34C10.95,9.5 10.81,9.7 10.68,9.89M8.33,9.35V17H9.25V9.38C9.06,9.35 8.87,9.34 8.67,9.34C8.55,9.34 8.44,9.34 8.33,9.35M6.5,10V17H7.41V9.54C7.08,9.65 6.77,9.81 6.5,10M4.83,12.5C4.77,12.5 4.71,12.44 4.64,12.41V17H5.56V10.86C5.19,11.34 4.94,11.91 4.83,12.5M2.79,12.22V16.91C3,16.97 3.24,17 3.5,17H3.72V12.14C3.64,12.13 3.56,12.12 3.5,12.12C3.24,12.12 3,12.16 2.79,12.22M1,14.56C1,15.31 1.34,15.97 1.87,16.42V12.71C1.34,13.15 1,13.82 1,14.56Z\";\nexport var mdiSourceBranch = \"M13,14C9.64,14 8.54,15.35 8.18,16.24C9.25,16.7 10,17.76 10,19A3,3 0 0,1 7,22A3,3 0 0,1 4,19C4,17.69 4.83,16.58 6,16.17V7.83C4.83,7.42 4,6.31 4,5A3,3 0 0,1 7,2A3,3 0 0,1 10,5C10,6.31 9.17,7.42 8,7.83V13.12C8.88,12.47 10.16,12 12,12C14.67,12 15.56,10.66 15.85,9.77C14.77,9.32 14,8.25 14,7A3,3 0 0,1 17,4A3,3 0 0,1 20,7C20,8.34 19.12,9.5 17.91,9.86C17.65,11.29 16.68,14 13,14M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M7,4A1,1 0 0,0 6,5A1,1 0 0,0 7,6A1,1 0 0,0 8,5A1,1 0 0,0 7,4M17,6A1,1 0 0,0 16,7A1,1 0 0,0 17,8A1,1 0 0,0 18,7A1,1 0 0,0 17,6Z\";\nexport var mdiSourceBranchCheck = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M16.75 21.16L14 18.16L15.16 17L16.75 18.59L20.34 15L21.5 16.41L16.75 21.16\";\nexport var mdiSourceBranchMinus = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M14 17V19H22V17H14Z\";\nexport var mdiSourceBranchPlus = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiSourceBranchRefresh = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M18 14C19.1 14 20.1 14.4 20.8 15.2L22 14V18H18L19.8 16.2C19.3 15.8 18.7 15.5 18 15.5C16.6 15.5 15.5 16.6 15.5 18S16.6 20.5 18 20.5C18.8 20.5 19.5 20.1 20 19.5H21.7C21.1 21 19.7 22 18 22C15.8 22 14 20.2 14 18S15.8 14 18 14Z\";\nexport var mdiSourceBranchRemove = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M20.12 14.46L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88L20.12 14.46Z\";\nexport var mdiSourceBranchSync = \"M13 14C9.64 14 8.54 15.35 8.18 16.24C9.25 16.7 10 17.76 10 19C10 20.66 8.66 22 7 22S4 20.66 4 19C4 17.69 4.83 16.58 6 16.17V7.83C4.83 7.42 4 6.31 4 5C4 3.34 5.34 2 7 2S10 3.34 10 5C10 6.31 9.17 7.42 8 7.83V13.12C8.88 12.47 10.16 12 12 12C14.67 12 15.56 10.66 15.85 9.77C14.77 9.32 14 8.25 14 7C14 5.34 15.34 4 17 4S20 5.34 20 7C20 8.34 19.12 9.5 17.91 9.86C17.65 11.29 16.68 14 13 14M7 18C6.45 18 6 18.45 6 19S6.45 20 7 20 8 19.55 8 19 7.55 18 7 18M7 4C6.45 4 6 4.45 6 5S6.45 6 7 6 8 5.55 8 5 7.55 4 7 4M17 6C16.45 6 16 6.45 16 7S16.45 8 17 8 18 7.55 18 7 17.55 6 17 6M18 13V14.5C20.21 14.5 22 16.29 22 18.5C22 19.32 21.75 20.08 21.33 20.71L20.24 19.62C20.41 19.28 20.5 18.9 20.5 18.5C20.5 17.12 19.38 16 18 16V17.5L15.75 15.25L15.72 15.22C15.78 15.17 15.85 15.13 18 13M18 24V22.5C15.79 22.5 14 20.71 14 18.5C14 17.68 14.25 16.92 14.67 16.29L15.76 17.38C15.59 17.72 15.5 18.1 15.5 18.5C15.5 19.88 16.62 21 18 21V19.5L20.25 21.75L20.28 21.78C20.22 21.83 20.15 21.87 18 24\";\nexport var mdiSourceCommit = \"M17,12C17,14.42 15.28,16.44 13,16.9V21H11V16.9C8.72,16.44 7,14.42 7,12C7,9.58 8.72,7.56 11,7.1V3H13V7.1C15.28,7.56 17,9.58 17,12M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiSourceCommitEnd = \"M17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12C7,9.58 8.72,7.56 11,7.1V3H13V7.1C15.28,7.56 17,9.58 17,12M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiSourceCommitEndLocal = \"M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M11,5V3H13V5H11Z\";\nexport var mdiSourceCommitLocal = \"M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M11,5V3H13V5H11M11,21V19H13V21H11Z\";\nexport var mdiSourceCommitNextLocal = \"M17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12C7,9.58 8.72,7.56 11,7.1V3H13V7.1C15.28,7.56 17,9.58 17,12M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M11,21V19H13V21H11Z\";\nexport var mdiSourceCommitStart = \"M12,7A5,5 0 0,1 17,12C17,14.42 15.28,16.44 13,16.9V21H11V16.9C8.72,16.44 7,14.42 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\";\nexport var mdiSourceCommitStartNextLocal = \"M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M11,21V19H13V21H11Z\";\nexport var mdiSourceFork = \"M6,2A3,3 0 0,1 9,5C9,6.28 8.19,7.38 7.06,7.81C7.15,8.27 7.39,8.83 8,9.63C9,10.92 11,12.83 12,14.17C13,12.83 15,10.92 16,9.63C16.61,8.83 16.85,8.27 16.94,7.81C15.81,7.38 15,6.28 15,5A3,3 0 0,1 18,2A3,3 0 0,1 21,5C21,6.32 20.14,7.45 18.95,7.85C18.87,8.37 18.64,9 18,9.83C17,11.17 15,13.08 14,14.38C13.39,15.17 13.15,15.73 13.06,16.19C14.19,16.62 15,17.72 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.72 9.81,16.62 10.94,16.19C10.85,15.73 10.61,15.17 10,14.38C9,13.08 7,11.17 6,9.83C5.36,9 5.13,8.37 5.05,7.85C3.86,7.45 3,6.32 3,5A3,3 0 0,1 6,2M6,4A1,1 0 0,0 5,5A1,1 0 0,0 6,6A1,1 0 0,0 7,5A1,1 0 0,0 6,4M18,4A1,1 0 0,0 17,5A1,1 0 0,0 18,6A1,1 0 0,0 19,5A1,1 0 0,0 18,4M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z\";\nexport var mdiSourceMerge = \"M7,3A3,3 0 0,1 10,6C10,7.29 9.19,8.39 8.04,8.81C8.58,13.81 13.08,14.77 15.19,14.96C15.61,13.81 16.71,13 18,13A3,3 0 0,1 21,16A3,3 0 0,1 18,19C16.69,19 15.57,18.16 15.16,17C10.91,16.8 9.44,15.19 8,13.39V15.17C9.17,15.58 10,16.69 10,18A3,3 0 0,1 7,21A3,3 0 0,1 4,18C4,16.69 4.83,15.58 6,15.17V8.83C4.83,8.42 4,7.31 4,6A3,3 0 0,1 7,3M7,5A1,1 0 0,0 6,6A1,1 0 0,0 7,7A1,1 0 0,0 8,6A1,1 0 0,0 7,5M7,17A1,1 0 0,0 6,18A1,1 0 0,0 7,19A1,1 0 0,0 8,18A1,1 0 0,0 7,17M18,15A1,1 0 0,0 17,16A1,1 0 0,0 18,17A1,1 0 0,0 19,16A1,1 0 0,0 18,15Z\";\nexport var mdiSourcePull = \"M6,3A3,3 0 0,1 9,6C9,7.31 8.17,8.42 7,8.83V15.17C8.17,15.58 9,16.69 9,18A3,3 0 0,1 6,21A3,3 0 0,1 3,18C3,16.69 3.83,15.58 5,15.17V8.83C3.83,8.42 3,7.31 3,6A3,3 0 0,1 6,3M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M21,18A3,3 0 0,1 18,21A3,3 0 0,1 15,18C15,16.69 15.83,15.58 17,15.17V7H15V10.25L10.75,6L15,1.75V5H17A2,2 0 0,1 19,7V15.17C20.17,15.58 21,16.69 21,18M18,17A1,1 0 0,0 17,18A1,1 0 0,0 18,19A1,1 0 0,0 19,18A1,1 0 0,0 18,17Z\";\nexport var mdiSourceRepository = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12.75,13.5C15.5,13.5 16.24,11.47 16.43,10.4C17.34,10.11 18,9.26 18,8.25C18,7 17,6 15.75,6C14.5,6 13.5,7 13.5,8.25C13.5,9.19 14.07,10 14.89,10.33C14.67,11 14,12 12,12C10.62,12 9.66,12.35 9,12.84V8.87C9.87,8.56 10.5,7.73 10.5,6.75C10.5,5.5 9.5,4.5 8.25,4.5C7,4.5 6,5.5 6,6.75C6,7.73 6.63,8.56 7.5,8.87V15.13C6.63,15.44 6,16.27 6,17.25C6,18.5 7,19.5 8.25,19.5C9.5,19.5 10.5,18.5 10.5,17.25C10.5,16.32 9.94,15.5 9.13,15.18C9.41,14.5 10.23,13.5 12.75,13.5M8.25,16.5A0.75,0.75 0 0,1 9,17.25A0.75,0.75 0 0,1 8.25,18A0.75,0.75 0 0,1 7.5,17.25A0.75,0.75 0 0,1 8.25,16.5M8.25,6A0.75,0.75 0 0,1 9,6.75A0.75,0.75 0 0,1 8.25,7.5A0.75,0.75 0 0,1 7.5,6.75A0.75,0.75 0 0,1 8.25,6M15.75,7.5A0.75,0.75 0 0,1 16.5,8.25A0.75,0.75 0 0,1 15.75,9A0.75,0.75 0 0,1 15,8.25A0.75,0.75 0 0,1 15.75,7.5Z\";\nexport var mdiSourceRepositoryMultiple = \"M8,0H20A2,2 0 0,1 22,2V18A2,2 0 0,1 20,20H8A2,2 0 0,1 6,18V2A2,2 0 0,1 8,0M14.75,11.5C17.5,11.5 18.24,9.47 18.43,8.4C19.34,8.11 20,7.26 20,6.25C20,5 19,4 17.75,4C16.5,4 15.5,5 15.5,6.25C15.5,7.19 16.07,8 16.89,8.33C16.67,9 16,10 14,10C12.62,10 11.66,10.35 11,10.84V6.87C11.87,6.56 12.5,5.73 12.5,4.75C12.5,3.5 11.5,2.5 10.25,2.5C9,2.5 8,3.5 8,4.75C8,5.73 8.63,6.56 9.5,6.87V13.13C8.63,13.44 8,14.27 8,15.25C8,16.5 9,17.5 10.25,17.5C11.5,17.5 12.5,16.5 12.5,15.25C12.5,14.32 11.94,13.5 11.13,13.18C11.41,12.5 12.23,11.5 14.75,11.5M10.25,14.5A0.75,0.75 0 0,1 11,15.25A0.75,0.75 0 0,1 10.25,16A0.75,0.75 0 0,1 9.5,15.25A0.75,0.75 0 0,1 10.25,14.5M10.25,4A0.75,0.75 0 0,1 11,4.75A0.75,0.75 0 0,1 10.25,5.5A0.75,0.75 0 0,1 9.5,4.75A0.75,0.75 0 0,1 10.25,4M17.75,5.5A0.75,0.75 0 0,1 18.5,6.25A0.75,0.75 0 0,1 17.75,7A0.75,0.75 0 0,1 17,6.25A0.75,0.75 0 0,1 17.75,5.5M16,22V24H4A2,2 0 0,1 2,22V6H4V22H16Z\";\nexport var mdiSoySauce = \"M13.9,7.5C13.9,6.8 14.1,6.3 14.2,6H14.8L15.7,3.5H16.5V2H7.5V3.5H8.3L9.2,6H9.8C10,6.3 10.1,6.8 10.1,7.5C10.1,8.8 6,13.7 6,17.6V19.6C6,21 8.7,21.9 12,21.9C15.3,21.9 18,21 18,19.6V17.6C18,13.7 13.9,8.8 13.9,7.5M12,15A2,2 0 0,1 10,13A2,2 0 0,1 12,11A2,2 0 0,1 14,13A2,2 0 0,1 12,15Z\";\nexport var mdiSoySauceOff = \"M22.1 21.5L2.4 1.7L1.1 3L8.6 10.5C7.5 12.6 6 15.3 6 17.6V19.6C6 21 8.7 21.9 12 21.9C15.1 21.9 17.7 21.1 18 19.9L20.9 22.8L22.1 21.5M12 15C10.9 15 10 14.1 10 13C10 12.7 10.1 12.4 10.2 12.1L12.9 14.8C12.6 14.9 12.3 15 12 15M8.3 3.5H7.5V2H16.5V3.5H15.7L14.8 6H14.2C14.1 6.3 13.9 6.8 13.9 7.5C13.9 8.4 15.9 11 17.1 13.9L10.1 6.9C10 6.5 9.9 6.2 9.8 6H9.2L8.3 3.5Z\";\nexport var mdiSpa = \"M15.5,9.63C15.31,6.84 14.18,4.12 12.06,2C9.92,4.14 8.74,6.86 8.5,9.63C9.79,10.31 10.97,11.19 12,12.26C13.03,11.2 14.21,10.32 15.5,9.63M12,15.45C9.85,12.17 6.18,10 2,10C2,20 11.32,21.89 12,22C12.68,21.88 22,20 22,10C17.82,10 14.15,12.17 12,15.45Z\";\nexport var mdiSpaOutline = \"M15.5,9.63C14.21,10.32 13.03,11.2 12,12.26C10.97,11.19 9.79,10.31 8.5,9.63C8.74,6.86 9.92,4.14 12.06,2C14.18,4.12 15.31,6.84 15.5,9.63M12,15.45C14.15,12.17 17.82,10 22,10C22,20 12.68,21.88 12,22C11.32,21.89 2,20 2,10C6.18,10 9.85,12.17 12,15.45M12.05,5.19C11.39,6.23 10.93,7.38 10.68,8.58L12,9.55L13.35,8.57C13.12,7.37 12.68,6.22 12.05,5.19M12,19.97C12,19.97 18,19 19.74,12.25C14,14 12,19.1 12,19.1C12,19.1 9,13 4.26,12.26C6,19 12,19.97 12,19.97Z\";\nexport var mdiSpaceInvaders = \"M7,6H5V4H7V6M17,6H19V4H17V6M23,12V18H21V14H19V18H17V16H7V18H5V14H3V18H1V12H3V10H5V8H7V6H9V8H15V6H17V8H19V10H21V12H23M15,10V12H17V10H15M7,12H9V10H7V12M11,18H7V20H11V18M17,18H13V20H17V18Z\";\nexport var mdiSpaceStation = \"M15.5 19V21H13.73C13.39 21.6 12.74 22 12 22C11.26 22 10.61 21.6 10.27 21H8.5V19H10.27C10.44 18.7 10.7 18.44 11 18.27V17H10C9.45 17 9 16.55 9 16V13H6V17C6 17.55 5.55 18 5 18H3C2.45 18 2 17.55 2 17V8C2 7.45 2.45 7 3 7H5C5.55 7 6 7.45 6 8V11H9V8C9 7.45 9.45 7 10 7H11V6H10C9.45 6 9 5.55 9 5V4C9 3.45 9.45 3 10 3H14C14.55 3 15 3.45 15 4V5C15 5.55 14.55 6 14 6H13V7H14C14.55 7 15 7.45 15 8V11H18V8C18 7.45 18.45 7 19 7H21C21.55 7 22 7.45 22 8V17C22 17.55 21.55 18 21 18H19C18.45 18 18 17.55 18 17V13H15V16C15 16.55 14.55 17 14 17H13V18.27C13.3 18.44 13.56 18.7 13.73 19H15.5M3 16V17H5V16H3M3 14V15H5V14H3M3 12V13H5V12H3M3 10V11H5V10H3M3 8V9H5V8H3M19 16V17H21V16H19M19 14V15H21V14H19M19 12V13H21V12H19M19 10V11H21V10H19M19 8V9H21V8H19Z\";\nexport var mdiSpade = \"M15.71,1.22L12.88,4.05C12.1,4.83 12.1,6.09 12.88,6.87L14.3,8.29L10.06,12.53L7.58,10.06L1.22,16.42L7.58,22.78L13.94,16.42L11.47,13.94L15.71,9.7L17.13,11.12C17.91,11.9 19.17,11.9 19.95,11.12L22.78,8.29L15.71,1.22M15.71,4.05L19.95,8.29L18.54,9.7L14.3,5.46L15.71,4.05Z\";\nexport var mdiSpeaker = \"M12,12A3,3 0 0,0 9,15A3,3 0 0,0 12,18A3,3 0 0,0 15,15A3,3 0 0,0 12,12M12,20A5,5 0 0,1 7,15A5,5 0 0,1 12,10A5,5 0 0,1 17,15A5,5 0 0,1 12,20M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8C10.89,8 10,7.1 10,6C10,4.89 10.89,4 12,4M17,2H7C5.89,2 5,2.89 5,4V20A2,2 0 0,0 7,22H17A2,2 0 0,0 19,20V4C19,2.89 18.1,2 17,2Z\";\nexport var mdiSpeakerBluetooth = \"M4,3A2,2 0 0,0 2,5V19A2,2 0 0,0 4,21H12A2,2 0 0,0 14,19V5A2,2 0 0,0 12,3H4M8,5A2,2 0 0,1 10,7A2,2 0 0,1 8,9A2,2 0 0,1 6,7A2,2 0 0,1 8,5M19,7V10.79L16.71,8.5L16,9.21L18.79,12L16,14.79L16.71,15.5L19,13.21V17H19.5L22.35,14.14L20.21,12L22.35,9.85L19.5,7H19M20,8.91L20.94,9.85L20,10.79V8.91M8,11A4,4 0 0,1 12,15A4,4 0 0,1 8,19A4,4 0 0,1 4,15A4,4 0 0,1 8,11M8,13A2,2 0 0,0 6,15A2,2 0 0,0 8,17A2,2 0 0,0 10,15A2,2 0 0,0 8,13M20,13.21L20.94,14.14L20,15.08V13.21Z\";\nexport var mdiSpeakerMessage = \"M16.5 3H21.5C22.3 3 23 3.7 23 4.5V7.5C23 8.3 22.3 9 21.5 9H18L15 12V4.5C15 3.7 15.7 3 16.5 3M3 3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H11C12.1 21 13 20.1 13 19V5C13 3.9 12.1 3 11 3H3M7 5C8.1 5 9 5.9 9 7S8.1 9 7 9 5 8.1 5 7 5.9 5 7 5M7 11C9.2 11 11 12.8 11 15S9.2 19 7 19 3 17.2 3 15 4.8 11 7 11M7 13C5.9 13 5 13.9 5 15S5.9 17 7 17 9 16.1 9 15 8.1 13 7 13\";\nexport var mdiSpeakerMultiple = \"M14,10A3,3 0 0,0 11,13A3,3 0 0,0 14,16A3,3 0 0,0 17,13A3,3 0 0,0 14,10M14,18A5,5 0 0,1 9,13A5,5 0 0,1 14,8A5,5 0 0,1 19,13A5,5 0 0,1 14,18M14,2A2,2 0 0,1 16,4A2,2 0 0,1 14,6A2,2 0 0,1 12,4A2,2 0 0,1 14,2M19,0H9A2,2 0 0,0 7,2V18A2,2 0 0,0 9,20H19A2,2 0 0,0 21,18V2A2,2 0 0,0 19,0M5,22H17V24H5A2,2 0 0,1 3,22V4H5\";\nexport var mdiSpeakerOff = \"M2,5.27L3.28,4L21,21.72L19.73,23L18.27,21.54C17.93,21.83 17.5,22 17,22H7C5.89,22 5,21.1 5,20V8.27L2,5.27M12,18A3,3 0 0,1 9,15C9,14.24 9.28,13.54 9.75,13L8.33,11.6C7.5,12.5 7,13.69 7,15A5,5 0 0,0 12,20C13.31,20 14.5,19.5 15.4,18.67L14,17.25C13.45,17.72 12.76,18 12,18M17,15A5,5 0 0,0 12,10H11.82L5.12,3.3C5.41,2.54 6.14,2 7,2H17A2,2 0 0,1 19,4V17.18L17,15.17V15M12,4C10.89,4 10,4.89 10,6A2,2 0 0,0 12,8A2,2 0 0,0 14,6C14,4.89 13.1,4 12,4Z\";\nexport var mdiSpeakerPause = \"M12.28 19.81C11.87 19.92 11.45 20 11 20C8.24 20 6 17.76 6 15S8.24 10 11 10C12.89 10 14.5 11.06 15.37 12.61C16.16 12.23 17.06 12 18 12V4C18 2.89 17.1 2 16 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.54C13 21.37 12.54 20.63 12.28 19.81M11 4C12.11 4 13 4.89 13 6S12.11 8 11 8C9.89 8 9 7.1 9 6C9 4.89 9.89 4 11 4M13.74 13.78C12.7 14.82 12.06 16.24 12 17.81C11.69 17.93 11.36 18 11 18C9.34 18 8 16.66 8 15S9.34 12 11 12C12.22 12 13.27 12.73 13.74 13.78M19 15H21V21H19M15 15H17V21H15V15Z\";\nexport var mdiSpeakerPlay = \"M16 15V21L21 18L16 15M12.28 19.81C11.87 19.92 11.45 20 11 20C8.24 20 6 17.76 6 15S8.24 10 11 10C12.89 10 14.5 11.06 15.37 12.61C16.16 12.23 17.06 12 18 12V4C18 2.89 17.1 2 16 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.54C13 21.37 12.54 20.63 12.28 19.81M11 4C12.11 4 13 4.89 13 6S12.11 8 11 8C9.89 8 9 7.1 9 6C9 4.89 9.89 4 11 4M13.74 13.78C12.7 14.82 12.06 16.24 12 17.81C11.69 17.93 11.36 18 11 18C9.34 18 8 16.66 8 15S9.34 12 11 12C12.22 12 13.27 12.73 13.74 13.78Z\";\nexport var mdiSpeakerStop = \"M12.28 19.81C11.87 19.92 11.45 20 11 20C8.24 20 6 17.76 6 15S8.24 10 11 10C12.89 10 14.5 11.06 15.37 12.61C16.16 12.23 17.06 12 18 12V4C18 2.89 17.1 2 16 2H6C4.89 2 4 2.89 4 4V20C4 21.11 4.89 22 6 22H13.54C13 21.37 12.54 20.63 12.28 19.81M11 4C12.11 4 13 4.89 13 6S12.11 8 11 8C9.89 8 9 7.1 9 6C9 4.89 9.89 4 11 4M13.74 13.78C12.7 14.82 12.06 16.24 12 17.81C11.69 17.93 11.36 18 11 18C9.34 18 8 16.66 8 15S9.34 12 11 12C12.22 12 13.27 12.73 13.74 13.78M21 15H15V21H21V15Z\";\nexport var mdiSpeakerWireless = \"M20.07,19.07L18.66,17.66C20.11,16.22 21,14.21 21,12C21,9.78 20.11,7.78 18.66,6.34L20.07,4.93C21.88,6.74 23,9.24 23,12C23,14.76 21.88,17.26 20.07,19.07M17.24,16.24L15.83,14.83C16.55,14.11 17,13.11 17,12C17,10.89 16.55,9.89 15.83,9.17L17.24,7.76C18.33,8.85 19,10.35 19,12C19,13.65 18.33,15.15 17.24,16.24M4,3H12A2,2 0 0,1 14,5V19A2,2 0 0,1 12,21H4A2,2 0 0,1 2,19V5A2,2 0 0,1 4,3M8,5A2,2 0 0,0 6,7A2,2 0 0,0 8,9A2,2 0 0,0 10,7A2,2 0 0,0 8,5M8,11A4,4 0 0,0 4,15A4,4 0 0,0 8,19A4,4 0 0,0 12,15A4,4 0 0,0 8,11M8,13A2,2 0 0,1 10,15A2,2 0 0,1 8,17A2,2 0 0,1 6,15A2,2 0 0,1 8,13Z\";\nexport var mdiSpear = \"M16 9H16.41L3.41 22L2 20.59L15 7.59V9H16M16 4V8H20L22 2L16 4Z\";\nexport var mdiSpeedometer = \"M12,16A3,3 0 0,1 9,13C9,11.88 9.61,10.9 10.5,10.39L20.21,4.77L14.68,14.35C14.18,15.33 13.17,16 12,16M12,3C13.81,3 15.5,3.5 16.97,4.32L14.87,5.53C14,5.19 13,5 12,5A8,8 0 0,0 4,13C4,15.21 4.89,17.21 6.34,18.65H6.35C6.74,19.04 6.74,19.67 6.35,20.06C5.96,20.45 5.32,20.45 4.93,20.07V20.07C3.12,18.26 2,15.76 2,13A10,10 0 0,1 12,3M22,13C22,15.76 20.88,18.26 19.07,20.07V20.07C18.68,20.45 18.05,20.45 17.66,20.06C17.27,19.67 17.27,19.04 17.66,18.65V18.65C19.11,17.2 20,15.21 20,13C20,12 19.81,11 19.46,10.1L20.67,8C21.5,9.5 22,11.18 22,13Z\";\nexport var mdiSpeedometerMedium = \"M12 1.38L9.14 12.06C8.8 13.1 9.04 14.29 9.86 15.12C11.04 16.29 12.94 16.29 14.11 15.12C14.9 14.33 15.16 13.2 14.89 12.21M14.6 3.35L15.22 5.68C18.04 6.92 20 9.73 20 13C20 15.21 19.11 17.21 17.66 18.65H17.65C17.26 19.04 17.26 19.67 17.65 20.06C18.04 20.45 18.68 20.45 19.07 20.07C20.88 18.26 22 15.76 22 13C22 8.38 18.86 4.5 14.6 3.35M9.4 3.36C5.15 4.5 2 8.4 2 13C2 15.76 3.12 18.26 4.93 20.07C5.32 20.45 5.95 20.45 6.34 20.06C6.73 19.67 6.73 19.04 6.34 18.65C4.89 17.2 4 15.21 4 13C4 9.65 5.94 6.86 8.79 5.65\";\nexport var mdiSpeedometerSlow = \"M12 16C13.66 16 15 14.66 15 13C15 11.88 14.39 10.9 13.5 10.39L3.79 4.77L9.32 14.35C9.82 15.33 10.83 16 12 16M12 3C10.19 3 8.5 3.5 7.03 4.32L9.13 5.53C10 5.19 11 5 12 5C16.42 5 20 8.58 20 13C20 15.21 19.11 17.21 17.66 18.65H17.65C17.26 19.04 17.26 19.67 17.65 20.06C18.04 20.45 18.68 20.45 19.07 20.07C20.88 18.26 22 15.76 22 13C22 7.5 17.5 3 12 3M2 13C2 15.76 3.12 18.26 4.93 20.07C5.32 20.45 5.95 20.45 6.34 20.06C6.73 19.67 6.73 19.04 6.34 18.65C4.89 17.2 4 15.21 4 13C4 12 4.19 11 4.54 10.1L3.33 8C2.5 9.5 2 11.18 2 13Z\";\nexport var mdiSpellcheck = \"M21.59,11.59L13.5,19.68L9.83,16L8.42,17.41L13.5,22.5L23,13M6.43,11L8.5,5.5L10.57,11M12.45,16H14.54L9.43,3H7.57L2.46,16H4.55L5.67,13H11.31L12.45,16Z\";\nexport var mdiSphere = \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2M12 14C7.58 14 4 13.11 4 12C4 10.9 7.58 10 12 10S20 10.9 20 12C20 13.11 16.42 14 12 14M12 4C15.37 4 18.25 6.09 19.43 9.05C17.93 8.43 15.61 8 12 8C9.8 8 6.73 8.19 4.57 9.05C5.75 6.09 8.63 4 12 4M12 20C8.63 20 5.75 17.91 4.57 14.95C6.07 15.57 8.39 16 12 16C14.2 16 17.27 15.81 19.43 14.95C18.25 17.91 15.37 20 12 20Z\";\nexport var mdiSphereOff = \"M2.39 1.73L1.11 3L4.06 5.95C2.77 7.63 2 9.72 2 12C2 17.5 6.5 22 12 22C14.28 22 16.37 21.23 18.05 19.94L20.84 22.73L22.11 21.46L2.39 1.73M5.5 7.39L6.58 8.47C5.87 8.62 5.18 8.8 4.57 9.05C4.81 8.45 5.13 7.9 5.5 7.39M4 12C4 11.23 5.76 10.56 8.33 10.22L12.11 14L12 14C7.58 14 4 13.11 4 12M12 20C8.63 20 5.75 17.91 4.57 14.95C6.07 15.57 8.39 16 12 16C12.63 16 13.33 16 14.05 15.94L16.63 18.5C15.32 19.45 13.73 20 12 20M8.19 5L6.72 3.5C8.25 2.56 10.06 2 12 2C17.5 2 22 6.5 22 12C22 13.94 21.44 15.75 20.5 17.28L19 15.81C19.17 15.54 19.31 15.25 19.43 14.96C19.13 15.08 18.81 15.18 18.47 15.27L16.8 13.6C18.74 13.23 20 12.65 20 12C20 11 17.06 10.17 13.23 10.03L11.21 8C11.5 8 11.75 8 12 8C15.61 8 17.93 8.43 19.43 9.05C18.25 6.09 15.37 4 12 4C10.61 4 9.32 4.36 8.19 5Z\";\nexport var mdiSpider = \"M21.29 16.71L22.71 15.29L19.5 12.11L16.5 11.26L18.41 11L22.6 7.8L21.4 6.2L17.59 9.05L14.91 9.5L18.11 6.31L17 1.76L15 2.24L15.86 5.69L14.76 6.83A3 3 0 0 0 9.24 6.83L8.11 5.69L9 2.24L7 1.76L5.89 6.31L9.09 9.5L6.4 9.05L2.6 6.2L1.4 7.8L5.6 11L7.46 11.31L4.46 12.16L1.29 15.29L2.71 16.71L5.5 13.89L7.87 13.22L4 16.54V22H6V17.46L7.56 16.12A4.5 4.5 0 0 0 16.44 16.12L18 17.46V22H20V16.54L16.13 13.22L18.5 13.89Z\";\nexport var mdiSpiderOutline = \"M20 22H18V17.46L16.44 16.12C16.32 16.83 16.04 17.5 15.62 18.06C15.42 18.34 15.18 18.59 14.91 18.82C14.1 19.5 13.07 19.89 12 19.89C10.93 19.89 9.9 19.5 9.09 18.82C8.82 18.59 8.58 18.34 8.38 18.06C7.96 17.5 7.68 16.83 7.56 16.12L6 17.46V22H4V16.54L7.87 13.22L5.5 13.89L2.71 16.71L1.29 15.29L4.46 12.16L7.46 11.31L5.6 11L1.4 7.8L2.6 6.2L6.4 9.05L9.09 9.5L5.89 6.31L7 1.76L9 2.24L8.11 5.69L9.24 6.83L9.24 6.83C9.36 6.56 9.5 6.32 9.69 6.1C9.84 5.92 10 5.75 10.2 5.61C10.25 5.57 10.3 5.54 10.35 5.5C10.43 5.45 10.5 5.4 10.59 5.36C11.03 5.13 11.5 5 12 5C12.5 5 12.97 5.13 13.4 5.36C13.5 5.4 13.57 5.45 13.65 5.5C13.69 5.53 13.73 5.56 13.77 5.59C13.97 5.73 14.15 5.9 14.3 6.08C14.5 6.3 14.64 6.56 14.76 6.83L14.76 6.83L15.86 5.69L15 2.24L17 1.76L18.11 6.31L14.91 9.5L17.59 9.05L21.4 6.2L22.6 7.8L22.6 7.8L18.41 11L16.5 11.26L19.5 12.11L22.71 15.29L21.29 16.71L18.5 13.89L16.13 13.22L20 16.54V22M14.47 15.79L15 12.5L12 12L9 12.5L9.53 15.79C9.63 16.38 9.93 16.91 10.38 17.29C10.83 17.68 11.41 17.89 12 17.89C12.59 17.89 13.17 17.68 13.62 17.29C14.07 16.91 14.37 16.38 14.47 15.79M12 9.58L13.23 8.35L12.92 7.61C12.84 7.43 12.72 7.28 12.55 7.17C12.39 7.06 12.2 7 12 7C11.8 7 11.61 7.06 11.45 7.17C11.29 7.28 11.16 7.43 11.08 7.61L10.77 8.35L12 9.58Z\";\nexport var mdiSpiderThread = \"M13 2V7.08A5.47 5.47 0 0 0 12 7A5.47 5.47 0 0 0 11 7.08V2M16.9 15A5 5 0 0 1 16.73 15.55L20 17.42V22H18V18.58L15.74 17.29A4.94 4.94 0 0 1 8.26 17.29L6 18.58V22H4V17.42L7.27 15.55A5 5 0 0 1 7.1 15H5.3L2.55 16.83L1.45 15.17L4.7 13H7.1A5 5 0 0 1 7.37 12.12L5.81 11.12L2.24 12L1.76 10L6.19 8.92L8.5 10.45A5 5 0 0 1 15.5 10.45L17.77 8.92L22.24 10L21.76 12L18.19 11.11L16.63 12.11A5 5 0 0 1 16.9 13H19.3L22.55 15.16L21.45 16.82L18.7 15M11 14A1 1 0 1 0 10 15A1 1 0 0 0 11 14M15 14A1 1 0 1 0 14 15A1 1 0 0 0 15 14Z\";\nexport var mdiSpiderWeb = \"M13.62,13.28L15.26,15.54C15.29,15 15.38,14.47 15.56,13.93C15.74,13.37 16,12.86 16.3,12.41L13.62,13.28M17.77,19C17.75,17.68 17.95,16.27 18.41,14.85C18.88,13.42 19.56,12.14 20.36,11.09L18.32,11.75C17.54,12.26 16.87,13.14 16.5,14.23C16.17,15.29 16.18,16.36 16.5,17.22L17.77,19M19.25,21C18.75,21.46 18.21,21.86 17.63,22.2L17.31,21.76C15.9,21 14.04,20.5 12,20.5C9.96,20.5 8.1,21 6.69,21.76L6.37,22.2C5.79,21.86 5.25,21.46 4.75,21L5,20.69C5.33,19.08 5.22,17.12 4.58,15.14C3.94,13.19 2.9,11.56 1.71,10.46L1.27,10.32C1.42,9.66 1.63,9 1.89,8.41L2.29,8.54C3.92,8.37 5.74,7.65 7.43,6.43C9.09,5.22 10.32,3.73 11,2.26V1.79L12,1.75L13,1.79V2.21C13.67,3.71 14.91,5.23 16.6,6.45C18.26,7.66 20.06,8.37 21.67,8.56L22.11,8.41C22.37,9 22.58,9.66 22.73,10.32L22.23,10.5C21.04,11.58 20,13.21 19.37,15.16C18.74,17.09 18.62,19 18.92,20.57L19.25,21M11,11.37V8.5C10.66,8.92 10.26,9.32 9.78,9.67C9.29,10 8.77,10.29 8.25,10.5L11,11.37M11,4.22C10.25,5.31 9.24,6.35 8,7.24C6.78,8.14 5.46,8.78 4.18,9.16L6.15,9.8C7.11,9.88 8.22,9.56 9.19,8.86C10.13,8.18 10.76,7.27 11,6.36V4.22M13,11.37L15.74,10.5C15.23,10.3 14.72,10.03 14.25,9.69C13.76,9.33 13.34,8.92 13,8.5V11.37M19.8,9.16C18.53,8.78 17.23,8.15 16,7.26C14.77,6.36 13.76,5.31 13,4.2V6.27C13.22,7.21 13.86,8.17 14.84,8.88C15.77,9.56 16.83,9.87 17.77,9.82L19.8,9.16M10.38,13.28L7.64,12.39C7.95,12.84 8.2,13.35 8.38,13.91C8.57,14.5 8.66,15.06 8.68,15.62L10.38,13.28M3.58,11.07C4.38,12.12 5.06,13.4 5.53,14.83C6,16.29 6.2,17.74 6.17,19.08L7.38,17.41C7.76,16.5 7.8,15.36 7.43,14.22C7.07,13.12 6.4,12.24 5.61,11.73L3.58,11.07M12,14.45L10.35,16.72C10.87,16.58 11.42,16.5 12,16.5C12.58,16.5 13.13,16.58 13.65,16.72L12,14.45M7.84,20.18C9.08,19.75 10.5,19.5 12,19.5C13.5,19.5 14.92,19.75 16.16,20.18L14.88,18.42C14.16,17.85 13.13,17.5 12,17.5C10.87,17.5 9.84,17.85 9.12,18.42L7.84,20.18Z\";\nexport var mdiSpiritLevel = \"M22 8H2V16H22V8M18 14V10H20V14H18M11 12H13C14.1 12 15 11.11 15 10H17V14H7V10H9C9 11.11 9.9 12 11 12M4 14V10H6V14H4Z\";\nexport var mdiSpoonSugar = \"M6 13H3V10H6V13M10 10H7V13H10V10M8 6H5V9H8V6M18 12C14.25 12 12.28 13.25 11 14H2C2 16.21 3.79 18 6 18H7C8 18 8.92 17.63 9.62 17C11.06 15.78 12.68 14.74 14.55 14.36C15.61 14.15 16.78 14 18 14H22V12H18Z\";\nexport var mdiSpotify = \"M17.9,10.9C14.7,9 9.35,8.8 6.3,9.75C5.8,9.9 5.3,9.6 5.15,9.15C5,8.65 5.3,8.15 5.75,8C9.3,6.95 15.15,7.15 18.85,9.35C19.3,9.6 19.45,10.2 19.2,10.65C18.95,11 18.35,11.15 17.9,10.9M17.8,13.7C17.55,14.05 17.1,14.2 16.75,13.95C14.05,12.3 9.95,11.8 6.8,12.8C6.4,12.9 5.95,12.7 5.85,12.3C5.75,11.9 5.95,11.45 6.35,11.35C10,10.25 14.5,10.8 17.6,12.7C17.9,12.85 18.05,13.35 17.8,13.7M16.6,16.45C16.4,16.75 16.05,16.85 15.75,16.65C13.4,15.2 10.45,14.9 6.95,15.7C6.6,15.8 6.3,15.55 6.2,15.25C6.1,14.9 6.35,14.6 6.65,14.5C10.45,13.65 13.75,14 16.35,15.6C16.7,15.75 16.75,16.15 16.6,16.45M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiSpotlight = \"M2,6L7.09,8.55C6.4,9.5 6,10.71 6,12C6,13.29 6.4,14.5 7.09,15.45L2,18V6M6,3H18L15.45,7.09C14.5,6.4 13.29,6 12,6C10.71,6 9.5,6.4 8.55,7.09L6,3M22,6V18L16.91,15.45C17.6,14.5 18,13.29 18,12C18,10.71 17.6,9.5 16.91,8.55L22,6M18,21H6L8.55,16.91C9.5,17.6 10.71,18 12,18C13.29,18 14.5,17.6 15.45,16.91L18,21M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiSpotlightBeam = \"M9,16.5L9.91,15.59L15.13,20.8L14.21,21.71L9,16.5M15.5,10L16.41,9.09L21.63,14.3L20.71,15.21L15.5,10M6.72,2.72L10.15,6.15L6.15,10.15L2.72,6.72C1.94,5.94 1.94,4.67 2.72,3.89L3.89,2.72C4.67,1.94 5.94,1.94 6.72,2.72M14.57,7.5L15.28,8.21L8.21,15.28L7.5,14.57L6.64,11.07L11.07,6.64L14.57,7.5Z\";\nexport var mdiSpray = \"M10,4H12V6H10V4M7,3H9V5H7V3M7,6H9V8H7V6M6,8V10H4V8H6M6,5V7H4V5H6M6,2V4H4V2H6M13,22A2,2 0 0,1 11,20V10A2,2 0 0,1 13,8V7H14V4H17V7H18V8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H13M13,10V20H18V10H13Z\";\nexport var mdiSprayBottle = \"M16.72 10.43C14.68 8.39 14.5 4.66 14.5 4H13V6H9V4H7C7 2.9 7.9 2 9 2H16V3C16 3.08 16.04 7.63 17.78 9.37L16.72 10.43M17 2V4H18V2H17M15 12C13 10 13 7 13 7H9V9C9 10 9 10 8 11S7 13 7 13V20C7 21.1 7.9 22 9 22H13C14.1 22 15 21.1 15 20V12Z\";\nexport var mdiSprinkler = \"M11 7H13V9H11V7M5 22H9V10H5V22M14 11H16V9H14V11M17 10H19V8H17V10M17 5V7H19V5H17M14 8H16V6H14V8M17 13H19V11H17V13M5 7H5.33L6 9H8L8.67 7H9V6H5V7Z\";\nexport var mdiSprinklerFire = \"M5 21V23H7V21H5M11 21H9V23H11V21M7 18V20H9V18H7M11 15V17H9V15H11M15 21H13V23H15V21M11 18V20H13V18H11M15 15V17H13V15H15M19 21H17V23H19V21M15 18V20H17V18H15M16 11V13H8V11H11V5H13V11H16M21 1V3H18V6L14 10V7.2L16 5.2V3H8V5.2L10 7.2V10L6 6V3H3V1H21Z\";\nexport var mdiSprinklerVariant = \"M10 10H14V22H10V10M7 9H9V7H7V9M4 8H6V6H4V8M4 11H6V9H4V11M1 13H3V11H1V13M1 7H3V5H1V7M1 10H3V8H1V10M18 11H20V9H18V11M21 10H23V8H21V10M21 5V7H23V5H21M21 13H23V11H21V13M15 9H17V7H15V9M18 8H20V6H18V8M10 7H10.33L11 9H13L13.67 7H14V6H10V7Z\";\nexport var mdiSprout = \"M2,22V20C2,20 7,18 12,18C17,18 22,20 22,20V22H2M11.3,9.1C10.1,5.2 4,6.1 4,6.1C4,6.1 4.2,13.9 9.9,12.7C9.5,9.8 8,9 8,9C10.8,9 11,12.4 11,12.4V17C11.3,17 11.7,17 12,17C12.3,17 12.7,17 13,17V12.8C13,12.8 13,8.9 16,7.9C16,7.9 14,10.9 14,12.9C21,13.6 21,4 21,4C21,4 12.1,3 11.3,9.1Z\";\nexport var mdiSproutOutline = \"M23,4.1V2.3L21.2,2.1C21.1,2.1 20.5,2 19.5,2C15.4,2 12.4,3.2 10.7,5.3C9.4,4.5 7.6,4 5.5,4C4.5,4 3.8,4.1 3.8,4.1L1.9,4.4L2,6.1C2.1,9.1 3.6,14.8 8.8,14.8C8.9,14.8 8.9,14.8 9,14.8V18.2C5.2,18.7 2,20 2,20V22H22V20C22,20 18.8,18.7 15,18.2V15C21.3,14.9 23,7.8 23,4.1M12,18C11.7,18 11.3,18 11,18V12.4C11,12.4 10.8,9 8,9C8,9 9.5,9.8 9.9,12.7C9.5,12.8 9.1,12.8 8.8,12.8C4.2,12.8 4,6.1 4,6.1C4,6.1 4.6,6 5.5,6C7.4,6 10.5,6.4 11.4,9.1C11.9,4.6 17,4 19.5,4C20.4,4 21,4.1 21,4.1C21,4.1 21,13.1 14.7,13.1C14.5,13.1 14.2,13.1 14,13.1C14,11.1 16,8.1 16,8.1C13,9.1 13,13 13,13V18C12.7,18 12.3,18 12,18Z\";\nexport var mdiSquare = \"M3,3V21H21V3\";\nexport var mdiSquareCircle = \"M20 4V20H4V4H20M22 2H2V22H22V2M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12 15.31 6 12 6Z\";\nexport var mdiSquareCircleOutline = \"M18 12C18 8.69 15.31 6 12 6C8.69 6 6 8.69 6 12C6 15.31 8.69 18 12 18C15.31 18 18 15.31 18 12M12 8C14.21 8 16 9.8 16 12C16 14.21 14.21 16 12 16C9.8 16 8 14.21 8 12C8 9.8 9.8 8 12 8M20 4H4V20H20V4M22 2V22H2V2H22Z\";\nexport var mdiSquareEditOutline = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19H5V5H12V3H5M17.78,4C17.61,4 17.43,4.07 17.3,4.2L16.08,5.41L18.58,7.91L19.8,6.7C20.06,6.44 20.06,6 19.8,5.75L18.25,4.2C18.12,4.07 17.95,4 17.78,4M15.37,6.12L8,13.5V16H10.5L17.87,8.62L15.37,6.12Z\";\nexport var mdiSquareMedium = \"M16,8H8V16H16V8Z\";\nexport var mdiSquareMediumOutline = \"M14,10V14H10V10H14M16,8H8V16H16V8Z\";\nexport var mdiSquareOff = \"M20.84 22.73L19.11 21H3V4.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M21 3H6.2L21 17.8V3Z\";\nexport var mdiSquareOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L3 4.89V21H19.11L20.84 22.73L22.11 21.46M5 19V6.89L17.11 19H5M8.2 5L6.2 3H21V17.8L19 15.8V5H8.2Z\";\nexport var mdiSquareOpacity = \"M19 13V11H21V13H19M21 9V7H19V9H21M21 3H19V5H21V3M17 15H19V13H17V15M21 17V15H19V17H21M13 17V15H15V13H13V11H15V9H13V7H15V5H13V3H3V21H13V19H15V17H13M15 21H17V19H15V21M17 3H15V5H17V3M17 11H19V9H17V11M15 17H17V15H15V17M17 19H19V17H17V19M21 21V19H19V21H21M15 9H17V7H15V9M15 13H17V11H15V13M17 5V7H19V5H17Z\";\nexport var mdiSquareOutline = \"M3,3H21V21H3V3M5,5V19H19V5H5Z\";\nexport var mdiSquareRoot = \"M11.76,16.83L14.59,14L11.76,11.17L13.17,9.76L16,12.59L18.83,9.76L20.24,11.17L17.41,14L20.24,16.83L18.83,18.24L16,15.41L13.17,18.24L11.76,16.83M2,11H5V11H5L7.29,16.4L10,6H22V8H11.55L8.68,19H6.22L3.68,13H2V11Z\";\nexport var mdiSquareRootBox = \"M5,3C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M11.24,6H19V8H12.76L10,18H8L6.25,12H5V10H7.75L9,14.28L11.24,6V6M14,10.59L15.79,12.38L17.59,10.59L19,12L17.21,13.79L19,15.59L17.59,17L15.79,15.21L14,17L12.59,15.59L14.38,13.79L12.59,12L14,10.59Z\";\nexport var mdiSquareRounded = \"M8 3H16C18.76 3 21 5.24 21 8V16C21 18.76 18.76 21 16 21H8C5.24 21 3 18.76 3 16V8C3 5.24 5.24 3 8 3Z\";\nexport var mdiSquareRoundedBadge = \"M19.5 8C21.43 8 23 6.43 23 4.5C23 2.57 21.43 1 19.5 1C17.57 1 16 2.57 16 4.5C16 6.43 17.57 8 19.5 8M19.5 10C20 10 20.5 9.93 21 9.79V16C21 18.76 18.76 21 16 21H8C5.24 21 3 18.76 3 16V8C3 5.24 5.24 3 8 3H14.21C14.07 3.5 14 4 14 4.5C14 7.54 16.46 10 19.5 10Z\";\nexport var mdiSquareRoundedBadgeOutline = \"M19.5 8C21.43 8 23 6.43 23 4.5C23 2.57 21.43 1 19.5 1C17.57 1 16 2.57 16 4.5C16 6.43 17.57 8 19.5 8M21 16V9.79C20.5 9.93 20 10 19.5 10C19.33 10 19.17 10 19 10V16C19 17.66 17.66 19 16 19H8C6.34 19 5 17.66 5 16V8C5 6.34 6.34 5 8 5H14C14 4.84 14 4.67 14 4.5C14 4 14.07 3.5 14.21 3H8C5.24 3 3 5.24 3 8V16C3 18.76 5.24 21 8 21H16C18.76 21 21 18.76 21 16Z\";\nexport var mdiSquareRoundedOutline = \"M8 3H16C18.76 3 21 5.24 21 8V16C21 18.76 18.76 21 16 21H8C5.24 21 3 18.76 3 16V8C3 5.24 5.24 3 8 3M8 5C6.34 5 5 6.34 5 8V16C5 17.66 6.34 19 8 19H16C17.66 19 19 17.66 19 16V8C19 6.34 17.66 5 16 5H8Z\";\nexport var mdiSquareSmall = \"M10,14V10H14V14H10Z\";\nexport var mdiSquareWave = \"M2 2V12H4V4H11V22H22V12H20V20H13V2H2Z\";\nexport var mdiSqueegee = \"M22,2V5H2V2H22M2,8H7L9,10H10V20A2,2 0 0,0 12,22A2,2 0 0,0 14,20V10H15L17,8H22V6H2V8Z\";\nexport var mdiSsh = \"M4.5,9C3.9,9 3.5,9.5 3.5,10V11.75C3.5,12.25 3.9,12.75 4.5,12.75H7V13.5H3.5V15H7.5C8.1,15 8.5,14.5 8.5,14V12.25C8.5,11.75 8.1,11.25 7.5,11.25H5V10.5H8.5V9H4.5M10.5,9C9.9,9 9.5,9.5 9.5,10V11.75C9.5,12.25 9.9,12.75 10.5,12.75H13V13.5H9.5V15H13.5C14.1,15 14.5,14.5 14.5,14V12.25C14.5,11.75 14.1,11.25 13.5,11.25H11V10.5H14.5V9H10.5M15.5,9V15H17V12.5H19V15H20.5V9H19V11H17V9H15.5Z\";\nexport var mdiStackExchange = \"M3.9 10.72H20V14.03H3.9V10.72M3.9 6.44H20V9.75H3.9V6.44M17.5 2H6.5C5.06 2 3.9 3.18 3.9 4.65V5.5H20V4.65C20 3.18 18.88 2 17.5 2M3.9 15V15.84C3.9 17.31 5.06 18.5 6.5 18.5H13.37V22L16.77 18.5H17.5C18.94 18.5 20.11 17.31 20.11 15.84V15H3.9Z\";\nexport var mdiStackOverflow = \"M17.36,20.2V14.82H19.15V22H3V14.82H4.8V20.2H17.36M6.77,14.32L7.14,12.56L15.93,14.41L15.56,16.17L6.77,14.32M7.93,10.11L8.69,8.5L16.83,12.28L16.07,13.9L7.93,10.11M10.19,6.12L11.34,4.74L18.24,10.5L17.09,11.87L10.19,6.12M14.64,1.87L20,9.08L18.56,10.15L13.2,2.94L14.64,1.87M6.59,18.41V16.61H15.57V18.41H6.59Z\";\nexport var mdiStackpath = \"M4.91 8C4.04 8 3.32 8.2 2.76 8.61C2.19 9 1.91 9.53 1.91 10.19C1.91 10.85 2.15 11.37 2.62 11.72C3.1 12.07 3.82 12.41 4.8 12.72C5.27 12.88 5.6 13.04 5.78 13.19C5.96 13.34 6.05 13.55 6.05 13.83C6.05 14.07 5.96 14.26 5.78 14.41C5.6 14.56 5.32 14.63 4.94 14.63C4.45 14.63 4.09 14.54 3.85 14.35C3.6 14.16 3.5 13.84 3.5 13.39H1.72L1.71 13.42C1.7 14.25 2 14.89 2.66 15.33C3.3 15.78 4.06 16 4.94 16C5.82 16 6.5 15.8 7.06 15.42C7.59 15.03 7.86 14.5 7.86 13.81C7.86 13.14 7.63 12.61 7.19 12.23C6.74 11.84 6.08 11.5 5.2 11.26C4.62 11.05 4.23 10.88 4 10.74C3.81 10.6 3.71 10.42 3.71 10.2C3.71 9.96 3.81 9.76 4 9.6C4.22 9.44 4.5 9.36 4.87 9.36C5.24 9.36 5.53 9.46 5.74 9.65C5.96 9.84 6.07 10.12 6.06 10.41H7.8L7.82 10.37C7.84 9.68 7.57 9.11 7 8.66C6.47 8.22 5.77 8 4.91 8M9 8.05V15.93H10.84V13.23H11.96C12.89 13.23 13.63 13 14.18 12.5C14.73 12.05 15 11.42 15 10.64C15 9.87 14.73 9.25 14.18 8.77C13.63 8.29 12.89 8.05 11.96 8.05H9M17.24 8.05L14.5 15.93H16.22L19 8.05M20.5 8.05L17.79 15.93H19.5L22.29 8.05M10.84 9.46H11.96C12.35 9.46 12.66 9.57 12.86 9.8C13.07 10 13.17 10.31 13.17 10.65C13.17 11 13.07 11.28 12.86 11.5C12.66 11.71 12.35 11.82 11.96 11.82H10.84\";\nexport var mdiStadium = \"M7 5L3 7V3L7 5M18 3V7L22 5L18 3M11 2V6L15 4L11 2M5 10C6.4 10.5 8.8 11 12 11S17.6 10.5 19 10C19 9.8 16.2 9 12 9S5 9.9 5 10M15 17H9V21.9C4.9 21.5 2 20.4 2 19V10C2 8.3 6.5 7 12 7S22 8.3 22 10V19C22 20.3 19.1 21.5 15 21.9V17Z\";\nexport var mdiStadiumOutline = \"M7 5L3 7V3L7 5M18 3V7L22 5L18 3M11 2V6L15 4L11 2M13 18H11V22C5.9 21.9 2 20.6 2 19V10C2 8.3 6.5 7 12 7S22 8.3 22 10V19C22 20.6 18 21.9 13 22V18M5 10C6.4 10.5 8.8 11 12 11S17.6 10.5 19 10C19 9.8 16.2 9 12 9S5 9.9 5 10M20 11.8C18.2 12.5 15.3 13 12 13S5.8 12.5 4 11.8V18.6C4.6 19 6.4 19.6 9 19.9V16H15V19.9C17.6 19.6 19.4 19 20 18.6V11.8Z\";\nexport var mdiStadiumVariant = \"M5,3H7L10,5L7,7V8.33C8.47,8.12 10.18,8 12,8C13.82,8 15.53,8.12 17,8.33V3H19L22,5L19,7V8.71C20.85,9.17 22,9.8 22,10.5C22,11.88 17.5,13 12,13C6.5,13 2,11.88 2,10.5C2,9.8 3.15,9.17 5,8.71V3M12,9.5C8.69,9.5 7,9.67 7,10.5C7,11.33 8.69,11.5 12,11.5C15.31,11.5 17,11.33 17,10.5C17,9.67 15.31,9.5 12,9.5M12,14.75C15.81,14.75 19.2,14.08 21.4,13.05L20,21H15V19A2,2 0 0,0 13,17H11A2,2 0 0,0 9,19V21H4L2.6,13.05C4.8,14.08 8.19,14.75 12,14.75Z\";\nexport var mdiStairs = \"M15,5V9H11V13H7V17H3V20H10V16H14V12H18V8H22V5H15Z\";\nexport var mdiStairsBox = \"M5 3C3.89 3 3 3.89 3 5V19C3 20.11 3.89 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.89 20.11 3 19 3H5M14 7H19V9H16V12H13V15H10V18H5V16H8V13H11V10H14V7Z\";\nexport var mdiStairsDown = \"M15 6H22V9H18V13H14V17H10V21H3V18H7V14H11V10H15V6M4.83 8.34L10.34 2.83L12.17 4.66L6.66 10.17L8.5 12H3V6.5L4.83 8.34Z\";\nexport var mdiStairsUp = \"M15 6H22V9H18V13H14V17H10V21H3V18H7V14H11V10H15V6M10.17 6.66L4.66 12.17L2.83 10.34L8.34 4.83L6.5 3H12V8.5L10.17 6.66Z\";\nexport var mdiStamper = \"M12,3A3,3 0 0,0 9,6C9,9 14,13 6,13A2,2 0 0,0 4,15V17H20V15A2,2 0 0,0 18,13C10,13 15,9 15,6C15,4 13.66,3 12,3M6,19V21H18V19H6Z\";\nexport var mdiStandardDefinition = \"M13,7H16A3,3 0 0,1 19,10V14A3,3 0 0,1 16,17H13V7M16,15A1,1 0 0,0 17,14V10A1,1 0 0,0 16,9H15V15H16M7,7H11V9H7V11H9A2,2 0 0,1 11,13V15A2,2 0 0,1 9,17H5V15H9V13H7A2,2 0 0,1 5,11V9A2,2 0 0,1 7,7Z\";\nexport var mdiStar = \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\";\nexport var mdiStarBox = \"M19,3A2,2 0 0,1 21,5V19C21,20.11 20.1,21 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M15.58,17L14.63,12.92L17.79,10.19L13.62,9.83L12,6L10.38,9.84L6.21,10.2L9.37,12.93L8.42,17L12,14.84L15.58,17Z\";\nexport var mdiStarBoxMultiple = \"M4 6V20H18V22H3C2.4 22 2 21.6 2 21V6H4M8 2H20C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H8C6.9 18 6 17.11 6 16V4C6 2.9 6.9 2 8 2M16.3 13.3L15.9 10.7L17.8 8.8L15.2 8.4L14 6L12.8 8.4L10.2 8.8L12.1 10.6L11.6 13.2L14 12L16.3 13.3Z\";\nexport var mdiStarBoxMultipleOutline = \"M4 6V20H18V22H3C2.4 22 2 21.6 2 21V6H4M12.1 10.6L10.2 8.8L12.8 8.4L14 6L15.2 8.4L17.8 8.8L15.9 10.7L16.3 13.3L14 12L11.6 13.2L12.1 10.6M8 2H20C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H8C6.9 18 6 17.11 6 16V4C6 2.9 6.9 2 8 2M8 4V16H20V4H8Z\";\nexport var mdiStarBoxOutline = \"M15.58,17L12,14.84L8.42,17L9.37,12.93L6.21,10.2L10.38,9.84L12,6L13.62,9.83L17.79,10.19L14.63,12.92L15.58,17M19,3A2,2 0 0,1 21,5V19C21,20.11 20.1,21 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M5,5V19H19V5H5Z\";\nexport var mdiStarCheck = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C14.9 12 12.4 14.3 12 17.3L5.8 21M17.8 21.2L22.6 16.4L21.3 15L17.7 18.6L16.2 17L15 18.2L17.8 21.2\";\nexport var mdiStarCheckOutline = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C17.3 12 16.6 12.1 15.9 12.4L18.1 10.5L13.7 10.1L12 6.1L10.3 10.1L5.9 10.5L9.2 13.4L8.2 17.7L12 15.4L12.5 15.7C12.3 16.2 12.1 16.8 12.1 17.3L5.8 21M17.8 21.2L15 18.2L16.2 17L17.8 18.6L21.4 15L22.6 16.4L17.8 21.2\";\nexport var mdiStarCircle = \"M16.23,18L12,15.45L7.77,18L8.89,13.19L5.16,9.96L10.08,9.54L12,5L13.92,9.53L18.84,9.95L15.11,13.18L16.23,18M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiStarCircleOutline = \"M8.58,17.25L9.5,13.36L6.5,10.78L10.45,10.41L12,6.8L13.55,10.45L17.5,10.78L14.5,13.36L15.42,17.25L12,15.19L8.58,17.25M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiStarCog = \"M18.8 12C15.59 12.1 12.91 14.37 12.19 17.39L12 17.27L5.82 21L7.45 13.97L2 9.24L9.19 8.62L12 2L14.81 8.62L22 9.24L18.8 12M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.83 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5C19.83 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiStarCogOutline = \"M10.29 10.13L5.91 10.5L9.23 13.38L8.24 17.66L12 15.39L12.76 15.85C12.5 16.33 12.32 16.85 12.19 17.39L12 17.27L5.82 21L7.45 13.97L2 9.24L9.19 8.63L12 2L14.81 8.63L22 9.24L18.8 12C17.29 12.05 15.91 12.57 14.78 13.43L14.77 13.38L18.09 10.5L13.71 10.13L12 6.09L10.29 10.13M23.83 20.64L22.83 22.37C22.76 22.5 22.63 22.5 22.5 22.5L21.27 22C21 22.18 20.73 22.34 20.43 22.47L20.24 23.79C20.22 23.91 20.11 24 20 24H18C17.86 24 17.76 23.91 17.74 23.79L17.55 22.47C17.24 22.35 16.96 22.18 16.7 22L15.46 22.5C15.34 22.5 15.21 22.5 15.15 22.37L14.15 20.64C14.09 20.53 14.12 20.4 14.21 20.32L15.27 19.5C15.25 19.33 15.24 19.17 15.24 19S15.25 18.67 15.27 18.5L14.21 17.68C14.11 17.6 14.09 17.47 14.15 17.36L15.15 15.63C15.22 15.5 15.35 15.5 15.46 15.5L16.7 16C16.96 15.82 17.25 15.66 17.55 15.53L17.74 14.21C17.76 14.09 17.87 14 18 14H20C20.11 14 20.22 14.09 20.23 14.21L20.42 15.53C20.73 15.65 21 15.82 21.27 16L22.5 15.5C22.63 15.5 22.76 15.5 22.82 15.63L23.82 17.36C23.88 17.47 23.85 17.6 23.76 17.68L22.7 18.5C22.73 18.67 22.74 18.83 22.74 19S22.72 19.33 22.7 19.5L23.77 20.32C23.86 20.4 23.89 20.53 23.83 20.64M20.5 19C20.5 18.17 19.83 17.5 19 17.5S17.5 18.17 17.5 19 18.16 20.5 19 20.5C19.83 20.5 20.5 19.83 20.5 19Z\";\nexport var mdiStarCrescent = \"M12.3,2C12.2,2 12.1,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22C15,22 16.7,21 18.5,19.5C13,21 8,17 8,12C8,7 13,3 18.5,4.5C16.86,2.86 14.62,1.96 12.3,2M16.8,6.2L15.3,9.7L11.6,10L14.5,12.5L13.6,16L16.8,14L20,16L19,12.5L22,10L18.3,9.7L16.8,6.2Z\";\nexport var mdiStarDavid = \"M12,2L9.1,7H3.3L6.3,12L3.3,17H9.1L12,22L14.9,17H20.7L17.7,12L20.7,7H14.9L12,2M12,5L13.2,7H10.8L12,5M8.2,8.5L7.1,10.5L5.9,8.5H8.2M10,8.5H14L16,12L14,15.5H10L8,12L10,8.5M18,8.5L16.8,10.5L15.7,8.5H18M7.1,13.5L8.2,15.5H6L7.1,13.5M16.9,13.5L18.1,15.5H15.8L16.9,13.5M13.3,17L12,19L10.8,17H13.3Z\";\nexport var mdiStarFace = \"M12,2.5L8.42,8.06L2,9.74L6.2,14.88L5.82,21.5L12,19.09L18.18,21.5L17.8,14.88L22,9.74L15.58,8.06L12,2.5M9.38,10.5C10,10.5 10.5,11 10.5,11.63A1.12,1.12 0 0,1 9.38,12.75C8.75,12.75 8.25,12.25 8.25,11.63C8.25,11 8.75,10.5 9.38,10.5M14.63,10.5C15.25,10.5 15.75,11 15.75,11.63A1.12,1.12 0 0,1 14.63,12.75C14,12.75 13.5,12.25 13.5,11.63C13.5,11 14,10.5 14.63,10.5M9,15H15C14.5,16.21 13.31,17 12,17C10.69,17 9.5,16.21 9,15Z\";\nexport var mdiStarFourPoints = \"M12,1L9,9L1,12L9,15L12,23L15,15L23,12L15,9L12,1Z\";\nexport var mdiStarFourPointsBox = \"M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17Z\";\nexport var mdiStarFourPointsBoxOutline = \"M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17M5 3H19C20.1 3 21 3.89 21 5V19C21 19.53 20.79 20.04 20.41 20.41C20.04 20.79 19.53 21 19 21H5C4.47 21 3.96 20.79 3.59 20.41C3.21 20.04 3 19.53 3 19V5C3 3.89 3.89 3 5 3M5 19H19V5H5V19Z\";\nexport var mdiStarFourPointsCircle = \"M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17Z\";\nexport var mdiStarFourPointsCircleOutline = \"M12 17L13.56 13.58L17 12L13.56 10.44L12 7L10.43 10.44L7 12L10.43 13.58L12 17M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M6.34 17.66C7.84 19.16 9.88 20 12 20C14.12 20 16.16 19.16 17.66 17.66C19.16 16.16 20 14.12 20 12C20 9.88 19.16 7.84 17.66 6.34C16.16 4.84 14.12 4 12 4C9.88 4 7.84 4.84 6.34 6.34C4.84 7.84 4 9.88 4 12C4 14.12 4.84 16.16 6.34 17.66Z\";\nexport var mdiStarFourPointsOutline = \"M12,6.7L13.45,10.55L17.3,12L13.45,13.45L12,17.3L10.55,13.45L6.7,12L10.55,10.55L12,6.7M12,1L9,9L1,12L9,15L12,23L15,15L23,12L15,9L12,1Z\";\nexport var mdiStarFourPointsSmall = \"M10.74 10.75L12 8L13.25 10.75L16 12L13.25 13.26L12 16L10.74 13.26L8 12L10.74 10.75Z\";\nexport var mdiStarHalf = \"M12 2L9.19 8.62L2 9.24L7.45 13.97L5.82 21L12 17.27V2Z\";\nexport var mdiStarHalfFull = \"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\";\nexport var mdiStarMinus = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C14.9 12 12.4 14.3 12 17.3L5.8 21M14 17V19H22V17H14Z\";\nexport var mdiStarMinusOutline = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C17.3 12 16.6 12.1 15.9 12.4L18.1 10.5L13.7 10.1L12 6.1L10.3 10.1L5.9 10.5L9.2 13.4L8.2 17.7L12 15.4L12.5 15.7C12.3 16.2 12.1 16.8 12.1 17.3L5.8 21M14 17V19H22V17H14Z\";\nexport var mdiStarOff = \"M20.8 22.7L17.9 19.8L18.2 21L12 17.3L5.8 21L7.4 14L2 9.2L6.9 8.8L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M22 9.2L14.8 8.6L12 2L10 6.8L16.9 13.7L22 9.2Z\";\nexport var mdiStarOffOutline = \"M22.1 21.5L2.4 1.7L1.1 3L6.9 8.8L2 9.2L7.5 14L5.9 21L12.1 17.3L18.3 21L18 19.8L20.9 22.7L22.1 21.5M15.8 17.7L12 15.4L8.2 17.7L9.2 13.4L5.9 10.5L8.4 10.3L15.8 17.7M11.2 8L10 6.8L12 2L14.8 8.6L22 9.2L16.9 13.6L15.8 12.5L18.2 10.5L13.8 10.1L12.1 6.1L11.2 8Z\";\nexport var mdiStarOutline = \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\";\nexport var mdiStarPlus = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C14.9 12 12.4 14.3 12 17.3L5.8 21M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiStarPlusOutline = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C17.3 12 16.6 12.1 15.9 12.4L18.1 10.5L13.7 10.1L12 6.1L10.3 10.1L5.9 10.5L9.2 13.4L8.2 17.7L12 15.4L12.5 15.7C12.3 16.2 12.1 16.8 12.1 17.3L5.8 21M17 14V17H14V19H17V22H19V19H22V17H19V14H17Z\";\nexport var mdiStarRemove = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C14.9 12 12.4 14.3 12 17.3L5.8 21M20.1 14.5L18 16.6L15.9 14.5L14.5 15.9L16.6 18L14.5 20.1L15.9 21.5L18 19.4L20.1 21.5L21.5 20.1L19.4 18L21.5 15.9L20.1 14.5Z\";\nexport var mdiStarRemoveOutline = \"M5.8 21L7.4 14L2 9.2L9.2 8.6L12 2L14.8 8.6L22 9.2L18.8 12H18C17.3 12 16.6 12.1 15.9 12.4L18.1 10.5L13.7 10.1L12 6.1L10.3 10.1L5.9 10.5L9.2 13.4L8.2 17.7L12 15.4L12.5 15.7C12.3 16.2 12.1 16.8 12.1 17.3L5.8 21M20.1 14.5L18 16.6L15.9 14.5L14.5 15.9L16.6 18L14.5 20.1L15.9 21.5L18 19.4L20.1 21.5L21.5 20.1L19.4 18L21.5 15.9L20.1 14.5Z\";\nexport var mdiStarSettings = \"M7 22H9V24H7V22M11 24H13V22H11V24M15 24H17V22H15V24M22 9.24L14.81 8.62L12 2L9.19 8.62L2 9.24L7.45 13.97L5.82 21L12 17.27L18.18 21L16.54 13.97L22 9.24Z\";\nexport var mdiStarSettingsOutline = \"M11 22H13V24H11V22M7 24H9V22H7V24M15 24H17V22H15V24M16.54 13.97L18.18 21L12 17.27L5.82 21L7.45 13.97L2 9.24L9.19 8.63L12 2L14.81 8.63L22 9.24L16.54 13.97M15.76 17.66L14.77 13.38L18.09 10.5L13.71 10.13L12 6.09L10.29 10.13L5.91 10.5L9.23 13.38L8.24 17.66L12 15.39L15.76 17.66Z\";\nexport var mdiStarShooting = \"M18.09 11.77L19.56 18.1L14 14.74L8.44 18.1L9.9 11.77L5 7.5L11.47 6.96L14 1L16.53 6.96L23 7.5L18.09 11.77M2 12.43C2.19 12.43 2.38 12.37 2.55 12.26L5.75 10.15L4.18 8.79L1.45 10.59C.989 10.89 .861 11.5 1.16 12C1.36 12.27 1.68 12.43 2 12.43M1.16 21.55C1.36 21.84 1.68 22 2 22C2.19 22 2.38 21.95 2.55 21.84L6.66 19.13L7 17.76L7.31 16.31L1.45 20.16C.989 20.47 .861 21.09 1.16 21.55M1.45 15.38C.989 15.68 .861 16.3 1.16 16.76C1.36 17.06 1.68 17.21 2 17.21C2.19 17.21 2.38 17.16 2.55 17.05L7.97 13.5L8.24 12.31L7.32 11.5L1.45 15.38Z\";\nexport var mdiStarShootingOutline = \"M23 7.5L16.53 6.96L14 1L11.47 6.96L5 7.5L9.9 11.77L8.44 18.1L14 14.74L19.56 18.1L18.09 11.77L23 7.5M16.14 12.23L16.54 13.94L15.03 13.03L14 12.41L12.97 13.03L11.46 13.94L11.85 12.23L12.13 11.05L11.22 10.26L9.88 9.1L11.64 8.95L12.84 8.85L13.31 7.74L14 6.12L14.69 7.74L15.16 8.85L16.36 8.95L18.11 9.1L16.78 10.26L15.86 11.05L16.14 12.23M1.16 12C.861 11.5 .989 10.89 1.45 10.59L4.18 8.79L5.75 10.15L2.55 12.26C2.38 12.37 2.19 12.43 2 12.43C1.68 12.43 1.36 12.27 1.16 12M1.45 20.16L7.31 16.31L7 17.76L6.66 19.13L2.55 21.84C2.38 21.95 2.19 22 2 22C1.68 22 1.36 21.84 1.16 21.55C.861 21.09 .989 20.47 1.45 20.16M7.32 11.5L8.24 12.31L7.97 13.5L2.55 17.05C2.38 17.16 2.19 17.21 2 17.21C1.68 17.21 1.36 17.06 1.16 16.76C.861 16.3 .989 15.68 1.45 15.38L7.32 11.5Z\";\nexport var mdiStarThreePoints = \"M12,2.6L9,12.4L2,19.9L12,17.6L22,20L15,12.5L12,2.6Z\";\nexport var mdiStarThreePointsOutline = \"M12,9.5L13.2,13.5L16,16.5L12,15.6L7.9,16.5L10.7,13.5L12,9.5M12,2.6L9,12.4L2,19.9L12,17.6L22,20L15,12.5L12,2.6Z\";\nexport var mdiStateMachine = \"M6.27 17.05C6.72 17.58 7 18.25 7 19C7 20.66 5.66 22 4 22S1 20.66 1 19 2.34 16 4 16C4.18 16 4.36 16 4.53 16.05L7.6 10.69L5.86 9.7L9.95 8.58L11.07 12.67L9.33 11.68L6.27 17.05M20 16C18.7 16 17.6 16.84 17.18 18H11V16L8 19L11 22V20H17.18C17.6 21.16 18.7 22 20 22C21.66 22 23 20.66 23 19S21.66 16 20 16M12 8C12.18 8 12.36 8 12.53 7.95L15.6 13.31L13.86 14.3L17.95 15.42L19.07 11.33L17.33 12.32L14.27 6.95C14.72 6.42 15 5.75 15 5C15 3.34 13.66 2 12 2S9 3.34 9 5 10.34 8 12 8Z\";\nexport var mdiSteam = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C7.4,22 3.55,18.92 2.36,14.73L6.19,16.31C6.45,17.6 7.6,18.58 8.97,18.58C10.53,18.58 11.8,17.31 11.8,15.75V15.62L15.2,13.19H15.28C17.36,13.19 19.05,11.5 19.05,9.42C19.05,7.34 17.36,5.65 15.28,5.65C13.2,5.65 11.5,7.34 11.5,9.42V9.47L9.13,12.93L8.97,12.92C8.38,12.92 7.83,13.1 7.38,13.41L2,11.2C2.43,6.05 6.73,2 12,2M8.28,17.17C9.08,17.5 10,17.13 10.33,16.33C10.66,15.53 10.28,14.62 9.5,14.29L8.22,13.76C8.71,13.58 9.26,13.57 9.78,13.79C10.31,14 10.72,14.41 10.93,14.94C11.15,15.46 11.15,16.04 10.93,16.56C10.5,17.64 9.23,18.16 8.15,17.71C7.65,17.5 7.27,17.12 7.06,16.67L8.28,17.17M17.8,9.42C17.8,10.81 16.67,11.94 15.28,11.94C13.9,11.94 12.77,10.81 12.77,9.42A2.5,2.5 0 0,1 15.28,6.91C16.67,6.91 17.8,8.04 17.8,9.42M13.4,9.42C13.4,10.46 14.24,11.31 15.29,11.31C16.33,11.31 17.17,10.46 17.17,9.42C17.17,8.38 16.33,7.53 15.29,7.53C14.24,7.53 13.4,8.38 13.4,9.42Z\";\nexport var mdiSteering = \"M13,19.92C14.8,19.7 16.35,18.95 17.65,17.65C18.95,16.35 19.7,14.8 19.92,13H16.92C16.7,14 16.24,14.84 15.54,15.54C14.84,16.24 14,16.7 13,16.92V19.92M10,8H14L17,11H19.92C19.67,9.05 18.79,7.38 17.27,6C15.76,4.66 14,4 12,4C10,4 8.24,4.66 6.73,6C5.21,7.38 4.33,9.05 4.08,11H7L10,8M11,19.92V16.92C10,16.7 9.16,16.24 8.46,15.54C7.76,14.84 7.3,14 7.08,13H4.08C4.3,14.77 5.05,16.3 6.35,17.6C7.65,18.9 9.2,19.67 11,19.92M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12C22,14.75 21,17.1 19.05,19.05C17.1,21 14.75,22 12,22C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z\";\nexport var mdiSteeringOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L17.25,20.5C15.7,21.5 13.95,22 12,22C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,10.05 2.5,8.3 3.5,6.75L2,5.27M13,19.92C14,19.8 14.93,19.5 15.78,19.05L13.5,16.78C13.34,16.84 13.16,16.88 13,16.92V19.92M4.08,11H7L7.37,10.63L4.96,8.23C4.5,9.08 4.21,10 4.08,11M19.92,13H16.92C16.8,13.54 16.6,14.05 16.33,14.5L9.91,8.09L10,8H14L17,11H19.92C19.67,9.05 18.79,7.38 17.27,6C15.76,4.66 14,4 12,4C10.26,4 8.71,4.5 7.34,5.5L5.91,4.09C7.66,2.71 9.69,2 12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12C22,14.31 21.29,16.34 19.91,18.09L18.5,16.67C19.28,15.59 19.76,14.36 19.92,13M11,19.92V16.92C10,16.7 9.16,16.24 8.46,15.54C7.76,14.84 7.3,14 7.08,13H4.08C4.3,14.77 5.05,16.3 6.35,17.6C7.65,18.9 9.2,19.67 11,19.92Z\";\nexport var mdiStepBackward = \"M19,5V19H16V5M14,5V19L3,12\";\nexport var mdiStepBackward2 = \"M17,5H14V19H17V5M12,5L1,12L12,19V5M22,5H19V19H22V5Z\";\nexport var mdiStepForward = \"M5,5V19H8V5M10,5V19L21,12\";\nexport var mdiStepForward2 = \"M7,5H10V19H7V5M12,5L23,12L12,19V5M2,5H5V19H2V5Z\";\nexport var mdiStethoscope = \"M19,8C19.56,8 20,8.43 20,9A1,1 0 0,1 19,10C18.43,10 18,9.55 18,9C18,8.43 18.43,8 19,8M2,2V11C2,13.96 4.19,16.5 7.14,16.91C7.76,19.92 10.42,22 13.5,22A6.5,6.5 0 0,0 20,15.5V11.81C21.16,11.39 22,10.29 22,9A3,3 0 0,0 19,6A3,3 0 0,0 16,9C16,10.29 16.84,11.4 18,11.81V15.41C18,17.91 16,19.91 13.5,19.91C11.5,19.91 9.82,18.7 9.22,16.9C12,16.3 14,13.8 14,11V2H10V5H12V11A4,4 0 0,1 8,15A4,4 0 0,1 4,11V5H6V2H2Z\";\nexport var mdiSticker = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerAlert = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M13 17H11V15H13V16M13 13H11V7H13V12M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerAlertOutline = \"M11 15H13V17H11V15M11 13H13V7H11V13M22 5.5V16L16 22H5.5C3.6 22 2 20.4 2 18.5V5.5C2 3.6 3.6 2 5.5 2H18.5C20.4 2 22 3.6 22 5.5M20 5.8C20 4.8 19.2 4 18.2 4H5.8C4.8 4 4 4.8 4 5.8V18.3C4 19.3 4.8 20.1 5.8 20.1H15V18.6C15 16.7 16.6 15.1 18.5 15.1H20V5.8Z\";\nexport var mdiStickerCheck = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M7 12.5L8.3 11.1L10.4 13.2L15.6 8L17 9.4L10.5 16L7 12.5M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerCheckOutline = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M20 15H18.5C16.6 15 15 16.6 15 18.5V20H5.8C4.8 20 4 19.2 4 18.2V5.8C4 4.8 4.8 4 5.8 4H18.3C19.3 4 20.1 4.8 20.1 5.8V15M15.2 8.2L16.7 9.7L10.7 15.7L7.2 12.2L8.7 10.7L10.7 12.7L15.2 8.2Z\";\nexport var mdiStickerCircleOutline = \"M12.12,18.46L18.3,12.28C16.94,12.59 15.31,13.2 14.07,14.46C13.04,15.5 12.39,16.83 12.12,18.46M20.75,10H21.05C21.44,10 21.79,10.27 21.93,10.64C22.07,11 22,11.43 21.7,11.71L11.7,21.71C11.5,21.9 11.26,22 11,22L10.64,21.93C10.27,21.79 10,21.44 10,21.05C9.84,17.66 10.73,14.96 12.66,13.03C15.5,10.2 19.62,10 20.75,10M12,2C16.5,2 20.34,5 21.58,9.11L20,9H19.42C18.24,6.07 15.36,4 12,4A8,8 0 0,0 4,12C4,15.36 6.07,18.24 9,19.42C8.97,20.13 9,20.85 9.11,21.57C5,20.33 2,16.5 2,12C2,6.47 6.5,2 12,2Z\";\nexport var mdiStickerEmoji = \"M5.5,2C3.56,2 2,3.56 2,5.5V18.5C2,20.44 3.56,22 5.5,22H16L22,16V5.5C22,3.56 20.44,2 18.5,2H5.5M5.75,4H18.25A1.75,1.75 0 0,1 20,5.75V15H18.5C16.56,15 15,16.56 15,18.5V20H5.75A1.75,1.75 0 0,1 4,18.25V5.75A1.75,1.75 0 0,1 5.75,4M14.44,6.77C14.28,6.77 14.12,6.79 13.97,6.83C13.03,7.09 12.5,8.05 12.74,9C12.79,9.15 12.86,9.3 12.95,9.44L16.18,8.56C16.18,8.39 16.16,8.22 16.12,8.05C15.91,7.3 15.22,6.77 14.44,6.77M8.17,8.5C8,8.5 7.85,8.5 7.7,8.55C6.77,8.81 6.22,9.77 6.47,10.7C6.5,10.86 6.59,11 6.68,11.16L9.91,10.28C9.91,10.11 9.89,9.94 9.85,9.78C9.64,9 8.95,8.5 8.17,8.5M16.72,11.26L7.59,13.77C8.91,15.3 11,15.94 12.95,15.41C14.9,14.87 16.36,13.25 16.72,11.26Z\";\nexport var mdiStickerMinus = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M8 11H16V13H8V11M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerMinusOutline = \"M8 11H16V13H8V11M22 5.5V16L16 22H5.5C3.6 22 2 20.4 2 18.5V5.5C2 3.6 3.6 2 5.5 2H18.5C20.4 2 22 3.6 22 5.5M20 5.8C20 4.8 19.2 4 18.2 4H5.8C4.8 4 4 4.8 4 5.8V18.3C4 19.3 4.8 20.1 5.8 20.1H15V18.6C15 16.7 16.6 15.1 18.5 15.1H20V5.8Z\";\nexport var mdiStickerOutline = \"M5.5 2C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2H5.5M5.8 4H18.3C19.3 4 20.1 4.8 20.1 5.8V15H18.6C16.7 15 15.1 16.6 15.1 18.5V20H5.8C4.8 20 4 19.2 4 18.2V5.8C4 4.8 4.8 4 5.8 4\";\nexport var mdiStickerPlus = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M13 16H11V13H8V11H11V8H13V11H16V13H13V16M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerPlusOutline = \"M13 11H16V13H13V16H11V13H8V11H11V8H13V11M22 5.5V16L16 22H5.5C3.6 22 2 20.4 2 18.5V5.5C2 3.6 3.6 2 5.5 2H18.5C20.4 2 22 3.6 22 5.5M20 5.8C20 4.8 19.2 4 18.2 4H5.8C4.8 4 4 4.8 4 5.8V18.3C4 19.3 4.8 20.1 5.8 20.1H15V18.6C15 16.7 16.6 15.1 18.5 15.1H20V5.8Z\";\nexport var mdiStickerRemove = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M12 13.4L9.9 15.5L8.5 14.1L10.6 12L8.5 9.9L9.9 8.5L12 10.6L14.1 8.5L15.5 9.9L13.4 12L15.5 14.1L14.1 15.5L12 13.4M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerRemoveOutline = \"M16 9.4L13.4 12L16 14.6L14.6 16L12 13.4L9.4 16L8 14.6L10.6 12L8 9.4L9.4 8L12 10.6L14.6 8L16 9.4M22 5.5V16L16 22H5.5C3.6 22 2 20.4 2 18.5V5.5C2 3.6 3.6 2 5.5 2H18.5C20.4 2 22 3.6 22 5.5M20 5.8C20 4.8 19.2 4 18.2 4H5.8C4.8 4 4 4.8 4 5.8V18.3C4 19.3 4.8 20.1 5.8 20.1H15V18.6C15 16.7 16.6 15.1 18.5 15.1H20V5.8Z\";\nexport var mdiStickerText = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M6 7H18V9H6V7M6 11H18V13H6V11M13 17H6V15H13V17M15 20V18.5C15 16.6 16.6 15 18.5 15H20L15 20Z\";\nexport var mdiStickerTextOutline = \"M18.5 2H5.5C3.6 2 2 3.6 2 5.5V18.5C2 20.4 3.6 22 5.5 22H16L22 16V5.5C22 3.6 20.4 2 18.5 2M20.1 15H18.6C16.7 15 15.1 16.6 15.1 18.5V20H5.8C4.8 20 4 19.2 4 18.2V5.8C4 4.8 4.8 4 5.8 4H18.3C19.3 4 20.1 4.8 20.1 5.8V15M7 7H17V9H7V7M7 11H17V13H7V11M7 15H13V17H7V15Z\";\nexport var mdiStocking = \"M17,2A2,2 0 0,1 19,4V7A2,2 0 0,1 17,9V17C17,17.85 16.5,18.57 15.74,18.86L9.5,21.77C8.5,22.24 7.29,21.81 6.83,20.81L6,19C5.5,18 5.95,16.8 6.95,16.34L10,14.91V9A2,2 0 0,1 8,7V4A2,2 0 0,1 10,2H17M10,4V7H17V4H10Z\";\nexport var mdiStomach = \"M4 18C4.67 19.85 6.07 22 12 22C14.36 22 17.07 21.93 19 20C20 19 22 17 22 11S20 4 18 4C16.62 4 15 4 14 6V6.03A1.82 1.82 0 0 1 12.13 6.95C11 6.81 11 6.37 11 6V2H9V6A2.92 2.92 0 0 0 12 9C13 9 13 10.78 13 12C13 13.89 12.5 15.26 11 16C8.69 17.15 6.39 17 5.61 15.47A1.5 1.5 0 0 0 3.14 14.87A3.67 3.67 0 0 0 2 18V22H4Z\";\nexport var mdiStool = \"M20 6C20 3.79 18.21 2 16 2H8C5.78 2 4 3.79 4 6V8H7L4 22H6L7.5 15H11V22H13V15H16.5L18 22H20L17 8H20V6M7.93 13L9 8H11V13H7.93M16.07 13H13V8H15L16.07 13Z\";\nexport var mdiStoolOutline = \"M20 6C20 3.79 18.21 2 16 2H8C5.78 2 4 3.79 4 6V8H7L4 22H6L7.5 15H11V22H13V15H16.5L18 22H20L17 8H20V6M7.93 13L9 8H11V13H7.93M16.07 13H13V8H15L16.07 13M6 6C6 4.9 6.89 4 8 4H16C17.1 4 18 4.9 18 6H6Z\";\nexport var mdiStop = \"M18,18H6V6H18V18Z\";\nexport var mdiStopCircle = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M9,9H15V15H9\";\nexport var mdiStopCircleOutline = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4M9,9V15H15V9\";\nexport var mdiStorageTank = \"M17 6H16V5C16 3.9 15.1 3 14 3H10C8.9 3 8 3.9 8 5V6H7C3.69 6 1 8.69 1 12S3.69 18 7 18V21H9V18H15V21H17V18C20.31 18 23 15.31 23 12S20.31 6 17 6M10 5H14V6H10V5Z\";\nexport var mdiStorageTankOutline = \"M17 6H16V5C16 3.9 15.1 3 14 3H10C8.9 3 8 3.9 8 5V6H7C3.69 6 1 8.69 1 12S3.69 18 7 18V21H9V18H15V21H17V18C20.31 18 23 15.31 23 12S20.31 6 17 6M10 5H14V6H10V5M17 16H7C4.79 16 3 14.21 3 12S4.79 8 7 8H17C19.21 8 21 9.79 21 12S19.21 16 17 16Z\";\nexport var mdiStore = \"M12,18H6V14H12M21,14V12L20,7H4L3,12V14H4V20H14V14H18V20H20V14M20,4H4V6H20V4Z\";\nexport var mdiStore24Hour = \"M16,12H15V10H13V7H14V9H15V7H16M11,10H9V11H11V12H8V9H10V8H8V7H11M19,7V4H5V7H2V20H10V16H14V20H22V7H19Z\";\nexport var mdiStoreAlert = \"M2 7L1 12V14H2V20H12V14H16V20H18V14H19V12L18 7H2M10 18H4V14H10V18M18 6H2V4H18V6M23 7V13H21V7H23M21 15H23V17H21V15Z\";\nexport var mdiStoreAlertOutline = \"M2 7L1 12V14H2V20H12V14H16V20H18V14H19V12L18 7H2M10 18H4V14H10V18M3.04 12L3.64 9H16.36L16.96 12H3.04M18 6H2V4H18V6M23 7V13H21V7H23M21 15H23V17H21V15Z\";\nexport var mdiStoreCheck = \"M20 6H4V4H20V6M15.69 14H14V15.69C13.37 16.64 13 17.77 13 19C13 19.34 13.04 19.67 13.09 20H4V14H3V12L4 7H20L21 12V13.35C20.37 13.13 19.7 13 19 13C17.77 13 16.64 13.37 15.69 14M12 14H6V18H12V14M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiStoreCheckOutline = \"M19 13C19.7 13 20.37 13.13 21 13.35V12L20 7H4L3 12V14H4V20H13.09C13.04 19.67 13 19.34 13 19C13 17.77 13.37 16.64 14 15.69V14H15.69C16.64 13.37 17.77 13 19 13M12 18H6V14H12V18M5.04 12L5.64 9H18.36L18.96 12H5.04M20 6H4V4H20V6M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25\";\nexport var mdiStoreClock = \"M18 4H2V2H18V4M17.5 13H16V18L19.61 20.16L20.36 18.94L17.5 17.25V13M24 17C24 20.87 20.87 24 17 24C13.47 24 10.57 21.39 10.08 18H2V12H1V10L2 5H18L19 10V10.29C21.89 11.16 24 13.83 24 17M4 16H10V12H4V16M22 17C22 14.24 19.76 12 17 12S12 14.24 12 17 14.24 22 17 22 22 19.76 22 17Z\";\nexport var mdiStoreClockOutline = \"M18 4H2V2H18V4M17.5 13H16V18L19.61 20.16L20.36 18.94L17.5 17.25V13M24 17C24 20.87 20.87 24 17 24C13.47 24 10.57 21.39 10.08 18H2V12H1V10L2 5H18L19 10V10.29C21.89 11.16 24 13.83 24 17M3.04 10H16.96L16.36 7H3.64L3.04 10M4 16H10V12H4V16M22 17C22 14.24 19.76 12 17 12S12 14.24 12 17 14.24 22 17 22 22 19.76 22 17Z\";\nexport var mdiStoreCog = \"M20 6H4V4H20V6M19 12C17.09 12 15.37 12.76 14.11 14H14V14.11C12.76 15.37 12 17.09 12 19C12 19.34 12.03 19.67 12.08 20H4V14H3V12L4 7H20L21 12V12.3C20.37 12.11 19.7 12 19 12M12 14H6V18H12V14M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiStoreCogOutline = \"M20 6H4V4H20V6M19 12C17.09 12 15.37 12.76 14.11 14H14V14.11C12.76 15.37 12 17.09 12 19C12 19.34 12.03 19.67 12.08 20H4V14H3V12L4 7H20L21 12V12.3C20.37 12.11 19.7 12 19 12M12 14H6V18H12V14M18.96 12L18.36 9H5.64L5.04 12H18.96M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiStoreEdit = \"M20 6H4V4H20V6M14 16.13L11 19.13V20H4V14H3V12L4 7H20L20.61 10.07C20.16 10.17 19.73 10.4 19.39 10.74L16.13 14H14V16.13M12 14H6V18H12V14M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiStoreEditOutline = \"M20 6H4V4H20V6M14 16.13L11 19.13V20H4V14H3V12L4 7H20L20.61 10.07C20.16 10.17 19.73 10.4 19.39 10.74L18.82 11.31L18.36 9H5.64L5.04 12H18.13L16.13 14H14V16.13M12 14H6V18H12V14M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96Z\";\nexport var mdiStoreMarker = \"M20 6H4V4H20V6M13 15.5C13 16.64 13.43 17.86 14 19V20H4V14H3V12L4 7H20L20.7 10.5C20 10.18 19.28 10 18.5 10C15.5 10 13 12.5 13 15.5M12 14H6V18H12V14M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiStoreMarkerOutline = \"M20 6H4V4H20V6M14.3 12C13.5 12.96 13 14.18 13 15.5C13 16.64 13.43 17.86 14 19V20H4V14H3V12L4 7H20L20.7 10.5C20.04 10.18 19.32 10 18.56 10L18.36 9H5.64L5.04 12H14.3M12 14H6V18H12V14M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiStoreMinus = \"M4 4V6H20V4M4 7L3 12V14H4V20H13C12.95 19.66 12.92 19.31 12.92 18.95C12.92 17.73 13.3 16.53 14 15.53V14H15.54C16.54 13.33 17.71 12.96 18.91 12.96C19.62 12.96 20.33 13.09 21 13.34V12L20 7M6 14H12V18H6M15 18V20H23V18\";\nexport var mdiStoreMinusOutline = \"M20 6H4V4H20V6M15.69 14H14V15.69C13.37 16.64 13 17.77 13 19C13 19.34 13.04 19.67 13.09 20H4V14H3V12L4 7H20L21 12V13.35C20.37 13.13 19.7 13 19 13C17.77 13 16.64 13.37 15.69 14M12 14H6V18H12V14M18.96 12L18.36 9H5.64L5.04 12H18.96M15 18V20H23V18H15Z\";\nexport var mdiStoreOff = \"M9.2 6L7.2 4H20V6H9.2M20 16.8V14H21V12L20 7H10.2L17.2 14H18V14.8L20 16.8M22.11 21.46L20.84 22.73L14 15.89V20H4V14H3V12L4 7H5.11L1.11 3L2.39 1.73L22.11 21.46M12 14H6V18H12V14Z\";\nexport var mdiStoreOffOutline = \"M2.39 1.73L1.11 3L5.11 7H4L3 12V14H4V20H14V15.89L20.84 22.73L22.11 21.46L2.39 1.73M5.64 9H7.11L10.11 12H5.04L5.64 9M12 18H6V14H12V18M18 14.8V14H17.2L15.2 12H18.96L18.36 9H12.2L10.2 7H20L21 12V14H20V16.8L18 14.8M9.2 6L7.2 4H20V6H9.2Z\";\nexport var mdiStoreOutline = \"M18.36 9L18.96 12H5.04L5.64 9H18.36M20 4H4V6H20V4M20 7H4L3 12V14H4V20H14V14H18V20H20V14H21V12L20 7M6 18V14H12V18H6Z\";\nexport var mdiStorePlus = \"M4 4V6H20V4M4 7L3 12V14H4V20H13C12.95 19.66 12.92 19.31 12.92 18.95C12.92 17.73 13.3 16.53 14 15.53V14H15.54C16.54 13.33 17.71 12.96 18.91 12.96C19.62 12.96 20.33 13.09 21 13.34V12L20 7M6 14H12V18H6M18 15V18H15V20H18V23H20V20H23V18H20V15\";\nexport var mdiStorePlusOutline = \"M20 6H4V4H20V6M15.69 14H14V15.69C13.37 16.64 13 17.77 13 19C13 19.34 13.04 19.67 13.09 20H4V14H3V12L4 7H20L21 12V13.35C20.37 13.13 19.7 13 19 13C17.77 13 16.64 13.37 15.69 14M12 14H6V18H12V14M18.96 12L18.36 9H5.64L5.04 12H18.96M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiStoreRemove = \"M4 4H20V6H4V4M15.46 16.88L16.88 15.46L19 17.59L21.12 15.47L22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.47 16.88M4 7H20L21 12V13.34C20.33 13.09 19.62 12.96 18.91 12.96C17.71 12.96 16.54 13.33 15.54 14H14V15.53C13.3 16.53 12.92 17.73 12.92 18.95L13 20H4V14H3V12L4 7M6 14V18H12V14H6Z\";\nexport var mdiStoreRemoveOutline = \"M20 6H4V4H20V6M15.69 14H14V15.69C13.37 16.64 13 17.77 13 19C13 19.34 13.04 19.67 13.09 20H4V14H3V12L4 7H20L21 12V13.35C20.37 13.13 19.7 13 19 13C17.77 13 16.64 13.37 15.69 14M12 14H6V18H12V14M18.96 12L18.36 9H5.64L5.04 12H18.96M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiStoreSearch = \"M11.9 10.9C10.64 12.17 10 13.84 10 15.5V12H4V16H10V15.5C10 16.35 10.17 17.2 10.5 18H2V12H1V10L2 5H18L18.89 9.46C16.56 8.53 13.79 9 11.9 10.9M18 2H2V4H18V2M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiStoreSearchOutline = \"M18 4H2V2H18V4M13.04 10H3.04L3.64 7H16.36L16.76 9C17.5 9.04 18.21 9.19 18.89 9.46L18 5H2L1 10V12H2V18H10.5C10.17 17.2 10 16.35 10 15.5V16H4V12H10V15.5C10 13.84 10.64 12.17 11.9 10.9C12.26 10.55 12.64 10.25 13.04 10M23.39 21L22 22.39L18.88 19.32C18.19 19.75 17.37 20 16.5 20C14 20 12 18 12 15.5S14 11 16.5 11 21 13 21 15.5C21 16.38 20.75 17.21 20.31 17.9L23.39 21M19 15.5C19 14.12 17.88 13 16.5 13S14 14.12 14 15.5 15.12 18 16.5 18 19 16.88 19 15.5Z\";\nexport var mdiStoreSettings = \"M20 6H4V4H20V6M21 12V14H20V20H18V14H14V20H4V14H3V12L4 7H20L21 12M12 14H6V18H12V14M7 24H9V22H7V24M11 24H13V22H11V24M15 24H17V22H15V24Z\";\nexport var mdiStoreSettingsOutline = \"M20 6H4V4H20V6M21 12V14H20V20H18V14H14V20H4V14H3V12L4 7H20L21 12M12 14H6V18H12V14M18.96 12L18.36 9H5.64L5.04 12H18.96M7 24H9V22H7V24M11 24H13V22H11V24M15 24H17V22H15V24Z\";\nexport var mdiStorefront = \"M5.06 3C4.63 3 4.22 3.14 3.84 3.42C3.46 3.7 3.24 4.06 3.14 4.5L2.11 8.91C1.86 10 2.06 10.92 2.69 11.73C2.81 11.85 2.93 11.97 3.04 12.07C3.63 12.64 4.28 13 5.22 13C6.16 13 6.91 12.59 7.47 12.05C8.1 12.67 8.86 13 9.8 13C10.64 13 11.44 12.63 12 12.07C12.68 12.7 13.45 13 14.3 13C15.17 13 15.91 12.67 16.54 12.05C17.11 12.62 17.86 13 18.81 13C19.76 13 20.43 12.65 21 12.06C21.09 11.97 21.18 11.87 21.28 11.77C21.94 10.95 22.14 10 21.89 8.91L20.86 4.5C20.73 4.06 20.5 3.7 20.13 3.42C19.77 3.14 19.38 3 18.94 3M18.89 4.97L19.97 9.38C20.06 9.81 19.97 10.2 19.69 10.55C19.44 10.86 19.13 11 18.75 11C18.44 11 18.17 10.9 17.95 10.66C17.73 10.43 17.61 10.16 17.58 9.84L16.97 5M5.06 5H7.03L6.42 9.84C6.3 10.63 5.91 11 5.25 11C4.84 11 4.53 10.86 4.31 10.55C4.03 10.2 3.94 9.81 4.03 9.38M9.05 5H11V9.7C11 10.05 10.89 10.35 10.64 10.62C10.39 10.88 10.08 11 9.7 11C9.36 11 9.07 10.88 8.84 10.59C8.61 10.3 8.5 10 8.5 9.66V9.5M13 5H14.95L15.5 9.5C15.58 9.92 15.5 10.27 15.21 10.57C14.95 10.87 14.61 11 14.2 11C13.89 11 13.61 10.88 13.36 10.62C13.11 10.35 13 10.05 13 9.7M3 14.03V19C3 20.11 3.89 21 5 21C9.67 21 14.33 21 19 21C20.1 21 21 20.11 21 19V14.05C20.45 14.63 19.75 14.96 19 15C18 15.03 17.25 14.74 16.54 14.05C15.94 14.65 15.14 15 14.3 15C13.4 15 12.6 14.64 12 14.07C11.43 14.64 10.65 15 9.78 15C8.87 15 8.07 14.65 7.47 14.05C6.89 14.64 6.1 15 5.23 15C4.33 15 3.66 14.65 3 14.03Z\";\nexport var mdiStorefrontCheck = \"M5.06 3C4.63 3 4.22 3.14 3.84 3.42S3.24 4.06 3.14 4.5L2.11 8.91C1.86 10 2.06 10.92 2.69 11.73C2.81 11.85 2.93 11.97 3.04 12.07C3.63 12.64 4.28 13 5.22 13S6.91 12.59 7.47 12.05C8.1 12.67 8.86 13 9.8 13C10.64 13 11.44 12.63 12 12.07C12.68 12.7 13.45 13 14.3 13C15.17 13 15.91 12.67 16.54 12.05C17.11 12.62 17.86 13 18.81 13S20.43 12.65 21 12.06L21.13 11.92C21.18 11.87 21.23 11.82 21.28 11.77C21.94 10.95 22.14 10 21.89 8.91L20.86 4.5C20.73 4.06 20.5 3.7 20.13 3.42C19.77 3.14 19.38 3 18.94 3M18.89 4.97L19.97 9.38C20.06 9.81 19.97 10.2 19.69 10.55C19.44 10.86 19.13 11 18.75 11C18.44 11 18.17 10.9 17.95 10.66C17.73 10.43 17.61 10.16 17.58 9.84L16.97 5M5.06 5H7.03L6.42 9.84C6.3 10.63 5.91 11 5.25 11C4.84 11 4.53 10.86 4.31 10.55C4.03 10.2 3.94 9.81 4.03 9.38M9.05 5H11V9.7C11 10.05 10.89 10.35 10.64 10.62C10.39 10.88 10.08 11 9.7 11C9.36 11 9.07 10.88 8.84 10.59S8.5 10 8.5 9.66V9.5M13 5H14.95L15.5 9.5C15.58 9.92 15.5 10.27 15.21 10.57C14.95 10.87 14.61 11 14.2 11C13.89 11 13.61 10.88 13.36 10.62C13.11 10.35 13 10.05 13 9.7M12.97 14.72C12.61 14.56 12.28 14.34 12 14.07C11.43 14.64 10.65 15 9.78 15C8.87 15 8.07 14.65 7.47 14.05C6.89 14.64 6.1 15 5.23 15C4.33 15 3.66 14.65 3 14.03V19C3 20.11 3.89 21 5 21H12.8C12.29 20.12 12 19.09 12 18C12 16.79 12.36 15.66 12.97 14.72M17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84L21.75 16.25Z\";\nexport var mdiStorefrontCheckOutline = \"M5.06 3C4.63 3 4.22 3.14 3.84 3.42S3.24 4.06 3.14 4.5L2.11 8.91C1.86 10 2.06 10.92 2.69 11.73C2.8 11.84 2.9 11.94 3 12.03V19C3 19.5 3.2 20 3.61 20.39S4.5 21 5 21H12.8C12.45 20.39 12.2 19.72 12.08 19H5V13C5.07 13 5.15 13 5.22 13C6.16 13 6.91 12.59 7.47 12.05C8.1 12.67 8.86 13 9.8 13C10.64 13 11.44 12.63 12 12.07C12.68 12.7 13.45 13 14.3 13C15.17 13 15.91 12.67 16.54 12.05C17.11 12.62 17.86 13 18.81 13S20.43 12.65 21 12.06L21.13 11.92C21.18 11.87 21.23 11.82 21.28 11.77C21.94 10.95 22.14 10 21.89 8.91L20.86 4.5C20.73 4.06 20.5 3.7 20.13 3.42C19.77 3.14 19.38 3 18.94 3M18.89 4.97L19.97 9.38C20.06 9.81 19.97 10.2 19.69 10.55C19.44 10.86 19.13 11 18.75 11C18.44 11 18.17 10.9 17.95 10.66C17.73 10.43 17.61 10.16 17.58 9.84L16.97 5M5.06 5H7.03L6.42 9.84C6.3 10.63 5.91 11 5.25 11C4.84 11 4.53 10.86 4.31 10.55C4.03 10.2 3.94 9.81 4.03 9.38M9.05 5H11V9.7C11 10.05 10.89 10.35 10.64 10.62C10.39 10.88 10.08 11 9.7 11C9.36 11 9.07 10.88 8.84 10.59S8.5 10 8.5 9.66V9.5M13 5H14.95L15.5 9.5C15.58 9.92 15.5 10.27 15.21 10.57C14.95 10.87 14.61 11 14.2 11C13.89 11 13.61 10.88 13.36 10.62C13.11 10.35 13 10.05 13 9.7M17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84L21.75 16.25Z\";\nexport var mdiStorefrontEdit = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22 9.41 22 9.87 21.95 10.31C21.23 10.03 20.4 10.1 19.73 10.5C20 10.17 20.06 9.79 19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C18.91 11 19.06 10.97 19.2 10.92L19.07 11.06L19.06 11.05L17.42 12.69C17.09 12.53 16.8 12.31 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13S3.63 12.64 3.04 12.07C2.93 11.97 2.81 11.85 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5M21.11 15.93L19.06 13.88L13 19.94V22H15.06M14.3 15C14.63 15 14.96 14.95 15.27 14.84L11 19.11V21H5C3.89 21 3 20.11 3 19V14.03C3.66 14.65 4.33 15 5.23 15C6.1 15 6.89 14.64 7.47 14.05C8.07 14.65 8.87 15 9.78 15C10.65 15 11.43 14.64 12 14.07C12.6 14.64 13.4 15 14.3 15M22.7 14.35L21.7 15.35L19.65 13.3L20.65 12.3C20.72 12.23 20.81 12.18 20.9 12.16C21.08 12.11 21.28 12.16 21.42 12.3L22.7 13.58C22.91 13.79 22.91 14.14 22.7 14.35Z\";\nexport var mdiStorefrontEditOutline = \"M5.06 3C4.63 3 4.22 3.14 3.84 3.42S3.24 4.06 3.14 4.5L2.11 8.91C1.86 10 2.06 10.95 2.72 11.77L3 12.05V19C3 19.5 3.2 20 3.61 20.39S4.5 21 5 21H11V19.11L11.11 19H5V13H5.25C6.16 13 6.89 12.67 7.45 12.05C8.08 12.67 8.86 13 9.8 13C10.64 13 11.38 12.67 12 12.05C12.69 12.67 13.45 13 14.3 13C15.17 13 15.92 12.67 16.55 12.05C16.8 12.33 17.09 12.54 17.41 12.7L19.06 11.05L19.07 11.06L19.2 10.92C19.06 10.97 18.91 11 18.75 11C18.44 11 18.17 10.9 17.95 10.66C17.73 10.43 17.61 10.16 17.58 9.84L16.97 5L18.89 4.97L19.97 9.38C20.06 9.79 20 10.16 19.73 10.5C20.4 10.1 21.23 10.03 21.95 10.31C22 9.87 22 9.41 21.89 8.91L20.86 4.5C20.73 4.06 20.5 3.7 20.13 3.42C19.77 3.14 19.38 3 18.94 3M5.06 5H7.03L6.42 9.84C6.3 10.63 5.91 11 5.25 11C4.84 11 4.53 10.86 4.31 10.55C4.03 10.2 3.94 9.81 4.03 9.38M9.05 5H11V9.7C11 10.05 10.89 10.35 10.64 10.62C10.39 10.88 10.08 11 9.7 11C9.36 11 9.07 10.88 8.84 10.59S8.5 10 8.5 9.66V9.5M13 5H14.95L15.5 9.5C15.58 9.92 15.5 10.27 15.21 10.57C14.95 10.87 14.61 11 14.2 11C13.89 11 13.61 10.88 13.36 10.62C13.11 10.35 13 10.05 13 9.7M15.06 22H13V19.94L19.06 13.88L21.11 15.93M20.65 12.3C20.75 12.2 20.87 12.15 21 12.14C21.15 12.14 21.31 12.19 21.42 12.3L22.7 13.58C22.91 13.79 22.91 14.14 22.7 14.35L21.7 15.35L19.65 13.3Z\";\nexport var mdiStorefrontMinus = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13S3.63 12.64 3.04 12.07C2.93 11.97 2.81 11.85 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84L7.03 5M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7V5M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5L14.95 5M22 17V19H14V17H22M12 14.07C12.28 14.34 12.61 14.56 12.97 14.72C12.36 15.66 12 16.79 12 18C12 19.09 12.29 20.12 12.8 21H5C3.89 21 3 20.11 3 19V14.03C3.66 14.65 4.33 15 5.23 15C6.1 15 6.89 14.64 7.47 14.05C8.07 14.65 8.87 15 9.78 15C10.65 15 11.43 14.64 12 14.07Z\";\nexport var mdiStorefrontMinusOutline = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13C5.15 13 5.07 13 5 13V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C4.5 21 4 20.78 3.61 20.39S3 19.5 3 19V12.03C2.9 11.94 2.8 11.84 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84L7.03 5M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7V5M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5L14.95 5M14 17V19H22V17H14Z\";\nexport var mdiStorefrontOutline = \"M5.06 3C4.63 3 4.22 3.14 3.84 3.42S3.24 4.06 3.14 4.5L2.11 8.91C1.86 10 2.06 10.95 2.72 11.77L3 12.05V19C3 19.5 3.2 20 3.61 20.39S4.5 21 5 21H19C19.5 21 20 20.8 20.39 20.39S21 19.5 21 19V12.05L21.28 11.77C21.94 10.95 22.14 10 21.89 8.91L20.86 4.5C20.73 4.06 20.5 3.7 20.13 3.42C19.77 3.14 19.38 3 18.94 3H5.06M18.89 4.97L19.97 9.38C20.06 9.81 19.97 10.2 19.69 10.55C19.44 10.86 19.13 11 18.75 11C18.44 11 18.17 10.9 17.95 10.66C17.73 10.43 17.61 10.16 17.58 9.84L16.97 5L18.89 4.97M5.06 5H7.03L6.42 9.84C6.3 10.63 5.91 11 5.25 11C4.84 11 4.53 10.86 4.31 10.55C4.03 10.2 3.94 9.81 4.03 9.38L5.06 5M9.05 5H11V9.7C11 10.05 10.89 10.35 10.64 10.62C10.39 10.88 10.08 11 9.7 11C9.36 11 9.07 10.88 8.84 10.59S8.5 10 8.5 9.66V9.5L9.05 5M13 5H14.95L15.5 9.5C15.58 9.92 15.5 10.27 15.21 10.57C14.95 10.87 14.61 11 14.2 11C13.89 11 13.61 10.88 13.36 10.62C13.11 10.35 13 10.05 13 9.7V5M7.45 12.05C8.08 12.67 8.86 13 9.8 13C10.64 13 11.38 12.67 12 12.05C12.69 12.67 13.45 13 14.3 13C15.17 13 15.92 12.67 16.55 12.05C17.11 12.67 17.86 13 18.8 13H19.03V19H5V13H5.25C6.16 13 6.89 12.67 7.45 12.05Z\";\nexport var mdiStorefrontPlus = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13S3.63 12.64 3.04 12.07C2.93 11.97 2.81 11.85 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5M17 14H19V17H22V19H19V22H17V19H14V17H17M12 14.07C12.28 14.34 12.61 14.56 12.97 14.72C12.36 15.66 12 16.79 12 18C12 19.09 12.29 20.12 12.8 21H5C3.89 21 3 20.11 3 19V14.03C3.66 14.65 4.33 15 5.23 15C6.1 15 6.89 14.64 7.47 14.05C8.07 14.65 8.87 15 9.78 15C10.65 15 11.43 14.64 12 14.07Z\";\nexport var mdiStorefrontPlusOutline = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13C5.15 13 5.07 13 5 13V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C4.5 21 4 20.78 3.61 20.39S3 19.5 3 19V12.03C2.9 11.94 2.8 11.84 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5M19 14H17V17H14V19H17V22H19V19H22V17H19Z\";\nexport var mdiStorefrontRemove = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13S3.63 12.64 3.04 12.07C2.93 11.97 2.81 11.85 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84L7.03 5M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7V5M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5L14.95 5M20.12 14.46L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.47 20.12L16.59 18L14.47 15.88L15.88 14.47L18 16.59L20.12 14.46M12 14.07C12.28 14.34 12.61 14.56 12.97 14.72C12.36 15.66 12 16.79 12 18C12 19.09 12.29 20.12 12.8 21H5C3.89 21 3 20.11 3 19V14.03C3.66 14.65 4.33 15 5.23 15C6.1 15 6.89 14.64 7.47 14.05C8.07 14.65 8.87 15 9.78 15C10.65 15 11.43 14.64 12 14.07Z\";\nexport var mdiStorefrontRemoveOutline = \"M3.84 3.42C4.22 3.14 4.63 3 5.06 3H18.94C19.38 3 19.77 3.14 20.13 3.42C20.5 3.7 20.73 4.06 20.86 4.5L21.89 8.91C22.14 10 21.94 10.95 21.28 11.77C21.23 11.82 21.18 11.87 21.13 11.92L21 12.06C20.43 12.65 19.76 13 18.81 13S17.11 12.62 16.54 12.05C15.91 12.67 15.17 13 14.3 13C13.45 13 12.68 12.7 12 12.07C11.44 12.63 10.64 13 9.8 13C8.86 13 8.1 12.67 7.47 12.05C6.91 12.59 6.16 13 5.22 13C5.15 13 5.07 13 5 13V19H12.08C12.2 19.72 12.45 20.39 12.8 21H5C4.5 21 4 20.78 3.61 20.39S3 19.5 3 19V12.03C2.9 11.94 2.8 11.84 2.69 11.73C2.06 10.92 1.86 10 2.11 8.91L3.14 4.5C3.24 4.06 3.46 3.7 3.84 3.42M19.97 9.38L18.89 4.97L16.97 5L17.58 9.84C17.61 10.16 17.73 10.43 17.95 10.66C18.17 10.9 18.44 11 18.75 11C19.13 11 19.44 10.86 19.69 10.55C19.97 10.2 20.06 9.81 19.97 9.38M7.03 5H5.06L4.03 9.38C3.94 9.81 4.03 10.2 4.31 10.55C4.53 10.86 4.84 11 5.25 11C5.91 11 6.3 10.63 6.42 9.84L7.03 5M11 5H9.05L8.5 9.5V9.66C8.5 10 8.61 10.3 8.84 10.59S9.36 11 9.7 11C10.08 11 10.39 10.88 10.64 10.62C10.89 10.35 11 10.05 11 9.7V5M14.95 5H13V9.7C13 10.05 13.11 10.35 13.36 10.62C13.61 10.88 13.89 11 14.2 11C14.61 11 14.95 10.87 15.21 10.57C15.5 10.27 15.58 9.92 15.5 9.5L14.95 5M21.54 15.88L20.12 14.47L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.54L18 19.41L20.12 21.54L21.54 20.12L19.41 18L21.54 15.88Z\";\nexport var mdiStove = \"M6,14H8L11,17H9L6,14M4,4H5V3A1,1 0 0,1 6,2H10A1,1 0 0,1 11,3V4H13V3A1,1 0 0,1 14,2H18A1,1 0 0,1 19,3V4H20A2,2 0 0,1 22,6V19A2,2 0 0,1 20,21V22H17V21H7V22H4V21A2,2 0 0,1 2,19V6A2,2 0 0,1 4,4M18,7A1,1 0 0,1 19,8A1,1 0 0,1 18,9A1,1 0 0,1 17,8A1,1 0 0,1 18,7M14,7A1,1 0 0,1 15,8A1,1 0 0,1 14,9A1,1 0 0,1 13,8A1,1 0 0,1 14,7M20,6H4V10H20V6M4,19H20V12H4V19M6,7A1,1 0 0,1 7,8A1,1 0 0,1 6,9A1,1 0 0,1 5,8A1,1 0 0,1 6,7M13,14H15L18,17H16L13,14Z\";\nexport var mdiStrategy = \"M6.91 5.5L9.21 7.79L7.79 9.21L5.5 6.91L3.21 9.21L1.79 7.79L4.09 5.5L1.79 3.21L3.21 1.79L5.5 4.09L7.79 1.79L9.21 3.21M22.21 16.21L20.79 14.79L18.5 17.09L16.21 14.79L14.79 16.21L17.09 18.5L14.79 20.79L16.21 22.21L18.5 19.91L20.79 22.21L22.21 20.79L19.91 18.5M20.4 6.83L17.18 11L15.6 9.73L16.77 8.23A9.08 9.08 0 0 0 10.11 13.85A4.5 4.5 0 1 1 7.5 13A4 4 0 0 1 8.28 13.08A11.27 11.27 0 0 1 16.43 6.26L15 5.18L16.27 3.6M10 17.5A2.5 2.5 0 1 0 7.5 20A2.5 2.5 0 0 0 10 17.5Z\";\nexport var mdiStretchToPage = \"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M9,19H5V15L6.29,16.29L7.83,14.75L9.25,16.17L7.71,17.71M7.83,9.25L6.29,7.71L5,9V5H9L7.71,6.29L9.25,7.83M19,19H15L16.29,17.71L14.75,16.17L16.17,14.75L17.71,16.29L19,15M19,9L17.71,7.71L16.17,9.25L14.75,7.83L16.29,6.29L15,5H19\";\nexport var mdiStretchToPageOutline = \"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M20,20H4V4H20M8.83,10.25L7.29,8.71L6,10V6H10L8.71,7.29L10.25,8.83M13.75,8.83L15.29,7.29L14,6H18V10L16.71,8.71L15.17,10.25M15.17,13.75L16.71,15.29L18,14V18H14L15.29,16.71L13.75,15.17M10.25,15.17L8.71,16.71L10,18H6V14L7.29,15.29L8.83,13.75\";\nexport var mdiStringLights = \"M22.56 11.39C22.36 10.59 21.82 9.85 21.05 9.44L20.63 7.74C21.11 7.58 21.57 7.41 22 7.23V5C20 6.07 16.53 7.03 12 7.03S4 6.07 2 5V7.23C2.43 7.41 2.89 7.58 3.37 7.74L2.95 9.44C2.18 9.85 1.64 10.59 1.44 11.39C.905 13.57 .385 17.31 2.92 17.93C4 18.2 6 17.89 7.27 12.82C7.46 12 7.33 11.12 6.84 10.39L7.26 8.67C8.14 8.81 9.05 8.9 10 8.96V10.74C9.35 11.33 9 12.17 9 13C9 15.24 9.39 19 12 19C13.12 19 15 18.22 15 13C15 12.17 14.65 11.33 14 10.74V8.96C14.95 8.9 15.86 8.81 16.74 8.67L17.16 10.39C16.67 11.12 16.54 12 16.73 12.82C18 17.89 20 18.2 21.08 17.93C23.61 17.31 23.09 13.57 22.56 11.39M5.81 12.47C5.81 12.47 4.74 16.84 3.28 16.5C1.82 16.12 2.9 11.75 2.9 11.75S3.26 10.29 4.71 10.65 5.81 12.47 5.81 12.47M12 17.5C10.5 17.5 10.5 13 10.5 13S10.5 11.5 12 11.5 13.5 13 13.5 13 13.5 17.5 12 17.5M20.72 16.5C19.27 16.84 18.19 12.47 18.19 12.47S17.83 11 19.29 10.65 21.1 11.75 21.1 11.75 22.18 16.12 20.72 16.5Z\";\nexport var mdiStringLightsOff = \"M14 10.74V8.96C14.95 8.9 15.86 8.81 16.74 8.67L17.16 10.39C16.67 11.12 16.54 12 16.73 12.82C16.82 13.17 16.91 13.5 17 13.8L21.12 17.92C23.61 17.26 23.09 13.55 22.56 11.39C22.36 10.59 21.82 9.85 21.05 9.44L20.63 7.74C21.11 7.58 21.57 7.41 22 7.23V5C20 6.07 16.53 7.03 12 7.03C11.37 7.03 10.76 7 10.17 6.97M20.72 16.5C19.27 16.84 18.19 12.47 18.19 12.47S17.83 11 19.29 10.65 21.1 11.75 21.1 11.75 22.18 16.12 20.72 16.5M14.95 14.29L13.5 12.83V12.83L12.18 11.5H12.18L10 9.34V9.34L9.58 8.93H9.59L7.32 6.66H7.32L2.39 1.73L1.11 3L3.91 5.8C3.19 5.55 2.53 5.28 2 5V7.23C2.43 7.41 2.89 7.58 3.37 7.74L2.95 9.44C2.18 9.85 1.64 10.59 1.44 11.39C.905 13.57 .385 17.31 2.92 17.93C4 18.2 6 17.89 7.27 12.82C7.46 12 7.33 11.12 6.84 10.39L7.17 9.06L9.5 11.38C9.18 11.87 9 12.44 9 13C9 15.24 9.39 19 12 19C12.8 19 13.97 18.59 14.59 16.5L20.84 22.73L22.11 21.46L14.95 14.3L14.95 14.29M5.81 12.47C5.81 12.47 4.74 16.84 3.28 16.5C1.82 16.12 2.9 11.75 2.9 11.75S3.26 10.29 4.71 10.65 5.81 12.47 5.81 12.47M12 17.5C10.5 17.5 10.5 13 10.5 13S10.5 12.77 10.6 12.5L13.32 15.21C13.13 16.35 12.76 17.5 12 17.5Z\";\nexport var mdiSubdirectoryArrowLeft = \"M11,9L12.42,10.42L8.83,14H18V4H20V16H8.83L12.42,19.58L11,21L5,15L11,9Z\";\nexport var mdiSubdirectoryArrowRight = \"M19,15L13,21L11.58,19.58L15.17,16H4V4H6V14H15.17L11.58,10.42L13,9L19,15Z\";\nexport var mdiSubmarine = \"M8 3.67C6.78 4.53 5.39 4.93 4 5H2V7H4C5.37 7 6.74 6.65 8 6C10.5 7.3 13.5 7.3 16 6C17.26 6.65 18.62 6.94 20 7H22V5H20C18.61 5 17.22 4.53 16 3.67C13.56 5.38 10.44 5.38 8 3.67M16 8.67L15 10V12H14L12 14H9L6 16L5 14H4V16L2 17L4 18V20H5.14L6 18L9 20H20A2 2 0 0 0 22 18V16A2 2 0 0 0 20 14H18L17 13V12H16V10H17V8.67Z\";\nexport var mdiSubtitles = \"M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M4,12H8V14H4V12M14,18H4V16H14V18M20,18H16V16H20V18M20,14H10V12H20V14Z\";\nexport var mdiSubtitlesOutline = \"M20,4A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20M20,18V6H4V18H20M6,10H8V12H6V10M6,14H14V16H6V14M16,14H18V16H16V14M10,10H18V12H10V10Z\";\nexport var mdiSubway = \"M8.5,15A1,1 0 0,1 9.5,16A1,1 0 0,1 8.5,17A1,1 0 0,1 7.5,16A1,1 0 0,1 8.5,15M7,9H17V14H7V9M15.5,15A1,1 0 0,1 16.5,16A1,1 0 0,1 15.5,17A1,1 0 0,1 14.5,16A1,1 0 0,1 15.5,15M18,15.88V9C18,6.38 15.32,6 12,6C9,6 6,6.37 6,9V15.88A2.62,2.62 0 0,0 8.62,18.5L7.5,19.62V20H9.17L10.67,18.5H13.5L15,20H16.5V19.62L15.37,18.5C16.82,18.5 18,17.33 18,15.88M17.8,2.8C20.47,3.84 22,6.05 22,8.86V22H2V8.86C2,6.05 3.53,3.84 6.2,2.8C8,2.09 10.14,2 12,2C13.86,2 16,2.09 17.8,2.8Z\";\nexport var mdiSubwayAlertVariant = \"M16 11V6H11V11H16M14.5 17C15.3 17 16 16.3 16 15.5C16 14.7 15.3 14 14.5 14S13 14.7 13 15.5C13 16.3 13.7 17 14.5 17M9 11V6H4V11H9M5.5 17C6.3 17 7 16.3 7 15.5C7 14.7 6.3 14 5.5 14S4 14.7 4 15.5C4 16.3 4.7 17 5.5 17M10 2C14.4 2 18 2.5 18 6V15.5C18 17.4 16.4 19 14.5 19L16 20.5V21H4V20.5L5.5 19C3.6 19 2 17.4 2 15.5V6C2 2.5 5.6 2 10 2M20 13V7H22V13H20M20 17V15H22V17H20Z\";\nexport var mdiSubwayVariant = \"M18,11H13V6H18M16.5,17A1.5,1.5 0 0,1 15,15.5A1.5,1.5 0 0,1 16.5,14A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 16.5,17M11,11H6V6H11M7.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,14A1.5,1.5 0 0,1 9,15.5A1.5,1.5 0 0,1 7.5,17M12,2C7.58,2 4,2.5 4,6V15.5A3.5,3.5 0 0,0 7.5,19L6,20.5V21H18V20.5L16.5,19A3.5,3.5 0 0,0 20,15.5V6C20,2.5 16.42,2 12,2Z\";\nexport var mdiSummit = \"M15,3H17L22,5L17,7V10.17L22,21H2L8,13L11.5,17.7L15,10.17V3Z\";\nexport var mdiSunAngle = \"M13.8 5.2C13 5 12.2 5 11.4 5L14.6 2.3L16 6.3C15.3 5.8 14.6 5.5 13.8 5.2M7 7.1C7.6 6.5 8.3 6 9 5.7L4.9 4.9L5.6 9C6 8.3 6.4 7.6 7 7.1M5.2 13.8C5 13 5 12.2 5 11.4L2.3 14.6L6.3 16C5.8 15.4 5.4 14.6 5.2 13.8M22 19V21H3L8.4 15.5C6.5 13.5 6.5 10.4 8.4 8.4C10.3 6.5 13.5 6.5 15.4 8.4L18.4 5.4L19.8 6.8L7.7 19H22Z\";\nexport var mdiSunAngleOutline = \"M13.8 5.2C13 5 12.2 5 11.4 5L14.6 2.3L16 6.3C15.3 5.8 14.6 5.5 13.8 5.2M7 7.1C7.6 6.5 8.3 6 9 5.7L4.9 4.9L5.6 9C6 8.3 6.4 7.6 7 7.1M5.2 13.8C5 13 5 12.2 5 11.4L2.3 14.6L6.3 16C5.8 15.4 5.4 14.6 5.2 13.8M22 19V21H3L8.4 15.5C6.5 13.5 6.5 10.4 8.4 8.4C10.3 6.5 13.5 6.5 15.4 8.4L18.4 5.4L19.8 6.8L7.7 19H22M9.8 14.1L14 9.8C12.8 8.7 11 8.7 9.8 9.8C8.7 11 8.7 12.9 9.8 14.1Z\";\nexport var mdiSunClock = \"M18.1 9.3L19.6 6L15.5 5.6C16.1 6.1 16.6 6.7 17 7.5C17.3 8.1 17.5 8.6 17.7 9.2C17.2 9.1 16.6 9 16 9H15.6C14.8 7.2 13.1 6 11 6C8.2 6 6 8.2 6 11C6 13.1 7.2 14.8 9 15.6V16C9 19.9 12.1 23 16 23S23 19.9 23 16C23 12.9 20.9 10.2 18.1 9.3M16 21C13.2 21 11 18.8 11 16S13.2 11 16 11 21 13.2 21 16 18.8 21 16 21M16.5 16.2L19.4 17.9L18.6 19.1L15 17V12H16.5V16.2M11 4C10.2 4 9.4 4.2 8.6 4.4L11 1L13.4 4.4C12.6 4.2 11.8 4 11 4M4.9 14.5C5.3 15.2 5.9 15.9 6.5 16.4L2.4 16L4.2 12.2C4.3 13 4.5 13.8 4.9 14.5M4.1 9.8L2.3 6L6.5 5.7C5.9 6.2 5.4 6.8 4.9 7.5C4.5 8.2 4.2 9 4.1 9.8Z\";\nexport var mdiSunClockOutline = \"M18.1 9.32L19.65 6L15.5 5.64C16.1 6.15 16.63 6.78 17.05 7.5C17.37 8.05 17.58 8.63 17.73 9.22C17.18 9.08 16.6 9 16 9C15.86 9 15.72 9 15.58 9C14.81 7.25 13.06 6 11 6C8.24 6 6 8.24 6 11C6 13.06 7.25 14.81 9 15.58C9 15.72 9 15.86 9 16C9 19.87 12.13 23 16 23S23 19.87 23 16C23 12.87 20.94 10.21 18.1 9.32M8 11C8 9.35 9.35 8 11 8C12.08 8 13.03 8.58 13.56 9.45C11.66 10.15 10.15 11.66 9.45 13.56C8.58 13.03 8 12.08 8 11M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25M11 4C10.16 4 9.35 4.15 8.61 4.42L11 1L13.39 4.42C12.65 4.15 11.84 4 11 4M4.95 14.5C5.37 15.24 5.91 15.86 6.5 16.37L2.36 16L4.12 12.23C4.26 13 4.53 13.78 4.95 14.5M4.11 9.79L2.34 6L6.5 5.65C5.9 6.16 5.36 6.78 4.94 7.5C4.5 8.24 4.25 9 4.11 9.79Z\";\nexport var mdiSunCompass = \"M9.7 4.3L12 1L14.3 4.3C13.6 4.1 12.8 4 12 4S10.4 4.1 9.7 4.3M17.5 6.2C18.6 7.3 19.5 8.7 19.8 10.3L21.5 6.6L17.5 6.2M5 8.1C5.1 8 5.1 8 5 8.1C5.1 8 5.1 8 5.1 7.9C5.5 7.3 6 6.7 6.5 6.2L2.5 6.5L4.2 10.2C4.4 9.5 4.7 8.7 5 8.1M19.2 15.4C19.2 15.4 19.2 15.5 19.2 15.4C19.1 15.6 19 15.8 18.9 15.9V16.1C18.5 16.8 18 17.3 17.5 17.9L21.6 17.6L19.9 13.9C19.7 14.4 19.5 14.9 19.2 15.4M5.2 16.2C5.2 16.1 5.1 16.1 5.1 16C5 15.9 5 15.9 5 15.8C4.9 15.6 4.8 15.5 4.8 15.3C4.6 14.8 4.4 14.3 4.3 13.8L2.6 17.5L6.7 17.8C6 17.3 5.6 16.8 5.2 16.2M12.6 20H11.4C10.8 20 10.2 19.8 9.7 19.7L12 23L14.3 19.7C13.8 19.8 13.2 19.9 12.6 20M16.2 7.8C13.9 5.5 10.1 5.5 7.7 7.8S5.4 13.9 7.7 16.3 13.8 18.6 16.2 16.3 18.6 10.1 16.2 7.8M8.5 15.5L10.6 10.6L15.6 8.4L13.5 13.3L8.5 15.5M12.7 12.7C12.3 13.1 11.7 13.1 11.3 12.7C10.9 12.3 10.9 11.7 11.3 11.3C11.7 10.9 12.3 10.9 12.7 11.3C13.1 11.7 13.1 12.3 12.7 12.7Z\";\nexport var mdiSunSnowflake = \"M12 .69L8.69 4H4V8.69L.69 12L4 15.31V20H8.69L12 23.31L13 22.31V17.83L16.24 21.07L17.66 19.66L13 15V13H15L19.66 17.66L21.07 16.24L17.83 13H22V11H17.83L21.07 7.76L19.66 6.34L15 11H13V9L17.66 4.34L16.24 2.93L13 6.17V1.69M11 6.09V8.13C9.24 8.59 8 10.18 8 12C8 13.82 9.24 15.41 11 15.87V17.91C8.12 17.42 6 14.93 6 12C6 9.07 8.11 6.57 11 6.09Z\";\nexport var mdiSunSnowflakeVariant = \"M12.92 1.58L11.18 2.58L12.39 4.67L11.8 6.85L9 7.6L7.38 6L7.42 3.59L5.43 3.59L5.43 5.42L3.59 5.42L3.6 7.42L6 7.42L7.65 9.03L6.9 11.82L4.68 12.4L2.59 11.2L1.59 12.93L3.17 13.84L2.26 15.42L4 16.42L5.19 14.33L7.42 13.75L7.92 14.26L9.32 12.86L8.78 12.32L9.53 9.54L12.32 8.78L12.85 9.32L14.26 7.91L13.73 7.37L14.32 5.19L16.41 4L15.41 2.25L13.83 3.16L12.92 1.58M20.72 4L4 20.72L5.27 22L10.16 17.11C10.63 17.43 11.15 17.68 11.71 17.83C14.38 18.55 17.12 16.96 17.83 14.29C18.22 12.86 17.93 11.36 17.11 10.16L22 5.27L20.72 4M18.74 9C19.18 9.63 19.53 10.38 19.75 11.19C19.97 12 20.03 12.81 19.96 13.61L22.65 10.41L18.74 9M19.32 15.95C19 16.67 18.5 17.35 17.93 17.94C17.34 18.53 16.66 19 15.96 19.34L20.05 20.06L19.32 15.95M9 18.71L10.41 22.66L13.59 19.95C12.81 20 12 19.97 11.19 19.76C10.36 19.54 9.62 19.17 9 18.71Z\";\nexport var mdiSunThermometer = \"M10 2L7.6 5.4C8.4 5.2 9.2 5 10 5C10.8 5 11.6 5.2 12.4 5.4M19 5C17.89 5 17 5.89 17 7V13.76C16.36 14.33 16 15.15 16 16C16 17.66 17.34 19 19 19C20.66 19 22 17.66 22 16C22 15.15 21.64 14.33 21 13.77V7C21 5.89 20.11 5 19 5M19 6C19.55 6 20 6.45 20 7V8H18V7C18 6.45 18.45 6 19 6M5.5 6.7L1.3 7L3.1 10.8C3.2 10 3.5 9.2 3.9 8.5C4.4 7.8 4.9 7.2 5.5 6.7M10 7C7.2 7 5 9.2 5 12C5 14.8 7.2 17 10 17C12.8 17 15 14.8 15 12C15 9.2 12.8 7 10 7M3.2 13.2L1.4 17L5.5 17.4C5 16.9 4.4 16.2 4 15.5C3.5 14.8 3.3 14 3.2 13.2M7.6 18.6L10 22L12.4 18.6C11.6 18.8 10.8 19 10 19C9.1 19 8.3 18.8 7.6 18.6Z\";\nexport var mdiSunThermometerOutline = \"M10 2L7.6 5.4C8.4 5.2 9.2 5 10 5S11.6 5.2 12.4 5.4L10 2M21 13.8V7C21 5.9 20.1 5 19 5S17 5.9 17 7V13.8C16.4 14.4 16 15.2 16 16C16 17.7 17.3 19 19 19S22 17.7 22 16C22 15.1 21.6 14.3 21 13.8M20 8H18V7C18 6.4 18.4 6 19 6S20 6.4 20 7V8M5.5 6.7L1.3 7L3.1 10.8C3.2 10 3.5 9.2 3.9 8.5C4.4 7.8 4.9 7.2 5.5 6.7M10 7C7.2 7 5 9.2 5 12S7.2 17 10 17 15 14.8 15 12 12.8 7 10 7M10 15C8.3 15 7 13.7 7 12S8.3 9 10 9 13 10.3 13 12 11.7 15 10 15M3.2 13.2L1.4 17L5.5 17.4C5 16.9 4.4 16.2 4 15.5C3.5 14.8 3.3 14 3.2 13.2M7.6 18.6L10 22L12.4 18.6C11.6 18.8 10.8 19 10 19C9.1 19 8.3 18.8 7.6 18.6Z\";\nexport var mdiSunWireless = \"M11 6C13.76 6 16 8.24 16 11S13.76 16 11 16 6 13.76 6 11 8.24 6 11 6M11 1L13.39 4.42C12.65 4.15 11.84 4 11 4S9.35 4.15 8.61 4.42L11 1M2.34 6L6.5 5.65C5.9 6.16 5.36 6.78 4.94 7.5C4.5 8.24 4.25 9 4.11 9.79L2.34 6M2.36 16L4.12 12.23C4.26 13 4.53 13.78 4.95 14.5C5.37 15.24 5.91 15.86 6.5 16.37L2.36 16M19.65 6L17.88 9.79C17.74 9 17.47 8.23 17.05 7.5C16.63 6.78 16.1 6.15 15.5 5.64L19.65 6M23 13H21C21 15.05 20.22 17.1 18.66 18.66C17.09 20.23 15.05 21 13 21V23C15.56 23 18.12 22 20.07 20.07S23 15.56 23 13M19 13H17C17 14 16.61 15.05 15.83 15.83C15.05 16.61 14 17 13 17V19C14.54 19 16.08 18.41 17.25 17.24C18.41 16.08 19 14.54 19 13\";\nexport var mdiSunWirelessOutline = \"M11 1L13.39 4.42C12.65 4.15 11.84 4 11 4S9.35 4.15 8.61 4.42L11 1M2.34 6L6.5 5.65C5.9 6.16 5.36 6.78 4.94 7.5C4.5 8.24 4.25 9 4.11 9.79L2.34 6M2.36 16L4.12 12.23C4.26 13 4.53 13.78 4.95 14.5C5.37 15.24 5.91 15.86 6.5 16.37L2.36 16M19.65 6L17.88 9.79C17.74 9 17.47 8.23 17.05 7.5C16.63 6.78 16.1 6.15 15.5 5.64L19.65 6M23 13H21C21 15.05 20.22 17.1 18.66 18.66C17.09 20.23 15.05 21 13 21V23C15.56 23 18.12 22 20.07 20.07S23 15.56 23 13M19 13H17C17 14 16.61 15.05 15.83 15.83C15.05 16.61 14 17 13 17V19C14.54 19 16.08 18.41 17.25 17.24C18.41 16.08 19 14.54 19 13M11 8C12.65 8 14 9.35 14 11S12.65 14 11 14 8 12.65 8 11 9.35 8 11 8M11 6C8.24 6 6 8.24 6 11S8.24 16 11 16 16 13.76 16 11 13.76 6 11 6Z\";\nexport var mdiSunglasses = \"M7,17H4C2.38,17 0.96,15.74 0.76,14.14L0.26,11.15C0.15,10.3 0.39,9.5 0.91,8.92C1.43,8.34 2.19,8 3,8H9C9.83,8 10.58,8.35 11.06,8.96C11.17,9.11 11.27,9.27 11.35,9.45C11.78,9.36 12.22,9.36 12.64,9.45C12.72,9.27 12.82,9.11 12.94,8.96C13.41,8.35 14.16,8 15,8H21C21.81,8 22.57,8.34 23.09,8.92C23.6,9.5 23.84,10.3 23.74,11.11L23.23,14.18C23.04,15.74 21.61,17 20,17H17C15.44,17 13.92,15.81 13.54,14.3L12.64,11.59C12.26,11.31 11.73,11.31 11.35,11.59L10.43,14.37C10.07,15.82 8.56,17 7,17Z\";\nexport var mdiSurfing = \"M22 23V21C20.59 21.05 19.22 20.9 18 20C16.24 21.25 13.77 21.25 12 20C10.23 21.25 7.76 21.25 6 20C4.78 20.9 3.41 21.05 2 21V23C3.37 23.05 4.78 22.94 6 22.25C7.84 23.25 10.15 23.25 12 22.25C13.85 23.25 16.16 23.25 18 22.25C19.22 22.94 20.63 23.05 22 23M20.5 11.97V9.95C18.74 9.96 17 9 16.18 7.41L15.29 5.86C15 5.4 14.55 5.11 14.07 4.97L8.5 3.94L5 6.38L6.13 8L8.95 6.1L10.97 6.43L8.81 7.88C8.21 8.29 7.88 9 8 9.71L8.53 12.81C7.12 12.26 3.21 11 3 13.23C3.36 15.67 6.07 17.32 8.06 18.82C9.5 19.29 11.06 18.58 12 17.46C13.32 19.16 15.89 19.46 17.5 18C17.03 17.58 16.5 17.15 16 16.8V12.95L12.19 9.95L14.44 8.44C15.62 10.59 18 12 20.5 11.97M14 14V15.47C14 15.43 11.66 14.16 11.81 14.24L10.73 13.7L10.31 11.08L14 14M19 3.5C19 4.61 18.11 5.5 17 5.5S15 4.61 15 3.5 15.9 1.5 17 1.5 19 2.4 19 3.5Z\";\nexport var mdiSurroundSound = \"M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M7.76,16.24L6.35,17.65C4.78,16.1 4,14.05 4,12C4,9.95 4.78,7.9 6.34,6.34L7.75,7.75C6.59,8.93 6,10.46 6,12C6,13.54 6.59,15.07 7.76,16.24M12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16M17.66,17.66L16.25,16.25C17.41,15.07 18,13.54 18,12C18,10.46 17.41,8.93 16.24,7.76L17.65,6.35C19.22,7.9 20,9.95 20,12C20,14.05 19.22,16.1 17.66,17.66M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10Z\";\nexport var mdiSurroundSound20 = \"M3 7V9H7V11H5C3.9 11 3 11.9 3 13V17H9V15H5V13H7C8.1 13 9 12.1 9 11V9C9 7.9 8.1 7 7 7H3M13 17H11V15H13V17M17 7C15.9 7 15 7.9 15 9V15C15 16.1 15.9 17 17 17H19C20.1 17 21 16.1 21 15V9C21 7.9 20.1 7 19 7H17M17 9H19V15H17V9Z\";\nexport var mdiSurroundSound21 = \"M4 7V9H8V11H6C4.9 11 4 11.9 4 13V17H10V15H6V13H8C9.1 13 10 12.1 10 11V9C10 7.9 9.1 7 8 7H4M14 17H12V15H14V17M16 7V9H18V17H20V7H16Z\";\nexport var mdiSurroundSound31 = \"M14 17H12V15H14V17M20 7V17H18V9H16V7H20M10 15C10 16.1 9.1 17 8 17H4V15H8V13H6V11H8V9H4V7H8C9.1 7 10 7.9 10 9V10.5C10 11.3 9.3 12 8.5 12C9.3 12 10 12.7 10 13.5V15\";\nexport var mdiSurroundSound51 = \"M14 17H12V15H14V17M20 7V17H18V9H16V7H20M10 7V9H6V11H8C9.1 11 10 11.9 10 13V15C10 16.1 9.1 17 8 17H4V15H8V13H4V7H10Z\";\nexport var mdiSurroundSound512 = \"M18 7V9H22V11H20C18.9 11 18 11.9 18 13V17H24V15H20V13H22C23.1 13 24 12.1 24 11V9C24 7.9 23.1 7 22 7H18M9 17H7V15H9V17M9 7V9H11V17H13V7H9M0 7V13H4V15H0V17H4C5.1 17 6 16.1 6 15V13C6 11.9 5.1 11 4 11H2V9H6V7H0M17 17H15V15H17V17\";\nexport var mdiSurroundSound71 = \"M14 17H12V15H14V17M20 7V17H18V9H16V7H20M4 17L8 9H4V7H10V9L6 17\";\nexport var mdiSvg = \"M5.13,10.71H8.87L6.22,8.06C5.21,8.06 4.39,7.24 4.39,6.22A1.83,1.83 0 0,1 6.22,4.39C7.24,4.39 8.06,5.21 8.06,6.22L10.71,8.87V5.13C10,4.41 10,3.25 10.71,2.54C11.42,1.82 12.58,1.82 13.29,2.54C14,3.25 14,4.41 13.29,5.13V8.87L15.95,6.22C15.95,5.21 16.76,4.39 17.78,4.39C18.79,4.39 19.61,5.21 19.61,6.22C19.61,7.24 18.79,8.06 17.78,8.06L15.13,10.71H18.87C19.59,10 20.75,10 21.46,10.71C22.18,11.42 22.18,12.58 21.46,13.29C20.75,14 19.59,14 18.87,13.29H15.13L17.78,15.95C18.79,15.95 19.61,16.76 19.61,17.78A1.83,1.83 0 0,1 17.78,19.61C16.76,19.61 15.95,18.79 15.95,17.78L13.29,15.13V18.87C14,19.59 14,20.75 13.29,21.46C12.58,22.18 11.42,22.18 10.71,21.46C10,20.75 10,19.59 10.71,18.87V15.13L8.06,17.78C8.06,18.79 7.24,19.61 6.22,19.61C5.21,19.61 4.39,18.79 4.39,17.78C4.39,16.76 5.21,15.95 6.22,15.95L8.87,13.29H5.13C4.41,14 3.25,14 2.54,13.29C1.82,12.58 1.82,11.42 2.54,10.71C3.25,10 4.41,10 5.13,10.71Z\";\nexport var mdiSwapHorizontal = \"M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z\";\nexport var mdiSwapHorizontalBold = \"M8,10V13H14V18H8V21L2,15.5L8,10M22,8.5L16,3V6H10V11H16V14L22,8.5Z\";\nexport var mdiSwapHorizontalCircle = \"M22 12C22 6.5 17.5 2 12 2S2 6.5 2 12 6.5 22 12 22 22 17.5 22 12M15 6.5L18.5 10L15 13.5V11H11V9H15V6.5M9 17.5L5.5 14L9 10.5V13H13V15H9V17.5Z\";\nexport var mdiSwapHorizontalCircleOutline = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M15 6.5V9H11V11H15V13.5L18.5 10L15 6.5M9 10.5L5.5 14L9 17.5V15H13V13H9V10.5Z\";\nexport var mdiSwapHorizontalHidden = \"M17 5L21 9L17 13V5M16 8H13V10H16V8M12 10V8H10V10H12M3 15L7 11V19L3 15M8 16H11V14H8V16M12 14V16H14V14H12Z\";\nexport var mdiSwapHorizontalVariant = \"M4,6L8,10V7H16A2,2 0 0,1 18,9A2,2 0 0,1 16,11H8A4,4 0 0,0 4,15A4,4 0 0,0 8,19H16V22L20,18L16,14V17H8A2,2 0 0,1 6,15A2,2 0 0,1 8,13H16A4,4 0 0,0 20,9A4,4 0 0,0 16,5H8V2L4,6Z\";\nexport var mdiSwapVertical = \"M9,3L5,7H8V14H10V7H13M16,17V10H14V17H11L15,21L19,17H16Z\";\nexport var mdiSwapVerticalBold = \"M14,8H11V14H6V8H3L8.5,2L14,8M15.5,22L21,16H18V10H13V16H10L15.5,22Z\";\nexport var mdiSwapVerticalCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M6.5 9L10 5.5L13.5 9H11V13H9V9H6.5M17.5 15L14 18.5L10.5 15H13V11H15V15H17.5Z\";\nexport var mdiSwapVerticalCircleOutline = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M6.5 9L10 5.5L13.5 9H11V13H9V9H6.5M17.5 15L14 18.5L10.5 15H13V11H15V15H17.5Z\";\nexport var mdiSwapVerticalVariant = \"M18,4L14,8H17V16A2,2 0 0,1 15,18A2,2 0 0,1 13,16V8A4,4 0 0,0 9,4A4,4 0 0,0 5,8V16H2L6,20L10,16H7V8A2,2 0 0,1 9,6A2,2 0 0,1 11,8V16A4,4 0 0,0 15,20A4,4 0 0,0 19,16V8H22L18,4Z\";\nexport var mdiSwim = \"M2,18C4.22,17 6.44,16 8.67,16C10.89,16 13.11,18 15.33,18C17.56,18 19.78,16 22,16V19C19.78,19 17.56,21 15.33,21C13.11,21 10.89,19 8.67,19C6.44,19 4.22,20 2,21V18M8.67,13C7.89,13 7.12,13.12 6.35,13.32L11.27,9.88L10.23,8.64C10.09,8.47 10,8.24 10,8C10,7.66 10.17,7.35 10.44,7.17L16.16,3.17L17.31,4.8L12.47,8.19L17.7,14.42C16.91,14.75 16.12,15 15.33,15C13.11,15 10.89,13 8.67,13M18,7A2,2 0 0,1 20,9A2,2 0 0,1 18,11A2,2 0 0,1 16,9A2,2 0 0,1 18,7Z\";\nexport var mdiSwitch = \"M13,18H14A1,1 0 0,1 15,19H22V21H15A1,1 0 0,1 14,22H10A1,1 0 0,1 9,21H2V19H9A1,1 0 0,1 10,18H11V16H8A1,1 0 0,1 7,15V3A1,1 0 0,1 8,2H16A1,1 0 0,1 17,3V15A1,1 0 0,1 16,16H13V18M13,6H14V4H13V6M9,4V6H11V4H9M9,8V10H11V8H9M9,12V14H11V12H9Z\";\nexport var mdiSword = \"M6.92,5H5L14,14L15,13.06M19.96,19.12L19.12,19.96C18.73,20.35 18.1,20.35 17.71,19.96L14.59,16.84L11.91,19.5L10.5,18.09L11.92,16.67L3,7.75V3H7.75L16.67,11.92L18.09,10.5L19.5,11.91L16.83,14.58L19.95,17.7C20.35,18.1 20.35,18.73 19.96,19.12Z\";\nexport var mdiSwordCross = \"M6.2,2.44L18.1,14.34L20.22,12.22L21.63,13.63L19.16,16.1L22.34,19.28C22.73,19.67 22.73,20.3 22.34,20.69L21.63,21.4C21.24,21.79 20.61,21.79 20.22,21.4L17,18.23L14.56,20.7L13.15,19.29L15.27,17.17L3.37,5.27V2.44H6.2M15.89,10L20.63,5.26V2.44H17.8L13.06,7.18L15.89,10M10.94,15L8.11,12.13L5.9,14.34L3.78,12.22L2.37,13.63L4.84,16.1L1.66,19.29C1.27,19.68 1.27,20.31 1.66,20.7L2.37,21.41C2.76,21.8 3.39,21.8 3.78,21.41L7,18.23L9.44,20.7L10.85,19.29L8.73,17.17L10.94,15Z\";\nexport var mdiSyllabaryHangul = \"M8 4V6H4V8H6.39C5.55 8.74 5 9.8 5 11C5 13.2 6.8 15 9 15C11.2 15 13 13.2 13 11C13 9.8 12.45 8.74 11.61 8H14V6H10V4M15 4V16H17V11H20V9H17V4M9 9C10.12 9 11 9.88 11 11C11 12.12 10.12 13 9 13C7.88 13 7 12.12 7 11C7 9.88 7.88 9 9 9M7 16V20H17V18H9V16Z\";\nexport var mdiSyllabaryHiragana = \"M9 4V6H6V8H9V10C6.25 10 4 12.27 4 15.03C4 17.8 6.26 20.06 9.03 20.06C9.89 20.06 10.72 19.77 11.4 19.26C11.63 19.54 11.88 19.82 12.15 20.09L13.56 18.67C13.3 18.42 13.07 18.15 12.86 17.89L13.86 16.89C14.93 15.82 15.78 14.23 16.42 12.59C17.31 13.11 18 13.9 18 15C18 16.32 17.47 17.6 16.54 18.54L17.95 19.95C19.26 18.64 20 16.86 20 15C20 13.04 18.82 11.36 17.15 10.55L17.5 9.29L15.55 8.78L15.21 10.05C15.13 10.05 15.06 10 14.97 10H11V8H16V6H11V4M11 12H14.5C13.94 13.37 13.19 14.72 12.44 15.47L11.79 16.13C11.25 14.93 11 13.59 11 12M9 12C9 14.07 9.41 15.94 10.3 17.59C9.94 17.89 9.5 18.06 9.03 18.06C7.33 18.06 6 16.73 6 15.03C6 13.34 7.32 12 9 12Z\";\nexport var mdiSyllabaryKatakana = \"M4 4V6H18V6.09L14.29 9.79L15.71 11.21L20 6.91V4M11 9V13C11 15.78 10.25 16.89 8.36 18.46L9.64 20C11.75 18.24 13 16.22 13 13V9Z\";\nexport var mdiSyllabaryKatakanaHalfwidth = \"M8 4V6H14L13 10.81L15 11.2L16 6.1V4M10 9V12C10 14.86 9.34 17.29 8.08 18.61L9.5 20C11.35 18.08 12 15.15 12 12V9Z\";\nexport var mdiSymbol = \"M2 7V14H4V7H2M6 7V9H10V11H8V14H10V13C11.11 13 12 12.11 12 11V9C12 7.89 11.11 7 10 7H6M15.8 7L15.6 9H14V11H15.4L15.2 13H14V15H15L14.8 17H16.8L17 15H18.4L18.2 17H20.2L20.4 15H22V13H20.6L20.8 11H22V9H21L21.2 7H19.2L19 9H17.6L17.8 7H15.8M17.4 11H18.8L18.6 13H17.2L17.4 11M2 15V17H4V15H2M8 15V17H10V15H8Z\";\nexport var mdiSymfony = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.37,5.7V5.7C17.39,5.67 18.15,6.13 18.21,6.84C18.22,7.15 18.04,7.75 17.42,7.77C16.95,7.79 16.63,7.5 16.62,7.09C16.61,6.93 16.88,6.42 16.88,6.33C16.87,6.06 16.47,6.05 16.36,6.06C14.86,6.11 14.46,8.13 14.14,9.78L14,10.65C14.84,10.78 15.46,10.62 15.8,10.4C16.28,10.09 15.66,9.77 15.74,9.41C15.82,9.04 16.15,8.87 16.41,8.86C16.78,8.85 17.04,9.23 17.03,9.62C17,10.26 16.17,11.14 14.5,11.1C14.28,11.1 14.09,11.08 13.91,11.06C13.3,14.16 12.92,16 11.56,17.58C10.39,18.97 9.2,19.18 8.67,19.2C7.67,19.24 7,18.71 7,18C6.97,17.32 7.57,16.94 7.97,16.93C8.5,16.91 8.87,17.3 8.88,17.74C8.9,18.11 8.7,18.23 8.57,18.3C8.5,18.37 8.35,18.45 8.36,18.6C8.36,18.67 8.43,18.82 8.65,18.81C9.07,18.8 9.34,18.59 9.54,18.45C10.5,17.65 10.88,16.24 11.37,13.68C11.63,12.23 11.82,11.3 12.1,10.38C11.42,9.87 11,9.23 10.09,9C9.46,8.81 9.08,8.96 8.81,9.3C8.5,9.71 8.6,10.23 8.9,10.54C10.05,11.82 10.39,12.38 10.26,13.14C10.06,14.35 8.62,15.27 6.92,14.75C5.47,14.3 5.2,13.28 5.37,12.71C5.53,12.22 5.92,12.12 6.31,12.24C6.73,12.37 6.89,12.87 6.77,13.26C6.75,13.3 6.55,13.67 6.5,13.79C6.41,14.1 6.83,14.31 7.12,14.4C7.77,14.6 8.4,14.26 8.55,13.73C8.7,13.25 8.4,12.91 8.27,12.78C7.38,11.8 6.76,10.93 7.06,9.95C7.18,9.58 7.42,9.18 7.78,8.91C8.53,8.36 9.35,8.26 10.12,8.5C11.13,8.77 11.61,9.44 12.24,9.95C12.59,8.93 13.08,7.92 13.81,7.07C14.47,6.3 15.35,5.74 16.37,5.7Z\";\nexport var mdiSynagogue = \"M6 8V21H10V16C10 14.9 10.9 14 12 14S14 14.9 14 16V21H18V8L12 3L6 8M13.5 10C13.5 10.8 12.8 11.5 12 11.5S10.5 10.8 10.5 10 11.2 8.5 12 8.5 13.5 9.2 13.5 10M3 5C1.9 5 1 5.9 1 7V8H5V7C5 5.9 4.1 5 3 5M1 9H5V21H1V9M21 5C19.9 5 19 5.9 19 7V8H23V7C23 5.9 22.1 5 21 5M19 9H23V21H19V9Z\";\nexport var mdiSynagogueOutline = \"M20 4C18.3 4 17 5.3 17 7V7.3L12 3L7 7.3V7C7 5.3 5.7 4 4 4S1 5.3 1 7V21H11V16C11 15.4 11.4 15 12 15S13 15.4 13 16V21H23V7C23 5.3 21.7 4 20 4M20 6C20.5 6 21 6.4 21 7V8H19V7C19 6.4 19.5 6 20 6M4 6C4.6 6 5 6.4 5 7V8H3V7C3 6.4 3.5 6 4 6M3 19V10H5V19H3M17 19H15V16C15 14.4 13.6 13 12 13S9 14.4 9 16V19H7V9.9L12 5.6L17 9.9V19M19 19V10H21V19H19M12 8.5C12.8 8.5 13.5 9.2 13.5 10S12.8 11.5 12 11.5 10.5 10.8 10.5 10 11.2 8.5 12 8.5Z\";\nexport var mdiSync = \"M12,18A6,6 0 0,1 6,12C6,11 6.25,10.03 6.7,9.2L5.24,7.74C4.46,8.97 4,10.43 4,12A8,8 0 0,0 12,20V23L16,19L12,15M12,4V1L8,5L12,9V6A6,6 0 0,1 18,12C18,13 17.75,13.97 17.3,14.8L18.76,16.26C19.54,15.03 20,13.57 20,12A8,8 0 0,0 12,4Z\";\nexport var mdiSyncAlert = \"M11,13H13V7H11M21,4H15V10L17.24,7.76C18.32,8.85 19,10.34 19,12C19,14.61 17.33,16.83 15,17.65V19.74C18.45,18.85 21,15.73 21,12C21,9.79 20.09,7.8 18.64,6.36M11,17H13V15H11M3,12C3,14.21 3.91,16.2 5.36,17.64L3,20H9V14L6.76,16.24C5.68,15.15 5,13.66 5,12C5,9.39 6.67,7.17 9,6.35V4.26C5.55,5.15 3,8.27 3,12Z\";\nexport var mdiSyncCircle = \"M2 12A10 10 0 1 0 12 2A10 10 0 0 0 2 12M15.6 13.72A4 4 0 0 0 16 12A4 4 0 0 0 12 8V10L8.88 7L12 4V6A6 6 0 0 1 18 12A5.9 5.9 0 0 1 17.07 15.19M6 12A5.9 5.9 0 0 1 6.93 8.81L8.4 10.28A4 4 0 0 0 8 12A4 4 0 0 0 12 16V14L15 17L12 20V18A6 6 0 0 1 6 12Z\";\nexport var mdiSyncOff = \"M20,4H14V10L16.24,7.76C17.32,8.85 18,10.34 18,12C18,13 17.75,13.94 17.32,14.77L18.78,16.23C19.55,15 20,13.56 20,12C20,9.79 19.09,7.8 17.64,6.36L20,4M2.86,5.41L5.22,7.77C4.45,9 4,10.44 4,12C4,14.21 4.91,16.2 6.36,17.64L4,20H10V14L7.76,16.24C6.68,15.15 6,13.66 6,12C6,11 6.25,10.06 6.68,9.23L14.76,17.31C14.5,17.44 14.26,17.56 14,17.65V19.74C14.79,19.53 15.54,19.2 16.22,18.78L18.58,21.14L19.85,19.87L4.14,4.14L2.86,5.41M10,6.35V4.26C9.2,4.47 8.45,4.8 7.77,5.22L9.23,6.68C9.5,6.56 9.73,6.44 10,6.35Z\";\nexport var mdiTab = \"M21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3M21,19H3V5H13V9H21V19Z\";\nexport var mdiTabMinus = \"M3,3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3H3M3,5H13V9H21V19H3V5M7,13V15H15V13H7Z\";\nexport var mdiTabPlus = \"M3,3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3H3M3,5H13V9H21V19H3V5M10,10V13H7V15H10V18H12V15H15V13H12V10H10Z\";\nexport var mdiTabRemove = \"M7.46,11.88L8.88,10.46L11,12.59L13.12,10.46L14.54,11.88L12.41,14L14.54,16.12L13.12,17.54L11,15.41L8.88,17.54L7.46,16.12L9.59,14L7.46,11.88M3,3H21A2,2 0 0,1 23,5V19A2,2 0 0,1 21,21H3A2,2 0 0,1 1,19V5A2,2 0 0,1 3,3M3,5V19H21V9H13V5H3Z\";\nexport var mdiTabSearch = \"M7.5 11C5 11 3 13 3 15.5C3 16.38 3.25 17.21 3.69 17.9L.61 21L2 22.39L5.12 19.32C5.81 19.75 6.63 20 7.5 20C10 20 12 18 12 15.5S10 11 7.5 11M7.5 18C6.12 18 5 16.88 5 15.5S6.12 13 7.5 13 10 14.12 10 15.5 8.88 18 7.5 18M23 5V19C23 20.11 22.11 21 21 21H10.95C11.76 20.5 12.45 19.81 12.97 19H21V9H13V5H3V10.82C1.77 12 1 13.66 1 15.5V5C1 3.9 1.9 3 3 3H21C22.11 3 23 3.9 23 5Z\";\nexport var mdiTabUnselected = \"M1,9H3V7H1V9M1,13H3V11H1V13M1,5H3V3A2,2 0 0,0 1,5M9,21H11V19H9V21M1,17H3V15H1V17M3,21V19H1A2,2 0 0,0 3,21M21,3H13V9H23V5A2,2 0 0,0 21,3M21,17H23V15H21V17M9,5H11V3H9V5M5,21H7V19H5V21M5,5H7V3H5V5M21,21A2,2 0 0,0 23,19H21V21M21,13H23V11H21V13M13,21H15V19H13V21M17,21H19V19H17V21Z\";\nexport var mdiTable = \"M5,4H19A2,2 0 0,1 21,6V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V6A2,2 0 0,1 5,4M5,8V12H11V8H5M13,8V12H19V8H13M5,14V18H11V14H5M13,14V18H19V14H13Z\";\nexport var mdiTableAccount = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M23 22V21C23 19.67 20.33 19 19 19S15 19.67 15 21V22H23M19 14C17.9 14 17 14.9 17 16S17.9 18 19 18 21 17.11 21 16 20.11 14 19 14Z\";\nexport var mdiTableAlert = \"M3 4H17C18.11 4 19 4.89 19 6V18C19 19.11 18.11 20 17 20H3C1.9 20 1 19.11 1 18V6C1 4.89 1.9 4 3 4M3 8V12H9V8H3M11 8V12H17V8H11M3 14V18H9V14H3M11 14V18H17V14H11M23 7H21V13H23V7M23 15H21V17H23V15Z\";\nexport var mdiTableArrowDown = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M15.94 18.5H17.94V14.5H19.94V18.5H21.94L18.94 21.5L15.94 18.5\";\nexport var mdiTableArrowLeft = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M18.44 15V17H22.44V19H18.44V21L15.44 18L18.44 15\";\nexport var mdiTableArrowRight = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M19.44 21V19H15.44V17H19.44V15L22.44 18L19.44 21\";\nexport var mdiTableArrowUp = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M21.94 17.5H19.94V21.5H17.94V17.5H15.94L18.94 14.5L21.94 17.5\";\nexport var mdiTableBorder = \"M21,19A1,1 0 0,1 20,20H19V18H21V19M15,20V18H17V20H15M11,20V18H13V20H11M7,20V18H9V20H7M4,20A1,1 0 0,1 3,19V18H5V20H4M19,4H5A2,2 0 0,0 3,6V8H5L11,8H13L19,8H21V6C21,4.89 20.11,4 19,4M5,14H3V16H5V14M5,10H3V12H5V10M21,10H19V12H21V10M21,14H19V16H21V14M11,16V14H13V16H11M11,12V10H13V12H11\";\nexport var mdiTableCancel = \"M3 3H17C18.11 3 19 3.9 19 5V12.08C17.45 11.82 15.92 12.18 14.68 13H11V17H12.08C11.97 17.68 11.97 18.35 12.08 19H3C1.9 19 1 18.11 1 17V5C1 3.9 1.9 3 3 3M3 7V11H9V7H3M11 7V11H17V7H11M3 13V17H9V13H3M18.5 14C16 14 14 16 14 18.5S16 23 18.5 23 23 21 23 18.5 21 14 18.5 14M18.5 21.5C16.84 21.5 15.5 20.16 15.5 18.5C15.5 17.94 15.65 17.42 15.92 17L20 21.08C19.58 21.35 19.06 21.5 18.5 21.5M21.08 20L17 15.92C17.42 15.65 17.94 15.5 18.5 15.5C20.16 15.5 21.5 16.84 21.5 18.5C21.5 19.06 21.35 19.58 21.08 20Z\";\nexport var mdiTableChair = \"M12 22H6A2 2 0 0 1 8 20V8H2V5H16V8H10V20A2 2 0 0 1 12 22M22 2V22H20V15H15V22H13V14A2 2 0 0 1 15 12H20V2Z\";\nexport var mdiTableCheck = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M17.75 21L15 18L16.16 16.84L17.75 18.43L21.34 14.84L22.5 16.25L17.75 21\";\nexport var mdiTableClock = \"M16.5 15.82L18.94 17.23L18.19 18.53L15 16.69V13H16.5V15.82M20 10.26V5C20 3.9 19.11 3 18 3H4C2.9 3 2 3.9 2 5V17C2 18.11 2.9 19 4 19H9.68C10.81 21.36 13.21 23 16 23C19.87 23 23 19.87 23 16C23 13.62 21.81 11.53 20 10.26M18 7V9.29C17.37 9.11 16.7 9 16 9C14.5 9 13.13 9.47 12 10.26V7H18M4 7H10V11H4V7M4 17V13H9.68C9.25 13.91 9 14.93 9 16C9 16.34 9.03 16.67 9.08 17H4M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21Z\";\nexport var mdiTableCog = \"M3 3H17C18.11 3 19 3.9 19 5V12.08C17.45 11.82 15.92 12.18 14.68 13H11V17H12.08C11.97 17.68 11.97 18.35 12.08 19H3C1.9 19 1 18.11 1 17V5C1 3.9 1.9 3 3 3M3 7V11H9V7H3M11 7V11H17V7H11M3 13V17H9V13H3M22.78 19.32L21.71 18.5C21.73 18.33 21.75 18.17 21.75 18S21.74 17.67 21.71 17.5L22.77 16.68C22.86 16.6 22.89 16.47 22.83 16.36L21.83 14.63C21.77 14.5 21.64 14.5 21.5 14.5L20.28 15C20 14.82 19.74 14.65 19.43 14.53L19.24 13.21C19.23 13.09 19.12 13 19 13H17C16.88 13 16.77 13.09 16.75 13.21L16.56 14.53C16.26 14.66 15.97 14.82 15.71 15L14.47 14.5C14.36 14.5 14.23 14.5 14.16 14.63L13.16 16.36C13.1 16.47 13.12 16.6 13.22 16.68L14.28 17.5C14.26 17.67 14.25 17.83 14.25 18S14.26 18.33 14.28 18.5L13.22 19.32C13.13 19.4 13.1 19.53 13.16 19.64L14.16 21.37C14.22 21.5 14.35 21.5 14.47 21.5L15.71 21C15.97 21.18 16.25 21.35 16.56 21.47L16.75 22.79C16.77 22.91 16.87 23 17 23H19C19.12 23 19.23 22.91 19.25 22.79L19.44 21.47C19.74 21.34 20 21.18 20.28 21L21.5 21.5C21.64 21.5 21.77 21.5 21.84 21.37L22.84 19.64C22.9 19.53 22.87 19.4 22.78 19.32M18 19.5C17.17 19.5 16.5 18.83 16.5 18S17.18 16.5 18 16.5 19.5 17.17 19.5 18 18.84 19.5 18 19.5Z\";\nexport var mdiTableColumn = \"M8,2H16A2,2 0 0,1 18,4V20A2,2 0 0,1 16,22H8A2,2 0 0,1 6,20V4A2,2 0 0,1 8,2M8,10V14H16V10H8M8,16V20H16V16H8M8,4V8H16V4H8Z\";\nexport var mdiTableColumnPlusAfter = \"M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z\";\nexport var mdiTableColumnPlusBefore = \"M13,2A2,2 0 0,0 11,4V20A2,2 0 0,0 13,22H22V2H13M20,10V14H13V10H20M20,16V20H13V16H20M20,4V8H13V4H20M9,11H6V8H4V11H1V13H4V16H6V13H9V11Z\";\nexport var mdiTableColumnRemove = \"M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z\";\nexport var mdiTableColumnWidth = \"M5,8H19A2,2 0 0,1 21,10V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V10A2,2 0 0,1 5,8M5,12V15H11V12H5M13,12V15H19V12H13M5,17V20H11V17H5M13,17V20H19V17H13M11,2H21V6H19V4H13V6H11V2Z\";\nexport var mdiTableEdit = \"M21.7,13.35L20.7,14.35L18.65,12.3L19.65,11.3C19.86,11.08 20.21,11.08 20.42,11.3L21.7,12.58C21.92,12.79 21.92,13.14 21.7,13.35M12,18.94L18.07,12.88L20.12,14.93L14.06,21H12V18.94M4,2H18A2,2 0 0,1 20,4V8.17L16.17,12H12V16.17L10.17,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M4,6V10H10V6H4M12,6V10H18V6H12M4,12V16H10V12H4Z\";\nexport var mdiTableEye = \"M17 16.88C17.56 16.88 18 17.32 18 17.88S17.56 18.88 17 18.88 16 18.43 16 17.88 16.44 16.88 17 16.88M17 13.88C19.73 13.88 22.06 15.54 23 17.88C22.06 20.22 19.73 21.88 17 21.88S11.94 20.22 11 17.88C11.94 15.54 14.27 13.88 17 13.88M17 15.38C15.62 15.38 14.5 16.5 14.5 17.88S15.62 20.38 17 20.38 19.5 19.26 19.5 17.88 18.38 15.38 17 15.38M18 3H4C2.9 3 2 3.9 2 5V17C2 18.1 2.9 19 4 19H9.42C9.26 18.68 9.12 18.34 9 18C9.12 17.66 9.26 17.32 9.42 17H4V13H10V15.97C10.55 15.11 11.23 14.37 12 13.76V13H13.15C14.31 12.36 15.62 12 17 12C18.06 12 19.07 12.21 20 12.59V5C20 3.9 19.1 3 18 3M10 11H4V7H10V11M18 11H12V7H18V11Z\";\nexport var mdiTableEyeOff = \"M12 8.8L6.2 3H18C19.1 3 20 3.9 20 5V12.59C19.07 12.21 18.06 12 17 12C16.45 12 15.91 12.07 15.38 12.18L14.2 11H18V7H12V8.8M17.09 13.89L22.31 19.11C22.58 18.73 22.82 18.32 23 17.88C22.07 15.57 19.78 13.92 17.09 13.89M22.11 21.46L20.84 22.73L19.5 21.37C18.71 21.69 17.88 21.88 17 21.88C14.27 21.88 11.94 20.22 11 17.88C11.45 16.76 12.23 15.8 13.21 15.1L11.93 13.82C11.19 14.42 10.53 15.14 10 15.97V13H4V17H9.42C9.26 17.32 9.12 17.66 9 18C9.12 18.34 9.26 18.68 9.42 19H4C2.9 19 2 18.1 2 17V5C2 4.68 2.08 4.38 2.22 4.11L1.11 3L2.39 1.73L22.11 21.46M9.11 11L5.11 7H4V11H9.11M18.18 20.07L14.81 16.7C14.61 17.05 14.5 17.45 14.5 17.88C14.5 19.26 15.62 20.38 17 20.38C17.43 20.38 17.83 20.27 18.18 20.07Z\";\nexport var mdiTableFilter = \"M17 21L18.8 22.77C19.3 23.27 20 22.87 20 22.28V18L22.8 14.6C23.3 13.9 22.8 13 22 13H15C14.2 13 13.7 14 14.2 14.6L17 18V21M12 11H20V3C20 1.9 19.11 1 18 1H4C2.9 1 2 1.9 2 3V15C2 16.11 2.9 17 4 17H13.42L12 15V11M12 5H18V9H12V5M10 15H4V11H10V15M10 9H4V5H10V9Z\";\nexport var mdiTableFurniture = \"M2 7H22V10H20L21 19H18.5L17.94 14H6.06L5.5 19H3L4 10H2V7M17.5 10H6.5L6.29 12H17.71L17.5 10Z\";\nexport var mdiTableHeadersEye = \"M1 6V19A2 2 0 0 0 3 21H9V11H21V6A2 2 0 0 0 19 4H3A2 2 0 0 0 1 6M3 6H7V9H3M7 19H3V16H7M7 14H3V11H7M9 9V6H13V9M19 9H15V6H19M17 16A1 1 0 1 1 16 17A1 1 0 0 1 17 16M17 13A6.45 6.45 0 0 1 23 17A6.5 6.5 0 0 1 11 17A6.45 6.45 0 0 1 17 13M17 14.5A2.5 2.5 0 1 0 19.5 17A2.5 2.5 0 0 0 17 14.5\";\nexport var mdiTableHeadersEyeOff = \"M2.38 1.73L1.11 3L2.26 4.15A2 2 0 0 0 1 6V19A2 2 0 0 0 3 21H9V11H9.11L12.72 14.61A6.21 6.21 0 0 0 11 17A6.45 6.45 0 0 0 17 21A6.55 6.55 0 0 0 18.84 20.73L20.84 22.73L22.11 21.46L20.58 19.93M7 19H3V16H7M7 14H3V11H7M7 9H3V6H4.11L7 8.89M17 19.5A2.5 2.5 0 0 1 14.56 16.45L17.56 19.45A2.5 2.5 0 0 1 17 19.5M16.24 13L17.85 14.61A2.5 2.5 0 0 1 19.35 16.11L21.94 18.7A6.44 6.44 0 0 0 23 17A6.45 6.45 0 0 0 17 13H16.24M13 6V9H12.2L14.2 11H21V6A2 2 0 0 0 19 4H7.2L9.2 6M15 6H19V9H15Z\";\nexport var mdiTableHeart = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M19 22.3L18.4 21.8C16.4 19.9 15 18.7 15 17.2C15 16 16 15 17.2 15C17.9 15 18.6 15.3 19 15.8C19.4 15.3 20.1 15 20.8 15C22 15 23 15.9 23 17.2C23 18.7 21.6 19.9 19.6 21.8L19 22.3\";\nexport var mdiTableKey = \"M16.8 17C16.4 15.8 15.3 15 14 15C12.3 15 11 16.3 11 18S12.3 21 14 21C15.3 21 16.4 20.2 16.8 19H19V21H21V19H23V17H16.8M14 19C13.4 19 13 18.5 13 18S13.4 17 14 17 15 17.5 15 18 14.6 19 14 19M9 18H4V14H10V15C10.9 13.8 12.4 13 14 13C15.1 13 16.1 13.4 17 14H18V15H20V6C20 4.9 19.1 4 18 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H9.4C9.1 19.4 9 18.7 9 18M12 8H18V12H12V8M4 8H10V12H4V8Z\";\nexport var mdiTableLarge = \"M4,3H20A2,2 0 0,1 22,5V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V5A2,2 0 0,1 4,3M4,7V10H8V7H4M10,7V10H14V7H10M20,10V7H16V10H20M4,12V15H8V12H4M4,20H8V17H4V20M10,12V15H14V12H10M10,20H14V17H10V20M20,20V17H16V20H20M20,12H16V15H20V12Z\";\nexport var mdiTableLargePlus = \"M12.35 20H10V17H12.09C12.21 16.28 12.46 15.61 12.81 15H10V12H14V13.54C14.58 13 15.25 12.61 16 12.35V12H20V12.35C20.75 12.61 21.42 13 22 13.54V5C22 3.9 21.1 3 20 3H4C2.9 3 2 3.9 2 5V20C2 21.1 2.9 22 4 22H13.54C13 21.42 12.61 20.75 12.35 20M16 7H20V10H16V7M10 7H14V10H10V7M8 20H4V17H8V20M8 15H4V12H8V15M8 10H4V7H8V10M17 14H19V17H22V19H19V22H17V19H14V17H17V14\";\nexport var mdiTableLargeRemove = \"M12.35 20H10V17H12.09C12.21 16.28 12.46 15.61 12.81 15H10V12H14V13.54C14.58 13 15.25 12.61 16 12.35V12H20V12.35C20.75 12.61 21.42 13 22 13.54V5C22 3.9 21.1 3 20 3H4C2.9 3 2 3.9 2 5V20C2 21.1 2.9 22 4 22H13.54C13 21.42 12.61 20.75 12.35 20M16 7H20V10H16V7M10 7H14V10H10V7M8 20H4V17H8V20M8 15H4V12H8V15M8 10H4V7H8V10M14.46 15.88L15.88 14.46L18 16.59L20.12 14.46L21.54 15.88L19.41 18L21.54 20.12L20.12 21.54L18 19.41L15.88 21.54L14.46 20.12L16.59 18L14.46 15.88\";\nexport var mdiTableLock = \"M21 16V15.5C21 14.12 19.88 13 18.5 13S16 14.12 16 15.5V16C15.45 16 15 16.45 15 17V21C15 21.55 15.45 22 16 22H21C21.55 22 22 21.55 22 21V17C22 16.45 21.55 16 21 16M20 16H17V15.5C17 14.67 17.67 14 18.5 14S20 14.67 20 15.5V16M13 18H12V14H14.26C14.54 13.21 15.04 12.5 15.69 12H12V8H18V11.05C18.17 11.03 18.33 11 18.5 11C19.03 11 19.53 11.1 20 11.26V6C20 4.89 19.11 4 18 4H4C2.9 4 2 4.89 2 6V18C2 19.11 2.9 20 4 20H13V18M10 18H4V14H10V18M10 12H4V8H10V12Z\";\nexport var mdiTableMergeCells = \"M5,10H3V4H11V6H5V10M19,18H13V20H21V14H19V18M5,18V14H3V20H11V18H5M21,4H13V6H19V10H21V4M8,13V15L11,12L8,9V11H3V13H8M16,11V9L13,12L16,15V13H21V11H16Z\";\nexport var mdiTableMinus = \"M15 19V17H23V19H15M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4Z\";\nexport var mdiTableMultiple = \"M7 2H21C22.11 2 23 2.9 23 4V16C23 17.11 22.11 18 21 18H7C5.9 18 5 17.11 5 16V4C5 2.9 5.9 2 7 2M7 6V10H13V6H7M15 6V10H21V6H15M7 12V16H13V12H7M15 12V16H21V12H15M3 20V6H1V20C1 21.11 1.89 22 3 22H19V20H3Z\";\nexport var mdiTableNetwork = \"M15 20C15 19.45 14.55 19 14 19H13V17H19C20.11 17 21 16.11 21 15V3C21 1.9 20.11 1 19 1H5C3.9 1 3 1.9 3 3V15C3 16.11 3.9 17 5 17H11V19H10C9.45 19 9 19.45 9 20H2V22H9C9 22.55 9.45 23 10 23H14C14.55 23 15 22.55 15 22H22V20H15M13 5H19V9H13V5M13 11H19V15H13V11M5 5H11V9H5V5M5 15V11H11V15H5Z\";\nexport var mdiTableOfContents = \"M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z\";\nexport var mdiTableOff = \"M22.11 21.46L2.39 1.73L1.11 3L3.22 5.11C3.08 5.38 3 5.68 3 6V18C3 19.11 3.9 20 5 20H18.11L20.84 22.73L22.11 21.46M10.11 12H5V8H6.11L10.11 12M11 18H5V14H11V18M13 18V14.89L16.11 18H13M13 9.8L7.2 4H19C20.11 4 21 4.89 21 6V17.8L19 15.8V14H17.2L15.2 12H19V8H13V9.8Z\";\nexport var mdiTablePicnic = \"M4 6H20V9H18L18.22 11H23V13H18.44L19 18H16.5L15.94 13H8.06L7.5 18H5L5.56 13H1V11H5.78L6 9H4M15.5 9H8.5L8.29 11H15.71Z\";\nexport var mdiTablePivot = \"M22 15H20V18C20 19.11 19.11 20 18 20H15V22L12 19L15 16V18H18V15H16L19 12L22 15M22 4V8C22 9.1 21.1 10 20 10H10V20C10 21.1 9.1 22 8 22H4C2.9 22 2 21.1 2 20V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.9 22 4M4 8H8V4H4V8M4 10V14H8V10H4M8 20V16H4V20L8 20M14 8V4H10V8H14M20 4L20 4H16V8H20L20 4Z\";\nexport var mdiTablePlus = \"M18,14H20V17H23V19H20V22H18V19H15V17H18V14M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\";\nexport var mdiTableQuestion = \"M19.5 20.5V22H18V20.5H19.5M17.5 15.5H16V15C16 13.34 17.34 12 19 12S22 13.34 22 15C22 15.97 21.5 16.88 20.71 17.41L20.41 17.6C19.84 18 19.5 18.61 19.5 19.3V19.5H18V19.3C18 18.11 18.6 17 19.59 16.35L19.88 16.16C20.27 15.9 20.5 15.47 20.5 15C20.5 14.17 19.83 13.5 19 13.5S17.5 14.17 17.5 15V15.5M18 3H4C2.9 3 2 3.9 2 5V17C2 18.1 2.9 19 4 19H14V17H12V13H14.42C14.78 12.2 15.34 11.5 16.03 11H12V7H18V10.1C18.32 10.04 18.66 10 19 10S19.68 10.04 20 10.1V5C20 3.9 19.11 3 18 3M10 17H4V13H10V17M10 11H4V7H10V11Z\";\nexport var mdiTableRefresh = \"M18 14.5C19.11 14.5 20.11 14.95 20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5C15.5 19.88 16.62 21 18 21C18.82 21 19.55 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5C14 16.29 15.79 14.5 18 14.5M4 3H18C19.11 3 20 3.9 20 5V12.17C19.5 12.06 19 12 18.5 12C17.23 12 16.04 12.37 15.04 13H12V17H12.18C12.06 17.5 12 18 12 18.5L12 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4Z\";\nexport var mdiTableRemove = \"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\";\nexport var mdiTableRow = \"M22,14A2,2 0 0,1 20,16H4A2,2 0 0,1 2,14V10A2,2 0 0,1 4,8H20A2,2 0 0,1 22,10V14M4,14H8V10H4V14M10,14H14V10H10V14M16,14H20V10H16V14Z\";\nexport var mdiTableRowHeight = \"M3,5H15A2,2 0 0,1 17,7V17A2,2 0 0,1 15,19H3A2,2 0 0,1 1,17V7A2,2 0 0,1 3,5M3,9V12H8V9H3M10,9V12H15V9H10M3,14V17H8V14H3M10,14V17H15V14H10M23,14V7H19V9H21V12H19V14H23Z\";\nexport var mdiTableRowPlusAfter = \"M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z\";\nexport var mdiTableRowPlusBefore = \"M22,14A2,2 0 0,0 20,12H4A2,2 0 0,0 2,14V21H4V19H8V21H10V19H14V21H16V19H20V21H22V14M4,14H8V17H4V14M10,14H14V17H10V14M20,14V17H16V14H20M11,10H13V7H16V5H13V2H11V5H8V7H11V10Z\";\nexport var mdiTableRowRemove = \"M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z\";\nexport var mdiTableSearch = \"M19.3,17.89C20.62,15.79 20,13 17.89,11.68C15.79,10.36 13,11 11.68,13.09C10.36,15.2 11,18 13.09,19.3C14.56,20.22 16.42,20.22 17.89,19.3L21,22.39L22.39,21L19.3,17.89M17.3,17.27C16.32,18.25 14.74,18.24 13.76,17.27C12.79,16.29 12.79,14.71 13.77,13.73C14.74,12.76 16.32,12.76 17.3,13.73C18.26,14.72 18.25,16.3 17.27,17.27H17.3M19,4H5A2,2 0 0,0 3,6V18A2,2 0 0,0 5,20H10.81C10.25,19.42 9.8,18.74 9.5,18H5V14H9.18C9.34,13.29 9.61,12.61 10,12H5V8H11V10.81C11.58,10.25 12.26,9.8 13,9.5V8H19V10C19.4,10.25 19.77,10.55 20.1,10.88C20.44,11.22 20.74,11.59 21,12V6A2,2 0 0,0 19,4Z\";\nexport var mdiTableSettings = \"M7,22H9V24H7V22M11,22H13V24H11V22M15,22H17V24H15V22M5,4H19A2,2 0 0,1 21,6V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V6A2,2 0 0,1 5,4M5,8V12H11V8H5M13,8V12H19V8H13M5,14V18H11V14H5M13,14V18H19V14H13Z\";\nexport var mdiTableSplitCell = \"M19 14H21V20H3V14H5V18H19V14M3 4V10H5V6H19V10H21V4H3M11 11V13H8V15L5 12L8 9V11H11M16 11V9L19 12L16 15V13H13V11H16Z\";\nexport var mdiTableStar = \"M4 3H18C19.11 3 20 3.9 20 5V12.08C18.45 11.82 16.92 12.18 15.68 13H12V17H13.08C12.97 17.68 12.97 18.35 13.08 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4M16.5 21.6L17.2 18.8L15 16.9L17.9 16.7L19 14L20.1 16.6L23 16.8L20.8 18.7L21.5 21.5L19 20.1L16.5 21.6Z\";\nexport var mdiTableSync = \"M19 12V13.5C21.21 13.5 23 15.29 23 17.5C23 18.32 22.76 19.08 22.33 19.71L21.24 18.62C21.41 18.28 21.5 17.9 21.5 17.5C21.5 16.12 20.38 15 19 15V16.5L16.75 14.25L19 12M19 23V21.5C16.79 21.5 15 19.71 15 17.5C15 16.68 15.25 15.92 15.67 15.29L16.76 16.38C16.59 16.72 16.5 17.1 16.5 17.5C16.5 18.88 17.62 20 19 20V18.5L21.25 20.75L19 23M4 3H18C19.11 3 20 3.9 20 5V11L19.5 11C17.66 11 16 11.77 14.81 13H12V17H13L13 17.5C13 18 13.06 18.5 13.17 19H4C2.9 19 2 18.11 2 17V5C2 3.9 2.9 3 4 3M4 7V11H10V7H4M12 7V11H18V7H12M4 13V17H10V13H4Z\";\nexport var mdiTableTennis = \"M18.5,14C19.9,14 21,15.1 21,16.5C21,17.9 19.9,19 18.5,19C17.1,19 16,17.9 16,16.5C16,15.1 17.1,14 18.5,14M7,15C7,15 8,16 8,17V20.5C8,21.3 8.7,22 9.5,22C10.3,22 11,21.3 11,20.5V17C11,16 12,15 12,15H7M8,14H11C11,14 16,14 16,9C16,4 12,2 9.5,2C7,2 3,4 3,9C3,14 8,14 8,14Z\";\nexport var mdiTablet = \"M19,18H5V6H19M21,4H3C1.89,4 1,4.89 1,6V18A2,2 0 0,0 3,20H21A2,2 0 0,0 23,18V6C23,4.89 22.1,4 21,4Z\";\nexport var mdiTabletCellphone = \"M3,4H20A2,2 0 0,1 22,6V8H18V6H5V18H14V20H3A2,2 0 0,1 1,18V6A2,2 0 0,1 3,4M17,10H23A1,1 0 0,1 24,11V21A1,1 0 0,1 23,22H17A1,1 0 0,1 16,21V11A1,1 0 0,1 17,10M18,12V19H22V12H18Z\";\nexport var mdiTabletDashboard = \"M19,18H5V6H19M21,4H3C1.89,4 1,4.89 1,6V18A2,2 0 0,0 3,20H21A2,2 0 0,0 23,18V6C23,4.89 22.1,4 21,4M7,8H13V13H7V8M14,8H17V10H14V8M17,11V16H14V11H17M7,14H13V16H7V14Z\";\nexport var mdiTaco = \"M19,18H5A4,4 0 0,1 1,14A8,8 0 0,1 9,6C10.06,6 11.07,6.21 12,6.58C12.93,6.21 13.94,6 15,6A8,8 0 0,1 23,14A4,4 0 0,1 19,18M3,14A2,2 0 0,0 5,16A2,2 0 0,0 7,14C7,11.63 8.03,9.5 9.67,8.04L9,8A6,6 0 0,0 3,14M19,16A2,2 0 0,0 21,14A6,6 0 0,0 15,8A6,6 0 0,0 9,14C9,14.73 8.81,15.41 8.46,16H19Z\";\nexport var mdiTag = \"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\";\nexport var mdiTagArrowDown = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.41L3 12.81C3.9 12.27 4.94 12 6 12C9.31 12 12 14.69 12 18C12 19.06 11.72 20.09 11.18 21L11.58 21.4C11.95 21.78 12.47 22 13 22S14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13S21.79 11.96 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M7 19V15H5V19H3L6 22L9 19H7Z\";\nexport var mdiTagArrowDownOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M8 18V14H6V18H4L7 21L10 18H8Z\";\nexport var mdiTagArrowLeft = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.41L3 12.81C3.9 12.27 4.94 12 6 12C9.31 12 12 14.69 12 18C12 19.06 11.72 20.09 11.18 21L11.58 21.4C11.95 21.78 12.47 22 13 22S14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13S21.79 11.96 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M5 19H9V17H5V15L2 18L5 21V19Z\";\nexport var mdiTagArrowLeftOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M5 19H9V17H5V15L2 18L5 21V19Z\";\nexport var mdiTagArrowRight = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.41L3 12.81C3.9 12.27 4.94 12 6 12C9.31 12 12 14.69 12 18C12 19.06 11.72 20.09 11.18 21L11.58 21.4C11.95 21.78 12.47 22 13 22S14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13S21.79 11.96 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M6 17H2V19H6V21L9 18L6 15V17Z\";\nexport var mdiTagArrowRightOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6 17H2V19H6V21L9 18L6 15V17Z\";\nexport var mdiTagArrowUp = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.41L3 12.81C3.9 12.27 4.94 12 6 12C9.31 12 12 14.69 12 18C12 19.06 11.72 20.09 11.18 21L11.58 21.4C11.95 21.78 12.47 22 13 22S14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13S21.79 11.96 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M5 17V21H7V17H9L6 14L3 17H5Z\";\nexport var mdiTagArrowUpOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6 17V21H8V17H10L7 14L4 17H6Z\";\nexport var mdiTagCheck = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.41L3 12.81C3.9 12.27 4.94 12 6 12C9.31 12 12 14.69 12 18C12 19.06 11.72 20.09 11.18 21L11.58 21.4C11.95 21.78 12.47 22 13 22S14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13S21.79 11.96 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M8.63 14.27L4.76 18.17L3.41 16.8L2 18.22L4.75 21L10.03 15.68L8.63 14.27\";\nexport var mdiTagCheckOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M8.63 14.27L4.76 18.17L3.41 16.8L2 18.22L4.75 21L10.03 15.68L8.63 14.27\";\nexport var mdiTagEdit = \"M12.41 2.58L21.41 11.58C21.77 11.94 22 12.44 22 13C22 13.55 21.78 14.05 21.41 14.41L14.41 21.41C14.05 21.77 13.55 22 13 22C12.45 22 11.95 21.77 11.58 21.41L9.45 19.28L10.7 18.03L10.7 18.04L13.11 15.62C14.11 14.63 14.11 13 13.11 12L11.83 10.74C10.84 9.75 9.23 9.75 8.24 10.74L8.07 10.91L8.06 10.91L4.57 14.4L2.59 12.41C2.22 12.05 2 11.55 2 11V4C2 2.89 2.89 2 4 2H11C11.55 2 12.05 2.22 12.41 2.58M4.44 6.56C4.72 6.84 5.1 7 5.5 7C5.9 7 6.28 6.84 6.56 6.56C6.84 6.28 7 5.9 7 5.5C7 5.1 6.84 4.72 6.56 4.44C6.28 4.16 5.9 4 5.5 4C5.1 4 4.72 4.16 4.44 4.44C4.16 4.72 4 5.1 4 5.5C4 5.9 4.16 6.28 4.44 6.56M10.7 15.35L11.7 14.35C11.91 14.14 11.91 13.79 11.7 13.58L10.42 12.3C10.21 12.09 9.86 12.09 9.65 12.3L8.65 13.3L10.7 15.35M8.06 13.88L2 19.94V22H4.06L10.11 15.93L8.06 13.88Z\";\nexport var mdiTagEditOutline = \"M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C3.47 2 2.96 2.21 2.59 2.59C2.21 2.96 2 3.47 2 4V11C2 11.26 2.05 11.53 2.15 11.77C2.25 12 2.4 12.23 2.59 12.42L4.57 14.4L6 13L4 11V4H11L20 13L13 20L10.87 17.87L10.7 18.04L10.7 18.03L9.45 19.28L11.59 21.42C11.97 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.74 21.95 12.5 21.85 12.23C21.75 12 21.6 11.77 21.41 11.58M6.5 5C6.8 5 7.09 5.09 7.33 5.25C7.58 5.42 7.77 5.65 7.89 5.93C8 6.2 8.03 6.5 7.97 6.79C7.91 7.08 7.77 7.35 7.56 7.56C7.35 7.77 7.08 7.91 6.79 7.97C6.5 8.03 6.2 8 5.93 7.89C5.65 7.77 5.42 7.58 5.25 7.33C5.09 7.09 5 6.8 5 6.5C5 6.1 5.16 5.72 5.44 5.44C5.72 5.16 6.1 5 6.5 5M10.7 15.35L11.7 14.35C11.91 14.14 11.91 13.79 11.7 13.58L10.42 12.3C10.21 12.09 9.86 12.09 9.65 12.3L8.65 13.3L10.7 15.35M8.06 13.88L2 19.94V22H4.06L10.11 15.93L8.06 13.88Z\";\nexport var mdiTagFaces = \"M15,18C11.68,18 9,15.31 9,12C9,8.68 11.68,6 15,6A6,6 0 0,1 21,12A6,6 0 0,1 15,18M4,13A1,1 0 0,1 3,12A1,1 0 0,1 4,11A1,1 0 0,1 5,12A1,1 0 0,1 4,13M22,3H7.63C6.97,3 6.38,3.32 6,3.81L0,12L6,20.18C6.38,20.68 6.97,21 7.63,21H22A2,2 0 0,0 24,19V5C24,3.89 23.1,3 22,3M13,11A1,1 0 0,0 14,10A1,1 0 0,0 13,9A1,1 0 0,0 12,10A1,1 0 0,0 13,11M15,16C16.86,16 18.35,14.72 18.8,13H11.2C11.65,14.72 13.14,16 15,16M17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11Z\";\nexport var mdiTagHeart = \"M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4A2,2 0 0,0 2,4V11C2,11.55 2.22,12.05 2.59,12.42L11.59,21.42C11.95,21.78 12.45,22 13,22C13.55,22 14.05,21.78 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.45 21.77,11.94 21.41,11.58M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M17.27,15.27L13,19.54L8.73,15.27C8.28,14.81 8,14.19 8,13.5A2.5,2.5 0 0,1 10.5,11C11.19,11 11.82,11.28 12.27,11.74L13,12.46L13.73,11.73C14.18,11.28 14.81,11 15.5,11A2.5,2.5 0 0,1 18,13.5C18,14.19 17.72,14.82 17.27,15.27Z\";\nexport var mdiTagHeartOutline = \"M4,2A2,2 0 0,0 2,4V11C2,11.55 2.22,12.05 2.59,12.42L11.59,21.42C11.95,21.78 12.45,22 13,22C13.55,22 14.05,21.78 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.45 21.77,11.94 21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4V2M11,4L20,13L13,20L4,11V4H11V4H11M6.5,5A1.5,1.5 0 0,0 5,6.5A1.5,1.5 0 0,0 6.5,8A1.5,1.5 0 0,0 8,6.5A1.5,1.5 0 0,0 6.5,5M10.95,10.5C9.82,10.5 8.9,11.42 8.9,12.55C8.9,13.12 9.13,13.62 9.5,14L13,17.5L16.5,14C16.87,13.63 17.1,13.11 17.1,12.55A2.05,2.05 0 0,0 15.05,10.5C14.5,10.5 13.97,10.73 13.6,11.1L13,11.7L12.4,11.11C12.03,10.73 11.5,10.5 10.95,10.5Z\";\nexport var mdiTagHidden = \"M13.64 3.81L12.41 2.58C12.04 2.21 11.53 2 11 2H10V4H11L12.23 5.23L13.64 3.81M12.93 5.93L14.35 4.5L16.47 6.64L15.05 8.05L12.93 5.93M4 11L5.23 12.23L3.81 13.64L2.59 12.42C2.4 12.23 2.25 12 2.15 11.77C2.05 11.53 2 11.26 2 11V10H4V11M4.5 14.35L5.93 12.93L8.05 15.05L6.64 16.47L4.5 14.35M9.47 19.3L7.35 17.18L8.76 15.76L10.88 17.88L9.47 19.3M15.76 8.76L17.88 10.88L19.3 9.47L17.18 7.35L15.76 8.76M18.59 11.59L20 10.17L21.41 11.58C21.6 11.77 21.75 12 21.85 12.23C21.95 12.5 22 12.74 22 13C22 13.53 21.79 14.04 21.41 14.41L18.59 11.59M20.7 15.12L19.29 13.71L16.85 16.15L18.26 17.56L20.7 15.12M16.15 16.85L17.56 18.26L15.12 20.7L13.71 19.29L16.15 16.85M14.41 21.41L11.59 18.59L10.17 20L11.59 21.42C11.97 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41M4 9H2V6H4V9M2 5H4V4H5V2H4C3.47 2 2.96 2.21 2.59 2.59C2.21 2.96 2 3.47 2 4V5M6 4V2H9V4H6M6.5 8C7.33 8 8 7.33 8 6.5C8 5.67 7.33 5 6.5 5C5.67 5 5 5.67 5 6.5C5 7.33 5.67 8 6.5 8Z\";\nexport var mdiTagMinus = \"M21.41,11.58L12.41,2.58C12.04,2.21 11.53,2 11,2H4A2,2 0 0,0 2,4V11C2,11.53 2.21,12.04 2.59,12.41L3,12.81C3.9,12.27 4.94,12 6,12A6,6 0 0,1 12,18C12,19.06 11.72,20.09 11.18,21L11.58,21.4C11.95,21.78 12.47,22 13,22C13.53,22 14.04,21.79 14.41,21.41L21.41,14.41C21.79,14.04 22,13.53 22,13C22,12.47 21.79,11.96 21.41,11.58M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M10,19H2V17H10V19Z\";\nexport var mdiTagMinusOutline = \"M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M21.41 11.58L12.41 2.58C12.04 2.21 11.53 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.53 2.21 12.04 2.59 12.42L3 12.82C3.64 12.44 4.35 12.19 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92C11.82 19.66 11.56 20.36 11.18 21L11.59 21.41C11.96 21.79 12.47 22 13 22C13.53 22 14.04 21.79 14.41 21.41L21.41 14.41C21.79 14.04 22 13.53 22 13C22 12.47 21.79 11.96 21.41 11.58M6.5 5C5.67 5 5 5.67 5 6.5S5.67 8 6.5 8 8 7.33 8 6.5 7.33 5 6.5 5M10 19H2V17H10V19Z\";\nexport var mdiTagMultiple = \"M5.5,9A1.5,1.5 0 0,0 7,7.5A1.5,1.5 0 0,0 5.5,6A1.5,1.5 0 0,0 4,7.5A1.5,1.5 0 0,0 5.5,9M17.41,11.58C17.77,11.94 18,12.44 18,13C18,13.55 17.78,14.05 17.41,14.41L12.41,19.41C12.05,19.77 11.55,20 11,20C10.45,20 9.95,19.78 9.58,19.41L2.59,12.42C2.22,12.05 2,11.55 2,11V6C2,4.89 2.89,4 4,4H9C9.55,4 10.05,4.22 10.41,4.58L17.41,11.58M13.54,5.71L14.54,4.71L21.41,11.58C21.78,11.94 22,12.45 22,13C22,13.55 21.78,14.05 21.42,14.41L16.04,19.79L15.04,18.79L20.75,13L13.54,5.71Z\";\nexport var mdiTagMultipleOutline = \"M6.5 10C7.3 10 8 9.3 8 8.5S7.3 7 6.5 7 5 7.7 5 8.5 5.7 10 6.5 10M9 6L16 13L11 18L4 11V6H9M9 4H4C2.9 4 2 4.9 2 6V11C2 11.6 2.2 12.1 2.6 12.4L9.6 19.4C9.9 19.8 10.4 20 11 20S12.1 19.8 12.4 19.4L17.4 14.4C17.8 14 18 13.5 18 13C18 12.4 17.8 11.9 17.4 11.6L10.4 4.6C10.1 4.2 9.6 4 9 4M13.5 5.7L14.5 4.7L21.4 11.6C21.8 12 22 12.5 22 13S21.8 14.1 21.4 14.4L16 19.8L15 18.8L20.7 13L13.5 5.7Z\";\nexport var mdiTagOff = \"M18.33 8.5L22.92 3.92L21.5 2.5L2.5 21.5L3.92 22.92L8.5 18.33L11.58 21.41A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M5.61 15.43L15.47 5.65L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.41M5.5 4A1.5 1.5 0 1 1 4 5.5A1.5 1.5 0 0 1 5.5 4Z\";\nexport var mdiTagOffOutline = \"M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M18.33 8.5L22.92 3.92L21.5 2.5L2.5 21.5L3.92 22.92L8.5 18.33L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L9.92 16.92L16.92 9.92L20 13M5.61 15.43L7 14L4 11V4H11L14.06 7.06L15.47 5.66L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42M5 6.5A1.5 1.5 0 1 0 6.5 5A1.5 1.5 0 0 0 5 6.5Z\";\nexport var mdiTagOutline = \"M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L11.59 21.42A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M13 20L4 11V4H11L20 13M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5Z\";\nexport var mdiTagPlus = \"M21.41,11.58L12.41,2.58C12.04,2.21 11.53,2 11,2H4A2,2 0 0,0 2,4V11C2,11.53 2.21,12.04 2.59,12.41L3,12.81C3.9,12.27 4.94,12 6,12A6,6 0 0,1 12,18C12,19.06 11.72,20.09 11.18,21L11.58,21.4C11.95,21.78 12.47,22 13,22C13.53,22 14.04,21.79 14.41,21.41L21.41,14.41C21.79,14.04 22,13.53 22,13C22,12.47 21.79,11.96 21.41,11.58M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M10,19H7V22H5V19H2V17H5V14H7V17H10V19Z\";\nexport var mdiTagPlusOutline = \"M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L3 12.82A5.62 5.62 0 0 1 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92A5.57 5.57 0 0 1 11.18 21L11.59 21.41A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M10 19H7V22H5V19H2V17H5V14H7V17H10Z\";\nexport var mdiTagRemove = \"M21.41,11.58L12.41,2.58C12.04,2.21 11.53,2 11,2H4A2,2 0 0,0 2,4V11C2,11.53 2.21,12.04 2.59,12.41L3,12.81C3.9,12.27 4.94,12 6,12A6,6 0 0,1 12,18C12,19.06 11.72,20.09 11.18,21L11.58,21.4C11.95,21.78 12.47,22 13,22C13.53,22 14.04,21.79 14.41,21.41L21.41,14.41C21.79,14.04 22,13.53 22,13C22,12.47 21.79,11.96 21.41,11.58M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M8.12,21.54L6,19.41L3.88,21.54L2.46,20.12L4.59,18L2.46,15.88L3.87,14.47L6,16.59L8.12,14.47L9.53,15.88L7.41,18L9.53,20.12L8.12,21.54Z\";\nexport var mdiTagRemoveOutline = \"M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.42L3 12.82A5.62 5.62 0 0 1 5.08 12.08L4 11V4H11L20 13L13 20L11.92 18.92A5.57 5.57 0 0 1 11.18 21L11.59 21.41A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M6.5 5A1.5 1.5 0 1 0 8 6.5A1.5 1.5 0 0 0 6.5 5M8.12 21.54L6 19.41L3.88 21.54L2.46 20.12L4.59 18L2.46 15.88L3.88 14.46L6 16.59L8.12 14.46L9.54 15.88L7.41 18L9.54 20.12Z\";\nexport var mdiTagSearch = \"M21.41 11.58L12.41 2.58C12.05 2.22 11.55 2 11 2H4C2.89 2 2 2.89 2 4V11C2 11.55 2.22 12.05 2.59 12.41L11.58 21.41C11.95 21.77 12.45 22 13 22S14.05 21.77 14.41 21.41L14.83 21C11.6 20.9 9 18.26 9 15C9 11.69 11.69 9 15 9C18.26 9 20.9 11.6 21 14.83L21.41 14.41C21.78 14.05 22 13.55 22 13C22 12.44 21.77 11.94 21.41 11.58M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7M15.11 10.61C17.61 10.61 19.61 12.61 19.61 15.11C19.61 16 19.36 16.82 18.92 17.5L22 20.61L20.61 22L17.5 18.93C16.8 19.36 16 19.61 15.11 19.61C12.61 19.61 10.61 17.61 10.61 15.11S12.61 10.61 15.11 10.61M15.11 12.61C13.73 12.61 12.61 13.73 12.61 15.11S13.73 17.61 15.11 17.61 17.61 16.5 17.61 15.11 16.5 12.61 15.11 12.61\";\nexport var mdiTagSearchOutline = \"M22 13C22 13.53 21.79 14.04 21.41 14.41L21 14.83C20.91 11.97 18.84 9.62 16.11 9.11L11 4H4V11L9.11 16.11C9.62 18.84 11.97 20.91 14.83 21L14.41 21.41C14.04 21.79 13.53 22 13 22C12.47 22 11.97 21.79 11.59 21.42L2.59 12.42C2.21 12.04 2 11.53 2 11V4C2 2.9 2.9 2 4 2H11C11.53 2 12.04 2.21 12.41 2.58L21.41 11.58C21.79 11.96 22 12.47 22 13M5 6.5C5 7.33 5.67 8 6.5 8S8 7.33 8 6.5 7.33 5 6.5 5 5 5.67 5 6.5M15.11 10.61C12.61 10.61 10.61 12.61 10.61 15.11S12.61 19.61 15.11 19.61C16 19.61 16.8 19.36 17.5 18.93L20.61 22L22 20.61L18.92 17.5C19.36 16.82 19.61 16 19.61 15.11C19.61 12.61 17.61 10.61 15.11 10.61M15.11 12.61C16.5 12.61 17.61 13.73 17.61 15.11S16.5 17.61 15.11 17.61 12.61 16.5 12.61 15.11 13.73 12.61 15.11 12.61\";\nexport var mdiTagText = \"M21.41 11.58L12.41 2.58A2 2 0 0 0 11 2H4A2 2 0 0 0 2 4V11A2 2 0 0 0 2.59 12.41L11.59 21.41A2 2 0 0 0 13 22A2 2 0 0 0 14.41 21.41L21.41 14.41A2 2 0 0 0 22 13A2 2 0 0 0 21.41 11.58M6.5 8A1.5 1.5 0 1 1 8 6.5A1.5 1.5 0 0 1 6.5 8M11.59 15.41L7.59 11.41L9 10L13 14M15.59 14.41L10.09 8.91L11.5 7.5L17 13Z\";\nexport var mdiTagTextOutline = \"M21.4 11.6L12.4 2.6C12 2.2 11.5 2 11 2H4C2.9 2 2 2.9 2 4V11C2 11.5 2.2 12 2.6 12.4L11.6 21.4C12 21.8 12.5 22 13 22C13.5 22 14 21.8 14.4 21.4L21.4 14.4C21.8 14 22 13.5 22 13C22 12.5 21.8 12 21.4 11.6M13 20L4 11V4H11L20 13M6.5 5C7.3 5 8 5.7 8 6.5S7.3 8 6.5 8 5 7.3 5 6.5 5.7 5 6.5 5M10.1 8.9L11.5 7.5L17 13L15.6 14.4L10.1 8.9M7.6 11.4L9 10L13 14L11.6 15.4L7.6 11.4Z\";\nexport var mdiTailwind = \"M12 6C9.33 6 7.67 7.33 7 10C8 8.67 9.17 8.17 10.5 8.5C11.26 8.69 11.81 9.24 12.41 9.85C13.39 10.85 14.5 12 17 12C19.67 12 21.33 10.67 22 8C21 9.33 19.83 9.83 18.5 9.5C17.74 9.31 17.2 8.76 16.59 8.15C15.61 7.15 14.5 6 12 6M7 12C4.33 12 2.67 13.33 2 16C3 14.67 4.17 14.17 5.5 14.5C6.26 14.69 6.8 15.24 7.41 15.85C8.39 16.85 9.5 18 12 18C14.67 18 16.33 16.67 17 14C16 15.33 14.83 15.83 13.5 15.5C12.74 15.31 12.2 14.76 11.59 14.15C10.61 13.15 9.5 12 7 12Z\";\nexport var mdiTallyMark1 = \"M13 19H11V5H13V19Z\";\nexport var mdiTallyMark2 = \"M11 19H9V5H11V19M15 5H13V19H15V5Z\";\nexport var mdiTallyMark3 = \"M9 19H7V5H9V19M13 5H11V19H13V5M17 5H15V19H17V5Z\";\nexport var mdiTallyMark4 = \"M7 19H5V5H7V19M11 5H9V19H11V5M15 5H13V19H15V5M19 5H17V19H19V5Z\";\nexport var mdiTallyMark5 = \"M19 10.73V19H17V11.36L15 12V19H13V12.62L11 13.26V19H9V13.89L7 14.5V19H5V15.15L2.57 15.92L2 14L5 13.05V5H7V12.42L9 11.79V5H11V11.16L13 10.53V5H15V9.9L17 9.26V5H19V8.63L21 8L21.57 9.92L19 10.73Z\";\nexport var mdiTangram = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2M18.59 4L12 10.59L5.41 4H18.59M13.41 12L16.5 8.91L19.59 12L16.5 15.09L13.41 12M14.59 16H9.41L12 13.41L14.59 16M4 5.41L10.59 12L4 18.59V5.41M11.59 20H5.41L7.41 18H13.59L11.59 20M20 20H14.41L20 14.41V20M20 9.59L17.91 7.5L20 5.41V9.59Z\";\nexport var mdiTank = \"M20,12H4V11H6L7,6H12L13,11H20V12M13.22,7L13.62,9H22V7H13.22M22,16A3,3 0 0,1 19,19H5A3,3 0 0,1 2,16A3,3 0 0,1 5,13H19A3,3 0 0,1 22,16M6,16A1,1 0 0,0 5,15A1,1 0 0,0 4,16A1,1 0 0,0 5,17A1,1 0 0,0 6,16M13,16A1,1 0 0,0 12,15A1,1 0 0,0 11,16A1,1 0 0,0 12,17A1,1 0 0,0 13,16M20,16A1,1 0 0,0 19,15A1,1 0 0,0 18,16A1,1 0 0,0 19,17A1,1 0 0,0 20,16Z\";\nexport var mdiTankerTruck = \"M20 8H15V14H2V17H3C3 18.7 4.3 20 6 20S9 18.7 9 17H15C15 18.7 16.3 20 18 20S21 18.7 21 17H23V12L20 8M6 18.5C5.2 18.5 4.5 17.8 4.5 17S5.2 15.5 6 15.5 7.5 16.2 7.5 17 6.8 18.5 6 18.5M18 18.5C17.2 18.5 16.5 17.8 16.5 17S17.2 15.5 18 15.5 19.5 16.2 19.5 17 18.8 18.5 18 18.5M17 12V9.5H19.5L21.5 12H17M14 9.5C14 11.4 12.4 13 10.5 13H4.5C2.6 13 1 11.4 1 9.5S2.6 6 4.5 6H5V5H4V4H8V5H7V6H10.5C12.4 6 14 7.6 14 9.5Z\";\nexport var mdiTapeDrive = \"M12 10C13.11 10 14 10.9 14 12C14 13.11 13.11 14 12 14C10.9 14 10 13.11 10 12C10 10.9 10.9 10 12 10M5 3H19C20.11 3 21 3.9 21 5V17H16.9C18.2 15.73 19 13.96 19 12C19 8.13 15.87 5 12 5C8.13 5 5 8.13 5 12C5 15.87 8.13 19 12 19H21C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3Z\";\nexport var mdiTapeMeasure = \"M9,5A7,7 0 0,1 16,12H17V15H16V19H9A7,7 0 0,1 2,12A7,7 0 0,1 9,5M9,8A4,4 0 0,0 5,12A4,4 0 0,0 9,16A4,4 0 0,0 13,12A4,4 0 0,0 9,8M17,17H22V19L22,21H20V19H17V17Z\";\nexport var mdiTarget = \"M11,2V4.07C7.38,4.53 4.53,7.38 4.07,11H2V13H4.07C4.53,16.62 7.38,19.47 11,19.93V22H13V19.93C16.62,19.47 19.47,16.62 19.93,13H22V11H19.93C19.47,7.38 16.62,4.53 13,4.07V2M11,6.08V8H13V6.09C15.5,6.5 17.5,8.5 17.92,11H16V13H17.91C17.5,15.5 15.5,17.5 13,17.92V16H11V17.91C8.5,17.5 6.5,15.5 6.08,13H8V11H6.09C6.5,8.5 8.5,6.5 11,6.08M12,11A1,1 0 0,0 11,12A1,1 0 0,0 12,13A1,1 0 0,0 13,12A1,1 0 0,0 12,11Z\";\nexport var mdiTargetAccount = \"M20.95,11H22.5V13H20.95C20.5,17.17 17.17,20.5 13,20.95V22.5H11V20.95C6.83,20.5 3.5,17.17 3.05,13H1.5V11H3.05C3.5,6.83 6.83,3.5 11,3.05V1.5H13V3.05C17.17,3.5 20.5,6.83 20.95,11M5.07,11H6.5V13H5.07C5.5,16.07 7.93,18.5 11,18.93V17.5H13V18.93C16.07,18.5 18.5,16.07 18.93,13H17.5V11H18.93C18.5,7.93 16.07,5.5 13,5.07V6.5H11V5.07C7.93,5.5 5.5,7.93 5.07,11M16,16H8V15C8,13.67 10.67,13 12,13C13.33,13 16,13.67 16,15V16M12,8A2,2 0 0,1 14,10A2,2 0 0,1 12,12A2,2 0 0,1 10,10A2,2 0 0,1 12,8Z\";\nexport var mdiTargetVariant = \"M22.08,11.04H20.08V4H13.05V2H11.04V4H4V11.04H2V13.05H4V20.08H11.04V22.08H13.05V20.08H20.08V13.05H22.08V11.04M18.07,18.07H13.05V16.06H11.04V18.07H6V13.05H8.03V11.04H6V6H11.04V8.03H13.05V6H18.07V11.04H16.06V13.05H18.07V18.07M13.05,12.05A1,1 0 0,1 12.05,13.05C11.5,13.05 11.04,12.6 11.04,12.05C11.04,11.5 11.5,11.04 12.05,11.04C12.6,11.04 13.05,11.5 13.05,12.05Z\";\nexport var mdiTaxi = \"M5,11L6.5,6.5H17.5L19,11M17.5,16A1.5,1.5 0 0,1 16,14.5A1.5,1.5 0 0,1 17.5,13A1.5,1.5 0 0,1 19,14.5A1.5,1.5 0 0,1 17.5,16M6.5,16A1.5,1.5 0 0,1 5,14.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 8,14.5A1.5,1.5 0 0,1 6.5,16M18.92,6C18.72,5.42 18.16,5 17.5,5H15V3H9V5H6.5C5.84,5 5.28,5.42 5.08,6L3,12V20A1,1 0 0,0 4,21H5A1,1 0 0,0 6,20V19H18V20A1,1 0 0,0 19,21H20A1,1 0 0,0 21,20V12L18.92,6Z\";\nexport var mdiTea = \"M4,19H20V21H4V19M20,8V5H18V8H20M20,3C20.6,3 21,3.2 21.4,3.6C21.8,4 22,4.5 22,5V8C22,8.6 21.8,9 21.4,9.4C21,9.8 20.6,10 20,10H18V13C18,14.1 17.6,15 16.8,15.8C16,16.6 15.1,17 14,17H8C6.9,17 6,16.6 5.2,15.8C4.4,15 4,14.1 4,13V3H9V5.4L7.2,6.8C7.1,6.9 7,7.1 7,7.2V11.5C7,11.8 7.2,12 7.5,12H11.5C11.8,12 12,11.8 12,11.5V7.2C12,7 11.9,6.9 11.8,6.8L10,5.4V3H20Z\";\nexport var mdiTeaOutline = \"M4,19H20V21H4V19M21.4,3.6C21,3.2 20.6,3 20,3H4V13C4,14.1 4.4,15 5.2,15.8C6,16.6 6.9,17 8,17H14C15.1,17 16,16.6 16.8,15.8C17.6,15 18,14.1 18,13V10H20C20.6,10 21,9.8 21.4,9.4C21.8,9 22,8.6 22,8V5C22,4.5 21.8,4 21.4,3.6M16,5V8L16,10V13C16,13.6 15.8,14 15.4,14.4C15,14.8 14.6,15 14,15H8C7.4,15 7,14.8 6.6,14.4C6.2,14 6,13.5 6,13V5H10V6.4L8.2,7.8C8,7.9 8,8.1 8,8.2V12.5C8,12.8 8.2,13 8.5,13H12.5C12.8,13 13,12.8 13,12.5V8.2C13,8 12.9,7.9 12.8,7.8L11,6.4V5H16M20,8H18V5H20V8Z\";\nexport var mdiTeamviewer = \"M10.04 9.2L9.3 11H14.75L14 9.2L19.55 12L14 14.8L14.75 13H9.3L10.04 14.8L4.5 12L10.04 9.2M20.83 22H3.17C2.53 22 2 21.5 2 20.83V3.17C2 2.53 2.53 2 3.17 2H20.83C21.5 2 22 2.53 22 3.17V20.83C22 21.47 21.5 22 20.83 22M11.93 3.76C7.41 3.82 3.78 7.5 3.76 12C3.72 16.5 7.35 20.2 11.86 20.24H12C16.53 20.18 20.18 16.53 20.24 12C20.31 7.5 16.74 3.83 12.26 3.76C12.15 3.75 12.04 3.76 11.93 3.76Z\";\nexport var mdiTeddyBear = \"M15.75 19.13C14.92 19.13 14.25 18.29 14.25 17.25C14.25 16.22 14.92 15.38 15.75 15.38C16.58 15.38 17.25 16.22 17.25 17.25C17.25 18.29 16.58 19.13 15.75 19.13M12 11.25C10.76 11.25 9.75 10.41 9.75 9.38C9.75 8.34 10.76 7.5 12 7.5C13.24 7.5 14.25 8.34 14.25 9.38C14.25 10.41 13.24 11.25 12 11.25M8.25 19.13C7.42 19.13 6.75 18.29 6.75 17.25C6.75 16.22 7.42 15.38 8.25 15.38C9.08 15.38 9.75 16.22 9.75 17.25C9.75 18.29 9.08 19.13 8.25 19.13M12 8.25C12.41 8.25 12.75 8.59 12.75 9C12.75 9.41 12.41 9.75 12 9.75C11.59 9.75 11.25 9.41 11.25 9C11.25 8.59 11.59 8.25 12 8.25M18.75 12C18.43 12 18.12 12.07 17.84 12.2C17.36 11.59 16.71 11.07 15.93 10.67C16.5 9.87 16.84 8.9 16.84 7.85C16.84 7.83 16.84 7.81 16.84 7.79C17.93 7.56 18.75 6.59 18.75 5.42C18.75 4.09 17.66 3 16.33 3C15.64 3 15 3.29 14.58 3.75C13.83 3.28 12.95 3 12 3C11.05 3 10.16 3.28 9.42 3.75C9 3.29 8.36 3 7.67 3C6.34 3 5.25 4.09 5.25 5.42C5.25 6.58 6.07 7.55 7.15 7.79C7.15 7.81 7.15 7.83 7.15 7.85C7.15 8.9 7.5 9.88 8.06 10.67C7.29 11.07 6.64 11.59 6.16 12.2C5.88 12.07 5.57 12 5.25 12C4 12 3 13 3 14.25C3 15.5 4 16.5 5.25 16.5C5.27 16.5 5.29 16.5 5.31 16.5C5.27 16.74 5.25 17 5.25 17.25C5.25 19.32 6.59 21 8.25 21C9.26 21 10.15 20.37 10.7 19.41C11.12 19.47 11.55 19.5 12 19.5C12.45 19.5 12.88 19.47 13.3 19.41C13.85 20.37 14.74 21 15.75 21C17.41 21 18.75 19.32 18.75 17.25C18.75 17 18.73 16.74 18.69 16.5C18.71 16.5 18.73 16.5 18.75 16.5C20 16.5 21 15.5 21 14.25C21 13 20 12 18.75 12\";\nexport var mdiTelescope = \"M21.9,8.9L20.2,9.9L16.2,3L17.9,2L21.9,8.9M9.8,7.9L12.8,13.1L18.9,9.6L15.9,4.4L9.8,7.9M11.4,12.7L9.4,9.2L5.1,11.7L7.1,15.2L11.4,12.7M2.1,14.6L3.1,16.3L5.7,14.8L4.7,13.1L2.1,14.6M12.1,14L11.8,13.6L7.5,16.1L7.8,16.5C8,16.8 8.3,17.1 8.6,17.3L7,22H9L10.4,17.7H10.5L12,22H14L12.1,16.4C12.6,15.7 12.6,14.8 12.1,14Z\";\nexport var mdiTelevision = \"M21,17H3V5H21M21,3H3A2,2 0 0,0 1,5V17A2,2 0 0,0 3,19H8V21H16V19H21A2,2 0 0,0 23,17V5A2,2 0 0,0 21,3Z\";\nexport var mdiTelevisionAmbientLight = \"M3 11H0V9H3V11M3 14H0V16H3V14M5 5.12L2.88 3L1.46 4.41L3.59 6.54L5 5.12M10 5V2H8V5H10M24 9H21V11H24V9M16 5V2H14V5H16M20.41 6.54L22.54 4.42L21.12 3L19 5.12L20.41 6.54M24 14H21V16H24V14M19 9V16C19 17.1 18.1 18 17 18H15V20H9V18H7C5.9 18 5 17.1 5 16V9C5 7.9 5.9 7 7 7H17C18.1 7 19 7.9 19 9M17 9H7V16H17V9M19 19.88L21.12 22L22.54 20.59L20.41 18.47L19 19.88M3.59 18.46L1.47 20.59L2.88 22L5 19.88L3.59 18.46Z\";\nexport var mdiTelevisionBox = \"M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M16,16L19,8H16.5L15,12.5L13.5,8H5V10H8V16H10V10H11.77L14,16H16Z\";\nexport var mdiTelevisionClassic = \"M8.16,3L6.75,4.41L9.34,7H4C2.89,7 2,7.89 2,9V19C2,20.11 2.89,21 4,21H20C21.11,21 22,20.11 22,19V9C22,7.89 21.11,7 20,7H14.66L17.25,4.41L15.84,3L12,6.84L8.16,3M4,9H17V19H4V9M19.5,9A1,1 0 0,1 20.5,10A1,1 0 0,1 19.5,11A1,1 0 0,1 18.5,10A1,1 0 0,1 19.5,9M19.5,12A1,1 0 0,1 20.5,13A1,1 0 0,1 19.5,14A1,1 0 0,1 18.5,13A1,1 0 0,1 19.5,12Z\";\nexport var mdiTelevisionClassicOff = \"M2,5.27L3.28,4L21,21.72L19.73,23L17.73,21H4C2.89,21 2,20.11 2,19V9C2,8 2.76,7.14 3.75,7L2,5.27M8.16,3L12,6.84L15.84,3L17.25,4.41L14.66,7H20C21.11,7 22,7.89 22,9V19C22,19.34 21.92,19.66 21.77,19.94L17,15.18V9H10.82L8.82,7H9.34L6.75,4.41L8.16,3M4,9V19H15.73L5.73,9H4M19.5,9A1,1 0 0,0 18.5,10A1,1 0 0,0 19.5,11A1,1 0 0,0 20.5,10A1,1 0 0,0 19.5,9M19.5,12A1,1 0 0,0 18.5,13A1,1 0 0,0 19.5,14A1,1 0 0,0 20.5,13A1,1 0 0,0 19.5,12Z\";\nexport var mdiTelevisionGuide = \"M21,17V5H3V17H21M21,3A2,2 0 0,1 23,5V17A2,2 0 0,1 21,19H16V21H8V19H3A2,2 0 0,1 1,17V5A2,2 0 0,1 3,3H21M5,7H11V11H5V7M5,13H11V15H5V13M13,7H19V9H13V7M13,11H19V15H13V11Z\";\nexport var mdiTelevisionOff = \"M0.5,2.77L1.78,1.5L21,20.72L19.73,22L16.73,19H16V21H8V19H3A2,2 0 0,1 1,17V5C1,4.5 1.17,4.07 1.46,3.73L0.5,2.77M21,17V5H7.82L5.82,3H21A2,2 0 0,1 23,5V17C23,17.85 22.45,18.59 21.7,18.87L19.82,17H21M3,17H14.73L3,5.27V17Z\";\nexport var mdiTelevisionPause = \"M3 3C1.89 3 1 3.89 1 5V17C1 18.1 1.9 19 3 19H8V21H16V19H21C22.1 19 23 18.1 23 17V5C23 3.89 22.1 3 21 3M3 5H21V17H3M9 8V14H11V8M13 8V14H15V8\";\nexport var mdiTelevisionPlay = \"M21,3H3C1.89,3 1,3.89 1,5V17A2,2 0 0,0 3,19H8V21H16V19H21A2,2 0 0,0 23,17V5C23,3.89 22.1,3 21,3M21,17H3V5H21M16,11L9,15V7\";\nexport var mdiTelevisionShimmer = \"M21 17H3V5H21M21 3H3C1.9 3 1 3.9 1 5V17C1 18.11 1.9 19 3 19H8V21H16V19H21C22.11 19 23 18.11 23 17V5C23 3.9 22.11 3 21 3M15 6.5L14.38 7.87L13 8.5L14.38 9.13L15 10.5L15.63 9.13L17 8.5L15.63 7.87L15 6.5M10.5 8.5L9.41 10.91L7 12L9.41 13.09L10.5 15.5L11.6 13.09L14 12L11.6 10.91L10.5 8.5\";\nexport var mdiTelevisionSpeaker = \"M3 3C1.9 3 1 3.9 1 5V17C1 18.1 1.9 19 3 19H8V21H12V17H3V5H21V7H23V5C23 3.9 22.1 3 21 3H3M21 9H16C14.9 9 14 9.9 14 11V20C14 21.1 14.9 22 16 22H21C22.1 22 23 21.1 23 20V11C23 9.9 22.1 9 21 9M18.5 10.5C19.3 10.5 20 11.2 20 12S19.3 13.5 18.5 13.5 17 12.8 17 12 17.7 10.5 18.5 10.5M18.5 20.5C16.8 20.5 15.5 19.2 15.5 17.5C15.5 15.9 16.8 14.5 18.4 14.5H18.5C20.2 14.5 21.5 15.8 21.5 17.5S20.2 20.5 18.5 20.5M18.5 16C17.7 16 17 16.7 17 17.5S17.7 19 18.5 19 20 18.3 20 17.5 19.3 16 18.5 16Z\";\nexport var mdiTelevisionSpeakerOff = \"M21 9H16C15 9 14.1 9.8 14 10.8L17.8 14.6C18 14.5 18.2 14.5 18.5 14.5H18.6C20.3 14.5 21.6 15.8 21.6 17.5C21.6 17.7 21.6 18 21.5 18.2L23.1 19.8V11C23 9.9 22.1 9 21 9M18.5 13.5C17.7 13.5 17 12.8 17 12S17.7 10.5 18.5 10.5 20 11.2 20 12 19.3 13.5 18.5 13.5M23 5V7H21V5H8.2L6.2 3H21C22.1 3 23 3.9 23 5M2.4 1.7L1.1 3L1.6 3.5C1.3 3.9 1 4.4 1 5V17C1 18.1 1.9 19 3 19H8V21H12V17H3V5H3.1L14 15.9V20C14 21.1 14.9 22 16 22H20.1L20.8 22.7L22.2 21.5L2.4 1.7M18.5 20.5C16.8 20.5 15.5 19.2 15.5 17.5V17.4L18.6 20.5H18.5Z\";\nexport var mdiTelevisionStop = \"M3 3H21C22.1 3 23 3.89 23 5V17C23 18.1 22.1 19 21 19H16V21H8V19H3C1.9 19 1 18.1 1 17V5C1 3.89 1.89 3 3 3M3 5V17H21V5H3M9 8H15V14H9V8Z\";\nexport var mdiTemperatureCelsius = \"M16.5,5C18.05,5 19.5,5.47 20.69,6.28L19.53,9.17C18.73,8.44 17.67,8 16.5,8C14,8 12,10 12,12.5C12,15 14,17 16.5,17C17.53,17 18.47,16.66 19.23,16.08L20.37,18.93C19.24,19.61 17.92,20 16.5,20A7.5,7.5 0 0,1 9,12.5A7.5,7.5 0 0,1 16.5,5M6,3A3,3 0 0,1 9,6A3,3 0 0,1 6,9A3,3 0 0,1 3,6A3,3 0 0,1 6,3M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5Z\";\nexport var mdiTemperatureFahrenheit = \"M11,20V5H20V8H14V11H19V14H14V20H11M6,3A3,3 0 0,1 9,6A3,3 0 0,1 6,9A3,3 0 0,1 3,6A3,3 0 0,1 6,3M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5Z\";\nexport var mdiTemperatureKelvin = \"M7,5H10V11L15,5H19L13.88,10.78L19,20H15.38L11.76,13.17L10,15.15V20H7V5Z\";\nexport var mdiTempleBuddhist = \"M21 9C21 10.1 20.1 11 19 11H5C3.9 11 3 10.1 3 9H1C1 10.9 2.3 12.4 4 12.8V22H10V19C10 17.9 10.9 17 12 17S14 17.9 14 19V22H20V12.9C20.5 12.8 23 11.9 23 9H21M6 8.9V10H18V8.9C18.5 8.8 21 7.9 21 5H19C19 6.1 18.1 7 17 7H7C5.9 7 5 6.1 5 5H3C3 6.9 4.3 8.4 6 8.9M12 1L8.2 6H15.7L12 1Z\";\nexport var mdiTempleBuddhistOutline = \"M21 9C21 10.1 20.1 11 19 11H18V8.9C19.7 8.5 21 6.9 21 5.1H19C19 6.2 18.1 7.1 17 7.1H16.5L12 1L7.5 7H7C5.9 7 5 6.1 5 5H3C3 6.9 4.3 8.4 6 8.8V11H5C3.9 11 3 10.1 3 9H1C1 10.9 2.3 12.4 4 12.8V22H11V18C11 17.5 11.4 17 12 17S13 17.5 13 18V22H20V12.9C21.7 12.5 23 10.9 23 9.1L21 9M12 4.3L14 7H10L12 4.3M8 9H16V11H8V9M18 20H15V18C15 16.4 13.6 15 12 15S9 16.4 9 18V20H6V13H18V20Z\";\nexport var mdiTempleHindu = \"M6.6 11H17.4L16.5 8H7.5L6.6 11M20 11V13H4V11H2V22H10V17H14V22H22V11H20M15.9 6L15 3V1H13V3H11V1H9V3.1L8.1 6H15.9Z\";\nexport var mdiTempleHinduOutline = \"M20 11V13H18L15 3V1H13V3H11V1H9V3.1L6 13H4V11H2V22H11V17H13V22H22V11H20M15.3 11H8.7L9.3 9H14.7L15.3 11M14.1 7H9.9L10.5 5H13.5L14.1 7M20 20H15V15H9V20H4V15H7.5L8.1 13H15.9L16.5 15H20V20Z\";\nexport var mdiTennis = \"M18,15A4,4 0 0,1 22,19A4,4 0 0,1 18,23A4,4 0 0,1 14,19A4,4 0 0,1 18,15M18,17A2,2 0 0,0 16,19A2,2 0 0,0 18,21A2,2 0 0,0 20,19A2,2 0 0,0 18,17M6.05,14.54C6.05,14.54 7.46,13.12 7.47,10.3C7.11,8.11 7.97,5.54 9.94,3.58C12.87,0.65 17.14,0.17 19.5,2.5C21.83,4.86 21.35,9.13 18.42,12.06C16.46,14.03 13.89,14.89 11.7,14.53C8.88,14.54 7.46,15.95 7.46,15.95L3.22,20.19L1.81,18.78L6.05,14.54M18.07,3.93C16.5,2.37 13.5,2.84 11.35,5C9.21,7.14 8.73,10.15 10.29,11.71C11.86,13.27 14.86,12.79 17,10.65C19.16,8.5 19.63,5.5 18.07,3.93Z\";\nexport var mdiTennisBall = \"M12,2C14.5,2 16.75,2.9 18.5,4.4C16.36,6.23 15,8.96 15,12C15,15.04 16.36,17.77 18.5,19.6C16.75,21.1 14.5,22 12,22C9.5,22 7.25,21.1 5.5,19.6C7.64,17.77 9,15.04 9,12C9,8.96 7.64,6.23 5.5,4.4C7.25,2.9 9.5,2 12,2M22,12C22,14.32 21.21,16.45 19.88,18.15C18.12,16.68 17,14.47 17,12C17,9.53 18.12,7.32 19.88,5.85C21.21,7.55 22,9.68 22,12M2,12C2,9.68 2.79,7.55 4.12,5.85C5.88,7.32 7,9.53 7,12C7,14.47 5.88,16.68 4.12,18.15C2.79,16.45 2,14.32 2,12Z\";\nexport var mdiTennisBallOutline = \"M8.17 2.76C9.39 2.26 10.69 2 12 2C13.31 2 14.61 2.26 15.83 2.76C17.04 3.26 18.14 4 19.07 4.93C20 5.86 20.74 6.96 21.24 8.17C21.74 9.39 22 10.69 22 12C22 14.65 20.95 17.2 19.07 19.07C17.2 20.95 14.65 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76M6.89 18.15C8.32 19.34 10.12 20 12 20C13.88 20 15.68 19.34 17.11 18.15C15.79 16.46 15 14.32 15 12C15 9.68 15.79 7.55 17.11 5.85C15.69 4.66 13.88 4 12 4C10.12 4 8.32 4.66 6.89 5.85C8.21 7.55 9 9.68 9 12C9 14.32 8.21 16.46 6.89 18.15M5.5 16.67C6.44 15.35 7 13.74 7 12C7 10.26 6.44 8.65 5.5 7.34C4.53 8.69 4 10.32 4 12C4 13.68 4.53 15.31 5.5 16.67M18.5 7.34C17.56 8.65 17 10.26 17 12C17 13.74 17.56 15.35 18.5 16.67C19.47 15.31 20 13.69 20 12C20 10.32 19.47 8.69 18.5 7.34Z\";\nexport var mdiTent = \"M4,6C4,7.19 4.39,8.27 5,9A3,3 0 0,1 2,6A3,3 0 0,1 5,3C4.39,3.73 4,4.81 4,6M2,21V19H4.76L12,4.78L19.24,19H22V21H2M12,9.19L7,19H17L12,9.19Z\";\nexport var mdiTerraform = \"M21 5.4V11.8L15.4 15V8.7L21 5.4M14.8 8.7V15L9.2 11.8V5.4L14.8 8.7M14.8 15.7V22.1L9.2 18.9V12.5L14.8 15.7M8.6 5.1V11.5L3 8.3V1.9L8.6 5.1Z\";\nexport var mdiTerrain = \"M14,6L10.25,11L13.1,14.8L11.5,16C9.81,13.75 7,10 7,10L1,18H23L14,6Z\";\nexport var mdiTestTube = \"M7,2V4H8V18A4,4 0 0,0 12,22A4,4 0 0,0 16,18V4H17V2H7M11,16C10.4,16 10,15.6 10,15C10,14.4 10.4,14 11,14C11.6,14 12,14.4 12,15C12,15.6 11.6,16 11,16M13,12C12.4,12 12,11.6 12,11C12,10.4 12.4,10 13,10C13.6,10 14,10.4 14,11C14,11.6 13.6,12 13,12M14,7H10V4H14V7Z\";\nexport var mdiTestTubeEmpty = \"M7,2H17V4H16V18A4,4 0 0,1 12,22A4,4 0 0,1 8,18V4H7V2M14,4H10V18A2,2 0 0,0 12,20A2,2 0 0,0 14,18V4Z\";\nexport var mdiTestTubeOff = \"M2,5.27L3.28,4L20,20.72L18.73,22L15.84,19.11C15.36,20.77 13.82,22 12,22A4,4 0 0,1 8,18V11.27L2,5.27M7,2H17V4H16V14.18L13.63,11.81C13.86,11.63 14,11.35 14,11C14,10.4 13.6,10 13,10C12.65,10 12.37,10.14 12.19,10.37L8,6.18V4H7V2M11,16C11.5,16 11.88,15.71 12,15.24L10.76,14C10.29,14.12 10,14.5 10,15C10,15.6 10.4,16 11,16M14,7V4H10V7H14Z\";\nexport var mdiText = \"M21,6V8H3V6H21M3,18H12V16H3V18M3,13H21V11H3V13Z\";\nexport var mdiTextAccount = \"M21 5V7H3V5H21M3 17H12V15H3V17M3 12H21V10H3V12M18 14C19.11 14 20 14.9 20 16S19.11 18 18 18 16 17.11 16 16 16.9 14 18 14M14 22V21C14 19.9 15.79 19 18 19S22 19.9 22 21V22H14Z\";\nexport var mdiTextBox = \"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiTextBoxCheck = \"M17,21L14.25,18L15.41,16.84L17,18.43L20.59,14.84L21.75,16.25M12.8,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19A2,2 0 0,1 21,5V12.8C20.12,12.29 19.09,12 18,12L17,12.08V11H7V13H14.69C13.07,14.07 12,15.91 12,18C12,19.09 12.29,20.12 12.8,21M12,15H7V17H12M17,7H7V9H17\";\nexport var mdiTextBoxCheckOutline = \"M17,21L14.25,18L15.41,16.84L17,18.43L20.59,14.84L21.75,16.25M12.8,21H5C3.89,21 3,20.11 3,19V5C3,3.89 3.89,3 5,3H19C20.11,3 21,3.89 21,5V12.8C20.39,12.45 19.72,12.2 19,12.08V5H5V19H12.08C12.2,19.72 12.45,20.39 12.8,21M12,17H7V15H12M14.68,13H7V11H17V12.08C16.15,12.22 15.37,12.54 14.68,13M17,9H7V7H17\";\nexport var mdiTextBoxEdit = \"M10 19.11L12.11 17H7V15H14V15.12L16.12 13H7V11H17V12.12L18.24 10.89C18.72 10.41 19.35 10.14 20.04 10.14C20.37 10.14 20.7 10.21 21 10.33V5C21 3.89 20.1 3 19 3H5C3.89 3 3 3.89 3 5V19C3 20.11 3.9 21 5 21H10V19.11M7 7H17V9H7V7M21.7 14.35L20.7 15.35L18.65 13.3L19.65 12.3C19.86 12.09 20.21 12.09 20.42 12.3L21.7 13.58C21.91 13.79 21.91 14.14 21.7 14.35M12 19.94L18.06 13.88L20.11 15.93L14.06 22H12V19.94Z\";\nexport var mdiTextBoxEditOutline = \"M10 21H5C3.89 21 3 20.11 3 19V5C3 3.89 3.89 3 5 3H19C20.11 3 21 3.89 21 5V10.33C20.7 10.21 20.37 10.14 20.04 10.14C19.67 10.14 19.32 10.22 19 10.37V5H5V19H10.11L10 19.11V21M7 9H17V7H7V9M7 17H12.11L14 15.12V15H7V17M7 13H16.12L17 12.12V11H7V13M21.7 13.58L20.42 12.3C20.21 12.09 19.86 12.09 19.65 12.3L18.65 13.3L20.7 15.35L21.7 14.35C21.91 14.14 21.91 13.79 21.7 13.58M12 22H14.06L20.11 15.93L18.06 13.88L12 19.94V22Z\";\nexport var mdiTextBoxMinus = \"M22,17V19H14V17H22M12,17V15H7V17H12M17,11H7V13H14.69C13.07,14.07 12,15.91 12,18C12,19.09 12.29,20.12 12.8,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19A2,2 0 0,1 21,5V12.8C20.12,12.29 19.09,12 18,12L17,12.08V11M17,9V7H7V9H17Z\";\nexport var mdiTextBoxMinusOutline = \"M22,17V19H14V17H22M5,3H19C20.11,3 21,3.89 21,5V12.8C20.39,12.45 19.72,12.2 19,12.08V5H5V19H12.08C12.2,19.72 12.45,20.39 12.8,21H5C3.89,21 3,20.11 3,19V5C3,3.89 3.89,3 5,3M7,7H17V9H7V7M7,11H17V12.08C16.15,12.22 15.37,12.54 14.68,13H7V11M7,15H12V17H7V15Z\";\nexport var mdiTextBoxMultiple = \"M16,15H9V13H16M19,11H9V9H19M19,7H9V5H19M21,1H7C5.89,1 5,1.89 5,3V17C5,18.11 5.9,19 7,19H21C22.11,19 23,18.11 23,17V3C23,1.89 22.1,1 21,1M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3Z\";\nexport var mdiTextBoxMultipleOutline = \"M16,15H9V13H16V15M19,11H9V9H19V11M19,7H9V5H19V7M3,5V21H19V23H3A2,2 0 0,1 1,21V5H3M21,1A2,2 0 0,1 23,3V17C23,18.11 22.11,19 21,19H7A2,2 0 0,1 5,17V3C5,1.89 5.89,1 7,1H21M7,3V17H21V3H7Z\";\nexport var mdiTextBoxOutline = \"M5,3C3.89,3 3,3.89 3,5V19C3,20.11 3.89,21 5,21H19C20.11,21 21,20.11 21,19V5C21,3.89 20.11,3 19,3H5M5,5H19V19H5V5M7,7V9H17V7H7M7,11V13H17V11H7M7,15V17H14V15H7Z\";\nexport var mdiTextBoxPlus = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M12,17V15H7V17H12M17,11H7V13H14.69C13.07,14.07 12,15.91 12,18C12,19.09 12.29,20.12 12.8,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19A2,2 0 0,1 21,5V12.8C20.12,12.29 19.09,12 18,12L17,12.08V11M17,9V7H7V9H17Z\";\nexport var mdiTextBoxPlusOutline = \"M17,14H19V17H22V19H19V22H17V19H14V17H17V14M5,3H19C20.11,3 21,3.89 21,5V12.8C20.39,12.45 19.72,12.2 19,12.08V5H5V19H12.08C12.2,19.72 12.45,20.39 12.8,21H5C3.89,21 3,20.11 3,19V5C3,3.89 3.89,3 5,3M7,7H17V9H7V7M7,11H17V12.08C16.15,12.22 15.37,12.54 14.68,13H7V11M7,15H12V17H7V15Z\";\nexport var mdiTextBoxRemove = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M12,17V15H7V17H12M17,11H7V13H14.69C13.07,14.07 12,15.91 12,18C12,19.09 12.29,20.12 12.8,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19A2,2 0 0,1 21,5V12.8C20.12,12.29 19.09,12 18,12L17,12.08V11M17,9V7H7V9H17Z\";\nexport var mdiTextBoxRemoveOutline = \"M14.46,15.88L15.88,14.46L18,16.59L20.12,14.46L21.54,15.88L19.41,18L21.54,20.12L20.12,21.54L18,19.41L15.88,21.54L14.46,20.12L16.59,18L14.46,15.88M5,3H19C20.11,3 21,3.89 21,5V12.8C20.39,12.45 19.72,12.2 19,12.08V5H5V19H12.08C12.2,19.72 12.45,20.39 12.8,21H5C3.89,21 3,20.11 3,19V5C3,3.89 3.89,3 5,3M7,7H17V9H7V7M7,11H17V12.08C16.15,12.22 15.37,12.54 14.68,13H7V11M7,15H12V17H7V15Z\";\nexport var mdiTextBoxSearch = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M7,15V17H9C9.14,18.55 9.8,19.94 10.81,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19A2,2 0 0,1 21,5V13.03C19.85,11.21 17.82,10 15.5,10C14.23,10 13.04,10.37 12.04,11H7V13H10C9.64,13.6 9.34,14.28 9.17,15H7M17,9V7H7V9H17Z\";\nexport var mdiTextBoxSearchOutline = \"M15.5,12C18,12 20,14 20,16.5C20,17.38 19.75,18.21 19.31,18.9L22.39,22L21,23.39L17.88,20.32C17.19,20.75 16.37,21 15.5,21C13,21 11,19 11,16.5C11,14 13,12 15.5,12M15.5,14A2.5,2.5 0 0,0 13,16.5A2.5,2.5 0 0,0 15.5,19A2.5,2.5 0 0,0 18,16.5A2.5,2.5 0 0,0 15.5,14M5,3H19C20.11,3 21,3.89 21,5V13.03C20.5,12.23 19.81,11.54 19,11V5H5V19H9.5C9.81,19.75 10.26,20.42 10.81,21H5C3.89,21 3,20.11 3,19V5C3,3.89 3.89,3 5,3M7,7H17V9H7V7M7,11H12.03C11.23,11.5 10.54,12.19 10,13H7V11M7,15H9.17C9.06,15.5 9,16 9,16.5V17H7V15Z\";\nexport var mdiTextLong = \"M4,5H20V7H4V5M4,9H20V11H4V9M4,13H20V15H4V13M4,17H14V19H4V17Z\";\nexport var mdiTextRecognition = \"M2 4C2 2.9 2.9 2 4 2H8V4H4V8H2V4M22 20C22 21.11 21.11 22 20 22H16V20H20V16H22V20M4 22C2.9 22 2 21.11 2 20V16H4V20H8V22H4M20 2C21.11 2 22 2.9 22 4V8H20V4H16V2H20M9 7V9H11V17H13V9H15V7H9Z\";\nexport var mdiTextSearch = \"M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z\";\nexport var mdiTextSearchVariant = \"M9 6V8H2V6H9M9 11V13H2V11H9M18 16V18H2V16H18M19.31 11.5C19.75 10.82 20 10 20 9.11C20 6.61 18 4.61 15.5 4.61S11 6.61 11 9.11 13 13.61 15.5 13.61C16.37 13.61 17.19 13.36 17.88 12.93L21 16L22.39 14.61L19.31 11.5M15.5 11.61C14.12 11.61 13 10.5 13 9.11S14.12 6.61 15.5 6.61 18 7.73 18 9.11 16.88 11.61 15.5 11.61Z\";\nexport var mdiTextShadow = \"M3,3H16V6H11V18H8V6H3V3M12,7H14V9H12V7M15,7H17V9H15V7M18,7H20V9H18V7M12,10H14V12H12V10M12,13H14V15H12V13M12,16H14V18H12V16M12,19H14V21H12V19Z\";\nexport var mdiTextShort = \"M4,9H20V11H4V9M4,13H14V15H4V13Z\";\nexport var mdiTexture = \"M9.29,21H12.12L21,12.12V9.29M19,21C19.55,21 20.05,20.78 20.41,20.41C20.78,20.05 21,19.55 21,19V17L17,21M5,3A2,2 0 0,0 3,5V7L7,3M11.88,3L3,11.88V14.71L14.71,3M19.5,3.08L3.08,19.5C3.17,19.85 3.35,20.16 3.59,20.41C3.84,20.65 4.15,20.83 4.5,20.92L20.93,4.5C20.74,3.8 20.2,3.26 19.5,3.08Z\";\nexport var mdiTextureBox = \"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z\";\nexport var mdiTheater = \"M4,15H6A2,2 0 0,1 8,17V19H9V17A2,2 0 0,1 11,15H13A2,2 0 0,1 15,17V19H16V17A2,2 0 0,1 18,15H20A2,2 0 0,1 22,17V19H23V22H1V19H2V17A2,2 0 0,1 4,15M11,7L15,10L11,13V7M4,2H20A2,2 0 0,1 22,4V13.54C21.41,13.19 20.73,13 20,13V4H4V13C3.27,13 2.59,13.19 2,13.54V4A2,2 0 0,1 4,2Z\";\nexport var mdiThemeLightDark = \"M7.5,2C5.71,3.15 4.5,5.18 4.5,7.5C4.5,9.82 5.71,11.85 7.53,13C4.46,13 2,10.54 2,7.5A5.5,5.5 0 0,1 7.5,2M19.07,3.5L20.5,4.93L4.93,20.5L3.5,19.07L19.07,3.5M12.89,5.93L11.41,5L9.97,6L10.39,4.3L9,3.24L10.75,3.12L11.33,1.47L12,3.1L13.73,3.13L12.38,4.26L12.89,5.93M9.59,9.54L8.43,8.81L7.31,9.59L7.65,8.27L6.56,7.44L7.92,7.35L8.37,6.06L8.88,7.33L10.24,7.36L9.19,8.23L9.59,9.54M19,13.5A5.5,5.5 0 0,1 13.5,19C12.28,19 11.15,18.6 10.24,17.93L17.93,10.24C18.6,11.15 19,12.28 19,13.5M14.6,20.08L17.37,18.93L17.13,22.28L14.6,20.08M18.93,17.38L20.08,14.61L22.28,17.15L18.93,17.38M20.08,12.42L18.94,9.64L22.28,9.88L20.08,12.42M9.63,18.93L12.4,20.08L9.87,22.27L9.63,18.93Z\";\nexport var mdiThermometer = \"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z\";\nexport var mdiThermometerAlert = \"M17 13V7H19V13H17M17 17V15H19V17H17M13 13V5C13 3.3 11.7 2 10 2S7 3.3 7 5V13C4.8 14.7 4.3 17.8 6 20S10.8 22.7 13 21 15.7 16.2 14 14C13.7 13.6 13.4 13.3 13 13M10 4C10.6 4 11 4.4 11 5V8H9V5C9 4.4 9.4 4 10 4Z\";\nexport var mdiThermometerAuto = \"M12 14C11.7 13.6 11.4 13.3 11 13V5C11 3.3 9.7 2 8 2S5 3.3 5 5V13C2.8 14.7 2.3 17.8 4 20S8.8 22.7 11 21 13.7 16.2 12 14M9 8H7V5C7 4.5 7.5 4 8 4S9 4.5 9 5V8M18 3H16L12.8 12H14.7L15.4 10H18.6L19.3 12H21.2L18 3M15.8 8.7L17 5L18.2 8.7H15.8Z\";\nexport var mdiThermometerBluetooth = \"M11 13V5C11 3.34 9.66 2 8 2S5 3.34 5 5V13C2.79 14.66 2.34 17.79 4 20S8.79 22.66 11 21 13.66 16.21 12 14C11.72 13.62 11.38 13.28 11 13M8 4C8.55 4 9 4.45 9 5V8H7V5C7 4.45 7.45 4 8 4M18 8V11.79L15.71 9.5L15 10.21L17.79 13L15 15.79L15.71 16.5L18 14.21V18H18.5L21.35 15.14L19.21 13L21.35 10.85L18.5 8H18M19 9.91L19.94 10.85L19 11.79V9.91M19 14.21L19.94 15.14L19 16.08V14.21Z\";\nexport var mdiThermometerCheck = \"M10 13V5C10 3.34 8.66 2 7 2S4 3.34 4 5V13C1.79 14.66 1.34 17.79 3 20S7.79 22.66 10 21 12.66 16.21 11 14C10.72 13.62 10.38 13.28 10 13M7 4C7.55 4 8 4.45 8 5V8H6V5C6 4.45 6.45 4 7 4M16.25 15.16L13.5 12.16L14.66 11L16.25 12.59L19.84 9L21 10.41L16.25 15.16\";\nexport var mdiThermometerChevronDown = \"M17.41 12.17L14.24 9L12.83 10.41L17.41 15L22 10.41L20.58 9M10 13V5C10 3.34 8.66 2 7 2S4 3.34 4 5V13C1.79 14.66 1.34 17.79 3 20S7.79 22.66 10 21 12.66 16.21 11 14C10.72 13.62 10.38 13.28 10 13M7 4C7.55 4 8 4.45 8 5V8H6V5C6 4.45 6.45 4 7 4Z\";\nexport var mdiThermometerChevronUp = \"M17.41 11.83L20.58 15L22 13.59L17.41 9L12.82 13.59L14.24 15L17.41 11.83M10 13V5C10 3.34 8.66 2 7 2S4 3.34 4 5V13C1.79 14.66 1.34 17.79 3 20S7.79 22.66 10 21 12.66 16.21 11 14C10.72 13.62 10.38 13.28 10 13M7 4C7.55 4 8 4.45 8 5V8H6V5C6 4.45 6.45 4 7 4Z\";\nexport var mdiThermometerHigh = \"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5H11A1 1 0 0 1 12 4Z\";\nexport var mdiThermometerLines = \"M17 3H21V5H17V3M17 7H21V9H17V7M17 11H21V13H17.75L17 12.1V11M21 15V17H19C19 16.31 18.9 15.63 18.71 15H21M7 3V5H3V3H7M7 7V9H3V7H7M7 11V12.1L6.25 13H3V11H7M3 15H5.29C5.1 15.63 5 16.31 5 17H3V15M15 13V5C15 3.34 13.66 2 12 2S9 3.34 9 5V13C6.79 14.66 6.34 17.79 8 20S12.79 22.66 15 21 17.66 16.21 16 14C15.72 13.62 15.38 13.28 15 13M12 4C12.55 4 13 4.45 13 5V8H11V5C11 4.45 11.45 4 12 4Z\";\nexport var mdiThermometerLow = \"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V12H11V5A1 1 0 0 1 12 4Z\";\nexport var mdiThermometerMinus = \"M22 11H14V13H22V11M11 13V5C11 3.34 9.66 2 8 2S5 3.34 5 5V13C2.79 14.66 2.34 17.79 4 20S8.79 22.66 11 21 13.66 16.21 12 14C11.72 13.62 11.38 13.28 11 13M8 4C8.55 4 9 4.45 9 5V8H7V5C7 4.45 7.45 4 8 4Z\";\nexport var mdiThermometerOff = \"M11 7.8L9 5.8V5C9 3.34 10.34 2 12 2S15 3.34 15 5V11.8L11.2 8H13V5C13 4.45 12.55 4 12 4S11 4.45 11 5V7.8M22.11 21.46L2.39 1.73L1.11 3L9 10.89V13C6.79 14.66 6.34 17.79 8 20C9.66 22.21 12.79 22.66 15 21C15.84 20.37 16.4 19.5 16.71 18.6L20.84 22.73L22.11 21.46Z\";\nexport var mdiThermometerPlus = \"M19 11V8H17V11H14V13H17V16H19V13H22V11M11 13V5C11 3.34 9.66 2 8 2S5 3.34 5 5V13C2.79 14.66 2.34 17.79 4 20S8.79 22.66 11 21 13.66 16.21 12 14C11.72 13.62 11.38 13.28 11 13M8 4C8.55 4 9 4.45 9 5V8H7V5C7 4.45 7.45 4 8 4Z\";\nexport var mdiThermometerProbe = \"M19.47 3.47L13.47 9.47L10.53 10C10.22 10.03 9.94 10.18 9.72 10.4L2.81 17.31C1.74 18.38 1.74 20.12 2.81 21.2C3.88 22.27 5.62 22.27 6.7 21.2L13.61 14.29C13.83 14.07 14 13.79 14.03 13.5L14.54 10.54L20.54 4.54L22 2L19.47 3.47M11 14.38C10.24 14.38 9.62 13.76 9.62 13S10.24 11.62 11 11.62 12.38 12.24 12.38 13C12.37 13.76 11.76 14.38 11 14.38Z\";\nexport var mdiThermometerProbeOff = \"M2 3.64L9.24 10.88L2.81 17.31C1.74 18.38 1.74 20.12 2.81 21.2C3.88 22.27 5.62 22.27 6.7 21.2L13.13 14.77L20.73 22.37L22 21.1L3.27 2.37L2 3.64M10.23 11.86L12.14 13.77C11.89 14.14 11.47 14.38 11 14.38C10.24 14.38 9.62 13.76 9.62 13C9.62 12.53 9.86 12.11 10.23 11.86M14.46 11L13 9.55L13.47 9.47L19.47 3.47L22 2L20.54 4.54L14.54 10.54L14.46 11Z\";\nexport var mdiThermometerWater = \"M10 13V5C10 3.34 8.66 2 7 2S4 3.34 4 5V13C1.79 14.66 1.34 17.79 3 20S7.79 22.66 10 21 12.66 16.21 11 14C10.72 13.62 10.38 13.28 10 13M7 4C7.55 4 8 4.45 8 5V8H6V5C6 4.45 6.45 4 7 4M18 7C18 7 14 11.34 14 14.07C14 19.31 22 19.31 22 14.07C22 11.34 18 7 18 7Z\";\nexport var mdiThermostat = \"M16.95,16.95L14.83,14.83C15.55,14.1 16,13.1 16,12C16,11.26 15.79,10.57 15.43,10L17.6,7.81C18.5,9 19,10.43 19,12C19,13.93 18.22,15.68 16.95,16.95M12,5C13.57,5 15,5.5 16.19,6.4L14,8.56C13.43,8.21 12.74,8 12,8A4,4 0 0,0 8,12C8,13.1 8.45,14.1 9.17,14.83L7.05,16.95C5.78,15.68 5,13.93 5,12A7,7 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\";\nexport var mdiThermostatAuto = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22C12.4 22 12.7 22 13.1 21.9L15.4 15.3L14.8 14.7C15.5 14 16 13 16 11.9C16 11.2 15.8 10.5 15.4 9.9L17.6 7.7C18.5 9 19 10.4 19 12H20C20.3 12 20.6 12.1 20.8 12.2C20.8 12.2 20.9 12.2 20.9 12.3C21.3 12.5 21.7 12.9 21.9 13.4C22 12.9 22 12.5 22 12C22 6.5 17.5 2 12 2M14 8.6C13.4 8.2 12.7 8 12 8C9.8 8 8 9.8 8 12C8 13.1 8.4 14.1 9.2 14.8L7.1 16.9C5.8 15.7 5 13.9 5 12C5 8.1 8.1 5 12 5C13.6 5 15 5.5 16.2 6.4L14 8.6M20 14H18L14.8 23H16.7L17.4 21H20.6L21.3 23H23.2L20 14M17.8 19.7L19 16L20.2 19.7H17.8Z\";\nexport var mdiThermostatBox = \"M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H5M12,5C13.57,5 15,5.5 16.19,6.4L14,8.56C13.43,8.21 12.74,8 12,8A4,4 0 0,0 8,12C8,13.1 8.45,14.1 9.17,14.83L7.05,16.95C5.78,15.68 5,13.93 5,12A7,7 0 0,1 12,5M17.6,7.81C18.5,9 19,10.43 19,12C19,13.93 18.22,15.68 16.95,16.95L14.83,14.83C15.55,14.1 16,13.1 16,12C16,11.26 15.79,10.57 15.43,10L17.6,7.81Z\";\nexport var mdiThermostatBoxAuto = \"M20 14H18L14.8 23H16.7L17.4 21H20.6L21.3 23H23.2L20 14M17.8 19.7L19 16L20.2 19.7H17.8M15.4 15.4L14.8 14.8C15.5 14.1 16 13.1 16 12C16 11.3 15.8 10.6 15.4 10L17.6 7.8C18.5 9 19 10.4 19 12H21V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H13.4L15.4 15.4M9.2 14.8L7 17C5.7 15.7 5 14 5 12C5 8.1 8.1 5 12 5C13.6 5 15 5.5 16.2 6.4L14 8.6C13.4 8.2 12.7 8 12 8C9.8 8 8 9.8 8 12C8 13.1 8.5 14.1 9.2 14.8Z\";\nexport var mdiThermostatCog = \"M22 12.66C21.07 12.24 20.07 12 19 12C19 10.43 18.5 9 17.6 7.81L15.43 10C15.79 10.57 16 11.26 16 12C16 12.24 16 12.5 15.94 12.7C13.61 13.84 12 16.23 12 19C12 20.07 12.24 21.07 12.66 22C12.44 22 12.22 22 12 22C10.69 22 9.39 21.74 8.17 21.24C6.96 20.74 5.86 20 4.93 19.07C3.05 17.2 2 14.65 2 12C2 9.35 3.05 6.8 4.93 4.93C5.86 4 6.96 3.26 8.17 2.76C9.39 2.26 10.69 2 12 2C17.5 2 22 6.47 22 12C22 12.22 22 12.44 22 12.66M12 5C10.14 5 8.36 5.74 7.05 7.05C5.74 8.36 5 10.14 5 12C5 13.93 5.78 15.68 7.05 16.95L9.17 14.83C8.45 14.1 8 13.1 8 12C8 10.94 8.42 9.92 9.17 9.17C9.92 8.42 10.94 8 12 8C12.74 8 13.43 8.21 14 8.56L16.19 6.4C15 5.5 13.57 5 12 5M23.83 20.64C23.89 20.53 23.87 20.39 23.77 20.32L22.72 19.5C22.74 19.33 22.75 19.16 22.75 19C22.75 18.84 22.74 18.67 22.72 18.5L23.77 17.68C23.87 17.61 23.89 17.5 23.83 17.36L22.83 15.64C22.77 15.53 22.64 15.5 22.53 15.53L21.28 16L21.14 15.91C20.91 15.77 20.7 15.64 20.44 15.54L20.25 14.21C20.23 14.09 20.13 14 20 14H18C17.88 14 17.77 14.09 17.75 14.21L17.57 15.54C17.3 15.64 17.09 15.78 16.86 15.92L16.72 16L15.5 15.53C15.37 15.5 15.23 15.53 15.17 15.64L14.17 17.36C14.11 17.5 14.14 17.61 14.23 17.68L15.29 18.5L15.29 18.53C15.27 18.69 15.25 18.84 15.25 19C15.25 19.16 15.27 19.31 15.29 19.47C15.29 19.5 15.29 19.5 15.29 19.5L14.23 20.32C14.14 20.39 14.11 20.53 14.17 20.64L15.17 22.37C15.23 22.5 15.37 22.5 15.5 22.5L16.72 21.97C17 22.17 17.25 22.34 17.57 22.47L17.75 23.79C17.77 23.91 17.88 24 18 24H20C20.13 24 20.23 23.91 20.25 23.79L20.44 22.47C20.75 22.34 21 22.17 21.28 21.97L22.53 22.5C22.64 22.5 22.77 22.5 22.83 22.37L23.83 20.64M19 17.25C19.97 17.25 20.75 18.03 20.75 19C20.75 19.97 19.96 20.75 19 20.75C18.04 20.75 17.25 19.97 17.25 19C17.25 18.03 18.03 17.25 19 17.25Z\";\nexport var mdiThoughtBubble = \"M3.5,19A1.5,1.5 0 0,1 5,20.5A1.5,1.5 0 0,1 3.5,22A1.5,1.5 0 0,1 2,20.5A1.5,1.5 0 0,1 3.5,19M8.5,16A2.5,2.5 0 0,1 11,18.5A2.5,2.5 0 0,1 8.5,21A2.5,2.5 0 0,1 6,18.5A2.5,2.5 0 0,1 8.5,16M14.5,15C13.31,15 12.23,14.5 11.5,13.65C10.77,14.5 9.69,15 8.5,15C6.54,15 4.91,13.59 4.57,11.74C3.07,11.16 2,9.7 2,8A4,4 0 0,1 6,4C6.26,4 6.5,4.03 6.77,4.07C7.5,3.41 8.45,3 9.5,3C10.69,3 11.77,3.5 12.5,4.35C13.23,3.5 14.31,3 15.5,3C17.46,3 19.09,4.41 19.43,6.26C20.93,6.84 22,8.3 22,10A4,4 0 0,1 18,14L17.23,13.93C16.5,14.59 15.55,15 14.5,15Z\";\nexport var mdiThoughtBubbleOutline = \"M3.5,19A1.5,1.5 0 0,1 5,20.5A1.5,1.5 0 0,1 3.5,22A1.5,1.5 0 0,1 2,20.5A1.5,1.5 0 0,1 3.5,19M8.5,16A2.5,2.5 0 0,1 11,18.5A2.5,2.5 0 0,1 8.5,21A2.5,2.5 0 0,1 6,18.5A2.5,2.5 0 0,1 8.5,16M14.5,15C13.31,15 12.23,14.5 11.5,13.65C10.77,14.5 9.69,15 8.5,15C6.54,15 4.91,13.59 4.57,11.74C3.07,11.16 2,9.7 2,8A4,4 0 0,1 6,4L6.77,4.07C7.5,3.41 8.45,3 9.5,3C10.69,3 11.77,3.5 12.5,4.35C13.23,3.5 14.31,3 15.5,3C17.46,3 19.09,4.41 19.43,6.26C20.93,6.84 22,8.3 22,10A4,4 0 0,1 18,14L17.23,13.93C16.5,14.59 15.55,15 14.5,15M6,6A2,2 0 0,0 4,8A2,2 0 0,0 6,10C6.33,10 6.64,9.92 6.92,9.78C6.66,10.12 6.5,10.54 6.5,11A2,2 0 0,0 8.5,13C9.1,13 9.64,12.73 10,12.31V12.31L11.47,10.63L13,12.34V12.34C13.38,12.74 13.91,13 14.5,13C15.5,13 16.33,12.26 16.5,11.3C16.84,11.73 17.39,12 18,12A2,2 0 0,0 20,10A2,2 0 0,0 18,8C17.67,8 17.36,8.08 17.08,8.22C17.34,7.88 17.5,7.46 17.5,7A2,2 0 0,0 15.5,5C14.91,5 14.38,5.26 14,5.66L12.47,7.37L11,5.69V5.69C10.64,5.27 10.1,5 9.5,5C8.5,5 7.67,5.74 7.5,6.7C7.16,6.27 6.61,6 6,6M8.5,17.5A1,1 0 0,0 7.5,18.5A1,1 0 0,0 8.5,19.5A1,1 0 0,0 9.5,18.5A1,1 0 0,0 8.5,17.5Z\";\nexport var mdiThumbDown = \"M19,15H23V3H19M15,3H6C5.17,3 4.46,3.5 4.16,4.22L1.14,11.27C1.05,11.5 1,11.74 1,12V14A2,2 0 0,0 3,16H9.31L8.36,20.57C8.34,20.67 8.33,20.77 8.33,20.88C8.33,21.3 8.5,21.67 8.77,21.94L9.83,23L16.41,16.41C16.78,16.05 17,15.55 17,15V5C17,3.89 16.1,3 15,3Z\";\nexport var mdiThumbDownOutline = \"M19,15V3H23V15H19M15,3A2,2 0 0,1 17,5V15C17,15.55 16.78,16.05 16.41,16.41L9.83,23L8.77,21.94C8.5,21.67 8.33,21.3 8.33,20.88L8.36,20.57L9.31,16H3C1.89,16 1,15.1 1,14V12C1,11.74 1.05,11.5 1.14,11.27L4.16,4.22C4.46,3.5 5.17,3 6,3H15M15,5H5.97L3,12V14H11.78L10.65,19.32L15,14.97V5Z\";\nexport var mdiThumbUp = \"M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19A2,2 0 0,0 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z\";\nexport var mdiThumbUpOutline = \"M5,9V21H1V9H5M9,21A2,2 0 0,1 7,19V9C7,8.45 7.22,7.95 7.59,7.59L14.17,1L15.23,2.06C15.5,2.33 15.67,2.7 15.67,3.11L15.64,3.43L14.69,8H21C22.11,8 23,8.9 23,10V12C23,12.26 22.95,12.5 22.86,12.73L19.84,19.78C19.54,20.5 18.83,21 18,21H9M9,19H18.03L21,12V10H12.21L13.34,4.68L9,9.03V19Z\";\nexport var mdiThumbsUpDown = \"M22.5,10H15.75C15.13,10 14.6,10.38 14.37,10.91L12.11,16.2C12.04,16.37 12,16.56 12,16.75V18A1,1 0 0,0 13,19H18.18L17.5,22.18V22.42C17.5,22.73 17.63,23 17.83,23.22L18.62,24L23.56,19.06C23.83,18.79 24,18.41 24,18V11.5A1.5,1.5 0 0,0 22.5,10M12,6A1,1 0 0,0 11,5H5.82L6.5,1.82V1.59C6.5,1.28 6.37,1 6.17,0.79L5.38,0L0.44,4.94C0.17,5.21 0,5.59 0,6V12.5A1.5,1.5 0 0,0 1.5,14H8.25C8.87,14 9.4,13.62 9.63,13.09L11.89,7.8C11.96,7.63 12,7.44 12,7.25V6Z\";\nexport var mdiThumbsUpDownOutline = \"M12 6C12 5.45 11.55 5 11 5H5.82L6.5 1.82L6.5 1.59C6.5 1.28 6.37 1 6.17 .79L5.38 0L.44 4.94C.17 5.21 0 5.59 0 6V12.5C0 13.33 .67 14 1.5 14H8.25C8.87 14 9.4 13.62 9.63 13.09L11.89 7.8C11.96 7.63 12 7.44 12 7.25V6M10 7.13L7.92 12H2V6.21L3.93 4.28L3.36 7H10V7.13M22.5 10H15.75C15.13 10 14.6 10.38 14.37 10.91L12.11 16.2C12.04 16.37 12 16.56 12 16.75V18C12 18.55 12.45 19 13 19H18.18L17.5 22.18L17.5 22.42C17.5 22.73 17.63 23 17.83 23.22L18.62 24L23.56 19.06C23.83 18.79 24 18.41 24 18V11.5C24 10.67 23.33 10 22.5 10M22 17.79L20.07 19.72L20.64 17H14V16.87L16.08 12H22V17.79Z\";\nexport var mdiTicket = \"M15.58,16.8L12,14.5L8.42,16.8L9.5,12.68L6.21,10L10.46,9.74L12,5.8L13.54,9.74L17.79,10L14.5,12.68M20,12C20,10.89 20.9,10 22,10V6C22,4.89 21.1,4 20,4H4A2,2 0 0,0 2,6V10C3.11,10 4,10.9 4,12A2,2 0 0,1 2,14V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V14A2,2 0 0,1 20,12Z\";\nexport var mdiTicketAccount = \"M20,12A2,2 0 0,0 22,14V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V14C3.11,14 4,13.1 4,12A2,2 0 0,0 2,10V6C2,4.89 2.9,4 4,4H20A2,2 0 0,1 22,6V10A2,2 0 0,0 20,12M16.5,16.25C16.5,14.75 13.5,14 12,14C10.5,14 7.5,14.75 7.5,16.25V17H16.5V16.25M12,12.25A2.25,2.25 0 0,0 14.25,10A2.25,2.25 0 0,0 12,7.75A2.25,2.25 0 0,0 9.75,10A2.25,2.25 0 0,0 12,12.25Z\";\nexport var mdiTicketConfirmation = \"M13,8.5H11V6.5H13V8.5M13,13H11V11H13V13M13,17.5H11V15.5H13V17.5M22,10V6C22,4.89 21.1,4 20,4H4A2,2 0 0,0 2,6V10C3.11,10 4,10.9 4,12A2,2 0 0,1 2,14V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V14A2,2 0 0,1 20,12A2,2 0 0,1 22,10Z\";\nexport var mdiTicketConfirmationOutline = \"M22 10V6C22 4.89 21.1 4 20 4H4C2.9 4 2 4.89 2 6V10C3.11 10 4 10.9 4 12S3.11 14 2 14V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V14C20.9 14 20 13.1 20 12S20.9 10 22 10M20 8.54C18.81 9.23 18 10.53 18 12S18.81 14.77 20 15.46V18H4V15.46C5.19 14.77 6 13.47 6 12C6 10.5 5.2 9.23 4 8.54L4 6H20V8.54M11 15H13V17H11M11 11H13V13H11M11 7H13V9H11Z\";\nexport var mdiTicketOutline = \"M4,4A2,2 0 0,0 2,6V10A2,2 0 0,1 4,12A2,2 0 0,1 2,14V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V14A2,2 0 0,1 20,12A2,2 0 0,1 22,10V6A2,2 0 0,0 20,4H4M4,6H20V8.54C18.76,9.25 18,10.57 18,12C18,13.43 18.76,14.75 20,15.46V18H4V15.46C5.24,14.75 6,13.43 6,12C6,10.57 5.24,9.25 4,8.54V6Z\";\nexport var mdiTicketPercent = \"M4,4A2,2 0 0,0 2,6V10C3.11,10 4,10.9 4,12A2,2 0 0,1 2,14V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V14A2,2 0 0,1 20,12C20,10.89 20.9,10 22,10V6C22,4.89 21.1,4 20,4H4M15.5,7L17,8.5L8.5,17L7,15.5L15.5,7M8.81,7.04C9.79,7.04 10.58,7.83 10.58,8.81A1.77,1.77 0 0,1 8.81,10.58C7.83,10.58 7.04,9.79 7.04,8.81A1.77,1.77 0 0,1 8.81,7.04M15.19,13.42C16.17,13.42 16.96,14.21 16.96,15.19A1.77,1.77 0 0,1 15.19,16.96C14.21,16.96 13.42,16.17 13.42,15.19A1.77,1.77 0 0,1 15.19,13.42Z\";\nexport var mdiTicketPercentOutline = \"M14.8 8L16 9.2L9.2 16L8 14.8L14.8 8M4 4H20C21.11 4 22 4.89 22 6V10C20.9 10 20 10.9 20 12C20 13.11 20.9 14 22 14V18C22 19.11 21.11 20 20 20H4C2.9 20 2 19.11 2 18V14C3.11 14 4 13.11 4 12C4 10.9 3.11 10 2 10V6C2 4.89 2.9 4 4 4M4 6V8.54C5.24 9.26 6 10.57 6 12C6 13.43 5.24 14.75 4 15.46V18H20V15.46C18.76 14.75 18 13.43 18 12C18 10.57 18.76 9.26 20 8.54V6H4M9.5 8C10.33 8 11 8.67 11 9.5C11 10.33 10.33 11 9.5 11C8.67 11 8 10.33 8 9.5C8 8.67 8.67 8 9.5 8M14.5 13C15.33 13 16 13.67 16 14.5C16 15.33 15.33 16 14.5 16C13.67 16 13 15.33 13 14.5C13 13.67 13.67 13 14.5 13Z\";\nexport var mdiTie = \"M6,2L10,6L7,17L12,22L17,17L14,6L18,2Z\";\nexport var mdiTilde = \"M2,15C2,15 2,9 8,9C12,9 12.5,12.5 15.5,12.5C19.5,12.5 19.5,9 19.5,9H22C22,9 22,15 16,15C12,15 10.5,11.5 8.5,11.5C4.5,11.5 4.5,15 4.5,15H2\";\nexport var mdiTildeOff = \"M20.84 22.73L10.78 12.67C10 12.03 9.27 11.5 8.5 11.5C4.5 11.5 4.5 15 4.5 15H2C2 15 2 9.59 7.16 9.05L1.11 3L2.39 1.73L10.03 9.37L10.03 9.37L15.64 15L15.63 15L22.11 21.46L20.84 22.73M22 9H19.5C19.5 9 19.5 12.38 15.69 12.5L17.95 14.75C22 13.62 22 9 22 9Z\";\nexport var mdiTimelapse = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.24,7.76C15.07,6.58 13.53,6 12,6V12L7.76,16.24C10.1,18.58 13.9,18.58 16.24,16.24C18.59,13.9 18.59,10.1 16.24,7.76Z\";\nexport var mdiTimeline = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6Z\";\nexport var mdiTimelineAlert = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M15 7V13H17V7H15M15 15V17H17V15H15Z\";\nexport var mdiTimelineAlertOutline = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M10 6V18H22V6H10M15 7H17V13H15V7M15 15H17V17H15V15Z\";\nexport var mdiTimelineCheck = \"M4 8H2V2H4V8M2 22H4V16H2V22M3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12C5 10.9 4.11 10 3 10M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M19.75 10.33L18.59 8.92L15 12.5L13.41 10.92L12.25 12.08L15 15.08L19.75 10.33Z\";\nexport var mdiTimelineCheckOutline = \"M22 4H10C8.9 4 8 4.89 8 6V10L6 12L8 14V18C8 19.11 8.9 20 10 20H22C23.11 20 24 19.11 24 18V6C24 4.89 23.11 4 22 4M22 18H10V6H22V18M4 8H2V2H4V8M2 16H4V22H2V16M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M15 15.08L12.25 12.08L13.41 10.92L15 12.5L18.59 8.92L19.75 10.33L15 15.08Z\";\nexport var mdiTimelineClock = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M16 4C20.42 4 24 7.58 24 12C24 16.42 20.42 20 16 20C12.4 20 9.36 17.62 8.35 14.35L6 12L8.35 9.65C9.36 6.38 12.4 4 16 4M15 13L19.53 15.79L20.33 14.5L16.5 12.2V7H15V13Z\";\nexport var mdiTimelineClockOutline = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M16 4C20.42 4 24 7.58 24 12C24 16.42 20.42 20 16 20C12.4 20 9.36 17.62 8.35 14.35L6 12L8.35 9.65C9.36 6.38 12.4 4 16 4M16 6C12.69 6 10 8.69 10 12C10 15.31 12.69 18 16 18C19.31 18 22 15.31 22 12C22 8.69 19.31 6 16 6M15 13V8H16.5V12.2L19.5 14L18.68 15.26L15 13Z\";\nexport var mdiTimelineMinus = \"M4 8H2V2H4V8M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M20 11H12V13H20V11M2 22H4V16H2V22M3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12C5 10.9 4.11 10 3 10Z\";\nexport var mdiTimelineMinusOutline = \"M2 16H4V22H2V16M4 2H2V8H4V2M20 11H12V13H20V11M3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12C5 10.9 4.11 10 3 10M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M22 6H10V18H22V6Z\";\nexport var mdiTimelineOutline = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M10 6V18H22V6H10Z\";\nexport var mdiTimelinePlus = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M20 11H17V8H15V11H12V13H15V16H17V13H20V11Z\";\nexport var mdiTimelinePlusOutline = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M20 11V13H17V16H15V13H12V11H15V8H17V11H20M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M10 6V18H22V6H10Z\";\nexport var mdiTimelineQuestion = \"M4 2V8H2V2H4M2 22V16H4V22H2M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M16.5 15.5H15V17H16.5V15.5M14.5 10.5V10C14.5 9.17 15.17 8.5 16 8.5C16.83 8.5 17.5 9.18 17.5 10C17.5 10.47 17.27 10.9 16.88 11.16L16.59 11.35C15.6 12 15 13.11 15 14.3V14.5H16.5V14.3C16.5 13.62 16.84 13 17.41 12.6L17.71 12.41C18.5 11.88 19 10.97 19 10C19 8.34 17.66 7 16 7C14.34 7 13 8.34 13 10V10.5H14.5Z\";\nexport var mdiTimelineQuestionOutline = \"M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M4 2V8H2V2H4M2 22V16H4V22H2M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M22 6H10V10.83L8.83 12L10 13.17V18H22V6M16.5 15.5V17H15V15.5H16.5M14.5 10.5H13V10C13 8.34 14.34 7 16 7C17.66 7 19 8.34 19 10C19 10.97 18.5 11.88 17.71 12.41L17.41 12.6C16.84 13 16.5 13.62 16.5 14.3V14.5H15V14.3C15 13.11 15.6 12 16.59 11.35L16.88 11.16C17.27 10.9 17.5 10.47 17.5 10C17.5 9.18 16.83 8.5 16 8.5C15.17 8.5 14.5 9.17 14.5 10V10.5Z\";\nexport var mdiTimelineRemove = \"M4 8H2V2H4V8M2 22H4V16H2V22M3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12C5 10.9 4.11 10 3 10M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M17.41 12L19.53 9.88L18.12 8.47L16 10.59L13.88 8.47L12.47 9.88L14.59 12L12.47 14.12L13.88 15.53L16 13.41L18.12 15.53L19.53 14.12L17.41 12Z\";\nexport var mdiTimelineRemoveOutline = \"M4 8H2V2H4V8M2 22H4V16H2V22M3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12C5 10.9 4.11 10 3 10M13.88 15.54L16 13.41L18.12 15.53L19.53 14.12L17.41 12L19.53 9.88L18.12 8.47L16 10.59L13.88 8.47L12.47 9.88L14.59 12L12.47 14.12L13.88 15.54M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M22 6H10V18H22V6Z\";\nexport var mdiTimelineText = \"M4 2V8H2V2H4M2 22H4V16H2V22M5 12C5 10.9 4.11 10 3 10C1.9 10 1 10.9 1 12C1 13.11 1.9 14 3 14C4.11 14 5 13.11 5 12M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M19 13H11V15H19V13M21 9H11V11H21V9Z\";\nexport var mdiTimelineTextOutline = \"M5 12C5 13.11 4.11 14 3 14C1.9 14 1 13.11 1 12C1 10.9 1.9 10 3 10C4.11 10 5 10.9 5 12M4 2V8H2V2H4M2 22V16H4V22H2M24 6V18C24 19.11 23.11 20 22 20H10C8.9 20 8 19.11 8 18V14L6 12L8 10V6C8 4.89 8.9 4 10 4H22C23.11 4 24 4.89 24 6M22 6H10V10.83L8.83 12L10 13.17V18H22V6M12 9H20V11H12V9M12 13H18V15H12V13Z\";\nexport var mdiTimer = \"M19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C17 22 21 17.97 21 13C21 10.88 20.26 8.93 19.03 7.39M13 14H11V7H13V14M15 1H9V3H15V1Z\";\nexport var mdiTimer10 = \"M12.9,13.22C12.9,13.82 12.86,14.33 12.78,14.75C12.7,15.17 12.58,15.5 12.42,15.77C12.26,16.03 12.06,16.22 11.83,16.34C11.6,16.46 11.32,16.5 11,16.5C10.71,16.5 10.43,16.46 10.19,16.34C9.95,16.22 9.75,16.03 9.59,15.77C9.43,15.5 9.3,15.17 9.21,14.75C9.12,14.33 9.08,13.82 9.08,13.22V10.72C9.08,10.12 9.12,9.61 9.21,9.2C9.3,8.79 9.42,8.46 9.59,8.2C9.75,7.95 9.95,7.77 10.19,7.65C10.43,7.54 10.7,7.5 11,7.5C11.31,7.5 11.58,7.54 11.81,7.65C12.05,7.76 12.25,7.94 12.41,8.2C12.57,8.45 12.7,8.78 12.78,9.19C12.86,9.6 12.91,10.11 12.91,10.71V13.22M13.82,7.05C13.5,6.65 13.07,6.35 12.59,6.17C12.12,6 11.58,5.9 11,5.9C10.42,5.9 9.89,6 9.41,6.17C8.93,6.35 8.5,6.64 8.18,7.05C7.84,7.46 7.58,8 7.39,8.64C7.21,9.29 7.11,10.09 7.11,11.03V12.95C7.11,13.89 7.2,14.69 7.39,15.34C7.58,16 7.84,16.53 8.19,16.94C8.53,17.35 8.94,17.65 9.42,17.83C9.9,18 10.43,18.11 11,18.11C11.6,18.11 12.13,18 12.6,17.83C13.08,17.65 13.5,17.35 13.82,16.94C14.16,16.53 14.42,16 14.6,15.34C14.78,14.69 14.88,13.89 14.88,12.95V11.03C14.88,10.09 14.79,9.29 14.6,8.64C14.42,8 14.16,7.45 13.82,7.05M23.78,14.37C23.64,14.09 23.43,13.84 23.15,13.63C22.87,13.42 22.54,13.24 22.14,13.1C21.74,12.96 21.29,12.83 20.79,12.72C20.44,12.65 20.15,12.57 19.92,12.5C19.69,12.41 19.5,12.33 19.37,12.24C19.23,12.15 19.14,12.05 19.09,11.94C19.04,11.83 19,11.7 19,11.55C19,11.41 19.04,11.27 19.1,11.14C19.16,11 19.25,10.89 19.37,10.8C19.5,10.7 19.64,10.62 19.82,10.56C20,10.5 20.22,10.47 20.46,10.47C20.71,10.47 20.93,10.5 21.12,10.58C21.31,10.65 21.47,10.75 21.6,10.87C21.73,11 21.82,11.13 21.89,11.29C21.95,11.45 22,11.61 22,11.78H23.94C23.94,11.39 23.86,11.03 23.7,10.69C23.54,10.35 23.31,10.06 23,9.81C22.71,9.56 22.35,9.37 21.92,9.22C21.5,9.07 21,9 20.46,9C19.95,9 19.5,9.07 19.07,9.21C18.66,9.35 18.3,9.54 18,9.78C17.72,10 17.5,10.3 17.34,10.62C17.18,10.94 17.11,11.27 17.11,11.63C17.11,12 17.19,12.32 17.34,12.59C17.5,12.87 17.7,13.11 18,13.32C18.25,13.53 18.58,13.7 18.96,13.85C19.34,14 19.77,14.11 20.23,14.21C20.62,14.29 20.94,14.38 21.18,14.47C21.42,14.56 21.61,14.66 21.75,14.76C21.88,14.86 21.97,15 22,15.1C22.07,15.22 22.09,15.35 22.09,15.5C22.09,15.81 21.96,16.06 21.69,16.26C21.42,16.46 21.03,16.55 20.5,16.55C20.3,16.55 20.09,16.53 19.88,16.47C19.67,16.42 19.5,16.34 19.32,16.23C19.15,16.12 19,15.97 18.91,15.79C18.8,15.61 18.74,15.38 18.73,15.12H16.84C16.84,15.5 16.92,15.83 17.08,16.17C17.24,16.5 17.47,16.82 17.78,17.1C18.09,17.37 18.47,17.59 18.93,17.76C19.39,17.93 19.91,18 20.5,18C21.04,18 21.5,17.95 21.95,17.82C22.38,17.69 22.75,17.5 23.06,17.28C23.37,17.05 23.6,16.77 23.77,16.45C23.94,16.13 24,15.78 24,15.39C24,15 23.93,14.65 23.78,14.37M0,7.72V9.4L3,8.4V18H5V6H4.75L0,7.72Z\";\nexport var mdiTimer3 = \"M20.87,14.37C20.73,14.09 20.5,13.84 20.24,13.63C19.96,13.42 19.63,13.24 19.23,13.1C18.83,12.96 18.38,12.83 17.88,12.72C17.53,12.65 17.24,12.57 17,12.5C16.78,12.41 16.6,12.33 16.46,12.24C16.32,12.15 16.23,12.05 16.18,11.94C16.13,11.83 16.1,11.7 16.1,11.55C16.1,11.4 16.13,11.27 16.19,11.14C16.25,11 16.34,10.89 16.46,10.8C16.58,10.7 16.73,10.62 16.91,10.56C17.09,10.5 17.31,10.47 17.55,10.47C17.8,10.47 18,10.5 18.21,10.58C18.4,10.65 18.56,10.75 18.69,10.87C18.82,11 18.91,11.13 19,11.29C19.04,11.45 19.08,11.61 19.08,11.78H21.03C21.03,11.39 20.95,11.03 20.79,10.69C20.63,10.35 20.4,10.06 20.1,9.81C19.8,9.56 19.44,9.37 19,9.22C18.58,9.07 18.09,9 17.55,9C17.04,9 16.57,9.07 16.16,9.21C15.75,9.35 15.39,9.54 15.1,9.78C14.81,10 14.59,10.3 14.43,10.62C14.27,10.94 14.2,11.27 14.2,11.63C14.2,12 14.28,12.31 14.43,12.59C14.58,12.87 14.8,13.11 15.07,13.32C15.34,13.53 15.67,13.7 16.05,13.85C16.43,14 16.86,14.11 17.32,14.21C17.71,14.29 18.03,14.38 18.27,14.47C18.5,14.56 18.7,14.66 18.84,14.76C18.97,14.86 19.06,15 19.11,15.1C19.16,15.22 19.18,15.35 19.18,15.5C19.18,15.81 19.05,16.06 18.78,16.26C18.5,16.46 18.12,16.55 17.61,16.55C17.39,16.55 17.18,16.53 16.97,16.47C16.76,16.42 16.57,16.34 16.41,16.23C16.24,16.12 16.11,15.97 16,15.79C15.89,15.61 15.83,15.38 15.82,15.12H13.93C13.93,15.5 14,15.83 14.17,16.17C14.33,16.5 14.56,16.82 14.87,17.1C15.18,17.37 15.56,17.59 16,17.76C16.5,17.93 17,18 17.6,18C18.13,18 18.61,17.95 19.04,17.82C19.47,17.69 19.84,17.5 20.15,17.28C20.46,17.05 20.69,16.77 20.86,16.45C21.03,16.13 21.11,15.78 21.11,15.39C21.09,15 21,14.65 20.87,14.37M11.61,12.97C11.45,12.73 11.25,12.5 11,12.32C10.74,12.13 10.43,11.97 10.06,11.84C10.36,11.7 10.63,11.54 10.86,11.34C11.09,11.14 11.28,10.93 11.43,10.7C11.58,10.47 11.7,10.24 11.77,10C11.85,9.75 11.88,9.5 11.88,9.26C11.88,8.71 11.79,8.22 11.6,7.8C11.42,7.38 11.16,7.03 10.82,6.74C10.5,6.46 10.09,6.24 9.62,6.1C9.17,5.97 8.65,5.9 8.09,5.9C7.54,5.9 7.03,6 6.57,6.14C6.1,6.31 5.7,6.54 5.37,6.83C5.04,7.12 4.77,7.46 4.59,7.86C4.39,8.25 4.3,8.69 4.3,9.15H6.28C6.28,8.89 6.33,8.66 6.42,8.46C6.5,8.26 6.64,8.08 6.8,7.94C6.97,7.8 7.16,7.69 7.38,7.61C7.6,7.53 7.84,7.5 8.11,7.5C8.72,7.5 9.17,7.65 9.47,7.96C9.77,8.27 9.91,8.71 9.91,9.28C9.91,9.55 9.87,9.8 9.79,10C9.71,10.24 9.58,10.43 9.41,10.59C9.24,10.75 9.03,10.87 8.78,10.96C8.53,11.05 8.23,11.09 7.89,11.09H6.72V12.66H7.9C8.24,12.66 8.54,12.7 8.81,12.77C9.08,12.85 9.31,12.96 9.5,13.12C9.69,13.28 9.84,13.5 9.94,13.73C10.04,13.97 10.1,14.27 10.1,14.6C10.1,15.22 9.92,15.69 9.57,16C9.22,16.35 8.73,16.5 8.12,16.5C7.83,16.5 7.56,16.47 7.32,16.38C7.08,16.3 6.88,16.18 6.71,16C6.54,15.86 6.41,15.68 6.32,15.46C6.23,15.24 6.18,15 6.18,14.74H4.19C4.19,15.29 4.3,15.77 4.5,16.19C4.72,16.61 5,16.96 5.37,17.24C5.73,17.5 6.14,17.73 6.61,17.87C7.08,18 7.57,18.08 8.09,18.08C8.66,18.08 9.18,18 9.67,17.85C10.16,17.7 10.58,17.47 10.93,17.17C11.29,16.87 11.57,16.5 11.77,16.07C11.97,15.64 12.07,15.14 12.07,14.59C12.07,14.3 12.03,14 11.96,13.73C11.88,13.5 11.77,13.22 11.61,12.97Z\";\nexport var mdiTimerAlert = \"M18.45 5.97C18 5.46 17.55 5 17.04 4.56L15.62 6C14.07 4.74 12.12 4 10 4C5.03 4 1 8.03 1 13S5.03 22 10 22C15 22 19 17.97 19 13C19 10.88 18.26 8.93 17.03 7.39L18.45 5.97M11 14H9V7H11V14M13 3H7V1H13V3M23 7V13H21V7H23M21 15H23V17H21V15Z\";\nexport var mdiTimerAlertOutline = \"M9 8H11V14H9V8M13 1H7V3H13V1M17.03 7.39C18.26 8.93 19 10.88 19 13C19 17.97 15 22 10 22C5.03 22 1 17.97 1 13S5.03 4 10 4C12.12 4 14.07 4.74 15.62 6L17.04 4.56C17.55 5 18 5.46 18.45 5.97L17.03 7.39M17 13C17 9.13 13.87 6 10 6S3 9.13 3 13 6.13 20 10 20 17 16.87 17 13M21 7V13H23V7H21M21 17H23V15H21V17Z\";\nexport var mdiTimerCancel = \"M15 3H9V1H15V3M12 18.5C12 19.77 12.37 20.94 13 21.94C12.67 22 12.34 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.16 8.81 20.87 10.57 21 12.5C20.22 12.18 19.38 12 18.5 12C14.91 12 12 14.91 12 18.5M13 7H11V14H13V7M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiTimerCancelOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C15.54 6 18.45 8.62 18.93 12.03C19.65 12.08 20.34 12.23 21 12.5C20.87 10.57 20.16 8.81 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.34 22 12.67 22 13 21.94C12.63 21.35 12.35 20.69 12.18 20C12.12 20 12.06 20 12 20M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiTimerCheck = \"M15 3H9V1H15V3M13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19M13 7H11V14H13V7M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiTimerCheckOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20M21.34 15.84L17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84Z\";\nexport var mdiTimerCog = \"M22.8 19.4C22.9 19.4 22.9 19.5 22.8 19.6L21.8 21.3C21.7 21.4 21.6 21.4 21.5 21.4L20.3 21C20 21.2 19.8 21.3 19.5 21.5L19.3 22.8C19.3 22.9 19.2 23 19.1 23H17.1C17 23 16.9 22.9 16.8 22.8L16.6 21.5C16.3 21.4 16 21.2 15.8 21L14.6 21.5C14.5 21.5 14.4 21.5 14.3 21.4L13.3 19.7C13.2 19.6 13.3 19.5 13.4 19.4L14.5 18.6V17.6L13.4 16.8C13.3 16.7 13.3 16.6 13.3 16.5L14.3 14.8C14.4 14.7 14.5 14.7 14.6 14.7L15.8 15.2C16.1 15 16.3 14.9 16.6 14.7L16.8 13.4C16.8 13.3 16.9 13.2 17.1 13.2H19.1C19.2 13.2 19.3 13.3 19.3 13.4L19.5 14.7C19.8 14.8 20.1 15 20.4 15.2L21.6 14.7C21.7 14.7 21.9 14.7 21.9 14.8L22.9 16.5C23 16.6 22.9 16.7 22.8 16.8L21.7 17.6V18.6L22.8 19.4M19.5 18C19.5 17.2 18.8 16.5 18 16.5S16.5 17.2 16.5 18 17.2 19.5 18 19.5 19.5 18.8 19.5 18M11 18C11 16.5 11.5 15.1 12.3 14H11V7H13V13.1C14.3 11.8 16 11 18 11C19 11 20 11.2 20.9 11.6C20.6 10 20 8.6 19 7.4L20.5 6C20 5.5 19.5 5 19 4.6L17.6 6C16.1 4.7 14.1 4 12 4C7 4 3 8 3 13S7 22 12 22H12.3C11.5 20.9 11 19.5 11 18M15 1H9V3H15V1Z\";\nexport var mdiTimerCogOutline = \"M22.8 19.4C22.9 19.4 22.9 19.5 22.8 19.6L21.8 21.3C21.7 21.4 21.6 21.4 21.5 21.4L20.3 21C20 21.2 19.8 21.3 19.5 21.5L19.3 22.8C19.3 22.9 19.2 23 19.1 23H17.1C17 23 16.9 22.9 16.8 22.8L16.6 21.5C16.3 21.4 16 21.2 15.8 21L14.6 21.5C14.5 21.5 14.4 21.5 14.3 21.4L13.3 19.7C13.2 19.6 13.3 19.5 13.4 19.4L14.5 18.6V17.6L13.4 16.8C13.3 16.7 13.3 16.6 13.3 16.5L14.3 14.8C14.4 14.7 14.5 14.7 14.6 14.7L15.8 15.2C16.1 15 16.3 14.9 16.6 14.7L16.8 13.4C16.8 13.3 16.9 13.2 17.1 13.2H19.1C19.2 13.2 19.3 13.3 19.3 13.4L19.5 14.7C19.8 14.8 20.1 15 20.4 15.2L21.6 14.7C21.7 14.7 21.9 14.7 21.9 14.8L22.9 16.5C23 16.6 22.9 16.7 22.8 16.8L21.7 17.6V18.6L22.8 19.4M19.5 18C19.5 17.2 18.8 16.5 18 16.5S16.5 17.2 16.5 18 17.2 19.5 18 19.5 19.5 18.8 19.5 18M13 14V8H11V14M15 1H9V3H15V1M11.3 20C7.8 19.6 5 16.6 5 13C5 9.1 8.1 6 12 6C15.2 6 17.9 8.1 18.7 11C19.5 11.1 20.2 11.3 20.9 11.6C20.6 10 20 8.6 19 7.4L20.5 6C20 5.5 19.5 5 19 4.6L17.6 6C16.1 4.7 14.1 4 12 4C7 4 3 8 3 13S7 22 12 22H12.3C11.8 21.4 11.5 20.7 11.3 20Z\";\nexport var mdiTimerEdit = \"M15 3H9V1H15V3M19.39 10.74L11 19.13V21.94C6.5 21.44 3 17.63 3 13C3 8.03 7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C19.67 8.19 20.17 9.11 20.5 10.1C20.1 10.21 19.71 10.42 19.39 10.74M13 7H11V14H13V7M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiTimerEditOutline = \"M13 14H11V8H13V14M15 1H9V3H15V1M5 13C5 9.13 8.13 6 12 6C15.29 6 18.05 8.28 18.79 11.34L19.39 10.74C19.71 10.42 20.1 10.21 20.5 10.1C20.18 9.11 19.67 8.19 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13C3 17.63 6.5 21.44 11 21.94V19.92C7.61 19.43 5 16.53 5 13M13 19.96V22H15.04L21.17 15.88L19.13 13.83L13 19.96M22.85 13.47L21.53 12.15C21.33 11.95 21 11.95 20.81 12.15L19.83 13.13L21.87 15.17L22.85 14.19C23.05 14 23.05 13.67 22.85 13.47Z\";\nexport var mdiTimerLock = \"M15 3H9V1H15V3M14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20.7C13 21.12 13.09 21.53 13.24 21.91C12.83 21.96 12.42 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C19.71 8.24 20.23 9.22 20.57 10.28C20.07 10.11 19.55 10 19 10C16.4 10 14.2 12.06 14.2 14.5M13 7H11V14H13V7M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiTimerLockOpen = \"M15 3H9V1H15V3M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.7C13 21.12 13.09 21.53 13.24 21.91C12.83 21.96 12.42 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C19.46 7.93 19.82 8.5 20.12 9.14C19.76 9.06 19.39 9 19 9C16.4 9 14.2 11.06 14.2 13.5M13 7H11V14H13V7M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiTimerLockOpenOutline = \"M11 8H13V14H11V8M13 19.92C12.67 19.97 12.34 20 12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C14.44 6 16.59 7.26 17.85 9.15C18.22 9.06 18.6 9 19 9C19.39 9 19.76 9.06 20.12 9.14C19.82 8.5 19.46 7.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.42 22 12.83 21.96 13.24 21.91C13.09 21.53 13 21.12 13 20.7V19.92M15 1H9V3H15V1M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiTimerLockOutline = \"M11 8H13V14H11V8M13 19.92C12.67 19.97 12.34 20 12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C14.82 6 17.24 7.67 18.35 10.06C18.56 10.04 18.78 10 19 10C19.55 10 20.07 10.11 20.57 10.28C20.23 9.22 19.71 8.24 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.42 22 12.83 21.96 13.24 21.91C13.09 21.53 13 21.12 13 20.7V19.92M15 1H9V3H15V1M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiTimerMarker = \"M15 3H9V1H15V3M13 15.5C13 17.5 14.28 19.73 15.42 21.33C14.37 21.76 13.21 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C19.74 8.28 20.29 9.32 20.62 10.44C19.97 10.16 19.25 10 18.5 10C15.5 10 13 12.5 13 15.5M13 14V7H11V14H13M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiTimerMarkerOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C14.79 6 17.2 7.64 18.32 10C18.38 10 18.44 10 18.5 10C19.25 10 19.97 10.16 20.62 10.44C20.29 9.32 19.74 8.28 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C13.21 22 14.37 21.76 15.42 21.33C15.05 20.81 14.67 20.22 14.32 19.6C13.59 19.85 12.81 20 12 20M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiTimerMinus = \"M19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.26 21 13 20.03 13 19C13 15.69 15.69 13 19 13M13 14H11V7H13V14M15 3H9V1H15V3M23 18V20H15V18H23Z\";\nexport var mdiTimerMinusOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20M15 18V20H23V18H15Z\";\nexport var mdiTimerMusic = \"M16.5 16.11V11H20.77C20.46 9.66 19.86 8.43 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.42 22 12.83 21.96 13.24 21.91C13.09 21.46 13 21 13 20.5C13 18.36 14.5 16.57 16.5 16.11M13 14H11V7H13V14M15 3H9V1H15V3M22 13V15H20V20.5C20 21.88 18.88 23 17.5 23S15 21.88 15 20.5 16.12 18 17.5 18C17.86 18 18.19 18.07 18.5 18.21V13H22Z\";\nexport var mdiTimerMusicOutline = \"M15 3H9V1H15V3M11 14H13V8H11V14M13.05 19.91C12.71 19.97 12.36 20 12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C15.17 6 17.85 8.11 18.71 11H20.77C20.46 9.66 19.86 8.43 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.42 22 12.83 21.96 13.24 21.91C13.09 21.46 13 21 13 20.5C13 20.3 13.03 20.11 13.05 19.91M18.5 13V18.21C18.19 18.07 17.86 18 17.5 18C16.12 18 15 19.12 15 20.5S16.12 23 17.5 23 20 21.88 20 20.5V15H22V13H18.5Z\";\nexport var mdiTimerOff = \"M3 4L1.75 5.27L4.5 8.03C3.55 9.45 3 11.16 3 13C3 17.97 7.03 22 12 22C13.84 22 15.55 21.45 17 20.5L19.5 23L20.75 21.73L13.04 14L3 4M15 1H9V3H15M21 13C21 14.83 20.45 16.53 19.5 17.94L13 11.45V7H11V9.45L7.05 5.5C8.47 4.55 10.17 4 12 4C14.12 4 16.07 4.74 17.62 5.97L19.04 4.55L20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13Z\";\nexport var mdiTimerOffOutline = \"M12,20A7,7 0 0,1 5,13C5,11.72 5.35,10.5 5.95,9.5L15.5,19.04C14.5,19.65 13.28,20 12,20M3,4L1.75,5.27L4.5,8.03C3.55,9.45 3,11.16 3,13A9,9 0 0,0 12,22C13.84,22 15.55,21.45 17,20.5L19.5,23L20.75,21.73L13.04,14L3,4M11,9.44L13,11.44V8H11M15,1H9V3H15M19.04,4.55L17.62,5.97C16.07,4.74 14.12,4 12,4C10.17,4 8.47,4.55 7.05,5.5L8.5,6.94C9.53,6.35 10.73,6 12,6A7,7 0 0,1 19,13C19,14.27 18.65,15.47 18.06,16.5L19.5,17.94C20.45,16.53 21,14.83 21,13C21,10.88 20.26,8.93 19.03,7.39L20.45,5.97L19.04,4.55Z\";\nexport var mdiTimerOutline = \"M12,20A7,7 0 0,1 5,13A7,7 0 0,1 12,6A7,7 0 0,1 19,13A7,7 0 0,1 12,20M19.03,7.39L20.45,5.97C20,5.46 19.55,5 19.04,4.56L17.62,6C16.07,4.74 14.12,4 12,4A9,9 0 0,0 3,13A9,9 0 0,0 12,22C17,22 21,17.97 21,13C21,10.88 20.26,8.93 19.03,7.39M11,14H13V8H11M15,1H9V3H15V1Z\";\nexport var mdiTimerPause = \"M16.5 16.5H18.38V21.5H16.5V16.5M19.63 16.5V21.5H21.5V16.5H19.63M15 1H9V3H15V1M21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35M13 7H11V14H13V7Z\";\nexport var mdiTimerPauseOutline = \"M21 13.35C20.36 13.13 19.7 13 19 13C19 9.13 15.87 6 12 6S5 9.13 5 13 8.13 20 12 20C12.37 20 12.72 19.96 13.08 19.91C13.18 20.6 13.4 21.25 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35M11 14H13V8H11V14M15 1H9V3H15V1M19.63 16.5V21.5H21.5V16.5H19.63M16.5 21.5H18.38V16.5H16.5V21.5Z\";\nexport var mdiTimerPlay = \"M15 3H9V1H15V3M13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19M13 7H11V14H13V7M17 16V22L22 19L17 16Z\";\nexport var mdiTimerPlayOutline = \"M15 3H9V1H15V3M11 14H13V8H11V14M19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13M17 16V22L22 19L17 16Z\";\nexport var mdiTimerPlus = \"M15 3H9V1H15V3M13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19M13 7H11V14H13V7M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiTimerPlusOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiTimerRefresh = \"M15 3H9V1H15V3M12 18.5C12 19.77 12.37 20.94 13 21.94C12.67 22 12.34 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.16 8.81 20.87 10.57 21 12.5C20.22 12.18 19.38 12 18.5 12C14.91 12 12 14.91 12 18.5M13 7H11V14H13V7M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiTimerRefreshOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C15.54 6 18.45 8.62 18.93 12.03C19.65 12.08 20.34 12.23 21 12.5C20.87 10.57 20.16 8.81 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.34 22 12.67 22 13 21.94C12.63 21.35 12.35 20.69 12.18 20C12.12 20 12.06 20 12 20M22 18.5V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22Z\";\nexport var mdiTimerRemove = \"M15 3H9V1H15V3M13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19M13 7H11V14H13V7M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiTimerRemoveOutline = \"M13.08 19.91C13.18 20.6 13.4 21.25 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C19 9.13 15.87 6 12 6S5 9.13 5 13 8.13 20 12 20C12.37 20 12.72 19.96 13.08 19.91M11 14H13V8H11V14M15 1H9V3H15V1M22.54 16.88L21.12 15.47L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88Z\";\nexport var mdiTimerSand = \"M6,2H18V8H18V8L14,12L18,16V16H18V22H6V16H6V16L10,12L6,8V8H6V2M16,16.5L12,12.5L8,16.5V20H16V16.5M12,11.5L16,7.5V4H8V7.5L12,11.5M10,6H14V6.75L12,8.75L10,6.75V6Z\";\nexport var mdiTimerSandComplete = \"M18 22H6V16L10 12L6 8V2H18V8L14 12L18 16M8 7.5L12 11.5L16 7.5V4H8M12 12.5L8 16.5V20H16V16.5M14 18H10V17.2L12 15.2L14 17.2Z\";\nexport var mdiTimerSandEmpty = \"M6,2V8H6V8L10,12L6,16V16H6V22H18V16H18V16L14,12L18,8V8H18V2H6M16,16.5V20H8V16.5L12,12.5L16,16.5M12,11.5L8,7.5V4H16V7.5L12,11.5Z\";\nexport var mdiTimerSandFull = \"M6,2V8H6V8L10,12L6,16V16H6V22H18V16H18V16L14,12L18,8V8H18V2H6Z\";\nexport var mdiTimerSandPaused = \"M22 6V18H16L12 14L8 18H2V6H8L12 10L16 6M7.5 16L11.5 12L7.5 8H4V16M12.5 12L16.5 16H20V8H16.5M18 12V14H17.2L15.2 12M8.8 12L6.8 14H6V12Z\";\nexport var mdiTimerSettings = \"M19 6.4L20.5 5C20 4.5 19.5 4 19 3.6L17.6 5C16 3.7 14.1 3 12 3C7 3 3 7 3 12S7 21 12 21C17 21 21 17 21 12C21 9.9 20.3 7.9 19 6.4M13 13H11V6H13V13M15 0H9V2H15V0M13 24H11V22H13V24M17 24H15V22H17V24M9 24H7V22H9V24Z\";\nexport var mdiTimerSettingsOutline = \"M12 19C8.1 19 5 15.9 5 12S8.1 5 12 5 19 8.1 19 12 15.9 19 12 19M19 6.4L20.5 5C20 4.5 19.5 4 19 3.6L17.6 5C16 3.7 14.1 3 12 3C7 3 3 7 3 12S7 21 12 21C17 21 21 17 21 12C21 9.9 20.3 7.9 19 6.4M11 13H13V7H11M15 0H9V2H15V0M13 22H11V24H13V22M17 22H15V24H17V22M9 22H7V24H9V22Z\";\nexport var mdiTimerStar = \"M15 3H9V1H15V3M13 19C13 20.03 13.26 21 13.71 21.83C13.16 21.94 12.59 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C20.26 8.93 21 10.88 21 13C21 13.12 21 13.23 21 13.35C20.36 13.13 19.7 13 19 13C15.69 13 13 15.69 13 19M13 7H11V14H13V7M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiTimerStarOutline = \"M11 8H13V14H11V8M15 1H9V3H15V1M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20M23 17.89L20.11 17.64L19 15L17.87 17.64L15 17.89L17.18 19.77L16.5 22.58L19 21.09L21.45 22.58L20.8 19.77L23 17.89Z\";\nexport var mdiTimerStop = \"M19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.26 21 13 20.03 13 19C13 15.69 15.69 13 19 13M13 14H11V7H13V14M15 3H9V1H15V3M21.5 16.5V21.5H16.5V16.5H21.5Z\";\nexport var mdiTimerStopOutline = \"M11 8H13V14H11V8M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6 19 9.13 19 13C19.7 13 20.36 13.13 21 13.35C21 13.23 21 13.12 21 13C21 10.88 20.26 8.93 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.59 22 13.16 21.94 13.71 21.83C13.4 21.25 13.18 20.6 13.08 19.91C12.72 19.96 12.37 20 12 20M15 1H9V3H15V1M16.5 16.5V21.5H21.5V16.5H16.5Z\";\nexport var mdiTimerSync = \"M15 3H9V1H15V3M13 17.5C13 19.08 13.56 20.5 14.5 21.65C13.7 21.87 12.87 22 12 22C7.03 22 3 17.97 3 13S7.03 4 12 4C14.12 4 16.07 4.74 17.62 6L19.04 4.56C19.55 5 20 5.46 20.45 5.97L19.03 7.39C19.89 8.46 20.5 9.74 20.8 11.13C20.38 11.05 19.94 11 19.5 11C15.91 11 13 13.91 13 17.5M13 7H11V14H13V7M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiTimerSyncOutline = \"M11 8H13V14H11V8M12 20C8.13 20 5 16.87 5 13S8.13 6 12 6C15.19 6 17.88 8.14 18.72 11.05C19 11 19.24 11 19.5 11C19.94 11 20.38 11.05 20.8 11.13C20.5 9.74 19.89 8.46 19.03 7.39L20.45 5.97C20 5.46 19.55 5 19.04 4.56L17.62 6C16.07 4.74 14.12 4 12 4C7.03 4 3 8.03 3 13S7.03 22 12 22C12.87 22 13.7 21.87 14.5 21.65C14.05 21.11 13.7 20.5 13.45 19.85C13 19.95 12.5 20 12 20M15 1H9V3H15V1M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20Z\";\nexport var mdiTimetable = \"M14,12H15.5V14.82L17.94,16.23L17.19,17.53L14,15.69V12M4,2H18A2,2 0 0,1 20,4V10.1C21.24,11.36 22,13.09 22,15A7,7 0 0,1 15,22C13.09,22 11.36,21.24 10.1,20H4A2,2 0 0,1 2,18V4A2,2 0 0,1 4,2M4,15V18H8.67C8.24,17.09 8,16.07 8,15H4M4,8H10V5H4V8M18,8V5H12V8H18M4,13H8.29C8.63,11.85 9.26,10.82 10.1,10H4V13M15,10.15A4.85,4.85 0 0,0 10.15,15C10.15,17.68 12.32,19.85 15,19.85A4.85,4.85 0 0,0 19.85,15C19.85,12.32 17.68,10.15 15,10.15Z\";\nexport var mdiTire = \"M19.66 9.64L19.3 8.7L21.16 8C20.24 5.88 18.6 4.18 16.54 3.14L15.74 4.92L14.82 4.5L15.62 2.7C14.5 2.26 13.28 2 12 2C10.94 2 9.92 2.22 8.96 2.5L9.64 4.34L8.7 4.7L8 2.84C5.88 3.76 4.18 5.4 3.14 7.46L4.92 8.26L4.5 9.18L2.7 8.38C2.26 9.5 2 10.72 2 12C2 13.06 2.22 14.08 2.5 15.04L4.34 14.36L4.7 15.3L2.84 16C3.76 18.12 5.4 19.82 7.46 20.86L8.26 19.08L9.18 19.5L8.38 21.3C9.5 21.74 10.72 22 12 22C13.06 22 14.08 21.78 15.04 21.5L14.36 19.66L15.3 19.3L16 21.16C18.12 20.24 19.82 18.6 20.86 16.54L19.08 15.74L19.5 14.82L21.3 15.62C21.74 14.5 22 13.28 22 12C22 10.94 21.78 9.92 21.5 8.96L19.66 9.64M14.3 17.54C11.24 18.8 7.72 17.36 6.46 14.3S6.64 7.72 9.7 6.46 16.28 6.64 17.54 9.7C18.82 12.76 17.36 16.28 14.3 17.54Z\";\nexport var mdiToaster = \"M21 11A2 2 0 0 0 19 9H5A2 2 0 0 0 3 11H2V13H3V20H21V13H22V11M17 15A2 2 0 1 1 19 13A2 2 0 0 1 17 15M18 8H6C6.33 5.75 8.88 4 12 4S17.63 5.75 18 8Z\";\nexport var mdiToasterOff = \"M20.8 22.7L18.1 20H3V13H2V11H3C3 9.9 3.9 9 5 9H7.1L1.1 3L2.4 1.7L22.1 21.4L20.8 22.7M15.3 12.1C15.6 11.5 16.3 11 17 11C18.1 11 19 11.9 19 13C19 13.8 18.6 14.4 17.9 14.7L21 17.8V13H22V11H21C21 9.9 20.1 9 19 9H12.2L15.3 12.1M18 8C17.6 5.8 15.1 4 12 4C10.6 4 9.2 4.4 8.2 5L11.2 8H18Z\";\nexport var mdiToasterOven = \"M4,5A2,2 0 0,0 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7A2,2 0 0,0 20,5H4M4,7H16V17H4V7M19,7A1,1 0 0,1 20,8A1,1 0 0,1 19,9A1,1 0 0,1 18,8A1,1 0 0,1 19,7M6,9V11H14V9H6M19,11A1,1 0 0,1 20,12A1,1 0 0,1 19,13A1,1 0 0,1 18,12A1,1 0 0,1 19,11Z\";\nexport var mdiToggleSwitch = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\";\nexport var mdiToggleSwitchOff = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\";\nexport var mdiToggleSwitchOffOutline = \"M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\";\nexport var mdiToggleSwitchOutline = \"M17 6H7C3.69 6 1 8.69 1 12S3.69 18 7 18H17C20.31 18 23 15.31 23 12S20.31 6 17 6M17 16H7C4.79 16 3 14.21 3 12S4.79 8 7 8H17C19.21 8 21 9.79 21 12S19.21 16 17 16M17 9C15.34 9 14 10.34 14 12S15.34 15 17 15 20 13.66 20 12 18.66 9 17 9Z\";\nexport var mdiToggleSwitchVariant = \"M18.4 1.6C18 1.2 17.5 1 17 1H7C6.5 1 6 1.2 5.6 1.6C5.2 2 5 2.5 5 3V21C5 21.5 5.2 22 5.6 22.4C6 22.8 6.5 23 7 23H17C17.5 23 18 22.8 18.4 22.4C18.8 22 19 21.5 19 21V3C19 2.5 18.8 2 18.4 1.6M16 7C16 7.6 15.6 8 15 8H9C8.4 8 8 7.6 8 7V5C8 4.4 8.4 4 9 4H15C15.6 4 16 4.4 16 5V7Z\";\nexport var mdiToggleSwitchVariantOff = \"M5.6 1.6C6 1.2 6.5 1 7 1H17C17.5 1 18 1.2 18.4 1.6C18.8 2 19 2.5 19 3V21C19 21.5 18.8 22 18.4 22.4C18 22.8 17.5 23 17 23H7C6.5 23 6 22.8 5.6 22.4C5.2 22 5 21.5 5 21V3C5 2.5 5.2 2 5.6 1.6M8 3C7.4 3 7 3.4 7 4V20C7 20.6 7.4 21 8 21H16C16.6 21 17 20.6 17 20V4C17 3.4 16.6 3 16 3H8M8 17C8 16.4 8.4 16 9 16H15C15.6 16 16 16.4 16 17V19C16 19.6 15.6 20 15 20H9C8.4 20 8 19.6 8 19V17Z\";\nexport var mdiToilet = \"M9,22H17V19.5C19.41,17.87 21,15.12 21,12V4A2,2 0 0,0 19,2H15C13.89,2 13,2.9 13,4V12H3C3,15.09 5,18 9,19.5V22M5.29,14H18.71C18.14,15.91 16.77,17.5 15,18.33V20H11V18.33C9,18 5.86,15.91 5.29,14M15,4H19V12H15V4M16,5V8H18V5H16Z\";\nexport var mdiToolbox = \"M18 16H16V15H8V16H6V15H2V20H22V15H18V16M20 8H17V6C17 4.9 16.1 4 15 4H9C7.9 4 7 4.9 7 6V8H4C2.9 8 2 8.9 2 10V14H6V12H8V14H16V12H18V14H22V10C22 8.9 21.1 8 20 8M15 8H9V6H15V8Z\";\nexport var mdiToolboxOutline = \"M20 8H17V6C17 4.9 16.1 4 15 4H9C7.9 4 7 4.9 7 6V8H4C2.9 8 2 8.9 2 10V20H22V10C22 8.9 21.1 8 20 8M9 6H15V8H9V6M20 18H4V15H6V16H8V15H16V16H18V15H20V18M18 13V12H16V13H8V12H6V13H4V10H20V13H18Z\";\nexport var mdiTools = \"M21.71 20.29L20.29 21.71A1 1 0 0 1 18.88 21.71L7 9.85A3.81 3.81 0 0 1 6 10A4 4 0 0 1 2.22 4.7L4.76 7.24L5.29 6.71L6.71 5.29L7.24 4.76L4.7 2.22A4 4 0 0 1 10 6A3.81 3.81 0 0 1 9.85 7L21.71 18.88A1 1 0 0 1 21.71 20.29M2.29 18.88A1 1 0 0 0 2.29 20.29L3.71 21.71A1 1 0 0 0 5.12 21.71L10.59 16.25L7.76 13.42M20 2L16 4V6L13.83 8.17L15.83 10.17L18 8H20L22 4Z\";\nexport var mdiTooltip = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2Z\";\nexport var mdiTooltipAccount = \"M20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H8L12,22L16,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M12,4.3C13.5,4.3 14.7,5.5 14.7,7C14.7,8.5 13.5,9.7 12,9.7C10.5,9.7 9.3,8.5 9.3,7C9.3,5.5 10.5,4.3 12,4.3M18,15H6V14.1C6,12.1 10,11 12,11C14,11 18,12.1 18,14.1V15Z\";\nexport var mdiTooltipCellphone = \"M9 6H15V14H9V6M22 4V16C22 17.11 21.11 18 20 18H16L12 22L8 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.11 2 22 2.9 22 4M16 5.09C16 4.5 15.5 4 14.86 4H9.14C8.5 4 8 4.5 8 5.09V14.91C8 15.5 8.5 16 9.14 16H14.86C15.5 16 16 15.5 16 14.91V5.09Z\";\nexport var mdiTooltipCheck = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M10.46 14L6.96 10.5L8.37 9.08L10.46 11.17L15.64 6L17.05 7.41L10.46 14Z\";\nexport var mdiTooltipCheckOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M20 16H15.17L12 19.17L8.83 16H4V4H20V16M10.75 13.71L7.25 10.21L8.66 8.79L10.75 10.88L15.34 6.3L16.75 7.71L10.75 13.71Z\";\nexport var mdiTooltipEdit = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M9.08 15H7V12.91L13.17 6.72L15.24 8.8L9.08 15M16.84 7.2L15.83 8.21L13.76 6.18L14.77 5.16C14.97 4.95 15.31 4.94 15.55 5.16L16.84 6.41C17.05 6.62 17.06 6.96 16.84 7.2Z\";\nexport var mdiTooltipEditOutline = \"M4 2H20C21.11 2 22 2.9 22 4V16C22 17.11 21.11 18 20 18H16L12 22L8 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2M4 4V16H8.83L12 19.17L15.17 16H20V4H4M15.84 8.2L14.83 9.21L12.76 7.18L13.77 6.16C13.97 5.95 14.31 5.94 14.55 6.16L15.84 7.41C16.05 7.62 16.06 7.96 15.84 8.2M8 11.91L12.17 7.72L14.24 9.8L10.08 14H8V11.91Z\";\nexport var mdiTooltipImage = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M19,15V7L15,11L13,9L7,15H19M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5Z\";\nexport var mdiTooltipImageOutline = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4M7.5,6A1.5,1.5 0 0,1 9,7.5A1.5,1.5 0 0,1 7.5,9A1.5,1.5 0 0,1 6,7.5A1.5,1.5 0 0,1 7.5,6M6,14L11,9L13,11L18,6V14H6Z\";\nexport var mdiTooltipMinus = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M16 11H8V9H16V11Z\";\nexport var mdiTooltipMinusOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M20 16H15.17L12 19.17L8.83 16H4V4H20V16M16 11H8V9H16V11Z\";\nexport var mdiTooltipOutline = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z\";\nexport var mdiTooltipPlus = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M11,6V9H8V11H11V14H13V11H16V9H13V6H11Z\";\nexport var mdiTooltipPlusOutline = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4M11,6H13V9H16V11H13V14H11V11H8V9H11V6Z\";\nexport var mdiTooltipQuestion = \"M20 2H4C3.47 2 2.96 2.21 2.59 2.59C2.21 2.96 2 3.47 2 4V16C2 16.53 2.21 17.04 2.59 17.41C2.96 17.79 3.47 18 4 18H8L12 22L16 18H20C20.53 18 21.04 17.79 21.41 17.41S22 16.53 22 16V4C22 3.47 21.79 2.96 21.41 2.59C21.04 2.21 20.53 2 20 2M10.05 6.04C10.59 5.68 11.3 5.5 12.19 5.5C13.13 5.5 13.88 5.71 14.42 6.12C14.96 6.54 15.23 7.1 15.23 7.8C15.23 8.24 15.08 8.63 14.79 9C14.5 9.36 14.12 9.64 13.66 9.85C13.4 10 13.23 10.15 13.14 10.32C13.05 10.5 13 10.72 13 11H11C11 10.5 11.1 10.16 11.29 9.92C11.5 9.68 11.84 9.4 12.36 9.08C12.62 8.94 12.83 8.76 13 8.54C13.14 8.33 13.22 8.08 13.22 7.8C13.22 7.5 13.13 7.28 12.95 7.11C12.77 6.93 12.5 6.85 12.19 6.85C11.92 6.85 11.7 6.92 11.5 7.06C11.34 7.2 11.24 7.41 11.24 7.69H9.27C9.22 7 9.5 6.4 10.05 6.04M11 14V12H13V14Z\";\nexport var mdiTooltipQuestionOutline = \"M20 2H4C3.47 2 2.96 2.21 2.59 2.59C2.21 2.96 2 3.47 2 4V16C2 16.53 2.21 17.04 2.59 17.41C2.96 17.79 3.47 18 4 18H8L12 22L16 18H20C20.53 18 21.04 17.79 21.41 17.41S22 16.53 22 16V4C22 3.47 21.79 2.96 21.41 2.59C21.04 2.21 20.53 2 20 2M4 16V4H20V16H15.17L12 19.17L8.83 16M10.05 6.04C10.59 5.68 11.3 5.5 12.19 5.5C13.13 5.5 13.88 5.71 14.42 6.12C14.96 6.54 15.23 7.1 15.23 7.8C15.23 8.24 15.08 8.63 14.79 9C14.5 9.36 14.12 9.64 13.66 9.85C13.4 10 13.23 10.15 13.14 10.32C13.05 10.5 13 10.72 13 11H11C11 10.5 11.1 10.16 11.29 9.92C11.5 9.68 11.84 9.4 12.36 9.08C12.62 8.94 12.83 8.76 13 8.54C13.14 8.33 13.22 8.08 13.22 7.8C13.22 7.5 13.13 7.28 12.95 7.11C12.77 6.93 12.5 6.85 12.19 6.85C11.92 6.85 11.7 6.92 11.5 7.06C11.34 7.2 11.24 7.41 11.24 7.69H9.27C9.22 7 9.5 6.4 10.05 6.04M11 14V12H13V14Z\";\nexport var mdiTooltipRemove = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M15.54 12.12L14.12 13.54L12 11.41L9.88 13.54L8.47 12.12L10.59 10L8.46 7.88L9.88 6.47L12 8.59L14.12 6.47L15.54 7.88L13.41 10L15.54 12.12Z\";\nexport var mdiTooltipRemoveOutline = \"M20 2H4C2.9 2 2 2.9 2 4V16C2 17.11 2.9 18 4 18H8L12 22L16 18H20C21.11 18 22 17.11 22 16V4C22 2.9 21.11 2 20 2M20 16H15.17L12 19.17L8.83 16H4V4H20V16M8.46 12.12L10.59 10L8.46 7.88L9.88 6.47L12 8.59L14.12 6.47L15.54 7.88L13.41 10L15.54 12.12L14.12 13.54L12 11.41L9.88 13.54L8.46 12.12Z\";\nexport var mdiTooltipText = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M5,5V7H19V5H5M5,9V11H15V9H5M5,13V15H17V13H5Z\";\nexport var mdiTooltipTextOutline = \"M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4M6,7H18V9H6V7M6,11H16V13H6V11Z\";\nexport var mdiTooth = \"M7,2C4,2 2,5 2,8C2,10.11 3,13 4,14C5,15 6,22 8,22C12.54,22 10,15 12,15C14,15 11.46,22 16,22C18,22 19,15 20,14C21,13 22,10.11 22,8C22,5 20,2 17,2C14,2 14,3 12,3C10,3 10,2 7,2Z\";\nexport var mdiToothOutline = \"M7,2C4,2 2,5 2,8C2,10.11 3,13 4,14C5,15 6,22 8,22C12.54,22 10,15 12,15C14,15 11.46,22 16,22C18,22 19,15 20,14C21,13 22,10.11 22,8C22,5 20,2 17,2C14,2 14,3 12,3C10,3 10,2 7,2M7,4C9,4 10,5 12,5C14,5 15,4 17,4C18.67,4 20,6 20,8C20,9.75 19.14,12.11 18.19,13.06C17.33,13.92 16.06,19.94 15.5,19.94C15.29,19.94 15,18.88 15,17.59C15,15.55 14.43,13 12,13C9.57,13 9,15.55 9,17.59C9,18.88 8.71,19.94 8.5,19.94C7.94,19.94 6.67,13.92 5.81,13.06C4.86,12.11 4,9.75 4,8C4,6 5.33,4 7,4Z\";\nexport var mdiToothbrush = \"M12.91 6.43L15.03 8.55L16.09 7.5L15.03 6.43L17.86 3.6L18.92 4.66L20 3.6L17.86 1.5M3 20.57L4.43 22L14.5 11.9L16.63 11.19L21.4 6.43C22.18 5.65 22.18 4.38 21.4 3.6L15.55 9.44L13.43 10.15Z\";\nexport var mdiToothbrushElectric = \"M12 1.5V14C10.34 14 9 15.34 9 17V22H17V17C17 15.34 15.66 14 14 14V3.5C14 2.4 13.11 1.5 12 1.5M7.5 2V9H11V7.5H9V3.5H11V2H7.5M13 17.5C13.83 17.5 14.5 18.17 14.5 19C14.5 19.83 13.83 20.5 13 20.5C12.17 20.5 11.5 19.83 11.5 19C11.5 18.17 12.17 17.5 13 17.5Z\";\nexport var mdiToothbrushPaste = \"M17.86 1.5L12.91 6.43L15.03 8.55L16.09 7.5L15.03 6.43L17.86 3.6L18.92 4.66L20 3.6M21.4 3.6L15.56 9.44L13.43 10.15L3 20.57L4.43 22L10.08 16.33L14.33 20.57L18.57 16.33L14.33 12.09L14.5 11.9L16.63 11.19L21.4 6.43C22.18 5.65 22.18 4.38 21.4 3.6M6.55 4.31L2.31 8.55L7.26 13.5L11.5 9.26M18.22 18.1L16.09 20.22L17.5 21.63L19.63 19.5Z\";\nexport var mdiTorch = \"M8.6 9.6C9 10.2 9.5 10.7 10.2 11H14.2C14.5 10.9 14.7 10.7 14.9 10.5C15.9 9.5 16.3 8 15.8 6.7L15.7 6.5C15.6 6.2 15.4 6 15.2 5.8C15.1 5.6 14.9 5.5 14.8 5.3C14.4 5 14 4.7 13.6 4.3C12.7 3.4 12.6 2 13.1 1C12.6 1.1 12.1 1.4 11.7 1.8C10.2 3 9.6 5.1 10.3 7V7.2C10.3 7.3 10.2 7.4 10.1 7.5C10 7.6 9.8 7.5 9.7 7.4L9.6 7.3C9 6.5 8.9 5.3 9.3 4.3C8.4 5.1 7.9 6.4 8 7.7C8 8 8.1 8.3 8.2 8.6C8.2 8.9 8.4 9.3 8.6 9.6M12.3 8.1C12.4 7.6 12.2 7.2 12.1 6.8C12 6.4 12 6 12.2 5.6L12.5 6.2C12.9 6.8 13.6 7 13.8 7.8V8.1C13.8 8.6 13.6 9.1 13.3 9.4C13.1 9.5 12.9 9.7 12.7 9.7C12.1 9.9 11.4 9.6 11 9.2C11.8 9.2 12.2 8.6 12.3 8.1M15 12V14H14L13 22H11L10 14H9V12H15Z\";\nexport var mdiTortoise = \"M19.31,5.6C18.09,5.56 16.88,6.5 16.5,8C16,10 16,10 15,11C13,13 10,14 4,15C3,15.16 2.5,15.5 2,16C4,16 6,16 4.5,17.5L3,19H6L8,17C10,18 11.33,18 13.33,17L14,19H17L16,16C16,16 17,12 18,11C19,10 19,11 20,11C21,11 22,10 22,8.5C22,8 22,7 20.5,6C20.15,5.76 19.74,5.62 19.31,5.6M9,6A6,6 0 0,0 3,12C3,12.6 3.13,13.08 3.23,13.6C9.15,12.62 12.29,11.59 13.93,9.94L14.43,9.44C13.44,7.34 11.32,6 9,6Z\";\nexport var mdiToslink = \"M20 10V7L17 4H7L4 7V10C2.9 10 2 10.9 2 12S2.9 14 4 14V18C4 19.1 4.9 20 6 20H18C19.1 20 20 19.1 20 18V14C21.11 14 22 13.11 22 12S21.11 10 20 10M12 16C9.79 16 8 14.21 8 12S9.79 8 12 8 16 9.79 16 12 14.21 16 12 16M14 12C14 13.11 13.11 14 12 14S10 13.11 10 12 10.9 10 12 10 14 10.9 14 12Z\";\nexport var mdiTouchTextOutline = \"M7 7H17V9H7V7M12.69 15.81H13.2V15H7V17H10.38L10.71 16.65C11.18 16.13 11.92 15.81 12.69 15.81M9 19H5V5H19V13.56L21 14.45V5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11.33L9 19M7 13H13.2V11.73C13.2 11.5 13.25 11.24 13.31 11H7V13M15.2 19.07L12.85 17.81H12.69C12.5 17.81 12.29 17.89 12.15 18.04L11.61 18.61L15.2 21.69C15.39 21.89 15.66 22 15.93 22H20.7C21.3 22 21.78 21.5 21.8 20.9V17.7C21.8 17.28 21.57 16.89 21.18 16.71L17.55 15.11L16.67 15V11.73C16.67 11.33 16.34 11 15.93 11C15.53 11 15.2 11.33 15.2 11.73V19.07Z\";\nexport var mdiTournament = \"M2,2V4H7V8H2V10H7C8.11,10 9,9.11 9,8V7H14V17H9V16C9,14.89 8.11,14 7,14H2V16H7V20H2V22H7C8.11,22 9,21.11 9,20V19H14C15.11,19 16,18.11 16,17V13H22V11H16V7C16,5.89 15.11,5 14,5H9V4C9,2.89 8.11,2 7,2H2Z\";\nexport var mdiTowTruck = \"M15,10H20.39L17.06,6H15V10M17.5,18.5C17.89,18.5 18.24,18.37 18.54,18.07C18.84,17.77 19,17.42 19,17C19,16.61 18.84,16.26 18.54,15.96C18.24,15.66 17.89,15.5 17.5,15.5C17.08,15.5 16.73,15.66 16.43,15.96C16.13,16.26 16,16.61 16,17C16,17.42 16.13,17.77 16.43,18.07C16.73,18.37 17.08,18.5 17.5,18.5M6,18.5C6.44,18.5 6.8,18.37 7.08,18.07C7.36,17.77 7.5,17.42 7.5,17C7.5,16.61 7.36,16.26 7.08,15.96C6.8,15.66 6.44,15.5 6,15.5C5.56,15.5 5.2,15.66 4.92,15.96C4.64,16.26 4.5,16.61 4.5,17C4.5,17.42 4.64,17.77 4.92,18.07C5.2,18.37 5.56,18.5 6,18.5M18,4L23,10V17H20.5C20.5,17.83 20.19,18.53 19.59,19.13C19,19.72 18.3,20 17.5,20C16.67,20 15.97,19.72 15.38,19.13C14.78,18.53 14.5,17.83 14.5,17H9C9,17.83 8.7,18.53 8.11,19.13C7.5,19.72 6.81,20 6,20C5.19,20 4.5,19.72 3.89,19.13C3.3,18.53 3,17.83 3,17H1V13H9.19L3,8.11V11H1V5H2L13,11.06V4H18Z\";\nexport var mdiTowerBeach = \"M17,4V8H18V10H17.64L21,23H18.93L18.37,20.83L12,17.15L5.63,20.83L5.07,23H3L6.36,10H6V8H7V4H6V3L18,1V4H17M7.28,14.43L6.33,18.12L10,16L7.28,14.43M15.57,10H8.43L7.8,12.42L12,14.85L16.2,12.42L15.57,10M17.67,18.12L16.72,14.43L14,16L17.67,18.12Z\";\nexport var mdiTowerFire = \"M17,4V8H18V10H17.64L21,23H18.93L18.37,20.83L12,17.15L5.63,20.83L5.07,23H3L6.36,10H6V8H7V4H6V3L12,1L18,3V4H17M7.28,14.43L6.33,18.12L10,16L7.28,14.43M15.57,10H8.43L7.8,12.42L12,14.85L16.2,12.42L15.57,10M17.67,18.12L16.72,14.43L14,16L17.67,18.12Z\";\nexport var mdiTownHall = \"M21 10H17V8L12.5 6.2V4H15V2H11.5V6.2L7 8V10H3C2.45 10 2 10.45 2 11V22H10V17H14V22H22V11C22 10.45 21.55 10 21 10M8 20H4V17H8V20M8 15H4V12H8V15M12 8C12.55 8 13 8.45 13 9S12.55 10 12 10 11 9.55 11 9 11.45 8 12 8M14 15H10V12H14V15M20 20H16V17H20V20M20 15H16V12H20V15Z\";\nexport var mdiToyBrick = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H21V6Z\";\nexport var mdiToyBrickMarker = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H14.54A9.55 9.55 0 0 1 13 15.5A5.58 5.58 0 0 1 18.5 10A5.3 5.3 0 0 1 21 10.63V6M18.5 12A3.54 3.54 0 0 0 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5A3.54 3.54 0 0 0 18.5 12M18.5 16.8A1.2 1.2 0 1 1 18.5 14.4A1.29 1.29 0 0 1 19.7 15.6A1.15 1.15 0 0 1 18.5 16.8Z\";\nexport var mdiToyBrickMarkerOutline = \"M18.5 12A3.54 3.54 0 0 0 15 15.5C15 18.1 18.5 22 18.5 22S22 18.1 22 15.5A3.54 3.54 0 0 0 18.5 12M18.5 16.8A1.2 1.2 0 1 1 18.5 14.4A1.29 1.29 0 0 1 19.7 15.6A1.15 1.15 0 0 1 18.5 16.8M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H14.54A15.55 15.55 0 0 1 13.54 18H5V8H19V10A5.11 5.11 0 0 1 21 10.6V6Z\";\nexport var mdiToyBrickMinus = \"M23 20H15V18H23V20M13 19C13 15.69 15.69 13 19 13C19.7 13 20.37 13.13 21 13.35V6H19V5C19 3.9 18.11 3 17 3H15C13.9 3 13 3.9 13 5V6H11V5C11 3.9 10.11 3 9 3H7C5.9 3 5 3.9 5 5V6H3V20H13.09C13.04 19.67 13 19.34 13 19Z\";\nexport var mdiToyBrickMinusOutline = \"M13.09 20H3V6H5V5C5 3.9 5.9 3 7 3H9C10.11 3 11 3.9 11 5V6H13V5C13 3.9 13.9 3 15 3H17C18.11 3 19 3.9 19 5V6H21V13.35C20.37 13.13 19.7 13 19 13V8H5V18H13.09C13.04 18.33 13 18.66 13 19S13.04 19.67 13.09 20M23 18H15V20H23V18Z\";\nexport var mdiToyBrickOutline = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H21V6M19 18H5V8H19Z\";\nexport var mdiToyBrickPlus = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H13.09A5.47 5.47 0 0 1 13 19A6 6 0 0 1 21 13.34V6M20 15V18H23V20H20V23H18V20H15V18H18V15Z\";\nexport var mdiToyBrickPlusOutline = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H14V18H5V8H19V13H21V6M21 15V18H24V20H21V23H19V20H16V18H19V15Z\";\nexport var mdiToyBrickRemove = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H13.09A5.47 5.47 0 0 1 13 19A6 6 0 0 1 21 13.34V6M22.54 16.88L20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.46 21.12L17.59 19L15.46 16.88L16.88 15.46L19 17.59L21.12 15.46Z\";\nexport var mdiToyBrickRemoveOutline = \"M19 6V5C19 3.9 18.1 3 17 3H15C13.9 3 13 3.9 13 5V6H11V5C11 3.9 10.1 3 9 3H7C5.9 3 5 3.9 5 5V6H3V20H14V18H5V8H19V13H21V6M17.88 15.46L20 17.59L22.12 15.47L23.54 16.88L21.41 19L23.54 21.12L22.12 22.54L20 20.41L17.88 22.54L16.46 21.12L18.59 19L16.47 16.88\";\nexport var mdiToyBrickSearch = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H11.81A6.5 6.5 0 0 1 21 10.81V6M20.31 17.9A4.5 4.5 0 1 0 18.88 19.32L22 22.39L23.39 21M16.5 18A2.5 2.5 0 1 1 19 15.5A2.5 2.5 0 0 1 16.5 18Z\";\nexport var mdiToyBrickSearchOutline = \"M19 6V5A2 2 0 0 0 17 3H15A2 2 0 0 0 13 5V6H11V5A2 2 0 0 0 9 3H7A2 2 0 0 0 5 5V6H3V20H11.81A6.59 6.59 0 0 1 10.5 18H5V8H19V9.5A6.59 6.59 0 0 1 21 10.81V6M20.31 17.9A4.5 4.5 0 1 0 18.88 19.32L22 22.39L23.39 21M16.5 18A2.5 2.5 0 1 1 19 15.5A2.5 2.5 0 0 1 16.5 18Z\";\nexport var mdiTrackLight = \"M6,1V3H9V6.4L4.11,4.38L1.43,10.84L6.97,13.14L11.94,16.82L13.79,17.59L17.62,8.35L15.77,7.58L11,6.87V3H14V1H6M21.81,6.29L19.5,7.25L20.26,9.1L22.57,8.14L21.81,6.29M19.78,13.57L19,15.42L21.79,16.57L22.55,14.72L19.78,13.57M16.19,18.93L14.34,19.69L15.3,22L17.15,21.23L16.19,18.93Z\";\nexport var mdiTrackLightOff = \"M19.78 13.57L22.55 14.72L21.79 16.57L19 15.42L19.78 13.57M22.57 8.14L21.81 6.29L19.5 7.25L20.26 9.1L22.57 8.14M14.34 19.69L15.3 22L17.15 21.23L16.19 18.93L14.34 19.69M2.39 1.73L1.11 3L3.64 5.53L1.43 10.84L6.97 13.14L11.94 16.82L13.79 17.59L14.35 16.24L20.84 22.73L22.11 21.46L2.39 1.73M6.2 3L6 2.8V1H14V3H11V6.87L15.77 7.58L17.62 8.35L15.84 12.64L9 5.8V3H6.2Z\";\nexport var mdiTrackpad = \"M4,3H20A2,2 0 0,1 22,5V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V5A2,2 0 0,1 4,3M4,5V13H20V5H4M4,19H11V15H4V19M20,19V15H13V19H20Z\";\nexport var mdiTrackpadLock = \"M3,1C1.89,1 1,1.89 1,3V17C1,18.11 1.89,19 3,19H14V17H12V13H16.68C17.5,12.35 18.47,12 19.5,12C20,12 20.5,12.09 21,12.26V3C21,1.89 20.11,1 19,1H3M3,3H19V11H3V3M3,13H10V17H3V13M19.5,14A2.5,2.5 0 0,0 17,16.5V17A1,1 0 0,0 16,18V22A1,1 0 0,0 17,23H22A1,1 0 0,0 23,22V18A1,1 0 0,0 22,17V16.5A2.5,2.5 0 0,0 19.5,14M19.5,15A1.5,1.5 0 0,1 21,16.5V17H18V16.5A1.5,1.5 0 0,1 19.5,15Z\";\nexport var mdiTractor = \"M5,4V11.26C3.2,11.9 2,13.6 2,15.5C2,18 4,20 6.5,20C8.79,20 10.71,18.28 10.97,16H15.17C15.06,16.32 15,16.66 15,17A3,3 0 0,0 18,20A3,3 0 0,0 21,17C21,16.66 20.94,16.32 20.82,16H22V13C22,11.89 21.11,11 20,11H15.04L13.65,4H5M7,6H12L13,11V14H10.74C10.16,12.38 8.71,11.23 7,11.03V6M6.5,13.25A2.25,2.25 0 0,1 8.75,15.5A2.25,2.25 0 0,1 6.5,17.75A2.25,2.25 0 0,1 4.25,15.5A2.25,2.25 0 0,1 6.5,13.25M18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5Z\";\nexport var mdiTractorVariant = \"M13.3 2.79L9.8 6.29L10.5 7L11.9 5.61L13 6.71V9C13 10.11 12.11 11 11 11H10.46A6 6 0 0 1 12 15A6 6 0 0 1 11.91 16H15.03A4.5 4.5 0 0 1 19.5 12A4.5 4.5 0 0 1 22 12.76V8C22 6.89 21.11 6 20 6H13.71L12.61 4.9L14 3.5L13.3 2.79M4 7C3.45 7 3 7.45 3 8C3 8.55 3.45 9 4 9H9C9 7.9 8.11 7 7 7H4M6 10A5 5 0 0 0 4.44 10.25L4.8 11.18L4.33 11.36L4 10.43A5 5 0 0 0 1.54 12.74L2.45 13.15L2.24 13.6L1.34 13.2A5 5 0 0 0 1 15A5 5 0 0 0 1.25 16.56L2.18 16.2L2.36 16.67L1.43 17A5 5 0 0 0 3.74 19.46L4.14 18.55L4.6 18.76L4.2 19.66A5 5 0 0 0 6 20A5 5 0 0 0 7.56 19.75L7.2 18.82L7.67 18.64L8 19.57A5 5 0 0 0 10.46 17.26L9.55 16.86L9.76 16.4L10.66 16.8A5 5 0 0 0 11 15A5 5 0 0 0 10.75 13.44L9.82 13.8L9.64 13.33L10.57 13A5 5 0 0 0 8.26 10.54L7.86 11.45L7.4 11.24L7.8 10.34A5 5 0 0 0 6 10M6 12A3 3 0 0 1 9 15A3 3 0 0 1 6 18A3 3 0 0 1 3 15A3 3 0 0 1 6 12M19.5 13A3.5 3.5 0 0 0 16 16.5A3.5 3.5 0 0 0 19.5 20A3.5 3.5 0 0 0 23 16.5A3.5 3.5 0 0 0 19.5 13M19.5 15A1.5 1.5 0 0 1 21 16.5A1.5 1.5 0 0 1 19.5 18A1.5 1.5 0 0 1 18 16.5A1.5 1.5 0 0 1 19.5 15Z\";\nexport var mdiTrademark = \"M9.8,8.44H6.87V16H4.89V8.44H2V7H9.8V8.44M13.5,7L15.96,13.5L18.41,7H21V16H19V13.5L19.22,9.24L16.63,16H15.28L12.7,9.25L12.9,13.5V16H10.93V7H13.5Z\";\nexport var mdiTrafficCone = \"M17 15L18 19H21V22H3V19H6L7 15H17M15 8L16 12H8L9 8H15M13 1L14 5H10L11 1H13Z\";\nexport var mdiTrafficLight = \"M12,9A2,2 0 0,1 10,7C10,5.89 10.9,5 12,5C13.11,5 14,5.89 14,7A2,2 0 0,1 12,9M12,14A2,2 0 0,1 10,12C10,10.89 10.9,10 12,10C13.11,10 14,10.89 14,12A2,2 0 0,1 12,14M12,19A2,2 0 0,1 10,17C10,15.89 10.9,15 12,15C13.11,15 14,15.89 14,17A2,2 0 0,1 12,19M20,10H17V8.86C18.72,8.41 20,6.86 20,5H17V4A1,1 0 0,0 16,3H8A1,1 0 0,0 7,4V5H4C4,6.86 5.28,8.41 7,8.86V10H4C4,11.86 5.28,13.41 7,13.86V15H4C4,16.86 5.28,18.41 7,18.86V20A1,1 0 0,0 8,21H16A1,1 0 0,0 17,20V18.86C18.72,18.41 20,16.86 20,15H17V13.86C18.72,13.41 20,11.86 20,10Z\";\nexport var mdiTrafficLightOutline = \"M20 10H17V8.86C18.72 8.41 20 6.86 20 5H17V4C17 3.45 16.55 3 16 3H8C7.45 3 7 3.45 7 4V5H4C4 6.86 5.28 8.41 7 8.86V10H4C4 11.86 5.28 13.41 7 13.86V15H4C4 16.86 5.28 18.41 7 18.86V20C7 20.55 7.45 21 8 21H16C16.55 21 17 20.55 17 20V18.86C18.72 18.41 20 16.86 20 15H17V13.86C18.72 13.41 20 11.86 20 10M15 19H9V5H15V19M12 18C12.83 18 13.5 17.33 13.5 16.5S12.83 15 12 15 10.5 15.67 10.5 16.5 11.17 18 12 18M12 13.5C12.83 13.5 13.5 12.83 13.5 12S12.83 10.5 12 10.5 10.5 11.17 10.5 12 11.17 13.5 12 13.5M12 9C12.83 9 13.5 8.33 13.5 7.5S12.83 6 12 6 10.5 6.67 10.5 7.5 11.17 9 12 9Z\";\nexport var mdiTrain = \"M12,2C8,2 4,2.5 4,6V15.5A3.5,3.5 0 0,0 7.5,19L6,20.5V21H8.23L10.23,19H14L16,21H18V20.5L16.5,19A3.5,3.5 0 0,0 20,15.5V6C20,2.5 16.42,2 12,2M7.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,14A1.5,1.5 0 0,1 9,15.5A1.5,1.5 0 0,1 7.5,17M11,10H6V6H11V10M13,10V6H18V10H13M16.5,17A1.5,1.5 0 0,1 15,15.5A1.5,1.5 0 0,1 16.5,14A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 16.5,17Z\";\nexport var mdiTrainBus = \"M5 2H12C12.8 2 13.56 2.32 14.12 2.88C14.68 3.44 15 4.2 15 5V6H13V4H4V11H9V16H8L5 19H4V17L5 16C4.2 16 3.44 15.68 2.88 15.12C2.32 14.56 2 13.8 2 13V5C2 4.2 2.32 3.44 2.88 2.88C3.44 2.32 4.2 2 5 2M5.71 12.29C5.5 12.11 5.27 12 5 12C4.74 12 4.5 12.11 4.29 12.29C4.11 12.5 4 12.74 4 13C4 13.27 4.11 13.5 4.29 13.71C4.5 13.9 4.74 14 5 14C5.27 14 5.5 13.9 5.71 13.71C5.9 13.5 6 13.27 6 13C6 12.74 5.9 12.5 5.71 12.29M11 11C11 9.34 12 8 15 8H18C21 8 22 9.34 22 11V18C22 18.74 21.6 19.39 21 19.73V21C21 21.55 20.55 22 20 22C19.45 22 19 21.55 19 21V20H14V21C14 21.55 13.55 22 13 22C12.45 22 12 21.55 12 21V19.73C11.4 19.39 11 18.74 11 18V11M13 10V14H20V10H13M14 18C14.55 18 15 17.55 15 17C15 16.45 14.55 16 14 16C13.45 16 13 16.45 13 17C13 17.55 13.45 18 14 18M20 17C20 16.45 19.55 16 19 16C18.45 16 18 16.45 18 17C18 17.55 18.45 18 19 18C19.55 18 20 17.55 20 17Z\";\nexport var mdiTrainCar = \"M12,4H5A3,3 0 0,0 2,7V15A3,3 0 0,0 5,18L4,19V20H5L7,17.97L9,18V13H4V6H13V8H15V7A3,3 0 0,0 12,4M5,14A1,1 0 0,1 6,15A1,1 0 0,1 5,16A1,1 0 0,1 4,15A1,1 0 0,1 5,14M20.57,9.66C20.43,9.26 20.05,9 19.6,9H12.41C11.95,9 11.58,9.26 11.43,9.66L10,13.77V19.28C10,19.66 10.32,20 10.7,20H11.32C11.7,20 12,19.62 12,19.24V18H20V19.24C20,19.62 20.31,20 20.69,20H21.3C21.68,20 22,19.66 22,19.28V17.91L22,13.77L20.57,9.66M12.41,10H19.6L20.63,13H11.38L12.41,10M12,16A1,1 0 0,1 11,15A1,1 0 0,1 12,14A1,1 0 0,1 13,15A1,1 0 0,1 12,16M20,16A1,1 0 0,1 19,15A1,1 0 0,1 20,14A1,1 0 0,1 21,15A1,1 0 0,1 20,16Z\";\nexport var mdiTrainCarAutorack = \"M21 6H3C1.9 6 1 6.9 1 8V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V8C23 6.9 22.11 6 21 6M7.58 12.18C8.19 12.18 8.68 12.68 8.68 13.29S8.19 14.39 7.58 14.39C6.97 14.39 6.47 13.9 6.47 13.29S6.97 12.18 7.58 12.18M7.03 11.08L8.68 9.61H11.63L14.58 11.08H7.03M9.66 14.03H14.34C14.5 14.42 14.74 14.75 15.05 15H8.95C9.26 14.75 9.5 14.42 9.66 14.03M15.32 13.29C15.32 12.68 15.81 12.18 16.42 12.18C17.03 12.18 17.53 12.68 17.53 13.29S17.03 14.39 16.42 14.39C15.81 14.4 15.32 13.9 15.32 13.29M17.79 15C18.11 14.75 18.36 14.42 18.5 14.03H20.11V13.29C20.11 12.47 19.35 12.21 18.63 11.82L12 8.5H8.32L6.11 10.34H5.37C4.55 10.34 3.89 11 3.89 11.82V14.03H5.5C5.64 14.42 5.89 14.75 6.21 15H3V8H21V15H17.79Z\";\nexport var mdiTrainCarBox = \"M1 7V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V7H1Z\";\nexport var mdiTrainCarBoxFull = \"M1 7V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V7H1M16 16H14V11H10V16H8V9H16V16Z\";\nexport var mdiTrainCarBoxOpen = \"M1 7V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V7H1M16 16H8V9H16V16Z\";\nexport var mdiTrainCarCaboose = \"M23 9V7H15V6H16V4H8V6H9V7H1V9H2V15H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V15H22V9H23M4 15H3V9H4V15M11 12H6V9H11V12M18 12H13V9H18V12M21 15H20V9H21V15Z\";\nexport var mdiTrainCarCenterbeam = \"M23 6V17H22C22 18.11 21.11 19 20 19S18 18.11 18 17H6C6 18.11 5.11 19 4 19S2 18.11 2 17H1V6H3V15H21V6H23Z\";\nexport var mdiTrainCarCenterbeamFull = \"M23 6V17H22C22 18.11 21.11 19 20 19S18 18.11 18 17H6C6 18.11 5.11 19 4 19S2 18.11 2 17H1V6H3V15H21V6H23M8 12H4V14H8V12M15 12H9V14H15V12M20 12H16V14H20V12M8 9H4V11H8V9M15 9H9V11H15V9M20 9H16V11H20V9M8 6H4V8H8V6M15 6H9V8H15V6M20 6H16V8H20V6Z\";\nexport var mdiTrainCarContainer = \"M1 6V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V6H1M21 15H19V9H17V15H15V9H13V15H11V9H9V15H7V9H5V15H3V8H21V15Z\";\nexport var mdiTrainCarFlatbed = \"M23 15V17H22C22 18.11 21.11 19 20 19S18 18.11 18 17H6C6 18.11 5.11 19 4 19S2 18.11 2 17H1V15H23Z\";\nexport var mdiTrainCarFlatbedCar = \"M23 13V10C23 8.89 22.11 8 21 8H19L16 4H6L3 8C1.89 8 1 8.89 1 10V13H3C3 13.77 3.3 14.47 3.78 15H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V15H20.22C20.7 14.47 21 13.77 21 13H23M19.5 13C19.5 13.83 18.83 14.5 18 14.5S16.5 13.83 16.5 13 17.17 11.5 18 11.5 19.5 12.17 19.5 13M12 5.5H15.25L17.14 8H12V5.5M15.78 15H8.22C8.7 14.47 9 13.77 9 13H15C15 13.77 15.3 14.47 15.78 15M6.75 5.5H10.5V8H4.86L6.75 5.5M6 11.5C6.83 11.5 7.5 12.17 7.5 13S6.83 14.5 6 14.5 4.5 13.83 4.5 13 5.17 11.5 6 11.5Z\";\nexport var mdiTrainCarFlatbedTank = \"M21.22 15C21.7 14.47 22 13.77 22 13C22 11.34 20.66 10 19 10H5C3.34 10 2 11.34 2 13C2 13.77 2.3 14.47 2.78 15H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V15H21.22M19 12C19.55 12 20 12.45 20 13S19.55 14 19 14 18 13.55 18 13 18.45 12 19 12M12 12C12.55 12 13 12.45 13 13S12.55 14 12 14 11 13.55 11 13 11.45 12 12 12M5 12C5.55 12 6 12.45 6 13S5.55 14 5 14 4 13.55 4 13 4.45 12 5 12M13.62 6L13.22 4H22V6H13.62M20 9H4V8H6L7 3H12L13 8H20V9Z\";\nexport var mdiTrainCarGondola = \"M1 10V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V10H1M21 15H19V13H17V15H15V13H13V15H11V13H9V15H7V13H5V15H3V12H21V15Z\";\nexport var mdiTrainCarGondolaFull = \"M21 10C19.04 8.19 15.74 7 12 7S4.96 8.19 3 10H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V10H21M21 15H19V13H17V15H15V13H13V15H11V13H9V15H7V13H5V15H3V12H21V15Z\";\nexport var mdiTrainCarHopper = \"M1 8V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V8H1M13 15V11H11V15H8V11H6V15H3V10H21V15H18V11H16V15H13Z\";\nexport var mdiTrainCarHopperCovered = \"M23 9V7H1V9L2 10.33V15H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H10L11 18H13L14 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V15H22V10.33L23 9M4 15V13L5.5 15H4M5 10V9H19V10H5M20 15H18.5L20 13V15Z\";\nexport var mdiTrainCarHopperFull = \"M21 8C19.04 6.19 15.74 5 12 5S4.96 6.19 3 8H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V8H21M13 15V11H11V15H8V11H6V15H3V10H21V15H18V11H16V15H13Z\";\nexport var mdiTrainCarIntermodal = \"M21 15V11H3V15H1V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V15H21M16 14H8V13H16V14M21 5H3V10H21V5M16 8H8V7H16V8Z\";\nexport var mdiTrainCarPassenger = \"M21 7H3C1.9 7 1 7.9 1 9V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V9C23 7.9 22.11 7 21 7M7 12H3V9H7V12M15 12H9V9H15V12M21 12H17V9H21V12Z\";\nexport var mdiTrainCarPassengerDoor = \"M21 7H3C1.9 7 1 7.9 1 9V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V9C23 7.9 22.11 7 21 7M7 12H3V9H7V12M11 16H9V9H11V16M15 16H13V9H15V16M21 12H17V9H21V12Z\";\nexport var mdiTrainCarPassengerDoorOpen = \"M21 7H3C1.9 7 1 7.9 1 9V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V9C23 7.9 22.11 7 21 7M8 12H3V9H8V12M14 16H10V9H14V16M21 12H16V9H21V12Z\";\nexport var mdiTrainCarPassengerVariant = \"M21 7H3C1.9 7 1 7.9 1 9V17H2C2 18.11 2.9 19 4 19S6 18.11 6 17H18C18 18.11 18.9 19 20 19S22 18.11 22 17H23V9C23 7.9 22.11 7 21 7M11 12H3V9H11V12M21 12H13V9H21V12Z\";\nexport var mdiTrainCarTank = \"M23 15V17H22C22 18.11 21.11 19 20 19S18 18.11 18 17H6C6 18.11 5.11 19 4 19S2 18.11 2 17H1V15H23M21 8H15V7H9V8H3C1.9 8 1 8.9 1 10V12C1 13.11 1.9 14 3 14H21C22.11 14 23 13.11 23 12V10C23 8.9 22.11 8 21 8Z\";\nexport var mdiTrainVariant = \"M18,10H6V5H18M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M4,15.5A3.5,3.5 0 0,0 7.5,19L6,20.5V21H18V20.5L16.5,19A3.5,3.5 0 0,0 20,15.5V5C20,1.5 16.42,1 12,1C7.58,1 4,1.5 4,5V15.5Z\";\nexport var mdiTram = \"M19,16.94V8.5C19,5.71 16.39,5.1 13,5L13.75,3.5H17V2H7V3.5H11.75L11,5C7.86,5.11 5,5.73 5,8.5V16.94C5,18.39 6.19,19.6 7.59,19.91L6,21.5V22H8.23L10.23,20H14L16,22H18V21.5L16.5,20H16.42C18.11,20 19,18.63 19,16.94M12,18.5A1.5,1.5 0 0,1 10.5,17A1.5,1.5 0 0,1 12,15.5A1.5,1.5 0 0,1 13.5,17A1.5,1.5 0 0,1 12,18.5M17,14H7V9H17V14Z\";\nexport var mdiTramSide = \"M9 1L5 4L7.5 6H5C5 6 2 6 2 9V19H7C7 19 7 17 9 17H22V14H18V8H22V6H10.5L13 4L9 1M4 8H9V14H4V8M11 8H16V14H11V8M4 16H5V18H4V16M9 19V19.5C9 20.88 10.12 22 11.5 22C12.5 22 13.39 21.41 13.79 20.5H15.21C15.61 21.41 16.5 22 17.5 22C18.88 22 20 20.88 20 19.5V19H9Z\";\nexport var mdiTranscribe = \"M20,5A2,2 0 0,1 22,7V17A2,2 0 0,1 20,19H4C2.89,19 2,18.1 2,17V7C2,5.89 2.89,5 4,5H20M18,17V15H12.5L10.5,17H18M6,17H8.5L15.35,10.12C15.55,9.93 15.55,9.61 15.35,9.41L13.59,7.65C13.39,7.45 13.07,7.45 12.88,7.65L6,14.53V17Z\";\nexport var mdiTranscribeClose = \"M12,23L8,19H16L12,23M20,3A2,2 0 0,1 22,5V15A2,2 0 0,1 20,17H4A2,2 0 0,1 2,15V5A2,2 0 0,1 4,3H20M18,15V13H12.5L10.5,15H18M6,15H8.5L15.35,8.12C15.55,7.93 15.55,7.61 15.35,7.42L13.59,5.65C13.39,5.45 13.07,5.45 12.88,5.65L6,12.53V15Z\";\nexport var mdiTransfer = \"M8 4A2 2 0 0 0 6 6V10H8V6H16V9H13.5L17 12.5L20.5 9H18V6A2 2 0 0 0 16 4H8M3 12V14H11V12H3M3 15V17H11V15H3M13 15V17H21V15H13M3 18V20H11V18H3M13 18V20H21V18H13Z\";\nexport var mdiTransferDown = \"M16,3V5H8V3H16M16,7V9H8V7H16M16,11V13H8V11H16M5,15H19L12,22L5,15Z\";\nexport var mdiTransferLeft = \"M21,16H19V8H21V16M17,16H15V8H17V16M13,16H11V8H13V16M9,5V19L2,12L9,5Z\";\nexport var mdiTransferRight = \"M3,8H5V16H3V8M7,8H9V16H7V8M11,8H13V16H11V8M15,19.25V4.75L22.25,12L15,19.25Z\";\nexport var mdiTransferUp = \"M8,21V19H16V21H8M8,17V15H16V17H8M8,13V11H16V13H8M19,9H5L12,2L19,9Z\";\nexport var mdiTransitConnection = \"M15,12C15,10.7 14.16,9.6 13,9.18V6.82C14.16,6.4 15,5.3 15,4A3,3 0 0,0 12,1A3,3 0 0,0 9,4C9,5.3 9.84,6.4 11,6.82V9.19C9.84,9.6 9,10.7 9,12C9,13.3 9.84,14.4 11,14.82V17.18C9.84,17.6 9,18.7 9,20A3,3 0 0,0 12,23A3,3 0 0,0 15,20C15,18.7 14.16,17.6 13,17.18V14.82C14.16,14.4 15,13.3 15,12M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M12,21A1,1 0 0,1 11,20A1,1 0 0,1 12,19A1,1 0 0,1 13,20A1,1 0 0,1 12,21Z\";\nexport var mdiTransitConnectionHorizontal = \"M12 9C10.7 9 9.6 9.8 9.2 11H6.8C6.4 9.8 5.3 9 4 9C2.3 9 1 10.3 1 12S2.3 15 4 15C5.3 15 6.4 14.2 6.8 13H9.2C9.6 14.2 10.7 15 12 15S14.4 14.2 14.8 13H17.2C17.6 14.2 18.7 15 20 15C21.7 15 23 13.7 23 12S21.7 9 20 9C18.7 9 17.6 9.8 17.2 11H14.8C14.4 9.8 13.3 9 12 9M3 12C3 11.4 3.4 11 4 11S5 11.4 5 12 4.6 13 4 13 3 12.6 3 12M21 12C21 12.6 20.6 13 20 13S19 12.6 19 12 19.4 11 20 11 21 11.4 21 12Z\";\nexport var mdiTransitConnectionVariant = \"M18,11H14.82C14.4,9.84 13.3,9 12,9C10.7,9 9.6,9.84 9.18,11H6C5.67,11 4,10.9 4,9V8C4,6.17 5.54,6 6,6H16.18C16.6,7.16 17.7,8 19,8A3,3 0 0,0 22,5A3,3 0 0,0 19,2C17.7,2 16.6,2.84 16.18,4H6C4.39,4 2,5.06 2,8V9C2,11.94 4.39,13 6,13H9.18C9.6,14.16 10.7,15 12,15C13.3,15 14.4,14.16 14.82,13H18C18.33,13 20,13.1 20,15V16C20,17.83 18.46,18 18,18H7.82C7.4,16.84 6.3,16 5,16A3,3 0 0,0 2,19A3,3 0 0,0 5,22C6.3,22 7.4,21.16 7.82,20H18C19.61,20 22,18.93 22,16V15C22,12.07 19.61,11 18,11M19,4A1,1 0 0,1 20,5A1,1 0 0,1 19,6A1,1 0 0,1 18,5A1,1 0 0,1 19,4M5,20A1,1 0 0,1 4,19A1,1 0 0,1 5,18A1,1 0 0,1 6,19A1,1 0 0,1 5,20Z\";\nexport var mdiTransitDetour = \"M19 3A3 3 0 0 0 16.61 4.21A11.5 11.5 0 0 0 13.75 4L13.88 6A9.47 9.47 0 0 1 16 6.13A3 3 0 1 0 19 3M19 7A1 1 0 1 1 20 6A1 1 0 0 1 19 7M8.86 7.86L7.67 6.25A11.5 11.5 0 0 1 11.6 4.37L12.1 6.31A9.5 9.5 0 0 0 8.86 7.86M21 18A3 3 0 1 1 15.69 16.11A9.47 9.47 0 0 0 8.59 13.46C8.37 13.47 8.16 13.5 7.94 13.54A3 3 0 1 1 4.39 10.06A11.54 11.54 0 0 1 6.04 7.7L7.5 9.06A9.34 9.34 0 0 0 6.5 10.41A3.04 3.04 0 0 1 7.62 11.56C7.91 11.5 8.19 11.5 8.5 11.46A11.47 11.47 0 0 1 17.46 15.05A2.96 2.96 0 0 1 18 15A3 3 0 0 1 21 18Z\";\nexport var mdiTransitSkip = \"M21 12C21 8 18.5 4.7 15 3.5C14.7 2.1 13.5 1 12 1C10.3 1 9 2.3 9 4S10.3 7 12 7C13.1 7 14.1 6.4 14.6 5.5C17.2 6.5 19 9 19 12C19 14.9 17.2 17.5 14.6 18.5C14.1 17.6 13.1 17 12 17C10.3 17 9 18.3 9 20S10.3 23 12 23C13.5 23 14.7 21.9 15 20.5C18.5 19.3 21 15.9 21 12M12 5C11.4 5 11 4.6 11 4S11.4 3 12 3 13 3.4 13 4 12.6 5 12 5M12 21C11.4 21 11 20.6 11 20S11.4 19 12 19 13 19.4 13 20 12.6 21 12 21M12 9C13.7 9 15 10.3 15 12S13.7 15 12 15 9 13.7 9 12 10.3 9 12 9Z\";\nexport var mdiTransitTransfer = \"M16.5,15.5H22V17H16.5V18.75L14,16.25L16.5,13.75V15.5M19.5,19.75V18L22,20.5L19.5,23V21.25H14V19.75H19.5M9.5,5.5A2,2 0 0,1 7.5,3.5A2,2 0 0,1 9.5,1.5A2,2 0 0,1 11.5,3.5A2,2 0 0,1 9.5,5.5M5.75,8.9L4,9.65V13H2V8.3L7.25,6.15C7.5,6.05 7.75,6 8,6C8.7,6 9.35,6.35 9.7,6.95L10.65,8.55C11.55,10 13.15,11 15,11V13C12.8,13 10.85,12 9.55,10.4L8.95,13.4L11,15.45V23H9V17L6.85,15L5.1,23H3L5.75,8.9Z\";\nexport var mdiTransition = \"M15,2A7,7 0 0,1 22,9C22,11.71 20.46,14.05 18.22,15.22C17.55,16.5 16.5,17.55 15.22,18.22C14.05,20.46 11.71,22 9,22A7,7 0 0,1 2,15C2,12.29 3.54,9.95 5.78,8.78C6.45,7.5 7.5,6.45 8.78,5.78C9.95,3.54 12.29,2 15,2M12,19A7,7 0 0,1 5,12C4.37,12.84 4,13.87 4,15A5,5 0 0,0 9,20C10.13,20 11.16,19.63 12,19M15,16A7,7 0 0,1 8,9H8C7.37,9.84 7,10.87 7,12A5,5 0 0,0 12,17C13.13,17 14.16,16.63 15,16V16M15,4C13.87,4 12.84,4.37 12,5V5A7,7 0 0,1 19,12H19C19.63,11.16 20,10.13 20,9A5,5 0 0,0 15,4M10,9A5,5 0 0,0 15,14C15.6,14 16.17,13.9 16.7,13.7C16.9,13.17 17,12.6 17,12A5,5 0 0,0 12,7C11.4,7 10.83,7.1 10.3,7.3C10.1,7.83 10,8.4 10,9Z\";\nexport var mdiTransitionMasked = \"M15,2C16.94,2 18.59,2.7 19.95,4.05C21.3,5.41 22,7.06 22,9C22,10.56 21.5,11.96 20.58,13.2C19.64,14.43 18.44,15.27 16.97,15.7L17,15.38V15C17,12.81 16.23,10.93 14.65,9.35C13.07,7.77 11.19,7 9,7H8.63L8.3,7.03C8.73,5.56 9.57,4.36 10.8,3.42C12.04,2.5 13.44,2 15,2M9,8A7,7 0 0,1 16,15A7,7 0 0,1 9,22A7,7 0 0,1 2,15A7,7 0 0,1 9,8M9,10A5,5 0 0,0 4,15A5,5 0 0,0 9,20A5,5 0 0,0 14,15A5,5 0 0,0 9,10Z\";\nexport var mdiTranslate = \"M12.87,15.07L10.33,12.56L10.36,12.53C12.1,10.59 13.34,8.36 14.07,6H17V4H10V2H8V4H1V6H12.17C11.5,7.92 10.44,9.75 9,11.35C8.07,10.32 7.3,9.19 6.69,8H4.69C5.42,9.63 6.42,11.17 7.67,12.56L2.58,17.58L4,19L9,14L12.11,17.11L12.87,15.07M18.5,10H16.5L12,22H14L15.12,19H19.87L21,22H23L18.5,10M15.88,17L17.5,12.67L19.12,17H15.88Z\";\nexport var mdiTranslateOff = \"M12.17,5.81C11.87,6.69 11.47,7.55 11,8.39L12.35,9.74C13.11,8.5 13.71,7.18 14.13,5.81H17.16V3.75H9.94V1.69H7.87V3.75H6.37L8.43,5.81H12.17M15.53,12.91L17.03,14.41L17.67,12.69L19.08,16.47L22.39,19.77L18.7,9.94H16.64L15.53,12.91M1.31,1.31L0,2.62L1.13,3.75H0.65V5.81H3.19L5.26,7.88H4.46C5.21,9.56 6.24,11.15 7.53,12.58L2.28,17.76L3.75,19.22L8.91,14.07L12.11,17.27L12.8,15.43L14.1,16.72L12,22.31H14.06L15.22,19.22H16.6L21.38,24L22.69,22.69L1.31,1.31Z\";\nexport var mdiTranslateVariant = \"M11 1H3C1.9 1 1 1.9 1 3V15L4 12H9V11C9 8.8 10.79 7 13 7V3C13 1.9 12.1 1 11 1M11 4L9.5 4C9.16 5.19 8.54 6.3 7.68 7.26L7.66 7.28L8.92 8.53L8.55 9.54L7 8L4.5 10.5L3.81 9.77L6.34 7.28C5.72 6.59 5.22 5.82 4.86 5H5.85C6.16 5.6 6.54 6.17 7 6.68C7.72 5.88 8.24 4.97 8.57 4L3 4V3H6.5V2H7.5V3H11V4M21 9H13C11.9 9 11 9.9 11 11V18C11 19.1 11.9 20 13 20H20L23 23V11C23 9.9 22.1 9 21 9M19.63 19L18.78 16.75H15.22L14.38 19H12.88L16.25 10H17.75L21.13 19H19.63M17 12L18.22 15.25H15.79L17 12Z\";\nexport var mdiTransmissionTower = \"M8.28,5.45L6.5,4.55L7.76,2H16.23L17.5,4.55L15.72,5.44L15,4H9L8.28,5.45M18.62,8H14.09L13.3,5H10.7L9.91,8H5.38L4.1,10.55L5.89,11.44L6.62,10H17.38L18.1,11.45L19.89,10.56L18.62,8M17.77,22H15.7L15.46,21.1L12,15.9L8.53,21.1L8.3,22H6.23L9.12,11H11.19L10.83,12.35L12,14.1L13.16,12.35L12.81,11H14.88L17.77,22M11.4,15L10.5,13.65L9.32,18.13L11.4,15M14.68,18.12L13.5,13.64L12.6,15L14.68,18.12Z\";\nexport var mdiTransmissionTowerExport = \"M5.18 5.45L3.4 4.55L4.66 2H13.13L14.4 4.55L12.62 5.44L11.9 4H5.9L5.18 5.45M15.5 8H11L10.2 5H7.6L6.81 8H2.28L1 10.55L2.79 11.44L3.5 10H14.28L15 11.45L16.79 10.56L15.5 8M14.67 22H12.6L12.36 21.1L8.9 15.9L5.43 21.1L5.2 22H3.13L6 11H8.09L7.73 12.35L8.9 14.1L10.06 12.35L9.71 11H11.78L14.67 22M8.3 15L7.4 13.65L6.22 18.13L8.3 15M11.58 18.12L10.4 13.64L9.5 15L11.58 18.12M23 16L19 12V15H15V17H19V20L23 16Z\";\nexport var mdiTransmissionTowerImport = \"M11.39 5.45L9.61 4.55L10.87 2H19.34L20.61 4.55L18.83 5.44L18.11 4H12.11L11.39 5.45M21.73 8H17.2L16.41 5H13.81L13 8H8.5L7.21 10.55L9 11.44L9.73 10H20.5L21.21 11.45L23 10.56L21.73 8M20.88 22H18.81L18.57 21.1L15.11 15.9L11.64 21.1L11.41 22H9.34L12.23 11H14.3L13.94 12.35L15.11 14.1L16.27 12.35L15.92 11H18L20.88 22M14.5 15L13.61 13.65L12.43 18.13L14.5 15M17.79 18.12L16.61 13.64L15.71 15L17.79 18.12M9 16L5 12V15H1V17H5V20L9 16Z\";\nexport var mdiTransmissionTowerOff = \"M22.1 21.5L2.4 1.7L1.1 3L6.1 8H5.4L4.1 10.5L5.9 11.4L6.6 10H8.1L9.1 11L6.2 22H8.3L8.5 21.1L12 15.9L15.5 21.1L15.7 22H17.8L17 18.8L20.9 22.7L22.1 21.5M9.3 18.1L10.5 13.6L11.4 14.9L9.3 18.1M14.7 18.1L12.6 15L12.8 14.7L14.1 16L14.7 18.1M14.2 11H14.9L15.1 11.9L14.2 11M14.1 8H18.6L19.9 10.6L18.1 11.5L17.4 10H13.2L10.2 7L10.7 5H13.3L14.1 8M8.4 5.2L6.9 3.7L7.8 2H16.3L17.6 4.5L15.8 5.4L15 4H9L8.4 5.2Z\";\nexport var mdiTrashCan = \"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z\";\nexport var mdiTrashCanOutline = \"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\";\nexport var mdiTray = \"M2 12H4V17H20V12H22V17A2 2 0 0 1 20 19H4A2 2 0 0 1 2 17Z\";\nexport var mdiTrayAlert = \"M2 12H4V17H20V12H22V17A2 2 0 0 1 20 19H4A2 2 0 0 1 2 17M13 12H11V14H13M13 4H11V10H13Z\";\nexport var mdiTrayArrowDown = \"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\";\nexport var mdiTrayArrowUp = \"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\";\nexport var mdiTrayFull = \"M18 5H6V7H18M6 9H18V11H6M2 12H4V17H20V12H22V17A2 2 0 0 1 20 19H4A2 2 0 0 1 2 17M18 13H6V15H18Z\";\nexport var mdiTrayMinus = \"M16 10H8V8H16M2 17A2 2 0 0 0 4 19H20A2 2 0 0 0 22 17V12H20V17H4V12H2Z\";\nexport var mdiTrayPlus = \"M2 12H4V17H20V12H22V17A2 2 0 0 1 20 19H4A2 2 0 0 1 2 17M11 5H13V8H16V10H13V13H11V10H8V8H11Z\";\nexport var mdiTrayRemove = \"M2 17A2 2 0 0 0 4 19H20A2 2 0 0 0 22 17V12H20V17H4V12H2M14.12 5.46L15.54 6.88L13.41 9L15.54 11.12L14.12 12.54L12 10.41L9.88 12.54L8.46 11.12L10.59 9L8.46 6.88L9.88 5.46L12 7.59Z\";\nexport var mdiTreasureChest = \"M5,4H19A3,3 0 0,1 22,7V11H15V10H9V11H2V7A3,3 0 0,1 5,4M11,11H13V13H11V11M2,12H9V13L11,15H13L15,13V12H22V20H2V12Z\";\nexport var mdiTreasureChestOutline = \"M2 20H22V7C22 6.2 21.68 5.44 21.12 4.88C20.56 4.32 19.8 4 19 4H5C4.2 4 3.44 4.32 2.88 4.88C2.32 5.44 2 6.2 2 7V20M20 11H15V9H9V11H4V7C4 6.74 4.11 6.5 4.29 6.29C4.5 6.11 4.74 6 5 6H19C19.27 6 19.5 6.11 19.71 6.29C19.9 6.5 20 6.74 20 7V11M15 13H20V18H4V13H9L11 15H13L15 13M11 11H13V13H11V11Z\";\nexport var mdiTree = \"M11,21V16.74C10.53,16.91 10.03,17 9.5,17C7,17 5,15 5,12.5C5,11.23 5.5,10.09 6.36,9.27C6.13,8.73 6,8.13 6,7.5C6,5 8,3 10.5,3C12.06,3 13.44,3.8 14.25,5C14.33,5 14.41,5 14.5,5A5.5,5.5 0 0,1 20,10.5A5.5,5.5 0 0,1 14.5,16C14,16 13.5,15.93 13,15.79V21H11Z\";\nexport var mdiTreeOutline = \"M10.5,3C8,3 6,5 6,7.5C6,8.11 6.13,8.71 6.37,9.27C5.5,10.12 5,11.28 5,12.5C5,15 7,17 9.5,17C10,17 10.5,16.89 11,16.72V21H13V15.77C13.5,15.91 14,16 14.5,16A5.5,5.5 0 0,0 20,10.5A5.5,5.5 0 0,0 14.5,5C14.41,5 14.33,5 14.24,5C13.41,3.76 12,3 10.5,3M10.5,5C11.82,5 12.91,6.03 13,7.35C13.46,7.12 14,7 14.5,7A3.5,3.5 0 0,1 18,10.5A3.5,3.5 0 0,1 14.5,14C13.54,14 12.63,13.61 11.96,12.91C11.76,14.12 10.72,15 9.5,15A2.5,2.5 0 0,1 7,12.5C7,11.12 7.8,10.54 9,9.79C8.2,8.76 8,8.16 8,7.5A2.5,2.5 0 0,1 10.5,5Z\";\nexport var mdiTrello = \"M19.5,2H4.5A2.5,2.5 0 0,0 2,4.5V19.5A2.5,2.5 0 0,0 4.5,22H19.5A2.5,2.5 0 0,0 22,19.5V4.5A2.5,2.5 0 0,0 19.5,2M10.7,17.2A1.2,1.2 0 0,1 9.5,18.4H5.8C5.14,18.4 4.6,17.86 4.6,17.2V5.8A1.2,1.2 0 0,1 5.8,4.6H9.5C10.16,4.6 10.7,5.14 10.7,5.8V17.2M19.4,12.2C19.4,12.86 18.86,13.4 18.2,13.4H14.5C13.84,13.4 13.3,12.86 13.3,12.2V5.8C13.3,5.14 13.84,4.6 14.5,4.6H18.2C18.86,4.6 19.4,5.14 19.4,5.8V12.2Z\";\nexport var mdiTrendingDown = \"M16,18L18.29,15.71L13.41,10.83L9.41,14.83L2,7.41L3.41,6L9.41,12L13.41,8L19.71,14.29L22,12V18H16Z\";\nexport var mdiTrendingNeutral = \"M22,12L18,8V11H3V13H18V16L22,12Z\";\nexport var mdiTrendingUp = \"M16,6L18.29,8.29L13.41,13.17L9.41,9.17L2,16.59L3.41,18L9.41,12L13.41,16L19.71,9.71L22,12V6H16Z\";\nexport var mdiTriangle = \"M1,21H23L12,2\";\nexport var mdiTriangleDown = \"M1 3H23L12 22\";\nexport var mdiTriangleDownOutline = \"M12 22L1 3H23M12 18L19.53 5H4.47\";\nexport var mdiTriangleOutline = \"M12,2L1,21H23M12,6L19.53,19H4.47\";\nexport var mdiTriangleSmallDown = \"M8 9H16L12 16\";\nexport var mdiTriangleSmallUp = \"M8 15H16L12 8\";\nexport var mdiTriangleWave = \"M22 12L17 22L7.1 6.04L4.24 12H2L7 2L16.9 17.96L19.76 12H22Z\";\nexport var mdiTriforce = \"M1.5,21L12,3.5L22.5,21H1.5M12,21L17,12H7L12,21Z\";\nexport var mdiTrophy = \"M18 2C17.1 2 16 3 16 4H8C8 3 6.9 2 6 2H2V11C2 12 3 13 4 13H6.2C6.6 15 7.9 16.7 11 17V19.08C8 19.54 8 22 8 22H16C16 22 16 19.54 13 19.08V17C16.1 16.7 17.4 15 17.8 13H20C21 13 22 12 22 11V2H18M6 11H4V4H6V11M20 11H18V4H20V11Z\";\nexport var mdiTrophyAward = \"M15.2 10.7L16.6 16L12 12.2L7.4 16L8.8 10.8L4.6 7.3L10 7L12 2L14 7L19.4 7.3L15.2 10.7M14 19H13V16L12 15L11 16V19H10C8.9 19 8 19.9 8 21V22H16V21C16 19.9 15.11 19 14 19Z\";\nexport var mdiTrophyBroken = \"M6.2 13C6.6 14.8 7.6 16.3 10 16.8V19.34C8 20.12 8 22 8 22H13.2L10.2 15L14.2 10L10.7 4H8C8 3 6.9 2 6 2H2V11C2 12 3 13 4 13H6.2M6 11H4V4H6V11M17.8 13H20C21 13 22 12 22 11V2H18C17.1 2 16 3 16 4H13.9L16.7 10L12.2 15L13.2 22H16C16 22 16 20.12 14 19.34L14 16.85C16.39 16.35 17.5 14.7 17.8 13M20 11H18V4H20V11Z\";\nexport var mdiTrophyOutline = \"M18 2C17.1 2 16 3 16 4H8C8 3 6.9 2 6 2H2V11C2 12 3 13 4 13H6.2C6.6 15 7.9 16.7 11 17V19.08C8 19.54 8 22 8 22H16C16 22 16 19.54 13 19.08V17C16.1 16.7 17.4 15 17.8 13H20C21 13 22 12 22 11V2H18M6 11H4V4H6V11M16 11.5C16 13.43 15.42 15 12 15C8.59 15 8 13.43 8 11.5V6H16V11.5M20 11H18V4H20V11Z\";\nexport var mdiTrophyVariant = \"M17 4V2H7V4H2V11C2 12.1 2.9 13 4 13H7.1C7.5 14.96 9.04 16.5 11 16.9V19.08C8 19.54 8 22 8 22H16C16 22 16 19.54 13 19.08V16.9C14.96 16.5 16.5 14.96 16.9 13H20C21.1 13 22 12.1 22 11V4H17M4 11V6H7V11L4 11M20 11L17 11V6H20L20 11Z\";\nexport var mdiTrophyVariantOutline = \"M17 4V2H7V4H2V11C2 12.1 2.9 13 4 13H7.1C7.5 14.96 9.04 16.5 11 16.9V19.08C8 19.54 8 22 8 22H16C16 22 16 19.54 13 19.08V16.9C14.96 16.5 16.5 14.96 16.9 13H20C21.1 13 22 12.1 22 11V4H17M4 11V6H7V11L4 11M15 12C15 13.65 13.65 15 12 15S9 13.65 9 12V4H15V12M20 11L17 11V6H20L20 11Z\";\nexport var mdiTruck = \"M18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5M19.5,9.5L21.46,12H17V9.5M6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5M20,8H17V4H3C1.89,4 1,4.89 1,6V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V12L20,8Z\";\nexport var mdiTruckAlert = \"M3 4C1.9 4 1 4.9 1 6V17H3C3 18.7 4.3 20 6 20S9 18.7 9 17H15C15 18.7 16.3 20 18 20S21 18.7 21 17H23V12L20 8H17V4H3M8 6H10V10H8V6M17 9.5H19.5L21.5 12H17V9.5M8 12H10V14H8V12M6 15.5C6.8 15.5 7.5 16.2 7.5 17S6.8 18.5 6 18.5 4.5 17.8 4.5 17 5.2 15.5 6 15.5M18 15.5C18.8 15.5 19.5 16.2 19.5 17S18.8 18.5 18 18.5 16.5 17.8 16.5 17 17.2 15.5 18 15.5Z\";\nexport var mdiTruckAlertOutline = \"M8 12H10V14H8V12M8 7H10V11H8V7M18 18.5C18.8 18.5 19.5 17.8 19.5 17S18.8 15.5 18 15.5 16.5 16.2 16.5 17 17.2 18.5 18 18.5M19.5 9.5H17V12H21.5L19.5 9.5M6 18.5C6.8 18.5 7.5 17.8 7.5 17S6.8 15.5 6 15.5 4.5 16.2 4.5 17 5.2 18.5 6 18.5M20 8L23 12V17H21C21 18.7 19.7 20 18 20S15 18.7 15 17H9C9 18.7 7.7 20 6 20S3 18.7 3 17H1V6C1 4.9 1.9 4 3 4H17V8H20M3 6V15H3.8C4.3 14.4 5.2 14 6 14S7.7 14.4 8.2 15H15V6H3Z\";\nexport var mdiTruckCargoContainer = \"M20 8H17V4H1V17H3C3 18.66 4.34 20 6 20S9 18.66 9 17H15C15 18.66 16.34 20 18 20S21 18.66 21 17H23V12L20 8M6 18.5C5.17 18.5 4.5 17.83 4.5 17S5.17 15.5 6 15.5 7.5 16.17 7.5 17 6.83 18.5 6 18.5M15 7H13V14H11V7H9V14H7V7H5V14H3V6H15V7M18 18.5C17.17 18.5 16.5 17.83 16.5 17S17.17 15.5 18 15.5 19.5 16.17 19.5 17 18.83 18.5 18 18.5M17 12V9.5H19.5L21.46 12H17Z\";\nexport var mdiTruckCheck = \"M3,4H17V8H20L23,12V17H21A3,3 0 0,1 18,20A3,3 0 0,1 15,17H9A3,3 0 0,1 6,20A3,3 0 0,1 3,17H1V6C1,4.89 1.9,4 3,4M17,9.5V12H21.47L19.5,9.5H17M6,15.5A1.5,1.5 0 0,0 4.5,17A1.5,1.5 0 0,0 6,18.5A1.5,1.5 0 0,0 7.5,17A1.5,1.5 0 0,0 6,15.5M18,15.5A1.5,1.5 0 0,0 16.5,17A1.5,1.5 0 0,0 18,18.5A1.5,1.5 0 0,0 19.5,17A1.5,1.5 0 0,0 18,15.5M8,14L14,8L12.59,6.58L8,11.17L5.91,9.08L4.5,10.5L8,14Z\";\nexport var mdiTruckCheckOutline = \"M18 18.5C18.83 18.5 19.5 17.83 19.5 17C19.5 16.17 18.83 15.5 18 15.5C17.17 15.5 16.5 16.17 16.5 17C16.5 17.83 17.17 18.5 18 18.5M19.5 9.5H17V12H21.46L19.5 9.5M6 18.5C6.83 18.5 7.5 17.83 7.5 17C7.5 16.17 6.83 15.5 6 15.5C5.17 15.5 4.5 16.17 4.5 17C4.5 17.83 5.17 18.5 6 18.5M20 8L23 12V17H21C21 18.66 19.66 20 18 20C16.34 20 15 18.66 15 17H9C9 18.66 7.66 20 6 20C4.34 20 3 18.66 3 17H1V6C1 4.89 1.89 4 3 4H17V8H20M3 6V15H3.76C4.31 14.39 5.11 14 6 14C6.89 14 7.69 14.39 8.24 15H15V6H3M5 10.5L6.5 9L8 10.5L11.5 7L13 8.5L8 13.5L5 10.5Z\";\nexport var mdiTruckDelivery = \"M3,4A2,2 0 0,0 1,6V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V12L20,8H17V4M10,6L14,10L10,14V11H4V9H10M17,9.5H19.5L21.47,12H17M6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5M18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5Z\";\nexport var mdiTruckDeliveryOutline = \"M18 18.5C18.83 18.5 19.5 17.83 19.5 17C19.5 16.17 18.83 15.5 18 15.5C17.17 15.5 16.5 16.17 16.5 17C16.5 17.83 17.17 18.5 18 18.5M19.5 9.5H17V12H21.46L19.5 9.5M6 18.5C6.83 18.5 7.5 17.83 7.5 17C7.5 16.17 6.83 15.5 6 15.5C5.17 15.5 4.5 16.17 4.5 17C4.5 17.83 5.17 18.5 6 18.5M20 8L23 12V17H21C21 18.66 19.66 20 18 20C16.34 20 15 18.66 15 17H9C9 18.66 7.66 20 6 20C4.34 20 3 18.66 3 17H1V6C1 4.89 1.89 4 3 4H17V8H20M3 6V15H3.76C4.31 14.39 5.11 14 6 14C6.89 14 7.69 14.39 8.24 15H15V6H3M10 7L13.5 10.5L10 14V11.5H5V9.5H10V7Z\";\nexport var mdiTruckFast = \"M3,13.5L2.25,12H7.5L6.9,10.5H2L1.25,9H9.05L8.45,7.5H1.11L0.25,6H4A2,2 0 0,1 6,4H18V8H21L24,12V17H22A3,3 0 0,1 19,20A3,3 0 0,1 16,17H12A3,3 0 0,1 9,20A3,3 0 0,1 6,17H4V13.5H3M19,18.5A1.5,1.5 0 0,0 20.5,17A1.5,1.5 0 0,0 19,15.5A1.5,1.5 0 0,0 17.5,17A1.5,1.5 0 0,0 19,18.5M20.5,9.5H18V12H22.46L20.5,9.5M9,18.5A1.5,1.5 0 0,0 10.5,17A1.5,1.5 0 0,0 9,15.5A1.5,1.5 0 0,0 7.5,17A1.5,1.5 0 0,0 9,18.5Z\";\nexport var mdiTruckFastOutline = \"M.75 7.5H10.5L11.25 9H1.5L.75 7.5M1.75 10.5H11.5L12.25 12H2.5L1.75 10.5M18 18.5C18.83 18.5 19.5 17.83 19.5 17C19.5 16.17 18.83 15.5 18 15.5C17.17 15.5 16.5 16.17 16.5 17C16.5 17.83 17.17 18.5 18 18.5M19.5 9.5H17V12H21.46L19.5 9.5M8 18.5C8.83 18.5 9.5 17.83 9.5 17C9.5 16.17 8.83 15.5 8 15.5C7.17 15.5 6.5 16.17 6.5 17C6.5 17.83 7.17 18.5 8 18.5M20 8L23 12V17H21C21 18.66 19.66 20 18 20C16.34 20 15 18.66 15 17H11C11 18.66 9.65 20 8 20C6.34 20 5 18.66 5 17H3V13.5 13.5H5V15H5.76C6.31 14.39 7.11 14 8 14C8.89 14 9.69 14.39 10.24 15H15V6H3V6C3 4.89 3.89 4 5 4H17V8H20Z\";\nexport var mdiTruckFlatbed = \"M18 4H13V13H1V17H3C3 17.83 3.3 18.53 3.89 19.13C4.5 19.72 5.19 20 6 20S7.5 19.72 8.11 19.13C8.7 18.53 9 17.83 9 17H14.5C14.5 17.83 14.78 18.53 15.38 19.13C15.97 19.72 16.67 20 17.5 20C18.3 20 19 19.72 19.59 19.13C20.19 18.53 20.5 17.83 20.5 17H23V10L18 4M7.08 18.07C6.8 18.37 6.44 18.5 6 18.5S5.2 18.37 4.92 18.07C4.64 17.77 4.5 17.42 4.5 17C4.5 16.61 4.64 16.26 4.92 15.96C5.2 15.66 5.56 15.5 6 15.5S6.8 15.66 7.08 15.96C7.36 16.26 7.5 16.61 7.5 17C7.5 17.42 7.36 17.77 7.08 18.07M18.54 18.07C18.24 18.37 17.89 18.5 17.5 18.5C17.08 18.5 16.73 18.37 16.43 18.07S16 17.42 16 17C16 16.61 16.13 16.26 16.43 15.96C16.73 15.66 17.08 15.5 17.5 15.5C17.89 15.5 18.24 15.66 18.54 15.96C18.84 16.26 19 16.61 19 17C19 17.42 18.84 17.77 18.54 18.07M15 10V6H17.06L20.39 10H15Z\";\nexport var mdiTruckMinus = \"M20 8H17V4H3C1.89 4 1 4.89 1 6V17H3C3 18.66 4.34 20 6 20S9 18.66 9 17H15C15 18.66 16.34 20 18 20S21 18.66 21 17H23V12L20 8M6 18.5C5.17 18.5 4.5 17.83 4.5 17S5.17 15.5 6 15.5 7.5 16.17 7.5 17 6.83 18.5 6 18.5M13 11H5V9H13V11M18 18.5C17.17 18.5 16.5 17.83 16.5 17S17.17 15.5 18 15.5 19.5 16.17 19.5 17 18.83 18.5 18 18.5M17 12V9.5H19.5L21.46 12H17\";\nexport var mdiTruckMinusOutline = \"M20 8H17V4H3C1.9 4 1 4.9 1 6V17H3C3 18.7 4.3 20 6 20S9 18.7 9 17H15C15 18.7 16.3 20 18 20S21 18.7 21 17H23V12L20 8M6 18.5C5.2 18.5 4.5 17.8 4.5 17S5.2 15.5 6 15.5 7.5 16.2 7.5 17 6.8 18.5 6 18.5M15 15H8.2C7.7 14.4 6.9 14 6 14S4.3 14.4 3.8 15H3V6H15V15M18 18.5C17.2 18.5 16.5 17.8 16.5 17S17.2 15.5 18 15.5 19.5 16.2 19.5 17 18.8 18.5 18 18.5M17 12V9.5H19.5L21.5 12H17M6 11V9H12V11H6Z\";\nexport var mdiTruckOffRoad = \"M14.81 3.4L9.39 4.36L10.09 8.3L.733 9.95L1.6 14.87L3.57 14.53C3.71 15.31 4.15 16 4.81 16.46C5.46 16.92 6.26 17.1 7.05 16.96C7.83 16.82 8.53 16.38 9 15.73C9.44 15.07 9.62 14.27 9.5 13.5L15.39 12.44C15.53 13.23 15.97 13.92 16.62 14.38C17.27 14.83 18.08 15 18.86 14.88C19.65 14.74 20.34 14.29 20.8 13.64C21.26 13 21.44 12.18 21.3 11.4L23.27 11.05L22.75 8.1C22.55 7 21.5 6.28 20.43 6.5L18.46 6.82L14.81 3.4M11.13 5.58L14.58 4.97L16.94 7.09L11.57 8.04L11.13 5.58M6.27 12.53C6.66 12.46 7.06 12.55 7.39 12.78C7.71 13 7.93 13.35 8 13.74C8.07 14.14 8 14.54 7.75 14.86C7.53 15.19 7.18 15.41 6.79 15.5C6.39 15.55 6 15.46 5.67 15.23C5.34 15 5.12 14.66 5.05 14.26C5 13.87 5.07 13.47 5.3 13.14C5.53 12.82 5.87 12.6 6.27 12.53M18.08 10.44C18.47 10.37 18.88 10.46 19.2 10.69C19.53 10.92 19.75 11.27 19.82 11.66C19.89 12.05 19.8 12.46 19.57 12.78C19.34 13.11 19 13.33 18.6 13.4C18.21 13.47 17.81 13.38 17.5 13.15C17.16 12.92 16.93 12.57 16.87 12.18C16.8 11.79 16.89 11.39 17.11 11.06C17.34 10.73 17.69 10.5 18.08 10.44M2.83 19.17L2 20V22H22V16H16.62C15.55 16 14.5 16.17 13.46 16.5L12.08 16.97C10.04 17.65 7.9 18 5.75 18H5.66C4.6 18 3.58 18.42 2.83 19.17Z\";\nexport var mdiTruckOffRoadOff = \"M2.39 1.73L1.11 3L6.96 8.85L.733 9.95L1.6 14.87L3.57 14.53C3.71 15.31 4.15 16 4.81 16.46C5.46 16.92 6.26 17.1 7.05 16.96C7.83 16.82 8.53 16.38 9 15.73C9.44 15.07 9.62 14.27 9.5 13.5L11.28 13.17L14.37 16.26C14.06 16.33 13.76 16.41 13.46 16.5L12.08 16.97C10.04 17.65 7.9 18 5.75 18H5.66C4.6 18 3.58 18.42 2.83 19.17L2 20V22H20.11L20.84 22.73L21.57 22H22V21.57L22.11 21.46L22 21.35V21.35L2.39 1.73M7.39 12.78C7.71 13 7.93 13.35 8 13.74C8.07 14.14 8 14.54 7.75 14.86C7.53 15.19 7.18 15.41 6.79 15.5C6.39 15.55 6 15.46 5.67 15.23C5.34 15 5.12 14.66 5.05 14.26C5 13.87 5.07 13.47 5.3 13.14C5.53 12.82 5.87 12.6 6.27 12.53C6.66 12.46 7.06 12.55 7.39 12.78M22 18.5L19.5 16H22V18.5M18.4 14.92C18.56 14.92 18.71 14.9 18.86 14.88C19.65 14.74 20.34 14.29 20.8 13.64C21.26 13 21.44 12.18 21.3 11.4L23.27 11.05L22.75 8.1C22.55 7 21.5 6.28 20.43 6.5L18.46 6.82L14.81 3.4L9.39 4.36L9.73 6.24L18.4 14.92M11.13 5.58L14.58 4.97L16.94 7.09L11.57 8.04L11.13 5.58M18.08 10.44C18.47 10.37 18.88 10.46 19.2 10.69C19.53 10.92 19.75 11.27 19.82 11.66C19.89 12.05 19.8 12.46 19.57 12.78C19.34 13.11 19 13.33 18.6 13.4C18.21 13.47 17.81 13.38 17.5 13.15C17.16 12.92 16.93 12.57 16.87 12.18C16.8 11.79 16.89 11.39 17.11 11.06C17.34 10.73 17.69 10.5 18.08 10.44Z\";\nexport var mdiTruckOutline = \"M18 18.5C18.83 18.5 19.5 17.83 19.5 17C19.5 16.17 18.83 15.5 18 15.5C17.17 15.5 16.5 16.17 16.5 17C16.5 17.83 17.17 18.5 18 18.5M19.5 9.5H17V12H21.46L19.5 9.5M6 18.5C6.83 18.5 7.5 17.83 7.5 17C7.5 16.17 6.83 15.5 6 15.5C5.17 15.5 4.5 16.17 4.5 17C4.5 17.83 5.17 18.5 6 18.5M20 8L23 12V17H21C21 18.66 19.66 20 18 20C16.34 20 15 18.66 15 17H9C9 18.66 7.66 20 6 20C4.34 20 3 18.66 3 17H1V6C1 4.89 1.89 4 3 4H17V8H20M3 6V15H3.76C4.31 14.39 5.11 14 6 14C6.89 14 7.69 14.39 8.24 15H15V6H3Z\";\nexport var mdiTruckPlus = \"M18 18.5C18.83 18.5 19.5 17.83 19.5 17S18.83 15.5 18 15.5 16.5 16.17 16.5 17 17.17 18.5 18 18.5M19.5 9.5H17V12H21.46L19.5 9.5M6 18.5C6.83 18.5 7.5 17.83 7.5 17S6.83 15.5 6 15.5 4.5 16.17 4.5 17 5.17 18.5 6 18.5M20 8L23 12V17H21C21 18.66 19.66 20 18 20S15 18.66 15 17H9C9 18.66 7.66 20 6 20S3 18.66 3 17H1V6C1 4.89 1.89 4 3 4H17V8H20M8 6V9H5V11H8V14H10V11H13V9H10V6H8Z\";\nexport var mdiTruckPlusOutline = \"M20 8H17V4H3C1.9 4 1 4.9 1 6V17H3C3 18.7 4.3 20 6 20S9 18.7 9 17H15C15 18.7 16.3 20 18 20S21 18.7 21 17H23V12L20 8M6 18.5C5.2 18.5 4.5 17.8 4.5 17S5.2 15.5 6 15.5 7.5 16.2 7.5 17 6.8 18.5 6 18.5M15 15H8.2C7.7 14.4 6.9 14 6 14S4.3 14.4 3.8 15H3V6H15V15M18 18.5C17.2 18.5 16.5 17.8 16.5 17S17.2 15.5 18 15.5 19.5 16.2 19.5 17 18.8 18.5 18 18.5M17 12V9.5H19.5L21.5 12H17M8 11H6V9H8V7H10V9H12V11H10V13H8V11Z\";\nexport var mdiTruckRemove = \"M20 8H17V4H3C1.89 4 1 4.89 1 6V17H3C3 18.66 4.34 20 6 20S9 18.66 9 17H15C15 18.66 16.34 20 18 20S21 18.66 21 17H23V12L20 8M6 18.5C5.17 18.5 4.5 17.83 4.5 17S5.17 15.5 6 15.5 7.5 16.17 7.5 17 6.83 18.5 6 18.5M12.54 12.12L11.12 13.54L9 11.41L6.88 13.54L5.47 12.12L7.59 10L5.46 7.88L6.88 6.47L9 8.59L11.12 6.47L12.54 7.88L10.41 10L12.54 12.12M18 18.5C17.17 18.5 16.5 17.83 16.5 17S17.17 15.5 18 15.5 19.5 16.17 19.5 17 18.83 18.5 18 18.5M17 12V9.5H19.5L21.46 12H17Z\";\nexport var mdiTruckRemoveOutline = \"M20 8H17V4H3C1.89 4 1 4.89 1 6V17H3C3 18.66 4.34 20 6 20S9 18.66 9 17H15C15 18.66 16.34 20 18 20S21 18.66 21 17H23V12L20 8M6 18.5C5.17 18.5 4.5 17.83 4.5 17S5.17 15.5 6 15.5 7.5 16.17 7.5 17 6.83 18.5 6 18.5M15 15H8.24C7.69 14.39 6.89 14 6 14S4.31 14.39 3.76 15H3V6H15V15M18 18.5C17.17 18.5 16.5 17.83 16.5 17S17.17 15.5 18 15.5 19.5 16.17 19.5 17 18.83 18.5 18 18.5M17 12V9.5H19.5L21.46 12H17M5.82 11.77L7.59 10L5.82 8.23L7.23 6.82L9 8.59L10.77 6.82L12.18 8.23L10.41 10L12.18 11.77L10.77 13.18L9 11.41L7.23 13.18L5.82 11.77Z\";\nexport var mdiTruckSnowflake = \"M17 4H3C1.9 4 1 4.9 1 6V17H3C3 18.7 4.3 20 6 20S9 18.7 9 17H15C15 18.7 16.3 20 18 20S21 18.7 21 17H23V12L20 8H17V4M10.2 5.3H10.5C11 5.4 11.3 5.9 11.2 6.4L10.7 8.4L12.7 7.9C13.2 7.8 13.7 8.1 13.8 8.6C13.9 9.1 13.6 9.6 13.2 9.7L11.2 10.2L12.6 11.6C13 11.9 13 12.5 12.6 12.9C12.3 13.3 11.7 13.3 11.3 12.9L9.8 11.5L9.3 13.5C9.2 14 8.7 14.3 8.2 14.1C7.7 14 7.4 13.5 7.6 13L8.1 11L6.1 11.5C5.6 11.6 5.1 11.3 5 10.9C4.9 10.4 5.2 9.9 5.6 9.8L7.6 9.3L6.2 7.7C5.9 7.4 5.9 6.8 6.2 6.4C6.5 6.1 7.1 6.1 7.5 6.4L8.9 7.8L9.4 5.8C9.5 5.6 9.8 5.3 10.2 5.3M17 9.5H19.5L21.5 12H17V9.5M6 15.5C6.8 15.5 7.5 16.2 7.5 17S6.8 18.5 6 18.5 4.5 17.8 4.5 17 5.2 15.5 6 15.5M18 15.5C18.8 15.5 19.5 16.2 19.5 17S18.8 18.5 18 18.5 16.5 17.8 16.5 17 17.2 15.5 18 15.5Z\";\nexport var mdiTruckTrailer = \"M22,15V17H10A3,3 0 0,1 7,20A3,3 0 0,1 4,17H2V6A2,2 0 0,1 4,4H17A2,2 0 0,1 19,6V15H22M7,16A1,1 0 0,0 6,17A1,1 0 0,0 7,18A1,1 0 0,0 8,17A1,1 0 0,0 7,16Z\";\nexport var mdiTrumpet = \"M22 6C21 11 15 11 15 11H4C3 11 2 10 2 10H1V14H2C2 14 3 13 4 13H4.3C4.1 13.3 4 13.6 4 14V16C4 17.1 4.9 18 6 18H7V19H9V18H10V19H12V18H13V19H15V18H16C17.1 18 18 17.1 18 16V14C18 13.9 18 13.7 17.9 13.6C19.6 14.2 21.4 15.4 22 18H23V6H22M6 16.5C5.7 16.5 5.5 16.3 5.5 16V14C5.5 13.7 5.7 13.5 6 13.5H7V16.5H6M9 16.5V13.5H10V16.5H9M12 16.5V13.5H13V16.5H12M16.5 16C16.5 16.3 16.3 16.5 16 16.5H15V13.5H16C16.3 13.5 16.5 13.7 16.5 14V16M9 10H7V9H9V10M12 10H10V9H12V10M15 10H13V9H15V10Z\";\nexport var mdiTshirtCrew = \"M16,21H8A1,1 0 0,1 7,20V12.07L5.7,13.07C5.31,13.46 4.68,13.46 4.29,13.07L1.46,10.29C1.07,9.9 1.07,9.27 1.46,8.88L7.34,3H9C9,4.1 10.34,5 12,5C13.66,5 15,4.1 15,3H16.66L22.54,8.88C22.93,9.27 22.93,9.9 22.54,10.29L19.71,13.12C19.32,13.5 18.69,13.5 18.3,13.12L17,12.12V20A1,1 0 0,1 16,21\";\nexport var mdiTshirtCrewOutline = \"M16,21H8A1,1 0 0,1 7,20V12.07L5.7,13.12C5.31,13.5 4.68,13.5 4.29,13.12L1.46,10.29C1.07,9.9 1.07,9.27 1.46,8.88L7.34,3H9C9,4.1 10.34,5 12,5C13.66,5 15,4.1 15,3H16.66L22.54,8.88C22.93,9.27 22.93,9.9 22.54,10.29L19.71,13.12C19.32,13.5 18.69,13.5 18.3,13.12L17,12.07V20A1,1 0 0,1 16,21M20.42,9.58L16.11,5.28C15.8,5.63 15.43,5.94 15,6.2C14.16,6.7 13.13,7 12,7C10.3,7 8.79,6.32 7.89,5.28L3.58,9.58L5,11L8,9H9V19H15V9H16L19,11L20.42,9.58Z\";\nexport var mdiTshirtV = \"M16,21H8A1,1 0 0,1 7,20V12.07L5.7,13.07C5.31,13.46 4.68,13.46 4.29,13.07L1.46,10.29C1.07,9.9 1.07,9.27 1.46,8.88L7.34,3H9C9.29,4.8 10.4,6.37 12,7.25C13.6,6.37 14.71,4.8 15,3H16.66L22.54,8.88C22.93,9.27 22.93,9.9 22.54,10.29L19.71,13.12C19.32,13.5 18.69,13.5 18.3,13.12L17,12.12V20A1,1 0 0,1 16,21\";\nexport var mdiTshirtVOutline = \"M16,21H8A1,1 0 0,1 7,20V12.07L5.7,13.12C5.31,13.5 4.68,13.5 4.29,13.12L1.46,10.29C1.07,9.9 1.07,9.27 1.46,8.88L7.34,3H9C9,4.1 10,6 12,7.25C14,6 15,4.1 15,3H16.66L22.54,8.88C22.93,9.27 22.93,9.9 22.54,10.29L19.71,13.12C19.32,13.5 18.69,13.5 18.3,13.12L17,12.07V20A1,1 0 0,1 16,21M20.42,9.58L16.11,5.28C15,7 14,8.25 12,9.25C10,8.25 9,7 7.89,5.28L3.58,9.58L5,11L8,9H9V19H15V9H16L19,11L20.42,9.58Z\";\nexport var mdiTsunami = \"M18.67 17.63C14.87 20.43 12.55 18.03 12 17.63C11.34 18.12 9.08 20.39 5.33 17.63C3.43 19.03 2.65 19 2 19V21C3.16 21 4.3 20.68 5.33 20.07C7.39 21.29 9.94 21.29 12 20.07C14.06 21.29 16.61 21.29 18.67 20.07C19.7 20.68 20.84 21 22 21V19C21.34 19 20.5 19 18.67 17.63M19.33 12H22V10H19.33C17.5 10 16 8.5 16 6.67C16 5.65 16.38 4.93 17.09 3.33C15.72 3.12 15.09 3 14 3C7.36 3 2.15 8.03 2 14.5L2 16.5C3.16 16.5 4.3 16.18 5.33 15.57C7.39 16.79 9.94 16.79 12 15.57C14.06 16.79 16.61 16.79 18.67 15.57C19.7 16.18 20.84 16.5 22 16.5V14.5C21.34 14.5 20.5 14.5 18.67 13.13C14.87 15.93 12.55 13.53 12 13.13C11.1 13.8 11.46 13.54 11.09 13.76C10.39 12.82 10 11.7 10 10.5C10 7.92 11.77 5.76 14.21 5.17C14.08 5.68 14 6.19 14 6.67C14 9.61 16.39 12 19.33 12Z\";\nexport var mdiTumbleDryer = \"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M7,4A1,1 0 0,0 6,5A1,1 0 0,0 7,6A1,1 0 0,0 8,5A1,1 0 0,0 7,4M10,4A1,1 0 0,0 9,5A1,1 0 0,0 10,6A1,1 0 0,0 11,5A1,1 0 0,0 10,4M12,8A6,6 0 0,0 6,14A6,6 0 0,0 12,20A6,6 0 0,0 18,14A6,6 0 0,0 12,8M8.11,10.5H10C9.76,11.88 10,12.67 10.58,13.29C11.68,14.36 12.16,15.71 11.89,17.5H10C10.24,16.12 10,15.33 9.42,14.71C8.32,13.64 7.85,12.29 8.11,10.5M12.11,10.5H14C13.76,11.88 14,12.67 14.58,13.29C15.68,14.36 16.16,15.71 15.89,17.5H14C14.24,16.12 14,15.33 13.42,14.71C12.32,13.64 11.85,12.29 12.11,10.5Z\";\nexport var mdiTumbleDryerAlert = \"M4 2H16C17.11 2 18 2.9 18 4V20C18 21.11 17.11 22 16 22H4C2.9 22 2 21.11 2 20V4C2 2.9 2.9 2 4 2M5 4C4.45 4 4 4.45 4 5S4.45 6 5 6 6 5.55 6 5 5.55 4 5 4M8 4C7.45 4 7 4.45 7 5S7.45 6 8 6 9 5.55 9 5 8.55 4 8 4M10 8C6.69 8 4 10.69 4 14S6.69 20 10 20 16 17.31 16 14 13.31 8 10 8M6.11 10.5H8C7.76 11.88 8 12.67 8.58 13.29C9.68 14.36 10.16 15.71 9.89 17.5H8C8.24 16.12 8 15.33 7.42 14.71C6.32 13.64 5.85 12.29 6.11 10.5M10.11 10.5H12C11.76 11.88 12 12.67 12.58 13.29C13.68 14.36 14.16 15.71 13.89 17.5H12C12.24 16.12 12 15.33 11.42 14.71C10.32 13.64 9.85 12.29 10.11 10.5M20 15H22V17H20V15M20 7H22V13H20V7Z\";\nexport var mdiTumbleDryerOff = \"M22.11 21.46L2.39 1.73L1.11 3L4 5.89V20C4 21.11 4.89 22 6 22H18C18.58 22 19.1 21.75 19.46 21.35L20.84 22.73L22.11 21.46M12 20C8.69 20 6 17.31 6 14C6 12.32 6.7 10.8 7.82 9.71L8.61 10.5H8.11C7.85 12.29 8.32 13.64 9.42 14.71C10 15.33 10.24 16.12 10 17.5H11.89C12.16 15.71 11.68 14.36 10.58 13.29C10.22 12.91 10 12.44 9.95 11.84L14.03 15.92C14.11 16.35 14.11 16.86 14 17.5H15.61L16.29 18.18C15.2 19.3 13.69 20 12 20M11.25 8.05C11.5 8 11.75 8 12 8C15.31 8 18 10.69 18 14C18 14.25 18 14.5 17.95 14.75L20 16.8V4C20 2.9 19.11 2 18 2H6C5.76 2 5.54 2.05 5.33 2.13L11.25 8.05M10 4C10.55 4 11 4.45 11 5S10.55 6 10 6 9 5.55 9 5 9.45 4 10 4Z\";\nexport var mdiTune = \"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\";\nexport var mdiTuneVariant = \"M8 13C6.14 13 4.59 14.28 4.14 16H2V18H4.14C4.59 19.72 6.14 21 8 21S11.41 19.72 11.86 18H22V16H11.86C11.41 14.28 9.86 13 8 13M8 19C6.9 19 6 18.1 6 17C6 15.9 6.9 15 8 15S10 15.9 10 17C10 18.1 9.1 19 8 19M19.86 6C19.41 4.28 17.86 3 16 3S12.59 4.28 12.14 6H2V8H12.14C12.59 9.72 14.14 11 16 11S19.41 9.72 19.86 8H22V6H19.86M16 9C14.9 9 14 8.1 14 7C14 5.9 14.9 5 16 5S18 5.9 18 7C18 8.1 17.1 9 16 9Z\";\nexport var mdiTuneVertical = \"M7 3H5V9H7V3M19 3H17V13H19V3M3 13H5V21H7V13H9V11H3V13M15 7H13V3H11V7H9V9H15V7M11 21H13V11H11V21M15 15V17H17V21H19V17H21V15H15Z\";\nexport var mdiTuneVerticalVariant = \"M8 12.14V2H6V12.14C4.28 12.59 3 14.14 3 16S4.28 19.41 6 19.86V22H8V19.86C9.72 19.41 11 17.86 11 16S9.72 12.59 8 12.14M7 14C8.1 14 9 14.9 9 16S8.1 18 7 18C5.9 18 5 17.1 5 16S5.9 14 7 14M18 2H16V4.14C14.28 4.59 13 6.14 13 8S14.28 11.41 16 11.86V22H18V11.86C19.72 11.41 21 9.86 21 8S19.72 4.59 18 4.14V2M17 6C18.1 6 19 6.9 19 8S18.1 10 17 10C15.9 10 15 9.1 15 8S15.9 6 17 6Z\";\nexport var mdiTunnel = \"M12 2C6.5 2 2 6.5 2 12V22H22V12C22 6.5 17.5 2 12 2M7.1 5.69C8.21 4.83 9.54 4.25 11 4.07V6.09C10.09 6.24 9.25 6.6 8.53 7.11L7.1 5.69M15.47 7.11C14.75 6.6 13.91 6.24 13 6.09V4.07C14.46 4.25 15.79 4.83 16.9 5.69L15.47 7.11M5.69 7.1L7.11 8.53C6.6 9.25 6.24 10.09 6.09 11H4.07C4.25 9.54 4.83 8.21 5.69 7.1M6 13V15.5H4V13H6M4 20V17.5H6V20H4M16.89 8.53L18.31 7.1C19.17 8.21 19.75 9.54 19.93 11H17.91C17.76 10.09 17.4 9.25 16.89 8.53M18 13H20V15.5H18V13M18 20V17.5H20V20H18Z\";\nexport var mdiTunnelOutline = \"M12 2C6.5 2 2 6.5 2 12V22H22V12C22 6.5 17.5 2 12 2M15.47 7.11C14.75 6.6 13.91 6.24 13 6.09V4.07C14.46 4.25 15.79 4.83 16.9 5.69L15.47 7.11M8.53 7.11L7.1 5.69C8.21 4.83 9.54 4.25 11 4.07V6.09C10.09 6.24 9.25 6.6 8.53 7.11M5.69 7.1L7.11 8.53C6.6 9.25 6.24 10.09 6.09 11H4.07C4.25 9.54 4.83 8.21 5.69 7.1M6 13V15.5H4V13H6M4 20V17.5H6V20H4M16 20H8V12C8 9.79 9.79 8 12 8C14.21 8 16 9.79 16 12V20M16.89 8.53L18.31 7.1C19.17 8.21 19.75 9.54 19.93 11H17.91C17.76 10.09 17.4 9.25 16.89 8.53M18 13H20V15.5H18V13M18 20V17.5H20V20H18Z\";\nexport var mdiTurbine = \"M2 12C2 17.5 6.5 22 12 22S22 17.5 22 12 17.5 2 12 2 2 6.5 2 12M20 12C20 16.4 16.4 20 12 20S4 16.4 4 12 7.6 4 12 4 20 7.6 20 12M12.5 7L12.2 8.3L11.3 5C10.3 5.3 9.7 6.3 9.9 7.4L10.2 8.7L7.9 6.3C7.2 7 7.2 8.3 7.9 9L8.9 10L5.6 9.1C5.3 10.1 5.9 11.2 7 11.5L8.3 11.8L5 12.7C5.3 13.7 6.3 14.3 7.4 14.1L8.7 13.8L6.3 16.2C7.1 16.9 8.3 16.9 9 16.2L9.9 15.3L9 18.6C10 18.9 11.1 18.3 11.4 17.2L11.7 15.9L12.6 19.2C13.6 18.9 14.2 17.9 14 16.8L13.7 15.5L16.1 17.9C16.8 17.1 16.8 15.9 16.1 15.2L15.1 14L18.4 14.9C18.7 13.9 18.1 12.8 17 12.5L15.7 12.2L19 11.3C18.7 10.3 17.7 9.7 16.6 9.9L15.3 10.2L17.7 7.8C16.9 7.1 15.7 7.1 15 7.8L14.1 8.8L15 5.5C13.9 5.3 12.8 5.9 12.5 7M13.5 12C13.5 12.8 12.8 13.5 12 13.5S10.5 12.8 10.5 12 11.2 10.5 12 10.5 13.5 11.2 13.5 12Z\";\nexport var mdiTurkey = \"M10.5 19.44C9.75 19.8 8.9 20 8 20C4.69 20 2 17.31 2 14V9C2 5.69 4.69 3 8 3L10.5 7.58C8.1 8.81 6.5 11 6.5 13.5C6.5 16 8.11 18.2 10.5 19.44M16 18.94V20H17C17.55 20 18 20.45 18 21S17.55 22 17 22H14C13.45 22 13 21.55 13 21S13.45 20 14 20V18.94C10.61 18.56 8 16.27 8 13.5C8 10.46 11.13 8 15 8C15.19 8 15.37 8 15.56 8C14.84 6.63 14 5.23 14 4C14 2.9 14.9 2 16 2C18.21 2 20 3.79 20 6H18C18 6 22 9 22 13.5C22 16.27 19.39 18.56 16 18.94M16 4C16 4.55 16.45 5 17 5S18 4.55 18 4 17.55 3 17 3 16 3.45 16 4M17 12C17 10.9 16.11 10 15 10C12.79 10 11 11.79 11 14H15C16.11 14 17 13.11 17 12Z\";\nexport var mdiTurnstile = \"M22,22H16V11L10,5V2H22V22M9.17,6.17C8.42,6.92 8,7.94 8,9H2V11H8.55C8.9,11.6 9.4,12.1 10,12.45V19H12V13C13.06,13 14.08,12.58 14.83,11.83L9.17,6.17Z\";\nexport var mdiTurnstileOutline = \"M13.41,10.41C13.04,10.79 12.53,11 12,11A2,2 0 0,1 10,9C10,8.47 10.21,7.96 10.59,7.59L9.17,6.17C8.42,6.92 8,7.94 8,9H2V11H8.55C8.9,11.6 9.4,12.1 10,12.45V19H12V13C13.06,13 14.08,12.58 14.83,11.83L13.41,10.41M10,2V5L16,11V22H22V2H10M20,20H18V10.17L12,4.17V4H20V20Z\";\nexport var mdiTurtle = \"M8.47,5.95C8.95,5.67 9.47,5.44 10,5.28V4C10,2.9 10.87,2 11.97,1.97C13.13,2 14,2.9 14,4V5.28C14.53,5.45 15.05,5.67 15.53,5.95L13.93,8.07H10.07L8.47,5.95M19,12C19,12.5 18.95,12.95 18.86,13.4L16.33,12.62L15.14,8.96L16.74,6.85C17.17,7.25 17.55,7.7 17.88,8.2C18.67,8.13 19.43,8.25 20.11,8.59C21.14,9.12 21.84,10.13 22,11.28L19,11.64C19,11.76 19,11.88 19,12M5,12C5,11.88 5,11.76 5,11.65L2,11.28C2.16,10.13 2.86,9.12 3.89,8.59C4.57,8.25 5.34,8.13 6.08,8.26C6.41,7.75 6.79,7.28 7.24,6.87L8.86,8.95L7.67,12.62L5.14,13.4C5.05,12.95 5,12.5 5,12M10.24,9.57H13.76L14.85,12.93L12,15L9.15,12.93L10.24,9.57M8.13,14.05L11.25,16.31V18.96C10.68,18.9 10.13,18.77 9.62,18.58L8.39,21.34C7.33,20.87 6.57,19.9 6.37,18.76C6.23,18 6.35,17.24 6.69,16.56C6.24,16.04 5.87,15.46 5.59,14.82L8.13,14.05M15.87,14.05L18.41,14.82C18.13,15.46 17.76,16.04 17.31,16.56C17.65,17.24 17.77,18 17.64,18.76C17.43,19.9 16.67,20.87 15.61,21.34L14.39,18.58C13.86,18.77 13.33,18.94 12.75,19V16.31L15.87,14.05Z\";\nexport var mdiTwitch = \"M11.64 5.93H13.07V10.21H11.64M15.57 5.93H17V10.21H15.57M7 2L3.43 5.57V18.43H7.71V22L11.29 18.43H14.14L20.57 12V2M19.14 11.29L16.29 14.14H13.43L10.93 16.64V14.14H7.71V3.43H19.14Z\";\nexport var mdiTwitter = \"M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z\";\nexport var mdiTwoFactorAuthentication = \"M2,7V9H6V11H4A2,2 0 0,0 2,13V17H8V15H4V13H6A2,2 0 0,0 8,11V9C8,7.89 7.1,7 6,7H2M9,7V17H11V13H14V11H11V9H15V7H9M18,7A2,2 0 0,0 16,9V17H18V14H20V17H22V9A2,2 0 0,0 20,7H18M18,9H20V12H18V9Z\";\nexport var mdiTypewriter = \"M20 13H16C16 14.1 15.1 15 14 15H10C8.9 15 8 14.1 8 13H4L2 18V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V18M6 20C5.11 20 4.66 18.92 5.29 18.29C5.92 17.66 7 18.11 7 19C7 19.55 6.55 20 6 20M10 20C9.11 20 8.66 18.92 9.29 18.29C9.92 17.66 11 18.11 11 19C11 19.55 10.55 20 10 20M14 20C13.11 20 12.66 18.92 13.29 18.29C13.92 17.66 15 18.11 15 19C15 19.55 14.55 20 14 20M18 20C17.11 20 16.66 18.92 17.29 18.29C17.92 17.66 19 18.11 19 19C19 19.55 18.55 20 18 20M18 10V3H6V10H3V12H21V10M8 5H16V6H8M8 7H14V8H8\";\nexport var mdiUbisoft = \"M11.41,2C5.21,2 2.53,7.53 2.53,7.53L3.32,8.09C3.32,8.09 2.33,10 2.35,12.4C2.35,17.34 6.29,22 12.07,22C17.33,22 21.67,17.71 21.67,12.41C21.67,5.5 16.31,2 11.41,2M11.47,3.69C16.31,3.69 20.07,7.6 20.07,12.14C20.07,16.95 16.45,20.3 12.23,20.3C9.13,20.3 6.33,17.94 6.33,14.7C6.33,12.82 7.32,11.5 8.44,10.82L8.6,11C8.3,11.24 7.43,12.64 7.43,14C7.43,16.56 9.43,18.33 11.95,18.33C15.16,18.33 17.3,15.59 17.3,12.41C17.3,8.71 14.03,5.57 10.1,5.57C7.93,5.57 6.09,6.5 5.03,7.33L4.86,7.18C6.25,5.04 8.65,3.69 11.47,3.69M10,7.23C12.53,7.23 14.97,8.89 15.59,11.25L15.36,11.33C14.27,9.88 12.47,8.68 10.35,8.68C6.44,8.68 4.39,12.23 4.69,15.19L4.46,15.28C4.46,15.28 4.03,14.33 4.03,13.2C4.03,9.93 6.71,7.23 10,7.23M11.68,11.33C12.86,11.33 13.81,12.3 13.81,13.44C13.81,14.38 13.21,14.94 13.21,14.94L13.92,15.45C13.92,15.45 13.21,16.57 11.76,16.57C10.37,16.57 9.13,15.44 9.13,13.93C9.13,12.38 10.47,11.33 11.68,11.33Z\";\nexport var mdiUbuntu = \"M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M14.34,7.74C14.92,8.07 15.65,7.87 16,7.3C16.31,6.73 16.12,6 15.54,5.66C14.97,5.33 14.23,5.5 13.9,6.1C13.57,6.67 13.77,7.41 14.34,7.74M11.88,15.5C11.35,15.5 10.85,15.39 10.41,15.18L9.57,16.68C10.27,17 11.05,17.22 11.88,17.22C12.37,17.22 12.83,17.15 13.28,17.03C13.36,16.54 13.64,16.1 14.1,15.84C14.56,15.57 15.08,15.55 15.54,15.72C16.43,14.85 17,13.66 17.09,12.33L15.38,12.31C15.22,14.1 13.72,15.5 11.88,15.5M11.88,8.5C13.72,8.5 15.22,9.89 15.38,11.69L17.09,11.66C17,10.34 16.43,9.15 15.54,8.28C15.08,8.45 14.55,8.42 14.1,8.16C13.64,7.9 13.36,7.45 13.28,6.97C12.83,6.85 12.37,6.78 11.88,6.78C11.05,6.78 10.27,6.97 9.57,7.32L10.41,8.82C10.85,8.61 11.35,8.5 11.88,8.5M8.37,12C8.37,10.81 8.96,9.76 9.86,9.13L9,7.65C7.94,8.36 7.15,9.43 6.83,10.69C7.21,11 7.45,11.47 7.45,12C7.45,12.53 7.21,13 6.83,13.31C7.15,14.56 7.94,15.64 9,16.34L9.86,14.87C8.96,14.24 8.37,13.19 8.37,12M14.34,16.26C13.77,16.59 13.57,17.32 13.9,17.9C14.23,18.47 14.97,18.67 15.54,18.34C16.12,18 16.31,17.27 16,16.7C15.65,16.12 14.92,15.93 14.34,16.26M5.76,10.8C5.1,10.8 4.56,11.34 4.56,12C4.56,12.66 5.1,13.2 5.76,13.2C6.43,13.2 6.96,12.66 6.96,12C6.96,11.34 6.43,10.8 5.76,10.8Z\";\nexport var mdiUfo = \"M15.94 10.28C15.66 7.87 14 6 12 6S8.34 7.87 8.06 10.28C4.5 10.82 2 12.06 2 13.5C2 15.43 6.5 17 12 17S22 15.43 22 13.5C22 12.06 19.5 10.82 15.94 10.28Z\";\nexport var mdiUfoOutline = \"M17 10.54C16.78 7.44 14.63 5 12 5S7.22 7.44 7 10.54C4 11.23 2 12.5 2 14C2 16.21 6.5 18 12 18S22 16.21 22 14C22 12.5 20 11.23 17 10.54M14.93 11.84C13.03 12.05 10.97 12.05 9.07 11.84C9.03 11.56 9 11.28 9 11C9 8.8 10.35 7 12 7S15 8.8 15 11C15 11.28 15 11.56 14.93 11.84Z\";\nexport var mdiUltraHighDefinition = \"M9,7H11V11H13V7H15V17H13V13H11V17H9V7M17,7H20A3,3 0 0,1 23,10V14A3,3 0 0,1 20,17H17V7M20,15A1,1 0 0,0 21,14V10A1,1 0 0,0 20,9H19V15H20M7,14A3,3 0 0,1 4,17A3,3 0 0,1 1,14V7H3V14A1,1 0 0,0 4,15A1,1 0 0,0 5,14V7H7V14Z\";\nexport var mdiUmbraco = \"M8.6,8.6L7.17,8.38C6.5,11.67 6.46,14.24 7.61,15.5C8.6,16.61 11.89,16.61 11.89,16.61C11.89,16.61 15.29,16.61 16.28,15.5C17.43,14.24 17.38,11.67 16.72,8.38L15.29,8.6C15.29,8.6 16.54,13.88 14.69,14.69C13.81,15.07 11.89,15.07 11.89,15.07C11.89,15.07 10.08,15.07 9.2,14.69C7.35,13.88 8.6,8.6 8.6,8.6M12,3A9,9 0 0,1 21,12A9,9 0 0,1 12,21A9,9 0 0,1 3,12A9,9 0 0,1 12,3Z\";\nexport var mdiUmbrella = \"M12,2A9,9 0 0,1 21,11H13V19A3,3 0 0,1 10,22A3,3 0 0,1 7,19V18H9V19A1,1 0 0,0 10,20A1,1 0 0,0 11,19V11H3A9,9 0 0,1 12,2Z\";\nexport var mdiUmbrellaBeach = \"M13.13 14.56L14.56 13.13L21 19.57L19.57 21L13.13 14.56M17.42 8.83L20.28 5.97C16.33 2 9.93 2 6 5.95C9.91 4.65 14.29 5.7 17.42 8.83M5.95 6C2 9.93 2 16.33 5.97 20.28L8.83 17.42C5.7 14.29 4.65 9.91 5.95 6M5.97 5.96L5.96 5.97C5.58 9 7.13 12.85 10.26 16L16 10.26C12.86 7.13 9 5.58 5.97 5.96Z\";\nexport var mdiUmbrellaBeachOutline = \"M21 19.57L19.57 21L13.13 14.56L14.56 13.13L21 19.57M13.12 3C10.54 3 7.96 4 6 5.95L5.97 5.96C2 9.91 2 16.32 5.97 20.27L20.27 5.96C18.3 4 15.71 3 13.12 3M6.14 17.27C5.4 16.03 5 14.61 5 13.12C5 12.19 5.16 11.3 5.46 10.45C5.65 12.36 6.35 14.24 7.53 15.89L6.14 17.27M9 14.43C7.63 12.38 7.12 9.93 7.6 7.6C8.18 7.5 8.76 7.42 9.35 7.42C11.15 7.42 12.9 7.97 14.43 9L9 14.43M10.45 5.46C11.3 5.16 12.19 5 13.12 5C14.61 5 16.03 5.4 17.27 6.14L15.88 7.53C14.23 6.35 12.36 5.65 10.45 5.46Z\";\nexport var mdiUmbrellaClosed = \"M12 2C11.6 2 11.3 2.2 11.1 2.6L6.5 15H11V19C11 19.6 10.6 20 10 20C9.4 20 9 19.6 9 19V18H7V19C7 20.7 8.3 22 10 22S13 20.7 13 19V15H17.5L12.9 2.6C12.7 2.2 12.4 2 12 2Z\";\nexport var mdiUmbrellaClosedOutline = \"M12 2C12.4 2 12.8 2.2 12.9 2.6L17.5 15H13V19C13 20.7 11.7 22 10 22S7 20.7 7 19V18H9V19C9 19.6 9.4 20 10 20C10.6 20 11 19.6 11 19V15H6.5L11.1 2.6C11.2 2.2 11.6 2 12 2M12 5.9L9.4 13H14.7L12 5.9Z\";\nexport var mdiUmbrellaClosedVariant = \"M15 7L13 6V3.5C13 3.2 13.2 3 13.5 3S14 3.2 14 3.5V4H16V3.5C16 2.1 14.9 1 13.5 1S11 2.1 11 3.5V6L9 7L6 6L11.1 21.3C11.4 22.2 12.7 22.2 13 21.3C14.6 16.2 18 6 18 6L15 7M11 15L9 8.9L9.7 9.1L11 8.1V15M13 8.1L14.3 9.1L15 8.9L13 15V8.1Z\";\nexport var mdiUmbrellaOutline = \"M12,4C8.9,4 6.18,6.03 5.3,9H18.7C17.82,6.04 15.09,4 12,4M12,2A9,9 0 0,1 21,11H13V19A3,3 0 0,1 10,22A3,3 0 0,1 7,19V18H9V19A1,1 0 0,0 10,20A1,1 0 0,0 11,19V11H3A9,9 0 0,1 12,2Z\";\nexport var mdiUnderwearOutline = \"M3 4C2.45 4 2 4.45 2 5V10C2 15.5 6.5 20 12 20C17.5 20 22 15.5 22 10V5C22 4.45 21.55 4 21 4H3M20 6V8H4V6H20M4 10H20C20 10.34 20 10.67 19.94 11C16.12 11.03 13.03 14.12 13 17.94C12.67 18 12.34 18 12 18C11.66 18 11.33 18 11 17.94C10.97 14.12 7.88 11.03 4.06 11C4 10.67 4 10.34 4 10M15.04 17.4C15.31 15.12 17.12 13.31 19.41 13.04C18.59 15 17 16.59 15.03 17.41M4.6 13.04C6.88 13.31 8.7 15.12 8.97 17.41C7 16.59 5.41 15 4.6 13.03Z\";\nexport var mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport var mdiUndoVariant = \"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z\";\nexport var mdiUnfoldLessHorizontal = \"M16.59,5.41L15.17,4L12,7.17L8.83,4L7.41,5.41L12,10M7.41,18.59L8.83,20L12,16.83L15.17,20L16.58,18.59L12,14L7.41,18.59Z\";\nexport var mdiUnfoldLessVertical = \"M5.41,7.41L10,12L5.41,16.59L4,15.17L7.17,12L4,8.83L5.41,7.41M18.59,16.59L14,12L18.59,7.42L20,8.83L16.83,12L20,15.17L18.59,16.59Z\";\nexport var mdiUnfoldMoreHorizontal = \"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\";\nexport var mdiUnfoldMoreVertical = \"M18.17,12L15,8.83L16.41,7.41L21,12L16.41,16.58L15,15.17L18.17,12M5.83,12L9,15.17L7.59,16.59L3,12L7.59,7.42L9,8.83L5.83,12Z\";\nexport var mdiUngroup = \"M2,2H6V3H13V2H17V6H16V9H18V8H22V12H21V18H22V22H18V21H12V22H8V18H9V16H6V17H2V13H3V6H2V2M18,12V11H16V13H17V17H13V16H11V18H12V19H18V18H19V12H18M13,6V5H6V6H5V13H6V14H9V12H8V8H12V9H14V6H13M12,12H11V14H13V13H14V11H12V12Z\";\nexport var mdiUnicode = \"M22 6A1.46 1.46 0 0 1 20.54 7.44A1.46 1.46 0 0 1 19.09 6A1.46 1.46 0 0 1 20.54 4.5A1.46 1.46 0 0 1 22 6M21.56 8.86H19.53C19.4 8.85 19.34 8.91 19.34 9V12.59C19.34 13.08 19.34 13.5 19.35 13.86L19.37 14.76C19.38 15 19.39 15.21 19.39 15.39C19.4 15.56 19.4 15.72 19.4 15.86H19.38C19.26 15.6 19.07 15.22 18.82 14.74C18.58 14.27 18.29 13.72 17.97 13.11C17.64 12.5 17.29 11.84 16.92 11.15C16.55 10.47 16.18 9.78 15.81 9.11C15.45 8.43 15.09 7.78 14.75 7.16C14.4 6.54 14.1 6 13.85 5.54C13.82 5.5 13.79 5.44 13.77 5.42C13.74 5.4 13.68 5.39 13.6 5.39H10.62C10.5 5.39 10.47 5.44 10.47 5.54H10.5C10.47 5.56 10.47 5.57 10.47 5.58V13.84C10.47 14.5 10.4 15 10.25 15.45C10.1 15.88 9.9 16.23 9.64 16.5C9.38 16.75 9.07 16.93 8.72 17.05C8.36 17.16 8 17.22 7.56 17.22C6.54 17.22 5.79 16.91 5.3 16.31C4.8 15.7 4.56 14.89 4.56 13.88V5.56C4.56 5.45 4.5 5.39 4.39 5.39H2.17C2.06 5.39 2 5.45 2 5.58V14.07C2 15 2.13 15.78 2.38 16.46C2.63 17.13 3 17.69 3.5 18.14C3.96 18.58 4.53 18.92 5.21 19.14C5.89 19.36 6.64 19.5 7.47 19.5C8.24 19.5 8.97 19.38 9.65 19.17C10.34 18.97 10.93 18.64 11.42 18.2C11.91 17.75 12.3 17.18 12.59 16.5C12.88 15.79 13.03 14.95 13.03 13.96V8.62C13.14 8.86 13.28 9.15 13.44 9.47C13.73 10.05 14.05 10.68 14.42 11.38C14.79 12.08 15.17 12.8 15.58 13.56C16 14.32 16.39 15.06 16.77 15.76C17.16 16.46 17.5 17.11 17.83 17.7C18.15 18.29 18.4 18.76 18.58 19.12C18.63 19.22 18.73 19.27 18.85 19.27H21.54C21.68 19.27 21.75 19.2 21.75 19.08V9.05C21.75 8.92 21.68 8.85 21.56 8.85Z\";\nexport var mdiUnicorn = \"M22 5L21.11 6.34C21.65 6.7 22 7.31 22 8V11.5L20.5 12L18.96 9.54C18.83 9.33 18.5 9.42 18.5 9.67V13.25C18.5 14.23 18.11 15.11 17.5 15.78V22H15V17C14.92 17 14.84 17 14.75 17C14.54 17 14.33 16.97 14.13 16.94L9.45 16.16L8.57 18.12L9.54 22H6.96L6.04 18.3C5.97 18.03 6 17.74 6.11 17.5L7 15.5C6.12 14.92 5.53 13.94 5.5 12.81C5.46 12.96 5.44 13.18 5.47 13.5C5.5 13.94 5.61 14.59 5.54 15.31C5.5 16.03 5.18 16.77 4.76 17.26C4.32 17.75 3.85 18.09 3.35 18.35L2.65 17.65C2.84 17.18 3.03 16.76 3.07 16.37C3.13 16 3.06 15.7 2.95 15.43L2.42 14.3C2.21 13.79 1.95 13.05 2 12.18C2.03 11.33 2.5 10.22 3.39 9.61C4.29 9 5.26 8.91 6.05 9.08C6.55 9.18 7.06 9.42 7.5 9.76C7.87 9.59 8.3 9.5 8.75 9.5H14.5V9C14.5 6.79 16.29 5 18.5 5L22 2L21 5H22Z\";\nexport var mdiUnicornVariant = \"M20 12V19L17 20L14 15.33C13.71 14.89 13 15.14 13.08 15.67L14 23L4 18L4.96 12.75C5.56 9.42 8.46 7 11.84 7H13L19 1L17 7H20L18.42 9.37C19.36 9.88 20 10.86 20 12Z\";\nexport var mdiUnicycle = \"M13 9.09V5H14C14.55 5 15 4.55 15 4S14.55 3 14 3H10C9.45 3 9 3.45 9 4S9.45 5 10 5H11V9.09C8.16 9.57 6 12.03 6 15C6 18.31 8.69 21 12 21S18 18.31 18 15C18 12.03 15.84 9.57 13 9.09M12 19C9.79 19 8 17.21 8 15C8 13.14 9.28 11.59 11 11.14V16H13V11.14C14.72 11.59 16 13.14 16 15C16 17.21 14.21 19 12 19Z\";\nexport var mdiUnity = \"M10.11,17H7.5L2.59,12L7.5,7H10.11L11.42,4.74L18.21,3L20.08,9.74L18.77,12L20.08,14.26L18.21,21L11.42,19.26L10.11,17M10.25,16.75L15.38,18.13L12.42,13H6.5L10.25,16.75M17.12,17.13L18.5,12L17.12,6.87L14.15,12L17.12,17.13M10.25,7.25L6.5,11H12.42L15.38,5.87L10.25,7.25Z\";\nexport var mdiUnreal = \"M2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12M5.24,18.76C3.43,16.95 2.44,14.55 2.44,12C2.44,9.45 3.43,7.05 5.24,5.24C7.05,3.43 9.45,2.44 12,2.44C14.55,2.44 16.95,3.43 18.76,5.24C20.57,7.05 21.56,9.45 21.56,12C21.56,14.55 20.57,16.95 18.76,18.76C16.95,20.57 14.55,21.56 12,21.56C9.45,21.56 7.05,20.57 5.24,18.76M6.35,9.5C4.34,11.79 4.73,13.68 4.73,13.68C4.73,13.68 5.28,12.38 6.61,11C7.25,10.37 7.72,10.15 8.04,10.15C8.4,10.15 8.57,10.41 8.57,10.65V15.29C8.57,15.75 8.27,15.85 8,15.84C7.77,15.84 7.55,15.76 7.55,15.76C8.92,17.73 12.19,18 12.19,18L13.63,16.5H13.67L15,17.63C17.39,16.21 18.55,13.58 18.55,13.58C17.5,14.7 16.79,14.97 16.39,14.96C16.03,14.96 15.88,14.75 15.88,14.75C15.87,14.65 15.82,8.9 15.89,8.9C16.31,8.13 17.63,6.56 17.63,6.56C15.16,7.05 13.81,8.66 13.81,8.66C13.41,8.35 12.59,8.4 12.59,8.4C12.97,8.61 13.35,9.21 13.35,9.72V14.65C13.35,14.65 12.5,15.38 11.88,15.38C11.5,15.38 11.27,15.17 11.14,15C11.05,14.88 11,14.79 11,14.79V8.69C10.93,8.75 10.82,8.8 10.71,8.8C10.57,8.79 10.43,8.73 10.34,8.53C10.26,8.38 10.22,8.15 10.22,7.83C10.22,6.7 11.5,5.96 11.5,5.96C9.87,6.39 8.36,7.22 6.35,9.5\";\nexport var mdiUpdate = \"M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z\";\nexport var mdiUpload = \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\";\nexport var mdiUploadBox = \"M5 3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3M16 17V15H8V17H16M16 11L12 7L8 11H10.5V14H13.5V11H16Z\";\nexport var mdiUploadBoxOutline = \"M8 17V15H16V17H8M16 11L12 7L8 11H10.5V14H13.5V11H16M5 3H19C20.11 3 21 3.9 21 5V19C21 20.11 20.11 21 19 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3M5 5V19H19V5H5Z\";\nexport var mdiUploadCircle = \"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2ZM16 17V15H8V17H16ZM16 10L12 6L8 10H10.5V14H13.5V10H16Z\";\nexport var mdiUploadCircleOutline = \"M8 17V15H16V17H8M16 10L12 6L8 10H10.5V14H13.5V10H16M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4Z\";\nexport var mdiUploadLock = \"M22 22H17C16.5 22 16 21.5 16 21V17C16 16.5 16.5 16 17 16V14.5C17 13.1 18.1 12 19.5 12C20.9 12 22 13.1 22 14.5V16C22.5 16 23 16.5 23 17V21C23 21.5 22.5 22 22 22M14 20H5V18H14V20M21 16V14.5C21 13.7 20.3 13 19.5 13C18.7 13 18 13.7 18 14.5V16H21M15 16H9V10H5L12 3L19 10H15V16Z\";\nexport var mdiUploadLockOutline = \"M22 22H17C16.5 22 16 21.5 16 21V17C16 16.5 16.5 16 17 16V14.5C17 13.1 18.1 12 19.5 12C20.9 12 22 13.1 22 14.5V16C22.5 16 23 16.5 23 17V21C23 21.5 22.5 22 22 22M5 18H14V20H5V18M21 16V14.5C21 13.7 20.3 13 19.5 13C18.7 13 18 13.7 18 14.5V16H21M9 16V10H5L12 3L19 10H15V16H9M9.83 8H11V14H13V8H14.17L12 5.83L9.83 8Z\";\nexport var mdiUploadMultiple = \"M9,14V8H5L12,1L19,8H15V14H9M5,18V16H19V18H5M19,20H5V22H19V20Z\";\nexport var mdiUploadMultipleOutline = \"M19 8H15V14H9V8H5L12 1L19 8M14.17 6L12 3.83L9.83 6H11V12H13V6H14.17M5 16V18H19V16H5M19 20V22H5V20H19Z\";\nexport var mdiUploadNetwork = \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17M12,5.5L7.5,10H11V14H13V10H16.5L12,5.5Z\";\nexport var mdiUploadNetworkOutline = \"M15,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7M12,6L8,10H11V14H13V10H16L12,6Z\";\nexport var mdiUploadOff = \"M22.11 21.46L2.39 1.73L1.11 3L6.56 8.45L5 10H8.11L9 10.89V16H14.11L16.11 18H5V20H18.11L20.84 22.73L22.11 21.46M15 10H19L12 3L9.1 5.9L15 11.8V10Z\";\nexport var mdiUploadOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L6.56 8.45L5 10H8.11L9 10.89V16H14.11L16.11 18H5V20H18.11L20.84 22.73L22.11 21.46M11 14V12.89L12.11 14H11M12 5.8L14.2 8H13V9.8L15 11.8V10H19L12 3L9.1 5.9L10.5 7.3L12 5.8Z\";\nexport var mdiUploadOutline = \"M9,10V16H15V10H19L12,3L5,10H9M12,5.8L14.2,8H13V14H11V8H9.8L12,5.8M19,18H5V20H19V18Z\";\nexport var mdiUsb = \"M15,7V11H16V13H13V5H15L12,1L9,5H11V13H8V10.93C8.7,10.56 9.2,9.85 9.2,9C9.2,7.78 8.21,6.8 7,6.8C5.78,6.8 4.8,7.78 4.8,9C4.8,9.85 5.3,10.56 6,10.93V13A2,2 0 0,0 8,15H11V18.05C10.29,18.41 9.8,19.15 9.8,20A2.2,2.2 0 0,0 12,22.2A2.2,2.2 0 0,0 14.2,20C14.2,19.15 13.71,18.41 13,18.05V15H16A2,2 0 0,0 18,13V11H19V7H15Z\";\nexport var mdiUsbCPort = \"M6 12H18C18.55 12 19 12.45 19 13C19 13.55 18.55 14 18 14H6C5.45 14 5 13.55 5 13C5 12.45 5.45 12 6 12M6 10C4.34 10 3 11.34 3 13C3 14.66 4.34 16 6 16H18C19.66 16 21 14.66 21 13C21 11.34 19.66 10 18 10H6M6 8H18C20.76 8 23 10.24 23 13C23 15.76 20.76 18 18 18H6C3.24 18 1 15.76 1 13C1 10.24 3.24 8 6 8Z\";\nexport var mdiUsbFlashDrive = \"M8 15C8.55 15 9 15.45 9 16C9 16.55 8.55 17 8 17C7.45 17 7 16.55 7 16C7 15.45 7.45 15 8 15M15.07 4.69L16.5 6.1L15.07 7.5L13.66 6.1L15.07 4.69M17.9 7.5L19.31 8.93L17.9 10.34L16.5 8.93L17.9 7.5M8 13C6.34 13 5 14.34 5 16C5 17.66 6.34 19 8 19C9.66 19 11 17.66 11 16C11 14.34 9.66 13 8 13M9.77 4.33L10.5 5.08L14.29 1.29C14.47 1.11 14.72 1 15 1C15.28 1 15.53 1.11 15.71 1.29L22.78 8.36L22.78 8.37C22.92 8.54 23 8.76 23 9C23 9.3 22.87 9.57 22.66 9.76L22.66 9.76L18.93 13.5L19.67 14.23L12.95 20.95C11.68 22.22 9.93 23 8 23C4.13 23 1 19.87 1 16C1 14.07 1.78 12.32 3.05 11.05L9.77 4.33M20.59 9L15 3.41L11.93 6.5L17.5 12.08L20.59 9Z\";\nexport var mdiUsbFlashDriveOutline = \"M8 13C9.66 13 11 14.34 11 16C11 17.66 9.66 19 8 19C6.34 19 5 17.66 5 16C5 14.34 6.34 13 8 13M8 15C7.45 15 7 15.45 7 16C7 16.55 7.45 17 8 17C8.55 17 9 16.55 9 16C9 15.45 8.55 15 8 15M9.77 4.33L10.5 5.08L14.29 1.29C14.47 1.11 14.72 1 15 1C15.28 1 15.53 1.11 15.71 1.29L22.78 8.36L22.78 8.37C22.92 8.54 23 8.76 23 9C23 9.3 22.87 9.57 22.66 9.76L22.66 9.76L18.93 13.5L19.67 14.23L12.95 20.95C11.68 22.22 9.93 23 8 23C4.13 23 1 19.87 1 16C1 14.07 1.78 12.32 3.05 11.05L9.77 4.33M11.54 19.54L16.84 14.23L9.77 7.16L4.46 12.46C3.56 13.37 3 14.62 3 16C3 18.76 5.24 21 8 21C9.38 21 10.63 20.44 11.54 19.54M15.07 4.69L16.5 6.1L15.07 7.5L13.66 6.1L15.07 4.69M17.9 7.5L19.31 8.93L17.9 10.34L16.5 8.93L17.9 7.5M20.59 9L15 3.41L11.93 6.5L17.5 12.08L20.59 9Z\";\nexport var mdiUsbPort = \"M8 2C6.9 2 6 2.9 6 4V12H5V16L9 20V22H15V20L19 16V12H18V4C18 2.9 17.11 2 16 2M8 4H16V12H8M9 7V9H11V7M13 7V9H15V7Z\";\nexport var mdiVacuum = \"M23 20V22H16L16 20H18.46L12 4.61C11.81 4.14 11.5 3.76 11.06 3.46S10.14 3 9.61 3C8.9 3 8.28 3.27 7.76 3.79S7 4.92 7 5.64L7 9H8C10.21 9 12 10.79 12 13V22H8C8.61 21.16 9 20.13 9 19C9 16.24 6.76 14 4 14C3.29 14 2.61 14.15 2 14.42V9H5V5.64C5 4.8 5.23 4 5.63 3.32C6.04 2.62 6.59 2.06 7.3 1.63C8 1.21 8.77 1 9.61 1C10.55 1 11.4 1.26 12.16 1.77S13.5 2.97 13.87 3.81L20.66 20H23M7 19C7 20.66 5.66 22 4 22S1 20.66 1 19 2.34 16 4 16 7 17.34 7 19M5 19C5 18.45 4.55 18 4 18S3 18.45 3 19 3.45 20 4 20 5 19.55 5 19Z\";\nexport var mdiVacuumOutline = \"M20.66 20L13.87 3.81C13.5 2.97 12.93 2.29 12.16 1.77C11.4 1.26 10.55 1 9.61 1C8.77 1 8 1.21 7.3 1.63S6.04 2.62 5.63 3.32 5 4.8 5 5.64L5.03 9H2.03V14.45C2.65 14.17 3.31 14.03 4 14.03V11.03H9C9.57 11.03 10.04 11.23 10.43 11.62C10.82 12 11 12.47 11 13V20.03H8.91C8.76 20.75 8.44 21.41 7.97 22H13V13C13 12.28 12.8 11.62 12.45 11S11.61 9.91 11 9.56C10.42 9.2 9.75 9 9 9H7V5.64C7 4.92 7.25 4.31 7.76 3.79S8.89 3 9.61 3C10.14 3 10.63 3.16 11.06 3.46S11.81 4.14 12 4.61L18.46 20L16 20.03V22H23V20.03L20.66 20M4 18C4.55 18 5 18.45 5 19S4.55 20 4 20 3 19.55 3 19 3.45 18 4 18M4 16C2.34 16 1 17.34 1 19S2.34 22 4 22 7 20.66 7 19 5.66 16 4 16Z\";\nexport var mdiValve = \"M4 22H2V2H4M22 2H20V22H22M17.24 5.34L13.24 9.34A3 3 0 0 0 9.24 13.34L5.24 17.34L6.66 18.76L10.66 14.76A3 3 0 0 0 14.66 10.76L18.66 6.76Z\";\nexport var mdiValveClosed = \"M22 2V22H20V13H14.82A3 3 0 0 1 9.18 13H4V22H2V2H4V11H9.18A3 3 0 0 1 14.82 11H20V2Z\";\nexport var mdiValveOpen = \"M4 22H2V2H4M22 2H20V22H22M11 4V9.18A3 3 0 0 0 11 14.82V20H13V14.82A3 3 0 0 0 13 9.18V4Z\";\nexport var mdiVanPassenger = \"M3,7C1.89,7 1,7.89 1,9V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V13C23,11.89 22.11,11 21,11L18,7H3M3,8.5H7V11H3V8.5M9,8.5H13V11H9V8.5M15,8.5H17.5L19.46,11H15V8.5M6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5M18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5Z\";\nexport var mdiVanUtility = \"M3,7C1.89,7 1,7.89 1,9V17H3A3,3 0 0,0 6,20A3,3 0 0,0 9,17H15A3,3 0 0,0 18,20A3,3 0 0,0 21,17H23V13C23,11.89 22.11,11 21,11L18,7H3M15,8.5H17.5L19.46,11H15V8.5M6,15.5A1.5,1.5 0 0,1 7.5,17A1.5,1.5 0 0,1 6,18.5A1.5,1.5 0 0,1 4.5,17A1.5,1.5 0 0,1 6,15.5M18,15.5A1.5,1.5 0 0,1 19.5,17A1.5,1.5 0 0,1 18,18.5A1.5,1.5 0 0,1 16.5,17A1.5,1.5 0 0,1 18,15.5Z\";\nexport var mdiVanish = \"M16,13V11H21V13H16M14.83,7.76L17.66,4.93L19.07,6.34L16.24,9.17L14.83,7.76M11,16H13V21H11V16M11,3H13V8H11V3M4.93,17.66L7.76,14.83L9.17,16.24L6.34,19.07L4.93,17.66M4.93,6.34L6.34,4.93L9.17,7.76L7.76,9.17L4.93,6.34M8,13H3V11H8V13M19.07,17.66L17.66,19.07L14.83,16.24L16.24,14.83L19.07,17.66Z\";\nexport var mdiVanishQuarter = \"M11 3H13V8H11V3M4.9 6.3L6.3 4.9L9.1 7.7L7.8 9.2L4.9 6.3M8 13H3V11H8V13\";\nexport var mdiVanityLight = \"M22 20H16C16 18.34 17.34 13 19 13S22 18.34 22 20M12 13C10.34 13 9 18.34 9 20H15C15 18.34 13.66 13 12 13M5 13C3.34 13 2 18.34 2 20H8C8 18.34 6.66 13 5 13M14.82 6C14.26 4.44 12.53 3.64 11 4.2C10.14 4.5 9.5 5.17 9.18 6H2V8H4V12H6V8H9.18C9.5 8.85 10.15 9.5 11 9.82V12H13V9.82C13.85 9.5 14.5 8.85 14.82 8H18V12H20V8H22V6H14.82Z\";\nexport var mdiVariable = \"M20.41,3C21.8,5.71 22.35,8.84 22,12C21.8,15.16 20.7,18.29 18.83,21L17.3,20C18.91,17.57 19.85,14.8 20,12C20.34,9.2 19.89,6.43 18.7,4L20.41,3M5.17,3L6.7,4C5.09,6.43 4.15,9.2 4,12C3.66,14.8 4.12,17.57 5.3,20L3.61,21C2.21,18.29 1.65,15.17 2,12C2.2,8.84 3.3,5.71 5.17,3M12.08,10.68L14.4,7.45H16.93L13.15,12.45L15.35,17.37H13.09L11.71,14L9.28,17.33H6.76L10.66,12.21L8.53,7.45H10.8L12.08,10.68Z\";\nexport var mdiVariableBox = \"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7.4 18C5.9 16.5 5 14.3 5 12S5.9 7.5 7.4 6L9 6.7C7.7 7.9 7 9.9 7 12S7.7 16.1 9 17.3L7.4 18M12.7 15L11.9 13L10.5 15H9L11.3 11.9L10 9H11.3L12.1 11L13.5 9H15L12.8 12L14.1 15H12.7M16.6 18L15 17.3C16.3 16 17 14.1 17 12S16.3 7.9 15 6.7L16.6 6C18.1 7.5 19 9.7 19 12S18.1 16.5 16.6 18Z\";\nexport var mdiVectorArrangeAbove = \"M3,1C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16C6.67,16 10.33,16 14,16C15.11,16 16,15.11 16,14C16,10.33 16,6.67 16,3C16,1.89 15.11,1 14,1H3M3,3H14V14H3V3M18,7V9H20V20H9V18H7V20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7H18Z\";\nexport var mdiVectorArrangeBelow = \"M20,22C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7C16.33,7 12.67,7 9,7C7.89,7 7,7.89 7,9C7,12.67 7,16.33 7,20C7,21.11 7.89,22 9,22H20M20,20H9V9H20V20M5,16V14H3V3H14V5H16V3C16,1.89 15.11,1 14,1H3C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16H5Z\";\nexport var mdiVectorBezier = \"M7.5,4A1.5,1.5 0 0,0 6,5.5A1.5,1.5 0 0,0 7.5,7C8.13,7 8.7,6.6 8.91,6H13C13.67,5.33 14.33,5 15,5H8.91C8.7,4.4 8.13,4 7.5,4M19,5C8,5 14,17 5,17V19C16,19 10,7 19,7V5M16.5,17C15.87,17 15.3,17.4 15.09,18H11C10.33,18.67 9.67,19 9,19H15.09C15.3,19.6 15.87,20 16.5,20A1.5,1.5 0 0,0 18,18.5A1.5,1.5 0 0,0 16.5,17Z\";\nexport var mdiVectorCircle = \"M9,2V4.06C6.72,4.92 4.92,6.72 4.05,9H2V15H4.06C4.92,17.28 6.72,19.09 9,19.95V22H15V19.94C17.28,19.08 19.09,17.28 19.95,15H22V9H19.94C19.08,6.72 17.28,4.92 15,4.05V2M11,4H13V6H11M9,6.25V8H15V6.25C16.18,6.86 17.14,7.82 17.75,9H16V15H17.75C17.14,16.18 16.18,17.14 15,17.75V16H9V17.75C7.82,17.14 6.86,16.18 6.25,15H8V9H6.25C6.86,7.82 7.82,6.86 9,6.25M4,11H6V13H4M18,11H20V13H18M11,18H13V20H11\";\nexport var mdiVectorCircleVariant = \"M22,9H19.97C18.7,5.41 15.31,3 11.5,3A9,9 0 0,0 2.5,12C2.5,17 6.53,21 11.5,21C15.31,21 18.7,18.6 20,15H22M20,11V13H18V11M17.82,15C16.66,17.44 14.2,19 11.5,19C7.64,19 4.5,15.87 4.5,12C4.5,8.14 7.64,5 11.5,5C14.2,5 16.66,6.57 17.81,9H16V15\";\nexport var mdiVectorCombine = \"M3,1C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16C4.33,16 7,16 7,16C7,16 7,18.67 7,20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7C18.67,7 16,7 16,7C16,7 16,4.33 16,3C16,1.89 15.11,1 14,1H3M3,3H14C14,4.33 14,7 14,7H9C7.89,7 7,7.89 7,9V14C7,14 4.33,14 3,14V3M9,9H14V14H9V9M16,9C16,9 18.67,9 20,9V20H9C9,18.67 9,16 9,16H14C15.11,16 16,15.11 16,14V9Z\";\nexport var mdiVectorCurve = \"M18.5,2A1.5,1.5 0 0,1 20,3.5A1.5,1.5 0 0,1 18.5,5C18.27,5 18.05,4.95 17.85,4.85L14.16,8.55L14.5,9C16.69,7.74 19.26,7 22,7L23,7.03V9.04L22,9C19.42,9 17,9.75 15,11.04A3.96,3.96 0 0,1 11.04,15C9.75,17 9,19.42 9,22L9.04,23H7.03L7,22C7,19.26 7.74,16.69 9,14.5L8.55,14.16L4.85,17.85C4.95,18.05 5,18.27 5,18.5A1.5,1.5 0 0,1 3.5,20A1.5,1.5 0 0,1 2,18.5A1.5,1.5 0 0,1 3.5,17C3.73,17 3.95,17.05 4.15,17.15L7.84,13.45C7.31,12.78 7,11.92 7,11A4,4 0 0,1 11,7C11.92,7 12.78,7.31 13.45,7.84L17.15,4.15C17.05,3.95 17,3.73 17,3.5A1.5,1.5 0 0,1 18.5,2M11,9A2,2 0 0,0 9,11A2,2 0 0,0 11,13A2,2 0 0,0 13,11A2,2 0 0,0 11,9Z\";\nexport var mdiVectorDifference = \"M3,1C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16H5V14H3V3H14V5H16V3C16,1.89 15.11,1 14,1H3M9,7C7.89,7 7,7.89 7,9V11H9V9H11V7H9M13,7V9H14V10H16V7H13M18,7V9H20V20H9V18H7V20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7H18M14,12V14H12V16H14C15.11,16 16,15.11 16,14V12H14M7,13V16H10V14H9V13H7Z\";\nexport var mdiVectorDifferenceAb = \"M3,1C1.89,1 1,1.89 1,3V5H3V3H5V1H3M7,1V3H10V1H7M12,1V3H14V5H16V3C16,1.89 15.11,1 14,1H12M1,7V10H3V7H1M14,7C14,7 14,11.67 14,14C11.67,14 7,14 7,14C7,14 7,18 7,20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7C18,7 14,7 14,7M16,9H20V20H9V16H14C15.11,16 16,15.11 16,14V9M1,12V14C1,15.11 1.89,16 3,16H5V14H3V12H1Z\";\nexport var mdiVectorDifferenceBa = \"M20,22C21.11,22 22,21.11 22,20V18H20V20H18V22H20M16,22V20H13V22H16M11,22V20H9V18H7V20C7,21.11 7.89,22 9,22H11M22,16V13H20V16H22M9,16C9,16 9,11.33 9,9C11.33,9 16,9 16,9C16,9 16,5 16,3C16,1.89 15.11,1 14,1H3C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16C5,16 9,16 9,16M7,14H3V3H14V7H9C7.89,7 7,7.89 7,9V14M22,11V9C22,7.89 21.11,7 20,7H18V9H20V11H22Z\";\nexport var mdiVectorEllipse = \"M23,9V15H20.35C19.38,17.12 17.43,18.78 15,19.54V22H9V19.54C5.5,18.45 3,15.5 3,12C3,7.58 7.03,4 12,4C15.78,4 19,6.07 20.35,9H23M17,15V9H18.06C16.85,7.21 14.59,6 12,6C8.13,6 5,8.69 5,12C5,14.39 6.64,16.46 9,17.42V16H15V17.42C16.29,16.9 17.35,16.05 18.06,15H17M19,13H21V11H19V13M11,20H13V18H11V20Z\";\nexport var mdiVectorIntersection = \"M3.14,1A2.14,2.14 0 0,0 1,3.14V5H3V3H5V1H3.14M7,1V3H10V1H7M12,1V3H14V5H16V3.14C16,1.96 15.04,1 13.86,1H12M1,7V10H3V7H1M9,7C7.89,7 7,7.89 7,9C7,11.33 7,16 7,16C7,16 11.57,16 13.86,16A2.14,2.14 0 0,0 16,13.86C16,11.57 16,7 16,7C16,7 11.33,7 9,7M18,7V9H20V11H22V9C22,7.89 21.11,7 20,7H18M9,9H14V14H9V9M1,12V13.86C1,15.04 1.96,16 3.14,16H5V14H3V12H1M20,13V16H22V13H20M7,18V20C7,21.11 7.89,22 9,22H11V20H9V18H7M20,18V20H18V22H20C21.11,22 22,21.11 22,20V18H20M13,20V22H16V20H13Z\";\nexport var mdiVectorLine = \"M15,3V7.59L7.59,15H3V21H9V16.42L16.42,9H21V3M17,5H19V7H17M5,17H7V19H5\";\nexport var mdiVectorLink = \"M3 1C1.89 1 1 1.89 1 3V14C1 15.11 1.89 16 3 16H14C15.11 16 16 15.11 16 14V11H14V14H3V3H14V5H16V3C16 1.89 15.11 1 14 1M9 7C7.89 7 7 7.89 7 9V12H9V9H20V20H9V18H7V20C7 21.11 7.89 22 9 22H20C21.11 22 22 21.11 22 20V9C22 7.89 21.11 7 20 7H9\";\nexport var mdiVectorPoint = \"M9 9V15H15V9H9M11 11H13V13H11V11Z\";\nexport var mdiVectorPointEdit = \"M9 9V15H15V9H9M11 11H13V13H11V11M21.2 13C21.1 13 20.9 13.1 20.8 13.2L19.8 14.2L21.9 16.3L22.9 15.3C23.1 15.1 23.1 14.7 22.9 14.5L21.6 13.2C21.4 13.1 21.3 13 21.2 13M19.1 14.8L13 20.9V23H15.1L21.2 16.8L19.1 14.8Z\";\nexport var mdiVectorPointMinus = \"M9 9V15H15V9H9M11 11H13V13H11V11M15 18V20H23V18H15Z\";\nexport var mdiVectorPointPlus = \"M9 9V15H15V9H9M11 11H13V13H11V11M18 15V18H15V20H18V23H20V20H23V18H20V15H18Z\";\nexport var mdiVectorPointSelect = \"M12,20L7,22L12,11L17,22L12,20M8,2H16V5H22V7H16V10H8V7H2V5H8V2M10,4V8H14V4H10Z\";\nexport var mdiVectorPolygon = \"M2,2V8H4.28L5.57,16H4V22H10V20.06L15,20.05V22H21V16H19.17L20,9H22V3H16V6.53L14.8,8H9.59L8,5.82V2M4,4H6V6H4M18,5H20V7H18M6.31,8H7.11L9,10.59V14H15V10.91L16.57,9H18L17.16,16H15V18.06H10V16H7.6M11,10H13V12H11M6,18H8V20H6M17,18H19V20H17\";\nexport var mdiVectorPolygonVariant = \"M22 8V2H16V5.8L14.4 8H9.6L8 5.8V2H2V8H4V16H2V22H8V20H16V22H22V16H20V8H22M11 10H13V12H11V10M4 4H6V6H4V4M6 20H4V18H6V20M16 18H8V16H6V8H7.1L9 10.6V14H15V10.6L16.9 8H18V16H16V18M20 20H18V18H20V20M18 6V4H20V6H18Z\";\nexport var mdiVectorPolyline = \"M2 3V9H4.95L6.95 15H6V21H12V16.41L17.41 11H22V5H16V9.57L10.59 15H9.06L7.06 9H8V3M4 5H6V7H4M18 7H20V9H18M8 17H10V19H8Z\";\nexport var mdiVectorPolylineEdit = \"M2 3V9H4.95L6.95 15H6V21H12V16.41L17.41 11H22V5H16V9.57L10.59 15H9.06L7.06 9H8V3H2M4 5H6V7H4V5M18 7H20V9H18V7M21.15 13C21 13 20.87 13.05 20.76 13.16L19.75 14.18L21.82 16.25L22.84 15.24C23.05 15.03 23.05 14.67 22.84 14.46L21.54 13.16C21.43 13.05 21.29 13 21.15 13M19.15 14.76L13 20.91V23H15.09L21.23 16.84L19.15 14.76M8 17H10V19H8V17Z\";\nexport var mdiVectorPolylineMinus = \"M2 3V9H4.95L6.95 15H6V21H12V16.41L17.41 11H22V5H16V9.57L10.59 15H9.06L7.06 9H8V3H2M4 5H6V7H4V5M18 7H20V9H18V7M8 17H10V19H8V17M15 18V20H23V18H15Z\";\nexport var mdiVectorPolylinePlus = \"M2 3V9H4.95L6.95 15H6V21H12V16.41L17.41 11H22V5H16V9.57L10.59 15H9.06L7.06 9H8V3H2M4 5H6V7H4V5M18 7H20V9H18V7M18 15V18H15V20H18V23H20V20H23V18H20V15H18M8 17H10V19H8V17Z\";\nexport var mdiVectorPolylineRemove = \"M21.1 15.5L19 17.6L16.9 15.5L15.5 16.9L17.6 19L15.5 21.1L16.9 22.5L19 20.4L21.1 22.5L22.5 21.1L20.4 19L22.5 16.9L21.1 15.5M16 5V9.6L10.6 15H9.1L7.1 9H8V3H2V9H5L7 15H6V21H12V16.4L17.4 11H22V5H16M6 7H4V5H6V7M10 19H8V17H10V19M20 9H18V7H20V9\";\nexport var mdiVectorRadius = \"M2,4H4V2H10V4A10,10 0 0,1 20,14H22V20H20V22H18V20H16V14H18A8,8 0 0,0 10,6V8H4V6H2V4M18,16V18H20V16H18M6,4V6H8V4H6Z\";\nexport var mdiVectorRectangle = \"M2,4H8V6H16V4H22V10H20V14H22V20H16V18H8V20H2V14H4V10H2V4M16,10V8H8V10H6V14H8V16H16V14H18V10H16M4,6V8H6V6H4M18,6V8H20V6H18M4,16V18H6V16H4M18,16V18H20V16H18Z\";\nexport var mdiVectorSelection = \"M3,1H5V3H3V5H1V3A2,2 0 0,1 3,1M14,1A2,2 0 0,1 16,3V5H14V3H12V1H14M20,7A2,2 0 0,1 22,9V11H20V9H18V7H20M22,20A2,2 0 0,1 20,22H18V20H20V18H22V20M20,13H22V16H20V13M13,9V7H16V10H14V9H13M13,22V20H16V22H13M9,22A2,2 0 0,1 7,20V18H9V20H11V22H9M7,16V13H9V14H10V16H7M7,3V1H10V3H7M3,16A2,2 0 0,1 1,14V12H3V14H5V16H3M1,7H3V10H1V7M9,7H11V9H9V11H7V9A2,2 0 0,1 9,7M16,14A2,2 0 0,1 14,16H12V14H14V12H16V14Z\";\nexport var mdiVectorSquare = \"M2,2H8V4H16V2H22V8H20V16H22V22H16V20H8V22H2V16H4V8H2V2M16,8V6H8V8H6V16H8V18H16V16H18V8H16M4,4V6H6V4H4M18,4V6H20V4H18M4,18V20H6V18H4M18,18V20H20V18H18Z\";\nexport var mdiVectorSquareClose = \"M4 4H6V6H4V4M6 20H4V18H6V20M18 8V16H16V18H8V16H6V8H8V2H2V8H4V16H2V22H8V20H16V22H22V16H20V8H22V2H16V8H18M20 20H18V18H20V20M18 6V4H20V6H18M14 6H10V4H14V6Z\";\nexport var mdiVectorSquareEdit = \"M22.7 14.4L21.7 15.4L19.6 13.3L20.6 12.3C20.8 12.1 21.2 12.1 21.4 12.3L22.7 13.6C22.9 13.8 22.9 14.1 22.7 14.4M13 19.9L19.1 13.8L21.2 15.9L15.1 22H13V19.9M11 19.9V19.1L11.6 18.5L12.1 18H8V16H6V8H8V6H16V8H18V12.1L19.1 11L19.3 10.8C19.5 10.6 19.8 10.4 20.1 10.3V8H22.1V2H16.1V4H8V2H2V8H4V16H2V22H8V20L11 19.9M18 4H20V6H18V4M4 4H6V6H4V4M6 20H4V18H6V20Z\";\nexport var mdiVectorSquareMinus = \"M13 19C13 18.7 13 18.3 13.1 18H8V16H6V8H8V6H16V8H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V8H22V2H16V4H8V2H2V8H4V16H2V22H8V20H13.1C13 19.7 13 19.3 13 19M18 4H20V6H18V4M4 4H6V6H4V4M6 20H4V18H6V20M23 18V20H15V18H23Z\";\nexport var mdiVectorSquareOpen = \"M4 4H6V6H4V4M6 20H4V18H6V20M18 8V16H16V18H8V16H6V8H8V2H2V8H4V16H2V22H8V20H16V22H22V16H20V8H22V2H16V8H18M20 20H18V18H20V20M18 6V4H20V6H18Z\";\nexport var mdiVectorSquarePlus = \"M13 19C13 18.7 13 18.3 13.1 18H8V16H6V8H8V6H16V8H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V8H22V2H16V4H8V2H2V8H4V16H2V22H8V20H13.1C13 19.7 13 19.3 13 19M18 4H20V6H18V4M4 4H6V6H4V4M6 20H4V18H6V20M20 15V18H23V20H20V23H18V20H15V18H18V15H20Z\";\nexport var mdiVectorSquareRemove = \"M13 19C13 18.7 13 18.3 13.1 18H8V16H6V8H8V6H16V8H18V13.1C18.3 13 18.7 13 19 13C19.3 13 19.7 13 20 13.1V8H22V2H16V4H8V2H2V8H4V16H2V22H8V20H13.1C13 19.7 13 19.3 13 19M18 4H20V6H18V4M4 4H6V6H4V4M6 20H4V18H6V20M22.5 16.9L20.4 19L22.5 21.1L21.1 22.5L19 20.4L16.9 22.5L15.5 21.1L17.6 19L15.5 16.9L16.9 15.5L19 17.6L21.1 15.5L22.5 16.9Z\";\nexport var mdiVectorTriangle = \"M9,3V9H9.73L5.79,16H2V22H8V20H16V22H22V16H18.21L14.27,9H15V3M11,5H13V7H11M12,9.04L16,16.15V18H8V16.15M4,18H6V20H4M18,18H20V20H18\";\nexport var mdiVectorUnion = \"M3,1C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16H7V20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7H16V3C16,1.89 15.11,1 14,1H3M3,3H14V9H20V20H9V14H3V3Z\";\nexport var mdiVhs = \"M4,6A2,2 0 0,0 2,8V16A2,2 0 0,0 4,18H20A2,2 0 0,0 22,16V8A2,2 0 0,0 20,6H4M4.54,10H7V14H4.54C4.19,13.39 4,12.7 4,12C4,11.3 4.19,10.61 4.54,10M9,10H15V14H9V10M17,10H19.46C19.81,10.61 20,11.3 20,12C20,12.7 19.81,13.39 19.46,14H17V10Z\";\nexport var mdiVibrate = \"M16,19H8V5H16M16.5,3H7.5A1.5,1.5 0 0,0 6,4.5V19.5A1.5,1.5 0 0,0 7.5,21H16.5A1.5,1.5 0 0,0 18,19.5V4.5A1.5,1.5 0 0,0 16.5,3M19,17H21V7H19M22,9V15H24V9M3,17H5V7H3M0,15H2V9H0V15Z\";\nexport var mdiVibrateOff = \"M8.2,5L6.55,3.35C6.81,3.12 7.15,3 7.5,3H16.5A1.5,1.5 0 0,1 18,4.5V14.8L16,12.8V5H8.2M0,15H2V9H0V15M21,17V7H19V15.8L20.2,17H21M3,17H5V7H3V17M18,17.35L22.11,21.46L20.84,22.73L18,19.85C17.83,20.54 17.21,21 16.5,21H7.5A1.5,1.5 0 0,1 6,19.5V7.89L1.11,3L2.39,1.73L6.09,5.44L8,7.34L16,15.34L18,17.34V17.35M16,17.89L8,9.89V19H16V17.89M22,9V15H24V9H22Z\";\nexport var mdiVideo = \"M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z\";\nexport var mdiVideo2d = \"M13 7H16C17.66 7 19 8.34 19 10V14C19 15.66 17.66 17 16 17H13V7M16 15C16.55 15 17 14.55 17 14V10C17 9.45 16.55 9 16 9H15V15H16M5 7H9C10.11 7 11 7.9 11 9V11C11 12.11 10.11 13 9 13H7V15H11V17H5V13C5 11.9 5.9 11 7 11H9V9H5V7Z\";\nexport var mdiVideo3d = \"M5,7H9A2,2 0 0,1 11,9V15A2,2 0 0,1 9,17H5V15H9V13H6V11H9V9H5V7M13,7H16A3,3 0 0,1 19,10V14A3,3 0 0,1 16,17H13V7M16,15A1,1 0 0,0 17,14V10A1,1 0 0,0 16,9H15V15H16Z\";\nexport var mdiVideo3dOff = \"M2.61 2L21.35 20.74L19.94 22.15L14.8 17H13V15.2L11 13.23V15.21C10.93 15.68 10.74 16.08 10.41 16.41C10.08 16.73 9.68 16.93 9.21 17H5V15H9V13H6V11H8.8L6.79 9H5V7.23L1.2 3.41L2.61 2M16 7H16.22C17 7.07 17.63 7.36 18.14 7.88C18.65 8.39 18.93 9 19 9.76V14.24C18.95 14.63 18.87 15 18.72 15.3L17 13.6V9.85C16.95 9.63 16.84 9.44 16.69 9.28C16.53 9.13 16.34 9.03 16.12 9H15V11.59L13 9.57V7H16Z\";\nexport var mdiVideo3dVariant = \"M14,10V14A0.5,0.5 0 0,1 13.5,14.5H12.5V9.5H13.5A0.5,0.5 0 0,1 14,10M21,6.5V17.5L17,13.5V17A1,1 0 0,1 16,18H4A1,1 0 0,1 3,17V7A1,1 0 0,1 4,6H16A1,1 0 0,1 17,7V10.5M9.5,9.5A1.5,1.5 0 0,0 8,8H4.5V9.5H8V11.25H5.5V12.75H8V14.5H4.5V16H8A1.5,1.5 0 0,0 9.5,14.5M15.5,9.5A1.5,1.5 0 0,0 14,8H11V16H14A1.5,1.5 0 0,0 15.5,14.5\";\nexport var mdiVideo4kBox = \"M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,13.5H11V15H9.5V13.5H6.5V9H8V12H9.5V9H11V12H12V13.5M18,15H16.2L14.4,12.8V15H13V9H14.5V11.2L16.2,9H18L15.8,12L18,15Z\";\nexport var mdiVideoAccount = \"M17,10.5L21,6.5V17.5L17,13.5V17A1,1 0 0,1 16,18H4A1,1 0 0,1 3,17V7A1,1 0 0,1 4,6H16A1,1 0 0,1 17,7V10.5M14,16V15C14,13.67 11.33,13 10,13C8.67,13 6,13.67 6,15V16H14M10,8A2,2 0 0,0 8,10A2,2 0 0,0 10,12A2,2 0 0,0 12,10A2,2 0 0,0 10,8Z\";\nexport var mdiVideoBox = \"M18,16L14,12.8V16H6V8H14V11.2L18,8M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\";\nexport var mdiVideoBoxOff = \"M6,8H6.73L14,15.27V16H6M2.27,1L1,2.27L3,4.28C2.41,4.62 2,5.26 2,6V18A2,2 0 0,0 4,20H18.73L20.73,22L22,20.73M20,4H7.82L11.82,8H14V10.18L14.57,10.75L18,8V14.18L22,18.17C22,18.11 22,18.06 22,18V6A2,2 0 0,0 20,4Z\";\nexport var mdiVideoCheck = \"M17 10.5V7C17 6.45 16.55 6 16 6H4C3.45 6 3 6.45 3 7V17C3 17.55 3.45 18 4 18H16C16.55 18 17 17.55 17 17V13.5L21 17.5V6.5L17 10.5M8.93 15L6 11.8L7.24 10.56L8.93 12.26L12.76 8.43L14 9.93L8.93 15Z\";\nexport var mdiVideoCheckOutline = \"M15 8V16H5V8H15M16 6H4C3.45 6 3 6.45 3 7V17C3 17.55 3.45 18 4 18H16C16.55 18 17 17.55 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.45 16.55 6 16 6M6.35 12.08L7.5 10.95L9 12.5L12.5 9L13.65 10.37L9 15L6.35 12.08Z\";\nexport var mdiVideoHighDefinition = \"M14 10V14C14 14.3 13.8 14.5 13.5 14.5H12.5V9.5H13.5C13.8 9.5 14 9.7 14 10M17 10.5V7C17 6.4 16.6 6 16 6H4C3.4 6 3 6.4 3 7V17C3 17.6 3.4 18 4 18H16C16.6 18 17 17.6 17 17V13.5L21 17.5V6.5L17 10.5M9.5 16H8V12.8H6V16H4.5V8H6V11.2H8V8H9.5V16M15.5 14.5C15.5 15.3 14.8 16 14 16H11V8H14C14.8 8 15.5 8.7 15.5 9.5V14.5Z\";\nexport var mdiVideoImage = \"M17,10.5L21,6.5V17.5L17,13.5V17A1,1 0 0,1 16,18H4A1,1 0 0,1 3,17V7A1,1 0 0,1 4,6H16A1,1 0 0,1 17,7V10.5M10.91,9.55L9.2,11.82L10.5,13.55L9.77,14.09L7.73,11.36L5,15H15L10.91,9.55Z\";\nexport var mdiVideoInputAntenna = \"M12,5A7,7 0 0,0 5,12H7A5,5 0 0,1 12,7A5,5 0 0,1 17,12H19A7,7 0 0,0 12,5M13,14.29C13.88,13.9 14.5,13.03 14.5,12A2.5,2.5 0 0,0 12,9.5A2.5,2.5 0 0,0 9.5,12C9.5,13 10.12,13.9 11,14.29V17.59L7.59,21L9,22.41L12,19.41L15,22.41L16.41,21L13,17.59V14.29M12,1A11,11 0 0,0 1,12H3A9,9 0 0,1 12,3A9,9 0 0,1 21,12H23A11,11 0 0,0 12,1Z\";\nexport var mdiVideoInputComponent = \"M5,2A1,1 0 0,0 4,1A1,1 0 0,0 3,2V6H1V12H7V6H5V2M9,16C9,17.3 9.84,18.4 11,18.82V23H13V18.82C14.16,18.41 15,17.31 15,16V14H9V16M1,16C1,17.3 1.84,18.4 3,18.82V23H5V18.82C6.16,18.4 7,17.3 7,16V14H1V16M21,6V2A1,1 0 0,0 20,1A1,1 0 0,0 19,2V6H17V12H23V6H21M13,2A1,1 0 0,0 12,1A1,1 0 0,0 11,2V6H9V12H15V6H13V2M17,16C17,17.3 17.84,18.4 19,18.82V23H21V18.82C22.16,18.41 23,17.31 23,16V14H17V16Z\";\nexport var mdiVideoInputHdmi = \"M18,7V4A2,2 0 0,0 16,2H8A2,2 0 0,0 6,4V7H5V13L8,19V22H16V19L19,13V7H18M8,4H16V7H14V5H13V7H11V5H10V7H8V4Z\";\nexport var mdiVideoInputScart = \"M20.6 2.2L17.3 2.4L13.8 4.4L13.3 3.5L2 10V17H3V19C3 20.1 3.9 21 5 21H15C16.1 21 17 20.1 17 19V17H18V10H17L16.8 9.6L20.3 7.6L22.1 4.8L20.6 2.2M15 17V19H5V17H15Z\";\nexport var mdiVideoInputSvideo = \"M8,11.5A1.5,1.5 0 0,0 6.5,10A1.5,1.5 0 0,0 5,11.5A1.5,1.5 0 0,0 6.5,13A1.5,1.5 0 0,0 8,11.5M15,6.5A1.5,1.5 0 0,0 13.5,5H10.5A1.5,1.5 0 0,0 9,6.5A1.5,1.5 0 0,0 10.5,8H13.5A1.5,1.5 0 0,0 15,6.5M8.5,15A1.5,1.5 0 0,0 7,16.5A1.5,1.5 0 0,0 8.5,18A1.5,1.5 0 0,0 10,16.5A1.5,1.5 0 0,0 8.5,15M12,1A11,11 0 0,0 1,12A11,11 0 0,0 12,23A11,11 0 0,0 23,12A11,11 0 0,0 12,1M12,21C7.04,21 3,16.96 3,12C3,7.04 7.04,3 12,3C16.96,3 21,7.04 21,12C21,16.96 16.96,21 12,21M17.5,10A1.5,1.5 0 0,0 16,11.5A1.5,1.5 0 0,0 17.5,13A1.5,1.5 0 0,0 19,11.5A1.5,1.5 0 0,0 17.5,10M15.5,15A1.5,1.5 0 0,0 14,16.5A1.5,1.5 0 0,0 15.5,18A1.5,1.5 0 0,0 17,16.5A1.5,1.5 0 0,0 15.5,15Z\";\nexport var mdiVideoMarker = \"M5.5 16.8C4.8 16.8 4.3 16.2 4.3 15.6C4.3 14.9 4.9 14.4 5.5 14.4S6.7 15 6.7 15.6C6.8 16.2 6.2 16.8 5.5 16.8M5.5 12C3.6 12 2 13.6 2 15.5C2 18.1 5.5 22 5.5 22S9 18.1 9 15.5C9 13.6 7.4 12 5.5 12M4 6C3.4 6 3 6.4 3 7V10.6C3.8 10.2 4.6 10 5.5 10C8.5 10 11 12.5 11 15.5C11 16.4 10.8 17.2 10.5 18H16C16.6 18 17 17.6 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.4 16.6 6 16 6H4Z\";\nexport var mdiVideoMarkerOutline = \"M5.5 16.8C4.8 16.8 4.3 16.2 4.3 15.6C4.3 14.9 4.9 14.4 5.5 14.4S6.7 15 6.7 15.6C6.8 16.2 6.2 16.8 5.5 16.8M5.5 12C3.6 12 2 13.6 2 15.5C2 18.1 5.5 22 5.5 22S9 18.1 9 15.5C9 13.6 7.4 12 5.5 12M4 6C3.4 6 3 6.4 3 7V10.6C3.6 10.3 4.3 10.1 5 10V8H15V16H11C10.9 16.7 10.8 17.4 10.5 18H16C16.6 18 17 17.6 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.4 16.6 6 16 6H4Z\";\nexport var mdiVideoMinus = \"M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5M14,13H6V11H14V13Z\";\nexport var mdiVideoMinusOutline = \"M15 8V16H5V8H15M16 6H4C3.45 6 3 6.45 3 7V17C3 17.55 3.45 18 4 18H16C16.55 18 17 17.55 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.45 16.55 6 16 6M13 13H7V11H13V13Z\";\nexport var mdiVideoOff = \"M3.27,2L2,3.27L4.73,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16C16.2,18 16.39,17.92 16.54,17.82L19.73,21L21,19.73M21,6.5L17,10.5V7A1,1 0 0,0 16,6H9.82L21,17.18V6.5Z\";\nexport var mdiVideoOffOutline = \"M3.41,1.86L2,3.27L4.73,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16C16.21,18 16.39,17.92 16.55,17.82L19.73,21L21.14,19.59L12.28,10.73L3.41,1.86M5,16V8H6.73L14.73,16H5M15,8V10.61L21,16.61V6.5L17,10.5V7A1,1 0 0,0 16,6H10.39L12.39,8H15Z\";\nexport var mdiVideoOutline = \"M15,8V16H5V8H15M16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5V7A1,1 0 0,0 16,6Z\";\nexport var mdiVideoPlus = \"M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5M14,13H11V16H9V13H6V11H9V8H11V11H14V13Z\";\nexport var mdiVideoPlusOutline = \"M15 8V16H5V8H15M16 6H4C3.45 6 3 6.45 3 7V17C3 17.55 3.45 18 4 18H16C16.55 18 17 17.55 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.45 16.55 6 16 6M13 13H11V15H9V13H7V11H9V9H11V11H13V13Z\";\nexport var mdiVideoStabilization = \"M4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M4,6V18H20V6H4M7.24,6.58L18.83,9.69L16.76,17.42L5.17,14.31L7.24,6.58Z\";\nexport var mdiVideoStandardDefinition = \"M14 14V10C14 9.7 13.8 9.5 13.5 9.5H12.5V14.5H13.5C13.8 14.5 14 14.3 14 14M17 7V10.5L21 6.5V17.5L17 13.5V17C17 17.6 16.6 18 16 18H4C3.4 18 3 17.6 3 17V7C3 6.4 3.4 6 4 6H16C16.6 6 17 6.4 17 7M14 16C14.8 16 15.5 15.3 15.5 14.5V9.5C15.5 8.7 14.8 8 14 8H11V16H14M9 8H5.5C4.67 8 4 8.67 4 9.5V11C4 11.83 4.67 12.5 5.5 12.5H7.5V14.5H4V16H7.5C8.33 16 9 15.33 9 14.5V12.5C9 11.67 8.33 11 7.5 11H5.5V9.5H9V8Z\";\nexport var mdiVideoSwitch = \"M13,15.5V13H7V15.5L3.5,12L7,8.5V11H13V8.5L16.5,12M18,9.5V6A1,1 0 0,0 17,5H3A1,1 0 0,0 2,6V18A1,1 0 0,0 3,19H17A1,1 0 0,0 18,18V14.5L22,18.5V5.5L18,9.5Z\";\nexport var mdiVideoSwitchOutline = \"M8 13H12V15L15 12L12 9V11H8V9L5 12L8 15V13M18 9.5V6C18 5.4 17.5 5 17 5H3C2.5 5 2 5.4 2 6V18C2 18.5 2.5 19 3 19H17C17.5 19 18 18.5 18 18V14.5L22 18.5V5.5L18 9.5M16 17H4V7H16V17Z\";\nexport var mdiVideoVintage = \"M18,14.5V11A1,1 0 0,0 17,10H16C18.24,8.39 18.76,5.27 17.15,3C15.54,0.78 12.42,0.26 10.17,1.87C9.5,2.35 8.96,3 8.6,3.73C6.25,2.28 3.17,3 1.72,5.37C0.28,7.72 1,10.8 3.36,12.25C3.57,12.37 3.78,12.5 4,12.58V21A1,1 0 0,0 5,22H17A1,1 0 0,0 18,21V17.5L22,21.5V10.5L18,14.5M13,4A2,2 0 0,1 15,6A2,2 0 0,1 13,8A2,2 0 0,1 11,6A2,2 0 0,1 13,4M6,6A2,2 0 0,1 8,8A2,2 0 0,1 6,10A2,2 0 0,1 4,8A2,2 0 0,1 6,6Z\";\nexport var mdiVideoWireless = \"M17,14.5V11A1,1 0 0,0 16,10H4A1,1 0 0,0 3,11V21A1,1 0 0,0 4,22H16A1,1 0 0,0 17,21V17.5L21,21.5V10.5M3,3.86L4.4,5.24C7.5,2.19 12.5,2.19 15.6,5.24L17,3.86C13.14,0.05 6.87,0.05 3,3.86M5.8,6.62L7.2,8C8.75,6.5 11.25,6.5 12.8,8L14.2,6.62C11.88,4.34 8.12,4.34 5.8,6.62Z\";\nexport var mdiVideoWirelessOutline = \"M15,12V20H5V12H15M16,10H4A1,1 0 0,0 3,11V21A1,1 0 0,0 4,22H16A1,1 0 0,0 17,21V17.5L21,21.5V10.5L17,14.5V11A1,1 0 0,0 16,10M3,3.86L4.4,5.24C7.5,2.19 12.5,2.19 15.6,5.24L17,3.86C13.14,0.05 6.87,0.05 3,3.86M5.8,6.63L7.2,8C8.75,6.5 11.25,6.5 12.8,8L14.2,6.63C11.88,4.34 8.12,4.34 5.8,6.63Z\";\nexport var mdiViewAgenda = \"M21 3H3C2.4 3 2 3.4 2 4V10C2 10.6 2.4 11 3 11H21C21.6 11 22 10.6 22 10V4C22 3.4 21.6 3 21 3M21 13H3C2.4 13 2 13.4 2 14V20C2 20.6 2.4 21 3 21H21C21.6 21 22 20.6 22 20V14C22 13.4 21.6 13 21 13Z\";\nexport var mdiViewAgendaOutline = \"M21 13H3A1 1 0 0 0 2 14V20A1 1 0 0 0 3 21H21A1 1 0 0 0 22 20V14A1 1 0 0 0 21 13M20 19H4V15H20M21 3H3A1 1 0 0 0 2 4V10A1 1 0 0 0 3 11H21A1 1 0 0 0 22 10V4A1 1 0 0 0 21 3M20 9H4V5H20Z\";\nexport var mdiViewArray = \"M8,18H17V5H8M18,5V18H21V5M4,18H7V5H4V18Z\";\nexport var mdiViewArrayOutline = \"M15 7V16H10V7H15M21 5H18V18H21V5M17 5H8V18H17V5M7 5H4V18H7V5Z\";\nexport var mdiViewCarousel = \"M18,6V17H22V6M2,17H6V6H2M7,19H17V4H7V19Z\";\nexport var mdiViewCarouselOutline = \"M2 6H6V17H2V6M7 19H17V4H7V19M9 6H15V17H9V6M18 6H22V17H18V6Z\";\nexport var mdiViewColumn = \"M16,5V18H21V5M4,18H9V5H4M10,18H15V5H10V18Z\";\nexport var mdiViewColumnOutline = \"M4 5V18H21V5H4M14 7V16H11V7H14M6 7H9V16H6V7M19 16H16V7H19V16Z\";\nexport var mdiViewComfy = \"M3,9H7V5H3V9M3,14H7V10H3V14M8,14H12V10H8V14M13,14H17V10H13V14M8,9H12V5H8V9M13,5V9H17V5H13M18,14H22V10H18V14M3,19H7V15H3V19M8,19H12V15H8V19M13,19H17V15H13V19M18,19H22V15H18V19M18,5V9H22V5H18Z\";\nexport var mdiViewComfyOutline = \"M3 5V19H22V5H3M20 9H17.75V7H20V9M9.25 11H11.5V13H9.25V11M7.25 13H5V11H7.25V13M11.5 9H9.25V7H11.5V9M13.5 7H15.75V9H13.5V7M11.5 15V17H9.25V15H11.5M13.5 15H15.75V17H13.5V15M13.5 13V11H15.75V13H13.5M17.75 11H20V13H17.75V11M7.25 7V9H5V7H7.25M5 15H7.25V17H5V15M17.75 17V15H20V17H17.75Z\";\nexport var mdiViewCompact = \"M3,19H9V12H3V19M10,19H22V12H10V19M3,5V11H22V5H3Z\";\nexport var mdiViewCompactOutline = \"M3,5V19H22V5H3M5,7H20V11H5V7M5,17V13H9V17H5M11,17V13H20V17H11Z\";\nexport var mdiViewDashboard = \"M13,3V9H21V3M13,21H21V11H13M3,21H11V15H3M3,13H11V3H3V13Z\";\nexport var mdiViewDashboardEdit = \"M21 13.1C20.9 13.1 20.7 13.2 20.6 13.3L19.6 14.3L21.7 16.4L22.7 15.4C22.9 15.2 22.9 14.8 22.7 14.6L21.4 13.3C21.3 13.2 21.2 13.1 21 13.1M19.1 14.9L13 20.9V23H15.1L21.2 16.9L19.1 14.9M21 9H13V3H21V9M13 18.06V11H21V11.1C20.24 11.1 19.57 11.5 19.19 11.89L13 18.06M11 13H3V3H11V13M11 21H3V15H11V21Z\";\nexport var mdiViewDashboardEditOutline = \"M21 13.1C20.9 13.1 20.7 13.2 20.6 13.3L19.6 14.3L21.7 16.4L22.7 15.4C22.9 15.2 22.9 14.8 22.7 14.6L21.4 13.3C21.3 13.2 21.2 13.1 21 13.1M19.1 14.9L13 20.9V23H15.1L21.2 16.9L19.1 14.9M21 3H13V9H21V3M19 7H15V5H19V7M13 18.06V11H21V11.1C20.24 11.1 19.57 11.5 19.19 11.89L18.07 13H15V16.07L13 18.06M11 3H3V13H11V3M9 11H5V5H9V11M11 20.06V15H3V21H11V20.06M9 19H5V17H9V19Z\";\nexport var mdiViewDashboardOutline = \"M19,5V7H15V5H19M9,5V11H5V5H9M19,13V19H15V13H19M9,17V19H5V17H9M21,3H13V9H21V3M11,3H3V13H11V3M21,11H13V21H21V11M11,15H3V21H11V15Z\";\nexport var mdiViewDashboardVariant = \"M2,5V19H8V5H2M9,5V10H15V5H9M16,5V14H22V5H16M9,11V19H15V11H9M16,15V19H22V15H16Z\";\nexport var mdiViewDashboardVariantOutline = \"M2 5V19H22V5H2M20 12H16V7H20V12M14 10H10V7H14V10M10 12H14V17H10V12M4 7H8V17H4V7M16 17V14H20V17H16Z\";\nexport var mdiViewDay = \"M2,3V6H21V3M20,8H3A1,1 0 0,0 2,9V15A1,1 0 0,0 3,16H20A1,1 0 0,0 21,15V9A1,1 0 0,0 20,8M2,21H21V18H2V21Z\";\nexport var mdiViewDayOutline = \"M21 18H2V20H21V18M19 10V14H4V10H19M20 8H3C2.45 8 2 8.45 2 9V15C2 15.55 2.45 16 3 16H20C20.55 16 21 15.55 21 15V9C21 8.45 20.55 8 20 8M21 4H2V6H21V4Z\";\nexport var mdiViewGallery = \"M21 3H2V16H21V3M2 17H6V21H2V17M7 17H11V21H7V17M12 17H16V21H12V17M17 17H21V21H17V17Z\";\nexport var mdiViewGalleryOutline = \"M1 3V21H23V3H1M21 5V14H3V5H21M11 16V19H8V16H11M3 16H6V19H3V16M13 19V16H16V19H13M18 19V16H21V19H18Z\";\nexport var mdiViewGrid = \"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\";\nexport var mdiViewGridCompact = \"M2 5H4V7H2V5M5 5H7V7H5V5M8 5H10V7H8V5M11 5H13V7H11V5M14 5H16V7H14V5M17 5H19V7H17V5M20 5H22V7H20V5M2 8H4V10H2V8M5 8H7V10H5V8M8 8H10V10H8V8M11 8H13V10H11V8M14 8H16V10H14V8M17 8H19V10H17V8M20 8H22V10H20V8M2 11H4V13H2V11M5 11H7V13H5V11M8 11H10V13H8V11M11 11H13V13H11V11M14 11H16V13H14V11M17 11H19V13H17V11M20 11H22V13H20V11M2 14H4V16H2V14M5 14H7V16H5V14M8 14H10V16H8V14M11 14H13V16H11V14M14 14H16V16H14V14M17 14H19V16H17V14M20 14H22V16H20V14M2 17H4V19H2V17M5 17H7V19H5V17M8 17H10V19H8V17M11 17H13V19H11V17M14 17H16V19H14V17M17 17H19V19H17V17M20 17H22V19H20V17\";\nexport var mdiViewGridOutline = \"M3 11H11V3H3M5 5H9V9H5M13 21H21V13H13M15 15H19V19H15M3 21H11V13H3M5 15H9V19H5M13 3V11H21V3M19 9H15V5H19Z\";\nexport var mdiViewGridPlus = \"M13 3V11H21V3H13M3 21H11V13H3V21M3 3V11H11V3H3M13 16H16V13H18V16H21V18H18V21H16V18H13V16Z\";\nexport var mdiViewGridPlusOutline = \"M3 21H11V13H3M5 15H9V19H5M3 11H11V3H3M5 5H9V9H5M13 3V11H21V3M19 9H15V5H19M18 16H21V18H18V21H16V18H13V16H16V13H18Z\";\nexport var mdiViewHeadline = \"M4,5V7H21V5M4,11H21V9H4M4,19H21V17H4M4,15H21V13H4V15Z\";\nexport var mdiViewList = \"M9,5V9H21V5M9,19H21V15H9M9,14H21V10H9M4,9H8V5H4M4,19H8V15H4M4,14H8V10H4V14Z\";\nexport var mdiViewListOutline = \"M3 5V19H20V5H3M7 7V9H5V7H7M5 13V11H7V13H5M5 15H7V17H5V15M18 17H9V15H18V17M18 13H9V11H18V13M18 9H9V7H18V9Z\";\nexport var mdiViewModule = \"M16,5V11H21V5M10,11H15V5H10M16,18H21V12H16M10,18H15V12H10M4,18H9V12H4M4,11H9V5H4V11Z\";\nexport var mdiViewModuleOutline = \"M4 5V18H21V5H4M14 7V10.5H11V7H14M6 7H9V10.5H6V7M6 16V12.5H9V16H6M11 16V12.5H14V16H11M19 16H16V12.5H19V16M16 10.5V7H19V10.5H16Z\";\nexport var mdiViewParallel = \"M19 3V21H15V3H19M14 3V21H10V3H14M9 3V21H5V3H9Z\";\nexport var mdiViewParallelOutline = \"M19 3H5V21H19V3M17 19H15V5H17V19M13 19H11V5H13V19M7 5H9V19H7V5Z\";\nexport var mdiViewQuilt = \"M10,5V11H21V5M16,18H21V12H16M4,18H9V5H4M10,18H15V12H10V18Z\";\nexport var mdiViewQuiltOutline = \"M4 5V18H21V5H4M6 16V7H9V16H6M11 16V12.5H14V16H11M19 16H16V12.5H19V16M11 10.5V7H19V10.5H11Z\";\nexport var mdiViewSequential = \"M3 5H21V9H3V5M3 10H21V14H3V10M3 15H21V19H3V15Z\";\nexport var mdiViewSequentialOutline = \"M3 5V19H21V5H3M19 7V9H5V7H19M19 11V13H5V11H19M5 17V15H19V17H5Z\";\nexport var mdiViewSplitHorizontal = \"M3,5H21V7H3V5M3,11V9H21V11H3M3,19V13H21V19H3Z\";\nexport var mdiViewSplitVertical = \"M13,5H21V19H13V5M3,5H11V7H3V5M3,11V9H11V11H3M3,19V17H11V19H3M3,15V13H11V15H3Z\";\nexport var mdiViewStream = \"M4,5V11H21V5M4,18H21V12H4V18Z\";\nexport var mdiViewStreamOutline = \"M4 6V18H21V6H4M19 16H6V13H19V16M6 11V8H19V11H6Z\";\nexport var mdiViewWeek = \"M13,5H10A1,1 0 0,0 9,6V18A1,1 0 0,0 10,19H13A1,1 0 0,0 14,18V6A1,1 0 0,0 13,5M20,5H17A1,1 0 0,0 16,6V18A1,1 0 0,0 17,19H20A1,1 0 0,0 21,18V6A1,1 0 0,0 20,5M6,5H3A1,1 0 0,0 2,6V18A1,1 0 0,0 3,19H6A1,1 0 0,0 7,18V6A1,1 0 0,0 6,5Z\";\nexport var mdiViewWeekOutline = \"M21 4H3C2.45 4 2 4.45 2 5V19C2 19.55 2.45 20 3 20H21C21.55 20 22 19.55 22 19V5C22 4.45 21.55 4 21 4M8 18H4V6H8V18M14 18H10V6H14V18M20 18H16V6H20V18Z\";\nexport var mdiVimeo = \"M22,7.42C21.91,9.37 20.55,12.04 17.92,15.44C15.2,19 12.9,20.75 11,20.75C9.85,20.75 8.86,19.67 8.05,17.5C7.5,15.54 7,13.56 6.44,11.58C5.84,9.42 5.2,8.34 4.5,8.34C4.36,8.34 3.84,8.66 2.94,9.29L2,8.07C3,7.2 3.96,6.33 4.92,5.46C6.24,4.32 7.23,3.72 7.88,3.66C9.44,3.5 10.4,4.58 10.76,6.86C11.15,9.33 11.42,10.86 11.57,11.46C12,13.5 12.5,14.5 13.05,14.5C13.47,14.5 14.1,13.86 14.94,12.53C15.78,11.21 16.23,10.2 16.29,9.5C16.41,8.36 15.96,7.79 14.94,7.79C14.46,7.79 13.97,7.9 13.46,8.12C14.44,4.89 16.32,3.32 19.09,3.41C21.15,3.47 22.12,4.81 22,7.42Z\";\nexport var mdiViolin = \"M11,2A1,1 0 0,0 10,3V5L10,9A0.5,0.5 0 0,0 10.5,9.5H12A0.5,0.5 0 0,1 12.5,10A0.5,0.5 0 0,1 12,10.5H10.5C9.73,10.5 9,9.77 9,9V5.16C7.27,5.6 6,7.13 6,9V10.5A2.5,2.5 0 0,1 8.5,13A2.5,2.5 0 0,1 6,15.5V17C6,19.77 8.23,22 11,22H13C15.77,22 18,19.77 18,17V15.5A2.5,2.5 0 0,1 15.5,13A2.5,2.5 0 0,1 18,10.5V9C18,6.78 16.22,5 14,5V3A1,1 0 0,0 13,2H11M10.75,16.5H13.25L12.75,20H11.25L10.75,16.5Z\";\nexport var mdiVirtualReality = \"M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M6,9H7.5L8.5,12.43L9.5,9H11L9.25,15H7.75L6,9M13,9H16.5C17.35,9 18,9.65 18,10.5V11.5C18,12.1 17.6,12.65 17.1,12.9L18,15H16.5L15.65,13H14.5V15H13V9M14.5,10.5V11.5H16.5V10.5H14.5Z\";\nexport var mdiVirus = \"M19.82 14C20.13 14.45 20.66 14.75 21.25 14.75C22.22 14.75 23 13.97 23 13S22.22 11.25 21.25 11.25C20.66 11.25 20.13 11.55 19.82 12H19C19 10.43 18.5 9 17.6 7.81L18.94 6.47C19.5 6.57 20.07 6.41 20.5 6C21.17 5.31 21.17 4.2 20.5 3.5C19.81 2.83 18.7 2.83 18 3.5C17.59 3.93 17.43 4.5 17.53 5.06L16.19 6.4C15.27 5.71 14.19 5.25 13 5.08V3.68C13.45 3.37 13.75 2.84 13.75 2.25C13.75 1.28 12.97 .5 12 .5S10.25 1.28 10.25 2.25C10.25 2.84 10.55 3.37 11 3.68V5.08C10.1 5.21 9.26 5.5 8.5 5.94L7.39 4.35C7.58 3.83 7.53 3.23 7.19 2.75C6.63 1.96 5.54 1.76 4.75 2.32C3.96 2.87 3.76 3.96 4.32 4.75C4.66 5.24 5.2 5.5 5.75 5.5L6.93 7.18C6.5 7.61 6.16 8.09 5.87 8.62C5.25 8.38 4.5 8.5 4 9C3.33 9.7 3.33 10.8 4 11.5C4.29 11.77 4.64 11.93 5 12L5 12C5 12.54 5.07 13.06 5.18 13.56L3.87 13.91C3.45 13.56 2.87 13.41 2.29 13.56C1.36 13.81 .808 14.77 1.06 15.71C1.31 16.64 2.28 17.19 3.21 16.94C3.78 16.78 4.21 16.36 4.39 15.84L5.9 15.43C6.35 16.22 6.95 16.92 7.65 17.5L6.55 19.5C6 19.58 5.5 19.89 5.21 20.42C4.75 21.27 5.07 22.33 5.92 22.79C6.77 23.25 7.83 22.93 8.29 22.08C8.57 21.56 8.56 20.96 8.31 20.47L9.38 18.5C10.19 18.82 11.07 19 12 19C12.06 19 12.12 19 12.18 19C12.05 19.26 12 19.56 12 19.88C12.08 20.85 12.92 21.57 13.88 21.5S15.57 20.58 15.5 19.62C15.46 19.12 15.21 18.68 14.85 18.39C15.32 18.18 15.77 17.91 16.19 17.6L18.53 19.94C18.43 20.5 18.59 21.07 19 21.5C19.7 22.17 20.8 22.17 21.5 21.5S22.17 19.7 21.5 19C21.07 18.59 20.5 18.43 19.94 18.53L17.6 16.19C18.09 15.54 18.47 14.8 18.71 14H19.82M10.5 12C9.67 12 9 11.33 9 10.5S9.67 9 10.5 9 12 9.67 12 10.5 11.33 12 10.5 12M14 15C13.45 15 13 14.55 13 14C13 13.45 13.45 13 14 13S15 13.45 15 14C15 14.55 14.55 15 14 15Z\";\nexport var mdiVirusOff = \"M7.42 4.22L5.28 2.08C5.97 1.88 6.75 2.12 7.19 2.75C7.5 3.19 7.56 3.73 7.42 4.22M21.25 11.25C20.66 11.25 20.13 11.55 19.82 12H19C19 10.43 18.5 9 17.6 7.81L18.94 6.47C19.5 6.57 20.07 6.41 20.5 6C21.17 5.31 21.17 4.2 20.5 3.5C19.81 2.83 18.7 2.83 18 3.5C17.59 3.93 17.43 4.5 17.53 5.06L16.19 6.4C15.27 5.71 14.19 5.25 13 5.08V3.68C13.45 3.37 13.75 2.84 13.75 2.25C13.75 1.28 12.97 .5 12 .5S10.25 1.28 10.25 2.25C10.25 2.84 10.55 3.37 11 3.68V5.08C10.26 5.19 9.57 5.41 8.92 5.72L18.28 15.08C18.45 14.73 18.6 14.38 18.71 14H19.82C20.13 14.45 20.66 14.75 21.25 14.75C22.22 14.75 23 13.97 23 13S22.22 11.25 21.25 11.25M22.11 21.46L20.84 22.73L20.1 22C19.7 21.96 19.31 21.8 19 21.5C18.7 21.19 18.54 20.8 18.5 20.4L15.9 17.79C15.57 18 15.22 18.23 14.85 18.39C15.21 18.68 15.46 19.12 15.5 19.62C15.57 20.58 14.84 21.43 13.88 21.5S12.08 20.85 12 19.88C12 19.56 12.05 19.26 12.18 19H12C11.07 19 10.19 18.82 9.38 18.5L8.31 20.47C8.56 20.96 8.57 21.56 8.29 22.08C7.83 22.93 6.77 23.25 5.92 22.79C5.07 22.33 4.75 21.27 5.21 20.42C5.5 19.89 6 19.58 6.55 19.5L7.65 17.5C6.95 16.92 6.35 16.22 5.9 15.43L4.39 15.84C4.21 16.36 3.78 16.78 3.21 16.94C2.28 17.19 1.31 16.64 1.06 15.71C.808 14.77 1.36 13.81 2.29 13.56C2.87 13.41 3.45 13.56 3.87 13.91L5.18 13.56C5.07 13.06 5 12.54 5 12C4.64 11.93 4.29 11.77 4 11.5C3.33 10.8 3.33 9.7 4 9C4.5 8.5 5.25 8.38 5.87 8.62C5.97 8.44 6.09 8.27 6.2 8.09L1.11 3L2.39 1.73L22.11 21.46Z\";\nexport var mdiVirusOffOutline = \"M23 13C23 13.97 22.22 14.75 21.25 14.75C20.66 14.75 20.13 14.45 19.82 14H18.71C18.6 14.38 18.45 14.73 18.28 15.08L16.73 13.53C16.89 13.05 17 12.54 17 12C17 9.24 14.76 7 12 7C11.46 7 10.95 7.11 10.47 7.27L8.92 5.72C9.57 5.41 10.26 5.19 11 5.08V3.68C10.55 3.37 10.25 2.84 10.25 2.25C10.25 1.28 11.03 .5 12 .5S13.75 1.28 13.75 2.25C13.75 2.84 13.45 3.37 13 3.68V5.08C14.19 5.25 15.27 5.71 16.19 6.4L17.53 5.06C17.43 4.5 17.59 3.93 18 3.5C18.35 3.17 18.8 3 19.25 3S20.15 3.17 20.5 3.5C21.17 4.2 21.17 5.31 20.5 6C20.15 6.33 19.7 6.5 19.25 6.5C19.15 6.5 19.05 6.5 18.94 6.47L17.6 7.81C18.5 9 19 10.43 19 12H19.82C20.13 11.55 20.66 11.25 21.25 11.25C22.22 11.25 23 12.03 23 13M22.11 21.46L20.84 22.73L20.1 22C19.7 21.95 19.31 21.79 19 21.5C18.7 21.19 18.54 20.8 18.5 20.4L15.9 17.79C15.57 18 15.22 18.23 14.85 18.39C15.21 18.68 15.46 19.12 15.5 19.62C15.57 20.58 14.85 21.42 13.88 21.5H13.75C12.84 21.5 12.08 20.8 12 19.88C12 19.56 12.05 19.26 12.18 19H12C11.07 19 10.19 18.82 9.38 18.5L8.31 20.47C8.56 20.96 8.57 21.56 8.29 22.08C7.97 22.67 7.37 23 6.75 23C6.47 23 6.18 22.93 5.92 22.79C5.07 22.33 4.75 21.27 5.21 20.42C5.5 19.89 6 19.58 6.55 19.5L7.65 17.5C6.95 16.92 6.35 16.22 5.9 15.43L4.39 15.84C4.21 16.36 3.78 16.78 3.21 16.94C3.05 17 2.9 17 2.75 17C2 17 1.27 16.5 1.06 15.71C.809 14.77 1.36 13.81 2.29 13.56C2.44 13.5 2.6 13.5 2.75 13.5C3.16 13.5 3.56 13.65 3.87 13.91L5.18 13.56C5.07 13.06 5 12.54 5 12C4.64 11.92 4.29 11.77 4 11.5C3.33 10.8 3.33 9.7 4 9C4.35 8.67 4.8 8.5 5.25 8.5C5.46 8.5 5.67 8.54 5.87 8.62C5.97 8.44 6.09 8.27 6.2 8.09L1.11 3L2.39 1.73L22.11 21.46M14.45 16.34L7.66 9.55C7.25 10.28 7 11.11 7 12C7 14.76 9.24 17 12 17C12.9 17 13.73 16.75 14.45 16.34M7.19 2.75C6.84 2.26 6.3 2 5.75 2C5.59 2 5.43 2.03 5.27 2.07L7.42 4.22C7.56 3.73 7.5 3.19 7.19 2.75Z\";\nexport var mdiVirusOutline = \"M12 .5C11.03 .5 10.25 1.28 10.25 2.25C10.25 2.84 10.55 3.37 11 3.68V5.08C10.1 5.21 9.26 5.5 8.5 5.94L7.39 4.35C7.58 3.83 7.53 3.23 7.19 2.75C6.84 2.26 6.3 2 5.75 2C5.4 2 5.05 2.1 4.75 2.32C3.96 2.87 3.76 3.96 4.32 4.75C4.66 5.24 5.2 5.5 5.75 5.5L6.93 7.18C6.5 7.61 6.16 8.09 5.87 8.62C5.67 8.54 5.46 8.5 5.25 8.5C4.8 8.5 4.35 8.67 4 9C3.33 9.7 3.33 10.8 4 11.5C4.29 11.77 4.64 11.92 5 12L5 12C5 12.54 5.07 13.06 5.18 13.56L3.87 13.91C3.56 13.65 3.16 13.5 2.75 13.5C2.6 13.5 2.44 13.5 2.29 13.56C1.36 13.81 .809 14.77 1.06 15.71C1.27 16.5 2 17 2.75 17C2.9 17 3.05 17 3.21 16.94C3.78 16.78 4.21 16.36 4.39 15.84L5.9 15.43C6.35 16.22 6.95 16.92 7.65 17.5L6.55 19.5C6 19.58 5.5 19.89 5.21 20.42C4.75 21.27 5.07 22.33 5.92 22.79C6.18 22.93 6.47 23 6.75 23C7.37 23 7.97 22.67 8.29 22.08C8.57 21.56 8.56 20.96 8.31 20.47L9.38 18.5C10.19 18.82 11.07 19 12 19C12.06 19 12.12 19 12.18 19C12.05 19.26 12 19.56 12 19.88C12.08 20.8 12.84 21.5 13.75 21.5C13.79 21.5 13.84 21.5 13.88 21.5C14.85 21.42 15.57 20.58 15.5 19.62C15.46 19.12 15.21 18.68 14.85 18.39C15.32 18.18 15.77 17.91 16.19 17.6L18.53 19.94C18.43 20.5 18.59 21.07 19 21.5C19.35 21.83 19.8 22 20.25 22S21.15 21.83 21.5 21.5C22.17 20.8 22.17 19.7 21.5 19C21.15 18.67 20.7 18.5 20.25 18.5C20.15 18.5 20.05 18.5 19.94 18.53L17.6 16.19C18.09 15.54 18.47 14.8 18.71 14H19.82C20.13 14.45 20.66 14.75 21.25 14.75C22.22 14.75 23 13.97 23 13S22.22 11.25 21.25 11.25C20.66 11.25 20.13 11.55 19.82 12H19C19 10.43 18.5 9 17.6 7.81L18.94 6.47C19.05 6.5 19.15 6.5 19.25 6.5C19.7 6.5 20.15 6.33 20.5 6C21.17 5.31 21.17 4.2 20.5 3.5C20.15 3.17 19.7 3 19.25 3S18.35 3.17 18 3.5C17.59 3.93 17.43 4.5 17.53 5.06L16.19 6.4C15.27 5.71 14.19 5.25 13 5.08V3.68C13.45 3.37 13.75 2.84 13.75 2.25C13.75 1.28 12.97 .5 12 .5M12 17C9.24 17 7 14.76 7 12S9.24 7 12 7 17 9.24 17 12 14.76 17 12 17M10.5 9C9.67 9 9 9.67 9 10.5S9.67 12 10.5 12 12 11.33 12 10.5 11.33 9 10.5 9M14 13C13.45 13 13 13.45 13 14C13 14.55 13.45 15 14 15C14.55 15 15 14.55 15 14C15 13.45 14.55 13 14 13Z\";\nexport var mdiVlc = \"M12,1C11.58,1 11.19,1.23 11,1.75L9.88,4.88C10.36,5.4 11.28,5.5 12,5.5C12.72,5.5 13.64,5.4 14.13,4.88L13,1.75C12.82,1.25 12.42,1 12,1M8.44,8.91L7,12.91C8.07,14.27 10.26,14.5 12,14.5C13.74,14.5 15.93,14.27 17,12.91L15.56,8.91C14.76,9.83 13.24,10 12,10C10.76,10 9.24,9.83 8.44,8.91M5.44,15C4.62,15 3.76,15.65 3.53,16.44L2.06,21.56C1.84,22.35 2.3,23 3.13,23H20.88C21.7,23 22.16,22.35 21.94,21.56L20.47,16.44C20.24,15.65 19.38,15 18.56,15H17.75L18.09,15.97C18.21,16.29 18.29,16.69 18.09,16.97C16.84,18.7 14.14,19 12,19C9.86,19 7.16,18.7 5.91,16.97C5.71,16.69 5.79,16.29 5.91,15.97L6.25,15H5.44Z\";\nexport var mdiVoicemail = \"M18.5,15A3.5,3.5 0 0,1 15,11.5A3.5,3.5 0 0,1 18.5,8A3.5,3.5 0 0,1 22,11.5A3.5,3.5 0 0,1 18.5,15M5.5,15A3.5,3.5 0 0,1 2,11.5A3.5,3.5 0 0,1 5.5,8A3.5,3.5 0 0,1 9,11.5A3.5,3.5 0 0,1 5.5,15M18.5,6A5.5,5.5 0 0,0 13,11.5C13,12.83 13.47,14.05 14.26,15H9.74C10.53,14.05 11,12.83 11,11.5A5.5,5.5 0 0,0 5.5,6A5.5,5.5 0 0,0 0,11.5A5.5,5.5 0 0,0 5.5,17H18.5A5.5,5.5 0 0,0 24,11.5A5.5,5.5 0 0,0 18.5,6Z\";\nexport var mdiVolcano = \"M18 8H11L9 13H6L2 22H22L18 8M13 1H15V5H13V1M16.12 5.47L18.95 2.64L20.36 4.05L17.54 6.88L16.12 5.47M7.64 4.05L9.05 2.64L11.88 5.46L10.47 6.88L7.64 4.05Z\";\nexport var mdiVolcanoOutline = \"M18 8H11L9 13H6L2 22H22L18 8M7.3 15H10.35L10.85 13.74L12.35 10H16.5L19.35 20H5.08L7.3 15M13 1H15V5H13V1M16.12 5.47L18.95 2.64L20.36 4.05L17.54 6.88L16.12 5.47M7.64 4.05L9.05 2.64L11.88 5.46L10.47 6.88L7.64 4.05Z\";\nexport var mdiVolleyball = \"M19.04 4.85C17.34 3.2 15.33 2.25 13 2V5.62L22 10.8C21.72 8.5 20.73 6.5 19.04 4.85M12 22C15.44 22 18.16 20.62 20.17 17.86L17.06 16L8.07 21.2C9.32 21.73 10.64 22 12 22M13 11.41L21.15 16.07C21.59 15.13 21.88 14.14 22 13.11L13 7.93V11.41M3.88 17.81C4.54 18.72 5.26 19.46 6.05 20L15.04 14.9L12 13.15L3.88 17.81M11.04 2C10 2.09 9 2.36 8 2.8V13.15L11.04 11.41V2M2 12C2 13.39 2.3 14.77 2.89 16.12L6 14.28V4C3.33 6 2 8.65 2 12Z\";\nexport var mdiVolumeEqual = \"M3 9H7L12 4V20L7 15H3V9M14 13H22V15H14M14 9H22V11H14Z\";\nexport var mdiVolumeHigh = \"M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z\";\nexport var mdiVolumeLow = \"M7,9V15H11L16,20V4L11,9H7Z\";\nexport var mdiVolumeMedium = \"M5,9V15H9L14,20V4L9,9M18.5,12C18.5,10.23 17.5,8.71 16,7.97V16C17.5,15.29 18.5,13.76 18.5,12Z\";\nexport var mdiVolumeMinus = \"M3,9H7L12,4V20L7,15H3V9M14,11H22V13H14V11Z\";\nexport var mdiVolumeMute = \"M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z\";\nexport var mdiVolumeOff = \"M12,4L9.91,6.09L12,8.18M4.27,3L3,4.27L7.73,9H3V15H7L12,20V13.27L16.25,17.53C15.58,18.04 14.83,18.46 14,18.7V20.77C15.38,20.45 16.63,19.82 17.68,18.96L19.73,21L21,19.73L12,10.73M19,12C19,12.94 18.8,13.82 18.46,14.64L19.97,16.15C20.62,14.91 21,13.5 21,12C21,7.72 18,4.14 14,3.23V5.29C16.89,6.15 19,8.83 19,12M16.5,12C16.5,10.23 15.5,8.71 14,7.97V10.18L16.45,12.63C16.5,12.43 16.5,12.21 16.5,12Z\";\nexport var mdiVolumePlus = \"M3,9H7L12,4V20L7,15H3V9M14,11H17V8H19V11H22V13H19V16H17V13H14V11Z\";\nexport var mdiVolumeSource = \"M3 9V15H7L12 20V4L7 9H3M16 15H14V9H16V15M20 19H18V5H20V19Z\";\nexport var mdiVolumeVariantOff = \"M5.64,3.64L21.36,19.36L19.95,20.78L16,16.83V20L11,15H7V9H8.17L4.22,5.05L5.64,3.64M16,4V11.17L12.41,7.58L16,4Z\";\nexport var mdiVolumeVibrate = \"M4 9V15H8L13 20V4L8 9H4M16.55 2.47L15.5 3.53L17.93 6L15 9L17.93 12L15 15L17.93 18L15.5 20.47L16.55 21.53L20 18L17.07 15L20 12L17.07 9L20 6L16.55 2.47Z\";\nexport var mdiVote = \"M18,13H17.32L15.32,15H17.23L19,17H5L6.78,15H8.83L6.83,13H6L3,16V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V16L18,13M17,7.95L12.05,12.9L8.5,9.36L13.46,4.41L17,7.95M12.76,2.29L6.39,8.66C6,9.05 6,9.68 6.39,10.07L11.34,15C11.73,15.41 12.36,15.41 12.75,15L19.11,8.66C19.5,8.27 19.5,7.64 19.11,7.25L14.16,2.3C13.78,1.9 13.15,1.9 12.76,2.29Z\";\nexport var mdiVoteOutline = \"M18,13L21,16V20C21,21.11 20.1,22 19,22H5C3.89,22 3,21.1 3,20V16L6,13H6.83L8.83,15H6.78L5,17H19L17.23,15H15.32L17.32,13H18M19,20V19H5V20H19M11.34,15L6.39,10.07C6,9.68 6,9.05 6.39,8.66L12.76,2.29C13.15,1.9 13.78,1.9 14.16,2.3L19.11,7.25C19.5,7.64 19.5,8.27 19.11,8.66L12.75,15C12.36,15.41 11.73,15.41 11.34,15M13.46,4.41L8.5,9.36L12.05,12.9L17,7.95L13.46,4.41Z\";\nexport var mdiVpn = \"M9,5H15L12,8L9,5M10.5,14.66C10.2,15 10,15.5 10,16A2,2 0 0,0 12,18A2,2 0 0,0 14,16C14,15.45 13.78,14.95 13.41,14.59L14.83,13.17C15.55,13.9 16,14.9 16,16A4,4 0 0,1 12,20A4,4 0 0,1 8,16C8,14.93 8.42,13.96 9.1,13.25L9.09,13.24L16.17,6.17V6.17C16.89,5.45 17.89,5 19,5A4,4 0 0,1 23,9A4,4 0 0,1 19,13C17.9,13 16.9,12.55 16.17,11.83L17.59,10.41C17.95,10.78 18.45,11 19,11A2,2 0 0,0 21,9A2,2 0 0,0 19,7C18.45,7 17.95,7.22 17.59,7.59L10.5,14.66M6.41,7.59C6.05,7.22 5.55,7 5,7A2,2 0 0,0 3,9A2,2 0 0,0 5,11C5.55,11 6.05,10.78 6.41,10.41L7.83,11.83C7.1,12.55 6.1,13 5,13A4,4 0 0,1 1,9A4,4 0 0,1 5,5C6.11,5 7.11,5.45 7.83,6.17V6.17L10.59,8.93L9.17,10.35L6.41,7.59Z\";\nexport var mdiVuejs = \"M2,3H5.5L12,15L18.5,3H22L12,21L2,3M6.5,3H9.5L12,7.58L14.5,3H17.5L12,13.08L6.5,3Z\";\nexport var mdiVuetify = \"M12,11.64L7.92,2H16.08L12,11.64M12,21.95L3.27,4.91H7.84L12,14.47L16.16,4.91H20.73L12,21.95Z\";\nexport var mdiWalk = \"M14.12,10H19V8.2H15.38L13.38,4.87C13.08,4.37 12.54,4.03 11.92,4.03C11.74,4.03 11.58,4.06 11.42,4.11L6,5.8V11H7.8V7.33L9.91,6.67L6,22H7.8L10.67,13.89L13,17V22H14.8V15.59L12.31,11.05L13.04,8.18M14,3.8C15,3.8 15.8,3 15.8,2C15.8,1 15,0.2 14,0.2C13,0.2 12.2,1 12.2,2C12.2,3 13,3.8 14,3.8Z\";\nexport var mdiWall = \"M3,16H12V21H3V16M2,10H8V15H2V10M9,10H15V15H9V10M16,10H22V15H16V10M13,16H21V21H13V16M3,4H11V9H3V4M12,4H21V9H12V4Z\";\nexport var mdiWallFire = \"M22.14 15.34L22.12 15.35C22.35 15.63 22.55 15.94 22.7 16.27L22.79 16.46C23.5 18.15 23 20.1 21.69 21.32C20.5 22.41 18.84 22.7 17.3 22.5C15.84 22.32 14.5 21.4 13.73 20.13C13.5 19.74 13.3 19.3 13.2 18.85C13.07 18.5 13.03 18.12 13 17.75C12.91 16.15 13.55 14.45 14.76 13.45C14.21 14.66 14.34 16.17 15.15 17.22L15.26 17.35C15.4 17.47 15.57 17.5 15.73 17.44C15.88 17.38 16 17.23 16 17.07L15.93 16.83C15.05 14.5 15.79 11.8 17.66 10.27C18.17 9.85 18.8 9.47 19.46 9.3C18.78 10.66 19 12.44 20.09 13.5C20.55 14 21.11 14.29 21.58 14.73L22.14 15.34M19.86 20L19.85 19.97C20.3 19.58 20.55 18.91 20.53 18.31L20.5 18C20.3 17 19.43 16.66 18.87 15.93L18.44 15.15C18.22 15.65 18.2 16.12 18.29 16.66C18.39 17.23 18.61 17.72 18.5 18.31C18.34 18.96 17.83 19.61 16.94 19.82C17.44 20.31 18.25 20.7 19.06 20.42C19.32 20.35 19.65 20.16 19.86 20M3 16H11.06L11 17C11 18.41 11.36 19.73 12 20.88V21H3V16M2 10H8V15H2V10M9 10H15V10.07C13.17 11.13 11.79 12.9 11.25 15H9V10M3 4H11V9H3V4M12 4H21V9H12V4Z\";\nexport var mdiWallSconce = \"M11,4L7,13H19L15,4H11M4,14V22H6V19H14V14H12V17H6V14H4Z\";\nexport var mdiWallSconceFlat = \"M5,5V11H19V5H5M5.27,13.32L3.5,15.09L4.91,16.5L6.68,14.73L5.27,13.32M18.73,13.32L17.32,14.73L19.09,16.5L20.5,15.09L18.73,13.32M11,16V19H13V16H11Z\";\nexport var mdiWallSconceFlatOutline = \"M5 5V11H19V5H5M17 9H7V7H17V9M5.27 13.32L3.5 15.09L4.91 16.5L6.68 14.73L5.27 13.32M18.73 13.32L17.32 14.73L19.09 16.5L20.5 15.09L18.73 13.32M11 16V19H13V16H11Z\";\nexport var mdiWallSconceFlatVariant = \"M19 19V13H5V19H19M18.73 10.68L20.5 8.91L19.09 7.5L17.32 9.27L18.73 10.68M5.27 10.68L6.68 9.27L4.91 7.5L3.5 8.91L5.27 10.68M13 8V5H11V8H13Z\";\nexport var mdiWallSconceFlatVariantOutline = \"M5 13V19H19V13H5M17 17H7V15H17V17M18.73 10.68L20.5 8.91L19.09 7.5L17.32 9.27L18.73 10.68M5.27 10.68L6.68 9.27L4.91 7.5L3.5 8.91L5.27 10.68M13 8V5H11V8H13Z\";\nexport var mdiWallSconceOutline = \"M13.7 6L15.92 11H10.08L12.3 6H13.7M15 4H11L7 13H19L15 4M4 14V22H6V19H14V14H12V17H6V14H4Z\";\nexport var mdiWallSconceRound = \"M13 19V16H11V19H13M19.09 16.5L20.5 15.09L18.73 13.32L17.32 14.73L19.09 16.5M4.91 16.5L6.68 14.73L5.27 13.32L3.5 15.09L4.91 16.5M20 12C20 9.14 18.5 6.5 16 5.07S10.5 3.64 8 5.07 4 9.14 4 12H20Z\";\nexport var mdiWallSconceRoundOutline = \"M13 19V16H11V19H13M19.09 16.5L20.5 15.09L18.73 13.32L17.32 14.73L19.09 16.5M4.91 16.5L6.68 14.73L5.27 13.32L3.5 15.09L4.91 16.5M12 6C13.04 6 14.08 6.28 15 6.81C16.26 7.5 17.19 8.67 17.66 10H6.34C6.81 8.67 7.74 7.5 9 6.81C9.92 6.28 10.96 6 12 6M12 4C10.63 4 9.25 4.36 8 5.07C5.5 6.5 4 9.14 4 12H20C20 9.14 18.5 6.5 16 5.07C14.75 4.36 13.38 4 12 4Z\";\nexport var mdiWallSconceRoundVariant = \"M11 5V8H13V5H11M4.91 7.5L3.5 8.91L5.27 10.68L6.68 9.27L4.91 7.5M19.09 7.5L17.32 9.27L18.73 10.68L20.5 8.91L19.09 7.5M4 12C4 14.86 5.5 17.5 8 18.93S13.5 20.36 16 18.93 20 14.86 20 12H4Z\";\nexport var mdiWallSconceRoundVariantOutline = \"M11 5V8H13V5H11M4.91 7.5L3.5 8.91L5.27 10.68L6.68 9.27L4.91 7.5M19.09 7.5L17.32 9.27L18.73 10.68L20.5 8.91L19.09 7.5M17.66 14C17.19 15.33 16.26 16.5 15 17.19C14.08 17.72 13.04 18 12 18S9.92 17.72 9 17.19C7.74 16.5 6.81 15.33 6.34 14H17.66M20 12H4C4 14.86 5.5 17.5 8 18.93C9.25 19.65 10.63 20 12 20S14.75 19.65 16 18.93C18.5 17.5 20 14.86 20 12Z\";\nexport var mdiWallet = \"M21,18V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H19A2,2 0 0,1 21,5V6H12C10.89,6 10,6.9 10,8V16A2,2 0 0,0 12,18M12,16H22V8H12M16,13.5A1.5,1.5 0 0,1 14.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,12A1.5,1.5 0 0,1 16,13.5Z\";\nexport var mdiWalletBifold = \"M17 3H7C4.79 3 3 4.79 3 7V17C3 19.21 4.79 21 7 21H19C20.11 21 21 20.11 21 19V9C21 7.9 20.11 7 19 7V5C19 3.9 18.11 3 17 3M17 5V7H7C6.27 7 5.59 7.2 5 7.54V7C5 5.9 5.9 5 7 5M15.5 15.5C14.67 15.5 14 14.83 14 14S14.67 12.5 15.5 12.5 17 13.17 17 14 16.33 15.5 15.5 15.5Z\";\nexport var mdiWalletBifoldOutline = \"M15.5 15.5C16.33 15.5 17 14.83 17 14C17 13.17 16.33 12.5 15.5 12.5C14.67 12.5 14 13.17 14 14C14 14.83 14.67 15.5 15.5 15.5M7 3H17C18.11 3 19 3.9 19 5V7C20.11 7 21 7.9 21 9V19C21 20.11 20.11 21 19 21H7C4.79 21 3 19.21 3 17V7C3 4.79 4.79 3 7 3M17 7V5H7C5.9 5 5 5.9 5 7V7.54C5.59 7.2 6.27 7 7 7H17M5 17C5 18.11 5.9 19 7 19H19V9H7C5.9 9 5 9.9 5 11V17Z\";\nexport var mdiWalletGiftcard = \"M20,14H4V8H9.08L7,10.83L8.62,12L11,8.76L12,7.4L13,8.76L15.38,12L17,10.83L14.92,8H20M20,19H4V17H20M9,4A1,1 0 0,1 10,5A1,1 0 0,1 9,6A1,1 0 0,1 8,5A1,1 0 0,1 9,4M15,4A1,1 0 0,1 16,5A1,1 0 0,1 15,6A1,1 0 0,1 14,5A1,1 0 0,1 15,4M20,6H17.82C17.93,5.69 18,5.35 18,5A3,3 0 0,0 15,2C13.95,2 13.04,2.54 12.5,3.35L12,4L11.5,3.34C10.96,2.54 10.05,2 9,2A3,3 0 0,0 6,5C6,5.35 6.07,5.69 6.18,6H4C2.89,6 2,6.89 2,8V19C2,20.11 2.89,21 4,21H20C21.11,21 22,20.11 22,19V8C22,6.89 21.11,6 20,6Z\";\nexport var mdiWalletMembership = \"M20,10H4V4H20M20,15H4V13H20M20,2H4C2.89,2 2,2.89 2,4V15C2,16.11 2.89,17 4,17H8V22L12,20L16,22V17H20C21.11,17 22,16.11 22,15V4C22,2.89 21.11,2 20,2Z\";\nexport var mdiWalletOutline = \"M5,3C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V16.72C21.59,16.37 22,15.74 22,15V9C22,8.26 21.59,7.63 21,7.28V5A2,2 0 0,0 19,3H5M5,5H19V7H13A2,2 0 0,0 11,9V15A2,2 0 0,0 13,17H19V19H5V5M13,9H20V15H13V9M16,10.5A1.5,1.5 0 0,0 14.5,12A1.5,1.5 0 0,0 16,13.5A1.5,1.5 0 0,0 17.5,12A1.5,1.5 0 0,0 16,10.5Z\";\nexport var mdiWalletPlus = \"M3 0V3H0V5H3V8H5V5H8V3H5V0H3M9 3V6H6V9H3V19C3 20.1 3.89 21 5 21H19C20.11 21 21 20.11 21 19V18H12C10.9 18 10 17.11 10 16V8C10 6.9 10.89 6 12 6H21V5C21 3.9 20.11 3 19 3H9M12 8V16H22V8H12M16 10.5C16.83 10.5 17.5 11.17 17.5 12C17.5 12.83 16.83 13.5 16 13.5C15.17 13.5 14.5 12.83 14.5 12C14.5 11.17 15.17 10.5 16 10.5Z\";\nexport var mdiWalletPlusOutline = \"M3 0V3H0V5H3V8H5V5H8V3H5V0H3M10 3V5H19V7H13C11.9 7 11 7.9 11 9V15C11 16.1 11.9 17 13 17H19V19H5V10H3V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V16.72C21.59 16.37 22 15.74 22 15V9C22 8.26 21.59 7.63 21 7.28V5C21 3.9 20.1 3 19 3H10M13 9H20V15H13V9M16 10.5A1.5 1.5 0 0 0 14.5 12A1.5 1.5 0 0 0 16 13.5A1.5 1.5 0 0 0 17.5 12A1.5 1.5 0 0 0 16 10.5Z\";\nexport var mdiWalletTravel = \"M20,14H4V8H7V10H9V8H15V10H17V8H20M20,19H4V17H20M9,4H15V6H9M20,6H17V4C17,2.89 16.11,2 15,2H9C7.89,2 7,2.89 7,4V6H4C2.89,6 2,6.89 2,8V19C2,20.11 2.89,21 4,21H20C21.11,21 22,20.11 22,19V8C22,6.89 21.11,6 20,6Z\";\nexport var mdiWallpaper = \"M4,4H11V2H4A2,2 0 0,0 2,4V11H4V4M10,13L6,18H18L15,14L12.97,16.71L10,13M17,8.5A1.5,1.5 0 0,0 15.5,7A1.5,1.5 0 0,0 14,8.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 17,8.5M20,2H13V4H20V11H22V4A2,2 0 0,0 20,2M20,20H13V22H20A2,2 0 0,0 22,20V13H20V20M4,13H2V20A2,2 0 0,0 4,22H11V20H4V13Z\";\nexport var mdiWan = \"M12,2A8,8 0 0,0 4,10C4,14.03 7,17.42 11,17.93V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15A1,1 0 0,0 14,19H13V17.93C17,17.43 20,14.03 20,10A8,8 0 0,0 12,2M12,4C12,4 12.74,5.28 13.26,7H10.74C11.26,5.28 12,4 12,4M9.77,4.43C9.5,4.93 9.09,5.84 8.74,7H6.81C7.5,5.84 8.5,4.93 9.77,4.43M14.23,4.44C15.5,4.94 16.5,5.84 17.19,7H15.26C14.91,5.84 14.5,4.93 14.23,4.44M6.09,9H8.32C8.28,9.33 8.25,9.66 8.25,10C8.25,10.34 8.28,10.67 8.32,11H6.09C6.03,10.67 6,10.34 6,10C6,9.66 6.03,9.33 6.09,9M10.32,9H13.68C13.72,9.33 13.75,9.66 13.75,10C13.75,10.34 13.72,10.67 13.68,11H10.32C10.28,10.67 10.25,10.34 10.25,10C10.25,9.66 10.28,9.33 10.32,9M15.68,9H17.91C17.97,9.33 18,9.66 18,10C18,10.34 17.97,10.67 17.91,11H15.68C15.72,10.67 15.75,10.34 15.75,10C15.75,9.66 15.72,9.33 15.68,9M6.81,13H8.74C9.09,14.16 9.5,15.07 9.77,15.56C8.5,15.06 7.5,14.16 6.81,13M10.74,13H13.26C12.74,14.72 12,16 12,16C12,16 11.26,14.72 10.74,13M15.26,13H17.19C16.5,14.16 15.5,15.07 14.23,15.57C14.5,15.07 14.91,14.16 15.26,13Z\";\nexport var mdiWardrobe = \"M4 4V19C4 20.1 4.9 21 6 21V22H8V21H11.5V2H6C4.9 2 4 2.9 4 4M8 10H10V13H8V10M18 2H12.5V21H16V22H18V21C19.1 21 20 20.1 20 19V4C20 2.9 19.1 2 18 2M16 13H14V10H16V13Z\";\nexport var mdiWardrobeOutline = \"M6 2C4.89 2 4 2.9 4 4V19C4 20.11 4.89 21 6 21V22H8V21H16V22H18V21C19.11 21 20 20.11 20 19V4C20 2.9 19.11 2 18 2H6M6 4H11V19H6V4M13 4H18V19H13V4M8 10V13H10V10H8M14 10V13H16V10H14Z\";\nexport var mdiWarehouse = \"M6 19H8V21H6V19M12 3L2 8V21H4V13H20V21H22V8L12 3M8 11H4V9H8V11M14 11H10V9H14V11M20 11H16V9H20V11M6 15H8V17H6V15M10 15H12V17H10V15M10 19H12V21H10V19M14 19H16V21H14V19Z\";\nexport var mdiWashingMachine = \"M14.83,11.17C16.39,12.73 16.39,15.27 14.83,16.83C13.27,18.39 10.73,18.39 9.17,16.83L14.83,11.17M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M7,4A1,1 0 0,0 6,5A1,1 0 0,0 7,6A1,1 0 0,0 8,5A1,1 0 0,0 7,4M10,4A1,1 0 0,0 9,5A1,1 0 0,0 10,6A1,1 0 0,0 11,5A1,1 0 0,0 10,4M12,8A6,6 0 0,0 6,14A6,6 0 0,0 12,20A6,6 0 0,0 18,14A6,6 0 0,0 12,8Z\";\nexport var mdiWashingMachineAlert = \"M12.83 11.17C14.39 12.73 14.39 15.27 12.83 16.83S8.73 18.39 7.17 16.83L12.83 11.17M4 2H16C17.11 2 18 2.9 18 4V20C18 21.11 17.11 22 16 22H4C2.9 22 2 21.11 2 20V4C2 2.9 2.9 2 4 2M5 4C4.45 4 4 4.45 4 5S4.45 6 5 6 6 5.55 6 5 5.55 4 5 4M8 4C7.45 4 7 4.45 7 5S7.45 6 8 6 9 5.55 9 5 8.55 4 8 4M10 8C6.69 8 4 10.69 4 14S6.69 20 10 20 16 17.31 16 14 13.31 8 10 8M20 15H22V17H20V15M20 7H22V13H20V7Z\";\nexport var mdiWashingMachineOff = \"M22.11 21.46L2.39 1.73L1.11 3L4 5.89V20C4 21.11 4.89 22 6 22H18C18.58 22 19.1 21.75 19.46 21.35L20.84 22.73L22.11 21.46M12 20C8.69 20 6 17.31 6 14C6 12.32 6.7 10.8 7.82 9.71L12.06 13.95L9.17 16.83C10.73 18.39 13.27 18.39 14.83 16.83C14.85 16.81 14.86 16.79 14.88 16.77L16.29 18.18C15.2 19.3 13.69 20 12 20M11.25 8.05C11.5 8 11.75 8 12 8C15.31 8 18 10.69 18 14C18 14.25 18 14.5 17.95 14.75L20 16.8V4C20 2.9 19.11 2 18 2H6C5.76 2 5.54 2.05 5.33 2.13L11.25 8.05M10 4C10.55 4 11 4.45 11 5S10.55 6 10 6 9 5.55 9 5 9.45 4 10 4Z\";\nexport var mdiWatch = \"M6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12M20,12C20,9.45 18.81,7.19 16.95,5.73L16,0H8L7.05,5.73C5.19,7.19 4,9.45 4,12C4,14.54 5.19,16.81 7.05,18.27L8,24H16L16.95,18.27C18.81,16.81 20,14.54 20,12Z\";\nexport var mdiWatchExport = \"M14,11H19L16.5,8.5L17.92,7.08L22.84,12L17.92,16.92L16.5,15.5L19,13H14V11M12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.4,6 14.69,6.5 15.71,7.29L17.13,5.87L16.95,5.73L16,0H8L7.05,5.73C5.19,7.19 4,9.46 4,12C4,14.55 5.19,16.81 7.05,18.27L8,24H16L16.95,18.27L17.13,18.13L15.71,16.71C14.69,17.5 13.4,18 12,18Z\";\nexport var mdiWatchExportVariant = \"M14,11H19L16.5,8.5L17.92,7.08L22.84,12L17.92,16.92L16.5,15.5L19,13H14V11M8,0H16L16.83,5H17C17.28,5 17.54,5.06 17.78,5.16L15.94,7H7V17H15.94L17.78,18.84C17.54,18.94 17.28,19 17,19H16.83L16,24H8L7.17,19H7A2,2 0 0,1 5,17V7C5,5.89 5.9,5 7,5H7.17L8,0Z\";\nexport var mdiWatchImport = \"M2,11H7L4.5,8.5L5.92,7.08L10.84,12L5.92,16.92L4.5,15.5L7,13H2V11M12,18A6,6 0 0,0 18,12A6,6 0 0,0 12,6C10.6,6 9.31,6.5 8.29,7.29L6.87,5.87L7.05,5.73L8,0H16L16.95,5.73C18.81,7.19 20,9.45 20,12C20,14.54 18.81,16.81 16.95,18.27L16,24H8L7.05,18.27L6.87,18.13L8.29,16.71C9.31,17.5 10.6,18 12,18Z\";\nexport var mdiWatchImportVariant = \"M1,11H6L3.5,8.5L4.92,7.08L9.84,12L4.92,16.92L3.5,15.5L6,13H1V11M8,0H16L16.83,5H17A2,2 0 0,1 19,7V17C19,18.11 18.1,19 17,19H16.83L16,24H8L7.17,19H7C6.46,19 6,18.79 5.62,18.44L7.06,17H17V7H7.06L5.62,5.56C6,5.21 6.46,5 7,5H7.17L8,0Z\";\nexport var mdiWatchVariant = \"M8,0L7.17,5H7A2,2 0 0,0 5,7V17C5,18.11 5.9,19 7,19H7.17L8,24H16L16.83,19H17A2,2 0 0,0 19,17V7C19,5.89 18.1,5 17,5H16.83L16,0H8M7,7H17V17H7V7Z\";\nexport var mdiWatchVibrate = \"M3,17V7H5V17H3M19,17V7H21V17H19M22,9H24V15H22V9M0,15V9H2V15H0M17.96,11.97C17.96,13.87 17.07,15.57 15.68,16.67L14.97,20.95H9L8.27,16.67C6.88,15.57 6,13.87 6,11.97C6,10.07 6.88,8.37 8.27,7.28L9,3H14.97L15.68,7.28C17.07,8.37 17.96,10.07 17.96,11.97M7.5,11.97C7.5,14.45 9.5,16.46 11.97,16.46A4.5,4.5 0 0,0 16.46,11.97C16.46,9.5 14.45,7.5 11.97,7.5A4.47,4.47 0 0,0 7.5,11.97Z\";\nexport var mdiWatchVibrateOff = \"M0,9H2V15H0V9M12,7.5C14.47,7.5 16.47,9.53 16.46,12C16.45,12.38 16.4,12.76 16.3,13.13L17.5,14.31C17.81,13.58 18,12.8 18,12C18,10.17 17.16,8.44 15.72,7.31L15,3H9L8.59,5.39L10.86,7.66C11.23,7.55 11.61,7.5 12,7.5M21,17V7H19V15.8L20.2,17H21M16.5,15.86L22.11,21.46L20.84,22.73L15.55,17.44L15,21H9L8.27,16.72C5.85,14.82 5.27,11.4 6.91,8.8L1.11,3L2.39,1.73L8.09,7.44L9.17,8.5L15.44,14.79L16.5,15.86M14.05,15.94L8.05,9.94C7.7,10.57 7.5,11.28 7.5,12C7.5,14.47 9.53,16.47 12,16.46C12.72,16.46 13.42,16.28 14.05,15.94M22,9V15H24V9H22M3,17H5V7H3V17Z\";\nexport var mdiWater = \"M12,20A6,6 0 0,1 6,14C6,10 12,3.25 12,3.25C12,3.25 18,10 18,14A6,6 0 0,1 12,20Z\";\nexport var mdiWaterAlert = \"M10 3.25C10 3.25 16 10 16 14C16 17.31 13.31 20 10 20S4 17.31 4 14C4 10 10 3.25 10 3.25M20 7V13H18V7H20M18 17H20V15H18V17Z\";\nexport var mdiWaterAlertOutline = \"M10 3.25C10 3.25 4 10 4 14C4 17.31 6.69 20 10 20S16 17.31 16 14C16 10 10 3.25 10 3.25M10 18C7.79 18 6 16.21 6 14C6 12.23 8 8.96 10 6.39C12 8.95 14 12.23 14 14C14 16.21 12.21 18 10 18M20 7V13H18V7H20M18 17H20V15H18V17Z\";\nexport var mdiWaterBoiler = \"M8 2C6.89 2 6 2.89 6 4V16C6 17.11 6.89 18 8 18H9V20H6V22H9C10.11 22 11 21.11 11 20V18H13V20C13 21.11 13.89 22 15 22H18V20H15V18H16C17.11 18 18 17.11 18 16V4C18 2.89 17.11 2 16 2H8M12 4.97A2 2 0 0 1 14 6.97A2 2 0 0 1 12 8.97A2 2 0 0 1 10 6.97A2 2 0 0 1 12 4.97M10 14.5H14V16H10V14.5Z\";\nexport var mdiWaterBoilerAlert = \"M6 2C4.89 2 4 2.89 4 4V16C4 17.11 4.89 18 6 18H7V20H4V22H7C8.11 22 9 21.11 9 20V18H11V20C11 21.11 11.89 22 13 22H16V20H13V18H14C15.11 18 16 17.11 16 16V4C16 2.89 15.11 2 14 2H6M10 4.97C11.11 4.97 12 5.87 12 6.97S11.11 8.97 10 8.97C8.9 8.97 8 8.07 8 6.97C8 5.87 8.9 4.97 10 4.97M8 14.5H12V16H8V14.5M18 15H20V17H18V15M18 7H20V13H18V7Z\";\nexport var mdiWaterBoilerAuto = \"M4 2C2.89 2 2 2.89 2 4V16C2 17.11 2.89 18 4 18H5V20H2V22H5C6.11 22 7 21.11 7 20V18H9V20C9 21.11 9.89 22 11 22H13L13.75 20H11V18H12C13.11 18 14 17.11 14 16V4C14 2.89 13.11 2 12 2H4M8 4.97C9.11 4.97 10 5.87 10 6.97S9.11 8.97 8 8.97C6.9 8.97 6 8.07 6 6.97C6 5.87 6.9 4.97 8 4.97M6 14.5H10V16H6V14.5M19.8 13H17.8L14.6 22H16.5L17.2 20H20.4L21.1 22H23L19.8 13M17.6 18.7L18.8 15L20 18.7H17.6Z\";\nexport var mdiWaterBoilerOff = \"M10 6.82L6.25 3.05C6.59 2.42 7.24 2 8 2H16C17.11 2 18 2.89 18 4V14.8L12.16 8.96C13.19 8.87 14 8 14 6.97C14 5.87 13.11 4.97 12 4.97C10.95 4.97 10.1 5.78 10 6.82M15 18V20H18V22H15C13.89 22 13 21.11 13 20V18H11V20C11 21.11 10.11 22 9 22H6V20H9V18H8C6.89 18 6 17.11 6 16V7.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L16.1 18C16.06 18 16.03 18 16 18H15M14 16V15.89L12.61 14.5H10V16H14Z\";\nexport var mdiWaterCheck = \"M21.75 16.25L17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84L21.75 16.25M17.62 12C16.31 8.1 12 3.25 12 3.25S6 10 6 14C6 17.31 8.69 20 12 20H12.34C12.12 19.36 12 18.7 12 18C12 14.82 14.5 12.22 17.62 12Z\";\nexport var mdiWaterCheckOutline = \"M21.75 16.25L17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84L21.75 16.25M8 14C8 12.23 10 8.96 12 6.39C13.5 8.33 15 10.67 15.67 12.47C16.27 12.21 16.93 12.06 17.62 12C16.31 8.1 12 3.25 12 3.25S6 10 6 14C6 17.31 8.69 20 12 20C12.12 20 12.23 20 12.34 20C12.12 19.36 12 18.7 12 18C9.79 18 8 16.21 8 14Z\";\nexport var mdiWaterCircle = \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 19C9.24 19 7 16.76 7 14C7 10.67 12 5.04 12 5.04S17 10.67 17 14C17 16.76 14.76 19 12 19Z\";\nexport var mdiWaterMinus = \"M22 17V19H14V17H22M17.62 12C16.31 8.1 12 3.25 12 3.25S6 10 6 14C6 17.31 8.69 20 12 20C12.12 20 12.23 20 12.34 20C12.12 19.36 12 18.7 12 18C12 14.82 14.5 12.22 17.62 12Z\";\nexport var mdiWaterMinusOutline = \"M22 17V19H14V17H22M8 14C8 12.23 10 8.96 12 6.39C13.5 8.33 15 10.67 15.67 12.47C16.27 12.21 16.93 12.06 17.62 12C16.31 8.1 12 3.25 12 3.25S6 10 6 14C6 17.31 8.69 20 12 20C12.12 20 12.23 20 12.34 20C12.12 19.36 12 18.7 12 18C9.79 18 8 16.21 8 14Z\";\nexport var mdiWaterOff = \"M20.84 22.73L16.29 18.18C15.2 19.3 13.69 20 12 20C8.69 20 6 17.31 6 14C6 12.67 6.67 11.03 7.55 9.44L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73M18 14C18 10 12 3.25 12 3.25S10.84 4.55 9.55 6.35L17.95 14.75C18 14.5 18 14.25 18 14Z\";\nexport var mdiWaterOffOutline = \"M22.11 21.46L2.39 1.73L1.11 3L7.65 9.54C6.74 11.03 6 12.65 6 14.23C6 17.54 8.69 20.23 12 20.23C13.74 20.23 15.3 19.5 16.4 18.29L20.84 22.73L22.11 21.46M12 18.23C9.78 18.23 8 16.45 8 14.23C8 13.5 8.5 12.27 9.14 11.03L15 16.88C14.26 17.71 13.2 18.23 12 18.23M11.14 7.94L9.71 6.5C10.57 5.38 11.25 4.61 11.25 4.61L12 3.77L12.75 4.61C12.75 4.61 14.03 6.06 15.32 7.94S18 12.07 18 14.23C18 14.41 18 14.59 17.97 14.77L15.46 12.26C15 11.23 14.37 10.07 13.68 9.07C12.84 7.85 12.44 7.42 12 6.9C11.73 7.21 11.5 7.5 11.14 7.94Z\";\nexport var mdiWaterOpacity = \"M16 14V12H17.61C17.85 12.71 18 13.39 18 14H16M15.58 8C15.12 7.29 14.65 6.61 14.2 6H14V8H15.58M16 12V10H14V12H16M16 8.68V10H16.74C16.5 9.56 16.26 9.11 16 8.68M12 16V14H14V12H12V10H14V8H12V6H14V5.73C12.9 4.26 12 3.25 12 3.25S6 10 6 14C6 17.31 8.69 20 12 20V18H14V16H12M14 19.65C14.75 19.39 15.42 19 16 18.46V18H14V19.65M14 16H16V14H14V16M16 18H16.46C17 17.42 17.39 16.75 17.65 16H16V18Z\";\nexport var mdiWaterOutline = \"M12,3.77L11.25,4.61C11.25,4.61 9.97,6.06 8.68,7.94C7.39,9.82 6,12.07 6,14.23A6,6 0 0,0 12,20.23A6,6 0 0,0 18,14.23C18,12.07 16.61,9.82 15.32,7.94C14.03,6.06 12.75,4.61 12.75,4.61L12,3.77M12,6.9C12.44,7.42 12.84,7.85 13.68,9.07C14.89,10.83 16,13.07 16,14.23C16,16.45 14.22,18.23 12,18.23C9.78,18.23 8,16.45 8,14.23C8,13.07 9.11,10.83 10.32,9.07C11.16,7.85 11.56,7.42 12,6.9Z\";\nexport var mdiWaterPercent = \"M12,3.25C12,3.25 6,10 6,14C6,17.32 8.69,20 12,20A6,6 0 0,0 18,14C18,10 12,3.25 12,3.25M14.47,9.97L15.53,11.03L9.53,17.03L8.47,15.97M9.75,10A1.25,1.25 0 0,1 11,11.25A1.25,1.25 0 0,1 9.75,12.5A1.25,1.25 0 0,1 8.5,11.25A1.25,1.25 0 0,1 9.75,10M14.25,14.5A1.25,1.25 0 0,1 15.5,15.75A1.25,1.25 0 0,1 14.25,17A1.25,1.25 0 0,1 13,15.75A1.25,1.25 0 0,1 14.25,14.5Z\";\nexport var mdiWaterPercentAlert = \"M20 7V13H18V7H20M18 17H20V15H18V17M10 3.25C10 3.25 4 10 4 14C4 17.32 6.69 20 10 20S16 17.31 16 14C16 10 10 3.25 10 3.25M7.75 10C8.44 10 9 10.56 9 11.25S8.44 12.5 7.75 12.5 6.5 11.94 6.5 11.25 7.06 10 7.75 10M12.25 17C11.56 17 11 16.44 11 15.75S11.56 14.5 12.25 14.5 13.5 15.06 13.5 15.75 12.94 17 12.25 17M7.53 17.03L6.47 15.97L12.47 9.97L13.53 11.03L7.53 17.03Z\";\nexport var mdiWaterPlus = \"M12 18C12 18.7 12.12 19.36 12.34 20C12.23 20 12.12 20 12 20C8.69 20 6 17.31 6 14C6 10 12 3.25 12 3.25S16.31 8.1 17.62 12C14.5 12.22 12 14.82 12 18M19 17V14H17V17H14V19H17V22H19V19H22V17H19Z\";\nexport var mdiWaterPlusOutline = \"M12 18C12 18.7 12.12 19.36 12.34 20C12.23 20 12.12 20 12 20C8.69 20 6 17.31 6 14C6 10 12 3.25 12 3.25S16.31 8.1 17.62 12C16.93 12.06 16.28 12.22 15.67 12.47C15 10.68 13.5 8.33 12 6.39C10 8.96 8 12.23 8 14C8 16.21 9.79 18 12 18M19 17V14H17V17H14V19H17V22H19V19H22V17H19Z\";\nexport var mdiWaterPolo = \"M20 16H22V18H20C18.6 18 17.2 17.6 16 17C13.5 18.3 10.5 18.3 8 17C6.8 17.6 5.4 18 4 18H2V16H4C5.4 16 6.8 15.5 8 14.7C10.4 16.4 13.6 16.4 16 14.7C17.2 15.5 18.6 16 20 16M13 10.6C13.6 10.3 14.3 10 15 9.9V10.2C15.3 11.2 15.3 12.1 15.2 13.1C14.3 13.6 13.2 13.9 12.2 13.9C12.7 12.9 13 11.7 13 10.6M12.9 3.6C11.5 4 10.3 4.7 9.3 5.7C8.9 4.7 8.7 3.7 8.7 2.7C10.9 1.7 13.4 1.8 15.6 2.9C15.9 3 16.2 3.1 16.4 3.3C15.2 3.2 14 3.3 12.9 3.6M6.8 13.3C6.2 13.6 5.6 13.8 5 13.9C4.3 12.6 4 11.2 4 9.8C4.5 10.8 5.2 11.8 6 12.6C6.3 12.8 6.5 13.1 6.8 13.3M19 13.9C18.4 13.8 17.8 13.6 17.3 13.4C17.5 12.2 17.4 11 17.1 9.8C18.2 9.9 19.2 10.2 20.1 10.8C20 11.8 19.7 12.7 19.2 13.6L19 13.9M7.4 11.2C6.2 10.1 5.5 8.5 5.2 6.9L5.1 6C5.6 5.2 6.1 4.6 6.8 4C6.9 5.4 7.4 6.7 8.2 7.8C8.9 8.9 9.9 9.9 11 10.5C11 11.3 10.8 12.1 10.5 12.9C9.3 12.6 8.3 12 7.4 11.2M13.5 5.5C15 5.1 16.7 5.2 18.2 5.7L19 6.1C19.4 6.8 19.6 7.6 19.8 8.4C17.3 7.3 14.4 7.5 12 8.8C11.3 8.5 10.8 8 10.3 7.4L10.4 7.3C11.3 6.5 12.3 5.8 13.5 5.5M16 18.7C17.2 19.5 18.6 20 20 20H22V22H20C18.6 22 17.2 21.6 16 21C13.5 22.3 10.5 22.3 8 21C6.8 21.6 5.4 22 4 22H2V20H4C5.4 20 6.8 19.5 8 18.7C10.4 20.4 13.6 20.4 16 18.7Z\";\nexport var mdiWaterPump = \"M19,14.5C19,14.5 21,16.67 21,18A2,2 0 0,1 19,20A2,2 0 0,1 17,18C17,16.67 19,14.5 19,14.5M5,18V9A2,2 0 0,1 3,7A2,2 0 0,1 5,5V4A2,2 0 0,1 7,2H9A2,2 0 0,1 11,4V5H19A2,2 0 0,1 21,7V9L21,11A1,1 0 0,1 22,12A1,1 0 0,1 21,13H17A1,1 0 0,1 16,12A1,1 0 0,1 17,11V9H11V18H12A2,2 0 0,1 14,20V22H2V20A2,2 0 0,1 4,18H5Z\";\nexport var mdiWaterPumpOff = \"M5.7 2.5A2 2 0 0 1 7 2H9A2 2 0 0 1 11 4V5H19A2 2 0 0 1 21 7V11A1 1 0 0 1 21 13H17A1 1 0 0 1 17 11V9H12.2M20.84 22.73L22.11 21.46L11 10.34L2.39 1.73L1.11 3L3.65 5.54A2 2 0 0 0 5 9V18H4A2 2 0 0 0 2 20V22H14V20A2 2 0 0 0 12 18H11V12.89Z\";\nexport var mdiWaterRemove = \"M12 18C12 18.7 12.12 19.36 12.34 20C12.23 20 12.12 20 12 20C8.69 20 6 17.31 6 14C6 10 12 3.25 12 3.25S16.31 8.1 17.62 12C14.5 12.22 12 14.82 12 18M21.54 15.88L20.13 14.47L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.53L18 19.41L20.12 21.53L21.53 20.12L19.41 18L21.54 15.88Z\";\nexport var mdiWaterRemoveOutline = \"M12 18C12 18.7 12.12 19.36 12.34 20C12.23 20 12.12 20 12 20C8.69 20 6 17.31 6 14C6 10 12 3.25 12 3.25S16.31 8.1 17.62 12C16.93 12.06 16.28 12.22 15.67 12.47C15 10.68 13.5 8.33 12 6.39C10 8.96 8 12.23 8 14C8 16.21 9.79 18 12 18M21.54 15.88L20.13 14.47L18 16.59L15.88 14.47L14.47 15.88L16.59 18L14.47 20.12L15.88 21.53L18 19.41L20.12 21.53L21.53 20.12L19.41 18L21.54 15.88Z\";\nexport var mdiWaterSync = \"M12 3.2C12 3.2 6 10 6 14C6 17.3 8.7 20 12 20S18 17.3 18 14C18 10 12 3.2 12 3.2M12 8.5V10C14.2 10 16 11.8 16 14C16 14.8 15.8 15.6 15.3 16.2L14.2 15.1C14.4 14.8 14.5 14.4 14.5 14C14.5 12.6 13.4 11.5 12 11.5V13L9.8 10.8L12 8.5M8.7 11.8L9.8 12.9C9.6 13.2 9.5 13.6 9.5 14C9.5 15.4 10.6 16.5 12 16.5V15L14.2 17.2L12 19.5V18C9.8 18 8 16.2 8 14C8 13.2 8.2 12.4 8.7 11.8Z\";\nexport var mdiWaterThermometer = \"M19 5C17.89 5 17 5.89 17 7V13.76C16.36 14.33 16 15.15 16 16C16 17.66 17.34 19 19 19S22 17.66 22 16C22 15.15 21.64 14.33 21 13.77V7C21 5.89 20.11 5 19 5M19 6C19.55 6 20 6.45 20 7V8H18V7C18 6.45 18.45 6 19 6M8 20C4.69 20 2 17.31 2 14C2 10 8 3.25 8 3.25S14 10 14 14C14 17.31 11.31 20 8 20Z\";\nexport var mdiWaterThermometerOutline = \"M19 5C17.89 5 17 5.89 17 7V13.76C16.36 14.33 16 15.15 16 16C16 17.66 17.34 19 19 19S22 17.66 22 16C22 15.15 21.64 14.33 21 13.77V7C21 5.89 20.11 5 19 5M19 6C19.55 6 20 6.45 20 7V8H18V7C18 6.45 18.45 6 19 6M8 3.54L7.25 4.38C7.25 4.38 5.97 5.83 4.68 7.71S2 11.84 2 14C2 17.31 4.69 20 8 20S14 17.31 14 14C14 11.84 12.61 9.59 11.32 7.71S8.75 4.38 8.75 4.38L8 3.54M8 6.67C8.44 7.19 8.84 7.62 9.68 8.84C10.89 10.6 12 12.84 12 14C12 16.22 10.22 18 8 18S4 16.22 4 14C4 12.84 5.11 10.6 6.32 8.84C7.16 7.62 7.56 7.19 8 6.67Z\";\nexport var mdiWaterWell = \"M22 16H2V18H4V22H20V18H22V16M10.44 15C10.19 15 10 14.81 9.95 14.56L9.57 11.56C9.57 11.54 9.57 11.5 9.57 11.5C9.57 11.22 9.79 11 10.07 11H13.93C13.95 11 13.97 11 14 11C14.27 11.04 14.46 11.29 14.43 11.56L14.05 14.56C14 14.81 13.81 15 13.56 15H10.44M19 2L21.56 6.68C21.6 6.78 21.61 6.89 21.61 7C21.61 7.56 21.16 8 20.61 8H19V15H17V8H13V10H11V8H7V15H5V8H3.62C3.46 8 3.31 7.96 3.16 7.89C2.67 7.64 2.47 7.04 2.72 6.55L5 2H19Z\";\nexport var mdiWaterWellOutline = \"M3.62 8H5V15H7V8H11V10H13V8H17V15H19V8H20.61C21.16 8 21.61 7.56 21.61 7C21.61 6.89 21.6 6.78 21.56 6.68L19 2H5L2.72 6.55C2.47 7.04 2.67 7.64 3.16 7.89C3.31 7.96 3.46 8 3.62 8M6.24 4H17.76L18.76 6H5.24L6.24 4M2 16V18H4V22H20V18H22V16H2M18 20H6V18H18V20M13.93 11C14.21 11 14.43 11.22 14.43 11.5C14.43 11.5 14.43 11.54 14.43 11.56L14.05 14.56C14 14.81 13.81 15 13.56 15H10.44C10.19 15 10 14.81 9.95 14.56L9.57 11.56C9.54 11.29 9.73 11.04 10 11C10.03 11 10.05 11 10.07 11H13.93Z\";\nexport var mdiWaterfall = \"M20 20C18.61 20 17.22 19.53 16 18.67C13.56 20.38 10.44 20.38 8 18.67C6.78 19.53 5.39 20 4 20H2V22H4C5.37 22 6.74 21.65 8 21C10.5 22.3 13.5 22.3 16 21C17.26 21.65 18.62 22 20 22H22V20M20 16C18.61 16 17.22 15.53 16 14.67C13.56 16.38 10.44 16.38 8 14.67C6.78 15.53 5.39 16 4 16H2V18H4C5.37 18 6.74 17.65 8 17C10.5 18.3 13.5 18.3 16 17C17.26 17.65 18.62 18 20 18H22V16M22 2H2V4H6V16H18V4H22M9 4H11V10H9M13 8H15V14H13Z\";\nexport var mdiWateringCan = \"M18.5 7.47C17.76 8.2 17.57 9.25 17.92 10.15L15 13.07V11C15 10.45 14.55 10 14 10H12.97C13 9.83 13 9.67 13 9.5C13 6.46 10.54 4 7.5 4S2 6.46 2 9.5C2 11.21 2.78 12.73 4 13.74V20C4 20.55 4.45 21 5 21H14C14.55 21 15 20.55 15 20V15.89L19.33 11.56C20.23 11.91 21.28 11.73 22 11L18.5 7.47M4.05 10C4.03 9.83 4 9.67 4 9.5C4 7.57 5.57 6 7.5 6S11 7.57 11 9.5C11 9.67 10.97 9.83 10.95 10H4.05Z\";\nexport var mdiWateringCanOutline = \"M18.5 7.47C17.76 8.2 17.57 9.25 17.92 10.15L15 13.07V11C15 10.45 14.55 10 14 10H12.97C13 9.83 13 9.67 13 9.5C13 6.46 10.54 4 7.5 4S2 6.46 2 9.5C2 11.21 2.78 12.73 4 13.74V20C4 20.55 4.45 21 5 21H14C14.55 21 15 20.55 15 20V15.89L19.33 11.56C20.23 11.91 21.28 11.73 22 11L18.5 7.47M4.05 10C4.03 9.83 4 9.67 4 9.5C4 7.57 5.57 6 7.5 6S11 7.57 11 9.5C11 9.67 10.97 9.83 10.95 10M13 19H6V12H13V19Z\";\nexport var mdiWatermark = \"M21,3H3A2,2 0 0,0 1,5V19A2,2 0 0,0 3,21H21A2,2 0 0,0 23,19V5A2,2 0 0,0 21,3M21,19H12V13H21V19Z\";\nexport var mdiWave = \"M20,12C18.61,12 17.22,11.53 16,10.67C13.56,12.38 10.44,12.38 8,10.67C6.78,11.53 5.39,12 4,12H2V14H4C5.37,14 6.74,13.65 8,13C10.5,14.3 13.5,14.3 16,13C17.26,13.65 18.62,14 20,14H22V12\";\nexport var mdiWaveArrowDown = \"M20 7H22V9H20C18.62 9 17.26 8.65 16 8C13.5 9.3 10.5 9.3 8 8C6.74 8.65 5.37 9 4 9H2V7H4C5.39 7 6.78 6.53 8 5.67C10.44 7.38 13.56 7.38 16 5.67C17.22 6.53 18.61 7 20 7M12 22L8 18H11V11H13V18H16L12 22Z\";\nexport var mdiWaveArrowUp = \"M20 7H22V9H20C18.62 9 17.26 8.65 16 8C13.5 9.3 10.5 9.3 8 8C6.74 8.65 5.37 9 4 9H2V7H4C5.39 7 6.78 6.53 8 5.67C10.44 7.38 13.56 7.38 16 5.67C17.22 6.53 18.61 7 20 7M12 11L16 15H13V22H11V15H8L12 11Z\";\nexport var mdiWaveUndercurrent = \"M20 7H22V9H20C18.62 9 17.26 8.65 16 8C13.5 9.3 10.5 9.3 8 8C6.74 8.65 5.37 9 4 9H2V7H4C5.39 7 6.78 6.53 8 5.67C10.44 7.38 13.56 7.38 16 5.67C17.22 6.53 18.61 7 20 7M12 12.5C14.21 12.5 16 14.29 16 16.5C16 17.32 15.75 18.08 15.33 18.71L14.24 17.62C14.41 17.28 14.5 16.9 14.5 16.5C14.5 15.12 13.38 14 12 14V15.5L9.75 13.25L12 11V12.5M12 19V17.5L14.25 19.75L12 22V20.5C9.79 20.5 8 18.71 8 16.5C8 15.68 8.25 14.92 8.67 14.29L9.76 15.38C9.59 15.72 9.5 16.1 9.5 16.5C9.5 17.88 10.62 19 12 19Z\";\nexport var mdiWaveform = \"M22 12L20 13L19 14L18 13L17 16L16 13L15 21L14 13L13 15L12 13L11 17L10 13L9 22L8 13L7 19L6 13L5 14L4 13L2 12L4 11L5 10L6 11L7 5L8 11L9 2L10 11L11 7L12 11L13 9L14 11L15 3L16 11L17 8L18 11L19 10L20 11L22 12Z\";\nexport var mdiWaves = \"M20,12H22V14H20C18.62,14 17.26,13.65 16,13C13.5,14.3 10.5,14.3 8,13C6.74,13.65 5.37,14 4,14H2V12H4C5.39,12 6.78,11.53 8,10.67C10.44,12.38 13.56,12.38 16,10.67C17.22,11.53 18.61,12 20,12M20,6H22V8H20C18.62,8 17.26,7.65 16,7C13.5,8.3 10.5,8.3 8,7C6.74,7.65 5.37,8 4,8H2V6H4C5.39,6 6.78,5.53 8,4.67C10.44,6.38 13.56,6.38 16,4.67C17.22,5.53 18.61,6 20,6M20,18H22V20H20C18.62,20 17.26,19.65 16,19C13.5,20.3 10.5,20.3 8,19C6.74,19.65 5.37,20 4,20H2V18H4C5.39,18 6.78,17.53 8,16.67C10.44,18.38 13.56,18.38 16,16.67C17.22,17.53 18.61,18 20,18Z\";\nexport var mdiWavesArrowLeft = \"M4 14C5.39 14 6.78 13.53 8 12.67C10.44 14.38 13.56 14.38 16 12.67C17.22 13.53 18.61 14 20 14H22V16H20C18.63 16 17.26 15.65 16 15C13.5 16.3 10.5 16.3 8 15C6.74 15.65 5.38 16 4 16H2V14H4M8 18.67C10.44 20.38 13.56 20.38 16 18.67C17.22 19.53 18.61 20 20 20H22V22H20C18.63 22 17.26 21.65 16 21C13.5 22.3 10.5 22.3 8 21C6.74 21.65 5.38 22 4 22H2V20H4C5.39 20 6.78 19.53 8 18.67M6 10V7H11V5H6V2L2 6\";\nexport var mdiWavesArrowRight = \"M20 14H22V16H20C18.62 16 17.26 15.65 16 15C13.5 16.3 10.5 16.3 8 15C6.74 15.65 5.37 16 4 16H2V14H4C5.39 14 6.78 13.53 8 12.67C10.44 14.38 13.56 14.38 16 12.67C17.22 13.53 18.61 14 20 14M20 20H22V22H20C18.62 22 17.26 21.65 16 21C13.5 22.3 10.5 22.3 8 21C6.74 21.65 5.37 22 4 22H2V20H4C5.39 20 6.78 19.53 8 18.67C10.44 20.38 13.56 20.38 16 18.67C17.22 19.53 18.61 20 20 20M22 6L18 2V5H13V7H18V10\";\nexport var mdiWavesArrowUp = \"M20 14H22V16H20C18.62 16 17.26 15.65 16 15C13.5 16.3 10.5 16.3 8 15C6.74 15.65 5.37 16 4 16H2V14H4C5.39 14 6.78 13.53 8 12.67C10.44 14.38 13.56 14.38 16 12.67C17.22 13.53 18.61 14 20 14M20 20H22V22H20C18.62 22 17.26 21.65 16 21C13.5 22.3 10.5 22.3 8 21C6.74 21.65 5.37 22 4 22H2V20H4C5.39 20 6.78 19.53 8 18.67C10.44 20.38 13.56 20.38 16 18.67C17.22 19.53 18.61 20 20 20M7 2L3 6H6V11H8V6H11M17 2L13 6H16V11H18V6H21\";\nexport var mdiWaze = \"M20.54,6.63C21.23,7.57 21.69,8.67 21.89,9.82C22.1,11.07 22,12.34 21.58,13.54C21.18,14.71 20.5,15.76 19.58,16.6C18.91,17.24 18.15,17.77 17.32,18.18C17.73,19.25 17.19,20.45 16.12,20.86C15.88,20.95 15.63,21 15.38,21C14.27,21 13.35,20.11 13.31,19C13.05,19 10.73,19 10.24,19C10.13,20.14 9.11,21 7.97,20.87C6.91,20.77 6.11,19.89 6.09,18.83C6.1,18.64 6.13,18.44 6.19,18.26C4.6,17.73 3.21,16.74 2.19,15.41C1.86,14.97 1.96,14.34 2.42,14C2.6,13.86 2.82,13.78 3.05,13.78C3.77,13.78 4.05,13.53 4.22,13.15C4.46,12.43 4.6,11.68 4.61,10.92C4.64,10.39 4.7,9.87 4.78,9.35C5.13,7.62 6.1,6.07 7.5,5C9.16,3.7 11.19,3 13.29,3C14.72,3 16.13,3.35 17.4,4C18.64,4.62 19.71,5.5 20.54,6.63M16.72,17.31C18.5,16.5 19.9,15.04 20.59,13.21C22.21,8.27 18,4.05 13.29,4.05C12.94,4.05 12.58,4.07 12.23,4.12C9.36,4.5 6.4,6.5 5.81,9.5C5.43,11.5 6,14.79 3.05,14.79C4,16 5.32,16.93 6.81,17.37C7.66,16.61 8.97,16.69 9.74,17.55C9.85,17.67 9.94,17.8 10,17.94C10.59,17.94 13.2,17.94 13.55,17.94C14.07,16.92 15.33,16.5 16.35,17.04C16.5,17.12 16.6,17.21 16.72,17.31M10.97,10.31C10.39,10.34 9.88,9.9 9.85,9.31C9.82,8.73 10.27,8.23 10.85,8.19C11.43,8.16 11.94,8.61 11.97,9.25C12,9.8 11.56,10.27 11,10.29L10.97,10.31M15.66,10.31C15.08,10.34 14.57,9.9 14.54,9.31C14.5,8.73 14.96,8.23 15.54,8.19C16.12,8.16 16.63,8.61 16.66,9.25C16.68,9.8 16.25,10.27 15.66,10.29V10.31M9.71,12.07C9.65,11.79 9.84,11.5 10.12,11.45C10.4,11.4 10.68,11.58 10.74,11.86V11.86C11.09,12.97 12.16,13.69 13.32,13.6C14.46,13.66 15.5,12.96 15.89,11.88C16.03,11.62 16.35,11.5 16.6,11.65C16.78,11.75 16.89,11.92 16.89,12.12C16.7,12.83 16.26,13.45 15.66,13.88C14.97,14.36 14.16,14.63 13.32,14.64H13.21C11.58,14.71 10.11,13.64 9.68,12.06L9.71,12.07Z\";\nexport var mdiWeatherCloudy = \"M6,19A5,5 0 0,1 1,14A5,5 0 0,1 6,9C7,6.65 9.3,5 12,5C15.43,5 18.24,7.66 18.5,11.03L19,11A4,4 0 0,1 23,15A4,4 0 0,1 19,19H6M19,13H17V12A5,5 0 0,0 12,7C9.5,7 7.45,8.82 7.06,11.19C6.73,11.07 6.37,11 6,11A3,3 0 0,0 3,14A3,3 0 0,0 6,17H19A2,2 0 0,0 21,15A2,2 0 0,0 19,13Z\";\nexport var mdiWeatherCloudyAlert = \"M6,19A5,5 0 0,1 1,14A5,5 0 0,1 6,9C7,6.65 9.3,5 12,5C15.43,5 18.24,7.66 18.5,11.03L19,11A4,4 0 0,1 23,15A4,4 0 0,1 19,19H6M19,13H17V12A5,5 0 0,0 12,7C9.5,7 7.45,8.82 7.06,11.19C6.73,11.07 6.37,11 6,11A3,3 0 0,0 3,14A3,3 0 0,0 6,17H19A2,2 0 0,0 21,15A2,2 0 0,0 19,13M13,12H11V8H13V12M13,16H11V14H13\";\nexport var mdiWeatherCloudyArrowRight = \"M6,7L6.69,7.06C7.32,4.72 9.46,3 12,3A5.5,5.5 0 0,1 17.5,8.5L17.42,9.45C17.88,9.16 18.42,9 19,9A3,3 0 0,1 22,12A3,3 0 0,1 19,15H6A4,4 0 0,1 2,11A4,4 0 0,1 6,7M6,9A2,2 0 0,0 4,11A2,2 0 0,0 6,13H19A1,1 0 0,0 20,12A1,1 0 0,0 19,11H15.5V8.5A3.5,3.5 0 0,0 12,5A3.5,3.5 0 0,0 8.5,8.5V9H6M22,19L19,22V20H2V18H19V16L22,19\";\nexport var mdiWeatherCloudyClock = \"M15 13H16.5V15.82L18.94 17.23L18.19 18.53L15 16.69V13M18.13 9.33C17.23 6.81 14.83 5 12 5C9.3 5 7 6.65 6 9C3.24 9 1 11.24 1 14S3.24 19 6 19H9.68C10.81 21.36 13.21 23 16 23C19.87 23 23 19.87 23 16C23 12.88 20.96 10.24 18.13 9.33M6 17C4.34 17 3 15.66 3 14S4.34 11 6 11C6.37 11 6.73 11.07 7.06 11.19C7.45 8.82 9.5 7 12 7C13.63 7 15.07 7.79 16 9C12.12 9 9 12.14 9 16C9 16.34 9.03 16.67 9.08 17H6M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21Z\";\nexport var mdiWeatherDust = \"M3 5C3 4.4 3.4 4 4 4H5C5.6 4 6 4.4 6 5S5.6 6 5 6H4C3.4 6 3 5.6 3 5M4 13C4 12.4 4.4 12 5 12H6C6.6 12 7 12.4 7 13S6.6 14 6 14H5C4.4 14 4 13.6 4 13M4 16C3.4 16 3 16.4 3 17S3.4 18 4 18H9C9.6 18 10 17.6 10 17S9.6 16 9 16H4M18 5C18 4.4 18.4 4 19 4H21C21.6 4 22 4.4 22 5S21.6 6 21 6H19C18.4 6 18 5.6 18 5M7 20C6.4 20 6 20.4 6 21S6.4 22 7 22H11C11.6 22 12 21.6 12 21S11.6 20 11 20H7M3 10C2.4 10 2 9.6 2 9S2.4 8 3 8H12C13.1 8 14 7.1 14 6S13.1 4 12 4C11.4 4 10.9 4.2 10.6 4.6C10.2 5 9.6 5 9.2 4.6C8.8 4.2 8.8 3.6 9.2 3.2C9.9 2.5 10.9 2 12 2C14.2 2 16 3.8 16 6S14.2 10 12 10H3M19 12C19.6 12 20 11.6 20 11S19.6 10 19 10C18.7 10 18.5 10.1 18.3 10.3C17.9 10.7 17.3 10.7 16.9 10.3C16.5 9.9 16.5 9.3 16.9 8.9C17.4 8.3 18.2 8 19 8C20.7 8 22 9.3 22 11S20.7 14 19 14H10C9.4 14 9 13.6 9 13S9.4 12 10 12H19M18 18H13C12.4 18 12 17.6 12 17S12.4 16 13 16H18C19.7 16 21 17.3 21 19S19.7 22 18 22C17.2 22 16.4 21.7 15.9 21.1C15.5 20.7 15.5 20.1 15.9 19.7C16.3 19.3 16.9 19.3 17.3 19.7C17.5 19.9 17.7 20 18 20C18.6 20 19 19.6 19 19S18.6 18 18 18Z\";\nexport var mdiWeatherFog = \"M3,15H13A1,1 0 0,1 14,16A1,1 0 0,1 13,17H3A1,1 0 0,1 2,16A1,1 0 0,1 3,15M16,15H21A1,1 0 0,1 22,16A1,1 0 0,1 21,17H16A1,1 0 0,1 15,16A1,1 0 0,1 16,15M1,12A5,5 0 0,1 6,7C7,4.65 9.3,3 12,3C15.43,3 18.24,5.66 18.5,9.03L19,9C21.19,9 22.97,10.76 23,13H21A2,2 0 0,0 19,11H17V10A5,5 0 0,0 12,5C9.5,5 7.45,6.82 7.06,9.19C6.73,9.07 6.37,9 6,9A3,3 0 0,0 3,12C3,12.35 3.06,12.69 3.17,13H1.1L1,12M3,19H5A1,1 0 0,1 6,20A1,1 0 0,1 5,21H3A1,1 0 0,1 2,20A1,1 0 0,1 3,19M8,19H21A1,1 0 0,1 22,20A1,1 0 0,1 21,21H8A1,1 0 0,1 7,20A1,1 0 0,1 8,19Z\";\nexport var mdiWeatherHail = \"M6,14A1,1 0 0,1 7,15A1,1 0 0,1 6,16A5,5 0 0,1 1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16H18A1,1 0 0,1 17,15A1,1 0 0,1 18,14H19A2,2 0 0,0 21,12A2,2 0 0,0 19,10H17V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11A3,3 0 0,0 6,14M10,18A2,2 0 0,1 12,20A2,2 0 0,1 10,22A2,2 0 0,1 8,20A2,2 0 0,1 10,18M14.5,16A1.5,1.5 0 0,1 16,17.5A1.5,1.5 0 0,1 14.5,19A1.5,1.5 0 0,1 13,17.5A1.5,1.5 0 0,1 14.5,16M10.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,15A1.5,1.5 0 0,1 9,13.5A1.5,1.5 0 0,1 10.5,12Z\";\nexport var mdiWeatherHazy = \"M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64M14,15A1,1 0 0,0 13,14H3A1,1 0 0,0 2,15A1,1 0 0,0 3,16H13A1,1 0 0,0 14,15M22,15A1,1 0 0,0 21,14H17A1,1 0 0,0 16,15A1,1 0 0,0 17,16H21A1,1 0 0,0 22,15M10,19A1,1 0 0,0 11,20H20A1,1 0 0,0 21,19A1,1 0 0,0 20,18H11A1,1 0 0,0 10,19M3,19A1,1 0 0,0 4,20H7A1,1 0 0,0 8,19A1,1 0 0,0 7,18H4A1,1 0 0,0 3,19M12,9A3,3 0 0,1 15,12H17A5,5 0 0,0 12,7A5,5 0 0,0 7,12H9A3,3 0 0,1 12,9Z\";\nexport var mdiWeatherHurricane = \"M15,6.79C16.86,7.86 18,9.85 18,12C18,22 6,22 6,22C7.25,21.06 8.38,19.95 9.34,18.71C9.38,18.66 9.41,18.61 9.44,18.55C9.69,18.06 9.5,17.46 9,17.21C7.14,16.14 6,14.15 6,12C6,2 18,2 18,2C16.75,2.94 15.62,4.05 14.66,5.29C14.62,5.34 14.59,5.39 14.56,5.45C14.31,5.94 14.5,6.54 15,6.79M12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14Z\";\nexport var mdiWeatherHurricaneOutline = \"M12 14C13.11 14 14 13.11 14 12C14 10.9 13.11 10 12 10C10.9 10 10 10.9 10 12C10 13.11 10.9 14 12 14M18 2C17.1 2.68 16.26 3.45 15.5 4.29C15.21 4.61 14.93 4.95 14.66 5.29C14.62 5.34 14.59 5.39 14.56 5.45C14.31 5.94 14.5 6.54 15 6.79C16.86 7.86 18 9.85 18 12C18 18.41 13.08 20.71 9.54 21.54C7.55 22 6 22 6 22C6.9 21.32 7.74 20.55 8.5 19.71C8.79 19.39 9.07 19.05 9.34 18.71C9.38 18.66 9.41 18.61 9.44 18.55C9.69 18.06 9.5 17.46 9 17.21C7.14 16.14 6 14.15 6 12C6 5.59 10.93 3.29 14.47 2.46C16.45 2 18 2 18 2M9.44 7.47C8.61 8.5 8 9.93 8 12C8 13.43 8.75 14.74 9.96 15.46C11.2 16.12 11.78 17.5 11.47 18.8C12.67 18.27 13.76 17.54 14.56 16.53C15.39 15.5 16 14.07 16 12C16 10.57 15.25 9.26 14.04 8.54C12.8 7.88 12.22 6.5 12.54 5.2C11.33 5.73 10.24 6.47 9.44 7.47Z\";\nexport var mdiWeatherLightning = \"M6,16A5,5 0 0,1 1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16H18A1,1 0 0,1 17,15A1,1 0 0,1 18,14H19A2,2 0 0,0 21,12A2,2 0 0,0 19,10H17V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11A3,3 0 0,0 6,14H7A1,1 0 0,1 8,15A1,1 0 0,1 7,16H6M12,11H15L13,15H15L11.25,22L12,17H9.5L12,11Z\";\nexport var mdiWeatherLightningRainy = \"M4.5,13.59C5,13.87 5.14,14.5 4.87,14.96C4.59,15.44 4,15.6 3.5,15.33V15.33C2,14.47 1,12.85 1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A1,1 0 0,1 18,15A1,1 0 0,1 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10H17V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11C3,12.11 3.6,13.08 4.5,13.6V13.59M9.5,11H12.5L10.5,15H12.5L8.75,22L9.5,17H7L9.5,11M17.5,18.67C17.5,19.96 16.5,21 15.25,21C14,21 13,19.96 13,18.67C13,17.12 15.25,14.5 15.25,14.5C15.25,14.5 17.5,17.12 17.5,18.67Z\";\nexport var mdiWeatherMoonset = \"M3 12H7C7 10.67 7.53 9.4 8.46 8.46C9.4 7.53 10.67 7 12 7C13.33 7 14.6 7.53 15.54 8.46C16.47 9.4 17 10.67 17 12H21C21.27 12 21.5 12.11 21.71 12.29C21.9 12.5 22 12.74 22 13C22 13.27 21.9 13.5 21.71 13.71C21.5 13.9 21.27 14 21 14H3C2.74 14 2.5 13.9 2.29 13.71C2.11 13.5 2 13.27 2 13C2 12.74 2.11 12.5 2.29 12.29C2.5 12.11 2.74 12 3 12M5 16H19C19.27 16 19.5 16.11 19.71 16.29C19.9 16.5 20 16.74 20 17C20 17.27 19.9 17.5 19.71 17.71C19.5 17.9 19.27 18 19 18H5C4.74 18 4.5 17.9 4.29 17.71C4.11 17.5 4 17.27 4 17C4 16.74 4.11 16.5 4.29 16.29C4.5 16.11 4.74 16 5 16M17 20C17.27 20 17.5 20.11 17.71 20.29C17.9 20.5 18 20.74 18 21C18 21.27 17.9 21.5 17.71 21.71C17.5 21.9 17.27 22 17 22H7C6.74 22 6.5 21.9 6.29 21.71C6.11 21.5 6 21.27 6 21C6 20.74 6.11 20.5 6.29 20.29C6.5 20.11 6.74 20 7 20H17Z\";\nexport var mdiWeatherMoonsetDown = \"M3 12H7C7 10.67 7.53 9.4 8.46 8.46C9.4 7.53 10.67 7 12 7C13.33 7 14.6 7.53 15.54 8.46C16.47 9.4 17 10.67 17 12H21C21.27 12 21.5 12.11 21.71 12.29C21.9 12.5 22 12.74 22 13C22 13.27 21.9 13.5 21.71 13.71C21.5 13.9 21.27 14 21 14H3C2.74 14 2.5 13.9 2.29 13.71C2.11 13.5 2 13.27 2 13C2 12.74 2.11 12.5 2.29 12.29C2.5 12.11 2.74 12 3 12M12.71 20.71L15.82 17.6C16.21 17.21 16.21 16.57 15.82 16.18C15.43 15.79 14.8 15.79 14.41 16.18L12 18.59L9.59 16.18C9.2 15.79 8.57 15.79 8.18 16.18C7.79 16.57 7.79 17.21 8.18 17.6L11.29 20.71C11.5 20.9 11.74 21 12 21C12.26 21 12.5 20.9 12.71 20.71Z\";\nexport var mdiWeatherMoonsetUp = \"M3 12H7C7 10.67 7.53 9.4 8.46 8.46C9.4 7.53 10.67 7 12 7C13.33 7 14.6 7.53 15.54 8.46C16.47 9.4 17 10.67 17 12H21C21.27 12 21.5 12.11 21.71 12.29C21.9 12.5 22 12.74 22 13C22 13.27 21.9 13.5 21.71 13.71C21.5 13.9 21.27 14 21 14H3C2.74 14 2.5 13.9 2.29 13.71C2.11 13.5 2 13.27 2 13C2 12.74 2.11 12.5 2.29 12.29C2.5 12.11 2.74 12 3 12M12.71 16.3L15.82 19.41C16.21 19.8 16.21 20.43 15.82 20.82C15.43 21.21 14.8 21.21 14.41 20.82L12 18.41L9.59 20.82C9.2 21.21 8.57 21.21 8.18 20.82C7.79 20.43 7.79 19.8 8.18 19.41L11.29 16.3C11.5 16.1 11.74 16 12 16C12.26 16 12.5 16.1 12.71 16.3Z\";\nexport var mdiWeatherNight = \"M17.75,4.09L15.22,6.03L16.13,9.09L13.5,7.28L10.87,9.09L11.78,6.03L9.25,4.09L12.44,4L13.5,1L14.56,4L17.75,4.09M21.25,11L19.61,12.25L20.2,14.23L18.5,13.06L16.8,14.23L17.39,12.25L15.75,11L17.81,10.95L18.5,9L19.19,10.95L21.25,11M18.97,15.95C19.8,15.87 20.69,17.05 20.16,17.8C19.84,18.25 19.5,18.67 19.08,19.07C15.17,23 8.84,23 4.94,19.07C1.03,15.17 1.03,8.83 4.94,4.93C5.34,4.53 5.76,4.17 6.21,3.85C6.96,3.32 8.14,4.21 8.06,5.04C7.79,7.9 8.75,10.87 10.95,13.06C13.14,15.26 16.1,16.22 18.97,15.95M17.33,17.97C14.5,17.81 11.7,16.64 9.53,14.5C7.36,12.31 6.2,9.5 6.04,6.68C3.23,9.82 3.34,14.64 6.35,17.66C9.37,20.67 14.19,20.78 17.33,17.97Z\";\nexport var mdiWeatherNightPartlyCloudy = \"M22,10.28C21.74,10.3 21.5,10.31 21.26,10.31C19.32,10.31 17.39,9.57 15.91,8.09C14.25,6.44 13.5,4.19 13.72,2C13.77,1.53 13.22,1 12.71,1C12.57,1 12.44,1.04 12.32,1.12C12,1.36 11.66,1.64 11.36,1.94C9.05,4.24 8.55,7.66 9.84,10.46C8.31,11.11 7.13,12.43 6.69,14.06L6,14A4,4 0 0,0 2,18A4,4 0 0,0 6,22H19A3,3 0 0,0 22,19A3,3 0 0,0 19,16C18.42,16 17.88,16.16 17.42,16.45L17.5,15.5C17.5,15.28 17.5,15.05 17.46,14.83C19.14,14.67 20.77,13.94 22.06,12.64C22.38,12.34 22.64,12 22.88,11.68C23.27,11.13 22.65,10.28 22.04,10.28M19,18A1,1 0 0,1 20,19A1,1 0 0,1 19,20H6A2,2 0 0,1 4,18A2,2 0 0,1 6,16H8.5V15.5C8.5,13.94 9.53,12.64 10.94,12.18C11.1,12.13 11.26,12.09 11.43,12.06C11.61,12.03 11.8,12 12,12C12.23,12 12.45,12.03 12.66,12.07C12.73,12.08 12.8,12.1 12.87,12.13C13,12.16 13.15,12.2 13.28,12.25C13.36,12.28 13.44,12.32 13.5,12.36C13.63,12.41 13.74,12.47 13.84,12.54C13.92,12.59 14,12.64 14.07,12.7C14.17,12.77 14.25,12.84 14.34,12.92C14.41,13 14.5,13.05 14.55,13.12C14.63,13.2 14.69,13.29 14.76,13.37C14.82,13.45 14.89,13.53 14.94,13.62C15,13.71 15.04,13.8 15.09,13.9C15.14,14 15.2,14.08 15.24,14.18C15.41,14.59 15.5,15.03 15.5,15.5V18M16.83,12.86C15.9,11.16 14.08,10 12,10H11.87C11.41,9.19 11.14,8.26 11.14,7.29C11.14,6.31 11.39,5.37 11.86,4.55C12.21,6.41 13.12,8.14 14.5,9.5C15.86,10.88 17.58,11.79 19.45,12.14C18.66,12.6 17.76,12.84 16.83,12.86Z\";\nexport var mdiWeatherPartlyCloudy = \"M12.74,5.47C15.1,6.5 16.35,9.03 15.92,11.46C17.19,12.56 18,14.19 18,16V16.17C18.31,16.06 18.65,16 19,16A3,3 0 0,1 22,19A3,3 0 0,1 19,22H6A4,4 0 0,1 2,18A4,4 0 0,1 6,14H6.27C5,12.45 4.6,10.24 5.5,8.26C6.72,5.5 9.97,4.24 12.74,5.47M11.93,7.3C10.16,6.5 8.09,7.31 7.31,9.07C6.85,10.09 6.93,11.22 7.41,12.13C8.5,10.83 10.16,10 12,10C12.7,10 13.38,10.12 14,10.34C13.94,9.06 13.18,7.86 11.93,7.3M13.55,3.64C13,3.4 12.45,3.23 11.88,3.12L14.37,1.82L15.27,4.71C14.76,4.29 14.19,3.93 13.55,3.64M6.09,4.44C5.6,4.79 5.17,5.19 4.8,5.63L4.91,2.82L7.87,3.5C7.25,3.71 6.65,4.03 6.09,4.44M18,9.71C17.91,9.12 17.78,8.55 17.59,8L19.97,9.5L17.92,11.73C18.03,11.08 18.05,10.4 18,9.71M3.04,11.3C3.11,11.9 3.24,12.47 3.43,13L1.06,11.5L3.1,9.28C3,9.93 2.97,10.61 3.04,11.3M19,18H16V16A4,4 0 0,0 12,12A4,4 0 0,0 8,16H6A2,2 0 0,0 4,18A2,2 0 0,0 6,20H19A1,1 0 0,0 20,19A1,1 0 0,0 19,18Z\";\nexport var mdiWeatherPartlyLightning = \"M19,15C18.65,15 18.31,15.06 18,15.17V15C18,13.19 17.19,11.56 15.92,10.46C16.35,8.03 15.1,5.5 12.75,4.47C9.97,3.24 6.72,4.5 5.5,7.25C4.6,9.24 5,11.45 6.27,13H6A4,4 0 0,0 2,17A4,4 0 0,0 6,21H7C7,21 8,21 8,20C8,19 7,19 7,19H6A2,2 0 0,1 4,17A2,2 0 0,1 6,15H8A4,4 0 0,1 12,11A4,4 0 0,1 16,15V17H19A1,1 0 0,1 20,18A1,1 0 0,1 19,19H17C17,19 16,19 16,20C16,21 17,21 17,21H19A3,3 0 0,0 22,18A3,3 0 0,0 19,15M12,9C10.16,9 8.5,9.83 7.41,11.13C6.93,10.22 6.85,9.09 7.31,8.07C8.09,6.31 10.16,5.5 11.93,6.3C13.18,6.86 13.94,8.06 14,9.34C13.38,9.12 12.7,9 12,9M13.55,2.63C13,2.4 12.45,2.23 11.88,2.12L14.37,0.82L15.27,3.71C14.76,3.29 14.19,2.93 13.55,2.63M6.09,3.44C5.6,3.79 5.17,4.19 4.8,4.63L4.91,1.82L7.87,2.5C7.25,2.71 6.65,3.03 6.09,3.44M18,8.71C17.91,8.12 17.78,7.55 17.59,7L19.97,8.5L17.92,10.73C18.03,10.08 18.05,9.4 18,8.71M3.04,10.3C3.11,10.9 3.25,11.47 3.43,12L1.06,10.5L3.1,8.28C3,8.93 2.97,9.61 3.04,10.3M11.8,15H14.25L12.61,18.27H14.25L11.18,24L11.8,19.91H9.75\";\nexport var mdiWeatherPartlyRainy = \"M12.75,4.47C15.1,5.5 16.35,8.03 15.92,10.46C17.19,11.56 18,13.19 18,15V15.17C18.31,15.06 18.65,15 19,15A3,3 0 0,1 22,18A3,3 0 0,1 19,21H17C17,21 16,21 16,20C16,19 17,19 17,19H19A1,1 0 0,0 20,18A1,1 0 0,0 19,17H16V15A4,4 0 0,0 12,11A4,4 0 0,0 8,15H6A2,2 0 0,0 4,17A2,2 0 0,0 6,19H7C7,19 8,19 8,20C8,21 7,21 7,21H6A4,4 0 0,1 2,17A4,4 0 0,1 6,13H6.27C5,11.45 4.6,9.24 5.5,7.25C6.72,4.5 9.97,3.24 12.75,4.47M11.93,6.3C10.16,5.5 8.09,6.31 7.31,8.07C6.85,9.09 6.93,10.22 7.41,11.13C8.5,9.83 10.16,9 12,9C12.7,9 13.38,9.12 14,9.34C13.94,8.06 13.18,6.86 11.93,6.3M13.55,2.63C13,2.4 12.45,2.23 11.88,2.12L14.37,0.82L15.27,3.71C14.76,3.29 14.19,2.93 13.55,2.63M6.09,3.44C5.6,3.79 5.17,4.19 4.8,4.63L4.91,1.82L7.87,2.5C7.25,2.71 6.65,3.03 6.09,3.44M18,8.71C17.91,8.12 17.78,7.55 17.59,7L19.97,8.5L17.92,10.73C18.03,10.08 18.05,9.4 18,8.71M3.04,10.3C3.11,10.9 3.25,11.47 3.43,12L1.06,10.5L3.1,8.28C3,8.93 2.97,9.61 3.04,10.3M12,18.91C12.59,19.82 13,20.63 13,21A1,1 0 0,1 12,22A1,1 0 0,1 11,21C11,20.63 11.41,19.82 12,18.91M12,15.62C12,15.62 9,19 9,21A3,3 0 0,0 12,24A3,3 0 0,0 15,21C15,19 12,15.62 12,15.62Z\";\nexport var mdiWeatherPartlySnowy = \"M6,19.03A2,2 0 0,1 4,17.03C4,15.92 4.9,15.03 6,15.03H8C8,12.81 9.79,11.03 12,11.03A4,4 0 0,1 16,15.03V17.03H19A1,1 0 0,1 20,18.03C20,18.57 19.55,19.03 19,19.03H17C17,19.03 16,19.03 16,20.03C16,21.03 17,21.03 17,21.03H19A3,3 0 0,0 22,18.03C22,16.37 20.66,15.03 19,15.03C18.65,15.03 18.31,15.08 18,15.19V15.03C18,13.21 17.19,11.58 15.92,10.5C16.35,8.05 15.1,5.53 12.75,4.5C9.97,3.27 6.72,4.53 5.5,7.28C4.6,9.27 5,11.47 6.27,13.03H6C3.79,13.03 2,14.81 2,17.03A4,4 0 0,0 6,21.03C6,21.03 7,21.03 7,20.03C7,19.03 6,19.03 6,19.03M12,9.03C10.16,9.03 8.5,9.85 7.41,11.16C6.93,10.25 6.85,9.11 7.31,8.09C8.09,6.33 10.16,5.53 11.93,6.32C13.18,6.89 13.94,8.08 14,9.37C13.38,9.15 12.7,9.03 12,9.03M13.55,2.66C13,2.42 12.45,2.26 11.88,2.15L14.37,0.84L15.27,3.73C14.76,3.31 14.19,2.95 13.55,2.66M6.09,3.46C5.6,3.81 5.17,4.21 4.8,4.66L4.91,1.84L7.87,2.53C7.25,2.73 6.65,3.05 6.09,3.46M18,8.73C17.91,8.15 17.78,7.57 17.59,7.03L19.97,8.53L17.92,10.76C18.03,10.1 18.05,9.42 18,8.73M3.04,10.32C3.11,10.92 3.25,11.5 3.43,12.03L1.06,10.53L3.1,8.3C3,8.95 2.97,9.64 3.04,10.32M8.03,21.45C8.13,21.84 8.53,22.06 8.91,21.96L10.5,21.54L10.06,23.11C9.96,23.5 10.19,23.9 10.57,24C10.95,24.1 11.35,23.87 11.45,23.5L11.87,21.91L13.03,23.07C13.3,23.35 13.77,23.35 14.05,23.07C14.33,22.79 14.33,22.32 14.05,22.05L12.89,20.88L14.47,20.47C14.85,20.37 15.08,19.97 15,19.59C14.88,19.21 14.5,19 14.09,19.08L12.5,19.5L12.94,17.93C13.04,17.54 12.82,17.15 12.43,17.05C12.05,16.95 11.66,17.17 11.55,17.56L11.14,19.14L10,17.97C9.7,17.69 9.23,17.69 8.95,17.97C8.68,18.27 8.68,18.72 8.95,19L10.11,20.16L8.54,20.57C8.15,20.68 7.93,21.07 8.03,21.45Z\";\nexport var mdiWeatherPartlySnowyRainy = \"M13.55,2.66C13,2.42 12.45,2.26 11.88,2.15L14.37,0.84L15.27,3.73C14.76,3.31 14.19,2.95 13.55,2.66M6.09,3.46C5.6,3.81 5.17,4.21 4.8,4.66L4.91,1.84L7.87,2.53C7.25,2.73 6.65,3.05 6.09,3.46M18,8.73C17.91,8.15 17.78,7.57 17.59,7.03L19.97,8.53L17.92,10.76C18.03,10.1 18.05,9.42 18,8.73M3.04,10.32C3.11,10.92 3.25,11.5 3.43,12.03L1.06,10.53L3.1,8.3C3,8.95 2.97,9.64 3.04,10.32M16.68,22.21C16.68,23.2 15.91,24 14.95,24C14,24 13.23,23.2 13.23,22.21C13.23,21.03 14.95,19.03 14.95,19.03C14.95,19.03 16.68,21.03 16.68,22.21M6.03,21.45C5.93,21.07 6.15,20.68 6.54,20.58L8.13,20.15L6.96,19C6.68,18.72 6.68,18.27 6.96,18C7.23,17.7 7.7,17.7 8,18L9.14,19.14L9.55,17.56C9.65,17.17 10.05,16.94 10.43,17.05C10.82,17.15 11.05,17.55 10.93,17.93L10.5,19.5L12.1,19.1C12.5,19 12.88,19.21 13,19.6C13.08,19.97 12.86,20.37 12.47,20.47L10.89,20.89L12.05,22.05C12.33,22.32 12.33,22.79 12.05,23.07C11.77,23.35 11.31,23.35 11.03,23.07L9.87,21.9L9.45,23.5C9.35,23.88 8.95,24.1 8.57,24C8.18,23.9 7.97,23.5 8.06,23.12L8.5,21.55L6.91,21.96C6.5,22.06 6.13,21.84 6.03,21.45M19,15.03C18.65,15.03 18.31,15.08 18,15.19V15.03C18,13.21 17.19,11.58 15.92,10.5C16.35,8.05 15.1,5.53 12.75,4.5C9.97,3.27 6.72,4.53 5.5,7.28C4.6,9.27 5,11.47 6.27,13.03H6C3.79,13.03 2,14.81 2,17.03C2,18.17 2.5,19.2 3.27,19.93V19.93C3.27,19.93 3.97,20.64 4.68,19.93C5.39,19.22 4.68,18.5 4.68,18.5C4.27,18.15 4,17.62 4,17.03C4,15.92 4.9,15.03 6,15.03H8C8,12.81 9.79,11.03 12,11.03A4,4 0 0,1 16,15.03V17.03H19A1,1 0 0,1 20,18.03C20,18.57 19.55,19.03 19,19.03H18C18,19.03 17,19.03 17,20.03C17,21.03 18,21.03 18,21.03H19A3,3 0 0,0 22,18.03C22,16.37 20.66,15.03 19,15.03M12,9.03C10.16,9.03 8.5,9.85 7.41,11.16C6.93,10.25 6.85,9.11 7.31,8.09C8.09,6.33 10.16,5.53 11.93,6.32C13.18,6.89 13.94,8.08 14,9.37C13.38,9.15 12.7,9.03 12,9.03Z\";\nexport var mdiWeatherPouring = \"M9,12C9.53,12.14 9.85,12.69 9.71,13.22L8.41,18.05C8.27,18.59 7.72,18.9 7.19,18.76C6.65,18.62 6.34,18.07 6.5,17.54L7.78,12.71C7.92,12.17 8.47,11.86 9,12M13,12C13.53,12.14 13.85,12.69 13.71,13.22L11.64,20.95C11.5,21.5 10.95,21.8 10.41,21.66C9.88,21.5 9.56,20.97 9.7,20.43L11.78,12.71C11.92,12.17 12.47,11.86 13,12M17,12C17.53,12.14 17.85,12.69 17.71,13.22L16.41,18.05C16.27,18.59 15.72,18.9 15.19,18.76C14.65,18.62 14.34,18.07 14.5,17.54L15.78,12.71C15.92,12.17 16.47,11.86 17,12M17,10V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11C3,12.11 3.6,13.08 4.5,13.6V13.59C5,13.87 5.14,14.5 4.87,14.96C4.59,15.43 4,15.6 3.5,15.32V15.33C2,14.47 1,12.85 1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12C23,13.5 22.2,14.77 21,15.46V15.46C20.5,15.73 19.91,15.57 19.63,15.09C19.36,14.61 19.5,14 20,13.72V13.73C20.6,13.39 21,12.74 21,12A2,2 0 0,0 19,10H17Z\";\nexport var mdiWeatherRainy = \"M6,14.03A1,1 0 0,1 7,15.03C7,15.58 6.55,16.03 6,16.03C3.24,16.03 1,13.79 1,11.03C1,8.27 3.24,6.03 6,6.03C7,3.68 9.3,2.03 12,2.03C15.43,2.03 18.24,4.69 18.5,8.06L19,8.03A4,4 0 0,1 23,12.03C23,14.23 21.21,16.03 19,16.03H18C17.45,16.03 17,15.58 17,15.03C17,14.47 17.45,14.03 18,14.03H19A2,2 0 0,0 21,12.03A2,2 0 0,0 19,10.03H17V9.03C17,6.27 14.76,4.03 12,4.03C9.5,4.03 7.45,5.84 7.06,8.21C6.73,8.09 6.37,8.03 6,8.03A3,3 0 0,0 3,11.03A3,3 0 0,0 6,14.03M12,14.15C12.18,14.39 12.37,14.66 12.56,14.94C13,15.56 14,17.03 14,18C14,19.11 13.1,20 12,20A2,2 0 0,1 10,18C10,17.03 11,15.56 11.44,14.94C11.63,14.66 11.82,14.4 12,14.15M12,11.03L11.5,11.59C11.5,11.59 10.65,12.55 9.79,13.81C8.93,15.06 8,16.56 8,18A4,4 0 0,0 12,22A4,4 0 0,0 16,18C16,16.56 15.07,15.06 14.21,13.81C13.35,12.55 12.5,11.59 12.5,11.59\";\nexport var mdiWeatherSnowy = \"M6,14A1,1 0 0,1 7,15A1,1 0 0,1 6,16A5,5 0 0,1 1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16H18A1,1 0 0,1 17,15A1,1 0 0,1 18,14H19A2,2 0 0,0 21,12A2,2 0 0,0 19,10H17V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11A3,3 0 0,0 6,14M7.88,18.07L10.07,17.5L8.46,15.88C8.07,15.5 8.07,14.86 8.46,14.46C8.85,14.07 9.5,14.07 9.88,14.46L11.5,16.07L12.07,13.88C12.21,13.34 12.76,13.03 13.29,13.17C13.83,13.31 14.14,13.86 14,14.4L13.41,16.59L15.6,16C16.14,15.86 16.69,16.17 16.83,16.71C16.97,17.24 16.66,17.79 16.12,17.93L13.93,18.5L15.54,20.12C15.93,20.5 15.93,21.15 15.54,21.54C15.15,21.93 14.5,21.93 14.12,21.54L12.5,19.93L11.93,22.12C11.79,22.66 11.24,22.97 10.71,22.83C10.17,22.69 9.86,22.14 10,21.6L10.59,19.41L8.4,20C7.86,20.14 7.31,19.83 7.17,19.29C7.03,18.76 7.34,18.21 7.88,18.07Z\";\nexport var mdiWeatherSnowyHeavy = \"M4,16.36C3.86,15.82 4.18,15.25 4.73,15.11L7,14.5L5.33,12.86C4.93,12.46 4.93,11.81 5.33,11.4C5.73,11 6.4,11 6.79,11.4L8.45,13.05L9.04,10.8C9.18,10.24 9.75,9.92 10.29,10.07C10.85,10.21 11.17,10.78 11,11.33L10.42,13.58L12.67,13C13.22,12.83 13.79,13.15 13.93,13.71C14.08,14.25 13.76,14.82 13.2,14.96L10.95,15.55L12.6,17.21C13,17.6 13,18.27 12.6,18.67C12.2,19.07 11.54,19.07 11.15,18.67L9.5,17L8.89,19.27C8.75,19.83 8.18,20.14 7.64,20C7.08,19.86 6.77,19.29 6.91,18.74L7.5,16.5L5.26,17.09C4.71,17.23 4.14,16.92 4,16.36M1,10A5,5 0 0,1 6,5C7,2.65 9.3,1 12,1C15.43,1 18.24,3.66 18.5,7.03L19,7A4,4 0 0,1 23,11A4,4 0 0,1 19,15A1,1 0 0,1 18,14A1,1 0 0,1 19,13A2,2 0 0,0 21,11A2,2 0 0,0 19,9H17V8A5,5 0 0,0 12,3C9.5,3 7.45,4.82 7.06,7.19C6.73,7.07 6.37,7 6,7A3,3 0 0,0 3,10C3,10.85 3.35,11.61 3.91,12.16C4.27,12.55 4.26,13.16 3.88,13.54C3.5,13.93 2.85,13.93 2.47,13.54C1.56,12.63 1,11.38 1,10M14.03,20.43C14.13,20.82 14.5,21.04 14.91,20.94L16.5,20.5L16.06,22.09C15.96,22.5 16.18,22.87 16.57,22.97C16.95,23.08 17.35,22.85 17.45,22.46L17.86,20.89L19.03,22.05C19.3,22.33 19.77,22.33 20.05,22.05C20.33,21.77 20.33,21.3 20.05,21.03L18.89,19.86L20.46,19.45C20.85,19.35 21.08,18.95 20.97,18.57C20.87,18.18 20.5,17.96 20.09,18.06L18.5,18.5L18.94,16.91C19.04,16.5 18.82,16.13 18.43,16.03C18.05,15.92 17.65,16.15 17.55,16.54L17.14,18.11L15.97,16.95C15.7,16.67 15.23,16.67 14.95,16.95C14.67,17.24 14.67,17.7 14.95,17.97L16.11,19.14L14.54,19.55C14.15,19.65 13.92,20.05 14.03,20.43Z\";\nexport var mdiWeatherSnowyRainy = \"M18.5,18.67C18.5,19.96 17.5,21 16.25,21C15,21 14,19.96 14,18.67C14,17.12 16.25,14.5 16.25,14.5C16.25,14.5 18.5,17.12 18.5,18.67M4,17.36C3.86,16.82 4.18,16.25 4.73,16.11L7,15.5L5.33,13.86C4.93,13.46 4.93,12.81 5.33,12.4C5.73,12 6.4,12 6.79,12.4L8.45,14.05L9.04,11.8C9.18,11.24 9.75,10.92 10.29,11.07C10.85,11.21 11.17,11.78 11,12.33L10.42,14.58L12.67,14C13.22,13.83 13.79,14.15 13.93,14.71C14.08,15.25 13.76,15.82 13.2,15.96L10.95,16.55L12.6,18.21C13,18.6 13,19.27 12.6,19.67C12.2,20.07 11.54,20.07 11.15,19.67L9.5,18L8.89,20.27C8.75,20.83 8.18,21.14 7.64,21C7.08,20.86 6.77,20.29 6.91,19.74L7.5,17.5L5.26,18.09C4.71,18.23 4.14,17.92 4,17.36M1,11A5,5 0 0,1 6,6C7,3.65 9.3,2 12,2C15.43,2 18.24,4.66 18.5,8.03L19,8A4,4 0 0,1 23,12A4,4 0 0,1 19,16A1,1 0 0,1 18,15A1,1 0 0,1 19,14A2,2 0 0,0 21,12A2,2 0 0,0 19,10H17V9A5,5 0 0,0 12,4C9.5,4 7.45,5.82 7.06,8.19C6.73,8.07 6.37,8 6,8A3,3 0 0,0 3,11C3,11.85 3.35,12.61 3.91,13.16C4.27,13.55 4.26,14.16 3.88,14.54C3.5,14.93 2.85,14.93 2.47,14.54C1.56,13.63 1,12.38 1,11Z\";\nexport var mdiWeatherSunny = \"M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M3.36,17L5.12,13.23C5.26,14 5.53,14.78 5.95,15.5C6.37,16.24 6.91,16.86 7.5,17.37L3.36,17M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7M20.64,17L16.5,17.36C17.09,16.85 17.62,16.22 18.04,15.5C18.46,14.77 18.73,14 18.87,13.21L20.64,17M12,22L9.59,18.56C10.33,18.83 11.14,19 12,19C12.82,19 13.63,18.83 14.37,18.56L12,22Z\";\nexport var mdiWeatherSunnyAlert = \"M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M3.36,17L5.12,13.23C5.26,14 5.53,14.78 5.95,15.5C6.37,16.24 6.91,16.86 7.5,17.37L3.36,17M12,22L9.59,18.56C10.33,18.83 11.14,19 12,19C12.82,19 13.63,18.83 14.37,18.56M19,13V7H21V13H19M19,17V15H21V17\";\nexport var mdiWeatherSunnyOff = \"M22.11 21.46L2.39 1.73L1.11 3L4.97 6.86L3.34 7L5.11 10.79C5.25 10 5.5 9.24 5.94 8.5C6 8.36 6.13 8.24 6.22 8.11L7.66 9.55C7.25 10.27 7 11.11 7 12C7 14.76 9.24 17 12 17C12.9 17 13.73 16.75 14.45 16.34L20.84 22.73L22.11 21.46M12 15C10.34 15 9 13.66 9 12C9 11.67 9.07 11.36 9.17 11.06L12.94 14.83C12.64 14.93 12.33 15 12 15M18.05 8.5C17.63 7.78 17.1 7.15 16.5 6.64L20.65 7L18.88 10.79C18.74 10 18.47 9.23 18.05 8.5M12 7C14.76 7 17 9.24 17 12C17 12.54 16.89 13.05 16.74 13.54L15 11.78C14.87 10.3 13.7 9.13 12.22 9L10.47 7.27C10.95 7.11 11.46 7 12 7M12 5C11.16 5 10.35 5.15 9.61 5.42L12 2L14.39 5.42C13.65 5.15 12.84 5 12 5M18.87 13.21L20.64 17L20.24 17.04L18.25 15.05C18.54 14.45 18.76 13.84 18.87 13.21M12 19C12.82 19 13.63 18.83 14.37 18.56L12 22L9.59 18.56C10.33 18.83 11.14 19 12 19M5.95 15.5C6.37 16.24 6.91 16.86 7.5 17.37L3.36 17L5.12 13.23C5.26 14 5.53 14.78 5.95 15.5Z\";\nexport var mdiWeatherSunset = \"M3,12H7A5,5 0 0,1 12,7A5,5 0 0,1 17,12H21A1,1 0 0,1 22,13A1,1 0 0,1 21,14H3A1,1 0 0,1 2,13A1,1 0 0,1 3,12M5,16H19A1,1 0 0,1 20,17A1,1 0 0,1 19,18H5A1,1 0 0,1 4,17A1,1 0 0,1 5,16M17,20A1,1 0 0,1 18,21A1,1 0 0,1 17,22H7A1,1 0 0,1 6,21A1,1 0 0,1 7,20H17M15,12A3,3 0 0,0 12,9A3,3 0 0,0 9,12H15M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7Z\";\nexport var mdiWeatherSunsetDown = \"M3,12H7A5,5 0 0,1 12,7A5,5 0 0,1 17,12H21A1,1 0 0,1 22,13A1,1 0 0,1 21,14H3A1,1 0 0,1 2,13A1,1 0 0,1 3,12M15,12A3,3 0 0,0 12,9A3,3 0 0,0 9,12H15M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7M12.71,20.71L15.82,17.6C16.21,17.21 16.21,16.57 15.82,16.18C15.43,15.79 14.8,15.79 14.41,16.18L12,18.59L9.59,16.18C9.2,15.79 8.57,15.79 8.18,16.18C7.79,16.57 7.79,17.21 8.18,17.6L11.29,20.71C11.5,20.9 11.74,21 12,21C12.26,21 12.5,20.9 12.71,20.71Z\";\nexport var mdiWeatherSunsetUp = \"M3,12H7A5,5 0 0,1 12,7A5,5 0 0,1 17,12H21A1,1 0 0,1 22,13A1,1 0 0,1 21,14H3A1,1 0 0,1 2,13A1,1 0 0,1 3,12M15,12A3,3 0 0,0 12,9A3,3 0 0,0 9,12H15M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7M12.71,16.3L15.82,19.41C16.21,19.8 16.21,20.43 15.82,20.82C15.43,21.21 14.8,21.21 14.41,20.82L12,18.41L9.59,20.82C9.2,21.21 8.57,21.21 8.18,20.82C7.79,20.43 7.79,19.8 8.18,19.41L11.29,16.3C11.5,16.1 11.74,16 12,16C12.26,16 12.5,16.1 12.71,16.3Z\";\nexport var mdiWeatherTornado = \"M21,5H3A1,1 0 0,1 2,4A1,1 0 0,1 3,3H21A1,1 0 0,1 22,4A1,1 0 0,1 21,5M20,8A1,1 0 0,0 19,7H5A1,1 0 0,0 4,8A1,1 0 0,0 5,9H19A1,1 0 0,0 20,8M21,12A1,1 0 0,0 20,11H10A1,1 0 0,0 9,12A1,1 0 0,0 10,13H20A1,1 0 0,0 21,12M16,16A1,1 0 0,0 15,15H9A1,1 0 0,0 8,16A1,1 0 0,0 9,17H15A1,1 0 0,0 16,16M13,20A1,1 0 0,0 12,19H10A1,1 0 0,0 9,20A1,1 0 0,0 10,21H12A1,1 0 0,0 13,20Z\";\nexport var mdiWeatherWindy = \"M4,10A1,1 0 0,1 3,9A1,1 0 0,1 4,8H12A2,2 0 0,0 14,6A2,2 0 0,0 12,4C11.45,4 10.95,4.22 10.59,4.59C10.2,5 9.56,5 9.17,4.59C8.78,4.2 8.78,3.56 9.17,3.17C9.9,2.45 10.9,2 12,2A4,4 0 0,1 16,6A4,4 0 0,1 12,10H4M19,12A1,1 0 0,0 20,11A1,1 0 0,0 19,10C18.72,10 18.47,10.11 18.29,10.29C17.9,10.68 17.27,10.68 16.88,10.29C16.5,9.9 16.5,9.27 16.88,8.88C17.42,8.34 18.17,8 19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14H5A1,1 0 0,1 4,13A1,1 0 0,1 5,12H19M18,18H4A1,1 0 0,1 3,17A1,1 0 0,1 4,16H18A3,3 0 0,1 21,19A3,3 0 0,1 18,22C17.17,22 16.42,21.66 15.88,21.12C15.5,20.73 15.5,20.1 15.88,19.71C16.27,19.32 16.9,19.32 17.29,19.71C17.47,19.89 17.72,20 18,20A1,1 0 0,0 19,19A1,1 0 0,0 18,18Z\";\nexport var mdiWeatherWindyVariant = \"M6,6L6.69,6.06C7.32,3.72 9.46,2 12,2A5.5,5.5 0 0,1 17.5,7.5L17.42,8.45C17.88,8.16 18.42,8 19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14H6A4,4 0 0,1 2,10A4,4 0 0,1 6,6M6,8A2,2 0 0,0 4,10A2,2 0 0,0 6,12H19A1,1 0 0,0 20,11A1,1 0 0,0 19,10H15.5V7.5A3.5,3.5 0 0,0 12,4A3.5,3.5 0 0,0 8.5,7.5V8H6M18,18H4A1,1 0 0,1 3,17A1,1 0 0,1 4,16H18A3,3 0 0,1 21,19A3,3 0 0,1 18,22C17.17,22 16.42,21.66 15.88,21.12C15.5,20.73 15.5,20.1 15.88,19.71C16.27,19.32 16.9,19.32 17.29,19.71C17.47,19.89 17.72,20 18,20A1,1 0 0,0 19,19A1,1 0 0,0 18,18Z\";\nexport var mdiWeb = \"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nexport var mdiWebBox = \"M8.95 13.4H6.58A5.5 5.5 0 0 1 6.58 10.6H8.95A11.56 11.56 0 0 0 8.85 12A11.56 11.56 0 0 0 8.95 13.4M7.16 9.2H9.2A12.06 12.06 0 0 1 10.18 6.71A5.55 5.55 0 0 0 7.16 9.2M16.84 9.2A5.59 5.59 0 0 0 13.81 6.71A10.95 10.95 0 0 1 14.78 9.2M12 17.57A9.5 9.5 0 0 0 13.34 14.8H10.66A9.5 9.5 0 0 0 12 17.57M12 6.42A9.53 9.53 0 0 0 10.66 9.2H13.34A9.53 9.53 0 0 0 12 6.42M7.16 14.8A5.61 5.61 0 0 0 10.18 17.29A12.06 12.06 0 0 1 9.2 14.8M21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19A2 2 0 0 1 21 5M19 12A7 7 0 1 0 12 19A7 7 0 0 0 19 12M15.15 12A11.56 11.56 0 0 1 15.05 13.4H17.42A5.5 5.5 0 0 0 17.42 10.6H15.05A11.56 11.56 0 0 1 15.15 12M13.81 17.29A5.62 5.62 0 0 0 16.84 14.8H14.78A10.95 10.95 0 0 1 13.81 17.29M10.36 10.6A8.81 8.81 0 0 0 10.36 13.4H13.64A10.3 10.3 0 0 0 13.75 12A10.21 10.21 0 0 0 13.64 10.6Z\";\nexport var mdiWebCancel = \"M13.82 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12C14.5 12.5 14.46 13 14.4 13.46C15 12.96 15.72 12.57 16.5 12.32C16.5 12.21 16.5 12.11 16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.06 20 12.12 20 12.18C20.7 12.35 21.35 12.63 21.95 13C22 12.68 22 12.34 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.34 22 12.68 22 13 21.95C12.59 21.29 12.29 20.55 12.13 19.75C12.09 19.82 12.05 19.89 12 19.96C11.17 18.76 10.5 17.43 10.09 16H12.5C12.81 15.25 13.26 14.58 13.82 14M18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44C16.43 5.07 17.96 6.34 18.92 8M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M18.5 14C16 14 14 16 14 18.5S16 23 18.5 23 23 21 23 18.5 21 14 18.5 14M18.5 21.5C16.84 21.5 15.5 20.16 15.5 18.5C15.5 17.94 15.65 17.42 15.92 17L20 21.08C19.58 21.35 19.06 21.5 18.5 21.5M21.08 20L17 15.92C17.42 15.65 17.94 15.5 18.5 15.5C20.16 15.5 21.5 16.84 21.5 18.5C21.5 19.06 21.35 19.58 21.08 20Z\";\nexport var mdiWebCheck = \"M16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.37 19.97 12.73 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.26 21 13 20.03 13 19C13 18.71 13.03 18.43 13.07 18.15C12.75 18.78 12.4 19.39 12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.81C14.41 14.96 15.31 14.12 16.4 13.6C16.46 13.07 16.5 12.54 16.5 12M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M14.34 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12S14.43 13.34 14.34 14M14.59 4.44C16.43 5.07 17.96 6.34 18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44M22.5 17.25L17.75 22L15 19L16.16 17.84L17.75 19.43L21.34 15.84L22.5 17.25Z\";\nexport var mdiWebClock = \"M15 12.5V16.5L18 18.5L18.75 17.25L16.5 15.75V12.5H15M22 12.39C22 12.26 22 12.13 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.13 22 12.24 22 12.37 21.97C13.43 22.62 14.67 23 16 23C19.86 23 23 19.86 23 16C23 14.68 22.62 13.44 22 12.39M19.76 10.11C19.7 10.07 19.65 10.04 19.59 10H19.74C19.75 10.03 19.75 10.07 19.76 10.11M18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44C16.43 5.07 17.96 6.34 18.92 8M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M9.66 10H12.41C11.16 10.75 10.15 11.88 9.57 13.24C9.53 12.83 9.5 12.42 9.5 12C9.5 11.32 9.56 10.65 9.66 10M9.4 4.44C8.8 5.55 8.35 6.75 8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21Z\";\nexport var mdiWebMinus = \"M16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.37 19.97 12.73 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.26 21 13 20.03 13 19C13 18.71 13.03 18.43 13.07 18.15C12.75 18.78 12.4 19.39 12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.81C14.41 14.96 15.31 14.12 16.4 13.6C16.46 13.07 16.5 12.54 16.5 12M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M14.34 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12S14.43 13.34 14.34 14M14.59 4.44C16.43 5.07 17.96 6.34 18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44M23 18V20H15V18H23Z\";\nexport var mdiWebOff = \"M9.4 4.44C9.19 4.83 9 5.23 8.84 5.64L10.37 7.17C10.78 6.05 11.33 5 12 4.03C12.83 5.23 13.5 6.57 13.91 8H11.2L13.2 10H14.34C14.4 10.41 14.44 10.84 14.47 11.27L16.44 13.24C16.47 12.83 16.5 12.42 16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12S19.9 13.36 19.74 14H17.2L20.5 17.28C21.44 15.75 22 13.94 22 12C22 6.5 17.5 2 12 2C10.06 2 8.25 2.56 6.72 3.5L8.18 5C8.57 4.77 9 4.58 9.4 4.44M18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44C16.43 5.07 17.96 6.34 18.92 8M2.39 1.73L1.11 3L4.06 5.95C2.77 7.63 2 9.73 2 12C2 17.5 6.5 22 12 22C14.28 22 16.37 21.23 18.06 19.95L20.84 22.73L22.11 21.46L2.39 1.73M5.5 7.37L6.11 8H5.08C5.2 7.78 5.34 7.58 5.5 7.37M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M9.5 12C9.5 11.8 9.5 11.61 9.53 11.42L12.11 14H9.66C9.56 13.34 9.5 12.68 9.5 12M12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.91C13.5 17.43 12.83 18.76 12 19.96M14.59 19.56C14.96 18.88 15.26 18.15 15.5 17.41L16.62 18.5C16 18.95 15.32 19.31 14.59 19.56Z\";\nexport var mdiWebPlus = \"M16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.37 19.97 12.73 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.26 21 13 20.03 13 19C13 18.71 13.03 18.43 13.07 18.15C12.75 18.78 12.4 19.39 12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.81C14.41 14.96 15.31 14.12 16.4 13.6C16.46 13.07 16.5 12.54 16.5 12M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M14.34 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12S14.43 13.34 14.34 14M14.59 4.44C16.43 5.07 17.96 6.34 18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44M23 18V20H20V23H18V20H15V18H18V15H20V18H23Z\";\nexport var mdiWebRefresh = \"M13.82 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12C14.5 12.5 14.46 13 14.4 13.46C15 12.96 15.72 12.57 16.5 12.32C16.5 12.21 16.5 12.11 16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.06 20 12.12 20 12.18C20.7 12.35 21.35 12.63 21.95 13C22 12.68 22 12.34 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.34 22 12.68 22 13 21.95C12.59 21.29 12.29 20.55 12.13 19.75C12.09 19.82 12.05 19.89 12 19.96C11.17 18.76 10.5 17.43 10.09 16H12.5C12.81 15.25 13.26 14.58 13.82 14M18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44C16.43 5.07 17.96 6.34 18.92 8M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M20.83 15.67L22 14.5V18.5H18L19.77 16.73C19.32 16.28 18.69 16 18 16C16.62 16 15.5 17.12 15.5 18.5S16.62 21 18 21C18.82 21 19.54 20.61 20 20H21.71C21.12 21.47 19.68 22.5 18 22.5C15.79 22.5 14 20.71 14 18.5S15.79 14.5 18 14.5C19.11 14.5 20.11 14.95 20.83 15.67Z\";\nexport var mdiWebRemove = \"M16.5 12C16.5 11.32 16.44 10.66 16.36 10H19.74C19.9 10.64 20 11.31 20 12C20 12.37 19.97 12.73 19.92 13.08C20.61 13.18 21.25 13.4 21.84 13.72C21.94 13.16 22 12.59 22 12C22 6.5 17.5 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.59 22 13.16 21.94 13.72 21.84C13.26 21 13 20.03 13 19C13 18.71 13.03 18.43 13.07 18.15C12.75 18.78 12.4 19.39 12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.81C14.41 14.96 15.31 14.12 16.4 13.6C16.46 13.07 16.5 12.54 16.5 12M12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09C10.5 6.57 11.17 5.23 12 4.03M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M14.34 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12S14.43 13.34 14.34 14M14.59 4.44C16.43 5.07 17.96 6.34 18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44M20.41 19L22.54 21.12L21.12 22.54L19 20.41L16.88 22.54L15.47 21.12L17.59 19L15.47 16.88L16.88 15.47L19 17.59L21.12 15.47L22.54 16.88L20.41 19Z\";\nexport var mdiWebSync = \"M16.5 11.74C16.5 11.15 16.43 10.58 16.36 10H19.74C19.82 10.33 19.89 10.67 19.93 11C20.65 11.07 21.34 11.23 22 11.5C21.71 6.21 17.35 2 12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22C12.87 22 13.71 21.88 14.5 21.67C13.71 20.71 13.18 19.5 13.04 18.2C12.73 18.81 12.39 19.4 12 19.96C11.17 18.76 10.5 17.43 10.09 16H13.18C13.35 15.28 13.64 14.61 14.03 14H9.66C9.56 13.34 9.5 12.68 9.5 12S9.56 10.65 9.66 10H14.34C14.43 10.65 14.5 11.32 14.5 12C14.5 12.5 14.46 13 14.4 13.5C14.97 12.76 15.68 12.17 16.5 11.74M4.26 14C4.1 13.36 4 12.69 4 12S4.1 10.64 4.26 10H7.64C7.56 10.66 7.5 11.32 7.5 12S7.56 13.34 7.64 14H4.26M5.08 16H8C8.35 17.25 8.8 18.45 9.4 19.56C7.57 18.93 6.03 17.65 5.08 16M8 8H5.08C6.03 6.34 7.57 5.06 9.4 4.44C8.8 5.55 8.35 6.75 8 8M10.09 8C10.5 6.57 11.17 5.23 12 4.03C12.83 5.23 13.5 6.57 13.91 8H10.09M18.92 8H15.97C15.65 6.75 15.19 5.55 14.59 4.44C16.43 5.07 17.96 6.34 18.92 8M23 17.5C23 18.32 22.75 19.08 22.33 19.71L21.24 18.62C21.41 18.28 21.5 17.9 21.5 17.5C21.5 16.12 20.38 15 19 15V16.5L16.75 14.25L19 12V13.5C21.21 13.5 23 15.29 23 17.5M19 18.5L21.25 20.75L19 23V21.5C16.79 21.5 15 19.71 15 17.5C15 16.68 15.25 15.92 15.67 15.29L16.76 16.38C16.59 16.72 16.5 17.1 16.5 17.5C16.5 18.88 17.62 20 19 20V18.5Z\";\nexport var mdiWebcam = \"M12,2A7,7 0 0,1 19,9A7,7 0 0,1 12,16A7,7 0 0,1 5,9A7,7 0 0,1 12,2M12,4A5,5 0 0,0 7,9A5,5 0 0,0 12,14A5,5 0 0,0 17,9A5,5 0 0,0 12,4M12,6A3,3 0 0,1 15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6M6,22A2,2 0 0,1 4,20C4,19.62 4.1,19.27 4.29,18.97L6.11,15.81C7.69,17.17 9.75,18 12,18C14.25,18 16.31,17.17 17.89,15.81L19.71,18.97C19.9,19.27 20,19.62 20,20A2,2 0 0,1 18,22H6Z\";\nexport var mdiWebcamOff = \"M12 6C13.66 6 15 7.34 15 9C15 9.78 14.7 10.5 14.21 11L10 6.79C10.5 6.3 11.22 6 12 6M12 4C14.76 4 17 6.24 17 9C17 10.33 16.47 11.53 15.62 12.42L17.04 13.84C18.25 12.59 19 10.88 19 9C19 5.13 15.87 2 12 2C10.12 2 8.41 2.75 7.16 3.96L8.58 5.38C9.47 4.53 10.67 4 12 4M22.11 21.46L20.84 22.73L19.46 21.35C19.1 21.75 18.58 22 18 22H6C4.89 22 4 21.11 4 20C4 19.62 4.1 19.27 4.29 18.97L6.11 15.81C7.69 17.17 9.75 18 12 18C13.21 18 14.37 17.75 15.43 17.32L13.85 15.74C13.26 15.91 12.64 16 12 16C8.13 16 5 12.87 5 9C5 8.36 5.09 7.74 5.26 7.15L1.11 3L2.39 1.73L22.11 21.46M12.1 14L7 8.9C7 8.93 7 8.97 7 9C7 11.76 9.24 14 12 14C12.03 14 12.07 14 12.1 14Z\";\nexport var mdiWebhook = \"M10.46,19C9,21.07 6.15,21.59 4.09,20.15C2.04,18.71 1.56,15.84 3,13.75C3.87,12.5 5.21,11.83 6.58,11.77L6.63,13.2C5.72,13.27 4.84,13.74 4.27,14.56C3.27,16 3.58,17.94 4.95,18.91C6.33,19.87 8.26,19.5 9.26,18.07C9.57,17.62 9.75,17.13 9.82,16.63V15.62L15.4,15.58L15.47,15.47C16,14.55 17.15,14.23 18.05,14.75C18.95,15.27 19.26,16.43 18.73,17.35C18.2,18.26 17.04,18.58 16.14,18.06C15.73,17.83 15.44,17.46 15.31,17.04L11.24,17.06C11.13,17.73 10.87,18.38 10.46,19M17.74,11.86C20.27,12.17 22.07,14.44 21.76,16.93C21.45,19.43 19.15,21.2 16.62,20.89C15.13,20.71 13.9,19.86 13.19,18.68L14.43,17.96C14.92,18.73 15.75,19.28 16.75,19.41C18.5,19.62 20.05,18.43 20.26,16.76C20.47,15.09 19.23,13.56 17.5,13.35C16.96,13.29 16.44,13.36 15.97,13.53L15.12,13.97L12.54,9.2H12.32C11.26,9.16 10.44,8.29 10.47,7.25C10.5,6.21 11.4,5.4 12.45,5.44C13.5,5.5 14.33,6.35 14.3,7.39C14.28,7.83 14.11,8.23 13.84,8.54L15.74,12.05C16.36,11.85 17.04,11.78 17.74,11.86M8.25,9.14C7.25,6.79 8.31,4.1 10.62,3.12C12.94,2.14 15.62,3.25 16.62,5.6C17.21,6.97 17.09,8.47 16.42,9.67L15.18,8.95C15.6,8.14 15.67,7.15 15.27,6.22C14.59,4.62 12.78,3.85 11.23,4.5C9.67,5.16 8.97,7 9.65,8.6C9.93,9.26 10.4,9.77 10.97,10.11L11.36,10.32L8.29,15.31C8.32,15.36 8.36,15.42 8.39,15.5C8.88,16.41 8.54,17.56 7.62,18.05C6.71,18.54 5.56,18.18 5.06,17.24C4.57,16.31 4.91,15.16 5.83,14.67C6.22,14.46 6.65,14.41 7.06,14.5L9.37,10.73C8.9,10.3 8.5,9.76 8.25,9.14Z\";\nexport var mdiWebpack = \"M20.45 17.39L12.36 21.97V18.4L17.4 15.63L20.45 17.39M21 16.89V7.31L18.04 9V15.18L21 16.89M3.55 17.39L11.64 21.96V18.4L6.6 15.63L3.55 17.39M3 16.89V7.31L5.96 9V15.18L3 16.89M3.35 6.69L11.64 2V5.45L6.33 8.37L6.28 8.39L3.35 6.69M20.65 6.69L12.36 2V5.45L17.67 8.38L17.71 8.4L20.65 6.69M11.64 17.59L6.67 14.85V9.44L11.64 12.31V17.59M12.36 17.59L17.33 14.86V9.44L12.36 12.31V17.59M7 8.81L12 6.06L17 8.81L12 11.69L7 8.81Z\";\nexport var mdiWebrtc = \"M12 2C14.44 2 16.5 3.75 16.91 6.07L17.75 6C20.5 6 22.75 8.24 22.75 11C22.75 12.89 21.7 14.53 20.16 15.38C20.54 16.09 20.75 16.89 20.75 17.75C20.75 20.5 18.5 22.75 15.75 22.75C14.26 22.75 12.92 22.1 12 21.06C11.08 22.1 9.74 22.75 8.25 22.75C5.5 22.75 3.25 20.5 3.25 17.75C3.25 16.89 3.47 16.09 3.84 15.38C2.3 14.53 1.25 12.89 1.25 11C1.25 8.24 3.5 6 6.25 6L7.09 6.07C7.5 3.75 9.56 2 12 2M6.75 20.25L13.66 17H17C17.55 17 18 16.55 18 16V9C18 8.45 17.55 8 17 8H7C6.45 8 6 8.45 6 9V16C6 16.55 6.45 17 7 17H7.77L6.75 20.25Z\";\nexport var mdiWechat = \"M9.5,4C5.36,4 2,6.69 2,10C2,11.89 3.08,13.56 4.78,14.66L4,17L6.5,15.5C7.39,15.81 8.37,16 9.41,16C9.15,15.37 9,14.7 9,14C9,10.69 12.13,8 16,8C16.19,8 16.38,8 16.56,8.03C15.54,5.69 12.78,4 9.5,4M6.5,6.5A1,1 0 0,1 7.5,7.5A1,1 0 0,1 6.5,8.5A1,1 0 0,1 5.5,7.5A1,1 0 0,1 6.5,6.5M11.5,6.5A1,1 0 0,1 12.5,7.5A1,1 0 0,1 11.5,8.5A1,1 0 0,1 10.5,7.5A1,1 0 0,1 11.5,6.5M16,9C12.69,9 10,11.24 10,14C10,16.76 12.69,19 16,19C16.67,19 17.31,18.92 17.91,18.75L20,20L19.38,18.13C20.95,17.22 22,15.71 22,14C22,11.24 19.31,9 16,9M14,11.5A1,1 0 0,1 15,12.5A1,1 0 0,1 14,13.5A1,1 0 0,1 13,12.5A1,1 0 0,1 14,11.5M18,11.5A1,1 0 0,1 19,12.5A1,1 0 0,1 18,13.5A1,1 0 0,1 17,12.5A1,1 0 0,1 18,11.5Z\";\nexport var mdiWeight = \"M12,3A4,4 0 0,1 16,7C16,7.73 15.81,8.41 15.46,9H18C18.95,9 19.75,9.67 19.95,10.56C21.96,18.57 22,18.78 22,19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19C2,18.78 2.04,18.57 4.05,10.56C4.25,9.67 5.05,9 6,9H8.54C8.19,8.41 8,7.73 8,7A4,4 0 0,1 12,3M12,5A2,2 0 0,0 10,7A2,2 0 0,0 12,9A2,2 0 0,0 14,7A2,2 0 0,0 12,5Z\";\nexport var mdiWeightGram = \"M19.95,10.56C19.75,9.67 18.95,9 18,9H15.46C15.81,8.41 16,7.73 16,7A4,4 0 0,0 12,3A4,4 0 0,0 8,7C8,7.73 8.19,8.41 8.54,9H6C5.05,9 4.25,9.67 4.05,10.56C2.04,18.57 2,18.78 2,19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19C22,18.78 21.96,18.57 19.95,10.56M12,5A2,2 0 0,1 14,7A2,2 0 0,1 12,9A2,2 0 0,1 10,7A2,2 0 0,1 12,5M15,13H11V17H13V14H15V19H11C9.89,19 9,18.11 9,17V13C9,11.89 9.89,11 11,11H15V13Z\";\nexport var mdiWeightKilogram = \"M12,3A4,4 0 0,1 16,7C16,7.73 15.81,8.41 15.46,9H18C18.95,9 19.75,9.67 19.95,10.56C21.96,18.57 22,18.78 22,19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19C2,18.78 2.04,18.57 4.05,10.56C4.25,9.67 5.05,9 6,9H8.54C8.19,8.41 8,7.73 8,7A4,4 0 0,1 12,3M12,5A2,2 0 0,0 10,7A2,2 0 0,0 12,9A2,2 0 0,0 14,7A2,2 0 0,0 12,5M6,11V19H8V16.5L9,17.5V19H11V17L9,15L11,13V11H9V12.5L8,13.5V11H6M15,11C13.89,11 13,11.89 13,13V17C13,18.11 13.89,19 15,19H18V14H16V17H15V13H18V11H15Z\";\nexport var mdiWeightLifter = \"M12 5C10.89 5 10 5.89 10 7S10.89 9 12 9 14 8.11 14 7 13.11 5 12 5M22 1V6H20V4H4V6H2V1H4V3H20V1H22M15 11.26V23H13V18H11V23H9V11.26C6.93 10.17 5.5 8 5.5 5.5L5.5 5H7.5L7.5 5.5C7.5 8 9.5 10 12 10S16.5 8 16.5 5.5L16.5 5H18.5L18.5 5.5C18.5 8 17.07 10.17 15 11.26Z\";\nexport var mdiWeightPound = \"M12,3A4,4 0 0,1 16,7C16,7.73 15.81,8.41 15.46,9H18C18.95,9 19.75,9.67 19.95,10.56C21.96,18.57 22,18.78 22,19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19C2,18.78 2.04,18.57 4.05,10.56C4.25,9.67 5.05,9 6,9H8.54C8.19,8.41 8,7.73 8,7A4,4 0 0,1 12,3M12,5A2,2 0 0,0 10,7A2,2 0 0,0 12,9A2,2 0 0,0 14,7A2,2 0 0,0 12,5M6,11V19H11V17H8V11H6M13,11V19H16C17.11,19 18,18.11 18,17V16.5C18,15.93 17.75,15.38 17.32,15C17.75,14.62 18,14.07 18,13.5V13C18,11.89 17.11,11 16,11H13M15,13H16V14H15V13M15,16H16V17H15V16Z\";\nexport var mdiWhatsapp = \"M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z\";\nexport var mdiWheelBarrow = \"M18 15.5C18.83 15.5 19.5 16.17 19.5 17S18.83 18.5 18 18.5 16.5 17.83 16.5 17 17.17 15.5 18 15.5M18 14C16.34 14 15 15.34 15 17S16.34 20 18 20C19.66 20 21 18.66 21 17S19.66 14 18 14M7 8L5 5H2V7H5.13L8 11.3V20H10L12.57 15H14.55C15.25 13.81 16.5 13 18 13C18.88 13 19.69 13.29 20.35 13.78L22 8H7M9.39 19H9V12.8L9.87 14.11C10.23 14.64 10.82 14.96 11.45 15L9.39 19Z\";\nexport var mdiWheelchair = \"M14 16L15.32 17.76C14.32 19.68 12.31 21 10 21C6.69 21 4 18.31 4 15C4 12.57 5.46 10.5 7.55 9.55L7.76 11.72C6.71 12.44 6 13.63 6 15C6 17.21 7.79 19 10 19C11.86 19 13.41 17.72 13.86 16H14M19.55 16.11L18.3 16.73L15.5 13H10.91L10.71 11H14V9H10.5L10.2 6C11.21 5.88 12 5.04 12 4C12 2.9 11.11 2 10 2S8 2.9 8 4C8 4.03 8 4.07 8 4.1H8L9.1 15H14.5L17.7 19.27L20.45 17.9L19.55 16.11Z\";\nexport var mdiWheelchairAccessibility = \"M18.4,11.2L14.3,11.4L16.6,8.8C16.8,8.5 16.9,8 16.8,7.5C16.7,7.2 16.6,6.9 16.3,6.7L10.9,3.5C10.5,3.2 9.9,3.3 9.5,3.6L6.8,6.1C6.3,6.6 6.2,7.3 6.7,7.8C7.1,8.3 7.9,8.3 8.4,7.9L10.4,6.1L12.3,7.2L8.1,11.5C8,11.6 8,11.7 7.9,11.7C7.4,11.9 6.9,12.1 6.5,12.4L8,13.9C8.5,13.7 9,13.5 9.5,13.5C11.4,13.5 13,15.1 13,17C13,17.6 12.9,18.1 12.6,18.5L14.1,20C14.7,19.1 15,18.1 15,17C15,15.8 14.6,14.6 13.9,13.7L17.2,13.4L17,18.2C16.9,18.9 17.4,19.4 18.1,19.5H18.2C18.8,19.5 19.3,19 19.4,18.4L19.6,12.5C19.6,12.2 19.5,11.8 19.3,11.6C19,11.3 18.7,11.2 18.4,11.2M18,5.5A2,2 0 0,0 20,3.5A2,2 0 0,0 18,1.5A2,2 0 0,0 16,3.5A2,2 0 0,0 18,5.5M12.5,21.6C11.6,22.2 10.6,22.5 9.5,22.5C6.5,22.5 4,20 4,17C4,15.9 4.3,14.9 4.9,14L6.4,15.5C6.2,16 6,16.5 6,17C6,18.9 7.6,20.5 9.5,20.5C10.1,20.5 10.6,20.4 11,20.1L12.5,21.6Z\";\nexport var mdiWhistle = \"M8.5,9A6.5,6.5 0 0,0 2,15.5A6.5,6.5 0 0,0 8.5,22A6.5,6.5 0 0,0 15,15.5V13.91L22,12V9H11V11H9V9H8.5M11,2V7H9V2H11M6.35,7.28C5.68,7.44 5.04,7.68 4.43,8L2.14,4.88L3.76,3.7L6.35,7.28M17.86,4.88L16.32,7H13.85L16.24,3.7L17.86,4.88Z\";\nexport var mdiWhistleOutline = \"M3.76 3.7L2.14 4.88L4.43 8A8.23 8.23 0 0 1 6.35 7.28M11 9V11H18V11.29L13 12.71V15.5A4.5 4.5 0 1 1 8.5 11H9V9H8.5A6.5 6.5 0 1 0 15 15.5V13.91L22 12V9M16.24 3.7L13.85 7H16.32L17.86 4.88M9 2V7H11V2Z\";\nexport var mdiWhiteBalanceAuto = \"M10.3,16L9.6,14H6.4L5.7,16H3.8L7,7H9L12.2,16M22,7L20.8,13.29L19.3,7H17.7L16.21,13.29L15,7H14.24C12.77,5.17 10.5,4 8,4A8,8 0 0,0 0,12A8,8 0 0,0 8,20C11.13,20 13.84,18.19 15.15,15.57L15.25,16H17L18.5,9.9L20,16H21.75L23.8,7M6.85,12.65H9.15L8,9L6.85,12.65Z\";\nexport var mdiWhiteBalanceIncandescent = \"M17.24,18.15L19.04,19.95L20.45,18.53L18.66,16.74M20,12.5H23V10.5H20M15,6.31V1.5H9V6.31C7.21,7.35 6,9.28 6,11.5A6,6 0 0,0 12,17.5A6,6 0 0,0 18,11.5C18,9.28 16.79,7.35 15,6.31M4,10.5H1V12.5H4M11,22.45C11.32,22.45 13,22.45 13,22.45V19.5H11M3.55,18.53L4.96,19.95L6.76,18.15L5.34,16.74L3.55,18.53Z\";\nexport var mdiWhiteBalanceIridescent = \"M4.96,19.95L6.76,18.15L5.34,16.74L3.55,18.53M3.55,4.46L5.34,6.26L6.76,4.84L4.96,3.05M20.45,18.53L18.66,16.74L17.24,18.15L19.04,19.95M13,22.45V19.5H11V22.45C11.32,22.45 13,22.45 13,22.45M19.04,3.05L17.24,4.84L18.66,6.26L20.45,4.46M11,3.5H13V0.55H11M5,14.5H19V8.5H5V14.5Z\";\nexport var mdiWhiteBalanceSunny = \"M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 1H11V4H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13\";\nexport var mdiWidgets = \"M3,3H11V7.34L16.66,1.69L22.31,7.34L16.66,13H21V21H13V13H16.66L11,7.34V11H3V3M3,13H11V21H3V13Z\";\nexport var mdiWidgetsOutline = \"M16.7 4.5L19.5 7.3L16.7 10.1L13.9 7.3L16.7 4.5M9 5V9H5V5H9M19 15V19H15V15H19M16.7 1.7L11 7.3L16.7 13H13V21H21V13H16.7L22.3 7.3L16.7 1.7M11 3H3V11H11V3M9 15V19H5V15H9M11 13H3V21H11V13Z\";\nexport var mdiWifi = \"M12,21L15.6,16.2C14.6,15.45 13.35,15 12,15C10.65,15 9.4,15.45 8.4,16.2L12,21M12,3C7.95,3 4.21,4.34 1.2,6.6L3,9C5.5,7.12 8.62,6 12,6C15.38,6 18.5,7.12 21,9L22.8,6.6C19.79,4.34 16.05,3 12,3M12,9C9.3,9 6.81,9.89 4.8,11.4L6.6,13.8C8.1,12.67 9.97,12 12,12C14.03,12 15.9,12.67 17.4,13.8L19.2,11.4C17.19,9.89 14.7,9 12,9Z\";\nexport var mdiWifiAlert = \"M20.24 5H18V7.25C16.16 6.45 14.13 6 12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3C14.97 3 17.77 3.73 20.24 5M8.4 16.2L12 21L15.6 16.2C14.6 15.45 13.35 15 12 15S9.4 15.45 8.4 16.2M4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12S15.9 12.67 17.4 13.8L18 13V10.62C16.23 9.59 14.19 9 12 9C9.3 9 6.81 9.89 4.8 11.4M20 17H22V15H20V17M20 7V13H22V7H20Z\";\nexport var mdiWifiArrowDown = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M16.84 13.41C17.18 13.27 17.55 13.17 17.92 13.1L19.2 11.4C17.19 9.89 14.7 9 12 9S6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C13.78 12 15.44 12.5 16.84 13.41M20 16H18V20H16L19 23L22 20H20V16Z\";\nexport var mdiWifiArrowLeft = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M18 16L15 19L18 22V20H22V18H18V16Z\";\nexport var mdiWifiArrowLeftRight = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M18 18.5L15 21L18 23.5V22H22V20H18V18.5M23 17L20 14.5V16H16V18H20V19.5L23 17Z\";\nexport var mdiWifiArrowRight = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M16.84 13.41C17.18 13.27 17.55 13.17 17.92 13.1L19.2 11.4C17.19 9.89 14.7 9 12 9S6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C13.78 12 15.44 12.5 16.84 13.41M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M23 19L20 16V18H16V20H20V22L23 19Z\";\nexport var mdiWifiArrowUp = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M16 18H18V22H20V18H22L19 15L16 18Z\";\nexport var mdiWifiArrowUpDown = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M17 15L14.5 18H16V22H18V18H19.5L17 15M22 20V16H20V20H18.5L21 23L23.5 20H22Z\";\nexport var mdiWifiCancel = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M15.53 12.72C16.42 12.26 17.43 12 18.5 12C18.58 12 18.66 12 18.74 12L19.2 11.4C17.19 9.89 14.7 9 12 9S6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C13.26 12 14.45 12.26 15.53 12.72M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L12.34 20.54C12.13 19.9 12 19.22 12 18.5C12 17.24 12.36 16.08 13 15.08C12.66 15.03 12.33 15 12 15M23 18.5C23 21 21 23 18.5 23S14 21 14 18.5 16 14 18.5 14 23 16 23 18.5M20 21.08L15.92 17C15.65 17.42 15.5 17.94 15.5 18.5C15.5 20.16 16.84 21.5 18.5 21.5C19.06 21.5 19.58 21.35 20 21.08M21.5 18.5C21.5 16.84 20.16 15.5 18.5 15.5C17.94 15.5 17.42 15.65 17 15.92L21.08 20C21.35 19.58 21.5 19.06 21.5 18.5Z\";\nexport var mdiWifiCheck = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M17.75 19.43L16.16 17.84L15 19L17.75 22L22.5 17.25L21.34 15.84L17.75 19.43Z\";\nexport var mdiWifiCog = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L18.74 12C17.66 12.05 16.63 12.33 15.73 12.81C14.6 12.29 13.33 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L12.22 20.71C12.08 20.16 12 19.59 12 19C12 17.57 12.43 16.24 13.17 15.13C12.79 15.05 12.4 15 12 15M23.8 20.4C23.9 20.4 23.9 20.5 23.8 20.6L22.8 22.3C22.7 22.4 22.6 22.4 22.5 22.4L21.3 22C21 22.2 20.8 22.3 20.5 22.5L20.3 23.8C20.3 23.9 20.2 24 20.1 24H18.1C18 24 17.9 23.9 17.8 23.8L17.6 22.5C17.3 22.4 17 22.2 16.8 22L15.6 22.5C15.5 22.5 15.4 22.5 15.3 22.4L14.3 20.7C14.2 20.6 14.3 20.5 14.4 20.4L15.5 19.6V18.6L14.4 17.8C14.3 17.7 14.3 17.6 14.3 17.5L15.3 15.8C15.4 15.7 15.5 15.7 15.6 15.7L16.8 16.2C17.1 16 17.3 15.9 17.6 15.7L17.8 14.4C17.8 14.3 17.9 14.2 18.1 14.2H20.1C20.2 14.2 20.3 14.3 20.3 14.4L20.5 15.7C20.8 15.8 21.1 16 21.4 16.2L22.6 15.7C22.7 15.7 22.9 15.7 22.9 15.8L23.9 17.5C24 17.6 23.9 17.7 23.8 17.8L22.7 18.6V19.6L23.8 20.4M20.5 19C20.5 18.2 19.8 17.5 19 17.5S17.5 18.2 17.5 19 18.2 20.5 19 20.5 20.5 19.8 20.5 19Z\";\nexport var mdiWifiLock = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M17.4 10.29C15.77 9.47 13.94 9 12 9C9.3 9 6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C12.97 12 13.9 12.16 14.78 12.44C15.34 11.45 16.27 10.68 17.4 10.29M8.4 16.2L12 21L13 19.67V17.2C13 16.5 13.27 15.81 13.7 15.26C13.16 15.1 12.59 15 12 15C10.65 15 9.4 15.45 8.4 16.2M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiWifiLockOpen = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M16.31 9.81C14.97 9.29 13.5 9 12 9C9.3 9 6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C12.83 12 13.63 12.12 14.39 12.33C14.7 11.3 15.38 10.41 16.31 9.81M8.4 16.2L12 21L13 19.67V17.2C13 16.5 13.27 15.81 13.7 15.26C13.16 15.1 12.59 15 12 15C10.65 15 9.4 15.45 8.4 16.2M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiMarker = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M13 15.09C12.69 15.03 12.35 15 12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.8 18.6C13.33 17.58 13 16.5 13 15.5C13 15.36 13 15.23 13 15.09M12 9C9.3 9 6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C12.73 12 13.43 12.09 14.1 12.25C14.86 11.25 15.93 10.5 17.17 10.18C15.6 9.43 13.85 9 12 9M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\";\nexport var mdiWifiMinus = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M15 18V20H23V18H15Z\";\nexport var mdiWifiOff = \"M2.28,3L1,4.27L2.47,5.74C2.04,6 1.61,6.29 1.2,6.6L3,9C3.53,8.6 4.08,8.25 4.66,7.93L6.89,10.16C6.15,10.5 5.44,10.91 4.8,11.4L6.6,13.8C7.38,13.22 8.26,12.77 9.2,12.47L11.75,15C10.5,15.07 9.34,15.5 8.4,16.2L12,21L14.46,17.73L17.74,21L19,19.72M12,3C9.85,3 7.8,3.38 5.9,4.07L8.29,6.47C9.5,6.16 10.72,6 12,6C15.38,6 18.5,7.11 21,9L22.8,6.6C19.79,4.34 16.06,3 12,3M12,9C11.62,9 11.25,9 10.88,9.05L14.07,12.25C15.29,12.53 16.43,13.07 17.4,13.8L19.2,11.4C17.2,9.89 14.7,9 12,9Z\";\nexport var mdiWifiPlus = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M16.84 13.41C17.18 13.27 17.55 13.17 17.92 13.1L19.2 11.4C17.19 9.89 14.7 9 12 9S6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C13.78 12 15.44 12.5 16.84 13.41M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z\";\nexport var mdiWifiRefresh = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L18.74 12C18.66 12 18.58 12 18.5 12C17.43 12 16.42 12.26 15.53 12.72C14.45 12.26 13.26 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L12.34 20.54C12.13 19.9 12 19.22 12 18.5C12 17.24 12.36 16.08 13 15.08C12.66 15.03 12.33 15 12 15M18 14.5C15.79 14.5 14 16.29 14 18.5S15.79 22.5 18 22.5C19.68 22.5 21.12 21.47 21.71 20H20C19.54 20.61 18.82 21 18 21C16.62 21 15.5 19.88 15.5 18.5S16.62 16 18 16C18.69 16 19.32 16.28 19.77 16.73L18 18.5H22V14.5L20.83 15.67C20.11 14.95 19.11 14.5 18 14.5Z\";\nexport var mdiWifiRemove = \"M12 12C9.97 12 8.1 12.67 6.6 13.8L4.8 11.4C6.81 9.89 9.3 9 12 9S17.19 9.89 19.2 11.4L17.92 13.1C17.55 13.17 17.18 13.27 16.84 13.41C15.44 12.5 13.78 12 12 12M21 9L22.8 6.6C19.79 4.34 16.05 3 12 3S4.21 4.34 1.2 6.6L3 9C5.5 7.12 8.62 6 12 6S18.5 7.12 21 9M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.04 19.61C13 19.41 13 19.21 13 19C13 17.66 13.44 16.43 14.19 15.43C13.5 15.16 12.77 15 12 15M21.12 15.46L19 17.59L16.88 15.47L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z\";\nexport var mdiWifiSettings = \"M12 20L8.4 15.2C9.4 14.45 10.65 14 12 14S14.6 14.45 15.6 15.2L12 20M4.8 10.4L6.6 12.8C8.1 11.67 9.97 11 12 11S15.9 11.67 17.4 12.8L19.2 10.4C17.19 8.89 14.7 8 12 8S6.81 8.89 4.8 10.4M12 2C7.95 2 4.21 3.34 1.2 5.6L3 8C5.5 6.12 8.62 5 12 5S18.5 6.12 21 8L22.8 5.6C19.79 3.34 16.05 2 12 2M7 24H9V22H7V24M15 24H17V22H15V24M11 24H13V22H11V24Z\";\nexport var mdiWifiStar = \"M12,6C8.6,6 5.5,7.1 3,9L1.2,6.6C4.2,4.3 8,3 12,3C16,3 19.8,4.3 22.8,6.6L21,9C18.5,7.1 15.4,6 12,6M13,19C13,17.7 13.4,16.4 14.2,15.4C13.5,15.2 12.8,15 12,15C10.7,15 9.4,15.5 8.4,16.2L12,21L13,19.6C13,19.4 13,19.2 13,19M16.8,13.4C17.1,13.3 17.5,13.2 17.9,13.1L19.2,11.4C17.2,9.9 14.7,9 12,9C9.3,9 6.8,9.9 4.8,11.4L6.6,13.8C8.1,12.7 10,12 12,12C13.8,12 15.4,12.5 16.8,13.4M16.5,22.6L17.2,19.8L15,17.9L17.9,17.7L19,15L20.1,17.6L23,17.8L20.8,19.7L21.5,22.5L19,21.1L16.5,22.6Z\";\nexport var mdiWifiStrength1 = \"M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L15.61,13.81C14.5,13.28 13.25,13 12,13C10.75,13 9.5,13.28 8.39,13.8L3.27,7.44C5.91,5.85 8.93,5 12,5Z\";\nexport var mdiWifiStrength1Alert = \"M12 3C7.8 3 3.7 4.4 .4 7C4.4 12.1 7.9 16.4 12 21.5C14.4 18.5 16.7 15.7 19 12.8V9.6L15.6 13.8C14.5 13.3 13.2 13 12 13S9.5 13.3 8.4 13.8L3.3 7.4C5.9 5.8 8.9 5 12 5S18.1 5.9 20.7 7.4L20.3 8H22.9C23.1 7.7 23.5 7.3 23.7 7C20.3 4.4 16.2 3 12 3M21 10V16H23V10M21 18V20H23V18\";\nexport var mdiWifiStrength1Lock = \"M12 13C12.8 13 13.61 13.13 14.38 13.36C14.28 13.73 14.2 14.11 14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L20.91 10.39C20.32 10.14 19.68 10 19 10C18.87 10 18.75 10.03 18.62 10.04L20.7 7.45C18.08 5.86 15.06 5 12 5S5.9 5.85 3.26 7.44L8.38 13.8C9.5 13.28 10.74 13 12 13M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiWifiStrength1LockOpen = \"M12 13C12.74 13 13.5 13.12 14.22 13.31C14.22 13.38 14.2 13.44 14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L21.5 9.69C20.86 9.33 20.16 9.11 19.42 9.04L20.7 7.45C18.08 5.86 15.06 5 12 5S5.9 5.85 3.26 7.44L8.38 13.8C9.5 13.28 10.74 13 12 13M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiStrength2 = \"M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L17.5,11.43C16.26,10.74 14.37,10 12,10C9.62,10 7.74,10.75 6.5,11.43L3.27,7.44C5.91,5.85 8.93,5 12,5Z\";\nexport var mdiWifiStrength2Alert = \"M12 3C7.8 3 3.7 4.4 .4 7C4.4 12.1 7.9 16.4 12 21.5C14.4 18.5 16.7 15.7 19 12.8V9.6L17.5 11.4C16.3 10.7 14.4 10 12 10C9.6 10 7.7 10.8 6.5 11.4L3.3 7.4C5.9 5.8 8.9 5 12 5S18.1 5.9 20.7 7.4L20.3 8H22.9C23.1 7.7 23.5 7.3 23.7 7C20.3 4.4 16.2 3 12 3M21 10V16H23V10M21 18V20H23V18\";\nexport var mdiWifiStrength2Lock = \"M14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L20.91 10.39C20.32 10.14 19.68 10 19 10C18.87 10 18.74 10.03 18.61 10.04L20.7 7.45C18.08 5.86 15.06 5 12 5S5.9 5.85 3.26 7.44L6.5 11.43C7.73 10.75 9.61 10 12 10C13.68 10 15.12 10.38 16.26 10.84C15.03 11.67 14.2 13 14.2 14.5M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiWifiStrength2LockOpen = \"M15.44 10.55C14.68 11.35 14.2 12.38 14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L21.5 9.69C20.86 9.33 20.16 9.1 19.41 9.04L20.7 7.45C18.08 5.86 15.06 5 12 5S5.9 5.85 3.26 7.44L6.5 11.43C7.73 10.75 9.61 10 12 10C13.29 10 14.45 10.23 15.44 10.55M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiStrength3 = \"M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L18.77,9.88C17.26,9 14.88,8 12,8C9,8 6.68,9 5.21,9.84L3.27,7.44C5.91,5.85 8.93,5 12,5Z\";\nexport var mdiWifiStrength3Alert = \"M12 3C7.8 3 3.7 4.4 .4 7C4.4 12.1 7.9 16.4 12 21.5C14.4 18.5 16.7 15.7 19 12.8V9.6L18.8 9.9C17.3 9 14.9 8 12 8C9 8 6.7 9 5.2 9.8L3.3 7.4C5.9 5.8 8.9 5 12 5S18.1 5.9 20.7 7.4L20.3 8H22.9C23.1 7.7 23.5 7.3 23.7 7C20.3 4.4 16.2 3 12 3M21 10V16H23V10M21 18V20H23V18\";\nexport var mdiWifiStrength3Lock = \"M19 10C19.68 10 20.32 10.14 20.91 10.39L23.64 7C20.31 4.41 16.2 3 12 3C7.78 3 3.69 4.41 .365 7C4.39 12.06 7.88 16.37 12 21.5L13 20.24V17.2C13 16.24 13.5 15.34 14.2 14.74V14.5C14.2 12.06 16.4 10 19 10M12 8C9 8 6.67 9 5.2 9.84L3.26 7.44C5.9 5.85 8.91 5 12 5S18.08 5.86 20.7 7.45L18.76 9.88C17.25 9 14.87 8 12 8M21.8 16V14.5C21.8 13.1 20.4 12 19 12S16.2 13.1 16.2 14.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16M20.5 16H17.5V14.5C17.5 13.7 18.2 13.2 19 13.2S20.5 13.7 20.5 14.5V16Z\";\nexport var mdiWifiStrength3LockOpen = \"M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L21.5 9.69C20.86 9.33 20.17 9.11 19.42 9.04L20.7 7.45C18.08 5.86 15.06 5 12 5S5.9 5.85 3.26 7.44L5.2 9.84C6.67 9 9 8 12 8C14.18 8 16.08 8.58 17.53 9.25C15.63 9.85 14.2 11.54 14.2 13.5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiStrength4 = \"M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3Z\";\nexport var mdiWifiStrength4Alert = \"M12 3C7.8 3 3.7 4.4 .4 7C4.4 12.1 7.9 16.4 12 21.5C14.4 18.5 16.7 15.7 19 12.8V8H22.8C23 7.7 23.4 7.3 23.6 7C20.3 4.4 16.2 3 12 3M21 10V16H23V10M21 18V20H23V18\";\nexport var mdiWifiStrength4Lock = \"M14.2 14.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L20.91 10.39C20.32 10.14 19.68 10 19 10C16.4 10 14.2 12.06 14.2 14.5M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiWifiStrength4LockOpen = \"M14.2 13.5V14.74C13.5 15.34 13 16.24 13 17.2V20.24L12 21.5C7.88 16.37 4.39 12.06 .365 7C3.69 4.41 7.78 3 12 3C16.2 3 20.31 4.41 23.64 7L21.5 9.69C20.75 9.26 19.9 9 19 9C16.4 9 14.2 11.06 14.2 13.5M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiStrengthAlertOutline = \"M12 3C7.8 3 3.7 4.4 .4 7C4.3 11.8 8.2 16.7 12 21.5C14.3 18.6 16.7 15.7 19 12.8V9.6L12 18.3L3.3 7.4C5.9 5.8 8.9 5 12 5C15.1 5 18.1 5.9 20.7 7.4L20.3 8H22.9C23.2 7.7 23.4 7.3 23.7 7C20.3 4.4 16.2 3 12 3M21 10V16H23V10M21 18V20H23V18\";\nexport var mdiWifiStrengthLockOpenOutline = \"M23.65 7H23.64C22.92 7.9 22.2 8.79 21.5 9.69C20.87 9.33 20.17 9.11 19.43 9.04L20.71 7.45C18.09 5.86 15.07 5 12 5C8.91 5 5.9 5.85 3.27 7.44L12 18.3L13 17C13 17.08 13 17.14 13 17.2V20.25L12 21.5C8.13 16.66 4.24 11.83 .355 7H.375C3.7 4.41 7.79 3 12 3C16.22 3 20.32 4.41 23.65 7M21.8 16H17.5V13.5C17.5 12.7 18.2 12.2 19 12.2S20.5 12.7 20.5 13.5V14H21.8V13.5C21.8 12.1 20.4 11 19 11S16.2 12.1 16.2 13.5V16C15.6 16 15 16.6 15 17.2V20.7C15 21.4 15.6 22 16.2 22H21.7C22.4 22 23 21.4 23 20.8V17.3C23 16.6 22.4 16 21.8 16Z\";\nexport var mdiWifiStrengthLockOutline = \"M23.65 7H23.64L20.91 10.39C20.32 10.14 19.68 10 19 10C18.87 10 18.75 10.03 18.63 10.04L20.71 7.45C18.09 5.86 15.07 5 12 5C8.91 5 5.9 5.85 3.27 7.44L12 18.3L13 17C13 17.08 13 17.14 13 17.2V20.25L12 21.5C8.13 16.66 4.24 11.83 .355 7H.375C3.7 4.41 7.79 3 12 3C16.22 3 20.32 4.41 23.65 7M23 17.3V20.8C23 21.4 22.4 22 21.7 22H16.2C15.6 22 15 21.4 15 20.7V17.2C15 16.6 15.6 16 16.2 16V14.5C16.2 13.1 17.6 12 19 12S21.8 13.1 21.8 14.5V16C22.4 16 23 16.6 23 17.3M20.5 14.5C20.5 13.7 19.8 13.2 19 13.2S17.5 13.7 17.5 14.5V16H20.5V14.5Z\";\nexport var mdiWifiStrengthOff = \"M3.27,1.44L2,2.72L4.05,4.77C2.75,5.37 1.5,6.11 0.38,7C4.41,12.06 12,21.5 12,21.5L15.91,16.63L19.23,19.95L20.5,18.68M12,3C10.6,3 9.21,3.17 7.86,3.5L18.18,13.81C20,11.5 22.05,9 23.65,7C20.32,4.41 16.22,3 12,3Z\";\nexport var mdiWifiStrengthOffOutline = \"M3.27,1.44L2,2.72L4.05,4.77C2.75,5.37 1.5,6.11 0.38,7C4.2,11.8 8.14,16.67 12,21.5L15.91,16.63L19.23,19.95L20.5,18.68C14.87,13.04 3.27,1.44 3.27,1.44M12,3C10.6,3 9.21,3.17 7.86,3.5L9.56,5.19C10.37,5.07 11.18,5 12,5C15.07,5 18.09,5.86 20.71,7.45L16.76,12.38L18.18,13.8C20.08,11.43 22,9 23.65,7C20.32,4.41 16.22,3 12,3M5.57,6.29L14.5,15.21L12,18.3L3.27,7.44C4,7 4.78,6.61 5.57,6.29Z\";\nexport var mdiWifiStrengthOutline = \"M12,3C7.79,3 3.7,4.41 0.38,7H0.36C4.24,11.83 8.13,16.66 12,21.5C15.89,16.66 19.77,11.83 23.64,7H23.65C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L12,18.3L3.27,7.44C5.9,5.85 8.92,5 12,5Z\";\nexport var mdiWifiSync = \"M12 6C8.62 6 5.5 7.12 3 9L1.2 6.6C4.21 4.34 7.95 3 12 3S19.79 4.34 22.8 6.6L21 9C18.5 7.12 15.38 6 12 6M12 15C10.65 15 9.4 15.45 8.4 16.2L12 21L13.26 19.32C13.1 18.74 13 18.13 13 17.5C13 16.69 13.16 15.91 13.43 15.19C12.97 15.08 12.5 15 12 15M15.23 12.61C16.19 11.77 17.38 11.22 18.7 11.05C16.78 9.76 14.5 9 12 9C9.3 9 6.81 9.89 4.8 11.4L6.6 13.8C8.1 12.67 9.97 12 12 12C13.14 12 14.23 12.22 15.23 12.61M19 20C17.62 20 16.5 18.88 16.5 17.5C16.5 17.1 16.59 16.72 16.76 16.38L15.67 15.29C15.25 15.92 15 16.68 15 17.5C15 19.71 16.79 21.5 19 21.5V23L21.25 20.75L19 18.5V20M19 13.5V12L16.75 14.25L19 16.5V15C20.38 15 21.5 16.12 21.5 17.5C21.5 17.9 21.41 18.28 21.24 18.62L22.33 19.71C22.75 19.08 23 18.32 23 17.5C23 15.29 21.21 13.5 19 13.5Z\";\nexport var mdiWikipedia = \"M14.97,18.95L12.41,12.92C11.39,14.91 10.27,17 9.31,18.95C9.3,18.96 8.84,18.95 8.84,18.95C7.37,15.5 5.85,12.1 4.37,8.68C4.03,7.84 2.83,6.5 2,6.5C2,6.4 2,6.18 2,6.05H7.06V6.5C6.46,6.5 5.44,6.9 5.7,7.55C6.42,9.09 8.94,15.06 9.63,16.58C10.1,15.64 11.43,13.16 12,12.11C11.55,11.23 10.13,7.93 9.71,7.11C9.39,6.57 8.58,6.5 7.96,6.5C7.96,6.35 7.97,6.25 7.96,6.06L12.42,6.07V6.47C11.81,6.5 11.24,6.71 11.5,7.29C12.1,8.53 12.45,9.42 13,10.57C13.17,10.23 14.07,8.38 14.5,7.41C14.76,6.76 14.37,6.5 13.29,6.5C13.3,6.38 13.3,6.17 13.3,6.07C14.69,6.06 16.78,6.06 17.15,6.05V6.47C16.44,6.5 15.71,6.88 15.33,7.46L13.5,11.3C13.68,11.81 15.46,15.76 15.65,16.2L19.5,7.37C19.2,6.65 18.34,6.5 18,6.5C18,6.37 18,6.2 18,6.05L22,6.08V6.1L22,6.5C21.12,6.5 20.57,7 20.25,7.75C19.45,9.54 17,15.24 15.4,18.95C15.4,18.95 14.97,18.95 14.97,18.95Z\";\nexport var mdiWindPower = \"M4 3H10V5H4V3M1 7H6V9H1V7M3 19H8V21H3V19M13.73 10.61C14.5 10.84 15.03 11.39 15.3 12.07L19.57 4.96C20.22 3.88 19.87 2.5 18.79 1.83C17.92 1.31 16.8 1.42 16.06 2.12L12.63 5.33C12.23 5.7 12 6.23 12 6.78V10.71C12.36 10.56 13 10.38 13.73 10.61M10.61 12.27C10.77 11.75 11.09 11.31 11.5 11H3.28C2 11 1 12 1 13.28C1 14.3 1.67 15.19 2.65 15.47L7.16 16.76C7.69 16.91 8.26 16.84 8.74 16.55L11.43 14.94C10.66 14.32 10.3 13.27 10.61 12.27M22.21 18.61L19.93 14.5C19.66 14.03 19.2 13.68 18.67 13.54L15.5 12.74C15.5 13.06 15.5 13.4 15.39 13.73C15.07 14.79 14.11 15.5 13 15.5C12.39 15.5 12 15.28 12 15.28V21C10.9 21 10 21.9 10 23H16C16 21.9 15.1 21 14 21V16.72L18.61 21.33C19.5 22.22 20.94 22.22 21.83 21.33C22.55 20.61 22.71 19.5 22.21 18.61M12.56 14.43C13.35 14.67 14.19 14.23 14.43 13.43C14.67 12.64 14.23 11.8 13.43 11.56C12.64 11.32 11.8 11.76 11.56 12.56C11.32 13.35 11.77 14.19 12.56 14.43Z\";\nexport var mdiWindPowerOutline = \"M4 3H10V5H4V3M1 7H6V9H1V7M3 19H8V21H3V19M22.21 18.61L19.93 14.5C19.66 14.03 19.2 13.68 18.67 13.54L16 12.87C15.96 12.4 15.84 11.95 15.61 11.54L19.57 4.95C20.22 3.87 19.87 2.47 18.79 1.82C18.43 1.6 18 1.5 17.62 1.5C17.06 1.5 16.5 1.71 16.06 2.12L12.63 5.33C12.23 5.7 12 6.23 12 6.78V10.18C11.53 10.35 11.11 10.63 10.77 11H3.28C2 11 1 12 1 13.28C1 14.3 1.67 15.19 2.65 15.47L7.16 16.76C7.34 16.81 7.53 16.84 7.71 16.84C8.07 16.84 8.43 16.74 8.74 16.55L11 15.21C11.27 15.47 11.61 15.68 12 15.82V21C10.9 21 10 21.9 10 23H16C16 21.9 15.1 21 14 21V16.72L18.61 21.33C19.06 21.78 19.64 22 20.22 22S21.39 21.78 21.83 21.33C22.55 20.61 22.71 19.5 22.21 18.61M7.72 14.84L3.2 13.55C3.08 13.5 3 13.4 3 13.28C3 13.13 3.13 13 3.28 13H10C10 13.15 10 13.3 10.04 13.44L7.72 14.84M13 14C12.45 14 12 13.55 12 13S12.45 12 13 12 14 12.45 14 13 13.55 14 13 14M14 10.14V6.78L17.43 3.57C17.5 3.5 17.62 3.45 17.77 3.53C17.9 3.61 17.95 3.78 17.87 3.91L14.13 10.15L14 10.14M20.42 19.92C20.37 19.97 20.18 20.08 20 19.92L15.17 15.07C15.25 15 15.33 14.89 15.41 14.79L18.19 15.5L20.47 19.58C20.53 19.69 20.5 19.83 20.42 19.92Z\";\nexport var mdiWindTurbine = \"M13.33,11.67L16.21,14.58C17.62,13.16 16.21,11.75 16.21,11.75L14.72,10.24C14.9,9.86 15,9.44 15,9C15,7.95 14.46,7.03 13.64,6.5L15,2.11C13.09,1.53 12.5,3.44 12.5,3.44L11.69,6.03C10.46,6.16 9.46,7 9.13,8.18L4.67,9.63C5.31,11.53 7.2,10.9 7.2,10.9L9.27,10.23C9.61,10.97 10.23,11.54 11,11.82V19C11,19 9,19 9,21C9,21.5 9,21.81 9,22H15V21C15,21 15,19 13,19V11.82C13.12,11.78 13.23,11.72 13.33,11.67M10.5,9A1.5,1.5 0 0,1 12,7.5A1.5,1.5 0 0,1 13.5,9A1.5,1.5 0 0,1 12,10.5A1.5,1.5 0 0,1 10.5,9Z\";\nexport var mdiWindTurbineAlert = \"M12.33 11.67L15.21 14.58C16.62 13.16 15.21 11.75 15.21 11.75L13.72 10.24C13.9 9.86 14 9.44 14 9C14 7.95 13.46 7.03 12.64 6.5L14 2.11C12.09 1.53 11.5 3.44 11.5 3.44L10.69 6.03C9.46 6.16 8.46 7 8.13 8.18L3.67 9.63C4.31 11.53 6.2 10.9 6.2 10.9L8.27 10.23C8.61 10.97 9.23 11.54 10 11.82V19C10 19 8 19 8 21V22H14V21C14 21 14 19 12 19V11.82C12.12 11.78 12.23 11.72 12.33 11.67M9.5 9C9.5 8.17 10.17 7.5 11 7.5S12.5 8.17 12.5 9 11.83 10.5 11 10.5 9.5 9.83 9.5 9M18 12V7H20V13H18M18 17V15H20V17H18Z\";\nexport var mdiWindTurbineCheck = \"M11.33 11.67L14.21 14.58C15.62 13.16 14.21 11.75 14.21 11.75L12.72 10.24C12.9 9.86 13 9.44 13 9C13 7.95 12.46 7.03 11.64 6.5L13 2.11C11.09 1.53 10.5 3.44 10.5 3.44L9.69 6.03C8.46 6.16 7.46 7 7.13 8.18L2.67 9.63C3.31 11.53 5.2 10.9 5.2 10.9L7.27 10.23C7.61 10.97 8.23 11.54 9 11.82V19C9 19 7 19 7 21V22H13V21C13 21 13 19 11 19V11.82C11.12 11.78 11.23 11.72 11.33 11.67M8.5 9C8.5 8.17 9.17 7.5 10 7.5S11.5 8.17 11.5 9 10.83 10.5 10 10.5 8.5 9.83 8.5 9M16.75 21.16L14 18.16L15.16 17L16.75 18.59L20.34 15L21.5 16.41L16.75 21.16\";\nexport var mdiWindowClose = \"M13.46,12L19,17.54V19H17.54L12,13.46L6.46,19H5V17.54L10.54,12L5,6.46V5H6.46L12,10.54L17.54,5H19V6.46L13.46,12Z\";\nexport var mdiWindowClosed = \"M6,11H10V9H14V11H18V4H6V11M18,13H6V20H18V13M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2Z\";\nexport var mdiWindowClosedVariant = \"M21 20V2H3V20H1V23H23V20M19 4V11H13V4M5 4H11V11H5M5 20V13H11V20M13 20V13H19V20Z\";\nexport var mdiWindowMaximize = \"M4,4H20V20H4V4M6,8V18H18V8H6Z\";\nexport var mdiWindowMinimize = \"M20,14H4V10H20\";\nexport var mdiWindowOpen = \"M6,8H10V6H14V8H18V4H6V8M18,10H6V15H18V10M6,20H18V17H6V20M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2Z\";\nexport var mdiWindowOpenVariant = \"M21 20V2H3V20H1V23H23V20M19 4V11H17V4M5 4H7V11H5M5 20V13H7V20M9 20V4H15V20M17 20V13H19V20Z\";\nexport var mdiWindowRestore = \"M4,8H8V4H20V16H16V20H4V8M16,8V14H18V6H10V8H16M6,12V18H14V12H6Z\";\nexport var mdiWindowShutter = \"M3 4H21V8H19V20H17V8H7V20H5V8H3V4M8 9H16V11H8V9M8 12H16V14H8V12M8 15H16V17H8V15M8 18H16V20H8V18Z\";\nexport var mdiWindowShutterAlert = \"M2 4H20V8H18V20H16V8H6V20H4V8H2V4M7 9H15V11H7V9M7 12H15V14H7V12M20 19V17H22V19H20M20 15V10H22V15H20Z\";\nexport var mdiWindowShutterAuto = \"M20 14H18L14.8 23H16.7L17.4 21H20.6L21.3 23H23.2L20 14M17.8 19.7L19 16L20.2 19.7H17.8M7 9H15V11H7V9M7 12H15V14H7V12M7 15H15V16.5L14.8 17H7V15M13.7 20H7V18H14.5L13.7 20M16 8H6V20H4V8H2V4H20V8H18V12H16.6L16.1 13.3L16 13.7V8Z\";\nexport var mdiWindowShutterCog = \"M21.7 18.6V17.6L22.8 16.8C22.9 16.7 23 16.6 22.9 16.5L21.9 14.8C21.9 14.7 21.7 14.7 21.6 14.7L20.4 15.2C20.1 15 19.8 14.8 19.5 14.7L19.3 13.4C19.3 13.3 19.2 13.2 19.1 13.2H17.1C16.9 13.2 16.8 13.3 16.8 13.4L16.6 14.7C16.3 14.9 16.1 15 15.8 15.2L14.6 14.7C14.5 14.7 14.4 14.7 14.3 14.8L13.3 16.5C13.3 16.6 13.3 16.7 13.4 16.8L14.5 17.6V18.6L13.4 19.4C13.3 19.5 13.2 19.6 13.3 19.7L14.3 21.4C14.4 21.5 14.5 21.5 14.6 21.5L15.8 21C16 21.2 16.3 21.4 16.6 21.5L16.8 22.8C16.9 22.9 17 23 17.1 23H19.1C19.2 23 19.3 22.9 19.3 22.8L19.5 21.5C19.8 21.3 20 21.2 20.3 21L21.5 21.4C21.6 21.4 21.7 21.4 21.8 21.3L22.8 19.6C22.9 19.5 22.9 19.4 22.8 19.4L21.7 18.6M18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5 19.5 17.2 19.5 18 18.8 19.5 18 19.5M8 9H16V11H8V9M17 8H7V20H5V8H3V4H21V8H19V11.1C18.7 11.1 18.3 11 18 11S17.3 11 17 11.1V8M11.3 20H8V18H11C11 18.7 11.1 19.4 11.3 20M8 12H14.4C13.6 12.5 12.8 13.2 12.3 14H8V12M8 15H11.7C11.4 15.6 11.2 16.3 11.1 17H8V15Z\";\nexport var mdiWindowShutterOpen = \"M3 4H21V8H19V20H17V8H7V20H5V8H3V4M8 9H16V11H8V9Z\";\nexport var mdiWindowShutterSettings = \"M3 4H21V8H19V20H17V8H7V20H5V8H3V4M8 9H16V11H8V9M8 12H16V14H8V12M8 15H16V17H8V15M8 18H16V20H8V18M13 22H11V24H13V22M17 22H15V24H17V22M9 22H7V24H9V22Z\";\nexport var mdiWindsock = \"M7 5V13L22 11V7L7 5M10 6.91L13 7.31V10.69L10 11.09V6.91M16 7.71L19 8.11V9.89L16 10.29V7.71M5 10V11H6V12H5V21H3V4C3 3.45 3.45 3 4 3S5 3.45 5 4V6H6V7H5V10Z\";\nexport var mdiWiper = \"M12,4C5,4 2,9 2,9L9,16C9,16 9.5,15.1 10.4,14.5L10.7,16.5C10.3,16.8 10,17.4 10,18A2,2 0 0,0 12,20A2,2 0 0,0 14,18C14,17.1 13.5,16.4 12.7,16.1L12.3,14C14.1,14.2 15,16 15,16L22,9C22,9 19,4 12,4M15.1,13.1C14.3,12.5 13.3,12 12,12L11,6.1C11.3,6 11.7,6 12,6C15.7,6 18.1,7.7 19.3,8.9L15.1,13.1M8.9,13.1L4.7,8.9C5.5,8 7,7 9,6.4L10,12.4C9.6,12.6 9.2,12.8 8.9,13.1Z\";\nexport var mdiWiperWash = \"M13,6C13,5.7 13.1,4.6 13.8,3.8L12,2.4L10.2,3.9C10.9,4.6 11,5.7 11,6C4.7,6.4 2,11 2,11L9,18C9,18 9.7,16.7 11,16.2V18.3C10.4,18.6 10,19.3 10,20A2,2 0 0,0 12,22A2,2 0 0,0 14,20C14,19.3 13.6,18.6 13,18.3V16.2C14.3,16.7 15,18 15,18L22,11C22,11 19.3,6.5 13,6M11,14.1C10.2,14.3 9.5,14.6 8.9,15.1L4.7,10.9C5.8,9.8 7.8,8.3 11,8.1V14.1M15.1,15.1C14.5,14.7 13.8,14.3 13,14.1V8.1C16.2,8.4 18.2,9.8 19.3,10.9L15.1,15.1M18,1.3L17.3,3.2C16.6,2.9 15.5,2.9 14.7,3.2L14,1.3C15.2,0.9 16.8,0.9 18,1.3M21,6H19C19,6 19,4.7 18.2,3.9L19.7,2.6C21,4 21,5.9 21,6M4.2,2.6L5.7,3.9C5,4.7 5,6 5,6H3C3,5.9 3,4 4.2,2.6M10,1.3L9.3,3.2C8.6,2.9 7.5,2.9 6.7,3.2L6,1.3C7.2,0.9 8.8,0.9 10,1.3Z\";\nexport var mdiWiperWashAlert = \"M11 6C11 5.7 11.1 4.6 11.8 3.8L10 2.4L8.2 3.9C8.9 4.6 9 5.7 9 6C2.7 6.4 0 11 0 11L7 18C7 18 7.7 16.7 9 16.2V18.3C8.4 18.6 8 19.3 8 20C8 21.11 8.9 22 10 22S12 21.11 12 20C12 19.3 11.6 18.6 11 18.3V16.2C12.3 16.7 13 18 13 18L20 11C20 11 17.3 6.5 11 6M9 14.1C8.2 14.3 7.5 14.6 6.9 15.1L2.7 10.9C3.8 9.8 5.8 8.3 9 8.1V14.1M13.1 15.1C12.5 14.7 11.8 14.3 11 14.1V8.1C14.2 8.4 16.2 9.8 17.3 10.9L13.1 15.1M16 1.3L15.3 3.2C14.6 2.9 13.5 2.9 12.7 3.2L12 1.3C13.2 .9 14.8 .9 16 1.3M19 6H17C17 6 17 4.7 16.2 3.9L17.7 2.6C19 4 19 5.9 19 6M2.2 2.6L3.7 3.9C3 4.7 3 6 3 6H1C1 5.9 1 4 2.2 2.6M8 1.3L7.3 3.2C6.6 2.9 5.5 2.9 4.7 3.2L4 1.3C5.2 .9 6.8 .9 8 1.3M22 12V7H24V13H22M22 17H24V15H22\";\nexport var mdiWizardHat = \"M21 22H3V20H21V22M19 19H5L11.1 2.6C11.3 2.2 11.6 2 12 2L18 5H13.9L19 19M10 7.5L11.04 7.97L11.5 9L11.97 7.97L13 7.5L11.97 7.03L11.5 6L11.04 7.03L10 7.5M13 15L10.94 14.07L10 12L9.07 14.07L7 15L9.07 15.93L10 18L10.94 15.93L13 15M13.97 11.97L15 11.5L13.97 11.03L13.5 10L13.04 11.03L12 11.5L13.04 11.97L13.5 13L13.97 11.97M15.97 15.97L17 15.5L15.97 15.03L15.5 14L15.04 15.03L14 15.5L15.04 15.97L15.5 17L15.97 15.97Z\";\nexport var mdiWordpress = \"M3.42,12C3.42,10.76 3.69,9.58 4.16,8.5L8.26,19.72C5.39,18.33 3.42,15.4 3.42,12M17.79,11.57C17.79,12.3 17.5,13.15 17.14,14.34L16.28,17.2L13.18,8L14.16,7.9C14.63,7.84 14.57,7.16 14.11,7.19C14.11,7.19 12.72,7.3 11.82,7.3L9.56,7.19C9.1,7.16 9.05,7.87 9.5,7.9L10.41,8L11.75,11.64L9.87,17.27L6.74,8L7.73,7.9C8.19,7.84 8.13,7.16 7.67,7.19C7.67,7.19 6.28,7.3 5.38,7.3L4.83,7.29C6.37,4.96 9,3.42 12,3.42C14.23,3.42 16.27,4.28 17.79,5.67H17.68C16.84,5.67 16.24,6.4 16.24,7.19C16.24,7.9 16.65,8.5 17.08,9.2C17.41,9.77 17.79,10.5 17.79,11.57M12.15,12.75L14.79,19.97L14.85,20.09C13.96,20.41 13,20.58 12,20.58C11.16,20.58 10.35,20.46 9.58,20.23L12.15,12.75M19.53,7.88C20.2,9.11 20.58,10.5 20.58,12C20.58,15.16 18.86,17.93 16.31,19.41L18.93,11.84C19.42,10.62 19.59,9.64 19.59,8.77L19.53,7.88M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,21.54C17.26,21.54 21.54,17.26 21.54,12C21.54,6.74 17.26,2.46 12,2.46C6.74,2.46 2.46,6.74 2.46,12C2.46,17.26 6.74,21.54 12,21.54Z\";\nexport var mdiWrap = \"M21,5H3V7H21V5M3,19H10V17H3V19M3,13H18C19,13 20,13.43 20,15C20,16.57 19,17 18,17H16V15L12,18L16,21V19H18C20.95,19 22,17.73 22,15C22,12.28 21,11 18,11H3V13Z\";\nexport var mdiWrapDisabled = \"M16,7H3V5H16V7M3,19H16V17H3V19M22,12L18,9V11H3V13H18V15L22,12Z\";\nexport var mdiWrench = \"M22.7,19L13.6,9.9C14.5,7.6 14,4.9 12.1,3C10.1,1 7.1,0.6 4.7,1.7L9,6L6,9L1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1C4.8,14 7.5,14.5 9.8,13.6L18.9,22.7C19.3,23.1 19.9,23.1 20.3,22.7L22.6,20.4C23.1,20 23.1,19.3 22.7,19Z\";\nexport var mdiWrenchCheck = \"M9 2C10.8 2.6 12 4.3 12 6.2C12 8.2 10.8 9.9 9 10.5V21.5C9 21.8 8.8 22 8.5 22H6.5C6.2 22 6 21.8 6 21.4V10.4C4.2 9.8 3 8.1 3 6.2S4.2 2.6 6 2V5.7H9V2M20.6 13L22 14.41L15.47 21L12 17.5L13.4 16.09L15.47 18.17L20.6 13\";\nexport var mdiWrenchCheckOutline = \"M9 1.09V6H7V1.09C4.16 1.57 2 4.03 2 7C2 9.22 3.21 11.15 5 12.19V21C5 21.55 5.45 22 6 22H10C10.55 22 11 21.55 11 21V12.19C12.79 11.15 14 9.22 14 7C14 4.03 11.84 1.57 9 1.09M10 10.46L9 11.04V20H7V11.04L6 10.46C4.77 9.74 4 8.42 4 7C4 6 4.37 5.06 5 4.35V8H11V4.35C11.63 5.06 12 6 12 7C12 8.42 11.23 9.74 10 10.46M21.6 13L23 14.41L16.47 21L13 17.5L14.4 16.09L16.47 18.17L21.6 13\";\nexport var mdiWrenchClock = \"M10 6.2C10 4.3 8.8 2.6 7 2V5.7H4V2C2.2 2.6 1 4.3 1 6.2C1 8.1 2.2 9.8 4 10.4V21.4C4 21.8 4.2 22 4.5 22H6.5C6.8 22 7 21.8 7 21.5V10.5C8.8 9.9 10 8.2 10 6.2M16 8C16 8 15.9 8 16 8C12.1 8.1 9 11.2 9 15C9 18.9 12.1 22 16 22S23 18.9 23 15 19.9 8 16 8M16 20C13.2 20 11 17.8 11 15S13.2 10 16 10 21 12.2 21 15 18.8 20 16 20M15 11V16L18.6 18.2L19.4 17L16.5 15.3V11H15Z\";\nexport var mdiWrenchClockOutline = \"M16 8C14.8 8.03 13.67 8.35 12.68 8.89C12.88 8.29 13 7.66 13 7C13 4.03 10.84 1.57 8 1.09V6H6V1.09C3.16 1.57 1 4.03 1 7C1 9.22 2.21 11.15 4 12.19V21C4 21.55 4.45 22 5 22H9C9.55 22 10 21.55 10 21V18.62C11.22 20.65 13.43 22 16 22C19.9 22 23 18.9 23 15S19.9 8 16 8M8 11.04V20H6V11.04L5 10.46C3.77 9.74 3 8.42 3 7C3 6 3.37 5.06 4 4.35V8H10V4.35C10.63 5.06 11 6 11 7C11 8.42 10.23 9.74 9 10.46L8 11.04M16 20C13.2 20 11 17.8 11 15S13.2 10 16 10 21 12.2 21 15 18.8 20 16 20M16.5 15.3L19.4 17L18.6 18.2L15 16V11H16.5V15.3Z\";\nexport var mdiWrenchCog = \"M19.94 17.94C19.96 17.79 19.97 17.65 19.97 17.5S19.96 17.2 19.94 17.05L20.91 16.32C21 16.25 21.03 16.13 20.97 16.03L20.05 14.47C20 14.37 19.86 14.33 19.76 14.37L18.61 14.82C18.37 14.65 18.12 14.5 17.83 14.38L17.66 13.19C17.64 13.08 17.54 13 17.43 13H15.58C15.46 13 15.36 13.08 15.34 13.19L15.17 14.38C14.88 14.5 14.63 14.65 14.39 14.82L13.24 14.37C13.14 14.33 13 14.37 12.96 14.47L12.03 16.03C11.97 16.13 12 16.25 12.09 16.32L13.06 17.05C13.05 17.2 13.03 17.35 13.03 17.5S13.05 17.79 13.06 17.94L12.09 18.68C12 18.75 11.97 18.87 12.03 18.97L12.96 20.53C13 20.63 13.14 20.66 13.24 20.63L14.39 20.17C14.63 20.35 14.88 20.5 15.17 20.62L15.34 21.81C15.36 21.92 15.46 22 15.58 22H17.43C17.54 22 17.64 21.92 17.66 21.81L17.83 20.62C18.12 20.5 18.37 20.35 18.61 20.17L19.76 20.63C19.86 20.66 20 20.63 20.05 20.53L20.97 18.97C21.03 18.87 21 18.75 20.91 18.68L19.94 17.94M16.5 19C15.67 19 15 18.33 15 17.5S15.67 16 16.5 16 18 16.67 18 17.5 17.33 19 16.5 19M9 2C10.8 2.6 12 4.3 12 6.2C12 8.2 10.8 9.9 9 10.5V21.5C9 21.8 8.8 22 8.5 22H6.5C6.2 22 6 21.8 6 21.4V10.4C4.2 9.8 3 8.1 3 6.2S4.2 2.6 6 2V5.7H9V2Z\";\nexport var mdiWrenchCogOutline = \"M9 1.09V6H7V1.09C4.16 1.57 2 4.03 2 7C2 9.22 3.21 11.15 5 12.19V21C5 21.55 5.45 22 6 22H10C10.55 22 11 21.55 11 21V12.19C12.79 11.15 14 9.22 14 7C14 4.03 11.84 1.57 9 1.09M10 10.46L9 11.04V20H7V11.04L6 10.46C4.77 9.74 4 8.42 4 7C4 6 4.37 5.06 5 4.35V8H11V4.35C11.63 5.06 12 6 12 7C12 8.42 11.23 9.74 10 10.46M20.94 17.94C20.96 17.79 20.97 17.65 20.97 17.5S20.96 17.2 20.94 17.05L21.91 16.32C22 16.25 22.03 16.13 21.97 16.03L21.05 14.47C21 14.37 20.87 14.33 20.76 14.37L19.61 14.82C19.37 14.65 19.12 14.5 18.83 14.38L18.66 13.19C18.64 13.08 18.54 13 18.43 13H16.58C16.46 13 16.36 13.08 16.34 13.19L16.17 14.38C15.88 14.5 15.63 14.65 15.39 14.82L14.24 14.37C14.14 14.33 14 14.37 13.96 14.47L13.03 16.03C12.97 16.13 13 16.25 13.09 16.32L14.06 17.05C14.05 17.2 14.03 17.35 14.03 17.5S14.05 17.79 14.06 17.94L13.09 18.68C13 18.75 12.97 18.87 13.03 18.97L13.96 20.53C14 20.63 14.14 20.66 14.24 20.63L15.39 20.17C15.63 20.35 15.88 20.5 16.17 20.62L16.34 21.81C16.36 21.92 16.46 22 16.58 22H18.43C18.54 22 18.64 21.92 18.66 21.81L18.83 20.62C19.12 20.5 19.37 20.35 19.61 20.17L20.76 20.63C20.87 20.66 21 20.63 21.05 20.53L21.97 18.97C22.03 18.87 22 18.75 21.91 18.68L20.94 17.94M17.5 19C16.67 19 16 18.33 16 17.5S16.67 16 17.5 16 19 16.67 19 17.5 18.33 19 17.5 19Z\";\nexport var mdiWrenchOutline = \"M22.61,19L13.53,9.91C14.46,7.57 14,4.81 12.09,2.91C9.79,0.61 6.21,0.4 3.66,2.26L7.5,6.11L6.08,7.5L2.25,3.69C0.39,6.23 0.6,9.82 2.9,12.11C4.76,13.97 7.47,14.46 9.79,13.59L18.9,22.7C19.29,23.09 19.92,23.09 20.31,22.7L22.61,20.4C23,20 23,19.39 22.61,19M19.61,20.59L10.15,11.13C9.54,11.58 8.86,11.85 8.15,11.95C6.79,12.15 5.36,11.74 4.32,10.7C3.37,9.76 2.93,8.5 3,7.26L6.09,10.35L10.33,6.11L7.24,3C8.5,2.95 9.73,3.39 10.68,4.33C11.76,5.41 12.17,6.9 11.92,8.29C11.8,9 11.5,9.66 11.04,10.25L20.5,19.7L19.61,20.59Z\";\nexport var mdiXamarin = \"M22.75,11.07C22.91,11.35 23,11.67 23,12C23,12.33 22.91,12.65 22.75,12.93L18.08,21C17.72,21.62 17.06,22 16.35,22H7.65C6.94,22 6.28,21.62 5.92,21L1.25,12.93C1.09,12.65 1,12.33 1,12C1,11.67 1.09,11.35 1.25,11.07L5.92,3C6.28,2.38 6.94,2 7.65,2H16.35C17.06,2 17.72,2.38 18.08,3L22.75,11.07M12,12V11.9L9.42,7.1L9.25,7H7.66L7.5,7.1V7.3L10,12L7.5,16.7V16.9L7.66,17H9.25L9.42,16.9L12,12.1V12L12.03,12.1L14.58,16.9L14.75,17H16.34L16.5,16.9V16.7L14,12L16.5,7.3V7.1L16.34,7H14.75L14.58,7.1L12.03,11.9L12,12Z\";\nexport var mdiXml = \"M12.89,3L14.85,3.4L11.11,21L9.15,20.6L12.89,3M19.59,12L16,8.41V5.58L22.42,12L16,18.41V15.58L19.59,12M1.58,12L8,5.58V8.41L4.41,12L8,15.58V18.41L1.58,12Z\";\nexport var mdiXmpp = \"M12,15.4C9.75,13.09 8,9.54 8,6C2,4 8,6 2,4C2,9.65 6.33,14.11 10.55,16.66C9.38,17.5 8.15,18 7,18C7,19 7,18 7,19C8.2,19 10.03,18.46 12,17.46C13.97,18.46 15.8,19 17,19C17,18 17,19 17,18C15.85,18 14.62,17.5 13.45,16.66C17.66,14.11 22,9.65 22,4C16,6 22,4 16,6C16,9.54 14.25,13.09 12,15.4Z\";\nexport var mdiYahoo = \"M10.5 7.59L8.16 13.2L5.85 7.59H2L6.29 17.23L4.75 20.7H8.5L14.24 7.59H10.5M15 12.73C13.63 12.73 12.59 13.77 12.59 15C12.59 16.17 13.59 17.16 14.93 17.16C16.32 17.16 17.36 16.13 17.36 14.9C17.36 13.69 16.36 12.73 15 12.73M17.72 3.3L13.89 11.89H18.17L22 3.3H17.72Z\";\nexport var mdiYeast = \"M18,14A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18L14.09,17.15C14.05,16.45 13.92,15.84 13.55,15.5C13.35,15.3 13.07,15.19 12.75,15.13C11.79,15.68 10.68,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,10.68 15.68,11.79 15.13,12.75C15.19,13.07 15.3,13.35 15.5,13.55C15.84,13.92 16.45,14.05 17.15,14.09L18,14M7.5,10A1.5,1.5 0 0,1 9,11.5A1.5,1.5 0 0,1 7.5,13A1.5,1.5 0 0,1 6,11.5A1.5,1.5 0 0,1 7.5,10M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\";\nexport var mdiYinYang = \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A4,4 0 0,1 8,16A4,4 0 0,1 12,12A4,4 0 0,0 16,8A4,4 0 0,0 12,4M12,6.5A1.5,1.5 0 0,1 13.5,8A1.5,1.5 0 0,1 12,9.5A1.5,1.5 0 0,1 10.5,8A1.5,1.5 0 0,1 12,6.5M12,14.5A1.5,1.5 0 0,0 10.5,16A1.5,1.5 0 0,0 12,17.5A1.5,1.5 0 0,0 13.5,16A1.5,1.5 0 0,0 12,14.5Z\";\nexport var mdiYoga = \"M13 2C11.9 2 11 2.9 11 4C11 5.11 11.9 6 13 6C14.11 6 15 5.11 15 4C15 2.9 14.11 2 13 2M4 7V9H10V15L4.93 20.07L6.34 21.5L13.06 14.77L17 17.13V21H19V16.57C19 16.21 18.82 15.89 18.5 15.71L15 13.6V9H21V7H4Z\";\nexport var mdiYoutube = \"M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z\";\nexport var mdiYoutubeGaming = \"M22 13V8L17 5L12 8L7 5L2 8V13L12 19L22 13M9 11H7V13H6V11H4V10H6V8H7V10H9V11M15 13C14.45 13 14 12.55 14 12S14.45 11 15 11 16 11.45 16 12 15.55 13 15 13M18 11C17.45 11 17 10.55 17 10S17.45 9 18 9 19 9.45 19 10 18.55 11 18 11Z\";\nexport var mdiYoutubeStudio = \"M10,15L15,12L10,9V15M19.45,13L21.56,14.63C21.78,14.78 21.81,15 21.66,15.28L19.64,18.75C19.5,18.97 19.31,19.03 19.03,18.94L16.55,17.95C15.89,18.42 15.33,18.75 14.86,18.94L14.5,21.56C14.42,21.84 14.27,22 14,22H10C9.73,22 9.58,21.84 9.5,21.56L9.14,18.94C8.55,18.69 8,18.36 7.45,17.95L4.97,18.94C4.69,19.03 4.5,18.97 4.36,18.75L2.34,15.28C2.19,15 2.22,14.78 2.44,14.63L4.55,13C4.5,12.77 4.5,12.44 4.5,12C4.5,11.56 4.5,11.23 4.55,11L2.44,9.38C2.22,9.22 2.19,9 2.34,8.72L4.36,5.25C4.5,5.03 4.69,4.97 4.97,5.06L7.45,6.05C8.11,5.58 8.67,5.25 9.14,5.06L9.5,2.44C9.58,2.16 9.73,2 10,2H14C14.27,2 14.42,2.16 14.5,2.44L14.86,5.06C15.45,5.31 16,5.64 16.55,6.05L19.03,5.06C19.31,4.97 19.5,5.03 19.64,5.25L21.66,8.72C21.81,9 21.78,9.22 21.56,9.38L19.45,11C19.5,11.23 19.5,11.56 19.5,12C19.5,12.44 19.5,12.77 19.45,13Z\";\nexport var mdiYoutubeSubscription = \"M20,8H4V6H20V8M18,2H6V4H18V2M22,12V20A2,2 0 0,1 20,22H4A2,2 0 0,1 2,20V12A2,2 0 0,1 4,10H20A2,2 0 0,1 22,12M16,16L10,12.73V19.26L16,16Z\";\nexport var mdiYoutubeTv = \"M2.5,4.5H21.5C22.34,4.5 23,5.15 23,6V17.5C23,18.35 22.34,19 21.5,19H2.5C1.65,19 1,18.35 1,17.5V6C1,5.15 1.65,4.5 2.5,4.5M9.71,8.5V15L15.42,11.7L9.71,8.5M17.25,21H6.65C6.35,21 6.15,20.8 6.15,20.5C6.15,20.2 6.35,20 6.65,20H17.35C17.65,20 17.85,20.2 17.85,20.5C17.85,20.8 17.55,21 17.25,21Z\";\nexport var mdiYurt = \"M22 14.87V22H14V16H10V22H2V14.87C2 14.33 2.29 13.83 2.76 13.57L8.66 10.2C8.88 10.07 9.14 10 9.4 10H12.5V9H14V10H14.59C14.85 10 15.11 10.07 15.33 10.2L21.23 13.57C21.71 13.84 22 14.33 22 14.87M7.86 6.25H9.4C10.73 6.25 11.92 6.95 12.5 8H14C13.6 6.2 12 4.85 10.1 4.85V3.35C11.1 3.35 11.95 2.5 11.95 1.5V1H7.86V2.5C6.86 2.5 6 3.23 6 4.25S6.86 6.25 7.86 6.25Z\";\nexport var mdiZWave = \"M16.3,10.58C13.14,10.58 10.6,13.13 10.6,16.28C10.6,19.43 13.15,22 16.3,22C19.45,22 22,19.43 22,16.28C22,13.13 19.45,10.58 16.3,10.58M18,19.08H13.19L15.81,15H13.31L14.4,13.23H19.18L16.63,17.28H19.18L18,19.08M16.3,3.93V2C8.41,2 2,8.42 2,16.31H3.92C3.94,9.46 9.5,3.93 16.3,3.93M16.3,7.74V5.82C10.5,5.82 5.81,10.53 5.81,16.31H7.73C7.75,11.58 11.59,7.74 16.3,7.74\";\nexport var mdiZend = \"M11.28,9.81C11.28,9.81 11.28,7 14.09,7H22.5C22.5,7 22.5,9.81 19.71,9.81H11.28M11.28,13.41C11.28,13.41 11.28,10.6 14.09,10.6H18.31C18.31,10.6 18.31,13.41 15.5,13.41H11.28M11.28,17C11.28,17 11.28,14.19 14.09,14.19H15.5C15.5,14.19 15.5,17 12.68,17H11.28M10.46,14.8V17H1.58L7.3,9.21H2.4V7H11.66L5.96,14.8H10.46Z\";\nexport var mdiZigbee = \"M4.06,6.15C3.97,6.17 3.88,6.22 3.8,6.28C2.66,7.9 2,9.87 2,12A10,10 0 0,0 12,22C15,22 17.68,20.68 19.5,18.6L17,18.85C14.25,19.15 11.45,19.19 8.66,18.96C7.95,18.94 7.24,18.76 6.59,18.45C5.73,18.06 5.15,17.23 5.07,16.29C5.06,16.13 5.12,16 5.23,15.87L7.42,13.6L15.03,5.7V5.6H10.84C8.57,5.64 6.31,5.82 4.06,6.15M20.17,17.5C20.26,17.47 20.35,17.44 20.43,17.39C21.42,15.83 22,14 22,12A10,10 0 0,0 12,2C9.22,2 6.7,3.13 4.89,4.97H5.17C8.28,4.57 11.43,4.47 14.56,4.65C15.5,4.64 16.45,4.82 17.33,5.17C18.25,5.53 18.89,6.38 19,7.37C19,7.53 18.93,7.7 18.82,7.82L9.71,17.19L9,17.95V18.06H13.14C15.5,18 17.84,17.81 20.17,17.5Z\";\nexport var mdiZipBox = \"M14,17H12V15H10V13H12V15H14M14,9H12V11H14V13H12V11H10V9H12V7H10V5H12V7H14M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nexport var mdiZipBoxOutline = \"M12 17V15H14V17H12M14 13V11H12V13H14M14 9V7H12V9H14M10 11H12V9H10V11M10 15H12V13H10V15M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H12V7H10V5H5V19H19V5Z\";\nexport var mdiZipDisk = \"M7,3L3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5L17,3V5A1,1 0 0,1 16,6H10A1,1 0 0,1 9,5V3H7M8,10H16A1,1 0 0,1 17,11V19H7V11A1,1 0 0,1 8,10Z\";\nexport var mdiZodiacAquarius = \"M15,12.41L12,9.41L9,12.41L6,9.41L3.71,11.71L2.29,10.29L6,6.59L9,9.59L12,6.59L15,9.59L18,6.59L21.71,10.29L20.29,11.71L18,9.41L15,12.41M18,15.41L20.29,17.71L21.71,16.29L18,12.59L15,15.59L12,12.59L9,15.59L6,12.59L2.29,16.29L3.71,17.71L6,15.41L9,18.41L12,15.41L15,18.41L18,15.41Z\";\nexport var mdiZodiacAries = \"M16,2C14.95,2 13.91,2.27 13,2.81C12.64,3 12.3,3.26 12,3.54C11.7,3.26 11.36,3 11,2.81C10.09,2.27 9.05,2 8,2A6,6 0 0,0 2,8A6,6 0 0,0 8,14V12A4,4 0 0,1 4,8A4,4 0 0,1 8,4C9,4 10,4.39 10.75,5.1C10.84,5.18 10.92,5.27 11,5.36V22H13V5.36C13.08,5.27 13.16,5.18 13.25,5.1C14.85,3.58 17.38,3.64 18.91,5.25C20.43,6.85 20.36,9.38 18.76,10.9C18,11.61 17.03,12 16,12V14A6,6 0 0,0 22,8A6,6 0 0,0 16,2Z\";\nexport var mdiZodiacCancer = \"M12,4C6.5,4 2,7.58 2,12C2,14.12 3.65,15.87 5.76,16H6A4,4 0 0,0 10,12A4,4 0 0,0 6,8H5.76C7.44,6.41 9.69,5.55 12,5.6C13.77,5.58 15.5,6.07 17,7L18.25,5.75C16.38,4.58 14.21,3.97 12,4M6,10A2,2 0 0,1 8,12C8,13.11 7.08,14 6,14C4.96,14 4.1,13.22 4,12.2C4,12.07 4,11.93 4,11.8C4.1,10.77 4.97,10 6,10M18.24,8H18A4,4 0 0,0 14,12A4,4 0 0,0 18,16H18.24C16.56,17.59 14.31,18.45 12,18.4C10.23,18.42 8.5,17.93 7,17L5.76,18.24C7.63,19.41 9.79,20 12,20C17.5,20 22,16.42 22,12C22,9.88 20.35,8.13 18.24,8M18,14A2,2 0 0,1 16,12C16,10.89 16.92,10 18,10C19.04,10 19.9,10.78 20,11.8C20,11.93 20,12.07 20,12.2C19.9,13.23 19.03,14 18,14Z\";\nexport var mdiZodiacCapricorn = \"M15,13C14.3,13 13.61,13.19 13,13.55V6A3,3 0 0,0 10,3C9.25,3 8.55,3.29 8,3.78C7.45,3.28 6.74,3 6,3V5A1,1 0 0,1 7,6V16H9V6A1,1 0 0,1 10,5A1,1 0 0,1 11,6V17A2,2 0 0,1 9,19V21C10.15,21 11.25,20.5 12,19.62C13.45,21.29 15.97,21.47 17.64,20C19.31,18.58 19.5,16.05 18.04,14.38C17.28,13.5 16.17,13 15,13M15,19A2,2 0 0,1 13,17A2,2 0 0,1 15,15A2,2 0 0,1 17,17A2,2 0 0,1 15,19Z\";\nexport var mdiZodiacGemini = \"M18,5.3C19.35,4.97 20.66,4.54 21.94,4L21.18,2.14C18.27,3.36 15.15,4 12,4C8.85,4 5.73,3.38 2.82,2.17L2.06,4C3.34,4.54 4.65,4.97 6,5.3V18.7C4.65,19.03 3.34,19.46 2.06,20L2.82,21.86C8.7,19.42 15.3,19.42 21.18,21.86L21.94,20C20.66,19.46 19.35,19.03 18,18.7V5.3M8,18.3V5.69C9.32,5.89 10.66,6 12,6C13.34,6 14.68,5.89 16,5.69V18.31C13.35,17.9 10.65,17.9 8,18.31V18.3Z\";\nexport var mdiZodiacLeo = \"M20,17A3,3 0 0,1 17,20C15.38,19.92 14.08,18.62 14,17C14.16,15.39 14.5,13.8 15,12.26C15.54,10.55 15.87,8.79 16,7C15.93,4.27 13.73,2.07 11,2C8.27,2.07 6.07,4.27 6,7C6.15,8.53 6.5,10.03 7,11.5L7.21,12.2C5.1,11.53 2.86,12.7 2.19,14.8C1.5,16.91 2.68,19.16 4.79,19.83C6.9,20.5 9.14,19.33 9.81,17.22C9.94,16.83 10,16.41 10,16C9.84,14.27 9.5,12.56 8.91,10.92C8.47,9.65 8.16,8.34 8,7C8.08,5.38 9.38,4.08 11,4C12.62,4.08 13.92,5.38 14,7C13.84,8.61 13.5,10.2 13,11.74C12.46,13.45 12.13,15.21 12,17C12.07,19.73 14.27,21.93 17,22A5,5 0 0,0 22,17H20M6,18A2,2 0 0,1 4,16A2,2 0 0,1 6,14A2,2 0 0,1 8,16A2,2 0 0,1 6,18Z\";\nexport var mdiZodiacLibra = \"M20,16V18H13V15.91C16,15.36 17.96,12.5 17.41,9.5C16.86,6.5 14,4.54 11,5.09C8,5.65 6.04,8.5 6.59,11.5C7,13.74 8.76,15.5 11,15.91V18H4V16H6.92C5.37,14.59 4.5,12.59 4.5,10.5A7.5,7.5 0 0,1 12,3A7.5,7.5 0 0,1 19.5,10.5C19.5,12.59 18.63,14.59 17.08,16H20M20,19H4V21H20V19Z\";\nexport var mdiZodiacPisces = \"M20,11H18C18.11,8.19 18.73,5.42 19.81,2.82L18,2.06C16.81,4.9 16.13,7.92 16,11H8C7.87,7.92 7.19,4.9 6,2.06L4.14,2.82C5.24,5.41 5.87,8.18 6,11H4V13H6C5.89,15.81 5.27,18.58 4.19,21.18L6,21.94C7.19,19.1 7.87,16.08 8,13H16C16.13,16.08 16.81,19.1 18,21.94L19.86,21.18C18.76,18.59 18.13,15.82 18,13H20V11Z\";\nexport var mdiZodiacSagittarius = \"M22,2V12H20V5.41L10.41,15L12.71,17.29L11.29,18.71L9,16.41L3.71,21.71L2.29,20.29L7.59,15L5.29,12.71L6.71,11.29L9,13.59L18.59,4H12V2H22Z\";\nexport var mdiZodiacScorpio = \"M17.71,15.29L16.29,16.71L17.59,18H16A2,2 0 0,1 14,16V6A3,3 0 0,0 11,3C10.25,3 9.55,3.29 9,3.78C7.86,2.76 6.14,2.76 5,3.78C4.45,3.28 3.74,3 3,3V5A1,1 0 0,1 4,6V16H6V6A1,1 0 0,1 7,5A1,1 0 0,1 8,6V16H10V6A1,1 0 0,1 11,5A1,1 0 0,1 12,6V16A4,4 0 0,0 16,20H17.59L16.29,21.29L17.71,22.71L21.41,19L17.71,15.29Z\";\nexport var mdiZodiacTaurus = \"M15.59,9C17.7,7.74 19,5.46 19,3H17A5,5 0 0,1 12,8A5,5 0 0,1 7,3H5C5,5.46 6.3,7.74 8.41,9C5.09,11 4,15.28 6,18.6C7.97,21.92 12.27,23 15.59,21C18.91,19.04 20,14.74 18,11.42C17.42,10.43 16.58,9.59 15.59,9M12,20A5,5 0 0,1 7,15A5,5 0 0,1 12,10A5,5 0 0,1 17,15A5,5 0 0,1 12,20Z\";\nexport var mdiZodiacVirgo = \"M18.5,19.13C20,17.77 20,15.18 20,14A4,4 0 0,0 16,10C15.3,10 14.6,10.2 14,10.56V6A3,3 0 0,0 11,3C10.25,3 9.55,3.29 9,3.78C7.86,2.76 6.14,2.76 5,3.78C4.45,3.28 3.74,3 3,3V5A1,1 0 0,1 4,6V16H6V6A1,1 0 0,1 7,5A1,1 0 0,1 8,6V16H10V6A1,1 0 0,1 11,5A1,1 0 0,1 12,6V14C12,15.18 12,17.77 13.5,19.13C12.72,19.54 11.88,19.84 11,20V22C12.29,22 14.84,20.74 16,20.13C17.16,20.74 19.71,22 21,22V20C20.12,19.84 19.28,19.54 18.5,19.13M16,12A2,2 0 0,1 18,14C18,16.92 17.46,18 16,18C14.54,18 14,16.92 14,14A2,2 0 0,1 16,12Z\";\n","<script lang=\"ts\">\n  let {\n    size = \"1rem\",\n    width,\n    height,\n    color = \"currentColor\",\n    viewBox = \"0 0 24 24\",\n    path,\n    props,\n  }: {\n    size?: string\n    width?: string\n    height?: string\n    color?: string\n    viewBox?: string\n    path?: string\n    props?: any\n  } = $props()\n\n  const resolvedWidth = $derived(width ?? size)\n  const resolvedHeight = $derived(height ?? size)\n</script>\n\n{#if path}\n  <svg width={resolvedWidth} height={resolvedHeight} {viewBox}>\n    <path {...props} d={path} fill={color}></path>\n  </svg>\n{/if}\n","const ALLOWED_TAGS = new Set([\n  \"A\",\n  \"B\",\n  \"BR\",\n  \"CODE\",\n  \"DIV\",\n  \"EM\",\n  \"I\",\n  \"LI\",\n  \"MARK\",\n  \"OL\",\n  \"P\",\n  \"PRE\",\n  \"S\",\n  \"SMALL\",\n  \"SPAN\",\n  \"STRONG\",\n  \"SUB\",\n  \"SUP\",\n  \"U\",\n  \"UL\",\n])\n\nconst DROP_WITH_CONTENT_TAGS = new Set([\"EMBED\", \"IFRAME\", \"OBJECT\", \"SCRIPT\", \"STYLE\", \"TEMPLATE\"])\n\nconst GLOBAL_ATTRIBUTES = new Set([\"aria-label\", \"role\", \"title\"])\nconst ANCHOR_ATTRIBUTES = new Set([\"href\", \"rel\", \"target\", \"title\"])\nconst SAFE_URL_PROTOCOLS = new Set([\"http:\", \"https:\", \"mailto:\", \"tel:\"])\n\n/**\n * Render arbitrary text as inert HTML text.\n *\n * This is the fallback for places that cannot parse a fragment safely, such as\n * SSR without a DOM. It preserves the text content while ensuring it cannot\n * create elements, attributes, scripts, or event handlers.\n */\nexport const escapeHtml = (value: string): string =>\n  value\n    .replace(/&/g, \"&amp;\")\n    .replace(/</g, \"&lt;\")\n    .replace(/>/g, \"&gt;\")\n    .replace(/\"/g, \"&quot;\")\n    .replace(/'/g, \"&#39;\")\n\nconst isSafeHref = (href: string): boolean => {\n  const trimmed = href.trim()\n\n  if (!trimmed) return false\n\n  if (trimmed.startsWith(\"#\")) return true\n\n  if (trimmed.startsWith(\"/\") && !trimmed.startsWith(\"//\")) return true\n\n  try {\n    const url = new URL(trimmed, \"https://kontextwerk.invalid\")\n\n    return SAFE_URL_PROTOCOLS.has(url.protocol)\n  } catch {\n    return false\n  }\n}\n\nconst sanitizeElementAttributes = (element: Element) => {\n  for (const attribute of Array.from(element.attributes)) {\n    const name = attribute.name.toLowerCase()\n    const value = attribute.value\n    const isAnchor = element.tagName === \"A\"\n    const isAllowed = GLOBAL_ATTRIBUTES.has(name) || (isAnchor && ANCHOR_ATTRIBUTES.has(name))\n\n    if (!isAllowed || name.startsWith(\"on\") || name === \"style\" || name === \"srcdoc\") {\n      element.removeAttribute(attribute.name)\n      continue\n    }\n\n    if (name === \"href\" && !isSafeHref(value)) {\n      element.removeAttribute(attribute.name)\n    }\n  }\n\n  if (element.tagName === \"A\" && element.getAttribute(\"target\") === \"_blank\") {\n    element.setAttribute(\"rel\", \"noopener noreferrer\")\n  }\n}\n\nconst sanitizeNode = (node: Node) => {\n  for (const child of Array.from(node.childNodes)) {\n    if (child.nodeType === Node.TEXT_NODE) {\n      continue\n    }\n\n    if (child.nodeType !== Node.ELEMENT_NODE) {\n      child.remove()\n      continue\n    }\n\n    const element = child as Element\n    const tagName = element.tagName\n\n    if (DROP_WITH_CONTENT_TAGS.has(tagName)) {\n      element.remove()\n      continue\n    }\n\n    sanitizeNode(element)\n\n    if (!ALLOWED_TAGS.has(tagName)) {\n      element.replaceWith(...Array.from(element.childNodes))\n      continue\n    }\n\n    sanitizeElementAttributes(element)\n  }\n}\n\n/**\n * Sanitize small rich-text fragments before they are passed into Svelte {@html}.\n *\n * The Web SDK uses this for labels, tooltips, notifications, and short CMS-like\n * copy where simple formatting is intentional. The sanitizer keeps a narrow\n * formatting subset, removes executable nodes and event/style/srcdoc attributes,\n * rejects unsafe links, and adds noopener metadata for blank links. During SSR,\n * where no DOM parser is available, it falls back to escaped text instead of\n * guessing with a different parser.\n */\nexport const sanitizeHtml = (value: string | null | undefined): string => {\n  const input = value ?? \"\"\n\n  if (!input) return \"\"\n\n  if (typeof document === \"undefined\") {\n    return escapeHtml(input)\n  }\n\n  const template = document.createElement(\"template\")\n  template.innerHTML = input\n  sanitizeNode(template.content)\n\n  return template.innerHTML\n}\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import { escapeHtml, sanitizeHtml } from \"../../../../core/security/index\"\n\n  const { html = \"\" } = $props<{\n    html?: string | null\n  }>()\n\n  let mounted = $state(false)\n\n  onMount(() => {\n    mounted = true\n  })\n\n  const sanitized = $derived(mounted ? sanitizeHtml(html) : escapeHtml(html ?? \"\"))\n</script>\n\n<span class=\"kw-safe-html\">{@html sanitized}</span>\n\n<style lang=\"less\">\n  .kw-safe-html {\n    display: contents;\n  }\n</style>\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  const firstChar = placement[0];\n  return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rlPlacement : lrPlacement;\n      return isStart ? lrPlacement : rlPlacement;\n    case 'left':\n    case 'right':\n      return isStart ? tbPlacement : btPlacement;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  const side = getSide(placement);\n  return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n  var _padding$top, _padding$right, _padding$bottom, _padding$left;\n  return {\n    top: (_padding$top = padding.top) != null ? _padding$top : 0,\n    right: (_padding$right = padding.right) != null ? _padding$right : 0,\n    bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,\n    left: (_padding$left = padding.left) != null ? _padding$left : 0\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  const alignment = getAlignment(placement);\n  if (alignment) {\n    coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);\n  }\n  return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n    ...platform,\n    detectOverflow\n  };\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let resetCount = 0;\n  const middlewareData = {};\n  for (let i = 0; i < middleware.length; i++) {\n    const currentMiddleware = middleware[i];\n    if (!currentMiddleware) {\n      continue;\n    }\n    const {\n      name,\n      fn\n    } = currentMiddleware;\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform: platformWithDetectOverflow,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData[name] = {\n      ...middlewareData[name],\n      ...data\n    };\n    if (reset && resetCount < MAX_RESET_COUNT) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(minPadding, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n          if (!ignoreCrossAxisOverflow ||\n          // We leave the current main axis only if every placement on that axis\n          // overflows the main axis.\n          overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n            // Try next placement and re-run the lifecycle.\n            return {\n              data: {\n                index: nextIndex,\n                overflows: overflowsData\n              },\n              reset: {\n                placement: nextPlacement\n              }\n            };\n          }\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects,\n        platform\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n\n      // No rects (e.g. a hidden or detached reference, or a collapsed range) —\n      // keep the existing reference rect rather than resetting to an invalid\n      // one with non-finite values.\n      if (!nativeClientRects.length) {\n        return {};\n      }\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            return rectToClientRect({\n              x: left,\n              y: top,\n              width: right - left,\n              height: bottom - top\n            });\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          return rectToClientRect({\n            x: minLeft,\n            y: top,\n            width: maxRight - minLeft,\n            height: bottom - top\n          });\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = originSides.has(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        platform\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);\n      if (checkMainAxis) {\n        mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);\n      }\n      if (checkCrossAxis) {\n        crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      var _rawOffset$mainAxis, _rawOffset$crossAxis;\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,\n        crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = originSides.has(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n// Method syntax keeps callback parameters bivariant, but expressing the\n// explicit `| undefined` required by `exactOptionalPropertyTypes` needs\n// property syntax, which is contravariant under `strictFunctionTypes`.\n// Extracting the function from a method position restores that bivariance so\n// consumers can still assign callbacks with narrower parameter types.\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const shiftData = state.middlewareData.shift;\n      const noShift = !shiftData;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if (shiftData != null && shiftData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if (shiftData != null && shiftData.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        if (isYAxis) {\n          availableWidth = width - 2 * max(overflow.left, overflow.right);\n        } else {\n          availableHeight = height - 2 * max(overflow.top, overflow.bottom);\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n  return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n  try {\n    if (element.matches(':popover-open')) {\n      return true;\n    }\n  } catch (_e) {\n    // no-op\n  }\n  try {\n    return element.matches(':modal');\n  } catch (_e) {\n    return false;\n  }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n  return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (isWebKitValue == null) {\n    isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n  }\n  return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n  return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return (node.ownerDocument || node).body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  } else {\n    return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n  }\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle$1(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement && offsetParent) {\n    const win = getWindow(domElement);\n    const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle$1(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\n\nfunction getClientRects(element) {\n  return element.getClientRects ? Array.from(element.getClientRects()) : [];\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(html) {\n  const scroll = getNodeScroll(html);\n  const body = html.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(html);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle$1(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy, rootBoundary) {\n  if (rootBoundary === void 0) {\n    rootBoundary = 'viewport';\n  }\n  const isLayoutViewport = rootBoundary === 'layoutViewport';\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    // Client coordinates are relative to the layout viewport, except in\n    // WebKit with an `absolute` strategy, where they are relative to the\n    // visual viewport.\n    const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n    if (isLayoutViewport) {\n      if (!layoutRelativeClientCoords) {\n        x = -visualViewport.offsetLeft;\n        y = -visualViewport.offsetTop;\n      }\n    } else {\n      width = visualViewport.width;\n      height = visualViewport.height;\n      if (layoutRelativeClientCoords) {\n        x = visualViewport.offsetLeft;\n        y = visualViewport.offsetTop;\n      }\n    }\n  }\n  const windowScrollbarX = getWindowScrollBarX(html);\n  // `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks\n  // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n  // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n  // reserves an empty inline-start gutter that clips nothing, so exclude just\n  // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n  // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n  // `getHTMLOffset`/`visualViewport.width`; skip it here.\n  if (windowScrollbarX <= 0) {\n    const doc = html.ownerDocument;\n    const body = doc.body;\n    const bodyStyles = getComputedStyle(body);\n    const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n    const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n    const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n    if (gutter <= SCROLLBAR_MAX) {\n      width -= gutter;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = getScale(element);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {\n    rect = getViewportRect(element, strategy, clippingAncestor);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let lastKeptComputedStyle = null;\n  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle$1(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    // Position of the containing block chain below the current node. A fixed\n    // element whose containing block hasn't been found yet is a fixed chain.\n    const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n    // A non-containing ancestor does not clip the element when the chain\n    // below it escapes it: a fixed chain escapes all ancestors up to the\n    // next containing block, an absolute chain escapes static ancestors.\n    const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // The kept node carries the chain position for the next iteration.\n      lastKeptComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n  let top = firstRect.top;\n  let right = firstRect.right;\n  let bottom = firstRect.bottom;\n  let left = firstRect.left;\n  for (let i = 1; i < clippingAncestors.length; i++) {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n    top = max(rect.top, top);\n    right = min(rect.right, right);\n    bottom = min(rect.bottom, bottom);\n    left = max(rect.left, left);\n  }\n  return {\n    width: right - left,\n    height: bottom - top,\n    x: left,\n    y: top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n\n  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n  // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n  if (!isOffsetParentAnElement && documentElement) {\n    offsets.x = getWindowScrollBarX(documentElement);\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove, ancestorResize) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n\n      // The entry is a snapshot, so the reference may have moved since the\n      // intersection was computed (under performance constraints, or between\n      // consecutive frames of a multi-frame layout shift). The reported ratio\n      // and the observed area are stale in that case and cannot be trusted to\n      // detect subsequent movement, so refresh regardless of the ratio.\n      if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        return refresh();\n      }\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped in place, the ratio is 0. Throttle\n          // the refresh to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (_e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  const win = getWindow(element);\n  // The window is a resize ancestor, so when `ancestorResize` is enabled its\n  // listener already runs the update on resize. Here we only need to rebuild\n  // the `IntersectionObserver` for the new root size, skipping a redundant\n  // update. When `ancestorResize` is disabled, this becomes the sole update.\n  const handleResize = () => refresh(ancestorResize);\n  win.addEventListener('resize', handleResize);\n  refresh(true);\n  return () => {\n    win.removeEventListener('resize', handleResize);\n    cleanup();\n  };\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update);\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    if (floating) {\n      resizeObserver.observe(floating);\n    }\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = options != null ? options : {};\n  const platformWithCache = {\n    ...platform,\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { sanitizeHtml } from \"../security/index\"\n\nexport const RICH_TOOLTIP_CLASS = \"rich-tooltip\"\nlet focusTooltipId = 0\n\nconst isPresentTooltipValue = (value: unknown): boolean => {\n  if (value === null || value === undefined || value === false) return false\n\n  if (typeof value === \"string\") return value.trim().length > 0\n\n  return true\n}\n\nexport const tooltipTitle = (value: unknown): string | null => {\n  if (!isPresentTooltipValue(value)) return null\n\n  return `<strong>${value}</strong>`\n}\n\nexport const tooltipText = (value: unknown): string | null => {\n  if (!isPresentTooltipValue(value)) return null\n\n  return `<p>${value}</p>`\n}\n\nexport const tooltipField = (label: string, value: unknown): string | null => {\n  if (!isPresentTooltipValue(value)) return null\n\n  return `<div><strong>${label}:</strong> ${value}</div>`\n}\n\nexport const tooltipList = (label: string, values: unknown[]): string | null => {\n  const items = values.filter(isPresentTooltipValue)\n\n  if (!items.length) return null\n\n  return `<div><strong>${label}:</strong><ul>${items.map((item) => `<li>${item}</li>`).join(\"\")}</ul></div>`\n}\n\nexport const buildRichTooltip = (parts: Array<string | null | undefined | false>): string =>\n  parts.filter(Boolean).join(\"\")\n\nfunction removeWhitespaces(inputString: string) {\n  return inputString.replace(/\\s+/g, \"\")\n}\n\nconst replaceHtml = (node: HTMLElement, html: string) => {\n  const template = document.createElement(\"template\")\n  template.innerHTML = sanitizeHtml(html)\n  node.replaceChildren(...Array.from(template.content.childNodes))\n}\n\nconst appendHtml = (node: HTMLElement, html: string) => {\n  const template = document.createElement(\"template\")\n  template.innerHTML = sanitizeHtml(html)\n  node.append(...Array.from(template.content.childNodes))\n}\n\nconst TOOLTIP_STYLE_ID = \"tooltip-inline-style\"\n\nfunction ensureTooltipStyles() {\n  if (typeof document === \"undefined\") return\n\n  if (document.getElementById(TOOLTIP_STYLE_ID)) return\n\n  const style = document.createElement(\"style\")\n  style.id = TOOLTIP_STYLE_ID\n  style.textContent = `\n.tooltip {\n    min-width: 200px;\n    max-width: 300px;\n    width: fit-content;\n    padding: 16px;\n    font-size: 14px;\n    text-align: center;\n    z-index: 9999 !important;\n    position: fixed;\n    margin-left: -100px;\n    bottom: 100%;\n    background: #fff;\n    box-shadow: 0px 1px 10px 1px rgba(0, 0, 0, 0.2);\n    color: black;\n    border-radius: 4px;\n}\n.tooltip .extrawide {\n    width: 300px;\n}\n.tooltip.rich-tooltip,\n.tooltip.rich-score-tooltip {\n    min-width: 260px;\n    max-width: 380px;\n    text-align: left;\n    line-height: 1.35;\n    overflow-wrap: anywhere;\n    word-break: break-word;\n}\n.tooltip.rich-tooltip .content,\n.tooltip.rich-score-tooltip .content {\n    display: grid;\n    gap: 0.36rem;\n    min-width: 0;\n    overflow-wrap: anywhere;\n    word-break: break-word;\n}\n.tooltip.rich-tooltip strong,\n.tooltip.rich-score-tooltip strong {\n    font-weight: 700;\n}\n.tooltip.rich-tooltip p {\n    margin: 0;\n}\n.tooltip.rich-tooltip div {\n    margin: 0;\n}\n.tooltip.rich-tooltip ul {\n    margin: 0;\n    padding-left: 1.1rem;\n}\n.tooltip.rich-score-tooltip .score-tooltip__section {\n    margin-top: 0.2rem;\n}\n.tooltip.rich-score-tooltip .score-tooltip__deduction {\n    padding-left: 0.5rem;\n}\n.tooltip .bubbleding {\n    top: 100%;\n    left: 50%;\n    border: solid transparent;\n    content: \"\";\n    height: 0;\n    width: 0;\n    position: absolute;\n    pointer-events: none;\n    border-color: rgba(255, 255, 255, 0);\n    border-top-color: #ffffff;\n    border-width: 12px;\n    margin-left: -12px;\n}\n@media (min-width: 1100px) {\n    .tooltip .tooltip-close {\n        display: none;\n    }\n}\n.tooltip .tooltip-close.never-hide {\n    display: initial !important;\n}\n.tooltip.bottom {\n    bottom: 0;\n}\n.tooltip.bottom .bubbleding {\n    top: -24px;\n    border-top-color: transparent;\n    border-bottom-color: #ffffff;\n}\n    `.trim()\n\n  document.head.appendChild(style)\n}\nexport interface Tooltip {\n  /** Opt-in keyboard help, including focusable wrappers around native disabled buttons. */\n  focus?: boolean\n  when?: \"hover\" | \"click\"\n  onlyDesktop?: boolean\n  /** Show only when the trigger's text exceeds its available inline width. */\n  onlyWhenOverflow?: boolean\n  overflowContent?: any\n  content:\n    | string\n    | {\n        component: any\n        props?: {\n          [key: string]: any\n        }\n      }\n  className?: string\n  style?: string\n  optional?: boolean\n}\nexport function tooltip(node: Node, data: Tooltip | false) {\n  let span: HTMLElement | undefined\n  let when: string\n  let doOpen: EventListener | undefined\n  let doClose: (() => void) | undefined\n  let mouseClose: (() => void) | undefined\n  let clickOutside: ((e: MouseEvent) => void) | undefined\n  let keydownHandler: ((event: KeyboardEvent) => void) | undefined\n  let hoverCloseTimeout: number | null = null\n  let hoverMonitorAttached = false\n  let hoverMonitor: ((e: MouseEvent) => void) | undefined\n  let focusOpen: ((event: FocusEvent) => void) | undefined\n  let focusClose: ((event: FocusEvent) => void) | undefined\n  let describedTarget: HTMLElement | undefined\n  let descriptionId: string | undefined\n  const clearDescription = () => {\n    if (!describedTarget || !descriptionId) return\n\n    const remaining = (describedTarget.getAttribute(\"aria-describedby\") ?? \"\")\n      .split(/\\s+/)\n      .filter((id) => id && id !== descriptionId)\n\n    if (remaining.length) describedTarget.setAttribute(\"aria-describedby\", remaining.join(\" \"))\n    else describedTarget.removeAttribute(\"aria-describedby\")\n\n    describedTarget = undefined\n  }\n  const detachEventListeners = () => {\n    if (typeof window === \"undefined\") return\n\n    if (when == \"click\") {\n      if (doOpen) node.removeEventListener(\"click\", doOpen, true)\n\n      if (clickOutside) window.removeEventListener(\"click\", clickOutside as EventListener, true)\n    } else {\n      if (doOpen) {\n        node.removeEventListener(\"mouseover\", doOpen, true)\n        node.removeEventListener(\"mousemove\", doOpen, true)\n      }\n\n      if (mouseClose) node.removeEventListener(\"mouseout\", mouseClose, true)\n\n      if (hoverMonitor) document.removeEventListener(\"mousemove\", hoverMonitor, true)\n\n      if (hoverCloseTimeout) {\n        clearTimeout(hoverCloseTimeout)\n        hoverCloseTimeout = null\n      }\n    }\n\n    if (keydownHandler) {\n      document.removeEventListener(\"keydown\", keydownHandler)\n      keydownHandler = undefined\n    }\n\n    if (focusOpen) node.removeEventListener(\"focusin\", focusOpen as EventListener)\n\n    if (focusClose) node.removeEventListener(\"focusout\", focusClose as EventListener)\n\n    focusOpen = undefined\n    focusClose = undefined\n    clearDescription()\n\n    doOpen = undefined\n    doClose = undefined\n    mouseClose = undefined\n    clickOutside = undefined\n    hoverMonitor = undefined\n    hoverMonitorAttached = false\n  }\n\n  if (data && !data.content) return\n\n  function createTooltipContent(data: Tooltip) {\n    if (!data) return\n\n    if (window.innerWidth < 1024 && !data.focus) {\n      return\n    }\n\n    ensureTooltipStyles()\n\n    if (typeof data.content === \"string\") {\n      let clearedString = removeWhitespaces(data.content)\n\n      if (!clearedString.length) return\n    } else if (typeof data?.content?.props?.value === \"string\") {\n      let clearedString = removeWhitespaces(data.content.props.value)\n\n      if (!clearedString.length) return\n    }\n\n    const whenValue = data.when || \"hover\"\n    when = whenValue\n    const span = document.createElement(\"div\")\n\n    if (data.focus) {\n      span.id = `kw-tooltip-${++focusTooltipId}`\n      span.setAttribute(\"role\", \"tooltip\")\n      descriptionId = span.id\n    }\n\n    const bubbleding = document.createElement(\"div\")\n    bubbleding.className = \"bubbleding\"\n    span.appendChild(bubbleding)\n\n    const content = document.createElement(\"div\")\n    content.className = \"content\"\n    span.appendChild(content)\n\n    const baseClass = \"tooltip active \" + (data.className || \"\")\n    span.className = baseClass\n\n    if (data.style) span.style.cssText = data.style\n\n    let rendered = false\n\n    const resolveTooltipHost = () => {\n      if (typeof document === \"undefined\") return null\n\n      if (node instanceof HTMLElement) {\n        const layerHost = node.closest(\"dialog, [popover]\")\n\n        if (layerHost) return layerHost as HTMLElement\n      }\n\n      return document.querySelector<HTMLElement>(\".dialog-open\")\n    }\n\n    const clearHoverClose = () => {\n      if (hoverCloseTimeout) {\n        clearTimeout(hoverCloseTimeout)\n        hoverCloseTimeout = null\n      }\n    }\n    const hasKeyboardFocus = () =>\n      Boolean(data.focus && node instanceof HTMLElement && node.contains(document.activeElement))\n\n    const hoverMonitorHandler = (event: MouseEvent) => {\n      if (!span?.parentNode) return\n\n      const target = event.target as Node | null\n      const overTrigger = node instanceof HTMLElement && !!target && node.contains(target)\n      const overTooltip = !!target && span.contains(target)\n\n      if (!overTrigger && !overTooltip && !hasKeyboardFocus()) {\n        clearHoverClose()\n        hoverCloseTimeout = window.setTimeout(() => {\n          if (span?.parentNode && !hasKeyboardFocus()) {\n            doClose?.()\n          }\n        }, 200)\n      } else {\n        clearHoverClose()\n      }\n    }\n\n    const attachHoverMonitor = () => {\n      if (whenValue === \"click\" || hoverMonitorAttached) return\n\n      hoverMonitor = hoverMonitorHandler\n      document.addEventListener(\"mousemove\", hoverMonitorHandler, true)\n      hoverMonitorAttached = true\n    }\n\n    const detachHoverMonitor = () => {\n      if (!hoverMonitorAttached || !hoverMonitor) return\n\n      document.removeEventListener(\"mousemove\", hoverMonitor, true)\n      hoverMonitorAttached = false\n      clearHoverClose()\n    }\n\n    const openHandler = (e: { clientX: number; clientY: number }) => {\n      clearHoverClose()\n\n      if (\n        data.onlyWhenOverflow &&\n        (!(node instanceof HTMLElement) || node.scrollWidth <= node.clientWidth)\n      ) {\n        doClose?.()\n\n        return\n      }\n\n      if (typeof data.content == \"string\") {\n        content.replaceChildren()\n\n        // @ts-expect-error Existing overflow options and element geometry exceed the public Node contract.\n        if (node.scrollWidth > node.clientWidth && !data.forceShow) {\n          if (data.overflowContent && data.overflowContent !== \"undefined\")\n            replaceHtml(content, \"<div style='width: 100%;'>\" + +data.overflowContent + \"</div>\")\n        } else {\n          if (data?.content == \"invalid\") {\n            doClose?.()\n\n            return\n          }\n        }\n\n        if (data.content !== \"invalid\" && content.childNodes.length > 0)\n          appendHtml(content, \"<br />\" + data.content)\n        else if (data.content !== \"invalid\") replaceHtml(content, data.content)\n      } else if (typeof data.content == \"object\" && !rendered) {\n        if (\n          data?.content?.props?.value == \"invalid\" ||\n          (data?.overflowContent && data.overflowContent !== \"undefined\" && data?.optional)\n        ) {\n          // @ts-expect-error Existing optional-content mutation assumes an element and mutable props.\n          if (node.scrollWidth > node.clientWidth) data.content.props.value = \"\"\n          else {\n            doClose?.()\n\n            return\n          }\n        }\n\n        rendered = true\n      }\n\n      const tooltipHost = resolveTooltipHost()\n      // Tooltip is styled with `position: fixed`, so we must always position it in viewport coordinates.\n      // Even if we append the tooltip into a <dialog> (top layer), fixed positioning stays relative\n      // to the viewport. Offsetting by the dialog's bounding rect causes the tooltip to be shifted\n      // (the bug observed inside ModalDialog).\n      const fullWith = window.innerWidth\n      const fullHeight = window.innerHeight\n      const dialogOffset = { x: 0, y: 0 }\n\n      const mouseX = e.clientX\n      const mouseY = e.clientY\n\n      setTimeout(() => {\n        let fixedCSSMarginLeft = 100\n        let defaultOffset = 120\n\n        let leftOffset = 0\n\n        if (mouseX < defaultOffset) {\n          leftOffset = defaultOffset - mouseX\n        }\n\n        if (mouseX > window.innerWidth - defaultOffset) {\n          leftOffset = defaultOffset * -1 + (fullWith - mouseX)\n        }\n\n        bubbleding.style.left = fixedCSSMarginLeft - leftOffset + \"px\"\n        span.style.left = mouseX + leftOffset - dialogOffset.x + \"px\"\n\n        const placeAbove = () => {\n          span.classList.remove(\"bottom\")\n          span.style.top = \"\"\n          span.style.bottom = fullHeight - mouseY + 20 + dialogOffset.y + \"px\"\n        }\n\n        const placeBelow = () => {\n          span.classList.add(\"bottom\")\n          span.style.bottom = \"auto\"\n          span.style.top = mouseY + 20 - dialogOffset.y + \"px\"\n        }\n\n        placeAbove()\n        const tooltipRect = span.getBoundingClientRect()\n        const forceBottom = data.className?.includes(\"bottom\") || false\n        const shouldFlipToBottom = tooltipRect.top < 0\n        const placeBottom = forceBottom || shouldFlipToBottom\n\n        if (placeBottom) {\n          placeBelow()\n        } else {\n          placeAbove()\n        }\n      }, 0)\n\n      if (!span.parentNode) {\n        if (document.getElementsByClassName(\"tooltip\").length == 0) {\n          if (tooltipHost) {\n            tooltipHost.appendChild(span)\n          } else {\n            document.body.appendChild(span)\n          }\n\n          attachHoverMonitor()\n        }\n      }\n    }\n    doOpen = (event) => {\n      if (event instanceof MouseEvent) openHandler(event)\n    }\n    doClose = () => {\n      clearHoverClose()\n      detachHoverMonitor()\n      span.remove()\n      clearDescription()\n    }\n    mouseClose = () => {\n      if (!hasKeyboardFocus()) doClose?.()\n    }\n\n    clickOutside = ({ target }) => {\n      if (!span.contains(target as Node)) {\n        doClose?.()\n      }\n    }\n\n    const closeBtn = document.createElement(\"span\")\n    closeBtn.textContent = \"×\"\n    closeBtn.className = \"tooltip-close\"\n    closeBtn.style.position = \"absolute\"\n    closeBtn.style.top = \"5px\" // Positionieren Sie es oben\n    closeBtn.style.right = \"5px\" // und rechts\n    closeBtn.style.color = \"#c4102d\"\n    closeBtn.style.cursor = \"pointer\" // Zeigen Sie den Cursor als Hand, um zu zeigen, dass es anklickbar ist\n    closeBtn.addEventListener(\"click\", doClose) // Fügt den Tooltip-Schließungs-Handler hinzu\n\n    if (whenValue == \"click\") closeBtn.className += \" never-hide\"\n\n    span.appendChild(closeBtn)\n\n    if (typeof window !== \"undefined\") {\n      if (whenValue == \"click\") {\n        node.addEventListener(\"click\", doOpen, true)\n        window.addEventListener(\"click\", clickOutside, true)\n      } else {\n        node.addEventListener(\"mousemove\", doOpen, true)\n        node.addEventListener(\"mouseout\", mouseClose, true)\n      }\n\n      if (data.focus) {\n        focusOpen = (event) => {\n          const target = event.target instanceof HTMLElement ? event.target : null\n\n          if (!target) return\n\n          clearDescription()\n          const rect = target.getBoundingClientRect()\n          openHandler({ clientX: rect.left + rect.width / 2, clientY: rect.top + rect.height / 2 })\n\n          if (!span.parentNode) return\n\n          describedTarget = target\n          const ids = (target.getAttribute(\"aria-describedby\") ?? \"\").split(/\\s+/).filter(Boolean)\n          target.setAttribute(\"aria-describedby\", [...new Set([...ids, span.id])].join(\" \"))\n        }\n        focusClose = (event) => {\n          if (event.relatedTarget instanceof Node && node.contains(event.relatedTarget)) return\n\n          doClose?.()\n        }\n        node.addEventListener(\"focusin\", focusOpen as EventListener)\n        node.addEventListener(\"focusout\", focusClose as EventListener)\n      }\n\n      keydownHandler = (event: KeyboardEvent) => {\n        if (event.key === \"Escape\") {\n          if (data.focus && span.parentNode) {\n            event.preventDefault()\n            event.stopPropagation()\n          }\n\n          doClose?.()\n        }\n      }\n      document.addEventListener(\"keydown\", keydownHandler)\n    }\n\n    return span\n  }\n\n  if (data) {\n    span = createTooltipContent(data)\n  }\n\n  return {\n    update(updatedData: any) {\n      if (span && span.parentNode) {\n        doClose?.() // This will handle the tooltip removal and its associated listeners\n      }\n\n      detachEventListeners()\n      span = createTooltipContent(updatedData)\n    },\n    destroy() {\n      doClose?.()\n\n      detachEventListeners()\n    },\n  }\n}\n","<script lang=\"ts\">\n  import { autoUpdate, computePosition, flip, offset, shift } from \"@floating-ui/dom\"\n  import type { Placement } from \"@floating-ui/dom\"\n  import { tick, type Snippet } from \"svelte\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import type { Tooltip } from \"../../../../core/overlay/tooltip\"\n  import { spaLink } from \"../../../../core/routing/navigation\"\n  import type { PopoverMenuItem } from \"../../../../core/overlay/popover\"\n\n  let {\n    label,\n    items,\n    disabled = false,\n    placement = \"bottom-end\",\n    roundTrigger = false,\n    triggerContent,\n    header,\n    triggerClass = \"\",\n    triggerStyle = \"\",\n    triggerTooltip = false,\n    onTriggerHoverChange,\n  }: {\n    label: string\n    items: PopoverMenuItem[]\n    disabled?: boolean\n    placement?: Placement\n    roundTrigger?: boolean\n    triggerContent: Snippet\n    header?: Snippet\n    /** Custom trigger classes replace the default trigger appearance, not menu behavior. */\n    triggerClass?: string\n    triggerStyle?: string\n    triggerTooltip?: Tooltip | false\n    onTriggerHoverChange?: (hovered: boolean) => void\n  } = $props()\n  const id = $props.id()\n  let menu = $state<HTMLDivElement>()\n  let trigger = $state<HTMLButtonElement>()\n  let open = $state(false)\n  let positioned = $state(false)\n  let focusLast = false\n  const triggerBlocked = $derived(disabled || !items.length)\n\n  function focusableItems() {\n    return Array.from(menu?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]:not(:disabled)') ?? [])\n  }\n  function close(restoreFocus = true) {\n    menu?.hidePopover()\n\n    if (restoreFocus) trigger?.focus()\n  }\n  function keys(event: KeyboardEvent) {\n    event.stopPropagation()\n    const entries = focusableItems()\n    const index = entries.indexOf(document.activeElement as HTMLElement)\n    let next = -1\n\n    if (event.key === \"ArrowDown\") next = (index + 1) % entries.length\n\n    if (event.key === \"ArrowUp\") next = (index - 1 + entries.length) % entries.length\n\n    if (event.key === \"Home\") next = 0\n\n    if (event.key === \"End\") next = entries.length - 1\n\n    if (event.key === \"Escape\") {\n      event.preventDefault()\n      close()\n    }\n\n    if (event.key === \"Tab\") close(false)\n\n    if (event.key === \" \" && entries[index] instanceof HTMLAnchorElement) {\n      event.preventDefault()\n      entries[index].click()\n    }\n\n    if (next >= 0) {\n      event.preventDefault()\n      entries[next]?.focus()\n    }\n  }\n  $effect(() => {\n    if (!triggerBlocked || !open) return\n\n    close(false)\n\n    if (triggerTooltip) trigger?.parentElement?.focus()\n  })\n  $effect(() => {\n    if (!open || !menu || !trigger) return\n\n    const popup = menu\n    const button = trigger\n    let active = true\n    let focused = false\n    const cleanup = autoUpdate(button, popup, () => {\n      void computePosition(button, popup, {\n        strategy: \"fixed\",\n        placement,\n        middleware: [offset(4), flip(), shift({ padding: 8 })],\n      }).then(async ({ x, y }) => {\n        if (!active) return\n\n        popup.style.left = x + \"px\"\n        popup.style.top = y + \"px\"\n        positioned = true\n\n        if (!focused) {\n          focused = true\n          await tick()\n\n          if (!active) return\n\n          const entries = focusableItems()\n          entries[focusLast ? entries.length - 1 : 0]?.focus()\n        }\n      })\n    })\n\n    return () => {\n      active = false\n      cleanup()\n    }\n  })\n</script>\n\n{#snippet triggerButton()}\n  <button\n    class=\"kw-popover-trigger {triggerClass}\"\n    class:custom-trigger={Boolean(triggerClass)}\n    style={triggerStyle || undefined}\n    class:round={roundTrigger}\n    type=\"button\"\n    bind:this={trigger}\n    aria-label={label}\n    title={triggerTooltip ? undefined : label}\n    aria-haspopup=\"menu\"\n    aria-controls={id}\n    popovertarget={id}\n    aria-expanded={open}\n    disabled={triggerBlocked}\n    onmouseenter={() => onTriggerHoverChange?.(true)}\n    onmouseleave={() => onTriggerHoverChange?.(false)}\n    onclick={(event) => {\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (triggerBlocked) return\n\n      focusLast = false\n      menu?.togglePopover()\n    }}\n    onkeydown={(event) => {\n      if (triggerBlocked || (event.key !== \"ArrowDown\" && event.key !== \"ArrowUp\")) return\n\n      event.preventDefault()\n      event.stopPropagation()\n      focusLast = event.key === \"ArrowUp\"\n      menu?.showPopover()\n    }}>{@render triggerContent()}</button\n  >\n{/snippet}\n{#if triggerTooltip}\n  <!-- svelte-ignore a11y_no_noninteractive_tabindex (The disabled native button stays inert; this wrapper exposes its help to keyboard users.) -->\n  <span\n    class=\"kw-popover-trigger-wrap\"\n    class:blocked={triggerBlocked}\n    role={triggerBlocked ? \"group\" : undefined}\n    aria-label={triggerBlocked ? label : undefined}\n    tabindex={triggerBlocked ? 0 : undefined}\n    use:tooltip={triggerTooltip}>{@render triggerButton()}</span\n  >\n{:else}\n  {@render triggerButton()}\n{/if}\n<div\n  bind:this={menu}\n  {id}\n  class=\"kw-popover\"\n  class:positioned\n  popover=\"auto\"\n  role=\"menu\"\n  aria-label={label}\n  tabindex=\"-1\"\n  onkeydown={keys}\n  ontoggle={(event) => {\n    open = event.newState === \"open\"\n    positioned = false\n  }}\n>\n  {#if header}<div class=\"kw-popover__header\" role=\"presentation\">{@render header()}</div>{/if}\n  {#each items as item (item.id)}\n    {#if item.separatorBefore}<div class=\"kw-popover__separator\" role=\"separator\"></div>{/if}\n    {#if item.href && !item.disabled}\n      <a\n        role=\"menuitem\"\n        class=\"kw-popover__item\"\n        class:danger={item.tone === \"danger\"}\n        href={item.href}\n        target={item.target}\n        rel={item.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n        data-testid={item.testId}\n        use:spaLink={{}}\n        use:tooltip={{ content: item.reason ?? item.label, className: item.tooltipClassName }}\n        onclick={(event) => {\n          event.stopPropagation()\n\n          if (item.disabled) return\n\n          close()\n          item.onClick()\n        }}\n      >\n        {#if item.icon}<Icon path={item.icon} />{/if}<span>{item.label}</span>\n      </a>\n    {:else}\n      <button\n        role=\"menuitem\"\n        type=\"button\"\n        class=\"kw-popover__item\"\n        class:danger={item.tone === \"danger\"}\n        disabled={item.disabled}\n        data-testid={item.testId}\n        use:tooltip={{ content: item.reason ?? item.label, className: item.tooltipClassName }}\n        onclick={(event) => {\n          event.stopPropagation()\n\n          if (item.disabled) return\n\n          close()\n          item.onClick()\n        }}\n      >\n        {#if item.icon}<Icon path={item.icon} />{/if}<span>{item.label}</span>\n      </button>\n    {/if}\n  {/each}\n</div>\n\n<style>\n  .kw-popover-trigger-wrap {\n    display: inline-flex;\n    align-items: stretch;\n    flex-shrink: 0;\n    min-width: 0;\n  }\n  .kw-popover-trigger-wrap.blocked {\n    cursor: not-allowed;\n  }\n  .kw-popover-trigger-wrap.blocked > button {\n    pointer-events: none;\n  }\n  .kw-popover-trigger-wrap:focus-visible {\n    outline: 2px solid var(--primary-100, #008c5a);\n    outline-offset: 2px;\n  }\n  .kw-popover-trigger:where(:not(.custom-trigger)) {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 28px;\n    min-height: 28px;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    cursor: pointer;\n  }\n  .kw-popover-trigger:where(:not(.custom-trigger)):hover {\n    background: #8882;\n  }\n  .kw-popover-trigger:where(:not(.custom-trigger)).round {\n    width: 36px;\n    height: 36px;\n    flex-shrink: 0;\n    border-radius: 50%;\n  }\n  .kw-popover {\n    position: fixed;\n    inset: auto;\n    margin: 0;\n    padding: 4px;\n    width: max-content;\n    min-width: 208px;\n    max-width: min(360px, calc(100vw - 16px));\n    max-height: calc(100dvh - 16px);\n    overflow: auto;\n    border: 1px solid #d7dcde;\n    background: #fff;\n    color: #263840;\n    color-scheme: light;\n    box-shadow: 0 4px 16px #0003;\n    visibility: hidden;\n    transition: none;\n    animation: none;\n  }\n  .kw-popover.positioned {\n    visibility: visible;\n  }\n  .kw-popover__header {\n    padding: 12px 8px;\n    border-bottom: 1px solid #d7dcde;\n    margin-bottom: 4px;\n  }\n  .kw-popover__separator {\n    border-top: 1px solid #d7dcde;\n    margin: 4px 0;\n  }\n  .kw-popover__item {\n    display: flex;\n    box-sizing: border-box;\n    align-items: center;\n    justify-content: flex-start;\n    gap: 8px;\n    width: 100%;\n    min-height: 36px;\n    padding: 6px 8px;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    font: inherit;\n    font-size: 14px;\n    text-align: left;\n    text-decoration: none;\n    cursor: pointer;\n    transition: none;\n  }\n  .kw-popover__item span {\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  .kw-popover__item:hover,\n  .kw-popover__item:focus-visible {\n    background: #f0f3f4;\n  }\n  .kw-popover__item.danger {\n    color: var(--error-100, #b91c1c);\n  }\n  button:focus-visible,\n  a:focus-visible {\n    outline: 2px solid var(--primary-100, #008c5a);\n    outline-offset: -2px;\n  }\n  button:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n</style>\n","<script lang=\"ts\">\n  import { mdiChevronDown } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import SafeHtml from \"../../../security/_modules/safe-html/index\"\n  import Popover from \"../../../overlay/_modules/popover/index\"\n  import type { CTAOptions } from \"./types\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n\n  type CTAType =\n    | \"confirmationButton\"\n    | \"toggle\"\n    | \"primaryButton\"\n    | \"secondaryButton\"\n    | \"tertiaryButton\"\n    | \"tableButton\"\n    | \"ghostButton\"\n    | \"ghostButtonReverse\"\n    | \"contentLessButton\"\n    | \"tableButtonWithContent\"\n    | \"BubbleButton\"\n    | \"normal\"\n\n  type ThemeMode = \"dark\" | \"light\"\n\n  const WHITE_VERSION_BEHAVIOR: Record<\n    CTAType,\n    Record<ThemeMode, { base: boolean; hover?: boolean }>\n  > = {\n    confirmationButton: {\n      dark: { base: true },\n      light: { base: false },\n    },\n    toggle: {\n      dark: { base: false },\n      light: { base: false },\n    },\n    primaryButton: {\n      dark: { base: true },\n      light: { base: true },\n    },\n    secondaryButton: {\n      dark: { base: false, hover: true },\n      light: { base: true },\n    },\n    tertiaryButton: {\n      dark: { base: true, hover: false },\n      light: { base: false, hover: true },\n    },\n    tableButton: {\n      dark: { base: true, hover: false },\n      light: { base: false, hover: true },\n    },\n    ghostButton: {\n      dark: { base: true, hover: false },\n      light: { base: false, hover: true },\n    },\n    ghostButtonReverse: {\n      dark: { base: false, hover: true },\n      light: { base: false, hover: true },\n    },\n    contentLessButton: {\n      dark: { base: true },\n      light: { base: false },\n    },\n    tableButtonWithContent: {\n      dark: { base: false, hover: true },\n      light: { base: false, hover: true },\n    },\n    BubbleButton: {\n      dark: { base: true, hover: false },\n      light: { base: true, hover: false },\n    },\n    normal: {\n      dark: { base: false },\n      light: { base: false },\n    },\n  }\n\n  const ACTIVE_WHITE_VERSION: Partial<Record<CTAType, Partial<Record<ThemeMode, boolean>>>> = {\n    tableButtonWithContent: {\n      dark: true,\n      light: true,\n    },\n  }\n\n  let {\n    type,\n    icon = \"\",\n    disabled = false,\n    content = \"\",\n    colorForce = \"\",\n    noBorder = false,\n    hideLabelOnMobile = false,\n    hideContentOnMobile = false,\n    noHover = false,\n    small = false,\n    iconSnippet,\n    onClick = (e: any) => {},\n    onclick = undefined,\n    largeIcon = false,\n    style = \"\",\n    active = false,\n    darkMode = true,\n    tooltipContent = null,\n    tooltipClassName = \"\",\n    dataTestid = undefined,\n    ariaLabel = undefined,\n    ariaPressed = undefined,\n    arialabel = undefined,\n    fullWidth = false,\n    options,\n  }: {\n    type: CTAType\n    icon?: string\n    disabled?: boolean\n    content?: string\n    colorForce?: string\n    noBorder?: boolean\n    small?: boolean\n    largeIcon?: boolean\n    hideLabelOnMobile?: boolean\n    hideContentOnMobile?: boolean\n    noHover?: boolean\n    style?: string\n    onClick?: (e: any) => void\n    onclick?: ((e: any) => void) | undefined\n    iconSnippet?: () => any\n    active?: boolean\n    darkMode?: boolean\n    tooltipContent?: string | null\n    tooltipClassName?: string\n    dataTestid?: string | undefined\n    ariaLabel?: string | undefined\n    ariaPressed?: boolean\n    arialabel?: string | undefined\n    fullWidth?: boolean\n    options?: CTAOptions\n  } = $props()\n\n  let hovered = $state(false)\n  let optionsHovered = $state(false)\n  const primaryId = $props.id()\n  const hasOptions = $derived(Boolean(options?.items.length))\n  const optionsBlocked = $derived(\n    Boolean(options?.disabled || !options?.items.some((item) => !item.disabled)),\n  )\n  const optionsTooltip = $derived({\n    content: optionsBlocked\n      ? options?.disabledReason || options?.tooltipContent || options?.label || \"\"\n      : options?.tooltipContent || options?.label || \"\",\n    className: options?.tooltipClassName,\n    focus: true,\n  })\n  const tooltipProps = $derived(\n    tooltipContent\n      ? {\n          content: tooltipContent,\n          className: tooltipClassName,\n        }\n      : false,\n  )\n\n  function computeWhiteVersion(\n    currentType: CTAType,\n    isDark: boolean,\n    isHovered: boolean,\n    isActive: boolean,\n  ) {\n    const mode: ThemeMode = isDark ? \"dark\" : \"light\"\n    const behavior = WHITE_VERSION_BEHAVIOR[currentType]?.[mode]\n\n    if (!behavior) {\n      return false\n    }\n\n    const activeOverride = ACTIVE_WHITE_VERSION[currentType]?.[mode]\n\n    if (isActive && activeOverride !== undefined) {\n      return activeOverride\n    }\n\n    if (isHovered && behavior.hover !== undefined) {\n      return behavior.hover\n    }\n\n    return behavior.base\n  }\n\n  const whiteVersion = $derived(\n    computeWhiteVersion(type, darkMode, hovered && !(hasOptions && disabled), active),\n  )\n  const optionsWhiteVersion = $derived(\n    computeWhiteVersion(type, darkMode, optionsHovered && !optionsBlocked && !noHover, active),\n  )\n  const optionsClass = $derived(\n    [\n      type,\n      \"btn\",\n      \"cta\",\n      \"label\",\n      \"cta-disclosure\",\n      darkMode ? \"darkMode\" : \"lightMode\",\n      optionsWhiteVersion ? \"whiteVersion\" : \"\",\n      small ? \"small\" : \"\",\n      noBorder ? \"noBorder\" : \"\",\n      noHover || optionsBlocked ? \"noHover\" : \"\",\n      colorForce ? \"colorForce\" : \"\",\n      active ? \"active\" : \"\",\n    ]\n      .filter(Boolean)\n      .join(\" \"),\n  )\n  const effectiveAriaLabel = $derived(ariaLabel ?? arialabel)\n\n  function handleMouseEnter() {\n    if (noHover) return\n\n    hovered = true\n  }\n\n  function handleMouseLeave() {\n    if (noHover) return\n\n    hovered = false\n  }\n\n  function handleClick(event: MouseEvent) {\n    if (disabled) return\n\n    ;(onclick ?? onClick)(event)\n  }\n</script>\n\n{#snippet primaryAction(ownTooltip: boolean)}\n  <button\n    id={hasOptions ? primaryId : undefined}\n    data-testid={dataTestid}\n    aria-label={effectiveAriaLabel}\n    aria-pressed={ariaPressed}\n    class:small\n    class:darkMode\n    class:lightMode={!darkMode}\n    class=\"{type} btn cta {whiteVersion ? 'whiteVersion' : ''} label\"\n    class:noBorder\n    class:noHover={noHover || (hasOptions && disabled)}\n    class:cta-primary={hasOptions}\n    style=\"background-color:{colorForce || ''};{style} \"\n    class:colorForce\n    class:active\n    class:fullWidth\n    {disabled}\n    onclick={handleClick}\n    onmouseenter={handleMouseEnter}\n    onmouseleave={handleMouseLeave}\n    class:hideLabelOnMobile\n    class:hideContentOnMobile\n    use:tooltip={ownTooltip ? tooltipProps : false}\n  >\n    {#if typeof icon == \"string\" && !iconSnippet}\n      {#if icon}\n        <Icon path={icon} size={largeIcon ? \"1.5rem\" : \"1rem\"} />\n      {/if}\n    {:else if iconSnippet}\n      {@render iconSnippet()}\n    {/if}\n    {#if content}\n      <p><SafeHtml html={content} /></p>\n    {/if}\n  </button>\n{/snippet}\n\n{#if hasOptions && options}\n  <span class=\"cta-split\" class:fullWidth>\n    <!-- svelte-ignore a11y_no_noninteractive_tabindex (The disabled native button stays inert; this wrapper exposes its help to keyboard users.) -->\n    <span\n      class=\"cta-primary-target\"\n      class:blocked={disabled}\n      role={disabled && tooltipProps ? \"group\" : undefined}\n      aria-labelledby={disabled && tooltipProps ? primaryId : undefined}\n      tabindex={disabled && tooltipProps ? 0 : undefined}\n      use:tooltip={tooltipProps ? { ...tooltipProps, focus: true } : false}\n    >\n      {@render primaryAction(false)}\n    </span>\n    <Popover\n      label={options.label}\n      items={options.items}\n      disabled={optionsBlocked}\n      placement={options.placement ?? \"bottom-end\"}\n      triggerClass={optionsClass}\n      triggerStyle={`background-color:${colorForce || \"\"};${style}`}\n      triggerTooltip={optionsTooltip}\n      onTriggerHoverChange={(value) => {\n        optionsHovered = value\n      }}\n    >\n      {#snippet triggerContent()}<Icon path={mdiChevronDown} size=\"1rem\" />{/snippet}\n    </Popover>\n  </span>\n{:else}\n  {@render primaryAction(true)}\n{/if}\n\n<style lang=\"less\" global>\n  @import \"../../../../theme/tokens.less\";\n\n  button.cta {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: fit-content;\n    gap: 0.6rem;\n    padding: 0.6rem 1.2rem;\n    border: 1px solid transparent;\n    font-family: var(--font-family-bold, \"Outfit-Bold\", sans-serif);\n    font-size: 1rem;\n    font-weight: 700;\n    text-transform: uppercase;\n    color: var(--text-100);\n    position: relative;\n    overflow: visible;\n    cursor: pointer;\n    transition:\n      background-color 0.18s ease,\n      color 0.18s ease,\n      border-color 0.18s ease,\n      opacity 0.18s ease;\n\n    a {\n      color: inherit;\n      font: inherit;\n      text-transform: inherit;\n    }\n\n    p {\n      color: inherit;\n      white-space: nowrap;\n    }\n\n    &.fullWidth {\n      width: 100%;\n      max-width: 100%;\n      justify-content: center;\n\n      p {\n        text-align: center;\n      }\n    }\n\n    img {\n      width: 1.2rem !important;\n      height: 1.2rem !important;\n    }\n\n    svg,\n    path {\n      fill: currentColor;\n    }\n\n    &[disabled] {\n      color: var(--text-100);\n      opacity: 0.5;\n      cursor: not-allowed;\n    }\n\n    &.hideLabelOnMobile {\n      @media @max-mobile {\n        p {\n          display: none !important;\n        }\n      }\n    }\n\n    &.small {\n      padding: 0.4rem 0.6rem;\n\n      img {\n        width: 1rem !important;\n        height: 1rem !important;\n      }\n\n      &.hasTooltipIcon {\n        padding-right: 1.8rem;\n      }\n    }\n\n    &.hideContentOnMobile {\n      @media @max-mobile {\n        gap: 0.4rem;\n        padding: 0.55rem;\n\n        p {\n          display: none !important;\n        }\n\n        &.small {\n          padding: 0.4rem 0.5rem;\n        }\n\n        &.hasTooltipIcon {\n          padding-right: 2rem;\n        }\n      }\n    }\n\n    &.noBorder {\n      border-color: transparent;\n    }\n\n    &.colorForce {\n      color: var(--neutral-white);\n    }\n\n    &.whiteVersion {\n      color: var(--neutral-white);\n\n      svg,\n      path {\n        fill: var(--neutral-white);\n      }\n    }\n\n    &.primary {\n      background-color: var(--primary-100);\n      color: var(--neutral-white) !important;\n      p {\n        color: var(--neutral-white) !important;\n      }\n    }\n\n    &.secondary {\n      background-color: var(--text-invers-100);\n      color: var(--neutral-white) !important;\n      p {\n        color: var(--neutral-white) !important;\n      }\n    }\n\n    &.tertiary {\n      background-color: transparent;\n      border-color: color-mix(in srgb, var(--text-100) 24%, transparent);\n    }\n\n    &.primaryButton {\n      background: var(--primary-100);\n      color: var(--neutral-white);\n      p {\n        color: var(--neutral-white) !important;\n      }\n      &:not(.noHover):hover {\n        background-color: var(--primary-200);\n      }\n    }\n\n    &.normal {\n      flex-direction: column;\n      gap: 0.6rem;\n      padding: 0.7rem 0 !important;\n      color: var(--text-100);\n\n      p {\n        padding: 0;\n      }\n    }\n\n    &.secondaryButton {\n      background-color: var(--blue-100);\n      color: var(--neutral-white);\n      p {\n        color: var(--neutral-white) !important;\n      }\n      &:not(.noHover):hover {\n        background: var(--primary-200);\n      }\n    }\n\n    &.tertiaryButton {\n      &.darkMode {\n        background: transparent;\n        border-color: color-mix(in srgb, var(--text-100) 28%, transparent);\n        color: var(--text-100);\n\n        &:not(.noHover):hover {\n          background: var(--text-100);\n          color: var(--bg-100);\n\n          p,\n          .kw-safe-html {\n            color: var(--bg-100) !important;\n          }\n        }\n      }\n\n      &.lightMode {\n        background: transparent;\n        border-color: color-mix(in srgb, var(--text-invers-100) 32%, transparent);\n        color: var(--text-invers-100);\n        .cta-tooltip-icon {\n          color: var(--text-invers-100);\n        }\n        &:not(.noHover):hover {\n          background: var(--text-invers-100);\n          color: var(--neutral-white);\n\n          p,\n          .kw-safe-html {\n            color: var(--neutral-white) !important;\n          }\n        }\n      }\n    }\n\n    &.ghostButton {\n      flex-direction: column;\n      align-items: center;\n      gap: 6px;\n      padding: 6px 1.2rem;\n\n      p {\n        font-weight: 400;\n      }\n\n      &.darkMode {\n        border: 1px solid color-mix(in srgb, var(--neutral-white) 65%, transparent);\n        color: var(--neutral-white);\n\n        &:not(.noHover):hover {\n          background: var(--neutral-white);\n          color: var(--text-100);\n        }\n      }\n\n      &.lightMode {\n        border: 1px solid color-mix(in srgb, var(--text-invers-100) 45%, transparent);\n        color: var(--text-invers-100);\n\n        &:not(.noHover):hover {\n          background: var(--text-invers-100);\n          color: var(--neutral-white);\n        }\n      }\n    }\n\n    &.ghostButtonReverse {\n      flex-direction: column;\n      align-items: center;\n      gap: 6px;\n      padding: 6px 1.2rem;\n\n      &.darkMode {\n        border: 1px solid color-mix(in srgb, var(--text-100) 55%, transparent);\n        color: var(--text-100);\n\n        &:not(.noHover):hover {\n          background: var(--text-100);\n          color: var(--bg-100);\n        }\n      }\n\n      &.lightMode {\n        border: 1px solid color-mix(in srgb, var(--text-invers-100) 55%, transparent);\n        color: var(--text-invers-100);\n\n        &:not(.noHover):hover {\n          background: var(--text-invers-100);\n          color: var(--neutral-white);\n        }\n      }\n    }\n\n    &.toggle {\n      text-transform: none;\n      letter-spacing: 0;\n      gap: 0.5rem;\n      padding: 0.5rem 1rem;\n      border: 1px solid color-mix(in srgb, var(--text-100) 24%, transparent);\n      background: transparent;\n      color: var(--text-100);\n      font-size: 0.95rem;\n\n      &.darkMode {\n        color: var(--neutral-white);\n        border-color: color-mix(in srgb, var(--neutral-white) 28%, transparent);\n      }\n\n      &.lightMode {\n        color: var(--text-invers-100);\n        border-color: color-mix(in srgb, var(--text-invers-100) 28%, transparent);\n      }\n\n      &:not(.active):not(.noHover):hover {\n        background: color-mix(in srgb, var(--primary-100) 10%, transparent);\n        color: var(--neutral-white);\n      }\n\n      &.active {\n        background: var(--primary-100);\n        color: var(--neutral-white);\n        border-color: color-mix(in srgb, var(--primary-200) 45%, transparent);\n\n        &:not(.noHover):hover {\n          background: var(--primary-200);\n        }\n      }\n      &.small {\n        padding: 0.25rem 0.5rem;\n      }\n\n      p {\n        padding: 0;\n        text-transform: none;\n      }\n    }\n\n    &.tableButton,\n    &.tableButtonWithContent {\n      display: inline-flex;\n      align-items: flex-end;\n      justify-content: center;\n      gap: 0.35rem;\n      padding: 0.35rem;\n      cursor: pointer;\n      transition:\n        background-color 0.12s ease,\n        color 0.12s ease,\n        transform 0.05s ease,\n        border-color 0.12s ease;\n      color: var(--text-invers-100);\n      border: 1px solid transparent !important;\n      border: none;\n      font-weight: 600 !important;\n      p {\n        font-size: 0.9rem;\n      }\n      &:hover {\n        color: var(--bg-100) !important;\n        border: 1px solid var(--bg-100) !important;\n        svg,\n        path {\n          fill: var(--bg-100) !important;\n        }\n      }\n      &.darkMode:hover {\n        color: var(--primary-100) !important;\n        border: 1px solid var(--primary-100) !important;\n        svg,\n        path {\n          fill: var(--primary-100) !important;\n        }\n      }\n\n      &:disabled {\n        opacity: 0.45;\n        cursor: default;\n        transform: none;\n      }\n    }\n\n    &.BubbleButton {\n      display: inline-flex;\n      align-items: center;\n      gap: 12px;\n      padding: 6px 0.6rem;\n      border-radius: 24px;\n      width: fit-content;\n\n      &.darkMode {\n        background: var(--text-invers-100);\n        color: var(--neutral-white);\n\n        &:not(.noHover):hover {\n          background: transparent;\n          color: var(--text-100);\n        }\n      }\n\n      &.lightMode {\n        background: var(--text-invers-100);\n        color: var(--neutral-white);\n\n        &:not(.noHover):hover {\n          background: transparent;\n          color: var(--text-invers-100);\n        }\n      }\n    }\n\n    &.confirmationButton {\n      border-radius: 0.7rem;\n      background: color-mix(in srgb, var(--text-invers-150) 65%, transparent);\n      color: var(--neutral-white);\n\n      &.lightMode {\n        background: color-mix(in srgb, var(--text-invers-150) 35%, var(--neutral-white));\n        color: var(--text-invers-100);\n      }\n    }\n    &.darkMode {\n      color: var(--text-100);\n    }\n\n    &.lightMode {\n      color: var(--text-invers-100);\n    }\n  }\n\n  .cta-split {\n    display: inline-flex;\n    align-items: stretch;\n    max-width: 100%;\n    vertical-align: middle;\n\n    &.fullWidth {\n      width: 100%;\n    }\n    button.cta.whiteVersion {\n      color: var(--neutral-white);\n    }\n    .cta-primary-target {\n      display: inline-flex;\n      align-items: stretch;\n      min-width: 0;\n    }\n    &.fullWidth .cta-primary-target {\n      flex: 1;\n    }\n    &.fullWidth button.cta.cta-primary {\n      width: 100%;\n    }\n    .cta-primary-target.blocked {\n      cursor: not-allowed;\n      > button {\n        pointer-events: none;\n      }\n    }\n    .cta-primary-target:focus-visible {\n      outline: 2px solid var(--primary-100);\n      outline-offset: 2px;\n    }\n    button.cta.cta-primary {\n      min-width: 0;\n      max-width: 100%;\n      border-inline-end-width: 0 !important;\n      border-start-end-radius: 0;\n      border-end-end-radius: 0;\n      p {\n        min-width: 0;\n        white-space: normal;\n        overflow-wrap: anywhere;\n      }\n      &:focus-visible {\n        outline: 2px solid var(--primary-100);\n        outline-offset: 2px;\n        z-index: 1;\n      }\n    }\n    button.cta.cta-disclosure {\n      flex: 0 0 auto;\n      align-self: stretch;\n      width: auto;\n      min-width: 36px;\n      height: auto;\n      padding-inline: 0.6rem;\n      margin: 0;\n      gap: 0;\n      // Only the disclosure owns the divider, even with different disabled opacity.\n      border-inline-start: 1px solid color-mix(in srgb, currentColor 35%, transparent) !important;\n      border-start-start-radius: 0;\n      border-end-start-radius: 0;\n      &:focus-visible {\n        outline: 2px solid var(--primary-100);\n        outline-offset: 2px;\n        z-index: 1;\n      }\n      @media @max-mobile {\n        min-width: 44px;\n      }\n    }\n    button.cta.tableButton.noHover:hover,\n    button.cta.tableButtonWithContent.noHover:hover {\n      color: var(--text-invers-100) !important;\n      border-color: transparent !important;\n      &.whiteVersion {\n        color: var(--neutral-white) !important;\n      }\n      svg,\n      path {\n        fill: currentColor !important;\n      }\n    }\n    @media @max-mobile {\n      button.cta {\n        min-height: 44px;\n      }\n    }\n  }\n</style>\n","export type ToggleSvgPath = {\n  d: string\n  strokeWidth?: string\n  strokeLinecap?: \"inherit\" | \"round\" | \"butt\" | \"square\"\n  strokeLinejoin?: \"inherit\" | \"round\" | \"arcs\" | \"miter-clip\" | \"miter\" | \"bevel\"\n  fill?: string\n}\n\nexport type ToggleSvg = {\n  viewBox?: string\n  width?: string\n  height?: string\n  paths: ToggleSvgPath[]\n}\n\nexport const toggleCtaFallbackSvgs: Record<string, ToggleSvg> = {\n  table: {\n    viewBox: \"0 0 16 16\",\n    paths: [\n      { d: \"M8 2V14\", strokeWidth: \"1.33333\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n      {\n        d: \"M12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2Z\",\n        strokeWidth: \"1.33333\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\",\n      },\n      { d: \"M2 6H14\", strokeWidth: \"1.33333\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n      { d: \"M2 10H14\", strokeWidth: \"1.33333\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n    ],\n  },\n  cards: {\n    viewBox: \"0 0 16 16\",\n    paths: [\n      {\n        d: \"M6 2H2.66667C2.29848 2 2 2.29848 2 2.66667V6C2 6.36819 2.29848 6.66667 2.66667 6.66667H6C6.36819 6.66667 6.66667 6.36819 6.66667 6V2.66667C6.66667 2.29848 6.36819 2 6 2Z\",\n        strokeWidth: \"1.33333\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\",\n      },\n      {\n        d: \"M13.334 2H10.0007C9.63246 2 9.33398 2.29848 9.33398 2.66667V6C9.33398 6.36819 9.63246 6.66667 10.0007 6.66667H13.334C13.7022 6.66667 14.0007 6.36819 14.0007 6V2.66667C14.0007 2.29848 13.7022 2 13.334 2Z\",\n        strokeWidth: \"1.33333\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\",\n      },\n      {\n        d: \"M13.334 9.3335H10.0007C9.63246 9.3335 9.33398 9.63197 9.33398 10.0002V13.3335C9.33398 13.7017 9.63246 14.0002 10.0007 14.0002H13.334C13.7022 14.0002 14.0007 13.7017 14.0007 13.3335V10.0002C14.0007 9.63197 13.7022 9.3335 13.334 9.3335Z\",\n        strokeWidth: \"1.33333\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\",\n      },\n      {\n        d: \"M6 9.3335H2.66667C2.29848 9.3335 2 9.63197 2 10.0002V13.3335C2 13.7017 2.29848 14.0002 2.66667 14.0002H6C6.36819 14.0002 6.66667 13.7017 6.66667 13.3335V10.0002C6.66667 9.63197 6.36819 9.3335 6 9.3335Z\",\n        strokeWidth: \"1.33333\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\",\n      },\n    ],\n  },\n}\n","import {\n  mdiCalendarMonth,\n  mdiCalendarToday,\n  mdiFilterVariant,\n  mdiFilterVariantPlus,\n  mdiToggleSwitch,\n  mdiToggleSwitchOff,\n} from \"@mdi/js\"\n\n/** Shared presentation modes only; business choices supply their own icons. */\nexport const toggleIconPresets: Readonly<Record<string, string>> = {\n  compact: mdiFilterVariant,\n  detailed: mdiFilterVariantPlus,\n  on: mdiToggleSwitch,\n  off: mdiToggleSwitchOff,\n  active: mdiToggleSwitch,\n  inactive: mdiToggleSwitchOff,\n  day: mdiCalendarToday,\n  month: mdiCalendarMonth,\n}\n","<script lang=\"ts\">\n  import CTA from \"../cta/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import { escapeHtml } from \"../../../../core/security/index\"\n  import { toggleCtaFallbackSvgs, type ToggleSvg } from \"./_logic/toggleSvgPresets\"\n  import { toggleIconPresets } from \"./_logic/toggleIconPresets\"\n\n  type ToggleTone = \"primary\" | \"neutral\" | \"warning\" | \"danger\"\n\n  type ToggleOption = {\n    value: string\n    label: string\n    tone?: ToggleTone\n    ariaLabel?: string\n    icon?: string\n    svg?: ToggleSvg\n    disabled?: boolean\n    tooltip?: string | null\n    tooltipContent?: string | null\n    dataTestid?: string\n  }\n\n  type Props = {\n    options?: ToggleOption[]\n    value?: string | null\n    darkMode?: boolean\n    disabled?: boolean\n    class?: string\n    style?: string\n    allowReselect?: boolean\n    allowEmptySelection?: boolean\n    small?: boolean\n    dataTestid?: string\n    onChange: (value: string) => void\n  }\n\n  let {\n    options = [],\n    value = $bindable<string | null | undefined>(undefined),\n    darkMode = true,\n    disabled = false,\n    class: className = \"\",\n    style: styleAttr = \"\",\n    allowReselect = false,\n    allowEmptySelection = false,\n    onChange,\n    small = false,\n    dataTestid = undefined,\n  }: Props = $props()\n\n  const defaultTooltipContentByValue: Record<string, string> = {\n    compact: \"Kompakt zeigt eine reduzierte Filterzeile mit den wichtigsten Feldern.\",\n    detailed: \"Ausführlich zeigt die vollständige Filterzeile mit allen verfügbaren Feldern.\",\n  }\n\n  const resolvedOptions = $derived(\n    options\n      .filter((entry) => !!entry?.value)\n      .map((entry) => {\n        const key = `${entry.value}`.toLowerCase()\n        const help = entry.tooltipContent ?? entry.tooltip ?? defaultTooltipContentByValue[key]\n        const name = entry.ariaLabel ?? entry.label\n\n        return {\n          ...entry,\n          icon: entry.icon ?? (entry.svg ? undefined : toggleIconPresets[key]),\n          svg: entry.svg ?? toggleCtaFallbackSvgs[key],\n          tooltipContent: help\n            ? `<strong>${escapeHtml(name)}</strong><br />${help}`\n            : escapeHtml(name),\n        }\n      }),\n  )\n\n  const normalizedValue = $derived(typeof value === \"string\" && value ? value : null)\n  const effectiveValue = $derived.by(() => {\n    if (\n      normalizedValue !== null &&\n      resolvedOptions.some((entry) => entry.value === normalizedValue)\n    ) {\n      return normalizedValue\n    }\n\n    if (allowEmptySelection) return null\n\n    return resolvedOptions[0]?.value ?? null\n  })\n\n  const selectOption = (next: ToggleOption) => {\n    if (disabled || next.disabled) return\n\n    if (next.value === effectiveValue) {\n      if (allowReselect) onChange(next.value)\n\n      return\n    }\n\n    value = next.value\n    onChange(next.value)\n  }\n</script>\n\n<div\n  class={`toggle-cta${resolvedOptions.length === 1 ? \" single-option\" : \"\"}${className ? ` ${className}` : \"\"}`}\n  class:small\n  class:disabled\n  style={styleAttr}\n  data-theme={darkMode ? \"dark\" : \"light\"}\n  data-testid={dataTestid}\n>\n  {#each resolvedOptions as option (option.value)}\n    {@const optionTooltipContent = option.tooltipContent ?? null}\n    {@const active = effectiveValue === option.value}\n    {@const hasIcon = Boolean(option.icon || option.svg)}\n    {@const optionDisabled = disabled || Boolean(option.disabled)}\n    <!-- svelte-ignore a11y_no_noninteractive_tabindex (Disabled options expose their explanation without enabling the command.) -->\n    <span\n      class=\"toggle-cta__option\"\n      class:toggle-cta__option--disabled={option.disabled}\n      class:toggle-cta__option--tone-neutral={option.tone === \"neutral\"}\n      class:toggle-cta__option--tone-warning={option.tone === \"warning\"}\n      class:toggle-cta__option--tone-danger={option.tone === \"danger\"}\n      role={optionDisabled ? \"group\" : undefined}\n      aria-label={optionDisabled ? (option.ariaLabel ?? option.label) : undefined}\n      tabindex={optionDisabled && optionTooltipContent ? 0 : undefined}\n      use:tooltip={optionTooltipContent ? { content: optionTooltipContent, focus: true } : false}\n    >\n      <CTA\n        type=\"toggle\"\n        content={active || !hasIcon ? option.label : \"\"}\n        {darkMode}\n        {active}\n        disabled={optionDisabled}\n        {small}\n        ariaLabel={option.ariaLabel ?? option.label}\n        ariaPressed={active}\n        onClick={() => selectOption(option)}\n        dataTestid={option.dataTestid ?? (dataTestid ? `${dataTestid}.${option.value}` : undefined)}\n      >\n        {#snippet iconSnippet()}\n          {#if option.icon}\n            <span class=\"toggle-cta__icon\" aria-hidden=\"true\"\n              ><Icon path={option.icon} size=\"1rem\" /></span\n            >\n          {:else if option.svg}\n            <span class=\"toggle-cta__svg\" aria-hidden=\"true\">\n              <svg\n                width={option.svg.width ?? \"1rem\"}\n                height={option.svg.height ?? \"1rem\"}\n                viewBox={option.svg.viewBox ?? \"0 0 16 16\"}\n                fill=\"none\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n              >\n                {#each option.svg.paths ?? [] as pathDef, idx (idx)}\n                  <path\n                    d={pathDef.d}\n                    stroke=\"currentColor\"\n                    stroke-width={pathDef.strokeWidth}\n                    stroke-linecap={pathDef.strokeLinecap}\n                    stroke-linejoin={pathDef.strokeLinejoin}\n                    fill={pathDef.fill ?? \"none\"}\n                    style:fill={pathDef.fill ?? \"none\"}\n                  ></path>\n                {/each}\n              </svg>\n            </span>\n          {/if}\n        {/snippet}\n      </CTA>\n    </span>\n  {/each}\n</div>\n\n<style lang=\"less\">\n  .toggle-cta {\n    display: inline-flex;\n    align-items: stretch;\n    gap: 0.25rem;\n    padding: 0.25rem;\n    background: transparent;\n    border: 1px solid color-mix(in srgb, var(--text-100, #f3eed9) 26%, transparent);\n    &.small {\n      padding: 0.125rem;\n    }\n    &.single-option {\n      width: fit-content;\n      min-width: 0;\n      max-width: 100%;\n      flex: 0 0 auto;\n      justify-self: start;\n      align-self: flex-start;\n    }\n    &.disabled {\n      opacity: 0.5;\n    }\n\n    &__option {\n      display: inline-flex;\n      min-width: 0;\n    }\n\n    &__option--disabled {\n      cursor: not-allowed;\n    }\n  }\n\n  .toggle-cta[data-theme=\"light\"] {\n    border-color: color-mix(in srgb, var(--text-invers-100, #2f4858) 28%, transparent);\n  }\n\n  .toggle-cta[data-theme=\"light\"] :global(button.cta.toggle:not(.active)) {\n    color: var(--text-invers-100, #2f4858) !important;\n  }\n\n  .toggle-cta[data-theme=\"light\"] :global(button.cta.toggle:not(.active) p),\n  .toggle-cta[data-theme=\"light\"] :global(button.cta.toggle:not(.active) .kw-safe-html) {\n    color: var(--text-invers-100, #2f4858) !important;\n  }\n\n  .toggle-cta :global(button.cta.toggle) {\n    padding: 0.35rem 0.5rem;\n    min-width: 2rem;\n    min-height: 2rem;\n    box-shadow: none;\n    border: none;\n  }\n\n  .toggle-cta :global(button.cta.toggle.active) {\n    border: none;\n  }\n\n  .toggle-cta .toggle-cta__option--tone-neutral :global(button.cta.toggle.active) {\n    background: color-mix(in srgb, var(--text-invers-100, #2f4858) 16%, transparent);\n    color: var(--text-invers-100, #2f4858) !important;\n  }\n\n  .toggle-cta .toggle-cta__option--tone-warning :global(button.cta.toggle.active) {\n    background: color-mix(in srgb, var(--warning-100, #d97706) 85%, transparent);\n    color: var(--text-100, #f3eed9) !important;\n  }\n\n  .toggle-cta .toggle-cta__option--tone-danger :global(button.cta.toggle.active) {\n    background: color-mix(in srgb, var(--danger-100, #e25555) 88%, transparent);\n    color: var(--text-100, #f3eed9) !important;\n  }\n\n  .toggle-cta :global(.toggle-cta__svg),\n  .toggle-cta :global(.toggle-cta__icon) {\n    display: inline-flex;\n    flex: 0 0 1rem;\n    align-items: center;\n    justify-content: center;\n    line-height: 0;\n  }\n\n  .toggle-cta :global(.toggle-cta__svg svg) {\n    width: 1rem;\n    height: 1rem;\n    display: block;\n  }\n\n  .toggle-cta :global(.toggle-cta__svg path) {\n    stroke: currentColor;\n    fill: none;\n  }\n</style>\n","<script lang=\"ts\">\n  import Icon from \"../../../../../primitives/_modules/icon/index\"\n\n  let { icon, timestamp, hasValue, disabled, onClick } = $props()\n</script>\n\n<button\n  type=\"button\"\n  class=\"date-input__trigger\"\n  aria-label={timestamp ? \"Zeitstempel setzen\" : \"Datum auswählen\"}\n  aria-pressed={timestamp && hasValue}\n  {disabled}\n  onclick={onClick}\n>\n  <Icon path={icon} size=\"1.05rem\" />\n</button>\n\n<style lang=\"less\">\n  .date-input__trigger {\n    background: transparent;\n    border: none;\n    color: currentColor;\n    padding: 0.15rem;\n    border-radius: 999px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    transition:\n      background-color 0.15s ease,\n      color 0.15s ease;\n\n    &:hover,\n    &:focus-visible {\n      cursor: pointer;\n      background-color: color-mix(in srgb, currentColor 12%, transparent);\n    }\n  }\n</style>\n","import { writable } from \"svelte/store\"\n\nexport interface NotificationEntry {\n  html: string\n  class: \"info\" | \"success\" | \"warning\" | \"error\"\n  timeout?: number\n  removeOnNewLocation?: boolean\n  blockUI?: boolean\n}\n\nexport const notifications = writable<NotificationEntry[]>([])\n\nexport function newNotification(n: NotificationEntry): NotificationEntry {\n  notifications.update((current) => {\n    current.push(n)\n    let timeout = n.timeout\n\n    if (timeout === undefined) {\n      timeout = n.class === \"error\" ? 6000 : 3500\n    }\n\n    if (timeout > 0) {\n      setTimeout(() => {\n        removeNotification(n)\n      }, timeout)\n    }\n\n    return current\n  })\n\n  return n\n}\n\nexport function removeNotification(n: NotificationEntry) {\n  notifications.update((current) => current.filter((entry) => entry !== n))\n}\n","import { get } from \"svelte/store\"\nimport { newNotification } from \"../overlay/notifications\"\nimport { location } from \"../routing/navigation\"\n\ntype ValidationValue = string | number | boolean | null | undefined\ntype Validator = (value: ValidationValue) => string | null\n\nconst EMAIL_REGEX =\n  // The existing email grammar explicitly covers control ranges in quoted local parts.\n  // eslint-disable-next-line no-control-regex\n  /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/\nconst LAT_LON_REGEX = /^-?([1-8]?\\d(?:\\.\\d{1,18})?|90(?:\\.0{1,18})?)$/\n\nconst resolveElement = (elementId: string): HTMLElement | null => {\n  const byId = document.getElementById(elementId)\n\n  if (byId) return byId as HTMLElement\n\n  const byDataAttr = document.querySelector(`[data-input-id=\"${elementId}\"]`)\n\n  if (byDataAttr instanceof HTMLElement) return byDataAttr\n\n  const byName = document.querySelector(`[name=\"${elementId}\"]`)\n\n  if (byName instanceof HTMLElement) return byName\n\n  return null\n}\n\nconst resolveParent = (element: HTMLElement, parentEl?: HTMLElement | null) =>\n  parentEl ?? element.closest(\"label\") ?? element.parentElement ?? undefined\n\nexport function appendErrorMessage(\n  element: HTMLElement,\n  message: string,\n  parentEl?: HTMLElement | null,\n) {\n  const parent = resolveParent(element, parentEl)\n\n  if (!parent) return\n\n  const existingErrorNode = parent.querySelector(\".error-message\")\n\n  if (existingErrorNode) {\n    existingErrorNode.textContent = message\n\n    return\n  }\n\n  const errorNode = document.createElement(\"div\")\n  errorNode.className = \"error-message\"\n  errorNode.textContent = message\n  parent.appendChild(errorNode)\n}\n\nexport function clearFieldError(element: HTMLElement) {\n  element.classList.remove(\"error\")\n  element.removeAttribute(\"aria-invalid\")\n  const parent = element.closest(\"label\") ?? element.parentElement\n  const errorNode = parent?.querySelector(\".error-message\")\n  errorNode?.remove()\n}\n\nexport function onChange(event: Event, element = event.currentTarget as HTMLElement) {\n  if (!(element instanceof HTMLElement)) return\n\n  clearFieldError(element)\n}\n\nexport function removeAllErrors(form?: HTMLElement | null) {\n  const root = form ?? document\n  const errorNodes = root.querySelectorAll(\".error-message\")\n  errorNodes.forEach((node) => node.remove())\n\n  const errored = root.querySelectorAll(\".error\")\n  errored.forEach((input) => {\n    if (input instanceof HTMLElement) {\n      input.classList.remove(\"error\")\n      input.removeAttribute(\"aria-invalid\")\n    }\n  })\n}\n\nexport function validateField(\n  elementId: string,\n  value: ValidationValue,\n  validator: Validator,\n): boolean {\n  const element = resolveElement(elementId)\n  const error = validator(value)\n\n  if (error) {\n    if (element) {\n      element.classList.add(\"error\")\n      element.setAttribute(\"aria-invalid\", \"true\")\n      appendErrorMessage(element, error)\n    }\n\n    newNotification({ html: error, class: \"error\" })\n\n    return false\n  }\n\n  if (element) {\n    clearFieldError(element)\n  }\n\n  return true\n}\n\nexport function validateInput(input: ValidationValue): string | null {\n  return input === undefined || input === null || String(input).trim().length === 0\n    ? \"Dieses Feld ist erforderlich.\"\n    : null\n}\n\nexport function validateDataProtection(checked: boolean): string | null {\n  return checked ? null : \"Bitte akzeptiere die Datenschutzbestimmungen.\"\n}\n\nexport function checkPassword(password: string): string | null {\n  if (password.length < 12) return \"Das Passwort muss mindestens 12 Zeichen lang sein.\"\n\n  if (password.length > 128) return \"Das Passwort darf maximal 128 Zeichen lang sein.\"\n\n  return null\n}\n\nexport function checkEmail(email: string): string | null {\n  if (!EMAIL_REGEX.test(email)) {\n    return \"Bitte gib eine gültige E-Mail-Adresse ein.\"\n  }\n\n  return null\n}\n\nexport function isValidLangOrLatCoordinate(coordinate: string): string | null {\n  return LAT_LON_REGEX.test(coordinate) ? null : \"Ungültige Koordinate\"\n}\n\nexport function getQueryParam(param: string) {\n  return new URLSearchParams(get(location).search).get(param)\n}\n","export type TagTokenSyntax = \"single\" | \"double\"\nexport type TagSegment =\n  | { kind: \"text\"; text: string }\n  | { kind: \"token\"; token: string; syntax: TagTokenSyntax }\n\nexport const serializeToken = (token: string, syntax: TagTokenSyntax = \"double\"): string =>\n  syntax === \"single\" ? `{${token}}` : `{{${token}}}`\n\nexport const ensureString = (input: unknown): string => {\n  if (input === null || input === undefined) return \"\"\n\n  if (typeof input === \"string\") return input\n\n  if (typeof input === \"number\") return `${input}`\n\n  return `${input}`\n}\n\nexport const splitIntoSegments = (input: string): TagSegment[] => {\n  if (!input) {\n    return [{ kind: \"text\", text: \"\" }]\n  }\n\n  const parts: TagSegment[] = []\n  const regex = /\\{\\{\\s*([A-Za-z0-9_]+)\\s*}}|\\{([A-Za-z0-9_]+)\\}/g\n  let lastIndex = 0\n  for (const match of input.matchAll(regex)) {\n    const matchIndex = match.index ?? 0\n    parts.push({ kind: \"text\", text: input.slice(lastIndex, matchIndex) })\n    const doubleToken = (match[1] ?? \"\").trim()\n    const singleToken = (match[2] ?? \"\").trim()\n    const syntax: TagTokenSyntax = doubleToken ? \"double\" : \"single\"\n    parts.push({ kind: \"token\", token: doubleToken || singleToken, syntax })\n    lastIndex = matchIndex + match[0].length\n  }\n  parts.push({ kind: \"text\", text: input.slice(lastIndex) })\n\n  return parts\n}\n\nexport const serializeNode = (node: Node, root?: HTMLElement | null): string => {\n  if (node.nodeType === Node.TEXT_NODE) {\n    const parentElement = (node.parentNode as HTMLElement | null) ?? null\n\n    if (parentElement?.dataset?.placeholder === \"true\") {\n      return \"\"\n    }\n\n    const text = (node.textContent ?? \"\").replace(/\\u00a0/g, \" \").replace(/\\u200b/g, \"\")\n\n    return text\n  }\n\n  if (node.nodeType === Node.ELEMENT_NODE) {\n    const element = node as HTMLElement\n\n    if (element.dataset.placeholder === \"true\") {\n      return \"\"\n    }\n\n    if (element.dataset.token) {\n      const syntax: TagTokenSyntax = element.dataset.tokenSyntax === \"single\" ? \"single\" : \"double\"\n\n      return serializeToken(element.dataset.token, syntax)\n    }\n\n    const tagName = element.tagName\n\n    if (tagName === \"BR\") return \"\\n\"\n\n    let result = \"\"\n    element.childNodes.forEach((child) => {\n      result += serializeNode(child, root)\n    })\n\n    if (tagName === \"DIV\" && root && node !== root) {\n      result += \"\\n\"\n    }\n\n    return result\n  }\n\n  if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n    let result = \"\"\n    node.childNodes.forEach((child) => {\n      result += serializeNode(child, root)\n    })\n\n    return result\n  }\n\n  return \"\"\n}\n\nexport const computeCaretIndex = (editor: HTMLElement | null, fallbackLength: number): number => {\n  if (!editor) return fallbackLength\n\n  const selection = window.getSelection()\n\n  if (!selection || selection.rangeCount === 0) return fallbackLength\n\n  const range = selection.getRangeAt(0)\n\n  if (!editor.contains(range.startContainer)) return fallbackLength\n\n  const preRange = range.cloneRange()\n  preRange.selectNodeContents(editor)\n  preRange.setEnd(range.startContainer, range.startOffset)\n  const fragment = preRange.cloneContents()\n\n  return serializeNode(fragment as unknown as Node, editor).length\n}\n\nexport const findTokenElement = (node: ChildNode | null | undefined): HTMLElement | null => {\n  if (!node) return null\n\n  if (node.nodeType === Node.ELEMENT_NODE) {\n    const element = node as HTMLElement\n\n    if (element.dataset.token) return element\n  }\n\n  return null\n}\n\nconst isPlaceholderElement = (node: ChildNode | null | undefined): node is HTMLElement =>\n  !!node &&\n  node.nodeType === Node.ELEMENT_NODE &&\n  (node as HTMLElement).dataset?.placeholder === \"true\"\n\nconst isSkippableNode = (node: ChildNode | null | undefined): boolean => {\n  if (!node) return false\n\n  if (node.nodeType === Node.COMMENT_NODE) return true\n\n  if (isPlaceholderElement(node)) return true\n\n  if (node.nodeType === Node.TEXT_NODE) {\n    const cleaned = (node.textContent ?? \"\").replace(/\\u200b/g, \"\")\n    const parentElement = (node.parentNode as HTMLElement | null) ?? null\n\n    if (isPlaceholderElement(parentElement)) return true\n\n    return !cleaned.trim()\n  }\n\n  return false\n}\n\nconst findTokenInSiblings = (\n  siblings: ChildNode[],\n  index: number,\n  direction: \"previous\" | \"next\",\n) => {\n  let cursor = index\n  while (cursor >= 0 && cursor < siblings.length) {\n    const candidate = siblings[cursor]\n    const token = findTokenElement(candidate)\n\n    if (token) return token\n\n    if (isSkippableNode(candidate)) {\n      cursor += direction === \"previous\" ? -1 : 1\n      continue\n    }\n\n    return null\n  }\n\n  return null\n}\n\nexport const findAdjacentToken = (\n  selection: Selection,\n  direction: \"previous\" | \"next\",\n): HTMLElement | null => {\n  const range = selection.getRangeAt(0)\n  const { startContainer, startOffset } = range\n\n  if (startContainer.nodeType === Node.TEXT_NODE) {\n    const parent = startContainer.parentNode\n\n    if (!parent) return null\n\n    const siblings = Array.from(parent.childNodes)\n    const currentNode = startContainer as ChildNode\n    const index = siblings.indexOf(currentNode)\n    const textLength = startContainer.textContent?.length ?? 0\n    const atBoundary = direction === \"previous\" ? startOffset === 0 : startOffset === textLength\n\n    // Comment anchors and whitespace-only nodes aren't part of the serialized value, so skip over them\n    if (isSkippableNode(currentNode) || atBoundary) {\n      const startIndex = direction === \"previous\" ? index - 1 : index + 1\n\n      return findTokenInSiblings(siblings, startIndex, direction)\n    }\n\n    return null\n  }\n\n  if (startContainer.nodeType === Node.ELEMENT_NODE) {\n    const element = startContainer as HTMLElement\n    const siblings = Array.from(element.childNodes)\n    const startIndex = direction === \"previous\" ? startOffset - 1 : startOffset\n\n    return findTokenInSiblings(siblings, startIndex, direction)\n  }\n\n  return null\n}\n\nexport const describeTokenLength = (tokenNode: HTMLElement): number => {\n  const token = tokenNode.dataset.token ?? \"\"\n  const syntax: TagTokenSyntax = tokenNode.dataset.tokenSyntax === \"single\" ? \"single\" : \"double\"\n\n  return serializeToken(token, syntax).length\n}\n","export var HOOKS = [\n    \"onChange\",\n    \"onClose\",\n    \"onDayCreate\",\n    \"onDestroy\",\n    \"onKeyDown\",\n    \"onMonthChange\",\n    \"onOpen\",\n    \"onParseConfig\",\n    \"onReady\",\n    \"onValueUpdate\",\n    \"onYearChange\",\n    \"onPreCalendarPosition\",\n];\nexport var defaults = {\n    _disable: [],\n    allowInput: false,\n    allowInvalidPreload: false,\n    altFormat: \"F j, Y\",\n    altInput: false,\n    altInputClass: \"form-control input\",\n    animate: typeof window === \"object\" &&\n        window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n    ariaDateFormat: \"F j, Y\",\n    autoFillDefaultTime: true,\n    clickOpens: true,\n    closeOnSelect: true,\n    conjunction: \", \",\n    dateFormat: \"Y-m-d\",\n    defaultHour: 12,\n    defaultMinute: 0,\n    defaultSeconds: 0,\n    disable: [],\n    disableMobile: false,\n    enableSeconds: false,\n    enableTime: false,\n    errorHandler: function (err) {\n        return typeof console !== \"undefined\" && console.warn(err);\n    },\n    getWeek: function (givenDate) {\n        var date = new Date(givenDate.getTime());\n        date.setHours(0, 0, 0, 0);\n        date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n        var week1 = new Date(date.getFullYear(), 0, 4);\n        return (1 +\n            Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n                3 +\n                ((week1.getDay() + 6) % 7)) /\n                7));\n    },\n    hourIncrement: 1,\n    ignoredFocusElements: [],\n    inline: false,\n    locale: \"default\",\n    minuteIncrement: 5,\n    mode: \"single\",\n    monthSelectorType: \"dropdown\",\n    nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n    noCalendar: false,\n    now: new Date(),\n    onChange: [],\n    onClose: [],\n    onDayCreate: [],\n    onDestroy: [],\n    onKeyDown: [],\n    onMonthChange: [],\n    onOpen: [],\n    onParseConfig: [],\n    onReady: [],\n    onValueUpdate: [],\n    onYearChange: [],\n    onPreCalendarPosition: [],\n    plugins: [],\n    position: \"auto\",\n    positionElement: undefined,\n    prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n    shorthandCurrentMonth: false,\n    showMonths: 1,\n    static: false,\n    time_24hr: false,\n    weekNumbers: false,\n    wrap: false,\n};\n","export var english = {\n    weekdays: {\n        shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n        longhand: [\n            \"Sunday\",\n            \"Monday\",\n            \"Tuesday\",\n            \"Wednesday\",\n            \"Thursday\",\n            \"Friday\",\n            \"Saturday\",\n        ],\n    },\n    months: {\n        shorthand: [\n            \"Jan\",\n            \"Feb\",\n            \"Mar\",\n            \"Apr\",\n            \"May\",\n            \"Jun\",\n            \"Jul\",\n            \"Aug\",\n            \"Sep\",\n            \"Oct\",\n            \"Nov\",\n            \"Dec\",\n        ],\n        longhand: [\n            \"January\",\n            \"February\",\n            \"March\",\n            \"April\",\n            \"May\",\n            \"June\",\n            \"July\",\n            \"August\",\n            \"September\",\n            \"October\",\n            \"November\",\n            \"December\",\n        ],\n    },\n    daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n    firstDayOfWeek: 0,\n    ordinal: function (nth) {\n        var s = nth % 100;\n        if (s > 3 && s < 21)\n            return \"th\";\n        switch (s % 10) {\n            case 1:\n                return \"st\";\n            case 2:\n                return \"nd\";\n            case 3:\n                return \"rd\";\n            default:\n                return \"th\";\n        }\n    },\n    rangeSeparator: \" to \",\n    weekAbbreviation: \"Wk\",\n    scrollTitle: \"Scroll to increment\",\n    toggleTitle: \"Click to toggle\",\n    amPM: [\"AM\", \"PM\"],\n    yearAriaLabel: \"Year\",\n    monthAriaLabel: \"Month\",\n    hourAriaLabel: \"Hour\",\n    minuteAriaLabel: \"Minute\",\n    time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n    if (length === void 0) { length = 2; }\n    return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n    var t;\n    return function () {\n        var _this = this;\n        var args = arguments;\n        clearTimeout(t);\n        t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n    };\n}\nexport var arrayify = function (obj) {\n    return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n    if (bool === true)\n        return elem.classList.add(className);\n    elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n    var e = window.document.createElement(tag);\n    className = className || \"\";\n    content = content || \"\";\n    e.className = className;\n    if (content !== undefined)\n        e.textContent = content;\n    return e;\n}\nexport function clearNode(node) {\n    while (node.firstChild)\n        node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n    if (condition(node))\n        return node;\n    else if (node.parentNode)\n        return findParent(node.parentNode, condition);\n    return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n    var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n    if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n        numInput.type = \"number\";\n    }\n    else {\n        numInput.type = \"text\";\n        numInput.pattern = \"\\\\d*\";\n    }\n    if (opts !== undefined)\n        for (var key in opts)\n            numInput.setAttribute(key, opts[key]);\n    wrapper.appendChild(numInput);\n    wrapper.appendChild(arrowUp);\n    wrapper.appendChild(arrowDown);\n    return wrapper;\n}\nexport function getEventTarget(event) {\n    try {\n        if (typeof event.composedPath === \"function\") {\n            var path = event.composedPath();\n            return path[0];\n        }\n        return event.target;\n    }\n    catch (error) {\n        return event.target;\n    }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n    D: doNothing,\n    F: function (dateObj, monthName, locale) {\n        dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n    },\n    G: function (dateObj, hour) {\n        dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n    },\n    H: function (dateObj, hour) {\n        dateObj.setHours(parseFloat(hour));\n    },\n    J: function (dateObj, day) {\n        dateObj.setDate(parseFloat(day));\n    },\n    K: function (dateObj, amPM, locale) {\n        dateObj.setHours((dateObj.getHours() % 12) +\n            12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n    },\n    M: function (dateObj, shortMonth, locale) {\n        dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n    },\n    S: function (dateObj, seconds) {\n        dateObj.setSeconds(parseFloat(seconds));\n    },\n    U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n    W: function (dateObj, weekNum, locale) {\n        var weekNumber = parseInt(weekNum);\n        var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n        date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n        return date;\n    },\n    Y: function (dateObj, year) {\n        dateObj.setFullYear(parseFloat(year));\n    },\n    Z: function (_, ISODate) { return new Date(ISODate); },\n    d: function (dateObj, day) {\n        dateObj.setDate(parseFloat(day));\n    },\n    h: function (dateObj, hour) {\n        dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n    },\n    i: function (dateObj, minutes) {\n        dateObj.setMinutes(parseFloat(minutes));\n    },\n    j: function (dateObj, day) {\n        dateObj.setDate(parseFloat(day));\n    },\n    l: doNothing,\n    m: function (dateObj, month) {\n        dateObj.setMonth(parseFloat(month) - 1);\n    },\n    n: function (dateObj, month) {\n        dateObj.setMonth(parseFloat(month) - 1);\n    },\n    s: function (dateObj, seconds) {\n        dateObj.setSeconds(parseFloat(seconds));\n    },\n    u: function (_, unixMillSeconds) {\n        return new Date(parseFloat(unixMillSeconds));\n    },\n    w: doNothing,\n    y: function (dateObj, year) {\n        dateObj.setFullYear(2000 + parseFloat(year));\n    },\n};\nexport var tokenRegex = {\n    D: \"\",\n    F: \"\",\n    G: \"(\\\\d\\\\d|\\\\d)\",\n    H: \"(\\\\d\\\\d|\\\\d)\",\n    J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n    K: \"\",\n    M: \"\",\n    S: \"(\\\\d\\\\d|\\\\d)\",\n    U: \"(.+)\",\n    W: \"(\\\\d\\\\d|\\\\d)\",\n    Y: \"(\\\\d{4})\",\n    Z: \"(.+)\",\n    d: \"(\\\\d\\\\d|\\\\d)\",\n    h: \"(\\\\d\\\\d|\\\\d)\",\n    i: \"(\\\\d\\\\d|\\\\d)\",\n    j: \"(\\\\d\\\\d|\\\\d)\",\n    l: \"\",\n    m: \"(\\\\d\\\\d|\\\\d)\",\n    n: \"(\\\\d\\\\d|\\\\d)\",\n    s: \"(\\\\d\\\\d|\\\\d)\",\n    u: \"(.+)\",\n    w: \"(\\\\d\\\\d|\\\\d)\",\n    y: \"(\\\\d{2})\",\n};\nexport var formats = {\n    Z: function (date) { return date.toISOString(); },\n    D: function (date, locale, options) {\n        return locale.weekdays.shorthand[formats.w(date, locale, options)];\n    },\n    F: function (date, locale, options) {\n        return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n    },\n    G: function (date, locale, options) {\n        return pad(formats.h(date, locale, options));\n    },\n    H: function (date) { return pad(date.getHours()); },\n    J: function (date, locale) {\n        return locale.ordinal !== undefined\n            ? date.getDate() + locale.ordinal(date.getDate())\n            : date.getDate();\n    },\n    K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n    M: function (date, locale) {\n        return monthToStr(date.getMonth(), true, locale);\n    },\n    S: function (date) { return pad(date.getSeconds()); },\n    U: function (date) { return date.getTime() / 1000; },\n    W: function (date, _, options) {\n        return options.getWeek(date);\n    },\n    Y: function (date) { return pad(date.getFullYear(), 4); },\n    d: function (date) { return pad(date.getDate()); },\n    h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n    i: function (date) { return pad(date.getMinutes()); },\n    j: function (date) { return date.getDate(); },\n    l: function (date, locale) {\n        return locale.weekdays.longhand[date.getDay()];\n    },\n    m: function (date) { return pad(date.getMonth() + 1); },\n    n: function (date) { return date.getMonth() + 1; },\n    s: function (date) { return date.getSeconds(); },\n    u: function (date) { return date.getTime(); },\n    w: function (date) { return date.getDay(); },\n    y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n    var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n    return function (dateObj, frmt, overrideLocale) {\n        var locale = overrideLocale || l10n;\n        if (config.formatDate !== undefined && !isMobile) {\n            return config.formatDate(dateObj, frmt, locale);\n        }\n        return frmt\n            .split(\"\")\n            .map(function (c, i, arr) {\n            return formats[c] && arr[i - 1] !== \"\\\\\"\n                ? formats[c](dateObj, locale, config)\n                : c !== \"\\\\\"\n                    ? c\n                    : \"\";\n        })\n            .join(\"\");\n    };\n};\nexport var createDateParser = function (_a) {\n    var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n    return function (date, givenFormat, timeless, customLocale) {\n        if (date !== 0 && !date)\n            return undefined;\n        var locale = customLocale || l10n;\n        var parsedDate;\n        var dateOrig = date;\n        if (date instanceof Date)\n            parsedDate = new Date(date.getTime());\n        else if (typeof date !== \"string\" &&\n            date.toFixed !== undefined)\n            parsedDate = new Date(date);\n        else if (typeof date === \"string\") {\n            var format = givenFormat || (config || defaults).dateFormat;\n            var datestr = String(date).trim();\n            if (datestr === \"today\") {\n                parsedDate = new Date();\n                timeless = true;\n            }\n            else if (config && config.parseDate) {\n                parsedDate = config.parseDate(date, format);\n            }\n            else if (/Z$/.test(datestr) ||\n                /GMT$/.test(datestr)) {\n                parsedDate = new Date(date);\n            }\n            else {\n                var matched = void 0, ops = [];\n                for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n                    var token = format[i];\n                    var isBackSlash = token === \"\\\\\";\n                    var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n                    if (tokenRegex[token] && !escaped) {\n                        regexStr += tokenRegex[token];\n                        var match = new RegExp(regexStr).exec(date);\n                        if (match && (matched = true)) {\n                            ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n                                fn: revFormat[token],\n                                val: match[++matchIndex],\n                            });\n                        }\n                    }\n                    else if (!isBackSlash)\n                        regexStr += \".\";\n                }\n                parsedDate =\n                    !config || !config.noCalendar\n                        ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n                        : new Date(new Date().setHours(0, 0, 0, 0));\n                ops.forEach(function (_a) {\n                    var fn = _a.fn, val = _a.val;\n                    return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n                });\n                parsedDate = matched ? parsedDate : undefined;\n            }\n        }\n        if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n            config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n            return undefined;\n        }\n        if (timeless === true)\n            parsedDate.setHours(0, 0, 0, 0);\n        return parsedDate;\n    };\n};\nexport function compareDates(date1, date2, timeless) {\n    if (timeless === void 0) { timeless = true; }\n    if (timeless !== false) {\n        return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n            new Date(date2.getTime()).setHours(0, 0, 0, 0));\n    }\n    return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n    return (3600 * (date1.getHours() - date2.getHours()) +\n        60 * (date1.getMinutes() - date2.getMinutes()) +\n        date1.getSeconds() -\n        date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n    return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n    return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n    var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n    return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n    DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n    var hours = config.defaultHour;\n    var minutes = config.defaultMinute;\n    var seconds = config.defaultSeconds;\n    if (config.minDate !== undefined) {\n        var minHour = config.minDate.getHours();\n        var minMinutes = config.minDate.getMinutes();\n        var minSeconds = config.minDate.getSeconds();\n        if (hours < minHour) {\n            hours = minHour;\n        }\n        if (hours === minHour && minutes < minMinutes) {\n            minutes = minMinutes;\n        }\n        if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n            seconds = config.minDate.getSeconds();\n    }\n    if (config.maxDate !== undefined) {\n        var maxHr = config.maxDate.getHours();\n        var maxMinutes = config.maxDate.getMinutes();\n        hours = Math.min(hours, maxHr);\n        if (hours === maxHr)\n            minutes = Math.min(maxMinutes, minutes);\n        if (hours === maxHr && minutes === maxMinutes)\n            seconds = config.maxDate.getSeconds();\n    }\n    return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n    Object.assign = function (target) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!target) {\n            throw TypeError(\"Cannot convert undefined or null to object\");\n        }\n        var _loop_1 = function (source) {\n            if (source) {\n                Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n            }\n        };\n        for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n            var source = args_1[_a];\n            _loop_1(source);\n        }\n        return target;\n    };\n}\n","var __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n            r[k] = a[j];\n    return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n    var self = {\n        config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n        l10n: English,\n    };\n    self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n    self._handlers = [];\n    self.pluginElements = [];\n    self.loadedPlugins = [];\n    self._bind = bind;\n    self._setHoursFromDate = setHoursFromDate;\n    self._positionCalendar = positionCalendar;\n    self.changeMonth = changeMonth;\n    self.changeYear = changeYear;\n    self.clear = clear;\n    self.close = close;\n    self.onMouseOver = onMouseOver;\n    self._createElement = createElement;\n    self.createDay = createDay;\n    self.destroy = destroy;\n    self.isEnabled = isEnabled;\n    self.jumpToDate = jumpToDate;\n    self.updateValue = updateValue;\n    self.open = open;\n    self.redraw = redraw;\n    self.set = set;\n    self.setDate = setDate;\n    self.toggle = toggle;\n    function setupHelperFunctions() {\n        self.utils = {\n            getDaysInMonth: function (month, yr) {\n                if (month === void 0) { month = self.currentMonth; }\n                if (yr === void 0) { yr = self.currentYear; }\n                if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n                    return 29;\n                return self.l10n.daysInMonth[month];\n            },\n        };\n    }\n    function init() {\n        self.element = self.input = element;\n        self.isOpen = false;\n        parseConfig();\n        setupLocale();\n        setupInputs();\n        setupDates();\n        setupHelperFunctions();\n        if (!self.isMobile)\n            build();\n        bindEvents();\n        if (self.selectedDates.length || self.config.noCalendar) {\n            if (self.config.enableTime) {\n                setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n            }\n            updateValue(false);\n        }\n        setCalendarWidth();\n        var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n        if (!self.isMobile && isSafari) {\n            positionCalendar();\n        }\n        triggerEvent(\"onReady\");\n    }\n    function getClosestActiveElement() {\n        var _a;\n        return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n            .activeElement || document.activeElement);\n    }\n    function bindToInstance(fn) {\n        return fn.bind(self);\n    }\n    function setCalendarWidth() {\n        var config = self.config;\n        if (config.weekNumbers === false && config.showMonths === 1) {\n            return;\n        }\n        else if (config.noCalendar !== true) {\n            window.requestAnimationFrame(function () {\n                if (self.calendarContainer !== undefined) {\n                    self.calendarContainer.style.visibility = \"hidden\";\n                    self.calendarContainer.style.display = \"block\";\n                }\n                if (self.daysContainer !== undefined) {\n                    var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n                    self.daysContainer.style.width = daysWidth + \"px\";\n                    self.calendarContainer.style.width =\n                        daysWidth +\n                            (self.weekWrapper !== undefined\n                                ? self.weekWrapper.offsetWidth\n                                : 0) +\n                            \"px\";\n                    self.calendarContainer.style.removeProperty(\"visibility\");\n                    self.calendarContainer.style.removeProperty(\"display\");\n                }\n            });\n        }\n    }\n    function updateTime(e) {\n        if (self.selectedDates.length === 0) {\n            var defaultDate = self.config.minDate === undefined ||\n                compareDates(new Date(), self.config.minDate) >= 0\n                ? new Date()\n                : new Date(self.config.minDate.getTime());\n            var defaults = getDefaultHours(self.config);\n            defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n            self.selectedDates = [defaultDate];\n            self.latestSelectedDateObj = defaultDate;\n        }\n        if (e !== undefined && e.type !== \"blur\") {\n            timeWrapper(e);\n        }\n        var prevValue = self._input.value;\n        setHoursFromInputs();\n        updateValue();\n        if (self._input.value !== prevValue) {\n            self._debouncedChange();\n        }\n    }\n    function ampm2military(hour, amPM) {\n        return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n    }\n    function military2ampm(hour) {\n        switch (hour % 24) {\n            case 0:\n            case 12:\n                return 12;\n            default:\n                return hour % 12;\n        }\n    }\n    function setHoursFromInputs() {\n        if (self.hourElement === undefined || self.minuteElement === undefined)\n            return;\n        var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n            ? (parseInt(self.secondElement.value, 10) || 0) % 60\n            : 0;\n        if (self.amPM !== undefined) {\n            hours = ampm2military(hours, self.amPM.textContent);\n        }\n        var limitMinHours = self.config.minTime !== undefined ||\n            (self.config.minDate &&\n                self.minDateHasTime &&\n                self.latestSelectedDateObj &&\n                compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n                    0);\n        var limitMaxHours = self.config.maxTime !== undefined ||\n            (self.config.maxDate &&\n                self.maxDateHasTime &&\n                self.latestSelectedDateObj &&\n                compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n                    0);\n        if (self.config.maxTime !== undefined &&\n            self.config.minTime !== undefined &&\n            self.config.minTime > self.config.maxTime) {\n            var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n            var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n            var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n            if (currentTime > maxBound && currentTime < minBound) {\n                var result = parseSeconds(minBound);\n                hours = result[0];\n                minutes = result[1];\n                seconds = result[2];\n            }\n        }\n        else {\n            if (limitMaxHours) {\n                var maxTime = self.config.maxTime !== undefined\n                    ? self.config.maxTime\n                    : self.config.maxDate;\n                hours = Math.min(hours, maxTime.getHours());\n                if (hours === maxTime.getHours())\n                    minutes = Math.min(minutes, maxTime.getMinutes());\n                if (minutes === maxTime.getMinutes())\n                    seconds = Math.min(seconds, maxTime.getSeconds());\n            }\n            if (limitMinHours) {\n                var minTime = self.config.minTime !== undefined\n                    ? self.config.minTime\n                    : self.config.minDate;\n                hours = Math.max(hours, minTime.getHours());\n                if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n                    minutes = minTime.getMinutes();\n                if (minutes === minTime.getMinutes())\n                    seconds = Math.max(seconds, minTime.getSeconds());\n            }\n        }\n        setHours(hours, minutes, seconds);\n    }\n    function setHoursFromDate(dateObj) {\n        var date = dateObj || self.latestSelectedDateObj;\n        if (date && date instanceof Date) {\n            setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n        }\n    }\n    function setHours(hours, minutes, seconds) {\n        if (self.latestSelectedDateObj !== undefined) {\n            self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n        }\n        if (!self.hourElement || !self.minuteElement || self.isMobile)\n            return;\n        self.hourElement.value = pad(!self.config.time_24hr\n            ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n            : hours);\n        self.minuteElement.value = pad(minutes);\n        if (self.amPM !== undefined)\n            self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n        if (self.secondElement !== undefined)\n            self.secondElement.value = pad(seconds);\n    }\n    function onYearInput(event) {\n        var eventTarget = getEventTarget(event);\n        var year = parseInt(eventTarget.value) + (event.delta || 0);\n        if (year / 1000 > 1 ||\n            (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n            changeYear(year);\n        }\n    }\n    function bind(element, event, handler, options) {\n        if (event instanceof Array)\n            return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n        if (element instanceof Array)\n            return element.forEach(function (el) { return bind(el, event, handler, options); });\n        element.addEventListener(event, handler, options);\n        self._handlers.push({\n            remove: function () { return element.removeEventListener(event, handler, options); },\n        });\n    }\n    function triggerChange() {\n        triggerEvent(\"onChange\");\n    }\n    function bindEvents() {\n        if (self.config.wrap) {\n            [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n                Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n                    return bind(el, \"click\", self[evt]);\n                });\n            });\n        }\n        if (self.isMobile) {\n            setupMobile();\n            return;\n        }\n        var debouncedResize = debounce(onResize, 50);\n        self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n        if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n            bind(self.daysContainer, \"mouseover\", function (e) {\n                if (self.config.mode === \"range\")\n                    onMouseOver(getEventTarget(e));\n            });\n        bind(self._input, \"keydown\", onKeyDown);\n        if (self.calendarContainer !== undefined) {\n            bind(self.calendarContainer, \"keydown\", onKeyDown);\n        }\n        if (!self.config.inline && !self.config.static)\n            bind(window, \"resize\", debouncedResize);\n        if (window.ontouchstart !== undefined)\n            bind(window.document, \"touchstart\", documentClick);\n        else\n            bind(window.document, \"mousedown\", documentClick);\n        bind(window.document, \"focus\", documentClick, { capture: true });\n        if (self.config.clickOpens === true) {\n            bind(self._input, \"focus\", self.open);\n            bind(self._input, \"click\", self.open);\n        }\n        if (self.daysContainer !== undefined) {\n            bind(self.monthNav, \"click\", onMonthNavClick);\n            bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n            bind(self.daysContainer, \"click\", selectDate);\n        }\n        if (self.timeContainer !== undefined &&\n            self.minuteElement !== undefined &&\n            self.hourElement !== undefined) {\n            var selText = function (e) {\n                return getEventTarget(e).select();\n            };\n            bind(self.timeContainer, [\"increment\"], updateTime);\n            bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n            bind(self.timeContainer, \"click\", timeIncrement);\n            bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n            if (self.secondElement !== undefined)\n                bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n            if (self.amPM !== undefined) {\n                bind(self.amPM, \"click\", function (e) {\n                    updateTime(e);\n                });\n            }\n        }\n        if (self.config.allowInput) {\n            bind(self._input, \"blur\", onBlur);\n        }\n    }\n    function jumpToDate(jumpDate, triggerChange) {\n        var jumpTo = jumpDate !== undefined\n            ? self.parseDate(jumpDate)\n            : self.latestSelectedDateObj ||\n                (self.config.minDate && self.config.minDate > self.now\n                    ? self.config.minDate\n                    : self.config.maxDate && self.config.maxDate < self.now\n                        ? self.config.maxDate\n                        : self.now);\n        var oldYear = self.currentYear;\n        var oldMonth = self.currentMonth;\n        try {\n            if (jumpTo !== undefined) {\n                self.currentYear = jumpTo.getFullYear();\n                self.currentMonth = jumpTo.getMonth();\n            }\n        }\n        catch (e) {\n            e.message = \"Invalid date supplied: \" + jumpTo;\n            self.config.errorHandler(e);\n        }\n        if (triggerChange && self.currentYear !== oldYear) {\n            triggerEvent(\"onYearChange\");\n            buildMonthSwitch();\n        }\n        if (triggerChange &&\n            (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n            triggerEvent(\"onMonthChange\");\n        }\n        self.redraw();\n    }\n    function timeIncrement(e) {\n        var eventTarget = getEventTarget(e);\n        if (~eventTarget.className.indexOf(\"arrow\"))\n            incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n    }\n    function incrementNumInput(e, delta, inputElem) {\n        var target = e && getEventTarget(e);\n        var input = inputElem ||\n            (target && target.parentNode && target.parentNode.firstChild);\n        var event = createEvent(\"increment\");\n        event.delta = delta;\n        input && input.dispatchEvent(event);\n    }\n    function build() {\n        var fragment = window.document.createDocumentFragment();\n        self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n        self.calendarContainer.tabIndex = -1;\n        if (!self.config.noCalendar) {\n            fragment.appendChild(buildMonthNav());\n            self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n            if (self.config.weekNumbers) {\n                var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n                self.innerContainer.appendChild(weekWrapper);\n                self.weekNumbers = weekNumbers;\n                self.weekWrapper = weekWrapper;\n            }\n            self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n            self.rContainer.appendChild(buildWeekdays());\n            if (!self.daysContainer) {\n                self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n                self.daysContainer.tabIndex = -1;\n            }\n            buildDays();\n            self.rContainer.appendChild(self.daysContainer);\n            self.innerContainer.appendChild(self.rContainer);\n            fragment.appendChild(self.innerContainer);\n        }\n        if (self.config.enableTime) {\n            fragment.appendChild(buildTime());\n        }\n        toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n        toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n        toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n        self.calendarContainer.appendChild(fragment);\n        var customAppend = self.config.appendTo !== undefined &&\n            self.config.appendTo.nodeType !== undefined;\n        if (self.config.inline || self.config.static) {\n            self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n            if (self.config.inline) {\n                if (!customAppend && self.element.parentNode)\n                    self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n                else if (self.config.appendTo !== undefined)\n                    self.config.appendTo.appendChild(self.calendarContainer);\n            }\n            if (self.config.static) {\n                var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n                if (self.element.parentNode)\n                    self.element.parentNode.insertBefore(wrapper, self.element);\n                wrapper.appendChild(self.element);\n                if (self.altInput)\n                    wrapper.appendChild(self.altInput);\n                wrapper.appendChild(self.calendarContainer);\n            }\n        }\n        if (!self.config.static && !self.config.inline)\n            (self.config.appendTo !== undefined\n                ? self.config.appendTo\n                : window.document.body).appendChild(self.calendarContainer);\n    }\n    function createDay(className, date, _dayNumber, i) {\n        var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n        dayElement.dateObj = date;\n        dayElement.$i = i;\n        dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n        if (className.indexOf(\"hidden\") === -1 &&\n            compareDates(date, self.now) === 0) {\n            self.todayDateElem = dayElement;\n            dayElement.classList.add(\"today\");\n            dayElement.setAttribute(\"aria-current\", \"date\");\n        }\n        if (dateIsEnabled) {\n            dayElement.tabIndex = -1;\n            if (isDateSelected(date)) {\n                dayElement.classList.add(\"selected\");\n                self.selectedDateElem = dayElement;\n                if (self.config.mode === \"range\") {\n                    toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n                        compareDates(date, self.selectedDates[0], true) === 0);\n                    toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n                        compareDates(date, self.selectedDates[1], true) === 0);\n                    if (className === \"nextMonthDay\")\n                        dayElement.classList.add(\"inRange\");\n                }\n            }\n        }\n        else {\n            dayElement.classList.add(\"flatpickr-disabled\");\n        }\n        if (self.config.mode === \"range\") {\n            if (isDateInRange(date) && !isDateSelected(date))\n                dayElement.classList.add(\"inRange\");\n        }\n        if (self.weekNumbers &&\n            self.config.showMonths === 1 &&\n            className !== \"prevMonthDay\" &&\n            i % 7 === 6) {\n            self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n        }\n        triggerEvent(\"onDayCreate\", dayElement);\n        return dayElement;\n    }\n    function focusOnDayElem(targetNode) {\n        targetNode.focus();\n        if (self.config.mode === \"range\")\n            onMouseOver(targetNode);\n    }\n    function getFirstAvailableDay(delta) {\n        var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n        var endMonth = delta > 0 ? self.config.showMonths : -1;\n        for (var m = startMonth; m != endMonth; m += delta) {\n            var month = self.daysContainer.children[m];\n            var startIndex = delta > 0 ? 0 : month.children.length - 1;\n            var endIndex = delta > 0 ? month.children.length : -1;\n            for (var i = startIndex; i != endIndex; i += delta) {\n                var c = month.children[i];\n                if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n                    return c;\n            }\n        }\n        return undefined;\n    }\n    function getNextAvailableDay(current, delta) {\n        var givenMonth = current.className.indexOf(\"Month\") === -1\n            ? current.dateObj.getMonth()\n            : self.currentMonth;\n        var endMonth = delta > 0 ? self.config.showMonths : -1;\n        var loopDelta = delta > 0 ? 1 : -1;\n        for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n            var month = self.daysContainer.children[m];\n            var startIndex = givenMonth - self.currentMonth === m\n                ? current.$i + delta\n                : delta < 0\n                    ? month.children.length - 1\n                    : 0;\n            var numMonthDays = month.children.length;\n            for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n                var c = month.children[i];\n                if (c.className.indexOf(\"hidden\") === -1 &&\n                    isEnabled(c.dateObj) &&\n                    Math.abs(current.$i - i) >= Math.abs(delta))\n                    return focusOnDayElem(c);\n            }\n        }\n        self.changeMonth(loopDelta);\n        focusOnDay(getFirstAvailableDay(loopDelta), 0);\n        return undefined;\n    }\n    function focusOnDay(current, offset) {\n        var activeElement = getClosestActiveElement();\n        var dayFocused = isInView(activeElement || document.body);\n        var startElem = current !== undefined\n            ? current\n            : dayFocused\n                ? activeElement\n                : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n                    ? self.selectedDateElem\n                    : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n                        ? self.todayDateElem\n                        : getFirstAvailableDay(offset > 0 ? 1 : -1);\n        if (startElem === undefined) {\n            self._input.focus();\n        }\n        else if (!dayFocused) {\n            focusOnDayElem(startElem);\n        }\n        else {\n            getNextAvailableDay(startElem, offset);\n        }\n    }\n    function buildMonthDays(year, month) {\n        var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n        var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n        var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n        var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n        for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n            days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n        }\n        for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n            days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n        }\n        for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n            (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n            days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n        }\n        var dayContainer = createElement(\"div\", \"dayContainer\");\n        dayContainer.appendChild(days);\n        return dayContainer;\n    }\n    function buildDays() {\n        if (self.daysContainer === undefined) {\n            return;\n        }\n        clearNode(self.daysContainer);\n        if (self.weekNumbers)\n            clearNode(self.weekNumbers);\n        var frag = document.createDocumentFragment();\n        for (var i = 0; i < self.config.showMonths; i++) {\n            var d = new Date(self.currentYear, self.currentMonth, 1);\n            d.setMonth(self.currentMonth + i);\n            frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n        }\n        self.daysContainer.appendChild(frag);\n        self.days = self.daysContainer.firstChild;\n        if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n            onMouseOver();\n        }\n    }\n    function buildMonthSwitch() {\n        if (self.config.showMonths > 1 ||\n            self.config.monthSelectorType !== \"dropdown\")\n            return;\n        var shouldBuildMonth = function (month) {\n            if (self.config.minDate !== undefined &&\n                self.currentYear === self.config.minDate.getFullYear() &&\n                month < self.config.minDate.getMonth()) {\n                return false;\n            }\n            return !(self.config.maxDate !== undefined &&\n                self.currentYear === self.config.maxDate.getFullYear() &&\n                month > self.config.maxDate.getMonth());\n        };\n        self.monthsDropdownContainer.tabIndex = -1;\n        self.monthsDropdownContainer.innerHTML = \"\";\n        for (var i = 0; i < 12; i++) {\n            if (!shouldBuildMonth(i))\n                continue;\n            var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n            month.value = new Date(self.currentYear, i).getMonth().toString();\n            month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n            month.tabIndex = -1;\n            if (self.currentMonth === i) {\n                month.selected = true;\n            }\n            self.monthsDropdownContainer.appendChild(month);\n        }\n    }\n    function buildMonth() {\n        var container = createElement(\"div\", \"flatpickr-month\");\n        var monthNavFragment = window.document.createDocumentFragment();\n        var monthElement;\n        if (self.config.showMonths > 1 ||\n            self.config.monthSelectorType === \"static\") {\n            monthElement = createElement(\"span\", \"cur-month\");\n        }\n        else {\n            self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n            self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n            bind(self.monthsDropdownContainer, \"change\", function (e) {\n                var target = getEventTarget(e);\n                var selectedMonth = parseInt(target.value, 10);\n                self.changeMonth(selectedMonth - self.currentMonth);\n                triggerEvent(\"onMonthChange\");\n            });\n            buildMonthSwitch();\n            monthElement = self.monthsDropdownContainer;\n        }\n        var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n        var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n        yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n        if (self.config.minDate) {\n            yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n        }\n        if (self.config.maxDate) {\n            yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n            yearElement.disabled =\n                !!self.config.minDate &&\n                    self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n        }\n        var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n        currentMonth.appendChild(monthElement);\n        currentMonth.appendChild(yearInput);\n        monthNavFragment.appendChild(currentMonth);\n        container.appendChild(monthNavFragment);\n        return {\n            container: container,\n            yearElement: yearElement,\n            monthElement: monthElement,\n        };\n    }\n    function buildMonths() {\n        clearNode(self.monthNav);\n        self.monthNav.appendChild(self.prevMonthNav);\n        if (self.config.showMonths) {\n            self.yearElements = [];\n            self.monthElements = [];\n        }\n        for (var m = self.config.showMonths; m--;) {\n            var month = buildMonth();\n            self.yearElements.push(month.yearElement);\n            self.monthElements.push(month.monthElement);\n            self.monthNav.appendChild(month.container);\n        }\n        self.monthNav.appendChild(self.nextMonthNav);\n    }\n    function buildMonthNav() {\n        self.monthNav = createElement(\"div\", \"flatpickr-months\");\n        self.yearElements = [];\n        self.monthElements = [];\n        self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n        self.prevMonthNav.innerHTML = self.config.prevArrow;\n        self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n        self.nextMonthNav.innerHTML = self.config.nextArrow;\n        buildMonths();\n        Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n            get: function () { return self.__hidePrevMonthArrow; },\n            set: function (bool) {\n                if (self.__hidePrevMonthArrow !== bool) {\n                    toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n                    self.__hidePrevMonthArrow = bool;\n                }\n            },\n        });\n        Object.defineProperty(self, \"_hideNextMonthArrow\", {\n            get: function () { return self.__hideNextMonthArrow; },\n            set: function (bool) {\n                if (self.__hideNextMonthArrow !== bool) {\n                    toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n                    self.__hideNextMonthArrow = bool;\n                }\n            },\n        });\n        self.currentYearElement = self.yearElements[0];\n        updateNavigationCurrentMonth();\n        return self.monthNav;\n    }\n    function buildTime() {\n        self.calendarContainer.classList.add(\"hasTime\");\n        if (self.config.noCalendar)\n            self.calendarContainer.classList.add(\"noCalendar\");\n        var defaults = getDefaultHours(self.config);\n        self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n        self.timeContainer.tabIndex = -1;\n        var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n        var hourInput = createNumberInput(\"flatpickr-hour\", {\n            \"aria-label\": self.l10n.hourAriaLabel,\n        });\n        self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n        var minuteInput = createNumberInput(\"flatpickr-minute\", {\n            \"aria-label\": self.l10n.minuteAriaLabel,\n        });\n        self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n        self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n        self.hourElement.value = pad(self.latestSelectedDateObj\n            ? self.latestSelectedDateObj.getHours()\n            : self.config.time_24hr\n                ? defaults.hours\n                : military2ampm(defaults.hours));\n        self.minuteElement.value = pad(self.latestSelectedDateObj\n            ? self.latestSelectedDateObj.getMinutes()\n            : defaults.minutes);\n        self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n        self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n        self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n        self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n        self.hourElement.setAttribute(\"maxlength\", \"2\");\n        self.minuteElement.setAttribute(\"min\", \"0\");\n        self.minuteElement.setAttribute(\"max\", \"59\");\n        self.minuteElement.setAttribute(\"maxlength\", \"2\");\n        self.timeContainer.appendChild(hourInput);\n        self.timeContainer.appendChild(separator);\n        self.timeContainer.appendChild(minuteInput);\n        if (self.config.time_24hr)\n            self.timeContainer.classList.add(\"time24hr\");\n        if (self.config.enableSeconds) {\n            self.timeContainer.classList.add(\"hasSeconds\");\n            var secondInput = createNumberInput(\"flatpickr-second\");\n            self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n            self.secondElement.value = pad(self.latestSelectedDateObj\n                ? self.latestSelectedDateObj.getSeconds()\n                : defaults.seconds);\n            self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n            self.secondElement.setAttribute(\"min\", \"0\");\n            self.secondElement.setAttribute(\"max\", \"59\");\n            self.secondElement.setAttribute(\"maxlength\", \"2\");\n            self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n            self.timeContainer.appendChild(secondInput);\n        }\n        if (!self.config.time_24hr) {\n            self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n                ? self.hourElement.value\n                : self.config.defaultHour) > 11)]);\n            self.amPM.title = self.l10n.toggleTitle;\n            self.amPM.tabIndex = -1;\n            self.timeContainer.appendChild(self.amPM);\n        }\n        return self.timeContainer;\n    }\n    function buildWeekdays() {\n        if (!self.weekdayContainer)\n            self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n        else\n            clearNode(self.weekdayContainer);\n        for (var i = self.config.showMonths; i--;) {\n            var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n            self.weekdayContainer.appendChild(container);\n        }\n        updateWeekdays();\n        return self.weekdayContainer;\n    }\n    function updateWeekdays() {\n        if (!self.weekdayContainer) {\n            return;\n        }\n        var firstDayOfWeek = self.l10n.firstDayOfWeek;\n        var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n        if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n            weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n        }\n        for (var i = self.config.showMonths; i--;) {\n            self.weekdayContainer.children[i].innerHTML = \"\\n      <span class='flatpickr-weekday'>\\n        \" + weekdays.join(\"</span><span class='flatpickr-weekday'>\") + \"\\n      </span>\\n      \";\n        }\n    }\n    function buildWeeks() {\n        self.calendarContainer.classList.add(\"hasWeeks\");\n        var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n        weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n        var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n        weekWrapper.appendChild(weekNumbers);\n        return {\n            weekWrapper: weekWrapper,\n            weekNumbers: weekNumbers,\n        };\n    }\n    function changeMonth(value, isOffset) {\n        if (isOffset === void 0) { isOffset = true; }\n        var delta = isOffset ? value : value - self.currentMonth;\n        if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n            (delta > 0 && self._hideNextMonthArrow === true))\n            return;\n        self.currentMonth += delta;\n        if (self.currentMonth < 0 || self.currentMonth > 11) {\n            self.currentYear += self.currentMonth > 11 ? 1 : -1;\n            self.currentMonth = (self.currentMonth + 12) % 12;\n            triggerEvent(\"onYearChange\");\n            buildMonthSwitch();\n        }\n        buildDays();\n        triggerEvent(\"onMonthChange\");\n        updateNavigationCurrentMonth();\n    }\n    function clear(triggerChangeEvent, toInitial) {\n        if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n        if (toInitial === void 0) { toInitial = true; }\n        self.input.value = \"\";\n        if (self.altInput !== undefined)\n            self.altInput.value = \"\";\n        if (self.mobileInput !== undefined)\n            self.mobileInput.value = \"\";\n        self.selectedDates = [];\n        self.latestSelectedDateObj = undefined;\n        if (toInitial === true) {\n            self.currentYear = self._initialDate.getFullYear();\n            self.currentMonth = self._initialDate.getMonth();\n        }\n        if (self.config.enableTime === true) {\n            var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n            setHours(hours, minutes, seconds);\n        }\n        self.redraw();\n        if (triggerChangeEvent)\n            triggerEvent(\"onChange\");\n    }\n    function close() {\n        self.isOpen = false;\n        if (!self.isMobile) {\n            if (self.calendarContainer !== undefined) {\n                self.calendarContainer.classList.remove(\"open\");\n            }\n            if (self._input !== undefined) {\n                self._input.classList.remove(\"active\");\n            }\n        }\n        triggerEvent(\"onClose\");\n    }\n    function destroy() {\n        if (self.config !== undefined)\n            triggerEvent(\"onDestroy\");\n        for (var i = self._handlers.length; i--;) {\n            self._handlers[i].remove();\n        }\n        self._handlers = [];\n        if (self.mobileInput) {\n            if (self.mobileInput.parentNode)\n                self.mobileInput.parentNode.removeChild(self.mobileInput);\n            self.mobileInput = undefined;\n        }\n        else if (self.calendarContainer && self.calendarContainer.parentNode) {\n            if (self.config.static && self.calendarContainer.parentNode) {\n                var wrapper = self.calendarContainer.parentNode;\n                wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n                if (wrapper.parentNode) {\n                    while (wrapper.firstChild)\n                        wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n                    wrapper.parentNode.removeChild(wrapper);\n                }\n            }\n            else\n                self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n        }\n        if (self.altInput) {\n            self.input.type = \"text\";\n            if (self.altInput.parentNode)\n                self.altInput.parentNode.removeChild(self.altInput);\n            delete self.altInput;\n        }\n        if (self.input) {\n            self.input.type = self.input._type;\n            self.input.classList.remove(\"flatpickr-input\");\n            self.input.removeAttribute(\"readonly\");\n        }\n        [\n            \"_showTimeInput\",\n            \"latestSelectedDateObj\",\n            \"_hideNextMonthArrow\",\n            \"_hidePrevMonthArrow\",\n            \"__hideNextMonthArrow\",\n            \"__hidePrevMonthArrow\",\n            \"isMobile\",\n            \"isOpen\",\n            \"selectedDateElem\",\n            \"minDateHasTime\",\n            \"maxDateHasTime\",\n            \"days\",\n            \"daysContainer\",\n            \"_input\",\n            \"_positionElement\",\n            \"innerContainer\",\n            \"rContainer\",\n            \"monthNav\",\n            \"todayDateElem\",\n            \"calendarContainer\",\n            \"weekdayContainer\",\n            \"prevMonthNav\",\n            \"nextMonthNav\",\n            \"monthsDropdownContainer\",\n            \"currentMonthElement\",\n            \"currentYearElement\",\n            \"navigationCurrentMonth\",\n            \"selectedDateElem\",\n            \"config\",\n        ].forEach(function (k) {\n            try {\n                delete self[k];\n            }\n            catch (_) { }\n        });\n    }\n    function isCalendarElem(elem) {\n        return self.calendarContainer.contains(elem);\n    }\n    function documentClick(e) {\n        if (self.isOpen && !self.config.inline) {\n            var eventTarget_1 = getEventTarget(e);\n            var isCalendarElement = isCalendarElem(eventTarget_1);\n            var isInput = eventTarget_1 === self.input ||\n                eventTarget_1 === self.altInput ||\n                self.element.contains(eventTarget_1) ||\n                (e.path &&\n                    e.path.indexOf &&\n                    (~e.path.indexOf(self.input) ||\n                        ~e.path.indexOf(self.altInput)));\n            var lostFocus = !isInput &&\n                !isCalendarElement &&\n                !isCalendarElem(e.relatedTarget);\n            var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n                return elem.contains(eventTarget_1);\n            });\n            if (lostFocus && isIgnored) {\n                if (self.config.allowInput) {\n                    self.setDate(self._input.value, false, self.config.altInput\n                        ? self.config.altFormat\n                        : self.config.dateFormat);\n                }\n                if (self.timeContainer !== undefined &&\n                    self.minuteElement !== undefined &&\n                    self.hourElement !== undefined &&\n                    self.input.value !== \"\" &&\n                    self.input.value !== undefined) {\n                    updateTime();\n                }\n                self.close();\n                if (self.config &&\n                    self.config.mode === \"range\" &&\n                    self.selectedDates.length === 1)\n                    self.clear(false);\n            }\n        }\n    }\n    function changeYear(newYear) {\n        if (!newYear ||\n            (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n            (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n            return;\n        var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n        self.currentYear = newYearNum || self.currentYear;\n        if (self.config.maxDate &&\n            self.currentYear === self.config.maxDate.getFullYear()) {\n            self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n        }\n        else if (self.config.minDate &&\n            self.currentYear === self.config.minDate.getFullYear()) {\n            self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n        }\n        if (isNewYear) {\n            self.redraw();\n            triggerEvent(\"onYearChange\");\n            buildMonthSwitch();\n        }\n    }\n    function isEnabled(date, timeless) {\n        var _a;\n        if (timeless === void 0) { timeless = true; }\n        var dateToCheck = self.parseDate(date, undefined, timeless);\n        if ((self.config.minDate &&\n            dateToCheck &&\n            compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n            (self.config.maxDate &&\n                dateToCheck &&\n                compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n            return false;\n        if (!self.config.enable && self.config.disable.length === 0)\n            return true;\n        if (dateToCheck === undefined)\n            return false;\n        var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n        for (var i = 0, d = void 0; i < array.length; i++) {\n            d = array[i];\n            if (typeof d === \"function\" &&\n                d(dateToCheck))\n                return bool;\n            else if (d instanceof Date &&\n                dateToCheck !== undefined &&\n                d.getTime() === dateToCheck.getTime())\n                return bool;\n            else if (typeof d === \"string\") {\n                var parsed = self.parseDate(d, undefined, true);\n                return parsed && parsed.getTime() === dateToCheck.getTime()\n                    ? bool\n                    : !bool;\n            }\n            else if (typeof d === \"object\" &&\n                dateToCheck !== undefined &&\n                d.from &&\n                d.to &&\n                dateToCheck.getTime() >= d.from.getTime() &&\n                dateToCheck.getTime() <= d.to.getTime())\n                return bool;\n        }\n        return !bool;\n    }\n    function isInView(elem) {\n        if (self.daysContainer !== undefined)\n            return (elem.className.indexOf(\"hidden\") === -1 &&\n                elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n                self.daysContainer.contains(elem));\n        return false;\n    }\n    function onBlur(e) {\n        var isInput = e.target === self._input;\n        var valueChanged = self._input.value.trimEnd() !== getDateStr();\n        if (isInput &&\n            valueChanged &&\n            !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n            self.setDate(self._input.value, true, e.target === self.altInput\n                ? self.config.altFormat\n                : self.config.dateFormat);\n        }\n    }\n    function onKeyDown(e) {\n        var eventTarget = getEventTarget(e);\n        var isInput = self.config.wrap\n            ? element.contains(eventTarget)\n            : eventTarget === self._input;\n        var allowInput = self.config.allowInput;\n        var allowKeydown = self.isOpen && (!allowInput || !isInput);\n        var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n        if (e.keyCode === 13 && isInput) {\n            if (allowInput) {\n                self.setDate(self._input.value, true, eventTarget === self.altInput\n                    ? self.config.altFormat\n                    : self.config.dateFormat);\n                self.close();\n                return eventTarget.blur();\n            }\n            else {\n                self.open();\n            }\n        }\n        else if (isCalendarElem(eventTarget) ||\n            allowKeydown ||\n            allowInlineKeydown) {\n            var isTimeObj = !!self.timeContainer &&\n                self.timeContainer.contains(eventTarget);\n            switch (e.keyCode) {\n                case 13:\n                    if (isTimeObj) {\n                        e.preventDefault();\n                        updateTime();\n                        focusAndClose();\n                    }\n                    else\n                        selectDate(e);\n                    break;\n                case 27:\n                    e.preventDefault();\n                    focusAndClose();\n                    break;\n                case 8:\n                case 46:\n                    if (isInput && !self.config.allowInput) {\n                        e.preventDefault();\n                        self.clear();\n                    }\n                    break;\n                case 37:\n                case 39:\n                    if (!isTimeObj && !isInput) {\n                        e.preventDefault();\n                        var activeElement = getClosestActiveElement();\n                        if (self.daysContainer !== undefined &&\n                            (allowInput === false ||\n                                (activeElement && isInView(activeElement)))) {\n                            var delta_1 = e.keyCode === 39 ? 1 : -1;\n                            if (!e.ctrlKey)\n                                focusOnDay(undefined, delta_1);\n                            else {\n                                e.stopPropagation();\n                                changeMonth(delta_1);\n                                focusOnDay(getFirstAvailableDay(1), 0);\n                            }\n                        }\n                    }\n                    else if (self.hourElement)\n                        self.hourElement.focus();\n                    break;\n                case 38:\n                case 40:\n                    e.preventDefault();\n                    var delta = e.keyCode === 40 ? 1 : -1;\n                    if ((self.daysContainer &&\n                        eventTarget.$i !== undefined) ||\n                        eventTarget === self.input ||\n                        eventTarget === self.altInput) {\n                        if (e.ctrlKey) {\n                            e.stopPropagation();\n                            changeYear(self.currentYear - delta);\n                            focusOnDay(getFirstAvailableDay(1), 0);\n                        }\n                        else if (!isTimeObj)\n                            focusOnDay(undefined, delta * 7);\n                    }\n                    else if (eventTarget === self.currentYearElement) {\n                        changeYear(self.currentYear - delta);\n                    }\n                    else if (self.config.enableTime) {\n                        if (!isTimeObj && self.hourElement)\n                            self.hourElement.focus();\n                        updateTime(e);\n                        self._debouncedChange();\n                    }\n                    break;\n                case 9:\n                    if (isTimeObj) {\n                        var elems = [\n                            self.hourElement,\n                            self.minuteElement,\n                            self.secondElement,\n                            self.amPM,\n                        ]\n                            .concat(self.pluginElements)\n                            .filter(function (x) { return x; });\n                        var i = elems.indexOf(eventTarget);\n                        if (i !== -1) {\n                            var target = elems[i + (e.shiftKey ? -1 : 1)];\n                            e.preventDefault();\n                            (target || self._input).focus();\n                        }\n                    }\n                    else if (!self.config.noCalendar &&\n                        self.daysContainer &&\n                        self.daysContainer.contains(eventTarget) &&\n                        e.shiftKey) {\n                        e.preventDefault();\n                        self._input.focus();\n                    }\n                    break;\n                default:\n                    break;\n            }\n        }\n        if (self.amPM !== undefined && eventTarget === self.amPM) {\n            switch (e.key) {\n                case self.l10n.amPM[0].charAt(0):\n                case self.l10n.amPM[0].charAt(0).toLowerCase():\n                    self.amPM.textContent = self.l10n.amPM[0];\n                    setHoursFromInputs();\n                    updateValue();\n                    break;\n                case self.l10n.amPM[1].charAt(0):\n                case self.l10n.amPM[1].charAt(0).toLowerCase():\n                    self.amPM.textContent = self.l10n.amPM[1];\n                    setHoursFromInputs();\n                    updateValue();\n                    break;\n            }\n        }\n        if (isInput || isCalendarElem(eventTarget)) {\n            triggerEvent(\"onKeyDown\", e);\n        }\n    }\n    function onMouseOver(elem, cellClass) {\n        if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n        if (self.selectedDates.length !== 1 ||\n            (elem &&\n                (!elem.classList.contains(cellClass) ||\n                    elem.classList.contains(\"flatpickr-disabled\"))))\n            return;\n        var hoverDate = elem\n            ? elem.dateObj.getTime()\n            : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n        var containsDisabled = false;\n        var minRange = 0, maxRange = 0;\n        for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n            if (!isEnabled(new Date(t), true)) {\n                containsDisabled =\n                    containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n                if (t < initialDate && (!minRange || t > minRange))\n                    minRange = t;\n                else if (t > initialDate && (!maxRange || t < maxRange))\n                    maxRange = t;\n            }\n        }\n        var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n        hoverableCells.forEach(function (dayElem) {\n            var date = dayElem.dateObj;\n            var timestamp = date.getTime();\n            var outOfRange = (minRange > 0 && timestamp < minRange) ||\n                (maxRange > 0 && timestamp > maxRange);\n            if (outOfRange) {\n                dayElem.classList.add(\"notAllowed\");\n                [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n                    dayElem.classList.remove(c);\n                });\n                return;\n            }\n            else if (containsDisabled && !outOfRange)\n                return;\n            [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n                dayElem.classList.remove(c);\n            });\n            if (elem !== undefined) {\n                elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n                    ? \"startRange\"\n                    : \"endRange\");\n                if (initialDate < hoverDate && timestamp === initialDate)\n                    dayElem.classList.add(\"startRange\");\n                else if (initialDate > hoverDate && timestamp === initialDate)\n                    dayElem.classList.add(\"endRange\");\n                if (timestamp >= minRange &&\n                    (maxRange === 0 || timestamp <= maxRange) &&\n                    isBetween(timestamp, initialDate, hoverDate))\n                    dayElem.classList.add(\"inRange\");\n            }\n        });\n    }\n    function onResize() {\n        if (self.isOpen && !self.config.static && !self.config.inline)\n            positionCalendar();\n    }\n    function open(e, positionElement) {\n        if (positionElement === void 0) { positionElement = self._positionElement; }\n        if (self.isMobile === true) {\n            if (e) {\n                e.preventDefault();\n                var eventTarget = getEventTarget(e);\n                if (eventTarget) {\n                    eventTarget.blur();\n                }\n            }\n            if (self.mobileInput !== undefined) {\n                self.mobileInput.focus();\n                self.mobileInput.click();\n            }\n            triggerEvent(\"onOpen\");\n            return;\n        }\n        else if (self._input.disabled || self.config.inline) {\n            return;\n        }\n        var wasOpen = self.isOpen;\n        self.isOpen = true;\n        if (!wasOpen) {\n            self.calendarContainer.classList.add(\"open\");\n            self._input.classList.add(\"active\");\n            triggerEvent(\"onOpen\");\n            positionCalendar(positionElement);\n        }\n        if (self.config.enableTime === true && self.config.noCalendar === true) {\n            if (self.config.allowInput === false &&\n                (e === undefined ||\n                    !self.timeContainer.contains(e.relatedTarget))) {\n                setTimeout(function () { return self.hourElement.select(); }, 50);\n            }\n        }\n    }\n    function minMaxDateSetter(type) {\n        return function (date) {\n            var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n            var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n            if (dateObj !== undefined) {\n                self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n                    dateObj.getHours() > 0 ||\n                        dateObj.getMinutes() > 0 ||\n                        dateObj.getSeconds() > 0;\n            }\n            if (self.selectedDates) {\n                self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n                if (!self.selectedDates.length && type === \"min\")\n                    setHoursFromDate(dateObj);\n                updateValue();\n            }\n            if (self.daysContainer) {\n                redraw();\n                if (dateObj !== undefined)\n                    self.currentYearElement[type] = dateObj.getFullYear().toString();\n                else\n                    self.currentYearElement.removeAttribute(type);\n                self.currentYearElement.disabled =\n                    !!inverseDateObj &&\n                        dateObj !== undefined &&\n                        inverseDateObj.getFullYear() === dateObj.getFullYear();\n            }\n        };\n    }\n    function parseConfig() {\n        var boolOpts = [\n            \"wrap\",\n            \"weekNumbers\",\n            \"allowInput\",\n            \"allowInvalidPreload\",\n            \"clickOpens\",\n            \"time_24hr\",\n            \"enableTime\",\n            \"noCalendar\",\n            \"altInput\",\n            \"shorthandCurrentMonth\",\n            \"inline\",\n            \"static\",\n            \"enableSeconds\",\n            \"disableMobile\",\n        ];\n        var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n        var formats = {};\n        self.config.parseDate = userConfig.parseDate;\n        self.config.formatDate = userConfig.formatDate;\n        Object.defineProperty(self.config, \"enable\", {\n            get: function () { return self.config._enable; },\n            set: function (dates) {\n                self.config._enable = parseDateRules(dates);\n            },\n        });\n        Object.defineProperty(self.config, \"disable\", {\n            get: function () { return self.config._disable; },\n            set: function (dates) {\n                self.config._disable = parseDateRules(dates);\n            },\n        });\n        var timeMode = userConfig.mode === \"time\";\n        if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n            var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n            formats.dateFormat =\n                userConfig.noCalendar || timeMode\n                    ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n                    : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n        }\n        if (userConfig.altInput &&\n            (userConfig.enableTime || timeMode) &&\n            !userConfig.altFormat) {\n            var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n            formats.altFormat =\n                userConfig.noCalendar || timeMode\n                    ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n                    : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n        }\n        Object.defineProperty(self.config, \"minDate\", {\n            get: function () { return self.config._minDate; },\n            set: minMaxDateSetter(\"min\"),\n        });\n        Object.defineProperty(self.config, \"maxDate\", {\n            get: function () { return self.config._maxDate; },\n            set: minMaxDateSetter(\"max\"),\n        });\n        var minMaxTimeSetter = function (type) { return function (val) {\n            self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n        }; };\n        Object.defineProperty(self.config, \"minTime\", {\n            get: function () { return self.config._minTime; },\n            set: minMaxTimeSetter(\"min\"),\n        });\n        Object.defineProperty(self.config, \"maxTime\", {\n            get: function () { return self.config._maxTime; },\n            set: minMaxTimeSetter(\"max\"),\n        });\n        if (userConfig.mode === \"time\") {\n            self.config.noCalendar = true;\n            self.config.enableTime = true;\n        }\n        Object.assign(self.config, formats, userConfig);\n        for (var i = 0; i < boolOpts.length; i++)\n            self.config[boolOpts[i]] =\n                self.config[boolOpts[i]] === true ||\n                    self.config[boolOpts[i]] === \"true\";\n        HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n            self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n        });\n        self.isMobile =\n            !self.config.disableMobile &&\n                !self.config.inline &&\n                self.config.mode === \"single\" &&\n                !self.config.disable.length &&\n                !self.config.enable &&\n                !self.config.weekNumbers &&\n                /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n        for (var i = 0; i < self.config.plugins.length; i++) {\n            var pluginConf = self.config.plugins[i](self) || {};\n            for (var key in pluginConf) {\n                if (HOOKS.indexOf(key) > -1) {\n                    self.config[key] = arrayify(pluginConf[key])\n                        .map(bindToInstance)\n                        .concat(self.config[key]);\n                }\n                else if (typeof userConfig[key] === \"undefined\")\n                    self.config[key] = pluginConf[key];\n            }\n        }\n        if (!userConfig.altInputClass) {\n            self.config.altInputClass =\n                getInputElem().className + \" \" + self.config.altInputClass;\n        }\n        triggerEvent(\"onParseConfig\");\n    }\n    function getInputElem() {\n        return self.config.wrap\n            ? element.querySelector(\"[data-input]\")\n            : element;\n    }\n    function setupLocale() {\n        if (typeof self.config.locale !== \"object\" &&\n            typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n            self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n        self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n            ? self.config.locale\n            : self.config.locale !== \"default\"\n                ? flatpickr.l10ns[self.config.locale]\n                : undefined));\n        tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n        tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n        tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n        tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n        tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n        var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n        if (userConfig.time_24hr === undefined &&\n            flatpickr.defaultConfig.time_24hr === undefined) {\n            self.config.time_24hr = self.l10n.time_24hr;\n        }\n        self.formatDate = createDateFormatter(self);\n        self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n    }\n    function positionCalendar(customPositionElement) {\n        if (typeof self.config.position === \"function\") {\n            return void self.config.position(self, customPositionElement);\n        }\n        if (self.calendarContainer === undefined)\n            return;\n        triggerEvent(\"onPreCalendarPosition\");\n        var positionElement = customPositionElement || self._positionElement;\n        var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n            (configPosVertical !== \"below\" &&\n                distanceFromBottom < calendarHeight &&\n                inputBounds.top > calendarHeight);\n        var top = window.pageYOffset +\n            inputBounds.top +\n            (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n        toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n        toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n        if (self.config.inline)\n            return;\n        var left = window.pageXOffset + inputBounds.left;\n        var isCenter = false;\n        var isRight = false;\n        if (configPosHorizontal === \"center\") {\n            left -= (calendarWidth - inputBounds.width) / 2;\n            isCenter = true;\n        }\n        else if (configPosHorizontal === \"right\") {\n            left -= calendarWidth - inputBounds.width;\n            isRight = true;\n        }\n        toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n        toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n        toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n        var right = window.document.body.offsetWidth -\n            (window.pageXOffset + inputBounds.right);\n        var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n        var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n        toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n        if (self.config.static)\n            return;\n        self.calendarContainer.style.top = top + \"px\";\n        if (!rightMost) {\n            self.calendarContainer.style.left = left + \"px\";\n            self.calendarContainer.style.right = \"auto\";\n        }\n        else if (!centerMost) {\n            self.calendarContainer.style.left = \"auto\";\n            self.calendarContainer.style.right = right + \"px\";\n        }\n        else {\n            var doc = getDocumentStyleSheet();\n            if (doc === undefined)\n                return;\n            var bodyWidth = window.document.body.offsetWidth;\n            var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n            var centerBefore = \".flatpickr-calendar.centerMost:before\";\n            var centerAfter = \".flatpickr-calendar.centerMost:after\";\n            var centerIndex = doc.cssRules.length;\n            var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n            toggleClass(self.calendarContainer, \"rightMost\", false);\n            toggleClass(self.calendarContainer, \"centerMost\", true);\n            doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n            self.calendarContainer.style.left = centerLeft + \"px\";\n            self.calendarContainer.style.right = \"auto\";\n        }\n    }\n    function getDocumentStyleSheet() {\n        var editableSheet = null;\n        for (var i = 0; i < document.styleSheets.length; i++) {\n            var sheet = document.styleSheets[i];\n            if (!sheet.cssRules)\n                continue;\n            try {\n                sheet.cssRules;\n            }\n            catch (err) {\n                continue;\n            }\n            editableSheet = sheet;\n            break;\n        }\n        return editableSheet != null ? editableSheet : createStyleSheet();\n    }\n    function createStyleSheet() {\n        var style = document.createElement(\"style\");\n        document.head.appendChild(style);\n        return style.sheet;\n    }\n    function redraw() {\n        if (self.config.noCalendar || self.isMobile)\n            return;\n        buildMonthSwitch();\n        updateNavigationCurrentMonth();\n        buildDays();\n    }\n    function focusAndClose() {\n        self._input.focus();\n        if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n            navigator.msMaxTouchPoints !== undefined) {\n            setTimeout(self.close, 0);\n        }\n        else {\n            self.close();\n        }\n    }\n    function selectDate(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        var isSelectable = function (day) {\n            return day.classList &&\n                day.classList.contains(\"flatpickr-day\") &&\n                !day.classList.contains(\"flatpickr-disabled\") &&\n                !day.classList.contains(\"notAllowed\");\n        };\n        var t = findParent(getEventTarget(e), isSelectable);\n        if (t === undefined)\n            return;\n        var target = t;\n        var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n        var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n            selectedDate.getMonth() >\n                self.currentMonth + self.config.showMonths - 1) &&\n            self.config.mode !== \"range\";\n        self.selectedDateElem = target;\n        if (self.config.mode === \"single\")\n            self.selectedDates = [selectedDate];\n        else if (self.config.mode === \"multiple\") {\n            var selectedIndex = isDateSelected(selectedDate);\n            if (selectedIndex)\n                self.selectedDates.splice(parseInt(selectedIndex), 1);\n            else\n                self.selectedDates.push(selectedDate);\n        }\n        else if (self.config.mode === \"range\") {\n            if (self.selectedDates.length === 2) {\n                self.clear(false, false);\n            }\n            self.latestSelectedDateObj = selectedDate;\n            self.selectedDates.push(selectedDate);\n            if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n                self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n        }\n        setHoursFromInputs();\n        if (shouldChangeMonth) {\n            var isNewYear = self.currentYear !== selectedDate.getFullYear();\n            self.currentYear = selectedDate.getFullYear();\n            self.currentMonth = selectedDate.getMonth();\n            if (isNewYear) {\n                triggerEvent(\"onYearChange\");\n                buildMonthSwitch();\n            }\n            triggerEvent(\"onMonthChange\");\n        }\n        updateNavigationCurrentMonth();\n        buildDays();\n        updateValue();\n        if (!shouldChangeMonth &&\n            self.config.mode !== \"range\" &&\n            self.config.showMonths === 1)\n            focusOnDayElem(target);\n        else if (self.selectedDateElem !== undefined &&\n            self.hourElement === undefined) {\n            self.selectedDateElem && self.selectedDateElem.focus();\n        }\n        if (self.hourElement !== undefined)\n            self.hourElement !== undefined && self.hourElement.focus();\n        if (self.config.closeOnSelect) {\n            var single = self.config.mode === \"single\" && !self.config.enableTime;\n            var range = self.config.mode === \"range\" &&\n                self.selectedDates.length === 2 &&\n                !self.config.enableTime;\n            if (single || range) {\n                focusAndClose();\n            }\n        }\n        triggerChange();\n    }\n    var CALLBACKS = {\n        locale: [setupLocale, updateWeekdays],\n        showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n        minDate: [jumpToDate],\n        maxDate: [jumpToDate],\n        positionElement: [updatePositionElement],\n        clickOpens: [\n            function () {\n                if (self.config.clickOpens === true) {\n                    bind(self._input, \"focus\", self.open);\n                    bind(self._input, \"click\", self.open);\n                }\n                else {\n                    self._input.removeEventListener(\"focus\", self.open);\n                    self._input.removeEventListener(\"click\", self.open);\n                }\n            },\n        ],\n    };\n    function set(option, value) {\n        if (option !== null && typeof option === \"object\") {\n            Object.assign(self.config, option);\n            for (var key in option) {\n                if (CALLBACKS[key] !== undefined)\n                    CALLBACKS[key].forEach(function (x) { return x(); });\n            }\n        }\n        else {\n            self.config[option] = value;\n            if (CALLBACKS[option] !== undefined)\n                CALLBACKS[option].forEach(function (x) { return x(); });\n            else if (HOOKS.indexOf(option) > -1)\n                self.config[option] = arrayify(value);\n        }\n        self.redraw();\n        updateValue(true);\n    }\n    function setSelectedDate(inputDate, format) {\n        var dates = [];\n        if (inputDate instanceof Array)\n            dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n        else if (inputDate instanceof Date || typeof inputDate === \"number\")\n            dates = [self.parseDate(inputDate, format)];\n        else if (typeof inputDate === \"string\") {\n            switch (self.config.mode) {\n                case \"single\":\n                case \"time\":\n                    dates = [self.parseDate(inputDate, format)];\n                    break;\n                case \"multiple\":\n                    dates = inputDate\n                        .split(self.config.conjunction)\n                        .map(function (date) { return self.parseDate(date, format); });\n                    break;\n                case \"range\":\n                    dates = inputDate\n                        .split(self.l10n.rangeSeparator)\n                        .map(function (date) { return self.parseDate(date, format); });\n                    break;\n                default:\n                    break;\n            }\n        }\n        else\n            self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n        self.selectedDates = (self.config.allowInvalidPreload\n            ? dates\n            : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n        if (self.config.mode === \"range\")\n            self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n    }\n    function setDate(date, triggerChange, format) {\n        if (triggerChange === void 0) { triggerChange = false; }\n        if (format === void 0) { format = self.config.dateFormat; }\n        if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n            return self.clear(triggerChange);\n        setSelectedDate(date, format);\n        self.latestSelectedDateObj =\n            self.selectedDates[self.selectedDates.length - 1];\n        self.redraw();\n        jumpToDate(undefined, triggerChange);\n        setHoursFromDate();\n        if (self.selectedDates.length === 0) {\n            self.clear(false);\n        }\n        updateValue(triggerChange);\n        if (triggerChange)\n            triggerEvent(\"onChange\");\n    }\n    function parseDateRules(arr) {\n        return arr\n            .slice()\n            .map(function (rule) {\n            if (typeof rule === \"string\" ||\n                typeof rule === \"number\" ||\n                rule instanceof Date) {\n                return self.parseDate(rule, undefined, true);\n            }\n            else if (rule &&\n                typeof rule === \"object\" &&\n                rule.from &&\n                rule.to)\n                return {\n                    from: self.parseDate(rule.from, undefined),\n                    to: self.parseDate(rule.to, undefined),\n                };\n            return rule;\n        })\n            .filter(function (x) { return x; });\n    }\n    function setupDates() {\n        self.selectedDates = [];\n        self.now = self.parseDate(self.config.now) || new Date();\n        var preloadedDate = self.config.defaultDate ||\n            ((self.input.nodeName === \"INPUT\" ||\n                self.input.nodeName === \"TEXTAREA\") &&\n                self.input.placeholder &&\n                self.input.value === self.input.placeholder\n                ? null\n                : self.input.value);\n        if (preloadedDate)\n            setSelectedDate(preloadedDate, self.config.dateFormat);\n        self._initialDate =\n            self.selectedDates.length > 0\n                ? self.selectedDates[0]\n                : self.config.minDate &&\n                    self.config.minDate.getTime() > self.now.getTime()\n                    ? self.config.minDate\n                    : self.config.maxDate &&\n                        self.config.maxDate.getTime() < self.now.getTime()\n                        ? self.config.maxDate\n                        : self.now;\n        self.currentYear = self._initialDate.getFullYear();\n        self.currentMonth = self._initialDate.getMonth();\n        if (self.selectedDates.length > 0)\n            self.latestSelectedDateObj = self.selectedDates[0];\n        if (self.config.minTime !== undefined)\n            self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n        if (self.config.maxTime !== undefined)\n            self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n        self.minDateHasTime =\n            !!self.config.minDate &&\n                (self.config.minDate.getHours() > 0 ||\n                    self.config.minDate.getMinutes() > 0 ||\n                    self.config.minDate.getSeconds() > 0);\n        self.maxDateHasTime =\n            !!self.config.maxDate &&\n                (self.config.maxDate.getHours() > 0 ||\n                    self.config.maxDate.getMinutes() > 0 ||\n                    self.config.maxDate.getSeconds() > 0);\n    }\n    function setupInputs() {\n        self.input = getInputElem();\n        if (!self.input) {\n            self.config.errorHandler(new Error(\"Invalid input element specified\"));\n            return;\n        }\n        self.input._type = self.input.type;\n        self.input.type = \"text\";\n        self.input.classList.add(\"flatpickr-input\");\n        self._input = self.input;\n        if (self.config.altInput) {\n            self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n            self._input = self.altInput;\n            self.altInput.placeholder = self.input.placeholder;\n            self.altInput.disabled = self.input.disabled;\n            self.altInput.required = self.input.required;\n            self.altInput.tabIndex = self.input.tabIndex;\n            self.altInput.type = \"text\";\n            self.input.setAttribute(\"type\", \"hidden\");\n            if (!self.config.static && self.input.parentNode)\n                self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n        }\n        if (!self.config.allowInput)\n            self._input.setAttribute(\"readonly\", \"readonly\");\n        updatePositionElement();\n    }\n    function updatePositionElement() {\n        self._positionElement = self.config.positionElement || self._input;\n    }\n    function setupMobile() {\n        var inputType = self.config.enableTime\n            ? self.config.noCalendar\n                ? \"time\"\n                : \"datetime-local\"\n            : \"date\";\n        self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n        self.mobileInput.tabIndex = 1;\n        self.mobileInput.type = inputType;\n        self.mobileInput.disabled = self.input.disabled;\n        self.mobileInput.required = self.input.required;\n        self.mobileInput.placeholder = self.input.placeholder;\n        self.mobileFormatStr =\n            inputType === \"datetime-local\"\n                ? \"Y-m-d\\\\TH:i:S\"\n                : inputType === \"date\"\n                    ? \"Y-m-d\"\n                    : \"H:i:S\";\n        if (self.selectedDates.length > 0) {\n            self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n        }\n        if (self.config.minDate)\n            self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n        if (self.config.maxDate)\n            self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n        if (self.input.getAttribute(\"step\"))\n            self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n        self.input.type = \"hidden\";\n        if (self.altInput !== undefined)\n            self.altInput.type = \"hidden\";\n        try {\n            if (self.input.parentNode)\n                self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n        }\n        catch (_a) { }\n        bind(self.mobileInput, \"change\", function (e) {\n            self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n            triggerEvent(\"onChange\");\n            triggerEvent(\"onClose\");\n        });\n    }\n    function toggle(e) {\n        if (self.isOpen === true)\n            return self.close();\n        self.open(e);\n    }\n    function triggerEvent(event, data) {\n        if (self.config === undefined)\n            return;\n        var hooks = self.config[event];\n        if (hooks !== undefined && hooks.length > 0) {\n            for (var i = 0; hooks[i] && i < hooks.length; i++)\n                hooks[i](self.selectedDates, self.input.value, self, data);\n        }\n        if (event === \"onChange\") {\n            self.input.dispatchEvent(createEvent(\"change\"));\n            self.input.dispatchEvent(createEvent(\"input\"));\n        }\n    }\n    function createEvent(name) {\n        var e = document.createEvent(\"Event\");\n        e.initEvent(name, true, true);\n        return e;\n    }\n    function isDateSelected(date) {\n        for (var i = 0; i < self.selectedDates.length; i++) {\n            var selectedDate = self.selectedDates[i];\n            if (selectedDate instanceof Date &&\n                compareDates(selectedDate, date) === 0)\n                return \"\" + i;\n        }\n        return false;\n    }\n    function isDateInRange(date) {\n        if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n            return false;\n        return (compareDates(date, self.selectedDates[0]) >= 0 &&\n            compareDates(date, self.selectedDates[1]) <= 0);\n    }\n    function updateNavigationCurrentMonth() {\n        if (self.config.noCalendar || self.isMobile || !self.monthNav)\n            return;\n        self.yearElements.forEach(function (yearElement, i) {\n            var d = new Date(self.currentYear, self.currentMonth, 1);\n            d.setMonth(self.currentMonth + i);\n            if (self.config.showMonths > 1 ||\n                self.config.monthSelectorType === \"static\") {\n                self.monthElements[i].textContent =\n                    monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n            }\n            else {\n                self.monthsDropdownContainer.value = d.getMonth().toString();\n            }\n            yearElement.value = d.getFullYear().toString();\n        });\n        self._hidePrevMonthArrow =\n            self.config.minDate !== undefined &&\n                (self.currentYear === self.config.minDate.getFullYear()\n                    ? self.currentMonth <= self.config.minDate.getMonth()\n                    : self.currentYear < self.config.minDate.getFullYear());\n        self._hideNextMonthArrow =\n            self.config.maxDate !== undefined &&\n                (self.currentYear === self.config.maxDate.getFullYear()\n                    ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n                    : self.currentYear > self.config.maxDate.getFullYear());\n    }\n    function getDateStr(specificFormat) {\n        var format = specificFormat ||\n            (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n        return self.selectedDates\n            .map(function (dObj) { return self.formatDate(dObj, format); })\n            .filter(function (d, i, arr) {\n            return self.config.mode !== \"range\" ||\n                self.config.enableTime ||\n                arr.indexOf(d) === i;\n        })\n            .join(self.config.mode !== \"range\"\n            ? self.config.conjunction\n            : self.l10n.rangeSeparator);\n    }\n    function updateValue(triggerChange) {\n        if (triggerChange === void 0) { triggerChange = true; }\n        if (self.mobileInput !== undefined && self.mobileFormatStr) {\n            self.mobileInput.value =\n                self.latestSelectedDateObj !== undefined\n                    ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n                    : \"\";\n        }\n        self.input.value = getDateStr(self.config.dateFormat);\n        if (self.altInput !== undefined) {\n            self.altInput.value = getDateStr(self.config.altFormat);\n        }\n        if (triggerChange !== false)\n            triggerEvent(\"onValueUpdate\");\n    }\n    function onMonthNavClick(e) {\n        var eventTarget = getEventTarget(e);\n        var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n        var isNextMonth = self.nextMonthNav.contains(eventTarget);\n        if (isPrevMonth || isNextMonth) {\n            changeMonth(isPrevMonth ? -1 : 1);\n        }\n        else if (self.yearElements.indexOf(eventTarget) >= 0) {\n            eventTarget.select();\n        }\n        else if (eventTarget.classList.contains(\"arrowUp\")) {\n            self.changeYear(self.currentYear + 1);\n        }\n        else if (eventTarget.classList.contains(\"arrowDown\")) {\n            self.changeYear(self.currentYear - 1);\n        }\n    }\n    function timeWrapper(e) {\n        e.preventDefault();\n        var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n        if (self.amPM !== undefined && eventTarget === self.amPM) {\n            self.amPM.textContent =\n                self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n        }\n        var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n            (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n        var newValue = curValue + step * delta;\n        if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n            var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n            if (newValue < min) {\n                newValue =\n                    max +\n                        newValue +\n                        int(!isHourElem) +\n                        (int(isHourElem) && int(!self.amPM));\n                if (isMinuteElem)\n                    incrementNumInput(undefined, -1, self.hourElement);\n            }\n            else if (newValue > max) {\n                newValue =\n                    input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n                if (isMinuteElem)\n                    incrementNumInput(undefined, 1, self.hourElement);\n            }\n            if (self.amPM &&\n                isHourElem &&\n                (step === 1\n                    ? newValue + curValue === 23\n                    : Math.abs(newValue - curValue) > step)) {\n                self.amPM.textContent =\n                    self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n            }\n            input.value = pad(newValue);\n        }\n    }\n    init();\n    return self;\n}\nfunction _flatpickr(nodeList, config) {\n    var nodes = Array.prototype.slice\n        .call(nodeList)\n        .filter(function (x) { return x instanceof HTMLElement; });\n    var instances = [];\n    for (var i = 0; i < nodes.length; i++) {\n        var node = nodes[i];\n        try {\n            if (node.getAttribute(\"data-fp-omit\") !== null)\n                continue;\n            if (node._flatpickr !== undefined) {\n                node._flatpickr.destroy();\n                node._flatpickr = undefined;\n            }\n            node._flatpickr = FlatpickrInstance(node, config || {});\n            instances.push(node._flatpickr);\n        }\n        catch (e) {\n            console.error(e);\n        }\n    }\n    return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n    typeof HTMLCollection !== \"undefined\" &&\n    typeof NodeList !== \"undefined\") {\n    HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n        return _flatpickr(this, config);\n    };\n    HTMLElement.prototype.flatpickr = function (config) {\n        return _flatpickr([this], config);\n    };\n}\nvar flatpickr = function (selector, config) {\n    if (typeof selector === \"string\") {\n        return _flatpickr(window.document.querySelectorAll(selector), config);\n    }\n    else if (selector instanceof Node) {\n        return _flatpickr([selector], config);\n    }\n    else {\n        return _flatpickr(selector, config);\n    }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n    en: __assign({}, English),\n    default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n    flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n    flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n    jQuery.fn.flatpickr = function (config) {\n        return _flatpickr(this, config);\n    };\n}\nDate.prototype.fp_incr = function (days) {\n    return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n    window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.de = {}));\n}(this, (function (exports) { 'use strict';\n\n  var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n      ? window.flatpickr\n      : {\n          l10ns: {},\n      };\n  var German = {\n      weekdays: {\n          shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n          longhand: [\n              \"Sonntag\",\n              \"Montag\",\n              \"Dienstag\",\n              \"Mittwoch\",\n              \"Donnerstag\",\n              \"Freitag\",\n              \"Samstag\",\n          ],\n      },\n      months: {\n          shorthand: [\n              \"Jan\",\n              \"Feb\",\n              \"Mär\",\n              \"Apr\",\n              \"Mai\",\n              \"Jun\",\n              \"Jul\",\n              \"Aug\",\n              \"Sep\",\n              \"Okt\",\n              \"Nov\",\n              \"Dez\",\n          ],\n          longhand: [\n              \"Januar\",\n              \"Februar\",\n              \"März\",\n              \"April\",\n              \"Mai\",\n              \"Juni\",\n              \"Juli\",\n              \"August\",\n              \"September\",\n              \"Oktober\",\n              \"November\",\n              \"Dezember\",\n          ],\n      },\n      firstDayOfWeek: 1,\n      weekAbbreviation: \"KW\",\n      rangeSeparator: \" bis \",\n      scrollTitle: \"Zum Ändern scrollen\",\n      toggleTitle: \"Zum Umschalten klicken\",\n      time_24hr: true,\n  };\n  fp.l10ns.de = German;\n  var de = fp.l10ns;\n\n  exports.German = German;\n  exports.default = de;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.monthSelectPlugin = factory());\n}(this, (function () { 'use strict';\n\n    /*! *****************************************************************************\r\n    Copyright (c) Microsoft Corporation.\r\n\r\n    Permission to use, copy, modify, and/or distribute this software for any\r\n    purpose with or without fee is hereby granted.\r\n\r\n    THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n    PERFORMANCE OF THIS SOFTWARE.\r\n    ***************************************************************************** */\r\n\r\n    var __assign = function() {\r\n        __assign = Object.assign || function __assign(t) {\r\n            for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n                s = arguments[i];\r\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n            }\r\n            return t;\r\n        };\r\n        return __assign.apply(this, arguments);\r\n    };\n\n    var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n\n    function clearNode(node) {\n        while (node.firstChild)\n            node.removeChild(node.firstChild);\n    }\n    function getEventTarget(event) {\n        try {\n            if (typeof event.composedPath === \"function\") {\n                var path = event.composedPath();\n                return path[0];\n            }\n            return event.target;\n        }\n        catch (error) {\n            return event.target;\n        }\n    }\n\n    var defaultConfig = {\n        shorthand: false,\n        dateFormat: \"F Y\",\n        altFormat: \"F Y\",\n        theme: \"light\",\n    };\n    function monthSelectPlugin(pluginConfig) {\n        var config = __assign(__assign({}, defaultConfig), pluginConfig);\n        return function (fp) {\n            fp.config.dateFormat = config.dateFormat;\n            fp.config.altFormat = config.altFormat;\n            var self = { monthsContainer: null };\n            function clearUnnecessaryDOMElements() {\n                if (!fp.rContainer)\n                    return;\n                clearNode(fp.rContainer);\n                for (var index = 0; index < fp.monthElements.length; index++) {\n                    var element = fp.monthElements[index];\n                    if (!element.parentNode)\n                        continue;\n                    element.parentNode.removeChild(element);\n                }\n            }\n            function build() {\n                if (!fp.rContainer)\n                    return;\n                self.monthsContainer = fp._createElement(\"div\", \"flatpickr-monthSelect-months\");\n                self.monthsContainer.tabIndex = -1;\n                buildMonths();\n                fp.rContainer.appendChild(self.monthsContainer);\n                fp.calendarContainer.classList.add(\"flatpickr-monthSelect-theme-\" + config.theme);\n            }\n            function buildMonths() {\n                if (!self.monthsContainer)\n                    return;\n                clearNode(self.monthsContainer);\n                var frag = document.createDocumentFragment();\n                for (var i = 0; i < 12; i++) {\n                    var month = fp.createDay(\"flatpickr-monthSelect-month\", new Date(fp.currentYear, i), 0, i);\n                    if (month.dateObj.getMonth() === new Date().getMonth() &&\n                        month.dateObj.getFullYear() === new Date().getFullYear())\n                        month.classList.add(\"today\");\n                    month.textContent = monthToStr(i, config.shorthand, fp.l10n);\n                    month.addEventListener(\"click\", selectMonth);\n                    frag.appendChild(month);\n                }\n                self.monthsContainer.appendChild(frag);\n                if (fp.config.minDate &&\n                    fp.currentYear === fp.config.minDate.getFullYear())\n                    fp.prevMonthNav.classList.add(\"flatpickr-disabled\");\n                else\n                    fp.prevMonthNav.classList.remove(\"flatpickr-disabled\");\n                if (fp.config.maxDate &&\n                    fp.currentYear === fp.config.maxDate.getFullYear())\n                    fp.nextMonthNav.classList.add(\"flatpickr-disabled\");\n                else\n                    fp.nextMonthNav.classList.remove(\"flatpickr-disabled\");\n            }\n            function bindEvents() {\n                fp._bind(fp.prevMonthNav, \"click\", function (e) {\n                    e.preventDefault();\n                    e.stopPropagation();\n                    fp.changeYear(fp.currentYear - 1);\n                    selectYear();\n                    buildMonths();\n                });\n                fp._bind(fp.nextMonthNav, \"click\", function (e) {\n                    e.preventDefault();\n                    e.stopPropagation();\n                    fp.changeYear(fp.currentYear + 1);\n                    selectYear();\n                    buildMonths();\n                });\n                fp._bind(self.monthsContainer, \"mouseover\", function (e) {\n                    if (fp.config.mode === \"range\")\n                        fp.onMouseOver(getEventTarget(e), \"flatpickr-monthSelect-month\");\n                });\n            }\n            function setCurrentlySelected() {\n                if (!fp.rContainer)\n                    return;\n                if (!fp.selectedDates.length)\n                    return;\n                var currentlySelected = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month.selected\");\n                for (var index = 0; index < currentlySelected.length; index++) {\n                    currentlySelected[index].classList.remove(\"selected\");\n                }\n                var targetMonth = fp.selectedDates[0].getMonth();\n                var month = fp.rContainer.querySelector(\".flatpickr-monthSelect-month:nth-child(\" + (targetMonth + 1) + \")\");\n                if (month) {\n                    month.classList.add(\"selected\");\n                }\n            }\n            function selectYear() {\n                var selectedDate = fp.selectedDates[0];\n                if (selectedDate) {\n                    selectedDate = new Date(selectedDate);\n                    selectedDate.setFullYear(fp.currentYear);\n                    if (fp.config.minDate && selectedDate < fp.config.minDate) {\n                        selectedDate = fp.config.minDate;\n                    }\n                    if (fp.config.maxDate && selectedDate > fp.config.maxDate) {\n                        selectedDate = fp.config.maxDate;\n                    }\n                    fp.currentYear = selectedDate.getFullYear();\n                }\n                fp.currentYearElement.value = String(fp.currentYear);\n                if (fp.rContainer) {\n                    var months = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n                    months.forEach(function (month) {\n                        month.dateObj.setFullYear(fp.currentYear);\n                        if ((fp.config.minDate && month.dateObj < fp.config.minDate) ||\n                            (fp.config.maxDate && month.dateObj > fp.config.maxDate)) {\n                            month.classList.add(\"flatpickr-disabled\");\n                        }\n                        else {\n                            month.classList.remove(\"flatpickr-disabled\");\n                        }\n                    });\n                }\n                setCurrentlySelected();\n            }\n            function selectMonth(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                var eventTarget = getEventTarget(e);\n                if (!(eventTarget instanceof Element))\n                    return;\n                if (eventTarget.classList.contains(\"flatpickr-disabled\"))\n                    return;\n                if (eventTarget.classList.contains(\"notAllowed\"))\n                    return; // necessary??\n                setMonth(eventTarget.dateObj);\n                if (fp.config.closeOnSelect) {\n                    var single = fp.config.mode === \"single\";\n                    var range = fp.config.mode === \"range\" && fp.selectedDates.length === 2;\n                    if (single || range)\n                        fp.close();\n                }\n            }\n            function setMonth(date) {\n                var selectedDate = new Date(fp.currentYear, date.getMonth(), date.getDate());\n                var selectedDates = [];\n                switch (fp.config.mode) {\n                    case \"single\":\n                        selectedDates = [selectedDate];\n                        break;\n                    case \"multiple\":\n                        selectedDates.push(selectedDate);\n                        break;\n                    case \"range\":\n                        if (fp.selectedDates.length === 2) {\n                            selectedDates = [selectedDate];\n                        }\n                        else {\n                            selectedDates = fp.selectedDates.concat([selectedDate]);\n                            selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n                        }\n                        break;\n                }\n                fp.setDate(selectedDates, true);\n                setCurrentlySelected();\n            }\n            var shifts = {\n                37: -1,\n                39: 1,\n                40: 3,\n                38: -3,\n            };\n            function onKeyDown(_, __, ___, e) {\n                var shouldMove = shifts[e.keyCode] !== undefined;\n                if (!shouldMove && e.keyCode !== 13) {\n                    return;\n                }\n                if (!fp.rContainer || !self.monthsContainer)\n                    return;\n                var currentlySelected = fp.rContainer.querySelector(\".flatpickr-monthSelect-month.selected\");\n                var index = Array.prototype.indexOf.call(self.monthsContainer.children, document.activeElement);\n                if (index === -1) {\n                    var target = currentlySelected || self.monthsContainer.firstElementChild;\n                    target.focus();\n                    index = target.$i;\n                }\n                if (shouldMove) {\n                    self.monthsContainer.children[(12 + index + shifts[e.keyCode]) % 12].focus();\n                }\n                else if (e.keyCode === 13 &&\n                    self.monthsContainer.contains(document.activeElement)) {\n                    setMonth(document.activeElement.dateObj);\n                }\n            }\n            function closeHook() {\n                var _a;\n                if (((_a = fp.config) === null || _a === void 0 ? void 0 : _a.mode) === \"range\" && fp.selectedDates.length === 1)\n                    fp.clear(false);\n                if (!fp.selectedDates.length)\n                    buildMonths();\n            }\n            // Help the prev/next year nav honor config.minDate (see 3fa5a69)\n            function stubCurrentMonth() {\n                config._stubbedCurrentMonth = fp._initialDate.getMonth();\n                fp._initialDate.setMonth(config._stubbedCurrentMonth);\n                fp.currentMonth = config._stubbedCurrentMonth;\n            }\n            function unstubCurrentMonth() {\n                if (!config._stubbedCurrentMonth)\n                    return;\n                fp._initialDate.setMonth(config._stubbedCurrentMonth);\n                fp.currentMonth = config._stubbedCurrentMonth;\n                delete config._stubbedCurrentMonth;\n            }\n            function destroyPluginInstance() {\n                if (self.monthsContainer !== null) {\n                    var months = self.monthsContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n                    for (var index = 0; index < months.length; index++) {\n                        months[index].removeEventListener(\"click\", selectMonth);\n                    }\n                }\n            }\n            return {\n                onParseConfig: function () {\n                    fp.config.enableTime = false;\n                },\n                onValueUpdate: setCurrentlySelected,\n                onKeyDown: onKeyDown,\n                onReady: [\n                    stubCurrentMonth,\n                    clearUnnecessaryDOMElements,\n                    build,\n                    bindEvents,\n                    setCurrentlySelected,\n                    function () {\n                        fp.config.onClose.push(closeHook);\n                        fp.loadedPlugins.push(\"monthSelect\");\n                    },\n                ],\n                onDestroy: [\n                    unstubCurrentMonth,\n                    destroyPluginInstance,\n                    function () {\n                        fp.config.onClose = fp.config.onClose.filter(function (hook) { return hook !== closeHook; });\n                    },\n                ],\n            };\n        };\n    }\n\n    return monthSelectPlugin;\n\n})));\n","export type DateLike = Date | string | number | null | undefined\nexport type DateGranularity = \"day\" | \"month\"\nexport type DateRange = { start: Date | null; end: Date | null }\nexport type DateRangeLike =\n  | DateRange\n  | { start?: DateLike; end?: DateLike }\n  | { rangeStart?: DateLike; rangeEnd?: DateLike }\n  | [DateLike?, DateLike?]\n  | null\n  | undefined\n\nconst debug = (...args: unknown[]) => console.debug(\"[DateInput:portal]\", ...args)\n\nconst monthFormatter = new Intl.DateTimeFormat(\"de-DE\", {\n  month: \"long\",\n  year: \"numeric\",\n})\n\nexport const formatDisplay = (\n  date: Date | null,\n  includeTime: boolean,\n  granularity: DateGranularity = \"day\",\n): string => {\n  if (!date) return \"\"\n\n  if (granularity === \"month\") {\n    return monthFormatter.format(date)\n  }\n\n  const day = date.toLocaleDateString(\"de-DE\", {\n    day: \"2-digit\",\n    month: \"2-digit\",\n    year: \"numeric\",\n  })\n\n  if (!includeTime) return day\n\n  const time = date.toLocaleTimeString(\"de-DE\", { hour: \"2-digit\", minute: \"2-digit\" })\n\n  return `${day} | ${time}`\n}\n\nexport const normalizeDate = (input: DateLike): Date | null => {\n  if (input === null || input === undefined || input === \"\") return null\n\n  if (input instanceof Date) {\n    return Number.isNaN(input.getTime()) ? null : input\n  }\n\n  if (typeof input === \"string\" || typeof input === \"number\") {\n    const parsed = new Date(input)\n\n    return Number.isNaN(parsed.getTime()) ? null : parsed\n  }\n\n  return null\n}\n\nexport const normalizeDateForGranularity = (\n  input: Date | null,\n  granularity: DateGranularity = \"day\",\n  boundary: \"start\" | \"end\" = \"start\",\n): Date | null => {\n  if (!input) return null\n\n  if (granularity !== \"month\") {\n    return new Date(input.getTime())\n  }\n\n  if (boundary === \"end\") {\n    return new Date(input.getFullYear(), input.getMonth() + 1, 0, 23, 59, 59, 999)\n  }\n\n  return new Date(input.getFullYear(), input.getMonth(), 1, 0, 0, 0, 0)\n}\n\nexport const normalizeDateRange = (input: DateRangeLike): DateRange => {\n  if (!input) return { start: null, end: null }\n\n  if (Array.isArray(input)) {\n    return {\n      start: normalizeDate(input[0]),\n      end: normalizeDate(input[1]),\n    }\n  }\n\n  if (\"rangeStart\" in input || \"rangeEnd\" in input) {\n    return {\n      start: normalizeDate(input.rangeStart),\n      end: normalizeDate(input.rangeEnd),\n    }\n  }\n\n  return {\n    start: normalizeDate(\"start\" in input ? input.start : null),\n    end: normalizeDate(\"end\" in input ? input.end : null),\n  }\n}\n\nexport const normalizeDateRangeForGranularity = (\n  range: DateRange,\n  granularity: DateGranularity = \"day\",\n): DateRange => ({\n  start: normalizeDateForGranularity(range.start, granularity, \"start\"),\n  end: normalizeDateForGranularity(range.end, granularity, \"end\"),\n})\n\nexport const datesEqual = (a: Date | null, b: Date | null) => {\n  if (!a && !b) return true\n\n  if (!a || !b) return false\n\n  return a.getTime() === b.getTime()\n}\n\nexport const dateRangesEqual = (a: DateRange, b: DateRange) =>\n  datesEqual(a.start, b.start) && datesEqual(a.end, b.end)\n\nexport const rangeToDates = (range: DateRange): Date[] => {\n  const dates: Date[] = []\n\n  if (range.start) dates.push(range.start)\n\n  if (range.end) dates.push(range.end)\n\n  return dates\n}\n\nexport const formatRangeDisplay = (\n  range: DateRange,\n  includeTime: boolean,\n  granularity: DateGranularity = \"day\",\n): string => {\n  const start = formatDisplay(range.start, includeTime, granularity)\n  const end = formatDisplay(range.end, includeTime, granularity)\n\n  if (start && end) return `${start} bis ${end}`\n\n  return start || end\n}\n\nexport const serializeDateRange = (range: DateRange): string => {\n  if (!range.start && !range.end) return \"\"\n\n  return JSON.stringify({\n    start: range.start ? range.start.toISOString() : null,\n    end: range.end ? range.end.toISOString() : null,\n  })\n}\n\nexport const ensurePortalElement = () => {\n  if (typeof document === \"undefined\") {\n    debug(\"No document available – skip portal creation\")\n\n    return null\n  }\n\n  const existing = document.getElementById(\"kw-flatpickr-portal\")\n\n  if (existing) {\n    existing.style.position = \"fixed\"\n    existing.style.top = \"0\"\n    existing.style.left = \"0\"\n    existing.style.width = \"100%\"\n    existing.style.height = \"0\"\n    existing.style.zIndex = \"12000\"\n\n    return existing\n  }\n\n  const portal = document.createElement(\"div\")\n  portal.id = \"kw-flatpickr-portal\"\n  portal.style.position = \"fixed\"\n  portal.style.top = \"0\"\n  portal.style.left = \"0\"\n  portal.style.width = \"100%\"\n  portal.style.height = \"0\"\n  portal.style.zIndex = \"12000\"\n  document.body.appendChild(portal)\n\n  return portal\n}\n","import flatpickr from \"flatpickr\"\nimport { German } from \"flatpickr/dist/l10n/de.js\"\nimport monthSelectPlugin from \"flatpickr/dist/plugins/monthSelect/index.js\"\n\nimport { ensurePortalElement } from \"./utils\"\n\ntype FlatpickrInstance = ReturnType<typeof flatpickr>\ntype FlatpickrOptions = NonNullable<Parameters<typeof flatpickr>[1]>\ntype FlatpickrResolvedInstance = {\n  calendarContainer: HTMLElement\n  input: HTMLInputElement\n  config: { position?: string | ((instance: unknown, element?: HTMLElement) => void) }\n  isOpen?: boolean\n  open: () => void\n  set: (option: string, value: unknown) => void\n  setDate: (value: Date | Date[] | [], triggerChange?: boolean) => void\n  destroy: () => void\n}\n\ntype ActionCallbacks = {\n  onChange?: (dates: Date[]) => void\n  onOpen?: () => void\n  onClose?: () => void\n}\n\nexport type FlatpickrConfig = ActionCallbacks & {\n  dates: Date[]\n  displayValue?: string\n  mode: \"single\" | \"range\"\n  withTime: boolean\n  minuteIncrement?: number\n  disabled: boolean\n  brightBackground: boolean\n  granularity: \"day\" | \"month\"\n}\n\nconst CALENDAR_EDGE_PADDING = 8\nconst CALENDAR_INPUT_GAP = 2\nconst FALLBACK_CALENDAR_HEIGHT = 320\nconst FALLBACK_CALENDAR_WIDTH = 308\n\ntype VerticalPosition = \"auto\" | \"above\" | \"below\"\ntype HorizontalPosition = \"left\" | \"center\" | \"right\"\n\nconst dateListsEqual = (a: Date[], b: Date[]) =>\n  a.length === b.length && a.every((date, index) => date.getTime() === b[index]?.getTime())\n\nconst normalizeMinuteIncrement = (value: number | undefined) => {\n  if (!Number.isFinite(value)) return 5\n\n  return Math.max(1, Math.round(value as number))\n}\n\nconst resolveDateFormat = (config: FlatpickrConfig) => {\n  if (config.granularity === \"month\") return \"m.Y\"\n\n  return config.withTime ? \"d.m.Y | H:i\" : \"d.m.Y\"\n}\n\nconst buildOptions = (\n  portalElement: HTMLElement | null,\n  current: FlatpickrConfig,\n): Partial<FlatpickrOptions> => {\n  const usesMonthGranularity = current.granularity === \"month\"\n\n  const options: Partial<FlatpickrOptions> = {\n    mode: current.mode,\n    enableTime: usesMonthGranularity ? false : current.withTime,\n    time_24hr: true,\n    allowInput: false,\n    disableMobile: true,\n    clickOpens: !current.disabled,\n    locale: German,\n    dateFormat: resolveDateFormat(current),\n    defaultDate: current.dates.length > 0 ? current.dates : undefined,\n    appendTo: portalElement ?? undefined,\n    plugins: usesMonthGranularity\n      ? [\n          monthSelectPlugin({\n            shorthand: true,\n            dateFormat: \"m.Y\",\n            altFormat: \"F Y\",\n            theme: current.brightBackground ? \"light\" : \"dark\",\n          }),\n        ]\n      : [],\n    position: (instance: FlatpickrInstance, customPositionElement?: HTMLElement) => {\n      positionCalendar(instance, customPositionElement)\n    },\n    onReady: (_selectedDates: Date[], _dateStr: string, instance: FlatpickrInstance) => {\n      applyCalendarTheme(instance, current.brightBackground)\n    },\n    onOpen: (_selectedDates: Date[], _dateStr: string, instance: FlatpickrInstance) => {\n      current.onOpen?.()\n      applyCalendarTheme(instance, current.brightBackground)\n    },\n    onClose: () => {\n      current.onClose?.()\n    },\n    onChange: (dates: Date[]) => {\n      current.onChange?.(dates.filter((date) => date instanceof Date))\n    },\n  }\n\n  if (!usesMonthGranularity && current.withTime) {\n    options.minuteIncrement = normalizeMinuteIncrement(current.minuteIncrement)\n  }\n\n  return options\n}\n\nconst resolveFlatpickrInstance = (\n  instance: FlatpickrInstance | null,\n): FlatpickrResolvedInstance | null => {\n  if (!instance || Array.isArray(instance)) return null\n\n  return instance as unknown as FlatpickrResolvedInstance\n}\n\nconst applyCalendarTheme = (instance: FlatpickrInstance | null, brightBackground: boolean) => {\n  const resolvedInstance = resolveFlatpickrInstance(instance)\n\n  if (!resolvedInstance) return\n\n  // brightBackground=true indicates a bright surrounding surface for the input; therefore pick the bright theme.\n  const themeClass = brightBackground ? \"kw-flatpickr--bright\" : \"kw-flatpickr--dark\"\n  const container = resolvedInstance.calendarContainer\n  container.style.position = \"fixed\"\n  container.classList.add(\"kw-flatpickr\")\n  container.classList.remove(\"kw-flatpickr--bright\", \"kw-flatpickr--dark\")\n  container.classList.add(themeClass)\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max)\n\nconst parsePosition = (\n  raw: string,\n): { vertical: VerticalPosition; horizontal: HorizontalPosition } => {\n  const [verticalRaw = \"auto\", horizontalRaw = \"left\"] = raw.trim().split(/\\s+/)\n  const vertical: VerticalPosition =\n    verticalRaw === \"above\" || verticalRaw === \"below\" || verticalRaw === \"auto\"\n      ? verticalRaw\n      : \"auto\"\n  const horizontal: HorizontalPosition =\n    horizontalRaw === \"center\" || horizontalRaw === \"right\" || horizontalRaw === \"left\"\n      ? horizontalRaw\n      : \"left\"\n\n  return { vertical, horizontal }\n}\n\nconst measureCalendarHeight = (container: HTMLElement) => {\n  const styles = window.getComputedStyle(container)\n  const paddingTop = Number.parseFloat(styles.paddingTop || \"0\")\n  const paddingBottom = Number.parseFloat(styles.paddingBottom || \"0\")\n  const heightFromChildren = Array.from(container.children).reduce((total, child) => {\n    const element = child as HTMLElement\n\n    return total + element.offsetHeight\n  }, 0)\n  const paddedChildHeight = heightFromChildren + paddingTop + paddingBottom\n\n  return Math.max(container.offsetHeight, paddedChildHeight) || FALLBACK_CALENDAR_HEIGHT\n}\n\nconst positionCalendar = (\n  instance: FlatpickrInstance | null,\n  customPositionElement?: HTMLElement,\n) => {\n  const resolvedInstance = resolveFlatpickrInstance(instance)\n\n  if (!resolvedInstance) return\n\n  const container = resolvedInstance.calendarContainer\n\n  if (!container) return\n\n  const fallbackPositionElement = (\n    resolvedInstance as FlatpickrResolvedInstance & { _positionElement?: HTMLElement }\n  )._positionElement\n  const positionElement = customPositionElement ?? fallbackPositionElement ?? resolvedInstance.input\n\n  if (!positionElement) return\n\n  const rect = positionElement.getBoundingClientRect()\n  const calendarHeight = measureCalendarHeight(container)\n  const calendarWidth = container.offsetWidth || FALLBACK_CALENDAR_WIDTH\n  const viewportHeight = window.innerHeight\n  const viewportWidth = window.innerWidth\n\n  const rawPosition =\n    typeof resolvedInstance.config.position === \"string\" ? resolvedInstance.config.position : \"auto\"\n  const { vertical, horizontal } = parsePosition(rawPosition)\n  const availableAbove = rect.top - CALENDAR_EDGE_PADDING\n  const availableBelow = viewportHeight - rect.bottom - CALENDAR_EDGE_PADDING\n  const fitsAbove = availableAbove >= calendarHeight + CALENDAR_INPUT_GAP\n  const fitsBelow = availableBelow >= calendarHeight + CALENDAR_INPUT_GAP\n\n  let placeAbove: boolean\n\n  if (vertical === \"above\") {\n    placeAbove = true\n  } else if (vertical === \"below\") {\n    placeAbove = false\n  } else if (fitsBelow) {\n    placeAbove = false\n  } else if (fitsAbove) {\n    placeAbove = true\n  } else {\n    placeAbove = availableAbove > availableBelow\n  }\n\n  const targetTop = placeAbove\n    ? rect.top - calendarHeight - CALENDAR_INPUT_GAP\n    : rect.bottom + CALENDAR_INPUT_GAP\n  const maxTop = viewportHeight - calendarHeight - CALENDAR_EDGE_PADDING\n  const top =\n    maxTop < CALENDAR_EDGE_PADDING\n      ? CALENDAR_EDGE_PADDING\n      : clamp(targetTop, CALENDAR_EDGE_PADDING, maxTop)\n\n  let targetLeft = rect.left\n\n  if (horizontal === \"center\") {\n    targetLeft -= (calendarWidth - rect.width) / 2\n  } else if (horizontal === \"right\") {\n    targetLeft -= calendarWidth - rect.width\n  }\n\n  const maxLeft = viewportWidth - calendarWidth - CALENDAR_EDGE_PADDING\n  const left =\n    maxLeft < CALENDAR_EDGE_PADDING\n      ? CALENDAR_EDGE_PADDING\n      : clamp(targetLeft, CALENDAR_EDGE_PADDING, maxLeft)\n\n  container.style.top = `${Math.round(top)}px`\n  container.style.left = `${Math.round(left)}px`\n  container.style.right = \"auto\"\n\n  container.classList.toggle(\"arrowTop\", !placeAbove)\n  container.classList.toggle(\"arrowBottom\", placeAbove)\n  container.classList.toggle(\"arrowLeft\", horizontal === \"left\")\n  container.classList.toggle(\"arrowCenter\", horizontal === \"center\")\n  container.classList.toggle(\"arrowRight\", horizontal === \"right\")\n  container.classList.remove(\"rightMost\", \"centerMost\")\n}\n\nexport const flatpickrAction = (node: HTMLInputElement, config: FlatpickrConfig) => {\n  let current = config\n  // Body portals are inert behind native modals; keep the picker in its owning dialog.\n  const dialog = node.closest(\"dialog\")\n  const portalElement = dialog ?? ensurePortalElement()\n  let syncedDates: Date[] = current.dates.map((date) => new Date(date.getTime()))\n\n  let instance: FlatpickrInstance | null = null\n\n  const createInstance = () => {\n    instance = flatpickr(node, buildOptions(portalElement, current))\n    syncDisplayValue()\n  }\n\n  const syncDisplayValue = () => {\n    // DateInput owns the visible text; the picker owns selection and its internal date format.\n    if (current.displayValue !== undefined) node.value = current.displayValue\n  }\n\n  const attachInstance = () => {\n    const resolvedInstance = resolveFlatpickrInstance(instance)\n\n    if (!resolvedInstance) return\n\n    applyCalendarTheme(instance, current.brightBackground)\n    ;(node as any)._kwFlatpickr = resolvedInstance\n    ;(node as any)._kwFlatpickrReposition = () => positionCalendar(instance)\n  }\n\n  const destroyInstance = () => {\n    resolveFlatpickrInstance(instance)?.destroy()\n\n    if ((node as any)._kwFlatpickr) {\n      delete (node as any)._kwFlatpickr\n    }\n\n    if ((node as any)._kwFlatpickrReposition) {\n      delete (node as any)._kwFlatpickrReposition\n    }\n  }\n\n  const recreateInstance = () => {\n    const wasOpen = Boolean(resolveFlatpickrInstance(instance)?.isOpen)\n    destroyInstance()\n    createInstance()\n    attachInstance()\n\n    if (wasOpen && !current.disabled) {\n      resolveFlatpickrInstance(instance)?.open()\n    }\n  }\n\n  createInstance()\n  attachInstance()\n\n  const repositionOpenCalendar = () => {\n    if (resolveFlatpickrInstance(instance)?.isOpen) positionCalendar(instance)\n  }\n  dialog?.addEventListener(\"scroll\", repositionOpenCalendar, true)\n\n  const updateDates = (next: Date[]) => {\n    const resolvedInstance = resolveFlatpickrInstance(instance)\n\n    if (!resolvedInstance) return\n\n    if (dateListsEqual(next, syncedDates)) return\n\n    syncedDates = next.map((date) => new Date(date.getTime()))\n\n    if (next.length > 0) {\n      resolvedInstance.setDate(next, false)\n    } else {\n      resolvedInstance.setDate([], false)\n    }\n  }\n\n  return {\n    update(nextConfig: FlatpickrConfig) {\n      const requiresRecreation =\n        current.granularity !== nextConfig.granularity ||\n        (nextConfig.granularity === \"month\" &&\n          current.brightBackground !== nextConfig.brightBackground)\n\n      current = nextConfig\n\n      const resolvedInstance = resolveFlatpickrInstance(instance)\n\n      if (requiresRecreation || !resolvedInstance) {\n        syncedDates = current.dates.map((date) => new Date(date.getTime()))\n        recreateInstance()\n\n        return\n      }\n\n      resolvedInstance.set(\"mode\", current.mode)\n      resolvedInstance.set(\"enableTime\", current.granularity === \"month\" ? false : current.withTime)\n\n      if (current.granularity !== \"month\" && current.withTime) {\n        resolvedInstance.set(\"minuteIncrement\", normalizeMinuteIncrement(current.minuteIncrement))\n      }\n\n      resolvedInstance.set(\"dateFormat\", resolveDateFormat(current))\n      resolvedInstance.set(\"clickOpens\", !current.disabled)\n      updateDates(current.dates)\n      applyCalendarTheme(instance, current.brightBackground)\n      syncDisplayValue()\n    },\n    destroy() {\n      dialog?.removeEventListener(\"scroll\", repositionOpenCalendar, true)\n      destroyInstance()\n    },\n  }\n}\n","<script lang=\"ts\">\n  import { mdiCalendarCheckOutline, mdiCalendarEdit, mdiClose } from \"@mdi/js\"\n  import \"flatpickr/dist/flatpickr.css\"\n  import \"flatpickr/dist/plugins/monthSelect/style.css\"\n\n  import ToggleCTA from \"../../../actions/_modules/toggle-cta/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import DateInputTrigger from \"./_modules/date-input-trigger/index\"\n  import { flatpickrAction, type FlatpickrConfig } from \"../../../../core/forms/index\"\n  import {\n    type DateGranularity,\n    dateRangesEqual,\n    datesEqual,\n    formatDisplay,\n    formatRangeDisplay,\n    normalizeDate,\n    normalizeDateForGranularity,\n    normalizeDateRange,\n    normalizeDateRangeForGranularity,\n    rangeToDates,\n    serializeDateRange,\n    type DateLike,\n    type DateRange,\n    type DateRangeLike,\n  } from \"../../../../core/forms/index\"\n  import { mount, onDestroy, onMount, unmount } from \"svelte\"\n\n  interface Props {\n    value?: DateLike | DateRangeLike\n    placeholder?: string\n    ariaLabel?: string\n    disabled?: boolean\n    name?: string\n    id?: string\n    classList?: string\n    required?: boolean\n    brightBackground?: boolean\n    surfaceTone?: \"auto\" | \"light\" | \"dark\"\n    withTime?: boolean\n    minuteIncrement?: number\n    timestamp?: boolean\n    range?: boolean\n    /** Initial picker mode; the range toggle can override it locally. */\n    dateGranularity?: DateGranularity\n    onChange?: (event: Event) => void\n    onValueChange?: (value: Date | DateRange | null) => void\n  }\n\n  type GranularityToggleOption = {\n    value: DateGranularity\n    label: string\n    disabled: boolean\n    tooltipContent?: string\n  }\n\n  let {\n    value = $bindable<DateLike | DateRangeLike>(null),\n    placeholder = \"Datum\",\n    ariaLabel = undefined,\n    disabled = false,\n    name = \"\",\n    id = \"date-input-\" + Math.random().toString(36).substring(2, 15),\n    classList = \"\",\n    required = false,\n    brightBackground = false,\n    surfaceTone = \"auto\",\n    withTime = true,\n    minuteIncrement = undefined,\n    timestamp = false,\n    range = false,\n    dateGranularity = undefined,\n    onChange = () => {},\n    onValueChange = () => {},\n  }: Props = $props()\n\n  let inputElement: HTMLInputElement | null = $state(null)\n  let hasFormContext = $state(false)\n  let formIsLight = $state(false)\n  let isPickerOpen = $state(false)\n  const effectiveDateGranularity = $derived<DateGranularity>(\n    dateGranularity ?? (range ? \"month\" : \"day\"),\n  )\n  let mountedGranularityToggle: any = null\n\n  const granularityToggleOptions = $derived<GranularityToggleOption[]>([\n    { value: \"day\", label: \"Tag\", disabled },\n    { value: \"month\", label: \"Monat\", disabled },\n  ])\n\n  onMount(() => {\n    const closestForm = inputElement?.closest?.(\".form\")\n    hasFormContext = !!closestForm\n    formIsLight = !!closestForm?.classList.contains(\"light\")\n\n    if (range) return\n\n    const normalized = normalizeDateForGranularity(\n      normalizeDate(value as DateLike),\n      effectiveDateGranularity,\n    )\n    const needsUpgrade = normalized && !(value instanceof Date)\n\n    if (needsUpgrade) {\n      commitSingleValue(normalized, false)\n    }\n  })\n\n  // Default to bright surfaces unless the surrounding form explicitly uses the \"light\" variant.\n  const effectiveBrightBackground = $derived(brightBackground || !formIsLight || !hasFormContext)\n  const surfaceToneAttribute = $derived(surfaceTone === \"auto\" ? undefined : surfaceTone)\n  const effectiveWithTime = $derived(effectiveDateGranularity === \"month\" ? false : withTime)\n  const selectedDate = $derived<Date | null>(\n    normalizeDateForGranularity(normalizeDate(value as DateLike), effectiveDateGranularity),\n  )\n  const selectedRange = $derived<DateRange>(\n    normalizeDateRangeForGranularity(\n      normalizeDateRange(value as DateRangeLike),\n      effectiveDateGranularity,\n    ),\n  )\n\n  const selectedDates = $derived(\n    range ? rangeToDates(selectedRange) : selectedDate ? [selectedDate] : [],\n  )\n  const displayValue = $derived(\n    range\n      ? formatRangeDisplay(selectedRange, effectiveWithTime, effectiveDateGranularity)\n      : formatDisplay(selectedDate, effectiveWithTime, effectiveDateGranularity),\n  )\n  const displayFieldSize = $derived(\n    Math.max(range ? 22 : effectiveWithTime ? 16 : 10, (displayValue || placeholder || \"\").length),\n  )\n  const hiddenValue = $derived(\n    range ? serializeDateRange(selectedRange) : selectedDate ? selectedDate.toISOString() : \"\",\n  )\n  const hasValue = $derived(range ? !!(selectedRange.start || selectedRange.end) : !!selectedDate)\n  const triggerIcon = $derived(\n    !range && timestamp && hasValue ? mdiCalendarCheckOutline : mdiCalendarEdit,\n  )\n\n  const getCalendarContainer = () => {\n    const instance = (inputElement as any)?._kwFlatpickr\n    const container = instance?.calendarContainer\n\n    return container instanceof HTMLElement ? container : null\n  }\n\n  const repositionCalendar = () => {\n    if (typeof window === \"undefined\") return\n\n    window.requestAnimationFrame(() => {\n      const reposition = (inputElement as any)?._kwFlatpickrReposition\n      reposition?.()\n    })\n  }\n\n  const getCalendarGranularitySlot = () => {\n    const container = getCalendarContainer()\n\n    if (!container) return null\n\n    const existing = container.querySelector(\".kw-flatpickr__granularity-slot\")\n\n    if (existing instanceof HTMLDivElement) return existing\n\n    const slot = document.createElement(\"div\")\n    slot.className = \"kw-flatpickr__granularity-slot\"\n    container.insertBefore(slot, container.firstChild)\n\n    return slot\n  }\n\n  const unmountGranularityToggle = () => {\n    if (!mountedGranularityToggle) return\n\n    unmount(mountedGranularityToggle)\n    mountedGranularityToggle = null\n\n    const container = getCalendarContainer()\n    const slot = container?.querySelector(\".kw-flatpickr__granularity-slot\")\n\n    if (slot instanceof HTMLDivElement && slot.childElementCount === 0) {\n      slot.remove()\n    }\n  }\n\n  const mountGranularityToggle = () => {\n    if (!range || !isPickerOpen) return\n\n    unmountGranularityToggle()\n\n    const slot = getCalendarGranularitySlot()\n\n    if (!slot) return\n\n    mountedGranularityToggle = mount(ToggleCTA as any, {\n      target: slot,\n      props: {\n        options: granularityToggleOptions,\n        value: effectiveDateGranularity,\n        darkMode: !effectiveBrightBackground,\n        small: true,\n        onChange: handleGranularityToggle,\n      },\n    })\n\n    repositionCalendar()\n  }\n\n  const handlePickerOpen = () => {\n    isPickerOpen = true\n  }\n\n  const handlePickerClose = () => {\n    isPickerOpen = false\n  }\n\n  onDestroy(() => {\n    unmountGranularityToggle()\n  })\n\n  $effect(() => {\n    if (!range || !isPickerOpen) {\n      unmountGranularityToggle()\n\n      return\n    }\n\n    effectiveDateGranularity\n    effectiveBrightBackground\n    granularityToggleOptions\n    mountGranularityToggle()\n\n    return () => {\n      unmountGranularityToggle()\n    }\n  })\n\n  const flatpickrConfig = $derived<FlatpickrConfig>({\n    dates: selectedDates,\n    displayValue,\n    mode: range ? \"range\" : \"single\",\n    withTime: effectiveWithTime,\n    minuteIncrement,\n    disabled,\n    brightBackground: effectiveBrightBackground,\n    granularity: effectiveDateGranularity,\n    onOpen: handlePickerOpen,\n    onClose: handlePickerClose,\n    onChange: (nextDates) => {\n      if (range) {\n        commitRangeValue(\n          normalizeDateRangeForGranularity(\n            {\n              start: nextDates[0] ?? null,\n              end: nextDates[1] ?? null,\n            },\n            effectiveDateGranularity,\n          ),\n          true,\n        )\n\n        return\n      }\n\n      commitSingleValue(\n        normalizeDateForGranularity(nextDates[0] ?? null, effectiveDateGranularity),\n        true,\n      )\n    },\n  })\n\n  const commitSingleValue = (next: Date | null, triggerChange: boolean) => {\n    value = next\n    onValueChange(next)\n\n    if (triggerChange) {\n      const changeEvent = new CustomEvent(\"change\", { detail: { value: next } })\n      onChange(changeEvent)\n    }\n  }\n\n  const commitRangeValue = (next: DateRange, triggerChange: boolean) => {\n    value = next\n    onValueChange(next)\n\n    if (triggerChange) {\n      const changeEvent = new CustomEvent(\"change\", { detail: { value: next } })\n      onChange(changeEvent)\n    }\n  }\n\n  const openPicker = () => {\n    if (disabled) return\n\n    inputElement?.focus()\n    const instance = (inputElement as any)?._kwFlatpickr\n    instance?.open?.()\n  }\n\n  const closePicker = () => {\n    const instance = (inputElement as any)?._kwFlatpickr\n    instance?.close?.()\n  }\n\n  const clearDate = (event?: Event) => {\n    event?.stopPropagation()\n\n    if (disabled) return\n\n    if (range) {\n      commitRangeValue({ start: null, end: null }, true)\n    } else {\n      commitSingleValue(null, true)\n    }\n\n    closePicker()\n  }\n\n  const handleTriggerClick = (event: Event) => {\n    event.stopPropagation()\n\n    if (disabled) return\n\n    if (!range && timestamp) {\n      if (selectedDate) {\n        clearDate()\n\n        return\n      }\n\n      const now = new Date()\n      commitSingleValue(now, true)\n      const instance = (inputElement as any)?._kwFlatpickr\n      instance?.setDate?.(now, false)\n\n      return\n    }\n\n    openPicker()\n  }\n\n  const handleKeydown = (event: KeyboardEvent) => {\n    event.stopPropagation()\n\n    if (event.key === \"Enter\" || event.key === \" \") {\n      event.preventDefault()\n      openPicker()\n    }\n\n    if (event.key === \"Escape\" && isPickerOpen) {\n      event.preventDefault()\n      closePicker()\n    }\n  }\n\n  const readGranularity = (value: string): DateGranularity | null => {\n    if (value === \"day\" || value === \"month\") return value\n\n    return null\n  }\n\n  const setGranularity = (nextValue: DateGranularity) => {\n    const nextGranularity = readGranularity(nextValue)\n\n    if (disabled || !nextGranularity || nextGranularity === effectiveDateGranularity) return\n\n    // Capture the selection before changing the mode: the derived values\n    // immediately normalize to the new granularity after this assignment.\n    const previousRange = selectedRange\n    const previousDate = selectedDate\n    dateGranularity = nextGranularity\n\n    if (range) {\n      const normalizedRange = normalizeDateRangeForGranularity(previousRange, nextGranularity)\n\n      if (!dateRangesEqual(normalizedRange, previousRange)) {\n        commitRangeValue(normalizedRange, true)\n      }\n\n      return\n    }\n\n    const normalizedDate = normalizeDateForGranularity(previousDate, nextGranularity)\n\n    if (!datesEqual(normalizedDate, previousDate)) {\n      commitSingleValue(normalizedDate, true)\n    }\n  }\n\n  const handleGranularityToggle = (value: string) => {\n    const nextGranularity = readGranularity(value)\n\n    if (!nextGranularity) return\n\n    setGranularity(nextGranularity)\n  }\n\n  const bindFieldKeydown = (node: HTMLInputElement) => {\n    node.addEventListener(\"keydown\", handleKeydown)\n\n    return {\n      destroy() {\n        node.removeEventListener(\"keydown\", handleKeydown)\n      },\n    }\n  }\n\n  const bindClearAction = (node: HTMLButtonElement) => {\n    node.addEventListener(\"click\", clearDate)\n\n    return {\n      destroy() {\n        node.removeEventListener(\"click\", clearDate)\n      },\n    }\n  }\n</script>\n\n<div class=\"date-input-shell\">\n  <div\n    class={`date-input ${classList}`.trim()}\n    class:brightBackground={effectiveBrightBackground}\n    class:disabled\n    class:hasValue\n    data-surface-tone={surfaceToneAttribute}\n    style={`--kw-date-input-field-min:${displayFieldSize}ch;`}\n    role=\"group\"\n    aria-disabled={disabled}\n  >\n    <DateInputTrigger\n      icon={triggerIcon}\n      {timestamp}\n      {hasValue}\n      {disabled}\n      onClick={handleTriggerClick}\n    />\n\n    <input\n      {id}\n      class=\"date-input__field\"\n      type=\"text\"\n      name={`${id}-display`}\n      use:flatpickrAction={flatpickrConfig}\n      use:bindFieldKeydown\n      bind:this={inputElement}\n      {placeholder}\n      value={displayValue}\n      size={displayFieldSize}\n      readonly\n      {disabled}\n      aria-label={ariaLabel ?? placeholder}\n      aria-readonly=\"true\"\n      aria-haspopup=\"dialog\"\n    />\n\n    {#if hasValue && !disabled}\n      <button\n        type=\"button\"\n        class=\"date-input__clear\"\n        aria-label={range ? \"Zeitraum löschen\" : \"Datum löschen\"}\n        use:bindClearAction\n      >\n        <Icon path={mdiClose} size=\"0.9rem\" />\n      </button>\n    {/if}\n\n    <input type=\"hidden\" name={name || id} value={hiddenValue} {required} {disabled} />\n  </div>\n</div>\n\n<style lang=\"less\">\n  .date-input-shell {\n    position: relative;\n    width: 100%;\n  }\n\n  .date-input {\n    --kw-date-input-text: var(--text-100);\n    --kw-date-input-border: var(--text-100);\n    --kw-date-input-focus-border: var(--primary-200);\n    --kw-date-input-placeholder: color-mix(in srgb, var(--text-100) 60%, transparent);\n    --kw-date-input-field-min: 10ch;\n\n    display: grid;\n    grid-template-columns: auto minmax(var(--kw-date-input-field-min), 1fr) auto;\n    align-items: center;\n    gap: 0.35rem;\n    padding: 0 12px 12px 18px;\n    width: 100%;\n    min-width: 0;\n    border-bottom: 1px solid var(--text-100);\n    color: var(--text-100);\n    background: transparent;\n    transition:\n      border-color 0.18s ease,\n      box-shadow 0.18s ease,\n      color 0.18s ease;\n\n    &:focus-within {\n      border-color: var(--primary-200);\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--primary-200) 80%, transparent);\n    }\n\n    &.disabled {\n      opacity: 0.6;\n      pointer-events: none;\n    }\n\n    &.brightBackground {\n      border-color: var(--text-invers-100);\n      color: var(--text-invers-100);\n    }\n\n    &.brightBackground:focus-within {\n      border-color: var(--primary-100);\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--primary-100) 80%, transparent);\n    }\n\n    :global(.form.light) & {\n      border-color: var(--text-100);\n      color: var(--text-100);\n    }\n\n    :global(.form.light) &:focus-within {\n      border-color: var(--primary-200);\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--primary-200) 80%, transparent);\n    }\n\n    &[data-surface-tone=\"light\"] {\n      --kw-date-input-text: var(--text-invers-100);\n      --kw-date-input-border: color-mix(in srgb, var(--text-invers-100) 30%, transparent);\n      --kw-date-input-focus-border: var(--primary-100);\n      --kw-date-input-placeholder: color-mix(in srgb, var(--text-invers-100) 56%, transparent);\n\n      border-color: var(--kw-date-input-border) !important;\n      color: var(--kw-date-input-text) !important;\n    }\n\n    &[data-surface-tone=\"light\"]:focus-within {\n      border-color: var(--kw-date-input-focus-border) !important;\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--kw-date-input-focus-border) 80%, transparent) !important;\n    }\n\n    &[data-surface-tone=\"dark\"] {\n      --kw-date-input-text: var(--text-100);\n      --kw-date-input-border: color-mix(in srgb, var(--text-100) 46%, transparent);\n      --kw-date-input-focus-border: var(--primary-200);\n      --kw-date-input-placeholder: color-mix(in srgb, var(--text-100) 64%, transparent);\n\n      border-color: var(--kw-date-input-border) !important;\n      color: var(--kw-date-input-text) !important;\n    }\n\n    &[data-surface-tone=\"dark\"]:focus-within {\n      border-color: var(--kw-date-input-focus-border) !important;\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--kw-date-input-focus-border) 80%, transparent) !important;\n    }\n\n    &[data-surface-tone] .date-input__field {\n      color: var(--kw-date-input-text) !important;\n    }\n\n    &[data-surface-tone] .date-input__field::placeholder {\n      color: var(--kw-date-input-placeholder) !important;\n    }\n  }\n\n  .date-input__icon {\n    color: currentColor;\n    opacity: 0.8;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .date-input__field {\n    width: 100%;\n    border: none;\n    outline: none;\n    background: transparent;\n    color: currentColor;\n    padding: 0;\n    font-size: 1rem;\n    line-height: 1.35;\n    min-height: 38px;\n    min-width: 0;\n    caret-color: transparent;\n\n    &::placeholder {\n      color: color-mix(in srgb, currentColor 60%, transparent);\n    }\n\n    &:disabled {\n      opacity: 0.7;\n      cursor: not-allowed;\n    }\n  }\n\n  .date-input__clear {\n    background: transparent;\n    border: none;\n    color: currentColor;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 0.15rem;\n    border-radius: 999px;\n    transition:\n      background-color 0.15s ease,\n      color 0.15s ease;\n\n    &:hover,\n    &:focus-visible {\n      cursor: pointer;\n      background-color: color-mix(in srgb, currentColor 12%, transparent);\n    }\n  }\n\n  :global(.kw-flatpickr) {\n    --kw-flatpickr-bg: var(--neutral-white, #ffffff);\n    --kw-flatpickr-text: var(--text-invers-100, #2f4858);\n    --kw-flatpickr-border: var(--input-border, rgba(71, 84, 103, 0.24));\n    --kw-flatpickr-shadow: var(--panel-shadow, 0 18px 36px rgba(15, 23, 42, 0.25));\n    --kw-flatpickr-hover: color-mix(in srgb, var(--kw-flatpickr-text) 10%, transparent);\n    --kw-flatpickr-hover-strong: color-mix(in srgb, var(--kw-flatpickr-text) 16%, transparent);\n    --kw-flatpickr-muted: color-mix(in srgb, var(--kw-flatpickr-text) 70%, transparent);\n\n    font-family: var(--font-family-regular, var(--font-family-base, \"Outfit\", sans-serif));\n    // Flatpickr measures the day grid; keep our padding outside that width.\n    box-sizing: content-box !important;\n    background: var(--kw-flatpickr-bg);\n    border: 1px solid var(--kw-flatpickr-border);\n    border-radius: 0;\n    box-shadow: var(--kw-flatpickr-shadow);\n    color: var(--kw-flatpickr-text);\n    overflow: hidden;\n    padding: 0.35rem 0.45rem 0.5rem 0.45rem;\n\n    &.kw-flatpickr--dark {\n      --kw-flatpickr-bg: var(--surface-overlay, var(--bg-075, #241f1f));\n      --kw-flatpickr-text: var(--text-100, #f3eed9);\n      --kw-flatpickr-border: var(--surface-border, rgba(243, 238, 217, 0.12));\n      --kw-flatpickr-shadow: var(--kontext-shadow, 0 26px 52px rgba(10, 8, 8, 0.55));\n    }\n\n    &.arrowTop:before,\n    &.arrowTop:after,\n    &.arrowBottom:before,\n    &.arrowBottom:after {\n      display: none;\n    }\n\n    .flatpickr-months,\n    .flatpickr-time {\n      background: transparent;\n    }\n\n    .flatpickr-months {\n      border-bottom: 1px solid color-mix(in srgb, var(--kw-flatpickr-border) 80%, transparent);\n      padding-bottom: 0.25rem;\n    }\n\n    .kw-flatpickr__granularity-slot {\n      display: flex;\n      justify-content: flex-end;\n      margin-bottom: 0.45rem;\n      padding-bottom: 0.45rem;\n      border-bottom: 1px solid color-mix(in srgb, var(--kw-flatpickr-border) 80%, transparent);\n    }\n\n    .flatpickr-prev-month,\n    .flatpickr-next-month {\n      color: currentColor;\n      fill: currentColor;\n      opacity: 0.85;\n\n      &:hover {\n        opacity: 1;\n      }\n    }\n\n    .flatpickr-month {\n      color: currentColor;\n    }\n\n    .flatpickr-current-month {\n      font-family: var(--font-family-bold, var(--font-family-regular, \"Outfit\", sans-serif));\n      text-transform: uppercase;\n      letter-spacing: 0.02em;\n    }\n\n    .flatpickr-weekday {\n      color: var(--kw-flatpickr-muted);\n      font-weight: 600;\n    }\n\n    .flatpickr-day {\n      color: currentColor;\n      border-radius: 0;\n      transition:\n        background-color 0.15s ease,\n        color 0.15s ease,\n        box-shadow 0.15s ease;\n\n      &.today {\n        border-color: color-mix(in srgb, var(--primary-200) 42%, transparent);\n      }\n\n      &:hover {\n        background-color: var(--kw-flatpickr-hover);\n      }\n\n      &.selected,\n      &.startRange,\n      &.endRange,\n      &.selected.inRange,\n      &.startRange.inRange,\n      &.endRange.inRange {\n        background: var(--primary-100);\n        color: var(--text-100);\n        box-shadow: 0 10px 24px color-mix(in srgb, var(--primary-100) 30%, transparent);\n      }\n    }\n\n    .flatpickr-day:hover,\n    .flatpickr-day.inRange {\n      background-color: var(--kw-flatpickr-hover-strong);\n    }\n\n    .flatpickr-time {\n      border-top: 1px solid color-mix(in srgb, var(--kw-flatpickr-border) 80%, transparent);\n    }\n\n    .flatpickr-time input {\n      color: currentColor;\n      background: transparent !important;\n      border: 1px solid color-mix(in srgb, var(--kw-flatpickr-border) 85%, transparent);\n      border-radius: 0;\n\n      &:focus {\n        outline: none;\n        box-shadow: var(\n          --input-focus-ring,\n          0 0 0 3px color-mix(in srgb, var(--primary-100) 26%, transparent)\n        );\n        border-color: color-mix(in srgb, var(--primary-100) 55%, transparent);\n      }\n    }\n  }\n</style>\n","import { autoUpdate as floatingAutoUpdate, computePosition, arrow as arrowDom } from './dom/index.js';\nimport { get, writable } from 'svelte/store';\nimport { onDestroy, tick } from 'svelte';\nexport const createFloatingActions = (initOptions) => {\n    let referenceElement;\n    let floatingElement;\n    const defaultOptions = {\n        autoUpdate: true\n    };\n    let options = initOptions ?? {};\n    const getOptions = (mixin) => {\n        return { ...defaultOptions, ...(initOptions || {}), ...(mixin || {}) };\n    };\n    const update = (updateOptions) => {\n        if (referenceElement && floatingElement) {\n            options = getOptions(updateOptions);\n            computePosition(referenceElement, floatingElement, options).then((v) => {\n                Object.assign(floatingElement.style, {\n                    position: v.strategy,\n                    left: `${v.x}px`,\n                    top: `${v.y}px`\n                });\n                options?.onComputed && options.onComputed(v);\n            });\n        }\n    };\n    const referenceAction = (node) => {\n        if ('subscribe' in node) {\n            setupVirtualElementObserver(node);\n            return {};\n        }\n        else {\n            referenceElement = node;\n            update();\n        }\n    };\n    const contentAction = (node, contentOptions) => {\n        let autoUpdateDestroy;\n        floatingElement = node;\n        options = getOptions(contentOptions);\n        setTimeout(() => update(contentOptions), 0); //tick doesn't work\n        update(contentOptions);\n        const destroyAutoUpdate = () => {\n            if (autoUpdateDestroy) {\n                autoUpdateDestroy();\n                autoUpdateDestroy = undefined;\n            }\n        };\n        const initAutoUpdate = (_options = options) => {\n            return new Promise((resolve) => {\n                const { autoUpdate } = _options || {};\n                destroyAutoUpdate();\n                if (autoUpdate !== false) {\n                    tick().then(() => {\n                        resolve(floatingAutoUpdate(referenceElement, floatingElement, () => update(_options), autoUpdate === true ? {} : autoUpdate));\n                    });\n                }\n            });\n        };\n        initAutoUpdate().then((destroy) => (autoUpdateDestroy = destroy));\n        return {\n            update(contentOptions) {\n                update(contentOptions);\n                initAutoUpdate().then((destroy) => (autoUpdateDestroy = destroy));\n            },\n            destroy() {\n                destroyAutoUpdate();\n            }\n        };\n    };\n    const setupVirtualElementObserver = (node) => {\n        const unsubscribe = node.subscribe(($node) => {\n            if (referenceElement === undefined) {\n                referenceElement = $node;\n                update();\n            }\n            else {\n                // Preserve the reference to the virtual element.\n                Object.assign(referenceElement, $node);\n                update();\n            }\n        });\n        onDestroy(unsubscribe);\n    };\n    return [referenceAction, contentAction, update];\n};\nexport const arrow = (options) => {\n    return {\n        name: 'arrow',\n        options,\n        fn(args) {\n            const element = get(options.element);\n            if (element) {\n                return arrowDom({\n                    element,\n                    padding: options.padding\n                }).fn(args);\n            }\n            return {};\n        }\n    };\n};\nexport const createArrowRef = () => writable(null);\nconst parseVirtualElementOptions = ({ getBoundingClientRect, getClientRects, ...options }) => {\n    return {\n        getBoundingClientRect: () => getBoundingClientRect,\n        getClientRects: getClientRects && (() => getClientRects),\n        ...options\n    };\n};\nexport const createVirtualElement = (options) => {\n    const store = writable(parseVirtualElementOptions(options));\n    const update = (options) => {\n        store.set(parseVirtualElementOptions(options));\n    };\n    return {\n        subscribe: store.subscribe,\n        update\n    };\n};\n","export default function filter({\n    loadOptions,\n    filterText,\n    items,\n    multiple,\n    value,\n    itemId,\n    groupBy,\n    filterSelectedItems,\n    itemFilter,\n    convertStringItemsToObjects,\n    filterGroupedItems,\n    label,\n}) {\n    if (items && loadOptions) return items;\n    if (!items) return [];\n\n    if (items && items.length > 0 && typeof items[0] !== 'object') {\n        items = convertStringItemsToObjects(items);\n    }\n\n    let filterResults = items.filter((item) => {\n        let matchesFilter = itemFilter(item[label], filterText, item);\n        if (matchesFilter && multiple && value?.length) {\n            matchesFilter = !value.some((x) => {\n                return filterSelectedItems ? x[itemId] === item[itemId] : false;\n            });\n        }\n\n        return matchesFilter;\n    });\n\n    if (groupBy) {\n        filterResults = filterGroupedItems(filterResults);\n    }\n\n    return filterResults;\n}\n","export default async function getItems({ dispatch, loadOptions, convertStringItemsToObjects, filterText }) {\n    let res = await loadOptions(filterText).catch((err) => {\n        console.warn('svelte-select loadOptions error :>> ', err);\n        dispatch('error', { type: 'loadOptions', details: err });\n    });\n\n    if (res && !res.cancelled) {        \n        if (res) {\n            if (res && res.length > 0 && typeof res[0] !== 'object') {\n                res = convertStringItemsToObjects(res);\n            }\n            \n            dispatch('loaded', { items: res });\n        } else {\n            res = [];\n        }\n\n        return {\n            filteredItems: res,\n            loading: false,\n            focused: true,\n            listOpen: true,\n        };\n    }\n}\n","<svg\n    width=\"100%\"\n    height=\"100%\"\n    viewBox=\"0 0 20 20\"\n    focusable=\"false\"\n    aria-hidden=\"true\">\n    <path\n    fill=\"currentColor\"\n        d=\"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747\n          3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0\n          1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502\n          0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0\n          0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\" />\n</svg>\n\n<style>\n  svg {\n      width: var(--chevron-icon-width, 20px);\n      height: var(--chevron-icon-width, 20px);\n      color: var(--chevron-icon-colour, currentColor);\n  }\n</style>","<svg\n    width=\"100%\"\n    height=\"100%\"\n    viewBox=\"-2 -2 50 50\"\n    focusable=\"false\"\n    aria-hidden=\"true\"\n    role=\"presentation\"\n>\n    <path\n        fill=\"currentColor\"\n        d=\"M34.923,37.251L24,26.328L13.077,37.251L9.436,33.61l10.923-10.923L9.436,11.765l3.641-3.641L24,19.047L34.923,8.124\n    l3.641,3.641L27.641,22.688L38.564,33.61L34.923,37.251z\"\n    />\n</svg>\n\n<style>\n    svg {\n        width: var(--clear-icon-width, 20px);\n        height: var(--clear-icon-width, 20px);\n        color: var(--clear-icon-color, currentColor);\n    }\n</style>","<svg class=\"loading\" viewBox=\"25 25 50 50\">\n    <circle\n        class=\"circle_path\"\n        cx=\"50\"\n        cy=\"50\"\n        r=\"20\"\n        fill=\"none\"\n        stroke=\"currentColor\"\n        stroke-width=\"5\"\n        stroke-miterlimit=\"10\" />\n</svg>\n\n<style>\n    .loading {\n        width: var(--spinner-width, 20px);\n        height: var(--spinner-height, 20px);\n        color: var(--spinner-color, var(--icons-color));\n        animation: rotate 0.75s linear infinite;\n        transform-origin: center center;\n        transform: none;\n    }\n\n    .circle_path {\n        stroke-dasharray: 90;\n        stroke-linecap: round;\n    }\n\n    @keyframes rotate {\n        100% {\n            transform: rotate(360deg);\n        }\n    }\n</style>","<script>\n    import { beforeUpdate, createEventDispatcher, onDestroy, onMount } from 'svelte';\n    import { offset, flip, shift } from 'svelte-floating-ui/dom';\n    import { createFloatingActions } from 'svelte-floating-ui';\n\n    const dispatch = createEventDispatcher();\n\n    import _filter from './filter';\n    import _getItems from './get-items';\n\n    import ChevronIcon from './ChevronIcon.svelte';\n    import ClearIcon from './ClearIcon.svelte';\n    import LoadingIcon from './LoadingIcon.svelte';\n\n    export let justValue = null; // read-only\n\n    export let filter = _filter;\n    export let getItems = _getItems;\n\n    export let id = null;\n    export let name = null;\n    export let container = undefined;\n    export let input = undefined;\n    export let multiple = false;\n    export let multiFullItemClearable = false;\n    export let disabled = false;\n    export let focused = false;\n    export let value = null;\n    export let filterText = '';\n    export let placeholder = 'Please select';\n    export let placeholderAlwaysShow = false;\n    export let items = null;\n    export let label = 'label';\n    export let itemFilter = (label, filterText, option) => `${label}`.toLowerCase().includes(filterText.toLowerCase());\n    export let groupBy = undefined;\n    export let groupFilter = (groups) => groups;\n    export let groupHeaderSelectable = false;\n    export let itemId = 'value';\n    export let loadOptions = undefined;\n    export let containerStyles = '';\n    export let hasError = false;\n    export let filterSelectedItems = true;\n    export let required = false;\n    export let closeListOnChange = true;\n    export let clearFilterTextOnBlur = true;\n\n    export let createGroupHeaderItem = (groupValue, item) => {\n        return {\n            value: groupValue,\n            [label]: groupValue,\n        };\n    };\n\n    export const getFilteredItems = () => {\n        return filteredItems;\n    };\n\n    export let searchable = true;\n    export let inputStyles = '';\n    export let clearable = true;\n    export let loading = false;\n    export let listOpen = false;\n\n    let timeout;\n    export let debounce = (fn, wait = 1) => {\n        clearTimeout(timeout);\n        timeout = setTimeout(fn, wait);\n    };\n\n    export let debounceWait = 300;\n    export let hideEmptyState = false;\n    export let inputAttributes = {};\n    export let listAutoWidth = true;\n    export let showChevron = false;\n    export let listOffset = 5;\n    export let hoverItemIndex = 0;\n    export let floatingConfig = {};\n\n    export { containerClasses as class };\n\n    let containerClasses = '';\n    let activeValue;\n    let prev_value;\n    let prev_filterText;\n    let prev_multiple;\n\n    function setValue() {\n        if (typeof value === 'string') {\n            let item = (items || []).find((item) => item[itemId] === value);\n            value = item || {\n                [itemId]: value,\n                label: value,\n            };\n        } else if (multiple && Array.isArray(value) && value.length > 0) {\n            value = value.map((item) => (typeof item === 'string' ? { value: item, label: item } : item));\n        }\n    }\n\n    let _inputAttributes;\n    function assignInputAttributes() {\n        _inputAttributes = Object.assign(\n            {\n                autocapitalize: 'none',\n                autocomplete: 'off',\n                autocorrect: 'off',\n                spellcheck: false,\n                tabindex: 0,\n                type: 'text',\n                'aria-autocomplete': 'list',\n            },\n            inputAttributes\n        );\n\n        if (id) {\n            _inputAttributes['id'] = id;\n        }\n\n        if (!searchable) {\n            _inputAttributes['readonly'] = true;\n        }\n    }\n\n    function convertStringItemsToObjects(_items) {\n        return _items.map((item, index) => {\n            return {\n                index,\n                value: item,\n                label: `${item}`,\n            };\n        });\n    }\n\n    function filterGroupedItems(_items) {\n        const groupValues = [];\n        const groups = {};\n\n        _items.forEach((item) => {\n            const groupValue = groupBy(item);\n\n            if (!groupValues.includes(groupValue)) {\n                groupValues.push(groupValue);\n                groups[groupValue] = [];\n\n                if (groupValue) {\n                    groups[groupValue].push(\n                        Object.assign(createGroupHeaderItem(groupValue, item), {\n                            id: groupValue,\n                            groupHeader: true,\n                            selectable: groupHeaderSelectable,\n                        })\n                    );\n                }\n            }\n\n            groups[groupValue].push(Object.assign({ groupItem: !!groupValue }, item));\n        });\n\n        const sortedGroupedItems = [];\n\n        groupFilter(groupValues).forEach((groupValue) => {\n            if (groups[groupValue]) sortedGroupedItems.push(...groups[groupValue]);\n        });\n\n        return sortedGroupedItems;\n    }\n\n    function dispatchSelectedItem() {\n        if (multiple) {\n            if (JSON.stringify(value) !== JSON.stringify(prev_value)) {\n                if (checkValueForDuplicates()) {\n                    dispatch('input', value);\n                }\n            }\n            return;\n        }\n\n        if (!prev_value || JSON.stringify(value[itemId]) !== JSON.stringify(prev_value[itemId])) {\n            dispatch('input', value);\n        }\n    }\n\n    function setupMulti() {\n        if (value) {\n            if (Array.isArray(value)) {\n                value = [...value];\n            } else {\n                value = [value];\n            }\n        }\n    }\n\n    function setupSingle() {\n        if (value) value = null;\n    }\n\n    $: if ((items, value)) setValue();\n    $: if (inputAttributes || !searchable) assignInputAttributes();\n    $: if (multiple) setupMulti();\n    $: if (prev_multiple && !multiple) setupSingle();\n    $: if (multiple && value && value.length > 1) checkValueForDuplicates();\n    $: if (value) dispatchSelectedItem();\n    $: if (!value && multiple && prev_value) dispatch('input', value);\n    $: if (!focused && input) closeList();\n    $: if (filterText !== prev_filterText) setupFilterText();\n    $: if (!multiple && listOpen && value && filteredItems) setValueIndexAsHoverIndex();\n    $: dispatchHover(hoverItemIndex);\n\n    function setValueIndexAsHoverIndex() {\n        const valueIndex = filteredItems.findIndex((i) => {\n            return i[itemId] === value[itemId];\n        });\n\n        checkHoverSelectable(valueIndex, true);\n    }\n\n    function dispatchHover(i) {\n        dispatch('hoverItem', i);\n    }\n\n    function checkHoverSelectable(startingIndex = 0, ignoreGroup) {\n        hoverItemIndex = startingIndex < 0 ? 0 : startingIndex;\n        if (!ignoreGroup && groupBy && filteredItems[hoverItemIndex] && !filteredItems[hoverItemIndex].selectable) {\n            setHoverIndex(1);\n        }\n    }\n\n    function setupFilterText() {\n        if (!loadOptions && filterText.length === 0) return;\n\n        if (loadOptions) {\n            debounce(async function () {\n                loading = true;\n                let res = await getItems({\n                    dispatch,\n                    loadOptions,\n                    convertStringItemsToObjects,\n                    filterText,\n                });\n\n                if (res) {\n                    loading = res.loading;\n                    listOpen = listOpen ? res.listOpen : filterText.length > 0 ? true : false;\n                    focused = listOpen && res.focused;\n                    items = groupBy ? filterGroupedItems(res.filteredItems) : res.filteredItems;\n                } else {\n                    loading = false;\n                    focused = true;\n                    listOpen = true;\n                }\n            }, debounceWait);\n        } else {\n            listOpen = true;\n\n            if (multiple) {\n                activeValue = undefined;\n            }\n        }\n    }\n\n    $: hasValue = multiple ? value && value.length > 0 : value;\n    $: hideSelectedItem = hasValue && filterText.length > 0;\n    $: showClear = hasValue && clearable && !disabled && !loading;\n    $: placeholderText =\n        placeholderAlwaysShow && multiple\n            ? placeholder\n            : multiple && value?.length === 0\n            ? placeholder\n            : value\n            ? ''\n            : placeholder;\n    $: ariaSelection = value ? handleAriaSelection(multiple) : '';\n    $: ariaContext = handleAriaContent({ filteredItems, hoverItemIndex, focused, listOpen });\n    $: updateValueDisplay(items);\n    $: justValue = computeJustValue(multiple, value, itemId);\n    $: if (!multiple && prev_value && !value) dispatch('input', value);\n    $: filteredItems = filter({\n        loadOptions,\n        filterText,\n        items,\n        multiple,\n        value,\n        itemId,\n        groupBy,\n        label,\n        filterSelectedItems,\n        itemFilter,\n        convertStringItemsToObjects,\n        filterGroupedItems,\n    });\n    $: if (listOpen && filteredItems && !multiple && !value) checkHoverSelectable();\n    $: handleFilterEvent(filteredItems);\n    $: if (container && floatingConfig) floatingUpdate(Object.assign(_floatingConfig, floatingConfig));\n    $: listDom = !!list;\n    $: listMounted(list, listOpen);\n    $: if (listOpen && container && list) setListWidth();\n    $: scrollToHoverItem = hoverItemIndex;\n    $: if (listOpen && multiple) hoverItemIndex = 0;\n    $: if (input && listOpen && !focused) handleFocus();\n    $: if (filterText) hoverItemIndex = 0;\n\n    function handleFilterEvent(items) {\n        if (listOpen) dispatch('filter', items);\n    }\n\n    beforeUpdate(async () => {\n        prev_value = value;\n        prev_filterText = filterText;\n        prev_multiple = multiple;\n    });\n\n    function computeJustValue() {\n        if (multiple) return value ? value.map((item) => item[itemId]) : null;\n        return value ? value[itemId] : value;\n    }\n\n    function checkValueForDuplicates() {\n        let noDuplicates = true;\n        if (value) {\n            const ids = [];\n            const uniqueValues = [];\n\n            value.forEach((val) => {\n                if (!ids.includes(val[itemId])) {\n                    ids.push(val[itemId]);\n                    uniqueValues.push(val);\n                } else {\n                    noDuplicates = false;\n                }\n            });\n\n            if (!noDuplicates) value = uniqueValues;\n        }\n        return noDuplicates;\n    }\n\n    function findItem(selection) {\n        let matchTo = selection ? selection[itemId] : value[itemId];\n        return items.find((item) => item[itemId] === matchTo);\n    }\n\n    function updateValueDisplay(items) {\n        if (!items || items.length === 0 || items.some((item) => typeof item !== 'object')) return;\n        if (!value || (multiple ? value.some((selection) => !selection || !selection[itemId]) : !value[itemId])) return;\n\n        if (Array.isArray(value)) {\n            value = value.map((selection) => findItem(selection) || selection);\n        } else {\n            value = findItem() || value;\n        }\n    }\n\n    async function handleMultiItemClear(i) {\n        const itemToRemove = value[i];\n\n        if (value.length === 1) {\n            value = undefined;\n        } else {\n            value = value.filter((item) => {\n                return item !== itemToRemove;\n            });\n        }\n\n        dispatch('clear', itemToRemove);\n    }\n\n    function handleKeyDown(e) {\n        if (!focused) return;\n        e.stopPropagation();\n        switch (e.key) {\n            case 'Escape':\n                e.preventDefault();\n                closeList();\n                break;\n            case 'Enter':\n                e.preventDefault();\n\n                if (listOpen) {\n                    if (filteredItems.length === 0) break;\n                    const hoverItem = filteredItems[hoverItemIndex];\n\n                    if (value && !multiple && value[itemId] === hoverItem[itemId]) {\n                        closeList();\n                        break;\n                    } else {\n                        handleSelect(filteredItems[hoverItemIndex]);\n                    }\n                }\n\n                break;\n            case 'ArrowDown':\n                e.preventDefault();\n\n                if (listOpen) {\n                    setHoverIndex(1);\n                } else {\n                    listOpen = true;\n                    activeValue = undefined;\n                }\n\n                break;\n            case 'ArrowUp':\n                e.preventDefault();\n\n                if (listOpen) {\n                    setHoverIndex(-1);\n                } else {\n                    listOpen = true;\n                    activeValue = undefined;\n                }\n\n                break;\n            case 'Tab':\n                if (listOpen && focused) {\n                    if (\n                        filteredItems.length === 0 ||\n                        (value && value[itemId] === filteredItems[hoverItemIndex][itemId])\n                    )\n                        return closeList();\n\n                    e.preventDefault();\n                    handleSelect(filteredItems[hoverItemIndex]);\n                    closeList();\n                }\n\n                break;\n            case 'Backspace':\n                if (!multiple || filterText.length > 0) return;\n\n                if (multiple && value && value.length > 0) {\n                    handleMultiItemClear(activeValue !== undefined ? activeValue : value.length - 1);\n                    if (activeValue === 0 || activeValue === undefined) break;\n                    activeValue = value.length > activeValue ? activeValue - 1 : undefined;\n                }\n\n                break;\n            case 'ArrowLeft':\n                if (!value || !multiple || filterText.length > 0) return;\n                if (activeValue === undefined) {\n                    activeValue = value.length - 1;\n                } else if (value.length > activeValue && activeValue !== 0) {\n                    activeValue -= 1;\n                }\n                break;\n            case 'ArrowRight':\n                if (!value || !multiple || filterText.length > 0 || activeValue === undefined) return;\n                if (activeValue === value.length - 1) {\n                    activeValue = undefined;\n                } else if (activeValue < value.length - 1) {\n                    activeValue += 1;\n                }\n                break;\n        }\n    }\n\n    function handleFocus(e) {\n        if (focused && input === document?.activeElement) return;\n        if (e) dispatch('focus', e);\n        input?.focus();\n        focused = true;\n    }\n\n    async function handleBlur(e) {\n        if (isScrolling) return;\n        if (listOpen || focused) {\n            dispatch('blur', e);\n            closeList();\n            focused = false;\n            activeValue = undefined;\n            input?.blur();\n        }\n    }\n\n    function handleClick() {\n        if (disabled) return;\n        if (filterText.length > 0) return listOpen = true;\n        listOpen = !listOpen;\n    }\n\n    export function handleClear() {\n        dispatch('clear', value);\n        value = undefined;\n        closeList();\n        handleFocus();\n    }\n\n    onMount(() => {\n        if (listOpen) focused = true;\n        if (focused && input) input.focus();\n    });\n\n    function itemSelected(selection) {\n        if (selection) {\n            filterText = '';\n            const item = Object.assign({}, selection);\n\n            if (item.groupHeader && !item.selectable) return;\n            value = multiple ? (value ? value.concat([item]) : [item]) : (value = item);\n\n            setTimeout(() => {\n                if (closeListOnChange) closeList();\n                activeValue = undefined;\n                dispatch('change', value);\n                dispatch('select', selection);\n            });\n        }\n    }\n\n    function closeList() {\n        if (clearFilterTextOnBlur) {\n            filterText = '';\n        }\n        listOpen = false;\n    }\n\n    export let ariaValues = (values) => {\n        return `Option ${values}, selected.`;\n    };\n\n    export let ariaListOpen = (label, count) => {\n        return `You are currently focused on option ${label}. There are ${count} results available.`;\n    };\n\n    export let ariaFocused = () => {\n        return `Select is focused, type to refine list, press down to open the menu.`;\n    };\n\n    function handleAriaSelection(_multiple) {\n        let selected = undefined;\n\n        if (_multiple && value.length > 0) {\n            selected = value.map((v) => v[label]).join(', ');\n        } else {\n            selected = value[label];\n        }\n\n        return ariaValues(selected);\n    }\n\n    function handleAriaContent() {\n        if (!filteredItems || filteredItems.length === 0) return '';\n        let _item = filteredItems[hoverItemIndex];\n        if (listOpen && _item) {\n            let count = filteredItems ? filteredItems.length : 0;\n            return ariaListOpen(_item[label], count);\n        } else {\n            return ariaFocused();\n        }\n    }\n\n    let list = null;\n\n    let isScrollingTimer;\n    function handleListScroll() {\n        clearTimeout(isScrollingTimer);\n        isScrollingTimer = setTimeout(() => {\n            isScrolling = false;\n        }, 100);\n    }\n\n    function handleClickOutside(event) {\n        if (!listOpen && !focused && container && !container.contains(event.target) && !list?.contains(event.target)) {\n            handleBlur();\n        }\n    }\n\n    onDestroy(() => {\n        list?.remove();\n    });\n\n    let isScrolling = false;\n\n    function handleSelect(item) {\n        if (!item || item.selectable === false) return;\n        itemSelected(item);\n    }\n\n    function handleHover(i) {\n        if (isScrolling) return;\n        hoverItemIndex = i;\n    }\n\n    function handleItemClick(args) {\n        const { item, i } = args;\n        if (item?.selectable === false) return;\n        if (value && !multiple && value[itemId] === item[itemId]) return closeList();\n        if (isItemSelectable(item)) {\n            hoverItemIndex = i;\n            handleSelect(item);\n        }\n    }\n\n    function setHoverIndex(increment) {\n        let selectableFilteredItems = filteredItems.filter(\n            (item) => !Object.hasOwn(item, 'selectable') || item.selectable === true\n        );\n\n        if (selectableFilteredItems.length === 0) {\n            return (hoverItemIndex = 0);\n        }\n\n        if (increment > 0 && hoverItemIndex === filteredItems.length - 1) {\n            hoverItemIndex = 0;\n        } else if (increment < 0 && hoverItemIndex === 0) {\n            hoverItemIndex = filteredItems.length - 1;\n        } else {\n            hoverItemIndex = hoverItemIndex + increment;\n        }\n\n        const hover = filteredItems[hoverItemIndex];\n\n        if (hover && hover.selectable === false) {\n            if (increment === 1 || increment === -1) setHoverIndex(increment);\n            return;\n        }\n    }\n\n    function isItemActive(item, value, itemId) {\n        if (multiple) return;\n        return value && value[itemId] === item[itemId];\n    }\n\n    function isItemFirst(itemIndex) {\n        return itemIndex === 0;\n    }\n\n    function isItemSelectable(item) {\n        return (item.groupHeader && item.selectable) || item.selectable || !item.hasOwnProperty('selectable');\n    }\n\n    const activeScroll = scrollAction;\n    const hoverScroll = scrollAction;\n\n    function scrollAction(node) {\n        return {\n            update(args) {\n                if (args.scroll) {\n                    handleListScroll();\n                    node.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n                }\n            },\n        };\n    }\n\n    function setListWidth() {\n        const { width } = container.getBoundingClientRect();\n        list.style.width = listAutoWidth ? width + 'px' : 'auto';\n    }\n\n    let _floatingConfig = {\n        strategy: 'absolute',\n        placement: 'bottom-start',\n        middleware: [offset(listOffset), flip(), shift()],\n        autoUpdate: false,\n    };\n\n    const [floatingRef, floatingContent, floatingUpdate] = createFloatingActions(_floatingConfig);\n\n    $: if (container && floatingConfig?.autoUpdate === undefined) {\n        _floatingConfig.autoUpdate = true;\n    }\n\n    let prefloat = true;\n    function listMounted(list, listOpen) {\n        if (!list || !listOpen) return (prefloat = true);\n        setTimeout(() => {\n            prefloat = false;\n        }, 0);\n    }\n</script>\n\n<svelte:window on:click={handleClickOutside} on:keydown={handleKeyDown} />\n\n<div\n    class=\"svelte-select {containerClasses}\"\n    class:multi={multiple}\n    class:disabled\n    class:focused\n    class:list-open={listOpen}\n    class:show-chevron={showChevron}\n    class:error={hasError}\n    style={containerStyles}\n    on:pointerup|preventDefault={handleClick}\n    bind:this={container}\n    use:floatingRef\n    role=\"none\">\n    {#if listOpen}\n        <div\n            use:floatingContent\n            bind:this={list}\n            class=\"svelte-select-list\"\n            class:prefloat\n            on:scroll={handleListScroll}\n            on:pointerup|preventDefault|stopPropagation\n            on:mousedown|preventDefault|stopPropagation\n\t\t\trole=\"none\">\n            {#if $$slots['list-prepend']}<slot name=\"list-prepend\" />{/if}\n            {#if $$slots.list}<slot name=\"list\" {filteredItems} />\n            {:else if filteredItems.length > 0}\n                {#each filteredItems as item, i}\n                    <div\n                        on:mouseover={() => handleHover(i)}\n                        on:focus={() => handleHover(i)}\n                        on:click|stopPropagation={() => handleItemClick({ item, i })}\n                        on:keydown|preventDefault|stopPropagation\n                        class=\"list-item\"\n                        tabindex=\"-1\"\n                        role=\"none\">\n                        <div\n                            use:activeScroll={{ scroll: isItemActive(item, value, itemId), listDom }}\n                            use:hoverScroll={{ scroll: scrollToHoverItem === i, listDom }}\n                            class=\"item\"\n                            class:list-group-title={item.groupHeader}\n                            class:active={isItemActive(item, value, itemId)}\n                            class:first={isItemFirst(i)}\n                            class:hover={hoverItemIndex === i}\n                            class:group-item={item.groupItem}\n                            class:not-selectable={item?.selectable === false}>\n                            <slot name=\"item\" {item} index={i}>\n                                {item?.[label]}\n                            </slot>\n                        </div>\n                    </div>\n                {/each}\n            {:else if !hideEmptyState}\n                <slot name=\"empty\">\n                    <div class=\"empty\">No options</div>\n                </slot>\n            {/if}\n            {#if $$slots['list-append']}<slot name=\"list-append\" />{/if}\n        </div>\n    {/if}\n\n    <span aria-live=\"polite\" aria-atomic=\"false\" aria-relevant=\"additions text\" class=\"a11y-text\">\n        {#if focused}\n            <span id=\"aria-selection\">{ariaSelection}</span>\n            <span id=\"aria-context\">\n                {ariaContext}\n            </span>\n        {/if}\n    </span>\n\n    <div class=\"prepend\">\n        <slot name=\"prepend\" />\n    </div>\n\n    <div class=\"value-container\">\n        {#if hasValue}\n            {#if multiple}\n                {#each value as item, i}\n                    <div\n                        class=\"multi-item\"\n                        class:active={activeValue === i}\n                        class:disabled\n                        on:click|preventDefault={() => (multiFullItemClearable ? handleMultiItemClear(i) : {})}\n                        on:keydown|preventDefault|stopPropagation\n                        role=\"none\">\n                        <span class=\"multi-item-text\">\n                            <slot name=\"selection\" selection={item} index={i}>\n                                {item[label]}\n                            </slot>\n                        </span>\n\n                        {#if !disabled && !multiFullItemClearable && ClearIcon}\n                            <div\n                                class=\"multi-item-clear\"\n                                on:pointerup|preventDefault|stopPropagation={() => handleMultiItemClear(i)}>\n                                <slot name=\"multi-clear-icon\">\n                                    <ClearIcon />\n                                </slot>\n                            </div>\n                        {/if}\n                    </div>\n                {/each}\n            {:else}\n                <div class=\"selected-item\" class:hide-selected-item={hideSelectedItem}>\n                    <slot name=\"selection\" selection={value}>\n                        {value[label]}\n                    </slot>\n                </div>\n            {/if}\n        {/if}\n\n        <input\n            on:keydown={handleKeyDown}\n            on:blur={handleBlur}\n            on:focus={handleFocus}\n            readOnly={!searchable}\n            {..._inputAttributes}\n            bind:this={input}\n            bind:value={filterText}\n            placeholder={placeholderText}\n            style={inputStyles}\n            {disabled} />\n    </div>\n\n    <div class=\"indicators\">\n        {#if loading}\n            <div class=\"icon loading\" aria-hidden=\"true\">\n                <slot name=\"loading-icon\">\n                    <LoadingIcon />\n                </slot>\n            </div>\n        {/if}\n\n        {#if showClear}\n            <button type=\"button\" class=\"icon clear-select\" on:click={handleClear}>\n                <slot name=\"clear-icon\">\n                    <ClearIcon />\n                </slot>\n            </button>\n        {/if}\n\n        {#if showChevron}\n            <div class=\"icon chevron\" aria-hidden=\"true\">\n                <slot name=\"chevron-icon\" {listOpen}>\n                    <ChevronIcon />\n                </slot>\n            </div>\n        {/if}\n    </div>\n\n    <slot name=\"input-hidden\" {value}>\n        <input {name} type=\"hidden\" value={value ? JSON.stringify(value) : null} />\n    </slot>\n\n    {#if required && (!value || value.length === 0)}\n        <slot name=\"required\" {value}>\n            <select class=\"required\" required tabindex=\"-1\" aria-hidden=\"true\" />\n        </slot>\n    {/if}\n</div>\n\n<style>\n    .svelte-select {\n        /* deprecating camelCase custom props in favour of kebab-case for v5 */\n        --borderRadius: var(--border-radius);\n        --clearSelectColor: var(--clear-select-color);\n        --clearSelectWidth: var(--clear-select-width);\n        --disabledBackground: var(--disabled-background);\n        --disabledBorderColor: var(--disabled-border-color);\n        --disabledColor: var(--disabled-color);\n        --disabledPlaceholderColor: var(--disabled-placeholder-color);\n        --disabledPlaceholderOpacity: var(--disabled-placeholder-opacity);\n        --errorBackground: var(--error-background);\n        --errorBorder: var(--error-border);\n        --groupItemPaddingLeft: var(--group-item-padding-left);\n        --groupTitleColor: var(--group-title-color);\n        --groupTitleFontSize: var(--group-title-font-size);\n        --groupTitleFontWeight: var(--group-title-font-weight);\n        --groupTitlePadding: var(--group-title-padding);\n        --groupTitleTextTransform: var(--group-title-text-transform);\n        --groupTitleBorderColor: var(--group-title-border-color);\n        --groupTitleBorderWidth: var(--group-title-border-width);\n        --groupTitleBorderStyle: var(--group-title-border-style);\n        --indicatorColor: var(--chevron-color);\n        --indicatorHeight: var(--chevron-height);\n        --indicatorWidth: var(--chevron-width);\n        --inputColor: var(--input-color);\n        --inputLeft: var(--input-left);\n        --inputLetterSpacing: var(--input-letter-spacing);\n        --inputMargin: var(--input-margin);\n        --inputPadding: var(--input-padding);\n        --itemActiveBackground: var(--item-active-background);\n        --itemColor: var(--item-color);\n        --itemFirstBorderRadius: var(--item-first-border-radius);\n        --itemHoverBG: var(--item-hover-bg);\n        --itemHoverColor: var(--item-hover-color);\n        --itemIsActiveBG: var(--item-is-active-bg);\n        --itemIsActiveColor: var(--item-is-active-color);\n        --itemIsNotSelectableColor: var(--item-is-not-selectable-color);\n        --itemPadding: var(--item-padding);\n        --listBackground: var(--list-background);\n        --listBorder: var(--list-border);\n        --listBorderRadius: var(--list-border-radius);\n        --listEmptyColor: var(--list-empty-color);\n        --listEmptyPadding: var(--list-empty-padding);\n        --listEmptyTextAlign: var(--list-empty-text-align);\n        --listMaxHeight: var(--list-max-height);\n        --listPosition: var(--list-position);\n        --listShadow: var(--list-shadow);\n        --listZIndex: var(--list-z-index);\n        --multiItemBG: var(--multi-item-bg);\n        --multiItemBorderRadius: var(--multi-item-border-radius);\n        --multiItemDisabledHoverBg: var(--multi-item-disabled-hover-bg);\n        --multiItemDisabledHoverColor: var(--multi-item-disabled-hover-color);\n        --multiItemHeight: var(--multi-item-height);\n        --multiItemMargin: var(--multi-item-margin);\n        --multiItemPadding: var(--multi-item-padding);\n        --multiSelectInputMargin: var(--multi-select-input-margin);\n        --multiSelectInputPadding: var(--multi-select-input-padding);\n        --multiSelectPadding: var(--multi-select-padding);\n        --placeholderColor: var(--placeholder-color);\n        --placeholderOpacity: var(--placeholder-opacity);\n        --selectedItemPadding: var(--selected-item-padding);\n        --spinnerColor: var(--spinner-color);\n        --spinnerHeight: var(--spinner-height);\n        --spinnerWidth: var(--spinner-width);\n\n        --internal-padding: 0 0 0 16px;\n\n        border: var(--border, 1px solid #d8dbdf);\n        border-radius: var(--border-radius, 6px);\n        min-height: var(--height, 42px);\n        position: relative;\n        display: flex;\n        align-items: stretch;\n        padding: var(--padding, var(--internal-padding));\n        background: var(--background, #fff);\n        margin: var(--margin, 0);\n        width: var(--width, 100%);\n        font-size: var(--font-size, 16px);\n        max-height: var(--max-height);\n    }\n\n    * {\n        box-sizing: var(--box-sizing, border-box);\n    }\n\n    .svelte-select:hover {\n        border: var(--border-hover, 1px solid #b2b8bf);\n    }\n\n    .value-container {\n        display: flex;\n        flex: 1 1 0%;\n        flex-wrap: wrap;\n        align-items: center;\n        gap: 5px 10px;\n        padding: var(--value-container-padding, 5px 0);\n        position: relative;\n        overflow: var(--value-container-overflow, hidden);\n        align-self: stretch;\n    }\n\n    .prepend,\n    .indicators {\n        display: flex;\n        flex-shrink: 0;\n        align-items: center;\n    }\n\n    .indicators {\n        position: var(--indicators-position);\n        top: var(--indicators-top);\n        right: var(--indicators-right);\n        bottom: var(--indicators-bottom);\n    }\n\n    input {\n        position: absolute;\n        cursor: default;\n        border: none;\n        color: var(--input-color, var(--item-color));\n        padding: var(--input-padding, 0);\n        letter-spacing: var(--input-letter-spacing, inherit);\n        margin: var(--input-margin, 0);\n        min-width: 10px;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        background: transparent;\n        font-size: var(--font-size, 16px);\n    }\n\n    :not(.multi) > .value-container > input {\n        width: 100%;\n        height: 100%;\n    }\n\n    input::placeholder {\n        color: var(--placeholder-color, #78848f);\n        opacity: var(--placeholder-opacity, 1);\n    }\n\n    input:focus {\n        outline: none;\n    }\n\n    .svelte-select.focused {\n        border: var(--border-focused, 1px solid #006fe8);\n        border-radius: var(--border-radius-focused, var(--border-radius, 6px));\n    }\n\n    .disabled {\n        background: var(--disabled-background, #ebedef);\n        border-color: var(--disabled-border-color, #ebedef);\n        color: var(--disabled-color, #c1c6cc);\n    }\n\n    .disabled input::placeholder {\n        color: var(--disabled-placeholder-color, #c1c6cc);\n        opacity: var(--disabled-placeholder-opacity, 1);\n    }\n\n    .selected-item {\n        position: relative;\n        overflow: var(--selected-item-overflow, hidden);\n        padding: var(--selected-item-padding, 0 20px 0 0);\n        text-overflow: ellipsis;\n        white-space: nowrap;\n        color: var(--selected-item-color, inherit);\n        font-size: var(--font-size, 16px);\n    }\n\n    .multi .selected-item {\n        position: absolute;\n        line-height: var(--height, 42px);\n        height: var(--height, 42px);\n    }\n\n    .selected-item:focus {\n        outline: none;\n    }\n\n    .hide-selected-item {\n        opacity: 0;\n    }\n\n    .icon {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .clear-select {\n        all: unset;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: var(--clear-select-width, 40px);\n        height: var(--clear-select-height, 100%);\n        color: var(--clear-select-color, var(--icons-color));\n        margin: var(--clear-select-margin, 0);\n        pointer-events: all;\n        flex-shrink: 0;\n    }\n\n    .clear-select:focus {\n        outline: var(--clear-select-focus-outline, 1px solid #006fe8);\n    }\n\n    .loading {\n        width: var(--loading-width, 40px);\n        height: var(--loading-height);\n        color: var(--loading-color, var(--icons-color));\n        margin: var(--loading--margin, 0);\n        flex-shrink: 0;\n    }\n\n    .chevron {\n        width: var(--chevron-width, 40px);\n        height: var(--chevron-height, 40px);\n        background: var(--chevron-background, transparent);\n        pointer-events: var(--chevron-pointer-events, none);\n        color: var(--chevron-color, var(--icons-color));\n        border: var(--chevron-border, 0 0 0 1px solid #d8dbdf);\n        flex-shrink: 0;\n    }\n\n    .multi {\n        padding: var(--multi-select-padding, var(--internal-padding));\n    }\n\n    .multi input {\n        padding: var(--multi-select-input-padding, 0);\n        position: relative;\n        margin: var(--multi-select-input-margin, 5px 0);\n        flex: 1 1 40px;\n    }\n\n    .svelte-select.error {\n        border: var(--error-border, 1px solid #ff2d55);\n        background: var(--error-background, #fff);\n    }\n\n    .a11y-text {\n        z-index: 9999;\n        border: 0px;\n        clip: rect(1px, 1px, 1px, 1px);\n        height: 1px;\n        width: 1px;\n        position: absolute;\n        overflow: hidden;\n        padding: 0px;\n        white-space: nowrap;\n    }\n\n    .multi-item {\n        background: var(--multi-item-bg, #ebedef);\n        margin: var(--multi-item-margin, 0);\n        outline: var(--multi-item-outline, 1px solid #ddd);\n        border-radius: var(--multi-item-border-radius, 4px);\n        height: var(--multi-item-height, 25px);\n        line-height: var(--multi-item-height, 25px);\n        display: flex;\n        cursor: default;\n        padding: var(--multi-item-padding, 0 5px);\n        overflow: hidden;\n        gap: var(--multi-item-gap, 4px);\n        outline-offset: -1px;\n        max-width: var(--multi-max-width, none);\n        color: var(--multi-item-color, var(--item-color));\n    }\n\n    .multi-item.disabled:hover {\n        background: var(--multi-item-disabled-hover-bg, #ebedef);\n        color: var(--multi-item-disabled-hover-color, #c1c6cc);\n    }\n\n    .multi-item-text {\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n    }\n\n    .multi-item-clear {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        --clear-icon-color: var(--multi-item-clear-icon-color, #000);\n    }\n\n    .multi-item.active {\n        outline: var(--multi-item-active-outline, 1px solid #006fe8);\n    }\n\n    .svelte-select-list {\n        box-shadow: var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24));\n        border-radius: var(--list-border-radius, 4px);\n        max-height: var(--list-max-height, 252px);\n        overflow-y: auto;\n        background: var(--list-background, #fff);\n        position: var(--list-position, absolute);\n        z-index: var(--list-z-index, 2);\n        border: var(--list-border);\n    }\n\n    .prefloat {\n        opacity: 0;\n        pointer-events: none;\n    }\n\n    .list-group-title {\n        color: var(--group-title-color, #8f8f8f);\n        cursor: default;\n        font-size: var(--group-title-font-size, 16px);\n        font-weight: var(--group-title-font-weight, 600);\n        height: var(--height, 42px);\n        line-height: var(--height, 42px);\n        padding: var(--group-title-padding, 0 20px);\n        text-overflow: ellipsis;\n        overflow-x: hidden;\n        white-space: nowrap;\n        text-transform: var(--group-title-text-transform, uppercase);\n        border-width: var(--group-title-border-width, medium);\n        border-style: var(--group-title-border-style, none);\n        border-color: var(--group-title-border-color, color);\n    }\n\n    .empty {\n        text-align: var(--list-empty-text-align, center);\n        padding: var(--list-empty-padding, 20px 0);\n        color: var(--list-empty-color, #78848f);\n    }\n\n    .item {\n        cursor: default;\n        height: var(--item-height, var(--height, 42px));\n        line-height: var(--item-line-height, var(--height, 42px));\n        padding: var(--item-padding, 0 20px);\n        color: var(--item-color, inherit);\n        text-overflow: ellipsis;\n        overflow: hidden;\n        white-space: nowrap;\n        transition: var(--item-transition, all 0.2s);\n        align-items: center;\n        width: 100%;\n    }\n\n    .item.group-item {\n        padding-left: var(--group-item-padding-left, 40px);\n    }\n\n    .item:active {\n        background: var(--item-active-background, #b9daff);\n    }\n\n    .item.active {\n        background: var(--item-is-active-bg, #007aff);\n        color: var(--item-is-active-color, #fff);\n    }\n\n    .item.first {\n        border-radius: var(--item-first-border-radius, 4px 4px 0 0);\n    }\n\n    .item.hover:not(.active) {\n        background: var(--item-hover-bg, #e7f2ff);\n        color: var(--item-hover-color, inherit);\n    }\n\n    .item.not-selectable,\n    .item.hover.item.not-selectable,\n    .item.active.item.not-selectable,\n    .item.not-selectable:active {\n        color: var(--item-is-not-selectable-color, #999);\n        background: transparent;\n    }\n\n    .required {\n        opacity: 0;\n        z-index: -1;\n        position: absolute;\n        top: 0;\n        left: 0;\n        bottom: 0;\n        right: 0;\n    }\n</style>\n","import type { MultiSelectRow, SelectItem } from \"./models\"\n\n/** Keep the field compact without losing the names of small selections. */\nexport function summarizeSelection(\n  values: string[],\n  items: SelectItem[],\n  placeholder: string,\n): string {\n  if (!values.length) return placeholder || \"Auswahl\"\n\n  const labels = new Map(items.map((item) => [item.value, item.label]))\n\n  if (values.length > 3 || values.some((value) => !labels.has(value)))\n    return `${values.length} ausgewählt`\n\n  return values.map((value) => labels.get(value)).join(\", \")\n}\n\n/** Group and filter options while retaining selected options in the menu. */\nexport function buildMultiSelectRows(\n  items: SelectItem[],\n  groupBy: ((item: SelectItem) => string | undefined) | undefined,\n  groupHeaderSelectable: boolean,\n  search: string,\n): MultiSelectRow[] {\n  const groups = new Map<string | undefined, SelectItem[]>()\n  for (const item of items) {\n    const group = groupBy?.(item) || undefined\n    const entries = groups.get(group) ?? []\n    entries.push(item)\n    groups.set(group, entries)\n  }\n  const query = search.toLowerCase()\n  const rows: MultiSelectRow[] = []\n  for (const [group, entries] of groups) {\n    const matches = entries.filter((item) => item.label.toLowerCase().includes(query))\n\n    if (!matches.length) continue\n\n    if (group) {\n      rows.push({\n        key: `group:${group}`,\n        item: {\n          value: group,\n          label: group,\n          name: group,\n          id: group,\n          groupHeader: true,\n          selectable: groupHeaderSelectable,\n        },\n        groupHeader: true,\n      })\n    }\n\n    for (const item of matches)\n      rows.push({\n        key: `option:${item.value}`,\n        item: { groupItem: !!group, ...item },\n        groupHeader: false,\n      })\n  }\n\n  return rows\n}\n","const SELECT_PORTAL_ID = \"kw-select-portal\"\n\nexport function ensureSelectPortalElement(): HTMLElement | null {\n  if (typeof document === \"undefined\") return null\n\n  const existing = document.getElementById(SELECT_PORTAL_ID)\n\n  if (existing) return existing\n\n  const portal = document.createElement(\"div\")\n  portal.id = SELECT_PORTAL_ID\n  Object.assign(portal.style, {\n    position: \"fixed\",\n    top: \"0\",\n    left: \"0\",\n    width: \"100%\",\n    height: \"0\",\n    zIndex: \"12000\",\n    pointerEvents: \"none\",\n  })\n  document.body.appendChild(portal)\n\n  return portal\n}\n\nexport function copySelectCssVariables(source: HTMLElement, target: HTMLElement): void {\n  if (typeof window === \"undefined\") return\n\n  const styles = window.getComputedStyle(source)\n  for (let index = 0; index < styles.length; index += 1) {\n    const property = styles.item(index)\n\n    if (property.startsWith(\"--\"))\n      target.style.setProperty(property, styles.getPropertyValue(property))\n  }\n  target.style.setProperty(\"--item-color\", \"var(--text-100)\")\n  target.style.setProperty(\"--item-hover-color\", \"var(--text-100)\")\n  target.style.setProperty(\"--item-is-active-color\", \"var(--text-100)\")\n  target.style.setProperty(\n    \"--item-is-not-selectable-color\",\n    \"var(--text-muted, rgba(243, 238, 217, 0.72))\",\n  )\n  target.style.setProperty(\"--list-empty-color\", \"var(--text-muted, rgba(243, 238, 217, 0.72))\")\n}\n","<script lang=\"ts\">\n  import { tick, type Snippet } from \"svelte\"\n  import { autoUpdate, computePosition, flip, offset, shift, size } from \"@floating-ui/dom\"\n  import { mdiCheck, mdiChevronDown, mdiClose, mdiMagnify } from \"@mdi/js\"\n  import { tooltip } from \"../../../../../../core/overlay/tooltip\"\n  import { escapeHtml } from \"../../../../../../core/security/index\"\n  import Icon from \"../../../../../primitives/_modules/icon/index\"\n  import {\n    buildMultiSelectRows,\n    summarizeSelection,\n  } from \"../../_shared/_logic/select-options/index\"\n  import {\n    copySelectCssVariables,\n    ensureSelectPortalElement,\n  } from \"../../_shared/_logic/select-options/index\"\n  import type { MultiSelectRow, SelectItem } from \"../../_shared/_logic/select-options/index\"\n\n  interface Props {\n    items: SelectItem[]\n    values: string[]\n    id: string\n    placeholder: string\n    ariaLabel: string\n    disabled: boolean\n    required: boolean\n    clearable: boolean\n    classList: string\n    brightBackground: boolean\n    surfaceTone: \"auto\" | \"light\" | \"dark\"\n    groupBy?: (item: SelectItem) => string | undefined\n    groupHeaderSelectable: boolean\n    itemRenderer?: Snippet<[{ item: SelectItem; disabled: boolean; active: boolean }]>\n    onValuesChange: (values: string[], items: SelectItem[]) => void\n  }\n\n  let {\n    items,\n    values,\n    id,\n    placeholder,\n    ariaLabel,\n    disabled,\n    required,\n    clearable,\n    classList,\n    brightBackground,\n    surfaceTone,\n    groupBy,\n    groupHeaderSelectable,\n    itemRenderer,\n    onValuesChange,\n  }: Props = $props()\n\n  let open = $state(false)\n  let search = $state(\"\")\n  let activeKey = $state<string | null>(null)\n  let validationRequested = $state(false)\n  let root: HTMLDivElement\n  let trigger: HTMLButtonElement\n  let searchInput = $state<HTMLInputElement>()\n  let listbox = $state<HTMLDivElement>()\n\n  const listId = $derived(`${id}-options`)\n  const allRows = $derived(buildMultiSelectRows(items, groupBy, groupHeaderSelectable, \"\"))\n  const summary = $derived(\n    summarizeSelection(\n      values,\n      allRows.map((row) => row.item),\n      placeholder,\n    ),\n  )\n  const previewItems = $derived.by(() => {\n    if (!values.length || values.length > 3) return []\n\n    const labels = new Map(allRows.map((row) => [row.item.value, row.item.label]))\n\n    if (values.some((value) => !labels.has(value))) return []\n\n    return values.map((value) => ({ value, label: labels.get(value) ?? value }))\n  })\n  const rows = $derived(buildMultiSelectRows(items, groupBy, groupHeaderSelectable, search))\n  const selectableRows = $derived(rows.filter((row) => row.item.selectable !== false))\n  const activeRow = $derived(\n    selectableRows.find((row) => row.key === activeKey) ?? selectableRows[0],\n  )\n  const activeIndex = $derived(activeRow ? rows.indexOf(activeRow) : -1)\n  const invalid = $derived(validationRequested && required && !values.length)\n\n  // A disabled field must not reopen its former menu when re-enabled.\n  $effect(() => {\n    if (disabled) closeMenu()\n  })\n\n  async function openMenu() {\n    if (disabled) return\n\n    search = \"\"\n    activeKey = null\n    open = true\n    await tick()\n\n    if (open && !disabled) searchInput?.focus()\n  }\n\n  function closeMenu(returnFocus = false) {\n    open = false\n    search = \"\"\n    activeKey = null\n\n    if (returnFocus) trigger?.focus()\n  }\n\n  function toggleRow(row: MultiSelectRow) {\n    if (disabled || row.item.selectable === false) return\n\n    activeKey = row.key\n    const next = values.includes(row.item.value)\n      ? values.filter((value) => value !== row.item.value)\n      : [...values, row.item.value]\n    const options = new Map(allRows.map((entry) => [entry.item.value, entry.item]))\n    onValuesChange(\n      next,\n      next.map((value) => options.get(value)).filter((item): item is SelectItem => !!item),\n    )\n  }\n\n  function clearSelection() {\n    if (disabled || required || !clearable) return\n\n    onValuesChange([], [])\n\n    if (open) searchInput?.focus()\n    else trigger?.focus()\n  }\n\n  async function moveActive(direction: number) {\n    if (!selectableRows.length) return\n\n    const current = selectableRows.findIndex((row) => row.key === activeRow?.key)\n    const next = (current + direction + selectableRows.length) % selectableRows.length\n    activeKey = selectableRows[next].key\n    await tick()\n    document.getElementById(`${listId}-${activeIndex}`)?.scrollIntoView?.({ block: \"nearest\" })\n  }\n\n  function handleSearchKeydown(event: KeyboardEvent) {\n    if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n      event.preventDefault()\n      activeKey =\n        (event.key === \"ArrowDown\" ? selectableRows[0] : selectableRows[selectableRows.length - 1])\n          ?.key ?? null\n      listbox?.focus()\n    } else if (event.key === \"Enter\") {\n      event.preventDefault()\n\n      if (activeRow) toggleRow(activeRow)\n    }\n  }\n\n  function handleListKeydown(event: KeyboardEvent) {\n    if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n      event.preventDefault()\n      void moveActive(event.key === \"ArrowDown\" ? 1 : -1)\n    } else if (event.key === \"Home\" || event.key === \"End\") {\n      event.preventDefault()\n      activeKey =\n        (event.key === \"Home\" ? selectableRows[0] : selectableRows[selectableRows.length - 1])\n          ?.key ?? null\n    } else if (event.key === \" \" || event.key === \"Enter\") {\n      event.preventDefault()\n\n      if (activeRow) toggleRow(activeRow)\n    }\n  }\n\n  function handleMenuKeydown(event: KeyboardEvent) {\n    if (event.key !== \"Escape\") return\n\n    event.preventDefault()\n    event.stopPropagation()\n    closeMenu(true)\n  }\n\n  function positionMenu(menu: HTMLElement) {\n    // The search field must remain inside the owning overlay's focus boundary.\n    const dialog = root.closest(\"dialog\")\n    const portal =\n      root.closest<HTMLElement>(\"dialog, .content-block[data-overlay-index]\") ??\n      ensureSelectPortalElement()\n    portal?.appendChild(menu)\n    copySelectCssVariables(root, menu)\n    let disposed = false\n    const updatePosition = async () => {\n      const result = await computePosition(root, menu, {\n        strategy: \"fixed\",\n        placement: \"bottom-start\",\n        middleware: [\n          offset(6),\n          flip(),\n          shift({ padding: 8 }),\n          size({\n            padding: 8,\n            apply({ availableWidth, availableHeight, rects }) {\n              menu.style.width = `${Math.min(Math.max(rects.reference.width, 240), Math.max(0, availableWidth))}px`\n              menu.style.maxHeight = `${Math.max(0, Math.min(320, availableHeight))}px`\n            },\n          }),\n        ],\n      })\n\n      if (!disposed) Object.assign(menu.style, { left: `${result.x}px`, top: `${result.y}px` })\n    }\n    const stopPositioning = autoUpdate(\n      root,\n      menu,\n      () => {\n        void updatePosition()\n      },\n      {\n        elementResize: typeof ResizeObserver !== \"undefined\",\n        layoutShift: typeof IntersectionObserver !== \"undefined\",\n      },\n    )\n    const closeOutside = (event: Event) => {\n      const target = event.target\n\n      if (target instanceof Node && !root.contains(target) && !menu.contains(target)) closeMenu()\n    }\n    document.addEventListener(\"pointerdown\", closeOutside, true)\n    document.addEventListener(\"focusin\", closeOutside, true)\n    const closeWithDialog = () => closeMenu()\n    dialog?.addEventListener(\"close\", closeWithDialog)\n\n    return {\n      destroy() {\n        disposed = true\n        stopPositioning()\n        document.removeEventListener(\"pointerdown\", closeOutside, true)\n        document.removeEventListener(\"focusin\", closeOutside, true)\n        dialog?.removeEventListener(\"close\", closeWithDialog)\n        menu.remove()\n      },\n    }\n  }\n</script>\n\n<div\n  bind:this={root}\n  class={`svelte-select kw-multi-select ${classList} ${brightBackground ? \"svelte-select--bright\" : \"svelte-select--dark\"}${surfaceTone === \"auto\" ? \"\" : ` svelte-select--surface-${surfaceTone}`}`}\n  class:focused={open && !disabled}\n  class:disabled\n  class:invalid\n>\n  <button\n    bind:this={trigger}\n    type=\"button\"\n    class=\"kw-multi-select__trigger\"\n    class:hasClear={clearable && !required && values.length > 0}\n    class:empty={!values.length}\n    aria-label={ariaLabel}\n    aria-expanded={open && !disabled}\n    aria-haspopup=\"listbox\"\n    aria-controls={listId}\n    aria-describedby={invalid ? `${id}-summary ${id}-validation` : `${id}-summary`}\n    {disabled}\n    onclick={() => (open ? closeMenu() : void openMenu())}\n    onkeydown={(event) => {\n      if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n        event.preventDefault()\n        void openMenu()\n      } else if (event.key === \"Escape\" && open) {\n        handleMenuKeydown(event)\n      }\n    }}\n  >\n    <span\n      id={`${id}-summary`}\n      class=\"kw-multi-select__summary\"\n      style:--selection-count={previewItems.length || 1}\n    >\n      {#if previewItems.length}\n        {#each previewItems as item, index (item.value)}\n          {#if index}<span class=\"kw-multi-select__separator\">,&nbsp;</span>{/if}<span\n            class=\"kw-multi-select__selection\"\n            style:max-width={\n              \"calc((100% - (var(--selection-count) - 1) * 0.75em) / var(--selection-count))\"\n            }\n            use:tooltip={{ content: escapeHtml(item.label), onlyWhenOverflow: true }}\n            >{item.label}</span\n          >\n        {/each}\n      {:else}\n        <span class=\"kw-multi-select__fallback\">{summary}</span>\n      {/if}\n    </span>\n    <span class=\"kw-multi-select__chevron\" aria-hidden=\"true\"\n      ><Icon path={mdiChevronDown} size=\"1rem\" /></span\n    >\n  </button>\n  {#if clearable && !required && values.length}\n    <button\n      type=\"button\"\n      class=\"kw-multi-select__clear\"\n      aria-label=\"Auswahl löschen\"\n      {disabled}\n      onclick={clearSelection}\n    >\n      <Icon path={mdiClose} size=\"1rem\" />\n    </button>\n  {/if}\n  {#if required}\n    <input\n      class=\"kw-multi-select__validity\"\n      type=\"text\"\n      value={values.length ? \"selected\" : \"\"}\n      required\n      {disabled}\n      tabindex=\"-1\"\n      aria-hidden=\"true\"\n      oninvalid={(event) => {\n        event.preventDefault()\n        validationRequested = true\n        void openMenu()\n      }}\n    />\n  {/if}\n</div>\n{#if invalid}\n  <span id={`${id}-validation`} class=\"kw-multi-select__validation\" role=\"alert\"\n    >Bitte mindestens einen Eintrag auswählen.</span\n  >\n{/if}\n\n{#if open && !disabled}\n  <div\n    class=\"kw-multi-select-menu kw-select-list\"\n    use:positionMenu\n    onkeydown={handleMenuKeydown}\n    role=\"presentation\"\n  >\n    <div class=\"kw-multi-select-menu__search\">\n      <span aria-hidden=\"true\"><Icon path={mdiMagnify} size=\"1rem\" /></span>\n      <input\n        bind:this={searchInput}\n        bind:value={search}\n        aria-label={`${ariaLabel}: Optionen suchen`}\n        aria-controls={listId}\n        type=\"search\"\n        placeholder=\"Suchen …\"\n        autocomplete=\"off\"\n        oninput={() => (activeKey = null)}\n        onkeydown={handleSearchKeydown}\n      />\n    </div>\n    <div\n      bind:this={listbox}\n      id={listId}\n      class=\"kw-multi-select-menu__list\"\n      role=\"listbox\"\n      aria-label={ariaLabel}\n      aria-multiselectable=\"true\"\n      aria-required={required}\n      aria-invalid={invalid || undefined}\n      aria-activedescendant={activeIndex >= 0 ? `${listId}-${activeIndex}` : undefined}\n      tabindex=\"0\"\n      onkeydown={handleListKeydown}\n    >\n      {#each rows as row, index (row.key)}\n        {@const selected = values.includes(row.item.value)}\n        {@const itemDisabled = row.item.selectable === false}\n        {@const hint = itemDisabled\n          ? (row.item.tooltipContent ?? row.item.tooltip ?? row.item.description)\n          : \"\"}\n        {#if row.groupHeader && itemDisabled}\n          <div class=\"kw-multi-select-menu__group\" role=\"presentation\">{row.item.label}</div>\n        {:else}\n          <button\n            id={`${listId}-${index}`}\n            type=\"button\"\n            role=\"option\"\n            aria-selected={selected}\n            aria-disabled={itemDisabled}\n            aria-label={row.item.label}\n            tabindex=\"-1\"\n            class=\"kw-multi-select-menu__option\"\n            class:selected\n            class:active={activeRow?.key === row.key}\n            class:unavailable={itemDisabled}\n            class:group={row.groupHeader}\n            use:tooltip={typeof hint === \"string\" && hint.trim() ? { content: hint.trim() } : false}\n            onpointerdown={(event) => event.preventDefault()}\n            onclick={() => toggleRow(row)}\n          >\n            <span class=\"kw-multi-select-menu__checkbox\" aria-hidden=\"true\">\n              {#if selected}<Icon path={mdiCheck} size=\"0.85rem\" />{/if}\n            </span>\n            <span class=\"kw-multi-select-menu__content\">\n              {#if itemRenderer && !row.groupHeader}\n                {@render itemRenderer({ item: row.item, disabled: itemDisabled, active: selected })}\n              {:else}\n                {#if row.item.icon}<Icon path={row.item.icon} size=\"1.05rem\" />{/if}\n                <span>{row.item.label}</span>\n              {/if}\n            </span>\n          </button>\n        {/if}\n      {/each}\n      {#if !rows.length}\n        <div class=\"kw-multi-select-menu__empty\" role=\"status\">\n          {search ? \"Keine passenden Optionen\" : \"Keine Optionen verfügbar\"}\n        </div>\n      {/if}\n    </div>\n  </div>\n{/if}\n\n<style lang=\"less\">\n  :global(.select-input-shell .svelte-select.kw-multi-select) {\n    position: relative;\n    display: flex;\n    align-items: stretch;\n    padding: 0 !important;\n    height: 40px;\n    min-height: 40px;\n    min-width: 0;\n    color: var(--input-color);\n  }\n  .kw-multi-select.svelte-select--bright {\n    --placeholder-color: color-mix(in srgb, var(--text-invers-100) 64%, transparent);\n  }\n  .kw-multi-select__trigger {\n    display: flex;\n    align-items: center;\n    width: 100%;\n    align-self: stretch;\n    margin: 0;\n    min-width: 0;\n    padding: 0 calc(26px + var(--kw-field-inline-padding, 14px)) 0\n      var(--kw-field-inline-padding, 14px);\n    border: 0;\n    background: transparent;\n    color: inherit;\n    font: inherit;\n    line-height: 1.2;\n    text-align: left;\n    cursor: pointer;\n    &.hasClear {\n      padding-right: 72px;\n    }\n    &:focus-visible {\n      outline: 2px solid var(--primary-100);\n      outline-offset: 2px;\n    }\n    &.empty .kw-multi-select__summary {\n      color: var(--kw-input-placeholder, var(--placeholder-color, inherit));\n    }\n  }\n  .kw-multi-select__summary {\n    display: flex;\n    flex: 1;\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .kw-multi-select__selection {\n    flex: 0 1 auto;\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .kw-multi-select__separator {\n    flex: 0 0 auto;\n    white-space: pre;\n  }\n  .kw-multi-select__fallback {\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .kw-multi-select__chevron {\n    position: absolute;\n    right: var(--kw-field-inline-padding, 12px);\n    top: 0;\n    bottom: 0;\n    display: flex;\n    align-items: center;\n    pointer-events: none;\n  }\n  .kw-multi-select__clear {\n    position: absolute;\n    right: 32px;\n    top: 50%;\n    transform: translateY(-50%);\n    display: grid;\n    place-items: center;\n    width: 32px;\n    height: 32px;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    cursor: pointer;\n    &:focus-visible {\n      outline: 2px solid var(--primary-100);\n    }\n  }\n  .kw-multi-select__validity {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    opacity: 0;\n    pointer-events: none;\n  }\n  .kw-multi-select__validation {\n    display: block;\n    font-size: 0.85rem;\n    color: var(--danger-100, #e56969);\n  }\n  .kw-multi-select-menu {\n    position: fixed;\n    z-index: 12000;\n    display: flex;\n    flex-direction: column;\n    box-sizing: border-box;\n    overflow: hidden;\n    pointer-events: auto;\n    padding: 4px var(--kw-select-list-padding-inline, 4px);\n    background: var(--list-background, var(--bg-100));\n    color: var(--text-100);\n    border: 1px solid var(--surface-border, var(--kontext-border));\n    border-radius: 0;\n    box-shadow: var(--list-shadow, 0 12px 28px #0004);\n    font-family: inherit;\n    font-size: 1rem;\n    text-align: left;\n  }\n  .kw-multi-select-menu__search {\n    display: flex;\n    align-items: center;\n    flex-shrink: 0;\n    gap: 8px;\n    padding: 8px var(--kw-field-inline-padding, 10px);\n    border-bottom: 1px solid var(--surface-border, var(--kontext-border));\n    input {\n      width: 100%;\n      min-width: 0;\n      padding: 4px 0;\n      border: 0;\n      background: transparent;\n      color: inherit;\n      font: inherit;\n      outline: none;\n      &::placeholder {\n        color: var(--text-300, var(--text-100));\n        opacity: 0.65;\n      }\n      &:focus-visible {\n        box-shadow: 0 1px 0 var(--primary-100);\n      }\n    }\n  }\n  .kw-multi-select-menu__list {\n    min-height: 0;\n    overflow-y: auto;\n    overscroll-behavior: contain;\n    padding: 4px 0;\n    &:focus-visible {\n      outline: 1px solid var(--primary-100);\n      outline-offset: -1px;\n    }\n  }\n  .kw-multi-select-menu__option {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    width: 100%;\n    min-height: 40px;\n    padding: 8px var(--kw-field-inline-padding, 10px);\n    border: 0;\n    background: transparent;\n    color: inherit;\n    font: inherit;\n    text-align: left;\n    cursor: pointer;\n    &:hover,\n    &.active {\n      background: var(--surface-muted, #ffffff14);\n    }\n    &.selected {\n      background: color-mix(in srgb, var(--primary-100) 25%, transparent);\n    }\n    &.unavailable {\n      opacity: 0.5;\n      cursor: not-allowed;\n    }\n    &.group {\n      font-weight: 600;\n    }\n  }\n  .kw-multi-select-menu__checkbox {\n    display: grid;\n    place-items: center;\n    flex: 0 0 16px;\n    width: 16px;\n    height: 16px;\n    border: 1px solid currentColor;\n    border-radius: 3px;\n    .selected & {\n      background: var(--primary-100);\n      border-color: var(--primary-100);\n      color: var(--text-100);\n    }\n  }\n  .kw-multi-select-menu__content {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    min-width: 0;\n    overflow-wrap: anywhere;\n    white-space: normal;\n    line-height: 1.3;\n  }\n  .kw-multi-select-menu__group {\n    padding: 10px;\n    font-weight: 600;\n    opacity: 0.75;\n  }\n  .kw-multi-select-menu__empty {\n    padding: 16px 10px;\n    opacity: 0.75;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, tick, type Snippet } from \"svelte\"\n  import Select from \"svelte-select\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import CheckboxMultiSelect from \"./_modules/checkbox-multi-select/index\"\n  import {\n    copySelectCssVariables,\n    ensureSelectPortalElement,\n  } from \"./_shared/_logic/select-options/index\"\n  import type { RawOption, SelectItem } from \"./_shared/_logic/select-options/index\"\n  type SelectValue = string | string[]\n\n  interface Props {\n    value?: SelectValue\n    id?: string\n    classList?: string\n    selectStyle?: string\n    placeholder?: string\n    ariaLabel?: string\n    disabled?: boolean\n    name?: string\n    options?: RawOption[]\n    selectedOptionIndex?: number\n    autocomplete?: any\n    required?: boolean\n    clearable?: boolean\n    multiple?: boolean\n    brightBackground?: boolean\n    surfaceTone?: \"auto\" | \"light\" | \"dark\"\n    onChange?: (event: Event) => void\n    groupBy?: string | ((item: SelectItem) => string | undefined)\n    groupHeaderSelectable?: boolean\n    fitSelectedText?: boolean\n    /** Custom single-selection display; multiple selections use the common summary. */\n    selectionRenderer?: Snippet<[{ selection: SelectItem | null }]>\n    itemRenderer?: Snippet<[{ item: SelectItem; disabled: boolean; active: boolean }]>\n    onValueChange?: (value: string | string[], selection: SelectItem | SelectItem[] | null) => void\n    dataInputId?: string\n    dataTestid?: string\n  }\n\n  let {\n    value = $bindable<SelectValue>(\"\"),\n    id = \"input-\" + Math.random().toString(36).substring(2, 15),\n    classList = \"\",\n    placeholder = \"Auswahl\",\n    ariaLabel = undefined,\n    disabled = false,\n    name = \"\",\n    options = [],\n    selectedOptionIndex = -1,\n    autocomplete = \"off\",\n    required = false,\n    clearable = true,\n    multiple = false,\n    selectStyle = \"\",\n    brightBackground = false,\n    surfaceTone = \"auto\",\n    onChange = () => {},\n    groupBy = (item: SelectItem) => item.group,\n    groupHeaderSelectable = false,\n    fitSelectedText = false,\n    selectionRenderer = undefined,\n    itemRenderer = undefined,\n    onValueChange = undefined,\n    dataInputId = id,\n    dataTestid = undefined,\n  }: Props = $props()\n\n  const resolveGroupBy = (value: Props[\"groupBy\"]) => {\n    if (typeof value === \"string\") {\n      const key = value\n\n      return (item: SelectItem) => {\n        const candidate = item?.[key]\n\n        return typeof candidate === \"string\" ? candidate : \"\"\n      }\n    }\n\n    return value\n  }\n\n  const normalizedOptions = $derived<RawOption[]>(Array.isArray(options) ? options : [])\n  let selectItems = $derived<SelectItem[]>(createSelectItems(normalizedOptions))\n  const surfaceToneAttribute = $derived(surfaceTone === \"auto\" ? undefined : surfaceTone)\n  const surfaceToneClass = $derived(\n    surfaceTone === \"auto\" ? \"\" : ` svelte-select--surface-${surfaceTone}`,\n  )\n  const groupedBy = $derived(resolveGroupBy(groupBy))\n  const selectFloatingConfig = {\n    strategy: \"fixed\",\n  }\n\n  const selectBinding = $derived.by<SelectItem | SelectItem[] | null>(() => {\n    if (multiple) {\n      return deriveMultiBinding(value, selectItems, selectedOptionIndex)\n    }\n\n    return deriveSingleBinding(value, selectItems, selectedOptionIndex).binding\n  })\n\n  const selectName = $derived((name || id) ?? id)\n  let nativeSelect: HTMLInputElement | null = $state(null)\n  let selectContainer: HTMLDivElement | null = $state(null)\n  let listObserver: MutationObserver | null = null\n  const selectedFitItem = $derived(!Array.isArray(selectBinding) ? selectBinding : null)\n  const selectedFitLabel = $derived(\n    selectedFitItem?.label ?? selectedFitItem?.name ?? selectedFitItem?.value ?? \"\",\n  )\n  const selectedFitHasIcon = $derived(Boolean(selectedFitItem?.icon))\n  const effectiveFitSelectedText = $derived(\n    Boolean(fitSelectedText && !multiple && selectedFitLabel),\n  )\n  const resolvedSelectStyle = $derived(selectStyle.trim())\n  const nativeValue = $derived.by(() => {\n    if (multiple) return normalizeMultiValue(value).join(\",\")\n\n    return (\n      (selectBinding && !Array.isArray(selectBinding)\n        ? selectBinding.value\n        : normalizeSingleValue(value)) ?? \"\"\n    )\n  })\n\n  const portalOpenSelectList = () => {\n    if (!selectContainer) return\n\n    const list = selectContainer.querySelector<HTMLElement>(\":scope > .svelte-select-list\")\n\n    if (!list || list.dataset.kwSelectPortaled === \"true\") return\n\n    // Native modal dialogs make body portals inert and paint above them.\n    const portal = selectContainer.closest(\"dialog\") ?? ensureSelectPortalElement()\n\n    if (!portal) return\n\n    copySelectCssVariables(selectContainer, list)\n    const triggerWidth = Math.ceil(selectContainer.getBoundingClientRect().width)\n\n    if (triggerWidth > 0) {\n      list.style.minWidth = `${triggerWidth}px`\n    }\n\n    list.dataset.kwSelectPortaled = \"true\"\n    list.classList.add(\"kw-select-list\")\n    list.style.pointerEvents = \"auto\"\n    portal.appendChild(list)\n  }\n\n  const observeSelectList = (container: HTMLDivElement | null) => {\n    listObserver?.disconnect()\n    listObserver = null\n\n    if (!container || typeof MutationObserver === \"undefined\") return\n\n    listObserver = new MutationObserver(() => {\n      void tick().then(portalOpenSelectList)\n    })\n    listObserver.observe(container, { childList: true })\n    void tick().then(portalOpenSelectList)\n  }\n\n  $effect(() => {\n    observeSelectList(selectContainer)\n\n    return () => {\n      listObserver?.disconnect()\n      listObserver = null\n    }\n  })\n\n  onDestroy(() => {\n    listObserver?.disconnect()\n    listObserver = null\n  })\n\n  function fireChangeEvent() {\n    const changeEvent = new CustomEvent(\"change\", {\n      detail: {\n        value,\n        values: multiple ? normalizeMultiValue(value) : [normalizeSingleValue(value)],\n      },\n      bubbles: true,\n    })\n\n    if (nativeSelect) {\n      nativeSelect.value = nativeValue\n      nativeSelect.dispatchEvent(changeEvent)\n\n      return\n    }\n\n    onChange(changeEvent)\n  }\n\n  function handleNativeChange(event: Event) {\n    if (event instanceof CustomEvent && event.detail) {\n      onChange(event)\n\n      return\n    }\n\n    handleSelectChange(event)\n  }\n\n  function selectionFromNativeChange(event: Event): SelectItem | SelectItem[] | null {\n    const target = event.target as HTMLSelectElement | HTMLInputElement | null\n\n    if (!target) return multiple ? [] : null\n\n    if (multiple && target instanceof HTMLSelectElement) {\n      const selectedValues = Array.from(target.selectedOptions).map((option) => option.value)\n\n      return selectItems.filter((item) => selectedValues.includes(item.value))\n    }\n\n    const nextValue = target.value ?? \"\"\n\n    return selectItems.find((item) => item.value === nextValue) ?? null\n  }\n\n  function handleSelectChange(event: CustomEvent<SelectItem | SelectItem[] | null> | Event) {\n    const selection = \"detail\" in event ? event.detail : selectionFromNativeChange(event)\n\n    if (multiple) {\n      const selectedItems = Array.isArray(selection) ? selection : []\n      value = selectedItems.map((item) => item.value)\n      onValueChange?.(value, selectedItems)\n    } else {\n      const selectedItem = Array.isArray(selection) ? selection[0] : selection\n      value = selectedItem?.value ?? \"\"\n      onValueChange?.(value, selectedItem ?? null)\n    }\n\n    fireChangeEvent()\n  }\n\n  function handleMultiValuesChange(nextValues: string[], selectedItems: SelectItem[]) {\n    value = nextValues\n    onValueChange?.(value, selectedItems)\n    fireChangeEvent()\n  }\n\n  function handleSelectDeletion() {\n    if (disabled || required || !clearable) return\n\n    value = \"\"\n    onValueChange?.(value, null)\n    fireChangeEvent()\n  }\n\n  function createSelectItems(source: RawOption[] | unknown): SelectItem[] {\n    if (!Array.isArray(source)) {\n      console.warn(\"SelectInput received non-array options\", source)\n\n      return []\n    }\n\n    return source.map((option) => {\n      const item = {\n        ...option,\n        label: option.label ?? option.name ?? option.value,\n        name: option.label ?? option.name ?? option.value,\n      }\n\n      if (item.selectable === undefined) {\n        delete item.selectable\n      }\n\n      return item\n    })\n  }\n\n  function normalizeSingleValue(input: unknown): string {\n    if (Array.isArray(input)) {\n      return input[0] ?? \"\"\n    }\n\n    if (input === undefined || input === null) {\n      return \"\"\n    }\n\n    return `${input}`\n  }\n\n  function normalizeMultiValue(input: unknown): string[] {\n    if (Array.isArray(input)) {\n      return input.filter((entry): entry is string => typeof entry === \"string\")\n    }\n\n    if (input === undefined || input === null || input === \"\") {\n      return []\n    }\n\n    return [`${input}`]\n  }\n\n  function deriveSingleBinding(\n    currentValue: unknown,\n    items: SelectItem[],\n    fallbackIndex: number,\n  ): { binding: SelectItem | null; usedFallback: boolean } {\n    const normalized = normalizeSingleValue(currentValue)\n\n    if (normalized) {\n      const match = items.find((item) => item.value === normalized)\n\n      return { binding: match ?? null, usedFallback: false }\n    }\n\n    const fallbackItem = fallbackIndex >= 0 ? items[fallbackIndex] : undefined\n\n    if (fallbackItem) {\n      return { binding: fallbackItem, usedFallback: true }\n    }\n\n    return { binding: null, usedFallback: false }\n  }\n\n  function deriveMultiBinding(\n    currentValue: unknown,\n    items: SelectItem[],\n    fallbackIndex: number,\n  ): SelectItem[] {\n    const normalized = normalizeMultiValue(currentValue)\n\n    if (normalized.length === 0) {\n      return []\n    }\n\n    const presentItems = normalized\n      .map((entry) => items.find((item) => item.value === entry))\n      .filter((item): item is SelectItem => !!item)\n\n    if (presentItems.length > 0) {\n      return presentItems\n    }\n\n    const fallback = items[fallbackIndex]\n\n    return fallback ? [fallback] : []\n  }\n\n  function disabledOptionTooltipContent(item: SelectItem, itemDisabled: boolean): string {\n    if (!itemDisabled) return \"\"\n\n    const content = item.tooltipContent ?? item.tooltip ?? item.description ?? \"\"\n\n    return typeof content === \"string\" ? content.trim() : \"\"\n  }\n</script>\n\n<div\n  class=\"select-input-shell\"\n  style={resolvedSelectStyle}\n  data-testid={dataTestid}\n  data-surface-tone={surfaceToneAttribute}\n  data-fit-selected-text={effectiveFitSelectedText ? \"true\" : undefined}\n>\n  <input\n    type=\"hidden\"\n    bind:this={nativeSelect}\n    id={dataInputId}\n    data-input-id={dataInputId}\n    data-testid={dataTestid}\n    name={selectName}\n    value={nativeValue}\n    aria-label={ariaLabel ?? placeholder}\n    {disabled}\n    {autocomplete}\n    onchange={handleNativeChange}\n  />\n\n  {#if effectiveFitSelectedText}\n    <div\n      class=\"select-fit-sizer\"\n      aria-hidden=\"true\"\n      data-has-icon={selectedFitHasIcon ? \"true\" : undefined}\n    >\n      {#if selectedFitHasIcon}\n        <span class=\"select-fit-sizer__icon\"></span>\n      {/if}\n      <span class=\"select-fit-sizer__label\">{selectedFitLabel}</span>\n      <span class=\"select-fit-sizer__chrome\"></span>\n    </div>\n  {/if}\n\n  {#if multiple}\n    <CheckboxMultiSelect\n      items={selectItems}\n      values={normalizeMultiValue(value)}\n      id={dataInputId}\n      {placeholder}\n      ariaLabel={ariaLabel ?? placeholder}\n      {disabled}\n      {required}\n      {clearable}\n      {classList}\n      {brightBackground}\n      {surfaceTone}\n      groupBy={groupedBy}\n      {groupHeaderSelectable}\n      {itemRenderer}\n      onValuesChange={handleMultiValuesChange}\n    />\n  {:else}\n    <Select\n      class={`${classList ? `${classList} ` : \"\"}${effectiveFitSelectedText ? \"kw-select-fit-selected-text \" : \"\"}${brightBackground ? \"svelte-select--bright\" : \"svelte-select--dark\"}${surfaceToneClass}`}\n      items={selectItems}\n      placeholder=\" \"\n      value={selectBinding}\n      {disabled}\n      name={selectName}\n      id={dataInputId}\n      {required}\n      clearable={clearable && !required}\n      itemId=\"value\"\n      label=\"label\"\n      bind:container={selectContainer}\n      groupBy={groupedBy}\n      {groupHeaderSelectable}\n      inputAttributes={{ autocomplete, \"aria-label\": ariaLabel ?? placeholder }}\n      floatingConfig={selectFloatingConfig}\n      showChevron={true}\n      closeListOnChange={true}\n      on:change={handleSelectChange}\n      on:clear={handleSelectDeletion}\n    >\n      <svelte:fragment slot=\"selection\" let:selection>\n        {#if selectionRenderer}\n          {@render selectionRenderer({ selection })}\n        {:else}\n          <div class=\"select-selection\">\n            {#if selection?.icon}\n              <span class=\"select-selection__icon\">\n                <Icon path={selection.icon} size=\"1.05rem\" />\n              </span>\n            {/if}\n            <span class=\"select-selection__label\"\n              >{selection?.label ?? selection?.name ?? selection?.value ?? \"\"}</span\n            >\n          </div>\n        {/if}\n      </svelte:fragment>\n\n      <svelte:fragment slot=\"item\" let:item>\n        {@const itemDisabled = item.selectable === false}\n        {@const itemActive = Array.isArray(selectBinding)\n          ? selectBinding.some((entry) => entry.value === item.value)\n          : selectBinding?.value === item.value}\n        {#if itemRenderer}\n          {@render itemRenderer({ item, disabled: itemDisabled, active: itemActive })}\n        {:else}\n          {@const itemTooltipContent = disabledOptionTooltipContent(item, itemDisabled)}\n          <div\n            class=\"select-item\"\n            class:select-item--disabled={itemDisabled}\n            class:select-item--active={itemActive}\n            use:tooltip={itemTooltipContent ? { content: itemTooltipContent } : false}\n          >\n            {#if item.icon}\n              <span class=\"select-item__icon\">\n                <Icon path={item.icon} size=\"1.05rem\" />\n              </span>\n            {/if}\n            <span class=\"select-item__label\">{item.label ?? item.name ?? item.value}</span>\n          </div>\n        {/if}\n      </svelte:fragment>\n      <div slot=\"empty\" style=\"color: white !important; padding: 1.2rem !important;\">\n        Keine weiteren Optionen verfügbar\n      </div>\n    </Select>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  :global {\n    @select-height: 40px;\n\n    .select-input-shell {\n      width: 100%;\n      --kw-select-fit-max-width: min(42rem, calc(100vw - 2rem));\n      --kw-select-fit-chrome-width: 112px;\n      --kw-select-fit-icon-width: 28px;\n    }\n\n    .select-input-shell[data-fit-selected-text=\"true\"] {\n      display: inline-grid;\n      width: max-content;\n      max-width: min(100%, var(--kw-select-fit-max-width));\n    }\n\n    .select-input-shell[data-fit-selected-text=\"true\"] > .svelte-select,\n    .select-input-shell[data-fit-selected-text=\"true\"] > .select-fit-sizer {\n      grid-area: 1 / 1;\n      max-width: 100%;\n    }\n\n    .select-input-shell[data-fit-selected-text=\"true\"] > .svelte-select {\n      width: 100% !important;\n    }\n\n    .select-fit-sizer {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      width: max-content;\n      max-width: var(--kw-select-fit-max-width);\n      height: 0;\n      overflow: hidden;\n      visibility: hidden;\n      pointer-events: none;\n      white-space: nowrap;\n      font-size: 1rem;\n      line-height: @select-height;\n    }\n\n    .select-fit-sizer__icon {\n      flex: 0 0 var(--kw-select-fit-icon-width);\n      width: var(--kw-select-fit-icon-width);\n    }\n\n    .select-fit-sizer__label {\n      min-width: 0;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    .select-fit-sizer__chrome {\n      flex: 0 0 var(--kw-select-fit-chrome-width);\n      width: var(--kw-select-fit-chrome-width);\n    }\n\n    .svelte-select {\n      *::-webkit-scrollbar {\n        width: 11px !important;\n        height: 11px;\n      }\n      *::-webkit-scrollbar-thumb {\n        background-color: white !important;\n        border-radius: 4px;\n      }\n      margin-top: 0rem !important;\n      span {\n        opacity: 1 !important;\n      }\n      span.smallVersion {\n        opacity: 1 !important;\n        height: auto !important;\n        padding: 6px 12px !important;\n      }\n      --border-radius: 6px;\n      --font-size: 1rem;\n      --height: @select-height;\n      --padding: 4px 52px 4px 14px;\n      --value-container-padding: 2px 0;\n      --selected-item-padding: 0 16px 0 4px;\n      --input-padding: 0;\n      --input-margin: 0;\n      --clear-select-width: 28px;\n      --clear-select-height: 100%;\n      --chevron-width: 32px;\n      --chevron-border: 0;\n      --chevron-background: transparent;\n      --chevron-pointer-events: none;\n      --selected-item-overflow: hidden;\n      --list-border-radius: 12px;\n      --list-max-height: 260px;\n      --list-position: fixed;\n      --list-z-index: 12000;\n      --item-padding: 0 18px;\n      --item-height: @select-height;\n      --item-line-height: @select-height;\n      --group-item-padding-left: 40px;\n      --select-focus-shadow: var(--focus-ring);\n      background: transparent !important;\n      border-radius: 0;\n      outline: none !important;\n      transition:\n        border-color 0.2s ease,\n        box-shadow 0.2s ease,\n        background-color 0.2s ease;\n      border: 1px solid transparent !important;\n\n      &.kw-select-fit-selected-text:not(.multi) {\n        width: 100%;\n        max-width: var(--kw-select-fit-max-width);\n      }\n\n      input {\n        padding: 0 !important;\n        font-size: 1rem;\n      }\n\n      .selected-item {\n        padding-left: 4px;\n      }\n\n      .indicators {\n        gap: 0;\n      }\n\n      &:not(.multi) .selected-item {\n        flex: 1 1 auto;\n        min-width: 0;\n        max-width: 100%;\n      }\n\n      .icon {\n        margin-right: 0;\n        margin-bottom: 0;\n        height: @select-height;\n\n        > * {\n          display: flex;\n          align-items: center;\n        }\n      }\n\n      .clear-select {\n        padding-right: 0;\n        padding-left: 0;\n        transition:\n          color 0.2s ease,\n          background-color 0.2s ease;\n\n        &:hover {\n          cursor: pointer;\n        }\n      }\n\n      &.focused {\n        border: 1px solid transparent !important;\n      }\n\n      .value-container {\n        gap: 8px;\n        align-items: center;\n        min-height: (@select-height - 6px);\n        min-width: 0;\n        overflow: hidden !important;\n        margin-right: 12px;\n      }\n    }\n\n    .svelte-select.disabled {\n      opacity: 0.5;\n      pointer-events: none;\n    }\n\n    .svelte-select-list {\n      position: fixed !important;\n      z-index: 12000 !important;\n      margin-top: 6px;\n      border: none;\n      padding: 6px var(--kw-select-list-padding-inline, 4px);\n      background: var(--list-background, var(--kontext-panel));\n      border-radius: 0px !important;\n      overflow-x: hidden !important;\n      overflow-y: auto !important;\n      overscroll-behavior-x: contain;\n      scrollbar-gutter: var(--kw-select-list-scrollbar-gutter, stable both-edges);\n\n      .list-item {\n        width: 100%;\n        min-width: 100%;\n        max-width: 100%;\n      }\n\n      .item {\n        border-radius: 0px !important;\n        cursor: pointer !important;\n        width: 100%;\n        min-width: 100%;\n        max-width: 100%;\n        overflow: hidden !important;\n        text-overflow: ellipsis !important;\n        white-space: nowrap;\n      }\n\n      &.kw-select-list {\n        color: var(--item-color, var(--text-100, #f3eed9)) !important;\n\n        .item:not(.active):not(.not-selectable),\n        .item:not(.active):not(.not-selectable) .select-item,\n        .item:not(.active):not(.not-selectable) .select-item__label,\n        .item:not(.active):not(.not-selectable) .select-item__icon {\n          color: var(--item-color, var(--text-100, #f3eed9)) !important;\n        }\n\n        .item.hover:not(.active):not(.not-selectable),\n        .item.hover:not(.active):not(.not-selectable) .select-item,\n        .item.hover:not(.active):not(.not-selectable) .select-item__label,\n        .item.hover:not(.active):not(.not-selectable) .select-item__icon {\n          color: var(--item-hover-color, var(--text-100, #f3eed9)) !important;\n        }\n\n        .item.active,\n        .item.active .select-item,\n        .item.active .select-item__label,\n        .item.active .select-item__icon {\n          color: var(--item-is-active-color, var(--text-100, #f3eed9)) !important;\n        }\n\n        .item.not-selectable,\n        .item.not-selectable .select-item,\n        .item.not-selectable .select-item__label,\n        .item.not-selectable .select-item__icon {\n          color: var(\n            --item-is-not-selectable-color,\n            var(--text-muted, rgba(243, 238, 217, 0.72))\n          ) !important;\n        }\n      }\n\n      .empty {\n        font-size: 0.9rem;\n        opacity: 0.72;\n      }\n    }\n\n    .svelte-select--dark {\n      --background: var(--kontext-panel);\n      --border: 0px solid black;\n      --border-hover: 0px solid black;\n      --border-focused: 0px solid black;\n      --input-color: var(--kontext-text);\n      --item-color: var(--kontext-text);\n      --selected-item-color: var(--kontext-text);\n      --placeholder-color: var(--kontext-text-muted);\n      --placeholder-opacity: 0.72;\n      --icons-color: var(--kontext-text-subtle);\n      --chevron-color: var(--kontext-text-subtle);\n      --clear-select-color: var(--kontext-text-subtle);\n      --clear-select-focus-outline: 1px solid var(--kontext-outline);\n      --list-background: var(--bg-100) !important;\n      --list-border: 1px solid var(--surface-border);\n      --list-shadow: 0 18px 38px rgba(13, 12, 12, 0.45);\n      --item-hover-bg: var(--surface-muted);\n      --item-hover-color: var(--kontext-text);\n      --item-is-active-bg: var(--primary-100);\n      --item-is-active-color: var(--text-100);\n      --item-active-background: var(--primary-200);\n      --item-first-border-radius: 8px;\n      --spinner-color: var(--kontext-text-subtle);\n      --select-focus-shadow: var(--focus-ring);\n    }\n\n    .svelte-select--bright {\n      --background: var(--input-bg);\n      --border: 0px solid black;\n      --border-hover: 0px solid black;\n      --border-focused: 0px solid black;\n      --input-color: var(--text-050);\n      --item-color: var(--text-050);\n      --selected-item-color: var(--text-050);\n      --placeholder-color: var(--input-placeholder);\n      --placeholder-opacity: 1;\n      --icons-color: var(--text-400);\n      --chevron-color: var(--text-400);\n      --clear-select-color: var(--text-400);\n      --clear-select-focus-outline: 1px solid var(--input-border-focus);\n      --list-background: var(--bg-100) !important;\n      --list-border: 1px solid color-mix(in srgb, var(--grey-200) 75%, var(--neutral-white));\n      --list-shadow: 0 16px 32px rgba(15, 23, 42, 0.18);\n      --item-hover-bg: var(--surface-muted);\n      --item-hover-color: var(--text-050);\n      --item-is-active-bg: color-mix(in srgb, var(--primary-100) 86%, var(--neutral-white));\n      --item-is-active-color: var(--neutral-white);\n      --item-active-background: color-mix(in srgb, var(--primary-200) 82%, var(--neutral-white));\n      --item-first-border-radius: 8px;\n      --spinner-color: var(--grey-400);\n      --select-focus-shadow: var(--input-focus-ring);\n    }\n\n    .select-input-shell[data-surface-tone=\"light\"] {\n      --kw-input-text: var(--text-invers-100);\n      --kw-input-border: color-mix(in srgb, var(--text-invers-100) 30%, transparent);\n      --kw-input-focus-border: var(--primary-100);\n      --kw-input-placeholder: color-mix(in srgb, var(--text-invers-100) 56%, transparent);\n      --kw-input-icon: var(--text-invers-100);\n    }\n\n    .select-input-shell[data-surface-tone=\"dark\"] {\n      --kw-input-text: var(--text-100);\n      --kw-input-border: color-mix(in srgb, var(--text-100) 46%, transparent);\n      --kw-input-focus-border: var(--primary-200);\n      --kw-input-placeholder: color-mix(in srgb, var(--text-100) 64%, transparent);\n      --kw-input-icon: var(--text-100);\n    }\n\n    .svelte-select--surface-light,\n    .svelte-select--surface-dark {\n      --background: transparent;\n      --input-color: var(--kw-input-text);\n      --item-color: var(--kw-input-text);\n      --selected-item-color: var(--kw-input-text);\n      --placeholder-color: var(--kw-input-placeholder);\n      --icons-color: var(--kw-input-icon);\n      --chevron-color: var(--kw-input-icon);\n      --clear-select-color: var(--kw-input-icon);\n      color: var(--kw-input-text) !important;\n      border-bottom: 1px solid var(--kw-input-border) !important;\n      background: transparent !important;\n\n      &.focused,\n      &:focus {\n        border-bottom-color: var(--kw-input-focus-border) !important;\n      }\n\n      input,\n      .value-container,\n      .selected-item,\n      .select-selection,\n      .select-selection__label,\n      .select-selection__icon,\n      .icon,\n      .clear-select,\n      .indicators {\n        color: var(--kw-input-text) !important;\n      }\n\n      .indicators {\n        background-color: transparent !important;\n      }\n    }\n\n    .select-item {\n      display: flex;\n      align-items: center;\n      gap: 0.55rem;\n      line-height: 1.2;\n      padding: 0.25rem 0;\n      white-space: nowrap;\n      width: 100%;\n      min-width: 0;\n      overflow: hidden;\n\n      &__icon {\n        color: var(--icons-color);\n        flex-shrink: 0;\n      }\n\n      &__label {\n        flex: 1;\n        min-width: 0;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .select-selection {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      width: 100%;\n      min-width: 0;\n      overflow: hidden;\n\n      &__icon {\n        color: var(--icons-color);\n        flex-shrink: 0;\n      }\n\n      &__label {\n        flex: 1;\n        min-width: 0;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n    .svelte-select .indicators {\n      position: static !important;\n      top: auto !important;\n      right: auto !important;\n      bottom: auto !important;\n      cursor: pointer !important;\n    }\n\n    /* Form integration (moved from forms.less) */\n    .form,\n    form:not(.exclude) {\n      label {\n        .svelte-select {\n          width: 100% !important;\n          padding: 0 18px 12px 18px !important;\n          border: 0 solid black !important;\n          border-radius: 0 !important;\n          border-bottom: 1px solid var(--text-invers-100) !important;\n          text-align: start !important;\n          color: var(--text-invers-100) !important;\n          font-size: 1rem !important;\n\n          &:focus {\n            outline: none !important;\n            border-bottom: 1px solid var(--primary-100) !important;\n          }\n\n          &.error {\n            border-bottom: 3px solid var(--primary-100) !important;\n          }\n\n          &.no-input {\n            border-bottom: none !important;\n          }\n        }\n\n        div.svelte-select {\n          color: var(--text-invers-100) !important;\n        }\n      }\n\n      &:not(.light) {\n        .list-item {\n          .select-item {\n            color: white !important;\n          }\n        }\n\n        .list-item {\n          .item.hover {\n            .select-item {\n              color: white !important;\n            }\n          }\n        }\n\n        .selected-item {\n          color: var(--text-invers-100) !important;\n        }\n\n        .icon {\n          color: var(--text-invers-100) !important;\n        }\n\n        .svelte-select {\n          .list-item {\n            .item {\n              display: flex;\n              align-items: center;\n            }\n          }\n\n          .indicators {\n            background-color: transparent !important;\n          }\n        }\n      }\n    }\n\n    form.light,\n    .form.light,\n    .content-block.dark {\n      .svelte-select {\n        border-radius: 0 !important;\n        border-bottom: 1px solid var(--text-100) !important;\n        .indicators {\n          background-color: transparent !important;\n        }\n      }\n\n      .selected-item {\n        color: white !important;\n      }\n\n      .icon {\n        color: white !important;\n      }\n\n      label {\n        & > div.svelte-select {\n          border-bottom: 1px solid white !important;\n          color: white !important;\n\n          &:focus {\n            border-bottom: 1px solid var(--primary-200) !important;\n          }\n\n          &.error {\n            border-bottom: 3px solid var(--primary-200) !important;\n          }\n\n          &.no-input {\n            border-bottom: none !important;\n          }\n        }\n\n        div.svelte-select {\n          color: white !important;\n        }\n\n        .list-item {\n          .select-item {\n            color: white !important;\n          }\n        }\n      }\n\n      .list-item {\n        .select-item {\n          color: white !important;\n        }\n      }\n\n      .list-item {\n        .item.hover {\n          div.select-item {\n            color: white !important;\n          }\n        }\n      }\n\n      .svelte-select {\n        * {\n          color: white !important;\n        }\n\n        .list-item {\n          .item {\n            display: flex;\n            align-items: center;\n          }\n        }\n\n        .indicators {\n          background-color: var(--bg-100);\n        }\n      }\n    }\n\n    form.light label .select-input-shell[data-surface-tone] > .svelte-select,\n    .form.light label .select-input-shell[data-surface-tone] > .svelte-select,\n    .content-block.dark label .select-input-shell[data-surface-tone] > .svelte-select,\n    .select-input-shell[data-surface-tone] > .svelte-select {\n      color: var(--kw-input-text) !important;\n      border-bottom: 1px solid var(--kw-input-border) !important;\n      background: transparent !important;\n\n      &:focus,\n      &.focused {\n        border-bottom-color: var(--kw-input-focus-border) !important;\n      }\n    }\n\n    form.light .select-input-shell[data-surface-tone] .svelte-select *,\n    .form.light .select-input-shell[data-surface-tone] .svelte-select *,\n    .content-block.dark .select-input-shell[data-surface-tone] .svelte-select *,\n    .select-input-shell[data-surface-tone] .svelte-select * {\n      color: var(--kw-input-text) !important;\n    }\n\n    form.light .select-input-shell[data-surface-tone] .svelte-select .indicators,\n    .form.light .select-input-shell[data-surface-tone] .svelte-select .indicators,\n    .content-block.dark .select-input-shell[data-surface-tone] .svelte-select .indicators,\n    .select-input-shell[data-surface-tone] .svelte-select .indicators {\n      background-color: transparent !important;\n    }\n  }\n</style>\n","import { derived, writable } from \"svelte/store\"\nimport type { HelpDialogConfig, HelpDialogContext, HelpDialogImage } from \"./types\"\nimport * as mdi from \"@mdi/js\"\n\nexport type HelpDialogConditionDto = {\n  field: string\n  equals?: boolean | number | string | null\n}\n\nexport type HelpDialogItemDto = {\n  text: string\n  showWhen?: HelpDialogConditionDto[] | null\n}\n\nexport type HelpDialogSectionDto = {\n  title: string\n  icon?: string | null\n  iconSize?: string | null\n  accent?: boolean | null\n  items?: HelpDialogItemDto[]\n  image?: HelpDialogImage | null\n}\n\nexport type HelpDialogInfoStripDto = {\n  icon?: string | null\n  text: string\n}\n\nexport type HelpDialogConfigDto = {\n  title: string\n  lead?: string | null\n  size?: HelpDialogConfig[\"size\"]\n  minColumnWidth?: number | null\n  sections?: HelpDialogSectionDto[]\n  infoStrip?: HelpDialogInfoStripDto | null\n}\n\nexport type HelpDialogsResponse = Record<string, HelpDialogConfigDto>\n\ntype ActiveHelpDialogState = {\n  id: string\n  context?: HelpDialogContext\n  overrideConfig?: HelpDialogConfig | null\n}\n\nconst resolveIconPath = (value: string | null | undefined): string | undefined => {\n  if (!value) return undefined\n\n  const normalized = value.replace(/^mdi:/, \"\")\n  const mapped =\n    (mdi as Record<string, string | undefined>)[normalized] ??\n    (mdi as Record<string, string | undefined>)[value]\n\n  return typeof mapped === \"string\" && mapped.length ? mapped : value\n}\n\nconst toPredicate = (conditions: HelpDialogConditionDto[] | undefined | null) => {\n  const list = (conditions ?? []).filter(Boolean)\n\n  if (!list.length) return undefined\n\n  return (context: HelpDialogContext) => {\n    return list.every((cond) => {\n      const actual = (context as Record<string, unknown>)[cond.field]\n      const expected = cond.equals ?? true\n\n      return actual === expected\n    })\n  }\n}\n\nexport const normalizeHelpDialogConfig = (config: HelpDialogConfigDto): HelpDialogConfig => ({\n  title: config.title,\n  lead: config.lead ?? undefined,\n  size: config.size,\n  minColumnWidth: config.minColumnWidth ?? undefined,\n  infoStrip: config.infoStrip\n    ? {\n        text: config.infoStrip.text,\n        icon: resolveIconPath(config.infoStrip.icon ?? undefined),\n      }\n    : undefined,\n  sections: (config.sections ?? []).map((section) => ({\n    title: section.title,\n    icon: resolveIconPath(section.icon ?? undefined),\n    iconSize: section.iconSize ?? undefined,\n    accent: section.accent ?? undefined,\n    image: section.image\n      ? {\n          src: section.image.src,\n          alt: section.image.alt,\n          caption: section.image.caption,\n        }\n      : undefined,\n    items: (section.items ?? []).map((item) => ({\n      text: item.text,\n      when: toPredicate(item.showWhen),\n    })),\n  })),\n})\n\nexport const normalizeHelpDialogs = (\n  payload: HelpDialogsResponse | null | undefined,\n): Record<string, HelpDialogConfig> => {\n  const normalized: Record<string, HelpDialogConfig> = {}\n  Object.entries(payload ?? {}).forEach(([id, config]) => {\n    normalized[id] = normalizeHelpDialogConfig(config)\n  })\n\n  return normalized\n}\n\nexport const helpDialogConfigs = writable<Record<string, HelpDialogConfig>>({})\nexport const activeHelpDialog = writable<ActiveHelpDialogState | null>(null)\n\nexport const resolvedHelpDialog = derived(\n  [activeHelpDialog, helpDialogConfigs],\n  ([$state, $configs]) => {\n    if (!$state) return null\n\n    const config = $state.overrideConfig ?? $configs[$state.id]\n\n    if (!config) return null\n\n    return {\n      id: $state.id,\n      config,\n      context: $state.context ?? {},\n    }\n  },\n)\n\nexport const setHelpDialogs = (dialogs: Record<string, HelpDialogConfig>) =>\n  helpDialogConfigs.set(dialogs ?? {})\n\nexport const openHelpDialog = (\n  id: string,\n  options: { context?: HelpDialogContext; fallback?: HelpDialogConfig | null } = {},\n) => {\n  activeHelpDialog.set({\n    id,\n    context: options.context,\n    overrideConfig: options.fallback ?? null,\n  })\n}\n\nexport const closeHelpDialog = () => activeHelpDialog.set(null)\n","<script lang=\"ts\">\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiHelpCircleOutline } from \"@mdi/js\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import type { HelpDialogConfig, HelpDialogContext } from \"../../../../core/help/types\"\n  import { openHelpDialog } from \"../../../../core/help/helpDialogs\"\n  interface Props {\n    title: string\n    allowWrap?: boolean\n    wrapButtonsOnMobile?: boolean\n    subtitle?: string\n    description?: string\n    brightBackground?: boolean\n    darkMode?: boolean\n    class?: string\n    style?: string\n    styleOuter?: string\n    /** @deprecated Section titles always use compact sizing. */\n    small?: boolean\n    helpModalTextId?: string\n    helpModalContext?: HelpDialogContext\n    helpModalFallback?: HelpDialogConfig | null\n    /** @deprecated Help actions use a consistent explanatory tooltip. */\n    helpModalTooltip?: string\n    tooltipContent?: string\n    contentSnippet?: () => any\n    children?: () => any\n    buttonSnippet?: () => any\n    secondaryCTA?: () => any\n    [key: string]: any\n  }\n\n  let {\n    title,\n    allowWrap = true,\n    wrapButtonsOnMobile = true,\n    subtitle = \"\",\n    description = \"\",\n    brightBackground = false,\n    darkMode = true,\n    class: className = \"\",\n    style: styleAttr,\n    contentSnippet = null,\n    children = null,\n    buttonSnippet = null,\n    secondaryCTA = null,\n    styleOuter = \"\",\n    helpModalTextId = \"\",\n    tooltipContent = \"\",\n    helpModalContext = undefined,\n    helpModalFallback = null,\n    helpModalTooltip: _helpModalTooltip = \"\",\n    small: _small = true,\n    ...restProps\n  }: Props = $props()\n\n  let themeClass = $derived(brightBackground || !darkMode ? \"lightMode\" : \"darkMode\")\n\n  let headerClass = $derived(\n    [\"kw-section-title\", \"small\", themeClass, className].filter(Boolean).join(\" \"),\n  )\n  const hasHelp = $derived(Boolean(helpModalTextId || tooltipContent))\n\n  let slotContent = $derived(contentSnippet ?? children)\n  let titleIsTruncated = $state(false)\n  let headerWithButtonNode = $state<HTMLDivElement | null>(null)\n  let buttonActionsNode = $state<HTMLDivElement | null>(null)\n  let buttonActionsWidth = $state(0)\n  let headerGapWidth = $state(0)\n\n  const updateTitleTruncation = (node: HTMLElement | null) => {\n    if (!node || allowWrap) {\n      titleIsTruncated = false\n\n      return\n    }\n\n    titleIsTruncated = node.scrollWidth > node.clientWidth\n  }\n\n  const watchTitleTruncation = (\n    node: HTMLSpanElement,\n    _payload: { title: string; allowWrap: boolean },\n  ) => {\n    updateTitleTruncation(node)\n\n    if (typeof ResizeObserver !== \"function\") {\n      return\n    }\n\n    const observer = new ResizeObserver(() => updateTitleTruncation(node))\n    observer.observe(node)\n\n    return {\n      update: () => updateTitleTruncation(node),\n      destroy: () => observer.disconnect(),\n    }\n  }\n\n  const handleHelpClick = () => {\n    if (!helpModalTextId) return\n\n    openHelpDialog(helpModalTextId, {\n      context: helpModalContext,\n      fallback: helpModalFallback ?? undefined,\n    })\n  }\n\n  const readButtonLayout = () => {\n    if (!headerWithButtonNode || !buttonActionsNode) {\n      buttonActionsWidth = 0\n      headerGapWidth = 0\n\n      return\n    }\n\n    const measuredWidth = Math.ceil(buttonActionsNode.getBoundingClientRect().width)\n    const scrollWidth = Math.ceil(buttonActionsNode.scrollWidth)\n    let childOuterWidth = 0\n    const childElements = Array.from(buttonActionsNode.children) as HTMLElement[]\n    for (const child of childElements) {\n      const rect = child.getBoundingClientRect()\n      const childStyles = getComputedStyle(child)\n      const marginLeft = Number.parseFloat(childStyles.marginLeft) || 0\n      const marginRight = Number.parseFloat(childStyles.marginRight) || 0\n      childOuterWidth = Math.max(childOuterWidth, Math.ceil(rect.width + marginLeft + marginRight))\n    }\n    buttonActionsWidth = Math.max(measuredWidth, scrollWidth, childOuterWidth)\n\n    const styles = getComputedStyle(headerWithButtonNode)\n    const rawGap = styles.columnGap || styles.gap || \"0\"\n    const parsedGap = Number.parseFloat(rawGap)\n    headerGapWidth = Number.isFinite(parsedGap) ? Math.ceil(parsedGap) : 0\n  }\n\n  $effect(() => {\n    if (!buttonSnippet || !headerWithButtonNode || !buttonActionsNode) {\n      buttonActionsWidth = 0\n      headerGapWidth = 0\n\n      return\n    }\n\n    readButtonLayout()\n\n    if (typeof ResizeObserver !== \"function\") {\n      return\n    }\n\n    const observer = new ResizeObserver(() => readButtonLayout())\n    observer.observe(headerWithButtonNode)\n    observer.observe(buttonActionsNode)\n\n    return () => observer.disconnect()\n  })\n</script>\n\n{#snippet titleContent()}\n  <span\n    class=\"kw-section-title__heading-title\"\n    class:no-wrap={!allowWrap}\n    use:watchTitleTruncation={{ title, allowWrap }}\n    use:tooltip={!hasHelp && !allowWrap && titleIsTruncated ? { content: title } : false}\n  >\n    {title}\n  </span>\n{/snippet}\n\n{#snippet header()}\n  <header class={headerClass} style={`${styleAttr}`} {...restProps}>\n    {#if subtitle || secondaryCTA}\n      <div class=\"kw-section-title__top-row\">\n        {#if subtitle}\n          <small>{subtitle}</small>\n        {/if}\n        {#if secondaryCTA}\n          <div class=\"kw-section-title__secondary-cta\">\n            {@render secondaryCTA()}\n          </div>\n        {/if}\n      </div>\n    {/if}\n    <h2 class=\"kw-section-title__heading\">\n      {#if hasHelp}\n        <button\n          class=\"kw-section-title__help\"\n          type=\"button\"\n          aria-haspopup={helpModalTextId ? \"dialog\" : undefined}\n          use:tooltip={{\n            content: helpModalTextId ? \"Hilfetext zur Seite anzeigen\" : tooltipContent,\n            when: helpModalTextId ? \"hover\" : \"click\",\n            focus: true,\n          }}\n          onclick={helpModalTextId ? handleHelpClick : undefined}\n        >\n          {@render titleContent()}\n          <span class=\"kw-section-title__help-icon\" aria-hidden=\"true\">\n            <Icon path={mdiHelpCircleOutline} size=\"0.75rem\" />\n          </span>\n        </button>\n      {:else}\n        {@render titleContent()}\n      {/if}\n    </h2>\n    {#if description}\n      <p>{description}</p>\n    {/if}\n    {@render slotContent?.()}\n  </header>\n{/snippet}\n\n{#if buttonSnippet}\n  <div\n    class=\"kw-header-with-button\"\n    class:no-wrap={!allowWrap}\n    class:mobile-wrap={wrapButtonsOnMobile}\n    style={`${styleOuter}; --kw-section-title-button-width:${buttonActionsWidth}px; --kw-section-title-header-gap:${headerGapWidth}px;`}\n    bind:this={headerWithButtonNode}\n  >\n    {@render header()}\n    <div class=\"button-actions\" bind:this={buttonActionsNode}>\n      {@render buttonSnippet()}\n    </div>\n  </div>\n{:else}\n  {@render header()}\n{/if}\n\n<style lang=\"less\">\n  .kw-header-with-button {\n    --kw-section-title-button-width: 0px;\n    --kw-section-title-header-gap: 0px;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    gap: 1.6rem;\n    width: 100%;\n    &:not(.no-wrap) {\n      flex-wrap: wrap;\n      row-gap: 0.8rem;\n\n      .button-actions {\n        flex: 0 10 auto;\n        flex-wrap: wrap;\n        justify-content: flex-end;\n        margin-left: auto;\n      }\n    }\n    .kw-section-title {\n      flex: 1 1 auto;\n      min-width: 0;\n      width: auto;\n    }\n    &.no-wrap {\n      .kw-section-title {\n        max-width: max(\n          0px,\n          calc(100% - var(--kw-section-title-button-width) - var(--kw-section-title-header-gap))\n        );\n      }\n    }\n    @media (max-width: 600px) {\n      &.mobile-wrap {\n        flex-direction: column;\n        align-items: stretch;\n        .kw-section-title {\n          width: 100%;\n          max-width: 100%;\n        }\n        .button-actions {\n          width: 100%;\n          align-self: stretch;\n          justify-content: flex-end;\n        }\n      }\n    }\n  }\n  .button-actions {\n    display: flex;\n    gap: 1.2rem;\n    flex-wrap: nowrap;\n    flex: 0 0 auto;\n    min-width: 0;\n    max-width: 100%;\n    justify-content: flex-start;\n    @media (max-width: 1000px) {\n      flex-wrap: wrap;\n    }\n  }\n  .kw-section-title {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 0.2rem;\n    width: 100%;\n\n    .kw-section-title__top-row {\n      display: flex;\n      align-items: center;\n      gap: 0.8rem;\n      width: 100%;\n    }\n\n    .kw-section-title__secondary-cta {\n      margin-left: auto;\n    }\n\n    small {\n      font-size: 0.5rem;\n      letter-spacing: 0.12em;\n      text-transform: uppercase;\n      font-weight: 600;\n    }\n\n    .kw-section-title__heading {\n      margin: 0;\n      font-size: 1.3rem;\n      line-height: 1.3;\n      display: flex;\n      width: 100%;\n      min-width: 0;\n      .kw-section-title__heading-title {\n        min-width: 0;\n        overflow-wrap: anywhere;\n        &.no-wrap {\n          flex: 1 1 auto;\n          overflow: hidden;\n          text-overflow: ellipsis;\n          white-space: nowrap;\n        }\n      }\n    }\n\n    .kw-section-title__help {\n      position: relative;\n      display: inline-flex;\n      min-width: 0;\n      max-width: 100%;\n      padding: 0 1rem 0 0;\n      border: 0;\n      background: transparent;\n      color: inherit;\n      font: inherit;\n      text-align: start;\n      cursor: pointer;\n\n      &:hover .kw-section-title__heading-title {\n        text-decoration: underline;\n        text-underline-offset: 0.15em;\n      }\n\n      &:focus-visible {\n        outline: 2px solid currentColor;\n        outline-offset: 4px;\n      }\n    }\n\n    .kw-section-title__help-icon {\n      position: absolute;\n      top: -0.125rem;\n      right: 0;\n      display: flex;\n      opacity: 0.65;\n      pointer-events: none;\n    }\n\n    p {\n      margin: 0;\n      line-height: 1.6;\n    }\n\n    &.darkMode {\n      small {\n        color: var(--text-200) !important;\n      }\n\n      .kw-section-title__heading {\n        color: var(--neutral-white, #fff);\n      }\n\n      p {\n        color: var(--text-200) !important;\n      }\n    }\n\n    &.lightMode {\n      small {\n        color: color-mix(in srgb, var(--text-invers-100) 80%, transparent) !important;\n      }\n\n      .kw-section-title__heading {\n        color: var(--text-invers-100, #2f4858);\n      }\n\n      p {\n        color: color-mix(in srgb, var(--text-invers-100) 85%, transparent) !important;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import type { Snippet } from \"svelte\"\n  import SectionTitle from \"../../../typography/_modules/section-title/index\"\n\n  let {\n    title,\n    appearance,\n    showTitle = true,\n    onClose = () => {},\n    size = \"medium\",\n    closeLabel = \"Schließen\",\n    descriptionSnippet,\n    navigationSnippet,\n    contentKey,\n    content,\n    children,\n    footerSnippet,\n  }: {\n    title: string\n    appearance: \"plain\" | \"detail\"\n    showTitle?: boolean\n    onClose?: () => void\n    size?: \"small\" | \"medium\" | \"large\" | \"xl\"\n    closeLabel?: string\n    descriptionSnippet?: Snippet\n    navigationSnippet?: Snippet\n    contentKey?: string | number\n    content?: Snippet<[{ close: () => void }]>\n    children?: Snippet<[{ close: () => void }]>\n    footerSnippet?: Snippet<[{ close: () => void }]>\n  } = $props()\n\n  const instanceId = $props.id()\n\n  let dialog: HTMLDialogElement | null = null\n  let body = $state<HTMLDivElement | null>(null)\n  let skipNextCloseEvent = false\n  let displayedContentKey: string | number | undefined\n\n  // A new topic starts at the top without remounting the modal or moving keyboard focus.\n  $effect(() => {\n    if (contentKey !== undefined && body && contentKey !== displayedContentKey) {\n      body.scrollTop = 0\n      displayedContentKey = contentKey\n    }\n  })\n\n  const notifyClose = () => {\n    onClose()\n  }\n\n  const close = () => {\n    if (dialog?.open) {\n      skipNextCloseEvent = true\n      dialog.close()\n    }\n\n    notifyClose()\n  }\n\n  const handleDialogClose = () => {\n    if (skipNextCloseEvent) {\n      skipNextCloseEvent = false\n\n      return\n    }\n\n    notifyClose()\n  }\n\n  const handleDialogCancel = (event: Event) => {\n    event.preventDefault()\n    close()\n  }\n\n  const keepFocusInDialog = (event: KeyboardEvent) => {\n    if (\n      !dialog ||\n      event.key !== \"Tab\" ||\n      !(event.target instanceof Element) ||\n      event.target.closest(\"dialog\") !== dialog\n    )\n      return\n\n    const controls = Array.from(\n      dialog.querySelectorAll<HTMLElement>(\n        'a[href], button, input:not([type=\"hidden\"]), select, textarea, [tabindex], [contenteditable=\"true\"]',\n      ),\n    ).filter(\n      (element) =>\n        element.tabIndex >= 0 &&\n        !element.matches(\":disabled\") &&\n        element.getClientRects().length > 0,\n    )\n    const first = controls[0]\n    const last = controls.at(-1)\n\n    if (\n      first &&\n      last &&\n      ((event.shiftKey && document.activeElement === first) ||\n        (!event.shiftKey && document.activeElement === last))\n    ) {\n      event.preventDefault()\n      const nextControl = event.shiftKey ? last : first\n      nextControl.focus()\n    }\n  }\n\n  onMount(() => {\n    const mountedDialog = dialog\n    const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null\n\n    if (mountedDialog && typeof mountedDialog.showModal === \"function\" && !mountedDialog.open) {\n      mountedDialog.showModal()\n    }\n\n    const initialControl = mountedDialog?.querySelector<HTMLElement>(\n      '[role=\"tab\"][aria-selected=\"true\"], .modal__body input:not([disabled]):not([type=\"hidden\"]), .modal__body select:not([disabled]), .modal__body textarea:not([disabled])',\n    )\n    initialControl?.focus()\n\n    return () => {\n      // Store-driven removal must also release the native modal and restore its opener's focus.\n      if (mountedDialog?.open) {\n        skipNextCloseEvent = true\n        mountedDialog.close()\n      }\n\n      queueMicrotask(() => {\n        if (\n          opener?.isConnected &&\n          document.activeElement === document.body &&\n          !document.querySelector(\"dialog[open]\")\n        ) {\n          opener.focus()\n        }\n      })\n    }\n  })\n</script>\n\n<dialog\n  bind:this={dialog}\n  class={`modal modal-dialog dialog-open modal--${size} modal--${appearance}`}\n  aria-labelledby={showTitle ? `${instanceId}-title` : undefined}\n  aria-label={showTitle ? undefined : title}\n  aria-describedby={descriptionSnippet ? `${instanceId}-description` : undefined}\n  onclick={(e) => e.stopPropagation()}\n  onmousedown={(e) => e.stopPropagation()}\n  onmouseup={(e) => e.stopPropagation()}\n  onkeydown={keepFocusInDialog}\n  oncancel={handleDialogCancel}\n  onclose={handleDialogClose}\n>\n  <header class=\"modal__header\">\n    <div class=\"modal__identity\" id={showTitle ? `${instanceId}-title` : undefined}>\n      {#if showTitle}\n        <SectionTitle {title} darkMode={appearance === \"detail\"} />\n      {/if}\n    </div>\n    <button class=\"modal__close\" type=\"button\" onclick={close} aria-label={closeLabel}>✕</button>\n    {#if descriptionSnippet}\n      <div class=\"modal__description\" id={`${instanceId}-description`}>\n        {@render descriptionSnippet()}\n      </div>\n    {/if}\n  </header>\n  {#if navigationSnippet}\n    <div class=\"modal__navigation\">{@render navigationSnippet()}</div>\n  {/if}\n  <div class=\"modal__body\" bind:this={body}>\n    {#if children}\n      {@render children({ close })}\n    {:else}\n      {@render content?.({ close })}\n    {/if}\n  </div>\n  {#if footerSnippet}\n    <footer class=\"modal__footer\">{@render footerSnippet({ close })}</footer>\n  {/if}\n</dialog>\n\n<style>\n  .modal-dialog {\n    --kw-app-content-inset: 24px;\n    --modal-max-width: 540px;\n    display: flex;\n    flex-direction: column;\n    box-sizing: border-box;\n    width: min(var(--modal-max-width), calc(100vw - 32px));\n    max-width: none;\n    max-height: min(90dvh, calc(100dvh - 32px));\n    margin: auto;\n    padding: 0;\n    border: 1px solid color-mix(in srgb, var(--text-invers-100) 18%, transparent);\n    border-radius: 0;\n    background: var(--neutral-white, #fff);\n    color: var(--text-invers-100, #2f4858);\n    color-scheme: light;\n    box-shadow: 0 20px 60px rgb(0 0 0 / 35%);\n    overflow: hidden;\n  }\n  .modal--small {\n    --modal-max-width: 420px;\n  }\n  .modal-dialog:not([open]) {\n    display: none;\n  }\n  .modal--large {\n    --modal-max-width: 720px;\n  }\n  .modal--xl {\n    --modal-max-width: 1700px;\n    height: min(80dvh, 700px);\n  }\n  .modal-dialog::backdrop {\n    background: rgb(0 0 0 / 60%);\n    backdrop-filter: blur(4px);\n  }\n  .modal__header {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n    align-items: start;\n    gap: 8px 16px;\n    flex: 0 0 auto;\n    padding: var(--kw-app-content-inset);\n    background: var(--neutral-white, #fff);\n    color: var(--text-invers-100);\n  }\n  .modal--detail .modal__header {\n    background: var(--bg-100, #0d0c0c);\n    color: #fff;\n    color-scheme: dark;\n  }\n  .modal__identity {\n    min-width: 0;\n    align-self: center;\n  }\n  .modal__description {\n    grid-column: 1 / -1;\n    line-height: 1.6;\n    font-size: 14px;\n    overflow-wrap: anywhere;\n  }\n  .modal--detail .modal__description {\n    color: rgb(255 255 255 / 70%);\n  }\n  .modal__close {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    margin: -2px -8px -2px 0;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    font: inherit;\n    font-size: 18px;\n    cursor: pointer;\n  }\n  .modal__close:hover {\n    background: color-mix(in srgb, currentColor 8%, transparent);\n  }\n  .modal__close:focus-visible {\n    outline: 2px solid currentColor;\n    outline-offset: -2px;\n  }\n  .modal__navigation {\n    flex: 0 0 auto;\n    min-width: 0;\n  }\n  .modal__body {\n    flex: 1 1 auto;\n    min-width: 0;\n    min-height: 0;\n    padding: 24px var(--kw-app-content-inset);\n    background: var(--neutral-white, #fff);\n    color: var(--text-invers-100);\n    overflow: auto;\n    overscroll-behavior: contain;\n    scrollbar-width: thin;\n    scrollbar-color: var(--text-invers-200) transparent;\n  }\n  .modal__footer {\n    flex: 0 0 auto;\n    padding: var(--kw-app-content-inset);\n    border-top: 1px solid color-mix(in srgb, var(--text-invers-100) 15%, transparent);\n    background: var(--neutral-white, #fff);\n    color: var(--text-invers-100);\n  }\n  @media (max-width: 767px) {\n    .modal-dialog {\n      --kw-app-content-inset: 16px;\n    }\n    .modal__body {\n      padding-block: 16px;\n    }\n  }\n</style>\n","export type TagOption = {\n  name?: string\n  label?: string\n  value: string\n  icon?: string\n  group?: string\n  selectable?: boolean\n  description?: string\n  example?: string\n}\n\nexport const normalizeTagOptions = (options: unknown): TagOption[] =>\n  Array.isArray(options) ? options.filter((option): option is TagOption => isTagOption(option)) : []\n\nexport const readTagOptionLabel = (option: TagOption | undefined, fallback: string): string => {\n  const label = String(option?.label || option?.name || \"\").trim()\n\n  return label || fallback\n}\n\nconst isTagOption = (option: unknown): option is TagOption => {\n  if (!option || typeof option !== \"object\") return false\n\n  const value = (option as { value?: unknown }).value\n\n  return typeof value === \"string\" && value.length > 0\n}\n","<script lang=\"ts\">\n  import ModalDialog from \"../../../overlay/_modules/modal-dialog/index\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import { serializeToken, type TagTokenSyntax } from \"../../../../core/forms/index\"\n  import {\n    normalizeTagOptions,\n    readTagOptionLabel,\n    type TagOption,\n  } from \"../../_shared/_logic/tag-options/index\"\n\n  interface Props {\n    open?: boolean\n    options?: TagOption[]\n    title?: string\n    tokenSyntax?: TagTokenSyntax\n    onSelect?: (option: TagOption) => void\n    onClose?: () => void\n  }\n\n  const SEARCH_THRESHOLD = 8\n\n  let {\n    open = $bindable(false),\n    options = [],\n    title = \"Platzhalter einfügen\",\n    tokenSyntax = \"double\",\n    onSelect = () => {},\n    onClose = () => {},\n  }: Props = $props()\n\n  const normalizedOptions = $derived<TagOption[]>(normalizeTagOptions(options))\n  const pickerOptions = $derived<TagOption[]>(\n    normalizedOptions.filter((option) => option.selectable !== false),\n  )\n\n  let selectedValue = $state<string>(\"\")\n  let query = $state<string>(\"\")\n\n  const optionLabel = (option: TagOption) => readTagOptionLabel(option, option.value)\n  const optionToken = (option: TagOption) => serializeToken(option.value, tokenSyntax)\n\n  const normalizedQuery = $derived(query.trim().toLocaleLowerCase(\"de-DE\"))\n  const showSearch = $derived(pickerOptions.length >= SEARCH_THRESHOLD)\n\n  const filteredOptions = $derived.by(() => {\n    if (!normalizedQuery) return pickerOptions\n\n    return pickerOptions.filter((option) => {\n      const searchableText = [\n        optionLabel(option),\n        option.description,\n        option.example,\n        option.group,\n        option.value,\n        optionToken(option),\n      ]\n        .filter(Boolean)\n        .join(\" \")\n        .toLocaleLowerCase(\"de-DE\")\n\n      return searchableText.includes(normalizedQuery)\n    })\n  })\n\n  const selection = $derived.by(() => {\n    if (filteredOptions.some((option) => option.value === selectedValue)) return selectedValue\n\n    return filteredOptions[0]?.value ?? \"\"\n  })\n\n  const groupedOptions = $derived.by(() => {\n    const groups = new Map<string, TagOption[]>()\n    for (const option of filteredOptions) {\n      const group = String(option.group || \"Weitere\").trim() || \"Weitere\"\n      groups.set(group, [...(groups.get(group) ?? []), option])\n    }\n\n    return Array.from(groups.entries()).map(([group, entries]) => ({ group, entries }))\n  })\n\n  const handleClose = () => {\n    open = false\n    selectedValue = \"\"\n    query = \"\"\n    onClose()\n  }\n\n  const resetPickerState = () => {\n    open = false\n    selectedValue = \"\"\n    query = \"\"\n  }\n\n  const handleSelectByValue = (value: string) => {\n    const option = pickerOptions.find((entry) => entry.value === value)\n\n    if (!option) return\n\n    resetPickerState()\n    onSelect(option)\n  }\n\n  const handleOptionDoubleClick = (value: string) => {\n    selectedValue = value\n    handleSelectByValue(value)\n  }\n\n  const handleKeydown = (event: KeyboardEvent) => {\n    if (event.key !== \"Enter\" || event.isComposing || !selection) return\n\n    event.preventDefault()\n    handleSelectByValue(selection)\n  }\n</script>\n\n{#if open}\n  <ModalDialog appearance=\"plain\" {title} size=\"large\" onClose={handleClose}>\n    {#snippet content()}\n      <div class=\"tag-picker-simple\">\n        <div class=\"tag-picker-simple__intro\">\n          <p class=\"tag-picker-simple__hint\">\n            Wählen Sie einen Platzhalter aus. Beim Versand ersetzt KehrBlatt ihn automatisch durch\n            den passenden Wert.\n          </p>\n        </div>\n\n        {#if showSearch}\n          <label class=\"tag-picker-simple__search\">\n            <span>Platzhalter suchen</span>\n            <input\n              type=\"search\"\n              bind:value={query}\n              placeholder=\"Name oder Erklärung suchen\"\n              autocomplete=\"off\"\n              onkeydown={handleKeydown}\n            />\n          </label>\n        {/if}\n\n        <div class=\"tag-picker-simple__list\" role=\"listbox\" aria-label=\"Platzhalter auswählen\">\n          {#if groupedOptions.length > 0}\n            {#each groupedOptions as group (group.group)}\n              <section class=\"tag-picker-simple__group\" aria-label={group.group}>\n                <h3>{group.group}</h3>\n                {#each group.entries as option (option.value)}\n                  <button\n                    type=\"button\"\n                    role=\"option\"\n                    class:selected={selection === option.value}\n                    aria-selected={selection === option.value}\n                    onclick={() => {\n                      selectedValue = option.value\n                    }}\n                    onkeydown={handleKeydown}\n                    ondblclick={() => handleOptionDoubleClick(option.value)}\n                  >\n                    <span class=\"tag-picker-simple__option-head\">\n                      <span class=\"tag-picker-simple__label\">{optionLabel(option)}</span>\n                      {#if selection === option.value}\n                        <span class=\"tag-picker-simple__selected\">Ausgewählt</span>\n                      {/if}\n                    </span>\n                    {#if option.description}\n                      <span class=\"tag-picker-simple__description\">{option.description}</span>\n                    {/if}\n                    {#if option.example}\n                      <span class=\"tag-picker-simple__example\">\n                        <span>So sieht es im Text aus:</span>\n                        {option.example}\n                      </span>\n                    {/if}\n                  </button>\n                {/each}\n              </section>\n            {/each}\n          {:else}\n            <p class=\"tag-picker-simple__empty\">Keine passenden Platzhalter gefunden.</p>\n          {/if}\n        </div>\n      </div>\n    {/snippet}\n\n    {#snippet footerSnippet()}\n      <div class=\"tag-picker-simple__footer\">\n        <CTA\n          darkMode={false}\n          type=\"primaryButton\"\n          content=\"Auswahl einfügen\"\n          disabled={!selection}\n          onClick={() => handleSelectByValue(selection)}\n        />\n      </div>\n    {/snippet}\n  </ModalDialog>\n{/if}\n\n<style lang=\"less\" global>\n  @import \"../../../../theme/tokens.less\";\n\n  .tag-picker-simple {\n    display: flex;\n    flex-direction: column;\n    gap: 0.85rem;\n    min-width: 0;\n    justify-content: flex-start;\n    color: var(--text-invers-100) !important;\n\n    &__intro {\n      background: color-mix(in srgb, var(--text-invers-100) 5%, transparent);\n      border: 1px solid color-mix(in srgb, var(--text-invers-100) 12%, transparent);\n      padding: 0.85rem 0.95rem;\n    }\n\n    &__hint {\n      color: var(--text-invers-100) !important;\n      font-size: 1rem;\n      line-height: 1.45;\n      margin: 0;\n    }\n\n    &__search {\n      display: grid;\n      gap: 0.35rem;\n\n      span {\n        color: var(--text-invers-100) !important;\n        font-size: 0.78rem;\n        font-weight: 800;\n        text-transform: uppercase;\n      }\n\n      input {\n        background: color-mix(in srgb, var(--text-invers-100) 4%, transparent);\n        border: 1px solid color-mix(in srgb, var(--text-invers-100) 18%, transparent);\n        color: var(--text-invers-100) !important;\n        font: inherit;\n        min-height: 2.4rem;\n        outline: none;\n        padding: 0.55rem 0.7rem;\n\n        &::placeholder {\n          color: color-mix(in srgb, var(--text-invers-100) 42%, transparent) !important;\n        }\n\n        &:focus {\n          border-color: var(--primary-100);\n          box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-100) 18%, transparent);\n        }\n      }\n    }\n\n    &__list {\n      display: flex;\n      flex-direction: column;\n      gap: 0.85rem;\n    }\n\n    &__group {\n      display: flex;\n      flex-direction: column;\n      gap: 0.45rem;\n\n      h3 {\n        color: var(--text-invers-100) !important;\n        font-size: 0.78rem;\n        font-weight: 800;\n        letter-spacing: 0;\n        margin: 0;\n        text-transform: uppercase;\n      }\n\n      button {\n        border: 1px solid color-mix(in srgb, var(--text-invers-100) 14%, transparent);\n        border-left: 4px solid transparent;\n        background: color-mix(in srgb, var(--text-invers-100) 5%, transparent);\n        color: var(--text-invers-100) !important;\n        display: grid;\n        gap: 0.38rem;\n        padding: 0.72rem 0.78rem;\n        position: relative;\n        text-align: left;\n        width: 100%;\n        cursor: pointer;\n        transition:\n          background 0.15s ease,\n          border-left-color 0.15s ease,\n          transform 0.12s ease;\n\n        &:hover,\n        &.selected {\n          border-left-color: var(--primary-100);\n          background: color-mix(in srgb, var(--text-invers-100) 7%, transparent);\n        }\n\n        &:hover {\n          transform: translateY(-1px);\n        }\n      }\n    }\n\n    &__option-head {\n      align-items: flex-start;\n      display: flex;\n      gap: 0.65rem;\n      justify-content: space-between;\n    }\n\n    &__label {\n      color: var(--text-invers-100) !important;\n      font-weight: 800;\n      line-height: 1.25;\n    }\n\n    &__description,\n    &__example {\n      font-size: 0.86rem;\n      line-height: 1.35;\n    }\n\n    &__description {\n      color: color-mix(in srgb, var(--text-invers-100) 70%, transparent) !important;\n    }\n\n    &__example {\n      color: color-mix(in srgb, var(--text-invers-100) 64%, transparent) !important;\n      display: block;\n\n      span {\n        color: color-mix(in srgb, var(--text-invers-100) 82%, transparent) !important;\n        display: inline;\n        font-weight: 800;\n        margin-right: 0.35rem;\n      }\n    }\n\n    &__selected {\n      color: color-mix(in srgb, var(--text-invers-100) 84%, transparent) !important;\n      font-size: 0.74rem;\n      font-weight: 800;\n      line-height: 1.1;\n      text-transform: uppercase;\n    }\n\n    &__empty {\n      border: 1px dashed color-mix(in srgb, var(--text-invers-100) 18%, transparent);\n      color: color-mix(in srgb, var(--text-invers-100) 70%, transparent) !important;\n      margin: 0;\n      padding: 0.9rem;\n    }\n  }\n\n  .tag-picker-simple__footer {\n    display: flex;\n    justify-content: flex-end;\n  }\n\n  @media (max-width: 700px) {\n    .tag-picker-simple {\n      &__option-head {\n        flex-direction: column;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { tick } from \"svelte\"\n  import {\n    ensureString,\n    serializeToken,\n    splitIntoSegments,\n    computeCaretIndex,\n    findAdjacentToken,\n    describeTokenLength,\n    serializeNode,\n    type TagSegment,\n    type TagTokenSyntax,\n  } from \"../../../../core/forms/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import {\n    normalizeTagOptions,\n    readTagOptionLabel,\n    type TagOption,\n  } from \"../../_shared/_logic/tag-options/index\"\n\n  interface Props {\n    value?: string | number | null\n    placeholder?: string\n    ariaLabel?: string\n    disabled?: boolean\n    id?: string\n    options?: TagOption[]\n    tokenSyntax?: TagTokenSyntax\n    brightBackground?: boolean\n    onValueInput?: (value: string) => void\n    onValueCommit?: (value: string) => void\n    onCaretChange?: (caretIndex: number | null) => void\n  }\n\n  let {\n    value = $bindable(\"\"),\n    placeholder = \"Eingabe\",\n    ariaLabel = undefined,\n    disabled = false,\n    id = \"tag-input-\" + Math.random().toString(36).substring(2, 15),\n    options = [],\n    tokenSyntax = \"double\",\n    brightBackground = false,\n    onValueInput = () => {},\n    onValueCommit = () => {},\n    onCaretChange = () => {},\n  }: Props = $props()\n\n  const normalizedValue = $derived<string>(ensureString(value))\n  const segments = $derived<TagSegment[]>(splitIntoSegments(normalizedValue))\n  const hasContent = $derived(normalizedValue.length > 0)\n  const normalizedOptions = $derived<TagOption[]>(normalizeTagOptions(options))\n  const optionByValue = $derived.by(\n    () => new Map(normalizedOptions.map((option) => [option.value, option])),\n  )\n\n  let editor: HTMLDivElement | null = $state(null)\n  let caretIndex: number | null = $state(null)\n\n  const applyValue = (next: string, triggerChange = false) => {\n    const normalized = ensureString(next)\n    value = normalized\n    onValueInput(normalized)\n\n    if (triggerChange) {\n      onValueCommit(normalized)\n    }\n  }\n\n  const updateCaret = (index: number | null) => {\n    caretIndex = index\n    onCaretChange(index)\n  }\n\n  const handleInput = () => {\n    const nextCaret = computeCaretIndex(editor, normalizedValue.length)\n    updateCaret(nextCaret)\n    const nextValue = extractValueFromEditor()\n    applyValue(nextValue, false)\n\n    tick().then(() => {\n      if (!editor || !editor.contains(document.activeElement)) return\n\n      const target = nextCaret ?? nextValue.length\n      placeCaretAt(target)\n      updateCaret(target)\n    })\n  }\n\n  const handleBlur = () => {\n    applyValue(extractValueFromEditor(), true)\n  }\n\n  const handleKeyDown = (event: KeyboardEvent) => {\n    if (event.key === \"Enter\") {\n      event.preventDefault()\n      insertTextAtCaret(\"\\n\")\n      const nextCaret = computeCaretIndex(editor, normalizedValue.length)\n      updateCaret(nextCaret)\n      const nextValue = extractValueFromEditor()\n      applyValue(nextValue, false)\n\n      tick().then(() => {\n        if (!editor || !editor.contains(document.activeElement)) return\n\n        const target = nextCaret ?? nextValue.length\n        placeCaretAt(target)\n        updateCaret(target)\n      })\n\n      return\n    }\n\n    if (event.key !== \"Backspace\" && event.key !== \"Delete\") return\n\n    if (!editor) return\n\n    const selection = window.getSelection()\n\n    if (\n      !selection ||\n      selection.rangeCount === 0 ||\n      !selection.isCollapsed ||\n      !editor.contains(selection.anchorNode)\n    ) {\n      return\n    }\n\n    const tokenNode =\n      event.key === \"Backspace\"\n        ? findAdjacentToken(selection, \"previous\")\n        : findAdjacentToken(selection, \"next\")\n\n    if (!tokenNode) return\n\n    event.preventDefault()\n    const currentCaret = computeCaretIndex(editor, normalizedValue.length)\n    const tokenLength = describeTokenLength(tokenNode)\n\n    tokenNode.remove()\n    const nextValue = extractValueFromEditor()\n    const nextCaret =\n      event.key === \"Backspace\"\n        ? Math.max(0, (currentCaret ?? 0) - tokenLength)\n        : (currentCaret ?? 0)\n\n    applyValue(nextValue, true)\n\n    tick().then(() => {\n      placeCaretAt(nextCaret)\n      updateCaret(nextCaret)\n    })\n  }\n\n  const handlePaste = (event: ClipboardEvent) => {\n    if (!editor || !event.clipboardData) return\n\n    event.preventDefault()\n    const text = event.clipboardData.getData(\"text/plain\")\n    insertTextAtCaret(text)\n    const nextCaret = computeCaretIndex(editor, normalizedValue.length)\n    updateCaret(nextCaret)\n    const nextValue = extractValueFromEditor()\n    applyValue(nextValue, false)\n\n    tick().then(() => {\n      if (!editor || !editor.contains(document.activeElement)) return\n\n      const target = nextCaret ?? nextValue.length\n      placeCaretAt(target)\n      updateCaret(target)\n    })\n  }\n\n  const rangeFromPoint = (event: MouseEvent): Range | null => {\n    const byRange = (document as any).caretRangeFromPoint?.(event.clientX, event.clientY)\n\n    if (byRange) return byRange\n\n    if ((document as any).caretPositionFromPoint) {\n      const pos = (document as any).caretPositionFromPoint(event.clientX, event.clientY)\n\n      if (!pos) return null\n\n      const range = document.createRange()\n      range.setStart(pos.offsetNode, pos.offset)\n      range.collapse(true)\n\n      return range\n    }\n\n    return null\n  }\n\n  const findTokenAncestor = (node: Node | null): HTMLElement | null => {\n    let current: Node | null = node\n    while (current && current !== editor) {\n      if (current.nodeType === Node.ELEMENT_NODE) {\n        const element = current as HTMLElement\n\n        if (element.dataset.token) return element\n      }\n\n      current = current.parentNode\n    }\n\n    return null\n  }\n\n  const serializedLengthUntil = (configure: (range: Range) => void): number | null => {\n    if (!editor) return null\n\n    const range = document.createRange()\n    try {\n      range.setStart(editor, 0)\n      configure(range)\n      const fragment = range.cloneContents()\n\n      return serializeNode(fragment as unknown as Node, editor).length\n    } catch (err) {\n      console.warn(\"Tag editor: failed to compute caret from point\", err)\n\n      return null\n    }\n  }\n\n  const caretIndexFromPoint = (event: MouseEvent): number | null => {\n    if (!editor) return null\n\n    const rect = editor.getBoundingClientRect()\n    const insideBox =\n      event.clientX >= rect.left &&\n      event.clientX <= rect.right &&\n      event.clientY >= rect.top &&\n      event.clientY <= rect.bottom\n    const pointRange = rangeFromPoint(event)\n\n    if (!pointRange || !editor.contains(pointRange.startContainer)) {\n      return insideBox ? normalizedValue.length : null\n    }\n\n    const token = findTokenAncestor(pointRange.startContainer)\n\n    if (token) {\n      const rect = token.getBoundingClientRect()\n      const preferAfter = event.clientX >= rect.left + rect.width / 2\n\n      return serializedLengthUntil((range) => {\n        preferAfter ? range.setEndAfter(token) : range.setEndBefore(token)\n      })\n    }\n\n    return serializedLengthUntil((range) => {\n      range.setEnd(pointRange.startContainer, pointRange.startOffset)\n    })\n  }\n\n  const handleMouseDown = (event: MouseEvent) => {\n    if (!editor || disabled) return\n\n    const token = findTokenAncestor(event.target as Node | null)\n\n    if (!token) {\n      // Allow native selection/caret placement for normal text drags/clicks\n      return\n    }\n\n    const caretFromClick = caretIndexFromPoint(event)\n    const targetCaret = caretFromClick ?? caretIndex ?? normalizedValue.length\n\n    event.preventDefault()\n    event.stopPropagation()\n\n    focusEditor(targetCaret)\n  }\n\n  const insertTextAtCaret = (text: string) => {\n    const selection = window.getSelection()\n\n    if (!selection || selection.rangeCount === 0 || !editor) return\n\n    const range = selection.getRangeAt(0)\n    range.deleteContents()\n    range.insertNode(document.createTextNode(text))\n\n    range.collapse(false)\n    selection.removeAllRanges()\n    selection.addRange(range)\n  }\n\n  const handleSelectionChange = () => {\n    if (!editor) return\n\n    const selection = window.getSelection()\n\n    if (!selection || selection.rangeCount === 0) return\n\n    const range = selection.getRangeAt(0)\n\n    if (!editor.contains(range.startContainer)) return\n\n    const nextCaret = computeCaretIndex(editor, normalizedValue.length)\n    updateCaret(nextCaret)\n  }\n\n  export function focusEditor(targetCaret: number | null = null) {\n    if (!editor || disabled) return\n\n    editor.focus()\n\n    if (targetCaret !== null) {\n      tick().then(() => {\n        placeCaretAt(targetCaret)\n        updateCaret(targetCaret)\n      })\n    }\n  }\n\n  export function getCaretIndex(): number {\n    if (!editor) return normalizedValue.length\n\n    if (caretIndex !== null) return caretIndex\n\n    const selection = window.getSelection()\n\n    if (!selection || selection.rangeCount === 0) return normalizedValue.length\n\n    const range = selection.getRangeAt(0)\n\n    if (!editor.contains(range.startContainer)) return normalizedValue.length\n\n    return computeCaretIndex(editor, normalizedValue.length)\n  }\n\n  export function placeCaretAt(targetIndex: number) {\n    if (!editor) return\n\n    const selection = window.getSelection()\n\n    if (!selection) return\n\n    const range = document.createRange()\n    let remaining = Math.max(0, targetIndex)\n    let placed = false\n\n    const mapOffsetIntoText = (text: string, target: number): number => {\n      if (target <= 0) return 0\n\n      let consumed = 0\n      for (let i = 0; i < text.length; i += 1) {\n        const char = text[i]\n\n        if (char !== \"\\u200b\") {\n          consumed += 1\n        }\n\n        if (consumed >= target) {\n          return i + 1\n        }\n      }\n\n      return text.length\n    }\n\n    const walk = (node: Node): boolean => {\n      if (node.nodeType === Node.TEXT_NODE) {\n        const textLength = (node.textContent ?? \"\")\n          .replace(/\\u200b/g, \"\")\n          .replace(/\\u00a0/g, \" \").length\n\n        if (textLength === 0) {\n          if (remaining === 0) {\n            range.setStart(node, 0)\n            range.collapse(true)\n            placed = true\n\n            return true\n          }\n\n          return false\n        }\n\n        if (remaining <= textLength) {\n          const targetOffset = mapOffsetIntoText(node.textContent ?? \"\", remaining)\n          range.setStart(node, targetOffset)\n          range.collapse(true)\n          placed = true\n\n          return true\n        }\n\n        remaining -= textLength\n\n        return false\n      }\n\n      if (node.nodeType === Node.ELEMENT_NODE) {\n        const element = node as HTMLElement\n\n        if (element.dataset.placeholder === \"true\") {\n          return false\n        }\n\n        if (element.dataset.token) {\n          const tokenLen = describeTokenLength(element)\n\n          if (remaining === 0) {\n            const parent = element.parentNode ?? editor\n            const index = Array.from(parent.childNodes).indexOf(element)\n            range.setStart(parent, index)\n            range.collapse(true)\n            placed = true\n\n            return true\n          }\n\n          if (remaining <= tokenLen) {\n            const parent = element.parentNode ?? editor\n            const siblings = Array.from(parent.childNodes)\n            const index = siblings.indexOf(element)\n            const nextSibling = siblings[index + 1]\n\n            if (nextSibling && nextSibling.nodeType === Node.TEXT_NODE) {\n              range.setStart(nextSibling, 0)\n            } else {\n              range.setStart(parent, index + 1)\n            }\n\n            range.collapse(true)\n            placed = true\n\n            return true\n          }\n\n          remaining -= tokenLen\n\n          return false\n        }\n\n        for (const child of Array.from(node.childNodes)) {\n          if (walk(child)) return true\n        }\n      }\n\n      return false\n    }\n\n    walk(editor)\n\n    if (!placed) {\n      range.selectNodeContents(editor)\n      range.collapse(false)\n    }\n\n    selection.removeAllRanges()\n    selection.addRange(range)\n  }\n\n  export function insertToken(tokenValue: string) {\n    const insertion = serializeToken(tokenValue, tokenSyntax)\n    const base = ensureString(value)\n    const index = Math.max(0, Math.min(getCaretIndex(), base.length))\n    const nextValue = base.slice(0, index) + insertion + base.slice(index)\n    const targetCaret = index + insertion.length\n\n    applyValue(nextValue, true)\n\n    tick().then(() => {\n      focusEditor()\n      placeCaretAt(targetCaret)\n      updateCaret(targetCaret)\n    })\n  }\n\n  const extractValueFromEditor = (): string => {\n    if (!editor) return normalizedValue\n\n    return serializeNode(editor, editor)\n  }\n\n  const tokenTooltip = (token: string) => {\n    const option = optionByValue.get(token)\n    const example = option?.example?.trim()\n\n    return example\n      ? {\n          content: \"Dies ist ein Beispiel zur Veranschaulichung des Bausteins.\",\n          className: \"bottom\",\n        }\n      : false\n  }\n\n  // The browser edits this subtree; keeping Svelte anchors inside it leaves stale nodes behind.\n  $effect(() => {\n    const target = editor\n    const currentSegments = segments\n    const currentOptions = optionByValue\n\n    if (!target) return\n\n    const fragment = document.createDocumentFragment()\n    const tooltips: ReturnType<typeof tooltip>[] = []\n    for (const segment of currentSegments) {\n      const node = document.createElement(\"span\")\n\n      if (segment.kind === \"text\") {\n        node.className = \"text-segment\"\n        node.dataset.emptyText = String(segment.text.length === 0)\n        node.textContent = segment.text.length === 0 ? \"\\u200b\" : segment.text\n      } else {\n        node.className = \"token\"\n        node.dataset.token = segment.token\n        node.dataset.tokenSyntax = segment.syntax\n        node.contentEditable = \"false\"\n        const label = document.createElement(\"span\")\n        label.className = \"token__tag\"\n        const option = currentOptions.get(segment.token)\n        label.textContent =\n          option?.example?.trim() ||\n          readTagOptionLabel(option, serializeToken(segment.token, segment.syntax))\n        node.append(label)\n        tooltips.push(tooltip(node, tokenTooltip(segment.token)))\n      }\n\n      fragment.append(node)\n    }\n    target.replaceChildren(fragment)\n\n    return () => tooltips.forEach((entry) => entry.destroy())\n  })\n</script>\n\n<div\n  class=\"tag-editor\"\n  class:brightBackground\n  bind:this={editor}\n  contenteditable={!disabled}\n  role=\"textbox\"\n  aria-multiline=\"true\"\n  aria-label={ariaLabel ?? placeholder}\n  tabindex=\"0\"\n  {id}\n  data-empty={!hasContent}\n  data-placeholder={placeholder}\n  oninput={handleInput}\n  onkeydown={handleKeyDown}\n  onpaste={handlePaste}\n  onmousedown={handleMouseDown}\n  onclick={(event) => {\n    if (disabled) return\n\n    event.stopPropagation()\n  }}\n  onmouseup={handleSelectionChange}\n  onkeyup={handleSelectionChange}\n  onfocus={handleSelectionChange}\n  onblur={handleBlur}\n></div>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .tag-editor {\n    min-height: 52px;\n    display: block;\n    color: var(--neutral-white);\n    white-space: pre-wrap;\n    word-break: break-word;\n    outline: none;\n    line-height: 1.45;\n    cursor: text;\n    position: relative;\n\n    &:focus {\n      outline: none;\n    }\n\n    &::before {\n      content: attr(data-placeholder);\n      position: absolute;\n      inset: 0 auto auto 0;\n      color: var(--text-400);\n      opacity: 0.8;\n      pointer-events: none;\n      white-space: pre-wrap;\n      line-height: inherit;\n      display: none;\n    }\n\n    &[data-empty=\"true\"]::before {\n      display: block;\n    }\n  }\n\n  .tag-editor.brightBackground,\n  :global(.form.light) .tag-editor {\n    color: var(--text-100);\n    &::before {\n      color: var(--input-placeholder);\n    }\n  }\n\n  .tag-editor :global(.text-segment) {\n    white-space: pre-wrap;\n    color: inherit;\n    line-height: 1.4;\n    display: inline;\n  }\n\n  .tag-editor :global(.text-segment[data-empty-text=\"true\"]) {\n    display: inline-block;\n    min-width: 1px;\n  }\n\n  .tag-editor :global(.token) {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.25rem;\n    padding: 0.12rem 0.42rem;\n    border: 1px solid color-mix(in srgb, var(--primary-100) 42%, var(--neutral-white) 18%);\n    margin: 0 0.22rem 0.18rem 0;\n    background: color-mix(in srgb, var(--primary-100) 15%, transparent);\n    box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--primary-100) 18%, transparent);\n    color: inherit;\n    line-height: 1.25;\n    vertical-align: baseline;\n  }\n\n  .tag-editor :global(.token__tag) {\n    display: inline-flex;\n    align-items: center;\n    font-size: 0.92em;\n    font-weight: 700;\n    line-height: 1.2;\n    transform: none;\n    transform-origin: center left;\n    scale: 1;\n  }\n\n  .tag-editor::-webkit-scrollbar {\n    width: 8px;\n  }\n\n  .tag-editor::-webkit-scrollbar-thumb {\n    background: color-mix(in srgb, var(--surface-border) 70%, transparent);\n    border-radius: 8px;\n  }\n</style>\n","<script lang=\"ts\">\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiChevronDown, mdiTagMultipleOutline } from \"@mdi/js\"\n\n  interface Props {\n    disabled?: boolean\n    hasOptions?: boolean\n    brightBackground?: boolean\n    onClick?: (event: MouseEvent) => void\n  }\n\n  let {\n    disabled = false,\n    hasOptions = true,\n    brightBackground = false,\n    onClick = () => {},\n  }: Props = $props()\n\n  const handleClick = (event: MouseEvent) => {\n    onClick(event)\n  }\n</script>\n\n<button\n  class=\"tag-trigger\"\n  class:brightBackground\n  type=\"button\"\n  onclick={handleClick}\n  aria-label=\"Platzhalter einfügen\"\n  title=\"Platzhalter einfügen\"\n  disabled={disabled || !hasOptions}\n>\n  <Icon path={mdiTagMultipleOutline} size=\"1.05rem\" />\n  <span class=\"tag-trigger__chevron\">\n    <Icon path={mdiChevronDown} size=\"0.95rem\" />\n  </span>\n</button>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .tag-trigger {\n    display: inline-flex;\n    align-items: center;\n    gap: 4px;\n    padding: 10px;\n    background: transparent;\n    border: 1px solid color-mix(in srgb, var(--neutral-white, white) 32%, transparent);\n    color: var(--neutral-white, white);\n    cursor: pointer;\n    transition:\n      background 0.15s ease,\n      border-color 0.15s ease,\n      transform 0.12s ease;\n\n    &:hover {\n      background: color-mix(in srgb, var(--neutral-white, white) 8%, transparent);\n      border-color: color-mix(in srgb, var(--primary-100) 60%, var(--neutral-white, white));\n      color: var(--neutral-white, white);\n      transform: translateY(-1px);\n    }\n\n    &:disabled {\n      opacity: 0.5;\n      cursor: not-allowed;\n    }\n  }\n\n  .tag-trigger.brightBackground {\n    border-color: color-mix(in srgb, var(--text-invers-100) 26%, transparent);\n    color: var(--text-invers-100);\n  }\n\n  :global(.form.light) .tag-trigger,\n  :global(.content-block.dark) .tag-trigger {\n    border-color: color-mix(in srgb, var(--neutral-white, white) 32%, transparent);\n    color: var(--neutral-white, white);\n  }\n\n  .tag-trigger.brightBackground:hover {\n    background: color-mix(in srgb, var(--text-invers-100) 6%, transparent);\n    border-color: color-mix(in srgb, var(--primary-100) 70%, var(--text-invers-100));\n    color: var(--text-invers-100);\n  }\n\n  :global(.form.light) .tag-trigger:hover,\n  :global(.content-block.dark) .tag-trigger:hover {\n    background: color-mix(in srgb, var(--neutral-white, white) 8%, transparent);\n    border-color: color-mix(in srgb, var(--primary-100) 60%, var(--neutral-white, white));\n    color: var(--neutral-white, white);\n  }\n\n  .tag-trigger__chevron {\n    display: inline-flex;\n    opacity: 0.8;\n  }\n</style>\n","<script lang=\"ts\">\n  import { tick } from \"svelte\"\n  import TagPickerModal from \"../tag-picker-modal/index\"\n  import TagBasedInputEditor from \"../tag-based-input-editor/index\"\n  import TagPickerTrigger from \"../tag-picker-trigger/index\"\n  import { ensureString, type TagTokenSyntax } from \"../../../../core/forms/index\"\n  import { normalizeTagOptions, type TagOption } from \"../../_shared/_logic/tag-options/index\"\n\n  interface Props {\n    value?: string | number | null\n    placeholder?: string\n    ariaLabel?: string\n    disabled?: boolean\n    name?: string\n    id?: string\n    options?: TagOption[]\n    tokenSyntax?: TagTokenSyntax\n    brightBackground?: boolean\n    onChange?: (event: Event) => void\n    onValueChange?: (value: string) => void\n  }\n\n  let {\n    value = $bindable(\"\"),\n    placeholder = \"Eingabe\",\n    ariaLabel = undefined,\n    disabled = false,\n    name = \"\",\n    id = \"tag-input-\" + Math.random().toString(36).substring(2, 15),\n    options = [],\n    tokenSyntax = \"double\",\n    brightBackground = false,\n    onChange = () => {},\n    onValueChange = () => {},\n  }: Props = $props()\n\n  const normalizedOptions = $derived<TagOption[]>(normalizeTagOptions(options))\n  const normalizedValue = $derived<string>(ensureString(value))\n  let pickerOpen = $state(false)\n  const hasOptions = $derived(normalizedOptions.some((option) => option.selectable !== false))\n  const pickerVisible = $derived(pickerOpen && !disabled && hasOptions)\n  const focusProxyId = $derived.by(() => `${id}-label-proxy`)\n\n  let caretIndex: number | null = $state(null)\n  let suppressPickerOpen = $state(false)\n  let reopenBlockUntil = $state(0)\n  let editorComponent: TagBasedInputEditor | null = $state(null)\n\n  const updateValue = (next: string, triggerChange = false) => {\n    const normalized = ensureString(next)\n    value = normalized\n    onValueChange(normalized)\n\n    if (triggerChange) {\n      const changeEvent = new CustomEvent(\"change\", { detail: { value: normalized } })\n      onChange(changeEvent)\n    }\n  }\n\n  const handleEditorInput = (next: string) => updateValue(next, false)\n  const handleEditorCommit = (next: string) => updateValue(next, true)\n  const handleCaretChange = (next: number | null) => {\n    caretIndex = next\n  }\n\n  const openPicker = (event: MouseEvent) => {\n    event.stopPropagation()\n    const now = performance.now()\n\n    if (disabled || !hasOptions || pickerOpen || suppressPickerOpen || now < reopenBlockUntil)\n      return\n\n    caretIndex = editorComponent?.getCaretIndex() ?? caretIndex\n    pickerOpen = true\n  }\n\n  const closePicker = () => {\n    reopenBlockUntil = performance.now() + 200\n    suppressPickerOpen = true\n    pickerOpen = false\n    tick().then(() => {\n      suppressPickerOpen = false\n      editorComponent?.focusEditor()\n    })\n  }\n\n  const closePickerAfterSelection = () => {\n    reopenBlockUntil = 0\n    suppressPickerOpen = false\n    pickerOpen = false\n  }\n\n  const handleTagSelect = (option: TagOption) => {\n    closePickerAfterSelection()\n\n    if (!editorComponent) return\n\n    if (caretIndex !== null) {\n      editorComponent.placeCaretAt(caretIndex)\n    }\n\n    editorComponent.insertToken(option.value)\n  }\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n  class=\"tag-input-shell\"\n  class:brightBackground\n  class:disabled\n  onclick={(e) => e.stopPropagation()}\n>\n  <TagBasedInputEditor\n    bind:this={editorComponent}\n    bind:value\n    {id}\n    {placeholder}\n    {ariaLabel}\n    {disabled}\n    options={normalizedOptions}\n    {tokenSyntax}\n    {brightBackground}\n    onValueInput={handleEditorInput}\n    onValueCommit={handleEditorCommit}\n    onCaretChange={handleCaretChange}\n  />\n\n  <input\n    id={focusProxyId}\n    class=\"tag-input__focus-proxy\"\n    type=\"text\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    onfocus={() => editorComponent?.focusEditor(caretIndex ?? normalizedValue.length)}\n  />\n\n  <TagPickerTrigger {brightBackground} {disabled} {hasOptions} onClick={openPicker} />\n\n  <input type=\"hidden\" name={name || id} value={normalizedValue} />\n</div>\n\n<TagPickerModal\n  open={pickerVisible}\n  options={normalizedOptions}\n  {tokenSyntax}\n  onSelect={handleTagSelect}\n  onClose={closePicker}\n/>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .tag-input-shell {\n    display: grid;\n    grid-template-columns: 1fr auto;\n    align-items: end;\n    gap: 0.5rem;\n    padding: 0 12px 12px 18px;\n    border-bottom: 1px solid var(--text-invers-100);\n    position: relative;\n    transition:\n      border-color 0.18s ease,\n      box-shadow 0.18s ease;\n\n    :global(.form.light) & {\n      border-color: var(--text-100);\n    }\n\n    &.disabled {\n      opacity: 0.6;\n      pointer-events: none;\n    }\n\n    &:focus-within {\n      border-color: var(--primary-100);\n      box-shadow: 0 1px 0 0 color-mix(in srgb, var(--primary-100) 80%, transparent);\n    }\n  }\n\n  :global(label.tagBasedInput) {\n    height: auto;\n    max-height: none;\n  }\n\n  :global(label.tagBasedInput .tag-input-shell .text-segment),\n  :global(label.tagBasedInput .tag-input-shell .token__tag) {\n    opacity: 1 !important;\n    padding: 0 !important;\n    width: auto !important;\n    height: auto !important;\n    text-align: left;\n  }\n\n  :global(label.tagBasedInput .tag-input-shell .placeholder) {\n    opacity: 0.9 !important;\n    color: var(--text-300) !important;\n    font-size: 1rem;\n    line-height: 1.35;\n  }\n\n  :global(label.tagBasedInput .tag-input-shell .text-segment) {\n    color: var(--neutral-white) !important;\n    opacity: 1 !important;\n  }\n\n  :global(label.tagBasedInput .tag-input-shell .token__tag) {\n    color: var(--text-invers-100) !important;\n    opacity: 1 !important;\n  }\n\n  :global(.form.light label.tagBasedInput .tag-input-shell .text-segment) {\n    color: var(--text-100) !important;\n  }\n\n  :global(label.tagBasedInput .tag-input-shell .token) {\n    opacity: 1 !important;\n    padding: 0.12rem 0.42rem !important;\n    width: auto !important;\n    height: auto !important;\n    border: 1px solid color-mix(in srgb, var(--primary-100) 42%, var(--neutral-white) 18%) !important;\n    background: color-mix(in srgb, var(--primary-100) 15%, transparent) !important;\n    color: var(--text-invers-100) !important;\n    text-align: left;\n  }\n\n  :global(.form.light label.tagBasedInput .tag-input-shell .token),\n  :global(label.tagBasedInput .tag-input-shell.brightBackground .token) {\n    border-color: color-mix(in srgb, var(--primary-100) 52%, var(--text-invers-100) 18%) !important;\n    background: color-mix(in srgb, var(--primary-100) 12%, var(--neutral-white)) !important;\n    color: var(--text-invers-100) !important;\n  }\n\n  :global(.form.light label.tagBasedInput .tag-input-shell .token__tag),\n  :global(label.tagBasedInput .tag-input-shell.brightBackground .token__tag) {\n    color: var(--text-invers-100) !important;\n  }\n\n  .tag-input__focus-proxy {\n    position: absolute;\n    opacity: 0;\n    width: 1px;\n    height: 1px;\n    inset: 0;\n    pointer-events: none;\n  }\n</style>\n","<script lang=\"ts\">\n  import DateInput from \"../date-input/index\"\n  import SelectInput from \"../select-input/index\"\n  import TagBasedInput from \"../tag-based-input/index\"\n  import type { TagTokenSyntax } from \"../../../../core/forms/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import {\n    mdiInformationSymbol,\n    mdiEyeOutline,\n    mdiEyeOffOutline,\n    mdiCheck,\n    mdiClose,\n  } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import SafeHtml from \"../../../security/_modules/safe-html/index\"\n  interface Option extends Record<string, unknown> {\n    name?: string\n    label?: string\n    value: string\n    icon?: string\n    group?: string\n    selectable?: boolean\n    description?: string | null\n    tooltip?: string | null\n    tooltipContent?: string | null\n    example?: string\n    color?: string\n  }\n\n  interface Props {\n    value?: any\n    id?: string\n    classList?: string\n    onChange?: (e: Event) => void\n    onValueChange?: (value: any) => void\n    style?: string\n    type?:\n      | \"password\"\n      | \"password-native\"\n      | \"text\"\n      | \"number\"\n      | \"checkbox\"\n      | \"noInput\"\n      | \"textarea\"\n      | \"select\"\n      | \"dateRange\"\n      | string\n    placeholder?: string\n    disabled?: boolean\n    name?: string\n    options?: Option[]\n    tokenSyntax?: TagTokenSyntax\n    selectedOptionIndex?: number\n    helperText?: string\n    label?: string\n    autocomplete?: any\n    inputmode?: HTMLInputElement[\"inputMode\"]\n    min?: string | number\n    max?: string | number\n    step?: string | number\n    required?: boolean\n    minlength?: number\n    maxlength?: number\n    pattern?: string\n    spellcheck?: boolean\n    \"aria-describedby\"?: string\n    clearable?: boolean\n    multiple?: boolean\n    indeterminate?: boolean\n    brightBackground?: boolean\n    surfaceTone?: \"auto\" | \"light\" | \"dark\"\n    labelVisibility?: \"floating\" | \"hidden\"\n    tooltip?: string\n    boundLang?: string | null\n    groupBy?: string | ((item: Option) => string)\n    groupHeaderSelectable?: boolean\n    timestamp?: boolean\n    withTime?: boolean\n    minuteIncrement?: number\n    dateGranularity?: \"day\" | \"month\"\n    selectStyle?: string\n    fitSelectedText?: boolean\n    dataTestid?: string\n  }\n\n  let {\n    value = $bindable(\"\"),\n    id = \"input-\" + Math.random().toString(36).substring(2, 15),\n    classList = \"\",\n    onChange = () => {},\n    onValueChange = () => {},\n    style = \"\",\n    type = \"text\",\n    placeholder = \"Eingabe\",\n    disabled = false,\n    name = \"\",\n    options = [],\n    tokenSyntax = \"double\",\n    selectedOptionIndex = -1,\n    helperText = \"\",\n    label = undefined,\n    autocomplete = \"\",\n    inputmode = undefined,\n    min = undefined,\n    max = undefined,\n    step = undefined,\n    required = false,\n    minlength = undefined,\n    maxlength = undefined,\n    pattern = undefined,\n    spellcheck = undefined,\n    \"aria-describedby\": ariaDescribedby = undefined,\n    clearable = true,\n    selectStyle = \"\",\n    multiple = false,\n    indeterminate = false,\n    brightBackground = false,\n    surfaceTone = \"auto\",\n    labelVisibility = \"floating\",\n    tooltip: tooltipContent = null,\n    boundLang = null,\n    groupBy = undefined,\n    groupHeaderSelectable = false,\n    timestamp = false,\n    withTime = undefined,\n    minuteIncrement = undefined,\n    dateGranularity = undefined,\n    fitSelectedText = false,\n    dataTestid = undefined,\n  }: Props = $props()\n\n  const isRecord = (candidate: unknown): candidate is Record<string, any> =>\n    candidate !== null && typeof candidate === \"object\" && !Array.isArray(candidate)\n\n  const resolveBoundValue = () => {\n    if (!boundLang) return value\n\n    if (isRecord(value)) {\n      const langValue = value[boundLang]\n\n      if (langValue === null || langValue === undefined) return \"\"\n\n      return typeof langValue === \"string\" || typeof langValue === \"number\"\n        ? langValue\n        : String(langValue)\n    }\n\n    if (value === null || value === undefined) return \"\"\n\n    return typeof value === \"string\" || typeof value === \"number\" ? value : String(value)\n  }\n\n  let boundValue = $derived(resolveBoundValue())\n\n  const setBoundValue = (next: any) => {\n    if (!boundLang) {\n      value = next\n\n      return\n    }\n\n    const base = isRecord(value) ? { ...value } : {}\n    base[boundLang] = next\n    value = base\n  }\n\n  const hasMeaningfulValue = (input: unknown): boolean => {\n    if (Array.isArray(input)) return input.some((entry) => hasMeaningfulValue(entry))\n\n    if (input instanceof Date) return !Number.isNaN(input.getTime())\n\n    if (isRecord(input)) return Object.values(input).some((entry) => hasMeaningfulValue(entry))\n\n    return input !== undefined && input !== null && input !== \"\"\n  }\n\n  let hasValue = $derived(hasMeaningfulValue(boundLang ? boundValue : value))\n  const surfaceToneAttribute = $derived(surfaceTone === \"auto\" ? undefined : surfaceTone)\n  const accessibleLabel = $derived(label ?? placeholder)\n  const visiblePlaceholder = $derived(labelVisibility === \"hidden\" ? \"\" : placeholder)\n\n  const computedAutocomplete = $derived.by(() => {\n    if (autocomplete !== undefined && autocomplete !== null && autocomplete !== \"\")\n      return autocomplete\n\n    if (type === \"password\" || type === \"password-native\") return \"new-password\"\n\n    if (type === \"select\") return \"off\"\n\n    return undefined\n  })\n\n  const attributes = $derived<Record<string, any>>({\n    id,\n    \"data-input-id\": id,\n    \"data-testid\": dataTestid,\n    class: classList,\n    placeholder: visiblePlaceholder,\n    \"aria-label\": accessibleLabel,\n    inputmode,\n    name: name || id,\n    disabled: !!disabled,\n    autocomplete: computedAutocomplete,\n    min,\n    max,\n    step,\n    required,\n    minlength,\n    maxlength,\n    pattern,\n    spellcheck,\n    \"aria-describedby\": ariaDescribedby,\n  })\n\n  const getEffectiveValue = () => (boundLang ? boundValue : value)\n\n  const cloneComparableValue = (input: unknown): unknown => {\n    if (input instanceof Date) return new Date(input.getTime())\n\n    if (Array.isArray(input)) return input.map((entry) => cloneComparableValue(entry))\n\n    if (isRecord(input)) {\n      return Object.fromEntries(\n        Object.entries(input).map(([key, entry]) => [key, cloneComparableValue(entry)]),\n      )\n    }\n\n    return input\n  }\n\n  const valuesAreEqual = (a: unknown, b: unknown): boolean => {\n    if (Object.is(a, b)) return true\n\n    if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime()\n\n    if (Array.isArray(a) && Array.isArray(b)) {\n      if (a.length !== b.length) return false\n\n      return a.every((entry, index) => valuesAreEqual(entry, b[index]))\n    }\n\n    if (isRecord(a) && isRecord(b)) {\n      const aKeys = Object.keys(a)\n      const bKeys = Object.keys(b)\n\n      if (aKeys.length !== bKeys.length) return false\n\n      return aKeys.every((key) => valuesAreEqual(a[key], b[key]))\n    }\n\n    return false\n  }\n\n  let lastEmittedValue: unknown = $state(cloneComparableValue(getEffectiveValue()))\n  let hasPendingUserChange = $state(false)\n\n  const markUserChange = () => {\n    hasPendingUserChange = true\n  }\n\n  const emitChangeIfNeeded = (event: Event, overrideValue?: unknown) => {\n    const currentValue = overrideValue ?? getEffectiveValue()\n\n    if (!hasPendingUserChange) {\n      return\n    }\n\n    if (valuesAreEqual(currentValue, lastEmittedValue)) {\n      hasPendingUserChange = false\n\n      return\n    }\n\n    lastEmittedValue = cloneComparableValue(currentValue)\n    hasPendingUserChange = false\n    onChange(event)\n  }\n\n  const emitChildChange = (event: Event) => {\n    markUserChange()\n    const next = readChildChangeValue(event)\n\n    if (next.found) {\n      if (boundLang) {\n        boundValue = next.value\n        setBoundValue(next.value)\n      } else {\n        value = next.value\n      }\n\n      emitChangeIfNeeded(event, next.value)\n\n      return\n    }\n\n    emitChangeIfNeeded(event)\n  }\n\n  const readInputValue = (event: Event) =>\n    (event.target as HTMLInputElement | HTMLTextAreaElement | null)?.value ?? \"\"\n\n  const readChildChangeValue = (event: Event): { found: boolean; value: unknown } => {\n    const detail = (event as CustomEvent<{ value?: unknown; values?: unknown }>).detail\n\n    if (detail && typeof detail === \"object\") {\n      if (multiple && Array.isArray(detail.values)) return { found: true, value: detail.values }\n\n      if (\"value\" in detail) return { found: true, value: detail.value ?? \"\" }\n    }\n\n    const target = event.target as HTMLInputElement | HTMLTextAreaElement | null\n\n    if (target && \"value\" in target) return { found: true, value: target.value }\n\n    return { found: false, value: undefined }\n  }\n\n  const handleBoundInput = (event: Event) => {\n    const next = readInputValue(event)\n    markUserChange()\n    boundValue = next\n    setBoundValue(next)\n  }\n\n  const handleBoundInputAndEmit = (event: Event) => {\n    handleBoundInput(event)\n    emitChangeIfNeeded(event, boundLang ? boundValue : undefined)\n  }\n\n  const handleInputAndEmit = (event: Event) => {\n    const next = readInputValue(event)\n    markUserChange()\n    value = next\n    emitChangeIfNeeded(event, next)\n  }\n\n  const handleInputWithoutEmit = (event: Event) => {\n    const next = readInputValue(event)\n    markUserChange()\n    value = next\n  }\n\n  let checkboxInput = $state<HTMLInputElement | null>(null)\n\n  const handleCheckboxChange = (event: Event) => {\n    const checked = (event.currentTarget as HTMLInputElement).checked\n    lastEmittedValue = cloneComparableValue(!checked)\n    markUserChange()\n    value = checked\n    onValueChange(checked)\n    emitChangeIfNeeded(event, checked)\n  }\n\n  const activateCheckbox = (event: MouseEvent) => {\n    event.preventDefault()\n    event.stopPropagation()\n\n    if (disabled) return\n\n    checkboxInput?.click()\n  }\n\n  const passwordText = $derived(\n    (() => {\n      const current = boundLang ? boundValue : value\n\n      if (current === null || current === undefined) return \"\"\n\n      return typeof current === \"string\" ? current : String(current)\n    })(),\n  )\n\n  let passwordVisible = $state(false)\n\n  const passwordValidation = $derived({\n    length: passwordText.length >= 12,\n    number: /\\d/.test(passwordText),\n  })\n</script>\n\n<label\n  data-input-id={id}\n  data-surface-tone={surfaceToneAttribute}\n  {style}\n  class:textarea={type == \"textarea\"}\n  class:tagBasedInput={type == \"tagbased_input\"}\n  class:multiSelect={type === \"select\" && multiple}\n  class:checkbox={type == \"checkbox\"}\n  class:disabled\n  class:passwordField={type == \"password\" || type == \"password-native\"}\n  class:hasTooltipIcon={!!tooltipContent && type !== \"checkbox\"}\n>\n  {#if type !== \"checkbox\" && labelVisibility !== \"hidden\"}\n    <span\n      class=\"labelspan\"\n      class:hasValue={hasValue || type === \"noInput\"}\n      style={type == \"select\" ? \"opacity: 1 !important;\" : \"\"}>{label ?? placeholder}</span\n    >\n  {/if}\n  {#if tooltipContent && type !== \"checkbox\"}\n    <span\n      class=\"input-tooltip-icon\"\n      role=\"button\"\n      tabindex=\"-1\"\n      aria-label=\"Zusätzliche Informationen\"\n      use:tooltip={{ content: tooltipContent }}\n    >\n      <Icon path={mdiInformationSymbol} />\n    </span>\n  {/if}\n  {#if type == \"checkbox\"}\n    {#snippet checkbox()}\n      <input\n        bind:this={checkboxInput}\n        type=\"checkbox\"\n        style=\"display: none;\"\n        {...attributes}\n        onchange={handleCheckboxChange}\n        bind:checked={value}\n        bind:indeterminate\n      />\n      <button\n        type=\"button\"\n        class=\"checkit-span\"\n        role=\"checkbox\"\n        aria-checked={indeterminate ? \"mixed\" : Boolean(value)}\n        aria-label={accessibleLabel || \"Auswahl\"}\n        aria-disabled={disabled}\n        tabindex={disabled ? -1 : 0}\n        {disabled}\n        onclick={activateCheckbox}\n      ></button>\n    {/snippet}\n    {#if placeholder || tooltipContent}\n      <div class=\"toggle-row\" class:isDisabled={disabled}>\n        {@render checkbox()}\n        {#if placeholder}\n          <p class=\"checkbox-label\"><SafeHtml html={placeholder} /></p>\n        {/if}\n        {#if tooltipContent}\n          <span\n            class=\"input-tooltip-icon input-tooltip-icon--inline\"\n            role=\"button\"\n            tabindex=\"-1\"\n            aria-label=\"Zusätzliche Informationen\"\n            use:tooltip={{ content: tooltipContent }}\n          >\n            <Icon path={mdiInformationSymbol} />\n          </span>\n        {/if}\n      </div>\n    {:else}\n      {@render checkbox()}\n    {/if}\n  {:else if type == \"password-native\"}\n    <div class=\"password-field\">\n      {#if boundLang}\n        <input\n          {...attributes}\n          type={passwordVisible ? \"text\" : \"password\"}\n          class=\"sentry-mask\"\n          onblur={emitChangeIfNeeded}\n          bind:value={boundValue}\n          onchange={emitChangeIfNeeded}\n          oninput={handleBoundInputAndEmit}\n        />\n      {:else}\n        <input\n          {...attributes}\n          type={passwordVisible ? \"text\" : \"password\"}\n          class=\"sentry-mask\"\n          onblur={emitChangeIfNeeded}\n          bind:value\n          onchange={emitChangeIfNeeded}\n          oninput={handleInputAndEmit}\n        />\n      {/if}\n      <button\n        type=\"button\"\n        class=\"password-toggle\"\n        aria-label={passwordVisible ? \"Passwort ausblenden\" : \"Passwort anzeigen\"}\n        aria-pressed={passwordVisible}\n        onclick={() => (passwordVisible = !passwordVisible)}\n        onkeydown={(event) => {\n          if (event.key === \"Enter\" || event.key === \" \") {\n            event.preventDefault()\n            passwordVisible = !passwordVisible\n          }\n        }}\n      >\n        <Icon path={passwordVisible ? mdiEyeOffOutline : mdiEyeOutline} />\n      </button>\n    </div>\n  {:else if type == \"password\"}\n    <div class=\"password-field\">\n      {#if boundLang}\n        <input\n          {...attributes}\n          type={passwordVisible ? \"text\" : \"password\"}\n          class=\"sentry-mask\"\n          onblur={emitChangeIfNeeded}\n          bind:value={boundValue}\n          onchange={emitChangeIfNeeded}\n          oninput={handleBoundInputAndEmit}\n        />\n      {:else}\n        <input\n          {...attributes}\n          type={passwordVisible ? \"text\" : \"password\"}\n          class=\"sentry-mask\"\n          onblur={emitChangeIfNeeded}\n          bind:value\n          onchange={emitChangeIfNeeded}\n          oninput={handleInputAndEmit}\n        />\n      {/if}\n      <button\n        type=\"button\"\n        class=\"password-toggle\"\n        aria-label={passwordVisible ? \"Passwort ausblenden\" : \"Passwort anzeigen\"}\n        aria-pressed={passwordVisible}\n        onclick={() => (passwordVisible = !passwordVisible)}\n        onkeydown={(event) => {\n          if (event.key === \"Enter\" || event.key === \" \") {\n            event.preventDefault()\n            passwordVisible = !passwordVisible\n          }\n        }}\n      >\n        <Icon path={passwordVisible ? mdiEyeOffOutline : mdiEyeOutline} />\n      </button>\n    </div>\n    <ul class=\"password-requirements\">\n      <li class:met={passwordValidation.length}>\n        <Icon path={passwordValidation.length ? mdiCheck : mdiClose} size=\"0.95rem\" />\n        <span>Mindestens 12 Zeichen</span>\n      </li>\n      <li class:met={passwordValidation.number}>\n        <Icon path={passwordValidation.number ? mdiCheck : mdiClose} size=\"0.95rem\" />\n        <span>Mindestens eine Zahl</span>\n      </li>\n    </ul>\n  {:else if type == \"text\"}\n    {#if boundLang}\n      <input\n        onblur={emitChangeIfNeeded}\n        {...attributes}\n        bind:value={boundValue}\n        oninput={handleBoundInputAndEmit}\n        onchange={emitChangeIfNeeded}\n      />\n    {:else}\n      <input\n        onblur={emitChangeIfNeeded}\n        {...attributes}\n        bind:value\n        onchange={emitChangeIfNeeded}\n        oninput={handleInputAndEmit}\n      />\n    {/if}\n  {:else if type == \"textarea\"}\n    {#if boundLang}\n      <textarea\n        onblur={emitChangeIfNeeded}\n        {...attributes}\n        bind:value={boundValue}\n        oninput={handleBoundInputAndEmit}\n        onchange={emitChangeIfNeeded}\n      ></textarea>\n    {:else}\n      <textarea\n        onblur={emitChangeIfNeeded}\n        {...attributes}\n        bind:value\n        onchange={emitChangeIfNeeded}\n        oninput={handleInputAndEmit}\n      ></textarea>\n    {/if}\n  {:else if type == \"number\"}\n    <input\n      onblur={emitChangeIfNeeded}\n      type=\"number\"\n      {...attributes}\n      bind:value\n      onchange={emitChangeIfNeeded}\n      oninput={handleInputWithoutEmit}\n    />\n  {:else if type == \"date\" || type == \"datetime-local\" || type == \"datetime\" || type == \"dateRange\"}\n    <DateInput\n      value={boundLang ? boundValue : value}\n      {id}\n      placeholder={visiblePlaceholder}\n      ariaLabel={accessibleLabel}\n      {disabled}\n      name={name || id}\n      {classList}\n      {required}\n      {brightBackground}\n      {surfaceTone}\n      {timestamp}\n      {dateGranularity}\n      {minuteIncrement}\n      range={type == \"dateRange\"}\n      withTime={dateGranularity === \"month\"\n        ? false\n        : (withTime ?? (type !== \"date\" && type !== \"dateRange\"))}\n      onChange={emitChangeIfNeeded}\n      onValueChange={(nextValue) => {\n        markUserChange()\n\n        if (boundLang) {\n          boundValue = nextValue\n          setBoundValue(nextValue)\n        } else {\n          value = nextValue\n        }\n      }}\n    />\n  {:else if type == \"noInput\"}\n    <div class=\"no-input\">\n      {#if id.includes(\"pass\")}\n        ************\n      {:else if boundLang}\n        {Boolean(boundValue) ? boundValue : \"-\"}\n      {:else}\n        {Boolean(value) ? value : \"-\"}\n      {/if}\n    </div>\n  {:else if type == \"select\"}\n    <SelectInput\n      bind:value\n      {id}\n      dataInputId={id}\n      {classList}\n      placeholder={visiblePlaceholder}\n      ariaLabel={accessibleLabel}\n      {disabled}\n      {name}\n      {options}\n      {selectedOptionIndex}\n      {autocomplete}\n      {required}\n      {clearable}\n      {multiple}\n      {brightBackground}\n      {surfaceTone}\n      {groupBy}\n      {selectStyle}\n      {fitSelectedText}\n      {groupHeaderSelectable}\n      {dataTestid}\n      onValueChange={(nextValue) => {\n        markUserChange()\n\n        if (boundLang) {\n          boundValue = nextValue\n          setBoundValue(nextValue)\n        } else {\n          value = nextValue\n        }\n\n        onValueChange(nextValue)\n      }}\n      onChange={emitChildChange}\n    />\n  {:else if type == \"tagbased_input\"}\n    <TagBasedInput\n      value={boundLang ? boundValue : value}\n      {id}\n      placeholder={visiblePlaceholder}\n      ariaLabel={accessibleLabel}\n      {disabled}\n      name={name || id}\n      {options}\n      {tokenSyntax}\n      {brightBackground}\n      onChange={emitChangeIfNeeded}\n      onValueChange={(nextValue) => {\n        markUserChange()\n\n        if (boundLang) {\n          boundValue = nextValue\n          setBoundValue(nextValue)\n        } else {\n          value = nextValue\n        }\n      }}\n    />\n  {:else}\n    <input\n      onblur={emitChangeIfNeeded}\n      {...attributes}\n      bind:value\n      onchange={emitChangeIfNeeded}\n      oninput={handleInputAndEmit}\n      {type}\n    />\n  {/if}\n</label>\n\n<style lang=\"less\">\n  label.multiSelect > .labelspan {\n    padding-left: 14px;\n  }\n\n  label {\n    position: relative;\n  }\n\n  .helperText {\n    position: absolute;\n    right: 0px;\n    color: var(--bg-100);\n    top: 50%;\n    transform: translateY(-50%);\n  }\n\n  label.hasTooltipIcon {\n    & > input,\n    & > textarea,\n    & > .no-input,\n    & > .password-field input {\n      padding-right: 2.8rem !important;\n    }\n\n    :global(.svelte-select) {\n      padding-right: 2.8rem !important;\n    }\n  }\n\n  .password-field {\n    position: relative;\n    display: flex;\n    align-items: center;\n  }\n\n  input {\n    padding-right: 3.25rem !important;\n  }\n\n  .password-toggle {\n    position: absolute;\n    right: 0.6rem;\n    top: 50%;\n    transform: translateY(-50%);\n    background: transparent;\n    border: none;\n    padding: 0.2rem;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--text-invers-100);\n    cursor: pointer;\n  }\n\n  .password-toggle:hover,\n  .password-toggle:focus-visible {\n    color: var(--primary-100);\n    outline: none;\n  }\n\n  .password-requirements {\n    list-style: none;\n    padding: 0 18px 2px 18px;\n    margin: 0;\n    display: flex;\n    flex-direction: column;\n    gap: 0.35rem;\n  }\n\n  .password-requirements li {\n    display: flex;\n    align-items: center;\n    gap: 0.35rem;\n    font-size: 0.9rem;\n    color: var(--primary-100);\n  }\n\n  .password-requirements li.met {\n    color: var(--confirm-100);\n  }\n\n  :global(.form.light) {\n    .password-toggle {\n      color: var(--text-100);\n    }\n\n    .password-requirements li {\n      color: var(--text-100);\n    }\n  }\n  .toggle-row {\n    display: flex;\n    align-items: flex-start;\n    gap: 0.6rem;\n    width: 100%;\n\n    &.isDisabled {\n      opacity: 0.55;\n    }\n\n    .checkbox-label {\n      font-weight: 600;\n      color: var(--text-100);\n      font-size: 1rem !important;\n      flex: 1;\n      line-height: 1.35;\n      margin: 0;\n      padding: 0;\n    }\n\n    .checkbox-label :global(strong),\n    .checkbox-label :global(small) {\n      color: inherit !important;\n    }\n  }\n  label.checkbox {\n    height: auto !important;\n    max-height: none !important;\n    min-height: 1.2rem;\n    justify-content: flex-start;\n  }\n\n  label.checkbox .checkit-span {\n    flex: 0 0 auto;\n    margin-top: 0.08em;\n  }\n\n  label.checkbox .toggle-row {\n    min-height: 1.2rem;\n  }\n\n  .input-tooltip-icon {\n    position: absolute;\n    top: 0.5rem;\n    right: 0.8rem;\n    width: 1rem;\n    height: 1rem;\n    border-radius: 999px;\n    border: 1px solid var(--text-invers-100);\n    color: var(--text-invers-100);\n    font-size: 0.7rem;\n    font-weight: 700;\n    opacity: 1;\n    padding: 0;\n    text-transform: none;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: auto;\n    cursor: help;\n    z-index: 2;\n  }\n\n  :global(.form.light) .input-tooltip-icon {\n    border-color: var(--text-100);\n    color: var(--text-100);\n    background: color-mix(in srgb, var(--bg-150) 60%, transparent);\n  }\n\n  label[data-surface-tone=\"light\"] {\n    --kw-input-text: var(--text-invers-100);\n    --kw-input-border: color-mix(in srgb, var(--text-invers-100) 30%, transparent);\n    --kw-input-focus-border: var(--primary-100);\n    --kw-input-placeholder: color-mix(in srgb, var(--text-invers-100) 56%, transparent);\n    --kw-input-icon: var(--text-invers-100);\n    --kw-input-tooltip-bg: color-mix(in srgb, var(--neutral-white) 72%, transparent);\n    --kw-input-checkbox-border: color-mix(in srgb, var(--text-invers-100) 44%, transparent);\n    --kw-input-checkbox-check: var(--text-invers-100);\n    --kw-input-disabled-opacity: 0.62;\n  }\n\n  label[data-surface-tone=\"dark\"] {\n    --kw-input-text: var(--text-100);\n    --kw-input-border: color-mix(in srgb, var(--text-100) 46%, transparent);\n    --kw-input-focus-border: var(--primary-200);\n    --kw-input-placeholder: color-mix(in srgb, var(--text-100) 64%, transparent);\n    --kw-input-icon: var(--text-100);\n    --kw-input-tooltip-bg: color-mix(in srgb, var(--bg-150) 60%, transparent);\n    --kw-input-checkbox-border: color-mix(in srgb, var(--text-100) 72%, transparent);\n    --kw-input-checkbox-check: var(--text-100);\n    --kw-input-disabled-opacity: 0.72;\n  }\n\n  label[data-surface-tone=\"light\"],\n  label[data-surface-tone=\"dark\"] {\n    color: var(--kw-input-text) !important;\n\n    & > span,\n    & > span.hasValue,\n    p,\n    .checkbox-label,\n    .password-toggle,\n    .input-tooltip-icon {\n      color: var(--kw-input-text) !important;\n    }\n\n    .input-tooltip-icon {\n      border-color: var(--kw-input-icon) !important;\n      background: var(--kw-input-tooltip-bg) !important;\n    }\n\n    .toggle-row.isDisabled {\n      opacity: var(--kw-input-disabled-opacity) !important;\n    }\n\n    .checkit-span {\n      border-color: var(--kw-input-checkbox-border) !important;\n    }\n\n    [type=\"checkbox\"]:checked + .checkit-span:before {\n      color: var(--kw-input-checkbox-check) !important;\n    }\n\n    & > input,\n    & > select,\n    & > div.wrapper,\n    & > .no-input,\n    & > textarea,\n    & > .password-field > input {\n      color: var(--kw-input-text) !important;\n      border-bottom-color: var(--kw-input-border) !important;\n      background: transparent !important;\n\n      &::placeholder {\n        color: var(--kw-input-placeholder) !important;\n      }\n\n      &:focus {\n        border-bottom-color: var(--kw-input-focus-border) !important;\n      }\n    }\n  }\n\n  :global(form.light) label[data-surface-tone],\n  :global(.form.light) label[data-surface-tone],\n  :global(.content-block.dark) label[data-surface-tone],\n  label[data-surface-tone] {\n    color: var(--kw-input-text) !important;\n\n    & > span,\n    & > span.hasValue,\n    & > span.labelspan,\n    & > span.labelspan.hasValue,\n    p,\n    .checkbox-label,\n    .password-toggle,\n    .input-tooltip-icon {\n      color: var(--kw-input-text) !important;\n    }\n\n    .input-tooltip-icon {\n      border-color: var(--kw-input-icon) !important;\n      background: var(--kw-input-tooltip-bg) !important;\n    }\n\n    .toggle-row.isDisabled {\n      opacity: var(--kw-input-disabled-opacity) !important;\n    }\n\n    .checkit-span {\n      border-color: var(--kw-input-checkbox-border) !important;\n    }\n\n    [type=\"checkbox\"]:checked + .checkit-span:before {\n      color: var(--kw-input-checkbox-check) !important;\n    }\n\n    & > input,\n    & > select,\n    & > div.wrapper,\n    & > .no-input,\n    & > textarea,\n    & > .password-field > input {\n      color: var(--kw-input-text) !important;\n      border-bottom-color: var(--kw-input-border) !important;\n      background: transparent !important;\n\n      &::placeholder {\n        color: var(--kw-input-placeholder) !important;\n      }\n\n      &:focus {\n        border-bottom-color: var(--kw-input-focus-border) !important;\n      }\n    }\n  }\n\n  .input-tooltip-icon--inline {\n    position: static;\n    top: auto;\n    right: auto;\n    z-index: auto;\n  }\n\n  .checkit-span:disabled {\n    cursor: not-allowed;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import { mdiCheck, mdiWindowClose } from \"@mdi/js\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import Input from \"../../../forms/_modules/input/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import type {\n    ImportantActionReauthResult,\n    ImportantActionReauthenticator,\n  } from \"../../../../core/security/importantActionReauth\"\n\n  type Props = {\n    description: string\n    actionLabel?: string\n    cancelLabel?: string\n    flowId?: string\n    reauthenticate: ImportantActionReauthenticator\n    onResolved?: (result: ImportantActionReauthResult) => void\n    onremoveOverlay?: () => void\n    onshowOverlay?: () => void\n  }\n\n  let {\n    description,\n    actionLabel = \"Aktion durchführen\",\n    cancelLabel = \"Abbrechen\",\n    flowId = \"important-action-reauth\",\n    reauthenticate,\n    onResolved = () => {},\n    onremoveOverlay = () => {},\n    onshowOverlay = () => {},\n  }: Props = $props()\n\n  let password = $state(\"\")\n  let busy = $state(false)\n  let error = $state<string | null>(null)\n  let resolved = false\n\n  const resolveOnce = (result: ImportantActionReauthResult) => {\n    if (resolved) return\n\n    resolved = true\n    onResolved(result)\n  }\n\n  const close = () => {\n    password = \"\"\n    resolveOnce({ ok: false })\n    onremoveOverlay()\n  }\n\n  const submit = async () => {\n    if (busy) return\n\n    const currentPassword = password.trim()\n\n    if (!currentPassword) {\n      error = \"Bitte aktuelles Passwort eingeben.\"\n\n      return\n    }\n\n    busy = true\n    error = null\n    try {\n      const response = await reauthenticate(currentPassword)\n      password = \"\"\n      resolveOnce({ ok: true, response })\n      onremoveOverlay()\n    } catch (err) {\n      console.error(\"important_action_reauth_failed\", err)\n      error = \"Passwort konnte nicht bestätigt werden.\"\n    } finally {\n      busy = false\n    }\n  }\n\n  onMount(() => {\n    onshowOverlay()\n  })\n\n  onDestroy(() => {\n    password = \"\"\n    resolveOnce({ ok: false })\n  })\n</script>\n\n<div\n  class=\"important-reauth\"\n  data-flow-id={flowId}\n  data-theme=\"light\"\n  data-testid=\"importantActionReauth.overlay\"\n>\n  <p class=\"description\">{description}</p>\n  <form\n    class=\"reauth-form\"\n    onsubmit={(event) => {\n      event.preventDefault()\n      void submit()\n    }}\n  >\n    <Input\n      id=\"important-action-reauth-password\"\n      placeholder=\"Aktuelles Passwort\"\n      type=\"password-native\"\n      autocomplete=\"current-password\"\n      bind:value={password}\n      disabled={busy}\n      dataTestid=\"importantActionReauth.password\"\n    />\n    {#if error}\n      <p class=\"error\" role=\"alert\" data-testid=\"importantActionReauth.error\">{error}</p>\n    {/if}\n    <div class=\"actions\">\n      <CTA type=\"secondaryButton\" content={cancelLabel} onClick={close} disabled={busy}>\n        {#snippet iconSnippet()}\n          <Icon path={mdiWindowClose} />\n        {/snippet}\n      </CTA>\n      <CTA\n        type=\"primaryButton\"\n        content={busy ? \"Bitte warten...\" : actionLabel}\n        onClick={() => void submit()}\n        disabled={busy}\n      >\n        {#snippet iconSnippet()}\n          <Icon path={mdiCheck} />\n        {/snippet}\n      </CTA>\n    </div>\n  </form>\n</div>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .important-reauth {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n    color: var(--text-invers-100);\n  }\n\n  .description {\n    margin: 0;\n    line-height: 1.5;\n    color: var(--text-invers-100);\n  }\n\n  .reauth-form {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .error {\n    margin: 0;\n    color: var(--accent-red);\n    font-weight: 700;\n  }\n\n  .actions {\n    display: flex;\n    justify-content: space-between;\n  }\n</style>\n","import { openOverlay } from \"../../../../core/overlay/globalStores\"\nimport {\n  clearImportantActionReauth,\n  hasRecentImportantActionReauth,\n  isReauthRequiredError,\n  rememberImportantActionReauth,\n  runActionWithReauthRetry,\n  type ImportantActionReauthConfig,\n  type ImportantActionReauthResult,\n  type ImportantActionReauthenticator,\n} from \"../../../../core/security/importantActionReauth\"\nimport ImportantActionReauthOverlay from \"./index\"\n\nexport type {\n  ImportantActionReauthConfig,\n  ImportantActionReauthResponse,\n  ImportantActionReauthResult,\n  ImportantActionReauthenticator,\n} from \"../../../../core/security/importantActionReauth\"\n\ntype ImportantActionReauthRuntimeConfig = {\n  reauthenticate: ImportantActionReauthenticator\n}\n\nlet runtimeConfig: ImportantActionReauthRuntimeConfig | null = null\n\nexport const configureImportantActionReauth = (config: ImportantActionReauthRuntimeConfig) => {\n  runtimeConfig = config\n}\n\nconst requireRuntimeConfig = (): ImportantActionReauthRuntimeConfig => {\n  if (!runtimeConfig) {\n    throw new Error(\"important_action_reauth_not_configured\")\n  }\n\n  return runtimeConfig\n}\n\nexport const requestImportantActionReauth = (\n  config: ImportantActionReauthConfig,\n): Promise<boolean> =>\n  new Promise((resolve) => {\n    const runtime = requireRuntimeConfig()\n    openOverlay({\n      title: config.title,\n      content: ImportantActionReauthOverlay,\n      closeOnParentOpen: !config.preserveParent,\n      properties: {\n        flowId: \"important-action-reauth\",\n        description: config.description,\n        actionLabel: config.actionLabel ?? \"Aktion durchführen\",\n        cancelLabel: config.cancelLabel ?? \"Abbrechen\",\n        reauthenticate: runtime.reauthenticate,\n        onResolved: (result: ImportantActionReauthResult) => {\n          if (result.ok) {\n            rememberImportantActionReauth(result.response)\n          }\n\n          resolve(result.ok)\n        },\n      },\n    })\n  })\n\nexport const runImportantActionWithReauth = async <T>(\n  config: ImportantActionReauthConfig,\n  action: () => Promise<T>,\n): Promise<T | undefined> => {\n  const approved = await requestImportantActionReauth(config)\n\n  if (!approved) return undefined\n\n  return runActionWithReauthRetry(action, () => requestImportantActionReauth(config))\n}\n\nexport const runGuardedActionWithRecentReauth = async <T>(\n  config: ImportantActionReauthConfig,\n  action: () => Promise<T>,\n): Promise<T | undefined> => {\n  if (!hasRecentImportantActionReauth()) {\n    const approved = await requestImportantActionReauth(config)\n\n    if (!approved) return undefined\n  }\n\n  return runActionWithReauthRetry(action, () => requestImportantActionReauth(config))\n}\n\nexport { clearImportantActionReauth, hasRecentImportantActionReauth, isReauthRequiredError }\n","type NavigationPreferenceScope = \"page\" | \"app\"\nconst navigationPreferenceKeys = Object.freeze({\n  page: \"page-template-nav-collapsed\",\n  app: \"kw-app-navigation-collapsed\",\n})\n\nexport function readNavigationCollapsed(scope: NavigationPreferenceScope): boolean {\n  if (scope !== \"page\" && scope !== \"app\") return false\n\n  try {\n    if (typeof localStorage === \"undefined\") return false\n\n    return localStorage.getItem(navigationPreferenceKeys[scope]) === \"true\"\n  } catch {\n    return false\n  }\n}\n\nexport function writeNavigationCollapsed(scope: NavigationPreferenceScope, collapsed: boolean) {\n  if ((scope !== \"page\" && scope !== \"app\") || typeof collapsed !== \"boolean\") return\n\n  try {\n    if (typeof localStorage === \"undefined\") return\n\n    localStorage.setItem(navigationPreferenceKeys[scope], String(collapsed))\n  } catch {}\n}\n","<script lang=\"ts\">\n  import { mdiAccountQuestion, mdiHelpCircleOutline, mdiKeyboardBackspace } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { openHelpDialog } from \"../../../../core/help/helpDialogs\"\n  import type { HelpDialogConfig, HelpDialogContext } from \"../../../../core/help/types\"\n  import { spaLink } from \"../../../../core/routing/navigation\"\n\n  let {\n    title = \"\",\n    compact = false,\n    subtitle = \"\",\n    marginBottom = false,\n    aboveTitleSnippet,\n    belowTitleSnippet,\n    buttonSnippet,\n    link = \"\",\n    helpModalTextId = \"\",\n    helpModalContext = undefined,\n    helpModalFallback = null,\n    helpModalTooltip = \"\",\n  }: {\n    title?: string\n    compact?: boolean\n    subtitle?: string\n    marginBottom?: boolean\n    link?: string\n    aboveTitleSnippet?: () => any\n    belowTitleSnippet?: () => any\n    buttonSnippet?: () => any\n    helpModalTextId?: string\n    helpModalContext?: HelpDialogContext\n    helpModalFallback?: HelpDialogConfig | null\n    helpModalTooltip?: string\n  } = $props()\n\n  const handleHelpClick = () => {\n    if (!helpModalTextId) return\n\n    openHelpDialog(helpModalTextId, {\n      context: helpModalContext,\n      fallback: helpModalFallback ?? undefined,\n    })\n  }\n</script>\n\n<section id=\"pageHeadline\" class:compact>\n  <div class=\"wrapper\" class:marginBottom>\n    {#if aboveTitleSnippet}\n      {@render aboveTitleSnippet()}\n    {/if}\n    {#if link}\n      <a href={link} use:spaLink>\n        <Icon path={mdiKeyboardBackspace} />\n        Zurück\n      </a>\n    {/if}\n    <div class=\"title-wrapper\">\n      <div>\n        {#if title}<h1 class=\"page-title__heading\">\n            <span>{title}</span>\n            {#if helpModalTextId}\n              <button\n                class=\"page-title__help btn bright\"\n                type=\"button\"\n                aria-label=\"Hilfe öffnen\"\n                title={helpModalTooltip || \"Hilfe öffnen\"}\n                onclick={handleHelpClick}\n              >\n                <Icon\n                  path={compact ? mdiHelpCircleOutline : mdiAccountQuestion}\n                  size={compact ? \"1.125rem\" : \"1.6rem\"}\n                />\n              </button>\n            {/if}\n          </h1>{/if}\n        {#if subtitle}\n          <p class=\"subtitle\">{subtitle}</p>\n        {/if}\n      </div>\n      {#if buttonSnippet}\n        {@render buttonSnippet()}\n      {/if}\n    </div>\n    {#if belowTitleSnippet}\n      {@render belowTitleSnippet()}\n    {/if}\n  </div>\n</section>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n  #pageHeadline {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background-color: var(--bg-100);\n    width: 100%;\n    padding: 4.8rem 0px;\n\n    .wrapper {\n      gap: 12px;\n      max-width: var(--normal-max-width);\n      color: var(--text-100);\n      margin: 0px var(--horizontal-default-margin);\n      & > a {\n        color: var(--text-100);\n        text-transform: uppercase;\n        font-weight: 400;\n        font-size: 0.7rem;\n        display: flex;\n        align-items: center;\n        gap: 0.5rem;\n        transition: color 0.2s;\n        opacity: 1;\n        &:hover {\n          color: var(--primary-100) !important;\n        }\n      }\n      .title-wrapper {\n        display: flex;\n        justify-content: space-between;\n        align-items: flex-end;\n        width: 100%;\n        h1 {\n          padding: 0px;\n          margin-bottom: 12px;\n        }\n        .subtitle {\n          margin: 0;\n          color: var(--text-70);\n          font-size: 1.2em;\n        }\n        .page-title__heading {\n          display: flex;\n          gap: 0.6rem;\n          align-items: flex-end;\n        }\n        .page-title__help {\n          background: transparent;\n          border: none;\n          padding: 0;\n          margin: 0;\n          display: inline-flex;\n          align-items: flex-end;\n          color: var(--text-100);\n          transition: color 0.2s;\n          &:hover {\n            color: var(--primary-100) !important;\n          }\n        }\n        @media @max-mobile {\n          flex-direction: column;\n          align-items: flex-start;\n          gap: 12px;\n        }\n      }\n      width: 100%;\n      display: flex;\n      flex-direction: column;\n      align-items: flex-start;\n      justify-content: center;\n      &.marginBottom {\n        margin-bottom: 2.4rem;\n      }\n    }\n  }\n  :global #pageHeadline p {\n    color: var(--text-100);\n  }\n  #pageHeadline.compact {\n    background: transparent;\n    padding: 16px 0;\n    .wrapper {\n      max-width: none;\n      margin: 0;\n      color: #fff;\n    }\n    .wrapper .title-wrapper {\n      flex-direction: row;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 12px;\n    }\n    .wrapper .title-wrapper > div {\n      min-width: 0;\n    }\n    .wrapper .title-wrapper > div:first-child {\n      flex: 1;\n    }\n    .wrapper .title-wrapper h1 > span {\n      min-width: 0;\n      overflow-wrap: anywhere;\n    }\n    .wrapper .title-wrapper .page-title__heading {\n      align-items: center;\n      gap: 4px;\n    }\n    .wrapper .title-wrapper h1 {\n      color: #fff;\n      font-size: 22px;\n      line-height: 1.3;\n      margin: 0;\n      overflow-wrap: anywhere;\n    }\n    .wrapper .title-wrapper .subtitle {\n      margin-top: 2px;\n      color: rgb(255 255 255 / 64%);\n      font-size: 14px;\n    }\n    .wrapper .title-wrapper .page-title__help {\n      flex-shrink: 0;\n      align-items: center;\n      justify-content: center;\n      width: 36px;\n      height: 36px;\n      color: rgb(255 255 255 / 85%);\n      &:hover {\n        color: #fff !important;\n        background: rgb(255 255 255 / 10%);\n      }\n      &:focus-visible {\n        outline: 2px solid var(--primary-200, #3ddc84);\n        outline-offset: -2px;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { tick, type Snippet } from \"svelte\"\n  import { mdiInformationOutline } from \"@mdi/js\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import type { PageTab } from \"./types\"\n\n  const instanceId = $props.id()\n  let {\n    items,\n    activeId,\n    onSelect,\n    mode = \"navigation\",\n    label = \"Seitennavigation\",\n    idPrefix = instanceId,\n    panelId,\n    testId,\n    tools,\n  }: {\n    items: PageTab[]\n    activeId: string\n    onSelect: (id: string) => void\n    mode?: \"navigation\" | \"tabs\"\n    label?: string\n    idPrefix?: string\n    panelId?: string\n    testId?: string\n    tools?: Snippet\n  } = $props()\n  let list: HTMLDivElement | undefined = $state()\n\n  const reveal = (id: string) => {\n    if (!list) return\n\n    const button = Array.from(list.querySelectorAll<HTMLButtonElement>(\"[data-page-tab]\")).find(\n      (node) => node.dataset.pageTab === id,\n    )\n\n    if (!button) return\n\n    const tabRect = button.getBoundingClientRect()\n    const listRect = list.getBoundingClientRect()\n\n    if (tabRect.left < listRect.left) list.scrollLeft += tabRect.left - listRect.left\n    else if (tabRect.right > listRect.right) list.scrollLeft += tabRect.right - listRect.right\n  }\n\n  const observeWidth = (node: HTMLDivElement) => {\n    if (typeof ResizeObserver !== \"function\") return\n\n    const observer = new ResizeObserver(() => reveal(activeId))\n    observer.observe(node)\n\n    return { destroy: () => observer.disconnect() }\n  }\n\n  // effect-ok: dom — Reveal the selected tab after rendering; no application state is mirrored.\n  $effect(() => {\n    const id = activeId\n    items.length\n    let current = true\n    tick().then(() => {\n      if (current) reveal(id)\n    })\n\n    return () => {\n      current = false\n    }\n  })\n\n  const moveFocus = (event: KeyboardEvent, index: number) => {\n    let target: number\n\n    if (event.key === \"ArrowRight\") target = (index + 1) % items.length\n    else if (event.key === \"ArrowLeft\") target = (index - 1 + items.length) % items.length\n    else if (event.key === \"Home\") target = 0\n    else if (event.key === \"End\") target = items.length - 1\n    else return\n\n    event.preventDefault()\n    list?.querySelectorAll<HTMLButtonElement>(\"[data-page-tab]\")[target]?.focus()\n  }\n</script>\n\n<div class=\"page-tabs\" data-testid={testId || undefined}>\n  <div\n    class=\"page-tabs__list\"\n    role={mode === \"tabs\" ? \"tablist\" : \"navigation\"}\n    aria-label={label}\n    bind:this={list}\n    use:observeWidth\n  >\n    {#each items as item, index (item.id)}\n      <button\n        type=\"button\"\n        role={mode === \"tabs\" ? \"tab\" : undefined}\n        id={`${idPrefix}-tab-${item.id}`}\n        data-page-tab={item.id}\n        data-testid={item.testId}\n        class:active={item.id === activeId}\n        aria-current={mode === \"navigation\" && item.id === activeId ? \"page\" : undefined}\n        aria-selected={mode === \"tabs\" ? item.id === activeId : undefined}\n        aria-controls={mode === \"tabs\" ? panelId : undefined}\n        tabindex={mode === \"tabs\" && item.id !== activeId ? -1 : 0}\n        onclick={() => onSelect(item.id)}\n        onkeydown={(event) => moveFocus(event, index)}\n        onfocus={() => reveal(item.id)}\n      >\n        {#if item.icon}\n          <span aria-hidden=\"true\"><Icon path={item.icon} size=\"1rem\" /></span>\n        {:else if item.id === activeId && item.tooltip}\n          <span use:tooltip={{ content: item.tooltip }} aria-hidden=\"true\">\n            <Icon path={mdiInformationOutline} size=\"1rem\" />\n          </span>\n        {/if}\n        {item.label}\n      </button>\n    {/each}\n  </div>\n  {#if tools}<div class=\"page-tabs__tools\">{@render tools()}</div>{/if}\n</div>\n\n<style>\n  .page-tabs {\n    display: flex;\n    align-items: stretch;\n    min-width: 0;\n    min-height: 40px;\n    width: 100%;\n    box-sizing: border-box;\n    padding-inline: var(--kw-tab-rail-inset-start, var(--kw-app-content-inset, 24px))\n      var(--kw-app-content-inset, 24px);\n    background: var(\n      --kw-app-rail-background,\n      color-mix(in srgb, var(--bg-100, #0d0c0c) 93%, white)\n    );\n    color-scheme: dark;\n  }\n  .page-tabs__list {\n    display: flex;\n    flex: 1;\n    min-width: 0;\n    gap: 2px;\n    padding-top: 6px;\n    overflow-x: auto;\n    overscroll-behavior-x: contain;\n    scrollbar-width: none;\n  }\n  .page-tabs__list::-webkit-scrollbar {\n    display: none;\n  }\n  button {\n    display: inline-flex;\n    align-items: center;\n    flex: 0 0 auto;\n    gap: 6px;\n    min-height: 34px;\n    padding: 8px 16px;\n    border: 0;\n    background: transparent;\n    color: rgb(255 255 255 / 72%);\n    font: inherit;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.3;\n    white-space: nowrap;\n    cursor: pointer;\n    transition:\n      background-color 120ms ease,\n      color 120ms ease;\n  }\n  button > span {\n    display: flex;\n  }\n  button:hover:not(.active) {\n    color: #fff;\n    background: rgb(255 255 255 / 8%);\n  }\n  button.active {\n    color: var(--bg-100, #0d0c0c);\n    background: #fff;\n    font-weight: 700;\n    clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);\n  }\n  button:focus-visible {\n    outline: 2px solid var(--primary-200);\n    outline-offset: -2px;\n  }\n  button.active:focus-visible {\n    outline-color: var(--primary-100);\n  }\n  .page-tabs__tools {\n    display: flex;\n    flex-shrink: 0;\n    align-items: center;\n    gap: 4px;\n    padding-left: 8px;\n    color: #fff;\n  }\n  @media (max-width: 767px) {\n    .page-tabs {\n      min-height: 44px;\n    }\n    .page-tabs__list {\n      padding-top: 4px;\n    }\n    button {\n      min-height: 40px;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { spaNavigate, location as defaultLocation } from \"../../../../core/routing/navigation\"\n  import type { LocationState } from \"../../../../core/routing/navigation\"\n  import type { Writable } from \"svelte/store\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiInformation } from \"@mdi/js\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import type { Snippet } from \"svelte\"\n  import { PageTabs } from \"../../../_shared/_modules/page-tabs/index\"\n  interface TabConfig {\n    title: string\n    path: string\n    tooltip?: string\n    testId?: string\n  }\n  interface Props {\n    compact?: boolean\n    config?: TabConfig[]\n    locationStore?: Writable<LocationState>\n    activeIndex?: number | null\n    testId?: string\n    tools?: Snippet\n  }\n  const normalizePath = (value: string) => value.split(\"?\")[0] || value\n  const parseTabParam = (search: string, max: number) => {\n    if (!max) return null\n\n    const normalizedSearch = typeof search === \"string\" ? search.replace(/^\\?/, \"\") : \"\"\n    const params = new URLSearchParams(normalizedSearch)\n    const rawTab = params.get(\"tab\")\n\n    if (rawTab === null) return null\n\n    const candidate = Number(rawTab)\n\n    if (Number.isInteger(candidate) && candidate >= 0 && candidate < max) {\n      return candidate\n    }\n\n    return null\n  }\n  function findActiveTabIndex(): number {\n    const currentPath = normalizePath($locationStore.path)\n    let bestIndex = 0\n    let bestMatchLength = -1\n\n    for (let i = 0; i < config.length; i++) {\n      const targetPath = normalizePath(config[i].path)\n\n      if (!targetPath) continue\n\n      const exactMatch = currentPath === targetPath\n      const nestedMatch = currentPath.startsWith(\n        targetPath.endsWith(\"/\") ? targetPath : `${targetPath}/`,\n      )\n\n      if (exactMatch || nestedMatch) {\n        const matchLength = targetPath.length\n\n        if (matchLength > bestMatchLength) {\n          bestMatchLength = matchLength\n          bestIndex = i\n        }\n      }\n    }\n\n    return bestIndex\n  }\n\n  const log = (...args: unknown[]) => {\n    if (typeof console !== \"undefined\" && console.debug) {\n      console.debug(\"[PageNavigation]\", ...args)\n    }\n  }\n\n  function onTabClick(index: number) {\n    const tab = config[index]\n\n    if (tab) {\n      pendingActiveTab = {\n        fromPath: $locationStore.path,\n        index,\n        path: tab.path,\n      }\n      spaNavigate(tab.path)\n      log(\"tab click\", { index, path: tab.path })\n    }\n  }\n\n  let {\n    compact = false,\n    config = [],\n    locationStore = defaultLocation,\n    activeIndex = null,\n    testId = \"\",\n    tools,\n  }: Props = $props()\n  let pendingActiveTab = $state<{ fromPath: string; index: number; path: string } | null>(null)\n\n  const computeActiveTab = () => {\n    if (typeof activeIndex === \"number\" && activeIndex >= 0 && activeIndex < config.length) {\n      return activeIndex\n    }\n\n    const tabFromSearch = parseTabParam($locationStore.search ?? \"\", config.length)\n\n    if (tabFromSearch !== null) return tabFromSearch\n\n    return findActiveTabIndex()\n  }\n\n  const activeTab = $derived.by(() => {\n    const computed = computeActiveTab()\n\n    if (typeof activeIndex === \"number\" && activeIndex >= 0 && activeIndex < config.length)\n      return computed\n\n    if (!pendingActiveTab) return computed\n\n    const pendingPath = normalizePath(pendingActiveTab.path)\n    const currentPath = normalizePath($locationStore.path)\n\n    if (\n      currentPath === normalizePath(pendingActiveTab.fromPath) &&\n      config[pendingActiveTab.index]?.path === pendingActiveTab.path\n    ) {\n      return pendingActiveTab.index\n    }\n\n    if (currentPath === pendingPath) return computed\n\n    return computed\n  })\n</script>\n\n{#if compact}\n  <PageTabs\n    items={config.map((item, index) => ({\n      id: `${index}`,\n      label: item.title,\n      tooltip: item.tooltip,\n      testId: item.testId ?? (testId ? `${testId}.tab.${index}` : undefined),\n    }))}\n    activeId={`${activeTab}`}\n    onSelect={(id) => onTabClick(Number(id))}\n    {testId}\n    {tools}\n  />\n{:else}\n  <div class=\"sticky-bar\" data-testid={testId || undefined}>\n    <ul class=\"bar\">\n      {#each config as item, i (item.path || i)}\n        <li>\n          <button\n            type=\"button\"\n            aria-label={item.title}\n            aria-current={activeTab === i ? \"page\" : undefined}\n            class:active={activeTab === i}\n            onclick={() => onTabClick(i)}\n            data-testid={item.testId ?? (testId ? `${testId}.tab.${i}` : undefined)}\n          >\n            <p>\n              {#if activeTab == i && item.tooltip}\n                <span\n                  style=\"padding-right: 0.5rem; margin-bottom: -2px;\"\n                  use:tooltip={{ content: item.tooltip }}\n                >\n                  <Icon path={mdiInformation} />\n                </span>\n              {/if}\n              {item.title}\n            </p>\n\n            <svg\n              class:visible={activeTab === i}\n              xmlns=\"http://www.w3.org/2000/svg\"\n              width=\"49\"\n              height=\"48\"\n              viewBox=\"0 0 49 48\"\n              fill=\"none\"\n            >\n              <path\n                d=\"M0.000213623 48L0.000217819 -4.2554e-06L48.6763 48L0.000213623 48Z\"\n                fill=\"white\"\n              ></path>\n            </svg>\n          </button>\n        </li>\n      {/each}\n    </ul>\n    {#if tools}<div class=\"navigation-tools\">{@render tools()}</div>{/if}\n  </div>\n{/if}\n\n<style lang=\"less\">\n  @import (reference) \"../../../../theme/tokens.less\";\n\n  .sticky-bar {\n    top: 107px;\n    width: 100%;\n    height: 3.6rem;\n    position: sticky;\n    z-index: 9997;\n    display: flex;\n    justify-content: center;\n    background-color: var(--bg-100);\n    border-bottom: 1px solid var(--bg-100);\n\n    @media @max-mobile {\n      top: 76px;\n    }\n\n    .bar {\n      max-width: var(--normal-max-width);\n      padding-top: 0.6rem;\n      margin: 0px var(--horizontal-default-margin);\n      width: 100%;\n      height: 100%;\n      box-sizing: border-box;\n      display: flex;\n      justify-content: flex-start;\n      gap: 10px;\n      overflow-x: auto;\n      -ms-overflow-style: none; /* Internet Explorer 10+ */\n      scrollbar-width: none; /* Firefox */\n\n      &::-webkit-scrollbar {\n        display: none; /* Safari and Chrome */\n      }\n\n      @media @max-mobile {\n        padding-top: 0.25rem;\n      }\n\n      button {\n        background: transparent;\n        display: flex;\n        color: color-mix(in srgb, var(--text-300) 45%, var(--text-100) 55%);\n        height: 100%;\n        p {\n          height: 100%;\n          flex-grow: 1;\n          display: flex;\n          align-items: center;\n          font-weight: 700;\n          padding: 0.6rem 1.2rem;\n          line-height: 0.7rem;\n          white-space: nowrap;\n          color: inherit;\n        }\n        svg {\n          width: 0px;\n          height: 100%;\n          overflow: hidden;\n          margin-bottom: -3px;\n          &.visible {\n            width: unset;\n          }\n        }\n        &.active {\n          p {\n            color: var(--bg-200);\n            background-color: white;\n          }\n        }\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n\n  let {\n    edges = true,\n    brightColor = true,\n    bigVersion = false,\n    icon,\n    iconSnippet,\n    children,\n  }: {\n    edges?: boolean\n    brightColor?: boolean\n    bigVersion?: boolean\n    icon?: string\n    iconSnippet?: Snippet\n    children?: Snippet\n  } = $props()\n</script>\n\n<div id=\"crinkle\" class:bigVersion>\n  <div class=\"crinkle-background\" class:brightColor>\n    {#if iconSnippet}\n      {@render iconSnippet()}\n    {:else if icon}\n      <img src=\"/media/{icon}.svg\" alt=\"crinkle\" />\n    {:else if edges && brightColor}\n      <svg\n        viewBox=\"176.213 124.901 61.875 61.016\"\n        width=\"63.875\"\n        height=\"61.016\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <!-- Definition des Clipping-Pfads -->\n        <defs>\n          <clipPath id=\"clip-path\">\n            <!-- Clipping-Pfad definiert die Fläche links von der schrägen Linie -->\n            <path d=\"M 178.213 124.901 L 240.088 185.917 L 178.213 185.917 Z\"></path>\n          </clipPath>\n        </defs>\n\n        <!-- Fülle den Bereich links von der Linie mit Weiß -->\n        <rect\n          x=\"178.213\"\n          y=\"124.901\"\n          width=\"61.875\"\n          height=\"61.016\"\n          fill=\"#0D0C0C\"\n          clip-path=\"url(#clip-path)\"\n        ></rect>\n\n        <!-- Zusätzliches Rechteck für den nahtlosen Übergang -->\n        <rect x=\"176.213\" y=\"124.901\" width=\"2\" height=\"61.016\" fill=\"#0D0C0C\"></rect>\n\n        <!-- Zeichne den ursprünglichen Pfad -->\n        <path\n          d=\"M 240.088 185.917 L 178.213 124.901 L 240.088 185.917 Z\"\n          fill=\"none\"\n          stroke=\"white\"\n          stroke-width=\"2\"\n        ></path>\n      </svg>\n    {:else if edges && !brightColor}\n      <svg\n        viewBox=\"176.213 124.901 61.875 61.016\"\n        width=\"63.875\"\n        height=\"61.016\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <!-- Definition des Clipping-Pfads -->\n        <defs>\n          <clipPath id=\"clip-path\">\n            <!-- Clipping-Pfad definiert die Fläche links von der schrägen Linie -->\n            <path d=\"M 178.213 124.901 L 240.088 185.917 L 178.213 185.917 Z\"></path>\n          </clipPath>\n        </defs>\n\n        <!-- Fülle den Bereich links von der Linie mit Weiß -->\n        <rect\n          x=\"178.213\"\n          y=\"124.901\"\n          width=\"61.875\"\n          height=\"61.016\"\n          fill=\"white\"\n          clip-path=\"url(#clip-path)\"\n        ></rect>\n\n        <!-- Zusätzliches Rechteck für den nahtlosen Übergang -->\n        <rect x=\"176.213\" y=\"124.901\" width=\"2\" height=\"61.016\" fill=\"white\"></rect>\n\n        <!-- Zeichne den ursprünglichen Pfad -->\n        <path\n          d=\"M 240.088 185.917 L 178.213 124.901 L 240.088 185.917 Z\"\n          fill=\"none\"\n          stroke=\"#0D0C0C\"\n          stroke-width=\"2\"\n        ></path>\n      </svg>\n    {:else if !edges && brightColor}\n      <svg\n        width=\"72\"\n        height=\"71\"\n        viewBox=\"0 0 72 71\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <path id=\"Vector 3\" d=\"M72 0V71L0 0H72Z\" fill=\"white\"></path>\n      </svg>\n    {:else if !edges && !brightColor}{/if}\n  </div>\n  <div class=\"action-container\">\n    {#if children}\n      {@render children()}\n    {/if}\n  </div>\n</div>\n\n<style lang=\"less\">\n  #crinkle {\n    height: calc(3rem - 2px);\n    width: 3rem;\n    margin-left: -3px;\n    &.bigVersion {\n      height: 72px;\n      width: 72px;\n    }\n    .crinkle-background {\n      position: relative;\n      height: 100%;\n      width: 100%;\n      overflow: visible;\n      img {\n        object-fit: cover;\n        height: 100%;\n        width: 100%;\n      }\n      &.brightColor {\n        filter: brightness(1.05);\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import TopRightCrinkle from \"../../../primitives/_modules/top-right-crinkle/index\"\n\n  const __components = { TopRightCrinkle }\n  void __components\n\n  interface Props {\n    brightBackground?: boolean\n    activated?: boolean\n    bigVersion?: boolean\n    maxWidthAndCentered?: boolean\n    hideCrinkle?: boolean\n    class?: string\n    style?: string\n    contentSnippet?: () => any\n    children?: () => any\n    [key: string]: any\n  }\n  let {\n    brightBackground = false,\n    activated = true,\n    icon = null,\n    bigVersion = false,\n    maxWidthAndCentered = false,\n    smallWidthAndCentered = false,\n    class: className = \"\",\n    style: styleAttr,\n    hideCrinkle = false,\n    contentSnippet = null,\n    children = null,\n  }: Props = $props()\n  const backgroundClass = $derived(\n    brightBackground ? \"kw-crinkled-section--bright\" : \"kw-crinkled-section--dark\",\n  )\n  let sectionClass = $derived(\n    [\n      \"kw-crinkled-section\",\n      backgroundClass,\n      maxWidthAndCentered || smallWidthAndCentered ? \"kw-crinkled-section--wrap\" : \"\",\n      className,\n    ]\n      .filter(Boolean)\n      .join(\" \"),\n  )\n  let slotContent = $derived(contentSnippet ?? children)\n</script>\n\n{#if activated}\n  <section class={sectionClass} style={styleAttr} class:hideCrinkle>\n    {#if !hideCrinkle}\n      <div class=\"kw-crinkled-section__upper\">\n        <div class=\"kw-crinkled-section__bar {backgroundClass}__bar\"></div>\n        <div\n          class=\"kw-crinkled-section__crinkle\"\n          class:kw-crinkled-section__crinkle--large={bigVersion}\n        >\n          <TopRightCrinkle edges={true} brightColor={!brightBackground} {icon} {bigVersion} />\n        </div>\n      </div>\n    {/if}\n    {#if maxWidthAndCentered || smallWidthAndCentered}\n      <div class=\"kw-crinkled-section__wrapper {backgroundClass}__wrapper\">\n        <div class=\"kw-crinkled-section__wrapper-content\" class:smallWidthAndCentered>\n          {@render slotContent?.()}\n        </div>\n      </div>\n    {:else}\n      {@render slotContent?.()}\n    {/if}\n  </section>\n{:else}\n  {@render slotContent?.()}\n{/if}\n\n<style lang=\"less\">\n  .kw-crinkled-section {\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    position: relative;\n    margin-top: -3rem;\n    z-index: 2000;\n    &.hideCrinkle {\n      margin-top: 0;\n    }\n\n    &__upper {\n      width: 100%;\n      display: flex;\n      align-items: flex-end;\n      justify-content: flex-start;\n      height: 3rem;\n      position: relative;\n      overflow: hidden;\n    }\n\n    &__bar {\n      flex: 1;\n      height: 100%;\n      background: var(--neutral-white);\n      border-top: 2px solid var(--bg-100);\n    }\n\n    &__crinkle {\n      width: 3rem;\n      height: calc(3rem - 2px);\n      margin-left: -3px;\n\n      &--large {\n        width: 4.5rem;\n        height: 4.5rem;\n      }\n    }\n\n    &__crinkle-svg {\n      width: 100%;\n      height: 100%;\n      display: block;\n    }\n\n    &__wrapper {\n      width: 100%;\n      padding-top: 3rem;\n      padding-bottom: 6rem;\n      display: flex;\n      justify-content: center;\n    }\n    &__wrapper-content {\n      width: calc(100% - 2 * var(--horizontal-default-margin));\n      max-width: var(--normal-max-width);\n      margin-left: var(--horizontal-default-margin);\n      margin-right: var(--horizontal-default-margin);\n      display: flex;\n      flex-direction: column;\n      &.smallWidthAndCentered {\n        max-width: var(--small-max-width);\n      }\n      gap: var(--vertical-default-margin);\n    }\n\n    &--bright {\n      &__bar {\n        background: var(--neutral-white);\n        border-top-color: var(--bg-100);\n      }\n\n      &__wrapper {\n        background: var(--neutral-white);\n      }\n    }\n\n    &--dark {\n      &__bar {\n        background: var(--bg-100);\n\n        border-top-color: var(--neutral-white);\n      }\n      &__wrapper {\n        background: var(--bg-100);\n      }\n    }\n  }\n</style>\n","import { writable, get } from \"svelte/store\"\n\n/**\n * Global fullscreen flag shared across Werk apps.\n * Consumers can subscribe to hide chrome (header/nav) while allowing\n * the toggle component to drive the state via the URL.\n */\nexport const fullscreenMode = writable(false)\n\nlet defaultBodyOverflow: string | null = null\n\nconst applyBodyState = (active: boolean) => {\n  if (typeof document === \"undefined\") return\n\n  if (defaultBodyOverflow === null) {\n    defaultBodyOverflow = document.body.style.overflow || \"\"\n  }\n\n  document.body.classList.toggle(\"app-fullscreen\", active)\n  document.body.style.overflow = active ? \"hidden\" : defaultBodyOverflow\n}\n\n// keep body in sync once the store is imported in the browser\nif (typeof document !== \"undefined\") {\n  fullscreenMode.subscribe(applyBodyState)\n}\n\nexport const setFullscreen = (active: boolean) => fullscreenMode.set(active)\nexport const toggleFullscreen = () => fullscreenMode.update((value) => !value)\nexport const resetFullscreen = () => fullscreenMode.set(false)\n\nexport const parseFullscreenParam = (search: string | null | undefined): boolean => {\n  if (!search) return false\n\n  const params = new URLSearchParams(search.startsWith(\"?\") ? search.slice(1) : search)\n\n  return params.get(\"fullscreen\") === \"true\"\n}\n\nexport const setFullscreenParam = (active: boolean) => {\n  if (typeof window === \"undefined\") return\n\n  const params = new URLSearchParams(window.location.search)\n\n  if (active) params.set(\"fullscreen\", \"true\")\n  else params.delete(\"fullscreen\")\n\n  const nextSearch = params.toString()\n  const nextUrl = `${window.location.pathname}${nextSearch ? `?${nextSearch}` : \"\"}${window.location.hash ?? \"\"}`\n  window.history.replaceState(window.history.state, document.title, nextUrl)\n}\n\nexport const ensureFullscreenParamSync = () => {\n  if (typeof window === \"undefined\") return\n\n  const target = parseFullscreenParam(window.location.search)\n\n  if (target !== get(fullscreenMode)) {\n    fullscreenMode.set(target)\n  }\n}\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import { mdiFullscreen, mdiFullscreenExit } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import {\n    fullscreenMode,\n    parseFullscreenParam,\n    setFullscreenParam,\n  } from \"../../../../core/runtime/fullscreen\"\n  import { location as defaultLocation } from \"../../../../core/routing/navigation\"\n  import { get, type Writable } from \"svelte/store\"\n  import type { LocationState } from \"../../../../core/routing/navigation\"\n\n  let {\n    enterLabel = \"Vollbild\",\n    exitLabel = \"Vollbild verlassen\",\n    locationStore = defaultLocation,\n  }: {\n    enterLabel?: string\n    exitLabel?: string\n    locationStore?: Writable<LocationState>\n  } = $props()\n\n  const setFullscreen = (active: boolean) => {\n    const current = $fullscreenMode\n\n    if (active === current) return\n\n    fullscreenMode.set(active)\n    setFullscreenParam(active)\n  }\n\n  const toggleFullscreen = () => setFullscreen(!$fullscreenMode)\n\n  const syncFullscreenFromSearch = (search: string | null | undefined) => {\n    const searchValue = search ?? \"\"\n    const normalizedSearch = typeof searchValue === \"string\" ? searchValue.replace(/^\\?/, \"\") : \"\"\n    const params = new URLSearchParams(normalizedSearch)\n    const shouldBeFullscreen = params.get(\"fullscreen\") === \"true\"\n\n    if (shouldBeFullscreen !== get(fullscreenMode)) {\n      fullscreenMode.set(shouldBeFullscreen)\n    }\n  }\n\n  onMount(() => {\n    const unsubscribe = locationStore.subscribe((value) => {\n      syncFullscreenFromSearch(value.search)\n    })\n\n    return unsubscribe\n  })\n\n  const isFullscreen = $derived($fullscreenMode)\n\n  onDestroy(() => {\n    fullscreenMode.set(false)\n    setFullscreenParam(false)\n  })\n</script>\n\n<button\n  class=\"fullscreen-toggle\"\n  class:fullscreen-active={isFullscreen}\n  type=\"button\"\n  aria-pressed={isFullscreen}\n  onclick={toggleFullscreen}\n>\n  <Icon path={isFullscreen ? mdiFullscreenExit : mdiFullscreen} size=\"1.1rem\" />\n  <span>{isFullscreen ? exitLabel : enterLabel}</span>\n</button>\n\n<style lang=\"less\">\n  .fullscreen-toggle {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.45rem;\n    padding: 0.55rem 0.95rem;\n    border-radius: 0.8rem;\n    border: 1px solid color-mix(in srgb, var(--bg-400) 75%, transparent);\n    background: color-mix(in srgb, var(--bg-400) 40%, transparent);\n    color: var(--text-100);\n    font: inherit;\n    cursor: pointer;\n    transition:\n      background 160ms ease,\n      border-color 160ms ease;\n\n    &:hover,\n    &:focus-visible {\n      outline: none;\n      background: color-mix(in srgb, var(--bg-400) 60%, transparent);\n      border-color: color-mix(in srgb, var(--bg-400) 85%, transparent);\n    }\n\n    &.fullscreen-active {\n      background: color-mix(in srgb, var(--accent-color, #f7c35f) 20%, var(--bg-400) 60%);\n      border-color: color-mix(in srgb, var(--accent-color, #f7c35f) 55%, transparent);\n    }\n\n    span {\n      font-size: 0.95rem;\n      white-space: nowrap;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { mdiClose } from \"@mdi/js\"\n  import type { AppContextPanelPresentation } from \"../../../../core/navigation/appFrame\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n\n  const generatedPanelId = $props.id()\n  let {\n    panel,\n    children,\n    expanded = true,\n    panelId = generatedPanelId,\n    onClose,\n  }: {\n    panel: AppContextPanelPresentation | null\n    children: Snippet\n    expanded?: boolean\n    panelId?: string\n    onClose?: () => void\n  } = $props()\n</script>\n\n<div class=\"context-layout\" class:has-panel={panel != null} class:expanded>\n  <div class=\"context-layout__columns\">\n    <div class=\"context-layout__primary\">{@render children()}</div>\n    {#if panel}\n      <div class=\"context-layout__panel-shell\" inert={!expanded} aria-hidden={!expanded}>\n        <div class=\"context-layout__panel-clip\">\n          <aside id={panelId} aria-label={panel.title} tabindex=\"-1\" class=\"context-layout__panel\">\n            <header>\n              <div class=\"context-layout__heading\">\n                <h2>{panel.title}</h2>\n                {#if panel.subtitle}<p>{panel.subtitle}</p>{/if}\n              </div>\n              <button\n                type=\"button\"\n                aria-label={`${panel.title} schließen`}\n                title={`${panel.title} schließen`}\n                aria-controls={panelId}\n                aria-expanded={expanded}\n                onclick={onClose}><Icon path={mdiClose} /></button\n              >\n            </header>\n            <!-- svelte-ignore a11y_no_noninteractive_tabindex (This scroll region must be keyboard reachable.) -->\n            <div\n              class=\"context-layout__body\"\n              role=\"region\"\n              aria-label={`Inhalt: ${panel.title}`}\n              tabindex=\"0\"\n            >\n              {@render panel.content()}\n            </div>\n            {#if panel.footer}\n              <footer class=\"context-layout__footer\">{@render panel.footer()}</footer>\n            {/if}\n          </aside>\n        </div>\n      </div>\n    {/if}\n  </div>\n</div>\n\n<style>\n  .context-layout {\n    container: app-context / inline-size;\n    min-width: 0;\n    height: 100%;\n    min-height: 0;\n  }\n  .context-layout__columns {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) 0px;\n    align-items: stretch;\n    height: 100%;\n    min-height: 0;\n    min-width: 0;\n    transition: grid-template-columns 180ms ease;\n  }\n  .has-panel.expanded .context-layout__columns {\n    grid-template-columns: minmax(0, 1fr) 360px;\n  }\n  .context-layout__primary {\n    min-width: 0;\n    min-height: 0;\n    display: flex;\n    flex-direction: column;\n  }\n  .context-layout__panel-shell {\n    display: grid;\n    grid-template-rows: 0fr;\n    overflow: hidden;\n    min-width: 0;\n    align-self: start;\n    visibility: hidden;\n    transition:\n      grid-template-rows 180ms ease,\n      visibility 180ms;\n  }\n  .expanded .context-layout__panel-shell {\n    grid-template-rows: 1fr;\n    align-self: stretch;\n    visibility: visible;\n    height: 100%;\n    min-height: 0;\n  }\n  .context-layout__panel-clip {\n    min-height: 0;\n    overflow: hidden;\n  }\n  .context-layout__panel {\n    --kw-context-panel-background: #fff;\n    --kw-context-panel-footer-position: static;\n    box-sizing: border-box;\n    color: var(--text-invers-100, #263840);\n    width: 360px;\n    min-width: 0;\n    height: 100%;\n    min-height: 0;\n    display: flex;\n    flex-direction: column;\n    border-left: 1px solid #dfe4e7;\n    background: var(--kw-context-panel-background);\n    transform: translateX(100%);\n    transition: transform 180ms ease;\n    scroll-margin-top: calc(var(--kw-page-sticky-header-top, 56px) + 12px);\n  }\n  .expanded .context-layout__panel {\n    transform: none;\n  }\n  header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    min-height: 48px;\n    padding: 8px var(--kw-app-content-inset, 24px);\n    border-bottom: 1px solid #dfe4e7;\n    flex-shrink: 0;\n  }\n  .context-layout__heading {\n    min-width: 0;\n  }\n  h2 {\n    margin: 0;\n    color: inherit;\n    font-size: 13px;\n    line-height: 1.3;\n    font-weight: 600;\n    overflow-wrap: anywhere;\n  }\n  .context-layout__heading p {\n    margin: 2px 0 0;\n    color: #6b7a80;\n    font-size: 12px;\n    line-height: 1.3;\n    overflow-wrap: anywhere;\n  }\n  button {\n    box-sizing: border-box;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    width: 36px;\n    height: 36px;\n    padding: 6px;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    cursor: pointer;\n  }\n  button:hover {\n    background: #f1f4f5;\n  }\n  button:focus-visible,\n  aside:focus-visible {\n    outline: 2px solid var(--primary-100);\n    outline-offset: -2px;\n  }\n  .context-layout__body {\n    padding: 16px var(--kw-app-content-inset, 24px);\n    min-width: 0;\n    flex: 1;\n    min-height: 0;\n    overflow: auto;\n    overscroll-behavior: contain;\n    padding-bottom: var(--kw-app-content-inset, 24px);\n  }\n  .context-layout__footer {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    gap: 8px;\n    flex-shrink: 0;\n    padding: 12px var(--kw-app-content-inset, 24px);\n    border-top: 1px solid #dfe4e7;\n  }\n  @container app-context (max-width: 1440px) {\n    .has-panel .context-layout__columns,\n    .has-panel.expanded .context-layout__columns {\n      grid-template-columns: minmax(0, 1fr);\n      grid-template-rows: minmax(0, 1fr) 0px;\n      transition: grid-template-rows 180ms ease;\n    }\n    .has-panel.expanded .context-layout__columns {\n      grid-template-rows: minmax(0, 1fr) min(40%, 320px);\n    }\n    .context-layout__panel {\n      width: auto;\n      min-height: 0;\n      overflow: hidden;\n      border-left: 0;\n      border-top: 1px solid #dfe4e7;\n    }\n  }\n  @media (max-width: 767px) {\n    button {\n      width: 44px;\n      height: 44px;\n    }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    .context-layout__columns,\n    .context-layout__panel-shell,\n    .context-layout__panel {\n      transition: none;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { tick, untrack, type Snippet } from \"svelte\"\n  import { mdiArrowCollapse, mdiArrowExpand } from \"@mdi/js\"\n  import type { AppContextPanelPresentation } from \"../../../../core/navigation/appFrame\"\n  import type { RecordDetailHeaderControls } from \"../../../../core/layout/recordDetail\"\n  import AppContextLayout from \"../app-context-layout/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n\n  let {\n    panel = null,\n    header,\n    navigation,\n    children,\n    fullscreen = false,\n  }: {\n    panel?: AppContextPanelPresentation | null\n    header: Snippet<[RecordDetailHeaderControls]>\n    navigation: Snippet<[Snippet]>\n    children: Snippet\n    fullscreen?: boolean\n  } = $props()\n  const panelId = $props.id()\n  // A panel already in the slot at mount belongs to the previous record. Its owner may have\n  // switched identity before teardown, so this record only shows panels registered after it.\n  const inheritedPanel = untrack(() => panel)\n  const recordPanel = $derived(panel === inheritedPanel ? null : panel)\n  let focused = $state(false)\n  let historyOpen = $state(true)\n  let root = $state<HTMLElement>()\n  let focusButton = $state<HTMLButtonElement>()\n  const hidden = $derived(focused || fullscreen)\n\n  $effect(() => {\n    if (!hidden) return\n\n    root\n      ?.querySelectorAll<HTMLElement>(\".record-detail__header [popover]\")\n      .forEach((popup) => popup.hidePopover())\n  })\n\n  async function openHistory() {\n    historyOpen = true\n    await tick()\n    const panelElement = root?.querySelector<HTMLElement>(`[id=\"${panelId}\"]`)\n    panelElement?.focus({ preventScroll: true })\n    panelElement?.scrollIntoView?.({ block: \"nearest\" })\n  }\n  async function closeHistory() {\n    historyOpen = false\n    await tick()\n    root?.querySelector<HTMLElement>(\"[data-record-history-trigger]\")?.focus()\n  }\n  function toggleFocus() {\n    focused = !focused\n    focusButton?.focus({ preventScroll: true })\n  }\n  function escapeFocus(event: KeyboardEvent) {\n    if (!focused || event.key !== \"Escape\" || event.defaultPrevented) return\n\n    const target = event.target instanceof Element ? event.target : null\n\n    if (\n      target?.closest(\n        'input, textarea, select, [contenteditable=\"true\"], [role=\"combobox\"], [role=\"menu\"], [role=\"dialog\"]',\n      )\n    )\n      return\n\n    if (\n      document.querySelector(\n        ':popover-open, dialog[open], [aria-modal=\"true\"]:not([aria-hidden=\"true\"])',\n      )\n    )\n      return\n\n    event.preventDefault()\n    focused = false\n    focusButton?.focus({ preventScroll: true })\n  }\n</script>\n\n<svelte:window onkeydown={escapeFocus} />\n\n{#snippet tools()}\n  {#if !fullscreen}\n    <button\n      bind:this={focusButton}\n      type=\"button\"\n      class=\"record-focus\"\n      aria-label={focused ? \"Detail-Fokusmodus beenden\" : \"Detail-Fokusmodus aktivieren\"}\n      title={focused ? \"Detail-Fokusmodus beenden\" : \"Detail-Fokusmodus aktivieren\"}\n      aria-pressed={focused}\n      onclick={toggleFocus}\n    >\n      <Icon path={focused ? mdiArrowCollapse : mdiArrowExpand} size=\"1.125rem\" />\n    </button>\n  {/if}\n{/snippet}\n\n<div class=\"record-detail\" bind:this={root}>\n  <!-- Header and tabs span the history column, so the dark record head reads as one band. -->\n  <div class=\"record-detail__header\" class:concealed={hidden} inert={hidden} aria-hidden={hidden}>\n    <div class=\"record-detail__header-inner\">\n      {@render header({\n        historyAvailable: recordPanel != null,\n        historyOpen,\n        historyPanelId: panelId,\n        onOpenHistory: openHistory,\n      })}\n    </div>\n  </div>\n  <div class=\"record-detail__navigation\">{@render navigation(tools)}</div>\n  <div class=\"record-detail__body\">\n    <AppContextLayout\n      panel={recordPanel}\n      {panelId}\n      expanded={historyOpen && !hidden}\n      onClose={closeHistory}\n    >\n      <div class=\"record-detail__content\">{@render children()}</div>\n    </AppContextLayout>\n  </div>\n</div>\n\n<style>\n  .record-detail {\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    height: 100%;\n    min-height: 0;\n    background: var(--bg-100, #0d0c0c);\n  }\n  .record-detail__header {\n    display: grid;\n    grid-template-rows: 1fr;\n    flex-shrink: 0;\n    transition: grid-template-rows 180ms ease;\n  }\n  .record-detail__body {\n    flex: 1;\n    min-height: 0;\n    min-width: 0;\n    background: #fff;\n  }\n  .record-detail__header.concealed {\n    grid-template-rows: 0fr;\n  }\n  .record-detail__header-inner {\n    min-height: 0;\n    overflow: hidden;\n    transition:\n      transform 180ms ease,\n      visibility 180ms;\n  }\n  .concealed .record-detail__header-inner {\n    transform: translateY(-100%);\n    visibility: hidden;\n  }\n  .record-detail__navigation {\n    flex-shrink: 0;\n    min-width: 0;\n  }\n  .record-detail__content {\n    flex: 1;\n    min-height: 0;\n    min-width: 0;\n    overflow: hidden;\n  }\n  .record-focus {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: 1px solid transparent;\n    background: transparent;\n    color: rgb(255 255 255 / 85%);\n    cursor: pointer;\n  }\n  .record-focus:hover {\n    color: #fff;\n    background: rgb(255 255 255 / 10%);\n  }\n  .record-focus:focus-visible {\n    outline: 2px solid var(--primary-200, #3ddc84);\n    outline-offset: -2px;\n  }\n  @media (max-width: 767px) {\n    .record-focus {\n      width: 44px;\n      height: 44px;\n    }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    .record-detail__header,\n    .record-detail__header-inner {\n      transition: none;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { mdiDotsHorizontal, mdiHelpCircleOutline, mdiHistory } from \"@mdi/js\"\n  import type { Snippet } from \"svelte\"\n  import type { HelpDialogConfig, HelpDialogContext } from \"../../../../core/help/types\"\n  import type { PopoverMenuItem } from \"../../../../core/overlay/popover\"\n  import { openHelpDialog } from \"../../../../core/help/helpDialogs\"\n  import type {\n    RecordDetailField,\n    RecordDetailHeaderPresentation,\n  } from \"../../../../core/layout/recordDetail\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import Popover from \"../../../overlay/_modules/popover/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n\n  let {\n    title,\n    presentation,\n    loading = false,\n    actions = [],\n    aboveTitleSnippet,\n    belowTitleSnippet,\n    helpModalTextId,\n    helpModalContext,\n    helpModalFallback,\n    helpModalTooltip,\n    historyAvailable = false,\n    historyOpen = false,\n    historyPanelId,\n    onOpenHistory,\n    variant = \"page\",\n    headingLevel = variant === \"overlay\" ? 3 : 1,\n    fieldActions,\n  }: {\n    title: string\n    presentation: RecordDetailHeaderPresentation\n    loading?: boolean\n    actions?: PopoverMenuItem[]\n    aboveTitleSnippet?: Snippet\n    belowTitleSnippet?: Snippet\n    helpModalTextId?: string\n    helpModalContext?: HelpDialogContext\n    helpModalFallback?: HelpDialogConfig | null\n    helpModalTooltip?: string\n    historyAvailable?: boolean\n    historyOpen?: boolean\n    historyPanelId?: string\n    onOpenHistory?: () => void\n    variant?: \"page\" | \"overlay\"\n    headingLevel?: 1 | 2 | 3\n    fieldActions?: Snippet<[RecordDetailField]>\n  } = $props()\n\n  const fields = $derived(presentation.fields.filter((field) => field.value.trim().length > 0))\n  // Matches the four-fact maximum, so confirmed facts replace the placeholders in place.\n  const placeholders = [\n    { label: \"64px\", value: \"144px\" },\n    { label: \"80px\", value: \"200px\" },\n    { label: \"40px\", value: \"88px\" },\n    { label: \"48px\", value: \"64px\" },\n  ]\n\n  function openHelp() {\n    if (!helpModalTextId) return\n\n    openHelpDialog(helpModalTextId, {\n      context: helpModalContext,\n      fallback: helpModalFallback ?? undefined,\n    })\n  }\n</script>\n\n<header\n  class=\"record-header\"\n  class:record-header--overlay={variant === \"overlay\"}\n  aria-label=\"Datensatzkopf\"\n  aria-busy={loading || undefined}\n>\n  {#if aboveTitleSnippet}<div class=\"record-header__extra\">{@render aboveTitleSnippet()}</div>{/if}\n  <div class=\"record-header__identity-icon\" aria-hidden=\"true\">\n    <Icon path={presentation.icon} size=\"1.125rem\" />\n  </div>\n  <div class=\"record-header__identity\">\n    <svelte:element this={`h${headingLevel}`} class=\"record-header__title\">{title}</svelte:element>\n    {#if !loading && presentation.status?.label}\n      <span class=\"record-header__status\" data-tone={presentation.status.tone ?? \"neutral\"}>\n        {presentation.status.label}\n      </span>\n    {/if}\n  </div>\n  <div class=\"record-header__controls\">\n    {#if helpModalTextId}\n      <button\n        type=\"button\"\n        aria-label=\"Hilfe öffnen\"\n        title={helpModalTooltip || \"Hilfe öffnen\"}\n        onclick={openHelp}\n      >\n        <Icon path={mdiHelpCircleOutline} size=\"1.125rem\" />\n      </button>\n    {/if}\n    {#if historyAvailable && !historyOpen}\n      <button\n        type=\"button\"\n        data-record-history-trigger\n        aria-label=\"Verlauf öffnen\"\n        title=\"Verlauf öffnen\"\n        aria-controls={historyPanelId}\n        aria-expanded=\"false\"\n        onclick={onOpenHistory}><Icon path={mdiHistory} size=\"1.125rem\" /></button\n      >\n    {/if}\n    {#if !loading && actions.length}\n      <Popover label=\"Datensatzaktionen\" items={actions}>\n        {#snippet triggerContent()}<Icon path={mdiDotsHorizontal} size=\"1.125rem\" />{/snippet}\n      </Popover>\n    {/if}\n  </div>\n  {#if !loading && presentation.subtitle}\n    <p class=\"record-header__subtitle\">{presentation.subtitle}</p>\n  {/if}\n  {#if loading}\n    <div class=\"record-header__facts\" role=\"status\" aria-label=\"Kerninformationen werden geladen\">\n      {#each placeholders as placeholder, index (index)}\n        <div class=\"record-header__fact record-header__fact--placeholder\" aria-hidden=\"true\">\n          <span class=\"record-header__placeholder\" style:width={placeholder.label}></span>\n          <span\n            class=\"record-header__placeholder record-header__placeholder--value\"\n            style:width={placeholder.value}\n          ></span>\n        </div>\n      {/each}\n    </div>\n  {:else if fields.length}\n    <dl class=\"record-header__facts\" aria-label=\"Kerninformationen\">\n      {#each fields as field (field.id)}\n        <div class=\"record-header__fact\" class:with-icon={Boolean(field.icon)}>\n          <dt\n            >{#if field.icon}<Icon path={field.icon} size=\"1rem\" />{/if}<span>{field.label}</span\n            ></dt\n          >\n          <dd>\n            <!-- svelte-ignore a11y_no_noninteractive_tabindex (Read-only facts with supplementary help must expose the tooltip on keyboard focus.) -->\n            <span\n              class=\"record-header__fact-copy\"\n              tabindex={field.tooltip ? 0 : undefined}\n              use:tooltip={field.tooltip ? { content: field.tooltip } : false}\n            >\n              {field.value}\n              {#if field.description}<span class=\"record-header__description\"\n                  >{field.description}</span\n                >{/if}\n            </span>\n            {#if variant === \"overlay\" && fieldActions}\n              <span class=\"record-header__field-actions\">{@render fieldActions(field)}</span>\n            {/if}\n          </dd>\n        </div>\n      {/each}\n    </dl>\n  {/if}\n  {#if belowTitleSnippet}<div class=\"record-header__extra\">{@render belowTitleSnippet()}</div>{/if}\n</header>\n\n<style>\n  .record-header {\n    --record-header-muted: rgb(255 255 255 / 64%);\n    display: grid;\n    container-type: inline-size;\n    grid-template-columns: 32px minmax(0, 1fr) auto;\n    column-gap: 12px;\n    padding: 16px var(--kw-app-content-inset, 24px);\n    min-width: 0;\n    box-sizing: border-box;\n    color: #fff;\n    background: var(--bg-100, #0d0c0c);\n    color-scheme: dark;\n  }\n  .record-header__identity-icon {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 32px;\n    height: 32px;\n    align-self: center;\n    box-sizing: border-box;\n    color: var(--primary-200, #3ddc84);\n    background: color-mix(in srgb, var(--primary-200, #3ddc84) 45%, var(--bg-100, #0d0c0c));\n    clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 0 100%);\n  }\n  .record-header__identity-icon::before {\n    content: \"\";\n    position: absolute;\n    inset: 1px;\n    background: color-mix(in srgb, var(--primary-200, #3ddc84) 14%, var(--bg-100, #0d0c0c));\n    /* Offset the diagonal by the same 1px as the straight border edges. */\n    clip-path: polygon(0 0, calc(100% - 5.414px) 0, 100% 5.414px, 100% 100%, 0 100%);\n  }\n  .record-header__identity-icon :global(svg) {\n    position: relative;\n  }\n  .record-header__identity {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 6px 12px;\n    min-width: 0;\n  }\n  .record-header__title {\n    margin: 0;\n    color: inherit;\n    font-size: 22px;\n    font-weight: 700;\n    line-height: 1.3;\n    overflow-wrap: anywhere;\n    min-width: 0;\n  }\n  .record-header__status {\n    padding-inline-start: 8px;\n    border-inline-start: 2px solid rgb(255 255 255 / 40%);\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 1.5;\n    overflow-wrap: anywhere;\n  }\n  .record-header__status[data-tone=\"success\"] {\n    border-color: #3ddc84;\n  }\n  .record-header__status[data-tone=\"warning\"] {\n    border-color: #f5b748;\n  }\n  .record-header__status[data-tone=\"danger\"] {\n    border-color: #ff7a7a;\n  }\n  .record-header__subtitle {\n    grid-column: 2 / -1;\n    min-width: 0;\n    margin: 4px 0 0;\n    color: var(--record-header-muted);\n    font-size: 14px;\n    line-height: 1.4;\n    overflow-wrap: anywhere;\n  }\n  .record-header__facts {\n    grid-column: 2 / -1;\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px 32px;\n    margin: 10px 0 0;\n    min-width: 0;\n  }\n  .record-header__fact {\n    min-width: 0;\n    max-width: 100%;\n  }\n  dt {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    min-height: 18px;\n    color: var(--record-header-muted);\n    font-size: 12px;\n    line-height: 1.5;\n  }\n  dt :global(svg) {\n    flex-shrink: 0;\n  }\n  dt span {\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  dd {\n    margin: 2px 0 0;\n    font-size: 14px;\n    font-weight: 500;\n    line-height: 1.4;\n    overflow-wrap: anywhere;\n  }\n  .record-header__fact.with-icon dd {\n    padding-inline-start: 22px;\n  }\n  .record-header__fact--placeholder {\n    display: flex;\n    flex-direction: column;\n  }\n  .record-header__placeholder {\n    display: block;\n    max-width: 100%;\n    height: 10px;\n    margin-block: 4px;\n    background: rgb(255 255 255 / 12%);\n    animation: record-header-pulse 1.4s ease-in-out infinite;\n  }\n  .record-header__placeholder--value {\n    height: 12px;\n    margin-block: 6px 4px;\n    background: rgb(255 255 255 / 18%);\n  }\n  @keyframes record-header-pulse {\n    50% {\n      opacity: 0.55;\n    }\n  }\n  .record-header__extra {\n    grid-column: 1 / -1;\n  }\n  .record-header__extra:first-child {\n    margin-block-end: 12px;\n  }\n  .record-header__extra:last-child {\n    margin-block-start: 12px;\n  }\n  @container (max-width: 540px) {\n    .record-header__facts {\n      grid-column: 1 / -1;\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 8px 16px;\n    }\n  }\n  .record-header__controls {\n    display: flex;\n    align-items: center;\n    gap: 4px;\n    align-self: start;\n    color: rgb(255 255 255 / 85%);\n  }\n  .record-header__controls :global(.kw-popover-trigger) {\n    min-width: 36px;\n    min-height: 36px;\n  }\n  .record-header__controls :global(.kw-popover-trigger:hover),\n  button:hover {\n    color: #fff;\n    background: rgb(255 255 255 / 10%);\n  }\n  button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: 1px solid transparent;\n    background: transparent;\n    color: inherit;\n    cursor: pointer;\n  }\n  button:focus-visible,\n  .record-header__controls :global(.kw-popover-trigger:focus-visible) {\n    outline: 2px solid var(--primary-200, #3ddc84);\n    outline-offset: -2px;\n  }\n  @media (max-width: 767px) {\n    .record-header {\n      padding-block: 12px;\n      column-gap: 8px;\n    }\n    .record-header__title {\n      font-size: 19px;\n    }\n    .record-header__facts {\n      grid-column: 1 / -1;\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 8px 16px;\n    }\n    dt {\n      font-size: 11px;\n    }\n    dd {\n      font-size: 13px;\n    }\n    .record-header__controls :global(.kw-popover-trigger) {\n      min-width: 44px;\n      min-height: 44px;\n    }\n    button {\n      width: 44px;\n      height: 44px;\n    }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    .record-header__placeholder {\n      animation: none;\n    }\n  }\n  .record-header__fact-copy {\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  .record-header__description {\n    display: block;\n    margin-top: 2px;\n    color: var(--record-header-muted);\n    font-size: 12px;\n    font-weight: 400;\n    white-space: pre-line;\n  }\n  .record-header--overlay {\n    --record-header-muted: #5d6569;\n    --record-header-surface: color-mix(in srgb, var(--primary-100, #801e24) 3%, #ebe9e9);\n    padding: 12px var(--kw-record-overlay-inset, 24px);\n    background: var(--record-header-surface);\n    color: #263840;\n    color-scheme: light;\n  }\n  .record-header--overlay .record-header__title {\n    color: #263840;\n    font-size: 20px;\n    letter-spacing: 0;\n  }\n  .record-header--overlay .record-header__identity-icon {\n    align-self: start;\n    color: var(--primary-100, #801e24);\n    background: color-mix(in srgb, var(--primary-100, #801e24) 35%, var(--record-header-surface));\n  }\n  .record-header--overlay .record-header__identity-icon::before {\n    background: color-mix(in srgb, var(--primary-100, #801e24) 10%, var(--record-header-surface));\n  }\n  .record-header--overlay .record-header__facts {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 8px 24px;\n    margin-top: 8px;\n    grid-column: 2 / -1;\n  }\n  .record-header--overlay dt {\n    min-height: 14px;\n    font-size: 11px;\n    line-height: 1.25;\n  }\n  .record-header--overlay dd {\n    margin-top: 0;\n    display: flex;\n    align-items: start;\n    gap: 4px;\n    font-size: 14px;\n  }\n  .record-header__field-actions {\n    flex: 0 0 auto;\n  }\n  .record-header--overlay .record-header__status {\n    border-color: #788389;\n  }\n  .record-header--overlay .record-header__status[data-tone=\"success\"] {\n    border-color: #087749;\n  }\n  .record-header--overlay .record-header__status[data-tone=\"warning\"] {\n    border-color: #946000;\n  }\n  .record-header--overlay .record-header__status[data-tone=\"danger\"] {\n    border-color: #ab2525;\n  }\n  .record-header--overlay .record-header__controls {\n    color: #34464d;\n  }\n  .record-header--overlay button:hover,\n  .record-header--overlay .record-header__controls :global(.kw-popover-trigger:hover) {\n    color: #263840;\n    background: #0000000d;\n  }\n  .record-header--overlay .record-header__placeholder {\n    background: #26384020;\n  }\n  @container (max-width: 420px) {\n    .record-header--overlay .record-header__facts {\n      grid-column: 1 / -1;\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","import { getContext, setContext, type Snippet } from \"svelte\"\nimport { writable } from \"svelte/store\"\n\nexport type AppNavigationItem = {\n  id: string\n  title: string\n  href: string\n  icon?: string | null\n  tooltip?: string\n}\nexport type AppUtilityNavigationLink = AppNavigationItem & { target?: \"_self\" | \"_blank\" }\n/** The authorized workspace owner supplies display order within each placement. */\nexport type AppUtilityNavigationItem = (\n  | AppUtilityNavigationLink\n  | { id: string; title: string; icon?: string | null; onClick: () => void }\n  | {\n      id: string\n      title: string\n      icon?: string | null\n      items: Array<\n        | AppUtilityNavigationLink\n        | { id: string; title: string; icon?: string | null; onClick: () => void }\n      >\n    }\n) & { placement?: \"bottom\" }\nexport type AppBreadcrumb = { title: string; href?: string }\nexport type AppSubviewConfig = {\n  id: string\n  parentPageId: string\n  parentTabTitle?: string\n  parentHref?: string\n}\nexport type AppWorkspacePresentation = {\n  title: string\n  items: AppNavigationItem[]\n  footerItems?: AppUtilityNavigationItem[]\n}\nexport type AppPagePresentation = {\n  title: string\n  activePageId: string\n  breadcrumbs: AppBreadcrumb[]\n  contentLayout?: \"flow\" | \"record\"\n}\n\n/** The caller owns authorization and data; the frame only places this content. */\nexport type AppContextPanelPresentation = {\n  /** Changes with the authorized scope and the specific record being displayed. */\n  key: string\n  title: string\n  /** Quiet scope line below the title, such as the displayed record. */\n  subtitle?: string\n  content: Snippet\n  /** Panel actions pinned below the scrolling content. */\n  footer?: Snippet\n}\n\nconst FRAME_CONTEXT = Symbol(\"kw-app-frame\")\nconst SUBVIEW_CONTEXT = Symbol(\"kw-app-subview\")\nconst NAVIGATION_SCOPE_CONTEXT = Symbol(\"kw-app-navigation-scope\")\n\n/** Each rendered sidebar owns its mode, independently of the mobile drawer. */\nexport type AppNavigationScope = { readonly compact: boolean; onActivate: () => void }\nexport const provideAppNavigationScope = (scope: AppNavigationScope) =>\n  setContext(NAVIGATION_SCOPE_CONTEXT, scope)\nexport const getAppNavigationScope = () =>\n  getContext<AppNavigationScope | undefined>(NAVIGATION_SCOPE_CONTEXT)\n\n// Registrations belong to one mounted owner. Late cleanup cannot erase its successor.\nfunction ownedPresentation<T>() {\n  const state = writable<T | null>(null)\n  let activeOwner: symbol | null = null\n\n  return {\n    subscribe: state.subscribe,\n    register(owner: symbol, value: T) {\n      activeOwner = owner\n      state.set(value)\n\n      return () => {\n        if (activeOwner !== owner) return\n\n        activeOwner = null\n        state.set(null)\n      }\n    },\n  }\n}\n\nexport function createAppFrameContext(getDetail: () => Snippet | undefined = () => undefined) {\n  return {\n    workspace: ownedPresentation<AppWorkspacePresentation>(),\n    page: ownedPresentation<AppPagePresentation>(),\n    subview: ownedPresentation<AppSubviewConfig>(),\n    contextPanel: ownedPresentation<AppContextPanelPresentation>(),\n    get detail() {\n      return getDetail()\n    },\n  }\n}\n\nexport type AppFrameContext = ReturnType<typeof createAppFrameContext>\nexport const provideAppFrame = (context: AppFrameContext) => setContext(FRAME_CONTEXT, context)\nexport const getAppFrame = () => getContext<AppFrameContext | undefined>(FRAME_CONTEXT)\nexport const provideAppSubview = (getConfig: () => AppSubviewConfig) =>\n  setContext(SUBVIEW_CONTEXT, getConfig)\nexport const getAppSubview = () => getContext<(() => AppSubviewConfig) | undefined>(SUBVIEW_CONTEXT)\n","import type { Snippet } from \"svelte\"\n\nexport type AdminTargetApp = \"werk-admin\" | \"control-admin\" | \"index-admin\" | \"status-center\"\nexport type AdminApp = AdminTargetApp\n\nexport type AdminOrigins = Partial<Record<AdminApp, string | null>>\n\nexport type AdminMenuUser = {\n  id?: string | null\n  firstName?: string | null\n  lastName?: string | null\n  email?: string | null\n  avatarUrl?: string | null\n}\n\nexport type AdminNavLink = {\n  app: AdminTargetApp\n  label: string\n  href: string\n  target: \"_self\" | \"_blank\"\n  description?: string | null\n  isActive: boolean\n  isExternal: boolean\n}\n\nexport type ExtraNavigationLink = {\n  label: string\n  href: string\n  target?: \"_self\" | \"_blank\"\n  description?: string | null\n}\n\nexport type AdminMenuSnippetContext = {\n  projectId: string | null\n  projectSlug: string | null\n  projectName: string | null\n  navLinks: AdminNavLink[]\n  extraLinks: ExtraNavigationLink[]\n  closeMenu: () => void\n}\n\nexport type AdminMenuContentSnippet = Snippet<[AdminMenuSnippetContext]>\n\nconst DEFAULT_HOSTS: Record<AdminTargetApp, string> = {\n  \"control-admin\": \"app.kontextwerk.org\",\n  \"werk-admin\": \"werk-admin.kontextwerk.org\",\n  \"index-admin\": \"index-admin.kontextwerk.org\",\n  \"status-center\": \"status.kontextwerk.org\",\n}\n\nconst ADMIN_HOST_PREFIXES: Record<AdminTargetApp, string> = {\n  \"control-admin\": \"app\",\n  \"werk-admin\": \"werk-admin\",\n  \"index-admin\": \"index-admin\",\n  \"status-center\": \"status\",\n}\n\nconst normalizeOrigin = (value: string | null | undefined): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return null\n\n  try {\n    const url = new URL(trimmed.includes(\"://\") ? trimmed : `https://${trimmed}`)\n    url.pathname = \"/\"\n    url.search = \"\"\n    url.hash = \"\"\n\n    return url.origin\n  } catch {\n    return trimmed.replace(/\\/+$/, \"\")\n  }\n}\n\nconst KNOWN_HOST_TOKENS = [\n  \"control-admin\",\n  \"control-server\",\n  \"werk-admin\",\n  \"werk-server\",\n  \"index-admin\",\n  \"index-server\",\n  \"status-center\",\n  \"status-server\",\n  \"status\",\n]\n\nconst rewriteHostname = (hostname: string, target: AdminTargetApp): string => {\n  const targetToken = ADMIN_HOST_PREFIXES[target]\n  for (const token of KNOWN_HOST_TOKENS) {\n    if (hostname.includes(token)) {\n      return hostname.replace(token, targetToken)\n    }\n  }\n\n  if (hostname === \"localhost\") {\n    return `${targetToken}.localhost`\n  }\n\n  if (hostname.endsWith(\".localhost\")) {\n    const parts = hostname.split(\".\")\n    parts[0] = targetToken\n\n    return parts.join(\".\")\n  }\n\n  const labels = hostname.split(\".\")\n\n  if (labels.length > 1) {\n    labels[0] = targetToken\n\n    return labels.filter(Boolean).join(\".\")\n  }\n\n  return targetToken\n}\n\nconst resolveAdminOrigin = (\n  target: AdminTargetApp,\n  origins: AdminOrigins | null,\n  currentOrigin: string | null,\n): string | null => {\n  const explicit = normalizeOrigin(origins?.[target] ?? null)\n\n  if (explicit) return explicit\n\n  const base = normalizeOrigin(\n    currentOrigin ?? (typeof window !== \"undefined\" ? window.location.origin : null),\n  )\n\n  if (base) {\n    try {\n      const url = new URL(base)\n      url.hostname = rewriteHostname(url.hostname, target)\n\n      return url.origin\n    } catch {\n      return base\n    }\n  }\n\n  return normalizeOrigin(DEFAULT_HOSTS[target])\n}\n\nconst joinOriginWithPath = (origin: string | null, path: string): string => {\n  const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`\n\n  if (!origin) return normalizedPath\n\n  return `${origin.replace(/\\/+$/, \"\")}${normalizedPath}`\n}\n\nconst decodePathSegment = (value: string | null | undefined): string | null => {\n  if (!value) return null\n\n  try {\n    return decodeURIComponent(value)\n  } catch {\n    return value\n  }\n}\n\nconst readOrganizationSlugFromPath = (): string | null => {\n  if (typeof window === \"undefined\") return null\n\n  const match = (window.location.pathname || \"\").match(/^\\/organizations\\/([^/]+)/i)\n\n  return decodePathSegment(match?.[1] ?? null)\n}\n\nconst resolveEffectiveOrganizationSlug = (value: string | null | undefined): string | null => {\n  const explicit = (value ?? \"\").trim()\n\n  if (explicit) return explicit\n\n  return readOrganizationSlugFromPath()\n}\n\nconst ADMIN_LABELS: Record<AdminTargetApp, string> = {\n  \"control-admin\": \"Control Admin\",\n  \"werk-admin\": \"Werk Admin\",\n  \"index-admin\": \"Index Admin\",\n  \"status-center\": \"KontextWerk Status\",\n}\n\nconst resolveStatusCenterLabel = (origin: string | null, fallbackOrigin: string | null): string => {\n  const candidates = [origin, fallbackOrigin]\n  for (const candidate of candidates) {\n    if (!candidate) continue\n\n    try {\n      const hostname = new URL(candidate).hostname.toLowerCase()\n\n      if (hostname.includes(\"kehrblatt\")) return \"Kehrblatt Status\"\n\n      if (hostname.includes(\"claricall\") || hostname.includes(\"clari-call\"))\n        return \"ClariCall Status\"\n\n      if (hostname.includes(\"kontextwerk\")) return \"KontextWerk Status\"\n    } catch {\n      continue\n    }\n  }\n\n  return ADMIN_LABELS[\"status-center\"]\n}\n\nconst rewriteToAppHostname = (hostname: string): string => {\n  if (hostname === \"app.localhost\") return hostname\n\n  if (hostname.endsWith(\".localhost\")) {\n    const labels = hostname.split(\".\")\n    labels[0] = \"app\"\n\n    return labels.join(\".\")\n  }\n\n  const labels = hostname.split(\".\")\n\n  if (labels.length > 1) {\n    labels[0] = \"app\"\n\n    return labels.filter(Boolean).join(\".\")\n  }\n\n  return hostname.includes(\"app.\") ? hostname : `app.${hostname}`\n}\n\nconst buildAppOrigin = (baseOrigin: string | null): string | null => {\n  if (!baseOrigin) return null\n\n  try {\n    const url = new URL(baseOrigin)\n    url.hostname = rewriteToAppHostname(url.hostname)\n\n    return url.origin\n  } catch {\n    return null\n  }\n}\n\nconst DEFAULT_CONTROL_APP_ORIGIN = \"https://app.kontextwerk.org\"\n\nconst resolveControlAppOrigin = (\n  origins: AdminOrigins | null,\n  currentOrigin: string | null,\n): string | null => {\n  const explicit = normalizeOrigin(origins?.[\"control-admin\"] ?? null)\n\n  if (explicit) return explicit\n\n  const base = normalizeOrigin(\n    currentOrigin ?? (typeof window !== \"undefined\" ? window.location.origin : null),\n  )\n\n  if (base) {\n    const appOrigin = buildAppOrigin(base)\n\n    if (appOrigin) return appOrigin\n  }\n\n  return normalizeOrigin(DEFAULT_CONTROL_APP_ORIGIN)\n}\n\ntype BuildAdminNavLinksOptions = {\n  currentApp?: AdminApp | null\n  projectId?: string | null\n  projectSlug?: string | null\n  origins?: AdminOrigins | null\n  baseOrigin?: string | null\n  userId?: string | null\n  organizationSlug?: string | null\n}\n\nexport const buildAdminNavLinks = ({\n  currentApp = null,\n  projectId = null,\n  projectSlug = null,\n  origins = null,\n  baseOrigin = null,\n  userId = null,\n  organizationSlug = null,\n}: BuildAdminNavLinksOptions): AdminNavLink[] => {\n  const projectIdentifier = projectId ?? projectSlug ?? null\n  const effectiveOrganizationSlug = resolveEffectiveOrganizationSlug(organizationSlug)\n  const fallbackProjectPath: Record<AdminTargetApp, string> = {\n    \"control-admin\": \"/\",\n    \"werk-admin\": \"/projects\",\n    \"index-admin\": \"/\",\n    \"status-center\": \"/\",\n  }\n  const resolveProjectPath = (app: AdminTargetApp) => {\n    if (app === \"status-center\") {\n      const params = new URLSearchParams()\n\n      if (effectiveOrganizationSlug) params.set(\"organization\", effectiveOrganizationSlug)\n\n      if (projectIdentifier) params.set(\"project\", projectIdentifier)\n\n      const serialized = params.toString()\n\n      return serialized ? `/?${serialized}` : \"/\"\n    }\n\n    if (projectIdentifier) {\n      return `/projects/${encodeURIComponent(projectIdentifier)}`\n    }\n\n    if (app === \"index-admin\") {\n      if (effectiveOrganizationSlug) {\n        return `/organizations/${encodeURIComponent(effectiveOrganizationSlug)}`\n      }\n\n      return \"/\"\n    }\n\n    return fallbackProjectPath[app]\n  }\n  const currentOrigin =\n    baseOrigin ?? (typeof window !== \"undefined\" ? window.location.origin : null)\n  const currentHostname = (() => {\n    try {\n      return currentOrigin\n        ? new URL(currentOrigin).hostname\n        : typeof window !== \"undefined\"\n          ? window.location.hostname\n          : null\n    } catch {\n      return null\n    }\n  })()\n  const userProfilePath = userId\n    ? effectiveOrganizationSlug\n      ? `/organizations/${encodeURIComponent(effectiveOrganizationSlug)}/users/${encodeURIComponent(userId)}/general`\n      : `/users/${encodeURIComponent(userId)}/general`\n    : null\n\n  return (Object.keys(ADMIN_LABELS) as AdminTargetApp[]).map((app) => {\n    const origin =\n      app === \"control-admin\"\n        ? resolveControlAppOrigin(origins, currentOrigin)\n        : resolveAdminOrigin(app, origins, currentOrigin)\n    const projectPath = resolveProjectPath(app)\n    const isActive = currentApp === app\n    const useProfilePath = app === \"control-admin\" && isActive && Boolean(userProfilePath)\n    const href = joinOriginWithPath(\n      origin,\n      useProfilePath && userProfilePath ? userProfilePath : projectPath,\n    )\n    const resolvedAppLabel =\n      app === \"status-center\" ? resolveStatusCenterLabel(origin, currentOrigin) : ADMIN_LABELS[app]\n    const label = useProfilePath ? \"Persönliches Profil\" : isActive ? \"Übersicht\" : resolvedAppLabel\n    const isExternal =\n      typeof window !== \"undefined\" && origin\n        ? !origin.includes(window.location.hostname)\n        : Boolean(origin && origin !== currentOrigin)\n\n    return {\n      app,\n      label,\n      href,\n      target: \"_self\" as const,\n      description: isActive ? resolvedAppLabel : null,\n      isActive,\n      isExternal,\n    }\n  })\n}\n","import { writable } from \"svelte/store\"\nimport type { PageNavigationEntry } from \"./types\"\n\nexport type PageNavigationSnapshot = {\n  pages: PageNavigationEntry[]\n  path: string\n  search: string\n}\n\nconst initialState: PageNavigationSnapshot = {\n  pages: [],\n  path: \"/\",\n  search: \"\",\n}\n\nexport const pageNavigationState = writable<PageNavigationSnapshot>(initialState)\n","import type { Snippet } from \"svelte\"\n\nimport type { PageContentWidthType, PageNavigationEntry, PageTabConfig } from \"./types\"\n\nexport type PageTabWithId = PageTabConfig & { id: string }\n\ntype ViewPageResolverArgs<TContext, TPaths, TCapabilities> = {\n  context: TContext\n  paths: TPaths\n  capabilities: TCapabilities\n}\n\ntype ViewPageValue<T, TContext, TPaths, TCapabilities> =\n  | T\n  | ((args: ViewPageResolverArgs<TContext, TPaths, TCapabilities>) => T)\n\nexport type ViewPageSpec<TContext, TPaths, TCapabilities = unknown> = {\n  id: string\n  title: ViewPageValue<string, TContext, TPaths, TCapabilities>\n  icon?: ViewPageValue<string | null | undefined, TContext, TPaths, TCapabilities>\n  tooltip?: ViewPageValue<string | undefined, TContext, TPaths, TCapabilities>\n  widthType?: ViewPageValue<PageContentWidthType | undefined, TContext, TPaths, TCapabilities>\n  testId?: ViewPageValue<string | undefined, TContext, TPaths, TCapabilities>\n  resolvePath: (paths: TPaths) => string | null | undefined\n  canOpen?: (capabilities: TCapabilities, context: TContext) => boolean\n  getTabs: (context: TContext) => PageTabWithId[]\n}\n\nexport type ViewPageSnippets = Record<string, Snippet<[string]>>\n\nconst tabContentBindings = new WeakMap<\n  Snippet<[string]>,\n  Map<string, NonNullable<PageTabConfig[\"content\"]>>\n>()\n\nexport const bindSnippet = <T>(\n  snippet: Snippet<[T]>,\n  ctxOrGetter: T | (() => T),\n): NonNullable<PageTabConfig[\"content\"]> => {\n  const getContext = (\n    typeof ctxOrGetter === \"function\" ? ctxOrGetter : () => ctxOrGetter\n  ) as () => T\n\n  return ((anchor: unknown) =>\n    (snippet as unknown as (anchor: unknown, ctx: () => T) => void)(\n      anchor,\n      getContext,\n    )) as NonNullable<PageTabConfig[\"content\"]>\n}\n\nexport const filterTabs = <T extends PageTabConfig>(tabs: Array<T | null | undefined>): T[] =>\n  tabs.filter((tab): tab is T => Boolean(tab))\n\n/** Stable content identity for both direct pages and tabs, scoped to the snippet owner. */\nexport const bindViewContent = (\n  snippet: Snippet<[string]>,\n  tabId: string,\n): NonNullable<PageTabConfig[\"content\"]> => {\n  let bindings = tabContentBindings.get(snippet)\n\n  if (!bindings) {\n    bindings = new Map()\n    tabContentBindings.set(snippet, bindings)\n  }\n\n  const existing = bindings.get(tabId)\n\n  if (existing) return existing\n\n  const content = bindSnippet(snippet, tabId)\n  bindings.set(tabId, content)\n\n  return content\n}\n\nexport const withTabContent = <T extends PageTabWithId>(\n  tabs: T[],\n  snippet: Snippet<[string]>,\n): PageTabConfig[] =>\n  tabs.map((tab) => ({\n    ...tab,\n    content: bindViewContent(snippet, tab.id),\n  }))\n\nexport const resolvePageEntry = <TContext, TPaths, TCapabilities = unknown>({\n  spec,\n  context,\n  paths,\n  capabilities,\n}: {\n  spec: ViewPageSpec<TContext, TPaths, TCapabilities>\n  context: TContext\n  paths: TPaths\n  capabilities: TCapabilities\n}): (Omit<PageNavigationEntry, \"tabs\"> & { tabs: PageTabWithId[] }) | null => {\n  const path = spec.resolvePath(paths)\n\n  if (!path) return null\n\n  if (spec.canOpen && !spec.canOpen(capabilities, context)) return null\n\n  const resolverArgs: ViewPageResolverArgs<TContext, TPaths, TCapabilities> = {\n    context,\n    paths,\n    capabilities,\n  }\n  const resolveValue = <T>(\n    value: ViewPageValue<T, TContext, TPaths, TCapabilities> | undefined,\n  ): T | undefined =>\n    typeof value === \"function\"\n      ? (value as (args: ViewPageResolverArgs<TContext, TPaths, TCapabilities>) => T)(resolverArgs)\n      : value\n\n  const tabs = spec.getTabs(context)\n\n  if (!tabs.length) return null\n\n  return {\n    id: spec.id,\n    title: resolveValue(spec.title) ?? \"\",\n    path,\n    icon: resolveValue(spec.icon),\n    tooltip: resolveValue(spec.tooltip),\n    widthType: resolveValue(spec.widthType),\n    testId: resolveValue(spec.testId),\n    tabs,\n  }\n}\n\nexport const buildPageEntry = <TContext, TPaths, TCapabilities = unknown>(args: {\n  spec: ViewPageSpec<TContext, TPaths, TCapabilities>\n  context: TContext\n  paths: TPaths\n  capabilities: TCapabilities\n  snippet: Snippet<[string]>\n}): PageNavigationEntry | null => {\n  const entry = resolvePageEntry(args)\n\n  return entry ? { ...entry, tabs: withTabContent(entry.tabs ?? [], args.snippet) } : null\n}\n\nexport const buildViewNavigation = <TContext, TPaths, TCapabilities = unknown>({\n  specs,\n  context,\n  paths,\n  capabilities,\n  snippets,\n}: {\n  specs: Array<ViewPageSpec<TContext, TPaths, TCapabilities>>\n  context: TContext\n  paths: TPaths\n  capabilities: TCapabilities\n  snippets: ViewPageSnippets\n}): PageNavigationEntry[] =>\n  specs\n    .map((spec) => {\n      const snippet = snippets[spec.id]\n\n      if (!snippet) return null\n\n      return buildPageEntry({\n        spec,\n        context,\n        paths,\n        capabilities,\n        snippet,\n      })\n    })\n    .filter((entry): entry is PageNavigationEntry => Boolean(entry))\n","<script module lang=\"ts\">\n  import { readNavigationCollapsed, writeNavigationCollapsed } from \"./_logic/navigation-preference\"\n  export { readNavigationCollapsed, writeNavigationCollapsed }\n</script>\n\n<script lang=\"ts\">\n  import { mdiChevronLeft, mdiChevronRight, mdiInformation } from \"@mdi/js\"\n  import PageTitle from \"../page-title/index\"\n  import PageNavigation from \"../page-navigation/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import CrinkledSection from \"../crinkled-section/index\"\n  import FullscreenToggle from \"../fullscreen-toggle/index\"\n  import RecordDetailLayout from \"../record-detail-layout/index\"\n  import RecordDetailHeader from \"../record-detail-header/index\"\n  import type {\n    RecordDetailConfig,\n    RecordDetailHeaderControls,\n  } from \"../../../../core/layout/recordDetail\"\n  import { onDestroy, type Snippet } from \"svelte\"\n  import {\n    getAppFrame,\n    getAppSubview,\n    type AppBreadcrumb,\n    type AppNavigationItem,\n    type AppUtilityNavigationItem,\n    type AppContextPanelPresentation,\n  } from \"../../../../core/navigation/appFrame\"\n  import {\n    location as defaultLocation,\n    spaLink,\n    stripTransientQueryParamsFromSearch,\n  } from \"../../../../core/routing/navigation\"\n  import { fullscreenMode } from \"../../../../core/runtime/fullscreen\"\n  import { pageNavigationState } from \"../../../../core/navigation/index\"\n  import type {\n    PageContentWidthType,\n    PageNavigationEntry,\n    PageTabConfig,\n  } from \"../../../../core/navigation/types\"\n  import type { LocationState } from \"../../../../core/routing/navigation\"\n  import { readable, type Writable } from \"svelte/store\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import type { HelpDialogConfig, HelpDialogContext } from \"../../../../core/help/types\"\n\n  export type { PageContentWidthType, PageNavigationEntry, PageTabConfig }\n\n  type PageTemplateProps = {\n    viewKey: string\n    recordDetail?: RecordDetailConfig\n    title?: string\n    subtitle?: string\n    gobackLink?: string\n    pageNavigation?: PageNavigationEntry[]\n    workspaceNavigation?: {\n      items: AppNavigationItem[]\n      footerItems?: AppUtilityNavigationItem[]\n    }\n    appBreadcrumbs?: AppBreadcrumb[]\n    locationStore?: Writable<LocationState>\n    aboveTitleSnippet?: () => any\n    belowTitleSnippet?: () => any\n    buttonSnippet?: () => any\n    activateFullscreenFeature?: boolean\n    hidePrimaryNavigationWhenSinglePage?: boolean\n    helpModalTextId?: string\n    helpModalContext?: HelpDialogContext\n    helpModalFallback?: HelpDialogConfig | null\n    helpModalTooltip?: string\n    testId?: string\n  }\n\n  let {\n    viewKey,\n    recordDetail,\n    title = \"\",\n    subtitle = \"\",\n    pageNavigation = [],\n    workspaceNavigation,\n    appBreadcrumbs,\n    gobackLink = \"\",\n    locationStore = defaultLocation,\n    aboveTitleSnippet,\n    belowTitleSnippet,\n    buttonSnippet,\n    activateFullscreenFeature = false,\n    hidePrimaryNavigationWhenSinglePage = false,\n    helpModalTextId = \"\",\n    helpModalContext = undefined,\n    helpModalFallback = null,\n    helpModalTooltip = \"\",\n    testId = \"\",\n  }: PageTemplateProps = $props()\n\n  const appFrame = getAppFrame()\n  const contextPanel = appFrame?.contextPanel ?? readable<AppContextPanelPresentation | null>(null)\n  const getSubview = getAppSubview()\n  const presentationOwner = Symbol(\"page-template\")\n  const subview = $derived(getSubview?.())\n  const detail = $derived(!subview ? appFrame?.detail : undefined)\n\n  const normalizeSearch = (value: string | null | undefined) =>\n    typeof value === \"string\" ? value.replace(/^\\?/, \"\") : \"\"\n\n  const splitPathParts = (value: string | null | undefined) => {\n    const raw = typeof value === \"string\" ? value : \"\"\n    const hashIndex = raw.indexOf(\"#\")\n    const hasHash = hashIndex !== -1\n    const hash = hasHash ? raw.slice(hashIndex) : \"\"\n    const withoutHash = hasHash ? raw.slice(0, hashIndex) : raw\n\n    const queryIndex = withoutHash.indexOf(\"?\")\n    const hasQuery = queryIndex !== -1\n    const search = hasQuery ? withoutHash.slice(queryIndex) : \"\"\n    const path = hasQuery ? withoutHash.slice(0, queryIndex) : withoutHash\n\n    return { path: path || \"/\", search, hash }\n  }\n\n  const mergeSearchParams = (...searches: Array<string | null | undefined>) => {\n    const params = new URLSearchParams()\n    searches.forEach((entry) => {\n      const normalized = normalizeSearch(entry)\n\n      if (!normalized) return\n\n      const parsed = new URLSearchParams(normalized)\n      parsed.forEach((value, key) => {\n        params.set(key, value)\n      })\n    })\n\n    return params\n  }\n\n  const inheritedSearch = (search: string | null | undefined) =>\n    stripTransientQueryParamsFromSearch(search)\n\n  function resolveActivePageIndex(locationState: LocationState, pages: PageNavigationEntry[]) {\n    if (!pages.length) return 0\n\n    const currentPath = locationState?.path ?? \"/\"\n    let bestIndex = 0\n    let bestMatchLength = -1\n\n    pages.forEach((page, index) => {\n      const normalizedPath = splitPathParts(page?.path).path\n\n      if (!normalizedPath) return\n\n      const exactMatch = currentPath === normalizedPath\n      const suffixMatch = currentPath.endsWith(normalizedPath)\n\n      if (exactMatch || suffixMatch) {\n        if (normalizedPath.length > bestMatchLength) {\n          bestIndex = index\n          bestMatchLength = normalizedPath.length\n        }\n      }\n\n      for (const tab of page.tabs ?? []) {\n        if (typeof tab.path !== \"string\" || !tab.path.trim()) continue\n\n        const tabPath = splitPathParts(tab.path).path\n        const nestedPrefix = tabPath.endsWith(\"/\") ? tabPath : `${tabPath}/`\n\n        if (\n          (currentPath === tabPath || currentPath.startsWith(nestedPrefix)) &&\n          tabPath.length > bestMatchLength\n        ) {\n          bestIndex = index\n          bestMatchLength = tabPath.length\n        }\n      }\n    })\n\n    return bestIndex\n  }\n\n  function resolveActiveTabIndex(\n    page: PageNavigationEntry | undefined,\n    tabs: PageTabConfig[],\n    path: string,\n    search: string,\n  ) {\n    if (!tabs.length) return 0\n\n    const hasExplicitTabPath = tabs.some(\n      (tab) => typeof tab.path === \"string\" && tab.path.trim().length,\n    )\n\n    if (hasExplicitTabPath) {\n      let bestIndex = 0\n      let bestMatchLength = -1\n\n      tabs.forEach((tab, index) => {\n        const candidatePath =\n          typeof tab.path === \"string\" && tab.path.trim().length\n            ? splitPathParts(tab.path).path\n            : splitPathParts(buildTargetPath(page, index, search)).path\n\n        if (!candidatePath) return\n\n        const exactMatch = path === candidatePath\n        const nestedMatch = path.startsWith(\n          candidatePath.endsWith(\"/\") ? candidatePath : `${candidatePath}/`,\n        )\n\n        if (exactMatch || nestedMatch) {\n          const matchLength = candidatePath.length\n\n          if (matchLength > bestMatchLength) {\n            bestIndex = index\n            bestMatchLength = matchLength\n          }\n        }\n      })\n\n      if (bestMatchLength >= 0) {\n        return bestIndex\n      }\n    }\n\n    const params = new URLSearchParams(normalizeSearch(search))\n    const candidate = Number(params.get(\"tab\"))\n\n    if (Number.isInteger(candidate) && candidate >= 0 && candidate < tabs.length) {\n      return candidate\n    }\n\n    return 0\n  }\n\n  const isPageContentWidthType = (value: unknown): value is PageContentWidthType =>\n    value === \"small\" || value === \"normal\" || value === \"large\"\n\n  const resolveActiveWidthType = (\n    page: PageNavigationEntry | undefined,\n    tabs: PageTabConfig[],\n    tabIndex: number,\n  ): PageContentWidthType => {\n    const candidate = tabs.length ? (tabs[tabIndex]?.widthType ?? page?.widthType) : page?.widthType\n\n    return isPageContentWidthType(candidate) ? candidate : \"normal\"\n  }\n\n  const buildSearchWithTab = (\n    page: PageNavigationEntry | undefined,\n    tabIndex: number | null,\n    currentSearch: string | null | undefined,\n  ) => {\n    const { search: pathSearch } = splitPathParts(page?.path)\n    const params = mergeSearchParams(pathSearch, inheritedSearch(currentSearch))\n    const tabCount = page?.tabs?.length ?? 0\n    const hasMultipleTabs = tabCount > 1\n\n    if (hasMultipleTabs && typeof tabIndex === \"number\") {\n      const maxIndex = Math.max(0, tabCount - 1)\n      const nextIndex = Math.min(tabIndex, maxIndex)\n      params.set(\"tab\", String(nextIndex))\n    } else {\n      params.delete(\"tab\")\n    }\n\n    const serialized = params.toString()\n\n    return serialized ? `?${serialized}` : \"\"\n  }\n\n  const buildPathWithMergedSearch = (target: string, currentSearch: string | null | undefined) => {\n    const { path: basePath, search: targetSearch, hash } = splitPathParts(target)\n    const params = mergeSearchParams(targetSearch, inheritedSearch(currentSearch))\n    const serialized = params.toString()\n\n    return `${basePath}${serialized ? `?${serialized}` : \"\"}${hash ?? \"\"}`\n  }\n\n  const buildTargetPath = (\n    page: PageNavigationEntry | undefined,\n    tabIndex: number | null,\n    search: string,\n  ) => {\n    if (!page) return \"\"\n\n    const { path: basePath, hash } = splitPathParts(page.path)\n    const searchWithTab = buildSearchWithTab(page, tabIndex, search)\n\n    return `${basePath}${searchWithTab}${hash ?? \"\"}`\n  }\n\n  const buildTabConfig = (\n    page: PageNavigationEntry | undefined,\n    tabs: PageTabConfig[],\n    search: string,\n  ) => {\n    if (!page || !tabs.length) return []\n\n    return tabs.map((tab, index) => ({\n      title: tab.title,\n      tooltip: tab.tooltip,\n      testId: tab.testId,\n      path:\n        typeof tab.path === \"string\" && tab.path.trim().length\n          ? buildPathWithMergedSearch(tab.path, search)\n          : buildTargetPath(page, index, search),\n    }))\n  }\n\n  const primaryHref = (page: PageNavigationEntry, index: number) => {\n    const defaultTab = index === activePageIndex ? activeTabIndex : 0\n    const tab = page?.tabs?.[defaultTab]\n\n    if (tab && typeof tab.path === \"string\" && tab.path.trim().length) {\n      return buildPathWithMergedSearch(tab.path, $locationStore.search)\n    }\n\n    return buildTargetPath(page, defaultTab, $locationStore.search)\n  }\n\n  const handlePrimaryClick = (event: MouseEvent, page: PageNavigationEntry, index: number) => {\n    event.preventDefault()\n  }\n\n  const stablePathKey = (value: string | null | undefined, fallback: string) => {\n    if (typeof value !== \"string\" || !value.trim()) return fallback\n\n    return splitPathParts(value).path || fallback\n  }\n\n  const normalizedPages = $derived(\n    Array.isArray(pageNavigation) ? pageNavigation.filter(Boolean) : [],\n  )\n  let navCollapsed = $state(readNavigationCollapsed(\"page\"))\n  const activePageIndex = $derived(resolveActivePageIndex($locationStore, normalizedPages))\n  const activePage = $derived(normalizedPages[activePageIndex] ?? normalizedPages[0])\n  const appPresentation = $derived(activePage?.appPresentation)\n  const appTitle = $derived(appPresentation?.title ?? (subview ? title : \"\"))\n  const localNavigation = $derived(\n    subview\n      ? normalizedPages.map((page, index) => ({\n          id: page.id ?? page.path,\n          title: page.title,\n          icon: page.icon,\n          href: primaryHref(page, index),\n        }))\n      : (appPresentation?.localNavigation ?? []),\n  )\n  const activeTabs = $derived(activePage?.tabs ?? [])\n  const activeTabIndex = $derived(\n    resolveActiveTabIndex(activePage, activeTabs, $locationStore.path, $locationStore.search),\n  )\n  const tabConfig = $derived(buildTabConfig(activePage, activeTabs, $locationStore.search))\n  const showTabs = $derived(activeTabs.length > 1)\n  const activeWidthType = $derived(resolveActiveWidthType(activePage, activeTabs, activeTabIndex))\n  const activeContent = $derived(\n    (activeTabs.length ? activeTabs[activeTabIndex]?.content : activePage?.content) ?? null,\n  )\n  const activeContentTestId = $derived.by(\n    () =>\n      (activeTabs.length ? activeTabs[activeTabIndex]?.testId : activePage?.testId) ??\n      (testId ? `${testId}.content` : \"\"),\n  )\n\n  const activeContentKey = $derived.by(() => {\n    const pageKey =\n      activePage?.contentKey ?? stablePathKey(activePage?.path, `page-${activePageIndex}`)\n    const tabKey =\n      activeTabs.length > 0\n        ? (activeTabs[activeTabIndex]?.contentKey ??\n          stablePathKey(activeTabs[activeTabIndex]?.path, `tab-${activeTabIndex}`))\n        : \"page-content\"\n\n    return `${viewKey}::${pageKey}::${tabKey}`\n  })\n\n  const composeTitle = (...parts: Array<string | null | undefined>) => {\n    const normalized = parts\n      .map((part) => (typeof part === \"string\" ? part.trim() : \"\"))\n      .filter((part): part is string => Boolean(part))\n    const unique = normalized.filter((part, index, array) => array.indexOf(part) === index)\n\n    return unique.join(\" | \")\n  }\n\n  let primaryNavRoot: HTMLUListElement | null = $state(null)\n  let primaryNavOverflow: boolean[] = $state([])\n  let primaryNavResizeObserver: ResizeObserver | null = null\n\n  const areOverflowFlagsEqual = (left: boolean[], right: boolean[]) =>\n    left.length === right.length && left.every((value, index) => value === right[index])\n\n  const updatePrimaryNavOverflow = () => {\n    if (navCollapsed || isFullscreen) {\n      if (primaryNavOverflow.length) primaryNavOverflow = []\n\n      return\n    }\n\n    if (!primaryNavRoot) {\n      if (primaryNavOverflow.length) primaryNavOverflow = []\n\n      return\n    }\n\n    const anchors = [\n      ...primaryNavRoot.querySelectorAll<HTMLAnchorElement>(\"li:not(.nav__toggle) a\"),\n    ]\n    const next = anchors.map((anchor) => {\n      const label = anchor.querySelector<HTMLElement>(\".label\")\n\n      if (!label) return false\n\n      return label.scrollWidth > label.clientWidth\n    })\n\n    if (!areOverflowFlagsEqual(primaryNavOverflow, next)) {\n      primaryNavOverflow = next\n    }\n  }\n\n  const schedulePrimaryNavOverflowUpdate = () => {\n    if (typeof requestAnimationFrame === \"undefined\") return\n\n    requestAnimationFrame(updatePrimaryNavOverflow)\n  }\n\n  $effect(() => {\n    if (typeof ResizeObserver === \"undefined\" || !primaryNavRoot || navCollapsed || isFullscreen)\n      return\n\n    primaryNavResizeObserver?.disconnect()\n    primaryNavResizeObserver = new ResizeObserver(schedulePrimaryNavOverflowUpdate)\n    primaryNavResizeObserver.observe(primaryNavRoot)\n\n    return () => {\n      primaryNavResizeObserver?.disconnect()\n      primaryNavResizeObserver = null\n    }\n  })\n\n  $effect(() => {\n    if (typeof window === \"undefined\") return\n\n    schedulePrimaryNavOverflowUpdate()\n    window.addEventListener(\"resize\", schedulePrimaryNavOverflowUpdate)\n\n    return () => window.removeEventListener(\"resize\", schedulePrimaryNavOverflowUpdate)\n  })\n\n  $effect(() => {\n    primaryNavRoot\n    normalizedPages\n    navCollapsed\n    isFullscreen\n    schedulePrimaryNavOverflowUpdate()\n  })\n\n  const documentTitle = $derived.by(() => {\n    const tabTitle = activeTabs[activeTabIndex]?.title\n    const pageTitle = activePage?.title\n    const composed = composeTitle(tabTitle, pageTitle, title)\n\n    return composed || pageTitle || title || tabTitle || \"\"\n  })\n\n  const fullscreenEnabled = $derived(Boolean(activateFullscreenFeature))\n  const isFullscreen = $derived(fullscreenEnabled && $fullscreenMode)\n  const showLocalNavigation = $derived(localNavigation.length > 1 && !isFullscreen)\n  const hidePrimaryNavigation = $derived(\n    Boolean(\n      hidePrimaryNavigationWhenSinglePage &&\n      normalizedPages.length <= 1 &&\n      showTabs &&\n      !isFullscreen,\n    ),\n  )\n  const navChevronIcon = $derived(navCollapsed ? mdiChevronRight : mdiChevronLeft)\n  const navToggleLabel = $derived(navCollapsed ? \"Navigation ausklappen\" : \"Navigation einklappen\")\n  const navToggleButtonLabel = $derived(navCollapsed ? \"Ausklappen\" : \"Einklappen\")\n\n  const toggleNavigation = () => {\n    navCollapsed = !navCollapsed\n\n    writeNavigationCollapsed(\"page\", navCollapsed)\n  }\n\n  $effect(() => {\n    if (appFrame) return\n\n    pageNavigationState.set({\n      pages: normalizedPages,\n      path: $locationStore?.path ?? \"/\",\n      search: $locationStore?.search ?? \"\",\n    })\n  })\n\n  onDestroy(() => {\n    if (appFrame) return\n\n    pageNavigationState.set({ pages: [], path: \"/\", search: \"\" })\n  })\n\n  $effect(() => {\n    if (!appFrame || subview) return\n\n    return appFrame.workspace.register(presentationOwner, {\n      title,\n      items:\n        workspaceNavigation?.items ??\n        normalizedPages.map((page, index) => ({\n          id: page.id ?? page.path,\n          title: page.title,\n          icon: page.icon,\n          href: primaryHref(page, index),\n        })),\n      footerItems: workspaceNavigation?.footerItems,\n    })\n  })\n\n  $effect(() => {\n    if (!appFrame || detail) return\n\n    const pageId =\n      subview?.parentPageId ??\n      appPresentation?.activePageId ??\n      activePage?.id ??\n      activePage?.path ??\n      \"\"\n\n    return appFrame.page.register(presentationOwner, {\n      title: appPresentation?.title ?? title,\n      activePageId: pageId,\n      contentLayout: recordDetail ? \"record\" : \"flow\",\n      breadcrumbs:\n        appBreadcrumbs ??\n        appPresentation?.breadcrumbs ??\n        (subview\n          ? [\n              ...(subview.parentTabTitle\n                ? [\n                    {\n                      title: subview.parentTabTitle,\n                      href: subview.parentHref || gobackLink || undefined,\n                    },\n                  ]\n                : []),\n              { title },\n            ]\n          : [{ title: activePage?.title || title }]),\n    })\n  })\n</script>\n\n<svelte:head>\n  {#if documentTitle && !detail}\n    <title>{documentTitle}</title>\n  {/if}\n</svelte:head>\n\n{#snippet pageContent()}\n  {#if activeContent}\n    {#key activeContentKey}{@render activeContent()}{/key}\n  {/if}\n{/snippet}\n\n{#snippet appBody()}\n  <div class=\"app-page__layout\" class:with-local-navigation={showLocalNavigation}>\n    {#if showLocalNavigation}\n      <nav class=\"app-page__local\" aria-label=\"Bereichsnavigation\">\n        {#each localNavigation as item (item.id)}\n          <a\n            use:spaLink\n            href={item.href}\n            aria-current={item.id === (activePage?.id ?? activePage?.path) ||\n            splitPathParts(item.href).path === splitPathParts(activePage?.path).path\n              ? \"page\"\n              : undefined}\n          >\n            {#if item.icon}<Icon path={item.icon} size=\"1.1rem\" />{/if}<span>{item.title}</span>\n          </a>\n        {/each}\n      </nav>\n    {/if}\n    <!-- svelte-ignore a11y_no_noninteractive_tabindex (Record contents scroll independently and need keyboard focus.) -->\n    <div\n      class=\"app-page__panel\"\n      role={recordDetail ? \"region\" : undefined}\n      aria-label={recordDetail ? \"Datensatzinhalt\" : undefined}\n      tabindex={recordDetail ? 0 : undefined}\n    >\n      <div\n        class=\"app-page__body\"\n        class:small={activeWidthType === \"small\" && !isFullscreen}\n        data-testid={activeContentTestId || undefined}\n      >\n        {@render pageContent()}\n      </div>\n    </div>\n  </div>\n{/snippet}\n\n{#snippet recordHeader(controls: RecordDetailHeaderControls)}\n  <RecordDetailHeader\n    {title}\n    presentation={recordDetail!.header}\n    loading={recordDetail!.loading}\n    actions={recordDetail?.actions}\n    {aboveTitleSnippet}\n    {belowTitleSnippet}\n    {helpModalTextId}\n    {helpModalContext}\n    {helpModalFallback}\n    {helpModalTooltip}\n    {...controls}\n  />\n{/snippet}\n\n{#snippet recordNavigation(tools: Snippet)}\n  {#snippet navigationTools()}\n    {#if fullscreenEnabled}<FullscreenToggle {locationStore} />{/if}\n    {@render tools()}\n  {/snippet}\n  {#if showTabs}\n    <div\n      class=\"app-page__tab-rail\"\n      class:with-local-navigation={showLocalNavigation}\n      role=\"group\"\n      aria-label=\"Seitenansichten\"\n    >\n      <PageNavigation\n        compact\n        config={isFullscreen ? [] : tabConfig}\n        {locationStore}\n        activeIndex={activeTabIndex}\n        testId={testId ? `${testId}.tabs` : undefined}\n        tools={navigationTools}\n      />\n    </div>\n  {:else}\n    <div class=\"app-page__record-tools\" aria-label=\"Detailwerkzeuge\"\n      >{@render navigationTools()}</div\n    >\n  {/if}\n{/snippet}\n\n{#if appFrame}\n  {#if detail}\n    {@render detail()}\n  {:else}\n    <section\n      class=\"app-page\"\n      class:app-page--fullscreen={isFullscreen}\n      class:app-page--record={Boolean(recordDetail)}\n    >\n      {#if recordDetail}\n        {#key recordDetail.key}\n          <RecordDetailLayout\n            panel={$contextPanel}\n            header={recordHeader}\n            navigation={recordNavigation}\n            fullscreen={isFullscreen}\n          >\n            {@render appBody()}\n          </RecordDetailLayout>\n        {/key}\n      {:else}\n        <div class=\"app-page__head\">\n          {#if !isFullscreen && (appTitle || subtitle || buttonSnippet || aboveTitleSnippet || belowTitleSnippet)}\n            <div class=\"app-page__title\">\n              <PageTitle\n                compact\n                title={appTitle}\n                {subtitle}\n                {aboveTitleSnippet}\n                {belowTitleSnippet}\n                {buttonSnippet}\n                {helpModalTextId}\n                {helpModalContext}\n                {helpModalFallback}\n                {helpModalTooltip}\n              />\n            </div>\n          {/if}\n          {#if fullscreenEnabled}<div class=\"app-page__fullscreen\"\n              ><FullscreenToggle {locationStore} /></div\n            >{/if}\n          {#if showTabs && !isFullscreen}\n            <div\n              class=\"app-page__tab-rail\"\n              class:with-local-navigation={showLocalNavigation}\n              role=\"group\"\n              aria-label=\"Seitenansichten\"\n            >\n              <PageNavigation\n                compact\n                config={tabConfig}\n                {locationStore}\n                activeIndex={activeTabIndex}\n                testId={testId ? `${testId}.tabs` : undefined}\n              />\n            </div>\n          {/if}\n        </div>\n        {@render appBody()}\n      {/if}\n    </section>\n  {/if}\n{:else}\n  {#if !isFullscreen}\n    <PageTitle\n      {title}\n      {subtitle}\n      link={gobackLink}\n      {aboveTitleSnippet}\n      {belowTitleSnippet}\n      {buttonSnippet}\n      {helpModalTextId}\n      {helpModalContext}\n      {helpModalFallback}\n      {helpModalTooltip}\n    />\n  {/if}\n\n  {#if fullscreenEnabled}\n    <div class=\"page-template__actions\" class:fullscreen={isFullscreen}>\n      <div class=\"page-template__actions--inner\">\n        <FullscreenToggle {locationStore} />\n      </div>\n    </div>\n  {/if}\n\n  {#if !isFullscreen}\n    {#if showTabs}\n      <PageNavigation\n        config={tabConfig}\n        {locationStore}\n        activeIndex={activeTabIndex}\n        testId={testId ? `${testId}.tabs` : undefined}\n      />\n    {:else}\n      <div\n        class=\"page-template__tab-spacer\"\n        aria-hidden=\"true\"\n        data-testid={testId ? `${testId}.tabRail` : undefined}\n      ></div>\n    {/if}\n  {/if}\n\n  {#if activeContent}\n    <CrinkledSection\n      brightBackground={true}\n      hideCrinkle={true}\n      maxWidthAndCentered={true}\n      class={`page-template__section${isFullscreen ? \" fullscreen\" : \"\"}`.trim()}\n    >\n      {#snippet contentSnippet()}\n        <div\n          class=\"page-template__layout\"\n          class:fullscreen={isFullscreen}\n          class:collapsed={navCollapsed && !hidePrimaryNavigation}\n          class:noPrimaryNavigation={hidePrimaryNavigation}\n          data-testid={testId ? `${testId}.layout` : undefined}\n        >\n          {#if !isFullscreen && !hidePrimaryNavigation}\n            <aside\n              class=\"page-template__primary\"\n              class:collapsed={navCollapsed}\n              data-testid={testId ? `${testId}.primaryNav` : undefined}\n            >\n              <ul\n                bind:this={primaryNavRoot}\n                class=\"nav\"\n                class:collapsed={navCollapsed}\n                data-testid={testId ? `${testId}.primaryNav.list` : undefined}\n              >\n                <li class=\"nav__toggle\" class:collapsed={navCollapsed}>\n                  <button\n                    type=\"button\"\n                    onclick={toggleNavigation}\n                    aria-expanded={!navCollapsed}\n                    aria-label={navToggleLabel}\n                    data-testid={testId ? `${testId}.primaryNav.toggle` : undefined}\n                  >\n                    <span class=\"icon\">\n                      <Icon path={navChevronIcon} />\n                    </span>\n                    <span class=\"label\">{navToggleButtonLabel}</span>\n                  </button>\n                </li>\n                {#each normalizedPages as page, index (page.id ?? page.path)}\n                  <li class:active={index === activePageIndex}>\n                    <a\n                      href={primaryHref(page, index)}\n                      use:spaLink\n                      onclick={(event) => handlePrimaryClick(event, page, index)}\n                      aria-current={index === activePageIndex ? \"page\" : undefined}\n                      use:tooltip={primaryNavOverflow[index] ? { content: page.title } : false}\n                      data-testid={page.testId ?? (testId ? `${testId}.page.${index}` : undefined)}\n                    >\n                      {#if page.icon}\n                        <span class=\"icon\">\n                          <Icon path={page.icon} />\n                        </span>\n                      {/if}\n                      <span class=\"label\">{page.title}</span>\n                      {#if index === activePageIndex && page.tooltip}\n                        <span\n                          style=\"padding-right: 0.5rem; margin-bottom: -2px;\"\n                          use:tooltip={{ content: page.tooltip }}\n                        >\n                          <Icon path={mdiInformation} />\n                        </span>\n                      {/if}\n                    </a>\n                  </li>\n                {/each}\n              </ul>\n            </aside>\n          {/if}\n          <div class=\"page-template__panel\" class:fullscreen={isFullscreen}>\n            <div\n              class=\"page-template__content\"\n              class:fullscreen={isFullscreen}\n              class:small={!isFullscreen && activeWidthType === \"small\"}\n              class:large={!isFullscreen && activeWidthType === \"large\"}\n              data-testid={activeContentTestId || undefined}\n            >\n              {@render pageContent()}\n            </div>\n          </div>\n        </div>\n      {/snippet}\n    </CrinkledSection>\n  {/if}\n{/if}\n\n<style lang=\"less\">\n  @import (reference) \"../../../../theme/tokens.less\";\n  .app-page {\n    --kw-app-content-inset: 24px;\n    --kw-app-local-nav-width: 192px;\n    --kw-app-local-nav-offset: calc(var(--kw-app-local-nav-width) + var(--kw-app-content-inset));\n    padding: 0 0 24px;\n    width: 100%;\n    box-sizing: border-box;\n    min-width: 0;\n    background: #fff;\n  }\n  .app-page__layout {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr);\n    gap: 24px;\n    padding-inline: var(--kw-app-content-inset);\n  }\n  .app-page__head {\n    background: var(--bg-100, #0d0c0c);\n  }\n  .app-page__title {\n    padding-inline: var(--kw-app-content-inset);\n  }\n  .app-page__record-tools {\n    display: flex;\n    justify-content: flex-end;\n    align-items: center;\n    min-height: 40px;\n    padding-inline: var(--kw-app-content-inset);\n    background: var(\n      --kw-app-rail-background,\n      color-mix(in srgb, var(--bg-100, #0d0c0c) 93%, white)\n    );\n    color: #fff;\n  }\n  .app-page__layout.with-local-navigation {\n    grid-template-columns: var(--kw-app-local-nav-width) minmax(0, 1fr);\n  }\n  .app-page__tab-rail.with-local-navigation {\n    --kw-tab-rail-inset-start: calc(var(--kw-app-local-nav-offset) + var(--kw-app-content-inset));\n  }\n  .app-page__panel {\n    min-width: 0;\n  }\n  .app-page__body {\n    padding-top: 16px;\n    min-width: 0;\n  }\n  .app-page__body.small {\n    max-width: 1120px;\n    margin-inline: auto;\n  }\n  .app-page.app-page--record {\n    height: 100%;\n    min-height: 0;\n    padding: 0;\n  }\n  .app-page--record .app-page__layout {\n    height: 100%;\n    min-height: 0;\n    grid-template-rows: minmax(0, 1fr);\n    padding-inline: 0;\n    gap: 0;\n    overflow: hidden;\n  }\n  .app-page--record .app-page__layout.with-local-navigation {\n    grid-template-columns: var(--kw-app-local-nav-offset) minmax(0, 1fr);\n  }\n  .app-page--record .app-page__panel {\n    min-height: 0;\n    overflow: auto;\n    overscroll-behavior: contain;\n  }\n  .app-page--record .app-page__body {\n    min-height: 100%;\n    box-sizing: border-box;\n    padding: 16px var(--kw-app-content-inset) var(--kw-app-content-inset);\n  }\n  .app-page--record .app-page__body.small {\n    max-width: calc(1120px + 2 * var(--kw-app-content-inset));\n  }\n  .app-page--record .app-page__local {\n    min-height: 0;\n    padding-left: var(--kw-app-content-inset);\n    overflow: auto;\n    overscroll-behavior: contain;\n  }\n  .app-page__local {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    padding: 8px 0;\n  }\n  .app-page__local a {\n    display: flex;\n    gap: 8px;\n    align-items: center;\n    padding: 10px 12px;\n    color: var(--text-invers-100);\n    text-decoration: none;\n    font-size: 14px;\n    overflow-wrap: anywhere;\n  }\n  .app-page__local a[aria-current=\"page\"] {\n    background: #f0f3f4;\n    box-shadow: inset 3px 0 var(--primary-100);\n    font-weight: 600;\n  }\n  .app-page__fullscreen {\n    display: flex;\n    justify-content: flex-end;\n    padding: 8px var(--kw-app-content-inset);\n  }\n  .app-page--fullscreen {\n    padding: 0;\n  }\n  @media (max-width: 1023px) {\n    .app-page__tab-rail.with-local-navigation {\n      --kw-tab-rail-inset-start: var(--kw-app-content-inset);\n    }\n    .app-page--record .app-page__layout.with-local-navigation {\n      grid-template-columns: minmax(0, 1fr);\n      grid-template-rows: auto minmax(0, 1fr);\n    }\n    .app-page--record .app-page__local {\n      max-height: 25dvh;\n      padding-inline: var(--kw-app-content-inset);\n    }\n    .app-page__layout.with-local-navigation {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 0;\n    }\n    .app-page__local {\n      flex-direction: row;\n      flex-wrap: wrap;\n      border-bottom: 1px solid #dfe4e7;\n    }\n  }\n  @media (max-width: 767px) {\n    .app-page {\n      --kw-app-content-inset: 16px;\n      padding: 0 0 16px;\n    }\n  }\n  .page-template__tab-spacer {\n    position: sticky;\n    top: 107px;\n    height: 3.6rem;\n    background-color: var(--bg-100);\n    border-bottom: 1px solid var(--bg-100);\n    width: 100%;\n    z-index: 9997;\n\n    @media @max-mobile {\n      top: 76px;\n    }\n  }\n  :global .page-template__actions {\n    display: flex;\n    gap: 0.75rem;\n    align-items: flex-end;\n    justify-content: center;\n    flex-wrap: wrap;\n\n    width: 100%;\n\n    &.fullscreen {\n      position: fixed;\n      top: 0.6rem;\n      left: 0;\n      right: 0;\n      z-index: 9999;\n      * {\n        color: var(--text-invers-100) !important;\n      }\n    }\n\n    &--inner {\n      display: flex;\n      gap: 0.75rem;\n      width: 100%;\n      justify-content: flex-end;\n      max-width: var(--normal-max-width);\n      align-items: center;\n    }\n  }\n\n  :global(.page-template__actions.fullscreen .page-template__actions--inner) {\n    max-width: none;\n    padding-right: 0.8rem;\n    padding-left: 0.8rem;\n  }\n  .page-template__layout {\n    --nav-expanded-width: minmax(280px, 300px);\n    --nav-collapsed-width: 2.4rem;\n    --nav-width: var(--nav-expanded-width);\n\n    display: grid;\n    grid-template-columns: var(--nav-width) 1fr;\n    gap: 1.6rem;\n    align-items: flex-start;\n    width: 100%;\n    transition:\n      grid-template-columns 180ms ease,\n      gap 180ms ease;\n\n    &.fullscreen {\n      grid-template-columns: 1fr;\n      min-height: 100%;\n      padding-top: 1.2rem;\n    }\n\n    &.collapsed {\n      --nav-width: var(--nav-collapsed-width);\n      gap: 1.2rem;\n    }\n\n    &.noPrimaryNavigation {\n      grid-template-columns: 1fr;\n      gap: 0;\n    }\n  }\n\n  .page-template__primary {\n    position: sticky;\n    top: calc(107px + 2.4rem + 3.6rem);\n    align-self: start;\n    transition:\n      width 180ms ease,\n      min-width 180ms ease,\n      max-width 180ms ease;\n\n    &.collapsed {\n      width: var(--nav-collapsed-width);\n      min-width: var(--nav-collapsed-width);\n      max-width: var(--nav-collapsed-width);\n    }\n  }\n\n  .page-template__panel {\n    width: 100%;\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n\n    &.fullscreen {\n      gap: 0.5rem;\n      flex: 1;\n    }\n  }\n\n  .page-template__content {\n    --kw-page-sticky-header-top: calc(107px + 3.6rem);\n\n    width: 100%;\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n\n    &.small {\n      max-width: 1120px;\n      margin: 0 auto;\n    }\n\n    &.large {\n      max-width: var(--normal-max-width);\n      margin: 0 auto;\n    }\n\n    &.fullscreen {\n      --kw-page-sticky-header-top: 0px;\n\n      flex: 1;\n    }\n\n    @media @max-mobile {\n      --kw-page-sticky-header-top: calc(76px + 3.6rem);\n\n      &.fullscreen {\n        --kw-page-sticky-header-top: 0px;\n      }\n    }\n  }\n\n  .nav {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    min-width: 280px;\n    max-width: 300px;\n    width: 100%;\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    transition:\n      width 180ms ease,\n      min-width 180ms ease,\n      max-width 180ms ease,\n      gap 160ms ease;\n\n    &.collapsed {\n      min-width: var(--nav-collapsed-width);\n      max-width: var(--nav-collapsed-width);\n      width: var(--nav-collapsed-width);\n      gap: 0.5rem;\n    }\n\n    @media @mobile {\n      min-width: 100%;\n      max-width: 100%;\n    }\n\n    li {\n      border-radius: 2px;\n      border: 1px solid var(--bg-100);\n      display: flex;\n      align-items: center;\n      background-color: var(--neutral-white);\n      overflow: hidden;\n      transition:\n        background-color 140ms ease,\n        border-color 140ms ease;\n\n      a,\n      button {\n        display: flex;\n        width: 100%;\n        height: 100%;\n        padding: 0.6rem 1.2rem;\n        align-items: center;\n        overflow: hidden;\n        gap: 1.2rem;\n        color: var(--bg-100);\n        text-decoration: none;\n        font: inherit;\n        font-weight: 700;\n        background: transparent;\n        border: none;\n        text-align: left;\n        cursor: pointer;\n\n        .icon {\n          display: inline-flex;\n          align-items: center;\n          justify-content: center;\n          min-height: 1.2rem;\n          min-width: 1.2rem;\n          height: 1.2rem;\n          width: 1.2rem;\n\n          :global(svg) {\n            width: 100%;\n            height: 100%;\n          }\n        }\n\n        .label {\n          flex: 1 1 auto;\n          min-width: 0;\n          overflow: hidden;\n          white-space: nowrap;\n          text-overflow: ellipsis;\n          padding-right: 0.6rem;\n          transition:\n            opacity 140ms ease,\n            max-width 140ms ease,\n            margin 140ms ease;\n        }\n      }\n\n      &.active {\n        background: var(--bg-100);\n\n        a,\n        button {\n          color: var(--neutral-white);\n        }\n      }\n\n      &.nav__toggle button {\n        font-weight: 600;\n      }\n    }\n\n    &.collapsed {\n      li {\n        justify-content: center;\n      }\n\n      a,\n      button {\n        justify-content: center;\n        padding: 0.6rem;\n        gap: 0;\n      }\n\n      .label {\n        opacity: 0;\n        max-width: 0;\n        margin: 0;\n        overflow: hidden;\n      }\n    }\n  }\n\n  @media @mobile {\n    .page-template__layout {\n      grid-template-columns: 1fr;\n      gap: 1rem;\n      &.collapsed {\n        grid-template-columns: 1fr;\n      }\n      /* gesamte Seiten-Navigation auf Mobile ausblenden, Tabs bleiben */\n      .page-template__primary {\n        display: none;\n      }\n    }\n\n    .nav {\n      min-width: 100%;\n      max-width: 100%;\n      width: 100%;\n\n      &.collapsed {\n        min-width: 100%;\n        max-width: 100%;\n        width: 100%;\n        gap: 10px;\n\n        a,\n        button {\n          justify-content: flex-start;\n          padding: 0.6rem 1.2rem;\n          gap: 1.2rem;\n        }\n\n        .label {\n          opacity: 1;\n          max-width: none;\n        }\n      }\n    }\n  }\n\n  :global(.page-template__section.fullscreen .kw-crinkled-section__wrapper) {\n    height: 100dvh;\n    min-height: 100dvh;\n    max-height: 100dvh;\n    display: flex;\n    overflow: hidden;\n    padding-top: 1.2rem;\n    padding-bottom: 1.2rem;\n  }\n\n  :global(.page-template__section.fullscreen .kw-crinkled-section__wrapper-content) {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import { mdiChevronDown, mdiDotsHorizontal } from \"@mdi/js\"\n  import type { AppUtilityNavigationItem } from \"../../../../core/navigation/appFrame\"\n  import { spaLink } from \"../../../../core/routing/navigation\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import Popover from \"../../../overlay/_modules/popover/index\"\n\n  let {\n    items,\n    activePageId,\n    compact = false,\n    label = \"Arbeitsbereich-Funktionen\",\n    onActivate,\n  }: {\n    items: AppUtilityNavigationItem[]\n    activePageId?: string\n    compact?: boolean\n    label?: string\n    onActivate?: () => void\n  } = $props()\n\n  type UtilityDestination = Exclude<AppUtilityNavigationItem, { items: unknown }>\n\n  function activate(item: UtilityDestination) {\n    onActivate?.()\n\n    if (!(\"href\" in item)) {\n      item.onClick()\n    }\n  }\n\n  function closeGroupOnEscape(event: KeyboardEvent) {\n    if (event.key !== \"Escape\") return\n\n    const group = (event.currentTarget as HTMLElement).closest(\"details\")\n\n    if (!group) return\n\n    event.preventDefault()\n    group.open = false\n    group.querySelector(\"summary\")?.focus()\n  }\n</script>\n\n{#snippet destination(item: UtilityDestination)}\n  {#if \"href\" in item}\n    <a\n      use:spaLink\n      href={item.href}\n      target={item.target}\n      rel={item.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n      aria-current={item.id === activePageId ? \"page\" : undefined}\n      title={compact ? item.title : undefined}\n      onclick={() => onActivate?.()}\n      onkeydown={closeGroupOnEscape}\n    >\n      <Icon path={item.icon ?? mdiDotsHorizontal} size=\"1.25rem\" />\n      <span class:visually-hidden={compact}>{item.title}</span>\n    </a>\n  {:else}\n    <button\n      type=\"button\"\n      title={compact ? item.title : undefined}\n      onclick={() => activate(item)}\n      onkeydown={closeGroupOnEscape}\n    >\n      <Icon path={item.icon ?? mdiDotsHorizontal} size=\"1.25rem\" />\n      <span class:visually-hidden={compact}>{item.title}</span>\n    </button>\n  {/if}\n{/snippet}\n\n<nav aria-label={label} class:compact>\n  {#each items as item (item.id)}\n    {#if \"items\" in item}\n      {#if item.items.length}\n        {#if compact}\n          <div class=\"compact-group\">\n            <Popover\n              label={item.title}\n              placement=\"right-end\"\n              items={item.items.map((child) => ({\n                id: child.id,\n                label: child.title,\n                icon: child.icon ?? undefined,\n                ...(\"href\" in child\n                  ? { href: child.href, target: child.target, onClick: () => onActivate?.() }\n                  : { onClick: () => activate(child) }),\n              }))}\n            >\n              {#snippet triggerContent()}\n                <Icon path={item.icon ?? mdiDotsHorizontal} size=\"1.25rem\" />\n              {/snippet}\n            </Popover>\n          </div>\n        {:else}\n          <details>\n            <summary onkeydown={closeGroupOnEscape}>\n              <Icon path={item.icon ?? mdiDotsHorizontal} size=\"1.25rem\" />\n              <span>{item.title}</span>\n              <span class=\"chevron\"><Icon path={mdiChevronDown} size=\"1rem\" /></span>\n            </summary>\n            <div class=\"group-items\">\n              {#each item.items as child (child.id)}{@render destination(child)}{/each}\n            </div>\n          </details>\n        {/if}\n      {/if}\n    {:else}\n      {@render destination(item)}\n    {/if}\n  {/each}\n</nav>\n\n<style>\n  nav {\n    padding: 0 8px;\n    color: #eee;\n  }\n  a,\n  button,\n  summary {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    width: 100%;\n    min-height: 44px;\n    padding: 8px 12px;\n    box-sizing: border-box;\n    border: 0;\n    background: transparent;\n    color: inherit;\n    font: inherit;\n    font-size: 14px;\n    text-align: left;\n    text-decoration: none;\n    cursor: pointer;\n    position: relative;\n  }\n  a > :global(svg),\n  button > :global(svg),\n  summary > :global(svg) {\n    flex-shrink: 0;\n  }\n  span {\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  summary {\n    list-style: none;\n  }\n  summary::-webkit-details-marker {\n    display: none;\n  }\n  .chevron {\n    margin-left: auto;\n    display: flex;\n    flex-shrink: 0;\n  }\n  details[open] .chevron {\n    transform: rotate(180deg);\n  }\n  .group-items {\n    padding-left: 12px;\n  }\n  a[aria-current=\"page\"] {\n    background: var(\n      --kw-app-rail-background,\n      color-mix(in srgb, var(--bg-100, #0d0c0c) 93%, white)\n    );\n    box-shadow: inset 3px 0 var(--primary-100, #00b95f);\n  }\n  a[aria-current=\"page\"]::after {\n    content: \"\";\n    position: absolute;\n    right: 0;\n    top: 0;\n    border-top: 10px solid var(--bg-100, #0d0c0c);\n    border-left: 10px solid transparent;\n  }\n  a:hover,\n  button:hover,\n  summary:hover {\n    background: #ffffff12;\n  }\n  a:focus-visible,\n  button:focus-visible,\n  summary:focus-visible {\n    outline: 2px solid var(--primary-100, #00b95f);\n    outline-offset: -2px;\n  }\n  .compact a,\n  .compact button {\n    justify-content: center;\n    padding: 8px;\n  }\n  .compact-group :global(.kw-popover-trigger) {\n    width: 100%;\n    min-height: 44px;\n  }\n  .visually-hidden {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { provideAppNavigationScope } from \"../../../../core/navigation/appFrame\"\n\n  let {\n    compact,\n    onActivate,\n    children,\n  }: { compact: boolean; onActivate: () => void; children: Snippet } = $props()\n\n  provideAppNavigationScope({\n    get compact() {\n      return compact\n    },\n    onActivate: () => onActivate(),\n  })\n</script>\n\n{@render children()}\n","<script lang=\"ts\">\n  import { onMount, untrack, type Snippet } from \"svelte\"\n  import { mdiMenu, mdiDockLeft, mdiChevronRight, mdiClose } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { readNavigationCollapsed, writeNavigationCollapsed } from \"../page-template/index\"\n  import AppUtilityNavigation from \"../../../navigation/_modules/app-utility-navigation/index\"\n  import AppNavigationScope from \"../../../navigation/_modules/app-navigation-scope/index\"\n  import { createAppFrameContext, provideAppFrame } from \"../../../../core/navigation/appFrame\"\n  import { spaLink, location } from \"../../../../core/routing/navigation\"\n  import { fullscreenMode } from \"../../../../core/runtime/fullscreen\"\n\n  let {\n    workspaceKey,\n    showWorkspaceTitle = true,\n    brand,\n    actions,\n    footer,\n    detail,\n    children,\n  }: {\n    workspaceKey: string\n    showWorkspaceTitle?: boolean\n    brand?: Snippet\n    actions?: Snippet\n    footer?: Snippet\n    detail?: Snippet\n    children: Snippet\n  } = $props()\n  const frame = provideAppFrame(createAppFrameContext(() => detail))\n  const workspace = frame.workspace\n  const page = frame.page\n  const subview = frame.subview\n  const activePageId = $derived($subview?.parentPageId ?? $page?.activePageId)\n  const utilityItems = $derived(\n    ($workspace?.footerItems ?? []).filter((item) => item.placement !== \"bottom\"),\n  )\n  const bottomItems = $derived(\n    ($workspace?.footerItems ?? []).filter((item) => item.placement === \"bottom\"),\n  )\n  let collapsed = $state(false)\n  let drawer: HTMLDialogElement | undefined = $state()\n  let drawerTrigger: HTMLButtonElement | undefined = $state()\n  let drawerOpen = $state(false)\n  let topbar: HTMLDivElement | undefined = $state()\n  let topbarHeight = $state(56)\n  const breadcrumbs = $derived.by(() => {\n    const crumbs =\n      $page?.breadcrumbs ??\n      ($subview?.parentTabTitle\n        ? [{ title: $subview.parentTabTitle, href: $subview.parentHref }]\n        : [])\n    const footerLinks = ($workspace?.footerItems ?? []).flatMap((item) =>\n      \"items\" in item\n        ? item.items.filter((child) => \"href\" in child)\n        : \"href\" in item\n          ? [item]\n          : [],\n    )\n    const parent = [...($workspace?.items ?? []), ...footerLinks].find(\n      (item) => item.id === activePageId,\n    )\n\n    return parent && crumbs[0]?.title !== parent.title\n      ? [{ title: parent.title, href: parent.href }, ...crumbs]\n      : crumbs\n  })\n  onMount(() => {\n    collapsed = readNavigationCollapsed(\"app\")\n  })\n\n  $effect(() => {\n    if (!topbar || typeof ResizeObserver === \"undefined\") return\n\n    const element = topbar\n    const observer = new ResizeObserver(() => {\n      topbarHeight = element.getBoundingClientRect().height\n    })\n    observer.observe(element)\n\n    return () => observer.disconnect()\n  })\n\n  function toggleCollapsed() {\n    collapsed = !collapsed\n    writeNavigationCollapsed(\"app\", collapsed)\n  }\n  function closeDrawer() {\n    drawer?.close()\n    drawerOpen = false\n    drawerTrigger?.focus()\n  }\n  function openDrawer() {\n    drawer?.showModal()\n    drawerOpen = true\n  }\n  $effect(() => {\n    $location.path\n    $location.search\n    untrack(() => {\n      if (drawerOpen) closeDrawer()\n    })\n  })\n</script>\n\n{#snippet navigation(compact: boolean, inDrawer = false)}\n  <div class=\"app-frame__sidebar-header\" class:compact>\n    {#if !compact}<div class=\"app-frame__brand\">{@render brand?.()}</div>{/if}\n    <button\n      class=\"app-frame__collapse\"\n      type=\"button\"\n      onclick={inDrawer ? closeDrawer : toggleCollapsed}\n      aria-label={inDrawer\n        ? \"Navigation schließen\"\n        : compact\n          ? \"Navigation ausklappen\"\n          : \"Navigation einklappen\"}\n      title={inDrawer\n        ? \"Navigation schließen\"\n        : compact\n          ? \"Navigation ausklappen\"\n          : \"Navigation einklappen\"}\n      aria-expanded={inDrawer ? undefined : !compact}\n    >\n      <Icon path={inDrawer ? mdiClose : mdiDockLeft} size=\"1.25rem\" />\n    </button>\n  </div>\n  {#if !compact && showWorkspaceTitle}<div class=\"app-frame__workspace\"\n      >{$workspace?.title ?? \"\"}</div\n    >{/if}\n  <nav aria-label=\"Hauptnavigation\" class=\"app-frame__primary-navigation\" class:compact>\n    {#each $workspace?.items ?? [] as item (item.id)}\n      <a\n        use:spaLink\n        href={item.href}\n        aria-current={activePageId === item.id ? \"page\" : undefined}\n        title={compact ? item.title : undefined}\n      >\n        {#if item.icon}<Icon path={item.icon} size=\"1.25rem\" />{/if}\n        <span class:visually-hidden={compact}>{item.title}</span>\n      </a>\n    {/each}\n  </nav>\n  <div class=\"app-frame__utilities\">\n    {#if utilityItems.length}\n      <hr class=\"app-frame__separator\" aria-hidden=\"true\" />\n      <AppUtilityNavigation\n        items={utilityItems}\n        {activePageId}\n        {compact}\n        onActivate={() => {\n          if (drawerOpen) closeDrawer()\n        }}\n      />\n    {/if}\n    {#if bottomItems.length || footer}\n      <section class=\"app-frame__other\" aria-label=\"Sonstige\">\n        {#if !compact}<h2>Sonstige</h2>{/if}\n        {#if bottomItems.length}\n          <AppUtilityNavigation\n            items={bottomItems}\n            label=\"Sonstige Funktionen\"\n            {activePageId}\n            {compact}\n            onActivate={() => {\n              if (drawerOpen) closeDrawer()\n            }}\n          />\n        {/if}\n        <AppNavigationScope\n          {compact}\n          onActivate={() => {\n            if (drawerOpen) closeDrawer()\n          }}\n        >\n          <div class=\"app-frame__footer\">{@render footer?.()}</div>\n        </AppNavigationScope>\n      </section>\n    {/if}\n  </div>\n{/snippet}\n\n<div\n  class=\"app-frame\"\n  class:collapsed\n  class:fullscreen={$fullscreenMode}\n  class:record-page={$page?.contentLayout === \"record\"}\n  data-workspace={workspaceKey}\n  data-content-layout={$page?.contentLayout ?? \"flow\"}\n  style:--app-header-height={`${topbarHeight}px`}\n  style:--kw-page-sticky-header-top={$fullscreenMode ? \"0px\" : `${topbarHeight}px`}\n>\n  {#if !$fullscreenMode}\n    <aside class=\"app-frame__sidebar\">\n      {@render navigation(collapsed)}\n    </aside>\n    <dialog\n      bind:this={drawer}\n      class=\"app-frame__drawer\"\n      onclose={() => {\n        drawerOpen = false\n        drawerTrigger?.focus()\n      }}\n    >\n      {@render navigation(false, true)}\n    </dialog>\n  {/if}\n  <div class=\"app-frame__main\">\n    {#if !$fullscreenMode}\n      <div bind:this={topbar} class=\"app-frame__topbar\">\n        <button\n          bind:this={drawerTrigger}\n          class=\"app-frame__menu\"\n          type=\"button\"\n          aria-label=\"Navigation öffnen\"\n          aria-expanded={drawerOpen}\n          onclick={openDrawer}><Icon path={mdiMenu} /></button\n        >\n        <nav class=\"app-frame__breadcrumbs\" aria-label=\"Brotkrumennavigation\">\n          <ol\n            >{#each breadcrumbs as crumb, index (index)}\n              <li\n                >{#if index > 0}<Icon path={mdiChevronRight} size=\"1rem\" />{/if}\n                {#if crumb.href}<a use:spaLink href={crumb.href}>{crumb.title}</a>{:else}<span\n                    aria-current={index === breadcrumbs.length - 1 ? \"page\" : undefined}\n                    >{crumb.title}</span\n                  >{/if}\n              </li>\n            {/each}</ol\n          >\n        </nav>\n        <div class=\"app-frame__account\">{@render actions?.()}</div>\n      </div>\n    {/if}\n    <main class=\"app-frame__content\">\n      {@render children()}\n    </main>\n  </div>\n</div>\n\n<style>\n  .app-frame {\n    --app-nav-width: 248px;\n    /* Shared by the selected navigation entry and the tab rail. */\n    --kw-app-rail-background: color-mix(in srgb, var(--bg-100, #0d0c0c) 93%, white);\n    --kw-page-sticky-header-top: 56px;\n    --kw-app-content-inset: 24px;\n    display: grid;\n    grid-template-columns: var(--app-nav-width) minmax(0, 1fr);\n    min-height: 100dvh;\n    background: #fff;\n    color: var(--text-invers-100, #263840);\n    color-scheme: light;\n    letter-spacing: 0;\n  }\n  .app-frame.collapsed {\n    --app-nav-width: 64px;\n  }\n  .app-frame.record-page {\n    height: 100dvh;\n    min-height: 0;\n    overflow: hidden;\n  }\n  .record-page .app-frame__main {\n    display: flex;\n    flex-direction: column;\n    min-height: 0;\n  }\n  .record-page .app-frame__topbar {\n    flex-shrink: 0;\n  }\n  .record-page main.app-frame__content {\n    flex: 1;\n    min-height: 0;\n    overflow: hidden;\n  }\n  .app-frame.fullscreen {\n    grid-template-columns: minmax(0, 1fr);\n    --kw-page-sticky-header-top: 0px;\n  }\n  .app-frame__sidebar {\n    position: sticky;\n    top: 0;\n    height: 100dvh;\n    display: flex;\n    flex-direction: column;\n    overflow-y: auto;\n    background: var(--bg-100, #0d0c0c);\n    color: #fff;\n  }\n  .app-frame__sidebar-header {\n    box-sizing: border-box;\n    height: var(--app-header-height, 56px);\n    flex: 0 0 var(--app-header-height, 56px);\n    padding: 0 8px 0 16px;\n    border-bottom: 1px solid #ffffff30;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    min-width: 0;\n  }\n  .app-frame__sidebar-header.compact {\n    padding-inline: 8px;\n    justify-content: center;\n  }\n  .app-frame__brand {\n    flex: 1;\n    min-width: 0;\n    height: 32px;\n    display: flex;\n    align-items: center;\n    overflow: hidden;\n  }\n  .app-frame__brand :global(a) {\n    display: flex;\n    width: 100%;\n    height: 100%;\n    align-items: center;\n    min-width: 0;\n  }\n  .app-frame__brand :global(img) {\n    display: block;\n    width: auto;\n    max-width: 100%;\n    height: auto;\n    max-height: 32px;\n    object-fit: contain;\n  }\n  .app-frame__workspace {\n    padding: 8px 16px 20px;\n    font-weight: 600;\n    font-size: 14px;\n    overflow-wrap: anywhere;\n  }\n  nav a {\n    text-decoration: none;\n  }\n  .app-frame__sidebar nav,\n  .app-frame__drawer nav {\n    padding: 0 8px;\n  }\n  .app-frame__sidebar .app-frame__primary-navigation,\n  .app-frame__drawer .app-frame__primary-navigation {\n    padding-top: 6px;\n  }\n  .app-frame__sidebar nav a,\n  .app-frame__drawer nav a {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    min-height: 44px;\n    padding: 8px 12px;\n    color: #eee;\n    position: relative;\n    font-size: 14px;\n  }\n  nav a[aria-current=\"page\"] {\n    background: var(--kw-app-rail-background);\n    box-shadow: inset 3px 0 var(--primary-100, #00b95f);\n  }\n  nav a[aria-current=\"page\"]::after {\n    content: \"\";\n    position: absolute;\n    right: 0;\n    top: 0;\n    border-top: 10px solid var(--bg-100, #0d0c0c);\n    border-left: 10px solid transparent;\n  }\n  nav a:hover {\n    background-color: #ffffff12;\n  }\n  nav a span {\n    overflow-wrap: anywhere;\n  }\n  .app-frame__utilities {\n    margin-top: auto;\n    padding-top: 16px;\n  }\n  .app-frame__separator {\n    margin: 0 16px 8px;\n    border: 0;\n    border-top: 1px solid #ffffff30;\n  }\n  .app-frame__other h2 {\n    margin: 16px 20px 4px;\n    font-size: 12px;\n    font-weight: 600;\n    color: #ffffff99;\n  }\n  .app-frame__footer {\n    padding-bottom: 8px;\n  }\n  .app-frame__collapse {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 40px;\n    width: 40px;\n    height: 40px;\n    padding: 0;\n    background: none;\n    border: 0;\n    color: #fff;\n    cursor: pointer;\n  }\n  .app-frame__collapse:hover {\n    background: #ffffff12;\n  }\n  .app-frame__main {\n    min-width: 0;\n    background: #fff;\n  }\n  .app-frame__topbar {\n    box-sizing: border-box;\n    position: sticky;\n    top: 0;\n    z-index: 100;\n    min-height: 56px;\n    background: var(--bg-100, #0d0c0c);\n    color: #fff;\n    border-bottom: 1px solid #ffffff30;\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    padding: 0 var(--kw-app-content-inset);\n  }\n  .app-frame__breadcrumbs {\n    flex: 1;\n    min-width: 0;\n    padding: 8px 0;\n    font-size: 13px;\n  }\n  .app-frame__breadcrumbs ol {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n    padding: 0;\n    margin: 0;\n    list-style: none;\n  }\n  .app-frame__breadcrumbs li {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  .app-frame__breadcrumbs a {\n    color: inherit;\n  }\n  .app-frame__account {\n    flex-shrink: 0;\n  }\n  .app-frame main.app-frame__content {\n    display: block;\n    min-width: 0;\n  }\n  .app-frame__menu {\n    display: none;\n  }\n  .app-frame__drawer {\n    position: fixed;\n    inset: 0 auto 0 0;\n    margin: 0;\n    width: min(300px, 90vw);\n    height: 100dvh;\n    max-height: none;\n    padding: 12px;\n    border: 0;\n    background: var(--bg-100, #0d0c0c);\n    color: #fff;\n  }\n  .app-frame__drawer[open] {\n    display: flex;\n    flex-direction: column;\n  }\n  .app-frame__drawer::backdrop {\n    background: #0007;\n  }\n  button:focus-visible,\n  a:focus-visible {\n    outline: 2px solid var(--primary-100, #00b95f);\n    outline-offset: 2px;\n  }\n  .visually-hidden {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n  @media (max-width: 767px) {\n    .app-frame__drawer .app-frame__primary-navigation {\n      padding-top: 4px;\n    }\n    .app-frame {\n      --kw-app-content-inset: 16px;\n      grid-template-columns: minmax(0, 1fr);\n    }\n    .app-frame__sidebar {\n      display: none;\n    }\n    .app-frame__topbar {\n      padding: 0 var(--kw-app-content-inset);\n    }\n    .app-frame__menu {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex-shrink: 0;\n      width: 36px;\n      height: 44px;\n      border: 0;\n      background: none;\n      color: inherit;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n\n  let {\n    smallVersion = false,\n    small = false,\n    tag = \"\",\n    color = \"blue\",\n    icon = \"\",\n    tooltipContent = \"\",\n    tooltipClassName = \"\",\n    variant = \"solid\",\n  }: {\n    smallVersion?: boolean\n    small?: boolean\n    tag?: string\n    color?: \"blue\" | \"red\" | \"neutral\" | \"green\" | \"teal\" | \"yellow\" | \"orange\" | \"purple\"\n    icon?: string\n    tooltipContent?: string\n    tooltipClassName?: string\n    variant?: \"solid\" | \"soft\"\n  } = $props()\n\n  const isSmall = $derived(Boolean(smallVersion || small))\n  const tooltipData = $derived(\n    tooltipContent?.trim() ? { content: tooltipContent, className: tooltipClassName } : false,\n  )\n</script>\n\n<span\n  class=\"color-{color}\"\n  class:smallVersion={isSmall}\n  class:soft={variant === \"soft\"}\n  class:has-tooltip={Boolean(tooltipData)}\n  use:tooltip={tooltipData}\n>\n  <em>\n    {tag}\n  </em>\n  {#if icon}\n    <span class=\"tag-icon\" aria-hidden=\"true\">\n      <Icon path={icon} size={isSmall ? \"0.82rem\" : \"1rem\"} color=\"currentColor\" />\n    </span>\n  {/if}\n</span>\n\n<style lang=\"less\">\n  span {\n    --kw-tag-bg: var(--primary-100);\n    --kw-tag-fg: white;\n    --kw-tag-fill: var(--kw-tag-bg);\n    --kw-tag-soft-accent: var(--kw-tag-bg);\n    --kw-tag-soft-fg: color-mix(in srgb, var(--kw-tag-soft-accent) 42%, var(--text-100));\n    --kw-tag-crinkle-width: 9px;\n    --kw-tag-crinkle-outset: 7px;\n\n    background-color: var(--kw-tag-bg);\n    border: 1px solid transparent;\n    padding: 6px 12px;\n    display: flex;\n    flex-direction: row;\n    height: fit-content;\n    gap: 0.5rem;\n    position: relative;\n    font-size: 20px;\n\n    &.has-tooltip {\n      cursor: help;\n    }\n\n    &.color-blue {\n      --kw-tag-bg: var(--blue-100);\n      --kw-tag-soft-accent: var(--blue-100);\n    }\n\n    &.color-neutral {\n      --kw-tag-bg: color-mix(in srgb, var(--text-100) 12%, transparent);\n      --kw-tag-fg: var(--text-100);\n      --kw-tag-soft-accent: var(--text-100);\n      --kw-tag-soft-fg: var(--text-100);\n    }\n\n    &.color-green {\n      --kw-tag-bg: var(--confirm-100);\n      --kw-tag-fg: var(--bg-100);\n      --kw-tag-soft-accent: var(--confirm-100);\n    }\n\n    &.color-teal {\n      --kw-tag-bg: var(--green-200);\n      --kw-tag-fg: var(--bg-100);\n      --kw-tag-soft-accent: var(--green-200);\n    }\n\n    &.color-yellow {\n      --kw-tag-bg: var(--yellow-100);\n      --kw-tag-fg: var(--bg-100);\n      --kw-tag-soft-accent: var(--yellow-100);\n    }\n\n    &.color-orange {\n      --kw-tag-bg: color-mix(in srgb, var(--yellow-100) 60%, var(--red-300));\n      --kw-tag-fg: var(--bg-100);\n      --kw-tag-soft-accent: color-mix(in srgb, var(--yellow-100) 60%, var(--red-300));\n    }\n\n    &.color-purple {\n      --kw-tag-bg: #6d28d9;\n      --kw-tag-soft-accent: #6d28d9;\n    }\n\n    &.soft {\n      --kw-tag-fill: color-mix(in srgb, var(--kw-tag-soft-accent) 18%, transparent);\n      background-color: color-mix(in srgb, var(--kw-tag-soft-accent) 18%, transparent);\n      border-color: color-mix(in srgb, var(--kw-tag-soft-accent) 42%, transparent);\n    }\n\n    em {\n      color: var(--kw-tag-fg);\n      font-weight: 400;\n      font-size: 1em;\n      line-height: 14px;\n      font-family: var(--font-family-regular, var(--font-family-base, \"Outfit\", sans-serif));\n      font-style: normal;\n      white-space: nowrap;\n      position: relative;\n      z-index: 1;\n    }\n\n    .tag-icon {\n      display: inline-flex;\n      align-items: center;\n      color: var(--kw-tag-fg);\n      position: relative;\n      z-index: 1;\n    }\n\n    &.soft {\n      em {\n        color: var(--kw-tag-soft-fg);\n      }\n\n      .tag-icon {\n        color: var(--kw-tag-soft-fg);\n      }\n    }\n\n    &.smallVersion {\n      padding: 4px 10px;\n      em {\n        font-size: 0.7em;\n        line-height: 9px;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import Tag from \"../../../display/_modules/tag/index\"\n\n  type ActionBoxProps = {\n    label?: string\n    tag?: string\n    tagColor?: \"blue\" | \"red\" | \"neutral\" | \"green\" | \"teal\" | \"yellow\" | \"orange\" | \"purple\"\n    tagIcon?: string\n    tagVariant?: \"solid\" | \"soft\"\n    tagTooltipContent?: string\n    tagTooltipClassName?: string\n    darkMode?: boolean\n    modeRed?: boolean\n    brightBorder?: boolean\n    children?: Snippet | null\n    buttonSnippet?: Snippet | null\n  }\n\n  let {\n    label = \"\",\n    tag = \"\",\n    tagColor = \"red\",\n    tagIcon = \"\",\n    tagVariant = \"solid\",\n    tagTooltipContent = \"\",\n    tagTooltipClassName = \"\",\n    darkMode = true,\n    modeRed = false,\n    brightBorder = false,\n    children,\n    buttonSnippet,\n  }: ActionBoxProps = $props()\n</script>\n\n<div\n  class=\"box\"\n  class:dark={darkMode}\n  class:light={!darkMode}\n  class:bright-border={brightBorder}\n  class:mode-red={modeRed}\n>\n  {#if label}\n    <span class=\"label\">{label}</span>\n  {/if}\n  {#if tag}\n    <span class=\"tag\">\n      <Tag\n        {tag}\n        color={tagColor}\n        icon={tagIcon}\n        variant={tagVariant}\n        tooltipContent={tagTooltipContent}\n        tooltipClassName={tagTooltipClassName}\n        smallVersion={true}\n      />\n    </span>\n  {/if}\n  {@render children?.()}\n  {#if buttonSnippet}\n    <div class=\"button-row\">\n      {@render buttonSnippet()}\n    </div>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .box {\n    padding: 0.6rem;\n    padding-top: 1.6rem;\n    width: 100%;\n    position: relative;\n    border: 1px solid var(--bg-100);\n    height: 100%;\n\n    .label {\n      position: absolute;\n      top: 0px;\n      padding: 4px 0.6rem;\n      left: 0px;\n      background-color: var(--bg-100);\n      color: white;\n      font-size: 0.7rem;\n      text-transform: uppercase;\n      font-weight: 700;\n    }\n    .tag {\n      position: absolute;\n      top: 0px;\n      right: 0px;\n      display: inline-flex;\n      align-items: stretch;\n    }\n    .button-row {\n      width: 100%;\n      display: flex;\n      justify-content: flex-end;\n      margin-top: 0.6rem;\n    }\n    &.light {\n      border-color: white;\n      .label {\n        background-color: white;\n        color: var(--bg-100);\n      }\n    }\n\n    &.bright-border {\n      border-color: white;\n\n      .label {\n        background-color: white;\n        color: var(--bg-100);\n      }\n    }\n\n    &.mode-red {\n      border-color: #b42318;\n      box-shadow: 0 0 0 1px color-mix(in srgb, #b42318 40%, transparent);\n\n      .label {\n        background-color: #b42318;\n        color: #fff;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import ActionBox from \"@kontextwerk/web-sdk/ui/layout/ActionBox.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import type { ContextSessionResponse } from \"@kontextwerk/control-web-client\"\n\n  let { session }: { session: ContextSessionResponse } = $props()\n  const levelLabels = { none: \"Kein Zugriff\", view: \"Ansehen\", manage: \"Verwalten\" }\n  const staffLabels = { platform_administrator: \"Plattformverwaltung\", support_agent: \"Support\" }\n</script>\n\n<section class=\"summary\" aria-label=\"Aktueller Zugang\">\n  <SectionTitle\n    title=\"Aktueller Zugang\"\n    brightBackground={true}\n    small={true}\n    styleOuter=\"margin-bottom: 1.2rem;\"\n  />\n  <ActionBox label=\"Sitzungskontext\">\n    {#snippet children()}\n      <dl>\n        <div><dt>Angemeldet als</dt><dd>{session.user.email}</dd></div>\n        {#if session.password_change_required}\n          <div><dt>Kontostatus</dt><dd>Passwortwechsel erforderlich</dd></div>\n        {:else if session.context.kind === \"platform\"}\n          <div><dt>Bereich</dt><dd>Plattform</dd></div>\n          <div><dt>Staff-Zuweisung</dt><dd>{staffLabels[session.context.role]}</dd></div>\n        {:else}\n          <div><dt>Organisation</dt><dd>{session.context.organization_name}</dd></div>\n          <div><dt>Membership</dt><dd><code>{session.context.membership_id}</code></dd></div>\n          <div><dt>Organisationsrolle</dt><dd>{session.context.role_name}</dd></div>\n          {#if session.context.delegation}\n            <div><dt>Handelnder Staff</dt><dd>{session.user.email}</dd></div>\n            <div>\n              <dt>Vertretener Nutzer</dt>\n              <dd><code>{session.context.delegation.represented_user_id}</code></dd>\n            </div>\n            <div><dt>Supportgrund</dt><dd>{session.context.delegation.reason}</dd></div>\n            <div>\n              <dt>Supportende</dt>\n              <dd>\n                <time datetime={session.context.delegation.expires_at}>\n                  {session.context.delegation.expires_at}\n                </time>\n              </dd>\n            </div>\n          {/if}\n        {/if}\n      </dl>\n    {/snippet}\n  </ActionBox>\n\n  {#if !session.password_change_required && session.context.kind === \"organization\"}\n    {@const capabilities = session.context.capabilities}\n    <div class=\"capabilities-box\">\n      <ActionBox label=\"Rollenrechte\">\n        {#snippet children()}\n          <h3 class=\"sr-only\">Rollenrechte</h3>\n          {#if capabilities.length === 0}\n            <p>Keine Rollenrechte vorhanden.</p>\n          {:else}\n            <ul aria-label=\"Rollenrechte\">\n              {#each capabilities as grant (grant.key)}\n                <li>\n                  <code>{grant.key}</code>\n                  <span>\n                    {levelLabels[grant.level]}{grant.scope\n                      ? ` / ${grant.scope === \"own\" ? \"Eigene\" : \"Alle\"}`\n                      : \"\"}\n                  </span>\n                </li>\n              {/each}\n            </ul>\n          {/if}\n        {/snippet}\n      </ActionBox>\n    </div>\n  {/if}\n</section>\n\n<style>\n  .summary {\n    min-width: 0;\n    color: var(--text-invers-100, #2f4858);\n    font-size: 0.875rem;\n  }\n  .capabilities-box {\n    margin-top: 1.2rem;\n  }\n  dl {\n    display: grid;\n    gap: 0.65rem;\n    margin: 0;\n  }\n  dl > div {\n    display: grid;\n    grid-template-columns: minmax(9rem, 1fr) minmax(0, 2fr);\n    gap: 1rem;\n    padding: 0.25rem 0;\n    border-bottom: 1px solid color-mix(in srgb, var(--grey-200, #dee2e6) 70%, transparent);\n  }\n  dl > div:last-child {\n    border-bottom: 0;\n  }\n  dt {\n    color: color-mix(in srgb, var(--text-invers-100, #2f4858) 72%, transparent);\n    font-weight: 600;\n    font-size: 0.85rem;\n  }\n  dd {\n    margin: 0;\n    min-width: 0;\n    color: var(--text-invers-100, #2f4858);\n    overflow-wrap: anywhere;\n  }\n  ul {\n    padding: 0;\n    margin: 0;\n    list-style: none;\n  }\n  li {\n    display: grid;\n    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);\n    gap: 1rem;\n    padding: 0.55rem 0;\n    border-bottom: 1px solid color-mix(in srgb, var(--grey-200, #dee2e6) 70%, transparent);\n  }\n  li:last-child {\n    border-bottom: 0;\n  }\n  code {\n    overflow-wrap: anywhere;\n    font-size: 0.8125rem;\n    background: var(--grey-100, #f8f9fa);\n    padding: 0.1rem 0.35rem;\n  }\n  li span {\n    font-size: 0.85rem;\n    font-weight: 600;\n  }\n  p {\n    margin: 0;\n    font-size: 0.875rem;\n  }\n  .sr-only {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    border: 0;\n  }\n  @media (max-width: 560px) {\n    dl > div,\n    li {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 0.25rem;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { fromStore } from \"svelte/store\"\n  import type { ContextChoice, ContextSessionResponse } from \"@kontextwerk/control-web-client\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import { mdiOfficeBuilding, mdiShieldAccount, mdiRefresh } from \"@mdi/js\"\n  import type { ContextAccess } from \"../../../../_logic/authentication\"\n  import ContextSummary from \"../../../context-summary\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n\n  let {\n    access,\n    preferredOrganizationName = null,\n    onPasswordChange,\n    onResetPassword,\n    onSignOut,\n  }: {\n    access: ContextAccess\n    preferredOrganizationName?: string | null\n    onPasswordChange?: () => void\n    onResetPassword?: () => void\n    onSignOut: (initiatingSession: ContextSessionResponse | null) => void\n  } = $props()\n  const view = $derived(fromStore(access.state))\n  const uid = $props.id()\n  let selectionForm: HTMLFormElement | undefined = $state()\n  let picked = $state.raw<{ choices: readonly ContextChoice[]; key: string } | null>(null)\n  const keyFor = (choice: ContextChoice) =>\n    choice.kind === \"organization\"\n      ? `organization:${choice.membership_id}`\n      : `platform:${choice.assignment_id}`\n  const selected = $derived.by(() => {\n    const choices = view.current.choices ?? []\n\n    if (picked?.choices === choices)\n      return choices.find((choice) => keyFor(choice) === picked?.key) ?? null\n\n    const normalizedPreferred = preferredOrganizationName?.trim().toLowerCase() ?? \"\"\n\n    if (normalizedPreferred) {\n      const preferred = choices.find(\n        (choice) =>\n          choice.kind === \"organization\" &&\n          choice.organization_name.trim().toLowerCase() === normalizedPreferred,\n      )\n\n      if (preferred) return preferred\n    }\n\n    return choices.length === 1 ? choices[0] : null\n  })\n  const busy = $derived(view.current.status === \"loading\" || view.current.status === \"switching\")\n  const errors = {\n    request_failed: \"Zugang konnte nicht geladen werden.\",\n    invalid_contract: \"Zugang konnte nicht bestätigt werden.\",\n    selection_expired: \"Die Auswahl ist abgelaufen.\",\n    session_required: \"Eine bestätigte Sitzung ist erforderlich.\",\n    unauthenticated: \"Bitte erneut anmelden.\",\n  }\n  const submit = (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (!selected || busy || view.current.status !== \"selecting\") return\n\n    void access.select(\n      selected.kind === \"organization\"\n        ? { kind: \"organization\", membership_id: selected.membership_id }\n        : { kind: \"platform\", assignment_id: selected.assignment_id },\n    )\n  }\n  const signOut = () => {\n    const initiatingSession = view.current.session\n    access.invalidate(\"logout\")\n    onSignOut(initiatingSession)\n  }\n</script>\n\n<section class=\"context-access\" aria-label=\"Zugang\" aria-busy={busy}>\n  {#if busy}\n    <p role=\"status\" class=\"status-copy\">\n      {view.current.status === \"switching\" ? \"Zugang wird gewechselt.\" : \"Zugang wird geladen.\"}\n    </p>\n    <div class=\"form-actions\">\n      <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n    </div>\n  {:else if view.current.status === \"ready\" && view.current.session}\n    <ContextSummary session={view.current.session} />\n    <div class=\"form-actions with-secondary\">\n      <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={false}\n        content=\"Zugang wechseln\"\n        onClick={() => access.openChoices()}\n      />\n    </div>\n  {:else if view.current.status === \"password-change\"}\n    <h2>Passwortwechsel erforderlich</h2>\n    <div class=\"form-actions with-secondary\">\n      <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n      <CTA\n        type=\"primaryButton\"\n        darkMode={false}\n        content=\"Passwort wechseln\"\n        onClick={onPasswordChange}\n      />\n    </div>\n  {:else if view.current.status === \"selecting\" && view.current.choices}\n    {#if view.current.choices.length === 0}\n      <h2>Kein Zugang vorhanden</h2>\n      <p class=\"intro\">\n        Für dieses Konto liegt aktuell noch kein freigeschalteter Organisations- oder\n        Plattformzugang vor.\n      </p>\n      <div class=\"form-actions with-secondary\">\n        <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n        <div class=\"action-group\">\n          {#if onResetPassword}\n            <CTA\n              type=\"secondaryButton\"\n              darkMode={false}\n              content=\"Kennwort zurücksetzen\"\n              onClick={onResetPassword}\n            />\n          {/if}\n          <CTA\n            type=\"secondaryButton\"\n            darkMode={false}\n            icon={mdiRefresh}\n            content=\"Neu laden\"\n            onClick={() => access.reloadChoices()}\n          />\n        </div>\n      </div>\n    {:else}\n      <form\n        class=\"form dark selection-form\"\n        aria-label=\"Zugang auswählen\"\n        aria-busy={busy}\n        bind:this={selectionForm}\n        onsubmit={submit}\n      >\n        <p class=\"intro\">Bitte wählen Sie den Zugang aus, mit dem Sie fortfahren möchten.</p>\n        <fieldset role=\"radiogroup\" aria-label=\"Zugang auswählen\">\n          {#each view.current.choices as choice (keyFor(choice))}\n            <label class:selected={selected === choice}>\n              <span class=\"radio-control\"\n                ><input\n                  type=\"radio\"\n                  name={uid}\n                  checked={selected === choice}\n                  onchange={() => {\n                    picked = { choices: view.current.choices!, key: keyFor(choice) }\n                  }}\n                /></span\n              >\n              <Icon\n                path={choice.kind === \"organization\" ? mdiOfficeBuilding : mdiShieldAccount}\n                size=\"1.25rem\"\n              />\n              <span class=\"choice-copy\">\n                <strong\n                  >{choice.kind === \"organization\" ? choice.organization_name : \"Plattform\"}</strong\n                >\n                <small\n                  >{choice.kind === \"organization\"\n                    ? `Organisation / ${choice.role_name}`\n                    : choice.role === \"support_agent\"\n                      ? \"Staff / Support\"\n                      : \"Staff / Plattformverwaltung\"}</small\n                >\n              </span>\n            </label>\n          {/each}\n        </fieldset>\n        <div class=\"form-actions with-secondary\">\n          <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n          <CTA\n            type=\"primaryButton\"\n            darkMode={false}\n            content=\"Weiter\"\n            disabled={!selected || busy}\n            onClick={(event: MouseEvent) => {\n              event.preventDefault()\n              selectionForm?.requestSubmit()\n            }}\n          />\n        </div>\n        <button\n          type=\"submit\"\n          class=\"submit-proxy\"\n          tabindex=\"-1\"\n          aria-hidden=\"true\"\n          disabled={!selected || busy}\n        ></button>\n      </form>\n    {/if}\n  {:else}\n    {#if view.current.error}<p role=\"alert\" class=\"error-copy\">{errors[view.current.error]}</p>{/if}\n    <div class=\"form-actions with-secondary\">\n      <CTA type=\"tertiaryButton\" darkMode={false} content=\"Abmelden\" onClick={signOut} />\n      <div class=\"action-group\">\n        {#if view.current.status === \"error\"}\n          <CTA\n            type=\"secondaryButton\"\n            darkMode={false}\n            content=\"Andere Zugänge\"\n            onClick={() => access.reloadChoices()}\n          />\n        {/if}\n        <CTA\n          type=\"secondaryButton\"\n          darkMode={false}\n          icon={mdiRefresh}\n          content=\"Sitzung neu laden\"\n          onClick={() => access.refresh()}\n        />\n      </div>\n    </div>\n  {/if}\n</section>\n\n<style>\n  .context-access {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    min-width: 0;\n    width: 100%;\n    color: var(--text-invers-100);\n  }\n  .selection-form {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n  }\n  h2 {\n    color: var(--text-invers-100);\n    font-size: 1.05rem;\n    font-weight: 600;\n    margin: 0;\n  }\n  .intro,\n  .status-copy,\n  .error-copy {\n    margin: 0;\n    color: var(--text-invers-100);\n    font-size: 0.925rem;\n    line-height: 1.45;\n    overflow-wrap: anywhere;\n  }\n  .error-copy {\n    color: var(--primary-100);\n    font-weight: 600;\n  }\n  fieldset {\n    display: flex;\n    flex-direction: column;\n    gap: 0.625rem;\n    border: 0;\n    margin: 0;\n    padding: 0;\n    min-width: 0;\n    width: 100%;\n  }\n  .context-access label {\n    color: var(--text-invers-100);\n    display: flex;\n    flex-direction: row;\n    justify-content: flex-start;\n    height: auto;\n    max-height: none;\n    width: 100%;\n    box-sizing: border-box;\n    align-items: center;\n    gap: 0.875rem;\n    padding: 0.95rem 1rem;\n    border: 1px solid color-mix(in srgb, var(--text-invers-100) 24%, transparent);\n    background: color-mix(in srgb, var(--text-invers-100) 2%, transparent);\n    cursor: pointer;\n    transition:\n      border-color 0.15s ease,\n      background-color 0.15s ease;\n  }\n  .context-access label:hover {\n    border-color: color-mix(in srgb, var(--text-invers-100) 50%, transparent);\n    background: color-mix(in srgb, var(--text-invers-100) 5%, transparent);\n  }\n  .context-access label.selected {\n    border-color: var(--primary-200);\n    background: color-mix(in srgb, var(--primary-200) 7%, transparent);\n  }\n  .context-access label > .choice-copy {\n    display: grid;\n    gap: 0.2rem;\n    min-width: 0;\n    width: auto;\n    height: auto;\n    opacity: 1;\n    padding: 0;\n    text-transform: none;\n    text-align: left;\n    font-size: inherit;\n    line-height: normal;\n    font-weight: inherit;\n    overflow-wrap: anywhere;\n  }\n  small {\n    color: var(--text-invers-100);\n    opacity: 0.82;\n    font-size: 0.8125rem;\n  }\n  .context-access .radio-control {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 1rem;\n  }\n  strong {\n    color: var(--text-invers-100);\n    font-weight: 600;\n  }\n  .context-access input {\n    appearance: auto;\n    color-scheme: light;\n    flex: 0 0 auto;\n    width: 1rem;\n    height: 1rem;\n    min-height: 1rem;\n    padding: 0;\n    margin: 0;\n    accent-color: var(--primary-200);\n  }\n  input:focus-visible {\n    outline: 2px solid var(--primary-200);\n    outline-offset: 3px;\n  }\n  .form-actions {\n    display: flex;\n    width: 100%;\n    justify-content: flex-end;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 0.75rem;\n    margin-top: 0.5rem;\n  }\n  .form-actions.with-secondary {\n    justify-content: space-between;\n  }\n  .action-group {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 0.75rem;\n  }\n  .submit-proxy {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n</style>\n","<script lang=\"ts\">\n  import { fromStore } from \"svelte/store\"\n  import { onDestroy, untrack } from \"svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import type { ContextLogin } from \"../../../../_logic/authentication\"\n  let {\n    login,\n    initialEmail = null,\n  }: {\n    login: ContextLogin\n    /** Prefills a just registered address; never a password or other credential. */\n    initialEmail?: string | null\n  } = $props()\n  const view = $derived(fromStore(login.state))\n  let email = $state(untrack(() => initialEmail) ?? \"\")\n  let password = $state(\"\")\n  let code = $state(\"\")\n  let form: HTMLFormElement | undefined = $state()\n  let invalidCode = $state(false)\n  const busy = $derived(view.current.status === \"submitting\")\n  const challenge = $derived(view.current.status === \"challenge\")\n  const submit = async (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (busy || !form?.checkValidity()) return\n\n    invalidCode = challenge && !/^[0-9]{6,32}$/.test(code)\n\n    if (invalidCode) return\n\n    const payload = {\n      email,\n      password,\n      remember_mfa_device: true,\n      ...(challenge ? { two_factor_code: code } : {}),\n    }\n    code = \"\"\n    await login.submit(payload)\n\n    if (view.current.status !== \"challenge\") password = \"\"\n  }\n  onDestroy(() => {\n    password = \"\"\n    code = \"\"\n  })\n</script>\n\n<form class=\"form dark\" bind:this={form} onsubmit={submit} aria-label=\"Anmelden\" aria-busy={busy}>\n  {#if view.current.status === \"expired\"}<p role=\"alert\">Der Anmeldecode ist abgelaufen.</p>{/if}\n  {#if view.current.error}<p role=\"alert\">Anmeldung nicht möglich. Bitte erneut versuchen.</p>{/if}\n  <div class=\"row\">\n    <Input\n      placeholder=\"E-Mail\"\n      type=\"email\"\n      surfaceTone=\"light\"\n      style=\"--kw-input-placeholder: var(--text-invers-100);\"\n      autocomplete=\"username\"\n      bind:value={email}\n      required\n      disabled={busy || challenge}\n    />\n    <Input\n      placeholder=\"Passwort\"\n      type=\"password-native\"\n      surfaceTone=\"light\"\n      style=\"--kw-input-placeholder: var(--text-invers-100);\"\n      autocomplete=\"current-password\"\n      bind:value={password}\n      required\n      disabled={busy || challenge}\n    />\n  </div>\n  {#if challenge}\n    <div class=\"row single\">\n      <Input\n        placeholder=\"Anmeldecode\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        inputmode=\"numeric\"\n        autocomplete=\"one-time-code\"\n        bind:value={code}\n        required\n        disabled={busy}\n      />\n    </div>\n  {/if}\n  {#if invalidCode}<p role=\"alert\">Bitte geben Sie einen gültigen Anmeldecode ein.</p>{/if}\n  <div class=\"formActions\">\n    {#if challenge}<CTA\n        type=\"secondaryButton\"\n        darkMode={false}\n        content=\"Zurück\"\n        onClick={(event: MouseEvent) => {\n          event.preventDefault()\n          login.reset()\n          password = \"\"\n          code = \"\"\n        }}\n      />{/if}\n    <CTA\n      type=\"primaryButton\"\n      darkMode={false}\n      content={busy ? \"Anmeldung läuft\" : challenge ? \"Bestätigen\" : \"Jetzt einloggen\"}\n      ariaLabel={busy ? \"Anmeldung läuft\" : challenge ? \"Bestätigen\" : \"Anmelden\"}\n      disabled={busy}\n      onClick={(event: MouseEvent) => {\n        event.preventDefault()\n        form?.requestSubmit()\n      }}\n    />\n  </div>\n  <button type=\"submit\" class=\"submit-proxy\" tabindex=\"-1\" aria-hidden=\"true\" disabled={busy}\n  ></button>\n</form>\n\n<style>\n  p[role=\"alert\"] {\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n  form {\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n    box-sizing: border-box;\n  }\n  .formActions {\n    display: flex;\n    justify-content: flex-end;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 1rem;\n  }\n  .submit-proxy {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n\n  type Tone = \"positive\" | \"neutral\" | \"danger\"\n\n  let {\n    tone = \"neutral\",\n    class: className = \"\",\n    children,\n    ...rest\n  }: {\n    tone?: Tone\n    class?: string\n    children?: Snippet\n  } & Record<string, unknown> = $props()\n</script>\n\n<span class={`${[\"status-pill\", tone, className].filter(Boolean).join(\" \")}`} {...rest}>\n  {@render children?.()}\n</span>\n\n<style lang=\"less\">\n  .status-pill {\n    display: inline-flex;\n    align-items: flex-end;\n    justify-content: center;\n    gap: 0.4rem;\n    padding: 0.35rem 0.9rem;\n    border-radius: 4px;\n    font-size: 0.9rem;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    border: 1px solid color-mix(in srgb, var(--text-100) 12%, transparent);\n    background: color-mix(in srgb, var(--bg-200) 85%, var(--bg-100) 15%);\n    width: fit-content;\n    color: var(--text-100);\n\n    &.positive {\n      background: rgba(24, 169, 153, 0.16);\n      color: var(--text-100);\n      border-color: rgba(24, 169, 153, 0.35);\n    }\n    &.danger {\n      background: rgba(173, 81, 76, 0.16);\n      border-color: rgba(173, 81, 76, 0.35);\n      color: var(--text-invers-100);\n    }\n  }\n</style>\n","import type {\n  ProgressNavigationMode,\n  ProgressStep,\n} from \"../../../../../core/navigation/progressSteps\"\n\n/** Presentation uses explicit evidence, never the selected tab's position. */\nexport const progressStepPresentation = (\n  step: ProgressStep,\n  navigationMode: ProgressNavigationMode,\n  readOnly = false,\n) => {\n  const guarded = navigationMode === \"guarded\"\n  const locked = guarded && step.workflowState === \"locked\"\n  const skipped = step.workflowState === \"skipped\"\n  const completed = step.workflowState\n    ? step.workflowState === \"completed\"\n    : step.progressStatus === \"done\"\n  const preview = !locked && (readOnly || (guarded && (completed || skipped)))\n  const state = locked ? \"locked\" : skipped ? \"skipped\" : completed ? \"done\" : \"open\"\n  const stateLabel = locked\n    ? \"Gesperrt\"\n    : skipped\n      ? \"Übersprungen\"\n      : completed\n        ? \"Abgeschlossen\"\n        : \"\"\n\n  return { locked, skipped, completed, preview, state, stateLabel }\n}\n","<script lang=\"ts\">\n  import { mdiCheck, mdiChevronLeft, mdiChevronRight, mdiLockOutline, mdiSkipNext } from \"@mdi/js\"\n  import { tick } from \"svelte\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { newNotification } from \"../../../../core/overlay/notifications\"\n  import { progressStepPresentation } from \"./_logic/progressStepPresentation\"\n  import type {\n    ProgressNavigationMode,\n    ProgressStatusMode,\n    ProgressStep,\n    StepStatus,\n  } from \"../../../../core/navigation/progressSteps\"\n\n  let {\n    steps = [],\n    activeIndex = 0,\n    onSelect = () => {},\n    darkMode = false,\n    statusMode = \"linear\",\n    navigationMode = \"free\",\n    lockedStepMessage = \"Bitte schließen Sie alle vorherigen Schritte ab, um in diesen Schritt gelangen zu können.\",\n    onBlockedStepSelect = null,\n    panelId,\n    readOnly = false,\n  }: {\n    steps?: ProgressStep[]\n    activeIndex?: number\n    onSelect?: (index: number) => void\n    darkMode?: boolean\n    statusMode?: ProgressStatusMode\n    navigationMode?: ProgressNavigationMode\n    lockedStepMessage?: string\n    onBlockedStepSelect?: ((index: number, step: ProgressStep) => void) | null\n    panelId?: string\n    readOnly?: boolean\n  } = $props()\n\n  const instanceId = $props.id()\n  const idPrefix = $derived(panelId ?? `progress-${instanceId}`)\n  let list: HTMLDivElement | undefined = $state()\n  let canScrollBack = $state(false)\n  let canScrollForward = $state(false)\n  let explainedIndex = $state<number | null>(null)\n\n  // Keep the legacy context/status attribute; visible completion is explicit evidence only.\n  const statusForIndex = (index: number, step: ProgressStep): StepStatus => {\n    if (navigationMode === \"guarded\" && step.workflowState) {\n      if (step.workflowState === \"completed\" || step.workflowState === \"skipped\") return \"done\"\n\n      return step.workflowState === \"current\" ? \"active\" : \"pending\"\n    }\n\n    if (statusMode === \"explicit\" && step.progressStatus) return step.progressStatus\n\n    return index < activeIndex ? \"done\" : index === activeIndex ? \"active\" : \"pending\"\n  }\n\n  const handleSelect = (index: number) => {\n    const step = steps[index]\n\n    if (progressStepPresentation(step, navigationMode, readOnly).locked) {\n      onBlockedStepSelect?.(index, step)\n      newNotification({ class: \"error\", html: lockedStepMessage })\n\n      return\n    }\n\n    onSelect(index)\n  }\n\n  const updateOverflow = () => {\n    if (!list) return\n\n    canScrollBack = list.scrollLeft > 1\n    canScrollForward = list.scrollLeft + list.clientWidth < list.scrollWidth - 1\n  }\n\n  const revealTab = (index: number) => {\n    if (!list) return\n\n    const tab = list.querySelectorAll<HTMLButtonElement>(\"[role=tab]\")[index]\n\n    if (!tab) return\n\n    const tabRect = tab.getBoundingClientRect()\n    const listRect = list.getBoundingClientRect()\n\n    if (tabRect.width > listRect.width || tabRect.left < listRect.left)\n      list.scrollLeft += tabRect.left - listRect.left\n    else if (tabRect.right > listRect.right) list.scrollLeft += tabRect.right - listRect.right\n\n    updateOverflow()\n  }\n\n  const observeOverflow = (node: HTMLDivElement) => {\n    const observer = new ResizeObserver(() => {\n      updateOverflow()\n      revealTab(activeIndex)\n    })\n    observer.observe(node)\n    updateOverflow()\n\n    return { destroy: () => observer.disconnect() }\n  }\n\n  $effect(() => {\n    const index = activeIndex\n    steps.length\n    tick().then(() => revealTab(index))\n  })\n\n  const moveFocus = (event: KeyboardEvent, index: number) => {\n    let target: number\n\n    if (event.key === \"ArrowRight\") target = (index + 1) % steps.length\n    else if (event.key === \"ArrowLeft\") target = (index - 1 + steps.length) % steps.length\n    else if (event.key === \"Home\") target = 0\n    else if (event.key === \"End\") target = steps.length - 1\n    else return\n\n    event.preventDefault()\n    list?.querySelectorAll<HTMLButtonElement>(\"[role=tab]\")[target]?.focus()\n    revealTab(target)\n  }\n\n  const scroll = (direction: number) => {\n    list?.scrollBy({ left: direction * list.clientWidth * 0.75, behavior: \"smooth\" })\n  }\n</script>\n\n<div class=\"progress-track\" class:darkMode>\n  {#if canScrollBack || canScrollForward}\n    <button\n      type=\"button\"\n      class=\"scroll-control scroll-back\"\n      aria-label=\"Vorherige Schritte anzeigen\"\n      title=\"Vorherige Schritte anzeigen\"\n      disabled={!canScrollBack}\n      onclick={() => scroll(-1)}><Icon path={mdiChevronLeft} size=\"20px\" /></button\n    >\n  {/if}\n  <div\n    class=\"tab-list\"\n    role=\"tablist\"\n    aria-label=\"Fortschritt\"\n    bind:this={list}\n    use:observeOverflow\n    onscroll={updateOverflow}\n  >\n    {#each steps as step, index (step.id)}\n      {@const presentation = progressStepPresentation(step, navigationMode, readOnly)}\n      <button\n        type=\"button\"\n        role=\"tab\"\n        class=\"step-tab\"\n        id={`${idPrefix}-tab-${index}`}\n        aria-controls={panelId}\n        aria-selected={index === activeIndex}\n        aria-disabled={presentation.locked}\n        aria-describedby={presentation.locked ? `${idPrefix}-hint-${index}` : undefined}\n        tabindex={index === activeIndex ? 0 : -1}\n        data-status={statusForIndex(index, step)}\n        data-state={presentation.state}\n        data-workflow-state={step.workflowState ?? \"\"}\n        data-step-id={step.id}\n        data-current={navigationMode === \"guarded\" && step.workflowState === \"current\"}\n        onclick={() => handleSelect(index)}\n        onkeydown={(event) => moveFocus(event, index)}\n        onfocus={() => {\n          explainedIndex = presentation.locked ? index : null\n          revealTab(index)\n        }}\n        onblur={() => (explainedIndex = null)}\n        onmouseenter={() => (explainedIndex = presentation.locked ? index : null)}\n        onmouseleave={() => (explainedIndex = null)}\n      >\n        <span class=\"label\">\n          {#if presentation.locked}<Icon path={mdiLockOutline} size=\"14px\" />\n          {:else if presentation.completed}<Icon path={mdiCheck} size=\"14px\" />\n          {:else if presentation.skipped}<Icon path={mdiSkipNext} size=\"14px\" />{/if}\n          <span>{step.label}</span>\n          {#if presentation.stateLabel}<span class=\"sr-only\">{presentation.stateLabel}</span>{/if}\n          {#if presentation.preview}<span class=\"view-label\">Ansehen</span>{/if}\n        </span>\n      </button>\n      {#if presentation.locked}\n        <span class=\"sr-only\" id={`${idPrefix}-hint-${index}`}>{lockedStepMessage}</span>\n      {/if}\n    {/each}\n  </div>\n  {#if canScrollBack || canScrollForward}\n    <button\n      type=\"button\"\n      class=\"scroll-control\"\n      aria-label=\"Weitere Schritte anzeigen\"\n      title=\"Weitere Schritte anzeigen\"\n      disabled={!canScrollForward}\n      onclick={() => scroll(1)}><Icon path={mdiChevronRight} size=\"20px\" /></button\n    >\n  {/if}\n  {#if explainedIndex !== null}\n    <div class=\"locked-explanation\" role=\"tooltip\">{lockedStepMessage}</div>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .progress-track {\n    --step-height: 40px;\n    --step-tip: calc(var(--step-height) / 2);\n    --step-surface: var(--neutral-white, #fff);\n    --step-text: var(--text-invers-100, #263e4a);\n    --step-border: color-mix(in srgb, var(--step-text) 18%, var(--step-surface));\n    --step-soft: color-mix(in srgb, var(--primary-200) 12%, var(--step-surface));\n    --step-accent-text: color-mix(in srgb, var(--primary-200) 30%, var(--step-text));\n    --step-complete: var(--green-200, #0c796c);\n    display: flex;\n    align-items: stretch;\n    width: 100%;\n    min-width: 0;\n    position: sticky;\n    top: 0;\n    z-index: 3;\n    background: var(--step-surface);\n    border-top: 1px solid var(--step-border);\n    border-bottom: 1px solid var(--step-border);\n    color: var(--step-text);\n    &.darkMode {\n      --step-surface: var(--bg-100, #0d0c0c);\n      --step-text: var(--text-100, #f4f4f4);\n      --step-soft: color-mix(in srgb, var(--primary-200) 20%, var(--step-surface));\n      --step-accent-text: var(--primary-200);\n      --step-complete: color-mix(in srgb, var(--green-200, #0c796c) 70%, var(--step-text));\n    }\n    @media (max-width: 600px) {\n      --step-height: 44px;\n    }\n  }\n  .tab-list {\n    display: flex;\n    flex: 1 1 auto;\n    min-width: 0;\n    margin-inline-start: max(0px, calc(var(--progress-content-padding-left, 16px) - 16px));\n    align-items: stretch;\n    overflow-x: auto;\n    scrollbar-width: none;\n    &::-webkit-scrollbar {\n      display: none;\n    }\n  }\n  .step-tab {\n    --tab-fill: var(--step-surface);\n    --tab-outline: var(--step-border);\n    --tab-inset: 1px;\n    background: var(--tab-outline);\n    border: 0;\n    clip-path: polygon(\n      0 0,\n      calc(100% - var(--step-tip)) 0,\n      100% 50%,\n      calc(100% - var(--step-tip)) 100%,\n      0 100%,\n      var(--step-tip) 50%\n    );\n    color: var(--step-text);\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    flex: 0 0 auto;\n    font: inherit;\n    font-size: 0.75rem;\n    font-weight: 700;\n    min-height: var(--step-height);\n    padding: 0 calc(var(--step-tip) + 16px);\n    position: relative;\n    isolation: isolate;\n    white-space: nowrap;\n    margin-inline-start: calc(0px - var(--step-tip));\n    &::before {\n      content: \"\";\n      position: absolute;\n      inset: var(--tab-inset);\n      background: var(--tab-fill);\n      clip-path: inherit;\n      z-index: -1;\n    }\n    &:first-child {\n      margin-inline-start: 0;\n      padding-inline-start: min(16px, var(--progress-content-padding-left, 16px));\n      clip-path: polygon(\n        0 0,\n        calc(100% - var(--step-tip)) 0,\n        100% 50%,\n        calc(100% - var(--step-tip)) 100%,\n        0 100%\n      );\n    }\n    &:hover:not([aria-disabled=\"true\"]) {\n      --tab-fill: var(--step-soft);\n    }\n    &[aria-selected=\"true\"],\n    &[data-current=\"true\"] {\n      --tab-fill: var(--step-soft);\n      color: var(--step-accent-text);\n    }\n    &[aria-selected=\"true\"] {\n      --tab-outline: var(--primary-200);\n      --tab-inset: 2px;\n    }\n    &[data-state=\"done\"] {\n      --tab-fill: color-mix(in srgb, var(--step-complete) 12%, var(--step-surface));\n      --tab-outline: color-mix(in srgb, var(--step-complete) 50%, var(--step-surface));\n      color: var(--step-complete);\n      &[aria-selected=\"true\"] {\n        --tab-outline: var(--step-complete);\n      }\n    }\n    &[data-state=\"skipped\"],\n    &[aria-disabled=\"true\"] {\n      --tab-fill: color-mix(in srgb, var(--step-text) 5%, var(--step-surface));\n      color: color-mix(in srgb, var(--step-text) 62%, var(--step-surface));\n    }\n    &[aria-disabled=\"true\"] {\n      cursor: not-allowed;\n    }\n    &:focus-visible {\n      --tab-outline: var(--primary-200);\n      --tab-inset: 3px;\n      outline: none;\n    }\n  }\n  .label {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n  }\n  .view-label {\n    font-weight: 400;\n    text-decoration: underline;\n    text-underline-offset: 2px;\n  }\n  .scroll-control {\n    order: 2;\n    flex: 0 0 var(--step-height);\n    width: var(--step-height);\n    min-height: var(--step-height);\n    padding: 0;\n    border: 0;\n    background: var(--step-surface);\n    color: var(--step-text);\n    cursor: pointer;\n    &:disabled {\n      opacity: 0.4;\n      cursor: default;\n    }\n    &:focus-visible {\n      outline: 2px solid var(--primary-200);\n      outline-offset: -2px;\n    }\n    &.scroll-back {\n      order: 1;\n    }\n  }\n  .locked-explanation {\n    position: absolute;\n    top: 100%;\n    inset-inline: 8px;\n    width: fit-content;\n    max-width: calc(100% - 16px);\n    padding: 8px 12px;\n    background: var(--step-surface);\n    color: var(--step-text);\n    border: 1px solid var(--step-border);\n    font-size: 0.8rem;\n    pointer-events: none;\n  }\n  .sr-only {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip-path: inset(50%);\n    white-space: nowrap;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import type { ProgressStepWorkflowState } from \"../../../../core/navigation/progressSteps\"\n\n  let {\n    children,\n    readOnly = false,\n    workflowState = null,\n    panelId,\n    labelledBy,\n  }: {\n    children: Snippet\n    readOnly?: boolean\n    workflowState?: ProgressStepWorkflowState | null\n    panelId?: string\n    labelledBy?: string\n  } = $props()\n</script>\n\n{#snippet content()}\n  {#if readOnly}\n    <p class=\"preview-state\">\n      {workflowState === \"completed\"\n        ? \"Abgeschlossen · Nur ansehen\"\n        : workflowState === \"skipped\"\n          ? \"Übersprungen · Nur ansehen\"\n          : \"Nur ansehen\"}\n    </p>\n  {/if}\n  {@render children()}\n{/snippet}\n\n{#if panelId}\n  <div\n    class=\"progress-content\"\n    id={panelId}\n    role=\"tabpanel\"\n    aria-labelledby={labelledBy}\n    tabindex=\"0\"\n  >\n    {@render content()}\n  </div>\n{:else}\n  <div class=\"progress-content\">{@render content()}</div>\n{/if}\n\n<style>\n  .progress-content {\n    box-sizing: border-box;\n    width: 100%;\n    min-width: 0;\n    padding: var(--progress-content-padding-top, 1rem) var(--progress-content-padding-right, 0)\n      var(--progress-content-padding-bottom, 0) var(--progress-content-padding-left, 0);\n  }\n\n  .progress-content:focus-visible {\n    outline: 2px solid var(--primary-200);\n    outline-offset: -2px;\n  }\n\n  .preview-state {\n    margin: 0 0 1rem;\n    font-size: 0.8rem;\n    font-weight: 700;\n    color: inherit;\n  }\n</style>\n","<script module lang=\"ts\">\n  export type { ProgressStep, ProgressStepContext } from \"../../../../core/navigation/progressSteps\"\n</script>\n\n<script lang=\"ts\">\n  import { onMount, untrack } from \"svelte\"\n  import { newNotification } from \"../../../../core/overlay/notifications\"\n  import {\n    spaNavigate,\n    location as defaultLocation,\n    type LocationState,\n  } from \"../../../../core/routing/navigation\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import ProgressStepsTrack from \"../progress-steps-track/index\"\n  import ProgressStepsContent from \"../progress-steps-content/index\"\n  import type {\n    ProgressNavigationMode,\n    ProgressStatusMode,\n    ProgressStep,\n    ProgressStepContext,\n    ProgressStepRenderMode,\n    ProgressStepWorkflowState,\n    StepActionResult,\n    StepStatus,\n  } from \"../../../../core/navigation/progressSteps\"\n  import type { Writable } from \"svelte/store\"\n\n  interface Props {\n    steps?: ProgressStep[]\n    stepParam?: string\n    locationStore?: Writable<LocationState>\n    initialIndex?: number\n    showControls?: boolean\n    previousLabel?: string\n    darkMode?: boolean\n    syncUrl?: boolean\n    statusMode?: ProgressStatusMode\n    navigationMode?: ProgressNavigationMode\n    selectedIndex?: number | null\n    onSelectedIndexChange?: ((index: number) => void) | null\n    lockedStepMessage?: string\n    onBlockedStepSelect?: ((index: number, step: ProgressStep) => void) | null\n  }\n\n  let {\n    steps = [],\n    stepParam = \"step_idx\",\n    locationStore = defaultLocation,\n    initialIndex = 0,\n    showControls = true,\n    previousLabel = \"Zurück\",\n    darkMode = false,\n    syncUrl = true,\n    statusMode = \"linear\",\n    navigationMode = \"free\",\n    selectedIndex = null,\n    onSelectedIndexChange = null,\n    lockedStepMessage = \"Bitte schließen Sie alle vorherigen Schritte ab, um in diesen Schritt gelangen zu können.\",\n    onBlockedStepSelect = null,\n  }: Props = $props()\n\n  let internalIndex = $state(untrack(() => initialIndex))\n  let stepError = $state<string | null>(null)\n  let loading = $state(false)\n  const instanceId = $props.id()\n  const panelId = `progress-panel-${instanceId}`\n\n  const stepsCount = $derived(steps.length)\n  const normalizedSearch = $derived(($locationStore?.search ?? \"\").replace(/^\\?/, \"\"))\n  const normalizedPath = $derived(\n    $locationStore?.path ?? (typeof window !== \"undefined\" ? window.location.pathname : \"/\"),\n  )\n\n  const clampIndex = (value: number) => {\n    if (!stepsCount) return 0\n\n    return Math.min(Math.max(value, 0), stepsCount - 1)\n  }\n\n  const parseStepParam = (search: string) => {\n    if (!stepsCount) return null\n\n    const params = new URLSearchParams(search)\n    const raw = params.get(stepParam)\n\n    if (raw === null) return null\n\n    const parsed = Number(raw)\n\n    if (Number.isInteger(parsed)) {\n      const clamped = clampIndex(parsed)\n\n      if (clamped === parsed) return clamped\n    }\n\n    return null\n  }\n\n  const findStepIndexByPath = (path: string) => {\n    if (!stepsCount) return -1\n\n    const normalized = path.split(\"?\")[0] || \"/\"\n    let bestIndex = -1\n    let bestMatchLength = -1\n    steps.forEach((step, idx) => {\n      if (!step?.path) return\n\n      const target =\n        step.path.endsWith(\"/\") && step.path !== \"/\" ? step.path.slice(0, -1) : step.path\n\n      if (!target) return\n\n      if (\n        normalized === target ||\n        normalized.startsWith(target.endsWith(\"/\") ? target : `${target}/`)\n      ) {\n        if (target.length > bestMatchLength) {\n          bestIndex = idx\n          bestMatchLength = target.length\n        }\n      }\n    })\n\n    return bestIndex\n  }\n\n  const resolvedIndex = $derived.by(() => {\n    if (!syncUrl) return clampIndex(initialIndex)\n\n    const fromParam = parseStepParam(normalizedSearch)\n\n    if (fromParam !== null) return fromParam\n\n    const fromPath = findStepIndexByPath(normalizedPath)\n\n    if (fromPath !== -1) return fromPath\n\n    return clampIndex(initialIndex)\n  })\n  const activeIndex = $derived(\n    selectedIndex !== null && selectedIndex !== undefined\n      ? clampIndex(selectedIndex)\n      : syncUrl\n        ? clampIndex(resolvedIndex)\n        : clampIndex(internalIndex),\n  )\n  const activeStep = $derived(steps[activeIndex] ?? null)\n\n  const buildTargetUrl = (index: number) => {\n    if (!stepsCount) return \"/\"\n\n    const clamped = clampIndex(index)\n    const step = steps[clamped]\n    const params = new URLSearchParams(normalizedSearch)\n    params.set(stepParam, String(clamped))\n    const path = step?.path || normalizedPath || \"/\" || \"/\"\n    const search = params.toString()\n    const hash = $locationStore?.hash ?? \"\"\n\n    return `${path}${search ? `?${search}` : \"\"}${hash || \"\"}`\n  }\n\n  const syncUrlToLocation = (index: number, options?: { replace?: boolean }) => {\n    if (typeof window === \"undefined\") return\n\n    const target = buildTargetUrl(index)\n    spaNavigate(target, { replace: options?.replace ?? true, noSearchParam: true })\n  }\n\n  const notifyLockedStep = (index: number, step: ProgressStep) => {\n    onBlockedStepSelect?.(index, step)\n    newNotification({ class: \"error\", html: lockedStepMessage })\n  }\n\n  const canSelectStep = (index: number) => {\n    const step = steps[clampIndex(index)]\n\n    return navigationMode !== \"guarded\" || step?.workflowState !== \"locked\"\n  }\n\n  const goToStep = (index: number, options?: { replace?: boolean }) => {\n    if (!stepsCount) return\n\n    const clamped = clampIndex(index)\n    const step = steps[clamped]\n\n    if (!canSelectStep(clamped)) {\n      notifyLockedStep(clamped, step)\n\n      return\n    }\n\n    internalIndex = clamped\n    stepError = null\n    onSelectedIndexChange?.(clamped)\n\n    if (syncUrl) {\n      syncUrlToLocation(clamped, options)\n    }\n  }\n\n  const requestPrevious = () => {\n    if (activeIndex <= 0) return\n\n    goToStep(activeIndex - 1, { replace: false })\n  }\n\n  const workflowStatusForStep = (step: ProgressStep | null | undefined): StepStatus | null => {\n    if (navigationMode !== \"guarded\" || !step?.workflowState) return null\n\n    if (step.workflowState === \"completed\" || step.workflowState === \"skipped\") return \"done\"\n\n    if (step.workflowState === \"current\") return \"active\"\n\n    return \"pending\"\n  }\n\n  const statusForIndex = (index: number, step: ProgressStep = steps[index]): StepStatus => {\n    const workflowStatus = workflowStatusForStep(step)\n\n    if (workflowStatus) return workflowStatus\n\n    if (statusMode === \"explicit\" && step?.progressStatus) return step.progressStatus\n\n    if (index < activeIndex) return \"done\"\n\n    if (index === activeIndex) return \"active\"\n\n    return \"pending\"\n  }\n\n  const renderModeForStep = (step: ProgressStep | null | undefined): ProgressStepRenderMode =>\n    navigationMode === \"guarded\" &&\n    (step?.workflowState === \"completed\" || step?.workflowState === \"skipped\")\n      ? \"preview\"\n      : \"edit\"\n\n  const workflowStateForStep = (\n    step: ProgressStep | null | undefined,\n  ): ProgressStepWorkflowState | null =>\n    navigationMode === \"guarded\" ? (step?.workflowState ?? null) : null\n\n  const normalizeResult = (result: StepActionResult) => {\n    if (typeof result === \"string\") return { ok: false, message: result }\n\n    if (typeof result === \"boolean\") return { ok: result, message: result ? null : undefined }\n\n    if (result && typeof result === \"object\") {\n      if (\"ok\" in result && typeof result.ok === \"boolean\") {\n        return { ok: result.ok, message: result.message ?? result.error }\n      }\n\n      if (\"success\" in result && typeof result.success === \"boolean\") {\n        return { ok: result.success, message: result.message ?? result.error }\n      }\n\n      if (\"error\" in result && typeof result.error === \"string\" && result.error.trim()) {\n        return { ok: false, message: result.error }\n      }\n    }\n\n    return { ok: true, message: null }\n  }\n\n  const stepContext = (): ProgressStepContext => {\n    const step = activeStep ?? steps[clampIndex(activeIndex)]\n    const renderMode = renderModeForStep(step)\n\n    return {\n      step,\n      stepIndex: activeIndex,\n      isFirst: activeIndex === 0,\n      isLast: activeIndex >= stepsCount - 1,\n      status: statusForIndex(activeIndex, step),\n      workflowState: workflowStateForStep(step),\n      renderMode,\n      readOnly: renderMode === \"preview\",\n      isSelected: true,\n      requestNext,\n      requestPrevious,\n      goToStep,\n      setError: (message) => (stepError = message),\n      loading,\n      error: stepError,\n    }\n  }\n\n  async function requestNext() {\n    if (!activeStep || loading) return\n\n    const isLastStep = activeIndex >= stepsCount - 1\n    stepError = null\n    loading = true\n    try {\n      if (activeStep.onNext) {\n        const outcome = normalizeResult(await activeStep.onNext(stepContext()))\n\n        if (!outcome.ok) {\n          stepError = outcome.message ?? \"Schritt konnte nicht abgeschlossen werden.\"\n\n          return\n        }\n      }\n\n      if (!isLastStep) {\n        goToStep(activeIndex + 1, { replace: false })\n      }\n    } catch (err) {\n      const message =\n        err instanceof Error\n          ? err.message || \"Schritt konnte nicht abgeschlossen werden.\"\n          : \"Schritt konnte nicht abgeschlossen werden.\"\n      stepError = message\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    if (!stepsCount) return\n\n    const hasParam = parseStepParam(normalizedSearch) !== null\n\n    if (!hasParam) {\n      if (syncUrl) {\n        syncUrlToLocation(activeIndex, { replace: true })\n      }\n    }\n  })\n</script>\n\n{#if stepsCount > 0}\n  <div class=\"progress-steps\" class:darkMode class:lightMode={!darkMode}>\n    <ProgressStepsTrack\n      {steps}\n      {activeIndex}\n      {darkMode}\n      {statusMode}\n      {navigationMode}\n      {lockedStepMessage}\n      {onBlockedStepSelect}\n      {panelId}\n      onSelect={(index) => goToStep(index, { replace: false })}\n    />\n\n    <ProgressStepsContent\n      {panelId}\n      labelledBy={`${panelId}-tab-${activeIndex}`}\n      readOnly={renderModeForStep(activeStep) === \"preview\"}\n      workflowState={workflowStateForStep(activeStep)}\n    >\n      <div class=\"body\">\n        {#if activeStep}\n          <div class=\"content\">\n            {@render activeStep.snippet(stepContext())}\n          </div>\n        {/if}\n\n        {#if stepError}\n          <p class=\"message message--error\" role=\"alert\">{stepError}</p>\n        {/if}\n\n        {#if showControls && activeStep && !activeStep.hideDefaultAction && activeIndex < stepsCount - 1}\n          <div class=\"controls\">\n            <CTA\n              type=\"ghostButton\"\n              content={previousLabel}\n              onClick={requestPrevious}\n              disabled={activeIndex === 0 || loading}\n            />\n            <CTA\n              type=\"primaryButton\"\n              content={activeStep.actionLabel ?? \"Weiter\"}\n              onClick={requestNext}\n              disabled={loading || activeStep.disableNext}\n            />\n          </div>\n        {/if}\n      </div>\n    </ProgressStepsContent>\n  </div>\n{:else}\n  <p class=\"message\">Keine Schritte konfiguriert.</p>\n{/if}\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n  .progress-steps {\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n\n    &.darkMode {\n      color: var(--text-100);\n\n      :global(.description),\n      .message {\n        color: color-mix(in srgb, var(--text-100) 82%, transparent);\n      }\n\n      .message.message--error {\n        color: color-mix(in srgb, var(--primary-200) 78%, var(--text-100) 22%);\n      }\n    }\n  }\n\n  .body {\n    display: flex;\n    flex-direction: column;\n    gap: 0.8rem;\n    width: 100%;\n  }\n\n  :global(.description) {\n    margin: 0;\n    color: color-mix(in srgb, var(--text-100) 74%, transparent);\n    font-size: 0.95rem;\n\n    margin-bottom: 1.2rem;\n  }\n\n  .content {\n    width: 100%;\n  }\n\n  .message {\n    margin: 0;\n    font-size: 0.95rem;\n    color: color-mix(in srgb, var(--text-100) 70%, transparent);\n\n    &.message--error {\n      color: color-mix(in srgb, var(--primary-200) 82%, var(--text-100) 18%);\n    }\n  }\n\n  .controls {\n    display: flex;\n    justify-content: flex-end;\n    gap: 0.6rem;\n    flex-wrap: wrap;\n  }\n</style>\n","export const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n    const size = buffers.reduce((acc, { length }) => acc + length, 0);\n    const buf = new Uint8Array(size);\n    let i = 0;\n    for (const buffer of buffers) {\n        buf.set(buffer, i);\n        i += buffer.length;\n    }\n    return buf;\n}\nfunction writeUInt32BE(buf, value, offset) {\n    if (value < 0 || value >= MAX_INT32) {\n        throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n    }\n    buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n    const high = Math.floor(value / MAX_INT32);\n    const low = value % MAX_INT32;\n    const buf = new Uint8Array(8);\n    writeUInt32BE(buf, high, 0);\n    writeUInt32BE(buf, low, 4);\n    return buf;\n}\nexport function uint32be(value) {\n    const buf = new Uint8Array(4);\n    writeUInt32BE(buf, value);\n    return buf;\n}\nexport function encode(string) {\n    const bytes = new Uint8Array(string.length);\n    for (let i = 0; i < string.length; i++) {\n        const code = string.charCodeAt(i);\n        if (code > 127) {\n            throw new TypeError('non-ASCII string encountered in encode()');\n        }\n        bytes[i] = code;\n    }\n    return bytes;\n}\n","export function encodeBase64(input) {\n    if (Uint8Array.prototype.toBase64) {\n        return input.toBase64();\n    }\n    const CHUNK_SIZE = 0x8000;\n    const arr = [];\n    for (let i = 0; i < input.length; i += CHUNK_SIZE) {\n        arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n    }\n    return btoa(arr.join(''));\n}\nexport function decodeBase64(encoded) {\n    if (Uint8Array.fromBase64) {\n        return Uint8Array.fromBase64(encoded);\n    }\n    const binary = atob(encoded);\n    const bytes = new Uint8Array(binary.length);\n    for (let i = 0; i < binary.length; i++) {\n        bytes[i] = binary.charCodeAt(i);\n    }\n    return bytes;\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nimport { encodeBase64, decodeBase64 } from '../lib/base64.js';\nexport function decode(input) {\n    if (Uint8Array.fromBase64) {\n        return Uint8Array.fromBase64(typeof input === 'string' ? input : decoder.decode(input), {\n            alphabet: 'base64url',\n        });\n    }\n    let encoded = input;\n    if (encoded instanceof Uint8Array) {\n        encoded = decoder.decode(encoded);\n    }\n    encoded = encoded.replace(/-/g, '+').replace(/_/g, '/');\n    try {\n        return decodeBase64(encoded);\n    }\n    catch {\n        throw new TypeError('The input to be decoded is not correctly encoded.');\n    }\n}\nexport function encode(input) {\n    let unencoded = input;\n    if (typeof unencoded === 'string') {\n        unencoded = encoder.encode(unencoded);\n    }\n    if (Uint8Array.prototype.toBase64) {\n        return unencoded.toBase64({ alphabet: 'base64url', omitPadding: true });\n    }\n    return encodeBase64(unencoded).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n","const unusable = (name, prop = 'algorithm.name') => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\nconst isAlgorithm = (algorithm, name) => algorithm.name === name;\nfunction getHashLength(hash) {\n    return parseInt(hash.name.slice(4), 10);\n}\nfunction checkHashLength(algorithm, expected) {\n    const actual = getHashLength(algorithm.hash);\n    if (actual !== expected)\n        throw unusable(`SHA-${expected}`, 'algorithm.hash');\n}\nfunction getNamedCurve(alg) {\n    switch (alg) {\n        case 'ES256':\n            return 'P-256';\n        case 'ES384':\n            return 'P-384';\n        case 'ES512':\n            return 'P-521';\n        default:\n            throw new Error('unreachable');\n    }\n}\nfunction checkUsage(key, usage) {\n    if (usage && !key.usages.includes(usage)) {\n        throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);\n    }\n}\nexport function checkSigCryptoKey(key, alg, usage) {\n    switch (alg) {\n        case 'HS256':\n        case 'HS384':\n        case 'HS512': {\n            if (!isAlgorithm(key.algorithm, 'HMAC'))\n                throw unusable('HMAC');\n            checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n            break;\n        }\n        case 'RS256':\n        case 'RS384':\n        case 'RS512': {\n            if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n                throw unusable('RSASSA-PKCS1-v1_5');\n            checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n            break;\n        }\n        case 'PS256':\n        case 'PS384':\n        case 'PS512': {\n            if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n                throw unusable('RSA-PSS');\n            checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n            break;\n        }\n        case 'Ed25519':\n        case 'EdDSA': {\n            if (!isAlgorithm(key.algorithm, 'Ed25519'))\n                throw unusable('Ed25519');\n            break;\n        }\n        case 'ML-DSA-44':\n        case 'ML-DSA-65':\n        case 'ML-DSA-87': {\n            if (!isAlgorithm(key.algorithm, alg))\n                throw unusable(alg);\n            break;\n        }\n        case 'ES256':\n        case 'ES384':\n        case 'ES512': {\n            if (!isAlgorithm(key.algorithm, 'ECDSA'))\n                throw unusable('ECDSA');\n            const expected = getNamedCurve(alg);\n            const actual = key.algorithm.namedCurve;\n            if (actual !== expected)\n                throw unusable(expected, 'algorithm.namedCurve');\n            break;\n        }\n        default:\n            throw new TypeError('CryptoKey does not support this operation');\n    }\n    checkUsage(key, usage);\n}\nexport function checkEncCryptoKey(key, alg, usage) {\n    switch (alg) {\n        case 'A128GCM':\n        case 'A192GCM':\n        case 'A256GCM': {\n            if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n                throw unusable('AES-GCM');\n            const expected = parseInt(alg.slice(1, 4), 10);\n            const actual = key.algorithm.length;\n            if (actual !== expected)\n                throw unusable(expected, 'algorithm.length');\n            break;\n        }\n        case 'A128KW':\n        case 'A192KW':\n        case 'A256KW': {\n            if (!isAlgorithm(key.algorithm, 'AES-KW'))\n                throw unusable('AES-KW');\n            const expected = parseInt(alg.slice(1, 4), 10);\n            const actual = key.algorithm.length;\n            if (actual !== expected)\n                throw unusable(expected, 'algorithm.length');\n            break;\n        }\n        case 'ECDH': {\n            switch (key.algorithm.name) {\n                case 'ECDH':\n                case 'X25519':\n                    break;\n                default:\n                    throw unusable('ECDH or X25519');\n            }\n            break;\n        }\n        case 'PBES2-HS256+A128KW':\n        case 'PBES2-HS384+A192KW':\n        case 'PBES2-HS512+A256KW':\n            if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n                throw unusable('PBKDF2');\n            break;\n        case 'RSA-OAEP':\n        case 'RSA-OAEP-256':\n        case 'RSA-OAEP-384':\n        case 'RSA-OAEP-512': {\n            if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n                throw unusable('RSA-OAEP');\n            checkHashLength(key.algorithm, parseInt(alg.slice(9), 10) || 1);\n            break;\n        }\n        default:\n            throw new TypeError('CryptoKey does not support this operation');\n    }\n    checkUsage(key, usage);\n}\n","function message(msg, actual, ...types) {\n    types = types.filter(Boolean);\n    if (types.length > 2) {\n        const last = types.pop();\n        msg += `one of type ${types.join(', ')}, or ${last}.`;\n    }\n    else if (types.length === 2) {\n        msg += `one of type ${types[0]} or ${types[1]}.`;\n    }\n    else {\n        msg += `of type ${types[0]}.`;\n    }\n    if (actual == null) {\n        msg += ` Received ${actual}`;\n    }\n    else if (typeof actual === 'function' && actual.name) {\n        msg += ` Received function ${actual.name}`;\n    }\n    else if (typeof actual === 'object' && actual != null) {\n        if (actual.constructor?.name) {\n            msg += ` Received an instance of ${actual.constructor.name}`;\n        }\n    }\n    return msg;\n}\nexport const invalidKeyInput = (actual, ...types) => message('Key must be ', actual, ...types);\nexport const withAlg = (alg, actual, ...types) => message(`Key for the ${alg} algorithm must be `, actual, ...types);\n","export class JOSEError extends Error {\n    static code = 'ERR_JOSE_GENERIC';\n    code = 'ERR_JOSE_GENERIC';\n    constructor(message, options) {\n        super(message, options);\n        this.name = this.constructor.name;\n        Error.captureStackTrace?.(this, this.constructor);\n    }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n    static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n    code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n    claim;\n    reason;\n    payload;\n    constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n        super(message, { cause: { claim, reason, payload } });\n        this.claim = claim;\n        this.reason = reason;\n        this.payload = payload;\n    }\n}\nexport class JWTExpired extends JOSEError {\n    static code = 'ERR_JWT_EXPIRED';\n    code = 'ERR_JWT_EXPIRED';\n    claim;\n    reason;\n    payload;\n    constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n        super(message, { cause: { claim, reason, payload } });\n        this.claim = claim;\n        this.reason = reason;\n        this.payload = payload;\n    }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n    static code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n    code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n}\nexport class JOSENotSupported extends JOSEError {\n    static code = 'ERR_JOSE_NOT_SUPPORTED';\n    code = 'ERR_JOSE_NOT_SUPPORTED';\n}\nexport class JWEDecryptionFailed extends JOSEError {\n    static code = 'ERR_JWE_DECRYPTION_FAILED';\n    code = 'ERR_JWE_DECRYPTION_FAILED';\n    constructor(message = 'decryption operation failed', options) {\n        super(message, options);\n    }\n}\nexport class JWEInvalid extends JOSEError {\n    static code = 'ERR_JWE_INVALID';\n    code = 'ERR_JWE_INVALID';\n}\nexport class JWSInvalid extends JOSEError {\n    static code = 'ERR_JWS_INVALID';\n    code = 'ERR_JWS_INVALID';\n}\nexport class JWTInvalid extends JOSEError {\n    static code = 'ERR_JWT_INVALID';\n    code = 'ERR_JWT_INVALID';\n}\nexport class JWKInvalid extends JOSEError {\n    static code = 'ERR_JWK_INVALID';\n    code = 'ERR_JWK_INVALID';\n}\nexport class JWKSInvalid extends JOSEError {\n    static code = 'ERR_JWKS_INVALID';\n    code = 'ERR_JWKS_INVALID';\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n    static code = 'ERR_JWKS_NO_MATCHING_KEY';\n    code = 'ERR_JWKS_NO_MATCHING_KEY';\n    constructor(message = 'no applicable key found in the JSON Web Key Set', options) {\n        super(message, options);\n    }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n    [Symbol.asyncIterator];\n    static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n    code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n    constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {\n        super(message, options);\n    }\n}\nexport class JWKSTimeout extends JOSEError {\n    static code = 'ERR_JWKS_TIMEOUT';\n    code = 'ERR_JWKS_TIMEOUT';\n    constructor(message = 'request timed out', options) {\n        super(message, options);\n    }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n    static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n    code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n    constructor(message = 'signature verification failed', options) {\n        super(message, options);\n    }\n}\n","export function assertCryptoKey(key) {\n    if (!isCryptoKey(key)) {\n        throw new Error('CryptoKey instance expected');\n    }\n}\nexport const isCryptoKey = (key) => {\n    if (key?.[Symbol.toStringTag] === 'CryptoKey')\n        return true;\n    try {\n        return key instanceof CryptoKey;\n    }\n    catch {\n        return false;\n    }\n};\nexport const isKeyObject = (key) => key?.[Symbol.toStringTag] === 'KeyObject';\nexport const isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);\n","import { decode } from '../util/base64url.js';\nexport const unprotected = Symbol();\nexport function assertNotSet(value, name) {\n    if (value) {\n        throw new TypeError(`${name} can only be called once`);\n    }\n}\nexport function decodeBase64url(value, label, ErrorClass) {\n    try {\n        return decode(value);\n    }\n    catch {\n        throw new ErrorClass(`Failed to base64url decode the ${label}`);\n    }\n}\nexport async function digest(algorithm, data) {\n    const subtleDigest = `SHA-${algorithm.slice(-3)}`;\n    return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));\n}\n","const isObjectLike = (value) => typeof value === 'object' && value !== null;\nexport function isObject(input) {\n    if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n        return false;\n    }\n    if (Object.getPrototypeOf(input) === null) {\n        return true;\n    }\n    let proto = input;\n    while (Object.getPrototypeOf(proto) !== null) {\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Object.getPrototypeOf(input) === proto;\n}\nexport function isDisjoint(...headers) {\n    const sources = headers.filter(Boolean);\n    if (sources.length === 0 || sources.length === 1) {\n        return true;\n    }\n    let acc;\n    for (const header of sources) {\n        const parameters = Object.keys(header);\n        if (!acc || acc.size === 0) {\n            acc = new Set(parameters);\n            continue;\n        }\n        for (const parameter of parameters) {\n            if (acc.has(parameter)) {\n                return false;\n            }\n            acc.add(parameter);\n        }\n    }\n    return true;\n}\nexport const isJWK = (key) => isObject(key) && typeof key.kty === 'string';\nexport const isPrivateJWK = (key) => key.kty !== 'oct' &&\n    ((key.kty === 'AKP' && typeof key.priv === 'string') || typeof key.d === 'string');\nexport const isPublicJWK = (key) => key.kty !== 'oct' && key.d === undefined && key.priv === undefined;\nexport const isSecretJWK = (key) => key.kty === 'oct' && typeof key.k === 'string';\n","import { JOSENotSupported } from '../util/errors.js';\nimport { checkSigCryptoKey } from './crypto_key.js';\nimport { invalidKeyInput } from './invalid_key_input.js';\nexport function checkKeyLength(alg, key) {\n    if (alg.startsWith('RS') || alg.startsWith('PS')) {\n        const { modulusLength } = key.algorithm;\n        if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n            throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n        }\n    }\n}\nfunction subtleAlgorithm(alg, algorithm) {\n    const hash = `SHA-${alg.slice(-3)}`;\n    switch (alg) {\n        case 'HS256':\n        case 'HS384':\n        case 'HS512':\n            return { hash, name: 'HMAC' };\n        case 'PS256':\n        case 'PS384':\n        case 'PS512':\n            return { hash, name: 'RSA-PSS', saltLength: parseInt(alg.slice(-3), 10) >> 3 };\n        case 'RS256':\n        case 'RS384':\n        case 'RS512':\n            return { hash, name: 'RSASSA-PKCS1-v1_5' };\n        case 'ES256':\n        case 'ES384':\n        case 'ES512':\n            return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };\n        case 'Ed25519':\n        case 'EdDSA':\n            return { name: 'Ed25519' };\n        case 'ML-DSA-44':\n        case 'ML-DSA-65':\n        case 'ML-DSA-87':\n            return { name: alg };\n        default:\n            throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n    }\n}\nasync function getSigKey(alg, key, usage) {\n    if (key instanceof Uint8Array) {\n        if (!alg.startsWith('HS')) {\n            throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n        }\n        return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);\n    }\n    checkSigCryptoKey(key, alg, usage);\n    return key;\n}\nexport async function sign(alg, key, data) {\n    const cryptoKey = await getSigKey(alg, key, 'sign');\n    checkKeyLength(alg, cryptoKey);\n    const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);\n    return new Uint8Array(signature);\n}\nexport async function verify(alg, key, signature, data) {\n    const cryptoKey = await getSigKey(alg, key, 'verify');\n    checkKeyLength(alg, cryptoKey);\n    const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);\n    try {\n        return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n    }\n    catch {\n        return false;\n    }\n}\n","import { JOSENotSupported } from '../util/errors.js';\nconst unsupportedAlg = 'Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value';\nfunction subtleMapping(jwk) {\n    let algorithm;\n    let keyUsages;\n    switch (jwk.kty) {\n        case 'AKP': {\n            switch (jwk.alg) {\n                case 'ML-DSA-44':\n                case 'ML-DSA-65':\n                case 'ML-DSA-87':\n                    algorithm = { name: jwk.alg };\n                    keyUsages = jwk.priv ? ['sign'] : ['verify'];\n                    break;\n                default:\n                    throw new JOSENotSupported(unsupportedAlg);\n            }\n            break;\n        }\n        case 'RSA': {\n            switch (jwk.alg) {\n                case 'PS256':\n                case 'PS384':\n                case 'PS512':\n                    algorithm = { name: 'RSA-PSS', hash: `SHA-${jwk.alg.slice(-3)}` };\n                    keyUsages = jwk.d ? ['sign'] : ['verify'];\n                    break;\n                case 'RS256':\n                case 'RS384':\n                case 'RS512':\n                    algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${jwk.alg.slice(-3)}` };\n                    keyUsages = jwk.d ? ['sign'] : ['verify'];\n                    break;\n                case 'RSA-OAEP':\n                case 'RSA-OAEP-256':\n                case 'RSA-OAEP-384':\n                case 'RSA-OAEP-512':\n                    algorithm = {\n                        name: 'RSA-OAEP',\n                        hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`,\n                    };\n                    keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n                    break;\n                default:\n                    throw new JOSENotSupported(unsupportedAlg);\n            }\n            break;\n        }\n        case 'EC': {\n            switch (jwk.alg) {\n                case 'ES256':\n                case 'ES384':\n                case 'ES512':\n                    algorithm = {\n                        name: 'ECDSA',\n                        namedCurve: { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' }[jwk.alg],\n                    };\n                    keyUsages = jwk.d ? ['sign'] : ['verify'];\n                    break;\n                case 'ECDH-ES':\n                case 'ECDH-ES+A128KW':\n                case 'ECDH-ES+A192KW':\n                case 'ECDH-ES+A256KW':\n                    algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n                    keyUsages = jwk.d ? ['deriveBits'] : [];\n                    break;\n                default:\n                    throw new JOSENotSupported(unsupportedAlg);\n            }\n            break;\n        }\n        case 'OKP': {\n            switch (jwk.alg) {\n                case 'Ed25519':\n                case 'EdDSA':\n                    algorithm = { name: 'Ed25519' };\n                    keyUsages = jwk.d ? ['sign'] : ['verify'];\n                    break;\n                case 'ECDH-ES':\n                case 'ECDH-ES+A128KW':\n                case 'ECDH-ES+A192KW':\n                case 'ECDH-ES+A256KW':\n                    algorithm = { name: jwk.crv };\n                    keyUsages = jwk.d ? ['deriveBits'] : [];\n                    break;\n                default:\n                    throw new JOSENotSupported(unsupportedAlg);\n            }\n            break;\n        }\n        default:\n            throw new JOSENotSupported('Invalid or unsupported JWK \"kty\" (Key Type) Parameter value');\n    }\n    return { algorithm, keyUsages };\n}\nexport async function jwkToKey(jwk) {\n    if (!jwk.alg) {\n        throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n    }\n    const { algorithm, keyUsages } = subtleMapping(jwk);\n    const keyData = { ...jwk };\n    if (keyData.kty !== 'AKP') {\n        delete keyData.alg;\n    }\n    delete keyData.use;\n    return crypto.subtle.importKey('jwk', keyData, algorithm, jwk.ext ?? (jwk.d || jwk.priv ? false : true), jwk.key_ops ?? keyUsages);\n}\n","import { isJWK } from './type_checks.js';\nimport { decode } from '../util/base64url.js';\nimport { jwkToKey } from './jwk_to_key.js';\nimport { isCryptoKey, isKeyObject } from './is_key_like.js';\nconst unusableForAlg = 'given KeyObject instance cannot be used for this algorithm';\nlet cache;\nconst handleJWK = async (key, jwk, alg, freeze = false) => {\n    cache ||= new WeakMap();\n    let cached = cache.get(key);\n    if (cached?.[alg]) {\n        return cached[alg];\n    }\n    const cryptoKey = await jwkToKey({ ...jwk, alg });\n    if (freeze)\n        Object.freeze(key);\n    if (!cached) {\n        cache.set(key, { [alg]: cryptoKey });\n    }\n    else {\n        cached[alg] = cryptoKey;\n    }\n    return cryptoKey;\n};\nconst handleKeyObject = (keyObject, alg) => {\n    cache ||= new WeakMap();\n    let cached = cache.get(keyObject);\n    if (cached?.[alg]) {\n        return cached[alg];\n    }\n    const isPublic = keyObject.type === 'public';\n    const extractable = isPublic ? true : false;\n    let cryptoKey;\n    if (keyObject.asymmetricKeyType === 'x25519') {\n        switch (alg) {\n            case 'ECDH-ES':\n            case 'ECDH-ES+A128KW':\n            case 'ECDH-ES+A192KW':\n            case 'ECDH-ES+A256KW':\n                break;\n            default:\n                throw new TypeError(unusableForAlg);\n        }\n        cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, isPublic ? [] : ['deriveBits']);\n    }\n    if (keyObject.asymmetricKeyType === 'ed25519') {\n        if (alg !== 'EdDSA' && alg !== 'Ed25519') {\n            throw new TypeError(unusableForAlg);\n        }\n        cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n            isPublic ? 'verify' : 'sign',\n        ]);\n    }\n    switch (keyObject.asymmetricKeyType) {\n        case 'ml-dsa-44':\n        case 'ml-dsa-65':\n        case 'ml-dsa-87': {\n            if (alg !== keyObject.asymmetricKeyType.toUpperCase()) {\n                throw new TypeError(unusableForAlg);\n            }\n            cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n                isPublic ? 'verify' : 'sign',\n            ]);\n        }\n    }\n    if (keyObject.asymmetricKeyType === 'rsa') {\n        let hash;\n        switch (alg) {\n            case 'RSA-OAEP':\n                hash = 'SHA-1';\n                break;\n            case 'RS256':\n            case 'PS256':\n            case 'RSA-OAEP-256':\n                hash = 'SHA-256';\n                break;\n            case 'RS384':\n            case 'PS384':\n            case 'RSA-OAEP-384':\n                hash = 'SHA-384';\n                break;\n            case 'RS512':\n            case 'PS512':\n            case 'RSA-OAEP-512':\n                hash = 'SHA-512';\n                break;\n            default:\n                throw new TypeError(unusableForAlg);\n        }\n        if (alg.startsWith('RSA-OAEP')) {\n            return keyObject.toCryptoKey({\n                name: 'RSA-OAEP',\n                hash,\n            }, extractable, isPublic ? ['encrypt'] : ['decrypt']);\n        }\n        cryptoKey = keyObject.toCryptoKey({\n            name: alg.startsWith('PS') ? 'RSA-PSS' : 'RSASSA-PKCS1-v1_5',\n            hash,\n        }, extractable, [isPublic ? 'verify' : 'sign']);\n    }\n    if (keyObject.asymmetricKeyType === 'ec') {\n        const nist = new Map([\n            ['prime256v1', 'P-256'],\n            ['secp384r1', 'P-384'],\n            ['secp521r1', 'P-521'],\n        ]);\n        const namedCurve = nist.get(keyObject.asymmetricKeyDetails?.namedCurve);\n        if (!namedCurve) {\n            throw new TypeError(unusableForAlg);\n        }\n        const expectedCurve = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };\n        if (expectedCurve[alg] && namedCurve === expectedCurve[alg]) {\n            cryptoKey = keyObject.toCryptoKey({\n                name: 'ECDSA',\n                namedCurve,\n            }, extractable, [isPublic ? 'verify' : 'sign']);\n        }\n        if (alg.startsWith('ECDH-ES')) {\n            cryptoKey = keyObject.toCryptoKey({\n                name: 'ECDH',\n                namedCurve,\n            }, extractable, isPublic ? [] : ['deriveBits']);\n        }\n    }\n    if (!cryptoKey) {\n        throw new TypeError(unusableForAlg);\n    }\n    if (!cached) {\n        cache.set(keyObject, { [alg]: cryptoKey });\n    }\n    else {\n        cached[alg] = cryptoKey;\n    }\n    return cryptoKey;\n};\nexport async function normalizeKey(key, alg) {\n    if (key instanceof Uint8Array) {\n        return key;\n    }\n    if (isCryptoKey(key)) {\n        return key;\n    }\n    if (isKeyObject(key)) {\n        if (key.type === 'secret') {\n            return key.export();\n        }\n        if ('toCryptoKey' in key && typeof key.toCryptoKey === 'function') {\n            try {\n                return handleKeyObject(key, alg);\n            }\n            catch (err) {\n                if (err instanceof TypeError) {\n                    throw err;\n                }\n            }\n        }\n        let jwk = key.export({ format: 'jwk' });\n        return handleJWK(key, jwk, alg);\n    }\n    if (isJWK(key)) {\n        if (key.k) {\n            return decode(key.k);\n        }\n        return handleJWK(key, key, alg, true);\n    }\n    throw new Error('unreachable');\n}\n","import { JOSENotSupported, JWEInvalid, JWSInvalid } from '../util/errors.js';\nexport function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n    if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n        throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n    }\n    if (!protectedHeader || protectedHeader.crit === undefined) {\n        return new Set();\n    }\n    if (!Array.isArray(protectedHeader.crit) ||\n        protectedHeader.crit.length === 0 ||\n        protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n        throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n    }\n    let recognized;\n    if (recognizedOption !== undefined) {\n        recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n    }\n    else {\n        recognized = recognizedDefault;\n    }\n    for (const parameter of protectedHeader.crit) {\n        if (!recognized.has(parameter)) {\n            throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n        }\n        if (joseHeader[parameter] === undefined) {\n            throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n        }\n        if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n            throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n        }\n    }\n    return new Set(protectedHeader.crit);\n}\n","import { withAlg as invalidKeyInput } from './invalid_key_input.js';\nimport { isKeyLike } from './is_key_like.js';\nimport * as jwk from './type_checks.js';\nconst tag = (key) => key?.[Symbol.toStringTag];\nconst jwkMatchesOp = (alg, key, usage) => {\n    if (key.use !== undefined) {\n        let expected;\n        switch (usage) {\n            case 'sign':\n            case 'verify':\n                expected = 'sig';\n                break;\n            case 'encrypt':\n            case 'decrypt':\n                expected = 'enc';\n                break;\n        }\n        if (key.use !== expected) {\n            throw new TypeError(`Invalid key for this operation, its \"use\" must be \"${expected}\" when present`);\n        }\n    }\n    if (key.alg !== undefined && key.alg !== alg) {\n        throw new TypeError(`Invalid key for this operation, its \"alg\" must be \"${alg}\" when present`);\n    }\n    if (Array.isArray(key.key_ops)) {\n        let expectedKeyOp;\n        switch (true) {\n            case usage === 'sign' || usage === 'verify':\n            case alg === 'dir':\n            case alg.includes('CBC-HS'):\n                expectedKeyOp = usage;\n                break;\n            case alg.startsWith('PBES2'):\n                expectedKeyOp = 'deriveBits';\n                break;\n            case /^A\\d{3}(?:GCM)?(?:KW)?$/.test(alg):\n                if (!alg.includes('GCM') && alg.endsWith('KW')) {\n                    expectedKeyOp = usage === 'encrypt' ? 'wrapKey' : 'unwrapKey';\n                }\n                else {\n                    expectedKeyOp = usage;\n                }\n                break;\n            case usage === 'encrypt' && alg.startsWith('RSA'):\n                expectedKeyOp = 'wrapKey';\n                break;\n            case usage === 'decrypt':\n                expectedKeyOp = alg.startsWith('RSA') ? 'unwrapKey' : 'deriveBits';\n                break;\n        }\n        if (expectedKeyOp && key.key_ops?.includes?.(expectedKeyOp) === false) {\n            throw new TypeError(`Invalid key for this operation, its \"key_ops\" must include \"${expectedKeyOp}\" when present`);\n        }\n    }\n    return true;\n};\nconst symmetricTypeCheck = (alg, key, usage) => {\n    if (key instanceof Uint8Array)\n        return;\n    if (jwk.isJWK(key)) {\n        if (jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))\n            return;\n        throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present`);\n    }\n    if (!isKeyLike(key)) {\n        throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key', 'Uint8Array'));\n    }\n    if (key.type !== 'secret') {\n        throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type \"secret\"`);\n    }\n};\nconst asymmetricTypeCheck = (alg, key, usage) => {\n    if (jwk.isJWK(key)) {\n        switch (usage) {\n            case 'decrypt':\n            case 'sign':\n                if (jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))\n                    return;\n                throw new TypeError(`JSON Web Key for this operation must be a private JWK`);\n            case 'encrypt':\n            case 'verify':\n                if (jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))\n                    return;\n                throw new TypeError(`JSON Web Key for this operation must be a public JWK`);\n        }\n    }\n    if (!isKeyLike(key)) {\n        throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n    }\n    if (key.type === 'secret') {\n        throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type \"secret\"`);\n    }\n    if (key.type === 'public') {\n        switch (usage) {\n            case 'sign':\n                throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type \"private\"`);\n            case 'decrypt':\n                throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type \"private\"`);\n        }\n    }\n    if (key.type === 'private') {\n        switch (usage) {\n            case 'verify':\n                throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type \"public\"`);\n            case 'encrypt':\n                throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type \"public\"`);\n        }\n    }\n};\nexport function checkKeyType(alg, key, usage) {\n    switch (alg.substring(0, 2)) {\n        case 'A1':\n        case 'A2':\n        case 'di':\n        case 'HS':\n        case 'PB':\n            symmetricTypeCheck(alg, key, usage);\n            break;\n        default:\n            asymmetricTypeCheck(alg, key, usage);\n    }\n}\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';\nimport { encoder, decoder } from './buffer_utils.js';\nimport { isObject } from './type_checks.js';\nconst epoch = (date) => Math.floor(date.getTime() / 1000);\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexport function secs(str) {\n    const matched = REGEX.exec(str);\n    if (!matched || (matched[4] && matched[1])) {\n        throw new TypeError('Invalid time period format');\n    }\n    const value = parseFloat(matched[2]);\n    const unit = matched[3].toLowerCase();\n    let numericDate;\n    switch (unit) {\n        case 'sec':\n        case 'secs':\n        case 'second':\n        case 'seconds':\n        case 's':\n            numericDate = Math.round(value);\n            break;\n        case 'minute':\n        case 'minutes':\n        case 'min':\n        case 'mins':\n        case 'm':\n            numericDate = Math.round(value * minute);\n            break;\n        case 'hour':\n        case 'hours':\n        case 'hr':\n        case 'hrs':\n        case 'h':\n            numericDate = Math.round(value * hour);\n            break;\n        case 'day':\n        case 'days':\n        case 'd':\n            numericDate = Math.round(value * day);\n            break;\n        case 'week':\n        case 'weeks':\n        case 'w':\n            numericDate = Math.round(value * week);\n            break;\n        default:\n            numericDate = Math.round(value * year);\n            break;\n    }\n    if (matched[1] === '-' || matched[4] === 'ago') {\n        return -numericDate;\n    }\n    return numericDate;\n}\nfunction validateInput(label, input) {\n    if (!Number.isFinite(input)) {\n        throw new TypeError(`Invalid ${label} input`);\n    }\n    return input;\n}\nconst normalizeTyp = (value) => {\n    if (value.includes('/')) {\n        return value.toLowerCase();\n    }\n    return `application/${value.toLowerCase()}`;\n};\nconst checkAudiencePresence = (audPayload, audOption) => {\n    if (typeof audPayload === 'string') {\n        return audOption.includes(audPayload);\n    }\n    if (Array.isArray(audPayload)) {\n        return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n    }\n    return false;\n};\nexport function validateClaimsSet(protectedHeader, encodedPayload, options = {}) {\n    let payload;\n    try {\n        payload = JSON.parse(decoder.decode(encodedPayload));\n    }\n    catch {\n    }\n    if (!isObject(payload)) {\n        throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n    }\n    const { typ } = options;\n    if (typ &&\n        (typeof protectedHeader.typ !== 'string' ||\n            normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n        throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, 'typ', 'check_failed');\n    }\n    const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n    const presenceCheck = [...requiredClaims];\n    if (maxTokenAge !== undefined)\n        presenceCheck.push('iat');\n    if (audience !== undefined)\n        presenceCheck.push('aud');\n    if (subject !== undefined)\n        presenceCheck.push('sub');\n    if (issuer !== undefined)\n        presenceCheck.push('iss');\n    for (const claim of new Set(presenceCheck.reverse())) {\n        if (!(claim in payload)) {\n            throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, 'missing');\n        }\n    }\n    if (issuer &&\n        !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n        throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', payload, 'iss', 'check_failed');\n    }\n    if (subject && payload.sub !== subject) {\n        throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', payload, 'sub', 'check_failed');\n    }\n    if (audience &&\n        !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n        throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', payload, 'aud', 'check_failed');\n    }\n    let tolerance;\n    switch (typeof options.clockTolerance) {\n        case 'string':\n            tolerance = secs(options.clockTolerance);\n            break;\n        case 'number':\n            tolerance = options.clockTolerance;\n            break;\n        case 'undefined':\n            tolerance = 0;\n            break;\n        default:\n            throw new TypeError('Invalid clockTolerance option type');\n    }\n    const { currentDate } = options;\n    const now = epoch(currentDate || new Date());\n    if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n        throw new JWTClaimValidationFailed('\"iat\" claim must be a number', payload, 'iat', 'invalid');\n    }\n    if (payload.nbf !== undefined) {\n        if (typeof payload.nbf !== 'number') {\n            throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', payload, 'nbf', 'invalid');\n        }\n        if (payload.nbf > now + tolerance) {\n            throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, 'nbf', 'check_failed');\n        }\n    }\n    if (payload.exp !== undefined) {\n        if (typeof payload.exp !== 'number') {\n            throw new JWTClaimValidationFailed('\"exp\" claim must be a number', payload, 'exp', 'invalid');\n        }\n        if (payload.exp <= now - tolerance) {\n            throw new JWTExpired('\"exp\" claim timestamp check failed', payload, 'exp', 'check_failed');\n        }\n    }\n    if (maxTokenAge) {\n        const age = now - payload.iat;\n        const max = typeof maxTokenAge === 'number' ? maxTokenAge : secs(maxTokenAge);\n        if (age - tolerance > max) {\n            throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');\n        }\n        if (age < 0 - tolerance) {\n            throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');\n        }\n    }\n    return payload;\n}\nexport class JWTClaimsBuilder {\n    #payload;\n    constructor(payload) {\n        if (!isObject(payload)) {\n            throw new TypeError('JWT Claims Set MUST be an object');\n        }\n        this.#payload = structuredClone(payload);\n    }\n    data() {\n        return encoder.encode(JSON.stringify(this.#payload));\n    }\n    get iss() {\n        return this.#payload.iss;\n    }\n    set iss(value) {\n        this.#payload.iss = value;\n    }\n    get sub() {\n        return this.#payload.sub;\n    }\n    set sub(value) {\n        this.#payload.sub = value;\n    }\n    get aud() {\n        return this.#payload.aud;\n    }\n    set aud(value) {\n        this.#payload.aud = value;\n    }\n    set jti(value) {\n        this.#payload.jti = value;\n    }\n    set nbf(value) {\n        if (typeof value === 'number') {\n            this.#payload.nbf = validateInput('setNotBefore', value);\n        }\n        else if (value instanceof Date) {\n            this.#payload.nbf = validateInput('setNotBefore', epoch(value));\n        }\n        else {\n            this.#payload.nbf = epoch(new Date()) + secs(value);\n        }\n    }\n    set exp(value) {\n        if (typeof value === 'number') {\n            this.#payload.exp = validateInput('setExpirationTime', value);\n        }\n        else if (value instanceof Date) {\n            this.#payload.exp = validateInput('setExpirationTime', epoch(value));\n        }\n        else {\n            this.#payload.exp = epoch(new Date()) + secs(value);\n        }\n    }\n    set iat(value) {\n        if (value === undefined) {\n            this.#payload.iat = epoch(new Date());\n        }\n        else if (value instanceof Date) {\n            this.#payload.iat = validateInput('setIssuedAt', epoch(value));\n        }\n        else if (typeof value === 'string') {\n            this.#payload.iat = validateInput('setIssuedAt', epoch(new Date()) + secs(value));\n        }\n        else {\n            this.#payload.iat = validateInput('setIssuedAt', value);\n        }\n    }\n}\n","import { encode as b64u } from '../../util/base64url.js';\nimport { sign } from '../../lib/signing.js';\nimport { isDisjoint } from '../../lib/type_checks.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { concat, encode } from '../../lib/buffer_utils.js';\nimport { checkKeyType } from '../../lib/check_key_type.js';\nimport { validateCrit } from '../../lib/validate_crit.js';\nimport { normalizeKey } from '../../lib/normalize_key.js';\nimport { assertNotSet } from '../../lib/helpers.js';\nexport class FlattenedSign {\n    #payload;\n    #protectedHeader;\n    #unprotectedHeader;\n    constructor(payload) {\n        if (!(payload instanceof Uint8Array)) {\n            throw new TypeError('payload must be an instance of Uint8Array');\n        }\n        this.#payload = payload;\n    }\n    setProtectedHeader(protectedHeader) {\n        assertNotSet(this.#protectedHeader, 'setProtectedHeader');\n        this.#protectedHeader = protectedHeader;\n        return this;\n    }\n    setUnprotectedHeader(unprotectedHeader) {\n        assertNotSet(this.#unprotectedHeader, 'setUnprotectedHeader');\n        this.#unprotectedHeader = unprotectedHeader;\n        return this;\n    }\n    async sign(key, options) {\n        if (!this.#protectedHeader && !this.#unprotectedHeader) {\n            throw new JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n        }\n        if (!isDisjoint(this.#protectedHeader, this.#unprotectedHeader)) {\n            throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n        }\n        const joseHeader = {\n            ...this.#protectedHeader,\n            ...this.#unprotectedHeader,\n        };\n        const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options?.crit, this.#protectedHeader, joseHeader);\n        let b64 = true;\n        if (extensions.has('b64')) {\n            b64 = this.#protectedHeader.b64;\n            if (typeof b64 !== 'boolean') {\n                throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n            }\n        }\n        const { alg } = joseHeader;\n        if (typeof alg !== 'string' || !alg) {\n            throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n        }\n        checkKeyType(alg, key, 'sign');\n        let payloadS;\n        let payloadB;\n        if (b64) {\n            payloadS = b64u(this.#payload);\n            payloadB = encode(payloadS);\n        }\n        else {\n            payloadB = this.#payload;\n            payloadS = '';\n        }\n        let protectedHeaderString;\n        let protectedHeaderBytes;\n        if (this.#protectedHeader) {\n            protectedHeaderString = b64u(JSON.stringify(this.#protectedHeader));\n            protectedHeaderBytes = encode(protectedHeaderString);\n        }\n        else {\n            protectedHeaderString = '';\n            protectedHeaderBytes = new Uint8Array();\n        }\n        const data = concat(protectedHeaderBytes, encode('.'), payloadB);\n        const k = await normalizeKey(key, alg);\n        const signature = await sign(alg, k, data);\n        const jws = {\n            signature: b64u(signature),\n            payload: payloadS,\n        };\n        if (this.#unprotectedHeader) {\n            jws.header = this.#unprotectedHeader;\n        }\n        if (this.#protectedHeader) {\n            jws.protected = protectedHeaderString;\n        }\n        return jws;\n    }\n}\n","import { FlattenedSign } from '../flattened/sign.js';\nexport class CompactSign {\n    #flattened;\n    constructor(payload) {\n        this.#flattened = new FlattenedSign(payload);\n    }\n    setProtectedHeader(protectedHeader) {\n        this.#flattened.setProtectedHeader(protectedHeader);\n        return this;\n    }\n    async sign(key, options) {\n        const jws = await this.#flattened.sign(key, options);\n        if (jws.payload === undefined) {\n            throw new TypeError('use the flattened module for creating JWS with b64: false');\n        }\n        return `${jws.protected}.${jws.payload}.${jws.signature}`;\n    }\n}\n","import { CompactSign } from '../jws/compact/sign.js';\nimport { JWTInvalid } from '../util/errors.js';\nimport { JWTClaimsBuilder } from '../lib/jwt_claims_set.js';\nexport class SignJWT {\n    #protectedHeader;\n    #jwt;\n    constructor(payload = {}) {\n        this.#jwt = new JWTClaimsBuilder(payload);\n    }\n    setIssuer(issuer) {\n        this.#jwt.iss = issuer;\n        return this;\n    }\n    setSubject(subject) {\n        this.#jwt.sub = subject;\n        return this;\n    }\n    setAudience(audience) {\n        this.#jwt.aud = audience;\n        return this;\n    }\n    setJti(jwtId) {\n        this.#jwt.jti = jwtId;\n        return this;\n    }\n    setNotBefore(input) {\n        this.#jwt.nbf = input;\n        return this;\n    }\n    setExpirationTime(input) {\n        this.#jwt.exp = input;\n        return this;\n    }\n    setIssuedAt(input) {\n        this.#jwt.iat = input;\n        return this;\n    }\n    setProtectedHeader(protectedHeader) {\n        this.#protectedHeader = protectedHeader;\n        return this;\n    }\n    async sign(key, options) {\n        const sig = new CompactSign(this.#jwt.data());\n        sig.setProtectedHeader(this.#protectedHeader);\n        if (Array.isArray(this.#protectedHeader?.crit) &&\n            this.#protectedHeader.crit.includes('b64') &&\n            this.#protectedHeader.b64 === false) {\n            throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n        }\n        return sig.sign(key, options);\n    }\n}\n","import { SignJWT } from \"jose\";\n//#region \\0rolldown/runtime.js\nvar __defProp = Object.defineProperty;\nvar __exportAll = (all, no_symbols) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\tif (!no_symbols) __defProp(target, Symbol.toStringTag, { value: \"Module\" });\n\treturn target;\n};\n//#endregion\n//#region src/client-errors/client-error.ts\nvar ControlClientError = class extends Error {\n\tconstructor(message, options) {\n\t\tsuper(message);\n\t\tthis.name = \"ControlClientError\";\n\t\tthis.statusCode = options?.statusCode;\n\t\tthis.status = options?.statusCode;\n\t\tthis.detail = options?.detail;\n\t\tthis.payload = options?.detail;\n\t\tthis.responseText = options?.responseText;\n\t\tthis.requestId = options?.requestId;\n\t\tthis.reasonCode = options?.reasonCode;\n\t\tthis.fieldErrors = options?.fieldErrors ?? [];\n\t}\n\tget statusCodeOrStatus() {\n\t\treturn this.statusCode ?? this.status;\n\t}\n\tget status() {\n\t\treturn this.statusCode;\n\t}\n\tset status(value) {\n\t\tthis.statusCode = value;\n\t}\n\tget payload() {\n\t\treturn this.detail;\n\t}\n\tset payload(value) {\n\t\tthis.detail = value;\n\t}\n};\n//#endregion\n//#region src/client-errors/error-messages.ts\nvar STATUS_FALLBACKS = {\n\t400: \"Ungültige Anfrage.\",\n\t401: \"Nicht angemeldet oder Sitzung abgelaufen.\",\n\t403: \"Keine Berechtigung für diese Aktion.\",\n\t404: \"Die angeforderte Ressource wurde nicht gefunden.\",\n\t405: \"Diese Aktion ist hier nicht erlaubt.\",\n\t409: \"Konflikt mit dem aktuellen Datenstand.\",\n\t410: \"Die angeforderte Ressource ist nicht mehr verfügbar.\",\n\t412: \"Vorbedingung für diese Aktion ist nicht erfüllt.\",\n\t413: \"Die Anfrage ist zu groß.\",\n\t415: \"Dieses Format wird nicht unterstützt.\",\n\t422: \"Eingabedaten sind ungültig.\",\n\t429: \"Zu viele Anfragen. Bitte kurz warten.\",\n\t500: \"Interner Serverfehler.\",\n\t502: \"Dienst aktuell nicht erreichbar.\",\n\t503: \"Dienst vorübergehend nicht verfügbar.\",\n\t504: \"Zeitüberschreitung bei der Anfrage.\"\n};\nvar SIMPLE_STATUS_TEXTS = new Set([\n\t\"bad request\",\n\t\"unauthorized\",\n\t\"forbidden\",\n\t\"not found\",\n\t\"method not allowed\",\n\t\"conflict\",\n\t\"unprocessable entity\",\n\t\"too many requests\",\n\t\"internal server error\",\n\t\"bad gateway\",\n\t\"service unavailable\",\n\t\"gateway timeout\"\n].map((entry) => entry.toLowerCase()));\nvar isRecord = (value) => typeof value === \"object\" && value !== null && !Array.isArray(value);\nvar normalizeText = (value) => {\n\tif (value === null || value === void 0) return null;\n\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n\t\tconst text = String(value).trim();\n\t\treturn text ? text : null;\n\t}\n\treturn null;\n};\nvar formatLoc = (value) => {\n\tif (Array.isArray(value)) return value.map((part) => normalizeText(part)).filter((part) => Boolean(part)).filter((part) => part.toLowerCase() !== \"body\").join(\" > \") || null;\n\treturn normalizeText(value);\n};\nvar normalizeReasonCode = (value) => {\n\tconst text = normalizeText(value);\n\treturn text ? text.replace(/[-\\s]+/g, \"_\").toLowerCase() : void 0;\n};\nvar normalizeFieldErrors = (value) => {\n\tif (!Array.isArray(value)) return [];\n\treturn value.map((entry) => {\n\t\tif (!isRecord(entry)) return null;\n\t\tconst field = formatLoc(entry.field ?? entry.loc) ?? void 0;\n\t\tconst message = normalizeText(entry.message ?? entry.msg) ?? void 0;\n\t\tconst type = normalizeText(entry.type) ?? void 0;\n\t\tconst code = normalizeReasonCode(entry.code);\n\t\tif (!field && !message && !type && !code) return null;\n\t\treturn {\n\t\t\tfield,\n\t\t\tmessage,\n\t\t\ttype,\n\t\t\tcode\n\t\t};\n\t}).filter((entry) => Boolean(entry));\n};\nvar collectMessages = (detail, bag) => {\n\tconst primitive = normalizeText(detail);\n\tif (primitive) {\n\t\tbag.add(primitive);\n\t\treturn;\n\t}\n\tif (Array.isArray(detail)) {\n\t\tdetail.forEach((entry) => collectMessages(entry, bag));\n\t\treturn;\n\t}\n\tif (!isRecord(detail)) return;\n\tconst loc = formatLoc(detail.loc) ?? normalizeText(detail.field);\n\tconst direct = normalizeText(detail.msg ?? detail.message ?? detail.error ?? detail.reason);\n\tif (direct) bag.add(loc ? `${loc}: ${direct}` : direct);\n\tconst nestedError = detail.error;\n\tif (isRecord(nestedError)) collectMessages(nestedError, bag);\n\tif (\"detail\" in detail && detail.detail !== detail) collectMessages(detail.detail, bag);\n\tconst fieldErrors = detail.field_errors ?? detail.fieldErrors ?? detail.errors;\n\tif (fieldErrors !== detail) collectMessages(fieldErrors, bag);\n};\nvar statusFallback = (statusCode, statusText) => {\n\tif (statusCode && STATUS_FALLBACKS[statusCode]) return STATUS_FALLBACKS[statusCode];\n\tif (statusCode) {\n\t\tif (statusCode >= 500) return \"Interner Serverfehler.\";\n\t\tif (statusCode >= 400) return \"Die Anfrage konnte nicht verarbeitet werden.\";\n\t}\n\tconst text = (statusText ?? \"\").trim();\n\tif (!text) return null;\n\tif (SIMPLE_STATUS_TEXTS.has(text.toLowerCase())) return null;\n\treturn text;\n};\nvar isMeaninglessMessage = (value) => {\n\tconst normalized = value.trim().toLowerCase();\n\tif (!normalized) return true;\n\tif (SIMPLE_STATUS_TEXTS.has(normalized)) return true;\n\tif (/^\\d{3}$/.test(normalized)) return true;\n\tif (/^\\d{3}\\s+[a-z ]+$/.test(normalized)) return true;\n\treturn false;\n};\nvar resolveApiErrorMessage = (detail, options = {}) => {\n\tconst bag = /* @__PURE__ */ new Set();\n\tcollectMessages(detail, bag);\n\tconst candidates = [...bag].map((entry) => entry.trim()).filter(Boolean);\n\tconst meaningful = candidates.filter((entry) => !isMeaninglessMessage(entry));\n\tif (meaningful.length) return meaningful.slice(0, 5).join(\"; \");\n\tif (candidates.length) {\n\t\tconst collapsed = candidates[0].trim();\n\t\tif (collapsed) return statusFallback(options.statusCode, options.statusText) ?? collapsed;\n\t}\n\tconst fallback = normalizeText(options.fallback);\n\tif (fallback) return fallback;\n\treturn statusFallback(options.statusCode, options.statusText) ?? \"Ein Fehler ist aufgetreten.\";\n};\nvar parseErrorPayload = async (response) => {\n\tconst contentType = response.headers.get(\"content-type\") || \"\";\n\tlet detail = null;\n\tlet responseText;\n\tif (contentType.includes(\"application/json\")) try {\n\t\tdetail = await response.json();\n\t} catch {\n\t\tdetail = null;\n\t}\n\telse try {\n\t\tresponseText = await response.text();\n\t\tdetail = responseText;\n\t} catch {\n\t\tresponseText = void 0;\n\t\tdetail = null;\n\t}\n\tconst payload = detail;\n\tconst normalizedDetail = isRecord(payload) && Object.prototype.hasOwnProperty.call(payload, \"detail\") ? payload.detail : payload;\n\tconst reasonCode = isRecord(payload) ? normalizeReasonCode(payload.reason_code) ?? normalizeReasonCode(payload.reasonCode) ?? normalizeReasonCode(payload.code) ?? (isRecord(payload.error) ? normalizeReasonCode(payload.error.code ?? payload.error.reason_code) : void 0) : void 0;\n\tconst requestId = isRecord(payload) ? normalizeText(payload.request_id) ?? normalizeText(payload.requestId) ?? (isRecord(payload.error) ? normalizeText(payload.error.request_id ?? payload.error.requestId) : void 0) ?? response.headers.get(\"x-request-id\")?.trim() ?? void 0 : response.headers.get(\"x-request-id\")?.trim() ?? void 0;\n\tconst fieldErrors = isRecord(payload) ? normalizeFieldErrors(payload.field_errors ?? payload.fieldErrors ?? payload.errors) : [];\n\treturn {\n\t\tdetail: normalizedDetail,\n\t\tpayload,\n\t\tresponseText,\n\t\treasonCode,\n\t\trequestId,\n\t\tfieldErrors\n\t};\n};\n//#endregion\n//#region src/authentication/authentication.ts\nvar encoder = new TextEncoder();\nvar ServiceTokenGenerator = class {\n\tconstructor(settings) {\n\t\tthis.settings = settings;\n\t\tthis.cached = null;\n\t\tthis.secret = settings.serviceJwtSecret ? settings.serviceJwtSecret.trim() : null;\n\t}\n\tasync mint() {\n\t\tif (!this.secret) throw new ControlClientError(\"Service JWT secret missing; set SERVICE_JWT_SECRET / CONTROL_SERVICE_SECRET.\");\n\t\tconst now = Math.floor(Date.now() / 1e3);\n\t\tconst exp = now + this.settings.serviceTokenTtlSeconds;\n\t\tconst signer = new SignJWT({}).setProtectedHeader({ alg: \"HS256\" }).setIssuer(this.settings.serviceJwtIssuer).setSubject(this.settings.serviceName).setIssuedAt(now).setExpirationTime(exp);\n\t\tif (this.settings.serviceJwtAudience) signer.setAudience(this.settings.serviceJwtAudience);\n\t\treturn {\n\t\t\ttoken: await signer.sign(encoder.encode(this.secret)),\n\t\t\texp\n\t\t};\n\t}\n\tasync token(requireSecret) {\n\t\tconst now = Math.floor(Date.now() / 1e3);\n\t\tif (this.cached && this.cached.expiresAt - this.settings.clockSkewSeconds > now) return this.cached.token;\n\t\ttry {\n\t\t\tconst minted = await this.mint();\n\t\t\tthis.cached = {\n\t\t\t\ttoken: minted.token,\n\t\t\t\texpiresAt: minted.exp\n\t\t\t};\n\t\t\treturn minted.token;\n\t\t} catch (error) {\n\t\t\tif (requireSecret) throw error;\n\t\t\treturn null;\n\t\t}\n\t}\n};\nvar AuthHeaderProvider = class {\n\tconstructor(settings, generator) {\n\t\tthis.settings = settings;\n\t\tthis.generator = generator ?? new ServiceTokenGenerator(settings);\n\t}\n\tasync buildHeaders(requireServiceToken) {\n\t\tconst headers = {};\n\t\tconst serviceToken = await this.generator.token(requireServiceToken);\n\t\tif (serviceToken) headers[\"X-Service-Token\"] = serviceToken;\n\t\treturn headers;\n\t}\n};\n//#endregion\n//#region src/_shared/_logic/base-url/normalize-base-url.ts\nvar normalizeBaseUrl = (raw) => {\n\tif (!raw) return \"http://localhost:8000\";\n\tlet base = raw.trim().replace(/\\/+$/, \"\");\n\tconst lowered = base.toLowerCase();\n\tfor (const suffix of [\"/api/v1\", \"/api\"]) if (lowered.endsWith(suffix)) {\n\t\tbase = base.slice(0, -suffix.length);\n\t\tbreak;\n\t}\n\treturn base.replace(/\\/+$/, \"\");\n};\n//#endregion\n//#region src/configuration/configuration.ts\nvar DEFAULT_RETRY = {\n\tmaxAttempts: 1,\n\tbackoffMs: 0,\n\tretryStatusCodes: []\n};\nvar DEFAULT_SETTINGS = {\n\tbaseUrl: \"http://localhost:8000\",\n\tapiPrefix: \"/api/v1\",\n\tcredentials: \"include\",\n\tserviceJwtSecret: null,\n\tserviceJwtIssuer: \"kontextwerk-control\",\n\tserviceJwtAudience: void 0,\n\tserviceName: \"control-web-client\",\n\tserviceTokenTtlSeconds: 3600,\n\tclockSkewSeconds: 30,\n\ttimeoutMs: 12e4,\n\tretry: DEFAULT_RETRY,\n\tdefaultHeaders: {},\n\tuserAgent: \"control-web-client\"\n};\nvar getEnv = () => {\n\tconst processEnv = globalThis.process?.env;\n\tif (processEnv) return processEnv;\n\treturn null;\n};\nvar loadSettingsFromEnv = (overrides = {}) => {\n\tconst env = getEnv() || {};\n\tconst baseUrl = overrides.baseUrl || env.CONTROL_URL || env.CONTROL_BASE_URL || env.PLATFORM_CONTROL_URL || DEFAULT_SETTINGS.baseUrl;\n\tconst retryStatuses = env.CONTROL_RETRY_STATUSES ? env.CONTROL_RETRY_STATUSES.split(\",\").map((code) => Number(code.trim())).filter(Boolean) : void 0;\n\treturn {\n\t\t...DEFAULT_SETTINGS,\n\t\t...overrides,\n\t\tbaseUrl: normalizeBaseUrl(baseUrl),\n\t\tapiPrefix: overrides.apiPrefix || env.CONTROL_API_PREFIX || DEFAULT_SETTINGS.apiPrefix,\n\t\tserviceJwtSecret: overrides.serviceJwtSecret ?? env.SERVICE_JWT_SECRET ?? env.CONTROL_SERVICE_SECRET ?? env.CONTROL_JWT_SECRET ?? null,\n\t\tserviceJwtIssuer: overrides.serviceJwtIssuer ?? env.SERVICE_JWT_ISSUER ?? DEFAULT_SETTINGS.serviceJwtIssuer,\n\t\tserviceJwtAudience: overrides.serviceJwtAudience ?? env.SERVICE_JWT_AUDIENCE ?? void 0,\n\t\tserviceName: overrides.serviceName ?? env.SERVICE_NAME ?? env.CONTROL_SERVICE_NAME ?? DEFAULT_SETTINGS.serviceName,\n\t\tserviceTokenTtlSeconds: overrides.serviceTokenTtlSeconds ?? (env.SERVICE_JWT_TTL_SECONDS ? Number(env.SERVICE_JWT_TTL_SECONDS) : DEFAULT_SETTINGS.serviceTokenTtlSeconds),\n\t\tclockSkewSeconds: overrides.clockSkewSeconds ?? (env.SERVICE_JWT_CLOCK_SKEW_SECONDS ? Number(env.SERVICE_JWT_CLOCK_SKEW_SECONDS) : DEFAULT_SETTINGS.clockSkewSeconds),\n\t\ttimeoutMs: overrides.timeoutMs ?? (env.CONTROL_TIMEOUT_SECONDS ? Number(env.CONTROL_TIMEOUT_SECONDS) * 1e3 : DEFAULT_SETTINGS.timeoutMs),\n\t\tcredentials: overrides.credentials ?? env.CONTROL_FETCH_CREDENTIALS ?? DEFAULT_SETTINGS.credentials,\n\t\tretry: {\n\t\t\tmaxAttempts: overrides.retry?.maxAttempts ?? (env.CONTROL_RETRIES ? Number(env.CONTROL_RETRIES) : DEFAULT_RETRY.maxAttempts),\n\t\t\tbackoffMs: overrides.retry?.backoffMs ?? (env.CONTROL_RETRY_BACKOFF_SECONDS ? Number(env.CONTROL_RETRY_BACKOFF_SECONDS) * 1e3 : DEFAULT_RETRY.backoffMs),\n\t\t\tretryStatusCodes: overrides.retry?.retryStatusCodes ?? retryStatuses ?? DEFAULT_RETRY.retryStatusCodes\n\t\t},\n\t\tdefaultHeaders: {\n\t\t\t...DEFAULT_SETTINGS.defaultHeaders,\n\t\t\t...overrides.defaultHeaders ?? {}\n\t\t},\n\t\tuserAgent: overrides.userAgent ?? env.CONTROL_CLIENT_USER_AGENT ?? DEFAULT_SETTINGS.userAgent,\n\t\tfetchImpl: overrides.fetchImpl ?? DEFAULT_SETTINGS.fetchImpl\n\t};\n};\n//#endregion\n//#region src/context-session/index.ts\n/** Login deliberately cannot return or accept the legacy user-role session. */\nvar parseContextLoginResponse = (value) => {\n\tif (value && typeof value === \"object\" && \"context_selection_required\" in value) return parseLoginContextSelection(value);\n\tconst input = record$4(value, [\n\t\t\"two_factor_required\",\n\t\t\"channel\",\n\t\t\"destination\",\n\t\t\"expires_at\",\n\t\t\"message\"\n\t]);\n\tif (input.two_factor_required !== true || input.channel !== \"email\") return reject$1();\n\tconst optional = (key) => input[key] == null ? null : string$1(input[key]);\n\tconst expires_at = optional(\"expires_at\");\n\tif (expires_at !== null && !Number.isFinite(Date.parse(expires_at))) return reject$1();\n\treturn Object.freeze({\n\t\ttwo_factor_required: true,\n\t\tchannel: \"email\",\n\t\tdestination: optional(\"destination\"),\n\t\texpires_at,\n\t\tmessage: optional(\"message\")\n\t});\n};\nvar buildContextLoginRequest = (value) => {\n\tconst input = record$4(value, [\n\t\t\"email\",\n\t\t\"password\",\n\t\t\"two_factor_code\",\n\t\t\"remember_mfa_device\"\n\t]);\n\tif (input.remember_mfa_device !== void 0 && typeof input.remember_mfa_device !== \"boolean\") return reject$1();\n\tif (input.two_factor_code !== void 0 && !/^\\d{6,32}$/.test(string$1(input.two_factor_code))) return reject$1();\n\treturn Object.freeze({\n\t\temail: string$1(input.email, true),\n\t\tpassword: string$1(input.password, true),\n\t\t...input.two_factor_code === void 0 ? {} : { two_factor_code: string$1(input.two_factor_code) },\n\t\t...input.remember_mfa_device === void 0 ? {} : { remember_mfa_device: input.remember_mfa_device }\n\t});\n};\nvar ContextSessionContractError = class extends Error {\n\tconstructor() {\n\t\tsuper(\"Invalid context session contract\");\n\t\tthis.name = \"ContextSessionContractError\";\n\t}\n};\nvar reject$1 = () => {\n\tthrow new ContextSessionContractError();\n};\nvar record$4 = (value, keys) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return reject$1();\n\tif (Object.keys(value).some((key) => !keys.includes(key))) return reject$1();\n\treturn value;\n};\nvar string$1 = (value, nonempty = false) => {\n\tif (typeof value !== \"string\" || nonempty && !value.length) return reject$1();\n\treturn value;\n};\nvar uuid$1 = (value) => {\n\tconst result = string$1(value);\n\tif (!/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i.test(result)) return reject$1();\n\treturn result;\n};\nvar revision$2 = (value) => {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value <= 0) return reject$1();\n\treturn value;\n};\n/** Copy the initiating public correlation pair; never read or derive it from a cookie. */\nvar createContextMutationPrecondition = (value) => {\n\tconst input = record$4(value, [\"expected_session_id\", \"expected_context_revision\"]);\n\tconst sessionId = string$1(input.expected_session_id);\n\tif (!/^[a-f0-9]{64}$/.test(sessionId)) return reject$1();\n\treturn Object.freeze({\n\t\texpected_session_id: sessionId,\n\t\texpected_context_revision: revision$2(input.expected_context_revision)\n\t});\n};\nvar buildSelectLoginContextRequest = (selector) => {\n\tif (!selector || selector.kind !== \"organization\" && selector.kind !== \"platform\") return reject$1();\n\tconst input = record$4(selector, selector.kind === \"organization\" ? [\"kind\", \"membership_id\"] : [\"kind\", \"assignment_id\"]);\n\tconst context = selector.kind === \"organization\" ? Object.freeze({\n\t\tkind: \"organization\",\n\t\tmembership_id: uuid$1(input.membership_id)\n\t}) : Object.freeze({\n\t\tkind: \"platform\",\n\t\tassignment_id: uuid$1(input.assignment_id)\n\t});\n\treturn Object.freeze({ context });\n};\nvar buildSwitchSessionContextRequest = (selector, precondition) => Object.freeze({\n\t...buildSelectLoginContextRequest(selector),\n\t...createContextMutationPrecondition(precondition)\n});\n/** Decode the bare live-choice list, also used by the pending-login response's contexts field. */\nvar parseContextChoices = (value) => {\n\tif (!Array.isArray(value)) return reject$1();\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst choices = value.map((choice) => {\n\t\tif (!choice || typeof choice !== \"object\") return reject$1();\n\t\tif (choice.kind === \"organization\") {\n\t\t\tconst input = record$4(choice, [\n\t\t\t\t\"kind\",\n\t\t\t\t\"membership_id\",\n\t\t\t\t\"organization_name\",\n\t\t\t\t\"role_name\"\n\t\t\t]);\n\t\t\tconst membershipId = uuid$1(input.membership_id);\n\t\t\tconst key = `organization:${membershipId.toLowerCase()}`;\n\t\t\tif (seen.has(key)) return reject$1();\n\t\t\tseen.add(key);\n\t\t\treturn Object.freeze({\n\t\t\t\tkind: \"organization\",\n\t\t\t\tmembership_id: membershipId,\n\t\t\t\torganization_name: string$1(input.organization_name),\n\t\t\t\trole_name: string$1(input.role_name)\n\t\t\t});\n\t\t}\n\t\tif (choice.kind !== \"platform\") return reject$1();\n\t\tconst input = record$4(choice, [\n\t\t\t\"kind\",\n\t\t\t\"assignment_id\",\n\t\t\t\"role\"\n\t\t]);\n\t\tconst assignmentId = uuid$1(input.assignment_id);\n\t\tconst key = `platform:${assignmentId.toLowerCase()}`;\n\t\tif (seen.has(key)) return reject$1();\n\t\tif (input.role !== \"platform_administrator\" && input.role !== \"support_agent\") return reject$1();\n\t\tseen.add(key);\n\t\treturn Object.freeze({\n\t\t\tkind: \"platform\",\n\t\t\tassignment_id: assignmentId,\n\t\t\trole: input.role\n\t\t});\n\t});\n\treturn Object.freeze(choices);\n};\nvar parseLoginContextSelection = (value) => {\n\tconst input = record$4(value, [\n\t\t\"context_selection_required\",\n\t\t\"contexts\",\n\t\t\"expires_at\"\n\t]);\n\tif (input.context_selection_required !== true) return reject$1();\n\tconst contexts = parseContextChoices(input.contexts);\n\tconst expiresAt = string$1(input.expires_at, true);\n\tif (!Number.isFinite(Date.parse(expiresAt))) return reject$1();\n\treturn Object.freeze({\n\t\tcontext_selection_required: true,\n\t\tcontexts,\n\t\texpires_at: expiresAt\n\t});\n};\nvar delegation = (value) => {\n\tif (value === void 0 || value === null) return null;\n\tconst input = record$4(value, [\n\t\t\"id\",\n\t\t\"staff_assignment_id\",\n\t\t\"represented_user_id\",\n\t\t\"reason\",\n\t\t\"expires_at\"\n\t]);\n\tconst expiresAt = string$1(input.expires_at, true);\n\tif (!Number.isFinite(Date.parse(expiresAt))) return reject$1();\n\treturn Object.freeze({\n\t\tid: uuid$1(input.id),\n\t\tstaff_assignment_id: uuid$1(input.staff_assignment_id),\n\t\trepresented_user_id: uuid$1(input.represented_user_id),\n\t\treason: string$1(input.reason, true),\n\t\texpires_at: expiresAt\n\t});\n};\nvar grant = (value) => {\n\tconst input = record$4(value, [\n\t\t\"key\",\n\t\t\"level\",\n\t\t\"scope\"\n\t]);\n\tconst key = string$1(input.key);\n\tconst level = input.level;\n\tconst scope = input.scope ?? null;\n\tif (key.length > 120 || !/^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$/.test(key)) return reject$1();\n\tif (level !== \"none\" && level !== \"view\" && level !== \"manage\") return reject$1();\n\tif (scope !== null && scope !== \"own\" && scope !== \"all\") return reject$1();\n\tif (level === \"none\" && scope !== null) return reject$1();\n\treturn Object.freeze({\n\t\tkey,\n\t\tlevel,\n\t\tscope: scope === \"own\" || scope === \"all\" ? scope : null\n\t});\n};\nvar context = (value) => {\n\tif (!value || typeof value !== \"object\" || !(\"kind\" in value)) return reject$1();\n\tif (value.kind === \"platform\") {\n\t\tconst input = record$4(value, [\n\t\t\t\"kind\",\n\t\t\t\"assignment_id\",\n\t\t\t\"assignment_revision\",\n\t\t\t\"role\"\n\t\t]);\n\t\tconst role = input.role;\n\t\tif (role !== \"platform_administrator\" && role !== \"support_agent\") return reject$1();\n\t\treturn Object.freeze({\n\t\t\tkind: \"platform\",\n\t\t\tassignment_id: uuid$1(input.assignment_id),\n\t\t\tassignment_revision: revision$2(input.assignment_revision),\n\t\t\trole\n\t\t});\n\t}\n\tif (value.kind !== \"organization\") return reject$1();\n\tconst input = record$4(value, [\n\t\t\"kind\",\n\t\t\"membership_id\",\n\t\t\"membership_revision\",\n\t\t\"organization_id\",\n\t\t\"organization_name\",\n\t\t\"role_id\",\n\t\t\"role_revision\",\n\t\t\"role_name\",\n\t\t\"capabilities\",\n\t\t\"delegation\"\n\t]);\n\tif (!Array.isArray(input.capabilities)) return reject$1();\n\tconst capabilities = input.capabilities.map(grant);\n\tif (new Set(capabilities.map((item) => item.key)).size !== capabilities.length) return reject$1();\n\treturn Object.freeze({\n\t\tkind: \"organization\",\n\t\tmembership_id: uuid$1(input.membership_id),\n\t\tmembership_revision: revision$2(input.membership_revision),\n\t\torganization_id: uuid$1(input.organization_id),\n\t\torganization_name: string$1(input.organization_name),\n\t\trole_id: uuid$1(input.role_id),\n\t\trole_revision: revision$2(input.role_revision),\n\t\trole_name: string$1(input.role_name),\n\t\tcapabilities: Object.freeze(capabilities),\n\t\tdelegation: delegation(input.delegation)\n\t});\n};\n/** The actual signed-in identity, never the represented member in a support context. */\nvar parseIdentityResponse = (value) => {\n\tconst user = record$4(value, [\n\t\t\"id\",\n\t\t\"email\",\n\t\t\"username\",\n\t\t\"first_name\",\n\t\t\"last_name\",\n\t\t\"profile_image_url\"\n\t]);\n\treturn Object.freeze({\n\t\tid: uuid$1(user.id),\n\t\temail: string$1(user.email),\n\t\tusername: string$1(user.username),\n\t\tfirst_name: string$1(user.first_name),\n\t\tlast_name: string$1(user.last_name),\n\t\tprofile_image_url: user.profile_image_url == null ? null : string$1(user.profile_image_url)\n\t});\n};\n/** Decode v2 only. Catalog validation remains with the capability projection owner. */\nvar parseContextSession = (value) => {\n\tconst input = record$4(value, [\n\t\t\"contract_version\",\n\t\t\"product_issuer\",\n\t\t\"session_id\",\n\t\t\"context_revision\",\n\t\t\"user\",\n\t\t\"context\",\n\t\t\"password_change_required\"\n\t]);\n\tif (input.contract_version !== 2) return reject$1();\n\tconst passwordChangeRequired = input.password_change_required === void 0 ? false : input.password_change_required;\n\tif (typeof passwordChangeRequired !== \"boolean\") return reject$1();\n\treturn Object.freeze({\n\t\tcontract_version: 2,\n\t\tproduct_issuer: string$1(input.product_issuer, true),\n\t\tsession_id: string$1(input.session_id, true),\n\t\tcontext_revision: revision$2(input.context_revision),\n\t\tuser: parseIdentityResponse(input.user),\n\t\tcontext: context(input.context),\n\t\tpassword_change_required: passwordChangeRequired\n\t});\n};\n//#endregion\n//#region src/transport/_logic/join-path.ts\nvar joinPath = (prefix, path) => {\n\treturn `${prefix.endsWith(\"/\") ? prefix.slice(0, -1) : prefix}${path.startsWith(\"/\") ? path : `/${path}`}`;\n};\n//#endregion\n//#region src/transport/transport.ts\nvar isJsonifiable = (value) => value !== void 0 && value !== null && typeof value === \"object\" && !(value instanceof Blob) && !(value instanceof FormData) && !(value instanceof ArrayBuffer);\nvar CSRF_HEADER$1 = \"X-CSRF-Token\";\nvar CSRF_COOKIE_NAMES$1 = [\"__Host-control_admin_csrf\"];\nvar csrfTokensByOrigin = /* @__PURE__ */ new Map();\nvar csrfProtectedMethods = new Set([\n\t\"POST\",\n\t\"PUT\",\n\t\"PATCH\",\n\t\"DELETE\"\n]);\nvar safeMethods = new Set([\n\t\"GET\",\n\t\"HEAD\",\n\t\"OPTIONS\"\n]);\nvar readCookie$1 = (name) => {\n\tif (typeof document === \"undefined\") return null;\n\tconst prefix = `${encodeURIComponent(name)}=`;\n\tconst entry = document.cookie.split(\";\").map((part) => part.trim()).find((part) => part.startsWith(prefix));\n\tif (!entry) return null;\n\treturn decodeURIComponent(entry.slice(prefix.length));\n};\nvar readCsrfToken = () => {\n\tfor (const name of CSRF_COOKIE_NAMES$1) {\n\t\tconst value = readCookie$1(name);\n\t\tif (value) return value;\n\t}\n\treturn null;\n};\nvar resolveUrlOrigin = (url) => {\n\ttry {\n\t\treturn new URL(url).origin;\n\t} catch {\n\t\treturn null;\n\t}\n};\nvar isSameBrowserOrigin = (origin) => {\n\tif (!origin || typeof window === \"undefined\") return true;\n\treturn origin === window.location.origin;\n};\nvar FetchTransport = class {\n\t/** Explicit read recovery/logout only; does not send or replay a request. */\n\tclearCsrfToken() {\n\t\tthis.csrfToken = null;\n\t\tconst origin = resolveUrlOrigin(this.settings.baseUrl);\n\t\tif (origin) csrfTokensByOrigin.delete(origin);\n\t}\n\tconstructor(settings, auth, hooks, contextBinding, contextCapture) {\n\t\tthis.settings = settings;\n\t\tthis.auth = auth;\n\t\tthis.contextBinding = contextBinding;\n\t\tthis.contextCapture = contextCapture;\n\t\tthis.csrfToken = null;\n\t\tif (contextBinding !== void 0 && contextBinding !== \"required\") throw new ContextSessionContractError();\n\t\tconst nativeFetch = settings.fetchImpl ?? (typeof fetch !== \"undefined\" ? fetch : void 0);\n\t\tif (!nativeFetch) throw new ControlClientError(\"No fetch implementation available; provide settings.fetchImpl.\");\n\t\tthis.fetchImpl = nativeFetch.bind(globalThis);\n\t\tthis.hooks = hooks ?? {};\n\t}\n\tasync request(method, path, options = {}) {\n\t\treturn (await this.requestWithMeta(method, path, options)).data;\n\t}\n\t/** A protected request without a confirmed context belongs to no current owner. */\n\tcaptureContext() {\n\t\tconst captured = this.contextCapture?.() ?? null;\n\t\tif (!captured) throw new DOMException(\"No confirmed context\", \"AbortError\");\n\t\tif (captured.signal.aborted || !captured.isCurrent()) throw new DOMException(\"Obsolete request\", \"AbortError\");\n\t\treturn Object.freeze({\n\t\t\tmutationContext: createContextMutationPrecondition(captured.mutationContext),\n\t\t\tsignal: captured.signal,\n\t\t\tisCurrent: captured.isCurrent\n\t\t});\n\t}\n\tasync requestWithMeta(method, path, options = {}) {\n\t\tconst explicitContext = options.mutationContext === void 0 ? null : createContextMutationPrecondition(options.mutationContext);\n\t\tif (explicitContext && options.withAuth === false) throw new ContextSessionContractError();\n\t\tconst capturedContext = explicitContext === null && options.withAuth !== false && this.contextCapture ? this.captureContext() : null;\n\t\tconst mutationContext = explicitContext ?? capturedContext?.mutationContext ?? null;\n\t\tconst requestSignals = [options.signal, capturedContext?.signal].filter((signal) => signal !== void 0);\n\t\tconst obsolete = () => requestSignals.some((signal) => signal.aborted) || options.isCurrent?.() === false || capturedContext?.isCurrent() === false;\n\t\tconst assertMutationBinding = (requestMethod) => {\n\t\t\tif (this.contextBinding === \"required\" && !safeMethods.has(requestMethod.toUpperCase()) && !mutationContext) throw new ContextSessionContractError();\n\t\t};\n\t\tassertMutationBinding(method);\n\t\tconst bindMutationHeaders = (headers) => {\n\t\t\tif (!mutationContext) return;\n\t\t\theaders.set(\"X-Control-Session-Id\", mutationContext.expected_session_id);\n\t\t\theaders.set(\"X-Control-Context-Revision\", String(mutationContext.expected_context_revision));\n\t\t};\n\t\tconst assertCurrent = () => {\n\t\t\tif (obsolete()) throw new DOMException(\"Obsolete request\", \"AbortError\");\n\t\t};\n\t\tassertCurrent();\n\t\tconst url = this.buildUrl(path, options.params);\n\t\tconst urlOrigin = resolveUrlOrigin(url);\n\t\tconst withAuth = options.withAuth ?? true;\n\t\tconst headers = await this.prepareHeaders(options.headers, options.requireServiceToken ?? false, withAuth);\n\t\tbindMutationHeaders(headers);\n\t\tawait this.prepareCsrfHeader(headers, method, withAuth, urlOrigin);\n\t\tif (options.requireCsrf && !headers.get(CSRF_HEADER$1)?.trim()) throw new ControlClientError(\"CSRF proof unavailable\", { statusCode: 403 });\n\t\tconst neverReplay = options.retry === \"never\" || explicitContext !== null || capturedContext !== null && !safeMethods.has(method.toUpperCase());\n\t\tconst requestAttempts = neverReplay ? 1 : Math.max(1, this.settings.retry.maxAttempts);\n\t\tconst canRetryCsrf = !neverReplay && withAuth && csrfProtectedMethods.has(method.toUpperCase());\n\t\tconst maxAttempts = requestAttempts + (canRetryCsrf ? 1 : 0);\n\t\tlet csrfRetryUsed = false;\n\t\tlet lastError;\n\t\tfor (let attempt = 0; attempt < maxAttempts; attempt++) {\n\t\t\tassertCurrent();\n\t\t\tconst controller = new AbortController();\n\t\t\tconst abort = () => controller.abort();\n\t\t\trequestSignals.forEach((signal) => signal.addEventListener(\"abort\", abort, { once: true }));\n\t\t\tif (requestSignals.some((signal) => signal.aborted)) controller.abort();\n\t\t\tconst signal = controller.signal;\n\t\t\tconst timeout = setTimeout(abort, this.settings.timeoutMs);\n\t\t\tconst init = {\n\t\t\t\tmethod,\n\t\t\t\theaders,\n\t\t\t\tsignal,\n\t\t\t\tcredentials: this.settings.credentials ?? \"same-origin\"\n\t\t\t};\n\t\t\tif (options.json !== void 0) {\n\t\t\t\tinit.body = JSON.stringify(options.json);\n\t\t\t\tif (!headers.has(\"Content-Type\")) headers.set(\"Content-Type\", \"application/json\");\n\t\t\t} else if (options.body !== void 0 && options.body !== null) if (isJsonifiable(options.body)) {\n\t\t\t\tinit.body = JSON.stringify(options.body);\n\t\t\t\tif (!headers.has(\"Content-Type\")) headers.set(\"Content-Type\", \"application/json\");\n\t\t\t} else init.body = options.body;\n\t\t\ttry {\n\t\t\t\tif (this.hooks.onRequest) await this.hooks.onRequest(url, init);\n\t\t\t\tassertCurrent();\n\t\t\t\tassertMutationBinding(init.method ?? \"GET\");\n\t\t\t\tif (mutationContext) {\n\t\t\t\t\tconst boundHeaders = new Headers(init.headers);\n\t\t\t\t\tbindMutationHeaders(boundHeaders);\n\t\t\t\t\tinit.headers = boundHeaders;\n\t\t\t\t}\n\t\t\t\tconst response = await this.fetchImpl(url, init);\n\t\t\t\tif (obsolete()) throw new DOMException(\"Obsolete request\", \"AbortError\");\n\t\t\t\tthis.captureCsrfToken(response, urlOrigin);\n\t\t\t\tif (this.hooks.onResponse) await this.hooks.onResponse(response);\n\t\t\t\tif (response.status >= 400) {\n\t\t\t\t\tif (!csrfRetryUsed && canRetryCsrf && response.status === 403) {\n\t\t\t\t\t\tcsrfRetryUsed = true;\n\t\t\t\t\t\tconst responseCsrfToken = response.headers.get(CSRF_HEADER$1)?.trim();\n\t\t\t\t\t\theaders.delete(CSRF_HEADER$1);\n\t\t\t\t\t\tif (responseCsrfToken) {\n\t\t\t\t\t\t\theaders.set(CSRF_HEADER$1, responseCsrfToken);\n\t\t\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (await this.refreshCsrfHeader(headers, method, withAuth, urlOrigin)) {\n\t\t\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst error = await this.toError(response);\n\t\t\t\t\tif (attempt < requestAttempts - 1 && this.settings.retry.retryStatusCodes.includes(response.status)) {\n\t\t\t\t\t\tawait this.sleep(this.settings.retry.backoffMs);\n\t\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tconst data = await this.parse(response, options.responseType ?? \"auto\");\n\t\t\t\tif (obsolete()) throw new DOMException(\"Obsolete request\", \"AbortError\");\n\t\t\t\treturn {\n\t\t\t\t\tdata,\n\t\t\t\t\theaders: response.headers,\n\t\t\t\t\tstatus: response.status\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\tlastError = error;\n\t\t\t\tif (error instanceof ContextSessionContractError) throw error;\n\t\t\t\tif (obsolete()) throw error;\n\t\t\t\tif (this.hooks.onError) await this.hooks.onError(error, {\n\t\t\t\t\turl,\n\t\t\t\t\trequest: init\n\t\t\t\t});\n\t\t\t\tconst statusCode = error instanceof ControlClientError ? error.statusCodeOrStatus : void 0;\n\t\t\t\tif (!(error instanceof ControlClientError) || !statusCode || statusCode >= 500) console.error(\"[control-web-client] request failed\", {\n\t\t\t\t\turl,\n\t\t\t\t\tmethod,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t\tif (attempt >= requestAttempts - 1) {\n\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\tif (error instanceof ControlClientError) throw error;\n\t\t\t\t\tthrow new ControlClientError(\"Request failed\", { detail: error });\n\t\t\t\t}\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tawait this.sleep(this.settings.retry.backoffMs);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\trequestSignals.forEach((signal) => signal.removeEventListener(\"abort\", abort));\n\t\t\t}\n\t\t}\n\t\tif (lastError instanceof ControlClientError) throw lastError;\n\t\tthrow new ControlClientError(\"Request aborted after retries.\");\n\t}\n\tasync prepareHeaders(extra, requireServiceToken, withAuth) {\n\t\tconst headers = new Headers();\n\t\tfor (const [key, value] of Object.entries(this.settings.defaultHeaders)) headers.set(key, value);\n\t\tif (this.settings.userAgent && typeof window === \"undefined\") headers.set(\"User-Agent\", this.settings.userAgent);\n\t\tif (withAuth) {\n\t\t\tconst authHeaders = await this.auth.buildHeaders(requireServiceToken);\n\t\t\tObject.entries(authHeaders).forEach(([key, value]) => headers.set(key, value));\n\t\t}\n\t\tif (extra) Object.entries(extra).forEach(([key, value]) => headers.set(key, value));\n\t\treturn headers;\n\t}\n\tasync prepareCsrfHeader(headers, method, withAuth, urlOrigin, forceRefresh = false) {\n\t\tif (!withAuth || headers.has(CSRF_HEADER$1)) return headers.has(CSRF_HEADER$1);\n\t\tif (!csrfProtectedMethods.has(method.toUpperCase())) return false;\n\t\tif (forceRefresh) {\n\t\t\tthis.csrfToken = null;\n\t\t\tif (urlOrigin) csrfTokensByOrigin.delete(urlOrigin);\n\t\t}\n\t\tlet token = forceRefresh ? null : urlOrigin ? csrfTokensByOrigin.get(urlOrigin) ?? null : this.csrfToken;\n\t\tif (!token && isSameBrowserOrigin(urlOrigin)) token = readCsrfToken();\n\t\tif (!token && forceRefresh && urlOrigin && (this.settings.credentials ?? \"same-origin\") !== \"omit\") token = await this.fetchCsrfToken(urlOrigin);\n\t\tif (token) {\n\t\t\theaders.set(CSRF_HEADER$1, token);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tasync refreshCsrfHeader(headers, method, withAuth, urlOrigin) {\n\t\theaders.delete(CSRF_HEADER$1);\n\t\treturn this.prepareCsrfHeader(headers, method, withAuth, urlOrigin, true);\n\t}\n\tasync fetchCsrfToken(urlOrigin) {\n\t\ttry {\n\t\t\tconst response = await this.fetchImpl(this.buildUrl(\"/admin/auth/session\"), {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tcredentials: this.settings.credentials ?? \"same-origin\"\n\t\t\t});\n\t\t\tthis.captureCsrfToken(response, urlOrigin);\n\t\t\treturn this.csrfToken;\n\t\t} catch (error) {\n\t\t\tconsole.warn(\"[control-web-client] csrf bootstrap failed\", error);\n\t\t\treturn null;\n\t\t}\n\t}\n\tcaptureCsrfToken(response, urlOrigin) {\n\t\tconst token = response.headers.get(CSRF_HEADER$1)?.trim();\n\t\tif (token) {\n\t\t\tthis.csrfToken = token;\n\t\t\tif (urlOrigin) csrfTokensByOrigin.set(urlOrigin, token);\n\t\t}\n\t}\n\tbuildUrl(path, params) {\n\t\tconst normalizedPath = path.startsWith(\"/\") ? path : `/${path}`;\n\t\tconst prefix = this.settings.apiPrefix.endsWith(\"/\") ? this.settings.apiPrefix.slice(0, -1) : this.settings.apiPrefix;\n\t\tconst finalPath = normalizedPath.startsWith(prefix) ? normalizedPath : joinPath(prefix, normalizedPath);\n\t\tconst url = `${this.settings.baseUrl.replace(/\\/+$/, \"\")}${finalPath}`;\n\t\tif (!params) return url;\n\t\tconst search = new URLSearchParams();\n\t\tObject.entries(params).forEach(([key, value]) => {\n\t\t\tif (value === void 0 || value === null) return;\n\t\t\tif (Array.isArray(value)) value.forEach((entry) => {\n\t\t\t\tif (entry === void 0 || entry === null) return;\n\t\t\t\tsearch.append(key, String(entry));\n\t\t\t});\n\t\t\telse search.set(key, String(value));\n\t\t});\n\t\tconst qs = search.toString();\n\t\treturn qs ? `${url}?${qs}` : url;\n\t}\n\tasync parse(response, responseType) {\n\t\tif (response.status === 204) return null;\n\t\tif (responseType === \"blob\") return response.blob();\n\t\tif (responseType === \"arrayBuffer\") return response.arrayBuffer();\n\t\tconst contentType = response.headers.get(\"content-type\") || \"\";\n\t\tif (responseType === \"json\" || responseType === \"auto\" && contentType.includes(\"application/json\")) return response.json();\n\t\tif (responseType === \"text\" || responseType === \"auto\") return response.text();\n\t\treturn response.text();\n\t}\n\tasync toError(response) {\n\t\tconst { detail, responseText, reasonCode, requestId, fieldErrors } = await parseErrorPayload(response);\n\t\treturn new ControlClientError(resolveApiErrorMessage(detail, {\n\t\t\tstatusCode: response.status,\n\t\t\tstatusText: response.statusText\n\t\t}), {\n\t\t\tstatusCode: response.status,\n\t\t\tdetail,\n\t\t\tresponseText,\n\t\t\trequestId: requestId ?? response.headers.get(\"x-request-id\") ?? void 0,\n\t\t\treasonCode,\n\t\t\tfieldErrors\n\t\t});\n\t}\n\tasync sleep(ms) {\n\t\treturn new Promise((resolve) => setTimeout(resolve, ms));\n\t}\n};\n//#endregion\n//#region src/resources/_shared/_logic/resource-base/resource-base.ts\nvar normalizeAdminPath = (path) => {\n\tif (path.startsWith(\"/admin\")) return path;\n\tif (!path.startsWith(\"/\")) return `/admin/${path}`;\n\treturn `/admin${path}`;\n};\nvar normalizePublicPath = (path) => {\n\tif (path.startsWith(\"/public\")) return path;\n\tif (!path.startsWith(\"/\")) return `/public/${path}`;\n\treturn `/public${path}`;\n};\nvar pickDefined = (payload, keys) => {\n\tconst result = {};\n\tfor (const key of keys) {\n\t\tconst value = payload[key];\n\t\tif (value !== void 0) result[key] = value;\n\t}\n\treturn result;\n};\nvar AdminResource = class {\n\tconstructor(transport) {\n\t\tthis.transport = transport;\n\t}\n\tasync request(method, path, options = {}) {\n\t\treturn this.transport.request(method, normalizeAdminPath(path), {\n\t\t\t...options,\n\t\t\twithAuth: options.withAuth ?? true\n\t\t});\n\t}\n};\nvar PublicResource = class {\n\tconstructor(transport) {\n\t\tthis.transport = transport;\n\t}\n\tasync request(method, path, options = {}) {\n\t\treturn this.transport.request(method, normalizePublicPath(path), {\n\t\t\t...options,\n\t\t\twithAuth: options.withAuth ?? false\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/appSettings.ts\nvar appSettingsUpdatePayload = (payload) => pickDefined(payload, [\"allowed_origins\", \"public_site\"]);\nvar AdminAppSettingsAPI = class extends AdminResource {\n\tasync get() {\n\t\treturn this.request(\"GET\", \"/app-settings\");\n\t}\n\tasync update(payload) {\n\t\treturn this.request(\"PUT\", \"/app-settings\", { json: appSettingsUpdatePayload(payload) });\n\t}\n};\n//#endregion\n//#region src/resources/admin/branding.ts\nvar assetPath$1 = (assetKind) => `/branding/assets/${encodeURIComponent(assetKind)}`;\nvar generationPath$1 = (generationId) => {\n\tconst base = \"/branding/generations\";\n\treturn generationId ? `${base}/${encodeURIComponent(generationId)}` : base;\n};\nvar fileUploadBody$1 = (file, fieldName = \"file\") => {\n\tconst body = new FormData();\n\tbody.append(fieldName, file);\n\treturn body;\n};\nvar brandingGenerationBody$1 = (options) => {\n\tconst body = new FormData();\n\tconst generationMode = options.generationMode ?? \"reference_variants\";\n\tbody.append(\"generation_mode\", generationMode);\n\tif (options.file) body.append(\"file\", options.file);\n\tconst trimmedPrompt = options.designPrompt?.trim();\n\tif (generationMode === \"prompt_design\" && trimmedPrompt) body.append(\"design_prompt\", trimmedPrompt);\n\tif (options.autoApplyOnSuccess) body.append(\"auto_apply_on_success\", \"true\");\n\treturn body;\n};\nvar AdminBrandingAPI = class extends AdminResource {\n\tasync get() {\n\t\treturn this.request(\"GET\", \"/branding\");\n\t}\n\tasync uploadAsset(assetKind, file) {\n\t\treturn this.request(\"PUT\", assetPath$1(assetKind), { body: fileUploadBody$1(file) });\n\t}\n\tasync deleteAsset(assetKind) {\n\t\treturn this.request(\"DELETE\", assetPath$1(assetKind));\n\t}\n\tasync startGeneration(options) {\n\t\tconst body = brandingGenerationBody$1(options);\n\t\treturn this.request(\"POST\", generationPath$1(), { body });\n\t}\n\tasync getGeneration(generationId) {\n\t\treturn this.request(\"GET\", generationPath$1(generationId));\n\t}\n\tasync applyGeneration(generationId) {\n\t\treturn this.request(\"POST\", `${generationPath$1(generationId)}/apply`);\n\t}\n\t/** Download a protected preview through the authenticated admin transport. */\n\tasync downloadGenerationAsset(generationId, assetKind, options = {}) {\n\t\treturn this.request(\"GET\", `${generationPath$1(generationId)}/assets/${encodeURIComponent(assetKind)}`, {\n\t\t\tresponseType: \"blob\",\n\t\t\tsignal: options.signal\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/contactProfiles.ts\nvar encode$1 = (value) => encodeURIComponent(value);\nvar contactProfilePayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"phone\",\n\t\"email\",\n\t\"address\",\n\t\"service_hours\",\n\t\"availability_policy_id\"\n]);\nvar AdminContactProfilesAPI = class extends AdminResource {\n\tasync list(organizationId) {\n\t\treturn this.request(\"GET\", `/organizations/${encode$1(organizationId)}/contact-profiles`);\n\t}\n\tasync create(organizationId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encode$1(organizationId)}/contact-profiles`, { json: contactProfilePayload(payload) });\n\t}\n\tasync update(organizationId, contactProfileId, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encode$1(organizationId)}/contact-profiles/${encode$1(contactProfileId)}`, { json: contactProfilePayload(payload) });\n\t}\n\tasync delete(organizationId, contactProfileId) {\n\t\tawait this.request(\"DELETE\", `/organizations/${encode$1(organizationId)}/contact-profiles/${encode$1(contactProfileId)}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/audit.ts\nvar normalizeQuery$1 = (params) => ({\n\tprojection: params?.projection,\n\torganization_id: params?.org_id,\n\tproject_id: params?.project_id,\n\tactions: params?.actions,\n\tsources: params?.sources,\n\tresource_type: params?.resource_type,\n\tactor_id: params?.actor_id,\n\tevent_types: params?.event_types,\n\tcategory: params?.category,\n\tobject_type: params?.object_type,\n\tobject_id: params?.object_id,\n\tq: params?.q,\n\tsince: params?.since,\n\tuntil: params?.until,\n\tlimit: params?.limit,\n\toffset: params?.offset,\n\tsort_by: params?.sort_by,\n\tsort_dir: params?.sort_dir\n});\nvar AdminAuditAPI = class extends AdminResource {\n\tasync list(params) {\n\t\treturn this.request(\"GET\", \"/audit/events\", { params: normalizeQuery$1(params) });\n\t}\n\tasync listForOrg(orgId, params) {\n\t\treturn this.request(\"GET\", \"/audit/events\", { params: {\n\t\t\t...normalizeQuery$1(params),\n\t\t\torganization_id: orgId\n\t\t} });\n\t}\n};\n//#endregion\n//#region src/resources/admin/activity.ts\n/** Authorized history and collaborative notes; never derives access from references. */\nvar AdminActivityAPI = class extends AdminResource {\n\tsearchTargets(organizationId, query) {\n\t\treturn this.request(\"GET\", \"/activity/targets\", { params: {\n\t\t\torganization_id: organizationId,\n\t\t\tq: query,\n\t\t\tlimit: 20\n\t\t} });\n\t}\n\tlistCatalog() {\n\t\treturn this.request(\"GET\", \"/activity/catalog\");\n\t}\n\tlistPanel(query) {\n\t\treturn this.request(\"GET\", `/activity/objects/${encodeURIComponent(query.object_type)}/${encodeURIComponent(query.object_id)}`, { params: {\n\t\t\torganization_id: query.organization_id,\n\t\t\tcursor: query.cursor,\n\t\t\tlimit: query.limit,\n\t\t\tprojection: query.projection\n\t\t} });\n\t}\n\tgetEvent(organizationId, eventId) {\n\t\treturn this.request(\"GET\", `/activity/events/${encodeURIComponent(eventId)}`, { params: { organization_id: organizationId } });\n\t}\n\tgetNote(organizationId, noteId) {\n\t\treturn this.request(\"GET\", `/activity/notes/${encodeURIComponent(noteId)}`, { params: { organization_id: organizationId } });\n\t}\n\tgetEventSummary(organizationId, eventId) {\n\t\treturn this.request(\"GET\", `/activity/events/${encodeURIComponent(eventId)}`, { params: {\n\t\t\torganization_id: organizationId,\n\t\t\tprojection: \"summary\"\n\t\t} });\n\t}\n\tlistEventReferences(organizationId, eventId, query = {}) {\n\t\treturn this.request(\"GET\", `/activity/events/${encodeURIComponent(eventId)}/references`, { params: {\n\t\t\torganization_id: organizationId,\n\t\t\t...query,\n\t\t\tlimit: Math.min(50, Math.max(1, query.limit ?? 50))\n\t\t} });\n\t}\n\tlistEventChanges(organizationId, eventId, query = {}) {\n\t\treturn this.request(\"GET\", `/activity/events/${encodeURIComponent(eventId)}/changes`, { params: {\n\t\t\torganization_id: organizationId,\n\t\t\t...query,\n\t\t\tlimit: Math.min(50, Math.max(1, query.limit ?? 50))\n\t\t} });\n\t}\n\tcreateNote(payload) {\n\t\treturn this.request(\"POST\", \"/activity/notes\", { json: payload });\n\t}\n\tupdateNote(noteId, payload) {\n\t\treturn this.request(\"PATCH\", `/activity/notes/${encodeURIComponent(noteId)}`, { json: payload });\n\t}\n\treplaceNoteTargets(noteId, payload) {\n\t\treturn this.request(\"PUT\", `/activity/notes/${encodeURIComponent(noteId)}/targets`, { json: payload });\n\t}\n\teraseNote(noteId, payload) {\n\t\treturn this.request(\"DELETE\", `/activity/notes/${encodeURIComponent(noteId)}`, { json: payload });\n\t}\n};\n//#endregion\n//#region src/_shared/_logic/control-actor-session/control-actor-session.ts\nvar CONTROL_ACTOR_STORAGE_PREFIX = \"kontextwerk:control-actor-session:v1:\";\nvar CONTROL_ACTOR_VERIFICATION_TTL_MS = 1e4;\nvar snapshotsByControlOrigin = /* @__PURE__ */ new Map();\nvar normalizeOrigin$1 = (value) => {\n\ttry {\n\t\treturn new URL(value).origin;\n\t} catch {\n\t\treturn value.trim().replace(/\\/+$/, \"\") || \"control-client\";\n\t}\n};\nvar actorStorage = () => {\n\tif (typeof window === \"undefined\") return null;\n\ttry {\n\t\treturn window.localStorage;\n\t} catch {\n\t\treturn null;\n\t}\n};\nvar actorStorageKey = (controlOrigin) => `${CONTROL_ACTOR_STORAGE_PREFIX}${normalizeOrigin$1(controlOrigin)}`;\nvar parseStoredSnapshot = (raw) => {\n\tif (!raw) return null;\n\ttry {\n\t\tconst parsed = JSON.parse(raw);\n\t\tif (parsed.version !== 1 || typeof parsed.actorKey !== \"string\" || !parsed.actorKey.trim() || typeof parsed.generation !== \"string\" || !parsed.generation || typeof parsed.verifiedUntil !== \"number\" || !Number.isFinite(parsed.verifiedUntil)) return null;\n\t\treturn {\n\t\t\tversion: 1,\n\t\t\tactorKey: parsed.actorKey.trim(),\n\t\t\tgeneration: parsed.generation,\n\t\t\tverifiedUntil: parsed.verifiedUntil,\n\t\t\t...typeof parsed.contextKey === \"string\" ? { contextKey: parsed.contextKey } : {}\n\t\t};\n\t} catch {\n\t\treturn null;\n\t}\n};\nvar readControlActorSnapshot = (controlOrigin) => {\n\tconst normalizedOrigin = normalizeOrigin$1(controlOrigin);\n\tconst storage = actorStorage();\n\tif (!storage) return snapshotsByControlOrigin.get(normalizedOrigin) ?? null;\n\tlet stored = null;\n\ttry {\n\t\tstored = parseStoredSnapshot(storage.getItem(actorStorageKey(normalizedOrigin)));\n\t} catch {\n\t\treturn snapshotsByControlOrigin.get(normalizedOrigin) ?? null;\n\t}\n\tif (!stored) {\n\t\tsnapshotsByControlOrigin.delete(normalizedOrigin);\n\t\treturn null;\n\t}\n\tconst snapshot = {\n\t\tactorKey: stored.actorKey,\n\t\tgeneration: stored.generation,\n\t\tverifiedUntil: stored.verifiedUntil,\n\t\t...stored.contextKey ? { contextKey: stored.contextKey } : {}\n\t};\n\tsnapshotsByControlOrigin.set(normalizedOrigin, snapshot);\n\treturn snapshot;\n};\nvar readFreshControlActorSnapshot = (controlOrigin, now = Date.now()) => {\n\tconst snapshot = readControlActorSnapshot(controlOrigin);\n\treturn snapshot && snapshot.verifiedUntil > now ? snapshot : null;\n};\nvar controlActorGeneration = (controlOrigin) => readControlActorSnapshot(controlOrigin)?.generation ?? null;\nvar rememberControlActor = (controlOrigin, actorKey, options = {}) => {\n\tconst normalizedOrigin = normalizeOrigin$1(controlOrigin);\n\tconst normalizedActorKey = actorKey.trim();\n\tif (!normalizedActorKey) throw new Error(\"control_actor_key_required\");\n\tconst current = readControlActorSnapshot(normalizedOrigin);\n\tconst snapshot = {\n\t\tactorKey: normalizedActorKey,\n\t\tgeneration: !options.rotate && current?.actorKey === normalizedActorKey && (options.contextKey === void 0 || options.contextKey === current.contextKey) ? current.generation : globalThis.crypto?.randomUUID?.() ?? `${Date.now()}:${Math.random()}`,\n\t\tverifiedUntil: (options.now ?? Date.now()) + CONTROL_ACTOR_VERIFICATION_TTL_MS,\n\t\t...options.contextKey !== void 0 ? { contextKey: options.contextKey } : current?.contextKey ? { contextKey: current.contextKey } : {}\n\t};\n\tsnapshotsByControlOrigin.set(normalizedOrigin, snapshot);\n\tconst storage = actorStorage();\n\tif (storage) try {\n\t\tstorage.setItem(actorStorageKey(normalizedOrigin), JSON.stringify({\n\t\t\tversion: 1,\n\t\t\t...snapshot\n\t\t}));\n\t} catch {}\n\treturn snapshot;\n};\nvar forgetControlActor = (controlOrigin) => {\n\tconst normalizedOrigin = normalizeOrigin$1(controlOrigin);\n\tsnapshotsByControlOrigin.delete(normalizedOrigin);\n\tconst storage = actorStorage();\n\tif (!storage) return;\n\ttry {\n\t\tstorage.removeItem(actorStorageKey(normalizedOrigin));\n\t} catch {}\n};\n//#endregion\n//#region src/resources/admin/auth.ts\nvar loginPayload = (payload) => pickDefined(payload, [\n\t\"email\",\n\t\"password\",\n\t\"two_factor_code\",\n\t\"remember_mfa_device\"\n]);\nvar actorContextKey = (session) => JSON.stringify([\n\tsession.user.organization_id,\n\tsession.user.role,\n\tsession.user.permissions\n]);\nvar passwordResetRequestPayload = (payload) => pickDefined(payload, [\"email\"]);\nvar passwordResetVerifyPayload = (payload) => pickDefined(payload, [\"email\", \"code\"]);\nvar passwordResetConfirmPayload = (payload) => pickDefined(payload, [\n\t\"token\",\n\t\"new_password\",\n\t\"email\"\n]);\nvar passwordChangePayload = (payload) => pickDefined(payload, [\"current_password\", \"new_password\"]);\nvar reauthPayload = (payload) => pickDefined(payload, [\"password\"]);\nvar inviteDeclinePayload = (payload) => pickDefined(payload, [\"token\"]);\nvar serviceSessionCodePayload = (payload) => pickDefined(payload, [\n\t\"target_service\",\n\t\"target_origin\",\n\t\"organization_id\",\n\t\"project_id\",\n\t\"project_slug\"\n]);\nvar AdminAuthAPI = class extends AdminResource {\n\tconstructor(transport, controlOrigin = \"control-client\") {\n\t\tsuper(transport);\n\t\tthis.controlOrigin = controlOrigin;\n\t\tthis.authGeneration = 0;\n\t\tthis.sessionController = null;\n\t}\n\tasync session(options = {}) {\n\t\tthis.sessionController?.abort();\n\t\tconst controller = new AbortController();\n\t\tthis.sessionController = controller;\n\t\tconst abort = () => controller.abort();\n\t\toptions.signal?.addEventListener(\"abort\", abort, { once: true });\n\t\tif (options.signal?.aborted) controller.abort();\n\t\tconst generation = ++this.authGeneration;\n\t\tconst actorGeneration = controlActorGeneration(this.controlOrigin);\n\t\tconst ownsActor = () => generation === this.authGeneration && actorGeneration === controlActorGeneration(this.controlOrigin);\n\t\tconst isCurrent = () => ownsActor() && !controller.signal.aborted && options.isCurrent?.() !== false;\n\t\ttry {\n\t\t\tconst session = await this.request(\"GET\", \"/auth/session\", {\n\t\t\t\t...options,\n\t\t\t\tsignal: controller.signal,\n\t\t\t\tisCurrent\n\t\t\t});\n\t\t\tif (isCurrent()) rememberControlActor(this.controlOrigin, session.user.id, { contextKey: actorContextKey(session) });\n\t\t\treturn session;\n\t\t} catch (error) {\n\t\t\tif (ownsActor() && [401, 403].includes(error?.status ?? 0)) forgetControlActor(this.controlOrigin);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\toptions.signal?.removeEventListener(\"abort\", abort);\n\t\t\tif (this.sessionController === controller) this.sessionController = null;\n\t\t}\n\t}\n\tasync sessions() {\n\t\treturn this.request(\"GET\", \"/auth/sessions\");\n\t}\n\tasync login(payload) {\n\t\tthis.sessionController?.abort();\n\t\tconst generation = ++this.authGeneration;\n\t\tconst response = await this.request(\"POST\", \"/auth/login\", {\n\t\t\tjson: loginPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t\tif (generation !== this.authGeneration) return response;\n\t\tif (\"user\" in response) rememberControlActor(this.controlOrigin, response.user.id, {\n\t\t\trotate: true,\n\t\t\tcontextKey: actorContextKey(response)\n\t\t});\n\t\telse forgetControlActor(this.controlOrigin);\n\t\treturn response;\n\t}\n\tasync requestPasswordReset(payload) {\n\t\treturn this.request(\"POST\", \"/auth/password-reset/request\", {\n\t\t\tjson: passwordResetRequestPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n\tasync verifyPasswordResetCode(payload) {\n\t\treturn this.request(\"POST\", \"/auth/password-reset/verify\", {\n\t\t\tjson: passwordResetVerifyPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n\tasync confirmPasswordReset(payload) {\n\t\tawait this.request(\"POST\", \"/auth/password-reset/confirm\", {\n\t\t\tjson: passwordResetConfirmPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n\tasync changePassword(payload) {\n\t\tawait this.request(\"POST\", \"/auth/password/change\", { json: passwordChangePayload(payload) });\n\t\tforgetControlActor(this.controlOrigin);\n\t}\n\tasync reauth(payload) {\n\t\treturn this.request(\"POST\", \"/auth/reauth\", { json: reauthPayload(payload) });\n\t}\n\tasync declineInvite(payload) {\n\t\tawait this.request(\"POST\", \"/auth/invite/decline\", {\n\t\t\tjson: inviteDeclinePayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n\tasync logout() {\n\t\tthis.sessionController?.abort();\n\t\tconst generation = ++this.authGeneration;\n\t\ttry {\n\t\t\tawait this.request(\"POST\", \"/auth/logout\");\n\t\t} finally {\n\t\t\tif (generation === this.authGeneration) forgetControlActor(this.controlOrigin);\n\t\t}\n\t}\n\tasync logoutAll() {\n\t\tthis.sessionController?.abort();\n\t\tconst generation = ++this.authGeneration;\n\t\ttry {\n\t\t\tawait this.request(\"POST\", \"/auth/logout-all\");\n\t\t} finally {\n\t\t\tif (generation === this.authGeneration) forgetControlActor(this.controlOrigin);\n\t\t}\n\t}\n\tasync revokeSession(sessionId) {\n\t\tawait this.request(\"DELETE\", `/auth/sessions/${encodeURIComponent(sessionId)}`);\n\t}\n\tasync revokeOtherSessions() {\n\t\tawait this.request(\"POST\", \"/auth/sessions/revoke-others\");\n\t}\n\tasync revokeTrustedMfaDevices() {\n\t\tawait this.request(\"POST\", \"/auth/mfa-trusted-devices/revoke-all\");\n\t}\n\tasync createServiceSessionCode(payload) {\n\t\treturn this.request(\"POST\", \"/auth/service-session-code\", { json: serviceSessionCodePayload(payload) });\n\t}\n};\n//#endregion\n//#region src/context-service-session/contracts.ts\nvar organizationTargets = new Set([\n\t\"werk-server\",\n\t\"kontext-kern-index-server\",\n\t\"kontext-minio-syncer\",\n\t\"sharepoint-syncer\",\n\t\"answer-library-manager\",\n\t\"scraping-orchestrator\"\n]);\nvar platformTargets = new Set([\n\t\"kontextwerk-status-server\",\n\t\"kontext-kern-index-server\",\n\t\"kontext-minio-syncer\"\n]);\nvar ContextServiceContractError = class extends Error {\n\tconstructor() {\n\t\tsuper(\"Invalid context service contract\");\n\t\tthis.name = \"ContextServiceContractError\";\n\t}\n};\nvar reject = () => {\n\tthrow new ContextServiceContractError();\n};\nvar record$3 = (value, keys) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).some((key) => !keys.includes(key))) return reject();\n\treturn value;\n};\nvar string = (value) => typeof value === \"string\" ? value : reject();\nvar uuid = (value) => {\n\tconst valueString = string(value);\n\tif (!/^[a-f\\d]{8}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{12}$/i.test(valueString)) return reject();\n\treturn valueString.toLowerCase();\n};\nvar optionalUuid = (value) => value == null ? null : uuid(value);\nvar normalizeContextServiceOrigin = (value) => {\n\tlet url;\n\ttry {\n\t\turl = new URL(value);\n\t} catch {\n\t\treturn reject();\n\t}\n\tif (![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password || url.pathname !== \"/\" || url.search || url.hash || value.length > 2048) return reject();\n\treturn url.origin;\n};\nvar target = (value) => {\n\tconst service = string(value);\n\tif (!platformTargets.has(service) && !organizationTargets.has(service)) return reject();\n\treturn service;\n};\nvar buildContextServiceCodeRequest = (value) => {\n\tconst data = record$3(value, [\n\t\t\"target_service\",\n\t\t\"target_origin\",\n\t\t\"project_id\"\n\t]);\n\tconst service = target(data.target_service);\n\tconst project = optionalUuid(data.project_id);\n\tif (service === \"werk-server\" && !project || service === \"kontextwerk-status-server\" && project) return reject();\n\treturn Object.freeze({\n\t\ttarget_service: service,\n\t\ttarget_origin: normalizeContextServiceOrigin(string(data.target_origin)),\n\t\t...service === \"kontextwerk-status-server\" ? {} : { project_id: project }\n\t});\n};\nvar parseContextServiceBinding = (value) => {\n\tconst fields = [\n\t\t\"kind\",\n\t\t\"product_issuer\",\n\t\t\"session_id\",\n\t\t\"context_revision\",\n\t\t\"actor_user_id\",\n\t\t\"target_origin\",\n\t\t\"target_service\"\n\t];\n\tconst kind = value?.kind;\n\tconst data = record$3(value, fields.concat(kind === \"organization\" ? [\n\t\t\"membership_id\",\n\t\t\"organization_id\",\n\t\t\"delegation_id\",\n\t\t\"project_id\"\n\t] : [\"assignment_id\"]));\n\tconst product = string(data.product_issuer);\n\tif (!/^[a-z][a-z0-9-]{1,127}$/.test(product)) return reject();\n\tconst pair = createContextMutationPrecondition({\n\t\texpected_session_id: string(data.session_id),\n\t\texpected_context_revision: data.context_revision\n\t});\n\tconst service = target(data.target_service);\n\tconst common = {\n\t\tproduct_issuer: product,\n\t\tsession_id: pair.expected_session_id,\n\t\tcontext_revision: pair.expected_context_revision,\n\t\tactor_user_id: uuid(data.actor_user_id),\n\t\ttarget_origin: normalizeContextServiceOrigin(string(data.target_origin))\n\t};\n\tif (kind === \"platform\" && platformTargets.has(service)) return Object.freeze({\n\t\t...common,\n\t\tkind,\n\t\ttarget_service: service,\n\t\tassignment_id: uuid(data.assignment_id)\n\t});\n\tif (kind !== \"organization\" || !organizationTargets.has(service)) return reject();\n\tconst project = optionalUuid(data.project_id);\n\tif (service === \"werk-server\" && !project) return reject();\n\treturn Object.freeze({\n\t\t...common,\n\t\tkind,\n\t\ttarget_service: service,\n\t\tmembership_id: uuid(data.membership_id),\n\t\torganization_id: uuid(data.organization_id),\n\t\tdelegation_id: optionalUuid(data.delegation_id),\n\t\tproject_id: project\n\t});\n};\nvar parseContextServiceCode = (value) => {\n\tconst data = record$3(value, [\n\t\t\"contract_version\",\n\t\t\"code\",\n\t\t\"expires_at\",\n\t\t\"binding\"\n\t]);\n\tif (data.contract_version !== 2 || !/^[A-Za-z0-9_-]{43}$/.test(string(data.code))) return reject();\n\tconst expiry = string(data.expires_at);\n\tif (!/T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(expiry) || !Number.isFinite(Date.parse(expiry))) return reject();\n\treturn Object.freeze({\n\t\tcontract_version: 2,\n\t\tcode: string(data.code),\n\t\texpires_at: expiry,\n\t\tbinding: parseContextServiceBinding(data.binding)\n\t});\n};\n/** References only: service admission and current capabilities remain server responsibilities. */\nvar bindContextServiceRequest = (session, request) => {\n\tconst current = parseContextSession(session);\n\tconst destination = buildContextServiceCodeRequest(request);\n\tif (current.password_change_required) return reject();\n\tconst common = {\n\t\tproduct_issuer: current.product_issuer,\n\t\tsession_id: current.session_id,\n\t\tcontext_revision: current.context_revision,\n\t\tactor_user_id: current.user.id,\n\t\ttarget_origin: destination.target_origin,\n\t\ttarget_service: destination.target_service\n\t};\n\tconst context = current.context;\n\tif (context.kind === \"organization\" && context.delegation && Date.parse(context.delegation.expires_at) <= Date.now()) return reject();\n\tif (context.kind !== \"organization\" && destination.project_id) return reject();\n\treturn parseContextServiceBinding(context.kind === \"organization\" ? {\n\t\t...common,\n\t\tkind: context.kind,\n\t\tmembership_id: context.membership_id,\n\t\torganization_id: context.organization_id,\n\t\tdelegation_id: context.delegation?.id ?? null,\n\t\tproject_id: destination.project_id ?? null\n\t} : {\n\t\t...common,\n\t\tkind: context.kind,\n\t\tassignment_id: context.assignment_id\n\t});\n};\nvar sameContextServiceBinding = (left, right) => Object.keys(left).length === Object.keys(right).length && Object.entries(left).every(([key, value]) => value === right[key]);\n//#endregion\n//#region src/context-service-session/session-client.ts\n/** Cookie coordination only. Never caches operation admission, roles, grants or a bearer credential. */\nvar createContextServiceSessionClient = (options) => {\n\tconst fetchImpl = (options.fetchImpl ?? globalThis.fetch).bind(globalThis);\n\tconst exchanges = /* @__PURE__ */ new Map();\n\tlet generation = 0;\n\tlet abort = new AbortController();\n\tconst invalidate = () => {\n\t\tgeneration += 1;\n\t\tabort.abort();\n\t\tabort = new AbortController();\n\t\texchanges.clear();\n\t};\n\treturn {\n\t\tinvalidate,\n\t\tasync run(input, operation) {\n\t\t\tconst destination = buildContextServiceCodeRequest(input.destination);\n\t\t\tconst expected = bindContextServiceRequest(input.session, destination);\n\t\t\tconst pair = createContextMutationPrecondition(input.capture.mutationContext);\n\t\t\tif (expected.session_id !== pair.expected_session_id || expected.context_revision !== pair.expected_context_revision) throw new ContextServiceContractError();\n\t\t\tconst callerSignal = input.capture.signal;\n\t\t\tconst callerCurrent = input.capture.isCurrent;\n\t\t\tconst ownerSignal = abort.signal;\n\t\t\tconst ticket = generation;\n\t\t\tconst controller = new AbortController();\n\t\t\tconst cancel = () => controller.abort();\n\t\t\tcallerSignal.addEventListener(\"abort\", cancel, { once: true });\n\t\t\townerSignal.addEventListener(\"abort\", cancel, { once: true });\n\t\t\tif (callerSignal.aborted || ownerSignal.aborted) cancel();\n\t\t\tconst isCurrent = () => ticket === generation && !controller.signal.aborted && callerCurrent();\n\t\t\tconst assertCurrent = () => {\n\t\t\t\tif (!isCurrent()) throw new DOMException(\"Obsolete service context\", \"AbortError\");\n\t\t\t};\n\t\t\tconst headers = () => new Headers({\n\t\t\t\t\"X-Control-Session-Id\": pair.expected_session_id,\n\t\t\t\t\"X-Control-Context-Revision\": String(pair.expected_context_revision)\n\t\t\t});\n\t\t\tconst key = `${destination.target_service}|${destination.target_origin}`;\n\t\t\tconst lockName = `kontextwerk-service-session:${key}`;\n\t\t\tconst markerKey = `control-context-service-generation:${key}`;\n\t\t\ttry {\n\t\t\t\tassertCurrent();\n\t\t\t\tconst locks = globalThis.navigator?.locks;\n\t\t\t\tif (!locks || typeof window === \"undefined\") throw new Error(\"context_service_coordination_unavailable\");\n\t\t\t\tlet storage;\n\t\t\t\ttry {\n\t\t\t\t\tstorage = window.localStorage;\n\t\t\t\t\tstorage.getItem(markerKey);\n\t\t\t\t} catch {\n\t\t\t\t\tthrow new Error(\"context_service_coordination_unavailable\");\n\t\t\t\t}\n\t\t\t\treturn await locks.request(lockName, {\n\t\t\t\t\tmode: \"exclusive\",\n\t\t\t\t\tsignal: controller.signal\n\t\t\t\t}, async () => {\n\t\t\t\t\tassertCurrent();\n\t\t\t\t\tlet cached = exchanges.get(key);\n\t\t\t\t\tif (!cached || storage.getItem(markerKey) !== cached.marker || !sameContextServiceBinding(cached.binding, expected)) {\n\t\t\t\t\t\texchanges.delete(key);\n\t\t\t\t\t\tconst marker = crypto.randomUUID();\n\t\t\t\t\t\tstorage.setItem(markerKey, marker);\n\t\t\t\t\t\tconst grant = parseContextServiceCode(await options.issueCode(destination, {\n\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t\tisCurrent,\n\t\t\t\t\t\t\tmutationContext: pair\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tassertCurrent();\n\t\t\t\t\t\tif (Date.parse(grant.expires_at) <= Date.now() || !sameContextServiceBinding(grant.binding, expected)) throw new ContextServiceContractError();\n\t\t\t\t\t\tconst exchangeHeaders = headers();\n\t\t\t\t\t\texchangeHeaders.set(\"Accept\", \"application/json\");\n\t\t\t\t\t\texchangeHeaders.set(\"Content-Type\", \"application/json\");\n\t\t\t\t\t\tconst response = await fetchImpl(`${destination.target_origin}/api/v1/admin/auth/service-session/exchange`, {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tcredentials: \"include\",\n\t\t\t\t\t\t\tredirect: \"error\",\n\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t\theaders: exchangeHeaders,\n\t\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\tcode: grant.code,\n\t\t\t\t\t\t\t\ttarget_service: destination.target_service,\n\t\t\t\t\t\t\t\ttarget_origin: destination.target_origin\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t});\n\t\t\t\t\t\tassertCurrent();\n\t\t\t\t\t\tif (!response.ok) throw new ControlClientError(\"Service handoff rejected\", { statusCode: response.status });\n\t\t\t\t\t\tconst binding = parseContextServiceBinding(await response.json());\n\t\t\t\t\t\tassertCurrent();\n\t\t\t\t\t\tconst csrf = response.headers.get(\"X-CSRF-Token\")?.trim();\n\t\t\t\t\t\tif (!csrf || !sameContextServiceBinding(binding, expected)) throw new ContextServiceContractError();\n\t\t\t\t\t\tif (storage.getItem(markerKey) !== marker) throw new DOMException(\"Obsolete service exchange\", \"AbortError\");\n\t\t\t\t\t\tcached = {\n\t\t\t\t\t\t\tbinding,\n\t\t\t\t\t\t\tcsrf,\n\t\t\t\t\t\t\tmarker\n\t\t\t\t\t\t};\n\t\t\t\t\t\texchanges.set(key, cached);\n\t\t\t\t\t}\n\t\t\t\t\tconst established = cached;\n\t\t\t\t\tconst request = async (path, init = {}) => {\n\t\t\t\t\t\tassertCurrent();\n\t\t\t\t\t\tif (!path.startsWith(\"/\") || path.startsWith(\"//\")) throw new ContextServiceContractError();\n\t\t\t\t\t\tconst url = new URL(path, destination.target_origin);\n\t\t\t\t\t\tif (url.origin !== destination.target_origin || url.username || url.password || url.hash) throw new ContextServiceContractError();\n\t\t\t\t\t\tif (storage.getItem(markerKey) !== established.marker) throw new DOMException(\"Obsolete service exchange\", \"AbortError\");\n\t\t\t\t\t\tconst requestHeaders = new Headers(init.headers);\n\t\t\t\t\t\tif (requestHeaders.has(\"Authorization\")) throw new ContextServiceContractError();\n\t\t\t\t\t\theaders().forEach((value, name) => requestHeaders.set(name, value));\n\t\t\t\t\t\trequestHeaders.set(\"X-CSRF-Token\", established.csrf);\n\t\t\t\t\t\tconst response = await fetchImpl(url, {\n\t\t\t\t\t\t\tmethod: init.method ?? \"GET\",\n\t\t\t\t\t\t\tbody: init.body,\n\t\t\t\t\t\t\tcache: init.cache,\n\t\t\t\t\t\t\theaders: requestHeaders,\n\t\t\t\t\t\t\tcredentials: \"include\",\n\t\t\t\t\t\t\tredirect: \"error\",\n\t\t\t\t\t\t\tsignal: controller.signal\n\t\t\t\t\t\t});\n\t\t\t\t\t\tassertCurrent();\n\t\t\t\t\t\tif (storage.getItem(markerKey) !== established.marker) throw new DOMException(\"Obsolete service exchange\", \"AbortError\");\n\t\t\t\t\t\tif (!response.ok) throw new ControlClientError(\"Service request rejected\", { statusCode: response.status });\n\t\t\t\t\t\tconst csrf = response.headers.get(\"X-CSRF-Token\")?.trim();\n\t\t\t\t\t\tif (csrf) established.csrf = csrf;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t};\n\t\t\t\t\tconst result = await operation(request);\n\t\t\t\t\tassertCurrent();\n\t\t\t\t\tif (storage.getItem(markerKey) !== established.marker) throw new DOMException(\"Obsolete service exchange\", \"AbortError\");\n\t\t\t\t\treturn result;\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (generation === ticket) exchanges.delete(key);\n\t\t\t\tif (isCurrent() && error instanceof ControlClientError && [\n\t\t\t\t\t401,\n\t\t\t\t\t403,\n\t\t\t\t\t409\n\t\t\t\t].includes(error.statusCode ?? 0)) options.onRejected?.();\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tcontroller.abort();\n\t\t\t\tcallerSignal.removeEventListener(\"abort\", cancel);\n\t\t\t\townerSignal.removeEventListener(\"abort\", cancel);\n\t\t\t}\n\t\t}\n\t};\n};\n//#endregion\n//#region src/context-devices/index.ts\nvar fail$2 = () => {\n\tthrow new ContextSessionContractError();\n};\nvar publicDeviceSessionId = (value) => typeof value === \"string\" && /^[a-f0-9]{64}$/.test(value) ? value : fail$2();\nvar record$2 = (value, allowed) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).some((key) => !allowed.includes(key))) return fail$2();\n\treturn value;\n};\nvar timestamp$2 = (value) => typeof value === \"string\" && /T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(value) && Number.isFinite(Date.parse(value)) ? value : fail$2();\nvar parsePersonalSessions = (value, initiatingId) => {\n\tconst envelope = record$2(value, [\"items\"]);\n\tconst currentId = publicDeviceSessionId(initiatingId);\n\tif (!Array.isArray(envelope.items)) return fail$2();\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst items = envelope.items.map((value) => {\n\t\tconst data = record$2(value, [\n\t\t\t\"session_id\",\n\t\t\t\"created_at\",\n\t\t\t\"last_seen_at\",\n\t\t\t\"expires_at\",\n\t\t\t\"user_agent\",\n\t\t\t\"current\"\n\t\t]);\n\t\tconst id = publicDeviceSessionId(data.session_id);\n\t\tif (seen.has(id) || typeof data.current !== \"boolean\" || data.current !== (id === currentId)) return fail$2();\n\t\tif (data.user_agent != null && typeof data.user_agent !== \"string\") return fail$2();\n\t\tseen.add(id);\n\t\treturn Object.freeze({\n\t\t\tsession_id: id,\n\t\t\tcreated_at: timestamp$2(data.created_at),\n\t\t\tlast_seen_at: timestamp$2(data.last_seen_at),\n\t\t\texpires_at: timestamp$2(data.expires_at),\n\t\t\tuser_agent: typeof data.user_agent === \"string\" ? data.user_agent : null,\n\t\t\tcurrent: data.current\n\t\t});\n\t});\n\treturn Object.freeze({ items: Object.freeze(items) });\n};\n//#endregion\n//#region src/context-recovery/index.ts\nvar fields$2 = (value, keys) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).length !== keys.length || Object.keys(value).some((key) => !keys.includes(key))) throw new ContextSessionContractError();\n\treturn value;\n};\nvar text = (value, maximum) => {\n\tif (typeof value !== \"string\" || !value.length || value.length > maximum) throw new ContextSessionContractError();\n\treturn value;\n};\nvar recoveryRequest = (value) => {\n\treturn { email: text(fields$2(value, [\"email\"]).email, 320).trim() };\n};\nvar recoveryVerification = (value) => {\n\tconst record = fields$2(value, [\"email\", \"code\"]);\n\tif (typeof record.code !== \"string\" || !/^\\d{6,32}$/.test(record.code)) throw new ContextSessionContractError();\n\treturn {\n\t\temail: text(record.email, 320).trim(),\n\t\tcode: record.code\n\t};\n};\nvar recoveryConfirmation = (value) => {\n\tconst record = fields$2(value, [\"token\", \"new_password\"]);\n\treturn {\n\t\ttoken: text(record.token, 4096),\n\t\tnew_password: text(record.new_password, 128)\n\t};\n};\nvar recoveryProof = (value) => {\n\tconst record = fields$2(value, [\n\t\t\"valid\",\n\t\t\"token\",\n\t\t\"expires_at\"\n\t]);\n\tif (record.valid !== true || typeof record.expires_at !== \"string\" || !/T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(record.expires_at) || !Number.isFinite(Date.parse(record.expires_at))) throw new ContextSessionContractError();\n\treturn Object.freeze({\n\t\tvalid: true,\n\t\ttoken: text(record.token, 4096),\n\t\texpires_at: record.expires_at\n\t});\n};\n//#endregion\n//#region src/context-profile/index.ts\nvar nameFields = [\n\t\"username\",\n\t\"first_name\",\n\t\"last_name\"\n];\nvar fields$1 = [\n\t...nameFields,\n\t\"profile_image_data_url\",\n\t\"remove_profile_image\"\n];\n/** Preserve omitted/null names and explicit empty values; never accept actor selectors. */\nvar buildIdentityProfileUpdate = (value) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) throw new ContextSessionContractError();\n\tif (Object.keys(value).some((key) => !fields$1.includes(key))) throw new ContextSessionContractError();\n\tconst result = {};\n\tfor (const field of nameFields) {\n\t\tconst entry = value[field];\n\t\tif (entry !== void 0 && entry !== null && (typeof entry !== \"string\" || Array.from(entry).length > 255)) throw new ContextSessionContractError();\n\t\tif (entry !== void 0) result[field] = entry;\n\t}\n\tconst image = value.profile_image_data_url;\n\tif (image !== void 0 && image !== null && (typeof image !== \"string\" || image.length > 7e6)) throw new ContextSessionContractError();\n\tif (image !== void 0) result.profile_image_data_url = image;\n\tif (value.remove_profile_image !== void 0 && typeof value.remove_profile_image !== \"boolean\") throw new ContextSessionContractError();\n\tif (image != null && value.remove_profile_image === true) throw new ContextSessionContractError();\n\tif (value.remove_profile_image !== void 0) result.remove_profile_image = value.remove_profile_image;\n\treturn Object.freeze(result);\n};\n//#endregion\n//#region src/context-mfa/index.ts\nvar record$1 = (value, keys) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) throw new ContextSessionContractError();\n\tif (Object.keys(value).some((key) => !keys.includes(key))) throw new ContextSessionContractError();\n\treturn value;\n};\nvar revision$1 = (value) => {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 1) throw new ContextSessionContractError();\n\treturn value;\n};\nvar timestamp$1 = (value) => {\n\tif (typeof value !== \"string\" || !/T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value))) throw new ContextSessionContractError();\n\treturn value;\n};\nvar enabled = (value) => {\n\tif (typeof value !== \"boolean\") throw new ContextSessionContractError();\n\treturn value;\n};\nvar parseIdentityMfaState = (value) => {\n\tconst item = record$1(value, [\n\t\t\"enabled\",\n\t\t\"verified_at\",\n\t\t\"credentials_revision\"\n\t]);\n\treturn Object.freeze({\n\t\tenabled: enabled(item.enabled),\n\t\tverified_at: item.verified_at === null ? null : timestamp$1(item.verified_at),\n\t\tcredentials_revision: revision$1(item.credentials_revision)\n\t});\n};\nvar buildIdentityMfaChallenge = (value) => {\n\tconst item = record$1(value, [\"expected_credentials_revision\", \"enabled\"]);\n\treturn Object.freeze({\n\t\texpected_credentials_revision: revision$1(item.expected_credentials_revision),\n\t\tenabled: enabled(item.enabled)\n\t});\n};\nvar parseIdentityMfaChallenge = (value) => {\n\tconst item = record$1(value, [\"expires_at\"]);\n\treturn Object.freeze({ expires_at: timestamp$1(item.expires_at) });\n};\nvar buildIdentityMfaChange = (value) => {\n\tconst item = record$1(value, [\n\t\t\"expected_credentials_revision\",\n\t\t\"enabled\",\n\t\t\"code\"\n\t]);\n\tif (typeof item.code !== \"string\" || !item.code.length || item.code.length > 128) throw new ContextSessionContractError();\n\treturn Object.freeze({\n\t\texpected_credentials_revision: revision$1(item.expected_credentials_revision),\n\t\tenabled: enabled(item.enabled),\n\t\tcode: item.code\n\t});\n};\n//#endregion\n//#region src/context-email-verification/index.ts\nvar record = (value, key) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).length !== 1 || Object.keys(value)[0] !== key) throw new ContextSessionContractError();\n\treturn value;\n};\nvar parseEmailVerificationState = (value) => {\n\tconst data = record(value, \"verified\");\n\tif (typeof data.verified !== \"boolean\") throw new ContextSessionContractError();\n\treturn Object.freeze({ verified: data.verified });\n};\nvar parseEmailVerificationAccepted = (value) => {\n\tif (record(value, \"accepted\").accepted !== true) throw new ContextSessionContractError();\n\treturn Object.freeze({ accepted: true });\n};\nvar buildEmailVerificationConfirmation = (value) => {\n\tconst data = record(value, \"token\");\n\tif (typeof data.token !== \"string\" || !data.token.length || data.token.length > 8192 || !/^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(data.token)) throw new ContextSessionContractError();\n\treturn { token: data.token };\n};\n/** Explicit bootstrap lifetime only; active mutation transport must reject missing context proof. */\nvar pendingEmailVerificationCapture = (capture) => {\n\tif (!capture || typeof capture !== \"object\" || Object.keys(capture).length !== 2 || Object.keys(capture).some((key) => key !== \"signal\" && key !== \"isCurrent\") || !capture.signal || typeof capture.signal.aborted !== \"boolean\" || typeof capture.isCurrent !== \"function\") throw new ContextSessionContractError();\n\treturn {\n\t\tsignal: capture.signal,\n\t\tisCurrent: capture.isCurrent,\n\t\tretry: \"never\"\n\t};\n};\n//#endregion\n//#region src/resources/admin/contextAuth.ts\n/** Strict personal credential change: only the current and the new password leave the tab. */\nvar buildPasswordChange = (payload) => {\n\tif (!payload || typeof payload !== \"object\" || Object.keys(payload).some((key) => key !== \"current_password\" && key !== \"new_password\") || typeof payload.new_password !== \"string\" || !payload.new_password.length || payload.current_password !== void 0 && (typeof payload.current_password !== \"string\" || !payload.current_password.length)) throw new ContextSessionContractError();\n\treturn Object.freeze({\n\t\t...payload.current_password === void 0 ? {} : { current_password: payload.current_password },\n\t\tnew_password: payload.new_password\n\t});\n};\n/** Opt-in v2 resource. Construct explicitly; never replaces AdminAuthAPI or remembers a v1 actor. */\nvar AdminContextAuthAPI = class extends AdminResource {\n\tasync emailVerificationOperation(path, options) {\n\t\tconst expectedStatus = path === \"\" ? 200 : path === \"/request\" ? 202 : 204;\n\t\tconst response = await this.transport.requestWithMeta(path === \"\" ? \"GET\" : \"POST\", `/admin/auth/email-verification${path}`, {\n\t\t\t...options,\n\t\t\twithAuth: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t\tif (response.status !== expectedStatus) throw new ContextSessionContractError();\n\t\treturn response.data;\n\t}\n\tasync emailVerification(options) {\n\t\treturn parseEmailVerificationState(await this.emailVerificationOperation(\"\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync requestEmailVerification(options) {\n\t\treturn parseEmailVerificationAccepted(await this.emailVerificationOperation(\"/request\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: {},\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync confirmEmailVerification(payload, options) {\n\t\tif (await this.emailVerificationOperation(\"/confirm\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: buildEmailVerificationConfirmation(payload),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t}) !== null) throw new ContextSessionContractError();\n\t}\n\tasync pendingEmailVerification(capture) {\n\t\treturn parseEmailVerificationState(await this.emailVerificationOperation(\"\", { ...pendingEmailVerificationCapture(capture) }));\n\t}\n\tasync requestPendingEmailVerification(capture) {\n\t\treturn parseEmailVerificationAccepted(await this.emailVerificationOperation(\"/request\", {\n\t\t\t...pendingEmailVerificationCapture(capture),\n\t\t\tjson: {},\n\t\t\trequireCsrf: true\n\t\t}));\n\t}\n\tasync confirmPendingEmailVerification(payload, capture) {\n\t\tif (await this.emailVerificationOperation(\"/confirm\", {\n\t\t\t...pendingEmailVerificationCapture(capture),\n\t\t\tjson: buildEmailVerificationConfirmation(payload),\n\t\t\trequireCsrf: true\n\t\t}) !== null) throw new ContextSessionContractError();\n\t}\n\tasync personalMfa(options) {\n\t\treturn parseIdentityMfaState(await this.request(\"GET\", \"/auth/mfa\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync requestPersonalMfaChallenge(payload, options) {\n\t\treturn parseIdentityMfaChallenge(await this.request(\"POST\", \"/auth/mfa/challenge\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: buildIdentityMfaChallenge(payload),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync changePersonalMfa(payload, options) {\n\t\ttry {\n\t\t\tawait this.request(\"PUT\", \"/auth/mfa\", {\n\t\t\t\t...options,\n\t\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\t\tjson: buildIdentityMfaChange(payload),\n\t\t\t\trequireCsrf: true,\n\t\t\t\tretry: \"never\"\n\t\t\t});\n\t\t\treturn \"complete\";\n\t\t} catch (error) {\n\t\t\tif (options.signal?.aborted || options.isCurrent?.() === false) throw error;\n\t\t\tif (error instanceof ControlClientError && error.statusCode === 503 && error.reasonCode === \"mfa_changed_session_cleanup_pending\") return \"cleanup-pending\";\n\t\t\tthrow error;\n\t\t}\n\t}\n\tasync updatePersonalProfile(payload, options) {\n\t\treturn parseIdentityResponse(await this.request(\"PATCH\", \"/auth/profile\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: buildIdentityProfileUpdate(payload),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\t/** Ends every browser session of the identity; the caller signs in again afterwards. */\n\tasync changePassword(payload, options) {\n\t\tawait this.request(\"POST\", \"/auth/change-password\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: buildPasswordChange(payload),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t}\n\tasync requestPasswordReset(payload, options = {}) {\n\t\tawait this.request(\"POST\", \"/auth/password-reset/request\", {\n\t\t\tsignal: options.signal,\n\t\t\tisCurrent: options.isCurrent,\n\t\t\tjson: recoveryRequest(payload),\n\t\t\twithAuth: false,\n\t\t\tretry: \"never\"\n\t\t});\n\t}\n\tasync verifyPasswordReset(payload, options = {}) {\n\t\treturn recoveryProof(await this.request(\"POST\", \"/auth/password-reset/verify\", {\n\t\t\tsignal: options.signal,\n\t\t\tisCurrent: options.isCurrent,\n\t\t\tjson: recoveryVerification(payload),\n\t\t\twithAuth: false,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync confirmPasswordReset(payload, options = {}) {\n\t\ttry {\n\t\t\tawait this.request(\"POST\", \"/auth/password-reset/confirm\", {\n\t\t\t\tsignal: options.signal,\n\t\t\t\tisCurrent: options.isCurrent,\n\t\t\t\tjson: recoveryConfirmation(payload),\n\t\t\t\twithAuth: false,\n\t\t\t\tretry: \"never\"\n\t\t\t});\n\t\t\treturn \"complete\";\n\t\t} catch (error) {\n\t\t\tif (options.signal?.aborted || options.isCurrent?.() === false) throw error;\n\t\t\tif (error instanceof ControlClientError && error.statusCode === 503 && error.reasonCode === \"password_changed_session_cleanup_pending\") return \"cleanup-pending\";\n\t\t\tthrow error;\n\t\t}\n\t}\n\tasync personalSessions(options) {\n\t\tconst mutationContext = createContextMutationPrecondition(options.mutationContext);\n\t\treturn parsePersonalSessions(await this.request(\"GET\", \"/auth/sessions\", {\n\t\t\t...options,\n\t\t\tmutationContext,\n\t\t\tretry: \"never\"\n\t\t}), mutationContext.expected_session_id);\n\t}\n\tasync revokePersonalSession(sessionId, options) {\n\t\tconst mutationContext = createContextMutationPrecondition(options.mutationContext);\n\t\tconst id = publicDeviceSessionId(sessionId);\n\t\tif (id === mutationContext.expected_session_id) throw new ContextSessionContractError();\n\t\tawait this.request(\"DELETE\", `/auth/sessions/${id}`, {\n\t\t\t...options,\n\t\t\tmutationContext,\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t}\n\tasync revokeOtherPersonalSessions(options) {\n\t\tawait this.request(\"POST\", \"/auth/sessions/revoke-others\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t}\n\tasync createServiceSessionCode(payload, options) {\n\t\treturn parseContextServiceCode(await this.request(\"POST\", \"/auth/service-session-code\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: buildContextServiceCodeRequest(payload),\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync reauth(payload, options) {\n\t\tif (!payload || Object.keys(payload).some((key) => key !== \"password\") || typeof payload.password !== \"string\" || !payload.password.length) throw new ContextSessionContractError();\n\t\tconst response = await this.request(\"POST\", \"/auth/reauth\", {\n\t\t\t...options,\n\t\t\tmutationContext: createContextMutationPrecondition(options.mutationContext),\n\t\t\tjson: { password: payload.password },\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t\tif (!response || Object.keys(response).some((key) => ![\"reauth_level\", \"expires_at\"].includes(key)) || response.reauth_level !== \"password\" || typeof response.expires_at !== \"string\" || !/T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(response.expires_at) || !Number.isFinite(Date.parse(response.expires_at))) throw new ContextSessionContractError();\n\t\treturn Object.freeze({\n\t\t\treauth_level: \"password\",\n\t\t\texpires_at: response.expires_at\n\t\t});\n\t}\n\tclearCsrf() {\n\t\tthis.transport.clearCsrfToken();\n\t}\n\tasync login(payload, options = {}) {\n\t\treturn parseContextLoginResponse(await this.request(\"POST\", \"/auth/login\", {\n\t\t\t...options,\n\t\t\tjson: buildContextLoginRequest(payload),\n\t\t\twithAuth: false,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync logout(options = {}) {\n\t\tawait this.request(\"POST\", \"/auth/logout\", {\n\t\t\t...options,\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\"\n\t\t});\n\t}\n\tasync session(options = {}) {\n\t\treturn parseContextSession(await this.request(\"GET\", \"/auth/session\", {\n\t\t\t...options,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync contexts(options = {}) {\n\t\treturn parseContextChoices(await this.request(\"GET\", \"/auth/contexts\", {\n\t\t\t...options,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync loginContexts(options = {}) {\n\t\treturn parseLoginContextSelection(await this.request(\"GET\", \"/auth/login/contexts\", {\n\t\t\tsignal: options.signal,\n\t\t\tisCurrent: options.isCurrent,\n\t\t\tretry: \"never\"\n\t\t}));\n\t}\n\tasync selectLoginContext(request, options = {}) {\n\t\treturn parseContextSession(await this.request(\"POST\", \"/auth/login/context\", {\n\t\t\tsignal: options.signal,\n\t\t\tisCurrent: options.isCurrent,\n\t\t\tretry: \"never\",\n\t\t\tjson: buildSelectLoginContextRequest(request.context),\n\t\t\trequireCsrf: true\n\t\t}));\n\t}\n\tasync switchContext(request, options = {}) {\n\t\tconst precondition = createContextMutationPrecondition({\n\t\t\texpected_session_id: request.expected_session_id,\n\t\t\texpected_context_revision: request.expected_context_revision\n\t\t});\n\t\tconst body = buildSwitchSessionContextRequest(request.context, precondition);\n\t\treturn parseContextSession(await this.request(\"POST\", \"/auth/context\", {\n\t\t\tsignal: options.signal,\n\t\t\tisCurrent: options.isCurrent,\n\t\t\tretry: \"never\",\n\t\t\tmutationContext: precondition,\n\t\t\trequireCsrf: true,\n\t\t\tjson: body\n\t\t}));\n\t}\n};\n//#endregion\n//#region src/resources/admin/billing.ts\nvar orgPlanChangePayload$1 = (payload) => pickDefined(payload, [\"plan_version_id\"]);\nvar orgPlanTransitionPayload$1 = (payload) => pickDefined(payload, [\"plan_version_id\"]);\nvar orgSubscriptionCancellationPayload$1 = (payload) => pickDefined(payload, [\"reason_code\", \"reason_note\"]);\nvar AdminBillingAPI = class extends AdminResource {\n\tusageParams(params) {\n\t\treturn {\n\t\t\trange_start: params?.rangeStart,\n\t\t\trange_end: params?.rangeEnd\n\t\t};\n\t}\n\tasync listPlans(params) {\n\t\treturn this.request(\"GET\", \"/billing/catalog/plans\", { params: {\n\t\t\tq: params?.q,\n\t\t\tlimit: params?.limit,\n\t\t\toffset: params?.offset,\n\t\t\tstatus: params?.status\n\t\t} });\n\t}\n\tasync getPlan(planId) {\n\t\treturn this.request(\"GET\", `/billing/catalog/plans/${planId}`);\n\t}\n\tasync listPlanTypes() {\n\t\treturn this.request(\"GET\", \"/billing/catalog/plans/types\");\n\t}\n\tasync syncStripe() {\n\t\treturn this.request(\"POST\", \"/app-settings/billing/catalog/sync\");\n\t}\n\tasync getOrgBilling(orgId) {\n\t\treturn this.request(\"GET\", `/organizations/${orgId}/billing`);\n\t}\n\tasync updateOrgBilling(orgId, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${orgId}/billing`, { json: payload });\n\t}\n\tasync scheduleOrgPlanChange(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/billing/plan-change`, { json: orgPlanChangePayload$1(payload) });\n\t}\n\tasync transitionOrgPlan(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/billing/plan-transition`, { json: orgPlanTransitionPayload$1(payload) });\n\t}\n\tasync cancelOrgPlanChange(orgId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${orgId}/billing/plan-change`);\n\t}\n\tasync scheduleOrgSubscriptionCancellation(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/billing/cancellation`, { json: orgSubscriptionCancellationPayload$1(payload) });\n\t}\n\tasync getOrgPaymentProfile(orgId) {\n\t\treturn this.request(\"GET\", `/organizations/${orgId}/billing/payment-profile`);\n\t}\n\tasync getOrgUsage(orgId, params) {\n\t\treturn this.request(\"GET\", `/organizations/${orgId}/billing/usage`, { params: this.usageParams(params) });\n\t}\n\tasync createOrgBillingPortalSession(orgId, returnUrl) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/billing/portal-session`, { json: { return_url: returnUrl } });\n\t}\n};\n//#endregion\n//#region src/resources/admin/feedback.ts\nvar buildQuery$1 = (params) => ({\n\toffset: params?.offset,\n\tlimit: params?.limit,\n\torganization_id: params?.orgId,\n\tfeedback_types: params?.feedback_types?.filter(Boolean),\n\tsort_by: params?.sortBy || void 0,\n\tsort_dir: params?.sortDir || void 0\n});\nvar feedbackCreatePayload = (payload) => pickDefined(payload, [\n\t\"title\",\n\t\"description\",\n\t\"feedback_type\",\n\t\"attachments\"\n]);\nvar feedbackUpdatePayload = (payload) => pickDefined(payload, [\"status\", \"assigned_user_id\"]);\nvar feedbackMessagePayload = (payload) => pickDefined(payload, [\"body\", \"kind\"]);\nvar AdminFeedbackAPI = class extends AdminResource {\n\tasync get(feedbackId) {\n\t\treturn this.request(\"GET\", `/feedback/${feedbackId}`);\n\t}\n\t/** Members read their organization's ticket; the organization is the admitted context. */\n\tasync getForOrg(organizationId, feedbackId) {\n\t\treturn this.request(\"GET\", `/feedback/${feedbackId}`, { params: { organization_id: organizationId } });\n\t}\n\tasync submit(organizationId, payload) {\n\t\treturn this.request(\"POST\", \"/feedback\", {\n\t\t\tjson: feedbackCreatePayload(payload),\n\t\t\tparams: { organization_id: organizationId }\n\t\t});\n\t}\n\tasync update(feedbackId, payload) {\n\t\treturn this.request(\"PATCH\", `/feedback/${feedbackId}`, { json: feedbackUpdatePayload(payload) });\n\t}\n\tasync updateForOrg(organizationId, feedbackId, payload) {\n\t\treturn this.request(\"PATCH\", `/feedback/${feedbackId}`, {\n\t\t\tparams: { organization_id: organizationId },\n\t\t\tjson: feedbackUpdatePayload(payload)\n\t\t});\n\t}\n\tasync listForOrg(organizationId, params) {\n\t\treturn this.request(\"GET\", \"/feedback\", { params: {\n\t\t\t...buildQuery$1(params),\n\t\t\torganization_id: organizationId\n\t\t} });\n\t}\n\tasync list(params) {\n\t\treturn this.request(\"GET\", \"/feedback\", { params: buildQuery$1(params) });\n\t}\n\tasync listMessages(feedbackId) {\n\t\treturn this.request(\"GET\", `/feedback/${feedbackId}/messages`);\n\t}\n\tasync listMessagesForOrg(organizationId, feedbackId) {\n\t\treturn this.request(\"GET\", `/feedback/${feedbackId}/messages`, { params: { organization_id: organizationId } });\n\t}\n\tasync createMessage(feedbackId, payload) {\n\t\treturn this.request(\"POST\", `/feedback/${feedbackId}/messages`, { json: feedbackMessagePayload(payload) });\n\t}\n\tasync createMessageForOrg(organizationId, feedbackId, payload) {\n\t\treturn this.request(\"POST\", `/feedback/${feedbackId}/messages`, {\n\t\t\tparams: { organization_id: organizationId },\n\t\t\tjson: feedbackMessagePayload(payload)\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/graphs.ts\nvar graphCreatePayload = (payload) => pickDefined(payload, [\n\t\"label\",\n\t\"slug\",\n\t\"type\",\n\t\"description\",\n\t\"organization_mode\",\n\t\"auto_assign\",\n\t\"auto_apply\",\n\t\"project_name\",\n\t\"provisioning_template\",\n\t\"realizations\",\n\t\"organization_ids\",\n\t\"api_config\"\n]);\nvar graphUpdatePayload = (payload) => pickDefined(payload, [\n\t\"label\",\n\t\"slug\",\n\t\"type\",\n\t\"description\",\n\t\"organization_mode\",\n\t\"auto_assign\",\n\t\"auto_apply\",\n\t\"provisioning_template\",\n\t\"realizations\",\n\t\"organization_ids\",\n\t\"api_config\"\n]);\nvar nonBlank = (value) => {\n\tconst trimmed = value?.trim();\n\treturn trimmed ? trimmed : void 0;\n};\nvar AdminGraphsAPI = class extends AdminResource {\n\tasync list(params) {\n\t\treturn this.request(\"GET\", \"/graphs\", { params: {\n\t\t\torg_id: params?.orgId,\n\t\t\tquery: nonBlank(params?.q),\n\t\t\tlimit: params?.limit,\n\t\t\toffset: params?.offset,\n\t\t\tsort_by: params?.sortBy || void 0,\n\t\t\tsort_dir: params?.sortDir || void 0\n\t\t} });\n\t}\n\tasync listTable(params) {\n\t\treturn this.request(\"GET\", \"/graphs\", { params: {\n\t\t\torg_id: params?.orgId,\n\t\t\tquery: nonBlank(params?.q),\n\t\t\tlimit: params?.limit,\n\t\t\toffset: params?.offset,\n\t\t\tsort_by: params?.sortBy || void 0,\n\t\t\tsort_dir: params?.sortDir || void 0,\n\t\t\tprojection: \"table\"\n\t\t} });\n\t}\n\tasync listOptions(params) {\n\t\treturn this.request(\"GET\", \"/graphs\", { params: {\n\t\t\torg_id: params?.orgId,\n\t\t\tquery: nonBlank(params?.q),\n\t\t\tlimit: params?.limit,\n\t\t\toffset: params?.offset,\n\t\t\tsort_by: params?.sortBy || void 0,\n\t\t\tsort_dir: params?.sortDir || void 0,\n\t\t\tprojection: \"options\"\n\t\t} });\n\t}\n\tasync get(graphId) {\n\t\treturn this.request(\"GET\", `/graphs/${encodeURIComponent(graphId)}`);\n\t}\n\tasync getProjectUsage(graphId) {\n\t\treturn this.request(\"GET\", `/graphs/${encodeURIComponent(graphId)}/project-usage`);\n\t}\n\tasync resolve(graphIdentifier) {\n\t\treturn this.get(graphIdentifier);\n\t}\n\tasync create(payload) {\n\t\treturn this.request(\"POST\", \"/graphs\", { json: graphCreatePayload(payload) });\n\t}\n\tasync update(graphId, payload) {\n\t\treturn this.request(\"PATCH\", `/graphs/${encodeURIComponent(graphId)}`, { json: graphUpdatePayload(payload) });\n\t}\n\tasync synchronize(graphId) {\n\t\treturn this.request(\"POST\", `/graphs/${encodeURIComponent(graphId)}/synchronize`);\n\t}\n\tasync listEvaluationProfiles(graphId) {\n\t\treturn this.request(\"GET\", `/graphs/${encodeURIComponent(graphId)}/evaluation-profiles`);\n\t}\n\tasync delete(graphId) {\n\t\treturn this.request(\"DELETE\", `/graphs/${encodeURIComponent(graphId)}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/hints.ts\nvar hintTemplatePayload = (payload) => pickDefined(payload, [\n\t\"title\",\n\t\"summary\",\n\t\"mode\",\n\t\"active\",\n\t\"attachments\"\n]);\nvar AdminHintTemplatesAPI = class extends AdminResource {\n\tasync list() {\n\t\treturn this.request(\"GET\", \"/hint-templates\");\n\t}\n\tasync create(payload) {\n\t\treturn this.request(\"POST\", \"/hint-templates\", { json: hintTemplatePayload(payload) });\n\t}\n\tasync deactivate(templateId) {\n\t\tawait this.request(\"DELETE\", `/hint-templates/${templateId}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/legalDocuments.ts\nvar legalDocumentCreatePayload = (payload) => pickDefined(payload, [\n\t\"document_type\",\n\t\"title\",\n\t\"version_label\",\n\t\"attachment\",\n\t\"active\"\n]);\nvar legalDocumentAcceptPayload = (payload) => pickDefined(payload, [\"password\"]);\nvar AdminLegalDocumentsAPI = class extends AdminResource {\n\tasync list(includeInactive = true) {\n\t\treturn this.request(\"GET\", \"/legal-documents\", { params: { include_inactive: includeInactive } });\n\t}\n\tasync create(payload) {\n\t\treturn this.request(\"POST\", \"/legal-documents\", { json: legalDocumentCreatePayload(payload) });\n\t}\n\tasync deactivate(documentId) {\n\t\tawait this.request(\"DELETE\", `/legal-documents/${documentId}`);\n\t}\n\tasync listOrganizations(documentId) {\n\t\treturn this.request(\"GET\", `/legal-documents/${documentId}/organizations`);\n\t}\n\tasync listForOrganization(organizationId) {\n\t\treturn this.request(\"GET\", `/legal-documents/organizations/${organizationId}`);\n\t}\n\tasync acceptForOrganization(organizationId, documentId, payload) {\n\t\treturn this.request(\"POST\", `/legal-documents/organizations/${organizationId}/${documentId}/accept`, { json: legalDocumentAcceptPayload(payload) });\n\t}\n};\n//#endregion\n//#region src/resources/admin/notifications.ts\nvar buildQuery = (params) => {\n\tif (!params) return void 0;\n\treturn {\n\t\toffset: params.offset,\n\t\tlimit: params.limit,\n\t\torigin: params.origin,\n\t\torganization_id: params.orgId,\n\t\tsubject_case_id: params.subjectCaseId,\n\t\tsubject_case_ids: params.subjectCaseIds?.filter(Boolean),\n\t\tadmin_inbox: params.adminInbox ? true : void 0,\n\t\tinclude_all_users: params.includeAllUsers ? true : void 0,\n\t\torigins: params.origins?.filter(Boolean),\n\t\tnotification_types: params.notification_types?.filter(Boolean),\n\t\tread_scopes: params.read_scopes?.filter(Boolean),\n\t\ttitle: params.title?.trim() || void 0,\n\t\tdescription: params.description?.trim() || void 0,\n\t\tquery: params.query?.trim() || void 0,\n\t\tevent_type: params.eventType?.trim() || void 0,\n\t\tflow_key: params.flowKey?.trim() || void 0,\n\t\tstatus: params.status || void 0,\n\t\tpriority: params.priority || void 0,\n\t\tassignee_id: params.assigneeId?.trim() || void 0,\n\t\tunassigned: params.unassigned ? true : void 0,\n\t\tdue_state: params.dueState && params.dueState !== \"all\" ? params.dueState : void 0,\n\t\toccurred_from: params.occurredFrom || void 0,\n\t\toccurred_to: params.occurredTo || void 0,\n\t\tsort_by: params.sortBy || void 0,\n\t\tsort_dir: params.sortDir || void 0\n\t};\n};\nvar notificationCreatePayload = (payload) => pickDefined(payload, [\n\t\"title\",\n\t\"description\",\n\t\"subject_case_id\",\n\t\"notification_type\",\n\t\"event_type\",\n\t\"payload\",\n\t\"structured\",\n\t\"user_id\",\n\t\"occurred_at\",\n\t\"title_presentation\"\n]);\nvar notificationNotePayload = (payload) => pickDefined(payload, [\"note\"]);\nvar notificationMarkDonePayload = (payload) => pickDefined(payload, [\n\t\"notification_ids\",\n\t\"notification_types\",\n\t\"origins\",\n\t\"include_all_users\"\n]);\nvar notificationStatusPayload = (payload) => pickDefined(payload, [\n\t\"status\",\n\t\"notification_ids\",\n\t\"notification_types\",\n\t\"origins\",\n\t\"include_all_users\"\n]);\nvar notificationUpdatePayload = (payload) => pickDefined(payload, [\n\t\"user_id\",\n\t\"due_at\",\n\t\"priority\",\n\t\"expected_revision\"\n]);\nvar AdminNotificationsAPI = class extends AdminResource {\n\tasync getForOrg(orgId, notificationId) {\n\t\treturn this.request(\"GET\", `/notifications/${encodeURIComponent(notificationId)}`, { params: { organization_id: orgId } });\n\t}\n\tasync createManualForOrg(orgId, payload) {\n\t\tconst common = pickDefined(payload, [\n\t\t\t\"request_id\",\n\t\t\t\"notification_type\",\n\t\t\t\"title\",\n\t\t\t\"description\",\n\t\t\t\"priority\",\n\t\t\t\"user_id\"\n\t\t]);\n\t\treturn this.request(\"POST\", \"/notifications/manual\", {\n\t\t\tparams: { organization_id: orgId },\n\t\t\tjson: payload.notification_type === \"ACTION_REQUIRED\" ? {\n\t\t\t\t...common,\n\t\t\t\tdue_at: payload.due_at,\n\t\t\t\tchecklist: payload.checklist?.map(({ title }) => ({ title }))\n\t\t\t} : common\n\t\t});\n\t}\n\tasync reviseManualContentForOrg(orgId, notificationId, payload) {\n\t\treturn this.request(\"PUT\", `/notifications/${encodeURIComponent(notificationId)}/manual-content`, {\n\t\t\tparams: { organization_id: orgId },\n\t\t\tjson: {\n\t\t\t\t...pickDefined(payload, [\n\t\t\t\t\t\"expected_revision\",\n\t\t\t\t\t\"title\",\n\t\t\t\t\t\"description\"\n\t\t\t\t]),\n\t\t\t\tchecklist: payload.checklist.map((item) => pickDefined(item, [\"id\", \"title\"]))\n\t\t\t}\n\t\t});\n\t}\n\tasync setChecklistItemCompletedForOrg(orgId, notificationId, itemId, payload) {\n\t\treturn this.request(\"PUT\", `/notifications/${encodeURIComponent(notificationId)}/checklist/${encodeURIComponent(itemId)}`, {\n\t\t\tparams: { organization_id: orgId },\n\t\t\tjson: pickDefined(payload, [\"expected_revision\", \"completed\"])\n\t\t});\n\t}\n\tasync list(params) {\n\t\treturn this.request(\"GET\", \"/notifications\", { params: buildQuery(params) });\n\t}\n\tasync listForOrg(orgId, params) {\n\t\treturn this.request(\"GET\", \"/notifications\", { params: {\n\t\t\t...buildQuery(params),\n\t\t\torganization_id: orgId\n\t\t} });\n\t}\n\tasync createForOrg(orgId, payload) {\n\t\treturn this.request(\"POST\", \"/notifications\", {\n\t\t\tjson: notificationCreatePayload(payload),\n\t\t\tparams: { organization_id: orgId }\n\t\t});\n\t}\n\tasync deleteForOrg(orgId, notificationId) {\n\t\tawait this.request(\"DELETE\", `/notifications/${notificationId}`);\n\t}\n\tasync update(notificationId, payload) {\n\t\treturn this.request(\"PATCH\", `/notifications/${notificationId}`, { json: notificationUpdatePayload(payload) });\n\t}\n\tasync updateForOrg(orgId, notificationId, payload) {\n\t\treturn this.update(notificationId, payload);\n\t}\n\tasync listActivitiesForOrg(orgId, notificationId) {\n\t\treturn this.request(\"GET\", `/notifications/${notificationId}/activities`);\n\t}\n\tasync createNoteForOrg(orgId, notificationId, payload) {\n\t\treturn this.request(\"POST\", `/notifications/${notificationId}/activities`, { json: notificationNotePayload(payload) });\n\t}\n\tasync markDoneAdmin(payload, options) {\n\t\tconst params = options?.orgId ? { organization_id: options.orgId } : void 0;\n\t\treturn this.request(\"POST\", \"/notifications/update-status\", {\n\t\t\tjson: {\n\t\t\t\t...notificationMarkDonePayload(payload),\n\t\t\t\tstatus: \"RESOLVED\"\n\t\t\t},\n\t\t\tparams\n\t\t});\n\t}\n\tasync markDoneMany(orgId, payload) {\n\t\treturn this.request(\"POST\", \"/notifications/update-status\", {\n\t\t\tjson: {\n\t\t\t\t...notificationMarkDonePayload(payload),\n\t\t\t\tstatus: \"RESOLVED\"\n\t\t\t},\n\t\t\tparams: { organization_id: orgId }\n\t\t});\n\t}\n\tasync updateStatusAdmin(payload, options) {\n\t\tconst params = options?.orgId ? { organization_id: options.orgId } : void 0;\n\t\treturn this.request(\"POST\", \"/notifications/update-status\", {\n\t\t\tjson: notificationStatusPayload(payload),\n\t\t\tparams\n\t\t});\n\t}\n\tasync updateStatusMany(orgId, payload) {\n\t\treturn this.request(\"POST\", \"/notifications/update-status\", {\n\t\t\tjson: notificationStatusPayload(payload),\n\t\t\tparams: { organization_id: orgId }\n\t\t});\n\t}\n\tasync openCounts(orgId, params) {\n\t\treturn this.request(\"GET\", \"/notifications/open-counts\", { params: {\n\t\t\torganization_id: orgId,\n\t\t\tinclude_all_users: params?.includeAllUsers ? true : void 0,\n\t\t\tsubject_case_id: params?.subjectCaseId || void 0,\n\t\t\tsubject_case_ids: params?.subjectCaseIds?.filter(Boolean)\n\t\t} });\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationBilling.ts\nvar checkoutSessionPayload = (payload) => pickDefined(payload, [\n\t\"plan_version_id\",\n\t\"success_url\",\n\t\"cancel_url\"\n]);\nvar freeSignupCompletePayload = (payload) => pickDefined(payload, [\"plan_version_id\"]);\nvar orgPlanChangePayload = (payload) => pickDefined(payload, [\"plan_version_id\"]);\nvar orgPlanTransitionPayload = (payload) => pickDefined(payload, [\"plan_version_id\"]);\nvar orgSubscriptionCancellationPayload = (payload) => pickDefined(payload, [\"reason_code\", \"reason_note\"]);\nvar AdminOrganizationBillingCheckoutAPI = class extends AdminResource {\n\tasync createSession(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/checkout/session`, { json: checkoutSessionPayload(payload) });\n\t}\n\tasync confirmSession(orgId, sessionId) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/checkout/confirm`, { json: { session_id: sessionId } });\n\t}\n\tasync reconcile(orgId) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/checkout/reconcile`, { json: {} });\n\t}\n\tasync completeFreeSignup(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/free-signup/complete`, { json: freeSignupCompletePayload(payload) });\n\t}\n};\nvar AdminOrganizationBillingAPI = class extends AdminResource {\n\tconstructor(transport) {\n\t\tsuper(transport);\n\t\tthis.checkout = new AdminOrganizationBillingCheckoutAPI(transport);\n\t}\n\tusageParams(params) {\n\t\treturn {\n\t\t\trange_start: params?.rangeStart,\n\t\t\trange_end: params?.rangeEnd\n\t\t};\n\t}\n\tasync getOrgBilling(orgId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(orgId)}/billing`);\n\t}\n\tasync updateOrgBilling(orgId, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(orgId)}/billing`, { json: payload });\n\t}\n\tasync scheduleOrgPlanChange(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/plan-change`, { json: orgPlanChangePayload(payload) });\n\t}\n\tasync transitionOrgPlan(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/plan-transition`, { json: orgPlanTransitionPayload(payload) });\n\t}\n\tasync cancelOrgPlanChange(orgId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(orgId)}/billing/plan-change`);\n\t}\n\tasync scheduleOrgSubscriptionCancellation(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/cancellation`, { json: orgSubscriptionCancellationPayload(payload) });\n\t}\n\tasync getOrgPaymentProfile(orgId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(orgId)}/billing/payment-profile`);\n\t}\n\tasync getOrgUsage(orgId, params) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(orgId)}/billing/usage`, { params: this.usageParams(params) });\n\t}\n\tasync createOrgBillingPortalSession(orgId, returnUrl) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/billing/portal-session`, { json: { return_url: returnUrl } });\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationBranding.ts\nvar assetPath = (organizationId, assetKind) => `/organizations/${encodeURIComponent(organizationId)}/branding/assets/${encodeURIComponent(assetKind)}`;\nvar generationPath = (organizationId, generationId) => {\n\tconst base = `/organizations/${encodeURIComponent(organizationId)}/branding/generations`;\n\treturn generationId ? `${base}/${encodeURIComponent(generationId)}` : base;\n};\nvar fileUploadBody = (file, fieldName = \"file\") => {\n\tconst body = new FormData();\n\tbody.append(fieldName, file);\n\treturn body;\n};\nvar brandingGenerationBody = (options) => {\n\tconst body = new FormData();\n\tconst generationMode = options.generationMode ?? \"reference_variants\";\n\tbody.append(\"generation_mode\", generationMode);\n\tif (options.file) body.append(\"file\", options.file);\n\tconst trimmedPrompt = options.designPrompt?.trim();\n\tif (generationMode === \"prompt_design\" && trimmedPrompt) body.append(\"design_prompt\", trimmedPrompt);\n\tif (options.autoApplyOnSuccess) body.append(\"auto_apply_on_success\", \"true\");\n\treturn body;\n};\nvar AdminOrganizationBrandingAPI = class extends AdminResource {\n\tasync get(organizationId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/branding`);\n\t}\n\tasync uploadAsset(organizationId, assetKind, file) {\n\t\treturn this.request(\"PUT\", assetPath(organizationId, assetKind), { body: fileUploadBody(file) });\n\t}\n\tasync deleteAsset(organizationId, assetKind) {\n\t\treturn this.request(\"DELETE\", assetPath(organizationId, assetKind));\n\t}\n\tasync startGeneration(organizationId, options) {\n\t\tconst body = brandingGenerationBody(options);\n\t\treturn this.request(\"POST\", generationPath(organizationId), { body });\n\t}\n\tasync getGeneration(organizationId, generationId) {\n\t\treturn this.request(\"GET\", generationPath(organizationId, generationId));\n\t}\n\tasync applyGeneration(organizationId, generationId) {\n\t\treturn this.request(\"POST\", `${generationPath(organizationId, generationId)}/apply`);\n\t}\n\t/** Download a protected preview through the authenticated admin transport. */\n\tasync downloadGenerationAsset(organizationId, generationId, assetKind, options = {}) {\n\t\treturn this.request(\"GET\", `${generationPath(organizationId, generationId)}/assets/${encodeURIComponent(assetKind)}`, {\n\t\t\tresponseType: \"blob\",\n\t\t\tsignal: options.signal\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/raw.ts\nvar AdminRawAPI = class extends AdminResource {\n\tasync request(method, path, options = {}) {\n\t\treturn super.request(method, path, options);\n\t}\n\tasync requestWithMeta(method, path, options = {}) {\n\t\treturn this.transport.requestWithMeta(method, path.startsWith(\"/admin\") ? path : `/admin${path.startsWith(\"/\") ? path : `/${path}`}`, {\n\t\t\t...options,\n\t\t\twithAuth: options.withAuth ?? true\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationIntegrations.ts\nvar integrationsPayload = (payload) => pickDefined(payload, [\"microsoft\", \"sharepoint\"]);\nvar twilioProviderPayload = (payload) => pickDefined(payload, [\n\t\"account_sid\",\n\t\"auth_tokens_by_region\",\n\t\"api_key_sids_by_region\",\n\t\"api_key_secrets_by_region\"\n]);\nvar sendGridProviderPayload = (payload) => pickDefined(payload, [\n\t\"api_key\",\n\t\"from_email\",\n\t\"from_name\"\n]);\nvar microsoftSecretPayload = (payload) => pickDefined(payload, [\"client_secret\"]);\nvar microsoftConnectPayload = (payload) => pickDefined(payload, [\"return_to\"]);\nvar microsoftGrantConnectPayload = (payload) => pickDefined(payload, [\"return_to\"]);\nvar microsoftSiteGrantPayload = (payload) => pickDefined(payload, [\n\t\"site_url\",\n\t\"role\",\n\t\"mode\",\n\t\"return_to\"\n]);\nvar sharePointResolvePayload = (payload) => pickDefined(payload, [\n\t\"connection_id\",\n\t\"site_url\",\n\t\"library_name\",\n\t\"folder_path\"\n]);\nvar AdminOrganizationIntegrationsAPI = class extends AdminResource {\n\tasync updateIntegrations(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations`, { json: integrationsPayload(payload) });\n\t}\n\tasync getProvidersTab(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/integrations`, { params: { projection: \"providers_tab\" } });\n\t}\n\tasync getTwilioProvider(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`);\n\t}\n\tasync upsertTwilioProvider(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`, { json: twilioProviderPayload(payload) });\n\t}\n\tasync deleteTwilioProvider(id) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`);\n\t}\n\tasync getSendGridProvider(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`);\n\t}\n\tasync upsertSendGridProvider(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`, { json: sendGridProviderPayload(payload) });\n\t}\n\tasync deleteSendGridProvider(id) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`);\n\t}\n\tasync setMicrosoftConnectionSecret(id, connectionId, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}/secret`, { json: microsoftSecretPayload(payload) });\n\t}\n\tasync deleteMicrosoftConnectionSecret(id, connectionId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}/secret`);\n\t}\n\tasync startMicrosoftConnect(id, payload = {}) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/connect`, { json: microsoftConnectPayload(payload) });\n\t}\n\tasync startMicrosoftSharePointGrantConnect(id, connectionId, payload = {}) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}/sharepoint-sites/grant-connect`, { json: microsoftGrantConnectPayload(payload) });\n\t}\n\tasync deleteMicrosoftConnection(id, connectionId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}`);\n\t}\n\tasync createMicrosoftSharePointSiteGrant(id, connectionId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}/sharepoint-sites`, { json: microsoftSiteGrantPayload(payload) });\n\t}\n\tasync deleteMicrosoftSharePointSiteGrant(id, connectionId, siteId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/microsoft-connections/${encodeURIComponent(connectionId)}/sharepoint-sites/${encodeURIComponent(siteId)}`);\n\t}\n\tasync resolveSharePointTarget(id, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/integrations/sharepoint/resolve`, { json: sharePointResolvePayload(payload) });\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationPolicies.ts\nvar emergencyPolicyPayload = (payload) => pickDefined(payload, [\"emergency_contact_profile_id\"]);\nvar billingPolicyPayload = (payload) => pickDefined(payload, [\n\t\"subscription_required\",\n\t\"credits_per_chat_conversation\",\n\t\"credits_per_voice_minute\"\n]);\nvar kontextLimitsPayload = (payload) => pickDefined(payload, [\n\t\"scraping\",\n\t\"sharepoint\",\n\t\"file_uploads\",\n\t\"answer_library\"\n]);\nvar outboundPolicyPayload = (payload) => pickDefined(payload, [\"preferred_outbound_phone_number_id\"]);\nvar AdminOrganizationPoliciesAPI = class extends AdminResource {\n\tasync updateEmergencyPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/emergency-policy`, { json: emergencyPolicyPayload(payload) });\n\t}\n\tasync updateBillingPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/billing-policy`, { json: billingPolicyPayload(payload) });\n\t}\n\tasync updateKontextLimits(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/kontext-limits`, { json: kontextLimitsPayload(payload) });\n\t}\n\tasync updateOutboundPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/outbound-policy`, { json: outboundPolicyPayload(payload) });\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationProjectRealization.ts\nvar realizationCreatePayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"slug\",\n\t\"status\",\n\t\"description\",\n\t\"extra_config\",\n\t\"widget_config\",\n\t\"language\"\n]);\nvar realizationUpdatePayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"status\",\n\t\"description\",\n\t\"extra_config\",\n\t\"widget_config\",\n\t\"language\"\n]);\nvar AdminOrganizationProjectRealizationAPI = class extends AdminResource {\n\tasync list(organizationId, projectId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/realizations`);\n\t}\n\tasync create(organizationId, projectId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/realizations`, { json: realizationCreatePayload(payload) });\n\t}\n\tasync update(organizationId, projectId, realizationId, payload) {\n\t\treturn this.request(\"PATCH\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/realizations/${encodeURIComponent(realizationId)}`, { json: realizationUpdatePayload(payload) });\n\t}\n\tasync delete(organizationId, projectId, realizationId) {\n\t\tawait this.request(\"DELETE\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/realizations/${encodeURIComponent(realizationId)}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationProject.ts\nvar projectCreatePayload = (organizationId, payload) => pickDefined({\n\t...payload,\n\torganization_id: organizationId\n}, [\n\t\"organization_id\",\n\t\"name\",\n\t\"slug\",\n\t\"graph_id\",\n\t\"description\",\n\t\"project_config\",\n\t\"widget_config\",\n\t\"realization_languages\"\n]);\nvar projectUpdatePayload = (payload) => pickDefined(payload, [\n\t\"graph_id\",\n\t\"name\",\n\t\"slug\",\n\t\"status\",\n\t\"widget_config\",\n\t\"project_config\",\n\t\"inbound_rerouting\",\n\t\"description\",\n\t\"realization_languages\"\n]);\nvar AdminOrganizationProjectAPI = class extends AdminResource {\n\tconstructor(transport) {\n\t\tsuper(transport);\n\t\tthis.realization = new AdminOrganizationProjectRealizationAPI(transport);\n\t}\n\tasync list(organizationId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects`);\n\t}\n\tasync listOptions(organizationId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects?projection=options`);\n\t}\n\tasync listTable(organizationId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects?projection=table`);\n\t}\n\tasync get(organizationId, projectId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}`);\n\t}\n\tasync resolve(projectIdentifier, options) {\n\t\treturn this.get(options.organizationIdentifier, projectIdentifier);\n\t}\n\tasync bootstrapContext(organizationId, projectId) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/bootstrap-context`);\n\t}\n\tasync create(organizationId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(organizationId)}/projects`, { json: projectCreatePayload(organizationId, payload) });\n\t}\n\tasync update(organizationId, projectId, payload) {\n\t\treturn this.request(\"PATCH\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}`, { json: projectUpdatePayload(payload) });\n\t}\n\tasync delete(organizationId, projectId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}`);\n\t}\n\tasync pauseProject(organizationId, projectId, payload, options = {}) {\n\t\treturn this.request(\"POST\", `/platform/organizations/${encodeURIComponent(organizationId)}/projects/${encodeURIComponent(projectId)}/pause`, {\n\t\t\t...options,\n\t\t\tjson: pickDefined(payload, [\"expected_graph_id\"])\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationProvisioning.ts\nvar AdminOrganizationProvisioningAPI = class extends AdminResource {\n\tasync resetProjects(id) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/provisioning/projects/reset`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationRegistry.ts\nvar organizationCreatePayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"slug\",\n\t\"tier\",\n\t\"description\",\n\t\"contact_email\",\n\t\"status\",\n\t\"is_admin_org\"\n]);\nvar organizationUpdatePayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"description\",\n\t\"contact_email\",\n\t\"tier\",\n\t\"status\",\n\t\"is_admin_org\"\n]);\nvar organizationProfilePayload = (payload) => pickDefined(payload, [\n\t\"address\",\n\t\"public_name\",\n\t\"website_link\",\n\t\"data_privacy_url\"\n]);\nvar organizationEmergencyPolicyPayload = (payload) => pickDefined(payload, [\"emergency_contact_profile_id\"]);\nvar organizationBillingPolicyPayload = (payload) => pickDefined(payload, [\n\t\"subscription_required\",\n\t\"credits_per_chat_conversation\",\n\t\"credits_per_voice_minute\"\n]);\nvar organizationKontextLimitsPayload = (payload) => pickDefined(payload, [\n\t\"scraping\",\n\t\"sharepoint\",\n\t\"file_uploads\",\n\t\"answer_library\"\n]);\nvar organizationOutboundPolicyPayload = (payload) => pickDefined(payload, [\"preferred_outbound_phone_number_id\"]);\nvar organizationIntegrationsPayload = (payload) => pickDefined(payload, [\"microsoft\", \"sharepoint\"]);\nvar organizationTwilioProviderPayload = (payload) => pickDefined(payload, [\n\t\"account_sid\",\n\t\"auth_tokens_by_region\",\n\t\"api_key_sids_by_region\",\n\t\"api_key_secrets_by_region\"\n]);\nvar organizationSendGridProviderPayload = (payload) => pickDefined(payload, [\n\t\"api_key\",\n\t\"from_email\",\n\t\"from_name\"\n]);\nvar organizationPreSeedPayload = (payload) => pickDefined(payload, [\n\t\"schema_version\",\n\t\"profile\",\n\t\"emergency_policy\",\n\t\"contact_profiles\",\n\t\"session_config\"\n]);\nvar AdminOrganizationRegistryAPI = class extends AdminResource {\n\tasync getPlatformRecord(id, options = {}) {\n\t\treturn this.request(\"GET\", `/platform/organizations/${encodeURIComponent(id)}`, options);\n\t}\n\tasync updatePlatformStatusTier(id, payload, options = {}) {\n\t\treturn this.request(\"PATCH\", `/platform/organizations/${encodeURIComponent(id)}`, {\n\t\t\t...options,\n\t\t\tjson: pickDefined(payload, [\n\t\t\t\t\"status\",\n\t\t\t\t\"tier\",\n\t\t\t\t\"expected_updated_at\"\n\t\t\t])\n\t\t});\n\t}\n\tasync list() {\n\t\tconst response = await this.request(\"GET\", \"/organizations\");\n\t\treturn Array.isArray(response) ? response : response.items ?? [];\n\t}\n\tasync listAdminTable(params = {}, options = {}) {\n\t\tconst searchParams = new URLSearchParams({ projection: \"admin_table\" });\n\t\tconst query = String(params.query ?? \"\").trim();\n\t\tif (query) searchParams.set(\"query\", query);\n\t\tif (params.offset !== void 0) searchParams.set(\"offset\", String(params.offset));\n\t\tif (params.limit !== void 0) searchParams.set(\"limit\", String(params.limit));\n\t\treturn this.request(\"GET\", `/organizations?${searchParams.toString()}`, options);\n\t}\n\tasync listAllAdminTable(options = {}) {\n\t\tconst items = /* @__PURE__ */ new Map();\n\t\tlet offset = 0;\n\t\tlet total = 0;\n\t\tdo {\n\t\t\toptions.signal?.throwIfAborted();\n\t\t\tconst page = await this.listAdminTable({\n\t\t\t\toffset,\n\t\t\t\tlimit: 500\n\t\t\t}, options);\n\t\t\ttotal = page.total;\n\t\t\tif (!page.items.length && offset < total) throw new Error(\"Organization list changed while loading; refresh required\");\n\t\t\tfor (const item of page.items) items.set(item.id, item);\n\t\t\toffset += page.items.length;\n\t\t} while (offset < total);\n\t\tif (items.size !== total) throw new Error(\"Organization list changed while loading; refresh required\");\n\t\treturn {\n\t\t\titems: [...items.values()],\n\t\t\ttotal\n\t\t};\n\t}\n\tasync get(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}`);\n\t}\n\tasync getFrame(id, options = {}) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}?projection=frame`, options);\n\t}\n\tasync getGeneralSettings(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}?projection=general_settings`);\n\t}\n\tasync create(payload) {\n\t\treturn this.request(\"POST\", \"/organizations\", { json: organizationCreatePayload(payload) });\n\t}\n\tasync update(id, payload) {\n\t\treturn this.request(\"PATCH\", `/organizations/${encodeURIComponent(id)}`, { json: organizationUpdatePayload(payload) });\n\t}\n\tasync updateProfile(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/profile`, { json: organizationProfilePayload(payload) });\n\t}\n\tasync updateEmergencyPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/emergency-policy`, { json: organizationEmergencyPolicyPayload(payload) });\n\t}\n\tasync updateBillingPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/billing-policy`, { json: organizationBillingPolicyPayload(payload) });\n\t}\n\tasync updateKontextLimits(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/kontext-limits`, { json: organizationKontextLimitsPayload(payload) });\n\t}\n\tasync updateOutboundPolicy(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/policies/outbound-policy`, { json: organizationOutboundPolicyPayload(payload) });\n\t}\n\tasync updateIntegrations(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations`, { json: organizationIntegrationsPayload(payload) });\n\t}\n\tasync getTwilioProvider(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`);\n\t}\n\tasync upsertTwilioProvider(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`, { json: organizationTwilioProviderPayload(payload) });\n\t}\n\tasync deleteTwilioProvider(id) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/providers/twilio`);\n\t}\n\tasync getSendGridProvider(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`);\n\t}\n\tasync upsertSendGridProvider(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`, { json: organizationSendGridProviderPayload(payload) });\n\t}\n\tasync deleteSendGridProvider(id) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}/integrations/providers/sendgrid`);\n\t}\n\tasync setOpenAIKey(id, value) {\n\t\treturn this.request(\"PUT\", `/session-config/organizations/${encodeURIComponent(id)}/secrets/openai-api-key`, { json: { value } });\n\t}\n\tasync deleteOpenAIKey(id) {\n\t\treturn this.request(\"DELETE\", `/session-config/organizations/${encodeURIComponent(id)}/secrets/openai-api-key`);\n\t}\n\tasync exportPreSeed(id) {\n\t\treturn this.request(\"GET\", `/organizations/${encodeURIComponent(id)}/pre-seed`);\n\t}\n\tasync importPreSeed(id, payload) {\n\t\treturn this.request(\"PUT\", `/organizations/${encodeURIComponent(id)}/pre-seed`, { json: organizationPreSeedPayload(payload) });\n\t}\n\tasync resetProjects(id) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(id)}/provisioning/projects/reset`);\n\t}\n\tasync delete(id) {\n\t\treturn this.request(\"DELETE\", `/organizations/${encodeURIComponent(id)}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/organizationTelephony.ts\nvar assignPhoneNumberPayload = (payload) => pickDefined(payload, [\"project_id\", \"realization_id\"]);\nvar AdminOrganizationTelephonyAPI = class extends AdminResource {\n\tasync assignPhoneNumberToProject(orgId, phoneNumberId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${encodeURIComponent(orgId)}/telephony/phone-numbers/${encodeURIComponent(phoneNumberId)}`, { json: assignPhoneNumberPayload(payload) });\n\t}\n\tasync unassignPhoneNumber(orgId, phoneNumberId) {\n\t\tawait this.request(\"DELETE\", `/organizations/${encodeURIComponent(orgId)}/telephony/phone-numbers/${encodeURIComponent(phoneNumberId)}`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/phoneNumbers.ts\nvar phoneNumberCreatePayload = (payload) => pickDefined(payload, [\n\t\"phone_number\",\n\t\"label\",\n\t\"target_type\",\n\t\"organization_id\",\n\t\"project_id\",\n\t\"realization_id\",\n\t\"graph_id\",\n\t\"direction\",\n\t\"type\"\n]);\nvar phoneNumberUpdatePayload = (payload) => pickDefined(payload, [\n\t\"phone_number\",\n\t\"label\",\n\t\"target_type\",\n\t\"organization_id\",\n\t\"project_id\",\n\t\"realization_id\",\n\t\"graph_id\",\n\t\"direction\",\n\t\"type\"\n]);\nvar organizationPath$1 = (organizationId, suffix = \"\") => `/organizations/${encodeURIComponent(organizationId)}/phone-numbers${suffix}`;\nvar phonePath = (organizationId, phoneNumberId, suffix = \"\") => organizationPath$1(organizationId, `/${encodeURIComponent(phoneNumberId)}${suffix}`);\n/** Phone numbers are organization data; every call names the admitted organization. */\nvar AdminPhoneNumbersAPI = class extends AdminResource {\n\tasync list(organizationId, params) {\n\t\treturn this.request(\"GET\", organizationPath$1(organizationId), { params: {\n\t\t\tsearch: params?.search ?? params?.q,\n\t\t\tlimit: params?.limit ?? 1e3,\n\t\t\toffset: params?.offset ?? 0\n\t\t} });\n\t}\n\tasync listTable(organizationId, params) {\n\t\treturn this.request(\"GET\", organizationPath$1(organizationId), { params: {\n\t\t\tsearch: params?.search ?? params?.q,\n\t\t\tlimit: params?.limit ?? 1e3,\n\t\t\toffset: params?.offset ?? 0,\n\t\t\tprojection: \"table\"\n\t\t} });\n\t}\n\tasync assignmentOptions(organizationId, targetType = \"realization\") {\n\t\treturn this.request(\"GET\", organizationPath$1(organizationId, \"/assignment-options\"), { params: { target_type: targetType } });\n\t}\n\tasync create(organizationId, payload) {\n\t\treturn this.request(\"POST\", organizationPath$1(organizationId), { json: phoneNumberCreatePayload(payload) });\n\t}\n\tasync update(organizationId, phoneNumberId, payload) {\n\t\treturn this.request(\"PATCH\", phonePath(organizationId, phoneNumberId), { json: phoneNumberUpdatePayload(payload) });\n\t}\n\t/** Destructive: the server requires a fresh session-bound password proof beforehand. */\n\tasync delete(organizationId, phoneNumberId) {\n\t\tawait this.request(\"DELETE\", phonePath(organizationId, phoneNumberId));\n\t}\n\tasync startVerification(organizationId, phoneNumberId) {\n\t\treturn this.request(\"POST\", phonePath(organizationId, phoneNumberId, \"/verify\"));\n\t}\n\tasync refreshVerification(organizationId, phoneNumberId) {\n\t\treturn this.request(\"POST\", phonePath(organizationId, phoneNumberId, \"/verify/refresh\"));\n\t}\n\tasync syncTwilio(organizationId, phoneNumberId) {\n\t\treturn this.request(\"POST\", phonePath(organizationId, phoneNumberId, \"/twilio/sync\"));\n\t}\n\tasync verifyTwilio(organizationId, phoneNumberId) {\n\t\treturn this.request(\"POST\", phonePath(organizationId, phoneNumberId, \"/twilio/verify\"));\n\t}\n\tasync syncTwilioAll(organizationId) {\n\t\treturn this.request(\"POST\", organizationPath$1(organizationId, \"/twilio/sync\"));\n\t}\n};\n//#endregion\n//#region src/resources/admin/sessionConfig.ts\nvar encode = (value) => encodeURIComponent(value);\nvar sectionPayload = (payload) => Object.fromEntries(Object.entries(payload).filter(([, value]) => value !== void 0));\nvar secretPayload = (value) => ({ value });\nvar AdminSessionConfigAPI = class extends AdminResource {\n\tasync getGlobalSectionEditor(section) {\n\t\treturn this.request(\"GET\", `/session-config/global/sections/${encode(section)}/editor`);\n\t}\n\tasync updateGlobalSection(section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/global/sections/${encode(section)}`, { json: sectionPayload(payload) });\n\t}\n\tasync resetGlobalSection(section) {\n\t\treturn this.request(\"DELETE\", `/session-config/global/sections/${encode(section)}`);\n\t}\n\tasync exportGlobalSection(section) {\n\t\treturn this.request(\"GET\", `/session-config/global/sections/${encode(section)}/export`);\n\t}\n\tasync importGlobalSection(section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/global/sections/${encode(section)}/import`, { json: payload });\n\t}\n\tasync getOrganizationSectionEditor(organizationId, section) {\n\t\treturn this.request(\"GET\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}/editor`);\n\t}\n\tasync updateOrganizationSection(organizationId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}`, { json: sectionPayload(payload) });\n\t}\n\tasync resetOrganizationSection(organizationId, section) {\n\t\tif (section === \"answer_rules\" || section === \"escalation\") return this.request(\"POST\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}/restore-default`);\n\t\treturn this.request(\"DELETE\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}`);\n\t}\n\tasync exportOrganizationSection(organizationId, section) {\n\t\treturn this.request(\"GET\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}/export`);\n\t}\n\tasync importOrganizationSection(organizationId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/organizations/${encode(organizationId)}/sections/${encode(section)}/import`, { json: payload });\n\t}\n\tasync getProjectSectionEditor(projectId, section) {\n\t\treturn this.request(\"GET\", `/session-config/projects/${encode(projectId)}/sections/${encode(section)}/editor`);\n\t}\n\tasync updateProjectSection(projectId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/projects/${encode(projectId)}/sections/${encode(section)}`, { json: sectionPayload(payload) });\n\t}\n\tasync resetProjectSection(projectId, section) {\n\t\treturn this.request(\"DELETE\", `/session-config/projects/${encode(projectId)}/sections/${encode(section)}`);\n\t}\n\tasync exportProjectSection(projectId, section) {\n\t\treturn this.request(\"GET\", `/session-config/projects/${encode(projectId)}/sections/${encode(section)}/export`);\n\t}\n\tasync importProjectSection(projectId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/projects/${encode(projectId)}/sections/${encode(section)}/import`, { json: payload });\n\t}\n\tasync getRealizationSectionEditor(realizationId, section) {\n\t\treturn this.request(\"GET\", `/session-config/realizations/${encode(realizationId)}/sections/${encode(section)}/editor`);\n\t}\n\tasync updateRealizationSection(realizationId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/realizations/${encode(realizationId)}/sections/${encode(section)}`, { json: sectionPayload(payload) });\n\t}\n\tasync resetRealizationSection(realizationId, section) {\n\t\treturn this.request(\"DELETE\", `/session-config/realizations/${encode(realizationId)}/sections/${encode(section)}`);\n\t}\n\tasync exportRealizationSection(realizationId, section) {\n\t\treturn this.request(\"GET\", `/session-config/realizations/${encode(realizationId)}/sections/${encode(section)}/export`);\n\t}\n\tasync importRealizationSection(realizationId, section, payload) {\n\t\treturn this.request(\"PUT\", `/session-config/realizations/${encode(realizationId)}/sections/${encode(section)}/import`, { json: payload });\n\t}\n\tasync getEffectiveProject(projectId) {\n\t\treturn this.request(\"GET\", `/session-config/projects/${encode(projectId)}/effective`);\n\t}\n\tasync getEffectiveRealization(projectId, realizationId) {\n\t\treturn this.request(\"GET\", `/session-config/projects/${encode(projectId)}/realizations/${encode(realizationId)}/effective`);\n\t}\n\tasync setGlobalSecret(secret, value) {\n\t\treturn this.request(\"PUT\", `/session-config/global/secrets/${encode(secret)}`, { json: secretPayload(value) });\n\t}\n\tasync deleteGlobalSecret(secret) {\n\t\treturn this.request(\"DELETE\", `/session-config/global/secrets/${encode(secret)}`);\n\t}\n\tasync setOrganizationSecret(organizationId, secret, value) {\n\t\treturn this.request(\"PUT\", `/session-config/organizations/${encode(organizationId)}/secrets/${encode(secret)}`, { json: secretPayload(value) });\n\t}\n\tasync deleteOrganizationSecret(organizationId, secret) {\n\t\treturn this.request(\"DELETE\", `/session-config/organizations/${encode(organizationId)}/secrets/${encode(secret)}`);\n\t}\n\tasync setProjectSecret(projectId, secret, value) {\n\t\treturn this.request(\"PUT\", `/session-config/projects/${encode(projectId)}/secrets/${encode(secret)}`, { json: secretPayload(value) });\n\t}\n\tasync deleteProjectSecret(projectId, secret) {\n\t\treturn this.request(\"DELETE\", `/session-config/projects/${encode(projectId)}/secrets/${encode(secret)}`);\n\t}\n\tasync setRealizationSecret(realizationId, secret, value) {\n\t\treturn this.request(\"PUT\", `/session-config/realizations/${encode(realizationId)}/secrets/${encode(secret)}`, { json: secretPayload(value) });\n\t}\n\tasync deleteRealizationSecret(realizationId, secret) {\n\t\treturn this.request(\"DELETE\", `/session-config/realizations/${encode(realizationId)}/secrets/${encode(secret)}`);\n\t}\n\tasync setProjectOpenAIKey(projectId, value) {\n\t\treturn this.setProjectSecret(projectId, \"openai_api_key\", value);\n\t}\n\tasync deleteProjectOpenAIKey(projectId) {\n\t\treturn this.deleteProjectSecret(projectId, \"openai_api_key\");\n\t}\n\tasync setProjectVoiceWebhookSecret(projectId, value) {\n\t\treturn this.setProjectSecret(projectId, \"openai_webhook_secret\", value);\n\t}\n\tasync deleteProjectVoiceWebhookSecret(projectId) {\n\t\treturn this.deleteProjectSecret(projectId, \"openai_webhook_secret\");\n\t}\n\tasync setProjectOpenAIProjectId(projectId, value) {\n\t\treturn this.setProjectSecret(projectId, \"openai_project_id\", value);\n\t}\n\tasync deleteProjectOpenAIProjectId(projectId) {\n\t\treturn this.deleteProjectSecret(projectId, \"openai_project_id\");\n\t}\n\tasync setOrganizationOpenAIKey(organizationId, value) {\n\t\treturn this.setOrganizationSecret(organizationId, \"openai_api_key\", value);\n\t}\n\tasync deleteOrganizationOpenAIKey(organizationId) {\n\t\treturn this.deleteOrganizationSecret(organizationId, \"openai_api_key\");\n\t}\n};\n//#endregion\n//#region src/resources/admin/settings.ts\nvar AdminSettingsAPI = class extends AdminResource {\n\tasync getTwilioAccount() {\n\t\treturn this.request(\"GET\", \"/app-settings/twilio-account\");\n\t}\n\tasync getSendgridAccount() {\n\t\treturn this.request(\"GET\", \"/app-settings/sendgrid-account\");\n\t}\n};\n//#endregion\n//#region src/resources/admin/usage.ts\nvar mapUsageSummaryQuery = (options) => ({\n\trange_start: options?.rangeStart,\n\trange_end: options?.rangeEnd,\n\trange_days: options?.rangeDays,\n\tevent_type: options?.eventType\n});\nvar mapUsageEventsQuery = (options) => ({\n\tlimit: options?.limit ?? 50,\n\toffset: options?.offset ?? 0,\n\tevent_type: options?.eventType,\n\tsession_kind: options?.sessionKind,\n\trealization_id: options?.realizationId,\n\tenv: options?.env,\n\thas_error: options?.hasError,\n\ttermination_type: options?.terminationType,\n\tclose_reason: options?.closeReason,\n\trange_start: options?.rangeStart,\n\trange_end: options?.rangeEnd\n});\nvar organizationPath = (organizationId, suffix = \"\") => `/organizations/${encodeURIComponent(organizationId)}${suffix}`;\n/** Usage is organization data; there is no platform-wide usage view. */\nvar AdminUsageAPI = class extends AdminResource {\n\tasync project(organizationId, projectId, options) {\n\t\treturn this.request(\"GET\", organizationPath(organizationId, `/projects/${encodeURIComponent(projectId)}/usage`), { params: mapUsageSummaryQuery(options) });\n\t}\n\tasync organization(organizationId, options) {\n\t\treturn this.request(\"GET\", organizationPath(organizationId, \"/usage\"), { params: mapUsageSummaryQuery(options) });\n\t}\n\tasync projectEvents(organizationId, projectId, options) {\n\t\treturn this.request(\"GET\", organizationPath(organizationId, `/projects/${encodeURIComponent(projectId)}/usage/events`), { params: mapUsageEventsQuery(options) });\n\t}\n\tasync organizationEvents(organizationId, options) {\n\t\treturn this.request(\"GET\", organizationPath(organizationId, \"/usage/events\"), { params: mapUsageEventsQuery(options) });\n\t}\n};\n//#endregion\n//#region src/resources/admin/users.ts\nvar normalizeQuery = (params) => {\n\tif (!params) return void 0;\n\tconst query = {};\n\tif (params.query) query[\"query\"] = params.query;\n\tif (params.organizationId) query[\"organization_id\"] = params.organizationId;\n\tif (params.role) query[\"role\"] = params.role;\n\tif (params.isActive !== void 0 && params.isActive !== null) query[\"is_active\"] = params.isActive;\n\tif (params.offset !== void 0 && params.offset !== null) query[\"offset\"] = params.offset;\n\tif (params.limit !== void 0 && params.limit !== null) query[\"limit\"] = params.limit;\n\tif (params.sortBy) query[\"sort_by\"] = params.sortBy;\n\tif (params.sortDir) query[\"sort_dir\"] = params.sortDir;\n\treturn query;\n};\nvar userCreatePayload = (payload) => pickDefined(payload, [\n\t\"email\",\n\t\"username\",\n\t\"first_name\",\n\t\"last_name\",\n\t\"profile_image\",\n\t\"role\",\n\t\"permissions\",\n\t\"is_active\",\n\t\"availability_policy_id\"\n]);\nvar userUpdatePayload = (payload) => pickDefined(payload, [\n\t\"email\",\n\t\"username\",\n\t\"first_name\",\n\t\"last_name\",\n\t\"profile_image\",\n\t\"role\",\n\t\"permissions\",\n\t\"password\",\n\t\"is_active\",\n\t\"availability_policy_id\"\n]);\nvar twoFactorRequestPayload = (payload) => pickDefined(payload ?? {}, [\"channel\"]);\nvar twoFactorVerifyPayload = (payload) => pickDefined(payload, [\"code\"]);\nvar AdminUsersAPI = class extends AdminResource {\n\tasync list(params) {\n\t\treturn this.request(\"GET\", \"/users\", { params: normalizeQuery(params) });\n\t}\n\tasync listTable(params) {\n\t\treturn this.request(\"GET\", \"/users\", { params: {\n\t\t\t...normalizeQuery(params) ?? {},\n\t\t\tprojection: \"table\"\n\t\t} });\n\t}\n\tasync listForOrg(orgId, params) {\n\t\treturn this.request(\"GET\", `/organizations/${orgId}/users`, { params: normalizeQuery(params) });\n\t}\n\tasync createForOrg(orgId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/users`, { json: userCreatePayload(payload) });\n\t}\n\tasync updateForOrg(orgId, userId, payload) {\n\t\treturn this.request(\"PATCH\", `/organizations/${orgId}/users/${userId}`, { json: userUpdatePayload(payload) });\n\t}\n\tasync deleteForOrg(orgId, userId) {\n\t\tawait this.request(\"DELETE\", `/organizations/${orgId}/users/${userId}`);\n\t}\n\tasync resendInvite(orgId, userId) {\n\t\tawait this.request(\"POST\", `/organizations/${orgId}/users/${userId}/resend-invite`);\n\t}\n\tasync requestTwoFactor(orgId, userId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/users/${userId}/two-factor/request`, { json: twoFactorRequestPayload(payload) });\n\t}\n\tasync verifyTwoFactor(orgId, userId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${orgId}/users/${userId}/two-factor/verify`, { json: twoFactorVerifyPayload(payload) });\n\t}\n\tasync disableTwoFactor(orgId, userId) {\n\t\treturn this.request(\"DELETE\", `/organizations/${orgId}/users/${userId}/two-factor`);\n\t}\n};\n//#endregion\n//#region src/resources/admin/analytics.ts\nvar mapSessionsQuery = (options) => ({\n\tlimit: options?.limit ?? 50,\n\toffset: options?.offset ?? 0,\n\torganization_id: options?.organizationId,\n\tproject_id: options?.projectId,\n\trealization_id: options?.realizationId,\n\tsession_kind: options?.sessionKind,\n\tsession_type: options?.sessionType,\n\tchannel: options?.channel,\n\tenv: options?.env,\n\tcall_direction: options?.callDirection,\n\tresolution_status: options?.resolutionStatus,\n\tautomation: options?.automation,\n\thandoff: options?.handoff,\n\thas_evaluation: options?.hasEvaluation,\n\tanonymized: options?.anonymized,\n\thas_error: options?.hasError,\n\tcase_type: options?.caseType,\n\tcase_key: options?.caseKey,\n\tcase_outcome: options?.caseOutcome,\n\tsla_status: options?.slaStatus,\n\toutcome_reason_code: options?.outcomeReasonCode,\n\tsla_exclusion_reason_code: options?.slaExclusionReasonCode,\n\texcluded_only: options?.slaStatus ? void 0 : options?.excludedOnly,\n\tsearch: options?.search,\n\tall_time: options?.allTime,\n\trange_days: options?.rangeDays,\n\tduration_min_ms: options?.durationMinMs,\n\tduration_max_ms: options?.durationMaxMs,\n\tquality_min: options?.qualityMin,\n\tquality_max: options?.qualityMax,\n\trange_start: options?.rangeStart,\n\trange_end: options?.rangeEnd\n});\nvar mapDashboardQuery = (options) => ({\n\torganization_id: options?.organizationId,\n\tproject_id: options?.projectId,\n\trealization_id: options?.realizationId,\n\tall_time: options?.allTime,\n\tsearch: options?.search,\n\tduration_min_ms: options?.durationMinMs,\n\tduration_max_ms: options?.durationMaxMs,\n\trange_start: options?.rangeStart,\n\trange_end: options?.rangeEnd,\n\trange_days: options?.rangeDays,\n\tsession_kind: options?.sessionKind,\n\tenv: options?.env,\n\tchannel: options?.channel,\n\tcall_direction: options?.callDirection,\n\tresolution_status: options?.resolutionStatus,\n\tautomation: options?.automation,\n\thandoff: options?.handoff,\n\thas_evaluation: options?.hasEvaluation,\n\tanonymized: options?.anonymized,\n\thas_error: options?.hasError,\n\tcase_type: options?.caseType,\n\tcase_key: options?.caseKey,\n\tcase_outcome: options?.caseOutcome,\n\tsla_status: options?.slaStatus,\n\toutcome_reason_code: options?.outcomeReasonCode,\n\tsla_exclusion_reason_code: options?.slaExclusionReasonCode,\n\tquality_min: options?.qualityMin,\n\tquality_max: options?.qualityMax\n});\nvar sessionAnnotationPayload = (payload) => pickDefined(payload, [\n\t\"pinned\",\n\t\"note\",\n\t\"attributes\"\n]);\nvar AdminAnalyticsAPI = class extends AdminResource {\n\tasync sessions(options) {\n\t\treturn this.request(\"GET\", \"/analytics/sessions\", { params: mapSessionsQuery(options) });\n\t}\n\tasync dashboard(options) {\n\t\treturn this.request(\"GET\", \"/analytics/dashboard\", { params: mapDashboardQuery(options) });\n\t}\n\tasync upsertSessionAnnotation(organizationId, sessionRowId, payload) {\n\t\treturn this.request(\"PUT\", `/analytics/sessions/${encodeURIComponent(sessionRowId)}/annotation`, {\n\t\t\tparams: { organization_id: organizationId },\n\t\t\tjson: sessionAnnotationPayload(payload)\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/admin/userProviderAccounts.ts\nvar oauthStartPayload = (payload) => pickDefined(payload, [\n\t\"return_path\",\n\t\"requested_capabilities\",\n\t\"microsoft_account_kind\"\n]);\nvar AdminUserProviderAccountsAPI = class extends AdminResource {\n\tasync listProviders() {\n\t\treturn this.request(\"GET\", \"/user-provider-accounts/providers\");\n\t}\n\tasync listForUser(organizationId, userId) {\n\t\treturn this.request(\"GET\", `/organizations/${organizationId}/users/${userId}/provider-accounts`);\n\t}\n\tasync startOAuth(organizationId, userId, provider, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${organizationId}/users/${userId}/provider-accounts/${provider}/oauth/start`, { json: oauthStartPayload(payload) });\n\t}\n\tasync disconnect(organizationId, userId, provider) {\n\t\tawait this.request(\"DELETE\", `/organizations/${organizationId}/users/${userId}/provider-accounts/${provider}`);\n\t}\n\tasync disableMailSend(organizationId, userId, provider, providerAccountId) {\n\t\tawait this.request(\"DELETE\", `/organizations/${organizationId}/users/${userId}/provider-accounts/${provider}/mail-send`, { params: { provider_account_id: providerAccountId } });\n\t}\n};\n//#endregion\n//#region src/resources/admin/calendars.ts\nvar userCalendarPath = (organizationId, userId) => `/organizations/${organizationId}/calendar-integrations/users/${userId}`;\nvar providerCalendarPath = (organizationId, userId, provider) => `/organizations/${organizationId}/calendar-integrations/users/${userId}/${provider}`;\nvar AdminCalendarsAPI = class extends AdminResource {\n\tasync getUserIntegration(organizationId, userId) {\n\t\treturn this.request(\"GET\", userCalendarPath(organizationId, userId));\n\t}\n\tasync getUserIntegrationsBatch(organizationId, payload) {\n\t\treturn this.request(\"POST\", `/organizations/${organizationId}/calendar-integrations/users/overviews`, { json: payload });\n\t}\n\tasync listCatalog(organizationId, userId, provider) {\n\t\treturn this.request(\"GET\", `${providerCalendarPath(organizationId, userId, provider)}/catalog`);\n\t}\n\tasync setWriteTarget(organizationId, userId, provider, payload) {\n\t\treturn this.request(\"PUT\", `${providerCalendarPath(organizationId, userId, provider)}/write-target`, { json: payload });\n\t}\n\tasync setReadSources(organizationId, userId, provider, payload) {\n\t\treturn this.request(\"PUT\", `${providerCalendarPath(organizationId, userId, provider)}/read-sources`, { json: payload });\n\t}\n\tasync provisionManagedCalendar(organizationId, userId, provider, payload) {\n\t\treturn this.request(\"POST\", `${providerCalendarPath(organizationId, userId, provider)}/managed-calendar`, { json: payload });\n\t}\n\tasync getManagedCalendarProvisioning(organizationId, userId, provider, provisioningId) {\n\t\treturn this.request(\"GET\", `${providerCalendarPath(organizationId, userId, provider)}/managed-calendar/${encodeURIComponent(provisioningId)}`);\n\t}\n\tasync requestSync(organizationId, userId, provider, payload) {\n\t\treturn this.request(\"POST\", `${providerCalendarPath(organizationId, userId, provider)}/sync`, { json: payload });\n\t}\n\tasync disable(organizationId, userId, provider, options) {\n\t\tawait this.request(\"DELETE\", providerCalendarPath(organizationId, userId, provider), { params: {\n\t\t\tprovider_account_id: options.providerAccountId,\n\t\t\tremote_event_policy: options.remoteEventPolicy,\n\t\t\tlocal_block_policy: options.localBlockPolicy\n\t\t} });\n\t}\n\tasync retryDisconnect(organizationId, userId, provider, providerAccountId) {\n\t\tawait this.request(\"POST\", `${providerCalendarPath(organizationId, userId, provider)}/disconnect/retry`, { params: { provider_account_id: providerAccountId } });\n\t}\n};\n//#endregion\n//#region src/identity-administration/contracts.ts\nvar IdentityAdministrationContractError = class extends Error {\n\tconstructor() {\n\t\tsuper(\"Invalid identity administration contract\");\n\t\tthis.name = \"IdentityAdministrationContractError\";\n\t}\n};\nvar fail$1 = () => {\n\tthrow new IdentityAdministrationContractError();\n};\nvar fields = (value, keys) => {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).some((key) => !keys.includes(key))) return fail$1();\n\treturn value;\n};\nvar identityId = (value) => {\n\tif (typeof value !== \"string\" || !/^[a-f\\d]{8}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{12}$/i.test(value)) return fail$1();\n\treturn value.toLowerCase();\n};\nvar revision = (value) => {\n\tif (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 1) return fail$1();\n\treturn value;\n};\nvar status = (value) => value === \"active\" || value === \"suspended\" ? value : fail$1();\nvar staffRole = (value) => value === \"platform_administrator\" || value === \"support_agent\" ? value : fail$1();\nvar name = (value) => {\n\tif (typeof value !== \"string\" || !value.trim() || value.length > 100) return fail$1();\n\treturn value.trim();\n};\nvar grants = (value) => {\n\tif (!Array.isArray(value) || value.length > 500) return fail$1();\n\tconst keys = /* @__PURE__ */ new Set();\n\treturn Object.freeze(value.map((item) => {\n\t\tconst data = fields(item, [\n\t\t\t\"key\",\n\t\t\t\"level\",\n\t\t\t\"scope\"\n\t\t]);\n\t\tif (typeof data.key !== \"string\" || !/^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$/.test(data.key) || data.key.length > 120 || keys.has(data.key)) return fail$1();\n\t\tconst level = data.level === \"none\" ? \"none\" : data.level === \"view\" ? \"view\" : data.level === \"manage\" ? \"manage\" : fail$1();\n\t\tconst scope = data.scope == null ? null : data.scope === \"own\" ? \"own\" : data.scope === \"all\" ? \"all\" : fail$1();\n\t\tif (level === \"none\" && scope !== null) return fail$1();\n\t\tkeys.add(data.key);\n\t\treturn Object.freeze({\n\t\t\tkey: data.key,\n\t\t\tlevel,\n\t\t\tscope\n\t\t});\n\t}));\n};\nvar memberEmail = (value) => {\n\tif (value === null) return null;\n\tif (typeof value !== \"string\" || !value || value.length > 320) return fail$1();\n\treturn value;\n};\nvar membership = (value) => {\n\tconst data = fields(value, [\n\t\t\"id\",\n\t\t\"user_id\",\n\t\t\"organization_id\",\n\t\t\"role_id\",\n\t\t\"status\",\n\t\t\"revision\",\n\t\t\"email\"\n\t]);\n\treturn Object.freeze({\n\t\tid: identityId(data.id),\n\t\tuser_id: identityId(data.user_id),\n\t\torganization_id: identityId(data.organization_id),\n\t\trole_id: identityId(data.role_id),\n\t\tstatus: status(data.status),\n\t\trevision: revision(data.revision),\n\t\t...\"email\" in data ? { email: memberEmail(data.email) } : {}\n\t});\n};\nvar role = (value) => {\n\tconst data = fields(value, [\n\t\t\"id\",\n\t\t\"organization_id\",\n\t\t\"name\",\n\t\t\"kind\",\n\t\t\"revision\",\n\t\t\"grants\"\n\t]);\n\tif (data.kind !== \"owner\" && data.kind !== \"administrator\" && data.kind !== \"employee\" && data.kind !== \"custom\") return fail$1();\n\treturn Object.freeze({\n\t\tid: identityId(data.id),\n\t\torganization_id: identityId(data.organization_id),\n\t\tname: name(data.name),\n\t\tkind: data.kind,\n\t\trevision: revision(data.revision),\n\t\tgrants: grants(data.grants)\n\t});\n};\nvar staff = (value) => {\n\tconst data = fields(value, [\n\t\t\"id\",\n\t\t\"user_id\",\n\t\t\"role\",\n\t\t\"status\",\n\t\t\"revision\"\n\t]);\n\treturn Object.freeze({\n\t\tid: identityId(data.id),\n\t\tuser_id: identityId(data.user_id),\n\t\trole: staffRole(data.role),\n\t\tstatus: status(data.status),\n\t\trevision: revision(data.revision)\n\t});\n};\nvar recordList = (value, parse, paged) => {\n\tconst data = fields(value, paged ? [\"items\", \"next_after_id\"] : [\"items\"]);\n\tif (!Array.isArray(data.items) || paged && data.items.length > 100) return fail$1();\n\tconst items = Object.freeze(data.items.map(parse));\n\tif (new Set(items.map((item) => item.id)).size !== items.length) return fail$1();\n\treturn Object.freeze({\n\t\titems,\n\t\t...paged ? { next_after_id: data.next_after_id === null ? null : identityId(data.next_after_id) } : {}\n\t});\n};\nvar changed = (value, key, parse) => {\n\tconst data = fields(value, [key, \"changed\"]);\n\tif (typeof data.changed !== \"boolean\") return fail$1();\n\treturn Object.freeze({\n\t\t[key]: parse(data[key]),\n\t\tchanged: data.changed\n\t});\n};\nvar matching = (value, organizationId, id) => {\n\tif (organizationId && value.organization_id !== organizationId || id && value.id !== id) return fail$1();\n\treturn value;\n};\nvar page = (value = {}) => {\n\tfields(value, [\"limit\", \"after_id\"]);\n\tif (value.limit !== void 0 && revision(value.limit) > 100) return fail$1();\n\treturn {\n\t\t...value.limit === void 0 ? {} : { limit: value.limit },\n\t\t...value.after_id == null ? {} : { after_id: identityId(value.after_id) }\n\t};\n};\n//#endregion\n//#region src/identity-administration/invitations.ts\nvar fail = () => {\n\tthrow new IdentityAdministrationContractError();\n};\nvar timestamp = (value) => {\n\tif (typeof value !== \"string\" || !/^\\d{4}-\\d{2}-\\d{2}T.*(?:Z|[+-]\\d{2}:\\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value))) return fail();\n\treturn value;\n};\nvar email = (value) => {\n\tif (typeof value !== \"string\" || value.length > 320 || !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) return fail();\n\treturn value;\n};\nvar invitationIssue = (value) => {\n\tconst data = fields(value, [\n\t\t\"recipient_email\",\n\t\t\"role_id\",\n\t\t\"expires_at\"\n\t]);\n\treturn {\n\t\trecipient_email: email(data.recipient_email),\n\t\trole_id: identityId(data.role_id),\n\t\texpires_at: timestamp(data.expires_at)\n\t};\n};\nvar invitationResend = (value) => {\n\treturn { expires_at: timestamp(fields(value, [\"expires_at\"]).expires_at) };\n};\nvar invitationAcceptance = (value) => {\n\tconst data = fields(value, [\"code\"]);\n\tif (typeof data.code !== \"string\" || !/^[A-Za-z0-9_-]{43}$/.test(data.code)) return fail();\n\treturn { code: data.code };\n};\nvar invitation = (value) => {\n\tconst data = fields(value, [\n\t\t\"id\",\n\t\t\"product_issuer\",\n\t\t\"organization_id\",\n\t\t\"role_id\",\n\t\t\"role_revision\",\n\t\t\"recipient_email\",\n\t\t\"status\",\n\t\t\"created_at\",\n\t\t\"expires_at\",\n\t\t\"issued_by_user_id\",\n\t\t\"issued_by_membership_id\",\n\t\t\"issued_via_delegation_id\",\n\t\t\"consumed_at\",\n\t\t\"consumed_by_user_id\",\n\t\t\"revoked_at\",\n\t\t\"revoked_by_user_id\",\n\t\t\"revoked_via_delegation_id\"\n\t]);\n\tif (typeof data.product_issuer !== \"string\" || !data.product_issuer.trim() || data.product_issuer.length > 120 || ![\n\t\t\"pending\",\n\t\t\"consumed\",\n\t\t\"revoked\",\n\t\t\"expired\"\n\t].includes(String(data.status))) return fail();\n\tconst nullableId = (value) => value === null ? null : identityId(value);\n\tconst nullableDate = (value) => value === null ? null : timestamp(value);\n\treturn Object.freeze({\n\t\tid: identityId(data.id),\n\t\tproduct_issuer: data.product_issuer,\n\t\torganization_id: identityId(data.organization_id),\n\t\trole_id: identityId(data.role_id),\n\t\trole_revision: revision(data.role_revision),\n\t\trecipient_email: email(data.recipient_email),\n\t\tstatus: data.status,\n\t\tcreated_at: timestamp(data.created_at),\n\t\texpires_at: timestamp(data.expires_at),\n\t\tissued_by_user_id: identityId(data.issued_by_user_id),\n\t\tissued_by_membership_id: identityId(data.issued_by_membership_id),\n\t\tissued_via_delegation_id: nullableId(data.issued_via_delegation_id),\n\t\tconsumed_at: nullableDate(data.consumed_at),\n\t\tconsumed_by_user_id: nullableId(data.consumed_by_user_id),\n\t\trevoked_at: nullableDate(data.revoked_at),\n\t\trevoked_by_user_id: nullableId(data.revoked_by_user_id),\n\t\trevoked_via_delegation_id: nullableId(data.revoked_via_delegation_id)\n\t});\n};\nvar membershipRoleChoice = (value) => {\n\tconst data = fields(value, [\n\t\t\"id\",\n\t\t\"organization_id\",\n\t\t\"name\",\n\t\t\"kind\",\n\t\t\"revision\"\n\t]);\n\tif (data.kind !== \"administrator\" && data.kind !== \"employee\" && data.kind !== \"custom\") return fail();\n\treturn Object.freeze({\n\t\tid: identityId(data.id),\n\t\torganization_id: identityId(data.organization_id),\n\t\tname: name(data.name),\n\t\tkind: data.kind,\n\t\trevision: revision(data.revision)\n\t});\n};\n//#endregion\n//#region src/resources/admin/identityAdministration.ts\n/** Dormant V2 resource; never uses the legacy users/role endpoints or retries a write. */\nvar AdminIdentityAdministrationAPI = class extends AdminResource {\n\toptions(capture, write = false) {\n\t\treturn {\n\t\t\tsignal: capture.signal,\n\t\t\tisCurrent: capture.isCurrent,\n\t\t\tmutationContext: createContextMutationPrecondition(capture.mutationContext),\n\t\t\tretry: \"never\",\n\t\t\trequireCsrf: write\n\t\t};\n\t}\n\torganizationPath(organizationId) {\n\t\treturn `/organizations/${identityId(organizationId)}`;\n\t}\n\tasync membershipRoleChoices(organizationId, capture) {\n\t\tconst org = identityId(organizationId);\n\t\treturn recordList(await this.request(\"GET\", `${this.organizationPath(org)}/membership-role-choices`, this.options(capture)), (item) => matching(membershipRoleChoice(item), org), false);\n\t}\n\tasync issueInvitation(organizationId, payload, capture) {\n\t\tconst org = identityId(organizationId);\n\t\tconst data = fields(await this.request(\"POST\", `${this.organizationPath(org)}/invitations`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson: invitationIssue(payload)\n\t\t}), [\"invitation\"]);\n\t\treturn Object.freeze({ invitation: matching(invitation(data.invitation), org) });\n\t}\n\tasync revokeInvitation(organizationId, id, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\treturn changed(await this.request(\"DELETE\", `${this.organizationPath(org)}/invitations/${key}`, this.options(capture, true)), \"invitation\", (item) => matching(invitation(item), org, key));\n\t}\n\t/** Pending, unexpired invitations of one organization; requires membership management. */\n\tasync invitations(organizationId, pagination, capture) {\n\t\tconst org = identityId(organizationId);\n\t\treturn recordList(await this.request(\"GET\", `${this.organizationPath(org)}/invitations`, {\n\t\t\t...this.options(capture),\n\t\t\tparams: page(pagination)\n\t\t}), (item) => matching(invitation(item), org), true);\n\t}\n\t/** Revokes the invitation and returns its replacement; needs a fresh step-up, never retried. */\n\tasync resendInvitation(organizationId, id, payload, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\tconst invitation$1 = matching(invitation(fields(await this.request(\"POST\", `${this.organizationPath(org)}/invitations/${key}/resend`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson: invitationResend(payload)\n\t\t}), [\"invitation\"]).invitation), org);\n\t\tif (invitation$1.id === key) throw new IdentityAdministrationContractError();\n\t\treturn Object.freeze({ invitation: invitation$1 });\n\t}\n\tasync acceptInvitation(organizationId, id, payload, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\treturn changed(await this.request(\"POST\", `${this.organizationPath(org)}/invitations/${key}/accept`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson: invitationAcceptance(payload)\n\t\t}), \"membership\", (item) => matching(membership(item), org));\n\t}\n\t/** Only on the bootstrap client with confirmed pending-login lifetime, never as a 401 fallback. */\n\tasync acceptPendingInvitation(organizationId, id, payload, capture) {\n\t\tfields(capture, [\"signal\", \"isCurrent\"]);\n\t\tif (!capture.signal || typeof capture.signal.aborted !== \"boolean\" || typeof capture.isCurrent !== \"function\") throw new IdentityAdministrationContractError();\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\treturn changed(await this.request(\"POST\", `${this.organizationPath(org)}/invitations/${key}/accept`, {\n\t\t\tsignal: capture.signal,\n\t\t\tisCurrent: capture.isCurrent,\n\t\t\trequireCsrf: true,\n\t\t\tretry: \"never\",\n\t\t\tjson: invitationAcceptance(payload)\n\t\t}), \"membership\", (item) => matching(membership(item), org));\n\t}\n\tasync memberships(organizationId, pagination, capture) {\n\t\tconst org = identityId(organizationId);\n\t\treturn recordList(await this.request(\"GET\", `${this.organizationPath(org)}/memberships`, {\n\t\t\t...this.options(capture),\n\t\t\tparams: page(pagination)\n\t\t}), (item) => matching(membership(item), org), true);\n\t}\n\tasync membership(organizationId, id, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\treturn matching(membership(await this.request(\"GET\", `${this.organizationPath(org)}/memberships/${key}`, this.options(capture))), org, key);\n\t}\n\tasync changeMembership(organizationId, id, payload, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\tfields(payload, [\n\t\t\t\"role_id\",\n\t\t\t\"status\",\n\t\t\t\"expected_revision\"\n\t\t]);\n\t\tconst json = {\n\t\t\trole_id: identityId(payload.role_id),\n\t\t\tstatus: status(payload.status),\n\t\t\texpected_revision: revision(payload.expected_revision)\n\t\t};\n\t\treturn changed(await this.request(\"PATCH\", `${this.organizationPath(org)}/memberships/${key}`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson\n\t\t}), \"membership\", (item) => matching(membership(item), org, key));\n\t}\n\tasync roles(organizationId, capture) {\n\t\tconst org = identityId(organizationId);\n\t\treturn recordList(await this.request(\"GET\", `${this.organizationPath(org)}/roles`, this.options(capture)), (item) => matching(role(item), org), false);\n\t}\n\tasync role(organizationId, id, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\treturn matching(role(await this.request(\"GET\", `${this.organizationPath(org)}/roles/${key}`, this.options(capture))), org, key);\n\t}\n\tasync createRole(organizationId, payload, capture) {\n\t\tconst org = identityId(organizationId);\n\t\tfields(payload, [\"name\", \"grants\"]);\n\t\tconst json = {\n\t\t\tname: name(payload.name),\n\t\t\tgrants: grants(payload.grants)\n\t\t};\n\t\treturn changed(await this.request(\"POST\", `${this.organizationPath(org)}/roles`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson\n\t\t}), \"role\", (item) => matching(role(item), org));\n\t}\n\tasync replaceRole(organizationId, id, payload, capture) {\n\t\tconst org = identityId(organizationId), key = identityId(id);\n\t\tfields(payload, [\n\t\t\t\"name\",\n\t\t\t\"grants\",\n\t\t\t\"expected_revision\"\n\t\t]);\n\t\tconst json = {\n\t\t\tname: name(payload.name),\n\t\t\tgrants: grants(payload.grants),\n\t\t\texpected_revision: revision(payload.expected_revision)\n\t\t};\n\t\treturn changed(await this.request(\"PATCH\", `${this.organizationPath(org)}/roles/${key}`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson\n\t\t}), \"role\", (item) => matching(role(item), org, key));\n\t}\n\tasync staff(pagination, capture) {\n\t\treturn recordList(await this.request(\"GET\", \"/platform/staff-assignments\", {\n\t\t\t...this.options(capture),\n\t\t\tparams: page(pagination)\n\t\t}), staff, true);\n\t}\n\tasync staffAssignment(id, capture) {\n\t\tconst key = identityId(id);\n\t\treturn matching(staff(await this.request(\"GET\", `/platform/staff-assignments/${key}`, this.options(capture))), void 0, key);\n\t}\n\tasync assignStaff(payload, capture) {\n\t\tfields(payload, [\"user_id\", \"role\"]);\n\t\tconst json = {\n\t\t\tuser_id: identityId(payload.user_id),\n\t\t\trole: staffRole(payload.role)\n\t\t};\n\t\treturn changed(await this.request(\"POST\", \"/platform/staff-assignments\", {\n\t\t\t...this.options(capture, true),\n\t\t\tjson\n\t\t}), \"assignment\", staff);\n\t}\n\tasync changeStaff(id, payload, capture) {\n\t\tconst key = identityId(id);\n\t\tfields(payload, [\n\t\t\t\"role\",\n\t\t\t\"status\",\n\t\t\t\"expected_revision\"\n\t\t]);\n\t\tconst json = {\n\t\t\trole: staffRole(payload.role),\n\t\t\tstatus: status(payload.status),\n\t\t\texpected_revision: revision(payload.expected_revision)\n\t\t};\n\t\treturn changed(await this.request(\"PATCH\", `/platform/staff-assignments/${key}`, {\n\t\t\t...this.options(capture, true),\n\t\t\tjson\n\t\t}), \"assignment\", (item) => matching(staff(item), void 0, key));\n\t}\n};\n//#endregion\n//#region src/resources/admin/index.ts\nvar admin_exports$1 = /* @__PURE__ */ __exportAll({\n\tAdminActivityAPI: () => AdminActivityAPI,\n\tAdminAnalyticsAPI: () => AdminAnalyticsAPI,\n\tAdminAppSettingsAPI: () => AdminAppSettingsAPI,\n\tAdminAuditAPI: () => AdminAuditAPI,\n\tAdminAuthAPI: () => AdminAuthAPI,\n\tAdminBillingAPI: () => AdminBillingAPI,\n\tAdminBrandingAPI: () => AdminBrandingAPI,\n\tAdminCalendarsAPI: () => AdminCalendarsAPI,\n\tAdminContactProfilesAPI: () => AdminContactProfilesAPI,\n\tAdminContextAuthAPI: () => AdminContextAuthAPI,\n\tAdminFeedbackAPI: () => AdminFeedbackAPI,\n\tAdminGraphsAPI: () => AdminGraphsAPI,\n\tAdminHintTemplatesAPI: () => AdminHintTemplatesAPI,\n\tAdminIdentityAdministrationAPI: () => AdminIdentityAdministrationAPI,\n\tAdminLegalDocumentsAPI: () => AdminLegalDocumentsAPI,\n\tAdminNotificationsAPI: () => AdminNotificationsAPI,\n\tAdminOrganizationBillingAPI: () => AdminOrganizationBillingAPI,\n\tAdminOrganizationBrandingAPI: () => AdminOrganizationBrandingAPI,\n\tAdminOrganizationIntegrationsAPI: () => AdminOrganizationIntegrationsAPI,\n\tAdminOrganizationPoliciesAPI: () => AdminOrganizationPoliciesAPI,\n\tAdminOrganizationProjectAPI: () => AdminOrganizationProjectAPI,\n\tAdminOrganizationProjectRealizationAPI: () => AdminOrganizationProjectRealizationAPI,\n\tAdminOrganizationProvisioningAPI: () => AdminOrganizationProvisioningAPI,\n\tAdminOrganizationRegistryAPI: () => AdminOrganizationRegistryAPI,\n\tAdminOrganizationTelephonyAPI: () => AdminOrganizationTelephonyAPI,\n\tAdminPhoneNumbersAPI: () => AdminPhoneNumbersAPI,\n\tAdminRawAPI: () => AdminRawAPI,\n\tAdminSessionConfigAPI: () => AdminSessionConfigAPI,\n\tAdminSettingsAPI: () => AdminSettingsAPI,\n\tAdminUsageAPI: () => AdminUsageAPI,\n\tAdminUserProviderAccountsAPI: () => AdminUserProviderAccountsAPI,\n\tAdminUsersAPI: () => AdminUsersAPI\n});\n//#endregion\n//#region src/resources/public/app.ts\nvar waitlistPayload = (payload) => pickDefined(payload, [\n\t\"email\",\n\t\"name\",\n\t\"phone\",\n\t\"note\"\n]);\nvar contactPayload = (payload) => pickDefined(payload, [\n\t\"name\",\n\t\"company\",\n\t\"email\",\n\t\"phone\",\n\t\"message\"\n]);\nvar PublicAppContentAppAPI = class extends PublicResource {\n\tasync getSettings() {\n\t\treturn this.request(\"GET\", \"/app/settings\", { withAuth: false });\n\t}\n\tasync getHelpDialogs() {\n\t\treturn this.request(\"GET\", \"/app/help-dialogs\", { withAuth: false });\n\t}\n\tasync listPlans() {\n\t\treturn this.request(\"GET\", \"/app/plans\", { withAuth: false });\n\t}\n\tasync listLegalDocuments() {\n\t\treturn this.request(\"GET\", \"/app/legal-documents\", { withAuth: false });\n\t}\n\tasync submitWaitlist(payload) {\n\t\treturn this.request(\"POST\", \"/app/waitlist\", {\n\t\t\tjson: waitlistPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n\tasync submitContact(payload) {\n\t\treturn this.request(\"POST\", \"/app/contact\", {\n\t\t\tjson: contactPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/branding.ts\nvar PublicBrandingAPI = class extends PublicResource {\n\tasync downloadAsset(asset) {\n\t\treturn this.request(\"GET\", `/branding/${asset}`, {\n\t\t\twithAuth: false,\n\t\t\tresponseType: \"blob\"\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/legalDocuments.ts\nvar PublicLegalDocumentsAPI = class extends PublicResource {\n\tasync download(documentId) {\n\t\treturn this.request(\"GET\", `/legal-documents/${encodeURIComponent(documentId)}`, {\n\t\t\twithAuth: false,\n\t\t\tresponseType: \"blob\"\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/projectRuntimeWidget.ts\nvar PublicProjectRuntimeWidgetAPI = class extends PublicResource {\n\tasync getConfig(params) {\n\t\treturn this.request(\"GET\", \"/widget/config\", {\n\t\t\twithAuth: false,\n\t\t\tparams: {\n\t\t\t\tproject_name: params.projectName,\n\t\t\t\torganization_id: params.organizationId ?? void 0,\n\t\t\t\trealization_id: params.realizationId ?? void 0\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/sessionFeedback.ts\nvar sessionFeedbackPayload = (payload) => pickDefined(payload, [\n\t\"project\",\n\t\"sessionId\",\n\t\"rating\",\n\t\"note\",\n\t\"realization\",\n\t\"userId\",\n\t\"timestamp\",\n\t\"traceId\",\n\t\"source\"\n]);\nvar PublicSessionFeedbackAPI = class extends PublicResource {\n\tasync submit(payload) {\n\t\treturn this.request(\"POST\", \"/session-feedback\", {\n\t\t\tjson: sessionFeedbackPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/signup.ts\nvar signupStartPayload = (payload) => pickDefined(payload, [\n\t\"email\",\n\t\"password\",\n\t\"first_name\",\n\t\"last_name\",\n\t\"username\",\n\t\"organization_name\",\n\t\"accept_terms\",\n\t\"contracts\"\n]);\nvar PublicSignupAPI = class extends PublicResource {\n\tasync start(payload) {\n\t\treturn this.request(\"POST\", \"/signup/start\", {\n\t\t\tjson: signupStartPayload(payload),\n\t\t\twithAuth: false\n\t\t});\n\t}\n};\n//#endregion\n//#region src/resources/public/index.ts\nvar public_exports = /* @__PURE__ */ __exportAll({\n\tPublicAppContentAppAPI: () => PublicAppContentAppAPI,\n\tPublicBrandingAPI: () => PublicBrandingAPI,\n\tPublicLegalDocumentsAPI: () => PublicLegalDocumentsAPI,\n\tPublicProjectRuntimeWidgetAPI: () => PublicProjectRuntimeWidgetAPI,\n\tPublicSessionFeedbackAPI: () => PublicSessionFeedbackAPI,\n\tPublicSignupAPI: () => PublicSignupAPI\n});\n//#endregion\n//#region src/client/client.ts\nvar ControlWebClient = class ControlWebClient {\n\tconstructor(options = {}) {\n\t\tthis.settings = loadSettingsFromEnv(options);\n\t\tthis.auth = new AuthHeaderProvider(this.settings);\n\t\tthis.transport = new FetchTransport(this.settings, this.auth, {\n\t\t\tonRequest: options.onRequest,\n\t\t\tonResponse: options.onResponse,\n\t\t\tonError: options.onError\n\t\t}, options.contextBinding, options.captureContext);\n\t\tthis.admin = {\n\t\t\tauth: new AdminAuthAPI(this.transport, this.settings.baseUrl),\n\t\t\torganization: {\n\t\t\t\tregistry: new AdminOrganizationRegistryAPI(this.transport),\n\t\t\t\tpolicies: new AdminOrganizationPoliciesAPI(this.transport),\n\t\t\t\tintegrations: new AdminOrganizationIntegrationsAPI(this.transport),\n\t\t\t\tprovisioning: new AdminOrganizationProvisioningAPI(this.transport),\n\t\t\t\ttelephony: new AdminOrganizationTelephonyAPI(this.transport),\n\t\t\t\tbilling: new AdminOrganizationBillingAPI(this.transport),\n\t\t\t\tproject: new AdminOrganizationProjectAPI(this.transport),\n\t\t\t\tbranding: new AdminOrganizationBrandingAPI(this.transport)\n\t\t\t},\n\t\t\tusers: new AdminUsersAPI(this.transport),\n\t\t\tcalendars: new AdminCalendarsAPI(this.transport),\n\t\t\tuserProviderAccounts: new AdminUserProviderAccountsAPI(this.transport),\n\t\t\tgraphs: new AdminGraphsAPI(this.transport),\n\t\t\tbranding: new AdminBrandingAPI(this.transport),\n\t\t\tappSettings: new AdminAppSettingsAPI(this.transport),\n\t\t\thintTemplates: new AdminHintTemplatesAPI(this.transport),\n\t\t\tlegalDocuments: new AdminLegalDocumentsAPI(this.transport),\n\t\t\tcontactProfiles: new AdminContactProfilesAPI(this.transport),\n\t\t\tsessionConfig: new AdminSessionConfigAPI(this.transport),\n\t\t\tphoneNumbers: new AdminPhoneNumbersAPI(this.transport),\n\t\t\tbilling: new AdminBillingAPI(this.transport),\n\t\t\tnotifications: new AdminNotificationsAPI(this.transport),\n\t\t\tanalytics: new AdminAnalyticsAPI(this.transport),\n\t\t\tusage: new AdminUsageAPI(this.transport),\n\t\t\tfeedback: new AdminFeedbackAPI(this.transport),\n\t\t\taudit: new AdminAuditAPI(this.transport),\n\t\t\tactivity: new AdminActivityAPI(this.transport),\n\t\t\tsettings: new AdminSettingsAPI(this.transport),\n\t\t\traw: new AdminRawAPI(this.transport)\n\t\t};\n\t\tthis.public = {\n\t\t\tpublicContent: {\n\t\t\t\tapp: new PublicAppContentAppAPI(this.transport),\n\t\t\t\tbranding: new PublicBrandingAPI(this.transport)\n\t\t\t},\n\t\t\tprojectRuntime: { widget: new PublicProjectRuntimeWidgetAPI(this.transport) },\n\t\t\tsessionFeedback: new PublicSessionFeedbackAPI(this.transport),\n\t\t\tlegalDocuments: new PublicLegalDocumentsAPI(this.transport),\n\t\t\tsignup: new PublicSignupAPI(this.transport)\n\t\t};\n\t}\n\tstatic fromEnv(options) {\n\t\treturn new ControlWebClient(options);\n\t}\n\tmount(name, subclient) {\n\t\tconst extension = typeof subclient === \"function\" ? subclient({\n\t\t\tclient: this,\n\t\t\tsettings: this.settings,\n\t\t\tauth: this.auth,\n\t\t\ttransport: this.transport\n\t\t}) : subclient;\n\t\tthis[name] = extension;\n\t\treturn this;\n\t}\n};\n//#endregion\n//#region src/session-client/session-client.ts\nvar CSRF_HEADER = \"X-CSRF-Token\";\nvar CSRF_COOKIE_NAMES = [\"__Host-control_admin_csrf\"];\nfunction extractCookieValue(cookieHeader, names) {\n\tif (!cookieHeader) return null;\n\tfor (const fragment of cookieHeader.split(\";\")) {\n\t\tconst [name, ...valueParts] = fragment.trim().split(\"=\");\n\t\tconst value = valueParts.join(\"=\");\n\t\tif (names.includes(name) && value) return value;\n\t}\n\treturn null;\n}\nfunction createSessionControlWebClient(options = {}) {\n\tconst csrfToken = extractCookieValue(options.cookieHeader, CSRF_COOKIE_NAMES);\n\tconst defaultHeaders = {\n\t\t...options.defaultHeaders ?? {},\n\t\t...options.cookieHeader ? { Cookie: options.cookieHeader } : {},\n\t\t...options.hostHeader ? { Host: options.hostHeader } : {},\n\t\t...csrfToken ? { [CSRF_HEADER]: csrfToken } : {}\n\t};\n\treturn new ControlWebClient({\n\t\t...options,\n\t\tdefaultHeaders\n\t});\n}\n//#endregion\n//#region src/admin-app-url/admin-app-url.ts\nvar PROJECT_SCOPE_QUERY_KEYS = [\n\t\"project\",\n\t\"project_id\",\n\t\"projectId\",\n\t\"realization\",\n\t\"realization_id\",\n\t\"realizationId\",\n\t\"active_realization_id\",\n\t\"activeRealizationId\"\n];\nvar targetUsesProjectScope = (target) => target === \"werk-admin\";\nvar resolveAbsoluteHref = (href, baseHref) => {\n\tconst base = baseHref ?? (typeof window !== \"undefined\" ? window.location.origin : void 0);\n\ttry {\n\t\treturn base ? new URL(href, base).toString() : new URL(href).toString();\n\t} catch {\n\t\treturn href;\n\t}\n};\nvar buildAdminAppUrl = (options) => {\n\tconst absoluteHref = resolveAbsoluteHref(options.href, options.baseHref ?? null);\n\tconst includeProjectParam = options.includeProjectParam ?? true;\n\ttry {\n\t\tconst url = new URL(absoluteHref);\n\t\turl.searchParams.delete(\"token\");\n\t\turl.searchParams.delete(\"code\");\n\t\tif (!targetUsesProjectScope(options.target)) {\n\t\t\tPROJECT_SCOPE_QUERY_KEYS.forEach((key) => url.searchParams.delete(key));\n\t\t\treturn { url: url.toString() };\n\t\t}\n\t\tif (includeProjectParam && options.projectId) url.searchParams.set(\"project\", options.projectId);\n\t\treturn { url: url.toString() };\n\t} catch {\n\t\treturn { url: absoluteHref };\n\t}\n};\n//#endregion\n//#region src/service-session/service-session.ts\nvar TARGET_COOKIE_STEMS = {\n\t\"werk-server\": \"werk_admin\",\n\t\"kontext-kern-index-server\": \"index_admin\",\n\t\"kontext-minio-syncer\": \"minio_admin\",\n\t\"sharepoint-syncer\": \"sharepoint_admin\",\n\t\"answer-library-manager\": \"answer_admin\",\n\t\"scraping-orchestrator\": \"scraping_admin\",\n\t\"kontextwerk-status-server\": \"status_admin\"\n};\nvar pendingByServiceOrigin = /* @__PURE__ */ new Map();\nvar pendingActorResolutionByControlOrigin = /* @__PURE__ */ new Map();\nvar establishedByServiceOrigin = /* @__PURE__ */ new Map();\nvar csrfTokensByService = /* @__PURE__ */ new Map();\nvar csrfTokensByServiceOrigin = /* @__PURE__ */ new Map();\nvar SERVICE_SESSION_SCOPE_STORAGE_PREFIX = \"kontextwerk:control-service-session-scope:v2:\";\nvar clearCachedCsrfToken = (serviceOriginKey) => {\n\tcsrfTokensByServiceOrigin.delete(serviceOriginKey);\n\tconst targetService = serviceOriginKey.split(\"|\", 1)[0];\n\tif (targetService in TARGET_COOKIE_STEMS) csrfTokensByService.delete(targetService);\n};\nvar scopeStorage = () => {\n\tif (typeof window === \"undefined\") return null;\n\ttry {\n\t\treturn window.localStorage;\n\t} catch {\n\t\treturn null;\n\t}\n};\nvar scopeStorageKey = (serviceOriginKey) => `${SERVICE_SESSION_SCOPE_STORAGE_PREFIX}${serviceOriginKey}`;\nvar readStoredScope = (serviceOriginKey) => {\n\tconst storage = scopeStorage();\n\tif (!storage) return null;\n\ttry {\n\t\tconst raw = storage.getItem(scopeStorageKey(serviceOriginKey));\n\t\tif (!raw) return null;\n\t\tconst parsed = JSON.parse(raw);\n\t\tif (parsed.version !== 2 || typeof parsed.actorScopeKey !== \"string\" || !parsed.actorScopeKey || typeof parsed.generation !== \"string\" || !parsed.generation || parsed.organizationId !== null && typeof parsed.organizationId !== \"string\" || parsed.projectId !== null && typeof parsed.projectId !== \"string\" || parsed.projectSlug !== null && typeof parsed.projectSlug !== \"string\" || typeof parsed.scopeKey !== \"string\" || typeof parsed.validUntil !== \"number\" || !Number.isFinite(parsed.validUntil)) return null;\n\t\treturn {\n\t\t\tversion: 2,\n\t\t\tactorScopeKey: parsed.actorScopeKey,\n\t\t\tgeneration: parsed.generation,\n\t\t\torganizationId: parsed.organizationId,\n\t\t\tprojectId: parsed.projectId,\n\t\t\tprojectSlug: parsed.projectSlug,\n\t\t\tscopeKey: parsed.scopeKey,\n\t\t\tvalidUntil: parsed.validUntil\n\t\t};\n\t} catch {\n\t\treturn null;\n\t}\n};\nvar synchronizeStoredScope = (serviceOriginKey) => {\n\tif (!scopeStorage()) return false;\n\tconst stored = readStoredScope(serviceOriginKey);\n\tconst cached = establishedByServiceOrigin.get(serviceOriginKey);\n\tif (!stored || stored.validUntil <= Date.now()) {\n\t\tif (cached) clearCachedCsrfToken(serviceOriginKey);\n\t\testablishedByServiceOrigin.delete(serviceOriginKey);\n\t\treturn true;\n\t}\n\tif (!cached || cached.generation !== stored.generation) clearCachedCsrfToken(serviceOriginKey);\n\testablishedByServiceOrigin.set(serviceOriginKey, {\n\t\tactorScopeKey: stored.actorScopeKey,\n\t\tgeneration: stored.generation,\n\t\torganizationId: stored.organizationId,\n\t\tprojectId: stored.projectId,\n\t\tprojectSlug: stored.projectSlug,\n\t\tscopeKey: stored.scopeKey,\n\t\tvalidUntil: stored.validUntil\n\t});\n\treturn true;\n};\nvar rememberStoredScope = (serviceOriginKey, prepared, validUntil) => {\n\tconst generation = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}:${Math.random()}`;\n\tconst established = {\n\t\tactorScopeKey: prepared.actorScopeKey,\n\t\tgeneration,\n\t\torganizationId: prepared.organizationId,\n\t\tprojectId: prepared.projectId,\n\t\tprojectSlug: prepared.projectSlug,\n\t\tscopeKey: prepared.scopeKey,\n\t\tvalidUntil\n\t};\n\testablishedByServiceOrigin.set(serviceOriginKey, established);\n\tconst storage = scopeStorage();\n\tif (!storage) return;\n\ttry {\n\t\tstorage.setItem(scopeStorageKey(serviceOriginKey), JSON.stringify({\n\t\t\tversion: 2,\n\t\t\t...established\n\t\t}));\n\t} catch {}\n};\nvar forgetStoredScope = (serviceOriginKey) => {\n\testablishedByServiceOrigin.delete(serviceOriginKey);\n\tclearCachedCsrfToken(serviceOriginKey);\n\tconst storage = scopeStorage();\n\tif (!storage) return;\n\ttry {\n\t\tstorage.removeItem(scopeStorageKey(serviceOriginKey));\n\t} catch {}\n};\nvar normalizeOrigin = (value) => {\n\tconst url = new URL(value);\n\turl.pathname = \"/\";\n\turl.search = \"\";\n\turl.hash = \"\";\n\treturn url.origin;\n};\nvar serviceCookieStem = (targetService) => TARGET_COOKIE_STEMS[targetService];\nvar serviceSessionCookieName = (targetService) => `__Host-${serviceCookieStem(targetService)}_session`;\nvar serviceCsrfCookieName = (targetService) => `__Host-${serviceCookieStem(targetService)}_csrf`;\nvar localServiceCsrfCookieName = (targetService) => `${serviceCookieStem(targetService)}_csrf`;\nvar readCookie = (name) => {\n\tif (typeof document === \"undefined\") return null;\n\tconst prefix = `${encodeURIComponent(name)}=`;\n\tfor (const part of document.cookie.split(\";\")) {\n\t\tconst value = part.trim();\n\t\tif (value.startsWith(prefix)) return decodeURIComponent(value.slice(prefix.length));\n\t}\n\treturn null;\n};\nvar serviceSessionCsrfHeaders = (targetService) => {\n\tconst serviceToken = csrfTokensByService.get(targetService);\n\tif (serviceToken) return { \"X-CSRF-Token\": serviceToken };\n\tconst token = readCookie(serviceCsrfCookieName(targetService)) ?? readCookie(localServiceCsrfCookieName(targetService));\n\treturn token ? { \"X-CSRF-Token\": token } : {};\n};\nvar serviceSessionCsrfHeadersForOrigin = (targetService, targetOrigin) => {\n\tconst origin = normalizeOrigin(targetOrigin);\n\tconst token = csrfTokensByServiceOrigin.get(`${targetService}|${origin}`);\n\tif (token) return { \"X-CSRF-Token\": token };\n\treturn serviceSessionCsrfHeaders(targetService);\n};\nvar resolveClient = (options) => {\n\tif (options.client) return options.client;\n\tconst baseUrl = normalizeBaseUrl(options.controlBaseUrl ?? options.clientOptions?.baseUrl ?? (typeof window !== \"undefined\" ? window.location.origin : \"\"));\n\tconst { baseUrl: _ignoredBase, apiPrefix: _ignoredPrefix, ...rest } = options.clientOptions ?? {};\n\treturn new ControlWebClient({\n\t\t...rest,\n\t\tbaseUrl,\n\t\tapiPrefix: options.apiPrefix ?? options.clientOptions?.apiPrefix ?? DEFAULT_SETTINGS.apiPrefix\n\t});\n};\nvar resolveControlOrigin = (options, client) => {\n\tconst configured = options.controlBaseUrl ?? options.clientOptions?.baseUrl ?? client.settings?.baseUrl ?? (typeof window !== \"undefined\" ? window.location?.origin : null) ?? \"control-client\";\n\ttry {\n\t\treturn new URL(configured).origin;\n\t} catch {\n\t\treturn configured.trim().replace(/\\/+$/, \"\") || \"control-client\";\n\t}\n};\nvar loadControlActor = async (client, controlOrigin) => {\n\tconst auth = client.admin?.auth;\n\tif (typeof auth?.session !== \"function\") throw new Error(\"control_actor_session_unavailable\");\n\ttry {\n\t\tconst session = await auth.session();\n\t\tif (!session || typeof session !== \"object\") throw new Error(\"control_actor_session_invalid\");\n\t\tconst user = session.user;\n\t\tif (!user || typeof user !== \"object\") throw new Error(\"control_actor_session_invalid\");\n\t\tconst userId = user.id;\n\t\tif (typeof userId !== \"string\" || !userId.trim()) throw new Error(\"control_actor_session_invalid\");\n\t\treturn rememberControlActor(controlOrigin, userId);\n\t} catch (error) {\n\t\tforgetControlActor(controlOrigin);\n\t\tthrow error;\n\t}\n};\nvar resolveControlActor = async (client, controlOrigin) => {\n\tconst cached = readFreshControlActorSnapshot(controlOrigin);\n\tif (cached) return cached;\n\tconst existing = pendingActorResolutionByControlOrigin.get(controlOrigin);\n\tif (existing) return existing;\n\tconst refresh = async () => {\n\t\tconst refreshedByAnotherContext = readFreshControlActorSnapshot(controlOrigin);\n\t\tif (refreshedByAnotherContext) return refreshedByAnotherContext;\n\t\treturn loadControlActor(client, controlOrigin);\n\t};\n\tconst operation = (async () => {\n\t\tif (typeof window !== \"undefined\" && typeof navigator !== \"undefined\" && navigator.locks) return await navigator.locks.request(`kontextwerk-control-actor:${controlOrigin}`, { mode: \"exclusive\" }, refresh);\n\t\treturn refresh();\n\t})();\n\tpendingActorResolutionByControlOrigin.set(controlOrigin, operation);\n\ttry {\n\t\treturn await operation;\n\t} finally {\n\t\tif (pendingActorResolutionByControlOrigin.get(controlOrigin) === operation) pendingActorResolutionByControlOrigin.delete(controlOrigin);\n\t}\n};\nvar prepareServiceSession = async (options, retainedScope) => {\n\tconst targetOrigin = normalizeOrigin(options.targetOrigin);\n\tconst client = resolveClient(options);\n\tconst controlOrigin = resolveControlOrigin(options, client);\n\tconst actor = await resolveControlActor(client, controlOrigin);\n\tconst actorScopeKey = JSON.stringify([\n\t\toptions.targetService,\n\t\ttargetOrigin,\n\t\tactor.actorKey,\n\t\tactor.generation\n\t]);\n\tconst requestedScope = {\n\t\torganizationId: options.organizationId ?? null,\n\t\tprojectId: options.projectId ?? null,\n\t\tprojectSlug: options.projectSlug ?? null\n\t};\n\tconst requestHasExplicitScope = Boolean(requestedScope.organizationId?.trim() || requestedScope.projectId?.trim() || requestedScope.projectSlug?.trim());\n\tconst serviceOriginKey = `${options.targetService}|${targetOrigin}`;\n\tconst stored = requestHasExplicitScope ? null : readStoredScope(serviceOriginKey);\n\tconst storedScope = (() => {\n\t\tif (!stored || stored.actorScopeKey !== actorScopeKey) return null;\n\t\tconst expectedScopeKey = JSON.stringify([\n\t\t\toptions.targetService,\n\t\t\ttargetOrigin,\n\t\t\tactor.actorKey,\n\t\t\tactor.generation,\n\t\t\tstored.organizationId ?? \"\",\n\t\t\tstored.projectId ?? \"\",\n\t\t\tstored.projectSlug ?? \"\"\n\t\t]);\n\t\treturn stored.scopeKey === expectedScopeKey ? {\n\t\t\torganizationId: stored.organizationId,\n\t\t\tprojectId: stored.projectId,\n\t\t\tprojectSlug: stored.projectSlug\n\t\t} : null;\n\t})();\n\tconst safelyRetainedScope = !requestHasExplicitScope && retainedScope?.actorKey === actor.actorKey ? retainedScope : null;\n\tconst effectiveScope = requestHasExplicitScope ? requestedScope : storedScope ?? safelyRetainedScope ?? requestedScope;\n\tconst hasExplicitScope = Boolean(requestHasExplicitScope || storedScope || safelyRetainedScope);\n\tconst scopeKey = JSON.stringify([\n\t\toptions.targetService,\n\t\ttargetOrigin,\n\t\tactor.actorKey,\n\t\tactor.generation,\n\t\teffectiveScope.organizationId ?? \"\",\n\t\teffectiveScope.projectId ?? \"\",\n\t\teffectiveScope.projectSlug ?? \"\"\n\t]);\n\treturn {\n\t\tactorKey: actor.actorKey,\n\t\tactorScopeKey,\n\t\tclient,\n\t\tcontrolOrigin,\n\t\thasExplicitScope,\n\t\torganizationId: effectiveScope.organizationId,\n\t\tprojectId: effectiveScope.projectId,\n\t\tprojectSlug: effectiveScope.projectSlug,\n\t\trequireCsrfToken: options.requireCsrfToken ?? true,\n\t\tscopeKey,\n\t\tserviceOriginKey,\n\t\ttargetOrigin\n\t};\n};\nvar storedScopeMatches = (stored, prepared) => {\n\treturn Boolean(stored?.actorScopeKey === prepared.actorScopeKey && (!prepared.hasExplicitScope || stored.scopeKey === prepared.scopeKey) && stored.validUntil > Date.now() + 3e4);\n};\nvar canReuseServiceSessionShared = (prepared) => {\n\tconst stored = readStoredScope(prepared.serviceOriginKey);\n\tif (!storedScopeMatches(stored, prepared)) return false;\n\tif (!prepared.requireCsrfToken) return true;\n\tconst cached = establishedByServiceOrigin.get(prepared.serviceOriginKey);\n\treturn Boolean(cached?.generation === stored?.generation && csrfTokensByServiceOrigin.has(prepared.serviceOriginKey));\n};\nvar canReuseServiceSessionExclusive = (prepared) => {\n\tif (!synchronizeStoredScope(prepared.serviceOriginKey)) return false;\n\tconst established = establishedByServiceOrigin.get(prepared.serviceOriginKey);\n\treturn Boolean(storedScopeMatches(established ? {\n\t\tversion: 2,\n\t\t...established\n\t} : null, prepared) && (!prepared.requireCsrfToken || csrfTokensByServiceOrigin.has(prepared.serviceOriginKey)));\n};\nvar exchangeServiceSession = async (options, prepared) => {\n\tconst { client, scopeKey, serviceOriginKey, targetOrigin } = prepared;\n\tconst existing = pendingByServiceOrigin.get(serviceOriginKey);\n\tif (existing) {\n\t\tif (existing.scopeKey === scopeKey) return existing.operation;\n\t\ttry {\n\t\t\tawait existing.operation;\n\t\t} catch {}\n\t\treturn exchangeServiceSession(options, prepared);\n\t}\n\tforgetStoredScope(serviceOriginKey);\n\tconst operation = (async () => {\n\t\tconst { code } = await client.admin.auth.createServiceSessionCode({\n\t\t\ttarget_service: options.targetService,\n\t\t\ttarget_origin: targetOrigin,\n\t\t\torganization_id: prepared.organizationId ?? void 0,\n\t\t\tproject_id: prepared.projectId ?? void 0,\n\t\t\tproject_slug: prepared.projectSlug ?? void 0\n\t\t});\n\t\tconst response = await fetch(`${targetOrigin}/api/v1/admin/auth/service-session/exchange`, {\n\t\t\tmethod: \"POST\",\n\t\t\tcredentials: \"include\",\n\t\t\theaders: {\n\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\"Content-Type\": \"application/json\"\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tcode,\n\t\t\t\ttarget_service: options.targetService,\n\t\t\t\ttarget_origin: targetOrigin\n\t\t\t})\n\t\t});\n\t\tif (!response.ok) {\n\t\t\tif (response.status === 422) throw new Error(\"Die Anfrage konnte nicht verarbeitet werden.\");\n\t\t\tthrow new Error(`service_session_exchange_failed:${response.status}`);\n\t\t}\n\t\tconst payload = await response.json();\n\t\tconst csrfToken = response.headers.get(\"X-CSRF-Token\")?.trim();\n\t\tif (csrfToken) {\n\t\t\tcsrfTokensByServiceOrigin.set(`${options.targetService}|${targetOrigin}`, csrfToken);\n\t\t\tcsrfTokensByService.set(options.targetService, csrfToken);\n\t\t} else {\n\t\t\tcsrfTokensByServiceOrigin.delete(`${options.targetService}|${targetOrigin}`);\n\t\t\tcsrfTokensByService.delete(options.targetService);\n\t\t}\n\t\tconst expiresAt = Date.parse(String(payload.expires_at ?? \"\"));\n\t\tif (Number.isFinite(expiresAt)) rememberStoredScope(serviceOriginKey, prepared, expiresAt);\n\t\telse forgetStoredScope(serviceOriginKey);\n\t\treturn payload;\n\t})();\n\tpendingByServiceOrigin.set(serviceOriginKey, {\n\t\tscopeKey,\n\t\toperation\n\t});\n\ttry {\n\t\treturn await operation;\n\t} finally {\n\t\tif (pendingByServiceOrigin.get(serviceOriginKey)?.operation === operation) pendingByServiceOrigin.delete(serviceOriginKey);\n\t}\n};\nvar withServiceOriginLock = async (options, mode, operation) => {\n\tif (typeof window === \"undefined\") return operation();\n\tconst lockManager = typeof navigator !== \"undefined\" ? navigator.locks : void 0;\n\tif (!lockManager) throw new Error(\"service_session_cross_context_lock_unavailable\");\n\tconst targetOrigin = normalizeOrigin(options.targetOrigin);\n\tconst lockName = `kontextwerk-service-session:${options.targetService}|${targetOrigin}`;\n\treturn lockManager.request(lockName, { mode }, operation);\n};\n/**\n* Exchange a service session under the exclusive service-origin lock.\n*\n* @deprecated Prefer runWithServiceSession so the target request remains in\n* the same critical section as the cookie exchange.\n*/\nvar ensureServiceSession = async (options) => withServiceOriginLock(options, \"exclusive\", async () => exchangeServiceSession(options, await prepareServiceSession(options)));\nvar runWithServiceSession = async (options, operation) => {\n\tconst isUnauthorizedResponse = (result) => typeof Response !== \"undefined\" && result instanceof Response && result.status === 401;\n\tconst invalidatePreparedSession = (prepared) => {\n\t\tforgetStoredScope(prepared.serviceOriginKey);\n\t\tforgetControlActor(prepared.controlOrigin);\n\t};\n\tconst exchangeAndExecute = async (allowSafeReplay, retainedScope) => {\n\t\tconst prepared = await prepareServiceSession(options, retainedScope);\n\t\tif (!canReuseServiceSessionExclusive(prepared)) await exchangeServiceSession(options, prepared);\n\t\tconst result = await operation();\n\t\tif (!isUnauthorizedResponse(result)) return result;\n\t\tinvalidatePreparedSession(prepared);\n\t\tif (prepared.requireCsrfToken || !allowSafeReplay) return result;\n\t\treturn exchangeAndExecute(false, {\n\t\t\tactorKey: prepared.actorKey,\n\t\t\torganizationId: prepared.organizationId,\n\t\t\tprojectId: prepared.projectId,\n\t\t\tprojectSlug: prepared.projectSlug\n\t\t});\n\t};\n\tif (typeof window === \"undefined\") return exchangeAndExecute(true);\n\tconst shared = await withServiceOriginLock(options, \"shared\", async () => {\n\t\tconst prepared = await prepareServiceSession(options);\n\t\tif (!canReuseServiceSessionShared(prepared)) return { reused: false };\n\t\tconst result = await operation();\n\t\treturn {\n\t\t\treused: !isUnauthorizedResponse(result),\n\t\t\tresult,\n\t\t\tunauthorizedPrepared: isUnauthorizedResponse(result) ? prepared : null\n\t\t};\n\t});\n\tif (shared.reused) return shared.result;\n\tif (\"unauthorizedPrepared\" in shared && shared.unauthorizedPrepared) {\n\t\tconst unauthorizedPrepared = shared.unauthorizedPrepared;\n\t\treturn withServiceOriginLock(options, \"exclusive\", async () => {\n\t\t\tinvalidatePreparedSession(unauthorizedPrepared);\n\t\t\tif (options.requireCsrfToken ?? true) return shared.result;\n\t\t\treturn exchangeAndExecute(false, {\n\t\t\t\tactorKey: unauthorizedPrepared.actorKey,\n\t\t\t\torganizationId: unauthorizedPrepared.organizationId,\n\t\t\t\tprojectId: unauthorizedPrepared.projectId,\n\t\t\t\tprojectSlug: unauthorizedPrepared.projectSlug\n\t\t\t});\n\t\t});\n\t}\n\treturn withServiceOriginLock(options, \"exclusive\", () => exchangeAndExecute(true));\n};\n//#endregion\n//#region src/dto/admin/index.ts\nvar admin_exports = /* @__PURE__ */ __exportAll({});\n//#endregion\nexport { AuthHeaderProvider, ContextServiceContractError, ContextSessionContractError, ControlClientError, ControlWebClient, DEFAULT_SETTINGS, FetchTransport, IdentityAdministrationContractError, ServiceTokenGenerator, admin_exports as admin, admin_exports$1 as adminResources, bindContextServiceRequest, buildAdminAppUrl, buildContextLoginRequest, buildContextServiceCodeRequest, buildSelectLoginContextRequest, buildSwitchSessionContextRequest, createContextMutationPrecondition, createContextServiceSessionClient, createSessionControlWebClient, ensureServiceSession, loadSettingsFromEnv, normalizeContextServiceOrigin, parseContextChoices, parseContextLoginResponse, parseContextServiceBinding, parseContextServiceCode, parseContextSession, parseErrorPayload, parseLoginContextSelection, public_exports as publicResources, resolveApiErrorMessage, runWithServiceSession, sameContextServiceBinding, serviceCsrfCookieName, serviceSessionCookieName, serviceSessionCsrfHeaders, serviceSessionCsrfHeadersForOrigin };\n\n//# sourceMappingURL=index.js.map","import {\n  parseContextSession,\n  createContextMutationPrecondition,\n  type ContextMutationPrecondition,\n  type ContextSessionResponse,\n  type RequestOptions,\n} from \"@kontextwerk/control-web-client\"\n\nexport type ContextInvalidationReason =\n  | \"login\"\n  | \"switch\"\n  | \"refresh\"\n  | \"cross-tab\"\n  | \"project\"\n  | \"logout\"\n  | \"expired\"\n  | \"revoked\"\n  | \"invalid-contract\"\nexport type ContextSessionSnapshot = Readonly<{\n  epoch: number\n  session: ContextSessionResponse | null\n  projectId: string | null\n}>\nexport type ContextTransition = Readonly<{\n  epoch: number\n  signal: AbortSignal\n  expected_session_id: string | null\n  expected_context_revision: number | null\n}>\nexport type ContextMutationBinding = ContextMutationPrecondition &\n  Readonly<{\n    requestOptions: Readonly<\n      Required<Pick<RequestOptions, \"signal\" | \"isCurrent\" | \"retry\" | \"mutationContext\">>\n    >\n  }>\nexport type ContextSessionController = {\n  snapshot(): ContextSessionSnapshot\n  beginTransition(\n    reason: \"login\" | \"switch\" | \"refresh\" | \"cross-tab\" | \"project\",\n  ): ContextTransition\n  confirm(transition: ContextTransition, response: unknown, projectId?: string | null): boolean\n  invalidate(reason: ContextInvalidationReason): void\n  capture(): Readonly<{ signal: AbortSignal; isCurrent(): boolean }>\n  /** Capture once when a form/command starts; never rebind an old draft at submit or retry. */\n  captureMutation(): ContextMutationBinding\n}\n\n/** Instance-owned and opt-in: importing this module never changes the active v1 session. */\nexport const createContextSessionController = (\n  options: {\n    onInvalidate?: (reason: ContextInvalidationReason, previous: ContextSessionSnapshot) => void\n    now?: () => number\n  } = {},\n): ContextSessionController => {\n  let state: ContextSessionSnapshot = Object.freeze({ epoch: 0, session: null, projectId: null })\n  let abort = new AbortController()\n  let pending: ContextTransition | null = null\n  let prior: ContextSessionResponse | null = null\n  let lastConfirmed: ContextSessionResponse | null = null\n  let reason: ContextInvalidationReason = \"login\"\n  const now = options.now ?? Date.now\n\n  const invalidate = (cause: ContextInvalidationReason) => {\n    const previous = state\n    pending = null\n    prior = null\n\n    if (cause === \"logout\" || cause === \"login\") lastConfirmed = null\n\n    reason = cause\n    state = Object.freeze({ epoch: previous.epoch + 1, session: null, projectId: null })\n    abort.abort()\n    abort = new AbortController()\n    options.onInvalidate?.(cause, previous)\n  }\n\n  const isExpired = (session: ContextSessionResponse): boolean =>\n    session.context.kind === \"organization\" &&\n    session.context.delegation !== null &&\n    Date.parse(session.context.delegation.expires_at) <= now()\n\n  const snapshot = (): ContextSessionSnapshot => {\n    if (state.session && isExpired(state.session)) invalidate(\"expired\")\n\n    return state\n  }\n\n  const relationshipRegressed = (\n    next: ContextSessionResponse,\n    previous: ContextSessionResponse,\n  ) => {\n    const before = previous.context\n    const after = next.context\n    const sameRevision = next.context_revision === previous.context_revision\n\n    if (before.kind !== after.kind) return sameRevision\n\n    if (before.kind === \"organization\" && after.kind === \"organization\") {\n      if (\n        before.membership_id !== after.membership_id ||\n        before.organization_id !== after.organization_id\n      ) {\n        return sameRevision\n      }\n\n      return (\n        after.membership_revision < before.membership_revision ||\n        (after.role_id === before.role_id && after.role_revision < before.role_revision)\n      )\n    }\n\n    if (before.kind === \"platform\" && after.kind === \"platform\") {\n      return before.assignment_id === after.assignment_id\n        ? after.assignment_revision < before.assignment_revision\n        : sameRevision\n    }\n\n    return false\n  }\n\n  return {\n    snapshot,\n    invalidate,\n    beginTransition(cause) {\n      const previous = snapshot().session ?? lastConfirmed\n      const expectedEpoch = state.epoch + 1\n      invalidate(cause)\n\n      if (state.epoch !== expectedEpoch) {\n        return Object.freeze({\n          epoch: expectedEpoch,\n          signal: AbortSignal.abort(),\n          expected_session_id: previous?.session_id ?? null,\n          expected_context_revision: previous?.context_revision ?? null,\n        })\n      }\n\n      prior = previous\n      pending = Object.freeze({\n        epoch: state.epoch,\n        signal: abort.signal,\n        expected_session_id: previous?.session_id ?? null,\n        expected_context_revision: previous?.context_revision ?? null,\n      })\n\n      return pending\n    },\n    confirm(transition, response, projectId = null) {\n      if (transition !== pending || transition.signal.aborted) return false\n\n      let session: ContextSessionResponse\n      try {\n        session = parseContextSession(response)\n      } catch {\n        invalidate(\"invalid-contract\")\n\n        return false\n      }\n\n      const sameActor =\n        prior !== null &&\n        session.product_issuer === prior.product_issuer &&\n        session.user.id === prior.user.id\n      const sameSession = sameActor && session.session_id === prior!.session_id\n\n      if (\n        isExpired(session) ||\n        (sameSession && session.context_revision < prior!.context_revision) ||\n        (sameSession && relationshipRegressed(session, prior!)) ||\n        (reason === \"switch\" &&\n          prior?.password_change_required &&\n          !session.password_change_required) ||\n        (reason === \"switch\" &&\n          (!sameActor || sameSession || session.context_revision <= prior!.context_revision))\n      ) {\n        invalidate(\"invalid-contract\")\n\n        return false\n      }\n\n      state = Object.freeze({ epoch: state.epoch, session, projectId })\n      lastConfirmed = session\n      pending = null\n      prior = null\n\n      return true\n    },\n    capture() {\n      const captured = snapshot()\n      const signal = abort.signal\n\n      return Object.freeze({\n        signal,\n        isCurrent: () => snapshot() === captured && captured.session !== null && !signal.aborted,\n      })\n    },\n    captureMutation() {\n      const captured = snapshot()\n\n      if (!captured.session) {\n        throw new DOMException(\"A confirmed mutation context is required\", \"InvalidStateError\")\n      }\n\n      const signal = abort.signal\n      const precondition = createContextMutationPrecondition({\n        expected_session_id: captured.session.session_id,\n        expected_context_revision: captured.session.context_revision,\n      })\n\n      return Object.freeze({\n        ...precondition,\n        requestOptions: Object.freeze({\n          signal,\n          isCurrent: () => snapshot() === captured && !signal.aborted,\n          retry: \"never\",\n          mutationContext: precondition,\n        }),\n      })\n    },\n  }\n}\n","import {\n  buildSelectLoginContextRequest,\n  buildSwitchSessionContextRequest,\n  createContextMutationPrecondition,\n  ContextSessionContractError,\n  parseContextChoices,\n  parseContextSession,\n  parseLoginContextSelection,\n  type ContextChoice,\n  type ContextMutationPrecondition,\n  type ContextSelector,\n  type ContextSessionResponse,\n  type RequestOptions,\n  type SelectLoginContextRequest,\n  type SwitchSessionContextRequest,\n} from \"@kontextwerk/control-web-client\"\nimport { readonly, writable, type Readable } from \"svelte/store\"\nimport {\n  createContextSessionController,\n  type ContextInvalidationReason,\n  type ContextSessionSnapshot,\n} from \"./context-session\"\n\nexport type ContextAccessRequestOptions = Readonly<\n  Required<Pick<RequestOptions, \"signal\" | \"isCurrent\" | \"retry\">> &\n    Pick<RequestOptions, \"mutationContext\">\n>\n\nexport type PendingLoginCapture = Readonly<Required<Pick<RequestOptions, \"signal\" | \"isCurrent\">>>\n\nexport type ContextRecheckResult = \"unchanged\" | \"updated\" | \"failed\" | \"superseded\"\n\nexport type PreferredOrganizationTarget = Readonly<{\n  organizationId: string\n  organizationName?: string | null\n}>\n\n/** The API owner validates the bare live-choice list and the separate pending-login response. */\nexport type ContextAccessApi = {\n  session(options: ContextAccessRequestOptions): Promise<unknown>\n  contexts(options: ContextAccessRequestOptions): Promise<readonly ContextChoice[]>\n  loginContexts(options: ContextAccessRequestOptions): Promise<unknown>\n  selectLoginContext(\n    request: SelectLoginContextRequest,\n    options: ContextAccessRequestOptions,\n  ): Promise<unknown>\n  switchContext(\n    request: SwitchSessionContextRequest,\n    options: ContextAccessRequestOptions,\n  ): Promise<unknown>\n}\n\nexport type ContextAccessState = Readonly<{\n  status: \"idle\" | \"loading\" | \"selecting\" | \"switching\" | \"ready\" | \"password-change\" | \"error\"\n  session: ContextSessionResponse | null\n  choices: readonly ContextChoice[] | null\n  error:\n    | \"request_failed\"\n    | \"invalid_contract\"\n    | \"selection_expired\"\n    | \"session_required\"\n    | \"unauthenticated\"\n    | null\n}>\n\nconst emptyState: ContextAccessState = Object.freeze({\n  status: \"idle\",\n  session: null,\n  choices: null,\n  error: null,\n})\n\nconst sameSelection = (left: ContextSelector, right: ContextSelector): boolean =>\n  left.kind === \"organization\" && right.kind === \"organization\"\n    ? left.membership_id.toLowerCase() === right.membership_id.toLowerCase()\n    : left.kind === \"platform\" &&\n      right.kind === \"platform\" &&\n      left.assignment_id.toLowerCase() === right.assignment_id.toLowerCase()\n\nconst selectorFor = (choice: ContextChoice): ContextSelector =>\n  choice.kind === \"organization\"\n    ? { kind: \"organization\", membership_id: choice.membership_id }\n    : { kind: \"platform\", assignment_id: choice.assignment_id }\n\nconst sameCapabilities = (\n  left: readonly { key: string; level: string; scope: string | null }[],\n  right: readonly { key: string; level: string; scope: string | null }[],\n): boolean =>\n  left.length === right.length &&\n  left.every(\n    (entry, index) =>\n      entry.key === right[index]?.key &&\n      entry.level === right[index]?.level &&\n      entry.scope === right[index]?.scope,\n  )\n\nconst sameSessionSnapshot = (\n  left: ContextSessionResponse,\n  right: ContextSessionResponse,\n): boolean => {\n  if (\n    left.contract_version !== right.contract_version ||\n    left.product_issuer !== right.product_issuer ||\n    left.session_id !== right.session_id ||\n    left.context_revision !== right.context_revision ||\n    left.password_change_required !== right.password_change_required ||\n    left.user.id !== right.user.id ||\n    left.user.email !== right.user.email ||\n    left.user.username !== right.user.username ||\n    left.user.first_name !== right.user.first_name ||\n    left.user.last_name !== right.user.last_name ||\n    left.user.profile_image_url !== right.user.profile_image_url\n  ) {\n    return false\n  }\n\n  if (left.context.kind === \"platform\" && right.context.kind === \"platform\") {\n    return (\n      left.context.assignment_id === right.context.assignment_id &&\n      left.context.assignment_revision === right.context.assignment_revision &&\n      left.context.role === right.context.role\n    )\n  }\n\n  if (left.context.kind === \"organization\" && right.context.kind === \"organization\") {\n    const leftDelegation = left.context.delegation\n    const rightDelegation = right.context.delegation\n    const sameDelegation =\n      leftDelegation === null && rightDelegation === null\n        ? true\n        : leftDelegation !== null &&\n          rightDelegation !== null &&\n          leftDelegation.id === rightDelegation.id &&\n          leftDelegation.staff_assignment_id === rightDelegation.staff_assignment_id &&\n          leftDelegation.represented_user_id === rightDelegation.represented_user_id &&\n          leftDelegation.reason === rightDelegation.reason &&\n          leftDelegation.expires_at === rightDelegation.expires_at\n\n    return (\n      sameDelegation &&\n      left.context.membership_id === right.context.membership_id &&\n      left.context.membership_revision === right.context.membership_revision &&\n      left.context.organization_id === right.context.organization_id &&\n      left.context.organization_name === right.context.organization_name &&\n      left.context.role_id === right.context.role_id &&\n      left.context.role_revision === right.context.role_revision &&\n      left.context.role_name === right.context.role_name &&\n      sameCapabilities(left.context.capabilities, right.context.capabilities)\n    )\n  }\n\n  return false\n}\n\n/** Opt-in instance; no legacy stores, routes, cookies or storage are touched. */\nexport const createContextAccess = (options: {\n  api: ContextAccessApi\n  onInvalidate: (reason: ContextInvalidationReason, previous: ContextSessionSnapshot) => void\n  subscribeInvalidation?: (invalidate: () => void) => () => void\n  now?: () => number\n  onMutationStart?: () => void\n  onMutationSettled?: () => void\n}) => {\n  const now = options.now ?? Date.now\n  const store = writable(emptyState)\n  let current = emptyState\n  let generation = 0\n  let disposed = false\n  let selectionMode: \"login\" | \"session\" | null = null\n  let choiceSource: \"login\" | \"session\" = \"session\"\n  let selectionBinding: ContextMutationPrecondition | null = null\n  let selectionExpiresAt: number | null = null\n  let pendingLoginCapture: PendingLoginCapture | null = null\n  let expiryTimer: ReturnType<typeof setTimeout> | null = null\n  let recheckController: AbortController | null = null\n  const publish = (value: ContextAccessState) => {\n    current = Object.freeze(value)\n    store.set(current)\n  }\n  const clearExpiry = () => {\n    if (expiryTimer !== null) clearTimeout(expiryTimer)\n\n    expiryTimer = null\n  }\n  const cancelRecheck = () => {\n    recheckController?.abort()\n    recheckController = null\n  }\n  const lifecycle = createContextSessionController({\n    now,\n    onInvalidate(reason, previous) {\n      generation += 1\n      cancelRecheck()\n      clearExpiry()\n      selectionMode = null\n      selectionBinding = null\n      selectionExpiresAt = null\n      pendingLoginCapture = null\n      publish(\n        reason === \"invalid-contract\"\n          ? { ...emptyState, status: \"error\", error: \"invalid_contract\" }\n          : emptyState,\n      )\n      options.onInvalidate(reason, previous)\n    },\n  })\n\n  const fail = (error: NonNullable<ContextAccessState[\"error\"]>) => {\n    const nextGeneration = generation + 1\n    lifecycle.invalidate(error === \"invalid_contract\" ? \"invalid-contract\" : \"revoked\")\n\n    if (!disposed && generation === nextGeneration)\n      publish({ ...emptyState, status: \"error\", error })\n  }\n  const scheduleExpiry = (expiresAt: number, onExpire: () => void) => {\n    clearExpiry()\n    const expected = generation\n    const check = () => {\n      if (disposed || generation !== expected) return\n\n      const remaining = expiresAt - now()\n\n      if (remaining <= 0) {\n        onExpire()\n\n        return\n      }\n\n      expiryTimer = setTimeout(check, Math.min(remaining, 2_147_483_647))\n    }\n    check()\n  }\n  const begin = (\n    reason: \"refresh\" | \"switch\" | \"login\",\n    status: \"loading\" | \"switching\",\n    mutationContext?: ContextMutationPrecondition,\n  ) => {\n    if (disposed) return null\n\n    const transition = lifecycle.beginTransition(reason)\n\n    if (transition.signal.aborted) return null\n\n    const expected = generation\n    const requestOptions: ContextAccessRequestOptions = Object.freeze({\n      signal: transition.signal,\n      isCurrent: () => !disposed && generation === expected && !transition.signal.aborted,\n      retry: \"never\",\n      ...(mutationContext ? { mutationContext } : {}),\n    })\n    publish({ ...emptyState, status })\n\n    return requestOptions.isCurrent() ? { transition, requestOptions } : null\n  }\n  const accept = (\n    task: NonNullable<ReturnType<typeof begin>>,\n    response: unknown,\n    selected?: ContextSelector,\n  ): boolean => {\n    if (!task.requestOptions.isCurrent()) return false\n\n    const session = parseContextSession(response)\n\n    if (\n      selected &&\n      (!sameSelection(selected, session.context) ||\n        (session.context.kind === \"organization\" && session.context.delegation !== null))\n    ) {\n      throw new ContextSessionContractError()\n    }\n\n    if (!lifecycle.confirm(task.transition, session)) return false\n\n    publish({\n      ...emptyState,\n      status: session.password_change_required ? \"password-change\" : \"ready\",\n      session,\n    })\n\n    if (\n      task.requestOptions.isCurrent() &&\n      session.context.kind === \"organization\" &&\n      session.context.delegation\n    ) {\n      scheduleExpiry(Date.parse(session.context.delegation.expires_at), () =>\n        lifecycle.invalidate(\"expired\"),\n      )\n    }\n\n    return true\n  }\n  const failedRequest = (task: NonNullable<ReturnType<typeof begin>>, error: unknown) => {\n    if (task.requestOptions.isCurrent()) {\n      const status =\n        (error as { status?: number; statusCode?: number })?.status ??\n        (error as { statusCode?: number })?.statusCode\n      fail(\n        error instanceof ContextSessionContractError\n          ? \"invalid_contract\"\n          : status === 401 || status === 404\n            ? \"unauthenticated\"\n            : \"request_failed\",\n      )\n    }\n\n    return false\n  }\n  const refresh = async (): Promise<boolean> => {\n    choiceSource = \"session\"\n    const task = begin(\"refresh\", \"loading\")\n\n    if (!task) return false\n\n    try {\n      return accept(task, await options.api.session(task.requestOptions))\n    } catch (error) {\n      return failedRequest(task, error)\n    }\n  }\n  const recheck = async (recheckOptions?: {\n    onUnauthenticated?: () => void\n  }): Promise<ContextRecheckResult> => {\n    if (\n      disposed ||\n      (current.status !== \"ready\" && current.status !== \"password-change\") ||\n      !current.session\n    ) {\n      return \"superseded\"\n    }\n\n    if (!lifecycle.snapshot().session) {\n      if (disposed) return \"superseded\"\n\n      return (await refresh()) ? \"updated\" : \"failed\"\n    }\n\n    const baseline = current.session\n    cancelRecheck()\n    const expected = generation\n    const controller = new AbortController()\n    recheckController = controller\n    const requestOptions: ContextAccessRequestOptions = Object.freeze({\n      signal: controller.signal,\n      isCurrent: () =>\n        !disposed &&\n        generation === expected &&\n        recheckController === controller &&\n        !controller.signal.aborted,\n      retry: \"never\",\n    })\n\n    let response: unknown\n    try {\n      response = await options.api.session(requestOptions)\n    } catch (error) {\n      if (!requestOptions.isCurrent()) return \"superseded\"\n\n      recheckController = null\n      choiceSource = \"session\"\n      const status =\n        (error as { status?: number; statusCode?: number })?.status ??\n        (error as { statusCode?: number })?.statusCode\n\n      if (status === 401 || status === 404) recheckOptions?.onUnauthenticated?.()\n\n      fail(\n        error instanceof ContextSessionContractError\n          ? \"invalid_contract\"\n          : status === 401 || status === 404\n            ? \"unauthenticated\"\n            : \"request_failed\",\n      )\n\n      return \"failed\"\n    }\n\n    if (!requestOptions.isCurrent()) return \"superseded\"\n\n    recheckController = null\n    let parsed: ContextSessionResponse\n    try {\n      parsed = parseContextSession(response)\n    } catch {\n      choiceSource = \"session\"\n      fail(\"invalid_contract\")\n\n      return \"failed\"\n    }\n\n    const delegationExpired =\n      parsed.context.kind === \"organization\" &&\n      parsed.context.delegation !== null &&\n      Date.parse(parsed.context.delegation.expires_at) <= now()\n\n    if (!delegationExpired && sameSessionSnapshot(baseline, parsed)) {\n      return \"unchanged\"\n    }\n\n    choiceSource = \"session\"\n    const task = begin(\"refresh\", \"loading\")\n\n    if (!task) return \"superseded\"\n\n    return accept(task, parsed) ? \"updated\" : \"failed\"\n  }\n  const expirePendingSelection = (): boolean => {\n    if (\n      !disposed &&\n      current.status === \"selecting\" &&\n      selectionExpiresAt !== null &&\n      selectionExpiresAt <= now()\n    ) {\n      fail(\"selection_expired\")\n\n      return true\n    }\n\n    return false\n  }\n  const openChoices = async (): Promise<boolean> => {\n    choiceSource = \"session\"\n    const task = begin(\"refresh\", \"loading\")\n\n    if (!task) return false\n\n    if (!task.transition.expected_session_id || !task.transition.expected_context_revision) {\n      fail(\"session_required\")\n\n      return false\n    }\n\n    try {\n      const binding = createContextMutationPrecondition({\n        expected_session_id: task.transition.expected_session_id,\n        expected_context_revision: task.transition.expected_context_revision,\n      })\n      const response = await options.api.contexts(\n        Object.freeze({ ...task.requestOptions, mutationContext: binding }),\n      )\n\n      if (!task.requestOptions.isCurrent()) return false\n\n      const choices = parseContextChoices(response)\n      selectionMode = \"session\"\n      selectionBinding = binding\n      publish({ ...emptyState, status: \"selecting\", choices })\n\n      return true\n    } catch (error) {\n      return failedRequest(task, error)\n    }\n  }\n  const acceptLoginChoices = (\n    task: NonNullable<ReturnType<typeof begin>>,\n    response: unknown,\n  ): boolean => {\n    if (!task.requestOptions.isCurrent()) return false\n\n    try {\n      const selection = parseLoginContextSelection(response)\n      const expiresAt = Date.parse(selection.expires_at)\n\n      if (expiresAt <= now()) {\n        fail(\"selection_expired\")\n\n        return false\n      }\n\n      selectionMode = \"login\"\n      selectionExpiresAt = expiresAt\n      pendingLoginCapture = Object.freeze({\n        signal: task.requestOptions.signal,\n        isCurrent: () =>\n          task.requestOptions.isCurrent() &&\n          selectionMode === \"login\" &&\n          current.status === \"selecting\" &&\n          now() < expiresAt,\n      })\n      publish({ ...emptyState, status: \"selecting\", choices: selection.contexts })\n\n      if (task.requestOptions.isCurrent())\n        scheduleExpiry(expiresAt, () => fail(\"selection_expired\"))\n\n      return true\n    } catch (error) {\n      return failedRequest(task, error)\n    }\n  }\n  const showLoginChoices = (response: unknown): boolean => {\n    choiceSource = \"login\"\n    const task = begin(\"login\", \"loading\")\n\n    return task ? acceptLoginChoices(task, response) : false\n  }\n  const openLoginChoices = async (): Promise<boolean> => {\n    choiceSource = \"login\"\n    const task = begin(\"login\", \"loading\")\n\n    if (!task) return false\n\n    try {\n      return acceptLoginChoices(task, await options.api.loginContexts(task.requestOptions))\n    } catch (error) {\n      return failedRequest(task, error)\n    }\n  }\n  const select = async (selector: ContextSelector): Promise<boolean> => {\n    if (disposed || current.status !== \"selecting\" || selectionMode === null) return false\n\n    if (selectionExpiresAt !== null && selectionExpiresAt <= now()) {\n      fail(\"selection_expired\")\n\n      return false\n    }\n\n    let selected: ContextSelector\n    try {\n      selected = buildSelectLoginContextRequest(selector).context\n\n      if (!current.choices?.some((choice) => sameSelection(selectorFor(choice), selected))) {\n        throw new ContextSessionContractError()\n      }\n    } catch {\n      fail(\"invalid_contract\")\n\n      return false\n    }\n\n    const mode = selectionMode\n    const binding = selectionBinding\n\n    if (mode === \"session\" && !binding) {\n      fail(\"session_required\")\n\n      return false\n    }\n\n    const task = begin(mode === \"session\" ? \"switch\" : \"login\", \"switching\", binding ?? undefined)\n\n    if (!task) return false\n\n    options.onMutationStart?.()\n    try {\n      const response =\n        mode === \"session\"\n          ? await options.api.switchContext(\n              buildSwitchSessionContextRequest(selected, binding!),\n              task.requestOptions,\n            )\n          : await options.api.selectLoginContext(\n              buildSelectLoginContextRequest(selected),\n              task.requestOptions,\n            )\n\n      return accept(task, response, selected)\n    } catch (error) {\n      return failedRequest(task, error)\n    } finally {\n      options.onMutationSettled?.()\n    }\n  }\n  const snapshot = (): ContextAccessState => current\n  const switchToOrganization = async (target: PreferredOrganizationTarget): Promise<boolean> => {\n    const targetId = target.organizationId.trim().toLowerCase()\n    const initial = snapshot()\n\n    if (!targetId || disposed || initial.status !== \"ready\" || !initial.session) return false\n\n    if (\n      initial.session.context.kind === \"organization\" &&\n      initial.session.context.organization_id.toLowerCase() === targetId\n    ) {\n      return true\n    }\n\n    if (!(await openChoices())) return false\n\n    const normalizedName = target.organizationName?.trim().toLowerCase() ?? \"\"\n    const opened = snapshot()\n\n    if (!normalizedName || disposed || opened.status !== \"selecting\" || !opened.choices) {\n      return false\n    }\n\n    const match = opened.choices.find(\n      (choice) =>\n        choice.kind === \"organization\" &&\n        choice.organization_name.trim().toLowerCase() === normalizedName,\n    )\n\n    if (!match || match.kind !== \"organization\") return false\n\n    const switched = await select({\n      kind: \"organization\",\n      membership_id: match.membership_id,\n    })\n    const finalState = snapshot()\n\n    return (\n      switched &&\n      finalState.session?.context.kind === \"organization\" &&\n      finalState.session.context.organization_id.toLowerCase() === targetId\n    )\n  }\n  const disconnect = options.subscribeInvalidation?.(() => {\n    if (disposed) return\n\n    lifecycle.invalidate(\"cross-tab\")\n    void refresh()\n  })\n\n  return {\n    state: readonly(store) as Readable<ContextAccessState>,\n    refresh,\n    recheck,\n    expirePendingSelection,\n    openChoices,\n    openLoginChoices,\n    reloadChoices: () => (choiceSource === \"login\" ? openLoginChoices() : openChoices()),\n    showLoginChoices,\n    select,\n    switchToOrganization,\n    isPendingLogin: () => pendingLoginCapture?.isCurrent() === true,\n    capturePendingLogin(): PendingLoginCapture {\n      if (!pendingLoginCapture?.isCurrent())\n        throw new DOMException(\"Confirmed pending login required\", \"InvalidStateError\")\n\n      return pendingLoginCapture\n    },\n    captureRead() {\n      if (disposed || current.status !== \"ready\")\n        throw new DOMException(\"A ready context is required\", \"InvalidStateError\")\n\n      return lifecycle.captureMutation().requestOptions\n    },\n    captureSession: () => lifecycle.captureMutation(),\n    invalidate: (reason: ContextInvalidationReason) => lifecycle.invalidate(reason),\n    captureMutation() {\n      if (disposed || current.status !== \"ready\") {\n        throw new DOMException(\"A ready context is required\", \"InvalidStateError\")\n      }\n\n      return lifecycle.captureMutation()\n    },\n    dispose() {\n      if (disposed) return\n\n      disposed = true\n      cancelRecheck()\n      disconnect?.()\n      lifecycle.invalidate(\"logout\")\n    },\n  }\n}\n\nexport type ContextAccess = ReturnType<typeof createContextAccess>\n","import { readonly, writable } from \"svelte/store\"\nimport type {\n  IdentityEmailVerificationStateResponse,\n  IdentityEmailVerificationAccepted,\n  IdentityEmailVerificationConfirmRequest,\n  RequestOptions,\n} from \"@kontextwerk/control-web-client\"\n\ntype Capture = Required<Pick<RequestOptions, \"signal\" | \"isCurrent\">>\nexport type ContextEmailVerificationApi = {\n  state(capture: Capture): Promise<IdentityEmailVerificationStateResponse>\n  request(capture: Capture): Promise<IdentityEmailVerificationAccepted>\n  confirm(payload: IdentityEmailVerificationConfirmRequest, capture: Capture): Promise<void>\n}\ntype State = Readonly<{\n  status: \"loading\" | \"ready\" | \"requesting\" | \"confirming\" | \"invalidated\"\n  verified: boolean | null\n  requested: boolean\n  error: \"failed\" | \"proof\" | \"throttled\" | \"uncertain\" | null\n}>\nconst statusOf = (error: unknown) =>\n  (error as { statusCode?: number; status?: number } | null)?.statusCode ??\n  (error as { status?: number } | null)?.status\n\n/** One captured identity lifetime; mailbox proofs never enter the store or browser storage. */\nexport const createContextEmailVerification = (options: {\n  capture: Capture\n  api: ContextEmailVerificationApi\n  onRejected: () => void\n}) => {\n  let disposed = false\n  let invalidated = false\n  let generation = 0\n  let pending: AbortController | null = null\n  let state: State = { status: \"loading\", verified: null, requested: false, error: null }\n  const store = writable(state)\n  const publish = (next: State) => {\n    state = Object.freeze(next)\n    store.set(state)\n  }\n  const current = () =>\n    !disposed && !invalidated && !options.capture.signal.aborted && options.capture.isCurrent()\n  const invalidate = () => {\n    invalidated = true\n    generation += 1\n    pending?.abort()\n    pending = null\n    publish({ status: \"invalidated\", verified: null, requested: false, error: null })\n  }\n  const start = () => {\n    const ticket = ++generation\n    const abort = new AbortController()\n    pending = abort\n    const isCurrent = () => ticket === generation && current() && !abort.signal.aborted\n\n    return {\n      isCurrent,\n      request: { signal: AbortSignal.any([options.capture.signal, abort.signal]), isCurrent },\n      finish() {\n        if (pending === abort) pending = null\n      },\n    }\n  }\n  const fail = (error: unknown, phase: \"read\" | \"request\" | \"confirm\") => {\n    const status = statusOf(error)\n\n    if ([401, 403, 409].includes(status ?? 0)) {\n      invalidate()\n      options.onRejected()\n\n      return\n    }\n\n    publish({\n      ...state,\n      status: \"ready\",\n      verified:\n        phase === \"confirm\" && ![400, 422, 429].includes(status ?? 0) ? null : state.verified,\n      error:\n        status === 429\n          ? \"throttled\"\n          : phase === \"confirm\"\n            ? [400, 422].includes(status ?? 0)\n              ? \"proof\"\n              : \"uncertain\"\n            : \"failed\",\n    })\n  }\n  options.capture.signal.addEventListener(\"abort\", invalidate)\n\n  if (!current()) invalidate()\n\n  return {\n    state: readonly(store),\n    isCurrent: current,\n    async load() {\n      if (!current() || pending) return false\n\n      const operation = start()\n      publish({ ...state, status: \"loading\", verified: null, error: null })\n      try {\n        const result = await options.api.state(operation.request)\n\n        if (!operation.isCurrent()) return false\n\n        publish({ ...state, status: \"ready\", verified: result.verified === true, error: null })\n\n        return result.verified === true\n      } catch (error) {\n        if (operation.isCurrent()) fail(error, \"read\")\n\n        return false\n      } finally {\n        operation.finish()\n      }\n    },\n    async request() {\n      if (!current() || pending || state.verified !== false) return false\n\n      const operation = start()\n      publish({ ...state, status: \"requesting\", error: null })\n      try {\n        await options.api.request(operation.request)\n\n        if (!operation.isCurrent()) return false\n\n        publish({ ...state, status: \"ready\", requested: true, error: null })\n\n        return true\n      } catch (error) {\n        if (operation.isCurrent()) fail(error, \"request\")\n\n        return false\n      } finally {\n        operation.finish()\n      }\n    },\n    async confirm(token: string) {\n      if (!current() || pending || state.verified !== false || !token) return false\n\n      const operation = start()\n      publish({ ...state, status: \"confirming\", error: null })\n      try {\n        await options.api.confirm({ token }, operation.request)\n\n        if (!operation.isCurrent()) return false\n\n        const result = await options.api.state(operation.request)\n\n        if (!operation.isCurrent()) return false\n\n        publish({\n          ...state,\n          status: \"ready\",\n          verified: result.verified === true,\n          error: result.verified === true ? null : \"uncertain\",\n        })\n\n        return result.verified === true\n      } catch (error) {\n        if (operation.isCurrent()) fail(error, \"confirm\")\n\n        return false\n      } finally {\n        operation.finish()\n      }\n    },\n    dispose() {\n      if (disposed) return\n\n      disposed = true\n      options.capture.signal.removeEventListener(\"abort\", invalidate)\n      invalidate()\n    },\n  }\n}\n\nexport type ContextEmailVerification = ReturnType<typeof createContextEmailVerification>\n","import { writable, readonly } from \"svelte/store\"\nimport {\n  parseContextSession,\n  type ContextSessionResponse,\n  type AdminActiveSessionItem,\n} from \"@kontextwerk/control-web-client\"\nimport type { createContextAccessApi } from \"../../../api/context-access\"\nimport type { createContextSecurity } from \"./context-security\"\nimport type { ContextMutationBinding } from \"./context-session\"\n\ntype State = {\n  status: \"idle\" | \"loading\" | \"ready\" | \"reauthenticating\" | \"saving\" | \"invalidated\"\n  items: readonly Readonly<AdminActiveSessionItem>[]\n  error: string | null\n  saved: boolean\n}\n/** Personal identity operations: no membership, represented user or staff role authorizes a device. */\nexport const createContextDevices = (options: {\n  session: ContextSessionResponse\n  capture: ContextMutationBinding\n  api: Pick<\n    ReturnType<typeof createContextAccessApi>,\n    \"personalSessions\" | \"revokePersonalSession\" | \"revokeOtherPersonalSessions\"\n  >\n  security: ReturnType<typeof createContextSecurity>\n  onRevoked: () => Promise<void> | void\n}) => {\n  const session = parseContextSession(options.session)\n  const capture = options.capture\n\n  if (\n    session.session_id !== capture.expected_session_id ||\n    session.context_revision !== capture.expected_context_revision\n  )\n    throw new TypeError(\"Mismatched personal-session context\")\n\n  let state: State = { status: \"idle\", items: [], error: null, saved: false }\n  const store = writable(state)\n  let generation = 0\n  let disposed = false\n  const set = (next: State) => {\n    state = next\n    store.set(next)\n  }\n  const invalidate = () => {\n    generation += 1\n    set({ status: \"invalidated\", items: [], error: null, saved: false })\n  }\n  const current = () =>\n    !disposed &&\n    state.status !== \"invalidated\" &&\n    !capture.requestOptions.signal.aborted &&\n    capture.requestOptions.isCurrent()\n  const ready = () => current() && state.status === \"ready\"\n  const failure = (error: unknown, reauth = false) => {\n    const status = (error as { statusCode?: number })?.statusCode\n    const passwordInvalid =\n      reauth &&\n      status === 401 &&\n      (error as { reasonCode?: string })?.reasonCode === \"reauth_password_invalid\"\n\n    if (!current() || ([401, 403, 409].includes(status ?? 0) && !passwordInvalid)) {\n      invalidate()\n\n      return\n    }\n\n    set({\n      ...state,\n      status: \"ready\",\n      error:\n        status === 429\n          ? \"Zu viele Versuche. Bitte spaeter erneut versuchen.\"\n          : \"Anfrage konnte nicht bestaetigt werden.\",\n      saved: false,\n    })\n  }\n  capture.requestOptions.signal.addEventListener(\"abort\", invalidate)\n  const load = async () => {\n    if (!current() || [\"loading\", \"saving\", \"reauthenticating\"].includes(state.status)) return false\n\n    const ticket = ++generation\n    set({ status: \"loading\", items: [], error: null, saved: false })\n    try {\n      const result = await options.api.personalSessions(capture.requestOptions)\n\n      if (ticket !== generation || !current()) return false\n\n      set({ status: \"ready\", items: result.items, error: null, saved: false })\n\n      return true\n    } catch (error) {\n      if (ticket === generation) failure(error)\n\n      return false\n    }\n  }\n  const canRevoke = (id?: string) =>\n    ready() &&\n    options.security.validFor(capture) &&\n    (id\n      ? state.items.some(\n          (item) => item.session_id === id && !item.current && id !== session.session_id,\n        )\n      : state.items.some((item) => !item.current && item.session_id !== session.session_id))\n  const revoke = async (id?: string) => {\n    if (!canRevoke(id)) return false\n\n    const ticket = ++generation\n    set({ ...state, status: \"saving\", error: null, saved: false })\n    try {\n      if (id) await options.api.revokePersonalSession(id, capture.requestOptions)\n      else await options.api.revokeOtherPersonalSessions(capture.requestOptions)\n\n      if (ticket !== generation || !current()) return false\n\n      invalidate()\n      await options.onRevoked()\n\n      return true\n    } catch (error) {\n      if (ticket === generation) failure(error)\n\n      return false\n    }\n  }\n\n  return {\n    state: readonly(store),\n    proof: options.security.state,\n    actor: session.user,\n    load,\n    canRevoke,\n    revoke,\n    hasProof: () => current() && options.security.validFor(capture),\n    async authenticate(password: string) {\n      if (!ready() || !password) return false\n\n      const ticket = ++generation\n      set({ ...state, status: \"reauthenticating\", error: null })\n      try {\n        const confirmed = await options.security.authenticate(password, capture)\n\n        if (ticket !== generation || !current()) return false\n\n        set({ ...state, status: \"ready\" })\n\n        return confirmed\n      } catch (error) {\n        if (ticket === generation) failure(error, true)\n\n        return false\n      }\n    },\n    dispose() {\n      disposed = true\n      capture.requestOptions.signal.removeEventListener(\"abort\", invalidate)\n      invalidate()\n    },\n  }\n}\nexport type ContextDevices = ReturnType<typeof createContextDevices>\n","import { readonly, writable } from \"svelte/store\"\n\nconst epoch = writable(0)\n/** Invalidation only, not an authentication store or a v1/v2 authority bridge. */\nexport const contextCacheEpoch = readonly(epoch)\nexport const invalidateContextCaches = () => epoch.update((value) => value + 1)\n","import { get, readonly, writable } from \"svelte/store\"\nimport {\n  parseContextLoginResponse,\n  ContextSessionContractError,\n  type AdminLoginChallenge,\n  type LoginPayload,\n} from \"@kontextwerk/control-web-client\"\nimport type { ContextAccess, ContextAccessRequestOptions } from \"./context-access\"\n\nexport type ContextLoginApi = {\n  login(payload: LoginPayload, options: ContextAccessRequestOptions): Promise<unknown>\n}\nexport type ContextLoginState = Readonly<{\n  status: \"credentials\" | \"submitting\" | \"challenge\" | \"selection\" | \"expired\" | \"error\"\n  challenge: AdminLoginChallenge | null\n  error: \"login_failed\" | \"invalid_contract\" | null\n}>\n\n/** Owns requests and challenge expiry, never retains passwords or MFA codes. */\nexport const createContextLogin = (options: {\n  api: ContextLoginApi\n  access: ContextAccess\n  preferredOrganizationName?: () => string | null\n  now?: () => number\n  onMutationStart: () => void\n  onMutationSettled: () => void\n}) => {\n  const initial: ContextLoginState = { status: \"credentials\", challenge: null, error: null }\n  const state = writable(initial)\n  const now = options.now ?? Date.now\n  let generation = 0\n  let abort = new AbortController()\n  let timer: ReturnType<typeof setTimeout> | null = null\n  let disposed = false\n  const reset = () => {\n    generation += 1\n    abort.abort()\n    abort = new AbortController()\n\n    if (timer !== null) clearTimeout(timer)\n\n    timer = null\n    state.set(initial)\n  }\n  const selectSingle = async () => {\n    const current = get(options.access.state)\n\n    if (current.status !== \"selecting\" || !current.choices?.length) return\n\n    const preferredName = options.preferredOrganizationName?.()?.trim().toLowerCase() ?? \"\"\n    const preferredChoice = preferredName\n      ? (current.choices.find(\n          (entry) =>\n            entry.kind === \"organization\" &&\n            entry.organization_name.trim().toLowerCase() === preferredName,\n        ) ?? null)\n      : null\n    const choice = preferredChoice ?? (current.choices.length === 1 ? current.choices[0] : null)\n\n    if (!choice) return\n\n    await options.access.select(\n      choice.kind === \"organization\"\n        ? { kind: \"organization\", membership_id: choice.membership_id }\n        : { kind: \"platform\", assignment_id: choice.assignment_id },\n    )\n  }\n  const submit = async (payload: LoginPayload): Promise<boolean> => {\n    if (disposed || get(state).status === \"submitting\") return false\n\n    if (get(state).status === \"expired\" && payload.two_factor_code) return false\n\n    const challenge = get(state).challenge\n\n    if (challenge?.expires_at && Date.parse(challenge.expires_at) <= now()) {\n      reset()\n      state.set({ ...initial, status: \"expired\" })\n\n      return false\n    }\n\n    reset()\n    options.access.invalidate(\"login\")\n    const expected = generation\n    const signal = abort.signal\n    const isCurrent = () => !disposed && generation === expected && !signal.aborted\n    state.set({ ...initial, status: \"submitting\" })\n    options.onMutationStart()\n    try {\n      const response = await options.api.login(\n        { ...payload, remember_mfa_device: true },\n        { signal, isCurrent, retry: \"never\" },\n      )\n\n      if (!isCurrent()) return false\n\n      const result = parseContextLoginResponse(response)\n\n      if (\"two_factor_required\" in result) {\n        state.set({ ...initial, status: \"challenge\", challenge: result })\n\n        if (result.expires_at) {\n          const expire = () => {\n            if (!isCurrent()) return\n\n            const remaining = Date.parse(result.expires_at!) - now()\n\n            if (remaining > 0) {\n              timer = setTimeout(expire, Math.min(remaining, 2_147_483_647))\n\n              return\n            }\n\n            reset()\n            state.set({ ...initial, status: \"expired\" })\n          }\n          expire()\n        }\n\n        return true\n      }\n\n      if (!options.access.showLoginChoices(result)) return false\n\n      await selectSingle()\n\n      if (isCurrent()) state.set({ ...initial, status: \"selection\" })\n\n      return isCurrent()\n    } catch (error) {\n      if (isCurrent())\n        state.set({\n          ...initial,\n          status: \"error\",\n          error: error instanceof ContextSessionContractError ? \"invalid_contract\" : \"login_failed\",\n        })\n\n      return false\n    } finally {\n      options.onMutationSettled()\n    }\n  }\n\n  return {\n    state: readonly(state),\n    submit,\n    reset,\n    async resume() {\n      if (disposed || get(state).status === \"submitting\") return false\n\n      reset()\n      const expected = generation\n      const accepted = await options.access.openLoginChoices()\n\n      if (!accepted || disposed || expected !== generation) return false\n\n      state.set({ ...initial, status: \"selection\" })\n\n      return true\n    },\n    dispose() {\n      if (disposed) return\n\n      reset()\n      disposed = true\n    },\n  }\n}\nexport type ContextLogin = ReturnType<typeof createContextLogin>\n","import { readonly, writable } from \"svelte/store\"\nimport type {\n  ContextSessionResponse,\n  IdentityMfaStateResponse,\n  IdentityMfaChallengeRequest,\n  IdentityMfaChallengeResponse,\n  IdentityMfaChangeRequest,\n} from \"@kontextwerk/control-web-client\"\nimport type { ContextMutationBinding } from \"./context-session\"\n\ntype Binding = ContextMutationBinding[\"requestOptions\"]\nexport type ContextMfaApi = {\n  personalMfa(options: Binding): Promise<IdentityMfaStateResponse>\n  requestPersonalMfaChallenge(payload: IdentityMfaChallengeRequest, options: Binding): Promise<IdentityMfaChallengeResponse>\n  changePersonalMfa(payload: IdentityMfaChangeRequest, options: Binding): Promise<\"complete\" | \"cleanup-pending\">\n}\ntype MfaState = Readonly<{\n  status: \"loading\" | \"ready\" | \"requesting\" | \"saving\" | \"changed\" | \"invalidated\"\n  baseline: IdentityMfaStateResponse | null\n  enabled: boolean | null\n  expiresAt: number | null\n  error: \"failed\" | \"code\" | \"expired\" | \"throttled\" | \"uncertain\" | null\n}>\nconst statusOf = (error: unknown) => (error as { statusCode?: number; status?: number } | null)?.statusCode ??\n  (error as { status?: number } | null)?.status\n\n/** One personal credential revision and browser context; codes never enter the state store. */\nexport const createContextMfa = (options: {\n  session: ContextSessionResponse\n  capture: ContextMutationBinding\n  api: ContextMfaApi\n  onChanged: (outcome: \"complete\" | \"cleanup-pending\" | \"uncertain\") => Promise<void> | void\n}) => {\n  const { session, capture } = options\n  if (session.session_id !== capture.expected_session_id || session.context_revision !== capture.expected_context_revision)\n    throw new TypeError(\"Mismatched personal-MFA context\")\n\n  let disposed = false\n  let generation = 0\n  let pending: AbortController | null = null\n  let state: MfaState = { status: \"loading\", baseline: null, enabled: null, expiresAt: null, error: null }\n  const store = writable(state)\n  const publish = (next: MfaState) => { state = Object.freeze(next); store.set(state) }\n  const current = () => !disposed && !capture.requestOptions.signal.aborted && capture.requestOptions.isCurrent()\n  const invalidate = () => {\n    generation += 1\n    pending?.abort()\n    pending = null\n    publish({ status: \"invalidated\", baseline: null, enabled: null, expiresAt: null, error: null })\n  }\n  const start = () => {\n    const ticket = ++generation\n    const abort = new AbortController()\n    pending = abort\n    const isCurrent = () => ticket === generation && current() && !abort.signal.aborted\n\n    return {\n      isCurrent,\n      request: { ...capture.requestOptions, signal: AbortSignal.any([capture.requestOptions.signal, abort.signal]), isCurrent },\n      finish() { if (pending === abort) pending = null },\n    }\n  }\n  const fail = (error: unknown, phase: \"load\" | \"challenge\" | \"change\") => {\n    const status = statusOf(error)\n    if ([401, 403, 409].includes(status ?? 0)) { invalidate(); return }\n    publish({ ...state, status: \"ready\", error: status === 429 ? \"throttled\" :\n      phase === \"change\" && [400, 422].includes(status ?? 0) ? \"code\" : \"failed\" })\n  }\n  capture.requestOptions.signal.addEventListener(\"abort\", invalidate)\n  const delegated = session.context.kind === \"organization\" && session.context.delegation !== null\n  if (!current() || session.password_change_required || delegated) invalidate()\n\n  return {\n    state: readonly(store),\n    async load() {\n      if (!current() || pending || state.status === \"invalidated\") return false\n      const operation = start()\n      publish({ ...state, status: \"loading\", error: null })\n      try {\n        const baseline = await options.api.personalMfa(operation.request)\n        if (!operation.isCurrent()) return false\n        publish({ status: \"ready\", baseline, enabled: baseline.enabled, expiresAt: null, error: null })\n        return true\n      } catch (error) {\n        if (operation.isCurrent()) fail(error, \"load\")\n        return false\n      } finally { operation.finish() }\n    },\n    select(enabled: boolean) {\n      if (!current() || state.status !== \"ready\" || !state.baseline) return\n      generation += 1\n      publish({ ...state, enabled, expiresAt: null, error: null })\n    },\n    async requestCode() {\n      if (!current() || state.status !== \"ready\" || !state.baseline || state.enabled === null || state.enabled === state.baseline.enabled) return false\n      const payload = { expected_credentials_revision: state.baseline.credentials_revision, enabled: state.enabled }\n      const operation = start()\n      publish({ ...state, status: \"requesting\", expiresAt: null, error: null })\n      try {\n        const response = await options.api.requestPersonalMfaChallenge(payload, operation.request)\n        if (!operation.isCurrent()) return false\n        const expiresAt = Date.parse(response.expires_at)\n        if (!Number.isFinite(expiresAt) || expiresAt <= Date.now()) throw new TypeError(\"Expired MFA challenge\")\n        publish({ ...state, status: \"ready\", expiresAt, error: null })\n        return true\n      } catch (error) {\n        if (operation.isCurrent()) fail(error, \"challenge\")\n        return false\n      } finally { operation.finish() }\n    },\n    async submit(code: string) {\n      if (!current() || state.status !== \"ready\" || !state.baseline || state.enabled === null || !state.expiresAt) return false\n      if (state.expiresAt <= Date.now()) {\n        publish({ ...state, expiresAt: null, error: \"expired\" })\n        return false\n      }\n      if (!code.length || code.length > 128) {\n        publish({ ...state, error: \"code\" })\n        return false\n      }\n      const payload = { expected_credentials_revision: state.baseline.credentials_revision, enabled: state.enabled, code }\n      const operation = start()\n      publish({ ...state, status: \"saving\", error: null })\n      let outcome: \"complete\" | \"cleanup-pending\" | \"uncertain\"\n      try {\n        outcome = await options.api.changePersonalMfa(payload, operation.request)\n        if (!operation.isCurrent()) return false\n      } catch (error) {\n        if (!operation.isCurrent()) return false\n        if ([400, 401, 403, 409, 422, 429].includes(statusOf(error) ?? 0)) { fail(error, \"change\"); return false }\n        outcome = \"uncertain\"\n      } finally { operation.finish() }\n      publish({ status: \"changed\", baseline: null, enabled: null, expiresAt: null, error: outcome === \"uncertain\" ? \"uncertain\" : null })\n      await options.onChanged(outcome)\n      return outcome !== \"uncertain\"\n    },\n    dispose() {\n      disposed = true\n      capture.requestOptions.signal.removeEventListener(\"abort\", invalidate)\n      invalidate()\n    },\n  }\n}\nexport type ContextMfa = ReturnType<typeof createContextMfa>\n","export const PASSWORD_MIN_LENGTH = 12\nexport const PASSWORD_MAX_LENGTH = 128\n\nexport const PASSWORD_POLICY_HINT =\n  \"Mindestens 12 und maximal 128 Zeichen. Keine häufig verwendeten oder bereits genutzten Passwörter.\"\n\nexport const PASSWORD_LENGTH_ERROR = `Passwort muss mindestens ${PASSWORD_MIN_LENGTH} Zeichen und maximal ${PASSWORD_MAX_LENGTH} Zeichen lang sein.`\n\nexport const PASSWORD_COMMON_ERROR =\n  \"Dieses Passwort ist zu häufig verwendet. Bitte wählen Sie ein anderes Passwort.\"\n\nexport const PASSWORD_REUSE_ERROR =\n  \"Dieses Passwort wurde bereits verwendet. Bitte wählen Sie ein anderes Passwort.\"\n\nexport type PasswordStrength = {\n  score: 0 | 1 | 2 | 3 | 4\n  label: string\n  hints: string[]\n}\n\nconst COMMON_BASE_PASSWORDS: readonly string[] = [\n  \"123456\",\n  \"1234567\",\n  \"12345678\",\n  \"123456789\",\n  \"1234567890\",\n  \"111111\",\n  \"000000\",\n  \"121212\",\n  \"123123\",\n  \"112233\",\n  \"123321\",\n  \"654321\",\n  \"666666\",\n  \"777777\",\n  \"888888\",\n  \"999999\",\n  \"password\",\n  \"password1\",\n  \"passwort\",\n  \"passwort1\",\n  \"qwerty\",\n  \"qwertz\",\n  \"asdfgh\",\n  \"letmein\",\n  \"welcome\",\n  \"welcome1\",\n  \"admin\",\n  \"administrator\",\n  \"root\",\n  \"user\",\n  \"test\",\n  \"guest\",\n  \"login\",\n  \"changeme\",\n  \"default\",\n  \"secret\",\n  \"master\",\n  \"monkey\",\n  \"dragon\",\n  \"sunshine\",\n  \"princess\",\n  \"football\",\n  \"baseball\",\n  \"shadow\",\n  \"superman\",\n  \"iloveyou\",\n  \"trustno1\",\n  \"hello\",\n  \"freedom\",\n  \"whatever\",\n  \"zaq12wsx\",\n  \"1q2w3e4r\",\n  \"1qaz2wsx\",\n  \"abc123\",\n  \"abcd1234\",\n  \"password12\",\n  \"password123\",\n  \"passwort12\",\n  \"passwort123\",\n  \"qwerty123\",\n  \"qwertz123\",\n  \"adminadmin\",\n  \"adminadminadmin\",\n  \"kontextwerk\",\n  \"kontextwerk123\",\n  \"plattform\",\n  \"control\",\n  \"werkserver\",\n  \"werkadmin\",\n  \"contextwerk\",\n  \"contextwerk123\",\n]\n\nconst buildCommonSuffixes = (): readonly string[] => {\n  const suffixes: string[] = []\n\n  for (let index = 0; index < 1000; index += 1) {\n    suffixes.push(String(index))\n  }\n\n  for (const extra of [\n    1111, 1234, 12345, 123456, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029,\n  ]) {\n    suffixes.push(String(extra))\n  }\n\n  return suffixes\n}\n\nlet cachedCommonPasswordDenylist: ReadonlySet<string> | null = null\n\nconst getCommonPasswordDenylist = (): ReadonlySet<string> => {\n  if (cachedCommonPasswordDenylist) return cachedCommonPasswordDenylist\n\n  const suffixes = buildCommonSuffixes()\n  const values = new Set<string>(COMMON_BASE_PASSWORDS)\n\n  for (const base of COMMON_BASE_PASSWORDS) {\n    values.add(`${base}!`)\n    values.add(`${base}@`)\n\n    for (const suffix of suffixes) {\n      values.add(`${base}${suffix}`)\n      values.add(`${base}${suffix}!`)\n    }\n  }\n\n  cachedCommonPasswordDenylist = values\n\n  return cachedCommonPasswordDenylist\n}\n\nexport const normalizePasswordForDenylist = (password: string | null | undefined): string =>\n  String(password ?? \"\")\n    .replace(/ß|ẞ/gu, \"ss\")\n    .toLowerCase()\n    .trim()\n    .split(/\\s+/u)\n    .filter(Boolean)\n    .join(\" \")\n\nexport const isCommonOrBreachedPassword = (password: string): boolean => {\n  const normalized = normalizePasswordForDenylist(password)\n\n  if (!normalized) return false\n\n  const denylist = getCommonPasswordDenylist()\n\n  return denylist.has(normalized) || denylist.has(normalized.replaceAll(\" \", \"\"))\n}\n\nexport const validatePasswordComplexity = (value: string): string | null => {\n  const effectiveLength = value.replace(/\\s{2,}/g, \" \").length\n\n  if (effectiveLength < PASSWORD_MIN_LENGTH || value.length > PASSWORD_MAX_LENGTH) {\n    return PASSWORD_LENGTH_ERROR\n  }\n\n  if (isCommonOrBreachedPassword(value)) {\n    return PASSWORD_COMMON_ERROR\n  }\n\n  return null\n}\n\nexport const validatePasswordReplacement = (\n  next: string,\n  current?: string | null,\n): string | null => {\n  const complexityError = validatePasswordComplexity(next)\n\n  if (complexityError) return complexityError\n\n  if (current && next === current) return PASSWORD_REUSE_ERROR\n\n  return null\n}\n\nconst hasRepeatedRun = (value: string): boolean => /(.)\\1{3,}/u.test(value)\n\nconst hasMultipleCharacterGroups = (value: string): boolean => {\n  const groups = [\n    /[a-z]/u.test(value),\n    /[A-Z]/u.test(value),\n    /\\d/u.test(value),\n    /[^\\p{L}\\p{N}\\s]/u.test(value),\n    /\\s/u.test(value),\n  ]\n\n  return groups.filter(Boolean).length >= 3\n}\n\nexport const evaluatePasswordStrength = (\n  value: string,\n  options?: { currentPassword?: string | null },\n): PasswordStrength => {\n  const policyError = validatePasswordReplacement(value, options?.currentPassword)\n\n  if (policyError) {\n    return {\n      score: 0,\n      label: \"Nicht zulässig\",\n      hints: [policyError],\n    }\n  }\n\n  const hints: string[] = []\n  let score = 1\n\n  if (value.length >= 16) score += 1\n  else hints.push(\"Länger ist stärker, 16+ Zeichen sind besser.\")\n\n  if (hasMultipleCharacterGroups(value)) score += 1\n  else hints.push(\"Mehr unterschiedliche Zeichenarten erhöhen die Stärke.\")\n\n  if (!hasRepeatedRun(value)) score += 1\n  else hints.push(\"Wiederholte Zeichenfolgen vermeiden.\")\n\n  const cappedScore = Math.max(1, Math.min(4, score)) as PasswordStrength[\"score\"]\n  const label = [\"Nicht zulässig\", \"Schwach\", \"Okay\", \"Stark\", \"Sehr stark\"][cappedScore] ?? \"Okay\"\n\n  return {\n    score: cappedScore,\n    label,\n    hints: hints.slice(0, 2),\n  }\n}\n","import { readonly, writable } from \"svelte/store\"\nimport { ControlClientError, type ContextSessionResponse } from \"@kontextwerk/control-web-client\"\nimport type { createContextAccessApi } from \"../../../api/context-access\"\nimport type { ContextMutationBinding } from \"./context-session\"\nimport { validatePasswordReplacement } from \"./password-policy\"\n\nexport type ContextPasswordError =\n  | \"mismatch\"\n  | \"policy\"\n  | \"current_password\"\n  | \"delegated\"\n  | \"failed\"\n  | \"uncertain\"\n\nexport type ContextPasswordState = Readonly<{\n  status: \"ready\" | \"verifying\" | \"saving\" | \"changed\" | \"invalidated\"\n  error: ContextPasswordError | null\n  policyMessage: string | null\n}>\n\ntype PasswordProof = {\n  authenticate(password: string, binding: ContextMutationBinding): Promise<boolean>\n}\n\nconst statusOf = (error: unknown): number | undefined =>\n  (error as { statusCode?: number; status?: number } | null)?.statusCode ??\n  (error as { status?: number } | null)?.status\n\nconst GENERIC_ERROR_FALLBACKS = new Set([\n  \"bad request\",\n  \"unprocessable entity\",\n  \"ungültige anfrage.\",\n  \"eingabedaten sind ungültig.\",\n  \"die anfrage konnte nicht verarbeitet werden.\",\n  \"ein fehler ist aufgetreten.\",\n])\n\nconst cleanPolicyText = (value: unknown): string | null => {\n  if (typeof value !== \"string\") return null\n\n  const cleaned = value.replace(/^value error,\\s*/i, \"\").trim()\n\n  if (!cleaned || GENERIC_ERROR_FALLBACKS.has(cleaned.toLowerCase())) return null\n\n  return cleaned\n}\n\nexport const extractServerPolicyMessage = (error: unknown): string | null => {\n  const rawDetail = (error as { detail?: unknown } | null)?.detail\n\n  const direct = cleanPolicyText(rawDetail)\n\n  if (direct) return direct\n\n  if (Array.isArray(rawDetail)) {\n    for (const item of rawDetail) {\n      if (item && typeof item === \"object\") {\n        const entryMessage = cleanPolicyText(\n          (item as { msg?: unknown; message?: unknown }).msg ??\n            (item as { message?: unknown }).message,\n        )\n\n        if (entryMessage) return entryMessage\n      }\n    }\n  } else if (rawDetail && typeof rawDetail === \"object\" && \"detail\" in rawDetail) {\n    const nested = cleanPolicyText((rawDetail as { detail?: unknown }).detail)\n\n    if (nested) return nested\n  }\n\n  if (error instanceof ControlClientError) {\n    for (const fieldError of error.fieldErrors) {\n      const fieldMsg = cleanPolicyText(fieldError.message)\n\n      if (fieldMsg) return fieldMsg\n    }\n\n    const message = cleanPolicyText(error.message)\n\n    if (message) return message\n  }\n\n  return null\n}\n\n/**\n * Personal credential change for the actual signed-in identity. The step-up proof and the change\n * use the context captured when the form opened; nothing is replayed. Success ends every browser\n * session of the identity, so the caller drops the root and asks for a new login.\n */\nexport const createContextPassword = (options: {\n  session: ContextSessionResponse\n  capture: ContextMutationBinding\n  security: PasswordProof\n  api: Pick<ReturnType<typeof createContextAccessApi>, \"changePassword\">\n  onChanged: () => Promise<void> | void\n}) => {\n  const { session, capture } = options\n\n  if (\n    session.session_id !== capture.expected_session_id ||\n    session.context_revision !== capture.expected_context_revision\n  )\n    throw new TypeError(\"Mismatched password-change context\")\n\n  const delegated = session.context.kind === \"organization\" && session.context.delegation !== null\n  let state: ContextPasswordState = Object.freeze({\n    status: delegated ? \"invalidated\" : \"ready\",\n    error: delegated ? \"delegated\" : null,\n    policyMessage: null,\n  })\n  const store = writable(state)\n  let disposed = false\n  const publish = (next: ContextPasswordState) => {\n    state = Object.freeze(next)\n    store.set(state)\n  }\n  const current = () =>\n    !disposed && !capture.requestOptions.signal.aborted && capture.requestOptions.isCurrent()\n  const invalidate = () => {\n    if (state.status !== \"changed\")\n      publish({ status: \"invalidated\", error: null, policyMessage: null })\n  }\n  capture.requestOptions.signal.addEventListener(\"abort\", invalidate, { once: true })\n\n  return {\n    state: readonly(store),\n    async submit(input: { current: string; next: string; confirm: string }): Promise<boolean> {\n      if (!current() || state.status !== \"ready\") return false\n\n      if (input.next !== input.confirm) {\n        publish({ status: \"ready\", error: \"mismatch\", policyMessage: null })\n\n        return false\n      }\n\n      const policyMessage = validatePasswordReplacement(input.next, input.current)\n\n      if (policyMessage) {\n        publish({ status: \"ready\", error: \"policy\", policyMessage })\n\n        return false\n      }\n\n      publish({ status: \"verifying\", error: null, policyMessage: null })\n      try {\n        if (!(await options.security.authenticate(input.current, capture))) {\n          invalidate()\n\n          return false\n        }\n      } catch (error) {\n        if (!current()) return false\n\n        publish({\n          status: \"ready\",\n          error: statusOf(error) === 401 ? \"current_password\" : \"failed\",\n          policyMessage: null,\n        })\n\n        return false\n      }\n\n      if (!current()) return false\n\n      publish({ status: \"saving\", error: null, policyMessage: null })\n      try {\n        await options.api.changePassword({ new_password: input.next }, capture.requestOptions)\n      } catch (error) {\n        if (\n          error instanceof ControlClientError &&\n          error.statusCode === 503 &&\n          error.reasonCode === \"password_changed_session_cleanup_pending\"\n        ) {\n          publish({ status: \"changed\", error: null, policyMessage: null })\n          await options.onChanged()\n\n          return true\n        }\n\n        if (!current()) return false\n\n        const status = statusOf(error)\n\n        if (status === 400 || status === 422 || status === 403) {\n          publish({\n            status: \"ready\",\n            error: status === 403 ? \"failed\" : \"policy\",\n            policyMessage: status === 403 ? null : extractServerPolicyMessage(error),\n          })\n\n          return false\n        }\n\n        // An unknown outcome may already have replaced the credential: never retry it here, but\n        // let the root re-read the server session so a terminated session leads to a new login.\n        publish({ status: \"invalidated\", error: \"uncertain\", policyMessage: null })\n        await options.onChanged()\n\n        return false\n      }\n      publish({ status: \"changed\", error: null, policyMessage: null })\n      await options.onChanged()\n\n      return true\n    },\n    dispose() {\n      disposed = true\n      capture.requestOptions.signal.removeEventListener(\"abort\", invalidate)\n    },\n  }\n}\nexport type ContextPassword = ReturnType<typeof createContextPassword>\n","import { readonly, writable } from \"svelte/store\"\nimport {\n  parseContextSession,\n  type ContextSessionResponse,\n  type IdentityResponse,\n  type IdentityProfileUpdateRequest,\n} from \"@kontextwerk/control-web-client\"\nimport type { createContextAccessApi } from \"../../../api/context-access\"\nimport type { ContextMutationBinding } from \"./context-session\"\n\ntype ProfileDraft = Readonly<{\n  username: string\n  first_name: string\n  last_name: string\n  profile_image_data_url: string | null\n  remove_profile_image: boolean\n}>\ntype ProfileState = Readonly<{\n  status: \"ready\" | \"saving\" | \"invalidated\"\n  baseline: IdentityResponse | null\n  draft: ProfileDraft | null\n  error: string | null\n  saved: boolean\n}>\nconst draftFor = (identity: IdentityResponse): ProfileDraft =>\n  Object.freeze({\n    username: identity.username ?? \"\",\n    first_name: identity.first_name ?? \"\",\n    last_name: identity.last_name ?? \"\",\n    profile_image_data_url: null,\n    remove_profile_image: false,\n  })\nconst changed = (state: ProfileState): boolean => {\n  const { baseline, draft } = state\n\n  return (\n    !!baseline &&\n    !!draft &&\n    (draft.username !== (baseline.username ?? \"\") ||\n      draft.first_name !== (baseline.first_name ?? \"\") ||\n      draft.last_name !== (baseline.last_name ?? \"\") ||\n      draft.profile_image_data_url !== null ||\n      (draft.remove_profile_image && baseline.profile_image_url !== null))\n  )\n}\n\n/** Owns a personal draft bound at creation, never to a represented member or submit-time session. */\nexport const createContextProfile = (options: {\n  session: ContextSessionResponse\n  capture: ContextMutationBinding\n  api: Pick<ReturnType<typeof createContextAccessApi>, \"updatePersonalProfile\">\n  onSaved: () => Promise<void> | void\n}) => {\n  const session = parseContextSession(options.session)\n  const capture = options.capture\n\n  if (\n    session.session_id !== capture.expected_session_id ||\n    session.context_revision !== capture.expected_context_revision\n  )\n    throw new TypeError(\"Mismatched personal-profile context\")\n\n  let disposed = false\n  let generation = 0\n  let state: ProfileState = {\n    status: \"ready\",\n    baseline: session.user,\n    draft: draftFor(session.user),\n    error: null,\n    saved: false,\n  }\n  const store = writable(state)\n  const publish = (next: ProfileState) => {\n    state = Object.freeze(next)\n    store.set(state)\n  }\n  const invalidate = () => {\n    generation += 1\n    publish({ status: \"invalidated\", baseline: null, draft: null, error: null, saved: false })\n  }\n  const current = () =>\n    !disposed &&\n    state.status !== \"invalidated\" &&\n    !capture.requestOptions.signal.aborted &&\n    capture.requestOptions.isCurrent()\n  capture.requestOptions.signal.addEventListener(\"abort\", invalidate)\n\n  if (!current()) invalidate()\n\n  return {\n    state: readonly(store),\n    isDirty: () => current() && changed(state),\n    edit<K extends keyof ProfileDraft>(field: K, value: ProfileDraft[K]) {\n      if (!current() || state.status !== \"ready\" || !state.draft) return\n\n      publish({\n        ...state,\n        draft: Object.freeze({\n          ...state.draft,\n          [field]: value,\n          ...(field === \"profile_image_data_url\" ? { remove_profile_image: false } : {}),\n          ...(field === \"remove_profile_image\" ? { profile_image_data_url: null } : {}),\n        }),\n        error: null,\n        saved: false,\n      })\n    },\n    reset() {\n      if (current() && state.status === \"ready\" && state.baseline)\n        publish({ ...state, draft: draftFor(state.baseline), error: null, saved: false })\n    },\n    async save() {\n      if (\n        !current() ||\n        state.status !== \"ready\" ||\n        !changed(state) ||\n        !state.draft ||\n        !state.baseline\n      )\n        return false\n\n      const ticket = ++generation\n      const { draft, baseline } = state\n      const request: IdentityProfileUpdateRequest = {\n        ...(draft.username !== (baseline.username ?? \"\") ? { username: draft.username } : {}),\n        ...(draft.first_name !== (baseline.first_name ?? \"\")\n          ? { first_name: draft.first_name }\n          : {}),\n        ...(draft.last_name !== (baseline.last_name ?? \"\") ? { last_name: draft.last_name } : {}),\n        ...(draft.profile_image_data_url !== null\n          ? { profile_image_data_url: draft.profile_image_data_url }\n          : {}),\n        ...(draft.remove_profile_image ? { remove_profile_image: true } : {}),\n      }\n      publish({ ...state, status: \"saving\", error: null, saved: false })\n      let result: IdentityResponse\n      try {\n        result = await options.api.updatePersonalProfile(request, capture.requestOptions)\n\n        if (ticket !== generation || !current()) return false\n\n        if (result.id !== session.user.id || result.email !== session.user.email) {\n          invalidate()\n\n          return false\n        }\n      } catch (error) {\n        if (ticket !== generation) return false\n\n        const status =\n          (error as { statusCode?: number; status?: number })?.statusCode ??\n          (error as { status?: number })?.status\n\n        if (!current() || [401, 403, 409].includes(status ?? 0)) invalidate()\n        else\n          publish({\n            ...state,\n            status: \"ready\",\n            error: \"Das Profil konnte nicht gespeichert werden. Bitte erneut versuchen.\",\n            saved: false,\n          })\n\n        return false\n      }\n      publish({\n        status: \"ready\",\n        baseline: result,\n        draft: draftFor(result),\n        error: null,\n        saved: true,\n      })\n      // Refresh all identity projections only after confirmed persistence; never replay the PATCH.\n      await options.onSaved()\n\n      return true\n    },\n    dispose() {\n      disposed = true\n      capture.requestOptions.signal.removeEventListener(\"abort\", invalidate)\n      invalidate()\n    },\n  }\n}\nexport type ContextProfile = ReturnType<typeof createContextProfile>\n","import { readonly, writable } from \"svelte/store\"\nimport type { adminResources } from \"@kontextwerk/control-web-client\"\nimport { extractServerPolicyMessage } from \"./context-password\"\nimport { validatePasswordComplexity } from \"./password-policy\"\n\nexport type ContextRecoveryApi = Pick<\n  adminResources.AdminContextAuthAPI,\n  \"requestPasswordReset\" | \"verifyPasswordReset\" | \"confirmPasswordReset\"\n>\ntype Step =\n  | \"request\"\n  | \"code\"\n  | \"password\"\n  | \"expired\"\n  | \"complete\"\n  | \"cleanup-pending\"\n  | \"uncertain\"\ntype State = Readonly<{ step: Step; pending: boolean; error: string | null }>\n\nconst statusOf = (error: unknown): number | undefined =>\n  (error as { statusCode?: number; status?: number } | null)?.statusCode ??\n  (error as { status?: number } | null)?.status\n\nconst isExpiredResetProofMessage = (message: string | null): boolean =>\n  Boolean(message && /reset-token|code.*abgelaufen|ungültiger code/i.test(message))\n\n/** Anonymous identity recovery. Proofs and addresses never enter the public state or browser storage. */\nexport const createContextRecovery = (options: {\n  api: ContextRecoveryApi\n  onComplete: () => void\n}) => {\n  let current: State = { step: \"request\", pending: false, error: null }\n  const state = writable(current)\n  const update = (value: State) => {\n    current = value\n    state.set(current)\n  }\n  let email = \"\"\n  let proof: { token: string; expires: number } | null = null\n  let task: AbortController | null = null\n  let disposed = false\n  const reset = () => {\n    task?.abort()\n    task = null\n    email = \"\"\n    proof = null\n    update({ step: \"request\", pending: false, error: null })\n  }\n  const begin = () => {\n    const controller = new AbortController()\n    task = controller\n    update({ ...current, pending: true, error: null })\n\n    return {\n      signal: controller.signal,\n      isCurrent: () => !disposed && task === controller && !controller.signal.aborted,\n    }\n  }\n  const expire = () => {\n    if (proof && proof.expires <= Date.now()) {\n      proof = null\n      update({ step: \"expired\", pending: false, error: null })\n\n      return true\n    }\n\n    return false\n  }\n  const failure = (error: unknown) => {\n    const status = statusOf(error)\n\n    return status === 429\n      ? \"Zu viele Versuche. Bitte später erneut versuchen.\"\n      : \"Anfrage nicht bestätigt. Bitte erneut versuchen.\"\n  }\n\n  return {\n    state: readonly(state),\n    reset,\n    expire,\n    async request(address: string) {\n      if (disposed || current.pending || (current.step !== \"request\" && current.step !== \"code\"))\n        return false\n\n      const fallbackStep = current.step\n      const normalized = address.trim()\n\n      if (!normalized) return false\n\n      proof = null\n      const capture = begin()\n      try {\n        await options.api.requestPasswordReset({ email: normalized }, capture)\n\n        if (!capture.isCurrent()) return false\n\n        email = normalized\n        update({ step: \"code\", pending: false, error: null })\n\n        return true\n      } catch (error) {\n        if (capture.isCurrent())\n          update({ step: fallbackStep, pending: false, error: failure(error) })\n\n        return false\n      }\n    },\n    async verify(code: string, address?: string) {\n      if (disposed || current.pending || current.step !== \"code\") return false\n\n      const targetEmail = address !== undefined ? address.trim() : email\n\n      if (!targetEmail) return false\n\n      const capture = begin()\n      try {\n        const result = await options.api.verifyPasswordReset(\n          { email: targetEmail, code: code.trim() },\n          capture,\n        )\n\n        if (!capture.isCurrent()) return false\n\n        email = targetEmail\n        proof = { token: result.token, expires: Date.parse(result.expires_at) }\n\n        if (expire()) return false\n\n        update({ step: \"password\", pending: false, error: null })\n\n        return true\n      } catch (error) {\n        if (capture.isCurrent()) update({ step: \"code\", pending: false, error: failure(error) })\n\n        return false\n      }\n    },\n    async confirm(password: string) {\n      if (disposed || current.pending || current.step !== \"password\" || expire() || !proof)\n        return false\n\n      const policyError = validatePasswordComplexity(password)\n\n      if (policyError) {\n        update({ step: \"password\", pending: false, error: policyError })\n\n        return false\n      }\n\n      const activeProof = proof\n      proof = null\n      const capture = begin()\n      let result: \"complete\" | \"cleanup-pending\"\n      try {\n        result = await options.api.confirmPasswordReset(\n          { token: activeProof.token, new_password: password },\n          capture,\n        )\n      } catch (error) {\n        if (capture.isCurrent()) {\n          const status = statusOf(error)\n          const serverMessage = extractServerPolicyMessage(error)\n\n          if (status === 400 || status === 422) {\n            if (isExpiredResetProofMessage(serverMessage) || activeProof.expires <= Date.now()) {\n              email = \"\"\n              update({ step: \"expired\", pending: false, error: null })\n            } else {\n              proof = activeProof\n              update({\n                step: \"password\",\n                pending: false,\n                error: serverMessage ?? \"Das neue Passwort erfüllt die Vorgaben nicht.\",\n              })\n            }\n\n            return false\n          }\n\n          if (status === 429 && activeProof.expires > Date.now()) {\n            proof = activeProof\n            update({ step: \"password\", pending: false, error: failure(error) })\n\n            return false\n          }\n\n          email = \"\"\n          // A lost response may follow a committed password change. Never reuse this proof.\n          update({ step: \"uncertain\", pending: false, error: null })\n          options.onComplete()\n        }\n\n        return false\n      }\n\n      if (!capture.isCurrent()) return false\n\n      email = \"\"\n      update({ step: result, pending: false, error: null })\n      options.onComplete()\n\n      return true\n    },\n    dispose() {\n      reset()\n      disposed = true\n    },\n  }\n}\nexport type ContextRecovery = ReturnType<typeof createContextRecovery>\n","import { readonly, writable } from \"svelte/store\"\nimport {\n  createContextMutationPrecondition,\n  type RequestOptions,\n} from \"@kontextwerk/control-web-client\"\nimport type { ContextMutationBinding } from \"./context-session\"\n\nexport type ContextSecurityApi = {\n  reauth(\n    payload: { password: string },\n    options: Required<Pick<RequestOptions, \"signal\" | \"isCurrent\" | \"mutationContext\">>,\n  ): Promise<{ reauth_level: string; expires_at: string }>\n}\n\n/** A personal proof for one captured context, never an authorization grant or action replay. */\nexport const createContextSecurity = (api: ContextSecurityApi) => {\n  const state = writable<{ status: \"idle\" | \"submitting\" | \"confirmed\"; expiresAt: number | null }>(\n    { status: \"idle\", expiresAt: null },\n  )\n  let pending: AbortController | null = null\n  let generation = 0\n  let proof: { binding: ContextMutationBinding; expiresAt: number } | null = null\n  const invalidate = () => {\n    generation += 1\n    pending?.abort()\n    pending = null\n    proof = null\n    state.set({ status: \"idle\", expiresAt: null })\n  }\n  const current = (binding: ContextMutationBinding) =>\n    !binding.requestOptions.signal.aborted && binding.requestOptions.isCurrent()\n  const validFor = (binding: ContextMutationBinding): boolean => {\n    if (proof && (!current(proof.binding) || proof.expiresAt <= Date.now())) invalidate()\n\n    return Boolean(\n      proof &&\n      current(binding) &&\n      proof.binding.expected_session_id === binding.expected_session_id &&\n      proof.binding.expected_context_revision === binding.expected_context_revision,\n    )\n  }\n\n  return {\n    state: readonly(state),\n    invalidate,\n    validFor,\n    async authenticate(password: string, binding: ContextMutationBinding): Promise<boolean> {\n      if (pending) throw new DOMException(\"Reauthentication already pending\", \"InvalidStateError\")\n\n      if (!current(binding))\n        throw new DOMException(\"Obsolete reauthentication context\", \"AbortError\")\n\n      const pair = createContextMutationPrecondition(binding.requestOptions.mutationContext)\n\n      if (\n        !password ||\n        pair.expected_session_id !== binding.expected_session_id ||\n        pair.expected_context_revision !== binding.expected_context_revision\n      )\n        throw new TypeError(\"Invalid reauthentication request\")\n\n      invalidate()\n      const ticket = generation\n      const abort = new AbortController()\n      pending = abort\n      const cancel = () => abort.abort()\n      binding.requestOptions.signal.addEventListener(\"abort\", cancel, { once: true })\n      const isCurrent = () => ticket === generation && !abort.signal.aborted && current(binding)\n      state.set({ status: \"submitting\", expiresAt: null })\n      try {\n        const result = await api.reauth(\n          { password },\n          { signal: abort.signal, isCurrent, mutationContext: pair },\n        )\n\n        if (!isCurrent()) return false\n\n        const expiresAt = Date.parse(result.expires_at)\n\n        if (\n          result.reauth_level !== \"password\" ||\n          !Number.isFinite(expiresAt) ||\n          expiresAt <= Date.now()\n        )\n          throw new TypeError(\"Invalid reauthentication response\")\n\n        proof = { binding, expiresAt }\n        state.set({ status: \"confirmed\", expiresAt })\n\n        return true\n      } finally {\n        binding.requestOptions.signal.removeEventListener(\"abort\", cancel)\n\n        if (ticket === generation) {\n          pending = null\n\n          if (!proof) state.set({ status: \"idle\", expiresAt: null })\n        }\n      }\n    },\n  }\n}\n","import type {\n  ContextRequestCapture,\n  ContextSessionResponse,\n  IdentityResponse,\n} from \"@kontextwerk/control-web-client\"\nimport { readonly, writable, type Readable } from \"svelte/store\"\nimport type { PermissionState } from \"../authorization\"\n\n/** Presentation snapshot of the active root's confirmed V2 context. */\nexport type ControlContext = Readonly<{\n  session: ContextSessionResponse\n  permissions: PermissionState\n  /** Actual signed-in actor; support never replaces it with the represented member. */\n  actor: IdentityResponse\n  /** Member whose own-scoped data this context may show; the represented user during support. */\n  memberUserId: string | null\n  organizationId: string | null\n}>\n\nexport type ControlContextBinding = Readonly<{\n  /** Captures the confirmed pair, signal and freshness check for one request start. */\n  capture: () => ContextRequestCapture | null\n  /** The server no longer accepts the captured context: drop protected state immediately. */\n  reject: () => void\n  /** Confirmed server-side authority changed (e.g. a subscription completed): re-read it. */\n  refresh: () => Promise<void>\n  /**\n   * Password proof for the current context pair; resolves false when the context changed\n   * meanwhile. A wrong password rejects with the server error and keeps the context.\n   */\n  reauthenticate: (password: string) => Promise<boolean>\n}>\n\nconst store = writable<ControlContext | null>(null)\nlet owner: symbol | null = null\nlet binding: ControlContextBinding | null = null\n\n/** Current confirmed context for protected views and overlays outside the root component tree. */\nexport const controlContext: Readable<ControlContext | null> = readonly(store)\n\nexport const createControlContext = (\n  session: ContextSessionResponse,\n  permissions: PermissionState,\n): ControlContext =>\n  Object.freeze({\n    session,\n    permissions,\n    actor: session.user,\n    memberUserId:\n      session.context.kind === \"organization\"\n        ? (session.context.delegation?.represented_user_id ?? session.user.id)\n        : null,\n    organizationId:\n      session.context.kind === \"organization\" ? session.context.organization_id : null,\n  })\n\n/** Display label of the confirmed relationship for assistant context; never an authority input. */\nexport const controlContextRoleLabel = (context: ControlContext | null): string | null => {\n  const relationship = context?.session.context\n\n  if (!relationship) return null\n\n  if (relationship.kind === \"organization\") return relationship.role_name\n\n  return relationship.role === \"support_agent\" ? \"Support\" : \"Plattformverwaltung\"\n}\n\n/**\n * Claim the single active publication slot. A newer root replaces an older one; cleanup of the\n * older root can never clear the newer owner's context or request binding.\n */\nexport const claimControlContext = (nextBinding: ControlContextBinding) => {\n  const token = Symbol(\"control-context-owner\")\n  owner = token\n  binding = nextBinding\n  store.set(null)\n\n  return {\n    isOwner: () => owner === token,\n    publish(value: ControlContext | null) {\n      if (owner === token) store.set(value)\n    },\n    release() {\n      if (owner !== token) return\n\n      owner = null\n      binding = null\n      store.set(null)\n    },\n  }\n}\n\n/** Request binding for the shared business transport; null while nothing is confirmed. */\nexport const captureControlContext = (): ContextRequestCapture | null => {\n  try {\n    return binding?.capture() ?? null\n  } catch {\n    return null\n  }\n}\n\nexport const rejectControlContext = () => {\n  binding?.reject()\n}\n\n/** Clears protected state and re-reads the confirmed context from the server. */\nexport const refreshControlContext = async (): Promise<void> => {\n  await binding?.refresh()\n}\n\n/** Session-bound password proof for a following protected write; no proof without a context. */\nexport const reauthenticateControlContext = async (password: string): Promise<boolean> =>\n  binding ? binding.reauthenticate(password) : false\n","export const CONTROL_RETURN_TO_STORAGE_KEY = \"control-frame:return-to\"\nexport const PENDING_MICROSOFT_SITE_GRANT_MODE_STORAGE_KEY =\n  \"control-web-frame:pending-microsoft-site-grant-mode\"\nlet returnToMemory: string | null = null\nlet returnToMemoryOnly = false\n\nexport const readControlReturnTo = (): string | null => {\n  if (returnToMemoryOnly) return returnToMemory\n\n  try {\n    return typeof sessionStorage === \"undefined\"\n      ? returnToMemory\n      : sessionStorage.getItem(CONTROL_RETURN_TO_STORAGE_KEY)\n  } catch {\n    return returnToMemory\n  }\n}\n\nconst AUTHENTICATED_SESSION_STORAGE_KEYS = [\n  CONTROL_RETURN_TO_STORAGE_KEY,\n  PENDING_MICROSOFT_SITE_GRANT_MODE_STORAGE_KEY,\n]\n\nexport const clearControlAuthenticatedBrowserState = () => {\n  returnToMemory = null\n  returnToMemoryOnly = false\n\n  if (typeof sessionStorage === \"undefined\") return\n\n  for (const key of AUTHENTICATED_SESSION_STORAGE_KEYS) {\n    try {\n      sessionStorage.removeItem(key)\n    } catch (err) {\n      console.warn(\"Failed to clear authenticated session storage\", err)\n    }\n  }\n}\n\nexport const storeControlReturnTo = (value: string | null) => {\n  returnToMemory = value\n  returnToMemoryOnly = typeof sessionStorage === \"undefined\"\n\n  if (returnToMemoryOnly) return\n\n  try {\n    if (!value) {\n      sessionStorage.removeItem(CONTROL_RETURN_TO_STORAGE_KEY)\n\n      return\n    }\n\n    sessionStorage.setItem(CONTROL_RETURN_TO_STORAGE_KEY, value)\n  } catch {\n    returnToMemoryOnly = true\n  }\n}\n","<script lang=\"ts\">\n  import { onMount, untrack } from \"svelte\"\n  import { fromStore } from \"svelte/store\"\n  import { mdiCheck, mdiLockReset, mdiLogin, mdiRepeat } from \"@mdi/js\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import StatusPill from \"@kontextwerk/web-sdk/ui/display/StatusPill.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import ProgressSteps, {\n    type ProgressStep,\n  } from \"@kontextwerk/web-sdk/ui/navigation/ProgressSteps.svelte\"\n  import {\n    evaluatePasswordStrength,\n    validatePasswordComplexity,\n    type ContextRecovery,\n  } from \"../../../../_logic/authentication\"\n\n  let { recovery, onCancel }: { recovery: ContextRecovery; onCancel: () => void } = $props()\n  const owner = untrack(() => recovery)\n  const view = fromStore(owner.state)\n  let email = $state(\"\")\n  let code = $state(\"\")\n  let password = $state(\"\")\n  let confirmation = $state(\"\")\n  let localError = $state<string | null>(null)\n  let requestForm: HTMLFormElement | undefined = $state()\n  let verifyForm: HTMLFormElement | undefined = $state()\n  let confirmForm: HTMLFormElement | undefined = $state()\n\n  const busy = $derived(view.current.pending)\n  const completed = $derived(\n    view.current.step === \"complete\" || view.current.step === \"cleanup-pending\",\n  )\n  const activeStepIndex = $derived(\n    view.current.step === \"request\" ? 0 : view.current.step === \"code\" ? 1 : 2,\n  )\n  const strength = $derived(evaluatePasswordStrength(password))\n  const infoMessage = $derived(\n    view.current.step === \"code\"\n      ? \"Wenn die Adresse einem aktiven Konto zugeordnet ist, wird Ihnen ein Code zugesendet. Er ist ab Anforderung 15 Minuten gültig.\"\n      : view.current.step === \"password\"\n        ? \"Code bestätigt. Jetzt neues Passwort setzen.\"\n        : null,\n  )\n  const errorMessage = $derived(localError ?? view.current.error)\n  const steps: ProgressStep[] = $derived([\n    {\n      id: \"request\",\n      label: \"Code anfordern\",\n      type: \"index\",\n      hideDefaultAction: true,\n      workflowState: activeStepIndex === 0 && !completed ? \"current\" : \"completed\",\n      progressStatus: completed ? \"done\" : undefined,\n      snippet: requestSnippet,\n    },\n    {\n      id: \"verify\",\n      label: \"Code bestätigen\",\n      type: \"index\",\n      hideDefaultAction: true,\n      workflowState:\n        activeStepIndex < 1\n          ? \"locked\"\n          : activeStepIndex === 1 && !completed\n            ? \"current\"\n            : \"completed\",\n      progressStatus: completed ? \"done\" : undefined,\n      snippet: verifySnippet,\n    },\n    {\n      id: \"confirm\",\n      label: \"Neues Passwort\",\n      type: \"finish\",\n      hideDefaultAction: true,\n      workflowState: activeStepIndex < 2 ? \"locked\" : \"current\",\n      progressStatus: completed ? \"done\" : undefined,\n      snippet: confirmSnippet,\n    },\n  ])\n\n  const submitRequest = (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (busy || !requestForm?.checkValidity()) return\n\n    localError = null\n    const address = email.trim()\n\n    if (!address) return\n\n    void owner.request(address)\n  }\n\n  const submitVerify = (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (busy || !verifyForm?.checkValidity()) return\n\n    localError = null\n    const address = email.trim()\n    const normalizedCode = code.trim()\n\n    if (!address || !/^[0-9]{6,32}$/.test(normalizedCode)) return\n\n    code = \"\"\n    void owner.verify(normalizedCode, address)\n  }\n\n  const resendCode = () => {\n    if (busy) return\n\n    const emailField = verifyForm?.querySelector<HTMLInputElement>(\"#reset-verify-email\")\n\n    if (emailField && !emailField.reportValidity()) return\n\n    const address = email.trim()\n\n    if (!address) return\n\n    localError = null\n    code = \"\"\n    void owner.request(address)\n  }\n\n  const submitConfirm = (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (busy || !confirmForm?.checkValidity()) return\n\n    localError = null\n    const complexityError = validatePasswordComplexity(password)\n\n    if (complexityError) {\n      localError = complexityError\n\n      return\n    }\n\n    if (password !== confirmation) {\n      localError = \"Die Passwörter stimmen nicht überein.\"\n\n      return\n    }\n\n    const value = password\n    password = \"\"\n    confirmation = \"\"\n    void owner.confirm(value)\n  }\n\n  let previousStep = \"request\"\n  // effect-ok: external-runtime -- clear DOM-held credentials when the anonymous proof is lost.\n  $effect(() => {\n    const step = view.current.step\n\n    if (step !== \"password\") {\n      password = \"\"\n      confirmation = \"\"\n    }\n\n    if (step !== \"code\") code = \"\"\n\n    if (\n      (step !== \"request\" && step !== \"code\") ||\n      (previousStep !== \"request\" && step === \"request\")\n    ) {\n      email = \"\"\n    }\n\n    if (step !== previousStep) localError = null\n\n    previousStep = step\n  })\n\n  onMount(() => {\n    const timer = setInterval(owner.expire, 1000)\n\n    return () => {\n      clearInterval(timer)\n      email = \"\"\n      code = \"\"\n      password = \"\"\n      confirmation = \"\"\n      owner.reset()\n    }\n  })\n</script>\n\n<div class=\"reset-flow\" role=\"region\" aria-label=\"Passwort zurücksetzen\" aria-busy={busy}>\n  <ProgressSteps\n    {steps}\n    showControls={false}\n    syncUrl={false}\n    navigationMode={completed ? \"free\" : \"guarded\"}\n    statusMode={completed ? \"explicit\" : \"linear\"}\n    selectedIndex={activeStepIndex}\n    onSelectedIndexChange={(index) => {\n      if (!busy && !completed && index === 0 && activeStepIndex > 0) owner.reset()\n    }}\n  />\n\n  {#if infoMessage}\n    <p class=\"info\" role=\"status\">{infoMessage}</p>\n  {/if}\n  {#if errorMessage}\n    <p class=\"error\" role=\"alert\">{errorMessage}</p>\n  {/if}\n</div>\n\n{#snippet requestSnippet()}\n  <form\n    class=\"form dark reset-form\"\n    bind:this={requestForm}\n    onsubmit={submitRequest}\n    autocomplete=\"on\"\n    aria-label=\"Passwortwiederherstellung\"\n    aria-busy={busy}\n  >\n    <div class=\"row single\">\n      <Input\n        placeholder=\"E-Mail\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"email\"\n        id=\"reset-email\"\n        type=\"email\"\n        required\n        maxlength={320}\n        bind:value={email}\n        disabled={busy}\n      />\n    </div>\n    <div class=\"row single\">\n      <div class=\"form-actions\">\n        <CTA\n          icon={mdiLockReset}\n          type=\"primaryButton\"\n          darkMode={false}\n          content=\"Code senden\"\n          disabled={busy}\n          onClick={(event: MouseEvent) => {\n            event.preventDefault()\n            requestForm?.requestSubmit()\n          }}\n        />\n      </div>\n    </div>\n    <button type=\"submit\" class=\"submit-proxy\" tabindex=\"-1\" aria-hidden=\"true\" disabled={busy}\n    ></button>\n  </form>\n{/snippet}\n\n{#snippet verifySnippet()}\n  <form\n    class=\"form dark reset-form\"\n    bind:this={verifyForm}\n    onsubmit={submitVerify}\n    aria-label=\"Passwortwiederherstellung\"\n    aria-busy={busy}\n  >\n    <div class=\"row single\">\n      <Input\n        placeholder=\"E-Mail\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"email\"\n        id=\"reset-verify-email\"\n        type=\"email\"\n        required\n        maxlength={320}\n        bind:value={email}\n        disabled={busy}\n      />\n    </div>\n    <div class=\"row single\">\n      <Input\n        placeholder=\"Bestätigungscode\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        inputmode=\"numeric\"\n        autocomplete=\"one-time-code\"\n        id=\"reset-code\"\n        pattern={\"[0-9]{6,32}\"}\n        required\n        minlength={6}\n        maxlength={32}\n        bind:value={code}\n        disabled={busy}\n      />\n    </div>\n    <div class=\"row single\">\n      <div class=\"form-actions with-secondary\">\n        <CTA\n          type=\"tertiaryButton\"\n          content=\"erneut senden\"\n          darkMode={false}\n          icon={mdiRepeat}\n          disabled={busy}\n          onClick={(event: MouseEvent) => {\n            event.preventDefault()\n            resendCode()\n          }}\n        />\n        <CTA\n          type=\"primaryButton\"\n          darkMode={false}\n          content=\"prüfen\"\n          icon={mdiCheck}\n          disabled={busy}\n          onClick={(event: MouseEvent) => {\n            event.preventDefault()\n            verifyForm?.requestSubmit()\n          }}\n        />\n      </div>\n    </div>\n    <button type=\"submit\" class=\"submit-proxy\" tabindex=\"-1\" aria-hidden=\"true\" disabled={busy}\n    ></button>\n  </form>\n{/snippet}\n\n{#snippet confirmSnippet()}\n  {#if view.current.step === \"complete\"}\n    <div class=\"terminal-state\">\n      <StatusPill tone=\"positive\" style=\"color: var(--text-invers-100);\"\n        >Passwort aktualisiert</StatusPill\n      >\n      <p class=\"info\" role=\"status\">\n        Ihr Passwort wurde geändert. Bitte melden Sie sich erneut an.\n      </p>\n      <div class=\"form-actions\">\n        <CTA\n          icon={mdiLogin}\n          type=\"primaryButton\"\n          darkMode={false}\n          content=\"Zur Anmeldung\"\n          onClick={onCancel}\n        />\n      </div>\n    </div>\n  {:else if view.current.step === \"cleanup-pending\"}\n    <div class=\"terminal-state\">\n      <StatusPill tone=\"positive\" style=\"color: var(--text-invers-100);\"\n        >Passwort aktualisiert</StatusPill\n      >\n      <p class=\"info\" role=\"status\">\n        Ihr Passwort wurde geändert. Die Sitzungsbereinigung ist noch nicht abgeschlossen. Bitte\n        melden Sie sich erneut an.\n      </p>\n      <div class=\"form-actions\">\n        <CTA\n          icon={mdiLogin}\n          type=\"primaryButton\"\n          darkMode={false}\n          content=\"Zur Anmeldung\"\n          onClick={onCancel}\n        />\n      </div>\n    </div>\n  {:else if view.current.step === \"uncertain\"}\n    <div class=\"terminal-state\">\n      <p class=\"error\" role=\"alert\">\n        Die Passwortänderung konnte nicht bestätigt werden. Sie wurde nicht wiederholt. Bitte melden\n        Sie sich an oder starten Sie die Wiederherstellung erneut.\n      </p>\n      <div class=\"form-actions with-secondary\">\n        <CTA\n          type=\"tertiaryButton\"\n          darkMode={false}\n          content=\"Erneut beginnen\"\n          onClick={() => owner.reset()}\n        />\n        <CTA\n          icon={mdiLogin}\n          type=\"primaryButton\"\n          darkMode={false}\n          content=\"Zur Anmeldung\"\n          onClick={onCancel}\n        />\n      </div>\n    </div>\n  {:else if view.current.step === \"expired\"}\n    <div class=\"terminal-state\">\n      <p class=\"error\" role=\"alert\">Die Bestätigung ist abgelaufen.</p>\n      <div class=\"form-actions\">\n        <CTA\n          type=\"secondaryButton\"\n          darkMode={false}\n          content=\"Erneut beginnen\"\n          onClick={() => owner.reset()}\n        />\n      </div>\n    </div>\n  {:else}\n    <form\n      class=\"form dark reset-form\"\n      bind:this={confirmForm}\n      onsubmit={submitConfirm}\n      aria-label=\"Passwortwiederherstellung\"\n      aria-busy={busy}\n    >\n      <div class=\"row\">\n        <Input\n          placeholder=\"Neues Passwort\"\n          type=\"password-native\"\n          surfaceTone=\"light\"\n          style=\"--kw-input-placeholder: var(--text-invers-100);\"\n          clearable={false}\n          autocomplete=\"new-password\"\n          id=\"reset-password\"\n          required\n          minlength={12}\n          maxlength={128}\n          bind:value={password}\n          disabled={busy}\n        />\n        <Input\n          placeholder=\"Passwort bestätigen\"\n          type=\"password-native\"\n          surfaceTone=\"light\"\n          style=\"--kw-input-placeholder: var(--text-invers-100);\"\n          clearable={false}\n          autocomplete=\"new-password\"\n          id=\"reset-password-confirm\"\n          required\n          minlength={12}\n          maxlength={128}\n          bind:value={confirmation}\n          disabled={busy}\n        />\n      </div>\n      {#if password}\n        <div\n          class=\"password-strength\"\n          class:invalid={strength.score === 0}\n          data-score={strength.score}\n          data-testid=\"auth.passwordStrength\"\n        >\n          <div class=\"bar\" aria-hidden=\"true\">\n            {#each [0, 1, 2, 3] as segment}\n              <span\n                class:active={segment < strength.score}\n                class:rejected={strength.score === 0 && segment === 0}\n              ></span>\n            {/each}\n          </div>\n          <div class=\"copy\">\n            <strong>{strength.label}</strong>\n            {#if strength.hints.length}\n              <small>{strength.hints.join(\" \")}</small>\n            {/if}\n          </div>\n        </div>\n      {/if}\n      <div class=\"row single\">\n        <div class=\"form-actions\">\n          <CTA\n            icon={mdiLogin}\n            type=\"primaryButton\"\n            darkMode={false}\n            content=\"Passwort speichern\"\n            disabled={busy}\n            onClick={(event: MouseEvent) => {\n              event.preventDefault()\n              confirmForm?.requestSubmit()\n            }}\n          />\n        </div>\n      </div>\n      <button type=\"submit\" class=\"submit-proxy\" tabindex=\"-1\" aria-hidden=\"true\" disabled={busy}\n      ></button>\n    </form>\n  {/if}\n{/snippet}\n\n<style>\n  .reset-flow {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n    color: var(--text-invers-100);\n  }\n  .reset-form {\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n    box-sizing: border-box;\n  }\n  .terminal-state {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n  }\n  .info,\n  .error {\n    margin: 0;\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n  .error {\n    color: var(--primary-100);\n    font-weight: 600;\n  }\n  .form-actions {\n    display: flex;\n    width: 100%;\n    justify-content: flex-end;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 0.8rem;\n    margin-top: 1.2rem;\n  }\n  .form-actions.with-secondary {\n    justify-content: space-between;\n  }\n  .password-strength {\n    display: flex;\n    flex-direction: column;\n    gap: 0.35rem;\n    width: 100%;\n  }\n  .bar {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 0.25rem;\n    height: 0.35rem;\n  }\n  .bar span {\n    border-radius: 999px;\n    background: color-mix(in srgb, var(--text-invers-100) 16%, transparent);\n  }\n  .bar span.active {\n    background: var(--green-200, #0c796c);\n  }\n  .bar span.rejected {\n    background: var(--primary-100);\n  }\n  .password-strength.invalid .copy strong,\n  .password-strength.invalid .copy small {\n    color: var(--primary-100);\n    opacity: 1;\n  }\n  .copy {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 0.5rem;\n    color: var(--text-invers-100);\n    font-size: 0.85rem;\n    line-height: 1.35;\n  }\n  .copy small {\n    color: var(--text-invers-100);\n    opacity: 0.82;\n  }\n  .submit-proxy {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n</style>\n","import { get, writable } from \"svelte/store\"\nimport type { ConversationHistory } from \"./history\"\nexport const apiBaseOverride = writable<string | null>(null)\n\nexport const isOnHomepage = writable<boolean>(false)\nexport const rerender = writable<number>(0)\n\nexport const selectedProjectId = writable<string | null>(null)\n\nexport const ensureProperHistory = () => {\n  let _conversationHistory = get(conversationHistory)\n\n  if (!_conversationHistory) {\n    _conversationHistory = { events: [], streaming: [] }\n  }\n\n  if (!_conversationHistory.streaming) {\n    _conversationHistory.streaming = []\n  }\n\n  if (_conversationHistory.graph_cursor === undefined) {\n    _conversationHistory.graph_cursor = null\n  }\n\n  conversationHistory.set(_conversationHistory)\n}\nexport const conversationHistory = writable<ConversationHistory | null>()\n\nexport const graphNodeIds = writable<string[]>([])\nexport function setGraphNodeIds(ids: Iterable<string>) {\n  const unique = Array.from(new Set(ids))\n  graphNodeIds.set(unique)\n}\n","export type SessionMode = \"voice\" | \"chat\"\n\ntype RuntimeProcess = {\n  env?: Record<string, string | undefined>\n}\n\nconst API_BASE_STORAGE_KEY = \"werk-admin:api-base-url\"\nconst SESSION_MODE_STORAGE_KEY = \"werk-admin:session-mode\"\n\nconst SAMPLE_RATE = 24_000\nconst BUFFER_SIZE = 4_800\n\nconst isLocalHostname = (hostname: string): boolean =>\n  hostname === \"localhost\" ||\n  hostname === \"127.0.0.1\" ||\n  hostname.endsWith(\".localhost\") ||\n  hostname.endsWith(\".local\")\n\nconst sanitizeDomain = (value: string | undefined | null): string | null => {\n  if (!value) return null\n\n  const cleaned = value.trim()\n\n  if (!cleaned) return null\n\n  const withoutScheme = cleaned.replace(/^[a-z]+:\\/\\//i, \"\").replace(/^\\/\\//, \"\")\n  const hostOnly = withoutScheme.split(\"/\")[0]\n\n  return hostOnly || null\n}\n\nconst readProcessEnv = (): Record<string, string | undefined> | null => {\n  if (typeof globalThis === \"undefined\" || !globalThis) return null\n\n  const runtime = (globalThis as typeof globalThis & { process?: RuntimeProcess }).process\n\n  return runtime?.env ?? null\n}\n\nconst readEnv = (...keys: string[]): string | undefined => {\n  const env = readProcessEnv()\n\n  if (!env) return undefined\n\n  for (const key of keys) {\n    const value = env[key]\n\n    if (typeof value === \"string\" && value.length > 0) {\n      return value\n    }\n  }\n\n  return undefined\n}\n\nconst rawFallbackDomain = readEnv(\"CONTROL_DOMAIN\", \"DOMAIN\", \"HOST_DOMAIN\") ?? null\nconst FALLBACK_DOMAIN = sanitizeDomain(rawFallbackDomain) ?? \"kontextwerk.org\"\nconst FALLBACK_CONTROL_HOST = FALLBACK_DOMAIN.startsWith(\"control-server.\")\n  ? FALLBACK_DOMAIN\n  : `control-server.${FALLBACK_DOMAIN}`\nconst FALLBACK_HTTP_SCHEME = isLocalHostname(FALLBACK_DOMAIN) ? \"http\" : \"https\"\nconst FALLBACK_WS_SCHEME = FALLBACK_HTTP_SCHEME === \"https\" ? \"wss\" : \"ws\"\n\nconst FALLBACK_HTTP_BASE = `${FALLBACK_HTTP_SCHEME}://${FALLBACK_CONTROL_HOST}/api/v1`\nconst FALLBACK_WS_BASE = `${FALLBACK_WS_SCHEME}://${FALLBACK_CONTROL_HOST}/api/v1/voicebot/ws`\n\nconst deriveBaseDomain = (hostname: string): string => {\n  const parts = hostname.split(\".\").filter(Boolean)\n\n  if (parts.length <= 2) return hostname\n\n  const last = parts[parts.length - 1]\n  const secondLast = parts[parts.length - 2]\n  const isCountryTld = last.length === 2\n  const commonSecondLevel = [\"co\", \"com\", \"net\", \"org\", \"gov\", \"edu\", \"ac\"]\n  const isSecondLevelTld = commonSecondLevel.includes(secondLast)\n\n  // Handle apex domains like \"example.co.uk\" where dropping the first label would be wrong.\n  if (parts.length === 3 && isCountryTld && isSecondLevelTld) {\n    return hostname\n  }\n\n  return parts.slice(1).join(\".\")\n}\n\nconst deriveControlHost = (hostname: string, protocol: string, port = \"\"): string => {\n  const normalizedProtocol = protocol.endsWith(\":\") ? protocol : `${protocol}:`\n  const publicPortSuffix = port && !isLocalHostname(hostname) ? `:${port}` : \"\"\n\n  if (hostname === \"localhost\" || hostname === \"127.0.0.1\") {\n    return `${normalizedProtocol}//control-server.localhost`\n  }\n\n  if (hostname.startsWith(\"control-server.\")) {\n    return `${normalizedProtocol}//${hostname}${publicPortSuffix}`\n  }\n\n  if (hostname.includes(\".\")) {\n    const baseDomain = deriveBaseDomain(hostname)\n\n    if (baseDomain) return `${normalizedProtocol}//control-server.${baseDomain}${publicPortSuffix}`\n  }\n\n  return `${FALLBACK_HTTP_SCHEME}://${FALLBACK_CONTROL_HOST}`\n}\n\nconst sanitizeBase = (value: string | null | undefined): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return null\n\n  return trimmed.replace(/\\/+$/, \"\")\n}\n\nconst ensureApiSuffix = (base: string | null): string | null => {\n  if (!base) return null\n\n  const stripped = base.replace(/\\/+$/, \"\")\n\n  return stripped.endsWith(\"/api/v1\") ? stripped : `${stripped}/api/v1`\n}\n\nconst extractHostname = (value: string | null | undefined): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return null\n\n  const candidates = [trimmed]\n\n  if (!/^https?:\\/\\//i.test(trimmed)) {\n    candidates.unshift(`http://${trimmed.replace(/^\\/\\//, \"\")}`)\n  }\n\n  for (const candidate of candidates) {\n    try {\n      const url = new URL(candidate)\n\n      if (url.hostname) return url.hostname\n    } catch {\n      // try next candidate\n    }\n  }\n\n  return null\n}\n\nconst shouldUseConfiguredBase = (candidate: string | null): boolean => {\n  if (!candidate) return false\n\n  // Server-side/SSR: trust explicit configuration\n  if (typeof window === \"undefined\") return true\n\n  const host = extractHostname(candidate)\n\n  if (!host) return false\n\n  const cleanedHost = host.replace(/:\\d+$/, \"\")\n  const hostIsLocal = isLocalHostname(cleanedHost)\n  const hasPublicLabel = cleanedHost.includes(\".\")\n\n  // In browsers on non-local origins, ignore service-only hosts (e.g., \"control-server:8000\").\n  if (!isLocalHostname(window.location.hostname) && !hostIsLocal && !hasPublicLabel) {\n    return false\n  }\n\n  return true\n}\n\nconst resolveDefaultBase = (): string => {\n  if (typeof window !== \"undefined\") {\n    const { protocol, hostname, port } = window.location\n\n    return `${deriveControlHost(hostname, protocol, port)}/api/v1`\n  }\n\n  return FALLBACK_HTTP_BASE\n}\n\nconst readStoredBase = (): string | null => {\n  if (typeof window === \"undefined\") return null\n\n  try {\n    return sanitizeBase(window.localStorage?.getItem(API_BASE_STORAGE_KEY) ?? null)\n  } catch (err) {\n    console.warn(\"Failed to read stored API base URL\", err)\n\n    return null\n  }\n}\n\nconst enforceHttpsWhenPageSecure = (base: string | null): string | null => {\n  if (!base) return null\n\n  if (typeof window === \"undefined\") return base\n\n  if (window.location.protocol !== \"https:\") return base\n\n  try {\n    const url = new URL(base)\n\n    if (url.protocol === \"http:\") {\n      url.protocol = \"https:\"\n\n      return url.toString().replace(/\\/$/, \"\")\n    }\n\n    return base\n  } catch (err) {\n    console.warn(\"Failed to enforce https for API base URL\", err)\n\n    return base\n  }\n}\n\nconst envControlServerOrigin = sanitizeBase(readEnv(\"CONTROL_SERVER_ORIGIN\", \"BASE_API_URL\") ?? \"\")\n\nlet storedBase = sanitizeBase(readStoredBase())\n\nif (typeof window !== \"undefined\" && storedBase) {\n  try {\n    const storedHost = new URL(storedBase).hostname\n    const pageHost = window.location.hostname\n    const pageIsLocal =\n      pageHost === \"localhost\" || pageHost === \"127.0.0.1\" || pageHost.endsWith(\".localhost\")\n    const storedIsStrictLocal = [\"localhost\", \"127.0.0.1\"].includes(storedHost)\n    const storedIsLocalDomain = storedHost.endsWith(\".localhost\")\n\n    // If we're on a *.localhost page, drop stored bases that point to service names / other domains.\n    if (pageIsLocal && !(storedIsStrictLocal || storedIsLocalDomain)) {\n      storedBase = null\n    } else if (storedIsStrictLocal && (pageHost === \"localhost\" || pageHost === \"127.0.0.1\")) {\n      storedBase = null\n    } else if (pageIsLocal && storedIsLocalDomain) {\n      const pageDomain = pageHost.split(\".\").slice(1).join(\".\")\n      const storedDomain = storedHost.split(\".\").slice(1).join(\".\")\n\n      if (pageDomain && storedDomain && pageDomain !== storedDomain) {\n        storedBase = null\n      }\n    }\n  } catch {\n    storedBase = null\n  }\n}\n\n// Drop stored or injected bases that point to service-only hosts when we're running on a public origin.\nif (storedBase && !shouldUseConfiguredBase(storedBase)) {\n  storedBase = null\n}\n\nconst computeWsFromBase = (base: string | null): string | null => {\n  if (!base) return null\n\n  try {\n    const url = new URL(base.endsWith(\"/\") ? base : `${base}/`)\n    url.protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n    url.pathname = url.pathname.replace(/\\/+$/, \"\") + \"/voicebot/ws\"\n    url.search = \"\"\n    url.hash = \"\"\n\n    return url.toString().replace(/\\/$/, \"\")\n  } catch (err) {\n    console.warn(\"Failed to derive WS URL from base\", err)\n\n    return null\n  }\n}\n\nconst selectedBase =\n  enforceHttpsWhenPageSecure(\n    ensureApiSuffix(\n      storedBase ??\n        (shouldUseConfiguredBase(envControlServerOrigin) ? envControlServerOrigin : null) ??\n        sanitizeBase(resolveDefaultBase()) ??\n        FALLBACK_HTTP_BASE,\n    ),\n  ) ?? FALLBACK_HTTP_BASE\nconst baseAPIURL = selectedBase\n\nconst derivedWS =\n  computeWsFromBase(baseAPIURL) ?? computeWsFromBase(resolveDefaultBase()) ?? FALLBACK_WS_BASE\nconst WS_URL = derivedWS\n\nconst sanitizeMode = (value: string | null | undefined): SessionMode | null => {\n  if (!value) return null\n\n  const normalized = value.trim().toLowerCase()\n\n  if (normalized === \"chat\") return \"chat\"\n\n  if ([\"voice\", \"call\", \"dev\"].includes(normalized)) return \"voice\"\n\n  return null\n}\n\nconst readStoredMode = (): SessionMode | null => {\n  if (typeof window === \"undefined\") return null\n\n  try {\n    const raw = window.localStorage?.getItem(SESSION_MODE_STORAGE_KEY) ?? null\n\n    return sanitizeMode(raw)\n  } catch (err) {\n    console.warn(\"Failed to read stored session mode\", err)\n\n    return null\n  }\n}\n\nconst sessionMode: SessionMode = readStoredMode() ?? \"voice\"\n\nexport {\n  WS_URL,\n  SAMPLE_RATE,\n  BUFFER_SIZE,\n  baseAPIURL,\n  API_BASE_STORAGE_KEY,\n  SESSION_MODE_STORAGE_KEY,\n  sessionMode,\n}\n","const DEFAULT_PREFIX = \"/api/v1\"\n\nexport type BaseConfig = {\n  baseUrl: string\n  apiPrefix: string\n}\n\nconst normalizePrefix = (value: string): string => {\n  const trimmed = value.trim().replace(/\\/+$/, \"\")\n\n  if (!trimmed || trimmed === \"/\") {\n    return DEFAULT_PREFIX\n  }\n\n  return trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`\n}\n\nexport const splitBaseUrl = (raw: string): BaseConfig => {\n  const normalized = raw.trim().replace(/\\/+$/, \"\")\n  const candidates = [normalized]\n\n  if (!/^https?:\\/\\//i.test(normalized)) {\n    candidates.unshift(`http://${normalized.replace(/^\\/\\//, \"\")}`)\n  }\n\n  for (const candidate of candidates) {\n    try {\n      const parsed = new URL(candidate)\n\n      if (![\"http:\", \"https:\"].includes(parsed.protocol)) {\n        continue\n      }\n\n      return {\n        baseUrl: parsed.origin,\n        apiPrefix: normalizePrefix(parsed.pathname),\n      }\n    } catch {\n      // try next candidate\n    }\n  }\n\n  return {\n    baseUrl: normalized || \"http://localhost:8000\",\n    apiPrefix: DEFAULT_PREFIX,\n  }\n}\n\nexport const buildApiUrl = (baseUrl: string, apiPrefix: string, path: string): string => {\n  const normalizedBase = baseUrl.replace(/\\/+$/, \"\")\n  const normalizedPrefix = normalizePrefix(apiPrefix)\n  const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`\n\n  return `${normalizedBase}${normalizedPrefix}${normalizedPath}`\n}\n\nexport { DEFAULT_PREFIX }\n","import { get } from \"svelte/store\"\nimport { ControlWebClient } from \"@kontextwerk/control-web-client\"\nimport { apiBaseOverride } from \"../../../../_shared/_logic/runtime-state\"\nimport { baseAPIURL } from \"../../../../_shared/_logic/runtime-config\"\nimport { buildApiUrl, splitBaseUrl, type BaseConfig } from \"../base-url\"\nimport {\n  captureControlContext,\n  rejectControlContext,\n} from \"../../../../_shared/_logic/authentication\"\n\nlet cachedClient: ControlWebClient | null = null\nlet cachedBase = \"\"\nlet cachedPrefix = \"\"\n\nconst resolveBase = (): BaseConfig => {\n  const override = get(apiBaseOverride)\n  const rawBase = (override && override.trim()) || baseAPIURL\n\n  return splitBaseUrl(rawBase)\n}\n\nconst statusOf = (error: unknown): number | undefined =>\n  (error as { statusCode?: number; status?: number } | null)?.statusCode ??\n  (error as { status?: number } | null)?.status\n\nexport type AdminApiConfig = BaseConfig\n\nexport const getAdminApiConfig = (): AdminApiConfig => {\n  const { baseUrl, apiPrefix } = resolveBase()\n\n  return {\n    baseUrl,\n    apiPrefix,\n  }\n}\n\nexport const buildAdminApiUrl = (path: string): string => {\n  const { baseUrl, apiPrefix } = resolveBase()\n\n  return buildApiUrl(baseUrl, apiPrefix, path)\n}\n\n/**\n * Shared business transport. Every authenticated request is bound to the confirmed V2 context of\n * the active root when it starts; without one it never leaves the tab. Writes always carry the\n * initiating session pair and are never replayed. A 401 tells the root to drop protected state.\n */\nexport const getControlWebClient = (): ControlWebClient => {\n  const { baseUrl, apiPrefix } = resolveBase()\n\n  if (!cachedClient || cachedBase !== baseUrl || cachedPrefix !== apiPrefix) {\n    cachedClient = new ControlWebClient({\n      baseUrl,\n      apiPrefix,\n      contextBinding: \"required\",\n      captureContext: captureControlContext,\n      onError: (error) => {\n        if (statusOf(error) === 401) rejectControlContext()\n      },\n    })\n    cachedBase = baseUrl\n    cachedPrefix = apiPrefix\n  }\n\n  return cachedClient\n}\n\nexport const getAdminApi = () => getControlWebClient().admin\n\nexport const getPublicApi = () => getControlWebClient().public\n","import {\n  buildSwitchSessionContextRequest,\n  createContextMutationPrecondition,\n  parseContextSession,\n  type ContextSessionResponse,\n} from \"@kontextwerk/control-web-client\"\nimport { getAdminApi } from \"../client/control/http-client\"\n\nexport type SupportDelegationTargetRoleKind = \"owner\" | \"admin\" | \"member\" | \"custom\"\n\nexport type SupportDelegationTarget = Readonly<{\n  membership_id: string\n  user_id: string\n  email: string\n  first_name: string | null\n  last_name: string | null\n  role_id: string\n  role_name: string\n  role_kind: SupportDelegationTargetRoleKind\n}>\n\nexport type SupportDelegationTargetListResponse = Readonly<{\n  items: readonly SupportDelegationTarget[]\n}>\n\nexport type SupportDelegationRecord = Readonly<{\n  id: string\n  product_issuer: string\n  staff_assignment_id: string\n  staff_revision: number\n  staff_user_id: string\n  organization_id: string\n  membership_id: string\n  membership_revision: number\n  role_id: string\n  role_revision: number\n  reason: string\n  started_at: string\n  expires_at: string\n  activated_at: string | null\n  revoked_at: string | null\n  revoked_by_user_id: string | null\n}>\n\nexport type SupportDelegationRequestOptions = Readonly<{\n  signal?: AbortSignal\n  isCurrent?: () => boolean\n}>\n\nexport type SupportDelegationPreconditionInput = Readonly<{\n  expectedSessionId: string\n  expectedContextRevision: number\n}>\n\nexport type StartSupportDelegationPayload = Readonly<{\n  organizationId: string\n  membershipId: string\n  reason: string\n  expiresAt?: string\n  expectedSessionId: string\n  expectedContextRevision: number\n}>\n\nexport type StartSupportDelegationResult = Readonly<{\n  session: ContextSessionResponse\n  delegation: SupportDelegationRecord\n}>\n\nexport type RevokeSupportDelegationResult = Readonly<{\n  delegation: SupportDelegationRecord\n  changed: boolean\n}>\n\ntype RawStartSupportDelegationResponse = {\n  session: unknown\n  delegation: SupportDelegationRecord\n}\n\n/** Keep a 5s safety margin below the 2h server cap so minor clock skew never rejects the request. */\nexport const DEFAULT_SUPPORT_DELEGATION_LIFETIME_MS = 2 * 60 * 60 * 1000 - 5_000\n\nexport const listSupportDelegationTargets = (\n  organizationId: string,\n  options: SupportDelegationRequestOptions = {},\n): Promise<SupportDelegationTargetListResponse> =>\n  getAdminApi().raw.request<SupportDelegationTargetListResponse>(\n    \"GET\",\n    `/platform/organizations/${encodeURIComponent(organizationId)}/support-targets`,\n    {\n      signal: options.signal,\n      isCurrent: options.isCurrent,\n      retry: \"never\",\n    },\n  )\n\nexport const startSupportDelegation = async (\n  payload: StartSupportDelegationPayload,\n  options: SupportDelegationRequestOptions = {},\n): Promise<StartSupportDelegationResult> => {\n  const precondition = createContextMutationPrecondition({\n    expected_session_id: payload.expectedSessionId,\n    expected_context_revision: payload.expectedContextRevision,\n  })\n  const expiresAt =\n    payload.expiresAt ?? new Date(Date.now() + DEFAULT_SUPPORT_DELEGATION_LIFETIME_MS).toISOString()\n\n  const raw = await getAdminApi().raw.request<RawStartSupportDelegationResponse>(\n    \"POST\",\n    \"/platform/support-delegations\",\n    {\n      signal: options.signal,\n      isCurrent: options.isCurrent,\n      retry: \"never\",\n      requireCsrf: true,\n      mutationContext: precondition,\n      json: {\n        organization_id: payload.organizationId,\n        membership_id: payload.membershipId,\n        reason: payload.reason,\n        expires_at: expiresAt,\n        expected_session_id: precondition.expected_session_id,\n        expected_context_revision: precondition.expected_context_revision,\n      },\n    },\n  )\n\n  return {\n    session: parseContextSession(raw.session),\n    delegation: raw.delegation,\n  }\n}\n\nexport const revokeSupportDelegation = (\n  delegationId: string,\n  preconditionInput: SupportDelegationPreconditionInput,\n  options: SupportDelegationRequestOptions = {},\n): Promise<RevokeSupportDelegationResult> => {\n  const precondition = createContextMutationPrecondition({\n    expected_session_id: preconditionInput.expectedSessionId,\n    expected_context_revision: preconditionInput.expectedContextRevision,\n  })\n\n  return getAdminApi().raw.request<RevokeSupportDelegationResult>(\n    \"DELETE\",\n    `/platform/support-delegations/${encodeURIComponent(delegationId)}`,\n    {\n      signal: options.signal,\n      isCurrent: options.isCurrent,\n      retry: \"never\",\n      requireCsrf: true,\n      mutationContext: precondition,\n    },\n  )\n}\n\nexport const switchToPlatformContextAfterDelegation = async (\n  assignmentId: string,\n  preconditionInput: SupportDelegationPreconditionInput,\n  options: SupportDelegationRequestOptions = {},\n): Promise<ContextSessionResponse> => {\n  const precondition = createContextMutationPrecondition({\n    expected_session_id: preconditionInput.expectedSessionId,\n    expected_context_revision: preconditionInput.expectedContextRevision,\n  })\n  const body = buildSwitchSessionContextRequest(\n    {\n      kind: \"platform\",\n      assignment_id: assignmentId,\n    },\n    precondition,\n  )\n\n  const raw = await getAdminApi().raw.request<unknown>(\"POST\", \"/auth/context\", {\n    signal: options.signal,\n    isCurrent: options.isCurrent,\n    retry: \"never\",\n    requireCsrf: true,\n    mutationContext: precondition,\n    json: body,\n  })\n\n  return parseContextSession(raw)\n}\n","export type ApiFieldError = {\n  field?: string\n  message?: string\n  type?: string\n  code?: string\n}\n\nexport type NormalizedApiError = {\n  message: string\n  statusCode?: number\n  statusText?: string\n  reasonCode?: string\n  requestId?: string\n  fieldErrors: ApiFieldError[]\n  detail?: unknown\n  responseText?: string\n  raw?: unknown\n}\n\nexport type ErrorMessageOptions = {\n  statusCode?: number\n  statusText?: string\n  fallback?: string\n}\n\nconst STATUS_FALLBACKS: Record<number, string> = {\n  400: \"Ungültige Anfrage.\",\n  401: \"Nicht angemeldet oder Sitzung abgelaufen.\",\n  403: \"Keine Berechtigung für diese Aktion.\",\n  404: \"Die angeforderte Ressource wurde nicht gefunden.\",\n  405: \"Diese Aktion ist hier nicht erlaubt.\",\n  409: \"Konflikt mit dem aktuellen Datenstand.\",\n  410: \"Die angeforderte Ressource ist nicht mehr verfügbar.\",\n  412: \"Vorbedingung für diese Aktion ist nicht erfüllt.\",\n  413: \"Die Anfrage ist zu groß.\",\n  415: \"Dieses Format wird nicht unterstützt.\",\n  422: \"Bitte prüfen Sie die markierten Felder.\",\n  429: \"Zu viele Anfragen. Bitte kurz warten.\",\n  500: \"Interner Serverfehler. Bitte später erneut versuchen.\",\n  502: \"Dienst aktuell nicht erreichbar.\",\n  503: \"Dienst vorübergehend nicht verfügbar.\",\n  504: \"Zeitüberschreitung bei der Anfrage.\",\n}\n\nconst SIMPLE_STATUS_TEXTS = new Set(\n  [\n    \"bad request\",\n    \"unauthorized\",\n    \"forbidden\",\n    \"not found\",\n    \"method not allowed\",\n    \"conflict\",\n    \"unprocessable entity\",\n    \"too many requests\",\n    \"internal server error\",\n    \"bad gateway\",\n    \"service unavailable\",\n    \"gateway timeout\",\n  ].map((entry) => entry.toLowerCase()),\n)\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n  typeof value === \"object\" && value !== null && !Array.isArray(value)\n\nconst textValue = (value: unknown): string | null => {\n  if (value === null || value === undefined) return null\n\n  if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n    const text = String(value).trim()\n\n    return text ? text : null\n  }\n\n  return null\n}\n\nconst normalizeReasonCode = (value: unknown): string | undefined => {\n  const text = textValue(value)\n\n  return text ? text.replace(/[-\\s]+/g, \"_\").toLowerCase() : undefined\n}\n\nconst formatLoc = (value: unknown): string | undefined => {\n  if (Array.isArray(value)) {\n    const joined = value\n      .map((part) => textValue(part))\n      .filter((part): part is string => Boolean(part))\n      .filter((part) => ![\"body\", \"query\", \"path\"].includes(part.toLowerCase()))\n      .join(\".\")\n\n    return joined || undefined\n  }\n\n  return textValue(value) ?? undefined\n}\n\nconst statusFallback = (statusCode?: number, statusText?: string): string | null => {\n  if (statusCode && STATUS_FALLBACKS[statusCode]) return STATUS_FALLBACKS[statusCode]\n\n  if (statusCode) {\n    if (statusCode >= 500) return STATUS_FALLBACKS[500]\n\n    if (statusCode >= 400) return \"Die Anfrage konnte nicht verarbeitet werden.\"\n  }\n\n  const text = (statusText ?? \"\").trim()\n\n  if (!text) return null\n\n  if (SIMPLE_STATUS_TEXTS.has(text.toLowerCase())) return null\n\n  return text\n}\n\nconst isMeaninglessMessage = (value: string): boolean => {\n  const normalized = value.trim().toLowerCase()\n\n  if (!normalized) return true\n\n  if (SIMPLE_STATUS_TEXTS.has(normalized)) return true\n\n  if (/^\\d{3}$/.test(normalized)) return true\n\n  if (/^\\d{3}\\s+[a-z ]+$/.test(normalized)) return true\n\n  return false\n}\n\nconst collectMessages = (detail: unknown, bag: Set<string>) => {\n  const primitive = textValue(detail)\n\n  if (primitive) {\n    bag.add(primitive)\n\n    return\n  }\n\n  if (Array.isArray(detail)) {\n    detail.forEach((entry) => collectMessages(entry, bag))\n\n    return\n  }\n\n  if (!isRecord(detail)) return\n\n  const field = formatLoc(detail.loc) ?? textValue(detail.field) ?? undefined\n  const direct = textValue(detail.msg ?? detail.message ?? detail.error ?? detail.reason)\n\n  if (direct) {\n    bag.add(field ? `${field}: ${direct}` : direct)\n  }\n\n  const nestedError = detail.error\n\n  if (isRecord(nestedError)) {\n    collectMessages(nestedError, bag)\n  }\n\n  if (\"detail\" in detail && detail.detail !== detail) {\n    collectMessages(detail.detail, bag)\n  }\n\n  const fieldErrors = detail.field_errors ?? detail.fieldErrors ?? detail.errors\n\n  if (fieldErrors !== detail) {\n    collectMessages(fieldErrors, bag)\n  }\n}\n\nconst normalizeFieldErrors = (value: unknown): ApiFieldError[] => {\n  if (!Array.isArray(value)) return []\n\n  return value\n    .map((entry): ApiFieldError | null => {\n      if (!isRecord(entry)) return null\n\n      const field = formatLoc(entry.field ?? entry.loc)\n      const message = textValue(entry.message ?? entry.msg)\n      const type = textValue(entry.type)\n      const code = normalizeReasonCode(entry.code)\n\n      if (!field && !message && !type && !code) return null\n\n      const item: ApiFieldError = {}\n\n      if (field) item.field = field\n\n      if (message) item.message = message\n\n      if (type) item.type = type\n\n      if (code) item.code = code\n\n      return item\n    })\n    .filter((entry): entry is ApiFieldError => Boolean(entry))\n}\n\nconst resolvePayloadMessage = (\n  detail: unknown,\n  fieldErrors: ApiFieldError[],\n  options: ErrorMessageOptions = {},\n): string => {\n  if (fieldErrors.length && options.statusCode === 422) {\n    return resolveApiErrorMessage(fieldErrors, options)\n  }\n\n  return resolveApiErrorMessage(detail, options)\n}\n\nconst readReasonCode = (payload: unknown): string | undefined => {\n  if (!isRecord(payload)) return undefined\n\n  return (\n    normalizeReasonCode(payload.reason_code) ??\n    normalizeReasonCode(payload.reasonCode) ??\n    normalizeReasonCode(payload.code) ??\n    (isRecord(payload.error)\n      ? normalizeReasonCode(payload.error.code ?? payload.error.reason_code)\n      : undefined)\n  )\n}\n\nconst readRequestId = (payload: unknown, headers?: Headers): string | undefined => {\n  if (isRecord(payload)) {\n    const fromPayload =\n      textValue(payload.request_id) ??\n      textValue(payload.requestId) ??\n      (isRecord(payload.error)\n        ? textValue(payload.error.request_id ?? payload.error.requestId)\n        : null)\n\n    if (fromPayload) return fromPayload\n  }\n\n  return headers?.get(\"x-request-id\")?.trim() || undefined\n}\n\nconst readDetail = (payload: unknown): unknown => {\n  if (isRecord(payload) && Object.prototype.hasOwnProperty.call(payload, \"detail\")) {\n    return payload.detail\n  }\n\n  return payload\n}\n\nexport const resolveApiErrorMessage = (\n  detail: unknown,\n  options: ErrorMessageOptions = {},\n): string => {\n  const bag = new Set<string>()\n  collectMessages(detail, bag)\n  const candidates = [...bag].map((entry) => entry.trim()).filter(Boolean)\n  const meaningful = candidates.filter((entry) => !isMeaninglessMessage(entry))\n\n  if (meaningful.length) return meaningful.slice(0, 5).join(\"; \")\n\n  const fallback = textValue(options.fallback)\n\n  if (fallback) return fallback\n\n  return statusFallback(options.statusCode, options.statusText) ?? \"Ein Fehler ist aufgetreten.\"\n}\n\nexport const normalizeApiError = (\n  error: unknown,\n  options: ErrorMessageOptions = {},\n): NormalizedApiError => {\n  if (error instanceof Error) {\n    const maybeRecord = error as Error & Record<string, unknown>\n    const detail = maybeRecord.detail ?? maybeRecord.payload ?? error.message\n    const fieldErrors = normalizeFieldErrors(maybeRecord.fieldErrors ?? maybeRecord.field_errors)\n\n    return {\n      message: resolvePayloadMessage(detail, fieldErrors, {\n        ...options,\n        fallback: error.message,\n      }),\n      statusCode:\n        typeof maybeRecord.statusCode === \"number\" ? maybeRecord.statusCode : options.statusCode,\n      statusText: options.statusText,\n      reasonCode: readReasonCode(maybeRecord),\n      requestId: textValue(maybeRecord.requestId ?? maybeRecord.request_id) ?? undefined,\n      fieldErrors,\n      detail,\n      raw: error,\n    }\n  }\n\n  if (isRecord(error) && (\"message\" in error || \"detail\" in error || \"reason_code\" in error)) {\n    const detail = readDetail(error)\n    const fieldErrors = normalizeFieldErrors(\n      error.field_errors ?? error.fieldErrors ?? error.errors,\n    )\n\n    return {\n      message: resolvePayloadMessage(detail, fieldErrors, options),\n      statusCode: options.statusCode,\n      statusText: options.statusText,\n      reasonCode: readReasonCode(error),\n      requestId: readRequestId(error),\n      fieldErrors,\n      detail,\n      raw: error,\n    }\n  }\n\n  return {\n    message: resolveApiErrorMessage(error, options),\n    statusCode: options.statusCode,\n    statusText: options.statusText,\n    fieldErrors: [],\n    detail: error,\n    raw: error,\n  }\n}\n\nexport const parseApiErrorPayload = (\n  payload: unknown,\n  options: ErrorMessageOptions = {},\n  headers?: Headers,\n  responseText?: string,\n): NormalizedApiError => {\n  if (isRecord(payload)) {\n    const detail = readDetail(payload)\n    const fieldErrors = normalizeFieldErrors(\n      payload.field_errors ?? payload.fieldErrors ?? payload.errors,\n    )\n\n    return {\n      message: resolvePayloadMessage(detail, fieldErrors, options),\n      statusCode: options.statusCode,\n      statusText: options.statusText,\n      reasonCode: readReasonCode(payload),\n      requestId: readRequestId(payload, headers),\n      fieldErrors,\n      detail,\n      responseText,\n      raw: payload,\n    }\n  }\n\n  return {\n    message: resolveApiErrorMessage(payload, options),\n    statusCode: options.statusCode,\n    statusText: options.statusText,\n    requestId: readRequestId(payload, headers),\n    fieldErrors: [],\n    detail: payload,\n    responseText,\n    raw: payload,\n  }\n}\n\nexport const parseApiErrorResponse = async (response: Response): Promise<NormalizedApiError> => {\n  const contentType = response.headers.get(\"content-type\") || \"\"\n  let payload: unknown\n  let responseText: string | undefined\n\n  if (contentType.includes(\"application/json\")) {\n    try {\n      payload = await response.json()\n    } catch {\n      payload = null\n    }\n  } else {\n    try {\n      responseText = await response.text()\n      payload = responseText\n    } catch {\n      responseText = undefined\n      payload = null\n    }\n  }\n\n  return parseApiErrorPayload(\n    payload,\n    {\n      statusCode: response.status,\n      statusText: response.statusText,\n    },\n    response.headers,\n    responseText,\n  )\n}\n","import { writable } from \"svelte/store\"\n\nexport type AssistWidgetState = {\n  externalState: Record<string, unknown> | null\n  bubbleVisible: boolean\n  organizationId: string | null\n  projectId: string | null\n  realizationId: string | null\n}\n\nconst DEFAULT_STATE: AssistWidgetState = {\n  externalState: null,\n  bubbleVisible: false,\n  organizationId: null,\n  projectId: null,\n  realizationId: null,\n}\n\nexport const assistWidgetState = writable<AssistWidgetState>({ ...DEFAULT_STATE })\n\nconst stableSerialize = (value: unknown): string => {\n  if (Array.isArray(value)) return `[${value.map(stableSerialize).join(\",\")}]`\n\n  if (value && typeof value === \"object\") {\n    return `{${Object.keys(value as Record<string, unknown>)\n      .sort()\n      .map(\n        (key) =>\n          `${JSON.stringify(key)}:${stableSerialize((value as Record<string, unknown>)[key])}`,\n      )\n      .join(\",\")}}`\n  }\n\n  return JSON.stringify(value)\n}\n\nconst sameExternalState = (\n  left: Record<string, unknown> | null,\n  right: Record<string, unknown> | null,\n): boolean => {\n  if (left === right) return true\n\n  if (!left || !right) return false\n\n  try {\n    return stableSerialize(left) === stableSerialize(right)\n  } catch {\n    return false\n  }\n}\n\nexport const setAssistWidgetContextIds = (ids: {\n  organizationId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n}): void => {\n  assistWidgetState.update((state) => {\n    const next = {\n      ...state,\n      organizationId:\n        ids.organizationId === undefined ? state.organizationId : (ids.organizationId ?? null),\n      projectId: ids.projectId === undefined ? state.projectId : (ids.projectId ?? null),\n      realizationId:\n        ids.realizationId === undefined ? state.realizationId : (ids.realizationId ?? null),\n    }\n\n    if (\n      next.organizationId === state.organizationId &&\n      next.projectId === state.projectId &&\n      next.realizationId === state.realizationId\n    ) {\n      return state\n    }\n\n    return next\n  })\n}\n\nexport const setAssistWidgetExternalState = (\n  externalState: Record<string, unknown> | null,\n): void => {\n  assistWidgetState.update((state) => {\n    if (sameExternalState(state.externalState, externalState)) return state\n\n    return {\n      ...state,\n      externalState,\n    }\n  })\n}\n\nexport const setAssistWidgetBubbleVisible = (bubbleVisible: boolean): void => {\n  assistWidgetState.update((state) => {\n    if (state.bubbleVisible === bubbleVisible) return state\n\n    return {\n      ...state,\n      bubbleVisible,\n    }\n  })\n}\n\nexport const resetAssistWidgetState = (): void => {\n  assistWidgetState.update((state) => {\n    if (\n      state.externalState === DEFAULT_STATE.externalState &&\n      state.bubbleVisible === DEFAULT_STATE.bubbleVisible &&\n      state.organizationId === DEFAULT_STATE.organizationId &&\n      state.projectId === DEFAULT_STATE.projectId &&\n      state.realizationId === DEFAULT_STATE.realizationId\n    ) {\n      return state\n    }\n\n    return { ...DEFAULT_STATE }\n  })\n}\n","import { setAssistWidgetBubbleVisible } from \"./state\"\nimport type { AssistWidgetConfig } from \"./types\"\n\ntype WidgetInstance = { destroy?: () => void }\ntype WidgetAPI = {\n  mount?: (\n    options: Record<string, unknown>,\n  ) => Promise<WidgetInstance | null | void> | WidgetInstance | null | void\n  configure?: (options: Record<string, unknown>) => void\n}\n\nconst EMBED_SELECTOR = \"web-chat,web-chat-frame,webchat\"\nconst isBrowser = typeof window !== \"undefined\"\n\nconst computeChatScriptUrl = (cdnBase: string): string => {\n  const trimmed = cdnBase.trim().replace(/\\/+$/, \"\")\n  const base = /\\/v\\d+$/.test(trimmed) ? trimmed : `${trimmed}/v1`\n\n  return `${base}/kontext-chat.js`\n}\n\nconst getWidgetAPI = (): WidgetAPI | null => {\n  if (!isBrowser) return null\n\n  return (\n    (window as typeof window & { __kontextwerkWidgets?: WidgetAPI }).__kontextwerkWidgets ?? null\n  )\n}\n\nconst configureEnvironment = (config: AssistWidgetConfig): void => {\n  const api = getWidgetAPI()\n\n  if (!api?.configure) return\n\n  try {\n    api.configure({\n      apiBaseUrl: config.apiBase,\n      chatStreamUrl: config.chatStream,\n      transcriptionUrl: config.transcriptionStream,\n      // Auth is passed per widget instance; avoid leaking auth headers globally.\n      headers: undefined,\n    })\n  } catch (error) {\n    console.warn(\"[assist] Failed to configure widget environment\", error)\n  }\n}\n\nlet bubbleInstance: WidgetInstance | null = null\nlet bubbleObserver: MutationObserver | null = null\nlet activeConfig: AssistWidgetConfig | null = null\nlet activeKey: string | null = null\nlet reconcilePromise: Promise<void> | null = null\nconst bubbleSuppressors = new Set<symbol>()\n\nconst computeConfigKey = (config: AssistWidgetConfig): string => {\n  return [config.organizationId, config.projectId, config.realizationId, config.projectSlug]\n    .filter(Boolean)\n    .join(\":\")\n}\n\nconst hasEmbeddedChat = (): boolean => {\n  if (!isBrowser) return false\n\n  try {\n    const nodes = Array.from(document.querySelectorAll(EMBED_SELECTOR))\n\n    // Ignore embeds that explicitly allow the bubble to coexist\n    return nodes.some((el) => el.getAttribute(\"data-ignore-assist-bubble\") !== \"true\")\n  } catch {\n    return false\n  }\n}\n\nconst stopObserver = () => {\n  if (bubbleObserver) {\n    bubbleObserver.disconnect()\n    bubbleObserver = null\n  }\n}\n\nconst destroyBubble = () => {\n  if (!bubbleInstance) return\n\n  try {\n    bubbleInstance.destroy?.()\n  } catch {\n    /* noop */\n  }\n  bubbleInstance = null\n  setAssistWidgetBubbleVisible(false)\n}\n\nconst isBubbleSuppressed = (): boolean => bubbleSuppressors.size > 0\n\nexport const acquireBubbleSuppression = (): symbol => {\n  const token = Symbol(\"assist-bubble-suppressor\")\n  bubbleSuppressors.add(token)\n  destroyBubble()\n\n  return token\n}\n\nexport const releaseBubbleSuppression = (token: symbol | null | undefined): void => {\n  if (!token) return\n\n  bubbleSuppressors.delete(token)\n\n  if (bubbleSuppressors.size === 0 && activeConfig) {\n    reconcilePromise = (reconcilePromise ?? Promise.resolve()).then(reconcileBubble)\n  }\n}\n\nconst mountBubble = async () => {\n  if (!activeConfig) return\n\n  const api = getWidgetAPI()\n\n  if (!api?.mount) return\n\n  configureEnvironment(activeConfig)\n  const payload = {\n    project: activeConfig.projectSlug,\n    adminKey: activeConfig.adminKey ?? undefined,\n    apiBaseUrl: activeConfig.apiBase,\n    chatStreamUrl: activeConfig.chatStream,\n    transcriptionUrl: activeConfig.transcriptionStream,\n    chatScriptUrl: computeChatScriptUrl(activeConfig.cdnBase),\n    organizationId: activeConfig.organizationId ?? undefined,\n    projectId: activeConfig.projectId ?? undefined,\n    realization: activeConfig.realizationId,\n    realizationId: activeConfig.realizationId ?? undefined,\n  }\n\n  try {\n    const mounted = await api.mount(payload)\n    const instance = mounted && typeof mounted === \"object\" ? (mounted as WidgetInstance) : null\n    bubbleInstance = instance\n    setAssistWidgetBubbleVisible(\n      mounted === undefined || mounted === null ? true : Boolean(instance),\n    )\n  } catch (error) {\n    console.error(\"[assist] Failed to mount assist bubble\", error)\n    setAssistWidgetBubbleVisible(false)\n  }\n}\n\nconst reconcileBubble = async (): Promise<void> => {\n  if (!isBrowser) return\n\n  if (!activeConfig) {\n    destroyBubble()\n    stopObserver()\n\n    return\n  }\n\n  if (isBubbleSuppressed()) {\n    destroyBubble()\n\n    return\n  }\n\n  if (hasEmbeddedChat()) {\n    destroyBubble()\n\n    return\n  }\n\n  if (bubbleInstance) return\n\n  await mountBubble()\n}\n\nconst ensureObserver = (): void => {\n  if (!isBrowser || bubbleObserver || !document?.body) return\n\n  bubbleObserver = new MutationObserver(() => {\n    reconcilePromise = (reconcilePromise ?? Promise.resolve()).then(reconcileBubble)\n  })\n  bubbleObserver.observe(document.body, { childList: true, subtree: true })\n}\n\nexport const enableAssistBubble = async (config: AssistWidgetConfig): Promise<void> => {\n  if (!isBrowser) return\n\n  const nextKey = computeConfigKey(config)\n\n  if (activeKey && activeKey !== nextKey) {\n    destroyBubble()\n  }\n\n  activeConfig = config\n  activeKey = nextKey\n\n  if (isBubbleSuppressed()) {\n    destroyBubble()\n\n    return\n  }\n\n  ensureObserver()\n  reconcilePromise = (reconcilePromise ?? Promise.resolve()).then(reconcileBubble)\n\n  return reconcilePromise\n}\n\nexport const disableAssistBubble = (): void => {\n  activeConfig = null\n  activeKey = null\n  stopObserver()\n  destroyBubble()\n}\n","export type ResolveWidgetCdnBaseOptions = {\n  hostname?: string | null\n  kontextwerkBase?: string | null\n  defaultBase?: string | null\n  localDefaultBase?: string | null\n}\n\nconst normalizeValue = (value?: string | null): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  return trimmed ? trimmed : null\n}\n\nconst normalizeHostname = (hostname?: string | null): string =>\n  normalizeValue(hostname)?.toLowerCase() ?? \"\"\n\nconst isLocalHostname = (hostname: string): boolean =>\n  hostname === \"localhost\" ||\n  hostname === \"127.0.0.1\" ||\n  hostname.endsWith(\".localhost\") ||\n  hostname.endsWith(\".local\")\n\nconst resolveOrgWidgetBase = (hostname: string): string | null => {\n  if (!hostname.includes(\".org\")) return null\n\n  const parts = hostname.split(\".\").filter(Boolean)\n\n  if (parts.length < 2) return null\n\n  const host =\n    parts.length >= 3 ? [\"widgets\", ...parts.slice(1)].join(\".\") : [\"widgets\", ...parts].join(\".\")\n\n  return `https://${host}`\n}\n\nexport const ensureWidgetCdnVersion = (base: string, version = \"v1\"): string => {\n  const normalized = base.trim().replace(/\\/+$/, \"\")\n\n  if (/\\/v\\d+$/.test(normalized)) return normalized\n\n  return `${normalized}/${version}`\n}\n\nexport const resolveWidgetEmbedSrc = (cdnBase: string): string =>\n  `${ensureWidgetCdnVersion(cdnBase)}/embed.js`\n\nexport const resolveWidgetCdnBase = (\n  hostname?: string | null,\n  options: ResolveWidgetCdnBaseOptions = {},\n): string => {\n  const host = normalizeHostname(hostname)\n  const defaultBase = normalizeValue(options.defaultBase) ?? \"https://widgets.kontextwerk.info\"\n  const kontextwerkBase = normalizeValue(options.kontextwerkBase) ?? defaultBase\n  const localDefaultBase =\n    normalizeValue(options.localDefaultBase) ?? \"http://widgets.kontextwerk.localhost\"\n\n  if (!host) return defaultBase\n\n  if (isLocalHostname(host)) {\n    if (host.includes(\"plattform-control\")) return \"http://widgets.plattform-control.localhost\"\n\n    if (host.includes(\"kehrblatt\")) return \"http://widgets.kehrblatt-control.localhost\"\n\n    if (host.includes(\"kontextwerk\")) return localDefaultBase\n\n    return localDefaultBase\n  }\n\n  const orgBase = resolveOrgWidgetBase(host)\n\n  if (orgBase) return orgBase\n\n  if (host.includes(\"kontextwerk.dev\")) return \"https://widgets.kontextwerk.dev\"\n\n  if (host.includes(\"kerhblatt.dev\")) return \"https://widgets.kerhblatt.dev\"\n\n  if (host.includes(\"plattform-control\")) return \"https://widgets.plattform-control.de\"\n\n  if (host.includes(\"kehrblatt\")) return \"https://widgets.kehrblatt.de\"\n\n  if (host.includes(\"kontextwerk\")) return kontextwerkBase\n\n  return defaultBase\n}\n\nexport const deriveChatStream = (apiBase: string | null | undefined): string | null => {\n  const normalized = normalizeValue(apiBase)\n\n  if (!normalized) return null\n\n  return `${normalized.replace(/\\/+$/, \"\")}/chatbot/stream`\n}\n\nexport const deriveTranscriptionStream = (chatStream: string | null | undefined): string | null => {\n  const normalized = normalizeValue(chatStream)\n\n  if (!normalized) return null\n\n  return normalized.includes(\"/chatbot\")\n    ? normalized.replace(\"/chatbot/stream\", \"/chatbot/tools/transcription/stream\")\n    : normalized\n}\n\nexport const resolveTranscriptionStream = (\n  apiBase: string | null | undefined,\n  chatStream: string | null | undefined,\n): string | null => {\n  const normalizedApiBase = normalizeValue(apiBase)\n\n  if (normalizedApiBase) {\n    return `${normalizedApiBase.replace(/\\/+$/, \"\")}/chatbot/tools/transcription/stream`\n  }\n\n  return deriveTranscriptionStream(chatStream)\n}\n\nexport const normalizeWidgetValue = normalizeValue\n","type AssistWindow = typeof window & {\n  chatWidgetContext?: Record<string, unknown> | null\n  chatWidgetCallbacks?: Record<string, (payload: any) => unknown>\n}\n\nexport const CHAT_WIDGET_CONTEXT_UPDATED_EVENT = \"kw:chat-widget-context-updated\"\n\nexport type WidgetContextState = {\n  page: string\n  chatStartProfileId: string | null\n  taskHint: string | null\n  organizationId: string | null\n  organizationSlug: string | null\n  organizationName: string | null\n  projectId: string | null\n  projectSlug: string | null\n  projectName: string | null\n  realizationId: string | null\n  customerId: string | null\n  workOrderId: string | null\n  propertyId: string | null\n  isLoggedIn: boolean\n  activeRole: string\n  externalState: Record<string, unknown> | null\n}\n\nconst DEFAULT_CONTEXT: WidgetContextState = {\n  page: \"APP\",\n  chatStartProfileId: null,\n  taskHint: null,\n  organizationId: null,\n  organizationSlug: null,\n  organizationName: null,\n  projectId: null,\n  projectSlug: null,\n  projectName: null,\n  realizationId: null,\n  customerId: null,\n  workOrderId: null,\n  propertyId: null,\n  isLoggedIn: false,\n  activeRole: \"ANON\",\n  externalState: null,\n}\n\nlet currentContext: WidgetContextState = { ...DEFAULT_CONTEXT }\n\nexport const ensureWindow = (): AssistWindow | null => {\n  if (typeof window === \"undefined\") return null\n\n  return window as AssistWindow\n}\n\nexport const ensureContext = (): Record<string, unknown> | null => {\n  const global = ensureWindow()\n\n  if (!global) return null\n\n  if (!global.chatWidgetContext || typeof global.chatWidgetContext !== \"object\") {\n    global.chatWidgetContext = {}\n  }\n\n  return global.chatWidgetContext\n}\n\nexport const ensureCallbacks = (): Record<string, (payload: any) => unknown> | null => {\n  const global = ensureWindow()\n\n  if (!global) return null\n\n  if (!global.chatWidgetCallbacks || typeof global.chatWidgetCallbacks !== \"object\") {\n    global.chatWidgetCallbacks = {}\n  }\n\n  return global.chatWidgetCallbacks\n}\n\nconst normalizeString = (value: unknown, fallback = \"\"): string => {\n  if (typeof value === \"string\" && value.trim()) return value.trim()\n\n  return fallback\n}\n\nconst stableSerialize = (value: unknown): string => {\n  if (Array.isArray(value)) return `[${value.map(stableSerialize).join(\",\")}]`\n\n  if (value && typeof value === \"object\") {\n    return `{${Object.keys(value as Record<string, unknown>)\n      .sort()\n      .map(\n        (key) =>\n          `${JSON.stringify(key)}:${stableSerialize((value as Record<string, unknown>)[key])}`,\n      )\n      .join(\",\")}}`\n  }\n\n  return JSON.stringify(value)\n}\n\nconst sameWidgetContext = (left: WidgetContextState, right: WidgetContextState): boolean => {\n  try {\n    return stableSerialize(left) === stableSerialize(right)\n  } catch {\n    return false\n  }\n}\n\nconst assignContext = () => {\n  const ctx = ensureContext()\n\n  if (!ctx) return\n\n  ctx.page = currentContext.page\n  ctx.chat_start_profile_id = currentContext.chatStartProfileId\n  ctx.task_hint = currentContext.taskHint\n  ctx.is_logged_in = currentContext.isLoggedIn\n  ctx.active_role = currentContext.activeRole\n  ctx.organization_id = currentContext.organizationId\n  ctx.organization_name = currentContext.organizationName\n  ctx.project_id = currentContext.projectId\n  ctx.project_name = currentContext.projectName\n  ctx.realization_id = currentContext.realizationId\n  ctx.customer_id = currentContext.customerId\n  ctx.work_order_id = currentContext.workOrderId\n  ctx.property_id = currentContext.propertyId\n  ctx.external_state = currentContext.externalState\n  // Keep selector transport strictly ID-based in outgoing widget context.\n  delete ctx.organization_slug\n  delete ctx.project_slug\n\n  const global = ensureWindow()\n\n  if (!global || typeof global.dispatchEvent !== \"function\") return\n\n  try {\n    global.dispatchEvent(\n      new CustomEvent(CHAT_WIDGET_CONTEXT_UPDATED_EVENT, {\n        detail: { ...currentContext },\n      }),\n    )\n  } catch {\n    // Best effort only. The widget can still read the latest context directly.\n  }\n}\n\nexport const updateWidgetContext = (patch: Partial<WidgetContextState>): void => {\n  const next: WidgetContextState = {\n    ...currentContext,\n    ...patch,\n  }\n\n  next.page = normalizeString(patch.page ?? currentContext.page ?? \"APP\", \"APP\").toUpperCase()\n  next.chatStartProfileId =\n    patch.chatStartProfileId === undefined\n      ? currentContext.chatStartProfileId\n      : patch.chatStartProfileId\n  next.taskHint =\n    normalizeString(patch.taskHint ?? currentContext.taskHint ?? \"\", \"\").trim() || null\n  next.organizationId =\n    patch.organizationId === undefined ? currentContext.organizationId : patch.organizationId\n  next.organizationSlug =\n    patch.organizationSlug === undefined ? currentContext.organizationSlug : patch.organizationSlug\n  next.organizationName =\n    patch.organizationName === undefined ? currentContext.organizationName : patch.organizationName\n  next.projectId = patch.projectId === undefined ? currentContext.projectId : patch.projectId\n  next.projectSlug =\n    patch.projectSlug === undefined ? currentContext.projectSlug : patch.projectSlug\n  next.projectName =\n    patch.projectName === undefined ? currentContext.projectName : patch.projectName\n  next.realizationId =\n    patch.realizationId === undefined ? currentContext.realizationId : patch.realizationId\n  next.customerId = patch.customerId === undefined ? currentContext.customerId : patch.customerId\n  next.workOrderId =\n    patch.workOrderId === undefined ? currentContext.workOrderId : patch.workOrderId\n  next.propertyId = patch.propertyId === undefined ? currentContext.propertyId : patch.propertyId\n  next.isLoggedIn = Boolean(patch.isLoggedIn ?? currentContext.isLoggedIn)\n  next.activeRole = normalizeString(\n    patch.activeRole ?? currentContext.activeRole ?? \"ANON\",\n    \"ANON\",\n  ).toUpperCase()\n  next.externalState =\n    patch.externalState === undefined ? currentContext.externalState : (patch.externalState ?? null)\n\n  if (sameWidgetContext(currentContext, next)) return\n\n  currentContext = next\n  assignContext()\n}\n\nexport const updateWidgetExternalState = (externalState: Record<string, unknown> | null): void => {\n  updateWidgetContext({ externalState })\n}\n\nexport const resetWidgetContext = (): void => {\n  const next = { ...DEFAULT_CONTEXT }\n\n  if (sameWidgetContext(currentContext, next)) return\n\n  currentContext = next\n  assignContext()\n}\n\nexport const getWidgetContextSnapshot = (): WidgetContextState => ({ ...currentContext })\n","export type WidgetLoaderOptions = {\n  project: string\n  adminKey?: string | null\n  apiBase?: string | null\n  chatStream?: string | null\n  transcriptionStream?: string | null\n  cdnBase: string | null\n  organizationId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n  disableProjectHeader?: boolean\n  omitRealization?: boolean\n  // Backwards-compat alias (prefer organizationId for new code paths).\n  orgId?: string | null\n  workOrderId?: string | null\n  propertyId?: string | null\n  contactStepId?: string | null\n  contactOrderId?: string | null\n  contactSource?: string | null\n  contactUuid?: string | null\n  bubbleWhenNoEmbed?: boolean\n  suppressBubbleOnEmbed?: boolean\n  registerOnly?: boolean\n}\n\nconst isBrowser = typeof window !== \"undefined\"\nconst hasCustomElement = () =>\n  isBrowser &&\n  typeof window.customElements !== \"undefined\" &&\n  !!window.customElements.get(\"web-chat-frame\")\n\nconst computeLoaderSrc = (cdnBase: string): string => {\n  const normalized = cdnBase.trim().replace(/\\/+$/, \"\")\n\n  if (/\\/v\\d+$/.test(normalized)) {\n    return `${normalized}/embed.js`\n  }\n\n  return `${normalized}/v1/embed.js`\n}\n\nconst sanitize = (value?: string | null): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  return trimmed || null\n}\n\nlet loaderPromise: Promise<void> | null = null\n\nexport const ensureAssistWidgetLoader = (options: WidgetLoaderOptions): Promise<void> => {\n  if (!isBrowser) return Promise.resolve()\n\n  const project = sanitize(options?.project)\n  const cdnBase = sanitize(options?.cdnBase)\n  const bubbleWhenNoEmbed = options?.bubbleWhenNoEmbed ?? true\n  const registerOnly = options?.registerOnly ?? false\n\n  if (!project || !cdnBase) {\n    return Promise.reject(new Error(\"Assist widget loader requires project slug and widget domain\"))\n  }\n\n  if (hasCustomElement()) {\n    return Promise.resolve()\n  }\n\n  if (loaderPromise) {\n    return loaderPromise\n  }\n\n  loaderPromise = new Promise<void>((resolve, reject) => {\n    const script = document.createElement(\"script\")\n    console.log(\"Assist widget loader adding script\", computeLoaderSrc(cdnBase))\n    script.src = computeLoaderSrc(cdnBase)\n    script.async = true\n    script.dataset.kontext = \"widgets\"\n\n    if (bubbleWhenNoEmbed) {\n      script.dataset.bubbleWhenNoEmbed = \"true\"\n    }\n\n    if (registerOnly) {\n      script.dataset.registerOnly = \"true\"\n    }\n\n    script.dataset.project = project\n\n    const setData = (key: string, value: string | null) => {\n      if (value) {\n        script.dataset[key] = value\n\n        return\n      }\n\n      delete script.dataset[key]\n    }\n\n    setData(\"adminKey\", sanitize(options?.adminKey))\n    setData(\"apiBase\", sanitize(options?.apiBase))\n    setData(\"chatStream\", sanitize(options?.chatStream))\n    setData(\"transcriptionStream\", sanitize(options?.transcriptionStream))\n    setData(\"orgId\", sanitize(options?.organizationId ?? options?.orgId))\n    setData(\"organizationId\", sanitize(options?.organizationId ?? options?.orgId))\n    setData(\"projectId\", sanitize(options?.projectId))\n    const omitRealization = options?.omitRealization ?? false\n    setData(\"realizationId\", omitRealization ? null : sanitize(options?.realizationId))\n    setData(\"workOrderId\", sanitize(options?.workOrderId))\n    setData(\"propertyId\", sanitize(options?.propertyId))\n    setData(\"contactStepId\", sanitize(options?.contactStepId))\n    setData(\"contactOrderId\", sanitize(options?.contactOrderId))\n    setData(\"contactSource\", sanitize(options?.contactSource))\n    setData(\"contactUuid\", sanitize(options?.contactUuid))\n\n    if (options?.disableProjectHeader !== undefined) {\n      script.dataset.disableProjectHeader = options.disableProjectHeader ? \"true\" : \"false\"\n    }\n\n    if (options?.omitRealization !== undefined) {\n      script.dataset.omitRealization = options.omitRealization ? \"true\" : \"false\"\n    }\n\n    script.onload = () => resolve()\n    script.onerror = (e) => {\n      console.log(\"Assist widget loader failed to load\", e)\n      loaderPromise = null\n      reject(new Error(\"Assist widget loader failed to load\"))\n    }\n\n    document.head.appendChild(script)\n  })\n\n  return loaderPromise\n}\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n  return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n  return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n  return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n  return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n  return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n  return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n  var len = str.length;\n  var ret;\n  if (str[0] === '#') {\n    if (len === 4 || len === 5) {\n      ret = {\n        r: 255 & map$1[str[1]] * 17,\n        g: 255 & map$1[str[2]] * 17,\n        b: 255 & map$1[str[3]] * 17,\n        a: len === 5 ? map$1[str[4]] * 17 : 255\n      };\n    } else if (len === 7 || len === 9) {\n      ret = {\n        r: map$1[str[1]] << 4 | map$1[str[2]],\n        g: map$1[str[3]] << 4 | map$1[str[4]],\n        b: map$1[str[5]] << 4 | map$1[str[6]],\n        a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n      };\n    }\n  }\n  return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n  var f = isShort(v) ? h1 : h2;\n  return v\n    ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n    : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n  const a = s * Math.min(l, 1 - l);\n  const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n  return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n  const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n  return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n  const rgb = hsl2rgbn(h, 1, 0.5);\n  let i;\n  if (w + b > 1) {\n    i = 1 / (w + b);\n    w *= i;\n    b *= i;\n  }\n  for (i = 0; i < 3; i++) {\n    rgb[i] *= 1 - w - b;\n    rgb[i] += w;\n  }\n  return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n  if (r === max) {\n    return ((g - b) / d) + (g < b ? 6 : 0);\n  }\n  if (g === max) {\n    return (b - r) / d + 2;\n  }\n  return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n  const range = 255;\n  const r = v.r / range;\n  const g = v.g / range;\n  const b = v.b / range;\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  const l = (max + min) / 2;\n  let h, s, d;\n  if (max !== min) {\n    d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n    h = hueValue(r, g, b, d, max);\n    h = h * 60 + 0.5;\n  }\n  return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n  return (\n    Array.isArray(a)\n      ? f(a[0], a[1], a[2])\n      : f(a, b, c)\n  ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n  return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n  return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n  return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n  return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n  const m = HUE_RE.exec(str);\n  let a = 255;\n  let v;\n  if (!m) {\n    return;\n  }\n  if (m[5] !== v) {\n    a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n  }\n  const h = hue(+m[2]);\n  const p1 = +m[3] / 100;\n  const p2 = +m[4] / 100;\n  if (m[1] === 'hwb') {\n    v = hwb2rgb(h, p1, p2);\n  } else if (m[1] === 'hsv') {\n    v = hsv2rgb(h, p1, p2);\n  } else {\n    v = hsl2rgb(h, p1, p2);\n  }\n  return {\n    r: v[0],\n    g: v[1],\n    b: v[2],\n    a: a\n  };\n}\nfunction rotate(v, deg) {\n  var h = rgb2hsl(v);\n  h[0] = hue(h[0] + deg);\n  h = hsl2rgb(h);\n  v.r = h[0];\n  v.g = h[1];\n  v.b = h[2];\n}\nfunction hslString(v) {\n  if (!v) {\n    return;\n  }\n  const a = rgb2hsl(v);\n  const h = a[0];\n  const s = n2p(a[1]);\n  const l = n2p(a[2]);\n  return v.a < 255\n    ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n    : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n  const unpacked = {};\n  const keys = Object.keys(names$1);\n  const tkeys = Object.keys(map);\n  let i, j, k, ok, nk;\n  for (i = 0; i < keys.length; i++) {\n    ok = nk = keys[i];\n    for (j = 0; j < tkeys.length; j++) {\n      k = tkeys[j];\n      nk = nk.replace(k, map[k]);\n    }\n    k = parseInt(names$1[ok], 16);\n    unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n  }\n  return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n  if (!names) {\n    names = unpack();\n    names.transparent = [0, 0, 0, 0];\n  }\n  const a = names[str.toLowerCase()];\n  return a && {\n    r: a[0],\n    g: a[1],\n    b: a[2],\n    a: a.length === 4 ? a[3] : 255\n  };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n  const m = RGB_RE.exec(str);\n  let a = 255;\n  let r, g, b;\n  if (!m) {\n    return;\n  }\n  if (m[7] !== r) {\n    const v = +m[7];\n    a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n  }\n  r = +m[1];\n  g = +m[3];\n  b = +m[5];\n  r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n  g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n  b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n  return {\n    r: r,\n    g: g,\n    b: b,\n    a: a\n  };\n}\nfunction rgbString(v) {\n  return v && (\n    v.a < 255\n      ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n      : `rgb(${v.r}, ${v.g}, ${v.b})`\n  );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n  const r = from(b2n(rgb1.r));\n  const g = from(b2n(rgb1.g));\n  const b = from(b2n(rgb1.b));\n  return {\n    r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n    g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n    b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n    a: rgb1.a + t * (rgb2.a - rgb1.a)\n  };\n}\n\nfunction modHSL(v, i, ratio) {\n  if (v) {\n    let tmp = rgb2hsl(v);\n    tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n    tmp = hsl2rgb(tmp);\n    v.r = tmp[0];\n    v.g = tmp[1];\n    v.b = tmp[2];\n  }\n}\nfunction clone(v, proto) {\n  return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n  var v = {r: 0, g: 0, b: 0, a: 255};\n  if (Array.isArray(input)) {\n    if (input.length >= 3) {\n      v = {r: input[0], g: input[1], b: input[2], a: 255};\n      if (input.length > 3) {\n        v.a = n2b(input[3]);\n      }\n    }\n  } else {\n    v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n    v.a = n2b(v.a);\n  }\n  return v;\n}\nfunction functionParse(str) {\n  if (str.charAt(0) === 'r') {\n    return rgbParse(str);\n  }\n  return hueParse(str);\n}\nclass Color {\n  constructor(input) {\n    if (input instanceof Color) {\n      return input;\n    }\n    const type = typeof input;\n    let v;\n    if (type === 'object') {\n      v = fromObject(input);\n    } else if (type === 'string') {\n      v = hexParse(input) || nameParse(input) || functionParse(input);\n    }\n    this._rgb = v;\n    this._valid = !!v;\n  }\n  get valid() {\n    return this._valid;\n  }\n  get rgb() {\n    var v = clone(this._rgb);\n    if (v) {\n      v.a = b2n(v.a);\n    }\n    return v;\n  }\n  set rgb(obj) {\n    this._rgb = fromObject(obj);\n  }\n  rgbString() {\n    return this._valid ? rgbString(this._rgb) : undefined;\n  }\n  hexString() {\n    return this._valid ? hexString(this._rgb) : undefined;\n  }\n  hslString() {\n    return this._valid ? hslString(this._rgb) : undefined;\n  }\n  mix(color, weight) {\n    if (color) {\n      const c1 = this.rgb;\n      const c2 = color.rgb;\n      let w2;\n      const p = weight === w2 ? 0.5 : weight;\n      const w = 2 * p - 1;\n      const a = c1.a - c2.a;\n      const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n      w2 = 1 - w1;\n      c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n      c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n      c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n      c1.a = p * c1.a + (1 - p) * c2.a;\n      this.rgb = c1;\n    }\n    return this;\n  }\n  interpolate(color, t) {\n    if (color) {\n      this._rgb = interpolate(this._rgb, color._rgb, t);\n    }\n    return this;\n  }\n  clone() {\n    return new Color(this.rgb);\n  }\n  alpha(a) {\n    this._rgb.a = n2b(a);\n    return this;\n  }\n  clearer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 - ratio;\n    return this;\n  }\n  greyscale() {\n    const rgb = this._rgb;\n    const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n    rgb.r = rgb.g = rgb.b = val;\n    return this;\n  }\n  opaquer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 + ratio;\n    return this;\n  }\n  negate() {\n    const v = this._rgb;\n    v.r = 255 - v.r;\n    v.g = 255 - v.g;\n    v.b = 255 - v.b;\n    return this;\n  }\n  lighten(ratio) {\n    modHSL(this._rgb, 2, ratio);\n    return this;\n  }\n  darken(ratio) {\n    modHSL(this._rgb, 2, -ratio);\n    return this;\n  }\n  saturate(ratio) {\n    modHSL(this._rgb, 1, ratio);\n    return this;\n  }\n  desaturate(ratio) {\n    modHSL(this._rgb, 1, -ratio);\n    return this;\n  }\n  rotate(deg) {\n    rotate(this._rgb, deg);\n    return this;\n  }\n}\n\nfunction index_esm(input) {\n  return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n    let id = 0;\n    return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n    return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n    if (Array.isArray && Array.isArray(value)) {\n        return true;\n    }\n    const type = Object.prototype.toString.call(value);\n    if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n        return true;\n    }\n    return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n    return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value  - The value to test.\n */ function isNumberFinite(value) {\n    return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n    return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n    return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n    if (fn && typeof fn.call === 'function') {\n        return fn.apply(thisArg, args);\n    }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n    let i, len, keys;\n    if (isArray(loopable)) {\n        len = loopable.length;\n        if (reverse) {\n            for(i = len - 1; i >= 0; i--){\n                fn.call(thisArg, loopable[i], i);\n            }\n        } else {\n            for(i = 0; i < len; i++){\n                fn.call(thisArg, loopable[i], i);\n            }\n        }\n    } else if (isObject(loopable)) {\n        keys = Object.keys(loopable);\n        len = keys.length;\n        for(i = 0; i < len; i++){\n            fn.call(thisArg, loopable[keys[i]], keys[i]);\n        }\n    }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n    let i, ilen, v0, v1;\n    if (!a0 || !a1 || a0.length !== a1.length) {\n        return false;\n    }\n    for(i = 0, ilen = a0.length; i < ilen; ++i){\n        v0 = a0[i];\n        v1 = a1[i];\n        if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n    if (isArray(source)) {\n        return source.map(clone);\n    }\n    if (isObject(source)) {\n        const target = Object.create(null);\n        const keys = Object.keys(source);\n        const klen = keys.length;\n        let k = 0;\n        for(; k < klen; ++k){\n            target[keys[k]] = clone(source[keys[k]]);\n        }\n        return target;\n    }\n    return source;\n}\nfunction isValidKey(key) {\n    return [\n        '__proto__',\n        'prototype',\n        'constructor'\n    ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n    if (!isValidKey(key)) {\n        return;\n    }\n    const tval = target[key];\n    const sval = source[key];\n    if (isObject(tval) && isObject(sval)) {\n        // eslint-disable-next-line @typescript-eslint/no-use-before-define\n        merge(tval, sval, options);\n    } else {\n        target[key] = clone(sval);\n    }\n}\nfunction merge(target, source, options) {\n    const sources = isArray(source) ? source : [\n        source\n    ];\n    const ilen = sources.length;\n    if (!isObject(target)) {\n        return target;\n    }\n    options = options || {};\n    const merger = options.merger || _merger;\n    let current;\n    for(let i = 0; i < ilen; ++i){\n        current = sources[i];\n        if (!isObject(current)) {\n            continue;\n        }\n        const keys = Object.keys(current);\n        for(let k = 0, klen = keys.length; k < klen; ++k){\n            merger(keys[k], target, current, options);\n        }\n    }\n    return target;\n}\nfunction mergeIf(target, source) {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    return merge(target, source, {\n        merger: _mergerIf\n    });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n    if (!isValidKey(key)) {\n        return;\n    }\n    const tval = target[key];\n    const sval = source[key];\n    if (isObject(tval) && isObject(sval)) {\n        mergeIf(tval, sval);\n    } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n        target[key] = clone(sval);\n    }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n    if (value !== undefined) {\n        console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n    }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n    // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n    '': (v)=>v,\n    // default resolvers\n    x: (o)=>o.x,\n    y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n    const parts = key.split('.');\n    const keys = [];\n    let tmp = '';\n    for (const part of parts){\n        tmp += part;\n        if (tmp.endsWith('\\\\')) {\n            tmp = tmp.slice(0, -1) + '.';\n        } else {\n            keys.push(tmp);\n            tmp = '';\n        }\n    }\n    return keys;\n}\nfunction _getKeyResolver(key) {\n    const keys = _splitKey(key);\n    return (obj)=>{\n        for (const k of keys){\n            if (k === '') {\n                break;\n            }\n            obj = obj && obj[k];\n        }\n        return obj;\n    };\n}\nfunction resolveObjectKey(obj, key) {\n    const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n    return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n    if (a.size !== b.size) {\n        return false;\n    }\n    for (const item of a){\n        if (!b.has(item)) {\n            return false;\n        }\n    }\n    return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n    return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n    return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n    const roundedRange = Math.round(range);\n    range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n    const niceRange = Math.pow(10, Math.floor(log10(range)));\n    const fraction = range / niceRange;\n    const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n    return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n    const result = [];\n    const sqrt = Math.sqrt(value);\n    let i;\n    for(i = 1; i < sqrt; i++){\n        if (value % i === 0) {\n            result.push(i);\n            result.push(value / i);\n        }\n    }\n    if (sqrt === (sqrt | 0)) {\n        result.push(sqrt);\n    }\n    result.sort((a, b)=>a - b).pop();\n    return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n    return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n    return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n    const rounded = Math.round(x);\n    return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n    let i, ilen, value;\n    for(i = 0, ilen = array.length; i < ilen; i++){\n        value = array[i][property];\n        if (!isNaN(value)) {\n            target.min = Math.min(target.min, value);\n            target.max = Math.max(target.max, value);\n        }\n    }\n}\nfunction toRadians(degrees) {\n    return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n    return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n    if (!isNumberFinite(x)) {\n        return;\n    }\n    let e = 1;\n    let p = 0;\n    while(Math.round(x * e) / e !== x){\n        e *= 10;\n        p++;\n    }\n    return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n    const distanceFromXCenter = anglePoint.x - centrePoint.x;\n    const distanceFromYCenter = anglePoint.y - centrePoint.y;\n    const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n    let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n    if (angle < -0.5 * PI) {\n        angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n    }\n    return {\n        angle,\n        distance: radialDistanceFromCenter\n    };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n    return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n    return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n    return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n    const a = _normalizeAngle(angle);\n    const s = _normalizeAngle(start);\n    const e = _normalizeAngle(end);\n    const angleToStart = _normalizeAngle(s - a);\n    const angleToEnd = _normalizeAngle(e - a);\n    const startToAngle = _normalizeAngle(a - s);\n    const endToAngle = _normalizeAngle(a - e);\n    return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n    return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n    return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n    return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n    cmp = cmp || ((index)=>table[index] < value);\n    let hi = table.length - 1;\n    let lo = 0;\n    let mid;\n    while(hi - lo > 1){\n        mid = lo + hi >> 1;\n        if (cmp(mid)) {\n            lo = mid;\n        } else {\n            hi = mid;\n        }\n    }\n    return {\n        lo,\n        hi\n    };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n        const ti = table[index][key];\n        return ti < value || ti === value && table[index + 1][key] === value;\n    } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n    let start = 0;\n    let end = values.length;\n    while(start < end && values[start] < min){\n        start++;\n    }\n    while(end > start && values[end - 1] > max){\n        end--;\n    }\n    return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n    'push',\n    'pop',\n    'shift',\n    'splice',\n    'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n    if (array._chartjs) {\n        array._chartjs.listeners.push(listener);\n        return;\n    }\n    Object.defineProperty(array, '_chartjs', {\n        configurable: true,\n        enumerable: false,\n        value: {\n            listeners: [\n                listener\n            ]\n        }\n    });\n    arrayEvents.forEach((key)=>{\n        const method = '_onData' + _capitalize(key);\n        const base = array[key];\n        Object.defineProperty(array, key, {\n            configurable: true,\n            enumerable: false,\n            value (...args) {\n                const res = base.apply(this, args);\n                array._chartjs.listeners.forEach((object)=>{\n                    if (typeof object[method] === 'function') {\n                        object[method](...args);\n                    }\n                });\n                return res;\n            }\n        });\n    });\n}\nfunction unlistenArrayEvents(array, listener) {\n    const stub = array._chartjs;\n    if (!stub) {\n        return;\n    }\n    const listeners = stub.listeners;\n    const index = listeners.indexOf(listener);\n    if (index !== -1) {\n        listeners.splice(index, 1);\n    }\n    if (listeners.length > 0) {\n        return;\n    }\n    arrayEvents.forEach((key)=>{\n        delete array[key];\n    });\n    delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n    const set = new Set(items);\n    if (set.size === items.length) {\n        return items;\n    }\n    return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n    return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n    if (typeof window === 'undefined') {\n        return function(callback) {\n            return callback();\n        };\n    }\n    return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n    let argsToUse = [];\n    let ticking = false;\n    return function(...args) {\n        // Save the args for use later\n        argsToUse = args;\n        if (!ticking) {\n            ticking = true;\n            requestAnimFrame.call(window, ()=>{\n                ticking = false;\n                fn.apply(thisArg, argsToUse);\n            });\n        }\n    };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n    let timeout;\n    return function(...args) {\n        if (delay) {\n            clearTimeout(timeout);\n            timeout = setTimeout(fn, delay, args);\n        } else {\n            fn.apply(this, args);\n        }\n        return delay;\n    };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n    const check = rtl ? 'left' : 'right';\n    return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n    const pointCount = points.length;\n    let start = 0;\n    let count = pointCount;\n    if (meta._sorted) {\n        const { iScale , vScale , _parsed  } = meta;\n        const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n        const axis = iScale.axis;\n        const { min , max , minDefined , maxDefined  } = iScale.getUserBounds();\n        if (minDefined) {\n            start = Math.min(// @ts-expect-error Need to type _parsed\n            _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n            animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n            if (spanGaps) {\n                const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n                start -= Math.max(0, distanceToDefinedLo);\n            }\n            start = _limitValue(start, 0, pointCount - 1);\n        }\n        if (maxDefined) {\n            let end = Math.max(// @ts-expect-error Need to type _parsed\n            _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n            animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n            if (spanGaps) {\n                const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n                end += Math.max(0, distanceToDefinedHi);\n            }\n            count = _limitValue(end, start, pointCount) - start;\n        } else {\n            count = pointCount - start;\n        }\n    }\n    return {\n        start,\n        count\n    };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n    const { xScale , yScale , _scaleRanges  } = meta;\n    const newRanges = {\n        xmin: xScale.min,\n        xmax: xScale.max,\n        ymin: yScale.min,\n        ymax: yScale.max\n    };\n    if (!_scaleRanges) {\n        meta._scaleRanges = newRanges;\n        return true;\n    }\n    const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n    Object.assign(_scaleRanges, newRanges);\n    return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n    linear: (t)=>t,\n    easeInQuad: (t)=>t * t,\n    easeOutQuad: (t)=>-t * (t - 2),\n    easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n    easeInCubic: (t)=>t * t * t,\n    easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n    easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n    easeInQuart: (t)=>t * t * t * t,\n    easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n    easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n    easeInQuint: (t)=>t * t * t * t * t,\n    easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n    easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n    easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n    easeOutSine: (t)=>Math.sin(t * HALF_PI),\n    easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n    easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n    easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n    easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n    easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n    easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n    easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n    easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n    easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n    easeInOutElastic (t) {\n        const s = 0.1125;\n        const p = 0.45;\n        return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n    },\n    easeInBack (t) {\n        const s = 1.70158;\n        return t * t * ((s + 1) * t - s);\n    },\n    easeOutBack (t) {\n        const s = 1.70158;\n        return (t -= 1) * t * ((s + 1) * t + s) + 1;\n    },\n    easeInOutBack (t) {\n        let s = 1.70158;\n        if ((t /= 0.5) < 1) {\n            return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n        }\n        return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n    },\n    easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n    easeOutBounce (t) {\n        const m = 7.5625;\n        const d = 2.75;\n        if (t < 1 / d) {\n            return m * t * t;\n        }\n        if (t < 2 / d) {\n            return m * (t -= 1.5 / d) * t + 0.75;\n        }\n        if (t < 2.5 / d) {\n            return m * (t -= 2.25 / d) * t + 0.9375;\n        }\n        return m * (t -= 2.625 / d) * t + 0.984375;\n    },\n    easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n    if (value && typeof value === 'object') {\n        const type = value.toString();\n        return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n    }\n    return false;\n}\nfunction color(value) {\n    return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n    return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n    'x',\n    'y',\n    'borderWidth',\n    'radius',\n    'tension'\n];\nconst colors = [\n    'color',\n    'borderColor',\n    'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n    defaults.set('animation', {\n        delay: undefined,\n        duration: 1000,\n        easing: 'easeOutQuart',\n        fn: undefined,\n        from: undefined,\n        loop: undefined,\n        to: undefined,\n        type: undefined\n    });\n    defaults.describe('animation', {\n        _fallback: false,\n        _indexable: false,\n        _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n    });\n    defaults.set('animations', {\n        colors: {\n            type: 'color',\n            properties: colors\n        },\n        numbers: {\n            type: 'number',\n            properties: numbers\n        }\n    });\n    defaults.describe('animations', {\n        _fallback: 'animation'\n    });\n    defaults.set('transitions', {\n        active: {\n            animation: {\n                duration: 400\n            }\n        },\n        resize: {\n            animation: {\n                duration: 0\n            }\n        },\n        show: {\n            animations: {\n                colors: {\n                    from: 'transparent'\n                },\n                visible: {\n                    type: 'boolean',\n                    duration: 0\n                }\n            }\n        },\n        hide: {\n            animations: {\n                colors: {\n                    to: 'transparent'\n                },\n                visible: {\n                    type: 'boolean',\n                    easing: 'linear',\n                    fn: (v)=>v | 0\n                }\n            }\n        }\n    });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n    defaults.set('layout', {\n        autoPadding: true,\n        padding: {\n            top: 0,\n            right: 0,\n            bottom: 0,\n            left: 0\n        }\n    });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n    options = options || {};\n    const cacheKey = locale + JSON.stringify(options);\n    let formatter = intlCache.get(cacheKey);\n    if (!formatter) {\n        formatter = new Intl.NumberFormat(locale, options);\n        intlCache.set(cacheKey, formatter);\n    }\n    return formatter;\n}\nfunction formatNumber(num, locale, options) {\n    return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n        return isArray(value) ?  value : '' + value;\n    },\n numeric (tickValue, index, ticks) {\n        if (tickValue === 0) {\n            return '0';\n        }\n        const locale = this.chart.options.locale;\n        let notation;\n        let delta = tickValue;\n        if (ticks.length > 1) {\n            const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n            if (maxTick < 1e-4 || maxTick > 1e+15) {\n                notation = 'scientific';\n            }\n            delta = calculateDelta(tickValue, ticks);\n        }\n        const logDelta = log10(Math.abs(delta));\n        const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n        const options = {\n            notation,\n            minimumFractionDigits: numDecimal,\n            maximumFractionDigits: numDecimal\n        };\n        Object.assign(options, this.options.ticks.format);\n        return formatNumber(tickValue, locale, options);\n    },\n logarithmic (tickValue, index, ticks) {\n        if (tickValue === 0) {\n            return '0';\n        }\n        const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n        if ([\n            1,\n            2,\n            3,\n            5,\n            10,\n            15\n        ].includes(remain) || index > 0.8 * ticks.length) {\n            return formatters.numeric.call(this, tickValue, index, ticks);\n        }\n        return '';\n    }\n};\nfunction calculateDelta(tickValue, ticks) {\n    let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n    if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n        delta = tickValue - Math.floor(tickValue);\n    }\n    return delta;\n}\n var Ticks = {\n    formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n    defaults.set('scale', {\n        display: true,\n        offset: false,\n        reverse: false,\n        beginAtZero: false,\n bounds: 'ticks',\n        clip: true,\n grace: 0,\n        grid: {\n            display: true,\n            lineWidth: 1,\n            drawOnChartArea: true,\n            drawTicks: true,\n            tickLength: 8,\n            tickWidth: (_ctx, options)=>options.lineWidth,\n            tickColor: (_ctx, options)=>options.color,\n            offset: false\n        },\n        border: {\n            display: true,\n            dash: [],\n            dashOffset: 0.0,\n            width: 1\n        },\n        title: {\n            display: false,\n            text: '',\n            padding: {\n                top: 4,\n                bottom: 4\n            }\n        },\n        ticks: {\n            minRotation: 0,\n            maxRotation: 50,\n            mirror: false,\n            textStrokeWidth: 0,\n            textStrokeColor: '',\n            padding: 3,\n            display: true,\n            autoSkip: true,\n            autoSkipPadding: 3,\n            labelOffset: 0,\n            callback: Ticks.formatters.values,\n            minor: {},\n            major: {},\n            align: 'center',\n            crossAlign: 'near',\n            showLabelBackdrop: false,\n            backdropColor: 'rgba(255, 255, 255, 0.75)',\n            backdropPadding: 2\n        }\n    });\n    defaults.route('scale.ticks', 'color', '', 'color');\n    defaults.route('scale.grid', 'color', '', 'borderColor');\n    defaults.route('scale.border', 'color', '', 'borderColor');\n    defaults.route('scale.title', 'color', '', 'color');\n    defaults.describe('scale', {\n        _fallback: false,\n        _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n        _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n    });\n    defaults.describe('scales', {\n        _fallback: 'scale'\n    });\n    defaults.describe('scale.ticks', {\n        _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n        _indexable: (name)=>name !== 'backdropPadding'\n    });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n    if (!key) {\n        return node;\n    }\n    const keys = key.split('.');\n    for(let i = 0, n = keys.length; i < n; ++i){\n        const k = keys[i];\n        node = node[k] || (node[k] = Object.create(null));\n    }\n    return node;\n}\nfunction set(root, scope, values) {\n    if (typeof scope === 'string') {\n        return merge(getScope$1(root, scope), values);\n    }\n    return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n    constructor(_descriptors, _appliers){\n        this.animation = undefined;\n        this.backgroundColor = 'rgba(0,0,0,0.1)';\n        this.borderColor = 'rgba(0,0,0,0.1)';\n        this.color = '#666';\n        this.datasets = {};\n        this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n        this.elements = {};\n        this.events = [\n            'mousemove',\n            'mouseout',\n            'click',\n            'touchstart',\n            'touchmove'\n        ];\n        this.font = {\n            family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n            size: 12,\n            style: 'normal',\n            lineHeight: 1.2,\n            weight: null\n        };\n        this.hover = {};\n        this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n        this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n        this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n        this.indexAxis = 'x';\n        this.interaction = {\n            mode: 'nearest',\n            intersect: true,\n            includeInvisible: false\n        };\n        this.maintainAspectRatio = true;\n        this.onHover = null;\n        this.onClick = null;\n        this.parsing = true;\n        this.plugins = {};\n        this.responsive = true;\n        this.scale = undefined;\n        this.scales = {};\n        this.showLine = true;\n        this.drawActiveElementsOnTop = true;\n        this.describe(_descriptors);\n        this.apply(_appliers);\n    }\n set(scope, values) {\n        return set(this, scope, values);\n    }\n get(scope) {\n        return getScope$1(this, scope);\n    }\n describe(scope, values) {\n        return set(descriptors, scope, values);\n    }\n    override(scope, values) {\n        return set(overrides, scope, values);\n    }\n route(scope, name, targetScope, targetName) {\n        const scopeObject = getScope$1(this, scope);\n        const targetScopeObject = getScope$1(this, targetScope);\n        const privateName = '_' + name;\n        Object.defineProperties(scopeObject, {\n            [privateName]: {\n                value: scopeObject[name],\n                writable: true\n            },\n            [name]: {\n                enumerable: true,\n                get () {\n                    const local = this[privateName];\n                    const target = targetScopeObject[targetName];\n                    if (isObject(local)) {\n                        return Object.assign({}, target, local);\n                    }\n                    return valueOrDefault(local, target);\n                },\n                set (value) {\n                    this[privateName] = value;\n                }\n            }\n        });\n    }\n    apply(appliers) {\n        appliers.forEach((apply)=>apply(this));\n    }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n    _scriptable: (name)=>!name.startsWith('on'),\n    _indexable: (name)=>name !== 'events',\n    hover: {\n        _fallback: 'interaction'\n    },\n    interaction: {\n        _scriptable: false,\n        _indexable: false\n    }\n}, [\n    applyAnimationsDefaults,\n    applyLayoutsDefaults,\n    applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n    if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n        return null;\n    }\n    return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n    let textWidth = data[string];\n    if (!textWidth) {\n        textWidth = data[string] = ctx.measureText(string).width;\n        gc.push(string);\n    }\n    if (textWidth > longest) {\n        longest = textWidth;\n    }\n    return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n    cache = cache || {};\n    let data = cache.data = cache.data || {};\n    let gc = cache.garbageCollect = cache.garbageCollect || [];\n    if (cache.font !== font) {\n        data = cache.data = {};\n        gc = cache.garbageCollect = [];\n        cache.font = font;\n    }\n    ctx.save();\n    ctx.font = font;\n    let longest = 0;\n    const ilen = arrayOfThings.length;\n    let i, j, jlen, thing, nestedThing;\n    for(i = 0; i < ilen; i++){\n        thing = arrayOfThings[i];\n        // Undefined strings and arrays should not be measured\n        if (thing !== undefined && thing !== null && !isArray(thing)) {\n            longest = _measureText(ctx, data, gc, longest, thing);\n        } else if (isArray(thing)) {\n            // if it is an array lets measure each element\n            // to do maybe simplify this function a bit so we can do this more recursively?\n            for(j = 0, jlen = thing.length; j < jlen; j++){\n                nestedThing = thing[j];\n                // Undefined strings and arrays should not be measured\n                if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n                    longest = _measureText(ctx, data, gc, longest, nestedThing);\n                }\n            }\n        }\n    }\n    ctx.restore();\n    const gcLen = gc.length / 2;\n    if (gcLen > arrayOfThings.length) {\n        for(i = 0; i < gcLen; i++){\n            delete data[gc[i]];\n        }\n        gc.splice(0, gcLen);\n    }\n    return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n    const devicePixelRatio = chart.currentDevicePixelRatio;\n    const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n    return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n    if (!ctx && !canvas) {\n        return;\n    }\n    ctx = ctx || canvas.getContext('2d');\n    ctx.save();\n    // canvas.width and canvas.height do not consider the canvas transform,\n    // while clearRect does\n    ctx.resetTransform();\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\n    ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n    let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n    const style = options.pointStyle;\n    const rotation = options.rotation;\n    const radius = options.radius;\n    let rad = (rotation || 0) * RAD_PER_DEG;\n    if (style && typeof style === 'object') {\n        type = style.toString();\n        if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n            ctx.save();\n            ctx.translate(x, y);\n            ctx.rotate(rad);\n            ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n            ctx.restore();\n            return;\n        }\n    }\n    if (isNaN(radius) || radius <= 0) {\n        return;\n    }\n    ctx.beginPath();\n    switch(style){\n        // Default includes circle\n        default:\n            if (w) {\n                ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n            } else {\n                ctx.arc(x, y, radius, 0, TAU);\n            }\n            ctx.closePath();\n            break;\n        case 'triangle':\n            width = w ? w / 2 : radius;\n            ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n            rad += TWO_THIRDS_PI;\n            ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n            rad += TWO_THIRDS_PI;\n            ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n            ctx.closePath();\n            break;\n        case 'rectRounded':\n            // NOTE: the rounded rect implementation changed to use `arc` instead of\n            // `quadraticCurveTo` since it generates better results when rect is\n            // almost a circle. 0.516 (instead of 0.5) produces results with visually\n            // closer proportion to the previous impl and it is inscribed in the\n            // circle with `radius`. For more details, see the following PRs:\n            // https://github.com/chartjs/Chart.js/issues/5597\n            // https://github.com/chartjs/Chart.js/issues/5858\n            cornerRadius = radius * 0.516;\n            size = radius - cornerRadius;\n            xOffset = Math.cos(rad + QUARTER_PI) * size;\n            xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n            yOffset = Math.sin(rad + QUARTER_PI) * size;\n            yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n            ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n            ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n            ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n            ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n            ctx.closePath();\n            break;\n        case 'rect':\n            if (!rotation) {\n                size = Math.SQRT1_2 * radius;\n                width = w ? w / 2 : size;\n                ctx.rect(x - width, y - size, 2 * width, 2 * size);\n                break;\n            }\n            rad += QUARTER_PI;\n        /* falls through */ case 'rectRot':\n            xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n            xOffset = Math.cos(rad) * radius;\n            yOffset = Math.sin(rad) * radius;\n            yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n            ctx.moveTo(x - xOffsetW, y - yOffset);\n            ctx.lineTo(x + yOffsetW, y - xOffset);\n            ctx.lineTo(x + xOffsetW, y + yOffset);\n            ctx.lineTo(x - yOffsetW, y + xOffset);\n            ctx.closePath();\n            break;\n        case 'crossRot':\n            rad += QUARTER_PI;\n        /* falls through */ case 'cross':\n            xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n            xOffset = Math.cos(rad) * radius;\n            yOffset = Math.sin(rad) * radius;\n            yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n            ctx.moveTo(x - xOffsetW, y - yOffset);\n            ctx.lineTo(x + xOffsetW, y + yOffset);\n            ctx.moveTo(x + yOffsetW, y - xOffset);\n            ctx.lineTo(x - yOffsetW, y + xOffset);\n            break;\n        case 'star':\n            xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n            xOffset = Math.cos(rad) * radius;\n            yOffset = Math.sin(rad) * radius;\n            yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n            ctx.moveTo(x - xOffsetW, y - yOffset);\n            ctx.lineTo(x + xOffsetW, y + yOffset);\n            ctx.moveTo(x + yOffsetW, y - xOffset);\n            ctx.lineTo(x - yOffsetW, y + xOffset);\n            rad += QUARTER_PI;\n            xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n            xOffset = Math.cos(rad) * radius;\n            yOffset = Math.sin(rad) * radius;\n            yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n            ctx.moveTo(x - xOffsetW, y - yOffset);\n            ctx.lineTo(x + xOffsetW, y + yOffset);\n            ctx.moveTo(x + yOffsetW, y - xOffset);\n            ctx.lineTo(x - yOffsetW, y + xOffset);\n            break;\n        case 'line':\n            xOffset = w ? w / 2 : Math.cos(rad) * radius;\n            yOffset = Math.sin(rad) * radius;\n            ctx.moveTo(x - xOffset, y - yOffset);\n            ctx.lineTo(x + xOffset, y + yOffset);\n            break;\n        case 'dash':\n            ctx.moveTo(x, y);\n            ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n            break;\n        case false:\n            ctx.closePath();\n            break;\n    }\n    ctx.fill();\n    if (options.borderWidth > 0) {\n        ctx.stroke();\n    }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n    margin = margin || 0.5; // margin - default is to match rounded decimals\n    return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n    ctx.save();\n    ctx.beginPath();\n    ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n    ctx.clip();\n}\nfunction unclipArea(ctx) {\n    ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n    if (!previous) {\n        return ctx.lineTo(target.x, target.y);\n    }\n    if (mode === 'middle') {\n        const midpoint = (previous.x + target.x) / 2.0;\n        ctx.lineTo(midpoint, previous.y);\n        ctx.lineTo(midpoint, target.y);\n    } else if (mode === 'after' !== !!flip) {\n        ctx.lineTo(previous.x, target.y);\n    } else {\n        ctx.lineTo(target.x, previous.y);\n    }\n    ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n    if (!previous) {\n        return ctx.lineTo(target.x, target.y);\n    }\n    ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n    if (opts.translation) {\n        ctx.translate(opts.translation[0], opts.translation[1]);\n    }\n    if (!isNullOrUndef(opts.rotation)) {\n        ctx.rotate(opts.rotation);\n    }\n    if (opts.color) {\n        ctx.fillStyle = opts.color;\n    }\n    if (opts.textAlign) {\n        ctx.textAlign = opts.textAlign;\n    }\n    if (opts.textBaseline) {\n        ctx.textBaseline = opts.textBaseline;\n    }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n    if (opts.strikethrough || opts.underline) {\n        /**\n     * Now that IE11 support has been dropped, we can use more\n     * of the TextMetrics object. The actual bounding boxes\n     * are unflagged in Chrome, Firefox, Edge, and Safari so they\n     * can be safely used.\n     * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n     */ const metrics = ctx.measureText(line);\n        const left = x - metrics.actualBoundingBoxLeft;\n        const right = x + metrics.actualBoundingBoxRight;\n        const top = y - metrics.actualBoundingBoxAscent;\n        const bottom = y + metrics.actualBoundingBoxDescent;\n        const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n        ctx.strokeStyle = ctx.fillStyle;\n        ctx.beginPath();\n        ctx.lineWidth = opts.decorationWidth || 2;\n        ctx.moveTo(left, yDecoration);\n        ctx.lineTo(right, yDecoration);\n        ctx.stroke();\n    }\n}\nfunction drawBackdrop(ctx, opts) {\n    const oldColor = ctx.fillStyle;\n    ctx.fillStyle = opts.color;\n    ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n    ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n    const lines = isArray(text) ? text : [\n        text\n    ];\n    const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n    let i, line;\n    ctx.save();\n    ctx.font = font.string;\n    setRenderOpts(ctx, opts);\n    for(i = 0; i < lines.length; ++i){\n        line = lines[i];\n        if (opts.backdrop) {\n            drawBackdrop(ctx, opts.backdrop);\n        }\n        if (stroke) {\n            if (opts.strokeColor) {\n                ctx.strokeStyle = opts.strokeColor;\n            }\n            if (!isNullOrUndef(opts.strokeWidth)) {\n                ctx.lineWidth = opts.strokeWidth;\n            }\n            ctx.strokeText(line, x, y, opts.maxWidth);\n        }\n        ctx.fillText(line, x, y, opts.maxWidth);\n        decorateText(ctx, x, y, line, opts);\n        y += Number(font.lineHeight);\n    }\n    ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n    const { x , y , w , h , radius  } = rect;\n    // top left arc\n    ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n    // line from top left to bottom left\n    ctx.lineTo(x, y + h - radius.bottomLeft);\n    // bottom left arc\n    ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n    // line from bottom left to bottom right\n    ctx.lineTo(x + w - radius.bottomRight, y + h);\n    // bottom right arc\n    ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n    // line from bottom right to top right\n    ctx.lineTo(x + w, y + radius.topRight);\n    // top right arc\n    ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n    // line from top right to top left\n    ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n    const matches = ('' + value).match(LINE_HEIGHT);\n    if (!matches || matches[1] === 'normal') {\n        return size * 1.2;\n    }\n    value = +matches[2];\n    switch(matches[3]){\n        case 'px':\n            return value;\n        case '%':\n            value /= 100;\n            break;\n    }\n    return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n    const ret = {};\n    const objProps = isObject(props);\n    const keys = objProps ? Object.keys(props) : props;\n    const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n    for (const prop of keys){\n        ret[prop] = numberOrZero(read(prop));\n    }\n    return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n    return _readValueToProps(value, {\n        top: 'y',\n        right: 'x',\n        bottom: 'y',\n        left: 'x'\n    });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n    return _readValueToProps(value, [\n        'topLeft',\n        'topRight',\n        'bottomLeft',\n        'bottomRight'\n    ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n    const obj = toTRBL(value);\n    obj.width = obj.left + obj.right;\n    obj.height = obj.top + obj.bottom;\n    return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n    options = options || {};\n    fallback = fallback || defaults.font;\n    let size = valueOrDefault(options.size, fallback.size);\n    if (typeof size === 'string') {\n        size = parseInt(size, 10);\n    }\n    let style = valueOrDefault(options.style, fallback.style);\n    if (style && !('' + style).match(FONT_STYLE)) {\n        console.warn('Invalid font style specified: \"' + style + '\"');\n        style = undefined;\n    }\n    const font = {\n        family: valueOrDefault(options.family, fallback.family),\n        lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n        size,\n        style,\n        weight: valueOrDefault(options.weight, fallback.weight),\n        string: ''\n    };\n    font.string = toFontString(font);\n    return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n    let cacheable = true;\n    let i, ilen, value;\n    for(i = 0, ilen = inputs.length; i < ilen; ++i){\n        value = inputs[i];\n        if (value === undefined) {\n            continue;\n        }\n        if (context !== undefined && typeof value === 'function') {\n            value = value(context);\n            cacheable = false;\n        }\n        if (index !== undefined && isArray(value)) {\n            value = value[index % value.length];\n            cacheable = false;\n        }\n        if (value !== undefined) {\n            if (info && !cacheable) {\n                info.cacheable = false;\n            }\n            return value;\n        }\n    }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n    const { min , max  } = minmax;\n    const change = toDimension(grace, (max - min) / 2);\n    const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n    return {\n        min: keepZero(min, -Math.abs(change)),\n        max: keepZero(max, change)\n    };\n}\nfunction createContext(parentContext, context) {\n    return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n    ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n    const finalRootScopes = rootScopes || scopes;\n    if (typeof fallback === 'undefined') {\n        fallback = _resolve('_fallback', scopes);\n    }\n    const cache = {\n        [Symbol.toStringTag]: 'Object',\n        _cacheable: true,\n        _scopes: scopes,\n        _rootScopes: finalRootScopes,\n        _fallback: fallback,\n        _getTarget: getTarget,\n        override: (scope)=>_createResolver([\n                scope,\n                ...scopes\n            ], prefixes, finalRootScopes, fallback)\n    };\n    return new Proxy(cache, {\n        /**\n     * A trap for the delete operator.\n     */ deleteProperty (target, prop) {\n            delete target[prop]; // remove from cache\n            delete target._keys; // remove cached keys\n            delete scopes[0][prop]; // remove from top level scope\n            return true;\n        },\n        /**\n     * A trap for getting property values.\n     */ get (target, prop) {\n            return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n        },\n        /**\n     * A trap for Object.getOwnPropertyDescriptor.\n     * Also used by Object.hasOwnProperty.\n     */ getOwnPropertyDescriptor (target, prop) {\n            return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n        },\n        /**\n     * A trap for Object.getPrototypeOf.\n     */ getPrototypeOf () {\n            return Reflect.getPrototypeOf(scopes[0]);\n        },\n        /**\n     * A trap for the in operator.\n     */ has (target, prop) {\n            return getKeysFromAllScopes(target).includes(prop);\n        },\n        /**\n     * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n     */ ownKeys (target) {\n            return getKeysFromAllScopes(target);\n        },\n        /**\n     * A trap for setting property values.\n     */ set (target, prop, value) {\n            const storage = target._storage || (target._storage = getTarget());\n            target[prop] = storage[prop] = value; // set to top level scope + cache\n            delete target._keys; // remove cached keys\n            return true;\n        }\n    });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n    const cache = {\n        _cacheable: false,\n        _proxy: proxy,\n        _context: context,\n        _subProxy: subProxy,\n        _stack: new Set(),\n        _descriptors: _descriptors(proxy, descriptorDefaults),\n        setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n        override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n    };\n    return new Proxy(cache, {\n        /**\n     * A trap for the delete operator.\n     */ deleteProperty (target, prop) {\n            delete target[prop]; // remove from cache\n            delete proxy[prop]; // remove from proxy\n            return true;\n        },\n        /**\n     * A trap for getting property values.\n     */ get (target, prop, receiver) {\n            return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n        },\n        /**\n     * A trap for Object.getOwnPropertyDescriptor.\n     * Also used by Object.hasOwnProperty.\n     */ getOwnPropertyDescriptor (target, prop) {\n            return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n                enumerable: true,\n                configurable: true\n            } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n        },\n        /**\n     * A trap for Object.getPrototypeOf.\n     */ getPrototypeOf () {\n            return Reflect.getPrototypeOf(proxy);\n        },\n        /**\n     * A trap for the in operator.\n     */ has (target, prop) {\n            return Reflect.has(proxy, prop);\n        },\n        /**\n     * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n     */ ownKeys () {\n            return Reflect.ownKeys(proxy);\n        },\n        /**\n     * A trap for setting property values.\n     */ set (target, prop, value) {\n            proxy[prop] = value; // set to proxy\n            delete target[prop]; // remove from cache\n            return true;\n        }\n    });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n    scriptable: true,\n    indexable: true\n}) {\n    const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys  } = proxy;\n    return {\n        allKeys: _allKeys,\n        scriptable: _scriptable,\n        indexable: _indexable,\n        isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n        isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n    };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n    if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n        return target[prop];\n    }\n    const value = resolve();\n    // cache the resolved value\n    target[prop] = value;\n    return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n    const { _proxy , _context , _subProxy , _descriptors: descriptors  } = target;\n    let value = _proxy[prop]; // resolve from proxy\n    // resolve with context\n    if (isFunction(value) && descriptors.isScriptable(prop)) {\n        value = _resolveScriptable(prop, value, target, receiver);\n    }\n    if (isArray(value) && value.length) {\n        value = _resolveArray(prop, value, target, descriptors.isIndexable);\n    }\n    if (needsSubResolver(prop, value)) {\n        // if the resolved value is an object, create a sub resolver for it\n        value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n    }\n    return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n    const { _proxy , _context , _subProxy , _stack  } = target;\n    if (_stack.has(prop)) {\n        throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n    }\n    _stack.add(prop);\n    let value = getValue(_context, _subProxy || receiver);\n    _stack.delete(prop);\n    if (needsSubResolver(prop, value)) {\n        // When scriptable option returns an object, create a resolver on that.\n        value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n    }\n    return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n    const { _proxy , _context , _subProxy , _descriptors: descriptors  } = target;\n    if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n        return value[_context.index % value.length];\n    } else if (isObject(value[0])) {\n        // Array of objects, return array or resolvers\n        const arr = value;\n        const scopes = _proxy._scopes.filter((s)=>s !== arr);\n        value = [];\n        for (const item of arr){\n            const resolver = createSubResolver(scopes, _proxy, prop, item);\n            value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n        }\n    }\n    return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n    return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n    for (const parent of parentScopes){\n        const scope = getScope(key, parent);\n        if (scope) {\n            set.add(scope);\n            const fallback = resolveFallback(scope._fallback, key, value);\n            if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n                // When we reach the descriptor that defines a new _fallback, return that.\n                // The fallback will resume to that new scope.\n                return fallback;\n            }\n        } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n            // Fallback to `false` results to `false`, when falling back to different key.\n            // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n            return null;\n        }\n    }\n    return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n    const rootScopes = resolver._rootScopes;\n    const fallback = resolveFallback(resolver._fallback, prop, value);\n    const allScopes = [\n        ...parentScopes,\n        ...rootScopes\n    ];\n    const set = new Set();\n    set.add(value);\n    let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n    if (key === null) {\n        return false;\n    }\n    if (typeof fallback !== 'undefined' && fallback !== prop) {\n        key = addScopesFromKey(set, allScopes, fallback, key, value);\n        if (key === null) {\n            return false;\n        }\n    }\n    return _createResolver(Array.from(set), [\n        ''\n    ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n    while(key){\n        key = addScopes(set, allScopes, key, fallback, item);\n    }\n    return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n    const parent = resolver._getTarget();\n    if (!(prop in parent)) {\n        parent[prop] = {};\n    }\n    const target = parent[prop];\n    if (isArray(target) && isObject(value)) {\n        // For array of objects, the object is used to store updated values\n        return value;\n    }\n    return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n    let value;\n    for (const prefix of prefixes){\n        value = _resolve(readKey(prefix, prop), scopes);\n        if (typeof value !== 'undefined') {\n            return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n        }\n    }\n}\nfunction _resolve(key, scopes) {\n    for (const scope of scopes){\n        if (!scope) {\n            continue;\n        }\n        const value = scope[key];\n        if (typeof value !== 'undefined') {\n            return value;\n        }\n    }\n}\nfunction getKeysFromAllScopes(target) {\n    let keys = target._keys;\n    if (!keys) {\n        keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n    }\n    return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n    const set = new Set();\n    for (const scope of scopes){\n        for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n            set.add(key);\n        }\n    }\n    return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n    const { iScale  } = meta;\n    const { key ='r'  } = this._parsing;\n    const parsed = new Array(count);\n    let i, ilen, index, item;\n    for(i = 0, ilen = count; i < ilen; ++i){\n        index = i + start;\n        item = data[index];\n        parsed[i] = {\n            r: iScale.parse(resolveObjectKey(item, key), index)\n        };\n    }\n    return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n    // Props to Rob Spencer at scaled innovation for his post on splining between points\n    // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n    // This function must also respect \"skipped\" points\n    const previous = firstPoint.skip ? middlePoint : firstPoint;\n    const current = middlePoint;\n    const next = afterPoint.skip ? middlePoint : afterPoint;\n    const d01 = distanceBetweenPoints(current, previous);\n    const d12 = distanceBetweenPoints(next, current);\n    let s01 = d01 / (d01 + d12);\n    let s12 = d12 / (d01 + d12);\n    // If all points are the same, s01 & s02 will be inf\n    s01 = isNaN(s01) ? 0 : s01;\n    s12 = isNaN(s12) ? 0 : s12;\n    const fa = t * s01; // scaling factor for triangle Ta\n    const fb = t * s12;\n    return {\n        previous: {\n            x: current.x - fa * (next.x - previous.x),\n            y: current.y - fa * (next.y - previous.y)\n        },\n        next: {\n            x: current.x + fb * (next.x - previous.x),\n            y: current.y + fb * (next.y - previous.y)\n        }\n    };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n    const pointsLen = points.length;\n    let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n    let pointAfter = getPoint(points, 0);\n    for(let i = 0; i < pointsLen - 1; ++i){\n        pointCurrent = pointAfter;\n        pointAfter = getPoint(points, i + 1);\n        if (!pointCurrent || !pointAfter) {\n            continue;\n        }\n        if (almostEquals(deltaK[i], 0, EPSILON)) {\n            mK[i] = mK[i + 1] = 0;\n            continue;\n        }\n        alphaK = mK[i] / deltaK[i];\n        betaK = mK[i + 1] / deltaK[i];\n        squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n        if (squaredMagnitude <= 9) {\n            continue;\n        }\n        tauK = 3 / Math.sqrt(squaredMagnitude);\n        mK[i] = alphaK * tauK * deltaK[i];\n        mK[i + 1] = betaK * tauK * deltaK[i];\n    }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n    const valueAxis = getValueAxis(indexAxis);\n    const pointsLen = points.length;\n    let delta, pointBefore, pointCurrent;\n    let pointAfter = getPoint(points, 0);\n    for(let i = 0; i < pointsLen; ++i){\n        pointBefore = pointCurrent;\n        pointCurrent = pointAfter;\n        pointAfter = getPoint(points, i + 1);\n        if (!pointCurrent) {\n            continue;\n        }\n        const iPixel = pointCurrent[indexAxis];\n        const vPixel = pointCurrent[valueAxis];\n        if (pointBefore) {\n            delta = (iPixel - pointBefore[indexAxis]) / 3;\n            pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n            pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n        }\n        if (pointAfter) {\n            delta = (pointAfter[indexAxis] - iPixel) / 3;\n            pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n            pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n        }\n    }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n    const valueAxis = getValueAxis(indexAxis);\n    const pointsLen = points.length;\n    const deltaK = Array(pointsLen).fill(0);\n    const mK = Array(pointsLen);\n    // Calculate slopes (deltaK) and initialize tangents (mK)\n    let i, pointBefore, pointCurrent;\n    let pointAfter = getPoint(points, 0);\n    for(i = 0; i < pointsLen; ++i){\n        pointBefore = pointCurrent;\n        pointCurrent = pointAfter;\n        pointAfter = getPoint(points, i + 1);\n        if (!pointCurrent) {\n            continue;\n        }\n        if (pointAfter) {\n            const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n            // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n            deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n        }\n        mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n    }\n    monotoneAdjust(points, deltaK, mK);\n    monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n    return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n    let i, ilen, point, inArea, inAreaPrev;\n    let inAreaNext = _isPointInArea(points[0], area);\n    for(i = 0, ilen = points.length; i < ilen; ++i){\n        inAreaPrev = inArea;\n        inArea = inAreaNext;\n        inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n        if (!inArea) {\n            continue;\n        }\n        point = points[i];\n        if (inAreaPrev) {\n            point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n            point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n        }\n        if (inAreaNext) {\n            point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n            point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n        }\n    }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n    let i, ilen, point, controlPoints;\n    // Only consider points that are drawn in case the spanGaps option is used\n    if (options.spanGaps) {\n        points = points.filter((pt)=>!pt.skip);\n    }\n    if (options.cubicInterpolationMode === 'monotone') {\n        splineCurveMonotone(points, indexAxis);\n    } else {\n        let prev = loop ? points[points.length - 1] : points[0];\n        for(i = 0, ilen = points.length; i < ilen; ++i){\n            point = points[i];\n            controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n            point.cp1x = controlPoints.previous.x;\n            point.cp1y = controlPoints.previous.y;\n            point.cp2x = controlPoints.next.x;\n            point.cp2y = controlPoints.next.y;\n            prev = point;\n        }\n    }\n    if (options.capBezierPoints) {\n        capBezierPoints(points, area);\n    }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n    return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n    let parent = domNode.parentNode;\n    if (parent && parent.toString() === '[object ShadowRoot]') {\n        parent = parent.host;\n    }\n    return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n    let valueInPixels;\n    if (typeof styleValue === 'string') {\n        valueInPixels = parseInt(styleValue, 10);\n        if (styleValue.indexOf('%') !== -1) {\n            // percentage * size in dimension\n            valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n        }\n    } else {\n        valueInPixels = styleValue;\n    }\n    return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n    return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n    'top',\n    'right',\n    'bottom',\n    'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n    const result = {};\n    suffix = suffix ? '-' + suffix : '';\n    for(let i = 0; i < 4; i++){\n        const pos = positions[i];\n        result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n    }\n    result.width = result.left + result.right;\n    result.height = result.top + result.bottom;\n    return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n    const touches = e.touches;\n    const source = touches && touches.length ? touches[0] : e;\n    const { offsetX , offsetY  } = source;\n    let box = false;\n    let x, y;\n    if (useOffsetPos(offsetX, offsetY, e.target)) {\n        x = offsetX;\n        y = offsetY;\n    } else {\n        const rect = canvas.getBoundingClientRect();\n        x = source.clientX - rect.left;\n        y = source.clientY - rect.top;\n        box = true;\n    }\n    return {\n        x,\n        y,\n        box\n    };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n    if ('native' in event) {\n        return event;\n    }\n    const { canvas , currentDevicePixelRatio  } = chart;\n    const style = getComputedStyle(canvas);\n    const borderBox = style.boxSizing === 'border-box';\n    const paddings = getPositionedStyle(style, 'padding');\n    const borders = getPositionedStyle(style, 'border', 'width');\n    const { x , y , box  } = getCanvasPosition(event, canvas);\n    const xOffset = paddings.left + (box && borders.left);\n    const yOffset = paddings.top + (box && borders.top);\n    let { width , height  } = chart;\n    if (borderBox) {\n        width -= paddings.width + borders.width;\n        height -= paddings.height + borders.height;\n    }\n    return {\n        x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n        y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n    };\n}\nfunction getContainerSize(canvas, width, height) {\n    let maxWidth, maxHeight;\n    if (width === undefined || height === undefined) {\n        const container = canvas && _getParentNode(canvas);\n        if (!container) {\n            width = canvas.clientWidth;\n            height = canvas.clientHeight;\n        } else {\n            const rect = container.getBoundingClientRect(); // this is the border box of the container\n            const containerStyle = getComputedStyle(container);\n            const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n            const containerPadding = getPositionedStyle(containerStyle, 'padding');\n            width = rect.width - containerPadding.width - containerBorder.width;\n            height = rect.height - containerPadding.height - containerBorder.height;\n            maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n            maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n        }\n    }\n    return {\n        width,\n        height,\n        maxWidth: maxWidth || INFINITY,\n        maxHeight: maxHeight || INFINITY\n    };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n    const style = getComputedStyle(canvas);\n    const margins = getPositionedStyle(style, 'margin');\n    const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n    const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n    const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n    let { width , height  } = containerSize;\n    if (style.boxSizing === 'content-box') {\n        const borders = getPositionedStyle(style, 'border', 'width');\n        const paddings = getPositionedStyle(style, 'padding');\n        width -= paddings.width + borders.width;\n        height -= paddings.height + borders.height;\n    }\n    width = Math.max(0, width - margins.width);\n    height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n    width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n    height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n    if (width && !height) {\n        // https://github.com/chartjs/Chart.js/issues/4659\n        // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n        height = round1(width / 2);\n    }\n    const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n    if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n        height = containerSize.height;\n        width = round1(Math.floor(height * aspectRatio));\n    }\n    return {\n        width,\n        height\n    };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n    const pixelRatio = forceRatio || 1;\n    const deviceHeight = round1(chart.height * pixelRatio);\n    const deviceWidth = round1(chart.width * pixelRatio);\n    chart.height = round1(chart.height);\n    chart.width = round1(chart.width);\n    const canvas = chart.canvas;\n    // If no style has been set on the canvas, the render size is used as display size,\n    // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n    // See https://github.com/chartjs/Chart.js/issues/3575\n    if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n        canvas.style.height = `${chart.height}px`;\n        canvas.style.width = `${chart.width}px`;\n    }\n    if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n        chart.currentDevicePixelRatio = pixelRatio;\n        canvas.height = deviceHeight;\n        canvas.width = deviceWidth;\n        chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n        return true;\n    }\n    return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n    let passiveSupported = false;\n    try {\n        const options = {\n            get passive () {\n                passiveSupported = true;\n                return false;\n            }\n        };\n        if (_isDomSupported()) {\n            window.addEventListener('test', null, options);\n            window.removeEventListener('test', null, options);\n        }\n    } catch (e) {\n    // continue regardless of error\n    }\n    return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n    const value = getStyle(element, property);\n    const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n    return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n    return {\n        x: p1.x + t * (p2.x - p1.x),\n        y: p1.y + t * (p2.y - p1.y)\n    };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n    return {\n        x: p1.x + t * (p2.x - p1.x),\n        y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n    };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n    const cp1 = {\n        x: p1.cp2x,\n        y: p1.cp2y\n    };\n    const cp2 = {\n        x: p2.cp1x,\n        y: p2.cp1y\n    };\n    const a = _pointInLine(p1, cp1, t);\n    const b = _pointInLine(cp1, cp2, t);\n    const c = _pointInLine(cp2, p2, t);\n    const d = _pointInLine(a, b, t);\n    const e = _pointInLine(b, c, t);\n    return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n    return {\n        x (x) {\n            return rectX + rectX + width - x;\n        },\n        setWidth (w) {\n            width = w;\n        },\n        textAlign (align) {\n            if (align === 'center') {\n                return align;\n            }\n            return align === 'right' ? 'left' : 'right';\n        },\n        xPlus (x, value) {\n            return x - value;\n        },\n        leftForLtr (x, itemWidth) {\n            return x - itemWidth;\n        }\n    };\n};\nconst getLeftToRightAdapter = function() {\n    return {\n        x (x) {\n            return x;\n        },\n        setWidth (w) {},\n        textAlign (align) {\n            return align;\n        },\n        xPlus (x, value) {\n            return x + value;\n        },\n        leftForLtr (x, _itemWidth) {\n            return x;\n        }\n    };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n    return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n    let style, original;\n    if (direction === 'ltr' || direction === 'rtl') {\n        style = ctx.canvas.style;\n        original = [\n            style.getPropertyValue('direction'),\n            style.getPropertyPriority('direction')\n        ];\n        style.setProperty('direction', direction, 'important');\n        ctx.prevTextDirection = original;\n    }\n}\nfunction restoreTextDirection(ctx, original) {\n    if (original !== undefined) {\n        delete ctx.prevTextDirection;\n        ctx.canvas.style.setProperty('direction', original[0], original[1]);\n    }\n}\n\nfunction propertyFn(property) {\n    if (property === 'angle') {\n        return {\n            between: _angleBetween,\n            compare: _angleDiff,\n            normalize: _normalizeAngle\n        };\n    }\n    return {\n        between: _isBetween,\n        compare: (a, b)=>a - b,\n        normalize: (x)=>x\n    };\n}\nfunction normalizeSegment({ start , end , count , loop , style  }) {\n    return {\n        start: start % count,\n        end: end % count,\n        loop: loop && (end - start + 1) % count === 0,\n        style\n    };\n}\nfunction getSegment(segment, points, bounds) {\n    const { property , start: startBound , end: endBound  } = bounds;\n    const { between , normalize  } = propertyFn(property);\n    const count = points.length;\n    let { start , end , loop  } = segment;\n    let i, ilen;\n    if (loop) {\n        start += count;\n        end += count;\n        for(i = 0, ilen = count; i < ilen; ++i){\n            if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n                break;\n            }\n            start--;\n            end--;\n        }\n        start %= count;\n        end %= count;\n    }\n    if (end < start) {\n        end += count;\n    }\n    return {\n        start,\n        end,\n        loop,\n        style: segment.style\n    };\n}\n function _boundSegment(segment, points, bounds) {\n    if (!bounds) {\n        return [\n            segment\n        ];\n    }\n    const { property , start: startBound , end: endBound  } = bounds;\n    const count = points.length;\n    const { compare , between , normalize  } = propertyFn(property);\n    const { start , end , loop , style  } = getSegment(segment, points, bounds);\n    const result = [];\n    let inside = false;\n    let subStart = null;\n    let value, point, prevValue;\n    const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n    const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n    const shouldStart = ()=>inside || startIsBefore();\n    const shouldStop = ()=>!inside || endIsBefore();\n    for(let i = start, prev = start; i <= end; ++i){\n        point = points[i % count];\n        if (point.skip) {\n            continue;\n        }\n        value = normalize(point[property]);\n        if (value === prevValue) {\n            continue;\n        }\n        inside = between(value, startBound, endBound);\n        if (subStart === null && shouldStart()) {\n            subStart = compare(value, startBound) === 0 ? i : prev;\n        }\n        if (subStart !== null && shouldStop()) {\n            result.push(normalizeSegment({\n                start: subStart,\n                end: i,\n                loop,\n                count,\n                style\n            }));\n            subStart = null;\n        }\n        prev = i;\n        prevValue = value;\n    }\n    if (subStart !== null) {\n        result.push(normalizeSegment({\n            start: subStart,\n            end,\n            loop,\n            count,\n            style\n        }));\n    }\n    return result;\n}\n function _boundSegments(line, bounds) {\n    const result = [];\n    const segments = line.segments;\n    for(let i = 0; i < segments.length; i++){\n        const sub = _boundSegment(segments[i], line.points, bounds);\n        if (sub.length) {\n            result.push(...sub);\n        }\n    }\n    return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n    let start = 0;\n    let end = count - 1;\n    if (loop && !spanGaps) {\n        while(start < count && !points[start].skip){\n            start++;\n        }\n    }\n    while(start < count && points[start].skip){\n        start++;\n    }\n    start %= count;\n    if (loop) {\n        end += start;\n    }\n    while(end > start && points[end % count].skip){\n        end--;\n    }\n    end %= count;\n    return {\n        start,\n        end\n    };\n}\n function solidSegments(points, start, max, loop) {\n    const count = points.length;\n    const result = [];\n    let last = start;\n    let prev = points[start];\n    let end;\n    for(end = start + 1; end <= max; ++end){\n        const cur = points[end % count];\n        if (cur.skip || cur.stop) {\n            if (!prev.skip) {\n                loop = false;\n                result.push({\n                    start: start % count,\n                    end: (end - 1) % count,\n                    loop\n                });\n                start = last = cur.stop ? end : null;\n            }\n        } else {\n            last = end;\n            if (prev.skip) {\n                start = end;\n            }\n        }\n        prev = cur;\n    }\n    if (last !== null) {\n        result.push({\n            start: start % count,\n            end: last % count,\n            loop\n        });\n    }\n    return result;\n}\n function _computeSegments(line, segmentOptions) {\n    const points = line.points;\n    const spanGaps = line.options.spanGaps;\n    const count = points.length;\n    if (!count) {\n        return [];\n    }\n    const loop = !!line._loop;\n    const { start , end  } = findStartAndEnd(points, count, loop, spanGaps);\n    if (spanGaps === true) {\n        return splitByStyles(line, [\n            {\n                start,\n                end,\n                loop\n            }\n        ], points, segmentOptions);\n    }\n    const max = end < start ? end + count : end;\n    const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n    return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n    if (!segmentOptions || !segmentOptions.setContext || !points) {\n        return segments;\n    }\n    return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n    const chartContext = line._chart.getContext();\n    const baseStyle = readStyle(line.options);\n    const { _datasetIndex: datasetIndex , options: { spanGaps  }  } = line;\n    const count = points.length;\n    const result = [];\n    let prevStyle = baseStyle;\n    let start = segments[0].start;\n    let i = start;\n    function addStyle(s, e, l, st) {\n        const dir = spanGaps ? -1 : 1;\n        if (s === e) {\n            return;\n        }\n        s += count;\n        while(points[s % count].skip){\n            s -= dir;\n        }\n        while(points[e % count].skip){\n            e += dir;\n        }\n        if (s % count !== e % count) {\n            result.push({\n                start: s % count,\n                end: e % count,\n                loop: l,\n                style: st\n            });\n            prevStyle = st;\n            start = e % count;\n        }\n    }\n    for (const segment of segments){\n        start = spanGaps ? start : segment.start;\n        let prev = points[start % count];\n        let style;\n        for(i = start + 1; i <= segment.end; i++){\n            const pt = points[i % count];\n            style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n                type: 'segment',\n                p0: prev,\n                p1: pt,\n                p0DataIndex: (i - 1) % count,\n                p1DataIndex: i % count,\n                datasetIndex\n            })));\n            if (styleChanged(style, prevStyle)) {\n                addStyle(start, i - 1, segment.loop, prevStyle);\n            }\n            prev = pt;\n            prevStyle = style;\n        }\n        if (start < i - 1) {\n            addStyle(start, i - 1, segment.loop, prevStyle);\n        }\n    }\n    return result;\n}\nfunction readStyle(options) {\n    return {\n        backgroundColor: options.backgroundColor,\n        borderCapStyle: options.borderCapStyle,\n        borderDash: options.borderDash,\n        borderDashOffset: options.borderDashOffset,\n        borderJoinStyle: options.borderJoinStyle,\n        borderWidth: options.borderWidth,\n        borderColor: options.borderColor\n    };\n}\nfunction styleChanged(style, prevStyle) {\n    if (!prevStyle) {\n        return false;\n    }\n    const cache = [];\n    const replacer = function(key, value) {\n        if (!isPatternOrGradient(value)) {\n            return value;\n        }\n        if (!cache.includes(value)) {\n            cache.push(value);\n        }\n        return cache.indexOf(value);\n    };\n    return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n    return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n    const { xScale , yScale  } = meta;\n    if (xScale && yScale) {\n        return {\n            left: getSizeForArea(xScale, chartArea, 'left'),\n            right: getSizeForArea(xScale, chartArea, 'right'),\n            top: getSizeForArea(yScale, chartArea, 'top'),\n            bottom: getSizeForArea(yScale, chartArea, 'bottom')\n        };\n    }\n    return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n    const clip = meta._clip;\n    if (clip.disabled) {\n        return false;\n    }\n    const area = getDatasetArea(meta, chart.chartArea);\n    return {\n        left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n        right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n        top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n        bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n    };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n    constructor(){\n        this._request = null;\n        this._charts = new Map();\n        this._running = false;\n        this._lastDate = undefined;\n    }\n _notify(chart, anims, date, type) {\n        const callbacks = anims.listeners[type];\n        const numSteps = anims.duration;\n        callbacks.forEach((fn)=>fn({\n                chart,\n                initial: anims.initial,\n                numSteps,\n                currentStep: Math.min(date - anims.start, numSteps)\n            }));\n    }\n _refresh() {\n        if (this._request) {\n            return;\n        }\n        this._running = true;\n        this._request = requestAnimFrame.call(window, ()=>{\n            this._update();\n            this._request = null;\n            if (this._running) {\n                this._refresh();\n            }\n        });\n    }\n _update(date = Date.now()) {\n        let remaining = 0;\n        this._charts.forEach((anims, chart)=>{\n            if (!anims.running || !anims.items.length) {\n                return;\n            }\n            const items = anims.items;\n            let i = items.length - 1;\n            let draw = false;\n            let item;\n            for(; i >= 0; --i){\n                item = items[i];\n                if (item._active) {\n                    if (item._total > anims.duration) {\n                        anims.duration = item._total;\n                    }\n                    item.tick(date);\n                    draw = true;\n                } else {\n                    items[i] = items[items.length - 1];\n                    items.pop();\n                }\n            }\n            if (draw) {\n                chart.draw();\n                this._notify(chart, anims, date, 'progress');\n            }\n            if (!items.length) {\n                anims.running = false;\n                this._notify(chart, anims, date, 'complete');\n                anims.initial = false;\n            }\n            remaining += items.length;\n        });\n        this._lastDate = date;\n        if (remaining === 0) {\n            this._running = false;\n        }\n    }\n _getAnims(chart) {\n        const charts = this._charts;\n        let anims = charts.get(chart);\n        if (!anims) {\n            anims = {\n                running: false,\n                initial: true,\n                items: [],\n                listeners: {\n                    complete: [],\n                    progress: []\n                }\n            };\n            charts.set(chart, anims);\n        }\n        return anims;\n    }\n listen(chart, event, cb) {\n        this._getAnims(chart).listeners[event].push(cb);\n    }\n add(chart, items) {\n        if (!items || !items.length) {\n            return;\n        }\n        this._getAnims(chart).items.push(...items);\n    }\n has(chart) {\n        return this._getAnims(chart).items.length > 0;\n    }\n start(chart) {\n        const anims = this._charts.get(chart);\n        if (!anims) {\n            return;\n        }\n        anims.running = true;\n        anims.start = Date.now();\n        anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n        this._refresh();\n    }\n    running(chart) {\n        if (!this._running) {\n            return false;\n        }\n        const anims = this._charts.get(chart);\n        if (!anims || !anims.running || !anims.items.length) {\n            return false;\n        }\n        return true;\n    }\n stop(chart) {\n        const anims = this._charts.get(chart);\n        if (!anims || !anims.items.length) {\n            return;\n        }\n        const items = anims.items;\n        let i = items.length - 1;\n        for(; i >= 0; --i){\n            items[i].cancel();\n        }\n        anims.items = [];\n        this._notify(chart, anims, Date.now(), 'complete');\n    }\n remove(chart) {\n        return this._charts.delete(chart);\n    }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n    boolean (from, to, factor) {\n        return factor > 0.5 ? to : from;\n    },\n color (from, to, factor) {\n        const c0 = color(from || transparent);\n        const c1 = c0.valid && color(to || transparent);\n        return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n    },\n    number (from, to, factor) {\n        return from + (to - from) * factor;\n    }\n};\nclass Animation {\n    constructor(cfg, target, prop, to){\n        const currentValue = target[prop];\n        to = resolve([\n            cfg.to,\n            to,\n            currentValue,\n            cfg.from\n        ]);\n        const from = resolve([\n            cfg.from,\n            currentValue,\n            to\n        ]);\n        this._active = true;\n        this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n        this._easing = effects[cfg.easing] || effects.linear;\n        this._start = Math.floor(Date.now() + (cfg.delay || 0));\n        this._duration = this._total = Math.floor(cfg.duration);\n        this._loop = !!cfg.loop;\n        this._target = target;\n        this._prop = prop;\n        this._from = from;\n        this._to = to;\n        this._promises = undefined;\n    }\n    active() {\n        return this._active;\n    }\n    update(cfg, to, date) {\n        if (this._active) {\n            this._notify(false);\n            const currentValue = this._target[this._prop];\n            const elapsed = date - this._start;\n            const remain = this._duration - elapsed;\n            this._start = date;\n            this._duration = Math.floor(Math.max(remain, cfg.duration));\n            this._total += elapsed;\n            this._loop = !!cfg.loop;\n            this._to = resolve([\n                cfg.to,\n                to,\n                currentValue,\n                cfg.from\n            ]);\n            this._from = resolve([\n                cfg.from,\n                currentValue,\n                to\n            ]);\n        }\n    }\n    cancel() {\n        if (this._active) {\n            this.tick(Date.now());\n            this._active = false;\n            this._notify(false);\n        }\n    }\n    tick(date) {\n        const elapsed = date - this._start;\n        const duration = this._duration;\n        const prop = this._prop;\n        const from = this._from;\n        const loop = this._loop;\n        const to = this._to;\n        let factor;\n        this._active = from !== to && (loop || elapsed < duration);\n        if (!this._active) {\n            this._target[prop] = to;\n            this._notify(true);\n            return;\n        }\n        if (elapsed < 0) {\n            this._target[prop] = from;\n            return;\n        }\n        factor = elapsed / duration % 2;\n        factor = loop && factor > 1 ? 2 - factor : factor;\n        factor = this._easing(Math.min(1, Math.max(0, factor)));\n        this._target[prop] = this._fn(from, to, factor);\n    }\n    wait() {\n        const promises = this._promises || (this._promises = []);\n        return new Promise((res, rej)=>{\n            promises.push({\n                res,\n                rej\n            });\n        });\n    }\n    _notify(resolved) {\n        const method = resolved ? 'res' : 'rej';\n        const promises = this._promises || [];\n        for(let i = 0; i < promises.length; i++){\n            promises[i][method]();\n        }\n    }\n}\n\nclass Animations {\n    constructor(chart, config){\n        this._chart = chart;\n        this._properties = new Map();\n        this.configure(config);\n    }\n    configure(config) {\n        if (!isObject(config)) {\n            return;\n        }\n        const animationOptions = Object.keys(defaults.animation);\n        const animatedProps = this._properties;\n        Object.getOwnPropertyNames(config).forEach((key)=>{\n            const cfg = config[key];\n            if (!isObject(cfg)) {\n                return;\n            }\n            const resolved = {};\n            for (const option of animationOptions){\n                resolved[option] = cfg[option];\n            }\n            (isArray(cfg.properties) && cfg.properties || [\n                key\n            ]).forEach((prop)=>{\n                if (prop === key || !animatedProps.has(prop)) {\n                    animatedProps.set(prop, resolved);\n                }\n            });\n        });\n    }\n _animateOptions(target, values) {\n        const newOptions = values.options;\n        const options = resolveTargetOptions(target, newOptions);\n        if (!options) {\n            return [];\n        }\n        const animations = this._createAnimations(options, newOptions);\n        if (newOptions.$shared) {\n            awaitAll(target.options.$animations, newOptions).then(()=>{\n                target.options = newOptions;\n            }, ()=>{\n            });\n        }\n        return animations;\n    }\n _createAnimations(target, values) {\n        const animatedProps = this._properties;\n        const animations = [];\n        const running = target.$animations || (target.$animations = {});\n        const props = Object.keys(values);\n        const date = Date.now();\n        let i;\n        for(i = props.length - 1; i >= 0; --i){\n            const prop = props[i];\n            if (prop.charAt(0) === '$') {\n                continue;\n            }\n            if (prop === 'options') {\n                animations.push(...this._animateOptions(target, values));\n                continue;\n            }\n            const value = values[prop];\n            let animation = running[prop];\n            const cfg = animatedProps.get(prop);\n            if (animation) {\n                if (cfg && animation.active()) {\n                    animation.update(cfg, value, date);\n                    continue;\n                } else {\n                    animation.cancel();\n                }\n            }\n            if (!cfg || !cfg.duration) {\n                target[prop] = value;\n                continue;\n            }\n            running[prop] = animation = new Animation(cfg, target, prop, value);\n            animations.push(animation);\n        }\n        return animations;\n    }\n update(target, values) {\n        if (this._properties.size === 0) {\n            Object.assign(target, values);\n            return;\n        }\n        const animations = this._createAnimations(target, values);\n        if (animations.length) {\n            animator.add(this._chart, animations);\n            return true;\n        }\n    }\n}\nfunction awaitAll(animations, properties) {\n    const running = [];\n    const keys = Object.keys(properties);\n    for(let i = 0; i < keys.length; i++){\n        const anim = animations[keys[i]];\n        if (anim && anim.active()) {\n            running.push(anim.wait());\n        }\n    }\n    return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n    if (!newOptions) {\n        return;\n    }\n    let options = target.options;\n    if (!options) {\n        target.options = newOptions;\n        return;\n    }\n    if (options.$shared) {\n        target.options = options = Object.assign({}, options, {\n            $shared: false,\n            $animations: {}\n        });\n    }\n    return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n    const opts = scale && scale.options || {};\n    const reverse = opts.reverse;\n    const min = opts.min === undefined ? allowedOverflow : 0;\n    const max = opts.max === undefined ? allowedOverflow : 0;\n    return {\n        start: reverse ? max : min,\n        end: reverse ? min : max\n    };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n    if (allowedOverflow === false) {\n        return false;\n    }\n    const x = scaleClip(xScale, allowedOverflow);\n    const y = scaleClip(yScale, allowedOverflow);\n    return {\n        top: y.end,\n        right: x.end,\n        bottom: y.start,\n        left: x.start\n    };\n}\nfunction toClip(value) {\n    let t, r, b, l;\n    if (isObject(value)) {\n        t = value.top;\n        r = value.right;\n        b = value.bottom;\n        l = value.left;\n    } else {\n        t = r = b = l = value;\n    }\n    return {\n        top: t,\n        right: r,\n        bottom: b,\n        left: l,\n        disabled: value === false\n    };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n    const keys = [];\n    const metasets = chart._getSortedDatasetMetas(filterVisible);\n    let i, ilen;\n    for(i = 0, ilen = metasets.length; i < ilen; ++i){\n        keys.push(metasets[i].index);\n    }\n    return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n    const keys = stack.keys;\n    const singleMode = options.mode === 'single';\n    let i, ilen, datasetIndex, otherValue;\n    if (value === null) {\n        return;\n    }\n    let found = false;\n    for(i = 0, ilen = keys.length; i < ilen; ++i){\n        datasetIndex = +keys[i];\n        if (datasetIndex === dsIndex) {\n            found = true;\n            if (options.all) {\n                continue;\n            }\n            break;\n        }\n        otherValue = stack.values[datasetIndex];\n        if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n            value += otherValue;\n        }\n    }\n    if (!found && !options.all) {\n        return 0;\n    }\n    return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n    const { iScale , vScale  } = meta;\n    const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n    const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n    const keys = Object.keys(data);\n    const adata = new Array(keys.length);\n    let i, ilen, key;\n    for(i = 0, ilen = keys.length; i < ilen; ++i){\n        key = keys[i];\n        adata[i] = {\n            [iAxisKey]: key,\n            [vAxisKey]: data[key]\n        };\n    }\n    return adata;\n}\nfunction isStacked(scale, meta) {\n    const stacked = scale && scale.options.stacked;\n    return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n    return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n    const { min , max , minDefined , maxDefined  } = scale.getUserBounds();\n    return {\n        min: minDefined ? min : Number.NEGATIVE_INFINITY,\n        max: maxDefined ? max : Number.POSITIVE_INFINITY\n    };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n    const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n    return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n    for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n        const value = stack[meta.index];\n        if (positive && value > 0 || !positive && value < 0) {\n            return meta.index;\n        }\n    }\n    return null;\n}\nfunction updateStacks(controller, parsed) {\n    const { chart , _cachedMeta: meta  } = controller;\n    const stacks = chart._stacks || (chart._stacks = {});\n    const { iScale , vScale , index: datasetIndex  } = meta;\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const key = getStackKey(iScale, vScale, meta);\n    const ilen = parsed.length;\n    let stack;\n    for(let i = 0; i < ilen; ++i){\n        const item = parsed[i];\n        const { [iAxis]: index , [vAxis]: value  } = item;\n        const itemStacks = item._stacks || (item._stacks = {});\n        stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n        stack[datasetIndex] = value;\n        stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n        stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n        const visualValues = stack._visualValues || (stack._visualValues = {});\n        visualValues[datasetIndex] = value;\n    }\n}\nfunction getFirstScaleId(chart, axis) {\n    const scales = chart.scales;\n    return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n    return createContext(parent, {\n        active: false,\n        dataset: undefined,\n        datasetIndex: index,\n        index,\n        mode: 'default',\n        type: 'dataset'\n    });\n}\nfunction createDataContext(parent, index, element) {\n    return createContext(parent, {\n        active: false,\n        dataIndex: index,\n        parsed: undefined,\n        raw: undefined,\n        element,\n        index,\n        mode: 'default',\n        type: 'data'\n    });\n}\nfunction clearStacks(meta, items) {\n    const datasetIndex = meta.controller.index;\n    const axis = meta.vScale && meta.vScale.axis;\n    if (!axis) {\n        return;\n    }\n    items = items || meta._parsed;\n    for (const parsed of items){\n        const stacks = parsed._stacks;\n        if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n            return;\n        }\n        delete stacks[axis][datasetIndex];\n        if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n            delete stacks[axis]._visualValues[datasetIndex];\n        }\n    }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n        keys: getSortedDatasetIndices(chart, true),\n        values: null\n    };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n        this.chart = chart;\n        this._ctx = chart.ctx;\n        this.index = datasetIndex;\n        this._cachedDataOpts = {};\n        this._cachedMeta = this.getMeta();\n        this._type = this._cachedMeta.type;\n        this.options = undefined;\n         this._parsing = false;\n        this._data = undefined;\n        this._objectData = undefined;\n        this._sharedOptions = undefined;\n        this._drawStart = undefined;\n        this._drawCount = undefined;\n        this.enableOptionSharing = false;\n        this.supportsDecimation = false;\n        this.$context = undefined;\n        this._syncList = [];\n        this.datasetElementType = new.target.datasetElementType;\n        this.dataElementType = new.target.dataElementType;\n        this.initialize();\n    }\n    initialize() {\n        const meta = this._cachedMeta;\n        this.configure();\n        this.linkScales();\n        meta._stacked = isStacked(meta.vScale, meta);\n        this.addElements();\n        if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n            console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n        }\n    }\n    updateIndex(datasetIndex) {\n        if (this.index !== datasetIndex) {\n            clearStacks(this._cachedMeta);\n        }\n        this.index = datasetIndex;\n    }\n    linkScales() {\n        const chart = this.chart;\n        const meta = this._cachedMeta;\n        const dataset = this.getDataset();\n        const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n        const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n        const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n        const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n        const indexAxis = meta.indexAxis;\n        const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n        const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n        meta.xScale = this.getScaleForId(xid);\n        meta.yScale = this.getScaleForId(yid);\n        meta.rScale = this.getScaleForId(rid);\n        meta.iScale = this.getScaleForId(iid);\n        meta.vScale = this.getScaleForId(vid);\n    }\n    getDataset() {\n        return this.chart.data.datasets[this.index];\n    }\n    getMeta() {\n        return this.chart.getDatasetMeta(this.index);\n    }\n getScaleForId(scaleID) {\n        return this.chart.scales[scaleID];\n    }\n _getOtherScale(scale) {\n        const meta = this._cachedMeta;\n        return scale === meta.iScale ? meta.vScale : meta.iScale;\n    }\n    reset() {\n        this._update('reset');\n    }\n _destroy() {\n        const meta = this._cachedMeta;\n        if (this._data) {\n            unlistenArrayEvents(this._data, this);\n        }\n        if (meta._stacked) {\n            clearStacks(meta);\n        }\n    }\n _dataCheck() {\n        const dataset = this.getDataset();\n        const data = dataset.data || (dataset.data = []);\n        const _data = this._data;\n        if (isObject(data)) {\n            const meta = this._cachedMeta;\n            this._data = convertObjectDataToArray(data, meta);\n        } else if (_data !== data) {\n            if (_data) {\n                unlistenArrayEvents(_data, this);\n                const meta = this._cachedMeta;\n                clearStacks(meta);\n                meta._parsed = [];\n            }\n            if (data && Object.isExtensible(data)) {\n                listenArrayEvents(data, this);\n            }\n            this._syncList = [];\n            this._data = data;\n        }\n    }\n    addElements() {\n        const meta = this._cachedMeta;\n        this._dataCheck();\n        if (this.datasetElementType) {\n            meta.dataset = new this.datasetElementType();\n        }\n    }\n    buildOrUpdateElements(resetNewElements) {\n        const meta = this._cachedMeta;\n        const dataset = this.getDataset();\n        let stackChanged = false;\n        this._dataCheck();\n        const oldStacked = meta._stacked;\n        meta._stacked = isStacked(meta.vScale, meta);\n        if (meta.stack !== dataset.stack) {\n            stackChanged = true;\n            clearStacks(meta);\n            meta.stack = dataset.stack;\n        }\n        this._resyncElements(resetNewElements);\n        if (stackChanged || oldStacked !== meta._stacked) {\n            updateStacks(this, meta._parsed);\n            meta._stacked = isStacked(meta.vScale, meta);\n        }\n    }\n configure() {\n        const config = this.chart.config;\n        const scopeKeys = config.datasetScopeKeys(this._type);\n        const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n        this.options = config.createResolver(scopes, this.getContext());\n        this._parsing = this.options.parsing;\n        this._cachedDataOpts = {};\n    }\n parse(start, count) {\n        const { _cachedMeta: meta , _data: data  } = this;\n        const { iScale , _stacked  } = meta;\n        const iAxis = iScale.axis;\n        let sorted = start === 0 && count === data.length ? true : meta._sorted;\n        let prev = start > 0 && meta._parsed[start - 1];\n        let i, cur, parsed;\n        if (this._parsing === false) {\n            meta._parsed = data;\n            meta._sorted = true;\n            parsed = data;\n        } else {\n            if (isArray(data[start])) {\n                parsed = this.parseArrayData(meta, data, start, count);\n            } else if (isObject(data[start])) {\n                parsed = this.parseObjectData(meta, data, start, count);\n            } else {\n                parsed = this.parsePrimitiveData(meta, data, start, count);\n            }\n            const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n            for(i = 0; i < count; ++i){\n                meta._parsed[i + start] = cur = parsed[i];\n                if (sorted) {\n                    if (isNotInOrderComparedToPrev()) {\n                        sorted = false;\n                    }\n                    prev = cur;\n                }\n            }\n            meta._sorted = sorted;\n        }\n        if (_stacked) {\n            updateStacks(this, parsed);\n        }\n    }\n parsePrimitiveData(meta, data, start, count) {\n        const { iScale , vScale  } = meta;\n        const iAxis = iScale.axis;\n        const vAxis = vScale.axis;\n        const labels = iScale.getLabels();\n        const singleScale = iScale === vScale;\n        const parsed = new Array(count);\n        let i, ilen, index;\n        for(i = 0, ilen = count; i < ilen; ++i){\n            index = i + start;\n            parsed[i] = {\n                [iAxis]: singleScale || iScale.parse(labels[index], index),\n                [vAxis]: vScale.parse(data[index], index)\n            };\n        }\n        return parsed;\n    }\n parseArrayData(meta, data, start, count) {\n        const { xScale , yScale  } = meta;\n        const parsed = new Array(count);\n        let i, ilen, index, item;\n        for(i = 0, ilen = count; i < ilen; ++i){\n            index = i + start;\n            item = data[index];\n            parsed[i] = {\n                x: xScale.parse(item[0], index),\n                y: yScale.parse(item[1], index)\n            };\n        }\n        return parsed;\n    }\n parseObjectData(meta, data, start, count) {\n        const { xScale , yScale  } = meta;\n        const { xAxisKey ='x' , yAxisKey ='y'  } = this._parsing;\n        const parsed = new Array(count);\n        let i, ilen, index, item;\n        for(i = 0, ilen = count; i < ilen; ++i){\n            index = i + start;\n            item = data[index];\n            parsed[i] = {\n                x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n                y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n            };\n        }\n        return parsed;\n    }\n getParsed(index) {\n        return this._cachedMeta._parsed[index];\n    }\n getDataElement(index) {\n        return this._cachedMeta.data[index];\n    }\n applyStack(scale, parsed, mode) {\n        const chart = this.chart;\n        const meta = this._cachedMeta;\n        const value = parsed[scale.axis];\n        const stack = {\n            keys: getSortedDatasetIndices(chart, true),\n            values: parsed._stacks[scale.axis]._visualValues\n        };\n        return applyStack(stack, value, meta.index, {\n            mode\n        });\n    }\n updateRangeFromParsed(range, scale, parsed, stack) {\n        const parsedValue = parsed[scale.axis];\n        let value = parsedValue === null ? NaN : parsedValue;\n        const values = stack && parsed._stacks[scale.axis];\n        if (stack && values) {\n            stack.values = values;\n            value = applyStack(stack, parsedValue, this._cachedMeta.index);\n        }\n        range.min = Math.min(range.min, value);\n        range.max = Math.max(range.max, value);\n    }\n getMinMax(scale, canStack) {\n        const meta = this._cachedMeta;\n        const _parsed = meta._parsed;\n        const sorted = meta._sorted && scale === meta.iScale;\n        const ilen = _parsed.length;\n        const otherScale = this._getOtherScale(scale);\n        const stack = createStack(canStack, meta, this.chart);\n        const range = {\n            min: Number.POSITIVE_INFINITY,\n            max: Number.NEGATIVE_INFINITY\n        };\n        const { min: otherMin , max: otherMax  } = getUserBounds(otherScale);\n        let i, parsed;\n        function _skip() {\n            parsed = _parsed[i];\n            const otherValue = parsed[otherScale.axis];\n            return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n        }\n        for(i = 0; i < ilen; ++i){\n            if (_skip()) {\n                continue;\n            }\n            this.updateRangeFromParsed(range, scale, parsed, stack);\n            if (sorted) {\n                break;\n            }\n        }\n        if (sorted) {\n            for(i = ilen - 1; i >= 0; --i){\n                if (_skip()) {\n                    continue;\n                }\n                this.updateRangeFromParsed(range, scale, parsed, stack);\n                break;\n            }\n        }\n        return range;\n    }\n    getAllParsedValues(scale) {\n        const parsed = this._cachedMeta._parsed;\n        const values = [];\n        let i, ilen, value;\n        for(i = 0, ilen = parsed.length; i < ilen; ++i){\n            value = parsed[i][scale.axis];\n            if (isNumberFinite(value)) {\n                values.push(value);\n            }\n        }\n        return values;\n    }\n getMaxOverflow() {\n        return false;\n    }\n getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const iScale = meta.iScale;\n        const vScale = meta.vScale;\n        const parsed = this.getParsed(index);\n        return {\n            label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n            value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n        };\n    }\n _update(mode) {\n        const meta = this._cachedMeta;\n        this.update(mode || 'default');\n        meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n    }\n update(mode) {}\n    draw() {\n        const ctx = this._ctx;\n        const chart = this.chart;\n        const meta = this._cachedMeta;\n        const elements = meta.data || [];\n        const area = chart.chartArea;\n        const active = [];\n        const start = this._drawStart || 0;\n        const count = this._drawCount || elements.length - start;\n        const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n        let i;\n        if (meta.dataset) {\n            meta.dataset.draw(ctx, area, start, count);\n        }\n        for(i = start; i < start + count; ++i){\n            const element = elements[i];\n            if (element.hidden) {\n                continue;\n            }\n            if (element.active && drawActiveElementsOnTop) {\n                active.push(element);\n            } else {\n                element.draw(ctx, area);\n            }\n        }\n        for(i = 0; i < active.length; ++i){\n            active[i].draw(ctx, area);\n        }\n    }\n getStyle(index, active) {\n        const mode = active ? 'active' : 'default';\n        return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n    }\n getContext(index, active, mode) {\n        const dataset = this.getDataset();\n        let context;\n        if (index >= 0 && index < this._cachedMeta.data.length) {\n            const element = this._cachedMeta.data[index];\n            context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n            context.parsed = this.getParsed(index);\n            context.raw = dataset.data[index];\n            context.index = context.dataIndex = index;\n        } else {\n            context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n            context.dataset = dataset;\n            context.index = context.datasetIndex = this.index;\n        }\n        context.active = !!active;\n        context.mode = mode;\n        return context;\n    }\n resolveDatasetElementOptions(mode) {\n        return this._resolveElementOptions(this.datasetElementType.id, mode);\n    }\n resolveDataElementOptions(index, mode) {\n        return this._resolveElementOptions(this.dataElementType.id, mode, index);\n    }\n _resolveElementOptions(elementType, mode = 'default', index) {\n        const active = mode === 'active';\n        const cache = this._cachedDataOpts;\n        const cacheKey = elementType + '-' + mode;\n        const cached = cache[cacheKey];\n        const sharing = this.enableOptionSharing && defined(index);\n        if (cached) {\n            return cloneIfNotShared(cached, sharing);\n        }\n        const config = this.chart.config;\n        const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n        const prefixes = active ? [\n            `${elementType}Hover`,\n            'hover',\n            elementType,\n            ''\n        ] : [\n            elementType,\n            ''\n        ];\n        const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n        const names = Object.keys(defaults.elements[elementType]);\n        const context = ()=>this.getContext(index, active, mode);\n        const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n        if (values.$shared) {\n            values.$shared = sharing;\n            cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n        }\n        return values;\n    }\n _resolveAnimations(index, transition, active) {\n        const chart = this.chart;\n        const cache = this._cachedDataOpts;\n        const cacheKey = `animation-${transition}`;\n        const cached = cache[cacheKey];\n        if (cached) {\n            return cached;\n        }\n        let options;\n        if (chart.options.animation !== false) {\n            const config = this.chart.config;\n            const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n            const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n            options = config.createResolver(scopes, this.getContext(index, active, transition));\n        }\n        const animations = new Animations(chart, options && options.animations);\n        if (options && options._cacheable) {\n            cache[cacheKey] = Object.freeze(animations);\n        }\n        return animations;\n    }\n getSharedOptions(options) {\n        if (!options.$shared) {\n            return;\n        }\n        return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n    }\n includeOptions(mode, sharedOptions) {\n        return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n    }\n _getSharedOptions(start, mode) {\n        const firstOpts = this.resolveDataElementOptions(start, mode);\n        const previouslySharedOptions = this._sharedOptions;\n        const sharedOptions = this.getSharedOptions(firstOpts);\n        const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n        this.updateSharedOptions(sharedOptions, mode, firstOpts);\n        return {\n            sharedOptions,\n            includeOptions\n        };\n    }\n updateElement(element, index, properties, mode) {\n        if (isDirectUpdateMode(mode)) {\n            Object.assign(element, properties);\n        } else {\n            this._resolveAnimations(index, mode).update(element, properties);\n        }\n    }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n        if (sharedOptions && !isDirectUpdateMode(mode)) {\n            this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n        }\n    }\n _setStyle(element, index, mode, active) {\n        element.active = active;\n        const options = this.getStyle(index, active);\n        this._resolveAnimations(index, mode, active).update(element, {\n            options: !active && this.getSharedOptions(options) || options\n        });\n    }\n    removeHoverStyle(element, datasetIndex, index) {\n        this._setStyle(element, index, 'active', false);\n    }\n    setHoverStyle(element, datasetIndex, index) {\n        this._setStyle(element, index, 'active', true);\n    }\n _removeDatasetHoverStyle() {\n        const element = this._cachedMeta.dataset;\n        if (element) {\n            this._setStyle(element, undefined, 'active', false);\n        }\n    }\n _setDatasetHoverStyle() {\n        const element = this._cachedMeta.dataset;\n        if (element) {\n            this._setStyle(element, undefined, 'active', true);\n        }\n    }\n _resyncElements(resetNewElements) {\n        const data = this._data;\n        const elements = this._cachedMeta.data;\n        for (const [method, arg1, arg2] of this._syncList){\n            this[method](arg1, arg2);\n        }\n        this._syncList = [];\n        const numMeta = elements.length;\n        const numData = data.length;\n        const count = Math.min(numData, numMeta);\n        if (count) {\n            this.parse(0, count);\n        }\n        if (numData > numMeta) {\n            this._insertElements(numMeta, numData - numMeta, resetNewElements);\n        } else if (numData < numMeta) {\n            this._removeElements(numData, numMeta - numData);\n        }\n    }\n _insertElements(start, count, resetNewElements = true) {\n        const meta = this._cachedMeta;\n        const data = meta.data;\n        const end = start + count;\n        let i;\n        const move = (arr)=>{\n            arr.length += count;\n            for(i = arr.length - 1; i >= end; i--){\n                arr[i] = arr[i - count];\n            }\n        };\n        move(data);\n        for(i = start; i < end; ++i){\n            data[i] = new this.dataElementType();\n        }\n        if (this._parsing) {\n            move(meta._parsed);\n        }\n        this.parse(start, count);\n        if (resetNewElements) {\n            this.updateElements(data, start, count, 'reset');\n        }\n    }\n    updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n        const meta = this._cachedMeta;\n        if (this._parsing) {\n            const removed = meta._parsed.splice(start, count);\n            if (meta._stacked) {\n                clearStacks(meta, removed);\n            }\n        }\n        meta.data.splice(start, count);\n    }\n _sync(args) {\n        if (this._parsing) {\n            this._syncList.push(args);\n        } else {\n            const [method, arg1, arg2] = args;\n            this[method](arg1, arg2);\n        }\n        this.chart._dataChanges.push([\n            this.index,\n            ...args\n        ]);\n    }\n    _onDataPush() {\n        const count = arguments.length;\n        this._sync([\n            '_insertElements',\n            this.getDataset().data.length - count,\n            count\n        ]);\n    }\n    _onDataPop() {\n        this._sync([\n            '_removeElements',\n            this._cachedMeta.data.length - 1,\n            1\n        ]);\n    }\n    _onDataShift() {\n        this._sync([\n            '_removeElements',\n            0,\n            1\n        ]);\n    }\n    _onDataSplice(start, count) {\n        if (count) {\n            this._sync([\n                '_removeElements',\n                start,\n                count\n            ]);\n        }\n        const newCount = arguments.length - 2;\n        if (newCount) {\n            this._sync([\n                '_insertElements',\n                start,\n                newCount\n            ]);\n        }\n    }\n    _onDataUnshift() {\n        this._sync([\n            '_insertElements',\n            0,\n            arguments.length\n        ]);\n    }\n}\n\nfunction getAllScaleValues(scale, type) {\n    if (!scale._cache.$bar) {\n        const visibleMetas = scale.getMatchingVisibleMetas(type);\n        let values = [];\n        for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n            values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n        }\n        scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n    }\n    return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n    const scale = meta.iScale;\n    const values = getAllScaleValues(scale, meta.type);\n    let min = scale._length;\n    let i, ilen, curr, prev;\n    const updateMinAndPrev = ()=>{\n        if (curr === 32767 || curr === -32768) {\n            return;\n        }\n        if (defined(prev)) {\n            min = Math.min(min, Math.abs(curr - prev) || min);\n        }\n        prev = curr;\n    };\n    for(i = 0, ilen = values.length; i < ilen; ++i){\n        curr = scale.getPixelForValue(values[i]);\n        updateMinAndPrev();\n    }\n    prev = undefined;\n    for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n        curr = scale.getPixelForTick(i);\n        updateMinAndPrev();\n    }\n    return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n    const thickness = options.barThickness;\n    let size, ratio;\n    if (isNullOrUndef(thickness)) {\n        size = ruler.min * options.categoryPercentage;\n        ratio = options.barPercentage;\n    } else {\n        size = thickness * stackCount;\n        ratio = 1;\n    }\n    return {\n        chunk: size / stackCount,\n        ratio,\n        start: ruler.pixels[index] - size / 2\n    };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n    const pixels = ruler.pixels;\n    const curr = pixels[index];\n    let prev = index > 0 ? pixels[index - 1] : null;\n    let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n    const percent = options.categoryPercentage;\n    if (prev === null) {\n        prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n    }\n    if (next === null) {\n        next = curr + curr - prev;\n    }\n    const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n    const size = Math.abs(next - prev) / 2 * percent;\n    return {\n        chunk: size / stackCount,\n        ratio: options.barPercentage,\n        start\n    };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n    const startValue = vScale.parse(entry[0], i);\n    const endValue = vScale.parse(entry[1], i);\n    const min = Math.min(startValue, endValue);\n    const max = Math.max(startValue, endValue);\n    let barStart = min;\n    let barEnd = max;\n    if (Math.abs(min) > Math.abs(max)) {\n        barStart = max;\n        barEnd = min;\n    }\n    item[vScale.axis] = barEnd;\n    item._custom = {\n        barStart,\n        barEnd,\n        start: startValue,\n        end: endValue,\n        min,\n        max\n    };\n}\nfunction parseValue(entry, item, vScale, i) {\n    if (isArray(entry)) {\n        parseFloatBar(entry, item, vScale, i);\n    } else {\n        item[vScale.axis] = vScale.parse(entry, i);\n    }\n    return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n    const iScale = meta.iScale;\n    const vScale = meta.vScale;\n    const labels = iScale.getLabels();\n    const singleScale = iScale === vScale;\n    const parsed = [];\n    let i, ilen, item, entry;\n    for(i = start, ilen = start + count; i < ilen; ++i){\n        entry = data[i];\n        item = {};\n        item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n        parsed.push(parseValue(entry, item, vScale, i));\n    }\n    return parsed;\n}\nfunction isFloatBar(custom) {\n    return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n    if (size !== 0) {\n        return sign(size);\n    }\n    return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n    let reverse, start, end, top, bottom;\n    if (properties.horizontal) {\n        reverse = properties.base > properties.x;\n        start = 'left';\n        end = 'right';\n    } else {\n        reverse = properties.base < properties.y;\n        start = 'bottom';\n        end = 'top';\n    }\n    if (reverse) {\n        top = 'end';\n        bottom = 'start';\n    } else {\n        top = 'start';\n        bottom = 'end';\n    }\n    return {\n        start,\n        end,\n        reverse,\n        top,\n        bottom\n    };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n    let edge = options.borderSkipped;\n    const res = {};\n    if (!edge) {\n        properties.borderSkipped = res;\n        return;\n    }\n    if (edge === true) {\n        properties.borderSkipped = {\n            top: true,\n            right: true,\n            bottom: true,\n            left: true\n        };\n        return;\n    }\n    const { start , end , reverse , top , bottom  } = borderProps(properties);\n    if (edge === 'middle' && stack) {\n        properties.enableBorderRadius = true;\n        if ((stack._top || 0) === index) {\n            edge = top;\n        } else if ((stack._bottom || 0) === index) {\n            edge = bottom;\n        } else {\n            res[parseEdge(bottom, start, end, reverse)] = true;\n            edge = top;\n        }\n    }\n    res[parseEdge(edge, start, end, reverse)] = true;\n    properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n    if (reverse) {\n        edge = swap(edge, a, b);\n        edge = startEnd(edge, b, a);\n    } else {\n        edge = startEnd(edge, a, b);\n    }\n    return edge;\n}\nfunction swap(orig, v1, v2) {\n    return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n    return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount  }, ratio) {\n    properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n    static id = 'bar';\n static defaults = {\n        datasetElementType: false,\n        dataElementType: 'bar',\n        categoryPercentage: 0.8,\n        barPercentage: 0.9,\n        grouped: true,\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: [\n                    'x',\n                    'y',\n                    'base',\n                    'width',\n                    'height'\n                ]\n            }\n        }\n    };\n static overrides = {\n        scales: {\n            _index_: {\n                type: 'category',\n                offset: true,\n                grid: {\n                    offset: true\n                }\n            },\n            _value_: {\n                type: 'linear',\n                beginAtZero: true\n            }\n        }\n    };\n parsePrimitiveData(meta, data, start, count) {\n        return parseArrayOrPrimitive(meta, data, start, count);\n    }\n parseArrayData(meta, data, start, count) {\n        return parseArrayOrPrimitive(meta, data, start, count);\n    }\n parseObjectData(meta, data, start, count) {\n        const { iScale , vScale  } = meta;\n        const { xAxisKey ='x' , yAxisKey ='y'  } = this._parsing;\n        const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n        const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n        const parsed = [];\n        let i, ilen, item, obj;\n        for(i = start, ilen = start + count; i < ilen; ++i){\n            obj = data[i];\n            item = {};\n            item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n            parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n        }\n        return parsed;\n    }\n updateRangeFromParsed(range, scale, parsed, stack) {\n        super.updateRangeFromParsed(range, scale, parsed, stack);\n        const custom = parsed._custom;\n        if (custom && scale === this._cachedMeta.vScale) {\n            range.min = Math.min(range.min, custom.min);\n            range.max = Math.max(range.max, custom.max);\n        }\n    }\n getMaxOverflow() {\n        return 0;\n    }\n getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const { iScale , vScale  } = meta;\n        const parsed = this.getParsed(index);\n        const custom = parsed._custom;\n        const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n        return {\n            label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n            value\n        };\n    }\n    initialize() {\n        this.enableOptionSharing = true;\n        super.initialize();\n        const meta = this._cachedMeta;\n        meta.stack = this.getDataset().stack;\n    }\n    update(mode) {\n        const meta = this._cachedMeta;\n        this.updateElements(meta.data, 0, meta.data.length, mode);\n    }\n    updateElements(bars, start, count, mode) {\n        const reset = mode === 'reset';\n        const { index , _cachedMeta: { vScale  }  } = this;\n        const base = vScale.getBasePixel();\n        const horizontal = vScale.isHorizontal();\n        const ruler = this._getRuler();\n        const { sharedOptions , includeOptions  } = this._getSharedOptions(start, mode);\n        for(let i = start; i < start + count; i++){\n            const parsed = this.getParsed(i);\n            const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n                base,\n                head: base\n            } : this._calculateBarValuePixels(i);\n            const ipixels = this._calculateBarIndexPixels(i, ruler);\n            const stack = (parsed._stacks || {})[vScale.axis];\n            const properties = {\n                horizontal,\n                base: vpixels.base,\n                enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n                x: horizontal ? vpixels.head : ipixels.center,\n                y: horizontal ? ipixels.center : vpixels.head,\n                height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n                width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n            };\n            if (includeOptions) {\n                properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n            }\n            const options = properties.options || bars[i].options;\n            setBorderSkipped(properties, options, stack, index);\n            setInflateAmount(properties, options, ruler.ratio);\n            this.updateElement(bars[i], i, properties, mode);\n        }\n    }\n _getStacks(last, dataIndex) {\n        const { iScale  } = this._cachedMeta;\n        const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n        const stacked = iScale.options.stacked;\n        const stacks = [];\n        const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n        const iScaleValue = currentParsed && currentParsed[iScale.axis];\n        const skipNull = (meta)=>{\n            const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n            const val = parsed && parsed[meta.vScale.axis];\n            if (isNullOrUndef(val) || isNaN(val)) {\n                return true;\n            }\n        };\n        for (const meta of metasets){\n            if (dataIndex !== undefined && skipNull(meta)) {\n                continue;\n            }\n            if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n                stacks.push(meta.stack);\n            }\n            if (meta.index === last) {\n                break;\n            }\n        }\n        if (!stacks.length) {\n            stacks.push(undefined);\n        }\n        return stacks;\n    }\n _getStackCount(index) {\n        return this._getStacks(undefined, index).length;\n    }\n    _getAxisCount() {\n        return this._getAxis().length;\n    }\n    getFirstScaleIdForIndexAxis() {\n        const scales = this.chart.scales;\n        const indexScaleId = this.chart.options.indexAxis;\n        return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n    }\n    _getAxis() {\n        const axis = {};\n        const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n        for (const dataset of this.chart.data.datasets){\n            axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n        }\n        return Object.keys(axis);\n    }\n _getStackIndex(datasetIndex, name, dataIndex) {\n        const stacks = this._getStacks(datasetIndex, dataIndex);\n        const index = name !== undefined ? stacks.indexOf(name) : -1;\n        return index === -1 ? stacks.length - 1 : index;\n    }\n _getRuler() {\n        const opts = this.options;\n        const meta = this._cachedMeta;\n        const iScale = meta.iScale;\n        const pixels = [];\n        let i, ilen;\n        for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n            pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n        }\n        const barThickness = opts.barThickness;\n        const min = barThickness || computeMinSampleSize(meta);\n        return {\n            min,\n            pixels,\n            start: iScale._startPixel,\n            end: iScale._endPixel,\n            stackCount: this._getStackCount(),\n            scale: iScale,\n            grouped: opts.grouped,\n            ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n        };\n    }\n _calculateBarValuePixels(index) {\n        const { _cachedMeta: { vScale , _stacked , index: datasetIndex  } , options: { base: baseValue , minBarLength  }  } = this;\n        const actualBase = baseValue || 0;\n        const parsed = this.getParsed(index);\n        const custom = parsed._custom;\n        const floating = isFloatBar(custom);\n        let value = parsed[vScale.axis];\n        let start = 0;\n        let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n        let head, size;\n        if (length !== value) {\n            start = length - value;\n            length = value;\n        }\n        if (floating) {\n            value = custom.barStart;\n            length = custom.barEnd - custom.barStart;\n            if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n                start = 0;\n            }\n            start += value;\n        }\n        const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n        let base = vScale.getPixelForValue(startValue);\n        if (this.chart.getDataVisibility(index)) {\n            head = vScale.getPixelForValue(start + length);\n        } else {\n            head = base;\n        }\n        size = head - base;\n        if (Math.abs(size) < minBarLength) {\n            size = barSign(size, vScale, actualBase) * minBarLength;\n            if (value === actualBase) {\n                base -= size / 2;\n            }\n            const startPixel = vScale.getPixelForDecimal(0);\n            const endPixel = vScale.getPixelForDecimal(1);\n            const min = Math.min(startPixel, endPixel);\n            const max = Math.max(startPixel, endPixel);\n            base = Math.max(Math.min(base, max), min);\n            head = base + size;\n            if (_stacked && !floating) {\n                parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n            }\n        }\n        if (base === vScale.getPixelForValue(actualBase)) {\n            const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n            base += halfGrid;\n            size -= halfGrid;\n        }\n        return {\n            size,\n            base,\n            head,\n            center: head + size / 2\n        };\n    }\n _calculateBarIndexPixels(index, ruler) {\n        const scale = ruler.scale;\n        const options = this.options;\n        const skipNull = options.skipNull;\n        const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n        let center, size;\n        const axisCount = this._getAxisCount();\n        if (ruler.grouped) {\n            const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n            const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n            const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n            const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n            const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n            center = range.start + range.chunk * stackIndex + range.chunk / 2;\n            size = Math.min(maxBarThickness, range.chunk * range.ratio);\n        } else {\n            center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n            size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n        }\n        return {\n            base: center - size / 2,\n            head: center + size / 2,\n            center,\n            size\n        };\n    }\n    draw() {\n        const meta = this._cachedMeta;\n        const vScale = meta.vScale;\n        const rects = meta.data;\n        const ilen = rects.length;\n        let i = 0;\n        for(; i < ilen; ++i){\n            if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n                rects[i].draw(this._ctx);\n            }\n        }\n    }\n}\n\nclass BubbleController extends DatasetController {\n    static id = 'bubble';\n static defaults = {\n        datasetElementType: false,\n        dataElementType: 'point',\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: [\n                    'x',\n                    'y',\n                    'borderWidth',\n                    'radius'\n                ]\n            }\n        }\n    };\n static overrides = {\n        scales: {\n            x: {\n                type: 'linear'\n            },\n            y: {\n                type: 'linear'\n            }\n        }\n    };\n    initialize() {\n        this.enableOptionSharing = true;\n        super.initialize();\n    }\n parsePrimitiveData(meta, data, start, count) {\n        const parsed = super.parsePrimitiveData(meta, data, start, count);\n        for(let i = 0; i < parsed.length; i++){\n            parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n        }\n        return parsed;\n    }\n parseArrayData(meta, data, start, count) {\n        const parsed = super.parseArrayData(meta, data, start, count);\n        for(let i = 0; i < parsed.length; i++){\n            const item = data[start + i];\n            parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n        }\n        return parsed;\n    }\n parseObjectData(meta, data, start, count) {\n        const parsed = super.parseObjectData(meta, data, start, count);\n        for(let i = 0; i < parsed.length; i++){\n            const item = data[start + i];\n            parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n        }\n        return parsed;\n    }\n getMaxOverflow() {\n        const data = this._cachedMeta.data;\n        let max = 0;\n        for(let i = data.length - 1; i >= 0; --i){\n            max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n        }\n        return max > 0 && max;\n    }\n getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const labels = this.chart.data.labels || [];\n        const { xScale , yScale  } = meta;\n        const parsed = this.getParsed(index);\n        const x = xScale.getLabelForValue(parsed.x);\n        const y = yScale.getLabelForValue(parsed.y);\n        const r = parsed._custom;\n        return {\n            label: labels[index] || '',\n            value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n        };\n    }\n    update(mode) {\n        const points = this._cachedMeta.data;\n        this.updateElements(points, 0, points.length, mode);\n    }\n    updateElements(points, start, count, mode) {\n        const reset = mode === 'reset';\n        const { iScale , vScale  } = this._cachedMeta;\n        const { sharedOptions , includeOptions  } = this._getSharedOptions(start, mode);\n        const iAxis = iScale.axis;\n        const vAxis = vScale.axis;\n        for(let i = start; i < start + count; i++){\n            const point = points[i];\n            const parsed = !reset && this.getParsed(i);\n            const properties = {};\n            const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n            const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n            properties.skip = isNaN(iPixel) || isNaN(vPixel);\n            if (includeOptions) {\n                properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n                if (reset) {\n                    properties.options.radius = 0;\n                }\n            }\n            this.updateElement(point, i, properties, mode);\n        }\n    }\n resolveDataElementOptions(index, mode) {\n        const parsed = this.getParsed(index);\n        let values = super.resolveDataElementOptions(index, mode);\n        if (values.$shared) {\n            values = Object.assign({}, values, {\n                $shared: false\n            });\n        }\n        const radius = values.radius;\n        if (mode !== 'active') {\n            values.radius = 0;\n        }\n        values.radius += valueOrDefault(parsed && parsed._custom, radius);\n        return values;\n    }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n    let ratioX = 1;\n    let ratioY = 1;\n    let offsetX = 0;\n    let offsetY = 0;\n    if (circumference < TAU) {\n        const startAngle = rotation;\n        const endAngle = startAngle + circumference;\n        const startX = Math.cos(startAngle);\n        const startY = Math.sin(startAngle);\n        const endX = Math.cos(endAngle);\n        const endY = Math.sin(endAngle);\n        const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n        const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n        const maxX = calcMax(0, startX, endX);\n        const maxY = calcMax(HALF_PI, startY, endY);\n        const minX = calcMin(PI, startX, endX);\n        const minY = calcMin(PI + HALF_PI, startY, endY);\n        ratioX = (maxX - minX) / 2;\n        ratioY = (maxY - minY) / 2;\n        offsetX = -(maxX + minX) / 2;\n        offsetY = -(maxY + minY) / 2;\n    }\n    return {\n        ratioX,\n        ratioY,\n        offsetX,\n        offsetY\n    };\n}\nclass DoughnutController extends DatasetController {\n    static id = 'doughnut';\n static defaults = {\n        datasetElementType: false,\n        dataElementType: 'arc',\n        animation: {\n            animateRotate: true,\n            animateScale: false\n        },\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: [\n                    'circumference',\n                    'endAngle',\n                    'innerRadius',\n                    'outerRadius',\n                    'startAngle',\n                    'x',\n                    'y',\n                    'offset',\n                    'borderWidth',\n                    'spacing'\n                ]\n            }\n        },\n        cutout: '50%',\n        rotation: 0,\n        circumference: 360,\n        radius: '100%',\n        spacing: 0,\n        indexAxis: 'r'\n    };\n    static descriptors = {\n        _scriptable: (name)=>name !== 'spacing',\n        _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n    };\n static overrides = {\n        aspectRatio: 1,\n        plugins: {\n            legend: {\n                labels: {\n                    generateLabels (chart) {\n                        const data = chart.data;\n                        const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius  }  } = chart.legend.options;\n                        if (data.labels.length && data.datasets.length) {\n                            return data.labels.map((label, i)=>{\n                                const meta = chart.getDatasetMeta(0);\n                                const style = meta.controller.getStyle(i);\n                                return {\n                                    text: label,\n                                    fillStyle: style.backgroundColor,\n                                    fontColor: color,\n                                    hidden: !chart.getDataVisibility(i),\n                                    lineDash: style.borderDash,\n                                    lineDashOffset: style.borderDashOffset,\n                                    lineJoin: style.borderJoinStyle,\n                                    lineWidth: style.borderWidth,\n                                    strokeStyle: style.borderColor,\n                                    textAlign: textAlign,\n                                    pointStyle: pointStyle,\n                                    borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n                                    index: i\n                                };\n                            });\n                        }\n                        return [];\n                    }\n                },\n                onClick (e, legendItem, legend) {\n                    legend.chart.toggleDataVisibility(legendItem.index);\n                    legend.chart.update();\n                }\n            }\n        }\n    };\n    constructor(chart, datasetIndex){\n        super(chart, datasetIndex);\n        this.enableOptionSharing = true;\n        this.innerRadius = undefined;\n        this.outerRadius = undefined;\n        this.offsetX = undefined;\n        this.offsetY = undefined;\n    }\n    linkScales() {}\n parse(start, count) {\n        const data = this.getDataset().data;\n        const meta = this._cachedMeta;\n        if (this._parsing === false) {\n            meta._parsed = data;\n        } else {\n            let getter = (i)=>+data[i];\n            if (isObject(data[start])) {\n                const { key ='value'  } = this._parsing;\n                getter = (i)=>+resolveObjectKey(data[i], key);\n            }\n            let i, ilen;\n            for(i = start, ilen = start + count; i < ilen; ++i){\n                meta._parsed[i] = getter(i);\n            }\n        }\n    }\n _getRotation() {\n        return toRadians(this.options.rotation - 90);\n    }\n _getCircumference() {\n        return toRadians(this.options.circumference);\n    }\n _getRotationExtents() {\n        let min = TAU;\n        let max = -TAU;\n        for(let i = 0; i < this.chart.data.datasets.length; ++i){\n            if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n                const controller = this.chart.getDatasetMeta(i).controller;\n                const rotation = controller._getRotation();\n                const circumference = controller._getCircumference();\n                min = Math.min(min, rotation);\n                max = Math.max(max, rotation + circumference);\n            }\n        }\n        return {\n            rotation: min,\n            circumference: max - min\n        };\n    }\n update(mode) {\n        const chart = this.chart;\n        const { chartArea  } = chart;\n        const meta = this._cachedMeta;\n        const arcs = meta.data;\n        const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n        const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n        const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n        const chartWeight = this._getRingWeight(this.index);\n        const { circumference , rotation  } = this._getRotationExtents();\n        const { ratioX , ratioY , offsetX , offsetY  } = getRatioAndOffset(rotation, circumference, cutout);\n        const maxWidth = (chartArea.width - spacing) / ratioX;\n        const maxHeight = (chartArea.height - spacing) / ratioY;\n        const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n        const outerRadius = toDimension(this.options.radius, maxRadius);\n        const innerRadius = Math.max(outerRadius * cutout, 0);\n        const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n        this.offsetX = offsetX * outerRadius;\n        this.offsetY = offsetY * outerRadius;\n        meta.total = this.calculateTotal();\n        this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n        this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n        this.updateElements(arcs, 0, arcs.length, mode);\n    }\n _circumference(i, reset) {\n        const opts = this.options;\n        const meta = this._cachedMeta;\n        const circumference = this._getCircumference();\n        if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n            return 0;\n        }\n        return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n    }\n    updateElements(arcs, start, count, mode) {\n        const reset = mode === 'reset';\n        const chart = this.chart;\n        const chartArea = chart.chartArea;\n        const opts = chart.options;\n        const animationOpts = opts.animation;\n        const centerX = (chartArea.left + chartArea.right) / 2;\n        const centerY = (chartArea.top + chartArea.bottom) / 2;\n        const animateScale = reset && animationOpts.animateScale;\n        const innerRadius = animateScale ? 0 : this.innerRadius;\n        const outerRadius = animateScale ? 0 : this.outerRadius;\n        const { sharedOptions , includeOptions  } = this._getSharedOptions(start, mode);\n        let startAngle = this._getRotation();\n        let i;\n        for(i = 0; i < start; ++i){\n            startAngle += this._circumference(i, reset);\n        }\n        for(i = start; i < start + count; ++i){\n            const circumference = this._circumference(i, reset);\n            const arc = arcs[i];\n            const properties = {\n                x: centerX + this.offsetX,\n                y: centerY + this.offsetY,\n                startAngle,\n                endAngle: startAngle + circumference,\n                circumference,\n                outerRadius,\n                innerRadius\n            };\n            if (includeOptions) {\n                properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n            }\n            startAngle += circumference;\n            this.updateElement(arc, i, properties, mode);\n        }\n    }\n    calculateTotal() {\n        const meta = this._cachedMeta;\n        const metaData = meta.data;\n        let total = 0;\n        let i;\n        for(i = 0; i < metaData.length; i++){\n            const value = meta._parsed[i];\n            if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n                total += Math.abs(value);\n            }\n        }\n        return total;\n    }\n    calculateCircumference(value) {\n        const total = this._cachedMeta.total;\n        if (total > 0 && !isNaN(value)) {\n            return TAU * (Math.abs(value) / total);\n        }\n        return 0;\n    }\n    getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const chart = this.chart;\n        const labels = chart.data.labels || [];\n        const value = formatNumber(meta._parsed[index], chart.options.locale);\n        return {\n            label: labels[index] || '',\n            value\n        };\n    }\n    getMaxBorderWidth(arcs) {\n        let max = 0;\n        const chart = this.chart;\n        let i, ilen, meta, controller, options;\n        if (!arcs) {\n            for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n                if (chart.isDatasetVisible(i)) {\n                    meta = chart.getDatasetMeta(i);\n                    arcs = meta.data;\n                    controller = meta.controller;\n                    break;\n                }\n            }\n        }\n        if (!arcs) {\n            return 0;\n        }\n        for(i = 0, ilen = arcs.length; i < ilen; ++i){\n            options = controller.resolveDataElementOptions(i);\n            if (options.borderAlign !== 'inner') {\n                max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n            }\n        }\n        return max;\n    }\n    getMaxOffset(arcs) {\n        let max = 0;\n        for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n            const options = this.resolveDataElementOptions(i);\n            max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n        }\n        return max;\n    }\n _getRingWeightOffset(datasetIndex) {\n        let ringWeightOffset = 0;\n        for(let i = 0; i < datasetIndex; ++i){\n            if (this.chart.isDatasetVisible(i)) {\n                ringWeightOffset += this._getRingWeight(i);\n            }\n        }\n        return ringWeightOffset;\n    }\n _getRingWeight(datasetIndex) {\n        return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n    }\n _getVisibleDatasetWeightTotal() {\n        return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n    }\n}\n\nclass LineController extends DatasetController {\n    static id = 'line';\n static defaults = {\n        datasetElementType: 'line',\n        dataElementType: 'point',\n        showLine: true,\n        spanGaps: false\n    };\n static overrides = {\n        scales: {\n            _index_: {\n                type: 'category'\n            },\n            _value_: {\n                type: 'linear'\n            }\n        }\n    };\n    initialize() {\n        this.enableOptionSharing = true;\n        this.supportsDecimation = true;\n        super.initialize();\n    }\n    update(mode) {\n        const meta = this._cachedMeta;\n        const { dataset: line , data: points = [] , _dataset  } = meta;\n        const animationsDisabled = this.chart._animationsDisabled;\n        let { start , count  } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n        this._drawStart = start;\n        this._drawCount = count;\n        if (_scaleRangesChanged(meta)) {\n            start = 0;\n            count = points.length;\n        }\n        line._chart = this.chart;\n        line._datasetIndex = this.index;\n        line._decimated = !!_dataset._decimated;\n        line.points = points;\n        const options = this.resolveDatasetElementOptions(mode);\n        if (!this.options.showLine) {\n            options.borderWidth = 0;\n        }\n        options.segment = this.options.segment;\n        this.updateElement(line, undefined, {\n            animated: !animationsDisabled,\n            options\n        }, mode);\n        this.updateElements(points, start, count, mode);\n    }\n    updateElements(points, start, count, mode) {\n        const reset = mode === 'reset';\n        const { iScale , vScale , _stacked , _dataset  } = this._cachedMeta;\n        const { sharedOptions , includeOptions  } = this._getSharedOptions(start, mode);\n        const iAxis = iScale.axis;\n        const vAxis = vScale.axis;\n        const { spanGaps , segment  } = this.options;\n        const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n        const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n        const end = start + count;\n        const pointsCount = points.length;\n        let prevParsed = start > 0 && this.getParsed(start - 1);\n        for(let i = 0; i < pointsCount; ++i){\n            const point = points[i];\n            const properties = directUpdate ? point : {};\n            if (i < start || i >= end) {\n                properties.skip = true;\n                continue;\n            }\n            const parsed = this.getParsed(i);\n            const nullData = isNullOrUndef(parsed[vAxis]);\n            const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n            const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n            properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n            properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n            if (segment) {\n                properties.parsed = parsed;\n                properties.raw = _dataset.data[i];\n            }\n            if (includeOptions) {\n                properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n            }\n            if (!directUpdate) {\n                this.updateElement(point, i, properties, mode);\n            }\n            prevParsed = parsed;\n        }\n    }\n getMaxOverflow() {\n        const meta = this._cachedMeta;\n        const dataset = meta.dataset;\n        const border = dataset.options && dataset.options.borderWidth || 0;\n        const data = meta.data || [];\n        if (!data.length) {\n            return border;\n        }\n        const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n        const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n        return Math.max(border, firstPoint, lastPoint) / 2;\n    }\n    draw() {\n        const meta = this._cachedMeta;\n        meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n        super.draw();\n    }\n}\n\nclass PolarAreaController extends DatasetController {\n    static id = 'polarArea';\n static defaults = {\n        dataElementType: 'arc',\n        animation: {\n            animateRotate: true,\n            animateScale: true\n        },\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: [\n                    'x',\n                    'y',\n                    'startAngle',\n                    'endAngle',\n                    'innerRadius',\n                    'outerRadius'\n                ]\n            }\n        },\n        indexAxis: 'r',\n        startAngle: 0\n    };\n static overrides = {\n        aspectRatio: 1,\n        plugins: {\n            legend: {\n                labels: {\n                    generateLabels (chart) {\n                        const data = chart.data;\n                        if (data.labels.length && data.datasets.length) {\n                            const { labels: { pointStyle , color  }  } = chart.legend.options;\n                            return data.labels.map((label, i)=>{\n                                const meta = chart.getDatasetMeta(0);\n                                const style = meta.controller.getStyle(i);\n                                return {\n                                    text: label,\n                                    fillStyle: style.backgroundColor,\n                                    strokeStyle: style.borderColor,\n                                    fontColor: color,\n                                    lineWidth: style.borderWidth,\n                                    pointStyle: pointStyle,\n                                    hidden: !chart.getDataVisibility(i),\n                                    index: i\n                                };\n                            });\n                        }\n                        return [];\n                    }\n                },\n                onClick (e, legendItem, legend) {\n                    legend.chart.toggleDataVisibility(legendItem.index);\n                    legend.chart.update();\n                }\n            }\n        },\n        scales: {\n            r: {\n                type: 'radialLinear',\n                angleLines: {\n                    display: false\n                },\n                beginAtZero: true,\n                grid: {\n                    circular: true\n                },\n                pointLabels: {\n                    display: false\n                },\n                startAngle: 0\n            }\n        }\n    };\n    constructor(chart, datasetIndex){\n        super(chart, datasetIndex);\n        this.innerRadius = undefined;\n        this.outerRadius = undefined;\n    }\n    getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const chart = this.chart;\n        const labels = chart.data.labels || [];\n        const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n        return {\n            label: labels[index] || '',\n            value\n        };\n    }\n    parseObjectData(meta, data, start, count) {\n        return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n    }\n    update(mode) {\n        const arcs = this._cachedMeta.data;\n        this._updateRadius();\n        this.updateElements(arcs, 0, arcs.length, mode);\n    }\n getMinMax() {\n        const meta = this._cachedMeta;\n        const range = {\n            min: Number.POSITIVE_INFINITY,\n            max: Number.NEGATIVE_INFINITY\n        };\n        meta.data.forEach((element, index)=>{\n            const parsed = this.getParsed(index).r;\n            if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n                if (parsed < range.min) {\n                    range.min = parsed;\n                }\n                if (parsed > range.max) {\n                    range.max = parsed;\n                }\n            }\n        });\n        return range;\n    }\n _updateRadius() {\n        const chart = this.chart;\n        const chartArea = chart.chartArea;\n        const opts = chart.options;\n        const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n        const outerRadius = Math.max(minSize / 2, 0);\n        const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n        const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n        this.outerRadius = outerRadius - radiusLength * this.index;\n        this.innerRadius = this.outerRadius - radiusLength;\n    }\n    updateElements(arcs, start, count, mode) {\n        const reset = mode === 'reset';\n        const chart = this.chart;\n        const opts = chart.options;\n        const animationOpts = opts.animation;\n        const scale = this._cachedMeta.rScale;\n        const centerX = scale.xCenter;\n        const centerY = scale.yCenter;\n        const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n        let angle = datasetStartAngle;\n        let i;\n        const defaultAngle = 360 / this.countVisibleElements();\n        for(i = 0; i < start; ++i){\n            angle += this._computeAngle(i, mode, defaultAngle);\n        }\n        for(i = start; i < start + count; i++){\n            const arc = arcs[i];\n            let startAngle = angle;\n            let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n            let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n            angle = endAngle;\n            if (reset) {\n                if (animationOpts.animateScale) {\n                    outerRadius = 0;\n                }\n                if (animationOpts.animateRotate) {\n                    startAngle = endAngle = datasetStartAngle;\n                }\n            }\n            const properties = {\n                x: centerX,\n                y: centerY,\n                innerRadius: 0,\n                outerRadius,\n                startAngle,\n                endAngle,\n                options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n            };\n            this.updateElement(arc, i, properties, mode);\n        }\n    }\n    countVisibleElements() {\n        const meta = this._cachedMeta;\n        let count = 0;\n        meta.data.forEach((element, index)=>{\n            if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n                count++;\n            }\n        });\n        return count;\n    }\n _computeAngle(index, mode, defaultAngle) {\n        return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n    }\n}\n\nclass PieController extends DoughnutController {\n    static id = 'pie';\n static defaults = {\n        cutout: 0,\n        rotation: 0,\n        circumference: 360,\n        radius: '100%'\n    };\n}\n\nclass RadarController extends DatasetController {\n    static id = 'radar';\n static defaults = {\n        datasetElementType: 'line',\n        dataElementType: 'point',\n        indexAxis: 'r',\n        showLine: true,\n        elements: {\n            line: {\n                fill: 'start'\n            }\n        }\n    };\n static overrides = {\n        aspectRatio: 1,\n        scales: {\n            r: {\n                type: 'radialLinear'\n            }\n        }\n    };\n getLabelAndValue(index) {\n        const vScale = this._cachedMeta.vScale;\n        const parsed = this.getParsed(index);\n        return {\n            label: vScale.getLabels()[index],\n            value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n        };\n    }\n    parseObjectData(meta, data, start, count) {\n        return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n    }\n    update(mode) {\n        const meta = this._cachedMeta;\n        const line = meta.dataset;\n        const points = meta.data || [];\n        const labels = meta.iScale.getLabels();\n        line.points = points;\n        if (mode !== 'resize') {\n            const options = this.resolveDatasetElementOptions(mode);\n            if (!this.options.showLine) {\n                options.borderWidth = 0;\n            }\n            const properties = {\n                _loop: true,\n                _fullLoop: labels.length === points.length,\n                options\n            };\n            this.updateElement(line, undefined, properties, mode);\n        }\n        this.updateElements(points, 0, points.length, mode);\n    }\n    updateElements(points, start, count, mode) {\n        const scale = this._cachedMeta.rScale;\n        const reset = mode === 'reset';\n        for(let i = start; i < start + count; i++){\n            const point = points[i];\n            const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n            const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n            const x = reset ? scale.xCenter : pointPosition.x;\n            const y = reset ? scale.yCenter : pointPosition.y;\n            const properties = {\n                x,\n                y,\n                angle: pointPosition.angle,\n                skip: isNaN(x) || isNaN(y),\n                options\n            };\n            this.updateElement(point, i, properties, mode);\n        }\n    }\n}\n\nclass ScatterController extends DatasetController {\n    static id = 'scatter';\n static defaults = {\n        datasetElementType: false,\n        dataElementType: 'point',\n        showLine: false,\n        fill: false\n    };\n static overrides = {\n        interaction: {\n            mode: 'point'\n        },\n        scales: {\n            x: {\n                type: 'linear'\n            },\n            y: {\n                type: 'linear'\n            }\n        }\n    };\n getLabelAndValue(index) {\n        const meta = this._cachedMeta;\n        const labels = this.chart.data.labels || [];\n        const { xScale , yScale  } = meta;\n        const parsed = this.getParsed(index);\n        const x = xScale.getLabelForValue(parsed.x);\n        const y = yScale.getLabelForValue(parsed.y);\n        return {\n            label: labels[index] || '',\n            value: '(' + x + ', ' + y + ')'\n        };\n    }\n    update(mode) {\n        const meta = this._cachedMeta;\n        const { data: points = []  } = meta;\n        const animationsDisabled = this.chart._animationsDisabled;\n        let { start , count  } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n        this._drawStart = start;\n        this._drawCount = count;\n        if (_scaleRangesChanged(meta)) {\n            start = 0;\n            count = points.length;\n        }\n        if (this.options.showLine) {\n            if (!this.datasetElementType) {\n                this.addElements();\n            }\n            const { dataset: line , _dataset  } = meta;\n            line._chart = this.chart;\n            line._datasetIndex = this.index;\n            line._decimated = !!_dataset._decimated;\n            line.points = points;\n            const options = this.resolveDatasetElementOptions(mode);\n            options.segment = this.options.segment;\n            this.updateElement(line, undefined, {\n                animated: !animationsDisabled,\n                options\n            }, mode);\n        } else if (this.datasetElementType) {\n            delete meta.dataset;\n            this.datasetElementType = false;\n        }\n        this.updateElements(points, start, count, mode);\n    }\n    addElements() {\n        const { showLine  } = this.options;\n        if (!this.datasetElementType && showLine) {\n            this.datasetElementType = this.chart.registry.getElement('line');\n        }\n        super.addElements();\n    }\n    updateElements(points, start, count, mode) {\n        const reset = mode === 'reset';\n        const { iScale , vScale , _stacked , _dataset  } = this._cachedMeta;\n        const firstOpts = this.resolveDataElementOptions(start, mode);\n        const sharedOptions = this.getSharedOptions(firstOpts);\n        const includeOptions = this.includeOptions(mode, sharedOptions);\n        const iAxis = iScale.axis;\n        const vAxis = vScale.axis;\n        const { spanGaps , segment  } = this.options;\n        const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n        const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n        let prevParsed = start > 0 && this.getParsed(start - 1);\n        for(let i = start; i < start + count; ++i){\n            const point = points[i];\n            const parsed = this.getParsed(i);\n            const properties = directUpdate ? point : {};\n            const nullData = isNullOrUndef(parsed[vAxis]);\n            const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n            const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n            properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n            properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n            if (segment) {\n                properties.parsed = parsed;\n                properties.raw = _dataset.data[i];\n            }\n            if (includeOptions) {\n                properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n            }\n            if (!directUpdate) {\n                this.updateElement(point, i, properties, mode);\n            }\n            prevParsed = parsed;\n        }\n        this.updateSharedOptions(sharedOptions, mode, firstOpts);\n    }\n getMaxOverflow() {\n        const meta = this._cachedMeta;\n        const data = meta.data || [];\n        if (!this.options.showLine) {\n            let max = 0;\n            for(let i = data.length - 1; i >= 0; --i){\n                max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n            }\n            return max > 0 && max;\n        }\n        const dataset = meta.dataset;\n        const border = dataset.options && dataset.options.borderWidth || 0;\n        if (!data.length) {\n            return border;\n        }\n        const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n        const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n        return Math.max(border, firstPoint, lastPoint) / 2;\n    }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n    throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n    /**\n   * Override default date adapter methods.\n   * Accepts type parameter to define options type.\n   * @example\n   * Chart._adapters._date.override<{myAdapterOption: string}>({\n   *   init() {\n   *     console.log(this.options.myAdapterOption);\n   *   }\n   * })\n   */ static override(members) {\n        Object.assign(DateAdapterBase.prototype, members);\n    }\n    options;\n    constructor(options){\n        this.options = options || {};\n    }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    init() {}\n    formats() {\n        return abstract();\n    }\n    parse() {\n        return abstract();\n    }\n    format() {\n        return abstract();\n    }\n    add() {\n        return abstract();\n    }\n    diff() {\n        return abstract();\n    }\n    startOf() {\n        return abstract();\n    }\n    endOf() {\n        return abstract();\n    }\n}\nvar adapters = {\n    _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n    const { controller , data , _sorted  } = metaset;\n    const iScale = controller._cachedMeta.iScale;\n    const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n    if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n        const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n        if (!intersect) {\n            const result = lookupMethod(data, axis, value);\n            if (spanGaps) {\n                const { vScale  } = controller._cachedMeta;\n                const { _parsed  } = metaset;\n                const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n                result.lo -= Math.max(0, distanceToDefinedLo);\n                const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n                result.hi += Math.max(0, distanceToDefinedHi);\n            }\n            return result;\n        } else if (controller._sharedOptions) {\n            const el = data[0];\n            const range = typeof el.getRange === 'function' && el.getRange(axis);\n            if (range) {\n                const start = lookupMethod(data, axis, value - range);\n                const end = lookupMethod(data, axis, value + range);\n                return {\n                    lo: start.lo,\n                    hi: end.hi\n                };\n            }\n        }\n    }\n    return {\n        lo: 0,\n        hi: data.length - 1\n    };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n    const metasets = chart.getSortedVisibleDatasetMetas();\n    const value = position[axis];\n    for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n        const { index , data  } = metasets[i];\n        const { lo , hi  } = binarySearch(metasets[i], axis, value, intersect);\n        for(let j = lo; j <= hi; ++j){\n            const element = data[j];\n            if (!element.skip) {\n                handler(element, index, j);\n            }\n        }\n    }\n}\n function getDistanceMetricForAxis(axis) {\n    const useX = axis.indexOf('x') !== -1;\n    const useY = axis.indexOf('y') !== -1;\n    return function(pt1, pt2) {\n        const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n        const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n        return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n    };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n    const items = [];\n    if (!includeInvisible && !chart.isPointInArea(position)) {\n        return items;\n    }\n    const evaluationFunc = function(element, datasetIndex, index) {\n        if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n            return;\n        }\n        if (element.inRange(position.x, position.y, useFinalPosition)) {\n            items.push({\n                element,\n                datasetIndex,\n                index\n            });\n        }\n    };\n    evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n    return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n    let items = [];\n    function evaluationFunc(element, datasetIndex, index) {\n        const { startAngle , endAngle  } = element.getProps([\n            'startAngle',\n            'endAngle'\n        ], useFinalPosition);\n        const { angle  } = getAngleFromPoint(element, {\n            x: position.x,\n            y: position.y\n        });\n        if (_angleBetween(angle, startAngle, endAngle)) {\n            items.push({\n                element,\n                datasetIndex,\n                index\n            });\n        }\n    }\n    evaluateInteractionItems(chart, axis, position, evaluationFunc);\n    return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n    let items = [];\n    const distanceMetric = getDistanceMetricForAxis(axis);\n    let minDistance = Number.POSITIVE_INFINITY;\n    function evaluationFunc(element, datasetIndex, index) {\n        const inRange = element.inRange(position.x, position.y, useFinalPosition);\n        if (intersect && !inRange) {\n            return;\n        }\n        const center = element.getCenterPoint(useFinalPosition);\n        const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n        if (!pointInArea && !inRange) {\n            return;\n        }\n        const distance = distanceMetric(position, center);\n        if (distance < minDistance) {\n            items = [\n                {\n                    element,\n                    datasetIndex,\n                    index\n                }\n            ];\n            minDistance = distance;\n        } else if (distance === minDistance) {\n            items.push({\n                element,\n                datasetIndex,\n                index\n            });\n        }\n    }\n    evaluateInteractionItems(chart, axis, position, evaluationFunc);\n    return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n    if (!includeInvisible && !chart.isPointInArea(position)) {\n        return [];\n    }\n    return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n    const items = [];\n    const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n    let intersectsItem = false;\n    evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n        if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n            items.push({\n                element,\n                datasetIndex,\n                index\n            });\n            intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n        }\n    });\n    if (intersect && !intersectsItem) {\n        return [];\n    }\n    return items;\n}\n var Interaction = {\n    evaluateInteractionItems,\n    modes: {\n index (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            const axis = options.axis || 'x';\n            const includeInvisible = options.includeInvisible || false;\n            const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n            const elements = [];\n            if (!items.length) {\n                return [];\n            }\n            chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n                const index = items[0].index;\n                const element = meta.data[index];\n                if (element && !element.skip) {\n                    elements.push({\n                        element,\n                        datasetIndex: meta.index,\n                        index\n                    });\n                }\n            });\n            return elements;\n        },\n dataset (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            const axis = options.axis || 'xy';\n            const includeInvisible = options.includeInvisible || false;\n            let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n            if (items.length > 0) {\n                const datasetIndex = items[0].datasetIndex;\n                const data = chart.getDatasetMeta(datasetIndex).data;\n                items = [];\n                for(let i = 0; i < data.length; ++i){\n                    items.push({\n                        element: data[i],\n                        datasetIndex,\n                        index: i\n                    });\n                }\n            }\n            return items;\n        },\n point (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            const axis = options.axis || 'xy';\n            const includeInvisible = options.includeInvisible || false;\n            return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n        },\n nearest (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            const axis = options.axis || 'xy';\n            const includeInvisible = options.includeInvisible || false;\n            return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n        },\n x (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n        },\n y (chart, e, options, useFinalPosition) {\n            const position = getRelativePosition(e, chart);\n            return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n        }\n    }\n};\n\nconst STATIC_POSITIONS = [\n    'left',\n    'top',\n    'right',\n    'bottom'\n];\nfunction filterByPosition(array, position) {\n    return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n    return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n    return array.sort((a, b)=>{\n        const v0 = reverse ? b : a;\n        const v1 = reverse ? a : b;\n        return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n    });\n}\nfunction wrapBoxes(boxes) {\n    const layoutBoxes = [];\n    let i, ilen, box, pos, stack, stackWeight;\n    for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n        box = boxes[i];\n        ({ position: pos , options: { stack , stackWeight =1  }  } = box);\n        layoutBoxes.push({\n            index: i,\n            box,\n            pos,\n            horizontal: box.isHorizontal(),\n            weight: box.weight,\n            stack: stack && pos + stack,\n            stackWeight\n        });\n    }\n    return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n    const stacks = {};\n    for (const wrap of layouts){\n        const { stack , pos , stackWeight  } = wrap;\n        if (!stack || !STATIC_POSITIONS.includes(pos)) {\n            continue;\n        }\n        const _stack = stacks[stack] || (stacks[stack] = {\n            count: 0,\n            placed: 0,\n            weight: 0,\n            size: 0\n        });\n        _stack.count++;\n        _stack.weight += stackWeight;\n    }\n    return stacks;\n}\n function setLayoutDims(layouts, params) {\n    const stacks = buildStacks(layouts);\n    const { vBoxMaxWidth , hBoxMaxHeight  } = params;\n    let i, ilen, layout;\n    for(i = 0, ilen = layouts.length; i < ilen; ++i){\n        layout = layouts[i];\n        const { fullSize  } = layout.box;\n        const stack = stacks[layout.stack];\n        const factor = stack && layout.stackWeight / stack.weight;\n        if (layout.horizontal) {\n            layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n            layout.height = hBoxMaxHeight;\n        } else {\n            layout.width = vBoxMaxWidth;\n            layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n        }\n    }\n    return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n    const layoutBoxes = wrapBoxes(boxes);\n    const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n    const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n    const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n    const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n    const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n    const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n    const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n    return {\n        fullSize,\n        leftAndTop: left.concat(top),\n        rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n        chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n        vertical: left.concat(right).concat(centerVertical),\n        horizontal: top.concat(bottom).concat(centerHorizontal)\n    };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n    return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n    maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n    maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n    maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n    maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n    const { pos , box  } = layout;\n    const maxPadding = chartArea.maxPadding;\n    if (!isObject(pos)) {\n        if (layout.size) {\n            chartArea[pos] -= layout.size;\n        }\n        const stack = stacks[layout.stack] || {\n            size: 0,\n            count: 1\n        };\n        stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n        layout.size = stack.size / stack.count;\n        chartArea[pos] += layout.size;\n    }\n    if (box.getPadding) {\n        updateMaxPadding(maxPadding, box.getPadding());\n    }\n    const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n    const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n    const widthChanged = newWidth !== chartArea.w;\n    const heightChanged = newHeight !== chartArea.h;\n    chartArea.w = newWidth;\n    chartArea.h = newHeight;\n    return layout.horizontal ? {\n        same: widthChanged,\n        other: heightChanged\n    } : {\n        same: heightChanged,\n        other: widthChanged\n    };\n}\nfunction handleMaxPadding(chartArea) {\n    const maxPadding = chartArea.maxPadding;\n    function updatePos(pos) {\n        const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n        chartArea[pos] += change;\n        return change;\n    }\n    chartArea.y += updatePos('top');\n    chartArea.x += updatePos('left');\n    updatePos('right');\n    updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n    const maxPadding = chartArea.maxPadding;\n    function marginForPositions(positions) {\n        const margin = {\n            left: 0,\n            top: 0,\n            right: 0,\n            bottom: 0\n        };\n        positions.forEach((pos)=>{\n            margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n        });\n        return margin;\n    }\n    return horizontal ? marginForPositions([\n        'left',\n        'right'\n    ]) : marginForPositions([\n        'top',\n        'bottom'\n    ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n    const refitBoxes = [];\n    let i, ilen, layout, box, refit, changed;\n    for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n        layout = boxes[i];\n        box = layout.box;\n        box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n        const { same , other  } = updateDims(chartArea, params, layout, stacks);\n        refit |= same && refitBoxes.length;\n        changed = changed || other;\n        if (!box.fullSize) {\n            refitBoxes.push(layout);\n        }\n    }\n    return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n    box.top = top;\n    box.left = left;\n    box.right = left + width;\n    box.bottom = top + height;\n    box.width = width;\n    box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n    const userPadding = params.padding;\n    let { x , y  } = chartArea;\n    for (const layout of boxes){\n        const box = layout.box;\n        const stack = stacks[layout.stack] || {\n            count: 1,\n            placed: 0,\n            weight: 1\n        };\n        const weight = layout.stackWeight / stack.weight || 1;\n        if (layout.horizontal) {\n            const width = chartArea.w * weight;\n            const height = stack.size || box.height;\n            if (defined(stack.start)) {\n                y = stack.start;\n            }\n            if (box.fullSize) {\n                setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n            } else {\n                setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n            }\n            stack.start = y;\n            stack.placed += width;\n            y = box.bottom;\n        } else {\n            const height = chartArea.h * weight;\n            const width = stack.size || box.width;\n            if (defined(stack.start)) {\n                x = stack.start;\n            }\n            if (box.fullSize) {\n                setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n            } else {\n                setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n            }\n            stack.start = x;\n            stack.placed += height;\n            x = box.right;\n        }\n    }\n    chartArea.x = x;\n    chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n        if (!chart.boxes) {\n            chart.boxes = [];\n        }\n        item.fullSize = item.fullSize || false;\n        item.position = item.position || 'top';\n        item.weight = item.weight || 0;\n        item._layers = item._layers || function() {\n            return [\n                {\n                    z: 0,\n                    draw (chartArea) {\n                        item.draw(chartArea);\n                    }\n                }\n            ];\n        };\n        chart.boxes.push(item);\n    },\n removeBox (chart, layoutItem) {\n        const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n        if (index !== -1) {\n            chart.boxes.splice(index, 1);\n        }\n    },\n configure (chart, item, options) {\n        item.fullSize = options.fullSize;\n        item.position = options.position;\n        item.weight = options.weight;\n    },\n update (chart, width, height, minPadding) {\n        if (!chart) {\n            return;\n        }\n        const padding = toPadding(chart.options.layout.padding);\n        const availableWidth = Math.max(width - padding.width, 0);\n        const availableHeight = Math.max(height - padding.height, 0);\n        const boxes = buildLayoutBoxes(chart.boxes);\n        const verticalBoxes = boxes.vertical;\n        const horizontalBoxes = boxes.horizontal;\n        each(chart.boxes, (box)=>{\n            if (typeof box.beforeLayout === 'function') {\n                box.beforeLayout();\n            }\n        });\n        const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n        const params = Object.freeze({\n            outerWidth: width,\n            outerHeight: height,\n            padding,\n            availableWidth,\n            availableHeight,\n            vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n            hBoxMaxHeight: availableHeight / 2\n        });\n        const maxPadding = Object.assign({}, padding);\n        updateMaxPadding(maxPadding, toPadding(minPadding));\n        const chartArea = Object.assign({\n            maxPadding,\n            w: availableWidth,\n            h: availableHeight,\n            x: padding.left,\n            y: padding.top\n        }, padding);\n        const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n        fitBoxes(boxes.fullSize, chartArea, params, stacks);\n        fitBoxes(verticalBoxes, chartArea, params, stacks);\n        if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n            fitBoxes(verticalBoxes, chartArea, params, stacks);\n        }\n        handleMaxPadding(chartArea);\n        placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n        chartArea.x += chartArea.w;\n        chartArea.y += chartArea.h;\n        placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n        chart.chartArea = {\n            left: chartArea.left,\n            top: chartArea.top,\n            right: chartArea.left + chartArea.w,\n            bottom: chartArea.top + chartArea.h,\n            height: chartArea.h,\n            width: chartArea.w\n        };\n        each(boxes.chartArea, (layout)=>{\n            const box = layout.box;\n            Object.assign(box, chart.chartArea);\n            box.update(chartArea.w, chartArea.h, {\n                left: 0,\n                top: 0,\n                right: 0,\n                bottom: 0\n            });\n        });\n    }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n        return false;\n    }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n        return 1;\n    }\n getMaximumSize(element, width, height, aspectRatio) {\n        width = Math.max(0, width || element.width);\n        height = height || element.height;\n        return {\n            width,\n            height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n        };\n    }\n isAttached(canvas) {\n        return true;\n    }\n updateConfig(config) {\n    }\n}\n\nclass BasicPlatform extends BasePlatform {\n    acquireContext(item) {\n        return item && item.getContext && item.getContext('2d') || null;\n    }\n    updateConfig(config) {\n        config.options.animation = false;\n    }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n    touchstart: 'mousedown',\n    touchmove: 'mousemove',\n    touchend: 'mouseup',\n    pointerenter: 'mouseenter',\n    pointerdown: 'mousedown',\n    pointermove: 'mousemove',\n    pointerup: 'mouseup',\n    pointerleave: 'mouseout',\n    pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n    const style = canvas.style;\n    const renderHeight = canvas.getAttribute('height');\n    const renderWidth = canvas.getAttribute('width');\n    canvas[EXPANDO_KEY] = {\n        initial: {\n            height: renderHeight,\n            width: renderWidth,\n            style: {\n                display: style.display,\n                height: style.height,\n                width: style.width\n            }\n        }\n    };\n    style.display = style.display || 'block';\n    style.boxSizing = style.boxSizing || 'border-box';\n    if (isNullOrEmpty(renderWidth)) {\n        const displayWidth = readUsedSize(canvas, 'width');\n        if (displayWidth !== undefined) {\n            canvas.width = displayWidth;\n        }\n    }\n    if (isNullOrEmpty(renderHeight)) {\n        if (canvas.style.height === '') {\n            canvas.height = canvas.width / (aspectRatio || 2);\n        } else {\n            const displayHeight = readUsedSize(canvas, 'height');\n            if (displayHeight !== undefined) {\n                canvas.height = displayHeight;\n            }\n        }\n    }\n    return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n    passive: true\n} : false;\nfunction addListener(node, type, listener) {\n    if (node) {\n        node.addEventListener(type, listener, eventListenerOptions);\n    }\n}\nfunction removeListener(chart, type, listener) {\n    if (chart && chart.canvas) {\n        chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n    }\n}\nfunction fromNativeEvent(event, chart) {\n    const type = EVENT_TYPES[event.type] || event.type;\n    const { x , y  } = getRelativePosition(event, chart);\n    return {\n        type,\n        chart,\n        native: event,\n        x: x !== undefined ? x : null,\n        y: y !== undefined ? y : null\n    };\n}\nfunction nodeListContains(nodeList, canvas) {\n    for (const node of nodeList){\n        if (node === canvas || node.contains(canvas)) {\n            return true;\n        }\n    }\n}\nfunction createAttachObserver(chart, type, listener) {\n    const canvas = chart.canvas;\n    const observer = new MutationObserver((entries)=>{\n        let trigger = false;\n        for (const entry of entries){\n            trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n            trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n        }\n        if (trigger) {\n            listener();\n        }\n    });\n    observer.observe(document, {\n        childList: true,\n        subtree: true\n    });\n    return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n    const canvas = chart.canvas;\n    const observer = new MutationObserver((entries)=>{\n        let trigger = false;\n        for (const entry of entries){\n            trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n            trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n        }\n        if (trigger) {\n            listener();\n        }\n    });\n    observer.observe(document, {\n        childList: true,\n        subtree: true\n    });\n    return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n    const dpr = window.devicePixelRatio;\n    if (dpr === oldDevicePixelRatio) {\n        return;\n    }\n    oldDevicePixelRatio = dpr;\n    drpListeningCharts.forEach((resize, chart)=>{\n        if (chart.currentDevicePixelRatio !== dpr) {\n            resize();\n        }\n    });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n    if (!drpListeningCharts.size) {\n        window.addEventListener('resize', onWindowResize);\n    }\n    drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n    drpListeningCharts.delete(chart);\n    if (!drpListeningCharts.size) {\n        window.removeEventListener('resize', onWindowResize);\n    }\n}\nfunction createResizeObserver(chart, type, listener) {\n    const canvas = chart.canvas;\n    const container = canvas && _getParentNode(canvas);\n    if (!container) {\n        return;\n    }\n    const resize = throttled((width, height)=>{\n        const w = container.clientWidth;\n        listener(width, height);\n        if (w < container.clientWidth) {\n            listener();\n        }\n    }, window);\n    const observer = new ResizeObserver((entries)=>{\n        const entry = entries[0];\n        const width = entry.contentRect.width;\n        const height = entry.contentRect.height;\n        if (width === 0 && height === 0) {\n            return;\n        }\n        resize(width, height);\n    });\n    observer.observe(container);\n    listenDevicePixelRatioChanges(chart, resize);\n    return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n    if (observer) {\n        observer.disconnect();\n    }\n    if (type === 'resize') {\n        unlistenDevicePixelRatioChanges(chart);\n    }\n}\nfunction createProxyAndListen(chart, type, listener) {\n    const canvas = chart.canvas;\n    const proxy = throttled((event)=>{\n        if (chart.ctx !== null) {\n            listener(fromNativeEvent(event, chart));\n        }\n    }, chart);\n    addListener(canvas, type, proxy);\n    return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n        const context = canvas && canvas.getContext && canvas.getContext('2d');\n        if (context && context.canvas === canvas) {\n            initCanvas(canvas, aspectRatio);\n            return context;\n        }\n        return null;\n    }\n releaseContext(context) {\n        const canvas = context.canvas;\n        if (!canvas[EXPANDO_KEY]) {\n            return false;\n        }\n        const initial = canvas[EXPANDO_KEY].initial;\n        [\n            'height',\n            'width'\n        ].forEach((prop)=>{\n            const value = initial[prop];\n            if (isNullOrUndef(value)) {\n                canvas.removeAttribute(prop);\n            } else {\n                canvas.setAttribute(prop, value);\n            }\n        });\n        const style = initial.style || {};\n        Object.keys(style).forEach((key)=>{\n            canvas.style[key] = style[key];\n        });\n        canvas.width = canvas.width;\n        delete canvas[EXPANDO_KEY];\n        return true;\n    }\n addEventListener(chart, type, listener) {\n        this.removeEventListener(chart, type);\n        const proxies = chart.$proxies || (chart.$proxies = {});\n        const handlers = {\n            attach: createAttachObserver,\n            detach: createDetachObserver,\n            resize: createResizeObserver\n        };\n        const handler = handlers[type] || createProxyAndListen;\n        proxies[type] = handler(chart, type, listener);\n    }\n removeEventListener(chart, type) {\n        const proxies = chart.$proxies || (chart.$proxies = {});\n        const proxy = proxies[type];\n        if (!proxy) {\n            return;\n        }\n        const handlers = {\n            attach: releaseObserver,\n            detach: releaseObserver,\n            resize: releaseObserver\n        };\n        const handler = handlers[type] || removeListener;\n        handler(chart, type, proxy);\n        proxies[type] = undefined;\n    }\n    getDevicePixelRatio() {\n        return window.devicePixelRatio;\n    }\n getMaximumSize(canvas, width, height, aspectRatio) {\n        return getMaximumSize(canvas, width, height, aspectRatio);\n    }\n isAttached(canvas) {\n        const container = canvas && _getParentNode(canvas);\n        return !!(container && container.isConnected);\n    }\n}\n\nfunction _detectPlatform(canvas) {\n    if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n        return BasicPlatform;\n    }\n    return DomPlatform;\n}\n\nclass Element {\n    static defaults = {};\n    static defaultRoutes = undefined;\n    x;\n    y;\n    active = false;\n    options;\n    $animations;\n    tooltipPosition(useFinalPosition) {\n        const { x , y  } = this.getProps([\n            'x',\n            'y'\n        ], useFinalPosition);\n        return {\n            x,\n            y\n        };\n    }\n    hasValue() {\n        return isNumber(this.x) && isNumber(this.y);\n    }\n    getProps(props, final) {\n        const anims = this.$animations;\n        if (!final || !anims) {\n            // let's not create an object, if not needed\n            return this;\n        }\n        const ret = {};\n        props.forEach((prop)=>{\n            ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n        });\n        return ret;\n    }\n}\n\nfunction autoSkip(scale, ticks) {\n    const tickOpts = scale.options.ticks;\n    const determinedMaxTicks = determineMaxTicks(scale);\n    const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n    const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n    const numMajorIndices = majorIndices.length;\n    const first = majorIndices[0];\n    const last = majorIndices[numMajorIndices - 1];\n    const newTicks = [];\n    if (numMajorIndices > ticksLimit) {\n        skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n        return newTicks;\n    }\n    const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n    if (numMajorIndices > 0) {\n        let i, ilen;\n        const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n        skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n        for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n            skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n        }\n        skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n        return newTicks;\n    }\n    skip(ticks, newTicks, spacing);\n    return newTicks;\n}\nfunction determineMaxTicks(scale) {\n    const offset = scale.options.offset;\n    const tickLength = scale._tickSize();\n    const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n    const maxChart = scale._maxLength / tickLength;\n    return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n    const evenMajorSpacing = getEvenSpacing(majorIndices);\n    const spacing = ticks.length / ticksLimit;\n    if (!evenMajorSpacing) {\n        return Math.max(spacing, 1);\n    }\n    const factors = _factorize(evenMajorSpacing);\n    for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n        const factor = factors[i];\n        if (factor > spacing) {\n            return factor;\n        }\n    }\n    return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n    const result = [];\n    let i, ilen;\n    for(i = 0, ilen = ticks.length; i < ilen; i++){\n        if (ticks[i].major) {\n            result.push(i);\n        }\n    }\n    return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n    let count = 0;\n    let next = majorIndices[0];\n    let i;\n    spacing = Math.ceil(spacing);\n    for(i = 0; i < ticks.length; i++){\n        if (i === next) {\n            newTicks.push(ticks[i]);\n            count++;\n            next = majorIndices[count * spacing];\n        }\n    }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n    const start = valueOrDefault(majorStart, 0);\n    const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n    let count = 0;\n    let length, i, next;\n    spacing = Math.ceil(spacing);\n    if (majorEnd) {\n        length = majorEnd - majorStart;\n        spacing = length / Math.floor(length / spacing);\n    }\n    next = start;\n    while(next < 0){\n        count++;\n        next = Math.round(start + count * spacing);\n    }\n    for(i = Math.max(start, 0); i < end; i++){\n        if (i === next) {\n            newTicks.push(ticks[i]);\n            count++;\n            next = Math.round(start + count * spacing);\n        }\n    }\n}\n function getEvenSpacing(arr) {\n    const len = arr.length;\n    let i, diff;\n    if (len < 2) {\n        return false;\n    }\n    for(diff = arr[0], i = 1; i < len; ++i){\n        if (arr[i] - arr[i - 1] !== diff) {\n            return false;\n        }\n    }\n    return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n    const result = [];\n    const increment = arr.length / numItems;\n    const len = arr.length;\n    let i = 0;\n    for(; i < len; i += increment){\n        result.push(arr[Math.floor(i)]);\n    }\n    return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n    const length = scale.ticks.length;\n    const validIndex = Math.min(index, length - 1);\n    const start = scale._startPixel;\n    const end = scale._endPixel;\n    const epsilon = 1e-6;\n    let lineValue = scale.getPixelForTick(validIndex);\n    let offset;\n    if (offsetGridLines) {\n        if (length === 1) {\n            offset = Math.max(lineValue - start, end - lineValue);\n        } else if (index === 0) {\n            offset = (scale.getPixelForTick(1) - lineValue) / 2;\n        } else {\n            offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n        }\n        lineValue += validIndex < index ? offset : -offset;\n        if (lineValue < start - epsilon || lineValue > end + epsilon) {\n            return;\n        }\n    }\n    return lineValue;\n}\n function garbageCollect(caches, length) {\n    each(caches, (cache)=>{\n        const gc = cache.gc;\n        const gcLen = gc.length / 2;\n        let i;\n        if (gcLen > length) {\n            for(i = 0; i < gcLen; ++i){\n                delete cache.data[gc[i]];\n            }\n            gc.splice(0, gcLen);\n        }\n    });\n}\n function getTickMarkLength(options) {\n    return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n    if (!options.display) {\n        return 0;\n    }\n    const font = toFont(options.font, fallback);\n    const padding = toPadding(options.padding);\n    const lines = isArray(options.text) ? options.text.length : 1;\n    return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n    return createContext(parent, {\n        scale,\n        type: 'scale'\n    });\n}\nfunction createTickContext(parent, index, tick) {\n    return createContext(parent, {\n        tick,\n        index,\n        type: 'tick'\n    });\n}\nfunction titleAlign(align, position, reverse) {\n     let ret = _toLeftRightCenter(align);\n    if (reverse && position !== 'right' || !reverse && position === 'right') {\n        ret = reverseAlign(ret);\n    }\n    return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n    const { top , left , bottom , right , chart  } = scale;\n    const { chartArea , scales  } = chart;\n    let rotation = 0;\n    let maxWidth, titleX, titleY;\n    const height = bottom - top;\n    const width = right - left;\n    if (scale.isHorizontal()) {\n        titleX = _alignStartEnd(align, left, right);\n        if (isObject(position)) {\n            const positionAxisID = Object.keys(position)[0];\n            const value = position[positionAxisID];\n            titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n        } else if (position === 'center') {\n            titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n        } else {\n            titleY = offsetFromEdge(scale, position, offset);\n        }\n        maxWidth = right - left;\n    } else {\n        if (isObject(position)) {\n            const positionAxisID = Object.keys(position)[0];\n            const value = position[positionAxisID];\n            titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n        } else if (position === 'center') {\n            titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n        } else {\n            titleX = offsetFromEdge(scale, position, offset);\n        }\n        titleY = _alignStartEnd(align, bottom, top);\n        rotation = position === 'left' ? -HALF_PI : HALF_PI;\n    }\n    return {\n        titleX,\n        titleY,\n        maxWidth,\n        rotation\n    };\n}\nclass Scale extends Element {\n    constructor(cfg){\n        super();\n         this.id = cfg.id;\n         this.type = cfg.type;\n         this.options = undefined;\n         this.ctx = cfg.ctx;\n         this.chart = cfg.chart;\n         this.top = undefined;\n         this.bottom = undefined;\n         this.left = undefined;\n         this.right = undefined;\n         this.width = undefined;\n         this.height = undefined;\n        this._margins = {\n            left: 0,\n            right: 0,\n            top: 0,\n            bottom: 0\n        };\n         this.maxWidth = undefined;\n         this.maxHeight = undefined;\n         this.paddingTop = undefined;\n         this.paddingBottom = undefined;\n         this.paddingLeft = undefined;\n         this.paddingRight = undefined;\n         this.axis = undefined;\n         this.labelRotation = undefined;\n        this.min = undefined;\n        this.max = undefined;\n        this._range = undefined;\n         this.ticks = [];\n         this._gridLineItems = null;\n         this._labelItems = null;\n         this._labelSizes = null;\n        this._length = 0;\n        this._maxLength = 0;\n        this._longestTextCache = {};\n         this._startPixel = undefined;\n         this._endPixel = undefined;\n        this._reversePixels = false;\n        this._userMax = undefined;\n        this._userMin = undefined;\n        this._suggestedMax = undefined;\n        this._suggestedMin = undefined;\n        this._ticksLength = 0;\n        this._borderValue = 0;\n        this._cache = {};\n        this._dataLimitsCached = false;\n        this.$context = undefined;\n    }\n init(options) {\n        this.options = options.setContext(this.getContext());\n        this.axis = options.axis;\n        this._userMin = this.parse(options.min);\n        this._userMax = this.parse(options.max);\n        this._suggestedMin = this.parse(options.suggestedMin);\n        this._suggestedMax = this.parse(options.suggestedMax);\n    }\n parse(raw, index) {\n        return raw;\n    }\n getUserBounds() {\n        let { _userMin , _userMax , _suggestedMin , _suggestedMax  } = this;\n        _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n        _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n        _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n        _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n        return {\n            min: finiteOrDefault(_userMin, _suggestedMin),\n            max: finiteOrDefault(_userMax, _suggestedMax),\n            minDefined: isNumberFinite(_userMin),\n            maxDefined: isNumberFinite(_userMax)\n        };\n    }\n getMinMax(canStack) {\n        let { min , max , minDefined , maxDefined  } = this.getUserBounds();\n        let range;\n        if (minDefined && maxDefined) {\n            return {\n                min,\n                max\n            };\n        }\n        const metas = this.getMatchingVisibleMetas();\n        for(let i = 0, ilen = metas.length; i < ilen; ++i){\n            range = metas[i].controller.getMinMax(this, canStack);\n            if (!minDefined) {\n                min = Math.min(min, range.min);\n            }\n            if (!maxDefined) {\n                max = Math.max(max, range.max);\n            }\n        }\n        min = maxDefined && min > max ? max : min;\n        max = minDefined && min > max ? min : max;\n        return {\n            min: finiteOrDefault(min, finiteOrDefault(max, min)),\n            max: finiteOrDefault(max, finiteOrDefault(min, max))\n        };\n    }\n getPadding() {\n        return {\n            left: this.paddingLeft || 0,\n            top: this.paddingTop || 0,\n            right: this.paddingRight || 0,\n            bottom: this.paddingBottom || 0\n        };\n    }\n getTicks() {\n        return this.ticks;\n    }\n getLabels() {\n        const data = this.chart.data;\n        return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n    }\n getLabelItems(chartArea = this.chart.chartArea) {\n        const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n        return items;\n    }\n    beforeLayout() {\n        this._cache = {};\n        this._dataLimitsCached = false;\n    }\n    beforeUpdate() {\n        callback(this.options.beforeUpdate, [\n            this\n        ]);\n    }\n update(maxWidth, maxHeight, margins) {\n        const { beginAtZero , grace , ticks: tickOpts  } = this.options;\n        const sampleSize = tickOpts.sampleSize;\n        this.beforeUpdate();\n        this.maxWidth = maxWidth;\n        this.maxHeight = maxHeight;\n        this._margins = margins = Object.assign({\n            left: 0,\n            right: 0,\n            top: 0,\n            bottom: 0\n        }, margins);\n        this.ticks = null;\n        this._labelSizes = null;\n        this._gridLineItems = null;\n        this._labelItems = null;\n        this.beforeSetDimensions();\n        this.setDimensions();\n        this.afterSetDimensions();\n        this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n        if (!this._dataLimitsCached) {\n            this.beforeDataLimits();\n            this.determineDataLimits();\n            this.afterDataLimits();\n            this._range = _addGrace(this, grace, beginAtZero);\n            this._dataLimitsCached = true;\n        }\n        this.beforeBuildTicks();\n        this.ticks = this.buildTicks() || [];\n        this.afterBuildTicks();\n        const samplingEnabled = sampleSize < this.ticks.length;\n        this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n        this.configure();\n        this.beforeCalculateLabelRotation();\n        this.calculateLabelRotation();\n        this.afterCalculateLabelRotation();\n        if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n            this.ticks = autoSkip(this, this.ticks);\n            this._labelSizes = null;\n            this.afterAutoSkip();\n        }\n        if (samplingEnabled) {\n            this._convertTicksToLabels(this.ticks);\n        }\n        this.beforeFit();\n        this.fit();\n        this.afterFit();\n        this.afterUpdate();\n    }\n configure() {\n        let reversePixels = this.options.reverse;\n        let startPixel, endPixel;\n        if (this.isHorizontal()) {\n            startPixel = this.left;\n            endPixel = this.right;\n        } else {\n            startPixel = this.top;\n            endPixel = this.bottom;\n            reversePixels = !reversePixels;\n        }\n        this._startPixel = startPixel;\n        this._endPixel = endPixel;\n        this._reversePixels = reversePixels;\n        this._length = endPixel - startPixel;\n        this._alignToPixels = this.options.alignToPixels;\n    }\n    afterUpdate() {\n        callback(this.options.afterUpdate, [\n            this\n        ]);\n    }\n    beforeSetDimensions() {\n        callback(this.options.beforeSetDimensions, [\n            this\n        ]);\n    }\n    setDimensions() {\n        if (this.isHorizontal()) {\n            this.width = this.maxWidth;\n            this.left = 0;\n            this.right = this.width;\n        } else {\n            this.height = this.maxHeight;\n            this.top = 0;\n            this.bottom = this.height;\n        }\n        this.paddingLeft = 0;\n        this.paddingTop = 0;\n        this.paddingRight = 0;\n        this.paddingBottom = 0;\n    }\n    afterSetDimensions() {\n        callback(this.options.afterSetDimensions, [\n            this\n        ]);\n    }\n    _callHooks(name) {\n        this.chart.notifyPlugins(name, this.getContext());\n        callback(this.options[name], [\n            this\n        ]);\n    }\n    beforeDataLimits() {\n        this._callHooks('beforeDataLimits');\n    }\n    determineDataLimits() {}\n    afterDataLimits() {\n        this._callHooks('afterDataLimits');\n    }\n    beforeBuildTicks() {\n        this._callHooks('beforeBuildTicks');\n    }\n buildTicks() {\n        return [];\n    }\n    afterBuildTicks() {\n        this._callHooks('afterBuildTicks');\n    }\n    beforeTickToLabelConversion() {\n        callback(this.options.beforeTickToLabelConversion, [\n            this\n        ]);\n    }\n generateTickLabels(ticks) {\n        const tickOpts = this.options.ticks;\n        let i, ilen, tick;\n        for(i = 0, ilen = ticks.length; i < ilen; i++){\n            tick = ticks[i];\n            tick.label = callback(tickOpts.callback, [\n                tick.value,\n                i,\n                ticks\n            ], this);\n        }\n    }\n    afterTickToLabelConversion() {\n        callback(this.options.afterTickToLabelConversion, [\n            this\n        ]);\n    }\n    beforeCalculateLabelRotation() {\n        callback(this.options.beforeCalculateLabelRotation, [\n            this\n        ]);\n    }\n    calculateLabelRotation() {\n        const options = this.options;\n        const tickOpts = options.ticks;\n        const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n        const minRotation = tickOpts.minRotation || 0;\n        const maxRotation = tickOpts.maxRotation;\n        let labelRotation = minRotation;\n        let tickWidth, maxHeight, maxLabelDiagonal;\n        if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n            this.labelRotation = minRotation;\n            return;\n        }\n        const labelSizes = this._getLabelSizes();\n        const maxLabelWidth = labelSizes.widest.width;\n        const maxLabelHeight = labelSizes.highest.height;\n        const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n        tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n        if (maxLabelWidth + 6 > tickWidth) {\n            tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n            maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n            maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n            labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n            labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n        }\n        this.labelRotation = labelRotation;\n    }\n    afterCalculateLabelRotation() {\n        callback(this.options.afterCalculateLabelRotation, [\n            this\n        ]);\n    }\n    afterAutoSkip() {}\n    beforeFit() {\n        callback(this.options.beforeFit, [\n            this\n        ]);\n    }\n    fit() {\n        const minSize = {\n            width: 0,\n            height: 0\n        };\n        const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts  }  } = this;\n        const display = this._isVisible();\n        const isHorizontal = this.isHorizontal();\n        if (display) {\n            const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n            if (isHorizontal) {\n                minSize.width = this.maxWidth;\n                minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n            } else {\n                minSize.height = this.maxHeight;\n                minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n            }\n            if (tickOpts.display && this.ticks.length) {\n                const { first , last , widest , highest  } = this._getLabelSizes();\n                const tickPadding = tickOpts.padding * 2;\n                const angleRadians = toRadians(this.labelRotation);\n                const cos = Math.cos(angleRadians);\n                const sin = Math.sin(angleRadians);\n                if (isHorizontal) {\n                    const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n                    minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n                } else {\n                    const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n                    minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n                }\n                this._calculatePadding(first, last, sin, cos);\n            }\n        }\n        this._handleMargins();\n        if (isHorizontal) {\n            this.width = this._length = chart.width - this._margins.left - this._margins.right;\n            this.height = minSize.height;\n        } else {\n            this.width = minSize.width;\n            this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n        }\n    }\n    _calculatePadding(first, last, sin, cos) {\n        const { ticks: { align , padding  } , position  } = this.options;\n        const isRotated = this.labelRotation !== 0;\n        const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n        if (this.isHorizontal()) {\n            const offsetLeft = this.getPixelForTick(0) - this.left;\n            const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n            let paddingLeft = 0;\n            let paddingRight = 0;\n            if (isRotated) {\n                if (labelsBelowTicks) {\n                    paddingLeft = cos * first.width;\n                    paddingRight = sin * last.height;\n                } else {\n                    paddingLeft = sin * first.height;\n                    paddingRight = cos * last.width;\n                }\n            } else if (align === 'start') {\n                paddingRight = last.width;\n            } else if (align === 'end') {\n                paddingLeft = first.width;\n            } else if (align !== 'inner') {\n                paddingLeft = first.width / 2;\n                paddingRight = last.width / 2;\n            }\n            this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n            this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n        } else {\n            let paddingTop = last.height / 2;\n            let paddingBottom = first.height / 2;\n            if (align === 'start') {\n                paddingTop = 0;\n                paddingBottom = first.height;\n            } else if (align === 'end') {\n                paddingTop = last.height;\n                paddingBottom = 0;\n            }\n            this.paddingTop = paddingTop + padding;\n            this.paddingBottom = paddingBottom + padding;\n        }\n    }\n _handleMargins() {\n        if (this._margins) {\n            this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n            this._margins.top = Math.max(this.paddingTop, this._margins.top);\n            this._margins.right = Math.max(this.paddingRight, this._margins.right);\n            this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n        }\n    }\n    afterFit() {\n        callback(this.options.afterFit, [\n            this\n        ]);\n    }\n isHorizontal() {\n        const { axis , position  } = this.options;\n        return position === 'top' || position === 'bottom' || axis === 'x';\n    }\n isFullSize() {\n        return this.options.fullSize;\n    }\n _convertTicksToLabels(ticks) {\n        this.beforeTickToLabelConversion();\n        this.generateTickLabels(ticks);\n        let i, ilen;\n        for(i = 0, ilen = ticks.length; i < ilen; i++){\n            if (isNullOrUndef(ticks[i].label)) {\n                ticks.splice(i, 1);\n                ilen--;\n                i--;\n            }\n        }\n        this.afterTickToLabelConversion();\n    }\n _getLabelSizes() {\n        let labelSizes = this._labelSizes;\n        if (!labelSizes) {\n            const sampleSize = this.options.ticks.sampleSize;\n            let ticks = this.ticks;\n            if (sampleSize < ticks.length) {\n                ticks = sample(ticks, sampleSize);\n            }\n            this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n        }\n        return labelSizes;\n    }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n        const { ctx , _longestTextCache: caches  } = this;\n        const widths = [];\n        const heights = [];\n        const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n        let widestLabelSize = 0;\n        let highestLabelSize = 0;\n        let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n        for(i = 0; i < length; i += increment){\n            label = ticks[i].label;\n            tickFont = this._resolveTickFontOptions(i);\n            ctx.font = fontString = tickFont.string;\n            cache = caches[fontString] = caches[fontString] || {\n                data: {},\n                gc: []\n            };\n            lineHeight = tickFont.lineHeight;\n            width = height = 0;\n            if (!isNullOrUndef(label) && !isArray(label)) {\n                width = _measureText(ctx, cache.data, cache.gc, width, label);\n                height = lineHeight;\n            } else if (isArray(label)) {\n                for(j = 0, jlen = label.length; j < jlen; ++j){\n                    nestedLabel =  label[j];\n                    if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n                        width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n                        height += lineHeight;\n                    }\n                }\n            }\n            widths.push(width);\n            heights.push(height);\n            widestLabelSize = Math.max(width, widestLabelSize);\n            highestLabelSize = Math.max(height, highestLabelSize);\n        }\n        garbageCollect(caches, length);\n        const widest = widths.indexOf(widestLabelSize);\n        const highest = heights.indexOf(highestLabelSize);\n        const valueAt = (idx)=>({\n                width: widths[idx] || 0,\n                height: heights[idx] || 0\n            });\n        return {\n            first: valueAt(0),\n            last: valueAt(length - 1),\n            widest: valueAt(widest),\n            highest: valueAt(highest),\n            widths,\n            heights\n        };\n    }\n getLabelForValue(value) {\n        return value;\n    }\n getPixelForValue(value, index) {\n        return NaN;\n    }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n        const ticks = this.ticks;\n        if (index < 0 || index > ticks.length - 1) {\n            return null;\n        }\n        return this.getPixelForValue(ticks[index].value);\n    }\n getPixelForDecimal(decimal) {\n        if (this._reversePixels) {\n            decimal = 1 - decimal;\n        }\n        const pixel = this._startPixel + decimal * this._length;\n        return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n    }\n getDecimalForPixel(pixel) {\n        const decimal = (pixel - this._startPixel) / this._length;\n        return this._reversePixels ? 1 - decimal : decimal;\n    }\n getBasePixel() {\n        return this.getPixelForValue(this.getBaseValue());\n    }\n getBaseValue() {\n        const { min , max  } = this;\n        return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n    }\n getContext(index) {\n        const ticks = this.ticks || [];\n        if (index >= 0 && index < ticks.length) {\n            const tick = ticks[index];\n            return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n        }\n        return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n    }\n _tickSize() {\n        const optionTicks = this.options.ticks;\n        const rot = toRadians(this.labelRotation);\n        const cos = Math.abs(Math.cos(rot));\n        const sin = Math.abs(Math.sin(rot));\n        const labelSizes = this._getLabelSizes();\n        const padding = optionTicks.autoSkipPadding || 0;\n        const w = labelSizes ? labelSizes.widest.width + padding : 0;\n        const h = labelSizes ? labelSizes.highest.height + padding : 0;\n        return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n    }\n _isVisible() {\n        const display = this.options.display;\n        if (display !== 'auto') {\n            return !!display;\n        }\n        return this.getMatchingVisibleMetas().length > 0;\n    }\n _computeGridLineItems(chartArea) {\n        const axis = this.axis;\n        const chart = this.chart;\n        const options = this.options;\n        const { grid , position , border  } = options;\n        const offset = grid.offset;\n        const isHorizontal = this.isHorizontal();\n        const ticks = this.ticks;\n        const ticksLength = ticks.length + (offset ? 1 : 0);\n        const tl = getTickMarkLength(grid);\n        const items = [];\n        const borderOpts = border.setContext(this.getContext());\n        const axisWidth = borderOpts.display ? borderOpts.width : 0;\n        const axisHalfWidth = axisWidth / 2;\n        const alignBorderValue = function(pixel) {\n            return _alignPixel(chart, pixel, axisWidth);\n        };\n        let borderValue, i, lineValue, alignedLineValue;\n        let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n        if (position === 'top') {\n            borderValue = alignBorderValue(this.bottom);\n            ty1 = this.bottom - tl;\n            ty2 = borderValue - axisHalfWidth;\n            y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n            y2 = chartArea.bottom;\n        } else if (position === 'bottom') {\n            borderValue = alignBorderValue(this.top);\n            y1 = chartArea.top;\n            y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n            ty1 = borderValue + axisHalfWidth;\n            ty2 = this.top + tl;\n        } else if (position === 'left') {\n            borderValue = alignBorderValue(this.right);\n            tx1 = this.right - tl;\n            tx2 = borderValue - axisHalfWidth;\n            x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n            x2 = chartArea.right;\n        } else if (position === 'right') {\n            borderValue = alignBorderValue(this.left);\n            x1 = chartArea.left;\n            x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n            tx1 = borderValue + axisHalfWidth;\n            tx2 = this.left + tl;\n        } else if (axis === 'x') {\n            if (position === 'center') {\n                borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n            } else if (isObject(position)) {\n                const positionAxisID = Object.keys(position)[0];\n                const value = position[positionAxisID];\n                borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n            }\n            y1 = chartArea.top;\n            y2 = chartArea.bottom;\n            ty1 = borderValue + axisHalfWidth;\n            ty2 = ty1 + tl;\n        } else if (axis === 'y') {\n            if (position === 'center') {\n                borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n            } else if (isObject(position)) {\n                const positionAxisID = Object.keys(position)[0];\n                const value = position[positionAxisID];\n                borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n            }\n            tx1 = borderValue - axisHalfWidth;\n            tx2 = tx1 - tl;\n            x1 = chartArea.left;\n            x2 = chartArea.right;\n        }\n        const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n        const step = Math.max(1, Math.ceil(ticksLength / limit));\n        for(i = 0; i < ticksLength; i += step){\n            const context = this.getContext(i);\n            const optsAtIndex = grid.setContext(context);\n            const optsAtIndexBorder = border.setContext(context);\n            const lineWidth = optsAtIndex.lineWidth;\n            const lineColor = optsAtIndex.color;\n            const borderDash = optsAtIndexBorder.dash || [];\n            const borderDashOffset = optsAtIndexBorder.dashOffset;\n            const tickWidth = optsAtIndex.tickWidth;\n            const tickColor = optsAtIndex.tickColor;\n            const tickBorderDash = optsAtIndex.tickBorderDash || [];\n            const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n            lineValue = getPixelForGridLine(this, i, offset);\n            if (lineValue === undefined) {\n                continue;\n            }\n            alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n            if (isHorizontal) {\n                tx1 = tx2 = x1 = x2 = alignedLineValue;\n            } else {\n                ty1 = ty2 = y1 = y2 = alignedLineValue;\n            }\n            items.push({\n                tx1,\n                ty1,\n                tx2,\n                ty2,\n                x1,\n                y1,\n                x2,\n                y2,\n                width: lineWidth,\n                color: lineColor,\n                borderDash,\n                borderDashOffset,\n                tickWidth,\n                tickColor,\n                tickBorderDash,\n                tickBorderDashOffset\n            });\n        }\n        this._ticksLength = ticksLength;\n        this._borderValue = borderValue;\n        return items;\n    }\n _computeLabelItems(chartArea) {\n        const axis = this.axis;\n        const options = this.options;\n        const { position , ticks: optionTicks  } = options;\n        const isHorizontal = this.isHorizontal();\n        const ticks = this.ticks;\n        const { align , crossAlign , padding , mirror  } = optionTicks;\n        const tl = getTickMarkLength(options.grid);\n        const tickAndPadding = tl + padding;\n        const hTickAndPadding = mirror ? -padding : tickAndPadding;\n        const rotation = -toRadians(this.labelRotation);\n        const items = [];\n        let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n        let textBaseline = 'middle';\n        if (position === 'top') {\n            y = this.bottom - hTickAndPadding;\n            textAlign = this._getXAxisLabelAlignment();\n        } else if (position === 'bottom') {\n            y = this.top + hTickAndPadding;\n            textAlign = this._getXAxisLabelAlignment();\n        } else if (position === 'left') {\n            const ret = this._getYAxisLabelAlignment(tl);\n            textAlign = ret.textAlign;\n            x = ret.x;\n        } else if (position === 'right') {\n            const ret = this._getYAxisLabelAlignment(tl);\n            textAlign = ret.textAlign;\n            x = ret.x;\n        } else if (axis === 'x') {\n            if (position === 'center') {\n                y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n            } else if (isObject(position)) {\n                const positionAxisID = Object.keys(position)[0];\n                const value = position[positionAxisID];\n                y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n            }\n            textAlign = this._getXAxisLabelAlignment();\n        } else if (axis === 'y') {\n            if (position === 'center') {\n                x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n            } else if (isObject(position)) {\n                const positionAxisID = Object.keys(position)[0];\n                const value = position[positionAxisID];\n                x = this.chart.scales[positionAxisID].getPixelForValue(value);\n            }\n            textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n        }\n        if (axis === 'y') {\n            if (align === 'start') {\n                textBaseline = 'top';\n            } else if (align === 'end') {\n                textBaseline = 'bottom';\n            }\n        }\n        const labelSizes = this._getLabelSizes();\n        for(i = 0, ilen = ticks.length; i < ilen; ++i){\n            tick = ticks[i];\n            label = tick.label;\n            const optsAtIndex = optionTicks.setContext(this.getContext(i));\n            pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n            font = this._resolveTickFontOptions(i);\n            lineHeight = font.lineHeight;\n            lineCount = isArray(label) ? label.length : 1;\n            const halfCount = lineCount / 2;\n            const color = optsAtIndex.color;\n            const strokeColor = optsAtIndex.textStrokeColor;\n            const strokeWidth = optsAtIndex.textStrokeWidth;\n            let tickTextAlign = textAlign;\n            if (isHorizontal) {\n                x = pixel;\n                if (textAlign === 'inner') {\n                    if (i === ilen - 1) {\n                        tickTextAlign = !this.options.reverse ? 'right' : 'left';\n                    } else if (i === 0) {\n                        tickTextAlign = !this.options.reverse ? 'left' : 'right';\n                    } else {\n                        tickTextAlign = 'center';\n                    }\n                }\n                if (position === 'top') {\n                    if (crossAlign === 'near' || rotation !== 0) {\n                        textOffset = -lineCount * lineHeight + lineHeight / 2;\n                    } else if (crossAlign === 'center') {\n                        textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n                    } else {\n                        textOffset = -labelSizes.highest.height + lineHeight / 2;\n                    }\n                } else {\n                    if (crossAlign === 'near' || rotation !== 0) {\n                        textOffset = lineHeight / 2;\n                    } else if (crossAlign === 'center') {\n                        textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n                    } else {\n                        textOffset = labelSizes.highest.height - lineCount * lineHeight;\n                    }\n                }\n                if (mirror) {\n                    textOffset *= -1;\n                }\n                if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n                    x += lineHeight / 2 * Math.sin(rotation);\n                }\n            } else {\n                y = pixel;\n                textOffset = (1 - lineCount) * lineHeight / 2;\n            }\n            let backdrop;\n            if (optsAtIndex.showLabelBackdrop) {\n                const labelPadding = toPadding(optsAtIndex.backdropPadding);\n                const height = labelSizes.heights[i];\n                const width = labelSizes.widths[i];\n                let top = textOffset - labelPadding.top;\n                let left = 0 - labelPadding.left;\n                switch(textBaseline){\n                    case 'middle':\n                        top -= height / 2;\n                        break;\n                    case 'bottom':\n                        top -= height;\n                        break;\n                }\n                switch(textAlign){\n                    case 'center':\n                        left -= width / 2;\n                        break;\n                    case 'right':\n                        left -= width;\n                        break;\n                    case 'inner':\n                        if (i === ilen - 1) {\n                            left -= width;\n                        } else if (i > 0) {\n                            left -= width / 2;\n                        }\n                        break;\n                }\n                backdrop = {\n                    left,\n                    top,\n                    width: width + labelPadding.width,\n                    height: height + labelPadding.height,\n                    color: optsAtIndex.backdropColor\n                };\n            }\n            items.push({\n                label,\n                font,\n                textOffset,\n                options: {\n                    rotation,\n                    color,\n                    strokeColor,\n                    strokeWidth,\n                    textAlign: tickTextAlign,\n                    textBaseline,\n                    translation: [\n                        x,\n                        y\n                    ],\n                    backdrop\n                }\n            });\n        }\n        return items;\n    }\n    _getXAxisLabelAlignment() {\n        const { position , ticks  } = this.options;\n        const rotation = -toRadians(this.labelRotation);\n        if (rotation) {\n            return position === 'top' ? 'left' : 'right';\n        }\n        let align = 'center';\n        if (ticks.align === 'start') {\n            align = 'left';\n        } else if (ticks.align === 'end') {\n            align = 'right';\n        } else if (ticks.align === 'inner') {\n            align = 'inner';\n        }\n        return align;\n    }\n    _getYAxisLabelAlignment(tl) {\n        const { position , ticks: { crossAlign , mirror , padding  }  } = this.options;\n        const labelSizes = this._getLabelSizes();\n        const tickAndPadding = tl + padding;\n        const widest = labelSizes.widest.width;\n        let textAlign;\n        let x;\n        if (position === 'left') {\n            if (mirror) {\n                x = this.right + padding;\n                if (crossAlign === 'near') {\n                    textAlign = 'left';\n                } else if (crossAlign === 'center') {\n                    textAlign = 'center';\n                    x += widest / 2;\n                } else {\n                    textAlign = 'right';\n                    x += widest;\n                }\n            } else {\n                x = this.right - tickAndPadding;\n                if (crossAlign === 'near') {\n                    textAlign = 'right';\n                } else if (crossAlign === 'center') {\n                    textAlign = 'center';\n                    x -= widest / 2;\n                } else {\n                    textAlign = 'left';\n                    x = this.left;\n                }\n            }\n        } else if (position === 'right') {\n            if (mirror) {\n                x = this.left + padding;\n                if (crossAlign === 'near') {\n                    textAlign = 'right';\n                } else if (crossAlign === 'center') {\n                    textAlign = 'center';\n                    x -= widest / 2;\n                } else {\n                    textAlign = 'left';\n                    x -= widest;\n                }\n            } else {\n                x = this.left + tickAndPadding;\n                if (crossAlign === 'near') {\n                    textAlign = 'left';\n                } else if (crossAlign === 'center') {\n                    textAlign = 'center';\n                    x += widest / 2;\n                } else {\n                    textAlign = 'right';\n                    x = this.right;\n                }\n            }\n        } else {\n            textAlign = 'right';\n        }\n        return {\n            textAlign,\n            x\n        };\n    }\n _computeLabelArea() {\n        if (this.options.ticks.mirror) {\n            return;\n        }\n        const chart = this.chart;\n        const position = this.options.position;\n        if (position === 'left' || position === 'right') {\n            return {\n                top: 0,\n                left: this.left,\n                bottom: chart.height,\n                right: this.right\n            };\n        }\n        if (position === 'top' || position === 'bottom') {\n            return {\n                top: this.top,\n                left: 0,\n                bottom: this.bottom,\n                right: chart.width\n            };\n        }\n    }\n drawBackground() {\n        const { ctx , options: { backgroundColor  } , left , top , width , height  } = this;\n        if (backgroundColor) {\n            ctx.save();\n            ctx.fillStyle = backgroundColor;\n            ctx.fillRect(left, top, width, height);\n            ctx.restore();\n        }\n    }\n    getLineWidthForValue(value) {\n        const grid = this.options.grid;\n        if (!this._isVisible() || !grid.display) {\n            return 0;\n        }\n        const ticks = this.ticks;\n        const index = ticks.findIndex((t)=>t.value === value);\n        if (index >= 0) {\n            const opts = grid.setContext(this.getContext(index));\n            return opts.lineWidth;\n        }\n        return 0;\n    }\n drawGrid(chartArea) {\n        const grid = this.options.grid;\n        const ctx = this.ctx;\n        const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n        let i, ilen;\n        const drawLine = (p1, p2, style)=>{\n            if (!style.width || !style.color) {\n                return;\n            }\n            ctx.save();\n            ctx.lineWidth = style.width;\n            ctx.strokeStyle = style.color;\n            ctx.setLineDash(style.borderDash || []);\n            ctx.lineDashOffset = style.borderDashOffset;\n            ctx.beginPath();\n            ctx.moveTo(p1.x, p1.y);\n            ctx.lineTo(p2.x, p2.y);\n            ctx.stroke();\n            ctx.restore();\n        };\n        if (grid.display) {\n            for(i = 0, ilen = items.length; i < ilen; ++i){\n                const item = items[i];\n                if (grid.drawOnChartArea) {\n                    drawLine({\n                        x: item.x1,\n                        y: item.y1\n                    }, {\n                        x: item.x2,\n                        y: item.y2\n                    }, item);\n                }\n                if (grid.drawTicks) {\n                    drawLine({\n                        x: item.tx1,\n                        y: item.ty1\n                    }, {\n                        x: item.tx2,\n                        y: item.ty2\n                    }, {\n                        color: item.tickColor,\n                        width: item.tickWidth,\n                        borderDash: item.tickBorderDash,\n                        borderDashOffset: item.tickBorderDashOffset\n                    });\n                }\n            }\n        }\n    }\n drawBorder() {\n        const { chart , ctx , options: { border , grid  }  } = this;\n        const borderOpts = border.setContext(this.getContext());\n        const axisWidth = border.display ? borderOpts.width : 0;\n        if (!axisWidth) {\n            return;\n        }\n        const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n        const borderValue = this._borderValue;\n        let x1, x2, y1, y2;\n        if (this.isHorizontal()) {\n            x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n            x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n            y1 = y2 = borderValue;\n        } else {\n            y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n            y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n            x1 = x2 = borderValue;\n        }\n        ctx.save();\n        ctx.lineWidth = borderOpts.width;\n        ctx.strokeStyle = borderOpts.color;\n        ctx.beginPath();\n        ctx.moveTo(x1, y1);\n        ctx.lineTo(x2, y2);\n        ctx.stroke();\n        ctx.restore();\n    }\n drawLabels(chartArea) {\n        const optionTicks = this.options.ticks;\n        if (!optionTicks.display) {\n            return;\n        }\n        const ctx = this.ctx;\n        const area = this._computeLabelArea();\n        if (area) {\n            clipArea(ctx, area);\n        }\n        const items = this.getLabelItems(chartArea);\n        for (const item of items){\n            const renderTextOptions = item.options;\n            const tickFont = item.font;\n            const label = item.label;\n            const y = item.textOffset;\n            renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n        }\n        if (area) {\n            unclipArea(ctx);\n        }\n    }\n drawTitle() {\n        const { ctx , options: { position , title , reverse  }  } = this;\n        if (!title.display) {\n            return;\n        }\n        const font = toFont(title.font);\n        const padding = toPadding(title.padding);\n        const align = title.align;\n        let offset = font.lineHeight / 2;\n        if (position === 'bottom' || position === 'center' || isObject(position)) {\n            offset += padding.bottom;\n            if (isArray(title.text)) {\n                offset += font.lineHeight * (title.text.length - 1);\n            }\n        } else {\n            offset += padding.top;\n        }\n        const { titleX , titleY , maxWidth , rotation  } = titleArgs(this, offset, position, align);\n        renderText(ctx, title.text, 0, 0, font, {\n            color: title.color,\n            maxWidth,\n            rotation,\n            textAlign: titleAlign(align, position, reverse),\n            textBaseline: 'middle',\n            translation: [\n                titleX,\n                titleY\n            ]\n        });\n    }\n    draw(chartArea) {\n        if (!this._isVisible()) {\n            return;\n        }\n        this.drawBackground();\n        this.drawGrid(chartArea);\n        this.drawBorder();\n        this.drawTitle();\n        this.drawLabels(chartArea);\n    }\n _layers() {\n        const opts = this.options;\n        const tz = opts.ticks && opts.ticks.z || 0;\n        const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n        const bz = valueOrDefault(opts.border && opts.border.z, 0);\n        if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n            return [\n                {\n                    z: tz,\n                    draw: (chartArea)=>{\n                        this.draw(chartArea);\n                    }\n                }\n            ];\n        }\n        return [\n            {\n                z: gz,\n                draw: (chartArea)=>{\n                    this.drawBackground();\n                    this.drawGrid(chartArea);\n                    this.drawTitle();\n                }\n            },\n            {\n                z: bz,\n                draw: ()=>{\n                    this.drawBorder();\n                }\n            },\n            {\n                z: tz,\n                draw: (chartArea)=>{\n                    this.drawLabels(chartArea);\n                }\n            }\n        ];\n    }\n getMatchingVisibleMetas(type) {\n        const metas = this.chart.getSortedVisibleDatasetMetas();\n        const axisID = this.axis + 'AxisID';\n        const result = [];\n        let i, ilen;\n        for(i = 0, ilen = metas.length; i < ilen; ++i){\n            const meta = metas[i];\n            if (meta[axisID] === this.id && (!type || meta.type === type)) {\n                result.push(meta);\n            }\n        }\n        return result;\n    }\n _resolveTickFontOptions(index) {\n        const opts = this.options.ticks.setContext(this.getContext(index));\n        return toFont(opts.font);\n    }\n _maxDigits() {\n        const fontSize = this._resolveTickFontOptions(0).lineHeight;\n        return (this.isHorizontal() ? this.width : this.height) / fontSize;\n    }\n}\n\nclass TypedRegistry {\n    constructor(type, scope, override){\n        this.type = type;\n        this.scope = scope;\n        this.override = override;\n        this.items = Object.create(null);\n    }\n    isForType(type) {\n        return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n    }\n register(item) {\n        const proto = Object.getPrototypeOf(item);\n        let parentScope;\n        if (isIChartComponent(proto)) {\n            parentScope = this.register(proto);\n        }\n        const items = this.items;\n        const id = item.id;\n        const scope = this.scope + '.' + id;\n        if (!id) {\n            throw new Error('class does not have id: ' + item);\n        }\n        if (id in items) {\n            return scope;\n        }\n        items[id] = item;\n        registerDefaults(item, scope, parentScope);\n        if (this.override) {\n            defaults.override(item.id, item.overrides);\n        }\n        return scope;\n    }\n get(id) {\n        return this.items[id];\n    }\n unregister(item) {\n        const items = this.items;\n        const id = item.id;\n        const scope = this.scope;\n        if (id in items) {\n            delete items[id];\n        }\n        if (scope && id in defaults[scope]) {\n            delete defaults[scope][id];\n            if (this.override) {\n                delete overrides[id];\n            }\n        }\n    }\n}\nfunction registerDefaults(item, scope, parentScope) {\n    const itemDefaults = merge(Object.create(null), [\n        parentScope ? defaults.get(parentScope) : {},\n        defaults.get(scope),\n        item.defaults\n    ]);\n    defaults.set(scope, itemDefaults);\n    if (item.defaultRoutes) {\n        routeDefaults(scope, item.defaultRoutes);\n    }\n    if (item.descriptors) {\n        defaults.describe(scope, item.descriptors);\n    }\n}\nfunction routeDefaults(scope, routes) {\n    Object.keys(routes).forEach((property)=>{\n        const propertyParts = property.split('.');\n        const sourceName = propertyParts.pop();\n        const sourceScope = [\n            scope\n        ].concat(propertyParts).join('.');\n        const parts = routes[property].split('.');\n        const targetName = parts.pop();\n        const targetScope = parts.join('.');\n        defaults.route(sourceScope, sourceName, targetScope, targetName);\n    });\n}\nfunction isIChartComponent(proto) {\n    return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n    constructor(){\n        this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n        this.elements = new TypedRegistry(Element, 'elements');\n        this.plugins = new TypedRegistry(Object, 'plugins');\n        this.scales = new TypedRegistry(Scale, 'scales');\n        this._typedRegistries = [\n            this.controllers,\n            this.scales,\n            this.elements\n        ];\n    }\n add(...args) {\n        this._each('register', args);\n    }\n    remove(...args) {\n        this._each('unregister', args);\n    }\n addControllers(...args) {\n        this._each('register', args, this.controllers);\n    }\n addElements(...args) {\n        this._each('register', args, this.elements);\n    }\n addPlugins(...args) {\n        this._each('register', args, this.plugins);\n    }\n addScales(...args) {\n        this._each('register', args, this.scales);\n    }\n getController(id) {\n        return this._get(id, this.controllers, 'controller');\n    }\n getElement(id) {\n        return this._get(id, this.elements, 'element');\n    }\n getPlugin(id) {\n        return this._get(id, this.plugins, 'plugin');\n    }\n getScale(id) {\n        return this._get(id, this.scales, 'scale');\n    }\n removeControllers(...args) {\n        this._each('unregister', args, this.controllers);\n    }\n removeElements(...args) {\n        this._each('unregister', args, this.elements);\n    }\n removePlugins(...args) {\n        this._each('unregister', args, this.plugins);\n    }\n removeScales(...args) {\n        this._each('unregister', args, this.scales);\n    }\n _each(method, args, typedRegistry) {\n        [\n            ...args\n        ].forEach((arg)=>{\n            const reg = typedRegistry || this._getRegistryForType(arg);\n            if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n                this._exec(method, reg, arg);\n            } else {\n                each(arg, (item)=>{\n                    const itemReg = typedRegistry || this._getRegistryForType(item);\n                    this._exec(method, itemReg, item);\n                });\n            }\n        });\n    }\n _exec(method, registry, component) {\n        const camelMethod = _capitalize(method);\n        callback(component['before' + camelMethod], [], component);\n        registry[method](component);\n        callback(component['after' + camelMethod], [], component);\n    }\n _getRegistryForType(type) {\n        for(let i = 0; i < this._typedRegistries.length; i++){\n            const reg = this._typedRegistries[i];\n            if (reg.isForType(type)) {\n                return reg;\n            }\n        }\n        return this.plugins;\n    }\n _get(id, typedRegistry, type) {\n        const item = typedRegistry.get(id);\n        if (item === undefined) {\n            throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n        }\n        return item;\n    }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n    constructor(){\n        this._init = undefined;\n    }\n notify(chart, hook, args, filter) {\n        if (hook === 'beforeInit') {\n            this._init = this._createDescriptors(chart, true);\n            this._notify(this._init, chart, 'install');\n        }\n        if (this._init === undefined) {\n            return;\n        }\n        const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n        const result = this._notify(descriptors, chart, hook, args);\n        if (hook === 'afterDestroy') {\n            this._notify(descriptors, chart, 'stop');\n            this._notify(this._init, chart, 'uninstall');\n            this._init = undefined;\n        }\n        return result;\n    }\n _notify(descriptors, chart, hook, args) {\n        args = args || {};\n        for (const descriptor of descriptors){\n            const plugin = descriptor.plugin;\n            const method = plugin[hook];\n            const params = [\n                chart,\n                args,\n                descriptor.options\n            ];\n            if (callback(method, params, plugin) === false && args.cancelable) {\n                return false;\n            }\n        }\n        return true;\n    }\n    invalidate() {\n        if (!isNullOrUndef(this._cache)) {\n            this._oldCache = this._cache;\n            this._cache = undefined;\n        }\n    }\n _descriptors(chart) {\n        if (this._cache) {\n            return this._cache;\n        }\n        const descriptors = this._cache = this._createDescriptors(chart);\n        this._notifyStateChanges(chart);\n        return descriptors;\n    }\n    _createDescriptors(chart, all) {\n        const config = chart && chart.config;\n        const options = valueOrDefault(config.options && config.options.plugins, {});\n        const plugins = allPlugins(config);\n        return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n    }\n _notifyStateChanges(chart) {\n        const previousDescriptors = this._oldCache || [];\n        const descriptors = this._cache;\n        const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n        this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n        this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n    }\n}\n function allPlugins(config) {\n    const localIds = {};\n    const plugins = [];\n    const keys = Object.keys(registry.plugins.items);\n    for(let i = 0; i < keys.length; i++){\n        plugins.push(registry.getPlugin(keys[i]));\n    }\n    const local = config.plugins || [];\n    for(let i = 0; i < local.length; i++){\n        const plugin = local[i];\n        if (plugins.indexOf(plugin) === -1) {\n            plugins.push(plugin);\n            localIds[plugin.id] = true;\n        }\n    }\n    return {\n        plugins,\n        localIds\n    };\n}\nfunction getOpts(options, all) {\n    if (!all && options === false) {\n        return null;\n    }\n    if (options === true) {\n        return {};\n    }\n    return options;\n}\nfunction createDescriptors(chart, { plugins , localIds  }, options, all) {\n    const result = [];\n    const context = chart.getContext();\n    for (const plugin of plugins){\n        const id = plugin.id;\n        const opts = getOpts(options[id], all);\n        if (opts === null) {\n            continue;\n        }\n        result.push({\n            plugin,\n            options: pluginOpts(chart.config, {\n                plugin,\n                local: localIds[id]\n            }, opts, context)\n        });\n    }\n    return result;\n}\nfunction pluginOpts(config, { plugin , local  }, opts, context) {\n    const keys = config.pluginScopeKeys(plugin);\n    const scopes = config.getOptionScopes(opts, keys);\n    if (local && plugin.defaults) {\n        scopes.push(plugin.defaults);\n    }\n    return config.createResolver(scopes, context, [\n        ''\n    ], {\n        scriptable: false,\n        indexable: false,\n        allKeys: true\n    });\n}\n\nfunction getIndexAxis(type, options) {\n    const datasetDefaults = defaults.datasets[type] || {};\n    const datasetOptions = (options.datasets || {})[type] || {};\n    return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n    let axis = id;\n    if (id === '_index_') {\n        axis = indexAxis;\n    } else if (id === '_value_') {\n        axis = indexAxis === 'x' ? 'y' : 'x';\n    }\n    return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n    return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n    if (id === 'x' || id === 'y' || id === 'r') {\n        return id;\n    }\n}\nfunction axisFromPosition(position) {\n    if (position === 'top' || position === 'bottom') {\n        return 'x';\n    }\n    if (position === 'left' || position === 'right') {\n        return 'y';\n    }\n}\nfunction determineAxis(id, ...scaleOptions) {\n    if (idMatchesAxis(id)) {\n        return id;\n    }\n    for (const opts of scaleOptions){\n        const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n        if (axis) {\n            return axis;\n        }\n    }\n    throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n    if (dataset[axis + 'AxisID'] === id) {\n        return {\n            axis\n        };\n    }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n    if (config.data && config.data.datasets) {\n        const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n        if (boundDs.length) {\n            return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n        }\n    }\n    return {};\n}\nfunction mergeScaleConfig(config, options) {\n    const chartDefaults = overrides[config.type] || {\n        scales: {}\n    };\n    const configScales = options.scales || {};\n    const chartIndexAxis = getIndexAxis(config.type, options);\n    const scales = Object.create(null);\n    Object.keys(configScales).forEach((id)=>{\n        const scaleConf = configScales[id];\n        if (!isObject(scaleConf)) {\n            return console.error(`Invalid scale configuration for scale: ${id}`);\n        }\n        if (scaleConf._proxy) {\n            return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n        }\n        const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n        const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n        const defaultScaleOptions = chartDefaults.scales || {};\n        scales[id] = mergeIf(Object.create(null), [\n            {\n                axis\n            },\n            scaleConf,\n            defaultScaleOptions[axis],\n            defaultScaleOptions[defaultId]\n        ]);\n    });\n    config.data.datasets.forEach((dataset)=>{\n        const type = dataset.type || config.type;\n        const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n        const datasetDefaults = overrides[type] || {};\n        const defaultScaleOptions = datasetDefaults.scales || {};\n        Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n            const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n            const id = dataset[axis + 'AxisID'] || axis;\n            scales[id] = scales[id] || Object.create(null);\n            mergeIf(scales[id], [\n                {\n                    axis\n                },\n                configScales[id],\n                defaultScaleOptions[defaultID]\n            ]);\n        });\n    });\n    Object.keys(scales).forEach((key)=>{\n        const scale = scales[key];\n        mergeIf(scale, [\n            defaults.scales[scale.type],\n            defaults.scale\n        ]);\n    });\n    return scales;\n}\nfunction initOptions(config) {\n    const options = config.options || (config.options = {});\n    options.plugins = valueOrDefault(options.plugins, {});\n    options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n    data = data || {};\n    data.datasets = data.datasets || [];\n    data.labels = data.labels || [];\n    return data;\n}\nfunction initConfig(config) {\n    config = config || {};\n    config.data = initData(config.data);\n    initOptions(config);\n    return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n    let keys = keyCache.get(cacheKey);\n    if (!keys) {\n        keys = generate();\n        keyCache.set(cacheKey, keys);\n        keysCached.add(keys);\n    }\n    return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n    const opts = resolveObjectKey(obj, key);\n    if (opts !== undefined) {\n        set.add(opts);\n    }\n};\nclass Config {\n    constructor(config){\n        this._config = initConfig(config);\n        this._scopeCache = new Map();\n        this._resolverCache = new Map();\n    }\n    get platform() {\n        return this._config.platform;\n    }\n    get type() {\n        return this._config.type;\n    }\n    set type(type) {\n        this._config.type = type;\n    }\n    get data() {\n        return this._config.data;\n    }\n    set data(data) {\n        this._config.data = initData(data);\n    }\n    get options() {\n        return this._config.options;\n    }\n    set options(options) {\n        this._config.options = options;\n    }\n    get plugins() {\n        return this._config.plugins;\n    }\n    update() {\n        const config = this._config;\n        this.clearCache();\n        initOptions(config);\n    }\n    clearCache() {\n        this._scopeCache.clear();\n        this._resolverCache.clear();\n    }\n datasetScopeKeys(datasetType) {\n        return cachedKeys(datasetType, ()=>[\n                [\n                    `datasets.${datasetType}`,\n                    ''\n                ]\n            ]);\n    }\n datasetAnimationScopeKeys(datasetType, transition) {\n        return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n                [\n                    `datasets.${datasetType}.transitions.${transition}`,\n                    `transitions.${transition}`\n                ],\n                [\n                    `datasets.${datasetType}`,\n                    ''\n                ]\n            ]);\n    }\n datasetElementScopeKeys(datasetType, elementType) {\n        return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n                [\n                    `datasets.${datasetType}.elements.${elementType}`,\n                    `datasets.${datasetType}`,\n                    `elements.${elementType}`,\n                    ''\n                ]\n            ]);\n    }\n pluginScopeKeys(plugin) {\n        const id = plugin.id;\n        const type = this.type;\n        return cachedKeys(`${type}-plugin-${id}`, ()=>[\n                [\n                    `plugins.${id}`,\n                    ...plugin.additionalOptionScopes || []\n                ]\n            ]);\n    }\n _cachedScopes(mainScope, resetCache) {\n        const _scopeCache = this._scopeCache;\n        let cache = _scopeCache.get(mainScope);\n        if (!cache || resetCache) {\n            cache = new Map();\n            _scopeCache.set(mainScope, cache);\n        }\n        return cache;\n    }\n getOptionScopes(mainScope, keyLists, resetCache) {\n        const { options , type  } = this;\n        const cache = this._cachedScopes(mainScope, resetCache);\n        const cached = cache.get(keyLists);\n        if (cached) {\n            return cached;\n        }\n        const scopes = new Set();\n        keyLists.forEach((keys)=>{\n            if (mainScope) {\n                scopes.add(mainScope);\n                keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n            }\n            keys.forEach((key)=>addIfFound(scopes, options, key));\n            keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n            keys.forEach((key)=>addIfFound(scopes, defaults, key));\n            keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n        });\n        const array = Array.from(scopes);\n        if (array.length === 0) {\n            array.push(Object.create(null));\n        }\n        if (keysCached.has(keyLists)) {\n            cache.set(keyLists, array);\n        }\n        return array;\n    }\n chartOptionScopes() {\n        const { options , type  } = this;\n        return [\n            options,\n            overrides[type] || {},\n            defaults.datasets[type] || {},\n            {\n                type\n            },\n            defaults,\n            descriptors\n        ];\n    }\n resolveNamedOptions(scopes, names, context, prefixes = [\n        ''\n    ]) {\n        const result = {\n            $shared: true\n        };\n        const { resolver , subPrefixes  } = getResolver(this._resolverCache, scopes, prefixes);\n        let options = resolver;\n        if (needContext(resolver, names)) {\n            result.$shared = false;\n            context = isFunction(context) ? context() : context;\n            const subResolver = this.createResolver(scopes, context, subPrefixes);\n            options = _attachContext(resolver, context, subResolver);\n        }\n        for (const prop of names){\n            result[prop] = options[prop];\n        }\n        return result;\n    }\n createResolver(scopes, context, prefixes = [\n        ''\n    ], descriptorDefaults) {\n        const { resolver  } = getResolver(this._resolverCache, scopes, prefixes);\n        return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n    }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n    let cache = resolverCache.get(scopes);\n    if (!cache) {\n        cache = new Map();\n        resolverCache.set(scopes, cache);\n    }\n    const cacheKey = prefixes.join();\n    let cached = cache.get(cacheKey);\n    if (!cached) {\n        const resolver = _createResolver(scopes, prefixes);\n        cached = {\n            resolver,\n            subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n        };\n        cache.set(cacheKey, cached);\n    }\n    return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n    const { isScriptable , isIndexable  } = _descriptors(proxy);\n    for (const prop of names){\n        const scriptable = isScriptable(prop);\n        const indexable = isIndexable(prop);\n        const value = (indexable || scriptable) && proxy[prop];\n        if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n            return true;\n        }\n    }\n    return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n    'top',\n    'bottom',\n    'left',\n    'right',\n    'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n    return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n    return function(a, b) {\n        return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n    };\n}\nfunction onAnimationsComplete(context) {\n    const chart = context.chart;\n    const animationOptions = chart.options.animation;\n    chart.notifyPlugins('afterRender');\n    callback(animationOptions && animationOptions.onComplete, [\n        context\n    ], chart);\n}\nfunction onAnimationProgress(context) {\n    const chart = context.chart;\n    const animationOptions = chart.options.animation;\n    callback(animationOptions && animationOptions.onProgress, [\n        context\n    ], chart);\n}\n function getCanvas(item) {\n    if (_isDomSupported() && typeof item === 'string') {\n        item = document.getElementById(item);\n    } else if (item && item.length) {\n        item = item[0];\n    }\n    if (item && item.canvas) {\n        item = item.canvas;\n    }\n    return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n    const canvas = getCanvas(key);\n    return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n    const keys = Object.keys(obj);\n    for (const key of keys){\n        const intKey = +key;\n        if (intKey >= start) {\n            const value = obj[key];\n            delete obj[key];\n            if (move > 0 || intKey > start) {\n                obj[intKey + move] = value;\n            }\n        }\n    }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n    if (!inChartArea || e.type === 'mouseout') {\n        return null;\n    }\n    if (isClick) {\n        return lastEvent;\n    }\n    return e;\n}\nclass Chart {\n    static defaults = defaults;\n    static instances = instances;\n    static overrides = overrides;\n    static registry = registry;\n    static version = version;\n    static getChart = getChart;\n    static register(...items) {\n        registry.add(...items);\n        invalidatePlugins();\n    }\n    static unregister(...items) {\n        registry.remove(...items);\n        invalidatePlugins();\n    }\n    constructor(item, userConfig){\n        const config = this.config = new Config(userConfig);\n        const initialCanvas = getCanvas(item);\n        const existingChart = getChart(initialCanvas);\n        if (existingChart) {\n            throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n        }\n        const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n        this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n        this.platform.updateConfig(config);\n        const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n        const canvas = context && context.canvas;\n        const height = canvas && canvas.height;\n        const width = canvas && canvas.width;\n        this.id = uid();\n        this.ctx = context;\n        this.canvas = canvas;\n        this.width = width;\n        this.height = height;\n        this._options = options;\n        this._aspectRatio = this.aspectRatio;\n        this._layers = [];\n        this._metasets = [];\n        this._stacks = undefined;\n        this.boxes = [];\n        this.currentDevicePixelRatio = undefined;\n        this.chartArea = undefined;\n        this._active = [];\n        this._lastEvent = undefined;\n        this._listeners = {};\n         this._responsiveListeners = undefined;\n        this._sortedMetasets = [];\n        this.scales = {};\n        this._plugins = new PluginService();\n        this.$proxies = {};\n        this._hiddenIndices = {};\n        this.attached = false;\n        this._animationsDisabled = undefined;\n        this.$context = undefined;\n        this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n        this._dataChanges = [];\n        instances[this.id] = this;\n        if (!context || !canvas) {\n            console.error(\"Failed to create chart: can't acquire context from the given item\");\n            return;\n        }\n        animator.listen(this, 'complete', onAnimationsComplete);\n        animator.listen(this, 'progress', onAnimationProgress);\n        this._initialize();\n        if (this.attached) {\n            this.update();\n        }\n    }\n    get aspectRatio() {\n        const { options: { aspectRatio , maintainAspectRatio  } , width , height , _aspectRatio  } = this;\n        if (!isNullOrUndef(aspectRatio)) {\n            return aspectRatio;\n        }\n        if (maintainAspectRatio && _aspectRatio) {\n            return _aspectRatio;\n        }\n        return height ? width / height : null;\n    }\n    get data() {\n        return this.config.data;\n    }\n    set data(data) {\n        this.config.data = data;\n    }\n    get options() {\n        return this._options;\n    }\n    set options(options) {\n        this.config.options = options;\n    }\n    get registry() {\n        return registry;\n    }\n _initialize() {\n        this.notifyPlugins('beforeInit');\n        if (this.options.responsive) {\n            this.resize();\n        } else {\n            retinaScale(this, this.options.devicePixelRatio);\n        }\n        this.bindEvents();\n        this.notifyPlugins('afterInit');\n        return this;\n    }\n    clear() {\n        clearCanvas(this.canvas, this.ctx);\n        return this;\n    }\n    stop() {\n        animator.stop(this);\n        return this;\n    }\n resize(width, height) {\n        if (!animator.running(this)) {\n            this._resize(width, height);\n        } else {\n            this._resizeBeforeDraw = {\n                width,\n                height\n            };\n        }\n    }\n    _resize(width, height) {\n        const options = this.options;\n        const canvas = this.canvas;\n        const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n        const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n        const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n        const mode = this.width ? 'resize' : 'attach';\n        this.width = newSize.width;\n        this.height = newSize.height;\n        this._aspectRatio = this.aspectRatio;\n        if (!retinaScale(this, newRatio, true)) {\n            return;\n        }\n        this.notifyPlugins('resize', {\n            size: newSize\n        });\n        callback(options.onResize, [\n            this,\n            newSize\n        ], this);\n        if (this.attached) {\n            if (this._doResize(mode)) {\n                this.render();\n            }\n        }\n    }\n    ensureScalesHaveIDs() {\n        const options = this.options;\n        const scalesOptions = options.scales || {};\n        each(scalesOptions, (axisOptions, axisID)=>{\n            axisOptions.id = axisID;\n        });\n    }\n buildOrUpdateScales() {\n        const options = this.options;\n        const scaleOpts = options.scales;\n        const scales = this.scales;\n        const updated = Object.keys(scales).reduce((obj, id)=>{\n            obj[id] = false;\n            return obj;\n        }, {});\n        let items = [];\n        if (scaleOpts) {\n            items = items.concat(Object.keys(scaleOpts).map((id)=>{\n                const scaleOptions = scaleOpts[id];\n                const axis = determineAxis(id, scaleOptions);\n                const isRadial = axis === 'r';\n                const isHorizontal = axis === 'x';\n                return {\n                    options: scaleOptions,\n                    dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n                    dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n                };\n            }));\n        }\n        each(items, (item)=>{\n            const scaleOptions = item.options;\n            const id = scaleOptions.id;\n            const axis = determineAxis(id, scaleOptions);\n            const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n            if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n                scaleOptions.position = item.dposition;\n            }\n            updated[id] = true;\n            let scale = null;\n            if (id in scales && scales[id].type === scaleType) {\n                scale = scales[id];\n            } else {\n                const scaleClass = registry.getScale(scaleType);\n                scale = new scaleClass({\n                    id,\n                    type: scaleType,\n                    ctx: this.ctx,\n                    chart: this\n                });\n                scales[scale.id] = scale;\n            }\n            scale.init(scaleOptions, options);\n        });\n        each(updated, (hasUpdated, id)=>{\n            if (!hasUpdated) {\n                delete scales[id];\n            }\n        });\n        each(scales, (scale)=>{\n            layouts.configure(this, scale, scale.options);\n            layouts.addBox(this, scale);\n        });\n    }\n _updateMetasets() {\n        const metasets = this._metasets;\n        const numData = this.data.datasets.length;\n        const numMeta = metasets.length;\n        metasets.sort((a, b)=>a.index - b.index);\n        if (numMeta > numData) {\n            for(let i = numData; i < numMeta; ++i){\n                this._destroyDatasetMeta(i);\n            }\n            metasets.splice(numData, numMeta - numData);\n        }\n        this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n    }\n _removeUnreferencedMetasets() {\n        const { _metasets: metasets , data: { datasets  }  } = this;\n        if (metasets.length > datasets.length) {\n            delete this._stacks;\n        }\n        metasets.forEach((meta, index)=>{\n            if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n                this._destroyDatasetMeta(index);\n            }\n        });\n    }\n    buildOrUpdateControllers() {\n        const newControllers = [];\n        const datasets = this.data.datasets;\n        let i, ilen;\n        this._removeUnreferencedMetasets();\n        for(i = 0, ilen = datasets.length; i < ilen; i++){\n            const dataset = datasets[i];\n            let meta = this.getDatasetMeta(i);\n            const type = dataset.type || this.config.type;\n            if (meta.type && meta.type !== type) {\n                this._destroyDatasetMeta(i);\n                meta = this.getDatasetMeta(i);\n            }\n            meta.type = type;\n            meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n            meta.order = dataset.order || 0;\n            meta.index = i;\n            meta.label = '' + dataset.label;\n            meta.visible = this.isDatasetVisible(i);\n            if (meta.controller) {\n                meta.controller.updateIndex(i);\n                meta.controller.linkScales();\n            } else {\n                const ControllerClass = registry.getController(type);\n                const { datasetElementType , dataElementType  } = defaults.datasets[type];\n                Object.assign(ControllerClass, {\n                    dataElementType: registry.getElement(dataElementType),\n                    datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n                });\n                meta.controller = new ControllerClass(this, i);\n                newControllers.push(meta.controller);\n            }\n        }\n        this._updateMetasets();\n        return newControllers;\n    }\n _resetElements() {\n        each(this.data.datasets, (dataset, datasetIndex)=>{\n            this.getDatasetMeta(datasetIndex).controller.reset();\n        }, this);\n    }\n reset() {\n        this._resetElements();\n        this.notifyPlugins('reset');\n    }\n    update(mode) {\n        const config = this.config;\n        config.update();\n        const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n        const animsDisabled = this._animationsDisabled = !options.animation;\n        this._updateScales();\n        this._checkEventBindings();\n        this._updateHiddenIndices();\n        this._plugins.invalidate();\n        if (this.notifyPlugins('beforeUpdate', {\n            mode,\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        const newControllers = this.buildOrUpdateControllers();\n        this.notifyPlugins('beforeElementsUpdate');\n        let minPadding = 0;\n        for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n            const { controller  } = this.getDatasetMeta(i);\n            const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n            controller.buildOrUpdateElements(reset);\n            minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n        }\n        minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n        this._updateLayout(minPadding);\n        if (!animsDisabled) {\n            each(newControllers, (controller)=>{\n                controller.reset();\n            });\n        }\n        this._updateDatasets(mode);\n        this.notifyPlugins('afterUpdate', {\n            mode\n        });\n        this._layers.sort(compare2Level('z', '_idx'));\n        const { _active , _lastEvent  } = this;\n        if (_lastEvent) {\n            this._eventHandler(_lastEvent, true);\n        } else if (_active.length) {\n            this._updateHoverStyles(_active, _active, true);\n        }\n        this.render();\n    }\n _updateScales() {\n        each(this.scales, (scale)=>{\n            layouts.removeBox(this, scale);\n        });\n        this.ensureScalesHaveIDs();\n        this.buildOrUpdateScales();\n    }\n _checkEventBindings() {\n        const options = this.options;\n        const existingEvents = new Set(Object.keys(this._listeners));\n        const newEvents = new Set(options.events);\n        if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n            this.unbindEvents();\n            this.bindEvents();\n        }\n    }\n _updateHiddenIndices() {\n        const { _hiddenIndices  } = this;\n        const changes = this._getUniformDataChanges() || [];\n        for (const { method , start , count  } of changes){\n            const move = method === '_removeElements' ? -count : count;\n            moveNumericKeys(_hiddenIndices, start, move);\n        }\n    }\n _getUniformDataChanges() {\n        const _dataChanges = this._dataChanges;\n        if (!_dataChanges || !_dataChanges.length) {\n            return;\n        }\n        this._dataChanges = [];\n        const datasetCount = this.data.datasets.length;\n        const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n        const changeSet = makeSet(0);\n        for(let i = 1; i < datasetCount; i++){\n            if (!setsEqual(changeSet, makeSet(i))) {\n                return;\n            }\n        }\n        return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n                method: a[1],\n                start: +a[2],\n                count: +a[3]\n            }));\n    }\n _updateLayout(minPadding) {\n        if (this.notifyPlugins('beforeLayout', {\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        layouts.update(this, this.width, this.height, minPadding);\n        const area = this.chartArea;\n        const noArea = area.width <= 0 || area.height <= 0;\n        this._layers = [];\n        each(this.boxes, (box)=>{\n            if (noArea && box.position === 'chartArea') {\n                return;\n            }\n            if (box.configure) {\n                box.configure();\n            }\n            this._layers.push(...box._layers());\n        }, this);\n        this._layers.forEach((item, index)=>{\n            item._idx = index;\n        });\n        this.notifyPlugins('afterLayout');\n    }\n _updateDatasets(mode) {\n        if (this.notifyPlugins('beforeDatasetsUpdate', {\n            mode,\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n            this.getDatasetMeta(i).controller.configure();\n        }\n        for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n            this._updateDataset(i, isFunction(mode) ? mode({\n                datasetIndex: i\n            }) : mode);\n        }\n        this.notifyPlugins('afterDatasetsUpdate', {\n            mode\n        });\n    }\n _updateDataset(index, mode) {\n        const meta = this.getDatasetMeta(index);\n        const args = {\n            meta,\n            index,\n            mode,\n            cancelable: true\n        };\n        if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n            return;\n        }\n        meta.controller._update(mode);\n        args.cancelable = false;\n        this.notifyPlugins('afterDatasetUpdate', args);\n    }\n    render() {\n        if (this.notifyPlugins('beforeRender', {\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        if (animator.has(this)) {\n            if (this.attached && !animator.running(this)) {\n                animator.start(this);\n            }\n        } else {\n            this.draw();\n            onAnimationsComplete({\n                chart: this\n            });\n        }\n    }\n    draw() {\n        let i;\n        if (this._resizeBeforeDraw) {\n            const { width , height  } = this._resizeBeforeDraw;\n            this._resizeBeforeDraw = null;\n            this._resize(width, height);\n        }\n        this.clear();\n        if (this.width <= 0 || this.height <= 0) {\n            return;\n        }\n        if (this.notifyPlugins('beforeDraw', {\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        const layers = this._layers;\n        for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n            layers[i].draw(this.chartArea);\n        }\n        this._drawDatasets();\n        for(; i < layers.length; ++i){\n            layers[i].draw(this.chartArea);\n        }\n        this.notifyPlugins('afterDraw');\n    }\n _getSortedDatasetMetas(filterVisible) {\n        const metasets = this._sortedMetasets;\n        const result = [];\n        let i, ilen;\n        for(i = 0, ilen = metasets.length; i < ilen; ++i){\n            const meta = metasets[i];\n            if (!filterVisible || meta.visible) {\n                result.push(meta);\n            }\n        }\n        return result;\n    }\n getSortedVisibleDatasetMetas() {\n        return this._getSortedDatasetMetas(true);\n    }\n _drawDatasets() {\n        if (this.notifyPlugins('beforeDatasetsDraw', {\n            cancelable: true\n        }) === false) {\n            return;\n        }\n        const metasets = this.getSortedVisibleDatasetMetas();\n        for(let i = metasets.length - 1; i >= 0; --i){\n            this._drawDataset(metasets[i]);\n        }\n        this.notifyPlugins('afterDatasetsDraw');\n    }\n _drawDataset(meta) {\n        const ctx = this.ctx;\n        const args = {\n            meta,\n            index: meta.index,\n            cancelable: true\n        };\n        const clip = getDatasetClipArea(this, meta);\n        if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n            return;\n        }\n        if (clip) {\n            clipArea(ctx, clip);\n        }\n        meta.controller.draw();\n        if (clip) {\n            unclipArea(ctx);\n        }\n        args.cancelable = false;\n        this.notifyPlugins('afterDatasetDraw', args);\n    }\n isPointInArea(point) {\n        return _isPointInArea(point, this.chartArea, this._minPadding);\n    }\n    getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n        const method = Interaction.modes[mode];\n        if (typeof method === 'function') {\n            return method(this, e, options, useFinalPosition);\n        }\n        return [];\n    }\n    getDatasetMeta(datasetIndex) {\n        const dataset = this.data.datasets[datasetIndex];\n        const metasets = this._metasets;\n        let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n        if (!meta) {\n            meta = {\n                type: null,\n                data: [],\n                dataset: null,\n                controller: null,\n                hidden: null,\n                xAxisID: null,\n                yAxisID: null,\n                order: dataset && dataset.order || 0,\n                index: datasetIndex,\n                _dataset: dataset,\n                _parsed: [],\n                _sorted: false\n            };\n            metasets.push(meta);\n        }\n        return meta;\n    }\n    getContext() {\n        return this.$context || (this.$context = createContext(null, {\n            chart: this,\n            type: 'chart'\n        }));\n    }\n    getVisibleDatasetCount() {\n        return this.getSortedVisibleDatasetMetas().length;\n    }\n    isDatasetVisible(datasetIndex) {\n        const dataset = this.data.datasets[datasetIndex];\n        if (!dataset) {\n            return false;\n        }\n        const meta = this.getDatasetMeta(datasetIndex);\n        return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n    }\n    setDatasetVisibility(datasetIndex, visible) {\n        const meta = this.getDatasetMeta(datasetIndex);\n        meta.hidden = !visible;\n    }\n    toggleDataVisibility(index) {\n        this._hiddenIndices[index] = !this._hiddenIndices[index];\n    }\n    getDataVisibility(index) {\n        return !this._hiddenIndices[index];\n    }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n        const mode = visible ? 'show' : 'hide';\n        const meta = this.getDatasetMeta(datasetIndex);\n        const anims = meta.controller._resolveAnimations(undefined, mode);\n        if (defined(dataIndex)) {\n            meta.data[dataIndex].hidden = !visible;\n            this.update();\n        } else {\n            this.setDatasetVisibility(datasetIndex, visible);\n            anims.update(meta, {\n                visible\n            });\n            this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n        }\n    }\n    hide(datasetIndex, dataIndex) {\n        this._updateVisibility(datasetIndex, dataIndex, false);\n    }\n    show(datasetIndex, dataIndex) {\n        this._updateVisibility(datasetIndex, dataIndex, true);\n    }\n _destroyDatasetMeta(datasetIndex) {\n        const meta = this._metasets[datasetIndex];\n        if (meta && meta.controller) {\n            meta.controller._destroy();\n        }\n        delete this._metasets[datasetIndex];\n    }\n    _stop() {\n        let i, ilen;\n        this.stop();\n        animator.remove(this);\n        for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n            this._destroyDatasetMeta(i);\n        }\n    }\n    destroy() {\n        this.notifyPlugins('beforeDestroy');\n        const { canvas , ctx  } = this;\n        this._stop();\n        this.config.clearCache();\n        if (canvas) {\n            this.unbindEvents();\n            clearCanvas(canvas, ctx);\n            this.platform.releaseContext(ctx);\n            this.canvas = null;\n            this.ctx = null;\n        }\n        delete instances[this.id];\n        this.notifyPlugins('afterDestroy');\n    }\n    toBase64Image(...args) {\n        return this.canvas.toDataURL(...args);\n    }\n bindEvents() {\n        this.bindUserEvents();\n        if (this.options.responsive) {\n            this.bindResponsiveEvents();\n        } else {\n            this.attached = true;\n        }\n    }\n bindUserEvents() {\n        const listeners = this._listeners;\n        const platform = this.platform;\n        const _add = (type, listener)=>{\n            platform.addEventListener(this, type, listener);\n            listeners[type] = listener;\n        };\n        const listener = (e, x, y)=>{\n            e.offsetX = x;\n            e.offsetY = y;\n            this._eventHandler(e);\n        };\n        each(this.options.events, (type)=>_add(type, listener));\n    }\n bindResponsiveEvents() {\n        if (!this._responsiveListeners) {\n            this._responsiveListeners = {};\n        }\n        const listeners = this._responsiveListeners;\n        const platform = this.platform;\n        const _add = (type, listener)=>{\n            platform.addEventListener(this, type, listener);\n            listeners[type] = listener;\n        };\n        const _remove = (type, listener)=>{\n            if (listeners[type]) {\n                platform.removeEventListener(this, type, listener);\n                delete listeners[type];\n            }\n        };\n        const listener = (width, height)=>{\n            if (this.canvas) {\n                this.resize(width, height);\n            }\n        };\n        let detached;\n        const attached = ()=>{\n            _remove('attach', attached);\n            this.attached = true;\n            this.resize();\n            _add('resize', listener);\n            _add('detach', detached);\n        };\n        detached = ()=>{\n            this.attached = false;\n            _remove('resize', listener);\n            this._stop();\n            this._resize(0, 0);\n            _add('attach', attached);\n        };\n        if (platform.isAttached(this.canvas)) {\n            attached();\n        } else {\n            detached();\n        }\n    }\n unbindEvents() {\n        each(this._listeners, (listener, type)=>{\n            this.platform.removeEventListener(this, type, listener);\n        });\n        this._listeners = {};\n        each(this._responsiveListeners, (listener, type)=>{\n            this.platform.removeEventListener(this, type, listener);\n        });\n        this._responsiveListeners = undefined;\n    }\n    updateHoverStyle(items, mode, enabled) {\n        const prefix = enabled ? 'set' : 'remove';\n        let meta, item, i, ilen;\n        if (mode === 'dataset') {\n            meta = this.getDatasetMeta(items[0].datasetIndex);\n            meta.controller['_' + prefix + 'DatasetHoverStyle']();\n        }\n        for(i = 0, ilen = items.length; i < ilen; ++i){\n            item = items[i];\n            const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n            if (controller) {\n                controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n            }\n        }\n    }\n getActiveElements() {\n        return this._active || [];\n    }\n setActiveElements(activeElements) {\n        const lastActive = this._active || [];\n        const active = activeElements.map(({ datasetIndex , index  })=>{\n            const meta = this.getDatasetMeta(datasetIndex);\n            if (!meta) {\n                throw new Error('No dataset found at index ' + datasetIndex);\n            }\n            return {\n                datasetIndex,\n                element: meta.data[index],\n                index\n            };\n        });\n        const changed = !_elementsEqual(active, lastActive);\n        if (changed) {\n            this._active = active;\n            this._lastEvent = null;\n            this._updateHoverStyles(active, lastActive);\n        }\n    }\n notifyPlugins(hook, args, filter) {\n        return this._plugins.notify(this, hook, args, filter);\n    }\n isPluginEnabled(pluginId) {\n        return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n    }\n _updateHoverStyles(active, lastActive, replay) {\n        const hoverOptions = this.options.hover;\n        const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n        const deactivated = diff(lastActive, active);\n        const activated = replay ? active : diff(active, lastActive);\n        if (deactivated.length) {\n            this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n        }\n        if (activated.length && hoverOptions.mode) {\n            this.updateHoverStyle(activated, hoverOptions.mode, true);\n        }\n    }\n _eventHandler(e, replay) {\n        const args = {\n            event: e,\n            replay,\n            cancelable: true,\n            inChartArea: this.isPointInArea(e)\n        };\n        const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n        if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n            return;\n        }\n        const changed = this._handleEvent(e, replay, args.inChartArea);\n        args.cancelable = false;\n        this.notifyPlugins('afterEvent', args, eventFilter);\n        if (changed || args.changed) {\n            this.render();\n        }\n        return this;\n    }\n _handleEvent(e, replay, inChartArea) {\n        const { _active: lastActive = [] , options  } = this;\n        const useFinalPosition = replay;\n        const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n        const isClick = _isClickEvent(e);\n        const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n        if (inChartArea) {\n            this._lastEvent = null;\n            callback(options.onHover, [\n                e,\n                active,\n                this\n            ], this);\n            if (isClick) {\n                callback(options.onClick, [\n                    e,\n                    active,\n                    this\n                ], this);\n            }\n        }\n        const changed = !_elementsEqual(active, lastActive);\n        if (changed || replay) {\n            this._active = active;\n            this._updateHoverStyles(active, lastActive, replay);\n        }\n        this._lastEvent = lastEvent;\n        return changed;\n    }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n        if (e.type === 'mouseout') {\n            return [];\n        }\n        if (!inChartArea) {\n            return lastActive;\n        }\n        const hoverOptions = this.options.hover;\n        return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n    }\n}\nfunction invalidatePlugins() {\n    return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n    const { startAngle , x , y , outerRadius , innerRadius , options  } = element;\n    const { borderWidth , borderJoinStyle  } = options;\n    const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n    ctx.beginPath();\n    ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n    if (innerRadius > 0) {\n        const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n        ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n    } else {\n        const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n        if (borderJoinStyle === 'round') {\n            ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n        } else if (borderJoinStyle === 'bevel') {\n            const r = 2 * clipWidth * clipWidth;\n            const endX = -r * Math.cos(endAngle + PI / 2) + x;\n            const endY = -r * Math.sin(endAngle + PI / 2) + y;\n            const startX = r * Math.cos(startAngle + PI / 2) + x;\n            const startY = r * Math.sin(startAngle + PI / 2) + y;\n            ctx.lineTo(endX, endY);\n            ctx.lineTo(startX, startY);\n        }\n    }\n    ctx.closePath();\n    ctx.moveTo(0, 0);\n    ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n    ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n    const { startAngle , pixelMargin , x , y , outerRadius , innerRadius  } = element;\n    let angleMargin = pixelMargin / outerRadius;\n    // Draw an inner border by clipping the arc and drawing a double-width border\n    // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n    ctx.beginPath();\n    ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n    if (innerRadius > pixelMargin) {\n        angleMargin = pixelMargin / innerRadius;\n        ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n    } else {\n        ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n    }\n    ctx.closePath();\n    ctx.clip();\n}\nfunction toRadiusCorners(value) {\n    return _readValueToProps(value, [\n        'outerStart',\n        'outerEnd',\n        'innerStart',\n        'innerEnd'\n    ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n    const o = toRadiusCorners(arc.options.borderRadius);\n    const halfThickness = (outerRadius - innerRadius) / 2;\n    const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n    // Outer limits are complicated. We want to compute the available angular distance at\n    // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n    // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n    //\n    // If the borderRadius is large, that value can become negative.\n    // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n    // we know that the thickness term will dominate and compute the limits at that point\n    const computeOuterLimit = (val)=>{\n        const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n        return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n    };\n    return {\n        outerStart: computeOuterLimit(o.outerStart),\n        outerEnd: computeOuterLimit(o.outerEnd),\n        innerStart: _limitValue(o.innerStart, 0, innerLimit),\n        innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n    };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n    return {\n        x: x + r * Math.cos(theta),\n        y: y + r * Math.sin(theta)\n    };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n *   Start      End\n *\n *    1--->a--->2    Outer\n *   /           \\\n *   8           3\n *   |           |\n *   |           |\n *   7           4\n *   \\           /\n *    6<---b<---5    Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n    const { x , y , startAngle: start , pixelMargin , innerRadius: innerR  } = element;\n    const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n    const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n    let spacingOffset = 0;\n    const alpha = end - start;\n    if (spacing) {\n        // When spacing is present, it is the same for all items\n        // So we adjust the start and end angle of the arc such that\n        // the distance is the same as it would be without the spacing\n        const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n        const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n        const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n        const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n        spacingOffset = (alpha - adjustedAngle) / 2;\n    }\n    const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n    const angleOffset = (alpha - beta) / 2;\n    const startAngle = start + angleOffset + spacingOffset;\n    const endAngle = end - angleOffset - spacingOffset;\n    const { outerStart , outerEnd , innerStart , innerEnd  } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n    const outerStartAdjustedRadius = outerRadius - outerStart;\n    const outerEndAdjustedRadius = outerRadius - outerEnd;\n    const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n    const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n    const innerStartAdjustedRadius = innerRadius + innerStart;\n    const innerEndAdjustedRadius = innerRadius + innerEnd;\n    const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n    const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n    ctx.beginPath();\n    if (circular) {\n        // The first arc segments from point 1 to point a to point 2\n        const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n        ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n        ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n        // The corner segment from point 2 to point 3\n        if (outerEnd > 0) {\n            const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n            ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n        }\n        // The line from point 3 to point 4\n        const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n        ctx.lineTo(p4.x, p4.y);\n        // The corner segment from point 4 to point 5\n        if (innerEnd > 0) {\n            const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n            ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n        }\n        // The inner arc from point 5 to point b to point 6\n        const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n        ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n        ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n        // The corner segment from point 6 to point 7\n        if (innerStart > 0) {\n            const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n            ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n        }\n        // The line from point 7 to point 8\n        const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n        ctx.lineTo(p8.x, p8.y);\n        // The corner segment from point 8 to point 1\n        if (outerStart > 0) {\n            const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n            ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n        }\n    } else {\n        ctx.moveTo(x, y);\n        const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n        const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n        ctx.lineTo(outerStartX, outerStartY);\n        const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n        const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n        ctx.lineTo(outerEndX, outerEndY);\n    }\n    ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n    const { fullCircles , startAngle , circumference  } = element;\n    let endAngle = element.endAngle;\n    if (fullCircles) {\n        pathArc(ctx, element, offset, spacing, endAngle, circular);\n        for(let i = 0; i < fullCircles; ++i){\n            ctx.fill();\n        }\n        if (!isNaN(circumference)) {\n            endAngle = startAngle + (circumference % TAU || TAU);\n        }\n    }\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    ctx.fill();\n    return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n    const { fullCircles , startAngle , circumference , options  } = element;\n    const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius  } = options;\n    const inner = options.borderAlign === 'inner';\n    if (!borderWidth) {\n        return;\n    }\n    ctx.setLineDash(borderDash || []);\n    ctx.lineDashOffset = borderDashOffset;\n    if (inner) {\n        ctx.lineWidth = borderWidth * 2;\n        ctx.lineJoin = borderJoinStyle || 'round';\n    } else {\n        ctx.lineWidth = borderWidth;\n        ctx.lineJoin = borderJoinStyle || 'bevel';\n    }\n    let endAngle = element.endAngle;\n    if (fullCircles) {\n        pathArc(ctx, element, offset, spacing, endAngle, circular);\n        for(let i = 0; i < fullCircles; ++i){\n            ctx.stroke();\n        }\n        if (!isNaN(circumference)) {\n            endAngle = startAngle + (circumference % TAU || TAU);\n        }\n    }\n    if (inner) {\n        clipArc(ctx, element, endAngle);\n    }\n    if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n        clipSelf(ctx, element, endAngle);\n    }\n    if (!fullCircles) {\n        pathArc(ctx, element, offset, spacing, endAngle, circular);\n        ctx.stroke();\n    }\n}\nclass ArcElement extends Element {\n    static id = 'arc';\n    static defaults = {\n        borderAlign: 'center',\n        borderColor: '#fff',\n        borderDash: [],\n        borderDashOffset: 0,\n        borderJoinStyle: undefined,\n        borderRadius: 0,\n        borderWidth: 2,\n        offset: 0,\n        spacing: 0,\n        angle: undefined,\n        circular: true,\n        selfJoin: false\n    };\n    static defaultRoutes = {\n        backgroundColor: 'backgroundColor'\n    };\n    static descriptors = {\n        _scriptable: true,\n        _indexable: (name)=>name !== 'borderDash'\n    };\n    circumference;\n    endAngle;\n    fullCircles;\n    innerRadius;\n    outerRadius;\n    pixelMargin;\n    startAngle;\n    constructor(cfg){\n        super();\n        this.options = undefined;\n        this.circumference = undefined;\n        this.startAngle = undefined;\n        this.endAngle = undefined;\n        this.innerRadius = undefined;\n        this.outerRadius = undefined;\n        this.pixelMargin = 0;\n        this.fullCircles = 0;\n        if (cfg) {\n            Object.assign(this, cfg);\n        }\n    }\n    inRange(chartX, chartY, useFinalPosition) {\n        const point = this.getProps([\n            'x',\n            'y'\n        ], useFinalPosition);\n        const { angle , distance  } = getAngleFromPoint(point, {\n            x: chartX,\n            y: chartY\n        });\n        const { startAngle , endAngle , innerRadius , outerRadius , circumference  } = this.getProps([\n            'startAngle',\n            'endAngle',\n            'innerRadius',\n            'outerRadius',\n            'circumference'\n        ], useFinalPosition);\n        const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n        const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n        const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n        const betweenAngles = _circumference >= TAU || nonZeroBetween;\n        const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n        return betweenAngles && withinRadius;\n    }\n    getCenterPoint(useFinalPosition) {\n        const { x , y , startAngle , endAngle , innerRadius , outerRadius  } = this.getProps([\n            'x',\n            'y',\n            'startAngle',\n            'endAngle',\n            'innerRadius',\n            'outerRadius'\n        ], useFinalPosition);\n        const { offset , spacing  } = this.options;\n        const halfAngle = (startAngle + endAngle) / 2;\n        const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n        return {\n            x: x + Math.cos(halfAngle) * halfRadius,\n            y: y + Math.sin(halfAngle) * halfRadius\n        };\n    }\n    tooltipPosition(useFinalPosition) {\n        return this.getCenterPoint(useFinalPosition);\n    }\n    draw(ctx) {\n        const { options , circumference  } = this;\n        const offset = (options.offset || 0) / 4;\n        const spacing = (options.spacing || 0) / 2;\n        const circular = options.circular;\n        this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n        this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n        if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n            return;\n        }\n        ctx.save();\n        const halfAngle = (this.startAngle + this.endAngle) / 2;\n        ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n        const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n        const radiusOffset = offset * fix;\n        ctx.fillStyle = options.backgroundColor;\n        ctx.strokeStyle = options.borderColor;\n        drawArc(ctx, this, radiusOffset, spacing, circular);\n        drawBorder(ctx, this, radiusOffset, spacing, circular);\n        ctx.restore();\n    }\n}\n\nfunction setStyle(ctx, options, style = options) {\n    ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n    ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n    ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n    ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n    ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n    ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n    ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n    if (options.stepped) {\n        return _steppedLineTo;\n    }\n    if (options.tension || options.cubicInterpolationMode === 'monotone') {\n        return _bezierCurveTo;\n    }\n    return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n    const count = points.length;\n    const { start: paramsStart = 0 , end: paramsEnd = count - 1  } = params;\n    const { start: segmentStart , end: segmentEnd  } = segment;\n    const start = Math.max(paramsStart, segmentStart);\n    const end = Math.min(paramsEnd, segmentEnd);\n    const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n    return {\n        count,\n        start,\n        loop: segment.loop,\n        ilen: end < start && !outside ? count + end - start : end - start\n    };\n}\n function pathSegment(ctx, line, segment, params) {\n    const { points , options  } = line;\n    const { count , start , loop , ilen  } = pathVars(points, segment, params);\n    const lineMethod = getLineMethod(options);\n    let { move =true , reverse  } = params || {};\n    let i, point, prev;\n    for(i = 0; i <= ilen; ++i){\n        point = points[(start + (reverse ? ilen - i : i)) % count];\n        if (point.skip) {\n            continue;\n        } else if (move) {\n            ctx.moveTo(point.x, point.y);\n            move = false;\n        } else {\n            lineMethod(ctx, prev, point, reverse, options.stepped);\n        }\n        prev = point;\n    }\n    if (loop) {\n        point = points[(start + (reverse ? ilen : 0)) % count];\n        lineMethod(ctx, prev, point, reverse, options.stepped);\n    }\n    return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n    const points = line.points;\n    const { count , start , ilen  } = pathVars(points, segment, params);\n    const { move =true , reverse  } = params || {};\n    let avgX = 0;\n    let countX = 0;\n    let i, point, prevX, minY, maxY, lastY;\n    const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n    const drawX = ()=>{\n        if (minY !== maxY) {\n            ctx.lineTo(avgX, maxY);\n            ctx.lineTo(avgX, minY);\n            ctx.lineTo(avgX, lastY);\n        }\n    };\n    if (move) {\n        point = points[pointIndex(0)];\n        ctx.moveTo(point.x, point.y);\n    }\n    for(i = 0; i <= ilen; ++i){\n        point = points[pointIndex(i)];\n        if (point.skip) {\n            continue;\n        }\n        const x = point.x;\n        const y = point.y;\n        const truncX = x | 0;\n        if (truncX === prevX) {\n            if (y < minY) {\n                minY = y;\n            } else if (y > maxY) {\n                maxY = y;\n            }\n            avgX = (countX * avgX + x) / ++countX;\n        } else {\n            drawX();\n            ctx.lineTo(x, y);\n            prevX = truncX;\n            countX = 0;\n            minY = maxY = y;\n        }\n        lastY = y;\n    }\n    drawX();\n}\n function _getSegmentMethod(line) {\n    const opts = line.options;\n    const borderDash = opts.borderDash && opts.borderDash.length;\n    const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n    return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n    if (options.stepped) {\n        return _steppedInterpolation;\n    }\n    if (options.tension || options.cubicInterpolationMode === 'monotone') {\n        return _bezierInterpolation;\n    }\n    return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n    let path = line._path;\n    if (!path) {\n        path = line._path = new Path2D();\n        if (line.path(path, start, count)) {\n            path.closePath();\n        }\n    }\n    setStyle(ctx, line.options);\n    ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n    const { segments , options  } = line;\n    const segmentMethod = _getSegmentMethod(line);\n    for (const segment of segments){\n        setStyle(ctx, options, segment.style);\n        ctx.beginPath();\n        if (segmentMethod(ctx, line, segment, {\n            start,\n            end: start + count - 1\n        })) {\n            ctx.closePath();\n        }\n        ctx.stroke();\n    }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n    if (usePath2D && !line.options.segment) {\n        strokePathWithCache(ctx, line, start, count);\n    } else {\n        strokePathDirect(ctx, line, start, count);\n    }\n}\nclass LineElement extends Element {\n    static id = 'line';\n static defaults = {\n        borderCapStyle: 'butt',\n        borderDash: [],\n        borderDashOffset: 0,\n        borderJoinStyle: 'miter',\n        borderWidth: 3,\n        capBezierPoints: true,\n        cubicInterpolationMode: 'default',\n        fill: false,\n        spanGaps: false,\n        stepped: false,\n        tension: 0\n    };\n static defaultRoutes = {\n        backgroundColor: 'backgroundColor',\n        borderColor: 'borderColor'\n    };\n    static descriptors = {\n        _scriptable: true,\n        _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n    };\n    constructor(cfg){\n        super();\n        this.animated = true;\n        this.options = undefined;\n        this._chart = undefined;\n        this._loop = undefined;\n        this._fullLoop = undefined;\n        this._path = undefined;\n        this._points = undefined;\n        this._segments = undefined;\n        this._decimated = false;\n        this._pointsUpdated = false;\n        this._datasetIndex = undefined;\n        if (cfg) {\n            Object.assign(this, cfg);\n        }\n    }\n    updateControlPoints(chartArea, indexAxis) {\n        const options = this.options;\n        if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n            const loop = options.spanGaps ? this._loop : this._fullLoop;\n            _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n            this._pointsUpdated = true;\n        }\n    }\n    set points(points) {\n        this._points = points;\n        delete this._segments;\n        delete this._path;\n        this._pointsUpdated = false;\n    }\n    get points() {\n        return this._points;\n    }\n    get segments() {\n        return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n    }\n first() {\n        const segments = this.segments;\n        const points = this.points;\n        return segments.length && points[segments[0].start];\n    }\n last() {\n        const segments = this.segments;\n        const points = this.points;\n        const count = segments.length;\n        return count && points[segments[count - 1].end];\n    }\n interpolate(point, property) {\n        const options = this.options;\n        const value = point[property];\n        const points = this.points;\n        const segments = _boundSegments(this, {\n            property,\n            start: value,\n            end: value\n        });\n        if (!segments.length) {\n            return;\n        }\n        const result = [];\n        const _interpolate = _getInterpolationMethod(options);\n        let i, ilen;\n        for(i = 0, ilen = segments.length; i < ilen; ++i){\n            const { start , end  } = segments[i];\n            const p1 = points[start];\n            const p2 = points[end];\n            if (p1 === p2) {\n                result.push(p1);\n                continue;\n            }\n            const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n            const interpolated = _interpolate(p1, p2, t, options.stepped);\n            interpolated[property] = point[property];\n            result.push(interpolated);\n        }\n        return result.length === 1 ? result[0] : result;\n    }\n pathSegment(ctx, segment, params) {\n        const segmentMethod = _getSegmentMethod(this);\n        return segmentMethod(ctx, this, segment, params);\n    }\n path(ctx, start, count) {\n        const segments = this.segments;\n        const segmentMethod = _getSegmentMethod(this);\n        let loop = this._loop;\n        start = start || 0;\n        count = count || this.points.length - start;\n        for (const segment of segments){\n            loop &= segmentMethod(ctx, this, segment, {\n                start,\n                end: start + count - 1\n            });\n        }\n        return !!loop;\n    }\n draw(ctx, chartArea, start, count) {\n        const options = this.options || {};\n        const points = this.points || [];\n        if (points.length && options.borderWidth) {\n            ctx.save();\n            draw(ctx, this, start, count);\n            ctx.restore();\n        }\n        if (this.animated) {\n            this._pointsUpdated = false;\n            this._path = undefined;\n        }\n    }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n    const options = el.options;\n    const { [axis]: value  } = el.getProps([\n        axis\n    ], useFinalPosition);\n    return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n    static id = 'point';\n    parsed;\n    skip;\n    stop;\n    /**\n   * @type {any}\n   */ static defaults = {\n        borderWidth: 1,\n        hitRadius: 1,\n        hoverBorderWidth: 1,\n        hoverRadius: 4,\n        pointStyle: 'circle',\n        radius: 3,\n        rotation: 0\n    };\n    /**\n   * @type {any}\n   */ static defaultRoutes = {\n        backgroundColor: 'backgroundColor',\n        borderColor: 'borderColor'\n    };\n    constructor(cfg){\n        super();\n        this.options = undefined;\n        this.parsed = undefined;\n        this.skip = undefined;\n        this.stop = undefined;\n        if (cfg) {\n            Object.assign(this, cfg);\n        }\n    }\n    inRange(mouseX, mouseY, useFinalPosition) {\n        const options = this.options;\n        const { x , y  } = this.getProps([\n            'x',\n            'y'\n        ], useFinalPosition);\n        return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n    }\n    inXRange(mouseX, useFinalPosition) {\n        return inRange$1(this, mouseX, 'x', useFinalPosition);\n    }\n    inYRange(mouseY, useFinalPosition) {\n        return inRange$1(this, mouseY, 'y', useFinalPosition);\n    }\n    getCenterPoint(useFinalPosition) {\n        const { x , y  } = this.getProps([\n            'x',\n            'y'\n        ], useFinalPosition);\n        return {\n            x,\n            y\n        };\n    }\n    size(options) {\n        options = options || this.options || {};\n        let radius = options.radius || 0;\n        radius = Math.max(radius, radius && options.hoverRadius || 0);\n        const borderWidth = radius && options.borderWidth || 0;\n        return (radius + borderWidth) * 2;\n    }\n    draw(ctx, area) {\n        const options = this.options;\n        if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n            return;\n        }\n        ctx.strokeStyle = options.borderColor;\n        ctx.lineWidth = options.borderWidth;\n        ctx.fillStyle = options.backgroundColor;\n        drawPoint(ctx, options, this.x, this.y);\n    }\n    getRange() {\n        const options = this.options || {};\n        // @ts-expect-error Fallbacks should never be hit in practice\n        return options.radius + options.hitRadius;\n    }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n    const { x , y , base , width , height  } =  bar.getProps([\n        'x',\n        'y',\n        'base',\n        'width',\n        'height'\n    ], useFinalPosition);\n    let left, right, top, bottom, half;\n    if (bar.horizontal) {\n        half = height / 2;\n        left = Math.min(x, base);\n        right = Math.max(x, base);\n        top = y - half;\n        bottom = y + half;\n    } else {\n        half = width / 2;\n        left = x - half;\n        right = x + half;\n        top = Math.min(y, base);\n        bottom = Math.max(y, base);\n    }\n    return {\n        left,\n        top,\n        right,\n        bottom\n    };\n}\nfunction skipOrLimit(skip, value, min, max) {\n    return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n    const value = bar.options.borderWidth;\n    const skip = bar.borderSkipped;\n    const o = toTRBL(value);\n    return {\n        t: skipOrLimit(skip.top, o.top, 0, maxH),\n        r: skipOrLimit(skip.right, o.right, 0, maxW),\n        b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n        l: skipOrLimit(skip.left, o.left, 0, maxW)\n    };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n    const { enableBorderRadius  } = bar.getProps([\n        'enableBorderRadius'\n    ]);\n    const value = bar.options.borderRadius;\n    const o = toTRBLCorners(value);\n    const maxR = Math.min(maxW, maxH);\n    const skip = bar.borderSkipped;\n    const enableBorder = enableBorderRadius || isObject(value);\n    return {\n        topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n        topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n        bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n        bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n    };\n}\nfunction boundingRects(bar) {\n    const bounds = getBarBounds(bar);\n    const width = bounds.right - bounds.left;\n    const height = bounds.bottom - bounds.top;\n    const border = parseBorderWidth(bar, width / 2, height / 2);\n    const radius = parseBorderRadius(bar, width / 2, height / 2);\n    return {\n        outer: {\n            x: bounds.left,\n            y: bounds.top,\n            w: width,\n            h: height,\n            radius\n        },\n        inner: {\n            x: bounds.left + border.l,\n            y: bounds.top + border.t,\n            w: width - border.l - border.r,\n            h: height - border.t - border.b,\n            radius: {\n                topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n                topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n                bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n                bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n            }\n        }\n    };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n    const skipX = x === null;\n    const skipY = y === null;\n    const skipBoth = skipX && skipY;\n    const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n    return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n    return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n    ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n    const x = rect.x !== refRect.x ? -amount : 0;\n    const y = rect.y !== refRect.y ? -amount : 0;\n    const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n    const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n    return {\n        x: rect.x + x,\n        y: rect.y + y,\n        w: rect.w + w,\n        h: rect.h + h,\n        radius: rect.radius\n    };\n}\nclass BarElement extends Element {\n    static id = 'bar';\n static defaults = {\n        borderSkipped: 'start',\n        borderWidth: 0,\n        borderRadius: 0,\n        inflateAmount: 'auto',\n        pointStyle: undefined\n    };\n static defaultRoutes = {\n        backgroundColor: 'backgroundColor',\n        borderColor: 'borderColor'\n    };\n    constructor(cfg){\n        super();\n        this.options = undefined;\n        this.horizontal = undefined;\n        this.base = undefined;\n        this.width = undefined;\n        this.height = undefined;\n        this.inflateAmount = undefined;\n        if (cfg) {\n            Object.assign(this, cfg);\n        }\n    }\n    draw(ctx) {\n        const { inflateAmount , options: { borderColor , backgroundColor  }  } = this;\n        const { inner , outer  } = boundingRects(this);\n        const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n        ctx.save();\n        if (outer.w !== inner.w || outer.h !== inner.h) {\n            ctx.beginPath();\n            addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n            ctx.clip();\n            addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n            ctx.fillStyle = borderColor;\n            ctx.fill('evenodd');\n        }\n        ctx.beginPath();\n        addRectPath(ctx, inflateRect(inner, inflateAmount));\n        ctx.fillStyle = backgroundColor;\n        ctx.fill();\n        ctx.restore();\n    }\n    inRange(mouseX, mouseY, useFinalPosition) {\n        return inRange(this, mouseX, mouseY, useFinalPosition);\n    }\n    inXRange(mouseX, useFinalPosition) {\n        return inRange(this, mouseX, null, useFinalPosition);\n    }\n    inYRange(mouseY, useFinalPosition) {\n        return inRange(this, null, mouseY, useFinalPosition);\n    }\n    getCenterPoint(useFinalPosition) {\n        const { x , y , base , horizontal  } =  this.getProps([\n            'x',\n            'y',\n            'base',\n            'horizontal'\n        ], useFinalPosition);\n        return {\n            x: horizontal ? (x + base) / 2 : x,\n            y: horizontal ? y : (y + base) / 2\n        };\n    }\n    getRange(axis) {\n        return axis === 'x' ? this.width / 2 : this.height / 2;\n    }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n    'rgb(54, 162, 235)',\n    'rgb(255, 99, 132)',\n    'rgb(255, 159, 64)',\n    'rgb(255, 205, 86)',\n    'rgb(75, 192, 192)',\n    'rgb(153, 102, 255)',\n    'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n    return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n    return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n    dataset.borderColor = getBorderColor(i);\n    dataset.backgroundColor = getBackgroundColor(i);\n    return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n    dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n    return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n    dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n    return i;\n}\nfunction getColorizer(chart) {\n    let i = 0;\n    return (dataset, datasetIndex)=>{\n        const controller = chart.getDatasetMeta(datasetIndex).controller;\n        if (controller instanceof DoughnutController) {\n            i = colorizeDoughnutDataset(dataset, i);\n        } else if (controller instanceof PolarAreaController) {\n            i = colorizePolarAreaDataset(dataset, i);\n        } else if (controller) {\n            i = colorizeDefaultDataset(dataset, i);\n        }\n    };\n}\nfunction containsColorsDefinitions(descriptors) {\n    let k;\n    for(k in descriptors){\n        if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction containsColorsDefinition(descriptor) {\n    return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n    return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n    id: 'colors',\n    defaults: {\n        enabled: true,\n        forceOverride: false\n    },\n    beforeLayout (chart, _args, options) {\n        if (!options.enabled) {\n            return;\n        }\n        const { data: { datasets  } , options: chartOptions  } = chart.config;\n        const { elements  } = chartOptions;\n        const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n        if (!options.forceOverride && containsColorDefenition) {\n            return;\n        }\n        const colorizer = getColorizer(chart);\n        datasets.forEach(colorizer);\n    }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n    if (samples >= count) {\n        return data.slice(start, start + count);\n    }\n    const decimated = [];\n    const bucketWidth = (count - 2) / (samples - 2);\n    let sampledIndex = 0;\n    const endIndex = start + count - 1;\n    let a = start;\n    let i, maxAreaPoint, maxArea, area, nextA;\n    decimated[sampledIndex++] = data[a];\n    for(i = 0; i < samples - 2; i++){\n        let avgX = 0;\n        let avgY = 0;\n        let j;\n        const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n        const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n        const avgRangeLength = avgRangeEnd - avgRangeStart;\n        for(j = avgRangeStart; j < avgRangeEnd; j++){\n            avgX += data[j].x;\n            avgY += data[j].y;\n        }\n        avgX /= avgRangeLength;\n        avgY /= avgRangeLength;\n        const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n        const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n        const { x: pointAx , y: pointAy  } = data[a];\n        maxArea = area = -1;\n        for(j = rangeOffs; j < rangeTo; j++){\n            area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n            if (area > maxArea) {\n                maxArea = area;\n                maxAreaPoint = data[j];\n                nextA = j;\n            }\n        }\n        decimated[sampledIndex++] = maxAreaPoint;\n        a = nextA;\n    }\n    decimated[sampledIndex++] = data[endIndex];\n    return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n    let avgX = 0;\n    let countX = 0;\n    let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n    const decimated = [];\n    const endIndex = start + count - 1;\n    const xMin = data[start].x;\n    const xMax = data[endIndex].x;\n    const dx = xMax - xMin;\n    for(i = start; i < start + count; ++i){\n        point = data[i];\n        x = (point.x - xMin) / dx * availableWidth;\n        y = point.y;\n        const truncX = x | 0;\n        if (truncX === prevX) {\n            if (y < minY) {\n                minY = y;\n                minIndex = i;\n            } else if (y > maxY) {\n                maxY = y;\n                maxIndex = i;\n            }\n            avgX = (countX * avgX + point.x) / ++countX;\n        } else {\n            const lastIndex = i - 1;\n            if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n                const intermediateIndex1 = Math.min(minIndex, maxIndex);\n                const intermediateIndex2 = Math.max(minIndex, maxIndex);\n                if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n                    decimated.push({\n                        ...data[intermediateIndex1],\n                        x: avgX\n                    });\n                }\n                if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n                    decimated.push({\n                        ...data[intermediateIndex2],\n                        x: avgX\n                    });\n                }\n            }\n            if (i > 0 && lastIndex !== startIndex) {\n                decimated.push(data[lastIndex]);\n            }\n            decimated.push(point);\n            prevX = truncX;\n            countX = 0;\n            minY = maxY = y;\n            minIndex = maxIndex = startIndex = i;\n        }\n    }\n    return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n    if (dataset._decimated) {\n        const data = dataset._data;\n        delete dataset._decimated;\n        delete dataset._data;\n        Object.defineProperty(dataset, 'data', {\n            configurable: true,\n            enumerable: true,\n            writable: true,\n            value: data\n        });\n    }\n}\nfunction cleanDecimatedData(chart) {\n    chart.data.datasets.forEach((dataset)=>{\n        cleanDecimatedDataset(dataset);\n    });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n    const pointCount = points.length;\n    let start = 0;\n    let count;\n    const { iScale  } = meta;\n    const { min , max , minDefined , maxDefined  } = iScale.getUserBounds();\n    if (minDefined) {\n        start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n    }\n    if (maxDefined) {\n        count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n    } else {\n        count = pointCount - start;\n    }\n    return {\n        start,\n        count\n    };\n}\nvar plugin_decimation = {\n    id: 'decimation',\n    defaults: {\n        algorithm: 'min-max',\n        enabled: false\n    },\n    beforeElementsUpdate: (chart, args, options)=>{\n        if (!options.enabled) {\n            cleanDecimatedData(chart);\n            return;\n        }\n        const availableWidth = chart.width;\n        chart.data.datasets.forEach((dataset, datasetIndex)=>{\n            const { _data , indexAxis  } = dataset;\n            const meta = chart.getDatasetMeta(datasetIndex);\n            const data = _data || dataset.data;\n            if (resolve([\n                indexAxis,\n                chart.options.indexAxis\n            ]) === 'y') {\n                return;\n            }\n            if (!meta.controller.supportsDecimation) {\n                return;\n            }\n            const xAxis = chart.scales[meta.xAxisID];\n            if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n                return;\n            }\n            if (chart.options.parsing) {\n                return;\n            }\n            let { start , count  } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n            const threshold = options.threshold || 4 * availableWidth;\n            if (count <= threshold) {\n                cleanDecimatedDataset(dataset);\n                return;\n            }\n            if (isNullOrUndef(_data)) {\n                dataset._data = data;\n                delete dataset.data;\n                Object.defineProperty(dataset, 'data', {\n                    configurable: true,\n                    enumerable: true,\n                    get: function() {\n                        return this._decimated;\n                    },\n                    set: function(d) {\n                        this._data = d;\n                    }\n                });\n            }\n            let decimated;\n            switch(options.algorithm){\n                case 'lttb':\n                    decimated = lttbDecimation(data, start, count, availableWidth, options);\n                    break;\n                case 'min-max':\n                    decimated = minMaxDecimation(data, start, count, availableWidth);\n                    break;\n                default:\n                    throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n            }\n            dataset._decimated = decimated;\n        });\n    },\n    destroy (chart) {\n        cleanDecimatedData(chart);\n    }\n};\n\nfunction _segments(line, target, property) {\n    const segments = line.segments;\n    const points = line.points;\n    const tpoints = target.points;\n    const parts = [];\n    for (const segment of segments){\n        let { start , end  } = segment;\n        end = _findSegmentEnd(start, end, points);\n        const bounds = _getBounds(property, points[start], points[end], segment.loop);\n        if (!target.segments) {\n            parts.push({\n                source: segment,\n                target: bounds,\n                start: points[start],\n                end: points[end]\n            });\n            continue;\n        }\n        const targetSegments = _boundSegments(target, bounds);\n        for (const tgt of targetSegments){\n            const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n            const fillSources = _boundSegment(segment, points, subBounds);\n            for (const fillSource of fillSources){\n                parts.push({\n                    source: fillSource,\n                    target: tgt,\n                    start: {\n                        [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n                    },\n                    end: {\n                        [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n                    }\n                });\n            }\n        }\n    }\n    return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n    if (loop) {\n        return;\n    }\n    let start = first[property];\n    let end = last[property];\n    if (property === 'angle') {\n        start = _normalizeAngle(start);\n        end = _normalizeAngle(end);\n    }\n    return {\n        property,\n        start,\n        end\n    };\n}\nfunction _pointsFromSegments(boundary, line) {\n    const { x =null , y =null  } = boundary || {};\n    const linePoints = line.points;\n    const points = [];\n    line.segments.forEach(({ start , end  })=>{\n        end = _findSegmentEnd(start, end, linePoints);\n        const first = linePoints[start];\n        const last = linePoints[end];\n        if (y !== null) {\n            points.push({\n                x: first.x,\n                y\n            });\n            points.push({\n                x: last.x,\n                y\n            });\n        } else if (x !== null) {\n            points.push({\n                x,\n                y: first.y\n            });\n            points.push({\n                x,\n                y: last.y\n            });\n        }\n    });\n    return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n    for(; end > start; end--){\n        const point = points[end];\n        if (!isNaN(point.x) && !isNaN(point.y)) {\n            break;\n        }\n    }\n    return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n    if (a && b) {\n        return fn(a[prop], b[prop]);\n    }\n    return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n    let points = [];\n    let _loop = false;\n    if (isArray(boundary)) {\n        _loop = true;\n        points = boundary;\n    } else {\n        points = _pointsFromSegments(boundary, line);\n    }\n    return points.length ? new LineElement({\n        points,\n        options: {\n            tension: 0\n        },\n        _loop,\n        _fullLoop: _loop\n    }) : null;\n}\nfunction _shouldApplyFill(source) {\n    return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n    const source = sources[index];\n    let fill = source.fill;\n    const visited = [\n        index\n    ];\n    let target;\n    if (!propagate) {\n        return fill;\n    }\n    while(fill !== false && visited.indexOf(fill) === -1){\n        if (!isNumberFinite(fill)) {\n            return fill;\n        }\n        target = sources[fill];\n        if (!target) {\n            return false;\n        }\n        if (target.visible) {\n            return fill;\n        }\n        visited.push(fill);\n        fill = target.fill;\n    }\n    return false;\n}\n function _decodeFill(line, index, count) {\n     const fill = parseFillOption(line);\n    if (isObject(fill)) {\n        return isNaN(fill.value) ? false : fill;\n    }\n    let target = parseFloat(fill);\n    if (isNumberFinite(target) && Math.floor(target) === target) {\n        return decodeTargetIndex(fill[0], index, target, count);\n    }\n    return [\n        'origin',\n        'start',\n        'end',\n        'stack',\n        'shape'\n    ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n    if (firstCh === '-' || firstCh === '+') {\n        target = index + target;\n    }\n    if (target === index || target < 0 || target >= count) {\n        return false;\n    }\n    return target;\n}\n function _getTargetPixel(fill, scale) {\n    let pixel = null;\n    if (fill === 'start') {\n        pixel = scale.bottom;\n    } else if (fill === 'end') {\n        pixel = scale.top;\n    } else if (isObject(fill)) {\n        pixel = scale.getPixelForValue(fill.value);\n    } else if (scale.getBasePixel) {\n        pixel = scale.getBasePixel();\n    }\n    return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n    let value;\n    if (fill === 'start') {\n        value = startValue;\n    } else if (fill === 'end') {\n        value = scale.options.reverse ? scale.min : scale.max;\n    } else if (isObject(fill)) {\n        value = fill.value;\n    } else {\n        value = scale.getBaseValue();\n    }\n    return value;\n}\n function parseFillOption(line) {\n    const options = line.options;\n    const fillOption = options.fill;\n    let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n    if (fill === undefined) {\n        fill = !!options.backgroundColor;\n    }\n    if (fill === false || fill === null) {\n        return false;\n    }\n    if (fill === true) {\n        return 'origin';\n    }\n    return fill;\n}\n\nfunction _buildStackLine(source) {\n    const { scale , index , line  } = source;\n    const points = [];\n    const segments = line.segments;\n    const sourcePoints = line.points;\n    const linesBelow = getLinesBelow(scale, index);\n    linesBelow.push(_createBoundaryLine({\n        x: null,\n        y: scale.bottom\n    }, line));\n    for(let i = 0; i < segments.length; i++){\n        const segment = segments[i];\n        for(let j = segment.start; j <= segment.end; j++){\n            addPointsBelow(points, sourcePoints[j], linesBelow);\n        }\n    }\n    return new LineElement({\n        points,\n        options: {}\n    });\n}\n function getLinesBelow(scale, index) {\n    const below = [];\n    const metas = scale.getMatchingVisibleMetas('line');\n    for(let i = 0; i < metas.length; i++){\n        const meta = metas[i];\n        if (meta.index === index) {\n            break;\n        }\n        if (!meta.hidden) {\n            below.unshift(meta.dataset);\n        }\n    }\n    return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n    const postponed = [];\n    for(let j = 0; j < linesBelow.length; j++){\n        const line = linesBelow[j];\n        const { first , last , point  } = findPoint(line, sourcePoint, 'x');\n        if (!point || first && last) {\n            continue;\n        }\n        if (first) {\n            postponed.unshift(point);\n        } else {\n            points.push(point);\n            if (!last) {\n                break;\n            }\n        }\n    }\n    points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n    const point = line.interpolate(sourcePoint, property);\n    if (!point) {\n        return {};\n    }\n    const pointValue = point[property];\n    const segments = line.segments;\n    const linePoints = line.points;\n    let first = false;\n    let last = false;\n    for(let i = 0; i < segments.length; i++){\n        const segment = segments[i];\n        const firstValue = linePoints[segment.start][property];\n        const lastValue = linePoints[segment.end][property];\n        if (_isBetween(pointValue, firstValue, lastValue)) {\n            first = pointValue === firstValue;\n            last = pointValue === lastValue;\n            break;\n        }\n    }\n    return {\n        first,\n        last,\n        point\n    };\n}\n\nclass simpleArc {\n    constructor(opts){\n        this.x = opts.x;\n        this.y = opts.y;\n        this.radius = opts.radius;\n    }\n    pathSegment(ctx, bounds, opts) {\n        const { x , y , radius  } = this;\n        bounds = bounds || {\n            start: 0,\n            end: TAU\n        };\n        ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n        return !opts.bounds;\n    }\n    interpolate(point) {\n        const { x , y , radius  } = this;\n        const angle = point.angle;\n        return {\n            x: x + Math.cos(angle) * radius,\n            y: y + Math.sin(angle) * radius,\n            angle\n        };\n    }\n}\n\nfunction _getTarget(source) {\n    const { chart , fill , line  } = source;\n    if (isNumberFinite(fill)) {\n        return getLineByIndex(chart, fill);\n    }\n    if (fill === 'stack') {\n        return _buildStackLine(source);\n    }\n    if (fill === 'shape') {\n        return true;\n    }\n    const boundary = computeBoundary(source);\n    if (boundary instanceof simpleArc) {\n        return boundary;\n    }\n    return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n    const meta = chart.getDatasetMeta(index);\n    const visible = meta && chart.isDatasetVisible(index);\n    return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n    const scale = source.scale || {};\n    if (scale.getPointPositionForValue) {\n        return computeCircularBoundary(source);\n    }\n    return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n    const { scale ={} , fill  } = source;\n    const pixel = _getTargetPixel(fill, scale);\n    if (isNumberFinite(pixel)) {\n        const horizontal = scale.isHorizontal();\n        return {\n            x: horizontal ? pixel : null,\n            y: horizontal ? null : pixel\n        };\n    }\n    return null;\n}\nfunction computeCircularBoundary(source) {\n    const { scale , fill  } = source;\n    const options = scale.options;\n    const length = scale.getLabels().length;\n    const start = options.reverse ? scale.max : scale.min;\n    const value = _getTargetValue(fill, scale, start);\n    const target = [];\n    if (options.grid.circular) {\n        const center = scale.getPointPositionForValue(0, start);\n        return new simpleArc({\n            x: center.x,\n            y: center.y,\n            radius: scale.getDistanceFromCenterForValue(value)\n        });\n    }\n    for(let i = 0; i < length; ++i){\n        target.push(scale.getPointPositionForValue(i, value));\n    }\n    return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n    const target = _getTarget(source);\n    const { chart , index , line , scale , axis  } = source;\n    const lineOpts = line.options;\n    const fillOption = lineOpts.fill;\n    const color = lineOpts.backgroundColor;\n    const { above =color , below =color  } = fillOption || {};\n    const meta = chart.getDatasetMeta(index);\n    const clip = getDatasetClipArea(chart, meta);\n    if (target && line.points.length) {\n        clipArea(ctx, area);\n        doFill(ctx, {\n            line,\n            target,\n            above,\n            below,\n            area,\n            scale,\n            axis,\n            clip\n        });\n        unclipArea(ctx);\n    }\n}\nfunction doFill(ctx, cfg) {\n    const { line , target , above , below , area , scale , clip  } = cfg;\n    const property = line._loop ? 'angle' : cfg.axis;\n    ctx.save();\n    let fillColor = below;\n    if (below !== above) {\n        if (property === 'x') {\n            clipVertical(ctx, target, area.top);\n            fill(ctx, {\n                line,\n                target,\n                color: above,\n                scale,\n                property,\n                clip\n            });\n            ctx.restore();\n            ctx.save();\n            clipVertical(ctx, target, area.bottom);\n        } else if (property === 'y') {\n            clipHorizontal(ctx, target, area.left);\n            fill(ctx, {\n                line,\n                target,\n                color: below,\n                scale,\n                property,\n                clip\n            });\n            ctx.restore();\n            ctx.save();\n            clipHorizontal(ctx, target, area.right);\n            fillColor = above;\n        }\n    }\n    fill(ctx, {\n        line,\n        target,\n        color: fillColor,\n        scale,\n        property,\n        clip\n    });\n    ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n    const { segments , points  } = target;\n    let first = true;\n    let lineLoop = false;\n    ctx.beginPath();\n    for (const segment of segments){\n        const { start , end  } = segment;\n        const firstPoint = points[start];\n        const lastPoint = points[_findSegmentEnd(start, end, points)];\n        if (first) {\n            ctx.moveTo(firstPoint.x, firstPoint.y);\n            first = false;\n        } else {\n            ctx.lineTo(firstPoint.x, clipY);\n            ctx.lineTo(firstPoint.x, firstPoint.y);\n        }\n        lineLoop = !!target.pathSegment(ctx, segment, {\n            move: lineLoop\n        });\n        if (lineLoop) {\n            ctx.closePath();\n        } else {\n            ctx.lineTo(lastPoint.x, clipY);\n        }\n    }\n    ctx.lineTo(target.first().x, clipY);\n    ctx.closePath();\n    ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n    const { segments , points  } = target;\n    let first = true;\n    let lineLoop = false;\n    ctx.beginPath();\n    for (const segment of segments){\n        const { start , end  } = segment;\n        const firstPoint = points[start];\n        const lastPoint = points[_findSegmentEnd(start, end, points)];\n        if (first) {\n            ctx.moveTo(firstPoint.x, firstPoint.y);\n            first = false;\n        } else {\n            ctx.lineTo(clipX, firstPoint.y);\n            ctx.lineTo(firstPoint.x, firstPoint.y);\n        }\n        lineLoop = !!target.pathSegment(ctx, segment, {\n            move: lineLoop\n        });\n        if (lineLoop) {\n            ctx.closePath();\n        } else {\n            ctx.lineTo(clipX, lastPoint.y);\n        }\n    }\n    ctx.lineTo(clipX, target.first().y);\n    ctx.closePath();\n    ctx.clip();\n}\nfunction fill(ctx, cfg) {\n    const { line , target , property , color , scale , clip  } = cfg;\n    const segments = _segments(line, target, property);\n    for (const { source: src , target: tgt , start , end  } of segments){\n        const { style: { backgroundColor =color  } = {}  } = src;\n        const notShape = target !== true;\n        ctx.save();\n        ctx.fillStyle = backgroundColor;\n        clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n        ctx.beginPath();\n        const lineLoop = !!line.pathSegment(ctx, src);\n        let loop;\n        if (notShape) {\n            if (lineLoop) {\n                ctx.closePath();\n            } else {\n                interpolatedLineTo(ctx, target, end, property);\n            }\n            const targetLoop = !!target.pathSegment(ctx, tgt, {\n                move: lineLoop,\n                reverse: true\n            });\n            loop = lineLoop && targetLoop;\n            if (!loop) {\n                interpolatedLineTo(ctx, target, start, property);\n            }\n        }\n        ctx.closePath();\n        ctx.fill(loop ? 'evenodd' : 'nonzero');\n        ctx.restore();\n    }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n    const chartArea = scale.chart.chartArea;\n    const { property , start , end  } = bounds || {};\n    if (property === 'x' || property === 'y') {\n        let left, top, right, bottom;\n        if (property === 'x') {\n            left = start;\n            top = chartArea.top;\n            right = end;\n            bottom = chartArea.bottom;\n        } else {\n            left = chartArea.left;\n            top = start;\n            right = chartArea.right;\n            bottom = end;\n        }\n        ctx.beginPath();\n        if (clip) {\n            left = Math.max(left, clip.left);\n            right = Math.min(right, clip.right);\n            top = Math.max(top, clip.top);\n            bottom = Math.min(bottom, clip.bottom);\n        }\n        ctx.rect(left, top, right - left, bottom - top);\n        ctx.clip();\n    }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n    const interpolatedPoint = target.interpolate(point, property);\n    if (interpolatedPoint) {\n        ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n    }\n}\n\nvar index = {\n    id: 'filler',\n    afterDatasetsUpdate (chart, _args, options) {\n        const count = (chart.data.datasets || []).length;\n        const sources = [];\n        let meta, i, line, source;\n        for(i = 0; i < count; ++i){\n            meta = chart.getDatasetMeta(i);\n            line = meta.dataset;\n            source = null;\n            if (line && line.options && line instanceof LineElement) {\n                source = {\n                    visible: chart.isDatasetVisible(i),\n                    index: i,\n                    fill: _decodeFill(line, i, count),\n                    chart,\n                    axis: meta.controller.options.indexAxis,\n                    scale: meta.vScale,\n                    line\n                };\n            }\n            meta.$filler = source;\n            sources.push(source);\n        }\n        for(i = 0; i < count; ++i){\n            source = sources[i];\n            if (!source || source.fill === false) {\n                continue;\n            }\n            source.fill = _resolveTarget(sources, i, options.propagate);\n        }\n    },\n    beforeDraw (chart, _args, options) {\n        const draw = options.drawTime === 'beforeDraw';\n        const metasets = chart.getSortedVisibleDatasetMetas();\n        const area = chart.chartArea;\n        for(let i = metasets.length - 1; i >= 0; --i){\n            const source = metasets[i].$filler;\n            if (!source) {\n                continue;\n            }\n            source.line.updateControlPoints(area, source.axis);\n            if (draw && source.fill) {\n                _drawfill(chart.ctx, source, area);\n            }\n        }\n    },\n    beforeDatasetsDraw (chart, _args, options) {\n        if (options.drawTime !== 'beforeDatasetsDraw') {\n            return;\n        }\n        const metasets = chart.getSortedVisibleDatasetMetas();\n        for(let i = metasets.length - 1; i >= 0; --i){\n            const source = metasets[i].$filler;\n            if (_shouldApplyFill(source)) {\n                _drawfill(chart.ctx, source, chart.chartArea);\n            }\n        }\n    },\n    beforeDatasetDraw (chart, args, options) {\n        const source = args.meta.$filler;\n        if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n            return;\n        }\n        _drawfill(chart.ctx, source, chart.chartArea);\n    },\n    defaults: {\n        propagate: true,\n        drawTime: 'beforeDatasetDraw'\n    }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n    let { boxHeight =fontSize , boxWidth =fontSize  } = labelOpts;\n    if (labelOpts.usePointStyle) {\n        boxHeight = Math.min(boxHeight, fontSize);\n        boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n    }\n    return {\n        boxWidth,\n        boxHeight,\n        itemHeight: Math.max(fontSize, boxHeight)\n    };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n        super();\n        this._added = false;\n        this.legendHitBoxes = [];\n this._hoveredItem = null;\n        this.doughnutMode = false;\n        this.chart = config.chart;\n        this.options = config.options;\n        this.ctx = config.ctx;\n        this.legendItems = undefined;\n        this.columnSizes = undefined;\n        this.lineWidths = undefined;\n        this.maxHeight = undefined;\n        this.maxWidth = undefined;\n        this.top = undefined;\n        this.bottom = undefined;\n        this.left = undefined;\n        this.right = undefined;\n        this.height = undefined;\n        this.width = undefined;\n        this._margins = undefined;\n        this.position = undefined;\n        this.weight = undefined;\n        this.fullSize = undefined;\n    }\n    update(maxWidth, maxHeight, margins) {\n        this.maxWidth = maxWidth;\n        this.maxHeight = maxHeight;\n        this._margins = margins;\n        this.setDimensions();\n        this.buildLabels();\n        this.fit();\n    }\n    setDimensions() {\n        if (this.isHorizontal()) {\n            this.width = this.maxWidth;\n            this.left = this._margins.left;\n            this.right = this.width;\n        } else {\n            this.height = this.maxHeight;\n            this.top = this._margins.top;\n            this.bottom = this.height;\n        }\n    }\n    buildLabels() {\n        const labelOpts = this.options.labels || {};\n        let legendItems = callback(labelOpts.generateLabels, [\n            this.chart\n        ], this) || [];\n        if (labelOpts.filter) {\n            legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n        }\n        if (labelOpts.sort) {\n            legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n        }\n        if (this.options.reverse) {\n            legendItems.reverse();\n        }\n        this.legendItems = legendItems;\n    }\n    fit() {\n        const { options , ctx  } = this;\n        if (!options.display) {\n            this.width = this.height = 0;\n            return;\n        }\n        const labelOpts = options.labels;\n        const labelFont = toFont(labelOpts.font);\n        const fontSize = labelFont.size;\n        const titleHeight = this._computeTitleHeight();\n        const { boxWidth , itemHeight  } = getBoxSize(labelOpts, fontSize);\n        let width, height;\n        ctx.font = labelFont.string;\n        if (this.isHorizontal()) {\n            width = this.maxWidth;\n            height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n        } else {\n            height = this.maxHeight;\n            width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n        }\n        this.width = Math.min(width, options.maxWidth || this.maxWidth);\n        this.height = Math.min(height, options.maxHeight || this.maxHeight);\n    }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n        const { ctx , maxWidth , options: { labels: { padding  }  }  } = this;\n        const hitboxes = this.legendHitBoxes = [];\n        const lineWidths = this.lineWidths = [\n            0\n        ];\n        const lineHeight = itemHeight + padding;\n        let totalHeight = titleHeight;\n        ctx.textAlign = 'left';\n        ctx.textBaseline = 'middle';\n        let row = -1;\n        let top = -lineHeight;\n        this.legendItems.forEach((legendItem, i)=>{\n            const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n            if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n                totalHeight += lineHeight;\n                lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n                top += lineHeight;\n                row++;\n            }\n            hitboxes[i] = {\n                left: 0,\n                top,\n                row,\n                width: itemWidth,\n                height: itemHeight\n            };\n            lineWidths[lineWidths.length - 1] += itemWidth + padding;\n        });\n        return totalHeight;\n    }\n    _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n        const { ctx , maxHeight , options: { labels: { padding  }  }  } = this;\n        const hitboxes = this.legendHitBoxes = [];\n        const columnSizes = this.columnSizes = [];\n        const heightLimit = maxHeight - titleHeight;\n        let totalWidth = padding;\n        let currentColWidth = 0;\n        let currentColHeight = 0;\n        let left = 0;\n        let col = 0;\n        this.legendItems.forEach((legendItem, i)=>{\n            const { itemWidth , itemHeight  } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n            if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n                totalWidth += currentColWidth + padding;\n                columnSizes.push({\n                    width: currentColWidth,\n                    height: currentColHeight\n                });\n                left += currentColWidth + padding;\n                col++;\n                currentColWidth = currentColHeight = 0;\n            }\n            hitboxes[i] = {\n                left,\n                top: currentColHeight,\n                col,\n                width: itemWidth,\n                height: itemHeight\n            };\n            currentColWidth = Math.max(currentColWidth, itemWidth);\n            currentColHeight += itemHeight + padding;\n        });\n        totalWidth += currentColWidth;\n        columnSizes.push({\n            width: currentColWidth,\n            height: currentColHeight\n        });\n        return totalWidth;\n    }\n    adjustHitBoxes() {\n        if (!this.options.display) {\n            return;\n        }\n        const titleHeight = this._computeTitleHeight();\n        const { legendHitBoxes: hitboxes , options: { align , labels: { padding  } , rtl  }  } = this;\n        const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n        if (this.isHorizontal()) {\n            let row = 0;\n            let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n            for (const hitbox of hitboxes){\n                if (row !== hitbox.row) {\n                    row = hitbox.row;\n                    left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n                }\n                hitbox.top += this.top + titleHeight + padding;\n                hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n                left += hitbox.width + padding;\n            }\n        } else {\n            let col = 0;\n            let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n            for (const hitbox of hitboxes){\n                if (hitbox.col !== col) {\n                    col = hitbox.col;\n                    top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n                }\n                hitbox.top = top;\n                hitbox.left += this.left + padding;\n                hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n                top += hitbox.height + padding;\n            }\n        }\n    }\n    isHorizontal() {\n        return this.options.position === 'top' || this.options.position === 'bottom';\n    }\n    draw() {\n        if (this.options.display) {\n            const ctx = this.ctx;\n            clipArea(ctx, this);\n            this._draw();\n            unclipArea(ctx);\n        }\n    }\n _draw() {\n        const { options: opts , columnSizes , lineWidths , ctx  } = this;\n        const { align , labels: labelOpts  } = opts;\n        const defaultColor = defaults.color;\n        const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n        const labelFont = toFont(labelOpts.font);\n        const { padding  } = labelOpts;\n        const fontSize = labelFont.size;\n        const halfFontSize = fontSize / 2;\n        let cursor;\n        this.drawTitle();\n        ctx.textAlign = rtlHelper.textAlign('left');\n        ctx.textBaseline = 'middle';\n        ctx.lineWidth = 0.5;\n        ctx.font = labelFont.string;\n        const { boxWidth , boxHeight , itemHeight  } = getBoxSize(labelOpts, fontSize);\n        const drawLegendBox = function(x, y, legendItem) {\n            if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n                return;\n            }\n            ctx.save();\n            const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n            ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n            ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n            ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n            ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n            ctx.lineWidth = lineWidth;\n            ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n            ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n            if (labelOpts.usePointStyle) {\n                const drawOptions = {\n                    radius: boxHeight * Math.SQRT2 / 2,\n                    pointStyle: legendItem.pointStyle,\n                    rotation: legendItem.rotation,\n                    borderWidth: lineWidth\n                };\n                const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n                const centerY = y + halfFontSize;\n                drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n            } else {\n                const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n                const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n                const borderRadius = toTRBLCorners(legendItem.borderRadius);\n                ctx.beginPath();\n                if (Object.values(borderRadius).some((v)=>v !== 0)) {\n                    addRoundedRectPath(ctx, {\n                        x: xBoxLeft,\n                        y: yBoxTop,\n                        w: boxWidth,\n                        h: boxHeight,\n                        radius: borderRadius\n                    });\n                } else {\n                    ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n                }\n                ctx.fill();\n                if (lineWidth !== 0) {\n                    ctx.stroke();\n                }\n            }\n            ctx.restore();\n        };\n        const fillText = function(x, y, legendItem) {\n            renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n                strikethrough: legendItem.hidden,\n                textAlign: rtlHelper.textAlign(legendItem.textAlign)\n            });\n        };\n        const isHorizontal = this.isHorizontal();\n        const titleHeight = this._computeTitleHeight();\n        if (isHorizontal) {\n            cursor = {\n                x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n                y: this.top + padding + titleHeight,\n                line: 0\n            };\n        } else {\n            cursor = {\n                x: this.left + padding,\n                y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n                line: 0\n            };\n        }\n        overrideTextDirection(this.ctx, opts.textDirection);\n        const lineHeight = itemHeight + padding;\n        this.legendItems.forEach((legendItem, i)=>{\n            ctx.strokeStyle = legendItem.fontColor;\n            ctx.fillStyle = legendItem.fontColor;\n            const textWidth = ctx.measureText(legendItem.text).width;\n            const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n            const width = boxWidth + halfFontSize + textWidth;\n            let x = cursor.x;\n            let y = cursor.y;\n            rtlHelper.setWidth(this.width);\n            if (isHorizontal) {\n                if (i > 0 && x + width + padding > this.right) {\n                    y = cursor.y += lineHeight;\n                    cursor.line++;\n                    x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n                }\n            } else if (i > 0 && y + lineHeight > this.bottom) {\n                x = cursor.x = x + columnSizes[cursor.line].width + padding;\n                cursor.line++;\n                y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n            }\n            const realX = rtlHelper.x(x);\n            drawLegendBox(realX, y, legendItem);\n            x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n            fillText(rtlHelper.x(x), y, legendItem);\n            if (isHorizontal) {\n                cursor.x += width + padding;\n            } else if (typeof legendItem.text !== 'string') {\n                const fontLineHeight = labelFont.lineHeight;\n                cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n            } else {\n                cursor.y += lineHeight;\n            }\n        });\n        restoreTextDirection(this.ctx, opts.textDirection);\n    }\n drawTitle() {\n        const opts = this.options;\n        const titleOpts = opts.title;\n        const titleFont = toFont(titleOpts.font);\n        const titlePadding = toPadding(titleOpts.padding);\n        if (!titleOpts.display) {\n            return;\n        }\n        const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n        const ctx = this.ctx;\n        const position = titleOpts.position;\n        const halfFontSize = titleFont.size / 2;\n        const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n        let y;\n        let left = this.left;\n        let maxWidth = this.width;\n        if (this.isHorizontal()) {\n            maxWidth = Math.max(...this.lineWidths);\n            y = this.top + topPaddingPlusHalfFontSize;\n            left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n        } else {\n            const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n            y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n        }\n        const x = _alignStartEnd(position, left, left + maxWidth);\n        ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n        ctx.textBaseline = 'middle';\n        ctx.strokeStyle = titleOpts.color;\n        ctx.fillStyle = titleOpts.color;\n        ctx.font = titleFont.string;\n        renderText(ctx, titleOpts.text, x, y, titleFont);\n    }\n _computeTitleHeight() {\n        const titleOpts = this.options.title;\n        const titleFont = toFont(titleOpts.font);\n        const titlePadding = toPadding(titleOpts.padding);\n        return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n    }\n _getLegendItemAt(x, y) {\n        let i, hitBox, lh;\n        if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n            lh = this.legendHitBoxes;\n            for(i = 0; i < lh.length; ++i){\n                hitBox = lh[i];\n                if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n                    return this.legendItems[i];\n                }\n            }\n        }\n        return null;\n    }\n handleEvent(e) {\n        const opts = this.options;\n        if (!isListened(e.type, opts)) {\n            return;\n        }\n        const hoveredItem = this._getLegendItemAt(e.x, e.y);\n        if (e.type === 'mousemove' || e.type === 'mouseout') {\n            const previous = this._hoveredItem;\n            const sameItem = itemsEqual(previous, hoveredItem);\n            if (previous && !sameItem) {\n                callback(opts.onLeave, [\n                    e,\n                    previous,\n                    this\n                ], this);\n            }\n            this._hoveredItem = hoveredItem;\n            if (hoveredItem && !sameItem) {\n                callback(opts.onHover, [\n                    e,\n                    hoveredItem,\n                    this\n                ], this);\n            }\n        } else if (hoveredItem) {\n            callback(opts.onClick, [\n                e,\n                hoveredItem,\n                this\n            ], this);\n        }\n    }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n    const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n    const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n    return {\n        itemWidth,\n        itemHeight\n    };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n    let legendItemText = legendItem.text;\n    if (legendItemText && typeof legendItemText !== 'string') {\n        legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n    }\n    return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n    let itemHeight = _itemHeight;\n    if (typeof legendItem.text !== 'string') {\n        itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n    }\n    return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n    const labelHeight = legendItem.text ? legendItem.text.length : 0;\n    return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n    if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n        return true;\n    }\n    if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n        return true;\n    }\n    return false;\n}\nvar plugin_legend = {\n    id: 'legend',\n _element: Legend,\n    start (chart, _args, options) {\n        const legend = chart.legend = new Legend({\n            ctx: chart.ctx,\n            options,\n            chart\n        });\n        layouts.configure(chart, legend, options);\n        layouts.addBox(chart, legend);\n    },\n    stop (chart) {\n        layouts.removeBox(chart, chart.legend);\n        delete chart.legend;\n    },\n    beforeUpdate (chart, _args, options) {\n        const legend = chart.legend;\n        layouts.configure(chart, legend, options);\n        legend.options = options;\n    },\n    afterUpdate (chart) {\n        const legend = chart.legend;\n        legend.buildLabels();\n        legend.adjustHitBoxes();\n    },\n    afterEvent (chart, args) {\n        if (!args.replay) {\n            chart.legend.handleEvent(args.event);\n        }\n    },\n    defaults: {\n        display: true,\n        position: 'top',\n        align: 'center',\n        fullSize: true,\n        reverse: false,\n        weight: 1000,\n        onClick (e, legendItem, legend) {\n            const index = legendItem.datasetIndex;\n            const ci = legend.chart;\n            if (ci.isDatasetVisible(index)) {\n                ci.hide(index);\n                legendItem.hidden = true;\n            } else {\n                ci.show(index);\n                legendItem.hidden = false;\n            }\n        },\n        onHover: null,\n        onLeave: null,\n        labels: {\n            color: (ctx)=>ctx.chart.options.color,\n            boxWidth: 40,\n            padding: 10,\n            generateLabels (chart) {\n                const datasets = chart.data.datasets;\n                const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius  }  } = chart.legend.options;\n                return chart._getSortedDatasetMetas().map((meta)=>{\n                    const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n                    const borderWidth = toPadding(style.borderWidth);\n                    return {\n                        text: datasets[meta.index].label,\n                        fillStyle: style.backgroundColor,\n                        fontColor: color,\n                        hidden: !meta.visible,\n                        lineCap: style.borderCapStyle,\n                        lineDash: style.borderDash,\n                        lineDashOffset: style.borderDashOffset,\n                        lineJoin: style.borderJoinStyle,\n                        lineWidth: (borderWidth.width + borderWidth.height) / 4,\n                        strokeStyle: style.borderColor,\n                        pointStyle: pointStyle || style.pointStyle,\n                        rotation: style.rotation,\n                        textAlign: textAlign || style.textAlign,\n                        borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n                        datasetIndex: meta.index\n                    };\n                }, this);\n            }\n        },\n        title: {\n            color: (ctx)=>ctx.chart.options.color,\n            display: false,\n            position: 'center',\n            text: ''\n        }\n    },\n    descriptors: {\n        _scriptable: (name)=>!name.startsWith('on'),\n        labels: {\n            _scriptable: (name)=>![\n                    'generateLabels',\n                    'filter',\n                    'sort'\n                ].includes(name)\n        }\n    }\n};\n\nclass Title extends Element {\n constructor(config){\n        super();\n        this.chart = config.chart;\n        this.options = config.options;\n        this.ctx = config.ctx;\n        this._padding = undefined;\n        this.top = undefined;\n        this.bottom = undefined;\n        this.left = undefined;\n        this.right = undefined;\n        this.width = undefined;\n        this.height = undefined;\n        this.position = undefined;\n        this.weight = undefined;\n        this.fullSize = undefined;\n    }\n    update(maxWidth, maxHeight) {\n        const opts = this.options;\n        this.left = 0;\n        this.top = 0;\n        if (!opts.display) {\n            this.width = this.height = this.right = this.bottom = 0;\n            return;\n        }\n        this.width = this.right = maxWidth;\n        this.height = this.bottom = maxHeight;\n        const lineCount = isArray(opts.text) ? opts.text.length : 1;\n        this._padding = toPadding(opts.padding);\n        const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n        if (this.isHorizontal()) {\n            this.height = textSize;\n        } else {\n            this.width = textSize;\n        }\n    }\n    isHorizontal() {\n        const pos = this.options.position;\n        return pos === 'top' || pos === 'bottom';\n    }\n    _drawArgs(offset) {\n        const { top , left , bottom , right , options  } = this;\n        const align = options.align;\n        let rotation = 0;\n        let maxWidth, titleX, titleY;\n        if (this.isHorizontal()) {\n            titleX = _alignStartEnd(align, left, right);\n            titleY = top + offset;\n            maxWidth = right - left;\n        } else {\n            if (options.position === 'left') {\n                titleX = left + offset;\n                titleY = _alignStartEnd(align, bottom, top);\n                rotation = PI * -0.5;\n            } else {\n                titleX = right - offset;\n                titleY = _alignStartEnd(align, top, bottom);\n                rotation = PI * 0.5;\n            }\n            maxWidth = bottom - top;\n        }\n        return {\n            titleX,\n            titleY,\n            maxWidth,\n            rotation\n        };\n    }\n    draw() {\n        const ctx = this.ctx;\n        const opts = this.options;\n        if (!opts.display) {\n            return;\n        }\n        const fontOpts = toFont(opts.font);\n        const lineHeight = fontOpts.lineHeight;\n        const offset = lineHeight / 2 + this._padding.top;\n        const { titleX , titleY , maxWidth , rotation  } = this._drawArgs(offset);\n        renderText(ctx, opts.text, 0, 0, fontOpts, {\n            color: opts.color,\n            maxWidth,\n            rotation,\n            textAlign: _toLeftRightCenter(opts.align),\n            textBaseline: 'middle',\n            translation: [\n                titleX,\n                titleY\n            ]\n        });\n    }\n}\nfunction createTitle(chart, titleOpts) {\n    const title = new Title({\n        ctx: chart.ctx,\n        options: titleOpts,\n        chart\n    });\n    layouts.configure(chart, title, titleOpts);\n    layouts.addBox(chart, title);\n    chart.titleBlock = title;\n}\nvar plugin_title = {\n    id: 'title',\n _element: Title,\n    start (chart, _args, options) {\n        createTitle(chart, options);\n    },\n    stop (chart) {\n        const titleBlock = chart.titleBlock;\n        layouts.removeBox(chart, titleBlock);\n        delete chart.titleBlock;\n    },\n    beforeUpdate (chart, _args, options) {\n        const title = chart.titleBlock;\n        layouts.configure(chart, title, options);\n        title.options = options;\n    },\n    defaults: {\n        align: 'center',\n        display: false,\n        font: {\n            weight: 'bold'\n        },\n        fullSize: true,\n        padding: 10,\n        position: 'top',\n        text: '',\n        weight: 2000\n    },\n    defaultRoutes: {\n        color: 'color'\n    },\n    descriptors: {\n        _scriptable: true,\n        _indexable: false\n    }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n    id: 'subtitle',\n    start (chart, _args, options) {\n        const title = new Title({\n            ctx: chart.ctx,\n            options,\n            chart\n        });\n        layouts.configure(chart, title, options);\n        layouts.addBox(chart, title);\n        map.set(chart, title);\n    },\n    stop (chart) {\n        layouts.removeBox(chart, map.get(chart));\n        map.delete(chart);\n    },\n    beforeUpdate (chart, _args, options) {\n        const title = map.get(chart);\n        layouts.configure(chart, title, options);\n        title.options = options;\n    },\n    defaults: {\n        align: 'center',\n        display: false,\n        font: {\n            weight: 'normal'\n        },\n        fullSize: true,\n        padding: 0,\n        position: 'top',\n        text: '',\n        weight: 1500\n    },\n    defaultRoutes: {\n        color: 'color'\n    },\n    descriptors: {\n        _scriptable: true,\n        _indexable: false\n    }\n};\n\nconst positioners = {\n average (items) {\n        if (!items.length) {\n            return false;\n        }\n        let i, len;\n        let xSet = new Set();\n        let y = 0;\n        let count = 0;\n        for(i = 0, len = items.length; i < len; ++i){\n            const el = items[i].element;\n            if (el && el.hasValue()) {\n                const pos = el.tooltipPosition();\n                xSet.add(pos.x);\n                y += pos.y;\n                ++count;\n            }\n        }\n        if (count === 0 || xSet.size === 0) {\n            return false;\n        }\n        const xAverage = [\n            ...xSet\n        ].reduce((a, b)=>a + b) / xSet.size;\n        return {\n            x: xAverage,\n            y: y / count\n        };\n    },\n nearest (items, eventPosition) {\n        if (!items.length) {\n            return false;\n        }\n        let x = eventPosition.x;\n        let y = eventPosition.y;\n        let minDistance = Number.POSITIVE_INFINITY;\n        let i, len, nearestElement;\n        for(i = 0, len = items.length; i < len; ++i){\n            const el = items[i].element;\n            if (el && el.hasValue()) {\n                const center = el.getCenterPoint();\n                const d = distanceBetweenPoints(eventPosition, center);\n                if (d < minDistance) {\n                    minDistance = d;\n                    nearestElement = el;\n                }\n            }\n        }\n        if (nearestElement) {\n            const tp = nearestElement.tooltipPosition();\n            x = tp.x;\n            y = tp.y;\n        }\n        return {\n            x,\n            y\n        };\n    }\n};\nfunction pushOrConcat(base, toPush) {\n    if (toPush) {\n        if (isArray(toPush)) {\n            Array.prototype.push.apply(base, toPush);\n        } else {\n            base.push(toPush);\n        }\n    }\n    return base;\n}\n function splitNewlines(str) {\n    if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n        return str.split('\\n');\n    }\n    return str;\n}\n function createTooltipItem(chart, item) {\n    const { element , datasetIndex , index  } = item;\n    const controller = chart.getDatasetMeta(datasetIndex).controller;\n    const { label , value  } = controller.getLabelAndValue(index);\n    return {\n        chart,\n        label,\n        parsed: controller.getParsed(index),\n        raw: chart.data.datasets[datasetIndex].data[index],\n        formattedValue: value,\n        dataset: controller.getDataset(),\n        dataIndex: index,\n        datasetIndex,\n        element\n    };\n}\n function getTooltipSize(tooltip, options) {\n    const ctx = tooltip.chart.ctx;\n    const { body , footer , title  } = tooltip;\n    const { boxWidth , boxHeight  } = options;\n    const bodyFont = toFont(options.bodyFont);\n    const titleFont = toFont(options.titleFont);\n    const footerFont = toFont(options.footerFont);\n    const titleLineCount = title.length;\n    const footerLineCount = footer.length;\n    const bodyLineItemCount = body.length;\n    const padding = toPadding(options.padding);\n    let height = padding.height;\n    let width = 0;\n    let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n    combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n    if (titleLineCount) {\n        height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n    }\n    if (combinedBodyLength) {\n        const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n        height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n    }\n    if (footerLineCount) {\n        height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n    }\n    let widthPadding = 0;\n    const maxLineWidth = function(line) {\n        width = Math.max(width, ctx.measureText(line).width + widthPadding);\n    };\n    ctx.save();\n    ctx.font = titleFont.string;\n    each(tooltip.title, maxLineWidth);\n    ctx.font = bodyFont.string;\n    each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n    widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n    each(body, (bodyItem)=>{\n        each(bodyItem.before, maxLineWidth);\n        each(bodyItem.lines, maxLineWidth);\n        each(bodyItem.after, maxLineWidth);\n    });\n    widthPadding = 0;\n    ctx.font = footerFont.string;\n    each(tooltip.footer, maxLineWidth);\n    ctx.restore();\n    width += padding.width;\n    return {\n        width,\n        height\n    };\n}\nfunction determineYAlign(chart, size) {\n    const { y , height  } = size;\n    if (y < height / 2) {\n        return 'top';\n    } else if (y > chart.height - height / 2) {\n        return 'bottom';\n    }\n    return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n    const { x , width  } = size;\n    const caret = options.caretSize + options.caretPadding;\n    if (xAlign === 'left' && x + width + caret > chart.width) {\n        return true;\n    }\n    if (xAlign === 'right' && x - width - caret < 0) {\n        return true;\n    }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n    const { x , width  } = size;\n    const { width: chartWidth , chartArea: { left , right  }  } = chart;\n    let xAlign = 'center';\n    if (yAlign === 'center') {\n        xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n    } else if (x <= width / 2) {\n        xAlign = 'left';\n    } else if (x >= chartWidth - width / 2) {\n        xAlign = 'right';\n    }\n    if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n        xAlign = 'center';\n    }\n    return xAlign;\n}\n function determineAlignment(chart, options, size) {\n    const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n    return {\n        xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n        yAlign\n    };\n}\nfunction alignX(size, xAlign) {\n    let { x , width  } = size;\n    if (xAlign === 'right') {\n        x -= width;\n    } else if (xAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n    let { y , height  } = size;\n    if (yAlign === 'top') {\n        y += paddingAndSize;\n    } else if (yAlign === 'bottom') {\n        y -= height + paddingAndSize;\n    } else {\n        y -= height / 2;\n    }\n    return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n    const { caretSize , caretPadding , cornerRadius  } = options;\n    const { xAlign , yAlign  } = alignment;\n    const paddingAndSize = caretSize + caretPadding;\n    const { topLeft , topRight , bottomLeft , bottomRight  } = toTRBLCorners(cornerRadius);\n    let x = alignX(size, xAlign);\n    const y = alignY(size, yAlign, paddingAndSize);\n    if (yAlign === 'center') {\n        if (xAlign === 'left') {\n            x += paddingAndSize;\n        } else if (xAlign === 'right') {\n            x -= paddingAndSize;\n        }\n    } else if (xAlign === 'left') {\n        x -= Math.max(topLeft, bottomLeft) + caretSize;\n    } else if (xAlign === 'right') {\n        x += Math.max(topRight, bottomRight) + caretSize;\n    }\n    return {\n        x: _limitValue(x, 0, chart.width - size.width),\n        y: _limitValue(y, 0, chart.height - size.height)\n    };\n}\nfunction getAlignedX(tooltip, align, options) {\n    const padding = toPadding(options.padding);\n    return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n    return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n    return createContext(parent, {\n        tooltip,\n        tooltipItems,\n        type: 'tooltip'\n    });\n}\nfunction overrideCallbacks(callbacks, context) {\n    const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n    return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n    beforeTitle: noop,\n    title (tooltipItems) {\n        if (tooltipItems.length > 0) {\n            const item = tooltipItems[0];\n            const labels = item.chart.data.labels;\n            const labelCount = labels ? labels.length : 0;\n            if (this && this.options && this.options.mode === 'dataset') {\n                return item.dataset.label || '';\n            } else if (item.label) {\n                return item.label;\n            } else if (labelCount > 0 && item.dataIndex < labelCount) {\n                return labels[item.dataIndex];\n            }\n        }\n        return '';\n    },\n    afterTitle: noop,\n    beforeBody: noop,\n    beforeLabel: noop,\n    label (tooltipItem) {\n        if (this && this.options && this.options.mode === 'dataset') {\n            return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n        }\n        let label = tooltipItem.dataset.label || '';\n        if (label) {\n            label += ': ';\n        }\n        const value = tooltipItem.formattedValue;\n        if (!isNullOrUndef(value)) {\n            label += value;\n        }\n        return label;\n    },\n    labelColor (tooltipItem) {\n        const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n        const options = meta.controller.getStyle(tooltipItem.dataIndex);\n        return {\n            borderColor: options.borderColor,\n            backgroundColor: options.backgroundColor,\n            borderWidth: options.borderWidth,\n            borderDash: options.borderDash,\n            borderDashOffset: options.borderDashOffset,\n            borderRadius: 0\n        };\n    },\n    labelTextColor () {\n        return this.options.bodyColor;\n    },\n    labelPointStyle (tooltipItem) {\n        const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n        const options = meta.controller.getStyle(tooltipItem.dataIndex);\n        return {\n            pointStyle: options.pointStyle,\n            rotation: options.rotation\n        };\n    },\n    afterLabel: noop,\n    afterBody: noop,\n    beforeFooter: noop,\n    footer: noop,\n    afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n    const result = callbacks[name].call(ctx, arg);\n    if (typeof result === 'undefined') {\n        return defaultCallbacks[name].call(ctx, arg);\n    }\n    return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n    constructor(config){\n        super();\n        this.opacity = 0;\n        this._active = [];\n        this._eventPosition = undefined;\n        this._size = undefined;\n        this._cachedAnimations = undefined;\n        this._tooltipItems = [];\n        this.$animations = undefined;\n        this.$context = undefined;\n        this.chart = config.chart;\n        this.options = config.options;\n        this.dataPoints = undefined;\n        this.title = undefined;\n        this.beforeBody = undefined;\n        this.body = undefined;\n        this.afterBody = undefined;\n        this.footer = undefined;\n        this.xAlign = undefined;\n        this.yAlign = undefined;\n        this.x = undefined;\n        this.y = undefined;\n        this.height = undefined;\n        this.width = undefined;\n        this.caretX = undefined;\n        this.caretY = undefined;\n        this.labelColors = undefined;\n        this.labelPointStyles = undefined;\n        this.labelTextColors = undefined;\n    }\n    initialize(options) {\n        this.options = options;\n        this._cachedAnimations = undefined;\n        this.$context = undefined;\n    }\n _resolveAnimations() {\n        const cached = this._cachedAnimations;\n        if (cached) {\n            return cached;\n        }\n        const chart = this.chart;\n        const options = this.options.setContext(this.getContext());\n        const opts = options.enabled && chart.options.animation && options.animations;\n        const animations = new Animations(this.chart, opts);\n        if (opts._cacheable) {\n            this._cachedAnimations = Object.freeze(animations);\n        }\n        return animations;\n    }\n getContext() {\n        return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n    }\n    getTitle(context, options) {\n        const { callbacks  } = options;\n        const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n        const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n        const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n        let lines = [];\n        lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n        lines = pushOrConcat(lines, splitNewlines(title));\n        lines = pushOrConcat(lines, splitNewlines(afterTitle));\n        return lines;\n    }\n    getBeforeBody(tooltipItems, options) {\n        return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n    }\n    getBody(tooltipItems, options) {\n        const { callbacks  } = options;\n        const bodyItems = [];\n        each(tooltipItems, (context)=>{\n            const bodyItem = {\n                before: [],\n                lines: [],\n                after: []\n            };\n            const scoped = overrideCallbacks(callbacks, context);\n            pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n            pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n            pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n            bodyItems.push(bodyItem);\n        });\n        return bodyItems;\n    }\n    getAfterBody(tooltipItems, options) {\n        return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n    }\n    getFooter(tooltipItems, options) {\n        const { callbacks  } = options;\n        const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n        const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n        const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n        let lines = [];\n        lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n        lines = pushOrConcat(lines, splitNewlines(footer));\n        lines = pushOrConcat(lines, splitNewlines(afterFooter));\n        return lines;\n    }\n _createItems(options) {\n        const active = this._active;\n        const data = this.chart.data;\n        const labelColors = [];\n        const labelPointStyles = [];\n        const labelTextColors = [];\n        let tooltipItems = [];\n        let i, len;\n        for(i = 0, len = active.length; i < len; ++i){\n            tooltipItems.push(createTooltipItem(this.chart, active[i]));\n        }\n        if (options.filter) {\n            tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n        }\n        if (options.itemSort) {\n            tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n        }\n        each(tooltipItems, (context)=>{\n            const scoped = overrideCallbacks(options.callbacks, context);\n            labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n            labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n            labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n        });\n        this.labelColors = labelColors;\n        this.labelPointStyles = labelPointStyles;\n        this.labelTextColors = labelTextColors;\n        this.dataPoints = tooltipItems;\n        return tooltipItems;\n    }\n    update(changed, replay) {\n        const options = this.options.setContext(this.getContext());\n        const active = this._active;\n        let properties;\n        let tooltipItems = [];\n        if (!active.length) {\n            if (this.opacity !== 0) {\n                properties = {\n                    opacity: 0\n                };\n            }\n        } else {\n            const position = positioners[options.position].call(this, active, this._eventPosition);\n            tooltipItems = this._createItems(options);\n            this.title = this.getTitle(tooltipItems, options);\n            this.beforeBody = this.getBeforeBody(tooltipItems, options);\n            this.body = this.getBody(tooltipItems, options);\n            this.afterBody = this.getAfterBody(tooltipItems, options);\n            this.footer = this.getFooter(tooltipItems, options);\n            const size = this._size = getTooltipSize(this, options);\n            const positionAndSize = Object.assign({}, position, size);\n            const alignment = determineAlignment(this.chart, options, positionAndSize);\n            const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n            this.xAlign = alignment.xAlign;\n            this.yAlign = alignment.yAlign;\n            properties = {\n                opacity: 1,\n                x: backgroundPoint.x,\n                y: backgroundPoint.y,\n                width: size.width,\n                height: size.height,\n                caretX: position.x,\n                caretY: position.y\n            };\n        }\n        this._tooltipItems = tooltipItems;\n        this.$context = undefined;\n        if (properties) {\n            this._resolveAnimations().update(this, properties);\n        }\n        if (changed && options.external) {\n            options.external.call(this, {\n                chart: this.chart,\n                tooltip: this,\n                replay\n            });\n        }\n    }\n    drawCaret(tooltipPoint, ctx, size, options) {\n        const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n        ctx.lineTo(caretPosition.x1, caretPosition.y1);\n        ctx.lineTo(caretPosition.x2, caretPosition.y2);\n        ctx.lineTo(caretPosition.x3, caretPosition.y3);\n    }\n    getCaretPosition(tooltipPoint, size, options) {\n        const { xAlign , yAlign  } = this;\n        const { caretSize , cornerRadius  } = options;\n        const { topLeft , topRight , bottomLeft , bottomRight  } = toTRBLCorners(cornerRadius);\n        const { x: ptX , y: ptY  } = tooltipPoint;\n        const { width , height  } = size;\n        let x1, x2, x3, y1, y2, y3;\n        if (yAlign === 'center') {\n            y2 = ptY + height / 2;\n            if (xAlign === 'left') {\n                x1 = ptX;\n                x2 = x1 - caretSize;\n                y1 = y2 + caretSize;\n                y3 = y2 - caretSize;\n            } else {\n                x1 = ptX + width;\n                x2 = x1 + caretSize;\n                y1 = y2 - caretSize;\n                y3 = y2 + caretSize;\n            }\n            x3 = x1;\n        } else {\n            if (xAlign === 'left') {\n                x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n            } else if (xAlign === 'right') {\n                x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n            } else {\n                x2 = this.caretX;\n            }\n            if (yAlign === 'top') {\n                y1 = ptY;\n                y2 = y1 - caretSize;\n                x1 = x2 - caretSize;\n                x3 = x2 + caretSize;\n            } else {\n                y1 = ptY + height;\n                y2 = y1 + caretSize;\n                x1 = x2 + caretSize;\n                x3 = x2 - caretSize;\n            }\n            y3 = y1;\n        }\n        return {\n            x1,\n            x2,\n            x3,\n            y1,\n            y2,\n            y3\n        };\n    }\n    drawTitle(pt, ctx, options) {\n        const title = this.title;\n        const length = title.length;\n        let titleFont, titleSpacing, i;\n        if (length) {\n            const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n            pt.x = getAlignedX(this, options.titleAlign, options);\n            ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n            ctx.textBaseline = 'middle';\n            titleFont = toFont(options.titleFont);\n            titleSpacing = options.titleSpacing;\n            ctx.fillStyle = options.titleColor;\n            ctx.font = titleFont.string;\n            for(i = 0; i < length; ++i){\n                ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n                pt.y += titleFont.lineHeight + titleSpacing;\n                if (i + 1 === length) {\n                    pt.y += options.titleMarginBottom - titleSpacing;\n                }\n            }\n        }\n    }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n        const labelColor = this.labelColors[i];\n        const labelPointStyle = this.labelPointStyles[i];\n        const { boxHeight , boxWidth  } = options;\n        const bodyFont = toFont(options.bodyFont);\n        const colorX = getAlignedX(this, 'left', options);\n        const rtlColorX = rtlHelper.x(colorX);\n        const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n        const colorY = pt.y + yOffSet;\n        if (options.usePointStyle) {\n            const drawOptions = {\n                radius: Math.min(boxWidth, boxHeight) / 2,\n                pointStyle: labelPointStyle.pointStyle,\n                rotation: labelPointStyle.rotation,\n                borderWidth: 1\n            };\n            const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n            const centerY = colorY + boxHeight / 2;\n            ctx.strokeStyle = options.multiKeyBackground;\n            ctx.fillStyle = options.multiKeyBackground;\n            drawPoint(ctx, drawOptions, centerX, centerY);\n            ctx.strokeStyle = labelColor.borderColor;\n            ctx.fillStyle = labelColor.backgroundColor;\n            drawPoint(ctx, drawOptions, centerX, centerY);\n        } else {\n            ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n            ctx.strokeStyle = labelColor.borderColor;\n            ctx.setLineDash(labelColor.borderDash || []);\n            ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n            const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n            const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n            const borderRadius = toTRBLCorners(labelColor.borderRadius);\n            if (Object.values(borderRadius).some((v)=>v !== 0)) {\n                ctx.beginPath();\n                ctx.fillStyle = options.multiKeyBackground;\n                addRoundedRectPath(ctx, {\n                    x: outerX,\n                    y: colorY,\n                    w: boxWidth,\n                    h: boxHeight,\n                    radius: borderRadius\n                });\n                ctx.fill();\n                ctx.stroke();\n                ctx.fillStyle = labelColor.backgroundColor;\n                ctx.beginPath();\n                addRoundedRectPath(ctx, {\n                    x: innerX,\n                    y: colorY + 1,\n                    w: boxWidth - 2,\n                    h: boxHeight - 2,\n                    radius: borderRadius\n                });\n                ctx.fill();\n            } else {\n                ctx.fillStyle = options.multiKeyBackground;\n                ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n                ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n                ctx.fillStyle = labelColor.backgroundColor;\n                ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n            }\n        }\n        ctx.fillStyle = this.labelTextColors[i];\n    }\n    drawBody(pt, ctx, options) {\n        const { body  } = this;\n        const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding  } = options;\n        const bodyFont = toFont(options.bodyFont);\n        let bodyLineHeight = bodyFont.lineHeight;\n        let xLinePadding = 0;\n        const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n        const fillLineOfText = function(line) {\n            ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n            pt.y += bodyLineHeight + bodySpacing;\n        };\n        const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n        let bodyItem, textColor, lines, i, j, ilen, jlen;\n        ctx.textAlign = bodyAlign;\n        ctx.textBaseline = 'middle';\n        ctx.font = bodyFont.string;\n        pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n        ctx.fillStyle = options.bodyColor;\n        each(this.beforeBody, fillLineOfText);\n        xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n        for(i = 0, ilen = body.length; i < ilen; ++i){\n            bodyItem = body[i];\n            textColor = this.labelTextColors[i];\n            ctx.fillStyle = textColor;\n            each(bodyItem.before, fillLineOfText);\n            lines = bodyItem.lines;\n            if (displayColors && lines.length) {\n                this._drawColorBox(ctx, pt, i, rtlHelper, options);\n                bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n            }\n            for(j = 0, jlen = lines.length; j < jlen; ++j){\n                fillLineOfText(lines[j]);\n                bodyLineHeight = bodyFont.lineHeight;\n            }\n            each(bodyItem.after, fillLineOfText);\n        }\n        xLinePadding = 0;\n        bodyLineHeight = bodyFont.lineHeight;\n        each(this.afterBody, fillLineOfText);\n        pt.y -= bodySpacing;\n    }\n    drawFooter(pt, ctx, options) {\n        const footer = this.footer;\n        const length = footer.length;\n        let footerFont, i;\n        if (length) {\n            const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n            pt.x = getAlignedX(this, options.footerAlign, options);\n            pt.y += options.footerMarginTop;\n            ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n            ctx.textBaseline = 'middle';\n            footerFont = toFont(options.footerFont);\n            ctx.fillStyle = options.footerColor;\n            ctx.font = footerFont.string;\n            for(i = 0; i < length; ++i){\n                ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n                pt.y += footerFont.lineHeight + options.footerSpacing;\n            }\n        }\n    }\n    drawBackground(pt, ctx, tooltipSize, options) {\n        const { xAlign , yAlign  } = this;\n        const { x , y  } = pt;\n        const { width , height  } = tooltipSize;\n        const { topLeft , topRight , bottomLeft , bottomRight  } = toTRBLCorners(options.cornerRadius);\n        ctx.fillStyle = options.backgroundColor;\n        ctx.strokeStyle = options.borderColor;\n        ctx.lineWidth = options.borderWidth;\n        ctx.beginPath();\n        ctx.moveTo(x + topLeft, y);\n        if (yAlign === 'top') {\n            this.drawCaret(pt, ctx, tooltipSize, options);\n        }\n        ctx.lineTo(x + width - topRight, y);\n        ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n        if (yAlign === 'center' && xAlign === 'right') {\n            this.drawCaret(pt, ctx, tooltipSize, options);\n        }\n        ctx.lineTo(x + width, y + height - bottomRight);\n        ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n        if (yAlign === 'bottom') {\n            this.drawCaret(pt, ctx, tooltipSize, options);\n        }\n        ctx.lineTo(x + bottomLeft, y + height);\n        ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n        if (yAlign === 'center' && xAlign === 'left') {\n            this.drawCaret(pt, ctx, tooltipSize, options);\n        }\n        ctx.lineTo(x, y + topLeft);\n        ctx.quadraticCurveTo(x, y, x + topLeft, y);\n        ctx.closePath();\n        ctx.fill();\n        if (options.borderWidth > 0) {\n            ctx.stroke();\n        }\n    }\n _updateAnimationTarget(options) {\n        const chart = this.chart;\n        const anims = this.$animations;\n        const animX = anims && anims.x;\n        const animY = anims && anims.y;\n        if (animX || animY) {\n            const position = positioners[options.position].call(this, this._active, this._eventPosition);\n            if (!position) {\n                return;\n            }\n            const size = this._size = getTooltipSize(this, options);\n            const positionAndSize = Object.assign({}, position, this._size);\n            const alignment = determineAlignment(chart, options, positionAndSize);\n            const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n            if (animX._to !== point.x || animY._to !== point.y) {\n                this.xAlign = alignment.xAlign;\n                this.yAlign = alignment.yAlign;\n                this.width = size.width;\n                this.height = size.height;\n                this.caretX = position.x;\n                this.caretY = position.y;\n                this._resolveAnimations().update(this, point);\n            }\n        }\n    }\n _willRender() {\n        return !!this.opacity;\n    }\n    draw(ctx) {\n        const options = this.options.setContext(this.getContext());\n        let opacity = this.opacity;\n        if (!opacity) {\n            return;\n        }\n        this._updateAnimationTarget(options);\n        const tooltipSize = {\n            width: this.width,\n            height: this.height\n        };\n        const pt = {\n            x: this.x,\n            y: this.y\n        };\n        opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n        const padding = toPadding(options.padding);\n        const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n        if (options.enabled && hasTooltipContent) {\n            ctx.save();\n            ctx.globalAlpha = opacity;\n            this.drawBackground(pt, ctx, tooltipSize, options);\n            overrideTextDirection(ctx, options.textDirection);\n            pt.y += padding.top;\n            this.drawTitle(pt, ctx, options);\n            this.drawBody(pt, ctx, options);\n            this.drawFooter(pt, ctx, options);\n            restoreTextDirection(ctx, options.textDirection);\n            ctx.restore();\n        }\n    }\n getActiveElements() {\n        return this._active || [];\n    }\n setActiveElements(activeElements, eventPosition) {\n        const lastActive = this._active;\n        const active = activeElements.map(({ datasetIndex , index  })=>{\n            const meta = this.chart.getDatasetMeta(datasetIndex);\n            if (!meta) {\n                throw new Error('Cannot find a dataset at index ' + datasetIndex);\n            }\n            return {\n                datasetIndex,\n                element: meta.data[index],\n                index\n            };\n        });\n        const changed = !_elementsEqual(lastActive, active);\n        const positionChanged = this._positionChanged(active, eventPosition);\n        if (changed || positionChanged) {\n            this._active = active;\n            this._eventPosition = eventPosition;\n            this._ignoreReplayEvents = true;\n            this.update(true);\n        }\n    }\n handleEvent(e, replay, inChartArea = true) {\n        if (replay && this._ignoreReplayEvents) {\n            return false;\n        }\n        this._ignoreReplayEvents = false;\n        const options = this.options;\n        const lastActive = this._active || [];\n        const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n        const positionChanged = this._positionChanged(active, e);\n        const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n        if (changed) {\n            this._active = active;\n            if (options.enabled || options.external) {\n                this._eventPosition = {\n                    x: e.x,\n                    y: e.y\n                };\n                this.update(true, replay);\n            }\n        }\n        return changed;\n    }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n        const options = this.options;\n        if (e.type === 'mouseout') {\n            return [];\n        }\n        if (!inChartArea) {\n            return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n        }\n        const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n        if (options.reverse) {\n            active.reverse();\n        }\n        return active;\n    }\n _positionChanged(active, e) {\n        const { caretX , caretY , options  } = this;\n        const position = positioners[options.position].call(this, active, e);\n        return position !== false && (caretX !== position.x || caretY !== position.y);\n    }\n}\nvar plugin_tooltip = {\n    id: 'tooltip',\n    _element: Tooltip,\n    positioners,\n    afterInit (chart, _args, options) {\n        if (options) {\n            chart.tooltip = new Tooltip({\n                chart,\n                options\n            });\n        }\n    },\n    beforeUpdate (chart, _args, options) {\n        if (chart.tooltip) {\n            chart.tooltip.initialize(options);\n        }\n    },\n    reset (chart, _args, options) {\n        if (chart.tooltip) {\n            chart.tooltip.initialize(options);\n        }\n    },\n    afterDraw (chart) {\n        const tooltip = chart.tooltip;\n        if (tooltip && tooltip._willRender()) {\n            const args = {\n                tooltip\n            };\n            if (chart.notifyPlugins('beforeTooltipDraw', {\n                ...args,\n                cancelable: true\n            }) === false) {\n                return;\n            }\n            tooltip.draw(chart.ctx);\n            chart.notifyPlugins('afterTooltipDraw', args);\n        }\n    },\n    afterEvent (chart, args) {\n        if (chart.tooltip) {\n            const useFinalPosition = args.replay;\n            if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n                args.changed = true;\n            }\n        }\n    },\n    defaults: {\n        enabled: true,\n        external: null,\n        position: 'average',\n        backgroundColor: 'rgba(0,0,0,0.8)',\n        titleColor: '#fff',\n        titleFont: {\n            weight: 'bold'\n        },\n        titleSpacing: 2,\n        titleMarginBottom: 6,\n        titleAlign: 'left',\n        bodyColor: '#fff',\n        bodySpacing: 2,\n        bodyFont: {},\n        bodyAlign: 'left',\n        footerColor: '#fff',\n        footerSpacing: 2,\n        footerMarginTop: 6,\n        footerFont: {\n            weight: 'bold'\n        },\n        footerAlign: 'left',\n        padding: 6,\n        caretPadding: 2,\n        caretSize: 5,\n        cornerRadius: 6,\n        boxHeight: (ctx, opts)=>opts.bodyFont.size,\n        boxWidth: (ctx, opts)=>opts.bodyFont.size,\n        multiKeyBackground: '#fff',\n        displayColors: true,\n        boxPadding: 0,\n        borderColor: 'rgba(0,0,0,0)',\n        borderWidth: 0,\n        animation: {\n            duration: 400,\n            easing: 'easeOutQuart'\n        },\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: [\n                    'x',\n                    'y',\n                    'width',\n                    'height',\n                    'caretX',\n                    'caretY'\n                ]\n            },\n            opacity: {\n                easing: 'linear',\n                duration: 200\n            }\n        },\n        callbacks: defaultCallbacks\n    },\n    defaultRoutes: {\n        bodyFont: 'font',\n        footerFont: 'font',\n        titleFont: 'font'\n    },\n    descriptors: {\n        _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n        _indexable: false,\n        callbacks: {\n            _scriptable: false,\n            _indexable: false\n        },\n        animation: {\n            _fallback: false\n        },\n        animations: {\n            _fallback: 'animation'\n        }\n    },\n    additionalOptionScopes: [\n        'interaction'\n    ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n    if (typeof raw === 'string') {\n        index = labels.push(raw) - 1;\n        addedLabels.unshift({\n            index,\n            label: raw\n        });\n    } else if (isNaN(raw)) {\n        index = null;\n    }\n    return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n    const first = labels.indexOf(raw);\n    if (first === -1) {\n        return addIfString(labels, raw, index, addedLabels);\n    }\n    const last = labels.lastIndexOf(raw);\n    return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n    const labels = this.getLabels();\n    if (value >= 0 && value < labels.length) {\n        return labels[value];\n    }\n    return value;\n}\nclass CategoryScale extends Scale {\n    static id = 'category';\n static defaults = {\n        ticks: {\n            callback: _getLabelForValue\n        }\n    };\n    constructor(cfg){\n        super(cfg);\n         this._startValue = undefined;\n        this._valueRange = 0;\n        this._addedLabels = [];\n    }\n    init(scaleOptions) {\n        const added = this._addedLabels;\n        if (added.length) {\n            const labels = this.getLabels();\n            for (const { index , label  } of added){\n                if (labels[index] === label) {\n                    labels.splice(index, 1);\n                }\n            }\n            this._addedLabels = [];\n        }\n        super.init(scaleOptions);\n    }\n    parse(raw, index) {\n        if (isNullOrUndef(raw)) {\n            return null;\n        }\n        const labels = this.getLabels();\n        index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n        return validIndex(index, labels.length - 1);\n    }\n    determineDataLimits() {\n        const { minDefined , maxDefined  } = this.getUserBounds();\n        let { min , max  } = this.getMinMax(true);\n        if (this.options.bounds === 'ticks') {\n            if (!minDefined) {\n                min = 0;\n            }\n            if (!maxDefined) {\n                max = this.getLabels().length - 1;\n            }\n        }\n        this.min = min;\n        this.max = max;\n    }\n    buildTicks() {\n        const min = this.min;\n        const max = this.max;\n        const offset = this.options.offset;\n        const ticks = [];\n        let labels = this.getLabels();\n        labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n        this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n        this._startValue = this.min - (offset ? 0.5 : 0);\n        for(let value = min; value <= max; value++){\n            ticks.push({\n                value\n            });\n        }\n        return ticks;\n    }\n    getLabelForValue(value) {\n        return _getLabelForValue.call(this, value);\n    }\n configure() {\n        super.configure();\n        if (!this.isHorizontal()) {\n            this._reversePixels = !this._reversePixels;\n        }\n    }\n    getPixelForValue(value) {\n        if (typeof value !== 'number') {\n            value = this.parse(value);\n        }\n        return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n    }\n    getPixelForTick(index) {\n        const ticks = this.ticks;\n        if (index < 0 || index > ticks.length - 1) {\n            return null;\n        }\n        return this.getPixelForValue(ticks[index].value);\n    }\n    getValueForPixel(pixel) {\n        return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n    }\n    getBasePixel() {\n        return this.bottom;\n    }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n    const ticks = [];\n    const MIN_SPACING = 1e-14;\n    const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds  } = generationOptions;\n    const unit = step || 1;\n    const maxSpaces = maxTicks - 1;\n    const { min: rmin , max: rmax  } = dataRange;\n    const minDefined = !isNullOrUndef(min);\n    const maxDefined = !isNullOrUndef(max);\n    const countDefined = !isNullOrUndef(count);\n    const minSpacing = (rmax - rmin) / (maxDigits + 1);\n    let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n    let factor, niceMin, niceMax, numSpaces;\n    if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n        return [\n            {\n                value: rmin\n            },\n            {\n                value: rmax\n            }\n        ];\n    }\n    numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n    if (numSpaces > maxSpaces) {\n        spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n    }\n    if (!isNullOrUndef(precision)) {\n        factor = Math.pow(10, precision);\n        spacing = Math.ceil(spacing * factor) / factor;\n    }\n    if (bounds === 'ticks') {\n        niceMin = Math.floor(rmin / spacing) * spacing;\n        niceMax = Math.ceil(rmax / spacing) * spacing;\n    } else {\n        niceMin = rmin;\n        niceMax = rmax;\n    }\n    if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n        numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n        spacing = (max - min) / numSpaces;\n        niceMin = min;\n        niceMax = max;\n    } else if (countDefined) {\n        niceMin = minDefined ? min : niceMin;\n        niceMax = maxDefined ? max : niceMax;\n        numSpaces = count - 1;\n        spacing = (niceMax - niceMin) / numSpaces;\n    } else {\n        numSpaces = (niceMax - niceMin) / spacing;\n        if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n            numSpaces = Math.round(numSpaces);\n        } else {\n            numSpaces = Math.ceil(numSpaces);\n        }\n    }\n    const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n    factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n    niceMin = Math.round(niceMin * factor) / factor;\n    niceMax = Math.round(niceMax * factor) / factor;\n    let j = 0;\n    if (minDefined) {\n        if (includeBounds && niceMin !== min) {\n            ticks.push({\n                value: min\n            });\n            if (niceMin < min) {\n                j++;\n            }\n            if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n                j++;\n            }\n        } else if (niceMin < min) {\n            j++;\n        }\n    }\n    for(; j < numSpaces; ++j){\n        const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n        if (maxDefined && tickValue > max) {\n            break;\n        }\n        ticks.push({\n            value: tickValue\n        });\n    }\n    if (maxDefined && includeBounds && niceMax !== max) {\n        if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n            ticks[ticks.length - 1].value = max;\n        } else {\n            ticks.push({\n                value: max\n            });\n        }\n    } else if (!maxDefined || niceMax === max) {\n        ticks.push({\n            value: niceMax\n        });\n    }\n    return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation  }) {\n    const rad = toRadians(minRotation);\n    const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n    const length = 0.75 * minSpacing * ('' + value).length;\n    return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n    constructor(cfg){\n        super(cfg);\n         this.start = undefined;\n         this.end = undefined;\n         this._startValue = undefined;\n         this._endValue = undefined;\n        this._valueRange = 0;\n    }\n    parse(raw, index) {\n        if (isNullOrUndef(raw)) {\n            return null;\n        }\n        if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n            return null;\n        }\n        return +raw;\n    }\n    handleTickRangeOptions() {\n        const { beginAtZero  } = this.options;\n        const { minDefined , maxDefined  } = this.getUserBounds();\n        let { min , max  } = this;\n        const setMin = (v)=>min = minDefined ? min : v;\n        const setMax = (v)=>max = maxDefined ? max : v;\n        if (beginAtZero) {\n            const minSign = sign(min);\n            const maxSign = sign(max);\n            if (minSign < 0 && maxSign < 0) {\n                setMax(0);\n            } else if (minSign > 0 && maxSign > 0) {\n                setMin(0);\n            }\n        }\n        if (min === max) {\n            let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n            setMax(max + offset);\n            if (!beginAtZero) {\n                setMin(min - offset);\n            }\n        }\n        this.min = min;\n        this.max = max;\n    }\n    getTickLimit() {\n        const tickOpts = this.options.ticks;\n        let { maxTicksLimit , stepSize  } = tickOpts;\n        let maxTicks;\n        if (stepSize) {\n            maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n            if (maxTicks > 1000) {\n                console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n                maxTicks = 1000;\n            }\n        } else {\n            maxTicks = this.computeTickLimit();\n            maxTicksLimit = maxTicksLimit || 11;\n        }\n        if (maxTicksLimit) {\n            maxTicks = Math.min(maxTicksLimit, maxTicks);\n        }\n        return maxTicks;\n    }\n computeTickLimit() {\n        return Number.POSITIVE_INFINITY;\n    }\n    buildTicks() {\n        const opts = this.options;\n        const tickOpts = opts.ticks;\n        let maxTicks = this.getTickLimit();\n        maxTicks = Math.max(2, maxTicks);\n        const numericGeneratorOptions = {\n            maxTicks,\n            bounds: opts.bounds,\n            min: opts.min,\n            max: opts.max,\n            precision: tickOpts.precision,\n            step: tickOpts.stepSize,\n            count: tickOpts.count,\n            maxDigits: this._maxDigits(),\n            horizontal: this.isHorizontal(),\n            minRotation: tickOpts.minRotation || 0,\n            includeBounds: tickOpts.includeBounds !== false\n        };\n        const dataRange = this._range || this;\n        const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n        if (opts.bounds === 'ticks') {\n            _setMinAndMaxByKey(ticks, this, 'value');\n        }\n        if (opts.reverse) {\n            ticks.reverse();\n            this.start = this.max;\n            this.end = this.min;\n        } else {\n            this.start = this.min;\n            this.end = this.max;\n        }\n        return ticks;\n    }\n configure() {\n        const ticks = this.ticks;\n        let start = this.min;\n        let end = this.max;\n        super.configure();\n        if (this.options.offset && ticks.length) {\n            const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n            start -= offset;\n            end += offset;\n        }\n        this._startValue = start;\n        this._endValue = end;\n        this._valueRange = end - start;\n    }\n    getLabelForValue(value) {\n        return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n    }\n}\n\nclass LinearScale extends LinearScaleBase {\n    static id = 'linear';\n static defaults = {\n        ticks: {\n            callback: Ticks.formatters.numeric\n        }\n    };\n    determineDataLimits() {\n        const { min , max  } = this.getMinMax(true);\n        this.min = isNumberFinite(min) ? min : 0;\n        this.max = isNumberFinite(max) ? max : 1;\n        this.handleTickRangeOptions();\n    }\n computeTickLimit() {\n        const horizontal = this.isHorizontal();\n        const length = horizontal ? this.width : this.height;\n        const minRotation = toRadians(this.options.ticks.minRotation);\n        const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n        const tickFont = this._resolveTickFontOptions(0);\n        return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n    }\n    getPixelForValue(value) {\n        return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n    }\n    getValueForPixel(pixel) {\n        return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n    }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n    const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n    return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n    const rangeStep = Math.pow(10, rangeExp);\n    const start = Math.floor(min / rangeStep);\n    const end = Math.ceil(max / rangeStep);\n    return end - start;\n}\nfunction startExp(min, max) {\n    const range = max - min;\n    let rangeExp = log10Floor(range);\n    while(steps(min, max, rangeExp) > 10){\n        rangeExp++;\n    }\n    while(steps(min, max, rangeExp) < 10){\n        rangeExp--;\n    }\n    return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max  }) {\n    min = finiteOrDefault(generationOptions.min, min);\n    const ticks = [];\n    const minExp = log10Floor(min);\n    let exp = startExp(min, max);\n    let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n    const stepSize = Math.pow(10, exp);\n    const base = minExp > exp ? Math.pow(10, minExp) : 0;\n    const start = Math.round((min - base) * precision) / precision;\n    const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n    let significand = Math.floor((start - offset) / Math.pow(10, exp));\n    let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n    while(value < max){\n        ticks.push({\n            value,\n            major: isMajor(value),\n            significand\n        });\n        if (significand >= 10) {\n            significand = significand < 15 ? 15 : 20;\n        } else {\n            significand++;\n        }\n        if (significand >= 20) {\n            exp++;\n            significand = 2;\n            precision = exp >= 0 ? 1 : precision;\n        }\n        value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n    }\n    const lastTick = finiteOrDefault(generationOptions.max, value);\n    ticks.push({\n        value: lastTick,\n        major: isMajor(lastTick),\n        significand\n    });\n    return ticks;\n}\nclass LogarithmicScale extends Scale {\n    static id = 'logarithmic';\n static defaults = {\n        ticks: {\n            callback: Ticks.formatters.logarithmic,\n            major: {\n                enabled: true\n            }\n        }\n    };\n    constructor(cfg){\n        super(cfg);\n         this.start = undefined;\n         this.end = undefined;\n         this._startValue = undefined;\n        this._valueRange = 0;\n    }\n    parse(raw, index) {\n        const value = LinearScaleBase.prototype.parse.apply(this, [\n            raw,\n            index\n        ]);\n        if (value === 0) {\n            this._zero = true;\n            return undefined;\n        }\n        return isNumberFinite(value) && value > 0 ? value : null;\n    }\n    determineDataLimits() {\n        const { min , max  } = this.getMinMax(true);\n        this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n        this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n        if (this.options.beginAtZero) {\n            this._zero = true;\n        }\n        if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n            this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n        }\n        this.handleTickRangeOptions();\n    }\n    handleTickRangeOptions() {\n        const { minDefined , maxDefined  } = this.getUserBounds();\n        let min = this.min;\n        let max = this.max;\n        const setMin = (v)=>min = minDefined ? min : v;\n        const setMax = (v)=>max = maxDefined ? max : v;\n        if (min === max) {\n            if (min <= 0) {\n                setMin(1);\n                setMax(10);\n            } else {\n                setMin(changeExponent(min, -1));\n                setMax(changeExponent(max, +1));\n            }\n        }\n        if (min <= 0) {\n            setMin(changeExponent(max, -1));\n        }\n        if (max <= 0) {\n            setMax(changeExponent(min, +1));\n        }\n        this.min = min;\n        this.max = max;\n    }\n    buildTicks() {\n        const opts = this.options;\n        const generationOptions = {\n            min: this._userMin,\n            max: this._userMax\n        };\n        const ticks = generateTicks(generationOptions, this);\n        if (opts.bounds === 'ticks') {\n            _setMinAndMaxByKey(ticks, this, 'value');\n        }\n        if (opts.reverse) {\n            ticks.reverse();\n            this.start = this.max;\n            this.end = this.min;\n        } else {\n            this.start = this.min;\n            this.end = this.max;\n        }\n        return ticks;\n    }\n getLabelForValue(value) {\n        return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n    }\n configure() {\n        const start = this.min;\n        super.configure();\n        this._startValue = log10(start);\n        this._valueRange = log10(this.max) - log10(start);\n    }\n    getPixelForValue(value) {\n        if (value === undefined || value === 0) {\n            value = this.min;\n        }\n        if (value === null || isNaN(value)) {\n            return NaN;\n        }\n        return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n    }\n    getValueForPixel(pixel) {\n        const decimal = this.getDecimalForPixel(pixel);\n        return Math.pow(10, this._startValue + decimal * this._valueRange);\n    }\n}\n\nfunction getTickBackdropHeight(opts) {\n    const tickOpts = opts.ticks;\n    if (tickOpts.display && opts.display) {\n        const padding = toPadding(tickOpts.backdropPadding);\n        return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n    }\n    return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n    label = isArray(label) ? label : [\n        label\n    ];\n    return {\n        w: _longestText(ctx, font.string, label),\n        h: label.length * font.lineHeight\n    };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n    if (angle === min || angle === max) {\n        return {\n            start: pos - size / 2,\n            end: pos + size / 2\n        };\n    } else if (angle < min || angle > max) {\n        return {\n            start: pos - size,\n            end: pos\n        };\n    }\n    return {\n        start: pos,\n        end: pos + size\n    };\n}\n function fitWithPointLabels(scale) {\n    const orig = {\n        l: scale.left + scale._padding.left,\n        r: scale.right - scale._padding.right,\n        t: scale.top + scale._padding.top,\n        b: scale.bottom - scale._padding.bottom\n    };\n    const limits = Object.assign({}, orig);\n    const labelSizes = [];\n    const padding = [];\n    const valueCount = scale._pointLabels.length;\n    const pointLabelOpts = scale.options.pointLabels;\n    const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n    for(let i = 0; i < valueCount; i++){\n        const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n        padding[i] = opts.padding;\n        const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n        const plFont = toFont(opts.font);\n        const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n        labelSizes[i] = textSize;\n        const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n        const angle = Math.round(toDegrees(angleRadians));\n        const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n        const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n        updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n    }\n    scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n    scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n    const sin = Math.abs(Math.sin(angle));\n    const cos = Math.abs(Math.cos(angle));\n    let x = 0;\n    let y = 0;\n    if (hLimits.start < orig.l) {\n        x = (orig.l - hLimits.start) / sin;\n        limits.l = Math.min(limits.l, orig.l - x);\n    } else if (hLimits.end > orig.r) {\n        x = (hLimits.end - orig.r) / sin;\n        limits.r = Math.max(limits.r, orig.r + x);\n    }\n    if (vLimits.start < orig.t) {\n        y = (orig.t - vLimits.start) / cos;\n        limits.t = Math.min(limits.t, orig.t - y);\n    } else if (vLimits.end > orig.b) {\n        y = (vLimits.end - orig.b) / cos;\n        limits.b = Math.max(limits.b, orig.b + y);\n    }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n    const outerDistance = scale.drawingArea;\n    const { extra , additionalAngle , padding , size  } = itemOpts;\n    const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n    const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n    const y = yForAngle(pointLabelPosition.y, size.h, angle);\n    const textAlign = getTextAlignForAngle(angle);\n    const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n    return {\n        visible: true,\n        x: pointLabelPosition.x,\n        y,\n        textAlign,\n        left,\n        top: y,\n        right: left + size.w,\n        bottom: y + size.h\n    };\n}\nfunction isNotOverlapped(item, area) {\n    if (!area) {\n        return true;\n    }\n    const { left , top , right , bottom  } = item;\n    const apexesInArea = _isPointInArea({\n        x: left,\n        y: top\n    }, area) || _isPointInArea({\n        x: left,\n        y: bottom\n    }, area) || _isPointInArea({\n        x: right,\n        y: top\n    }, area) || _isPointInArea({\n        x: right,\n        y: bottom\n    }, area);\n    return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n    const items = [];\n    const valueCount = scale._pointLabels.length;\n    const opts = scale.options;\n    const { centerPointLabels , display  } = opts.pointLabels;\n    const itemOpts = {\n        extra: getTickBackdropHeight(opts) / 2,\n        additionalAngle: centerPointLabels ? PI / valueCount : 0\n    };\n    let area;\n    for(let i = 0; i < valueCount; i++){\n        itemOpts.padding = padding[i];\n        itemOpts.size = labelSizes[i];\n        const item = createPointLabelItem(scale, i, itemOpts);\n        items.push(item);\n        if (display === 'auto') {\n            item.visible = isNotOverlapped(item, area);\n            if (item.visible) {\n                area = item;\n            }\n        }\n    }\n    return items;\n}\nfunction getTextAlignForAngle(angle) {\n    if (angle === 0 || angle === 180) {\n        return 'center';\n    } else if (angle < 180) {\n        return 'left';\n    }\n    return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n    if (align === 'right') {\n        x -= w;\n    } else if (align === 'center') {\n        x -= w / 2;\n    }\n    return x;\n}\nfunction yForAngle(y, h, angle) {\n    if (angle === 90 || angle === 270) {\n        y -= h / 2;\n    } else if (angle > 270 || angle < 90) {\n        y -= h;\n    }\n    return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n    const { left , top , right , bottom  } = item;\n    const { backdropColor  } = opts;\n    if (!isNullOrUndef(backdropColor)) {\n        const borderRadius = toTRBLCorners(opts.borderRadius);\n        const padding = toPadding(opts.backdropPadding);\n        ctx.fillStyle = backdropColor;\n        const backdropLeft = left - padding.left;\n        const backdropTop = top - padding.top;\n        const backdropWidth = right - left + padding.width;\n        const backdropHeight = bottom - top + padding.height;\n        if (Object.values(borderRadius).some((v)=>v !== 0)) {\n            ctx.beginPath();\n            addRoundedRectPath(ctx, {\n                x: backdropLeft,\n                y: backdropTop,\n                w: backdropWidth,\n                h: backdropHeight,\n                radius: borderRadius\n            });\n            ctx.fill();\n        } else {\n            ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n        }\n    }\n}\nfunction drawPointLabels(scale, labelCount) {\n    const { ctx , options: { pointLabels  }  } = scale;\n    for(let i = labelCount - 1; i >= 0; i--){\n        const item = scale._pointLabelItems[i];\n        if (!item.visible) {\n            continue;\n        }\n        const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n        drawPointLabelBox(ctx, optsAtIndex, item);\n        const plFont = toFont(optsAtIndex.font);\n        const { x , y , textAlign  } = item;\n        renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n            color: optsAtIndex.color,\n            textAlign: textAlign,\n            textBaseline: 'middle'\n        });\n    }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n    const { ctx  } = scale;\n    if (circular) {\n        ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n    } else {\n        let pointPosition = scale.getPointPosition(0, radius);\n        ctx.moveTo(pointPosition.x, pointPosition.y);\n        for(let i = 1; i < labelCount; i++){\n            pointPosition = scale.getPointPosition(i, radius);\n            ctx.lineTo(pointPosition.x, pointPosition.y);\n        }\n    }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n    const ctx = scale.ctx;\n    const circular = gridLineOpts.circular;\n    const { color , lineWidth  } = gridLineOpts;\n    if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n        return;\n    }\n    ctx.save();\n    ctx.strokeStyle = color;\n    ctx.lineWidth = lineWidth;\n    ctx.setLineDash(borderOpts.dash || []);\n    ctx.lineDashOffset = borderOpts.dashOffset;\n    ctx.beginPath();\n    pathRadiusLine(scale, radius, circular, labelCount);\n    ctx.closePath();\n    ctx.stroke();\n    ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n    return createContext(parent, {\n        label,\n        index,\n        type: 'pointLabel'\n    });\n}\nclass RadialLinearScale extends LinearScaleBase {\n    static id = 'radialLinear';\n static defaults = {\n        display: true,\n        animate: true,\n        position: 'chartArea',\n        angleLines: {\n            display: true,\n            lineWidth: 1,\n            borderDash: [],\n            borderDashOffset: 0.0\n        },\n        grid: {\n            circular: false\n        },\n        startAngle: 0,\n        ticks: {\n            showLabelBackdrop: true,\n            callback: Ticks.formatters.numeric\n        },\n        pointLabels: {\n            backdropColor: undefined,\n            backdropPadding: 2,\n            display: true,\n            font: {\n                size: 10\n            },\n            callback (label) {\n                return label;\n            },\n            padding: 5,\n            centerPointLabels: false\n        }\n    };\n    static defaultRoutes = {\n        'angleLines.color': 'borderColor',\n        'pointLabels.color': 'color',\n        'ticks.color': 'color'\n    };\n    static descriptors = {\n        angleLines: {\n            _fallback: 'grid'\n        }\n    };\n    constructor(cfg){\n        super(cfg);\n         this.xCenter = undefined;\n         this.yCenter = undefined;\n         this.drawingArea = undefined;\n         this._pointLabels = [];\n        this._pointLabelItems = [];\n    }\n    setDimensions() {\n        const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n        const w = this.width = this.maxWidth - padding.width;\n        const h = this.height = this.maxHeight - padding.height;\n        this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n        this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n        this.drawingArea = Math.floor(Math.min(w, h) / 2);\n    }\n    determineDataLimits() {\n        const { min , max  } = this.getMinMax(false);\n        this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n        this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n        this.handleTickRangeOptions();\n    }\n computeTickLimit() {\n        return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n    }\n    generateTickLabels(ticks) {\n        LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n        this._pointLabels = this.getLabels().map((value, index)=>{\n            const label = callback(this.options.pointLabels.callback, [\n                value,\n                index\n            ], this);\n            return label || label === 0 ? label : '';\n        }).filter((v, i)=>this.chart.getDataVisibility(i));\n    }\n    fit() {\n        const opts = this.options;\n        if (opts.display && opts.pointLabels.display) {\n            fitWithPointLabels(this);\n        } else {\n            this.setCenterPoint(0, 0, 0, 0);\n        }\n    }\n    setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n        this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n        this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n        this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n    }\n    getIndexAngle(index) {\n        const angleMultiplier = TAU / (this._pointLabels.length || 1);\n        const startAngle = this.options.startAngle || 0;\n        return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n    }\n    getDistanceFromCenterForValue(value) {\n        if (isNullOrUndef(value)) {\n            return NaN;\n        }\n        const scalingFactor = this.drawingArea / (this.max - this.min);\n        if (this.options.reverse) {\n            return (this.max - value) * scalingFactor;\n        }\n        return (value - this.min) * scalingFactor;\n    }\n    getValueForDistanceFromCenter(distance) {\n        if (isNullOrUndef(distance)) {\n            return NaN;\n        }\n        const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n        return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n    }\n    getPointLabelContext(index) {\n        const pointLabels = this._pointLabels || [];\n        if (index >= 0 && index < pointLabels.length) {\n            const pointLabel = pointLabels[index];\n            return createPointLabelContext(this.getContext(), index, pointLabel);\n        }\n    }\n    getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n        const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n        return {\n            x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n            y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n            angle\n        };\n    }\n    getPointPositionForValue(index, value) {\n        return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n    }\n    getBasePosition(index) {\n        return this.getPointPositionForValue(index || 0, this.getBaseValue());\n    }\n    getPointLabelPosition(index) {\n        const { left , top , right , bottom  } = this._pointLabelItems[index];\n        return {\n            left,\n            top,\n            right,\n            bottom\n        };\n    }\n drawBackground() {\n        const { backgroundColor , grid: { circular  }  } = this.options;\n        if (backgroundColor) {\n            const ctx = this.ctx;\n            ctx.save();\n            ctx.beginPath();\n            pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n            ctx.closePath();\n            ctx.fillStyle = backgroundColor;\n            ctx.fill();\n            ctx.restore();\n        }\n    }\n drawGrid() {\n        const ctx = this.ctx;\n        const opts = this.options;\n        const { angleLines , grid , border  } = opts;\n        const labelCount = this._pointLabels.length;\n        let i, offset, position;\n        if (opts.pointLabels.display) {\n            drawPointLabels(this, labelCount);\n        }\n        if (grid.display) {\n            this.ticks.forEach((tick, index)=>{\n                if (index !== 0 || index === 0 && this.min < 0) {\n                    offset = this.getDistanceFromCenterForValue(tick.value);\n                    const context = this.getContext(index);\n                    const optsAtIndex = grid.setContext(context);\n                    const optsAtIndexBorder = border.setContext(context);\n                    drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n                }\n            });\n        }\n        if (angleLines.display) {\n            ctx.save();\n            for(i = labelCount - 1; i >= 0; i--){\n                const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n                const { color , lineWidth  } = optsAtIndex;\n                if (!lineWidth || !color) {\n                    continue;\n                }\n                ctx.lineWidth = lineWidth;\n                ctx.strokeStyle = color;\n                ctx.setLineDash(optsAtIndex.borderDash);\n                ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n                offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n                position = this.getPointPosition(i, offset);\n                ctx.beginPath();\n                ctx.moveTo(this.xCenter, this.yCenter);\n                ctx.lineTo(position.x, position.y);\n                ctx.stroke();\n            }\n            ctx.restore();\n        }\n    }\n drawBorder() {}\n drawLabels() {\n        const ctx = this.ctx;\n        const opts = this.options;\n        const tickOpts = opts.ticks;\n        if (!tickOpts.display) {\n            return;\n        }\n        const startAngle = this.getIndexAngle(0);\n        let offset, width;\n        ctx.save();\n        ctx.translate(this.xCenter, this.yCenter);\n        ctx.rotate(startAngle);\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'middle';\n        this.ticks.forEach((tick, index)=>{\n            if (index === 0 && this.min >= 0 && !opts.reverse) {\n                return;\n            }\n            const optsAtIndex = tickOpts.setContext(this.getContext(index));\n            const tickFont = toFont(optsAtIndex.font);\n            offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n            if (optsAtIndex.showLabelBackdrop) {\n                ctx.font = tickFont.string;\n                width = ctx.measureText(tick.label).width;\n                ctx.fillStyle = optsAtIndex.backdropColor;\n                const padding = toPadding(optsAtIndex.backdropPadding);\n                ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n            }\n            renderText(ctx, tick.label, 0, -offset, tickFont, {\n                color: optsAtIndex.color,\n                strokeColor: optsAtIndex.textStrokeColor,\n                strokeWidth: optsAtIndex.textStrokeWidth\n            });\n        });\n        ctx.restore();\n    }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n    millisecond: {\n        common: true,\n        size: 1,\n        steps: 1000\n    },\n    second: {\n        common: true,\n        size: 1000,\n        steps: 60\n    },\n    minute: {\n        common: true,\n        size: 60000,\n        steps: 60\n    },\n    hour: {\n        common: true,\n        size: 3600000,\n        steps: 24\n    },\n    day: {\n        common: true,\n        size: 86400000,\n        steps: 30\n    },\n    week: {\n        common: false,\n        size: 604800000,\n        steps: 4\n    },\n    month: {\n        common: true,\n        size: 2.628e9,\n        steps: 12\n    },\n    quarter: {\n        common: false,\n        size: 7.884e9,\n        steps: 4\n    },\n    year: {\n        common: true,\n        size: 3.154e10\n    }\n};\n const UNITS =  /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n    return a - b;\n}\n function parse(scale, input) {\n    if (isNullOrUndef(input)) {\n        return null;\n    }\n    const adapter = scale._adapter;\n    const { parser , round , isoWeekday  } = scale._parseOpts;\n    let value = input;\n    if (typeof parser === 'function') {\n        value = parser(value);\n    }\n    if (!isNumberFinite(value)) {\n        value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n    }\n    if (value === null) {\n        return null;\n    }\n    if (round) {\n        value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n    }\n    return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n    const ilen = UNITS.length;\n    for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n        const interval = INTERVALS[UNITS[i]];\n        const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n        if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n            return UNITS[i];\n        }\n    }\n    return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n    for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n        const unit = UNITS[i];\n        if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n            return unit;\n        }\n    }\n    return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n    for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n        if (INTERVALS[UNITS[i]].common) {\n            return UNITS[i];\n        }\n    }\n}\n function addTick(ticks, time, timestamps) {\n    if (!timestamps) {\n        ticks[time] = true;\n    } else if (timestamps.length) {\n        const { lo , hi  } = _lookup(timestamps, time);\n        const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n        ticks[timestamp] = true;\n    }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n    const adapter = scale._adapter;\n    const first = +adapter.startOf(ticks[0].value, majorUnit);\n    const last = ticks[ticks.length - 1].value;\n    let major, index;\n    for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n        index = map[major];\n        if (index >= 0) {\n            ticks[index].major = true;\n        }\n    }\n    return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n    const ticks = [];\n     const map = {};\n    const ilen = values.length;\n    let i, value;\n    for(i = 0; i < ilen; ++i){\n        value = values[i];\n        map[value] = i;\n        ticks.push({\n            value,\n            major: false\n        });\n    }\n    return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n    static id = 'time';\n static defaults = {\n bounds: 'data',\n        adapters: {},\n        time: {\n            parser: false,\n            unit: false,\n            round: false,\n            isoWeekday: false,\n            minUnit: 'millisecond',\n            displayFormats: {}\n        },\n        ticks: {\n source: 'auto',\n            callback: false,\n            major: {\n                enabled: false\n            }\n        }\n    };\n constructor(props){\n        super(props);\n         this._cache = {\n            data: [],\n            labels: [],\n            all: []\n        };\n         this._unit = 'day';\n         this._majorUnit = undefined;\n        this._offsets = {};\n        this._normalized = false;\n        this._parseOpts = undefined;\n    }\n    init(scaleOpts, opts = {}) {\n        const time = scaleOpts.time || (scaleOpts.time = {});\n         const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n        adapter.init(opts);\n        mergeIf(time.displayFormats, adapter.formats());\n        this._parseOpts = {\n            parser: time.parser,\n            round: time.round,\n            isoWeekday: time.isoWeekday\n        };\n        super.init(scaleOpts);\n        this._normalized = opts.normalized;\n    }\n parse(raw, index) {\n        if (raw === undefined) {\n            return null;\n        }\n        return parse(this, raw);\n    }\n    beforeLayout() {\n        super.beforeLayout();\n        this._cache = {\n            data: [],\n            labels: [],\n            all: []\n        };\n    }\n    determineDataLimits() {\n        const options = this.options;\n        const adapter = this._adapter;\n        const unit = options.time.unit || 'day';\n        let { min , max , minDefined , maxDefined  } = this.getUserBounds();\n function _applyBounds(bounds) {\n            if (!minDefined && !isNaN(bounds.min)) {\n                min = Math.min(min, bounds.min);\n            }\n            if (!maxDefined && !isNaN(bounds.max)) {\n                max = Math.max(max, bounds.max);\n            }\n        }\n        if (!minDefined || !maxDefined) {\n            _applyBounds(this._getLabelBounds());\n            if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n                _applyBounds(this.getMinMax(false));\n            }\n        }\n        min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n        max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n        this.min = Math.min(min, max - 1);\n        this.max = Math.max(min + 1, max);\n    }\n _getLabelBounds() {\n        const arr = this.getLabelTimestamps();\n        let min = Number.POSITIVE_INFINITY;\n        let max = Number.NEGATIVE_INFINITY;\n        if (arr.length) {\n            min = arr[0];\n            max = arr[arr.length - 1];\n        }\n        return {\n            min,\n            max\n        };\n    }\n buildTicks() {\n        const options = this.options;\n        const timeOpts = options.time;\n        const tickOpts = options.ticks;\n        const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n        if (options.bounds === 'ticks' && timestamps.length) {\n            this.min = this._userMin || timestamps[0];\n            this.max = this._userMax || timestamps[timestamps.length - 1];\n        }\n        const min = this.min;\n        const max = this.max;\n        const ticks = _filterBetween(timestamps, min, max);\n        this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n        this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n        this.initOffsets(timestamps);\n        if (options.reverse) {\n            ticks.reverse();\n        }\n        return ticksFromTimestamps(this, ticks, this._majorUnit);\n    }\n    afterAutoSkip() {\n        if (this.options.offsetAfterAutoskip) {\n            this.initOffsets(this.ticks.map((tick)=>+tick.value));\n        }\n    }\n initOffsets(timestamps = []) {\n        let start = 0;\n        let end = 0;\n        let first, last;\n        if (this.options.offset && timestamps.length) {\n            first = this.getDecimalForValue(timestamps[0]);\n            if (timestamps.length === 1) {\n                start = 1 - first;\n            } else {\n                start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n            }\n            last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n            if (timestamps.length === 1) {\n                end = last;\n            } else {\n                end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n            }\n        }\n        const limit = timestamps.length < 3 ? 0.5 : 0.25;\n        start = _limitValue(start, 0, limit);\n        end = _limitValue(end, 0, limit);\n        this._offsets = {\n            start,\n            end,\n            factor: 1 / (start + 1 + end)\n        };\n    }\n _generate() {\n        const adapter = this._adapter;\n        const min = this.min;\n        const max = this.max;\n        const options = this.options;\n        const timeOpts = options.time;\n        const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n        const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n        const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n        const hasWeekday = isNumber(weekday) || weekday === true;\n        const ticks = {};\n        let first = min;\n        let time, count;\n        if (hasWeekday) {\n            first = +adapter.startOf(first, 'isoWeek', weekday);\n        }\n        first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n        if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n            throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n        }\n        const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n        for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n            addTick(ticks, time, timestamps);\n        }\n        if (time === max || options.bounds === 'ticks' || count === 1) {\n            addTick(ticks, time, timestamps);\n        }\n        return Object.keys(ticks).sort(sorter).map((x)=>+x);\n    }\n getLabelForValue(value) {\n        const adapter = this._adapter;\n        const timeOpts = this.options.time;\n        if (timeOpts.tooltipFormat) {\n            return adapter.format(value, timeOpts.tooltipFormat);\n        }\n        return adapter.format(value, timeOpts.displayFormats.datetime);\n    }\n format(value, format) {\n        const options = this.options;\n        const formats = options.time.displayFormats;\n        const unit = this._unit;\n        const fmt = format || formats[unit];\n        return this._adapter.format(value, fmt);\n    }\n _tickFormatFunction(time, index, ticks, format) {\n        const options = this.options;\n        const formatter = options.ticks.callback;\n        if (formatter) {\n            return callback(formatter, [\n                time,\n                index,\n                ticks\n            ], this);\n        }\n        const formats = options.time.displayFormats;\n        const unit = this._unit;\n        const majorUnit = this._majorUnit;\n        const minorFormat = unit && formats[unit];\n        const majorFormat = majorUnit && formats[majorUnit];\n        const tick = ticks[index];\n        const major = majorUnit && majorFormat && tick && tick.major;\n        return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n    }\n generateTickLabels(ticks) {\n        let i, ilen, tick;\n        for(i = 0, ilen = ticks.length; i < ilen; ++i){\n            tick = ticks[i];\n            tick.label = this._tickFormatFunction(tick.value, i, ticks);\n        }\n    }\n getDecimalForValue(value) {\n        return value === null ? NaN : (value - this.min) / (this.max - this.min);\n    }\n getPixelForValue(value) {\n        const offsets = this._offsets;\n        const pos = this.getDecimalForValue(value);\n        return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n    }\n getValueForPixel(pixel) {\n        const offsets = this._offsets;\n        const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n        return this.min + pos * (this.max - this.min);\n    }\n _getLabelSize(label) {\n        const ticksOpts = this.options.ticks;\n        const tickLabelWidth = this.ctx.measureText(label).width;\n        const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n        const cosRotation = Math.cos(angle);\n        const sinRotation = Math.sin(angle);\n        const tickFontSize = this._resolveTickFontOptions(0).size;\n        return {\n            w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n            h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n        };\n    }\n _getLabelCapacity(exampleTime) {\n        const timeOpts = this.options.time;\n        const displayFormats = timeOpts.displayFormats;\n        const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n        const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n            exampleTime\n        ], this._majorUnit), format);\n        const size = this._getLabelSize(exampleLabel);\n        const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n        return capacity > 0 ? capacity : 1;\n    }\n getDataTimestamps() {\n        let timestamps = this._cache.data || [];\n        let i, ilen;\n        if (timestamps.length) {\n            return timestamps;\n        }\n        const metas = this.getMatchingVisibleMetas();\n        if (this._normalized && metas.length) {\n            return this._cache.data = metas[0].controller.getAllParsedValues(this);\n        }\n        for(i = 0, ilen = metas.length; i < ilen; ++i){\n            timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n        }\n        return this._cache.data = this.normalize(timestamps);\n    }\n getLabelTimestamps() {\n        const timestamps = this._cache.labels || [];\n        let i, ilen;\n        if (timestamps.length) {\n            return timestamps;\n        }\n        const labels = this.getLabels();\n        for(i = 0, ilen = labels.length; i < ilen; ++i){\n            timestamps.push(parse(this, labels[i]));\n        }\n        return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n    }\n normalize(values) {\n        return _arrayUnique(values.sort(sorter));\n    }\n}\n\nfunction interpolate(table, val, reverse) {\n    let lo = 0;\n    let hi = table.length - 1;\n    let prevSource, nextSource, prevTarget, nextTarget;\n    if (reverse) {\n        if (val >= table[lo].pos && val <= table[hi].pos) {\n            ({ lo , hi  } = _lookupByKey(table, 'pos', val));\n        }\n        ({ pos: prevSource , time: prevTarget  } = table[lo]);\n        ({ pos: nextSource , time: nextTarget  } = table[hi]);\n    } else {\n        if (val >= table[lo].time && val <= table[hi].time) {\n            ({ lo , hi  } = _lookupByKey(table, 'time', val));\n        }\n        ({ time: prevSource , pos: prevTarget  } = table[lo]);\n        ({ time: nextSource , pos: nextTarget  } = table[hi]);\n    }\n    const span = nextSource - prevSource;\n    return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n    static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n        super(props);\n         this._table = [];\n         this._minPos = undefined;\n         this._tableRange = undefined;\n    }\n initOffsets() {\n        const timestamps = this._getTimestampsForTable();\n        const table = this._table = this.buildLookupTable(timestamps);\n        this._minPos = interpolate(table, this.min);\n        this._tableRange = interpolate(table, this.max) - this._minPos;\n        super.initOffsets(timestamps);\n    }\n buildLookupTable(timestamps) {\n        const { min , max  } = this;\n        const items = [];\n        const table = [];\n        let i, ilen, prev, curr, next;\n        for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n            curr = timestamps[i];\n            if (curr >= min && curr <= max) {\n                items.push(curr);\n            }\n        }\n        if (items.length < 2) {\n            return [\n                {\n                    time: min,\n                    pos: 0\n                },\n                {\n                    time: max,\n                    pos: 1\n                }\n            ];\n        }\n        for(i = 0, ilen = items.length; i < ilen; ++i){\n            next = items[i + 1];\n            prev = items[i - 1];\n            curr = items[i];\n            if (Math.round((next + prev) / 2) !== curr) {\n                table.push({\n                    time: curr,\n                    pos: i / (ilen - 1)\n                });\n            }\n        }\n        return table;\n    }\n _generate() {\n        const min = this.min;\n        const max = this.max;\n        let timestamps = super.getDataTimestamps();\n        if (!timestamps.includes(min) || !timestamps.length) {\n            timestamps.splice(0, 0, min);\n        }\n        if (!timestamps.includes(max) || timestamps.length === 1) {\n            timestamps.push(max);\n        }\n        return timestamps.sort((a, b)=>a - b);\n    }\n _getTimestampsForTable() {\n        let timestamps = this._cache.all || [];\n        if (timestamps.length) {\n            return timestamps;\n        }\n        const data = this.getDataTimestamps();\n        const label = this.getLabelTimestamps();\n        if (data.length && label.length) {\n            timestamps = this.normalize(data.concat(label));\n        } else {\n            timestamps = data.length ? data : label;\n        }\n        timestamps = this._cache.all = timestamps;\n        return timestamps;\n    }\n getDecimalForValue(value) {\n        return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n    }\n getValueForPixel(pixel) {\n        const offsets = this._offsets;\n        const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n        return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n    }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n    controllers,\n    elements,\n    plugins,\n    scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","const { min, max } = Math;\n\nexport default (x, low = 0, high = 1) => {\n    return min(max(low, x), high);\n};\n","import limit from './limit.js';\n\nexport default (rgb) => {\n    rgb._clipped = false;\n    rgb._unclipped = rgb.slice(0);\n    for (let i = 0; i <= 3; i++) {\n        if (i < 3) {\n            if (rgb[i] < 0 || rgb[i] > 255) rgb._clipped = true;\n            rgb[i] = limit(rgb[i], 0, 255);\n        } else if (i === 3) {\n            rgb[i] = limit(rgb[i], 0, 1);\n        }\n    }\n    return rgb;\n};\n","// ported from jQuery's $.type\nconst classToType = {};\nfor (let name of [\n    'Boolean',\n    'Number',\n    'String',\n    'Function',\n    'Array',\n    'Date',\n    'RegExp',\n    'Undefined',\n    'Null'\n]) {\n    classToType[`[object ${name}]`] = name.toLowerCase();\n}\nexport default function (obj) {\n    return classToType[Object.prototype.toString.call(obj)] || 'object';\n}\n","import type from './type.js';\n\nexport default (args, keyOrder = null) => {\n    // if called with more than 3 arguments, we return the arguments\n    if (args.length >= 3) return Array.prototype.slice.call(args);\n    // with less than 3 args we check if first arg is object\n    // and use the keyOrder string to extract and sort properties\n    if (type(args[0]) == 'object' && keyOrder) {\n        return keyOrder\n            .split('')\n            .filter((k) => args[0][k] !== undefined)\n            .map((k) => args[0][k]);\n    }\n    // otherwise we just return the first argument\n    // (which we suppose is an array of args)\n    return args[0].slice(0);\n};\n","import type from './type.js';\n\nexport default (args) => {\n    if (args.length < 2) return null;\n    const l = args.length - 1;\n    if (type(args[l]) == 'string') return args[l].toLowerCase();\n    return null;\n};\n","const { PI, min, max } = Math;\n\nconst rnd2 = (a) => Math.round(a * 100) / 100;\nconst rnd3 = (a) => Math.round(a * 100) / 100;\n\nexport { default as clip_rgb } from './clip_rgb.js';\nexport { default as limit } from './limit.js';\nexport { default as type } from './type.js';\nexport { default as unpack } from './unpack.js';\nexport { default as last } from './last.js';\n\nconst TWOPI = PI * 2;\nconst PITHIRD = PI / 3;\nconst DEG2RAD = PI / 180;\nconst RAD2DEG = 180 / PI;\n\n/**\n * Reverse the first three elements of an array\n *\n * @param {any[]} arr\n * @returns {any[]}\n */\nfunction reverse3(arr) {\n    return [...arr.slice(0, 3).reverse(), ...arr.slice(3)];\n}\n\nexport { PI, TWOPI, PITHIRD, DEG2RAD, RAD2DEG, min, max, rnd2, rnd3, reverse3 };\n","export default {\n    format: {},\n    autodetect: []\n};\n","import { last, clip_rgb, type } from './utils/index.js';\nimport _input from './io/input.js';\n\nclass Color {\n    constructor(...args) {\n        const me = this;\n        if (\n            type(args[0]) === 'object' &&\n            args[0].constructor &&\n            args[0].constructor === this.constructor\n        ) {\n            // the argument is already a Color instance\n            return args[0];\n        }\n        // last argument could be the mode\n        let mode = last(args);\n        let autodetect = false;\n        if (!mode) {\n            autodetect = true;\n\n            if (!_input.sorted) {\n                _input.autodetect = _input.autodetect.sort((a, b) => b.p - a.p);\n                _input.sorted = true;\n            }\n\n            // auto-detect format\n            for (let chk of _input.autodetect) {\n                mode = chk.test(...args);\n                if (mode) break;\n            }\n        }\n        if (_input.format[mode]) {\n            const rgb = _input.format[mode].apply(\n                null,\n                autodetect ? args : args.slice(0, -1)\n            );\n            me._rgb = clip_rgb(rgb);\n        } else {\n            throw new Error('unknown format: ' + args);\n        }\n        // add alpha channel\n        if (me._rgb.length === 3) me._rgb.push(1);\n    }\n    toString() {\n        if (type(this.hex) == 'function') return this.hex();\n        return `[${this._rgb.join(',')}]`;\n    }\n}\nexport default Color;\n","// this gets updated automatically\nexport const version = '3.2.0';\n","import Color from './Color.js';\nimport { version } from './version.js';\n\nconst chroma = (...args) => {\n    return new Color(...args);\n};\n\nchroma.version = version;\n\nexport default chroma;\n","/**\n\tX11 color names\n\n\thttp://www.w3.org/TR/css3-color/#svg-color\n*/\n\nconst w3cx11 = {\n    aliceblue: '#f0f8ff',\n    antiquewhite: '#faebd7',\n    aqua: '#00ffff',\n    aquamarine: '#7fffd4',\n    azure: '#f0ffff',\n    beige: '#f5f5dc',\n    bisque: '#ffe4c4',\n    black: '#000000',\n    blanchedalmond: '#ffebcd',\n    blue: '#0000ff',\n    blueviolet: '#8a2be2',\n    brown: '#a52a2a',\n    burlywood: '#deb887',\n    cadetblue: '#5f9ea0',\n    chartreuse: '#7fff00',\n    chocolate: '#d2691e',\n    coral: '#ff7f50',\n    cornflowerblue: '#6495ed',\n    cornsilk: '#fff8dc',\n    crimson: '#dc143c',\n    cyan: '#00ffff',\n    darkblue: '#00008b',\n    darkcyan: '#008b8b',\n    darkgoldenrod: '#b8860b',\n    darkgray: '#a9a9a9',\n    darkgreen: '#006400',\n    darkgrey: '#a9a9a9',\n    darkkhaki: '#bdb76b',\n    darkmagenta: '#8b008b',\n    darkolivegreen: '#556b2f',\n    darkorange: '#ff8c00',\n    darkorchid: '#9932cc',\n    darkred: '#8b0000',\n    darksalmon: '#e9967a',\n    darkseagreen: '#8fbc8f',\n    darkslateblue: '#483d8b',\n    darkslategray: '#2f4f4f',\n    darkslategrey: '#2f4f4f',\n    darkturquoise: '#00ced1',\n    darkviolet: '#9400d3',\n    deeppink: '#ff1493',\n    deepskyblue: '#00bfff',\n    dimgray: '#696969',\n    dimgrey: '#696969',\n    dodgerblue: '#1e90ff',\n    firebrick: '#b22222',\n    floralwhite: '#fffaf0',\n    forestgreen: '#228b22',\n    fuchsia: '#ff00ff',\n    gainsboro: '#dcdcdc',\n    ghostwhite: '#f8f8ff',\n    gold: '#ffd700',\n    goldenrod: '#daa520',\n    gray: '#808080',\n    green: '#008000',\n    greenyellow: '#adff2f',\n    grey: '#808080',\n    honeydew: '#f0fff0',\n    hotpink: '#ff69b4',\n    indianred: '#cd5c5c',\n    indigo: '#4b0082',\n    ivory: '#fffff0',\n    khaki: '#f0e68c',\n    laserlemon: '#ffff54',\n    lavender: '#e6e6fa',\n    lavenderblush: '#fff0f5',\n    lawngreen: '#7cfc00',\n    lemonchiffon: '#fffacd',\n    lightblue: '#add8e6',\n    lightcoral: '#f08080',\n    lightcyan: '#e0ffff',\n    lightgoldenrod: '#fafad2',\n    lightgoldenrodyellow: '#fafad2',\n    lightgray: '#d3d3d3',\n    lightgreen: '#90ee90',\n    lightgrey: '#d3d3d3',\n    lightpink: '#ffb6c1',\n    lightsalmon: '#ffa07a',\n    lightseagreen: '#20b2aa',\n    lightskyblue: '#87cefa',\n    lightslategray: '#778899',\n    lightslategrey: '#778899',\n    lightsteelblue: '#b0c4de',\n    lightyellow: '#ffffe0',\n    lime: '#00ff00',\n    limegreen: '#32cd32',\n    linen: '#faf0e6',\n    magenta: '#ff00ff',\n    maroon: '#800000',\n    maroon2: '#7f0000',\n    maroon3: '#b03060',\n    mediumaquamarine: '#66cdaa',\n    mediumblue: '#0000cd',\n    mediumorchid: '#ba55d3',\n    mediumpurple: '#9370db',\n    mediumseagreen: '#3cb371',\n    mediumslateblue: '#7b68ee',\n    mediumspringgreen: '#00fa9a',\n    mediumturquoise: '#48d1cc',\n    mediumvioletred: '#c71585',\n    midnightblue: '#191970',\n    mintcream: '#f5fffa',\n    mistyrose: '#ffe4e1',\n    moccasin: '#ffe4b5',\n    navajowhite: '#ffdead',\n    navy: '#000080',\n    oldlace: '#fdf5e6',\n    olive: '#808000',\n    olivedrab: '#6b8e23',\n    orange: '#ffa500',\n    orangered: '#ff4500',\n    orchid: '#da70d6',\n    palegoldenrod: '#eee8aa',\n    palegreen: '#98fb98',\n    paleturquoise: '#afeeee',\n    palevioletred: '#db7093',\n    papayawhip: '#ffefd5',\n    peachpuff: '#ffdab9',\n    peru: '#cd853f',\n    pink: '#ffc0cb',\n    plum: '#dda0dd',\n    powderblue: '#b0e0e6',\n    purple: '#800080',\n    purple2: '#7f007f',\n    purple3: '#a020f0',\n    rebeccapurple: '#663399',\n    red: '#ff0000',\n    rosybrown: '#bc8f8f',\n    royalblue: '#4169e1',\n    saddlebrown: '#8b4513',\n    salmon: '#fa8072',\n    sandybrown: '#f4a460',\n    seagreen: '#2e8b57',\n    seashell: '#fff5ee',\n    sienna: '#a0522d',\n    silver: '#c0c0c0',\n    skyblue: '#87ceeb',\n    slateblue: '#6a5acd',\n    slategray: '#708090',\n    slategrey: '#708090',\n    snow: '#fffafa',\n    springgreen: '#00ff7f',\n    steelblue: '#4682b4',\n    tan: '#d2b48c',\n    teal: '#008080',\n    thistle: '#d8bfd8',\n    tomato: '#ff6347',\n    turquoise: '#40e0d0',\n    violet: '#ee82ee',\n    wheat: '#f5deb3',\n    white: '#ffffff',\n    whitesmoke: '#f5f5f5',\n    yellow: '#ffff00',\n    yellowgreen: '#9acd32'\n};\n\nexport default w3cx11;\n","const RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\nconst RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\nconst hex2rgb = (hex) => {\n    if (hex.match(RE_HEX)) {\n        // remove optional leading #\n        if (hex.length === 4 || hex.length === 7) {\n            hex = hex.substr(1);\n        }\n        // expand short-notation to full six-digit\n        if (hex.length === 3) {\n            hex = hex.split('');\n            hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n        }\n        const u = parseInt(hex, 16);\n        const r = u >> 16;\n        const g = (u >> 8) & 0xff;\n        const b = u & 0xff;\n        return [r, g, b, 1];\n    }\n\n    // match rgba hex format, eg #FF000077\n    if (hex.match(RE_HEXA)) {\n        if (hex.length === 5 || hex.length === 9) {\n            // remove optional leading #\n            hex = hex.substr(1);\n        }\n        // expand short-notation to full eight-digit\n        if (hex.length === 4) {\n            hex = hex.split('');\n            hex =\n                hex[0] +\n                hex[0] +\n                hex[1] +\n                hex[1] +\n                hex[2] +\n                hex[2] +\n                hex[3] +\n                hex[3];\n        }\n        const u = parseInt(hex, 16);\n        const r = (u >> 24) & 0xff;\n        const g = (u >> 16) & 0xff;\n        const b = (u >> 8) & 0xff;\n        const a = Math.round(((u & 0xff) / 0xff) * 100) / 100;\n        return [r, g, b, a];\n    }\n\n    // we used to check for css colors here\n    // if _input.css? and rgb = _input.css hex\n    //     return rgb\n\n    throw new Error(`unknown hex color: ${hex}`);\n};\n\nexport default hex2rgb;\n","import { unpack, last } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2hex = (...args) => {\n    let [r, g, b, a] = unpack(args, 'rgba');\n    let mode = last(args) || 'auto';\n    if (a === undefined) a = 1;\n    if (mode === 'auto') {\n        mode = a < 1 ? 'rgba' : 'rgb';\n    }\n    r = round(r);\n    g = round(g);\n    b = round(b);\n    const u = (r << 16) | (g << 8) | b;\n    let str = '000000' + u.toString(16); //#.toUpperCase();\n    str = str.substr(str.length - 6);\n    let hxa = '0' + round(a * 255).toString(16);\n    hxa = hxa.substr(hxa.length - 2);\n    switch (mode.toLowerCase()) {\n        case 'rgba':\n            return `#${str}${hxa}`;\n        case 'argb':\n            return `#${hxa}${str}`;\n        default:\n            return `#${str}`;\n    }\n};\n\nexport default rgb2hex;\n","import Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport w3cx11 from '../../colors/w3cx11.js';\nimport hex2rgb from '../hex/hex2rgb.js';\nimport rgb2hex from '../hex/rgb2hex.js';\n\nColor.prototype.name = function () {\n    const hex = rgb2hex(this._rgb, 'rgb');\n    for (let n of Object.keys(w3cx11)) {\n        if (w3cx11[n] === hex) return n.toLowerCase();\n    }\n    return hex;\n};\n\ninput.format.named = (name) => {\n    name = name.toLowerCase();\n    if (w3cx11[name]) return hex2rgb(w3cx11[name]);\n    throw new Error('unknown color name: ' + name);\n};\n\ninput.autodetect.push({\n    p: 5,\n    test: (h, ...rest) => {\n        if (!rest.length && type(h) === 'string' && w3cx11[h.toLowerCase()]) {\n            return 'named';\n        }\n    }\n});\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.alpha = function (a, mutate = false) {\n    if (a !== undefined && type(a) === 'number') {\n        if (mutate) {\n            this._rgb[3] = a;\n            return this;\n        }\n        return new Color([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n    }\n    return this._rgb[3];\n};\n","import Color from '../Color.js';\n\nColor.prototype.clipped = function () {\n    return this._rgb._clipped || false;\n};\n","const labConstants = {\n    // Corresponds roughly to RGB brighter/darker\n    Kn: 18,\n\n    // D65 standard referent\n    labWhitePoint: 'd65',\n    Xn: 0.95047,\n    Yn: 1,\n    Zn: 1.08883,\n\n    t0: 0.137931034, // 4 / 29\n    t1: 0.206896552, // 6 / 29\n    t2: 0.12841855, // 3 * t1 * t1\n    t3: 0.008856452, // t1 * t1 * t1,\n\n    kE: 216.0 / 24389.0,\n    kKE: 8.0,\n    kK: 24389.0 / 27.0,\n\n    RefWhiteRGB: {\n        // sRGB\n        X: 0.95047,\n        Y: 1,\n        Z: 1.08883\n    },\n\n    MtxRGB2XYZ: {\n        m00: 0.4124564390896922,\n        m01: 0.21267285140562253,\n        m02: 0.0193338955823293,\n        m10: 0.357576077643909,\n        m11: 0.715152155287818,\n        m12: 0.11919202588130297,\n        m20: 0.18043748326639894,\n        m21: 0.07217499330655958,\n        m22: 0.9503040785363679\n    },\n\n    MtxXYZ2RGB: {\n        m00: 3.2404541621141045,\n        m01: -0.9692660305051868,\n        m02: 0.055643430959114726,\n        m10: -1.5371385127977166,\n        m11: 1.8760108454466942,\n        m12: -0.2040259135167538,\n        m20: -0.498531409556016,\n        m21: 0.041556017530349834,\n        m22: 1.0572251882231791\n    },\n\n    // used in rgb2xyz\n    As: 0.9414285350000001,\n    Bs: 1.040417467,\n    Cs: 1.089532651,\n\n    MtxAdaptMa: {\n        m00: 0.8951,\n        m01: -0.7502,\n        m02: 0.0389,\n        m10: 0.2664,\n        m11: 1.7135,\n        m12: -0.0685,\n        m20: -0.1614,\n        m21: 0.0367,\n        m22: 1.0296\n    },\n\n    MtxAdaptMaI: {\n        m00: 0.9869929054667123,\n        m01: 0.43230526972339456,\n        m02: -0.008528664575177328,\n        m10: -0.14705425642099013,\n        m11: 0.5183602715367776,\n        m12: 0.04004282165408487,\n        m20: 0.15996265166373125,\n        m21: 0.0492912282128556,\n        m22: 0.9684866957875502\n    }\n};\n\nexport default labConstants;\n\n// taken from https://de.mathworks.com/help/images/ref/whitepoint.html\nconst ILLUMINANTS = new Map([\n    // ASTM E308-01\n    ['a', [1.0985, 0.35585]],\n    // Wyszecki & Stiles, p. 769\n    ['b', [1.0985, 0.35585]],\n    // C ASTM E308-01\n    ['c', [0.98074, 1.18232]],\n    // D50 (ASTM E308-01)\n    ['d50', [0.96422, 0.82521]],\n    // D55 (ASTM E308-01)\n    ['d55', [0.95682, 0.92149]],\n    // D65 (ASTM E308-01)\n    ['d65', [0.95047, 1.08883]],\n    // E (ASTM E308-01)\n    ['e', [1, 1, 1]],\n    // F2 (ASTM E308-01)\n    ['f2', [0.99186, 0.67393]],\n    // F7 (ASTM E308-01)\n    ['f7', [0.95041, 1.08747]],\n    // F11 (ASTM E308-01)\n    ['f11', [1.00962, 0.6435]],\n    ['icc', [0.96422, 0.82521]]\n]);\n\nexport function setLabWhitePoint(name) {\n    const ill = ILLUMINANTS.get(String(name).toLowerCase());\n    if (!ill) {\n        throw new Error('unknown Lab illuminant ' + name);\n    }\n    labConstants.labWhitePoint = name;\n    labConstants.Xn = ill[0];\n    labConstants.Zn = ill[1];\n}\n\nexport function getLabWhitePoint() {\n    return labConstants.labWhitePoint;\n}\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst lab2rgb = (...args) => {\n    args = unpack(args, 'lab');\n    const [L, a, b] = args;\n    const [x, y, z] = lab2xyz(L, a, b);\n    const [r, g, b_] = xyz2rgb(x, y, z);\n    return [r, g, b_, args.length > 3 ? args[3] : 1];\n};\n\nconst lab2xyz = (L, a, b) => {\n    const { kE, kK, kKE, Xn, Yn, Zn } = LAB_CONSTANTS;\n\n    const fy = (L + 16.0) / 116.0;\n    const fx = 0.002 * a + fy;\n    const fz = fy - 0.005 * b;\n\n    const fx3 = fx * fx * fx;\n    const fz3 = fz * fz * fz;\n\n    const xr = fx3 > kE ? fx3 : (116.0 * fx - 16.0) / kK;\n    const yr = L > kKE ? Math.pow((L + 16.0) / 116.0, 3.0) : L / kK;\n    const zr = fz3 > kE ? fz3 : (116.0 * fz - 16.0) / kK;\n\n    const x = xr * Xn;\n    const y = yr * Yn;\n    const z = zr * Zn;\n\n    return [x, y, z];\n};\n\nconst compand = (linear) => {\n    /* sRGB */\n    const sign = Math.sign(linear);\n    linear = Math.abs(linear);\n    return (\n        (linear <= 0.0031308\n            ? linear * 12.92\n            : 1.055 * Math.pow(linear, 1.0 / 2.4) - 0.055) * sign\n    );\n};\n\nconst xyz2rgb = (x, y, z) => {\n    const { MtxAdaptMa, MtxAdaptMaI, MtxXYZ2RGB, RefWhiteRGB, Xn, Yn, Zn } =\n        LAB_CONSTANTS;\n\n    const As = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n    const Bs = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n    const Cs = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n    const Ad =\n        RefWhiteRGB.X * MtxAdaptMa.m00 +\n        RefWhiteRGB.Y * MtxAdaptMa.m10 +\n        RefWhiteRGB.Z * MtxAdaptMa.m20;\n    const Bd =\n        RefWhiteRGB.X * MtxAdaptMa.m01 +\n        RefWhiteRGB.Y * MtxAdaptMa.m11 +\n        RefWhiteRGB.Z * MtxAdaptMa.m21;\n    const Cd =\n        RefWhiteRGB.X * MtxAdaptMa.m02 +\n        RefWhiteRGB.Y * MtxAdaptMa.m12 +\n        RefWhiteRGB.Z * MtxAdaptMa.m22;\n\n    const X1 =\n        (x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20) *\n        (Ad / As);\n    const Y1 =\n        (x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21) *\n        (Bd / Bs);\n    const Z1 =\n        (x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22) *\n        (Cd / Cs);\n\n    const X2 =\n        X1 * MtxAdaptMaI.m00 + Y1 * MtxAdaptMaI.m10 + Z1 * MtxAdaptMaI.m20;\n    const Y2 =\n        X1 * MtxAdaptMaI.m01 + Y1 * MtxAdaptMaI.m11 + Z1 * MtxAdaptMaI.m21;\n    const Z2 =\n        X1 * MtxAdaptMaI.m02 + Y1 * MtxAdaptMaI.m12 + Z1 * MtxAdaptMaI.m22;\n\n    const r = compand(\n        X2 * MtxXYZ2RGB.m00 + Y2 * MtxXYZ2RGB.m10 + Z2 * MtxXYZ2RGB.m20\n    );\n    const g = compand(\n        X2 * MtxXYZ2RGB.m01 + Y2 * MtxXYZ2RGB.m11 + Z2 * MtxXYZ2RGB.m21\n    );\n    const b = compand(\n        X2 * MtxXYZ2RGB.m02 + Y2 * MtxXYZ2RGB.m12 + Z2 * MtxXYZ2RGB.m22\n    );\n\n    return [r * 255, g * 255, b * 255];\n};\n\nexport default lab2rgb;\nexport { xyz2rgb };\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\nconst rgb2lab = (...args) => {\n    const [r, g, b, ...rest] = unpack(args, 'rgb');\n    const [x, y, z] = rgb2xyz(r, g, b);\n    const [L, a, b_] = xyz2lab(x, y, z);\n    return [L, a, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nfunction xyz2lab(x, y, z) {\n    const { Xn, Yn, Zn, kE, kK } = LAB_CONSTANTS;\n    const xr = x / Xn;\n    const yr = y / Yn;\n    const zr = z / Zn;\n\n    const fx = xr > kE ? Math.pow(xr, 1.0 / 3.0) : (kK * xr + 16.0) / 116.0;\n    const fy = yr > kE ? Math.pow(yr, 1.0 / 3.0) : (kK * yr + 16.0) / 116.0;\n    const fz = zr > kE ? Math.pow(zr, 1.0 / 3.0) : (kK * zr + 16.0) / 116.0;\n\n    return [116.0 * fy - 16.0, 500.0 * (fx - fy), 200.0 * (fy - fz)];\n}\n\nfunction gammaAdjustSRGB(companded) {\n    const sign = Math.sign(companded);\n    companded = Math.abs(companded);\n    const linear =\n        companded <= 0.04045\n            ? companded / 12.92\n            : Math.pow((companded + 0.055) / 1.055, 2.4);\n    return linear * sign;\n}\n\nconst rgb2xyz = (r, g, b) => {\n    // normalize and gamma adjust\n    r = gammaAdjustSRGB(r / 255);\n    g = gammaAdjustSRGB(g / 255);\n    b = gammaAdjustSRGB(b / 255);\n\n    const { MtxRGB2XYZ, MtxAdaptMa, MtxAdaptMaI, Xn, Yn, Zn, As, Bs, Cs } =\n        LAB_CONSTANTS;\n\n    let x = r * MtxRGB2XYZ.m00 + g * MtxRGB2XYZ.m10 + b * MtxRGB2XYZ.m20;\n    let y = r * MtxRGB2XYZ.m01 + g * MtxRGB2XYZ.m11 + b * MtxRGB2XYZ.m21;\n    let z = r * MtxRGB2XYZ.m02 + g * MtxRGB2XYZ.m12 + b * MtxRGB2XYZ.m22;\n\n    const Ad = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n    const Bd = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n    const Cd = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n    let X = x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20;\n    let Y = x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21;\n    let Z = x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22;\n\n    X *= Ad / As;\n    Y *= Bd / Bs;\n    Z *= Cd / Cs;\n\n    x = X * MtxAdaptMaI.m00 + Y * MtxAdaptMaI.m10 + Z * MtxAdaptMaI.m20;\n    y = X * MtxAdaptMaI.m01 + Y * MtxAdaptMaI.m11 + Z * MtxAdaptMaI.m21;\n    z = X * MtxAdaptMaI.m02 + Y * MtxAdaptMaI.m12 + Z * MtxAdaptMaI.m22;\n\n    return [x, y, z];\n};\n\nexport default rgb2lab;\nexport { rgb2xyz };\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lab2rgb from './lab2rgb.js';\nimport rgb2lab from './rgb2lab.js';\nimport { getLabWhitePoint, setLabWhitePoint } from './lab-constants.js';\n\nColor.prototype.lab = function () {\n    return rgb2lab(this._rgb);\n};\n\nconst lab = (...args) => new Color(...args, 'lab');\nObject.assign(chroma, { lab, getLabWhitePoint, setLabWhitePoint });\n\ninput.format.lab = lab2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'lab');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'lab';\n        }\n    }\n});\n\nexport { lab, getLabWhitePoint, setLabWhitePoint };\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.darken = function (amount = 1) {\n    const me = this;\n    const lab = me.lab();\n    lab[0] -= LAB_CONSTANTS.Kn * amount;\n    return new Color(lab, 'lab').alpha(me.alpha(), true);\n};\n\nColor.prototype.brighten = function (amount = 1) {\n    return this.darken(-amount);\n};\n\nColor.prototype.darker = Color.prototype.darken;\nColor.prototype.brighter = Color.prototype.brighten;\n","import Color from '../Color.js';\n\nColor.prototype.get = function (mc) {\n    const [mode, channel] = mc.split('.');\n    const src = this[mode]();\n    if (channel) {\n        const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n        if (i > -1) return src[i];\n        throw new Error(`unknown channel ${channel} in mode ${mode}`);\n    } else {\n        return src;\n    }\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nconst { pow } = Math;\n\nconst EPS = 1e-7;\nconst MAX_ITER = 20;\n\nColor.prototype.luminance = function (lum, mode = 'rgb') {\n    if (lum !== undefined && type(lum) === 'number') {\n        if (lum === 0) {\n            // return pure black\n            return new Color([0, 0, 0, this._rgb[3]], 'rgb');\n        }\n        if (lum === 1) {\n            // return pure white\n            return new Color([255, 255, 255, this._rgb[3]], 'rgb');\n        }\n        // compute new color using...\n        let cur_lum = this.luminance();\n        let max_iter = MAX_ITER;\n\n        const test = (low, high) => {\n            const mid = low.interpolate(high, 0.5, mode);\n            const lm = mid.luminance();\n            if (Math.abs(lum - lm) < EPS || !max_iter--) {\n                // close enough\n                return mid;\n            }\n            return lm > lum ? test(low, mid) : test(mid, high);\n        };\n\n        const rgb = (\n            cur_lum > lum\n                ? test(new Color([0, 0, 0]), this)\n                : test(this, new Color([255, 255, 255]))\n        ).rgb();\n        return new Color([...rgb, this._rgb[3]]);\n    }\n    return rgb2luminance(...this._rgb.slice(0, 3));\n};\n\nconst rgb2luminance = (r, g, b) => {\n    // relative luminance\n    // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n    r = luminance_x(r);\n    g = luminance_x(g);\n    b = luminance_x(b);\n    return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nconst luminance_x = (x) => {\n    x /= 255;\n    return x <= 0.03928 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n};\n","export default {};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nimport interpolator from '../interpolator/index.js';\n\nexport default (col1, col2, f = 0.5, ...rest) => {\n    let mode = rest[0] || 'lrgb';\n    if (!interpolator[mode] && !rest.length) {\n        // fall back to the first supported mode\n        mode = Object.keys(interpolator)[0];\n    }\n    if (!interpolator[mode]) {\n        throw new Error(`interpolation mode ${mode} is not defined`);\n    }\n    if (type(col1) !== 'object') col1 = new Color(col1);\n    if (type(col2) !== 'object') col2 = new Color(col2);\n    return interpolator[mode](col1, col2, f).alpha(\n        col1.alpha() + f * (col2.alpha() - col1.alpha())\n    );\n};\n","import Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.mix = Color.prototype.interpolate = function (\n    col2,\n    f = 0.5,\n    ...rest\n) {\n    return mix(this, col2, f, ...rest);\n};\n","import Color from '../Color.js';\n\nColor.prototype.premultiply = function (mutate = false) {\n    const rgb = this._rgb;\n    const a = rgb[3];\n    if (mutate) {\n        this._rgb = [rgb[0] * a, rgb[1] * a, rgb[2] * a, a];\n        return this;\n    } else {\n        return new Color([rgb[0] * a, rgb[1] * a, rgb[2] * a, a], 'rgb');\n    }\n};\n","import { unpack, DEG2RAD } from '../../utils/index.js';\nconst { sin, cos } = Math;\n\nconst lch2lab = (...args) => {\n    /*\n    Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n    These formulas were invented by David Dalrymple to obtain maximum contrast without going\n    out of gamut if the parameters are in the range 0-1.\n\n    A saturation multiplier was added by Gregor Aisch\n    */\n    let [l, c, h] = unpack(args, 'lch');\n    if (isNaN(h)) h = 0;\n    h = h * DEG2RAD;\n    return [l, cos(h) * c, sin(h) * c];\n};\n\nexport default lch2lab;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from './lch2lab.js';\nimport lab2rgb from '../lab/lab2rgb.js';\n\nconst lch2rgb = (...args) => {\n    args = unpack(args, 'lch');\n    const [l, c, h] = args;\n    const [L, a, b_] = lch2lab(l, c, h);\n    const [r, g, b] = lab2rgb(L, a, b_);\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default lch2rgb;\n","import { unpack, reverse3 } from '../../utils/index.js';\nimport lch2rgb from './lch2rgb.js';\n\nconst hcl2rgb = (...args) => {\n    const hcl = reverse3(unpack(args, 'hcl'));\n    return lch2rgb(...hcl);\n};\n\nexport default hcl2rgb;\n","import { unpack, RAD2DEG } from '../../utils/index.js';\nconst { sqrt, atan2, round } = Math;\n\nconst lab2lch = (...args) => {\n    const [l, a, b] = unpack(args, 'lab');\n    const c = sqrt(a * a + b * b);\n    let h = (atan2(b, a) * RAD2DEG + 360) % 360;\n    if (round(c * 10000) === 0) h = Number.NaN;\n    return [l, c, h];\n};\n\nexport default lab2lch;\n","import { unpack } from '../../utils/index.js';\nimport rgb2lab from '../lab/rgb2lab.js';\nimport lab2lch from './lab2lch.js';\n\nconst rgb2lch = (...args) => {\n    const [r, g, b, ...rest] = unpack(args, 'rgb');\n    const [l, a, b_] = rgb2lab(r, g, b);\n    const [L, c, h] = lab2lch(l, a, b_);\n    return [L, c, h, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default rgb2lch;\n","import { unpack, type, reverse3 } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lch2rgb from './lch2rgb.js';\nimport hcl2rgb from './hcl2rgb.js';\nimport rgb2lch from './rgb2lch.js';\n\nColor.prototype.lch = function () {\n    return rgb2lch(this._rgb);\n};\nColor.prototype.hcl = function () {\n    return reverse3(rgb2lch(this._rgb));\n};\n\nconst lch = (...args) => new Color(...args, 'lch');\nconst hcl = (...args) => new Color(...args, 'hcl');\n\nObject.assign(chroma, { lch, hcl });\n\ninput.format.lch = lch2rgb;\ninput.format.hcl = hcl2rgb;\n['lch', 'hcl'].forEach((m) =>\n    input.autodetect.push({\n        p: 2,\n        test: (...args) => {\n            args = unpack(args, m);\n            if (type(args) === 'array' && args.length === 3) {\n                return m;\n            }\n        }\n    })\n);\n\nexport { lch, hcl };\n","import '../io/lch/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.saturate = function (amount = 1) {\n    const me = this;\n    const lch = me.lch();\n    lch[1] += LAB_CONSTANTS.Kn * amount;\n    if (lch[1] < 0) lch[1] = 0;\n    return new Color(lch, 'lch').alpha(me.alpha(), true);\n};\n\nColor.prototype.desaturate = function (amount = 1) {\n    return this.saturate(-amount);\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.set = function (mc, value, mutate = false) {\n    const [mode, channel] = mc.split('.');\n    const src = this[mode]();\n    if (channel) {\n        const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n        if (i > -1) {\n            if (type(value) == 'string') {\n                switch (value.charAt(0)) {\n                    case '+':\n                        src[i] += +value;\n                        break;\n                    case '-':\n                        src[i] += +value;\n                        break;\n                    case '*':\n                        src[i] *= +value.substr(1);\n                        break;\n                    case '/':\n                        src[i] /= +value.substr(1);\n                        break;\n                    default:\n                        src[i] = +value;\n                }\n            } else if (type(value) === 'number') {\n                src[i] = value;\n            } else {\n                throw new Error(`unsupported value for Color.set`);\n            }\n            const out = new Color(src, mode);\n            if (mutate) {\n                this._rgb = out._rgb;\n                return this;\n            }\n            return out;\n        }\n        throw new Error(`unknown channel ${channel} in mode ${mode}`);\n    } else {\n        return src;\n    }\n};\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.tint = function (f = 0.5, ...rest) {\n    return mix(this, 'white', f, ...rest);\n};\n\nColor.prototype.shade = function (f = 0.5, ...rest) {\n    return mix(this, 'black', f, ...rest);\n};\n","import Color from '../Color.js';\nimport index from './index.js';\n\nconst rgb = (col1, col2, f) => {\n    const xyz0 = col1._rgb;\n    const xyz1 = col2._rgb;\n    return new Color(\n        xyz0[0] + f * (xyz1[0] - xyz0[0]),\n        xyz0[1] + f * (xyz1[1] - xyz0[1]),\n        xyz0[2] + f * (xyz1[2] - xyz0[2]),\n        'rgb'\n    );\n};\n\n// register interpolator\nindex.rgb = rgb;\n\nexport default rgb;\n","import Color from '../Color.js';\nconst { sqrt, pow } = Math;\nimport index from './index.js';\n\nconst lrgb = (col1, col2, f) => {\n    const [x1, y1, z1] = col1._rgb;\n    const [x2, y2, z2] = col2._rgb;\n    return new Color(\n        sqrt(pow(x1, 2) * (1 - f) + pow(x2, 2) * f),\n        sqrt(pow(y1, 2) * (1 - f) + pow(y2, 2) * f),\n        sqrt(pow(z1, 2) * (1 - f) + pow(z2, 2) * f),\n        'rgb'\n    );\n};\n\n// register interpolator\nindex.lrgb = lrgb;\n\nexport default lrgb;\n","import '../io/lab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst lab = (col1, col2, f) => {\n    const xyz0 = col1.lab();\n    const xyz1 = col2.lab();\n    return new Color(\n        xyz0[0] + f * (xyz1[0] - xyz0[0]),\n        xyz0[1] + f * (xyz1[1] - xyz0[1]),\n        xyz0[2] + f * (xyz1[2] - xyz0[2]),\n        'lab'\n    );\n};\n\n// register interpolator\nindex.lab = lab;\n\nexport default lab;\n","import Color from '../Color.js';\n\nexport default (col1, col2, f, m) => {\n    let xyz0, xyz1;\n    if (m === 'hsl') {\n        xyz0 = col1.hsl();\n        xyz1 = col2.hsl();\n    } else if (m === 'hsv') {\n        xyz0 = col1.hsv();\n        xyz1 = col2.hsv();\n    } else if (m === 'hcg') {\n        xyz0 = col1.hcg();\n        xyz1 = col2.hcg();\n    } else if (m === 'hsi') {\n        xyz0 = col1.hsi();\n        xyz1 = col2.hsi();\n    } else if (m === 'lch' || m === 'hcl') {\n        m = 'hcl';\n        xyz0 = col1.hcl();\n        xyz1 = col2.hcl();\n    } else if (m === 'oklch') {\n        xyz0 = col1.oklch().reverse();\n        xyz1 = col2.oklch().reverse();\n    }\n\n    let hue0, hue1, sat0, sat1, lbv0, lbv1;\n    if (m.substr(0, 1) === 'h' || m === 'oklch') {\n        [hue0, sat0, lbv0] = xyz0;\n        [hue1, sat1, lbv1] = xyz1;\n    }\n\n    let sat, hue, lbv, dh;\n\n    if (!isNaN(hue0) && !isNaN(hue1)) {\n        // both colors have hue\n        if (hue1 > hue0 && hue1 - hue0 > 180) {\n            dh = hue1 - (hue0 + 360);\n        } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n            dh = hue1 + 360 - hue0;\n        } else {\n            dh = hue1 - hue0;\n        }\n        hue = hue0 + f * dh;\n    } else if (!isNaN(hue0)) {\n        hue = hue0;\n        if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') sat = sat0;\n    } else if (!isNaN(hue1)) {\n        hue = hue1;\n        if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') sat = sat1;\n    } else {\n        hue = Number.NaN;\n    }\n\n    if (sat === undefined) sat = sat0 + f * (sat1 - sat0);\n    lbv = lbv0 + f * (lbv1 - lbv0);\n    return m === 'oklch'\n        ? new Color([lbv, sat, hue], m)\n        : new Color([hue, sat, lbv], m);\n};\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst lch = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'lch');\n};\n\n// register interpolator\nindex.lch = lch;\nindex.hcl = lch;\n\nexport default lch;\n","import { type } from '../../utils/index.js';\n\nconst num2rgb = (num) => {\n    if (type(num) == 'number' && num >= 0 && num <= 0xffffff) {\n        const r = num >> 16;\n        const g = (num >> 8) & 0xff;\n        const b = num & 0xff;\n        return [r, g, b, 1];\n    }\n    throw new Error('unknown num color: ' + num);\n};\n\nexport default num2rgb;\n","import { unpack } from '../../utils/index.js';\n\nconst rgb2num = (...args) => {\n    const [r, g, b] = unpack(args, 'rgb');\n    return (r << 16) + (g << 8) + b;\n};\n\nexport default rgb2num;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\nimport num2rgb from './num2rgb.js';\nimport rgb2num from './rgb2num.js';\n\nColor.prototype.num = function () {\n    return rgb2num(this._rgb);\n};\n\nconst num = (...args) => new Color(...args, 'num');\n\nObject.assign(chroma, { num });\n\ninput.format.num = num2rgb;\n\ninput.autodetect.push({\n    p: 5,\n    test: (...args) => {\n        if (\n            args.length === 1 &&\n            type(args[0]) === 'number' &&\n            args[0] >= 0 &&\n            args[0] <= 0xffffff\n        ) {\n            return 'num';\n        }\n    }\n});\n\nexport { num };\n","import '../io/num/index.js';\nimport index from './index.js';\n\nimport Color from '../Color.js';\n\nconst num = (col1, col2, f) => {\n    const c1 = col1.num();\n    const c2 = col2.num();\n    return new Color(c1 + f * (c2 - c1), 'num');\n};\n\n// register interpolator\nindex.num = num;\n\nexport default num;\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\n/*\n * this is basically just HSV with some minor tweaks\n *\n * hue.. [0..360]\n * chroma .. [0..1]\n * grayness .. [0..1]\n */\n\nconst hcg2rgb = (...args) => {\n    args = unpack(args, 'hcg');\n    let [h, c, _g] = args;\n    let r, g, b;\n    _g = _g * 255;\n    const _c = c * 255;\n    if (c === 0) {\n        r = g = b = _g;\n    } else {\n        if (h === 360) h = 0;\n        if (h > 360) h -= 360;\n        if (h < 0) h += 360;\n        h /= 60;\n        const i = floor(h);\n        const f = h - i;\n        const p = _g * (1 - c);\n        const q = p + _c * (1 - f);\n        const t = p + _c * f;\n        const v = p + _c;\n        switch (i) {\n            case 0:\n                [r, g, b] = [v, t, p];\n                break;\n            case 1:\n                [r, g, b] = [q, v, p];\n                break;\n            case 2:\n                [r, g, b] = [p, v, t];\n                break;\n            case 3:\n                [r, g, b] = [p, q, v];\n                break;\n            case 4:\n                [r, g, b] = [t, p, v];\n                break;\n            case 5:\n                [r, g, b] = [v, p, q];\n                break;\n        }\n    }\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hcg2rgb;\n","import { unpack, max, min } from '../../utils/index.js';\n\nconst rgb2hcg = (...args) => {\n    const [r, g, b] = unpack(args, 'rgb');\n    const minRgb = min(r, g, b);\n    const maxRgb = max(r, g, b);\n    const delta = maxRgb - minRgb;\n    const c = (delta * 100) / 255;\n    const _g = (minRgb / (255 - delta)) * 100;\n    let h;\n    if (delta === 0) {\n        h = Number.NaN;\n    } else {\n        if (r === maxRgb) h = (g - b) / delta;\n        if (g === maxRgb) h = 2 + (b - r) / delta;\n        if (b === maxRgb) h = 4 + (r - g) / delta;\n        h *= 60;\n        if (h < 0) h += 360;\n    }\n    return [h, c, _g];\n};\n\nexport default rgb2hcg;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hcg2rgb from './hcg2rgb.js';\nimport rgb2hcg from './rgb2hcg.js';\n\nColor.prototype.hcg = function () {\n    return rgb2hcg(this._rgb);\n};\n\nconst hcg = (...args) => new Color(...args, 'hcg');\nchroma.hcg = hcg;\n\ninput.format.hcg = hcg2rgb;\n\ninput.autodetect.push({\n    p: 1,\n    test: (...args) => {\n        args = unpack(args, 'hcg');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'hcg';\n        }\n    }\n});\n\nexport { hcg };\n","import '../io/hcg/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hcg = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'hcg');\n};\n\n// register interpolator\nindex.hcg = hcg;\n\nexport default hcg;\n","import { unpack, limit, TWOPI, PITHIRD } from '../../utils/index.js';\nconst { cos } = Math;\n\n/*\n * hue [0..360]\n * saturation [0..1]\n * intensity [0..1]\n */\nconst hsi2rgb = (...args) => {\n    /*\n    borrowed from here:\n    http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n    */\n    args = unpack(args, 'hsi');\n    let [h, s, i] = args;\n    let r, g, b;\n\n    if (isNaN(h)) h = 0;\n    if (isNaN(s)) s = 0;\n    // normalize hue\n    if (h > 360) h -= 360;\n    if (h < 0) h += 360;\n    h /= 360;\n    if (h < 1 / 3) {\n        b = (1 - s) / 3;\n        r = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n        g = 1 - (b + r);\n    } else if (h < 2 / 3) {\n        h -= 1 / 3;\n        r = (1 - s) / 3;\n        g = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n        b = 1 - (r + g);\n    } else {\n        h -= 2 / 3;\n        g = (1 - s) / 3;\n        b = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n        r = 1 - (g + b);\n    }\n    r = limit(i * r * 3);\n    g = limit(i * g * 3);\n    b = limit(i * b * 3);\n    return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsi2rgb;\n","import { unpack, TWOPI } from '../../utils/index.js';\nconst { min, sqrt, acos } = Math;\n\nconst rgb2hsi = (...args) => {\n    /*\n    borrowed from here:\n    http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n    */\n    let [r, g, b] = unpack(args, 'rgb');\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    let h;\n    const min_ = min(r, g, b);\n    const i = (r + g + b) / 3;\n    const s = i > 0 ? 1 - min_ / i : 0;\n    if (s === 0) {\n        h = NaN;\n    } else {\n        h = (r - g + (r - b)) / 2;\n        h /= sqrt((r - g) * (r - g) + (r - b) * (g - b));\n        h = acos(h);\n        if (b > g) {\n            h = TWOPI - h;\n        }\n        h /= TWOPI;\n    }\n    return [h * 360, s, i];\n};\n\nexport default rgb2hsi;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsi2rgb from './hsi2rgb.js';\nimport rgb2hsi from './rgb2hsi.js';\n\nColor.prototype.hsi = function () {\n    return rgb2hsi(this._rgb);\n};\n\nconst hsi = (...args) => new Color(...args, 'hsi');\nchroma.hsi = hsi;\n\ninput.format.hsi = hsi2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'hsi');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'hsi';\n        }\n    }\n});\n\nexport { hsi };\n","import '../io/hsi/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsi = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'hsi');\n};\n\n// register interpolator\nindex.hsi = hsi;\n\nexport default hsi;\n","import { unpack } from '../../utils/index.js';\n\nconst hsl2rgb = (...args) => {\n    args = unpack(args, 'hsl');\n    const [h, s, l] = args;\n    let r, g, b;\n    if (s === 0) {\n        r = g = b = l * 255;\n    } else {\n        const t3 = [0, 0, 0];\n        const c = [0, 0, 0];\n        const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        const t1 = 2 * l - t2;\n        const h_ = h / 360;\n        t3[0] = h_ + 1 / 3;\n        t3[1] = h_;\n        t3[2] = h_ - 1 / 3;\n        for (let i = 0; i < 3; i++) {\n            if (t3[i] < 0) t3[i] += 1;\n            if (t3[i] > 1) t3[i] -= 1;\n            if (6 * t3[i] < 1) c[i] = t1 + (t2 - t1) * 6 * t3[i];\n            else if (2 * t3[i] < 1) c[i] = t2;\n            else if (3 * t3[i] < 2) c[i] = t1 + (t2 - t1) * (2 / 3 - t3[i]) * 6;\n            else c[i] = t1;\n        }\n        [r, g, b] = [c[0] * 255, c[1] * 255, c[2] * 255];\n    }\n    if (args.length > 3) {\n        // keep alpha channel\n        return [r, g, b, args[3]];\n    }\n    return [r, g, b, 1];\n};\n\nexport default hsl2rgb;\n","import { unpack, min, max } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - rgb2hsl(r,g,b)\n * - rgb2hsl(r,g,b,a)\n * - rgb2hsl([r,g,b])\n * - rgb2hsl([r,g,b,a])\n * - rgb2hsl({r,g,b,a})\n */\nconst rgb2hsl = (...args) => {\n    args = unpack(args, 'rgba');\n    let [r, g, b] = args;\n\n    r /= 255;\n    g /= 255;\n    b /= 255;\n\n    const minRgb = min(r, g, b);\n    const maxRgb = max(r, g, b);\n\n    const l = (maxRgb + minRgb) / 2;\n    let s, h;\n\n    if (maxRgb === minRgb) {\n        s = 0;\n        h = Number.NaN;\n    } else {\n        s =\n            l < 0.5\n                ? (maxRgb - minRgb) / (maxRgb + minRgb)\n                : (maxRgb - minRgb) / (2 - maxRgb - minRgb);\n    }\n\n    if (r == maxRgb) h = (g - b) / (maxRgb - minRgb);\n    else if (g == maxRgb) h = 2 + (b - r) / (maxRgb - minRgb);\n    else if (b == maxRgb) h = 4 + (r - g) / (maxRgb - minRgb);\n\n    h *= 60;\n    if (h < 0) h += 360;\n    if (args.length > 3 && args[3] !== undefined) return [h, s, l, args[3]];\n    return [h, s, l];\n};\n\nexport default rgb2hsl;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsl2rgb from './hsl2rgb.js';\nimport rgb2hsl from './rgb2hsl.js';\n\nColor.prototype.hsl = function () {\n    return rgb2hsl(this._rgb);\n};\n\nconst hsl = (...args) => new Color(...args, 'hsl');\nchroma.hsl = hsl;\n\ninput.format.hsl = hsl2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'hsl');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'hsl';\n        }\n    }\n});\n\nexport { hsl };\n","import '../io/hsl/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsl = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'hsl');\n};\n\n// register interpolator\nindex.hsl = hsl;\n\nexport default hsl;\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\nconst hsv2rgb = (...args) => {\n    args = unpack(args, 'hsv');\n    let [h, s, v] = args;\n    let r, g, b;\n    v *= 255;\n    if (s === 0) {\n        r = g = b = v;\n    } else {\n        if (h === 360) h = 0;\n        if (h > 360) h -= 360;\n        if (h < 0) h += 360;\n        h /= 60;\n\n        const i = floor(h);\n        const f = h - i;\n        const p = v * (1 - s);\n        const q = v * (1 - s * f);\n        const t = v * (1 - s * (1 - f));\n\n        switch (i) {\n            case 0:\n                [r, g, b] = [v, t, p];\n                break;\n            case 1:\n                [r, g, b] = [q, v, p];\n                break;\n            case 2:\n                [r, g, b] = [p, v, t];\n                break;\n            case 3:\n                [r, g, b] = [p, q, v];\n                break;\n            case 4:\n                [r, g, b] = [t, p, v];\n                break;\n            case 5:\n                [r, g, b] = [v, p, q];\n                break;\n        }\n    }\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsv2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { min, max } = Math;\n\n/*\n * supported arguments:\n * - rgb2hsv(r,g,b)\n * - rgb2hsv([r,g,b])\n * - rgb2hsv({r,g,b})\n */\nconst rgb2hsl = (...args) => {\n    args = unpack(args, 'rgb');\n    let [r, g, b] = args;\n    const min_ = min(r, g, b);\n    const max_ = max(r, g, b);\n    const delta = max_ - min_;\n    let h, s, v;\n    v = max_ / 255.0;\n    if (max_ === 0) {\n        h = Number.NaN;\n        s = 0;\n    } else {\n        s = delta / max_;\n        if (r === max_) h = (g - b) / delta;\n        if (g === max_) h = 2 + (b - r) / delta;\n        if (b === max_) h = 4 + (r - g) / delta;\n        h *= 60;\n        if (h < 0) h += 360;\n    }\n    return [h, s, v];\n};\n\nexport default rgb2hsl;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsv2rgb from './hsv2rgb.js';\nimport rgb2hsv from './rgb2hsv.js';\n\nColor.prototype.hsv = function () {\n    return rgb2hsv(this._rgb);\n};\n\nconst hsv = (...args) => new Color(...args, 'hsv');\nchroma.hsv = hsv;\n\ninput.format.hsv = hsv2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'hsv');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'hsv';\n        }\n    }\n});\n\nexport { hsv };\n","import '../io/hsv/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsv = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'hsv');\n};\n\n// register interpolator\nindex.hsv = hsv;\n\nexport default hsv;\n","// from https://www.w3.org/TR/css-color-4/multiply-matrices.js\nexport default function multiplyMatrices(A, B) {\n    let m = A.length;\n\n    if (!Array.isArray(A[0])) {\n        // A is vector, convert to [[a, b, c, ...]]\n        A = [A];\n    }\n\n    if (!Array.isArray(B[0])) {\n        // B is vector, convert to [[a], [b], [c], ...]]\n        B = B.map((x) => [x]);\n    }\n\n    let p = B[0].length;\n    let B_cols = B[0].map((_, i) => B.map((x) => x[i])); // transpose B\n    let product = A.map((row) =>\n        B_cols.map((col) => {\n            if (!Array.isArray(row)) {\n                return col.reduce((a, c) => a + c * row, 0);\n            }\n\n            return row.reduce((a, c, i) => a + c * (col[i] || 0), 0);\n        })\n    );\n\n    if (m === 1) {\n        product = product[0]; // Avoid [[a, b, c, ...]]\n    }\n\n    if (p === 1) {\n        return product.map((x) => x[0]); // Avoid [[a], [b], [c], ...]]\n    }\n\n    return product;\n}\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { xyz2rgb } from '../lab/lab2rgb.js';\n\nconst oklab2rgb = (...args) => {\n    args = unpack(args, 'lab');\n    const [L, a, b, ...rest] = args;\n    const [X, Y, Z] = OKLab_to_XYZ([L, a, b]);\n    const [r, g, b_] = xyz2rgb(X, Y, Z);\n    return [r, g, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction OKLab_to_XYZ(OKLab) {\n    // Given OKLab, convert to XYZ relative to D65\n    var LMStoXYZ = [\n        [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],\n        [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],\n        [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]\n    ];\n    var OKLabtoLMS = [\n        [1.0, 0.3963377773761749, 0.2158037573099136],\n        [1.0, -0.1055613458156586, -0.0638541728258133],\n        [1.0, -0.0894841775298119, -1.2914855480194092]\n    ];\n\n    var LMSnl = multiplyMatrices(OKLabtoLMS, OKLab);\n    return multiplyMatrices(\n        LMStoXYZ,\n        LMSnl.map((c) => c ** 3)\n    );\n}\n\nexport default oklab2rgb;\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { rgb2xyz } from '../lab/rgb2lab.js';\n\nconst rgb2oklab = (...args) => {\n    const [r, g, b, ...rest] = unpack(args, 'rgb');\n    const xyz = rgb2xyz(r, g, b);\n    const oklab = XYZ_to_OKLab(xyz);\n    return [...oklab, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction XYZ_to_OKLab(XYZ) {\n    // Given XYZ relative to D65, convert to OKLab\n    const XYZtoLMS = [\n        [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n        [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n        [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n    ];\n    const LMStoOKLab = [\n        [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n        [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n        [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n    ];\n\n    const LMS = multiplyMatrices(XYZtoLMS, XYZ);\n    // JavaScript Math.cbrt returns a sign-matched cube root\n    // beware if porting to other languages\n    // especially if tempted to use a general power function\n    return multiplyMatrices(\n        LMStoOKLab,\n        LMS.map((c) => Math.cbrt(c))\n    );\n    // L in range [0,1]. For use in CSS, multiply by 100 and add a percent\n}\n\nexport default rgb2oklab;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklab2rgb from './oklab2rgb.js';\nimport rgb2oklab from './rgb2oklab.js';\n\nColor.prototype.oklab = function () {\n    return rgb2oklab(this._rgb);\n};\n\nconst oklab = (...args) => new Color(...args, 'oklab');\nObject.assign(chroma, { oklab });\n\ninput.format.oklab = oklab2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'oklab');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'oklab';\n        }\n    }\n});\n\nexport { oklab };\n","import '../io/oklab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst oklab = (col1, col2, f) => {\n    const xyz0 = col1.oklab();\n    const xyz1 = col2.oklab();\n    return new Color(\n        xyz0[0] + f * (xyz1[0] - xyz0[0]),\n        xyz0[1] + f * (xyz1[1] - xyz0[1]),\n        xyz0[2] + f * (xyz1[2] - xyz0[2]),\n        'oklab'\n    );\n};\n\n// register interpolator\nindex.oklab = oklab;\n\nexport default oklab;\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst oklch = (col1, col2, f) => {\n    return interpolate_hsx(col1, col2, f, 'oklch');\n};\n\n// register interpolator\nindex.oklch = oklch;\n\nexport default oklch;\n","import Color from '../Color.js';\nimport { clip_rgb } from '../utils/index.js';\n\nconst { pow, sqrt, PI, cos, sin, atan2 } = Math;\n\nexport default (colors, mode = 'lrgb', weights = null) => {\n    const l = colors.length;\n    if (!weights) weights = Array.from(new Array(l)).map(() => 1);\n    // normalize weights\n    const k =\n        l /\n        weights.reduce(function (a, b) {\n            return a + b;\n        });\n    weights.forEach((w, i) => {\n        weights[i] *= k;\n    });\n    // convert colors to Color objects\n    colors = colors.map((c) => new Color(c));\n    if (mode === 'lrgb') {\n        return _average_lrgb(colors, weights);\n    }\n    const first = colors.shift();\n    const xyz = first.get(mode);\n    const cnt = [];\n    let dx = 0;\n    let dy = 0;\n    // initial color\n    for (let i = 0; i < xyz.length; i++) {\n        xyz[i] = (xyz[i] || 0) * weights[0];\n        cnt.push(isNaN(xyz[i]) ? 0 : weights[0]);\n        if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n            const A = (xyz[i] / 180) * PI;\n            dx += cos(A) * weights[0];\n            dy += sin(A) * weights[0];\n        }\n    }\n\n    let alpha = first.alpha() * weights[0];\n    colors.forEach((c, ci) => {\n        const xyz2 = c.get(mode);\n        alpha += c.alpha() * weights[ci + 1];\n        for (let i = 0; i < xyz.length; i++) {\n            if (!isNaN(xyz2[i])) {\n                cnt[i] += weights[ci + 1];\n                if (mode.charAt(i) === 'h') {\n                    const A = (xyz2[i] / 180) * PI;\n                    dx += cos(A) * weights[ci + 1];\n                    dy += sin(A) * weights[ci + 1];\n                } else {\n                    xyz[i] += xyz2[i] * weights[ci + 1];\n                }\n            }\n        }\n    });\n\n    for (let i = 0; i < xyz.length; i++) {\n        if (mode.charAt(i) === 'h') {\n            let A = (atan2(dy / cnt[i], dx / cnt[i]) / PI) * 180;\n            while (A < 0) A += 360;\n            while (A >= 360) A -= 360;\n            xyz[i] = A;\n        } else {\n            xyz[i] = xyz[i] / cnt[i];\n        }\n    }\n    alpha /= l;\n    return new Color(xyz, mode).alpha(alpha > 0.99999 ? 1 : alpha, true);\n};\n\nconst _average_lrgb = (colors, weights) => {\n    const l = colors.length;\n    const xyz = [0, 0, 0, 0];\n    for (let i = 0; i < colors.length; i++) {\n        const col = colors[i];\n        const f = weights[i] / l;\n        const rgb = col._rgb;\n        xyz[0] += pow(rgb[0], 2) * f;\n        xyz[1] += pow(rgb[1], 2) * f;\n        xyz[2] += pow(rgb[2], 2) * f;\n        xyz[3] += rgb[3] * f;\n    }\n    xyz[0] = sqrt(xyz[0]);\n    xyz[1] = sqrt(xyz[1]);\n    xyz[2] = sqrt(xyz[2]);\n    if (xyz[3] > 0.9999999) xyz[3] = 1;\n    return new Color(clip_rgb(xyz));\n};\n","// minimal multi-purpose interface\n\n// @requires utils color analyze\nimport chroma from '../chroma.js';\nimport { limit, type } from '../utils/index.js';\n\nconst { pow } = Math;\n\nexport default function (colors) {\n    // constructor\n    let _mode = 'rgb';\n    let _nacol = chroma('#ccc');\n    let _spread = 0;\n    // const _fixed = false;\n    let _positions = [0, 1];\n    let _domain = [0, 1];\n    let _pos = [];\n    let _padding = [0, 0];\n    let _classes = false;\n    let _colors = [];\n    let _out = false;\n    let _min = 0;\n    let _max = 1;\n    let _correctLightness = false;\n    let _colorCache = {};\n    let _useCache = true;\n    let _gamma = 1;\n\n    // private methods\n\n    const setColors = function (colors) {\n        colors = colors || ['#fff', '#000'];\n        if (\n            colors &&\n            type(colors) === 'string' &&\n            chroma.brewer &&\n            chroma.brewer[colors.toLowerCase()]\n        ) {\n            colors = chroma.brewer[colors.toLowerCase()];\n        }\n        if (type(colors) === 'array') {\n            // handle single color\n            if (colors.length === 1) {\n                colors = [colors[0], colors[0]];\n            }\n            // make a copy of the colors\n            colors = colors.slice(0);\n            // convert to chroma classes\n            for (let c = 0; c < colors.length; c++) {\n                colors[c] = chroma(colors[c]);\n            }\n            // auto-fill color position\n            _pos.length = 0;\n            for (let c = 0; c < colors.length; c++) {\n                _pos.push(c / (colors.length - 1));\n            }\n        }\n        resetCache();\n        return (_colors = colors);\n    };\n\n    const getClass = function (value) {\n        if (_classes != null) {\n            const n = _classes.length - 1;\n            let i = 0;\n            while (i < n && value >= _classes[i]) {\n                i++;\n            }\n            return i - 1;\n        }\n        return 0;\n    };\n\n    let tMapLightness = (t) => t;\n    let tMapDomain = (t) => t;\n\n    // const classifyValue = function(value) {\n    //     let val = value;\n    //     if (_classes.length > 2) {\n    //         const n = _classes.length-1;\n    //         const i = getClass(value);\n    //         const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5)));  // center of 1st class\n    //         const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5)));  // center of last class\n    //         val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n    //     }\n    //     return val;\n    // };\n\n    const getColor = function (val, bypassMap) {\n        let col, t;\n        if (bypassMap == null) {\n            bypassMap = false;\n        }\n        if (isNaN(val) || val === null) {\n            return _nacol;\n        }\n        if (!bypassMap) {\n            if (_classes && _classes.length > 2) {\n                // find the class\n                const c = getClass(val);\n                t = c / (_classes.length - 2);\n            } else if (_max !== _min) {\n                // just interpolate between min/max\n                t = (val - _min) / (_max - _min);\n            } else {\n                t = 1;\n            }\n        } else {\n            t = val;\n        }\n\n        // domain map\n        t = tMapDomain(t);\n\n        if (!bypassMap) {\n            t = tMapLightness(t); // lightness correction\n        }\n\n        if (_gamma !== 1) {\n            t = pow(t, _gamma);\n        }\n\n        t = _padding[0] + t * (1 - _padding[0] - _padding[1]);\n\n        t = limit(t, 0, 1);\n\n        const k = Math.floor(t * 10000);\n\n        if (_useCache && _colorCache[k]) {\n            col = _colorCache[k];\n        } else {\n            if (type(_colors) === 'array') {\n                //for i in [0.._pos.length-1]\n                for (let i = 0; i < _pos.length; i++) {\n                    const p = _pos[i];\n                    if (t <= p) {\n                        col = _colors[i];\n                        break;\n                    }\n                    if (t >= p && i === _pos.length - 1) {\n                        col = _colors[i];\n                        break;\n                    }\n                    if (t > p && t < _pos[i + 1]) {\n                        t = (t - p) / (_pos[i + 1] - p);\n                        col = chroma.interpolate(\n                            _colors[i],\n                            _colors[i + 1],\n                            t,\n                            _mode\n                        );\n                        break;\n                    }\n                }\n            } else if (type(_colors) === 'function') {\n                col = _colors(t);\n            }\n            if (_useCache) {\n                _colorCache[k] = col;\n            }\n        }\n        return col;\n    };\n\n    var resetCache = () => (_colorCache = {});\n\n    setColors(colors);\n\n    // public interface\n\n    const f = function (v) {\n        const c = chroma(getColor(v));\n        if (_out && c[_out]) {\n            return c[_out]();\n        } else {\n            return c;\n        }\n    };\n\n    f.classes = function (classes) {\n        if (classes != null) {\n            if (type(classes) === 'array') {\n                _classes = classes;\n                _positions = [classes[0], classes[classes.length - 1]];\n            } else {\n                const d = chroma.analyze(_positions);\n                if (classes === 0) {\n                    _classes = [d.min, d.max];\n                } else {\n                    _classes = chroma.limits(d, 'e', classes);\n                }\n            }\n            return f;\n        }\n        return _classes;\n    };\n\n    f.domain = function (domain) {\n        if (!arguments.length) {\n            // return original domain\n            return _domain;\n        }\n        // store original domain so we can return it later\n        _domain = domain.slice(0);\n        _min = domain[0];\n        _max = domain[domain.length - 1];\n        _pos = [];\n        const k = _colors.length;\n        if (domain.length === k && _min !== _max) {\n            // update positions\n            for (let d of Array.from(domain)) {\n                _pos.push((d - _min) / (_max - _min));\n            }\n        } else {\n            for (let c = 0; c < k; c++) {\n                _pos.push(c / (k - 1));\n            }\n            if (domain.length > 2) {\n                // set domain map\n                const tOut = domain.map((d, i) => i / (domain.length - 1));\n                const tBreaks = domain.map((d) => (d - _min) / (_max - _min));\n                if (!tBreaks.every((val, i) => tOut[i] === val)) {\n                    tMapDomain = (t) => {\n                        if (t <= 0 || t >= 1) return t;\n                        let i = 0;\n                        while (t >= tBreaks[i + 1]) i++;\n                        const f =\n                            (t - tBreaks[i]) / (tBreaks[i + 1] - tBreaks[i]);\n                        const out = tOut[i] + f * (tOut[i + 1] - tOut[i]);\n                        return out;\n                    };\n                }\n            }\n        }\n        _positions = [_min, _max];\n        return f;\n    };\n\n    f.mode = function (_m) {\n        if (!arguments.length) {\n            return _mode;\n        }\n        _mode = _m;\n        resetCache();\n        return f;\n    };\n\n    f.range = function (colors, _pos) {\n        setColors(colors, _pos);\n        return f;\n    };\n\n    f.out = function (_o) {\n        _out = _o;\n        return f;\n    };\n\n    f.spread = function (val) {\n        if (!arguments.length) {\n            return _spread;\n        }\n        _spread = val;\n        return f;\n    };\n\n    f.correctLightness = function (v) {\n        if (v == null) {\n            v = true;\n        }\n        _correctLightness = v;\n        resetCache();\n        if (_correctLightness) {\n            tMapLightness = function (t) {\n                const L0 = getColor(0, true).lab()[0];\n                const L1 = getColor(1, true).lab()[0];\n                const pol = L0 > L1;\n                let L_actual = getColor(t, true).lab()[0];\n                const L_ideal = L0 + (L1 - L0) * t;\n                let L_diff = L_actual - L_ideal;\n                let t0 = 0;\n                let t1 = 1;\n                let max_iter = 20;\n                while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n                    (function () {\n                        if (pol) {\n                            L_diff *= -1;\n                        }\n                        if (L_diff < 0) {\n                            t0 = t;\n                            t += (t1 - t) * 0.5;\n                        } else {\n                            t1 = t;\n                            t += (t0 - t) * 0.5;\n                        }\n                        L_actual = getColor(t, true).lab()[0];\n                        return (L_diff = L_actual - L_ideal);\n                    })();\n                }\n                return t;\n            };\n        } else {\n            tMapLightness = (t) => t;\n        }\n        return f;\n    };\n\n    f.padding = function (p) {\n        if (p != null) {\n            if (type(p) === 'number') {\n                p = [p, p];\n            }\n            _padding = p;\n            return f;\n        } else {\n            return _padding;\n        }\n    };\n\n    f.colors = function (numColors, out) {\n        // If no arguments are given, return the original colors that were provided\n        if (arguments.length < 2) {\n            out = 'hex';\n        }\n        let result = [];\n\n        if (arguments.length === 0) {\n            result = _colors.slice(0);\n        } else if (numColors === 1) {\n            result = [f(0.5)];\n        } else if (numColors > 1) {\n            const dm = _positions[0];\n            const dd = _positions[1] - dm;\n            result = __range__(0, numColors, false).map((i) =>\n                f(dm + (i / (numColors - 1)) * dd)\n            );\n        } else {\n            // returns all colors based on the defined classes\n            colors = [];\n            let samples = [];\n            if (_classes && _classes.length > 2) {\n                for (\n                    let i = 1, end = _classes.length, asc = 1 <= end;\n                    asc ? i < end : i > end;\n                    asc ? i++ : i--\n                ) {\n                    samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n                }\n            } else {\n                samples = _positions;\n            }\n            result = samples.map((v) => f(v));\n        }\n\n        if (chroma[out]) {\n            result = result.map((c) => c[out]());\n        }\n        return result;\n    };\n\n    f.cache = function (c) {\n        if (c != null) {\n            _useCache = c;\n            return f;\n        } else {\n            return _useCache;\n        }\n    };\n\n    f.gamma = function (g) {\n        if (g != null) {\n            _gamma = g;\n            return f;\n        } else {\n            return _gamma;\n        }\n    };\n\n    f.nodata = function (d) {\n        if (d != null) {\n            _nacol = chroma(d);\n            return f;\n        } else {\n            return _nacol;\n        }\n    };\n\n    return f;\n}\n\nfunction __range__(left, right, inclusive) {\n    let range = [];\n    let ascending = left < right;\n    let end = !inclusive ? right : ascending ? right + 1 : right - 1;\n    for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n        range.push(i);\n    }\n    return range;\n}\n","//\n// interpolates between a set of colors uzing a bezier spline\n//\n\n// @requires utils lab\nimport Color from '../Color.js';\nimport '../io/lab/index.js';\nimport scale from './scale.js';\n\n// nth row of the pascal triangle\nconst binom_row = function (n) {\n    let row = [1, 1];\n    for (let i = 1; i < n; i++) {\n        let newrow = [1];\n        for (let j = 1; j <= row.length; j++) {\n            newrow[j] = (row[j] || 0) + row[j - 1];\n        }\n        row = newrow;\n    }\n    return row;\n};\n\nconst bezier = function (colors) {\n    let I, lab0, lab1, lab2;\n    colors = colors.map((c) => new Color(c));\n    if (colors.length === 2) {\n        // linear interpolation\n        [lab0, lab1] = colors.map((c) => c.lab());\n        I = function (t) {\n            const lab = [0, 1, 2].map((i) => lab0[i] + t * (lab1[i] - lab0[i]));\n            return new Color(lab, 'lab');\n        };\n    } else if (colors.length === 3) {\n        // quadratic bezier interpolation\n        [lab0, lab1, lab2] = colors.map((c) => c.lab());\n        I = function (t) {\n            const lab = [0, 1, 2].map(\n                (i) =>\n                    (1 - t) * (1 - t) * lab0[i] +\n                    2 * (1 - t) * t * lab1[i] +\n                    t * t * lab2[i]\n            );\n            return new Color(lab, 'lab');\n        };\n    } else if (colors.length === 4) {\n        // cubic bezier interpolation\n        let lab3;\n        [lab0, lab1, lab2, lab3] = colors.map((c) => c.lab());\n        I = function (t) {\n            const lab = [0, 1, 2].map(\n                (i) =>\n                    (1 - t) * (1 - t) * (1 - t) * lab0[i] +\n                    3 * (1 - t) * (1 - t) * t * lab1[i] +\n                    3 * (1 - t) * t * t * lab2[i] +\n                    t * t * t * lab3[i]\n            );\n            return new Color(lab, 'lab');\n        };\n    } else if (colors.length >= 5) {\n        // general case (degree n bezier)\n        let labs, row, n;\n        labs = colors.map((c) => c.lab());\n        n = colors.length - 1;\n        row = binom_row(n);\n        I = function (t) {\n            const u = 1 - t;\n            const lab = [0, 1, 2].map((i) =>\n                labs.reduce(\n                    (sum, el, j) =>\n                        sum + row[j] * u ** (n - j) * t ** j * el[i],\n                    0\n                )\n            );\n            return new Color(lab, 'lab');\n        };\n    } else {\n        throw new RangeError('No point in running bezier with only one color.');\n    }\n    return I;\n};\n\nexport default (colors) => {\n    const f = bezier(colors);\n    f.scale = () => scale(f);\n    return f;\n};\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nconst { round } = Math;\n\nColor.prototype.rgb = function (rnd = true) {\n    if (rnd === false) return this._rgb.slice(0, 3);\n    return this._rgb.slice(0, 3).map(round);\n};\n\nColor.prototype.rgba = function (rnd = true) {\n    return this._rgb.slice(0, 4).map((v, i) => {\n        return i < 3 ? (rnd === false ? v : round(v)) : v;\n    });\n};\n\nconst rgb = (...args) => new Color(...args, 'rgb');\nObject.assign(chroma, { rgb });\n\ninput.format.rgb = (...args) => {\n    const rgba = unpack(args, 'rgba');\n    if (rgba[3] === undefined) rgba[3] = 1;\n    return rgba;\n};\n\ninput.autodetect.push({\n    p: 3,\n    test: (...args) => {\n        args = unpack(args, 'rgba');\n        if (\n            type(args) === 'array' &&\n            (args.length === 3 ||\n                (args.length === 4 &&\n                    type(args[3]) == 'number' &&\n                    args[3] >= 0 &&\n                    args[3] <= 1))\n        ) {\n            return 'rgb';\n        }\n    }\n});\n\nexport { rgb };\n","/*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from https://web.archive.org/web/20180110014946/http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\nimport '../io/rgb/index.js';\nimport chroma from '../chroma.js';\n\nconst blend = (bottom, top, mode) => {\n    if (!blend[mode]) {\n        throw new Error('unknown blend mode ' + mode);\n    }\n    return blend[mode](bottom, top);\n};\n\nconst blend_f = (f) => (bottom, top) => {\n    const c0 = chroma(top).rgb();\n    const c1 = chroma(bottom).rgb();\n    return chroma.rgb(f(c0, c1));\n};\n\nconst each = (f) => (c0, c1) => {\n    const out = [];\n    out[0] = f(c0[0], c1[0]);\n    out[1] = f(c0[1], c1[1]);\n    out[2] = f(c0[2], c1[2]);\n    return out;\n};\n\nconst normal = (a) => a;\nconst multiply = (a, b) => (a * b) / 255;\nconst darken = (a, b) => (a > b ? b : a);\nconst lighten = (a, b) => (a > b ? a : b);\nconst screen = (a, b) => 255 * (1 - (1 - a / 255) * (1 - b / 255));\nconst overlay = (a, b) =>\n    b < 128 ? (2 * a * b) / 255 : 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\nconst burn = (a, b) => 255 * (1 - (1 - b / 255) / (a / 255));\nconst dodge = (a, b) => {\n    if (a === 255) return 255;\n    a = (255 * (b / 255)) / (1 - a / 255);\n    return a > 255 ? 255 : a;\n};\n\n// # add = (a,b) ->\n// #     if (a + b > 255) then 255 else a + b\n\nblend.normal = blend_f(each(normal));\nblend.multiply = blend_f(each(multiply));\nblend.screen = blend_f(each(screen));\nblend.overlay = blend_f(each(overlay));\nblend.darken = blend_f(each(darken));\nblend.lighten = blend_f(each(lighten));\nblend.dodge = blend_f(each(dodge));\nblend.burn = blend_f(each(burn));\n// blend.add = blend_f(each(add));\n\nexport default blend;\n","// cubehelix interpolation\n// based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n// http://astron-soc.in/bulletin/11June/289392011.pdf\nimport { type, clip_rgb, TWOPI } from '../utils/index.js';\nimport chroma from '../chroma.js';\nconst { pow, sin, cos } = Math;\n\nexport default function (\n    start = 300,\n    rotations = -1.5,\n    hue = 1,\n    gamma = 1,\n    lightness = [0, 1]\n) {\n    let dh = 0,\n        dl;\n    if (type(lightness) === 'array') {\n        dl = lightness[1] - lightness[0];\n    } else {\n        dl = 0;\n        lightness = [lightness, lightness];\n    }\n    const f = function (fract) {\n        const a = TWOPI * ((start + 120) / 360 + rotations * fract);\n        const l = pow(lightness[0] + dl * fract, gamma);\n        const h = dh !== 0 ? hue[0] + fract * dh : hue;\n        const amp = (h * l * (1 - l)) / 2;\n        const cos_a = cos(a);\n        const sin_a = sin(a);\n        const r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n        const g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n        const b = l + amp * (+1.97294 * cos_a);\n        return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n    };\n    f.start = function (s) {\n        if (s == null) {\n            return start;\n        }\n        start = s;\n        return f;\n    };\n    f.rotations = function (r) {\n        if (r == null) {\n            return rotations;\n        }\n        rotations = r;\n        return f;\n    };\n    f.gamma = function (g) {\n        if (g == null) {\n            return gamma;\n        }\n        gamma = g;\n        return f;\n    };\n    f.hue = function (h) {\n        if (h == null) {\n            return hue;\n        }\n        hue = h;\n        if (type(hue) === 'array') {\n            dh = hue[1] - hue[0];\n            if (dh === 0) {\n                hue = hue[1];\n            }\n        } else {\n            dh = 0;\n        }\n        return f;\n    };\n    f.lightness = function (h) {\n        if (h == null) {\n            return lightness;\n        }\n        if (type(h) === 'array') {\n            lightness = h;\n            dl = h[1] - h[0];\n        } else {\n            lightness = [h, h];\n            dl = 0;\n        }\n        return f;\n    };\n    f.scale = () => chroma.scale(f);\n    f.hue(hue);\n    return f;\n}\n","import Color from '../Color.js';\nconst digits = '0123456789abcdef';\n\nconst { floor, random } = Math;\n\n/**\n * Generates a random color.\n * @param {() => number} rng - A random number generator function.\n */\nexport default (rng = random) => {\n    let code = '#';\n    for (let i = 0; i < 6; i++) {\n        code += digits.charAt(floor(rng() * 16));\n    }\n    return new Color(code, 'hex');\n};\n","import type from './type.js';\n\nconst { log, pow, floor, abs } = Math;\n\nexport function analyze(data, key = null) {\n    const r = {\n        min: Number.MAX_VALUE,\n        max: Number.MAX_VALUE * -1,\n        sum: 0,\n        values: [],\n        count: 0\n    };\n    if (type(data) === 'object') {\n        data = Object.values(data);\n    }\n    data.forEach((val) => {\n        if (key && type(val) === 'object') val = val[key];\n        if (val !== undefined && val !== null && !isNaN(val)) {\n            r.values.push(val);\n            r.sum += val;\n            if (val < r.min) r.min = val;\n            if (val > r.max) r.max = val;\n            r.count += 1;\n        }\n    });\n\n    r.domain = [r.min, r.max];\n\n    r.limits = (mode, num) => limits(r, mode, num);\n\n    return r;\n}\n\nexport function limits(data, mode = 'equal', num = 7) {\n    if (type(data) == 'array') {\n        data = analyze(data);\n    }\n    const { min, max } = data;\n    const values = data.values.sort((a, b) => a - b);\n\n    if (num === 1) {\n        return [min, max];\n    }\n\n    const limits = [];\n\n    if (mode.substr(0, 1) === 'c') {\n        // continuous\n        limits.push(min);\n        limits.push(max);\n    }\n\n    if (mode.substr(0, 1) === 'e') {\n        // equal interval\n        limits.push(min);\n        for (let i = 1; i < num; i++) {\n            limits.push(min + (i / num) * (max - min));\n        }\n        limits.push(max);\n    } else if (mode.substr(0, 1) === 'l') {\n        // log scale\n        if (min <= 0) {\n            throw new Error(\n                'Logarithmic scales are only possible for values > 0'\n            );\n        }\n        const min_log = Math.LOG10E * log(min);\n        const max_log = Math.LOG10E * log(max);\n        limits.push(min);\n        for (let i = 1; i < num; i++) {\n            limits.push(pow(10, min_log + (i / num) * (max_log - min_log)));\n        }\n        limits.push(max);\n    } else if (mode.substr(0, 1) === 'q') {\n        // quantile scale\n        limits.push(min);\n        for (let i = 1; i < num; i++) {\n            const p = ((values.length - 1) * i) / num;\n            const pb = floor(p);\n            if (pb === p) {\n                limits.push(values[pb]);\n            } else {\n                // p > pb\n                const pr = p - pb;\n                limits.push(values[pb] * (1 - pr) + values[pb + 1] * pr);\n            }\n        }\n        limits.push(max);\n    } else if (mode.substr(0, 1) === 'k') {\n        // k-means clustering\n        /*\n        implementation based on\n        http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n        simplified for 1-d input values\n        */\n        let cluster;\n        const n = values.length;\n        const assignments = new Array(n);\n        const clusterSizes = new Array(num);\n        let repeat = true;\n        let nb_iters = 0;\n        let centroids = null;\n\n        // get seed values\n        centroids = [];\n        centroids.push(min);\n        for (let i = 1; i < num; i++) {\n            centroids.push(min + (i / num) * (max - min));\n        }\n        centroids.push(max);\n\n        while (repeat) {\n            // assignment step\n            for (let j = 0; j < num; j++) {\n                clusterSizes[j] = 0;\n            }\n            for (let i = 0; i < n; i++) {\n                const value = values[i];\n                let mindist = Number.MAX_VALUE;\n                let best;\n                for (let j = 0; j < num; j++) {\n                    const dist = abs(centroids[j] - value);\n                    if (dist < mindist) {\n                        mindist = dist;\n                        best = j;\n                    }\n                    clusterSizes[best]++;\n                    assignments[i] = best;\n                }\n            }\n\n            // update centroids step\n            const newCentroids = new Array(num);\n            for (let j = 0; j < num; j++) {\n                newCentroids[j] = null;\n            }\n            for (let i = 0; i < n; i++) {\n                cluster = assignments[i];\n                if (newCentroids[cluster] === null) {\n                    newCentroids[cluster] = values[i];\n                } else {\n                    newCentroids[cluster] += values[i];\n                }\n            }\n            for (let j = 0; j < num; j++) {\n                newCentroids[j] *= 1 / clusterSizes[j];\n            }\n\n            // check convergence\n            repeat = false;\n            for (let j = 0; j < num; j++) {\n                if (newCentroids[j] !== centroids[j]) {\n                    repeat = true;\n                    break;\n                }\n            }\n\n            centroids = newCentroids;\n            nb_iters++;\n\n            if (nb_iters > 200) {\n                repeat = false;\n            }\n        }\n\n        // finished k-means clustering\n        // the next part is borrowed from gabrielflor.it\n        const kClusters = {};\n        for (let j = 0; j < num; j++) {\n            kClusters[j] = [];\n        }\n        for (let i = 0; i < n; i++) {\n            cluster = assignments[i];\n            kClusters[cluster].push(values[i]);\n        }\n        let tmpKMeansBreaks = [];\n        for (let j = 0; j < num; j++) {\n            tmpKMeansBreaks.push(kClusters[j][0]);\n            tmpKMeansBreaks.push(kClusters[j][kClusters[j].length - 1]);\n        }\n        tmpKMeansBreaks = tmpKMeansBreaks.sort((a, b) => a - b);\n        limits.push(tmpKMeansBreaks[0]);\n        for (let i = 1; i < tmpKMeansBreaks.length; i += 2) {\n            const v = tmpKMeansBreaks[i];\n            if (!isNaN(v) && limits.indexOf(v) === -1) {\n                limits.push(v);\n            }\n        }\n    }\n    return limits;\n}\n","import Color from '../Color.js';\nimport '../ops/luminance.js';\n\nexport default (a, b) => {\n    // WCAG contrast ratio\n    // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n    a = new Color(a);\n    b = new Color(b);\n    const l1 = a.luminance();\n    const l2 = b.luminance();\n    return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n};\n","import Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\n/**\n * @license\n *\n * The APCA contrast prediction algorithm is based of the formulas published\n * in the APCA-1.0.98G specification by Myndex. The specification is available at:\n * https://raw.githubusercontent.com/Myndex/apca-w3/master/images/APCAw3_0.1.17_APCA0.0.98G.svg\n *\n * Note that the APCA implementation is still beta, so please update to\n * future versions of chroma.js when they become available.\n *\n * You can read more about the APCA Readability Criterion at\n * https://readtech.org/ARC/\n */\n\n// constants\nconst W_offset = 0.027;\nconst P_in = 0.0005;\nconst P_out = 0.1;\nconst R_scale = 1.14;\nconst B_threshold = 0.022;\nconst B_exp = 1.414;\n\nexport default (text, bg) => {\n    // parse input colors\n    text = new Color(text);\n    bg = new Color(bg);\n    // if text color has alpha, blend against background\n    if (text.alpha() < 1) {\n        text = mix(bg, text, text.alpha(), 'rgb');\n    }\n    const l_text = lum(...text.rgb());\n    const l_bg = lum(...bg.rgb());\n\n    // soft clamp black levels\n    const Y_text =\n        l_text >= B_threshold\n            ? l_text\n            : l_text + Math.pow(B_threshold - l_text, B_exp);\n    const Y_bg =\n        l_bg >= B_threshold ? l_bg : l_bg + Math.pow(B_threshold - l_bg, B_exp);\n\n    // normal polarity (dark text on light background)\n    const S_norm = Math.pow(Y_bg, 0.56) - Math.pow(Y_text, 0.57);\n    // reverse polarity (light text on dark background)\n    const S_rev = Math.pow(Y_bg, 0.65) - Math.pow(Y_text, 0.62);\n    // clamp noise then scale\n    const C =\n        Math.abs(Y_bg - Y_text) < P_in\n            ? 0\n            : Y_text < Y_bg\n              ? S_norm * R_scale\n              : S_rev * R_scale;\n    // clamp minimum contrast then offset\n    const S_apc = Math.abs(C) < P_out ? 0 : C > 0 ? C - W_offset : C + W_offset;\n    // scale to 100\n    return S_apc * 100;\n};\n\nfunction lum(r, g, b) {\n    return (\n        0.2126729 * Math.pow(r / 255, 2.4) +\n        0.7151522 * Math.pow(g / 255, 2.4) +\n        0.072175 * Math.pow(b / 255, 2.4)\n    );\n}\n","import Color from '../Color.js';\nconst { sqrt, pow, min, max, atan2, abs, cos, sin, exp, PI } = Math;\n\nexport default function (a, b, Kl = 1, Kc = 1, Kh = 1) {\n    // Delta E (CIE 2000)\n    // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n    var rad2deg = function (rad) {\n        return (360 * rad) / (2 * PI);\n    };\n    var deg2rad = function (deg) {\n        return (2 * PI * deg) / 360;\n    };\n    a = new Color(a);\n    b = new Color(b);\n    const [L1, a1, b1] = Array.from(a.lab());\n    const [L2, a2, b2] = Array.from(b.lab());\n    const avgL = (L1 + L2) / 2;\n    const C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n    const C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n    const avgC = (C1 + C2) / 2;\n    const G = 0.5 * (1 - sqrt(pow(avgC, 7) / (pow(avgC, 7) + pow(25, 7))));\n    const a1p = a1 * (1 + G);\n    const a2p = a2 * (1 + G);\n    const C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n    const C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n    const avgCp = (C1p + C2p) / 2;\n    const arctan1 = rad2deg(atan2(b1, a1p));\n    const arctan2 = rad2deg(atan2(b2, a2p));\n    const h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n    const h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n    const avgHp =\n        abs(h1p - h2p) > 180 ? (h1p + h2p + 360) / 2 : (h1p + h2p) / 2;\n    const T =\n        1 -\n        0.17 * cos(deg2rad(avgHp - 30)) +\n        0.24 * cos(deg2rad(2 * avgHp)) +\n        0.32 * cos(deg2rad(3 * avgHp + 6)) -\n        0.2 * cos(deg2rad(4 * avgHp - 63));\n    let deltaHp = h2p - h1p;\n    deltaHp =\n        abs(deltaHp) <= 180\n            ? deltaHp\n            : h2p <= h1p\n              ? deltaHp + 360\n              : deltaHp - 360;\n    deltaHp = 2 * sqrt(C1p * C2p) * sin(deg2rad(deltaHp) / 2);\n    const deltaL = L2 - L1;\n    const deltaCp = C2p - C1p;\n    const sl = 1 + (0.015 * pow(avgL - 50, 2)) / sqrt(20 + pow(avgL - 50, 2));\n    const sc = 1 + 0.045 * avgCp;\n    const sh = 1 + 0.015 * avgCp * T;\n    const deltaTheta = 30 * exp(-pow((avgHp - 275) / 25, 2));\n    const Rc = 2 * sqrt(pow(avgCp, 7) / (pow(avgCp, 7) + pow(25, 7)));\n    const Rt = -Rc * sin(2 * deg2rad(deltaTheta));\n    const result = sqrt(\n        pow(deltaL / (Kl * sl), 2) +\n            pow(deltaCp / (Kc * sc), 2) +\n            pow(deltaHp / (Kh * sh), 2) +\n            Rt * (deltaCp / (Kc * sc)) * (deltaHp / (Kh * sh))\n    );\n    return max(0, min(100, result));\n}\n","import Color from '../Color.js';\n\n// simple Euclidean distance\nexport default function (a, b, mode = 'lab') {\n    // Delta E (CIE 1976)\n    // see http://www.brucelindbloom.com/index.html?Equations.html\n    a = new Color(a);\n    b = new Color(b);\n    const l1 = a.get(mode);\n    const l2 = b.get(mode);\n    let sum_sq = 0;\n    for (let i in l1) {\n        const d = (l1[i] || 0) - (l2[i] || 0);\n        sum_sq += d * d;\n    }\n    return Math.sqrt(sum_sq);\n}\n","import Color from '../Color.js';\n\nexport default (...args) => {\n    try {\n        new Color(...args);\n        return true;\n        // eslint-disable-next-line\n    } catch (e) {\n        return false;\n    }\n};\n","// some pre-defined color scales:\nimport chroma from '../chroma.js';\nimport '../io/hsl/index.js';\nimport scale from '../generator/scale.js';\n\nexport default {\n    cool() {\n        return scale([chroma.hsl(180, 1, 0.9), chroma.hsl(250, 0.7, 0.4)]);\n    },\n    hot() {\n        return scale(['#000', '#f00', '#ff0', '#fff'], [0, 0.25, 0.75, 1]).mode(\n            'rgb'\n        );\n    }\n};\n","/**\n    ColorBrewer colors for chroma.js\n\n    Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n    Pennsylvania State University.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software distributed\n    under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n    CONDITIONS OF ANY KIND, either express or implied. See the License for the\n    specific language governing permissions and limitations under the License.\n*/\n\nconst colorbrewer = {\n    // sequential\n    OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n    PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n    BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n    Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n    BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n    YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n    YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n    Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n    RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n    Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n    YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n    Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n    GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n    Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n    YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n    PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n    Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n    PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n    Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n    // diverging\n    Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n    RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n    RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n    PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n    PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n    RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n    BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n    RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n    PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n    // qualitative\n    Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n    Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n    Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n    Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n    Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n    Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n    Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n    Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2']\n};\n\nconst colorbrewerTypes = Object.keys(colorbrewer);\nconst typeMap = new Map(colorbrewerTypes.map((key) => [key.toLowerCase(), key]));\n\n// use Proxy to allow case-insensitive access to palettes\nconst colorbrewerProxy =\n    typeof Proxy === 'function'\n        ? new Proxy(colorbrewer, {\n              get(target, prop) {\n                  const lower = prop.toLowerCase();\n                  if (typeMap.has(lower)) {\n                      return target[typeMap.get(lower)];\n                  }\n              },\n              getOwnPropertyNames() {\n                  return Object.getOwnPropertyNames(colorbrewerTypes);\n              }\n          })\n        : colorbrewer;\n\nexport default colorbrewerProxy;\n","import { unpack } from '../../utils/index.js';\n\nconst cmyk2rgb = (...args) => {\n    args = unpack(args, 'cmyk');\n    const [c, m, y, k] = args;\n    const alpha = args.length > 4 ? args[4] : 1;\n    if (k === 1) return [0, 0, 0, alpha];\n    return [\n        c >= 1 ? 0 : 255 * (1 - c) * (1 - k), // r\n        m >= 1 ? 0 : 255 * (1 - m) * (1 - k), // g\n        y >= 1 ? 0 : 255 * (1 - y) * (1 - k), // b\n        alpha\n    ];\n};\n\nexport default cmyk2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { max } = Math;\n\nconst rgb2cmyk = (...args) => {\n    let [r, g, b] = unpack(args, 'rgb');\n    r = r / 255;\n    g = g / 255;\n    b = b / 255;\n    const k = 1 - max(r, max(g, b));\n    const f = k < 1 ? 1 / (1 - k) : 0;\n    const c = (1 - r - k) * f;\n    const m = (1 - g - k) * f;\n    const y = (1 - b - k) * f;\n    return [c, m, y, k];\n};\n\nexport default rgb2cmyk;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nimport cmyk2rgb from './cmyk2rgb.js';\nimport rgb2cmyk from './rgb2cmyk.js';\n\nColor.prototype.cmyk = function () {\n    return rgb2cmyk(this._rgb);\n};\n\nconst cmyk = (...args) => new Color(...args, 'cmyk');\nObject.assign(chroma, { cmyk });\n\ninput.format.cmyk = cmyk2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'cmyk');\n        if (type(args) === 'array' && args.length === 4) {\n            return 'cmyk';\n        }\n    }\n});\n\nexport { cmyk };\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - hsl2css(h,s,l)\n * - hsl2css(h,s,l,a)\n * - hsl2css([h,s,l], mode)\n * - hsl2css([h,s,l,a], mode)\n * - hsl2css({h,s,l,a}, mode)\n */\nconst hsl2css = (...args) => {\n    const hsla = unpack(args, 'hsla');\n    let mode = last(args) || 'lsa';\n    hsla[0] = rnd2(hsla[0] || 0) + 'deg';\n    hsla[1] = rnd2(hsla[1] * 100) + '%';\n    hsla[2] = rnd2(hsla[2] * 100) + '%';\n    if (mode === 'hsla' || (hsla.length > 3 && hsla[3] < 1)) {\n        hsla[3] = '/ ' + (hsla.length > 3 ? hsla[3] : 1);\n        mode = 'hsla';\n    } else {\n        hsla.length = 3;\n    }\n    return `${mode.substr(0, 3)}(${hsla.join(' ')})`;\n};\n\nexport default hsl2css;\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - lab2css(l,a,b)\n * - lab2css(l,a,b,alpha)\n * - lab2css([l,a,b], mode)\n * - lab2css([l,a,b,alpha], mode)\n */\nconst lab2css = (...args) => {\n    const laba = unpack(args, 'lab');\n    let mode = last(args) || 'lab';\n    laba[0] = rnd2(laba[0]) + '%';\n    laba[1] = rnd2(laba[1]);\n    laba[2] = rnd2(laba[2]);\n    if (mode === 'laba' || (laba.length > 3 && laba[3] < 1)) {\n        laba[3] = '/ ' + (laba.length > 3 ? laba[3] : 1);\n    } else {\n        laba.length = 3;\n    }\n    return `lab(${laba.join(' ')})`;\n};\n\nexport default lab2css;\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - lab2css(l,a,b)\n * - lab2css(l,a,b,alpha)\n * - lab2css([l,a,b], mode)\n * - lab2css([l,a,b,alpha], mode)\n */\nconst lch2css = (...args) => {\n    const lcha = unpack(args, 'lch');\n    let mode = last(args) || 'lab';\n    lcha[0] = rnd2(lcha[0]) + '%';\n    lcha[1] = rnd2(lcha[1]);\n    lcha[2] = isNaN(lcha[2]) ? 'none' : rnd2(lcha[2]) + 'deg'; // add deg unit to hue\n    if (mode === 'lcha' || (lcha.length > 3 && lcha[3] < 1)) {\n        lcha[3] = '/ ' + (lcha.length > 3 ? lcha[3] : 1);\n    } else {\n        lcha.length = 3;\n    }\n    return `lch(${lcha.join(' ')})`;\n};\n\nexport default lch2css;\n","import { unpack, rnd2, rnd3 } from '../../utils/index.js';\n\nconst oklab2css = (...args) => {\n    const laba = unpack(args, 'lab');\n    laba[0] = rnd2(laba[0] * 100) + '%';\n    laba[1] = rnd3(laba[1]);\n    laba[2] = rnd3(laba[2]);\n    if (laba.length > 3 && laba[3] < 1) {\n        laba[3] = '/ ' + (laba.length > 3 ? laba[3] : 1);\n    } else {\n        laba.length = 3;\n    }\n    return `oklab(${laba.join(' ')})`;\n};\n\nexport default oklab2css;\n","import { unpack } from '../../utils/index.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport lab2lch from '../lch/lab2lch.js';\n\nconst rgb2oklch = (...args) => {\n    const [r, g, b, ...rest] = unpack(args, 'rgb');\n    const [l, a, b_] = rgb2oklab(r, g, b);\n    const [L, c, h] = lab2lch(l, a, b_);\n    return [L, c, h, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default rgb2oklch;\n","import { unpack, rnd2, rnd3 } from '../../utils/index.js';\n\nconst oklch2css = (...args) => {\n    const lcha = unpack(args, 'lch');\n    lcha[0] = rnd2(lcha[0] * 100) + '%';\n    lcha[1] = rnd3(lcha[1]);\n    lcha[2] = isNaN(lcha[2]) ? 'none' : rnd2(lcha[2]) + 'deg'; // add deg unit to hue\n    if (lcha.length > 3 && lcha[3] < 1) {\n        lcha[3] = '/ ' + (lcha.length > 3 ? lcha[3] : 1);\n    } else {\n        lcha.length = 3;\n    }\n    return `oklch(${lcha.join(' ')})`;\n};\n\nexport default oklch2css;\n","import { unpack, last } from '../../utils/index.js';\nimport hsl2css from './hsl2css.js';\nimport rgb2hsl from '../hsl/rgb2hsl.js';\nimport lab2css from './lab2css.js';\nimport rgb2lab from '../lab/rgb2lab.js';\nimport lch2css from './lch2css.js';\nimport rgb2lch from '../lch/rgb2lch.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport oklab2css from './oklab2css.js';\nimport rgb2oklch from '../oklch/rgb2oklch.js';\nimport oklch2css from './oklch2css.js';\nimport { getLabWhitePoint, setLabWhitePoint } from '../lab/lab-constants.js';\nconst { round } = Math;\n\n/*\n * supported arguments:\n * - rgb2css(r,g,b)\n * - rgb2css(r,g,b,a)\n * - rgb2css([r,g,b], mode)\n * - rgb2css([r,g,b,a], mode)\n * - rgb2css({r,g,b,a}, mode)\n */\nconst rgb2css = (...args) => {\n    const rgba = unpack(args, 'rgba');\n    let mode = last(args) || 'rgb';\n    if (mode.substr(0, 3) === 'hsl') {\n        return hsl2css(rgb2hsl(rgba), mode);\n    }\n    if (mode.substr(0, 3) === 'lab') {\n        // change to D50 lab whitepoint since this is what W3C is using for CSS Lab colors\n        const prevWhitePoint = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const cssColor = lab2css(rgb2lab(rgba), mode);\n        setLabWhitePoint(prevWhitePoint);\n        return cssColor;\n    }\n    if (mode.substr(0, 3) === 'lch') {\n        // change to D50 lab whitepoint since this is what W3C is using for CSS Lab colors\n        const prevWhitePoint = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const cssColor = lch2css(rgb2lch(rgba), mode);\n        setLabWhitePoint(prevWhitePoint);\n        return cssColor;\n    }\n    if (mode.substr(0, 5) === 'oklab') {\n        return oklab2css(rgb2oklab(rgba));\n    }\n    if (mode.substr(0, 5) === 'oklch') {\n        return oklch2css(rgb2oklch(rgba));\n    }\n    rgba[0] = round(rgba[0]);\n    rgba[1] = round(rgba[1]);\n    rgba[2] = round(rgba[2]);\n    if (mode === 'rgba' || (rgba.length > 3 && rgba[3] < 1)) {\n        rgba[3] = '/ ' + (rgba.length > 3 ? rgba[3] : 1);\n        mode = 'rgba';\n    }\n    return `${mode.substr(0, 3)}(${rgba.slice(0, mode === 'rgb' ? 3 : 4).join(' ')})`;\n};\n\nexport default rgb2css;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from '../lch/lch2lab.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\n\nconst oklch2rgb = (...args) => {\n    args = unpack(args, 'lch');\n    const [l, c, h, ...rest] = args;\n    const [L, a, b_] = lch2lab(l, c, h);\n    const [r, g, b] = oklab2rgb(L, a, b_);\n    return [r, g, b, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default oklch2rgb;\n","import hsl2rgb from '../hsl/hsl2rgb.js';\nimport lab2rgb from '../lab/lab2rgb.js';\nimport lch2rgb from '../lch/lch2rgb.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\nimport oklch2rgb from '../oklch/oklch2rgb.js';\nimport input from '../input.js';\nimport limit from '../../utils/limit.js';\nimport { getLabWhitePoint, setLabWhitePoint } from '../lab/lab-constants.js';\n\nconst INT_OR_PCT = /((?:-?\\d+)|(?:-?\\d+(?:\\.\\d+)?)%|none)/.source;\nconst FLOAT_OR_PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%?)|none)/.source;\nconst PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%)|none)/.source;\nconst RE_S = /\\s*/.source;\nconst SEP = /\\s+/.source;\nconst COMMA = /\\s*,\\s*/.source;\nconst ANLGE = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:deg)?)|none)/.source;\nconst ALPHA = /\\s*(?:\\/\\s*((?:[01]|[01]?\\.\\d+)|\\d+(?:\\.\\d+)?%))?/.source;\n\n// e.g. rgb(250 20 0), rgb(100% 50% 20%), rgb(100% 50% 20% / 0.5)\nconst RE_RGB = new RegExp(\n    '^rgba?\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_RGB_LEGACY = new RegExp(\n    '^rgb\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(COMMA) +\n        RE_S +\n        '\\\\)$'\n);\nconst RE_RGBA_LEGACY = new RegExp(\n    '^rgba\\\\(' +\n        RE_S +\n        [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT, FLOAT_OR_PCT].join(COMMA) +\n        RE_S +\n        '\\\\)$'\n);\n\nconst RE_HSL = new RegExp(\n    '^hsla?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(SEP) + ALPHA + '\\\\)$'\n);\nconst RE_HSL_LEGACY = new RegExp(\n    '^hsl?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(COMMA) + RE_S + '\\\\)$'\n);\nconst RE_HSLA_LEGACY =\n    /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\nconst RE_LAB = new RegExp(\n    '^lab\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_LCH = new RegExp(\n    '^lch\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_OKLAB = new RegExp(\n    '^oklab\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\nconst RE_OKLCH = new RegExp(\n    '^oklch\\\\(' +\n        RE_S +\n        [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n        ALPHA +\n        '\\\\)$'\n);\n\nconst { round } = Math;\n\nconst roundRGB = (rgb) => {\n    return rgb.map((v, i) => (i <= 2 ? limit(round(v), 0, 255) : v));\n};\n\nconst percentToAbsolute = (pct, min = 0, max = 100, signed = false) => {\n    if (typeof pct === 'string' && pct.endsWith('%')) {\n        pct = parseFloat(pct.substring(0, pct.length - 1)) / 100;\n        if (signed) {\n            // signed percentages are in the range -100% to 100%\n            pct = min + (pct + 1) * 0.5 * (max - min);\n        } else {\n            pct = min + pct * (max - min);\n        }\n    }\n    return +pct;\n};\n\nconst noneToValue = (v, noneValue) => {\n    return v === 'none' ? noneValue : v;\n};\n\nconst css2rgb = (css) => {\n    css = css.toLowerCase().trim();\n\n    if (css === 'transparent') {\n        return [0, 0, 0, 0];\n    }\n\n    let m;\n\n    if (input.format.named) {\n        try {\n            return input.format.named(css);\n            // eslint-disable-next-line\n        } catch (e) {}\n    }\n\n    // rgb(250 20 0) or rgb(250,20,0)\n    if ((m = css.match(RE_RGB)) || (m = css.match(RE_RGB_LEGACY))) {\n        let rgb = m.slice(1, 4);\n        for (let i = 0; i < 3; i++) {\n            rgb[i] = +percentToAbsolute(noneToValue(rgb[i], 0), 0, 255);\n        }\n        rgb = roundRGB(rgb);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha; // default alpha\n        return rgb;\n    }\n\n    // rgba(250,20,0,0.4)\n    if ((m = css.match(RE_RGBA_LEGACY))) {\n        const rgb = m.slice(1, 5);\n        for (let i = 0; i < 4; i++) {\n            rgb[i] = +percentToAbsolute(rgb[i], 0, 255);\n        }\n        return rgb;\n    }\n\n    // hsl(0,100%,50%)\n    if ((m = css.match(RE_HSL)) || (m = css.match(RE_HSL_LEGACY))) {\n        const hsl = m.slice(1, 4);\n        hsl[0] = +noneToValue(hsl[0].replace('deg', ''), 0);\n        hsl[1] = +percentToAbsolute(noneToValue(hsl[1], 0), 0, 100) * 0.01;\n        hsl[2] = +percentToAbsolute(noneToValue(hsl[2], 0), 0, 100) * 0.01;\n        const rgb = roundRGB(hsl2rgb(hsl));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    // hsla(0,100%,50%,0.5)\n    if ((m = css.match(RE_HSLA_LEGACY))) {\n        const hsl = m.slice(1, 4);\n        hsl[1] *= 0.01;\n        hsl[2] *= 0.01;\n        const rgb = hsl2rgb(hsl);\n        for (let i = 0; i < 3; i++) {\n            rgb[i] = round(rgb[i]);\n        }\n        rgb[3] = +m[4]; // default alpha = 1\n        return rgb;\n    }\n\n    if ((m = css.match(RE_LAB))) {\n        const lab = m.slice(1, 4);\n        lab[0] = percentToAbsolute(noneToValue(lab[0], 0), 0, 100);\n        lab[1] = percentToAbsolute(noneToValue(lab[1], 0), -125, 125, true);\n        lab[2] = percentToAbsolute(noneToValue(lab[2], 0), -125, 125, true);\n        // convert to D50 Lab whitepoint\n        const wp = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const rgb = roundRGB(lab2rgb(lab));\n        // convert back to original Lab whitepoint\n        setLabWhitePoint(wp);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_LCH))) {\n        const lch = m.slice(1, 4);\n        lch[0] = percentToAbsolute(lch[0], 0, 100);\n        lch[1] = percentToAbsolute(noneToValue(lch[1], 0), 0, 150, false);\n        lch[2] = +noneToValue(lch[2].replace('deg', ''), 0);\n        // convert to D50 Lab whitepoint\n        const wp = getLabWhitePoint();\n        setLabWhitePoint('d50');\n        const rgb = roundRGB(lch2rgb(lch));\n        // convert back to original Lab whitepoint\n        setLabWhitePoint(wp);\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_OKLAB))) {\n        const oklab = m.slice(1, 4);\n        oklab[0] = percentToAbsolute(noneToValue(oklab[0], 0), 0, 1);\n        oklab[1] = percentToAbsolute(noneToValue(oklab[1], 0), -0.4, 0.4, true);\n        oklab[2] = percentToAbsolute(noneToValue(oklab[2], 0), -0.4, 0.4, true);\n        const rgb = roundRGB(oklab2rgb(oklab));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n\n    if ((m = css.match(RE_OKLCH))) {\n        const oklch = m.slice(1, 4);\n        oklch[0] = percentToAbsolute(noneToValue(oklch[0], 0), 0, 1);\n        oklch[1] = percentToAbsolute(noneToValue(oklch[1], 0), 0, 0.4, false);\n        oklch[2] = +noneToValue(oklch[2].replace('deg', ''), 0);\n        const rgb = roundRGB(oklch2rgb(oklch));\n        const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n        rgb[3] = alpha;\n        return rgb;\n    }\n};\n\ncss2rgb.test = (s) => {\n    return (\n        // modern\n        RE_RGB.test(s) ||\n        RE_HSL.test(s) ||\n        RE_LAB.test(s) ||\n        RE_LCH.test(s) ||\n        RE_OKLAB.test(s) ||\n        RE_OKLCH.test(s) ||\n        // legacy\n        RE_RGB_LEGACY.test(s) ||\n        RE_RGBA_LEGACY.test(s) ||\n        RE_HSL_LEGACY.test(s) ||\n        RE_HSLA_LEGACY.test(s) ||\n        s === 'transparent'\n    );\n};\n\nexport default css2rgb;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport rgb2css from './rgb2css.js';\nimport css2rgb from './css2rgb.js';\n\nColor.prototype.css = function (mode) {\n    return rgb2css(this._rgb, mode);\n};\n\nconst css = (...args) => new Color(...args, 'css');\nchroma.css = css;\n\ninput.format.css = css2rgb;\n\ninput.autodetect.push({\n    p: 5,\n    test: (h, ...rest) => {\n        if (!rest.length && type(h) === 'string' && css2rgb.test(h)) {\n            return 'css';\n        }\n    }\n});\n\nexport { css };\n","import Color from '../../Color.js';\nimport chroma from '../../chroma.js';\nimport input from '../input.js';\nimport { unpack } from '../../utils/index.js';\n\ninput.format.gl = (...args) => {\n    const rgb = unpack(args, 'rgba');\n    rgb[0] *= 255;\n    rgb[1] *= 255;\n    rgb[2] *= 255;\n    return rgb;\n};\n\nconst gl = (...args) => new Color(...args, 'gl');\nchroma.gl = gl;\n\nColor.prototype.gl = function () {\n    const rgb = this._rgb;\n    return [rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, rgb[3]];\n};\n\nexport { gl };\n","import Color from '../../Color.js';\nimport chroma from '../../chroma.js';\nimport { type } from '../../utils/index.js';\nimport input from '../input.js';\nimport hex2rgb from './hex2rgb.js';\nimport rgb2hex from './rgb2hex.js';\n\nColor.prototype.hex = function (mode) {\n    return rgb2hex(this._rgb, mode);\n};\n\nconst hex = (...args) => new Color(...args, 'hex');\nchroma.hex = hex;\n\ninput.format.hex = hex2rgb;\ninput.autodetect.push({\n    p: 4,\n    test: (h, ...rest) => {\n        if (\n            !rest.length &&\n            type(h) === 'string' &&\n            [3, 4, 5, 6, 7, 8, 9].indexOf(h.length) >= 0\n        ) {\n            return 'hex';\n        }\n    }\n});\n\nexport { hex };\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n */\n\nconst { log } = Math;\n\nconst temperature2rgb = (kelvin) => {\n    const temp = kelvin / 100;\n    let r, g, b;\n    if (temp < 66) {\n        r = 255;\n        g =\n            temp < 6\n                ? 0\n                : -155.25485562709179 -\n                  0.44596950469579133 * (g = temp - 2) +\n                  104.49216199393888 * log(g);\n        b =\n            temp < 20\n                ? 0\n                : -254.76935184120902 +\n                  0.8274096064007395 * (b = temp - 10) +\n                  115.67994401066147 * log(b);\n    } else {\n        r =\n            351.97690566805693 +\n            0.114206453784165 * (r = temp - 55) -\n            40.25366309332127 * log(r);\n        g =\n            325.4494125711974 +\n            0.07943456536662342 * (g = temp - 50) -\n            28.0852963507957 * log(g);\n        b = 255;\n    }\n    return [r, g, b, 1];\n};\n\nexport default temperature2rgb;\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n **/\n\nimport temperature2rgb from './temperature2rgb.js';\nimport { unpack } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2temperature = (...args) => {\n    const rgb = unpack(args, 'rgb');\n    const r = rgb[0],\n        b = rgb[2];\n    let minTemp = 1000;\n    let maxTemp = 40000;\n    const eps = 0.4;\n    let temp;\n    while (maxTemp - minTemp > eps) {\n        temp = (maxTemp + minTemp) * 0.5;\n        const rgb = temperature2rgb(temp);\n        if (rgb[2] / rgb[0] >= b / r) {\n            maxTemp = temp;\n        } else {\n            minTemp = temp;\n        }\n    }\n    return round(temp);\n};\n\nexport default rgb2temperature;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport temperature2rgb from './temperature2rgb.js';\nimport rgb2temperature from './rgb2temperature.js';\n\nColor.prototype.temp =\n    Color.prototype.kelvin =\n    Color.prototype.temperature =\n        function () {\n            return rgb2temperature(this._rgb);\n        };\n\nconst temp = (...args) => new Color(...args, 'temp');\nObject.assign(chroma, { temp, kelvin: temp, temperature: temp });\n\ninput.format.temp =\n    input.format.kelvin =\n    input.format.temperature =\n        temperature2rgb;\n\nexport { temp, temp as kelvin, temp as temperature };\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklch2rgb from './oklch2rgb.js';\nimport rgb2oklch from './rgb2oklch.js';\n\nColor.prototype.oklch = function () {\n    return rgb2oklch(this._rgb);\n};\n\nconst oklch = (...args) => new Color(...args, 'oklch');\nObject.assign(chroma, { oklch });\n\ninput.format.oklch = oklch2rgb;\n\ninput.autodetect.push({\n    p: 2,\n    test: (...args) => {\n        args = unpack(args, 'oklch');\n        if (type(args) === 'array' && args.length === 3) {\n            return 'oklch';\n        }\n    }\n});\n\nexport { oklch };\n","// feel free to comment out anything to rollup\n// a smaller chroma.js bundle\nimport chroma from './src/chroma.js';\n\n// io --> convert colors\nimport './src/io/named/index.js';\n\n// operators --> modify existing Colors\nimport './src/ops/alpha.js';\nimport './src/ops/clipped.js';\nimport './src/ops/darken.js';\nimport './src/ops/get.js';\nimport './src/ops/luminance.js';\nimport './src/ops/mix.js';\nimport './src/ops/premultiply.js';\nimport './src/ops/saturate.js';\nimport './src/ops/set.js';\nimport './src/ops/shade.js';\n\n// interpolators\nimport './src/interpolator/rgb.js';\nimport './src/interpolator/lrgb.js';\nimport './src/interpolator/lab.js';\nimport './src/interpolator/lch.js';\nimport './src/interpolator/num.js';\nimport './src/interpolator/hcg.js';\nimport './src/interpolator/hsi.js';\nimport './src/interpolator/hsl.js';\nimport './src/interpolator/hsv.js';\nimport './src/interpolator/oklab.js';\nimport './src/interpolator/oklch.js';\n\n// generators -- > create new colors\nimport average from './src/generator/average.js';\nimport bezier from './src/generator/bezier.js';\nimport blend from './src/generator/blend.js';\nimport cubehelix from './src/generator/cubehelix.js';\nimport mix from './src/generator/mix.js';\nimport random from './src/generator/random.js';\nimport scale from './src/generator/scale.js';\n\n// other utility methods\nimport { analyze } from './src/utils/analyze.js';\nimport contrast from './src/utils/contrast.js';\nimport contrastAPCA from './src/utils/contrastAPCA.js';\nimport deltaE from './src/utils/delta-e.js';\nimport distance from './src/utils/distance.js';\nimport { limits } from './src/utils/analyze.js';\nimport valid from './src/utils/valid.js';\nimport input from './src/io/input.js';\n\n// scale\nimport scales from './src/utils/scales.js';\n\n// colors\nimport colors from './src/colors/w3cx11.js';\nimport brewer from './src/colors/colorbrewer.js';\nimport Color from './src/Color.js';\n\nObject.assign(chroma, {\n    analyze,\n    average,\n    bezier,\n    blend,\n    brewer,\n    Color,\n    colors,\n    contrast,\n    contrastAPCA,\n    cubehelix,\n    deltaE,\n    distance,\n    input,\n    interpolate: mix,\n    limits,\n    mix,\n    random,\n    scale,\n    scales,\n    valid\n});\n\nexport default chroma;\n\nexport {\n    analyze,\n    average,\n    bezier,\n    blend,\n    brewer,\n    Color,\n    colors,\n    contrast,\n    contrastAPCA,\n    cubehelix,\n    deltaE,\n    distance,\n    input,\n    limits,\n    mix,\n    mix as interpolate,\n    random,\n    scale,\n    scales,\n    valid\n};\n\nexport * from './src/io/cmyk/index.js';\nexport * from './src/io/css/index.js';\nexport * from './src/io/gl/index.js';\nexport * from './src/io/hcg/index.js';\nexport * from './src/io/hex/index.js';\nexport * from './src/io/hsi/index.js';\nexport * from './src/io/hsl/index.js';\nexport * from './src/io/hsv/index.js';\nexport * from './src/io/lab/index.js';\nexport * from './src/io/lch/index.js';\nexport * from './src/io/num/index.js';\nexport * from './src/io/rgb/index.js';\nexport * from './src/io/temp/index.js';\nexport * from './src/io/oklab/index.js';\nexport * from './src/io/oklch/index.js';\n","/**\n * chartjs-chart-funnel\n * https://github.com/sgratzl/chartjs-chart-funnel\n *\n * Copyright (c) 2021 Samuel Gratzl <samu@sgratzl.com>\n */\n\nimport { BarElement, registry, BarController, Chart, CategoryScale, LinearScale } from 'chart.js';\nimport { merge } from 'chart.js/helpers';\nimport chroma from 'chroma-js';\n\nfunction inBetween(v, min, max, delta = 10e-6) {\n    return v >= Math.min(min, max) - delta && v <= Math.max(min, max) + delta;\n}\nfunction transpose(m) {\n    return {\n        left: m.top,\n        right: m.bottom,\n        top: m.left,\n        bottom: m.right,\n        horizontal: !m.horizontal,\n    };\n}\nclass TrapezoidElement extends BarElement {\n    constructor() {\n        super(...arguments);\n        this.align = 'center';\n        this.next = undefined;\n        this.previous = undefined;\n    }\n    getBounds(useFinalPosition = false) {\n        const { x, y, base, width, height, horizontal } = this.getProps(['x', 'y', 'base', 'width', 'height', 'horizontal'], useFinalPosition);\n        if (horizontal) {\n            const w = Math.abs(x - base);\n            const left = base - (this.align !== 'left' ? w : 0);\n            const right = base + (this.align !== 'right' ? w : 0);\n            const half = height / 2;\n            const top = y - half;\n            const bottom = y + half;\n            return { left, top, right, bottom, horizontal };\n        }\n        else {\n            const h = Math.abs(y - base);\n            const half = width / 2;\n            const left = x - half;\n            const right = x + half;\n            const top = base - (this.align !== 'right' ? h : 0);\n            const bottom = base + (this.align !== 'left' ? h : 0);\n            return { left, top, right, bottom, horizontal };\n        }\n    }\n    inRange(mouseX, mouseY, useFinalPosition) {\n        const bb = this.getBounds(useFinalPosition);\n        const inX = mouseX == null || inBetween(mouseX, bb.left, bb.right);\n        const inY = mouseY == null || inBetween(mouseY, bb.top, bb.bottom);\n        return inX && inY;\n    }\n    inXRange(mouseX, useFinalPosition) {\n        return this.inRange(mouseX, null, useFinalPosition);\n    }\n    inYRange(mouseY, useFinalPosition) {\n        return this.inRange(null, mouseY, useFinalPosition);\n    }\n    getCenterPoint(useFinalPosition) {\n        const { x, y, base, horizontal } = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n        const r = {\n            center: {\n                x: horizontal ? base : x,\n                y: horizontal ? y : base,\n            },\n            left: {\n                x: horizontal ? (base + x) / 2 : x,\n                y: horizontal ? y : (base + y) / 2,\n            },\n            right: {\n                x: horizontal ? base - (x - base) / 2 : x,\n                y: horizontal ? y : base - (y + base) / 2,\n            },\n        }[this.align];\n        return r;\n    }\n    tooltipPosition(useFinalPosition) {\n        return this.getCenterPoint(useFinalPosition);\n    }\n    getRange(axis) {\n        const { width, height } = this.getProps(['width', 'height']);\n        return axis === 'x' ? width : height;\n    }\n    computeWayPoints(useFinalPosition = false) {\n        let dir = this.options.shrinkAnchor;\n        let shrinkFraction = Math.max(Math.min(this.options.shrinkFraction, 1), 0);\n        if (shrinkFraction === 0) {\n            dir = 'none';\n            shrinkFraction = 1;\n        }\n        let bounds = this.getBounds(useFinalPosition);\n        const hor = bounds.horizontal;\n        let nextBounds = this.next && (dir === 'top' || dir === 'middle') ? this.next.getBounds(useFinalPosition) : bounds;\n        let prevBounds = this.previous && (dir === 'bottom' || dir === 'middle') ? this.previous.getBounds(useFinalPosition) : bounds;\n        if (!hor) {\n            bounds = transpose(bounds);\n            nextBounds = transpose(nextBounds);\n            prevBounds = transpose(prevBounds);\n        }\n        const hi = Math.floor((bounds.bottom - bounds.top) * (1 - shrinkFraction));\n        const hiRest = Math.floor((bounds.bottom - bounds.top - hi) / 2);\n        const points = [];\n        const rPoints = [];\n        if (dir === 'none' || dir === 'top') {\n            points.push([bounds.left, bounds.top], [bounds.right, bounds.top]);\n        }\n        else {\n            let pFraction = 1;\n            if (dir === 'middle') {\n                const pHiRest = Math.floor((prevBounds.bottom - prevBounds.top) * shrinkFraction * 0.5);\n                pFraction = hiRest / (pHiRest + hiRest);\n            }\n            points.push([bounds.left + (prevBounds.left - bounds.left) * pFraction, bounds.top], [bounds.right + (prevBounds.right - bounds.right) * pFraction, bounds.top]);\n        }\n        if (dir === 'middle') {\n            points.push([bounds.right, bounds.top + hiRest]);\n            points.push([bounds.right, bounds.bottom - hiRest]);\n            rPoints.push([bounds.left, bounds.top + hiRest]);\n            rPoints.push([bounds.left, bounds.bottom - hiRest]);\n        }\n        else if (dir === 'top' && shrinkFraction < 1) {\n            points.push([bounds.right, bounds.top + hi]);\n            rPoints.push([bounds.left, bounds.top + hi]);\n        }\n        else if (dir === 'bottom' && shrinkFraction < 1) {\n            points.push([bounds.right, bounds.bottom - hi]);\n            rPoints.push([bounds.left, bounds.bottom - hi]);\n        }\n        if (dir === 'none' || dir === 'bottom') {\n            points.push([bounds.right, bounds.bottom], [bounds.left, bounds.bottom]);\n        }\n        else {\n            let nFraction = 1;\n            if (dir === 'middle') {\n                const nHiRest = Math.floor((nextBounds.bottom - nextBounds.top) * shrinkFraction * 0.5);\n                nFraction = hiRest / (nHiRest + hiRest);\n            }\n            points.push([bounds.right + (nextBounds.right - bounds.right) * nFraction, bounds.bottom], [bounds.left + (nextBounds.left - bounds.left) * nFraction, bounds.bottom]);\n        }\n        points.push(...rPoints.reverse());\n        if (!hor) {\n            return points.map(([x, y]) => [y, x]);\n        }\n        return points;\n    }\n    draw(ctx) {\n        const { options } = this;\n        ctx.save();\n        ctx.beginPath();\n        const points = this.computeWayPoints();\n        ctx.moveTo(points[0][0], points[0][1]);\n        for (const p of points.slice(1)) {\n            ctx.lineTo(p[0], p[1]);\n        }\n        if (options.backgroundColor) {\n            ctx.fillStyle = options.backgroundColor;\n            ctx.fill();\n        }\n        if (options.borderColor) {\n            ctx.strokeStyle = options.borderColor;\n            ctx.lineWidth = options.borderWidth;\n            ctx.stroke();\n        }\n        ctx.restore();\n    }\n}\nTrapezoidElement.id = 'trapezoid';\nTrapezoidElement.defaults = {\n    ...BarElement.defaults,\n    shrinkAnchor: 'top',\n    shrinkFraction: 1,\n};\nTrapezoidElement.defaultRoutes = BarElement.defaultRoutes;\n\nfunction pickForegroundColorToBackgroundColor(color, blackColor = '#000000', whiteColor = '#ffffff') {\n    return chroma(color).luminance() > 0.5 ? blackColor : whiteColor;\n}\nfunction blues(i, n) {\n    return chroma\n        .scale('Blues')(i / (n - 1))\n        .hex();\n}\n\nfunction patchController(type, config, controller, elements = [], scales = []) {\n    registry.addControllers(controller);\n    if (Array.isArray(elements)) {\n        registry.addElements(...elements);\n    }\n    else {\n        registry.addElements(elements);\n    }\n    if (Array.isArray(scales)) {\n        registry.addScales(...scales);\n    }\n    else {\n        registry.addScales(scales);\n    }\n    const c = config;\n    c.type = type;\n    return c;\n}\n\nclass FunnelController extends BarController {\n    getMinMax(scale, canStack) {\n        const { max } = super.getMinMax(scale, canStack);\n        const r = {\n            center: { min: -max, max },\n            left: { min: 0, max },\n            right: { min: -max, max: 0 },\n        }[this.options.align];\n        return r;\n    }\n    update(mode) {\n        super.update(mode);\n        const meta = this._cachedMeta;\n        const elements = (meta.data || []);\n        for (let i = 0; i < elements.length; i++) {\n            elements[i].align = this.options.align;\n            elements[i].next = elements[i + 1];\n            elements[i].previous = elements[i - 1];\n        }\n    }\n}\nFunnelController.id = 'funnel';\nFunnelController.defaults = merge({}, [\n    BarController.defaults,\n    {\n        dataElementType: TrapezoidElement.id,\n        barPercentage: 1,\n        align: 'center',\n        categoryPercentage: 0.98,\n    },\n]);\nFunnelController.overrides = merge({}, [\n    BarController.overrides,\n    {\n        plugins: {\n            legend: {\n                display: false,\n            },\n            colors: {\n                enabled: false,\n            },\n            datalabels: {\n                anchor: 'start',\n                textAlign: 'center',\n                font: {\n                    size: 20,\n                },\n                color: (context) => {\n                    const bgColor = context.chart.getDatasetMeta(context.datasetIndex).data[context.dataIndex].options\n                        .backgroundColor;\n                    return pickForegroundColorToBackgroundColor(bgColor, Chart.defaults.color, '#ffffff');\n                },\n                formatter: (value, context) => {\n                    var _a, _b;\n                    const label = (_b = (_a = context.chart.data.labels) === null || _a === void 0 ? void 0 : _a[context.dataIndex]) !== null && _b !== void 0 ? _b : '';\n                    return `${label}\\n${(value * 100).toLocaleString()}%`;\n                },\n            },\n        },\n        scales: {\n            _index_: {\n                display: false,\n                padding: 10,\n                grid: {\n                    display: false,\n                },\n            },\n            _value_: {\n                display: false,\n                beginAtZero: false,\n                grace: 0,\n                grid: {\n                    display: false,\n                },\n            },\n        },\n        elements: {\n            trapezoid: {\n                backgroundColor(context) {\n                    const nData = context.chart.data.datasets[context.datasetIndex].data.length;\n                    return blues(context.dataIndex, nData);\n                },\n            },\n        },\n    },\n]);\nclass FunnelChart extends Chart {\n    constructor(item, config) {\n        super(item, patchController('funnel', config, FunnelController, TrapezoidElement, [CategoryScale, LinearScale]));\n    }\n}\nFunnelChart.id = FunnelController.id;\n\nexport { FunnelChart, FunnelController, TrapezoidElement, blues, pickForegroundColorToBackgroundColor };\n//# sourceMappingURL=index.js.map\n","/**\n * @sgratzl/boxplots\n * https://github.com/sgratzl/boxplots\n *\n * Copyright (c) 2021 Samuel Gratzl <sam@sgratzl.com>\n */\n\nconst HELPER = Math.sqrt(2 * Math.PI);\nfunction gaussian(u) {\n    return Math.exp(-0.5 * u * u) / HELPER;\n}\nfunction toSampleVariance(variance, len) {\n    return (variance * len) / (len - 1);\n}\nfunction nrd(iqr, variance, len) {\n    let s = Math.sqrt(toSampleVariance(variance, len));\n    if (typeof iqr === 'number') {\n        s = Math.min(s, iqr / 1.34);\n    }\n    return 1.06 * s * Math.pow(len, -0.2);\n}\nfunction kde(stats) {\n    const len = stats.items.length;\n    const bandwidth = nrd(stats.iqr, stats.variance, len);\n    return (x) => {\n        let i = 0;\n        let sum = 0;\n        for (i = 0; i < len; i++) {\n            const v = stats.items[i];\n            sum += gaussian((x - v) / bandwidth);\n        }\n        return sum / bandwidth / len;\n    };\n}\n\nfunction quantilesInterpolate(arr, length, interpolate) {\n    const n1 = length - 1;\n    const compute = (q) => {\n        const index = q * n1;\n        const lo = Math.floor(index);\n        const h = index - lo;\n        const a = arr[lo];\n        return h === 0 ? a : interpolate(a, arr[Math.min(lo + 1, n1)], h);\n    };\n    return {\n        q1: compute(0.25),\n        median: compute(0.5),\n        q3: compute(0.75),\n    };\n}\nfunction quantilesType7(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (a, b, alpha) => a + alpha * (b - a));\n}\nfunction quantilesLinear(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (i, j, fraction) => i + (j - i) * fraction);\n}\nfunction quantilesLower(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (i) => i);\n}\nfunction quantilesHigher(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (_, j) => j);\n}\nfunction quantilesNearest(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (i, j, fraction) => (fraction < 0.5 ? i : j));\n}\nfunction quantilesMidpoint(arr, length = arr.length) {\n    return quantilesInterpolate(arr, length, (i, j) => (i + j) * 0.5);\n}\nfunction quantilesFivenum(arr, length = arr.length) {\n    const n = length;\n    const n4 = Math.floor((n + 3) / 2) / 2;\n    const compute = (d) => 0.5 * (arr[Math.floor(d) - 1] + arr[Math.ceil(d) - 1]);\n    return {\n        q1: compute(n4),\n        median: compute((n + 1) / 2),\n        q3: compute(n + 1 - n4),\n    };\n}\nfunction quantilesHinges(arr, length = arr.length) {\n    return quantilesFivenum(arr, length);\n}\n\nfunction createSortedData(data) {\n    let valid = 0;\n    const { length } = data;\n    const vs = data instanceof Float64Array ? new Float64Array(length) : new Float32Array(length);\n    for (let i = 0; i < length; i += 1) {\n        const v = data[i];\n        if (v == null || Number.isNaN(v)) {\n            continue;\n        }\n        vs[valid] = v;\n        valid += 1;\n    }\n    const missing = length - valid;\n    if (valid === 0) {\n        return {\n            min: Number.NaN,\n            max: Number.NaN,\n            missing,\n            s: [],\n        };\n    }\n    const validData = valid === length ? vs : vs.subarray(0, valid);\n    validData.sort((a, b) => (a === b ? 0 : a < b ? -1 : 1));\n    const min = validData[0];\n    const max = validData[validData.length - 1];\n    return {\n        min,\n        max,\n        missing,\n        s: validData,\n    };\n}\nfunction withSortedData(data) {\n    if (data.length === 0) {\n        return {\n            min: Number.NaN,\n            max: Number.NaN,\n            missing: 0,\n            s: [],\n        };\n    }\n    const min = data[0];\n    const max = data[data.length - 1];\n    return {\n        min,\n        max,\n        missing: 0,\n        s: data,\n    };\n}\nfunction computeWhiskers(s, valid, min, max, { eps, quantiles, coef, whiskersMode }) {\n    const same = (a, b) => Math.abs(a - b) < eps;\n    const { median, q1, q3 } = quantiles(s, valid);\n    const iqr = q3 - q1;\n    const isCoefValid = typeof coef === 'number' && coef > 0;\n    let whiskerLow = isCoefValid ? Math.max(min, q1 - coef * iqr) : min;\n    let whiskerHigh = isCoefValid ? Math.min(max, q3 + coef * iqr) : max;\n    const outlierLow = [];\n    for (let i = 0; i < valid; i += 1) {\n        const v = s[i];\n        if (v >= whiskerLow || same(v, whiskerLow)) {\n            if (whiskersMode === 'nearest') {\n                whiskerLow = v;\n            }\n            break;\n        }\n        if (outlierLow.length === 0 || !same(outlierLow[outlierLow.length - 1], v)) {\n            outlierLow.push(v);\n        }\n    }\n    const reversedOutlierHigh = [];\n    for (let i = valid - 1; i >= 0; i -= 1) {\n        const v = s[i];\n        if (v <= whiskerHigh || same(v, whiskerHigh)) {\n            if (whiskersMode === 'nearest') {\n                whiskerHigh = v;\n            }\n            break;\n        }\n        if ((reversedOutlierHigh.length === 0 || !same(reversedOutlierHigh[reversedOutlierHigh.length - 1], v)) &&\n            (outlierLow.length === 0 || !same(outlierLow[outlierLow.length - 1], v))) {\n            reversedOutlierHigh.push(v);\n        }\n    }\n    const outlier = outlierLow.concat(reversedOutlierHigh.reverse());\n    return {\n        median,\n        q1,\n        q3,\n        iqr,\n        outlier,\n        whiskerHigh,\n        whiskerLow,\n    };\n}\nfunction computeStats(s, valid) {\n    let mean = 0;\n    for (let i = 0; i < valid; i++) {\n        const v = s[i];\n        mean += v;\n    }\n    mean /= valid;\n    let variance = 0;\n    for (let i = 0; i < valid; i++) {\n        const v = s[i];\n        variance += (v - mean) * (v - mean);\n    }\n    variance /= valid;\n    return {\n        mean,\n        variance,\n    };\n}\nfunction boxplot(data, options = {}) {\n    const fullOptions = {\n        coef: 1.5,\n        eps: 10e-3,\n        quantiles: quantilesType7,\n        validAndSorted: false,\n        whiskersMode: 'nearest',\n        ...options,\n    };\n    const { missing, s, min, max } = fullOptions.validAndSorted ? withSortedData(data) : createSortedData(data);\n    const invalid = {\n        min: Number.NaN,\n        max: Number.NaN,\n        mean: Number.NaN,\n        missing,\n        iqr: Number.NaN,\n        count: data.length,\n        whiskerHigh: Number.NaN,\n        whiskerLow: Number.NaN,\n        outlier: [],\n        median: Number.NaN,\n        q1: Number.NaN,\n        q3: Number.NaN,\n        variance: 0,\n        items: [],\n        kde: () => 0,\n    };\n    const valid = data.length - missing;\n    if (valid === 0) {\n        return invalid;\n    }\n    const result = {\n        min,\n        max,\n        count: data.length,\n        missing,\n        items: s,\n        ...computeStats(s, valid),\n        ...computeWhiskers(s, valid, min, max, fullOptions),\n    };\n    return {\n        ...result,\n        kde: kde(result),\n    };\n}\n\nexport { boxplot, boxplot as default, kde, quantilesFivenum, quantilesHigher, quantilesHinges, quantilesInterpolate, quantilesLinear, quantilesLower, quantilesMidpoint, quantilesNearest, quantilesType7 };\n//# sourceMappingURL=index.js.map\n","/**\n * @sgratzl/chartjs-chart-boxplot\n * https://github.com/sgratzl/chartjs-chart-boxplot\n *\n * Copyright (c) 2019-2023 Samuel Gratzl <sam@sgratzl.com>\n */\n\nimport { Element, BarElement, Tooltip, BarController, registry, Chart, LinearScale, CategoryScale } from 'chart.js';\nimport { drawPoint, formatNumber, merge } from 'chart.js/helpers';\nimport { quantilesType7, boxplot, quantilesMidpoint, quantilesNearest, quantilesHigher, quantilesLower, quantilesLinear, quantilesFivenum, quantilesHinges } from '@sgratzl/boxplots';\n\nfunction whiskers(boxplot, arr, coef = 1.5) {\n    const iqr = boxplot.q3 - boxplot.q1;\n    const coefValid = typeof coef === 'number' && coef > 0;\n    let whiskerMin = coefValid ? Math.max(boxplot.min, boxplot.q1 - coef * iqr) : boxplot.min;\n    let whiskerMax = coefValid ? Math.min(boxplot.max, boxplot.q3 + coef * iqr) : boxplot.max;\n    if (Array.isArray(arr)) {\n        for (let i = 0; i < arr.length; i += 1) {\n            const v = arr[i];\n            if (v >= whiskerMin) {\n                whiskerMin = v;\n                break;\n            }\n        }\n        for (let i = arr.length - 1; i >= 0; i -= 1) {\n            const v = arr[i];\n            if (v <= whiskerMax) {\n                whiskerMax = v;\n                break;\n            }\n        }\n    }\n    return {\n        whiskerMin,\n        whiskerMax,\n    };\n}\nconst defaultStatsOptions = {\n    coef: 1.5,\n    quantiles: 7,\n    whiskersMode: 'nearest',\n};\nfunction determineQuantiles(q) {\n    if (typeof q === 'function') {\n        return q;\n    }\n    const lookup = {\n        hinges: quantilesHinges,\n        fivenum: quantilesFivenum,\n        7: quantilesType7,\n        quantiles: quantilesType7,\n        linear: quantilesLinear,\n        lower: quantilesLower,\n        higher: quantilesHigher,\n        nearest: quantilesNearest,\n        midpoint: quantilesMidpoint,\n    };\n    return lookup[q] || quantilesType7;\n}\nfunction determineStatsOptions(options) {\n    const coef = options == null || typeof options.coef !== 'number' ? defaultStatsOptions.coef : options.coef;\n    const q = options == null || options.quantiles == null ? quantilesType7 : options.quantiles;\n    const quantiles = determineQuantiles(q);\n    const whiskersMode = options == null || typeof options.whiskersMode !== 'string'\n        ? defaultStatsOptions.whiskersMode\n        : options.whiskersMode;\n    return {\n        coef,\n        quantiles,\n        whiskersMode,\n    };\n}\nfunction boxplotStats(arr, options) {\n    const vs = typeof Float64Array !== 'undefined' && !(arr instanceof Float32Array || arr instanceof Float64Array)\n        ? Float64Array.from(arr)\n        : arr;\n    const r = boxplot(vs, determineStatsOptions(options));\n    return {\n        items: Array.from(r.items),\n        outliers: r.outlier,\n        whiskerMax: r.whiskerHigh,\n        whiskerMin: r.whiskerLow,\n        max: r.max,\n        median: r.median,\n        mean: r.mean,\n        min: r.min,\n        q1: r.q1,\n        q3: r.q3,\n    };\n}\nfunction computeSamples(min, max, points) {\n    const range = max - min;\n    const samples = [];\n    const inc = range / points;\n    for (let v = min; v <= max && inc > 0; v += inc) {\n        samples.push(v);\n    }\n    if (samples[samples.length - 1] !== max) {\n        samples.push(max);\n    }\n    return samples;\n}\nfunction violinStats(arr, options) {\n    if (arr.length === 0) {\n        return undefined;\n    }\n    const vs = typeof Float64Array !== 'undefined' && !(arr instanceof Float32Array || arr instanceof Float64Array)\n        ? Float64Array.from(arr)\n        : arr;\n    const stats = boxplot(vs, determineStatsOptions(options));\n    const samples = computeSamples(stats.min, stats.max, options.points);\n    const coords = samples.map((v) => ({ v, estimate: stats.kde(v) }));\n    const maxEstimate = coords.reduce((a, d) => Math.max(a, d.estimate), Number.NEGATIVE_INFINITY);\n    return {\n        max: stats.max,\n        min: stats.min,\n        mean: stats.mean,\n        median: stats.median,\n        q1: stats.q1,\n        q3: stats.q3,\n        items: Array.from(stats.items),\n        coords,\n        outliers: [],\n        maxEstimate,\n    };\n}\nfunction asBoxPlotStats(value, options) {\n    if (!value) {\n        return undefined;\n    }\n    if (typeof value.median === 'number' && typeof value.q1 === 'number' && typeof value.q3 === 'number') {\n        if (typeof value.whiskerMin === 'undefined') {\n            const { coef } = determineStatsOptions(options);\n            const { whiskerMin, whiskerMax } = whiskers(value, Array.isArray(value.items) ? value.items.slice().sort((a, b) => a - b) : null, coef);\n            value.whiskerMin = whiskerMin;\n            value.whiskerMax = whiskerMax;\n        }\n        return value;\n    }\n    if (!Array.isArray(value)) {\n        return undefined;\n    }\n    return boxplotStats(value, options);\n}\nfunction asViolinStats(value, options) {\n    if (!value) {\n        return undefined;\n    }\n    if (typeof value.median === 'number' && Array.isArray(value.coords)) {\n        return value;\n    }\n    if (!Array.isArray(value)) {\n        return undefined;\n    }\n    return violinStats(value, options);\n}\nfunction rnd(seed = Date.now()) {\n    let s = seed;\n    return () => {\n        s = (s * 9301 + 49297) % 233280;\n        return s / 233280;\n    };\n}\n\nconst baseDefaults$1 = {\n    borderWidth: 1,\n    outlierStyle: 'circle',\n    outlierRadius: 2,\n    outlierBorderWidth: 1,\n    itemStyle: 'circle',\n    itemRadius: 0,\n    itemBorderWidth: 0,\n    itemHitRadius: 0,\n    meanStyle: 'circle',\n    meanRadius: 3,\n    meanBorderWidth: 1,\n    hitPadding: 2,\n    outlierHitRadius: 4,\n};\nconst baseRoutes = {\n    outlierBackgroundColor: 'backgroundColor',\n    outlierBorderColor: 'borderColor',\n    itemBackgroundColor: 'backgroundColor',\n    itemBorderColor: 'borderColor',\n    meanBackgroundColor: 'backgroundColor',\n    meanBorderColor: 'borderColor',\n};\nconst baseOptionKeys = (() => Object.keys(baseDefaults$1).concat(Object.keys(baseRoutes)))();\nlet StatsBase$1 = class StatsBase extends Element {\n    isVertical() {\n        return !this.horizontal;\n    }\n    _drawItems(ctx) {\n        const vert = this.isVertical();\n        const props = this.getProps(['x', 'y', 'items', 'width', 'height', 'outliers']);\n        const { options } = this;\n        if (options.itemRadius <= 0 || !props.items || props.items.length <= 0) {\n            return;\n        }\n        ctx.save();\n        ctx.strokeStyle = options.itemBorderColor;\n        ctx.fillStyle = options.itemBackgroundColor;\n        ctx.lineWidth = options.itemBorderWidth;\n        const random = rnd(this._datasetIndex * 1000 + this._index);\n        const pointOptions = {\n            pointStyle: options.itemStyle,\n            radius: options.itemRadius,\n            borderWidth: options.itemBorderWidth,\n        };\n        const outliers = new Set(props.outliers || []);\n        if (vert) {\n            props.items.forEach((v) => {\n                if (!outliers.has(v)) {\n                    drawPoint(ctx, pointOptions, props.x - props.width / 2 + random() * props.width, v);\n                }\n            });\n        }\n        else {\n            props.items.forEach((v) => {\n                if (!outliers.has(v)) {\n                    drawPoint(ctx, pointOptions, v, props.y - props.height / 2 + random() * props.height);\n                }\n            });\n        }\n        ctx.restore();\n    }\n    _drawOutliers(ctx) {\n        const vert = this.isVertical();\n        const props = this.getProps(['x', 'y', 'outliers']);\n        const { options } = this;\n        if (options.outlierRadius <= 0 || !props.outliers || props.outliers.length === 0) {\n            return;\n        }\n        ctx.save();\n        ctx.fillStyle = options.outlierBackgroundColor;\n        ctx.strokeStyle = options.outlierBorderColor;\n        ctx.lineWidth = options.outlierBorderWidth;\n        const pointOptions = {\n            pointStyle: options.outlierStyle,\n            radius: options.outlierRadius,\n            borderWidth: options.outlierBorderWidth,\n        };\n        if (vert) {\n            props.outliers.forEach((v) => {\n                drawPoint(ctx, pointOptions, props.x, v);\n            });\n        }\n        else {\n            props.outliers.forEach((v) => {\n                drawPoint(ctx, pointOptions, v, props.y);\n            });\n        }\n        ctx.restore();\n    }\n    _drawMeanDot(ctx) {\n        const vert = this.isVertical();\n        const props = this.getProps(['x', 'y', 'mean']);\n        const { options } = this;\n        if (options.meanRadius <= 0 || props.mean == null || Number.isNaN(props.mean)) {\n            return;\n        }\n        ctx.save();\n        ctx.fillStyle = options.meanBackgroundColor;\n        ctx.strokeStyle = options.meanBorderColor;\n        ctx.lineWidth = options.meanBorderWidth;\n        const pointOptions = {\n            pointStyle: options.meanStyle,\n            radius: options.meanRadius,\n            borderWidth: options.meanBorderWidth,\n        };\n        if (vert) {\n            drawPoint(ctx, pointOptions, props.x, props.mean);\n        }\n        else {\n            drawPoint(ctx, pointOptions, props.mean, props.y);\n        }\n        ctx.restore();\n    }\n    _getBounds(_useFinalPosition) {\n        return {\n            left: 0,\n            top: 0,\n            right: 0,\n            bottom: 0,\n        };\n    }\n    _getHitBounds(useFinalPosition) {\n        const padding = this.options.hitPadding;\n        const b = this._getBounds(useFinalPosition);\n        return {\n            left: b.left - padding,\n            top: b.top - padding,\n            right: b.right + padding,\n            bottom: b.bottom + padding,\n        };\n    }\n    inRange(mouseX, mouseY, useFinalPosition) {\n        if (Number.isNaN(this.x) && Number.isNaN(this.y)) {\n            return false;\n        }\n        return (this._boxInRange(mouseX, mouseY, useFinalPosition) ||\n            this._outlierIndexInRange(mouseX, mouseY, useFinalPosition) != null ||\n            this._itemIndexInRange(mouseX, mouseY, useFinalPosition) != null);\n    }\n    inXRange(mouseX, useFinalPosition) {\n        const bounds = this._getHitBounds(useFinalPosition);\n        return mouseX >= bounds.left && mouseX <= bounds.right;\n    }\n    inYRange(mouseY, useFinalPosition) {\n        const bounds = this._getHitBounds(useFinalPosition);\n        return mouseY >= bounds.top && mouseY <= bounds.bottom;\n    }\n    _outlierIndexInRange(mouseX, mouseY, useFinalPosition) {\n        const props = this.getProps(['x', 'y'], useFinalPosition);\n        const hitRadius = this.options.outlierHitRadius;\n        const outliers = this._getOutliers(useFinalPosition);\n        const vertical = this.isVertical();\n        if ((vertical && Math.abs(mouseX - props.x) > hitRadius) || (!vertical && Math.abs(mouseY - props.y) > hitRadius)) {\n            return null;\n        }\n        const toCompare = vertical ? mouseY : mouseX;\n        for (let i = 0; i < outliers.length; i += 1) {\n            if (Math.abs(outliers[i] - toCompare) <= hitRadius) {\n                return vertical ? { index: i, x: props.x, y: outliers[i] } : { index: i, x: outliers[i], y: props.y };\n            }\n        }\n        return null;\n    }\n    _itemIndexInRange(mouseX, mouseY, useFinalPosition) {\n        const hitRadius = this.options.itemHitRadius;\n        if (hitRadius <= 0) {\n            return null;\n        }\n        const props = this.getProps(['x', 'y', 'items', 'width', 'height', 'outliers'], useFinalPosition);\n        const vert = this.isVertical();\n        const { options } = this;\n        if (options.itemRadius <= 0 || !props.items || props.items.length <= 0) {\n            return null;\n        }\n        const random = rnd(this._datasetIndex * 1000 + this._index);\n        const outliers = new Set(props.outliers || []);\n        if (vert) {\n            for (let i = 0; i < props.items.length; i++) {\n                const y = props.items[i];\n                if (!outliers.has(y)) {\n                    const x = props.x - props.width / 2 + random() * props.width;\n                    if (Math.abs(x - mouseX) <= hitRadius && Math.abs(y - mouseY) <= hitRadius) {\n                        return { index: i, x, y };\n                    }\n                }\n            }\n        }\n        else {\n            for (let i = 0; i < props.items.length; i++) {\n                const x = props.items[i];\n                if (!outliers.has(x)) {\n                    const y = props.y - props.height / 2 + random() * props.height;\n                    if (Math.abs(x - mouseX) <= hitRadius && Math.abs(y - mouseY) <= hitRadius) {\n                        return { index: i, x, y };\n                    }\n                }\n            }\n        }\n        return null;\n    }\n    _boxInRange(mouseX, mouseY, useFinalPosition) {\n        const bounds = this._getHitBounds(useFinalPosition);\n        return mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\n    }\n    getCenterPoint(useFinalPosition) {\n        const props = this.getProps(['x', 'y'], useFinalPosition);\n        return {\n            x: props.x,\n            y: props.y,\n        };\n    }\n    _getOutliers(useFinalPosition) {\n        const props = this.getProps(['outliers'], useFinalPosition);\n        return props.outliers || [];\n    }\n    tooltipPosition(eventPosition, tooltip) {\n        if (!eventPosition || typeof eventPosition === 'boolean') {\n            return this.getCenterPoint();\n        }\n        if (tooltip) {\n            delete tooltip._tooltipOutlier;\n            delete tooltip._tooltipItem;\n        }\n        const info = this._outlierIndexInRange(eventPosition.x, eventPosition.y);\n        if (info != null && tooltip) {\n            tooltip._tooltipOutlier = {\n                index: info.index,\n                datasetIndex: this._datasetIndex,\n            };\n            return {\n                x: info.x,\n                y: info.y,\n            };\n        }\n        const itemInfo = this._itemIndexInRange(eventPosition.x, eventPosition.y);\n        if (itemInfo != null && tooltip) {\n            tooltip._tooltipItem = {\n                index: itemInfo.index,\n                datasetIndex: this._datasetIndex,\n            };\n            return {\n                x: itemInfo.x,\n                y: itemInfo.y,\n            };\n        }\n        return this.getCenterPoint();\n    }\n};\n\nconst boxOptionsKeys = baseOptionKeys.concat(['medianColor', 'lowerBackgroundColor']);\nclass BoxAndWiskers extends StatsBase$1 {\n    draw(ctx) {\n        ctx.save();\n        ctx.fillStyle = this.options.backgroundColor;\n        ctx.strokeStyle = this.options.borderColor;\n        ctx.lineWidth = this.options.borderWidth;\n        this._drawBoxPlot(ctx);\n        this._drawOutliers(ctx);\n        this._drawMeanDot(ctx);\n        ctx.restore();\n        this._drawItems(ctx);\n    }\n    _drawBoxPlot(ctx) {\n        if (this.isVertical()) {\n            this._drawBoxPlotVertical(ctx);\n        }\n        else {\n            this._drawBoxPlotHorizontal(ctx);\n        }\n    }\n    _drawBoxPlotVertical(ctx) {\n        const { options } = this;\n        const props = this.getProps(['x', 'width', 'q1', 'q3', 'median', 'whiskerMin', 'whiskerMax']);\n        const { x } = props;\n        const { width } = props;\n        const x0 = x - width / 2;\n        if (props.q3 > props.q1) {\n            ctx.fillRect(x0, props.q1, width, props.q3 - props.q1);\n        }\n        else {\n            ctx.fillRect(x0, props.q3, width, props.q1 - props.q3);\n        }\n        ctx.save();\n        if (options.medianColor && options.medianColor !== 'transparent' && options.medianColor !== '#0000') {\n            ctx.strokeStyle = options.medianColor;\n        }\n        ctx.beginPath();\n        ctx.moveTo(x0, props.median);\n        ctx.lineTo(x0 + width, props.median);\n        ctx.closePath();\n        ctx.stroke();\n        ctx.restore();\n        ctx.save();\n        if (options.lowerBackgroundColor &&\n            options.lowerBackgroundColor !== 'transparent' &&\n            options.lowerBackgroundColor !== '#0000') {\n            ctx.fillStyle = options.lowerBackgroundColor;\n            if (props.q3 > props.q1) {\n                ctx.fillRect(x0, props.median, width, props.q3 - props.median);\n            }\n            else {\n                ctx.fillRect(x0, props.median, width, props.q1 - props.median);\n            }\n        }\n        ctx.restore();\n        if (props.q3 > props.q1) {\n            ctx.strokeRect(x0, props.q1, width, props.q3 - props.q1);\n        }\n        else {\n            ctx.strokeRect(x0, props.q3, width, props.q1 - props.q3);\n        }\n        ctx.beginPath();\n        ctx.moveTo(x0, props.whiskerMin);\n        ctx.lineTo(x0 + width, props.whiskerMin);\n        ctx.moveTo(x, props.whiskerMin);\n        ctx.lineTo(x, props.q1);\n        ctx.moveTo(x0, props.whiskerMax);\n        ctx.lineTo(x0 + width, props.whiskerMax);\n        ctx.moveTo(x, props.whiskerMax);\n        ctx.lineTo(x, props.q3);\n        ctx.closePath();\n        ctx.stroke();\n    }\n    _drawBoxPlotHorizontal(ctx) {\n        const { options } = this;\n        const props = this.getProps(['y', 'height', 'q1', 'q3', 'median', 'whiskerMin', 'whiskerMax']);\n        const { y } = props;\n        const { height } = props;\n        const y0 = y - height / 2;\n        if (props.q3 > props.q1) {\n            ctx.fillRect(props.q1, y0, props.q3 - props.q1, height);\n        }\n        else {\n            ctx.fillRect(props.q3, y0, props.q1 - props.q3, height);\n        }\n        ctx.save();\n        if (options.medianColor && options.medianColor !== 'transparent') {\n            ctx.strokeStyle = options.medianColor;\n        }\n        ctx.beginPath();\n        ctx.moveTo(props.median, y0);\n        ctx.lineTo(props.median, y0 + height);\n        ctx.closePath();\n        ctx.stroke();\n        ctx.restore();\n        ctx.save();\n        if (options.lowerBackgroundColor && options.lowerBackgroundColor !== 'transparent') {\n            ctx.fillStyle = options.lowerBackgroundColor;\n            if (props.q3 > props.q1) {\n                ctx.fillRect(props.median, y0, props.q3 - props.median, height);\n            }\n            else {\n                ctx.fillRect(props.median, y0, props.q1 - props.median, height);\n            }\n        }\n        ctx.restore();\n        if (props.q3 > props.q1) {\n            ctx.strokeRect(props.q1, y0, props.q3 - props.q1, height);\n        }\n        else {\n            ctx.strokeRect(props.q3, y0, props.q1 - props.q3, height);\n        }\n        ctx.beginPath();\n        ctx.moveTo(props.whiskerMin, y0);\n        ctx.lineTo(props.whiskerMin, y0 + height);\n        ctx.moveTo(props.whiskerMin, y);\n        ctx.lineTo(props.q1, y);\n        ctx.moveTo(props.whiskerMax, y0);\n        ctx.lineTo(props.whiskerMax, y0 + height);\n        ctx.moveTo(props.whiskerMax, y);\n        ctx.lineTo(props.q3, y);\n        ctx.closePath();\n        ctx.stroke();\n    }\n    _getBounds(useFinalPosition) {\n        const vert = this.isVertical();\n        if (this.x == null) {\n            return {\n                left: 0,\n                top: 0,\n                right: 0,\n                bottom: 0,\n            };\n        }\n        if (vert) {\n            const { x, width, whiskerMax, whiskerMin } = this.getProps(['x', 'width', 'whiskerMin', 'whiskerMax'], useFinalPosition);\n            const x0 = x - width / 2;\n            return {\n                left: x0,\n                top: whiskerMax,\n                right: x0 + width,\n                bottom: whiskerMin,\n            };\n        }\n        const { y, height, whiskerMax, whiskerMin } = this.getProps(['y', 'height', 'whiskerMin', 'whiskerMax'], useFinalPosition);\n        const y0 = y - height / 2;\n        return {\n            left: whiskerMin,\n            top: y0,\n            right: whiskerMax,\n            bottom: y0 + height,\n        };\n    }\n}\nBoxAndWiskers.id = 'boxandwhiskers';\nBoxAndWiskers.defaults = {\n    ...BarElement.defaults,\n    ...baseDefaults$1,\n    medianColor: 'transparent',\n    lowerBackgroundColor: 'transparent',\n};\nBoxAndWiskers.defaultRoutes = { ...BarElement.defaultRoutes, ...baseRoutes };\n\nclass Violin extends StatsBase$1 {\n    draw(ctx) {\n        ctx.save();\n        ctx.fillStyle = this.options.backgroundColor;\n        ctx.strokeStyle = this.options.borderColor;\n        ctx.lineWidth = this.options.borderWidth;\n        const props = this.getProps(['x', 'y', 'median', 'width', 'height', 'min', 'max', 'coords', 'maxEstimate']);\n        if (props.median != null) {\n            drawPoint(ctx, {\n                pointStyle: 'rectRot',\n                radius: 5,\n                borderWidth: this.options.borderWidth,\n            }, props.x, props.y);\n        }\n        if (props.coords && props.coords.length > 0) {\n            this._drawCoords(ctx, props);\n        }\n        this._drawOutliers(ctx);\n        this._drawMeanDot(ctx);\n        ctx.restore();\n        this._drawItems(ctx);\n    }\n    _drawCoords(ctx, props) {\n        let maxEstimate;\n        if (props.maxEstimate == null) {\n            maxEstimate = props.coords.reduce((a, d) => Math.max(a, d.estimate), Number.NEGATIVE_INFINITY);\n        }\n        else {\n            maxEstimate = props.maxEstimate;\n        }\n        ctx.beginPath();\n        if (this.isVertical()) {\n            const { x, width } = props;\n            const factor = width / 2 / maxEstimate;\n            props.coords.forEach((c) => {\n                ctx.lineTo(x - c.estimate * factor, c.v);\n            });\n            props.coords\n                .slice()\n                .reverse()\n                .forEach((c) => {\n                ctx.lineTo(x + c.estimate * factor, c.v);\n            });\n        }\n        else {\n            const { y, height } = props;\n            const factor = height / 2 / maxEstimate;\n            props.coords.forEach((c) => {\n                ctx.lineTo(c.v, y - c.estimate * factor);\n            });\n            props.coords\n                .slice()\n                .reverse()\n                .forEach((c) => {\n                ctx.lineTo(c.v, y + c.estimate * factor);\n            });\n        }\n        ctx.closePath();\n        ctx.stroke();\n        ctx.fill();\n    }\n    _getBounds(useFinalPosition) {\n        if (this.isVertical()) {\n            const { x, width, min, max } = this.getProps(['x', 'width', 'min', 'max'], useFinalPosition);\n            const x0 = x - width / 2;\n            return {\n                left: x0,\n                top: max,\n                right: x0 + width,\n                bottom: min,\n            };\n        }\n        const { y, height, min, max } = this.getProps(['y', 'height', 'min', 'max'], useFinalPosition);\n        const y0 = y - height / 2;\n        return {\n            left: min,\n            top: y0,\n            right: max,\n            bottom: y0 + height,\n        };\n    }\n}\nViolin.id = 'violin';\nViolin.defaults = { ...BarElement.defaults, ...baseDefaults$1 };\nViolin.defaultRoutes = { ...BarElement.defaultRoutes, ...baseRoutes };\n\nconst interpolators = {\n    number(from, to, factor) {\n        if (from === to) {\n            return to;\n        }\n        if (from == null) {\n            return to;\n        }\n        if (to == null) {\n            return from;\n        }\n        return from + (to - from) * factor;\n    },\n};\nfunction interpolateNumberArray(from, to, factor) {\n    if (typeof from === 'number' && typeof to === 'number') {\n        return interpolators.number(from, to, factor);\n    }\n    if (Array.isArray(from) && Array.isArray(to)) {\n        return to.map((t, i) => interpolators.number(from[i], t, factor));\n    }\n    return to;\n}\nfunction interpolateKdeCoords(from, to, factor) {\n    if (Array.isArray(from) && Array.isArray(to)) {\n        return to.map((t, i) => ({\n            v: interpolators.number(from[i] ? from[i].v : null, t.v, factor),\n            estimate: interpolators.number(from[i] ? from[i].estimate : null, t.estimate, factor),\n        }));\n    }\n    return to;\n}\n\nfunction patchInHoveredOutlier(item) {\n    const value = item.formattedValue;\n    const that = this;\n    if (value && that._tooltipOutlier != null && item.datasetIndex === that._tooltipOutlier.datasetIndex) {\n        value.hoveredOutlierIndex = that._tooltipOutlier.index;\n    }\n    if (value && that._tooltipItem != null && item.datasetIndex === that._tooltipItem.datasetIndex) {\n        value.hoveredItemIndex = that._tooltipItem.index;\n    }\n}\nfunction outlierPositioner(items, eventPosition) {\n    if (!items.length) {\n        return false;\n    }\n    let x = 0;\n    let y = 0;\n    let count = 0;\n    for (let i = 0; i < items.length; i += 1) {\n        const el = items[i].element;\n        if (el && el.hasValue()) {\n            const pos = el.tooltipPosition(eventPosition, this);\n            x += pos.x;\n            y += pos.y;\n            count += 1;\n        }\n    }\n    return {\n        x: x / count,\n        y: y / count,\n    };\n}\noutlierPositioner.id = 'average';\noutlierPositioner.register = () => {\n    Tooltip.positioners.average = outlierPositioner;\n    return outlierPositioner;\n};\n\nfunction baseDefaults(keys) {\n    const colorKeys = ['borderColor', 'backgroundColor'].concat(keys.filter((c) => c.endsWith('Color')));\n    return {\n        animations: {\n            numberArray: {\n                fn: interpolateNumberArray,\n                properties: ['outliers', 'items'],\n            },\n            colors: {\n                type: 'color',\n                properties: colorKeys,\n            },\n        },\n        transitions: {\n            show: {\n                animations: {\n                    colors: {\n                        type: 'color',\n                        properties: colorKeys,\n                        from: 'transparent',\n                    },\n                },\n            },\n            hide: {\n                animations: {\n                    colors: {\n                        type: 'color',\n                        properties: colorKeys,\n                        to: 'transparent',\n                    },\n                },\n            },\n        },\n        minStats: 'min',\n        maxStats: 'max',\n        ...defaultStatsOptions,\n    };\n}\nfunction defaultOverrides() {\n    return {\n        plugins: {\n            tooltip: {\n                position: outlierPositioner.register().id,\n                callbacks: {\n                    beforeLabel: patchInHoveredOutlier,\n                },\n            },\n        },\n    };\n}\nclass StatsBase extends BarController {\n    _transformStats(target, source, mapper) {\n        for (const key of ['min', 'max', 'median', 'q3', 'q1', 'mean']) {\n            const v = source[key];\n            if (typeof v === 'number') {\n                target[key] = mapper(v);\n            }\n        }\n        for (const key of ['outliers', 'items']) {\n            if (Array.isArray(source[key])) {\n                target[key] = source[key].map(mapper);\n            }\n        }\n    }\n    getMinMax(scale, canStack) {\n        const bak = scale.axis;\n        const config = this.options;\n        scale.axis = config.minStats;\n        const { min } = super.getMinMax(scale, canStack);\n        scale.axis = config.maxStats;\n        const { max } = super.getMinMax(scale, canStack);\n        scale.axis = bak;\n        return { min, max };\n    }\n    parsePrimitiveData(meta, data, start, count) {\n        const vScale = meta.vScale;\n        const iScale = meta.iScale;\n        const labels = iScale.getLabels();\n        const r = [];\n        for (let i = 0; i < count; i += 1) {\n            const index = i + start;\n            const parsed = {};\n            parsed[iScale.axis] = iScale.parse(labels[index], index);\n            const stats = this._parseStats(data == null ? null : data[index], this.options);\n            if (stats) {\n                Object.assign(parsed, stats);\n                parsed[vScale.axis] = stats.median;\n            }\n            r.push(parsed);\n        }\n        return r;\n    }\n    parseArrayData(meta, data, start, count) {\n        return this.parsePrimitiveData(meta, data, start, count);\n    }\n    parseObjectData(meta, data, start, count) {\n        return this.parsePrimitiveData(meta, data, start, count);\n    }\n    getLabelAndValue(index) {\n        const r = super.getLabelAndValue(index);\n        const { vScale } = this._cachedMeta;\n        const parsed = this.getParsed(index);\n        if (!vScale || !parsed || r.value === 'NaN') {\n            return r;\n        }\n        r.value = {\n            raw: parsed,\n            hoveredOutlierIndex: -1,\n            hoveredItemIndex: -1,\n        };\n        this._transformStats(r.value, parsed, (v) => vScale.getLabelForValue(v));\n        const s = this._toStringStats(r.value.raw);\n        r.value.toString = function toString() {\n            if (this.hoveredOutlierIndex >= 0) {\n                return `(outlier: ${this.outliers[this.hoveredOutlierIndex]})`;\n            }\n            if (this.hoveredItemIndex >= 0) {\n                return `(item: ${this.items[this.hoveredItemIndex]})`;\n            }\n            return s;\n        };\n        return r;\n    }\n    _toStringStats(b) {\n        const f = (v) => (v == null ? 'NaN' : formatNumber(v, this.chart.options.locale, {}));\n        return `(min: ${f(b.min)}, 25% quantile: ${f(b.q1)}, median: ${f(b.median)}, mean: ${f(b.mean)}, 75% quantile: ${f(b.q3)}, max: ${f(b.max)})`;\n    }\n    updateElement(rectangle, index, properties, mode) {\n        const reset = mode === 'reset';\n        const scale = this._cachedMeta.vScale;\n        const parsed = this.getParsed(index);\n        const base = scale.getBasePixel();\n        properties._datasetIndex = this.index;\n        properties._index = index;\n        this._transformStats(properties, parsed, (v) => (reset ? base : scale.getPixelForValue(v, index)));\n        super.updateElement(rectangle, index, properties, mode);\n    }\n}\n\nfunction patchController(type, config, controller, elements = [], scales = []) {\n    registry.addControllers(controller);\n    if (Array.isArray(elements)) {\n        registry.addElements(...elements);\n    }\n    else {\n        registry.addElements(elements);\n    }\n    if (Array.isArray(scales)) {\n        registry.addScales(...scales);\n    }\n    else {\n        registry.addScales(scales);\n    }\n    const c = config;\n    c.type = type;\n    return c;\n}\n\nclass BoxPlotController extends StatsBase {\n    _parseStats(value, config) {\n        return asBoxPlotStats(value, config);\n    }\n    _transformStats(target, source, mapper) {\n        super._transformStats(target, source, mapper);\n        for (const key of ['whiskerMin', 'whiskerMax']) {\n            target[key] = mapper(source[key]);\n        }\n    }\n}\nBoxPlotController.id = 'boxplot';\nBoxPlotController.defaults = merge({}, [\n    BarController.defaults,\n    baseDefaults(boxOptionsKeys),\n    {\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: BarController.defaults.animations.numbers.properties.concat(['q1', 'q3', 'min', 'max', 'median', 'whiskerMin', 'whiskerMax', 'mean'], boxOptionsKeys.filter((c) => !c.endsWith('Color'))),\n            },\n        },\n        dataElementType: BoxAndWiskers.id,\n    },\n]);\nBoxPlotController.overrides = merge({}, [BarController.overrides, defaultOverrides()]);\nclass BoxPlotChart extends Chart {\n    constructor(item, config) {\n        super(item, patchController('boxplot', config, BoxPlotController, BoxAndWiskers, [LinearScale, CategoryScale]));\n    }\n}\nBoxPlotChart.id = BoxPlotController.id;\n\nclass ViolinController extends StatsBase {\n    _parseStats(value, config) {\n        return asViolinStats(value, config);\n    }\n    _transformStats(target, source, mapper) {\n        super._transformStats(target, source, mapper);\n        target.maxEstimate = source.maxEstimate;\n        if (Array.isArray(source.coords)) {\n            target.coords = source.coords.map((c) => ({ ...c, v: mapper(c.v) }));\n        }\n    }\n}\nViolinController.id = 'violin';\nViolinController.defaults = merge({}, [\n    BarController.defaults,\n    baseDefaults(baseOptionKeys),\n    {\n        points: 100,\n        animations: {\n            numbers: {\n                type: 'number',\n                properties: BarController.defaults.animations.numbers.properties.concat(['q1', 'q3', 'min', 'max', 'median', 'maxEstimate'], baseOptionKeys.filter((c) => !c.endsWith('Color'))),\n            },\n            kdeCoords: {\n                fn: interpolateKdeCoords,\n                properties: ['coords'],\n            },\n        },\n        dataElementType: Violin.id,\n    },\n]);\nViolinController.overrides = merge({}, [BarController.overrides, defaultOverrides()]);\nclass ViolinChart extends Chart {\n    constructor(item, config) {\n        super(item, patchController('violin', config, ViolinController, Violin, [LinearScale, CategoryScale]));\n    }\n}\nViolinChart.id = ViolinController.id;\n\nexport { BoxAndWiskers, BoxPlotChart, BoxPlotController, StatsBase$1 as StatsBase, Violin, ViolinChart, ViolinController };\n//# sourceMappingURL=index.js.map\n","import {\n  ArcElement,\n  BarController,\n  BarElement,\n  CategoryScale,\n  Chart,\n  DoughnutController,\n  Filler,\n  Legend,\n  LineController,\n  LineElement,\n  LinearScale,\n  PointElement,\n  Tooltip,\n} from \"chart.js\"\nimport { FunnelController, TrapezoidElement } from \"chartjs-chart-funnel\"\nimport { BoxAndWiskers, BoxPlotController } from \"@sgratzl/chartjs-chart-boxplot\"\n\nlet registered = false\n\nexport const registerKwCharts = () => {\n  if (registered) return\n\n  Chart.register(\n    CategoryScale,\n    LinearScale,\n    ArcElement,\n    BarController,\n    BarElement,\n    PointElement,\n    LineController,\n    LineElement,\n    Tooltip,\n    Legend,\n    Filler,\n    DoughnutController,\n    FunnelController,\n    TrapezoidElement,\n    BoxPlotController,\n    BoxAndWiskers,\n  )\n  registered = true\n}\n\n// Backwards-compat alias (legacy usages in analytics charts)\nexport const registerCharts = registerKwCharts\n","export const readCssVar = (\n  scope: HTMLElement | null | undefined,\n  name: string,\n  fallback: string,\n) => {\n  if (typeof window === \"undefined\") return fallback\n\n  const target = scope ?? document.documentElement\n  const value = getComputedStyle(target).getPropertyValue(name).trim()\n\n  return value || fallback\n}\n","import type { ScriptableContext } from \"chart.js\"\n\nconst parseHex = (hex: string) => {\n  const normalized = hex.replace(\"#\", \"\")\n  const expanded =\n    normalized.length === 3\n      ? normalized\n          .split(\"\")\n          .map((char) => `${char}${char}`)\n          .join(\"\")\n      : normalized.slice(0, 6)\n\n  const int = parseInt(expanded, 16)\n\n  return [int >> 16, (int >> 8) & 255, int & 255] as const\n}\n\nexport const toRgbTuple = (value: string | null | undefined, fallback = \"#22d3ee\") => {\n  const color = value?.trim()\n\n  if (color?.startsWith(\"#\")) return parseHex(color)\n\n  if (color?.startsWith(\"rgb\")) {\n    const numbers = color.match(/\\d+(\\.\\d+)?/g)?.map(Number)\n\n    if (numbers && numbers.length >= 3) return [numbers[0], numbers[1], numbers[2]] as const\n  }\n\n  if (color && /^[0-9a-fA-F]{6}$/.test(color)) return parseHex(`#${color}`)\n\n  return parseHex(fallback)\n}\n\nexport const toRgba = (value: string | null | undefined, alpha: number, fallback = \"#22d3ee\") => {\n  const c = value?.trim()\n\n  if (!c) return `rgba(${toRgbTuple(fallback).join(\", \")}, ${alpha})`\n\n  if (c.startsWith(\"rgba(\")) {\n    return c.replace(/rgba\\(([^)]+)\\)/, (_m, inner) => {\n      const parts = inner.split(\",\").map((p: string) => p.trim())\n\n      return `rgba(${parts[0]}, ${parts[1]}, ${parts[2]}, ${alpha})`\n    })\n  }\n\n  if (c.startsWith(\"rgb(\")) {\n    return c.replace(\"rgb(\", \"rgba(\").replace(\")\", `, ${alpha})`)\n  }\n\n  const [r, g, b] = toRgbTuple(c, fallback)\n\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`\n}\n\nexport const mkAreaFill = (\n  baseColor: string,\n  opts: { fromAlpha?: number; toAlpha?: number; fallbackAlpha?: number } = {},\n) => {\n  const { fromAlpha = 0.45, toAlpha = 0.02, fallbackAlpha = 0.25 } = opts\n\n  return (ctx: ScriptableContext<\"line\">) => {\n    const chart = ctx.chart\n    const area = chart.chartArea\n\n    if (!area) return toRgba(baseColor, fallbackAlpha)\n\n    const g = chart.ctx.createLinearGradient(0, area.top, 0, area.bottom)\n    g.addColorStop(0, toRgba(baseColor, fromAlpha))\n    g.addColorStop(1, toRgba(baseColor, toAlpha))\n\n    return g\n  }\n}\n\nexport const buildPalette = (base: string[], count: number) => {\n  if (count <= base.length) return base.slice(0, count)\n\n  const palette = [...base]\n  let i = 0\n  while (palette.length < count) {\n    const alpha = Math.max(0.3, 0.7 - Math.floor(palette.length / base.length) * 0.12)\n    palette.push(toRgba(base[i % base.length], alpha))\n    i += 1\n  }\n\n  return palette.slice(0, count)\n}\n","import { readCssVar } from \"../cssVar\"\nimport { toRgba } from \"../color\"\n\nexport type ChartTheme = {\n  text: string\n  textSoft: string\n  textMuted: string\n  grid: string\n  primary: string\n  secondary: string\n  accent: string\n  bg: string\n  border: string\n}\n\nexport const resolveChartTheme = (\n  scope: HTMLElement | null,\n  opts: { variant?: \"light\" | \"dark\" } = {},\n) => {\n  const variant = opts.variant ?? \"dark\"\n\n  const fallbackText = variant === \"light\" ? \"#0f172a\" : \"#f3eed9\"\n  const fallbackBg = variant === \"light\" ? \"#ffffff\" : \"#0f172a\"\n  const fallbackBorder = variant === \"light\" ? \"#e2e8f0\" : \"#1f2937\"\n\n  const text = readCssVar(\n    scope,\n    variant === \"light\" ? \"--text-invers-100\" : \"--text-100\",\n    fallbackText,\n  )\n  const textSoftSeed = readCssVar(\n    scope,\n    variant === \"light\" ? \"--text-invers-100\" : \"--text-200\",\n    text,\n  )\n  const textMutedSeed = readCssVar(\n    scope,\n    variant === \"light\" ? \"--text-invers-150\" : \"--text-300\",\n    textSoftSeed,\n  )\n  const primary = readCssVar(scope, \"--primary-100\", \"#22d3ee\")\n  const secondary = readCssVar(\n    scope,\n    \"--secondary-100\",\n    readCssVar(scope, \"--primary-200\", primary),\n  )\n  const accent = readCssVar(scope, \"--accent-100\", readCssVar(scope, \"--primary-300\", secondary))\n  const bg = readCssVar(scope, variant === \"light\" ? \"--neutral-white\" : \"--bg-100\", fallbackBg)\n  const borderSeed = readCssVar(\n    scope,\n    variant === \"light\" ? \"--text-invers-150\" : \"--border-100\",\n    fallbackBorder,\n  )\n  const border = variant === \"light\" ? toRgba(borderSeed, 0.45, fallbackBorder) : borderSeed\n\n  return {\n    text,\n    textSoft: toRgba(textSoftSeed, variant === \"light\" ? 0.88 : 0.85, fallbackText),\n    textMuted: toRgba(textMutedSeed, variant === \"light\" ? 0.84 : 0.7, fallbackText),\n    grid: toRgba(text, variant === \"light\" ? 0.2 : 0.12, fallbackText),\n    primary,\n    secondary,\n    accent,\n    bg,\n    border,\n  } satisfies ChartTheme\n}\n","import type { ChartOptions, ChartType, TooltipOptions } from \"chart.js\"\nimport type { ChartTheme } from \"../theme/resolveTheme\"\nimport { toRgba } from \"../color\"\nimport { readCssVar } from \"../cssVar\"\n\nexport const baseLegend = (theme: ChartTheme) => ({\n  position: \"bottom\" as const,\n  labels: {\n    color: theme.text,\n    usePointStyle: true,\n    pointStyle: \"circle\" as const,\n    boxWidth: 8,\n    boxHeight: 8,\n    padding: 16,\n  },\n})\n\nexport const baseScales = (theme: ChartTheme) => ({\n  x: {\n    grid: { color: theme.grid, drawBorder: false },\n    ticks: { color: theme.textSoft, maxRotation: 0, autoSkip: true, maxTicksLimit: 8 },\n  },\n  y: {\n    grid: { display: false, drawBorder: false },\n    ticks: { color: theme.textSoft, maxTicksLimit: 5 },\n    beginAtZero: true,\n  },\n})\n\nexport const baseOptions = (theme: ChartTheme): ChartOptions => ({\n  responsive: true,\n  maintainAspectRatio: false,\n  color: theme.text,\n  borderColor: theme.border,\n})\n\nexport const baseTooltip = (theme: ChartTheme) => {\n  const fontFamily = readCssVar(null, \"--font-family-base\", \"Outfit, sans-serif\")\n\n  return {\n    backgroundColor: toRgba(theme.bg, 0.92),\n    borderColor: toRgba(theme.accent, 0.55),\n    borderWidth: 1,\n    cornerRadius: 0,\n    padding: { top: 10, right: 12, bottom: 10, left: 12 },\n    boxPadding: 4,\n    titleColor: theme.text,\n    bodyColor: theme.textSoft,\n    footerColor: theme.textMuted,\n    titleFont: { family: fontFamily, size: 13, weight: 700 },\n    bodyFont: { family: fontFamily, size: 12, weight: 600 },\n    footerFont: { family: fontFamily, size: 11, weight: 600 },\n    titleAlign: \"left\",\n    bodyAlign: \"left\",\n    footerAlign: \"left\",\n    titleSpacing: 4,\n    titleMarginBottom: 8,\n    bodySpacing: 6,\n    footerSpacing: 4,\n    footerMarginTop: 8,\n    caretPadding: 6,\n    caretSize: 6,\n    displayColors: false,\n    multiKeyBackground: toRgba(theme.bg, 0.92),\n  } satisfies Partial<TooltipOptions<ChartType>>\n}\n","import type { ChartConfiguration } from \"chart.js\"\nimport type { ChartTheme } from \"../theme/resolveTheme\"\nimport { mkAreaFill } from \"../color\"\nimport { baseLegend, baseScales, baseTooltip } from \"./base\"\n\ntype LineSeries = {\n  label: string\n  data: Array<number | null>\n  color: string\n  fill?: boolean\n  stack?: string\n  borderWidth?: number\n  borderDash?: number[]\n  borderColor?: string\n  backgroundColor?: string | ((ctx: any) => string)\n  tension?: number\n  pointRadius?: number\n}\n\ntype LinePresetOptions = {\n  labels: string[]\n  series: LineSeries[]\n  theme: ChartTheme\n  stacked?: boolean\n  showLegend?: boolean\n  tooltipLabel?: (ctx: any) => string\n  x?: any\n  y?: any\n}\n\nexport const lineAreaMulti = (options: LinePresetOptions): ChartConfiguration<\"line\"> => {\n  const { labels, series, theme, stacked = false, showLegend = true, tooltipLabel, x, y } = options\n  const scales = baseScales(theme)\n  const legend = baseLegend(theme)\n\n  const xMerged = { ...scales.x, ...(x ?? {}) }\n\n  if (x?.ticks) xMerged.ticks = { ...scales.x.ticks, ...x.ticks }\n\n  if (x?.grid) xMerged.grid = { ...scales.x.grid, ...x.grid }\n\n  const yMerged = { ...scales.y, ...(y ?? {}), stacked }\n\n  if (y?.ticks) yMerged.ticks = { ...scales.y.ticks, ...y.ticks }\n\n  if (y?.grid) yMerged.grid = { ...scales.y.grid, ...y.grid }\n\n  return {\n    type: \"line\",\n    data: {\n      labels,\n      datasets: series.map((entry) => {\n        const fill = entry.fill ?? true\n\n        return {\n          label: entry.label,\n          data: entry.data,\n          borderColor: entry.borderColor ?? entry.color,\n          backgroundColor: fill\n            ? (entry.backgroundColor ?? mkAreaFill(entry.color))\n            : (entry.backgroundColor ?? \"transparent\"),\n          fill,\n          tension: entry.tension ?? 0.35,\n          pointRadius: entry.pointRadius ?? 0,\n          borderWidth: entry.borderWidth ?? 2,\n          borderDash: entry.borderDash,\n          stack: entry.stack,\n        }\n      }),\n    },\n    options: {\n      plugins: {\n        legend: showLegend ? { display: true, ...legend } : { display: false },\n        tooltip: {\n          ...baseTooltip(theme),\n          ...(tooltipLabel\n            ? {\n                callbacks: {\n                  label: tooltipLabel,\n                },\n              }\n            : {}),\n        },\n      },\n      scales: {\n        x: xMerged,\n        y: yMerged,\n      },\n    },\n  }\n}\n","import type { ChartConfiguration } from \"chart.js\"\n\nimport { lineAreaMulti } from \"./presets/line\"\nimport type { ChartTheme } from \"./theme/resolveTheme\"\n\nexport type TrendPoint = {\n  date: string\n  value: number | null\n}\n\nexport type TrendSeries = {\n  label: string\n  points: TrendPoint[]\n  color?: string\n  fill?: boolean\n  borderWidth?: number\n  borderDash?: number[]\n  tension?: number\n  pointRadius?: number\n}\n\ntype BuildTrendChartConfigOptions = {\n  title: string\n  points?: TrendPoint[]\n  series?: TrendSeries[]\n  unit?: string | null\n  fractionDigits?: number\n  allowEmpty?: boolean\n  theme: ChartTheme\n  dateTickFormatter?: Intl.DateTimeFormat\n  dateLongFormatter?: Intl.DateTimeFormat\n}\n\nconst DEFAULT_COLORS = (theme: ChartTheme) => [theme.primary, theme.secondary, theme.accent]\n\nexport const normalizeTrendDate = (value: string): Date => {\n  const safe = value.includes(\"T\") ? value : `${value}T00:00:00Z`\n  const parsed = new Date(safe)\n\n  return Number.isNaN(parsed.getTime()) ? new Date() : parsed\n}\n\nconst compactTick = (value: number) => {\n  const abs = Math.abs(value)\n\n  if (abs >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`\n\n  if (abs >= 1_000) return `${(value / 1_000).toFixed(1)}k`\n\n  return value.toLocaleString(\"de-DE\")\n}\n\nconst formatValue = (value: number, unit: string | null, fractionDigits: number) => {\n  const formatted = Number(value).toLocaleString(\"de-DE\", {\n    minimumFractionDigits: 0,\n    maximumFractionDigits: Math.max(0, fractionDigits),\n  })\n  const unitSuffix = unit && unit.trim() ? ` ${unit.trim()}` : \"\"\n\n  return `${formatted}${unitSuffix}`\n}\n\nconst resolveSeries = (\n  title: string,\n  points: TrendPoint[],\n  series: TrendSeries[] | undefined,\n): TrendSeries[] => (series?.length ? series : [{ label: title, points, fill: true }])\n\nexport const buildTrendChartConfig = ({\n  title,\n  points = [],\n  series,\n  unit = null,\n  fractionDigits = 0,\n  allowEmpty = false,\n  theme,\n  dateTickFormatter = new Intl.DateTimeFormat(\"de-DE\", { day: \"2-digit\", month: \"short\" }),\n  dateLongFormatter = new Intl.DateTimeFormat(\"de-DE\", {\n    day: \"2-digit\",\n    month: \"short\",\n    year: \"numeric\",\n  }),\n}: BuildTrendChartConfigOptions): ChartConfiguration<\"line\"> | null => {\n  const chartSeries = resolveSeries(title, points, series)\n  const anchorPoints = chartSeries[0]?.points ?? []\n\n  if (!anchorPoints.length) return null\n\n  if (\n    !allowEmpty &&\n    !chartSeries.some((entry) => entry.points.some((point) => point.value != null))\n  ) {\n    return null\n  }\n\n  const labels = anchorPoints.map((item) => dateTickFormatter.format(normalizeTrendDate(item.date)))\n  const colors = DEFAULT_COLORS(theme)\n  const config = lineAreaMulti({\n    labels,\n    theme,\n    showLegend: chartSeries.length > 1,\n    series: chartSeries.map((entry, index) => ({\n      label: entry.label,\n      data: entry.points.map((point) => point.value),\n      color: entry.color ?? colors[index % colors.length],\n      fill: entry.fill ?? (chartSeries.length === 1 && index === 0),\n      tension: entry.tension ?? 0.32,\n      borderWidth: entry.borderWidth ?? (index === 0 ? 3 : 2),\n      pointRadius: entry.pointRadius ?? 0,\n      borderDash: entry.borderDash,\n    })),\n    tooltipLabel: (ctx: any) => {\n      const prefix = ctx.dataset?.label ? `${ctx.dataset.label}: ` : \"\"\n\n      return ctx.raw == null\n        ? `${prefix}n/a`\n        : `${prefix}${formatValue(Number(ctx.raw), unit, fractionDigits)}`\n    },\n    y: {\n      ticks: {\n        callback: (value: any) => compactTick(Number(value)),\n      },\n    },\n  })\n\n  ;(config.options as any).interaction = { mode: \"index\", intersect: false }\n  ;(config.options as any).layout = { padding: { left: 6, right: 12, top: 8, bottom: 6 } }\n\n  const prevTooltip = (config.options?.plugins as any)?.tooltip ?? {}\n  const prevCallbacks = prevTooltip.callbacks ?? {}\n  ;(config.options as any).plugins = {\n    ...(config.options?.plugins as any),\n    tooltip: {\n      ...prevTooltip,\n      callbacks: {\n        ...prevCallbacks,\n        title: (items: any[]) => {\n          if (!items?.length) return \"\"\n\n          const idx = items[0]?.dataIndex ?? 0\n          const item = anchorPoints[idx]\n\n          return item ? dateLongFormatter.format(normalizeTrendDate(item.date)) : \"\"\n        },\n      },\n    },\n  }\n\n  return config\n}\n","export type StatusColorName =\n  | \"neutral\"\n  | \"forest\"\n  | \"emerald\"\n  | \"teal\"\n  | \"cyan\"\n  | \"blue\"\n  | \"indigo\"\n  | \"violet\"\n  | \"magenta\"\n  | \"rose\"\n  | \"orange\"\n  | \"amber\"\n\nexport const statusColorPalette: Record<StatusColorName, string> = {\n  neutral: \"var(--text-invers-100, #111111)\",\n  forest: \"#166534\",\n  emerald: \"#0fab69\",\n  teal: \"#0f9bbf\",\n  cyan: \"#1fb6ff\",\n  blue: \"#3461ff\",\n  indigo: \"#5f5ae6\",\n  violet: \"#9b5de5\",\n  magenta: \"#d23f7f\",\n  rose: \"#e25555\",\n  orange: \"#f48c06\",\n  amber: \"#d97706\",\n}\n\nexport const defaultStatusColor = statusColorPalette.emerald\n\nexport type StatusDefinition<Value extends string = string> = {\n  value: Value\n  label: string\n  icon?: string\n  color?: StatusColorName | string\n  description?: string\n}\n\nexport const resolveStatusColor = (color?: StatusDefinition[\"color\"]) => {\n  if (!color) return defaultStatusColor\n\n  if (color in statusColorPalette) {\n    return statusColorPalette[color as StatusColorName]\n  }\n\n  return color\n}\n","import type { Snippet } from \"svelte\"\nimport type { StatusDefinition } from \"../display/status\"\nimport type { HelpDialogConfig, HelpDialogContext } from \"../help/types\"\nimport type { InvalidationTarget } from \"../runtime/invalidation\"\n\n// Theme & View\nexport type Theme = \"dark\" | \"light\"\nexport type ViewMode = \"auto\" | \"table\" | \"table-scroll\" | \"cards\"\n\n// Spalten-Definition\nexport interface ColumnDef {\n  /** key im row-Objekt */\n  id: string\n  /** Tabellen-Header / Label in der Kachel */\n  label: string\n  /** optionale feste Breite (z.B. \"180px\") */\n  width?: string\n  minWidth?: number\n  maxWidth?: number\n  canPin?: boolean\n  measureValue?: (row: DataRow) => string | number | null | undefined\n  align?: \"left\" | \"center\" | \"right\"\n  /** optionaler Tooltip für den Header */\n  tooltip?: string\n  /** false = nicht in Kachel anzeigen */\n  showInCards?: boolean\n  /** true = bevorzugte Spalte für Titel in der Kachel */\n  isPrimary?: boolean\n  /** aktiviert Sortierung für diese Spalte */\n  sortable?: boolean\n  /** optionaler Key für API-/Query-Sortierung */\n  sortKey?: string\n  /** optionaler Datentyp für lokale Sortierung */\n  sortType?: \"text\" | \"number\" | \"date\" | \"boolean\"\n  /** Start-Richtung für den Header-Zyklus */\n  defaultSortDir?: \"asc\" | \"desc\"\n  /** Rohwert für lokale Sortierung, wenn die Zelle gerendert/zusammengesetzt ist */\n  getSortValue?: (row: DataRow) => unknown\n}\n\n// Zeile ist frei strukturierbar\nexport interface DataRow {\n  id?: string | number\n  [key: string]: unknown\n}\n\ntype BaseFilterDef = {\n  /** eindeutiger Schlüssel für das Filter-Objekt (fällt zurück auf column) */\n  id?: string\n  column?: string\n  label?: string\n  placeholder?: string\n}\n\nexport type TextTableFilter = BaseFilterDef & {\n  type: \"text\"\n  /** initialer Wert für das Filterobjekt */\n  defaultValue?: string | number | null\n  /** @deprecated Kompat für alte Aufrufer – nutzt defaultValue */\n  value?: string | number | null\n}\n\nexport type SelectTableFilterOption = {\n  value: string\n  label?: string\n  name?: string\n  group?: string\n  selectable?: boolean\n  description?: string\n  icon?: string\n  color?: string\n}\n\nexport type SelectTableFilter = BaseFilterDef & {\n  type: \"select\"\n  options: SelectTableFilterOption[]\n  /** initialer Wert für das Filterobjekt */\n  defaultValue?: string | null\n  /** @deprecated Kompat für alte Aufrufer – nutzt defaultValue */\n  value?: string | null\n  multiple?: boolean\n  brightBackground?: boolean\n  groupBy?: string | ((item: SelectTableFilterOption) => string)\n  groupHeaderSelectable?: boolean\n  selectStyle?: string\n}\n\nexport type StatusTableFilter = BaseFilterDef & {\n  type: \"status\"\n  statuses: StatusDefinition[]\n  /** initialer Wert für das Filterobjekt */\n  defaultValue?: string | string[] | null\n  /** @deprecated Kompat für alte Aufrufer – nutzt defaultValue */\n  value?: string | string[] | null\n  placeholder?: string\n  multiple?: boolean\n  brightBackground?: boolean\n}\n\nexport type TableFilter = TextTableFilter | SelectTableFilter | StatusTableFilter\nexport type TableFilterValues = Record<string, string | string[] | null>\n\n// Snippet-Typen (werden von TableView / CardView wiederverwendet)\nexport type TableCellRenderer = Snippet<[{ row: DataRow; column: ColumnDef }]>\nexport type TableRowIdResolver = (row: DataRow) => string | number\nexport type TableRowAction = {\n  id: string\n  label: string\n  tooltip?: string\n  tooltipClassName?: string\n  testId?: string\n  icon?: string\n  primary?: boolean\n  display?: \"inline\" | \"menu\"\n  visible?: boolean\n  disabled?: boolean\n  disabledReason?: string | null\n  pending?: boolean\n  tone?: \"default\" | \"danger\"\n  muted?: boolean\n  onClick: (row: DataRow, context: { rowIndex: number }) => void | Promise<void>\n}\nexport type TableRowActionsResolver = (\n  row: DataRow,\n  rowIndex: number,\n) => TableRowAction[] | null | undefined\nexport type TablePrimaryRowAction = Omit<\n  TableRowAction,\n  \"primary\" | \"display\" | \"tone\" | \"icon\"\n> & {\n  icon: string\n  primary?: never\n  display?: never\n  tone?: never\n}\nexport type TableSecondaryRowAction = Omit<TableRowAction, \"primary\" | \"display\"> & {\n  primary?: never\n  display: \"inline\" | \"menu\"\n}\nexport type TableRowActionSet = {\n  primary: TablePrimaryRowAction | null\n  secondary: TableSecondaryRowAction[]\n}\nexport type TableRowActionsConfig = {\n  resolve: (row: DataRow, rowIndex: number) => TableRowActionSet\n}\n\n/** Partition existing commands by explicit owner-selected ids, never by order or primary flags. */\nexport function buildTableRowActionSet(\n  actions: TableRowAction[],\n  options: { primaryId: string | null; inlineIds?: readonly string[] },\n): TableRowActionSet {\n  const selected =\n    options.primaryId === null\n      ? null\n      : (actions.find((action) => action.id === options.primaryId) ?? null)\n  const inlineIds = new Set(options.inlineIds ?? [])\n  let primary: TablePrimaryRowAction | null = null\n\n  if (selected && selected.visible !== false) {\n    const { primary: _primary, display: _display, tone, icon, ...command } = selected\n\n    if (!icon || tone === \"danger\")\n      throw new Error(\"Table primary commands require a non-destructive icon action.\")\n\n    primary = { ...command, icon }\n  }\n\n  return {\n    primary,\n    secondary: actions\n      .filter((action) => action !== selected)\n      .map((action) => {\n        const { primary: _primary, display, ...command } = action\n\n        return { ...command, display: inlineIds.has(action.id) ? \"inline\" : (display ?? \"menu\") }\n      }),\n  }\n}\nexport type CardTitleRenderer = Snippet<[{ row: DataRow }]>\nexport type CardSubtitleRenderer = Snippet<[{ row: DataRow }]>\nexport type CardFieldRenderer = Snippet<[{ row: DataRow; column: ColumnDef }]>\nexport type CardCtaRenderer = Snippet<[{ row: DataRow; primaryAction: () => void }]>\nexport type TableSelectionContext = {\n  selectedRows: DataRow[]\n  selectedCount: number\n  selectedIds: string[]\n  clearSelection: () => void\n  selectAllVisible: () => void\n}\nexport type TableSelectionRenderer = Snippet<[TableSelectionContext]>\nexport type TableSelectionChangeDetail = TableSelectionContext\nexport type TableRowTestIdResolver = (row: DataRow, rowIndex: number) => string | undefined\nexport type TableCellTestIdResolver = (\n  row: DataRow,\n  column: ColumnDef,\n  rowIndex: number,\n) => string | undefined\nexport type TableRowState = {\n  loading?: boolean\n  disabled?: boolean\n  selectable?: boolean\n  muted?: boolean\n  className?: string\n  disabledReason?: string | null\n  mutedReason?: string | null\n}\nexport type TableRowStateResolver = (\n  row: DataRow,\n  rowIndex: number,\n) => TableRowState | null | undefined\nexport type TableRowControlKind = \"remove\" | \"restore\" | \"reset\"\nexport type TableRowControlCommand = {\n  kind: TableRowControlKind\n  disabled?: boolean\n  pending?: boolean\n  tooltip?: string\n  ariaLabel?: string\n  onClick?: (row: DataRow, context: { rowIndex: number }) => void | Promise<void>\n}\nexport type TableRowControlsResolver = (\n  row: DataRow,\n  rowIndex: number,\n) => TableRowControlCommand[] | null | undefined\nexport type TableSortDirection = \"asc\" | \"desc\"\nexport type TableSortState = {\n  columnId: string\n  key: string\n  dir: TableSortDirection\n} | null\n\nexport type TableGetRowsParams<FilterShape = TableFilterValues> = {\n  filters: FilterShape\n  limit: number\n  offset: number\n  sort: TableSortState\n}\n\nexport type TableGetRowsResult = {\n  rows: DataRow[]\n  total?: number | null\n}\n\nexport type TableGetRows<FilterShape = TableFilterValues> = (\n  params: TableGetRowsParams<FilterShape>,\n) => Promise<TableGetRowsResult> | TableGetRowsResult\nexport type TableRowsUpdateOptions = {\n  total?: number | null | ((currentTotal: number | null) => number | null)\n}\nexport type TableRowsUpdater = (\n  updateRows: (rows: DataRow[]) => DataRow[],\n  options?: TableRowsUpdateOptions,\n) => void\n\nexport type TitleRowConfig = {\n  content: string\n  subtitle?: string\n  description?: string\n  brightBackground?: boolean\n  small?: boolean\n  style?: string\n  styleOuter?: string\n  showFormatButtons?: boolean\n  buttonSnippet?: Snippet\n  formatOptions?: ViewToggleOption[]\n  helpModalTextId?: string\n  helpModalContext?: HelpDialogContext\n  helpModalFallback?: HelpDialogConfig | null\n  helpModalTooltip?: string\n}\n\ntype TableBaseProps = {\n  getRowId?: TableRowIdResolver\n  columns?: ColumnDef[]\n  /** Funktion zum Laden der Daten; wird immer mit Filterobjekt + Limit/Offset aufgerufen */\n  getRows: TableGetRows<TableFilterValues>\n  /** Anzahl der Zeilen, die pro Request geladen werden sollen */\n  pageSize?: number\n  /** Falls false, lädt die Tabelle nicht automatisch beim Mount */\n  autoLoad?: boolean\n  /** debounce für Filter-Änderungen */\n  fetchDebounceMs?: number\n  /** wie viele Skeleton-Zeilen beim Laden angezeigt werden */\n  loadingRowCount?: number\n  /** Optionales externes Loading (z.B. bei parent-seitigem Datenladen) */\n  loading?: boolean\n  theme?: Theme\n  mode?: ViewMode\n  stickyHeaderTop?: string\n  /** Optionales Initial-Format (überschreibt gespeicherten Modus beim Mount) */\n  defaultMode?: ViewMode | null\n  showFilters?: boolean\n  defaultSort?: TableSortState\n  urlStateId?: string | null\n  refreshKey?: number | string\n  /** Optional: registriert die Tabelle auf fachliche Invalidation-Topics. */\n  invalidationTargets?: InvalidationTarget[] | null\n  /** Optional: gibt dem aufrufenden Parent eine Refresh-Funktion */\n  setRefreshFunction?: (refresh: () => Promise<void>) => void\n  /** Optional: gibt dem aufrufenden Parent eine lokale Row-Patch-Funktion ohne Fetch/Loading-State. */\n  setRowsUpdater?: (updater: TableRowsUpdater) => void\n\n  cardFieldIds?: string[] | null\n  maxCardFields?: number | null\n  /** Wie viele Felder pro Kachel-Seite, bevor vertikal \"weitergeslidet\" wird */\n  cardPageSize?: number | null\n\n  primaryButtonLabel?: string\n\n  showActions?: boolean\n  actionsHeaderLabel?: string\n  enableSelection?: boolean\n  batchActions?: TableSelectionRenderer\n  showBatchActionCount?: boolean\n  /** Oberflächenton der Batch-Leiste; kann vom Tabellen-Theme abweichen, z. B. helle Tabelle auf dunklem Workflow. */\n  batchActionsSurfaceTone?: Theme\n  /** @deprecated Nutze batchActions, damit Table Layout und Count standardisiert rendert. */\n  selectionBar?: TableSelectionRenderer\n  selectedIds?: string[] | null\n  onSelectionChange?: (detail: TableSelectionChangeDetail) => void\n  onSelectedIdsChange?: (detail: TableSelectionChangeDetail) => void\n\n  filter?: TableFilter | TableFilter[] | null\n  /** ermöglicht externe Filterwerte (z. B. eigenes Filter-UI) */\n  externalFilters?: TableFilterValues | null\n  onRowsLoaded?: (result: TableGetRowsResult) => void\n  onModeChange?: (mode: ViewMode) => void\n  rowTestId?: TableRowTestIdResolver\n  cellTestId?: TableCellTestIdResolver\n  getRowState?: TableRowStateResolver\n\n  empty?: Snippet<[]>\n  /** Optional content rendered directly below the table filter controls. */\n  afterFilters?: Snippet<[]>\n\n  tableCell?: TableCellRenderer\n  rowControls?: TableRowControlsResolver\n  cardTitle?: CardTitleRenderer\n  cardSubtitle?: CardSubtitleRenderer\n  cardField?: CardFieldRenderer\n\n  titleRow?: TitleRowConfig | null\n  /** Optionales Titel-Button-Snippet (Fallback, wenn nicht in titleRow gesetzt) */\n  buttonSnippet?: Snippet\n  /** Optional: ermöglicht, den View-Toggle außerhalb der Table-Komponente zu rendern */\n  setViewToggleSnippet?: (snippet: Snippet | null) => void\n}\n\nexport type TableProps = TableBaseProps &\n  (\n    | {\n        rowActions: TableRowActionsConfig\n        onRowClick?: never\n        onPrimaryAction?: never\n        cardCta?: never\n        showPrimaryButton?: false\n      }\n    | {\n        /** @deprecated Internal tables use the structured rowActions contract. */\n        rowActions?: TableRowActionsResolver\n        onRowClick?: (row: DataRow) => void\n        onPrimaryAction?: (row: DataRow) => void\n        cardCta?: CardCtaRenderer\n        showPrimaryButton?: boolean\n      }\n  )\n\nexport type TableFilterChangeDetail = {\n  columnId: string\n  value: string | string[] | null\n  values: TableFilterValues\n}\n\nexport type ViewToggleSvgPath = {\n  d: string\n  strokeWidth?: string\n  strokeLinecap?: \"butt\" | \"round\" | \"square\" | \"inherit\"\n  strokeLinejoin?: \"round\" | \"inherit\" | \"miter\" | \"bevel\"\n  fill?: string\n}\n\nexport type ViewToggleSvg = {\n  viewBox?: string\n  width?: string\n  height?: string\n  paths: ViewToggleSvgPath[]\n}\n\nexport type ViewToggleOption = {\n  value: ViewMode\n  label: string\n  icon?: string\n  svg?: ViewToggleSvg\n}\n","import type { ColumnDef, DataRow, TableSortDirection, TableSortState } from \"./table\"\n\ntype SortValue = unknown\n\nconst SORT_LOCALE = \"de\"\n\nconst textCollator = new Intl.Collator(SORT_LOCALE, {\n  numeric: true,\n  sensitivity: \"base\",\n})\n\nconst isBlankValue = (value: SortValue) =>\n  value === null ||\n  value === undefined ||\n  value === \"\" ||\n  (typeof value === \"number\" && Number.isNaN(value))\n\nconst coerceText = (value: SortValue): string => {\n  if (typeof value === \"string\") return value\n\n  if (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\")\n    return String(value)\n\n  if (value instanceof Date) return value.toISOString()\n\n  return \"\"\n}\n\nconst coerceNumber = (value: SortValue): number | null => {\n  if (typeof value === \"number\" && Number.isFinite(value)) return value\n\n  if (typeof value === \"bigint\") return Number(value)\n\n  if (typeof value === \"boolean\") return value ? 1 : 0\n\n  if (typeof value === \"string\") {\n    const normalized = value.trim()\n\n    if (!normalized) return null\n\n    const parsed = Number(normalized)\n\n    return Number.isFinite(parsed) ? parsed : null\n  }\n\n  if (value instanceof Date) return value.getTime()\n\n  return null\n}\n\nconst coerceDate = (value: SortValue): number | null => {\n  if (value instanceof Date) return value.getTime()\n\n  if (typeof value === \"number\" && Number.isFinite(value)) return value\n\n  if (typeof value === \"string\") {\n    const normalized = value.trim()\n\n    if (!normalized) return null\n\n    const timestamp = Date.parse(normalized)\n\n    return Number.isFinite(timestamp) ? timestamp : null\n  }\n\n  return null\n}\n\nconst compareByType = (\n  left: SortValue,\n  right: SortValue,\n  type: ColumnDef[\"sortType\"] | undefined,\n): number => {\n  if (isBlankValue(left) && isBlankValue(right)) return 0\n\n  if (isBlankValue(left)) return 1\n\n  if (isBlankValue(right)) return -1\n\n  if (type === \"number\") {\n    const leftNum = coerceNumber(left)\n    const rightNum = coerceNumber(right)\n\n    if (leftNum === null && rightNum === null) return 0\n\n    if (leftNum === null) return 1\n\n    if (rightNum === null) return -1\n\n    return leftNum - rightNum\n  }\n\n  if (type === \"date\") {\n    const leftDate = coerceDate(left)\n    const rightDate = coerceDate(right)\n\n    if (leftDate === null && rightDate === null) return 0\n\n    if (leftDate === null) return 1\n\n    if (rightDate === null) return -1\n\n    return leftDate - rightDate\n  }\n\n  if (type === \"boolean\") {\n    const leftBool = Boolean(left)\n    const rightBool = Boolean(right)\n\n    if (leftBool === rightBool) return 0\n\n    return leftBool ? 1 : -1\n  }\n\n  return textCollator.compare(coerceText(left), coerceText(right))\n}\n\nexport const resolveColumnSortKey = (column: ColumnDef) => {\n  const explicit = typeof column.sortKey === \"string\" ? column.sortKey.trim() : \"\"\n\n  return explicit || column.id\n}\n\nexport const resolveColumnDefaultSortDir = (column: ColumnDef): TableSortDirection => {\n  if (column.defaultSortDir === \"asc\" || column.defaultSortDir === \"desc\")\n    return column.defaultSortDir\n\n  if (column.sortType === \"date\" || column.sortType === \"number\" || column.sortType === \"boolean\")\n    return \"desc\"\n\n  return \"asc\"\n}\n\nexport const getSortableTableColumns = (columns: ColumnDef[]) =>\n  columns.filter((column) => column.sortable === true)\n\nconst buildTableSortState = (column: ColumnDef): NonNullable<TableSortState> => ({\n  columnId: column.id,\n  key: resolveColumnSortKey(column),\n  dir: resolveColumnDefaultSortDir(column),\n})\n\nexport const findSortableColumn = (\n  columns: ColumnDef[],\n  sort: Pick<NonNullable<TableSortState>, \"columnId\" | \"key\"> | null | undefined,\n) => {\n  if (!sort) return null\n\n  return (\n    columns.find((column) => column.sortable && column.id === sort.columnId) ??\n    columns.find((column) => column.sortable && resolveColumnSortKey(column) === sort.key) ??\n    null\n  )\n}\n\nexport const sanitizeTableSortState = (\n  columns: ColumnDef[],\n  sort: TableSortState,\n): TableSortState => {\n  if (!sort) return null\n\n  const column = findSortableColumn(columns, sort)\n\n  if (!column) return null\n\n  const dir: TableSortDirection =\n    sort.dir === \"asc\" ? \"asc\" : sort.dir === \"desc\" ? \"desc\" : resolveColumnDefaultSortDir(column)\n\n  return {\n    columnId: column.id,\n    key: resolveColumnSortKey(column),\n    dir,\n  }\n}\n\nexport const isSameTableSortState = (left: TableSortState, right: TableSortState) =>\n  left?.columnId === right?.columnId && left?.key === right?.key && left?.dir === right?.dir\n\nexport const resolveDefaultTableSort = (\n  columns: ColumnDef[],\n  preferred: TableSortState = null,\n): TableSortState => {\n  const sanitizedPreferred = sanitizeTableSortState(columns, preferred)\n\n  if (sanitizedPreferred) return sanitizedPreferred\n\n  const sortableColumns = getSortableTableColumns(columns)\n\n  if (!sortableColumns.length) return null\n\n  const resolvedColumn =\n    sortableColumns.find(\n      (column) =>\n        column.isPrimary &&\n        (column.sortType === \"date\" ||\n          column.sortType === \"number\" ||\n          column.sortType === \"boolean\"),\n    ) ??\n    sortableColumns.find((column) => column.sortType === \"date\") ??\n    sortableColumns.find(\n      (column) => column.sortType === \"number\" || column.sortType === \"boolean\",\n    ) ??\n    sortableColumns.find((column) => column.isPrimary) ??\n    sortableColumns[0]\n\n  return resolvedColumn ? buildTableSortState(resolvedColumn) : null\n}\n\nexport const resolveNextTableSort = (\n  column: ColumnDef,\n  current: TableSortState,\n): TableSortState => {\n  if (!column.sortable) return current\n\n  const currentColumn = current && current.columnId === column.id ? current : null\n  const defaultDir = resolveColumnDefaultSortDir(column)\n  const inverseDir: TableSortDirection = defaultDir === \"asc\" ? \"desc\" : \"asc\"\n\n  if (!currentColumn) {\n    return buildTableSortState(column)\n  }\n\n  if (currentColumn.dir === defaultDir) {\n    return {\n      columnId: column.id,\n      key: resolveColumnSortKey(column),\n      dir: inverseDir,\n    }\n  }\n\n  return null\n}\n\nexport const getRowSortValue = (row: DataRow, column: ColumnDef) => {\n  if (typeof column.getSortValue === \"function\") return column.getSortValue(row)\n\n  return row[column.id]\n}\n\nexport const sortTableRows = <TRow extends DataRow>(\n  rows: TRow[],\n  columns: ColumnDef[],\n  sort: TableSortState,\n): TRow[] => {\n  const activeSort = sanitizeTableSortState(columns, sort)\n\n  if (!activeSort) return rows.slice()\n\n  const column = findSortableColumn(columns, activeSort)\n\n  if (!column) return rows.slice()\n\n  const multiplier = activeSort.dir === \"desc\" ? -1 : 1\n\n  return rows\n    .map((row, index) => ({\n      row,\n      index,\n      value: getRowSortValue(row, column),\n    }))\n    .sort((left, right) => {\n      const leftBlank = isBlankValue(left.value)\n      const rightBlank = isBlankValue(right.value)\n\n      if (leftBlank && rightBlank) return left.index - right.index\n\n      if (leftBlank) return 1\n\n      if (rightBlank) return -1\n\n      const comparison = compareByType(left.value, right.value, column.sortType)\n\n      if (comparison !== 0) return comparison * multiplier\n\n      const leftId = left.row.id\n      const rightId = right.row.id\n\n      if (leftId !== undefined && rightId !== undefined && leftId !== rightId) {\n        return textCollator.compare(String(leftId), String(rightId))\n      }\n\n      return left.index - right.index\n    })\n    .map((entry) => entry.row)\n}\n\nexport const getSortedTablePage = <TRow extends DataRow>({\n  rows,\n  columns,\n  sort,\n  limit,\n  offset,\n}: {\n  rows: TRow[]\n  columns: ColumnDef[]\n  sort: TableSortState\n  limit?: number\n  offset?: number\n}) => {\n  const sortedRows = sortTableRows(rows, columns, sort)\n  const start = Math.max(0, offset ?? 0)\n  const size = typeof limit === \"number\" && limit > 0 ? limit : sortedRows.length\n  const end = start + size\n\n  return {\n    rows: sortedRows.slice(start, end),\n    total: sortedRows.length,\n  }\n}\n","import type { ColumnDef, DataRow, TableRowIdResolver } from \"./table\"\n\nexport const CONTROL_WIDTH_CHEVRON = 86\nexport const CONTROL_WIDTH_ACTIONS_DEFAULT = 200\n\nexport function clamp(value: number, min: number, max: number) {\n  return Math.min(max, Math.max(min, value))\n}\n\nexport function getCellValue(row: DataRow, columnId: string) {\n  const value = (row as any)?.[columnId]\n\n  return value ?? \"\"\n}\n\nexport function getRowKey(row: DataRow, getRowId?: TableRowIdResolver): string {\n  const id = getRowId ? getRowId(row) : row.id\n\n  if ((typeof id !== \"string\" && typeof id !== \"number\") || String(id).trim() === \"\") {\n    throw new Error(\"Table rows require a stable id or getRowId.\")\n  }\n\n  if (typeof id === \"number\" && !Number.isFinite(id)) {\n    throw new Error(\"Table row ids must be finite.\")\n  }\n\n  return String(id)\n}\n\nexport function getColumnAlignClass(col: ColumnDef) {\n  return `align-${(col as any).align ?? \"left\"}`\n}\n\nexport function parsePxWidth(raw: unknown): number | null {\n  if (typeof raw === \"number\" && Number.isFinite(raw)) return Math.max(0, Math.round(raw))\n\n  if (typeof raw === \"string\") {\n    const s = raw.trim()\n\n    if (s.endsWith(\"px\")) {\n      const n = parseInt(s, 10)\n\n      if (!Number.isNaN(n)) return Math.max(0, n)\n    }\n  }\n\n  return null\n}\n\n/**\n * Stabile Schätzung (falls wir noch nichts gemessen haben).\n * Bewusst simpel & deterministisch.\n */\nexport function estimateColumnWidth(col: ColumnDef): number {\n  const label = String((col as any).label ?? \"\")\n  const estimate = label.length * 9 + 56\n\n  return clamp(estimate, 120, 420)\n}\n","const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","const GLOBAL_OBJ = globalThis;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n","const SDK_VERSION = \"10.68.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction getMainCarrier() {\n  getSentryCarrier(GLOBAL_OBJ);\n  return GLOBAL_OBJ;\n}\nfunction getSentryCarrier(carrier) {\n  const __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n  __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n  return __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n}\nfunction getGlobalSingleton(name, creator, obj = GLOBAL_OBJ) {\n  const __SENTRY__ = obj.__SENTRY__ = obj.__SENTRY__ || {};\n  const carrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n  return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n  \"debug\",\n  \"info\",\n  \"warn\",\n  \"error\",\n  \"log\",\n  \"assert\",\n  \"trace\"\n];\nconst PREFIX = \"Sentry Logger \";\nconst originalConsoleMethods = {};\nfunction consoleSandbox(callback) {\n  if (!(\"console\" in GLOBAL_OBJ)) {\n    return callback();\n  }\n  const console = GLOBAL_OBJ.console;\n  const wrappedFuncs = {};\n  const wrappedLevels = Object.keys(originalConsoleMethods);\n  wrappedLevels.forEach((level) => {\n    const originalConsoleMethod = originalConsoleMethods[level];\n    wrappedFuncs[level] = console[level];\n    console[level] = originalConsoleMethod;\n  });\n  try {\n    return callback();\n  } finally {\n    wrappedLevels.forEach((level) => {\n      console[level] = wrappedFuncs[level];\n    });\n  }\n}\nfunction enable() {\n  _getLoggerSettings().enabled = true;\n}\nfunction disable() {\n  _getLoggerSettings().enabled = false;\n}\nfunction isEnabled() {\n  return _getLoggerSettings().enabled;\n}\nfunction log(...args) {\n  _maybeLog(\"log\", ...args);\n}\nfunction warn(...args) {\n  _maybeLog(\"warn\", ...args);\n}\nfunction error(...args) {\n  _maybeLog(\"error\", ...args);\n}\nfunction _maybeLog(level, ...args) {\n  if (!DEBUG_BUILD) {\n    return;\n  }\n  if (isEnabled()) {\n    consoleSandbox(() => {\n      GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n    });\n  }\n}\nfunction _getLoggerSettings() {\n  if (!DEBUG_BUILD) {\n    return { enabled: false };\n  }\n  return getGlobalSingleton(\"loggerSettings\", () => ({ enabled: false }));\n}\nconst debug = {\n  /** Enable logging. */\n  enable,\n  /** Disable logging. */\n  disable,\n  /** Check if logging is enabled. */\n  isEnabled,\n  /** Log a message. */\n  log,\n  /** Log a warning. */\n  warn,\n  /** Log an error. */\n  error\n};\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = \"?\";\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\nfunction createStackParser(...parsers) {\n  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map((p) => p[1]);\n  return (stack, skipFirstLines = 0, framesToPop = 0) => {\n    const frames = [];\n    const lines = stack.split(\"\\n\");\n    for (let i = skipFirstLines; i < lines.length; i++) {\n      let line = lines[i];\n      if (line.length > 1024) {\n        line = line.slice(0, 1024);\n      }\n      const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, \"$1\") : line;\n      if (cleanedLine.includes(\"Error: \")) {\n        continue;\n      }\n      for (const parser of sortedParsers) {\n        const frame = parser(cleanedLine);\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n      if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n        break;\n      }\n    }\n    return stripSentryFramesAndReverse(frames.slice(framesToPop));\n  };\n}\nfunction stackParserFromStackParserOptions(stackParser) {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\nfunction stripSentryFramesAndReverse(stack) {\n  if (!stack.length) {\n    return [];\n  }\n  const localStack = Array.from(stack);\n  if (/sentryWrapped/.test(getLastStackFrame(localStack).function || \"\")) {\n    localStack.pop();\n  }\n  localStack.reverse();\n  if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n    localStack.pop();\n    if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n      localStack.pop();\n    }\n  }\n  return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame) => ({\n    ...frame,\n    filename: frame.filename || getLastStackFrame(localStack).filename,\n    function: frame.function || UNKNOWN_FUNCTION\n  }));\n}\nfunction getLastStackFrame(arr) {\n  return arr[arr.length - 1] || {};\n}\nconst defaultFunctionName = \"<anonymous>\";\nfunction getFunctionName(fn) {\n  try {\n    if (!fn || typeof fn !== \"function\") {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch {\n    return defaultFunctionName;\n  }\n}\nfunction getFramesFromEvent(event) {\n  const exception = event.exception;\n  if (exception) {\n    const frames = [];\n    try {\n      exception.values.forEach((value) => {\n        if (value.stacktrace.frames) {\n          frames.push(...value.stacktrace.frames);\n        }\n      });\n      return frames;\n    } catch {\n      return void 0;\n    }\n  }\n  return void 0;\n}\nfunction normalizeStackTracePath(path) {\n  let filename = path?.startsWith(\"file://\") ? path.slice(7) : path;\n  if (filename?.match(/\\/[A-Z]:/)) {\n    filename = filename.slice(1);\n  }\n  return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\nconst handlers = {};\nconst instrumented = {};\nfunction addHandler(type, handler) {\n  handlers[type] = handlers[type] || [];\n  handlers[type].push(handler);\n  return () => {\n    const typeHandlers = handlers[type];\n    if (typeHandlers) {\n      const index = typeHandlers.indexOf(handler);\n      if (index !== -1) {\n        typeHandlers.splice(index, 1);\n      }\n    }\n  };\n}\nfunction resetInstrumentationHandlers() {\n  Object.keys(handlers).forEach((key) => {\n    handlers[key] = void 0;\n  });\n}\nfunction maybeInstrument(type, instrumentFn) {\n  if (!instrumented[type]) {\n    instrumented[type] = true;\n    try {\n      instrumentFn();\n    } catch (e) {\n      DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n    }\n  }\n}\nfunction triggerHandlers(type, data) {\n  const typeHandlers = type && handlers[type];\n  if (!typeHandlers) {\n    return;\n  }\n  for (const handler of typeHandlers) {\n    try {\n      handler(data);\n    } catch (e) {\n      DEBUG_BUILD && debug.error(\n        `Error while triggering instrumentation handler.\nType: ${type}\nName: ${getFunctionName(handler)}\nError:`,\n        e\n      );\n    }\n  }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n","import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\nfunction addGlobalErrorInstrumentationHandler(handler) {\n  const type = \"error\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentError);\n}\nfunction instrumentError() {\n  _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n  GLOBAL_OBJ.onerror = function(msg, url, line, column, error) {\n    const handlerData = {\n      column,\n      error,\n      line,\n      msg,\n      url\n    };\n    triggerHandlers(\"error\", handlerData);\n    if (_oldOnErrorHandler) {\n      return _oldOnErrorHandler.apply(this, arguments);\n    }\n    return false;\n  };\n  GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n","import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\nfunction addGlobalUnhandledRejectionInstrumentationHandler(handler) {\n  const type = \"unhandledrejection\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentUnhandledRejection);\n}\nfunction instrumentUnhandledRejection() {\n  _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n  GLOBAL_OBJ.onunhandledrejection = function(e) {\n    const handlerData = e;\n    triggerHandlers(\"unhandledrejection\", handlerData);\n    if (_oldOnUnhandledRejectionHandler) {\n      return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n    }\n    return true;\n  };\n  GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n","const objectToString = Object.prototype.toString;\nfunction isError(wat) {\n  switch (objectToString.call(wat)) {\n    case \"[object Error]\":\n    case \"[object Exception]\":\n    case \"[object DOMException]\":\n    case \"[object WebAssembly.Exception]\":\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\nfunction isBuiltin(wat, className) {\n  return objectToString.call(wat) === `[object ${className}]`;\n}\nfunction isErrorEvent(wat) {\n  return isBuiltin(wat, \"ErrorEvent\");\n}\nfunction isDOMError(wat) {\n  return isBuiltin(wat, \"DOMError\");\n}\nfunction isDOMException(wat) {\n  return isBuiltin(wat, \"DOMException\");\n}\nfunction isString(wat) {\n  return isBuiltin(wat, \"String\");\n}\nfunction isParameterizedString(wat) {\n  return typeof wat === \"object\" && wat !== null && \"__sentry_template_string__\" in wat && \"__sentry_template_values__\" in wat;\n}\nfunction isPrimitive(wat) {\n  return wat === null || isParameterizedString(wat) || typeof wat !== \"object\" && typeof wat !== \"function\";\n}\nfunction isPlainObject(wat) {\n  return isBuiltin(wat, \"Object\");\n}\nfunction isObjectLike(wat) {\n  return typeof wat === \"object\" && wat !== null;\n}\nfunction isEvent(wat) {\n  return typeof Event !== \"undefined\" && isInstanceOf(wat, Event);\n}\nfunction isElement(wat) {\n  return typeof Element !== \"undefined\" && isInstanceOf(wat, Element);\n}\nfunction isRegExp(wat) {\n  return isBuiltin(wat, \"RegExp\");\n}\nfunction isThenable(wat) {\n  return Boolean(wat?.then && typeof wat.then === \"function\");\n}\nfunction isSyntheticEvent(wat) {\n  return isPlainObject(wat) && \"nativeEvent\" in wat && \"preventDefault\" in wat && \"stopPropagation\" in wat;\n}\nfunction isInstanceOf(wat, base) {\n  try {\n    return wat instanceof base;\n  } catch {\n    return false;\n  }\n}\nfunction isVueViewModel(wat) {\n  return !!(typeof wat === \"object\" && wat !== null && (wat.__isVue || wat._isVue || wat.__v_isVNode));\n}\nfunction isRequest(request) {\n  return typeof Request !== \"undefined\" && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isObjectLike, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isPrimitive, isObjectLike } from './is.js';\n\nfunction fill(source, name, replacementFactory) {\n  if (!(name in source)) {\n    return;\n  }\n  const original = source[name];\n  if (typeof original !== \"function\") {\n    return;\n  }\n  const wrapped = replacementFactory(original);\n  if (typeof wrapped === \"function\") {\n    markFunctionWrapped(wrapped, original);\n  }\n  try {\n    source[name] = wrapped;\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n  }\n}\nfunction addNonEnumerableProperty(obj, name, value) {\n  try {\n    Object.defineProperty(obj, name, {\n      // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n      value,\n      writable: true,\n      configurable: true\n    });\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${String(name)}\" to object`, obj);\n  }\n}\nfunction markFunctionWrapped(wrapped, original) {\n  try {\n    const proto = original.prototype || {};\n    wrapped.prototype = original.prototype = proto;\n    addNonEnumerableProperty(wrapped, \"__sentry_original__\", original);\n  } catch {\n  }\n}\nfunction wrapMethod(obj, field, wrapped, enumerable = true) {\n  const original = obj[field];\n  if (typeof original !== \"function\") {\n    throw new Error(`Cannot wrap method: ${field} is not a function`);\n  }\n  if (getOriginalFunction(original)) {\n    throw new Error(`Attempting to wrap method ${field} multiple times`);\n  }\n  markFunctionWrapped(wrapped, original);\n  Object.defineProperty(obj, field, {\n    writable: true,\n    configurable: true,\n    enumerable,\n    value: wrapped\n  });\n}\nfunction getOriginalFunction(func) {\n  return func.__sentry_original__;\n}\nfunction convertToPlainObject(value) {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value)\n    };\n  }\n  if (isEvent(value)) {\n    const { type, target, currentTarget, detail } = value;\n    return {\n      type,\n      target,\n      currentTarget,\n      ...detail ? { detail } : {},\n      ...getOwnProperties(value)\n    };\n  }\n  return value;\n}\nfunction getOwnProperties(obj) {\n  if (isObjectLike(obj)) {\n    return Object.fromEntries(Object.entries(obj));\n  }\n  return {};\n}\nfunction extractExceptionKeysForMessage(exception) {\n  const keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n  return !keys[0] ? \"[object has no keys]\" : keys.join(\", \");\n}\nfunction dropUndefinedKeys(inputValue) {\n  const memoizationMap = /* @__PURE__ */ new Map();\n  return _dropUndefinedKeys(inputValue, memoizationMap);\n}\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n  if (inputValue === null || typeof inputValue !== \"object\") {\n    return inputValue;\n  }\n  const memoVal = memoizationMap.get(inputValue);\n  if (memoVal !== void 0) {\n    return memoVal;\n  }\n  if (Array.isArray(inputValue)) {\n    const returnValue = [];\n    memoizationMap.set(inputValue, returnValue);\n    inputValue.forEach((value) => {\n      returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n    });\n    return returnValue;\n  }\n  if (isPojo(inputValue)) {\n    const returnValue = {};\n    memoizationMap.set(inputValue, returnValue);\n    const keys = Object.keys(inputValue);\n    keys.forEach((key) => {\n      const val = inputValue[key];\n      if (val !== void 0) {\n        returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n      }\n    });\n    return returnValue;\n  }\n  return inputValue;\n}\nfunction isPojo(input) {\n  const constructor = input.constructor;\n  return constructor === Object || constructor === void 0;\n}\nfunction objectify(wat) {\n  let objectified;\n  switch (true) {\n    // this will catch both undefined and null\n    case wat == void 0:\n      objectified = new String(wat);\n      break;\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case (typeof wat === \"symbol\" || typeof wat === \"bigint\"):\n      objectified = Object(wat);\n      break;\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n      objectified = new wat.constructor(wat);\n      break;\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, wrapMethod };\n//# sourceMappingURL=object.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nlet RESOLVED_RUNNER;\nfunction withRandomSafeContext(cb) {\n  if (RESOLVED_RUNNER !== void 0) {\n    return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n  }\n  const sym = /* @__PURE__ */ Symbol.for(\"__SENTRY_SAFE_RANDOM_ID_WRAPPER__\");\n  const globalWithSymbol = GLOBAL_OBJ;\n  if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === \"function\") {\n    RESOLVED_RUNNER = globalWithSymbol[sym];\n    return RESOLVED_RUNNER(cb);\n  }\n  RESOLVED_RUNNER = null;\n  return cb();\n}\nfunction safeMathRandom() {\n  return withRandomSafeContext(() => Math.random());\n}\nfunction safeDateNow() {\n  return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n","import { addNonEnumerableProperty } from './object.js';\n\nconst SENTRY_SKIP_NORMALIZATION = /* @__PURE__ */ Symbol.for(\"sentry.skipNormalization\");\nconst SENTRY_OVERRIDE_NORMALIZATION_DEPTH = /* @__PURE__ */ Symbol.for(\"sentry.overrideNormalizationDepth\");\nfunction setSkipNormalizationHint(obj) {\n  addNonEnumerableProperty(obj, SENTRY_SKIP_NORMALIZATION, true);\n}\nfunction setNormalizationDepthOverrideHint(obj, depth) {\n  addNonEnumerableProperty(obj, SENTRY_OVERRIDE_NORMALIZATION_DEPTH, depth);\n}\nfunction hasSkipNormalizationHint(value) {\n  return Boolean(value[SENTRY_SKIP_NORMALIZATION]);\n}\nfunction getNormalizationDepthOverrideHint(value) {\n  const v = value[SENTRY_OVERRIDE_NORMALIZATION_DEPTH];\n  return typeof v === \"number\" ? v : void 0;\n}\n\nexport { getNormalizationDepthOverrideHint, hasSkipNormalizationHint, setNormalizationDepthOverrideHint, setSkipNormalizationHint };\n//# sourceMappingURL=normalizationHints.js.map\n","import { hasSkipNormalizationHint, getNormalizationDepthOverrideHint } from './normalizationHints.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\nlet stringifier;\nfunction setNormalizeStringifier(newStringifier) {\n  stringifier = newStringifier;\n}\nfunction normalize(input, depth = 100, maxProperties = Infinity) {\n  try {\n    return visit(\"\", input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\nfunction normalizeToSize(object, depth = 3, maxSize = 100 * 1024) {\n  const normalized = normalize(object, depth);\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n  return normalized;\n}\nfunction visit(key, value, depth = Infinity, maxProperties = Infinity, memo = memoBuilder()) {\n  const [memoize, unmemoize] = memo;\n  if (value == null || // this matches null and undefined -> eqeq not eqeqeq\n  [\"boolean\", \"string\"].includes(typeof value) || typeof value === \"number\" && Number.isFinite(value)) {\n    return value;\n  }\n  const stringified = stringifyValue(key, value);\n  if (!stringified.startsWith(\"[object \")) {\n    return stringified;\n  }\n  if (hasSkipNormalizationHint(value)) {\n    return value;\n  }\n  const overrideDepth = getNormalizationDepthOverrideHint(value);\n  const remainingDepth = overrideDepth !== void 0 ? overrideDepth : depth;\n  if (remainingDepth === 0) {\n    return stringified.replace(\"object \", \"\");\n  }\n  if (memoize(value)) {\n    return \"[Circular ~]\";\n  }\n  const valueWithToJSON = value;\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === \"function\") {\n    try {\n      const jsonValue = valueWithToJSON.toJSON();\n      return visit(\"\", jsonValue, remainingDepth - 1, maxProperties, memo);\n    } catch {\n    }\n  }\n  const normalized = Array.isArray(value) ? [] : {};\n  let numAdded = 0;\n  const visitable = convertToPlainObject(value);\n  for (const visitKey in visitable) {\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = \"[MaxProperties ~]\";\n      break;\n    }\n    const visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n    numAdded++;\n  }\n  unmemoize(value);\n  return normalized;\n}\nfunction stringifyValue(key, value) {\n  try {\n    if (stringifier) {\n      const stringified = stringifier(value);\n      if (stringified) {\n        return stringified;\n      }\n    }\n    if (typeof global !== \"undefined\" && value === global) {\n      return \"[Global]\";\n    }\n    if (typeof value === \"number\" && !Number.isFinite(value)) {\n      return `[${value}]`;\n    }\n    if (typeof value === \"function\") {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n    if (typeof value === \"symbol\") {\n      return `[${String(value)}]`;\n    }\n    if (typeof value === \"bigint\") {\n      return `[BigInt: ${String(value)}]`;\n    }\n    const objName = getConstructorName(value);\n    return `[object ${objName}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\nfunction getConstructorName(value) {\n  const prototype = Object.getPrototypeOf(value);\n  return prototype?.constructor ? prototype.constructor.name : \"null prototype\";\n}\nfunction utf8Length(value) {\n  return ~-encodeURI(value).split(/%..|./).length;\n}\nfunction jsonSize(value) {\n  return utf8Length(JSON.stringify(value));\n}\nfunction normalizeUrlToBase(url, basePath) {\n  const escapedBase = basePath.replace(/\\\\/g, \"/\").replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n  let newUrl = url;\n  try {\n    newUrl = decodeURI(url);\n  } catch {\n  }\n  return newUrl.replace(/\\\\/g, \"/\").replace(/webpack:\\/?/g, \"\").replace(new RegExp(`(file://)?/*${escapedBase}/*`, \"ig\"), \"app:///\");\n}\nfunction memoBuilder() {\n  const inner = /* @__PURE__ */ new WeakSet();\n  function memoize(obj) {\n    if (inner.has(obj)) {\n      return true;\n    }\n    inner.add(obj);\n    return false;\n  }\n  function unmemoize(obj) {\n    inner.delete(obj);\n  }\n  return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase, setNormalizeStringifier, stringifyValue };\n//# sourceMappingURL=normalize.js.map\n","import { isString, isRegExp, isPrimitive } from './is.js';\nimport { stringifyValue } from './normalize.js';\n\nfunction stringify(value, fallback = \"[unserializable]\") {\n  if (typeof value === \"string\") {\n    return value;\n  }\n  try {\n    return JSON.stringify(value);\n  } catch {\n    return typeof fallback === \"function\" ? fallback(value) : fallback;\n  }\n}\nfunction truncate(str, max = 0) {\n  if (typeof str !== \"string\" || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\nfunction snipLine(line, colno) {\n  let newLine = line;\n  const lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n    colno = lineLength;\n  }\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += \" {snip}\";\n  }\n  return newLine;\n}\nfunction safeJoin(input, delimiter) {\n  if (!Array.isArray(input)) {\n    return \"\";\n  }\n  const output = [];\n  for (let i = 0; i < input.length; i++) {\n    const value = input[i];\n    if (isPrimitive(value)) {\n      output.push(String(value));\n    } else if (value instanceof Error) {\n      output.push(value.message ? `${value.name}: ${value.message}` : value.name);\n    } else {\n      output.push(stringifyValue(void 0, value));\n    }\n  }\n  return output.join(delimiter);\n}\nfunction isMatchingPattern(value, pattern, requireExactStringMatch = false) {\n  if (!isString(value)) {\n    return false;\n  }\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (isString(pattern)) {\n    return requireExactStringMatch ? value === pattern : value.includes(pattern);\n  }\n  if (typeof pattern === \"function\") {\n    return pattern(value);\n  }\n  return false;\n}\nfunction stringMatchesSomePattern(testString, patterns = [], requireExactStringMatch = false) {\n  for (const pattern of patterns) {\n    if (isMatchingPattern(testString, pattern, requireExactStringMatch)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, stringify, truncate };\n//# sourceMappingURL=string.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n  const gbl = GLOBAL_OBJ;\n  return gbl.crypto || gbl.msCrypto;\n}\nlet emptyUuid;\nfunction getRandomByte() {\n  return safeMathRandom() * 16;\n}\nfunction uuid4(crypto = getCrypto()) {\n  try {\n    if (crypto?.randomUUID) {\n      return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, \"\");\n    }\n  } catch {\n  }\n  if (!emptyUuid) {\n    emptyUuid = \"10000000100040008000\" + 1e11;\n  }\n  return emptyUuid.replace(\n    /[018]/g,\n    (c) => (\n      // eslint-disable-next-line no-bitwise\n      (c ^ (getRandomByte() & 15) >> c / 4).toString(16)\n    )\n  );\n}\nfunction getFirstException(event) {\n  return event.exception?.values?.[0];\n}\nfunction getEventDescription(event) {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n  const firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || \"<unknown>\";\n  }\n  return eventId || \"<unknown>\";\n}\nfunction addExceptionTypeValue(event, value, type) {\n  const exception = event.exception = event.exception || {};\n  const values = exception.values = exception.values || [];\n  const firstException = values[0] = values[0] || {};\n  if (!firstException.value) {\n    firstException.value = value || \"\";\n  }\n  if (!firstException.type) {\n    firstException.type = type || \"Error\";\n  }\n}\nfunction addExceptionMechanism(event, newMechanism) {\n  const firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n  const defaultMechanism = { type: \"generic\", handled: true };\n  const currentMechanism = firstException.mechanism;\n  firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n  if (newMechanism && \"data\" in newMechanism) {\n    const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n    firstException.mechanism.data = mergedData;\n  }\n}\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nfunction _parseInt(input) {\n  return parseInt(input || \"\", 10);\n}\nfunction parseSemver(input) {\n  const match = input.match(SEMVER_REGEXP) || [];\n  const major = _parseInt(match[1]);\n  const minor = _parseInt(match[2]);\n  const patch = _parseInt(match[3]);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? void 0 : major,\n    minor: isNaN(minor) ? void 0 : minor,\n    patch: isNaN(patch) ? void 0 : patch,\n    prerelease: match[4]\n  };\n}\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n  if (frame.lineno === void 0) {\n    return;\n  }\n  const maxLines = lines.length;\n  const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n  frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map((line) => snipLine(line, 0));\n  const lineIndex = Math.min(maxLines - 1, sourceLine);\n  frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n  frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map((line) => snipLine(line, 0));\n}\nfunction checkOrSetAlreadyCaught(exception) {\n  if (isAlreadyCaptured(exception)) {\n    return true;\n  }\n  try {\n    addNonEnumerableProperty(exception, \"__sentry_captured__\", true);\n  } catch {\n  }\n  return false;\n}\nfunction isAlreadyCaptured(exception) {\n  try {\n    return exception.__sentry_captured__;\n  } catch {\n  }\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1e3;\nfunction dateTimestampInSeconds() {\n  return safeDateNow() / ONE_SECOND_IN_MS;\n}\nfunction createUnixTimestampInSecondsFunc() {\n  const { performance } = GLOBAL_OBJ;\n  if (!performance?.now || !performance.timeOrigin) {\n    return dateTimestampInSeconds;\n  }\n  const timeOrigin = performance.timeOrigin;\n  return () => {\n    return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n  };\n}\nlet _cachedTimestampInSeconds;\nfunction timestampInSeconds() {\n  const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n  return func();\n}\nlet cachedTimeOrigin = null;\nfunction getBrowserTimeOrigin() {\n  const { performance } = GLOBAL_OBJ;\n  if (!performance?.now) {\n    return void 0;\n  }\n  const threshold = 3e5;\n  const performanceNow = withRandomSafeContext(() => performance.now());\n  const dateNow = safeDateNow();\n  const timeOrigin = performance.timeOrigin;\n  if (typeof timeOrigin === \"number\") {\n    const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n    if (timeOriginDelta < threshold) {\n      return timeOrigin;\n    }\n  }\n  const navigationStart = performance.timing?.navigationStart;\n  if (typeof navigationStart === \"number\") {\n    const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n    if (navigationStartDelta < threshold) {\n      return navigationStart;\n    }\n  }\n  return dateNow - performanceNow;\n}\nfunction browserPerformanceTimeOrigin() {\n  if (cachedTimeOrigin === null) {\n    cachedTimeOrigin = getBrowserTimeOrigin();\n  }\n  return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\nfunction makeSession(context) {\n  const startingTime = timestampInSeconds();\n  const session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: \"ok\",\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session)\n  };\n  if (context) {\n    updateSession(session, context);\n  }\n  return session;\n}\nfunction updateSession(session, context = {}) {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n  session.timestamp = context.timestamp || timestampInSeconds();\n  if (context.abnormal_mechanism) {\n    session.abnormal_mechanism = context.abnormal_mechanism;\n  }\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== void 0) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === \"number\") {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = void 0;\n  } else if (typeof context.duration === \"number\") {\n    session.duration = context.duration;\n  } else {\n    const duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === \"number\") {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\nfunction closeSession(session, status) {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === \"ok\") {\n    context = { status: \"exited\" };\n  }\n  updateSession(session, context);\n}\nfunction sessionToJSON(session) {\n  return {\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1e3).toISOString(),\n    timestamp: new Date(session.timestamp * 1e3).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === \"number\" || typeof session.did === \"string\" ? `${session.did}` : void 0,\n    duration: session.duration,\n    abnormal_mechanism: session.abnormal_mechanism,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent\n    }\n  };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","function merge(initialObj, mergeObj, levels = 2) {\n  if (!mergeObj || typeof mergeObj !== \"object\" || levels <= 0) {\n    return mergeObj;\n  }\n  if (initialObj && Object.keys(mergeObj).length === 0) {\n    return initialObj;\n  }\n  const output = { ...initialObj };\n  for (const key in mergeObj) {\n    if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n      output[key] = merge(output[key], mergeObj[key], levels - 1);\n    }\n  }\n  return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n","import { uuid4 } from './misc.js';\n\nfunction generateTraceId() {\n  return uuid4();\n}\nfunction generateSpanId() {\n  return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nfunction makeWeakRef(value) {\n  try {\n    const WeakRefImpl = GLOBAL_OBJ.WeakRef;\n    if (typeof WeakRefImpl === \"function\") {\n      return new WeakRefImpl(value);\n    }\n  } catch {\n  }\n  return value;\n}\nfunction derefWeakRef(ref) {\n  if (!ref) {\n    return void 0;\n  }\n  if (typeof ref === \"object\" && \"deref\" in ref && typeof ref.deref === \"function\") {\n    try {\n      return ref.deref();\n    } catch {\n      return void 0;\n    }\n  }\n  return ref;\n}\n\nexport { derefWeakRef, makeWeakRef };\n//# sourceMappingURL=weakRef.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { makeWeakRef, derefWeakRef } from './weakRef.js';\n\nconst SCOPE_SPAN_FIELD = \"_sentrySpan\";\nfunction _setSpanForScope(scope, span) {\n  if (span) {\n    addNonEnumerableProperty(scope, SCOPE_SPAN_FIELD, makeWeakRef(span));\n  } else {\n    delete scope[SCOPE_SPAN_FIELD];\n  }\n}\nfunction _getSpanForScope(scope) {\n  return derefWeakRef(scope[SCOPE_SPAN_FIELD]);\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_MAX_BREADCRUMBS = 100;\nclass Scope {\n  // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n  constructor() {\n    this._notifyingListeners = false;\n    this._scopeListeners = [];\n    this._eventProcessors = [];\n    this._breadcrumbs = [];\n    this._attachments = [];\n    this._user = {};\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._contexts = {};\n    this._sdkProcessingMetadata = {};\n    this._propagationContext = {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    };\n  }\n  /**\n   * Clone all data from this scope into a new scope.\n   */\n  clone() {\n    const newScope = new Scope();\n    newScope._breadcrumbs = [...this._breadcrumbs];\n    newScope._tags = { ...this._tags };\n    newScope._attributes = { ...this._attributes };\n    newScope._extra = { ...this._extra };\n    newScope._contexts = { ...this._contexts };\n    if (this._contexts.flags) {\n      newScope._contexts.flags = {\n        values: [...this._contexts.flags.values]\n      };\n    }\n    newScope._user = this._user;\n    newScope._level = this._level;\n    newScope._session = this._session;\n    newScope._transactionName = this._transactionName;\n    newScope._fingerprint = this._fingerprint;\n    newScope._eventProcessors = [...this._eventProcessors];\n    newScope._attachments = [...this._attachments];\n    newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n    newScope._propagationContext = { ...this._propagationContext };\n    newScope._client = this._client;\n    newScope._lastEventId = this._lastEventId;\n    newScope._conversationId = this._conversationId;\n    _setSpanForScope(newScope, _getSpanForScope(this));\n    return newScope;\n  }\n  /**\n   * Update the client assigned to this scope.\n   * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n   * as well as manually created scopes.\n   */\n  setClient(client) {\n    this._client = client;\n  }\n  /**\n   * Set the ID of the last captured error event.\n   * This is generally only captured on the isolation scope.\n   */\n  setLastEventId(lastEventId) {\n    this._lastEventId = lastEventId;\n  }\n  /**\n   * Get the client assigned to this scope.\n   */\n  getClient() {\n    return this._client;\n  }\n  /**\n   * Get the ID of the last captured error event.\n   * This is generally only available on the isolation scope.\n   */\n  lastEventId() {\n    return this._lastEventId;\n  }\n  /**\n   * @inheritDoc\n   */\n  addScopeListener(callback) {\n    this._scopeListeners.push(callback);\n  }\n  /**\n   * Add an event processor that will be called before an event is sent.\n   */\n  addEventProcessor(callback) {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n  /**\n   * Set the user for this scope.\n   * Set to `null` to unset the user.\n   */\n  setUser(user) {\n    this._user = user || {\n      email: void 0,\n      id: void 0,\n      ip_address: void 0,\n      username: void 0\n    };\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the user from this scope.\n   */\n  getUser() {\n    return this._user;\n  }\n  /**\n   * Set the conversation ID for this scope.\n   * Set to `null` to unset the conversation ID.\n   */\n  setConversationId(conversationId) {\n    this._conversationId = conversationId || void 0;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set an object that will be merged into existing tags on the scope,\n   * and will be sent as tags data with the event.\n   */\n  setTags(tags) {\n    this._tags = {\n      ...this._tags,\n      ...tags\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set a single tag that will be sent as tags data with the event.\n   */\n  setTag(key, value) {\n    return this.setTags({ [key]: value });\n  }\n  /**\n   * Sets attributes onto the scope.\n   *\n   * These attributes are applied to logs, metrics and streamed spans.\n   *\n   * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n   *\n   * @param newAttributes - The attributes to set on the scope, as key-value pairs.\n   *\n   * @example\n   * ```typescript\n   * scope.setAttributes({\n   *   is_admin: true,\n   *   payment_selection: 'credit_card',\n   *   render_duration: 150,\n   * });\n   * ```\n   */\n  setAttributes(newAttributes) {\n    this._attributes = {\n      ...this._attributes,\n      ...newAttributes\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets an attribute onto the scope.\n   *\n   * These attributes are applied to logs, metrics and streamed spans.\n   *\n   * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n   *\n   * @param key - The attribute key.\n   * @param value - The attribute value.\n   *\n   * @example\n   * ```typescript\n   * scope.setAttribute('is_admin', true);\n   * scope.setAttribute('render_duration', 150);\n   * ```\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  setAttribute(key, value) {\n    return this.setAttributes({ [key]: value });\n  }\n  /**\n   * Removes the attribute with the given key from the scope.\n   *\n   * @param key - The attribute key.\n   *\n   * @example\n   * ```typescript\n   * scope.removeAttribute('is_admin');\n   * ```\n   */\n  removeAttribute(key) {\n    if (key in this._attributes) {\n      delete this._attributes[key];\n      this._notifyScopeListeners();\n    }\n    return this;\n  }\n  /**\n   * Set an object that will be merged into existing extra on the scope,\n   * and will be sent as extra data with the event.\n   */\n  setExtras(extras) {\n    this._extra = {\n      ...this._extra,\n      ...extras\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set a single key:value extra entry that will be sent as extra data with the event.\n   */\n  setExtra(key, extra) {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the fingerprint on the scope to send with the events.\n   * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n   */\n  setFingerprint(fingerprint) {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the level on the scope for future events.\n   */\n  setLevel(level) {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the transaction name on the scope so that the name of e.g. taken server route or\n   * the page location is attached to future events.\n   *\n   * IMPORTANT: Calling this function does NOT change the name of the currently active\n   * root span. If you want to change the name of the active root span, use\n   * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n   *\n   * By default, the SDK updates the scope's transaction name automatically on sensible\n   * occasions, such as a page navigation or when handling a new request on the server.\n   */\n  setTransactionName(name) {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets context data with the given name.\n   * Data passed as context will be normalized. You can also pass `null` to unset the context.\n   * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n   */\n  setContext(key, context) {\n    if (context === null) {\n      delete this._contexts[key];\n    } else {\n      this._contexts[key] = context;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set the session for the scope.\n   */\n  setSession(session) {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the session from the scope.\n   */\n  getSession() {\n    return this._session;\n  }\n  /**\n   * Updates the scope with provided data. Can work in three variations:\n   * - plain object containing updatable attributes\n   * - Scope instance that'll extract the attributes from\n   * - callback function that'll receive the current scope as an argument and allow for modifications\n   */\n  update(captureContext) {\n    if (!captureContext) {\n      return this;\n    }\n    const scopeToMerge = typeof captureContext === \"function\" ? captureContext(this) : captureContext;\n    const scopeInstance = scopeToMerge instanceof Scope ? scopeToMerge.getScopeData() : isPlainObject(scopeToMerge) ? captureContext : void 0;\n    const {\n      tags,\n      attributes,\n      extra,\n      user,\n      contexts,\n      level,\n      fingerprint = [],\n      propagationContext,\n      conversationId\n    } = scopeInstance || {};\n    this._tags = { ...this._tags, ...tags };\n    this._attributes = { ...this._attributes, ...attributes };\n    this._extra = { ...this._extra, ...extra };\n    this._contexts = { ...this._contexts, ...contexts };\n    if (user && Object.keys(user).length) {\n      this._user = user;\n    }\n    if (level) {\n      this._level = level;\n    }\n    if (fingerprint.length) {\n      this._fingerprint = fingerprint;\n    }\n    if (propagationContext) {\n      this._propagationContext = propagationContext;\n    }\n    if (conversationId) {\n      this._conversationId = conversationId;\n    }\n    return this;\n  }\n  /**\n   * Clears the current scope and resets its properties.\n   * Note: The client will not be cleared.\n   */\n  clear() {\n    this._breadcrumbs = [];\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._user = {};\n    this._contexts = {};\n    this._level = void 0;\n    this._transactionName = void 0;\n    this._fingerprint = void 0;\n    this._session = void 0;\n    this._conversationId = void 0;\n    _setSpanForScope(this, void 0);\n    this._attachments = [];\n    this.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    });\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Adds a breadcrumb to the scope.\n   * By default, the last 100 breadcrumbs are kept.\n   */\n  addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n    const maxCrumbs = typeof maxBreadcrumbs === \"number\" ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n    const mergedBreadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n      // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n      message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message\n    };\n    this._breadcrumbs.push(mergedBreadcrumb);\n    if (this._breadcrumbs.length > maxCrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n      this._client?.recordDroppedEvent(\"buffer_overflow\", \"log_item\");\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the last breadcrumb of the scope.\n   */\n  getLastBreadcrumb() {\n    return this._breadcrumbs[this._breadcrumbs.length - 1];\n  }\n  /**\n   * Clear all breadcrumbs from the scope.\n   */\n  clearBreadcrumbs() {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Add an attachment to the scope.\n   */\n  addAttachment(attachment) {\n    this._attachments.push(attachment);\n    return this;\n  }\n  /**\n   * Clear all attachments from the scope.\n   */\n  clearAttachments() {\n    this._attachments = [];\n    return this;\n  }\n  /**\n   * Get the data of this scope, which should be applied to an event during processing.\n   */\n  getScopeData() {\n    return {\n      breadcrumbs: this._breadcrumbs,\n      attachments: this._attachments,\n      contexts: this._contexts,\n      tags: this._tags,\n      attributes: this._attributes,\n      extra: this._extra,\n      user: this._user,\n      level: this._level,\n      fingerprint: this._fingerprint || [],\n      eventProcessors: this._eventProcessors,\n      propagationContext: this._propagationContext,\n      sdkProcessingMetadata: this._sdkProcessingMetadata,\n      transactionName: this._transactionName,\n      span: _getSpanForScope(this),\n      conversationId: this._conversationId\n    };\n  }\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry.\n   */\n  setSDKProcessingMetadata(newData) {\n    this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n    return this;\n  }\n  /**\n   * Add propagation context to the scope, used for distributed tracing\n   */\n  setPropagationContext(context) {\n    this._propagationContext = context;\n    return this;\n  }\n  /**\n   * Get propagation context from the scope, used for distributed tracing\n   */\n  getPropagationContext() {\n    return this._propagationContext;\n  }\n  /**\n   * Capture an exception for this scope.\n   *\n   * @returns {string} The id of the captured Sentry event.\n   */\n  captureException(exception, hint) {\n    const eventId = hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture exception!\");\n      return eventId;\n    }\n    const syntheticException = new Error(\"Sentry syntheticException\");\n    this._client.captureException(\n      exception,\n      {\n        originalException: exception,\n        syntheticException,\n        ...hint,\n        event_id: eventId\n      },\n      this\n    );\n    return eventId;\n  }\n  /**\n   * Capture a message for this scope.\n   *\n   * @returns {string} The id of the captured message.\n   */\n  captureMessage(message, level, hint) {\n    const eventId = hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture message!\");\n      return eventId;\n    }\n    const syntheticException = hint?.syntheticException ?? new Error(message);\n    this._client.captureMessage(\n      message,\n      level,\n      {\n        originalException: message,\n        syntheticException,\n        ...hint,\n        event_id: eventId\n      },\n      this\n    );\n    return eventId;\n  }\n  /**\n   * Capture a Sentry event for this scope.\n   *\n   * @returns {string} The id of the captured event.\n   */\n  captureEvent(event, hint) {\n    const eventId = event.event_id || hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture event!\");\n      return eventId;\n    }\n    this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n    return eventId;\n  }\n  /**\n   * This will be called on every set call.\n   */\n  _notifyScopeListeners() {\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach((callback) => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\nfunction getDefaultCurrentScope() {\n  return getGlobalSingleton(\"defaultCurrentScope\", () => new Scope());\n}\nfunction getDefaultIsolationScope() {\n  return getGlobalSingleton(\"defaultIsolationScope\", () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","const isActualPromise = (p) => p instanceof Promise && !p[kChainedCopy];\nconst kChainedCopy = /* @__PURE__ */ Symbol(\"chained PromiseLike\");\nconst chainAndCopyPromiseLike = (original, onSuccess, onError) => {\n  const chained = original.then(\n    (value) => {\n      onSuccess(value);\n      return value;\n    },\n    (err) => {\n      onError(err);\n      throw err;\n    }\n  );\n  return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\nconst copyProps = (original, chained) => {\n  if (!chained) return original;\n  let mutated = false;\n  for (const key in original) {\n    if (key in chained) continue;\n    mutated = true;\n    const value = original[key];\n    if (typeof value === \"function\") {\n      Object.defineProperty(chained, key, {\n        value: (...args) => value.apply(original, args),\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      chained[key] = value;\n    }\n  }\n  if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n  return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n","import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\nclass AsyncContextStack {\n  constructor(scope, isolationScope) {\n    let assignedScope;\n    if (!scope) {\n      assignedScope = new Scope();\n    } else {\n      assignedScope = scope;\n    }\n    let assignedIsolationScope;\n    if (!isolationScope) {\n      assignedIsolationScope = new Scope();\n    } else {\n      assignedIsolationScope = isolationScope;\n    }\n    this._stack = [{ scope: assignedScope }];\n    this._isolationScope = assignedIsolationScope;\n  }\n  /**\n   * Fork a scope for the stack.\n   */\n  withScope(callback) {\n    const scope = this._pushScope();\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback(scope);\n    } catch (e) {\n      this._popScope();\n      throw e;\n    }\n    if (isThenable(maybePromiseResult)) {\n      return chainAndCopyPromiseLike(\n        maybePromiseResult,\n        () => this._popScope(),\n        () => this._popScope()\n      );\n    }\n    this._popScope();\n    return maybePromiseResult;\n  }\n  /**\n   * Get the client of the stack.\n   */\n  getClient() {\n    return this.getStackTop().client;\n  }\n  /**\n   * Returns the scope of the top stack.\n   */\n  getScope() {\n    return this.getStackTop().scope;\n  }\n  /**\n   * Get the isolation scope for the stack.\n   */\n  getIsolationScope() {\n    return this._isolationScope;\n  }\n  /**\n   * Returns the topmost scope layer in the order domain > local > process.\n   */\n  getStackTop() {\n    return this._stack[this._stack.length - 1];\n  }\n  /**\n   * Push a scope to the stack.\n   */\n  _pushScope() {\n    const scope = this.getScope().clone();\n    this._stack.push({\n      client: this.getClient(),\n      scope\n    });\n    return scope;\n  }\n  /**\n   * Pop a scope from the stack.\n   */\n  _popScope() {\n    if (this._stack.length <= 1) return false;\n    return !!this._stack.pop();\n  }\n}\nfunction getAsyncContextStack() {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  return sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope());\n}\nfunction withScope(callback) {\n  return getAsyncContextStack().withScope(callback);\n}\nfunction withSetScope(scope, callback) {\n  const stack = getAsyncContextStack();\n  return stack.withScope(() => {\n    stack.getStackTop().scope = scope;\n    return callback(scope);\n  });\n}\nfunction withIsolationScope(callback) {\n  return getAsyncContextStack().withScope(() => {\n    return callback(getAsyncContextStack().getIsolationScope());\n  });\n}\nfunction getStackAsyncContextStrategy() {\n  return {\n    withIsolationScope,\n    withScope,\n    withSetScope,\n    withSetIsolationScope: (_isolationScope, callback) => {\n      return withIsolationScope(callback);\n    },\n    getCurrentScope: () => getAsyncContextStack().getScope(),\n    getIsolationScope: () => getAsyncContextStack().getIsolationScope()\n  };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { getSentryCarrier, getMainCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\nfunction setAsyncContextStrategy(strategy) {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  sentry.acs = strategy;\n}\nfunction getAsyncContextStrategy(carrier) {\n  const sentry = getSentryCarrier(carrier);\n  if (sentry.acs) {\n    return sentry.acs;\n  }\n  return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { isPrimitive } from './utils/is.js';\n\nfunction isAttributeObject(maybeObj) {\n  return typeof maybeObj === \"object\" && maybeObj != null && !Array.isArray(maybeObj) && Object.keys(maybeObj).includes(\"value\");\n}\nfunction attributeValueToTypedAttributeValue(rawValue, useFallback) {\n  const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: void 0 };\n  const attributeValue = getTypedAttributeValue(value);\n  const checkedUnit = unit && typeof unit === \"string\" ? { unit } : {};\n  if (attributeValue) {\n    return { ...attributeValue, ...checkedUnit };\n  }\n  if (!useFallback || useFallback === \"skip-undefined\" && value === void 0) {\n    return;\n  }\n  let stringValue = \"\";\n  try {\n    stringValue = JSON.stringify(value) ?? \"\";\n  } catch {\n  }\n  return {\n    value: stringValue,\n    type: \"string\",\n    ...checkedUnit\n  };\n}\nfunction serializeAttributes(attributes, fallback = false) {\n  const serializedAttributes = {};\n  for (const [key, value] of Object.entries(attributes ?? {})) {\n    const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n    if (typedValue) {\n      serializedAttributes[key] = typedValue;\n    }\n  }\n  return serializedAttributes;\n}\nfunction estimateTypedAttributesSizeInBytes(attributes) {\n  if (!attributes) {\n    return 0;\n  }\n  let weight = 0;\n  for (const [key, attr] of Object.entries(attributes)) {\n    weight += key.length * 2;\n    weight += attr.type.length * 2;\n    weight += (attr.unit?.length ?? 0) * 2;\n    const val = attr.value;\n    if (Array.isArray(val)) {\n      weight += estimatePrimitiveSizeInBytes(val[0]) * val.length;\n    } else if (isPrimitive(val)) {\n      weight += estimatePrimitiveSizeInBytes(val);\n    } else {\n      weight += 100;\n    }\n  }\n  return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n  if (typeof value === \"string\") {\n    return value.length * 2;\n  } else if (typeof value === \"boolean\") {\n    return 4;\n  } else if (typeof value === \"number\") {\n    return 8;\n  }\n  return 0;\n}\nfunction getTypedAttributeValue(value) {\n  if (Array.isArray(value)) {\n    return { value, type: \"array\" };\n  }\n  const primitiveType = typeof value === \"string\" ? \"string\" : typeof value === \"boolean\" ? \"boolean\" : typeof value === \"number\" && !Number.isNaN(value) ? Number.isInteger(value) ? \"integer\" : \"double\" : null;\n  if (primitiveType) {\n    return { value, type: primitiveType };\n  }\n}\n\nexport { attributeValueToTypedAttributeValue, estimateTypedAttributesSizeInBytes, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n","import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\nlet _externalPropagationContextProvider;\nfunction registerExternalPropagationContext(fn) {\n  _externalPropagationContextProvider = fn;\n}\nfunction getExternalPropagationContext() {\n  return _externalPropagationContextProvider?.();\n}\nfunction hasExternalPropagationContext() {\n  return _externalPropagationContextProvider !== void 0;\n}\nfunction getCurrentScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getCurrentScope();\n}\nfunction getIsolationScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getIsolationScope();\n}\nfunction getGlobalScope() {\n  return getGlobalSingleton(\"globalScope\", () => new Scope());\n}\nfunction withScope(...rest) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (rest.length === 2) {\n    const [scope, callback] = rest;\n    if (!scope) {\n      return acs.withScope(callback);\n    }\n    return acs.withSetScope(scope, callback);\n  }\n  return acs.withScope(rest[0]);\n}\nfunction withIsolationScope(...rest) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (rest.length === 2) {\n    const [isolationScope, callback] = rest;\n    if (!isolationScope) {\n      return acs.withIsolationScope(callback);\n    }\n    return acs.withSetIsolationScope(isolationScope, callback);\n  }\n  return acs.withIsolationScope(rest[0]);\n}\nfunction getClient() {\n  return getCurrentScope().getClient();\n}\nfunction getTraceContextFromScope(scope) {\n  const externalContext = getExternalPropagationContext();\n  if (externalContext) {\n    return { trace_id: externalContext.traceId, span_id: externalContext.spanId };\n  }\n  const propagationContext = scope.getPropagationContext();\n  const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n  const traceContext = {\n    trace_id: traceId,\n    span_id: propagationSpanId || generateSpanId()\n  };\n  if (parentSpanId) {\n    traceContext.parent_span_id = parentSpanId;\n  }\n  return traceContext;\n}\n\nexport { getClient, getCurrentScope, getExternalPropagationContext, getGlobalScope, getIsolationScope, getTraceContextFromScope, hasExternalPropagationContext, registerExternalPropagationContext, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = \"sentry.source\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = \"sentry.previous_trace_sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = \"sentry.op\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = \"sentry.origin\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE = \"sentry.status.message\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = \"sentry.idle_span_finish_reason\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = \"sentry.measurement_unit\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = \"sentry.measurement_value\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_RELEASE = \"sentry.release\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT = \"sentry.environment\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME = \"sentry.segment.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID = \"sentry.segment.id\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME = \"sentry.sdk.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION = \"sentry.sdk.version\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS = \"sentry.sdk.integrations\";\nconst SEMANTIC_ATTRIBUTE_USER_ID = \"user.id\";\nconst SEMANTIC_ATTRIBUTE_USER_EMAIL = \"user.email\";\nconst SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS = \"user.ip_address\";\nconst SEMANTIC_ATTRIBUTE_USER_USERNAME = \"user.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = \"sentry.custom_span_name\";\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = \"sentry.profile_id\";\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = \"sentry.exclusive_time\";\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = \"cache.hit\";\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = \"cache.key\";\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = \"cache.item_size\";\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = \"http.request.method\";\nconst SEMANTIC_ATTRIBUTE_URL_FULL = \"url.full\";\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = \"sentry.link.type\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\nfunction getSpanStatusFromHttpCode(httpStatus) {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return { code: SPAN_STATUS_OK };\n  }\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return { code: SPAN_STATUS_ERROR, message: \"unauthenticated\" };\n      case 403:\n        return { code: SPAN_STATUS_ERROR, message: \"permission_denied\" };\n      case 404:\n        return { code: SPAN_STATUS_ERROR, message: \"not_found\" };\n      case 409:\n        return { code: SPAN_STATUS_ERROR, message: \"already_exists\" };\n      case 413:\n        return { code: SPAN_STATUS_ERROR, message: \"failed_precondition\" };\n      case 429:\n        return { code: SPAN_STATUS_ERROR, message: \"resource_exhausted\" };\n      case 499:\n        return { code: SPAN_STATUS_ERROR, message: \"cancelled\" };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: \"invalid_argument\" };\n    }\n  }\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return { code: SPAN_STATUS_ERROR, message: \"unimplemented\" };\n      case 503:\n        return { code: SPAN_STATUS_ERROR, message: \"unavailable\" };\n      case 504:\n        return { code: SPAN_STATUS_ERROR, message: \"deadline_exceeded\" };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n    }\n  }\n  return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n}\nfunction setHttpStatus(span, httpStatus) {\n  span.setAttribute(\"http.response.status_code\", httpStatus);\n  const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n  if (spanStatus.message !== \"unknown_error\") {\n    span.setStatus(spanStatus);\n  }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { addNonEnumerableProperty } from '../utils/object.js';\nimport { derefWeakRef, makeWeakRef } from '../utils/weakRef.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = \"_sentryScope\";\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = \"_sentryIsolationScope\";\nconst OTEL_SOURCE_INFERENCE_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.otelSourceInference\");\nconst OTEL_SOURCE_EXPLICITLY_SET_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.otelSourceExplicitlySet\");\nconst TRACER_PROVIDER_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.tracerProviderSpan\");\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n  if (span) {\n    addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, makeWeakRef(isolationScope));\n    addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n  }\n}\nfunction getCapturedScopesOnSpan(span) {\n  const spanWithScopes = span;\n  return {\n    scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n    isolationScope: derefWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD])\n  };\n}\nfunction markSpanForOtelSourceInference(span) {\n  addNonEnumerableProperty(span, OTEL_SOURCE_INFERENCE_SPAN_FIELD, true);\n}\nfunction spanShouldInferOtelSource(span) {\n  return span[OTEL_SOURCE_INFERENCE_SPAN_FIELD] === true;\n}\nfunction markSpanSourceAsExplicit(span) {\n  addNonEnumerableProperty(span, OTEL_SOURCE_EXPLICITLY_SET_SPAN_FIELD, true);\n}\nfunction spanSourceWasExplicitlySet(span) {\n  return span[OTEL_SOURCE_EXPLICITLY_SET_SPAN_FIELD] === true;\n}\nfunction markSpanAsTracerProviderSpan(span) {\n  addNonEnumerableProperty(span, TRACER_PROVIDER_SPAN_FIELD, true);\n}\nfunction spanIsTracerProviderSpan(span) {\n  return span[TRACER_PROVIDER_SPAN_FIELD] === true;\n}\n\nexport { getCapturedScopesOnSpan, markSpanAsTracerProviderSpan, markSpanForOtelSourceInference, markSpanSourceAsExplicit, setCapturedScopesOnSpan, spanIsTracerProviderSpan, spanShouldInferOtelSource, spanSourceWasExplicitlySet };\n//# sourceMappingURL=utils.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = \"sentry-\";\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\nfunction baggageHeaderToDynamicSamplingContext(baggageHeader) {\n  const baggageObject = parseBaggageHeader(baggageHeader);\n  if (!baggageObject) {\n    return void 0;\n  }\n  const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n      acc[nonPrefixedKey] = value;\n    }\n    return acc;\n  }, {});\n  if (Object.keys(dynamicSamplingContext).length > 0) {\n    return dynamicSamplingContext;\n  } else {\n    return void 0;\n  }\n}\nfunction dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext) {\n  if (!dynamicSamplingContext) {\n    return void 0;\n  }\n  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n    (acc, [dscKey, dscValue]) => {\n      if (dscValue) {\n        acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n      }\n      return acc;\n    },\n    {}\n  );\n  return objectToBaggageHeader(sentryPrefixedDSC);\n}\nfunction parseBaggageHeader(baggageHeader) {\n  if (!baggageHeader || !isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n    return void 0;\n  }\n  if (Array.isArray(baggageHeader)) {\n    return baggageHeader.reduce((acc, curr) => {\n      const currBaggageObject = baggageHeaderToObject(curr);\n      Object.entries(currBaggageObject).forEach(([key, value]) => {\n        acc[key] = value;\n      });\n      return acc;\n    }, {});\n  }\n  return baggageHeaderToObject(baggageHeader);\n}\nfunction baggageHeaderToObject(baggageHeader) {\n  return baggageHeader.split(\",\").map((baggageEntry) => {\n    const eqIdx = baggageEntry.indexOf(\"=\");\n    if (eqIdx === -1) {\n      return [];\n    }\n    const key = baggageEntry.slice(0, eqIdx);\n    const value = baggageEntry.slice(eqIdx + 1);\n    return [key, value].map((keyOrValue) => {\n      try {\n        return decodeURIComponent(keyOrValue.trim());\n      } catch {\n        return;\n      }\n    });\n  }).reduce((acc, [key, value]) => {\n    if (key && value) {\n      acc[key] = value;\n    }\n    return acc;\n  }, {});\n}\nfunction objectToBaggageHeader(object) {\n  if (Object.keys(object).length === 0) {\n    return void 0;\n  }\n  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n      DEBUG_BUILD && debug.warn(\n        `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`\n      );\n      return baggageHeader;\n    } else {\n      return newBaggageHeader;\n    }\n  }, \"\");\n}\nfunction mergeBaggageHeaders(existing, incoming) {\n  if (!existing) {\n    return incoming;\n  }\n  const existingEntries = parseBaggageHeader(existing);\n  const incomingEntries = parseBaggageHeader(incoming);\n  if (!incomingEntries) {\n    return existing;\n  }\n  const merged = {};\n  let hasNewSentryEntries = false;\n  const newSentryEntries = {};\n  const newNonSentryEntries = {};\n  for (const [key, value] of Object.entries(incomingEntries)) {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      newSentryEntries[key] = value;\n      hasNewSentryEntries = true;\n    } else {\n      newNonSentryEntries[key] = value;\n    }\n  }\n  if (existingEntries) {\n    for (const [key, value] of Object.entries(existingEntries)) {\n      if (!hasNewSentryEntries || !key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n        merged[key] = value;\n      }\n    }\n  }\n  if (hasNewSentryEntries) {\n    Object.assign(merged, newSentryEntries);\n  }\n  for (const [key, value] of Object.entries(newNonSentryEntries)) {\n    merged[key] ?? (merged[key] = value);\n  }\n  return objectToBaggageHeader(merged);\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, mergeBaggageHeaders, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\nfunction isValidProtocol(protocol) {\n  return protocol === \"http\" || protocol === \"https\";\n}\nfunction dsnToString(dsn, withPassword = false) {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : \"\"}@${host}${port ? `:${port}` : \"\"}/${path ? `${path}/` : path}${projectId}`;\n}\nfunction dsnFromString(str) {\n  const match = DSN_REGEX.exec(str);\n  if (!match) {\n    consoleSandbox(() => {\n      console.error(`Invalid Sentry Dsn: ${str}`);\n    });\n    return void 0;\n  }\n  const [protocol, publicKey, pass = \"\", host = \"\", port = \"\", lastPath = \"\"] = match.slice(1);\n  let path = \"\";\n  let projectId = lastPath;\n  const split = projectId.split(\"/\");\n  if (split.length > 1) {\n    path = split.slice(0, -1).join(\"/\");\n    projectId = split.pop();\n  }\n  if (projectId) {\n    const projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol, publicKey });\n}\nfunction dsnFromComponents(components) {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || \"\",\n    pass: components.pass || \"\",\n    host: components.host,\n    port: components.port || \"\",\n    path: components.path || \"\",\n    projectId: components.projectId\n  };\n}\nfunction validateDsn(dsn) {\n  if (!DEBUG_BUILD) {\n    return true;\n  }\n  const { port, projectId, protocol } = dsn;\n  const requiredComponents = [\"protocol\", \"publicKey\", \"host\", \"projectId\"];\n  const hasMissingRequiredComponent = requiredComponents.find((component) => {\n    if (!dsn[component]) {\n      debug.error(`Invalid Sentry Dsn: ${component} missing`);\n      return true;\n    }\n    return false;\n  });\n  if (hasMissingRequiredComponent) {\n    return false;\n  }\n  if (!projectId.match(/^\\d+$/)) {\n    debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n    return false;\n  }\n  if (!isValidProtocol(protocol)) {\n    debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n    return false;\n  }\n  if (port && isNaN(parseInt(port, 10))) {\n    debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n    return false;\n  }\n  return true;\n}\nfunction extractOrgIdFromDsnHost(host) {\n  const match = host.match(ORG_ID_REGEX);\n  return match?.[1];\n}\nfunction extractOrgIdFromClient(client) {\n  const options = client.getOptions();\n  const { host } = client.getDsn() || {};\n  let org_id;\n  if (options.orgId) {\n    org_id = String(options.orgId);\n  } else if (host) {\n    org_id = extractOrgIdFromDsnHost(host);\n  }\n  return org_id;\n}\nfunction makeDsn(from) {\n  const components = typeof from === \"string\" ? dsnFromString(from) : dsnFromComponents(from);\n  if (!components || !validateDsn(components)) {\n    return void 0;\n  }\n  return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","function parseSampleRate(sampleRate) {\n  if (typeof sampleRate === \"boolean\") {\n    return Number(sampleRate);\n  }\n  const rate = typeof sampleRate === \"string\" ? parseFloat(sampleRate) : sampleRate;\n  if (typeof rate !== \"number\" || isNaN(rate) || rate < 0 || rate > 1) {\n    return void 0;\n  }\n  return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\nconst TRACEPARENT_REGEXP = new RegExp(\n  \"^[ \\\\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\\\t]*$\"\n  // whitespace\n);\nfunction extractTraceparentData(traceparent) {\n  if (!traceparent) {\n    return void 0;\n  }\n  const matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (!matches) {\n    return void 0;\n  }\n  let parentSampled;\n  if (matches[3] === \"1\") {\n    parentSampled = true;\n  } else if (matches[3] === \"0\") {\n    parentSampled = false;\n  }\n  return {\n    traceId: matches[1],\n    parentSampled,\n    parentSpanId: matches[2]\n  };\n}\nfunction propagationContextFromHeaders(sentryTrace, baggage) {\n  const traceparentData = extractTraceparentData(sentryTrace);\n  const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n  if (!traceparentData?.traceId) {\n    return {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    };\n  }\n  const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n  if (dynamicSamplingContext) {\n    dynamicSamplingContext.sample_rand = sampleRand.toString();\n  }\n  const { traceId, parentSpanId, parentSampled } = traceparentData;\n  return {\n    traceId,\n    parentSpanId,\n    sampled: parentSampled,\n    dsc: dynamicSamplingContext || {},\n    // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n    sampleRand\n  };\n}\nfunction generateSentryTraceHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n  let sampledString = \"\";\n  if (sampled !== void 0) {\n    sampledString = sampled ? \"-1\" : \"-0\";\n  }\n  return `${traceId}-${spanId}${sampledString}`;\n}\nfunction generateTraceparentHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n  return `00-${traceId}-${spanId}-${sampled ? \"01\" : \"00\"}`;\n}\nfunction getSampleRandFromTraceparentAndDsc(traceparentData, dsc) {\n  const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n  if (parsedSampleRand !== void 0) {\n    return parsedSampleRand;\n  }\n  const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n  if (parsedSampleRate && traceparentData?.parentSampled !== void 0) {\n    return traceparentData.parentSampled ? (\n      // Returns a sample rand with positive sampling decision [0, sampleRate)\n      safeMathRandom() * parsedSampleRate\n    ) : (\n      // Returns a sample rand with negative sampling decision [sampleRate, 1)\n      parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate)\n    );\n  } else {\n    return safeMathRandom();\n  }\n}\nfunction shouldContinueTrace(client, baggageOrgId) {\n  const clientOrgId = extractOrgIdFromClient(client);\n  if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n    debug.log(\n      `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`\n    );\n    return false;\n  }\n  const strictTraceContinuation = client.getOptions().strictTraceContinuation || false;\n  if (strictTraceContinuation) {\n    if (baggageOrgId && !clientOrgId || !baggageOrgId && clientOrgId) {\n      debug.log(\n        `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`\n      );\n      return false;\n    }\n  }\n  return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { serializeAttributes } from '../attributes.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { consoleSandbox } from './debug-logger.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\nconst TRACE_FLAG_NONE = 0;\nconst TRACE_FLAG_SAMPLED = 1;\nlet hasShownSpanDropWarning = false;\nfunction spanToTransactionTraceContext(span) {\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n    data,\n    op,\n    status,\n    origin,\n    links\n  };\n}\nfunction spanToTraceContext(span) {\n  const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n  const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n  const scope = getCapturedScopesOnSpan(span).scope;\n  const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n  return {\n    parent_span_id,\n    span_id,\n    trace_id\n  };\n}\nfunction spanToTraceHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateSentryTraceHeader(traceId, spanId, sampled);\n}\nfunction spanToTraceparentHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateTraceparentHeader(traceId, spanId, sampled);\n}\nfunction convertSpanLinksForEnvelope(links) {\n  if (links && links.length > 0) {\n    return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes,\n      ...restContext\n    }));\n  } else {\n    return void 0;\n  }\n}\nfunction getStreamedSpanLinks(links) {\n  if (links?.length) {\n    return links.map(({ context: { spanId, traceId, traceFlags }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes\n    }));\n  } else {\n    return void 0;\n  }\n}\nfunction spanTimeInputToSeconds(input) {\n  if (typeof input === \"number\") {\n    return ensureTimestampInSeconds(input);\n  }\n  if (Array.isArray(input)) {\n    return input[0] + input[1] / 1e9;\n  }\n  if (input instanceof Date) {\n    return ensureTimestampInSeconds(input.getTime());\n  }\n  return timestampInSeconds();\n}\nfunction ensureTimestampInSeconds(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1e3 : timestamp;\n}\nfunction spanToJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getSpanJSON();\n  }\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n    return {\n      span_id,\n      trace_id,\n      data: attributes,\n      description: name,\n      parent_span_id: getOtelParentSpanId(span),\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      timestamp: spanTimeInputToSeconds(endTime) || void 0,\n      status: getStatusMessage(status),\n      op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n      links: convertSpanLinksForEnvelope(links)\n    };\n  }\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    data: {}\n  };\n}\nfunction spanToStreamedSpanJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getStreamedSpanJSON();\n  }\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n    return {\n      name,\n      span_id,\n      trace_id,\n      parent_span_id: getOtelParentSpanId(span),\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      end_timestamp: spanTimeInputToSeconds(endTime),\n      is_segment: span === INTERNAL_getSegmentSpan(span),\n      status: getSimpleStatus(status),\n      attributes: addStatusMessageAttribute(attributes, status),\n      links: getStreamedSpanLinks(links)\n    };\n  }\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    name: \"\",\n    end_timestamp: 0,\n    status: \"ok\",\n    is_segment: span === INTERNAL_getSegmentSpan(span)\n  };\n}\nfunction getOtelParentSpanId(span) {\n  return \"parentSpanId\" in span ? span.parentSpanId : \"parentSpanContext\" in span ? span.parentSpanContext?.spanId : void 0;\n}\nfunction streamedSpanJsonToSerializedSpan(spanJson) {\n  return {\n    ...spanJson,\n    attributes: serializeAttributes(spanJson.attributes),\n    links: spanJson.links?.map((link) => ({\n      ...link,\n      attributes: serializeAttributes(link.attributes)\n    }))\n  };\n}\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n  const castSpan = span;\n  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\nfunction spanIsSentrySpan(span) {\n  return typeof span.getSpanJSON === \"function\";\n}\nfunction spanIsSampled(span) {\n  const { traceFlags } = span.spanContext();\n  return traceFlags === TRACE_FLAG_SAMPLED;\n}\nfunction getStatusMessage(status) {\n  if (!status || status.code === SPAN_STATUS_UNSET) {\n    return void 0;\n  }\n  if (status.code === SPAN_STATUS_OK) {\n    return \"ok\";\n  }\n  return status.message || \"internal_error\";\n}\nfunction getSimpleStatus(status) {\n  return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET || status.message === \"cancelled\" ? \"ok\" : \"error\";\n}\nfunction addStatusMessageAttribute(attributes, status) {\n  const statusMessage = getSimpleStatus(status) === \"error\" ? status?.message : void 0;\n  return {\n    ...statusMessage && { [SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE]: statusMessage },\n    ...attributes\n  };\n}\nconst CHILD_SPANS_FIELD = \"_sentryChildSpans\";\nconst ROOT_SPAN_FIELD = \"_sentryRootSpan\";\nfunction addChildSpanToSpan(span, childSpan) {\n  const rootSpan = span[ROOT_SPAN_FIELD] || span;\n  addNonEnumerableProperty(childSpan, ROOT_SPAN_FIELD, rootSpan);\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].add(childSpan);\n  } else {\n    addNonEnumerableProperty(span, CHILD_SPANS_FIELD, /* @__PURE__ */ new Set([childSpan]));\n  }\n}\nfunction removeChildSpanFromSpan(span, childSpan) {\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].delete(childSpan);\n  }\n}\nfunction getSpanDescendants(span) {\n  const resultSet = /* @__PURE__ */ new Set();\n  function addSpanChildren(span2) {\n    if (resultSet.has(span2)) {\n      return;\n    } else if (spanIsSampled(span2)) {\n      resultSet.add(span2);\n      const childSpans = span2[CHILD_SPANS_FIELD] ? Array.from(span2[CHILD_SPANS_FIELD]) : [];\n      for (const childSpan of childSpans) {\n        addSpanChildren(childSpan);\n      }\n    }\n  }\n  addSpanChildren(span);\n  return Array.from(resultSet);\n}\nconst getRootSpan = INTERNAL_getSegmentSpan;\nfunction INTERNAL_getSegmentSpan(span) {\n  return span[ROOT_SPAN_FIELD] || span;\n}\nfunction getActiveSpan() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getActiveSpan) {\n    return acs.getActiveSpan();\n  }\n  return _getSpanForScope(getCurrentScope());\n}\nfunction showSpanDropWarning() {\n  if (!hasShownSpanDropWarning) {\n    consoleSandbox(() => {\n      console.warn(\n        \"[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.\"\n      );\n    });\n    hasShownSpanDropWarning = true;\n  }\n}\nfunction updateSpanName(span, name) {\n  span.updateName(name);\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n    [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name\n  });\n}\n\nexport { INTERNAL_getSegmentSpan, TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, addStatusMessageAttribute, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSimpleStatus, getSpanDescendants, getStatusMessage, getStreamedSpanLinks, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanIsSentrySpan, spanTimeInputToSeconds, spanToJSON, spanToStreamedSpanJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, streamedSpanJsonToSerializedSpan, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { addGlobalErrorInstrumentationHandler } from '../instrument/globalError.js';\nimport { addGlobalUnhandledRejectionInstrumentationHandler } from '../instrument/globalUnhandledRejection.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\n\nlet errorsInstrumented = false;\nfunction registerSpanErrorInstrumentation() {\n  if (errorsInstrumented) {\n    return;\n  }\n  function errorCallback() {\n    const activeSpan = getActiveSpan();\n    const rootSpan = activeSpan && getRootSpan(activeSpan);\n    if (rootSpan) {\n      const message = \"internal_error\";\n      DEBUG_BUILD && debug.log(`[Tracing] Root span: ${message} -> Global error occurred`);\n      rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n    }\n  }\n  errorsInstrumented = true;\n  addGlobalErrorInstrumentationHandler(errorCallback);\n  addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\nexport { registerSpanErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","import { getClient } from '../currentScopes.js';\n\nfunction hasSpansEnabled(maybeOptions) {\n  if (typeof __SENTRY_TRACING__ === \"boolean\" && !__SENTRY_TRACING__) {\n    return false;\n  }\n  const options = maybeOptions || getClient()?.getOptions();\n  return !!options && // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n  (options.tracesSampleRate != null || !!options.tracesSampler);\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n  debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\nfunction shouldIgnoreSpan(span, ignoreSpans) {\n  if (!ignoreSpans?.length) {\n    return false;\n  }\n  for (const pattern of ignoreSpans) {\n    if (isStringOrRegExp(pattern)) {\n      if (span.description && isMatchingPattern(span.description, pattern)) {\n        DEBUG_BUILD && logIgnoredSpan(span);\n        return true;\n      }\n      continue;\n    }\n    const hasAttributes = !!pattern.attributes && Object.keys(pattern.attributes).length > 0;\n    if (!pattern.name && !pattern.op && !hasAttributes) {\n      continue;\n    }\n    const nameMatches = pattern.name ? span.description && isMatchingPattern(span.description, pattern.name) : true;\n    const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n    const attrsMatch = pattern.attributes ? Object.entries(pattern.attributes).every(\n      ([key, valuePattern]) => _matchesAttributeValue(span.attributes?.[key], valuePattern)\n    ) : true;\n    if (nameMatches && opMatches && attrsMatch) {\n      DEBUG_BUILD && logIgnoredSpan(span);\n      return true;\n    }\n  }\n  return false;\n}\nfunction _matchesAttributeValue(actual, pat) {\n  if (typeof actual === \"string\" && (typeof pat === \"string\" || pat instanceof RegExp)) {\n    return isMatchingPattern(actual, pat);\n  }\n  if (Array.isArray(actual) && Array.isArray(pat)) {\n    return actual.length === pat.length && actual.every((v, i) => v === pat[i]);\n  }\n  return actual === pat;\n}\nfunction reparentChildSpans(spans, dropSpan) {\n  const droppedSpanParentId = dropSpan.parent_span_id;\n  const droppedSpanId = dropSpan.span_id;\n  if (!droppedSpanParentId) {\n    return;\n  }\n  for (const span of spans) {\n    if (span.parent_span_id === droppedSpanId) {\n      span.parent_span_id = droppedSpanParentId;\n    }\n  }\n}\nfunction isStringOrRegExp(value) {\n  return typeof value === \"string\" || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n","import { addNonEnumerableProperty } from '../utils/object.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\nconst NON_RECORDING_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.nonRecordingSpan\");\nclass SentryNonRecordingSpan {\n  constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this.dropReason = spanContext.dropReason;\n    addNonEnumerableProperty(this, NON_RECORDING_SPAN_FIELD, true);\n  }\n  /** @inheritdoc */\n  spanContext() {\n    return {\n      spanId: this._spanId,\n      traceId: this._traceId,\n      traceFlags: TRACE_FLAG_NONE\n    };\n  }\n  /** @inheritdoc */\n  end(_timestamp) {\n  }\n  /** @inheritdoc */\n  setAttribute(_key, _value) {\n    return this;\n  }\n  /** @inheritdoc */\n  setAttributes(_values) {\n    return this;\n  }\n  /** @inheritdoc */\n  setStatus(_status) {\n    return this;\n  }\n  /** @inheritdoc */\n  updateName(_name) {\n    return this;\n  }\n  /** @inheritdoc */\n  isRecording() {\n    return false;\n  }\n  /** @inheritdoc */\n  addEvent(_name, _attributesOrStartTime, _startTime) {\n    return this;\n  }\n  /** @inheritDoc */\n  addLink(_link) {\n    return this;\n  }\n  /** @inheritDoc */\n  addLinks(_links) {\n    return this;\n  }\n  /**\n   * This should generally not be used,\n   * but we need it for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n  recordException(_exception, _time) {\n  }\n}\nfunction spanIsNonRecordingSpan(span) {\n  return !!span && span[NON_RECORDING_SPAN_FIELD] === true;\n}\n\nexport { SentryNonRecordingSpan, spanIsNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n","const DEFAULT_ENVIRONMENT = \"production\";\nconst DEV_ENVIRONMENT = \"development\";\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst FROZEN_DSC_FIELD = \"_frozenDsc\";\nfunction freezeDscOnSpan(span, dsc) {\n  const spanWithMaybeDsc = span;\n  addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n  const options = client.getOptions();\n  const { publicKey: public_key } = client.getDsn() || {};\n  const dsc = {\n    environment: options.environment || DEFAULT_ENVIRONMENT,\n    release: options.release,\n    public_key,\n    trace_id,\n    org_id: extractOrgIdFromClient(client)\n  };\n  client.emit(\"createDsc\", dsc);\n  return dsc;\n}\nfunction getDynamicSamplingContextFromScope(client, scope) {\n  const propagationContext = scope.getPropagationContext();\n  return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\nfunction getDynamicSamplingContextFromSpan(span) {\n  const client = getClient();\n  if (!client) {\n    return {};\n  }\n  const rootSpan = getRootSpan(span);\n  const rootSpanJson = spanToJSON(rootSpan);\n  const rootSpanAttributes = rootSpanJson.data;\n  const traceState = rootSpan.spanContext().traceState;\n  const rootSpanSampleRate = traceState?.get(\"sentry.sample_rate\") ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n  function applyLocalSampleRateToDsc(dsc2) {\n    if (typeof rootSpanSampleRate === \"number\" || typeof rootSpanSampleRate === \"string\") {\n      dsc2.sample_rate = `${rootSpanSampleRate}`;\n    }\n    return dsc2;\n  }\n  const frozenDsc = rootSpan[FROZEN_DSC_FIELD];\n  if (frozenDsc) {\n    return applyLocalSampleRateToDsc(frozenDsc);\n  }\n  const isNonRecordingRoot = spanIsNonRecordingSpan(rootSpan);\n  const isIgnoredRoot = isNonRecordingRoot && rootSpan.dropReason === \"ignored\";\n  if (isNonRecordingRoot && (!hasSpansEnabled(client.getOptions()) || isIgnoredRoot)) {\n    const capturedScope = getCapturedScopesOnSpan(rootSpan).scope;\n    if (capturedScope) {\n      const dsc2 = { ...getDynamicSamplingContextFromScope(client, capturedScope) };\n      if (isIgnoredRoot) {\n        dsc2.sampled = \"false\";\n      }\n      return applyLocalSampleRateToDsc(dsc2);\n    }\n  }\n  const traceStateDsc = traceState?.get(\"sentry.dsc\");\n  const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n  if (dscOnTraceState) {\n    return applyLocalSampleRateToDsc(dscOnTraceState);\n  }\n  const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n  const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ?? rootSpanAttributes[\"sentry.segment.name.source\"];\n  const name = rootSpanJson.description;\n  if (source !== \"url\" && name) {\n    dsc.transaction = name;\n  }\n  if (hasSpansEnabled()) {\n    dsc.sampled = String(spanIsSampled(rootSpan));\n    dsc.sample_rand = // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n    // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n    traceState?.get(\"sentry.sample_rand\") ?? // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n    getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n  }\n  applyLocalSampleRateToDsc(dsc);\n  client.emit(\"createDsc\", dsc, rootSpan);\n  return dsc;\n}\nfunction spanToBaggageHeader(span) {\n  const dsc = getDynamicSamplingContextFromSpan(span);\n  return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import { addNonEnumerableProperty } from '../../utils/object.js';\n\nfunction withStreamedSpan(callback) {\n  addNonEnumerableProperty(callback, \"_streamed\", true);\n  return callback;\n}\nfunction isStreamedBeforeSendSpanCallback(callback) {\n  return !!callback && typeof callback === \"function\" && \"_streamed\" in callback && !!callback._streamed;\n}\n\nexport { isStreamedBeforeSendSpanCallback, withStreamedSpan };\n//# sourceMappingURL=beforeSendSpan.js.map\n","import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { safeDateNow } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction createEnvelope(headers, items = []) {\n  return [headers, items];\n}\nfunction addItemToEnvelope(envelope, newItem) {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]];\n}\nfunction forEachEnvelopeItem(envelope, callback) {\n  const envelopeItems = envelope[1];\n  for (const envelopeItem of envelopeItems) {\n    const envelopeItemType = envelopeItem[0].type;\n    const result = callback(envelopeItem, envelopeItemType);\n    if (result) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction envelopeContainsItemType(envelope, types) {\n  return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\nfunction encodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\nfunction decodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\nfunction serializeEnvelope(envelope) {\n  const [envHeaders, items] = envelope;\n  let parts = JSON.stringify(envHeaders);\n  function append(next) {\n    if (typeof parts === \"string\") {\n      parts = typeof next === \"string\" ? parts + next : [encodeUTF8(parts), next];\n    } else {\n      parts.push(typeof next === \"string\" ? encodeUTF8(next) : next);\n    }\n  }\n  for (const item of items) {\n    const [itemHeaders, payload] = item;\n    append(`\n${JSON.stringify(itemHeaders)}\n`);\n    if (typeof payload === \"string\" || payload instanceof Uint8Array) {\n      append(payload);\n    } else {\n      let stringifiedPayload;\n      try {\n        stringifiedPayload = JSON.stringify(payload);\n      } catch {\n        stringifiedPayload = JSON.stringify(normalize(payload));\n      }\n      append(stringifiedPayload);\n    }\n  }\n  return typeof parts === \"string\" ? parts : concatBuffers(parts);\n}\nfunction concatBuffers(buffers) {\n  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n  const merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (const buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n  return merged;\n}\nfunction parseEnvelope(env) {\n  let buffer = typeof env === \"string\" ? encodeUTF8(env) : env;\n  function readBinary(length) {\n    const bin = buffer.subarray(0, length);\n    buffer = buffer.subarray(length + 1);\n    return bin;\n  }\n  function readJson() {\n    let i = buffer.indexOf(10);\n    if (i < 0) {\n      i = buffer.length;\n    }\n    return JSON.parse(decodeUTF8(readBinary(i)));\n  }\n  const envelopeHeader = readJson();\n  const items = [];\n  while (buffer.length) {\n    const itemHeader = readJson();\n    const binaryLength = typeof itemHeader.length === \"number\" ? itemHeader.length : void 0;\n    items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n  }\n  return [envelopeHeader, items];\n}\nfunction createSpanEnvelopeItem(spanJson) {\n  const spanHeaders = {\n    type: \"span\"\n  };\n  return [spanHeaders, spanJson];\n}\nfunction createAttachmentEnvelopeItem(attachment) {\n  const buffer = typeof attachment.data === \"string\" ? encodeUTF8(attachment.data) : attachment.data;\n  return [\n    {\n      type: \"attachment\",\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType\n    },\n    buffer\n  ];\n}\nconst DATA_CATEGORY_OVERRIDES = {\n  sessions: \"session\",\n  event: \"error\",\n  client_report: \"internal\",\n  user_report: \"default\",\n  profile_chunk: \"profile\",\n  replay_event: \"replay\",\n  replay_recording: \"replay\",\n  check_in: \"monitor\",\n  raw_security: \"security\",\n  log: \"log_item\",\n  trace_metric: \"metric\"\n};\nfunction _isOverriddenType(type) {\n  return type in DATA_CATEGORY_OVERRIDES;\n}\nfunction envelopeItemTypeToDataCategory(type) {\n  return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n  if (!metadataOrEvent?.sdk) {\n    return;\n  }\n  const { name, version } = metadataOrEvent.sdk;\n  return { name, version };\n}\nfunction createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {\n  const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n  return {\n    event_id: event.event_id,\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...sdkInfo && { sdk: sdkInfo },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) },\n    ...dynamicSamplingContext && {\n      trace: dynamicSamplingContext\n    }\n  };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope, createSpanEnvelopeItem } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span.js';\nimport { spanToJSON, showSpanDropWarning } from './utils/spanUtils.js';\n\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n  if (!newSdkInfo) {\n    return event;\n  }\n  const eventSdkInfo = event.sdk || {};\n  event.sdk = {\n    ...eventSdkInfo,\n    name: eventSdkInfo.name || newSdkInfo.name,\n    version: eventSdkInfo.version || newSdkInfo.version,\n    integrations: [...event.sdk?.integrations || [], ...newSdkInfo.integrations || []],\n    packages: [...event.sdk?.packages || [], ...newSdkInfo.packages || []],\n    settings: event.sdk?.settings || newSdkInfo.settings ? {\n      ...event.sdk?.settings,\n      ...newSdkInfo.settings\n    } : void 0\n  };\n  return event;\n}\nfunction createSessionEnvelope(session, dsn, metadata, tunnel) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const envelopeHeaders = {\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...sdkInfo && { sdk: sdkInfo },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n  };\n  const envelopeItem = \"aggregates\" in session ? [{ type: \"sessions\" }, session] : [{ type: \"session\" }, session.toJSON()];\n  return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\nfunction createEventEnvelope(event, dsn, metadata, tunnel) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const eventType = event.type && event.type !== \"replay_event\" ? event.type : \"event\";\n  _enhanceEventWithSdkInfo(event, metadata?.sdk);\n  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n  delete event.sdkProcessingMetadata;\n  const eventItem = [{ type: eventType }, event];\n  return createEnvelope(envelopeHeaders, [eventItem]);\n}\nfunction createSpanEnvelope(spans, client) {\n  function dscHasRequiredProps(dsc2) {\n    return !!dsc2.trace_id && !!dsc2.public_key;\n  }\n  const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n  const dsn = client?.getDsn();\n  const tunnel = client?.getOptions().tunnel;\n  const headers = {\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...dscHasRequiredProps(dsc) && { trace: dsc },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n  };\n  const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n  const filteredSpans = ignoreSpans?.length ? spans.filter((span) => {\n    const json = spanToJSON(span);\n    return !shouldIgnoreSpan({ description: json.description, op: json.op, attributes: json.data }, ignoreSpans);\n  }) : spans;\n  const droppedSpans = spans.length - filteredSpans.length;\n  if (droppedSpans) {\n    client?.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n  }\n  const convertToSpanJSON = beforeSendSpan ? (span) => {\n    const spanJson = spanToJSON(span);\n    const processedSpan = !isStreamedBeforeSendSpanCallback(beforeSendSpan) ? beforeSendSpan(spanJson) : spanJson;\n    if (!processedSpan) {\n      showSpanDropWarning();\n      return spanJson;\n    }\n    return processedSpan;\n  } : spanToJSON;\n  const items = [];\n  for (const span of filteredSpans) {\n    const spanJson = convertToSpanJSON(span);\n    if (spanJson) {\n      items.push(createSpanEnvelopeItem(spanJson));\n    }\n  }\n  return createEnvelope(headers, items);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\nfunction logSpanStart(span) {\n  if (!DEBUG_BUILD) return;\n  const { description = \"< unknown name >\", op = \"< unknown op >\", parent_span_id: parentSpanId } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n  const header = `[Tracing] Starting ${sampled ? \"sampled\" : \"unsampled\"} ${isRootSpan ? \"root \" : \"\"}span`;\n  const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n  if (parentSpanId) {\n    infoParts.push(`parent ID: ${parentSpanId}`);\n  }\n  if (!isRootSpan) {\n    const { op: op2, description: description2 } = spanToJSON(rootSpan);\n    infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n    if (op2) {\n      infoParts.push(`root op: ${op2}`);\n    }\n    if (description2) {\n      infoParts.push(`root description: ${description2}`);\n    }\n  }\n  debug.log(`${header}\n  ${infoParts.join(\"\\n  \")}`);\n}\nfunction logSpanEnd(span) {\n  if (!DEBUG_BUILD) return;\n  const { description = \"< unknown name >\", op = \"< unknown op >\" } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n  const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? \"root \" : \"\"}span \"${description}\" with ID ${spanId}`;\n  debug.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n  const rootSpan = activeSpan && getRootSpan(activeSpan);\n  if (rootSpan) {\n    DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n    rootSpan.addEvent(name, {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit\n    });\n  }\n}\nfunction timedEventsToMeasurements(events) {\n  if (!events || events.length === 0) {\n    return void 0;\n  }\n  const measurements = {};\n  events.forEach((event) => {\n    const attributes = event.attributes || {};\n    const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT];\n    const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE];\n    if (typeof unit === \"string\" && typeof value === \"number\") {\n      measurements[event.name] = { value, unit };\n    }\n  });\n  return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n","import { getSentryCarrier, getMainCarrier } from '../carrier.js';\n\nfunction setSegmentSpanCaptureStrategy(strategy) {\n  getSentryCarrier(getMainCarrier()).segmentSpanCaptureStrategy = strategy;\n}\nfunction getSegmentSpanCaptureStrategy() {\n  return getSentryCarrier(getMainCarrier()).segmentSpanCaptureStrategy;\n}\n\nexport { getSegmentSpanCaptureStrategy, setSegmentSpanCaptureStrategy };\n//# sourceMappingURL=segmentSpanCaptureStrategy.js.map\n","function hasSpanStreamingEnabled(client) {\n  return client.getOptions().traceLifecycle === \"stream\";\n}\n\nexport { hasSpanStreamingEnabled };\n//# sourceMappingURL=hasSpanStreamingEnabled.js.map\n","import { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, convertSpanLinksForEnvelope, getRootSpan, getStatusMessage, getStreamedSpanLinks, addStatusMessageAttribute, getSimpleStatus, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { getSegmentSpanCaptureStrategy } from './segmentSpanCaptureStrategy.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { spanShouldInferOtelSource, markSpanSourceAsExplicit, spanIsTracerProviderSpan, getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1e3;\nclass SentrySpan {\n  /**\n   * You should never call the constructor manually, always use `Sentry.startSpan()`\n   * or other span methods.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n  constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this._startTime = spanContext.startTimestamp || timestampInSeconds();\n    this._links = spanContext.links;\n    this._attributes = {};\n    this.setAttributes({\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"manual\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n      ...spanContext.attributes\n    });\n    this._name = spanContext.name;\n    if (spanContext.parentSpanId) {\n      this._parentSpanId = spanContext.parentSpanId;\n    }\n    if (\"sampled\" in spanContext) {\n      this._sampled = spanContext.sampled;\n    }\n    if (spanContext.endTimestamp) {\n      this._endTime = spanContext.endTimestamp;\n    }\n    this._events = [];\n    this._isStandaloneSpan = spanContext.isStandalone;\n    if (this._endTime) {\n      this._onSpanEnded();\n    }\n  }\n  /** @inheritDoc */\n  addLink(link) {\n    if (this._frozen) {\n      return this;\n    }\n    if (this._links) {\n      this._links.push(link);\n    } else {\n      this._links = [link];\n    }\n    return this;\n  }\n  /** @inheritDoc */\n  addLinks(links) {\n    if (this._frozen) {\n      return this;\n    }\n    if (this._links) {\n      this._links.push(...links);\n    } else {\n      this._links = links;\n    }\n    return this;\n  }\n  /**\n   * This should generally not be used,\n   * but it is needed for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n  recordException(_exception, _time) {\n  }\n  /** @inheritdoc */\n  spanContext() {\n    const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n    return {\n      spanId,\n      traceId,\n      traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE\n    };\n  }\n  /** @inheritdoc */\n  setAttribute(key, value) {\n    if (this._frozen) {\n      return this;\n    }\n    if (value === void 0) {\n      delete this._attributes[key];\n    } else {\n      this._attributes[key] = value;\n    }\n    if (key === SEMANTIC_ATTRIBUTE_SENTRY_SOURCE && value !== void 0 && spanShouldInferOtelSource(this)) {\n      markSpanSourceAsExplicit(this);\n    }\n    return this;\n  }\n  /** @inheritdoc */\n  setAttributes(attributes) {\n    Object.keys(attributes).forEach((key) => this.setAttribute(key, attributes[key]));\n    return this;\n  }\n  /**\n   * This should generally not be used,\n   * but we need it for browser tracing where we want to adjust the start time afterwards.\n   * USE THIS WITH CAUTION!\n   *\n   * @hidden\n   * @internal\n   */\n  updateStartTime(timeInput) {\n    if (this._frozen) {\n      return;\n    }\n    this._startTime = spanTimeInputToSeconds(timeInput);\n  }\n  /**\n   * @inheritDoc\n   */\n  setStatus(value) {\n    if (this._frozen) {\n      return this;\n    }\n    this._status = value;\n    return this;\n  }\n  /**\n   * @inheritDoc\n   */\n  updateName(name) {\n    if (this._frozen) {\n      return this;\n    }\n    this._name = name;\n    if (!spanShouldInferOtelSource(this)) {\n      this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, \"custom\");\n    }\n    return this;\n  }\n  /** @inheritdoc */\n  end(endTimestamp) {\n    if (this._endTime) {\n      this._frozen = spanIsTracerProviderSpan(this);\n      return;\n    }\n    this._endTime = spanTimeInputToSeconds(endTimestamp);\n    logSpanEnd(this);\n    this._onSpanEnded();\n    this._frozen = spanIsTracerProviderSpan(this);\n  }\n  /**\n   * Get JSON representation of this span.\n   *\n   * @hidden\n   * @internal This method is purely for internal purposes and should not be used outside\n   * of SDK code. If you need to get a JSON representation of a span,\n   * use `spanToJSON(span)` instead.\n   */\n  getSpanJSON() {\n    return {\n      data: this._attributes,\n      description: this._name,\n      op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      parent_span_id: this._parentSpanId,\n      span_id: this._spanId,\n      start_timestamp: this._startTime,\n      status: getStatusMessage(this._status),\n      timestamp: this._endTime,\n      trace_id: this._traceId,\n      origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n      profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n      exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n      measurements: timedEventsToMeasurements(this._events),\n      is_segment: this._isStandaloneSpan && getRootSpan(this) === this || void 0,\n      segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : void 0,\n      links: convertSpanLinksForEnvelope(this._links)\n    };\n  }\n  /**\n   * Get {@link StreamedSpanJSON} representation of this span.\n   *\n   * @hidden\n   * @internal This method is purely for internal purposes and should not be used outside\n   * of SDK code. If you need to get a JSON representation of a span,\n   * use `spanToStreamedSpanJSON(span)` instead.\n   */\n  getStreamedSpanJSON() {\n    return {\n      name: this._name ?? \"\",\n      span_id: this._spanId,\n      trace_id: this._traceId,\n      parent_span_id: this._parentSpanId,\n      start_timestamp: this._startTime,\n      // just in case _endTime is not set, we use the start time (i.e. duration 0)\n      end_timestamp: this._endTime ?? this._startTime,\n      is_segment: this._isStandaloneSpan || this === getRootSpan(this),\n      status: getSimpleStatus(this._status),\n      attributes: addStatusMessageAttribute(this._attributes, this._status),\n      links: getStreamedSpanLinks(this._links)\n    };\n  }\n  /** @inheritdoc */\n  isRecording() {\n    return !this._endTime && !!this._sampled;\n  }\n  /**\n   * @inheritdoc\n   */\n  addEvent(name, attributesOrStartTime, startTime) {\n    if (this._frozen) {\n      return this;\n    }\n    DEBUG_BUILD && debug.log(\"[Tracing] Adding an event to span:\", name);\n    const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n    const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n    const event = {\n      name,\n      time: spanTimeInputToSeconds(time),\n      attributes\n    };\n    this._events.push(event);\n    return this;\n  }\n  /**\n   * This method should generally not be used,\n   * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n   * USE THIS WITH CAUTION!\n   * @internal\n   * @hidden\n   * @experimental\n   */\n  isStandaloneSpan() {\n    return !!this._isStandaloneSpan;\n  }\n  /** Emit `spanEnd` when the span is ended. */\n  _onSpanEnded() {\n    const client = getClient();\n    if (client) {\n      client.emit(\"spanEnd\", this);\n      if (!this._isStandaloneSpan) {\n        client.emit(\"afterSpanEnd\", this);\n      }\n    }\n    const rootSpan = getRootSpan(this);\n    const isSegmentSpan = this._isStandaloneSpan || this === rootSpan;\n    if (this._isStandaloneSpan) {\n      if (this._sampled) {\n        sendSpanEnvelope(createSpanEnvelope([this], client));\n      } else {\n        DEBUG_BUILD && debug.log(\"[Tracing] Discarding standalone span because its trace was not chosen to be sampled.\");\n        if (client) {\n          client.recordDroppedEvent(\"sample_rate\", \"span\");\n        }\n      }\n      return;\n    }\n    if (!isSegmentSpan) {\n      const strategy2 = getSegmentSpanCaptureStrategy();\n      if (strategy2) {\n        const scope2 = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n        strategy2.onChildSpanEnded(this, rootSpan, (options) => this._convertSpanToTransaction(options), scope2);\n      }\n      return;\n    }\n    if (client && hasSpanStreamingEnabled(client)) {\n      client.emit(\"afterSegmentSpanEnd\", this);\n      return;\n    }\n    const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n    const strategy = getSegmentSpanCaptureStrategy();\n    if (strategy) {\n      strategy.onSegmentSpanEnded((options) => this._convertSpanToTransaction(options), scope);\n    } else {\n      const transactionEvent = this._convertSpanToTransaction();\n      if (transactionEvent) {\n        scope.captureEvent(transactionEvent);\n      }\n    }\n  }\n  /**\n   * Finish the transaction & prepare the event to send to Sentry.\n   */\n  _convertSpanToTransaction(options = {}) {\n    if (!isFullFinishedSpan(spanToJSON(this))) {\n      return void 0;\n    }\n    if (!this._name) {\n      DEBUG_BUILD && debug.warn(\"Transaction has no name, falling back to `<unlabeled transaction>`.\");\n      this._name = \"<unlabeled transaction>\";\n    }\n    const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n    const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n    if (this._sampled !== true) {\n      return void 0;\n    }\n    options.onSpanCaptured?.(this);\n    const spans = [];\n    for (const descendant of getSpanDescendants(this)) {\n      if (descendant === this || isStandaloneSpan(descendant) || options.isSpanAlreadyCaptured?.(descendant)) {\n        continue;\n      }\n      const spanJSON = spanToJSON(descendant);\n      if (!isFullFinishedSpan(spanJSON)) {\n        continue;\n      }\n      options.onSpanCaptured?.(descendant);\n      spans.push(spanJSON);\n    }\n    const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n    delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    let hasGenAiSpans = false;\n    spans.forEach((span) => {\n      delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n      if (span.op?.startsWith(\"gen_ai.\")) {\n        hasGenAiSpans = true;\n      }\n    });\n    const transaction = {\n      contexts: {\n        trace: spanToTransactionTraceContext(this)\n      },\n      spans: (\n        // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n        // we do not use spans anymore after this point\n        spans.length > MAX_SPAN_COUNT ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT) : spans\n      ),\n      start_timestamp: this._startTime,\n      timestamp: this._endTime,\n      transaction: this._name,\n      type: \"transaction\",\n      sdkProcessingMetadata: {\n        capturedSpanScope,\n        capturedSpanIsolationScope,\n        dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n        hasGenAiSpans\n      },\n      request: normalizedRequest,\n      ...source && {\n        transaction_info: {\n          source\n        }\n      }\n    };\n    const measurements = timedEventsToMeasurements(this._events);\n    const hasMeasurements = measurements && Object.keys(measurements).length;\n    if (hasMeasurements) {\n      DEBUG_BUILD && debug.log(\n        \"[Measurements] Adding measurements to transaction event\",\n        JSON.stringify(measurements, void 0, 2)\n      );\n      transaction.measurements = measurements;\n    }\n    return transaction;\n  }\n}\nfunction isSpanTimeInput(value) {\n  return value && typeof value === \"number\" || value instanceof Date || Array.isArray(value);\n}\nfunction isFullFinishedSpan(input) {\n  return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\nfunction isStandaloneSpan(span) {\n  return span instanceof SentrySpan && span.isStandaloneSpan();\n}\nfunction sendSpanEnvelope(envelope) {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n  const spanItems = envelope[1];\n  if (!spanItems || spanItems.length === 0) {\n    client.recordDroppedEvent(\"before_send\", \"span\");\n    return;\n  }\n  client.sendEnvelope(envelope);\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\nfunction sampleSpan(options, samplingContext, sampleRand) {\n  if (!hasSpansEnabled(options)) {\n    return [false];\n  }\n  let localSampleRateWasApplied = void 0;\n  let sampleRate;\n  if (typeof options.tracesSampler === \"function\") {\n    sampleRate = options.tracesSampler({\n      ...samplingContext,\n      inheritOrSampleWith: (fallbackSampleRate) => {\n        if (typeof samplingContext.parentSampleRate === \"number\") {\n          return samplingContext.parentSampleRate;\n        }\n        if (typeof samplingContext.parentSampled === \"boolean\") {\n          return Number(samplingContext.parentSampled);\n        }\n        return fallbackSampleRate;\n      }\n    });\n    localSampleRateWasApplied = true;\n  } else if (samplingContext.parentSampled !== void 0) {\n    sampleRate = samplingContext.parentSampled;\n  } else if (typeof options.tracesSampleRate !== \"undefined\") {\n    sampleRate = options.tracesSampleRate;\n    localSampleRateWasApplied = true;\n  }\n  const parsedSampleRate = parseSampleRate(sampleRate);\n  if (parsedSampleRate === void 0) {\n    DEBUG_BUILD && debug.warn(\n      `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n        sampleRate\n      )} of type ${JSON.stringify(typeof sampleRate)}.`\n    );\n    return [false];\n  }\n  if (!parsedSampleRate) {\n    DEBUG_BUILD && debug.log(\n      `[Tracing] Discarding transaction because ${typeof options.tracesSampler === \"function\" ? \"tracesSampler returned 0 or false\" : \"a negative sampling decision was inherited or tracesSampleRate is set to 0\"}`\n    );\n    return [false, parsedSampleRate, localSampleRateWasApplied];\n  }\n  const shouldSample = sampleRand < parsedSampleRate;\n  if (!shouldSample) {\n    DEBUG_BUILD && debug.log(\n      `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n        sampleRate\n      )})`\n    );\n  }\n  return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, getRootSpan, addChildSpanToSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { spanIsNonRecordingSpan, SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst SUPPRESS_TRACING_KEY = \"__SENTRY_SUPPRESS_TRACING__\";\nfunction startSpan(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpan) {\n    return acs.startSpan(options, callback);\n  }\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n  const customForkedScope = customScope?.clone();\n  return withScope(customForkedScope, () => {\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n      const client = getClient();\n      const missingRequiredParent = options.onlyIfParent && !parentSpan;\n      const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, client) : createChildOrRootSpan({\n        parentSpan,\n        spanArguments,\n        forceTransaction,\n        scope\n      });\n      if (!spanIsIgnored(activeSpan) || !parentSpan) {\n        _setSpanForScope(scope, activeSpan);\n      }\n      return handleCallbackErrors(\n        () => callback(activeSpan),\n        () => {\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n          }\n        },\n        () => {\n          activeSpan.end();\n        }\n      );\n    });\n  });\n}\nfunction startSpanManual(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpanManual) {\n    return acs.startSpanManual(options, callback);\n  }\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n  const customForkedScope = customScope?.clone();\n  return withScope(customForkedScope, () => {\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n      const missingRequiredParent = options.onlyIfParent && !parentSpan;\n      const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, getClient()) : createChildOrRootSpan({\n        parentSpan,\n        spanArguments,\n        forceTransaction,\n        scope\n      });\n      if (!spanIsIgnored(activeSpan) || !parentSpan) {\n        _setSpanForScope(scope, activeSpan);\n      }\n      return handleCallbackErrors(\n        // We pass the `finish` function to the callback, so the user can finish the span manually\n        // this is mainly here for historic purposes because previously, we instructed users to call\n        // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n        // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n        () => callback(activeSpan, () => activeSpan.end()),\n        () => {\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n          }\n        }\n      );\n    });\n  });\n}\nfunction startInactiveSpan(options) {\n  const acs = getAcs();\n  if (acs.startInactiveSpan) {\n    return acs.startInactiveSpan(options);\n  }\n  return _startInactiveSpanImpl(options);\n}\nfunction _INTERNAL_startInactiveSpan(options) {\n  return _startInactiveSpanImpl(options);\n}\nfunction _startInactiveSpanImpl(options) {\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan } = options;\n  const wrapper = options.scope ? (callback) => withScope(options.scope, callback) : customParentSpan !== void 0 ? (callback) => withActiveSpan(customParentSpan, callback) : (callback) => callback();\n  return wrapper(() => {\n    const scope = getCurrentScope();\n    const parentSpan = getParentSpan(scope, customParentSpan);\n    const client = getClient();\n    const missingRequiredParent = options.onlyIfParent && !parentSpan;\n    if (missingRequiredParent) {\n      return startMissingRequiredParentSpan(scope, client);\n    }\n    return createChildOrRootSpan({\n      parentSpan,\n      spanArguments,\n      forceTransaction,\n      scope\n    });\n  });\n}\nconst continueTrace = (options, callback) => {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.continueTrace) {\n    return acs.continueTrace(options, callback);\n  }\n  const { sentryTrace, baggage } = options;\n  const client = getClient();\n  const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n  if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n    return startNewTrace(callback);\n  }\n  return withScope((scope) => {\n    const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n    scope.setPropagationContext(propagationContext);\n    _setSpanForScope(scope, void 0);\n    return callback();\n  });\n};\nfunction withActiveSpan(span, callback) {\n  const acs = getAcs();\n  if (acs.withActiveSpan) {\n    return acs.withActiveSpan(span, callback);\n  }\n  return withScope((scope) => {\n    _setSpanForScope(scope, span || void 0);\n    return callback(scope);\n  });\n}\nfunction suppressTracing(callback) {\n  const acs = getAcs();\n  if (acs.suppressTracing) {\n    return acs.suppressTracing(callback);\n  }\n  return withScope((scope) => {\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    const res = callback();\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: void 0 });\n    return res;\n  });\n}\nfunction isTracingSuppressed(scope = getCurrentScope()) {\n  const acs = getAcs();\n  if (acs.isTracingSuppressed) {\n    return acs.isTracingSuppressed(scope);\n  }\n  return scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true;\n}\nfunction startNewTrace(callback) {\n  const acs = getAcs();\n  if (acs.startNewTrace) {\n    return acs.startNewTrace(callback);\n  }\n  return withScope((scope) => {\n    scope.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    });\n    DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n    return withActiveSpan(null, callback);\n  });\n}\nfunction startMissingRequiredParentSpan(scope, client) {\n  client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n  const span = new SentryNonRecordingSpan({ traceId: scope.getPropagationContext().traceId });\n  setCapturedScopesOnSpan(span, scope, getIsolationScope());\n  return span;\n}\nfunction createChildOrRootSpan({\n  parentSpan,\n  spanArguments,\n  forceTransaction,\n  scope\n}) {\n  const isolationScope = getIsolationScope();\n  if (!hasSpansEnabled()) {\n    const scopePropagationContext = { ...isolationScope.getPropagationContext(), ...scope.getPropagationContext() };\n    const traceId = parentSpan ? parentSpan.spanContext().traceId : scopePropagationContext.traceId;\n    const span2 = new SentryNonRecordingSpan({ traceId });\n    if (parentSpan && !forceTransaction) {\n      addChildSpanToSpan(parentSpan, span2);\n    }\n    setCapturedScopesOnSpan(span2, scope, isolationScope);\n    return span2;\n  }\n  const client = getClient();\n  if (_shouldIgnoreStreamedSpan(client, spanArguments)) {\n    if (!isTracingSuppressed(scope)) {\n      client?.recordDroppedEvent(\"ignored\", \"span\");\n    }\n    const ignoredSpan = new SentryNonRecordingSpan({\n      dropReason: \"ignored\",\n      traceId: parentSpan?.spanContext().traceId ?? scope.getPropagationContext().traceId\n    });\n    if (parentSpan && !forceTransaction) {\n      addChildSpanToSpan(parentSpan, ignoredSpan);\n    }\n    setCapturedScopesOnSpan(ignoredSpan, scope, isolationScope);\n    return ignoredSpan;\n  }\n  let span;\n  if (parentSpan && !forceTransaction) {\n    span = _startChildSpan(parentSpan, scope, spanArguments, isolationScope);\n    addChildSpanToSpan(parentSpan, span);\n  } else if (parentSpan) {\n    const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n    const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n    const parentSampled = spanIsSampled(parentSpan);\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments\n      },\n      scope,\n      isolationScope,\n      parentSampled\n    );\n    freezeDscOnSpan(span, dsc);\n  } else {\n    const {\n      traceId,\n      dsc,\n      parentSpanId,\n      sampled: parentSampled\n    } = {\n      ...isolationScope.getPropagationContext(),\n      ...scope.getPropagationContext()\n    };\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments\n      },\n      scope,\n      isolationScope,\n      parentSampled\n    );\n    if (dsc) {\n      freezeDscOnSpan(span, dsc);\n    }\n  }\n  logSpanStart(span);\n  return span;\n}\nfunction parseSentrySpanArguments(options) {\n  const exp = options.experimental || {};\n  const initialCtx = {\n    isStandalone: exp.standalone,\n    ...options\n  };\n  if (options.startTime) {\n    const ctx = { ...initialCtx };\n    ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n    delete ctx.startTime;\n    return ctx;\n  }\n  return initialCtx;\n}\nfunction getAcs() {\n  const carrier = getMainCarrier();\n  return getAsyncContextStrategy(carrier);\n}\nfunction _startRootSpan(spanArguments, scope, isolationScope, parentSampled) {\n  const client = getClient();\n  const options = client?.getOptions() || {};\n  const { name = \"\" } = spanArguments;\n  const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n  client?.emit(\"beforeSampling\", mutableSpanSamplingData, { decision: false });\n  const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n  const finalAttributes = mutableSpanSamplingData.spanAttributes;\n  const currentPropagationContext = scope.getPropagationContext();\n  const _isTracingSuppressed = isTracingSuppressed(scope);\n  const [sampled, sampleRate, localSampleRateWasApplied] = _isTracingSuppressed ? [false] : sampleSpan(\n    options,\n    {\n      name,\n      parentSampled: finalParentSampled,\n      attributes: finalAttributes,\n      normalizedRequest: isolationScope.getScopeData().sdkProcessingMetadata.normalizedRequest,\n      parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate)\n    },\n    currentPropagationContext.sampleRand\n  );\n  const rootSpan = new SentrySpan({\n    ...spanArguments,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate !== void 0 && localSampleRateWasApplied ? sampleRate : void 0,\n      ...finalAttributes\n    },\n    sampled\n  });\n  if (!sampled && client && !_isTracingSuppressed) {\n    DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n    client.recordDroppedEvent(\"sample_rate\", hasSpanStreamingEnabled(client) ? \"span\" : \"transaction\");\n  }\n  setCapturedScopesOnSpan(rootSpan, scope, isolationScope);\n  if (client) {\n    client.emit(\"spanStart\", rootSpan);\n  }\n  return rootSpan;\n}\nfunction _startChildSpan(parentSpan, scope, spanArguments, isolationScope) {\n  const { spanId, traceId } = parentSpan.spanContext();\n  const _isTracingSuppressed = isTracingSuppressed(scope);\n  const sampled = _isTracingSuppressed ? false : spanIsSampled(parentSpan);\n  const childSpan = sampled ? new SentrySpan({\n    ...spanArguments,\n    parentSpanId: spanId,\n    traceId,\n    sampled\n  }) : new SentryNonRecordingSpan({ traceId });\n  addChildSpanToSpan(parentSpan, childSpan);\n  setCapturedScopesOnSpan(childSpan, scope, isolationScope);\n  const client = getClient();\n  if (!client) {\n    return childSpan;\n  }\n  if (hasSpanStreamingEnabled(client) && spanIsNonRecordingSpan(childSpan)) {\n    if (spanIsNonRecordingSpan(parentSpan) && parentSpan.dropReason) {\n      childSpan.dropReason = parentSpan.dropReason;\n      client.recordDroppedEvent(parentSpan.dropReason, \"span\");\n    } else if (!_isTracingSuppressed) {\n      childSpan.dropReason = \"sample_rate\";\n      client.recordDroppedEvent(\"sample_rate\", \"span\");\n    }\n  }\n  client.emit(\"spanStart\", childSpan);\n  if (spanArguments.endTimestamp) {\n    client.emit(\"spanEnd\", childSpan);\n    client.emit(\"afterSpanEnd\", childSpan);\n  }\n  return childSpan;\n}\nfunction getParentSpan(scope, customParentSpan) {\n  if (customParentSpan) {\n    return customParentSpan;\n  }\n  if (customParentSpan === null) {\n    return void 0;\n  }\n  const span = _getSpanForScope(scope);\n  if (!span) {\n    return void 0;\n  }\n  const client = getClient();\n  const options = client ? client.getOptions() : {};\n  if (options.parentSpanIsAlwaysRootSpan) {\n    return getRootSpan(span);\n  }\n  return span;\n}\nfunction getActiveSpanWrapper(parentSpan) {\n  return parentSpan !== void 0 ? (callback) => {\n    return withActiveSpan(parentSpan, callback);\n  } : (callback) => callback();\n}\nfunction _shouldIgnoreStreamedSpan(client, spanArguments) {\n  const ignoreSpans = client?.getOptions().ignoreSpans;\n  if (!client || !hasSpanStreamingEnabled(client) || !ignoreSpans?.length) {\n    return false;\n  }\n  return shouldIgnoreSpan(\n    {\n      description: spanArguments.name || \"\",\n      op: spanArguments.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] || spanArguments.op,\n      attributes: spanArguments.attributes\n    },\n    ignoreSpans\n  );\n}\nfunction spanIsIgnored(span) {\n  return spanIsNonRecordingSpan(span) && span.dropReason === \"ignored\";\n}\n\nexport { SUPPRESS_TRACING_KEY, _INTERNAL_startInactiveSpan, continueTrace, isTracingSuppressed, spanIsIgnored, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n","import { getClient, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { getActiveSpan, spanTimeInputToSeconds, getSpanDescendants, spanToJSON, removeChildSpanFromSpan } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { SentryNonRecordingSpan, spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_OK, SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { startInactiveSpan } from './trace.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst TRACING_DEFAULTS = {\n  idleTimeout: 1e3,\n  finalTimeout: 3e4,\n  childSpanTimeout: 15e3\n};\nconst FINISH_REASON_HEARTBEAT_FAILED = \"heartbeatFailed\";\nconst FINISH_REASON_IDLE_TIMEOUT = \"idleTimeout\";\nconst FINISH_REASON_FINAL_TIMEOUT = \"finalTimeout\";\nconst FINISH_REASON_EXTERNAL_FINISH = \"externalFinish\";\nfunction startIdleSpan(startSpanOptions, options = {}) {\n  const activities = /* @__PURE__ */ new Map();\n  let _finished = false;\n  let _idleTimeoutID;\n  let _finishReason = FINISH_REASON_EXTERNAL_FINISH;\n  let _autoFinishAllowed = !options.disableAutoFinish;\n  const _cleanupHooks = [];\n  const {\n    idleTimeout = TRACING_DEFAULTS.idleTimeout,\n    finalTimeout = TRACING_DEFAULTS.finalTimeout,\n    childSpanTimeout = TRACING_DEFAULTS.childSpanTimeout,\n    beforeSpanEnd,\n    trimIdleSpanEndTimestamp = true\n  } = options;\n  const client = getClient();\n  const scope = getCurrentScope();\n  if (!client || !hasSpansEnabled()) {\n    const span2 = new SentryNonRecordingSpan({ traceId: scope.getPropagationContext().traceId });\n    setCapturedScopesOnSpan(span2, scope, getIsolationScope());\n    return span2;\n  }\n  const previousActiveSpan = getActiveSpan();\n  const span = _startIdleSpan(startSpanOptions);\n  span.end = new Proxy(span.end, {\n    apply(target, thisArg, args) {\n      if (beforeSpanEnd) {\n        beforeSpanEnd(span);\n      }\n      if (spanIsNonRecordingSpan(thisArg)) {\n        return;\n      }\n      const [definedEndTimestamp, ...rest] = args;\n      const timestamp = definedEndTimestamp || timestampInSeconds();\n      const spanEndTimestamp = spanTimeInputToSeconds(timestamp);\n      const spans = getSpanDescendants(span).filter((child) => child !== span);\n      const spanJson = spanToJSON(span);\n      if (!spans.length || !trimIdleSpanEndTimestamp) {\n        onIdleSpanEnded(spanEndTimestamp);\n        return Reflect.apply(target, thisArg, [spanEndTimestamp, ...rest]);\n      }\n      const ignoreSpans = client.getOptions().ignoreSpans;\n      const latestSpanEndTimestamp = spans?.reduce((acc, current) => {\n        const currentSpanJson = spanToJSON(current);\n        if (!currentSpanJson.timestamp) {\n          return acc;\n        }\n        if (ignoreSpans && shouldIgnoreSpan(\n          { description: currentSpanJson.description, op: currentSpanJson.op, attributes: currentSpanJson.data },\n          ignoreSpans\n        )) {\n          return acc;\n        }\n        return acc ? Math.max(acc, currentSpanJson.timestamp) : currentSpanJson.timestamp;\n      }, void 0);\n      const spanStartTimestamp = spanJson.start_timestamp;\n      const endTimestamp = Math.min(\n        spanStartTimestamp ? spanStartTimestamp + finalTimeout / 1e3 : Infinity,\n        Math.max(spanStartTimestamp || -Infinity, Math.min(spanEndTimestamp, latestSpanEndTimestamp || Infinity))\n      );\n      onIdleSpanEnded(endTimestamp);\n      return Reflect.apply(target, thisArg, [endTimestamp, ...rest]);\n    }\n  });\n  function _cancelIdleTimeout() {\n    if (_idleTimeoutID) {\n      clearTimeout(_idleTimeoutID);\n      _idleTimeoutID = void 0;\n    }\n  }\n  function _restartIdleTimeout(endTimestamp) {\n    _cancelIdleTimeout();\n    _idleTimeoutID = setTimeout(() => {\n      if (!_finished && activities.size === 0 && _autoFinishAllowed) {\n        _finishReason = FINISH_REASON_IDLE_TIMEOUT;\n        span.end(endTimestamp);\n      }\n    }, idleTimeout);\n  }\n  function _restartChildSpanTimeout(endTimestamp) {\n    _idleTimeoutID = setTimeout(() => {\n      if (!_finished && _autoFinishAllowed) {\n        _finishReason = FINISH_REASON_HEARTBEAT_FAILED;\n        span.end(endTimestamp);\n      }\n    }, childSpanTimeout);\n  }\n  function _pushActivity(spanId) {\n    _cancelIdleTimeout();\n    activities.set(spanId, true);\n    const endTimestamp = timestampInSeconds();\n    _restartChildSpanTimeout(endTimestamp + childSpanTimeout / 1e3);\n  }\n  function _popActivity(spanId) {\n    if (activities.has(spanId)) {\n      activities.delete(spanId);\n    }\n    if (activities.size === 0) {\n      const endTimestamp = timestampInSeconds();\n      _restartIdleTimeout(endTimestamp + idleTimeout / 1e3);\n    }\n  }\n  function onIdleSpanEnded(endTimestamp) {\n    _finished = true;\n    activities.clear();\n    _cleanupHooks.forEach((cleanup) => cleanup());\n    _setSpanForScope(scope, previousActiveSpan);\n    const spanJSON = spanToJSON(span);\n    const { start_timestamp: startTimestamp } = spanJSON;\n    if (!startTimestamp) {\n      return;\n    }\n    const attributes = spanJSON.data;\n    if (!attributes[SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]) {\n      span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason);\n    }\n    const currentStatus = spanJSON.status;\n    if (!currentStatus || currentStatus === \"unknown\") {\n      span.setStatus({ code: SPAN_STATUS_OK });\n    }\n    debug.log(`[Tracing] Idle span \"${spanJSON.op}\" finished`);\n    const childSpans = getSpanDescendants(span).filter((child) => child !== span);\n    let discardedSpans = 0;\n    childSpans.forEach((childSpan) => {\n      if (childSpan.isRecording()) {\n        childSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"cancelled\" });\n        childSpan.end(endTimestamp);\n        DEBUG_BUILD && debug.log(\"[Tracing] Cancelling span since span ended early\", JSON.stringify(childSpan, void 0, 2));\n      }\n      const childSpanJSON = spanToJSON(childSpan);\n      const { timestamp: childEndTimestamp = 0, start_timestamp: childStartTimestamp = 0 } = childSpanJSON;\n      const spanStartedBeforeIdleSpanEnd = childStartTimestamp <= endTimestamp;\n      const timeoutWithMarginOfError = (finalTimeout + idleTimeout) / 1e3;\n      const spanEndedBeforeFinalTimeout = childEndTimestamp - childStartTimestamp <= timeoutWithMarginOfError;\n      if (DEBUG_BUILD) {\n        const stringifiedSpan = JSON.stringify(childSpan, void 0, 2);\n        if (!spanStartedBeforeIdleSpanEnd) {\n          debug.log(\"[Tracing] Discarding span since it happened after idle span was finished\", stringifiedSpan);\n        } else if (!spanEndedBeforeFinalTimeout) {\n          debug.log(\"[Tracing] Discarding span since it finished after idle span final timeout\", stringifiedSpan);\n        }\n      }\n      if (!spanEndedBeforeFinalTimeout || !spanStartedBeforeIdleSpanEnd) {\n        removeChildSpanFromSpan(span, childSpan);\n        discardedSpans++;\n      }\n    });\n    if (discardedSpans > 0) {\n      span.setAttribute(\"sentry.idle_span_discarded_spans\", discardedSpans);\n    }\n  }\n  _cleanupHooks.push(\n    client.on(\"spanStart\", (startedSpan) => {\n      if (_finished || startedSpan === span || !!spanToJSON(startedSpan).timestamp || startedSpan instanceof SentrySpan && startedSpan.isStandaloneSpan()) {\n        return;\n      }\n      const allSpans = getSpanDescendants(span);\n      if (allSpans.includes(startedSpan)) {\n        _pushActivity(startedSpan.spanContext().spanId);\n      }\n    })\n  );\n  _cleanupHooks.push(\n    client.on(\"spanEnd\", (endedSpan) => {\n      if (_finished) {\n        return;\n      }\n      _popActivity(endedSpan.spanContext().spanId);\n    })\n  );\n  _cleanupHooks.push(\n    client.on(\"idleSpanEnableAutoFinish\", (spanToAllowAutoFinish) => {\n      if (spanToAllowAutoFinish === span) {\n        _autoFinishAllowed = true;\n        _restartIdleTimeout();\n        if (activities.size) {\n          _restartChildSpanTimeout();\n        }\n      }\n    })\n  );\n  if (!options.disableAutoFinish) {\n    _restartIdleTimeout();\n  }\n  setTimeout(() => {\n    if (!_finished) {\n      span.setStatus({ code: SPAN_STATUS_ERROR, message: \"deadline_exceeded\" });\n      _finishReason = FINISH_REASON_FINAL_TIMEOUT;\n      span.end();\n    }\n  }, finalTimeout);\n  return span;\n}\nfunction _startIdleSpan(options) {\n  const span = startInactiveSpan(options);\n  _setSpanForScope(getCurrentScope(), span);\n  DEBUG_BUILD && debug.log(\"[Tracing] Started span is an idle span\");\n  return span;\n}\n\nexport { TRACING_DEFAULTS, startIdleSpan };\n//# sourceMappingURL=idleSpan.js.map\n","function debounce(func, wait, options) {\n  let callbackReturnValue;\n  let timerId;\n  let maxTimerId;\n  const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n  const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n  function invokeFunc() {\n    cancelTimers();\n    callbackReturnValue = func();\n    return callbackReturnValue;\n  }\n  function cancelTimers() {\n    timerId !== void 0 && clearTimeout(timerId);\n    maxTimerId !== void 0 && clearTimeout(maxTimerId);\n    timerId = maxTimerId = void 0;\n  }\n  function flush() {\n    if (timerId !== void 0 || maxTimerId !== void 0) {\n      return invokeFunc();\n    }\n    return callbackReturnValue;\n  }\n  function debounced() {\n    if (timerId) {\n      clearTimeout(timerId);\n    }\n    timerId = setTimeoutImpl(invokeFunc, wait);\n    if (maxWait && maxTimerId === void 0) {\n      maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n    }\n    return callbackReturnValue;\n  }\n  debounced.cancel = cancelTimers;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport { debounce };\n//# sourceMappingURL=debounce.js.map\n","import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\nfunction applyScopeDataToEvent(event, data) {\n  const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n  applyDataToEvent(event, data);\n  if (span) {\n    applySpanToEvent(event, span);\n  }\n  applyFingerprintToEvent(event, fingerprint);\n  applyBreadcrumbsToEvent(event, breadcrumbs);\n  applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\nfunction mergeScopeData(data, mergeData) {\n  const {\n    extra,\n    tags,\n    attributes,\n    user,\n    contexts,\n    level,\n    sdkProcessingMetadata,\n    breadcrumbs,\n    fingerprint,\n    eventProcessors,\n    attachments,\n    propagationContext,\n    transactionName,\n    span\n  } = mergeData;\n  mergeAndOverwriteScopeData(data, \"extra\", extra);\n  mergeAndOverwriteScopeData(data, \"tags\", tags);\n  mergeAndOverwriteScopeData(data, \"attributes\", attributes);\n  mergeAndOverwriteScopeData(data, \"user\", user);\n  mergeAndOverwriteScopeData(data, \"contexts\", contexts);\n  data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n  if (level) {\n    data.level = level;\n  }\n  if (transactionName) {\n    data.transactionName = transactionName;\n  }\n  if (span) {\n    data.span = span;\n  }\n  if (breadcrumbs.length) {\n    data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n  }\n  if (fingerprint.length) {\n    data.fingerprint = [...data.fingerprint, ...fingerprint];\n  }\n  if (eventProcessors.length) {\n    data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n  }\n  if (attachments.length) {\n    data.attachments = [...data.attachments, ...attachments];\n  }\n  data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\nfunction mergeAndOverwriteScopeData(data, prop, mergeVal) {\n  data[prop] = merge(data[prop], mergeVal, 1);\n}\nfunction getCombinedScopeData(isolationScope, currentScope) {\n  const scopeData = getGlobalScope().getScopeData();\n  isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n  currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n  return scopeData;\n}\nfunction applyDataToEvent(event, data) {\n  const { extra, tags, user, contexts, level, transactionName } = data;\n  if (Object.keys(extra).length) {\n    event.extra = { ...extra, ...event.extra };\n  }\n  if (Object.keys(tags).length) {\n    event.tags = { ...tags, ...event.tags };\n  }\n  if (Object.keys(user).length) {\n    event.user = { ...user, ...event.user };\n  }\n  if (Object.keys(contexts).length) {\n    event.contexts = { ...contexts, ...event.contexts };\n  }\n  if (level) {\n    event.level = level;\n  }\n  if (transactionName && event.type !== \"transaction\") {\n    event.transaction = transactionName;\n  }\n}\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n  const mergedBreadcrumbs = [...event.breadcrumbs || [], ...breadcrumbs];\n  event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : void 0;\n}\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n  event.sdkProcessingMetadata = {\n    ...event.sdkProcessingMetadata,\n    ...sdkProcessingMetadata\n  };\n}\nfunction applySpanToEvent(event, span) {\n  event.contexts = {\n    trace: spanToTraceContext(span),\n    ...event.contexts\n  };\n  event.sdkProcessingMetadata = {\n    dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n    ...event.sdkProcessingMetadata\n  };\n  const rootSpan = getRootSpan(span);\n  const transactionName = spanToJSON(rootSpan).description;\n  if (transactionName && !event.transaction && event.type === \"transaction\") {\n    event.transaction = transactionName;\n  }\n}\nfunction applyFingerprintToEvent(event, fingerprint) {\n  event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : [];\n  if (fingerprint) {\n    event.fingerprint = event.fingerprint.concat(fingerprint);\n  }\n  if (!event.fingerprint.length) {\n    delete event.fingerprint;\n  }\n}\n\nexport { applyScopeDataToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n","const e=\"ai.citations\",i=\"ai.completion_tokens.used\",t=\"ai.documents\",n=\"ai.finish_reason\",r=\"ai.frequency_penalty\",a=\"ai.function_call\",s=\"ai.generation_id\",o=\"ai.input_messages\",l=\"ai.is_search_required\",p=\"ai.metadata\",c=\"ai.model_id\",u=\"ai.model.provider\",b=\"ai.pipeline.name\",g=\"ai.preamble\",d=\"ai.presence_penalty\",m=\"ai.prompt_tokens.used\",y=\"ai.raw_prompting\",_=\"ai.responses\",h=\"ai.response_format\",v=\"ai.search_queries\",f=\"ai.search_results\",S=\"ai.seed\",E=\"ai.streaming\",T=\"ai.tags\",I=\"ai.temperature\",O=\"ai.texts\",k=\"ai.tools\",A=\"ai.tool_calls\",x=\"ai.top_k\",w=\"ai.top_p\",R=\"ai.total_cost\",N=\"ai.total_tokens.used\",C=\"ai.warnings\",P=\"angular.version\",D=\"app.app_build\",L=\"app.app_identifier\",U=\"app.app_name\",M=\"app.app_start_time\",q=\"app.app_version\",G=\"app.build\",Y=\"app.identifier\",V=\"app.in_foreground\",W=\"app.name\",F=\"app_start_cold\",B=\"app.start_time\",H=\"app_start_type\",z=\"app_start_warm\",K=\"app.version\",j=\"app.vitals.frames.delay.value\",Q=\"app.vitals.frames.frozen.count\",X=\"app.vitals.frames.slow.count\",J=\"app.vitals.frames.total.count\",Z=\"app.vitals.start.cold.value\",$=\"app.vitals.start.prewarmed\",ee=\"app.vitals.start.reason\",ie=\"app.vitals.start.screen\",te=\"app.vitals.start.type\",ne=\"app.vitals.start.warm.value\",re=\"app.vitals.ttfd.value\",ae=\"app.vitals.ttid.value\",se=\"art.gc.blocking_count\",oe=\"art.gc.blocking_time\",le=\"art.gc.pre_oome_count\",pe=\"art.gc.total_count\",ce=\"art.gc.total_time\",ue=\"art.gc.waiting_time\",be=\"art.memory.free\",ge=\"art.memory.free_until_gc\",de=\"art.memory.free_until_oome\",me=\"art.memory.max\",ye=\"art.memory.total\",_e=\"aws.cloudwatch.logs.log_group\",he=\"aws.cloudwatch.logs.log_stream\",ve=\"aws.cloudwatch.logs.url\",fe=\"aws.dynamodb.attribute_definitions\",Se=\"aws.dynamodb.consistent_read\",Ee=\"aws.dynamodb.consumed_capacity\",Te=\"aws.dynamodb.count\",Ie=\"aws.dynamodb.exclusive_start_table\",Oe=\"aws.dynamodb.global_secondary_indexes\",ke=\"aws.dynamodb.global_secondary_index_updates\",Ae=\"aws.dynamodb.index_name\",xe=\"aws.dynamodb.item_collection_metrics\",we=\"aws.dynamodb.limit\",Re=\"aws.dynamodb.local_secondary_indexes\",Ne=\"aws.dynamodb.projection\",Ce=\"aws.dynamodb.provisioned_read_capacity\",Pe=\"aws.dynamodb.provisioned_write_capacity\",De=\"aws.dynamodb.scanned_count\",Le=\"aws.dynamodb.scan_forward\",Ue=\"aws.dynamodb.segment\",Me=\"aws.dynamodb.select\",qe=\"aws.dynamodb.table_count\",Ge=\"aws.dynamodb.table_names\",Ye=\"aws.dynamodb.total_segments\",Ve=\"aws.extended_request_id\",We=\"aws.kinesis.stream_name\",Fe=\"aws.kinesis.stream.name\",Be=\"aws.lambda.aws_request_id\",He=\"aws.lambda.execution_duration_in_millis\",ze=\"aws.lambda.function_name\",Ke=\"aws.lambda.function_version\",je=\"aws.lambda.invoked_arn\",Qe=\"aws.lambda.invoked_function_arn\",Xe=\"aws.lambda.remaining_time_in_millis\",Je=\"aws.log.group.names\",Ze=\"aws.log.stream.names\",$e=\"aws.request.extended_id\",ei=\"aws.request_id\",ii=\"aws.request.id\",ti=\"aws.s3.bucket\",ni=\"aws.secretsmanager.secret.arn\",ri=\"aws.sns.topic.arn\",ai=\"aws.step_functions.activity.arn\",si=\"aws.step_functions.state_machine.arn\",oi=\"blocked_main_thread\",li=\"browser.name\",pi=\"browser.performance.navigation.activation_start\",ci=\"browser.performance.time_origin\",ui=\"browser.report.type\",bi=\"browser.script.invoker\",gi=\"browser.script.invoker_type\",di=\"browser.script.source_char_position\",mi=\"browser.version\",yi=\"browser.web_vital.cls.report_event\",_i=\"browser.web_vital.cls.source.<key>\",hi=\"browser.web_vital.cls.source\",vi=\"browser.web_vital.cls.value\",fi=\"browser.web_vital.fcp.value\",Si=\"browser.web_vital.fp.value\",Ei=\"browser.web_vital.inp.value\",Ti=\"browser.web_vital.lcp.element\",Ii=\"browser.web_vital.lcp.id\",Oi=\"browser.web_vital.lcp.load_time\",ki=\"browser.web_vital.lcp.render_time\",Ai=\"browser.web_vital.lcp.report_event\",xi=\"browser.web_vital.lcp.size\",wi=\"browser.web_vital.lcp.url\",Ri=\"browser.web_vital.lcp.value\",Ni=\"browser.web_vital.ttfb.request_time\",Ci=\"browser.web_vital.ttfb.value\",Pi=\"cache.hit\",Di=\"cache.item_size\",Li=\"cache.key\",Ui=\"cache.operation\",Mi=\"cache.ttl\",qi=\"cache.write\",Gi=\"channel\",Yi=\"client.address\",Vi=\"client.port\",Wi=\"cloudflare.d1.duration\",Fi=\"cloudflare.d1.query_type\",Bi=\"cloudflare.d1.rows_read\",Hi=\"cloudflare.d1.rows_written\",zi=\"cloudflare.durable_object.query.bindings\",Ki=\"cloudflare.durable_object.response.rows_read\",ji=\"cloudflare.durable_object.response.rows_written\",Qi=\"cloudflare.r2.bucket\",Xi=\"cloudflare.r2.operation\",Ji=\"cloudflare.r2.request.delimiter\",Zi=\"cloudflare.r2.request.key\",$i=\"cloudflare.r2.request.part_number\",et=\"cloudflare.r2.request.prefix\",it=\"cloudflare.workflow.attempt\",tt=\"cloudflare.workflow.retries.backoff\",nt=\"cloudflare.workflow.retries.delay\",rt=\"cloudflare.workflow.retries.limit\",at=\"cloudflare.workflow.timeout\",st=\"cloud.account.id\",ot=\"cloud.availability_zone\",lt=\"cloud.platform\",pt=\"cloud.provider\",ct=\"cloud.region\",ut=\"cloud.resource_id\",bt=\"cls\",gt=\"cls.source.<key>\",dt=\"cls.source\",mt=\"code.filepath\",yt=\"code.file.path\",_t=\"code.function\",ht=\"code.function.name\",vt=\"code.lineno\",ft=\"code.line.number\",St=\"code.namespace\",Et=\"connectionType\",Tt=\"connection.rtt\",It=\"culture.calendar\",Ot=\"culture.display_name\",kt=\"culture.is_24_hour_format\",At=\"culture.locale\",xt=\"culture.timezone\",wt=\"db.collection.name\",Rt=\"db.driver.name\",Nt=\"db.name\",Ct=\"db.namespace\",Pt=\"db.operation\",Dt=\"db.operation.batch.size\",Lt=\"db.operation.name\",Ut=\"db.query.parameter.<key>\",Mt=\"db.query.parameter\",qt=\"db.query.summary\",Gt=\"db.query.text\",Yt=\"db.redis.connection\",Vt=\"db.redis.key\",Wt=\"db.redis.parameters\",Ft=\"db.response.status_code\",Bt=\"db.sql.bindings\",Ht=\"db.statement\",zt=\"db.stored_procedure.name\",Kt=\"db.system\",jt=\"db.system.name\",Qt=\"db.user\",Xt=\"deviceMemory\",Jt=\"device.archs\",Zt=\"device.battery_level\",$t=\"device.battery_temperature\",en=\"device.boot_time\",tn=\"device.brand\",nn=\"device.charging\",rn=\"device.chipset\",an=\"device.class\",sn=\"device.connection_type\",on=\"device.cpu_description\",ln=\"device.external_free_storage\",pn=\"device.external_storage_size\",cn=\"device.family\",un=\"device.free_memory\",bn=\"device.free_storage\",gn=\"device.id\",dn=\"device.locale\",mn=\"device.low_memory\",yn=\"device.low_power_mode\",_n=\"device.manufacturer\",hn=\"device.memory.estimated_capacity\",vn=\"device.memory_size\",fn=\"device.model\",Sn=\"device.model_id\",En=\"device.name\",Tn=\"device.online\",In=\"device.orientation\",On=\"device.processor_count\",kn=\"device.processor_frequency\",An=\"device.screen_density\",xn=\"device.screen_dpi\",wn=\"device.screen_height_pixels\",Rn=\"device.screen_width_pixels\",Nn=\"device.simulator\",Cn=\"device.storage_size\",Pn=\"device.thermal_state\",Dn=\"device.timezone\",Ln=\"device.usable_memory\",Un=\"dist\",Mn=\"effectiveConnectionType\",qn=\"environment\",Gn=\"error.type\",Yn=\"event.id\",Vn=\"event.name\",Wn=\"exception.escaped\",Fn=\"exception.message\",Bn=\"exception.stacktrace\",Hn=\"exception.type\",zn=\"faas.coldstart\",Kn=\"faas.cron\",jn=\"faas.duration_in_ms\",Qn=\"faas.entry_point\",Xn=\"faas.execution\",Jn=\"faas.id\",Zn=\"faas.identity\",$n=\"faas.invocation_id\",er=\"faas.invoked_name\",ir=\"faas.invoked_provider\",tr=\"faas.invoked_region\",nr=\"faas.name\",rr=\"faas.time\",ar=\"faas.trigger\",sr=\"faas.version\",or=\"fcp\",lr=\"flag.evaluation.<key>\",pr=\"flag.evaluation\",cr=\"fp\",ur=\"frames.delay\",br=\"frames.frozen\",gr=\"frames_frozen_rate\",dr=\"frames.slow\",mr=\"frames_slow_rate\",yr=\"frames.total\",_r=\"fs_error\",hr=\"gcp.function.context.event_id\",vr=\"gcp.function.context.event_type\",fr=\"gcp.function.context.id\",Sr=\"gcp.function.context.resource\",Er=\"gcp.function.context.source\",Tr=\"gcp.function.context.specversion\",Ir=\"gcp.function.context.time\",Or=\"gcp.function.context.timestamp\",kr=\"gcp.function.context.type\",Ar=\"gcp.project.id\",xr=\"gen_ai.agent.name\",wr=\"gen_ai.context.utilization\",Rr=\"gen_ai.context.window_size\",Nr=\"gen_ai.conversation.id\",Cr=\"gen_ai.cost.cache_creation.input_tokens\",Pr=\"gen_ai.cost.cache_read.input_tokens\",Dr=\"gen_ai.cost.input_tokens\",Lr=\"gen_ai.cost.output_tokens\",Ur=\"gen_ai.cost.reasoning.output_tokens\",Mr=\"gen_ai.cost.total_tokens\",qr=\"gen_ai.embeddings.input\",Gr=\"gen_ai.function_id\",Yr=\"gen_ai.input.messages\",Vr=\"gen_ai.operation.name\",Wr=\"gen_ai.operation.type\",Fr=\"gen_ai.output.messages\",Br=\"gen_ai.pipeline.name\",Hr=\"gen_ai.prompt\",zr=\"gen_ai.prompt.name\",Kr=\"gen_ai.provider.name\",jr=\"gen_ai.request.available_tools\",Qr=\"gen_ai.request.frequency_penalty\",Xr=\"gen_ai.request.max_tokens\",Jr=\"gen_ai.request.messages\",Zr=\"gen_ai.request.model\",$r=\"gen_ai.request.presence_penalty\",ea=\"gen_ai.request.reasoning_effort\",ia=\"gen_ai.request.seed\",ta=\"gen_ai.request.stop_sequences\",na=\"gen_ai.request.temperature\",ra=\"gen_ai.request.top_k\",aa=\"gen_ai.request.top_p\",sa=\"gen_ai.response.finish_reasons\",oa=\"gen_ai.response.id\",la=\"gen_ai.response.model\",pa=\"gen_ai.response.streaming\",ca=\"gen_ai.response.text\",ua=\"gen_ai.response.time_to_first_chunk\",ba=\"gen_ai.response.time_to_first_token\",ga=\"gen_ai.response.tokens_per_second\",da=\"gen_ai.response.tool_calls\",ma=\"gen_ai.system\",ya=\"gen_ai.system_instructions\",_a=\"gen_ai.system.message\",ha=\"gen_ai.tool.call.arguments\",va=\"gen_ai.tool.call.result\",fa=\"gen_ai.tool.definitions\",Sa=\"gen_ai.tool.description\",Ea=\"gen_ai.tool.input\",Ta=\"gen_ai.tool.message\",Ia=\"gen_ai.tool.name\",Oa=\"gen_ai.tool.output\",ka=\"gen_ai.tool.type\",Aa=\"gen_ai.usage.cache_creation.input_tokens\",xa=\"gen_ai.usage.cache_read.input_tokens\",wa=\"gen_ai.usage.completion_tokens\",Ra=\"gen_ai.usage.input_tokens\",Na=\"gen_ai.usage.input_tokens.cached\",Ca=\"gen_ai.usage.input_tokens.cache_write\",Pa=\"gen_ai.usage.output_tokens\",Da=\"gen_ai.usage.output_tokens.reasoning\",La=\"gen_ai.usage.prompt_tokens\",Ua=\"gen_ai.usage.reasoning.output_tokens\",Ma=\"gen_ai.usage.total_tokens\",qa=\"graphql.document\",Ga=\"graphql.operation.name\",Ya=\"graphql.operation.type\",Va=\"hardwareConcurrency\",Wa=\"http.client_ip\",Fa=\"http.decoded_response_content_length\",Ba=\"http.flavor\",Ha=\"http.fragment\",za=\"http.host\",Ka=\"http.method\",ja=\"http.query\",Qa=\"http.request.body.data\",Xa=\"http.request.connection_end\",Ja=\"http.request.connect_start\",Za=\"http.request.domain_lookup_end\",$a=\"http.request.domain_lookup_start\",es=\"http.request.fetch_start\",is=\"http.request.header.<key>\",ts=\"http.request.header\",ns=\"http.request.method\",rs=\"http.request_method\",as=\"http.request.redirect_end\",ss=\"http.request.redirect_start\",os=\"http.request.request_start\",ls=\"http.request.resend_count\",ps=\"http.request.response_end\",cs=\"http.request.response_start\",us=\"http.request.same_origin\",bs=\"http.request.secure_connection_start\",gs=\"http.request.time_to_first_byte\",ds=\"http.request.worker_start\",ms=\"http.response.body.size\",ys=\"http.response_content_length\",_s=\"http.response.header.content-length\",hs=\"http.response.header.<key>\",vs=\"http.response.header\",fs=\"http.response.size\",Ss=\"http.response.status_code\",Es=\"http.response_transfer_size\",Ts=\"http.route\",Is=\"http.scheme\",Os=\"http.server_name\",ks=\"http.server.request.time_in_queue\",As=\"http.status_code\",xs=\"http.target\",ws=\"http.url\",Rs=\"http.user_agent\",Ns=\"id\",Cs=\"inp\",Ps=\"jsonrpc.protocol.version\",Ds=\"jsonrpc.request.id\",Ls=\"jvm.gc.action\",Us=\"jvm.gc.name\",Ms=\"jvm.memory.pool.name\",qs=\"jvm.memory.type\",Gs=\"jvm.thread.daemon\",Ys=\"jvm.thread.state\",Vs=\"koa.name\",Ws=\"koa.type\",Fs=\"lcp\",Bs=\"lcp.element\",Hs=\"lcp.id\",zs=\"lcp.loadTime\",Ks=\"lcp.renderTime\",js=\"lcp.size\",Qs=\"lcp.url\",Xs=\"logger.name\",Js=\"mcp.cancelled.reason\",Zs=\"mcp.cancelled.request_id\",$s=\"mcp.client.name\",eo=\"mcp.client.title\",io=\"mcp.client.version\",to=\"mcp.lifecycle.phase\",no=\"mcp.logging.data_type\",ro=\"mcp.logging.level\",ao=\"mcp.logging.logger\",so=\"mcp.logging.message\",oo=\"mcp.method.name\",lo=\"mcp.progress.current\",po=\"mcp.progress.message\",co=\"mcp.progress.percentage\",uo=\"mcp.progress.token\",bo=\"mcp.progress.total\",go=\"mcp.prompt.name\",mo=\"mcp.prompt.result.description\",yo=\"mcp.prompt.result.message_content\",_o=\"mcp.prompt.result.message_count\",ho=\"mcp.prompt.result.message_role\",vo=\"mcp.protocol.ready\",fo=\"mcp.protocol.version\",So=\"mcp.request.argument.<key>\",Eo=\"mcp.request.argument\",To=\"mcp.request.argument.name\",Io=\"mcp.request.argument.uri\",Oo=\"mcp.request.id\",ko=\"mcp.resource.protocol\",Ao=\"mcp.resource.uri\",xo=\"mcp.server.name\",wo=\"mcp.server.title\",Ro=\"mcp.server.version\",No=\"mcp.session.id\",Co=\"mcp.tool.name\",Po=\"mcp.tool.result.content\",Do=\"mcp.tool.result.content_count\",Lo=\"mcp.tool.result.is_error\",Uo=\"mcp.transport\",Mo=\"mdc.<key>\",qo=\"mdc\",Go=\"messaging.batch.message_count\",Yo=\"messaging.destination\",Vo=\"messaging.destination.connection\",Wo=\"messaging.destination.name\",Fo=\"messaging.message.body.size\",Bo=\"messaging.message.conversation_id\",Ho=\"messaging.message.envelope.size\",zo=\"messaging.message.id\",Ko=\"messaging.message.receive.latency\",jo=\"messaging.message.retry.count\",Qo=\"messaging.operation.name\",Xo=\"messaging.operation.type\",Jo=\"messaging.rabbitmq.destination.routing_key\",Zo=\"messaging.system\",$o=\"method\",el=\"middleware.name\",il=\"navigation.origin\",tl=\"navigation.route.id\",nl=\"navigation.type\",rl=\"nel.elapsed_time\",al=\"nel.phase\",sl=\"nel.referrer\",ol=\"nel.sampling_function\",ll=\"nel.type\",pl=\"network.connection.effective_type\",cl=\"network.connection.rtt\",ul=\"network.connection.type\",bl=\"network.local.address\",gl=\"network.local.port\",dl=\"network.peer.address\",ml=\"network.peer.port\",yl=\"network.protocol.name\",_l=\"network.protocol.version\",hl=\"network.transport\",vl=\"network.type\",fl=\"net.host.ip\",Sl=\"net.host.name\",El=\"net.host.port\",Tl=\"net.peer.ip\",Il=\"net.peer.name\",Ol=\"net.peer.port\",kl=\"net.protocol.name\",Al=\"net.protocol.version\",xl=\"net.sock.family\",wl=\"net.sock.host.addr\",Rl=\"net.sock.host.port\",Nl=\"net.sock.peer.addr\",Cl=\"net.sock.peer.name\",Pl=\"net.sock.peer.port\",Dl=\"net.transport\",Ll=\"os.build\",Ul=\"os.build_id\",Ml=\"os.description\",ql=\"os.kernel_version\",Gl=\"os.name\",Yl=\"os.raw_description\",Vl=\"os.rooted\",Wl=\"os.theme\",Fl=\"os.type\",Bl=\"os.version\",Hl=\"otel.kind\",zl=\"otel.scope.name\",Kl=\"otel.scope.version\",jl=\"otel.status_code\",Ql=\"otel.status_description\",Xl=\"params.<key>\",Jl=\"params\",Zl=\"performance.activationStart\",$l=\"performance.timeOrigin\",ep=\"previous_route\",ip=\"process.command_args\",tp=\"process.executable.name\",np=\"process.pid\",rp=\"process.runtime.description\",ap=\"process.runtime.engine.name\",sp=\"process.runtime.engine.version\",op=\"process.runtime.name\",lp=\"process.runtime.version\",pp=\"query.<key>\",cp=\"query\",up=\"react.version\",bp=\"release\",gp=\"remix.action_form_data.<key>\",dp=\"remix.action_form_data\",mp=\"replay_id\",yp=\"resource.deployment.environment\",_p=\"resource.deployment.environment.name\",hp=\"resource.render_blocking_status\",vp=\"route\",fp=\"rpc.grpc.status_code\",Sp=\"rpc.method\",Ep=\"rpc.response.status_code\",Tp=\"rpc.service\",Ip=\"rpc.system\",Op=\"rpc.system.name\",kp=\"runtime.build\",Ap=\"runtime.name\",xp=\"runtime.raw_description\",wp=\"runtime.version\",Rp=\"score.<key>\",Np=\"score\",Cp=\"score.ratio.<key>\",Pp=\"score.ratio\",Dp=\"score.total\",Lp=\"score.weight.<key>\",Up=\"score.weight\",Mp=\"sentry.action\",qp=\"sentry.browser.name\",Gp=\"sentry.browser.version\",Yp=\"sentry.cancellation_reason\",Vp=\"sentry.category\",Wp=\"sentry.client_sample_rate\",Fp=\"sentry.description\",Bp=\"sentry.dist\",Hp=\"sentry.domain\",zp=\"sentry.dsc.environment\",Kp=\"sentry.dsc.project_id\",jp=\"sentry.dsc.public_key\",Qp=\"sentry.dsc.release\",Xp=\"sentry.dsc.sampled\",Jp=\"sentry.dsc.sample_rate\",Zp=\"sentry.dsc.trace_id\",$p=\"sentry.dsc.transaction\",ec=\"sentry.environment\",ic=\"sentry.exclusive_time\",tc=\"sentry.graphql.operation\",nc=\"sentry.group\",rc=\"sentry.http.prefetch\",ac=\"sentry.idle_span_finish_reason\",sc=\"sentry.is_remote\",oc=\"sentry.kind\",lc=\"sentry.main_thread\",pc=\"sentry.message.parameter.<key>\",cc=\"sentry.message.template\",uc=\"sentry.metric.source\",bc=\"sentry.mobile\",gc=\"sentry.module.<key>\",dc=\"sentry.module\",mc=\"sentry.nextjs.ssr.function.route\",yc=\"sentry.nextjs.ssr.function.type\",_c=\"sentry.normalized_db_query\",hc=\"sentry.normalized_db_query.hash\",vc=\"sentry.normalized_description\",fc=\"sentry.observed_timestamp_nanos\",Sc=\"sentry.op\",Ec=\"sentry.origin\",Tc=\"sentry.platform\",Ic=\"sentry.profiler_id\",Oc=\"sentry.profile_id\",kc=\"sentry.release\",Ac=\"sentry.replay_id\",xc=\"sentry.replay_is_buffering\",wc=\"sentry.report_event\",Rc=\"sentry.sdk.integrations\",Nc=\"sentry.sdk.name\",Cc=\"sentry.sdk.version\",Pc=\"sentry.segment.id\",Dc=\"sentry.segment_id\",Lc=\"sentry.segment.name\",Uc=\"sentry.server_sample_rate\",Mc=\"sentry.source\",qc=\"sentry.span.source\",Gc=\"sentry.status\",Yc=\"sentry.status_code\",Vc=\"sentry.status.message\",Wc=\"sentry.sveltekit.navigation.from\",Fc=\"sentry.sveltekit.navigation.to\",Bc=\"sentry.sveltekit.navigation.type\",Hc=\"sentry.thread.id\",zc=\"sentry.timestamp.sequence\",Kc=\"sentry.trace_lifecycle\",jc=\"sentry.trace.parent_span_id\",Qc=\"sentry.trace.status\",Xc=\"sentry.transaction\",Jc=\"sentry.user.email\",Zc=\"sentry.user.geo.city\",$c=\"sentry.user.geo.country_code\",eu=\"sentry.user.geo.region\",iu=\"sentry.user.geo.subdivision\",tu=\"sentry.user.id\",nu=\"sentry.user.ip\",ru=\"sentry.user.username\",au=\"server.address\",su=\"server_name\",ou=\"server.port\",lu=\"service.name\",pu=\"service.version\",cu=\"session.id\",uu=\"stall_percentage\",bu=\"stall_total_time\",gu=\"state.type\",du=\"thread.id\",mu=\"thread.name\",yu=\"timber.tag\",_u=\"time_to_full_display\",hu=\"time_to_initial_display\",vu=\"transaction\",fu=\"trpc.procedure_path\",Su=\"trpc.procedure_type\",Eu=\"ttfb\",Tu=\"ttfb.requestTime\",Iu=\"type\",Ou=\"ui.component_name\",ku=\"ui.contributes_to_ttfd\",Au=\"ui.contributes_to_ttid\",xu=\"ui.element.height\",wu=\"ui.element.id\",Ru=\"ui.element.identifier\",Nu=\"ui.element.load_time\",Cu=\"ui.element.paint_type\",Pu=\"ui.element.render_time\",Du=\"ui.element.type\",Lu=\"ui.element.url\",Uu=\"ui.element.width\",Mu=\"url\",qu=\"url.domain\",Gu=\"url.fragment\",Yu=\"url.full\",Vu=\"url.path\",Wu=\"url.path.parameter.<key>\",Fu=\"url.path.parameter\",Bu=\"url.port\",Hu=\"url.query\",zu=\"url.same_origin\",Ku=\"url.scheme\",ju=\"url.template\",Qu=\"user_agent.original\",Xu=\"user.email\",Ju=\"user.full_name\",Zu=\"user.geo.city\",$u=\"user.geo.country_code\",eb=\"user.geo.region\",ib=\"user.geo.subdivision\",tb=\"user.hash\",nb=\"user.id\",rb=\"user.ip_address\",ab=\"user.name\",sb=\"user.roles\",ob=\"vercel.branch\",lb=\"vercel.build_id\",pb=\"vercel.deployment_id\",cb=\"vercel.destination\",ub=\"vercel.edge_type\",bb=\"vercel.entrypoint\",gb=\"vercel.execution_region\",db=\"vercel.id\",mb=\"vercel.ja3_digest\",yb=\"vercel.ja4_digest\",_b=\"vercel.log_type\",hb=\"vercel.path\",vb=\"vercel.project_id\",fb=\"vercel.project_name\",Sb=\"vercel.proxy.cache_id\",Eb=\"vercel.proxy.client_ip\",Tb=\"vercel.proxy.host\",Ib=\"vercel.proxy.lambda_region\",Ob=\"vercel.proxy.method\",kb=\"vercel.proxy.path\",Ab=\"vercel.proxy.path_type\",xb=\"vercel.proxy.path_type_variant\",wb=\"vercel.proxy.referer\",Rb=\"vercel.proxy.region\",Nb=\"vercel.proxy.response_byte_size\",Cb=\"vercel.proxy.scheme\",Pb=\"vercel.proxy.status_code\",Db=\"vercel.proxy.timestamp\",Lb=\"vercel.proxy.user_agent\",Ub=\"vercel.proxy.vercel_cache\",Mb=\"vercel.proxy.vercel_id\",qb=\"vercel.proxy.waf_action\",Gb=\"vercel.proxy.waf_rule_id\",Yb=\"vercel.request_id\",Vb=\"vercel.source\",Wb=\"vercel.status_code\",Fb={\"ai.citations\":\"string[]\",\"ai.completion_tokens.used\":\"integer\",\"ai.documents\":\"string[]\",\"ai.finish_reason\":\"string\",\"ai.frequency_penalty\":\"double\",\"ai.function_call\":\"string\",\"ai.generation_id\":\"string\",\"ai.input_messages\":\"string\",\"ai.is_search_required\":\"boolean\",\"ai.metadata\":\"string\",\"ai.model_id\":\"string\",\"ai.model.provider\":\"string\",\"ai.pipeline.name\":\"string\",\"ai.preamble\":\"string\",\"ai.presence_penalty\":\"double\",\"ai.prompt_tokens.used\":\"integer\",\"ai.raw_prompting\":\"boolean\",\"ai.responses\":\"string[]\",\"ai.response_format\":\"string\",\"ai.search_queries\":\"string[]\",\"ai.search_results\":\"string[]\",\"ai.seed\":\"string\",\"ai.streaming\":\"boolean\",\"ai.tags\":\"string\",\"ai.temperature\":\"double\",\"ai.texts\":\"string[]\",\"ai.tools\":\"string[]\",\"ai.tool_calls\":\"string[]\",\"ai.top_k\":\"integer\",\"ai.top_p\":\"double\",\"ai.total_cost\":\"double\",\"ai.total_tokens.used\":\"integer\",\"ai.warnings\":\"string[]\",\"angular.version\":\"string\",\"app.app_build\":\"string\",\"app.app_identifier\":\"string\",\"app.app_name\":\"string\",\"app.app_start_time\":\"string\",\"app.app_version\":\"string\",\"app.build\":\"string\",\"app.identifier\":\"string\",\"app.in_foreground\":\"boolean\",\"app.name\":\"string\",app_start_cold:\"double\",\"app.start_time\":\"string\",app_start_type:\"string\",app_start_warm:\"double\",\"app.version\":\"string\",\"app.vitals.frames.delay.value\":\"integer\",\"app.vitals.frames.frozen.count\":\"integer\",\"app.vitals.frames.slow.count\":\"integer\",\"app.vitals.frames.total.count\":\"integer\",\"app.vitals.start.cold.value\":\"double\",\"app.vitals.start.prewarmed\":\"boolean\",\"app.vitals.start.reason\":\"string\",\"app.vitals.start.screen\":\"string\",\"app.vitals.start.type\":\"string\",\"app.vitals.start.warm.value\":\"double\",\"app.vitals.ttfd.value\":\"double\",\"app.vitals.ttid.value\":\"double\",\"art.gc.blocking_count\":\"integer\",\"art.gc.blocking_time\":\"double\",\"art.gc.pre_oome_count\":\"integer\",\"art.gc.total_count\":\"integer\",\"art.gc.total_time\":\"double\",\"art.gc.waiting_time\":\"double\",\"art.memory.free\":\"integer\",\"art.memory.free_until_gc\":\"integer\",\"art.memory.free_until_oome\":\"integer\",\"art.memory.max\":\"integer\",\"art.memory.total\":\"integer\",\"aws.cloudwatch.logs.log_group\":\"string\",\"aws.cloudwatch.logs.log_stream\":\"string\",\"aws.cloudwatch.logs.url\":\"string\",\"aws.dynamodb.attribute_definitions\":\"string[]\",\"aws.dynamodb.consistent_read\":\"boolean\",\"aws.dynamodb.consumed_capacity\":\"string[]\",\"aws.dynamodb.count\":\"integer\",\"aws.dynamodb.exclusive_start_table\":\"string\",\"aws.dynamodb.global_secondary_indexes\":\"string[]\",\"aws.dynamodb.global_secondary_index_updates\":\"string[]\",\"aws.dynamodb.index_name\":\"string\",\"aws.dynamodb.item_collection_metrics\":\"string\",\"aws.dynamodb.limit\":\"integer\",\"aws.dynamodb.local_secondary_indexes\":\"string[]\",\"aws.dynamodb.projection\":\"string\",\"aws.dynamodb.provisioned_read_capacity\":\"double\",\"aws.dynamodb.provisioned_write_capacity\":\"double\",\"aws.dynamodb.scanned_count\":\"integer\",\"aws.dynamodb.scan_forward\":\"boolean\",\"aws.dynamodb.segment\":\"integer\",\"aws.dynamodb.select\":\"string\",\"aws.dynamodb.table_count\":\"integer\",\"aws.dynamodb.table_names\":\"string[]\",\"aws.dynamodb.total_segments\":\"integer\",\"aws.extended_request_id\":\"string\",\"aws.kinesis.stream_name\":\"string\",\"aws.kinesis.stream.name\":\"string\",\"aws.lambda.aws_request_id\":\"string\",\"aws.lambda.execution_duration_in_millis\":\"double\",\"aws.lambda.function_name\":\"string\",\"aws.lambda.function_version\":\"string\",\"aws.lambda.invoked_arn\":\"string\",\"aws.lambda.invoked_function_arn\":\"string\",\"aws.lambda.remaining_time_in_millis\":\"double\",\"aws.log.group.names\":\"string[]\",\"aws.log.stream.names\":\"string[]\",\"aws.request.extended_id\":\"string\",\"aws.request_id\":\"string\",\"aws.request.id\":\"string\",\"aws.s3.bucket\":\"string\",\"aws.secretsmanager.secret.arn\":\"string\",\"aws.sns.topic.arn\":\"string\",\"aws.step_functions.activity.arn\":\"string\",\"aws.step_functions.state_machine.arn\":\"string\",blocked_main_thread:\"boolean\",\"browser.name\":\"string\",\"browser.performance.navigation.activation_start\":\"double\",\"browser.performance.time_origin\":\"double\",\"browser.report.type\":\"string\",\"browser.script.invoker\":\"string\",\"browser.script.invoker_type\":\"string\",\"browser.script.source_char_position\":\"integer\",\"browser.version\":\"string\",\"browser.web_vital.cls.report_event\":\"string\",\"browser.web_vital.cls.source.<key>\":\"string\",\"browser.web_vital.cls.value\":\"double\",\"browser.web_vital.fcp.value\":\"double\",\"browser.web_vital.fp.value\":\"double\",\"browser.web_vital.inp.value\":\"double\",\"browser.web_vital.lcp.element\":\"string\",\"browser.web_vital.lcp.id\":\"string\",\"browser.web_vital.lcp.load_time\":\"integer\",\"browser.web_vital.lcp.render_time\":\"integer\",\"browser.web_vital.lcp.report_event\":\"string\",\"browser.web_vital.lcp.size\":\"integer\",\"browser.web_vital.lcp.url\":\"string\",\"browser.web_vital.lcp.value\":\"double\",\"browser.web_vital.ttfb.request_time\":\"double\",\"browser.web_vital.ttfb.value\":\"double\",\"cache.hit\":\"boolean\",\"cache.item_size\":\"integer\",\"cache.key\":\"string[]\",\"cache.operation\":\"string\",\"cache.ttl\":\"integer\",\"cache.write\":\"boolean\",channel:\"string\",\"client.address\":\"string\",\"client.port\":\"integer\",\"cloudflare.d1.duration\":\"integer\",\"cloudflare.d1.query_type\":\"string\",\"cloudflare.d1.rows_read\":\"integer\",\"cloudflare.d1.rows_written\":\"integer\",\"cloudflare.durable_object.query.bindings\":\"integer\",\"cloudflare.durable_object.response.rows_read\":\"integer\",\"cloudflare.durable_object.response.rows_written\":\"integer\",\"cloudflare.r2.bucket\":\"string\",\"cloudflare.r2.operation\":\"string\",\"cloudflare.r2.request.delimiter\":\"string\",\"cloudflare.r2.request.key\":\"string\",\"cloudflare.r2.request.part_number\":\"integer\",\"cloudflare.r2.request.prefix\":\"string\",\"cloudflare.workflow.attempt\":\"integer\",\"cloudflare.workflow.retries.backoff\":\"string\",\"cloudflare.workflow.retries.delay\":\"string\",\"cloudflare.workflow.retries.limit\":\"integer\",\"cloudflare.workflow.timeout\":\"string\",\"cloud.account.id\":\"string\",\"cloud.availability_zone\":\"string\",\"cloud.platform\":\"string\",\"cloud.provider\":\"string\",\"cloud.region\":\"string\",\"cloud.resource_id\":\"string\",cls:\"double\",\"cls.source.<key>\":\"string\",\"code.filepath\":\"string\",\"code.file.path\":\"string\",\"code.function\":\"string\",\"code.function.name\":\"string\",\"code.lineno\":\"integer\",\"code.line.number\":\"integer\",\"code.namespace\":\"string\",connectionType:\"string\",\"connection.rtt\":\"integer\",\"culture.calendar\":\"string\",\"culture.display_name\":\"string\",\"culture.is_24_hour_format\":\"boolean\",\"culture.locale\":\"string\",\"culture.timezone\":\"string\",\"db.collection.name\":\"string\",\"db.driver.name\":\"string\",\"db.name\":\"string\",\"db.namespace\":\"string\",\"db.operation\":\"string\",\"db.operation.batch.size\":\"integer\",\"db.operation.name\":\"string\",\"db.query.parameter.<key>\":\"string\",\"db.query.summary\":\"string\",\"db.query.text\":\"string\",\"db.redis.connection\":\"string\",\"db.redis.key\":\"string\",\"db.redis.parameters\":\"string[]\",\"db.response.status_code\":\"string\",\"db.sql.bindings\":\"string[]\",\"db.statement\":\"string\",\"db.stored_procedure.name\":\"string\",\"db.system\":\"string\",\"db.system.name\":\"string\",\"db.user\":\"string\",deviceMemory:\"string\",\"device.archs\":\"string[]\",\"device.battery_level\":\"double\",\"device.battery_temperature\":\"double\",\"device.boot_time\":\"string\",\"device.brand\":\"string\",\"device.charging\":\"boolean\",\"device.chipset\":\"string\",\"device.class\":\"string\",\"device.connection_type\":\"string\",\"device.cpu_description\":\"string\",\"device.external_free_storage\":\"integer\",\"device.external_storage_size\":\"integer\",\"device.family\":\"string\",\"device.free_memory\":\"integer\",\"device.free_storage\":\"integer\",\"device.id\":\"string\",\"device.locale\":\"string\",\"device.low_memory\":\"boolean\",\"device.low_power_mode\":\"boolean\",\"device.manufacturer\":\"string\",\"device.memory.estimated_capacity\":\"integer\",\"device.memory_size\":\"integer\",\"device.model\":\"string\",\"device.model_id\":\"string\",\"device.name\":\"string\",\"device.online\":\"boolean\",\"device.orientation\":\"string\",\"device.processor_count\":\"integer\",\"device.processor_frequency\":\"double\",\"device.screen_density\":\"double\",\"device.screen_dpi\":\"integer\",\"device.screen_height_pixels\":\"integer\",\"device.screen_width_pixels\":\"integer\",\"device.simulator\":\"boolean\",\"device.storage_size\":\"integer\",\"device.thermal_state\":\"string\",\"device.timezone\":\"string\",\"device.usable_memory\":\"integer\",dist:\"string\",effectiveConnectionType:\"string\",environment:\"string\",\"error.type\":\"string\",\"event.id\":\"integer\",\"event.name\":\"string\",\"exception.escaped\":\"boolean\",\"exception.message\":\"string\",\"exception.stacktrace\":\"string\",\"exception.type\":\"string\",\"faas.coldstart\":\"boolean\",\"faas.cron\":\"string\",\"faas.duration_in_ms\":\"integer\",\"faas.entry_point\":\"string\",\"faas.execution\":\"string\",\"faas.id\":\"string\",\"faas.identity\":\"string\",\"faas.invocation_id\":\"string\",\"faas.invoked_name\":\"string\",\"faas.invoked_provider\":\"string\",\"faas.invoked_region\":\"string\",\"faas.name\":\"string\",\"faas.time\":\"string\",\"faas.trigger\":\"string\",\"faas.version\":\"string\",fcp:\"double\",\"flag.evaluation.<key>\":\"boolean\",fp:\"double\",\"frames.delay\":\"integer\",\"frames.frozen\":\"integer\",frames_frozen_rate:\"double\",\"frames.slow\":\"integer\",frames_slow_rate:\"double\",\"frames.total\":\"integer\",fs_error:\"string\",\"gcp.function.context.event_id\":\"string\",\"gcp.function.context.event_type\":\"string\",\"gcp.function.context.id\":\"string\",\"gcp.function.context.resource\":\"string\",\"gcp.function.context.source\":\"string\",\"gcp.function.context.specversion\":\"string\",\"gcp.function.context.time\":\"string\",\"gcp.function.context.timestamp\":\"string\",\"gcp.function.context.type\":\"string\",\"gcp.project.id\":\"string\",\"gen_ai.agent.name\":\"string\",\"gen_ai.context.utilization\":\"double\",\"gen_ai.context.window_size\":\"integer\",\"gen_ai.conversation.id\":\"string\",\"gen_ai.cost.cache_creation.input_tokens\":\"double\",\"gen_ai.cost.cache_read.input_tokens\":\"double\",\"gen_ai.cost.input_tokens\":\"double\",\"gen_ai.cost.output_tokens\":\"double\",\"gen_ai.cost.reasoning.output_tokens\":\"double\",\"gen_ai.cost.total_tokens\":\"double\",\"gen_ai.embeddings.input\":\"string\",\"gen_ai.function_id\":\"string\",\"gen_ai.input.messages\":\"string\",\"gen_ai.operation.name\":\"string\",\"gen_ai.operation.type\":\"string\",\"gen_ai.output.messages\":\"string\",\"gen_ai.pipeline.name\":\"string\",\"gen_ai.prompt\":\"string\",\"gen_ai.prompt.name\":\"string\",\"gen_ai.provider.name\":\"string\",\"gen_ai.request.available_tools\":\"string\",\"gen_ai.request.frequency_penalty\":\"double\",\"gen_ai.request.max_tokens\":\"integer\",\"gen_ai.request.messages\":\"string\",\"gen_ai.request.model\":\"string\",\"gen_ai.request.presence_penalty\":\"double\",\"gen_ai.request.reasoning_effort\":\"string\",\"gen_ai.request.seed\":\"string\",\"gen_ai.request.stop_sequences\":\"string[]\",\"gen_ai.request.temperature\":\"double\",\"gen_ai.request.top_k\":\"integer\",\"gen_ai.request.top_p\":\"double\",\"gen_ai.response.finish_reasons\":\"string\",\"gen_ai.response.id\":\"string\",\"gen_ai.response.model\":\"string\",\"gen_ai.response.streaming\":\"boolean\",\"gen_ai.response.text\":\"string\",\"gen_ai.response.time_to_first_chunk\":\"double\",\"gen_ai.response.time_to_first_token\":\"double\",\"gen_ai.response.tokens_per_second\":\"double\",\"gen_ai.response.tool_calls\":\"string\",\"gen_ai.system\":\"string\",\"gen_ai.system_instructions\":\"string\",\"gen_ai.system.message\":\"string\",\"gen_ai.tool.call.arguments\":\"string\",\"gen_ai.tool.call.result\":\"string\",\"gen_ai.tool.definitions\":\"string\",\"gen_ai.tool.description\":\"string\",\"gen_ai.tool.input\":\"string\",\"gen_ai.tool.message\":\"string\",\"gen_ai.tool.name\":\"string\",\"gen_ai.tool.output\":\"string\",\"gen_ai.tool.type\":\"string\",\"gen_ai.usage.cache_creation.input_tokens\":\"integer\",\"gen_ai.usage.cache_read.input_tokens\":\"integer\",\"gen_ai.usage.completion_tokens\":\"integer\",\"gen_ai.usage.input_tokens\":\"integer\",\"gen_ai.usage.input_tokens.cached\":\"integer\",\"gen_ai.usage.input_tokens.cache_write\":\"integer\",\"gen_ai.usage.output_tokens\":\"integer\",\"gen_ai.usage.output_tokens.reasoning\":\"integer\",\"gen_ai.usage.prompt_tokens\":\"integer\",\"gen_ai.usage.reasoning.output_tokens\":\"integer\",\"gen_ai.usage.total_tokens\":\"integer\",\"graphql.document\":\"string\",\"graphql.operation.name\":\"string\",\"graphql.operation.type\":\"string\",hardwareConcurrency:\"string\",\"http.client_ip\":\"string\",\"http.decoded_response_content_length\":\"integer\",\"http.flavor\":\"string\",\"http.fragment\":\"string\",\"http.host\":\"string\",\"http.method\":\"string\",\"http.query\":\"string\",\"http.request.body.data\":\"string\",\"http.request.connection_end\":\"double\",\"http.request.connect_start\":\"double\",\"http.request.domain_lookup_end\":\"double\",\"http.request.domain_lookup_start\":\"double\",\"http.request.fetch_start\":\"double\",\"http.request.header.<key>\":\"string[]\",\"http.request.method\":\"string\",\"http.request_method\":\"string\",\"http.request.redirect_end\":\"double\",\"http.request.redirect_start\":\"double\",\"http.request.request_start\":\"double\",\"http.request.resend_count\":\"integer\",\"http.request.response_end\":\"double\",\"http.request.response_start\":\"double\",\"http.request.same_origin\":\"boolean\",\"http.request.secure_connection_start\":\"double\",\"http.request.time_to_first_byte\":\"double\",\"http.request.worker_start\":\"double\",\"http.response.body.size\":\"integer\",\"http.response_content_length\":\"integer\",\"http.response.header.content-length\":\"string\",\"http.response.header.<key>\":\"string[]\",\"http.response.size\":\"integer\",\"http.response.status_code\":\"integer\",\"http.response_transfer_size\":\"integer\",\"http.route\":\"string\",\"http.scheme\":\"string\",\"http.server_name\":\"string\",\"http.server.request.time_in_queue\":\"double\",\"http.status_code\":\"integer\",\"http.target\":\"string\",\"http.url\":\"string\",\"http.user_agent\":\"string\",id:\"string\",inp:\"double\",\"jsonrpc.protocol.version\":\"string\",\"jsonrpc.request.id\":\"string\",\"jvm.gc.action\":\"string\",\"jvm.gc.name\":\"string\",\"jvm.memory.pool.name\":\"string\",\"jvm.memory.type\":\"string\",\"jvm.thread.daemon\":\"boolean\",\"jvm.thread.state\":\"string\",\"koa.name\":\"string\",\"koa.type\":\"string\",lcp:\"double\",\"lcp.element\":\"string\",\"lcp.id\":\"string\",\"lcp.loadTime\":\"integer\",\"lcp.renderTime\":\"integer\",\"lcp.size\":\"integer\",\"lcp.url\":\"string\",\"logger.name\":\"string\",\"mcp.cancelled.reason\":\"string\",\"mcp.cancelled.request_id\":\"string\",\"mcp.client.name\":\"string\",\"mcp.client.title\":\"string\",\"mcp.client.version\":\"string\",\"mcp.lifecycle.phase\":\"string\",\"mcp.logging.data_type\":\"string\",\"mcp.logging.level\":\"string\",\"mcp.logging.logger\":\"string\",\"mcp.logging.message\":\"string\",\"mcp.method.name\":\"string\",\"mcp.progress.current\":\"integer\",\"mcp.progress.message\":\"string\",\"mcp.progress.percentage\":\"double\",\"mcp.progress.token\":\"string\",\"mcp.progress.total\":\"integer\",\"mcp.prompt.name\":\"string\",\"mcp.prompt.result.description\":\"string\",\"mcp.prompt.result.message_content\":\"string\",\"mcp.prompt.result.message_count\":\"integer\",\"mcp.prompt.result.message_role\":\"string\",\"mcp.protocol.ready\":\"integer\",\"mcp.protocol.version\":\"string\",\"mcp.request.argument.<key>\":\"string\",\"mcp.request.argument.name\":\"string\",\"mcp.request.argument.uri\":\"string\",\"mcp.request.id\":\"string\",\"mcp.resource.protocol\":\"string\",\"mcp.resource.uri\":\"string\",\"mcp.server.name\":\"string\",\"mcp.server.title\":\"string\",\"mcp.server.version\":\"string\",\"mcp.session.id\":\"string\",\"mcp.tool.name\":\"string\",\"mcp.tool.result.content\":\"string\",\"mcp.tool.result.content_count\":\"integer\",\"mcp.tool.result.is_error\":\"boolean\",\"mcp.transport\":\"string\",\"mdc.<key>\":\"string\",\"messaging.batch.message_count\":\"integer\",\"messaging.destination\":\"string\",\"messaging.destination.connection\":\"string\",\"messaging.destination.name\":\"string\",\"messaging.message.body.size\":\"integer\",\"messaging.message.conversation_id\":\"string\",\"messaging.message.envelope.size\":\"integer\",\"messaging.message.id\":\"string\",\"messaging.message.receive.latency\":\"integer\",\"messaging.message.retry.count\":\"integer\",\"messaging.operation.name\":\"string\",\"messaging.operation.type\":\"string\",\"messaging.rabbitmq.destination.routing_key\":\"string\",\"messaging.system\":\"string\",method:\"string\",\"middleware.name\":\"string\",\"navigation.origin\":\"string\",\"navigation.route.id\":\"string\",\"navigation.type\":\"string\",\"nel.elapsed_time\":\"integer\",\"nel.phase\":\"string\",\"nel.referrer\":\"string\",\"nel.sampling_function\":\"double\",\"nel.type\":\"string\",\"network.connection.effective_type\":\"string\",\"network.connection.rtt\":\"integer\",\"network.connection.type\":\"string\",\"network.local.address\":\"string\",\"network.local.port\":\"integer\",\"network.peer.address\":\"string\",\"network.peer.port\":\"integer\",\"network.protocol.name\":\"string\",\"network.protocol.version\":\"string\",\"network.transport\":\"string\",\"network.type\":\"string\",\"net.host.ip\":\"string\",\"net.host.name\":\"string\",\"net.host.port\":\"integer\",\"net.peer.ip\":\"string\",\"net.peer.name\":\"string\",\"net.peer.port\":\"integer\",\"net.protocol.name\":\"string\",\"net.protocol.version\":\"string\",\"net.sock.family\":\"string\",\"net.sock.host.addr\":\"string\",\"net.sock.host.port\":\"integer\",\"net.sock.peer.addr\":\"string\",\"net.sock.peer.name\":\"string\",\"net.sock.peer.port\":\"integer\",\"net.transport\":\"string\",\"os.build\":\"string\",\"os.build_id\":\"string\",\"os.description\":\"string\",\"os.kernel_version\":\"string\",\"os.name\":\"string\",\"os.raw_description\":\"string\",\"os.rooted\":\"boolean\",\"os.theme\":\"string\",\"os.type\":\"string\",\"os.version\":\"string\",\"otel.kind\":\"string\",\"otel.scope.name\":\"string\",\"otel.scope.version\":\"string\",\"otel.status_code\":\"string\",\"otel.status_description\":\"string\",\"params.<key>\":\"string\",\"performance.activationStart\":\"double\",\"performance.timeOrigin\":\"double\",previous_route:\"string\",\"process.command_args\":\"string[]\",\"process.executable.name\":\"string\",\"process.pid\":\"integer\",\"process.runtime.description\":\"string\",\"process.runtime.engine.name\":\"string\",\"process.runtime.engine.version\":\"string\",\"process.runtime.name\":\"string\",\"process.runtime.version\":\"string\",\"query.<key>\":\"string\",\"react.version\":\"string\",release:\"string\",\"remix.action_form_data.<key>\":\"string\",replay_id:\"string\",\"resource.deployment.environment\":\"string\",\"resource.deployment.environment.name\":\"string\",\"resource.render_blocking_status\":\"string\",route:\"string\",\"rpc.grpc.status_code\":\"integer\",\"rpc.method\":\"string\",\"rpc.response.status_code\":\"string\",\"rpc.service\":\"string\",\"rpc.system\":\"string\",\"rpc.system.name\":\"string\",\"runtime.build\":\"string\",\"runtime.name\":\"string\",\"runtime.raw_description\":\"string\",\"runtime.version\":\"string\",\"score.<key>\":\"double\",\"score.ratio.<key>\":\"double\",\"score.total\":\"double\",\"score.weight.<key>\":\"double\",\"sentry.action\":\"string\",\"sentry.browser.name\":\"string\",\"sentry.browser.version\":\"string\",\"sentry.cancellation_reason\":\"string\",\"sentry.category\":\"string\",\"sentry.client_sample_rate\":\"double\",\"sentry.description\":\"string\",\"sentry.dist\":\"string\",\"sentry.domain\":\"string\",\"sentry.dsc.environment\":\"string\",\"sentry.dsc.project_id\":\"string\",\"sentry.dsc.public_key\":\"string\",\"sentry.dsc.release\":\"string\",\"sentry.dsc.sampled\":\"boolean\",\"sentry.dsc.sample_rate\":\"string\",\"sentry.dsc.trace_id\":\"string\",\"sentry.dsc.transaction\":\"string\",\"sentry.environment\":\"string\",\"sentry.exclusive_time\":\"double\",\"sentry.graphql.operation\":\"string\",\"sentry.group\":\"string\",\"sentry.http.prefetch\":\"boolean\",\"sentry.idle_span_finish_reason\":\"string\",\"sentry.is_remote\":\"boolean\",\"sentry.kind\":\"string\",\"sentry.main_thread\":\"boolean\",\"sentry.message.parameter.<key>\":\"string\",\"sentry.message.template\":\"string\",\"sentry.metric.source\":\"string\",\"sentry.mobile\":\"boolean\",\"sentry.module.<key>\":\"string\",\"sentry.nextjs.ssr.function.route\":\"string\",\"sentry.nextjs.ssr.function.type\":\"string\",\"sentry.normalized_db_query\":\"string\",\"sentry.normalized_db_query.hash\":\"string\",\"sentry.normalized_description\":\"string\",\"sentry.observed_timestamp_nanos\":\"string\",\"sentry.op\":\"string\",\"sentry.origin\":\"string\",\"sentry.platform\":\"string\",\"sentry.profiler_id\":\"string\",\"sentry.profile_id\":\"string\",\"sentry.release\":\"string\",\"sentry.replay_id\":\"string\",\"sentry.replay_is_buffering\":\"boolean\",\"sentry.report_event\":\"string\",\"sentry.sdk.integrations\":\"string[]\",\"sentry.sdk.name\":\"string\",\"sentry.sdk.version\":\"string\",\"sentry.segment.id\":\"string\",\"sentry.segment_id\":\"string\",\"sentry.segment.name\":\"string\",\"sentry.server_sample_rate\":\"double\",\"sentry.source\":\"string\",\"sentry.span.source\":\"string\",\"sentry.status\":\"string\",\"sentry.status_code\":\"integer\",\"sentry.status.message\":\"string\",\"sentry.sveltekit.navigation.from\":\"string\",\"sentry.sveltekit.navigation.to\":\"string\",\"sentry.sveltekit.navigation.type\":\"string\",\"sentry.thread.id\":\"integer\",\"sentry.timestamp.sequence\":\"integer\",\"sentry.trace_lifecycle\":\"string\",\"sentry.trace.parent_span_id\":\"string\",\"sentry.trace.status\":\"string\",\"sentry.transaction\":\"string\",\"sentry.user.email\":\"string\",\"sentry.user.geo.city\":\"string\",\"sentry.user.geo.country_code\":\"string\",\"sentry.user.geo.region\":\"string\",\"sentry.user.geo.subdivision\":\"string\",\"sentry.user.id\":\"string\",\"sentry.user.ip\":\"string\",\"sentry.user.username\":\"string\",\"server.address\":\"string\",server_name:\"string\",\"server.port\":\"integer\",\"service.name\":\"string\",\"service.version\":\"string\",\"session.id\":\"string\",stall_percentage:\"double\",stall_total_time:\"double\",\"state.type\":\"string\",\"thread.id\":\"integer\",\"thread.name\":\"string\",\"timber.tag\":\"string\",time_to_full_display:\"double\",time_to_initial_display:\"double\",transaction:\"string\",\"trpc.procedure_path\":\"string\",\"trpc.procedure_type\":\"string\",ttfb:\"double\",\"ttfb.requestTime\":\"double\",type:\"string\",\"ui.component_name\":\"string\",\"ui.contributes_to_ttfd\":\"boolean\",\"ui.contributes_to_ttid\":\"boolean\",\"ui.element.height\":\"integer\",\"ui.element.id\":\"string\",\"ui.element.identifier\":\"string\",\"ui.element.load_time\":\"double\",\"ui.element.paint_type\":\"string\",\"ui.element.render_time\":\"double\",\"ui.element.type\":\"string\",\"ui.element.url\":\"string\",\"ui.element.width\":\"integer\",url:\"string\",\"url.domain\":\"string\",\"url.fragment\":\"string\",\"url.full\":\"string\",\"url.path\":\"string\",\"url.path.parameter.<key>\":\"string\",\"url.port\":\"integer\",\"url.query\":\"string\",\"url.same_origin\":\"boolean\",\"url.scheme\":\"string\",\"url.template\":\"string\",\"user_agent.original\":\"string\",\"user.email\":\"string\",\"user.full_name\":\"string\",\"user.geo.city\":\"string\",\"user.geo.country_code\":\"string\",\"user.geo.region\":\"string\",\"user.geo.subdivision\":\"string\",\"user.hash\":\"string\",\"user.id\":\"string\",\"user.ip_address\":\"string\",\"user.name\":\"string\",\"user.roles\":\"string[]\",\"vercel.branch\":\"string\",\"vercel.build_id\":\"string\",\"vercel.deployment_id\":\"string\",\"vercel.destination\":\"string\",\"vercel.edge_type\":\"string\",\"vercel.entrypoint\":\"string\",\"vercel.execution_region\":\"string\",\"vercel.id\":\"string\",\"vercel.ja3_digest\":\"string\",\"vercel.ja4_digest\":\"string\",\"vercel.log_type\":\"string\",\"vercel.path\":\"string\",\"vercel.project_id\":\"string\",\"vercel.project_name\":\"string\",\"vercel.proxy.cache_id\":\"string\",\"vercel.proxy.client_ip\":\"string\",\"vercel.proxy.host\":\"string\",\"vercel.proxy.lambda_region\":\"string\",\"vercel.proxy.method\":\"string\",\"vercel.proxy.path\":\"string\",\"vercel.proxy.path_type\":\"string\",\"vercel.proxy.path_type_variant\":\"string\",\"vercel.proxy.referer\":\"string\",\"vercel.proxy.region\":\"string\",\"vercel.proxy.response_byte_size\":\"integer\",\"vercel.proxy.scheme\":\"string\",\"vercel.proxy.status_code\":\"integer\",\"vercel.proxy.timestamp\":\"integer\",\"vercel.proxy.user_agent\":\"string[]\",\"vercel.proxy.vercel_cache\":\"string\",\"vercel.proxy.vercel_id\":\"string\",\"vercel.proxy.waf_action\":\"string\",\"vercel.proxy.waf_rule_id\":\"string\",\"vercel.request_id\":\"string\",\"vercel.source\":\"string\",\"vercel.status_code\":\"integer\"},Bb={\"ai.citations\":{brief:\"References or sources cited by the AI model in its response.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Citation 1\",\"Citation 2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.completion_tokens.used\":{brief:\"The number of tokens used to respond to the message.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[\"gen_ai.usage.output_tokens\",\"gen_ai.usage.completion_tokens\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},\"ai.documents\":{brief:\"Documents or content chunks used as context for the AI model.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"document1.txt\",\"document2.pdf\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.finish_reason\":{brief:\"The reason why the model stopped generating.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"COMPLETE\",deprecation:{replacement:\"gen_ai.response.finish_reasons\"},aliases:[\"gen_ai.response.finish_reasons\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.frequency_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.frequency_penalty\"},aliases:[\"gen_ai.request.frequency_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.function_call\":{brief:\"For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"function_name\",deprecation:{replacement:\"gen_ai.tool.name\"},aliases:[\"gen_ai.tool.name\",\"mcp.tool.name\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.generation_id\":{brief:\"Unique identifier for the completion.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gen_123abc\",deprecation:{replacement:\"gen_ai.response.id\"},aliases:[\"gen_ai.response.id\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.input_messages\":{brief:\"The input messages sent to the model\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[\"gen_ai.request.messages\"],changelog:[{version:\"0.1.0\",prs:[65,119]},{version:\"0.0.0\"}]},\"ai.is_search_required\":{brief:\"Boolean indicating if the model needs to perform a search.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.metadata\":{brief:\"Extra metadata passed to an AI pipeline step.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"user_id\": 123, \"session_id\": \"abc123\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.model_id\":{brief:\"The vendor-specific ID of the model used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4\",deprecation:{replacement:\"gen_ai.response.model\"},aliases:[\"gen_ai.response.model\"],changelog:[{version:\"0.1.0\",prs:[57,61,127]},{version:\"0.0.0\"}]},\"ai.model.provider\":{brief:\"The provider of the model.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[\"gen_ai.provider.name\",\"gen_ai.system\"],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,61,108,127]}]},\"ai.pipeline.name\":{brief:\"The name of the AI pipeline.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",deprecation:{replacement:\"gen_ai.pipeline.name\"},aliases:[\"gen_ai.pipeline.name\"],changelog:[{version:\"0.1.0\",prs:[53,76,108,127]}]},\"ai.preamble\":{brief:\"For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"You are now a clown.\",deprecation:{replacement:\"gen_ai.system_instructions\"},aliases:[\"gen_ai.system_instructions\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.presence_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.presence_penalty\"},aliases:[\"gen_ai.request.presence_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.prompt_tokens.used\":{brief:\"The number of tokens used to process just the prompt.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[\"gen_ai.usage.prompt_tokens\",\"gen_ai.usage.input_tokens\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},\"ai.raw_prompting\":{brief:\"When enabled, the user\\u2019s prompt will be sent to the model without any pre-processing.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.responses\":{brief:\"The response messages sent back by the AI model.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"hello\",\"world\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[65,127]},{version:\"0.0.0\"}]},\"ai.response_format\":{brief:\"For an AI model call, the format of the response\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"json_object\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.search_queries\":{brief:\"Queries used to search for relevant context or documents.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"climate change effects\",\"renewable energy\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.search_results\":{brief:\"Results returned from search queries for context.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"search_result_1, search_result_2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.seed\":{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"gen_ai.request.seed\"},aliases:[\"gen_ai.request.seed\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.streaming\":{brief:\"Whether the request was streamed back.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"gen_ai.response.streaming\"},aliases:[\"gen_ai.response.streaming\"],changelog:[{version:\"0.1.0\",prs:[76,108]},{version:\"0.0.0\"}]},\"ai.tags\":{brief:\"Tags that describe an AI pipeline step.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"executed_function\": \"add_integers\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.temperature\":{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.1,deprecation:{replacement:\"gen_ai.request.temperature\"},aliases:[\"gen_ai.request.temperature\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.texts\":{brief:\"Raw text inputs provided to the model.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Hello, how are you?\",\"What is the capital of France?\"],deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[\"gen_ai.input.messages\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.tools\":{brief:\"For an AI model call, the functions that are available\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"function_1\",\"function_2\"],deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.1.0\",prs:[55,65,127]}]},\"ai.tool_calls\":{brief:\"For an AI model call, the tool calls that were made.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"tool_call_1\",\"tool_call_2\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[55,65]}]},\"ai.top_k\":{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:35,deprecation:{replacement:\"gen_ai.request.top_k\"},aliases:[\"gen_ai.request.top_k\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.top_p\":{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.7,deprecation:{replacement:\"gen_ai.request.top_p\"},aliases:[\"gen_ai.request.top_p\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.total_cost\":{brief:\"The total cost for the tokens used.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,deprecation:{replacement:\"gen_ai.cost.total_tokens\"},aliases:[\"gen_ai.cost.total_tokens\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[53]}]},\"ai.total_tokens.used\":{brief:\"The total number of tokens used to process the prompt.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:30,deprecation:{replacement:\"gen_ai.usage.total_tokens\"},aliases:[\"gen_ai.usage.total_tokens\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61,108]},{version:\"0.0.0\"}]},\"ai.warnings\":{brief:\"Warning messages generated during model execution.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Token limit exceeded\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"angular.version\":{brief:\"The version of the Angular framework\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"17.1.0\",changelog:[{version:\"0.7.0\",prs:[367],description:\"Added angular.version attribute\"}]},\"app.app_build\":{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"app.build\",reason:\"Deprecated in favor of app.build\"},aliases:[\"app.build\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_build in favor of app.build\"}]},\"app.app_identifier\":{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",deprecation:{replacement:\"app.identifier\",reason:\"Deprecated in favor of app.identifier\"},aliases:[\"app.identifier\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_identifier in favor of app.identifier\"}]},\"app.app_name\":{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"My App\",deprecation:{replacement:\"app.name\",reason:\"Deprecated in favor of app.name\"},aliases:[\"app.name\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_name in favor of app.name\"}]},\"app.app_start_time\":{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",deprecation:{replacement:\"app.start_time\",reason:\"Deprecated in favor of app.start_time\"},aliases:[\"app.start_time\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_start_time in favor of app.start_time\"}]},\"app.app_version\":{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",deprecation:{replacement:\"app.version\",reason:\"Deprecated in favor of app.version\"},aliases:[\"app.version\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_version in favor of app.version\"}]},\"app.build\":{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",aliases:[\"app.app_build\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.build attribute\"}]},\"app.identifier\":{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",aliases:[\"app.app_identifier\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.identifier attribute\"}]},\"app.in_foreground\":{brief:\"Whether the application is currently in the foreground.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.in_foreground attribute\"}]},\"app.name\":{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"My App\",aliases:[\"app.app_name\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.name attribute\"}]},app_start_cold:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.cold.value\",reason:\"Replaced by app.vitals.start.cold.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.start.cold.value\"],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.cold.value\"}]},\"app.start_time\":{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",aliases:[\"app.app_start_time\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.start_time attribute\"}]},app_start_type:{brief:\"Mobile app start variant. Either cold or warm.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cold\",deprecation:{replacement:\"app.vitals.start.type\",reason:\"Replaced by app.vitals.start.type to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.start.type\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.start.type\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},app_start_warm:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.warm.value\",reason:\"Replaced by app.vitals.start.warm.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.start.warm.value\"],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.warm.value\"}]},\"app.version\":{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",aliases:[\"app.app_version\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.version attribute\"}]},\"app.vitals.frames.delay.value\":{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5,aliases:[\"frames.delay\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.delay.value to replace frames.delay\"}]},\"app.vitals.frames.frozen.count\":{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,aliases:[\"frames.frozen\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.frozen.count to replace frames.frozen\"}]},\"app.vitals.frames.slow.count\":{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,aliases:[\"frames.slow\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.slow.count to replace frames.slow\"}]},\"app.vitals.frames.total.count\":{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:60,aliases:[\"frames.total\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.total.count to replace frames.total\"}]},\"app.vitals.start.cold.value\":{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"app_start_cold\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.cold.value attribute\"}]},\"app.vitals.start.prewarmed\":{brief:\"Whether the app start was prewarmed.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.11.0\",prs:[379],description:\"Added app.vitals.start.prewarmed attribute\"}]},\"app.vitals.start.reason\":{brief:\"The reason that triggered the app start.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"push\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.reason attribute\"}]},\"app.vitals.start.screen\":{brief:\"The screen that is rendered when the app start is complete. This is the screen the user first sees and can interact with after launch. The absence of this attribute on the app start span indicates a background app start where no UI was rendered.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MainActivity\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.screen attribute\"}]},\"app.vitals.start.type\":{brief:\"The type of app start, for example `cold` or `warm`\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cold\",aliases:[\"app_start_type\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.type attribute\"}]},\"app.vitals.start.warm.value\":{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"app_start_warm\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.warm.value attribute\"}]},\"app.vitals.ttfd.value\":{brief:\"The duration of time to full display in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"time_to_full_display\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttfd.value attribute\"}]},\"app.vitals.ttid.value\":{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"time_to_initial_display\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttid.value attribute\"}]},\"art.gc.blocking_count\":{brief:\"Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_count attribute\"}]},\"art.gc.blocking_time\":{brief:\"Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:11.873,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_time attribute\"}]},\"art.gc.pre_oome_count\":{brief:\"Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.pre_oome_count attribute\"}]},\"art.gc.total_count\":{brief:\"Total number of garbage collections performed by the Android Runtime\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_count attribute\"}]},\"art.gc.total_time\":{brief:\"Total time spent in garbage collection by the Android Runtime, in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:11.807,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_time attribute\"}]},\"art.gc.waiting_time\":{brief:\"Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8.054,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.waiting_time attribute\"}]},\"art.memory.free\":{brief:\"Free memory available to the process as reported by the Android Runtime, in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free attribute\"}]},\"art.memory.free_until_gc\":{brief:\"Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_gc attribute\"}]},\"art.memory.free_until_oome\":{brief:\"Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:196083712,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_oome attribute\"}]},\"art.memory.max\":{brief:\"Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:201326592,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.max attribute\"}]},\"art.memory.total\":{brief:\"Total memory currently allocated to the process by the Android Runtime, in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:7774208,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.total attribute\"}]},\"aws.cloudwatch.logs.log_group\":{brief:\"The name of the CloudWatch Logs log group\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/aws/lambda/my-function\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_group attribute\"}]},\"aws.cloudwatch.logs.log_stream\":{brief:\"The name of the CloudWatch Logs log stream\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024/01/01/[$LATEST]abcdef1234567890\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_stream attribute\"}]},\"aws.cloudwatch.logs.url\":{brief:\"The URL to the CloudWatch Logs log group\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/my-log-group\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.url attribute\"}]},\"aws.dynamodb.attribute_definitions\":{brief:\"The JSON-serialized value of each item in the `AttributeDefinitions` request field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.attribute_definitions attribute\"}]},\"aws.dynamodb.consistent_read\":{brief:\"The value of the `ConsistentRead` request parameter.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.consistent_read attribute\"}]},\"aws.dynamodb.consumed_capacity\":{brief:\"The JSON-serialized value of each item in the `ConsumedCapacity` response field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"CapacityUnits\": number, \"GlobalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"LocalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"ReadCapacityUnits\": number, \"Table\": { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number }, \"TableName\": \"string\", \"WriteCapacityUnits\": number }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.consumed_capacity attribute\"}]},\"aws.dynamodb.count\":{brief:\"The value of the `Count` response parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.count attribute\"}]},\"aws.dynamodb.exclusive_start_table\":{brief:\"The value of the `ExclusiveStartTableName` request parameter.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Users\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.exclusive_start_table attribute\"}]},\"aws.dynamodb.global_secondary_indexes\":{brief:\"The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.global_secondary_indexes attribute\"}]},\"aws.dynamodb.global_secondary_index_updates\":{brief:\"The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.global_secondary_index_updates attribute\"}]},\"aws.dynamodb.index_name\":{brief:\"The value of the `IndexName` request parameter.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"name_to_group\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.index_name attribute\"}]},\"aws.dynamodb.item_collection_metrics\":{brief:\"The JSON-serialized value of the `ItemCollectionMetrics` response field.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'{ \"string\" : [ { \"ItemCollectionKey\": { \"string\" : { \"B\": blob, \"BOOL\": boolean, \"BS\": [ blob ], \"L\": [ \"AttributeValue\" ], \"M\": { \"string\" : \"AttributeValue\" }, \"N\": \"string\", \"NS\": [ \"string\" ], \"NULL\": boolean, \"S\": \"string\", \"SS\": [ \"string\" ] } }, \"SizeEstimateRangeGB\": [ number ] } ] }',changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.item_collection_metrics attribute\"}]},\"aws.dynamodb.limit\":{brief:\"The value of the `Limit` request parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.limit attribute\"}]},\"aws.dynamodb.local_secondary_indexes\":{brief:\"The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"IndexArn\": \"string\", \"IndexName\": \"string\", \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.local_secondary_indexes attribute\"}]},\"aws.dynamodb.projection\":{brief:\"The value of the `ProjectionExpression` request parameter.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Title, Price, Color\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.projection attribute\"}]},\"aws.dynamodb.provisioned_read_capacity\":{brief:\"The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.provisioned_read_capacity attribute\"}]},\"aws.dynamodb.provisioned_write_capacity\":{brief:\"The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.provisioned_write_capacity attribute\"}]},\"aws.dynamodb.scanned_count\":{brief:\"The value of the `ScannedCount` response parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:50,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.scanned_count attribute\"}]},\"aws.dynamodb.scan_forward\":{brief:\"The value of the `ScanIndexForward` request parameter.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.scan_forward attribute\"}]},\"aws.dynamodb.segment\":{brief:\"The value of the `Segment` request parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.segment attribute\"}]},\"aws.dynamodb.select\":{brief:\"The value of the `Select` request parameter.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ALL_ATTRIBUTES\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.select attribute\"}]},\"aws.dynamodb.table_count\":{brief:\"The number of items in the `TableNames` response parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:20,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.table_count attribute\"}]},\"aws.dynamodb.table_names\":{brief:\"The keys in the `RequestItems` object field.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"Users\",\"Cats\"],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.table_names attribute\"}]},\"aws.dynamodb.total_segments\":{brief:\"The value of the `TotalSegments` request parameter.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:100,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.total_segments attribute\"}]},\"aws.extended_request_id\":{brief:\"The AWS extended request ID as returned in the response headers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=\",aliases:[\"aws.request.extended_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.extended_request_id attribute\"}]},\"aws.kinesis.stream_name\":{brief:\"The name of the AWS Kinesis stream the request refers to.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"some-stream-name\",aliases:[\"aws.kinesis.stream.name\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.kinesis.stream_name attribute\"}]},\"aws.kinesis.stream.name\":{brief:\"The name of the AWS Kinesis stream the request refers to.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"some-stream-name\",deprecation:{replacement:\"aws.kinesis.stream_name\",reason:\"This attribute is being deprecated in favor of aws.kinesis.stream_name, which is the OTel-aligned replacement.\"},aliases:[\"aws.kinesis.stream_name\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.kinesis.stream.name attribute, deprecated in favor of aws.kinesis.stream_name\"}]},\"aws.lambda.aws_request_id\":{brief:\"The AWS request ID as received by the Lambda function runtime\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"8476a536-e9f4-11e8-9739-2dfe598c3fcd\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id\"},aliases:[\"faas.invocation_id\",\"faas.execution\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution as an alias\"},{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.aws_request_id in favor of faas.invocation_id\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.aws_request_id attribute\"}]},\"aws.lambda.execution_duration_in_millis\":{brief:\"The execution duration of the Lambda function invocation in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.execution_duration_in_millis attribute\"}]},\"aws.lambda.function_name\":{brief:\"The name of the Lambda function\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-function\",deprecation:{replacement:\"faas.name\",reason:\"Use the OTel-aligned faas.name attribute instead\"},aliases:[\"faas.name\"],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.function_name in favor of faas.name\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_name attribute\"}]},\"aws.lambda.function_version\":{brief:\"The version of the Lambda function\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"$LATEST\",deprecation:{replacement:\"faas.version\",reason:\"Use the OTel-aligned faas.version attribute instead\"},aliases:[\"faas.version\"],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.function_version in favor of faas.version\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_version attribute\"}]},\"aws.lambda.invoked_arn\":{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",aliases:[\"aws.lambda.invoked_function_arn\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.lambda.invoked_function_arn\":{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",deprecation:{replacement:\"aws.lambda.invoked_arn\",reason:\"This attribute is being deprecated in favor of aws.lambda.invoked_arn\"},aliases:[\"aws.lambda.invoked_arn\"],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.invoked_function_arn in favor of aws.lambda.invoked_arn\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.invoked_function_arn attribute\"}]},\"aws.lambda.remaining_time_in_millis\":{brief:\"The remaining time in milliseconds before the Lambda function times out\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5e3,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.remaining_time_in_millis attribute\"}]},\"aws.log.group.names\":{brief:\"The name(s) of the AWS log group(s) an application is writing to.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"/aws/lambda/my-function\",\"opentelemetry-service\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.log.stream.names\":{brief:\"The name(s) of the AWS log stream(s) an application is writing to.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"logs/main/10838bed-421f-43ef-870a-f43feacbbb5b\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.request.extended_id\":{brief:\"The AWS extended request ID as returned in the response headers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=\",deprecation:{replacement:\"aws.extended_request_id\",reason:\"This attribute is being deprecated in favor of aws.extended_request_id, which is the OTel-aligned replacement.\"},aliases:[\"aws.extended_request_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request.extended_id attribute, deprecated in favor of aws.extended_request_id\"}]},\"aws.request_id\":{brief:\"The AWS request ID as returned in the response headers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"79b9da39-b7ae-508a-a6bc-864b2829c622\",aliases:[\"aws.request.id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request_id attribute\"}]},\"aws.request.id\":{brief:\"The AWS request ID as returned in the response headers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"79b9da39-b7ae-508a-a6bc-864b2829c622\",deprecation:{replacement:\"aws.request_id\",reason:\"This attribute is being deprecated in favor of aws.request_id, which is the OTel-aligned replacement.\"},aliases:[\"aws.request_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request.id attribute, deprecated in favor of aws.request_id\"}]},\"aws.s3.bucket\":{brief:\"The S3 bucket name the request refers to.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ot-demo-test\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.s3.bucket attribute\"}]},\"aws.secretsmanager.secret.arn\":{brief:\"The ARN of the Secret stored in Secrets Manager.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretName-6RandomCharacters\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.secretsmanager.secret.arn attribute\"}]},\"aws.sns.topic.arn\":{brief:\"The ARN of the AWS SNS Topic. An Amazon SNS topic is a logical access point that acts as a communication channel.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.sns.topic.arn attribute\"}]},\"aws.step_functions.activity.arn\":{brief:\"The ARN of the AWS Step Functions Activity.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:states:us-east-1:123456789012:activity:get-greeting\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.step_functions.activity.arn attribute\"}]},\"aws.step_functions.state_machine.arn\":{brief:\"The ARN of the AWS Step Functions State Machine.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.step_functions.state_machine.arn attribute\"}]},blocked_main_thread:{brief:\"Whether the main thread was blocked by the span.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"browser.name\":{brief:\"The name of the browser.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",aliases:[\"sentry.browser.name\"],changelog:[{version:\"0.1.0\",prs:[127,139]},{version:\"0.0.0\"}]},\"browser.performance.navigation.activation_start\":{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.983,aliases:[\"performance.activationStart\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.navigation.activation_start attribute\"}]},\"browser.performance.time_origin\":{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,aliases:[\"performance.timeOrigin\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.time_origin attribute attribute\"}]},\"browser.report.type\":{brief:\"A browser report sent via reporting API..\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"network-error\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"browser.script.invoker\":{brief:\"How a script was called in the browser.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Window.requestAnimationFrame\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"browser.script.invoker_type\":{brief:\"Browser script entry point type.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"event-listener\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"browser.script.source_char_position\":{brief:\"A number representing the script character position of the script.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:678,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"browser.version\":{brief:\"The version of the browser.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",aliases:[\"sentry.browser.version\"],changelog:[{version:\"0.1.0\",prs:[59,127,139]}]},\"browser.web_vital.cls.report_event\":{brief:\"The event that caused the SDK to report CLS (pagehide or navigation)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"navigation\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.cls.report_event attribute\"}]},\"browser.web_vital.cls.source.<key>\":{brief:\"The HTML elements or components responsible for the layout shift. <key> is a numeric index from 1 to N\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",aliases:[\"cls.source.<key>\"],changelog:[{version:\"0.5.0\",prs:[234]}]},\"browser.web_vital.cls.value\":{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.2361,aliases:[\"cls\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.cls.value attribute\"}]},\"browser.web_vital.fcp.value\":{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:547.6951,aliases:[\"fcp\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.fp.value\":{brief:\"The time in milliseconds it takes for the browser to render the first pixel on the screen\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:477.1926,aliases:[\"fp\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.inp.value\":{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,aliases:[\"inp\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.inp.value attribute\"}]},\"browser.web_vital.lcp.element\":{brief:\"The HTML element selector or component name for which LCP was reported\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"body > div#app > div#container > div\",aliases:[\"lcp.element\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.id\":{brief:\"The id of the dom element responsible for the largest contentful paint\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"#gero\",aliases:[\"lcp.id\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.load_time\":{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1402,aliases:[\"lcp.loadTime\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.render_time\":{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1685,aliases:[\"lcp.renderTime\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.report_event\":{brief:\"The event that caused the SDK to report LCP (pagehide or navigation)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.lcp.report_event attribute\"}]},\"browser.web_vital.lcp.size\":{brief:\"The size of the largest contentful paint element\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1024,aliases:[\"lcp.size\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.url\":{brief:\"The url of the dom element responsible for the largest contentful paint\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/static/img.png\",aliases:[\"lcp.url\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.value\":{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2500,aliases:[\"lcp\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.lcp.value attribute\"}]},\"browser.web_vital.ttfb.request_time\":{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1554.5814,aliases:[\"ttfb.requestTime\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.ttfb.value\":{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in Milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:194.3322,aliases:[\"ttfb\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"cache.hit\":{brief:\"If the cache was hit during this span.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"cache.item_size\":{brief:\"The size of the requested item in the cache. In bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:58,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cache.key\":{brief:\"The key of the cache accessed.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"my-cache-key\",\"my-other-cache-key\"],changelog:[{version:\"0.0.0\"}]},\"cache.operation\":{brief:\"The operation being performed on the cache.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"get\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"cache.ttl\":{brief:\"The ttl of the cache in seconds\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cache.write\":{brief:\"If the cache operation resulted in a write to the cache.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},channel:{brief:\"The channel name that is being used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"mail\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"client.address\":{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[\"http.client_ip\"],changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},\"client.port\":{brief:\"Client port number.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:5432,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.duration\":{brief:\"The duration of a Cloudflare D1 operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:543,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.query_type\":{brief:\"The type of query executed in a Cloudflare D1 operation\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"run\",deprecation:{replacement:\"db.operation.name\"},aliases:[\"db.operation.name\",\"db.operation\"],changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.d1.query_type attribute\"}]},\"cloudflare.d1.rows_read\":{brief:\"The number of rows read in a Cloudflare D1 operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.rows_written\":{brief:\"The number of rows written in a Cloudflare D1 operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.durable_object.query.bindings\":{brief:\"The number of bound parameters passed to the SQL exec call.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.query.bindings attribute\"}]},\"cloudflare.durable_object.response.rows_read\":{brief:\"The number of rows read by a Cloudflare Durable Object SQL operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.response.rows_read attribute\"}]},\"cloudflare.durable_object.response.rows_written\":{brief:\"The number of rows written by a Cloudflare Durable Object SQL operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.response.rows_written attribute\"}]},\"cloudflare.r2.bucket\":{brief:\"The name of the Cloudflare R2 bucket binding\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MY_BUCKET\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.bucket attribute\"}]},\"cloudflare.r2.operation\":{brief:\"The R2 API operation being performed\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GetObject\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.operation attribute\"}]},\"cloudflare.r2.request.delimiter\":{brief:\"The delimiter used to group objects in an R2 list operation\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.delimiter attribute\"}]},\"cloudflare.r2.request.key\":{brief:\"The object key used in the R2 operation\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-file.txt\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.key attribute\"}]},\"cloudflare.r2.request.part_number\":{brief:\"The part number in a multipart upload operation\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.part_number attribute\"}]},\"cloudflare.r2.request.prefix\":{brief:\"The prefix used to filter objects in an R2 list operation\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"images/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.prefix attribute\"}]},\"cloudflare.workflow.attempt\":{brief:\"The current attempt number for a Cloudflare Workflow step\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.attempt attribute\"}]},\"cloudflare.workflow.retries.backoff\":{brief:\"The backoff strategy for Cloudflare Workflow step retries\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"exponential\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.backoff attribute\"}]},\"cloudflare.workflow.retries.delay\":{brief:\"The delay between Cloudflare Workflow step retries\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"5 seconds\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.delay attribute\"}]},\"cloudflare.workflow.retries.limit\":{brief:\"The maximum number of retries for a Cloudflare Workflow step\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.limit attribute\"}]},\"cloudflare.workflow.timeout\":{brief:\"The timeout duration for a Cloudflare Workflow step\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1 minute\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.timeout attribute\"}]},\"cloud.account.id\":{brief:\"The cloud account ID the resource is assigned to\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"123456789012\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.account.id attribute\"}]},\"cloud.availability_zone\":{brief:\"Cloud regions often have multiple, isolated locations known as zones to increase availability\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1c\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.availability_zone attribute\"}]},\"cloud.platform\":{brief:\"The cloud platform in use\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws_lambda\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.platform attribute\"}]},\"cloud.provider\":{brief:\"Name of the cloud provider\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.provider attribute\"}]},\"cloud.region\":{brief:\"The geographical region the resource is running\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.region attribute\"}]},\"cloud.resource_id\":{brief:\"Cloud provider-specific native identifier of the monitored cloud resource\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",aliases:[\"faas.id\"],changelog:[{version:\"0.16.0\",prs:[475],description:\"Added faas.id as an alias\"},{version:\"0.11.1\",prs:[414]}],additionalContext:[\"This can be an identifier for a resource in AWS, GCP, or Azure. There may be some overlap in values found here with other attributes. For instance, an AWS lambda ARN may be found here as well as in `aws.lambda.invoked_arn`. OTEL recommends setting them alongside each other.\"]},cls:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.2361,deprecation:{replacement:\"browser.web_vital.cls.value\",reason:\"The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.\"},aliases:[\"browser.web_vital.cls.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"cls.source.<key>\":{brief:\"The HTML elements or components responsible for the layout shift. <key> is a numeric index from 1 to N\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",deprecation:{replacement:\"browser.web_vital.cls.source.<key>\",reason:\"The CLS source is now recorded as a browser.web_vital.cls.source.<key> attribute.\"},aliases:[\"browser.web_vital.cls.source.<key>\"],changelog:[{version:\"0.5.0\",prs:[234]}]},\"code.filepath\":{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",deprecation:{replacement:\"code.file.path\"},aliases:[\"code.file.path\"],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"code.file.path\":{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",aliases:[\"code.filepath\"],changelog:[{version:\"0.0.0\"}]},\"code.function\":{brief:\"The method or function name, or equivalent (usually rightmost part of the code unit's name).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[\"code.function.name\"],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},\"code.function.name\":{brief:\"The method or function fully-qualified name without arguments.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[\"code.function\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"code.lineno\":{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:42,deprecation:{replacement:\"code.line.number\"},aliases:[\"code.line.number\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},\"code.line.number\":{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:42,aliases:[\"code.lineno\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"code.namespace\":{brief:\"The 'namespace' within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http.handler\",changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},connectionType:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.type for span-first future\"},aliases:[\"network.connection.type\",\"device.connection_type\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"connection.rtt\":{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"network.connection.rtt\",reason:\"Old attribute name (no official namespace), to be replaced with network.connection.rtt for span-first future\"},aliases:[\"network.connection.rtt\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"culture.calendar\":{brief:\"The calendar system used by the culture.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GregorianCalendar\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.display_name\":{brief:\"Human readable name of the culture.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"English (United States)\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.is_24_hour_format\":{brief:\"Whether the culture uses 24-hour time format.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.locale\":{brief:\"The locale identifier following RFC 4646.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.timezone\":{brief:\"The timezone of the culture, as a geographic timezone identifier.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"db.collection.name\":{brief:\"The name of a collection (table, container) within the database.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"users\",changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},\"db.driver.name\":{brief:\"The name of the driver used for the database connection.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"psycopg2\",changelog:[{version:\"0.5.0\",prs:[297],description:\"Added db.driver.name attribute\"}]},\"db.name\":{brief:\"The name of the database being accessed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"customers\",deprecation:{replacement:\"db.namespace\"},aliases:[\"db.namespace\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.namespace\":{brief:\"The name of the database being accessed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"customers\",aliases:[\"db.name\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.operation\":{brief:\"The name of the operation being executed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",deprecation:{replacement:\"db.operation.name\"},aliases:[\"db.operation.name\",\"cloudflare.d1.query_type\"],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.operation.batch.size\":{brief:\"The number of queries included in a batch operation. Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[407],description:\"Added db.operation.batch.size attribute\"}]},\"db.operation.name\":{brief:\"The name of the operation being executed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",aliases:[\"db.operation\",\"cloudflare.d1.query_type\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.query.parameter.<key>\":{brief:\"A query parameter used in db.query.text, with <key> being the parameter name, and the attribute value being a string representation of the parameter value.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"db.query.parameter.foo='123'\",changelog:[{version:\"0.1.0\",prs:[103,127]}]},\"db.query.summary\":{brief:\"A shortened representation of operation(s) in the full query. This attribute must be low-cardinality and should only contain the operation table names.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT users\",changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.query.text\":{brief:\"The database parameterized query being executed. Any parameter values (filters, insertion values, etc) should be replaced with parameter placeholders. If applicable, use `db.query.parameter.<key>` to add the parameter value.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",aliases:[\"db.statement\"],changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.redis.connection\":{brief:\"The redis connection name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-redis-instance\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.redis.key\":{brief:\"The key the Redis command is operating on.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user:2047:city\",changelog:[{version:\"0.6.0\",prs:[326],description:\"Added db.redis.key attribute\"}]},\"db.redis.parameters\":{brief:\"The array of command parameters given to a redis command.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"test\",\"*\"],changelog:[{version:\"0.0.0\"}]},\"db.response.status_code\":{brief:\"Database response status code. The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ORA-17002\",changelog:[{version:\"0.16.0\",prs:[462],description:\"Added db.response.status_code attribute\"}]},\"db.sql.bindings\":{brief:\"The array of query bindings.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"1\",\"foo\"],deprecation:{replacement:\"db.query.parameter.<key>\",reason:\"Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter.<key>.\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"db.statement\":{brief:\"The database statement being executed.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users\",deprecation:{replacement:\"db.query.text\"},aliases:[\"db.query.text\"],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.stored_procedure.name\":{brief:\"The name of a stored procedure being called.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GetUserById\",changelog:[{version:\"0.11.0\",prs:[398]}]},\"db.system\":{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",deprecation:{replacement:\"db.system.name\"},aliases:[\"db.system.name\"],changelog:[{version:\"0.4.0\",prs:[199,224]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.system.name\":{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",aliases:[\"db.system\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.user\":{brief:\"The database user.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"fancy_user\",changelog:[{version:\"0.0.0\"}]},deviceMemory:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"8 GB\",deprecation:{replacement:\"device.memory.estimated_capacity\",reason:\"Old namespace-less attribute, to be replaced with device.memory.estimated_capacity for span-first future\"},aliases:[\"device.memory.estimated_capacity\"],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"device.archs\":{brief:\"The CPU architectures of the device.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"arm64-v8a\",\"armeabi-v7a\",\"armeabi\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.archs attribute\"}]},\"device.battery_level\":{brief:\"The battery level of the device as a percentage (0-100).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_level attribute\"}]},\"device.battery_temperature\":{brief:\"The battery temperature of the device in Celsius.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:25,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_temperature attribute\"}]},\"device.boot_time\":{brief:\"A formatted UTC timestamp when the system was booted.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2018-02-08T12:52:12Z\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.boot_time attribute\"}]},\"device.brand\":{brief:\"The brand of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Apple\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.charging\":{brief:\"Whether the device was charging or not.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.charging attribute\"}]},\"device.chipset\":{brief:\"The chipset of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Qualcomm SM8550\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.chipset attribute\"}]},\"device.class\":{brief:\"The classification of the device. For example, `low`, `medium`, or `high`. Typically inferred by Relay - SDKs generally do not need to set this directly.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"medium\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.class attribute\"}]},\"device.connection_type\":{brief:\"The internet connection type currently being used by the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"This attribute is being deprecated in favor of network.connection.type\"},aliases:[\"network.connection.type\",\"connectionType\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added and deprecated device.connection_type in favor of network.connection.type\"}]},\"device.cpu_description\":{brief:\"A description of the CPU of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.cpu_description attribute\"}]},\"device.external_free_storage\":{brief:\"External storage free size in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:67108864e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_free_storage attribute\"}]},\"device.external_storage_size\":{brief:\"External storage total size in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:134217728e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_storage_size attribute\"}]},\"device.family\":{brief:\"The family of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"iPhone\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.free_memory\":{brief:\"Free system memory in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.free_memory attribute\"}]},\"device.free_storage\":{brief:\"Free device storage in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:107374182400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.free_storage attribute\"}]},\"device.id\":{brief:\"Unique device identifier.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.id attribute\"}]},\"device.locale\":{brief:\"The locale of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.locale attribute\"}]},\"device.low_memory\":{brief:\"Whether the device was low on memory.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.low_memory attribute\"}]},\"device.low_power_mode\":{brief:\"Whether the device is in Low Power Mode.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.6.0\",prs:[314],description:\"Added device.low_power_mode attribute\"}]},\"device.manufacturer\":{brief:\"The manufacturer of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Google\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.manufacturer attribute\"}]},\"device.memory.estimated_capacity\":{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes. Browsers report estimations in buckets of powers of 2, mostly capped at 8 GB\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[\"deviceMemory\"],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added attribute device.memory.estimated_capacity to be used instead of deviceMemory\"}]},\"device.memory_size\":{brief:\"Total system memory available in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:17179869184,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.memory_size attribute\"}]},\"device.model\":{brief:\"The model of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"iPhone 15 Pro Max\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.model_id\":{brief:\"An internal hardware revision to identify the device exactly.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"N861AP\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.model_id attribute\"}]},\"device.name\":{brief:\"The name of the device. On mobile, this is the user-assigned device name. On servers and desktops, this is typically the hostname.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"localhost\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.name attribute\"}]},\"device.online\":{brief:\"Whether the device was online or not.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.online attribute\"}]},\"device.orientation\":{brief:'The orientation of the device, either \"portrait\" or \"landscape\".',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"portrait\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.orientation attribute\"}]},\"device.processor_count\":{brief:'Number of \"logical processors\".',type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[\"hardwareConcurrency\"],changelog:[{version:\"0.5.0\",prs:[300],description:\"Added and deprecated attribute device.processor_count in favor of device.cpu.logical_core_count\"}]},\"device.processor_frequency\":{brief:\"Processor frequency in MHz.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.processor_frequency attribute\"}]},\"device.screen_density\":{brief:\"The screen density of the device.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2.625,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_density attribute\"}]},\"device.screen_dpi\":{brief:\"The screen density in dots-per-inch (DPI) of the device.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:420,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_dpi attribute\"}]},\"device.screen_height_pixels\":{brief:\"The height of the device screen in pixels.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_height_pixels attribute\"}]},\"device.screen_width_pixels\":{brief:\"The width of the device screen in pixels.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1080,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_width_pixels attribute\"}]},\"device.simulator\":{brief:\"Whether the device is a simulator or an actual device.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.simulator attribute\"}]},\"device.storage_size\":{brief:\"Total device storage in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:274877906944,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.storage_size attribute\"}]},\"device.thermal_state\":{brief:\"The thermal state of the device. Based on Apple's `ProcessInfo.ThermalState` enum: `nominal`, `fair`, `serious`, or `critical`.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"nominal\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.thermal_state attribute\"}]},\"device.timezone\":{brief:\"The timezone of the device.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.timezone attribute\"}]},\"device.usable_memory\":{brief:\"Memory usable for the app in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.usable_memory attribute\"}]},dist:{brief:\"The sentry dist.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",deprecation:{replacement:\"sentry.dist\",reason:\"This attribute is being deprecated in favor of sentry.dist.\"},aliases:[\"sentry.dist\"],changelog:[{version:\"0.16.0\",prs:[489],description:\"Added dist attribute\"}]},effectiveConnectionType:{brief:\"Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"4g\",deprecation:{replacement:\"network.connection.effective_type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.effective_type for span-first future\"},aliases:[\"network.connection.effective_type\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},environment:{brief:\"The sentry environment.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},aliases:[\"sentry.environment\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"error.type\":{brief:\"Describes a class of error the operation ended with.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"timeout\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"event.id\":{brief:\"The unique identifier for this event (log record)\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234567890,changelog:[{version:\"0.1.0\",prs:[101]}]},\"event.name\":{brief:\"The name that uniquely identifies this event (log record)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Process Payload\",changelog:[{version:\"0.1.0\",prs:[101,127]}]},\"exception.escaped\":{brief:\"SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"exception.message\":{brief:\"The error message.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"ENOENT: no such file or directory\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"exception.stacktrace\":{brief:\"A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:`Exception in thread \"main\" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)`,changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"exception.type\":{brief:\"The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"OSError\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.coldstart\":{brief:\"A boolean that is true if the serverless function is executed for the first time (aka cold-start).\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"faas.cron\":{brief:\"A string containing the schedule period as Cron Expression.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"0/5 * * * ? *\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.duration_in_ms\":{brief:\"The duration a function took to run, in milliseconds.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.11.0\",prs:[403]}]},\"faas.entry_point\":{brief:\"The code that's run when the cloud provider invokes your function.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my_main_function\",changelog:[{version:\"0.11.0\",prs:[403,415]}]},\"faas.execution\":{brief:\"The execution ID of the current function execution.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id, which is the OTel-aligned replacement.\"},aliases:[\"faas.invocation_id\",\"aws.lambda.aws_request_id\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution attribute, deprecated in favor of faas.invocation_id\"}]},\"faas.id\":{brief:\"The unique ID of the single function that this runtime instance executes.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",deprecation:{replacement:\"cloud.resource_id\",reason:\"This attribute is being deprecated in favor of cloud.resource_id, which is the OTel-aligned replacement (renamed in OTel semantic conventions v1.19.0).\"},aliases:[\"cloud.resource_id\"],changelog:[{version:\"0.16.0\",prs:[475],description:\"Added faas.id attribute, deprecated in favor of cloud.resource_id\"}]},\"faas.identity\":{brief:\"The Service Account (GCP), IAM Execution Role (AWS), or Managed Identity (Azure) used by the serverless function when interacting with other cloud services\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"name@project.iam.gserviceaccount.com (GCP), arn:aws:iam::123456789012:role/role-name (AWS), 00000000-0000-0000-0000-000000000000 (Azure)\",changelog:[{version:\"0.11.0\",prs:[403]}]},\"faas.invocation_id\":{brief:\"The invocation ID of the current function invocation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",aliases:[\"aws.lambda.aws_request_id\",\"faas.execution\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution as an alias\"},{version:\"0.11.1\",prs:[414,424]}]},\"faas.invoked_name\":{brief:\"The name of the invoked function.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"my-function\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_name attribute\"}]},\"faas.invoked_provider\":{brief:\"The cloud provider of the invoked function.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_provider attribute\"}]},\"faas.invoked_region\":{brief:\"The cloud region of the invoked function.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"eu-central-1\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_region attribute\"}]},\"faas.name\":{brief:\"The name of the serverless function\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"my_function\",aliases:[\"aws.lambda.function_name\"],changelog:[{version:\"0.11.0\",prs:[403,415]}]},\"faas.time\":{brief:\"A string containing the function invocation time in the ISO 8601 format expressed in UTC.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2020-01-23T13:47:06Z\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.trigger\":{brief:\"Type of the trigger which caused this function invocation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"timer\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.version\":{brief:\"The version of the function that was invoked\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"$LATEST\",aliases:[\"aws.lambda.function_version\"],changelog:[{version:\"0.11.1\",prs:[414,424]}]},fcp:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:547.6951,deprecation:{replacement:\"browser.web_vital.fcp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fcp.value\"},aliases:[\"browser.web_vital.fcp.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"flag.evaluation.<key>\":{brief:\"An instance of a feature flag evaluation. The value of this attribute is the boolean representing the evaluation result. The <key> suffix is the name of the feature flag.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"flag.evaluation.is_new_ui=true\",changelog:[{version:\"0.1.0\",prs:[103]}]},fp:{brief:\"The time it takes for the browser to render the first pixel on the screen\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:477.1926,deprecation:{replacement:\"browser.web_vital.fp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fp.value\"},aliases:[\"browser.web_vital.fp.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"frames.delay\":{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5,deprecation:{replacement:\"app.vitals.frames.delay.value\",reason:\"Replaced by app.vitals.frames.delay.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.frames.delay.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.delay.value\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"frames.frozen\":{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,deprecation:{replacement:\"app.vitals.frames.frozen.count\",reason:\"Replaced by app.vitals.frames.frozen.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.frames.frozen.count\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.frozen.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},frames_frozen_rate:{brief:\"The rate of frozen frames, or `app_vitals.frames.frozen.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_frozen_rate attribute\"}]},\"frames.slow\":{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,deprecation:{replacement:\"app.vitals.frames.slow.count\",reason:\"Replaced by app.vitals.frames.slow.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.frames.slow.count\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.slow.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},frames_slow_rate:{brief:\"The rate of slow frames, or `app_vitals.frames.slow.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_slow_rate attribute\"}]},\"frames.total\":{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:60,deprecation:{replacement:\"app.vitals.frames.total.count\",reason:\"Replaced by app.vitals.frames.total.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.frames.total.count\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.total.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},fs_error:{brief:\"The error message of a file system error.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"ENOENT: no such file or directory\",deprecation:{replacement:\"error.type\",reason:\"This attribute is not part of the OpenTelemetry specification and error.type fits much better.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"gcp.function.context.event_id\":{brief:\"The event ID from the legacy GCP Cloud Function context (1st gen)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_id attribute\"}]},\"gcp.function.context.event_type\":{brief:\"The type of the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"google.pubsub.topic.publish\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_type attribute\"}]},\"gcp.function.context.id\":{brief:\"The unique event ID from the GCP CloudEvents context (2nd gen Cloud Functions)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.id attribute\"}]},\"gcp.function.context.resource\":{brief:\"The resource that triggered the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.resource attribute\"}]},\"gcp.function.context.source\":{brief:\"The source of the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"//pubsub.googleapis.com/projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.source attribute\"}]},\"gcp.function.context.specversion\":{brief:\"The CloudEvents specification version of the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.specversion attribute\"}]},\"gcp.function.context.time\":{brief:\"The timestamp of the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.time attribute\"}]},\"gcp.function.context.timestamp\":{brief:\"The legacy timestamp of the GCP Cloud Function event\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.timestamp attribute\"}]},\"gcp.function.context.type\":{brief:\"The type of the GCP Cloud Function event context\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cloud_functions.context\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.type attribute\"}]},\"gcp.project.id\":{brief:\"The ID of the project in GCP that this resource is associated with\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-project-123\",changelog:[{version:\"0.11.0\",prs:[403]}]},\"gen_ai.agent.name\":{brief:\"The name of the agent being used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ResearchAssistant\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.context.utilization\":{brief:\"The fraction of the model context window utilized by this generation.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.75,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.utilization attribute\"}]},\"gen_ai.context.window_size\":{brief:\"The maximum context window size supported by the model for this generation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:128e3,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.window_size attribute\"}]},\"gen_ai.conversation.id\":{brief:\"The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"conv_5j66UpCpwteGg4YSxUnt7lPY\",changelog:[{version:\"0.4.0\",prs:[250]}]},\"gen_ai.cost.cache_creation.input_tokens\":{brief:\"The cost of input tokens written to cache in USD.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.cache_creation.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_creation.input_tokens.\",\"This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.cache_read.input_tokens\":{brief:\"The cost of cached input tokens in USD.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.cache_read.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_read.input_tokens.\",\"This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.input_tokens\":{brief:\"The total cost of all input tokens in USD (includes cached and cache creation tokens).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.input_tokens.\",\"This is the total cost of all input tokens, including cached and cache creation tokens at their respective rates. For the cached portion, see gen_ai.cost.cache_read.input_tokens. For the cache creation portion, see gen_ai.cost.cache_creation.input_tokens.\"]},\"gen_ai.cost.output_tokens\":{brief:\"The total cost of all output tokens in USD (includes reasoning tokens).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.output_tokens.\",\"This is the total cost of all output tokens, including reasoning tokens at their respective rate. For the reasoning portion, see gen_ai.cost.reasoning.output_tokens.\"]},\"gen_ai.cost.reasoning.output_tokens\":{brief:\"The cost of reasoning output tokens in USD.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.reasoning.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.reasoning.output_tokens.\",\"This is a subset of gen_ai.cost.output_tokens, not an independent cost. Do not sum this with gen_ai.cost.output_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.total_tokens\":{brief:\"The total cost for the tokens used.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,aliases:[\"ai.total_cost\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[126]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.total_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.total_tokens.\"]},\"gen_ai.embeddings.input\":{brief:\"The input to the embeddings model.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"What's the weather in Paris?\",changelog:[{version:\"0.3.1\",prs:[195]}]},\"gen_ai.function_id\":{brief:\"Framework-specific tracing label for the execution of a function or other unit of execution in a generative AI system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-awesome-function\",changelog:[{version:\"0.5.0\",prs:[308],description:\"Added gen_ai.function_id attribute\"}]},\"gen_ai.input.messages\":{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"parts\": [{\"type\": \"text\", \"content\": \"Weather in Paris?\"}]}, {\"role\": \"assistant\", \"parts\": [{\"type\": \"tool_call\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]}, {\"role\": \"tool\", \"parts\": [{\"type\": \"tool_call_response\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"result\": \"rainy, 57\\xB0F\"}]}]',aliases:[\"ai.texts\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.operation.name\":{brief:\"The name of the operation being performed. It has the following list of well-known values: 'chat', 'create_agent', 'embeddings', 'execute_tool', 'generate_content', 'invoke_agent', 'text_completion'. If one of them applies, then that value MUST be used. Otherwise a custom value MAY be used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"chat\",changelog:[{version:\"0.4.0\",prs:[225]},{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.operation.type\":{brief:\"The type of AI operation. Must be one of 'agent' (invoke_agent and create_agent spans), 'ai_client' (any LLM call), 'tool' (execute_tool spans), 'handoff' (handoff spans), 'other' (input and output processors, skill loading, guardrails etc.) . Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"tool\",changelog:[{version:\"0.4.0\",prs:[257]},{version:\"0.1.0\",prs:[113,127]}]},\"gen_ai.output.messages\":{brief:\"The model's response messages. It has to be a stringified version of an array of message objects, which can include text responses and tool calls.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"The weather in Paris is currently rainy with a temperature of 57\\xB0F.\"}], \"finish_reason\": \"stop\"}]',changelog:[{version:\"0.4.0\",prs:[221]}]},\"gen_ai.pipeline.name\":{brief:\"Name of the AI pipeline or chain being executed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",aliases:[\"ai.pipeline.name\"],changelog:[{version:\"0.1.0\",prs:[76,127]}]},\"gen_ai.prompt\":{brief:\"The input messages sent to the model\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{reason:\"Deprecated from OTEL, use gen_ai.input.messages with the new format instead.\"},changelog:[{version:\"0.1.0\",prs:[74,108,119]},{version:\"0.0.0\"}]},\"gen_ai.prompt.name\":{brief:\"The name of the prompt that uniquely identifies it.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!0,visibility:\"public\",example:\"summarize_text\",aliases:[\"mcp.prompt.name\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added gen_ai.prompt.name attribute\"}]},\"gen_ai.provider.name\":{brief:\"The Generative AI provider as identified by the client or server instrumentation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"openai\",aliases:[\"ai.model.provider\",\"gen_ai.system\"],changelog:[{version:\"0.4.0\",prs:[253]}]},\"gen_ai.request.available_tools\":{brief:\"The available tools for the model. It has to be a stringified version of an array of objects.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"description\": \"Get the weather for a given location\"}, {\"name\": \"get_news\", \"description\": \"Get the news for a given topic\"}]',deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,127]}]},\"gen_ai.request.frequency_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[\"ai.frequency_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.max_tokens\":{brief:\"The maximum number of tokens to generate in the response.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2048,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.request.messages\":{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"system\", \"content\": \"Generate a random number.\"}, {\"role\": \"user\", \"content\": [{\"text\": \"Generate a random number between 0 and 10.\", \"type\": \"text\"}]}, {\"role\": \"tool\", \"content\": {\"toolCallId\": \"1\", \"toolName\": \"Weather\", \"output\": \"rainy\"}}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[\"ai.input_messages\"],changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74,108,119,122]}]},\"gen_ai.request.model\":{brief:\"The model identifier being used for the request.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4-turbo-preview\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.request.presence_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[\"ai.presence_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.reasoning_effort\":{brief:\"Constrains the effort on reasoning for reasoning models. Supported values vary by provider.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"high\",changelog:[{version:\"0.13.0\",prs:[334],description:\"Added gen_ai.request.reasoning_effort attribute\"}]},\"gen_ai.request.seed\":{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[\"ai.seed\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.request.stop_sequences\":{brief:\"List of sequences that the model will use to stop generating further tokens.\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"forest\",\"lived\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added gen_ai.request.stop_sequences attribute\"}]},\"gen_ai.request.temperature\":{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.1,aliases:[\"ai.temperature\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.top_k\":{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:35,aliases:[\"ai.top_k\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.top_p\":{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.7,aliases:[\"ai.top_p\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.response.finish_reasons\":{brief:\"The reason why the model stopped generating.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"COMPLETE\",aliases:[\"ai.finish_reason\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.response.id\":{brief:\"Unique identifier for the completion.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gen_123abc\",aliases:[\"ai.generation_id\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.response.model\":{brief:\"The vendor-specific ID of the model used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4\",aliases:[\"ai.model_id\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"gen_ai.response.streaming\":{brief:\"Whether or not the AI model call's response was streamed back asynchronously\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[\"ai.streaming\"],changelog:[{version:\"0.1.0\",prs:[76]}]},\"gen_ai.response.text\":{brief:\"The model's response text messages. It has to be a stringified version of an array of response text messages.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[\"The weather in Paris is rainy and overcast, with temperatures around 57\\xB0F\", \"The weather in London is sunny and warm, with temperatures around 65\\xB0F\"]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.response.time_to_first_chunk\":{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.6853435,aliases:[\"gen_ai.response.time_to_first_token\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.response.time_to_first_chunk attribute\"}]},\"gen_ai.response.time_to_first_token\":{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.6853435,deprecation:{replacement:\"gen_ai.response.time_to_first_chunk\"},aliases:[\"gen_ai.response.time_to_first_chunk\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.response.time_to_first_chunk\"},{version:\"0.4.0\",prs:[227]}]},\"gen_ai.response.tokens_per_second\":{brief:\"The total output tokens per seconds throughput\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12345.67,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[66]}]},\"gen_ai.response.tool_calls\":{brief:\"The tool calls in the model's response. It has to be a stringified version of an array of objects.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.system\":{brief:\"The provider of the model.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[\"ai.model.provider\",\"gen_ai.provider.name\"],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.system_instructions\":{brief:\"The system instructions passed to the model.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"You are a helpful assistant\",aliases:[\"ai.preamble\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.system.message\":{brief:\"The system instructions passed to the model.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"You are a helpful assistant\",deprecation:{replacement:\"gen_ai.system_instructions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.tool.call.arguments\":{brief:\"The arguments of the tool call. It has to be a stringified version of the arguments to the tool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'{\"location\": \"Paris\"}',aliases:[\"gen_ai.tool.input\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.call.result\":{brief:\"The result of the tool call. It has to be a stringified version of the result of the tool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"rainy, 57\\xB0F\",aliases:[\"gen_ai.tool.output\",\"gen_ai.tool.message\",\"mcp.tool.result.content\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.definitions\":{brief:\"The list of source system tool definitions available to the GenAI agent or model.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"type\": \"function\", \"name\": \"get_current_weather\", \"description\": \"Get the current weather in a given location\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"The city and state, e.g. San Francisco, CA\"}, \"unit\": {\"type\": \"string\", \"enum\": [\"celsius\", \"fahrenheit\"]}}, \"required\": [\"location\", \"unit\"]}}]',changelog:[{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.description\":{brief:\"The description of the tool being used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Searches the web for current information about a topic\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.tool.input\":{brief:\"The input of the tool being used. It has to be a stringified version of the input to the tool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"location\": \"Paris\"}',deprecation:{replacement:\"gen_ai.tool.call.arguments\"},aliases:[\"gen_ai.tool.call.arguments\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.tool.message\":{brief:\"The response from a tool or function call passed to the model.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.tool.name\":{brief:\"Name of the tool utilized by the agent.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Flights\",aliases:[\"ai.function_call\",\"mcp.tool.name\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.tool.output\":{brief:\"The output of the tool being used. It has to be a stringified version of the output of the tool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.message\",\"mcp.tool.result.content\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.tool.type\":{brief:\"The type of tool being used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"function\",deprecation:{reason:\"The gen_ai.tool.type attribute is deprecated and should no longer be set.\"},changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.usage.cache_creation.input_tokens\":{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:100,aliases:[\"gen_ai.usage.input_tokens.cache_write\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.cache_read.input_tokens\":{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:50,aliases:[\"gen_ai.usage.input_tokens.cached\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.completion_tokens\":{brief:\"The number of tokens used in the GenAI response (completion).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[\"ai.completion_tokens.used\",\"gen_ai.usage.output_tokens\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.input_tokens\":{brief:\"The number of tokens used to process the AI input (prompt) including cached input tokens.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[\"ai.prompt_tokens.used\",\"gen_ai.usage.prompt_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes cached input tokens. gen_ai.usage.cache_read.input_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},\"gen_ai.usage.input_tokens.cached\":{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,deprecation:{replacement:\"gen_ai.usage.cache_read.input_tokens\"},aliases:[\"gen_ai.usage.cache_read.input_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.input_tokens.cache_write\":{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"gen_ai.usage.cache_creation.input_tokens\"},aliases:[\"gen_ai.usage.cache_creation.input_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_creation.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[217,228]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.output_tokens\":{brief:\"The number of tokens used for creating the AI output (including reasoning tokens).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[\"ai.completion_tokens.used\",\"gen_ai.usage.completion_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes reasoning tokens. gen_ai.usage.reasoning.output_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},\"gen_ai.usage.output_tokens.reasoning\":{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:75,deprecation:{replacement:\"gen_ai.usage.reasoning.output_tokens\"},aliases:[\"gen_ai.usage.reasoning.output_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.prompt_tokens\":{brief:\"The number of tokens used in the GenAI input (prompt).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[\"ai.prompt_tokens.used\",\"gen_ai.usage.input_tokens\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.reasoning.output_tokens\":{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:75,aliases:[\"gen_ai.usage.output_tokens.reasoning\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.total_tokens\":{brief:\"The total number of tokens used to process the prompt. (input tokens plus output todkens)\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:20,aliases:[\"ai.total_tokens.used\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is the sum of gen_ai.usage.input_tokens and gen_ai.usage.output_tokens. Do not sum this with either of them \\u2014 they are already included.\"]},\"graphql.document\":{brief:\"The GraphQL document being executed.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"The document may contain sensitive information in arguments or variables. Instrumentation should redact sensitive information when possible.\"},isInOtel:!0,visibility:\"public\",example:\"query findBookById { bookById(id: ?) { name } }\",changelog:[{version:\"0.7.0\",description:\"Adds the `graphql.document` attribute to track the GraphQL document being executed.\"}]},\"graphql.operation.name\":{brief:\"The name of the operation being executed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"findBookById\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"graphql.operation.type\":{brief:\"The type of the operation being executed.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"query\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},hardwareConcurrency:{brief:\"The number of logical CPU cores available.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"14\",deprecation:{replacement:\"device.processor_count\",reason:\"Old namespace-less attribute, to be replaced with device.processor_count for span-first future\"},aliases:[\"device.processor_count\"],changelog:[{version:\"0.5.0\",prs:[281,300],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"http.client_ip\":{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"client.address\"},aliases:[\"client.address\"],changelog:[{version:\"0.1.0\",prs:[61,106,127]},{version:\"0.0.0\"}]},\"http.decoded_response_content_length\":{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.flavor\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[\"network.protocol.version\",\"net.protocol.version\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.fragment\":{brief:\"The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"#details\",changelog:[{version:\"0.0.0\"}]},\"http.host\":{brief:\"The domain name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use one of `server.address` or `client.address`, depending on the usage\"},aliases:[\"server.address\",\"client.address\",\"http.server_name\",\"net.host.name\",\"server_name\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.method\":{brief:\"The HTTP method used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[\"http.request.method\",\"http.request_method\",\"method\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"http.query\":{brief:\"The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!1,visibility:\"public\",example:\"?foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},\"http.request.body.data\":{brief:\"HTTP request body data. Can be given as string or structural data of any format.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',changelog:[{version:\"0.6.0\",prs:[336],description:\"Added http.request.body.data attribute\"}]},\"http.request.connection_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and SOCKS authentication.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955515e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.connect_start\":{brief:\"The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555111e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.domain_lookup_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555201e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.domain_lookup_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555322e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.fetch_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555389e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.header.<key>\":{brief:\"HTTP request headers, <key> being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.request.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},\"http.request.method\":{brief:\"The HTTP method used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GET\",aliases:[\"method\",\"http.method\",\"http.request_method\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"http.request_method\":{brief:\"The HTTP method used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[\"method\",\"http.method\",\"http.request.method\"],changelog:[{version:\"0.6.0\",prs:[343],description:\"Added http.request_method attribute\"}]},\"http.request.redirect_end\":{brief:\"The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829558502e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},\"http.request.redirect_start\":{brief:\"The UNIX timestamp representing the start time of the fetch which that initiates the redirect.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555495e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.request_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955551e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.resend_count\":{brief:\"The ordinal number of request resending attempt (for any reason, including redirects).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.request.response_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955589e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.response_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:17328295557e-1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.same_origin\":{brief:\"Indicates that a URL has the same origin as the current page's origin in the browser.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[\"url.same_origin\"],changelog:[{version:\"0.16.0\",prs:[456],description:\"Added http.request.same_origin attribute\"}]},\"http.request.secure_connection_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955573e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.time_to_first_byte\":{brief:\"The time in seconds from the browser's timeorigin to when the first byte of the request's response was received. See https://web.dev/articles/ttfb#measure-resource-requests\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.032,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[131]}]},\"http.request.worker_start\":{brief:\"The UNIX timestamp representing the timestamp immediately before dispatching the FetchEvent if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955368e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},\"http.response.body.size\":{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,aliases:[\"http.response_content_length\",\"http.response.header.content-length\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[106]},{version:\"0.0.0\"}]},\"http.response_content_length\":{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,deprecation:{replacement:\"http.response.body.size\"},aliases:[\"http.response.body.size\",\"http.response.header.content-length\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,106]},{version:\"0.0.0\"}]},\"http.response.header.content-length\":{brief:\"The size of the message body sent to the recipient (in bytes)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http.response.header.custom-header=['foo', 'bar']\",aliases:[\"http.response_content_length\",\"http.response.body.size\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"http.response.header.<key>\":{brief:\"HTTP response headers, <key> being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},\"http.response.size\":{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:456,aliases:[\"http.response_transfer_size\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.response.status_code\":{brief:\"The status code of the HTTP response.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:404,aliases:[\"http.status_code\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.response_transfer_size\":{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.size\"},aliases:[\"http.response.size\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"http.route\":{brief:\"The matched route, that is, the path template in the format used by the respective server framework.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[\"url.template\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"http.scheme\":{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"https\",deprecation:{replacement:\"url.scheme\"},aliases:[\"url.scheme\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"http.server_name\":{brief:\"The server domain name\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[\"server.address\",\"net.host.name\",\"http.host\",\"server_name\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.server.request.time_in_queue\":{brief:\"The time in milliseconds the request spent in the server queue before processing began. Measured from the X-Request-Start header set by reverse proxies (e.g., Nginx, HAProxy, Heroku) to when the application started handling the request.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.5.0\",prs:[267]}]},\"http.status_code\":{brief:\"The status code of the HTTP response.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:404,deprecation:{replacement:\"http.response.status_code\"},aliases:[\"http.response.status_code\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"http.target\":{brief:\"The pathname and query string of the URL.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/test?foo=bar#buzz\",deprecation:{replacement:\"url.path\",reason:\"This attribute is being deprecated in favor of url.path and url.query\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"http.url\":{brief:\"The URL of the resource that was fetched.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[\"url.full\",\"url\"],changelog:[{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},\"http.user_agent\":{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",deprecation:{replacement:\"user_agent.original\"},aliases:[\"user_agent.original\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},id:{brief:\"A unique identifier for the span.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.0.0\"}]},inp:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,deprecation:{replacement:\"browser.web_vital.inp.value\",reason:\"The INP web vital is now recorded as a browser.web_vital.inp.value attribute.\"},aliases:[\"browser.web_vital.inp.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"jsonrpc.protocol.version\":{brief:\"The version of the JSON-RPC protocol used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2.0\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.protocol.version attribute\"}]},\"jsonrpc.request.id\":{brief:\"The JSON-RPC request identifier. Unique within the session.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1\",aliases:[\"mcp.request.id\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.request.id attribute\"}]},\"jvm.gc.action\":{brief:\"Name of the garbage collector action.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"end of minor GC\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.gc.name\":{brief:\"Name of the garbage collector.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Young Generation\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.memory.pool.name\":{brief:\"Name of the memory pool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.memory.type\":{brief:\"Name of the memory pool.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.thread.daemon\":{brief:\"Whether the thread is daemon or not.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"jvm.thread.state\":{brief:\"State of the thread.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"blocked\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"koa.name\":{brief:\"The name of the Koa middleware or matched route that handled the request.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",deprecation:{reason:\"No single replacement. SDKs should use http.route for router layers and code.function.name for middleware layers instead.\"},changelog:[{version:\"0.16.0\",prs:[490],description:\"Added koa.name attribute as deprecated\"}]},\"koa.type\":{brief:\"The type of the Koa layer that handled the request.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"router\",changelog:[{version:\"0.16.0\",prs:[471],description:\"Added koa.type attribute\"}]},lcp:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2500,deprecation:{replacement:\"browser.web_vital.lcp.value\",reason:\"The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.\"},aliases:[\"browser.web_vital.lcp.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"lcp.element\":{brief:\"The dom element responsible for the largest contentful paint.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"img\",deprecation:{replacement:\"browser.web_vital.lcp.element\",reason:\"The LCP element is now recorded as a browser.web_vital.lcp.element attribute.\"},aliases:[\"browser.web_vital.lcp.element\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"lcp.id\":{brief:\"The id of the dom element responsible for the largest contentful paint.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"#hero\",deprecation:{replacement:\"browser.web_vital.lcp.id\",reason:\"The LCP id is now recorded as a browser.web_vital.lcp.id attribute.\"},aliases:[\"browser.web_vital.lcp.id\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"lcp.loadTime\":{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1402,deprecation:{replacement:\"browser.web_vital.lcp.load_time\",reason:\"The LCP load time is now recorded as a browser.web_vital.lcp.load_time attribute.\"},aliases:[\"browser.web_vital.lcp.load_time\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"lcp.renderTime\":{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1685,deprecation:{replacement:\"browser.web_vital.lcp.render_time\",reason:\"The LCP render time is now recorded as a browser.web_vital.lcp.render_time attribute.\"},aliases:[\"browser.web_vital.lcp.render_time\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"lcp.size\":{brief:\"The size of the largest contentful paint element.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234,deprecation:{replacement:\"browser.web_vital.lcp.size\",reason:\"The LCP size is now recorded as a browser.web_vital.lcp.size attribute.\"},aliases:[\"browser.web_vital.lcp.size\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"lcp.url\":{brief:\"The url of the dom element responsible for the largest contentful paint.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com\",deprecation:{replacement:\"browser.web_vital.lcp.url\",reason:\"The LCP url is now recorded as a browser.web_vital.lcp.url attribute.\"},aliases:[\"browser.web_vital.lcp.url\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"logger.name\":{brief:\"The name of the logger that generated this event.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"myLogger\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"mcp.cancelled.reason\":{brief:\"Reason for the cancellation of an MCP operation.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Cancellation reasons may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"User cancelled the request\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.cancelled.request_id\":{brief:\"Request ID of the cancelled MCP operation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"123\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.name\":{brief:\"Name of the MCP client application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"claude-desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.title\":{brief:\"Display title of the MCP client application.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Client titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Claude Desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.version\":{brief:\"Version of the MCP client application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.lifecycle.phase\":{brief:\"Lifecycle phase indicator for MCP operations.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"initialization_complete\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.data_type\":{brief:\"Data type of the logged message content.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"string\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.level\":{brief:\"Log level for MCP logging operations.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"info\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.logger\":{brief:\"Logger name for MCP logging operations.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Logger names may be user-defined and could contain sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"mcp_server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.message\":{brief:\"Log message content from MCP logging operations.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Log messages can contain user data\"},isInOtel:!1,visibility:\"public\",example:\"Tool execution completed successfully\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.method.name\":{brief:\"The name of the MCP request or notification method being called.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tools/call\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.current\":{brief:\"Current progress value of an MCP operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.message\":{brief:\"Progress message describing the current state of an MCP operation.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Progress messages may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"Processing 50 of 100 items\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.percentage\":{brief:\"Calculated progress percentage of an MCP operation. Computed from current/total * 100.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.token\":{brief:\"Token for tracking progress of an MCP operation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"progress-token-123\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.total\":{brief:\"Total progress target value of an MCP operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.name\":{brief:\"Name of the MCP prompt template being used.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",deprecation:{replacement:\"gen_ai.prompt.name\",reason:\"OTel uses gen_ai.prompt.name for MCP prompt names\"},aliases:[\"gen_ai.prompt.name\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.prompt.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.description\":{brief:\"Description of the prompt result.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"A summary of the requested information\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_content\":{brief:\"Content of the message in the prompt result. Used for single message results only.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"Please provide a summary of the document\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_count\":{brief:\"Number of messages in the prompt result.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_role\":{brief:\"Role of the message in the prompt result. Used for single message results only.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.protocol.ready\":{brief:\"Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.protocol.version\":{brief:\"MCP protocol version used in the session.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2024-11-05\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.request.argument.<key>\":{brief:\"MCP request argument with dynamic key suffix. The <key> is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Arguments contain user input\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mcp.request.argument.query='weather in Paris'\",changelog:[{version:\"0.3.0\",prs:[176]}]},\"mcp.request.argument.name\":{brief:\"Name argument from prompts/get MCP request.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Prompt names can contain user input\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.request.argument.uri\":{brief:\"URI argument from resources/read MCP request.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"URIs can contain user file paths\"},isInOtel:!1,visibility:\"public\",example:\"file:///path/to/resource\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.request.id\":{brief:\"JSON-RPC request identifier for the MCP request. Unique within the MCP session.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"jsonrpc.request.id\",reason:\"OTel models MCP as JSON-RPC, uses jsonrpc.request.id\"},aliases:[\"jsonrpc.request.id\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of jsonrpc.request.id\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.resource.protocol\":{brief:\"Protocol of the resource URI being accessed, extracted from the URI.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"file\",deprecation:{replacement:\"network.protocol.name\",reason:\"OTel uses the generic network.protocol.name attribute\"},aliases:[\"network.protocol.name\",\"net.protocol.name\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.protocol.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.resource.uri\":{brief:\"The resource URI being accessed in an MCP operation.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"URIs can contain sensitive file paths\"},isInOtel:!0,visibility:\"public\",example:\"file:///path/to/file.txt\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.server.name\":{brief:\"Name of the MCP server application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sentry-mcp-server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.server.title\":{brief:\"Display title of the MCP server application.\",type:\"string\",applyScrubbing:{key:\"manual\",reason:\"Server titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Sentry MCP Server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.server.version\":{brief:\"Version of the MCP server application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"0.1.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.session.id\":{brief:\"Identifier for the MCP session.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"550e8400-e29b-41d4-a716-446655440000\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.name\":{brief:\"Name of the MCP tool being called.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"calculator\",deprecation:{replacement:\"gen_ai.tool.name\",reason:\"OTel uses gen_ai.tool.name for MCP tool names\"},aliases:[\"gen_ai.tool.name\",\"ai.function_call\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.result.content\":{brief:\"The content of the tool result.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Tool results can contain user data\"},isInOtel:!1,visibility:\"public\",example:'{\"output\": \"rainy\", \"toolCallId\": \"1\"}',deprecation:{replacement:\"gen_ai.tool.call.result\",reason:\"OTel uses gen_ai.tool.call.result for MCP tool results\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.call.result\"},{version:\"0.3.0\",prs:[171]},{version:\"0.2.0\",prs:[164]}]},\"mcp.tool.result.content_count\":{brief:\"Number of content items in the tool result.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.result.is_error\":{brief:\"Whether a tool execution resulted in an error.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{replacement:\"error.type\",reason:\"OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).\"},changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of error.type\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.transport\":{brief:\"Transport method used for MCP communication.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stdio\",deprecation:{replacement:\"network.transport\",reason:\"OTel uses the generic network.transport attribute\"},aliases:[\"network.transport\",\"net.transport\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.transport\"},{version:\"0.3.0\",prs:[171]}]},\"mdc.<key>\":{brief:\"Attributes from the Mapped Diagnostic Context (MDC) present at the moment the log record was created. The MDC is supported by all the most popular logging solutions in the Java ecosystem, and it's usually implemented as a thread-local map that stores context for e.g. a specific request.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mdc.some_key='some_value'\",changelog:[{version:\"0.3.0\",prs:[176]}]},\"messaging.batch.message_count\":{brief:\"The number of messages sent, received, or processed in the scope of the batching operation.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.6.0\",prs:[341],description:\"Added messaging.batch.message_count attribute\"}]},\"messaging.destination\":{brief:\"The message destination name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",deprecation:{replacement:\"messaging.destination.name\",reason:\"This attribute is being deprecated in favor of messaging.destination.name, which is the OTel-aligned replacement.\"},aliases:[\"messaging.destination.name\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added messaging.destination attribute, deprecated in favor of messaging.destination.name\"}]},\"messaging.destination.connection\":{brief:\"The message destination connection.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.destination.name\":{brief:\"The message destination name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"BestTopic\",aliases:[\"messaging.destination\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added messaging.destination as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.message.body.size\":{brief:\"The size of the message body in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:839,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.message.conversation_id\":{brief:'The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called \"Correlation ID\".',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"MyConversationId\",changelog:[{version:\"0.16.0\",prs:[468],description:\"Added messaging.message.conversation_id attribute\"}]},\"messaging.message.envelope.size\":{brief:\"The size of the message body and metadata in bytes.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1045,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.message.id\":{brief:\"A value used by the messaging system as an identifier for the message, represented as a string.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.message.receive.latency\":{brief:\"The latency between when the message was published and received.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732847252,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.message.retry.count\":{brief:\"The amount of attempts to send the message.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.operation.name\":{brief:\"The name of the messaging operation being performed\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"send\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added messaging.operation.name attribute\"}]},\"messaging.operation.type\":{brief:\"A string identifying the type of the messaging operation\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"create\",changelog:[{version:\"0.1.0\",prs:[51,127]}]},\"messaging.rabbitmq.destination.routing_key\":{brief:\"RabbitMQ message routing key.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"myKey\",changelog:[{version:\"0.16.0\",prs:[468],description:\"Added messaging.rabbitmq.destination.routing_key attribute\"}]},\"messaging.system\":{brief:\"The messaging system as identified by the client instrumentation.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"activemq\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},method:{brief:\"The HTTP method used.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[\"http.request.method\",\"http.request_method\",\"http.method\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"middleware.name\":{brief:\"The name of the middleware.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",changelog:[{version:\"0.6.0\",prs:[336],description:\"Added middleware.name attribute\"}]},\"navigation.origin\":{brief:\"The origin of the navigation (usually client side router navigations). Should preferrably parameterized template (like url.template) or a URL path otherwise.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",aliases:[\"sentry.sveltekit.navigation.from\"],changelog:[{version:\"0.16.0\",prs:[467],description:\"Added navigation.origin attribute\"}]},\"navigation.route.id\":{brief:\"The identifier of the matched client-side route, as assigned by the routing framework (e.g., vue-router name, react-router id).\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"AboutView\",changelog:[{version:\"0.16.0\",prs:[468],description:\"Added navigation.route.id attribute\"}]},\"navigation.type\":{brief:\"The type of navigation done by a client-side router.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"router.push\",aliases:[\"sentry.sveltekit.navigation.type\"],changelog:[{version:\"0.16.0\",prs:[467],description:\"Added new deprecated alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"nel.elapsed_time\":{brief:\"The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},\"nel.phase\":{brief:'If request failed, the phase of its network error. If request succeeded, \"application\".',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"application\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"nel.referrer\":{brief:\"request's referrer, as determined by the referrer policy associated with its client.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/foo?bar=baz\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"nel.sampling_function\":{brief:\"The sampling function used to determine if the request should be sampled.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},\"nel.type\":{brief:'If request failed, the type of its network error. If request succeeded, \"ok\".',type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dns.unreachable\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"network.connection.effective_type\":{brief:\"Specifies the effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"4g\",aliases:[\"effectiveConnectionType\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.effective_type to be used instead of effectiveConnectionType\"}]},\"network.connection.rtt\":{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,aliases:[\"connection.rtt\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.rtt to be used instead of connection.rtt\"}]},\"network.connection.type\":{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"wifi\",aliases:[\"device.connection_type\",\"connectionType\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.type to be used instead of connectionType\"}]},\"network.local.address\":{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[\"net.host.ip\",\"net.sock.host.addr\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.local.port\":{brief:\"Local port number of the network connection.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:65400,aliases:[\"net.sock.host.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"network.peer.address\":{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[\"net.peer.ip\",\"net.sock.peer.addr\"],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},\"network.peer.port\":{brief:\"Peer port number of the network connection.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:65400,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"network.protocol.name\":{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http\",aliases:[\"net.protocol.name\",\"mcp.resource.protocol\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.protocol.version\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",aliases:[\"http.flavor\",\"net.protocol.version\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.transport\":{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",aliases:[\"net.transport\",\"mcp.transport\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.type\":{brief:\"OSI network layer or non-OSI equivalent.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ipv4\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"net.host.ip\":{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.local.address\"},aliases:[\"network.local.address\",\"net.sock.host.addr\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.host.name\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[\"server.address\",\"http.server_name\",\"http.host\",\"server_name\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.host.port\":{brief:\"Server port number.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\"},aliases:[\"server.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.peer.ip\":{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[\"network.peer.address\",\"net.sock.peer.addr\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.peer.name\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use server.address on client spans and client.address on server spans.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.peer.port\":{brief:\"Peer port number.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\",reason:\"Deprecated, use server.port on client spans and client.port on server spans.\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.protocol.name\":{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http\",deprecation:{replacement:\"network.protocol.name\"},aliases:[\"network.protocol.name\",\"mcp.resource.protocol\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.protocol.version\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[\"network.protocol.version\",\"http.flavor\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.family\":{brief:\"OSI transport and network layer\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"inet\",deprecation:{replacement:\"network.transport\",reason:\"Deprecated, use network.transport and network.type.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.sock.host.addr\":{brief:\"Local address of the network connection mapping to Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{replacement:\"network.local.address\"},aliases:[\"network.local.address\",\"net.host.ip\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.host.port\":{brief:\"Local port number of the network connection.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.local.port\"},aliases:[\"network.local.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.sock.peer.addr\":{brief:\"Peer address of the network connection - IP address\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[\"network.peer.address\",\"net.peer.ip\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.peer.name\":{brief:\"Peer address of the network connection - Unix domain socket name\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{reason:\"Deprecated from OTEL, no replacement at this time\"},changelog:[{version:\"0.1.0\",prs:[61,119,127]},{version:\"0.0.0\"}]},\"net.sock.peer.port\":{brief:\"Peer port number of the network connection.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.peer.port\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.transport\":{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",deprecation:{replacement:\"network.transport\"},aliases:[\"network.transport\",\"mcp.transport\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"os.build\":{brief:\"The build ID of the operating system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"os.build_id\"},aliases:[\"os.build_id\"],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build attribute, deprecated in favor of os.build_id\"}]},\"os.build_id\":{brief:\"The build ID of the operating system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[\"os.build\"],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build as alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.description\":{brief:\"Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu 18.04.1 LTS\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.kernel_version\":{brief:\"An independent kernel version string. Typically the entire output of the `uname` syscall.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"20.2.0\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.kernel_version attribute\"}]},\"os.name\":{brief:\"Human readable operating system name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.raw_description\":{brief:\"An unprocessed description string obtained by the operating system. For some well-known runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are not explicitly given.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Ubuntu 22.04.4 LTS (Jammy Jellyfish)\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.raw_description attribute\"}]},\"os.rooted\":{brief:\"Whether the operating system has been jailbroken or rooted.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.rooted attribute\"}]},\"os.theme\":{brief:\"Whether the OS runs in dark mode or light mode.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dark\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.theme attribute\"}]},\"os.type\":{brief:\"The operating system type.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"linux\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.version\":{brief:\"The version of the operating system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.kind\":{brief:\"The span kind (https://opentelemetry.io/docs/concepts/signals/traces/#span-kind). Deprecated, use `sentry.kind` instead.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SERVER\",deprecation:{replacement:\"sentry.kind\",reason:\"Deprecated in favor of sentry.kind\"},aliases:[\"sentry.kind\"],changelog:[{version:\"0.13.0\",prs:[440],description:\"Added otel.kind attribute\"}]},\"otel.scope.name\":{brief:\"The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"io.opentelemetry.contrib.mongodb\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.scope.version\":{brief:\"The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2.4.5\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.status_code\":{brief:\"Name of the code, either \\u201COK\\u201D or \\u201CERROR\\u201D. MUST NOT be set if the status code is UNSET.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"OK\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.status_description\":{brief:\"Description of the Status if it has a value, otherwise not set.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"resource not found\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"params.<key>\":{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"params.id='123'\",aliases:[\"url.path.parameter.<key>\"],changelog:[{version:\"0.1.0\",prs:[103]}]},\"performance.activationStart\":{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.983,deprecation:{replacement:\"browser.performance.navigation.activation_start\",reason:\"The activationStart is now recorded as the browser.performance.navigation.activation_start attribute.\"},aliases:[\"browser.performance.navigation.activation_start\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.activationStart attribute\"}]},\"performance.timeOrigin\":{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,deprecation:{replacement:\"browser.performance.time_origin\",reason:\"The timeOrigin is now recorded as the browser.performance.time_origin attribute.\"},aliases:[\"browser.performance.time_origin\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.timeOrigin attribute\"}]},previous_route:{brief:\"Also used by mobile SDKs to indicate the previous route in the application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"HomeScreen\",changelog:[{version:\"0.1.0\",prs:[74]},{version:\"0.0.0\"}]},\"process.command_args\":{brief:\"All the command arguments (including the command/executable itself) as received by the process.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:[\"cmd/otecol\",\"--config=config.yaml\"],changelog:[{version:\"0.6.0\",prs:[327],description:\"Added process.command_args attribute\"}]},\"process.executable.name\":{brief:\"The name of the executable that started the process.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"getsentry\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.pid\":{brief:\"The process ID of the running process.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:12345,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"process.runtime.description\":{brief:\"An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. Equivalent to `raw_description` in the Sentry runtime context.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",aliases:[\"runtime.raw_description\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.runtime.engine.name\":{brief:\"The name of the runtime engine.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"v8\",changelog:[{version:\"0.0.0\"}]},\"process.runtime.engine.version\":{brief:\"The version of the runtime engine.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"12.9.202.13-rusty\",changelog:[{version:\"0.0.0\"}]},\"process.runtime.name\":{brief:\"The name of the runtime. Equivalent to `name` in the Sentry runtime context.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"node\",aliases:[\"runtime.name\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.runtime.version\":{brief:\"The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",aliases:[\"runtime.version\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"query.<key>\":{brief:\"An item in a query string. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"query.id='123'\",deprecation:{replacement:\"url.query\",reason:\"Instead of sending items individually in query.<key>, they should be sent all together with url.query.\"},changelog:[{version:\"0.1.0\",prs:[103]}]},\"react.version\":{brief:\"The version of the React framework\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"18.2.0\",changelog:[{version:\"0.7.0\",prs:[368],description:\"Added react.version attribute\"}]},release:{brief:\"The sentry release.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.release\"},aliases:[\"sentry.release\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"remix.action_form_data.<key>\":{brief:\"Remix form data, <key> being the form data key, the value being the form data value.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.text='test'\",changelog:[{version:\"0.1.0\",prs:[103]}]},replay_id:{brief:\"The id of the sentry replay.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.replay_id\"},aliases:[\"sentry.replay_id\"],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"resource.deployment.environment\":{brief:\"The software deployment environment name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.5.0\",prs:[266]}]},\"resource.deployment.environment.name\":{brief:\"The software deployment environment name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.3.1\",prs:[196]}]},\"resource.render_blocking_status\":{brief:\"The render blocking status of the resource.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"non-blocking\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},route:{brief:\"The matched route, that is, the path template in the format used by the respective server framework. Also used by mobile SDKs to indicate the current route in the application.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"App\\\\Controller::indexAction\",deprecation:{replacement:\"http.route\"},aliases:[\"http.route\"],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},\"rpc.grpc.status_code\":{brief:\"The numeric status code of the gRPC request.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"rpc.method\":{brief:\"The fully-qualified logical name of the method from the RPC interface perspective.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"com.example.ExampleService/exampleMethod\",changelog:[{version:\"0.7.0\",prs:[351],description:\"Added rpc.method attribute\"}]},\"rpc.response.status_code\":{brief:\"Status code of the RPC returned by the RPC server or generated by the client.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"DEADLINE_EXCEEDED\",changelog:[{version:\"0.7.0\",prs:[352],description:\"Added rpc.response.status_code attribute\"}]},\"rpc.service\":{brief:\"The full (logical) name of the service being called, including its package name, if applicable.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"myService.BestService\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"rpc.system\":{brief:\"A string identifying the remoting system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws-api\",deprecation:{replacement:\"rpc.system.name\",reason:\"This attribute is being deprecated in favor of rpc.system.name, which is the OTel-aligned replacement.\"},aliases:[\"rpc.system.name\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added rpc.system attribute, deprecated in favor of rpc.system.name\"}]},\"rpc.system.name\":{brief:\"A string identifying the remoting system.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws-api\",aliases:[\"rpc.system\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added rpc.system.name attribute\"}]},\"runtime.build\":{brief:\"The application build string, when it is separate from the version.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stable\",deprecation:{reason:\"The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute.\"},changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.build attribute\"}]},\"runtime.name\":{brief:\"The name of the runtime. For example node, CPython, or rustc.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"node\",deprecation:{replacement:\"process.runtime.name\",reason:\"Prefer OTel-aligned process.runtime.name\"},aliases:[\"process.runtime.name\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.name attribute in favor of process.runtime.name\"}]},\"runtime.raw_description\":{brief:\"Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",deprecation:{replacement:\"process.runtime.description\",reason:\"Prefer OTel-aligned process.runtime.description\"},aliases:[\"process.runtime.description\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.raw_description attribute in favor of process.runtime.description\"}]},\"runtime.version\":{brief:\"The version of the runtime.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"18.04.2\",deprecation:{replacement:\"process.runtime.version\",reason:\"Prefer OTel-aligned process.runtime.version\"},aliases:[\"process.runtime.version\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.version attribute in favor of process.runtime.version\"}]},\"score.<key>\":{brief:\"The weighted performance score for a web vital. This is defined as `score.weight.<key>` * `score.ratio.<key>`.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.cls=0.1723\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.<key> attribute\"}]},\"score.ratio.<key>\":{brief:\"The score for a web vital, normalized to a number between 0 and 1.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.ratio.inp=0.7748\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.ratio.<key> attribute\"}]},\"score.total\":{brief:\"The total performance score of a span. This is the sum of individual weighted web vital scores (see `score.<key>`).\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.total attribute\"}]},\"score.weight.<key>\":{brief:\"The relative weight of a web vital in a span's performance score.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.weight.fcp=0.25\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.weight.<key> attribute\"}]},\"sentry.action\":{brief:\"Used as a generic attribute representing the action depending on the type of span. For instance, this is the database query operation for DB spans, and the request method for HTTP spans.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SELECT\",changelog:[{version:\"0.4.0\",prs:[212]}]},\"sentry.browser.name\":{brief:\"The name of the browser.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",deprecation:{replacement:\"browser.name\"},aliases:[\"browser.name\"],changelog:[{version:\"0.1.0\",prs:[139]}]},\"sentry.browser.version\":{brief:\"The version of the browser.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",deprecation:{replacement:\"browser.version\"},aliases:[\"browser.version\"],changelog:[{version:\"0.1.0\",prs:[139]}]},\"sentry.cancellation_reason\":{brief:\"The reason why a span ended early.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"document.hidden\",changelog:[{version:\"0.0.0\"}]},\"sentry.category\":{brief:\"The high-level category of a span, derived from the span operation or span attributes. This categorizes spans by their general purpose (e.g., database, HTTP, UI). Known values include: 'ai', 'ai.pipeline', 'app', 'browser', 'cache', 'console', 'db', 'event', 'file', 'function.aws', 'function.azure', 'function.gcp', 'function.nextjs', 'function.remix', 'graphql', 'grpc', 'http', 'measure', 'middleware', 'navigation', 'pageload', 'queue', 'resource', 'rpc', 'serialize', 'subprocess', 'template', 'topic', 'ui', 'ui.angular', 'ui.ember', 'ui.react', 'ui.svelte', 'ui.vue', 'view', 'websocket'.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"db\",changelog:[{version:\"0.4.0\",prs:[218]}]},\"sentry.client_sample_rate\":{brief:\"Rate at which a span was sampled in the SDK.\",type:\"double\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},\"sentry.description\":{brief:\"The human-readable description of a span.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"index view query\",changelog:[{version:\"0.1.0\",prs:[135]}]},\"sentry.dist\":{brief:\"The sentry dist.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",aliases:[\"dist\"],changelog:[{version:\"0.16.0\",prs:[489],description:\"Added dist as an alias\"},{version:\"0.0.0\"}]},\"sentry.domain\":{brief:\"Used as a generic attribute representing the domain depending on the type of span. For instance, this is the collection/table name for database spans, and the server address for HTTP spans.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.4.0\",prs:[212]}]},\"sentry.dsc.environment\":{brief:\"The environment from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"prod\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.project_id\":{brief:\"The ID of the project where the trace originated (i.e. the project of the SDK that started the trace). Propagated through the dynamic sampling context and set by Relay during ingestion.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"12345\",changelog:[{version:\"0.7.0\",prs:[358],description:\"Add sentry.dsc.project_id as an attribute\"}]},\"sentry.dsc.public_key\":{brief:\"The public key from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:\"c51734c603c4430eb57cb0a5728a479d\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.release\":{brief:\"The release identifier from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"frontend@e8211be71b214afab5b85de4b4c54be3714952bb\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.sampled\":{brief:\"Whether the event was sampled according to the dynamic sampling context.\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.sample_rate\":{brief:\"The sample rate from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"1.0\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.trace_id\":{brief:\"The trace ID from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"047372980460430cbc78d9779df33a46\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.transaction\":{brief:\"The transaction name from the dynamic sampling context.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"/issues/errors-outages/\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.environment\":{brief:\"The sentry environment.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"production\",aliases:[\"environment\"],changelog:[{version:\"0.0.0\"}]},\"sentry.exclusive_time\":{brief:\"The exclusive time duration of the span in milliseconds.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[160]},{version:\"0.0.0\"}]},\"sentry.graphql.operation\":{brief:\"Indicates the type of graphql operation, emitted by the Javascript SDK.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"getUserById\",changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.group\":{brief:\"Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[212]}]},\"sentry.http.prefetch\":{brief:\"If an http request was a prefetch request.\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"sentry.idle_span_finish_reason\":{brief:\"The reason why an idle span ended early.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"idleTimeout\",changelog:[{version:\"0.0.0\"}]},\"sentry.is_remote\":{brief:\"Indicates whether a span's parent is remote.\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.kind\":{brief:\"Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"server\",aliases:[\"otel.kind\"],changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.main_thread\":{brief:\"Whether the span or event occurred on the main thread. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},\"sentry.message.parameter.<key>\":{brief:\"A parameter used in the message template. <key> can either be the number that represent the parameter's position in the template string (sentry.message.parameter.0, sentry.message.parameter.1, etc) or the parameter's name (sentry.message.parameter.item_id, sentry.message.parameter.user_id, etc)\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"sentry.message.parameter.0='123'\",changelog:[{version:\"0.1.0\",prs:[116]}]},\"sentry.message.template\":{brief:\"The parameterized template string.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Hello, {name}!\",changelog:[{version:\"0.1.0\",prs:[116]}]},\"sentry.metric.source\":{brief:\"The provenance of a metric.  For example, this can be set to indicate if a metric was generated by Relay from a span.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"span\",changelog:[{version:\"0.16.0\",prs:[476],description:\"Added sentry.metric.source attribute\"}]},\"sentry.mobile\":{brief:\"Whether the application is using a mobile SDK. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},\"sentry.module.<key>\":{brief:\"A module that was loaded in the process. The key is the name of the module.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"sentry.module.brianium/paratest='v7.7.0'\",changelog:[{version:\"0.1.0\",prs:[103]}]},\"sentry.nextjs.ssr.function.route\":{brief:\"A parameterized route for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions when the file location of the function is known.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"/posts/[id]/layout\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},\"sentry.nextjs.ssr.function.type\":{brief:\"A descriptor for a for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"generateMetadata\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},\"sentry.normalized_db_query\":{brief:\"The normalized version of `db.query.text`.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.3.1\",prs:[194]}]},\"sentry.normalized_db_query.hash\":{brief:\"The hash of `sentry.normalized_db_query`.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[200]}]},\"sentry.normalized_description\":{brief:\"Used as a generic attribute representing the normalized `sentry.description`. This refers to the legacy use case of `sentry.description` where it holds relevant data depending on the type of span (e.g. database query, resource url, http request description, etc).\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.4.0\",prs:[212]}]},\"sentry.observed_timestamp_nanos\":{brief:\"The timestamp at which an envelope was received by Relay, in nanoseconds.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1544712660300000000\",changelog:[{version:\"0.3.0\",prs:[174]},{version:\"0.2.0\",prs:[137]}]},\"sentry.op\":{brief:\"The operation of a span.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"http.client\",changelog:[{version:\"0.0.0\"}]},\"sentry.origin\":{brief:\"The origin of the instrumentation (e.g. span, log, etc.)\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"auto.http.otel.fastify\",changelog:[{version:\"0.1.0\",prs:[68]},{version:\"0.0.0\"}]},\"sentry.platform\":{brief:\"The sdk platform that generated the event.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"php\",changelog:[{version:\"0.0.0\"}]},\"sentry.profiler_id\":{brief:\"The id of the currently running profiler (continuous profiling)\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"18779b64dd35d1a538e7ce2dd2d3fad3\",changelog:[{version:\"0.4.0\",prs:[242]}]},\"sentry.profile_id\":{brief:\"The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",changelog:[{version:\"0.6.0\",prs:[344],description:\"Added sentry.profile_id attribute\"}]},\"sentry.release\":{brief:\"The sentry release.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",aliases:[\"service.version\",\"release\"],changelog:[{version:\"0.0.0\"}]},\"sentry.replay_id\":{brief:\"The id of the sentry replay.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",aliases:[\"replay_id\"],changelog:[{version:\"0.0.0\"}]},\"sentry.replay_is_buffering\":{brief:\"A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate).\",type:\"boolean\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.report_event\":{brief:\"(Deprecated) The event that caused the SDK to report CLS or LCP (pagehide or navigation)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",deprecation:{reason:\"The report event is now recorded as a browser.web_vital.lcp.report_event or browser.web_vital.cls.report_event attribute. No backfill required.\"},changelog:[{version:\"0.5.0\",prs:[320],description:\"Added sentry.report_event attribute\"}]},\"sentry.sdk.integrations\":{brief:\"A list of names identifying enabled integrations. The list shouldhave all enabled integrations, including default integrations. Defaultintegrations are included because different SDK releases may contain differentdefault integrations.\",type:\"string[]\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:[\"InboundFilters\",\"FunctionToString\",\"BrowserApiErrors\",\"Breadcrumbs\"],changelog:[{version:\"0.0.0\",prs:[42]}]},\"sentry.sdk.name\":{brief:\"The sentry sdk name.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"@sentry/react\",changelog:[{version:\"0.0.0\"}]},\"sentry.sdk.version\":{brief:\"The sentry sdk version.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",changelog:[{version:\"0.0.0\"}]},\"sentry.segment.id\":{brief:\"The segment ID of a span\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",aliases:[\"sentry.segment_id\"],changelog:[{version:\"0.1.0\",prs:[107,124]}]},\"sentry.segment_id\":{brief:\"The segment ID of a span\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",deprecation:{replacement:\"sentry.segment.id\"},aliases:[\"sentry.segment.id\"],changelog:[{version:\"0.1.0\",prs:[124]}]},\"sentry.segment.name\":{brief:\"The segment name of a span\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET /user\",aliases:[\"sentry.transaction\",\"transaction\"],changelog:[{version:\"0.6.0\",prs:[345],description:\"Added sentry.transaction and transaction aliases\"},{version:\"0.1.0\",prs:[104]}]},\"sentry.server_sample_rate\":{brief:\"Rate at which a span was sampled in Relay.\",type:\"double\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},\"sentry.source\":{brief:\"The source of a span, also referred to as transaction source. Known values are:  `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"route\",deprecation:{replacement:\"sentry.span.source\",reason:\"This attribute is being deprecated in favor of sentry.span.source\"},changelog:[{version:\"0.5.0\"}]},\"sentry.span.source\":{brief:\"The source of a span, also referred to as transaction source. Known values are:  `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"route\",changelog:[{version:\"0.4.0\",prs:[214]},{version:\"0.0.0\"}]},\"sentry.status\":{brief:`The span's status (either \"ok\" or \"error\"). Older SDKs may set this to a more specific error, but this behaviour is deprecated.`,type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"ok\",changelog:[{version:\"0.14.0\",prs:[453]}]},\"sentry.status_code\":{brief:\"The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[223,228]}]},\"sentry.status.message\":{brief:\"The from OTLP extracted status message.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"foobar\",changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.sveltekit.navigation.from\":{brief:\"the navigation origin (sveltekit router)\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/home\",deprecation:{replacement:\"navigation.origin\",reason:\"Use the more generic attribute instead\"},aliases:[\"navigation.origin\"],changelog:[{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.from attribute\"}]},\"sentry.sveltekit.navigation.to\":{brief:\"the navigation destination\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",deprecation:{reason:\"the navigation destination is already covered by url.* attributes\"},changelog:[{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.to attribute\"}]},\"sentry.sveltekit.navigation.type\":{brief:\"The type of navigation event emitted from the sveltekit client router\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"link\",deprecation:{replacement:\"navigation.type\",reason:\"Use the more generic attribute instead\"},aliases:[\"navigation.type\"],changelog:[{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.type attribute\"}]},\"sentry.thread.id\":{brief:\"Current \\u201Cmanaged\\u201D thread ID.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:56,deprecation:{replacement:\"thread.id\",reason:\"This attribute is being deprecated in favor of the OTel-standard thread.id\"},changelog:[{version:\"0.13.0\",prs:[451]}]},\"sentry.timestamp.sequence\":{brief:\"A sequencing counter for deterministic ordering of logs or metrics when timestamps share the same integer millisecond. Starts at 0 on SDK initialization, increments by 1 for each captured item, and resets to 0 when the integer millisecond of the current item differs from the previous one.\",type:\"integer\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.5.0\",prs:[262]}]},\"sentry.trace_lifecycle\":{brief:\"Indicates the chosen trace lifecycle mode of the SDK (stream or static)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stream\",changelog:[{version:\"0.13.0\",prs:[442],description:\"Added sentry.trace_lifecycle attribute\"}]},\"sentry.trace.parent_span_id\":{brief:\"The span id of the span that was active when the log was collected. This should not be set if there was no active span.\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"b0e6f15b45c36b12\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[287],description:\"Deprecate `sentry.trace.parent_span_id`\"},{version:\"0.1.0\",prs:[116]}]},\"sentry.trace.status\":{brief:`The segment's status (either \"ok\" or \"error\"). Older SDKs may set this to a more specific error, but this behaviour is deprecated.`,type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"ok\",changelog:[{version:\"0.14.0\",prs:[453]}]},\"sentry.transaction\":{brief:\"The sentry transaction (segment name).\",type:\"string\",applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\",reason:\"This attribute is being deprecated in favor of sentry.segment.name\"},aliases:[\"sentry.segment.name\",\"transaction\"],changelog:[{version:\"0.6.0\",prs:[345],description:\"Deprecated sentry.transaction in favor of sentry.segment.name\"},{version:\"0.0.0\"}]},\"sentry.user.email\":{brief:\"User email address.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.email\"},aliases:[\"user.email\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.geo.city\":{brief:\"Human readable city name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.city\"},aliases:[\"user.geo.city\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.geo.country_code\":{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.country_code\"},aliases:[\"user.geo.country_code\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.geo.region\":{brief:\"Human readable region name or code.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.region\"},aliases:[\"user.geo.region\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.geo.subdivision\":{brief:\"Human readable subdivision name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.subdivision\"},aliases:[\"user.geo.subdivision\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.id\":{brief:\"Unique identifier of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.id\"},aliases:[\"user.id\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.ip\":{brief:\"The IP address of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.ip_address\"},aliases:[\"user.ip_address\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"sentry.user.username\":{brief:\"Short name or login/username of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.name\"},aliases:[\"user.name\"],changelog:[{version:\"0.10.0\",prs:[406]}]},\"server.address\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[\"http.server_name\",\"net.host.name\",\"http.host\",\"server_name\"],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},server_name:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"This attribute is being deprecated in favor of server.address, which is the OTel-aligned replacement.\"},aliases:[\"server.address\",\"http.server_name\",\"net.host.name\",\"http.host\"],changelog:[{version:\"0.16.0\",prs:[477],description:\"Added server_name attribute, deprecated in favor of server.address\"}]},\"server.port\":{brief:\"Server port number.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,aliases:[\"net.host.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"service.name\":{brief:\"Logical name of the service.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"omegastar\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"service.version\":{brief:\"The version string of the service API or implementation. The format is not defined by these conventions.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"5.0.0\",aliases:[\"sentry.release\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"session.id\":{brief:\"A unique id identifying the active session at the time of setting this attribute\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"00112233-4455-6677-8899-aabbccddeeff\",changelog:[{version:\"0.11.0\",prs:[412],description:\"Added session.id attribute\"}]},stall_percentage:{brief:\"The fraction of time the app was stalled. Only applies to React Native. This is computed by Relay.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_percentage attribute\"}]},stall_total_time:{brief:\"The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay.\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_total_time attribute\"}]},\"state.type\":{brief:\"The type of state management library\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"redux\",changelog:[{version:\"0.7.0\",prs:[365],description:\"Added state.type attribute\"}]},\"thread.id\":{brief:\"Current \\u201Cmanaged\\u201D thread ID.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:56,changelog:[{version:\"0.0.0\"}]},\"thread.name\":{brief:\"Current thread name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"main\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"timber.tag\":{brief:\"The log tag provided by the timber logging framework.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MyTag\",changelog:[{version:\"0.3.0\",prs:[183]}]},time_to_full_display:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttfd.value\",reason:\"Replaced by app.vitals.ttfd.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.ttfd.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttfd.value\"}]},time_to_initial_display:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttid.value\",reason:\"Replaced by app.vitals.ttid.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[\"app.vitals.ttid.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttid.value\"}]},transaction:{brief:\"The sentry transaction (segment name).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\"},aliases:[\"sentry.segment.name\",\"sentry.transaction\"],changelog:[{version:\"0.6.0\",prs:[345],description:\"Updated transaction deprecation replacement to sentry.segment.name\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"trpc.procedure_path\":{brief:\"The path of the tRPC procedure being called\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user.getById\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_path attribute\"}]},\"trpc.procedure_type\":{brief:\"The type of the tRPC procedure\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"query\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_type attribute\"}]},ttfb:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in milliseconds\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:194,deprecation:{replacement:\"browser.web_vital.ttfb.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.value\"},aliases:[\"browser.web_vital.ttfb.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"ttfb.requestTime\":{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1554.5814,deprecation:{replacement:\"browser.web_vital.ttfb.request_time\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.request_time\"},aliases:[\"browser.web_vital.ttfb.request_time\"],changelog:[{version:\"0.5.0\",prs:[235]}]},type:{brief:\"More granular type of the operation happening.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"fetch\",changelog:[{version:\"0.0.0\"}]},\"ui.component_name\":{brief:\"The name of the associated component.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"HomeButton\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"ui.contributes_to_ttfd\":{brief:\"Whether the span execution contributed to the TTFD (time to fully drawn) metric.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"ui.contributes_to_ttid\":{brief:\"Whether the span execution contributed to the TTID (time to initial display) metric.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"ui.element.height\":{brief:\"The height of the UI element (for Html in pixels)\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:256,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.height attribute\"}]},\"ui.element.id\":{brief:\"The id of the UI element\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"btn-login\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.id attribute\"}]},\"ui.element.identifier\":{brief:\"The identifier used to measure the UI element timing\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"heroImage\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.identifier attribute\"}]},\"ui.element.load_time\":{brief:\"The loading time of a UI element (from time origin to finished loading)\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:998.2234,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.load_time attribute\"}]},\"ui.element.paint_type\":{brief:\"The type of element paint. Can either be 'image-paint' or 'text-paint'\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"image-paint\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.paint_type attribute\"}]},\"ui.element.render_time\":{brief:\"The rendering time of the UI element (from time origin to finished rendering)\",type:\"double\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1023.1124,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.render_time attribute\"}]},\"ui.element.type\":{brief:\"type of the UI element\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"img\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.type attribute\"}]},\"ui.element.url\":{brief:\"The URL of the UI element (e.g. an img src)\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://assets.myapp.com/hero.png\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.url attribute\"}]},\"ui.element.width\":{brief:\"The width of the UI element (for HTML in pixels)\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:512,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.width attribute\"}]},url:{brief:\"The URL of the resource that was fetched.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[\"url.full\",\"http.url\"],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"url.domain\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"url.fragment\":{brief:\"The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"details\",changelog:[{version:\"0.0.0\"}]},\"url.full\":{brief:\"The URL of the resource that was fetched.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",aliases:[\"http.url\",\"url\"],changelog:[{version:\"0.1.0\",prs:[108]},{version:\"0.0.0\"}]},\"url.path\":{brief:\"The URI path component.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/foo\",changelog:[{version:\"0.0.0\"}]},\"url.path.parameter.<key>\":{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"url.path.parameter.id='123'\",aliases:[\"params.<key>\"],changelog:[{version:\"0.1.0\",prs:[103]}]},\"url.port\":{brief:\"Server port number.\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"url.query\":{brief:\"The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.\",type:\"string\",applyScrubbing:{key:\"auto\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!0,visibility:\"public\",example:\"foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},\"url.same_origin\":{brief:\"Indicates that a URL has the same origin as the current page's origin in the browser.\",type:\"boolean\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"http.request.same_origin\",reason:\"This attribute is being deprecated in favor of http.request.same_origin.\"},aliases:[\"http.request.same_origin\"],changelog:[{version:\"0.16.0\",prs:[456],description:\"Added url.same_origin attribute, deprecated in favor of http.request.same_origin\"}]},\"url.scheme\":{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"https\",aliases:[\"http.scheme\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"url.template\":{brief:\"The low-cardinality template of an absolute path reference.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[\"http.route\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"user_agent.original\":{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",aliases:[\"http.user_agent\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"user.email\":{brief:\"User email address.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"test@example.com\",aliases:[\"sentry.user.email\"],changelog:[{version:\"0.0.0\"}]},\"user.full_name\":{brief:\"User's full name.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"John Smith\",changelog:[{version:\"0.0.0\"}]},\"user.geo.city\":{brief:\"Human readable city name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Toronto\",aliases:[\"sentry.user.geo.city\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.country_code\":{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"CA\",aliases:[\"sentry.user.geo.country_code\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.region\":{brief:\"Human readable region name or code.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Canada\",aliases:[\"sentry.user.geo.region\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.subdivision\":{brief:\"Human readable subdivision name.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Ontario\",aliases:[\"sentry.user.geo.subdivision\"],changelog:[{version:\"0.0.0\"}]},\"user.hash\":{brief:\"Unique user hash to correlate information for a user in anonymized form.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d\",changelog:[{version:\"0.0.0\"}]},\"user.id\":{brief:\"Unique identifier of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"S-1-5-21-202424912787-2692429404-2351956786-1000\",aliases:[\"sentry.user.id\"],changelog:[{version:\"0.0.0\"}]},\"user.ip_address\":{brief:\"The IP address of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"192.168.1.1\",aliases:[\"sentry.user.ip\"],changelog:[{version:\"0.1.0\",prs:[75]}]},\"user.name\":{brief:\"Short name or login/username of the user.\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"j.smith\",aliases:[\"sentry.user.username\"],changelog:[{version:\"0.0.0\"}]},\"user.roles\":{brief:\"Array of user roles at the time of the event.\",type:\"string[]\",applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:[\"admin\",\"editor\"],changelog:[{version:\"0.0.0\"}]},\"vercel.branch\":{brief:\"Git branch name for Vercel project\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"main\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.build_id\":{brief:\"Identifier for the Vercel build (only present on build logs)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"bld_cotnkcr76\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.deployment_id\":{brief:\"Identifier for the Vercel deployment\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dpl_233NRGRjVZX1caZrXWtz5g1TAksD\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.destination\":{brief:\"Origin of the external content in Vercel (only on external logs)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https://vitals.vercel-insights.com/v1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.edge_type\":{brief:\"Type of edge runtime in Vercel\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"edge-function\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.entrypoint\":{brief:\"Entrypoint for the request in Vercel\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"api/index.js\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.execution_region\":{brief:\"Region where the request is executed\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.id\":{brief:\"Unique identifier for the log entry in Vercel\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1573817187330377061717300000\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.ja3_digest\":{brief:\"JA3 fingerprint digest of Vercel request\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.ja4_digest\":{brief:\"JA4 fingerprint digest\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"t13d1516h2_8daaf6152771_02713d6af862\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.log_type\":{brief:\"Vercel log output type\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stdout\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.path\":{brief:\"Function or dynamic path of the request in Vercel.\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/[route].json\",changelog:[{version:\"0.6.0\",prs:[349],description:\"Added vercel.path attribute\"}]},\"vercel.project_id\":{brief:\"Identifier for the Vercel project\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gdufoJxB6b9b1fEqr1jUtFkyavUU\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.project_name\":{brief:\"Name of the Vercel project\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.cache_id\":{brief:\"Original request ID when request is served from cache\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pdx1::v8g4b-1744143786684-93dafbc0f70d\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.client_ip\":{brief:\"Client IP address\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"120.75.16.101\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.host\":{brief:\"Hostname of the request\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"test.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.lambda_region\":{brief:\"Region where lambda function executed\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.method\":{brief:\"HTTP method of the request\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path\":{brief:\"Request path with query parameters\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/some-value.json?route=some-value\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path_type\":{brief:\"How the request was served based on its path and project configuration\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"func\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path_type_variant\":{brief:\"Variant of the path type\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"api\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.referer\":{brief:\"Referer of the request\",type:\"string\",applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"*.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.region\":{brief:\"Region where the request is processed\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.response_byte_size\":{brief:\"Size of the response in bytes\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1024,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.scheme\":{brief:\"Protocol of the request\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.status_code\":{brief:\"HTTP status code of the proxy request\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.timestamp\":{brief:\"Unix timestamp when the proxy request was made\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1573817250172,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.user_agent\":{brief:\"User agent strings of the request\",type:\"string[]\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"Mozilla/5.0...\"],changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.vercel_cache\":{brief:\"Cache status sent to the browser\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"REVALIDATED\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.vercel_id\":{brief:\"Vercel-specific identifier\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1::abc123\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.waf_action\":{brief:\"Action taken by firewall rules\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"deny\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.waf_rule_id\":{brief:\"ID of the firewall rule that matched\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"rule_gAHz8jtSB1Gy\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.request_id\":{brief:\"Identifier of the Vercel request\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"643af4e3-975a-4cc7-9e7a-1eda11539d90\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.source\":{brief:\"Origin of the Vercel log (build, edge, lambda, static, external, or firewall)\",type:\"string\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"build\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.status_code\":{brief:\"HTTP status code of the request (-1 means no response returned and the lambda crashed)\",type:\"integer\",applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]}};export{e as AI_CITATIONS,i as AI_COMPLETION_TOKENS_USED,t as AI_DOCUMENTS,n as AI_FINISH_REASON,r as AI_FREQUENCY_PENALTY,a as AI_FUNCTION_CALL,s as AI_GENERATION_ID,o as AI_INPUT_MESSAGES,l as AI_IS_SEARCH_REQUIRED,p as AI_METADATA,c as AI_MODEL_ID,u as AI_MODEL_PROVIDER,b as AI_PIPELINE_NAME,g as AI_PREAMBLE,d as AI_PRESENCE_PENALTY,m as AI_PROMPT_TOKENS_USED,y as AI_RAW_PROMPTING,_ as AI_RESPONSES,h as AI_RESPONSE_FORMAT,v as AI_SEARCH_QUERIES,f as AI_SEARCH_RESULTS,S as AI_SEED,E as AI_STREAMING,T as AI_TAGS,I as AI_TEMPERATURE,O as AI_TEXTS,k as AI_TOOLS,A as AI_TOOL_CALLS,x as AI_TOP_K,w as AI_TOP_P,R as AI_TOTAL_COST,N as AI_TOTAL_TOKENS_USED,C as AI_WARNINGS,P as ANGULAR_VERSION,D as APP_APP_BUILD,L as APP_APP_IDENTIFIER,U as APP_APP_NAME,M as APP_APP_START_TIME,q as APP_APP_VERSION,G as APP_BUILD,Y as APP_IDENTIFIER,V as APP_IN_FOREGROUND,W as APP_NAME,F as APP_START_COLD,B as APP_START_TIME,H as APP_START_TYPE,z as APP_START_WARM,K as APP_VERSION,j as APP_VITALS_FRAMES_DELAY_VALUE,Q as APP_VITALS_FRAMES_FROZEN_COUNT,X as APP_VITALS_FRAMES_SLOW_COUNT,J as APP_VITALS_FRAMES_TOTAL_COUNT,Z as APP_VITALS_START_COLD_VALUE,$ as APP_VITALS_START_PREWARMED,ee as APP_VITALS_START_REASON,ie as APP_VITALS_START_SCREEN,te as APP_VITALS_START_TYPE,ne as APP_VITALS_START_WARM_VALUE,re as APP_VITALS_TTFD_VALUE,ae as APP_VITALS_TTID_VALUE,se as ART_GC_BLOCKING_COUNT,oe as ART_GC_BLOCKING_TIME,le as ART_GC_PRE_OOME_COUNT,pe as ART_GC_TOTAL_COUNT,ce as ART_GC_TOTAL_TIME,ue as ART_GC_WAITING_TIME,be as ART_MEMORY_FREE,ge as ART_MEMORY_FREE_UNTIL_GC,de as ART_MEMORY_FREE_UNTIL_OOME,me as ART_MEMORY_MAX,ye as ART_MEMORY_TOTAL,Bb as ATTRIBUTE_METADATA,Fb as ATTRIBUTE_TYPE,_e as AWS_CLOUDWATCH_LOGS_LOG_GROUP,he as AWS_CLOUDWATCH_LOGS_LOG_STREAM,ve as AWS_CLOUDWATCH_LOGS_URL,fe as AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,Se as AWS_DYNAMODB_CONSISTENT_READ,Ee as AWS_DYNAMODB_CONSUMED_CAPACITY,Te as AWS_DYNAMODB_COUNT,Ie as AWS_DYNAMODB_EXCLUSIVE_START_TABLE,Oe as AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,ke as AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,Ae as AWS_DYNAMODB_INDEX_NAME,xe as AWS_DYNAMODB_ITEM_COLLECTION_METRICS,we as AWS_DYNAMODB_LIMIT,Re as AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,Ne as AWS_DYNAMODB_PROJECTION,Ce as AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,Pe as AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,De as AWS_DYNAMODB_SCANNED_COUNT,Le as AWS_DYNAMODB_SCAN_FORWARD,Ue as AWS_DYNAMODB_SEGMENT,Me as AWS_DYNAMODB_SELECT,qe as AWS_DYNAMODB_TABLE_COUNT,Ge as AWS_DYNAMODB_TABLE_NAMES,Ye as AWS_DYNAMODB_TOTAL_SEGMENTS,Ve as AWS_EXTENDED_REQUEST_ID,We as AWS_KINESIS_STREAM_NAME,Be as AWS_LAMBDA_AWS_REQUEST_ID,He as AWS_LAMBDA_EXECUTION_DURATION_IN_MILLIS,ze as AWS_LAMBDA_FUNCTION_NAME,Ke as AWS_LAMBDA_FUNCTION_VERSION,je as AWS_LAMBDA_INVOKED_ARN,Qe as AWS_LAMBDA_INVOKED_FUNCTION_ARN,Xe as AWS_LAMBDA_REMAINING_TIME_IN_MILLIS,Je as AWS_LOG_GROUP_NAMES,Ze as AWS_LOG_STREAM_NAMES,$e as AWS_REQUEST_EXTENDED_ID,ei as AWS_REQUEST_ID,ti as AWS_S3_BUCKET,ni as AWS_SECRETSMANAGER_SECRET_ARN,ri as AWS_SNS_TOPIC_ARN,ai as AWS_STEP_FUNCTIONS_ACTIVITY_ARN,si as AWS_STEP_FUNCTIONS_STATE_MACHINE_ARN,oi as BLOCKED_MAIN_THREAD,li as BROWSER_NAME,pi as BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START,ci as BROWSER_PERFORMANCE_TIME_ORIGIN,ui as BROWSER_REPORT_TYPE,bi as BROWSER_SCRIPT_INVOKER,gi as BROWSER_SCRIPT_INVOKER_TYPE,di as BROWSER_SCRIPT_SOURCE_CHAR_POSITION,mi as BROWSER_VERSION,yi as BROWSER_WEB_VITAL_CLS_REPORT_EVENT,_i as BROWSER_WEB_VITAL_CLS_SOURCE_KEY,hi as BROWSER_WEB_VITAL_CLS_SOURCE_KEY_BASE,vi as BROWSER_WEB_VITAL_CLS_VALUE,fi as BROWSER_WEB_VITAL_FCP_VALUE,Si as BROWSER_WEB_VITAL_FP_VALUE,Ei as BROWSER_WEB_VITAL_INP_VALUE,Ti as BROWSER_WEB_VITAL_LCP_ELEMENT,Ii as BROWSER_WEB_VITAL_LCP_ID,Oi as BROWSER_WEB_VITAL_LCP_LOAD_TIME,ki as BROWSER_WEB_VITAL_LCP_RENDER_TIME,Ai as BROWSER_WEB_VITAL_LCP_REPORT_EVENT,xi as BROWSER_WEB_VITAL_LCP_SIZE,wi as BROWSER_WEB_VITAL_LCP_URL,Ri as BROWSER_WEB_VITAL_LCP_VALUE,Ni as BROWSER_WEB_VITAL_TTFB_REQUEST_TIME,Ci as BROWSER_WEB_VITAL_TTFB_VALUE,Pi as CACHE_HIT,Di as CACHE_ITEM_SIZE,Li as CACHE_KEY,Ui as CACHE_OPERATION,Mi as CACHE_TTL,qi as CACHE_WRITE,Gi as CHANNEL,Yi as CLIENT_ADDRESS,Vi as CLIENT_PORT,Wi as CLOUDFLARE_D1_DURATION,Fi as CLOUDFLARE_D1_QUERY_TYPE,Bi as CLOUDFLARE_D1_ROWS_READ,Hi as CLOUDFLARE_D1_ROWS_WRITTEN,zi as CLOUDFLARE_DURABLE_OBJECT_QUERY_BINDINGS,Ki as CLOUDFLARE_DURABLE_OBJECT_RESPONSE_ROWS_READ,ji as CLOUDFLARE_DURABLE_OBJECT_RESPONSE_ROWS_WRITTEN,Qi as CLOUDFLARE_R2_BUCKET,Xi as CLOUDFLARE_R2_OPERATION,Ji as CLOUDFLARE_R2_REQUEST_DELIMITER,Zi as CLOUDFLARE_R2_REQUEST_KEY,$i as CLOUDFLARE_R2_REQUEST_PART_NUMBER,et as CLOUDFLARE_R2_REQUEST_PREFIX,it as CLOUDFLARE_WORKFLOW_ATTEMPT,tt as CLOUDFLARE_WORKFLOW_RETRIES_BACKOFF,nt as CLOUDFLARE_WORKFLOW_RETRIES_DELAY,rt as CLOUDFLARE_WORKFLOW_RETRIES_LIMIT,at as CLOUDFLARE_WORKFLOW_TIMEOUT,st as CLOUD_ACCOUNT_ID,ot as CLOUD_AVAILABILITY_ZONE,lt as CLOUD_PLATFORM,pt as CLOUD_PROVIDER,ct as CLOUD_REGION,ut as CLOUD_RESOURCE_ID,bt as CLS,gt as CLS_SOURCE_KEY,dt as CLS_SOURCE_KEY_BASE,mt as CODE_FILEPATH,yt as CODE_FILE_PATH,_t as CODE_FUNCTION,ht as CODE_FUNCTION_NAME,vt as CODE_LINENO,ft as CODE_LINE_NUMBER,St as CODE_NAMESPACE,Et as CONNECTIONTYPE,Tt as CONNECTION_RTT,It as CULTURE_CALENDAR,Ot as CULTURE_DISPLAY_NAME,kt as CULTURE_IS_24_HOUR_FORMAT,At as CULTURE_LOCALE,xt as CULTURE_TIMEZONE,wt as DB_COLLECTION_NAME,Rt as DB_DRIVER_NAME,Nt as DB_NAME,Ct as DB_NAMESPACE,Pt as DB_OPERATION,Dt as DB_OPERATION_BATCH_SIZE,Lt as DB_OPERATION_NAME,Ut as DB_QUERY_PARAMETER_KEY,Mt as DB_QUERY_PARAMETER_KEY_BASE,qt as DB_QUERY_SUMMARY,Gt as DB_QUERY_TEXT,Yt as DB_REDIS_CONNECTION,Vt as DB_REDIS_KEY,Wt as DB_REDIS_PARAMETERS,Ft as DB_RESPONSE_STATUS_CODE,Bt as DB_SQL_BINDINGS,Ht as DB_STATEMENT,zt as DB_STORED_PROCEDURE_NAME,Kt as DB_SYSTEM,jt as DB_SYSTEM_NAME,Qt as DB_USER,Xt as DEVICEMEMORY,Jt as DEVICE_ARCHS,Zt as DEVICE_BATTERY_LEVEL,$t as DEVICE_BATTERY_TEMPERATURE,en as DEVICE_BOOT_TIME,tn as DEVICE_BRAND,nn as DEVICE_CHARGING,rn as DEVICE_CHIPSET,an as DEVICE_CLASS,sn as DEVICE_CONNECTION_TYPE,on as DEVICE_CPU_DESCRIPTION,ln as DEVICE_EXTERNAL_FREE_STORAGE,pn as DEVICE_EXTERNAL_STORAGE_SIZE,cn as DEVICE_FAMILY,un as DEVICE_FREE_MEMORY,bn as DEVICE_FREE_STORAGE,gn as DEVICE_ID,dn as DEVICE_LOCALE,mn as DEVICE_LOW_MEMORY,yn as DEVICE_LOW_POWER_MODE,_n as DEVICE_MANUFACTURER,hn as DEVICE_MEMORY_ESTIMATED_CAPACITY,vn as DEVICE_MEMORY_SIZE,fn as DEVICE_MODEL,Sn as DEVICE_MODEL_ID,En as DEVICE_NAME,Tn as DEVICE_ONLINE,In as DEVICE_ORIENTATION,On as DEVICE_PROCESSOR_COUNT,kn as DEVICE_PROCESSOR_FREQUENCY,An as DEVICE_SCREEN_DENSITY,xn as DEVICE_SCREEN_DPI,wn as DEVICE_SCREEN_HEIGHT_PIXELS,Rn as DEVICE_SCREEN_WIDTH_PIXELS,Nn as DEVICE_SIMULATOR,Cn as DEVICE_STORAGE_SIZE,Pn as DEVICE_THERMAL_STATE,Dn as DEVICE_TIMEZONE,Ln as DEVICE_USABLE_MEMORY,Un as DIST,Mn as EFFECTIVECONNECTIONTYPE,qn as ENVIRONMENT,Gn as ERROR_TYPE,Yn as EVENT_ID,Vn as EVENT_NAME,Wn as EXCEPTION_ESCAPED,Fn as EXCEPTION_MESSAGE,Bn as EXCEPTION_STACKTRACE,Hn as EXCEPTION_TYPE,zn as FAAS_COLDSTART,Kn as FAAS_CRON,jn as FAAS_DURATION_IN_MS,Qn as FAAS_ENTRY_POINT,Xn as FAAS_EXECUTION,Jn as FAAS_ID,Zn as FAAS_IDENTITY,$n as FAAS_INVOCATION_ID,er as FAAS_INVOKED_NAME,ir as FAAS_INVOKED_PROVIDER,tr as FAAS_INVOKED_REGION,nr as FAAS_NAME,rr as FAAS_TIME,ar as FAAS_TRIGGER,sr as FAAS_VERSION,or as FCP,lr as FLAG_EVALUATION_KEY,pr as FLAG_EVALUATION_KEY_BASE,cr as FP,ur as FRAMES_DELAY,br as FRAMES_FROZEN,gr as FRAMES_FROZEN_RATE,dr as FRAMES_SLOW,mr as FRAMES_SLOW_RATE,yr as FRAMES_TOTAL,_r as FS_ERROR,hr as GCP_FUNCTION_CONTEXT_EVENT_ID,vr as GCP_FUNCTION_CONTEXT_EVENT_TYPE,fr as GCP_FUNCTION_CONTEXT_ID,Sr as GCP_FUNCTION_CONTEXT_RESOURCE,Er as GCP_FUNCTION_CONTEXT_SOURCE,Tr as GCP_FUNCTION_CONTEXT_SPECVERSION,Ir as GCP_FUNCTION_CONTEXT_TIME,Or as GCP_FUNCTION_CONTEXT_TIMESTAMP,kr as GCP_FUNCTION_CONTEXT_TYPE,Ar as GCP_PROJECT_ID,xr as GEN_AI_AGENT_NAME,wr as GEN_AI_CONTEXT_UTILIZATION,Rr as GEN_AI_CONTEXT_WINDOW_SIZE,Nr as GEN_AI_CONVERSATION_ID,Cr as GEN_AI_COST_CACHE_CREATION_INPUT_TOKENS,Pr as GEN_AI_COST_CACHE_READ_INPUT_TOKENS,Dr as GEN_AI_COST_INPUT_TOKENS,Lr as GEN_AI_COST_OUTPUT_TOKENS,Ur as GEN_AI_COST_REASONING_OUTPUT_TOKENS,Mr as GEN_AI_COST_TOTAL_TOKENS,qr as GEN_AI_EMBEDDINGS_INPUT,Gr as GEN_AI_FUNCTION_ID,Yr as GEN_AI_INPUT_MESSAGES,Vr as GEN_AI_OPERATION_NAME,Wr as GEN_AI_OPERATION_TYPE,Fr as GEN_AI_OUTPUT_MESSAGES,Br as GEN_AI_PIPELINE_NAME,Hr as GEN_AI_PROMPT,zr as GEN_AI_PROMPT_NAME,Kr as GEN_AI_PROVIDER_NAME,jr as GEN_AI_REQUEST_AVAILABLE_TOOLS,Qr as GEN_AI_REQUEST_FREQUENCY_PENALTY,Xr as GEN_AI_REQUEST_MAX_TOKENS,Jr as GEN_AI_REQUEST_MESSAGES,Zr as GEN_AI_REQUEST_MODEL,$r as GEN_AI_REQUEST_PRESENCE_PENALTY,ea as GEN_AI_REQUEST_REASONING_EFFORT,ia as GEN_AI_REQUEST_SEED,ta as GEN_AI_REQUEST_STOP_SEQUENCES,na as GEN_AI_REQUEST_TEMPERATURE,ra as GEN_AI_REQUEST_TOP_K,aa as GEN_AI_REQUEST_TOP_P,sa as GEN_AI_RESPONSE_FINISH_REASONS,oa as GEN_AI_RESPONSE_ID,la as GEN_AI_RESPONSE_MODEL,pa as GEN_AI_RESPONSE_STREAMING,ca as GEN_AI_RESPONSE_TEXT,ua as GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK,ba as GEN_AI_RESPONSE_TIME_TO_FIRST_TOKEN,ga as GEN_AI_RESPONSE_TOKENS_PER_SECOND,da as GEN_AI_RESPONSE_TOOL_CALLS,ma as GEN_AI_SYSTEM,ya as GEN_AI_SYSTEM_INSTRUCTIONS,_a as GEN_AI_SYSTEM_MESSAGE,ha as GEN_AI_TOOL_CALL_ARGUMENTS,va as GEN_AI_TOOL_CALL_RESULT,fa as GEN_AI_TOOL_DEFINITIONS,Sa as GEN_AI_TOOL_DESCRIPTION,Ea as GEN_AI_TOOL_INPUT,Ta as GEN_AI_TOOL_MESSAGE,Ia as GEN_AI_TOOL_NAME,Oa as GEN_AI_TOOL_OUTPUT,ka as GEN_AI_TOOL_TYPE,Aa as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS,xa as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS,wa as GEN_AI_USAGE_COMPLETION_TOKENS,Ra as GEN_AI_USAGE_INPUT_TOKENS,Na as GEN_AI_USAGE_INPUT_TOKENS_CACHED,Ca as GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE,Pa as GEN_AI_USAGE_OUTPUT_TOKENS,Da as GEN_AI_USAGE_OUTPUT_TOKENS_REASONING,La as GEN_AI_USAGE_PROMPT_TOKENS,Ua as GEN_AI_USAGE_REASONING_OUTPUT_TOKENS,Ma as GEN_AI_USAGE_TOTAL_TOKENS,qa as GRAPHQL_DOCUMENT,Ga as GRAPHQL_OPERATION_NAME,Ya as GRAPHQL_OPERATION_TYPE,Va as HARDWARECONCURRENCY,Wa as HTTP_CLIENT_IP,Fa as HTTP_DECODED_RESPONSE_CONTENT_LENGTH,Ba as HTTP_FLAVOR,Ha as HTTP_FRAGMENT,za as HTTP_HOST,Ka as HTTP_METHOD,ja as HTTP_QUERY,Qa as HTTP_REQUEST_BODY_DATA,Xa as HTTP_REQUEST_CONNECTION_END,Ja as HTTP_REQUEST_CONNECT_START,Za as HTTP_REQUEST_DOMAIN_LOOKUP_END,$a as HTTP_REQUEST_DOMAIN_LOOKUP_START,es as HTTP_REQUEST_FETCH_START,is as HTTP_REQUEST_HEADER_KEY,ts as HTTP_REQUEST_HEADER_KEY_BASE,ns as HTTP_REQUEST_METHOD,as as HTTP_REQUEST_REDIRECT_END,ss as HTTP_REQUEST_REDIRECT_START,os as HTTP_REQUEST_REQUEST_START,ls as HTTP_REQUEST_RESEND_COUNT,ps as HTTP_REQUEST_RESPONSE_END,cs as HTTP_REQUEST_RESPONSE_START,us as HTTP_REQUEST_SAME_ORIGIN,bs as HTTP_REQUEST_SECURE_CONNECTION_START,gs as HTTP_REQUEST_TIME_TO_FIRST_BYTE,ds as HTTP_REQUEST_WORKER_START,ms as HTTP_RESPONSE_BODY_SIZE,ys as HTTP_RESPONSE_CONTENT_LENGTH,_s as HTTP_RESPONSE_HEADER_CONTENT_LENGTH,hs as HTTP_RESPONSE_HEADER_KEY,vs as HTTP_RESPONSE_HEADER_KEY_BASE,fs as HTTP_RESPONSE_SIZE,Ss as HTTP_RESPONSE_STATUS_CODE,Es as HTTP_RESPONSE_TRANSFER_SIZE,Ts as HTTP_ROUTE,Is as HTTP_SCHEME,Os as HTTP_SERVER_NAME,ks as HTTP_SERVER_REQUEST_TIME_IN_QUEUE,As as HTTP_STATUS_CODE,xs as HTTP_TARGET,ws as HTTP_URL,Rs as HTTP_USER_AGENT,Ns as ID,Cs as INP,Ps as JSONRPC_PROTOCOL_VERSION,Ds as JSONRPC_REQUEST_ID,Ls as JVM_GC_ACTION,Us as JVM_GC_NAME,Ms as JVM_MEMORY_POOL_NAME,qs as JVM_MEMORY_TYPE,Gs as JVM_THREAD_DAEMON,Ys as JVM_THREAD_STATE,Vs as KOA_NAME,Ws as KOA_TYPE,Fs as LCP,Bs as LCP_ELEMENT,Hs as LCP_ID,zs as LCP_LOADTIME,Ks as LCP_RENDERTIME,js as LCP_SIZE,Qs as LCP_URL,Xs as LOGGER_NAME,Js as MCP_CANCELLED_REASON,Zs as MCP_CANCELLED_REQUEST_ID,$s as MCP_CLIENT_NAME,eo as MCP_CLIENT_TITLE,io as MCP_CLIENT_VERSION,to as MCP_LIFECYCLE_PHASE,no as MCP_LOGGING_DATA_TYPE,ro as MCP_LOGGING_LEVEL,ao as MCP_LOGGING_LOGGER,so as MCP_LOGGING_MESSAGE,oo as MCP_METHOD_NAME,lo as MCP_PROGRESS_CURRENT,po as MCP_PROGRESS_MESSAGE,co as MCP_PROGRESS_PERCENTAGE,uo as MCP_PROGRESS_TOKEN,bo as MCP_PROGRESS_TOTAL,go as MCP_PROMPT_NAME,mo as MCP_PROMPT_RESULT_DESCRIPTION,yo as MCP_PROMPT_RESULT_MESSAGE_CONTENT,_o as MCP_PROMPT_RESULT_MESSAGE_COUNT,ho as MCP_PROMPT_RESULT_MESSAGE_ROLE,vo as MCP_PROTOCOL_READY,fo as MCP_PROTOCOL_VERSION,So as MCP_REQUEST_ARGUMENT_KEY,Eo as MCP_REQUEST_ARGUMENT_KEY_BASE,To as MCP_REQUEST_ARGUMENT_NAME,Io as MCP_REQUEST_ARGUMENT_URI,Oo as MCP_REQUEST_ID,ko as MCP_RESOURCE_PROTOCOL,Ao as MCP_RESOURCE_URI,xo as MCP_SERVER_NAME,wo as MCP_SERVER_TITLE,Ro as MCP_SERVER_VERSION,No as MCP_SESSION_ID,Co as MCP_TOOL_NAME,Po as MCP_TOOL_RESULT_CONTENT,Do as MCP_TOOL_RESULT_CONTENT_COUNT,Lo as MCP_TOOL_RESULT_IS_ERROR,Uo as MCP_TRANSPORT,Mo as MDC_KEY,qo as MDC_KEY_BASE,Go as MESSAGING_BATCH_MESSAGE_COUNT,Yo as MESSAGING_DESTINATION,Vo as MESSAGING_DESTINATION_CONNECTION,Wo as MESSAGING_DESTINATION_NAME,Fo as MESSAGING_MESSAGE_BODY_SIZE,Bo as MESSAGING_MESSAGE_CONVERSATION_ID,Ho as MESSAGING_MESSAGE_ENVELOPE_SIZE,zo as MESSAGING_MESSAGE_ID,Ko as MESSAGING_MESSAGE_RECEIVE_LATENCY,jo as MESSAGING_MESSAGE_RETRY_COUNT,Qo as MESSAGING_OPERATION_NAME,Xo as MESSAGING_OPERATION_TYPE,Jo as MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY,Zo as MESSAGING_SYSTEM,$o as METHOD,el as MIDDLEWARE_NAME,il as NAVIGATION_ORIGIN,tl as NAVIGATION_ROUTE_ID,nl as NAVIGATION_TYPE,rl as NEL_ELAPSED_TIME,al as NEL_PHASE,sl as NEL_REFERRER,ol as NEL_SAMPLING_FUNCTION,ll as NEL_TYPE,pl as NETWORK_CONNECTION_EFFECTIVE_TYPE,cl as NETWORK_CONNECTION_RTT,ul as NETWORK_CONNECTION_TYPE,bl as NETWORK_LOCAL_ADDRESS,gl as NETWORK_LOCAL_PORT,dl as NETWORK_PEER_ADDRESS,ml as NETWORK_PEER_PORT,yl as NETWORK_PROTOCOL_NAME,_l as NETWORK_PROTOCOL_VERSION,hl as NETWORK_TRANSPORT,vl as NETWORK_TYPE,fl as NET_HOST_IP,Sl as NET_HOST_NAME,El as NET_HOST_PORT,Tl as NET_PEER_IP,Il as NET_PEER_NAME,Ol as NET_PEER_PORT,kl as NET_PROTOCOL_NAME,Al as NET_PROTOCOL_VERSION,xl as NET_SOCK_FAMILY,wl as NET_SOCK_HOST_ADDR,Rl as NET_SOCK_HOST_PORT,Nl as NET_SOCK_PEER_ADDR,Cl as NET_SOCK_PEER_NAME,Pl as NET_SOCK_PEER_PORT,Dl as NET_TRANSPORT,Ll as OS_BUILD,Ul as OS_BUILD_ID,Ml as OS_DESCRIPTION,ql as OS_KERNEL_VERSION,Gl as OS_NAME,Yl as OS_RAW_DESCRIPTION,Vl as OS_ROOTED,Wl as OS_THEME,Fl as OS_TYPE,Bl as OS_VERSION,Hl as OTEL_KIND,zl as OTEL_SCOPE_NAME,Kl as OTEL_SCOPE_VERSION,jl as OTEL_STATUS_CODE,Ql as OTEL_STATUS_DESCRIPTION,Xl as PARAMS_KEY,Jl as PARAMS_KEY_BASE,Zl as PERFORMANCE_ACTIVATIONSTART,$l as PERFORMANCE_TIMEORIGIN,ep as PREVIOUS_ROUTE,ip as PROCESS_COMMAND_ARGS,tp as PROCESS_EXECUTABLE_NAME,np as PROCESS_PID,rp as PROCESS_RUNTIME_DESCRIPTION,ap as PROCESS_RUNTIME_ENGINE_NAME,sp as PROCESS_RUNTIME_ENGINE_VERSION,op as PROCESS_RUNTIME_NAME,lp as PROCESS_RUNTIME_VERSION,pp as QUERY_KEY,cp as QUERY_KEY_BASE,up as REACT_VERSION,bp as RELEASE,gp as REMIX_ACTION_FORM_DATA_KEY,dp as REMIX_ACTION_FORM_DATA_KEY_BASE,mp as REPLAY_ID,yp as RESOURCE_DEPLOYMENT_ENVIRONMENT,_p as RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME,hp as RESOURCE_RENDER_BLOCKING_STATUS,vp as ROUTE,fp as RPC_GRPC_STATUS_CODE,Sp as RPC_METHOD,Ep as RPC_RESPONSE_STATUS_CODE,Tp as RPC_SERVICE,Ip as RPC_SYSTEM,Op as RPC_SYSTEM_NAME,kp as RUNTIME_BUILD,Ap as RUNTIME_NAME,xp as RUNTIME_RAW_DESCRIPTION,wp as RUNTIME_VERSION,Rp as SCORE_KEY,Np as SCORE_KEY_BASE,Cp as SCORE_RATIO_KEY,Pp as SCORE_RATIO_KEY_BASE,Dp as SCORE_TOTAL,Lp as SCORE_WEIGHT_KEY,Up as SCORE_WEIGHT_KEY_BASE,Mp as SENTRY_ACTION,qp as SENTRY_BROWSER_NAME,Gp as SENTRY_BROWSER_VERSION,Yp as SENTRY_CANCELLATION_REASON,Vp as SENTRY_CATEGORY,Wp as SENTRY_CLIENT_SAMPLE_RATE,Fp as SENTRY_DESCRIPTION,Bp as SENTRY_DIST,Hp as SENTRY_DOMAIN,zp as SENTRY_DSC_ENVIRONMENT,Kp as SENTRY_DSC_PROJECT_ID,jp as SENTRY_DSC_PUBLIC_KEY,Qp as SENTRY_DSC_RELEASE,Xp as SENTRY_DSC_SAMPLED,Jp as SENTRY_DSC_SAMPLE_RATE,Zp as SENTRY_DSC_TRACE_ID,$p as SENTRY_DSC_TRANSACTION,ec as SENTRY_ENVIRONMENT,ic as SENTRY_EXCLUSIVE_TIME,tc as SENTRY_GRAPHQL_OPERATION,nc as SENTRY_GROUP,rc as SENTRY_HTTP_PREFETCH,ac as SENTRY_IDLE_SPAN_FINISH_REASON,sc as SENTRY_IS_REMOTE,oc as SENTRY_KIND,lc as SENTRY_MAIN_THREAD,pc as SENTRY_MESSAGE_PARAMETER_KEY,cc as SENTRY_MESSAGE_TEMPLATE,uc as SENTRY_METRIC_SOURCE,bc as SENTRY_MOBILE,gc as SENTRY_MODULE_KEY,dc as SENTRY_MODULE_KEY_BASE,mc as SENTRY_NEXTJS_SSR_FUNCTION_ROUTE,yc as SENTRY_NEXTJS_SSR_FUNCTION_TYPE,_c as SENTRY_NORMALIZED_DB_QUERY,hc as SENTRY_NORMALIZED_DB_QUERY_HASH,vc as SENTRY_NORMALIZED_DESCRIPTION,fc as SENTRY_OBSERVED_TIMESTAMP_NANOS,Sc as SENTRY_OP,Ec as SENTRY_ORIGIN,Tc as SENTRY_PLATFORM,Ic as SENTRY_PROFILER_ID,Oc as SENTRY_PROFILE_ID,kc as SENTRY_RELEASE,Ac as SENTRY_REPLAY_ID,xc as SENTRY_REPLAY_IS_BUFFERING,wc as SENTRY_REPORT_EVENT,Rc as SENTRY_SDK_INTEGRATIONS,Nc as SENTRY_SDK_NAME,Cc as SENTRY_SDK_VERSION,Pc as SENTRY_SEGMENT_ID,Lc as SENTRY_SEGMENT_NAME,Uc as SENTRY_SERVER_SAMPLE_RATE,Mc as SENTRY_SOURCE,qc as SENTRY_SPAN_SOURCE,Gc as SENTRY_STATUS,Yc as SENTRY_STATUS_CODE,Vc as SENTRY_STATUS_MESSAGE,Wc as SENTRY_SVELTEKIT_NAVIGATION_FROM,Fc as SENTRY_SVELTEKIT_NAVIGATION_TO,Bc as SENTRY_SVELTEKIT_NAVIGATION_TYPE,Hc as SENTRY_THREAD_ID,zc as SENTRY_TIMESTAMP_SEQUENCE,Kc as SENTRY_TRACE_LIFECYCLE,jc as SENTRY_TRACE_PARENT_SPAN_ID,Qc as SENTRY_TRACE_STATUS,Xc as SENTRY_TRANSACTION,Jc as SENTRY_USER_EMAIL,Zc as SENTRY_USER_GEO_CITY,$c as SENTRY_USER_GEO_COUNTRY_CODE,eu as SENTRY_USER_GEO_REGION,iu as SENTRY_USER_GEO_SUBDIVISION,tu as SENTRY_USER_ID,nu as SENTRY_USER_IP,ru as SENTRY_USER_USERNAME,au as SERVER_ADDRESS,su as SERVER_NAME,ou as SERVER_PORT,lu as SERVICE_NAME,pu as SERVICE_VERSION,cu as SESSION_ID,uu as STALL_PERCENTAGE,bu as STALL_TOTAL_TIME,gu as STATE_TYPE,du as THREAD_ID,mu as THREAD_NAME,yu as TIMBER_TAG,_u as TIME_TO_FULL_DISPLAY,hu as TIME_TO_INITIAL_DISPLAY,vu as TRANSACTION,fu as TRPC_PROCEDURE_PATH,Su as TRPC_PROCEDURE_TYPE,Eu as TTFB,Tu as TTFB_REQUESTTIME,Iu as TYPE,Ou as UI_COMPONENT_NAME,ku as UI_CONTRIBUTES_TO_TTFD,Au as UI_CONTRIBUTES_TO_TTID,xu as UI_ELEMENT_HEIGHT,wu as UI_ELEMENT_ID,Ru as UI_ELEMENT_IDENTIFIER,Nu as UI_ELEMENT_LOAD_TIME,Cu as UI_ELEMENT_PAINT_TYPE,Pu as UI_ELEMENT_RENDER_TIME,Du as UI_ELEMENT_TYPE,Lu as UI_ELEMENT_URL,Uu as UI_ELEMENT_WIDTH,Mu as URL,qu as URL_DOMAIN,Gu as URL_FRAGMENT,Yu as URL_FULL,Vu as URL_PATH,Wu as URL_PATH_PARAMETER_KEY,Fu as URL_PATH_PARAMETER_KEY_BASE,Bu as URL_PORT,Hu as URL_QUERY,zu as URL_SAME_ORIGIN,Ku as URL_SCHEME,ju as URL_TEMPLATE,Qu as USER_AGENT_ORIGINAL,Xu as USER_EMAIL,Ju as USER_FULL_NAME,Zu as USER_GEO_CITY,$u as USER_GEO_COUNTRY_CODE,eb as USER_GEO_REGION,ib as USER_GEO_SUBDIVISION,tb as USER_HASH,nb as USER_ID,rb as USER_IP_ADDRESS,ab as USER_NAME,sb as USER_ROLES,ob as VERCEL_BRANCH,lb as VERCEL_BUILD_ID,pb as VERCEL_DEPLOYMENT_ID,cb as VERCEL_DESTINATION,ub as VERCEL_EDGE_TYPE,bb as VERCEL_ENTRYPOINT,gb as VERCEL_EXECUTION_REGION,db as VERCEL_ID,mb as VERCEL_JA3_DIGEST,yb as VERCEL_JA4_DIGEST,_b as VERCEL_LOG_TYPE,hb as VERCEL_PATH,vb as VERCEL_PROJECT_ID,fb as VERCEL_PROJECT_NAME,Sb as VERCEL_PROXY_CACHE_ID,Eb as VERCEL_PROXY_CLIENT_IP,Tb as VERCEL_PROXY_HOST,Ib as VERCEL_PROXY_LAMBDA_REGION,Ob as VERCEL_PROXY_METHOD,kb as VERCEL_PROXY_PATH,Ab as VERCEL_PROXY_PATH_TYPE,xb as VERCEL_PROXY_PATH_TYPE_VARIANT,wb as VERCEL_PROXY_REFERER,Rb as VERCEL_PROXY_REGION,Nb as VERCEL_PROXY_RESPONSE_BYTE_SIZE,Cb as VERCEL_PROXY_SCHEME,Pb as VERCEL_PROXY_STATUS_CODE,Db as VERCEL_PROXY_TIMESTAMP,Lb as VERCEL_PROXY_USER_AGENT,Ub as VERCEL_PROXY_VERCEL_CACHE,Mb as VERCEL_PROXY_VERCEL_ID,qb as VERCEL_PROXY_WAF_ACTION,Gb as VERCEL_PROXY_WAF_RULE_ID,Yb as VERCEL_REQUEST_ID,Vb as VERCEL_SOURCE,Wb as VERCEL_STATUS_CODE,Fe as _AWS_KINESIS_STREAM_NAME,ii as _AWS_REQUEST_ID,rs as _HTTP_REQUEST_METHOD,Dc as _SENTRY_SEGMENT_ID};\n//# sourceMappingURL=attributes.mjs.map\n","import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS } from '../../semanticAttributes.js';\nimport { getCombinedScopeData } from '../../utils/scopeData.js';\nimport { spanToStreamedSpanJSON, INTERNAL_getSegmentSpan, streamedSpanJsonToSerializedSpan, showSpanDropWarning } from '../../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from '../utils.js';\nimport { isStreamedBeforeSendSpanCallback } from './beforeSendSpan.js';\nimport { scopeContextsToSpanAttributes } from './scopeContextAttributes.js';\nimport { DEFAULT_ENVIRONMENT } from '../../constants.js';\nimport { SENTRY_SDK_VERSION, SENTRY_SDK_NAME, SENTRY_SEGMENT_ID, SENTRY_SEGMENT_NAME, SENTRY_TRACE_LIFECYCLE } from '@sentry/conventions/attributes';\n\nfunction captureSpan(span, client) {\n  const spanJSON = spanToStreamedSpanJSON(span);\n  const segmentSpan = INTERNAL_getSegmentSpan(span);\n  const serializedSegmentSpan = spanToStreamedSpanJSON(segmentSpan);\n  const { isolationScope: spanIsolationScope, scope: spanScope } = getCapturedScopesOnSpan(span);\n  const finalScopeData = getCombinedScopeData(spanIsolationScope, spanScope);\n  applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, finalScopeData);\n  const spanKind = span.kind;\n  client.emit(\"preprocessSpan\", spanJSON, { spanKind });\n  if (spanJSON.is_segment) {\n    applyScopeToSegmentSpan(spanJSON, finalScopeData);\n    applySdkMetadataToSegmentSpan(spanJSON, client);\n    client.emit(\"processSegmentSpan\", spanJSON);\n  }\n  client.emit(\"processSpan\", spanJSON);\n  const { beforeSendSpan } = client.getOptions();\n  const processedSpan = beforeSendSpan && isStreamedBeforeSendSpanCallback(beforeSendSpan) ? applyBeforeSendSpanCallback(spanJSON, beforeSendSpan) : spanJSON;\n  const spanNameSource = processedSpan.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n  if (spanJSON.is_segment && spanNameSource) {\n    safeSetSpanJSONAttributes(processedSpan, {\n      [\"sentry.segment.name.source\"]: spanNameSource\n    });\n  }\n  return {\n    ...streamedSpanJsonToSerializedSpan(processedSpan),\n    _segmentSpan: segmentSpan\n  };\n}\nfunction applyScopeToSegmentSpan(segmentSpanJSON, scopeData) {\n  const contextAttributes = scopeContextsToSpanAttributes(scopeData.contexts);\n  safeSetSpanJSONAttributes(segmentSpanJSON, contextAttributes);\n}\nfunction safeSetSpanJSONAttributes(spanJSON, newAttributes) {\n  const originalAttributes = spanJSON.attributes ?? (spanJSON.attributes = {});\n  Object.entries(newAttributes).forEach(([key, value]) => {\n    if (value != null && !(key in originalAttributes)) {\n      originalAttributes[key] = value;\n    }\n  });\n}\nfunction applySdkMetadataToSegmentSpan(segmentSpanJSON, client) {\n  const integrationNames = client.getIntegrationNames();\n  if (!integrationNames.length) return;\n  safeSetSpanJSONAttributes(segmentSpanJSON, {\n    [SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS]: integrationNames\n  });\n}\nfunction applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, scopeData) {\n  const sdk = client.getSdkMetadata();\n  const { release, environment } = client.getOptions();\n  safeSetSpanJSONAttributes(spanJSON, {\n    [SENTRY_TRACE_LIFECYCLE]: \"stream\",\n    [SENTRY_SEGMENT_NAME]: serializedSegmentSpan.name,\n    [SENTRY_SEGMENT_ID]: serializedSegmentSpan.span_id,\n    [SENTRY_SDK_NAME]: sdk?.sdk?.name,\n    [SENTRY_SDK_VERSION]: sdk?.sdk?.version,\n    [SEMANTIC_ATTRIBUTE_SENTRY_RELEASE]: release,\n    [SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT]: environment || DEFAULT_ENVIRONMENT,\n    [SEMANTIC_ATTRIBUTE_USER_ID]: scopeData.user?.id,\n    [SEMANTIC_ATTRIBUTE_USER_EMAIL]: scopeData.user?.email,\n    [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: scopeData.user?.ip_address,\n    [SEMANTIC_ATTRIBUTE_USER_USERNAME]: scopeData.user?.username,\n    ...scopeData.attributes\n  });\n}\nfunction applyBeforeSendSpanCallback(span, beforeSendSpan) {\n  const modifedSpan = beforeSendSpan(span);\n  if (!modifedSpan) {\n    showSpanDropWarning();\n    return span;\n  }\n  return modifedSpan;\n}\n\nexport { applyBeforeSendSpanCallback, captureSpan, safeSetSpanJSONAttributes };\n//# sourceMappingURL=captureSpan.js.map\n","import { isThenable } from './is.js';\n\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\nfunction resolvedSyncPromise(value) {\n  return new SyncPromise((resolve) => {\n    resolve(value);\n  });\n}\nfunction rejectedSyncPromise(reason) {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\nclass SyncPromise {\n  constructor(executor) {\n    this._state = STATE_PENDING;\n    this._handlers = [];\n    this._runExecutor(executor);\n  }\n  /** @inheritdoc */\n  then(onfulfilled, onrejected) {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        (result) => {\n          if (!onfulfilled) {\n            resolve(result);\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        (reason) => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        }\n      ]);\n      this._executeHandlers();\n    });\n  }\n  /** @inheritdoc */\n  catch(onrejected) {\n    return this.then((val) => val, onrejected);\n  }\n  /** @inheritdoc */\n  finally(onfinally) {\n    return new SyncPromise((resolve, reject) => {\n      let val;\n      let isRejected;\n      return this.then(\n        (value) => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        (reason) => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        }\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n        resolve(val);\n      });\n    });\n  }\n  /** Excute the resolve/reject handlers. */\n  _executeHandlers() {\n    if (this._state === STATE_PENDING) {\n      return;\n    }\n    const cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n    cachedHandlers.forEach((handler) => {\n      if (handler[0]) {\n        return;\n      }\n      if (this._state === STATE_RESOLVED) {\n        handler[1](this._value);\n      }\n      if (this._state === STATE_REJECTED) {\n        handler[2](this._value);\n      }\n      handler[0] = true;\n    });\n  }\n  /** Run the executor for the SyncPromise. */\n  _runExecutor(executor) {\n    const setResult = (state, value) => {\n      if (this._state !== STATE_PENDING) {\n        return;\n      }\n      if (isThenable(value)) {\n        void value.then(resolve, reject);\n        return;\n      }\n      this._state = state;\n      this._value = value;\n      this._executeHandlers();\n    };\n    const resolve = (value) => {\n      setResult(STATE_RESOLVED, value);\n    };\n    const reject = (reason) => {\n      setResult(STATE_REJECTED, reason);\n    };\n    try {\n      executor(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\nfunction notifyEventProcessors(processors, event, hint, index = 0) {\n  try {\n    const result = _notifyEventProcessors(event, hint, processors, index);\n    return isThenable(result) ? result : resolvedSyncPromise(result);\n  } catch (error) {\n    return rejectedSyncPromise(error);\n  }\n}\nfunction _notifyEventProcessors(event, hint, processors, index) {\n  const processor = processors[index];\n  if (!event || !processor) {\n    return event;\n  }\n  const result = processor({ ...event }, hint);\n  DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || \"?\"}\" dropped event`);\n  if (isThenable(result)) {\n    return result.then((final) => _notifyEventProcessors(final, hint, processors, index + 1));\n  }\n  return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\nfunction getFilenameToDebugIdMap(stackParser) {\n  const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n  const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n  if (!sentryDebugIdMap && !nativeDebugIdMap) {\n    return {};\n  }\n  const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n  const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n  if (cachedFilenameDebugIds && sentryDebugIdKeys.length === lastSentryKeysCount && nativeDebugIdKeys.length === lastNativeKeysCount) {\n    return cachedFilenameDebugIds;\n  }\n  lastSentryKeysCount = sentryDebugIdKeys.length;\n  lastNativeKeysCount = nativeDebugIdKeys.length;\n  cachedFilenameDebugIds = {};\n  if (!parsedStackResults) {\n    parsedStackResults = {};\n  }\n  const processDebugIds = (debugIdKeys, debugIdMap) => {\n    for (const key of debugIdKeys) {\n      const debugId = debugIdMap[key];\n      const result = parsedStackResults?.[key];\n      if (result && cachedFilenameDebugIds && debugId) {\n        cachedFilenameDebugIds[result[0]] = debugId;\n        if (parsedStackResults) {\n          parsedStackResults[key] = [result[0], debugId];\n        }\n      } else if (debugId) {\n        const parsedStack = stackParser(key);\n        for (let i = parsedStack.length - 1; i >= 0; i--) {\n          const stackFrame = parsedStack[i];\n          const filename = stackFrame?.filename;\n          if (filename && cachedFilenameDebugIds && parsedStackResults) {\n            cachedFilenameDebugIds[filename] = debugId;\n            parsedStackResults[key] = [filename, debugId];\n            break;\n          }\n        }\n      }\n    }\n  };\n  if (sentryDebugIdMap) {\n    processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n  }\n  if (nativeDebugIdMap) {\n    processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n  }\n  return cachedFilenameDebugIds;\n}\nfunction getDebugImagesForResources(stackParser, resource_paths) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n  if (!filenameDebugIdMap) {\n    return [];\n  }\n  const images = [];\n  for (const path of resource_paths) {\n    const normalizedPath = normalizeStackTracePath(path);\n    if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n      images.push({\n        type: \"sourcemap\",\n        code_file: path,\n        debug_id: filenameDebugIdMap[normalizedPath]\n      });\n    }\n  }\n  return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { uuid4, addExceptionMechanism } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent } from './scopeData.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction prepareEvent(options, event, hint, scope, client, isolationScope) {\n  const { normalizeDepth = 3, normalizeMaxBreadth = 1e3 } = options;\n  const prepared = {\n    ...event,\n    event_id: event.event_id || hint.event_id || uuid4(),\n    timestamp: event.timestamp || dateTimestampInSeconds()\n  };\n  const integrations = hint.integrations || options.integrations.map((i) => i.name);\n  applyClientOptions(prepared, options);\n  applyIntegrationsMetadata(prepared, integrations);\n  if (client) {\n    client.emit(\"applyFrameMetadata\", event);\n  }\n  if (event.type === void 0) {\n    applyDebugIds(prepared, options.stackParser);\n  }\n  const finalScope = getFinalScope(scope, hint.captureContext);\n  if (hint.mechanism) {\n    addExceptionMechanism(prepared, hint.mechanism);\n  }\n  const clientEventProcessors = client ? client.getEventProcessors() : [];\n  const data = getCombinedScopeData(isolationScope, finalScope);\n  const attachments = [...hint.attachments || [], ...data.attachments];\n  if (attachments.length) {\n    hint.attachments = attachments;\n  }\n  applyScopeDataToEvent(prepared, data);\n  const eventProcessors = [\n    ...clientEventProcessors,\n    // Run scope event processors _after_ all other processors\n    ...data.eventProcessors\n  ];\n  const isInternalException = hint.data && hint.data.__sentry__ === true;\n  const result = isInternalException ? resolvedSyncPromise(prepared) : notifyEventProcessors(eventProcessors, prepared, hint);\n  return result.then((evt) => {\n    if (evt) {\n      applyDebugMeta(evt);\n    }\n    if (typeof normalizeDepth === \"number\" && normalizeDepth > 0) {\n      return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n    }\n    return evt;\n  });\n}\nfunction applyClientOptions(event, options) {\n  const { environment, release, dist, maxValueLength } = options;\n  event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n  if (!event.release && release) {\n    event.release = release;\n  }\n  if (!event.dist && dist) {\n    event.dist = dist;\n  }\n  const request = event.request;\n  if (request?.url && maxValueLength) {\n    request.url = truncate(request.url, maxValueLength);\n  }\n  if (maxValueLength) {\n    event.exception?.values?.forEach((exception) => {\n      if (exception.value) {\n        exception.value = truncate(exception.value, maxValueLength);\n      }\n    });\n  }\n}\nfunction applyDebugIds(event, stackParser) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n  event.exception?.values?.forEach((exception) => {\n    exception.stacktrace?.frames?.forEach((frame) => {\n      if (frame.filename) {\n        frame.debug_id = filenameDebugIdMap[frame.filename];\n      }\n    });\n  });\n}\nfunction applyDebugMeta(event) {\n  const filenameDebugIdMap = {};\n  event.exception?.values?.forEach((exception) => {\n    exception.stacktrace?.frames?.forEach((frame) => {\n      if (frame.debug_id) {\n        if (frame.abs_path) {\n          filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n        } else if (frame.filename) {\n          filenameDebugIdMap[frame.filename] = frame.debug_id;\n        }\n        delete frame.debug_id;\n      }\n    });\n  });\n  if (Object.keys(filenameDebugIdMap).length === 0) {\n    return;\n  }\n  event.debug_meta = event.debug_meta || {};\n  event.debug_meta.images = event.debug_meta.images || [];\n  const images = event.debug_meta.images;\n  Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n    images.push({\n      type: \"sourcemap\",\n      code_file: filename,\n      debug_id\n    });\n  });\n}\nfunction applyIntegrationsMetadata(event, integrationNames) {\n  if (integrationNames.length > 0) {\n    event.sdk = event.sdk || {};\n    event.sdk.integrations = [...event.sdk.integrations || [], ...integrationNames];\n  }\n}\nfunction normalizeEvent(event, depth, maxBreadth) {\n  if (!event) {\n    return null;\n  }\n  const normalized = {\n    ...event,\n    ...event.breadcrumbs && {\n      breadcrumbs: event.breadcrumbs.map((b) => ({\n        ...b,\n        ...b.data && {\n          data: normalize(b.data, depth, maxBreadth)\n        }\n      }))\n    },\n    ...event.user && {\n      user: normalize(event.user, depth, maxBreadth)\n    },\n    ...event.contexts && {\n      contexts: normalize(event.contexts, depth, maxBreadth)\n    },\n    ...event.extra && {\n      extra: normalize(event.extra, depth, maxBreadth)\n    }\n  };\n  if (event.contexts?.trace && normalized.contexts) {\n    normalized.contexts.trace = event.contexts.trace;\n    if (event.contexts.trace.data) {\n      normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n    }\n  }\n  if (event.spans) {\n    normalized.spans = event.spans.map((span) => {\n      return {\n        ...span,\n        ...span.data && {\n          data: normalize(span.data, depth, maxBreadth)\n        }\n      };\n    });\n  }\n  if (event.contexts?.flags && normalized.contexts) {\n    normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n  }\n  return normalized;\n}\nfunction getFinalScope(scope, captureContext) {\n  if (!captureContext) {\n    return scope;\n  }\n  const finalScope = scope ? scope.clone() : new Scope();\n  finalScope.update(captureContext);\n  return finalScope;\n}\nfunction parseEventHintOrCaptureContext(hint) {\n  if (!hint) {\n    return void 0;\n  }\n  if (hintIsScopeOrFunction(hint)) {\n    return { captureContext: hint };\n  }\n  if (hintIsScopeContext(hint)) {\n    return {\n      captureContext: hint\n    };\n  }\n  return hint;\n}\nfunction hintIsScopeOrFunction(hint) {\n  return hint instanceof Scope || typeof hint === \"function\";\n}\nconst captureContextKeys = [\n  \"user\",\n  \"level\",\n  \"extra\",\n  \"contexts\",\n  \"tags\",\n  \"fingerprint\",\n  \"propagationContext\"\n];\nfunction hintIsScopeContext(hint) {\n  return Object.keys(hint).some((key) => captureContextKeys.includes(key));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { getIsolationScope, getCurrentScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { startNewTrace } from './tracing/trace.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { uuid4 } from './utils/misc.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { timestampInSeconds } from './utils/time.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction captureException(exception, hint) {\n  return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\nfunction captureMessage(message, captureContext) {\n  const level = typeof captureContext === \"string\" ? captureContext : void 0;\n  const hint = typeof captureContext !== \"string\" ? { captureContext } : void 0;\n  return getCurrentScope().captureMessage(message, level, hint);\n}\nfunction captureEvent(event, hint) {\n  return getCurrentScope().captureEvent(event, hint);\n}\nfunction setContext(name, context) {\n  getIsolationScope().setContext(name, context);\n}\nfunction setExtras(extras) {\n  getIsolationScope().setExtras(extras);\n}\nfunction setExtra(key, extra) {\n  getIsolationScope().setExtra(key, extra);\n}\nfunction setTags(tags) {\n  getIsolationScope().setTags(tags);\n}\nfunction setTag(key, value) {\n  getIsolationScope().setTag(key, value);\n}\nfunction setAttributes(attributes) {\n  getIsolationScope().setAttributes(attributes);\n}\nfunction setAttribute(key, value) {\n  getIsolationScope().setAttribute(key, value);\n}\nfunction setUser(user) {\n  getIsolationScope().setUser(user);\n}\nfunction setConversationId(conversationId) {\n  getIsolationScope().setConversationId(conversationId);\n}\nfunction lastEventId() {\n  return getIsolationScope().lastEventId();\n}\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n  const scope = getCurrentScope();\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(\"Cannot capture check-in. No client defined.\");\n  } else if (!client.captureCheckIn) {\n    DEBUG_BUILD && debug.warn(\"Cannot capture check-in. Client does not support sending check-ins.\");\n  } else {\n    return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n  }\n  return uuid4();\n}\nfunction withMonitor(monitorSlug, callback, upsertMonitorConfig) {\n  function runCallback() {\n    const checkInId = captureCheckIn({ monitorSlug, status: \"in_progress\" }, upsertMonitorConfig);\n    const now = timestampInSeconds();\n    function finishCheckIn(status) {\n      captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n    }\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback();\n    } catch (e) {\n      finishCheckIn(\"error\");\n      throw e;\n    }\n    if (isThenable(maybePromiseResult)) {\n      return maybePromiseResult.then(\n        (r) => {\n          finishCheckIn(\"ok\");\n          return r;\n        },\n        (e) => {\n          finishCheckIn(\"error\");\n          throw e;\n        }\n      );\n    }\n    finishCheckIn(\"ok\");\n    return maybePromiseResult;\n  }\n  return withIsolationScope(() => upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback());\n}\nasync function flush(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  DEBUG_BUILD && debug.warn(\"Cannot flush events. No client defined.\");\n  return Promise.resolve(false);\n}\nasync function close(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  DEBUG_BUILD && debug.warn(\"Cannot flush events and disable SDK. No client defined.\");\n  return Promise.resolve(false);\n}\nfunction isInitialized() {\n  return !!getClient();\n}\nfunction isEnabled() {\n  const client = getClient();\n  return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\nfunction addEventProcessor(callback) {\n  getIsolationScope().addEventProcessor(callback);\n}\nfunction startSession(context) {\n  const isolationScope = getIsolationScope();\n  const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n  const { userAgent } = GLOBAL_OBJ.navigator || {};\n  const session = makeSession({\n    user,\n    ...userAgent && { userAgent },\n    ...context\n  });\n  const currentSession = isolationScope.getSession();\n  if (currentSession?.status === \"ok\") {\n    updateSession(currentSession, { status: \"exited\" });\n  }\n  endSession();\n  isolationScope.setSession(session);\n  return session;\n}\nfunction endSession() {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n  const session = currentScope.getSession() || isolationScope.getSession();\n  if (session) {\n    closeSession(session);\n  }\n  _sendSessionUpdate();\n  isolationScope.setSession();\n}\nfunction _sendSessionUpdate() {\n  const isolationScope = getIsolationScope();\n  const client = getClient();\n  const session = isolationScope.getSession();\n  if (session && client) {\n    client.captureSession(session);\n  }\n}\nfunction captureSession(end = false) {\n  if (end) {\n    endSession();\n    return;\n  }\n  _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setAttribute, setAttributes, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","function safeUnref(timer) {\n  if (typeof timer === \"object\" && typeof timer.unref === \"function\") {\n    timer.unref();\n  }\n  return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n","import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = \"7\";\nfunction getBaseApiEndpoint(dsn) {\n  const protocol = dsn.protocol ? `${dsn.protocol}:` : \"\";\n  const port = dsn.port ? `:${dsn.port}` : \"\";\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : \"\"}/api/`;\n}\nfunction _getIngestEndpoint(dsn) {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\nfunction _encodedAuth(dsn, sdkInfo) {\n  const params = {\n    sentry_version: SENTRY_API_VERSION\n  };\n  if (dsn.publicKey) {\n    params.sentry_key = dsn.publicKey;\n  }\n  if (sdkInfo) {\n    params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n  }\n  return new URLSearchParams(params).toString();\n}\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n  const dsn = makeDsn(dsnLike);\n  if (!dsn) {\n    return \"\";\n  }\n  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (const key in dialogOptions) {\n    if (key === \"dsn\") {\n      continue;\n    }\n    if (key === \"onClose\") {\n      continue;\n    }\n    if (key === \"user\") {\n      const user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key])}`;\n    }\n  }\n  return `${endpoint}?${encodedOptions}`;\n}\n\nexport { SENTRY_API_VERSION, getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\nfunction filterDuplicates(integrations) {\n  const integrationsByName = {};\n  integrations.forEach((currentInstance) => {\n    const { name } = currentInstance;\n    const existingInstance = integrationsByName[name];\n    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n      return;\n    }\n    integrationsByName[name] = currentInstance;\n  });\n  return Object.values(integrationsByName);\n}\nfunction getIntegrationsToSetup(options) {\n  const defaultIntegrations = options.defaultIntegrations || [];\n  const userIntegrations = options.integrations;\n  defaultIntegrations.forEach((integration) => {\n    integration.isDefaultInstance = true;\n  });\n  let integrations;\n  if (Array.isArray(userIntegrations)) {\n    integrations = [...defaultIntegrations, ...userIntegrations];\n  } else if (typeof userIntegrations === \"function\") {\n    const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n    integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n  } else {\n    integrations = defaultIntegrations;\n  }\n  return filterDuplicates(integrations);\n}\nfunction setupIntegrations(client, integrations) {\n  const integrationIndex = {};\n  integrations.forEach((integration) => {\n    if (integration?.beforeSetup) {\n      integration.beforeSetup(client);\n    }\n  });\n  integrations.forEach((integration) => {\n    if (integration) {\n      setupIntegration(client, integration, integrationIndex);\n    }\n  });\n  return integrationIndex;\n}\nfunction afterSetupIntegrations(client, integrations) {\n  for (const integration of integrations) {\n    if (integration?.afterAllSetup) {\n      integration.afterAllSetup(client);\n    }\n  }\n}\nfunction setupIntegration(client, integration, integrationIndex) {\n  if (integrationIndex[integration.name]) {\n    DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n    return;\n  }\n  integrationIndex[integration.name] = integration;\n  if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === \"function\") {\n    integration.setupOnce();\n    installedIntegrations.push(integration.name);\n  }\n  if (integration.setup && typeof integration.setup === \"function\") {\n    integration.setup(client);\n  }\n  if (typeof integration.preprocessEvent === \"function\") {\n    const callback = integration.preprocessEvent.bind(integration);\n    client.on(\"preprocessEvent\", (event, hint) => callback(event, hint, client));\n  }\n  if (typeof integration.processEvent === \"function\") {\n    const callback = integration.processEvent.bind(integration);\n    const processor = Object.assign((event, hint) => callback(event, hint, client), {\n      id: integration.name\n    });\n    client.addEventProcessor(processor);\n  }\n  [\"processSpan\", \"processSegmentSpan\"].forEach((hook) => {\n    const callback = integration[hook];\n    if (typeof callback === \"function\") {\n      client.on(hook, (span) => callback.call(integration, span, client));\n    }\n  });\n  DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\nfunction addIntegration(integration) {\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n    return;\n  }\n  client.addIntegration(integration);\n}\nfunction defineIntegration(fn) {\n  return fn;\n}\nfunction extendIntegration(integration, extendedIntegration) {\n  const wrappedIntegration = {\n    ...integration,\n    ...extendedIntegration\n  };\n  for (const key in extendedIntegration) {\n    const baseValue = integration[key];\n    const extendedValue = extendedIntegration[key];\n    if (typeof baseValue === \"function\" && typeof extendedValue === \"function\") {\n      const wrappedFunction = new Proxy(baseValue, {\n        apply: (target, thisArg, args) => {\n          Reflect.apply(target, thisArg, args);\n          return Reflect.apply(extendedValue, thisArg, args);\n        }\n      });\n      wrappedIntegration[key] = wrappedFunction;\n    }\n  }\n  return wrappedIntegration;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, extendIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","function isBrowserBundle() {\n  return typeof __SENTRY_BROWSER_BUNDLE__ !== \"undefined\" && !!__SENTRY_BROWSER_BUNDLE__;\n}\nfunction getSDKSource() {\n  /*! __SENTRY_SDK_SOURCE__ */\n  return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\nfunction isNodeEnv() {\n  return !isBrowserBundle() && Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n}\nfunction dynamicRequire(mod, request) {\n  return mod.require(request);\n}\nfunction loadModule(moduleName, existingModule = module) {\n  let mod;\n  try {\n    mod = dynamicRequire(existingModule, moduleName);\n  } catch {\n  }\n  if (!mod) {\n    try {\n      const { cwd } = dynamicRequire(existingModule, \"process\");\n      mod = dynamicRequire(existingModule, `${cwd()}/node_modules/${moduleName}`);\n    } catch {\n    }\n  }\n  return mod;\n}\n\nexport { isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction isBrowser() {\n  return typeof window !== \"undefined\" && (!isNodeEnv() || isElectronNodeRenderer());\n}\nfunction isElectronNodeRenderer() {\n  const process = GLOBAL_OBJ.process;\n  return process?.type === \"renderer\";\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n","import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createLogContainerEnvelopeItem(items, inferUserData) {\n  const inferSetting = inferUserData ? \"auto\" : \"never\";\n  return [\n    {\n      type: \"log\",\n      item_count: items.length,\n      content_type: \"application/vnd.sentry.items.log+json\"\n    },\n    {\n      version: 2,\n      ...isBrowser() && {\n        ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n      },\n      items\n    }\n  ];\n}\nfunction createLogEnvelope(logs, metadata, tunnel, dsn, inferUserData) {\n  const headers = {};\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version\n    };\n  }\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n  return createEnvelope(headers, [createLogContainerEnvelopeItem(logs, inferUserData)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\nfunction setLogAttribute(logAttributes, key, value, setEvenIfPresent = true) {\n  if (value && (!logAttributes[key] || setEvenIfPresent)) {\n    logAttributes[key] = value;\n  }\n}\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n  const bufferMap = _getBufferMap();\n  const logBuffer = _INTERNAL_getLogBuffer(client);\n  if (logBuffer === void 0) {\n    bufferMap.set(client, [serializedLog]);\n  } else {\n    if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n      _INTERNAL_flushLogsBuffer(client, logBuffer);\n      bufferMap.set(client, [serializedLog]);\n    } else {\n      bufferMap.set(client, [...logBuffer, serializedLog]);\n    }\n  }\n}\nfunction _INTERNAL_captureLog(beforeLog, currentScope = getCurrentScope(), captureSerializedLog = _INTERNAL_captureSerializedLog) {\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(\"No client available to capture log.\");\n    return;\n  }\n  const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n  if (!enableLogs) {\n    DEBUG_BUILD && debug.warn(\"logging option not enabled, log will not be captured.\");\n    return;\n  }\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const processedLogAttributes = {\n    ...beforeLog.attributes\n  };\n  const {\n    user: { id, email, username },\n    attributes: scopeAttributes = {}\n  } = getCombinedScopeData(getIsolationScope(), currentScope);\n  setLogAttribute(processedLogAttributes, \"user.id\", id, false);\n  setLogAttribute(processedLogAttributes, \"user.email\", email, false);\n  setLogAttribute(processedLogAttributes, \"user.name\", username, false);\n  setLogAttribute(processedLogAttributes, \"sentry.release\", release);\n  setLogAttribute(processedLogAttributes, \"sentry.environment\", environment);\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setLogAttribute(processedLogAttributes, \"sentry.sdk.name\", name);\n  setLogAttribute(processedLogAttributes, \"sentry.sdk.version\", version);\n  const replay = client.getIntegrationByName(\"Replay\");\n  const replayId = replay?.getReplayId(true);\n  setLogAttribute(processedLogAttributes, \"sentry.replay_id\", replayId);\n  if (replayId && replay?.getRecordingMode() === \"buffer\") {\n    setLogAttribute(processedLogAttributes, \"sentry._internal.replay_is_buffering\", true);\n  }\n  const beforeLogMessage = beforeLog.message;\n  if (isParameterizedString(beforeLogMessage)) {\n    const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n    if (__sentry_template_values__?.length) {\n      processedLogAttributes[\"sentry.message.template\"] = __sentry_template_string__;\n    }\n    __sentry_template_values__.forEach((param, index) => {\n      processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n    });\n  }\n  const span = _getSpanForScope(currentScope);\n  setLogAttribute(processedLogAttributes, \"sentry.trace.parent_span_id\", span?.spanContext().spanId);\n  const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n  client.emit(\"beforeCaptureLog\", processedLog);\n  const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n  if (!log) {\n    client.recordDroppedEvent(\"before_send\", \"log_item\", 1);\n    DEBUG_BUILD && debug.warn(\"beforeSendLog returned null, log will not be captured.\");\n    return;\n  }\n  const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n  const serializedLog = {\n    timestamp,\n    level,\n    body: _removeLoneSurrogates(String(message)),\n    trace_id: traceContext?.trace_id,\n    severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n    attributes: sanitizeLogAttributes({\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(logAttributes, true),\n      [sequenceAttr.key]: sequenceAttr.value\n    })\n  };\n  captureSerializedLog(client, serializedLog);\n  client.emit(\"afterCaptureLog\", log);\n}\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n  const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n  if (logBuffer.length === 0) {\n    return;\n  }\n  const clientOptions = client.getOptions();\n  const envelope = createLogEnvelope(\n    logBuffer,\n    clientOptions._metadata,\n    clientOptions.tunnel,\n    client.getDsn(),\n    client.getDataCollectionOptions().userInfo\n  );\n  _getBufferMap().set(client, []);\n  client.emit(\"flushLogs\");\n  client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getLogBuffer(client) {\n  return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n  return getGlobalSingleton(\"clientToLogBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\nfunction sanitizeLogAttributes(attributes) {\n  const sanitized = {};\n  for (const [key, attr] of Object.entries(attributes)) {\n    const sanitizedKey = _removeLoneSurrogates(key);\n    if (attr.type === \"string\") {\n      sanitized[sanitizedKey] = { ...attr, value: _removeLoneSurrogates(attr.value) };\n    } else {\n      sanitized[sanitizedKey] = attr;\n    }\n  }\n  return sanitized;\n}\nfunction _removeLoneSurrogates(str) {\n  const strObj = Object(str);\n  const isWellFormed = strObj[\"isWellFormed\"];\n  const toWellFormed = strObj[\"toWellFormed\"];\n  if (typeof isWellFormed === \"function\" && typeof toWellFormed === \"function\") {\n    return isWellFormed.call(str) ? str : toWellFormed.call(str);\n  }\n  return str;\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer, _removeLoneSurrogates };\n//# sourceMappingURL=internal.js.map\n","import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createMetricContainerEnvelopeItem(items, inferUserData) {\n  const inferSetting = inferUserData ? \"auto\" : \"never\";\n  return [\n    {\n      type: \"trace_metric\",\n      item_count: items.length,\n      content_type: \"application/vnd.sentry.items.trace-metric+json\"\n    },\n    {\n      version: 2,\n      ...isBrowser() && {\n        ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n      },\n      items\n    }\n  ];\n}\nfunction createMetricEnvelope(metrics, metadata, tunnel, dsn, inferUserData) {\n  const headers = {};\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version\n    };\n  }\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n  return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics, inferUserData)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1e3;\nfunction setMetricAttribute(metricAttributes, key, value, setEvenIfPresent = true) {\n  if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n    metricAttributes[key] = value;\n  }\n}\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n  const bufferMap = _getBufferMap();\n  const metricBuffer = _INTERNAL_getMetricBuffer(client);\n  if (metricBuffer === void 0) {\n    bufferMap.set(client, [serializedMetric]);\n  } else {\n    if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n      _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n      bufferMap.set(client, [serializedMetric]);\n    } else {\n      bufferMap.set(client, [...metricBuffer, serializedMetric]);\n    }\n  }\n}\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n  const { release, environment } = client.getOptions();\n  const processedMetricAttributes = {\n    ...beforeMetric.attributes\n  };\n  setMetricAttribute(processedMetricAttributes, \"user.id\", user.id, false);\n  setMetricAttribute(processedMetricAttributes, \"user.email\", user.email, false);\n  setMetricAttribute(processedMetricAttributes, \"user.name\", user.username, false);\n  setMetricAttribute(processedMetricAttributes, \"sentry.release\", release);\n  setMetricAttribute(processedMetricAttributes, \"sentry.environment\", environment);\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setMetricAttribute(processedMetricAttributes, \"sentry.sdk.name\", name);\n  setMetricAttribute(processedMetricAttributes, \"sentry.sdk.version\", version);\n  const replay = client.getIntegrationByName(\"Replay\");\n  const replayId = replay?.getReplayId(true);\n  setMetricAttribute(processedMetricAttributes, \"sentry.replay_id\", replayId);\n  if (replayId && replay?.getRecordingMode() === \"buffer\") {\n    setMetricAttribute(processedMetricAttributes, \"sentry._internal.replay_is_buffering\", true);\n  }\n  return {\n    ...beforeMetric,\n    attributes: processedMetricAttributes\n  };\n}\nfunction _buildSerializedMetric(metric, client, currentScope, scopeAttributes) {\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const span = _getSpanForScope(currentScope);\n  const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n  const spanId = span ? span.spanContext().spanId : void 0;\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n  return {\n    timestamp,\n    trace_id: traceId ?? \"\",\n    span_id: spanId,\n    name: metric.name,\n    type: metric.type,\n    unit: metric.unit,\n    value: metric.value,\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(metric.attributes, \"skip-undefined\"),\n      [sequenceAttr.key]: sequenceAttr.value\n    }\n  };\n}\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n  const currentScope = options?.scope ?? getCurrentScope();\n  const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(\"No client available to capture metric.\");\n    return;\n  }\n  const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n  const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n  if (!metricsEnabled) {\n    DEBUG_BUILD && debug.warn(\"metrics option not enabled, metric will not be captured.\");\n    return;\n  }\n  const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n  const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n  client.emit(\"processMetric\", enrichedMetric);\n  const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n  const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n  if (!processedMetric) {\n    DEBUG_BUILD && debug.log(\"`beforeSendMetric` returned `null`, will not send metric.\");\n    return;\n  }\n  const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n  DEBUG_BUILD && debug.log(\"[Metric]\", serializedMetric);\n  captureSerializedMetric(client, serializedMetric);\n  client.emit(\"afterCaptureMetric\", processedMetric);\n}\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n  const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n  if (metricBuffer.length === 0) {\n    return;\n  }\n  const clientOptions = client.getOptions();\n  const envelope = createMetricEnvelope(\n    metricBuffer,\n    clientOptions._metadata,\n    clientOptions.tunnel,\n    client.getDsn(),\n    client.getDataCollectionOptions().userInfo\n  );\n  _getBufferMap().set(client, []);\n  client.emit(\"flushMetrics\");\n  client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getMetricBuffer(client) {\n  return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n  return getGlobalSingleton(\"clientToMetricBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n","import { streamedSpanJsonToSerializedSpan } from '../../utils/spanUtils.js';\n\nfunction spanJsonToSerializedStreamedSpan(span) {\n  const streamedSpan = {\n    trace_id: span.trace_id,\n    span_id: span.span_id,\n    parent_span_id: span.parent_span_id,\n    name: span.description || \"\",\n    start_timestamp: span.start_timestamp,\n    end_timestamp: span.timestamp || span.start_timestamp,\n    status: !span.status || span.status === \"ok\" || span.status === \"cancelled\" ? \"ok\" : \"error\",\n    is_segment: false,\n    attributes: { ...span.data },\n    links: span.links\n  };\n  return streamedSpanJsonToSerializedSpan(streamedSpan);\n}\n\nexport { spanJsonToSerializedStreamedSpan };\n//# sourceMappingURL=spanJsonToStreamedSpan.js.map\n","import { isBrowser } from '../../utils/isBrowser.js';\nimport { hasSpanStreamingEnabled } from './hasSpanStreamingEnabled.js';\nimport { spanJsonToSerializedStreamedSpan } from './spanJsonToStreamedSpan.js';\n\nfunction extractGenAiSpansFromEvent(event, client) {\n  if (event.type !== \"transaction\" || !event.spans?.length || !event.sdkProcessingMetadata?.hasGenAiSpans || client.getOptions().streamGenAiSpans === false || hasSpanStreamingEnabled(client)) {\n    return void 0;\n  }\n  const genAiSpans = [];\n  const remainingSpans = [];\n  for (const span of event.spans) {\n    if (span.op?.startsWith(\"gen_ai.\")) {\n      genAiSpans.push(spanJsonToSerializedStreamedSpan(span));\n    } else {\n      remainingSpans.push(span);\n    }\n  }\n  if (genAiSpans.length === 0) {\n    return void 0;\n  }\n  event.spans = remainingSpans;\n  const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n  return [\n    { type: \"span\", item_count: genAiSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n    {\n      version: 2,\n      ...isBrowser() && {\n        ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n      },\n      items: genAiSpans\n    }\n  ];\n}\n\nexport { extractGenAiSpansFromEvent };\n//# sourceMappingURL=extractGenAiSpans.js.map\n","import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = /* @__PURE__ */ Symbol.for(\"SentryBufferFullError\");\nfunction makePromiseBuffer(limit = 100) {\n  const buffer = /* @__PURE__ */ new Set();\n  function isReady() {\n    return buffer.size < limit;\n  }\n  function remove(task) {\n    buffer.delete(task);\n  }\n  function add(taskProducer) {\n    if (!isReady()) {\n      return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n    }\n    const task = taskProducer();\n    buffer.add(task);\n    void task.then(\n      () => remove(task),\n      () => remove(task)\n    );\n    return task;\n  }\n  function drain(timeout) {\n    if (!buffer.size) {\n      return resolvedSyncPromise(true);\n    }\n    const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n    if (!timeout) {\n      return drainPromise;\n    }\n    const promises = [\n      drainPromise,\n      new Promise((resolve) => safeUnref(setTimeout(() => resolve(false), timeout)))\n    ];\n    return Promise.race(promises);\n  }\n  return {\n    get $() {\n      return Array.from(buffer);\n    },\n    add,\n    drain\n  };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","import { safeDateNow } from './randomSafeContext.js';\n\nconst DEFAULT_RETRY_AFTER = 60 * 1e3;\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n  const headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1e3;\n  }\n  const headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n  return DEFAULT_RETRY_AFTER;\n}\nfunction disabledUntil(limits, dataCategory) {\n  return limits[dataCategory] || limits.all || 0;\n}\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n  return disabledUntil(limits, dataCategory) > now;\n}\nfunction updateRateLimits(limits, { statusCode, headers }, now = safeDateNow()) {\n  const updatedRateLimits = {\n    ...limits\n  };\n  const rateLimitHeader = headers?.[\"x-sentry-rate-limits\"];\n  const retryAfterHeader = headers?.[\"retry-after\"];\n  if (rateLimitHeader) {\n    for (const limit of rateLimitHeader.trim().split(\",\")) {\n      const [retryAfter, categories, , , namespaces] = limit.split(\":\", 5);\n      const headerDelay = parseInt(retryAfter, 10);\n      const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1e3;\n      if (!categories) {\n        updatedRateLimits.all = now + delay;\n      } else {\n        for (const category of categories.split(\";\")) {\n          if (category === \"metric_bucket\") {\n            if (!namespaces || namespaces.split(\";\").includes(\"custom\")) {\n              updatedRateLimits[category] = now + delay;\n            }\n          } else {\n            updatedRateLimits[category] = now + delay;\n          }\n        }\n      }\n    }\n  } else if (retryAfterHeader) {\n    updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n  } else if (statusCode === 429) {\n    updatedRateLimits.all = now + 60 * 1e3;\n  }\n  return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\nfunction createTransport(options, makeRequest, buffer = makePromiseBuffer(\n  options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE\n)) {\n  let rateLimits = {};\n  const flush = (timeout) => buffer.drain(timeout);\n  function send(envelope) {\n    const filteredEnvelopeItems = [];\n    forEachEnvelopeItem(envelope, (item, type) => {\n      const dataCategory = envelopeItemTypeToDataCategory(type);\n      if (isRateLimited(rateLimits, dataCategory)) {\n        options.recordDroppedEvent(\"ratelimit_backoff\", dataCategory);\n      } else {\n        filteredEnvelopeItems.push(item);\n      }\n    });\n    if (filteredEnvelopeItems.length === 0) {\n      return Promise.resolve({});\n    }\n    const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems);\n    const recordEnvelopeLoss = (reason) => {\n      if (envelopeContainsItemType(filteredEnvelope, [\"client_report\"])) {\n        DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n        return;\n      }\n      forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n        options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n      });\n    };\n    const requestTask = () => makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n      (response) => {\n        if (response.statusCode === 413) {\n          DEBUG_BUILD && debug.error(\n            \"Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.\"\n          );\n          recordEnvelopeLoss(\"send_error\");\n          return response;\n        }\n        if (DEBUG_BUILD && response.statusCode !== void 0 && (response.statusCode < 200 || response.statusCode >= 300)) {\n          debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n        }\n        rateLimits = updateRateLimits(rateLimits, response);\n        return response;\n      },\n      (error) => {\n        recordEnvelopeLoss(\"network_error\");\n        DEBUG_BUILD && debug.error(\"Encountered error running transport request:\", error);\n        throw error;\n      }\n    );\n    return buffer.add(requestTask).then(\n      (result) => result,\n      (error) => {\n        if (error === SENTRY_BUFFER_FULL_ERROR) {\n          DEBUG_BUILD && debug.error(\"Skipped sending event because buffer is full.\");\n          recordEnvelopeLoss(\"queue_overflow\");\n          return Promise.resolve({});\n        } else {\n          throw error;\n        }\n      }\n    );\n  }\n  return {\n    send,\n    flush\n  };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction createClientReportEnvelope(discarded_events, dsn, timestamp) {\n  const clientReportItem = [\n    { type: \"client_report\" },\n    {\n      timestamp: timestamp || dateTimestampInSeconds(),\n      discarded_events\n    }\n  ];\n  return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","function getPossibleEventMessages(event) {\n  const possibleMessages = [];\n  if (event.message) {\n    possibleMessages.push(event.message);\n  }\n  try {\n    const lastException = event.exception.values[event.exception.values.length - 1];\n    if (lastException?.value) {\n      possibleMessages.push(lastException.value);\n      if (lastException.type) {\n        possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n      }\n    }\n  } catch {\n  }\n  return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n","import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\nfunction convertTransactionEventToSpanJson(event) {\n  const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n  return {\n    data: data ?? {},\n    description: event.transaction,\n    op,\n    parent_span_id,\n    span_id: span_id ?? \"\",\n    start_timestamp: event.start_timestamp ?? 0,\n    status,\n    timestamp: event.timestamp,\n    trace_id: trace_id ?? \"\",\n    origin,\n    profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n    exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n    measurements: event.measurements,\n    is_segment: true\n  };\n}\nfunction convertSpanJsonToTransactionEvent(span) {\n  return {\n    type: \"transaction\",\n    timestamp: span.timestamp,\n    start_timestamp: span.start_timestamp,\n    transaction: span.description,\n    contexts: {\n      trace: {\n        trace_id: span.trace_id,\n        span_id: span.span_id,\n        parent_span_id: span.parent_span_id,\n        op: span.op,\n        status: span.status,\n        origin: span.origin,\n        data: {\n          ...span.data,\n          ...span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id },\n          ...span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }\n        }\n      }\n    },\n    measurements: span.measurements\n  };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n","const FILTERED_VALUE = \"[Filtered]\";\nconst PII_HEADER_SNIPPETS = [\"forwarded\", \"-ip\", \"remote-\", \"via\", \"-user\"];\nconst SENSITIVE_KEY_SNIPPETS = [\n  \"auth\",\n  \"token\",\n  \"secret\",\n  \"session\",\n  // for the user_session cookie\n  \"password\",\n  \"passwd\",\n  \"pwd\",\n  \"key\",\n  \"jwt\",\n  \"bearer\",\n  \"sso\",\n  \"saml\",\n  \"csrf\",\n  \"xsrf\",\n  \"credentials\",\n  \"sid\",\n  \"identity\",\n  // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n  \"set-cookie\",\n  \"cookie\"\n];\nconst SENSITIVE_COOKIE_NAME_SNIPPETS = [\n  // Express / Connect default session cookie\n  \".sid\",\n  // Opaque session ids (PHPSESSID, ASPSESSIONID*, BIGipServer*, *sessid*, …)\n  \"sessid\",\n  // Laravel etc. \"remember me\" tokens\n  \"remember\",\n  // OIDC / OAuth auxiliary (`oauth*` covered by header snippet `auth`)\n  \"oidc\",\n  \"pkce\",\n  \"nonce\",\n  // RFC 6265bis high-security cookie name prefixes\n  \"__secure-\",\n  \"__host-\",\n  // Load balancer / CDN sticky-session cookies (opaque routing tokens)\n  \"awsalb\",\n  \"awselb\",\n  \"akamai\",\n  // BaaS / IdP session cookies (names often omit \"session\")\n  \"__stripe\",\n  \"cognito\",\n  \"firebase\",\n  \"supabase\",\n  \"sb-\",\n  // Step-up / MFA cookies\n  \"mfa\",\n  \"2fa\"\n];\n\nexport { FILTERED_VALUE, PII_HEADER_SNIPPETS, SENSITIVE_COOKIE_NAME_SNIPPETS, SENSITIVE_KEY_SNIPPETS };\n//# sourceMappingURL=filtering-snippets.js.map\n","import { PII_HEADER_SNIPPETS } from './filtering-snippets.js';\n\nfunction defaultPiiToCollectionOptions(sendDefaultPii) {\n  return sendDefaultPii === true ? {\n    userInfo: true,\n    cookies: true,\n    httpHeaders: { request: true, response: true },\n    httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n    urlQueryParams: true,\n    graphQL: { document: true, variables: true },\n    genAI: { inputs: true, outputs: true },\n    databaseQueryData: true,\n    stackFrameVariables: true,\n    frameContextLines: 7\n    // default should be 5, but ContextLines integration uses 7\n  } : {\n    userInfo: false,\n    cookies: { deny: PII_HEADER_SNIPPETS },\n    httpHeaders: { request: { deny: PII_HEADER_SNIPPETS }, response: { deny: PII_HEADER_SNIPPETS } },\n    httpBodies: [],\n    urlQueryParams: { deny: PII_HEADER_SNIPPETS },\n    // The GraphQL document has literal values redacted at collection time, so it was historically\n    // always attached regardless of `sendDefaultPii`; keep it on to preserve that behavior.\n    graphQL: { document: true, variables: true },\n    genAI: { inputs: false, outputs: false },\n    // Database query values were only sent with `sendDefaultPii: true` (e.g. Supabase gated on it),\n    // so map the legacy \"off\" state to `false`.\n    databaseQueryData: false,\n    stackFrameVariables: true,\n    frameContextLines: 7\n    // default should be 5, but ContextLines integration uses 7\n  };\n}\n\nexport { defaultPiiToCollectionOptions };\n//# sourceMappingURL=defaultPiiToCollectionOptions.js.map\n","import { defaultPiiToCollectionOptions } from './defaultPiiToCollectionOptions.js';\n\nconst DEFAULTS = {\n  userInfo: true,\n  cookies: true,\n  httpHeaders: { request: true, response: true },\n  httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n  urlQueryParams: true,\n  graphQL: { document: true, variables: true },\n  genAI: { inputs: true, outputs: true },\n  databaseQueryData: true,\n  stackFrameVariables: true,\n  frameContextLines: 5\n};\nfunction resolveDataCollectionOptions(options) {\n  const base = options.dataCollection != null ? DEFAULTS : defaultPiiToCollectionOptions(options.sendDefaultPii);\n  const dc = options.dataCollection ?? {};\n  return {\n    userInfo: dc.userInfo ?? base.userInfo,\n    cookies: dc.cookies ?? base.cookies,\n    httpHeaders: {\n      request: dc.httpHeaders?.request ?? base.httpHeaders.request,\n      response: dc.httpHeaders?.response ?? base.httpHeaders.response\n    },\n    httpBodies: dc.httpBodies ?? base.httpBodies,\n    // oxlint-disable-next-line typescript/no-deprecated\n    urlQueryParams: dc.urlQueryParams ?? dc.queryParams ?? base.urlQueryParams,\n    graphQL: {\n      document: dc.graphQL?.document ?? base.graphQL.document,\n      variables: dc.graphQL?.variables ?? base.graphQL.variables\n    },\n    genAI: {\n      inputs: dc.genAI?.inputs ?? base.genAI.inputs,\n      outputs: dc.genAI?.outputs ?? base.genAI.outputs\n    },\n    databaseQueryData: dc.databaseQueryData ?? base.databaseQueryData,\n    stackFrameVariables: dc.stackFrameVariables ?? base.stackFrameVariables,\n    frameContextLines: dc.frameContextLines ?? base.frameContextLines\n  };\n}\n\nexport { resolveDataCollectionOptions };\n//# sourceMappingURL=resolveDataCollectionOptions.js.map\n","import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { extractGenAiSpansFromEvent } from './tracing/spans/extractGenAiSpans.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isObjectLike, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { showSpanDropWarning } from './utils/spanUtils.js';\nimport { rejectedSyncPromise } from './utils/syncpromise.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\nimport { resolveDataCollectionOptions } from './utils/data-collection/resolveDataCollectionOptions.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = \"Discarded session because of missing or non-string release\";\nconst INTERNAL_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryInternalError\");\nconst DO_NOT_SEND_EVENT_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryDoNotSendEventError\");\nconst DEFAULT_FLUSH_INTERVAL = 5e3;\nfunction _makeInternalError(message) {\n  return {\n    message,\n    [INTERNAL_ERROR_SYMBOL]: true\n  };\n}\nfunction _makeDoNotSendEventError(message) {\n  return {\n    message,\n    [DO_NOT_SEND_EVENT_SYMBOL]: true\n  };\n}\nfunction _isInternalError(error) {\n  return isObjectLike(error) && INTERNAL_ERROR_SYMBOL in error;\n}\nfunction _isDoNotSendEventError(error) {\n  return isObjectLike(error) && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\nfunction setupWeightBasedFlushing(client, afterCaptureHook, flushHook, estimateSizeFn, flushFn) {\n  let weight = 0;\n  let flushTimeout;\n  let isTimerActive = false;\n  client.on(flushHook, () => {\n    weight = 0;\n    clearTimeout(flushTimeout);\n    isTimerActive = false;\n  });\n  client.on(afterCaptureHook, (item) => {\n    weight += estimateSizeFn(item);\n    if (weight >= 8e5) {\n      flushFn(client);\n    } else if (!isTimerActive) {\n      const flushInterval = client.getOptions()._flushInterval ?? DEFAULT_FLUSH_INTERVAL;\n      if (flushInterval > 0) {\n        isTimerActive = true;\n        flushTimeout = safeUnref(\n          setTimeout(() => {\n            flushFn(client);\n          }, flushInterval)\n        );\n      }\n    }\n  });\n  client.on(\"flush\", () => {\n    flushFn(client);\n  });\n}\nclass Client {\n  /**\n   * Initializes this client instance.\n   *\n   * @param options Options for the client.\n   */\n  constructor(options) {\n    this._options = options;\n    this._integrations = {};\n    this._numProcessing = 0;\n    this._outcomes = {};\n    this._hooks = {};\n    this._eventProcessors = [];\n    this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n    this._dataCollection = resolveDataCollectionOptions(options);\n    if (options.dsn) {\n      this._dsn = makeDsn(options.dsn);\n    } else {\n      DEBUG_BUILD && debug.warn(\"No DSN provided, client will not send events.\");\n    }\n    if (this._dsn) {\n      const url = getEnvelopeEndpointWithUrlEncodedAuth(\n        this._dsn,\n        options.tunnel,\n        options._metadata ? options._metadata.sdk : void 0\n      );\n      this._transport = options.transport({\n        tunnel: this._options.tunnel,\n        recordDroppedEvent: this.recordDroppedEvent.bind(this),\n        ...options.transportOptions,\n        url\n      });\n    }\n    this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n    if (this._options.enableLogs) {\n      setupWeightBasedFlushing(this, \"afterCaptureLog\", \"flushLogs\", estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n    }\n    const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n    if (enableMetrics) {\n      setupWeightBasedFlushing(\n        this,\n        \"afterCaptureMetric\",\n        \"flushMetrics\",\n        estimateMetricSizeInBytes,\n        _INTERNAL_flushMetricsBuffer\n      );\n    }\n  }\n  /**\n   * Captures an exception event and sends it to Sentry.\n   *\n   * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureException(exception, hint, scope) {\n    const eventId = uuid4();\n    if (checkOrSetAlreadyCaught(exception)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint\n    };\n    this._process(\n      () => this.eventFromException(exception, hintWithEventId).then((event) => this._captureEvent(event, hintWithEventId, scope)).then((res) => res),\n      \"error\"\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a message event and sends it to Sentry.\n   *\n   * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureMessage(message, level, hint, currentScope) {\n    const hintWithEventId = {\n      event_id: uuid4(),\n      ...hint\n    };\n    const eventMessage = isParameterizedString(message) ? message : String(message);\n    const isMessage = isPrimitive(message);\n    const promisedEvent = isMessage ? this.eventFromMessage(eventMessage, level, hintWithEventId) : this.eventFromException(message, hintWithEventId);\n    this._process(\n      () => promisedEvent.then((event) => this._captureEvent(event, hintWithEventId, currentScope)),\n      isMessage ? \"unknown\" : \"error\"\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a manually created event and sends it to Sentry.\n   *\n   * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureEvent(event, hint, currentScope) {\n    const eventId = uuid4();\n    if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint\n    };\n    const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n    const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n    const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n    const dataCategory = getDataCategoryByType(event.type);\n    this._process(\n      () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n      dataCategory\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a session.\n   */\n  captureSession(session) {\n    this.sendSession(session);\n    updateSession(session, { init: false });\n  }\n  /**\n   * Get the current Dsn.\n   */\n  getDsn() {\n    return this._dsn;\n  }\n  /**\n   * Get the current options.\n   */\n  getOptions() {\n    return this._options;\n  }\n  /**\n   * Get the resolved data collection configuration.\n   */\n  getDataCollectionOptions() {\n    return this._dataCollection;\n  }\n  /**\n   * Get the SDK metadata.\n   * @see SdkMetadata\n   */\n  getSdkMetadata() {\n    return this._options._metadata;\n  }\n  /**\n   * Returns the transport that is used by the client.\n   * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n   */\n  getTransport() {\n    return this._transport;\n  }\n  /**\n   * Wait for all events to be sent or the timeout to expire, whichever comes first.\n   *\n   * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n   *   cause the client to wait until all events are sent before resolving the promise.\n   * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n   * still events in the queue when the timeout is reached.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async flush(timeout) {\n    const transport = this._transport;\n    this.emit(\"flush\");\n    if (!transport) {\n      return true;\n    }\n    const clientFinished = await this._isClientDoneProcessing(timeout);\n    const transportFlushed = await transport.flush(timeout);\n    return clientFinished && transportFlushed;\n  }\n  /**\n   * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n   *\n   * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n   *   the client to wait until all events are sent before disabling itself.\n   * @returns {Promise<boolean>} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n   * it doesn't.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async close(timeout) {\n    const result = await this.flush(timeout);\n    this.getOptions().enabled = false;\n    this.emit(\"close\");\n    return result;\n  }\n  /**\n   * Get all installed event processors.\n   */\n  getEventProcessors() {\n    return this._eventProcessors;\n  }\n  /**\n   * Adds an event processor that applies to any event processed by this client.\n   */\n  addEventProcessor(eventProcessor) {\n    this._eventProcessors.push(eventProcessor);\n  }\n  /**\n   * Initialize this client.\n   * Call this after the client was set on a scope.\n   */\n  init() {\n    if (this._isEnabled() || // Force integrations to be setup even if no DSN was set when we have\n    // Spotlight enabled. This is particularly important for browser as we\n    // don't support the `spotlight` option there and rely on the users\n    // adding the `spotlightBrowserIntegration()` to their integrations which\n    // wouldn't get initialized with the check below when there's no DSN set.\n    this._options.integrations.some(({ name }) => name.startsWith(\"Spotlight\"))) {\n      this._setupIntegrations();\n    }\n  }\n  /**\n   * Gets an installed integration by its name.\n   *\n   * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n   */\n  getIntegrationByName(integrationName) {\n    return this._integrations[integrationName];\n  }\n  /**\n   * Returns the names of all installed integrations.\n   */\n  getIntegrationNames() {\n    return Object.keys(this._integrations);\n  }\n  /**\n   * Add an integration to the client.\n   * This can be used to e.g. lazy load integrations.\n   * In most cases, this should not be necessary,\n   * and you're better off just passing the integrations via `integrations: []` at initialization time.\n   * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n   */\n  addIntegration(integration) {\n    const isAlreadyInstalled = this._integrations[integration.name];\n    if (!isAlreadyInstalled && integration.beforeSetup) {\n      integration.beforeSetup(this);\n    }\n    setupIntegration(this, integration, this._integrations);\n    if (!isAlreadyInstalled) {\n      afterSetupIntegrations(this, [integration]);\n    }\n  }\n  /**\n   * Send a fully prepared event to Sentry.\n   */\n  sendEvent(event, hint = {}) {\n    this.emit(\"beforeSendEvent\", event, hint);\n    const genAiSpanItem = extractGenAiSpansFromEvent(event, this);\n    let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n    for (const attachment of hint.attachments || []) {\n      env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n    }\n    if (genAiSpanItem) {\n      env = addItemToEnvelope(env, genAiSpanItem);\n    }\n    this.sendEnvelope(env).then((sendResponse) => this.emit(\"afterSendEvent\", event, sendResponse));\n  }\n  /**\n   * Send a session or session aggregrates to Sentry.\n   */\n  sendSession(session) {\n    const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n    if (\"aggregates\" in session) {\n      const sessionAttrs = session.attrs || {};\n      if (!sessionAttrs.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n      sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n      session.attrs = sessionAttrs;\n    } else {\n      if (!session.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      session.release = session.release || clientReleaseOption;\n      session.environment = session.environment || clientEnvironmentOption;\n    }\n    this.emit(\"beforeSendSession\", session);\n    const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n    this.sendEnvelope(env);\n  }\n  /**\n   * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n   */\n  recordDroppedEvent(reason, category, count = 1) {\n    if (this._options.sendClientReports) {\n      const key = `${reason}:${category}`;\n      DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : \"\"}`);\n      this._outcomes[key] = (this._outcomes[key] || 0) + count;\n    }\n  }\n  /**\n   * Register a hook on this client.\n   */\n  on(hook, callback) {\n    const hookCallbacks = this._hooks[hook] = this._hooks[hook] || /* @__PURE__ */ new Set();\n    const uniqueCallback = (...args) => callback(...args);\n    hookCallbacks.add(uniqueCallback);\n    return () => {\n      hookCallbacks.delete(uniqueCallback);\n    };\n  }\n  /**\n   * Emit a hook that was previously registered via `on()`.\n   */\n  emit(hook, ...rest) {\n    const callbacks = this._hooks[hook];\n    if (callbacks) {\n      callbacks.forEach((callback) => callback(...rest));\n    }\n  }\n  /**\n   * Send an envelope to Sentry.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async sendEnvelope(envelope) {\n    this.emit(\"beforeEnvelope\", envelope);\n    if (this._isEnabled() && this._transport) {\n      try {\n        return await this._transport.send(envelope);\n      } catch (reason) {\n        DEBUG_BUILD && debug.error(\"Error while sending envelope:\", reason);\n        return {};\n      }\n    }\n    DEBUG_BUILD && debug.error(\"Transport disabled\");\n    return {};\n  }\n  /**\n   * Register a cleanup function to be called when the client is disposed.\n   * This is useful for integrations that need to clean up global state.\n   *\n   * NOTE: This is a no-op in the base `Client` class. Subclasses like `ServerRuntimeClient`\n   * override this method to actually register and execute cleanup callbacks.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  registerCleanup(callback) {\n  }\n  /**\n   * Disposes of the client and releases all resources.\n   *\n   * Subclasses should override this method to clean up their own resources, including invoking\n   * any callbacks registered via {@link Client.registerCleanup}. The base implementation is a\n   * no-op and does NOT execute registered cleanup callbacks.\n   *\n   * After calling dispose(), the client should not be used anymore.\n   */\n  dispose() {\n  }\n  /* eslint-enable @typescript-eslint/unified-signatures */\n  /** Setup integrations for this client. */\n  _setupIntegrations() {\n    const { integrations } = this._options;\n    this._integrations = setupIntegrations(this, integrations);\n    afterSetupIntegrations(this, integrations);\n  }\n  /** Updates existing session based on the provided event */\n  _updateSessionFromEvent(session, event) {\n    let crashed = event.level === \"fatal\";\n    let errored = false;\n    const exceptions = event.exception?.values;\n    if (exceptions) {\n      errored = true;\n      crashed = false;\n      for (const ex of exceptions) {\n        if (ex.mechanism?.handled === false) {\n          crashed = true;\n          break;\n        }\n      }\n    }\n    const sessionNonTerminal = session.status === \"ok\";\n    const shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && crashed;\n    if (shouldUpdateAndSend) {\n      updateSession(session, {\n        ...crashed && { status: \"crashed\" },\n        errors: session.errors || Number(errored || crashed)\n      });\n      this.captureSession(session);\n    }\n  }\n  /**\n   * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n   * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n   * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n   * `false` otherwise\n   */\n  async _isClientDoneProcessing(timeout) {\n    let ticked = 0;\n    while (!timeout || ticked < timeout) {\n      await new Promise((resolve) => setTimeout(resolve, 1));\n      if (!this._numProcessing) {\n        return true;\n      }\n      ticked++;\n    }\n    return false;\n  }\n  /** Determines whether this SDK is enabled and a transport is present. */\n  _isEnabled() {\n    return this.getOptions().enabled !== false && this._transport !== void 0;\n  }\n  /**\n   * Adds common information to events.\n   *\n   * The information includes release and environment from `options`,\n   * breadcrumbs and context (extra, tags and user) from the scope.\n   *\n   * Information that is already present in the event is never overwritten. For\n   * nested objects, such as the context, keys are merged.\n   *\n   * @param event The original event.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A new event with more information.\n   */\n  _prepareEvent(event, hint, currentScope, isolationScope) {\n    const options = this.getOptions();\n    const integrations = this.getIntegrationNames();\n    if (!hint.integrations && integrations.length) {\n      hint.integrations = integrations;\n    }\n    this.emit(\"preprocessEvent\", event, hint);\n    if (!event.type) {\n      isolationScope.setLastEventId(event.event_id || hint.event_id);\n    }\n    return prepareEvent(options, event, hint, currentScope, this, isolationScope).then((evt) => {\n      if (evt === null) {\n        return evt;\n      }\n      this.emit(\"postprocessEvent\", evt, hint);\n      evt.contexts = {\n        trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n        ...evt.contexts\n      };\n      const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n      evt.sdkProcessingMetadata = {\n        dynamicSamplingContext,\n        ...evt.sdkProcessingMetadata\n      };\n      return evt;\n    });\n  }\n  /**\n   * Processes the event and logs an error in case of rejection\n   * @param event\n   * @param hint\n   * @param scope\n   */\n  _captureEvent(event, hint = {}, currentScope = getCurrentScope(), isolationScope = getIsolationScope()) {\n    if (DEBUG_BUILD && isErrorEvent(event)) {\n      debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || \"<unknown>\"}\\``);\n    }\n    return this._processEvent(event, hint, currentScope, isolationScope).then(\n      (finalEvent) => {\n        return finalEvent.event_id;\n      },\n      (reason) => {\n        if (DEBUG_BUILD) {\n          if (_isDoNotSendEventError(reason)) {\n            debug.log(reason.message);\n          } else if (_isInternalError(reason)) {\n            debug.warn(reason.message);\n          } else {\n            debug.warn(reason);\n          }\n        }\n        return void 0;\n      }\n    );\n  }\n  /**\n   * Processes an event (either error or message) and sends it to Sentry.\n   *\n   * This also adds breadcrumbs and context information to the event. However,\n   * platform specific meta data (such as the User's IP address) must be added\n   * by the SDK implementor.\n   *\n   *\n   * @param event The event to send to Sentry.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n   */\n  _processEvent(event, hint, currentScope, isolationScope) {\n    const options = this.getOptions();\n    const { sampleRate } = options;\n    const isTransaction = isTransactionEvent(event);\n    const isError = isErrorEvent(event);\n    const eventType = event.type || \"error\";\n    const beforeSendLabel = `before send for type \\`${eventType}\\``;\n    const parsedSampleRate = typeof sampleRate === \"undefined\" ? void 0 : parseSampleRate(sampleRate);\n    if (isError && typeof parsedSampleRate === \"number\" && safeMathRandom() > parsedSampleRate) {\n      this.recordDroppedEvent(\"sample_rate\", \"error\");\n      return rejectedSyncPromise(\n        _makeDoNotSendEventError(\n          `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`\n        )\n      );\n    }\n    const dataCategory = getDataCategoryByType(event.type);\n    return this._prepareEvent(event, hint, currentScope, isolationScope).then((prepared) => {\n      if (prepared === null) {\n        this.recordDroppedEvent(\"event_processor\", dataCategory);\n        throw _makeDoNotSendEventError(\"An event processor returned `null`, will not send event.\");\n      }\n      const isInternalException = hint.data?.__sentry__ === true;\n      if (isInternalException) {\n        return prepared;\n      }\n      const result = processBeforeSend(this, options, prepared, hint);\n      return _validateBeforeSendResult(result, beforeSendLabel);\n    }).then((processedEvent) => {\n      if (processedEvent === null) {\n        this.recordDroppedEvent(\"before_send\", dataCategory);\n        if (isTransaction) {\n          const spans = event.spans || [];\n          const spanCount = 1 + spans.length;\n          this.recordDroppedEvent(\"before_send\", \"span\", spanCount);\n        }\n        throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n      }\n      const session = currentScope.getSession() || isolationScope.getSession();\n      if (isError && session) {\n        this._updateSessionFromEvent(session, processedEvent);\n      }\n      if (isTransaction) {\n        const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n        const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n        const droppedSpanCount = spanCountBefore - spanCountAfter;\n        if (droppedSpanCount > 0) {\n          this.recordDroppedEvent(\"before_send\", \"span\", droppedSpanCount);\n        }\n      }\n      const transactionInfo = processedEvent.transaction_info;\n      if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n        const source = \"custom\";\n        processedEvent.transaction_info = {\n          ...transactionInfo,\n          source\n        };\n      }\n      this.sendEvent(processedEvent, hint);\n      return processedEvent;\n    }).then(null, (reason) => {\n      if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n        throw reason;\n      }\n      this.captureException(reason, {\n        mechanism: {\n          handled: false,\n          type: \"internal\"\n        },\n        data: {\n          __sentry__: true\n        },\n        originalException: reason\n      });\n      throw _makeInternalError(\n        `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${reason}`\n      );\n    });\n  }\n  /**\n   * Occupies the client with processing and event\n   */\n  _process(taskProducer, dataCategory) {\n    this._numProcessing++;\n    void this._promiseBuffer.add(taskProducer).then(\n      (value) => {\n        this._numProcessing--;\n        return value;\n      },\n      (reason) => {\n        this._numProcessing--;\n        if (reason === SENTRY_BUFFER_FULL_ERROR) {\n          this.recordDroppedEvent(\"queue_overflow\", dataCategory);\n        }\n        return reason;\n      }\n    );\n  }\n  /**\n   * Clears outcomes on this client and returns them.\n   */\n  _clearOutcomes() {\n    const outcomes = this._outcomes;\n    this._outcomes = {};\n    return Object.entries(outcomes).map(([key, quantity]) => {\n      const [reason, category] = key.split(\":\");\n      return {\n        reason,\n        category,\n        quantity\n      };\n    });\n  }\n  /**\n   * Sends client reports as an envelope.\n   */\n  _flushOutcomes() {\n    DEBUG_BUILD && debug.log(\"Flushing outcomes...\");\n    const outcomes = this._clearOutcomes();\n    if (outcomes.length === 0) {\n      DEBUG_BUILD && debug.log(\"No outcomes to send\");\n      return;\n    }\n    if (!this._dsn) {\n      DEBUG_BUILD && debug.log(\"No dsn provided, will not send outcomes\");\n      return;\n    }\n    DEBUG_BUILD && debug.log(\"Sending outcomes:\", outcomes);\n    const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n    this.sendEnvelope(envelope);\n  }\n}\nfunction getDataCategoryByType(type) {\n  return type === \"replay_event\" ? \"replay\" : type || \"error\";\n}\nfunction _validateBeforeSendResult(beforeSendResult, beforeSendLabel) {\n  const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n  if (isThenable(beforeSendResult)) {\n    return beforeSendResult.then(\n      (event) => {\n        if (!isPlainObject(event) && event !== null) {\n          throw _makeInternalError(invalidValueError);\n        }\n        return event;\n      },\n      (e) => {\n        throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n      }\n    );\n  } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n    throw _makeInternalError(invalidValueError);\n  }\n  return beforeSendResult;\n}\nfunction processBeforeSend(client, options, event, hint) {\n  const { beforeSend, beforeSendTransaction, ignoreSpans } = options;\n  const beforeSendSpan = !isStreamedBeforeSendSpanCallback(options.beforeSendSpan) && options.beforeSendSpan;\n  let processedEvent = event;\n  if (isErrorEvent(processedEvent) && beforeSend) {\n    return beforeSend(processedEvent, hint);\n  }\n  if (isTransactionEvent(processedEvent)) {\n    if (beforeSendSpan || ignoreSpans) {\n      const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n      if (ignoreSpans?.length && shouldIgnoreSpan(\n        { description: rootSpanJson.description, op: rootSpanJson.op, attributes: rootSpanJson.data },\n        ignoreSpans\n      )) {\n        return null;\n      }\n      if (beforeSendSpan) {\n        const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n        if (!processedRootSpanJson) {\n          showSpanDropWarning();\n        } else {\n          processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n        }\n      }\n      if (processedEvent.spans) {\n        const processedSpans = [];\n        const initialSpans = processedEvent.spans;\n        for (const span of initialSpans) {\n          if (ignoreSpans?.length && shouldIgnoreSpan({ description: span.description, op: span.op, attributes: span.data }, ignoreSpans)) {\n            reparentChildSpans(initialSpans, span);\n            continue;\n          }\n          if (beforeSendSpan) {\n            const processedSpan = beforeSendSpan(span);\n            if (!processedSpan) {\n              showSpanDropWarning();\n              processedSpans.push(span);\n            } else {\n              processedSpans.push(processedSpan);\n            }\n          } else {\n            processedSpans.push(span);\n          }\n        }\n        const droppedSpans = processedEvent.spans.length - processedSpans.length;\n        if (droppedSpans) {\n          client.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n        }\n        processedEvent.spans = processedSpans;\n      }\n    }\n    if (beforeSendTransaction) {\n      if (processedEvent.spans) {\n        const spanCountBefore = processedEvent.spans.length;\n        processedEvent.sdkProcessingMetadata = {\n          ...event.sdkProcessingMetadata,\n          spanCountBeforeProcessing: spanCountBefore\n        };\n      }\n      return beforeSendTransaction(processedEvent, hint);\n    }\n  }\n  return processedEvent;\n}\nfunction isErrorEvent(event) {\n  return event.type === void 0;\n}\nfunction isTransactionEvent(event) {\n  return event.type === \"transaction\";\n}\nfunction estimateMetricSizeInBytes(metric) {\n  let weight = 0;\n  if (metric.name) {\n    weight += metric.name.length * 2;\n  }\n  weight += 8;\n  return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\nfunction estimateLogSizeInBytes(log) {\n  let weight = 0;\n  if (log.message) {\n    weight += log.message.length * 2;\n  }\n  return weight + estimateAttributesSizeInBytes(log.attributes);\n}\nfunction estimateAttributesSizeInBytes(attributes) {\n  if (!attributes) {\n    return 0;\n  }\n  let weight = 0;\n  Object.values(attributes).forEach((value) => {\n    if (Array.isArray(value)) {\n      weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n    } else if (isPrimitive(value)) {\n      weight += estimatePrimitiveSizeInBytes(value);\n    } else {\n      weight += 100;\n    }\n  });\n  return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n  if (typeof value === \"string\") {\n    return value.length * 2;\n  } else if (typeof value === \"number\") {\n    return 8;\n  } else if (typeof value === \"boolean\") {\n    return 4;\n  }\n  return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n","import { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug, consoleSandbox } from './utils/debug-logger.js';\n\nfunction initAndBind(clientClass, options) {\n  if (options.debug === true) {\n    if (DEBUG_BUILD) {\n      debug.enable();\n    } else {\n      consoleSandbox(() => {\n        console.warn(\"[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.\");\n      });\n    }\n  }\n  const scope = getCurrentScope();\n  scope.update(options.initialScope);\n  const client = new clientClass(options);\n  setCurrentClient(client);\n  client.init();\n  return client;\n}\nfunction setCurrentClient(client) {\n  getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n//# sourceMappingURL=sdk.js.map\n","import { SENSITIVE_KEY_SNIPPETS, FILTERED_VALUE } from './filtering-snippets.js';\n\nfunction isSensitiveKey(lower, denySnippets) {\n  return denySnippets.some((snippet) => lower.includes(snippet));\n}\nfunction filterKeyValueData(data, behavior, additionalDenyTerms) {\n  if (behavior === false) {\n    return {};\n  }\n  const denySnippets = additionalDenyTerms != null ? [...SENSITIVE_KEY_SNIPPETS, ...additionalDenyTerms] : SENSITIVE_KEY_SNIPPETS;\n  const result = {};\n  if (behavior === true) {\n    for (const key of Object.keys(data)) {\n      result[key] = isSensitiveKey(key.toLowerCase(), denySnippets) ? FILTERED_VALUE : data[key];\n    }\n    return result;\n  }\n  if (\"deny\" in behavior) {\n    const lowerTerms2 = behavior.deny.map((t) => t.toLowerCase());\n    for (const key of Object.keys(data)) {\n      const lower = key.toLowerCase();\n      const isDenied = isSensitiveKey(lower, denySnippets) || lowerTerms2.some((term) => lower.includes(term));\n      result[key] = isDenied ? FILTERED_VALUE : data[key];\n    }\n    return result;\n  }\n  const lowerTerms = behavior.allow.map((t) => t.toLowerCase());\n  for (const key of Object.keys(data)) {\n    const lower = key.toLowerCase();\n    if (isSensitiveKey(lower, denySnippets)) {\n      result[key] = FILTERED_VALUE;\n    } else {\n      const isAllowed = lowerTerms.some((term) => lower.includes(term));\n      result[key] = isAllowed ? data[key] : FILTERED_VALUE;\n    }\n  }\n  return result;\n}\n\nexport { filterKeyValueData };\n//# sourceMappingURL=filterKeyValueData.js.map\n","function parseCookie(str) {\n  const obj = {};\n  let index = 0;\n  while (index < str.length) {\n    const eqIdx = str.indexOf(\"=\", index);\n    if (eqIdx === -1) {\n      break;\n    }\n    let endIdx = str.indexOf(\";\", index);\n    if (endIdx === -1) {\n      endIdx = str.length;\n    } else if (endIdx < eqIdx) {\n      index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n      continue;\n    }\n    const key = str.slice(index, eqIdx).trim();\n    if (void 0 === obj[key]) {\n      let val = str.slice(eqIdx + 1, endIdx).trim();\n      if (val.charCodeAt(0) === 34) {\n        val = val.slice(1, -1);\n      }\n      try {\n        obj[key] = val.indexOf(\"%\") !== -1 ? decodeURIComponent(val) : val;\n      } catch {\n        obj[key] = val;\n      }\n    }\n    index = endIdx + 1;\n  }\n  return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n","import { parseCookie } from '../cookie.js';\nimport { SENSITIVE_COOKIE_NAME_SNIPPETS, FILTERED_VALUE } from './filtering-snippets.js';\nimport { filterKeyValueData } from './filterKeyValueData.js';\n\nfunction filterCookies(cookieString, behavior) {\n  if (behavior === false) {\n    return {};\n  }\n  try {\n    const parsed = parseCookie(cookieString);\n    if (Object.keys(parsed).length === 0) {\n      return {};\n    }\n    return filterKeyValueData(parsed, behavior, SENSITIVE_COOKIE_NAME_SNIPPETS);\n  } catch {\n    return FILTERED_VALUE;\n  }\n}\n\nexport { filterCookies };\n//# sourceMappingURL=filterCookies.js.map\n","import { URL_FULL } from '@sentry/conventions/attributes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\n\nconst DEFAULT_BASE_URL = \"thismessage:/\";\nfunction isURLObjectRelative(url) {\n  return \"isRelative\" in url;\n}\nfunction parseStringToURLObject(url, urlBase) {\n  const isRelative = url.indexOf(\"://\") <= 0 && url.indexOf(\"//\") !== 0;\n  const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : void 0);\n  try {\n    if (\"canParse\" in URL && !URL.canParse(url, base)) {\n      return void 0;\n    }\n    const fullUrlObject = new URL(url, base);\n    if (isRelative) {\n      return {\n        isRelative,\n        pathname: fullUrlObject.pathname,\n        search: fullUrlObject.search,\n        hash: fullUrlObject.hash\n      };\n    }\n    return fullUrlObject;\n  } catch {\n  }\n  return void 0;\n}\nfunction getSanitizedUrlStringFromUrlObject(url) {\n  if (isURLObjectRelative(url)) {\n    return url.pathname;\n  }\n  const newUrl = new URL(url);\n  newUrl.search = \"\";\n  newUrl.hash = \"\";\n  if ([\"80\", \"443\"].includes(newUrl.port)) {\n    newUrl.port = \"\";\n  }\n  if (newUrl.password) {\n    newUrl.password = \"%filtered%\";\n  }\n  if (newUrl.username) {\n    newUrl.username = \"%filtered%\";\n  }\n  return newUrl.toString();\n}\nfunction getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName) {\n  const method = request?.method?.toUpperCase() ?? \"GET\";\n  const route = routeName ? routeName : urlObject ? kind === \"client\" ? getSanitizedUrlStringFromUrlObject(urlObject) : urlObject.pathname : \"/\";\n  return `${method} ${route}`;\n}\nfunction getHttpSpanDetailsFromUrlObject(urlObject, kind, spanOrigin, request, routeName) {\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\"\n  };\n  if (routeName) {\n    attributes[kind === \"server\" ? \"http.route\" : \"url.template\"] = routeName;\n    attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n  }\n  if (request?.method) {\n    attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n  }\n  if (urlObject) {\n    if (urlObject.search) {\n      attributes[\"url.query\"] = urlObject.search;\n    }\n    if (urlObject.hash) {\n      attributes[\"url.fragment\"] = urlObject.hash;\n    }\n    if (urlObject.pathname) {\n      attributes[\"url.path\"] = urlObject.pathname;\n      if (urlObject.pathname === \"/\") {\n        attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n      }\n    }\n    if (!isURLObjectRelative(urlObject)) {\n      attributes[URL_FULL] = urlObject.href;\n      if (urlObject.port) {\n        attributes[\"url.port\"] = urlObject.port;\n      }\n      if (urlObject.protocol) {\n        attributes[\"url.scheme\"] = urlObject.protocol;\n      }\n      if (urlObject.hostname) {\n        attributes[kind === \"server\" ? \"server.address\" : \"url.domain\"] = urlObject.hostname;\n      }\n    }\n  }\n  return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\nfunction parseUrl(url) {\n  if (!url) {\n    return {};\n  }\n  const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n  if (!match) {\n    return {};\n  }\n  const query = match[6] || \"\";\n  const fragment = match[8] || \"\";\n  return {\n    host: match[4],\n    path: match[5],\n    protocol: match[2],\n    search: query,\n    hash: fragment,\n    relative: match[5] + query + fragment\n    // everything minus origin\n  };\n}\nfunction stripUrlQueryAndFragment(urlPath) {\n  return urlPath.split(/[?#]/, 1)[0];\n}\nfunction getSanitizedUrlString(url) {\n  const { protocol, host, path } = url;\n  const filteredHost = host?.replace(/^.*@/, \"[filtered]:[filtered]@\").replace(/(:80)$/, \"\").replace(/(:443)$/, \"\") || \"\";\n  return `${protocol ? `${protocol}://` : \"\"}${filteredHost}${path}`;\n}\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n  if (url.startsWith(\"data:\")) {\n    const match = url.match(/^data:([^;,]+)/);\n    const mimeType = match ? match[1] : \"text/plain\";\n    const isBase64 = url.includes(\";base64,\");\n    const dataStart = url.indexOf(\",\");\n    let dataPrefix = \"\";\n    if (includeDataPrefix && dataStart !== -1) {\n      const data = url.slice(dataStart + 1);\n      dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n    }\n    return `data:${mimeType}${isBase64 ? \",base64\" : \"\"}${dataPrefix ? `,${dataPrefix}` : \"\"}`;\n  }\n  return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","import { parseStringToURLObject, isURLObjectRelative } from './url.js';\n\nfunction isSentryRequestUrl(url, client) {\n  const dsn = client?.getDsn();\n  const tunnel = client?.getOptions().tunnel;\n  return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\nfunction checkTunnel(url, tunnel) {\n  if (!tunnel) {\n    return false;\n  }\n  return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\nfunction checkDsn(url, dsn) {\n  const urlParts = parseStringToURLObject(url);\n  if (!urlParts || isURLObjectRelative(urlParts)) {\n    return false;\n  }\n  if (!dsn) {\n    return false;\n  }\n  return hostnameMatchesDsnHost(urlParts.hostname, dsn.host) && /(^|&|\\?)sentry_key=/.test(urlParts.search);\n}\nfunction hostnameMatchesDsnHost(hostname, dsnHost) {\n  return hostname === dsnHost || dsnHost.length > 0 && hostname.endsWith(`.${dsnHost}`);\n}\nfunction removeTrailingSlash(str) {\n  return str[str.length - 1] === \"/\" ? str.slice(0, -1) : str;\n}\n\nexport { isSentryRequestUrl };\n//# sourceMappingURL=isSentryRequestUrl.js.map\n","function addAutoIpAddressToUser(objWithMaybeUser) {\n  if (objWithMaybeUser.user?.ip_address === void 0) {\n    objWithMaybeUser.user = {\n      ...objWithMaybeUser.user,\n      ip_address: \"{{auto}}\"\n    };\n  }\n}\nfunction addAutoIpAddressToSession(session) {\n  if (\"aggregates\" in session) {\n    if (session.attrs?.[\"ip_address\"] === void 0) {\n      session.attrs = {\n        ...session.attrs,\n        ip_address: \"{{auto}}\"\n      };\n    }\n  } else {\n    if (session.ipAddress === void 0) {\n      session.ipAddress = \"{{auto}}\";\n    }\n  }\n}\n\nexport { addAutoIpAddressToSession, addAutoIpAddressToUser };\n//# sourceMappingURL=ipAddress.js.map\n","import { SDK_VERSION } from './version.js';\n\nfunction applySdkMetadata(options, name, names = [name], source = \"npm\") {\n  const sdk = (options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {};\n  if (!sdk.name) {\n    sdk.name = `sentry.javascript.${name}`;\n    sdk.packages = names.map((name2) => ({\n      name: `${source}:@sentry/${name2}`,\n      version: SDK_VERSION\n    }));\n    sdk.version = SDK_VERSION;\n  }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope, hasExternalPropagationContext } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { hasSpansEnabled } from './hasSpansEnabled.js';\nimport { spanIsNonRecordingSpan } from '../tracing/sentryNonRecordingSpan.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\n\nfunction getTraceData(options = {}) {\n  const client = options.client || getClient();\n  if (!isEnabled() || !client) {\n    return {};\n  }\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getTraceData) {\n    return acs.getTraceData(options);\n  }\n  const scope = options.scope || getCurrentScope();\n  const span = options.span || getActiveSpan();\n  const isTwpPlaceholder = spanIsNonRecordingSpan(span) && !hasSpansEnabled(client.getOptions());\n  if (!span && hasExternalPropagationContext()) {\n    return {};\n  }\n  const sentryTrace = span && !isTwpPlaceholder ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n  const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n  const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n  const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n  if (!isValidSentryTraceHeader) {\n    debug.warn(\"Invalid sentry-trace data. Cannot generate trace data\");\n    return {};\n  }\n  const traceData = {\n    \"sentry-trace\": sentryTrace,\n    baggage\n  };\n  if (options.propagateTraceparent) {\n    traceData.traceparent = span && !isTwpPlaceholder ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n  }\n  return traceData;\n}\nfunction scopeToTraceHeader(scope) {\n  const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n  return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\nfunction scopeToTraceparentHeader(scope) {\n  const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n  return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n","import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_BREADCRUMBS = 100;\nfunction addBreadcrumb(breadcrumb, hint) {\n  const client = getClient();\n  const isolationScope = getIsolationScope();\n  if (!client) return;\n  const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n  if (maxBreadcrumbs <= 0) return;\n  const timestamp = dateTimestampInSeconds();\n  const mergedBreadcrumb = { timestamp, ...breadcrumb };\n  const finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) : mergedBreadcrumb;\n  if (finalBreadcrumb === null) return;\n  if (client.emit) {\n    client.emit(\"beforeAddBreadcrumb\", finalBreadcrumb, hint);\n  }\n  isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nconst INTEGRATION_NAME = \"FunctionToString\";\nconst SETUP_CLIENTS = /* @__PURE__ */ new WeakMap();\nconst _functionToStringIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const originalFunctionToString = Function.prototype.toString;\n      try {\n        Function.prototype.toString = function(...args) {\n          const originalFunction = getOriginalFunction(this);\n          let unwrappedFunction;\n          try {\n            if (SETUP_CLIENTS.has(getClient()) && originalFunction !== void 0) {\n              unwrappedFunction = originalFunction;\n            }\n          } catch {\n          }\n          return originalFunctionToString.apply(unwrappedFunction ?? this, args);\n        };\n      } catch {\n      }\n    },\n    setup(client) {\n      SETUP_CLIENTS.set(client, true);\n    }\n  };\n});\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\nconst DEFAULT_IGNORE_ERRORS = [\n  /^Script error\\.?$/,\n  /^Javascript error: Script error\\.? on line 0$/,\n  /^ResizeObserver loop completed with undelivered notifications.$/,\n  // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n  /^Cannot redefine property: googletag$/,\n  // This is thrown when google tag manager is used in combination with an ad blocker\n  /^Can't find variable: gmo$/,\n  // Error from Google Search App https://issuetracker.google.com/issues/396043331\n  /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/,\n  // Random error that happens but not actionable or noticeable to end-users.\n  /can't redefine non-configurable property \"solana\"/,\n  // Probably a browser extension or custom browser (Brave) throwing this error\n  /vv\\(\\)\\.getRestrictions is not a function/,\n  // Error thrown by GTM, seemingly not affecting end-users\n  /Can't find variable: _AutofillCallbackHandler/,\n  // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n  /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/,\n  // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n  /^Java exception was raised during method invocation$/\n  // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\nconst INTEGRATION_NAME = \"EventFilters\";\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n  let mergedOptions;\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const clientOptions = client.getOptions();\n      mergedOptions = _mergeOptions(options, clientOptions);\n    },\n    processEvent(event, _hint, client) {\n      if (!mergedOptions) {\n        const clientOptions = client.getOptions();\n        mergedOptions = _mergeOptions(options, clientOptions);\n      }\n      return _shouldDropEvent(event, mergedOptions) ? null : event;\n    }\n  };\n});\nconst inboundFiltersIntegration = defineIntegration(((options = {}) => {\n  return {\n    ...eventFiltersIntegration(options),\n    name: \"InboundFilters\"\n  };\n}));\nfunction _mergeOptions(internalOptions = {}, clientOptions = {}) {\n  return {\n    allowUrls: [...internalOptions.allowUrls || [], ...clientOptions.allowUrls || []],\n    denyUrls: [...internalOptions.denyUrls || [], ...clientOptions.denyUrls || []],\n    ignoreErrors: [\n      ...internalOptions.ignoreErrors || [],\n      ...clientOptions.ignoreErrors || [],\n      ...internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS\n    ],\n    ignoreTransactions: [...internalOptions.ignoreTransactions || [], ...clientOptions.ignoreTransactions || []]\n  };\n}\nfunction _shouldDropEvent(event, options) {\n  if (!event.type) {\n    if (_isIgnoredError(event, options.ignoreErrors)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`ignoreErrors\\` option.\nEvent: ${getEventDescription(event)}`\n      );\n      return true;\n    }\n    if (_isUselessError(event)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${getEventDescription(\n          event\n        )}`\n      );\n      return true;\n    }\n    if (_isDeniedUrl(event, options.denyUrls)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`denyUrls\\` option.\nEvent: ${getEventDescription(\n          event\n        )}.\nUrl: ${_getEventFilterUrl(event)}`\n      );\n      return true;\n    }\n    if (!_isAllowedUrl(event, options.allowUrls)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to not being matched by \\`allowUrls\\` option.\nEvent: ${getEventDescription(\n          event\n        )}.\nUrl: ${_getEventFilterUrl(event)}`\n      );\n      return true;\n    }\n  } else if (event.type === \"transaction\") {\n    if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`ignoreTransactions\\` option.\nEvent: ${getEventDescription(event)}`\n      );\n      return true;\n    }\n  }\n  return false;\n}\nfunction _isIgnoredError(event, ignoreErrors) {\n  if (!ignoreErrors?.length) {\n    return false;\n  }\n  return getPossibleEventMessages(event).some((message) => stringMatchesSomePattern(message, ignoreErrors));\n}\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n  if (!ignoreTransactions?.length) {\n    return false;\n  }\n  const name = event.transaction;\n  return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\nfunction _isDeniedUrl(event, denyUrls) {\n  if (!denyUrls?.length) {\n    return false;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\nfunction _isAllowedUrl(event, allowUrls) {\n  if (!allowUrls?.length) {\n    return true;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\nfunction _getLastValidUrl(frames = []) {\n  for (let i = frames.length - 1; i >= 0; i--) {\n    const frame = frames[i];\n    if (frame && frame.filename !== \"<anonymous>\" && frame.filename !== \"[native code]\") {\n      return frame.filename || null;\n    }\n  }\n  return null;\n}\nfunction _getEventFilterUrl(event) {\n  try {\n    const rootException = [...event.exception?.values ?? []].reverse().find((value) => value.mechanism?.parent_id === void 0 && value.stacktrace?.frames?.length);\n    const frames = rootException?.stacktrace?.frames;\n    return frames ? _getLastValidUrl(frames) : null;\n  } catch {\n    DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n    return null;\n  }\n}\nfunction _isUselessError(event) {\n  if (!event.exception?.values?.length) {\n    return false;\n  }\n  return (\n    // No top-level message\n    !event.message && // There are no exception values that have a stacktrace, a non-generic-Error type or value\n    !event.exception.values.some((value) => value.stacktrace || value.type && value.type !== \"Error\" || value.value)\n  );\n}\n\nexport { eventFiltersIntegration, inboundFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n","import { isInstanceOf } from './is.js';\n\nfunction applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, key, limit, event, hint) {\n  if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n    return;\n  }\n  const originalException = event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : void 0;\n  if (originalException) {\n    event.exception.values = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      hint.originalException,\n      key,\n      event.exception.values,\n      originalException,\n      0\n    );\n  }\n}\nfunction aggregateExceptionsFromError(exceptionFromErrorImplementation, parser, limit, error, key, prevExceptions, exception, exceptionId) {\n  if (prevExceptions.length >= limit + 1) {\n    return prevExceptions;\n  }\n  let newExceptions = [...prevExceptions];\n  if (isInstanceOf(error[key], Error)) {\n    applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n    const newException = exceptionFromErrorImplementation(parser, error[key]);\n    const newExceptionId = newExceptions.length;\n    applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n    newExceptions = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      error[key],\n      key,\n      [newException, ...newExceptions],\n      newException,\n      newExceptionId\n    );\n  }\n  if (isExceptionGroup(error)) {\n    error.errors.forEach((childError, i) => {\n      if (isInstanceOf(childError, Error)) {\n        applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n        const newException = exceptionFromErrorImplementation(parser, childError);\n        const newExceptionId = newExceptions.length;\n        applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n        newExceptions = aggregateExceptionsFromError(\n          exceptionFromErrorImplementation,\n          parser,\n          limit,\n          childError,\n          key,\n          [newException, ...newExceptions],\n          newException,\n          newExceptionId\n        );\n      }\n    });\n  }\n  return newExceptions;\n}\nfunction isExceptionGroup(error) {\n  return Array.isArray(error.errors);\n}\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId, error) {\n  exception.mechanism = {\n    handled: true,\n    type: \"auto.core.linked_errors\",\n    ...isExceptionGroup(error) && { is_exception_group: true },\n    ...exception.mechanism,\n    exception_id: exceptionId\n  };\n}\nfunction applyExceptionGroupFieldsForChildException(exception, source, exceptionId, parentId) {\n  exception.mechanism = {\n    handled: true,\n    ...exception.mechanism,\n    type: \"chained\",\n    source,\n    exception_id: exceptionId,\n    parent_id: parentId\n  };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n","import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\nfunction parseStackFrames(stackParser, error) {\n  return stackParser(error.stack || \"\", 1);\n}\nfunction hasSentryFetchUrlHost(error) {\n  return isError(error) && \"__sentry_fetch_url_host__\" in error && typeof error.__sentry_fetch_url_host__ === \"string\";\n}\nfunction _enhanceErrorWithSentryInfo(error) {\n  if (hasSentryFetchUrlHost(error)) {\n    return `${error.message} (${error.__sentry_fetch_url_host__})`;\n  }\n  return error.message;\n}\nfunction exceptionFromError(stackParser, error) {\n  const exception = {\n    type: error.name || error.constructor.name,\n    value: _enhanceErrorWithSentryInfo(error)\n  };\n  const frames = parseStackFrames(stackParser, error);\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n  return exception;\n}\nfunction getErrorPropertyFromObject(obj) {\n  for (const prop in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n      const value = obj[prop];\n      if (value instanceof Error) {\n        return value;\n      }\n    }\n  }\n  return void 0;\n}\nfunction getMessageForObject(exception) {\n  if (\"name\" in exception && typeof exception.name === \"string\") {\n    let message = `'${exception.name}' captured as exception`;\n    if (\"message\" in exception && typeof exception.message === \"string\") {\n      message += ` with message '${exception.message}'`;\n    }\n    return message;\n  } else if (\"message\" in exception && typeof exception.message === \"string\") {\n    return exception.message;\n  }\n  const keys = extractExceptionKeysForMessage(exception);\n  if (isErrorEvent(exception)) {\n    return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n  }\n  const className = getObjectClassName(exception);\n  return `${className && className !== \"Object\" ? `'${className}'` : \"Object\"} captured as exception with keys: ${keys}`;\n}\nfunction getObjectClassName(obj) {\n  try {\n    const prototype = Object.getPrototypeOf(obj);\n    return prototype ? prototype.constructor.name : void 0;\n  } catch {\n  }\n}\nfunction getException(client, mechanism, exception, hint) {\n  if (isError(exception)) {\n    return [exception, void 0];\n  }\n  mechanism.synthetic = true;\n  if (isPlainObject(exception)) {\n    const normalizeDepth = client?.getOptions().normalizeDepth;\n    const extras = { [\"__serialized__\"]: normalizeToSize(exception, normalizeDepth) };\n    const errorFromProp = getErrorPropertyFromObject(exception);\n    if (errorFromProp) {\n      return [errorFromProp, extras];\n    }\n    const message = getMessageForObject(exception);\n    const ex2 = hint?.syntheticException || new Error(message);\n    ex2.message = message;\n    return [ex2, extras];\n  }\n  const ex = hint?.syntheticException || new Error(exception);\n  ex.message = `${exception}`;\n  return [ex, void 0];\n}\nfunction eventFromUnknownInput(client, stackParser, exception, hint) {\n  const providedMechanism = hint?.data && hint.data.mechanism;\n  const mechanism = providedMechanism || {\n    handled: true,\n    type: \"generic\"\n  };\n  const [ex, extras] = getException(client, mechanism, exception, hint);\n  const event = {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)]\n    }\n  };\n  if (extras) {\n    event.extra = extras;\n  }\n  addExceptionTypeValue(event, void 0, void 0);\n  addExceptionMechanism(event, mechanism);\n  return {\n    ...event,\n    event_id: hint?.event_id\n  };\n}\nfunction eventFromMessage(stackParser, message, level = \"info\", hint, attachStacktrace) {\n  const event = {\n    event_id: hint?.event_id,\n    level\n  };\n  if (attachStacktrace && hint?.syntheticException) {\n    const frames = parseStackFrames(stackParser, hint.syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [\n          {\n            value: message,\n            stacktrace: { frames }\n          }\n        ]\n      };\n      addExceptionMechanism(event, { synthetic: true });\n    }\n  }\n  if (isParameterizedString(message)) {\n    const { __sentry_template_string__, __sentry_template_values__ } = message;\n    event.logentry = {\n      message: __sentry_template_string__,\n      params: __sentry_template_values__\n    };\n    return event;\n  }\n  event.message = message;\n  return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { CONSOLE_LEVELS, originalConsoleMethods, debug } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nconst _filter = /* @__PURE__ */ new Set([]);\nfunction addConsoleInstrumentationHandler(handler) {\n  const type = \"console\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, instrumentConsole);\n  return removeHandler;\n}\nfunction addConsoleInstrumentationFilter(filter) {\n  for (const f of filter) {\n    _filter.add(f);\n  }\n  return () => {\n    for (const f of filter) {\n      _filter.delete(f);\n    }\n  };\n}\nconst instrumentedLevels = /* @__PURE__ */ new Set();\nfunction instrumentConsole() {\n  if (!(\"console\" in GLOBAL_OBJ)) {\n    return;\n  }\n  CONSOLE_LEVELS.forEach(function(level) {\n    if (instrumentedLevels.has(level) || !(level in GLOBAL_OBJ.console)) {\n      return;\n    }\n    instrumentedLevels.add(level);\n    fill(GLOBAL_OBJ.console, level, function(originalConsoleMethod) {\n      originalConsoleMethods[level] = originalConsoleMethod;\n      return function(...args) {\n        const firstArg = args[0];\n        const log = originalConsoleMethods[level];\n        const isFiltered = _filter.size && typeof firstArg === \"string\" && stringMatchesSomePattern(firstArg, _filter);\n        if (!isFiltered) {\n          triggerHandlers(\"console\", { args, level });\n        }\n        if (!isFiltered || DEBUG_BUILD && debug.isEnabled()) {\n          log?.apply(GLOBAL_OBJ.console, args);\n        }\n      };\n    });\n  });\n}\n\nexport { addConsoleInstrumentationFilter, addConsoleInstrumentationHandler, instrumentConsole };\n//# sourceMappingURL=console.js.map\n","function severityLevelFromString(level) {\n  return level === \"warn\" ? \"warning\" : [\"fatal\", \"error\", \"warning\", \"log\", \"info\", \"debug\"].includes(level) ? level : \"log\";\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFramesFromEvent } from '../utils/stacktrace.js';\n\nconst INTEGRATION_NAME = \"Dedupe\";\nconst _dedupeIntegration = (() => {\n  let previousEvent;\n  return {\n    name: INTEGRATION_NAME,\n    processEvent(currentEvent) {\n      if (currentEvent.type) {\n        return currentEvent;\n      }\n      try {\n        if (_shouldDropEvent(currentEvent, previousEvent)) {\n          DEBUG_BUILD && debug.warn(\"Event dropped due to being a duplicate of previously captured event.\");\n          return null;\n        }\n      } catch {\n      }\n      return previousEvent = currentEvent;\n    }\n  };\n});\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n  if (!previousEvent) {\n    return false;\n  }\n  if (_isSameMessageEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n  if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n  return false;\n}\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n  const currentMessage = currentEvent.message;\n  const previousMessage = previousEvent.message;\n  if (!currentMessage && !previousMessage) {\n    return false;\n  }\n  if (currentMessage && !previousMessage || !currentMessage && previousMessage) {\n    return false;\n  }\n  if (currentMessage !== previousMessage) {\n    return false;\n  }\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n  return true;\n}\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n  const previousException = _getExceptionFromEvent(previousEvent);\n  const currentException = _getExceptionFromEvent(currentEvent);\n  if (!previousException || !currentException) {\n    return false;\n  }\n  if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n    return false;\n  }\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n  return true;\n}\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n  let currentFrames = getFramesFromEvent(currentEvent);\n  let previousFrames = getFramesFromEvent(previousEvent);\n  if (!currentFrames && !previousFrames) {\n    return true;\n  }\n  if (currentFrames && !previousFrames || !currentFrames && previousFrames) {\n    return false;\n  }\n  currentFrames = currentFrames;\n  previousFrames = previousFrames;\n  if (previousFrames.length !== currentFrames.length) {\n    return false;\n  }\n  for (let i = 0; i < previousFrames.length; i++) {\n    const frameA = previousFrames[i];\n    const frameB = currentFrames[i];\n    if (frameA.filename !== frameB.filename || frameA.lineno !== frameB.lineno || frameA.colno !== frameB.colno || frameA.function !== frameB.function) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n  let currentFingerprint = currentEvent.fingerprint;\n  let previousFingerprint = previousEvent.fingerprint;\n  if (!currentFingerprint && !previousFingerprint) {\n    return true;\n  }\n  if (currentFingerprint && !previousFingerprint || !currentFingerprint && previousFingerprint) {\n    return false;\n  }\n  currentFingerprint = currentFingerprint;\n  previousFingerprint = previousFingerprint;\n  try {\n    return !!(currentFingerprint.join(\"\") === previousFingerprint.join(\"\"));\n  } catch {\n    return false;\n  }\n}\nfunction _getExceptionFromEvent(event) {\n  return event.exception?.values?.[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n//# sourceMappingURL=dedupe.js.map\n","import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\nimport { spanToJSON } from '../utils/spanUtils.js';\n\nconst INTEGRATION_NAME = \"ConversationId\";\nconst _conversationIdIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      client.on(\"spanStart\", (span) => {\n        const scopeData = getCurrentScope().getScopeData();\n        const isolationScopeData = getIsolationScope().getScopeData();\n        const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n        if (conversationId) {\n          const { op, data: attributes, description: name } = spanToJSON(span);\n          if (!op?.startsWith(\"gen_ai.\") && !attributes[\"ai.operationId\"] && !name?.startsWith(\"ai.\")) {\n            return;\n          }\n          span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n        }\n      });\n    }\n  };\n});\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n","import { HTTP_URL, URL_FULL } from '@sentry/conventions/attributes';\nimport { getClient } from './currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from './semanticAttributes.js';\nimport { getActiveSpan } from './utils/spanUtils.js';\nimport { setHttpStatus, SPAN_STATUS_ERROR } from './tracing/spanstatus.js';\nimport { isRequest, isInstanceOf } from './utils/is.js';\nimport { hasSpansEnabled } from './utils/hasSpansEnabled.js';\nimport { SentryNonRecordingSpan } from './tracing/sentryNonRecordingSpan.js';\nimport { SENTRY_BAGGAGE_KEY_PREFIX } from './utils/baggage.js';\nimport { hasSpanStreamingEnabled } from './tracing/spans/hasSpanStreamingEnabled.js';\nimport { startInactiveSpan, spanIsIgnored } from './tracing/trace.js';\nimport { getTraceData } from './utils/traceData.js';\nimport { stripDataUrlContent, parseStringToURLObject, getSanitizedUrlStringFromUrlObject, isURLObjectRelative } from './utils/url.js';\n\nfunction instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeaders, spans, spanOriginOrOptions) {\n  if (!handlerData.fetchData) {\n    return void 0;\n  }\n  const { method, url } = handlerData.fetchData;\n  const shouldCreateSpanResult = hasSpansEnabled() && shouldCreateSpan(url);\n  if (handlerData.endTimestamp) {\n    const spanId = handlerData.fetchData.__span;\n    if (!spanId) return;\n    const span2 = spans[spanId];\n    if (span2) {\n      if (shouldCreateSpanResult) {\n        endSpan(span2, handlerData);\n        _callOnRequestSpanEnd(span2, handlerData, spanOriginOrOptions);\n      }\n      delete spans[spanId];\n    }\n    return void 0;\n  }\n  const { spanOrigin = \"auto.http.browser\", propagateTraceparent = false } = typeof spanOriginOrOptions === \"object\" ? spanOriginOrOptions : { spanOrigin: spanOriginOrOptions };\n  const client = getClient();\n  const hasParent = !!getActiveSpan();\n  const shouldEmitSpan = hasParent || !!client && hasSpanStreamingEnabled(client);\n  const span = shouldCreateSpanResult && shouldEmitSpan ? startInactiveSpan(getSpanStartOptions(url, method, spanOrigin)) : new SentryNonRecordingSpan();\n  const spanForTraceHeaders = spanIsIgnored(span) && hasParent ? void 0 : span;\n  if (shouldCreateSpanResult && !shouldEmitSpan) {\n    client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n  }\n  handlerData.fetchData.__span = span.spanContext().spanId;\n  spans[span.spanContext().spanId] = span;\n  if (shouldAttachHeaders(handlerData.fetchData.url)) {\n    const request = handlerData.args[0];\n    const options = { ...handlerData.args[1] || {} };\n    const headers = _INTERNAL_getTracingHeadersForFetchRequest(\n      request,\n      options,\n      // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n      // we do not want to use the span as base for the trace headers,\n      // which means that the headers will be generated from the scope and the sampling decision is deferred\n      hasSpansEnabled() && shouldEmitSpan ? spanForTraceHeaders : void 0,\n      propagateTraceparent\n    );\n    if (headers) {\n      handlerData.args[1] = options;\n      options.headers = headers;\n    }\n  }\n  if (client) {\n    const fetchHint = {\n      input: handlerData.args,\n      response: handlerData.response,\n      startTimestamp: handlerData.startTimestamp,\n      endTimestamp: handlerData.endTimestamp\n    };\n    client.emit(\"beforeOutgoingRequestSpan\", span, fetchHint);\n  }\n  return span;\n}\nfunction _callOnRequestSpanEnd(span, handlerData, spanOriginOrOptions) {\n  const onRequestSpanEnd = typeof spanOriginOrOptions === \"object\" && spanOriginOrOptions !== null ? spanOriginOrOptions.onRequestSpanEnd : void 0;\n  onRequestSpanEnd?.(span, {\n    headers: handlerData.response?.headers,\n    error: handlerData.error\n  });\n}\nfunction _INTERNAL_getTracingHeadersForFetchRequest(request, fetchOptionsObj, span, propagateTraceparent) {\n  const traceHeaders = getTraceData({ span, propagateTraceparent });\n  const sentryTrace = traceHeaders[\"sentry-trace\"];\n  const baggage = traceHeaders.baggage;\n  const traceparent = traceHeaders.traceparent;\n  if (!sentryTrace) {\n    return void 0;\n  }\n  const originalHeaders = fetchOptionsObj.headers || (isRequest(request) ? request.headers : void 0);\n  if (!originalHeaders) {\n    return {\n      \"sentry-trace\": sentryTrace,\n      ...baggage && { baggage },\n      ...traceparent && { traceparent }\n    };\n  } else if (isHeaders(originalHeaders)) {\n    const newHeaders = new Headers(originalHeaders);\n    if (!newHeaders.get(\"sentry-trace\")) {\n      newHeaders.set(\"sentry-trace\", sentryTrace);\n    }\n    if (propagateTraceparent && traceparent && !newHeaders.get(\"traceparent\")) {\n      newHeaders.set(\"traceparent\", traceparent);\n    }\n    if (baggage) {\n      const prevBaggageHeader = newHeaders.get(\"baggage\");\n      if (!prevBaggageHeader) {\n        newHeaders.set(\"baggage\", baggage);\n      } else if (!baggageHeaderHasSentryBaggageValues(prevBaggageHeader)) {\n        newHeaders.set(\"baggage\", `${prevBaggageHeader},${baggage}`);\n      }\n    }\n    return newHeaders;\n  } else if (isHeadersInitTupleArray(originalHeaders)) {\n    const newHeaders = [...originalHeaders];\n    if (!newHeaders.find((header) => header[0] === \"sentry-trace\")) {\n      newHeaders.push([\"sentry-trace\", sentryTrace]);\n    }\n    if (propagateTraceparent && traceparent && !newHeaders.find((header) => header[0] === \"traceparent\")) {\n      newHeaders.push([\"traceparent\", traceparent]);\n    }\n    const prevBaggageHeaderWithSentryValues = originalHeaders.find(\n      (header) => header[0] === \"baggage\" && typeof header[1] === \"string\" && baggageHeaderHasSentryBaggageValues(header[1])\n    );\n    if (baggage && !prevBaggageHeaderWithSentryValues) {\n      newHeaders.push([\"baggage\", baggage]);\n    }\n    return newHeaders;\n  } else {\n    const existingSentryTraceHeader = \"sentry-trace\" in originalHeaders ? originalHeaders[\"sentry-trace\"] : void 0;\n    const existingTraceparentHeader = \"traceparent\" in originalHeaders ? originalHeaders.traceparent : void 0;\n    const existingBaggageHeader = \"baggage\" in originalHeaders ? originalHeaders.baggage : void 0;\n    const newBaggageHeaders = existingBaggageHeader ? Array.isArray(existingBaggageHeader) ? [...existingBaggageHeader] : [existingBaggageHeader] : [];\n    const prevBaggageHeaderWithSentryValues = existingBaggageHeader && (Array.isArray(existingBaggageHeader) ? existingBaggageHeader.find((headerItem) => baggageHeaderHasSentryBaggageValues(headerItem)) : baggageHeaderHasSentryBaggageValues(existingBaggageHeader));\n    if (baggage && !prevBaggageHeaderWithSentryValues) {\n      newBaggageHeaders.push(baggage);\n    }\n    const newHeaders = Object.assign({}, originalHeaders, {\n      \"sentry-trace\": existingSentryTraceHeader ?? sentryTrace,\n      ...newBaggageHeaders.length > 0 && { baggage: newBaggageHeaders.join(\",\") }\n    });\n    if (propagateTraceparent && traceparent && !existingTraceparentHeader) {\n      newHeaders.traceparent = traceparent;\n    }\n    return newHeaders;\n  }\n}\nfunction endSpan(span, handlerData) {\n  if (handlerData.response) {\n    setHttpStatus(span, handlerData.response.status);\n    const contentLength = handlerData.response?.headers?.get(\"content-length\");\n    if (contentLength) {\n      const contentLengthNum = parseInt(contentLength);\n      if (contentLengthNum > 0) {\n        span.setAttribute(\"http.response_content_length\", contentLengthNum);\n      }\n    }\n  } else if (handlerData.error) {\n    span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n  }\n  span.end();\n}\nfunction baggageHeaderHasSentryBaggageValues(baggageHeader) {\n  if (typeof baggageHeader !== \"string\") {\n    return false;\n  }\n  return baggageHeader.split(\",\").some((baggageEntry) => baggageEntry.trim().startsWith(SENTRY_BAGGAGE_KEY_PREFIX));\n}\nfunction isHeaders(headers) {\n  return typeof Headers !== \"undefined\" && isInstanceOf(headers, Headers);\n}\nfunction isHeadersInitTupleArray(headers) {\n  if (!Array.isArray(headers)) {\n    return false;\n  }\n  return headers.every(\n    (item) => Array.isArray(item) && item.length === 2 && typeof item[0] === \"string\"\n  );\n}\nfunction getSpanStartOptions(url, method, spanOrigin) {\n  if (url.startsWith(\"data:\")) {\n    const sanitizedUrl2 = stripDataUrlContent(url);\n    return {\n      name: `${method} ${sanitizedUrl2}`,\n      attributes: getFetchSpanAttributes(url, void 0, method, spanOrigin)\n    };\n  }\n  const parsedUrl = parseStringToURLObject(url);\n  const sanitizedUrl = parsedUrl ? getSanitizedUrlStringFromUrlObject(parsedUrl) : url;\n  return {\n    name: `${method} ${sanitizedUrl}`,\n    attributes: getFetchSpanAttributes(url, parsedUrl, method, spanOrigin)\n  };\n}\nfunction getFetchSpanAttributes(url, parsedUrl, method, spanOrigin) {\n  const attributes = {\n    url: stripDataUrlContent(url),\n    type: \"fetch\",\n    \"http.method\": method,\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.client\"\n  };\n  if (parsedUrl) {\n    if (!isURLObjectRelative(parsedUrl)) {\n      attributes[HTTP_URL] = stripDataUrlContent(parsedUrl.href);\n      attributes[URL_FULL] = stripDataUrlContent(parsedUrl.href);\n      attributes[\"server.address\"] = parsedUrl.host;\n    }\n    if (parsedUrl.search) {\n      attributes[\"http.query\"] = parsedUrl.search;\n    }\n    if (parsedUrl.hash) {\n      attributes[\"http.fragment\"] = parsedUrl.hash;\n    }\n  }\n  return attributes;\n}\n\nexport { _INTERNAL_getTracingHeadersForFetchRequest, _callOnRequestSpanEnd, instrumentFetchRequest };\n//# sourceMappingURL=fetch.js.map\n","function getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n  if (statusCode === void 0) {\n    return void 0;\n  } else if (statusCode >= 400 && statusCode < 500) {\n    return \"warning\";\n  } else if (statusCode >= 500) {\n    return \"error\";\n  } else {\n    return void 0;\n  }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ;\nfunction supportsErrorEvent() {\n  try {\n    new ErrorEvent(\"\");\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction supportsDOMError() {\n  try {\n    new DOMError(\"\");\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction supportsDOMException() {\n  try {\n    new DOMException(\"\");\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction supportsHistory() {\n  return \"history\" in WINDOW && !!WINDOW.history;\n}\nconst supportsFetch = _isFetchSupported;\nfunction _isFetchSupported() {\n  if (!(\"fetch\" in WINDOW)) {\n    return false;\n  }\n  try {\n    new Headers();\n    new Request(\"data:,\");\n    new Response();\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction isNativeFunction(func) {\n  return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\nfunction supportsNativeFetch() {\n  if (typeof EdgeRuntime === \"string\") {\n    return true;\n  }\n  if (!_isFetchSupported()) {\n    return false;\n  }\n  if (isNativeFunction(WINDOW.fetch)) {\n    return true;\n  }\n  let result = false;\n  const doc = WINDOW.document;\n  if (doc && typeof doc.createElement === \"function\") {\n    try {\n      const sandbox = doc.createElement(\"iframe\");\n      sandbox.hidden = true;\n      doc.head.appendChild(sandbox);\n      if (sandbox.contentWindow?.fetch) {\n        result = isNativeFunction(sandbox.contentWindow.fetch);\n      }\n      doc.head.removeChild(sandbox);\n    } catch (err) {\n      DEBUG_BUILD && debug.warn(\"Could not create sandbox iframe for pure fetch check, bailing to window.fetch: \", err);\n    }\n  }\n  return result;\n}\nfunction supportsReportingObserver() {\n  return \"ReportingObserver\" in WINDOW;\n}\nfunction supportsReferrerPolicy() {\n  if (!_isFetchSupported()) {\n    return false;\n  }\n  try {\n    new Request(\"_\", {\n      referrerPolicy: \"origin\"\n    });\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport { isNativeFunction, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { getClient } from '../currentScopes.js';\nimport { isError, isRequest, isObjectLike } from '../utils/is.js';\nimport { fill, addNonEnumerableProperty } from '../utils/object.js';\nimport { supportsNativeFetch } from '../utils/supports.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nfunction addFetchInstrumentationHandler(handler, skipNativeFetchCheck) {\n  const type = \"fetch\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch(void 0, skipNativeFetchCheck));\n  return removeHandler;\n}\nfunction addFetchEndInstrumentationHandler(handler) {\n  const type = \"fetch-body-resolved\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch(streamHandler));\n  return removeHandler;\n}\nfunction instrumentFetch(onFetchResolved, skipNativeFetchCheck = false) {\n  if (skipNativeFetchCheck && !supportsNativeFetch()) {\n    return;\n  }\n  fill(GLOBAL_OBJ, \"fetch\", function(originalFetch) {\n    return function(...args) {\n      const virtualError = new Error();\n      const { method, url } = parseFetchArgs(args);\n      const handlerData = {\n        args,\n        fetchData: {\n          method,\n          url\n        },\n        startTimestamp: timestampInSeconds() * 1e3,\n        // // Adding the error to be able to fingerprint the failed fetch event in HttpClient instrumentation\n        virtualError,\n        headers: getHeadersFromFetchArgs(args)\n      };\n      if (!onFetchResolved) {\n        triggerHandlers(\"fetch\", {\n          ...handlerData\n        });\n      }\n      return originalFetch.apply(GLOBAL_OBJ, args).then(\n        async (response) => {\n          if (onFetchResolved) {\n            onFetchResolved(response);\n          } else {\n            triggerHandlers(\"fetch\", {\n              ...handlerData,\n              endTimestamp: timestampInSeconds() * 1e3,\n              response\n            });\n          }\n          return response;\n        },\n        (error) => {\n          triggerHandlers(\"fetch\", {\n            ...handlerData,\n            endTimestamp: timestampInSeconds() * 1e3,\n            error\n          });\n          if (isError(error) && error.stack === void 0) {\n            error.stack = virtualError.stack;\n            addNonEnumerableProperty(error, \"framesToPop\", 1);\n          }\n          const client = getClient();\n          const enhanceOption = client?.getOptions().enhanceFetchErrorMessages ?? \"always\";\n          const shouldEnhance = enhanceOption !== false;\n          if (shouldEnhance && error instanceof TypeError && (error.message === \"Failed to fetch\" || error.message === \"Load failed\" || error.message === \"NetworkError when attempting to fetch resource.\")) {\n            try {\n              const url2 = new URL(handlerData.fetchData.url);\n              const hostname = url2.host;\n              if (enhanceOption === \"always\") {\n                error.message = `${error.message} (${hostname})`;\n              } else {\n                addNonEnumerableProperty(error, \"__sentry_fetch_url_host__\", hostname);\n              }\n            } catch {\n            }\n          }\n          throw error;\n        }\n      );\n    };\n  });\n}\nasync function resolveResponse(res, onFinishedResolving) {\n  if (res?.body) {\n    const body = res.body;\n    const responseReader = body.getReader();\n    const maxFetchDurationTimeout = setTimeout(\n      () => {\n        body.cancel().then(null, () => {\n        });\n      },\n      90 * 1e3\n      // 90s\n    );\n    let readingActive = true;\n    while (readingActive) {\n      let chunkTimeout;\n      try {\n        chunkTimeout = setTimeout(() => {\n          body.cancel().then(null, () => {\n          });\n        }, 5e3);\n        const { done } = await responseReader.read();\n        clearTimeout(chunkTimeout);\n        if (done) {\n          onFinishedResolving();\n          readingActive = false;\n        }\n      } catch {\n        readingActive = false;\n      } finally {\n        clearTimeout(chunkTimeout);\n      }\n    }\n    clearTimeout(maxFetchDurationTimeout);\n    responseReader.releaseLock();\n    body.cancel().then(null, () => {\n    });\n  }\n}\nfunction streamHandler(response) {\n  let clonedResponseForResolving;\n  try {\n    clonedResponseForResolving = response.clone();\n  } catch {\n    return;\n  }\n  resolveResponse(clonedResponseForResolving, () => {\n    triggerHandlers(\"fetch-body-resolved\", {\n      endTimestamp: timestampInSeconds() * 1e3,\n      response\n    });\n  });\n}\nfunction hasProp(obj, prop) {\n  return isObjectLike(obj) && !!obj[prop];\n}\nfunction getUrlFromResource(resource) {\n  if (typeof resource === \"string\") {\n    return resource;\n  }\n  if (!resource) {\n    return \"\";\n  }\n  if (hasProp(resource, \"url\")) {\n    return resource.url;\n  }\n  if (resource.toString) {\n    return resource.toString();\n  }\n  return \"\";\n}\nfunction parseFetchArgs(fetchArgs) {\n  if (fetchArgs.length === 0) {\n    return { method: \"GET\", url: \"\" };\n  }\n  if (fetchArgs.length === 2) {\n    const [resource, options] = fetchArgs;\n    return {\n      url: getUrlFromResource(resource),\n      method: hasProp(options, \"method\") ? String(options.method).toUpperCase() : (\n        // Request object as first argument\n        isRequest(resource) && hasProp(resource, \"method\") ? String(resource.method).toUpperCase() : \"GET\"\n      )\n    };\n  }\n  const arg = fetchArgs[0];\n  return {\n    url: getUrlFromResource(arg),\n    method: hasProp(arg, \"method\") ? String(arg.method).toUpperCase() : \"GET\"\n  };\n}\nfunction getHeadersFromFetchArgs(fetchArgs) {\n  const [requestArgument, optionsArgument] = fetchArgs;\n  try {\n    if (typeof optionsArgument === \"object\" && optionsArgument !== null && \"headers\" in optionsArgument && optionsArgument.headers) {\n      return new Headers(optionsArgument.headers);\n    }\n    if (isRequest(requestArgument)) {\n      return new Headers(requestArgument.headers);\n    }\n  } catch {\n  }\n  return;\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=fetch.js.map\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ;\nconst DEFAULT_MAX_STRING_LENGTH = 80;\nfunction htmlTreeAsString(elem, options = {}) {\n  if (!elem) {\n    return \"<unknown>\";\n  }\n  try {\n    let currentElem = elem;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = \" > \";\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = !Array.isArray(options) && options.maxStringLength || DEFAULT_MAX_STRING_LENGTH;\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      if (nextStr === \"html\" || height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength) {\n        break;\n      }\n      out.push(nextStr);\n      len += nextStr.length;\n      currentElem = currentElem.parentNode;\n    }\n    return out.reverse().join(separator);\n  } catch {\n    return \"<unknown>\";\n  }\n}\nfunction _htmlElementAsString(el, keyAttrs) {\n  const elem = el;\n  const out = [];\n  if (!elem?.tagName) {\n    return \"\";\n  }\n  if (WINDOW.HTMLElement) {\n    if (elem instanceof HTMLElement && elem.dataset) {\n      if (elem.dataset[\"sentryComponent\"]) {\n        return elem.dataset[\"sentryComponent\"];\n      }\n      if (elem.dataset[\"sentryElement\"]) {\n        return elem.dataset[\"sentryElement\"];\n      }\n    }\n  }\n  out.push(elem.tagName.toLowerCase());\n  const keyAttrPairs = keyAttrs?.length ? keyAttrs.filter((keyAttr) => elem.getAttribute(keyAttr)).map((keyAttr) => [keyAttr, elem.getAttribute(keyAttr)]) : null;\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach((keyAttrPair) => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    if (elem.id) {\n      out.push(`#${elem.id}`);\n    }\n    const className = elem.className;\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  for (const k of [\"aria-label\", \"type\", \"name\", \"title\", \"alt\"]) {\n    const attr = elem.getAttribute(k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n  return out.join(\"\");\n}\nfunction getLocationHref() {\n  try {\n    return WINDOW.document.location.href;\n  } catch {\n    return \"\";\n  }\n}\nfunction getComponentName(elem, maxTraverseHeight = 5) {\n  if (!WINDOW.HTMLElement) {\n    return null;\n  }\n  let currentElem = elem;\n  for (let i = 0; i < maxTraverseHeight; i++) {\n    if (!currentElem) {\n      return null;\n    }\n    if (currentElem instanceof HTMLElement) {\n      if (currentElem.dataset[\"sentryComponent\"]) {\n        return currentElem.dataset[\"sentryComponent\"];\n      }\n      if (currentElem.dataset[\"sentryElement\"]) {\n        return currentElem.dataset[\"sentryElement\"];\n      }\n    }\n    currentElem = currentElem.parentNode;\n  }\n  return null;\n}\n\nexport { getComponentName, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","import { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, withScope, addExceptionTypeValue, addExceptionMechanism, captureException, getLocationHref } from '@sentry/core/browser';\n\nconst WINDOW = GLOBAL_OBJ;\nlet ignoreOnError = 0;\nfunction shouldIgnoreOnError() {\n  return ignoreOnError > 0;\n}\nfunction ignoreNextOnError() {\n  ignoreOnError++;\n  setTimeout(() => {\n    ignoreOnError--;\n  });\n}\nfunction wrap(fn, options = {}) {\n  function isFunction(fn2) {\n    return typeof fn2 === \"function\";\n  }\n  if (!isFunction(fn)) {\n    return fn;\n  }\n  try {\n    const hasOwnWrapper = Object.prototype.hasOwnProperty.call(fn, \"__sentry_wrapped__\");\n    if (hasOwnWrapper) {\n      const wrapper = fn.__sentry_wrapped__;\n      if (typeof wrapper === \"function\") {\n        return wrapper;\n      } else {\n        return fn;\n      }\n    }\n    if (getOriginalFunction(fn)) {\n      return fn;\n    }\n  } catch {\n    return fn;\n  }\n  const sentryWrapped = function(...args) {\n    GLOBAL_OBJ._sentryWrappedDepth = (GLOBAL_OBJ._sentryWrappedDepth || 0) + 1;\n    try {\n      const wrappedArguments = args.map((arg) => wrap(arg, options));\n      return fn.apply(this, wrappedArguments);\n    } catch (ex) {\n      ignoreNextOnError();\n      withScope((scope) => {\n        scope.addEventProcessor((event) => {\n          if (options.mechanism) {\n            addExceptionTypeValue(event, void 0, void 0);\n            addExceptionMechanism(event, options.mechanism);\n          }\n          event.extra = {\n            ...event.extra,\n            arguments: args\n          };\n          return event;\n        });\n        captureException(ex);\n      });\n      throw ex;\n    } finally {\n      GLOBAL_OBJ._sentryWrappedDepth = (GLOBAL_OBJ._sentryWrappedDepth || 0) - 1;\n    }\n  };\n  try {\n    for (const property in fn) {\n      if (Object.prototype.hasOwnProperty.call(fn, property)) {\n        sentryWrapped[property] = fn[property];\n      }\n    }\n  } catch {\n  }\n  markFunctionWrapped(sentryWrapped, fn);\n  addNonEnumerableProperty(fn, \"__sentry_wrapped__\", sentryWrapped);\n  try {\n    const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, \"name\");\n    if (descriptor.configurable) {\n      Object.defineProperty(sentryWrapped, \"name\", {\n        get() {\n          return fn.name;\n        }\n      });\n    }\n  } catch {\n  }\n  return sentryWrapped;\n}\nfunction getHttpRequestData() {\n  const url = getLocationHref();\n  const { referrer } = WINDOW.document || {};\n  const { userAgent } = WINDOW.navigator || {};\n  const headers = {\n    ...referrer && { Referer: referrer },\n    ...userAgent && { \"User-Agent\": userAgent }\n  };\n  const request = {\n    url,\n    headers\n  };\n  return request;\n}\n\nexport { WINDOW, getHttpRequestData, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, addExceptionMechanism, isParameterizedString, getClient, normalizeToSize, extractExceptionKeysForMessage, _INTERNAL_enhanceErrorWithSentryInfo, resolvedSyncPromise } from '@sentry/core/browser';\n\nfunction exceptionFromError(stackParser, ex) {\n  const frames = parseStackFrames(stackParser, ex);\n  const exception = {\n    type: extractType(ex),\n    value: extractMessage(ex)\n  };\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n  if (exception.type === void 0 && exception.value === \"\") {\n    exception.value = \"Unrecoverable error caught\";\n  }\n  return exception;\n}\nfunction eventFromPlainObject(stackParser, exception, syntheticException, isUnhandledRejection) {\n  const client = getClient();\n  const normalizeDepth = client?.getOptions().normalizeDepth;\n  const errorFromProp = getErrorPropertyFromObject(exception);\n  const extra = {\n    __serialized__: normalizeToSize(exception, normalizeDepth)\n  };\n  if (errorFromProp) {\n    return {\n      exception: {\n        values: [exceptionFromError(stackParser, errorFromProp)]\n      },\n      extra\n    };\n  }\n  const event = {\n    exception: {\n      values: [\n        {\n          type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? \"UnhandledRejection\" : \"Error\",\n          value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection })\n        }\n      ]\n    },\n    extra\n  };\n  if (syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      event.exception.values[0].stacktrace = { frames };\n    }\n  }\n  return event;\n}\nfunction eventFromError(stackParser, ex) {\n  return {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)]\n    }\n  };\n}\nfunction parseStackFrames(stackParser, ex) {\n  const stacktrace = ex.stacktrace || ex.stack || \"\";\n  const skipLines = getSkipFirstStackStringLines(ex);\n  const framesToPop = getPopFirstTopFrames(ex);\n  try {\n    return stackParser(stacktrace, skipLines, framesToPop);\n  } catch {\n  }\n  return [];\n}\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\nfunction getSkipFirstStackStringLines(ex) {\n  if (ex && reactMinifiedRegexp.test(ex.message)) {\n    return 1;\n  }\n  return 0;\n}\nfunction getPopFirstTopFrames(ex) {\n  if (typeof ex.framesToPop === \"number\") {\n    return ex.framesToPop;\n  }\n  return 0;\n}\nfunction isWebAssemblyException(exception) {\n  if (typeof WebAssembly !== \"undefined\" && typeof WebAssembly.Exception !== \"undefined\") {\n    return exception instanceof WebAssembly.Exception;\n  } else {\n    return false;\n  }\n}\nfunction extractType(ex) {\n  const name = ex?.name;\n  if (!name && isWebAssemblyException(ex)) {\n    const hasTypeInMessage = ex.message && Array.isArray(ex.message) && ex.message.length == 2;\n    return hasTypeInMessage ? ex.message[0] : \"WebAssembly.Exception\";\n  }\n  return name;\n}\nfunction extractMessage(ex) {\n  const message = ex?.message;\n  if (isWebAssemblyException(ex)) {\n    if (Array.isArray(ex.message) && ex.message.length == 2) {\n      return ex.message[1];\n    }\n    return \"wasm exception\";\n  }\n  if (!message) {\n    return \"No error message\";\n  }\n  if (message.error && typeof message.error.message === \"string\") {\n    return _INTERNAL_enhanceErrorWithSentryInfo(message.error);\n  }\n  return _INTERNAL_enhanceErrorWithSentryInfo(ex);\n}\nfunction eventFromException(stackParser, exception, hint, attachStacktrace) {\n  const syntheticException = hint?.syntheticException || void 0;\n  const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n  addExceptionMechanism(event);\n  event.level = \"error\";\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\nfunction eventFromMessage(stackParser, message, level = \"info\", hint, attachStacktrace) {\n  const syntheticException = hint?.syntheticException || void 0;\n  const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n  event.level = level;\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\nfunction eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace, isUnhandledRejection) {\n  let event;\n  if (isErrorEvent(exception) && exception.error) {\n    const errorEvent = exception;\n    return eventFromError(stackParser, errorEvent.error);\n  }\n  if (isDOMError(exception) || isDOMException(exception)) {\n    const domException = exception;\n    if (\"stack\" in exception) {\n      event = eventFromError(stackParser, exception);\n      const firstException = event.exception?.values?.[0];\n      if (attachStacktrace && syntheticException && firstException && !firstException.stacktrace) {\n        const frames = parseStackFrames(stackParser, syntheticException);\n        if (frames.length) {\n          firstException.stacktrace = { frames };\n          addExceptionMechanism(event, { synthetic: true });\n        }\n      }\n    } else {\n      const name = domException.name || (isDOMError(domException) ? \"DOMError\" : \"DOMException\");\n      const message = domException.message ? `${name}: ${domException.message}` : name;\n      event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n      addExceptionTypeValue(event, message);\n    }\n    if (\"code\" in domException) {\n      event.tags = { ...event.tags, \"DOMException.code\": `${domException.code}` };\n    }\n    return event;\n  }\n  if (isError(exception)) {\n    return eventFromError(stackParser, exception);\n  }\n  if (isPlainObject(exception) || isEvent(exception)) {\n    const objectException = exception;\n    event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n    addExceptionMechanism(event, {\n      synthetic: true\n    });\n    return event;\n  }\n  event = eventFromString(stackParser, exception, syntheticException, attachStacktrace);\n  addExceptionTypeValue(event, `${exception}`, void 0);\n  addExceptionMechanism(event, {\n    synthetic: true\n  });\n  return event;\n}\nfunction eventFromString(stackParser, message, syntheticException, attachStacktrace) {\n  const event = {};\n  if (attachStacktrace && syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [{ value: message, stacktrace: { frames } }]\n      };\n    }\n    addExceptionMechanism(event, { synthetic: true });\n  }\n  if (isParameterizedString(message)) {\n    const { __sentry_template_string__, __sentry_template_values__ } = message;\n    event.logentry = {\n      message: __sentry_template_string__,\n      params: __sentry_template_values__\n    };\n    return event;\n  }\n  event.message = message;\n  return event;\n}\nfunction getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }) {\n  const keys = extractExceptionKeysForMessage(exception);\n  const captureType = isUnhandledRejection ? \"promise rejection\" : \"exception\";\n  if (isErrorEvent(exception)) {\n    return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n  }\n  if (isEvent(exception)) {\n    const className = getObjectClassName(exception);\n    return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n  }\n  return `Object captured as ${captureType} with keys: ${keys}`;\n}\nfunction getObjectClassName(obj) {\n  try {\n    const prototype = Object.getPrototypeOf(obj);\n    return prototype ? prototype.constructor.name : void 0;\n  } catch {\n  }\n}\nfunction getErrorPropertyFromObject(obj) {\n  return Object.values(obj).find((v) => v instanceof Error);\n}\n\nexport { eventFromException, eventFromMessage, eventFromUnknownInput, exceptionFromError, extractMessage, extractType };\n//# sourceMappingURL=eventbuilder.js.map\n","import { Client, getSDKSource, applySdkMetadata, addAutoIpAddressToSession } from '@sentry/core/browser';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\n\nclass BrowserClient extends Client {\n  /**\n   * Creates a new Browser SDK instance.\n   *\n   * @param options Configuration options for this SDK.\n   */\n  constructor(options) {\n    const opts = applyDefaultOptions(options);\n    const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n    applySdkMetadata(opts, \"browser\", [\"browser\"], sdkSource);\n    super(opts);\n    const { userInfo } = this.getDataCollectionOptions();\n    if (opts._metadata?.sdk) {\n      opts._metadata.sdk.settings = {\n        // Only allow IP inferral by Relay if the user opted in via dataCollection\n        infer_ip: userInfo ? \"auto\" : \"never\",\n        // purposefully allowing already passed settings to override the default\n        ...opts._metadata.sdk.settings\n      };\n    }\n    const { sendClientReports } = this._options;\n    if (WINDOW.document) {\n      WINDOW.document.addEventListener(\"visibilitychange\", () => {\n        if (WINDOW.document.visibilityState === \"hidden\") {\n          if (sendClientReports) {\n            this._flushOutcomes();\n          }\n          queueMicrotask(() => {\n            void this.flush();\n          });\n        }\n      });\n    }\n    if (userInfo) {\n      this.on(\"beforeSendSession\", addAutoIpAddressToSession);\n    }\n  }\n  /**\n   * @inheritDoc\n   */\n  eventFromException(exception, hint) {\n    return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n  }\n  /**\n   * @inheritDoc\n   */\n  eventFromMessage(message, level = \"info\", hint) {\n    return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n  }\n  /**\n   * @inheritDoc\n   */\n  _prepareEvent(event, hint, currentScope, isolationScope) {\n    event.platform = event.platform || \"javascript\";\n    return super._prepareEvent(event, hint, currentScope, isolationScope);\n  }\n}\nfunction applyDefaultOptions(optionsArg) {\n  return {\n    release: typeof __SENTRY_RELEASE__ === \"string\" ? __SENTRY_RELEASE__ : WINDOW.SENTRY_RELEASE?.id,\n    // This supports the variable that sentry-webpack-plugin injects\n    sendClientReports: true,\n    // We default this to true, as it is the safer scenario\n    parentSpanIsAlwaysRootSpan: true,\n    ...optionsArg\n  };\n}\n\nexport { BrowserClient, applyDefaultOptions };\n//# sourceMappingURL=client.js.map\n","const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { GLOBAL_OBJ } from '@sentry/core';\n\nconst WINDOW = GLOBAL_OBJ;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","const getRating = (value, thresholds) => {\n  if (value > thresholds[1]) {\n    return \"poor\";\n  }\n  if (value > thresholds[0]) {\n    return \"needs-improvement\";\n  }\n  return \"good\";\n};\nconst bindReporter = (callback, metric, thresholds, reportAllChanges) => {\n  let prevValue;\n  let delta;\n  return (forceReport) => {\n    if (metric.value >= 0) {\n      if (forceReport || reportAllChanges) {\n        delta = metric.value - (prevValue ?? 0);\n        if (delta || prevValue === void 0) {\n          prevValue = metric.value;\n          metric.delta = delta;\n          metric.rating = getRating(metric.value, thresholds);\n          callback(metric);\n        }\n      }\n    }\n  };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","import { WINDOW } from '../../../types.js';\n\nconst getNavigationEntry = (checkResponseStart = true) => {\n  const navigationEntry = WINDOW.performance?.getEntriesByType?.(\"navigation\")[0];\n  if (\n    // sentry-specific change:\n    // We don't want to check for responseStart for our own use of `getNavigationEntry`\n    !checkResponseStart || navigationEntry && navigationEntry.responseStart > 0 && navigationEntry.responseStart < performance.now()\n  ) {\n    return navigationEntry;\n  }\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","import { getNavigationEntry } from './getNavigationEntry.js';\n\nconst getActivationStart = () => {\n  const navEntry = getNavigationEntry();\n  return navEntry?.activationStart ?? 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","import { WINDOW } from '../../../types.js';\n\nfunction addPageListener(type, listener, options) {\n  if (WINDOW.document) {\n    WINDOW.addEventListener(type, listener, options);\n  }\n}\nfunction removePageListener(type, listener, options) {\n  if (WINDOW.document) {\n    WINDOW.removeEventListener(type, listener, options);\n  }\n}\n\nexport { addPageListener, removePageListener };\n//# sourceMappingURL=globalListeners.js.map\n","import { WINDOW } from '../../../types.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { addPageListener, removePageListener } from './globalListeners.js';\n\nlet firstHiddenTime = -1;\nconst onHiddenFunctions = /* @__PURE__ */ new Set();\nconst initHiddenTime = () => {\n  return WINDOW.document?.visibilityState === \"hidden\" && !WINDOW.document?.prerendering ? 0 : Infinity;\n};\nconst onVisibilityUpdate = (event) => {\n  if (isPageHidden(event) && firstHiddenTime > -1) {\n    if (event.type === \"visibilitychange\" || event.type === \"pagehide\") {\n      for (const onHiddenFunction of onHiddenFunctions) {\n        onHiddenFunction();\n      }\n    }\n    if (!isFinite(firstHiddenTime)) {\n      firstHiddenTime = event.type === \"visibilitychange\" ? event.timeStamp : 0;\n      removePageListener(\"prerenderingchange\", onVisibilityUpdate, true);\n    }\n  }\n};\nconst getVisibilityWatcher = () => {\n  if (WINDOW.document && firstHiddenTime < 0) {\n    const activationStart = getActivationStart();\n    const firstVisibilityStateHiddenTime = !WINDOW.document.prerendering ? globalThis.performance.getEntriesByType(\"visibility-state\").filter((e) => e.name === \"hidden\" && e.startTime > activationStart)[0]?.startTime : void 0;\n    firstHiddenTime = firstVisibilityStateHiddenTime ?? initHiddenTime();\n    addPageListener(\"visibilitychange\", onVisibilityUpdate, true);\n    addPageListener(\"pagehide\", onVisibilityUpdate, true);\n    addPageListener(\"prerenderingchange\", onVisibilityUpdate, true);\n  }\n  return {\n    get firstHiddenTime() {\n      return firstHiddenTime;\n    },\n    onHidden(cb) {\n      onHiddenFunctions.add(cb);\n    }\n  };\n};\nfunction isPageHidden(event) {\n  return event.type === \"pagehide\" || WINDOW.document?.visibilityState === \"hidden\";\n}\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","const generateUniqueID = () => {\n  return `v5-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import { WINDOW } from '../../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\nconst initMetric = (name, value = -1) => {\n  const navEntry = getNavigationEntry();\n  let navigationType = \"navigate\";\n  if (navEntry) {\n    if (WINDOW.document?.prerendering || getActivationStart() > 0) {\n      navigationType = \"prerender\";\n    } else if (WINDOW.document?.wasDiscarded) {\n      navigationType = \"restore\";\n    } else if (navEntry.type) {\n      navigationType = navEntry.type.replace(/_/g, \"-\");\n    }\n  }\n  const entries = [];\n  return {\n    name,\n    value,\n    rating: \"good\",\n    // If needed, will be updated when reported. `const` to keep the type from widening to `string`.\n    delta: 0,\n    entries,\n    id: generateUniqueID(),\n    navigationType\n  };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","const instanceMap = /* @__PURE__ */ new WeakMap();\nfunction initUnique(identityObj, ClassObj) {\n  try {\n    if (!instanceMap.get(identityObj)) {\n      instanceMap.set(identityObj, new ClassObj());\n    }\n    return instanceMap.get(identityObj);\n  } catch (_e) {\n    return new ClassObj();\n  }\n}\n\nexport { initUnique };\n//# sourceMappingURL=initUnique.js.map\n","class LayoutShiftManager {\n  constructor() {\n    // oxlint-disable-next-line sdk/no-class-field-initializers\n    this._sessionValue = 0;\n    // oxlint-disable-next-line sdk/no-class-field-initializers\n    this._sessionEntries = [];\n  }\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _processEntry(entry) {\n    if (entry.hadRecentInput) return;\n    const firstSessionEntry = this._sessionEntries[0];\n    const lastSessionEntry = this._sessionEntries[this._sessionEntries.length - 1];\n    if (this._sessionValue && firstSessionEntry && lastSessionEntry && entry.startTime - lastSessionEntry.startTime < 1e3 && entry.startTime - firstSessionEntry.startTime < 5e3) {\n      this._sessionValue += entry.value;\n      this._sessionEntries.push(entry);\n    } else {\n      this._sessionValue = entry.value;\n      this._sessionEntries = [entry];\n    }\n    this._onAfterProcessingUnexpectedShift?.(entry);\n  }\n}\n\nexport { LayoutShiftManager };\n//# sourceMappingURL=LayoutShiftManager.js.map\n","const observe = (type, callback, opts = {}) => {\n  try {\n    if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n      const po = new PerformanceObserver((list) => {\n        Promise.resolve().then(() => {\n          callback(list.getEntries());\n        });\n      });\n      po.observe({ type, buffered: true, ...opts });\n      return po;\n    }\n  } catch {\n  }\n  return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","const runOnce = (cb) => {\n  let called = false;\n  return () => {\n    if (!called) {\n      cb();\n      called = true;\n    }\n  };\n};\n\nexport { runOnce };\n//# sourceMappingURL=runOnce.js.map\n","import { WINDOW } from '../../../types.js';\n\nconst whenActivated = (callback) => {\n  if (WINDOW.document?.prerendering) {\n    addEventListener(\"prerenderingchange\", () => callback(), true);\n  } else {\n    callback();\n  }\n};\n\nexport { whenActivated };\n//# sourceMappingURL=whenActivated.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\nconst FCPThresholds = [1800, 3e3];\nconst onFCP = (onReport, opts = {}) => {\n  whenActivated(() => {\n    const visibilityWatcher = getVisibilityWatcher();\n    const metric = initMetric(\"FCP\");\n    let report;\n    const handleEntries = (entries) => {\n      for (const entry of entries) {\n        if (entry.name === \"first-contentful-paint\") {\n          po.disconnect();\n          if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n            metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n            metric.entries.push(entry);\n            report(true);\n          }\n        }\n      }\n    };\n    const po = observe(\"paint\", handleEntries);\n    if (po) {\n      report = bindReporter(onReport, metric, FCPThresholds, opts.reportAllChanges);\n    }\n  });\n};\n\nexport { FCPThresholds, onFCP };\n//# sourceMappingURL=onFCP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { initUnique } from './lib/initUnique.js';\nimport { LayoutShiftManager } from './lib/LayoutShiftManager.js';\nimport { observe } from './lib/observe.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { onFCP } from './onFCP.js';\n\nconst CLSThresholds = [0.1, 0.25];\nconst onCLS = (onReport, opts = {}) => {\n  onFCP(\n    runOnce(() => {\n      const metric = initMetric(\"CLS\", 0);\n      let report;\n      const visibilityWatcher = getVisibilityWatcher();\n      const layoutShiftManager = initUnique(opts, LayoutShiftManager);\n      const handleEntries = (entries) => {\n        for (const entry of entries) {\n          layoutShiftManager._processEntry(entry);\n        }\n        if (layoutShiftManager._sessionValue > metric.value) {\n          metric.value = layoutShiftManager._sessionValue;\n          metric.entries = layoutShiftManager._sessionEntries;\n          report();\n        }\n      };\n      const po = observe(\"layout-shift\", handleEntries);\n      if (po) {\n        report = bindReporter(onReport, metric, CLSThresholds, opts.reportAllChanges);\n        visibilityWatcher.onHidden(() => {\n          handleEntries(po.takeRecords());\n          report(true);\n        });\n        WINDOW?.setTimeout?.(report);\n      }\n    })\n  );\n};\n\nexport { CLSThresholds, onCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { observe } from '../observe.js';\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\nconst updateEstimate = (entries) => {\n  entries.forEach((e) => {\n    if (e.interactionId) {\n      minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n      maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n      interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n    }\n  });\n};\nlet po;\nconst getInteractionCount = () => {\n  return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\nconst initInteractionCountPolyfill = () => {\n  if (\"interactionCount\" in performance || po) return;\n  po = observe(\"event\", updateEstimate, {\n    type: \"event\",\n    buffered: true,\n    durationThreshold: 0\n  });\n};\n\nexport { getInteractionCount, initInteractionCountPolyfill };\n//# sourceMappingURL=interactionCountPolyfill.js.map\n","import { getInteractionCount } from './polyfills/interactionCountPolyfill.js';\n\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\nlet prevInteractionCount = 0;\nconst getInteractionCountForNavigation = () => {\n  return getInteractionCount() - prevInteractionCount;\n};\nclass InteractionManager {\n  constructor() {\n    /**\n     * A list of longest interactions on the page (by latency) sorted so the\n     * longest one is first. The list is at most MAX_INTERACTIONS_TO_CONSIDER\n     * long.\n     */\n    // oxlint-disable-next-line sdk/no-class-field-initializers\n    this._longestInteractionList = [];\n    /**\n     * A mapping of longest interactions by their interaction ID.\n     * This is used for faster lookup.\n     */\n    // oxlint-disable-next-line sdk/no-class-field-initializers\n    this._longestInteractionMap = /* @__PURE__ */ new Map();\n  }\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility, jsdoc/require-jsdoc\n  _resetInteractions() {\n    prevInteractionCount = getInteractionCount();\n    this._longestInteractionList.length = 0;\n    this._longestInteractionMap.clear();\n  }\n  /**\n   * Returns the estimated p98 longest interaction based on the stored\n   * interaction candidates and the interaction count for the current page.\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _estimateP98LongestInteraction() {\n    const candidateInteractionIndex = Math.min(\n      this._longestInteractionList.length - 1,\n      Math.floor(getInteractionCountForNavigation() / 50)\n    );\n    return this._longestInteractionList[candidateInteractionIndex];\n  }\n  /**\n   * Takes a performance entry and adds it to the list of worst interactions\n   * if its duration is long enough to make it among the worst. If the\n   * entry is part of an existing interaction, it is merged and the latency\n   * and entries list is updated as needed.\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _processEntry(entry) {\n    this._onBeforeProcessingEntry?.(entry);\n    if (!(entry.interactionId || entry.entryType === \"first-input\")) return;\n    const minLongestInteraction = this._longestInteractionList.at(-1);\n    let interaction = this._longestInteractionMap.get(entry.interactionId);\n    if (interaction || this._longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER || // If the above conditions are false, `minLongestInteraction` will be set.\n    entry.duration > minLongestInteraction._latency) {\n      if (interaction) {\n        if (entry.duration > interaction._latency) {\n          interaction.entries = [entry];\n          interaction._latency = entry.duration;\n        } else if (entry.duration === interaction._latency && entry.startTime === interaction.entries[0].startTime) {\n          interaction.entries.push(entry);\n        }\n      } else {\n        interaction = {\n          id: entry.interactionId,\n          entries: [entry],\n          _latency: entry.duration\n        };\n        this._longestInteractionMap.set(interaction.id, interaction);\n        this._longestInteractionList.push(interaction);\n      }\n      this._longestInteractionList.sort((a, b) => b._latency - a._latency);\n      if (this._longestInteractionList.length > MAX_INTERACTIONS_TO_CONSIDER) {\n        const removedInteractions = this._longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER);\n        for (const interaction2 of removedInteractions) {\n          this._longestInteractionMap.delete(interaction2.id);\n        }\n      }\n      this._onAfterProcessingINPCandidate?.(interaction);\n    }\n  }\n}\n\nexport { InteractionManager };\n//# sourceMappingURL=InteractionManager.js.map\n","import { WINDOW } from '../../../types.js';\nimport { addPageListener, removePageListener } from './globalListeners.js';\nimport { runOnce } from './runOnce.js';\n\nconst whenIdleOrHidden = (cb) => {\n  const rIC = WINDOW.requestIdleCallback || WINDOW.setTimeout;\n  if (WINDOW.document?.visibilityState === \"hidden\") {\n    cb();\n  } else {\n    cb = runOnce(cb);\n    addPageListener(\"visibilitychange\", cb, { once: true, capture: true });\n    addPageListener(\"pagehide\", cb, { once: true, capture: true });\n    rIC(() => {\n      cb();\n      removePageListener(\"visibilitychange\", cb, { capture: true });\n      removePageListener(\"pagehide\", cb, { capture: true });\n    });\n  }\n};\n\nexport { whenIdleOrHidden };\n//# sourceMappingURL=whenIdleOrHidden.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { initUnique } from './lib/initUnique.js';\nimport { InteractionManager } from './lib/InteractionManager.js';\nimport { observe } from './lib/observe.js';\nimport { initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill.js';\nimport { whenActivated } from './lib/whenActivated.js';\nimport { whenIdleOrHidden } from './lib/whenIdleOrHidden.js';\n\nconst INPThresholds = [200, 500];\nconst DEFAULT_DURATION_THRESHOLD = 40;\nconst onINP = (onReport, opts = {}) => {\n  if (!(globalThis.PerformanceEventTiming && \"interactionId\" in PerformanceEventTiming.prototype)) {\n    return;\n  }\n  const visibilityWatcher = getVisibilityWatcher();\n  whenActivated(() => {\n    initInteractionCountPolyfill();\n    const metric = initMetric(\"INP\");\n    let report;\n    const interactionManager = initUnique(opts, InteractionManager);\n    const handleEntries = (entries) => {\n      whenIdleOrHidden(() => {\n        for (const entry of entries) {\n          interactionManager._processEntry(entry);\n        }\n        const inp = interactionManager._estimateP98LongestInteraction();\n        if (inp && inp._latency !== metric.value) {\n          metric.value = inp._latency;\n          metric.entries = inp.entries;\n          report();\n        }\n      });\n    };\n    const po = observe(\"event\", handleEntries, {\n      // Event Timing entries have their durations rounded to the nearest 8ms,\n      // so a duration of 40ms would be any event that spans 2.5 or more frames\n      // at 60Hz. This threshold is chosen to strike a balance between usefulness\n      // and performance. Running this callback for any interaction that spans\n      // just one or two frames is likely not worth the insight that could be\n      // gained.\n      durationThreshold: opts.durationThreshold ?? DEFAULT_DURATION_THRESHOLD\n    });\n    report = bindReporter(onReport, metric, INPThresholds, opts.reportAllChanges);\n    if (po) {\n      po.observe({ type: \"first-input\", buffered: true });\n      visibilityWatcher.onHidden(() => {\n        handleEntries(po.takeRecords());\n        report(true);\n      });\n    }\n  });\n};\n\nexport { INPThresholds, onINP };\n//# sourceMappingURL=getINP.js.map\n","class LCPEntryManager {\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility, jsdoc/require-jsdoc\n  _processEntry(entry) {\n    this._onBeforeProcessingEntry?.(entry);\n  }\n}\n\nexport { LCPEntryManager };\n//# sourceMappingURL=LCPEntryManager.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { addPageListener, removePageListener } from './lib/globalListeners.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { initUnique } from './lib/initUnique.js';\nimport { LCPEntryManager } from './lib/LCPEntryManager.js';\nimport { observe } from './lib/observe.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\nimport { whenIdleOrHidden } from './lib/whenIdleOrHidden.js';\n\nconst LCPThresholds = [2500, 4e3];\nconst onLCP = (onReport, opts = {}) => {\n  whenActivated(() => {\n    const visibilityWatcher = getVisibilityWatcher();\n    const metric = initMetric(\"LCP\");\n    let report;\n    const lcpEntryManager = initUnique(opts, LCPEntryManager);\n    const handleEntries = (entries) => {\n      if (!opts.reportAllChanges) {\n        entries = entries.slice(-1);\n      }\n      for (const entry of entries) {\n        lcpEntryManager._processEntry(entry);\n        if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n          metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n          metric.entries = [entry];\n          report();\n        }\n      }\n    };\n    const po = observe(\"largest-contentful-paint\", handleEntries);\n    if (po) {\n      report = bindReporter(onReport, metric, LCPThresholds, opts.reportAllChanges);\n      const stopListening = runOnce(() => {\n        handleEntries(po.takeRecords());\n        po.disconnect();\n        report(true);\n      });\n      const stopListeningWrapper = (event) => {\n        if (event.isTrusted) {\n          whenIdleOrHidden(stopListening);\n          removePageListener(event.type, stopListeningWrapper, {\n            capture: true\n          });\n        }\n      };\n      for (const type of [\"keydown\", \"click\", \"visibilitychange\"]) {\n        addPageListener(type, stopListeningWrapper, {\n          capture: true\n        });\n      }\n    }\n  });\n};\n\nexport { LCPThresholds, onLCP };\n//# sourceMappingURL=getLCP.js.map\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getNavigationEntry } from './lib/getNavigationEntry.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\nconst TTFBThresholds = [800, 1800];\nconst whenReady = (callback) => {\n  if (WINDOW.document?.prerendering) {\n    whenActivated(() => whenReady(callback));\n  } else if (WINDOW.document?.readyState !== \"complete\") {\n    addEventListener(\"load\", () => whenReady(callback), true);\n  } else {\n    setTimeout(callback);\n  }\n};\nconst onTTFB = (onReport, opts = {}) => {\n  const metric = initMetric(\"TTFB\");\n  const report = bindReporter(onReport, metric, TTFBThresholds, opts.reportAllChanges);\n  whenReady(() => {\n    const navigationEntry = getNavigationEntry();\n    if (navigationEntry) {\n      metric.value = Math.max(navigationEntry.responseStart - getActivationStart(), 0);\n      metric.entries = [navigationEntry];\n      report(true);\n    }\n  });\n};\n\nexport { TTFBThresholds, onTTFB };\n//# sourceMappingURL=onTTFB.js.map\n","import { debug, getFunctionName } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { onCLS } from './web-vitals/getCLS.js';\nimport { onINP } from './web-vitals/getINP.js';\nimport { onLCP } from './web-vitals/getLCP.js';\nimport { observe } from './web-vitals/lib/observe.js';\nimport { onTTFB } from './web-vitals/onTTFB.js';\n\nconst handlers = {};\nconst instrumented = {};\nlet _previousCls;\nlet _previousLcp;\nlet _previousTtfb;\nlet _previousInp;\nfunction addClsInstrumentationHandler(callback, stopOnCallback = false) {\n  return addMetricObserver(\"cls\", callback, instrumentCls, _previousCls, stopOnCallback);\n}\nfunction addLcpInstrumentationHandler(callback, stopOnCallback = false) {\n  return addMetricObserver(\"lcp\", callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\nfunction addTtfbInstrumentationHandler(callback) {\n  return addMetricObserver(\"ttfb\", callback, instrumentTtfb, _previousTtfb);\n}\nfunction addInpInstrumentationHandler(callback) {\n  return addMetricObserver(\"inp\", callback, instrumentInp, _previousInp);\n}\nfunction addPerformanceInstrumentationHandler(type, callback) {\n  addHandler(type, callback);\n  if (!instrumented[type]) {\n    instrumentPerformanceObserver(type);\n    instrumented[type] = true;\n  }\n  return getCleanupCallback(type, callback);\n}\nfunction triggerHandlers(type, data) {\n  const typeHandlers = handlers[type];\n  if (!typeHandlers?.length) {\n    return;\n  }\n  for (const handler of typeHandlers) {\n    try {\n      handler(data);\n    } catch (e) {\n      DEBUG_BUILD && debug.error(\n        `Error while triggering instrumentation handler.\nType: ${type}\nName: ${getFunctionName(handler)}\nError:`,\n        e\n      );\n    }\n  }\n}\nfunction instrumentCls() {\n  return onCLS(\n    (metric) => {\n      triggerHandlers(\"cls\", {\n        metric\n      });\n      _previousCls = metric;\n    },\n    // We want the callback to be called whenever the CLS value updates.\n    // By default, the callback is only called when the tab goes to the background.\n    { reportAllChanges: true }\n  );\n}\nfunction instrumentLcp() {\n  return onLCP(\n    (metric) => {\n      triggerHandlers(\"lcp\", {\n        metric\n      });\n      _previousLcp = metric;\n    },\n    // We want the callback to be called whenever the LCP value updates.\n    // By default, the callback is only called when the tab goes to the background.\n    { reportAllChanges: true }\n  );\n}\nfunction instrumentTtfb() {\n  return onTTFB((metric) => {\n    triggerHandlers(\"ttfb\", {\n      metric\n    });\n    _previousTtfb = metric;\n  });\n}\nfunction instrumentInp() {\n  return onINP((metric) => {\n    triggerHandlers(\"inp\", {\n      metric\n    });\n    _previousInp = metric;\n  });\n}\nfunction addMetricObserver(type, callback, instrumentFn, previousValue, stopOnCallback = false) {\n  addHandler(type, callback);\n  let stopListening;\n  if (!instrumented[type]) {\n    stopListening = instrumentFn();\n    instrumented[type] = true;\n  }\n  if (previousValue) {\n    callback({ metric: previousValue });\n  }\n  return getCleanupCallback(type, callback, stopOnCallback ? stopListening : void 0);\n}\nfunction instrumentPerformanceObserver(type) {\n  const options = {};\n  if (type === \"event\") {\n    options.durationThreshold = 0;\n  }\n  observe(\n    type,\n    (entries) => {\n      triggerHandlers(type, { entries });\n    },\n    options\n  );\n}\nfunction addHandler(type, handler) {\n  handlers[type] = handlers[type] || [];\n  handlers[type].push(handler);\n}\nfunction getCleanupCallback(type, callback, stopListening) {\n  return () => {\n    if (stopListening) {\n      stopListening();\n    }\n    const typeHandlers = handlers[type];\n    if (!typeHandlers) {\n      return;\n    }\n    const index = typeHandlers.indexOf(callback);\n    if (index !== -1) {\n      typeHandlers.splice(index, 1);\n    }\n  };\n}\nfunction isPerformanceEventTiming(entry) {\n  return \"duration\" in entry;\n}\n\nexport { addClsInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming };\n//# sourceMappingURL=instrument.js.map\n","import { isString } from '@sentry/core';\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\nconst accessors = {};\ntry {\n  if (typeof Node !== \"undefined\") {\n    accessors.parentNode = Object.getOwnPropertyDescriptor(Node.prototype, \"parentNode\").get;\n  }\n  if (typeof Element !== \"undefined\") {\n    accessors.tagName = Object.getOwnPropertyDescriptor(Element.prototype, \"tagName\").get;\n    accessors.id = Object.getOwnPropertyDescriptor(Element.prototype, \"id\").get;\n    accessors.className = Object.getOwnPropertyDescriptor(Element.prototype, \"className\").get;\n    accessors.getAttribute = Element.prototype.getAttribute;\n  }\n  if (typeof HTMLElement !== \"undefined\") {\n    accessors.dataset = Object.getOwnPropertyDescriptor(HTMLElement.prototype, \"dataset\").get;\n  }\n} catch {\n}\nfunction _safeRead(el, prop, arg) {\n  const fn = accessors[prop];\n  if (fn) {\n    try {\n      return fn.call(el, arg);\n    } catch {\n    }\n  }\n  const val = el[prop];\n  return typeof val === \"function\" ? val.call(el, arg) : val;\n}\nfunction htmlTreeAsString(elem, options = {}) {\n  if (!elem) {\n    return \"<unknown>\";\n  }\n  try {\n    let currentElem = elem;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = \" > \";\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = !Array.isArray(options) && options.maxStringLength || DEFAULT_MAX_STRING_LENGTH;\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      if (nextStr === \"html\" || height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength) {\n        break;\n      }\n      out.push(nextStr);\n      len += nextStr.length;\n      currentElem = _safeRead(currentElem, \"parentNode\");\n    }\n    return out.reverse().join(separator);\n  } catch {\n    return \"<unknown>\";\n  }\n}\nfunction _htmlElementAsString(el, keyAttrs) {\n  const out = [];\n  const tagName = _safeRead(el, \"tagName\");\n  if (!tagName) {\n    return \"\";\n  }\n  if (typeof HTMLElement !== \"undefined\") {\n    if (el instanceof HTMLElement) {\n      const dataset = _safeRead(el, \"dataset\");\n      if (dataset) {\n        if (dataset[\"sentryComponent\"]) {\n          return dataset[\"sentryComponent\"];\n        }\n        if (dataset[\"sentryElement\"]) {\n          return dataset[\"sentryElement\"];\n        }\n      }\n    }\n  }\n  out.push(tagName.toLowerCase());\n  const keyAttrPairs = keyAttrs?.length ? keyAttrs.filter((keyAttr) => _safeRead(el, \"getAttribute\", keyAttr)).map((keyAttr) => [keyAttr, _safeRead(el, \"getAttribute\", keyAttr)]) : null;\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach((keyAttrPair) => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    const id = _safeRead(el, \"id\");\n    if (id) {\n      out.push(`#${id}`);\n    }\n    const className = _safeRead(el, \"className\");\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  for (const k of [\"aria-label\", \"type\", \"name\", \"title\", \"alt\"]) {\n    const attr = _safeRead(el, \"getAttribute\", k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n  return out.join(\"\");\n}\n\nexport { htmlTreeAsString };\n//# sourceMappingURL=htmlTreeAsString.js.map\n","import { WINDOW } from '../../../types.js';\nimport { addPageListener } from './globalListeners.js';\n\nconst onHidden = (cb) => {\n  const onHiddenOrPageHide = (event) => {\n    if (event.type === \"pagehide\" || WINDOW.document?.visibilityState === \"hidden\") {\n      cb(event);\n    }\n  };\n  addPageListener(\"visibilitychange\", onHiddenOrPageHide, { capture: true, once: true });\n  addPageListener(\"pagehide\", onHiddenOrPageHide, { capture: true, once: true });\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { spanToJSON, withActiveSpan, startInactiveSpan, getClient, getCurrentScope } from '@sentry/core';\nimport { WINDOW } from '../types.js';\nimport { onHidden } from './web-vitals/lib/onHidden.js';\n\nfunction isMeasurementValue(value) {\n  return typeof value === \"number\" && isFinite(value);\n}\nfunction startAndEndSpan(parentSpan, startTimeInSeconds, endTime, { ...ctx }) {\n  const parentStartTime = spanToJSON(parentSpan).start_timestamp;\n  if (parentStartTime && parentStartTime > startTimeInSeconds) {\n    if (typeof parentSpan.updateStartTime === \"function\") {\n      parentSpan.updateStartTime(startTimeInSeconds);\n    }\n  }\n  return withActiveSpan(parentSpan, () => {\n    const span = startInactiveSpan({\n      startTime: startTimeInSeconds,\n      ...ctx\n    });\n    if (span) {\n      span.end(endTime);\n    }\n    return span;\n  });\n}\nfunction startStandaloneWebVitalSpan(options) {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n  const { name, transaction, attributes: passedAttributes, startTime } = options;\n  const { release, environment } = client.getOptions();\n  const { userInfo } = client.getDataCollectionOptions();\n  const replay = client.getIntegrationByName(\"Replay\");\n  const replayId = replay?.getReplayId();\n  const scope = getCurrentScope();\n  const user = scope.getUser();\n  const userDisplay = user !== void 0 ? user.email || user.id || user.ip_address : void 0;\n  let profileId;\n  try {\n    profileId = scope.getScopeData().contexts.profile.profile_id;\n  } catch {\n  }\n  const attributes = {\n    release,\n    environment,\n    user: userDisplay || void 0,\n    profile_id: profileId || void 0,\n    replay_id: replayId || void 0,\n    transaction,\n    // Web vital score calculation relies on the user agent to account for different\n    // browsers setting different thresholds for what is considered a good/meh/bad value.\n    // For example: Chrome vs. Chrome Mobile\n    \"user_agent.original\": WINDOW.navigator?.userAgent,\n    // This tells Sentry to infer the IP address from the request\n    \"client.address\": userInfo ? \"{{auto}}\" : void 0,\n    ...passedAttributes\n  };\n  return startInactiveSpan({\n    name,\n    attributes,\n    startTime,\n    experimental: {\n      standalone: true\n    }\n  });\n}\nfunction getBrowserPerformanceAPI() {\n  return WINDOW.addEventListener && WINDOW.performance;\n}\nfunction msToSec(time) {\n  return time / 1e3;\n}\nfunction extractNetworkProtocol(nextHopProtocol) {\n  let name = \"unknown\";\n  let version = \"unknown\";\n  let _name = \"\";\n  for (const char of nextHopProtocol) {\n    if (char === \"/\") {\n      [name, version] = nextHopProtocol.split(\"/\");\n      break;\n    }\n    if (!isNaN(Number(char))) {\n      name = _name === \"h\" ? \"http\" : _name;\n      version = nextHopProtocol.split(_name)[1];\n      break;\n    }\n    _name += char;\n  }\n  if (_name === nextHopProtocol) {\n    name = _name;\n  }\n  return { name, version };\n}\nfunction supportsWebVital(entryType) {\n  try {\n    return PerformanceObserver.supportedEntryTypes.includes(entryType);\n  } catch {\n    return false;\n  }\n}\nfunction listenForWebVitalReportEvents(client, collectorCallback) {\n  let pageloadSpan;\n  let collected = false;\n  function _runCollectorCallbackOnce(event) {\n    if (!collected && pageloadSpan) {\n      collectorCallback(event, pageloadSpan.spanContext().spanId, pageloadSpan);\n    }\n    collected = true;\n  }\n  onHidden(() => {\n    _runCollectorCallbackOnce(\"pagehide\");\n  });\n  const unsubscribeStartNavigation = client.on(\"beforeStartNavigationSpan\", (_, options) => {\n    if (!options?.isRedirect) {\n      _runCollectorCallbackOnce(\"navigation\");\n      unsubscribeStartNavigation();\n      unsubscribeAfterStartPageLoadSpan();\n    }\n  });\n  const unsubscribeAfterStartPageLoadSpan = client.on(\"afterStartPageLoadSpan\", (span) => {\n    pageloadSpan = span;\n    unsubscribeAfterStartPageLoadSpan();\n  });\n}\n\nexport { extractNetworkProtocol, getBrowserPerformanceAPI, isMeasurementValue, listenForWebVitalReportEvents, msToSec, startAndEndSpan, startStandaloneWebVitalSpan, supportsWebVital };\n//# sourceMappingURL=utils.js.map\n","import { debug, browserPerformanceTimeOrigin, timestampInSeconds, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { htmlTreeAsString } from '../htmlTreeAsString.js';\nimport { addClsInstrumentationHandler } from './instrument.js';\nimport { supportsWebVital, listenForWebVitalReportEvents, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nfunction trackClsAsStandaloneSpan(client) {\n  let standaloneCLsValue = 0;\n  let standaloneClsEntry;\n  if (!supportsWebVital(\"layout-shift\")) {\n    return;\n  }\n  const cleanupClsHandler = addClsInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n    standaloneCLsValue = metric.value;\n    standaloneClsEntry = entry;\n  }, true);\n  listenForWebVitalReportEvents(client, (reportEvent, pageloadSpanId) => {\n    _sendStandaloneClsSpan(standaloneCLsValue, standaloneClsEntry, pageloadSpanId, reportEvent);\n    cleanupClsHandler();\n  });\n}\nfunction _sendStandaloneClsSpan(clsValue, entry, pageloadSpanId, reportEvent) {\n  DEBUG_BUILD && debug.log(`Sending CLS span (${clsValue})`);\n  const startTime = entry ? msToSec((browserPerformanceTimeOrigin() || 0) + entry.startTime) : timestampInSeconds();\n  const routeName = getCurrentScope().getScopeData().transactionName;\n  const name = entry ? htmlTreeAsString(entry.sources[0]?.node) : \"Layout shift\";\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.browser.cls\",\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"ui.webvital.cls\",\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: 0,\n    // attach the pageload span id to the CLS span so that we can link them in the UI\n    \"sentry.pageload.span_id\": pageloadSpanId,\n    // describes what triggered the web vital to be reported\n    \"sentry.report_event\": reportEvent\n  };\n  if (entry?.sources) {\n    entry.sources.forEach((source, index) => {\n      attributes[`cls.source.${index + 1}`] = htmlTreeAsString(source.node);\n    });\n  }\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime\n  });\n  if (span) {\n    span.addEvent(\"cls\", {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: \"\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: clsValue\n    });\n    span.end(startTime);\n  }\n}\n\nexport { _sendStandaloneClsSpan, trackClsAsStandaloneSpan };\n//# sourceMappingURL=cls.js.map\n","import { debug, browserPerformanceTimeOrigin, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { htmlTreeAsString } from '../htmlTreeAsString.js';\nimport { addLcpInstrumentationHandler } from './instrument.js';\nimport { supportsWebVital, listenForWebVitalReportEvents, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nconst MAX_PLAUSIBLE_LCP_DURATION = 6e4;\nfunction isValidLcpMetric(lcpValue) {\n  return lcpValue != null && lcpValue > 0 && lcpValue <= MAX_PLAUSIBLE_LCP_DURATION;\n}\nfunction trackLcpAsStandaloneSpan(client) {\n  let standaloneLcpValue = 0;\n  let standaloneLcpEntry;\n  if (!supportsWebVital(\"largest-contentful-paint\")) {\n    return;\n  }\n  const cleanupLcpHandler = addLcpInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry || !isValidLcpMetric(metric.value)) {\n      return;\n    }\n    standaloneLcpValue = metric.value;\n    standaloneLcpEntry = entry;\n  }, true);\n  listenForWebVitalReportEvents(client, (reportEvent, pageloadSpanId) => {\n    _sendStandaloneLcpSpan(standaloneLcpValue, standaloneLcpEntry, pageloadSpanId, reportEvent);\n    cleanupLcpHandler();\n  });\n}\nfunction _sendStandaloneLcpSpan(lcpValue, entry, pageloadSpanId, reportEvent) {\n  if (!isValidLcpMetric(lcpValue)) {\n    return;\n  }\n  DEBUG_BUILD && debug.log(`Sending LCP span (${lcpValue})`);\n  const startTime = msToSec((browserPerformanceTimeOrigin() || 0) + (entry?.startTime || 0));\n  const routeName = getCurrentScope().getScopeData().transactionName;\n  const name = entry ? htmlTreeAsString(entry.element) : \"Largest contentful paint\";\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.browser.lcp\",\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"ui.webvital.lcp\",\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: 0,\n    // LCP is a point-in-time metric\n    // attach the pageload span id to the LCP span so that we can link them in the UI\n    \"sentry.pageload.span_id\": pageloadSpanId,\n    // describes what triggered the web vital to be reported\n    \"sentry.report_event\": reportEvent\n  };\n  if (entry) {\n    entry.element && (attributes[\"lcp.element\"] = htmlTreeAsString(entry.element));\n    entry.id && (attributes[\"lcp.id\"] = entry.id);\n    entry.url && (attributes[\"lcp.url\"] = entry.url);\n    entry.loadTime != null && (attributes[\"lcp.loadTime\"] = entry.loadTime);\n    entry.renderTime != null && (attributes[\"lcp.renderTime\"] = entry.renderTime);\n    entry.size != null && (attributes[\"lcp.size\"] = entry.size);\n  }\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime\n  });\n  if (span) {\n    span.addEvent(\"lcp\", {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: \"millisecond\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: lcpValue\n    });\n    span.end(startTime);\n  }\n}\n\nexport { MAX_PLAUSIBLE_LCP_DURATION, _sendStandaloneLcpSpan, isValidLcpMetric, trackLcpAsStandaloneSpan };\n//# sourceMappingURL=lcp.js.map\n","import { browserPerformanceTimeOrigin } from '@sentry/core';\nimport { extractNetworkProtocol, getBrowserPerformanceAPI } from './utils.js';\n\nfunction getAbsoluteTime(time) {\n  return time ? ((browserPerformanceTimeOrigin() || performance.timeOrigin) + time) / 1e3 : time;\n}\nfunction resourceTimingToSpanAttributes(resourceTiming) {\n  const timingSpanData = {};\n  if (resourceTiming.nextHopProtocol != void 0) {\n    const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n    timingSpanData[\"network.protocol.version\"] = version;\n    timingSpanData[\"network.protocol.name\"] = name;\n  }\n  if (!(browserPerformanceTimeOrigin() || getBrowserPerformanceAPI()?.timeOrigin)) {\n    return timingSpanData;\n  }\n  return dropUndefinedKeysFromObject({\n    ...timingSpanData,\n    \"http.request.redirect_start\": getAbsoluteTime(resourceTiming.redirectStart),\n    \"http.request.redirect_end\": getAbsoluteTime(resourceTiming.redirectEnd),\n    \"http.request.worker_start\": getAbsoluteTime(resourceTiming.workerStart),\n    \"http.request.fetch_start\": getAbsoluteTime(resourceTiming.fetchStart),\n    \"http.request.domain_lookup_start\": getAbsoluteTime(resourceTiming.domainLookupStart),\n    \"http.request.domain_lookup_end\": getAbsoluteTime(resourceTiming.domainLookupEnd),\n    \"http.request.connect_start\": getAbsoluteTime(resourceTiming.connectStart),\n    \"http.request.secure_connection_start\": getAbsoluteTime(resourceTiming.secureConnectionStart),\n    \"http.request.connection_end\": getAbsoluteTime(resourceTiming.connectEnd),\n    \"http.request.request_start\": getAbsoluteTime(resourceTiming.requestStart),\n    \"http.request.response_start\": getAbsoluteTime(resourceTiming.responseStart),\n    \"http.request.response_end\": getAbsoluteTime(resourceTiming.responseEnd),\n    // For TTFB we actually want the relative time from timeOrigin to responseStart\n    // This way, TTFB always measures the \"first page load\" experience.\n    // see: https://web.dev/articles/ttfb#measure-resource-requests\n    \"http.request.time_to_first_byte\": resourceTiming.responseStart != null ? resourceTiming.responseStart / 1e3 : void 0\n  });\n}\nfunction dropUndefinedKeysFromObject(attrs) {\n  return Object.fromEntries(Object.entries(attrs).filter(([, value]) => value != null));\n}\n\nexport { resourceTimingToSpanAttributes };\n//# sourceMappingURL=resourceTiming.js.map\n","import { browserPerformanceTimeOrigin, spanToJSON, setMeasurement, getActiveSpan, parseUrl, stringMatchesSomePattern, debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, isPrimitive, getComponentName } from '@sentry/core';\nimport { htmlTreeAsString } from '../htmlTreeAsString.js';\nimport { WINDOW } from '../types.js';\nimport { trackClsAsStandaloneSpan } from './cls.js';\nimport { addPerformanceInstrumentationHandler, addLcpInstrumentationHandler, addClsInstrumentationHandler, addTtfbInstrumentationHandler } from './instrument.js';\nimport { trackLcpAsStandaloneSpan, isValidLcpMetric } from './lcp.js';\nimport { resourceTimingToSpanAttributes } from './resourceTiming.js';\nimport { getBrowserPerformanceAPI, msToSec, startAndEndSpan, isMeasurementValue } from './utils.js';\nimport { getActivationStart } from './web-vitals/lib/getActivationStart.js';\nimport { getNavigationEntry } from './web-vitals/lib/getNavigationEntry.js';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { URL_FULL } from '@sentry/conventions/attributes';\n\nconst MAX_INT_AS_BYTES = 2147483647;\nlet _performanceCursor = 0;\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\nfunction startTrackingWebVitals({\n  recordClsStandaloneSpans,\n  recordLcpStandaloneSpans,\n  client\n}) {\n  const performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin()) {\n    if (performance.mark) {\n      WINDOW.performance.mark(\"sentry-tracing-init\");\n    }\n    const lcpCleanupCallback = recordLcpStandaloneSpans ? trackLcpAsStandaloneSpan(client) : recordLcpStandaloneSpans === false ? _trackLCP() : void 0;\n    const clsCleanupCallback = recordClsStandaloneSpans ? trackClsAsStandaloneSpan(client) : recordClsStandaloneSpans === false ? _trackCLS() : void 0;\n    const ttfbCleanupCallback = _trackTtfb();\n    const fpFcpCleanupCallback = _trackFpFcp();\n    return () => {\n      ttfbCleanupCallback();\n      fpFcpCleanupCallback();\n      lcpCleanupCallback?.();\n      clsCleanupCallback?.();\n    };\n  }\n  return () => void 0;\n}\nfunction startTrackingLongTasks() {\n  addPerformanceInstrumentationHandler(\"longtask\", ({ entries }) => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n    const { op: parentOp, start_timestamp: parentStartTimestamp } = spanToJSON(parent);\n    for (const entry of entries) {\n      const startTime = msToSec(browserPerformanceTimeOrigin() + entry.startTime);\n      const duration = msToSec(entry.duration);\n      if (parentOp === \"navigation\" && parentStartTimestamp && startTime < parentStartTimestamp) {\n        continue;\n      }\n      startAndEndSpan(parent, startTime, startTime + duration, {\n        name: \"Main UI thread blocked\",\n        op: \"ui.long-task\",\n        attributes: {\n          [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\"\n        }\n      });\n    }\n  });\n}\nfunction startTrackingLongAnimationFrames() {\n  const observer = new PerformanceObserver((list) => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n    for (const entry of list.getEntries()) {\n      if (!entry.scripts[0]) {\n        continue;\n      }\n      const startTime = msToSec(browserPerformanceTimeOrigin() + entry.startTime);\n      const { start_timestamp: parentStartTimestamp, op: parentOp } = spanToJSON(parent);\n      if (parentOp === \"navigation\" && parentStartTimestamp && startTime < parentStartTimestamp) {\n        continue;\n      }\n      const duration = msToSec(entry.duration);\n      const attributes = {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\"\n      };\n      const initialScript = entry.scripts[0];\n      const { invoker, invokerType, sourceURL, sourceFunctionName, sourceCharPosition } = initialScript;\n      attributes[\"browser.script.invoker\"] = invoker;\n      attributes[\"browser.script.invoker_type\"] = invokerType;\n      if (sourceURL) {\n        attributes[\"code.filepath\"] = sourceURL;\n      }\n      if (sourceFunctionName) {\n        attributes[\"code.function\"] = sourceFunctionName;\n      }\n      if (sourceCharPosition !== -1) {\n        attributes[\"browser.script.source_char_position\"] = sourceCharPosition;\n      }\n      startAndEndSpan(parent, startTime, startTime + duration, {\n        name: \"Main UI thread blocked\",\n        op: \"ui.long-animation-frame\",\n        attributes\n      });\n    }\n  });\n  observer.observe({ type: \"long-animation-frame\", buffered: true });\n}\nfunction startTrackingInteractions() {\n  addPerformanceInstrumentationHandler(\"event\", ({ entries }) => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n    for (const entry of entries) {\n      if (entry.name === \"click\") {\n        const startTime = msToSec(browserPerformanceTimeOrigin() + entry.startTime);\n        const duration = msToSec(entry.duration);\n        const spanOptions = {\n          name: htmlTreeAsString(entry.target),\n          op: `ui.interaction.${entry.name}`,\n          startTime,\n          attributes: {\n            [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\"\n          }\n        };\n        const componentName = getComponentName(entry.target);\n        if (componentName) {\n          spanOptions.attributes[\"ui.component_name\"] = componentName;\n        }\n        startAndEndSpan(parent, startTime, startTime + duration, spanOptions);\n      }\n    }\n  });\n}\nfunction _trackCLS() {\n  return addClsInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n    _measurements[\"cls\"] = { value: metric.value, unit: \"\" };\n    _clsEntry = entry;\n  }, true);\n}\nfunction _trackLCP() {\n  return addLcpInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry || !isValidLcpMetric(metric.value)) {\n      return;\n    }\n    _measurements[\"lcp\"] = { value: metric.value, unit: \"millisecond\" };\n    _lcpEntry = entry;\n  }, true);\n}\nfunction _trackTtfb() {\n  return addTtfbInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n    _measurements[\"ttfb\"] = { value: metric.value, unit: \"millisecond\" };\n  });\n}\nfunction _trackFpFcp() {\n  return addPerformanceInstrumentationHandler(\"paint\", ({ entries }) => {\n    const firstHidden = getVisibilityWatcher();\n    for (const entry of entries) {\n      const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n      if (entry.name === \"first-paint\" && shouldRecord) {\n        _measurements[\"fp\"] = { value: entry.startTime, unit: \"millisecond\" };\n      }\n      if (entry.name === \"first-contentful-paint\" && shouldRecord) {\n        _measurements[\"fcp\"] = { value: entry.startTime, unit: \"millisecond\" };\n      }\n    }\n  });\n}\nfunction addPerformanceEntries(span, options) {\n  const performance = getBrowserPerformanceAPI();\n  const origin = browserPerformanceTimeOrigin();\n  if (!performance?.getEntries || !origin) {\n    return;\n  }\n  const { spanStreamingEnabled, ignorePerformanceApiSpans, ignoreResourceSpans } = options;\n  const timeOrigin = msToSec(origin);\n  const performanceEntries = performance.getEntries();\n  const { op, start_timestamp: transactionStartTime } = spanToJSON(span);\n  performanceEntries.slice(_performanceCursor).forEach((entry) => {\n    const startTime = msToSec(entry.startTime);\n    const duration = msToSec(\n      // Inexplicably, Chrome sometimes emits a negative duration. We need to work around this.\n      // There is a SO post attempting to explain this, but it leaves one with open questions: https://stackoverflow.com/questions/23191918/peformance-getentries-and-negative-duration-display\n      // The way we clamp the value is probably not accurate, since we have observed this happen for things that may take a while to load, like for example the replay worker.\n      // TODO: Investigate why this happens and how to properly mitigate. For now, this is a workaround to prevent transactions being dropped due to negative duration spans.\n      Math.max(0, entry.duration)\n    );\n    if (op === \"navigation\" && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n      return;\n    }\n    switch (entry.entryType) {\n      case \"navigation\": {\n        _addNavigationSpans(span, entry, timeOrigin);\n        break;\n      }\n      case \"mark\":\n      case \"paint\":\n      case \"measure\": {\n        _addMeasureSpans(span, entry, startTime, duration, timeOrigin, ignorePerformanceApiSpans);\n        break;\n      }\n      case \"resource\": {\n        _addResourceSpans(\n          span,\n          entry,\n          entry.name,\n          startTime,\n          duration,\n          timeOrigin,\n          ignoreResourceSpans\n        );\n        break;\n      }\n    }\n  });\n  _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n  _trackNavigator(span, spanStreamingEnabled);\n}\nfunction addWebVitalsToSpan(span, options) {\n  const origin = browserPerformanceTimeOrigin();\n  if (!getBrowserPerformanceAPI()?.getEntries || !origin) {\n    resetWebVitalState();\n    return;\n  }\n  const { spanStreamingEnabled, recordClsOnPageloadSpan, recordLcpOnPageloadSpan } = options;\n  const timeOrigin = msToSec(origin);\n  if (spanToJSON(span).op === \"pageload\") {\n    _addTtfbRequestTimeToMeasurements(_measurements);\n    if (spanStreamingEnabled) {\n      const setAttr = (shortWebVitalName, value, customAttrName) => {\n        const attrKey = customAttrName ?? `browser.web_vital.${shortWebVitalName}.value`;\n        span.setAttribute(attrKey, value);\n        DEBUG_BUILD && debug.log(\"Setting web vital attribute\", { [attrKey]: value }, \"on pageload span\");\n      };\n      [\"ttfb\", \"fp\", \"fcp\"].forEach((measurementName) => {\n        if (_measurements[measurementName]) {\n          setAttr(measurementName, _measurements[measurementName].value);\n        }\n      });\n      if (_measurements[\"ttfb.requestTime\"]) {\n        setAttr(\"ttfb.requestTime\", _measurements[\"ttfb.requestTime\"].value, \"browser.web_vital.ttfb.request_time\");\n      }\n    } else {\n      if (!recordClsOnPageloadSpan) {\n        delete _measurements.cls;\n      }\n      if (!recordLcpOnPageloadSpan) {\n        delete _measurements.lcp;\n      }\n      Object.entries(_measurements).forEach(([measurementName, measurement]) => {\n        setMeasurement(measurementName, measurement.value, measurement.unit, span);\n      });\n      _setWebVitalAttributes(span, options);\n    }\n    span.setAttribute(spanStreamingEnabled ? \"browser.performance.time_origin\" : \"performance.timeOrigin\", timeOrigin);\n    span.setAttribute(\n      spanStreamingEnabled ? \"browser.performance.navigation.activation_start\" : \"performance.activationStart\",\n      getActivationStart()\n    );\n  }\n  resetWebVitalState();\n}\nfunction resetWebVitalState() {\n  _lcpEntry = void 0;\n  _clsEntry = void 0;\n  _measurements = {};\n}\nfunction isReact19MeasureEntry(entry) {\n  if (entry?.entryType !== \"measure\") {\n    return;\n  }\n  try {\n    return entry.detail.devtools.track === \"Components \\u269B\";\n  } catch {\n    return;\n  }\n}\nfunction _addMeasureSpans(span, entry, startTime, duration, timeOrigin, ignorePerformanceApiSpans) {\n  if (isReact19MeasureEntry(entry)) {\n    return;\n  }\n  if ([\"mark\", \"measure\"].includes(entry.entryType) && stringMatchesSomePattern(entry.name, ignorePerformanceApiSpans)) {\n    return;\n  }\n  const navEntry = getNavigationEntry(false);\n  const requestTime = msToSec(navEntry ? navEntry.requestStart : 0);\n  const measureStartTimestamp = timeOrigin + Math.max(startTime, requestTime);\n  const startTimeStamp = timeOrigin + startTime;\n  const measureEndTimestamp = startTimeStamp + duration;\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.resource.browser.metrics\"\n  };\n  if (measureStartTimestamp !== startTimeStamp) {\n    attributes[\"sentry.browser.measure_happened_before_request\"] = true;\n    attributes[\"sentry.browser.measure_start_time\"] = measureStartTimestamp;\n  }\n  _addDetailToSpanAttributes(attributes, entry);\n  if (measureStartTimestamp <= measureEndTimestamp) {\n    startAndEndSpan(span, measureStartTimestamp, measureEndTimestamp, {\n      name: entry.name,\n      op: entry.entryType,\n      attributes\n    });\n  }\n}\nfunction _addDetailToSpanAttributes(attributes, performanceMeasure) {\n  try {\n    const detail = performanceMeasure.detail;\n    if (!detail) {\n      return;\n    }\n    if (typeof detail === \"object\") {\n      for (const [key, value] of Object.entries(detail)) {\n        if (value && isPrimitive(value)) {\n          attributes[`sentry.browser.measure.detail.${key}`] = value;\n        } else if (value !== void 0) {\n          try {\n            attributes[`sentry.browser.measure.detail.${key}`] = JSON.stringify(value);\n          } catch {\n          }\n        }\n      }\n      return;\n    }\n    if (isPrimitive(detail)) {\n      attributes[\"sentry.browser.measure.detail\"] = detail;\n      return;\n    }\n    try {\n      attributes[\"sentry.browser.measure.detail\"] = JSON.stringify(detail);\n    } catch {\n    }\n  } catch {\n  }\n}\nfunction _addNavigationSpans(span, entry, timeOrigin) {\n  [\"unloadEvent\", \"redirect\", \"domContentLoadedEvent\", \"loadEvent\", \"connect\"].forEach((event) => {\n    _addPerformanceNavigationTiming(span, entry, event, timeOrigin);\n  });\n  _addPerformanceNavigationTiming(span, entry, \"secureConnection\", timeOrigin, \"TLS/SSL\");\n  _addPerformanceNavigationTiming(span, entry, \"fetch\", timeOrigin, \"cache\");\n  _addPerformanceNavigationTiming(span, entry, \"domainLookup\", timeOrigin, \"DNS\");\n  _addRequest(span, entry, timeOrigin);\n}\nfunction _addPerformanceNavigationTiming(span, entry, event, timeOrigin, name = event) {\n  const eventEnd = _getEndPropertyNameForNavigationTiming(event);\n  const end = entry[eventEnd];\n  const start = entry[`${event}Start`];\n  if (!start || !end) {\n    return;\n  }\n  startAndEndSpan(span, timeOrigin + msToSec(start), timeOrigin + msToSec(end), {\n    op: `browser.${name}`,\n    name: entry.name,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\",\n      ...event === \"redirect\" && entry.redirectCount != null ? { \"http.redirect_count\": entry.redirectCount } : {}\n    }\n  });\n}\nfunction _getEndPropertyNameForNavigationTiming(event) {\n  if (event === \"secureConnection\") {\n    return \"connectEnd\";\n  }\n  if (event === \"fetch\") {\n    return \"domainLookupStart\";\n  }\n  return `${event}End`;\n}\nfunction _addRequest(span, entry, timeOrigin) {\n  const requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n  const responseEndTimestamp = timeOrigin + msToSec(entry.responseEnd);\n  const responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n  if (entry.responseEnd) {\n    startAndEndSpan(span, requestStartTimestamp, responseEndTimestamp, {\n      op: \"browser.request\",\n      name: entry.name,\n      attributes: {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\"\n      }\n    });\n    startAndEndSpan(span, responseStartTimestamp, responseEndTimestamp, {\n      op: \"browser.response\",\n      name: entry.name,\n      attributes: {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ui.browser.metrics\"\n      }\n    });\n  }\n}\nfunction _addResourceSpans(span, entry, resourceUrl, startTime, duration, timeOrigin, ignoredResourceSpanOps) {\n  if (entry.initiatorType === \"xmlhttprequest\" || entry.initiatorType === \"fetch\") {\n    return;\n  }\n  const op = entry.initiatorType ? `resource.${entry.initiatorType}` : \"resource.other\";\n  if (ignoredResourceSpanOps?.includes(op)) {\n    return;\n  }\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.resource.browser.metrics\"\n  };\n  const parsedUrl = parseUrl(resourceUrl);\n  if (parsedUrl.protocol) {\n    attributes[\"url.scheme\"] = parsedUrl.protocol.split(\":\").pop();\n  }\n  if (parsedUrl.host) {\n    attributes[\"server.address\"] = parsedUrl.host;\n  }\n  attributes[\"url.same_origin\"] = resourceUrl.includes(WINDOW.location.origin);\n  attributes[URL_FULL] = resourceUrl;\n  _setResourceRequestAttributes(entry, attributes, [\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStatus\n    [\"responseStatus\", \"http.response.status_code\"],\n    [\"transferSize\", \"http.response_transfer_size\"],\n    [\"encodedBodySize\", \"http.response_content_length\"],\n    [\"decodedBodySize\", \"http.decoded_response_content_length\"],\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/renderBlockingStatus\n    [\"renderBlockingStatus\", \"resource.render_blocking_status\"],\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n    [\"deliveryType\", \"http.response_delivery_type\"]\n  ]);\n  const attributesWithResourceTiming = { ...attributes, ...resourceTimingToSpanAttributes(entry) };\n  const startTimestamp = timeOrigin + startTime;\n  const endTimestamp = startTimestamp + duration;\n  startAndEndSpan(span, startTimestamp, endTimestamp, {\n    name: resourceUrl.replace(WINDOW.location.origin, \"\"),\n    op,\n    attributes: attributesWithResourceTiming\n  });\n}\nfunction _trackNavigator(span, spanStreamingEnabled) {\n  const navigator = WINDOW.navigator;\n  if (!navigator) {\n    return;\n  }\n  const connection = navigator.connection;\n  if (connection) {\n    if (connection.effectiveType) {\n      span.setAttribute(\n        spanStreamingEnabled ? \"network.connection.effective_type\" : \"effectiveConnectionType\",\n        connection.effectiveType\n      );\n    }\n    if (connection.type) {\n      span.setAttribute(spanStreamingEnabled ? \"network.connection.type\" : \"connectionType\", connection.type);\n    }\n    if (isMeasurementValue(connection.rtt)) {\n      if (spanStreamingEnabled) {\n        span.setAttribute(\"network.connection.rtt\", connection.rtt);\n      } else if (spanToJSON(span).op === \"pageload\") {\n        setMeasurement(\"connection.rtt\", connection.rtt, \"millisecond\");\n      }\n    }\n  }\n  if (isMeasurementValue(navigator.deviceMemory)) {\n    if (spanStreamingEnabled) {\n      span.setAttribute(\"device.memory.estimated_capacity\", navigator.deviceMemory);\n    } else {\n      span.setAttribute(\"deviceMemory\", `${navigator.deviceMemory} GB`);\n    }\n  }\n  if (isMeasurementValue(navigator.hardwareConcurrency)) {\n    if (spanStreamingEnabled) {\n      span.setAttribute(\"device.processor_count\", navigator.hardwareConcurrency);\n    } else {\n      span.setAttribute(\"hardwareConcurrency\", String(navigator.hardwareConcurrency));\n    }\n  }\n}\nfunction _setWebVitalAttributes(span, options) {\n  if (_lcpEntry && options.recordLcpOnPageloadSpan) {\n    if (_lcpEntry.element) {\n      span.setAttribute(\"lcp.element\", htmlTreeAsString(_lcpEntry.element));\n    }\n    if (_lcpEntry.id) {\n      span.setAttribute(\"lcp.id\", _lcpEntry.id);\n    }\n    if (_lcpEntry.url) {\n      span.setAttribute(\"lcp.url\", _lcpEntry.url.trim().slice(0, 200));\n    }\n    if (_lcpEntry.loadTime != null) {\n      span.setAttribute(\"lcp.loadTime\", _lcpEntry.loadTime);\n    }\n    if (_lcpEntry.renderTime != null) {\n      span.setAttribute(\"lcp.renderTime\", _lcpEntry.renderTime);\n    }\n    span.setAttribute(\"lcp.size\", _lcpEntry.size);\n  }\n  if (_clsEntry?.sources && options.recordClsOnPageloadSpan) {\n    _clsEntry.sources.forEach(\n      (source, index) => span.setAttribute(`cls.source.${index + 1}`, htmlTreeAsString(source.node))\n    );\n  }\n}\nfunction _setResourceRequestAttributes(entry, attributes, properties) {\n  properties.forEach(([entryKey, attributeKey]) => {\n    const entryVal = entry[entryKey];\n    if (entryVal != null && (typeof entryVal === \"number\" && entryVal < MAX_INT_AS_BYTES || typeof entryVal === \"string\")) {\n      attributes[attributeKey] = entryVal;\n    }\n  });\n}\nfunction _addTtfbRequestTimeToMeasurements(_measurements2) {\n  const navEntry = getNavigationEntry(false);\n  if (!navEntry) {\n    return;\n  }\n  const { responseStart, requestStart } = navEntry;\n  if (requestStart <= responseStart) {\n    _measurements2[\"ttfb.requestTime\"] = {\n      value: responseStart - requestStart,\n      unit: \"millisecond\"\n    };\n  }\n}\n\nexport { _addMeasureSpans, _addNavigationSpans, _addResourceSpans, _setResourceRequestAttributes, addPerformanceEntries, addWebVitalsToSpan, startTrackingInteractions, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingWebVitals };\n//# sourceMappingURL=browserMetrics.js.map\n","import { isBrowser, browserPerformanceTimeOrigin, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { htmlTreeAsString } from '../htmlTreeAsString.js';\nimport { WINDOW } from '../types.js';\nimport { addPerformanceInstrumentationHandler, addInpInstrumentationHandler, isPerformanceEventTiming } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nconst LAST_INTERACTIONS = [];\nconst INTERACTIONS_SPAN_MAP = /* @__PURE__ */ new Map();\nconst ELEMENT_NAME_TIMESTAMP_MAP = /* @__PURE__ */ new Map();\nconst MAX_PLAUSIBLE_INP_DURATION = 60;\nfunction startTrackingINP() {\n  const performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin()) {\n    const inpCallback = _trackINP();\n    return () => {\n      inpCallback();\n    };\n  }\n  return () => void 0;\n}\nconst INP_ENTRY_MAP = {\n  click: \"click\",\n  pointerdown: \"click\",\n  pointerup: \"click\",\n  mousedown: \"click\",\n  mouseup: \"click\",\n  touchstart: \"click\",\n  touchend: \"click\",\n  mouseover: \"hover\",\n  mouseout: \"hover\",\n  mouseenter: \"hover\",\n  mouseleave: \"hover\",\n  pointerover: \"hover\",\n  pointerout: \"hover\",\n  pointerenter: \"hover\",\n  pointerleave: \"hover\",\n  dragstart: \"drag\",\n  dragend: \"drag\",\n  drag: \"drag\",\n  dragenter: \"drag\",\n  dragleave: \"drag\",\n  dragover: \"drag\",\n  drop: \"drag\",\n  keydown: \"press\",\n  keyup: \"press\",\n  keypress: \"press\",\n  input: \"press\"\n};\nfunction _trackINP() {\n  return addInpInstrumentationHandler(_onInp);\n}\nconst _onInp = ({ metric }) => {\n  if (metric.value == void 0) {\n    return;\n  }\n  const duration = msToSec(metric.value);\n  if (duration > MAX_PLAUSIBLE_INP_DURATION) {\n    return;\n  }\n  const entry = metric.entries.find((entry2) => entry2.duration === metric.value && INP_ENTRY_MAP[entry2.name]);\n  if (!entry) {\n    return;\n  }\n  const { interactionId } = entry;\n  const interactionType = INP_ENTRY_MAP[entry.name];\n  const startTime = msToSec(browserPerformanceTimeOrigin() + entry.startTime);\n  const activeSpan = getActiveSpan();\n  const rootSpan = activeSpan ? getRootSpan(activeSpan) : void 0;\n  const cachedInteractionContext = interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : void 0;\n  const spanToUse = cachedInteractionContext?.span || rootSpan;\n  const routeName = spanToUse ? spanToJSON(spanToUse).description : getCurrentScope().getScopeData().transactionName;\n  const name = cachedInteractionContext?.elementName || htmlTreeAsString(entry.target);\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.browser.inp\",\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `ui.interaction.${interactionType}`,\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration\n  };\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime\n  });\n  if (span) {\n    span.addEvent(\"inp\", {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: \"millisecond\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: metric.value\n    });\n    span.end(startTime + duration);\n  }\n};\nfunction getCachedInteractionContext(interactionId) {\n  return interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : void 0;\n}\nfunction registerInpInteractionListener() {\n  const interactionEvents = Object.keys(INP_ENTRY_MAP);\n  if (isBrowser()) {\n    interactionEvents.forEach((eventType) => {\n      WINDOW.addEventListener(eventType, captureElementFromEvent, { capture: true, passive: true });\n    });\n  }\n  function captureElementFromEvent(event) {\n    const target = event.target;\n    if (!target) {\n      return;\n    }\n    const elementName = htmlTreeAsString(target);\n    const timestamp = Math.round(event.timeStamp);\n    ELEMENT_NAME_TIMESTAMP_MAP.set(timestamp, elementName);\n    if (ELEMENT_NAME_TIMESTAMP_MAP.size > 50) {\n      const firstKey = ELEMENT_NAME_TIMESTAMP_MAP.keys().next().value;\n      if (firstKey !== void 0) {\n        ELEMENT_NAME_TIMESTAMP_MAP.delete(firstKey);\n      }\n    }\n  }\n  function resolveElementNameFromEntry(entry) {\n    const timestamp = Math.round(entry.startTime);\n    let elementName = ELEMENT_NAME_TIMESTAMP_MAP.get(timestamp);\n    if (!elementName) {\n      for (let offset = -5; offset <= 5; offset++) {\n        const nearbyName = ELEMENT_NAME_TIMESTAMP_MAP.get(timestamp + offset);\n        if (nearbyName) {\n          elementName = nearbyName;\n          break;\n        }\n      }\n    }\n    return elementName || \"<unknown>\";\n  }\n  const handleEntries = ({ entries }) => {\n    const activeSpan = getActiveSpan();\n    const activeRootSpan = activeSpan && getRootSpan(activeSpan);\n    entries.forEach((entry) => {\n      if (!isPerformanceEventTiming(entry)) {\n        return;\n      }\n      const interactionId = entry.interactionId;\n      if (interactionId == null) {\n        return;\n      }\n      if (INTERACTIONS_SPAN_MAP.has(interactionId)) {\n        return;\n      }\n      const elementName = entry.target ? htmlTreeAsString(entry.target) : resolveElementNameFromEntry(entry);\n      if (LAST_INTERACTIONS.length > 10) {\n        const last = LAST_INTERACTIONS.shift();\n        INTERACTIONS_SPAN_MAP.delete(last);\n      }\n      LAST_INTERACTIONS.push(interactionId);\n      INTERACTIONS_SPAN_MAP.set(interactionId, {\n        span: activeRootSpan,\n        elementName\n      });\n    });\n  };\n  addPerformanceInstrumentationHandler(\"event\", handleEntries);\n  addPerformanceInstrumentationHandler(\"first-input\", handleEntries);\n}\n\nexport { INP_ENTRY_MAP, MAX_PLAUSIBLE_INP_DURATION, _onInp, _trackINP, getCachedInteractionContext, registerInpInteractionListener, startTrackingINP };\n//# sourceMappingURL=inp.js.map\n","import { browserPerformanceTimeOrigin, debug, timestampInSeconds, getCurrentScope, spanToStreamedSpanJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, startInactiveSpan, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getActiveSpan, getRootSpan } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { htmlTreeAsString } from '../htmlTreeAsString.js';\nimport { WINDOW } from '../types.js';\nimport { MAX_PLAUSIBLE_INP_DURATION, INP_ENTRY_MAP, getCachedInteractionContext } from './inp.js';\nimport { addClsInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler } from './instrument.js';\nimport { isValidLcpMetric } from './lcp.js';\nimport { supportsWebVital, listenForWebVitalReportEvents, getBrowserPerformanceAPI, msToSec } from './utils.js';\nimport { SENTRY_SEGMENT_NAME, SENTRY_TRANSACTION } from '@sentry/conventions/attributes';\n\nfunction _emitWebVitalSpan(options) {\n  const {\n    name,\n    op,\n    origin,\n    metricName,\n    value,\n    attributes: passedAttributes,\n    parentSpan,\n    reportEvent,\n    startTime,\n    endTime\n  } = options;\n  const routeName = getCurrentScope().getScopeData().transactionName;\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: 0,\n    [`browser.web_vital.${metricName}.value`]: value,\n    // oxlint-disable-next-line typescript-eslint/no-deprecated\n    [SENTRY_TRANSACTION]: routeName,\n    [SENTRY_SEGMENT_NAME]: routeName,\n    // Web vital score calculation relies on the user agent\n    \"user_agent.original\": WINDOW.navigator?.userAgent,\n    ...passedAttributes\n  };\n  if (parentSpan && spanToStreamedSpanJSON(parentSpan).attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"pageload\") {\n    attributes[\"sentry.pageload.span_id\"] = parentSpan.spanContext().spanId;\n  }\n  if (reportEvent) {\n    attributes[`browser.web_vital.${metricName}.report_event`] = reportEvent;\n  }\n  const span = startInactiveSpan({\n    name,\n    attributes,\n    startTime,\n    // if we have a pageload span, we let the web vital span start as its parent. This ensures that\n    // it is not started as a segment span, without having to manually set it to a \"standalone\" v2 span\n    // that has `segment: false` but no actual parent span.\n    parentSpan\n  });\n  if (span) {\n    span.end(endTime ?? startTime);\n  }\n}\nfunction trackLcpAsSpan(client) {\n  let lcpValue = 0;\n  let lcpEntry;\n  if (!supportsWebVital(\"largest-contentful-paint\")) {\n    return;\n  }\n  const cleanupLcpHandler = addLcpInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry || !isValidLcpMetric(metric.value)) {\n      return;\n    }\n    lcpValue = metric.value;\n    lcpEntry = entry;\n  }, true);\n  listenForWebVitalReportEvents(client, (reportEvent, _, pageloadSpan) => {\n    _sendLcpSpan(lcpValue, lcpEntry, pageloadSpan, reportEvent);\n    cleanupLcpHandler();\n  });\n}\nfunction _sendLcpSpan(lcpValue, entry, pageloadSpan, reportEvent) {\n  if (!isValidLcpMetric(lcpValue)) {\n    return;\n  }\n  DEBUG_BUILD && debug.log(`Sending LCP span (${lcpValue})`);\n  const performanceTimeOrigin = browserPerformanceTimeOrigin() || 0;\n  const timeOrigin = msToSec(performanceTimeOrigin);\n  const endTime = msToSec(performanceTimeOrigin + (entry?.startTime || 0));\n  const name = entry ? htmlTreeAsString(entry.element) : \"Largest contentful paint\";\n  const attributes = {};\n  entry?.element && (attributes[\"browser.web_vital.lcp.element\"] = htmlTreeAsString(entry.element));\n  entry?.id && (attributes[\"browser.web_vital.lcp.id\"] = entry.id);\n  entry?.url && (attributes[\"browser.web_vital.lcp.url\"] = entry.url);\n  entry?.loadTime != null && (attributes[\"browser.web_vital.lcp.load_time\"] = entry.loadTime);\n  entry?.renderTime != null && (attributes[\"browser.web_vital.lcp.render_time\"] = entry.renderTime);\n  entry?.size != null && (attributes[\"browser.web_vital.lcp.size\"] = entry.size);\n  _emitWebVitalSpan({\n    name,\n    op: \"ui.webvital.lcp\",\n    origin: \"auto.http.browser.lcp\",\n    metricName: \"lcp\",\n    value: lcpValue,\n    attributes,\n    parentSpan: pageloadSpan,\n    reportEvent,\n    startTime: timeOrigin,\n    endTime\n  });\n}\nfunction trackClsAsSpan(client) {\n  let clsValue = 0;\n  let clsEntry;\n  if (!supportsWebVital(\"layout-shift\")) {\n    return;\n  }\n  const cleanupClsHandler = addClsInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n    clsValue = metric.value;\n    clsEntry = entry;\n  }, true);\n  listenForWebVitalReportEvents(client, (reportEvent, _, pageloadSpan) => {\n    _sendClsSpan(clsValue, clsEntry, pageloadSpan, reportEvent);\n    cleanupClsHandler();\n  });\n}\nfunction _sendClsSpan(clsValue, entry, pageloadSpan, reportEvent) {\n  DEBUG_BUILD && debug.log(`Sending CLS span (${clsValue})`);\n  const startTime = entry ? msToSec((browserPerformanceTimeOrigin() || 0) + entry.startTime) : timestampInSeconds();\n  const name = entry ? htmlTreeAsString(entry.sources[0]?.node) : \"Layout shift\";\n  const attributes = {};\n  if (entry?.sources) {\n    entry.sources.forEach((source, index) => {\n      attributes[`browser.web_vital.cls.source.${index + 1}`] = htmlTreeAsString(source.node);\n    });\n  }\n  _emitWebVitalSpan({\n    name,\n    op: \"ui.webvital.cls\",\n    origin: \"auto.http.browser.cls\",\n    metricName: \"cls\",\n    value: clsValue,\n    attributes,\n    parentSpan: pageloadSpan,\n    reportEvent,\n    startTime\n  });\n}\nfunction trackInpAsSpan() {\n  const performance = getBrowserPerformanceAPI();\n  if (!performance || !browserPerformanceTimeOrigin()) {\n    return;\n  }\n  const onInp = ({ metric }) => {\n    if (metric.value == null) {\n      return;\n    }\n    const duration = msToSec(metric.value);\n    if (duration > MAX_PLAUSIBLE_INP_DURATION) {\n      return;\n    }\n    const entry = metric.entries.find((e) => e.duration === metric.value && INP_ENTRY_MAP[e.name]);\n    if (!entry) {\n      return;\n    }\n    _sendInpSpan(metric.value, entry);\n  };\n  addInpInstrumentationHandler(onInp);\n}\nfunction _sendInpSpan(inpValue, entry) {\n  DEBUG_BUILD && debug.log(`Sending INP span (${inpValue})`);\n  const startTime = msToSec(browserPerformanceTimeOrigin() + entry.startTime);\n  const duration = msToSec(inpValue);\n  const interactionType = INP_ENTRY_MAP[entry.name];\n  const cachedContext = getCachedInteractionContext(entry.interactionId);\n  const activeSpan = getActiveSpan();\n  const rootSpan = activeSpan ? getRootSpan(activeSpan) : void 0;\n  const spanToUse = cachedContext?.span || rootSpan;\n  const routeName = spanToUse ? spanToStreamedSpanJSON(spanToUse).name : getCurrentScope().getScopeData().transactionName;\n  const name = cachedContext?.elementName || htmlTreeAsString(entry.target);\n  _emitWebVitalSpan({\n    name,\n    op: `ui.interaction.${interactionType}`,\n    origin: \"auto.http.browser.inp\",\n    metricName: \"inp\",\n    value: inpValue,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration,\n      // oxlint-disable-next-line typescript-eslint/no-deprecated\n      [SENTRY_TRANSACTION]: routeName,\n      [SENTRY_SEGMENT_NAME]: routeName\n    },\n    startTime,\n    endTime: startTime + duration,\n    parentSpan: spanToUse\n  });\n}\n\nexport { _emitWebVitalSpan, _sendClsSpan, _sendInpSpan, _sendLcpSpan, trackClsAsSpan, trackInpAsSpan, trackLcpAsSpan };\n//# sourceMappingURL=webVitalSpans.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1e3;\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\nfunction addClickKeypressInstrumentationHandler(handler) {\n  const type = \"dom\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentDOM);\n}\nfunction instrumentDOM() {\n  if (!WINDOW.document) {\n    return;\n  }\n  const triggerDOMHandler = triggerHandlers.bind(null, \"dom\");\n  const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n  WINDOW.document.addEventListener(\"click\", globalDOMEventHandler, false);\n  WINDOW.document.addEventListener(\"keypress\", globalDOMEventHandler, false);\n  [\"EventTarget\", \"Node\"].forEach((target) => {\n    const globalObject = WINDOW;\n    const proto = globalObject[target]?.prototype;\n    if (!proto?.hasOwnProperty?.(\"addEventListener\")) {\n      return;\n    }\n    fill(proto, \"addEventListener\", function(originalAddEventListener) {\n      return function(type, listener, options) {\n        if (type === \"click\" || type == \"keypress\") {\n          try {\n            const handlers = this.__sentry_instrumentation_handlers__ = this.__sentry_instrumentation_handlers__ || {};\n            const handlerForType = handlers[type] = handlers[type] || { refCount: 0 };\n            if (!handlerForType.handler) {\n              const handler = makeDOMEventHandler(triggerDOMHandler);\n              handlerForType.handler = handler;\n              originalAddEventListener.call(this, type, handler, options);\n            }\n            handlerForType.refCount++;\n          } catch {\n          }\n        }\n        return originalAddEventListener.call(this, type, listener, options);\n      };\n    });\n    fill(\n      proto,\n      \"removeEventListener\",\n      function(originalRemoveEventListener) {\n        return function(type, listener, options) {\n          if (type === \"click\" || type == \"keypress\") {\n            try {\n              const handlers = this.__sentry_instrumentation_handlers__ || {};\n              const handlerForType = handlers[type];\n              if (handlerForType) {\n                handlerForType.refCount--;\n                if (handlerForType.refCount <= 0) {\n                  originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n                  handlerForType.handler = void 0;\n                  delete handlers[type];\n                }\n                if (Object.keys(handlers).length === 0) {\n                  delete this.__sentry_instrumentation_handlers__;\n                }\n              }\n            } catch {\n            }\n          }\n          return originalRemoveEventListener.call(this, type, listener, options);\n        };\n      }\n    );\n  });\n}\nfunction isSimilarToLastCapturedEvent(event) {\n  if (event.type !== lastCapturedEventType) {\n    return false;\n  }\n  try {\n    if (!event.target || event.target._sentryId !== lastCapturedEventTargetId) {\n      return false;\n    }\n  } catch {\n  }\n  return true;\n}\nfunction shouldSkipDOMEvent(eventType, target) {\n  if (eventType !== \"keypress\") {\n    return false;\n  }\n  if (!target?.tagName) {\n    return true;\n  }\n  if (target.tagName === \"INPUT\" || target.tagName === \"TEXTAREA\" || target.isContentEditable) {\n    return false;\n  }\n  return true;\n}\nfunction makeDOMEventHandler(handler, globalListener = false) {\n  return (event) => {\n    if (!event || event[\"_sentryCaptured\"]) {\n      return;\n    }\n    const target = getEventTarget(event);\n    if (shouldSkipDOMEvent(event.type, target)) {\n      return;\n    }\n    addNonEnumerableProperty(event, \"_sentryCaptured\", true);\n    if (target && !target._sentryId) {\n      addNonEnumerableProperty(target, \"_sentryId\", uuid4());\n    }\n    const name = event.type === \"keypress\" ? \"input\" : event.type;\n    if (!isSimilarToLastCapturedEvent(event)) {\n      const handlerData = { event, name, global: globalListener };\n      handler(handlerData);\n      lastCapturedEventType = event.type;\n      lastCapturedEventTargetId = target ? target._sentryId : void 0;\n    }\n    clearTimeout(debounceTimerID);\n    debounceTimerID = WINDOW.setTimeout(() => {\n      lastCapturedEventTargetId = void 0;\n      lastCapturedEventType = void 0;\n    }, DEBOUNCE_DURATION);\n  };\n}\nfunction getEventTarget(event) {\n  try {\n    return event.target;\n  } catch {\n    return null;\n  }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, supportsHistory, fill } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\nfunction addHistoryInstrumentationHandler(handler) {\n  const type = \"history\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentHistory);\n}\nfunction instrumentHistory() {\n  WINDOW.addEventListener(\"popstate\", () => {\n    const to = WINDOW.location.href;\n    const from = lastHref;\n    lastHref = to;\n    if (from === to) {\n      return;\n    }\n    const handlerData = { from, to };\n    triggerHandlers(\"history\", handlerData);\n  });\n  if (!supportsHistory()) {\n    return;\n  }\n  function historyReplacementFunction(originalHistoryFunction) {\n    return function(...args) {\n      const url = args.length > 2 ? args[2] : void 0;\n      if (url) {\n        const from = lastHref;\n        const to = getAbsoluteUrl(String(url));\n        lastHref = to;\n        if (from === to) {\n          return originalHistoryFunction.apply(this, args);\n        }\n        const handlerData = { from, to };\n        triggerHandlers(\"history\", handlerData);\n      }\n      return originalHistoryFunction.apply(this, args);\n    };\n  }\n  fill(WINDOW.history, \"pushState\", historyReplacementFunction);\n  fill(WINDOW.history, \"replaceState\", historyReplacementFunction);\n}\nfunction getAbsoluteUrl(urlOrPath) {\n  try {\n    const url = new URL(urlOrPath, WINDOW.location.origin);\n    return url.toString();\n  } catch {\n    return urlOrPath;\n  }\n}\n\nexport { addHistoryInstrumentationHandler, instrumentHistory };\n//# sourceMappingURL=history.js.map\n","import { isNativeFunction, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\nconst cachedImplementations = {};\nfunction getNativeImplementation(name) {\n  const cached = cachedImplementations[name];\n  if (cached) {\n    return cached;\n  }\n  let impl = WINDOW[name];\n  if (isNativeFunction(impl)) {\n    return cachedImplementations[name] = impl.bind(WINDOW);\n  }\n  const document = WINDOW.document;\n  if (document && typeof document.createElement === \"function\") {\n    try {\n      const sandbox = document.createElement(\"iframe\");\n      sandbox.hidden = true;\n      document.head.appendChild(sandbox);\n      const contentWindow = sandbox.contentWindow;\n      if (contentWindow?.[name]) {\n        impl = contentWindow[name];\n      }\n      document.head.removeChild(sandbox);\n    } catch (e) {\n      DEBUG_BUILD && debug.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n    }\n  }\n  if (!impl) {\n    return impl;\n  }\n  return cachedImplementations[name] = impl.bind(WINDOW);\n}\nfunction clearCachedImplementation(name) {\n  cachedImplementations[name] = void 0;\n}\nfunction fetch(...rest) {\n  return getNativeImplementation(\"fetch\")(...rest);\n}\nfunction setTimeout(...rest) {\n  return getNativeImplementation(\"setTimeout\")(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = \"__sentry_xhr_v3__\";\nfunction addXhrInstrumentationHandler(handler) {\n  const type = \"xhr\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentXHR);\n}\nfunction instrumentXHR() {\n  if (!WINDOW.XMLHttpRequest) {\n    return;\n  }\n  const xhrproto = XMLHttpRequest.prototype;\n  xhrproto.open = new Proxy(xhrproto.open, {\n    apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n      const virtualError = new Error();\n      const startTimestamp = timestampInSeconds() * 1e3;\n      const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : void 0;\n      const url = parseXhrUrlArg(xhrOpenArgArray[1]);\n      if (!method || !url) {\n        return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n      }\n      xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n        method,\n        url,\n        request_headers: {}\n      };\n      if (method === \"POST\" && url.match(/sentry_key/)) {\n        xhrOpenThisArg.__sentry_own_request__ = true;\n      }\n      const onreadystatechangeHandler = () => {\n        const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n        if (!xhrInfo) {\n          return;\n        }\n        if (xhrOpenThisArg.readyState === 4) {\n          try {\n            xhrInfo.status_code = xhrOpenThisArg.status;\n          } catch {\n          }\n          const handlerData = {\n            endTimestamp: timestampInSeconds() * 1e3,\n            startTimestamp,\n            xhr: xhrOpenThisArg,\n            virtualError\n          };\n          triggerHandlers(\"xhr\", handlerData);\n          xhrOpenThisArg.removeEventListener(\"readystatechange\", onreadystatechangeHandler);\n        }\n      };\n      if (\"onreadystatechange\" in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === \"function\") {\n        xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n          apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n            onreadystatechangeHandler();\n            return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n          }\n        });\n      } else {\n        xhrOpenThisArg.addEventListener(\"readystatechange\", onreadystatechangeHandler);\n      }\n      xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n        apply(originalSetRequestHeader, setRequestHeaderThisArg, setRequestHeaderArgArray) {\n          const [header, value] = setRequestHeaderArgArray;\n          const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n          if (xhrInfo && isString(header) && isString(value)) {\n            xhrInfo.request_headers[header.toLowerCase()] = value;\n          }\n          return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n        }\n      });\n      return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n    }\n  });\n  xhrproto.send = new Proxy(xhrproto.send, {\n    apply(originalSend, sendThisArg, sendArgArray) {\n      const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n      if (!sentryXhrData) {\n        return originalSend.apply(sendThisArg, sendArgArray);\n      }\n      if (sendArgArray[0] !== void 0) {\n        sentryXhrData.body = sendArgArray[0];\n      }\n      const handlerData = {\n        startTimestamp: timestampInSeconds() * 1e3,\n        xhr: sendThisArg\n      };\n      triggerHandlers(\"xhr\", handlerData);\n      return originalSend.apply(sendThisArg, sendArgArray);\n    }\n  });\n}\nfunction parseXhrUrlArg(url) {\n  if (isString(url)) {\n    return url;\n  }\n  try {\n    return url.toString();\n  } catch {\n  }\n  return void 0;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","import { debug } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nconst ORIGINAL_REQ_BODY = /* @__PURE__ */ Symbol.for(\"sentry__originalRequestBody\");\nfunction serializeFormData(formData) {\n  return new URLSearchParams(formData).toString();\n}\nfunction getBodyString(body, _debug = debug) {\n  try {\n    if (typeof body === \"string\") {\n      return [body];\n    }\n    if (body instanceof URLSearchParams) {\n      return [body.toString()];\n    }\n    if (body instanceof FormData) {\n      return [serializeFormData(body)];\n    }\n    if (!body) {\n      return [void 0];\n    }\n  } catch (error) {\n    DEBUG_BUILD && _debug.error(error, \"Failed to serialize body\", body);\n    return [void 0, \"BODY_PARSE_ERROR\"];\n  }\n  DEBUG_BUILD && _debug.log(\"Skipping network body because of body type\", body);\n  return [void 0, \"UNPARSEABLE_BODY_TYPE\"];\n}\nfunction getFetchRequestArgBody(fetchArgs = []) {\n  if (fetchArgs.length >= 2 && fetchArgs[1] && typeof fetchArgs[1] === \"object\" && \"body\" in fetchArgs[1]) {\n    return fetchArgs[1].body;\n  }\n  if (fetchArgs.length >= 1 && fetchArgs[0] instanceof Request) {\n    const request = fetchArgs[0];\n    const originalBody = request[ORIGINAL_REQ_BODY];\n    if (originalBody !== void 0) {\n      return originalBody;\n    }\n    return void 0;\n  }\n  return void 0;\n}\nfunction parseXhrResponseHeaders(xhr) {\n  let headers;\n  try {\n    headers = xhr.getAllResponseHeaders();\n  } catch (error) {\n    DEBUG_BUILD && debug.error(error, \"Failed to get xhr response headers\", xhr);\n    return {};\n  }\n  if (!headers) {\n    return {};\n  }\n  return headers.split(\"\\r\\n\").reduce((acc, line) => {\n    const [key, value] = line.split(\": \");\n    if (value) {\n      acc[key.toLowerCase()] = value;\n    }\n    return acc;\n  }, {});\n}\n\nexport { ORIGINAL_REQ_BODY, getBodyString, getFetchRequestArgBody, parseXhrResponseHeaders, serializeFormData };\n//# sourceMappingURL=networkUtils.js.map\n","function isElement(wat) {\n  if (typeof Element === \"undefined\") {\n    return false;\n  }\n  try {\n    return wat instanceof Element;\n  } catch {\n    return false;\n  }\n}\n\nexport { isElement };\n//# sourceMappingURL=is.js.map\n","import { createTransport, makePromiseBuffer } from '@sentry/core/browser';\nimport { getNativeImplementation, clearCachedImplementation } from '@sentry/browser-utils';\n\nconst DEFAULT_BROWSER_TRANSPORT_BUFFER_SIZE = 40;\nfunction makeFetchTransport(options, nativeFetch = getNativeImplementation(\"fetch\")) {\n  let pendingBodySize = 0;\n  let pendingCount = 0;\n  async function makeRequest(request) {\n    const requestSize = request.body.length;\n    pendingBodySize += requestSize;\n    pendingCount++;\n    const requestOptions = {\n      body: request.body,\n      method: \"POST\",\n      referrerPolicy: \"strict-origin\",\n      headers: options.headers,\n      // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n      // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n      // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n      // frequently sending events right before the user is switching pages (eg. when finishing navigation transactions).\n      // Gotchas:\n      // - `keepalive` isn't supported by Firefox\n      // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n      //   If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n      //   We will therefore only activate the flag when we're below that limit.\n      // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n      // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n      keepalive: pendingBodySize <= 6e4 && pendingCount < 15,\n      ...options.fetchOptions\n    };\n    try {\n      const response = await nativeFetch(options.url, requestOptions);\n      return {\n        statusCode: response.status,\n        headers: {\n          \"x-sentry-rate-limits\": response.headers.get(\"X-Sentry-Rate-Limits\"),\n          \"retry-after\": response.headers.get(\"Retry-After\")\n        }\n      };\n    } catch (e) {\n      clearCachedImplementation(\"fetch\");\n      throw e;\n    } finally {\n      pendingBodySize -= requestSize;\n      pendingCount--;\n    }\n  }\n  return createTransport(\n    options,\n    makeRequest,\n    makePromiseBuffer(options.bufferSize || DEFAULT_BROWSER_TRANSPORT_BUFFER_SIZE)\n  );\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { createStackParser, UNKNOWN_FUNCTION } from '@sentry/core/browser';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\nfunction createFrame(filename, func, lineno, colno) {\n  const frame = {\n    filename,\n    function: func === \"<anonymous>\" ? UNKNOWN_FUNCTION : func,\n    in_app: true\n    // All browser frames are considered in_app\n  };\n  if (lineno !== void 0) {\n    frame.lineno = lineno;\n  }\n  if (colno !== void 0) {\n    frame.colno = colno;\n  }\n  return frame;\n}\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\nconst chromeRegex = /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nconst chromeDataUriRegex = /at (.+?) ?\\(data:(.+?),/;\nconst chromeStackParserFn = (line) => {\n  const dataUriMatch = line.match(chromeDataUriRegex);\n  if (dataUriMatch) {\n    return {\n      filename: `<data:${dataUriMatch[2]}>`,\n      function: dataUriMatch[1]\n    };\n  }\n  const noFnParts = chromeRegexNoFnName.exec(line);\n  if (noFnParts) {\n    const [, filename, line2, col] = noFnParts;\n    return createFrame(filename, UNKNOWN_FUNCTION, +line2, +col);\n  }\n  const parts = chromeRegex.exec(line);\n  if (parts) {\n    const isEval = parts[2]?.indexOf(\"eval\") === 0;\n    if (isEval) {\n      const subMatch = chromeEvalRegex.exec(parts[2]);\n      if (subMatch) {\n        parts[2] = subMatch[1];\n        parts[3] = subMatch[2];\n        parts[4] = subMatch[3];\n      }\n    }\n    const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n    return createFrame(filename, func, parts[3] ? +parts[3] : void 0, parts[4] ? +parts[4] : void 0);\n  }\n  return;\n};\nconst chromeStackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\nconst geckoREgex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nconst gecko = (line) => {\n  const parts = geckoREgex.exec(line);\n  if (parts) {\n    const isEval = parts[3] && parts[3].indexOf(\" > eval\") > -1;\n    if (isEval) {\n      const subMatch = geckoEvalRegex.exec(parts[3]);\n      if (subMatch) {\n        parts[1] = parts[1] || \"eval\";\n        parts[3] = subMatch[1];\n        parts[4] = subMatch[2];\n        parts[5] = \"\";\n      }\n    }\n    let filename = parts[3];\n    let func = parts[1] || UNKNOWN_FUNCTION;\n    [func, filename] = extractSafariExtensionDetails(func, filename);\n    return createFrame(filename, func, parts[4] ? +parts[4] : void 0, parts[5] ? +parts[5] : void 0);\n  }\n  return;\n};\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nconst winjs = (line) => {\n  const parts = winjsRegex.exec(line);\n  return parts ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : void 0) : void 0;\n};\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\nconst opera10 = (line) => {\n  const parts = opera10Regex.exec(line);\n  return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : void 0;\n};\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\nconst opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\nconst opera11 = (line) => {\n  const parts = opera11Regex.exec(line);\n  return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : void 0;\n};\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\nconst extractSafariExtensionDetails = (func, filename) => {\n  const isSafariExtension = func.indexOf(\"safari-extension\") !== -1;\n  const isSafariWebExtension = func.indexOf(\"safari-web-extension\") !== -1;\n  return isSafariExtension || isSafariWebExtension ? [\n    func.indexOf(\"@\") !== -1 ? func.split(\"@\")[0] : UNKNOWN_FUNCTION,\n    isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`\n  ] : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { defineIntegration, addConsoleInstrumentationHandler, addFetchInstrumentationHandler, getClient, safeJoin, severityLevelFromString, addBreadcrumb, debug, getComponentName, getBreadcrumbLogLevelFromHttpStatusCode, parseUrl, getEventDescription } from '@sentry/core/browser';\nimport { addClickKeypressInstrumentationHandler, addXhrInstrumentationHandler, addHistoryInstrumentationHandler, htmlTreeAsString, SENTRY_XHR_DATA_KEY } from '@sentry/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\nconst INTEGRATION_NAME = \"Breadcrumbs\";\nconst _breadcrumbsIntegration = ((options = {}) => {\n  const _options = {\n    console: true,\n    dom: true,\n    fetch: true,\n    history: true,\n    sentry: true,\n    xhr: true,\n    ...options\n  };\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      if (_options.console) {\n        addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n      }\n      if (_options.dom) {\n        addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n      }\n      if (_options.xhr) {\n        addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n      }\n      if (_options.fetch) {\n        addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n      }\n      if (_options.history) {\n        addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n      }\n      if (_options.sentry) {\n        client.on(\"beforeSendEvent\", _getSentryBreadcrumbHandler(client));\n      }\n    }\n  };\n});\nconst breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\nfunction _getSentryBreadcrumbHandler(client) {\n  return function addSentryBreadcrumb(event) {\n    if (getClient() !== client) {\n      return;\n    }\n    addBreadcrumb(\n      {\n        category: `sentry.${event.type === \"transaction\" ? \"transaction\" : \"event\"}`,\n        event_id: event.event_id,\n        level: event.level,\n        message: getEventDescription(event)\n      },\n      {\n        event\n      }\n    );\n  };\n}\nfunction _getDomBreadcrumbHandler(client, dom) {\n  return function _innerDomBreadcrumb(handlerData) {\n    if (getClient() !== client) {\n      return;\n    }\n    let target;\n    let componentName;\n    let keyAttrs = typeof dom === \"object\" ? dom.serializeAttribute : void 0;\n    let maxStringLength = typeof dom === \"object\" && typeof dom.maxStringLength === \"number\" ? dom.maxStringLength : void 0;\n    if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n      DEBUG_BUILD && debug.warn(\n        `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`\n      );\n      maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n    }\n    if (typeof keyAttrs === \"string\") {\n      keyAttrs = [keyAttrs];\n    }\n    try {\n      const event = handlerData.event;\n      const element = _isEvent(event) ? event.target : event;\n      target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n      componentName = getComponentName(element);\n    } catch {\n      target = \"<unknown>\";\n    }\n    if (target.length === 0) {\n      return;\n    }\n    const breadcrumb = {\n      category: `ui.${handlerData.name}`,\n      message: target\n    };\n    if (componentName) {\n      breadcrumb.data = { \"ui.component_name\": componentName };\n    }\n    addBreadcrumb(breadcrumb, {\n      event: handlerData.event,\n      name: handlerData.name,\n      global: handlerData.global\n    });\n  };\n}\nfunction _getConsoleBreadcrumbHandler(client) {\n  return function _consoleBreadcrumb(handlerData) {\n    if (getClient() !== client) {\n      return;\n    }\n    const breadcrumb = {\n      category: \"console\",\n      data: {\n        arguments: handlerData.args,\n        logger: \"console\"\n      },\n      level: severityLevelFromString(handlerData.level),\n      message: safeJoin(handlerData.args, \" \")\n    };\n    if (handlerData.level === \"assert\") {\n      if (handlerData.args[0] === false) {\n        breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), \" \") || \"console.assert\"}`;\n        breadcrumb.data.arguments = handlerData.args.slice(1);\n      } else {\n        return;\n      }\n    }\n    addBreadcrumb(breadcrumb, {\n      input: handlerData.args,\n      level: handlerData.level\n    });\n  };\n}\nfunction _getXhrBreadcrumbHandler(client) {\n  return function _xhrBreadcrumb(handlerData) {\n    if (getClient() !== client) {\n      return;\n    }\n    const { startTimestamp, endTimestamp } = handlerData;\n    const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n    if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n      return;\n    }\n    const { method, url, status_code, body } = sentryXhrData;\n    const data = {\n      method,\n      url,\n      status_code\n    };\n    const hint = {\n      xhr: handlerData.xhr,\n      input: body,\n      startTimestamp,\n      endTimestamp\n    };\n    const breadcrumb = {\n      category: \"xhr\",\n      data,\n      type: \"http\",\n      level: getBreadcrumbLogLevelFromHttpStatusCode(status_code)\n    };\n    client.emit(\"beforeOutgoingRequestBreadcrumb\", breadcrumb, hint);\n    addBreadcrumb(breadcrumb, hint);\n  };\n}\nfunction _getFetchBreadcrumbHandler(client) {\n  return function _fetchBreadcrumb(handlerData) {\n    if (getClient() !== client) {\n      return;\n    }\n    const { startTimestamp, endTimestamp } = handlerData;\n    if (!endTimestamp) {\n      return;\n    }\n    if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === \"POST\") {\n      return;\n    }\n    if (handlerData.error) {\n      const hint = {\n        data: handlerData.error,\n        input: handlerData.args,\n        startTimestamp,\n        endTimestamp\n      };\n      const breadcrumb = {\n        category: \"fetch\",\n        data: handlerData.fetchData,\n        level: \"error\",\n        type: \"http\"\n      };\n      client.emit(\"beforeOutgoingRequestBreadcrumb\", breadcrumb, hint);\n      addBreadcrumb(breadcrumb, hint);\n    } else {\n      const response = handlerData.response;\n      const data = {\n        ...handlerData.fetchData,\n        status_code: response?.status\n      };\n      const hint = {\n        input: handlerData.args,\n        response,\n        startTimestamp,\n        endTimestamp\n      };\n      const breadcrumb = {\n        category: \"fetch\",\n        data,\n        type: \"http\",\n        level: getBreadcrumbLogLevelFromHttpStatusCode(data.status_code)\n      };\n      client.emit(\"beforeOutgoingRequestBreadcrumb\", breadcrumb, hint);\n      addBreadcrumb(breadcrumb, hint);\n    }\n  };\n}\nfunction _getHistoryBreadcrumbHandler(client) {\n  return function _historyBreadcrumb(handlerData) {\n    if (getClient() !== client) {\n      return;\n    }\n    let from = handlerData.from;\n    let to = handlerData.to;\n    const parsedLoc = parseUrl(WINDOW.location.href);\n    let parsedFrom = from ? parseUrl(from) : void 0;\n    const parsedTo = parseUrl(to);\n    if (!parsedFrom?.path) {\n      parsedFrom = parsedLoc;\n    }\n    if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n      to = parsedTo.relative;\n    }\n    if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n      from = parsedFrom.relative;\n    }\n    addBreadcrumb({\n      category: \"navigation\",\n      data: {\n        from,\n        to\n      }\n    });\n  };\n}\nfunction _isEvent(event) {\n  return !!event && !!event.target;\n}\n\nexport { breadcrumbsIntegration };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { defineIntegration, fill, getFunctionName, getOriginalFunction } from '@sentry/core/browser';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = \"EventTarget,Window,Node,ApplicationCache,AudioTrackList,BroadcastChannel,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload\".split(\n  \",\"\n);\nconst INTEGRATION_NAME = \"BrowserApiErrors\";\nconst _browserApiErrorsIntegration = ((options = {}) => {\n  const _options = {\n    XMLHttpRequest: true,\n    eventTarget: true,\n    requestAnimationFrame: true,\n    setInterval: true,\n    setTimeout: true,\n    unregisterOriginalCallbacks: false,\n    ...options\n  };\n  return {\n    name: INTEGRATION_NAME,\n    // TODO: This currently only works for the first client this is setup\n    // We may want to adjust this to check for client etc.\n    setupOnce() {\n      if (_options.setTimeout) {\n        fill(WINDOW, \"setTimeout\", _wrapTimeFunction);\n      }\n      if (_options.setInterval) {\n        fill(WINDOW, \"setInterval\", _wrapTimeFunction);\n      }\n      if (_options.requestAnimationFrame) {\n        fill(WINDOW, \"requestAnimationFrame\", _wrapRAF);\n      }\n      if (_options.XMLHttpRequest && \"XMLHttpRequest\" in WINDOW) {\n        fill(XMLHttpRequest.prototype, \"send\", _wrapXHR);\n      }\n      const eventTargetOption = _options.eventTarget;\n      if (eventTargetOption) {\n        const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n        eventTarget.forEach((target) => _wrapEventTarget(target, _options));\n      }\n    }\n  };\n});\nconst browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\nfunction _wrapTimeFunction(original) {\n  return function(...args) {\n    const originalCallback = args[0];\n    args[0] = wrap(originalCallback, {\n      mechanism: {\n        handled: false,\n        type: `auto.browser.browserapierrors.${getFunctionName(original)}`\n      }\n    });\n    return original.apply(this, args);\n  };\n}\nfunction _wrapRAF(original) {\n  return function(callback) {\n    return original.apply(this, [\n      wrap(callback, {\n        mechanism: {\n          data: {\n            handler: getFunctionName(original)\n          },\n          handled: false,\n          type: \"auto.browser.browserapierrors.requestAnimationFrame\"\n        }\n      })\n    ]);\n  };\n}\nfunction _wrapXHR(originalSend) {\n  return function(...args) {\n    const xhr = this;\n    const xmlHttpRequestProps = [\"onload\", \"onerror\", \"onprogress\", \"onreadystatechange\"];\n    xmlHttpRequestProps.forEach((prop) => {\n      if (prop in xhr && typeof xhr[prop] === \"function\") {\n        fill(xhr, prop, function(original) {\n          const wrapOptions = {\n            mechanism: {\n              data: {\n                handler: getFunctionName(original)\n              },\n              handled: false,\n              type: `auto.browser.browserapierrors.xhr.${prop}`\n            }\n          };\n          const originalFunction = getOriginalFunction(original);\n          if (originalFunction) {\n            wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n          }\n          return wrap(original, wrapOptions);\n        });\n      }\n    });\n    return originalSend.apply(this, args);\n  };\n}\nfunction _wrapEventTarget(target, integrationOptions) {\n  const globalObject = WINDOW;\n  const proto = globalObject[target]?.prototype;\n  if (!proto?.hasOwnProperty?.(\"addEventListener\")) {\n    return;\n  }\n  fill(proto, \"addEventListener\", function(original) {\n    return function(eventName, fn, options) {\n      try {\n        if (isEventListenerObject(fn)) {\n          fn.handleEvent = wrap(fn.handleEvent, {\n            mechanism: {\n              data: {\n                handler: getFunctionName(fn),\n                target\n              },\n              handled: false,\n              type: \"auto.browser.browserapierrors.handleEvent\"\n            }\n          });\n        }\n      } catch {\n      }\n      if (integrationOptions.unregisterOriginalCallbacks) {\n        unregisterOriginalCallback(this, eventName, fn);\n      }\n      return original.apply(this, [\n        eventName,\n        wrap(fn, {\n          mechanism: {\n            data: {\n              handler: getFunctionName(fn),\n              target\n            },\n            handled: false,\n            type: \"auto.browser.browserapierrors.addEventListener\"\n          }\n        }),\n        options\n      ]);\n    };\n  });\n  fill(proto, \"removeEventListener\", function(originalRemoveEventListener) {\n    return function(eventName, fn, options) {\n      try {\n        if (Object.prototype.hasOwnProperty.call(fn, \"__sentry_wrapped__\")) {\n          const originalEventHandler = fn.__sentry_wrapped__;\n          if (originalEventHandler) {\n            originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n          }\n        }\n      } catch {\n      }\n      return originalRemoveEventListener.call(this, eventName, fn, options);\n    };\n  });\n}\nfunction isEventListenerObject(obj) {\n  return typeof obj.handleEvent === \"function\";\n}\nfunction unregisterOriginalCallback(target, eventName, fn) {\n  if (target && typeof target === \"object\" && \"removeEventListener\" in target && typeof target.removeEventListener === \"function\") {\n    target.removeEventListener(eventName, fn);\n  }\n}\n\nexport { browserApiErrorsIntegration };\n//# sourceMappingURL=browserapierrors.js.map\n","import { defineIntegration, debug, startSession, captureSession, getIsolationScope } from '@sentry/core/browser';\nimport { whenIdleOrHidden, addHistoryInstrumentationHandler } from '@sentry/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\nconst browserSessionIntegration = defineIntegration((options = {}) => {\n  const lifecycle = options.lifecycle ?? \"route\";\n  return {\n    name: \"BrowserSession\",\n    setupOnce() {\n      if (typeof WINDOW.document === \"undefined\") {\n        DEBUG_BUILD && debug.warn(\"Using the `browserSessionIntegration` in non-browser environments is not supported.\");\n        return;\n      }\n      startSession({ ignoreDuration: true });\n      let initialSessionSent = false;\n      whenIdleOrHidden(() => {\n        if (!initialSessionSent) {\n          captureSession();\n          initialSessionSent = true;\n        }\n      });\n      const isolationScope = getIsolationScope();\n      let previousUser = isolationScope.getUser();\n      isolationScope.addScopeListener((scope) => {\n        const maybeNewUser = scope.getUser();\n        if (previousUser?.id !== maybeNewUser?.id || previousUser?.ip_address !== maybeNewUser?.ip_address) {\n          previousUser = maybeNewUser;\n          if (initialSessionSent) {\n            captureSession();\n          }\n        }\n      });\n      if (lifecycle === \"route\") {\n        addHistoryInstrumentationHandler(({ from, to }) => {\n          if (from !== to) {\n            startSession({ ignoreDuration: true });\n            captureSession();\n            initialSessionSent = true;\n          }\n        });\n      }\n    }\n  };\n});\n\nexport { browserSessionIntegration };\n//# sourceMappingURL=browsersession.js.map\n","import { defineIntegration, safeSetSpanJSONAttributes } from '@sentry/core/browser';\nimport { WINDOW } from '../helpers.js';\n\nconst INTEGRATION_NAME = \"CultureContext\";\nconst _cultureContextIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    preprocessEvent(event) {\n      const culture = getCultureContext();\n      if (culture) {\n        event.contexts = {\n          ...event.contexts,\n          culture: { ...culture, ...event.contexts?.culture }\n        };\n      }\n    },\n    processSegmentSpan(span) {\n      const culture = getCultureContext();\n      if (culture) {\n        safeSetSpanJSONAttributes(span, {\n          \"culture.locale\": culture.locale,\n          \"culture.timezone\": culture.timezone,\n          \"culture.calendar\": culture.calendar\n        });\n      }\n    }\n  };\n});\nconst cultureContextIntegration = defineIntegration(_cultureContextIntegration);\nfunction getCultureContext() {\n  try {\n    const intl = WINDOW.Intl;\n    if (!intl) {\n      return void 0;\n    }\n    const options = intl.DateTimeFormat().resolvedOptions();\n    return {\n      locale: options.locale,\n      timezone: options.timeZone,\n      calendar: options.calendar\n    };\n  } catch {\n    return void 0;\n  }\n}\n\nexport { cultureContextIntegration };\n//# sourceMappingURL=culturecontext.js.map\n","import { defineIntegration, addGlobalErrorInstrumentationHandler, getClient, captureEvent, debug, addGlobalUnhandledRejectionInstrumentationHandler, isPrimitive, UNKNOWN_FUNCTION, getLocationHref, isString, stripDataUrlContent } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\nconst INTEGRATION_NAME = \"GlobalHandlers\";\nconst _globalHandlersIntegration = ((options = {}) => {\n  const _options = {\n    onerror: true,\n    onunhandledrejection: true,\n    ...options\n  };\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      Error.stackTraceLimit = 50;\n    },\n    setup(client) {\n      if (_options.onerror) {\n        _installGlobalOnErrorHandler(client);\n        globalHandlerLog(\"onerror\");\n      }\n      if (_options.onunhandledrejection) {\n        _installGlobalOnUnhandledRejectionHandler(client);\n        globalHandlerLog(\"onunhandledrejection\");\n      }\n    }\n  };\n});\nconst globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\nfunction _installGlobalOnErrorHandler(client) {\n  addGlobalErrorInstrumentationHandler((data) => {\n    const { stackParser, attachStacktrace } = getOptions();\n    if (getClient() !== client || shouldIgnoreOnError()) {\n      return;\n    }\n    const { msg, url, line, column, error } = data;\n    const event = _enhanceEventWithInitialFrame(\n      eventFromUnknownInput(stackParser, error || msg, void 0, attachStacktrace, false),\n      url,\n      line,\n      column\n    );\n    event.level = \"error\";\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: \"auto.browser.global_handlers.onerror\"\n      }\n    });\n  });\n}\nfunction _installGlobalOnUnhandledRejectionHandler(client) {\n  addGlobalUnhandledRejectionInstrumentationHandler((e) => {\n    const { stackParser, attachStacktrace } = getOptions();\n    if (getClient() !== client || shouldIgnoreOnError()) {\n      return;\n    }\n    const error = _getUnhandledRejectionError(e);\n    const event = isPrimitive(error) ? _eventFromRejectionWithPrimitive(error) : eventFromUnknownInput(stackParser, error, void 0, attachStacktrace, true);\n    event.level = \"error\";\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: \"auto.browser.global_handlers.onunhandledrejection\"\n      }\n    });\n  });\n}\nfunction _getUnhandledRejectionError(error) {\n  if (isPrimitive(error)) {\n    return error;\n  }\n  try {\n    if (\"reason\" in error) {\n      return error.reason;\n    }\n    if (\"detail\" in error && \"reason\" in error.detail) {\n      return error.detail.reason;\n    }\n  } catch {\n  }\n  return error;\n}\nfunction _eventFromRejectionWithPrimitive(reason) {\n  return {\n    exception: {\n      values: [\n        {\n          type: \"UnhandledRejection\",\n          // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n          value: `Non-Error promise rejection captured with value: ${String(reason)}`\n        }\n      ]\n    }\n  };\n}\nfunction _enhanceEventWithInitialFrame(event, url, lineno, colno) {\n  const e = event.exception = event.exception || {};\n  const ev = e.values = e.values || [];\n  const ev0 = ev[0] = ev[0] || {};\n  const ev0s = ev0.stacktrace = ev0.stacktrace || {};\n  const ev0sf = ev0s.frames = ev0s.frames || [];\n  if (ev0sf.length === 0) {\n    ev0sf.push({\n      colno,\n      lineno,\n      filename: getFilenameFromUrl(url) ?? getLocationHref(),\n      function: UNKNOWN_FUNCTION,\n      in_app: true\n    });\n  }\n  return event;\n}\nfunction globalHandlerLog(type) {\n  DEBUG_BUILD && debug.log(`Global Handler attached: ${type}`);\n}\nfunction getOptions() {\n  const client = getClient();\n  const options = client?.getOptions() || {\n    stackParser: () => [],\n    attachStacktrace: false\n  };\n  return options;\n}\nfunction getFilenameFromUrl(url) {\n  if (!isString(url) || url.length === 0) {\n    return void 0;\n  }\n  if (url.startsWith(\"data:\")) {\n    return `<${stripDataUrlContent(url, false)}>`;\n  }\n  return url;\n}\n\nexport { _eventFromRejectionWithPrimitive, _getUnhandledRejectionError, globalHandlersIntegration };\n//# sourceMappingURL=globalhandlers.js.map\n","import { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_OP, safeSetSpanJSONAttributes } from '@sentry/core/browser';\nimport { WINDOW, getHttpRequestData } from '../helpers.js';\nimport { URL_FULL } from '@sentry/conventions/attributes';\n\nconst httpContextIntegration = defineIntegration(() => {\n  return {\n    name: \"HttpContext\",\n    preprocessEvent(event) {\n      if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n        return;\n      }\n      const reqData = getHttpRequestData();\n      const headers = {\n        ...reqData.headers,\n        ...event.request?.headers\n      };\n      event.request = {\n        ...reqData,\n        ...event.request,\n        headers\n      };\n    },\n    processSegmentSpan(span) {\n      const spanOp = span.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP];\n      if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n        return;\n      }\n      const reqData = getHttpRequestData();\n      safeSetSpanJSONAttributes(span, {\n        // Coerce empty string to undefined so the helper's nullish check drops it,\n        // rather than writing an empty `url.full` attribute onto the span.\n        [URL_FULL]: spanOp !== \"http.client\" ? reqData.url : void 0,\n        \"http.request.header.user_agent\": reqData.headers[\"User-Agent\"],\n        \"http.request.header.referer\": reqData.headers[\"Referer\"]\n      });\n    }\n  };\n});\n\nexport { httpContextIntegration };\n//# sourceMappingURL=httpcontext.js.map\n","import { defineIntegration, applyAggregateErrorsToEvent } from '@sentry/core/browser';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = \"cause\";\nconst DEFAULT_LIMIT = 5;\nconst INTEGRATION_NAME = \"LinkedErrors\";\nconst _linkedErrorsIntegration = ((options = {}) => {\n  const limit = options.limit || DEFAULT_LIMIT;\n  const key = options.key || DEFAULT_KEY;\n  return {\n    name: INTEGRATION_NAME,\n    preprocessEvent(event, hint, client) {\n      const options2 = client.getOptions();\n      applyAggregateErrorsToEvent(\n        // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n        exceptionFromError,\n        options2.stackParser,\n        key,\n        limit,\n        event,\n        hint\n      );\n    }\n  };\n});\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n","import { isElement, htmlTreeAsString } from '@sentry/browser-utils';\n\nconst HTML_ELEMENT_CONSTRUCTOR_NAME_REGEX = /^HTML(\\w*)Element$/;\nfunction normalizeStringifyValue(value) {\n  if (typeof window !== \"undefined\" && value === window) {\n    return \"[Window]\";\n  }\n  if (typeof document !== \"undefined\" && value === document) {\n    return \"[Document]\";\n  }\n  if (isElement(value)) {\n    const objName = getConstructorName(value);\n    if (HTML_ELEMENT_CONSTRUCTOR_NAME_REGEX.test(objName)) {\n      return `[HTMLElement: ${htmlTreeAsString(value)}]`;\n    }\n  }\n  return void 0;\n}\nfunction getConstructorName(value) {\n  const prototype = Object.getPrototypeOf(value);\n  return prototype?.constructor ? prototype.constructor.name : \"null prototype\";\n}\n\nexport { normalizeStringifyValue };\n//# sourceMappingURL=normalizeStringifyValue.js.map\n","import { consoleSandbox, getLocationHref } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\nfunction checkAndWarnIfIsEmbeddedBrowserExtension() {\n  if (_isEmbeddedBrowserExtension()) {\n    if (DEBUG_BUILD) {\n      consoleSandbox(() => {\n        console.error(\n          \"[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/\"\n        );\n      });\n    }\n    return true;\n  }\n  return false;\n}\nfunction _isEmbeddedBrowserExtension() {\n  if (typeof WINDOW.window === \"undefined\") {\n    return false;\n  }\n  const _window = WINDOW;\n  if (_window.nw) {\n    return false;\n  }\n  const extensionObject = _window[\"chrome\"] || _window[\"browser\"];\n  if (!extensionObject?.runtime?.id) {\n    return false;\n  }\n  const href = getLocationHref();\n  const isDedicatedExtensionPage = WINDOW === WINDOW.top && /^(?:chrome-extension|moz-extension|ms-browser-extension|safari-web-extension):\\/\\//.test(href);\n  return !isDedicatedExtensionPage;\n}\n\nexport { checkAndWarnIfIsEmbeddedBrowserExtension };\n//# sourceMappingURL=detectBrowserExtension.js.map\n","import { inboundFiltersIntegration, functionToStringIntegration, conversationIdIntegration, dedupeIntegration, getIntegrationsToSetup, stackParserFromStackParserOptions, setNormalizeStringifier, initAndBind } from '@sentry/core/browser';\nimport { BrowserClient } from './client.js';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs.js';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors.js';\nimport { browserSessionIntegration } from './integrations/browsersession.js';\nimport { cultureContextIntegration } from './integrations/culturecontext.js';\nimport { globalHandlersIntegration } from './integrations/globalhandlers.js';\nimport { httpContextIntegration } from './integrations/httpcontext.js';\nimport { linkedErrorsIntegration } from './integrations/linkederrors.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { normalizeStringifyValue } from './normalizeStringifyValue.js';\nimport { checkAndWarnIfIsEmbeddedBrowserExtension } from './utils/detectBrowserExtension.js';\n\nfunction getDefaultIntegrations(_options) {\n  return [\n    // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n    // eslint-disable-next-line typescript/no-deprecated\n    inboundFiltersIntegration(),\n    functionToStringIntegration(),\n    conversationIdIntegration(),\n    browserApiErrorsIntegration(),\n    breadcrumbsIntegration(),\n    globalHandlersIntegration(),\n    linkedErrorsIntegration(),\n    dedupeIntegration(),\n    httpContextIntegration(),\n    cultureContextIntegration(),\n    browserSessionIntegration()\n  ];\n}\nfunction init(options = {}) {\n  const shouldDisableBecauseIsBrowserExtenstion = !options.skipBrowserExtensionCheck && checkAndWarnIfIsEmbeddedBrowserExtension();\n  let defaultIntegrations = options.defaultIntegrations == null ? getDefaultIntegrations() : options.defaultIntegrations;\n  const clientOptions = {\n    ...options,\n    enabled: shouldDisableBecauseIsBrowserExtenstion ? false : options.enabled,\n    stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n    integrations: getIntegrationsToSetup({\n      integrations: options.integrations,\n      defaultIntegrations\n    }),\n    transport: options.transport || makeFetchTransport\n  };\n  setNormalizeStringifier(normalizeStringifyValue);\n  return initAndBind(BrowserClient, clientOptions);\n}\nfunction forceLoad() {\n}\nfunction onLoad(callback) {\n  callback();\n}\n\nexport { forceLoad, getDefaultIntegrations, init, onLoad };\n//# sourceMappingURL=sdk.js.map\n","import { defineIntegration, supportsNativeFetch, addFetchInstrumentationHandler, getClient, GLOBAL_OBJ, debug, _INTERNAL_filterKeyValueData, _INTERNAL_filterCookies, captureEvent, isSentryRequestUrl, addExceptionMechanism } from '@sentry/core/browser';\nimport { addXhrInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = \"HttpClient\";\nconst _httpClientIntegration = ((options = {}) => {\n  const _options = {\n    failedRequestStatusCodes: [[500, 599]],\n    failedRequestTargets: [/.*/],\n    ...options\n  };\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      _wrapFetch(client, _options);\n      _wrapXHR(client, _options);\n    }\n  };\n});\nconst httpClientIntegration = defineIntegration(_httpClientIntegration);\nfunction _fetchResponseHandler(options, requestInfo, response, requestInit, error) {\n  if (_shouldCaptureResponse(options, response.status, response.url)) {\n    const request = _getRequest(requestInfo, requestInit);\n    let requestHeaders, responseHeaders, requestCookies, responseCookies;\n    const dc = _getDataCollectionSettings();\n    if (dc.requestHeaders !== false) {\n      requestHeaders = _INTERNAL_filterKeyValueData(_extractFetchHeaders(request.headers), dc.requestHeaders);\n    }\n    if (dc.responseHeaders !== false) {\n      responseHeaders = _INTERNAL_filterKeyValueData(_extractFetchHeaders(response.headers), dc.responseHeaders);\n    }\n    if (dc.cookies !== false) {\n      const reqCookieStr = request.headers.get(\"Cookie\") || void 0;\n      if (reqCookieStr) {\n        const filtered = _INTERNAL_filterCookies(reqCookieStr, dc.cookies);\n        if (typeof filtered === \"object\") {\n          requestCookies = filtered;\n        }\n      }\n      const resCookieStr = response.headers.get(\"Set-Cookie\") || void 0;\n      if (resCookieStr) {\n        const filtered = _INTERNAL_filterCookies(resCookieStr, dc.cookies);\n        if (typeof filtered === \"object\") {\n          responseCookies = filtered;\n        }\n      }\n    }\n    const event = _createEvent({\n      url: request.url,\n      method: request.method,\n      status: response.status,\n      requestHeaders,\n      responseHeaders,\n      requestCookies,\n      responseCookies,\n      error,\n      type: \"fetch\"\n    });\n    captureEvent(event);\n  }\n}\nfunction _xhrResponseHandler(options, xhr, method, headers, error) {\n  if (_shouldCaptureResponse(options, xhr.status, xhr.responseURL)) {\n    let requestHeaders, responseCookies, responseHeaders;\n    const dc = _getDataCollectionSettings();\n    if (dc.cookies !== false) {\n      try {\n        const cookieString = xhr.getResponseHeader(\"Set-Cookie\") || xhr.getResponseHeader(\"set-cookie\") || void 0;\n        if (cookieString) {\n          const filtered = _INTERNAL_filterCookies(cookieString, dc.cookies);\n          if (typeof filtered === \"object\") {\n            responseCookies = filtered;\n          }\n        }\n      } catch {\n      }\n    }\n    if (dc.responseHeaders !== false) {\n      try {\n        responseHeaders = _INTERNAL_filterKeyValueData(_getXHRResponseHeaders(xhr), dc.responseHeaders);\n      } catch {\n      }\n    }\n    if (dc.requestHeaders !== false) {\n      requestHeaders = _INTERNAL_filterKeyValueData(headers, dc.requestHeaders);\n    }\n    const event = _createEvent({\n      url: xhr.responseURL,\n      method,\n      status: xhr.status,\n      requestHeaders,\n      // Can't access request cookies from XHR\n      responseHeaders,\n      responseCookies,\n      error,\n      type: \"xhr\"\n    });\n    captureEvent(event);\n  }\n}\nfunction _getResponseSizeFromHeaders(headers) {\n  if (headers) {\n    const contentLength = headers[\"Content-Length\"] || headers[\"content-length\"];\n    if (contentLength) {\n      return parseInt(contentLength, 10);\n    }\n  }\n  return void 0;\n}\nfunction _extractFetchHeaders(headers) {\n  const result = {};\n  headers.forEach((value, key) => {\n    result[key] = value;\n  });\n  return result;\n}\nfunction _getXHRResponseHeaders(xhr) {\n  const headers = xhr.getAllResponseHeaders();\n  if (!headers) {\n    return {};\n  }\n  return headers.split(\"\\r\\n\").reduce((acc, line) => {\n    const [key, value] = line.split(\": \");\n    if (key && value) {\n      acc[key] = value;\n    }\n    return acc;\n  }, {});\n}\nfunction _isInGivenRequestTargets(failedRequestTargets, target) {\n  return failedRequestTargets.some((givenRequestTarget) => {\n    if (typeof givenRequestTarget === \"string\") {\n      return target.includes(givenRequestTarget);\n    }\n    return givenRequestTarget.test(target);\n  });\n}\nfunction _isInGivenStatusRanges(failedRequestStatusCodes, status) {\n  return failedRequestStatusCodes.some((range) => {\n    if (typeof range === \"number\") {\n      return range === status;\n    }\n    return status >= range[0] && status <= range[1];\n  });\n}\nfunction _wrapFetch(client, options) {\n  if (!supportsNativeFetch()) {\n    return;\n  }\n  addFetchInstrumentationHandler((handlerData) => {\n    if (getClient() !== client) {\n      return;\n    }\n    const { response, args, error, virtualError } = handlerData;\n    const [requestInfo, requestInit] = args;\n    if (!response) {\n      return;\n    }\n    _fetchResponseHandler(options, requestInfo, response, requestInit, error || virtualError);\n  }, false);\n}\nfunction _wrapXHR(client, options) {\n  if (!(\"XMLHttpRequest\" in GLOBAL_OBJ)) {\n    return;\n  }\n  addXhrInstrumentationHandler((handlerData) => {\n    if (getClient() !== client) {\n      return;\n    }\n    const { error, virtualError } = handlerData;\n    const xhr = handlerData.xhr;\n    const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n    if (!sentryXhrData) {\n      return;\n    }\n    const { method, request_headers: headers } = sentryXhrData;\n    try {\n      _xhrResponseHandler(options, xhr, method, headers, error || virtualError);\n    } catch (e) {\n      DEBUG_BUILD && debug.warn(\"Error while extracting response event form XHR response\", e);\n    }\n  });\n}\nfunction _shouldCaptureResponse(options, status, url) {\n  return _isInGivenStatusRanges(options.failedRequestStatusCodes, status) && _isInGivenRequestTargets(options.failedRequestTargets, url) && !isSentryRequestUrl(url, getClient());\n}\nfunction _createEvent(data) {\n  const client = getClient();\n  const virtualStackTrace = client && data.error && data.error instanceof Error ? data.error.stack : void 0;\n  const stack = virtualStackTrace && client ? client.getOptions().stackParser(virtualStackTrace, 0, 1) : void 0;\n  const message = `HTTP Client Error with status code: ${data.status}`;\n  const event = {\n    message,\n    exception: {\n      values: [\n        {\n          type: \"Error\",\n          value: message,\n          stacktrace: stack ? { frames: stack } : void 0\n        }\n      ]\n    },\n    request: {\n      url: data.url,\n      method: data.method,\n      headers: data.requestHeaders,\n      cookies: data.requestCookies\n    },\n    contexts: {\n      response: {\n        status_code: data.status,\n        headers: data.responseHeaders,\n        cookies: data.responseCookies,\n        body_size: _getResponseSizeFromHeaders(data.responseHeaders)\n      }\n    }\n  };\n  addExceptionMechanism(event, {\n    type: `auto.http.client.${data.type}`,\n    handled: false\n  });\n  return event;\n}\nfunction _getRequest(requestInfo, requestInit) {\n  if (!requestInit && requestInfo instanceof Request) {\n    return requestInfo;\n  }\n  if (requestInfo instanceof Request && requestInfo.bodyUsed) {\n    return requestInfo;\n  }\n  return new Request(requestInfo, requestInit);\n}\nfunction _getDataCollectionSettings() {\n  const client = getClient();\n  if (!client) {\n    return { cookies: false, requestHeaders: false, responseHeaders: false };\n  }\n  const options = client.getOptions();\n  if (options.dataCollection == null) {\n    const enabled = Boolean(options.sendDefaultPii);\n    return { cookies: enabled, requestHeaders: enabled, responseHeaders: enabled };\n  }\n  const { cookies, httpHeaders } = client.getDataCollectionOptions();\n  return { cookies, requestHeaders: httpHeaders.request, responseHeaders: httpHeaders.response };\n}\n\nexport { httpClientIntegration };\n//# sourceMappingURL=httpclient.js.map\n","import { GLOBAL_OBJ, normalize, isObjectLike, fill, browserPerformanceTimeOrigin, debug as debug$1, severityLevelFromString, captureException, addBreadcrumb, uuid4, getClient, getLocationHref, getCurrentScope, getActiveSpan, getDynamicSamplingContextFromSpan, isSentryRequestUrl, stringMatchesSomePattern, addEventProcessor, debounce as debounce$1, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, prepareEvent, getIsolationScope, updateRateLimits, isRateLimited, setContext, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, isBrowser, safeSetSpanJSONAttributes, parseSampleRate, consoleSandbox } from '@sentry/core';\nimport { setTimeout as setTimeout$3, htmlTreeAsString, addPerformanceInstrumentationHandler, addLcpInstrumentationHandler, addClsInstrumentationHandler, addInpInstrumentationHandler, serializeFormData, getFetchRequestArgBody, getBodyString, SENTRY_XHR_DATA_KEY, parseXhrResponseHeaders, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry/browser-utils';\n\nconst WINDOW = GLOBAL_OBJ;\nconst REPLAY_SESSION_KEY = \"sentryReplaySession\";\nconst REPLAY_EVENT_NAME = \"replay_event\";\nconst UNABLE_TO_SEND_REPLAY = \"Unable to send Replay\";\nconst SESSION_IDLE_PAUSE_DURATION = 3e5;\nconst SESSION_IDLE_EXPIRE_DURATION = 9e5;\nconst DEFAULT_FLUSH_MIN_DELAY = 5e3;\nconst DEFAULT_FLUSH_MAX_DELAY = 5500;\nconst BUFFER_CHECKOUT_TIME = 6e4;\nconst RETRY_BASE_INTERVAL = 5e3;\nconst RETRY_MAX_COUNT = 3;\nconst NETWORK_BODY_MAX_SIZE = 15e4;\nconst CONSOLE_ARG_MAX_SIZE = 5e3;\nconst SLOW_CLICK_THRESHOLD = 3e3;\nconst SLOW_CLICK_SCROLL_TIMEOUT = 300;\nconst REPLAY_MAX_EVENT_BUFFER_SIZE = 2e7;\nconst MIN_REPLAY_DURATION = 4999;\nconst MIN_REPLAY_DURATION_LIMIT = 5e4;\nconst MAX_REPLAY_DURATION = 36e5;\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType$1 || {});\nfunction isElement$1(n) {\n  return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n  const host = n?.host;\n  return Boolean(host?.shadowRoot === n);\n}\nfunction isNativeShadowDom(shadowRoot) {\n  return Object.prototype.toString.call(shadowRoot) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n  if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n    cssText = cssText.replace(\n      /\\sbackground-clip:\\s*text;/g,\n      \" -webkit-background-clip: text; background-clip: text;\"\n    );\n  }\n  return cssText;\n}\nfunction escapeImportStatement(rule) {\n  const { cssText } = rule;\n  if (cssText.split('\"').length < 3) return cssText;\n  const statement = [\"@import\", `url(${JSON.stringify(rule.href)})`];\n  if (rule.layerName === \"\") {\n    statement.push(`layer`);\n  } else if (rule.layerName) {\n    statement.push(`layer(${rule.layerName})`);\n  }\n  if (rule.supportsText) {\n    statement.push(`supports(${rule.supportsText})`);\n  }\n  if (rule.media.length) {\n    statement.push(rule.media.mediaText);\n  }\n  return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s) {\n  try {\n    const rules = s.rules || s.cssRules;\n    return rules ? fixBrowserCompatibilityIssuesInCSS(\n      Array.from(rules, stringifyRule).join(\"\")\n    ) : null;\n  } catch (error) {\n    return null;\n  }\n}\nfunction fixAllCssProperty(rule) {\n  let styles = \"\";\n  for (let i2 = 0; i2 < rule.style.length; i2++) {\n    const styleDeclaration = rule.style;\n    const attribute = styleDeclaration[i2];\n    const isImportant = styleDeclaration.getPropertyPriority(attribute);\n    styles += `${attribute}:${styleDeclaration.getPropertyValue(attribute)}${isImportant ? ` !important` : \"\"};`;\n  }\n  return `${rule.selectorText} { ${styles} }`;\n}\nfunction stringifyRule(rule) {\n  let importStringified;\n  if (isCSSImportRule(rule)) {\n    try {\n      importStringified = // for same-origin stylesheets,\n      // we can access the imported stylesheet rules directly\n      stringifyStylesheet(rule.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n      escapeImportStatement(rule);\n    } catch (error) {\n    }\n  } else if (isCSSStyleRule(rule)) {\n    let cssText = rule.cssText;\n    const needsSafariColonFix = rule.selectorText.includes(\":\");\n    const needsAllFix = typeof rule.style[\"all\"] === \"string\" && rule.style[\"all\"];\n    if (needsAllFix) {\n      cssText = fixAllCssProperty(rule);\n    }\n    if (needsSafariColonFix) {\n      cssText = fixSafariColons(cssText);\n    }\n    if (needsSafariColonFix || needsAllFix) {\n      return cssText;\n    }\n  }\n  return importStringified || rule.cssText;\n}\nfunction fixSafariColons(cssStringified) {\n  const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n  return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule) {\n  return \"styleSheet\" in rule;\n}\nfunction isCSSStyleRule(rule) {\n  return \"selectorText\" in rule;\n}\nclass Mirror {\n  constructor() {\n    __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n) {\n    if (!n) return -1;\n    const id = this.getMeta(n)?.id;\n    return id ?? -1;\n  }\n  getNode(id) {\n    return this.idNodeMap.get(id) || null;\n  }\n  getIds() {\n    return Array.from(this.idNodeMap.keys());\n  }\n  getMeta(n) {\n    return this.nodeMetaMap.get(n) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n) {\n    const id = this.getId(n);\n    this.idNodeMap.delete(id);\n    if (n.childNodes) {\n      n.childNodes.forEach(\n        (childNode) => this.removeNodeFromMap(childNode)\n      );\n    }\n  }\n  has(id) {\n    return this.idNodeMap.has(id);\n  }\n  hasNode(node) {\n    return this.nodeMetaMap.has(node);\n  }\n  add(n, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n);\n    this.nodeMetaMap.set(n, meta);\n  }\n  replace(id, n) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n, meta);\n    }\n    this.idNodeMap.set(id, n);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n}\nfunction createMirror() {\n  return new Mirror();\n}\nfunction shouldMaskInput({\n  maskInputOptions,\n  tagName,\n  type\n}) {\n  if (tagName === \"OPTION\") {\n    tagName = \"SELECT\";\n  }\n  return Boolean(\n    maskInputOptions[tagName.toLowerCase()] || type && maskInputOptions[type] || type === \"password\" || // Default to \"text\" option for inputs without a \"type\" attribute defined\n    tagName === \"INPUT\" && !type && maskInputOptions[\"text\"]\n  );\n}\nfunction maskInputValue({\n  isMasked,\n  element,\n  value,\n  maskInputFn\n}) {\n  let text = value || \"\";\n  if (!isMasked) {\n    return text;\n  }\n  if (maskInputFn) {\n    text = maskInputFn(text, element);\n  }\n  return \"*\".repeat(text.length);\n}\nfunction toLowerCase(str) {\n  return str.toLowerCase();\n}\nfunction toUpperCase(str) {\n  return str.toUpperCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n  const ctx = canvas.getContext(\"2d\");\n  if (!ctx) return true;\n  const chunkSize = 50;\n  for (let x = 0; x < canvas.width; x += chunkSize) {\n    for (let y = 0; y < canvas.height; y += chunkSize) {\n      const getImageData = ctx.getImageData;\n      const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n      const pixelBuffer = new Uint32Array(\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n        originalGetImageData.call(\n          ctx,\n          x,\n          y,\n          Math.min(chunkSize, canvas.width - x),\n          Math.min(chunkSize, canvas.height - y)\n        ).data.buffer\n      );\n      if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n    }\n  }\n  return true;\n}\nfunction getInputType(element) {\n  const type = element.type;\n  return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n    toLowerCase(type)\n  ) : null;\n}\nfunction getInputValue(el, tagName, type) {\n  if (tagName === \"INPUT\" && (type === \"radio\" || type === \"checkbox\")) {\n    return el.getAttribute(\"value\") || \"\";\n  }\n  return el.value;\n}\nfunction extractFileExtension(path, baseURL) {\n  let url;\n  try {\n    url = new URL(path, baseURL ?? window.location.href);\n  } catch (err) {\n    return null;\n  }\n  const regex = /\\.([0-9a-z]+)(?:$)/i;\n  const match = url.pathname.match(regex);\n  return match?.[1] ?? null;\n}\nconst cachedImplementations$1 = {};\nfunction getImplementation$1(name) {\n  const cached = cachedImplementations$1[name];\n  if (cached) {\n    return cached;\n  }\n  const document2 = window.document;\n  let impl = window[name];\n  if (document2 && typeof document2.createElement === \"function\") {\n    try {\n      const sandbox = document2.createElement(\"iframe\");\n      sandbox.hidden = true;\n      document2.head.appendChild(sandbox);\n      const contentWindow = sandbox.contentWindow;\n      if (contentWindow && contentWindow[name]) {\n        impl = // eslint-disable-next-line @typescript-eslint/unbound-method\n        contentWindow[name];\n      }\n      document2.head.removeChild(sandbox);\n    } catch (e) {\n    }\n  }\n  return cachedImplementations$1[name] = impl.bind(\n    window\n  );\n}\nfunction setTimeout$1(...rest) {\n  return getImplementation$1(\"setTimeout\")(...rest);\n}\nfunction clearTimeout$1(...rest) {\n  return getImplementation$1(\"clearTimeout\")(...rest);\n}\nfunction getIFrameContentDocument$1(iframe) {\n  try {\n    return iframe.contentDocument;\n  } catch {\n  }\n}\nfunction getIFrameContentWindow$1(iframe) {\n  try {\n    return iframe.contentWindow;\n  } catch {\n  }\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n  return _id++;\n}\nfunction getValidTagName(element) {\n  if (element instanceof HTMLFormElement) {\n    return \"form\";\n  }\n  const processedTagName = toLowerCase(element.tagName);\n  if (tagNameRegex.test(processedTagName)) {\n    return \"div\";\n  }\n  return processedTagName;\n}\nfunction extractOrigin(url) {\n  let origin = \"\";\n  if (url.indexOf(\"//\") > -1) {\n    origin = url.split(\"/\").slice(0, 3).join(\"/\");\n  } else {\n    origin = url.split(\"/\")[0];\n  }\n  origin = origin.split(\"?\")[0];\n  return origin;\n}\nlet canvasService;\nlet canvasCtx;\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction filterCSSPropertiesFromInlineStyle(cssText, ignoredProperties) {\n  if (!cssText || ignoredProperties.size === 0) {\n    return cssText;\n  }\n  try {\n    const properties = cssText.split(\";\");\n    const filteredProperties = [];\n    for (let property of properties) {\n      property = property.trim();\n      if (!property) continue;\n      const colonIndex = property.indexOf(\":\");\n      if (colonIndex === -1) {\n        filteredProperties.push(property);\n        continue;\n      }\n      const propertyName = property.slice(0, colonIndex).trim();\n      if (!ignoredProperties.has(propertyName)) {\n        filteredProperties.push(property);\n      }\n    }\n    return filteredProperties.join(\"; \") + (filteredProperties.length > 0 && cssText.endsWith(\";\") ? \";\" : \"\");\n  } catch (error) {\n    console.warn(\"Error filtering CSS properties:\", error);\n    return cssText;\n  }\n}\nfunction absoluteToStylesheet(cssText, href) {\n  return (cssText || \"\").replace(\n    URL_IN_CSS_REF,\n    (origin, quote1, path1, quote2, path2, path3) => {\n      const filePath = path1 || path2 || path3;\n      const maybeQuote = quote1 || quote2 || \"\";\n      if (!filePath) {\n        return origin;\n      }\n      if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n        return `url(${maybeQuote}${filePath}${maybeQuote})`;\n      }\n      if (DATA_URI.test(filePath)) {\n        return `url(${maybeQuote}${filePath}${maybeQuote})`;\n      }\n      if (filePath[0] === \"/\") {\n        return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n      }\n      const stack = href.split(\"/\");\n      const parts = filePath.split(\"/\");\n      stack.pop();\n      for (const part of parts) {\n        if (part === \".\") {\n          continue;\n        } else if (part === \"..\") {\n          stack.pop();\n        } else {\n          stack.push(part);\n        }\n      }\n      return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n    }\n  );\n}\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n  if (attributeValue.trim() === \"\") {\n    return attributeValue;\n  }\n  let pos = 0;\n  function collectCharacters(regEx) {\n    let chars2;\n    const match = regEx.exec(attributeValue.substring(pos));\n    if (match) {\n      chars2 = match[0];\n      pos += chars2.length;\n      return chars2;\n    }\n    return \"\";\n  }\n  const output = [];\n  while (true) {\n    collectCharacters(SRCSET_COMMAS_OR_SPACES);\n    if (pos >= attributeValue.length) {\n      break;\n    }\n    let url = collectCharacters(SRCSET_NOT_SPACES);\n    if (url.slice(-1) === \",\") {\n      url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n      output.push(url);\n    } else {\n      let descriptorsStr = \"\";\n      url = absoluteToDoc(doc, url);\n      let inParens = false;\n      while (true) {\n        const c = attributeValue.charAt(pos);\n        if (c === \"\") {\n          output.push((url + descriptorsStr).trim());\n          break;\n        } else if (!inParens) {\n          if (c === \",\") {\n            pos += 1;\n            output.push((url + descriptorsStr).trim());\n            break;\n          } else if (c === \"(\") {\n            inParens = true;\n          }\n        } else {\n          if (c === \")\") {\n            inParens = false;\n          }\n        }\n        descriptorsStr += c;\n        pos += 1;\n      }\n    }\n  }\n  return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n  if (!attributeValue || attributeValue.trim() === \"\") {\n    return attributeValue;\n  }\n  return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n  return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n  let a = cachedDocument.get(doc);\n  if (!a) {\n    a = doc.createElement(\"a\");\n    cachedDocument.set(doc, a);\n  }\n  if (!customHref) {\n    customHref = \"\";\n  } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n    return customHref;\n  }\n  a.setAttribute(\"href\", customHref);\n  return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn, ignoreCSSAttributes) {\n  if (!value) {\n    return value;\n  }\n  if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n    return absoluteToDoc(doc, value);\n  } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n    return absoluteToDoc(doc, value);\n  } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n    return absoluteToDoc(doc, value);\n  } else if (name === \"srcset\") {\n    return getAbsoluteSrcsetString(doc, value);\n  } else if (name === \"style\") {\n    let processedStyle = absoluteToStylesheet(value, getHref(doc));\n    if (ignoreCSSAttributes && ignoreCSSAttributes.size > 0) {\n      processedStyle = filterCSSPropertiesFromInlineStyle(\n        processedStyle,\n        ignoreCSSAttributes\n      );\n    }\n    return processedStyle;\n  } else if (tagName === \"object\" && name === \"data\") {\n    return absoluteToDoc(doc, value);\n  }\n  if (typeof maskAttributeFn === \"function\") {\n    return maskAttributeFn(name, value, element);\n  }\n  return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n  return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\n  try {\n    if (unblockSelector && element.matches(unblockSelector)) {\n      return false;\n    }\n    if (typeof blockClass === \"string\") {\n      if (element.classList.contains(blockClass)) {\n        return true;\n      }\n    } else {\n      for (let eIndex = element.classList.length; eIndex--; ) {\n        const className = element.classList[eIndex];\n        if (blockClass.test(className)) {\n          return true;\n        }\n      }\n    }\n    if (blockSelector) {\n      return element.matches(blockSelector);\n    }\n  } catch (e) {\n  }\n  return false;\n}\nfunction elementClassMatchesRegex(el, regex) {\n  for (let eIndex = el.classList.length; eIndex--; ) {\n    const className = el.classList[eIndex];\n    if (regex.test(className)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n  if (!node) return -1;\n  if (node.nodeType !== node.ELEMENT_NODE) return -1;\n  if (distance > limit) return -1;\n  if (matchPredicate(node)) return distance;\n  return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n  return (node) => {\n    const el = node;\n    if (el === null) return false;\n    try {\n      if (className) {\n        if (typeof className === \"string\") {\n          if (el.matches(`.${className}`)) return true;\n        } else if (elementClassMatchesRegex(el, className)) {\n          return true;\n        }\n      }\n      if (selector && el.matches(selector)) return true;\n      return false;\n    } catch {\n      return false;\n    }\n  };\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\n  try {\n    const el = node.nodeType === node.ELEMENT_NODE ? node : node.parentElement;\n    if (el === null) return false;\n    if (el.tagName === \"INPUT\") {\n      const autocomplete = el.getAttribute(\"autocomplete\");\n      const disallowedAutocompleteValues = [\n        \"current-password\",\n        \"new-password\",\n        \"cc-number\",\n        \"cc-exp\",\n        \"cc-exp-month\",\n        \"cc-exp-year\",\n        \"cc-csc\"\n      ];\n      if (disallowedAutocompleteValues.includes(autocomplete)) {\n        return true;\n      }\n    }\n    let maskDistance = -1;\n    let unmaskDistance = -1;\n    if (maskAllText) {\n      unmaskDistance = distanceToMatch(\n        el,\n        createMatchPredicate(unmaskTextClass, unmaskTextSelector)\n      );\n      if (unmaskDistance < 0) {\n        return true;\n      }\n      maskDistance = distanceToMatch(\n        el,\n        createMatchPredicate(maskTextClass, maskTextSelector),\n        unmaskDistance >= 0 ? unmaskDistance : Infinity\n      );\n    } else {\n      maskDistance = distanceToMatch(\n        el,\n        createMatchPredicate(maskTextClass, maskTextSelector)\n      );\n      if (maskDistance < 0) {\n        return false;\n      }\n      unmaskDistance = distanceToMatch(\n        el,\n        createMatchPredicate(unmaskTextClass, unmaskTextSelector),\n        maskDistance >= 0 ? maskDistance : Infinity\n      );\n    }\n    return maskDistance >= 0 ? unmaskDistance >= 0 ? maskDistance <= unmaskDistance : true : unmaskDistance >= 0 ? false : !!maskAllText;\n  } catch (e) {\n  }\n  return !!maskAllText;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n  const win = getIFrameContentWindow$1(iframeEl);\n  if (!win) {\n    return;\n  }\n  let fired = false;\n  let readyState;\n  try {\n    readyState = win.document.readyState;\n  } catch (error) {\n    return;\n  }\n  if (readyState !== \"complete\") {\n    const timer = setTimeout$1(() => {\n      if (!fired) {\n        listener();\n        fired = true;\n      }\n    }, iframeLoadTimeout);\n    iframeEl.addEventListener(\"load\", () => {\n      clearTimeout$1(timer);\n      fired = true;\n      listener();\n    });\n    return;\n  }\n  const blankUrl = \"about:blank\";\n  if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n    setTimeout$1(listener, 0);\n    return iframeEl.addEventListener(\"load\", listener);\n  }\n  iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n  let fired = false;\n  let styleSheetLoaded;\n  try {\n    styleSheetLoaded = link.sheet;\n  } catch (error) {\n    styleSheetLoaded = null;\n  }\n  if (styleSheetLoaded) return;\n  const timer = setTimeout$1(() => {\n    if (!fired) {\n      listener();\n      fired = true;\n    }\n  }, styleSheetLoadTimeout);\n  link.addEventListener(\"load\", () => {\n    clearTimeout$1(timer);\n    fired = true;\n    listener();\n  });\n}\nfunction serializeNode(n, options) {\n  const {\n    doc,\n    mirror,\n    blockClass,\n    blockSelector,\n    unblockSelector,\n    maskAllText,\n    maskAttributeFn,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    inlineStylesheet,\n    maskInputOptions = {},\n    maskTextFn,\n    maskInputFn,\n    dataURLOptions = {},\n    inlineImages,\n    recordCanvas,\n    keepIframeSrcFn,\n    newlyAddedElement = false,\n    ignoreCSSAttributes\n  } = options;\n  const rootId = getRootId(doc, mirror);\n  switch (n.nodeType) {\n    case n.DOCUMENT_NODE:\n      if (n.compatMode !== \"CSS1Compat\") {\n        return {\n          type: NodeType$1.Document,\n          childNodes: [],\n          compatMode: n.compatMode\n          // probably \"BackCompat\"\n        };\n      } else {\n        return {\n          type: NodeType$1.Document,\n          childNodes: []\n        };\n      }\n    case n.DOCUMENT_TYPE_NODE:\n      return {\n        type: NodeType$1.DocumentType,\n        name: n.name,\n        publicId: n.publicId,\n        systemId: n.systemId,\n        rootId\n      };\n    case n.ELEMENT_NODE:\n      return serializeElementNode(n, {\n        doc,\n        blockClass,\n        blockSelector,\n        unblockSelector,\n        inlineStylesheet,\n        maskAttributeFn,\n        maskInputOptions,\n        maskInputFn,\n        dataURLOptions,\n        inlineImages,\n        recordCanvas,\n        keepIframeSrcFn,\n        newlyAddedElement,\n        rootId,\n        maskTextClass,\n        unmaskTextClass,\n        maskTextSelector,\n        unmaskTextSelector,\n        ignoreCSSAttributes\n      });\n    case n.TEXT_NODE:\n      return serializeTextNode(n, {\n        doc,\n        maskAllText,\n        maskTextClass,\n        unmaskTextClass,\n        maskTextSelector,\n        unmaskTextSelector,\n        maskTextFn,\n        maskInputOptions,\n        maskInputFn,\n        rootId\n      });\n    case n.CDATA_SECTION_NODE:\n      return {\n        type: NodeType$1.CDATA,\n        textContent: \"\",\n        rootId\n      };\n    case n.COMMENT_NODE:\n      return {\n        type: NodeType$1.Comment,\n        textContent: n.textContent || \"\",\n        rootId\n      };\n    default:\n      return false;\n  }\n}\nfunction getRootId(doc, mirror) {\n  if (!mirror.hasNode(doc)) return void 0;\n  const docId = mirror.getId(doc);\n  return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n, options) {\n  const {\n    maskAllText,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    maskTextFn,\n    maskInputOptions,\n    maskInputFn,\n    rootId\n  } = options;\n  const parentTagName = n.parentNode && n.parentNode.tagName;\n  let textContent = n.textContent;\n  const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n  const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n  const isTextarea = parentTagName === \"TEXTAREA\" ? true : void 0;\n  if (isStyle && textContent) {\n    try {\n      if (n.nextSibling || n.previousSibling) {\n      } else if (n.parentNode.sheet?.cssRules) {\n        textContent = stringifyStylesheet(\n          n.parentNode.sheet\n        );\n      }\n    } catch (err) {\n      console.warn(\n        `Cannot get CSS styles from text's parentNode. Error: ${err}`,\n        n\n      );\n    }\n    textContent = absoluteToStylesheet(textContent, getHref(options.doc));\n  }\n  if (isScript) {\n    textContent = \"SCRIPT_PLACEHOLDER\";\n  }\n  const forceMask = needMaskingText(\n    n,\n    maskTextClass,\n    maskTextSelector,\n    unmaskTextClass,\n    unmaskTextSelector,\n    maskAllText\n  );\n  if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\n    textContent = maskTextFn ? maskTextFn(textContent, n.parentElement) : textContent.replace(/[\\S]/g, \"*\");\n  }\n  if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\n    textContent = maskInputFn ? maskInputFn(textContent, n.parentNode) : textContent.replace(/[\\S]/g, \"*\");\n  }\n  if (parentTagName === \"OPTION\" && textContent) {\n    const isInputMasked = shouldMaskInput({\n      type: null,\n      tagName: parentTagName,\n      maskInputOptions\n    });\n    textContent = maskInputValue({\n      isMasked: needMaskingText(\n        n,\n        maskTextClass,\n        maskTextSelector,\n        unmaskTextClass,\n        unmaskTextSelector,\n        isInputMasked\n      ),\n      element: n,\n      value: textContent,\n      maskInputFn\n    });\n  }\n  return {\n    type: NodeType$1.Text,\n    textContent: textContent || \"\",\n    isStyle,\n    rootId\n  };\n}\nfunction serializeElementNode(n, options) {\n  const {\n    doc,\n    blockClass,\n    blockSelector,\n    unblockSelector,\n    inlineStylesheet,\n    maskInputOptions = {},\n    maskAttributeFn,\n    maskInputFn,\n    dataURLOptions = {},\n    inlineImages,\n    recordCanvas,\n    keepIframeSrcFn,\n    newlyAddedElement = false,\n    rootId,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    ignoreCSSAttributes\n  } = options;\n  const needBlock = _isBlockedElement(\n    n,\n    blockClass,\n    blockSelector,\n    unblockSelector\n  );\n  const tagName = getValidTagName(n);\n  let attributes2 = {};\n  const len = n.attributes.length;\n  for (let i2 = 0; i2 < len; i2++) {\n    const attr = n.attributes[i2];\n    if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\n      attributes2[attr.name] = transformAttribute(\n        doc,\n        tagName,\n        toLowerCase(attr.name),\n        attr.value,\n        n,\n        maskAttributeFn,\n        ignoreCSSAttributes\n      );\n    }\n  }\n  if (tagName === \"link\" && inlineStylesheet) {\n    const stylesheet = Array.from(doc.styleSheets).find((s) => {\n      return s.href === n.href;\n    });\n    let cssText = null;\n    if (stylesheet) {\n      cssText = stringifyStylesheet(stylesheet);\n    }\n    if (cssText) {\n      attributes2.rel = null;\n      attributes2.href = null;\n      attributes2.crossorigin = null;\n      attributes2._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n    }\n  }\n  if (tagName === \"style\" && n.sheet && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n  !(n.innerText || n.textContent || \"\").trim().length) {\n    const cssText = stringifyStylesheet(\n      n.sheet\n    );\n    if (cssText) {\n      attributes2._cssText = absoluteToStylesheet(cssText, getHref(doc));\n    }\n  }\n  if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\" || tagName === \"option\") {\n    const el = n;\n    const type = getInputType(el);\n    const value = getInputValue(el, toUpperCase(tagName), type);\n    const checked = el.checked;\n    if (type !== \"submit\" && type !== \"button\" && value) {\n      const forceMask = needMaskingText(\n        el,\n        maskTextClass,\n        maskTextSelector,\n        unmaskTextClass,\n        unmaskTextSelector,\n        shouldMaskInput({\n          type,\n          tagName: toUpperCase(tagName),\n          maskInputOptions\n        })\n      );\n      attributes2.value = maskInputValue({\n        isMasked: forceMask,\n        element: el,\n        value,\n        maskInputFn\n      });\n    }\n    if (checked) {\n      attributes2.checked = checked;\n    }\n  }\n  if (tagName === \"option\") {\n    if (n.selected && !maskInputOptions[\"select\"]) {\n      attributes2.selected = true;\n    } else {\n      delete attributes2.selected;\n    }\n  }\n  if (tagName === \"canvas\" && recordCanvas) {\n    if (n.__context === \"2d\") {\n      if (!is2DCanvasBlank(n)) {\n        attributes2.rr_dataURL = n.toDataURL(\n          dataURLOptions.type,\n          dataURLOptions.quality\n        );\n      }\n    } else if (!(\"__context\" in n)) {\n      const canvasDataURL = n.toDataURL(\n        dataURLOptions.type,\n        dataURLOptions.quality\n      );\n      const blankCanvas = doc.createElement(\"canvas\");\n      blankCanvas.width = n.width;\n      blankCanvas.height = n.height;\n      const blankCanvasDataURL = blankCanvas.toDataURL(\n        dataURLOptions.type,\n        dataURLOptions.quality\n      );\n      if (canvasDataURL !== blankCanvasDataURL) {\n        attributes2.rr_dataURL = canvasDataURL;\n      }\n    }\n  }\n  if (tagName === \"img\" && inlineImages) {\n    if (!canvasService) {\n      canvasService = doc.createElement(\"canvas\");\n      canvasCtx = canvasService.getContext(\"2d\");\n    }\n    const image = n;\n    const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n    const priorCrossOrigin = image.crossOrigin;\n    const recordInlineImage = () => {\n      image.removeEventListener(\"load\", recordInlineImage);\n      try {\n        canvasService.width = image.naturalWidth;\n        canvasService.height = image.naturalHeight;\n        canvasCtx.drawImage(image, 0, 0);\n        attributes2.rr_dataURL = canvasService.toDataURL(\n          dataURLOptions.type,\n          dataURLOptions.quality\n        );\n      } catch (err) {\n        if (image.crossOrigin !== \"anonymous\") {\n          image.crossOrigin = \"anonymous\";\n          if (image.complete && image.naturalWidth !== 0)\n            recordInlineImage();\n          else image.addEventListener(\"load\", recordInlineImage);\n          return;\n        } else {\n          console.warn(\n            `Cannot inline img src=${imageSrc}! Error: ${err}`\n          );\n        }\n      }\n      if (image.crossOrigin === \"anonymous\") {\n        priorCrossOrigin ? attributes2.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n      }\n    };\n    if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n    else image.addEventListener(\"load\", recordInlineImage);\n  }\n  if (tagName === \"audio\" || tagName === \"video\") {\n    attributes2.rr_mediaState = n.paused ? \"paused\" : \"played\";\n    attributes2.rr_mediaCurrentTime = n.currentTime;\n  }\n  if (!newlyAddedElement) {\n    if (n.scrollLeft) {\n      attributes2.rr_scrollLeft = n.scrollLeft;\n    }\n    if (n.scrollTop) {\n      attributes2.rr_scrollTop = n.scrollTop;\n    }\n  }\n  if (needBlock) {\n    const { width, height } = n.getBoundingClientRect();\n    attributes2 = {\n      class: attributes2.class,\n      rr_width: `${width}px`,\n      rr_height: `${height}px`\n    };\n  }\n  if (tagName === \"iframe\" && !keepIframeSrcFn(attributes2.src)) {\n    if (!needBlock && !getIFrameContentDocument$1(n)) {\n      attributes2.rr_src = attributes2.src;\n    }\n    delete attributes2.src;\n  }\n  let isCustomElement;\n  try {\n    if (customElements.get(tagName)) isCustomElement = true;\n  } catch (e) {\n  }\n  return {\n    type: NodeType$1.Element,\n    tagName,\n    attributes: attributes2,\n    childNodes: [],\n    isSVG: isSVGElement(n) || void 0,\n    needBlock,\n    rootId,\n    isCustom: isCustomElement\n  };\n}\nfunction lowerIfExists(maybeAttr) {\n  if (maybeAttr === void 0 || maybeAttr === null) {\n    return \"\";\n  } else {\n    return maybeAttr.toLowerCase();\n  }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n  if (slimDOMOptions.comment && sn.type === NodeType$1.Comment) {\n    return true;\n  } else if (sn.type === NodeType$1.Element) {\n    if (slimDOMOptions.script && // script tag\n    (sn.tagName === \"script\" || // (module)preload link\n    sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n    sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n      return true;\n    } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n      /^msapplication-tile(image|color)$/\n    ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n      return true;\n    } else if (sn.tagName === \"meta\") {\n      if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n        return true;\n      } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n      lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n        return true;\n      } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n        return true;\n      } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n        return true;\n      } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n        return true;\n      } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction serializeNodeWithId(n, options) {\n  const {\n    doc,\n    mirror,\n    blockClass,\n    blockSelector,\n    unblockSelector,\n    maskAllText,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    skipChild = false,\n    inlineStylesheet = true,\n    maskInputOptions = {},\n    maskAttributeFn,\n    maskTextFn,\n    maskInputFn,\n    slimDOMOptions,\n    dataURLOptions = {},\n    inlineImages = false,\n    recordCanvas = false,\n    onSerialize,\n    onIframeLoad,\n    iframeLoadTimeout = 5e3,\n    onBlockedImageLoad,\n    onStylesheetLoad,\n    stylesheetLoadTimeout = 5e3,\n    keepIframeSrcFn = () => false,\n    newlyAddedElement = false,\n    ignoreCSSAttributes\n  } = options;\n  let { preserveWhiteSpace = true } = options;\n  const _serializedNode = serializeNode(n, {\n    doc,\n    mirror,\n    blockClass,\n    blockSelector,\n    maskAllText,\n    unblockSelector,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    inlineStylesheet,\n    maskInputOptions,\n    maskAttributeFn,\n    maskTextFn,\n    maskInputFn,\n    dataURLOptions,\n    inlineImages,\n    recordCanvas,\n    keepIframeSrcFn,\n    newlyAddedElement,\n    ignoreCSSAttributes\n  });\n  if (!_serializedNode) {\n    console.warn(n, \"not serialized\");\n    return null;\n  }\n  let id;\n  if (mirror.hasNode(n)) {\n    id = mirror.getId(n);\n  } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$1.Text && !_serializedNode.isStyle && !_serializedNode.textContent.trim().length) {\n    id = IGNORED_NODE;\n  } else {\n    id = genId();\n  }\n  const serializedNode2 = Object.assign(_serializedNode, { id });\n  mirror.add(n, serializedNode2);\n  if (id === IGNORED_NODE) {\n    return null;\n  }\n  if (onSerialize) {\n    onSerialize(n);\n  }\n  let recordChild = !skipChild;\n  if (serializedNode2.type === NodeType$1.Element) {\n    recordChild = recordChild && !serializedNode2.needBlock;\n    const shadowRoot = n.shadowRoot;\n    if (shadowRoot && isNativeShadowDom(shadowRoot))\n      serializedNode2.isShadowHost = true;\n  }\n  if ((serializedNode2.type === NodeType$1.Document || serializedNode2.type === NodeType$1.Element) && recordChild) {\n    if (slimDOMOptions.headWhitespace && serializedNode2.type === NodeType$1.Element && serializedNode2.tagName === \"head\") {\n      preserveWhiteSpace = false;\n    }\n    const bypassOptions = {\n      doc,\n      mirror,\n      blockClass,\n      blockSelector,\n      maskAllText,\n      unblockSelector,\n      maskTextClass,\n      unmaskTextClass,\n      maskTextSelector,\n      unmaskTextSelector,\n      skipChild,\n      inlineStylesheet,\n      maskInputOptions,\n      maskAttributeFn,\n      maskTextFn,\n      maskInputFn,\n      slimDOMOptions,\n      dataURLOptions,\n      inlineImages,\n      recordCanvas,\n      preserveWhiteSpace,\n      onSerialize,\n      onIframeLoad,\n      iframeLoadTimeout,\n      onBlockedImageLoad,\n      onStylesheetLoad,\n      stylesheetLoadTimeout,\n      keepIframeSrcFn,\n      ignoreCSSAttributes\n    };\n    const childNodes = n.childNodes ? Array.from(n.childNodes) : [];\n    for (const childN of childNodes) {\n      const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n      if (serializedChildNode) {\n        serializedNode2.childNodes.push(serializedChildNode);\n      }\n    }\n    if (isElement$1(n) && n.shadowRoot) {\n      for (const childN of Array.from(n.shadowRoot.childNodes)) {\n        const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n        if (serializedChildNode) {\n          isNativeShadowDom(n.shadowRoot) && (serializedChildNode.isShadow = true);\n          serializedNode2.childNodes.push(serializedChildNode);\n        }\n      }\n    }\n  }\n  if (n.parentNode && isShadowRoot(n.parentNode) && isNativeShadowDom(n.parentNode)) {\n    serializedNode2.isShadow = true;\n  }\n  if (serializedNode2.type === NodeType$1.Element && serializedNode2.tagName === \"iframe\" && !serializedNode2.needBlock) {\n    onceIframeLoaded(\n      n,\n      () => {\n        const iframeDoc = getIFrameContentDocument$1(n);\n        if (iframeDoc && onIframeLoad) {\n          const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n            doc: iframeDoc,\n            mirror,\n            blockClass,\n            blockSelector,\n            unblockSelector,\n            maskAllText,\n            maskTextClass,\n            unmaskTextClass,\n            maskTextSelector,\n            unmaskTextSelector,\n            skipChild: false,\n            inlineStylesheet,\n            maskInputOptions,\n            maskAttributeFn,\n            maskTextFn,\n            maskInputFn,\n            slimDOMOptions,\n            dataURLOptions,\n            inlineImages,\n            recordCanvas,\n            preserveWhiteSpace,\n            onSerialize,\n            onIframeLoad,\n            iframeLoadTimeout,\n            onStylesheetLoad,\n            stylesheetLoadTimeout,\n            keepIframeSrcFn,\n            ignoreCSSAttributes\n          });\n          if (serializedIframeNode) {\n            onIframeLoad(\n              n,\n              serializedIframeNode\n            );\n          }\n        }\n      },\n      iframeLoadTimeout\n    );\n  }\n  if (serializedNode2.type === NodeType$1.Element && serializedNode2.tagName === \"img\" && !n.complete && serializedNode2.needBlock) {\n    const image = n;\n    const updateImageDimensions = () => {\n      if (image.isConnected && !image.complete && onBlockedImageLoad) {\n        try {\n          const rect = image.getBoundingClientRect();\n          if (rect.width > 0 && rect.height > 0) {\n            onBlockedImageLoad(image, serializedNode2, rect);\n          }\n        } catch (error) {\n        }\n      }\n      image.removeEventListener(\"load\", updateImageDimensions);\n    };\n    if (image.isConnected) {\n      image.addEventListener(\"load\", updateImageDimensions);\n    }\n  }\n  if (serializedNode2.type === NodeType$1.Element && serializedNode2.tagName === \"link\" && typeof serializedNode2.attributes.rel === \"string\" && (serializedNode2.attributes.rel === \"stylesheet\" || serializedNode2.attributes.rel === \"preload\" && typeof serializedNode2.attributes.href === \"string\" && extractFileExtension(serializedNode2.attributes.href) === \"css\")) {\n    onceStylesheetLoaded(\n      n,\n      () => {\n        if (onStylesheetLoad) {\n          const serializedLinkNode = serializeNodeWithId(n, {\n            doc,\n            mirror,\n            blockClass,\n            blockSelector,\n            unblockSelector,\n            maskAllText,\n            maskTextClass,\n            unmaskTextClass,\n            maskTextSelector,\n            unmaskTextSelector,\n            skipChild: false,\n            inlineStylesheet,\n            maskInputOptions,\n            maskAttributeFn,\n            maskTextFn,\n            maskInputFn,\n            slimDOMOptions,\n            dataURLOptions,\n            inlineImages,\n            recordCanvas,\n            preserveWhiteSpace,\n            onSerialize,\n            onIframeLoad,\n            iframeLoadTimeout,\n            onStylesheetLoad,\n            stylesheetLoadTimeout,\n            keepIframeSrcFn,\n            ignoreCSSAttributes\n          });\n          if (serializedLinkNode) {\n            onStylesheetLoad(\n              n,\n              serializedLinkNode\n            );\n          }\n        }\n      },\n      stylesheetLoadTimeout\n    );\n  }\n  if (serializedNode2.type === NodeType$1.Element) {\n    delete serializedNode2.needBlock;\n  }\n  return serializedNode2;\n}\nfunction snapshot(n, options) {\n  const {\n    mirror = new Mirror(),\n    blockClass = \"rr-block\",\n    blockSelector = null,\n    unblockSelector = null,\n    maskAllText = false,\n    maskTextClass = \"rr-mask\",\n    unmaskTextClass = null,\n    maskTextSelector = null,\n    unmaskTextSelector = null,\n    inlineStylesheet = true,\n    inlineImages = false,\n    recordCanvas = false,\n    maskAllInputs = false,\n    maskAttributeFn,\n    maskTextFn,\n    maskInputFn,\n    slimDOM = false,\n    dataURLOptions,\n    preserveWhiteSpace,\n    onSerialize,\n    onIframeLoad,\n    iframeLoadTimeout,\n    onBlockedImageLoad,\n    onStylesheetLoad,\n    stylesheetLoadTimeout,\n    keepIframeSrcFn = () => false,\n    ignoreCSSAttributes = /* @__PURE__ */ new Set([])\n  } = options || {};\n  const maskInputOptions = maskAllInputs === true ? {\n    color: true,\n    date: true,\n    \"datetime-local\": true,\n    email: true,\n    month: true,\n    number: true,\n    range: true,\n    search: true,\n    tel: true,\n    text: true,\n    time: true,\n    url: true,\n    week: true,\n    textarea: true,\n    select: true\n  } : maskAllInputs === false ? {} : maskAllInputs;\n  const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n    // if true: set of sensible options that should not throw away any information\n    {\n      script: true,\n      comment: true,\n      headFavicon: true,\n      headWhitespace: true,\n      headMetaDescKeywords: slimDOM === \"all\",\n      // destructive\n      headMetaSocial: true,\n      headMetaRobots: true,\n      headMetaHttpEquiv: true,\n      headMetaAuthorship: true,\n      headMetaVerification: true\n    }\n  ) : slimDOM === false ? {} : slimDOM;\n  return serializeNodeWithId(n, {\n    doc: n,\n    mirror,\n    blockClass,\n    blockSelector,\n    unblockSelector,\n    maskAllText,\n    maskTextClass,\n    unmaskTextClass,\n    maskTextSelector,\n    unmaskTextSelector,\n    skipChild: false,\n    inlineStylesheet,\n    maskInputOptions,\n    maskAttributeFn,\n    maskTextFn,\n    maskInputFn,\n    slimDOMOptions,\n    dataURLOptions,\n    inlineImages,\n    recordCanvas,\n    preserveWhiteSpace,\n    onSerialize,\n    onIframeLoad,\n    iframeLoadTimeout,\n    onBlockedImageLoad,\n    onStylesheetLoad,\n    stylesheetLoadTimeout,\n    keepIframeSrcFn,\n    newlyAddedElement: false,\n    ignoreCSSAttributes\n  });\n}\nfunction on(type, fn, target = document) {\n  const options = { capture: true, passive: true };\n  target.addEventListener(type, fn, options);\n  return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n  map: {},\n  getId() {\n    console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n    return -1;\n  },\n  getNode() {\n    console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n    return null;\n  },\n  removeNodeFromMap() {\n    console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n  },\n  has() {\n    console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n    return false;\n  },\n  reset() {\n    console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n  }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n  _mirror = new Proxy(_mirror, {\n    get(target, prop, receiver) {\n      if (prop === \"map\") {\n        console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n      }\n      return Reflect.get(target, prop, receiver);\n    }\n  });\n}\nfunction throttle$1(func, wait, options = {}) {\n  let timeout = null;\n  let previous = 0;\n  return function(...args) {\n    const now = Date.now();\n    if (!previous && options.leading === false) {\n      previous = now;\n    }\n    const remaining = wait - (now - previous);\n    const context = this;\n    if (remaining <= 0 || remaining > wait) {\n      if (timeout) {\n        clearTimeout$2(timeout);\n        timeout = null;\n      }\n      previous = now;\n      func.apply(context, args);\n    } else if (!timeout && options.trailing !== false) {\n      timeout = setTimeout$2(() => {\n        previous = options.leading === false ? 0 : Date.now();\n        timeout = null;\n        func.apply(context, args);\n      }, remaining);\n    }\n  };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n  const original = win.Object.getOwnPropertyDescriptor(target, key);\n  win.Object.defineProperty(\n    target,\n    key,\n    isRevoked ? d : {\n      set(value) {\n        setTimeout$2(() => {\n          d.set.call(this, value);\n        }, 0);\n        if (original && original.set) {\n          original.set.call(this, value);\n        }\n      }\n    }\n  );\n  return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n  try {\n    if (!(name in source)) {\n      return () => {\n      };\n    }\n    const original = source[name];\n    const wrapped = replacement(original);\n    if (typeof wrapped === \"function\") {\n      wrapped.prototype = wrapped.prototype || {};\n      Object.defineProperties(wrapped, {\n        __rrweb_original__: {\n          enumerable: false,\n          value: original\n        }\n      });\n    }\n    source[name] = wrapped;\n    return () => {\n      source[name] = original;\n    };\n  } catch {\n    return () => {\n    };\n  }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n  nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n  const doc = win.document;\n  return {\n    left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc?.documentElement.scrollLeft || doc?.body?.parentElement?.scrollLeft || doc?.body?.scrollLeft || 0,\n    top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : doc?.documentElement.scrollTop || doc?.body?.parentElement?.scrollTop || doc?.body?.scrollTop || 0\n  };\n}\nfunction getWindowHeight() {\n  return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n  return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode$1(node) {\n  if (!node) {\n    return null;\n  }\n  try {\n    const el = node.nodeType === node.ELEMENT_NODE ? node : node.parentElement;\n    return el;\n  } catch (error) {\n    return null;\n  }\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n  if (!node) {\n    return false;\n  }\n  const el = closestElementOfNode$1(node);\n  if (!el) {\n    return false;\n  }\n  const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n  if (!checkAncestors) {\n    const isUnblocked = unblockSelector && el.matches(unblockSelector);\n    return blockedPredicate(el) && !isUnblocked;\n  }\n  const blockDistance = distanceToMatch(el, blockedPredicate);\n  let unblockDistance = -1;\n  if (blockDistance < 0) {\n    return false;\n  }\n  if (unblockSelector) {\n    unblockDistance = distanceToMatch(\n      el,\n      createMatchPredicate(null, unblockSelector)\n    );\n  }\n  if (blockDistance > -1 && unblockDistance < 0) {\n    return true;\n  }\n  return blockDistance < unblockDistance;\n}\nfunction isSerialized(n, mirror) {\n  return mirror.getId(n) !== -1;\n}\nfunction isIgnored(n, mirror) {\n  return mirror.getId(n) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror) {\n  if (isShadowRoot(target)) {\n    return false;\n  }\n  const id = mirror.getId(target);\n  if (!mirror.has(id)) {\n    return true;\n  }\n  if (target.parentNode && target.parentNode.nodeType === target.DOCUMENT_NODE) {\n    return false;\n  }\n  if (!target.parentNode) {\n    return true;\n  }\n  return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction legacy_isTouchEvent(event) {\n  return Boolean(event.changedTouches);\n}\nfunction polyfill(win = window) {\n  if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n    win.NodeList.prototype.forEach = Array.prototype.forEach;\n  }\n  if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n    win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n  }\n  if (!Node.prototype.contains) {\n    Node.prototype.contains = (...args) => {\n      let node = args[0];\n      if (!(0 in args)) {\n        throw new TypeError(\"1 argument is required\");\n      }\n      do {\n        if (this === node) {\n          return true;\n        }\n      } while (node = node && node.parentNode);\n      return false;\n    };\n  }\n}\nfunction isSerializedIframe(n, mirror) {\n  return Boolean(n.nodeName === \"IFRAME\" && mirror.getMeta(n));\n}\nfunction isSerializedStylesheet(n, mirror) {\n  return Boolean(\n    n.nodeName === \"LINK\" && n.nodeType === n.ELEMENT_NODE && n.getAttribute && n.getAttribute(\"rel\") === \"stylesheet\" && mirror.getMeta(n)\n  );\n}\nfunction hasShadowRoot(n) {\n  return Boolean(n?.shadowRoot);\n}\nclass StyleSheetMirror {\n  constructor() {\n    this.id = 1;\n    this.styleIDMap = /* @__PURE__ */ new WeakMap();\n    this.idStyleMap = /* @__PURE__ */ new Map();\n  }\n  getId(stylesheet) {\n    return this.styleIDMap.get(stylesheet) ?? -1;\n  }\n  has(stylesheet) {\n    return this.styleIDMap.has(stylesheet);\n  }\n  /**\n   * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n   */\n  add(stylesheet, id) {\n    if (this.has(stylesheet)) return this.getId(stylesheet);\n    let newId;\n    if (id === void 0) {\n      newId = this.id++;\n    } else newId = id;\n    this.styleIDMap.set(stylesheet, newId);\n    this.idStyleMap.set(newId, stylesheet);\n    return newId;\n  }\n  getStyle(id) {\n    return this.idStyleMap.get(id) || null;\n  }\n  reset() {\n    this.styleIDMap = /* @__PURE__ */ new WeakMap();\n    this.idStyleMap = /* @__PURE__ */ new Map();\n    this.id = 1;\n  }\n  generateId() {\n    return this.id++;\n  }\n}\nfunction getShadowHost(n) {\n  let shadowHost = null;\n  if (n.getRootNode?.()?.nodeType === Node.DOCUMENT_FRAGMENT_NODE && n.getRootNode().host)\n    shadowHost = n.getRootNode().host;\n  return shadowHost;\n}\nfunction getRootShadowHost(n) {\n  let rootShadowHost = n;\n  let shadowHost;\n  while (shadowHost = getShadowHost(rootShadowHost))\n    rootShadowHost = shadowHost;\n  return rootShadowHost;\n}\nfunction shadowHostInDom(n) {\n  const doc = n.ownerDocument;\n  if (!doc) return false;\n  const shadowHost = getRootShadowHost(n);\n  return doc.contains(shadowHost);\n}\nfunction inDom(n) {\n  const doc = n.ownerDocument;\n  if (!doc) return false;\n  return doc.contains(n) || shadowHostInDom(n);\n}\nconst cachedImplementations = {};\nfunction getImplementation(name) {\n  const cached = cachedImplementations[name];\n  if (cached) {\n    return cached;\n  }\n  const document2 = window.document;\n  let impl = window[name];\n  if (document2 && typeof document2.createElement === \"function\") {\n    try {\n      const sandbox = document2.createElement(\"iframe\");\n      sandbox.hidden = true;\n      document2.head.appendChild(sandbox);\n      const contentWindow = sandbox.contentWindow;\n      if (contentWindow && contentWindow[name]) {\n        impl = // eslint-disable-next-line @typescript-eslint/unbound-method\n        contentWindow[name];\n      }\n      document2.head.removeChild(sandbox);\n    } catch (e) {\n    }\n  }\n  return cachedImplementations[name] = impl.bind(\n    window\n  );\n}\nfunction onRequestAnimationFrame(...rest) {\n  return getImplementation(\"requestAnimationFrame\")(...rest);\n}\nfunction setTimeout$2(...rest) {\n  return getImplementation(\"setTimeout\")(...rest);\n}\nfunction clearTimeout$2(...rest) {\n  return getImplementation(\"clearTimeout\")(...rest);\n}\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n  EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n  EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n  EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n  EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n  EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n  EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n  EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n  return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n  IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n  IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n  IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n  IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n  IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n  IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n  IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n  IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n  IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n  IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n  IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n  IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n  IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n  IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n  IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n  IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n  IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n  return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n  MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n  MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n  MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n  MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n  MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n  MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n  MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n  MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n  MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n  MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n  MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n  return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n  PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n  PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n  PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n  return PointerTypes2;\n})(PointerTypes || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n  MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n  MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n  MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n  MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n  MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n  return MediaInteractions2;\n})(MediaInteractions || {});\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n  errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n  errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n  if (!errorHandler) {\n    return cb;\n  }\n  const rrwebWrapped = ((...rest) => {\n    try {\n      return cb(...rest);\n    } catch (error) {\n      if (errorHandler && errorHandler(error) === true) {\n        return () => {\n        };\n      }\n      throw error;\n    }\n  });\n  return rrwebWrapped;\n};\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n  lookup[chars.charCodeAt(i)] = i;\n}\nclass CanvasManagerNoop {\n  reset() {\n  }\n  freeze() {\n  }\n  unfreeze() {\n  }\n  lock() {\n  }\n  unlock() {\n  }\n  snapshot() {\n  }\n  addWindow() {\n  }\n  addShadowRoot() {\n  }\n  resetShadowRoots() {\n  }\n}\n\nfunction getIFrameContentDocument(iframe) {\n  try {\n    return iframe.contentDocument;\n  } catch (e2) {\n  }\n}\nfunction getIFrameContentWindow(iframe) {\n  try {\n    return iframe.contentWindow;\n  } catch (e2) {\n  }\n}\nclass StyleDeclarationParser {\n  constructor(doc) {\n    this.doc = doc;\n    this.unattachedDoc = null;\n  }\n  parse(styleText) {\n    return this.parseWithConstructableStylesheet(styleText) || this.parseWithDetachedElement(styleText);\n  }\n  parseWithConstructableStylesheet(styleText) {\n    if (typeof CSSStyleSheet === \"undefined\" || typeof CSSStyleSheet.prototype.replaceSync !== \"function\") {\n      return null;\n    }\n    try {\n      const sheet = new CSSStyleSheet();\n      sheet.replaceSync(`x { ${styleText} }`);\n      const rule = sheet.cssRules[0];\n      if (!rule || rule.type !== CSSRule.STYLE_RULE) {\n        return null;\n      }\n      return rule.style;\n    } catch {\n      return null;\n    }\n  }\n  parseWithDetachedElement(styleText) {\n    const old = this.getUnattachedDoc().createElement(\"span\");\n    old.setAttribute(\"style\", styleText);\n    return old.style;\n  }\n  getUnattachedDoc() {\n    if (!this.unattachedDoc) {\n      try {\n        this.unattachedDoc = document.implementation.createHTMLDocument();\n      } catch {\n        this.unattachedDoc = this.doc;\n      }\n    }\n    return this.unattachedDoc;\n  }\n}\nfunction isNodeInLinkedList(n2) {\n  return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n  constructor() {\n    this.length = 0;\n    this.head = null;\n    this.tail = null;\n  }\n  get(position) {\n    if (position >= this.length) {\n      throw new Error(\"Position outside of list range\");\n    }\n    let current = this.head;\n    for (let index = 0; index < position; index++) {\n      current = current?.next || null;\n    }\n    return current;\n  }\n  addNode(n2) {\n    const node = {\n      value: n2,\n      previous: null,\n      next: null\n    };\n    n2.__ln = node;\n    if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n      const current = n2.previousSibling.__ln.next;\n      node.next = current;\n      node.previous = n2.previousSibling.__ln;\n      n2.previousSibling.__ln.next = node;\n      if (current) {\n        current.previous = node;\n      }\n    } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n      const current = n2.nextSibling.__ln.previous;\n      node.previous = current;\n      node.next = n2.nextSibling.__ln;\n      n2.nextSibling.__ln.previous = node;\n      if (current) {\n        current.next = node;\n      }\n    } else {\n      if (this.head) {\n        this.head.previous = node;\n      }\n      node.next = this.head;\n      this.head = node;\n    }\n    if (node.next === null) {\n      this.tail = node;\n    }\n    this.length++;\n  }\n  removeNode(n2) {\n    const current = n2.__ln;\n    if (!this.head) {\n      return;\n    }\n    if (!current.previous) {\n      this.head = current.next;\n      if (this.head) {\n        this.head.previous = null;\n      } else {\n        this.tail = null;\n      }\n    } else {\n      current.previous.next = current.next;\n      if (current.next) {\n        current.next.previous = current.previous;\n      } else {\n        this.tail = current.previous;\n      }\n    }\n    if (n2.__ln) {\n      delete n2.__ln;\n    }\n    this.length--;\n  }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n  constructor() {\n    this.frozen = false;\n    this.locked = false;\n    this.texts = [];\n    this.attributes = [];\n    this.attributeMap = /* @__PURE__ */ new WeakMap();\n    this.removes = [];\n    this.mapRemoves = [];\n    this.movedMap = {};\n    this.addedSet = /* @__PURE__ */ new Set();\n    this.movedSet = /* @__PURE__ */ new Set();\n    this.droppedSet = /* @__PURE__ */ new Set();\n    this.processMutations = (mutations) => {\n      mutations.forEach(this.processMutation);\n      this.emit();\n    };\n    this.emit = () => {\n      if (this.frozen || this.locked) {\n        return;\n      }\n      const adds = [];\n      const addedIds = /* @__PURE__ */ new Set();\n      const addList = new DoubleLinkedList();\n      const getNextId = (n2) => {\n        let ns = n2;\n        let nextId = IGNORED_NODE;\n        while (nextId === IGNORED_NODE) {\n          ns = ns && ns.nextSibling;\n          nextId = ns && this.mirror.getId(ns);\n        }\n        return nextId;\n      };\n      const pushAdd = (n2) => {\n        if (!n2.parentNode || !inDom(n2)) {\n          return;\n        }\n        const parentId = isShadowRoot(n2.parentNode) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(n2.parentNode);\n        const nextId = getNextId(n2);\n        if (parentId === -1 || nextId === -1) {\n          return addList.addNode(n2);\n        }\n        const sn = serializeNodeWithId(n2, {\n          doc: this.doc,\n          mirror: this.mirror,\n          blockClass: this.blockClass,\n          blockSelector: this.blockSelector,\n          maskAllText: this.maskAllText,\n          unblockSelector: this.unblockSelector,\n          maskTextClass: this.maskTextClass,\n          unmaskTextClass: this.unmaskTextClass,\n          maskTextSelector: this.maskTextSelector,\n          unmaskTextSelector: this.unmaskTextSelector,\n          skipChild: true,\n          newlyAddedElement: true,\n          inlineStylesheet: this.inlineStylesheet,\n          maskInputOptions: this.maskInputOptions,\n          maskAttributeFn: this.maskAttributeFn,\n          maskTextFn: this.maskTextFn,\n          maskInputFn: this.maskInputFn,\n          slimDOMOptions: this.slimDOMOptions,\n          dataURLOptions: this.dataURLOptions,\n          recordCanvas: this.recordCanvas,\n          inlineImages: this.inlineImages,\n          onSerialize: (currentN) => {\n            if (isSerializedIframe(currentN, this.mirror) && !isBlocked(\n              currentN,\n              this.blockClass,\n              this.blockSelector,\n              this.unblockSelector,\n              false\n            )) {\n              this.iframeManager.addIframe(currentN);\n            }\n            if (isSerializedStylesheet(currentN, this.mirror)) {\n              this.stylesheetManager.trackLinkElement(\n                currentN\n              );\n            }\n            if (hasShadowRoot(n2)) {\n              this.shadowDomManager.addShadowRoot(n2.shadowRoot, this.doc);\n            }\n          },\n          onIframeLoad: (iframe, childSn) => {\n            if (isBlocked(\n              iframe,\n              this.blockClass,\n              this.blockSelector,\n              this.unblockSelector,\n              false\n            )) {\n              return;\n            }\n            this.iframeManager.attachIframe(iframe, childSn);\n            const contentWindow = getIFrameContentWindow(iframe);\n            if (contentWindow) {\n              this.canvasManager.addWindow(contentWindow);\n            }\n            this.shadowDomManager.observeAttachShadow(iframe);\n          },\n          onStylesheetLoad: (link, childSn) => {\n            this.stylesheetManager.attachLinkElement(link, childSn);\n          },\n          onBlockedImageLoad: (_imageEl, serializedNode, { width, height }) => {\n            this.mutationCb({\n              adds: [],\n              removes: [],\n              texts: [],\n              attributes: [\n                {\n                  id: serializedNode.id,\n                  attributes: {\n                    style: {\n                      width: `${width}px`,\n                      height: `${height}px`\n                    }\n                  }\n                }\n              ]\n            });\n          },\n          ignoreCSSAttributes: this.ignoreCSSAttributes\n        });\n        if (sn) {\n          adds.push({\n            parentId,\n            nextId,\n            node: sn\n          });\n          addedIds.add(sn.id);\n        }\n      };\n      while (this.mapRemoves.length) {\n        this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n      }\n      for (const n2 of this.movedSet) {\n        if (isParentRemoved(this.removes, n2, this.mirror) && !this.movedSet.has(n2.parentNode)) {\n          continue;\n        }\n        pushAdd(n2);\n      }\n      for (const n2 of this.addedSet) {\n        if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removes, n2, this.mirror)) {\n          pushAdd(n2);\n        } else if (isAncestorInSet(this.movedSet, n2)) {\n          pushAdd(n2);\n        } else {\n          this.droppedSet.add(n2);\n        }\n      }\n      let candidate = null;\n      while (addList.length) {\n        let node = null;\n        if (candidate) {\n          const parentId = this.mirror.getId(candidate.value.parentNode);\n          const nextId = getNextId(candidate.value);\n          if (parentId !== -1 && nextId !== -1) {\n            node = candidate;\n          }\n        }\n        if (!node) {\n          let tailNode = addList.tail;\n          while (tailNode) {\n            const _node = tailNode;\n            tailNode = tailNode.previous;\n            if (_node) {\n              const parentId = this.mirror.getId(_node.value.parentNode);\n              const nextId = getNextId(_node.value);\n              if (nextId === -1) continue;\n              else if (parentId !== -1) {\n                node = _node;\n                break;\n              } else {\n                const unhandledNode = _node.value;\n                if (unhandledNode.parentNode && unhandledNode.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n                  const shadowHost = unhandledNode.parentNode.host;\n                  const parentId2 = this.mirror.getId(shadowHost);\n                  if (parentId2 !== -1) {\n                    node = _node;\n                    break;\n                  }\n                }\n              }\n            }\n          }\n        }\n        if (!node) {\n          while (addList.head) {\n            addList.removeNode(addList.head.value);\n          }\n          break;\n        }\n        candidate = node.previous;\n        addList.removeNode(node.value);\n        pushAdd(node.value);\n      }\n      const payload = {\n        texts: this.texts.map((text) => ({\n          id: this.mirror.getId(text.node),\n          value: text.value\n        })).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n        attributes: this.attributes.map((attribute) => {\n          const { attributes } = attribute;\n          if (typeof attributes.style === \"string\") {\n            const diffAsStr = JSON.stringify(attribute.styleDiff);\n            const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n            if (diffAsStr.length < attributes.style.length) {\n              if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n                attributes.style = attribute.styleDiff;\n              }\n            }\n          }\n          return {\n            id: this.mirror.getId(attribute.node),\n            attributes\n          };\n        }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n        removes: this.removes,\n        adds\n      };\n      if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n        return;\n      }\n      this.texts = [];\n      this.attributes = [];\n      this.attributeMap = /* @__PURE__ */ new WeakMap();\n      this.removes = [];\n      this.addedSet = /* @__PURE__ */ new Set();\n      this.movedSet = /* @__PURE__ */ new Set();\n      this.droppedSet = /* @__PURE__ */ new Set();\n      this.movedMap = {};\n      this.mutationCb(payload);\n    };\n    this.processMutation = (m) => {\n      if (isIgnored(m.target, this.mirror)) {\n        return;\n      }\n      switch (m.type) {\n        case \"characterData\": {\n          const value = m.target.textContent;\n          if (!isBlocked(\n            m.target,\n            this.blockClass,\n            this.blockSelector,\n            this.unblockSelector,\n            false\n          ) && value !== m.oldValue) {\n            this.texts.push({\n              value: needMaskingText(\n                m.target,\n                this.maskTextClass,\n                this.maskTextSelector,\n                this.unmaskTextClass,\n                this.unmaskTextSelector,\n                this.maskAllText\n              ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode$1(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n              node: m.target\n            });\n          }\n          break;\n        }\n        case \"attributes\": {\n          const target = m.target;\n          let attributeName = m.attributeName;\n          let value = m.target.getAttribute(attributeName);\n          if (attributeName === \"value\") {\n            const type = getInputType(target);\n            const tagName = target.tagName;\n            value = getInputValue(target, tagName, type);\n            const isInputMasked = shouldMaskInput({\n              maskInputOptions: this.maskInputOptions,\n              tagName,\n              type\n            });\n            const forceMask = needMaskingText(\n              m.target,\n              this.maskTextClass,\n              this.maskTextSelector,\n              this.unmaskTextClass,\n              this.unmaskTextSelector,\n              isInputMasked\n            );\n            value = maskInputValue({\n              isMasked: forceMask,\n              element: target,\n              value,\n              maskInputFn: this.maskInputFn\n            });\n          }\n          if (isBlocked(\n            m.target,\n            this.blockClass,\n            this.blockSelector,\n            this.unblockSelector,\n            false\n          ) || value === m.oldValue) {\n            return;\n          }\n          let item = this.attributeMap.get(m.target);\n          if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n            const iframeDoc = getIFrameContentDocument(\n              target\n            );\n            if (!iframeDoc) {\n              attributeName = \"rr_src\";\n            } else {\n              return;\n            }\n          }\n          if (!item) {\n            item = {\n              node: m.target,\n              attributes: {},\n              styleDiff: {},\n              _unchangedStyles: {}\n            };\n            this.attributes.push(item);\n            this.attributeMap.set(m.target, item);\n          }\n          if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n            target.setAttribute(\"data-rr-is-password\", \"true\");\n          }\n          if (!ignoreAttribute(target.tagName, attributeName)) {\n            item.attributes[attributeName] = transformAttribute(\n              this.doc,\n              toLowerCase(target.tagName),\n              toLowerCase(attributeName),\n              value,\n              target,\n              this.maskAttributeFn\n            );\n            if (attributeName === \"style\") {\n              const oldStyle = m.oldValue ? this.styleDeclarationParser.parse(m.oldValue) : null;\n              for (const pname of Array.from(target.style)) {\n                const newValue = target.style.getPropertyValue(pname);\n                const newPriority = target.style.getPropertyPriority(pname);\n                if (newValue !== (oldStyle?.getPropertyValue(pname) || \"\") || newPriority !== (oldStyle?.getPropertyPriority(pname) || \"\")) {\n                  if (newPriority === \"\") {\n                    item.styleDiff[pname] = newValue;\n                  } else {\n                    item.styleDiff[pname] = [newValue, newPriority];\n                  }\n                } else {\n                  item._unchangedStyles[pname] = [newValue, newPriority];\n                }\n              }\n              if (oldStyle) {\n                for (const pname of Array.from(oldStyle)) {\n                  if (target.style.getPropertyValue(pname) === \"\") {\n                    item.styleDiff[pname] = false;\n                  }\n                }\n              }\n            }\n          }\n          break;\n        }\n        case \"childList\": {\n          if (isBlocked(\n            m.target,\n            this.blockClass,\n            this.blockSelector,\n            this.unblockSelector,\n            true\n          )) {\n            return;\n          }\n          m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n          m.removedNodes.forEach((n2) => {\n            const nodeId = this.mirror.getId(n2);\n            const parentId = isShadowRoot(m.target) ? this.mirror.getId(m.target.host) : this.mirror.getId(m.target);\n            if (isBlocked(\n              m.target,\n              this.blockClass,\n              this.blockSelector,\n              this.unblockSelector,\n              false\n            ) || isIgnored(n2, this.mirror) || !isSerialized(n2, this.mirror)) {\n              return;\n            }\n            if (this.addedSet.has(n2)) {\n              deepDelete(this.addedSet, n2);\n              this.droppedSet.add(n2);\n            } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n            else if (isAncestorRemoved(m.target, this.mirror)) ;\n            else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n              deepDelete(this.movedSet, n2);\n            } else {\n              this.removes.push({\n                parentId,\n                id: nodeId,\n                isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n              });\n            }\n            this.mapRemoves.push(n2);\n          });\n          break;\n        }\n      }\n    };\n    this.genAdds = (n2, target) => {\n      if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n      if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n      if (this.mirror.hasNode(n2)) {\n        if (isIgnored(n2, this.mirror)) {\n          return;\n        }\n        this.movedSet.add(n2);\n        let targetId = null;\n        if (target && this.mirror.hasNode(target)) {\n          targetId = this.mirror.getId(target);\n        }\n        if (targetId && targetId !== -1) {\n          this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n        }\n      } else {\n        this.addedSet.add(n2);\n        this.droppedSet.delete(n2);\n      }\n      if (!isBlocked(\n        n2,\n        this.blockClass,\n        this.blockSelector,\n        this.unblockSelector,\n        false\n      )) {\n        if (n2.childNodes) {\n          n2.childNodes.forEach((childN) => this.genAdds(childN));\n        }\n        if (hasShadowRoot(n2)) {\n          n2.shadowRoot.childNodes.forEach((childN) => {\n            this.processedNodeManager.add(childN, this);\n            this.genAdds(childN, n2);\n          });\n        }\n      }\n    };\n  }\n  init(options) {\n    [\n      \"mutationCb\",\n      \"blockClass\",\n      \"blockSelector\",\n      \"unblockSelector\",\n      \"maskAllText\",\n      \"maskTextClass\",\n      \"unmaskTextClass\",\n      \"maskTextSelector\",\n      \"unmaskTextSelector\",\n      \"inlineStylesheet\",\n      \"maskInputOptions\",\n      \"maskAttributeFn\",\n      \"maskTextFn\",\n      \"maskInputFn\",\n      \"keepIframeSrcFn\",\n      \"recordCanvas\",\n      \"inlineImages\",\n      \"slimDOMOptions\",\n      \"dataURLOptions\",\n      \"doc\",\n      \"mirror\",\n      \"iframeManager\",\n      \"stylesheetManager\",\n      \"shadowDomManager\",\n      \"canvasManager\",\n      \"processedNodeManager\",\n      \"ignoreCSSAttributes\"\n    ].forEach((key) => {\n      this[key] = options[key];\n    });\n    this.styleDeclarationParser = new StyleDeclarationParser(this.doc);\n  }\n  freeze() {\n    this.frozen = true;\n    this.canvasManager.freeze();\n  }\n  unfreeze() {\n    this.frozen = false;\n    this.canvasManager.unfreeze();\n    this.emit();\n  }\n  isFrozen() {\n    return this.frozen;\n  }\n  lock() {\n    this.locked = true;\n    this.canvasManager.lock();\n  }\n  unlock() {\n    this.locked = false;\n    this.canvasManager.unlock();\n    this.emit();\n  }\n  reset() {\n    this.shadowDomManager.reset();\n    this.canvasManager.reset();\n  }\n}\nfunction deepDelete(addsSet, n2) {\n  addsSet.delete(n2);\n  n2.childNodes?.forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n  if (removes.length === 0) return false;\n  return _isParentRemoved(removes, n2, mirror2);\n}\nfunction _isParentRemoved(removes, n2, mirror2) {\n  let node = n2.parentNode;\n  while (node) {\n    const parentId = mirror2.getId(node);\n    if (removes.some((r2) => r2.id === parentId)) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n}\nfunction isAncestorInSet(set, n2) {\n  if (set.size === 0) return false;\n  return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n  const { parentNode } = n2;\n  if (!parentNode) {\n    return false;\n  }\n  if (set.has(parentNode)) {\n    return true;\n  }\n  return _isAncestorInSet(set, parentNode);\n}\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n  try {\n    if (\"composedPath\" in event) {\n      const path = event.composedPath();\n      if (path.length) {\n        return path[0];\n      }\n    } else if (\"path\" in event && event.path.length) {\n      return event.path[0];\n    }\n  } catch {\n  }\n  return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n  const mutationBuffer = new MutationBuffer();\n  mutationBuffers.push(mutationBuffer);\n  mutationBuffer.init(options);\n  let mutationObserverCtor = window.MutationObserver || /**\n  * Some websites may disable MutationObserver by removing it from the window object.\n  * If someone is using rrweb to build a browser extention or things like it, they\n  * could not change the website's code but can have an opportunity to inject some\n  * code before the website executing its JS logic.\n  * Then they can do this to store the native MutationObserver:\n  * window.__rrMutationObserver = MutationObserver\n  */\n  window.__rrMutationObserver;\n  const angularZoneSymbol = window?.Zone?.__symbol__?.(\"MutationObserver\");\n  if (angularZoneSymbol && window[angularZoneSymbol]) {\n    mutationObserverCtor = window[angularZoneSymbol];\n  }\n  const observer = new mutationObserverCtor(\n    callbackWrapper((mutations) => {\n      if (options.onMutation && options.onMutation(mutations) === false) {\n        return;\n      }\n      mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\n    })\n  );\n  observer.observe(rootEl, {\n    attributes: true,\n    attributeOldValue: true,\n    characterData: true,\n    characterDataOldValue: true,\n    childList: true,\n    subtree: true\n  });\n  return observer;\n}\nfunction initMoveObserver({\n  mousemoveCb,\n  sampling,\n  doc,\n  mirror: mirror2\n}) {\n  if (sampling.mousemove === false) {\n    return () => {\n    };\n  }\n  const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n  const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n  let positions = [];\n  let timeBaseline;\n  const wrappedCb = throttle$1(\n    callbackWrapper(\n      (source) => {\n        const totalOffset = Date.now() - timeBaseline;\n        mousemoveCb(\n          positions.map((p) => {\n            p.timeOffset -= totalOffset;\n            return p;\n          }),\n          source\n        );\n        positions = [];\n        timeBaseline = null;\n      }\n    ),\n    callbackThreshold\n  );\n  const updatePosition = callbackWrapper(\n    throttle$1(\n      callbackWrapper((evt) => {\n        const target = getEventTarget(evt);\n        const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n        if (!timeBaseline) {\n          timeBaseline = nowTimestamp();\n        }\n        positions.push({\n          x: clientX,\n          y: clientY,\n          id: mirror2.getId(target),\n          timeOffset: nowTimestamp() - timeBaseline\n        });\n        wrappedCb(\n          typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n        );\n      }),\n      threshold,\n      {\n        trailing: false\n      }\n    )\n  );\n  const handlers = [\n    on(\"mousemove\", updatePosition, doc),\n    on(\"touchmove\", updatePosition, doc),\n    on(\"drag\", updatePosition, doc)\n  ];\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initMouseInteractionObserver({\n  mouseInteractionCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  unblockSelector,\n  sampling\n}) {\n  if (sampling.mouseInteraction === false) {\n    return () => {\n    };\n  }\n  const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n  const handlers = [];\n  let currentPointerType = null;\n  const getHandler = (eventKey) => {\n    return (event) => {\n      const target = getEventTarget(event);\n      if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n        return;\n      }\n      let pointerType = null;\n      let thisEventKey = eventKey;\n      if (\"pointerType\" in event) {\n        switch (event.pointerType) {\n          case \"mouse\":\n            pointerType = PointerTypes.Mouse;\n            break;\n          case \"touch\":\n            pointerType = PointerTypes.Touch;\n            break;\n          case \"pen\":\n            pointerType = PointerTypes.Pen;\n            break;\n        }\n        if (pointerType === PointerTypes.Touch) {\n          if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n            thisEventKey = \"TouchStart\";\n          } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n            thisEventKey = \"TouchEnd\";\n          }\n        } else if (pointerType === PointerTypes.Pen) ;\n      } else if (legacy_isTouchEvent(event)) {\n        pointerType = PointerTypes.Touch;\n      }\n      if (pointerType !== null) {\n        currentPointerType = pointerType;\n        if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n          pointerType = null;\n        }\n      } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n        pointerType = currentPointerType;\n        currentPointerType = null;\n      }\n      const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n      if (!e2) {\n        return;\n      }\n      const id = mirror2.getId(target);\n      const { clientX, clientY } = e2;\n      callbackWrapper(mouseInteractionCb)({\n        type: MouseInteractions[thisEventKey],\n        id,\n        x: clientX,\n        y: clientY,\n        ...pointerType !== null && { pointerType }\n      });\n    };\n  };\n  Object.keys(MouseInteractions).filter(\n    (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n  ).forEach((eventKey) => {\n    let eventName = toLowerCase(eventKey);\n    const handler = getHandler(eventKey);\n    if (window.PointerEvent) {\n      switch (MouseInteractions[eventKey]) {\n        case MouseInteractions.MouseDown:\n        case MouseInteractions.MouseUp:\n          eventName = eventName.replace(\n            \"mouse\",\n            \"pointer\"\n          );\n          break;\n        case MouseInteractions.TouchStart:\n        case MouseInteractions.TouchEnd:\n          return;\n      }\n    }\n    handlers.push(on(eventName, handler, doc));\n  });\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initScrollObserver({\n  scrollCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  unblockSelector,\n  sampling\n}) {\n  const updatePosition = callbackWrapper(\n    throttle$1(\n      callbackWrapper((evt) => {\n        const target = getEventTarget(evt);\n        if (!target || isBlocked(\n          target,\n          blockClass,\n          blockSelector,\n          unblockSelector,\n          true\n        )) {\n          return;\n        }\n        const id = mirror2.getId(target);\n        if (target === doc && doc.defaultView) {\n          const scrollLeftTop = getWindowScroll(doc.defaultView);\n          scrollCb({\n            id,\n            x: scrollLeftTop.left,\n            y: scrollLeftTop.top\n          });\n        } else {\n          scrollCb({\n            id,\n            x: target.scrollLeft,\n            y: target.scrollTop\n          });\n        }\n      }),\n      sampling.scroll || 100\n    )\n  );\n  return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n  let lastH = -1;\n  let lastW = -1;\n  const updateDimension = callbackWrapper(\n    throttle$1(\n      callbackWrapper(() => {\n        const height = getWindowHeight();\n        const width = getWindowWidth();\n        if (lastH !== height || lastW !== width) {\n          viewportResizeCb({\n            width: Number(width),\n            height: Number(height)\n          });\n          lastH = height;\n          lastW = width;\n        }\n      }),\n      200\n    )\n  );\n  return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n  inputCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  unblockSelector,\n  ignoreClass,\n  ignoreSelector,\n  maskInputOptions,\n  maskInputFn,\n  sampling,\n  userTriggeredOnInput,\n  maskTextClass,\n  unmaskTextClass,\n  maskTextSelector,\n  unmaskTextSelector\n}) {\n  function eventHandler(event) {\n    let target = getEventTarget(event);\n    const userTriggered = event.isTrusted;\n    const tagName = target && toUpperCase(target.tagName);\n    if (tagName === \"OPTION\") target = target.parentElement;\n    if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(\n      target,\n      blockClass,\n      blockSelector,\n      unblockSelector,\n      true\n    )) {\n      return;\n    }\n    const el = target;\n    if (el.classList.contains(ignoreClass) || ignoreSelector && el.matches(ignoreSelector)) {\n      return;\n    }\n    const type = getInputType(target);\n    let text = getInputValue(el, tagName, type);\n    let isChecked = false;\n    const isInputMasked = shouldMaskInput({\n      maskInputOptions,\n      tagName,\n      type\n    });\n    const forceMask = needMaskingText(\n      target,\n      maskTextClass,\n      maskTextSelector,\n      unmaskTextClass,\n      unmaskTextSelector,\n      isInputMasked\n    );\n    if (type === \"radio\" || type === \"checkbox\") {\n      isChecked = target.checked;\n    }\n    text = maskInputValue({\n      isMasked: forceMask,\n      element: target,\n      value: text,\n      maskInputFn\n    });\n    cbWithDedup(\n      target,\n      userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n    );\n    const name = target.name;\n    if (type === \"radio\" && name && isChecked) {\n      doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el2) => {\n        if (el2 !== target) {\n          const text2 = maskInputValue({\n            // share mask behavior of `target`\n            isMasked: forceMask,\n            element: el2,\n            value: getInputValue(el2, tagName, type),\n            maskInputFn\n          });\n          cbWithDedup(\n            el2,\n            userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n          );\n        }\n      });\n    }\n  }\n  function cbWithDedup(target, v2) {\n    const lastInputValue = lastInputValueMap.get(target);\n    if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n      lastInputValueMap.set(target, v2);\n      const id = mirror2.getId(target);\n      callbackWrapper(inputCb)({\n        ...v2,\n        id\n      });\n    }\n  }\n  const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n  const handlers = events.map(\n    (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n  );\n  const currentWindow = doc.defaultView;\n  if (!currentWindow) {\n    return () => {\n      handlers.forEach((h) => h());\n    };\n  }\n  const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n    currentWindow.HTMLInputElement.prototype,\n    \"value\"\n  );\n  const hookProperties = [\n    [currentWindow.HTMLInputElement.prototype, \"value\"],\n    [currentWindow.HTMLInputElement.prototype, \"checked\"],\n    [currentWindow.HTMLSelectElement.prototype, \"value\"],\n    [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n    // Some UI library use selectedIndex to set select value\n    [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n    [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n  ];\n  if (propertyDescriptor && propertyDescriptor.set) {\n    handlers.push(\n      ...hookProperties.map(\n        (p) => hookSetter(\n          p[0],\n          p[1],\n          {\n            set() {\n              callbackWrapper(eventHandler)({\n                target: this,\n                isTrusted: false\n                // userTriggered to false as this could well be programmatic\n              });\n            }\n          },\n          false,\n          currentWindow\n        )\n      )\n    );\n  }\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction getNestedCSSRulePositions(rule) {\n  const positions = [];\n  function recurse(childRule, pos) {\n    if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n      const rules2 = Array.from(\n        childRule.parentRule.cssRules\n      );\n      const index = rules2.indexOf(childRule);\n      pos.unshift(index);\n    } else if (childRule.parentStyleSheet) {\n      const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n      const index = rules2.indexOf(childRule);\n      pos.unshift(index);\n    }\n    return pos;\n  }\n  return recurse(rule, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n  let id, styleId;\n  if (!sheet) return {};\n  if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n  else styleId = styleMirror.getId(sheet);\n  return {\n    styleId,\n    id\n  };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n  if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n    return () => {\n    };\n  }\n  const insertRule = win.CSSStyleSheet.prototype.insertRule;\n  win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [rule, index] = argumentsList;\n        const { id, styleId } = getIdAndStyleId(\n          thisArg,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleSheetRuleCb({\n            id,\n            styleId,\n            adds: [{ rule, index }]\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n  win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [index] = argumentsList;\n        const { id, styleId } = getIdAndStyleId(\n          thisArg,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleSheetRuleCb({\n            id,\n            styleId,\n            removes: [{ index }]\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  let replace;\n  if (win.CSSStyleSheet.prototype.replace) {\n    replace = win.CSSStyleSheet.prototype.replace;\n    win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n      apply: callbackWrapper(\n        (target, thisArg, argumentsList) => {\n          const [text] = argumentsList;\n          const { id, styleId } = getIdAndStyleId(\n            thisArg,\n            mirror2,\n            stylesheetManager.styleMirror\n          );\n          if (id && id !== -1 || styleId && styleId !== -1) {\n            styleSheetRuleCb({\n              id,\n              styleId,\n              replace: text\n            });\n          }\n          return target.apply(thisArg, argumentsList);\n        }\n      )\n    });\n  }\n  let replaceSync;\n  if (win.CSSStyleSheet.prototype.replaceSync) {\n    replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n    win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n      apply: callbackWrapper(\n        (target, thisArg, argumentsList) => {\n          const [text] = argumentsList;\n          const { id, styleId } = getIdAndStyleId(\n            thisArg,\n            mirror2,\n            stylesheetManager.styleMirror\n          );\n          if (id && id !== -1 || styleId && styleId !== -1) {\n            styleSheetRuleCb({\n              id,\n              styleId,\n              replaceSync: text\n            });\n          }\n          return target.apply(thisArg, argumentsList);\n        }\n      )\n    });\n  }\n  const supportedNestedCSSRuleTypes = {};\n  if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n    supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n  } else {\n    if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n      supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n    }\n    if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n      supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n    }\n    if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n      supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n    }\n  }\n  const unmodifiedFunctions = {};\n  Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n    unmodifiedFunctions[typeKey] = {\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      insertRule: type.prototype.insertRule,\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      deleteRule: type.prototype.deleteRule\n    };\n    type.prototype.insertRule = new Proxy(\n      unmodifiedFunctions[typeKey].insertRule,\n      {\n        apply: callbackWrapper(\n          (target, thisArg, argumentsList) => {\n            const [rule, index] = argumentsList;\n            const { id, styleId } = getIdAndStyleId(\n              thisArg.parentStyleSheet,\n              mirror2,\n              stylesheetManager.styleMirror\n            );\n            if (id && id !== -1 || styleId && styleId !== -1) {\n              styleSheetRuleCb({\n                id,\n                styleId,\n                adds: [\n                  {\n                    rule,\n                    index: [\n                      ...getNestedCSSRulePositions(thisArg),\n                      index || 0\n                      // defaults to 0\n                    ]\n                  }\n                ]\n              });\n            }\n            return target.apply(thisArg, argumentsList);\n          }\n        )\n      }\n    );\n    type.prototype.deleteRule = new Proxy(\n      unmodifiedFunctions[typeKey].deleteRule,\n      {\n        apply: callbackWrapper(\n          (target, thisArg, argumentsList) => {\n            const [index] = argumentsList;\n            const { id, styleId } = getIdAndStyleId(\n              thisArg.parentStyleSheet,\n              mirror2,\n              stylesheetManager.styleMirror\n            );\n            if (id && id !== -1 || styleId && styleId !== -1) {\n              styleSheetRuleCb({\n                id,\n                styleId,\n                removes: [\n                  { index: [...getNestedCSSRulePositions(thisArg), index] }\n                ]\n              });\n            }\n            return target.apply(thisArg, argumentsList);\n          }\n        )\n      }\n    );\n  });\n  return callbackWrapper(() => {\n    win.CSSStyleSheet.prototype.insertRule = insertRule;\n    win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n    replace && (win.CSSStyleSheet.prototype.replace = replace);\n    replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n    Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n      type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n      type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n    });\n  });\n}\nfunction initAdoptedStyleSheetObserver({\n  mirror: mirror2,\n  stylesheetManager\n}, host) {\n  let hostId = null;\n  if (host.nodeName === \"#document\") hostId = mirror2.getId(host);\n  else hostId = mirror2.getId(host.host);\n  const patchTarget = host.nodeName === \"#document\" ? host.defaultView?.Document : host.ownerDocument?.defaultView?.ShadowRoot;\n  const originalPropertyDescriptor = patchTarget?.prototype ? Object.getOwnPropertyDescriptor(\n    patchTarget?.prototype,\n    \"adoptedStyleSheets\"\n  ) : void 0;\n  if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n    return () => {\n    };\n  Object.defineProperty(host, \"adoptedStyleSheets\", {\n    configurable: originalPropertyDescriptor.configurable,\n    enumerable: originalPropertyDescriptor.enumerable,\n    get() {\n      return originalPropertyDescriptor.get?.call(this);\n    },\n    set(sheets) {\n      const result = originalPropertyDescriptor.set?.call(this, sheets);\n      if (hostId !== null && hostId !== -1) {\n        try {\n          stylesheetManager.adoptStyleSheets(sheets, hostId);\n        } catch (e2) {\n        }\n      }\n      return result;\n    }\n  });\n  return callbackWrapper(() => {\n    Object.defineProperty(host, \"adoptedStyleSheets\", {\n      configurable: originalPropertyDescriptor.configurable,\n      enumerable: originalPropertyDescriptor.enumerable,\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      get: originalPropertyDescriptor.get,\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      set: originalPropertyDescriptor.set\n    });\n  });\n}\nfunction initStyleDeclarationObserver({\n  styleDeclarationCb,\n  mirror: mirror2,\n  ignoreCSSAttributes,\n  stylesheetManager\n}, { win }) {\n  const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n  win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [property, value, priority] = argumentsList;\n        if (ignoreCSSAttributes.has(property)) {\n          return setProperty.apply(thisArg, [property, value, priority]);\n        }\n        const { id, styleId } = getIdAndStyleId(\n          thisArg.parentRule?.parentStyleSheet,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleDeclarationCb({\n            id,\n            styleId,\n            set: {\n              property,\n              value,\n              priority\n            },\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            index: getNestedCSSRulePositions(thisArg.parentRule)\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n  win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [property] = argumentsList;\n        if (ignoreCSSAttributes.has(property)) {\n          return removeProperty.apply(thisArg, [property]);\n        }\n        const { id, styleId } = getIdAndStyleId(\n          thisArg.parentRule?.parentStyleSheet,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleDeclarationCb({\n            id,\n            styleId,\n            remove: {\n              property\n            },\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            index: getNestedCSSRulePositions(thisArg.parentRule)\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  return callbackWrapper(() => {\n    win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n    win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n  });\n}\nfunction initMediaInteractionObserver({\n  mediaInteractionCb,\n  blockClass,\n  blockSelector,\n  unblockSelector,\n  mirror: mirror2,\n  sampling,\n  doc\n}) {\n  const handler = callbackWrapper(\n    (type) => throttle$1(\n      callbackWrapper((event) => {\n        const target = getEventTarget(event);\n        if (!target || isBlocked(\n          target,\n          blockClass,\n          blockSelector,\n          unblockSelector,\n          true\n        )) {\n          return;\n        }\n        const { currentTime, volume, muted, playbackRate } = target;\n        mediaInteractionCb({\n          type,\n          id: mirror2.getId(target),\n          currentTime,\n          volume,\n          muted,\n          playbackRate\n        });\n      }),\n      sampling.media || 500\n    )\n  );\n  const handlers = [\n    on(\"play\", handler(MediaInteractions.Play), doc),\n    on(\"pause\", handler(MediaInteractions.Pause), doc),\n    on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n    on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n    on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n  ];\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initFontObserver({ fontCb, doc }) {\n  const win = doc.defaultView;\n  if (!win) {\n    return () => {\n    };\n  }\n  const handlers = [];\n  const fontMap = /* @__PURE__ */ new WeakMap();\n  const originalFontFace = win.FontFace;\n  win.FontFace = function FontFace2(family, source, descriptors) {\n    const fontFace = new originalFontFace(family, source, descriptors);\n    fontMap.set(fontFace, {\n      family,\n      buffer: typeof source !== \"string\",\n      descriptors,\n      fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n    });\n    return fontFace;\n  };\n  const restoreHandler = patch(\n    doc.fonts,\n    \"add\",\n    function(original) {\n      return function(fontFace) {\n        setTimeout$2(\n          callbackWrapper(() => {\n            const p = fontMap.get(fontFace);\n            if (p) {\n              fontCb(p);\n              fontMap.delete(fontFace);\n            }\n          }),\n          0\n        );\n        return original.apply(this, [fontFace]);\n      };\n    }\n  );\n  handlers.push(() => {\n    win.FontFace = originalFontFace;\n  });\n  handlers.push(restoreHandler);\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initSelectionObserver(param) {\n  const {\n    doc,\n    mirror: mirror2,\n    blockClass,\n    blockSelector,\n    unblockSelector,\n    selectionCb\n  } = param;\n  let collapsed = true;\n  const updateSelection = callbackWrapper(() => {\n    const selection = doc.getSelection();\n    if (!selection || collapsed && selection?.isCollapsed) return;\n    collapsed = selection.isCollapsed || false;\n    const ranges = [];\n    const count = selection.rangeCount || 0;\n    for (let i2 = 0; i2 < count; i2++) {\n      const range = selection.getRangeAt(i2);\n      const { startContainer, startOffset, endContainer, endOffset } = range;\n      const blocked = isBlocked(\n        startContainer,\n        blockClass,\n        blockSelector,\n        unblockSelector,\n        true\n      ) || isBlocked(\n        endContainer,\n        blockClass,\n        blockSelector,\n        unblockSelector,\n        true\n      );\n      if (blocked) continue;\n      ranges.push({\n        start: mirror2.getId(startContainer),\n        startOffset,\n        end: mirror2.getId(endContainer),\n        endOffset\n      });\n    }\n    selectionCb({ ranges });\n  });\n  updateSelection();\n  return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n  doc,\n  customElementCb\n}) {\n  const win = doc.defaultView;\n  if (!win || !win.customElements) return () => {\n  };\n  const restoreHandler = patch(\n    win.customElements,\n    \"define\",\n    function(original) {\n      return function(name, constructor, options) {\n        try {\n          customElementCb({\n            define: {\n              name\n            }\n          });\n        } catch (e2) {\n        }\n        return original.apply(this, [name, constructor, options]);\n      };\n    }\n  );\n  return restoreHandler;\n}\nfunction initObservers(o2, _hooks = {}) {\n  const currentWindow = o2.doc.defaultView;\n  if (!currentWindow) {\n    return () => {\n    };\n  }\n  let mutationObserver;\n  if (o2.recordDOM) {\n    mutationObserver = initMutationObserver(o2, o2.doc);\n  }\n  const mousemoveHandler = initMoveObserver(o2);\n  const mouseInteractionHandler = initMouseInteractionObserver(o2);\n  const scrollHandler = initScrollObserver(o2);\n  const viewportResizeHandler = initViewportResizeObserver(o2, {\n    win: currentWindow\n  });\n  const inputHandler = initInputObserver(o2);\n  const mediaInteractionHandler = initMediaInteractionObserver(o2);\n  let styleSheetObserver = () => {\n  };\n  let adoptedStyleSheetObserver = () => {\n  };\n  let styleDeclarationObserver = () => {\n  };\n  let fontObserver = () => {\n  };\n  if (o2.recordDOM) {\n    styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n    adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n    styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n      win: currentWindow\n    });\n    if (o2.collectFonts) {\n      fontObserver = initFontObserver(o2);\n    }\n  }\n  const selectionObserver = initSelectionObserver(o2);\n  const customElementObserver = initCustomElementObserver(o2);\n  const pluginHandlers = [];\n  for (const plugin of o2.plugins) {\n    pluginHandlers.push(\n      plugin.observer(plugin.callback, currentWindow, plugin.options)\n    );\n  }\n  return callbackWrapper(() => {\n    mutationBuffers.forEach((b) => b.reset());\n    mutationObserver?.disconnect();\n    mousemoveHandler();\n    mouseInteractionHandler();\n    scrollHandler();\n    viewportResizeHandler();\n    inputHandler();\n    mediaInteractionHandler();\n    styleSheetObserver();\n    adoptedStyleSheetObserver();\n    styleDeclarationObserver();\n    fontObserver();\n    selectionObserver();\n    customElementObserver();\n    pluginHandlers.forEach((h) => h());\n  });\n}\nfunction hasNestedCSSRule(prop) {\n  return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n  return Boolean(\n    typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n    // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n    window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n  );\n}\nclass CrossOriginIframeMirror {\n  constructor(generateIdFn) {\n    this.generateIdFn = generateIdFn;\n    this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n    this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n  }\n  getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n    const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n    const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n    let id = idToRemoteIdMap.get(remoteId);\n    if (!id) {\n      id = this.generateIdFn();\n      idToRemoteIdMap.set(remoteId, id);\n      remoteIdToIdMap.set(id, remoteId);\n    }\n    return id;\n  }\n  getIds(iframe, remoteId) {\n    const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n    const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n    return remoteId.map(\n      (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n    );\n  }\n  getRemoteId(iframe, id, map) {\n    const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n    if (typeof id !== \"number\") return id;\n    const remoteId = remoteIdToIdMap.get(id);\n    if (!remoteId) return -1;\n    return remoteId;\n  }\n  getRemoteIds(iframe, ids) {\n    const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n    return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n  }\n  reset(iframe) {\n    if (!iframe) {\n      this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n      this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n      return;\n    }\n    this.iframeIdToRemoteIdMap.delete(iframe);\n    this.iframeRemoteIdToIdMap.delete(iframe);\n  }\n  getIdToRemoteIdMap(iframe) {\n    let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n    if (!idToRemoteIdMap) {\n      idToRemoteIdMap = /* @__PURE__ */ new Map();\n      this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n    }\n    return idToRemoteIdMap;\n  }\n  getRemoteIdToIdMap(iframe) {\n    let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n    if (!remoteIdToIdMap) {\n      remoteIdToIdMap = /* @__PURE__ */ new Map();\n      this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n    }\n    return remoteIdToIdMap;\n  }\n}\nclass IframeManagerNoop {\n  constructor() {\n    this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n    this.crossOriginIframeRootIdMap = /* @__PURE__ */ new WeakMap();\n  }\n  addIframe() {\n  }\n  addLoadListener() {\n  }\n  attachIframe() {\n  }\n}\nclass IframeManager {\n  constructor(options) {\n    this.iframes = /* @__PURE__ */ new WeakMap();\n    this.crossOriginIframeMap = /* @__PURE__ */ new WeakMap();\n    this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n    this.crossOriginIframeRootIdMap = /* @__PURE__ */ new WeakMap();\n    this.mutationCb = options.mutationCb;\n    this.wrappedEmit = options.wrappedEmit;\n    this.stylesheetManager = options.stylesheetManager;\n    this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n    this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n      this.stylesheetManager.styleMirror.generateId.bind(\n        this.stylesheetManager.styleMirror\n      )\n    );\n    this.mirror = options.mirror;\n    if (this.recordCrossOriginIframes) {\n      window.addEventListener(\"message\", this.handleMessage.bind(this));\n    }\n  }\n  addIframe(iframeEl) {\n    this.iframes.set(iframeEl, true);\n    const contentWindow = getIFrameContentWindow(iframeEl);\n    if (contentWindow) this.crossOriginIframeMap.set(contentWindow, iframeEl);\n  }\n  addLoadListener(cb) {\n    this.loadListener = cb;\n  }\n  attachIframe(iframeEl, childSn) {\n    this.mutationCb({\n      adds: [\n        {\n          parentId: this.mirror.getId(iframeEl),\n          nextId: null,\n          node: childSn\n        }\n      ],\n      removes: [],\n      texts: [],\n      attributes: [],\n      isAttachIframe: true\n    });\n    if (this.recordCrossOriginIframes) {\n      getIFrameContentWindow(iframeEl)?.addEventListener(\n        \"message\",\n        this.handleMessage.bind(this)\n      );\n    }\n    this.loadListener?.(iframeEl);\n    const iframeDoc = getIFrameContentDocument(iframeEl);\n    if (iframeDoc && iframeDoc.adoptedStyleSheets && iframeDoc.adoptedStyleSheets.length > 0)\n      this.stylesheetManager.adoptStyleSheets(\n        iframeDoc.adoptedStyleSheets,\n        this.mirror.getId(iframeDoc)\n      );\n  }\n  handleMessage(message) {\n    const crossOriginMessageEvent = message;\n    if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n    crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n      return;\n    const iframeSourceWindow = message.source;\n    if (!iframeSourceWindow) return;\n    const iframeEl = this.crossOriginIframeMap.get(message.source);\n    if (!iframeEl) return;\n    const transformedEvent = this.transformCrossOriginEvent(\n      iframeEl,\n      crossOriginMessageEvent.data.event\n    );\n    if (transformedEvent)\n      this.wrappedEmit(\n        transformedEvent,\n        crossOriginMessageEvent.data.isCheckout\n      );\n  }\n  transformCrossOriginEvent(iframeEl, e2) {\n    switch (e2.type) {\n      case EventType.FullSnapshot: {\n        this.crossOriginIframeMirror.reset(iframeEl);\n        this.crossOriginIframeStyleMirror.reset(iframeEl);\n        this.replaceIdOnNode(e2.data.node, iframeEl);\n        const rootId = e2.data.node.id;\n        this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n        this.patchRootIdOnNode(e2.data.node, rootId);\n        return {\n          timestamp: e2.timestamp,\n          type: EventType.IncrementalSnapshot,\n          data: {\n            source: IncrementalSource.Mutation,\n            adds: [\n              {\n                parentId: this.mirror.getId(iframeEl),\n                nextId: null,\n                node: e2.data.node\n              }\n            ],\n            removes: [],\n            texts: [],\n            attributes: [],\n            isAttachIframe: true\n          }\n        };\n      }\n      case EventType.Meta:\n      case EventType.Load:\n      case EventType.DomContentLoaded: {\n        return false;\n      }\n      case EventType.Plugin: {\n        return e2;\n      }\n      case EventType.Custom: {\n        this.replaceIds(\n          e2.data.payload,\n          iframeEl,\n          [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n        );\n        return e2;\n      }\n      case EventType.IncrementalSnapshot: {\n        switch (e2.data.source) {\n          case IncrementalSource.Mutation: {\n            e2.data.adds.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\n                \"parentId\",\n                \"nextId\",\n                \"previousId\"\n              ]);\n              this.replaceIdOnNode(n2.node, iframeEl);\n              const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n              rootId && this.patchRootIdOnNode(n2.node, rootId);\n            });\n            e2.data.removes.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n            });\n            e2.data.attributes.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"id\"]);\n            });\n            e2.data.texts.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"id\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.Drag:\n          case IncrementalSource.TouchMove:\n          case IncrementalSource.MouseMove: {\n            e2.data.positions.forEach((p) => {\n              this.replaceIds(p, iframeEl, [\"id\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.ViewportResize: {\n            return false;\n          }\n          case IncrementalSource.MediaInteraction:\n          case IncrementalSource.MouseInteraction:\n          case IncrementalSource.Scroll:\n          case IncrementalSource.CanvasMutation:\n          case IncrementalSource.Input: {\n            this.replaceIds(e2.data, iframeEl, [\"id\"]);\n            return e2;\n          }\n          case IncrementalSource.StyleSheetRule:\n          case IncrementalSource.StyleDeclaration: {\n            this.replaceIds(e2.data, iframeEl, [\"id\"]);\n            this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n            return e2;\n          }\n          case IncrementalSource.Font: {\n            return e2;\n          }\n          case IncrementalSource.Selection: {\n            e2.data.ranges.forEach((range) => {\n              this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.AdoptedStyleSheet: {\n            this.replaceIds(e2.data, iframeEl, [\"id\"]);\n            this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n            e2.data.styles?.forEach((style) => {\n              this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n            });\n            return e2;\n          }\n        }\n      }\n    }\n    return false;\n  }\n  replace(iframeMirror, obj, iframeEl, keys) {\n    for (const key of keys) {\n      if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n      if (Array.isArray(obj[key])) {\n        obj[key] = iframeMirror.getIds(\n          iframeEl,\n          obj[key]\n        );\n      } else {\n        obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n      }\n    }\n    return obj;\n  }\n  replaceIds(obj, iframeEl, keys) {\n    return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n  }\n  replaceStyleIds(obj, iframeEl, keys) {\n    return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n  }\n  replaceIdOnNode(node, iframeEl) {\n    this.replaceIds(node, iframeEl, [\"id\", \"rootId\"]);\n    if (\"childNodes\" in node) {\n      node.childNodes.forEach((child) => {\n        this.replaceIdOnNode(child, iframeEl);\n      });\n    }\n  }\n  patchRootIdOnNode(node, rootId) {\n    if (node.type !== NodeType$1.Document && !node.rootId) node.rootId = rootId;\n    if (\"childNodes\" in node) {\n      node.childNodes.forEach((child) => {\n        this.patchRootIdOnNode(child, rootId);\n      });\n    }\n  }\n}\nclass ShadowDomManagerNoop {\n  init() {\n  }\n  addShadowRoot() {\n  }\n  observeAttachShadow() {\n  }\n  reset() {\n  }\n}\nclass ShadowDomManager {\n  constructor(options) {\n    this.shadowDoms = /* @__PURE__ */ new WeakSet();\n    this.restoreHandlers = [];\n    this.mutationCb = options.mutationCb;\n    this.scrollCb = options.scrollCb;\n    this.bypassOptions = options.bypassOptions;\n    this.mirror = options.mirror;\n    this.init();\n  }\n  init() {\n    this.reset();\n    this.patchAttachShadow(Element, document);\n  }\n  addShadowRoot(shadowRoot, doc) {\n    if (!isNativeShadowDom(shadowRoot)) return;\n    if (this.shadowDoms.has(shadowRoot)) return;\n    this.shadowDoms.add(shadowRoot);\n    this.bypassOptions.canvasManager.addShadowRoot(shadowRoot);\n    const observer = initMutationObserver(\n      {\n        ...this.bypassOptions,\n        doc,\n        mutationCb: this.mutationCb,\n        mirror: this.mirror,\n        shadowDomManager: this\n      },\n      shadowRoot\n    );\n    this.restoreHandlers.push(() => observer.disconnect());\n    this.restoreHandlers.push(\n      initScrollObserver({\n        ...this.bypassOptions,\n        scrollCb: this.scrollCb,\n        // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n        // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n        doc: shadowRoot,\n        mirror: this.mirror\n      })\n    );\n    setTimeout$2(() => {\n      if (shadowRoot.adoptedStyleSheets && shadowRoot.adoptedStyleSheets.length > 0)\n        this.bypassOptions.stylesheetManager.adoptStyleSheets(\n          shadowRoot.adoptedStyleSheets,\n          this.mirror.getId(shadowRoot.host)\n        );\n      this.restoreHandlers.push(\n        initAdoptedStyleSheetObserver(\n          {\n            mirror: this.mirror,\n            stylesheetManager: this.bypassOptions.stylesheetManager\n          },\n          shadowRoot\n        )\n      );\n    }, 0);\n  }\n  /**\n   * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n   */\n  observeAttachShadow(iframeElement) {\n    const iframeDoc = getIFrameContentDocument(iframeElement);\n    const iframeWindow = getIFrameContentWindow(iframeElement);\n    if (!iframeDoc || !iframeWindow) return;\n    this.patchAttachShadow(\n      iframeWindow.Element,\n      iframeDoc\n    );\n  }\n  /**\n   * Patch 'attachShadow' to observe newly added shadow doms.\n   */\n  patchAttachShadow(element, doc) {\n    const manager = this;\n    this.restoreHandlers.push(\n      patch(\n        element.prototype,\n        \"attachShadow\",\n        function(original) {\n          return function(option) {\n            const shadowRoot = original.call(this, option);\n            if (this.shadowRoot && inDom(this))\n              manager.addShadowRoot(this.shadowRoot, doc);\n            return shadowRoot;\n          };\n        }\n      )\n    );\n  }\n  reset() {\n    this.restoreHandlers.forEach((handler) => {\n      try {\n        handler();\n      } catch (e2) {\n      }\n    });\n    this.restoreHandlers = [];\n    this.shadowDoms = /* @__PURE__ */ new WeakSet();\n    this.bypassOptions.canvasManager.resetShadowRoots();\n  }\n}\nclass StylesheetManager {\n  constructor(options) {\n    this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n    this.styleMirror = new StyleSheetMirror();\n    this.mutationCb = options.mutationCb;\n    this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n  }\n  attachLinkElement(linkEl, childSn) {\n    if (\"_cssText\" in childSn.attributes)\n      this.mutationCb({\n        adds: [],\n        removes: [],\n        texts: [],\n        attributes: [\n          {\n            id: childSn.id,\n            attributes: childSn.attributes\n          }\n        ]\n      });\n    this.trackLinkElement(linkEl);\n  }\n  trackLinkElement(linkEl) {\n    if (this.trackedLinkElements.has(linkEl)) return;\n    this.trackedLinkElements.add(linkEl);\n    this.trackStylesheetInLinkElement(linkEl);\n  }\n  adoptStyleSheets(sheets, hostId) {\n    if (sheets.length === 0) return;\n    const adoptedStyleSheetData = {\n      id: hostId,\n      styleIds: []\n    };\n    const styles = [];\n    for (const sheet of sheets) {\n      let styleId;\n      if (!this.styleMirror.has(sheet)) {\n        styleId = this.styleMirror.add(sheet);\n        styles.push({\n          styleId,\n          rules: Array.from(sheet.rules || CSSRule, (r2, index) => ({\n            rule: stringifyRule(r2),\n            index\n          }))\n        });\n      } else styleId = this.styleMirror.getId(sheet);\n      adoptedStyleSheetData.styleIds.push(styleId);\n    }\n    if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n    this.adoptedStyleSheetCb(adoptedStyleSheetData);\n  }\n  reset() {\n    this.styleMirror.reset();\n    this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n  }\n  // TODO: take snapshot on stylesheet reload by applying event listener\n  trackStylesheetInLinkElement(_linkEl) {\n  }\n}\nclass ProcessedNodeManager {\n  constructor() {\n    this.nodeMap = /* @__PURE__ */ new WeakMap();\n    this.active = false;\n  }\n  inOtherBuffer(node, thisBuffer) {\n    const buffers = this.nodeMap.get(node);\n    return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n  }\n  add(node, buffer) {\n    if (!this.active) {\n      this.active = true;\n      onRequestAnimationFrame(() => {\n        this.nodeMap = /* @__PURE__ */ new WeakMap();\n        this.active = false;\n      });\n    }\n    this.nodeMap.set(node, (this.nodeMap.get(node) || /* @__PURE__ */ new Set()).add(buffer));\n  }\n  destroy() {\n  }\n}\nlet wrappedEmit;\nlet _takeFullSnapshot;\ntry {\n  if (Array.from([1], (x) => x * 2)[0] !== 2) {\n    const cleanFrame = document.createElement(\"iframe\");\n    document.body.appendChild(cleanFrame);\n    Array.from = cleanFrame.contentWindow?.Array.from || Array.from;\n    document.body.removeChild(cleanFrame);\n  }\n} catch (err) {\n  console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror();\nfunction record(options = {}) {\n  const {\n    emit,\n    checkoutEveryNms,\n    checkoutEveryNth,\n    blockClass = \"rr-block\",\n    blockSelector = null,\n    unblockSelector = null,\n    ignoreClass = \"rr-ignore\",\n    ignoreSelector = null,\n    maskAllText = false,\n    maskTextClass = \"rr-mask\",\n    unmaskTextClass = null,\n    maskTextSelector = null,\n    unmaskTextSelector = null,\n    inlineStylesheet = true,\n    maskAllInputs,\n    maskInputOptions: _maskInputOptions,\n    slimDOMOptions: _slimDOMOptions,\n    maskAttributeFn,\n    maskInputFn,\n    maskTextFn,\n    maxCanvasSize = null,\n    packFn,\n    sampling = {},\n    dataURLOptions = {},\n    mousemoveWait,\n    recordDOM = true,\n    recordCanvas = false,\n    recordCrossOriginIframes = false,\n    recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n    userTriggeredOnInput = false,\n    collectFonts = false,\n    inlineImages = false,\n    plugins,\n    keepIframeSrcFn = () => false,\n    ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n    errorHandler,\n    onMutation,\n    getCanvasManager\n  } = options;\n  registerErrorHandler(errorHandler);\n  const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n  let passEmitsToParent = false;\n  if (!inEmittingFrame) {\n    try {\n      if (window.parent.document) {\n        passEmitsToParent = false;\n      }\n    } catch (e2) {\n      passEmitsToParent = true;\n    }\n  }\n  if (inEmittingFrame && !emit) {\n    throw new Error(\"emit function is required\");\n  }\n  if (!inEmittingFrame && !passEmitsToParent) {\n    return () => {\n    };\n  }\n  if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n    sampling.mousemove = mousemoveWait;\n  }\n  mirror.reset();\n  const maskInputOptions = maskAllInputs === true ? {\n    color: true,\n    date: true,\n    \"datetime-local\": true,\n    email: true,\n    month: true,\n    number: true,\n    range: true,\n    search: true,\n    tel: true,\n    text: true,\n    time: true,\n    url: true,\n    week: true,\n    textarea: true,\n    select: true,\n    radio: true,\n    checkbox: true\n  } : _maskInputOptions !== void 0 ? _maskInputOptions : {};\n  const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n    script: true,\n    comment: true,\n    headFavicon: true,\n    headWhitespace: true,\n    headMetaSocial: true,\n    headMetaRobots: true,\n    headMetaHttpEquiv: true,\n    headMetaVerification: true,\n    // the following are off for slimDOMOptions === true,\n    // as they destroy some (hidden) info:\n    headMetaAuthorship: _slimDOMOptions === \"all\",\n    headMetaDescKeywords: _slimDOMOptions === \"all\"\n  } : _slimDOMOptions ? _slimDOMOptions : {};\n  polyfill();\n  let lastFullSnapshotEvent;\n  let incrementalSnapshotCount = 0;\n  const eventProcessor = (e2) => {\n    for (const plugin of plugins || []) {\n      if (plugin.eventProcessor) {\n        e2 = plugin.eventProcessor(e2);\n      }\n    }\n    if (packFn && // Disable packing events which will be emitted to parent frames.\n    !passEmitsToParent) {\n      e2 = packFn(e2);\n    }\n    return e2;\n  };\n  wrappedEmit = (r2, isCheckout) => {\n    const e2 = r2;\n    e2.timestamp = nowTimestamp();\n    if (mutationBuffers[0]?.isFrozen() && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n      mutationBuffers.forEach((buf) => buf.unfreeze());\n    }\n    if (inEmittingFrame) {\n      emit?.(eventProcessor(e2), isCheckout);\n    } else if (passEmitsToParent) {\n      const message = {\n        type: \"rrweb\",\n        event: eventProcessor(e2),\n        origin: window.location.origin,\n        isCheckout\n      };\n      window.parent.postMessage(message, \"*\");\n    }\n    if (e2.type === EventType.FullSnapshot) {\n      lastFullSnapshotEvent = e2;\n      incrementalSnapshotCount = 0;\n    } else if (e2.type === EventType.IncrementalSnapshot) {\n      if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n        return;\n      }\n      incrementalSnapshotCount++;\n      const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n      const exceedTime = checkoutEveryNms && lastFullSnapshotEvent && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n      if (exceedCount || exceedTime) {\n        takeFullSnapshot2(true);\n      }\n    }\n  };\n  const wrappedMutationEmit = (m) => {\n    wrappedEmit({\n      type: EventType.IncrementalSnapshot,\n      data: {\n        source: IncrementalSource.Mutation,\n        ...m\n      }\n    });\n  };\n  const wrappedScrollEmit = (p) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.Scroll,\n      ...p\n    }\n  });\n  const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.CanvasMutation,\n      ...p\n    }\n  });\n  const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.AdoptedStyleSheet,\n      ...a2\n    }\n  });\n  const stylesheetManager = new StylesheetManager({\n    mutationCb: wrappedMutationEmit,\n    adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n  });\n  const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === \"boolean\" && __RRWEB_EXCLUDE_IFRAME__ ? new IframeManagerNoop() : new IframeManager({\n    mirror,\n    mutationCb: wrappedMutationEmit,\n    stylesheetManager,\n    recordCrossOriginIframes,\n    wrappedEmit\n  });\n  for (const plugin of plugins || []) {\n    if (plugin.getMirror)\n      plugin.getMirror({\n        nodeMirror: mirror,\n        crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n        crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n      });\n  }\n  const processedNodeManager = new ProcessedNodeManager();\n  const canvasManager = _getCanvasManager(\n    getCanvasManager,\n    {\n      mirror,\n      win: window,\n      mutationCb: (p) => wrappedEmit({\n        type: EventType.IncrementalSnapshot,\n        data: {\n          source: IncrementalSource.CanvasMutation,\n          ...p\n        }\n      }),\n      recordCanvas,\n      blockClass,\n      blockSelector,\n      unblockSelector,\n      maxCanvasSize,\n      sampling: sampling[\"canvas\"],\n      dataURLOptions,\n      errorHandler\n    }\n  );\n  const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === \"boolean\" && __RRWEB_EXCLUDE_SHADOW_DOM__ ? new ShadowDomManagerNoop() : new ShadowDomManager({\n    mutationCb: wrappedMutationEmit,\n    scrollCb: wrappedScrollEmit,\n    bypassOptions: {\n      onMutation,\n      blockClass,\n      blockSelector,\n      unblockSelector,\n      maskAllText,\n      maskTextClass,\n      unmaskTextClass,\n      maskTextSelector,\n      unmaskTextSelector,\n      inlineStylesheet,\n      maskInputOptions,\n      dataURLOptions,\n      maskAttributeFn,\n      maskTextFn,\n      maskInputFn,\n      recordCanvas,\n      inlineImages,\n      sampling,\n      slimDOMOptions,\n      iframeManager,\n      stylesheetManager,\n      canvasManager,\n      keepIframeSrcFn,\n      processedNodeManager,\n      ignoreCSSAttributes\n    },\n    mirror\n  });\n  const takeFullSnapshot2 = (isCheckout = false) => {\n    if (!recordDOM) {\n      return;\n    }\n    wrappedEmit(\n      {\n        type: EventType.Meta,\n        data: {\n          href: window.location.href,\n          width: getWindowWidth(),\n          height: getWindowHeight()\n        }\n      },\n      isCheckout\n    );\n    stylesheetManager.reset();\n    shadowDomManager.init();\n    mutationBuffers.forEach((buf) => buf.lock());\n    const node = snapshot(document, {\n      mirror,\n      blockClass,\n      blockSelector,\n      unblockSelector,\n      maskAllText,\n      maskTextClass,\n      unmaskTextClass,\n      maskTextSelector,\n      unmaskTextSelector,\n      inlineStylesheet,\n      maskAllInputs: maskInputOptions,\n      maskAttributeFn,\n      maskInputFn,\n      maskTextFn,\n      slimDOM: slimDOMOptions,\n      dataURLOptions,\n      recordCanvas,\n      inlineImages,\n      onSerialize: (n2) => {\n        if (isSerializedIframe(n2, mirror)) {\n          iframeManager.addIframe(n2);\n        }\n        if (isSerializedStylesheet(n2, mirror)) {\n          stylesheetManager.trackLinkElement(n2);\n        }\n        if (hasShadowRoot(n2)) {\n          shadowDomManager.addShadowRoot(n2.shadowRoot, document);\n        }\n      },\n      onIframeLoad: (iframe, childSn) => {\n        iframeManager.attachIframe(iframe, childSn);\n        const contentWindow = getIFrameContentWindow(iframe);\n        if (contentWindow) {\n          canvasManager.addWindow(contentWindow);\n        }\n        shadowDomManager.observeAttachShadow(iframe);\n      },\n      onStylesheetLoad: (linkEl, childSn) => {\n        stylesheetManager.attachLinkElement(linkEl, childSn);\n      },\n      onBlockedImageLoad: (_imageEl, serializedNode, { width, height }) => {\n        wrappedMutationEmit({\n          adds: [],\n          removes: [],\n          texts: [],\n          attributes: [\n            {\n              id: serializedNode.id,\n              attributes: {\n                style: {\n                  width: `${width}px`,\n                  height: `${height}px`\n                }\n              }\n            }\n          ]\n        });\n      },\n      keepIframeSrcFn,\n      ignoreCSSAttributes\n    });\n    if (!node) {\n      return console.warn(\"Failed to snapshot the document\");\n    }\n    wrappedEmit({\n      type: EventType.FullSnapshot,\n      data: {\n        node,\n        initialOffset: getWindowScroll(window)\n      }\n    });\n    mutationBuffers.forEach((buf) => buf.unlock());\n    if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n      stylesheetManager.adoptStyleSheets(\n        document.adoptedStyleSheets,\n        mirror.getId(document)\n      );\n  };\n  _takeFullSnapshot = takeFullSnapshot2;\n  try {\n    const handlers = [];\n    const observe = (doc) => {\n      return callbackWrapper(initObservers)(\n        {\n          onMutation,\n          mutationCb: wrappedMutationEmit,\n          mousemoveCb: (positions, source) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source,\n              positions\n            }\n          }),\n          mouseInteractionCb: (d) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.MouseInteraction,\n              ...d\n            }\n          }),\n          scrollCb: wrappedScrollEmit,\n          viewportResizeCb: (d) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.ViewportResize,\n              ...d\n            }\n          }),\n          inputCb: (v2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.Input,\n              ...v2\n            }\n          }),\n          mediaInteractionCb: (p) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.MediaInteraction,\n              ...p\n            }\n          }),\n          styleSheetRuleCb: (r2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.StyleSheetRule,\n              ...r2\n            }\n          }),\n          styleDeclarationCb: (r2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.StyleDeclaration,\n              ...r2\n            }\n          }),\n          canvasMutationCb: wrappedCanvasMutationEmit,\n          fontCb: (p) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.Font,\n              ...p\n            }\n          }),\n          selectionCb: (p) => {\n            wrappedEmit({\n              type: EventType.IncrementalSnapshot,\n              data: {\n                source: IncrementalSource.Selection,\n                ...p\n              }\n            });\n          },\n          customElementCb: (c2) => {\n            wrappedEmit({\n              type: EventType.IncrementalSnapshot,\n              data: {\n                source: IncrementalSource.CustomElement,\n                ...c2\n              }\n            });\n          },\n          blockClass,\n          ignoreClass,\n          ignoreSelector,\n          maskAllText,\n          maskTextClass,\n          unmaskTextClass,\n          maskTextSelector,\n          unmaskTextSelector,\n          maskInputOptions,\n          inlineStylesheet,\n          sampling,\n          recordDOM,\n          recordCanvas,\n          inlineImages,\n          userTriggeredOnInput,\n          collectFonts,\n          doc,\n          maskAttributeFn,\n          maskInputFn,\n          maskTextFn,\n          keepIframeSrcFn,\n          blockSelector,\n          unblockSelector,\n          slimDOMOptions,\n          dataURLOptions,\n          mirror,\n          iframeManager,\n          stylesheetManager,\n          shadowDomManager,\n          processedNodeManager,\n          canvasManager,\n          ignoreCSSAttributes,\n          plugins: plugins?.filter((p) => p.observer)?.map((p) => ({\n            observer: p.observer,\n            options: p.options,\n            callback: (payload) => wrappedEmit({\n              type: EventType.Plugin,\n              data: {\n                plugin: p.name,\n                payload\n              }\n            })\n          })) || []\n        },\n        {}\n      );\n    };\n    iframeManager.addLoadListener((iframeEl) => {\n      try {\n        handlers.push(observe(iframeEl.contentDocument));\n      } catch (error) {\n        console.warn(error);\n      }\n    });\n    const init = () => {\n      takeFullSnapshot2();\n      handlers.push(observe(document));\n    };\n    if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n      init();\n    } else {\n      handlers.push(\n        on(\"DOMContentLoaded\", () => {\n          wrappedEmit({\n            type: EventType.DomContentLoaded,\n            data: {}\n          });\n          if (recordAfter === \"DOMContentLoaded\") init();\n        })\n      );\n      handlers.push(\n        on(\n          \"load\",\n          () => {\n            wrappedEmit({\n              type: EventType.Load,\n              data: {}\n            });\n            if (recordAfter === \"load\") init();\n          },\n          window\n        )\n      );\n    }\n    return () => {\n      handlers.forEach((h) => h());\n      processedNodeManager.destroy();\n      _takeFullSnapshot = void 0;\n      unregisterErrorHandler();\n    };\n  } catch (error) {\n    console.warn(error);\n  }\n}\nfunction takeFullSnapshot(isCheckout) {\n  if (!_takeFullSnapshot) {\n    throw new Error(\"please take full snapshot after start recording\");\n  }\n  _takeFullSnapshot(isCheckout);\n}\nrecord.mirror = mirror;\nrecord.takeFullSnapshot = takeFullSnapshot;\nfunction _getCanvasManager(getCanvasManagerFn, options) {\n  try {\n    return getCanvasManagerFn ? getCanvasManagerFn(options) : new CanvasManagerNoop();\n  } catch {\n    console.warn(\"Unable to initialize CanvasManager\");\n    return new CanvasManagerNoop();\n  }\n}\nvar n;\n!(function(t2) {\n  t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n})(n || (n = {}));\n\nconst ReplayEventTypeIncrementalSnapshot = 3;\nconst ReplayEventTypeCustom = 5;\n\nfunction timestampToMs(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp : timestamp * 1e3;\n}\nfunction timestampToS(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1e3 : timestamp;\n}\n\nfunction addBreadcrumbEvent(replay, breadcrumb) {\n  if (breadcrumb.category === \"sentry.transaction\") {\n    return;\n  }\n  if ([\"ui.click\", \"ui.input\"].includes(breadcrumb.category)) {\n    replay.triggerUserActivity();\n  } else {\n    replay.checkAndHandleExpiredSession();\n  }\n  replay.addUpdate(() => {\n    replay.throttledAddEvent({\n      type: EventType.Custom,\n      // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n      // but maybe we should just keep them as milliseconds\n      timestamp: (breadcrumb.timestamp || 0) * 1e3,\n      data: {\n        tag: \"breadcrumb\",\n        // normalize to max. 10 depth and 1_000 properties per object\n        payload: normalize(breadcrumb, 10, 1e3)\n      }\n    });\n    return breadcrumb.category === \"console\";\n  });\n}\n\nconst INTERACTIVE_SELECTOR = \"button,a\";\nfunction getClosestInteractive(element) {\n  const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n  return closestInteractive || element;\n}\nfunction getClickTargetNode(event) {\n  const target = getTargetNode(event);\n  if (!target || !(target instanceof Element)) {\n    return target;\n  }\n  return getClosestInteractive(target);\n}\nfunction getTargetNode(event) {\n  if (isEventWithTarget(event)) {\n    return event.target;\n  }\n  return event;\n}\nfunction isEventWithTarget(event) {\n  return isObjectLike(event) && \"target\" in event;\n}\n\nlet handlers;\nfunction onWindowOpen(cb) {\n  if (!handlers) {\n    handlers = [];\n    monkeyPatchWindowOpen();\n  }\n  handlers.push(cb);\n  return () => {\n    const pos = handlers ? handlers.indexOf(cb) : -1;\n    if (pos > -1) {\n      handlers.splice(pos, 1);\n    }\n  };\n}\nfunction monkeyPatchWindowOpen() {\n  fill(WINDOW, \"open\", function(originalWindowOpen) {\n    return function(...args) {\n      if (handlers) {\n        try {\n          handlers.forEach((handler) => handler());\n        } catch {\n        }\n      }\n      return originalWindowOpen.apply(WINDOW, args);\n    };\n  });\n}\n\nconst IncrementalMutationSources = /* @__PURE__ */ new Set([\n  IncrementalSource.Mutation,\n  IncrementalSource.StyleSheetRule,\n  IncrementalSource.StyleDeclaration,\n  IncrementalSource.AdoptedStyleSheet,\n  IncrementalSource.CanvasMutation,\n  IncrementalSource.Selection,\n  IncrementalSource.MediaInteraction\n]);\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n  clickDetector.handleClick(clickBreadcrumb, node);\n}\nclass ClickDetector {\n  constructor(replay, slowClickConfig, _addBreadcrumbEvent = addBreadcrumbEvent) {\n    this._lastMutation = 0;\n    this._lastScroll = 0;\n    this._clicks = [];\n    this._timeout = slowClickConfig.timeout / 1e3;\n    this._threshold = slowClickConfig.threshold / 1e3;\n    this._scrollTimeout = slowClickConfig.scrollTimeout / 1e3;\n    this._replay = replay;\n    this._ignoreSelector = slowClickConfig.ignoreSelector;\n    this._addBreadcrumbEvent = _addBreadcrumbEvent;\n  }\n  /** Register click detection handlers on mutation or scroll. */\n  addListeners() {\n    const cleanupWindowOpen = onWindowOpen(() => {\n      this._lastMutation = nowInSeconds();\n    });\n    this._teardown = () => {\n      cleanupWindowOpen();\n      this._clicks = [];\n      this._lastMutation = 0;\n      this._lastScroll = 0;\n    };\n  }\n  /** Clean up listeners. */\n  removeListeners() {\n    if (this._teardown) {\n      this._teardown();\n    }\n    if (this._checkClickTimeout) {\n      clearTimeout(this._checkClickTimeout);\n    }\n  }\n  /** @inheritDoc */\n  handleClick(breadcrumb, node) {\n    if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n      return;\n    }\n    const newClick = {\n      timestamp: timestampToS(breadcrumb.timestamp),\n      clickBreadcrumb: breadcrumb,\n      // Set this to 0 so we know it originates from the click breadcrumb\n      clickCount: 0,\n      node\n    };\n    if (this._clicks.some((click) => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)) {\n      return;\n    }\n    this._clicks.push(newClick);\n    if (this._clicks.length === 1) {\n      this._scheduleCheckClicks();\n    }\n  }\n  /** @inheritDoc */\n  registerMutation(timestamp = Date.now()) {\n    this._lastMutation = timestampToS(timestamp);\n  }\n  /** @inheritDoc */\n  registerScroll(timestamp = Date.now()) {\n    this._lastScroll = timestampToS(timestamp);\n  }\n  /** @inheritDoc */\n  registerClick(element) {\n    const node = getClosestInteractive(element);\n    this._handleMultiClick(node);\n  }\n  /** Count multiple clicks on elements. */\n  _handleMultiClick(node) {\n    this._getClicks(node).forEach((click) => {\n      click.clickCount++;\n    });\n  }\n  /** Get all pending clicks for a given node. */\n  _getClicks(node) {\n    return this._clicks.filter((click) => click.node === node);\n  }\n  /** Check the clicks that happened. */\n  _checkClicks() {\n    const timedOutClicks = [];\n    const now = nowInSeconds();\n    this._clicks.forEach((click) => {\n      if (!click.mutationAfter && this._lastMutation) {\n        click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : void 0;\n      }\n      if (!click.scrollAfter && this._lastScroll) {\n        click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : void 0;\n      }\n      if (click.timestamp + this._timeout <= now) {\n        timedOutClicks.push(click);\n      }\n    });\n    for (const click of timedOutClicks) {\n      const pos = this._clicks.indexOf(click);\n      if (pos > -1) {\n        this._generateBreadcrumbs(click);\n        this._clicks.splice(pos, 1);\n      }\n    }\n    if (this._clicks.length) {\n      this._scheduleCheckClicks();\n    }\n  }\n  /** Generate matching breadcrumb(s) for the click. */\n  _generateBreadcrumbs(click) {\n    const replay = this._replay;\n    const hadScroll = click.scrollAfter && click.scrollAfter <= this._scrollTimeout;\n    const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n    const isSlowClick = !hadScroll && !hadMutation;\n    const { clickCount, clickBreadcrumb } = click;\n    if (isSlowClick) {\n      const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1e3;\n      const endReason = timeAfterClickMs < this._timeout * 1e3 ? \"mutation\" : \"timeout\";\n      const breadcrumb = {\n        type: \"default\",\n        message: clickBreadcrumb.message,\n        timestamp: clickBreadcrumb.timestamp,\n        category: \"ui.slowClickDetected\",\n        data: {\n          ...clickBreadcrumb.data,\n          url: WINDOW.location.href,\n          route: replay.getCurrentRoute(),\n          timeAfterClickMs,\n          endReason,\n          // If clickCount === 0, it means multiClick was not correctly captured here\n          // - we still want to send 1 in this case\n          clickCount: clickCount || 1\n        }\n      };\n      this._addBreadcrumbEvent(replay, breadcrumb);\n      return;\n    }\n    if (clickCount > 1) {\n      const breadcrumb = {\n        type: \"default\",\n        message: clickBreadcrumb.message,\n        timestamp: clickBreadcrumb.timestamp,\n        category: \"ui.multiClick\",\n        data: {\n          ...clickBreadcrumb.data,\n          url: WINDOW.location.href,\n          route: replay.getCurrentRoute(),\n          clickCount,\n          metric: true\n        }\n      };\n      this._addBreadcrumbEvent(replay, breadcrumb);\n    }\n  }\n  /** Schedule to check current clicks. */\n  _scheduleCheckClicks() {\n    if (this._checkClickTimeout) {\n      clearTimeout(this._checkClickTimeout);\n    }\n    this._checkClickTimeout = setTimeout$3(() => this._checkClicks(), 1e3);\n  }\n}\nconst SLOW_CLICK_TAGS = [\"A\", \"BUTTON\", \"INPUT\"];\nfunction ignoreElement(node, ignoreSelector) {\n  if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n    return true;\n  }\n  if (node.tagName === \"INPUT\" && ![\"submit\", \"button\"].includes(node.getAttribute(\"type\") || \"\")) {\n    return true;\n  }\n  if (node.tagName === \"A\" && (node.hasAttribute(\"download\") || node.hasAttribute(\"target\") && node.getAttribute(\"target\") !== \"_self\")) {\n    return true;\n  }\n  if (ignoreSelector && node.matches(ignoreSelector)) {\n    return true;\n  }\n  return false;\n}\nfunction isClickBreadcrumb(breadcrumb) {\n  return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === \"number\" && breadcrumb.timestamp);\n}\nfunction nowInSeconds() {\n  return Date.now() / 1e3;\n}\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n  try {\n    if (!isIncrementalEvent(event)) {\n      return;\n    }\n    const { source } = event.data;\n    if (IncrementalMutationSources.has(source)) {\n      clickDetector.registerMutation(event.timestamp);\n    }\n    if (source === IncrementalSource.Scroll) {\n      clickDetector.registerScroll(event.timestamp);\n    }\n    if (isIncrementalMouseInteraction(event)) {\n      const { type, id } = event.data;\n      const node = record.mirror.getNode(id);\n      if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n        clickDetector.registerClick(node);\n      }\n    }\n  } catch {\n  }\n}\nfunction isIncrementalEvent(event) {\n  return event.type === ReplayEventTypeIncrementalSnapshot;\n}\nfunction isIncrementalMouseInteraction(event) {\n  return event.data.source === IncrementalSource.MouseInteraction;\n}\n\nfunction createBreadcrumb(breadcrumb) {\n  return {\n    timestamp: Date.now() / 1e3,\n    type: \"default\",\n    ...breadcrumb\n  };\n}\n\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType || {});\n\nconst ATTRIBUTES_TO_RECORD = /* @__PURE__ */ new Set([\n  \"id\",\n  \"class\",\n  \"aria-label\",\n  \"role\",\n  \"name\",\n  \"alt\",\n  \"title\",\n  \"data-test-id\",\n  \"data-testid\",\n  \"disabled\",\n  \"aria-disabled\",\n  \"data-sentry-component\"\n]);\nfunction getAttributesToRecord(attributes) {\n  const obj = {};\n  if (!attributes[\"data-sentry-component\"] && attributes[\"data-sentry-element\"]) {\n    attributes[\"data-sentry-component\"] = attributes[\"data-sentry-element\"];\n  }\n  for (const key in attributes) {\n    if (ATTRIBUTES_TO_RECORD.has(key)) {\n      let normalizedKey = key;\n      if (key === \"data-testid\" || key === \"data-test-id\") {\n        normalizedKey = \"testId\";\n      }\n      obj[normalizedKey] = attributes[key];\n    }\n  }\n  return obj;\n}\n\nconst handleDomListener = (replay) => {\n  return (handlerData) => {\n    if (!replay.isEnabled()) {\n      return;\n    }\n    const result = handleDom(handlerData);\n    if (!result) {\n      return;\n    }\n    const isClick = handlerData.name === \"click\";\n    const event = isClick ? handlerData.event : void 0;\n    if (isClick && replay.clickDetector && event?.target && !event.altKey && !event.metaKey && !event.ctrlKey && !event.shiftKey) {\n      handleClick(\n        replay.clickDetector,\n        result,\n        getClickTargetNode(handlerData.event)\n      );\n    }\n    addBreadcrumbEvent(replay, result);\n  };\n};\nfunction getBaseDomBreadcrumb(target, message) {\n  const nodeId = record.mirror.getId(target);\n  const node = nodeId && record.mirror.getNode(nodeId);\n  const meta = node && record.mirror.getMeta(node);\n  const element = meta && isElement(meta) ? meta : null;\n  return {\n    message,\n    data: element ? {\n      nodeId,\n      node: {\n        id: nodeId,\n        tagName: element.tagName,\n        textContent: Array.from(element.childNodes).map((node2) => node2.type === NodeType.Text && node2.textContent).filter(Boolean).map((text) => text.trim()).join(\"\"),\n        attributes: getAttributesToRecord(element.attributes)\n      }\n    } : {}\n  };\n}\nfunction handleDom(handlerData) {\n  const { target, message } = getDomTarget(handlerData);\n  return createBreadcrumb({\n    category: `ui.${handlerData.name}`,\n    ...getBaseDomBreadcrumb(target, message)\n  });\n}\nfunction getDomTarget(handlerData) {\n  const isClick = handlerData.name === \"click\";\n  let message;\n  let target = null;\n  try {\n    target = isClick ? getClickTargetNode(handlerData.event) : getTargetNode(handlerData.event);\n    message = htmlTreeAsString(target, { maxStringLength: 200 }) || \"<unknown>\";\n  } catch {\n    message = \"<unknown>\";\n  }\n  return { target, message };\n}\nfunction isElement(node) {\n  return node.type === NodeType.Element;\n}\n\nfunction handleKeyboardEvent(replay, event) {\n  if (!replay.isEnabled()) {\n    return;\n  }\n  replay.updateUserActivity();\n  const breadcrumb = getKeyboardBreadcrumb(event);\n  if (!breadcrumb) {\n    return;\n  }\n  addBreadcrumbEvent(replay, breadcrumb);\n}\nfunction getKeyboardBreadcrumb(event) {\n  const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n  if (!target || isInputElement(target) || !key) {\n    return null;\n  }\n  const hasModifierKey = metaKey || ctrlKey || altKey;\n  const isCharacterKey = key.length === 1;\n  if (!hasModifierKey && isCharacterKey) {\n    return null;\n  }\n  const message = htmlTreeAsString(target, { maxStringLength: 200 }) || \"<unknown>\";\n  const baseBreadcrumb = getBaseDomBreadcrumb(target, message);\n  return createBreadcrumb({\n    category: \"ui.keyDown\",\n    message,\n    data: {\n      ...baseBreadcrumb.data,\n      metaKey,\n      shiftKey,\n      ctrlKey,\n      altKey,\n      key\n    }\n  });\n}\nfunction isInputElement(target) {\n  return target.tagName === \"INPUT\" || target.tagName === \"TEXTAREA\" || target.isContentEditable;\n}\n\nconst ENTRY_TYPES = {\n  // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n  resource: createResourceEntry,\n  paint: createPaintEntry,\n  // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n  navigation: createNavigationEntry\n};\nfunction webVitalHandler(getter, replay) {\n  return ({ metric }) => void replay.replayPerformanceEntries.push(getter(metric));\n}\nfunction createPerformanceEntries(entries) {\n  return entries.map(createPerformanceEntry).filter(Boolean);\n}\nfunction createPerformanceEntry(entry) {\n  const entryType = ENTRY_TYPES[entry.entryType];\n  if (!entryType) {\n    return null;\n  }\n  return entryType(entry);\n}\nfunction getAbsoluteTime(time) {\n  return ((browserPerformanceTimeOrigin() || WINDOW.performance.timeOrigin) + time) / 1e3;\n}\nfunction createPaintEntry(entry) {\n  const { duration, entryType, name, startTime } = entry;\n  const start = getAbsoluteTime(startTime);\n  return {\n    type: entryType,\n    name,\n    start,\n    end: start + duration,\n    data: void 0\n  };\n}\nfunction createNavigationEntry(entry) {\n  const {\n    entryType,\n    name,\n    decodedBodySize,\n    duration,\n    domComplete,\n    encodedBodySize,\n    domContentLoadedEventStart,\n    domContentLoadedEventEnd,\n    domInteractive,\n    loadEventStart,\n    loadEventEnd,\n    redirectCount,\n    startTime,\n    transferSize,\n    type\n  } = entry;\n  if (duration === 0) {\n    return null;\n  }\n  return {\n    type: `${entryType}.${type}`,\n    start: getAbsoluteTime(startTime),\n    end: getAbsoluteTime(domComplete),\n    name,\n    data: {\n      size: transferSize,\n      decodedBodySize,\n      encodedBodySize,\n      duration,\n      domInteractive,\n      domContentLoadedEventStart,\n      domContentLoadedEventEnd,\n      loadEventStart,\n      loadEventEnd,\n      domComplete,\n      redirectCount\n    }\n  };\n}\nfunction createResourceEntry(entry) {\n  const {\n    entryType,\n    initiatorType,\n    name,\n    responseEnd,\n    startTime,\n    decodedBodySize,\n    encodedBodySize,\n    responseStatus,\n    transferSize\n  } = entry;\n  if ([\"fetch\", \"xmlhttprequest\"].includes(initiatorType)) {\n    return null;\n  }\n  return {\n    type: `${entryType}.${initiatorType}`,\n    start: getAbsoluteTime(startTime),\n    end: getAbsoluteTime(responseEnd),\n    name,\n    data: {\n      size: transferSize,\n      statusCode: responseStatus,\n      decodedBodySize,\n      encodedBodySize\n    }\n  };\n}\nfunction getLargestContentfulPaint(metric) {\n  const lastEntry = metric.entries[metric.entries.length - 1];\n  const node = lastEntry?.element ? [lastEntry.element] : void 0;\n  return getWebVital(metric, \"largest-contentful-paint\", node);\n}\nfunction isLayoutShift(entry) {\n  return entry.sources !== void 0;\n}\nfunction getCumulativeLayoutShift(metric) {\n  const layoutShifts = [];\n  const nodes = [];\n  for (const entry of metric.entries) {\n    if (isLayoutShift(entry)) {\n      const nodeIds = [];\n      for (const source of entry.sources) {\n        if (source.node) {\n          nodes.push(source.node);\n          const nodeId = record.mirror.getId(source.node);\n          if (nodeId) {\n            nodeIds.push(nodeId);\n          }\n        }\n      }\n      layoutShifts.push({ value: entry.value, nodeIds: nodeIds.length ? nodeIds : void 0 });\n    }\n  }\n  return getWebVital(metric, \"cumulative-layout-shift\", nodes, layoutShifts);\n}\nfunction getInteractionToNextPaint(metric) {\n  const lastEntry = metric.entries[metric.entries.length - 1];\n  const node = lastEntry?.target ? [lastEntry.target] : void 0;\n  return getWebVital(metric, \"interaction-to-next-paint\", node);\n}\nfunction getWebVital(metric, name, nodes, attributions) {\n  const value = metric.value;\n  const rating = metric.rating;\n  const end = getAbsoluteTime(value);\n  return {\n    type: \"web-vital\",\n    name,\n    start: end,\n    end,\n    data: {\n      value,\n      size: value,\n      rating,\n      nodeIds: nodes ? nodes.map((node) => record.mirror.getId(node)) : void 0,\n      attributions\n    }\n  };\n}\n\nfunction setupPerformanceObserver(replay) {\n  function addPerformanceEntry(entry) {\n    if (!replay.performanceEntries.includes(entry)) {\n      replay.performanceEntries.push(entry);\n    }\n  }\n  function onEntries({ entries }) {\n    entries.forEach(addPerformanceEntry);\n  }\n  const clearCallbacks = [];\n  [\"navigation\", \"paint\", \"resource\"].forEach((type) => {\n    clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n  });\n  clearCallbacks.push(\n    addLcpInstrumentationHandler(webVitalHandler(getLargestContentfulPaint, replay)),\n    addClsInstrumentationHandler(webVitalHandler(getCumulativeLayoutShift, replay)),\n    addInpInstrumentationHandler(webVitalHandler(getInteractionToNextPaint, replay))\n  );\n  return () => {\n    clearCallbacks.forEach((clearCallback) => clearCallback());\n  };\n}\n\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nconst t = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<<t[s-1];var a=new r(i[30]);for(s=1;s<30;++s)for(var o=i[s];o<i[s+1];++o)a[o]=o-i[s]<<5|s;return{b:i,r:a}},o=a(e,2),h=o.b,f=o.r;h[28]=258,f[258]=28;for(var l=a(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s<i;++s)t[s]&&++a[t[s]-1];var o,h=new n(r);for(s=1;s<r;++s)h[s]=h[s-1]+a[s-1]<<1;if(e){o=new n(1<<r);var f=15-r;for(s=0;s<i;++s)if(t[s])for(var l=s<<4|t[s],c=r-t[s],v=h[t[s]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>f]=l}else for(o=new n(i),s=0;s<i;++s)t[s]&&(o[s]=u[h[t[s]-1]++]>>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;s<r.length;++s)r[s]&&i.push({s:s,f:r[s]});var a=i.length,o=i.slice();if(!a)return{t:F,l:0};if(1==a){var h=new t(i[0].s+1);return h[i[0].s]=1,{t:h,l:1}}i.sort(function(t,n){return t.f-n.f}),i.push({s:-1,f:25001});var f=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:f.f+l.f,l:f,r:l};c!=a-1;)f=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:f.f+l.f,l:f,r:l};var d=o[0].s;for(s=1;s<a;++s)o[s].s>d&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<<y;for(o.sort(function(t,n){return p[n.s]-p[t.s]||t.f-n.f});s<a;++s){var b=o[s].s;if(!(p[b]>e))break;w+=m-(1<<g-p[b]),p[b]=e}for(w>>=y;w>0;){var M=o[s].s;p[M]<e?w-=1<<e-p[M]++-1:++s}for(;s>=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s<e;++s)t[i+s+4]=r[s];return 8*(i+4+e)},U=function(t,r,a,o,h,f,l,u,c,v,m){z(r,m++,a),++h[256];for(var b=x(h,15),M=b.t,E=b.l,A=x(f,15),U=A.t,C=A.l,F=D(M),I=F.c,S=F.n,L=D(U),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=x(q,7),H=G.t,J=G.l,K=19;K>4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(U,C,0),R=U;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[s[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B<u;++B){var rt=o[B];if(rt>255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=e+=r[a];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<<o)-1,_=c.p||new n(32768),x=c.h||new n(z+1),A=Math.ceil(o/3),D=2*A,T=function(t){return(s[t]^s[t+1]<<A^s[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=x[H];if(_[J]=K,x[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$<Z&&s[j+$]==s[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-_[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=s[j],++I[s[j]];w=U(s,p,g,F,I,S,O,q,G,j-G,w),g||(c.r=7&w|p[w/8|0]<<3,w-=7,c.h=x,c.p=_,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+g;j+=65535){var at=j+65535;at>=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G=\"undefined\"!=typeof TextEncoder&&new TextEncoder,H=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;o<e;++o){if(s+5>i.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push(\"[\")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener(\"message\",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&\"function\"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n\nfunction e() {\n  const e2 = new Blob([t], { type: \"text/javascript\" });\n  return URL.createObjectURL(e2);\n}\n\nconst CONSOLE_LEVELS = [\"log\", \"warn\", \"error\"];\nconst PREFIX = \"[Replay] \";\nfunction _addBreadcrumb(message, level = \"info\") {\n  addBreadcrumb(\n    {\n      category: \"console\",\n      data: {\n        logger: \"replay\"\n      },\n      level,\n      message: `${PREFIX}${message}`\n    },\n    { level }\n  );\n}\nfunction makeReplayDebugLogger() {\n  let _capture = false;\n  let _trace = false;\n  const _debug = {\n    exception: () => void 0,\n    infoTick: () => void 0,\n    setConfig: (opts) => {\n      _capture = !!opts.captureExceptions;\n      _trace = !!opts.traceInternals;\n    }\n  };\n  if (DEBUG_BUILD) {\n    CONSOLE_LEVELS.forEach((name) => {\n      _debug[name] = (...args) => {\n        debug$1[name](PREFIX, ...args);\n        if (_trace) {\n          _addBreadcrumb(args.join(\"\"), severityLevelFromString(name));\n        }\n      };\n    });\n    _debug.exception = (error, ...message) => {\n      if (message.length && _debug.error) {\n        _debug.error(...message);\n      }\n      debug$1.error(PREFIX, error);\n      if (_capture) {\n        captureException(error, {\n          mechanism: {\n            handled: true,\n            type: \"auto.function.replay.debug\"\n          }\n        });\n      } else if (_trace) {\n        _addBreadcrumb(error, \"error\");\n      }\n    };\n    _debug.infoTick = (...args) => {\n      debug$1.log(PREFIX, ...args);\n      if (_trace) {\n        setTimeout(() => _addBreadcrumb(args[0]), 0);\n      }\n    };\n  } else {\n    CONSOLE_LEVELS.forEach((name) => {\n      _debug[name] = () => void 0;\n    });\n  }\n  return _debug;\n}\nconst debug = makeReplayDebugLogger();\n\nclass EventBufferSizeExceededError extends Error {\n  constructor() {\n    super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n  }\n}\n\nclass EventBufferArray {\n  constructor() {\n    this.events = [];\n    this._totalSize = 0;\n    this.hasCheckout = false;\n    this.waitForCheckout = false;\n  }\n  /** @inheritdoc */\n  get hasEvents() {\n    return this.events.length > 0;\n  }\n  /** @inheritdoc */\n  get type() {\n    return \"sync\";\n  }\n  /** @inheritdoc */\n  destroy() {\n    this.events = [];\n  }\n  /** @inheritdoc */\n  async addEvent(event) {\n    const eventSize = JSON.stringify(event).length;\n    this._totalSize += eventSize;\n    if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n      throw new EventBufferSizeExceededError();\n    }\n    this.events.push(event);\n  }\n  /** @inheritdoc */\n  finish() {\n    return new Promise((resolve) => {\n      const eventsRet = this.events;\n      this.clear();\n      resolve(JSON.stringify(eventsRet));\n    });\n  }\n  /** @inheritdoc */\n  clear() {\n    this.events = [];\n    this._totalSize = 0;\n    this.hasCheckout = false;\n  }\n  /** @inheritdoc */\n  getEarliestTimestamp() {\n    let ts = null;\n    for (const { timestamp } of this.events) {\n      if (ts === null || timestamp < ts) ts = timestamp;\n    }\n    return ts === null ? ts : timestampToMs(ts);\n  }\n}\n\nclass WorkerHandler {\n  constructor(worker) {\n    this._onMessage = ({ data }) => {\n      const response = data;\n      if (typeof response.id !== \"number\") {\n        return;\n      }\n      const pending = this._pending.get(response.id);\n      if (!pending || pending.method !== response.method) {\n        return;\n      }\n      this._pending.delete(response.id);\n      if (!response.success) {\n        DEBUG_BUILD && debug.error(\"Error in compression worker: \", response.response);\n        pending.reject(new Error(\"Error in compression worker\"));\n        return;\n      }\n      pending.resolve(response.response);\n    };\n    this._worker = worker;\n    this._id = 0;\n    this._pending = /* @__PURE__ */ new Map();\n    this._worker.addEventListener(\"message\", this._onMessage);\n  }\n  /**\n   * Ensure the worker is ready (or not).\n   * This will either resolve when the worker is ready, or reject if an error occurred.\n   */\n  ensureReady() {\n    if (this._ensureReadyPromise) {\n      return this._ensureReadyPromise;\n    }\n    this._ensureReadyPromise = new Promise((resolve, reject) => {\n      this._worker.addEventListener(\n        \"message\",\n        ({ data }) => {\n          if (data.success) {\n            resolve();\n          } else {\n            DEBUG_BUILD && debug.warn(\"Received worker message with unsuccessful status\", data);\n            reject(new Error(\"Received worker message with unsuccessful status\"));\n          }\n        },\n        { once: true }\n      );\n      this._worker.addEventListener(\n        \"error\",\n        (error) => {\n          DEBUG_BUILD && debug.warn(\"Failed to load Replay compression worker\", error);\n          reject(\n            new Error(\n              `Failed to load Replay compression worker: ${error instanceof ErrorEvent && error.message ? error.message : \"Unknown error. This can happen due to CSP policy restrictions, network issues, or the worker script failing to load.\"}`\n            )\n          );\n        },\n        { once: true }\n      );\n    });\n    return this._ensureReadyPromise;\n  }\n  /**\n   * Destroy the worker.\n   */\n  destroy() {\n    DEBUG_BUILD && debug.log(\"Destroying compression worker\");\n    this._worker.removeEventListener(\"message\", this._onMessage);\n    this._pending.forEach((pending) => pending.reject(new Error(\"Worker destroyed\")));\n    this._pending.clear();\n    this._worker.terminate();\n  }\n  /**\n   * Post message to worker and wait for response before resolving promise.\n   */\n  postMessage(method, arg) {\n    const id = this._getAndIncrementId();\n    return new Promise((resolve, reject) => {\n      this._pending.set(id, {\n        method,\n        resolve,\n        reject\n      });\n      try {\n        this._worker.postMessage({ id, method, arg });\n      } catch (error) {\n        this._pending.delete(id);\n        reject(error);\n      }\n    });\n  }\n  /** Get the current ID and increment it for the next call. */\n  _getAndIncrementId() {\n    return this._id++;\n  }\n}\n\nclass EventBufferCompressionWorker {\n  constructor(worker) {\n    this._worker = new WorkerHandler(worker);\n    this._earliestTimestamp = null;\n    this._totalSize = 0;\n    this.hasCheckout = false;\n    this.waitForCheckout = false;\n  }\n  /** @inheritdoc */\n  get hasEvents() {\n    return !!this._earliestTimestamp;\n  }\n  /** @inheritdoc */\n  get type() {\n    return \"worker\";\n  }\n  /**\n   * Ensure the worker is ready (or not).\n   * This will either resolve when the worker is ready, or reject if an error occurred.\n   */\n  ensureReady() {\n    return this._worker.ensureReady();\n  }\n  /**\n   * Destroy the event buffer.\n   */\n  destroy() {\n    this._worker.destroy();\n  }\n  /**\n   * Add an event to the event buffer.\n   *\n   * Returns true if event was successfully received and processed by worker.\n   */\n  addEvent(event) {\n    const timestamp = timestampToMs(event.timestamp);\n    if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n      this._earliestTimestamp = timestamp;\n    }\n    const data = JSON.stringify(event);\n    this._totalSize += data.length;\n    if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n      return Promise.reject(new EventBufferSizeExceededError());\n    }\n    return this._sendEventToWorker(data);\n  }\n  /**\n   * Finish the event buffer and return the compressed data.\n   */\n  finish() {\n    return this._finishRequest();\n  }\n  /** @inheritdoc */\n  clear() {\n    this._earliestTimestamp = null;\n    this._totalSize = 0;\n    this.hasCheckout = false;\n    this._worker.postMessage(\"clear\").then(null, (e) => {\n      DEBUG_BUILD && debug.exception(e, 'Sending \"clear\" message to worker failed', e);\n    });\n  }\n  /** @inheritdoc */\n  getEarliestTimestamp() {\n    return this._earliestTimestamp;\n  }\n  /**\n   * Send the event to the worker.\n   */\n  _sendEventToWorker(data) {\n    return this._worker.postMessage(\"addEvent\", data);\n  }\n  /**\n   * Finish the request and return the compressed data from the worker.\n   */\n  async _finishRequest() {\n    const response = await this._worker.postMessage(\"finish\");\n    this._earliestTimestamp = null;\n    this._totalSize = 0;\n    return response;\n  }\n}\n\nclass EventBufferProxy {\n  constructor(worker) {\n    this._fallback = new EventBufferArray();\n    this._compression = new EventBufferCompressionWorker(worker);\n    this._used = this._fallback;\n    this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n  }\n  /** @inheritdoc */\n  get waitForCheckout() {\n    return this._used.waitForCheckout;\n  }\n  /** @inheritdoc */\n  get type() {\n    return this._used.type;\n  }\n  /** @inheritDoc */\n  get hasEvents() {\n    return this._used.hasEvents;\n  }\n  /** @inheritdoc */\n  get hasCheckout() {\n    return this._used.hasCheckout;\n  }\n  /** @inheritdoc */\n  set hasCheckout(value) {\n    this._used.hasCheckout = value;\n  }\n  /** @inheritdoc */\n  // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n  set waitForCheckout(value) {\n    this._used.waitForCheckout = value;\n  }\n  /** @inheritDoc */\n  destroy() {\n    this._fallback.destroy();\n    this._compression.destroy();\n  }\n  /** @inheritdoc */\n  clear() {\n    return this._used.clear();\n  }\n  /** @inheritdoc */\n  getEarliestTimestamp() {\n    return this._used.getEarliestTimestamp();\n  }\n  /**\n   * Add an event to the event buffer.\n   *\n   * Returns true if event was successfully added.\n   */\n  addEvent(event) {\n    return this._used.addEvent(event);\n  }\n  /** @inheritDoc */\n  async finish() {\n    await this.ensureWorkerIsLoaded();\n    return this._used.finish();\n  }\n  /** Ensure the worker has loaded. */\n  ensureWorkerIsLoaded() {\n    return this._ensureWorkerIsLoadedPromise;\n  }\n  /** Actually check if the worker has been loaded. */\n  async _ensureWorkerIsLoaded() {\n    try {\n      await this._compression.ensureReady();\n    } catch (error) {\n      DEBUG_BUILD && debug.exception(error, \"Failed to load the compression worker, falling back to simple buffer\");\n      return;\n    }\n    await this._switchToCompressionWorker();\n  }\n  /** Switch the used buffer to the compression worker. */\n  async _switchToCompressionWorker() {\n    const { events, hasCheckout, waitForCheckout } = this._fallback;\n    const addEventPromises = [];\n    for (const event of events) {\n      addEventPromises.push(this._compression.addEvent(event));\n    }\n    this._compression.hasCheckout = hasCheckout;\n    this._compression.waitForCheckout = waitForCheckout;\n    this._used = this._compression;\n    try {\n      await Promise.all(addEventPromises);\n      this._fallback.clear();\n    } catch (error) {\n      DEBUG_BUILD && debug.exception(error, \"Failed to add events when switching buffers.\");\n    }\n  }\n}\n\nfunction createEventBuffer({\n  useCompression,\n  workerUrl: customWorkerUrl\n}) {\n  if (useCompression && // eslint-disable-next-line no-restricted-globals\n  window.Worker) {\n    const worker = _loadWorker(customWorkerUrl);\n    if (worker) {\n      return worker;\n    }\n  }\n  DEBUG_BUILD && debug.log(\"Using simple buffer\");\n  return new EventBufferArray();\n}\nfunction _loadWorker(customWorkerUrl) {\n  try {\n    const workerUrl = customWorkerUrl || _getWorkerUrl();\n    if (!workerUrl) {\n      return;\n    }\n    DEBUG_BUILD && debug.log(`Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : \"\"}`);\n    const worker = new Worker(workerUrl);\n    return new EventBufferProxy(worker);\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to create compression worker\");\n  }\n}\nfunction _getWorkerUrl() {\n  if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === \"undefined\" || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n    return e();\n  }\n  return \"\";\n}\n\nfunction hasSessionStorage() {\n  try {\n    return \"sessionStorage\" in WINDOW && !!WINDOW.sessionStorage;\n  } catch {\n    return false;\n  }\n}\n\nfunction clearSession(replay) {\n  deleteSession();\n  replay.session = void 0;\n}\nfunction deleteSession() {\n  if (!hasSessionStorage()) {\n    return;\n  }\n  try {\n    WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n  } catch {\n  }\n}\n\nfunction isSampled(sampleRate) {\n  if (sampleRate === void 0) {\n    return false;\n  }\n  return Math.random() < sampleRate;\n}\n\nfunction saveSession(session) {\n  if (!hasSessionStorage()) {\n    return;\n  }\n  try {\n    WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n  } catch {\n  }\n}\n\nfunction makeSession(session) {\n  const now = Date.now();\n  const id = session.id || uuid4();\n  const started = session.started || now;\n  const lastActivity = session.lastActivity || now;\n  const segmentId = session.segmentId || 0;\n  const sampled = session.sampled;\n  const previousSessionId = session.previousSessionId;\n  const dirty = session.dirty || false;\n  return {\n    id,\n    started,\n    lastActivity,\n    segmentId,\n    sampled,\n    previousSessionId,\n    dirty\n  };\n}\n\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n  return isSampled(sessionSampleRate) ? \"session\" : allowBuffering ? \"buffer\" : false;\n}\nfunction createSession({ sessionSampleRate, allowBuffering, stickySession = false }, { previousSessionId } = {}) {\n  const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n  const session = makeSession({\n    sampled,\n    previousSessionId\n  });\n  if (stickySession) {\n    saveSession(session);\n  }\n  return session;\n}\n\nfunction fetchSession() {\n  if (!hasSessionStorage()) {\n    return null;\n  }\n  try {\n    const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n    if (!sessionStringFromStorage) {\n      return null;\n    }\n    const sessionObj = JSON.parse(sessionStringFromStorage);\n    DEBUG_BUILD && debug.infoTick(\"Loading existing session\");\n    return makeSession(sessionObj);\n  } catch {\n    return null;\n  }\n}\n\nfunction isExpired(initialTime, expiry, targetTime = +/* @__PURE__ */ new Date()) {\n  if (initialTime === null || expiry === void 0 || expiry < 0) {\n    return true;\n  }\n  if (expiry === 0) {\n    return false;\n  }\n  return initialTime + expiry <= targetTime;\n}\n\nfunction isSessionExpired(session, {\n  maxReplayDuration,\n  sessionIdleExpire,\n  targetTime = Date.now()\n}) {\n  return (\n    // First, check that maximum session length has not been exceeded\n    isExpired(session.started, maxReplayDuration, targetTime) || // check that the idle timeout has not been exceeded (i.e. user has\n    // performed an action within the last `sessionIdleExpire` ms)\n    isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n  );\n}\n\nfunction shouldRefreshSession(session, { sessionIdleExpire, maxReplayDuration }) {\n  if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n    return false;\n  }\n  if (session.sampled === \"buffer\" && session.segmentId === 0) {\n    return false;\n  }\n  return true;\n}\n\nfunction loadOrCreateSession({\n  sessionIdleExpire,\n  maxReplayDuration,\n  previousSessionId\n}, sessionOptions) {\n  const existingSession = sessionOptions.stickySession && fetchSession();\n  if (!existingSession) {\n    DEBUG_BUILD && debug.infoTick(\"Creating new session\");\n    return createSession(sessionOptions, { previousSessionId });\n  }\n  if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n    return existingSession;\n  }\n  DEBUG_BUILD && debug.infoTick(\"Session in sessionStorage is expired, creating new one...\");\n  return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n\nfunction isCustomEvent(event) {\n  return event.type === EventType.Custom;\n}\nfunction addEventSync(replay, event, isCheckout) {\n  if (!shouldAddEvent(replay, event)) {\n    return false;\n  }\n  _addEvent(replay, event, isCheckout);\n  return true;\n}\nfunction addEvent(replay, event, isCheckout) {\n  if (!shouldAddEvent(replay, event)) {\n    return Promise.resolve(null);\n  }\n  return _addEvent(replay, event, isCheckout);\n}\nasync function _addEvent(replay, event, isCheckout) {\n  const { eventBuffer } = replay;\n  if (!eventBuffer || eventBuffer.waitForCheckout && !isCheckout) {\n    return null;\n  }\n  const isBufferMode = replay.recordingMode === \"buffer\";\n  try {\n    if (isCheckout && isBufferMode) {\n      eventBuffer.clear();\n    }\n    if (isCheckout) {\n      eventBuffer.hasCheckout = true;\n      eventBuffer.waitForCheckout = false;\n    }\n    const replayOptions = replay.getOptions();\n    const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n    if (!eventAfterPossibleCallback) {\n      return;\n    }\n    return await eventBuffer.addEvent(eventAfterPossibleCallback);\n  } catch (error) {\n    if (!replay.isEnabled()) {\n      replay.handleException(error);\n      return null;\n    }\n    const isExceeded = error && error instanceof EventBufferSizeExceededError;\n    const reason = isExceeded ? \"eventBufferOverflow\" : \"eventBufferError\";\n    const client = getClient();\n    if (client) {\n      const dropReason = isExceeded ? \"buffer_overflow\" : \"internal_sdk_error\";\n      client.recordDroppedEvent(dropReason, \"replay\");\n    }\n    if (isExceeded && isBufferMode) {\n      eventBuffer.clear();\n      eventBuffer.waitForCheckout = true;\n      return null;\n    }\n    replay.handleException(error);\n    await replay.stop({ reason });\n  }\n}\nfunction shouldAddEvent(replay, event) {\n  if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n    return false;\n  }\n  const timestampInMs = timestampToMs(event.timestamp);\n  if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n    return false;\n  }\n  if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n    DEBUG_BUILD && debug.infoTick(`Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`);\n    return false;\n  }\n  return true;\n}\nfunction maybeApplyCallback(event, callback) {\n  try {\n    if (typeof callback === \"function\" && isCustomEvent(event)) {\n      return callback(event);\n    }\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event...\");\n    return null;\n  }\n  return event;\n}\n\nconst MAX_CONTEXT_VALUES = 100;\nfunction addSegmentDetailsToContext(replay, traceId, segmentName) {\n  const replayContext = replay.getContext();\n  if (traceId && replayContext.traceIds.size < MAX_CONTEXT_VALUES) {\n    replayContext.traceIds.add(traceId);\n  }\n  if (segmentName && replayContext.segmentNames.size < MAX_CONTEXT_VALUES) {\n    replayContext.segmentNames.add(segmentName);\n  }\n}\n\nfunction handleProcessSegmentSpan(replay) {\n  return (spanJSON) => {\n    if (!replay.isEnabled()) {\n      return;\n    }\n    addSegmentDetailsToContext(replay, spanJSON.trace_id, spanJSON.name || void 0);\n  };\n}\n\nfunction isErrorEvent(event) {\n  return !event.type;\n}\nfunction isTransactionEvent(event) {\n  return event.type === \"transaction\";\n}\nfunction isReplayEvent(event) {\n  return event.type === \"replay_event\";\n}\nfunction isFeedbackEvent(event) {\n  return event.type === \"feedback\";\n}\n\nfunction handleAfterSendEvent(replay) {\n  return (event, sendResponse) => {\n    if (!replay.isEnabled() || !isErrorEvent(event) && !isTransactionEvent(event)) {\n      return;\n    }\n    const statusCode = sendResponse.statusCode;\n    if (!statusCode || statusCode < 200 || statusCode >= 300) {\n      return;\n    }\n    if (isTransactionEvent(event)) {\n      handleTransactionEvent(replay, event);\n      return;\n    }\n    handleErrorEvent(replay, event);\n  };\n}\nfunction handleTransactionEvent(replay, event) {\n  addSegmentDetailsToContext(replay, event.contexts?.trace?.trace_id, event.transaction);\n}\nfunction handleErrorEvent(replay, event) {\n  const replayContext = replay.getContext();\n  if (event.event_id && replayContext.errorIds.size < 100) {\n    replayContext.errorIds.add(event.event_id);\n  }\n  if (replay.recordingMode !== \"buffer\" || !event.tags?.replayId) {\n    return;\n  }\n  const { beforeErrorSampling } = replay.getOptions();\n  if (typeof beforeErrorSampling === \"function\" && !beforeErrorSampling(event)) {\n    return;\n  }\n  setTimeout$3(async () => {\n    try {\n      await replay.sendBufferedReplayOrFlush();\n    } catch (err) {\n      replay.handleException(err);\n    }\n  });\n}\n\nfunction handleBeforeSendEvent(replay) {\n  return (event) => {\n    if (!replay.isEnabled() || !isErrorEvent(event)) {\n      return;\n    }\n    handleHydrationError(replay, event);\n  };\n}\nfunction handleHydrationError(replay, event) {\n  const exceptionValue = event.exception?.values?.[0]?.value;\n  if (typeof exceptionValue !== \"string\") {\n    return;\n  }\n  if (\n    // Only matches errors in production builds of react-dom\n    // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n    // With newer React versions, the messages changed to a different website https://react.dev/errors/418\n    exceptionValue.match(\n      /(reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=|react\\.dev\\/errors\\/)(418|419|422|423|425)/\n    ) || // Development builds of react-dom\n    // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n    // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n    exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n  ) {\n    const breadcrumb = createBreadcrumb({\n      category: \"replay.hydrate-error\",\n      data: {\n        url: getLocationHref()\n      }\n    });\n    addBreadcrumbEvent(replay, breadcrumb);\n  }\n}\n\nfunction handleBreadcrumbs(replay) {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n  client.on(\"beforeAddBreadcrumb\", (breadcrumb) => beforeAddBreadcrumb(replay, breadcrumb));\n}\nfunction beforeAddBreadcrumb(replay, breadcrumb) {\n  if (!replay.isEnabled() || !isBreadcrumbWithCategory(breadcrumb)) {\n    return;\n  }\n  const result = normalizeBreadcrumb(breadcrumb);\n  if (result) {\n    addBreadcrumbEvent(replay, result);\n  }\n}\nfunction normalizeBreadcrumb(breadcrumb) {\n  if (!isBreadcrumbWithCategory(breadcrumb) || [\n    // fetch & xhr are handled separately,in handleNetworkBreadcrumbs\n    \"fetch\",\n    \"xhr\",\n    // These two are breadcrumbs for emitted sentry events, we don't care about them\n    \"sentry.event\",\n    \"sentry.transaction\"\n  ].includes(breadcrumb.category) || // We capture UI breadcrumbs separately\n  breadcrumb.category.startsWith(\"ui.\")) {\n    return null;\n  }\n  if (breadcrumb.category === \"console\") {\n    return normalizeConsoleBreadcrumb(breadcrumb);\n  }\n  return createBreadcrumb(breadcrumb);\n}\nfunction normalizeConsoleBreadcrumb(breadcrumb) {\n  const args = breadcrumb.data?.arguments;\n  if (!Array.isArray(args) || args.length === 0) {\n    return createBreadcrumb(breadcrumb);\n  }\n  let isTruncated = false;\n  const normalizedArgs = args.map((arg) => {\n    if (!arg) {\n      return arg;\n    }\n    if (typeof arg === \"string\") {\n      if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n        isTruncated = true;\n        return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}\\u2026`;\n      }\n      return arg;\n    }\n    if (typeof arg === \"object\") {\n      try {\n        const normalizedArg = normalize(arg, 7);\n        const stringified = JSON.stringify(normalizedArg);\n        if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n          isTruncated = true;\n          return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}\\u2026`;\n        }\n        return normalizedArg;\n      } catch {\n      }\n    }\n    return arg;\n  });\n  return createBreadcrumb({\n    ...breadcrumb,\n    data: {\n      ...breadcrumb.data,\n      arguments: normalizedArgs,\n      ...isTruncated ? { _meta: { warnings: [\"CONSOLE_ARG_TRUNCATED\"] } } : {}\n    }\n  });\n}\nfunction isBreadcrumbWithCategory(breadcrumb) {\n  return !!breadcrumb.category;\n}\n\nfunction isRrwebError(event, hint) {\n  if (event.type || !event.exception?.values?.length) {\n    return false;\n  }\n  if (hint.originalException?.__rrweb__) {\n    return true;\n  }\n  return false;\n}\n\nfunction resetReplayIdOnDynamicSamplingContext() {\n  const dsc = getCurrentScope().getPropagationContext().dsc;\n  if (dsc) {\n    delete dsc.replay_id;\n  }\n  const activeSpan = getActiveSpan();\n  if (activeSpan) {\n    const dsc2 = getDynamicSamplingContextFromSpan(activeSpan);\n    delete dsc2.replay_id;\n  }\n}\nfunction setReplayIdOnDynamicSamplingContext(replayId) {\n  const dsc = getCurrentScope().getPropagationContext().dsc;\n  if (dsc) {\n    dsc.replay_id = replayId;\n  }\n  const activeSpan = getActiveSpan();\n  if (activeSpan) {\n    const dsc2 = getDynamicSamplingContextFromSpan(activeSpan);\n    dsc2.replay_id = replayId;\n  }\n}\n\nfunction addFeedbackBreadcrumb(replay, event) {\n  replay.triggerUserActivity();\n  replay.addUpdate(() => {\n    if (!event.timestamp) {\n      return true;\n    }\n    replay.throttledAddEvent({\n      type: EventType.Custom,\n      timestamp: event.timestamp * 1e3,\n      data: {\n        tag: \"breadcrumb\",\n        payload: {\n          timestamp: event.timestamp,\n          type: \"default\",\n          category: \"sentry.feedback\",\n          data: {\n            feedbackId: event.event_id\n          }\n        }\n      }\n    });\n    return false;\n  });\n}\n\nfunction shouldSampleForBufferEvent(replay, event) {\n  if (replay.recordingMode !== \"buffer\") {\n    return false;\n  }\n  if (event.message === UNABLE_TO_SEND_REPLAY) {\n    return false;\n  }\n  if (!event.exception || event.type) {\n    return false;\n  }\n  return isSampled(replay.getOptions().errorSampleRate);\n}\n\nfunction handleGlobalEventListener(replay) {\n  return Object.assign(\n    (event, hint) => {\n      if (replay.session && shouldRefreshSession(replay.session, {\n        maxReplayDuration: replay.getOptions().maxReplayDuration,\n        sessionIdleExpire: replay.timeouts.sessionIdleExpire\n      })) {\n        resetReplayIdOnDynamicSamplingContext();\n      }\n      if (!replay.isEnabled() || replay.isPaused()) {\n        return event;\n      }\n      if (isReplayEvent(event)) {\n        delete event.breadcrumbs;\n        return event;\n      }\n      if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n        return event;\n      }\n      const isSessionActive = replay.checkAndHandleExpiredSession();\n      if (!isSessionActive) {\n        resetReplayIdOnDynamicSamplingContext();\n        return event;\n      }\n      if (isFeedbackEvent(event)) {\n        replay.flush();\n        event.contexts.feedback.replay_id = replay.getSessionId();\n        addFeedbackBreadcrumb(replay, event);\n        return event;\n      }\n      if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n        DEBUG_BUILD && debug.log(\"Ignoring error from rrweb internals\", event);\n        return null;\n      }\n      const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n      const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === \"session\";\n      if (shouldTagReplayId) {\n        event.tags = { ...event.tags, replayId: replay.getSessionId() };\n      }\n      if (isErrorEventSampled && replay.recordingMode === \"buffer\" && replay.session?.sampled === \"buffer\") {\n        const session = replay.session;\n        session.dirty = true;\n        if (replay.getOptions().stickySession) {\n          saveSession(session);\n        }\n      }\n      return event;\n    },\n    { id: \"Replay\" }\n  );\n}\n\nfunction createPerformanceSpans(replay, entries) {\n  return entries.map(({ type, start, end, name, data }) => {\n    const response = replay.throttledAddEvent({\n      type: EventType.Custom,\n      timestamp: start,\n      data: {\n        tag: \"performanceSpan\",\n        payload: {\n          op: type,\n          description: name,\n          startTimestamp: start,\n          endTimestamp: end,\n          data\n        }\n      }\n    });\n    return typeof response === \"string\" ? Promise.resolve(null) : response;\n  });\n}\n\nfunction handleHistory(handlerData) {\n  const { from, to } = handlerData;\n  const now = Date.now() / 1e3;\n  return {\n    type: \"navigation.push\",\n    start: now,\n    end: now,\n    name: to,\n    data: {\n      previous: from\n    }\n  };\n}\nfunction handleHistorySpanListener(replay) {\n  return (handlerData) => {\n    if (!replay.isEnabled()) {\n      return;\n    }\n    const result = handleHistory(handlerData);\n    if (result === null) {\n      return;\n    }\n    replay.getContext().urls.push(result.name);\n    replay.triggerUserActivity();\n    replay.addUpdate(() => {\n      createPerformanceSpans(replay, [result]);\n      return false;\n    });\n  };\n}\n\nfunction shouldFilterRequest(replay, url) {\n  if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n    return false;\n  }\n  return isSentryRequestUrl(url, getClient());\n}\n\nfunction addNetworkBreadcrumb(replay, result) {\n  if (!replay.isEnabled()) {\n    return;\n  }\n  if (result === null) {\n    return;\n  }\n  if (shouldFilterRequest(replay, result.name)) {\n    return;\n  }\n  replay.addUpdate(() => {\n    createPerformanceSpans(replay, [result]);\n    return true;\n  });\n}\n\nfunction getBodySize(body) {\n  if (!body) {\n    return void 0;\n  }\n  const textEncoder = new TextEncoder();\n  try {\n    if (typeof body === \"string\") {\n      return textEncoder.encode(body).length;\n    }\n    if (body instanceof URLSearchParams) {\n      return textEncoder.encode(body.toString()).length;\n    }\n    if (body instanceof FormData) {\n      const formDataStr = serializeFormData(body);\n      return textEncoder.encode(formDataStr).length;\n    }\n    if (body instanceof Blob) {\n      return body.size;\n    }\n    if (body instanceof ArrayBuffer) {\n      return body.byteLength;\n    }\n  } catch {\n  }\n  return void 0;\n}\nfunction parseContentLengthHeader(header) {\n  if (!header) {\n    return void 0;\n  }\n  const size = parseInt(header, 10);\n  return isNaN(size) ? void 0 : size;\n}\nfunction mergeWarning(info, warning) {\n  if (!info) {\n    return {\n      headers: {},\n      size: void 0,\n      _meta: {\n        warnings: [warning]\n      }\n    };\n  }\n  const newMeta = { ...info._meta };\n  const existingWarnings = newMeta.warnings || [];\n  newMeta.warnings = [...existingWarnings, warning];\n  info._meta = newMeta;\n  return info;\n}\nfunction makeNetworkReplayBreadcrumb(type, data) {\n  if (!data) {\n    return null;\n  }\n  const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n  const result = {\n    type,\n    start: startTimestamp / 1e3,\n    end: endTimestamp / 1e3,\n    name: url,\n    data: {\n      method,\n      statusCode,\n      request,\n      response\n    }\n  };\n  return result;\n}\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n  return {\n    headers: {},\n    size: bodySize,\n    _meta: {\n      warnings: [\"URL_SKIPPED\"]\n    }\n  };\n}\nfunction buildNetworkRequestOrResponse(headers, bodySize, body) {\n  if (!bodySize && Object.keys(headers).length === 0) {\n    return void 0;\n  }\n  if (!bodySize) {\n    return {\n      headers\n    };\n  }\n  if (!body) {\n    return {\n      headers,\n      size: bodySize\n    };\n  }\n  const info = {\n    headers,\n    size: bodySize\n  };\n  const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n  info.body = normalizedBody;\n  if (warnings?.length) {\n    info._meta = {\n      warnings\n    };\n  }\n  return info;\n}\nfunction getAllowedHeaders(headers, allowedHeaders) {\n  return Object.entries(headers).reduce((filteredHeaders, [key, value]) => {\n    const normalizedKey = key.toLowerCase();\n    if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n      filteredHeaders[normalizedKey] = value;\n    }\n    return filteredHeaders;\n  }, {});\n}\nfunction normalizeNetworkBody(body) {\n  if (!body || typeof body !== \"string\") {\n    return {\n      body\n    };\n  }\n  const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n  const isProbablyJson = _strIsProbablyJson(body);\n  if (exceedsSizeLimit) {\n    const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n    if (isProbablyJson) {\n      return {\n        body: truncatedBody,\n        warnings: [\"MAYBE_JSON_TRUNCATED\"]\n      };\n    }\n    return {\n      body: `${truncatedBody}\\u2026`,\n      warnings: [\"TEXT_TRUNCATED\"]\n    };\n  }\n  if (isProbablyJson) {\n    try {\n      const jsonBody = JSON.parse(body);\n      return {\n        body: jsonBody\n      };\n    } catch {\n    }\n  }\n  return {\n    body\n  };\n}\nfunction _strIsProbablyJson(str) {\n  const first = str[0];\n  const last = str[str.length - 1];\n  return first === \"[\" && last === \"]\" || first === \"{\" && last === \"}\";\n}\nfunction urlMatches(url, urls) {\n  const fullUrl = getFullUrl(url);\n  return stringMatchesSomePattern(fullUrl, urls);\n}\nfunction getFullUrl(url, baseURI = WINDOW.document.baseURI) {\n  if (url.startsWith(\"http://\") || url.startsWith(\"https://\") || url.startsWith(WINDOW.location.origin)) {\n    return url;\n  }\n  const fixedUrl = new URL(url, baseURI);\n  if (fixedUrl.origin !== new URL(baseURI).origin) {\n    return url;\n  }\n  const fullUrl = fixedUrl.href;\n  if (!url.endsWith(\"/\") && fullUrl.endsWith(\"/\")) {\n    return fullUrl.slice(0, -1);\n  }\n  return fullUrl;\n}\n\nasync function captureFetchBreadcrumbToReplay(breadcrumb, hint, options) {\n  try {\n    const data = await _prepareFetchData(breadcrumb, hint, options);\n    const result = makeNetworkReplayBreadcrumb(\"resource.fetch\", data);\n    addNetworkBreadcrumb(options.replay, result);\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to capture fetch breadcrumb\");\n  }\n}\nfunction enrichFetchBreadcrumb(breadcrumb, hint) {\n  const { input, response } = hint;\n  const body = input ? getFetchRequestArgBody(input) : void 0;\n  const reqSize = getBodySize(body);\n  const resSize = response ? parseContentLengthHeader(response.headers.get(\"content-length\")) : void 0;\n  if (reqSize !== void 0) {\n    breadcrumb.data.request_body_size = reqSize;\n  }\n  if (resSize !== void 0) {\n    breadcrumb.data.response_body_size = resSize;\n  }\n}\nasync function _prepareFetchData(breadcrumb, hint, options) {\n  const now = Date.now();\n  const { startTimestamp = now, endTimestamp = now } = hint;\n  const {\n    url,\n    method,\n    status_code: statusCode = 0,\n    request_body_size: requestBodySize,\n    response_body_size: responseBodySize\n  } = breadcrumb.data;\n  const captureDetails = urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n  const request = captureDetails ? _getRequestInfo(options, hint.input, requestBodySize) : buildSkippedNetworkRequestOrResponse(requestBodySize);\n  const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n  return {\n    startTimestamp,\n    endTimestamp,\n    url,\n    method,\n    statusCode,\n    request,\n    response\n  };\n}\nfunction _getRequestInfo({ networkCaptureBodies, networkRequestHeaders }, input, requestBodySize) {\n  const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n  if (!networkCaptureBodies) {\n    return buildNetworkRequestOrResponse(headers, requestBodySize, void 0);\n  }\n  const requestBody = getFetchRequestArgBody(input);\n  const [bodyStr, warning] = getBodyString(requestBody, debug);\n  const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n  if (warning) {\n    return mergeWarning(data, warning);\n  }\n  return data;\n}\nasync function _getResponseInfo(captureDetails, {\n  networkCaptureBodies,\n  networkResponseHeaders\n}, response, responseBodySize) {\n  if (!captureDetails && responseBodySize !== void 0) {\n    return buildSkippedNetworkRequestOrResponse(responseBodySize);\n  }\n  const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n  if (!response || !networkCaptureBodies && responseBodySize !== void 0) {\n    return buildNetworkRequestOrResponse(headers, responseBodySize, void 0);\n  }\n  const [bodyText, warning] = await _parseFetchResponseBody(response);\n  const result = getResponseData(bodyText, {\n    networkCaptureBodies,\n    responseBodySize,\n    captureDetails,\n    headers\n  });\n  if (warning) {\n    return mergeWarning(result, warning);\n  }\n  return result;\n}\nfunction getResponseData(bodyText, {\n  networkCaptureBodies,\n  responseBodySize,\n  captureDetails,\n  headers\n}) {\n  try {\n    const size = bodyText?.length && responseBodySize === void 0 ? getBodySize(bodyText) : responseBodySize;\n    if (!captureDetails) {\n      return buildSkippedNetworkRequestOrResponse(size);\n    }\n    if (networkCaptureBodies) {\n      return buildNetworkRequestOrResponse(headers, size, bodyText);\n    }\n    return buildNetworkRequestOrResponse(headers, size, void 0);\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to serialize response body\");\n    return buildNetworkRequestOrResponse(headers, responseBodySize, void 0);\n  }\n}\nasync function _parseFetchResponseBody(response) {\n  const res = _tryCloneResponse(response);\n  if (!res) {\n    return [void 0, \"BODY_PARSE_ERROR\"];\n  }\n  try {\n    const text = await _tryGetResponseText(res);\n    return [text];\n  } catch (error) {\n    if (error instanceof Error && error.message.indexOf(\"Timeout\") > -1) {\n      DEBUG_BUILD && debug.warn(\"Parsing text body from response timed out\");\n      return [void 0, \"BODY_PARSE_TIMEOUT\"];\n    }\n    DEBUG_BUILD && debug.exception(error, \"Failed to get text body from response\");\n    return [void 0, \"BODY_PARSE_ERROR\"];\n  }\n}\nfunction getAllHeaders(headers, allowedHeaders) {\n  const allHeaders = {};\n  allowedHeaders.forEach((header) => {\n    if (headers.get(header)) {\n      allHeaders[header] = headers.get(header);\n    }\n  });\n  return allHeaders;\n}\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n  if (fetchArgs.length === 1 && typeof fetchArgs[0] !== \"string\") {\n    return getHeadersFromOptions(fetchArgs[0], allowedHeaders);\n  }\n  if (fetchArgs.length === 2) {\n    return getHeadersFromOptions(fetchArgs[1], allowedHeaders);\n  }\n  return {};\n}\nfunction getHeadersFromOptions(input, allowedHeaders) {\n  if (!input) {\n    return {};\n  }\n  const headers = input.headers;\n  if (!headers) {\n    return {};\n  }\n  if (headers instanceof Headers) {\n    return getAllHeaders(headers, allowedHeaders);\n  }\n  if (Array.isArray(headers)) {\n    return {};\n  }\n  return getAllowedHeaders(headers, allowedHeaders);\n}\nfunction _tryCloneResponse(response) {\n  try {\n    return response.clone();\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to clone response body\");\n  }\n}\nfunction _tryGetResponseText(response) {\n  return new Promise((resolve, reject) => {\n    const timeout = setTimeout$3(() => reject(new Error(\"Timeout while trying to read response body\")), 500);\n    _getResponseText(response).then(\n      (txt) => resolve(txt),\n      (reason) => reject(reason)\n    ).finally(() => clearTimeout(timeout));\n  });\n}\nasync function _getResponseText(response) {\n  return await response.text();\n}\n\nasync function captureXhrBreadcrumbToReplay(breadcrumb, hint, options) {\n  try {\n    const data = _prepareXhrData(breadcrumb, hint, options);\n    const result = makeNetworkReplayBreadcrumb(\"resource.xhr\", data);\n    addNetworkBreadcrumb(options.replay, result);\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to capture xhr breadcrumb\");\n  }\n}\nfunction enrichXhrBreadcrumb(breadcrumb, hint) {\n  const { xhr, input } = hint;\n  if (!xhr) {\n    return;\n  }\n  const reqSize = getBodySize(input);\n  const resSize = xhr.getResponseHeader(\"content-length\") ? parseContentLengthHeader(xhr.getResponseHeader(\"content-length\")) : _getBodySize(xhr.response, xhr.responseType);\n  if (reqSize !== void 0) {\n    breadcrumb.data.request_body_size = reqSize;\n  }\n  if (resSize !== void 0) {\n    breadcrumb.data.response_body_size = resSize;\n  }\n}\nfunction _prepareXhrData(breadcrumb, hint, options) {\n  const now = Date.now();\n  const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n  const {\n    url,\n    method,\n    status_code: statusCode = 0,\n    request_body_size: requestBodySize,\n    response_body_size: responseBodySize\n  } = breadcrumb.data;\n  if (!url) {\n    return null;\n  }\n  if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n    const request2 = buildSkippedNetworkRequestOrResponse(requestBodySize);\n    const response2 = buildSkippedNetworkRequestOrResponse(responseBodySize);\n    return {\n      startTimestamp,\n      endTimestamp,\n      url,\n      method,\n      statusCode,\n      request: request2,\n      response: response2\n    };\n  }\n  const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n  const networkRequestHeaders = xhrInfo ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders) : {};\n  const networkResponseHeaders = getAllowedHeaders(parseXhrResponseHeaders(xhr), options.networkResponseHeaders);\n  const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input, debug) : [void 0];\n  const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [void 0];\n  const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n  const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n  return {\n    startTimestamp,\n    endTimestamp,\n    url,\n    method,\n    statusCode,\n    request: requestWarning ? mergeWarning(request, requestWarning) : request,\n    response: responseWarning ? mergeWarning(response, responseWarning) : response\n  };\n}\nfunction _getXhrResponseBody(xhr) {\n  const errors = [];\n  try {\n    return [xhr.responseText];\n  } catch (e) {\n    errors.push(e);\n  }\n  try {\n    return _parseXhrResponse(xhr.response, xhr.responseType);\n  } catch (e) {\n    errors.push(e);\n  }\n  DEBUG_BUILD && debug.warn(\"Failed to get xhr response body\", ...errors);\n  return [void 0];\n}\nfunction _parseXhrResponse(body, responseType) {\n  try {\n    if (typeof body === \"string\") {\n      return [body];\n    }\n    if (body instanceof Document) {\n      return [body.body.outerHTML];\n    }\n    if (responseType === \"json\" && isObjectLike(body)) {\n      return [JSON.stringify(body)];\n    }\n    if (!body) {\n      return [void 0];\n    }\n  } catch (error) {\n    DEBUG_BUILD && debug.exception(error, \"Failed to serialize body\", body);\n    return [void 0, \"BODY_PARSE_ERROR\"];\n  }\n  DEBUG_BUILD && debug.log(\"Skipping network body because of body type\", body);\n  return [void 0, \"UNPARSEABLE_BODY_TYPE\"];\n}\nfunction _getBodySize(body, responseType) {\n  try {\n    const bodyStr = responseType === \"json\" && isObjectLike(body) ? JSON.stringify(body) : body;\n    return getBodySize(bodyStr);\n  } catch {\n    return void 0;\n  }\n}\n\nfunction handleNetworkBreadcrumbs(replay) {\n  const client = getClient();\n  try {\n    const {\n      networkDetailAllowUrls,\n      networkDetailDenyUrls,\n      networkCaptureBodies,\n      networkRequestHeaders,\n      networkResponseHeaders\n    } = replay.getOptions();\n    const options = {\n      replay,\n      networkDetailAllowUrls,\n      networkDetailDenyUrls,\n      networkCaptureBodies,\n      networkRequestHeaders,\n      networkResponseHeaders\n    };\n    if (client) {\n      client.on(\"beforeAddBreadcrumb\", (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n    }\n  } catch {\n  }\n}\nfunction beforeAddNetworkBreadcrumb(options, breadcrumb, hint) {\n  if (!breadcrumb.data) {\n    return;\n  }\n  try {\n    if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n      enrichXhrBreadcrumb(breadcrumb, hint);\n      captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n    }\n    if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n      enrichFetchBreadcrumb(breadcrumb, hint);\n      captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n    }\n  } catch (e) {\n    DEBUG_BUILD && debug.exception(e, \"Error when enriching network breadcrumb\");\n  }\n}\nfunction _isXhrBreadcrumb(breadcrumb) {\n  return breadcrumb.category === \"xhr\";\n}\nfunction _isFetchBreadcrumb(breadcrumb) {\n  return breadcrumb.category === \"fetch\";\n}\nfunction _isXhrHint(hint) {\n  return hint?.xhr;\n}\nfunction _isFetchHint(hint) {\n  return hint?.input !== void 0;\n}\n\nfunction addGlobalListeners(replay) {\n  const client = getClient();\n  addClickKeypressInstrumentationHandler(handleDomListener(replay));\n  addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n  handleBreadcrumbs(replay);\n  handleNetworkBreadcrumbs(replay);\n  const eventProcessor = handleGlobalEventListener(replay);\n  addEventProcessor(eventProcessor);\n  if (client) {\n    client.on(\"beforeSendEvent\", handleBeforeSendEvent(replay));\n    client.on(\"afterSendEvent\", handleAfterSendEvent(replay));\n    client.on(\"createDsc\", (dsc) => {\n      const replayId = replay.getSessionId();\n      if (replayId && replay.isEnabled() && replay.recordingMode === \"session\") {\n        const isSessionActive = replay.checkAndHandleExpiredSession();\n        if (isSessionActive) {\n          dsc.replay_id = replayId;\n        }\n      }\n    });\n    client.on(\"processSegmentSpan\", handleProcessSegmentSpan(replay));\n    client.on(\"spanStart\", (span) => {\n      replay.lastActiveSpan = span;\n    });\n    client.on(\"spanEnd\", (span) => {\n      replay.lastActiveSpan = span;\n    });\n    client.on(\"beforeSendFeedback\", async (feedbackEvent, options) => {\n      const replayId = replay.getSessionId();\n      if (options?.includeReplay && replay.isEnabled() && replayId && feedbackEvent.contexts?.feedback) {\n        if (feedbackEvent.contexts.feedback.source === \"api\") {\n          await replay.sendBufferedReplayOrFlush();\n        }\n        feedbackEvent.contexts.feedback.replay_id = replayId;\n      }\n    });\n    client.on(\"openFeedbackWidget\", async () => {\n      await replay.sendBufferedReplayOrFlush();\n    });\n  }\n}\n\nasync function addMemoryEntry(replay) {\n  try {\n    return Promise.all(\n      createPerformanceSpans(replay, [\n        // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n        createMemoryEntry(WINDOW.performance.memory)\n      ])\n    );\n  } catch {\n    return [];\n  }\n}\nfunction createMemoryEntry(memoryEntry) {\n  const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n  const time = Date.now() / 1e3;\n  return {\n    type: \"memory\",\n    name: \"memory\",\n    start: time,\n    end: time,\n    data: {\n      memory: {\n        jsHeapSizeLimit,\n        totalJSHeapSize,\n        usedJSHeapSize\n      }\n    }\n  };\n}\n\nfunction debounce(func, wait, options) {\n  return debounce$1(func, wait, {\n    ...options,\n    // @ts-expect-error - Not quite sure why these types do not match, but this is fine\n    setTimeoutImpl: setTimeout$3\n  });\n}\n\nconst NAVIGATOR = GLOBAL_OBJ.navigator;\nfunction getRecordingSamplingOptions() {\n  if (/iPhone|iPad|iPod/i.test(NAVIGATOR?.userAgent ?? \"\") || /Macintosh/i.test(NAVIGATOR?.userAgent ?? \"\") && NAVIGATOR?.maxTouchPoints && NAVIGATOR?.maxTouchPoints > 1) {\n    return {\n      sampling: {\n        mousemove: false\n      }\n    };\n  }\n  return {};\n}\n\nfunction getHandleRecordingEmit(replay) {\n  let hadFirstEvent = false;\n  return (event, _isCheckout) => {\n    try {\n      if (!replay.checkAndHandleExpiredSession()) {\n        DEBUG_BUILD && debug.warn(\"Received replay event after session expired.\");\n        return;\n      }\n      const isCheckout = _isCheckout || !hadFirstEvent;\n      hadFirstEvent = true;\n      syncMirrorAttributesFromMutationEvent(event);\n      if (replay.clickDetector) {\n        updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n      }\n      replay.addUpdate(() => {\n        if (replay.recordingMode === \"buffer\" && isCheckout) {\n          replay.setInitialState();\n        }\n        if (!addEventSync(replay, event, isCheckout)) {\n          return true;\n        }\n        if (!isCheckout) {\n          return false;\n        }\n        const session = replay.session;\n        addSettingsEvent(replay, isCheckout);\n        if (replay.recordingMode === \"buffer\" && session && replay.eventBuffer && !session.dirty) {\n          const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n          if (earliestEvent) {\n            DEBUG_BUILD && debug.log(`Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`);\n            session.started = earliestEvent;\n            if (replay.getOptions().stickySession) {\n              saveSession(session);\n            }\n          }\n        }\n        if (session?.previousSessionId) {\n          return true;\n        }\n        if (replay.recordingMode === \"session\") {\n          void replay.flush();\n        }\n        return true;\n      });\n    } catch (error) {\n      replay.handleException(error);\n    }\n  };\n}\nfunction syncMirrorAttributesFromMutationEvent(event) {\n  const data = event.data;\n  if (event.type !== EventType.IncrementalSnapshot || !data || typeof data !== \"object\" || !(\"source\" in data) || data.source !== IncrementalSource.Mutation || !(\"attributes\" in data) || !Array.isArray(data.attributes)) {\n    return;\n  }\n  for (const mutation of data.attributes) {\n    const node = record.mirror.getNode(mutation.id);\n    const meta = node && record.mirror.getMeta(node);\n    if (meta?.type !== NodeType.Element) {\n      continue;\n    }\n    for (const [attributeName, value] of Object.entries(mutation.attributes)) {\n      if (value === null) {\n        delete meta.attributes[attributeName];\n      } else {\n        meta.attributes[attributeName] = value;\n      }\n    }\n  }\n}\nfunction createOptionsEvent(replay) {\n  const options = replay.getOptions();\n  return {\n    type: EventType.Custom,\n    timestamp: Date.now(),\n    data: {\n      tag: \"options\",\n      payload: {\n        shouldRecordCanvas: replay.isRecordingCanvas(),\n        sessionSampleRate: options.sessionSampleRate,\n        errorSampleRate: options.errorSampleRate,\n        useCompressionOption: options.useCompression,\n        blockAllMedia: options.blockAllMedia,\n        maskAllText: options.maskAllText,\n        maskAllInputs: options.maskAllInputs,\n        useCompression: replay.eventBuffer ? replay.eventBuffer.type === \"worker\" : false,\n        networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n        networkCaptureBodies: options.networkCaptureBodies,\n        networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n        networkResponseHasHeaders: options.networkResponseHeaders.length > 0\n      }\n    }\n  };\n}\nfunction addSettingsEvent(replay, isCheckout) {\n  if (!isCheckout || replay.session?.segmentId !== 0) {\n    return;\n  }\n  addEventSync(replay, createOptionsEvent(replay), false);\n}\n\nfunction closestElementOfNode(node) {\n  if (!node) {\n    return null;\n  }\n  try {\n    const el = node.nodeType === node.ELEMENT_NODE ? node : node.parentElement;\n    return el;\n  } catch {\n    return null;\n  }\n}\n\nfunction createReplayEnvelope(replayEvent, recordingData, dsn, tunnel) {\n  return createEnvelope(\n    createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n    [\n      [{ type: \"replay_event\" }, replayEvent],\n      [\n        {\n          type: \"replay_recording\",\n          // If string then we need to encode to UTF8, otherwise will have\n          // wrong size. TextEncoder has similar browser support to\n          // MutationObserver, although it does not accept IE11.\n          length: typeof recordingData === \"string\" ? new TextEncoder().encode(recordingData).length : recordingData.length\n        },\n        recordingData\n      ]\n    ]\n  );\n}\n\nfunction prepareRecordingData({\n  recordingData,\n  headers\n}) {\n  let payloadWithSequence;\n  const replayHeaders = `${JSON.stringify(headers)}\n`;\n  if (typeof recordingData === \"string\") {\n    payloadWithSequence = `${replayHeaders}${recordingData}`;\n  } else {\n    const enc = new TextEncoder();\n    const sequence = enc.encode(replayHeaders);\n    payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n    payloadWithSequence.set(sequence);\n    payloadWithSequence.set(recordingData, sequence.length);\n  }\n  return payloadWithSequence;\n}\n\nasync function prepareReplayEvent({\n  client,\n  scope,\n  replayId: event_id,\n  event\n}) {\n  const integrations = typeof client[\"_integrations\"] === \"object\" && client[\"_integrations\"] !== null && !Array.isArray(client[\"_integrations\"]) ? Object.keys(client[\"_integrations\"]) : void 0;\n  const eventHint = { event_id, integrations };\n  client.emit(\"preprocessEvent\", event, eventHint);\n  const preparedEvent = await prepareEvent(\n    client.getOptions(),\n    event,\n    eventHint,\n    scope,\n    client,\n    getIsolationScope()\n  );\n  if (!preparedEvent) {\n    return null;\n  }\n  client.emit(\"postprocessEvent\", preparedEvent, eventHint);\n  preparedEvent.platform = preparedEvent.platform || \"javascript\";\n  const metadata = client.getSdkMetadata();\n  const { name, version, settings } = metadata?.sdk || {};\n  preparedEvent.sdk = {\n    ...preparedEvent.sdk,\n    name: name || \"sentry.javascript.unknown\",\n    version: version || \"0.0.0\",\n    settings\n  };\n  return preparedEvent;\n}\n\nasync function sendReplayRequest({\n  recordingData,\n  replayId,\n  segmentId: segment_id,\n  eventContext,\n  timestamp,\n  session\n}) {\n  const preparedRecordingData = prepareRecordingData({\n    recordingData,\n    headers: {\n      segment_id\n    }\n  });\n  const { urls, errorIds, traceIds, segmentNames, initialTimestamp } = eventContext;\n  const client = getClient();\n  const scope = getCurrentScope();\n  const transport = client?.getTransport();\n  const dsn = client?.getDsn();\n  if (!client || !transport || !dsn || !session.sampled) {\n    return Promise.resolve({});\n  }\n  const baseEvent = {\n    type: REPLAY_EVENT_NAME,\n    replay_start_timestamp: initialTimestamp / 1e3,\n    timestamp: timestamp / 1e3,\n    error_ids: errorIds,\n    trace_ids: traceIds,\n    segment_names: segmentNames,\n    urls,\n    replay_id: replayId,\n    segment_id,\n    replay_type: session.sampled\n  };\n  const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n  if (!replayEvent) {\n    client.recordDroppedEvent(\"event_processor\", \"replay\");\n    DEBUG_BUILD && debug.log(\"An event processor returned `null`, will not send event.\");\n    return Promise.resolve({});\n  }\n  delete replayEvent.sdkProcessingMetadata;\n  const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n  let response;\n  try {\n    response = await transport.send(envelope);\n  } catch (err) {\n    const error = new Error(UNABLE_TO_SEND_REPLAY);\n    try {\n      error.cause = err;\n    } catch {\n    }\n    throw error;\n  }\n  const rateLimits = updateRateLimits({}, response);\n  if (isRateLimited(rateLimits, \"replay\")) {\n    throw new RateLimitError(rateLimits);\n  }\n  if (typeof response.statusCode === \"number\" && (response.statusCode < 200 || response.statusCode >= 300)) {\n    throw new TransportStatusCodeError(response.statusCode);\n  }\n  return response;\n}\nclass TransportStatusCodeError extends Error {\n  constructor(statusCode) {\n    super(`Transport returned status code ${statusCode}`);\n  }\n}\nclass RateLimitError extends Error {\n  constructor(rateLimits) {\n    super(\"Rate limit hit\");\n    this.rateLimits = rateLimits;\n  }\n}\nclass ReplayDurationLimitError extends Error {\n  constructor() {\n    super(\"Session is too long, not sending replay\");\n  }\n}\n\nasync function sendReplay(replayData, retryConfig = {\n  count: 0,\n  interval: RETRY_BASE_INTERVAL\n}) {\n  const { recordingData, onError } = replayData;\n  if (!recordingData.length) {\n    return;\n  }\n  try {\n    await sendReplayRequest(replayData);\n    return true;\n  } catch (err) {\n    if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n      throw err;\n    }\n    setContext(\"Replays\", {\n      _retryCount: retryConfig.count\n    });\n    if (onError) {\n      onError(err);\n    }\n    if (retryConfig.count >= RETRY_MAX_COUNT) {\n      const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n      try {\n        error.cause = err;\n      } catch {\n      }\n      throw error;\n    }\n    retryConfig.interval *= ++retryConfig.count;\n    return new Promise((resolve, reject) => {\n      setTimeout$3(async () => {\n        try {\n          await sendReplay(replayData, retryConfig);\n          resolve(true);\n        } catch (err2) {\n          reject(err2);\n        }\n      }, retryConfig.interval);\n    });\n  }\n}\n\nconst THROTTLED = \"__THROTTLED\";\nconst SKIPPED = \"__SKIPPED\";\nfunction throttle(fn, maxCount, durationSeconds) {\n  const counter = /* @__PURE__ */ new Map();\n  const _cleanup = (now) => {\n    const threshold = now - durationSeconds;\n    counter.forEach((_value, key) => {\n      if (key < threshold) {\n        counter.delete(key);\n      }\n    });\n  };\n  const _getTotalCount = () => {\n    return [...counter.values()].reduce((a, b) => a + b, 0);\n  };\n  let isThrottled = false;\n  return (...rest) => {\n    const now = Math.floor(Date.now() / 1e3);\n    _cleanup(now);\n    if (_getTotalCount() >= maxCount) {\n      const wasThrottled = isThrottled;\n      isThrottled = true;\n      return wasThrottled ? SKIPPED : THROTTLED;\n    }\n    isThrottled = false;\n    const count = counter.get(now) || 0;\n    counter.set(now, count + 1);\n    return fn(...rest);\n  };\n}\n\nclass ReplayContainer {\n  constructor({\n    options,\n    recordingOptions\n  }) {\n    this.eventBuffer = null;\n    this.performanceEntries = [];\n    this.replayPerformanceEntries = [];\n    this.recordingMode = \"session\";\n    this.timeouts = {\n      sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n      sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION\n    };\n    this._lastActivity = Date.now();\n    this._isEnabled = false;\n    this._isPaused = false;\n    this._requiresManualStart = false;\n    this._hasInitializedCoreListeners = false;\n    this._context = {\n      errorIds: /* @__PURE__ */ new Set(),\n      traceIds: /* @__PURE__ */ new Set(),\n      segmentNames: /* @__PURE__ */ new Set(),\n      urls: [],\n      initialTimestamp: Date.now(),\n      initialUrl: \"\"\n    };\n    this._recordingOptions = recordingOptions;\n    this._options = options;\n    this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n      maxWait: this._options.flushMaxDelay\n    });\n    this._throttledAddEvent = throttle(\n      (event, isCheckout) => addEvent(this, event, isCheckout),\n      // Max 300 events...\n      300,\n      // ... per 5s\n      5\n    );\n    const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n    const slowClickConfig = slowClickTimeout ? {\n      threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n      timeout: slowClickTimeout,\n      scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n      ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(\",\") : \"\"\n    } : void 0;\n    if (slowClickConfig) {\n      this.clickDetector = new ClickDetector(this, slowClickConfig);\n    }\n    if (DEBUG_BUILD) {\n      const experiments = options._experiments;\n      debug.setConfig({\n        captureExceptions: !!experiments.captureExceptions,\n        traceInternals: !!experiments.traceInternals\n      });\n    }\n    this._handleVisibilityChange = () => {\n      if (WINDOW.document.visibilityState === \"visible\") {\n        this._doChangeToForegroundTasks();\n      } else {\n        this._doChangeToBackgroundTasks();\n      }\n    };\n    this._handleWindowBlur = () => {\n      const breadcrumb = createBreadcrumb({\n        category: \"ui.blur\"\n      });\n      this._doChangeToBackgroundTasks(breadcrumb);\n    };\n    this._handleWindowFocus = () => {\n      const breadcrumb = createBreadcrumb({\n        category: \"ui.focus\"\n      });\n      this._doChangeToForegroundTasks(breadcrumb);\n    };\n    this._handleKeyboardEvent = (event) => {\n      handleKeyboardEvent(this, event);\n    };\n  }\n  /** Get the event context. */\n  getContext() {\n    return this._context;\n  }\n  /** If recording is currently enabled. */\n  isEnabled() {\n    return this._isEnabled;\n  }\n  /** If recording is currently paused. */\n  isPaused() {\n    return this._isPaused;\n  }\n  /**\n   * Determine if canvas recording is enabled\n   */\n  isRecordingCanvas() {\n    return Boolean(this._canvas);\n  }\n  /** Get the replay integration options. */\n  getOptions() {\n    return this._options;\n  }\n  /** A wrapper to conditionally capture exceptions. */\n  handleException(error) {\n    DEBUG_BUILD && debug.exception(error);\n    if (this._options.onError) {\n      this._options.onError(error);\n    }\n  }\n  /**\n   * Initializes the plugin based on sampling configuration. Should not be\n   * called outside of constructor.\n   */\n  initializeSampling(previousSessionId) {\n    const { errorSampleRate, sessionSampleRate } = this._options;\n    const requiresManualStart = errorSampleRate <= 0 && sessionSampleRate <= 0;\n    this._requiresManualStart = requiresManualStart;\n    if (requiresManualStart) {\n      return;\n    }\n    this._initializeSessionForSampling(previousSessionId);\n    if (!this.session) {\n      DEBUG_BUILD && debug.exception(new Error(\"Unable to initialize and create session\"));\n      return;\n    }\n    if (this.session.sampled === false) {\n      return;\n    }\n    this.recordingMode = this.session.sampled === \"buffer\" && this.session.segmentId === 0 ? \"buffer\" : \"session\";\n    DEBUG_BUILD && debug.infoTick(`Starting replay in ${this.recordingMode} mode`);\n    this._initializeRecording();\n  }\n  /**\n   * Start a replay regardless of sampling rate. Calling this will always\n   * create a new session. Will log a message if replay is already in progress.\n   *\n   * Creates or loads a session, attaches listeners to varying events (DOM,\n   * _performanceObserver, Recording, Sentry SDK, etc)\n   */\n  start() {\n    if (this._isEnabled && this.recordingMode === \"session\") {\n      DEBUG_BUILD && debug.log(\"Recording is already in progress\");\n      return;\n    }\n    if (this._isEnabled && this.recordingMode === \"buffer\") {\n      DEBUG_BUILD && debug.log(\"Buffering is in progress, call `flush()` to save the replay\");\n      return;\n    }\n    DEBUG_BUILD && debug.infoTick(\"Starting replay in session mode\");\n    this._updateUserActivity();\n    const session = loadOrCreateSession(\n      {\n        maxReplayDuration: this._options.maxReplayDuration,\n        sessionIdleExpire: this.timeouts.sessionIdleExpire\n      },\n      {\n        stickySession: this._options.stickySession,\n        // This is intentional: create a new session-based replay when calling `start()`\n        sessionSampleRate: 1,\n        allowBuffering: false\n      }\n    );\n    this.session = session;\n    this.recordingMode = \"session\";\n    this._initializeRecording();\n  }\n  /**\n   * Start replay buffering. Buffers until `flush()` is called or, if\n   * `replaysOnErrorSampleRate` > 0, an error occurs.\n   */\n  startBuffering() {\n    if (this._isEnabled) {\n      DEBUG_BUILD && debug.log(\"Buffering is in progress, call `flush()` to save the replay\");\n      return;\n    }\n    DEBUG_BUILD && debug.infoTick(\"Starting replay in buffer mode\");\n    const session = loadOrCreateSession(\n      {\n        sessionIdleExpire: this.timeouts.sessionIdleExpire,\n        maxReplayDuration: this._options.maxReplayDuration\n      },\n      {\n        stickySession: this._options.stickySession,\n        sessionSampleRate: 0,\n        allowBuffering: true\n      }\n    );\n    this.session = session;\n    this.recordingMode = \"buffer\";\n    this._initializeRecording();\n  }\n  /**\n   * Start recording.\n   *\n   * Note that this will cause a new DOM checkout\n   */\n  startRecording() {\n    try {\n      const canvasOptions = this._canvas;\n      this._stopRecording = record({\n        ...this._recordingOptions,\n        // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n        // Without this, it would record forever, until an error happens, which we don't want\n        // instead, we'll always keep the last 60 seconds of replay before an error happened\n        ...this.recordingMode === \"buffer\" ? { checkoutEveryNms: BUFFER_CHECKOUT_TIME } : (\n          // Otherwise, use experimental option w/ min checkout time of 6 minutes\n          // This is to improve playback seeking as there could potentially be\n          // less mutations to process in the worse cases.\n          //\n          // checkout by \"N\" events is probably ideal, but means we have less\n          // control about the number of checkouts we make (which generally\n          // increases replay size)\n          this._options._experiments.continuousCheckout && {\n            // Minimum checkout time is 6 minutes\n            checkoutEveryNms: Math.max(36e4, this._options._experiments.continuousCheckout)\n          }\n        ),\n        emit: getHandleRecordingEmit(this),\n        ...getRecordingSamplingOptions(),\n        onMutation: this._onMutationHandler.bind(this),\n        ...canvasOptions ? {\n          recordCanvas: canvasOptions.recordCanvas,\n          getCanvasManager: canvasOptions.getCanvasManager,\n          sampling: canvasOptions.sampling,\n          dataURLOptions: canvasOptions.dataURLOptions\n        } : {}\n      });\n    } catch (err) {\n      this.handleException(err);\n    }\n  }\n  /**\n   * Stops the recording, if it was running.\n   *\n   * Returns true if it was previously stopped, or is now stopped,\n   * otherwise false.\n   */\n  stopRecording() {\n    try {\n      if (this._stopRecording) {\n        this._stopRecording();\n        this._stopRecording = void 0;\n      }\n      return true;\n    } catch (err) {\n      this.handleException(err);\n      return false;\n    }\n  }\n  /**\n   * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n   * does not support a teardown\n   */\n  async stop({\n    forceFlush = false,\n    reason\n  } = {}) {\n    if (!this._isEnabled) {\n      return;\n    }\n    this._isEnabled = false;\n    this.recordingMode = \"buffer\";\n    const stopReason = reason ?? \"manual\";\n    getClient()?.emit(\"replayEnd\", { sessionId: this.session?.id, reason: stopReason });\n    try {\n      DEBUG_BUILD && debug.log(`Stopping Replay triggered by ${stopReason}`);\n      resetReplayIdOnDynamicSamplingContext();\n      this._removeListeners();\n      this.stopRecording();\n      this._debouncedFlush.cancel();\n      if (forceFlush) {\n        await this._flush({ force: true });\n      }\n      this.eventBuffer?.destroy();\n      this.eventBuffer = null;\n      clearSession(this);\n    } catch (err) {\n      this.handleException(err);\n    }\n  }\n  /**\n   * Pause some replay functionality. See comments for `_isPaused`.\n   * This differs from stop as this only stops DOM recording, it is\n   * not as thorough of a shutdown as `stop()`.\n   */\n  pause() {\n    if (this._isPaused) {\n      return;\n    }\n    this._isPaused = true;\n    this.stopRecording();\n    DEBUG_BUILD && debug.log(\"Pausing replay\");\n  }\n  /**\n   * Resumes recording, see notes for `pause().\n   *\n   * Note that calling `startRecording()` here will cause a\n   * new DOM checkout.`\n   */\n  resume() {\n    if (!this._isPaused || !this._checkSession()) {\n      return;\n    }\n    this._isPaused = false;\n    this.startRecording();\n    DEBUG_BUILD && debug.log(\"Resuming replay\");\n  }\n  /**\n   * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n   * Unless `continueRecording` is false, the replay will continue to record and\n   * behave as a \"session\"-based replay.\n   *\n   * Otherwise, queue up a flush.\n   */\n  async sendBufferedReplayOrFlush({ continueRecording = true } = {}) {\n    if (this.recordingMode === \"session\") {\n      return this.flushImmediate();\n    }\n    const activityTime = Date.now();\n    DEBUG_BUILD && debug.log(\"Converting buffer to session\");\n    await this.flushImmediate();\n    const hasStoppedRecording = this.stopRecording();\n    if (!continueRecording || !hasStoppedRecording) {\n      return;\n    }\n    if (this.recordingMode === \"session\") {\n      return;\n    }\n    this.recordingMode = \"session\";\n    if (this.session) {\n      this.session.dirty = false;\n      this._updateUserActivity(activityTime);\n      this._updateSessionActivity(activityTime);\n      this._maybeSaveSession();\n      setReplayIdOnDynamicSamplingContext(this.session.id);\n    }\n    this.startRecording();\n  }\n  /**\n   * We want to batch uploads of replay events. Save events only if\n   * `<flushMinDelay>` milliseconds have elapsed since the last event\n   * *OR* if `<flushMaxDelay>` milliseconds have elapsed.\n   *\n   * Accepts a callback to perform side-effects and returns true to stop batch\n   * processing and hand back control to caller.\n   */\n  addUpdate(cb) {\n    const cbResult = cb();\n    if (this.recordingMode === \"buffer\" || !this._isEnabled) {\n      return;\n    }\n    if (cbResult === true) {\n      return;\n    }\n    this._debouncedFlush();\n  }\n  /**\n   * Updates the user activity timestamp and resumes recording. This should be\n   * called in an event handler for a user action that we consider as the user\n   * being \"active\" (e.g. a mouse click).\n   */\n  triggerUserActivity() {\n    this._updateUserActivity();\n    if (!this._stopRecording) {\n      if (!this._checkSession()) {\n        return;\n      }\n      this.resume();\n      return;\n    }\n    this.checkAndHandleExpiredSession();\n    this._updateSessionActivity();\n  }\n  /**\n   * Updates the user activity timestamp *without* resuming\n   * recording. Some user events (e.g. keydown) can be create\n   * low-value replays that only contain the keypress as a\n   * breadcrumb. Instead this would require other events to\n   * create a new replay after a session has expired.\n   */\n  updateUserActivity() {\n    this._updateUserActivity();\n    this._updateSessionActivity();\n  }\n  /**\n   * Only flush if `this.recordingMode === 'session'`\n   */\n  conditionalFlush() {\n    if (this.recordingMode === \"buffer\") {\n      return Promise.resolve();\n    }\n    return this.flushImmediate();\n  }\n  /**\n   * Flush using debounce flush\n   */\n  flush() {\n    return this._debouncedFlush();\n  }\n  /**\n   * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n   * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n   * cases of multiple flushes happening closely together.\n   */\n  flushImmediate() {\n    this._debouncedFlush();\n    return this._debouncedFlush.flush();\n  }\n  /**\n   * Cancels queued up flushes.\n   */\n  cancelFlush() {\n    this._debouncedFlush.cancel();\n  }\n  /** Get the current session (=replay) ID\n   *\n   * @param onlyIfSampled - If true, will only return the session ID if the session is sampled.\n   */\n  getSessionId(onlyIfSampled) {\n    if (onlyIfSampled && this.session?.sampled === false) {\n      return void 0;\n    }\n    return this.session?.id;\n  }\n  /**\n   * Checks if recording should be stopped due to user inactivity. Otherwise\n   * check if session is expired and create a new session if so. Triggers a new\n   * full snapshot on new session.\n   *\n   * Returns true if session is not expired, false otherwise.\n   * @hidden\n   */\n  checkAndHandleExpiredSession() {\n    if (this._lastActivity && isExpired(this._lastActivity, this.timeouts.sessionIdlePause) && this.session?.sampled === \"session\") {\n      this.pause();\n      return;\n    }\n    if (!this._checkSession()) {\n      return false;\n    }\n    return true;\n  }\n  /**\n   * Capture some initial state that can change throughout the lifespan of the\n   * replay. This is required because otherwise they would be captured at the\n   * first flush.\n   */\n  setInitialState() {\n    const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n    const url = `${WINDOW.location.origin}${urlPath}`;\n    this.performanceEntries = [];\n    this.replayPerformanceEntries = [];\n    this._clearContext();\n    this._context.initialUrl = url;\n    this._context.initialTimestamp = Date.now();\n    this._context.urls.push(url);\n  }\n  /**\n   * Add a breadcrumb event, that may be throttled.\n   * If it was throttled, we add a custom breadcrumb to indicate that.\n   */\n  throttledAddEvent(event, isCheckout) {\n    const res = this._throttledAddEvent(event, isCheckout);\n    if (res === THROTTLED) {\n      const breadcrumb = createBreadcrumb({\n        category: \"replay.throttled\"\n      });\n      this.addUpdate(() => {\n        return !addEventSync(this, {\n          type: ReplayEventTypeCustom,\n          timestamp: breadcrumb.timestamp || 0,\n          data: {\n            tag: \"breadcrumb\",\n            payload: breadcrumb,\n            metric: true\n          }\n        });\n      });\n    }\n    return res;\n  }\n  /**\n   * This will get the parametrized route name of the current page.\n   * This is only available if performance is enabled, and if an instrumented router is used.\n   */\n  getCurrentRoute() {\n    const lastActiveSpan = this.lastActiveSpan || getActiveSpan();\n    const lastRootSpan = lastActiveSpan && getRootSpan(lastActiveSpan);\n    const attributes = lastRootSpan && spanToJSON(lastRootSpan).data || {};\n    const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n    if (!lastRootSpan || !source || ![\"route\", \"custom\"].includes(source)) {\n      return void 0;\n    }\n    return spanToJSON(lastRootSpan).description;\n  }\n  /**\n   * Initialize and start all listeners to varying events (DOM,\n   * Performance Observer, Recording, Sentry SDK, etc)\n   */\n  _initializeRecording() {\n    this.setInitialState();\n    this._updateSessionActivity();\n    this.eventBuffer = createEventBuffer({\n      useCompression: this._options.useCompression,\n      workerUrl: this._options.workerUrl\n    });\n    this._removeListeners();\n    this._addListeners();\n    this._isEnabled = true;\n    this._isPaused = false;\n    if (this.session) {\n      getClient()?.emit(\"replayStart\", {\n        sessionId: this.session.id,\n        recordingMode: this.recordingMode\n      });\n    }\n    this.startRecording();\n    if (this.recordingMode === \"session\" && this.session) {\n      setReplayIdOnDynamicSamplingContext(this.session.id);\n    }\n  }\n  /**\n   * Loads (or refreshes) the current session.\n   */\n  _initializeSessionForSampling(previousSessionId) {\n    const allowBuffering = this._options.errorSampleRate > 0;\n    const session = loadOrCreateSession(\n      {\n        sessionIdleExpire: this.timeouts.sessionIdleExpire,\n        maxReplayDuration: this._options.maxReplayDuration,\n        previousSessionId\n      },\n      {\n        stickySession: this._options.stickySession,\n        sessionSampleRate: this._options.sessionSampleRate,\n        allowBuffering\n      }\n    );\n    this.session = session;\n  }\n  /**\n   * Checks and potentially refreshes the current session.\n   * Returns false if session is not recorded.\n   */\n  _checkSession() {\n    if (!this.session) {\n      return false;\n    }\n    const currentSession = this.session;\n    if (shouldRefreshSession(currentSession, {\n      sessionIdleExpire: this.timeouts.sessionIdleExpire,\n      maxReplayDuration: this._options.maxReplayDuration\n    })) {\n      this._refreshSession(currentSession);\n      return false;\n    }\n    return true;\n  }\n  /**\n   * Refresh a session with a new one.\n   * This stops the current session (without forcing a flush, as that would never work since we are expired),\n   * and then does a new sampling based on the refreshed session.\n   */\n  async _refreshSession(session) {\n    if (!this._isEnabled) {\n      return;\n    }\n    await this.stop({ reason: \"sessionExpired\" });\n    this.initializeSampling(session.id);\n  }\n  /**\n   * Adds listeners to record events for the replay\n   */\n  _addListeners() {\n    try {\n      WINDOW.document.addEventListener(\"visibilitychange\", this._handleVisibilityChange);\n      WINDOW.addEventListener(\"blur\", this._handleWindowBlur);\n      WINDOW.addEventListener(\"focus\", this._handleWindowFocus);\n      WINDOW.addEventListener(\"keydown\", this._handleKeyboardEvent);\n      if (this.clickDetector) {\n        this.clickDetector.addListeners();\n      }\n      if (!this._hasInitializedCoreListeners) {\n        addGlobalListeners(this);\n        this._hasInitializedCoreListeners = true;\n      }\n    } catch (err) {\n      this.handleException(err);\n    }\n    this._performanceCleanupCallback = setupPerformanceObserver(this);\n  }\n  /**\n   * Cleans up listeners that were created in `_addListeners`\n   */\n  _removeListeners() {\n    try {\n      WINDOW.document.removeEventListener(\"visibilitychange\", this._handleVisibilityChange);\n      WINDOW.removeEventListener(\"blur\", this._handleWindowBlur);\n      WINDOW.removeEventListener(\"focus\", this._handleWindowFocus);\n      WINDOW.removeEventListener(\"keydown\", this._handleKeyboardEvent);\n      if (this.clickDetector) {\n        this.clickDetector.removeListeners();\n      }\n      if (this._performanceCleanupCallback) {\n        this._performanceCleanupCallback();\n      }\n    } catch (err) {\n      this.handleException(err);\n    }\n  }\n  /**\n   * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n   */\n  _doChangeToBackgroundTasks(breadcrumb) {\n    if (!this.session) {\n      return;\n    }\n    const expired = shouldRefreshSession(this.session, {\n      maxReplayDuration: this._options.maxReplayDuration,\n      sessionIdleExpire: this.timeouts.sessionIdleExpire\n    });\n    if (expired) {\n      resetReplayIdOnDynamicSamplingContext();\n      return;\n    }\n    if (breadcrumb) {\n      this._createCustomBreadcrumb(breadcrumb);\n    }\n    void this.conditionalFlush();\n  }\n  /**\n   * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n   */\n  _doChangeToForegroundTasks(breadcrumb) {\n    if (!this.session) {\n      return;\n    }\n    const isSessionActive = this.checkAndHandleExpiredSession();\n    if (!isSessionActive) {\n      DEBUG_BUILD && debug.log(\"Document has become active, but session has expired\");\n      return;\n    }\n    if (breadcrumb) {\n      this._createCustomBreadcrumb(breadcrumb);\n    }\n  }\n  /**\n   * Update user activity (across session lifespans)\n   */\n  _updateUserActivity(_lastActivity = Date.now()) {\n    this._lastActivity = _lastActivity;\n  }\n  /**\n   * Updates the session's last activity timestamp\n   */\n  _updateSessionActivity(_lastActivity = Date.now()) {\n    if (this.session) {\n      this.session.lastActivity = _lastActivity;\n      this._maybeSaveSession();\n    }\n  }\n  /**\n   * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n   */\n  _createCustomBreadcrumb(breadcrumb) {\n    this.addUpdate(() => {\n      this.throttledAddEvent({\n        type: EventType.Custom,\n        timestamp: breadcrumb.timestamp || 0,\n        data: {\n          tag: \"breadcrumb\",\n          payload: breadcrumb\n        }\n      });\n    });\n  }\n  /**\n   * Observed performance events are added to `this.performanceEntries`. These\n   * are included in the replay event before it is finished and sent to Sentry.\n   */\n  _addPerformanceEntries() {\n    let performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n    this.performanceEntries = [];\n    this.replayPerformanceEntries = [];\n    if (this._requiresManualStart) {\n      const initialTimestampInSeconds = this._context.initialTimestamp / 1e3;\n      performanceEntries = performanceEntries.filter((entry) => entry.start >= initialTimestampInSeconds);\n    }\n    return Promise.all(createPerformanceSpans(this, performanceEntries));\n  }\n  /**\n   * Clear _context\n   */\n  _clearContext() {\n    this._context.errorIds.clear();\n    this._context.traceIds.clear();\n    this._context.segmentNames.clear();\n    this._context.urls = [];\n  }\n  /** Update the initial timestamp based on the buffer content. */\n  _updateInitialTimestampFromEventBuffer() {\n    const { session, eventBuffer } = this;\n    if (!session || !eventBuffer || this._requiresManualStart) {\n      return;\n    }\n    if (session.segmentId) {\n      return;\n    }\n    const earliestEvent = eventBuffer.getEarliestTimestamp();\n    if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n      this._context.initialTimestamp = earliestEvent;\n    }\n  }\n  /**\n   * Return and clear _context\n   */\n  _popEventContext() {\n    const _context = {\n      initialTimestamp: this._context.initialTimestamp,\n      initialUrl: this._context.initialUrl,\n      errorIds: Array.from(this._context.errorIds),\n      traceIds: Array.from(this._context.traceIds),\n      segmentNames: Array.from(this._context.segmentNames),\n      urls: this._context.urls\n    };\n    this._clearContext();\n    return _context;\n  }\n  /**\n   * Flushes replay event buffer to Sentry.\n   *\n   * Performance events are only added right before flushing - this is\n   * due to the buffered performance observer events.\n   *\n   * Should never be called directly, only by `flush`\n   */\n  async _runFlush() {\n    const replayId = this.getSessionId();\n    if (!this.session || !this.eventBuffer || !replayId) {\n      DEBUG_BUILD && debug.error(\"No session or eventBuffer found to flush.\");\n      return;\n    }\n    await this._addPerformanceEntries();\n    if (!this.eventBuffer?.hasEvents) {\n      return;\n    }\n    await addMemoryEntry(this);\n    if (!this.eventBuffer) {\n      return;\n    }\n    if (replayId !== this.getSessionId()) {\n      return;\n    }\n    try {\n      this._updateInitialTimestampFromEventBuffer();\n      const timestamp = Date.now();\n      if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 3e4) {\n        throw new ReplayDurationLimitError();\n      }\n      const eventContext = this._popEventContext();\n      const segmentId = this.session.segmentId++;\n      this._maybeSaveSession();\n      const recordingData = await this.eventBuffer.finish();\n      await sendReplay({\n        replayId,\n        recordingData,\n        segmentId,\n        eventContext,\n        session: this.session,\n        timestamp,\n        onError: (err) => this.handleException(err)\n      });\n    } catch (err) {\n      this.handleException(err);\n      this.stop({ reason: \"sendError\" });\n      const client = getClient();\n      if (client) {\n        let dropReason;\n        if (err instanceof RateLimitError) {\n          dropReason = \"ratelimit_backoff\";\n        } else if (err instanceof ReplayDurationLimitError) {\n          dropReason = \"invalid\";\n        } else {\n          dropReason = \"send_error\";\n        }\n        client.recordDroppedEvent(dropReason, \"replay\");\n      }\n    }\n  }\n  /**\n   * Flush recording data to Sentry. Creates a lock so that only a single flush\n   * can be active at a time. Do not call this directly.\n   */\n  async _flush({\n    force = false\n  } = {}) {\n    if (!this._isEnabled && !force) {\n      return;\n    }\n    if (!this.checkAndHandleExpiredSession()) {\n      DEBUG_BUILD && debug.error(\"Attempting to finish replay event after session expired.\");\n      return;\n    }\n    if (!this.session) {\n      return;\n    }\n    const start = this.session.started;\n    const now = Date.now();\n    const duration = now - start;\n    this._debouncedFlush.cancel();\n    const tooShort = duration < this._options.minReplayDuration;\n    const tooLong = duration > this._options.maxReplayDuration + 5e3;\n    if (tooShort || tooLong) {\n      DEBUG_BUILD && debug.log(\n        `Session duration (${Math.floor(duration / 1e3)}s) is too ${tooShort ? \"short\" : \"long\"}, not sending replay.`\n      );\n      if (tooShort) {\n        this._debouncedFlush();\n      }\n      return;\n    }\n    const eventBuffer = this.eventBuffer;\n    if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n      DEBUG_BUILD && debug.log(\"Flushing initial segment without checkout.\");\n    }\n    const _flushInProgress = !!this._flushLock;\n    if (!this._flushLock) {\n      this._flushLock = this._runFlush();\n    }\n    try {\n      await this._flushLock;\n    } catch (err) {\n      this.handleException(err);\n    } finally {\n      this._flushLock = void 0;\n      if (_flushInProgress) {\n        this._debouncedFlush();\n      }\n    }\n  }\n  /** Save the session, if it is sticky */\n  _maybeSaveSession() {\n    if (this.session && this._options.stickySession) {\n      saveSession(this.session);\n    }\n  }\n  /** Handler for rrweb.record.onMutation */\n  _onMutationHandler(mutations) {\n    const { ignoreMutations } = this._options._experiments;\n    if (ignoreMutations?.length) {\n      if (mutations.some((mutation) => {\n        const el = closestElementOfNode(mutation.target);\n        const selector = ignoreMutations.join(\",\");\n        return el?.matches(selector);\n      })) {\n        return false;\n      }\n    }\n    const count = mutations.length;\n    const mutationLimit = this._options.mutationLimit;\n    const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n    const overMutationLimit = mutationLimit && count > mutationLimit;\n    if (count > mutationBreadcrumbLimit || overMutationLimit) {\n      const breadcrumb = createBreadcrumb({\n        category: \"replay.mutations\",\n        data: {\n          count,\n          limit: overMutationLimit\n        }\n      });\n      this._createCustomBreadcrumb(breadcrumb);\n    }\n    if (overMutationLimit) {\n      this.stop({ reason: \"mutationLimit\", forceFlush: this.recordingMode === \"session\" });\n      return false;\n    }\n    return true;\n  }\n}\n\nfunction getOption(selectors, defaultSelectors) {\n  return [\n    ...selectors,\n    // sentry defaults\n    ...defaultSelectors\n  ].join(\",\");\n}\nfunction getPrivacyOptions({ mask, unmask, block, unblock, ignore }) {\n  const defaultBlockedElements = [\"base\", \"iframe[srcdoc]:not([src])\"];\n  const maskSelector = getOption(mask, [\".sentry-mask\", \"[data-sentry-mask]\"]);\n  const unmaskSelector = getOption(unmask, []);\n  const options = {\n    // We are making the decision to make text and input selectors the same\n    maskTextSelector: maskSelector,\n    unmaskTextSelector: unmaskSelector,\n    blockSelector: getOption(block, [\".sentry-block\", \"[data-sentry-block]\", ...defaultBlockedElements]),\n    unblockSelector: getOption(unblock, []),\n    ignoreSelector: getOption(ignore, [\".sentry-ignore\", \"[data-sentry-ignore]\", 'input[type=\"file\"]'])\n  };\n  return options;\n}\n\nfunction maskAttribute({\n  el,\n  key,\n  maskAttributes,\n  maskAllText,\n  privacyOptions,\n  value\n}) {\n  if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n    return value;\n  }\n  const masksNamedAttribute = maskAttributes.includes(key);\n  const masksSubmitButtonValue = maskAllText && key === \"value\" && el.tagName === \"INPUT\" && [\"submit\", \"button\"].includes(el.getAttribute(\"type\") || \"\");\n  if (masksNamedAttribute || masksSubmitButtonValue) {\n    return value.replace(/[\\S]/g, \"*\");\n  }\n  return value;\n}\n\nconst MEDIA_SELECTORS = 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\nconst DEFAULT_NETWORK_HEADERS = [\"content-length\", \"content-type\", \"accept\"];\nconst ORIGINAL_BODY = /* @__PURE__ */ Symbol.for(\"sentry__originalRequestBody\");\nlet _initialized = false;\nlet _isRequestInstrumented = false;\nfunction _INTERNAL_instrumentRequestInterface() {\n  if (typeof Request === \"undefined\" || _isRequestInstrumented) {\n    return;\n  }\n  const OriginalRequest = Request;\n  try {\n    const SentryRequest = function(input, init) {\n      const request = new OriginalRequest(input, init);\n      if (init?.body != null) {\n        request[ORIGINAL_BODY] = init.body;\n      }\n      return request;\n    };\n    SentryRequest.prototype = OriginalRequest.prototype;\n    GLOBAL_OBJ.Request = SentryRequest;\n    _isRequestInstrumented = true;\n  } catch {\n  }\n}\nconst replayIntegration = ((options) => {\n  return new Replay(options);\n});\nclass Replay {\n  constructor({\n    flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n    flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n    minReplayDuration = MIN_REPLAY_DURATION,\n    maxReplayDuration = MAX_REPLAY_DURATION,\n    stickySession = true,\n    useCompression = true,\n    workerUrl,\n    _experiments = {},\n    maskAllText = true,\n    maskAllInputs = true,\n    blockAllMedia = true,\n    mutationBreadcrumbLimit = 750,\n    mutationLimit = 1e4,\n    slowClickTimeout = 7e3,\n    slowClickIgnoreSelectors = [],\n    networkDetailAllowUrls = [],\n    networkDetailDenyUrls = [],\n    networkCaptureBodies = true,\n    networkRequestHeaders = [],\n    networkResponseHeaders = [],\n    mask = [],\n    maskAttributes = [\"title\", \"placeholder\", \"aria-label\"],\n    unmask = [],\n    block = [],\n    unblock = [],\n    ignore = [],\n    maskFn,\n    beforeAddRecordingEvent,\n    beforeErrorSampling,\n    onError,\n    attachRawBodyFromRequest = false\n  } = {}) {\n    this.name = \"Replay\";\n    const privacyOptions = getPrivacyOptions({\n      mask,\n      unmask,\n      block,\n      unblock,\n      ignore\n    });\n    this._recordingOptions = {\n      maskAllInputs,\n      maskAllText,\n      maskInputOptions: { password: true },\n      maskTextFn: maskFn,\n      maskInputFn: maskFn,\n      maskAttributeFn: (key, value, el) => maskAttribute({\n        maskAttributes,\n        maskAllText,\n        privacyOptions,\n        key,\n        value,\n        el\n      }),\n      ...privacyOptions,\n      // Our defaults\n      slimDOMOptions: \"all\",\n      inlineStylesheet: true,\n      // Disable inline images as it will increase segment/replay size\n      inlineImages: false,\n      // collect fonts, but be aware that `sentry.io` needs to be an allowed\n      // origin for playback\n      collectFonts: true,\n      errorHandler: (err) => {\n        try {\n          err.__rrweb__ = true;\n        } catch {\n        }\n      },\n      // experimental support for recording iframes from different origins\n      recordCrossOriginIframes: Boolean(_experiments.recordCrossOriginIframes)\n    };\n    this._initialOptions = {\n      flushMinDelay,\n      flushMaxDelay,\n      minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n      maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n      stickySession,\n      useCompression,\n      workerUrl,\n      blockAllMedia,\n      maskAllInputs,\n      maskAllText,\n      mutationBreadcrumbLimit,\n      mutationLimit,\n      slowClickTimeout,\n      slowClickIgnoreSelectors,\n      networkDetailAllowUrls,\n      networkDetailDenyUrls,\n      networkCaptureBodies,\n      networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n      networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n      beforeAddRecordingEvent,\n      beforeErrorSampling,\n      onError,\n      attachRawBodyFromRequest,\n      _experiments\n    };\n    if (this._initialOptions.blockAllMedia) {\n      this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector ? MEDIA_SELECTORS : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n      this._recordingOptions.ignoreCSSAttributes = /* @__PURE__ */ new Set([\"background-image\"]);\n    }\n    if (this._isInitialized && isBrowser()) {\n      throw new Error(\"Multiple Sentry Session Replay instances are not supported\");\n    }\n    this._isInitialized = true;\n  }\n  /** If replay has already been initialized */\n  get _isInitialized() {\n    return _initialized;\n  }\n  /** Update _isInitialized */\n  set _isInitialized(value) {\n    _initialized = value;\n  }\n  /**\n   * Setup and initialize replay container\n   */\n  afterAllSetup(client) {\n    if (!isBrowser() || this._replay) {\n      return;\n    }\n    if (this._initialOptions.attachRawBodyFromRequest) {\n      _INTERNAL_instrumentRequestInterface();\n    }\n    this._setup(client);\n    this._initialize(client);\n  }\n  /**\n   * Start a replay regardless of sampling rate. Calling this will always\n   * create a new session. Will log a message if replay is already in progress.\n   *\n   * Creates or loads a session, attaches listeners to varying events (DOM,\n   * PerformanceObserver, Recording, Sentry SDK, etc)\n   */\n  start() {\n    if (!this._replay) {\n      return;\n    }\n    this._replay.start();\n  }\n  /**\n   * Start replay buffering. Buffers until `flush()` is called or, if\n   * `replaysOnErrorSampleRate` > 0, until an error occurs.\n   */\n  startBuffering() {\n    if (!this._replay) {\n      return;\n    }\n    this._replay.startBuffering();\n  }\n  /**\n   * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n   * does not support a teardown\n   *\n   * @param options.flush - Whether to flush the pending replay segment when stopping.\n   * When recording in `session` mode, `stop()` flushes the buffered-but-unsent segment by\n   * default (`flush: true`), matching the previous behavior. Pass `flush: false` to stop\n   * recording without sending that pending segment — useful when a user withdraws consent\n   * and no further data should leave the browser.\n   *\n   * Note: `flush: false` only prevents the *pending* (final) segment from being sent. It does\n   * **not** retract segments that were already sent earlier during `session` recording.\n   */\n  stop(options) {\n    if (!this._replay) {\n      return Promise.resolve();\n    }\n    return this._replay.stop({\n      forceFlush: options?.flush ?? this._replay.recordingMode === \"session\",\n      reason: \"manual\"\n    });\n  }\n  /**\n   * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n   * If replay is not enabled, a new session replay is started.\n   * Unless `continueRecording` is false, the replay will continue to record and\n   * behave as a \"session\"-based replay.\n   *\n   * Otherwise, queue up a flush.\n   */\n  flush(options) {\n    if (!this._replay) {\n      return Promise.resolve();\n    }\n    if (!this._replay.isEnabled()) {\n      this._replay.start();\n      return Promise.resolve();\n    }\n    return this._replay.sendBufferedReplayOrFlush(options);\n  }\n  /**\n   * Get the current session ID.\n   *\n   * @param onlyIfSampled - If true, will only return the session ID if the session is sampled.\n   *\n   */\n  getReplayId(onlyIfSampled) {\n    if (!this._replay?.isEnabled()) {\n      return;\n    }\n    return this._replay.getSessionId(onlyIfSampled);\n  }\n  /**\n   * Get the current recording mode. This can be either `session` or `buffer`.\n   *\n   * `session`: Recording the whole session, sending it continuously\n   * `buffer`: Always keeping the last 60s of recording, requires:\n   *   - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n   *   - or calling `flush()` to send the replay\n   */\n  getRecordingMode() {\n    if (!this._replay?.isEnabled()) {\n      return;\n    }\n    return this._replay.recordingMode;\n  }\n  processSpan(span) {\n    const replayId = this.getReplayId(true);\n    if (replayId) {\n      safeSetSpanJSONAttributes(span, { \"sentry.replay_id\": replayId });\n      if (this.getRecordingMode() === \"buffer\") {\n        safeSetSpanJSONAttributes(span, { \"sentry._internal.replay_is_buffering\": true });\n      }\n    }\n  }\n  /**\n   * Initializes replay.\n   */\n  _initialize(client) {\n    if (!this._replay) {\n      return;\n    }\n    this._maybeLoadFromReplayCanvasIntegration(client);\n    this._replay.initializeSampling();\n  }\n  /** Setup the integration. */\n  _setup(client) {\n    const finalOptions = loadReplayOptionsFromClient(this._initialOptions, client);\n    this._replay = new ReplayContainer({\n      options: finalOptions,\n      recordingOptions: this._recordingOptions\n    });\n  }\n  /** Get canvas options from ReplayCanvas integration, if it is also added. */\n  _maybeLoadFromReplayCanvasIntegration(client) {\n    try {\n      const canvasIntegration = client.getIntegrationByName(\"ReplayCanvas\");\n      if (!canvasIntegration) {\n        return;\n      }\n      this._replay[\"_canvas\"] = canvasIntegration.getOptions();\n    } catch {\n    }\n  }\n}\nfunction loadReplayOptionsFromClient(initialOptions, client) {\n  const opt = client.getOptions();\n  const finalOptions = {\n    sessionSampleRate: 0,\n    errorSampleRate: 0,\n    ...initialOptions\n  };\n  const replaysSessionSampleRate = parseSampleRate(opt.replaysSessionSampleRate);\n  const replaysOnErrorSampleRate = parseSampleRate(opt.replaysOnErrorSampleRate);\n  if (replaysSessionSampleRate == null && replaysOnErrorSampleRate == null) {\n    consoleSandbox(() => {\n      console.warn(\n        \"Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.\"\n      );\n    });\n  }\n  if (replaysSessionSampleRate != null) {\n    finalOptions.sessionSampleRate = replaysSessionSampleRate;\n  }\n  if (replaysOnErrorSampleRate != null) {\n    finalOptions.errorSampleRate = replaysOnErrorSampleRate;\n  }\n  return finalOptions;\n}\nfunction _getMergedNetworkHeaders(headers) {\n  return [...DEFAULT_NETWORK_HEADERS, ...headers.map((header) => header.toLowerCase())];\n}\n\nfunction getReplay() {\n  const client = getClient();\n  return client?.getIntegrationByName(\"Replay\");\n}\n\nexport { getReplay, replayIntegration };\n//# sourceMappingURL=index.js.map\n","import { WINDOW } from '../helpers.js';\n\nfunction baggageHeaderHasSentryValues(baggageHeader) {\n  return baggageHeader.split(\",\").some((value) => value.trim().startsWith(\"sentry-\"));\n}\nfunction getFullURL(url) {\n  try {\n    const parsed = new URL(url, WINDOW.location.origin);\n    return parsed.href;\n  } catch {\n    return void 0;\n  }\n}\nfunction isPerformanceResourceTiming(entry) {\n  return entry.entryType === \"resource\" && \"initiatorType\" in entry && typeof entry.nextHopProtocol === \"string\" && (entry.initiatorType === \"fetch\" || entry.initiatorType === \"xmlhttprequest\");\n}\nfunction createHeadersSafely(headers) {\n  try {\n    return new Headers(headers);\n  } catch {\n    return void 0;\n  }\n}\n\nexport { baggageHeaderHasSentryValues, createHeadersSafely, getFullURL, isPerformanceResourceTiming };\n//# sourceMappingURL=utils.js.map\n","import { addFetchInstrumentationHandler, instrumentFetchRequest, parseUrl, stripDataUrlContent, spanToJSON, hasSpanStreamingEnabled, timestampInSeconds, hasSpansEnabled, setHttpStatus, stripUrlQueryAndFragment, getClient, getActiveSpan, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SentryNonRecordingSpan, spanIsIgnored, getLocationHref, stringMatchesSomePattern, getTraceData } from '@sentry/core/browser';\nimport { addXhrInstrumentationHandler, addPerformanceInstrumentationHandler, resourceTimingToSpanAttributes, SENTRY_XHR_DATA_KEY, parseXhrResponseHeaders } from '@sentry/browser-utils';\nimport { getFullURL, createHeadersSafely, isPerformanceResourceTiming, baggageHeaderHasSentryValues } from './utils.js';\nimport { URL_FULL, HTTP_URL } from '@sentry/conventions/attributes';\n\nconst defaultRequestInstrumentationOptions = {\n  traceFetch: true,\n  traceXHR: true,\n  enableHTTPTimings: true,\n  trackFetchStreamPerformance: false\n};\nfunction instrumentOutgoingRequests(client, _options) {\n  const {\n    traceFetch,\n    traceXHR,\n    shouldCreateSpanForRequest,\n    enableHTTPTimings,\n    tracePropagationTargets,\n    onRequestSpanStart,\n    onRequestSpanEnd\n  } = {\n    ...defaultRequestInstrumentationOptions,\n    ..._options\n  };\n  const shouldCreateSpan = typeof shouldCreateSpanForRequest === \"function\" ? shouldCreateSpanForRequest : (_) => true;\n  const shouldAttachHeadersWithTargets = (url) => shouldAttachHeaders(url, tracePropagationTargets);\n  const spans = {};\n  const propagateTraceparent = client.getOptions().propagateTraceparent;\n  if (traceFetch) {\n    addFetchInstrumentationHandler((handlerData) => {\n      const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans, {\n        propagateTraceparent,\n        onRequestSpanEnd\n      });\n      if (createdSpan) {\n        const fullUrl = getFullURL(handlerData.fetchData.url);\n        const host = fullUrl ? parseUrl(fullUrl).host : void 0;\n        const sanitizedFullUrl = fullUrl ? stripDataUrlContent(fullUrl) : void 0;\n        createdSpan.setAttributes({\n          // oxlint-disable-next-line typescript/no-deprecated\n          [HTTP_URL]: sanitizedFullUrl,\n          // `url.full` must match `http.url`. Setting it here ensures parentless `http.client`\n          // segment spans don't get `url.full` backfilled with the host page URL (see httpContextIntegration).\n          [URL_FULL]: sanitizedFullUrl,\n          \"server.address\": host\n        });\n        if (enableHTTPTimings) {\n          addHTTPTimings(createdSpan, client);\n        }\n        onRequestSpanStart?.(createdSpan, { headers: handlerData.headers });\n      }\n    });\n  }\n  if (traceXHR) {\n    addXhrInstrumentationHandler((handlerData) => {\n      const createdSpan = xhrCallback(\n        handlerData,\n        shouldCreateSpan,\n        shouldAttachHeadersWithTargets,\n        spans,\n        propagateTraceparent,\n        onRequestSpanEnd\n      );\n      if (createdSpan) {\n        if (enableHTTPTimings) {\n          addHTTPTimings(createdSpan, client);\n        }\n        onRequestSpanStart?.(createdSpan, {\n          headers: createHeadersSafely(handlerData.xhr.__sentry_xhr_v3__?.request_headers)\n        });\n      }\n    });\n  }\n}\nconst HTTP_TIMING_WAIT_MS = 300;\nfunction addHTTPTimings(span, client) {\n  const { url } = spanToJSON(span).data;\n  if (!url || typeof url !== \"string\") {\n    return;\n  }\n  let onEntryFound = () => void setTimeout(unsubscribePerformanceObsever);\n  if (hasSpanStreamingEnabled(client)) {\n    const originalEnd = span.end.bind(span);\n    span.end = (endTimestamp) => {\n      const capturedEndTimestamp = endTimestamp ?? timestampInSeconds();\n      let isEnded = false;\n      const endSpanAndCleanup = () => {\n        if (isEnded) {\n          return;\n        }\n        isEnded = true;\n        setTimeout(unsubscribePerformanceObsever);\n        originalEnd(capturedEndTimestamp);\n        clearTimeout(fallbackTimeout);\n      };\n      onEntryFound = endSpanAndCleanup;\n      const fallbackTimeout = setTimeout(endSpanAndCleanup, HTTP_TIMING_WAIT_MS);\n    };\n  }\n  const unsubscribePerformanceObsever = addPerformanceInstrumentationHandler(\"resource\", ({ entries }) => {\n    entries.forEach((entry) => {\n      if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n        span.setAttributes(resourceTimingToSpanAttributes(entry));\n        onEntryFound();\n      }\n    });\n  });\n}\nfunction shouldAttachHeaders(targetUrl, tracePropagationTargets) {\n  const href = getLocationHref();\n  if (!href) {\n    const isRelativeSameOriginRequest = !!targetUrl.match(/^\\/(?!\\/)/);\n    if (!tracePropagationTargets) {\n      return isRelativeSameOriginRequest;\n    } else {\n      return stringMatchesSomePattern(targetUrl, tracePropagationTargets);\n    }\n  } else {\n    let resolvedUrl;\n    let currentOrigin;\n    try {\n      resolvedUrl = new URL(targetUrl, href);\n      currentOrigin = new URL(href).origin;\n    } catch {\n      return false;\n    }\n    const isSameOriginRequest = resolvedUrl.origin === currentOrigin;\n    if (!tracePropagationTargets) {\n      return isSameOriginRequest;\n    } else {\n      return stringMatchesSomePattern(resolvedUrl.toString(), tracePropagationTargets) || isSameOriginRequest && stringMatchesSomePattern(resolvedUrl.pathname, tracePropagationTargets);\n    }\n  }\n}\nfunction xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeaders2, spans, propagateTraceparent, onRequestSpanEnd) {\n  const xhr = handlerData.xhr;\n  const sentryXhrData = xhr?.[SENTRY_XHR_DATA_KEY];\n  if (!xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n    return void 0;\n  }\n  const { url, method } = sentryXhrData;\n  const shouldCreateSpanResult = hasSpansEnabled() && shouldCreateSpan(url);\n  if (handlerData.endTimestamp) {\n    const spanId = xhr.__sentry_xhr_span_id__;\n    if (!spanId) return;\n    const span2 = spans[spanId];\n    if (span2) {\n      if (shouldCreateSpanResult && sentryXhrData.status_code !== void 0) {\n        setHttpStatus(span2, sentryXhrData.status_code);\n        span2.end();\n        onRequestSpanEnd?.(span2, {\n          headers: createHeadersSafely(parseXhrResponseHeaders(xhr)),\n          error: handlerData.error\n        });\n      }\n      delete spans[spanId];\n    }\n    return void 0;\n  }\n  const fullUrl = getFullURL(url);\n  const parsedUrl = fullUrl ? parseUrl(fullUrl) : parseUrl(url);\n  const sanitizedFullUrl = fullUrl ? stripDataUrlContent(fullUrl) : void 0;\n  const urlForSpanName = stripDataUrlContent(stripUrlQueryAndFragment(url));\n  const client = getClient();\n  const hasParent = !!getActiveSpan();\n  const shouldEmitSpan = hasParent || !!client && hasSpanStreamingEnabled(client);\n  const span = shouldCreateSpanResult && shouldEmitSpan ? startInactiveSpan({\n    name: `${method} ${urlForSpanName}`,\n    attributes: {\n      url: stripDataUrlContent(url),\n      type: \"xhr\",\n      \"http.method\": method,\n      \"http.url\": sanitizedFullUrl,\n      // `url.full` must match `http.url`. Setting it here ensures parentless `http.client`\n      // segment spans don't get `url.full` backfilled with the host page URL (see httpContextIntegration).\n      [URL_FULL]: sanitizedFullUrl,\n      \"server.address\": parsedUrl?.host,\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.browser\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.client\",\n      ...parsedUrl?.search && { \"http.query\": parsedUrl?.search },\n      ...parsedUrl?.hash && { \"http.fragment\": parsedUrl?.hash }\n    }\n  }) : new SentryNonRecordingSpan();\n  const spanForTraceHeaders = spanIsIgnored(span) && hasParent ? void 0 : span;\n  if (shouldCreateSpanResult && !shouldEmitSpan) {\n    client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n  }\n  xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n  spans[xhr.__sentry_xhr_span_id__] = span;\n  if (shouldAttachHeaders2(url)) {\n    addTracingHeadersToXhrRequest(\n      xhr,\n      // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n      // we do not want to use the span as base for the trace headers,\n      // which means that the headers will be generated from the scope and the sampling decision is deferred\n      hasSpansEnabled() && shouldEmitSpan ? spanForTraceHeaders : void 0,\n      propagateTraceparent\n    );\n  }\n  if (client) {\n    client.emit(\"beforeOutgoingRequestSpan\", span, handlerData);\n  }\n  return span;\n}\nfunction addTracingHeadersToXhrRequest(xhr, span, propagateTraceparent) {\n  const { \"sentry-trace\": sentryTrace, baggage, traceparent } = getTraceData({ span, propagateTraceparent });\n  if (sentryTrace) {\n    setHeaderOnXhr(xhr, sentryTrace, baggage, traceparent);\n  }\n}\nfunction setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader, traceparentHeader) {\n  const originalHeaders = xhr.__sentry_xhr_v3__?.request_headers;\n  if (originalHeaders?.[\"sentry-trace\"] || !xhr.setRequestHeader) {\n    return;\n  }\n  try {\n    xhr.setRequestHeader(\"sentry-trace\", sentryTraceHeader);\n    if (traceparentHeader && !originalHeaders?.[\"traceparent\"]) {\n      xhr.setRequestHeader(\"traceparent\", traceparentHeader);\n    }\n    if (sentryBaggageHeader) {\n      const originalBaggageHeader = originalHeaders?.[\"baggage\"];\n      if (!originalBaggageHeader || !baggageHeaderHasSentryValues(originalBaggageHeader)) {\n        xhr.setRequestHeader(\"baggage\", sentryBaggageHeader);\n      }\n    }\n  } catch {\n  }\n}\n\nexport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, shouldAttachHeaders };\n//# sourceMappingURL=request.js.map\n","import { defineIntegration, addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseStringToURLObject, stripDataUrlContent, getSanitizedUrlStringFromUrlObject, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\n\nconst responseToStreamSpan = /* @__PURE__ */ new WeakMap();\nconst responseToFallbackTimeout = /* @__PURE__ */ new WeakMap();\nconst STREAM_RESOLVE_FALLBACK_MS = 9e4;\nconst STREAMING_CONTENT_TYPES = [\"text/event-stream\", \"application/x-ndjson\", \"application/stream+json\"];\nconst fetchStreamPerformanceIntegration = defineIntegration(() => {\n  return {\n    name: \"FetchStreamPerformance\",\n    setup() {\n      addFetchEndInstrumentationHandler((handlerData) => {\n        if (handlerData.response) {\n          const streamSpan = responseToStreamSpan.get(handlerData.response);\n          if (streamSpan && handlerData.endTimestamp) {\n            streamSpan.end(handlerData.endTimestamp);\n            const fallbackTimeout = responseToFallbackTimeout.get(handlerData.response);\n            if (fallbackTimeout) {\n              clearTimeout(fallbackTimeout);\n            }\n          }\n        }\n      });\n      addFetchInstrumentationHandler((handlerData) => {\n        if (handlerData.endTimestamp && handlerData.response) {\n          const contentType = handlerData.response.headers?.get(\"content-type\") || \"\";\n          if (handlerData.response.headers?.get(\"content-length\") || !STREAMING_CONTENT_TYPES.some((t) => contentType.startsWith(t))) {\n            return;\n          }\n          const url = handlerData.fetchData?.url || \"\";\n          const method = handlerData.fetchData?.method || \"GET\";\n          const parsedUrl = parseStringToURLObject(url);\n          const sanitizedUrl = url.startsWith(\"data:\") ? stripDataUrlContent(url) : parsedUrl ? getSanitizedUrlStringFromUrlObject(parsedUrl) : url;\n          const streamSpan = startInactiveSpan({\n            name: `${method} ${sanitizedUrl}`,\n            startTime: handlerData.endTimestamp,\n            attributes: {\n              url: stripDataUrlContent(url),\n              \"http.method\": method,\n              type: \"fetch\",\n              [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.client.stream\",\n              [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.browser.stream\"\n            }\n          });\n          responseToStreamSpan.set(handlerData.response, streamSpan);\n          const fallbackTimeout = setTimeout(() => {\n            if (streamSpan.isRecording()) {\n              streamSpan.end();\n            }\n          }, STREAM_RESOLVE_FALLBACK_MS);\n          responseToFallbackTimeout.set(handlerData.response, fallbackTimeout);\n        }\n      });\n    }\n  };\n});\n\nexport { fetchStreamPerformanceIntegration };\n//# sourceMappingURL=fetchStreamPerformance.js.map\n","import { defineIntegration, hasSpanStreamingEnabled } from '@sentry/core/browser';\nimport { registerInpInteractionListener, startTrackingWebVitals, addWebVitalsToSpan, trackLcpAsSpan, trackClsAsSpan, trackInpAsSpan, startTrackingINP } from '@sentry/browser-utils';\n\nconst WEB_VITALS_INTEGRATION_NAME = \"WebVitals\";\nconst webVitalsIntegration = defineIntegration((options = {}) => {\n  const ignored = new Set(options.ignore ?? []);\n  return {\n    name: WEB_VITALS_INTEGRATION_NAME,\n    setup(client) {\n      const spanStreamingEnabled = hasSpanStreamingEnabled(client);\n      const { enableStandaloneClsSpans, enableStandaloneLcpSpans } = options._experiments ?? {};\n      const recordClsStandaloneSpans = spanStreamingEnabled || ignored.has(\"cls\") ? void 0 : enableStandaloneClsSpans || false;\n      const recordLcpStandaloneSpans = spanStreamingEnabled || ignored.has(\"lcp\") ? void 0 : enableStandaloneLcpSpans || false;\n      const finalizeWebVitals = startTrackingWebVitals({\n        recordClsStandaloneSpans,\n        recordLcpStandaloneSpans,\n        client\n      });\n      const pageloadSpans = /* @__PURE__ */ new WeakSet();\n      client.on(\"afterStartPageLoadSpan\", (span) => {\n        pageloadSpans.add(span);\n      });\n      client.on(\"spanEnd\", (span) => {\n        if (!pageloadSpans.delete(span)) {\n          return;\n        }\n        finalizeWebVitals();\n        addWebVitalsToSpan(span, {\n          // CLS/LCP are recorded as pageload span measurements only when they're neither\n          // tracked as standalone spans nor handled by span streaming (and not ignored).\n          recordClsOnPageloadSpan: recordClsStandaloneSpans === false,\n          recordLcpOnPageloadSpan: recordLcpStandaloneSpans === false,\n          spanStreamingEnabled\n        });\n      });\n      if (spanStreamingEnabled) {\n        if (!ignored.has(\"lcp\")) {\n          trackLcpAsSpan(client);\n        }\n        if (!ignored.has(\"cls\")) {\n          trackClsAsSpan(client);\n        }\n        if (!ignored.has(\"inp\")) {\n          trackInpAsSpan();\n        }\n      } else if (!ignored.has(\"inp\")) {\n        startTrackingINP();\n      }\n    },\n    afterAllSetup() {\n      if (!ignored.has(\"inp\")) {\n        registerInpInteractionListener();\n      }\n    }\n  };\n});\n\nexport { WEB_VITALS_INTEGRATION_NAME, webVitalsIntegration };\n//# sourceMappingURL=webVitals.js.map\n","import { getActiveSpan, getRootSpan, spanToJSON, debug, SPAN_STATUS_ERROR } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\nfunction registerBackgroundTabDetection() {\n  if (WINDOW.document) {\n    WINDOW.document.addEventListener(\"visibilitychange\", () => {\n      const activeSpan = getActiveSpan();\n      if (!activeSpan) {\n        return;\n      }\n      const rootSpan = getRootSpan(activeSpan);\n      if (WINDOW.document.hidden && rootSpan) {\n        const cancelledStatus = \"cancelled\";\n        const { op, status } = spanToJSON(rootSpan);\n        if (DEBUG_BUILD) {\n          debug.log(`[Tracing] Transaction: ${cancelledStatus} -> since tab moved to the background, op: ${op}`);\n        }\n        if (!status) {\n          rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message: cancelledStatus });\n        }\n        rootSpan.setAttribute(\"sentry.cancellation_reason\", \"document.hidden\");\n        rootSpan.end();\n      }\n    });\n  } else {\n    DEBUG_BUILD && debug.warn(\"[Tracing] Could not set up background tab detection due to lack of global document\");\n  }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","import { getRootSpan, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, spanToJSON, debug, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\nimport '@sentry/browser-utils';\nimport '../stack-parsers.js';\nimport '../integrations/breadcrumbs.js';\nimport '../integrations/browserapierrors.js';\nimport '../integrations/browsersession.js';\nimport '../integrations/culturecontext.js';\nimport '../integrations/globalhandlers.js';\nimport '../integrations/httpcontext.js';\nimport '../integrations/linkederrors.js';\n\nconst PREVIOUS_TRACE_MAX_DURATION = 3600;\nconst PREVIOUS_TRACE_KEY = \"sentry_previous_trace\";\nconst PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE = \"sentry.previous_trace\";\nfunction linkTraces(client, {\n  linkPreviousTrace,\n  consistentTraceSampling\n}) {\n  const useSessionStorage = linkPreviousTrace === \"session-storage\";\n  let inMemoryPreviousTraceInfo = useSessionStorage ? getPreviousTraceFromSessionStorage() : void 0;\n  client.on(\"spanStart\", (span) => {\n    if (getRootSpan(span) !== span) {\n      return;\n    }\n    const oldPropagationContext = getCurrentScope().getPropagationContext();\n    inMemoryPreviousTraceInfo = addPreviousTraceSpanLink(inMemoryPreviousTraceInfo, span, oldPropagationContext);\n    if (useSessionStorage) {\n      storePreviousTraceInSessionStorage(inMemoryPreviousTraceInfo);\n    }\n  });\n  let isFirstTraceOnPageload = true;\n  if (consistentTraceSampling) {\n    client.on(\"beforeSampling\", (mutableSamplingContextData) => {\n      if (!inMemoryPreviousTraceInfo) {\n        return;\n      }\n      const scope = getCurrentScope();\n      const currentPropagationContext = scope.getPropagationContext();\n      if (isFirstTraceOnPageload && currentPropagationContext.parentSpanId) {\n        isFirstTraceOnPageload = false;\n        return;\n      }\n      scope.setPropagationContext({\n        ...currentPropagationContext,\n        dsc: {\n          ...currentPropagationContext.dsc,\n          sample_rate: String(inMemoryPreviousTraceInfo.sampleRate),\n          sampled: String(spanContextSampled(inMemoryPreviousTraceInfo.spanContext))\n        },\n        sampleRand: inMemoryPreviousTraceInfo.sampleRand\n      });\n      mutableSamplingContextData.parentSampled = spanContextSampled(inMemoryPreviousTraceInfo.spanContext);\n      mutableSamplingContextData.parentSampleRate = inMemoryPreviousTraceInfo.sampleRate;\n      mutableSamplingContextData.spanAttributes = {\n        ...mutableSamplingContextData.spanAttributes,\n        [SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE]: inMemoryPreviousTraceInfo.sampleRate\n      };\n    });\n  }\n}\nfunction addPreviousTraceSpanLink(previousTraceInfo, span, oldPropagationContext) {\n  const spanJson = spanToJSON(span);\n  function getSampleRate() {\n    try {\n      const oldSampleRate = Number(\n        spanJson.data?.[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ?? oldPropagationContext.dsc?.sample_rate\n      );\n      return Number.isNaN(oldSampleRate) ? 0 : oldSampleRate;\n    } catch {\n      return 0;\n    }\n  }\n  const updatedPreviousTraceInfo = {\n    spanContext: span.spanContext(),\n    startTimestamp: spanJson.start_timestamp,\n    sampleRate: getSampleRate(),\n    sampleRand: oldPropagationContext.sampleRand\n  };\n  if (!previousTraceInfo) {\n    return updatedPreviousTraceInfo;\n  }\n  const previousTraceSpanCtx = previousTraceInfo.spanContext;\n  if (previousTraceSpanCtx.traceId === spanJson.trace_id) {\n    return previousTraceInfo;\n  }\n  if (Date.now() / 1e3 - previousTraceInfo.startTimestamp <= PREVIOUS_TRACE_MAX_DURATION) {\n    if (DEBUG_BUILD) {\n      debug.log(\n        `Adding previous_trace \\`${JSON.stringify(previousTraceSpanCtx)}\\` link to span \\`${JSON.stringify({\n          op: spanJson.op,\n          ...span.spanContext()\n        })}\\``\n      );\n    }\n    span.addLink({\n      context: previousTraceSpanCtx,\n      attributes: {\n        [SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE]: \"previous_trace\"\n      }\n    });\n    span.setAttribute(\n      PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE,\n      `${previousTraceSpanCtx.traceId}-${previousTraceSpanCtx.spanId}-${spanContextSampled(previousTraceSpanCtx) ? 1 : 0}`\n    );\n  }\n  return updatedPreviousTraceInfo;\n}\nfunction storePreviousTraceInSessionStorage(previousTraceInfo) {\n  try {\n    WINDOW.sessionStorage.setItem(PREVIOUS_TRACE_KEY, JSON.stringify(previousTraceInfo));\n  } catch (e) {\n    DEBUG_BUILD && debug.warn(\"Could not store previous trace in sessionStorage\", e);\n  }\n}\nfunction getPreviousTraceFromSessionStorage() {\n  try {\n    const previousTraceInfo = WINDOW.sessionStorage?.getItem(PREVIOUS_TRACE_KEY);\n    return JSON.parse(previousTraceInfo);\n  } catch {\n    return void 0;\n  }\n}\nfunction spanContextSampled(ctx) {\n  return ctx.traceFlags === 1;\n}\n\nexport { PREVIOUS_TRACE_KEY, PREVIOUS_TRACE_MAX_DURATION, PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE, addPreviousTraceSpanLink, getPreviousTraceFromSessionStorage, linkTraces, spanContextSampled, storePreviousTraceInSessionStorage };\n//# sourceMappingURL=linkedTraces.js.map\n","import { TRACING_DEFAULTS, consoleSandbox, getLocationHref, browserPerformanceTimeOrigin, parseStringToURLObject, debug, registerSpanErrorInstrumentation, GLOBAL_OBJ, getClient, getIsolationScope, hasSpansEnabled, generateSpanId, generateTraceId, getCurrentScope, propagationContextFromHeaders, spanToJSON, dateTimestampInSeconds, timestampInSeconds, isURLObjectRelative, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, startIdleSpan, hasSpanStreamingEnabled, getDynamicSamplingContextFromSpan, spanIsSampled, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, addNonEnumerableProperty, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core/browser';\nimport { addHistoryInstrumentationHandler, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingInteractions, addPerformanceEntries } from '@sentry/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW, getHttpRequestData } from '../helpers.js';\nimport { fetchStreamPerformanceIntegration } from '../integrations/fetchStreamPerformance.js';\nimport { WEB_VITALS_INTEGRATION_NAME, webVitalsIntegration } from '../integrations/webVitals.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { linkTraces } from './linkedTraces.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\nimport { URL_FULL, URL_PATH } from '@sentry/conventions/attributes';\n\nconst BROWSER_TRACING_INTEGRATION_ID = \"BrowserTracing\";\nconst BOT_USER_AGENT_RE = /Googlebot|Google-InspectionTool|Storebot-Google|Bingbot|Slurp|DuckDuckBot|Baiduspider|YandexBot|Facebot|facebookexternalhit|LinkedInBot|Twitterbot|Applebot/i;\nfunction isBotUserAgent() {\n  const nav = WINDOW.navigator;\n  if (!nav?.userAgent) {\n    return false;\n  }\n  return BOT_USER_AGENT_RE.test(nav.userAgent);\n}\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n  ...TRACING_DEFAULTS,\n  instrumentNavigation: true,\n  instrumentPageLoad: true,\n  markBackgroundSpan: true,\n  enableLongTask: true,\n  enableLongAnimationFrame: true,\n  enableInp: true,\n  ignoreResourceSpans: [],\n  ignorePerformanceApiSpans: [],\n  detectRedirects: true,\n  linkPreviousTrace: \"in-memory\",\n  consistentTraceSampling: false,\n  enableReportPageLoaded: false,\n  _experiments: {},\n  ...defaultRequestInstrumentationOptions\n};\nconst browserTracingIntegration = ((options = {}) => {\n  if (\"enableElementTiming\" in options) {\n    consoleSandbox(() => {\n      console.warn(\n        \"[Sentry] `enableElementTiming` is deprecated and no longer has any effect. Use the standalone `elementTimingIntegration` instead.\"\n      );\n    });\n  }\n  const latestRoute = {\n    name: void 0,\n    source: void 0\n  };\n  const optionalWindowDocument = WINDOW.document;\n  const {\n    enableInp,\n    enableLongTask,\n    enableLongAnimationFrame,\n    _experiments: { enableInteractions, enableStandaloneClsSpans, enableStandaloneLcpSpans },\n    beforeStartSpan,\n    idleTimeout,\n    finalTimeout,\n    childSpanTimeout,\n    markBackgroundSpan,\n    traceFetch,\n    traceXHR,\n    // eslint-disable-next-line typescript/no-deprecated\n    trackFetchStreamPerformance,\n    shouldCreateSpanForRequest,\n    enableHTTPTimings,\n    ignoreResourceSpans,\n    ignorePerformanceApiSpans,\n    instrumentPageLoad,\n    instrumentNavigation,\n    detectRedirects,\n    linkPreviousTrace,\n    consistentTraceSampling,\n    enableReportPageLoaded,\n    onRequestSpanStart,\n    onRequestSpanEnd\n  } = {\n    ...DEFAULT_BROWSER_TRACING_OPTIONS,\n    ...options\n  };\n  const _isBot = isBotUserAgent();\n  let lastInteractionTimestamp;\n  let _pageloadSpan;\n  function _createRouteSpan(client, startSpanOptions, makeActive = true, url) {\n    const isPageloadSpan = startSpanOptions.op === \"pageload\";\n    const initialSpanName = startSpanOptions.name;\n    const finalStartSpanOptions = beforeStartSpan ? beforeStartSpan(startSpanOptions) : startSpanOptions;\n    const urlObject = parseStringToURLObject(url || getLocationHref());\n    const attributes = {\n      ...urlObject?.pathname && { [URL_PATH]: urlObject.pathname },\n      ...urlObject && !isURLObjectRelative(urlObject) && { [URL_FULL]: urlObject.href },\n      ...finalStartSpanOptions.attributes\n    };\n    if (initialSpanName !== finalStartSpanOptions.name) {\n      attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"custom\";\n    }\n    finalStartSpanOptions.attributes = attributes;\n    if (!makeActive) {\n      const now = dateTimestampInSeconds();\n      startInactiveSpan({\n        ...finalStartSpanOptions,\n        startTime: now\n      }).end(now);\n      return;\n    }\n    latestRoute.name = finalStartSpanOptions.name;\n    latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n    const idleSpan = startIdleSpan(finalStartSpanOptions, {\n      idleTimeout,\n      finalTimeout,\n      childSpanTimeout,\n      // should wait for finish signal if it's a pageload transaction\n      disableAutoFinish: isPageloadSpan,\n      beforeSpanEnd: (span) => {\n        addPerformanceEntries(span, {\n          ignoreResourceSpans,\n          ignorePerformanceApiSpans,\n          spanStreamingEnabled: hasSpanStreamingEnabled(client)\n        });\n        setActiveIdleSpan(client, void 0);\n        const scope = getCurrentScope();\n        const oldPropagationContext = scope.getPropagationContext();\n        scope.setPropagationContext({\n          ...oldPropagationContext,\n          traceId: idleSpan.spanContext().traceId,\n          sampled: spanIsSampled(idleSpan),\n          dsc: getDynamicSamplingContextFromSpan(span)\n        });\n        if (isPageloadSpan) {\n          _pageloadSpan = void 0;\n        }\n      },\n      trimIdleSpanEndTimestamp: !enableReportPageLoaded\n    });\n    if (isPageloadSpan && enableReportPageLoaded) {\n      _pageloadSpan = idleSpan;\n    }\n    setActiveIdleSpan(client, idleSpan);\n    function emitFinish() {\n      if (optionalWindowDocument && [\"interactive\", \"complete\"].includes(optionalWindowDocument.readyState)) {\n        client.emit(\"idleSpanEnableAutoFinish\", idleSpan);\n        optionalWindowDocument.removeEventListener(\"readystatechange\", emitFinish);\n      }\n    }\n    if (isPageloadSpan && !enableReportPageLoaded && optionalWindowDocument) {\n      optionalWindowDocument.addEventListener(\"readystatechange\", emitFinish);\n      emitFinish();\n    }\n  }\n  return {\n    name: BROWSER_TRACING_INTEGRATION_ID,\n    setup(client) {\n      if (_isBot) {\n        DEBUG_BUILD && debug.log(\"[Tracing] Skipping browserTracingIntegration setup for bot user agent.\");\n        return;\n      }\n      registerSpanErrorInstrumentation();\n      if (enableLongAnimationFrame && GLOBAL_OBJ.PerformanceObserver && PerformanceObserver.supportedEntryTypes?.includes(\"long-animation-frame\")) {\n        startTrackingLongAnimationFrames();\n      } else if (enableLongTask) {\n        startTrackingLongTasks();\n      }\n      if (enableInteractions) {\n        startTrackingInteractions();\n      }\n      if (detectRedirects && optionalWindowDocument) {\n        const interactionHandler = () => {\n          lastInteractionTimestamp = timestampInSeconds();\n        };\n        addEventListener(\"click\", interactionHandler, { capture: true });\n        addEventListener(\"keydown\", interactionHandler, { capture: true, passive: true });\n      }\n      function maybeEndActiveSpan() {\n        const activeSpan = getActiveIdleSpan(client);\n        if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n          DEBUG_BUILD && debug.log(`[Tracing] Finishing current active span with op: ${spanToJSON(activeSpan).op}`);\n          activeSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, \"cancelled\");\n          activeSpan.end();\n        }\n      }\n      client.on(\"startNavigationSpan\", (startSpanOptions, navigationOptions) => {\n        if (getClient() !== client) {\n          return;\n        }\n        if (navigationOptions?.isRedirect) {\n          DEBUG_BUILD && debug.warn(\"[Tracing] Detected redirect, navigation span will not be the root span, but a child span.\");\n          _createRouteSpan(\n            client,\n            {\n              op: \"navigation.redirect\",\n              ...startSpanOptions\n            },\n            false,\n            navigationOptions.url\n          );\n          return;\n        }\n        lastInteractionTimestamp = void 0;\n        maybeEndActiveSpan();\n        getIsolationScope().setPropagationContext({\n          traceId: generateTraceId(),\n          sampleRand: Math.random(),\n          propagationSpanId: hasSpansEnabled() ? void 0 : generateSpanId()\n        });\n        const scope = getCurrentScope();\n        scope.setPropagationContext({\n          traceId: generateTraceId(),\n          sampleRand: Math.random(),\n          propagationSpanId: hasSpansEnabled() ? void 0 : generateSpanId()\n        });\n        scope.setSDKProcessingMetadata({\n          normalizedRequest: void 0\n        });\n        _createRouteSpan(\n          client,\n          {\n            op: \"navigation\",\n            ...startSpanOptions,\n            // Navigation starts a new trace and is NOT parented under any active interaction (e.g. ui.action.click)\n            parentSpan: null,\n            forceTransaction: true\n          },\n          true,\n          navigationOptions?.url\n        );\n      });\n      client.on(\"startPageLoadSpan\", (startSpanOptions, traceOptions = {}) => {\n        if (getClient() !== client) {\n          return;\n        }\n        maybeEndActiveSpan();\n        const sentryTrace = traceOptions.sentryTrace || getMetaContent(\"sentry-trace\") || getServerTiming(\"sentry-trace\");\n        const baggage = traceOptions.baggage || getMetaContent(\"baggage\") || getServerTiming(\"baggage\");\n        const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n        const scope = getCurrentScope();\n        scope.setPropagationContext(propagationContext);\n        if (!hasSpansEnabled()) {\n          scope.getPropagationContext().propagationSpanId = generateSpanId();\n        }\n        scope.setSDKProcessingMetadata({\n          normalizedRequest: getHttpRequestData()\n        });\n        _createRouteSpan(client, {\n          op: \"pageload\",\n          ...startSpanOptions\n        });\n      });\n      client.on(\"endPageloadSpan\", () => {\n        if (enableReportPageLoaded && _pageloadSpan) {\n          _pageloadSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, \"reportPageLoaded\");\n          _pageloadSpan.end();\n        }\n      });\n    },\n    afterAllSetup(client) {\n      if (_isBot) {\n        return;\n      }\n      if (client.addIntegration && !client.getIntegrationByName?.(WEB_VITALS_INTEGRATION_NAME)) {\n        client.addIntegration(\n          webVitalsIntegration({\n            ignore: enableInp ? [] : [\"inp\"],\n            _experiments: {\n              enableStandaloneClsSpans,\n              enableStandaloneLcpSpans\n            }\n          })\n        );\n      }\n      let startingUrl = getLocationHref();\n      if (linkPreviousTrace !== \"off\") {\n        linkTraces(client, { linkPreviousTrace, consistentTraceSampling });\n      }\n      if (WINDOW.location) {\n        if (instrumentPageLoad) {\n          const origin = browserPerformanceTimeOrigin();\n          startBrowserTracingPageLoadSpan(client, {\n            name: WINDOW.location.pathname,\n            // pageload should always start at timeOrigin (and needs to be in s, not ms)\n            startTime: origin ? origin / 1e3 : void 0,\n            attributes: {\n              [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\",\n              [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.pageload.browser\"\n            }\n          });\n        }\n        if (instrumentNavigation) {\n          addHistoryInstrumentationHandler(({ to, from }) => {\n            if (from === void 0 && startingUrl?.indexOf(to) !== -1) {\n              startingUrl = void 0;\n              return;\n            }\n            startingUrl = void 0;\n            const parsed = parseStringToURLObject(to);\n            const activeSpan = getActiveIdleSpan(client);\n            const navigationIsRedirect = activeSpan && detectRedirects && isRedirect(activeSpan, lastInteractionTimestamp);\n            startBrowserTracingNavigationSpan(\n              client,\n              {\n                name: parsed?.pathname || WINDOW.location.pathname,\n                attributes: {\n                  [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\",\n                  [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.navigation.browser\"\n                }\n              },\n              { url: to, isRedirect: navigationIsRedirect }\n            );\n          });\n        }\n      }\n      if (markBackgroundSpan) {\n        registerBackgroundTabDetection();\n      }\n      if (enableInteractions) {\n        registerInteractionListener(client, idleTimeout, finalTimeout, childSpanTimeout, latestRoute);\n      }\n      instrumentOutgoingRequests(client, {\n        traceFetch,\n        traceXHR,\n        tracePropagationTargets: client.getOptions().tracePropagationTargets,\n        shouldCreateSpanForRequest,\n        enableHTTPTimings,\n        onRequestSpanStart,\n        onRequestSpanEnd\n      });\n      if (trackFetchStreamPerformance) {\n        client.addIntegration(fetchStreamPerformanceIntegration());\n      }\n    }\n  };\n});\nfunction startBrowserTracingPageLoadSpan(client, spanOptions, traceOptions) {\n  client.emit(\"startPageLoadSpan\", spanOptions, traceOptions);\n  getCurrentScope().setTransactionName(spanOptions.name);\n  const pageloadSpan = getActiveIdleSpan(client);\n  if (pageloadSpan) {\n    client.emit(\"afterStartPageLoadSpan\", pageloadSpan);\n  }\n  return pageloadSpan;\n}\nfunction startBrowserTracingNavigationSpan(client, spanOptions, options) {\n  const { url, isRedirect: isRedirect2 } = options || {};\n  client.emit(\"beforeStartNavigationSpan\", spanOptions, { isRedirect: isRedirect2, url });\n  client.emit(\"startNavigationSpan\", spanOptions, { isRedirect: isRedirect2, url });\n  const scope = getCurrentScope();\n  scope.setTransactionName(spanOptions.name);\n  if (url && !isRedirect2) {\n    scope.setSDKProcessingMetadata({\n      normalizedRequest: {\n        ...getHttpRequestData(),\n        url\n      }\n    });\n  }\n  return getActiveIdleSpan(client);\n}\nfunction getMetaContent(metaName) {\n  const optionalWindowDocument = WINDOW.document;\n  const metaTag = optionalWindowDocument?.querySelector(`meta[name=${metaName}]`);\n  return metaTag?.getAttribute(\"content\") || void 0;\n}\nfunction getServerTiming(name) {\n  const navigation = WINDOW.performance?.getEntriesByType?.(\"navigation\")[0];\n  const entry = navigation?.serverTiming?.find((entry2) => entry2.name === name);\n  return entry?.description;\n}\nfunction registerInteractionListener(client, idleTimeout, finalTimeout, childSpanTimeout, latestRoute) {\n  const optionalWindowDocument = WINDOW.document;\n  let inflightInteractionSpan;\n  const registerInteractionTransaction = () => {\n    const op = \"ui.action.click\";\n    const activeIdleSpan = getActiveIdleSpan(client);\n    if (activeIdleSpan) {\n      const currentRootSpanOp = spanToJSON(activeIdleSpan).op;\n      if ([\"navigation\", \"pageload\"].includes(currentRootSpanOp)) {\n        DEBUG_BUILD && debug.warn(`[Tracing] Did not create ${op} span because a pageload or navigation span is in progress.`);\n        return void 0;\n      }\n    }\n    if (inflightInteractionSpan) {\n      inflightInteractionSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, \"interactionInterrupted\");\n      inflightInteractionSpan.end();\n      inflightInteractionSpan = void 0;\n    }\n    if (!latestRoute.name) {\n      DEBUG_BUILD && debug.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n      return void 0;\n    }\n    inflightInteractionSpan = startIdleSpan(\n      {\n        name: latestRoute.name,\n        op,\n        attributes: {\n          [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRoute.source || \"url\"\n        }\n      },\n      {\n        idleTimeout,\n        finalTimeout,\n        childSpanTimeout\n      }\n    );\n  };\n  if (optionalWindowDocument) {\n    addEventListener(\"click\", registerInteractionTransaction, { capture: true });\n  }\n}\nconst ACTIVE_IDLE_SPAN_PROPERTY = \"_sentry_idleSpan\";\nfunction getActiveIdleSpan(client) {\n  return client[ACTIVE_IDLE_SPAN_PROPERTY];\n}\nfunction setActiveIdleSpan(client, span) {\n  addNonEnumerableProperty(client, ACTIVE_IDLE_SPAN_PROPERTY, span);\n}\nconst REDIRECT_THRESHOLD = 1.5;\nfunction isRedirect(activeSpan, lastInteractionTimestamp) {\n  const spanData = spanToJSON(activeSpan);\n  const now = dateTimestampInSeconds();\n  const startTimestamp = spanData.start_timestamp;\n  if (now - startTimestamp > REDIRECT_THRESHOLD) {\n    return false;\n  }\n  if (lastInteractionTimestamp && now - lastInteractionTimestamp <= REDIRECT_THRESHOLD) {\n    return false;\n  }\n  return true;\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, browserTracingIntegration, getMetaContent, getServerTiming, isBotUserAgent, startBrowserTracingNavigationSpan, startBrowserTracingPageLoadSpan };\n//# sourceMappingURL=browserTracingIntegration.js.map\n","import { init as init$1 } from '@sentry/browser';\nimport { applySdkMetadata } from '@sentry/core';\n\nfunction init(options) {\n  const opts = {\n    ...options\n  };\n  applySdkMetadata(opts, \"svelte\");\n  return init$1(opts);\n}\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","import * as Sentry from \"@sentry/svelte\"\n\nexport type SentryOptions = {\n  projectId?: number | string | null\n  host?: string\n  publicKey?: string\n  dsn?: string\n  environment?: string\n  release?: string\n  tracesSampleRate?: number\n  replaysSessionSampleRate?: number\n  replaysOnErrorSampleRate?: number\n  tracePropagationTargets?: Array<string | RegExp>\n  /** Allow sending events from local/dev builds (disabled by default) */\n  enableLocal?: boolean\n}\n\nexport type SentryRouteContext = {\n  path?: string | null\n  search?: string | null\n  viewId?: string | null\n  orgSlug?: string | null\n  projectSlug?: string | null\n  realizationSlug?: string | null\n}\n\ntype RawUserContext = {\n  id?: string | number | null\n  email?: string | null\n  username?: string | null\n  ip_address?: string | null\n  organizationId?: string | null\n  organization_id?: string | null\n  role?: string | null\n  projectIds?: Array<string | number> | null\n  project_ids?: Array<string | number> | null\n  permissions?: Array<string> | null\n  tags?: Record<string, string | null | undefined>\n  extras?: Record<string, unknown>\n}\n\nexport type SentryUserContextInput =\n  | RawUserContext\n  | {\n      user?: RawUserContext | null\n      tags?: Record<string, string | null | undefined>\n      extras?: Record<string, unknown>\n    }\n  | null\n  | undefined\n\ntype NormalizedUserContext = {\n  id: string | null\n  email: string | null\n  username: string | null\n  organizationId: string | null\n  role: string | null\n  projectIds: string[]\n  permissions: string[]\n  tags: Record<string, string | null | undefined>\n  extras: Record<string, unknown>\n  ipAddress: string | null\n}\n\nconst DEFAULT_GATEWAY_HOST = \"sentry.kontextwerk.agency\"\nconst DEFAULT_PUBLIC_KEY = \"public\"\nconst DEVELOPMENT_DOMAIN = \"kontextwerk.org\"\n\nlet initialized = false\nlet activeProject: string | null = null\nlet lastRouteSignature: string | null = null\n\nconst getEnvValue = (key: string): string | undefined => {\n  try {\n    const processEnv = (globalThis as { process?: { env?: Record<string, string | undefined> } })\n      .process?.env\n\n    if (typeof processEnv !== \"undefined\") {\n      const value = processEnv[key]\n\n      if (typeof value !== \"undefined\") {\n        return String(value)\n      }\n    }\n  } catch {\n    // ignore\n  }\n\n  try {\n    const metaEnv = (import.meta as any)?.env\n\n    if (metaEnv && typeof metaEnv === \"object\" && key in metaEnv) {\n      const value = metaEnv[key]\n\n      if (typeof value !== \"undefined\") {\n        return String(value)\n      }\n    }\n  } catch {\n    // ignore\n  }\n\n  return undefined\n}\n\nconst env = (...keys: string[]): string | undefined => {\n  for (const key of keys) {\n    const value = getEnvValue(key)\n\n    if (value !== undefined && value !== \"\") return value\n  }\n\n  return undefined\n}\n\nconst envFlag = (keys: string[], fallback = false): boolean => {\n  for (const key of keys) {\n    const raw = getEnvValue(key)\n\n    if (raw === undefined) continue\n\n    const normalized = String(raw).trim().toLowerCase()\n\n    if ([\"1\", \"true\", \"yes\", \"on\"].includes(normalized)) return true\n\n    if ([\"0\", \"false\", \"no\", \"off\"].includes(normalized)) return false\n  }\n\n  return fallback\n}\n\nconst detectHostname = (): string | null => {\n  if (typeof window === \"undefined\") return null\n\n  try {\n    return window.location.hostname || null\n  } catch {\n    return null\n  }\n}\n\nconst isLocalHostname = (host: string | null | undefined): boolean => {\n  if (!host) return false\n\n  const value = host.toLowerCase()\n\n  return (\n    value === \"localhost\" ||\n    value.endsWith(\".localhost\") ||\n    value === \"127.0.0.1\" ||\n    value.startsWith(\"127.\") ||\n    value === \"::1\" ||\n    value === \"[::1]\" ||\n    value === \"0.0.0.0\"\n  )\n}\n\nconst isDevelopmentDomainHostname = (host: string | null | undefined): boolean => {\n  if (!host) return false\n\n  const value = host.toLowerCase()\n\n  return value === DEVELOPMENT_DOMAIN || value.endsWith(`.${DEVELOPMENT_DOMAIN}`)\n}\n\nconst resolveEnvironment = (provided?: string): string | undefined => {\n  const fromEnv =\n    provided ??\n    env(\"SENTRY_ENVIRONMENT\", \"KW_SENTRY_ENV\", \"CONTROL_SENTRY_ENV\", \"ENV\", \"APP_ENV\", \"NODE_ENV\")\n\n  if (fromEnv) return fromEnv\n\n  const host = detectHostname()\n\n  if (!host) return undefined\n\n  if (isLocalHostname(host)) return \"Local\"\n\n  if (host.includes(\"dev\")) return \"Development\"\n\n  return \"Production\"\n}\n\nconst resolveRelease = (provided?: string): string | undefined => {\n  const release =\n    provided ??\n    env(\n      \"SENTRY_RELEASE\",\n      \"KW_SENTRY_RELEASE\",\n      \"CONTROL_SENTRY_RELEASE\",\n      \"APP_RELEASE\",\n      \"CI_COMMIT_TAG\",\n      \"CI_COMMIT_SHA\",\n    )\n\n  return release ? String(release) : undefined\n}\n\nconst resolveGatewayHost = (provided?: string): string => {\n  return (\n    provided ??\n    env(\"SENTRY_GATEWAY_HOST\", \"KW_SENTRY_GATEWAY_HOST\", \"CONTROL_SENTRY_GATEWAY_HOST\") ??\n    DEFAULT_GATEWAY_HOST\n  )\n}\n\nconst resolveGatewayKey = (provided?: string): string => {\n  return (\n    provided ??\n    env(\"SENTRY_PUBLIC_KEY\", \"KW_SENTRY_PUBLIC_KEY\", \"SENTRY_GATEWAY_PUBLIC_KEY\") ??\n    DEFAULT_PUBLIC_KEY\n  )\n}\n\nconst shouldBlockLocalSend = (options: SentryOptions, environment?: string): boolean => {\n  const host = detectHostname()\n\n  if (isDevelopmentDomainHostname(host)) return true\n\n  const allowLocal =\n    options.enableLocal ??\n    envFlag([\"SENTRY_ENABLE_LOCAL\", \"KW_SENTRY_ENABLE_LOCAL\", \"CONTROL_SENTRY_ENABLE_LOCAL\"], false)\n\n  if (allowLocal) return false\n\n  const envValue = (environment ?? \"\").trim().toLowerCase()\n  const isLocalEnv = envValue === \"local\"\n  const devFlag = envFlag([\"DEV\", \"VITE_DEV\"], false)\n\n  return isLocalHostname(host) || isLocalEnv || devFlag\n}\n\nconst applyMetaTags = (environment?: string, release?: string) => {\n  if (!initialized) return\n\n  if (environment) {\n    Sentry.setTag(\"app_environment\", environment)\n  }\n\n  if (release) {\n    Sentry.setTag(\"app_release\", release)\n  }\n}\n\nexport const buildGatewayDsn = (\n  projectId: string | number,\n  host = DEFAULT_GATEWAY_HOST,\n  publicKey = DEFAULT_PUBLIC_KEY,\n): string | null => {\n  const project = String(projectId ?? \"\").trim()\n  const normalizedHost = String(host ?? \"\")\n    .replace(/^https?:\\/\\//i, \"\")\n    .trim()\n  const normalizedKey = String(publicKey ?? \"\").trim() || DEFAULT_PUBLIC_KEY\n\n  if (!project || !normalizedHost) return null\n\n  return `https://${normalizedKey}@${normalizedHost}/${project}`\n}\n\nconst extractProjectIdFromDsn = (dsn?: string | null): string | null => {\n  if (!dsn) return null\n\n  try {\n    const url = new URL(dsn)\n    const parts = url.pathname.split(\"/\").filter(Boolean)\n    const project = parts[parts.length - 1] ?? null\n\n    return project || null\n  } catch {\n    return null\n  }\n}\n\nconst resolveProjectId = (options: SentryOptions): string | null => {\n  if (options.projectId !== undefined && options.projectId !== null) {\n    const value = String(options.projectId).trim()\n\n    return value ? value : null\n  }\n\n  return extractProjectIdFromDsn(options.dsn ?? null)\n}\n\nconst normalizeUserContext = (context: SentryUserContextInput): NormalizedUserContext | null => {\n  if (!context) return null\n\n  const base = (context as any).user !== undefined ? (context as any).user : context\n\n  if (!base) return null\n\n  const projectIdsRaw =\n    (base as RawUserContext).projectIds ?? (base as RawUserContext).project_ids ?? []\n  const permissionsRaw = (base as RawUserContext).permissions ?? []\n  const tags = {\n    ...((base as RawUserContext).tags ?? {}),\n    ...(((context as any)?.tags as Record<string, string | null | undefined> | undefined) ?? {}),\n  }\n  const extras = {\n    ...((base as RawUserContext).extras ?? {}),\n    ...(((context as any)?.extras as Record<string, unknown> | undefined) ?? {}),\n  }\n\n  return {\n    id: base.id !== undefined && base.id !== null ? String(base.id) : null,\n    email: base.email ?? null,\n    username: base.username ?? null,\n    organizationId: base.organizationId ?? base.organization_id ?? null,\n    role: base.role ?? null,\n    projectIds: Array.isArray(projectIdsRaw)\n      ? projectIdsRaw.map((value) => String(value)).filter(Boolean)\n      : [],\n    permissions: Array.isArray(permissionsRaw) ? permissionsRaw.map((value) => String(value)) : [],\n    tags,\n    extras,\n    ipAddress: base.ip_address ?? null,\n  }\n}\n\nexport const initSentryClient = (options: SentryOptions): boolean => {\n  if (typeof window === \"undefined\") return false\n\n  const projectId = resolveProjectId(options)\n  const environment = resolveEnvironment(options?.environment)\n\n  if (shouldBlockLocalSend(options, environment)) {\n    return false\n  }\n\n  const dsn =\n    options?.dsn ??\n    (projectId\n      ? buildGatewayDsn(\n          projectId,\n          resolveGatewayHost(options?.host),\n          resolveGatewayKey(options?.publicKey),\n        )\n      : null)\n\n  if (!dsn) return false\n\n  const release = resolveRelease(options?.release)\n\n  if (initialized && activeProject === (projectId ?? null)) {\n    applyMetaTags(environment, release)\n\n    return true\n  }\n\n  try {\n    const integrations = [\n      Sentry.browserTracingIntegration({}),\n      Sentry.replayIntegration({\n        maskAllText: false,\n        maskAllInputs: false,\n        blockAllMedia: false,\n      }),\n      typeof Sentry.httpClientIntegration === \"function\"\n        ? Sentry.httpClientIntegration({\n            failedRequestStatusCodes: [[500, 599]],\n            failedRequestTargets: [/./],\n          })\n        : null,\n    ].filter(Boolean) as Parameters<typeof Sentry.init>[0][\"integrations\"]\n\n    Sentry.init({\n      dsn,\n      environment,\n      release,\n      integrations,\n      tracePropagationTargets: options?.tracePropagationTargets,\n      sendDefaultPii: true,\n      tracesSampleRate: options?.tracesSampleRate ?? 1.0,\n      replaysSessionSampleRate: options?.replaysSessionSampleRate ?? 1.0,\n      replaysOnErrorSampleRate: options?.replaysOnErrorSampleRate ?? 1.0,\n      beforeSend(event) {\n        return shouldBlockLocalSend(options, environment) ? null : event\n      },\n    })\n    initialized = true\n    activeProject = projectId ?? extractProjectIdFromDsn(dsn)\n\n    if (activeProject) {\n      Sentry.setTag(\"sentry_project_id\", activeProject)\n    }\n\n    applyMetaTags(environment, release)\n\n    return true\n  } catch (err) {\n    console.warn(\"Failed to initialize Sentry\", err)\n\n    return false\n  }\n}\n\nexport const setSentryUserContext = (context: SentryUserContextInput) => {\n  if (!initialized) return\n\n  const user = normalizeUserContext(context)\n\n  if (!user) {\n    Sentry.setUser(null)\n    Sentry.setContext(\"user_session\", null)\n    Sentry.setContext(\"admin_session\", null)\n    Sentry.setTag(\"organization_id\", \"none\")\n    Sentry.setTag(\"user_role\", \"anonymous\")\n    Sentry.setTag(\"admin_role\", \"anonymous\")\n    Sentry.setTag(\"user_signed_in\", \"false\")\n    Sentry.setTag(\"admin_signed_in\", \"false\")\n    Sentry.setTag(\"user_project_count\", \"0\")\n    Sentry.setTag(\"admin_project_count\", \"0\")\n    Sentry.setExtra(\"user_project_ids\", [])\n    Sentry.setExtra(\"admin_project_ids\", [])\n    Sentry.setExtra(\"user_permissions\", [])\n\n    return\n  }\n\n  Sentry.setUser({\n    id: user.id ?? undefined,\n    email: user.email ?? undefined,\n    username: user.username ?? undefined,\n    ip_address: user.ipAddress ?? \"{{auto}}\",\n  })\n  const sessionContext = {\n    organization_id: user.organizationId,\n    role: user.role,\n    project_ids: user.projectIds,\n    permissions: user.permissions,\n  }\n  Sentry.setContext(\"user_session\", sessionContext)\n  // Keep legacy context name for compatibility with existing dashboards.\n  Sentry.setContext(\"admin_session\", sessionContext)\n\n  const orgTag = user.organizationId || \"unknown\"\n  const roleTag = user.role || \"unknown\"\n  const projectCount = String(user.projectIds?.length ?? 0)\n\n  Sentry.setTag(\"organization_id\", orgTag)\n  Sentry.setTag(\"user_role\", roleTag)\n  Sentry.setTag(\"admin_role\", roleTag)\n  Sentry.setTag(\"user_signed_in\", \"true\")\n  Sentry.setTag(\"admin_signed_in\", \"true\")\n  Sentry.setTag(\"user_project_count\", projectCount)\n  Sentry.setTag(\"admin_project_count\", projectCount)\n  Sentry.setExtra(\"user_project_ids\", user.projectIds ?? [])\n  Sentry.setExtra(\"admin_project_ids\", user.projectIds ?? [])\n\n  if (user.permissions?.length) {\n    Sentry.setExtra(\"user_permissions\", user.permissions)\n  }\n\n  Object.entries(user.tags ?? {}).forEach(([key, value]) => {\n    if (value === null || value === undefined) return\n\n    Sentry.setTag(key, String(value))\n  })\n  Object.entries(user.extras ?? {}).forEach(([key, value]) => {\n    Sentry.setExtra(key, value as any)\n  })\n}\n\nexport const setSentryRouteContext = (context: SentryRouteContext | null) => {\n  if (!initialized || !context) return\n\n  const signature = JSON.stringify({\n    path: context.path ?? null,\n    search: context.search ?? null,\n    viewId: context.viewId ?? null,\n    orgSlug: context.orgSlug ?? null,\n    projectSlug: context.projectSlug ?? null,\n    realizationSlug: context.realizationSlug ?? null,\n  })\n\n  if (signature === lastRouteSignature) return\n\n  lastRouteSignature = signature\n\n  const path = context.path || \"/\"\n  const viewId = context.viewId ?? \"unknown\"\n  const search = context.search ?? \"\"\n\n  Sentry.setContext(\"frame_route\", {\n    path,\n    search,\n    viewId,\n    orgSlug: context.orgSlug ?? null,\n    projectSlug: context.projectSlug ?? null,\n    realizationSlug: context.realizationSlug ?? null,\n  })\n  Sentry.setTag(\"frame_view\", viewId)\n  Sentry.setTag(\"frame_org\", context.orgSlug ?? \"none\")\n  Sentry.setTag(\"frame_project\", context.projectSlug ?? \"none\")\n\n  if (context.realizationSlug) {\n    Sentry.setTag(\"frame_realization\", context.realizationSlug)\n  }\n\n  Sentry.addBreadcrumb({\n    category: \"navigation\",\n    message: path,\n    data: {\n      search: search || undefined,\n      viewId,\n      org: context.orgSlug ?? undefined,\n      project: context.projectSlug ?? undefined,\n    },\n    level: \"info\",\n  })\n}\n","import { writable } from \"svelte/store\"\n\ntype MaybePromise<T> = T | Promise<T>\n\nconst createApprovalId = () => {\n  if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n    return crypto.randomUUID()\n  }\n\n  return `approval-${Date.now()}-${Math.random().toString(16).slice(2)}`\n}\n\nexport type ApprovalRequest = {\n  title: string\n  description: string\n  approvalLabel?: string\n  declineLabel?: string\n  approvalCallback?: () => MaybePromise<void>\n  cancellationCallback?: () => MaybePromise<void>\n}\n\nexport type ApprovalEntry = ApprovalRequest & {\n  id: string\n  approvalLabel: string\n  declineLabel: string\n  resolve: (approved: boolean) => void\n  completion: Promise<boolean>\n  settled: boolean\n}\n\nexport const approvals = writable<ApprovalEntry[]>([])\n\nexport const newApproval = (request: ApprovalRequest): Promise<boolean> => {\n  const entry: ApprovalEntry = {\n    ...request,\n    id: createApprovalId(),\n    approvalLabel: request.approvalLabel ?? \"Bestätigen\",\n    declineLabel: request.declineLabel ?? \"Abbrechen\",\n    approvalCallback: request.approvalCallback ?? (() => {}),\n    cancellationCallback: request.cancellationCallback,\n    resolve: () => {},\n    completion: Promise.resolve(false),\n    settled: false,\n  }\n\n  entry.completion = new Promise<boolean>((resolve) => {\n    entry.resolve = resolve\n  })\n\n  approvals.update((current) => [...current, entry])\n\n  return entry.completion\n}\n\nexport const resolveApproval = async (entry: ApprovalEntry, approved: boolean) => {\n  if (entry.settled) return\n\n  entry.settled = true\n\n  approvals.update((current) => current.filter((candidate) => candidate.id !== entry.id))\n\n  try {\n    if (approved) {\n      await entry.approvalCallback?.()\n    } else {\n      await entry.cancellationCallback?.()\n    }\n  } finally {\n    entry.resolve(approved)\n  }\n}\n","import { normalizeApiError, type NormalizedApiError } from \"../api/errors\"\nimport { newNotification, type NotificationEntry } from \"./notifications\"\n\ntype NotifyApiErrorOptions = {\n  fallback?: string\n  includeRequestId?: boolean\n  class?: NotificationEntry[\"class\"]\n  timeout?: NotificationEntry[\"timeout\"]\n  removeOnNewLocation?: NotificationEntry[\"removeOnNewLocation\"]\n  blockUI?: NotificationEntry[\"blockUI\"]\n}\n\nconst escapeHtml = (value: string): string =>\n  value\n    .replace(/&/g, \"&amp;\")\n    .replace(/</g, \"&lt;\")\n    .replace(/>/g, \"&gt;\")\n    .replace(/\"/g, \"&quot;\")\n    .replace(/'/g, \"&#39;\")\n\nconst notificationMessage = (normalized: NormalizedApiError, fallback?: string): string => {\n  if (typeof normalized.detail === \"string\" && normalized.detail.trim()) {\n    return normalized.detail.trim()\n  }\n\n  return normalized.message || fallback || \"Ein Fehler ist aufgetreten.\"\n}\n\nexport const notifyApiError = (\n  error: unknown,\n  options: NotifyApiErrorOptions = {},\n): NormalizedApiError => {\n  const normalized = normalizeApiError(error, { fallback: options.fallback })\n  const message = notificationMessage(normalized, options.fallback)\n  const requestId =\n    options.includeRequestId && normalized.requestId\n      ? `<br><small>Fehler-ID: ${escapeHtml(normalized.requestId)}</small>`\n      : \"\"\n  newNotification({\n    class: options.class ?? \"error\",\n    html: `${escapeHtml(message)}${requestId}`,\n    timeout: options.timeout,\n    removeOnNewLocation: options.removeOnNewLocation,\n    blockUI: options.blockUI,\n  })\n\n  return normalized\n}\n","const copyWithDocumentFallback = (value: string): void => {\n  if (typeof document === \"undefined\") {\n    throw new Error(\"Clipboard unavailable\")\n  }\n\n  const textarea = document.createElement(\"textarea\")\n  textarea.value = value\n  textarea.setAttribute(\"readonly\", \"true\")\n  textarea.style.position = \"fixed\"\n  textarea.style.left = \"-9999px\"\n  document.body.appendChild(textarea)\n\n  try {\n    textarea.select()\n\n    if (!document.execCommand(\"copy\")) {\n      throw new Error(\"Clipboard copy failed\")\n    }\n  } finally {\n    textarea.remove()\n  }\n}\n\nexport const copyTextToClipboard = async (value: string): Promise<void> => {\n  if (typeof navigator !== \"undefined\" && navigator.clipboard?.writeText) {\n    try {\n      await navigator.clipboard.writeText(value)\n\n      return\n    } catch {\n      copyWithDocumentFallback(value)\n\n      return\n    }\n  }\n\n  copyWithDocumentFallback(value)\n}\n","import type { Action } from \"svelte/action\"\nimport type { Unsubscriber } from \"svelte/store\"\nimport {\n  spaLink as sdkSpaLink,\n  spaNavigate as sdkSpaNavigate,\n  type SpaNavigateOptions,\n} from \"./navigation\"\n\ntype Subscribable = { subscribe: (run: () => void) => Unsubscriber }\ntype MaybeProps = Record<string, unknown> | undefined\n\nconst normalizePath = (value: string | null | undefined) => (value ?? \"\").replace(/\\/+$/, \"\") || \"/\"\n\nexport const createProjectSpaLink = <Props extends MaybeProps = MaybeProps>(\n  resolveHref: (href: string) => string,\n  subscribables: Subscribable[] = [],\n): Action<HTMLAnchorElement, Props> => {\n  return ((node: HTMLAnchorElement, props?: Props) => {\n    const originalHref = node.getAttribute(\"href\") ?? \"\"\n    node.dataset.originalHref = originalHref\n\n    const updateHref = () => {\n      const baseHref = node.dataset.originalHref ?? originalHref\n      const resolved = resolveHref(baseHref)\n\n      if (resolved && resolved !== node.getAttribute(\"href\")) {\n        node.setAttribute(\"href\", resolved)\n      }\n    }\n\n    updateHref()\n    const unsubscribers = subscribables.map((store) => store.subscribe(() => updateHref()))\n    const actionReturn = sdkSpaLink(node, props as any)\n    const destroyAction =\n      actionReturn && typeof actionReturn === \"object\" && \"destroy\" in actionReturn\n        ? actionReturn.destroy\n        : undefined\n    const updateAction =\n      actionReturn && typeof actionReturn === \"object\" && \"update\" in actionReturn\n        ? actionReturn.update\n        : undefined\n\n    return {\n      destroy() {\n        unsubscribers.forEach((unsub) => unsub?.())\n        destroyAction?.()\n      },\n      update(nextProps: Props) {\n        updateAction?.(nextProps as any)\n        updateHref()\n      },\n    }\n  }) as Action<HTMLAnchorElement, Props>\n}\n\nexport const projectSpaNavigate = (\n  to: string,\n  options: SpaNavigateOptions | undefined,\n  resolvePath: (target: string) => string,\n) => {\n  const resolved = resolvePath(to)\n\n  if (typeof window !== \"undefined\") {\n    const current = `${window.location.pathname}${window.location.search}${window.location.hash}`\n    const candidates = new Set<string>()\n    candidates.add(normalizePath(resolved))\n    const noSearchParam = options?.noSearchParam ?? true\n\n    if (!noSearchParam) {\n      candidates.add(normalizePath(`${resolved}${window.location.search}${window.location.hash}`))\n    }\n\n    if (candidates.has(normalizePath(current))) return\n  }\n\n  sdkSpaNavigate(resolved, options)\n}\n\nconst isExternalHref = (href: string) =>\n  /^(?:[a-z]+:)?\\/\\//i.test(href) || href.startsWith(\"mailto:\") || href.startsWith(\"tel:\")\n\nconst defaultBypass = (href: string) => {\n  if (!href) return true\n\n  if (href.startsWith(\"#\") || href.startsWith(\"?\")) return true\n\n  if (href.startsWith(\"/organizations/\")) return true\n\n  if (href.startsWith(\"/admin/\")) return true\n\n  return false\n}\n\nconst normalizeRelativePath = (path: string) => {\n  if (!path) return \"/\"\n\n  return path.startsWith(\"/\") ? path : `/${path}`\n}\n\nexport type ProjectNavigationOptions = {\n  resolveContext?: () => unknown\n  subscribables?: Subscribable[]\n  bypass?: (href: string) => boolean\n}\n\nexport const createProjectNavigation = (options: ProjectNavigationOptions) => {\n  const bypass = options.bypass ?? defaultBypass\n  const resolveHref = (href: string) => {\n    if (!href) return href\n\n    if (isExternalHref(href) || bypass(href)) {\n      return href\n    }\n\n    const normalized = normalizeRelativePath(href)\n\n    return normalized\n  }\n\n  return {\n    resolveHref,\n    spaLink: createProjectSpaLink(resolveHref, options.subscribables ?? []),\n    spaNavigate: (to: string, navOptions?: SpaNavigateOptions, callback?: () => unknown) => {\n      projectSpaNavigate(to, navOptions, resolveHref)\n      callback?.()\n    },\n  }\n}\n","export type RouteSection = \"root\" | \"projects\" | \"project\"\n\nexport type ParsedProjectRoute = {\n  rawPath: string\n  section: RouteSection\n  organizationSlug: string | null\n  projectId: string | null\n  projectPath: string\n  hasRealizationSegment: boolean\n  realizationId: string | null\n  realizationPath: string\n}\n\nexport type ProjectLike = {\n  organization_slug?: string | null\n  organization_id?: string | null\n  slug?: string | null\n  id?: string | null\n  realizations?: { id: string; slug?: string | null }[] | null\n}\n\nexport const resolveOrgSlug = (\n  project: ProjectLike | null | undefined,\n  fallbackOrgSlug?: string | null,\n) =>\n  (project?.organization_slug ??\n    project?.organization_id ??\n    fallbackOrgSlug ??\n    project?.slug ??\n    project?.id ??\n    \"orga\") ||\n  \"orga\"\n\nexport const resolveProjectSlug = (project: ProjectLike | null | undefined) =>\n  (project?.slug ?? project?.id ?? \"\").trim()\n\nconst normalizeRoutePath = (value: string | null | undefined) => {\n  if (!value) return \"/\"\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return \"/\"\n\n  const normalized = trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`\n\n  if (normalized === \"/\") return \"/\"\n\n  return normalized.length > 1 ? normalized.replace(/\\/+$/, \"\") : normalized\n}\n\nconst decodeSegment = (value: string | undefined) => {\n  if (!value) return null\n\n  try {\n    return decodeURIComponent(value)\n  } catch {\n    return value\n  }\n}\n\nexport const parseProjectRoute = (path: string | null | undefined): ParsedProjectRoute => {\n  const normalized = normalizeRoutePath(path)\n\n  if (normalized === \"/\") {\n    return {\n      rawPath: \"/\",\n      section: \"root\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: \"/\",\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  const segments = normalized.split(\"/\").filter(Boolean)\n\n  const parseFromOrgPrefix = () => {\n    const organizationSlug = decodeSegment(segments[1])\n\n    if (segments[2] !== \"projects\") {\n      return null\n    }\n\n    if (segments.length === 3) {\n      return {\n        rawPath: normalized,\n        section: \"projects\" as RouteSection,\n        organizationSlug,\n        projectId: null,\n        projectPath: \"/\",\n        hasRealizationSegment: false,\n        realizationId: null,\n        realizationPath: \"/\",\n      }\n    }\n\n    const projectId = decodeSegment(segments[3])\n    const rest = segments.slice(4)\n    const hasRealizationSegment = rest[0] === \"realization\" || rest[0] === \"realizations\"\n    const projectPath = rest.length === 0 ? \"/\" : `/${rest.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n    let realizationId: string | null = null\n    let realizationPath = \"/\"\n\n    if (hasRealizationSegment) {\n      const realizationCandidate = rest[1]\n      realizationId = realizationCandidate ? decodeSegment(realizationCandidate) : null\n      const afterRealization = rest.slice(realizationCandidate ? 2 : 1)\n      realizationPath = afterRealization.length\n        ? `/${afterRealization.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n        : \"/\"\n    }\n\n    return {\n      rawPath: normalized,\n      section: \"project\" as RouteSection,\n      organizationSlug,\n      projectId,\n      projectPath,\n      hasRealizationSegment,\n      realizationId,\n      realizationPath,\n    }\n  }\n\n  if (segments[0] === \"organizations\") {\n    const parsed = parseFromOrgPrefix()\n\n    if (parsed) return parsed\n  }\n\n  if (segments[0] !== \"projects\") {\n    return {\n      rawPath: normalized,\n      section: \"root\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: normalized,\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  if (segments.length === 1) {\n    return {\n      rawPath: normalized,\n      section: \"projects\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: \"/\",\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  const projectId = decodeSegment(segments[1])\n  const rest = segments.slice(2)\n  const hasRealizationSegment = rest[0] === \"realization\" || rest[0] === \"realizations\"\n  const projectPath = rest.length === 0 ? \"/\" : `/${rest.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n  let realizationId: string | null = null\n  let realizationPath = \"/\"\n\n  if (hasRealizationSegment) {\n    const realizationCandidate = rest[1]\n    realizationId = realizationCandidate ? decodeSegment(realizationCandidate) : null\n    const afterRealization = rest.slice(realizationCandidate ? 2 : 1)\n    realizationPath = afterRealization.length\n      ? `/${afterRealization.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n      : \"/\"\n  }\n\n  return {\n    rawPath: normalized,\n    section: \"project\",\n    organizationSlug: null,\n    projectId,\n    projectPath,\n    hasRealizationSegment,\n    realizationId,\n    realizationPath,\n  }\n}\n\nexport const extractPathContext = (path: string) => {\n  const normalized = normalizeRoutePath(path)\n  const segments = normalized.split(\"/\").filter(Boolean)\n\n  const findAfter = (needle: string): string | null => {\n    const idx = segments.indexOf(needle)\n\n    if (idx === -1) return null\n\n    return decodeSegment(segments[idx + 1])\n  }\n\n  let organizationSlug = findAfter(\"orga\")\n  let projectSlug = findAfter(\"projects\")\n  let realizationSlug = findAfter(\"realization\") ?? findAfter(\"realizations\")\n\n  if (segments[0] === \"organizations\" && segments[1]) {\n    organizationSlug = decodeSegment(segments[1])\n\n    if (segments[2] === \"projects\" && segments[3]) {\n      projectSlug = decodeSegment(segments[3])\n\n      if (segments[4] === \"realizations\" && segments[5]) {\n        realizationSlug = decodeSegment(segments[5])\n      }\n    }\n  }\n\n  // Legacy support: /projects/:id[/realizations/:id]\n  if (!organizationSlug && !projectSlug && segments[0] === \"projects\" && segments[1]) {\n    return {\n      organizationSlug: null,\n      projectSlug: decodeSegment(segments[1]),\n      realizationSlug: findAfter(\"realization\") ?? findAfter(\"realizations\"),\n    }\n  }\n\n  return { organizationSlug, projectSlug, realizationSlug }\n}\n\nexport const resolveRealizationSlug = (_project: ProjectLike, explicit?: string | null) => {\n  if (explicit) return explicit\n\n  return null\n}\n\nexport const resolveRealization = <T extends { id: string; slug?: string | null }>(\n  project: { realizations?: T[] | null },\n  preferredIdOrSlug: string | null,\n): T | null => {\n  const realizations = project.realizations ?? []\n\n  if (!realizations.length) {\n    return null\n  }\n\n  const byIdOrSlug = (id: string | null | undefined) =>\n    id ? realizations.find((item) => item.id === id || item.slug === id) : undefined\n\n  return byIdOrSlug(preferredIdOrSlug) ?? null\n}\n\nexport const rewriteLegacyProjectPath = (\n  path: string,\n  projectSlug?: string | null,\n  orgSlug?: string | null,\n) => {\n  if (!path.startsWith(\"/projects\")) return null\n\n  const segments = path.split(\"/\").filter(Boolean)\n  const org = orgSlug ?? projectSlug ?? null\n\n  if (segments.length === 1) {\n    if (!org) return null\n\n    return `/organizations/${encodeURIComponent(org)}/projects`\n  }\n\n  const targetProject = segments[1] ?? projectSlug ?? null\n  const orgSegment = org ?? targetProject ?? null\n\n  if (!targetProject || !orgSegment) return null\n\n  let tail = segments.slice(2).join(\"/\")\n\n  if (tail === \"realizations\") {\n    tail = \"realization\"\n  } else if (tail.startsWith(\"realizations/\")) {\n    tail = `realization/${tail.slice(\"realizations/\".length)}`\n  }\n\n  return `/organizations/${encodeURIComponent(orgSegment)}/projects/${encodeURIComponent(targetProject)}${\n    tail ? `/${tail}` : \"\"\n  }`\n}\n\nexport type BuildProjectRouteOptions = {\n  suffix?: string\n  fallbackOrgSlug?: string | null\n  requireRealization?: boolean\n}\n\nexport const buildProjectRoute = (\n  project: ProjectLike,\n  realizationId?: string | null,\n  suffixOrOptions: string | BuildProjectRouteOptions = \"\",\n) => {\n  const options: BuildProjectRouteOptions =\n    typeof suffixOrOptions === \"string\"\n      ? { suffix: suffixOrOptions }\n      : {\n          suffix: suffixOrOptions?.suffix ?? \"\",\n          fallbackOrgSlug: suffixOrOptions?.fallbackOrgSlug ?? null,\n          requireRealization: suffixOrOptions?.requireRealization ?? true,\n        }\n  const org =\n    project.organization_slug ?? project.organization_id ?? options.fallbackOrgSlug ?? null\n  const projectSlug = resolveProjectSlug(project)\n  const realizationSlug = resolveRealizationSlug(project, realizationId)\n\n  if (!org || !projectSlug || (options.requireRealization && !realizationSlug)) {\n    return \"/orga\"\n  }\n\n  const baseProject = `/organizations/${encodeURIComponent(org)}/projects/${encodeURIComponent(projectSlug)}`\n  const base = realizationSlug\n    ? `${baseProject}/realization/${encodeURIComponent(realizationSlug)}`\n    : baseProject\n\n  return `${base}${options.suffix ?? \"\"}`\n}\n","import { derived, writable, type Writable } from \"svelte/store\"\nimport { getGlobalStore } from \"../overlay/globalStores\"\n\nexport type ControlBannerSeverity = \"info\" | \"warning\" | \"danger\"\n\nexport type ControlBannerAction = {\n  label: string\n  href?: string | null\n  target?: \"_self\" | \"_blank\"\n  onClick?: (() => void) | null\n}\n\nexport type ControlBannerProgress = {\n  value?: number | null\n  max?: number | null\n  label?: string | null\n}\n\nexport type ControlBannerEntry = {\n  id?: string\n  title: string\n  body?: string | null\n  severity?: ControlBannerSeverity\n  action?: ControlBannerAction | null\n  progress?: ControlBannerProgress | null\n  dismissible?: boolean\n  pulse?: boolean\n  priority?: number\n  meta?: Record<string, unknown> | null\n  onDismiss?: (() => void) | null\n}\n\nconst createBannerId = () => {\n  if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n    return crypto.randomUUID()\n  }\n\n  return `banner-${Date.now()}-${Math.random().toString(16).slice(2)}`\n}\n\nconst normalizeBanner = (entry: ControlBannerEntry): ControlBannerEntry => {\n  const id = entry.id?.trim() || createBannerId()\n  const severity = entry.severity ?? \"warning\"\n  const priority = Number.isFinite(entry.priority) ? (entry.priority as number) : 0\n\n  return {\n    ...entry,\n    id,\n    severity,\n    dismissible: entry.dismissible ?? true,\n    pulse: entry.pulse ?? severity === \"danger\",\n    body: typeof entry.body === \"string\" ? entry.body : (entry.body ?? \"\"),\n    action: entry.action ?? null,\n    progress: entry.progress ?? null,\n    meta: entry.meta ?? null,\n    priority,\n  }\n}\n\nconst banners = getGlobalStore<ControlBannerEntry[]>(\"controlBanners\", () => writable([]))\n\nexport const currentBanner = derived(banners, (list) => list[0] ?? null)\n\nexport const setBanner = (entry: ControlBannerEntry | null) => {\n  if (!entry) {\n    clearBanners()\n\n    return null\n  }\n\n  return upsertBanner(entry)\n}\n\nexport const upsertBanner = (entry: ControlBannerEntry): string => {\n  const normalized = normalizeBanner(entry)\n  banners.update((current) => {\n    const withoutCurrent = current.filter((item) => item.id !== normalized.id)\n    const next = [...withoutCurrent, normalized].sort(\n      (a, b) => (b.priority ?? 0) - (a.priority ?? 0),\n    )\n\n    return next\n  })\n\n  return normalized.id as string\n}\n\nexport const removeBanner = (id: string | null | undefined) => {\n  if (!id) return\n\n  banners.update((current) => current.filter((entry) => entry.id !== id))\n}\n\nexport const clearBanners = () => banners.set([])\n","import { writable } from \"svelte/store\"\n\nexport type BootstrapState = {\n  initializing: boolean\n  projectParam: string | null\n  project: string | null\n}\n\nconst createDefaultState = (): BootstrapState => ({\n  initializing: true,\n  projectParam: null,\n  project: null,\n})\n\nexport const bootstrapState = writable<BootstrapState>(createDefaultState())\n\nexport type StartBootstrapOptions = {\n  projectParam?: string\n  onBootstrap: (state: BootstrapState) => void | Promise<void>\n}\n\nexport type StartBootstrapHandle = { stop: () => void }\n\nconst sanitizeParam = (value: string | null): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  return trimmed || null\n}\n\nexport const startBootstrap = (options: StartBootstrapOptions): StartBootstrapHandle => {\n  const { projectParam = \"project\", onBootstrap } = options\n\n  if (typeof window === \"undefined\") {\n    const state: BootstrapState = {\n      ...createDefaultState(),\n      initializing: false,\n    }\n    bootstrapState.set(state)\n    void onBootstrap(state)\n\n    return { stop: () => void 0 }\n  }\n\n  const params = new URLSearchParams(window.location.search)\n  const projectFromUrl = sanitizeParam(params.get(projectParam))\n\n  const state: BootstrapState = {\n    initializing: false,\n    projectParam: projectFromUrl,\n    project: projectFromUrl,\n  }\n  bootstrapState.set(state)\n  void onBootstrap(state)\n\n  return {\n    stop: () => void 0,\n  }\n}\n","export type InvalidationScope = string | null\n\nexport type InvalidationTarget = {\n  topic: string\n  scope?: InvalidationScope\n}\n\nexport type InvalidationHandler = () => void | Promise<void>\n\nexport type InvalidationResult = {\n  matched: number\n  completed: number\n}\n\ntype InvalidationRegistryEntry = {\n  id: number\n  target: Required<InvalidationTarget>\n  handler: InvalidationHandler\n  inFlight: Promise<void> | null\n}\n\ntype InvalidationFailure = {\n  target: Required<InvalidationTarget>\n  error: unknown\n}\n\nexport class InvalidationError extends Error {\n  readonly failures: InvalidationFailure[]\n\n  constructor(failures: InvalidationFailure[]) {\n    super(\"Invalidation failed.\")\n    this.name = \"InvalidationError\"\n    this.failures = failures\n  }\n}\n\nconst normalizeTarget = (target: InvalidationTarget): Required<InvalidationTarget> => ({\n  topic: target.topic,\n  scope: target.scope ?? null,\n})\n\nconst root = (typeof globalThis !== \"undefined\" ? globalThis : window) as Record<string, unknown>\nconst registryKey = \"__kwInvalidationRegistry\"\nconst sequenceKey = \"__kwInvalidationRegistrySequence\"\n\nconst getRegistry = (): InvalidationRegistryEntry[] => {\n  root[registryKey] = root[registryKey] ?? []\n\n  return root[registryKey] as InvalidationRegistryEntry[]\n}\n\nconst nextId = () => {\n  const current = typeof root[sequenceKey] === \"number\" ? (root[sequenceKey] as number) : 0\n  const next = current + 1\n  root[sequenceKey] = next\n\n  return next\n}\n\nconst matchesTarget = (entry: InvalidationRegistryEntry, target: Required<InvalidationTarget>) =>\n  entry.target.topic === target.topic && entry.target.scope === target.scope\n\nconst runEntry = (entry: InvalidationRegistryEntry): Promise<void> => {\n  if (entry.inFlight) return entry.inFlight\n\n  entry.inFlight = Promise.resolve()\n    .then(entry.handler)\n    .finally(() => {\n      entry.inFlight = null\n    })\n\n  return entry.inFlight\n}\n\nexport const registerInvalidationHandler = (\n  target: InvalidationTarget,\n  handler: InvalidationHandler,\n): (() => void) => {\n  const entry: InvalidationRegistryEntry = {\n    id: nextId(),\n    target: normalizeTarget(target),\n    handler,\n    inFlight: null,\n  }\n  getRegistry().push(entry)\n\n  return () => {\n    const registry = getRegistry()\n    const index = registry.findIndex((item) => item.id === entry.id)\n\n    if (index >= 0) registry.splice(index, 1)\n  }\n}\n\nexport const invalidate = async (target: InvalidationTarget): Promise<InvalidationResult> => {\n  const normalizedTarget = normalizeTarget(target)\n  const entries = getRegistry().filter((entry) => matchesTarget(entry, normalizedTarget))\n  const settled = await Promise.allSettled(entries.map(runEntry))\n  const failures: InvalidationFailure[] = []\n\n  settled.forEach((result, index) => {\n    if (result.status === \"rejected\") {\n      failures.push({\n        target: entries[index].target,\n        error: result.reason,\n      })\n    }\n  })\n\n  if (failures.length) {\n    throw new InvalidationError(failures)\n  }\n\n  return {\n    matched: entries.length,\n    completed: settled.length,\n  }\n}\n","type LiveStateEnvelope = {\n  type: string\n  scopeKey?: string\n  eventId?: string | null\n  data?: unknown\n  [key: string]: unknown\n}\n\nexport type LiveStateRequestTransport = {\n  headers: Record<string, string>\n  credentials: RequestCredentials\n}\n\ntype CreateLiveStateConnectorOptions = {\n  url: string\n  prepareTransport?: (\n    url: string,\n    signal: AbortSignal,\n  ) => LiveStateRequestTransport | Promise<LiveStateRequestTransport>\n  debounceMs?: number\n  reconnectBaseMs?: number\n  reconnectMaxMs?: number\n  initialLastEventId?: string | null\n  afterEventIdParam?: string\n  onInvalidate?: (() => void) | undefined\n  onEvent?:\n    | ((\n        eventType: string,\n        payload: unknown,\n        eventId: string | null,\n        raw: LiveStateEnvelope,\n      ) => void)\n    | undefined\n  onHealthChange?: ((healthy: boolean) => void) | undefined\n}\n\ntype ParsedSseEvent = {\n  event: string\n  id: string | null\n  data: string\n}\n\nconst parsePayload = (raw: string | null | undefined): LiveStateEnvelope | null => {\n  if (!raw) return null\n\n  try {\n    const parsed = JSON.parse(raw) as LiveStateEnvelope\n\n    if (!parsed || typeof parsed !== \"object\") return null\n\n    if (typeof parsed.type !== \"string\" || !parsed.type.trim()) return null\n\n    return parsed\n  } catch {\n    return null\n  }\n}\n\nconst appendAfterEventId = (rawUrl: string, paramName: string, eventId: string | null): string => {\n  const normalized = rawUrl.trim()\n\n  if (!normalized || !eventId) return normalized\n\n  try {\n    const url = new URL(normalized, window.location.origin)\n    url.searchParams.set(paramName, eventId)\n\n    return url.toString()\n  } catch {\n    const separator = normalized.includes(\"?\") ? \"&\" : \"?\"\n\n    return `${normalized}${separator}${encodeURIComponent(paramName)}=${encodeURIComponent(eventId)}`\n  }\n}\n\nconst readSseEvent = (buffer: string): { remaining: string; events: ParsedSseEvent[] } => {\n  const chunks = buffer.split(/\\r?\\n\\r?\\n/)\n  const remaining = chunks.pop() ?? \"\"\n  const events: ParsedSseEvent[] = []\n\n  for (const rawChunk of chunks) {\n    const lines = rawChunk.split(/\\r?\\n/)\n    let eventType = \"message\"\n    let eventId: string | null = null\n    const dataLines: string[] = []\n\n    for (const line of lines) {\n      if (!line || line.startsWith(\":\")) continue\n\n      const idx = line.indexOf(\":\")\n      const field = idx >= 0 ? line.slice(0, idx) : line\n      let value = idx >= 0 ? line.slice(idx + 1) : \"\"\n\n      if (value.startsWith(\" \")) value = value.slice(1)\n\n      if (field === \"event\") {\n        eventType = value || \"message\"\n        continue\n      }\n\n      if (field === \"data\") {\n        dataLines.push(value)\n        continue\n      }\n\n      if (field === \"id\") {\n        eventId = value || null\n      }\n    }\n\n    if (!dataLines.length) continue\n\n    events.push({\n      event: eventType,\n      id: eventId,\n      data: dataLines.join(\"\\n\"),\n    })\n  }\n\n  return { remaining, events }\n}\n\nexport const createLiveStateConnector = ({\n  url,\n  prepareTransport,\n  debounceMs = 250,\n  reconnectBaseMs = 1_000,\n  reconnectMaxMs = 15_000,\n  initialLastEventId = null,\n  afterEventIdParam = \"after_event_id\",\n  onInvalidate,\n  onEvent,\n  onHealthChange,\n}: CreateLiveStateConnectorOptions) => {\n  let reconnectTimer: ReturnType<typeof setTimeout> | null = null\n  let invalidateTimer: ReturnType<typeof setTimeout> | null = null\n  let stopped = false\n  let reconnectAttempt = 0\n  let lastEventId =\n    typeof initialLastEventId === \"string\" && initialLastEventId.trim().length\n      ? initialLastEventId.trim()\n      : null\n  let controller: AbortController | null = null\n\n  const clearReconnectTimer = () => {\n    if (!reconnectTimer) return\n\n    clearTimeout(reconnectTimer)\n    reconnectTimer = null\n  }\n\n  const clearInvalidateTimer = () => {\n    if (!invalidateTimer) return\n\n    clearTimeout(invalidateTimer)\n    invalidateTimer = null\n  }\n\n  const emitInvalidate = () => {\n    clearInvalidateTimer()\n    invalidateTimer = setTimeout(() => {\n      invalidateTimer = null\n      onInvalidate?.()\n    }, debounceMs)\n  }\n\n  const closeController = () => {\n    if (!controller) return\n\n    controller.abort()\n    controller = null\n  }\n\n  const scheduleReconnect = () => {\n    if (stopped || reconnectTimer || typeof window === \"undefined\") return\n\n    const delay = Math.min(reconnectBaseMs * 2 ** reconnectAttempt, reconnectMaxMs)\n    reconnectAttempt += 1\n    reconnectTimer = setTimeout(() => {\n      reconnectTimer = null\n      void connect()\n    }, delay)\n  }\n\n  const handleDisconnect = () => {\n    onHealthChange?.(false)\n    closeController()\n    scheduleReconnect()\n  }\n\n  const dispatchEnvelope = (\n    eventType: string,\n    rawEnvelope: LiveStateEnvelope,\n    eventId: string | null,\n  ) => {\n    const resolvedEventId =\n      (typeof rawEnvelope.eventId === \"string\" && rawEnvelope.eventId.trim().length\n        ? rawEnvelope.eventId.trim()\n        : null) ?? eventId\n\n    if (resolvedEventId) {\n      lastEventId = resolvedEventId\n    }\n\n    if (eventType === \"state.invalidate\") {\n      emitInvalidate()\n    }\n\n    onEvent?.(eventType, rawEnvelope.data ?? rawEnvelope, resolvedEventId, rawEnvelope)\n  }\n\n  const connect = async () => {\n    if (stopped || typeof window === \"undefined\" || typeof fetch === \"undefined\") {\n      onHealthChange?.(false)\n\n      return\n    }\n\n    const normalizedUrl = url.trim()\n\n    if (!normalizedUrl) {\n      onHealthChange?.(false)\n\n      return\n    }\n\n    closeController()\n    const activeController = new AbortController()\n    controller = activeController\n\n    try {\n      const endpoint = appendAfterEventId(normalizedUrl, afterEventIdParam, lastEventId)\n      const transport = prepareTransport\n        ? await prepareTransport(endpoint, activeController.signal)\n        : null\n      if (stopped || activeController.signal.aborted || controller !== activeController) return\n      if (transport && ![\"include\", \"omit\", \"same-origin\"].includes(transport.credentials)) {\n        throw new Error(\"Invalid live-state request transport\")\n      }\n      const preparedHeaders = new Headers(transport?.headers)\n      preparedHeaders.set(\"Accept\", \"text/event-stream\")\n      preparedHeaders.set(\"Cache-Control\", \"no-cache\")\n      const response = await fetch(endpoint, {\n        method: \"GET\",\n        credentials: transport?.credentials ?? \"include\",\n        redirect: transport ? \"error\" : \"follow\",\n        headers: transport\n          ? preparedHeaders\n          : {\n              Accept: \"text/event-stream\",\n              \"Cache-Control\": \"no-cache\",\n            },\n        signal: activeController.signal,\n      })\n\n      if (!response.ok || !response.body) {\n        throw new Error(`Live-state stream failed: ${response.status}`)\n      }\n\n      reconnectAttempt = 0\n      onHealthChange?.(true)\n\n      const reader = response.body.getReader()\n      const decoder = new TextDecoder(\"utf-8\")\n      let buffer = \"\"\n\n      while (!stopped) {\n        const { done, value } = await reader.read()\n\n        if (stopped || activeController.signal.aborted || controller !== activeController) return\n\n        if (done) break\n\n        buffer += decoder.decode(value, { stream: true })\n        const parsed = readSseEvent(buffer)\n        buffer = parsed.remaining\n        for (const event of parsed.events) {\n          const envelope = parsePayload(event.data)\n\n          if (!envelope) continue\n\n          dispatchEnvelope(event.event || envelope.type, envelope, event.id)\n        }\n      }\n    } catch (error) {\n      if (activeController.signal.aborted) return\n\n      console.warn(\"live-state stream disconnected\", error)\n    } finally {\n      if (controller === activeController) {\n        controller = null\n      }\n\n      if (!stopped && !activeController.signal.aborted) {\n        handleDisconnect()\n      }\n    }\n  }\n\n  return {\n    start() {\n      stopped = false\n      clearReconnectTimer()\n      void connect()\n    },\n    stop() {\n      stopped = true\n      clearReconnectTimer()\n      clearInvalidateTimer()\n      closeController()\n      onHealthChange?.(false)\n    },\n    setLastEventId(value: string | null | undefined) {\n      lastEventId = typeof value === \"string\" && value.trim().length ? value.trim() : null\n    },\n    getLastEventId() {\n      return lastEventId\n    },\n  }\n}\n","import { removeBanner, setBanner } from \"./bannerStore\"\n\nexport type StatusCenterLinkContext = {\n  origin?: string | null\n  organization?: string | null\n  project?: string | null\n  realization?: string | null\n  component?: string | null\n}\n\ntype StatusCenterBannerPayload = {\n  id: string\n  severity: string\n  title: string\n  body: string\n  component_key: string\n  action_label?: string\n  action_href?: string\n} | null\n\nconst normalizeOrigin = (value: string): string => value.replace(/\\/+$/, \"\")\nconst isLocalHostname = (hostname: string): boolean =>\n  hostname === \"localhost\" ||\n  hostname === \"127.0.0.1\" ||\n  hostname.endsWith(\".localhost\") ||\n  hostname.endsWith(\".local\")\n\nconst withCurrentPublicPort = (origin: string): string => {\n  const normalized = normalizeOrigin(origin)\n\n  if (\n    typeof window === \"undefined\" ||\n    !window.location?.port ||\n    isLocalHostname(window.location.hostname)\n  ) {\n    return normalized\n  }\n\n  try {\n    const url = new URL(normalized)\n\n    if (url.port || isLocalHostname(url.hostname)) return normalized\n\n    const pageBaseDomain = window.location.hostname.split(\".\").slice(1).join(\".\")\n    const targetBaseDomain = url.hostname.split(\".\").slice(1).join(\".\")\n\n    if (pageBaseDomain && targetBaseDomain && pageBaseDomain === targetBaseDomain) {\n      url.port = window.location.port\n\n      return url.toString().replace(/\\/+$/, \"\")\n    }\n  } catch {\n    return normalized\n  }\n\n  return normalized\n}\nconst readBooleanEnvFlag = (key: string): boolean => {\n  if (typeof globalThis === \"undefined\" || !globalThis) return false\n\n  const runtime = (\n    globalThis as typeof globalThis & {\n      process?: { env?: Record<string, string | undefined> }\n    }\n  ).process\n  const raw = runtime?.env?.[key]\n\n  return [\"1\", \"true\", \"yes\", \"on\"].includes(\n    String(raw ?? \"\")\n      .trim()\n      .toLowerCase(),\n  )\n}\nconst isE2EMode = (() => {\n  return readBooleanEnvFlag(\"KW_E2E_MODE\")\n})()\n\nexport const deriveStatusCenterOrigin = (value?: string | null): string => {\n  const trimmed = (value ?? \"\").trim()\n\n  if (trimmed) return withCurrentPublicPort(trimmed)\n\n  if (typeof window === \"undefined\") return \"https://status.kontextwerk.info\"\n\n  const host = window.location.hostname || \"status.localhost\"\n\n  if (host.includes(\"localhost\") || host === \"127.0.0.1\") {\n    return \"http://status.localhost:3000\"\n  }\n\n  const parts = host.split(\".\")\n\n  if (parts.length > 2) {\n    parts[0] = \"status\"\n\n    return withCurrentPublicPort(`https://${parts.join(\".\")}`)\n  }\n\n  return withCurrentPublicPort(`https://status.${host}`)\n}\n\nexport const buildStatusCenterUrl = (context: StatusCenterLinkContext): string => {\n  const origin = deriveStatusCenterOrigin(context.origin)\n  const url = new URL(`${origin}/`)\n  for (const [key, value] of Object.entries({\n    organization: context.organization,\n    project: context.project,\n    realization: context.realization,\n    component: context.component,\n  })) {\n    if (typeof value === \"string\" && value.trim()) {\n      url.searchParams.set(key, value.trim())\n    }\n  }\n\n  return url.toString()\n}\n\nconst toBannerSeverity = (value: string | null | undefined): \"info\" | \"warning\" | \"danger\" => {\n  const severity = (value ?? \"\").trim().toLowerCase()\n\n  if (severity === \"critical\" || severity === \"major\") return \"danger\"\n\n  if (severity === \"minor\" || severity === \"maintenance\") return \"warning\"\n\n  return \"info\"\n}\n\nexport const syncStatusCenterBanner = async ({\n  origin,\n  organization,\n  project,\n  realization,\n}: {\n  origin?: string | null\n  organization?: string | null\n  project?: string | null\n  realization?: string | null\n}): Promise<string | null> => {\n  if (isE2EMode) {\n    removeBanner(\"status-center-current\")\n\n    return null\n  }\n\n  try {\n    const statusOrigin = deriveStatusCenterOrigin(origin)\n    const url = new URL(`${statusOrigin}/api/v1/public/banner/current`)\n    for (const [key, value] of Object.entries({\n      organization,\n      project,\n      realization,\n    })) {\n      if (typeof value === \"string\" && value.trim()) {\n        url.searchParams.set(key, value.trim())\n      }\n    }\n    const response = await fetch(url.toString(), {\n      credentials: \"omit\",\n      headers: { Accept: \"application/json\" },\n    })\n\n    if (!response.ok) {\n      removeBanner(\"status-center-current\")\n\n      return null\n    }\n\n    const payload = (await response.json()) as StatusCenterBannerPayload\n\n    if (!payload) {\n      removeBanner(\"status-center-current\")\n\n      return null\n    }\n\n    return setBanner({\n      id: \"status-center-current\",\n      title: payload.title,\n      body: payload.body,\n      severity: toBannerSeverity(payload.severity),\n      dismissible: false,\n      pulse: payload.severity === \"critical\" || payload.severity === \"major\",\n      priority: 90,\n      action: {\n        label: payload.action_label || \"Status ansehen\",\n        href:\n          payload.action_href ||\n          buildStatusCenterUrl({ origin, organization, project, realization }),\n        target: \"_self\",\n      },\n      meta: {\n        component_key: payload.component_key,\n      },\n    })\n  } catch {\n    removeBanner(\"status-center-current\")\n\n    return null\n  }\n}\n\nexport const startStatusCenterBannerPolling = ({\n  origin,\n  organization,\n  project,\n  realization,\n  intervalMs = 60_000,\n}: {\n  origin?: string | null\n  organization?: string | null\n  project?: string | null\n  realization?: string | null\n  intervalMs?: number\n}) => {\n  if (typeof window === \"undefined\") return () => {}\n\n  if (isE2EMode) {\n    removeBanner(\"status-center-current\")\n\n    return () => {}\n  }\n\n  let timer: number | null = null\n  const tick = async () => {\n    try {\n      await syncStatusCenterBanner({ origin, organization, project, realization })\n    } catch (error) {\n      console.error(\"status_center_banner_failed\", error)\n    }\n  }\n  void tick()\n  timer = window.setInterval(() => {\n    void tick()\n  }, intervalMs)\n\n  return () => {\n    if (timer) window.clearInterval(timer)\n\n    removeBanner(\"status-center-current\")\n  }\n}\n","import { get } from \"svelte/store\"\nimport { spaNavigate, type SpaNavigateOptions } from \"@kontextwerk/web-sdk/core/routing/navigation\"\nimport {\n  clearOverlays,\n  overlays,\n  requestCloseOverlaysFromIndex,\n} from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n\n/** Preserve draft protection when an application link leaves an open dialog. */\nexport const closeOverlaysBeforeNavigation = (\n  to: string,\n  options?: SpaNavigateOptions,\n  resume?: () => void,\n): boolean | void => {\n  if (!get(overlays).some((entry) => entry.beforeClose)) {\n    clearOverlays()\n\n    return\n  }\n\n  void requestCloseOverlaysFromIndex(0).then((approved) => {\n    if (approved) {\n      if (resume) resume()\n      else spaNavigate(to, options)\n    }\n  })\n\n  return false\n}\n","import type { Action } from \"svelte/action\"\nimport { get } from \"svelte/store\"\nimport {\n  createProjectNavigation,\n  spaBack as sdkSpaBack,\n  registerNavigationGuard,\n  extractPathContext,\n  location as locationStore,\n} from \"@kontextwerk/web-sdk/core\"\nimport { closeOverlaysBeforeNavigation } from \"./overlays\"\n\nregisterNavigationGuard(\"control-admin:overlay\", closeOverlaysBeforeNavigation)\n\nconst navigation = createProjectNavigation({\n  resolveContext: () => {\n    const current = get(locationStore as any) as any\n    const path = current?.path ?? \"/\"\n    const parsed = extractPathContext(path)\n\n    return {\n      orgSlug: parsed.organizationSlug,\n      projectSlug: parsed.projectSlug,\n      realizationSlug: parsed.realizationSlug,\n    }\n  },\n  subscribables: [locationStore],\n})\n\nexport const spaLink: Action<HTMLAnchorElement, { onClick?: (e: MouseEvent) => void }> =\n  navigation.spaLink\n\nexport const spaNavigate = navigation.spaNavigate\n\nexport const spaBack = () => {\n  sdkSpaBack()\n}\n\nconst encode = (value: string | null | undefined) => (value ? encodeURIComponent(value) : null)\n\nexport const buildProjectsRootPath = () => {\n  const current = get(locationStore as any) as any\n  const parsed = extractPathContext(current?.path ?? \"/\")\n  const org = encode(parsed.organizationSlug)\n\n  return org ? `/organizations/${org}/projects` : null\n}\n\nexport const buildCurrentProjectPath = (options?: {\n  realizationId?: string | null\n  suffix?: string\n}) => {\n  const current = get(locationStore as any) as any\n  const parsed = extractPathContext(current?.path ?? \"/\")\n  const org = encode(parsed.organizationSlug)\n  const project = encode(parsed.projectSlug)\n\n  if (!org || !project) return null\n\n  const realization = encode(options?.realizationId ?? parsed.realizationSlug ?? null)\n  const suffix = options?.suffix\n    ? options.suffix.startsWith(\"/\")\n      ? options.suffix\n      : `/${options.suffix}`\n    : \"\"\n\n  if (realization) {\n    return `/organizations/${org}/projects/${project}/realizations/${realization}${suffix}`\n  }\n\n  return `/organizations/${org}/projects/${project}${suffix}`\n}\n","import { get } from \"svelte/store\"\nimport {\n  createProjectNavigation,\n  spaBack as sdkSpaBack,\n  registerNavigationGuard,\n  extractPathContext,\n} from \"@kontextwerk/web-sdk/core\"\nimport { location as locationStore, type SpaNavigateOptions } from \"@kontextwerk/web-sdk/core\"\nimport { closeOverlaysBeforeNavigation } from \"../overlays\"\n\nexport type FrameNavigationConfig = {\n  guardId?: string\n}\n\nconst parsePathContext = (path: string) => {\n  const parsed = extractPathContext(path)\n\n  if (parsed?.organizationSlug || parsed?.projectSlug || parsed?.realizationSlug) return parsed\n\n  const match = path.match(\n    /^\\/organizations\\/([^/]+)(?:\\/projects\\/([^/]+)(?:\\/realizations\\/([^/]+))?)?/,\n  )\n\n  return {\n    organizationSlug: match?.[1] ? decodeURIComponent(match[1]) : null,\n    projectSlug: match?.[2] ? decodeURIComponent(match[2]) : null,\n    realizationSlug: match?.[3] ? decodeURIComponent(match[3]) : null,\n  }\n}\n\nexport const createFrameNavigation = (config?: FrameNavigationConfig) => {\n  const guardId = config?.guardId ?? \"control-frame:overlay\"\n  registerNavigationGuard(guardId, closeOverlaysBeforeNavigation)\n\n  const navigation = createProjectNavigation({\n    resolveContext: () => {\n      const current = get(locationStore as any) as any\n      const path = current?.path ?? \"/\"\n      const parsed = parsePathContext(path)\n\n      return {\n        orgSlug: parsed.organizationSlug,\n        projectSlug: parsed.projectSlug,\n        realizationSlug: parsed.realizationSlug,\n      }\n    },\n    subscribables: [locationStore],\n  })\n\n  return {\n    spaLink: navigation.spaLink,\n    spaNavigate: navigation.spaNavigate,\n    spaBack: () => sdkSpaBack(),\n  }\n}\n\n// convenience singleton mirroring the legacy navigation helpers\nconst singletonNavigation = createFrameNavigation()\nexport const spaLink = singletonNavigation.spaLink\nexport const spaNavigate = (to: string, options?: SpaNavigateOptions, callback?: () => unknown) =>\n  singletonNavigation.spaNavigate(to, options, callback)\nexport const spaBack = singletonNavigation.spaBack\n","<script lang=\"ts\">\n  let {\n    size = \"1rem\",\n    width,\n    height,\n    color = \"currentColor\",\n    viewBox = \"0 0 24 24\",\n    path,\n    props,\n  }: {\n    size?: string\n    width?: string\n    height?: string\n    color?: string\n    viewBox?: string\n    path?: string\n    props?: any\n  } = $props()\n\n  const resolvedWidth = $derived(width ?? size)\n  const resolvedHeight = $derived(height ?? size)\n</script>\n\n{#if path}\n  <svg width={resolvedWidth} height={resolvedHeight} {viewBox}>\n    <path {...props} d={path} fill={color}></path>\n  </svg>\n{/if}\n","<script lang=\"ts\">\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import type { ContextSessionResponse } from \"@kontextwerk/control-web-client\"\n  import { mdiLogoutVariant } from \"@mdi/js\"\n  import {\n    revokeSupportDelegation,\n    switchToPlatformContextAfterDelegation,\n  } from \"../../../api/support-delegations\"\n  import { refreshControlContext } from \"../../_logic/authentication\"\n  import { spaNavigate } from \"../../_logic/navigation\"\n  import Icon from \"../icon\"\n\n  const MAX_TIMEOUT_MS = 2_147_483_647\n\n  let { session }: { session: ContextSessionResponse } = $props()\n\n  let ending = $state(false)\n  let expiredNow = $state(false)\n  let notifiedDelegationId = $state<string | null>(null)\n\n  const organizationContext = $derived(\n    session.context.kind === \"organization\" ? session.context : null,\n  )\n  const delegation = $derived(organizationContext?.delegation ?? null)\n  const organizationName = $derived(organizationContext?.organization_name ?? \"\")\n  const expiresAtEpochMs = $derived(delegation ? Date.parse(delegation.expires_at) : Number.NaN)\n\n  const formattedExpiryTime = $derived.by(() => {\n    if (!delegation) return \"\"\n\n    if (!Number.isFinite(expiresAtEpochMs)) return delegation.expires_at\n\n    return new Intl.DateTimeFormat(\"de-DE\", {\n      hour: \"2-digit\",\n      minute: \"2-digit\",\n    }).format(new Date(expiresAtEpochMs))\n  })\n\n  // effect-ok: timer - update banner state and notify once when the active support delegation reaches expires_at.\n  $effect(() => {\n    const activeDelegation = delegation\n    const targetEpochMs = expiresAtEpochMs\n\n    if (!activeDelegation || !Number.isFinite(targetEpochMs)) {\n      expiredNow = false\n\n      return\n    }\n\n    const remainingMs = targetEpochMs - Date.now()\n\n    if (remainingMs <= 0) {\n      expiredNow = true\n\n      return\n    }\n\n    expiredNow = false\n    const delegationId = activeDelegation.id\n    const timerId = window.setTimeout(\n      () => {\n        expiredNow = true\n\n        if (notifiedDelegationId !== delegationId) {\n          notifiedDelegationId = delegationId\n          newNotification({\n            class: \"error\",\n            html: \"Delegierter Zugriff ist abgelaufen.\",\n          })\n        }\n      },\n      Math.min(remainingMs, MAX_TIMEOUT_MS),\n    )\n\n    return () => {\n      window.clearTimeout(timerId)\n    }\n  })\n\n  const endDelegation = async () => {\n    if (!delegation || ending) return\n\n    const currentlyExpired =\n      expiredNow || (Number.isFinite(expiresAtEpochMs) && expiresAtEpochMs <= Date.now())\n\n    ending = true\n\n    try {\n      if (!currentlyExpired) {\n        await revokeSupportDelegation(delegation.id, {\n          expectedSessionId: session.session_id,\n          expectedContextRevision: session.context_revision,\n        })\n      }\n\n      await switchToPlatformContextAfterDelegation(delegation.staff_assignment_id, {\n        expectedSessionId: session.session_id,\n        expectedContextRevision: session.context_revision,\n      })\n      await refreshControlContext()\n      spaNavigate(\"/admin/organizations\", { noSearchParam: true })\n      newNotification({ class: \"success\", html: \"Delegation beendet\" })\n    } catch (err) {\n      if (err instanceof DOMException && err.name === \"AbortError\") return\n\n      console.error(\"Failed to end support delegation\", err)\n      newNotification({\n        class: \"error\",\n        html: \"Die Delegation konnte nicht beendet werden.\",\n      })\n    } finally {\n      ending = false\n    }\n  }\n</script>\n\n{#if delegation}\n  <aside\n    class=\"support-context\"\n    class:support-context--expired={expiredNow}\n    aria-label=\"Supportzugriff\"\n    data-testid=\"controlFrame.supportDelegation.banner\"\n  >\n    <p class=\"support-context__message\">\n      {#if expiredNow}\n        Delegierter Zugriff auf <strong>{organizationName}</strong> — abgelaufen um\n        <time datetime={delegation.expires_at}>{formattedExpiryTime}</time>.\n      {:else}\n        Delegierter Zugriff auf <strong>{organizationName}</strong> — endet um\n        <time datetime={delegation.expires_at}>{formattedExpiryTime}</time>.\n      {/if}\n    </p>\n    <span class=\"support-context__sr-attribution\">\n      Supportzugriff — Handelnder Staff: {session.user.email} · Vertretener Nutzer:\n      {delegation.represented_user_id} · Grund: {delegation.reason} · Supportende:\n      {delegation.expires_at}\n    </span>\n    <div class=\"support-context__actions\">\n      <CTA\n        type=\"secondaryButton\"\n        small={true}\n        darkMode={true}\n        content={ending ? \"Wird beendet …\" : \"Delegation beenden\"}\n        disabled={ending}\n        onClick={endDelegation}\n        dataTestid=\"controlFrame.supportDelegation.endButton\"\n      >\n        {#snippet iconSnippet()}\n          <Icon path={mdiLogoutVariant} />\n        {/snippet}\n      </CTA>\n    </div>\n  </aside>\n{/if}\n\n<style>\n  .support-context {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    gap: 0.75rem 1.25rem;\n    width: 100%;\n    box-sizing: border-box;\n    padding: 0.55rem 1.25rem;\n    background: var(--primary-900, #16181d);\n    color: var(--neutral-0, #ffffff);\n    border-bottom: 1px solid rgba(255, 255, 255, 0.14);\n    font-size: 0.875rem;\n    line-height: 1.4;\n  }\n\n  .support-context--expired {\n    background: color-mix(in srgb, var(--danger-700, #7a1f1f) 78%, #16181d);\n    border-bottom-color: rgba(255, 255, 255, 0.22);\n  }\n\n  .support-context__message {\n    margin: 0;\n    min-width: 0;\n    overflow-wrap: anywhere;\n    color: inherit;\n  }\n\n  .support-context__message strong {\n    font-weight: 700;\n  }\n\n  .support-context__actions {\n    display: flex;\n    align-items: center;\n    flex-shrink: 0;\n    margin-left: auto;\n  }\n\n  .support-context__sr-attribution {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border: 0;\n  }\n</style>\n","import { adminResources, type ControlWebClient } from \"@kontextwerk/control-web-client\"\nimport type { ContextAccessApi } from \"../../_shared/_logic/authentication\"\nimport type { ContextLoginApi } from \"../../_shared/_logic/authentication\"\nimport type { ContextSecurityApi } from \"../../_shared/_logic/authentication\"\nimport type { ContextRecoveryApi } from \"../../_shared/_logic/authentication\"\n\n/** Explicit opt-in bridge to the public v2 auth routes; never activates the product router. */\nexport const createContextAccessApi = (\n  client: ControlWebClient,\n): ContextAccessApi &\n  ContextLoginApi &\n  ContextSecurityApi & {\n    logout: (options: Parameters<adminResources.AdminContextAuthAPI[\"logout\"]>[0]) => Promise<void>\n    clearCsrf: () => void\n    createServiceSessionCode: adminResources.AdminContextAuthAPI[\"createServiceSessionCode\"]\n    personalSessions: adminResources.AdminContextAuthAPI[\"personalSessions\"]\n    updatePersonalProfile: adminResources.AdminContextAuthAPI[\"updatePersonalProfile\"]\n    changePassword: adminResources.AdminContextAuthAPI[\"changePassword\"]\n    personalMfa: adminResources.AdminContextAuthAPI[\"personalMfa\"]\n    requestPersonalMfaChallenge: adminResources.AdminContextAuthAPI[\"requestPersonalMfaChallenge\"]\n    changePersonalMfa: adminResources.AdminContextAuthAPI[\"changePersonalMfa\"]\n    revokePersonalSession: adminResources.AdminContextAuthAPI[\"revokePersonalSession\"]\n    revokeOtherPersonalSessions: adminResources.AdminContextAuthAPI[\"revokeOtherPersonalSessions\"]\n  } & ContextRecoveryApi => {\n  const api = new adminResources.AdminContextAuthAPI(client.transport)\n\n  return {\n    requestPasswordReset: (payload, options) => api.requestPasswordReset(payload, options),\n    verifyPasswordReset: (payload, options) => api.verifyPasswordReset(payload, options),\n    confirmPasswordReset: (payload, options) => api.confirmPasswordReset(payload, options),\n    login: (payload, options) => api.login(payload, options),\n    reauth: (payload, options) => api.reauth(payload, options),\n    personalSessions: (options) => api.personalSessions(options),\n    updatePersonalProfile: (payload, options) => api.updatePersonalProfile(payload, options),\n    changePassword: (payload, options) => api.changePassword(payload, options),\n    personalMfa: (options) => api.personalMfa(options),\n    requestPersonalMfaChallenge: (payload, options) => api.requestPersonalMfaChallenge(payload, options),\n    changePersonalMfa: (payload, options) => api.changePersonalMfa(payload, options),\n    revokePersonalSession: (id, options) => api.revokePersonalSession(id, options),\n    revokeOtherPersonalSessions: (options) => api.revokeOtherPersonalSessions(options),\n    clearCsrf: () => api.clearCsrf(),\n    createServiceSessionCode: (payload, options) => api.createServiceSessionCode(payload, options),\n    logout: (options) => api.logout(options),\n    session: (options) => api.session(options),\n    contexts: (options) => api.contexts(options),\n    loginContexts: (options) => api.loginContexts(options),\n    selectLoginContext: (request, options) => api.selectLoginContext(request, options),\n    switchContext: (request, options) => api.switchContext(request, options),\n  }\n}\n","import type { ControlWebClient } from \"@kontextwerk/control-web-client\"\n\nexport type InvitationRegistrationPayload = Readonly<{\n  organizationId: string\n  invitationId: string\n  code: string\n  username: string\n  firstName: string\n  lastName: string\n  password: string\n}>\n\n/** The created account's login address; the person signs in afterwards, no session exists. */\nexport type InvitationRegistrationResult = Readonly<{\n  email: string\n  organizationId: string\n}>\n\nexport type InvitationRegistrationRequest = Readonly<{\n  signal: AbortSignal\n  isCurrent: () => boolean\n}>\n\n/** The server answered outside the registration contract; nothing is assumed to exist. */\nexport class InvitationRegistrationContractError extends Error {\n  constructor() {\n    super(\"invitation_registration_contract_invalid\")\n    this.name = \"InvitationRegistrationContractError\"\n  }\n}\n\nconst UUID = /^[a-f\\d]{8}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{12}$/i\nconst CODE = /^[A-Za-z0-9_-]{43}$/\n\nconst parseResult = (raw: unknown, organizationId: string): InvitationRegistrationResult => {\n  if (!raw || typeof raw !== \"object\" || Array.isArray(raw))\n    throw new InvitationRegistrationContractError()\n\n  const { email, organization_id: organization, ...rest } = raw as Record<string, unknown>\n\n  if (\n    Object.keys(rest).length ||\n    typeof email !== \"string\" ||\n    !email.includes(\"@\") ||\n    typeof organization !== \"string\" ||\n    organization.toLowerCase() !== organizationId.toLowerCase()\n  )\n    throw new InvitationRegistrationContractError()\n\n  return { email, organizationId: organization }\n}\n\n/**\n * Anonymous, code-bound account registration from an organization invitation.\n * It carries no session or CSRF proof, is never replayed and grants nothing by itself.\n */\nexport const createInvitationRegistrationApi = (client: ControlWebClient) => ({\n  async register(\n    payload: InvitationRegistrationPayload,\n    request: InvitationRegistrationRequest,\n  ): Promise<InvitationRegistrationResult> {\n    if (\n      !UUID.test(payload.organizationId) ||\n      !UUID.test(payload.invitationId) ||\n      !CODE.test(payload.code)\n    )\n      throw new InvitationRegistrationContractError()\n\n    const raw = await client.transport.request<unknown>(\n      \"POST\",\n      `/public/invitations/${encodeURIComponent(payload.invitationId)}/register`,\n      {\n        json: {\n          organization_id: payload.organizationId,\n          code: payload.code,\n          username: payload.username,\n          first_name: payload.firstName,\n          last_name: payload.lastName,\n          password: payload.password,\n        },\n        withAuth: false,\n        retry: \"never\",\n        signal: request.signal,\n        isCurrent: request.isCurrent,\n      },\n    )\n\n    return parseResult(raw, payload.organizationId)\n  },\n})\n\nexport type InvitationRegistrationApi = ReturnType<typeof createInvitationRegistrationApi>\n","import { readonly, writable } from \"svelte/store\"\nimport {\n  ControlClientError,\n  IdentityAdministrationContractError,\n  type AcceptOrganizationInvitationResponse,\n  type ContextSessionResponse,\n  type RequestOptions,\n} from \"@kontextwerk/control-web-client\"\nimport type { ContextEmailVerification } from \"../../authentication\"\n\n/** Stable, deliberately non-enumerating domain refusal, not a stale-session response. */\nexport const isInvitationUnavailable = (error: unknown) =>\n  error instanceof ControlClientError &&\n  error.statusCode === 409 &&\n  error.detail === \"identity_operation_unavailable\"\n\ntype State = Readonly<{\n  status: \"ready\" | \"authenticating\" | \"submitting\" | \"accepted\" | \"invalidated\"\n  verified: boolean\n  error: \"reauth\" | \"email_verification\" | \"unavailable\" | \"failed\" | \"invalid_contract\" | null\n}>\n\n/** Captures one identity lifetime; never retains credentials or installs a membership. */\nexport const createInvitationAcceptance = (options: {\n  session: ContextSessionResponse | null\n  capture: Required<Pick<RequestOptions, \"signal\" | \"isCurrent\">>\n  emailVerification: ContextEmailVerification\n  accept(\n    organizationId: string,\n    invitationId: string,\n    code: string,\n  ): Promise<AcceptOrganizationInvitationResponse>\n  authenticate?: (password: string) => Promise<boolean>\n  hasProof: () => boolean\n  openChoices: () => Promise<boolean>\n  invalidate: () => void\n}) => {\n  const initial: State = { status: \"ready\", verified: options.session === null, error: null }\n  let state = initial\n  let disposed = false\n  const store = writable(state)\n  const set = (next: State) => {\n    state = next\n    store.set(next)\n  }\n  const current = () => !disposed && !options.capture.signal.aborted && options.capture.isCurrent()\n  const clear = () => set({ status: \"invalidated\", verified: false, error: null })\n  options.capture.signal.addEventListener(\"abort\", clear)\n  const fail = (error: unknown, kind: \"reauth\" | \"failed\") => {\n    if (!current()) return\n\n    if (\n      error instanceof ControlClientError &&\n      [401, 403, 409].includes(error.statusCode ?? 0) &&\n      !(\n        kind === \"reauth\" &&\n        error.statusCode === 401 &&\n        error.reasonCode === \"reauth_password_invalid\"\n      ) &&\n      !isInvitationUnavailable(error)\n    ) {\n      clear()\n      options.invalidate()\n\n      return\n    }\n\n    set({\n      ...state,\n      status: \"ready\",\n      error: isInvitationUnavailable(error)\n        ? \"unavailable\"\n        : error instanceof IdentityAdministrationContractError\n          ? \"invalid_contract\"\n          : kind,\n    })\n  }\n\n  return {\n    state: readonly(store),\n    email: options.session?.user.email ?? null,\n    emailVerification: options.emailVerification,\n    isCurrent: current,\n    async authenticate(password: string) {\n      if (!current() || state.status !== \"ready\" || !options.authenticate || !password) return\n\n      set({ ...state, status: \"authenticating\", error: null, verified: false })\n      try {\n        const verified = await options.authenticate(password)\n\n        if (current()) set({ status: \"ready\", verified, error: verified ? null : \"reauth\" })\n      } catch (error) {\n        fail(error, \"reauth\")\n      }\n    },\n    async accept(organizationId: string, invitationId: string, code: string) {\n      if (!current() || state.status !== \"ready\") return\n\n      if (!options.hasProof()) {\n        set({ ...state, verified: false, error: \"reauth\" })\n\n        return\n      }\n\n      set({ ...state, status: \"submitting\", error: null })\n      try {\n        const emailVerified = await options.emailVerification.load()\n\n        if (!current()) return\n\n        if (!emailVerified) {\n          set({ ...state, status: \"ready\", error: \"email_verification\" })\n\n          return\n        }\n\n        if (!options.hasProof()) {\n          set({ ...state, status: \"ready\", verified: false, error: \"reauth\" })\n\n          return\n        }\n\n        const result = await options.accept(organizationId, invitationId, code)\n\n        if (!current()) return\n\n        if (\n          result.membership.status !== \"active\" ||\n          (options.session && result.membership.user_id !== options.session.user.id)\n        )\n          throw new IdentityAdministrationContractError()\n\n        set({ ...state, status: \"accepted\", error: null })\n      } catch (error) {\n        fail(error, \"failed\")\n      }\n    },\n    async openChoices() {\n      if (!current() || state.status !== \"accepted\") return\n\n      clear()\n      await options.openChoices()\n    },\n    dispose() {\n      disposed = true\n      options.capture.signal.removeEventListener(\"abort\", clear)\n      clear()\n    },\n  }\n}\n","import { readonly, writable } from \"svelte/store\"\nimport { ControlClientError } from \"@kontextwerk/control-web-client\"\nimport type {\n  InvitationRegistrationPayload,\n  InvitationRegistrationRequest,\n  InvitationRegistrationResult,\n} from \"../../../../api/invitation-registration\"\n\nexport type InvitationRegistrationError = \"unavailable\" | \"invalid\" | \"rate-limited\" | \"failed\"\n\nexport type InvitationRegistrationState = Readonly<{\n  status: \"editing\" | \"submitting\" | \"registered\" | \"account-exists\"\n  error: InvitationRegistrationError | null\n  /** The server's policy text for a refused password or name; never a submitted value. */\n  message: string | null\n  /** Login address of the created account, known only after a successful registration. */\n  email: string | null\n}>\n\nconst editing: InvitationRegistrationState = {\n  status: \"editing\",\n  error: null,\n  message: null,\n  email: null,\n}\n\nconst refusal = (error: unknown): InvitationRegistrationState => {\n  if (!(error instanceof ControlClientError)) return { ...editing, error: \"failed\" }\n\n  if (error.statusCode === 409 && error.reasonCode === \"invitation_account_exists\")\n    return { ...editing, status: \"account-exists\" }\n\n  if (error.statusCode === 409) return { ...editing, error: \"unavailable\" }\n\n  if (error.statusCode === 429) return { ...editing, error: \"rate-limited\" }\n\n  if (error.statusCode === 422)\n    return {\n      ...editing,\n      error: \"invalid\",\n      message: typeof error.detail === \"string\" && error.detail.trim() ? error.detail : null,\n    }\n\n  return { ...editing, error: \"failed\" }\n}\n\n/**\n * One anonymous registration from an invitation link; it never retains credentials.\n * Disposal aborts a running request and discards its late answer.\n */\nexport const createInvitationRegistration = (options: {\n  register(\n    payload: InvitationRegistrationPayload,\n    request: InvitationRegistrationRequest,\n  ): Promise<InvitationRegistrationResult>\n}) => {\n  let state = editing\n  let disposed = false\n  const abort = new AbortController()\n  const store = writable(state)\n  const set = (next: InvitationRegistrationState) => {\n    state = next\n    store.set(next)\n  }\n  const current = () => !disposed && !abort.signal.aborted\n\n  return {\n    state: readonly(store),\n    isCurrent: current,\n    async submit(payload: InvitationRegistrationPayload) {\n      if (!current() || state.status === \"submitting\" || state.status === \"registered\") return\n\n      set({ ...editing, status: \"submitting\" })\n      try {\n        const result = await options.register(payload, {\n          signal: abort.signal,\n          isCurrent: current,\n        })\n\n        if (current()) set({ ...editing, status: \"registered\", email: result.email })\n      } catch (error) {\n        if (current()) set(refusal(error))\n      }\n    },\n    /** Leave a refusal to correct the draft; a completed registration stays completed. */\n    edit() {\n      if (current() && (state.status === \"editing\" || state.status === \"account-exists\"))\n        set(editing)\n    },\n    dispose() {\n      disposed = true\n      abort.abort()\n      set(editing)\n    },\n  }\n}\n\nexport type InvitationRegistration = ReturnType<typeof createInvitationRegistration>\n","export type InvitationEntry =\n  | Readonly<{ kind: \"absent\"; key: \"absent\" }>\n  | Readonly<{ kind: \"invalid\"; key: \"invalid\" }>\n  | Readonly<{\n      kind: \"ready\"\n      key: string\n      organizationId: string\n      invitationId: string\n    }>\n\nconst UUID = /^[a-f\\d]{8}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{4}-[a-f\\d]{12}$/i\n\n/** Only non-authorizing mail locators enter the form; credentials never come from the URL. */\nexport const parseInvitationEntry = (path: string, search: string | null): InvitationEntry => {\n  if (path.replace(/\\/+$/, \"\") !== \"/account/access\" || !search || search === \"?\")\n    return { kind: \"absent\", key: \"absent\" }\n\n  const invalid = { kind: \"invalid\", key: \"invalid\" } as const\n\n  if (search.length > 1024) return invalid\n\n  const params = new URLSearchParams(search)\n\n  if (\n    [...params.keys()].some((key) => ![\"organization_id\", \"invitation_id\"].includes(key)) ||\n    params.getAll(\"organization_id\").length !== 1 ||\n    params.getAll(\"invitation_id\").length !== 1\n  )\n    return invalid\n\n  const organizationId = params.get(\"organization_id\")!\n  const invitationId = params.get(\"invitation_id\")!\n\n  if (!UUID.test(organizationId) || !UUID.test(invitationId)) return invalid\n\n  const organization = organizationId.toLowerCase()\n  const invitation = invitationId.toLowerCase()\n\n  return {\n    kind: \"ready\",\n    key: `${organization}:${invitation}`,\n    organizationId: organization,\n    invitationId: invitation,\n  }\n}\n","export type ContextBroadcastPhase = \"invalidated\" | \"settled\"\nexport type ContextBroadcast = {\n  publish(phase: ContextBroadcastPhase): void\n  subscribe(listener: (phase: ContextBroadcastPhase) => void): () => void\n  dispose(): void\n}\n\n/** Same-origin invalidation hints only. Never transports identity, cookies, grants or correlation IDs. */\nexport const createContextBroadcast = (controlOrigin: string): ContextBroadcast => {\n  const origin = new URL(controlOrigin).origin\n  const key = `control-context:${origin}`\n  const sender = crypto.randomUUID()\n  const listeners = new Set<(phase: ContextBroadcastPhase) => void>()\n  const seen = new Set<string>()\n  let disposed = false\n  let channel: BroadcastChannel | null = null\n  try {\n    if (typeof BroadcastChannel !== \"undefined\") channel = new BroadcastChannel(key)\n  } catch {\n    /* Storage/focus remains available. */\n  }\n  const receive = (value: unknown) => {\n    if (disposed || !value || typeof value !== \"object\") return\n\n    const data = value as Record<string, unknown>\n\n    if (\n      Object.keys(data).sort().join() !== \"id,phase,sender,version\" ||\n      data.version !== 1 ||\n      typeof data.id !== \"string\" ||\n      data.id.length > 80 ||\n      typeof data.sender !== \"string\" ||\n      data.sender.length > 80 ||\n      data.sender === sender ||\n      (data.phase !== \"invalidated\" && data.phase !== \"settled\") ||\n      seen.has(data.id)\n    )\n      return\n\n    seen.add(data.id)\n\n    if (seen.size > 128) seen.delete(seen.values().next().value!)\n\n    for (const listener of listeners) listener(data.phase)\n  }\n  const message = (event: MessageEvent) => receive(event.data)\n  const storage = (event: StorageEvent) => {\n    if (event.key !== key || !event.newValue) return\n\n    try {\n      receive(JSON.parse(event.newValue))\n    } catch {\n      /* Ignore malformed hints. */\n    }\n  }\n  channel?.addEventListener(\"message\", message)\n\n  if (typeof window !== \"undefined\") window.addEventListener(\"storage\", storage)\n\n  return {\n    publish(phase) {\n      if (disposed) return\n\n      const data = { version: 1, phase, sender, id: crypto.randomUUID() }\n      try {\n        channel?.postMessage(data)\n      } catch {\n        /* Other transports can still invalidate. */\n      }\n      try {\n        window.localStorage.setItem(key, JSON.stringify(data))\n        window.localStorage.removeItem(key)\n      } catch {\n        /* No authority is stored; focus rechecks a missed hint. */\n      }\n    },\n    subscribe(listener) {\n      listeners.add(listener)\n\n      return () => {\n        listeners.delete(listener)\n      }\n    },\n    dispose() {\n      if (disposed) return\n\n      disposed = true\n      listeners.clear()\n      channel?.removeEventListener(\"message\", message)\n      channel?.close()\n\n      if (typeof window !== \"undefined\") window.removeEventListener(\"storage\", storage)\n    },\n  }\n}\n","import type {\n  CapabilityGrantResponse,\n  CapabilityLevel,\n  ContextSessionResponse,\n  DataScope,\n} from \"@kontextwerk/control-web-client\"\n\nexport type CapabilityDefinition = Readonly<{\n  key: string\n  levels: readonly Exclude<CapabilityLevel, \"none\">[]\n  scopes: readonly DataScope[]\n}>\nexport type CapabilityRequirement = Readonly<{\n  key: string\n  level: Exclude<CapabilityLevel, \"none\">\n  scope?: DataScope | null\n}>\nexport type OperationRequirements = Readonly<{\n  operation: string\n  all_of?: readonly CapabilityRequirement[]\n  any_of?: readonly (readonly CapabilityRequirement[])[]\n  optional?: readonly CapabilityRequirement[]\n}>\nexport type CapabilityDecision = Readonly<{\n  allowed: boolean\n  reason: \"allowed\" | \"denied\" | \"invalid_contract\" | \"wrong_context\"\n  /** Actual, declaration-bounded grants for each satisfied any-of group. */\n  alternatives: readonly (readonly CapabilityGrantResponse[])[]\n  optional: readonly Readonly<{\n    requirement: CapabilityRequirement\n    grant: CapabilityGrantResponse | null\n  }>[]\n}>\n\nconst validKey = (value: unknown): value is string =>\n  typeof value === \"string\" &&\n  /^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$/.test(value) &&\n  value.length <= 120\nconst validScope = (value: unknown): value is DataScope => value === \"own\" || value === \"all\"\nconst denied = (reason: CapabilityDecision[\"reason\"]): CapabilityDecision =>\n  Object.freeze({\n    allowed: false,\n    reason,\n    alternatives: Object.freeze([]),\n    optional: Object.freeze([]),\n  })\n\n/** UI projection only; never a server CheckedCapabilities or an authorization proof. */\nexport const evaluateCapabilities = (\n  session: ContextSessionResponse | null,\n  definitions: readonly CapabilityDefinition[],\n  requirements: OperationRequirements,\n): CapabilityDecision => {\n  if (session?.contract_version !== 2 || session.context?.kind !== \"organization\") {\n    return denied(\"wrong_context\")\n  }\n\n  const catalog = new Map<string, CapabilityDefinition>()\n\n  if (!Array.isArray(definitions)) return denied(\"invalid_contract\")\n\n  for (const definition of definitions) {\n    if (\n      !definition ||\n      !validKey(definition.key) ||\n      catalog.has(definition.key) ||\n      !Array.isArray(definition.scopes) ||\n      !definition.scopes.every(validScope) ||\n      new Set(definition.scopes).size !== definition.scopes.length ||\n      !Array.isArray(definition.levels) ||\n      !definition.levels.includes(\"view\") ||\n      !definition.levels.every((level: unknown) => level === \"view\" || level === \"manage\") ||\n      new Set(definition.levels).size !== definition.levels.length\n    )\n      return denied(\"invalid_contract\")\n\n    catalog.set(definition.key, definition)\n  }\n\n  const grants = new Map<string, CapabilityGrantResponse>()\n\n  if (!Array.isArray(session.context.capabilities)) return denied(\"invalid_contract\")\n\n  for (const grant of session.context.capabilities) {\n    const definition = grant && catalog.get(grant.key)\n\n    if (!definition || grants.has(grant.key)) return denied(\"invalid_contract\")\n\n    if (grant.level !== \"none\" && grant.level !== \"view\" && grant.level !== \"manage\") {\n      return denied(\"invalid_contract\")\n    }\n\n    if (grant.level === \"none\") {\n      if (grant.scope !== null) return denied(\"invalid_contract\")\n    } else {\n      if (!definition.levels.includes(grant.level)) return denied(\"invalid_contract\")\n\n      if (\n        definition.scopes.length\n          ? !definition.scopes.includes(grant.scope as DataScope)\n          : grant.scope !== null\n      ) {\n        return denied(\"invalid_contract\")\n      }\n    }\n\n    grants.set(grant.key, grant)\n  }\n\n  if (\n    !requirements ||\n    typeof requirements.operation !== \"string\" ||\n    !/^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$/.test(requirements.operation)\n  ) {\n    return denied(\"invalid_contract\")\n  }\n\n  const all = requirements.all_of === undefined ? [] : requirements.all_of\n  const any = requirements.any_of === undefined ? [] : requirements.any_of\n  const optional = requirements.optional === undefined ? [] : requirements.optional\n  const validList = (items: readonly CapabilityRequirement[]): boolean => {\n    if (!Array.isArray(items)) return false\n\n    const seen = new Set<string>()\n\n    return items.every((item) => {\n      const definition = item && catalog.get(item.key)\n\n      if (!definition || (item.level !== \"view\" && item.level !== \"manage\")) return false\n\n      if (!definition.levels.includes(item.level)) return false\n\n      if (item.scope != null && !definition.scopes.includes(item.scope)) return false\n\n      const key = JSON.stringify([item.key, item.level, item.scope ?? null])\n\n      if (seen.has(key)) return false\n\n      seen.add(key)\n\n      return true\n    })\n  }\n\n  if (\n    !validList(all) ||\n    !validList(optional) ||\n    !Array.isArray(any) ||\n    !any.every((group) => Array.isArray(group) && group.length > 0 && validList(group))\n  ) {\n    return denied(\"invalid_contract\")\n  }\n\n  // Optional-only or empty metadata must not unlock a protected UI operation.\n  if (!all.length && !any.length) return denied(\"invalid_contract\")\n\n  const match = (item: CapabilityRequirement): CapabilityGrantResponse | null => {\n    const grant = grants.get(item.key)\n\n    if (!grant || grant.level === \"none\") return null\n\n    if (grant.level !== item.level && !(grant.level === \"manage\" && item.level === \"view\"))\n      return null\n\n    if (\n      item.scope != null &&\n      grant.scope !== item.scope &&\n      !(grant.scope === \"all\" && item.scope === \"own\")\n    )\n      return null\n\n    return Object.freeze({ key: item.key, level: item.level, scope: item.scope ?? grant.scope })\n  }\n\n  const alternatives = any.map((group: readonly CapabilityRequirement[]) =>\n    group.map(match).filter((grant) => grant !== null),\n  )\n\n  if (!all.every((item) => match(item) !== null) || alternatives.some((group) => !group.length)) {\n    return denied(\"denied\")\n  }\n\n  return Object.freeze({\n    allowed: true,\n    reason: \"allowed\",\n    alternatives: Object.freeze(alternatives.map((group) => Object.freeze(group))),\n    optional: Object.freeze(\n      optional.map((item) =>\n        Object.freeze({\n          requirement: Object.freeze({ ...item }),\n          grant: match(item),\n        }),\n      ),\n    ),\n  })\n}\n","import type { CapabilityDefinition } from \"./capabilities\"\n\nconst view = Object.freeze([\"view\"] as const)\nconst manage = Object.freeze([\"view\", \"manage\"] as const)\nconst unscoped = Object.freeze([] as const)\nconst ownAll = Object.freeze([\"own\", \"all\"] as const)\nconst all = Object.freeze([\"all\"] as const)\n\n// Projection of Control Core services/utils/authorization/catalog.py, not role defaults.\nconst definitions = [\n  { key: \"core.notes\", levels: manage, scopes: unscoped },\n  { key: \"core.projects\", levels: manage, scopes: unscoped },\n  { key: \"core.memberships\", levels: manage, scopes: unscoped },\n  { key: \"core.roles\", levels: manage, scopes: unscoped },\n  { key: \"core.org_settings\", levels: manage, scopes: unscoped },\n  { key: \"core.assistant_configuration\", levels: manage, scopes: unscoped },\n  { key: \"core.billing\", levels: manage, scopes: unscoped },\n  { key: \"core.communication_channels\", levels: manage, scopes: unscoped },\n  { key: \"core.contact_orders\", levels: manage, scopes: unscoped },\n  { key: \"core.activity\", levels: view, scopes: unscoped },\n  { key: \"core.audit_log\", levels: view, scopes: unscoped },\n  { key: \"core.analytics\", levels: view, scopes: unscoped },\n  { key: \"core.notifications\", levels: manage, scopes: ownAll },\n  { key: \"core.calendar_integrations\", levels: manage, scopes: ownAll },\n  { key: \"core.kontext_index\", levels: view, scopes: unscoped },\n  { key: \"core.kontext_answer_library\", levels: manage, scopes: unscoped },\n  { key: \"core.kontext_file_upload\", levels: manage, scopes: unscoped },\n  { key: \"core.kontext_website_index\", levels: manage, scopes: unscoped },\n  { key: \"core.kontext_sharepoint\", levels: manage, scopes: unscoped },\n  { key: \"core.werk_sessions\", levels: manage, scopes: all },\n  { key: \"core.werk_telephony\", levels: manage, scopes: unscoped },\n] as const satisfies readonly CapabilityDefinition[]\n\ntype Definition = (typeof definitions)[number]\nexport type CoreCapabilityKey = Definition[\"key\"]\ntype PositiveGrant<T extends Definition> = T extends Definition\n  ? Readonly<{\n      key: T[\"key\"]\n      level: T[\"levels\"][number]\n      scope: T[\"scopes\"] extends readonly [] ? null : T[\"scopes\"][number]\n    }>\n  : never\nexport type CoreCapabilityGrant =\n  | PositiveGrant<Definition>\n  | Readonly<{\n      key: CoreCapabilityKey\n      level: \"none\"\n      scope: null\n    }>\nexport type CoreCapabilityRequirement =\n  PositiveGrant<Definition> extends infer Grant\n    ? Grant extends { key: infer Key; level: infer Level; scope: infer Scope }\n      ? Readonly<{ key: Key; level: Level; scope?: Scope | null }>\n      : never\n    : never\n\nexport const CORE_CAPABILITY_DEFINITIONS: readonly CapabilityDefinition[] = Object.freeze(\n  definitions.map((definition) => Object.freeze(definition)),\n)\n","import type {\n  ContextSessionResponse,\n  DataScope,\n  GlobalStaffRole,\n} from \"@kontextwerk/control-web-client\"\nimport { evaluateCapabilities, type CapabilityDefinition } from \"./capabilities\"\n\nexport type PermissionLevel = \"view\" | \"manage\"\nexport type PermissionScope = DataScope\nexport type PermissionContextKind = \"organization\" | \"platform\" | \"none\"\n\n/**\n * Presentation projection of the confirmed V2 context; never an authorization proof.\n *\n * Organization contexts expose only their membership grants. Platform contexts expose only the\n * closed staff role of their assignment and no organization capability. There is no role, admin\n * or super-user shortcut.\n */\nexport type PermissionState = Readonly<{\n  context: PermissionContextKind\n  platformRole: GlobalStaffRole | null\n  allows(\n    key: string,\n    level?: PermissionLevel,\n    options?: { scope?: PermissionScope | null },\n  ): boolean\n  highestScope(key: string, level?: PermissionLevel): PermissionScope | null\n}>\n\nconst denyAll = (): boolean => false\nconst noScope = (): PermissionScope | null => null\n\nexport const NO_PERMISSIONS: PermissionState = Object.freeze({\n  context: \"none\",\n  platformRole: null,\n  allows: denyAll,\n  highestScope: noScope,\n})\n\n/** Build the projection for one immutable session; unknown or expired state denies everything. */\nexport const buildPermissionState = (\n  session: ContextSessionResponse | null | undefined,\n  definitions: readonly CapabilityDefinition[],\n  now: () => number = Date.now,\n): PermissionState => {\n  if (!session || session.contract_version !== 2 || session.password_change_required)\n    return NO_PERMISSIONS\n\n  const context = session.context\n\n  if (context.kind === \"platform\") {\n    if (context.role !== \"platform_administrator\" && context.role !== \"support_agent\")\n      return NO_PERMISSIONS\n\n    return Object.freeze({\n      context: \"platform\",\n      platformRole: context.role,\n      allows: denyAll,\n      highestScope: noScope,\n    })\n  }\n\n  if (context.kind !== \"organization\") return NO_PERMISSIONS\n\n  const decisions = new Map<string, boolean>()\n  const delegationActive = () =>\n    !context.delegation || Date.parse(context.delegation.expires_at) > now()\n  const allows = (\n    key: string,\n    level: PermissionLevel = \"view\",\n    options?: { scope?: PermissionScope | null },\n  ): boolean => {\n    if (!delegationActive()) return false\n\n    const scope = options?.scope ?? null\n    const cacheKey = JSON.stringify([key, level, scope])\n    const cached = decisions.get(cacheKey)\n\n    if (cached !== undefined) return cached\n\n    const allowed = evaluateCapabilities(session, definitions, {\n      operation: \"frame.presentation\",\n      all_of: [{ key, level, scope }],\n    }).allowed\n    decisions.set(cacheKey, allowed)\n\n    return allowed\n  }\n\n  const highestScope = (key: string, level: PermissionLevel = \"view\"): PermissionScope | null => {\n    if (allows(key, level, { scope: \"all\" })) return \"all\"\n\n    return allows(key, level, { scope: \"own\" }) ? \"own\" : null\n  }\n\n  return Object.freeze({\n    context: \"organization\",\n    platformRole: null,\n    allows,\n    highestScope,\n  })\n}\n\n/** Platform operations admit the closed staff roles their server requirement declares. */\nexport const allowsPlatformOperation = (\n  permissions: Pick<PermissionState, \"context\" | \"platformRole\">,\n  roles: readonly GlobalStaffRole[] = [\"platform_administrator\"],\n): boolean =>\n  permissions.context === \"platform\" &&\n  permissions.platformRole !== null &&\n  roles.includes(permissions.platformRole)\n","import type { ContextSessionResponse } from \"@kontextwerk/control-web-client\"\nimport { evaluateCapabilities, type CapabilityDefinition } from \"../authorization\"\n\nexport type IdentityAdministrationKind = \"memberships\" | \"roles\" | \"staff\"\n/** Projection of identity_administration/boundary.py, not a global staff bypass. */\nexport const allowsIdentityAdministration = (\n  session: ContextSessionResponse | null,\n  catalog: readonly CapabilityDefinition[],\n  kind: IdentityAdministrationKind,\n  level: \"view\" | \"manage\",\n): boolean => {\n  if (\n    !session ||\n    session.contract_version !== 2 ||\n    session.password_change_required ||\n    ![\"view\", \"manage\"].includes(level) ||\n    ![\"memberships\", \"roles\", \"staff\"].includes(kind)\n  )\n    return false\n\n  if (kind === \"staff\")\n    return session.context.kind === \"platform\" && session.context.role === \"platform_administrator\"\n\n  if (\n    session.context.kind !== \"organization\" ||\n    (session.context.delegation && Date.parse(session.context.delegation.expires_at) <= Date.now())\n  )\n    return false\n\n  return evaluateCapabilities(session, catalog, {\n    operation: `core.${kind}.${level}`,\n    all_of: [{ key: `core.${kind}`, level }],\n  }).allowed\n}\nexport const identityAdministrationNavigation = (\n  session: ContextSessionResponse | null,\n  catalog: readonly CapabilityDefinition[],\n) => {\n  const definitions = [\n    { id: \"memberships\" as const, label: \"Mitgliedschaften\" },\n    { id: \"roles\" as const, label: \"Organisationsrollen\" },\n    { id: \"staff\" as const, label: \"Plattform-Staff\" },\n  ]\n\n  return definitions\n    .filter((entry) => allowsIdentityAdministration(session, catalog, entry.id, \"view\"))\n    .map((entry) => ({\n      ...entry,\n      href:\n        entry.id === \"staff\"\n          ? \"/platform/staff-assignments\"\n          : `/organizations/${session!.context.kind === \"organization\" ? session!.context.organization_id : \"\"}/administration/${entry.id}`,\n      canManage: allowsIdentityAdministration(session, catalog, entry.id, \"manage\"),\n    }))\n}\n","import { readonly, writable } from \"svelte/store\"\nimport {\n  parseContextSession,\n  type ContextSessionResponse,\n  type OrganizationMembershipResponse,\n  type OrganizationRoleResponse,\n  type PlatformStaffAssignmentResponse,\n  type ChangeMembershipAccessRequest,\n  type CreateOrganizationRoleRequest,\n  type AssignPlatformStaffRequest,\n  type ChangePlatformStaffAccessRequest,\n} from \"@kontextwerk/control-web-client\"\nimport type { IdentityAdministrationApi } from \"../../../api/identity-administration\"\nimport type { ContextMutationBinding, createContextSecurity } from \"../authentication\"\nimport type { CapabilityDefinition } from \"../authorization\"\nimport { allowsIdentityAdministration, type IdentityAdministrationKind } from \"./metadata\"\n\ntype Editor =\n  | { kind: \"memberships\"; record: OrganizationMembershipResponse }\n  | { kind: \"roles\"; record: OrganizationRoleResponse | null }\n  | { kind: \"staff\"; record: PlatformStaffAssignmentResponse | null }\ntype ConfirmAuthority = (authenticate: (password: string) => Promise<null>) => Promise<boolean>\ntype State = {\n  status: \"idle\" | \"loading\" | \"ready\" | \"saving\" | \"invalidated\"\n  kind: IdentityAdministrationKind | null\n  memberships: readonly OrganizationMembershipResponse[]\n  roles: readonly OrganizationRoleResponse[]\n  staff: readonly PlatformStaffAssignmentResponse[]\n  nextAfterId: string | null\n  editor: Editor | null\n  error: string | null\n  saved: boolean\n}\nconst empty = (): State => ({\n  status: \"idle\",\n  kind: null,\n  memberships: [],\n  roles: [],\n  staff: [],\n  nextAfterId: null,\n  editor: null,\n  error: null,\n  saved: false,\n})\n\n/** One immutable initiating context; no submit-time rebinding, credential editor or retry wrapper. */\nexport const createIdentityAdministration = (options: {\n  session: ContextSessionResponse\n  capture: ContextMutationBinding\n  definitions: readonly CapabilityDefinition[]\n  api: IdentityAdministrationApi\n  security: Pick<ReturnType<typeof createContextSecurity>, \"authenticate\" | \"validFor\">\n  onAuthorityChanged: () => void | Promise<void>\n}) => {\n  const session = parseContextSession(options.session)\n  const capture = options.capture.requestOptions\n\n  if (\n    session.session_id !== capture.mutationContext.expected_session_id ||\n    session.context_revision !== capture.mutationContext.expected_context_revision\n  )\n    throw new TypeError(\"Mismatched identity administration context\")\n\n  let state = empty()\n  const store = writable(state)\n  let generation = 0\n  let disposed = false\n  let invalidated = false\n  const set = (next: State) => {\n    state = next\n    store.set(next)\n  }\n  const invalidate = () => {\n    invalidated = true\n    generation += 1\n    set({ ...empty(), status: \"invalidated\" })\n  }\n  const current = () => !disposed && !invalidated && !capture.signal.aborted && capture.isCurrent()\n  const allowed = (kind: IdentityAdministrationKind, level: \"view\" | \"manage\") =>\n    current() && allowsIdentityAdministration(session, options.definitions, kind, level)\n  const organization = () =>\n    session.context.kind === \"organization\"\n      ? session.context.organization_id\n      : (() => {\n          throw new Error(\"Organization context required\")\n        })()\n  const requireAccess = (kind: IdentityAdministrationKind, level: \"view\" | \"manage\") => {\n    if (!allowed(kind, level))\n      throw new DOMException(\"Identity operation unavailable\", \"NotAllowedError\")\n  }\n  const failure = (error: unknown) => {\n    const status = (error as { statusCode?: number })?.statusCode\n\n    if (!current() || [401, 403, 409].includes(status ?? 0)) {\n      invalidate()\n\n      return\n    }\n\n    set({\n      ...state,\n      status: \"ready\",\n      error: \"Aenderung oder Anfrage konnte nicht bestaetigt werden.\",\n      saved: false,\n    })\n  }\n  capture.signal.addEventListener(\"abort\", invalidate)\n  const load = async (kind: IdentityAdministrationKind, afterId: string | null = null) => {\n    requireAccess(kind, \"view\")\n    const ticket = ++generation\n    set({ ...empty(), kind, status: \"loading\" })\n    try {\n      if (kind === \"memberships\") {\n        const result = await options.api.memberships(\n          organization(),\n          { limit: 50, after_id: afterId },\n          capture,\n        )\n        const roles = allowed(\"roles\", \"view\")\n          ? (await options.api.roles(organization(), capture)).items\n          : []\n\n        if (ticket === generation && current())\n          set({\n            ...state,\n            status: \"ready\",\n            memberships: result.items,\n            roles,\n            nextAfterId: result.next_after_id,\n          })\n      } else if (kind === \"roles\") {\n        const result = await options.api.roles(organization(), capture)\n\n        if (ticket === generation && current())\n          set({ ...state, status: \"ready\", roles: result.items })\n      } else {\n        const result = await options.api.staff({ limit: 50, after_id: afterId }, capture)\n\n        if (ticket === generation && current())\n          set({ ...state, status: \"ready\", staff: result.items, nextAfterId: result.next_after_id })\n      }\n    } catch (error) {\n      if (ticket === generation) failure(error)\n    }\n  }\n  const open = async (id: string) => {\n    const kind = state.kind\n\n    if (!kind || state.status !== \"ready\") return\n\n    requireAccess(kind, \"view\")\n    const ticket = ++generation\n    set({ ...state, editor: null, error: null, saved: false, status: \"loading\" })\n    try {\n      const editor: Editor =\n        kind === \"memberships\"\n          ? { kind, record: await options.api.membership(organization(), id, capture) }\n          : kind === \"roles\"\n            ? { kind, record: await options.api.role(organization(), id, capture) }\n            : { kind, record: await options.api.staffAssignment(id, capture) }\n\n      if (ticket === generation && current()) set({ ...state, status: \"ready\", editor })\n    } catch (error) {\n      if (ticket === generation) failure(error)\n    }\n  }\n  const save = async (\n    kind: IdentityAdministrationKind,\n    action: () => Promise<{ changed: boolean }>,\n    confirm: ConfirmAuthority,\n  ): Promise<boolean> => {\n    requireAccess(kind, \"manage\")\n\n    if (state.status !== \"ready\" || state.editor?.kind !== kind) return false\n\n    const ticket = ++generation\n    let confirming = true\n    let authenticated = false\n    set({ ...state, status: \"saving\", error: null, saved: false })\n    try {\n      const confirmed = await confirm(async (password) => {\n        if (!confirming || ticket !== generation || !current())\n          throw new DOMException(\"Obsolete reauthentication context\", \"AbortError\")\n\n        if (!(await options.security.authenticate(password, options.capture)))\n          throw new DOMException(\"Obsolete reauthentication context\", \"AbortError\")\n\n        authenticated = confirming && ticket === generation && current()\n\n        return null\n      })\n      confirming = false\n\n      if (ticket !== generation || !current()) return false\n\n      if (!confirmed || !authenticated || !options.security.validFor(options.capture)) {\n        set({ ...state, status: \"ready\" })\n\n        return false\n      }\n\n      const result = await action()\n\n      if (ticket !== generation || !current()) return false\n\n      if (result.changed) {\n        invalidate()\n        await options.onAuthorityChanged()\n      } else set({ ...state, status: \"ready\", editor: null, saved: true })\n\n      return true\n    } catch (error) {\n      if (ticket === generation) failure(error)\n\n      return false\n    } finally {\n      confirming = false\n    }\n  }\n\n  return {\n    state: readonly(store),\n    definitions: options.definitions,\n    allowed,\n    load,\n    open,\n    create(kind: \"roles\" | \"staff\") {\n      requireAccess(kind, \"manage\")\n\n      if (state.status !== \"ready\" || state.kind !== kind) return\n\n      set({ ...state, editor: { kind, record: null }, error: null, saved: false })\n    },\n    close() {\n      if (state.status === \"ready\") set({ ...state, editor: null, error: null })\n    },\n    saveMembership(\n      payload: Omit<ChangeMembershipAccessRequest, \"expected_revision\">,\n      confirm: ConfirmAuthority,\n    ) {\n      const editor = state.editor\n\n      if (editor?.kind !== \"memberships\") return Promise.resolve(false)\n\n      const request = { ...payload, expected_revision: editor.record.revision }\n\n      return save(\n        \"memberships\",\n        () => options.api.changeMembership(organization(), editor.record.id, request, capture),\n        confirm,\n      )\n    },\n    saveRole(payload: CreateOrganizationRoleRequest, confirm: ConfirmAuthority) {\n      const editor = state.editor\n\n      if (editor?.kind !== \"roles\" || (editor.record && editor.record.kind !== \"custom\"))\n        return Promise.resolve(false)\n\n      const request = { ...payload, grants: payload.grants.map((grant) => ({ ...grant })) }\n\n      return save(\n        \"roles\",\n        () =>\n          editor.record\n            ? options.api.replaceRole(\n                organization(),\n                editor.record.id,\n                { ...request, expected_revision: editor.record.revision },\n                capture,\n              )\n            : options.api.createRole(organization(), request, capture),\n        confirm,\n      )\n    },\n    saveStaff(\n      payload:\n        | AssignPlatformStaffRequest\n        | Omit<ChangePlatformStaffAccessRequest, \"expected_revision\">,\n      confirm: ConfirmAuthority,\n    ) {\n      const editor = state.editor\n\n      if (editor?.kind !== \"staff\") return Promise.resolve(false)\n\n      const request = { ...payload }\n\n      return save(\n        \"staff\",\n        () =>\n          editor.record\n            ? options.api.changeStaff(\n                editor.record.id,\n                {\n                  role: request.role,\n                  status: \"status\" in request ? request.status : editor.record.status,\n                  expected_revision: editor.record.revision,\n                },\n                capture,\n              )\n            : options.api.assignStaff(request as AssignPlatformStaffRequest, capture),\n        confirm,\n      )\n    },\n    dispose() {\n      disposed = true\n      capture.signal.removeEventListener(\"abort\", invalidate)\n      invalidate()\n    },\n  }\n}\nexport type IdentityAdministration = ReturnType<typeof createIdentityAdministration>\n","import { adminResources, type ControlWebClient } from \"@kontextwerk/control-web-client\"\n\n/** Explicit opt-in transport for the published identity_administration router. */\nexport const createIdentityAdministrationApi = (client: ControlWebClient) =>\n  new adminResources.AdminIdentityAdministrationAPI(client.transport)\nexport type IdentityAdministrationApi = Pick<\n  adminResources.AdminIdentityAdministrationAPI,\n  | \"memberships\"\n  | \"membership\"\n  | \"changeMembership\"\n  | \"roles\"\n  | \"role\"\n  | \"createRole\"\n  | \"replaceRole\"\n  | \"staff\"\n  | \"staffAssignment\"\n  | \"assignStaff\"\n  | \"changeStaff\"\n>\n","import { derived, writable, type Writable } from \"svelte/store\"\nimport {\n  resolveWidgetCdnBase,\n  resolveTranscriptionStream,\n  type AssistWidgetConfig,\n} from \"@kontextwerk/web-sdk/core\"\nimport { baseAPIURL } from \"../runtime-config\"\n\n// Internal Assist loader: fetches widget config via the unified /public/widget/config endpoint.\n\nexport type InternalAssistWidgetConfig = AssistWidgetConfig & {\n  organizationId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n}\n\nconst internalAssistWidgetConfigStore: Writable<InternalAssistWidgetConfig | null> = writable(null)\n\nexport const internalAssistWidgetConfig = internalAssistWidgetConfigStore\nexport const isInternalAssistConfigured = derived(internalAssistWidgetConfigStore, (cfg) =>\n  Boolean(cfg),\n)\n\ntype InternalAssistWidgetConfigResponse = {\n  project_slug?: string\n  organization_id?: string | null\n  project_name?: string | null\n  project_id?: string | null\n  realization_id?: string | null\n  realization_slug?: string | null\n  api_base?: string | null\n  cdn_base?: string | null\n  transcription_stream?: string | null\n}\n\nconst readBooleanEnvFlag = (key: string): boolean => {\n  if (typeof globalThis === \"undefined\" || !globalThis) return false\n\n  const runtime = (\n    globalThis as typeof globalThis & {\n      process?: { env?: Record<string, string | undefined> }\n    }\n  ).process\n  const raw = runtime?.env?.[key]\n\n  return [\"1\", \"true\", \"yes\", \"on\"].includes(\n    String(raw ?? \"\")\n      .trim()\n      .toLowerCase(),\n  )\n}\n\nconst ownedPreloads = new Map<string, unknown>()\nconst seedWidgetConfigPreload = (payload: unknown): void => {\n  if (typeof window === \"undefined\") return\n\n  if (!payload || typeof payload !== \"object\") return\n\n  const data = payload as Record<string, unknown>\n  const project =\n    typeof data.project_name === \"string\"\n      ? data.project_name.trim()\n      : typeof data.project_slug === \"string\"\n        ? data.project_slug.trim()\n        : \"\"\n\n  if (!project) return\n\n  const realizationRaw = typeof data.realization_id === \"string\" ? data.realization_id.trim() : \"\"\n  const normalizedRealization = realizationRaw ? realizationRaw.toLowerCase() : \"default\"\n  const organizationRaw =\n    typeof data.organization_id === \"string\" ? data.organization_id.trim() : \"\"\n  const normalizedOrganization = organizationRaw ? organizationRaw.toLowerCase() : \"global\"\n\n  const adminKey = typeof data.admin_key === \"string\" ? data.admin_key.trim() : \"\"\n\n  const normalizedProject = project.toLowerCase()\n  const cacheKey = adminKey\n    ? `${normalizedProject}::${normalizedOrganization}::${normalizedRealization}::admin::${adminKey}`\n    : `${normalizedProject}::${normalizedOrganization}::${normalizedRealization}::anon`\n\n  const globalAny = window as typeof window & {\n    __kontextwerkWidgetConfigPreload?: Record<string, unknown>\n  }\n  globalAny.__kontextwerkWidgetConfigPreload = globalAny.__kontextwerkWidgetConfigPreload ?? {}\n  globalAny.__kontextwerkWidgetConfigPreload[cacheKey] = payload\n  ownedPreloads.set(cacheKey, payload)\n}\n\nconst resolveKontextwerkWidgetsBase = (hostname: string | null): string | null => {\n  const host = (hostname ?? \"\").toLowerCase()\n\n  if (!host) return null\n\n  if (host.includes(\"kehrblatt\")) {\n    return \"https://widgets.kehrblatt-control.kontextwerk.org\"\n  }\n\n  if (host.includes(\"plattform-control\")) {\n    return \"https://widgets.plattform-control.de\"\n  }\n\n  return \"https://widgets.kontextwerk.info\"\n}\n\nconst fetchWidgetConfigByProjectName = async (\n  projectName: string,\n  organizationId: string | null = null,\n  signal?: AbortSignal,\n  isCurrent: () => boolean = () => true,\n): Promise<InternalAssistWidgetConfig | null> => {\n  const base = (baseAPIURL || \"\").replace(/\\/+$/, \"\")\n  const params = new URLSearchParams()\n  const normalizedProjectName = projectName.trim()\n\n  if (!normalizedProjectName) return null\n\n  params.set(\"project_name\", normalizedProjectName)\n  const org = (organizationId ?? \"\").trim()\n\n  if (org) params.set(\"organization_id\", org)\n\n  const url = `${base}/public/widget/config?${params.toString()}`\n  try {\n    const res = await fetch(url, { credentials: \"include\", signal })\n\n    if (!res.ok) {\n      console.warn(\"internal_assist_widget_fetch_failed\", res.status)\n\n      return null\n    }\n\n    const data = (await res.json()) as InternalAssistWidgetConfigResponse\n\n    if (!isCurrent() || signal?.aborted) return null\n\n    const runtimeApiBase = data.api_base ?? null\n    const transcriptionStream =\n      data.transcription_stream ?? resolveTranscriptionStream(runtimeApiBase, null)\n    seedWidgetConfigPreload({\n      ...data,\n      transcription_stream: transcriptionStream,\n    })\n\n    const fallbackKontextwerkBase = resolveKontextwerkWidgetsBase(\n      typeof window === \"undefined\" ? null : window.location.hostname,\n    )\n    const cdnBase =\n      data.cdn_base?.trim() ||\n      resolveWidgetCdnBase(typeof window === \"undefined\" ? null : window.location.hostname, {\n        kontextwerkBase: fallbackKontextwerkBase,\n      })\n    const projectSelector = data.project_name?.trim() || data.project_slug?.trim() || null\n\n    if (!projectSelector || !cdnBase) return null\n\n    return {\n      projectSlug: projectSelector,\n      organizationId: data.organization_id ?? org ?? null,\n      projectId: data.project_id ?? null,\n      apiBase: runtimeApiBase,\n      cdnBase,\n      transcriptionStream,\n      realizationId: data.realization_id ?? null,\n    }\n  } catch (err) {\n    if (!isCurrent() || signal?.aborted) return null\n\n    console.warn(\"internal_assist_widget_fetch_error\", err)\n\n    return null\n  }\n}\n\ntype InternalAssistCacheEntry = {\n  value: InternalAssistWidgetConfig | null\n  cachedAt: number\n}\n\nconst DEFAULT_ORG_CACHE_KEY = \"__default__\"\nconst DEFAULT_PROJECT_CACHE_KEY = \"__project__\"\nconst internalAssistConfigCacheByOrg = new Map<string, InternalAssistCacheEntry>()\nconst internalAssistConfigPromiseByOrg = new Map<\n  string,\n  Promise<InternalAssistWidgetConfig | null>\n>()\nlet activeInternalAssistCacheKey = `${DEFAULT_PROJECT_CACHE_KEY}::${DEFAULT_ORG_CACHE_KEY}`\nlet assistGeneration = 0\nlet assistAbort = new AbortController()\n\nconst INTERNAL_ASSIST_CFG_TTL_MS = 60_000\nconst INTERNAL_ASSIST_NULL_TTL_MS = 5_000\nconst isE2EMode = (() => {\n  return readBooleanEnvFlag(\"KW_E2E_MODE\")\n})()\n\nconst toOrgCacheKey = (organizationId: string | null | undefined): string => {\n  const normalized = (organizationId ?? \"\").trim().toLowerCase()\n\n  return normalized || DEFAULT_ORG_CACHE_KEY\n}\n\nconst toAssistCacheKey = (\n  organizationId: string | null | undefined,\n  projectName: string,\n): string => {\n  const normalizedProject = projectName.trim().toLowerCase() || DEFAULT_PROJECT_CACHE_KEY\n\n  return `${normalizedProject}::${toOrgCacheKey(organizationId)}`\n}\n\nconst setActiveConfigIfCurrent = (\n  cacheKey: string,\n  cfg: InternalAssistWidgetConfig | null,\n): void => {\n  if (cacheKey !== activeInternalAssistCacheKey) return\n\n  internalAssistWidgetConfigStore.set(cfg)\n}\n\nexport const initializeInternalAssistForOrg = async (\n  organizationId: string | null,\n  options: { projectName: string } | null,\n): Promise<InternalAssistWidgetConfig | null> => {\n  if (isE2EMode) {\n    internalAssistWidgetConfigStore.set(null)\n\n    return null\n  }\n\n  const normalizedProjectName = (options?.projectName ?? \"\").trim()\n\n  if (!normalizedProjectName) {\n    internalAssistWidgetConfigStore.set(null)\n\n    return null\n  }\n\n  const normalizedOrganizationId = (organizationId ?? \"\").trim() || null\n  const cacheKey = toAssistCacheKey(normalizedOrganizationId, normalizedProjectName)\n  const previousCacheKey = activeInternalAssistCacheKey\n  activeInternalAssistCacheKey = cacheKey\n\n  if (previousCacheKey !== cacheKey) {\n    // Prevent stale scope leakage while the next org/project scoped config is loading.\n    internalAssistWidgetConfigStore.set(null)\n  }\n\n  const now = Date.now()\n  const cached = internalAssistConfigCacheByOrg.get(cacheKey)\n\n  if (cached) {\n    const ttl = cached.value ? INTERNAL_ASSIST_CFG_TTL_MS : INTERNAL_ASSIST_NULL_TTL_MS\n\n    if (now - cached.cachedAt < ttl) {\n      setActiveConfigIfCurrent(cacheKey, cached.value)\n\n      return cached.value\n    }\n  }\n\n  const runningPromise = internalAssistConfigPromiseByOrg.get(cacheKey)\n\n  if (runningPromise) return runningPromise\n\n  const generation = assistGeneration\n  const signal = assistAbort.signal\n  const isCurrent = () => generation === assistGeneration && !signal.aborted\n  const nextPromise = (async (): Promise<InternalAssistWidgetConfig | null> => {\n    const cfg = await fetchWidgetConfigByProjectName(\n      normalizedProjectName,\n      normalizedOrganizationId,\n      signal,\n      isCurrent,\n    )\n\n    if (!isCurrent()) return null\n\n    internalAssistConfigCacheByOrg.set(cacheKey, {\n      value: cfg,\n      cachedAt: Date.now(),\n    })\n    setActiveConfigIfCurrent(cacheKey, cfg)\n\n    return cfg\n  })()\n    .catch((err: unknown): null => {\n      if (!isCurrent()) return null\n\n      console.warn(\"internal_assist_widget_fetch_error\", err)\n      internalAssistConfigCacheByOrg.set(cacheKey, {\n        value: null,\n        cachedAt: Date.now(),\n      })\n      setActiveConfigIfCurrent(cacheKey, null)\n\n      return null\n    })\n    .finally(() => {\n      if (isCurrent()) internalAssistConfigPromiseByOrg.delete(cacheKey)\n    })\n\n  internalAssistConfigPromiseByOrg.set(cacheKey, nextPromise)\n\n  return nextPromise\n}\n\nexport const teardownInternalAssist = (): void => {\n  assistGeneration += 1\n  assistAbort.abort()\n  assistAbort = new AbortController()\n  internalAssistWidgetConfigStore.set(null)\n  activeInternalAssistCacheKey = `${DEFAULT_PROJECT_CACHE_KEY}::${DEFAULT_ORG_CACHE_KEY}`\n  internalAssistConfigCacheByOrg.clear()\n  internalAssistConfigPromiseByOrg.clear()\n\n  if (typeof window !== \"undefined\") {\n    const preload = (\n      window as typeof window & { __kontextwerkWidgetConfigPreload?: Record<string, unknown> }\n    ).__kontextwerkWidgetConfigPreload\n    for (const [key, value] of ownedPreloads) {\n      if (preload?.[key] === value) delete preload[key]\n    }\n  }\n\n  ownedPreloads.clear()\n}\n\nexport const getInternalAssistWidgetConfigSnapshot = (): InternalAssistWidgetConfig | null => {\n  let snapshot: InternalAssistWidgetConfig | null = null\n  internalAssistWidgetConfigStore.subscribe((value) => {\n    snapshot = value\n  })()\n\n  return snapshot\n}\n\nexport const resetInternalAssistWidgetConfig = (): void => internalAssistWidgetConfigStore.set(null)\n\nexport const internalAssistWidgetConfigWritable = internalAssistWidgetConfigStore\n\n// Backwards-compat aliases\nexport const loadInternalAssistWidgetConfigForOrg = initializeInternalAssistForOrg\n","import { writable } from \"svelte/store\"\nimport type { ControlFrameConfig, ResolvedNavItem } from \"../frame-contract\"\n\nexport const primaryNav = writable<ResolvedNavItem[]>([])\nexport const frameConfig = writable<ControlFrameConfig | null>(null)\n\nexport const setPrimaryNav = (items: ResolvedNavItem[]) => {\n  primaryNav.set(items)\n}\n\nexport const setFrameConfig = (config: ControlFrameConfig | null) => {\n  frameConfig.set(config)\n}\n","import { writable } from \"svelte/store\"\n\nimport type { FooterLegalLink } from \"../../frame-contract\"\n\nexport type FooterBrandingOverride = {\n  symbol_bright?: string | null\n  symbol_dark?: string | null\n  logo_bright?: string | null\n  logo_dark?: string | null\n}\n\nexport type FooterOverride = {\n  branding?: FooterBrandingOverride | null\n  legalLinks?: FooterLegalLink[] | null\n  notice?: string | null\n}\n\nexport const footerOverride = writable<FooterOverride | null>(null)\n\nexport const setFooterOverride = (override: FooterOverride | null): void => {\n  footerOverride.set(override)\n}\n","import { get, writable } from \"svelte/store\"\n\nimport type { BrandingLogos } from \"@kontextwerk/control-web-client\"\n\ntype RootBrandingOwner = {\n  key: string\n  organizationId?: string | null\n  routeScopeKey?: string | null\n  ownerId?: string | null\n  source?: string | null\n}\n\nexport type RootBrandingOverride =\n  | (RootBrandingOwner & {\n      status: \"pending\"\n    })\n  | (RootBrandingOwner & {\n      status: \"ready\"\n      branding: BrandingLogos\n    })\n  | (RootBrandingOwner & {\n      status: \"resolved_empty\" | \"failed\"\n    })\n\ntype RootBrandingOwnerOptions = {\n  organizationId?: string | null\n  routeScopeKey?: string | null\n  ownerId?: string | null\n  source?: string | null\n}\n\ntype ClearRootBrandingOptions = {\n  organizationId?: string | null\n  routeScopeKey?: string | null\n  ownerId?: string | null\n}\n\nexport const buildOrganizationRootBrandingOverrideKey = (\n  organizationId: string,\n  _source = \"organization\",\n): string => `organization:${organizationId}`\n\nexport const rootBrandingOverride = writable<RootBrandingOverride | null>(null)\n\nconst buildOwnerFields = (\n  key: string,\n  options: RootBrandingOwnerOptions = {},\n): RootBrandingOwner => ({\n  key,\n  organizationId: options.organizationId ?? null,\n  routeScopeKey: options.routeScopeKey ?? null,\n  ownerId: options.ownerId ?? null,\n  source: options.source ?? null,\n})\n\nexport const setRootBrandingPending = (\n  key: string,\n  options: RootBrandingOwnerOptions = {},\n): void => {\n  rootBrandingOverride.set({ ...buildOwnerFields(key, options), status: \"pending\" })\n}\n\nexport const setRootBrandingReady = (\n  key: string,\n  branding: BrandingLogos,\n  options: RootBrandingOwnerOptions = {},\n): void => {\n  rootBrandingOverride.set({ ...buildOwnerFields(key, options), status: \"ready\", branding })\n}\n\nexport const setRootBrandingOverride = (override: {\n  key: string\n  branding: BrandingLogos\n}): void => {\n  setRootBrandingReady(override.key, override.branding)\n}\n\nexport const setRootBrandingResolvedEmpty = (\n  key: string,\n  options: RootBrandingOwnerOptions = {},\n): void => {\n  rootBrandingOverride.set({ ...buildOwnerFields(key, options), status: \"resolved_empty\" })\n}\n\nexport const setRootBrandingFailed = (\n  key: string,\n  options: RootBrandingOwnerOptions = {},\n): void => {\n  rootBrandingOverride.set({ ...buildOwnerFields(key, options), status: \"failed\" })\n}\n\nexport const clearRootBrandingOverride = (\n  key?: string | null,\n  options: ClearRootBrandingOptions = {},\n): void => {\n  if (!key) {\n    rootBrandingOverride.set(null)\n\n    return\n  }\n\n  const current = get(rootBrandingOverride)\n\n  if (current?.key !== key) return\n\n  if (options.organizationId && current.organizationId !== options.organizationId) return\n\n  if (options.routeScopeKey && current.routeScopeKey !== options.routeScopeKey) return\n\n  if (options.ownerId && current.ownerId !== options.ownerId) return\n\n  rootBrandingOverride.set(null)\n}\n\nexport const releaseRootBrandingOverrideOwner = (\n  key?: string | null,\n  options: ClearRootBrandingOptions = {},\n): void => {\n  const current = get(rootBrandingOverride)\n\n  if (!current || current.status === \"ready\") return\n\n  clearRootBrandingOverride(key, options)\n}\n\nexport const getReadyRootBrandingForOrganization = (\n  organizationId: string,\n): BrandingLogos | null => {\n  const current = get(rootBrandingOverride)\n\n  if (current?.status !== \"ready\") return null\n\n  if (current.organizationId !== organizationId) return null\n\n  return current.branding\n}\n\nexport const getReadyRootBrandingForRouteScope = (routeScopeKey: string): BrandingLogos | null => {\n  const current = get(rootBrandingOverride)\n\n  if (current?.status !== \"ready\") return null\n\n  if (current.routeScopeKey !== routeScopeKey) return null\n\n  return current.branding\n}\n","import { get } from \"svelte/store\"\nimport {\n  clearOverlays,\n  approvals,\n  resolveApproval,\n  notifications,\n  resetWidgetContext,\n  resetAssistWidgetState,\n} from \"@kontextwerk/web-sdk/core\"\nimport { clearImportantActionReauth } from \"@kontextwerk/web-sdk/core/security\"\nimport { teardownInternalAssist } from \"../../internal-assist\"\nimport { invalidateContextCaches } from \"../../authentication\"\nimport { clearControlAuthenticatedBrowserState } from \"../../authentication\"\nimport { selectedProjectId } from \"../../runtime-state\"\nimport { conversationHistory } from \"../../runtime-state\"\nimport { graphNodeIds } from \"../../runtime-state\"\nimport { setPrimaryNav } from \"../../frame-state\"\nimport { clearRootBrandingOverride } from \"../../frame-presentation\"\nimport { setFooterOverride } from \"../../frame-presentation\"\n\n/** Security invalidation bypasses unsaved-change prompts; it never submits/cancels a business command. */\nexport const clearRootContext = () => {\n  invalidateContextCaches()\n  teardownInternalAssist()\n  resetAssistWidgetState()\n  resetWidgetContext()\n  clearImportantActionReauth()\n  clearOverlays()\n  for (const approval of get(approvals)) void resolveApproval(approval, false)\n  notifications.set([])\n  selectedProjectId.set(null)\n  conversationHistory.set(null)\n  graphNodeIds.set([])\n  setPrimaryNav([])\n  clearRootBrandingOverride()\n  setFooterOverride(null)\n  clearControlAuthenticatedBrowserState()\n}\n","import { get, readonly, writable } from \"svelte/store\"\nimport { getContext, setContext } from \"svelte\"\nimport {\n  ControlWebClient,\n  adminResources,\n  createContextServiceSessionClient,\n  type ControlWebClientOptions,\n  type RequestOptions,\n  type ContextSessionResponse,\n} from \"@kontextwerk/control-web-client\"\nimport { createContextAccessApi } from \"../../../api/context-access\"\nimport { createInvitationRegistrationApi } from \"../../../api/invitation-registration\"\nimport {\n  createContextAccess,\n  type ContextAccessApi,\n  type PendingLoginCapture,\n  type PreferredOrganizationTarget,\n} from \"../authentication\"\nimport { createInvitationAcceptance, isInvitationUnavailable } from \"./_logic/invitation-acceptance\"\nimport { createInvitationRegistration } from \"./_logic/invitation-registration\"\nexport { parseInvitationEntry } from \"./invitation-entry\"\nexport type { InvitationEntry } from \"./invitation-entry\"\nexport type {\n  InvitationRegistration,\n  InvitationRegistrationState,\n} from \"./_logic/invitation-registration\"\nexport type { PendingLoginCapture } from \"../authentication\"\nimport { createContextLogin, type ContextLoginApi } from \"../authentication\"\nimport { createContextBroadcast, type ContextBroadcast } from \"./broadcast\"\nimport type { ContextInvalidationReason } from \"../authentication\"\nimport { createContextSecurity } from \"../authentication\"\nimport { createContextDevices } from \"../authentication\"\nimport { createContextProfile } from \"../authentication\"\nimport { createContextPassword } from \"../authentication\"\nimport { createContextMfa } from \"../authentication\"\nimport { createContextEmailVerification } from \"../authentication\"\nimport { createIdentityAdministration } from \"../identity-administration\"\nimport { createIdentityAdministrationApi } from \"../../../api/identity-administration\"\nimport type { CapabilityDefinition } from \"../authorization\"\nimport { clearRootContext } from \"./_logic/clear-context\"\nimport { createContextRecovery, type ContextRecoveryApi } from \"../authentication\"\n\nexport type ContextRootApi = ContextAccessApi &\n  ContextLoginApi & {\n    logout(\n      options: Pick<RequestOptions, \"signal\" | \"isCurrent\" | \"mutationContext\" | \"retry\">,\n    ): Promise<void>\n  }\ntype IdentitySource = { kind: \"session\" } | { kind: \"pending\"; capture: PendingLoginCapture }\nconst contextKey = Symbol(\"control-context-root\")\nconst clientKey = Symbol(\"control-context-root-client\")\nlet activeRoot: object | null = null\n\n/** Root-owned commands a product workspace may offer; they never carry authority themselves. */\nexport type ContextRootControls = Readonly<{\n  openChoices(): void\n  signOut(): void\n}>\nlet releaseActiveRoot: (() => void) | null = null\n\n/** Single active V2 root lifecycle: login, selection, refresh, broadcast and logout. */\nexport const createContextRoot = (options: {\n  api: ContextRootApi\n  controlOrigin: string\n  broadcast?: ContextBroadcast\n  onInvalidate?: () => void\n  recoveryApi?: ContextRecoveryApi\n  onRecoveryComplete?: () => void\n  preferredOrganization?: () => PreferredOrganizationTarget | null\n}) => {\n  const owner = {}\n  const epoch = writable(0)\n  const loginEpoch = writable(0)\n  const bootstrapping = writable(true)\n  const aligningPreferred = writable(false)\n  const recoveryOpen = writable(false)\n  const identityRefusal = writable<\"email-verification\" | null>(null)\n  let generation = 0\n  let bootstrapTicket = 0\n  let pageHidden = false\n  let disposed = false\n  let mounted = false\n  let broadcast: ContextBroadcast | null = null\n  let stopBroadcast: (() => void) | null = null\n  let loggingOut = false\n  let lastSession: ContextSessionResponse | null = null\n  const ownsRoot = () => mounted && !disposed && activeRoot === owner\n  const announceStart = () => {\n    identityRefusal.set(null)\n\n    if (ownsRoot()) broadcast?.publish(\"invalidated\")\n  }\n  const announceSettled = () => {\n    if (ownsRoot()) broadcast?.publish(\"settled\")\n  }\n  const access = createContextAccess({\n    api: options.api,\n    onMutationStart: announceStart,\n    onMutationSettled: announceSettled,\n    onInvalidate(reason) {\n      if (reason === \"login\") lastSession = null\n\n      generation += 1\n      options.onInvalidate?.()\n      epoch.update((value) => value + 1)\n\n      if (reason !== \"login\") loginEpoch.update((value) => value + 1)\n\n      if (ownsRoot()) clearRootContext()\n    },\n  })\n  const stopSession = access.state.subscribe((state) => {\n    if (state.session) lastSession = state.session\n  })\n  const login = createContextLogin({\n    api: options.api,\n    access,\n    preferredOrganizationName: () => options.preferredOrganization?.()?.organizationName ?? null,\n    onMutationStart: announceStart,\n    onMutationSettled: announceSettled,\n  })\n  const recovery = options.recoveryApi\n    ? createContextRecovery({\n        api: options.recoveryApi,\n        onComplete() {\n          login.reset()\n          access.invalidate(\"logout\")\n          lastSession = null\n          options.onRecoveryComplete?.()\n          announceStart()\n          announceSettled()\n        },\n      })\n    : null\n  const invalidate = (reason: ContextInvalidationReason) => {\n    bootstrapTicket += 1\n    aligningPreferred.set(false)\n    bootstrapping.set(false)\n    recovery?.reset()\n    recoveryOpen.set(false)\n    login.reset()\n    access.invalidate(reason)\n  }\n  const bootstrap = async () => {\n    if (!ownsRoot() || loggingOut || get(recoveryOpen)) {\n      bootstrapping.set(false)\n\n      return\n    }\n\n    const ticket = ++bootstrapTicket\n    const preferredAtStart = options.preferredOrganization?.() ?? null\n\n    if (preferredAtStart?.organizationId?.trim()) aligningPreferred.set(true)\n\n    bootstrapping.set(true)\n    try {\n      login.reset()\n      const refresh = access.refresh()\n      const expected = generation\n\n      if (await refresh) {\n        try {\n          const preferred = options.preferredOrganization?.() ?? preferredAtStart\n          const activeSession = get(access.state).session\n\n          if (\n            ownsRoot() &&\n            preferred?.organizationId?.trim() &&\n            activeSession &&\n            (activeSession.context.kind !== \"organization\" ||\n              activeSession.context.organization_id.toLowerCase() !==\n                preferred.organizationId.trim().toLowerCase())\n          ) {\n            await access.switchToOrganization(preferred)\n          }\n        } finally {\n          if (ticket === bootstrapTicket) aligningPreferred.set(false)\n        }\n\n        return\n      }\n\n      if (ticket === bootstrapTicket) aligningPreferred.set(false)\n\n      if (\n        !ownsRoot() ||\n        generation !== expected + 1 ||\n        get(access.state).error !== \"unauthenticated\"\n      )\n        return\n\n      await login.resume()\n\n      if (ownsRoot() && get(access.state).error === \"unauthenticated\") login.reset()\n    } finally {\n      if (ticket === bootstrapTicket) {\n        aligningPreferred.set(false)\n        bootstrapping.set(false)\n      }\n    }\n  }\n  const resume = () => {\n    if (!ownsRoot() || loggingOut) return\n\n    invalidate(\"cross-tab\")\n    void bootstrap()\n  }\n  const revalidateActiveSession = async () => {\n    let ticket: number | null = null\n    const outcome = await access.recheck({\n      onUnauthenticated() {\n        if (!ownsRoot() || loggingOut || get(recoveryOpen)) return\n\n        ticket = ++bootstrapTicket\n        bootstrapping.set(true)\n      },\n    })\n    try {\n      if (\n        outcome !== \"failed\" ||\n        !ownsRoot() ||\n        loggingOut ||\n        get(recoveryOpen) ||\n        get(access.state).error !== \"unauthenticated\"\n      )\n        return\n\n      if (ticket === null) {\n        ticket = ++bootstrapTicket\n        bootstrapping.set(true)\n      }\n\n      await login.resume()\n\n      if (ownsRoot() && get(access.state).error === \"unauthenticated\") login.reset()\n    } finally {\n      if (ticket !== null && ticket === bootstrapTicket) bootstrapping.set(false)\n    }\n  }\n  const revalidate = () => {\n    if (!ownsRoot() || loggingOut) return\n\n    if (get(recoveryOpen)) {\n      recovery?.expire()\n\n      return\n    }\n\n    const context = get(access.state)\n\n    if (get(bootstrapping) || context.status === \"loading\" || context.status === \"switching\") return\n\n    const enteringCredentials = [\"credentials\", \"challenge\", \"submitting\"].includes(\n      get(login.state).status,\n    )\n\n    // Reading an MFA code or using a password manager must not discard an unauthenticated form.\n    if (enteringCredentials && (context.status === \"idle\" || context.error === \"unauthenticated\"))\n      return\n\n    if (context.status === \"selecting\") {\n      access.expirePendingSelection()\n\n      return\n    }\n\n    if ((context.status === \"ready\" || context.status === \"password-change\") && context.session) {\n      void revalidateActiveSession()\n\n      return\n    }\n\n    resume()\n  }\n  const visibility = () => {\n    if (document.visibilityState === \"visible\") revalidate()\n  }\n  const pageHide = () => {\n    if (!ownsRoot()) return\n\n    pageHidden = true\n    invalidate(\"cross-tab\")\n  }\n  const pageShow = (event: PageTransitionEvent) => {\n    if (!ownsRoot() || loggingOut) return\n\n    if (event.persisted || pageHidden) {\n      pageHidden = false\n      resume()\n\n      return\n    }\n\n    revalidate()\n  }\n  const dispose = () => {\n    if (disposed) return\n\n    bootstrapTicket += 1\n    aligningPreferred.set(false)\n    bootstrapping.set(false)\n    login.dispose()\n    recovery?.dispose()\n    access.dispose()\n    stopSession()\n    disposed = true\n\n    if (activeRoot === owner) {\n      activeRoot = null\n      releaseActiveRoot = null\n    }\n\n    stopBroadcast?.()\n    broadcast?.dispose()\n    window.removeEventListener(\"focus\", revalidate)\n    window.removeEventListener(\"pageshow\", pageShow)\n    window.removeEventListener(\"pagehide\", pageHide)\n    document.removeEventListener(\"visibilitychange\", visibility)\n  }\n\n  return {\n    access,\n    login,\n    recovery,\n    bootstrapping: readonly(bootstrapping),\n    aligningPreferred: readonly(aligningPreferred),\n    recoveryOpen: readonly(recoveryOpen),\n    identityRefusal: readonly(identityRefusal),\n    rejectEmailVerification() {\n      invalidate(\"revoked\")\n      identityRefusal.set(\"email-verification\")\n    },\n    startRecovery() {\n      if (!ownsRoot() || !recovery) return\n\n      invalidate(\"login\")\n      recoveryOpen.set(true)\n    },\n    epoch: readonly(epoch),\n    loginEpoch: readonly(loginEpoch),\n    bootstrap,\n    invalidate,\n    restartLogin: () => invalidate(\"login\"),\n    async authorizationChanged() {\n      invalidate(\"refresh\")\n      announceStart()\n      try {\n        await bootstrap()\n      } finally {\n        announceSettled()\n      }\n    },\n    captureRead: access.captureRead,\n    captureMutation: access.captureMutation,\n    async logout(initiatingSession?: ContextSessionResponse | null) {\n      if (!ownsRoot() || loggingOut) return\n\n      const session = initiatingSession ?? get(access.state).session ?? lastSession\n      const mutationContext = session\n        ? {\n            expected_session_id: session.session_id,\n            expected_context_revision: session.context_revision,\n          }\n        : undefined\n      loggingOut = true\n      invalidate(\"logout\")\n      announceStart()\n      const expected = generation\n      try {\n        await options.api.logout({\n          mutationContext,\n          retry: \"never\",\n          isCurrent: () => ownsRoot() && expected === generation,\n        })\n      } finally {\n        loggingOut = false\n        announceSettled()\n      }\n    },\n    mount() {\n      if (mounted || disposed) throw new Error(\"Context root already mounted or disposed\")\n\n      releaseActiveRoot?.()\n      mounted = true\n      activeRoot = owner\n      releaseActiveRoot = dispose\n      broadcast = options.broadcast ?? createContextBroadcast(options.controlOrigin)\n      stopBroadcast = broadcast.subscribe((phase) => {\n        if (!ownsRoot()) return\n\n        invalidate(\"cross-tab\")\n\n        if (phase === \"settled\") void bootstrap()\n      })\n      pageHidden = false\n      window.addEventListener(\"focus\", revalidate)\n      window.addEventListener(\"pageshow\", pageShow)\n      window.addEventListener(\"pagehide\", pageHide)\n      document.addEventListener(\"visibilitychange\", visibility)\n      void bootstrap()\n    },\n    dispose,\n  }\n}\nexport type ContextRoot = ReturnType<typeof createContextRoot>\n/** Uses the existing client options; no product flag or legacy session adapter. */\nexport const createContextRootClient = (\n  options: ControlWebClientOptions & {\n    preferredOrganization?: () => PreferredOrganizationTarget | null\n  },\n) => {\n  const bootstrap = new ControlWebClient({ ...options, contextBinding: undefined })\n  const bootstrapApi = createContextAccessApi(bootstrap)\n  const operations = new ControlWebClient({\n    ...options,\n    contextBinding: \"required\",\n    async onError(error, request) {\n      const status =\n        (error as { status?: number; statusCode?: number })?.status ??\n        (error as { statusCode?: number })?.statusCode\n\n      const path = request ? new URL(request.url).pathname : \"\"\n      const invitationRefused =\n        request?.request.method === \"POST\" &&\n        /\\/organizations\\/[^/]+\\/invitations\\/[^/]+\\/accept$/.test(path) &&\n        isInvitationUnavailable(error)\n      // A mistyped password is no session failure; every other refusal ends the context.\n      const passwordRefused =\n        request?.request.method === \"POST\" &&\n        path.endsWith(\"/auth/reauth\") &&\n        status === 401 &&\n        (error as { reasonCode?: unknown })?.reasonCode === \"reauth_password_invalid\"\n\n      if (\n        (status === 401 || status === 403 || status === 409) &&\n        !invitationRefused &&\n        !passwordRefused\n      )\n        root.invalidate(\"revoked\")\n\n      await options.onError?.(error, request)\n    },\n  })\n  const operationApi = createContextAccessApi(operations)\n  const security = createContextSecurity(operationApi)\n  const services = createContextServiceSessionClient({\n    issueCode: (request, capture) => operationApi.createServiceSessionCode(request, capture),\n    fetchImpl: options.fetchImpl,\n    onRejected: () => root.invalidate(\"revoked\"),\n  })\n  const root = createContextRoot({\n    recoveryApi: bootstrapApi,\n    onRecoveryComplete: () => bootstrapApi.clearCsrf(),\n    api: {\n      ...bootstrapApi,\n      async logout(capture) {\n        await bootstrapApi.logout(capture)\n\n        if (capture.isCurrent?.() !== false) bootstrapApi.clearCsrf()\n      },\n    },\n    controlOrigin: bootstrap.settings.baseUrl,\n    preferredOrganization: options.preferredOrganization,\n    onInvalidate() {\n      services.invalidate()\n      security.invalidate()\n    },\n  })\n\n  const createEmailVerification = (source: IdentitySource) => {\n    const pending = source.kind === \"pending\"\n    const session = pending ? null : get(root.access.state).session\n\n    if (pending ? source.capture !== root.access.capturePendingLogin() : !session)\n      throw new DOMException(\"Confirmed email-verification identity required\", \"InvalidStateError\")\n\n    const binding = pending ? null : root.captureMutation()\n    const capture = source.kind === \"pending\" ? source.capture : binding!.requestOptions\n    const abort = new AbortController()\n    const cancel = () => abort.abort()\n    capture.signal.addEventListener(\"abort\", cancel, { once: true })\n    const request = {\n      signal: abort.signal,\n      isCurrent: () => !abort.signal.aborted && capture.isCurrent(),\n    }\n    const api = new adminResources.AdminContextAuthAPI(\n      pending ? bootstrap.transport : operations.transport,\n    )\n    const controller = createContextEmailVerification({\n      capture: request,\n      api: {\n        state: (operation) =>\n          pending\n            ? api.pendingEmailVerification(operation)\n            : api.emailVerification({ ...binding!.requestOptions, ...operation }),\n        request: (operation) =>\n          pending\n            ? api.requestPendingEmailVerification(operation)\n            : api.requestEmailVerification({ ...binding!.requestOptions, ...operation }),\n        confirm: (payload, operation) =>\n          pending\n            ? api.confirmPendingEmailVerification(payload, operation)\n            : api.confirmEmailVerification(payload, { ...binding!.requestOptions, ...operation }),\n      },\n      onRejected: () => root.rejectEmailVerification(),\n    })\n\n    return {\n      ...controller,\n      dispose() {\n        capture.signal.removeEventListener(\"abort\", cancel)\n        abort.abort()\n        controller.dispose()\n      },\n    }\n  }\n\n  return {\n    root,\n    operations,\n    services,\n    security,\n    createEmailVerification,\n    /** Anonymous account registration from an invitation link; it never creates a session. */\n    createInvitationRegistration() {\n      const invitations = createInvitationRegistrationApi(bootstrap)\n\n      return createInvitationRegistration({\n        register: (payload, request) => invitations.register(payload, request),\n      })\n    },\n    createInvitationAcceptance(source: IdentitySource) {\n      const pending = source.kind === \"pending\"\n      const session = pending ? null : get(root.access.state).session\n\n      if (pending ? source.capture !== root.access.capturePendingLogin() : !session)\n        throw new DOMException(\"Confirmed invitation identity required\", \"InvalidStateError\")\n\n      const binding = pending ? null : root.captureMutation()\n      const capture = source.kind === \"pending\" ? source.capture : binding!.requestOptions\n      const abort = new AbortController()\n      const cancel = () => abort.abort()\n      capture.signal.addEventListener(\"abort\", cancel, { once: true })\n      const request = {\n        signal: abort.signal,\n        isCurrent: () => !abort.signal.aborted && capture.isCurrent(),\n      }\n      const invitations = new adminResources.AdminIdentityAdministrationAPI(\n        pending ? bootstrap.transport : operations.transport,\n      )\n      const emailVerification = createEmailVerification(source)\n      const controller = createInvitationAcceptance({\n        session,\n        capture: request,\n        emailVerification,\n        accept: (org, id, code) =>\n          pending\n            ? invitations.acceptPendingInvitation(org, id, { code }, request)\n            : invitations.acceptInvitation(\n                org,\n                id,\n                { code },\n                { ...binding!.requestOptions, ...request },\n              ),\n        authenticate: binding\n          ? (password) =>\n              security.authenticate(password, {\n                ...binding,\n                requestOptions: { ...binding.requestOptions, ...request },\n              })\n          : undefined,\n        hasProof: () => pending || (binding !== null && security.validFor(binding)),\n        openChoices: () => (pending ? root.access.openLoginChoices() : root.access.openChoices()),\n        invalidate: () => root.invalidate(\"revoked\"),\n      })\n\n      return {\n        ...controller,\n        dispose() {\n          capture.signal.removeEventListener(\"abort\", cancel)\n          abort.abort()\n          emailVerification.dispose()\n          controller.dispose()\n        },\n      }\n    },\n    createPersonalSessions() {\n      const session = get(root.access.state).session\n\n      if (!session)\n        throw new DOMException(\"Confirmed identity context required\", \"InvalidStateError\")\n\n      return createContextDevices({\n        session,\n        capture: root.captureMutation(),\n        api: operationApi,\n        security,\n        onRevoked: root.authorizationChanged,\n      })\n    },\n    createPersonalProfile() {\n      const session = get(root.access.state).session\n\n      if (!session)\n        throw new DOMException(\"Confirmed identity context required\", \"InvalidStateError\")\n\n      return createContextProfile({\n        session,\n        capture: root.captureMutation(),\n        api: operationApi,\n        onSaved: root.authorizationChanged,\n      })\n    },\n    /** Also available during a mandatory change; never for a delegated support context. */\n    createPasswordChange() {\n      const session = get(root.access.state).session\n\n      if (!session)\n        throw new DOMException(\"Confirmed identity context required\", \"InvalidStateError\")\n\n      return createContextPassword({\n        session,\n        capture: root.access.captureSession(),\n        security,\n        api: operationApi,\n        async onChanged() {\n          bootstrapApi.clearCsrf()\n          await root.authorizationChanged()\n        },\n      })\n    },\n    createPersonalMfa(announce: (outcome: \"complete\" | \"cleanup-pending\" | \"uncertain\") => void) {\n      const session = get(root.access.state).session\n\n      if (!session)\n        throw new DOMException(\"Confirmed identity context required\", \"InvalidStateError\")\n\n      return createContextMfa({\n        session,\n        capture: root.captureMutation(),\n        api: operationApi,\n        async onChanged(outcome) {\n          announce(outcome)\n          bootstrapApi.clearCsrf()\n          await root.authorizationChanged()\n        },\n      })\n    },\n    createIdentityAdministration(definitions: readonly CapabilityDefinition[]) {\n      const session = get(root.access.state).session\n\n      if (!session)\n        throw new DOMException(\"Confirmed identity context required\", \"InvalidStateError\")\n\n      return createIdentityAdministration({\n        session,\n        capture: root.captureMutation(),\n        definitions,\n        api: createIdentityAdministrationApi(operations),\n        security,\n        onAuthorityChanged: root.authorizationChanged,\n      })\n    },\n    async recoverCsrf() {\n      bootstrapApi.clearCsrf()\n      await root.bootstrap()\n    },\n  }\n}\nexport type ContextRootClient = ReturnType<typeof createContextRootClient>\nexport const provideContextRoot = (root: ContextRoot) => setContext(contextKey, root)\nexport const provideContextRootClient = (client: ContextRootClient) => setContext(clientKey, client)\n/** Product operations bound to the current root; only available below a protected root. */\nexport const useContextRootClient = (): ContextRootClient => {\n  const client = getContext<ContextRootClient | undefined>(clientKey)\n\n  if (!client) throw new Error(\"V2 context root client is required\")\n\n  return client\n}\nexport const useContextRoot = (): ContextRoot => {\n  const root = getContext<ContextRoot | undefined>(contextKey)\n\n  if (!root) throw new Error(\"V2 context root is required\")\n\n  return root\n}\n","<script lang=\"ts\">\n  import { onMount, untrack, type Snippet } from \"svelte\"\n  import { fromStore } from \"svelte/store\"\n  import AppFrame from \"@kontextwerk/web-sdk/ui/layout/AppFrame.svelte\"\n  import ContextAccessPanel from \"./_modules/context-access-panel\"\n  import ContextLoginForm from \"./_modules/context-login-form\"\n  import ContextRecovery from \"./_modules/context-recovery\"\n  import SupportContextBanner from \"../support-context-banner\"\n  import PageTitle from \"@kontextwerk/web-sdk/ui/layout/PageTitle.svelte\"\n  import PageNavigation from \"@kontextwerk/web-sdk/ui/layout/PageNavigation.svelte\"\n  import CrinkledSection from \"@kontextwerk/web-sdk/ui/layout/CrinkledSection.svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import { spaNavigate } from \"../../_logic/navigation\"\n  import {\n    provideContextRoot,\n    type ContextRoot,\n    type ContextRootControls,\n    type PendingLoginCapture,\n  } from \"../../_logic/context-runtime\"\n  import type { ContextSessionResponse } from \"@kontextwerk/control-web-client\"\n  let {\n    root,\n    children,\n    passwordChange,\n    pendingContent,\n    signedOutContent,\n    workspace,\n    shell,\n    signupEnabled = false,\n    preferredOrganizationName = null,\n    holdSession = false,\n  }: {\n    root: ContextRoot\n    children?: Snippet<[ContextSessionResponse]>\n    passwordChange: Snippet<\n      [ContextSessionResponse, ((initiatingSession?: ContextSessionResponse | null) => void)?]\n    >\n    pendingContent?: Snippet<[PendingLoginCapture]>\n    /** Replaces the plain login form while signed out; it receives that form to place it. */\n    signedOutContent?: Snippet<[Snippet<[string | null]>]>\n    /** Product workspace for a confirmed context; it owns the single AppFrame. */\n    workspace?: Snippet<[ContextSessionResponse, ContextRootControls]>\n    /** Classic frame around login, selection, recovery and password change. */\n    shell?: Snippet<[Snippet]>\n    signupEnabled?: boolean\n    preferredOrganizationName?: string | null\n    /** Shows neither workspace nor gate while the host decides about an already open session. */\n    holdSession?: boolean\n  } = $props()\n  const owner = untrack(() => root)\n  provideContextRoot(owner)\n  const access = owner.access\n  const view = fromStore(access.state)\n  const login = fromStore(owner.login.state)\n  const epoch = fromStore(owner.epoch)\n  const loginEpoch = fromStore(owner.loginEpoch)\n  const bootstrapping = fromStore(owner.bootstrapping)\n  const aligningPreferred = owner.aligningPreferred\n    ? fromStore(owner.aligningPreferred)\n    : { current: false }\n  const recoveryOpen = fromStore(owner.recoveryOpen)\n  const identityRefusal = fromStore(owner.identityRefusal)\n  const showAuthenticationTabs = $derived(\n    recoveryOpen.current ||\n      ((view.current.status === \"idle\" ||\n        view.current.error === \"unauthenticated\" ||\n        login.current.status === \"submitting\") &&\n        login.current.status !== \"selection\"),\n  )\n  const gateTitle = $derived(\n    showAuthenticationTabs\n      ? \"Login\"\n      : view.current.status === \"password-change\"\n        ? \"Passwortwechsel erforderlich\"\n        : \"Zugang auswählen\",\n  )\n  const authenticationTabs = $derived([\n    { title: \"Anmeldung\", path: \"/\" },\n    ...(owner.recovery ? [{ title: \"Passwort zurücksetzen\", path: \"/account/recovery\" }] : []),\n    ...(signupEnabled ? [{ title: \"Registrieren\", path: \"/signup\" }] : []),\n  ])\n  let wasRecoveryRoute = false\n  // effect-ok: external-runtime - route entry opens the existing V2 recovery owner, never a legacy endpoint.\n  $effect(() => {\n    const recoveryRoute = $location.path === \"/account/recovery\"\n\n    if (recoveryRoute && !recoveryOpen.current && owner.recovery) owner.startRecovery()\n    else if (!recoveryRoute && wasRecoveryRoute) owner.restartLogin()\n\n    wasRecoveryRoute = recoveryRoute\n  })\n  const restartLogin = () => {\n    owner.restartLogin()\n\n    if ($location.path === \"/account/recovery\") spaNavigate(\"/\", { noSearchParam: true })\n  }\n  let logoutError = $state(false)\n  // effect-ok: store-bridge - clears a failed logout once the login or context view becomes active again.\n  $effect(() => {\n    if (\n      login.current.status === \"submitting\" ||\n      login.current.status === \"challenge\" ||\n      login.current.status === \"selection\" ||\n      view.current.status === \"selecting\" ||\n      view.current.status === \"ready\"\n    ) {\n      logoutError = false\n    }\n  })\n  const signOut = (session?: ContextSessionResponse | null) => {\n    logoutError = false\n    void owner.logout(session).catch(() => {\n      logoutError = true\n    })\n  }\n  const openChoices = (): void => {\n    void access.openChoices()\n  }\n  const controls: ContextRootControls = Object.freeze({\n    openChoices,\n    signOut: (): void => signOut(),\n  })\n  const isBootstrapping = $derived(\n    holdSession ||\n      (bootstrapping.current &&\n      !(recoveryOpen.current && owner.recovery) &&\n      identityRefusal.current === null &&\n      !logoutError &&\n      login.current.status !== \"submitting\" &&\n      login.current.status !== \"challenge\" &&\n      view.current.status !== \"selecting\" &&\n      view.current.status !== \"password-change\" &&\n      (view.current.status !== \"ready\" || aligningPreferred.current)),\n  )\n  const ready = $derived(\n    !holdSession &&\n      !(recoveryOpen.current && owner.recovery) &&\n      !aligningPreferred.current &&\n      view.current.status === \"ready\" &&\n      Boolean(view.current.session),\n  )\n  onMount(() => {\n    owner.mount()\n\n    if ($location.path === \"/account/recovery\" && owner.recovery) {\n      owner.startRecovery()\n      wasRecoveryRoute = true\n    }\n\n    return () => owner.dispose()\n  })\n</script>\n\n{#snippet loginForm(initialEmail: string | null)}\n  {#key `${loginEpoch.current}:${login.current.status === \"expired\"}`}<ContextLoginForm\n      login={owner.login}\n      {initialEmail}\n    />{/key}\n{/snippet}\n\n{#snippet gateContent()}\n  {#if identityRefusal.current === \"email-verification\"}\n    <div class=\"gate-banner\">\n      <p role=\"alert\" class=\"identity-refusal\">\n        Die E-Mail-Bestätigung wurde verweigert. Bitte melden Sie sich erneut an oder setzen Sie Ihr\n        Kennwort zurück.\n      </p>\n      {#if owner.recovery && !recoveryOpen.current}\n        <div class=\"gate-actions\">\n          <CTA\n            type=\"secondaryButton\"\n            darkMode={false}\n            content=\"Kennwort zurücksetzen\"\n            onClick={() => spaNavigate(\"/account/recovery\", { noSearchParam: true })}\n          />\n        </div>\n      {/if}\n    </div>\n  {/if}\n  {#if logoutError && view.current.status !== \"selecting\" && view.current.status !== \"ready\"}\n    <div class=\"gate-banner\">\n      <p role=\"alert\">Abmeldung konnte nicht bestätigt werden. Bitte erneut abmelden.</p>\n      <div class=\"gate-actions\">\n        <CTA type=\"secondaryButton\" darkMode={false} content=\"Abmelden\" onClick={() => signOut()} />\n      </div>\n    </div>\n  {/if}\n  {#if recoveryOpen.current && owner.recovery}\n    <ContextRecovery recovery={owner.recovery} onCancel={restartLogin} />\n  {:else if view.current.status === \"password-change\" && view.current.session}\n    {#key epoch.current}{@render passwordChange(view.current.session, signOut)}{/key}\n  {:else if view.current.error === \"selection_expired\"}\n    <p role=\"alert\" class=\"gate-notice\">Die Zugangsauswahl ist abgelaufen.</p>\n    <div class=\"gate-actions\">\n      <CTA\n        type=\"primaryButton\"\n        darkMode={false}\n        content=\"Erneut anmelden\"\n        onClick={() => owner.restartLogin()}\n      />\n    </div>\n  {:else if (view.current.status === \"idle\" || view.current.error === \"unauthenticated\" || login.current.status === \"submitting\") && login.current.status !== \"selection\"}\n    {#if signedOutContent}\n      {@render signedOutContent(loginForm)}\n    {:else}\n      {@render loginForm(null)}\n    {/if}\n  {:else}\n    <ContextAccessPanel\n      {access}\n      {preferredOrganizationName}\n      onSignOut={signOut}\n      onResetPassword={owner.recovery\n        ? () => spaNavigate(\"/account/recovery\", { noSearchParam: true })\n        : undefined}\n    />\n    {#if view.current.status === \"selecting\" && owner.access.isPendingLogin() && pendingContent}\n      <div class=\"pending-invitation\">\n        {#key epoch.current}\n          {@render pendingContent(owner.access.capturePendingLogin())}\n        {/key}\n      </div>\n    {/if}\n  {/if}\n{/snippet}\n\n{#snippet gate()}\n  {#if isBootstrapping}\n    <div class=\"gate-bootstrap\" aria-busy=\"true\"></div>\n  {:else}\n    <PageTitle title={gateTitle} />\n    {#if showAuthenticationTabs}\n      <PageNavigation config={authenticationTabs} activeIndex={recoveryOpen.current ? 1 : 0} />\n    {/if}\n    <CrinkledSection brightBackground smallWidthAndCentered border activated>\n      {#snippet contentSnippet()}\n        <div class=\"authentication-content\">{@render gateContent()}</div>\n      {/snippet}\n    </CrinkledSection>\n  {/if}\n{/snippet}\n\n{#if ready && view.current.session}\n  {#key epoch.current}\n    {#if workspace}\n      {@render workspace(view.current.session, controls)}\n    {:else}\n      <AppFrame\n        workspaceKey={`${view.current.session.product_issuer}:${view.current.session.context.kind}`}\n      >\n        {#snippet actions()}<span class=\"current-context\" aria-label=\"Aktueller Zugang\"\n            >{view.current.session.context.kind === \"organization\"\n              ? `${view.current.session.context.organization_name} / ${view.current.session.context.role_name}`\n              : `Plattform / Staff: ${view.current.session.context.role === \"support_agent\" ? \"Support\" : \"Plattformverwaltung\"}`}</span\n          ><button onclick={() => access.openChoices()}>Zugang wechseln</button><button\n            onclick={() => signOut()}>Abmelden</button\n          >{/snippet}\n        <SupportContextBanner session={view.current.session} />\n        {@render children?.(view.current.session)}\n      </AppFrame>\n    {/if}\n  {/key}\n{:else if shell}\n  {@render shell(gate)}\n{:else}\n  {@render gate()}\n{/if}\n\n<style>\n  .gate-bootstrap {\n    min-height: 40vh;\n    width: 100%;\n  }\n  .authentication-content {\n    color: var(--text-invers-100);\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n    width: 100%;\n    min-width: 0;\n  }\n  .gate-banner {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    min-width: 0;\n  }\n  .gate-actions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    gap: 0.75rem;\n  }\n  .pending-invitation {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    width: 100%;\n    min-width: 0;\n    padding-top: 1rem;\n    border-top: 1px solid color-mix(in srgb, var(--text-invers-100) 18%, transparent);\n  }\n  .identity-refusal,\n  .gate-notice,\n  p[role=\"alert\"] {\n    margin: 0;\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n  .current-context {\n    min-width: 0;\n    max-width: 18rem;\n    overflow-wrap: anywhere;\n    font-size: 0.875rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  let {\n    label,\n    submitLabel,\n    onSubmit,\n    disabled = false,\n    busy = false,\n    brightBackground = true,\n    children,\n  }: {\n    label: string\n    submitLabel: string\n    onSubmit: (event: SubmitEvent) => void | Promise<void>\n    disabled?: boolean\n    busy?: boolean\n    brightBackground?: boolean\n    children: Snippet\n  } = $props()\n  let form: HTMLFormElement | undefined = $state()\n</script>\n\n<form\n  class=\"form\"\n  class:dark={brightBackground}\n  class:light={!brightBackground}\n  aria-label={label}\n  aria-busy={busy}\n  bind:this={form}\n  onsubmit={(event) => {\n    event.preventDefault()\n\n    if (!disabled && !busy) void onSubmit(event)\n  }}\n>\n  {@render children()}\n  <div class=\"actions\">\n    <CTA\n      type=\"primaryButton\"\n      content={submitLabel}\n      disabled={disabled || busy}\n      darkMode={!brightBackground}\n      onClick={(event: MouseEvent) => {\n        event.preventDefault()\n        form?.requestSubmit()\n      }}\n    />\n  </div>\n  <button\n    type=\"submit\"\n    class=\"submit-proxy\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    disabled={disabled || busy}\n  ></button>\n</form>\n\n<style>\n  form.form {\n    width: 100%;\n    height: auto;\n    margin: 0;\n    min-width: 0;\n  }\n  .actions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    min-width: 0;\n  }\n  .submit-proxy {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, untrack } from \"svelte\"\n  import { fromStore } from \"svelte/store\"\n  import { mdiLogin } from \"@mdi/js\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import ContextAuthForm from \"../../../../../context-auth-form\"\n  import {\n    evaluatePasswordStrength,\n    validatePasswordComplexity,\n  } from \"../../../../../../_logic/authentication\"\n  import type { InvitationRegistration } from \"../../../../../../_logic/context-runtime\"\n\n  let {\n    organizationId,\n    invitationId,\n    registration,\n    onSignIn,\n  }: {\n    organizationId: string\n    invitationId: string\n    registration: InvitationRegistration\n    /** Continue with the regular login, prefilled with the created account's address. */\n    onSignIn: (email: string | null) => void\n  } = $props()\n  // The access view owns one registration for its whole lifetime.\n  const owner = untrack(() => registration)\n  const view = fromStore(owner.state)\n  let username = $state(\"\")\n  let firstName = $state(\"\")\n  let lastName = $state(\"\")\n  let password = $state(\"\")\n  let confirmation = $state(\"\")\n  let code = $state(\"\")\n  let localError = $state<string | null>(null)\n  const busy = $derived(view.current.status === \"submitting\")\n  const strength = $derived(evaluatePasswordStrength(password))\n  const errors = {\n    unavailable:\n      \"Die Einladung ist nicht verfügbar. Bitte prüfen Sie den Einladungscode oder bitten Sie um eine neue Einladung.\",\n    \"rate-limited\": \"Zu viele Versuche. Bitte versuchen Sie es später erneut.\",\n    failed: \"Das Konto konnte nicht erstellt werden. Bitte versuchen Sie es erneut.\",\n    invalid: \"Bitte prüfen Sie Ihre Angaben.\",\n  }\n  const serverError = $derived(\n    view.current.error === \"invalid\"\n      ? (view.current.message ?? errors.invalid)\n      : view.current.error\n        ? errors[view.current.error]\n        : null,\n  )\n  const clearCredentials = () => {\n    password = \"\"\n    confirmation = \"\"\n    code = \"\"\n  }\n  const submit = async () => {\n    if (busy || !owner.isCurrent()) return\n\n    localError = null\n    const input = {\n      username: username.trim(),\n      firstName: firstName.trim(),\n      lastName: lastName.trim(),\n      code: code.trim(),\n    }\n\n    if (!input.username || !input.firstName || !input.lastName) {\n      localError = \"Bitte füllen Sie Benutzername, Vorname und Nachname aus.\"\n\n      return\n    }\n\n    const complexityError = validatePasswordComplexity(password)\n\n    if (complexityError) {\n      localError = complexityError\n\n      return\n    }\n\n    if (password !== confirmation) {\n      localError = \"Die Passwörter stimmen nicht überein.\"\n\n      return\n    }\n\n    if (!/^[A-Za-z0-9_-]{43}$/.test(input.code)) {\n      localError = \"Bitte geben Sie den vollständigen Einladungscode aus der E-Mail ein.\"\n\n      return\n    }\n\n    const secret = password\n    password = \"\"\n    confirmation = \"\"\n    await owner.submit({ organizationId, invitationId, ...input, password: secret })\n\n    // A refused code or a finished registration ends the code's use in this form.\n    if (view.current.status !== \"editing\" || view.current.error === \"unavailable\") code = \"\"\n  }\n  onDestroy(clearCredentials)\n</script>\n\n{#if view.current.status === \"registered\"}\n  <div class=\"terminal-state\">\n    <p role=\"status\">Ihr Konto wurde erstellt und der Organisation hinzugefügt.</p>\n    <p>Melden Sie sich jetzt mit {view.current.email} an.</p>\n    <div class=\"form-actions\">\n      <CTA\n        icon={mdiLogin}\n        type=\"primaryButton\"\n        darkMode={false}\n        content=\"Zur Anmeldung\"\n        onClick={() => onSignIn(view.current.email)}\n      />\n    </div>\n  </div>\n{:else if view.current.status === \"account-exists\"}\n  <div class=\"terminal-state\">\n    <p role=\"alert\">\n      Für Ihre E-Mail-Adresse besteht bereits ein Konto. Bitte melden Sie sich an, um die\n      Einladung anzunehmen.\n    </p>\n    <div class=\"form-actions\">\n      <CTA\n        icon={mdiLogin}\n        type=\"primaryButton\"\n        darkMode={false}\n        content=\"Zur Anmeldung\"\n        onClick={() => onSignIn(null)}\n      />\n    </div>\n  </div>\n{:else}\n  <ContextAuthForm\n    label=\"Konto erstellen\"\n    onSubmit={submit}\n    {busy}\n    submitLabel={busy ? \"Konto wird erstellt\" : \"Konto erstellen\"}\n  >\n    <p class=\"hint\">Den Einladungscode finden Sie in der Einladungs-E-Mail.</p>\n    {#if localError ?? serverError}<p role=\"alert\">{localError ?? serverError}</p>{/if}\n    <div class=\"row single\">\n      <Input\n        placeholder=\"Benutzername\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"username\"\n        maxlength={255}\n        bind:value={username}\n        required\n        disabled={busy}\n      />\n    </div>\n    <div class=\"row\">\n      <Input\n        placeholder=\"Vorname\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"given-name\"\n        maxlength={255}\n        bind:value={firstName}\n        required\n        disabled={busy}\n      />\n      <Input\n        placeholder=\"Nachname\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"family-name\"\n        maxlength={255}\n        bind:value={lastName}\n        required\n        disabled={busy}\n      />\n    </div>\n    <div class=\"row\">\n      <Input\n        placeholder=\"Neues Passwort\"\n        type=\"password-native\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"new-password\"\n        minlength={12}\n        maxlength={128}\n        bind:value={password}\n        required\n        disabled={busy}\n      />\n      <Input\n        placeholder=\"Passwort bestätigen\"\n        type=\"password-native\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"new-password\"\n        minlength={12}\n        maxlength={128}\n        bind:value={confirmation}\n        required\n        disabled={busy}\n      />\n    </div>\n    {#if password}\n      <p class=\"strength\" class:invalid={strength.score === 0} aria-live=\"polite\">\n        <strong>{strength.label}</strong>\n        {#if strength.hints.length}<small>{strength.hints.join(\" \")}</small>{/if}\n      </p>\n    {/if}\n    <div class=\"row single\">\n      <Input\n        placeholder=\"Einladungscode\"\n        type=\"password-native\"\n        surfaceTone=\"light\"\n        style=\"--kw-input-placeholder: var(--text-invers-100);\"\n        clearable={false}\n        autocomplete=\"off\"\n        maxlength={43}\n        bind:value={code}\n        required\n        disabled={busy}\n      />\n    </div>\n  </ContextAuthForm>\n{/if}\n\n<style>\n  p {\n    margin: 0;\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n  .hint {\n    font-size: 0.9rem;\n    opacity: 0.85;\n  }\n  .terminal-state {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n  }\n  .form-actions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    gap: 0.8rem;\n  }\n  .strength {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 0.5rem;\n    font-size: 0.85rem;\n    line-height: 1.35;\n  }\n  .strength.invalid strong,\n  .strength.invalid small {\n    color: var(--primary-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, untrack, type Snippet } from \"svelte\"\n  import { fromStore } from \"svelte/store\"\n  import { mdiAccountPlus, mdiLogin } from \"@mdi/js\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import InvitationRegistration from \"./_modules/invitation-registration\"\n  import type { InvitationRegistration as Registration } from \"../../../../_logic/context-runtime\"\n\n  type Mode = \"register\" | \"login\"\n\n  let {\n    organizationId,\n    invitationId,\n    loginForm,\n    createRegistration,\n    onRegistered,\n  }: {\n    organizationId: string\n    invitationId: string\n    /** The regular login form of the root, optionally prefilled with an address. */\n    loginForm: Snippet<[string | null]>\n    createRegistration: () => Registration\n    /** The invitation is used up; continue with the regular login for this address. */\n    onRegistered: (email: string) => void\n  } = $props()\n  const registration = untrack(() => createRegistration())\n  const registrationView = fromStore(registration.state)\n  // Most invited people are new; an existing account for the invited address is the alternative.\n  let mode = $state<Mode>(\"register\")\n  // A running registration keeps its form; it must not be abandoned by switching.\n  const locked = $derived(registrationView.current.status === \"submitting\")\n  const select = (next: Mode) => {\n    if (!locked) mode = next\n  }\n  // A created account already joined the organization; an existing one signs in here and\n  // then accepts the still pending invitation through this same link.\n  const signIn = (email: string | null) => {\n    if (email) onRegistered(email)\n    else mode = \"login\"\n  }\n  onDestroy(() => registration.dispose())\n</script>\n\n<section class=\"invitation-access\" aria-labelledby=\"invitation-access-title\">\n  <h2 id=\"invitation-access-title\">Einladung annehmen</h2>\n  <p>\n    Diese Einladung gilt für die E-Mail-Adresse, an die sie geschickt wurde. Mit dieser Adresse\n    treten Sie der Organisation bei.\n  </p>\n  <!-- Both forms stay mounted so a switch keeps what was already typed. -->\n  <div class=\"choice\" hidden={mode !== \"register\"}>\n    <p class=\"lead\">\n      <strong>Neu hier?</strong> Erstellen Sie Ihr Konto. Es erhält die eingeladene E-Mail-Adresse\n      und gehört danach direkt zur Organisation.\n    </p>\n    <InvitationRegistration {organizationId} {invitationId} {registration} onSignIn={signIn} />\n    <div class=\"switch\">\n      <span>Für diese E-Mail-Adresse gibt es schon ein Konto?</span>\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={false}\n        icon={mdiLogin}\n        content=\"Mit bestehendem Konto anmelden\"\n        disabled={locked}\n        onClick={() => select(\"login\")}\n      />\n    </div>\n  </div>\n  <div class=\"choice\" hidden={mode !== \"login\"}>\n    <p class=\"lead\">\n      <strong>Bestehendes Konto:</strong> Melden Sie sich mit dem Konto dieser E-Mail-Adresse an. Danach\n      nehmen Sie die Einladung an.\n    </p>\n    {@render loginForm(null)}\n    <div class=\"switch\">\n      <span>Noch kein Konto für diese E-Mail-Adresse?</span>\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={false}\n        icon={mdiAccountPlus}\n        content=\"Neues Konto erstellen\"\n        onClick={() => select(\"register\")}\n      />\n    </div>\n  </div>\n</section>\n\n<style>\n  .invitation-access {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n    color: var(--text-invers-100);\n  }\n  .invitation-access h2 {\n    margin: 0;\n    color: var(--text-invers-100);\n    font-size: 1.25rem;\n    font-weight: 700;\n  }\n  .invitation-access p {\n    margin: 0;\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n  .choice {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    min-width: 0;\n  }\n  .choice[hidden] {\n    display: none;\n  }\n  .switch {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n    gap: 0.75rem;\n    padding-top: 1rem;\n    border-top: 1px solid color-mix(in srgb, var(--text-invers-100) 18%, transparent);\n    color: var(--text-invers-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import { fromStore } from \"svelte/store\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import { mdiCheck, mdiEmailOutline, mdiRefresh } from \"@mdi/js\"\n  import type { ContextEmailVerification } from \"../../_logic/authentication\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import ContextAuthForm from \"../context-auth-form\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n\n  let {\n    controller,\n    brightBackground = false,\n  }: { controller: ContextEmailVerification; brightBackground?: boolean } = $props()\n  const view = $derived(fromStore(controller.state))\n  let proof = $state(\"\")\n  const busy = $derived([\"loading\", \"requesting\", \"confirming\"].includes(view.current.status))\n  const errors = {\n    failed: \"Der E-Mail-Status ist momentan nicht verfügbar.\",\n    proof: \"Der Bestätigungsnachweis ist ungültig oder abgelaufen.\",\n    throttled: \"Zu viele Versuche. Bitte versuchen Sie es später erneut.\",\n    uncertain: \"Bitte laden Sie den E-Mail-Status erneut.\",\n  }\n  // effect-ok: async-load - each identity owns its subscription, proof and in-flight request.\n  $effect(() => {\n    const owner = controller\n    proof = \"\"\n    const stop = owner.state.subscribe((value) => {\n      if (value.status === \"invalidated\" || value.verified === true) proof = \"\"\n    })\n    void owner.load()\n\n    return () => {\n      stop()\n      proof = \"\"\n      owner.dispose()\n    }\n  })\n  const request = () => {\n    proof = \"\"\n    void controller.request()\n  }\n  const confirm = (event: SubmitEvent) => {\n    event.preventDefault()\n    const value = proof.trim()\n    proof = \"\"\n    void controller.confirm(value)\n  }\n</script>\n\n<section class:bright={brightBackground} aria-label=\"E-Mail-Bestätigung\" aria-busy={busy}>\n  <h3>E-Mail-Adresse</h3>\n  {#if view.current.status === \"invalidated\"}\n    <p role=\"status\">Anmeldung erneut bestätigen.</p>\n  {:else if view.current.verified === true}\n    <p role=\"status\"><Icon path={mdiCheck} size=\"1rem\" /> E-Mail-Adresse bestätigt.</p>\n  {:else}\n    {#if view.current.error}<p role=\"alert\">{errors[view.current.error]}</p>{/if}\n    {#if view.current.status === \"loading\"}<p role=\"status\">E-Mail-Status wird geladen.</p>{/if}\n    {#if view.current.verified === false}<p role=\"status\">E-Mail-Adresse noch nicht bestätigt.</p\n      >{/if}\n    {#if view.current.requested}<p role=\"status\">Versand angefordert.</p>{/if}\n    <div class=\"actions\">\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={!brightBackground}\n        icon={mdiEmailOutline}\n        content=\"Nachweis anfordern\"\n        onClick={request}\n        disabled={busy || view.current.verified !== false}\n      />\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={!brightBackground}\n        icon={mdiRefresh}\n        ariaLabel=\"Status aktualisieren\"\n        tooltipContent=\"Status aktualisieren\"\n        onClick={() => controller.load()}\n        disabled={busy}\n      />\n    </div>\n    <ContextAuthForm\n      label=\"E-Mail-Adresse bestätigen\"\n      onSubmit={confirm}\n      {busy}\n      {brightBackground}\n      submitLabel=\"E-Mail bestätigen\"\n      disabled={view.current.verified !== false || !proof.trim()}\n    >\n      <div class=\"row single\">\n        <Input\n          placeholder=\"Bestätigungsnachweis\"\n          type=\"password-native\"\n          surfaceTone={brightBackground ? \"light\" : \"dark\"}\n          style={brightBackground ? \"--kw-input-placeholder: var(--text-invers-100);\" : \"\"}\n          clearable={false}\n          bind:value={proof}\n          required\n          maxlength={8192}\n          autocomplete=\"off\"\n          spellcheck={false}\n          disabled={busy || view.current.verified !== false}\n        />\n      </div>\n    </ContextAuthForm>\n  {/if}\n</section>\n\n<style>\n  section {\n    display: grid;\n    min-width: 0;\n    gap: 0.65rem;\n    --auth-text: var(--text-100);\n    color: var(--auth-text);\n    width: 100%;\n    max-width: 36rem;\n  }\n  section.bright {\n    --auth-text: var(--text-invers-100);\n    max-width: none;\n  }\n  h3,\n  p {\n    color: var(--auth-text);\n    overflow-wrap: anywhere;\n    margin: 0;\n    font-size: 0.95rem;\n  }\n  p,\n  .actions {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n  }\n  .actions {\n    flex-wrap: wrap;\n  }\n</style>\n","<script lang=\"ts\">\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { onDestroy, untrack } from \"svelte\"\n  import { fromStore, get } from \"svelte/store\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import { spaNavigate } from \"../../../../_logic/navigation\"\n  import ContextEmailVerification from \"../../../context-email-verification\"\n  import ContextAuthForm from \"../../../context-auth-form\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import {\n    parseInvitationEntry,\n    type ContextRootClient,\n    type InvitationEntry,\n  } from \"../../../../_logic/context-runtime\"\n\n  let {\n    createController,\n    entry,\n  }: {\n    createController: () => ReturnType<ContextRootClient[\"createInvitationAcceptance\"]>\n    entry: InvitationEntry\n  } = $props()\n  const controller = untrack(() => createController())\n  const locator = untrack(() => entry)\n  const view = fromStore(controller.state)\n  const emailView = fromStore(controller.emailVerification.state)\n  let organizationId = $state(locator.kind === \"ready\" ? locator.organizationId : \"\")\n  let invitationId = $state(locator.kind === \"ready\" ? locator.invitationId : \"\")\n  let code = $state(\"\")\n  const busy = $derived(view.current.status === \"submitting\")\n  const errors = {\n    email_verification: \"Bitte bestätigen Sie zuerst Ihre E-Mail-Adresse.\",\n    reauth: \"Bitte melden Sie sich erneut an.\",\n    unavailable: \"Die Einladung ist nicht verfügbar.\",\n    failed: \"Die Einladung konnte nicht angenommen werden.\",\n    invalid_contract: \"Die Annahme konnte nicht bestätigt werden.\",\n  }\n  const submit = async (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (locator.kind === \"invalid\" || busy || !controller.isCurrent()) return\n\n    const input = {\n      organizationId: organizationId.trim(),\n      invitationId: invitationId.trim(),\n      code: code.trim(),\n    }\n    code = \"\"\n    await controller.accept(input.organizationId, input.invitationId, input.code)\n  }\n  const stop = controller.state.subscribe((state) => {\n    if (state.status === \"invalidated\") {\n      organizationId = \"\"\n      invitationId = \"\"\n      code = \"\"\n    }\n  })\n  const openChoices = async () => {\n    if (view.current.status !== \"accepted\") return\n\n    await controller.openChoices()\n    const route = get(location)\n\n    if (\n      locator.kind === \"ready\" &&\n      parseInvitationEntry(route.path, route.search).key === locator.key\n    )\n      spaNavigate(\"/account/access\", { replace: true, noSearchParam: true })\n  }\n  onDestroy(() => {\n    stop()\n    organizationId = \"\"\n    invitationId = \"\"\n    code = \"\"\n    controller.dispose()\n  })\n</script>\n\n<section aria-label=\"Einladung annehmen\" aria-busy={busy}>\n  <h2>Einladung annehmen</h2>\n  {#if locator.kind === \"invalid\"}\n    <p role=\"alert\">Der Einladungslink ist ungültig.</p>\n  {:else if view.current.status === \"accepted\"}\n    <p role=\"status\">Einladung angenommen.</p>\n    <div class=\"actions\">\n      <CTA\n        type=\"secondaryButton\"\n        darkMode={false}\n        content=\"Zugänge neu laden\"\n        onClick={openChoices}\n      />\n    </div>\n  {:else if view.current.status === \"invalidated\"}\n    <p role=\"status\">Die Anmeldung ist nicht mehr aktuell.</p>\n  {:else}\n    <ContextEmailVerification controller={controller.emailVerification} brightBackground />\n    <ContextAuthForm\n      label=\"Einladung annehmen\"\n      onSubmit={submit}\n      {busy}\n      submitLabel={busy ? \"Einladung wird angenommen\" : \"Einladung annehmen\"}\n      disabled={emailView.current.verified !== true ||\n        !organizationId.trim() ||\n        !invitationId.trim() ||\n        !code.trim()}\n    >\n      {#if view.current.error}<p role=\"alert\">{errors[view.current.error]}</p>{/if}\n      {#if locator.kind === \"absent\"}\n        <div class=\"row\">\n          <Input\n            placeholder=\"Organisations-ID\"\n            surfaceTone=\"light\"\n            style=\"--kw-input-placeholder: var(--text-invers-100);\"\n            clearable={false}\n            bind:value={organizationId}\n            maxlength={36}\n            required\n            disabled={busy}\n            autocomplete=\"off\"\n          />\n          <Input\n            placeholder=\"Einladungs-ID\"\n            surfaceTone=\"light\"\n            style=\"--kw-input-placeholder: var(--text-invers-100);\"\n            clearable={false}\n            bind:value={invitationId}\n            maxlength={36}\n            required\n            disabled={busy}\n            autocomplete=\"off\"\n          />\n        </div>\n      {/if}\n      <div class=\"row single\">\n        <Input\n          placeholder=\"Einladungscode\"\n          type=\"password-native\"\n          surfaceTone=\"light\"\n          style=\"--kw-input-placeholder: var(--text-invers-100);\"\n          clearable={false}\n          bind:value={code}\n          maxlength={43}\n          required\n          disabled={busy}\n          autocomplete=\"off\"\n        />\n      </div>\n    </ContextAuthForm>\n  {/if}\n</section>\n\n<style>\n  section {\n    display: flex;\n    flex-direction: column;\n    color: var(--text-invers-100);\n    width: 100%;\n    min-width: 0;\n    gap: 1rem;\n  }\n  .actions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    gap: 0.75rem;\n  }\n  h2 {\n    font-size: 1.05rem;\n    font-weight: 600;\n    margin: 0;\n  }\n  h2,\n  p {\n    color: var(--text-invers-100);\n    overflow-wrap: anywhere;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy } from \"svelte\"\n  import { fromStore } from \"svelte/store\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import type { ContextPassword } from \"../../_logic/authentication\"\n  import {\n    PASSWORD_POLICY_HINT,\n    evaluatePasswordStrength,\n    validatePasswordReplacement,\n  } from \"../../_logic/authentication\"\n\n  let {\n    controller,\n    required = false,\n    brightBackground = false,\n    onSignOut,\n  }: {\n    controller: ContextPassword\n    required?: boolean\n    brightBackground?: boolean\n    onSignOut?: () => void\n  } = $props()\n  const view = $derived(fromStore(controller.state))\n  const busy = $derived(view.current.status === \"verifying\" || view.current.status === \"saving\")\n  let form: HTMLFormElement | undefined = $state()\n  let current = $state(\"\")\n  let next = $state(\"\")\n  let confirm = $state(\"\")\n  const strength = $derived(evaluatePasswordStrength(next, { currentPassword: current }))\n  const liveMismatch = $derived(Boolean(confirm) && next !== confirm)\n  const placeholderStyle = $derived(\n    brightBackground ? \"--kw-input-placeholder: var(--text-invers-100);\" : \"\",\n  )\n  const errors = {\n    mismatch: \"Die neuen Passwörter stimmen nicht überein.\",\n    policy: \"Das neue Passwort erfüllt die Vorgaben nicht.\",\n    current_password: \"Das aktuelle Passwort ist nicht korrekt.\",\n    delegated: \"Im Supportzugriff kann kein Passwort geändert werden.\",\n    failed: \"Das Passwort konnte nicht geändert werden. Bitte erneut versuchen.\",\n    uncertain: \"Das Ergebnis ist unklar. Bitte melden Sie sich erneut an.\",\n  }\n  const clearSecrets = () => {\n    current = \"\"\n    next = \"\"\n    confirm = \"\"\n  }\n  // effect-ok: external-runtime -- a replaced controller releases its own capture and clears drafts on invalidation.\n  $effect(() => {\n    const owner = controller\n    const stop = owner.state.subscribe((state) => {\n      if (state.status === \"invalidated\" || state.status === \"changed\") clearSecrets()\n    })\n\n    return () => {\n      stop()\n      clearSecrets()\n      owner.dispose()\n    }\n  })\n  onDestroy(clearSecrets)\n  const submit = async (event: SubmitEvent) => {\n    event.preventDefault()\n\n    if (busy) return\n\n    const input = { current, next, confirm }\n    const hasClientError =\n      input.next !== input.confirm ||\n      Boolean(validatePasswordReplacement(input.next, input.current))\n\n    if (hasClientError) {\n      await controller.submit(input)\n\n      return\n    }\n\n    current = \"\"\n    const changed = await controller.submit(input)\n\n    if (changed || view.current.status !== \"ready\" || view.current.error === \"policy\") {\n      next = \"\"\n      confirm = \"\"\n    }\n  }\n</script>\n\n<section\n  class=\"password-change\"\n  class:bright={brightBackground}\n  aria-label=\"Passwort ändern\"\n  aria-busy={busy}\n>\n  {#if required}\n    <p class=\"intro\">Bitte legen Sie ein neues Passwort fest, um fortzufahren.</p>\n  {:else if brightBackground}\n    <SectionTitle\n      title=\"Passwort ändern\"\n      brightBackground={true}\n      small={true}\n      styleOuter=\"margin-bottom: 0.4rem;\"\n    />\n  {:else}\n    <h2>Passwort ändern</h2>\n  {/if}\n  {#if view.current.status === \"changed\"}\n    <p role=\"status\">Passwort geändert. Bitte melden Sie sich mit dem neuen Passwort an.</p>\n  {:else if view.current.status === \"invalidated\"}\n    <p role=\"status\">\n      {view.current.error\n        ? errors[view.current.error]\n        : \"Der Zugang hat sich geändert. Bitte erneut öffnen.\"}\n    </p>\n  {:else}\n    <form\n      class=\"form password-form\"\n      class:dark={brightBackground}\n      class:light={!brightBackground}\n      aria-label=\"Neues Passwort festlegen\"\n      aria-busy={busy}\n      bind:this={form}\n      onsubmit={submit}\n    >\n      {#if view.current.error}\n        <p role=\"alert\" class=\"error-copy\">\n          {view.current.policyMessage ?? errors[view.current.error]}\n        </p>\n      {/if}\n      <div class=\"row single\">\n        <Input\n          placeholder=\"Aktuelles Passwort\"\n          type=\"password-native\"\n          surfaceTone={brightBackground ? \"light\" : \"dark\"}\n          style={placeholderStyle}\n          clearable={false}\n          autocomplete=\"current-password\"\n          bind:value={current}\n          required\n          disabled={busy}\n        />\n      </div>\n      <div class=\"row\">\n        <Input\n          placeholder=\"Neues Passwort\"\n          type=\"password-native\"\n          surfaceTone={brightBackground ? \"light\" : \"dark\"}\n          style={placeholderStyle}\n          clearable={false}\n          autocomplete=\"new-password\"\n          bind:value={next}\n          required\n          minlength={12}\n          maxlength={128}\n          aria-describedby=\"password-change-policy\"\n          disabled={busy}\n        />\n        <Input\n          placeholder=\"Neues Passwort bestätigen\"\n          type=\"password-native\"\n          surfaceTone={brightBackground ? \"light\" : \"dark\"}\n          style={placeholderStyle}\n          clearable={false}\n          autocomplete=\"new-password\"\n          bind:value={confirm}\n          required\n          minlength={12}\n          maxlength={128}\n          disabled={busy}\n        />\n      </div>\n      <p id=\"password-change-policy\" class=\"hint\">{PASSWORD_POLICY_HINT}</p>\n      {#if next}\n        <div\n          class=\"password-strength\"\n          class:invalid={strength.score === 0}\n          data-score={strength.score}\n          data-testid=\"auth.passwordStrength\"\n        >\n          <div class=\"bar\" aria-hidden=\"true\">\n            {#each [0, 1, 2, 3] as segment (segment)}\n              <span\n                class:active={segment < strength.score}\n                class:rejected={strength.score === 0 && segment === 0}\n              ></span>\n            {/each}\n          </div>\n          <div class=\"copy\">\n            <strong>{strength.label}</strong>\n            {#if strength.hints.length}\n              <small>{strength.hints.join(\" \")}</small>\n            {/if}\n          </div>\n        </div>\n      {/if}\n      {#if liveMismatch}\n        <p class=\"mismatch-hint\">{errors.mismatch}</p>\n      {/if}\n      <div class=\"form-actions\" class:with-secondary={Boolean(onSignOut)}>\n        {#if onSignOut}\n          <CTA\n            type=\"tertiaryButton\"\n            darkMode={!brightBackground}\n            content=\"Abmelden\"\n            disabled={busy}\n            onClick={onSignOut}\n          />\n        {/if}\n        <CTA\n          type=\"primaryButton\"\n          darkMode={!brightBackground}\n          content={busy ? \"Passwort wird geändert\" : \"Passwort ändern\"}\n          disabled={busy}\n          onClick={(event: MouseEvent) => {\n            event.preventDefault()\n            form?.requestSubmit()\n          }}\n        />\n      </div>\n      <button type=\"submit\" class=\"submit-proxy\" tabindex=\"-1\" aria-hidden=\"true\" disabled={busy}\n      ></button>\n    </form>\n  {/if}\n</section>\n\n<style>\n  .password-change {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n    --auth-text: var(--text-100);\n    color: var(--auth-text);\n  }\n  .bright {\n    --auth-text: var(--text-invers-100);\n  }\n  .password-form {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n    box-sizing: border-box;\n  }\n  .row {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 1rem;\n  }\n  .row.single {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  h2,\n  p {\n    color: var(--auth-text);\n    overflow-wrap: anywhere;\n  }\n  h2 {\n    font-size: 1.05rem;\n    font-weight: 600;\n    margin: 0;\n  }\n  .intro {\n    margin: 0;\n    font-size: 0.925rem;\n    line-height: 1.45;\n  }\n  .error-copy,\n  .mismatch-hint {\n    margin: 0;\n    color: var(--primary-100);\n    font-weight: 600;\n    font-size: 0.875rem;\n  }\n  .hint {\n    margin: 0;\n    font-size: 0.8125rem;\n    color: var(--auth-text);\n    opacity: 0.84;\n  }\n  .password-strength {\n    display: flex;\n    flex-direction: column;\n    gap: 0.35rem;\n    width: 100%;\n  }\n  .bar {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 0.25rem;\n    height: 0.35rem;\n  }\n  .bar span {\n    border-radius: 999px;\n    background: color-mix(in srgb, var(--auth-text) 16%, transparent);\n  }\n  .bar span.active {\n    background: var(--green-200, #0c796c);\n  }\n  .bar span.rejected {\n    background: var(--primary-100);\n  }\n  .copy {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 0.5rem;\n    color: var(--auth-text);\n    font-size: 0.85rem;\n    line-height: 1.35;\n  }\n  .password-strength.invalid .copy strong,\n  .password-strength.invalid .copy small {\n    color: var(--primary-100);\n    opacity: 1;\n  }\n  .copy small {\n    color: var(--auth-text);\n    opacity: 0.85;\n  }\n  .form-actions {\n    display: flex;\n    width: 100%;\n    justify-content: flex-end;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 0.8rem;\n    margin-top: 0.4rem;\n  }\n  .form-actions.with-secondary {\n    justify-content: space-between;\n  }\n  .submit-proxy {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip-path: inset(50%);\n  }\n  @media (max-width: 720px) {\n    .row {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, untrack, type Snippet } from \"svelte\"\n  import { fromStore, get } from \"svelte/store\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import type { ContextSessionResponse } from \"@kontextwerk/control-web-client\"\n  import {\n    clearImportantActionReauth,\n    configureImportantActionReauth,\n  } from \"@kontextwerk/web-sdk/ui/security/importantActionReauth\"\n  import ContextRoot from \"../context-root\"\n  import InvitationAccess from \"./_modules/invitation-access\"\n  import PendingInvitation from \"./_modules/pending-invitation\"\n  import ContextPasswordChange from \"../context-password-change\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import {\n    createContextRootClient,\n    parseInvitationEntry,\n    provideContextRootClient,\n    type ContextRootControls,\n    type ContextRootClient,\n  } from \"../../_logic/context-runtime\"\n  import { getAdminApiConfig } from \"../../../api/client/control/http-client\"\n  import { spaNavigate } from \"../../_logic/navigation\"\n  import {\n    claimControlContext,\n    createControlContext,\n    type PreferredOrganizationTarget,\n  } from \"../../_logic/authentication\"\n  import { buildPermissionState } from \"../../_logic/authorization\"\n  import type { CapabilityDefinition } from \"../../_logic/authorization\"\n\n  let {\n    definitions,\n    workspace,\n    shell,\n    client: providedClient,\n    signupEnabled = false,\n    preferredOrganization = null,\n  }: {\n    definitions: readonly CapabilityDefinition[]\n    workspace: Snippet<[ContextSessionResponse, ContextRootControls]>\n    shell: Snippet<[Snippet]>\n    client?: ContextRootClient\n    signupEnabled?: boolean\n    preferredOrganization?: PreferredOrganizationTarget | null\n  } = $props()\n\n  // One V2 root per mount: a remount after a public page starts a fresh lifecycle.\n  const { baseUrl, apiPrefix } = getAdminApiConfig()\n  const client = untrack(\n    () =>\n      providedClient ??\n      createContextRootClient({\n        baseUrl,\n        apiPrefix,\n        preferredOrganization: () => preferredOrganization,\n      }),\n  )\n  const catalog = untrack(() => definitions)\n  const invitationEntry = $derived(parseInvitationEntry($location.path, $location.search))\n  let invitationIntent: {\n    capture: ReturnType<ContextRootClient[\"root\"][\"access\"][\"capturePendingLogin\"]>\n    route: string\n  } | null = $state.raw(null)\n  const invitationRoute = $derived(`${$location.path}:${invitationEntry.key}`)\n  // An invitation link always starts signed out: a session already open in this browser may\n  // belong to someone else, e.g. the inviting admin, and must not quietly join the invitation.\n  // Sign-ins made on the invitation page itself stay untouched.\n  let invitationSessionChecked = $state<string | null>(null)\n  const holdForInvitation = $derived(\n    invitationEntry.kind === \"ready\" && invitationSessionChecked !== invitationEntry.key,\n  )\n  // Login address of an account just created from an invitation, prefilled once more after\n  // the used-up mail locator is dropped; it is the person's own entry, never a credential.\n  let registeredEmail = $state<string | null>(null)\n  const continueAfterRegistration = (email: string) => {\n    registeredEmail = email\n    spaNavigate(\"/account/access\", { replace: true, noSearchParam: true })\n  }\n  provideContextRootClient(client)\n  let rejected: string | null = null\n  const sessionPair = (session: ContextSessionResponse | null) =>\n    session ? `${session.session_id}:${session.context_revision}` : null\n  const publication = claimControlContext({\n    capture() {\n      const binding = client.root.captureMutation()\n\n      return {\n        mutationContext: {\n          expected_session_id: binding.expected_session_id,\n          expected_context_revision: binding.expected_context_revision,\n        },\n        signal: binding.requestOptions.signal,\n        isCurrent: binding.requestOptions.isCurrent,\n      }\n    },\n    reject() {\n      const pair = sessionPair(get(client.root.access.state).session)\n\n      // Re-read the server context once; the same rejected pair twice means no valid session.\n      if (!pair || pair === rejected) {\n        client.root.invalidate(\"revoked\")\n\n        return\n      }\n\n      rejected = pair\n      void client.root.authorizationChanged()\n    },\n    refresh: () => client.root.authorizationChanged(),\n    reauthenticate: (password) =>\n      client.security.authenticate(password, client.root.captureMutation()),\n  })\n  const syncPublication = () => {\n    const state = get(client.root.access.state)\n    const aligning = client.root.aligningPreferred ? get(client.root.aligningPreferred) : false\n\n    publication.publish(\n      !aligning && state.status === \"ready\" && state.session\n        ? createControlContext(state.session, buildPermissionState(state.session, catalog))\n        : null,\n    )\n  }\n  const stopPublication = client.root.access.state.subscribe(syncPublication)\n  const stopAligningPublication = client.root.aligningPreferred?.subscribe(syncPublication) ?? null\n\n  const accessState = fromStore(client.root.access.state)\n  const rootBootstrapping = fromStore(client.root.bootstrapping)\n  const rootAligning = client.root.aligningPreferred\n    ? fromStore(client.root.aligningPreferred)\n    : { current: false }\n  let lastAutoSwitchedTargetId: string | null = null\n\n  // effect-ok: external-runtime - ends a session that was already open when an invitation link is opened.\n  $effect(() => {\n    if (invitationEntry.kind !== \"ready\" || invitationSessionChecked === invitationEntry.key) return\n\n    if (rootBootstrapping.current) return\n\n    const key = invitationEntry.key\n    const session = accessState.current.session\n\n    // The local state is signed out at once; a failed server logout only keeps the old cookie.\n    if (session && !client.root.access.isPendingLogin())\n      void client.root.logout(session).catch(() => {})\n\n    invitationSessionChecked = key\n  })\n\n  // effect-ok: external-runtime - switches an active foreign session into the target signup organization on entry.\n  $effect(() => {\n    const target = preferredOrganization\n    const targetId = target?.organizationId?.trim().toLowerCase() ?? \"\"\n\n    if (!targetId) {\n      lastAutoSwitchedTargetId = null\n\n      return\n    }\n\n    if (rootBootstrapping.current || rootAligning.current) return\n\n    const current = accessState.current\n\n    if (current.status !== \"ready\" || !current.session) return\n\n    if (\n      current.session.context.kind === \"organization\" &&\n      current.session.context.organization_id.toLowerCase() === targetId\n    ) {\n      lastAutoSwitchedTargetId = targetId\n\n      return\n    }\n\n    if (lastAutoSwitchedTargetId === targetId) return\n\n    lastAutoSwitchedTargetId = targetId\n    void client.root.access.switchToOrganization(target!)\n  })\n  configureImportantActionReauth({\n    async reauthenticate(password) {\n      const binding = client.root.captureMutation()\n\n      if (!(await client.security.authenticate(password, binding)))\n        throw new DOMException(\"Obsolete reauthentication context\", \"AbortError\")\n\n      const expiresAt = get(client.security.state).expiresAt\n\n      return {\n        reauth_level: \"password\",\n        expires_at: expiresAt === null ? null : new Date(expiresAt).toISOString(),\n      }\n    },\n  })\n  // A page-wide \"recently confirmed\" hint must never outlive the session-bound proof.\n  const stopProofHint = client.security.state.subscribe((state) => {\n    if (state.status === \"idle\" && publication.isOwner()) clearImportantActionReauth()\n  })\n  onDestroy(() => {\n    stopProofHint()\n    stopAligningPublication?.()\n    stopPublication()\n\n    if (publication.isOwner()) clearImportantActionReauth()\n\n    publication.release()\n  })\n</script>\n\n<!-- An invitation link is about joining an organization, not founding one: no signup tab. -->\n<ContextRoot\n  root={client.root}\n  {workspace}\n  {shell}\n  signupEnabled={signupEnabled && invitationEntry.kind === \"absent\"}\n  preferredOrganizationName={preferredOrganization?.organizationName ?? null}\n  holdSession={holdForInvitation}\n>\n  {#snippet signedOutContent(loginForm)}\n    {#if invitationEntry.kind === \"ready\"}\n      {#key invitationEntry.key}\n        <InvitationAccess\n          organizationId={invitationEntry.organizationId}\n          invitationId={invitationEntry.invitationId}\n          {loginForm}\n          createRegistration={() => client.createInvitationRegistration()}\n          onRegistered={continueAfterRegistration}\n        />\n      {/key}\n    {:else}\n      {@render loginForm(registeredEmail)}\n    {/if}\n  {/snippet}\n  {#snippet pendingContent(capture)}\n    {#key `${$location.path}:${invitationEntry.key}`}\n      {#if invitationEntry.kind !== \"absent\" || (invitationIntent?.capture === capture && invitationIntent.route === invitationRoute)}\n        <PendingInvitation\n          entry={invitationEntry}\n          createController={() => client.createInvitationAcceptance({ kind: \"pending\", capture })}\n        />\n      {:else}\n        <CTA\n          type=\"secondaryButton\"\n          darkMode={false}\n          content=\"Einladung annehmen\"\n          onClick={() => (invitationIntent = { capture, route: invitationRoute })}\n        />\n      {/if}\n    {/key}\n  {/snippet}\n  {#snippet passwordChange(session, signOut)}\n    {#if session.password_change_required}\n      <ContextPasswordChange\n        controller={client.createPasswordChange()}\n        required\n        brightBackground\n        onSignOut={signOut ? () => signOut(session) : undefined}\n      />\n    {/if}\n  {/snippet}\n</ContextRoot>\n","const normalizeOrigin = (value: string): string => value.replace(/\\/+$/, \"\")\n\nconst FALLBACK_HOSTNAME = \"index-admin.localhost\"\nconst activeHostname =\n  typeof window !== \"undefined\" && window.location?.hostname\n    ? window.location.hostname.trim() || FALLBACK_HOSTNAME\n    : FALLBACK_HOSTNAME\nconst isLocalEnvironment = activeHostname.includes(\"localhost\") || activeHostname === \"127.0.0.1\"\nconst activePublicPort =\n  typeof window !== \"undefined\" && window.location?.port && !isLocalEnvironment\n    ? window.location.port.trim()\n    : \"\"\nconst publicPortSuffix = activePublicPort ? `:${activePublicPort}` : \"\"\n\nconst swapIndexAdmin = (replacement: string): string => {\n  if (activeHostname.includes(\"index-admin\")) {\n    return activeHostname.replace(\"index-admin\", replacement)\n  }\n\n  return activeHostname\n}\n\n// In the browser, always resolve public service hosts from the current hostname.\n// Never use internal Docker service names like `control-server:8000` here.\nconst resolveControlOrigin = (): string =>\n  `https://${swapIndexAdmin(\"control-server\")}${publicPortSuffix}`\n\nconst fallbackControlServerOrigin = resolveControlOrigin()\nconst fallbackControlAdminOrigin = `https://${swapIndexAdmin(\"app\")}${publicPortSuffix}`\nconst fallbackIndexServerOrigin = `https://${swapIndexAdmin(\"index-server\")}${publicPortSuffix}`\nconst fallbackMinioSyncerOrigin = `https://${swapIndexAdmin(\"minio-syncer\")}${publicPortSuffix}`\nconst fallbackScrapingOrigin = `https://${swapIndexAdmin(\"scraping\")}${publicPortSuffix}`\nconst fallbackAnswerLibraryManagerOrigin = `https://${swapIndexAdmin(\"answers\")}${publicPortSuffix}`\nconst fallbackSharePointSyncerOrigin = `https://${swapIndexAdmin(\"sharepoint-syncer\")}${publicPortSuffix}`\n\nconst envControlServerOrigin = (process.env.CONTROL_SERVER_ORIGIN ?? \"\").trim()\nconst envControlAdminOrigin = (process.env.CONTROL_ADMIN_ORIGIN ?? \"\").trim()\nconst envIndexServerOrigin = (process.env.INDEX_SERVER_ORIGIN ?? \"\").trim()\nconst envMinioSyncerOrigin = (process.env.MINIO_SYNCER_ORIGIN ?? \"\").trim()\nconst envScrapingOrigin = (process.env.SCRAPING_ORCHESTRATOR_ORIGIN ?? \"\").trim()\nconst envAnswerLibraryManagerOrigin = (process.env.ANSWER_LIBRARY_MANAGER_ORIGIN ?? \"\").trim()\nconst envSharePointSyncerOrigin = (process.env.SHAREPOINT_SYNCER_ORIGIN ?? \"\").trim()\nconst envContactEndpoint = (\n  process.env.CONTACT_ENDPOINT ?? \"https://kontextwerk.agency/api/contact\"\n).trim()\nconst envTheme = (process.env.THEME ?? \"\").trim()\nconst hostPrefersKehrblatt =\n  activeHostname.includes(\"kerhblatt\") || activeHostname.includes(\"kehrblatt\")\n\n// Always force https; localhost dev is deprecated.\nconst enforceHttps = (origin: string): string => {\n  if (!origin) return origin\n\n  try {\n    const url = new URL(origin)\n\n    if (url.protocol === \"http:\") {\n      url.protocol = \"https:\"\n\n      return url.toString().replace(/\\/+$/, \"\")\n    }\n\n    return origin\n  } catch {\n    return origin.startsWith(\"http:\") ? origin.replace(/^http:/, \"https:\") : origin\n  }\n}\n\nconst extractHostname = (value: string | null | undefined): string | null => {\n  if (!value) return null\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return null\n\n  const candidates = [trimmed]\n\n  if (!/^https?:\\/\\//i.test(trimmed)) {\n    candidates.unshift(`http://${trimmed.replace(/^\\/\\//, \"\")}`)\n  }\n\n  for (const candidate of candidates) {\n    try {\n      const url = new URL(candidate)\n\n      if (url.hostname) return url.hostname\n    } catch {\n      /* try next */\n    }\n  }\n\n  return null\n}\n\nconst ensureHttpsOrigin = (value: string | null, fallback: string): string => {\n  const trimmed = (value ?? \"\").trim()\n\n  if (!trimmed) return fallback\n\n  const withScheme = /^https?:\\/\\//i.test(trimmed)\n    ? trimmed\n    : `https://${trimmed.replace(/^\\/\\//, \"\")}`\n\n  return withCurrentPublicPort(enforceHttps(withScheme))\n}\n\nconst withCurrentPublicPort = (origin: string): string => {\n  if (!activePublicPort || !origin) return origin\n\n  try {\n    const url = new URL(origin)\n\n    if (url.port || url.hostname.includes(\"localhost\") || url.hostname === \"127.0.0.1\") {\n      return origin\n    }\n\n    const activeBaseDomain = activeHostname.split(\".\").slice(1).join(\".\")\n    const targetBaseDomain = url.hostname.split(\".\").slice(1).join(\".\")\n\n    if (activeBaseDomain && targetBaseDomain && activeBaseDomain === targetBaseDomain) {\n      url.port = activePublicPort\n\n      return url.toString().replace(/\\/+$/, \"\")\n    }\n  } catch {\n    return origin\n  }\n\n  return origin\n}\n\nconst shouldUseConfiguredOrigin = (candidate: string | null): boolean => {\n  if (!candidate) return false\n\n  if (typeof window === \"undefined\") return true\n\n  const host = extractHostname(candidate)\n\n  if (!host) return false\n\n  return true\n}\n\nconst normalizeLocalHost = (value: string, targetHost: string): string => {\n  // Localhost flows are deprecated; keep value untouched.\n  return value\n}\n\n// Control origin must always be derived from window.location in the browser.\n// `CONTROL_SERVER_ORIGIN` from env is used for container-to-container traffic and breaks in browsers.\nconst resolvedControlServerOrigin =\n  typeof window !== \"undefined\"\n    ? fallbackControlServerOrigin\n    : shouldUseConfiguredOrigin(envControlServerOrigin)\n      ? ensureHttpsOrigin(envControlServerOrigin, fallbackControlServerOrigin)\n      : fallbackControlServerOrigin\nconst resolvedControlAdminOrigin = shouldUseConfiguredOrigin(envControlAdminOrigin)\n  ? ensureHttpsOrigin(envControlAdminOrigin, fallbackControlAdminOrigin)\n  : fallbackControlAdminOrigin\n\nconst CONTROL_SERVER_ORIGIN = normalizeOrigin(\n  enforceHttps(normalizeLocalHost(resolvedControlServerOrigin, swapIndexAdmin(\"control-server\"))),\n)\nconst CONTROL_ADMIN_ORIGIN = normalizeOrigin(\n  enforceHttps(normalizeLocalHost(resolvedControlAdminOrigin, swapIndexAdmin(\"app\"))),\n)\nexport { CONTROL_SERVER_ORIGIN, CONTROL_ADMIN_ORIGIN }\nexport const WERK_ADMIN_ORIGIN = `https://${swapIndexAdmin(\"werk-admin\")}${publicPortSuffix}`\n\nconst SERVICE_ORIGINS = [\n  CONTROL_SERVER_ORIGIN,\n  CONTROL_ADMIN_ORIGIN,\n  fallbackIndexServerOrigin,\n  fallbackMinioSyncerOrigin,\n  fallbackScrapingOrigin,\n  fallbackAnswerLibraryManagerOrigin,\n  fallbackSharePointSyncerOrigin,\n  withCurrentPublicPort(envIndexServerOrigin || fallbackIndexServerOrigin),\n  withCurrentPublicPort(envMinioSyncerOrigin || fallbackMinioSyncerOrigin),\n  withCurrentPublicPort(envScrapingOrigin || fallbackScrapingOrigin),\n  withCurrentPublicPort(envAnswerLibraryManagerOrigin || fallbackAnswerLibraryManagerOrigin),\n  withCurrentPublicPort(envSharePointSyncerOrigin || fallbackSharePointSyncerOrigin),\n]\n\nconst SERVICE_HOSTS = new Set(\n  SERVICE_ORIGINS.map((origin) => extractHostname(origin)).filter((host): host is string =>\n    Boolean(host),\n  ),\n)\n\nconst forceHttpsForKnownHosts = (value: string): string => {\n  if (!value) return value\n\n  try {\n    const url = new URL(value, typeof window !== \"undefined\" ? window.location.href : undefined)\n\n    if (url.protocol === \"http:\" && SERVICE_HOSTS.has(url.hostname)) {\n      url.protocol = \"https:\"\n\n      return url.toString()\n    }\n\n    return value\n  } catch {\n    return value.startsWith(\"http://\") ? value.replace(/^http:\\/\\//, \"https://\") : value\n  }\n}\n\ntype RequestInput = RequestInfo | URL\n\nconst upgradeRequestInput = (input: RequestInput): RequestInput => {\n  if (typeof input === \"string\") {\n    return forceHttpsForKnownHosts(input)\n  }\n\n  if (input instanceof URL) {\n    const upgraded = forceHttpsForKnownHosts(input.toString())\n\n    return upgraded === input.toString() ? input : new URL(upgraded)\n  }\n\n  try {\n    const current = (input as Request).url\n    const upgraded = forceHttpsForKnownHosts(current)\n\n    if (upgraded === current) return input\n\n    return new Request(upgraded, input as Request)\n  } catch {\n    return input\n  }\n}\n\nconst shouldIncludeCredentialsForInput = (input: RequestInput): boolean => {\n  try {\n    if (typeof input === \"string\") {\n      const parsed = new URL(\n        input,\n        typeof window !== \"undefined\" ? window.location.href : undefined,\n      )\n\n      return SERVICE_HOSTS.has(parsed.hostname)\n    }\n\n    if (input instanceof URL) {\n      return SERVICE_HOSTS.has(input.hostname)\n    }\n\n    return SERVICE_HOSTS.has(new URL((input as Request).url).hostname)\n  } catch {\n    return false\n  }\n}\n\nif (\n  typeof window !== \"undefined\" &&\n  typeof window.fetch === \"function\" &&\n  !(window as unknown as { __https_guard_installed__?: boolean }).__https_guard_installed__\n) {\n  ;(window as unknown as { __https_guard_installed__?: boolean }).__https_guard_installed__ = true\n  const originalFetch = window.fetch.bind(window)\n  window.fetch = (input: RequestInput, init?: RequestInit) => {\n    const upgradedInput = upgradeRequestInput(input)\n\n    if (init?.credentials || !shouldIncludeCredentialsForInput(upgradedInput)) {\n      return originalFetch(upgradedInput, init)\n    }\n\n    return originalFetch(upgradedInput, { ...(init ?? {}), credentials: \"include\" })\n  }\n}\n\nconst resolveBrowserServiceOrigin = (configured: string, fallback: string): string =>\n  typeof window !== \"undefined\" ? fallback : ensureHttpsOrigin(configured, fallback)\n\nexport const INDEX_SERVER_ORIGIN = normalizeOrigin(\n  resolveBrowserServiceOrigin(envIndexServerOrigin, fallbackIndexServerOrigin),\n)\nexport const MINIO_SYNCER_ORIGIN = normalizeOrigin(\n  resolveBrowserServiceOrigin(envMinioSyncerOrigin, fallbackMinioSyncerOrigin),\n)\nexport const SCRAPING_ORCHESTRATOR_ORIGIN = normalizeOrigin(\n  resolveBrowserServiceOrigin(envScrapingOrigin, fallbackScrapingOrigin),\n)\nexport const ANSWER_LIBRARY_MANAGER_ORIGIN = normalizeOrigin(\n  resolveBrowserServiceOrigin(envAnswerLibraryManagerOrigin, fallbackAnswerLibraryManagerOrigin),\n)\nexport const SHAREPOINT_SYNCER_ORIGIN = normalizeOrigin(\n  resolveBrowserServiceOrigin(envSharePointSyncerOrigin, fallbackSharePointSyncerOrigin),\n)\n\nexport const baseAPIURL = `${INDEX_SERVER_ORIGIN}/api/v1`\nexport const scrapingAPIURL = `${SCRAPING_ORCHESTRATOR_ORIGIN}/api/v1`\nexport const MINIO_SYNCER_API_URL = `${MINIO_SYNCER_ORIGIN}/api/v1`\nexport const ANSWER_LIBRARY_MANAGER_API_URL = `${ANSWER_LIBRARY_MANAGER_ORIGIN}/api/v1`\nexport const SHAREPOINT_SYNCER_API_URL = `${SHAREPOINT_SYNCER_ORIGIN}/api/v1`\n\nexport const buildServiceHeaders = (): Record<string, string> => {\n  return {}\n}\n\nexport const contactEndpoint = envContactEndpoint || \"https://kontextwerk.agency/api/contact\"\nexport type ThemeName = \"KontextWerk\" | \"KehrBlatt\"\nexport const THEME: ThemeName =\n  envTheme === \"KehrBlatt\" || hostPrefersKehrblatt ? \"KehrBlatt\" : \"KontextWerk\"\n","import { ControlClientError, ControlWebClient } from \"@kontextwerk/control-web-client\"\nimport type {\n  ContextSessionResponse,\n  IdentityResponse,\n  OrganizationSummary,\n  Project,\n} from \"@kontextwerk/control-web-client\"\nimport { get } from \"svelte/store\"\nimport { createContextRootClient } from \"@kontextwerk/control-web-frame/shared/logic/context-runtime\"\nimport {\n    captureControlContext,\n    controlContext,\n    rejectControlContext,\n} from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\n\nimport { CONTROL_SERVER_ORIGIN } from \"../runtime-config\"\n\nexport type ControlAdminState = {\n  initialized: boolean\n  initializedAt: number | null\n  user: IdentityResponse | null\n  organizations: OrganizationSummary[]\n  projects: Project[]\n}\n\nexport const indexContextClient = createContextRootClient({\n  baseUrl: CONTROL_SERVER_ORIGIN,\n  credentials: \"include\",\n})\nconst controlClient = new ControlWebClient({\n  baseUrl: CONTROL_SERVER_ORIGIN,\n  credentials: \"include\",\n  contextBinding: \"required\",\n  captureContext: captureControlContext,\n  onError(error) {\n    if ((error as { statusCode?: number }).statusCode === 401) rejectControlContext()\n  },\n})\nconst captureIndexContext = () => {\n  const context = get(controlContext)\n  const capture = captureControlContext()\n\n  if (!context || !capture)\n    throw new DOMException(\"Confirmed Index context required\", \"InvalidStateError\")\n\n  const assertCurrent = () => {\n    if (get(controlContext) !== context || capture.signal.aborted || !capture.isCurrent())\n      throw new DOMException(\"Obsolete Index context\", \"AbortError\")\n  }\n  assertCurrent()\n\n  return { session: context.session, assertCurrent }\n}\n\nexport const requestControlAdmin = <T>(path: string): Promise<T> =>\n  controlClient.transport.request<T>(\"GET\", `/admin${path}`)\n\nconst defaultState = (): ControlAdminState => ({\n  initialized: false,\n  initializedAt: null,\n  user: null,\n  organizations: [],\n  projects: [],\n})\n\nlet state: ControlAdminState = defaultState()\nlet initPromise: Promise<ControlAdminState> | null = null\n\nconst readOrganizations = (session: ContextSessionResponse): Promise<OrganizationSummary[]> =>\n  session.context.kind === \"organization\"\n    ? controlClient.admin.organization.registry\n        .get(session.context.organization_id)\n        .then((organization) => [organization])\n    : controlClient.admin.organization.registry.list()\n\nconst listProjectsAcrossOrganizations = async (\n  binding = captureIndexContext(),\n): Promise<Project[]> => {\n  const { session, assertCurrent } = binding\n  assertCurrent()\n\n  // A platform assignment never creates a customer membership or reads customer projects.\n  if (session.context.kind !== \"organization\") return []\n\n  const organizations = await readOrganizations(session)\n  assertCurrent()\n  const projectGroups = await Promise.all(\n    organizations.map(async (organization) => {\n      try {\n        return await controlClient.admin.organization.project.list(organization.id)\n      } catch (err) {\n        console.warn(\"index_admin:list_projects_failed\", organization.id, err)\n\n        return [] as Project[]\n      }\n    }),\n  )\n  assertCurrent()\n\n  return projectGroups.flat()\n}\n\nconst normalizeIdentifier = (value: string | null | undefined) => (value ?? \"\").trim()\n\nconst matchesProjectIdentifier = (project: Project, identifier: string): boolean => {\n  const normalized = normalizeIdentifier(identifier)\n\n  return [project.id, project.slug, project.name].some(\n    (value) => normalizeIdentifier(value) === normalized,\n  )\n}\n\nexport const fetchAdminOrganization = async (\n  organizationIdentifier: string,\n): Promise<OrganizationSummary> => {\n  const normalizedOrganizationIdentifier = normalizeIdentifier(organizationIdentifier)\n\n  if (!normalizedOrganizationIdentifier) {\n    throw new Error(\"organization_not_found\")\n  }\n\n  return controlClient.admin.organization.registry.get(normalizedOrganizationIdentifier)\n}\n\nexport const fetchAdminProjectByIdentifier = async (\n  projectIdentifier: string,\n  options?: { organizationIdentifier?: string | null },\n): Promise<Project> => {\n  const normalizedProjectIdentifier = normalizeIdentifier(projectIdentifier)\n\n  if (!normalizedProjectIdentifier) {\n    throw new Error(\"project_not_found\")\n  }\n\n  const organizationIdentifier = normalizeIdentifier(options?.organizationIdentifier)\n  const binding = captureIndexContext()\n\n  if (organizationIdentifier) {\n    return controlClient.admin.organization.project.get(\n      organizationIdentifier,\n      normalizedProjectIdentifier,\n    )\n  }\n\n  const projects = await listProjectsAcrossOrganizations(binding)\n  binding.assertCurrent()\n  const match = projects.find((project) =>\n    matchesProjectIdentifier(project, normalizedProjectIdentifier),\n  )\n\n  if (!match?.id || !match.organization_id) {\n    throw new Error(\"project_not_found\")\n  }\n\n  return controlClient.admin.organization.project.get(match.organization_id, match.id)\n}\n\nconst resetControlAdminState = () => {\n  state = defaultState()\n  initPromise = null\n}\n\nexport const initControlAdmin = async (options?: {\n  force?: boolean\n}): Promise<ControlAdminState> => {\n  if (!options?.force && initPromise) return initPromise\n\n  if (!options?.force && state.initialized) return state\n\n  const binding = captureIndexContext()\n  const promise: Promise<ControlAdminState> = Promise.all([\n    readOrganizations(binding.session),\n    listProjectsAcrossOrganizations(binding),\n  ])\n    .then(([organizations, projects]) => {\n      binding.assertCurrent()\n\n      if (initPromise !== promise)\n        throw new DOMException(\"Superseded Index bootstrap\", \"AbortError\")\n\n      state = {\n        initialized: true,\n        initializedAt: Date.now(),\n        user: binding.session.user,\n        organizations,\n        projects,\n      }\n\n      return state\n    })\n    .finally(() => {\n      if (initPromise === promise) initPromise = null\n    })\n  initPromise = promise\n\n  return promise\n}\n\nexport const getControlAdminState = (): ControlAdminState => state\n\nexport const getCachedUser = (): IdentityResponse | null => state.user\n\nexport const getCachedOrganizations = (): OrganizationSummary[] => state.organizations\n\nexport const getCachedProjects = (): Project[] => state.projects\n\nexport const reauthControlAdmin = async (password: string) => {\n  const capture = indexContextClient.root.captureMutation()\n\n  if (!(await indexContextClient.security.authenticate(password, capture)))\n    throw new DOMException(\"Obsolete Index reauthentication\", \"AbortError\")\n\n  const proof = get(indexContextClient.security.state)\n\n  return {\n    reauth_level: \"password\",\n    expires_at: proof.expiresAt === null ? null : new Date(proof.expiresAt).toISOString(),\n  }\n}\n\nexport const logoutControlAdminBestEffort = async (): Promise<void> => {\n  try {\n    await indexContextClient.root.logout()\n  } catch (error) {\n    console.warn(\"Control logout failed\", error)\n  }\n}\n\nexport const fetchAdminProjects = async (): Promise<Project[]> => {\n  const binding = captureIndexContext()\n  const projects = await listProjectsAcrossOrganizations(binding)\n  binding.assertCurrent()\n  state = { ...state, projects }\n\n  return projects\n}\n\nexport const fetchAdminOrganizations = async (): Promise<OrganizationSummary[]> => {\n  const binding = captureIndexContext()\n  const organizations = await readOrganizations(binding.session)\n  binding.assertCurrent()\n  state = { ...state, organizations }\n\n  return organizations\n}\n\ncontrolContext.subscribe(() => resetControlAdminState())\n\nexport const fetchAdminProject = async (projectId: string): Promise<Project> => {\n  const binding = captureIndexContext()\n  try {\n    return await fetchAdminProjectByIdentifier(projectId)\n  } catch (error) {\n    binding.assertCurrent()\n\n    if (error instanceof ControlClientError && error.status === 404) {\n      const projects = await listProjectsAcrossOrganizations(binding)\n      binding.assertCurrent()\n      const match = projects.find((project) => matchesProjectIdentifier(project, projectId))\n\n      if (match) {\n        state = { ...state, projects }\n\n        return match\n      }\n    }\n\n    throw error\n  }\n}\n","<script lang=\"ts\">\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiArrowRight, mdiCloseCircleOutline, mdiInformation } from \"@mdi/js\"\n  import type { ControlBannerEntry } from \"../../../../core/runtime/bannerStore\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  let {\n    banner,\n    onDismiss,\n    compact = false,\n  }: {\n    banner: ControlBannerEntry\n    onDismiss?: (id: string | null | undefined) => void\n    compact?: boolean\n  } = $props()\n\n  const severity = $derived(banner.severity ?? \"warning\")\n  const title = $derived(banner.title || \"\")\n  const body = $derived(banner.body || \"\")\n  const pulseActive = $derived(Boolean(banner.pulse))\n  const progressMax = $derived(Math.max(Number(banner.progress?.max ?? 100), 1))\n  const progressValue = $derived(\n    Math.min(Math.max(Number(banner.progress?.value ?? 0), 0), progressMax),\n  )\n  const progressPercent = $derived(Math.round((progressValue / progressMax) * 100))\n\n  const handleAction = () => {\n    const action = banner.action\n\n    if (!action) return\n\n    if (typeof action.onClick === \"function\") {\n      action.onClick()\n\n      return\n    }\n\n    if (action.href) {\n      const target = action.target === \"_blank\" ? \"_blank\" : \"_self\"\n\n      if (target === \"_blank\") {\n        window.open(action.href, \"_blank\", \"noopener,noreferrer\")\n      } else {\n        window.location.assign(action.href)\n      }\n    }\n  }\n\n  const handleDismiss = () => {\n    banner.onDismiss?.()\n    onDismiss?.(banner.id)\n  }\n</script>\n\n<section\n  class=\"control-banner\"\n  class:compact\n  class:danger={severity === \"danger\"}\n  class:info={severity === \"info\"}\n>\n  <div class=\"banner-content\">\n    <div class=\"text-block\">\n      <div class=\"headline-row\">\n        <p class=\"headline\">{title}</p>\n        {#if body}\n          <span use:tooltip={{ content: body }}>\n            <Icon path={mdiInformation} />\n          </span>\n        {/if}\n      </div>\n      {#if banner.progress}\n        <div\n          class=\"progress-block\"\n          aria-label={banner.progress.label ?? `Fortschritt ${progressPercent}%`}\n        >\n          <div class=\"progress-track\">\n            <span class=\"progress-fill\" style={`width:${progressPercent}%`}></span>\n          </div>\n          {#if banner.progress.label}\n            <span class=\"progress-label\">{banner.progress.label}</span>\n          {/if}\n        </div>\n      {/if}\n    </div>\n    <div class=\"actions\">\n      {#if banner.action}\n        <button class=\"action\" onclick={handleAction} aria-label={banner.action.label}>\n          <span class=\"action-label\">{banner.action.label}</span>\n          {#if compact}<Icon path={mdiArrowRight} size=\"1rem\" />{/if}\n        </button>\n      {/if}\n      {#if banner.dismissible !== false}\n        <button class=\"close\" onclick={handleDismiss} aria-label=\"Banner schließen\">\n          <svg\n            width=\"24\"\n            height=\"24\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <path\n              d=\"M10.03 8.96997C9.88786 8.83749 9.69981 8.76537 9.50551 8.7688C9.31121 8.77222 9.12582 8.85094 8.98841 8.98835C8.851 9.12576 8.77228 9.31115 8.76886 9.50545C8.76543 9.69975 8.83755 9.8878 8.97003 10.03L10.94 12L8.97003 13.97C8.89635 14.0386 8.83724 14.1214 8.79625 14.2134C8.75526 14.3054 8.73322 14.4047 8.73144 14.5054C8.72966 14.6062 8.74819 14.7062 8.78591 14.7996C8.82363 14.893 8.87978 14.9778 8.95099 15.049C9.02221 15.1202 9.10705 15.1764 9.20043 15.2141C9.29382 15.2518 9.39385 15.2703 9.49455 15.2686C9.59526 15.2668 9.69457 15.2447 9.78657 15.2038C9.87857 15.1628 9.96137 15.1037 10.03 15.03L12 13.06L13.97 15.03C14.1122 15.1625 14.3003 15.2346 14.4946 15.2311C14.6889 15.2277 14.8742 15.149 15.0117 15.0116C15.1491 14.8742 15.2278 14.6888 15.2312 14.4945C15.2346 14.3002 15.1625 14.1121 15.03 13.97L13.06 12L15.03 10.03C15.1037 9.96131 15.1628 9.87851 15.2038 9.78651C15.2448 9.69451 15.2668 9.5952 15.2686 9.49449C15.2704 9.39379 15.2519 9.29376 15.2142 9.20037C15.1764 9.10698 15.1203 9.02215 15.0491 8.95093C14.9779 8.87971 14.893 8.82357 14.7996 8.78585C14.7062 8.74813 14.6062 8.7296 14.5055 8.73138C14.4048 8.73316 14.3055 8.7552 14.2135 8.79619C14.1215 8.83718 14.0387 8.89628 13.97 8.96997L12 10.94L10.03 8.96997Z\"\n              fill=\"#625755\"\n            ></path>\n            <path\n              fill-rule=\"evenodd\"\n              clip-rule=\"evenodd\"\n              d=\"M12 1.25C6.063 1.25 1.25 6.063 1.25 12C1.25 17.937 6.063 22.75 12 22.75C17.937 22.75 22.75 17.937 22.75 12C22.75 6.063 17.937 1.25 12 1.25ZM2.75 12C2.75 9.54675 3.72455 7.19397 5.45926 5.45926C7.19397 3.72455 9.54675 2.75 12 2.75C14.4533 2.75 16.806 3.72455 18.5407 5.45926C20.2754 7.19397 21.25 9.54675 21.25 12C21.25 14.4533 20.2754 16.806 18.5407 18.5407C16.806 20.2754 14.4533 21.25 12 21.25C9.54675 21.25 7.19397 20.2754 5.45926 18.5407C3.72455 16.806 2.75 14.4533 2.75 12Z\"\n              fill=\"#625755\"\n            ></path>\n          </svg>\n        </button>\n      {/if}\n    </div>\n  </div>\n</section>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .control-banner {\n    position: relative;\n    width: 100%;\n    overflow: hidden;\n    background: var(--bg-100);\n    color: var(--text-100);\n    padding: 6px 0px;\n    border-bottom: 1px solid #625755;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 0.75rem;\n\n    &.danger {\n      * {\n        color: var(--primary-100) !important;\n      }\n    }\n  }\n\n  .banner-content {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 1rem;\n    max-width: var(--normal-max-width);\n    width: 100%;\n    margin: 0px var(--horizontal-default-margin);\n  }\n\n  .text-block {\n    display: flex;\n    flex-direction: column;\n    gap: 0.3rem;\n    align-items: flex-start;\n    animation: fadeLoop 3s ease-in-out infinite;\n    min-width: 0;\n  }\n\n  .headline-row {\n    display: flex;\n    align-items: center;\n    gap: 0.3rem;\n    min-width: 0;\n  }\n\n  .headline {\n    font-weight: 800;\n    letter-spacing: 0.02em;\n    text-transform: uppercase;\n    color: var(--text-100);\n    margin: 0;\n    font-size: 0.95rem;\n  }\n\n  .progress-block {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    min-width: min(32rem, 48vw);\n    max-width: 100%;\n  }\n\n  .progress-track {\n    position: relative;\n    height: 6px;\n    flex: 1;\n    min-width: 120px;\n    overflow: hidden;\n    border-radius: 999px;\n    background: color-mix(in srgb, var(--text-100) 18%, transparent);\n  }\n\n  .progress-fill {\n    display: block;\n    height: 100%;\n    border-radius: inherit;\n    background: currentColor;\n    transition: width 180ms ease;\n  }\n\n  .progress-label {\n    font-size: 0.78rem;\n    font-weight: 700;\n    white-space: nowrap;\n  }\n\n  .actions {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    flex-shrink: 0;\n  }\n\n  .action {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.4rem;\n    color: var(--text-100);\n    padding: 0.45rem 0.9rem;\n    border-radius: 999px;\n    cursor: pointer;\n    transition:\n      transform 160ms ease,\n      background 160ms ease,\n      border 160ms ease;\n    font-weight: 600;\n    letter-spacing: 0.01em;\n  }\n\n  .close {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--text-100);\n    cursor: pointer;\n    transition:\n      transform 160ms ease,\n      background 160ms ease;\n  }\n\n  @keyframes fadeLoop {\n    0%,\n    100% {\n      opacity: 0.8;\n    }\n    30%,\n    70% {\n      opacity: 1;\n    }\n  }\n\n  @keyframes shimmer {\n    0% {\n      background-position:\n        0 0,\n        100% 0,\n        50% 100%;\n    }\n    100% {\n      background-position:\n        100% 0,\n        0 0,\n        50% 0;\n    }\n  }\n\n  @media (max-width: 960px) {\n    .banner-content {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n\n    .actions {\n      width: 100%;\n      justify-content: flex-start;\n    }\n\n    .progress-block {\n      min-width: 100%;\n      width: 100%;\n    }\n  }\n\n  .control-banner.compact {\n    width: auto;\n    max-width: min(360px, 50vw);\n    padding: 6px 10px;\n    border: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n    border-radius: 4px;\n    background: color-mix(in srgb, currentColor 6%, transparent);\n\n    .banner-content {\n      flex-direction: row;\n      align-items: center;\n      gap: 10px;\n      margin: 0;\n      min-width: 0;\n    }\n\n    .text-block {\n      animation: none;\n      flex: 1;\n    }\n\n    .headline {\n      font-size: 13px;\n      font-weight: 500;\n      line-height: 1.35;\n      letter-spacing: 0;\n      text-transform: none;\n      overflow-wrap: anywhere;\n    }\n\n    .actions {\n      width: auto;\n    }\n\n    .action {\n      min-height: 28px;\n      padding: 0 0 0 10px;\n      border-left: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n      border-radius: 0;\n      font-size: 12px;\n      letter-spacing: 0;\n      white-space: nowrap;\n\n      &:hover {\n        text-decoration: underline;\n      }\n\n      &:focus-visible {\n        outline: 2px solid currentColor;\n        outline-offset: 3px;\n      }\n    }\n\n    .progress-block {\n      min-width: 0;\n      width: 100%;\n      flex-wrap: wrap;\n    }\n\n    .progress-track {\n      min-width: 40px;\n    }\n\n    .progress-label {\n      white-space: normal;\n      overflow-wrap: anywhere;\n    }\n\n    @media (max-width: 600px) {\n      padding: 4px 8px;\n\n      .headline {\n        font-size: 12px;\n      }\n\n      .action-label {\n        display: none;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import ControlBanner from \"../control-banner/index\"\n  import { fullscreenMode } from \"../../../../core/runtime/fullscreen\"\n  import { currentBanner, removeBanner } from \"../../../../core/runtime/bannerStore\"\n  import type { Snippet } from \"svelte\"\n  import { getAppFrame } from \"../../../../core/navigation/appFrame\"\n\n  const appFrame = getAppFrame()\n\n  const DEFAULT_MAX_WIDTH = \"var(--normal-max-width)\"\n\n  let {\n    controlAdminUrl = null,\n    controlAdminLabel = \"Zurück zum Control Admin\",\n    controlAdminTarget = \"_self\",\n    sticky = true,\n    showCrinkle = true,\n    maxWidth = DEFAULT_MAX_WIDTH,\n    brand,\n    actions,\n    \"control-admin-button\": controlAdminButton,\n    crinkle,\n  }: {\n    controlAdminUrl?: string | null\n    controlAdminLabel?: string\n    controlAdminTarget?: \"_self\" | \"_blank\"\n    sticky?: boolean\n    showCrinkle?: boolean\n    maxWidth?: string\n    brand?: Snippet\n    actions?: Snippet\n    \"control-admin-button\"?: Snippet<[{ url: string; label: string; target: \"_self\" | \"_blank\" }]>\n    crinkle?: Snippet\n  } = $props()\n\n  const handleControlAdminClick = () => {\n    if (!controlAdminUrl) return\n\n    if (controlAdminTarget === \"_blank\") {\n      window.open(controlAdminUrl, \"_blank\", \"noopener,noreferrer\")\n    } else {\n      window.location.assign(controlAdminUrl)\n    }\n  }\n\n  const isFullscreen = $derived($fullscreenMode)\n  const banner = $derived($currentBanner)\n\n  const dismissBanner = (bannerId?: string | null | undefined) => {\n    const targetId = bannerId ?? banner?.id ?? null\n\n    if (!targetId) return\n\n    banner?.onDismiss?.()\n    removeBanner(targetId)\n  }\n</script>\n\n{#if !isFullscreen}\n  {#if banner && !appFrame}\n    <ControlBanner {banner} onDismiss={dismissBanner} />\n  {/if}\n  <header\n    class=\"kw-control-header\"\n    class:kw-control-header--app={Boolean(appFrame)}\n    class:kw-control-header--sticky={sticky && !appFrame}\n  >\n    <div class=\"kw-control-header__inner\" style={`max-width:${maxWidth}`}>\n      {#if !appFrame}<div class=\"kw-control-header__brand\">\n          {#if brand}\n            {@render brand()}\n          {:else}\n            <span class=\"kw-control-header__brand-placeholder\">Kontextwerk</span>\n          {/if}\n        </div>\n      {/if}\n      <div class=\"kw-control-header__actions\">\n        {#if banner && appFrame}\n          <ControlBanner {banner} compact onDismiss={dismissBanner} />\n        {/if}\n        {@render actions?.()}\n        {#if controlAdminUrl}\n          {#if controlAdminButton}\n            {@render controlAdminButton({\n              url: controlAdminUrl,\n              label: controlAdminLabel,\n              target: controlAdminTarget,\n            })}\n          {:else}\n            <CTA\n              type=\"secondaryButton\"\n              content={controlAdminLabel}\n              onClick={handleControlAdminClick}\n            />\n          {/if}\n        {/if}\n      </div>\n    </div>\n    {#if showCrinkle && !appFrame}\n      <div class=\"kw-control-header__crinkle\" aria-hidden=\"true\">\n        {#if crinkle}\n          {@render crinkle()}\n        {:else}\n          <svg\n            viewBox=\"176.213 124.901 61.875 61.016\"\n            width=\"63.875\"\n            height=\"61.016\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <!-- Definition des Clipping-Pfads -->\n            <defs>\n              <clipPath id=\"clip-path\">\n                <!-- Clipping-Pfad definiert die Fläche links von der schrägen Linie -->\n                <path d=\"M 178.213 124.901 L 240.088 185.917 L 178.213 185.917 Z\"></path>\n              </clipPath>\n            </defs>\n\n            <!-- Fülle den Bereich links von der Linie mit Weiß -->\n            <rect\n              x=\"178.213\"\n              y=\"124.901\"\n              width=\"61.875\"\n              height=\"61.016\"\n              fill=\"#0D0C0C\"\n              clip-path=\"url(#clip-path)\"\n            ></rect>\n\n            <!-- Zusätzliches Rechteck für den nahtlosen Übergang -->\n            <rect x=\"176.213\" y=\"124.901\" width=\"2\" height=\"61.016\" fill=\"#0D0C0C\"></rect>\n\n            <!-- Zeichne den ursprünglichen Pfad -->\n            <path\n              d=\"M 240.088 185.917 L 178.213 124.901 L 240.088 185.917 Z\"\n              fill=\"none\"\n              stroke=\"white\"\n              stroke-width=\"2\"\n            ></path>\n          </svg>\n        {/if}\n      </div>\n    {/if}\n  </header>\n{/if}\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-control-header.kw-control-header--app {\n    background: transparent;\n    padding: 0;\n    border: 0;\n    box-shadow: none;\n    backdrop-filter: none;\n    z-index: auto;\n    .kw-control-header__inner {\n      margin: 0;\n      max-width: none;\n    }\n    .kw-control-header__actions {\n      color: inherit;\n      min-width: 0;\n      gap: 12px;\n    }\n  }\n\n  .kw-control-header {\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    background: var(--bg-100);\n    padding: 1rem 0;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.75);\n    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.32);\n    position: relative;\n    z-index: 9998;\n    backdrop-filter: blur(8px);\n\n    &--sticky {\n      position: sticky;\n      top: 0;\n    }\n\n    &__inner {\n      width: 100%;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 1.2rem;\n      flex-wrap: nowrap;\n      margin: 0 var(--horizontal-default-margin, 0);\n    }\n\n    &__brand {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      min-width: 0;\n      flex: 1 1 auto;\n    }\n\n    &__brand-placeholder {\n      font-size: 1.1rem;\n      font-weight: 600;\n      color: var(--text-100);\n    }\n\n    &__actions {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      flex-wrap: nowrap;\n      flex: 0 0 auto;\n      justify-content: flex-end;\n    }\n\n    &__crinkle {\n      position: absolute;\n      right: -3px;\n      bottom: -60px;\n      width: 61px;\n      height: 61px;\n\n      svg {\n        width: 100%;\n        height: 100%;\n        display: block;\n        object-fit: contain;\n        transform: rotate(180deg);\n      }\n    }\n\n    @media @max-mobile {\n      padding: 0.85rem 1.1rem;\n\n      &__inner {\n        flex-direction: row;\n        align-items: center;\n        justify-content: space-between;\n        flex-wrap: nowrap;\n      }\n\n      &__actions {\n        width: auto;\n        flex-direction: row;\n        align-items: center;\n        justify-content: flex-end;\n        flex-wrap: nowrap;\n\n        :global(button.cta) {\n          width: auto;\n          justify-content: flex-end;\n        }\n      }\n    }\n  }\n\n  :global(.kw-control-header__crinkle img) {\n    width: 100%;\n    height: 100%;\n    display: block;\n    object-fit: contain;\n    transform: rotate(180deg);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { UserProfileBubbleIdentity } from \"./contract\"\n\n  let {\n    user = null,\n    size = 46,\n    title = null,\n    emphasized = false,\n  }: {\n    user?: UserProfileBubbleIdentity | null\n    size?: number\n    title?: string | null\n    emphasized?: boolean\n  } = $props()\n\n  const displayName = $derived.by(() => {\n    const display = (user?.displayName ?? \"\").trim()\n\n    if (display) return display\n\n    const parts = [user?.firstName, user?.lastName]\n      .map((value) => (value ?? \"\").trim())\n      .filter(Boolean)\n\n    return parts.join(\" \").trim()\n  })\n\n  const avatarUrl = $derived.by(() => {\n    const raw = user?.avatarUrl ?? null\n\n    return typeof raw === \"string\" && raw.trim() ? raw.trim() : null\n  })\n\n  const fallbackLabel = $derived.by(() => displayName || (user?.email ?? \"\").trim() || \"Benutzer\")\n\n  const avatarInitial = $derived.by(() => {\n    const match = fallbackLabel.match(/[\\p{L}\\p{N}]/u)\n\n    return (match?.[0] ?? \"?\").toUpperCase()\n  })\n\n  const resolvedTitle = $derived.by(() => title?.trim() || fallbackLabel)\n</script>\n\n<div\n  class={`kw-user-profile-bubble ${avatarUrl ? \"has-image\" : \"\"} ${emphasized ? \"is-emphasized\" : \"\"}`.trim()}\n  style={`--kw-user-profile-bubble-size:${size}px`}\n  title={resolvedTitle}\n  aria-label={resolvedTitle}\n>\n  {#if avatarUrl}\n    <img src={avatarUrl} alt={displayName || user?.email || \"Profilfoto\"} loading=\"lazy\" />\n  {:else}\n    <span aria-hidden=\"true\">{avatarInitial}</span>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .kw-user-profile-bubble {\n    --kw-user-profile-bubble-size: 46px;\n    width: var(--kw-user-profile-bubble-size);\n    min-width: var(--kw-user-profile-bubble-size);\n    height: var(--kw-user-profile-bubble-size);\n    border-radius: 50%;\n    border: 1px solid color-mix(in srgb, var(--text-100, #102033) 18%, transparent);\n    background: color-mix(in srgb, var(--bg-300, #0b1a2b) 70%, transparent);\n    display: grid;\n    place-items: center;\n    font-weight: 700;\n    letter-spacing: 0.02em;\n    text-transform: uppercase;\n    color: var(--text-invers-100, #2f4858);\n    overflow: hidden;\n    user-select: none;\n    flex-shrink: 0;\n\n    &.has-image {\n      background: color-mix(in srgb, var(--bg-300, #0b1a2b) 24%, transparent);\n      border-color: color-mix(in srgb, var(--text-100, #102033) 12%, transparent);\n    }\n\n    &.is-emphasized:not(.has-image) {\n      border-color: var(--text-invers-100, #2f4858);\n    }\n\n    img {\n      width: 100%;\n      height: 100%;\n      object-fit: cover;\n      display: block;\n    }\n\n    span {\n      font-size: calc(var(--kw-user-profile-bubble-size) * 0.4);\n      line-height: 1;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { TabLink } from \"./contract\"\n\n  import { mdiChevronRight, mdiOpenInNew } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import type { AdminNavLink } from \"../../../../core/navigation/adminMenu\"\n  import SectionTitle from \"../../../typography/_modules/section-title/index\"\n\n  type Props = {\n    activeNavLink: AdminNavLink\n    primaryTabConfig?: TabLink[]\n    activePrimaryTabIndex?: number\n    onNavigate?: (link: AdminNavLink, event?: MouseEvent) => void\n  }\n\n  let {\n    activeNavLink,\n    primaryTabConfig = [],\n    activePrimaryTabIndex = 0,\n    onNavigate = () => {},\n  }: Props = $props()\n</script>\n\n<section class=\"kw-stack\">\n  <a\n    href={activeNavLink.href}\n    target={activeNavLink.target}\n    rel={activeNavLink.isExternal || activeNavLink.target === \"_blank\"\n      ? \"noopener noreferrer\"\n      : undefined}\n    class=\"kw-stack__card\"\n    onclick={(event) => onNavigate(activeNavLink, event)}\n  >\n    <SectionTitle title={activeNavLink.label} small={true} wrapButtonsOnMobile={false}>\n      {#snippet buttonSnippet()}\n        <Icon path={activeNavLink.isExternal ? mdiOpenInNew : mdiChevronRight} size=\"1.15rem\" />\n      {/snippet}\n    </SectionTitle>\n  </a>\n</section>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-stack {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n  }\n\n  .kw-stack__card {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 0.85rem;\n    padding: 0.9rem 1rem;\n    color: var(--text-100);\n    text-decoration: none;\n    background: transparent;\n    border: 1px solid color-mix(in srgb, var(--text-100) 12%, transparent);\n    box-shadow: none;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { PrimaryNavItem } from \"./contract\"\n\n  import { mdiChevronRight } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { spaLink } from \"../../../../core/routing/navigation\"\n\n  type Props = {\n    items?: PrimaryNavItem[]\n    onNavigate?: (target: \"_self\" | \"_blank\") => void\n  }\n\n  let { items = [], onNavigate = () => {} }: Props = $props()\n</script>\n\n<div class=\"kw-primary-nav\">\n  {#each items as item (item.key)}\n    <a\n      href={item.href}\n      use:spaLink\n      class:active={item.isActive}\n      onclick={() => onNavigate(\"_self\")}\n    >\n      <div class=\"kw-primary-nav__text\">\n        <span class=\"kw-primary-nav__title\">{item.title}</span>\n      </div>\n      <Icon path={mdiChevronRight} size=\"0.95rem\" />\n    </a>\n  {/each}\n</div>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-primary-nav {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n  }\n\n  .kw-primary-nav a {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 0.7rem;\n    padding: 0.75rem 0.9rem;\n    border-radius: 0.4px;\n    background: transparent;\n    border: 1px solid color-mix(in srgb, var(--text-100) 12%, transparent);\n    color: var(--text-100);\n    text-decoration: none;\n    transition:\n      border-color 0.16s ease,\n      background 0.16s ease;\n\n    &:hover,\n    &:focus-visible {\n      background: color-mix(in srgb, var(--text-100) 4%, transparent);\n      border-color: color-mix(in srgb, var(--text-100) 20%, transparent);\n    }\n\n    &.active {\n      border-color: color-mix(in srgb, var(--text-100) 26%, transparent);\n      background: color-mix(in srgb, var(--text-100) 6%, transparent);\n      box-shadow: none;\n    }\n  }\n\n  .kw-primary-nav__text {\n    display: grid;\n    gap: 0.08rem;\n  }\n\n  .kw-primary-nav__title {\n    font-weight: 700;\n    font-size: 0.98rem;\n    color: var(--text-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SimpleLink } from \"./contract\"\n\n  import { mdiChevronRight, mdiOpenInNew } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n\n  type Props = {\n    links?: SimpleLink[]\n    onNavigate?: (link: SimpleLink, event?: MouseEvent) => void\n    externalSection?: boolean\n  }\n\n  let { links = [], onNavigate = () => {}, externalSection = false }: Props = $props()\n\n  const resolvedLinks = $derived(\n    links.map((link, index) => {\n      const target = link.target ?? \"_self\"\n      const isExternal =\n        typeof link.isExternal === \"boolean\" ? link.isExternal : target === \"_blank\"\n\n      return {\n        ...link,\n        target,\n        isExternal,\n        key: link.key ?? `${index}-${link.href}`,\n      }\n    }),\n  )\n</script>\n\n<nav class=\"kw-user-menu__nav\" class:kw-user-menu__nav--external={externalSection}>\n  {#each resolvedLinks as link (link.key)}\n    <a\n      href={link.href}\n      target={link.target}\n      rel={link.isExternal ? \"noopener noreferrer\" : undefined}\n      onclick={(event) => {\n        event.preventDefault()\n        onNavigate(link, event)\n      }}\n      class:active={link.active}\n    >\n      <div class=\"nav-text\">\n        <span class=\"nav-label\">{link.label}</span>\n        {#if link.description}\n          <span class=\"nav-description\">{link.description}</span>\n        {/if}\n      </div>\n      <Icon path={link.isExternal ? mdiOpenInNew : mdiChevronRight} size=\"1rem\" />\n    </a>\n  {/each}\n</nav>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-user-menu__nav {\n    display: flex;\n    flex-direction: column;\n    gap: 0.55rem;\n\n    a {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      border: none;\n      width: 100%;\n      text-align: left;\n      font-size: 0.98rem;\n      padding: 0.75rem 0.9rem;\n      background: color-mix(in srgb, var(--bg-200) 72%, transparent);\n      color: var(--text-100);\n      cursor: pointer;\n      text-decoration: none;\n      transition: background 0.16s ease;\n\n      &:hover,\n      &:focus-visible {\n        background: color-mix(in srgb, var(--bg-200) 82%, transparent);\n      }\n\n      &.active {\n        border: 1px solid color-mix(in srgb, var(--primary-200) 26%, transparent);\n        background: color-mix(in srgb, var(--bg-200) 84%, transparent);\n      }\n    }\n\n    .nav-text {\n      display: flex;\n      flex-direction: column;\n      gap: 0.1rem;\n    }\n\n    .nav-label {\n      font-weight: 600;\n    }\n\n    .nav-description {\n      display: block;\n      font-size: 0.83rem;\n      opacity: 0.68;\n    }\n  }\n\n  .kw-user-menu__nav--external {\n    border-top: 1px solid color-mix(in srgb, var(--text-100) 12%, transparent);\n    padding-top: 1rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import { ControlWebClient } from \"@kontextwerk/control-web-client\"\n  import { mdiLogout } from \"@mdi/js\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import UserProfileBubble from \"../../../display/_modules/user-profile-bubble/index\"\n  import type { PageNavigationEntry, PageTabConfig } from \"../../../../core/navigation/types\"\n  import { pageNavigationState } from \"../../../../core/navigation/index\"\n  import AdminActiveAppCard from \"../admin-active-app-card/index\"\n  import AdminPrimaryNavigation, { type PrimaryNavItem } from \"../admin-primary-navigation/index\"\n  import AdminNavList, { type SimpleLink } from \"../admin-nav-list/index\"\n  import type { Snippet } from \"svelte\"\n\n  type AdminMenuContentSnippet =\n    import(\"../../../../core/navigation/adminMenu\").AdminMenuContentSnippet\n  type AdminMenuUser = import(\"../../../../core/navigation/adminMenu\").AdminMenuUser\n  type AdminApp = import(\"../../../../core/navigation/adminMenu\").AdminApp\n  type AdminNavLink = import(\"../../../../core/navigation/adminMenu\").AdminNavLink\n  type ExtraNavigationLink = import(\"../../../../core/navigation/adminMenu\").ExtraNavigationLink\n\n  type OverlayHostProps = {\n    onremoveOverlay?: () => void\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  }\n\n  type Props = {\n    navLinks?: AdminNavLink[]\n    extraLinks?: ExtraNavigationLink[]\n    user?: AdminMenuUser | null\n    onLogout?: (() => void | Promise<void>) | null\n    contentSnippet?: AdminMenuContentSnippet | null\n    projectId?: string | null\n    projectSlug?: string | null\n    projectName?: string | null\n    currentApp?: AdminApp | null\n    delegateApiOrigin?: string | null\n    darkBg?: boolean\n    pageNavigation?: PageNavigationEntry[]\n  }\n\n  let {\n    navLinks = [],\n    extraLinks = [],\n    user = null,\n    onLogout = null,\n    contentSnippet = null,\n    projectId = null,\n    projectSlug = null,\n    projectName = null,\n    currentApp = null,\n    delegateApiOrigin = null,\n    darkBg = false,\n    onremoveOverlay = null,\n    pageNavigation = [],\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: Props & OverlayHostProps = $props()\n\n  let logoutPending = $state(false)\n  let logoutDone = $state(false)\n  const isBrowser = typeof window !== \"undefined\"\n\n  const openLink = (link: { target?: \"_self\" | \"_blank\" }, url: string) => {\n    if (!isBrowser) return\n\n    const target = link.target ?? \"_self\"\n\n    if (target === \"_blank\") {\n      window.open(url, \"_blank\", \"noopener,noreferrer\")\n    } else {\n      window.location.assign(url)\n    }\n  }\n\n  const isUuid = (value: string | null | undefined) =>\n    Boolean(\n      value?.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i),\n    )\n\n  let delegatedControlClient: ControlWebClient | null = null\n  let delegatedControlClientOrigin: string | null = null\n\n  const getDelegatedControlClient = (origin: string) => {\n    const normalizedOrigin = origin.replace(/\\/+$/, \"\")\n\n    if (!delegatedControlClient || delegatedControlClientOrigin !== normalizedOrigin) {\n      delegatedControlClient = new ControlWebClient({ baseUrl: normalizedOrigin })\n      delegatedControlClientOrigin = normalizedOrigin\n    }\n\n    return delegatedControlClient\n  }\n\n  const buildDelegatedStatusHref = async (link: AdminNavLink): Promise<string> => {\n    if (link.app !== \"status-center\" || !delegateApiOrigin) return link.href\n\n    const targetUrl = new URL(link.href, window.location.href)\n    try {\n      const client = getDelegatedControlClient(delegateApiOrigin)\n      const payload = await client.admin.auth.createServiceSessionCode({\n        target_service: \"kontextwerk-status-server\",\n        target_origin: targetUrl.origin,\n        project_id: isUuid(projectId) ? projectId : undefined,\n        project_slug: projectSlug ?? (!isUuid(projectId) ? projectId : undefined),\n      })\n\n      if (payload.code?.trim()) {\n        targetUrl.searchParams.set(\"service_code\", payload.code.trim())\n      }\n\n      return targetUrl.toString()\n    } catch (err) {\n      console.warn(\"[AdminMenu] status-center delegation failed\", err)\n\n      return link.href\n    }\n  }\n\n  const handleSimpleLinkNavigation = (link: SimpleLink, event?: MouseEvent) => {\n    event?.preventDefault()\n    openLink(link, link.href)\n    closeMenu()\n  }\n\n  const handleAdminNavigation = async (link: SimpleLink, event?: MouseEvent) => {\n    event?.preventDefault()\n    const adminLink = navLinks.find((entry) => entry.href === link.href)\n    const href = adminLink ? await buildDelegatedStatusHref(adminLink) : link.href\n    openLink(link, href)\n    closeMenu()\n  }\n\n  const handleActiveAdminNavigation = async (link: AdminNavLink, event?: MouseEvent) => {\n    event?.preventDefault()\n    openLink(link, await buildDelegatedStatusHref(link))\n    closeMenu()\n  }\n\n  const normalizeSearch = (value: string | null | undefined) =>\n    typeof value === \"string\" ? value.replace(/^\\?/, \"\") : \"\"\n\n  const splitPathParts = (value: string | null | undefined) => {\n    const raw = typeof value === \"string\" ? value : \"\"\n    const hashIndex = raw.indexOf(\"#\")\n    const hasHash = hashIndex !== -1\n    const hash = hasHash ? raw.slice(hashIndex) : \"\"\n    const withoutHash = hasHash ? raw.slice(0, hashIndex) : raw\n\n    const queryIndex = withoutHash.indexOf(\"?\")\n    const hasQuery = queryIndex !== -1\n    const search = hasQuery ? withoutHash.slice(queryIndex) : \"\"\n    const path = hasQuery ? withoutHash.slice(0, queryIndex) : withoutHash\n\n    return { path: path || \"/\", search, hash }\n  }\n\n  const mergeSearchParams = (...searches: Array<string | null | undefined>) => {\n    const params = new URLSearchParams()\n    searches.forEach((entry) => {\n      const normalized = normalizeSearch(entry)\n\n      if (!normalized) return\n\n      const parsed = new URLSearchParams(normalized)\n      parsed.forEach((value, key) => {\n        params.set(key, value)\n      })\n    })\n\n    return params\n  }\n\n  const closeMenu = () => {\n    onremoveOverlay?.()\n  }\n\n  const requestLogout = async () => {\n    if (!onLogout || logoutPending || logoutDone) return\n\n    logoutPending = true\n    try {\n      await onLogout()\n      logoutDone = true\n      closeMenu()\n    } catch (err) {\n      console.error(\"[AdminMenu] logout failed\", err)\n      logoutPending = false\n    }\n  }\n\n  const handlePrimaryNavigation = (_target: \"_self\" | \"_blank\") => {\n    // Always close after a navigation intent to avoid lingering overlays on mobile\n    closeMenu()\n  }\n\n  const showFooter = $derived(Boolean(user) || (typeof onLogout === \"function\" && !logoutDone))\n  const hasExtras = $derived(Boolean(extraLinks?.length) || Boolean(contentSnippet))\n  const personName = $derived(user ? [user.firstName, user.lastName].filter(Boolean).join(\" \") : \"\")\n  const avatarUrl = $derived.by(() => {\n    const url = user?.avatarUrl ?? null\n\n    if (!url) return null\n\n    const trimmed = url.trim()\n\n    return trimmed || null\n  })\n  onMount(() => {\n    onshowOverlay?.()\n    setActionButtonSnippet?.(actionButtons)\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n\n  const navigationFromStore = $derived($pageNavigationState?.pages ?? [])\n  const normalizedPrimaryNavigation = $derived(\n    (navigationFromStore.length\n      ? navigationFromStore\n      : Array.isArray(pageNavigation)\n        ? pageNavigation\n        : []\n    ).filter(Boolean),\n  )\n\n  const currentPath = $derived(\n    navigationFromStore.length\n      ? ($pageNavigationState.path ?? \"/\")\n      : typeof window !== \"undefined\"\n        ? (window.location.pathname ?? \"/\")\n        : \"/\",\n  )\n\n  const currentSearch = $derived(\n    navigationFromStore.length\n      ? ($pageNavigationState.search ?? \"\")\n      : typeof window !== \"undefined\"\n        ? (window.location.search ?? \"\")\n        : \"\",\n  )\n\n  const resolveActivePageIndex = (pages: PageNavigationEntry[], path: string) => {\n    if (!pages.length) return 0\n\n    let bestIndex = 0\n    let bestMatchLength = -1\n\n    pages.forEach((page, index) => {\n      const normalizedPath = splitPathParts(page?.path).path\n\n      if (!normalizedPath) return\n\n      const exactMatch = path === normalizedPath\n      const suffixMatch = path.endsWith(normalizedPath)\n\n      if (exactMatch || suffixMatch) {\n        if (normalizedPath.length > bestMatchLength) {\n          bestIndex = index\n          bestMatchLength = normalizedPath.length\n        }\n      }\n    })\n\n    return bestIndex\n  }\n\n  const resolveActiveTabIndex = (tabs: PageTabConfig[], search: string) => {\n    if (!tabs.length) return 0\n\n    const params = new URLSearchParams(normalizeSearch(search))\n    const candidate = Number(params.get(\"tab\"))\n\n    if (Number.isInteger(candidate) && candidate >= 0 && candidate < tabs.length) {\n      return candidate\n    }\n\n    return 0\n  }\n\n  const buildSearchWithTab = (\n    page: PageNavigationEntry | undefined,\n    tabIndex: number | null,\n    currentSearch: string | null | undefined,\n  ) => {\n    const { search: pathSearch } = splitPathParts(page?.path)\n    const params = mergeSearchParams(pathSearch, currentSearch)\n    const tabCount = page?.tabs?.length ?? 0\n    const hasMultipleTabs = tabCount > 1\n\n    if (hasMultipleTabs && typeof tabIndex === \"number\") {\n      const maxIndex = Math.max(0, tabCount - 1)\n      const nextIndex = Math.min(tabIndex, maxIndex)\n      params.set(\"tab\", String(nextIndex))\n    } else {\n      params.delete(\"tab\")\n    }\n\n    const serialized = params.toString()\n\n    return serialized ? `?${serialized}` : \"\"\n  }\n\n  const buildTargetPath = (\n    page: PageNavigationEntry | undefined,\n    tabIndex: number | null,\n    search: string,\n  ) => {\n    if (!page) return \"\"\n\n    const { path: basePath, hash } = splitPathParts(page.path)\n    const searchWithTab = buildSearchWithTab(page, tabIndex, search)\n\n    return `${basePath}${searchWithTab}${hash ?? \"\"}`\n  }\n\n  const buildTabConfig = (\n    page: PageNavigationEntry | undefined,\n    tabs: PageTabConfig[],\n    search: string,\n  ) => {\n    if (!page || !tabs.length) return []\n\n    return tabs.map((tab, index) => ({\n      title: tab.title,\n      path: buildTargetPath(page, index, search),\n    }))\n  }\n\n  const activePrimaryIndex = $derived(\n    resolveActivePageIndex(normalizedPrimaryNavigation, currentPath),\n  )\n  const activePrimaryPage = $derived(normalizedPrimaryNavigation[activePrimaryIndex] ?? null)\n  const activePrimaryTabs = $derived(activePrimaryPage?.tabs ?? [])\n  const activePrimaryTabIndex = $derived(resolveActiveTabIndex(activePrimaryTabs, currentSearch))\n  const primaryTabConfig = $derived(\n    buildTabConfig(activePrimaryPage, activePrimaryTabs, currentSearch),\n  )\n\n  const primaryHref = (page: PageNavigationEntry, index: number) => {\n    const defaultTab = index === activePrimaryIndex ? activePrimaryTabIndex : 0\n\n    return buildTargetPath(page, defaultTab, currentSearch)\n  }\n\n  const activeNavLink = $derived(navLinks.find((link) => link.isActive) ?? navLinks[0] ?? null)\n  const inactiveNavLinks = $derived(navLinks.filter((link) => link !== activeNavLink))\n\n  const primaryNavItems = $derived(\n    normalizedPrimaryNavigation.map<PrimaryNavItem>((page, index) => ({\n      key: page.path || `page-${index}`,\n      title: page.title,\n      href: primaryHref(page, index),\n      tabsCount: page.tabs?.length ?? 0,\n      isActive: index === activePrimaryIndex,\n    })),\n  )\n\n  const extraNavLinks = $derived<SimpleLink[]>(\n    (extraLinks ?? []).map((link, index) => {\n      const target = link.target ?? \"_self\"\n\n      return {\n        href: link.href,\n        label: link.label,\n        description: link.description,\n        target,\n        isExternal: target === \"_blank\",\n        key: `extra-${index}-${link.href}`,\n      }\n    }),\n  )\n</script>\n\n<div class=\"kw-user-menu\" class:dark-theme={darkBg}>\n  {#if activeNavLink}\n    <AdminActiveAppCard\n      {activeNavLink}\n      {primaryTabConfig}\n      {activePrimaryTabIndex}\n      onNavigate={handleActiveAdminNavigation}\n    />\n  {/if}\n\n  {#if normalizedPrimaryNavigation.length}\n    <section class=\"kw-user-menu__section\">\n      <p class=\"kw-section-label\">Primäre Navigation</p>\n      <AdminPrimaryNavigation items={primaryNavItems} onNavigate={handlePrimaryNavigation} />\n    </section>\n  {/if}\n\n  {#if inactiveNavLinks.length}\n    <section class=\"kw-user-menu__section\">\n      <p class=\"kw-section-label\">Weitere Apps</p>\n      <AdminNavList links={inactiveNavLinks} onNavigate={handleAdminNavigation} />\n    </section>\n  {/if}\n\n  {#if hasExtras}\n    <div class=\"kw-user-menu__extras\">\n      {#if contentSnippet}\n        {@render contentSnippet({\n          projectId,\n          projectSlug,\n          projectName,\n          navLinks,\n          extraLinks,\n          closeMenu,\n        })}\n      {/if}\n      {#if extraNavLinks.length}\n        <AdminNavList\n          links={extraNavLinks}\n          onNavigate={handleSimpleLinkNavigation}\n          externalSection={true}\n        />\n      {/if}\n    </div>\n  {/if}\n\n  {#if showFooter}\n    <div class=\"kw-user-menu__footer\">\n      {#if user}\n        <div class=\"kw-user-menu__profile\">\n          <UserProfileBubble\n            user={{\n              firstName: user.firstName,\n              lastName: user.lastName,\n              displayName: personName,\n              email: user.email,\n              avatarUrl,\n            }}\n            size={46}\n          />\n          <div class=\"kw-user-menu__profile-text\">\n            <span class=\"caption\">Angemeldet als</span>\n            <strong>{personName || user.email || \"Admin\"}</strong>\n            {#if user.email}\n              <span class=\"email\">{user.email}</span>\n            {/if}\n          </div>\n        </div>\n      {/if}\n    </div>\n  {/if}\n</div>\n\n{#snippet actionButtons()}\n  {#if onLogout && !logoutDone}\n    <CTA\n      content=\"Logout\"\n      onClick={requestLogout}\n      type=\"primaryButton\"\n      icon={mdiLogout}\n      disabled={logoutPending}\n    />\n  {/if}\n{/snippet}\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-user-menu {\n    display: flex;\n    flex-direction: column;\n    gap: 1.6rem;\n  }\n\n  :global(.kw-user-menu.dark-theme .kw-user-menu__nav a) {\n    background: color-mix(in srgb, var(--bg-300, #111) 70%, transparent);\n  }\n\n  .kw-section-label {\n    font-size: 0.78rem;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    opacity: 0.75;\n    margin: 0 0 0.25rem;\n    color: var(--text-100);\n  }\n\n  .kw-user-menu__section {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n  }\n\n  .kw-user-menu__extras {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .kw-user-menu__footer {\n    display: flex;\n    justify-content: space-between;\n    gap: 1rem;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n\n  .kw-user-menu__profile {\n    display: flex;\n    align-items: center;\n    gap: 0.85rem;\n    color: var(--text-100);\n\n    .kw-user-menu__profile-text {\n      display: flex;\n      flex-direction: column;\n      gap: 0.2rem;\n\n      .caption {\n        font-size: 0.8rem;\n        opacity: 0.6;\n        text-transform: uppercase;\n        letter-spacing: 0.08em;\n      }\n\n      .email {\n        font-size: 0.85rem;\n        opacity: 0.7;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { mdiMenu } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { openOverlay } from \"../../../../core/overlay/globalStores\"\n  import AdminBurgerMenuOverlayContent from \"../admin-burger-menu-overlay-content/index\"\n  import {\n    buildAdminNavLinks,\n    type AdminApp,\n    type AdminMenuContentSnippet,\n    type AdminMenuUser,\n    type AdminOrigins,\n    type ExtraNavigationLink,\n  } from \"../../../../core/navigation/adminMenu\"\n  import type { PageNavigationEntry } from \"../../../../core/navigation/types\"\n\n  type Props = {\n    currentApp: AdminApp\n    projectId?: string | null\n    projectSlug?: string | null\n    projectName?: string | null\n    organizationSlug?: string | null\n    origins?: AdminOrigins | null\n    extraLinks?: ExtraNavigationLink[]\n    user?: AdminMenuUser | null\n    onLogout?: (() => void | Promise<void>) | null\n    contentSnippet?: AdminMenuContentSnippet | null\n    menuLabel?: string\n    buttonLabel?: string\n    pageNavigation?: PageNavigationEntry[]\n    delegateApiOrigin?: string | null\n    includeAdminLinks?: boolean\n  }\n\n  let {\n    currentApp,\n    projectId = null,\n    projectSlug = null,\n    projectName = null,\n    organizationSlug = null,\n    origins = null,\n    extraLinks = [],\n    user = null,\n    onLogout = null,\n    contentSnippet = null,\n    menuLabel = \"Navigation\",\n    buttonLabel = \"Navigation öffnen\",\n    pageNavigation = [],\n    delegateApiOrigin = null,\n    includeAdminLinks = true,\n  }: Props = $props()\n\n  export type {\n    AdminMenuContentSnippet,\n    AdminMenuUser,\n    AdminOrigins,\n  } from \"../../../../core/navigation/adminMenu\"\n\n  const openNavigationMenu = () => {\n    const navLinks = includeAdminLinks\n      ? buildAdminNavLinks({\n          currentApp,\n          projectId,\n          projectSlug,\n          origins,\n          userId: user?.id ?? null,\n          organizationSlug,\n        })\n      : []\n\n    openOverlay({\n      title: menuLabel,\n      content: AdminBurgerMenuOverlayContent,\n      properties: {\n        navLinks,\n        extraLinks,\n        user,\n        onLogout,\n        contentSnippet,\n        projectId,\n        projectSlug,\n        projectName,\n        pageNavigation,\n        currentApp,\n        delegateApiOrigin,\n      },\n    })\n  }\n</script>\n\n<button\n  class=\"kw-admin-menu-button\"\n  type=\"button\"\n  onclick={openNavigationMenu}\n  aria-label={buttonLabel}\n>\n  <Icon path={mdiMenu} size=\"1.4rem\" />\n</button>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  .kw-admin-menu-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 0;\n    color: var(--neutral-white, #fff);\n    cursor: pointer;\n    transition:\n      transform 0.18s ease,\n      background 0.18s ease,\n      border-color 0.18s ease;\n  }\n</style>\n","import { writable } from \"svelte/store\"\nimport type { OrganizationSummary } from \"@kontextwerk/control-web-client\"\n\nexport const activeOrganization = writable<OrganizationSummary | null>(null)\n","import { writable } from \"svelte/store\"\nimport type { OrganizationSummary, Project } from \"@kontextwerk/control-web-client\"\nimport { activeOrganization } from \"../organization\"\n\nexport const availableOrganizations = writable<OrganizationSummary[]>([])\nexport const organizationsLoading = writable(false)\nexport const organizationsError = writable<string | null>(null)\n\nexport const availableProjects = writable<Project[]>([])\nexport const projectsLoading = writable(false)\nexport const projectsError = writable<string | null>(null)\n\nexport const applySelectedOrganization = (organization: OrganizationSummary | null) => {\n  activeOrganization.set(organization)\n}\n","<script lang=\"ts\">\n  import AdminBurgerMenu from \"@kontextwerk/web-sdk/ui/navigation/AdminBurgerMenu.svelte\"\n  import type { AdminMenuContentSnippet } from \"@kontextwerk/web-sdk/core/navigation/adminMenu\"\n  import { activeOrganization } from \"../../../../../../_shared/_logic/organization\"\n  import {\n    CONTROL_ADMIN_ORIGIN,\n    CONTROL_SERVER_ORIGIN,\n  } from \"../../../../../../_shared/_logic/runtime-config\"\n  import { logoutControlAdminBestEffort } from \"../../../../../../_shared/_logic/control-api\"\n  import { indexContextClient } from \"../../../../../../_shared/_logic/control-api\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import { mdiAccountSwitchOutline } from \"@mdi/js\"\n  import { applySelectedOrganization } from \"../../../../../../_shared/_logic/organizations\"\n\n  let { contentSnippet = null }: { contentSnippet?: AdminMenuContentSnippet | null } = $props()\n\n  const organizationName = $derived($activeOrganization?.name ?? null)\n  const organizationSlug = $derived($activeOrganization?.slug ?? $activeOrganization?.id ?? null)\n\n  const logout = async () => {\n    await logoutControlAdminBestEffort()\n    applySelectedOrganization(null)\n    window.location.assign(CONTROL_ADMIN_ORIGIN)\n  }\n</script>\n\n<div class=\"actions\">\n    <button\n    type=\"button\"\n    class=\"context-switch\"\n    aria-label=\"Zugang wechseln\"\n    title=\"Zugang wechseln\"\n    onclick={() => indexContextClient.root.access.openChoices()}\n    ><Icon path={mdiAccountSwitchOutline} size=\"1.25rem\" /></button\n  >\n    <AdminBurgerMenu\n    currentApp=\"index-admin\"\n    projectId={null}\n    projectSlug={null}\n    projectName={organizationName}\n    {organizationSlug}\n    origins={{ \"control-admin\": CONTROL_ADMIN_ORIGIN }}\n    delegateApiOrigin={CONTROL_SERVER_ORIGIN}\n    onLogout={logout}\n    {contentSnippet}\n    menuLabel=\"Navigation\"\n  />\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .actions {\n    display: flex;\n    align-items: center;\n    gap: 1.2rem;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n  }\n\n  .context-switch {\n    display: inline-grid;\n    place-items: center;\n    width: 2.5rem;\n    height: 2.5rem;\n    background: transparent;\n    color: inherit;\n    border: 1px solid currentColor;\n    border-radius: 4px;\n    cursor: pointer;\n  }\n\n  @media @max-mobile {\n    .actions {\n      width: 100%;\n      flex-direction: column;\n      align-items: stretch;\n      justify-content: flex-start;\n    }\n  }\n</style>\n","import type { Action } from \"svelte/action\"\nimport { get } from \"svelte/store\"\nimport {\n  createProjectNavigation,\n  spaBack as sdkSpaBack,\n  registerNavigationGuard,\n} from \"@kontextwerk/web-sdk/core\"\nimport { clearOverlays } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\nimport { activeOrganization } from \"../organization\"\n\nregisterNavigationGuard(\"index-admin:overlay\", () => {\n  clearOverlays()\n})\n\nconst navigation = createProjectNavigation({\n  subscribables: [activeOrganization],\n  bypass: (href) => {\n    if (!href || href === \"/\") return true\n\n    if (href.startsWith(\"#\") || href.startsWith(\"?\")) return true\n\n    if (href.startsWith(\"/organizations/\")) return true\n\n    if (href.startsWith(\"/admin/\")) return true\n\n    return false\n  },\n})\n\nexport const spaLink: Action<HTMLAnchorElement, { onClick?: (e: MouseEvent) => void }> =\n  navigation.spaLink\n\nexport const spaNavigate = navigation.spaNavigate\n\nexport const spaBack = () => {\n  sdkSpaBack()\n}\n\nconst encode = (value: string | null | undefined) => (value ? encodeURIComponent(value) : null)\n\nconst resolveCurrentOrganizationSlug = () => {\n  if (typeof window !== \"undefined\") {\n    const segments = (window.location.pathname || \"\").split(\"/\").filter(Boolean)\n\n    if (segments[0] === \"organizations\" && segments[1]) {\n      try {\n        return decodeURIComponent(segments[1])\n      } catch {\n        return segments[1]\n      }\n    }\n  }\n\n  const organization = get(activeOrganization)\n\n  return organization?.slug ?? organization?.id ?? null\n}\n\nexport const buildCurrentProjectPath = (options?: {\n  realizationId?: string | null\n  suffix?: string\n}) => {\n  const orgSlug = encode(resolveCurrentOrganizationSlug())\n\n  if (!orgSlug) return null\n\n  const suffix = options?.suffix\n    ? options.suffix.startsWith(\"/\")\n      ? options.suffix\n      : `/${options.suffix}`\n    : \"\"\n\n  return `/organizations/${orgSlug}${suffix}`\n}\n\nexport const buildProjectsRootPath = () => {\n  const orgSlug = encode(resolveCurrentOrganizationSlug())\n\n  if (orgSlug) {\n    return `/organizations/${orgSlug}/home`\n  }\n\n  return \"/\"\n}\n","<script lang=\"ts\">\n  import { spaLink } from \"../../../../_shared/_logic/organization-navigation\"\n  import { THEME } from \"../../../../_shared/_logic/runtime-config\"\n  import type { BrandingLogos } from \"../../_logic/branding\"\n\n  let {\n    branding = null,\n    hideLogo = false,\n  }: { branding?: BrandingLogos | null; hideLogo?: boolean } = $props()\n  const homeHref = \"/\"\n  const fallbackLogo = $derived(\n    THEME === \"KehrBlatt\" ? \"assets/logo-kehrblatt-white.svg\" : \"assets/logo-white.svg\",\n  )\n  const logoSrc = $derived.by(() => branding?.logo_bright ?? fallbackLogo)\n</script>\n\n{#if hideLogo}\n    <div class=\"logo-placeholder\" aria-hidden=\"true\"></div>\n{:else}\n    <a use:spaLink href={homeHref}><img src={logoSrc} alt=\"Kontextwerk Logo\" /> </a>\n{/if}\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n  a,\n  .logo-placeholder {\n    height: 70px;\n    text-decoration: none;\n    color: inherit;\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    width: 220px;\n    @media @max-mobile {\n      height: 50px;\n      width: 160px;\n    }\n  }\n\n  a {\n    img {\n      height: 100%;\n      width: auto;\n      cursor: pointer;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import ControlAppHeader from \"@kontextwerk/web-sdk/ui/layout/ControlAppHeader.svelte\"\n  import type { AdminMenuContentSnippet } from \"@kontextwerk/web-sdk/core/navigation/adminMenu\"\n\n  import HeaderActions from \"./_modules/header-actions\"\n  import LogoHeader from \"../logo-header\"\n  import type { BrandingLogos } from \"../../_logic/branding\"\n  let {\n    contentSnippet = null,\n    branding = null,\n    hideLogo = false,\n  }: {\n    contentSnippet?: AdminMenuContentSnippet | null\n    branding?: BrandingLogos | null\n    hideLogo?: boolean\n  } = $props()\n</script>\n\n<ControlAppHeader controlAdminUrl={null}>\n    {#snippet brand()}\n        <LogoHeader {branding} {hideLogo} />\n    {/snippet}\n    {#snippet actions()}\n        <HeaderActions {contentSnippet} />\n    {/snippet}\n</ControlAppHeader>\n","<script lang=\"ts\">\n  import CrinkledSection from \"../crinkled-section/index\"\n  import { fullscreenMode, parseFullscreenParam } from \"../../../../core/runtime/fullscreen\"\n  import { location as defaultLocation } from \"../../../../core/routing/navigation\"\n  import type { Writable } from \"svelte/store\"\n  import type { LocationState } from \"../../../../core/routing/navigation\"\n  import { getAppFrame, getAppNavigationScope } from \"../../../../core/navigation/appFrame\"\n  import { mdiInformationOutline, mdiOpenInNew } from \"@mdi/js\"\n  import AppUtilityNavigation from \"../../../navigation/_modules/app-utility-navigation/index\"\n\n  const appFrame = getAppFrame()\n  const navigationScope = getAppNavigationScope()\n\n  type BrandingLogos = {\n    symbol_bright: string\n    symbol_dark: string\n    logo_bright: string\n    logo_dark: string\n  }\n\n  type LegalLink = {\n    href: string\n    label: string\n  }\n\n  type LegalDocumentLink = {\n    type: \"AGB\" | \"AVV\"\n    href: string\n  }\n\n  const __components = { CrinkledSection }\n  void __components\n\n  let {\n    locationStore = defaultLocation,\n    branding = null,\n    extraLegalLinks = null,\n    legalDocuments = undefined,\n    legalLinksOverride = undefined,\n    legalNotice = null,\n    hideBrandingLogo = false,\n  }: {\n    locationStore?: Writable<LocationState>\n    branding?: BrandingLogos | null\n    extraLegalLinks?: LegalLink[] | null\n    legalDocuments?: LegalDocumentLink[] | null\n    legalLinksOverride?: LegalLink[] | null\n    legalNotice?: string | null\n    hideBrandingLogo?: boolean\n  } = $props()\n\n  function resolveBrand(theme: string | null | undefined) {\n    return theme === \"KehrBlatt\" ? \"KehrBlatt\" : \"KontextWerk\"\n  }\n\n  let brandName = $state(resolveBrand(null))\n  const resolvedBranding = $derived(branding)\n  const fullscreenActive = $derived($fullscreenMode)\n  const currentLocation = $derived($locationStore)\n\n  $effect(() => {\n    if (typeof document === \"undefined\") return\n\n    const root = document.documentElement\n\n    const syncBrand = () => {\n      brandName = resolveBrand(root.dataset.kwTheme)\n    }\n\n    syncBrand()\n\n    const observer = new MutationObserver(syncBrand)\n    observer.observe(root, { attributes: true, attributeFilter: [\"data-kw-theme\"] })\n\n    return () => observer.disconnect()\n  })\n\n  const LEGAL_BASE_URL = $derived(\n    brandName == \"KontextWerk\" ? \"https://kontextwerk.info\" : \"https://kehrblatt.de\",\n  )\n  const isKehrBlatt = $derived(brandName === \"KehrBlatt\")\n\n  const dynamicLegalLinks = $derived.by(() => {\n    if (legalDocuments === undefined) return null\n\n    const links: LegalLink[] = []\n    for (const item of legalDocuments ?? []) {\n      if (!item?.href) continue\n\n      if (item.type === \"AGB\") {\n        links.push({ href: item.href, label: \"AGB\" })\n      } else if (item.type === \"AVV\") {\n        links.push({ href: item.href, label: \"AVV\" })\n      }\n    }\n\n    return links\n  })\n\n  const defaultLegalLinks = $derived([\n    {\n      href: `${LEGAL_BASE_URL}/impressum`,\n      label: \"Impressum\",\n    },\n    {\n      href: `${LEGAL_BASE_URL}/datenschutz`,\n      label: \"Datenschutzerklärung\",\n    },\n    ...(dynamicLegalLinks ??\n      (isKehrBlatt\n        ? [\n            {\n              href: `${LEGAL_BASE_URL}/agb`,\n              label: \"AGB\",\n            },\n            {\n              href: `${LEGAL_BASE_URL}/avv`,\n              label: \"AVV\",\n            },\n          ]\n        : [])),\n  ])\n\n  const legalLinks = $derived.by(() =>\n    legalLinksOverride !== undefined\n      ? ((legalLinksOverride ?? []) as LegalLink[])\n      : [...(defaultLegalLinks ?? []), ...((extraLegalLinks ?? []) as LegalLink[])],\n  )\n  const isFullscreen = $derived(fullscreenActive || parseFullscreenParam(currentLocation?.search))\n</script>\n\n{#if !isFullscreen && appFrame}\n  <AppUtilityNavigation\n    label=\"Rechtliche Informationen\"\n    compact={navigationScope?.compact ?? false}\n    onActivate={() => navigationScope?.onActivate()}\n    items={[\n      {\n        id: \"legal\",\n        title: \"Rechtliches\",\n        icon: mdiInformationOutline,\n        items: legalLinks.map((link, index) => ({\n          id: `legal-${index}`,\n          title: link.label,\n          href: link.href,\n          icon: mdiOpenInNew,\n          target: \"_blank\",\n        })),\n      },\n    ]}\n  />\n{:else if !isFullscreen}\n  <div class=\"footer-placeholder\"></div>\n  <CrinkledSection brightBackground={true}>\n    {#snippet contentSnippet()}\n      <footer class=\"footer\">\n        <section id=\"icons-section\">\n          <div class=\"line\">\n            <div class=\"line-1\"></div>\n            {#if hideBrandingLogo}\n              <span class=\"brand-logo-placeholder\" aria-hidden=\"true\"></span>\n            {:else if resolvedBranding}\n              <img\n                class=\"brand-logo\"\n                src={resolvedBranding.symbol_dark ||\n                  resolvedBranding.logo_dark ||\n                  resolvedBranding.logo_bright}\n                alt={brandName}\n              />\n            {:else if brandName.includes(\"Kehr\")}\n              <svg\n                width=\"60\"\n                height=\"61\"\n                viewBox=\"0 0 60 61\"\n                fill=\"none\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n              >\n                <path\n                  d=\"M36.7097 22.4506V11.5081C36.7097 11.5081 37.0917 9.13044 38.7949 7.74518C40.3072 6.515 44.1524 5.92058 45.6543 9.92127L49.4685 5.19177C49.4685 5.19177 45.7111 -3.29031 36.2865 1.42885C34.1549 2.78309 31.4142 5.35718 30.6606 9.15628V28.4929L36.7046 22.4402L36.7097 22.4506Z\"\n                  fill=\"#0ED163\"\n                ></path>\n                <path\n                  d=\"M23.3469 22.4506V11.5081C23.3469 11.5081 22.965 9.13044 21.2618 7.74518C19.7495 6.515 15.9043 5.92058 14.4024 9.92127L10.5881 5.19177C10.5881 5.19177 14.3456 -3.29031 23.7702 1.42885C25.9018 2.78309 28.6425 5.35718 29.396 9.15628V28.4929L23.3521 22.4402L23.3469 22.4506Z\"\n                  fill=\"#0ED163\"\n                ></path>\n                <path\n                  d=\"M37.5819 36.7631H48.5085C48.5085 36.7631 50.8827 37.1456 52.2659 38.8513C53.4943 40.3658 54.0879 44.2166 50.093 45.7207L54.8156 49.5405C54.8156 49.5405 63.2854 45.7776 58.5731 36.3393C57.2208 34.2045 54.6505 31.4599 50.8569 30.7052H31.5483L37.5923 36.7579L37.5819 36.7631Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n                <path\n                  d=\"M37.5819 23.381H48.5085C48.5085 23.381 50.8827 22.9985 52.2659 21.2927C53.4943 19.7783 54.0879 15.9275 50.093 14.4233L54.8156 10.6036C54.8156 10.6036 63.2854 14.3665 58.5731 23.8048C57.2208 25.9395 54.6505 28.6842 50.8569 29.4388H31.5483L37.5923 23.3861L37.5819 23.381Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n                <path\n                  d=\"M22.4179 36.6907H11.4914C11.4914 36.6907 9.11715 37.0732 7.73392 38.779C6.50552 40.2934 5.91197 44.1442 9.90684 45.6484L5.18422 49.4681C5.18422 49.4681 -3.28552 45.7052 1.42677 36.2669C2.77904 34.1322 5.34938 31.3875 9.14296 30.6328H28.4515L22.4076 36.6856L22.4179 36.6907Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n                <path\n                  d=\"M22.4179 23.3086H11.4913C11.4913 23.3086 9.11712 22.9261 7.73388 21.2204C6.50549 19.7059 5.91193 15.8551 9.9068 14.351L5.18419 10.5312C5.18419 10.5312 -3.27523 14.2889 1.43706 23.7273C2.78933 25.862 5.35967 28.6067 9.15325 29.3613H28.4618L22.4179 23.3086Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n                <path\n                  d=\"M36.7097 37.5643V48.5067C36.7097 48.5067 37.0917 50.8844 38.7949 52.2697C40.3072 53.4998 44.1524 54.0943 45.6543 50.0936L49.4685 54.8231C49.4685 54.8231 45.7111 63.3051 36.2865 58.586C34.1549 57.2317 31.4142 54.6577 30.6606 50.8586V31.5219L36.7046 37.5746L36.7097 37.5643Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n                <path\n                  d=\"M23.3469 37.5643V48.5067C23.3469 48.5067 22.965 50.8844 21.2618 52.2697C19.7495 53.4998 15.9043 54.0943 14.4024 50.0936L10.5881 54.8231C10.5881 54.8231 14.3456 63.3051 23.7702 58.586C25.9018 57.2317 28.6425 54.6577 29.396 50.8586V31.5219L23.3521 37.5746L23.3469 37.5643Z\"\n                  fill=\"#3f3e3e\"\n                ></path>\n              </svg>\n            {:else}\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n                zoomAndPan=\"magnify\"\n                preserveAspectRatio=\"xMidYMid meet\"\n                version=\"1.0\"\n                viewBox=\"165.78 159.11 49.59 56.44\"\n                ><defs\n                  ><clipPath id=\"bd9e6d0ed5\"\n                    ><path\n                      d=\"M 165 159.082031 L 215.691406 159.082031 L 215.691406 216 L 165 216 Z M 165 159.082031 \"\n                      clip-rule=\"nonzero\"\n                    ></path></clipPath\n                  ><clipPath id=\"8bf626c89e\"\n                    ><path\n                      d=\"M 0.601562 0.0820312 L 50.519531 0.0820312 L 50.519531 56.761719 L 0.601562 56.761719 Z M 0.601562 0.0820312 \"\n                      clip-rule=\"nonzero\"\n                    ></path></clipPath\n                  ><clipPath id=\"e48e3f235c\"\n                    ><rect x=\"0\" width=\"51\" y=\"0\" height=\"57\"></rect></clipPath\n                  ></defs\n                ><g clip-path=\"url(#bd9e6d0ed5)\"\n                  ><g transform=\"matrix(1, 0, 0, 1, 165, 159)\"\n                    ><g clip-path=\"url(#e48e3f235c)\"\n                      ><g clip-path=\"url(#8bf626c89e)\"\n                        ><path\n                          fill=\"#2f4858\"\n                          d=\"M 32.6875 31.042969 C 40.058594 28.636719 47.421875 35.292969 45.523438 42.96875 C 43.078125 52.433594 32.925781 56.882812 22.929688 56.535156 L 22.929688 49.703125 C 39.636719 49.835938 45.316406 32.035156 32.6875 31.042969 M 29.917969 36.039062 C 30.808594 36.039062 31.53125 36.761719 31.53125 37.652344 C 31.53125 38.542969 30.808594 39.265625 29.917969 39.265625 C 29.027344 39.265625 28.304688 38.542969 28.304688 37.652344 C 28.304688 36.761719 29.027344 36.039062 29.917969 36.039062 Z M 24.203125 36.039062 C 25.09375 36.039062 25.816406 36.761719 25.816406 37.652344 C 25.816406 38.542969 25.09375 39.265625 24.203125 39.265625 C 23.3125 39.265625 22.589844 38.542969 22.589844 37.652344 C 22.589844 36.761719 23.3125 36.039062 24.203125 36.039062 Z M 18.484375 36.039062 C 19.378906 36.039062 20.097656 36.761719 20.097656 37.652344 C 20.097656 38.542969 19.378906 39.265625 18.484375 39.265625 C 17.59375 39.265625 16.871094 38.542969 16.871094 37.652344 C 16.871094 36.761719 17.59375 36.039062 18.484375 36.039062 Z M 28.578125 16.488281 C 36.304688 14.222656 46.632812 9.421875 49.421875 1.210938 C 50.289062 3.949219 50.550781 6.75 50.269531 9.457031 C 50.066406 11.445312 49.726562 13.175781 49.273438 14.691406 C 47.90625 18.25 45.480469 21.414062 42.160156 23.6875 C 42.496094 21.765625 42.253906 19.792969 41.460938 18.011719 C 36.949219 23.855469 21.6875 25.710938 14.578125 30.480469 C 11.671875 32.429688 9.898438 35.710938 9.898438 39.257812 C 9.898438 45.679688 18.644531 51.957031 22.769531 56.53125 C 13.492188 56.164062 4.390625 51.664062 1.753906 43.210938 C -5.558594 19.773438 30.507812 16.988281 42.691406 0.109375 C 42.144531 8.601562 36.023438 13.347656 28.578125 16.488281 Z M 28.578125 16.488281 \"\n                          fill-opacity=\"1\"\n                          fill-rule=\"evenodd\"\n                        ></path></g\n                      ></g\n                    ></g\n                  ></g\n                ></svg\n              >\n            {/if}\n            <div class=\"line-2\"></div>\n          </div>\n        </section>\n        <section id=\"legal-section\">\n          <div class=\"wrapper\">\n            <small>© 2026 | {brandName} | Alle Rechte vorbehalten.</small>\n            {#if legalNotice}\n              <small class=\"footer-notice\">{legalNotice}</small>\n            {/if}\n            <nav class=\"nav-points\" aria-label=\"Rechtliche Hinweise\">\n              <ul>\n                {#each legalLinks as link}\n                  <li>\n                    <a\n                      class=\"footer-link\"\n                      href={link.href}\n                      target=\"_blank\"\n                      rel=\"noopener noreferrer\"\n                    >\n                      <small>{link.label}</small>\n                    </a>\n                  </li>\n                {/each}\n              </ul>\n            </nav>\n          </div>\n        </section>\n      </footer>\n    {/snippet}\n  </CrinkledSection>\n{/if}\n\n<style lang=\"less\" global>\n  @import \"../../../../theme/tokens.less\";\n\n  .footer-placeholder {\n    background-color: white;\n    height: 3rem;\n    width: 100%;\n    margin-top: -3rem;\n  }\n\n  footer.footer {\n    &,\n    & * {\n      box-sizing: border-box;\n    }\n    background: var(--neutral-white);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: flex-start;\n    position: relative;\n    width: 100%;\n    gap: 1.5rem;\n    #content-section {\n      padding: 0px var(--horizontal-default-margin);\n      max-width: var(--small-max-width);\n      width: 100%;\n      display: flex;\n      flex-direction: row;\n      gap: 1.5rem;\n      align-items: flex-start;\n      justify-content: flex-start;\n      position: relative;\n      #content-link-section {\n        display: flex;\n        flex-direction: row;\n        gap: 1.5rem;\n        align-items: flex-start;\n        justify-content: flex-start;\n        flex: 1;\n        position: relative;\n        .content {\n          display: flex;\n          flex-direction: column;\n          gap: 1.125rem;\n          align-items: flex-start;\n          justify-content: flex-start;\n          width: 8rem;\n          position: relative;\n        }\n      }\n      @media @mobile {\n        flex-direction: column;\n        align-items: flex-start;\n        #content-link-section {\n          flex-direction: column;\n        }\n      }\n    }\n    #newsletter-section {\n      display: flex;\n      flex-direction: column;\n      gap: 18px;\n      min-width: 300px;\n      form {\n        button {\n          width: fit-content;\n        }\n      }\n    }\n    #icons-section {\n      padding: 0px var(--horizontal-default-margin);\n      max-width: var(--small-max-width);\n      width: 100%;\n      margin: 0 0 0 -0.0625rem;\n      display: flex;\n      gap: 0.625rem;\n      align-items: flex-start;\n      justify-content: flex-start;\n      flex: 1;\n      position: relative;\n      overflow: hidden;\n      .payments,\n      .social {\n        display: flex;\n        gap: 0.75rem;\n        figure {\n          height: 1.2rem;\n          img {\n            height: 100%;\n            width: auto;\n          }\n        }\n      }\n      .line {\n        display: flex;\n        flex-direction: row;\n        gap: 1.5rem;\n        align-items: center;\n        justify-content: flex-start;\n        flex: 1;\n        position: relative;\n        overflow: hidden;\n        .brand-logo {\n          height: 60px;\n          width: auto;\n          object-fit: contain;\n        }\n        .brand-logo-placeholder {\n          flex: 0 0 60px;\n          height: 60px;\n          width: 60px;\n        }\n        svg {\n          height: 2.4rem;\n          width: auto;\n        }\n        .line-1,\n        .line-2 {\n          border-style: solid;\n          border-color: var(--text-invers-100);\n          border-width: 0.0625rem 0 0 0;\n          flex: 1;\n          height: 0rem;\n          position: relative;\n        }\n      }\n      @media @mobile {\n        flex-direction: column-reverse;\n        align-items: center;\n        gap: 2rem;\n        .line {\n          width: 100%;\n          padding: 0px;\n        }\n      }\n    }\n\n    #legal-section {\n      display: flex;\n      justify-content: center;\n      width: 100%;\n      background: var(--bg-100);\n      gap: 1.2rem;\n      .wrapper {\n        max-width: var(--small-max-width);\n\n        width: 100%;\n        a,\n        small {\n          color: var(--text-100);\n        }\n\n        .footer-notice {\n          max-width: 22rem;\n          line-height: 1.35;\n        }\n\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        justify-content: space-between;\n        flex-shrink: 0;\n        position: relative;\n        gap: 1.2rem;\n        padding: 1.5rem var(--horizontal-default-margin);\n        @media @mobile {\n          flex-direction: column;\n          align-items: flex-start;\n        }\n\n        .nav-points {\n          ul {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 0.6rem;\n            align-items: center;\n            li {\n              display: inline-flex;\n              align-items: center;\n              gap: 0.35rem;\n              position: relative;\n            }\n            a {\n              font-weight: 400;\n              font-family: var(--font-family-base, \"Outfit\", sans-serif);\n            }\n          }\n\n          a.footer-link {\n            position: relative;\n            display: inline-flex;\n            align-items: center;\n            text-decoration: none;\n            cursor: pointer;\n            padding-bottom: 0.05rem;\n\n            &::after {\n              content: \"\";\n              position: absolute;\n              left: 0;\n              bottom: -0.125rem;\n              height: 0.125rem;\n              width: 100%;\n              background: var(--primary-100);\n              transform-origin: left center;\n              transform: scaleX(0);\n              opacity: 0.9;\n              transition:\n                transform 180ms ease,\n                opacity 180ms ease;\n            }\n\n            &:hover::after,\n            &:focus-visible::after {\n              transform: scaleX(1);\n              opacity: 1;\n            }\n          }\n        }\n      }\n    }\n  }\n</style>\n","import { writable } from \"svelte/store\"\nimport { CONTROL_SERVER_ORIGIN } from \"../../../../_shared/_logic/runtime-config\"\nimport { requestControlAdmin } from \"../../../../_shared/_logic/control-api\"\n\nexport type BrandingLogos = {\n  symbol_bright: string\n  symbol_dark: string\n  logo_bright: string\n  logo_dark: string\n}\n\ntype BrandingResponse = {\n  effective_urls?: Partial<BrandingLogos> | null\n}\n\nconst controlOrigin = (() => {\n  try {\n    return new URL(CONTROL_SERVER_ORIGIN).origin\n  } catch {\n    return CONTROL_SERVER_ORIGIN\n  }\n})()\n\nconst resolveUrl = (value: string | null | undefined): string => {\n  if (!value) return \"\"\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return \"\"\n\n  if (/^(https?:|data:|blob:)/i.test(trimmed) || trimmed.startsWith(\"//\")) return trimmed\n\n  return `${controlOrigin}${trimmed.startsWith(\"/\") ? \"\" : \"/\"}${trimmed}`\n}\n\nconst publicBrandingUrl = (assetKind: keyof BrandingLogos): string =>\n  `${CONTROL_SERVER_ORIGIN.replace(/\\/+$/, \"\")}/api/v1/public/branding/${assetKind}`\n\nconst defaultBranding: BrandingLogos = {\n  symbol_bright: publicBrandingUrl(\"symbol_bright\"),\n  symbol_dark: publicBrandingUrl(\"symbol_dark\"),\n  logo_bright: publicBrandingUrl(\"logo_bright\"),\n  logo_dark: publicBrandingUrl(\"logo_dark\"),\n}\n\nconst normalizeBranding = (logos?: Partial<BrandingLogos> | null): BrandingLogos => ({\n  symbol_bright: resolveUrl(logos?.symbol_bright ?? defaultBranding.symbol_bright),\n  symbol_dark: resolveUrl(logos?.symbol_dark ?? defaultBranding.symbol_dark),\n  logo_bright: resolveUrl(logos?.logo_bright ?? defaultBranding.logo_bright),\n  logo_dark: resolveUrl(logos?.logo_dark ?? defaultBranding.logo_dark),\n})\n\nexport const branding = writable<BrandingLogos | null>(defaultBranding)\n\nexport const loadBranding = async (): Promise<void> => {\n  branding.set(defaultBranding)\n}\n\nexport const loadOrganizationBranding = async (\n  organizationId: string | null | undefined,\n): Promise<BrandingLogos | null> => {\n  const normalizedOrganizationId = organizationId?.trim()\n\n  if (!normalizedOrganizationId) return null\n\n  try {\n    const data = await requestControlAdmin<BrandingResponse>(\n      `/organizations/${encodeURIComponent(normalizedOrganizationId)}/branding`,\n    )\n\n    return normalizeBranding(data.effective_urls)\n  } catch (err) {\n    console.error(\"loadOrganizationBranding_failed\", err)\n\n    return null\n  }\n}\n\nexport const defaultBrandingLogos = defaultBranding\n","<script lang=\"ts\">\n  import { mdiContentCopy } from \"@mdi/js\"\n  import { onDestroy } from \"svelte\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { copyTextToClipboard } from \"../../../../core/platform/clipboard\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import {\n    defaultStatusColor,\n    resolveStatusColor,\n    type StatusDefinition,\n  } from \"../../../../core/display/status\"\n  import type { StatusTagCopyLabels, StatusTagCopyState, StatusTagInteraction } from \"./types\"\n\n  type Size = \"sm\" | \"md\"\n\n  let {\n    status,\n    label,\n    topLabel,\n    subLabel,\n    value,\n    icon,\n    iconText,\n    color,\n    variant = \"status\",\n    textColor,\n    description,\n    size = \"md\",\n    tooltipContent = \"\",\n    tooltipHtml = false,\n    tooltipClassName = \"\",\n    disableTitle = false,\n    interaction,\n    class: className = \"\",\n  }: {\n    status?: StatusDefinition\n    label?: string\n    topLabel?: string\n    subLabel?: string\n    value?: string\n    icon?: string\n    iconText?: string\n    color?: StatusDefinition[\"color\"]\n    /** Neutral tags identify objects; status tags communicate a state. */\n    variant?: \"status\" | \"neutral\"\n    textColor?: string\n    description?: string\n    size?: Size\n    tooltipContent?: string\n    tooltipHtml?: boolean\n    tooltipClassName?: string\n    disableTitle?: boolean\n    interaction?: StatusTagInteraction\n    class?: string\n  } = $props()\n\n  const defaultCopyLabels: StatusTagCopyLabels = {\n    idle: \"Kopieren\",\n    pending: \"Kopiere…\",\n    success: \"Kopiert\",\n    failure: \"Nicht kopiert\",\n  }\n  const defaultCopyTooltip = \"Klicken, um diesen Wert in die Zwischenablage zu kopieren.\"\n\n  let copyState = $state<StatusTagCopyState>(\"idle\")\n  let copyResetTimer: ReturnType<typeof setTimeout> | undefined\n  let destroyed = false\n\n  const copyInteraction = $derived(interaction?.kind === \"copy\" ? interaction : null)\n  const copyLabels = $derived({ ...defaultCopyLabels, ...copyInteraction?.labels })\n  const copyTooltipHint = $derived(copyInteraction?.tooltipHint?.trim() || defaultCopyTooltip)\n\n  const resolvedStatus = $derived(status ?? { label, value, icon, color, description })\n  const neutral = $derived(variant === \"neutral\" || (resolvedStatus?.color ?? color) === \"neutral\")\n  const resolvedColor = $derived(\n    resolveStatusColor(\n      neutral ? \"neutral\" : (resolvedStatus?.color ?? color ?? defaultStatusColor),\n    ),\n  )\n  const resolvedLabel = $derived(\n    resolvedStatus?.label ?? label ?? resolvedStatus?.value ?? value ?? \"\",\n  )\n  const resolvedTopLabel = $derived(\n    copyInteraction ? copyLabels[copyState] : (topLabel?.trim() ?? \"\"),\n  )\n  const resolvedIcon = $derived(\n    copyInteraction ? mdiContentCopy : (resolvedStatus?.icon ?? icon ?? \"\"),\n  )\n  const resolvedIconText = $derived(copyInteraction ? \"\" : (iconText?.trim() ?? \"\"))\n  const resolvedDescription = $derived(\n    resolvedStatus?.description || description || resolvedLabel || resolvedStatus?.value || \"\",\n  )\n  const styleValue = $derived(\n    `--status-color:${resolvedColor};${textColor && !neutral ? `--status-ink:${textColor};` : \"\"}`,\n  )\n\n  const escapeHtml = (value: string): string =>\n    value\n      .replaceAll(\"&\", \"&amp;\")\n      .replaceAll(\"<\", \"&lt;\")\n      .replaceAll(\">\", \"&gt;\")\n      .replaceAll('\"', \"&quot;\")\n      .replaceAll(\"'\", \"&#39;\")\n\n  const normalizedTooltip = $derived.by(() => {\n    const raw = typeof tooltipContent === \"string\" ? tooltipContent.trim() : \"\"\n    const base = raw ? (tooltipHtml ? raw : escapeHtml(raw)) : \"\"\n    const copyHint = copyInteraction\n      ? `<div class=\"status-tag-copy-hint\">${escapeHtml(copyTooltipHint)}</div>`\n      : \"\"\n\n    return [base, copyHint].filter(Boolean).join(\"\")\n  })\n  const tooltipEnabled = $derived(Boolean(normalizedTooltip))\n  const tooltipData = $derived(\n    tooltipEnabled ? { content: normalizedTooltip, className: tooltipClassName } : false,\n  )\n  const titleDisabled = $derived(disableTitle || tooltipEnabled)\n  const copyAriaLabel = $derived(\n    copyInteraction?.ariaLabel?.trim() || `${resolvedLabel}: ${copyTooltipHint}`,\n  )\n\n  const clearCopyReset = () => {\n    if (copyResetTimer === undefined) return\n\n    clearTimeout(copyResetTimer)\n    copyResetTimer = undefined\n  }\n\n  const scheduleCopyReset = () => {\n    clearCopyReset()\n    copyResetTimer = setTimeout(() => {\n      copyResetTimer = undefined\n\n      if (!destroyed) copyState = \"idle\"\n    }, copyInteraction?.resetAfterMs ?? 1800)\n  }\n\n  const handleCopy = async (event: MouseEvent) => {\n    event.preventDefault()\n    event.stopPropagation()\n\n    if (!copyInteraction || copyState === \"pending\") return\n\n    clearCopyReset()\n    copyState = \"pending\"\n    try {\n      const value = (await copyInteraction.resolveValue())?.trim() ?? \"\"\n\n      if (!value) throw new Error(\"Copy value is empty\")\n\n      await copyTextToClipboard(value)\n\n      if (!destroyed) copyState = \"success\"\n    } catch {\n      if (!destroyed) copyState = \"failure\"\n    }\n\n    if (!destroyed) scheduleCopyReset()\n  }\n\n  onDestroy(() => {\n    destroyed = true\n    clearCopyReset()\n  })\n</script>\n\n{#snippet content()}\n  <span class=\"status-tag__content\">\n    {#if resolvedTopLabel}\n      <span class=\"status-tag__top-label\" aria-live={copyInteraction ? \"polite\" : undefined}>\n        {resolvedTopLabel}\n      </span>\n    {/if}\n    {#if subLabel}\n      <span class=\"status-tag__label status-tag__label--stacked\">\n        <span class=\"status-tag__main-label\">{resolvedLabel}</span>\n        <span class=\"status-tag__sub-label\">{subLabel}</span>\n      </span>\n    {:else}\n      <span class=\"status-tag__label\">{resolvedLabel}</span>\n    {/if}\n  </span>\n  {#if resolvedIconText}\n    <span class=\"status-tag__icon status-tag__icon--text\">{resolvedIconText}</span>\n  {:else if resolvedIcon}\n    <span class=\"status-tag__icon\" aria-hidden=\"true\">\n      <Icon path={resolvedIcon} size={size === \"sm\" ? \"0.9rem\" : \"1rem\"} color=\"currentColor\" />\n    </span>\n  {/if}\n{/snippet}\n\n{#if copyInteraction}\n  <button\n    type=\"button\"\n    class={`status-tag status-tag--${size} status-tag--copy ${className}`.trim()}\n    class:status-tag--tooltip={tooltipEnabled}\n    class:status-tag--neutral={neutral}\n    class:status-tag--with-top-label={Boolean(resolvedTopLabel)}\n    style={styleValue}\n    title={titleDisabled ? undefined : resolvedDescription}\n    aria-label={copyAriaLabel}\n    aria-busy={copyState === \"pending\"}\n    onclick={handleCopy}\n    use:tooltip={tooltipData}\n  >\n    {@render content()}\n  </button>\n{:else}\n  <span\n    class={`status-tag status-tag--${size} ${className}`.trim()}\n    class:status-tag--tooltip={tooltipEnabled}\n    class:status-tag--neutral={neutral}\n    class:status-tag--with-top-label={Boolean(resolvedTopLabel)}\n    style={styleValue}\n    title={titleDisabled ? undefined : resolvedDescription}\n    use:tooltip={tooltipData}\n  >\n    {@render content()}\n  </span>\n{/if}\n\n<style lang=\"less\">\n  .status-tag {\n    --status-bg: color-mix(in srgb, var(--status-color) 14%, transparent);\n    --status-ink: color-mix(in srgb, var(--status-color) 86%, #0e1115);\n\n    display: inline-flex;\n    flex: 0 1 auto;\n    width: fit-content;\n    max-width: 100%;\n    box-sizing: border-box;\n    align-items: stretch;\n    gap: 0;\n    border: 1px solid color-mix(in srgb, var(--status-color) 60%, transparent);\n    background: var(--status-bg);\n    color: var(--status-ink);\n    position: relative;\n    overflow: hidden;\n    line-height: 1.1;\n    white-space: nowrap;\n  }\n\n  .status-tag--neutral {\n    --status-bg: transparent;\n    --status-ink: var(--status-color);\n    border-color: var(--status-color);\n  }\n\n  .status-tag--neutral .status-tag__icon {\n    border-left-color: var(--status-color);\n  }\n\n  .status-tag--tooltip {\n    cursor: help;\n  }\n\n  button.status-tag {\n    appearance: none;\n    padding: 0;\n    font: inherit;\n    text-align: left;\n  }\n\n  .status-tag--copy {\n    cursor: pointer;\n    transition:\n      filter 120ms ease,\n      outline-color 120ms ease;\n  }\n\n  .status-tag--copy:hover {\n    filter: brightness(1.04);\n  }\n\n  .status-tag--copy:focus-visible {\n    outline: 2px solid var(--status-color);\n    outline-offset: 2px;\n  }\n\n  .status-tag--copy[aria-busy=\"true\"] {\n    cursor: progress;\n  }\n\n  .status-tag__content {\n    display: inline-flex;\n    flex: 0 1 auto;\n    width: fit-content;\n    max-width: 100%;\n    flex-direction: column;\n    align-items: flex-start;\n    min-width: 0;\n  }\n\n  .status-tag__top-label {\n    display: inline-flex;\n    align-items: center;\n    align-self: flex-start;\n    padding: 0.18rem 0.65rem;\n    background: var(--status-color);\n    color: #fff;\n    font-size: 0.68rem;\n    font-weight: 800;\n    line-height: 1;\n    white-space: nowrap;\n  }\n\n  .status-tag__label {\n    display: inline-flex;\n    align-items: center;\n    padding: 0.35rem 0.65rem;\n    font-weight: 600;\n    font-size: 0.93rem;\n  }\n\n  .status-tag__label--stacked {\n    flex-direction: column;\n    align-items: flex-start;\n    justify-content: center;\n    gap: 0.1rem;\n    white-space: normal;\n  }\n\n  .status-tag__main-label,\n  .status-tag__sub-label {\n    display: block;\n    line-height: 1.05;\n  }\n\n  .status-tag__sub-label {\n    font-size: 0.82em;\n    font-weight: 600;\n    opacity: 0.82;\n  }\n\n  .status-tag__icon {\n    display: inline-flex;\n    flex: 0 0 auto;\n    align-items: center;\n    justify-content: center;\n    padding: 0.25rem 0.35rem;\n    background: var(--status-color);\n    color: #fff;\n    border-left: 1px solid color-mix(in srgb, var(--status-color) 75%, transparent);\n  }\n\n  .status-tag__icon--text {\n    min-width: 1.6rem;\n    font-weight: 800;\n    font-variant-numeric: tabular-nums;\n    line-height: 1;\n    white-space: nowrap;\n  }\n\n  .status-tag--sm .status-tag__label {\n    padding: 0.25rem 0.55rem;\n    font-size: 0.86rem;\n  }\n\n  .status-tag--sm .status-tag__top-label {\n    padding: 0.14rem 0.55rem;\n    font-size: 0.62rem;\n  }\n\n  .status-tag--sm .status-tag__icon {\n    padding: 0.2rem 0.3rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { StatusDefinition } from \"../../../../core/display/status\"\n  import { resolveStatusColor } from \"../../../../core/display/status\"\n  import StatusTag from \"../../../display/_modules/status-tag/index\"\n  import SelectInput from \"../select-input/index\"\n\n  type Props = {\n    statuses?: StatusDefinition[]\n    placeholder?: string\n    value?: string | string[] | null\n    multiple?: boolean\n    brightBackground?: boolean\n    classList?: string\n    id?: string\n    name?: string\n    disabled?: boolean\n    required?: boolean\n    onChange?: (value: string | string[]) => void\n  }\n\n  type SelectInputChangeDetail = {\n    value?: unknown\n    values?: unknown[]\n  }\n\n  type SelectInputChangeEvent = Event & {\n    detail?: SelectInputChangeDetail\n  }\n\n  let {\n    statuses = [],\n    multiple = false,\n    value = $bindable<string | string[] | null>(multiple ? [] : \"\"),\n    placeholder = \"Status auswählen\",\n    brightBackground = false,\n    classList = \"\",\n    id = \"status-filter-\" + Math.random().toString(36).substring(2, 8),\n    name = \"\",\n    disabled = false,\n    required = false,\n    onChange = undefined,\n  }: Props = $props()\n\n  const normalizedStatuses = $derived(\n    (Array.isArray(statuses) ? statuses : []).filter(Boolean) as StatusDefinition[],\n  )\n\n  const selectItems = $derived(\n    normalizedStatuses.map((status) => ({\n      ...status,\n      label: status.label,\n      name: status.label,\n      value: `${status.value}`,\n      color: resolveStatusColor(status.color),\n      status,\n    })),\n  )\n\n  const emitChange = (nextValue: string | string[]) => {\n    onChange?.(nextValue)\n  }\n\n  const normalizeSelection = (): string | string[] => {\n    if (multiple) {\n      if (Array.isArray(value)) {\n        return value.map((entry) => `${entry}`)\n      }\n\n      if (value === null || value === undefined || value === \"\") return []\n\n      return [`${value}`]\n    }\n\n    if (Array.isArray(value)) {\n      return value[0] ?? \"\"\n    }\n\n    if (value === null || value === undefined) return \"\"\n\n    return `${value}`\n  }\n\n  const normalizeEventSelection = (\n    event: SelectInputChangeEvent | undefined,\n  ): string | string[] | null => {\n    const detail = event?.detail\n\n    if (!detail) return null\n\n    if (multiple) {\n      if (Array.isArray(detail.values)) {\n        return detail.values.filter((entry): entry is string => typeof entry === \"string\")\n      }\n\n      if (Array.isArray(detail.value)) {\n        return detail.value.filter((entry): entry is string => typeof entry === \"string\")\n      }\n\n      if (detail.value === null || detail.value === undefined || detail.value === \"\") return []\n\n      return [`${detail.value}`]\n    }\n\n    if (typeof detail.value === \"string\") return detail.value\n\n    if (Array.isArray(detail.values)) {\n      const firstValue = detail.values.find((entry): entry is string => typeof entry === \"string\")\n\n      return firstValue ?? \"\"\n    }\n\n    return null\n  }\n\n  const handleChange = (event?: SelectInputChangeEvent) => {\n    const next = normalizeEventSelection(event) ?? normalizeSelection()\n    value = next as any\n    emitChange(next)\n  }\n</script>\n\n<SelectInput\n  classList={`status-filter ${classList}`.trim()}\n  bind:value\n  {id}\n  name={name || id}\n  {disabled}\n  {required}\n  {placeholder}\n  {multiple}\n  {brightBackground}\n  options={selectItems}\n  selectionRenderer={multiple ? undefined : selectionRenderer}\n  {itemRenderer}\n  onChange={handleChange}\n/>\n\n{#snippet selectionRenderer({ selection })}\n  {#if selection}\n    <StatusTag size=\"md\" status={{ ...(selection.status ?? selection), color: selection.color }} />\n  {/if}\n{/snippet}\n\n{#snippet itemRenderer({ item })}\n  <div class=\"status-filter__item\">\n    <StatusTag size=\"sm\" status={{ ...(item.status ?? item), color: item.color }} />\n  </div>\n{/snippet}\n\n<style lang=\"less\">\n  :global(.status-filter) {\n    min-width: 220px;\n  }\n\n  .status-filter__item {\n    padding: 0.1rem 0;\n  }\n</style>\n","import type { TableFilter, TableFilterValues } from \"../../../../../../../core/layout/table\"\n\nexport const resolveFilterId = (entry: TableFilter) => entry.id ?? entry.column ?? \"\"\n\nexport const normalizeFilterDefinitions = (\n  value: TableFilter | TableFilter[] | null | undefined,\n): TableFilter[] => (Array.isArray(value) ? value.filter(Boolean) : value ? [value] : [])\n\nexport const formatFilterValue = (\n  filter: TableFilter,\n  raw: string | string[] | null | undefined,\n): string | string[] | null => {\n  if (filter.type === \"status\") {\n    if (filter.multiple === false) {\n      const value = Array.isArray(raw) ? (raw[0] ?? null) : (raw ?? null)\n\n      return value === \"\" ? null : value\n    }\n\n    const arr = Array.isArray(raw) ? raw : raw ? [raw] : []\n\n    return arr.map((entry) => `${entry}`).filter((entry) => entry.trim() !== \"\")\n  }\n\n  if (raw === null || raw === undefined) return \"\"\n\n  return typeof raw === \"string\" ? raw : `${raw}`\n}\n\nexport const getFiltersPayload = (\n  filters: TableFilter[],\n  filterValues: TableFilterValues,\n  externalFilters?: TableFilterValues | null,\n): TableFilterValues => {\n  if (!filters.length && externalFilters) {\n    return externalFilters\n  }\n\n  const payload: TableFilterValues = {}\n  const source = externalFilters ?? filterValues\n\n  for (const current of filters) {\n    const id = resolveFilterId(current)\n\n    if (!id) continue\n\n    const raw = source[id] ?? filterValues[id]\n    payload[id] = formatFilterValue(current, raw)\n  }\n\n  return payload\n}\n\nexport const buildInitialFilterValues = (\n  defs: TableFilter[],\n  previous: TableFilterValues = {},\n): TableFilterValues => {\n  const next: TableFilterValues = {}\n  for (const current of defs) {\n    const id = resolveFilterId(current)\n\n    if (!id) continue\n\n    if (previous[id] !== undefined) {\n      next[id] = previous[id]\n      continue\n    }\n\n    if (current.type === \"status\") {\n      const base = current.defaultValue ?? current.value\n\n      if (Array.isArray(base)) {\n        next[id] = base.map((entry) => `${entry}`)\n      } else if (base === null || base === undefined || base === \"\") {\n        next[id] = current.multiple === false ? null : []\n      } else {\n        next[id] = current.multiple === false ? `${base}` : [`${base}`]\n      }\n    } else {\n      const base = current.defaultValue ?? current.value\n      next[id] = base === null || base === undefined ? \"\" : `${base}`\n    }\n  }\n\n  return next\n}\n\nexport const tableFilterValuesEqual = (\n  left: string | string[] | null | undefined,\n  right: string | string[] | null | undefined,\n) => {\n  if (Array.isArray(left) || Array.isArray(right)) {\n    const a = Array.isArray(left) ? left : left ? [left] : []\n    const b = Array.isArray(right) ? right : right ? [right] : []\n\n    return a.length === b.length && a.every((entry, index) => entry === b[index])\n  }\n\n  return (left ?? null) === (right ?? null)\n}\n\nexport const buildFilterDefinitionSignature = (defs: TableFilter[]) =>\n  defs\n    .map((entry) => {\n      const cardinality = entry.type === \"text\" || entry.multiple === false ? \"single\" : \"multi\"\n\n      return `${resolveFilterId(entry)}:${entry.type}:${cardinality}`\n    })\n    .join(\"|\")\n\nexport const serializeFilterValue = (value: string | string[] | null | undefined): string => {\n  if (Array.isArray(value)) {\n    return JSON.stringify(value.map((entry) => `${entry}`))\n  }\n\n  if (value === null || value === undefined) return \"null\"\n\n  return JSON.stringify(`${value}`)\n}\n\nexport const serializeExternalFilters = (value: TableFilterValues | null | undefined): string => {\n  if (!value) return \"\"\n\n  const keys = Object.keys(value).sort()\n\n  return keys.map((key) => `${key}:${serializeFilterValue(value[key])}`).join(\"|\")\n}\n","<script lang=\"ts\" module>\n  export {\n    formatFilterValue,\n    getFiltersPayload,\n    resolveFilterId,\n  } from \"../../_shared/_logic/filter-state/index\"\n</script>\n\n<script lang=\"ts\">\n  import Input from \"../../../../../forms/_modules/input/index\"\n  import StatusFilter from \"../../../../../forms/_modules/status-filter/index\"\n  import type { TableFilter, TableFilterValues, Theme } from \"../../../../../../core/layout/table\"\n  import {\n    buildFilterDefinitionSignature,\n    buildInitialFilterValues,\n    formatFilterValue as formatTableFilterValue,\n    resolveFilterId as resolveTableFilterId,\n  } from \"../../_shared/_logic/filter-state/index\"\n\n  type Props = {\n    filters?: TableFilter[]\n    filterValues?: TableFilterValues\n    resetRevision?: number\n    theme?: Theme\n    onFilterCommit?: (columnId: string, value: string | string[] | null) => void\n  }\n\n  let {\n    filters = [],\n    filterValues = {},\n    resetRevision = 0,\n    theme = \"dark\",\n    onFilterCommit = () => {},\n  }: Props = $props()\n\n  let draftValues = $state<TableFilterValues>({})\n  let currentSignature = \"\"\n  let currentResetRevision: number | null = null\n\n  const reconcileDraftValues = () => {\n    const signature = buildFilterDefinitionSignature(filters)\n\n    if (signature === currentSignature && resetRevision === currentResetRevision) return\n\n    currentSignature = signature\n    currentResetRevision = resetRevision\n    draftValues = buildInitialFilterValues(filters, filterValues)\n  }\n\n  // effect-ok: prop-bridge - the table shell owns definition/reset changes, while input draft state stays local.\n  $effect(reconcileDraftValues)\n\n  const handleTextChange = (filter: TableFilter, event: Event) => {\n    const id = resolveTableFilterId(filter)\n\n    if (!id) return\n\n    const value = (event.target as HTMLInputElement | HTMLTextAreaElement | null)?.value ?? \"\"\n    const formatted = formatTableFilterValue(filter, value)\n    draftValues = { ...draftValues, [id]: formatted }\n    onFilterCommit(id, formatted)\n  }\n\n  const handleStatusChange = (filter: TableFilter, value: string | string[] | null) => {\n    const id = resolveTableFilterId(filter)\n\n    if (!id) return\n\n    const formatted = formatTableFilterValue(filter, value)\n    draftValues = { ...draftValues, [id]: formatted }\n    onFilterCommit(id, formatted)\n  }\n</script>\n\n{#if filters.length}\n  <div class=\"table-filters form {theme == 'light' ? 'dark' : 'light'}\">\n    <div class=\"row\">\n      {#each filters as current (resolveTableFilterId(current))}\n        {@const id = resolveTableFilterId(current)}\n        {#if current.type === \"text\"}\n          <Input\n            placeholder={current.label}\n            value={(draftValues[id] as string | undefined) ??\n              (filterValues[id] as string | undefined) ??\n              \"\"}\n            onChange={(event) => handleTextChange(current, event)}\n          />\n        {:else if current.type === \"select\"}\n          <Input\n            type=\"select\"\n            placeholder={current.label ?? current.placeholder ?? \"Auswahl\"}\n            value={(draftValues[id] as string | undefined) ??\n              (filterValues[id] as string | undefined) ??\n              \"\"}\n            options={current.options ?? []}\n            multiple={current.multiple ?? false}\n            groupBy={current.groupBy}\n            groupHeaderSelectable={current.groupHeaderSelectable ?? false}\n            selectStyle={current.selectStyle ?? \"\"}\n            brightBackground={current.brightBackground ?? theme !== \"dark\"}\n            onChange={(event) => handleTextChange(current, event)}\n          />\n        {:else if current.type === \"status\"}\n          <StatusFilter\n            statuses={current.statuses}\n            multiple={current.multiple ?? true}\n            placeholder={current.label ?? current.placeholder ?? \"Status\"}\n            value={(draftValues[id] ?? filterValues[id]) as any}\n            brightBackground={theme !== \"dark\"}\n            onChange={(value) => handleStatusChange(current, value)}\n          />\n        {/if}\n      {/each}\n    </div>\n  </div>\n{/if}\n\n<style lang=\"less\">\n  .table-filters {\n    display: flex;\n    gap: 1.2rem;\n    align-items: flex-end;\n    margin-bottom: 1.2rem;\n    height: fit-content !important;\n    flex-wrap: wrap;\n    row-gap: 0.6rem;\n  }\n</style>\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nexport default throttle;\n","/**\n * simplebar-core - v1.3.2\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport debounce from 'lodash-es/debounce.js';\nimport throttle from 'lodash-es/throttle.js';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\n\nfunction getElementWindow$1(element) {\n    if (!element ||\n        !element.ownerDocument ||\n        !element.ownerDocument.defaultView) {\n        return window;\n    }\n    return element.ownerDocument.defaultView;\n}\nfunction getElementDocument$1(element) {\n    if (!element || !element.ownerDocument) {\n        return document;\n    }\n    return element.ownerDocument;\n}\n// Helper function to retrieve options from element attributes\nvar getOptions$1 = function (obj) {\n    var initialObj = {};\n    var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n        var option = attribute.name.match(/data-simplebar-(.+)/);\n        if (option) {\n            var key = option[1].replace(/\\W+(.)/g, function (_, chr) { return chr.toUpperCase(); });\n            switch (attribute.value) {\n                case 'true':\n                    acc[key] = true;\n                    break;\n                case 'false':\n                    acc[key] = false;\n                    break;\n                case undefined:\n                    acc[key] = true;\n                    break;\n                default:\n                    acc[key] = attribute.value;\n            }\n        }\n        return acc;\n    }, initialObj);\n    return options;\n};\nfunction addClasses$1(el, classes) {\n    var _a;\n    if (!el)\n        return;\n    (_a = el.classList).add.apply(_a, classes.split(' '));\n}\nfunction removeClasses$1(el, classes) {\n    if (!el)\n        return;\n    classes.split(' ').forEach(function (className) {\n        el.classList.remove(className);\n    });\n}\nfunction classNamesToQuery$1(classNames) {\n    return \".\".concat(classNames.split(' ').join('.'));\n}\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n    window.document &&\n    window.document.createElement);\n\nvar helpers = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    addClasses: addClasses$1,\n    canUseDOM: canUseDOM,\n    classNamesToQuery: classNamesToQuery$1,\n    getElementDocument: getElementDocument$1,\n    getElementWindow: getElementWindow$1,\n    getOptions: getOptions$1,\n    removeClasses: removeClasses$1\n});\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\nif (canUseDOM) {\n    window.addEventListener('resize', function () {\n        if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n            cachedDevicePixelRatio = window.devicePixelRatio;\n            cachedScrollbarWidth = null;\n        }\n    });\n}\nfunction scrollbarWidth() {\n    if (cachedScrollbarWidth === null) {\n        if (typeof document === 'undefined') {\n            cachedScrollbarWidth = 0;\n            return cachedScrollbarWidth;\n        }\n        var body = document.body;\n        var box = document.createElement('div');\n        box.classList.add('simplebar-hide-scrollbar');\n        body.appendChild(box);\n        var width = box.getBoundingClientRect().right;\n        body.removeChild(box);\n        cachedScrollbarWidth = width;\n    }\n    return cachedScrollbarWidth;\n}\n\nvar getElementWindow = getElementWindow$1, getElementDocument = getElementDocument$1, getOptions = getOptions$1, addClasses = addClasses$1, removeClasses = removeClasses$1, classNamesToQuery = classNamesToQuery$1;\nvar SimpleBarCore = /** @class */ (function () {\n    function SimpleBarCore(element, options) {\n        if (options === void 0) { options = {}; }\n        var _this = this;\n        this.removePreventClickId = null;\n        this.minScrollbarWidth = 20;\n        this.stopScrollDelay = 175;\n        this.isScrolling = false;\n        this.isMouseEntering = false;\n        this.isDragging = false;\n        this.scrollXTicking = false;\n        this.scrollYTicking = false;\n        this.wrapperEl = null;\n        this.contentWrapperEl = null;\n        this.contentEl = null;\n        this.offsetEl = null;\n        this.maskEl = null;\n        this.placeholderEl = null;\n        this.heightAutoObserverWrapperEl = null;\n        this.heightAutoObserverEl = null;\n        this.rtlHelpers = null;\n        this.scrollbarWidth = 0;\n        this.resizeObserver = null;\n        this.mutationObserver = null;\n        this.elStyles = null;\n        this.isRtl = null;\n        this.mouseX = 0;\n        this.mouseY = 0;\n        this.onMouseMove = function () { };\n        this.onWindowResize = function () { };\n        this.onStopScrolling = function () { };\n        this.onMouseEntered = function () { };\n        /**\n         * On scroll event handling\n         */\n        this.onScroll = function () {\n            var elWindow = getElementWindow(_this.el);\n            if (!_this.scrollXTicking) {\n                elWindow.requestAnimationFrame(_this.scrollX);\n                _this.scrollXTicking = true;\n            }\n            if (!_this.scrollYTicking) {\n                elWindow.requestAnimationFrame(_this.scrollY);\n                _this.scrollYTicking = true;\n            }\n            if (!_this.isScrolling) {\n                _this.isScrolling = true;\n                addClasses(_this.el, _this.classNames.scrolling);\n            }\n            _this.showScrollbar('x');\n            _this.showScrollbar('y');\n            _this.onStopScrolling();\n        };\n        this.scrollX = function () {\n            if (_this.axis.x.isOverflowing) {\n                _this.positionScrollbar('x');\n            }\n            _this.scrollXTicking = false;\n        };\n        this.scrollY = function () {\n            if (_this.axis.y.isOverflowing) {\n                _this.positionScrollbar('y');\n            }\n            _this.scrollYTicking = false;\n        };\n        this._onStopScrolling = function () {\n            removeClasses(_this.el, _this.classNames.scrolling);\n            if (_this.options.autoHide) {\n                _this.hideScrollbar('x');\n                _this.hideScrollbar('y');\n            }\n            _this.isScrolling = false;\n        };\n        this.onMouseEnter = function () {\n            if (!_this.isMouseEntering) {\n                addClasses(_this.el, _this.classNames.mouseEntered);\n                _this.showScrollbar('x');\n                _this.showScrollbar('y');\n                _this.isMouseEntering = true;\n            }\n            _this.onMouseEntered();\n        };\n        this._onMouseEntered = function () {\n            removeClasses(_this.el, _this.classNames.mouseEntered);\n            if (_this.options.autoHide) {\n                _this.hideScrollbar('x');\n                _this.hideScrollbar('y');\n            }\n            _this.isMouseEntering = false;\n        };\n        this._onMouseMove = function (e) {\n            _this.mouseX = e.clientX;\n            _this.mouseY = e.clientY;\n            if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n                _this.onMouseMoveForAxis('x');\n            }\n            if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n                _this.onMouseMoveForAxis('y');\n            }\n        };\n        this.onMouseLeave = function () {\n            _this.onMouseMove.cancel();\n            if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n                _this.onMouseLeaveForAxis('x');\n            }\n            if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n                _this.onMouseLeaveForAxis('y');\n            }\n            _this.mouseX = -1;\n            _this.mouseY = -1;\n        };\n        this._onWindowResize = function () {\n            // Recalculate scrollbarWidth in case it's a zoom\n            _this.scrollbarWidth = _this.getScrollbarWidth();\n            _this.hideNativeScrollbar();\n        };\n        this.onPointerEvent = function (e) {\n            if (!_this.axis.x.track.el ||\n                !_this.axis.y.track.el ||\n                !_this.axis.x.scrollbar.el ||\n                !_this.axis.y.scrollbar.el)\n                return;\n            var isWithinTrackXBounds, isWithinTrackYBounds;\n            _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n            _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n            if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n                isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n            }\n            if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n                isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n            }\n            // If any pointer event is called on the scrollbar\n            if (isWithinTrackXBounds || isWithinTrackYBounds) {\n                // Prevent event leaking\n                e.stopPropagation();\n                if (e.type === 'pointerdown' && e.pointerType !== 'touch') {\n                    if (isWithinTrackXBounds) {\n                        _this.axis.x.scrollbar.rect =\n                            _this.axis.x.scrollbar.el.getBoundingClientRect();\n                        if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n                            _this.onDragStart(e, 'x');\n                        }\n                        else {\n                            _this.onTrackClick(e, 'x');\n                        }\n                    }\n                    if (isWithinTrackYBounds) {\n                        _this.axis.y.scrollbar.rect =\n                            _this.axis.y.scrollbar.el.getBoundingClientRect();\n                        if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n                            _this.onDragStart(e, 'y');\n                        }\n                        else {\n                            _this.onTrackClick(e, 'y');\n                        }\n                    }\n                }\n            }\n        };\n        /**\n         * Drag scrollbar handle\n         */\n        this.drag = function (e) {\n            var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n            if (!_this.draggedAxis || !_this.contentWrapperEl)\n                return;\n            var eventOffset;\n            var track = _this.axis[_this.draggedAxis].track;\n            var trackSize = (_b = (_a = track.rect) === null || _a === void 0 ? void 0 : _a[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _b !== void 0 ? _b : 0;\n            var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n            var contentSize = (_d = (_c = _this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c[_this.axis[_this.draggedAxis].scrollSizeAttr]) !== null && _d !== void 0 ? _d : 0;\n            var hostSize = parseInt((_f = (_e = _this.elStyles) === null || _e === void 0 ? void 0 : _e[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _f !== void 0 ? _f : '0px', 10);\n            e.preventDefault();\n            e.stopPropagation();\n            if (_this.draggedAxis === 'y') {\n                eventOffset = e.pageY;\n            }\n            else {\n                eventOffset = e.pageX;\n            }\n            // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n            var dragPos = eventOffset -\n                ((_h = (_g = track.rect) === null || _g === void 0 ? void 0 : _g[_this.axis[_this.draggedAxis].offsetAttr]) !== null && _h !== void 0 ? _h : 0) -\n                _this.axis[_this.draggedAxis].dragOffset;\n            dragPos =\n                _this.draggedAxis === 'x' && _this.isRtl\n                    ? ((_k = (_j = track.rect) === null || _j === void 0 ? void 0 : _j[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _k !== void 0 ? _k : 0) -\n                        scrollbar.size -\n                        dragPos\n                    : dragPos;\n            // Convert the mouse position into a percentage of the scrollbar height/width.\n            var dragPerc = dragPos / (trackSize - scrollbar.size);\n            // Scroll the content by the same percentage.\n            var scrollPos = dragPerc * (contentSize - hostSize);\n            // Fix browsers inconsistency on RTL\n            if (_this.draggedAxis === 'x' && _this.isRtl) {\n                scrollPos = ((_l = SimpleBarCore.getRtlHelpers()) === null || _l === void 0 ? void 0 : _l.isScrollingToNegative)\n                    ? -scrollPos\n                    : scrollPos;\n            }\n            _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] =\n                scrollPos;\n        };\n        /**\n         * End scroll handle drag\n         */\n        this.onEndDrag = function (e) {\n            _this.isDragging = false;\n            var elDocument = getElementDocument(_this.el);\n            var elWindow = getElementWindow(_this.el);\n            e.preventDefault();\n            e.stopPropagation();\n            removeClasses(_this.el, _this.classNames.dragging);\n            _this.onStopScrolling();\n            elDocument.removeEventListener('mousemove', _this.drag, true);\n            elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n            _this.removePreventClickId = elWindow.setTimeout(function () {\n                // Remove these asynchronously so we still suppress click events\n                // generated simultaneously with mouseup.\n                elDocument.removeEventListener('click', _this.preventClick, true);\n                elDocument.removeEventListener('dblclick', _this.preventClick, true);\n                _this.removePreventClickId = null;\n            });\n        };\n        /**\n         * Handler to ignore click events during drag\n         */\n        this.preventClick = function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n        };\n        this.el = element;\n        this.options = __assign(__assign({}, SimpleBarCore.defaultOptions), options);\n        this.classNames = __assign(__assign({}, SimpleBarCore.defaultOptions.classNames), options.classNames);\n        this.axis = {\n            x: {\n                scrollOffsetAttr: 'scrollLeft',\n                sizeAttr: 'width',\n                scrollSizeAttr: 'scrollWidth',\n                offsetSizeAttr: 'offsetWidth',\n                offsetAttr: 'left',\n                overflowAttr: 'overflowX',\n                dragOffset: 0,\n                isOverflowing: true,\n                forceVisible: false,\n                track: { size: null, el: null, rect: null, isVisible: false },\n                scrollbar: { size: null, el: null, rect: null, isVisible: false }\n            },\n            y: {\n                scrollOffsetAttr: 'scrollTop',\n                sizeAttr: 'height',\n                scrollSizeAttr: 'scrollHeight',\n                offsetSizeAttr: 'offsetHeight',\n                offsetAttr: 'top',\n                overflowAttr: 'overflowY',\n                dragOffset: 0,\n                isOverflowing: true,\n                forceVisible: false,\n                track: { size: null, el: null, rect: null, isVisible: false },\n                scrollbar: { size: null, el: null, rect: null, isVisible: false }\n            }\n        };\n        if (typeof this.el !== 'object' || !this.el.nodeName) {\n            throw new Error(\"Argument passed to SimpleBar must be an HTML element instead of \".concat(this.el));\n        }\n        this.onMouseMove = throttle(this._onMouseMove, 64);\n        this.onWindowResize = debounce(this._onWindowResize, 64, { leading: true });\n        this.onStopScrolling = debounce(this._onStopScrolling, this.stopScrollDelay);\n        this.onMouseEntered = debounce(this._onMouseEntered, this.stopScrollDelay);\n        this.init();\n    }\n    /**\n     * Helper to fix browsers inconsistency on RTL:\n     *  - Firefox inverts the scrollbar initial position\n     *  - IE11 inverts both scrollbar position and scrolling offset\n     * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n     */\n    SimpleBarCore.getRtlHelpers = function () {\n        if (SimpleBarCore.rtlHelpers) {\n            return SimpleBarCore.rtlHelpers;\n        }\n        var dummyDiv = document.createElement('div');\n        dummyDiv.innerHTML =\n            '<div class=\"simplebar-dummy-scrollbar-size\"><div></div></div>';\n        var scrollbarDummyEl = dummyDiv.firstElementChild;\n        var dummyChild = scrollbarDummyEl === null || scrollbarDummyEl === void 0 ? void 0 : scrollbarDummyEl.firstElementChild;\n        if (!dummyChild)\n            return null;\n        document.body.appendChild(scrollbarDummyEl);\n        scrollbarDummyEl.scrollLeft = 0;\n        var dummyContainerOffset = SimpleBarCore.getOffset(scrollbarDummyEl);\n        var dummyChildOffset = SimpleBarCore.getOffset(dummyChild);\n        scrollbarDummyEl.scrollLeft = -999;\n        var dummyChildOffsetAfterScroll = SimpleBarCore.getOffset(dummyChild);\n        document.body.removeChild(scrollbarDummyEl);\n        SimpleBarCore.rtlHelpers = {\n            // determines if the scrolling is responding with negative values\n            isScrollOriginAtZero: dummyContainerOffset.left !== dummyChildOffset.left,\n            // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n            isScrollingToNegative: dummyChildOffset.left !== dummyChildOffsetAfterScroll.left\n        };\n        return SimpleBarCore.rtlHelpers;\n    };\n    SimpleBarCore.prototype.getScrollbarWidth = function () {\n        // Try/catch for FF 56 throwing on undefined computedStyles\n        try {\n            // Detect browsers supporting CSS scrollbar styling and do not calculate\n            if ((this.contentWrapperEl &&\n                getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n                    .display === 'none') ||\n                'scrollbarWidth' in document.documentElement.style ||\n                '-ms-overflow-style' in document.documentElement.style) {\n                return 0;\n            }\n            else {\n                return scrollbarWidth();\n            }\n        }\n        catch (e) {\n            return scrollbarWidth();\n        }\n    };\n    SimpleBarCore.getOffset = function (el) {\n        var rect = el.getBoundingClientRect();\n        var elDocument = getElementDocument(el);\n        var elWindow = getElementWindow(el);\n        return {\n            top: rect.top +\n                (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n            left: rect.left +\n                (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n        };\n    };\n    SimpleBarCore.prototype.init = function () {\n        // We stop here on server-side\n        if (canUseDOM) {\n            this.initDOM();\n            this.rtlHelpers = SimpleBarCore.getRtlHelpers();\n            this.scrollbarWidth = this.getScrollbarWidth();\n            this.recalculate();\n            this.initListeners();\n        }\n    };\n    SimpleBarCore.prototype.initDOM = function () {\n        var _a, _b;\n        // assume that element has his DOM already initiated\n        this.wrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.wrapper));\n        this.contentWrapperEl =\n            this.options.scrollableNode ||\n                this.el.querySelector(classNamesToQuery(this.classNames.contentWrapper));\n        this.contentEl =\n            this.options.contentNode ||\n                this.el.querySelector(classNamesToQuery(this.classNames.contentEl));\n        this.offsetEl = this.el.querySelector(classNamesToQuery(this.classNames.offset));\n        this.maskEl = this.el.querySelector(classNamesToQuery(this.classNames.mask));\n        this.placeholderEl = this.findChild(this.wrapperEl, classNamesToQuery(this.classNames.placeholder));\n        this.heightAutoObserverWrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverWrapperEl));\n        this.heightAutoObserverEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverEl));\n        this.axis.x.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.horizontal)));\n        this.axis.y.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.vertical)));\n        this.axis.x.scrollbar.el =\n            ((_a = this.axis.x.track.el) === null || _a === void 0 ? void 0 : _a.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n        this.axis.y.scrollbar.el =\n            ((_b = this.axis.y.track.el) === null || _b === void 0 ? void 0 : _b.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n        if (!this.options.autoHide) {\n            addClasses(this.axis.x.scrollbar.el, this.classNames.visible);\n            addClasses(this.axis.y.scrollbar.el, this.classNames.visible);\n        }\n    };\n    SimpleBarCore.prototype.initListeners = function () {\n        var _this = this;\n        var _a;\n        var elWindow = getElementWindow(this.el);\n        // Event listeners\n        this.el.addEventListener('mouseenter', this.onMouseEnter);\n        this.el.addEventListener('pointerdown', this.onPointerEvent, true);\n        this.el.addEventListener('mousemove', this.onMouseMove);\n        this.el.addEventListener('mouseleave', this.onMouseLeave);\n        (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this.onScroll);\n        // Browser zoom triggers a window resize\n        elWindow.addEventListener('resize', this.onWindowResize);\n        if (!this.contentEl)\n            return;\n        if (window.ResizeObserver) {\n            // Hack for https://github.com/WICG/ResizeObserver/issues/38\n            var resizeObserverStarted_1 = false;\n            var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n            this.resizeObserver = new resizeObserver(function () {\n                if (!resizeObserverStarted_1)\n                    return;\n                elWindow.requestAnimationFrame(function () {\n                    _this.recalculate();\n                });\n            });\n            this.resizeObserver.observe(this.el);\n            this.resizeObserver.observe(this.contentEl);\n            elWindow.requestAnimationFrame(function () {\n                resizeObserverStarted_1 = true;\n            });\n        }\n        // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n        this.mutationObserver = new elWindow.MutationObserver(function () {\n            elWindow.requestAnimationFrame(function () {\n                _this.recalculate();\n            });\n        });\n        this.mutationObserver.observe(this.contentEl, {\n            childList: true,\n            subtree: true,\n            characterData: true\n        });\n    };\n    SimpleBarCore.prototype.recalculate = function () {\n        if (!this.heightAutoObserverEl ||\n            !this.contentEl ||\n            !this.contentWrapperEl ||\n            !this.wrapperEl ||\n            !this.placeholderEl)\n            return;\n        var elWindow = getElementWindow(this.el);\n        this.elStyles = elWindow.getComputedStyle(this.el);\n        this.isRtl = this.elStyles.direction === 'rtl';\n        var contentElOffsetWidth = this.contentEl.offsetWidth;\n        var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n        var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1 || contentElOffsetWidth > 0;\n        var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n        var elOverflowX = this.elStyles.overflowX;\n        var elOverflowY = this.elStyles.overflowY;\n        this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n        this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n        var contentElScrollHeight = this.contentEl.scrollHeight;\n        var contentElScrollWidth = this.contentEl.scrollWidth;\n        this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n        // Determine placeholder size\n        this.placeholderEl.style.width = isWidthAuto\n            ? \"\".concat(contentElOffsetWidth || contentElScrollWidth, \"px\")\n            : 'auto';\n        this.placeholderEl.style.height = \"\".concat(contentElScrollHeight, \"px\");\n        var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n        this.axis.x.isOverflowing =\n            contentElOffsetWidth !== 0 && contentElScrollWidth > contentElOffsetWidth;\n        this.axis.y.isOverflowing =\n            contentElScrollHeight > contentWrapperElOffsetHeight;\n        // Set isOverflowing to false if user explicitely set hidden overflow\n        this.axis.x.isOverflowing =\n            elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n        this.axis.y.isOverflowing =\n            elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n        this.axis.x.forceVisible =\n            this.options.forceVisible === 'x' || this.options.forceVisible === true;\n        this.axis.y.forceVisible =\n            this.options.forceVisible === 'y' || this.options.forceVisible === true;\n        this.hideNativeScrollbar();\n        // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n        var offsetForXScrollbar = this.axis.x.isOverflowing\n            ? this.scrollbarWidth\n            : 0;\n        var offsetForYScrollbar = this.axis.y.isOverflowing\n            ? this.scrollbarWidth\n            : 0;\n        this.axis.x.isOverflowing =\n            this.axis.x.isOverflowing &&\n                contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n        this.axis.y.isOverflowing =\n            this.axis.y.isOverflowing &&\n                contentElScrollHeight >\n                    contentWrapperElOffsetHeight - offsetForXScrollbar;\n        this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n        this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n        if (this.axis.x.scrollbar.el)\n            this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n        if (this.axis.y.scrollbar.el)\n            this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n        this.positionScrollbar('x');\n        this.positionScrollbar('y');\n        this.toggleTrackVisibility('x');\n        this.toggleTrackVisibility('y');\n    };\n    /**\n     * Calculate scrollbar size\n     */\n    SimpleBarCore.prototype.getScrollbarSize = function (axis) {\n        var _a, _b;\n        if (axis === void 0) { axis = 'y'; }\n        if (!this.axis[axis].isOverflowing || !this.contentEl) {\n            return 0;\n        }\n        var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n        var trackSize = (_b = (_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) !== null && _b !== void 0 ? _b : 0;\n        var scrollbarRatio = trackSize / contentSize;\n        var scrollbarSize;\n        // Calculate new height/position of drag handle.\n        scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n        if (this.options.scrollbarMaxSize) {\n            scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n        }\n        return scrollbarSize;\n    };\n    SimpleBarCore.prototype.positionScrollbar = function (axis) {\n        var _a, _b, _c;\n        if (axis === void 0) { axis = 'y'; }\n        var scrollbar = this.axis[axis].scrollbar;\n        if (!this.axis[axis].isOverflowing ||\n            !this.contentWrapperEl ||\n            !scrollbar.el ||\n            !this.elStyles) {\n            return;\n        }\n        var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n        var trackSize = ((_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) || 0;\n        var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n        var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n        scrollOffset =\n            axis === 'x' &&\n                this.isRtl &&\n                ((_b = SimpleBarCore.getRtlHelpers()) === null || _b === void 0 ? void 0 : _b.isScrollOriginAtZero)\n                ? -scrollOffset\n                : scrollOffset;\n        if (axis === 'x' && this.isRtl) {\n            scrollOffset = ((_c = SimpleBarCore.getRtlHelpers()) === null || _c === void 0 ? void 0 : _c.isScrollingToNegative)\n                ? scrollOffset\n                : -scrollOffset;\n        }\n        var scrollPourcent = scrollOffset / (contentSize - hostSize);\n        var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n        handleOffset =\n            axis === 'x' && this.isRtl\n                ? -handleOffset + (trackSize - scrollbar.size)\n                : handleOffset;\n        scrollbar.el.style.transform =\n            axis === 'x'\n                ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\")\n                : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n    };\n    SimpleBarCore.prototype.toggleTrackVisibility = function (axis) {\n        if (axis === void 0) { axis = 'y'; }\n        var track = this.axis[axis].track.el;\n        var scrollbar = this.axis[axis].scrollbar.el;\n        if (!track || !scrollbar || !this.contentWrapperEl)\n            return;\n        if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n            track.style.visibility = 'visible';\n            this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n            this.el.classList.add(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n        }\n        else {\n            track.style.visibility = 'hidden';\n            this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n            this.el.classList.remove(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n        }\n        // Even if forceVisible is enabled, scrollbar itself should be hidden\n        if (this.axis[axis].isOverflowing) {\n            scrollbar.style.display = 'block';\n        }\n        else {\n            scrollbar.style.display = 'none';\n        }\n    };\n    SimpleBarCore.prototype.showScrollbar = function (axis) {\n        if (axis === void 0) { axis = 'y'; }\n        if (this.axis[axis].isOverflowing && !this.axis[axis].scrollbar.isVisible) {\n            addClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n            this.axis[axis].scrollbar.isVisible = true;\n        }\n    };\n    SimpleBarCore.prototype.hideScrollbar = function (axis) {\n        if (axis === void 0) { axis = 'y'; }\n        if (this.isDragging)\n            return;\n        if (this.axis[axis].isOverflowing && this.axis[axis].scrollbar.isVisible) {\n            removeClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n            this.axis[axis].scrollbar.isVisible = false;\n        }\n    };\n    SimpleBarCore.prototype.hideNativeScrollbar = function () {\n        if (!this.offsetEl)\n            return;\n        this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n            this.axis.y.isOverflowing || this.axis.y.forceVisible\n                ? \"-\".concat(this.scrollbarWidth, \"px\")\n                : '0px';\n        this.offsetEl.style.bottom =\n            this.axis.x.isOverflowing || this.axis.x.forceVisible\n                ? \"-\".concat(this.scrollbarWidth, \"px\")\n                : '0px';\n    };\n    SimpleBarCore.prototype.onMouseMoveForAxis = function (axis) {\n        if (axis === void 0) { axis = 'y'; }\n        var currentAxis = this.axis[axis];\n        if (!currentAxis.track.el || !currentAxis.scrollbar.el)\n            return;\n        currentAxis.track.rect = currentAxis.track.el.getBoundingClientRect();\n        currentAxis.scrollbar.rect =\n            currentAxis.scrollbar.el.getBoundingClientRect();\n        if (this.isWithinBounds(currentAxis.track.rect)) {\n            this.showScrollbar(axis);\n            addClasses(currentAxis.track.el, this.classNames.hover);\n            if (this.isWithinBounds(currentAxis.scrollbar.rect)) {\n                addClasses(currentAxis.scrollbar.el, this.classNames.hover);\n            }\n            else {\n                removeClasses(currentAxis.scrollbar.el, this.classNames.hover);\n            }\n        }\n        else {\n            removeClasses(currentAxis.track.el, this.classNames.hover);\n            if (this.options.autoHide) {\n                this.hideScrollbar(axis);\n            }\n        }\n    };\n    SimpleBarCore.prototype.onMouseLeaveForAxis = function (axis) {\n        if (axis === void 0) { axis = 'y'; }\n        removeClasses(this.axis[axis].track.el, this.classNames.hover);\n        removeClasses(this.axis[axis].scrollbar.el, this.classNames.hover);\n        if (this.options.autoHide) {\n            this.hideScrollbar(axis);\n        }\n    };\n    /**\n     * on scrollbar handle drag movement starts\n     */\n    SimpleBarCore.prototype.onDragStart = function (e, axis) {\n        var _a;\n        if (axis === void 0) { axis = 'y'; }\n        this.isDragging = true;\n        var elDocument = getElementDocument(this.el);\n        var elWindow = getElementWindow(this.el);\n        var scrollbar = this.axis[axis].scrollbar;\n        // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n        var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n        this.axis[axis].dragOffset =\n            eventOffset - (((_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) || 0);\n        this.draggedAxis = axis;\n        addClasses(this.el, this.classNames.dragging);\n        elDocument.addEventListener('mousemove', this.drag, true);\n        elDocument.addEventListener('mouseup', this.onEndDrag, true);\n        if (this.removePreventClickId === null) {\n            elDocument.addEventListener('click', this.preventClick, true);\n            elDocument.addEventListener('dblclick', this.preventClick, true);\n        }\n        else {\n            elWindow.clearTimeout(this.removePreventClickId);\n            this.removePreventClickId = null;\n        }\n    };\n    SimpleBarCore.prototype.onTrackClick = function (e, axis) {\n        var _this = this;\n        var _a, _b, _c, _d;\n        if (axis === void 0) { axis = 'y'; }\n        var currentAxis = this.axis[axis];\n        if (!this.options.clickOnTrack ||\n            !currentAxis.scrollbar.el ||\n            !this.contentWrapperEl)\n            return;\n        // Preventing the event's default to trigger click underneath\n        e.preventDefault();\n        var elWindow = getElementWindow(this.el);\n        this.axis[axis].scrollbar.rect =\n            currentAxis.scrollbar.el.getBoundingClientRect();\n        var scrollbar = this.axis[axis].scrollbar;\n        var scrollbarOffset = (_b = (_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) !== null && _b !== void 0 ? _b : 0;\n        var hostSize = parseInt((_d = (_c = this.elStyles) === null || _c === void 0 ? void 0 : _c[this.axis[axis].sizeAttr]) !== null && _d !== void 0 ? _d : '0px', 10);\n        var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n        var t = axis === 'y'\n            ? this.mouseY - scrollbarOffset\n            : this.mouseX - scrollbarOffset;\n        var dir = t < 0 ? -1 : 1;\n        var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n        var speed = 40;\n        var scrollTo = function () {\n            if (!_this.contentWrapperEl)\n                return;\n            if (dir === -1) {\n                if (scrolled > scrollSize) {\n                    scrolled -= speed;\n                    _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n                    elWindow.requestAnimationFrame(scrollTo);\n                }\n            }\n            else {\n                if (scrolled < scrollSize) {\n                    scrolled += speed;\n                    _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n                    elWindow.requestAnimationFrame(scrollTo);\n                }\n            }\n        };\n        scrollTo();\n    };\n    /**\n     * Getter for content element\n     */\n    SimpleBarCore.prototype.getContentElement = function () {\n        return this.contentEl;\n    };\n    /**\n     * Getter for original scrolling element\n     */\n    SimpleBarCore.prototype.getScrollElement = function () {\n        return this.contentWrapperEl;\n    };\n    SimpleBarCore.prototype.removeListeners = function () {\n        var elWindow = getElementWindow(this.el);\n        // Event listeners\n        this.el.removeEventListener('mouseenter', this.onMouseEnter);\n        this.el.removeEventListener('pointerdown', this.onPointerEvent, true);\n        this.el.removeEventListener('mousemove', this.onMouseMove);\n        this.el.removeEventListener('mouseleave', this.onMouseLeave);\n        if (this.contentWrapperEl) {\n            this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n        }\n        elWindow.removeEventListener('resize', this.onWindowResize);\n        if (this.mutationObserver) {\n            this.mutationObserver.disconnect();\n        }\n        if (this.resizeObserver) {\n            this.resizeObserver.disconnect();\n        }\n        // Cancel all debounced functions\n        this.onMouseMove.cancel();\n        this.onWindowResize.cancel();\n        this.onStopScrolling.cancel();\n        this.onMouseEntered.cancel();\n    };\n    /**\n     * Remove all listeners from DOM nodes\n     */\n    SimpleBarCore.prototype.unMount = function () {\n        this.removeListeners();\n    };\n    /**\n     * Check if mouse is within bounds\n     */\n    SimpleBarCore.prototype.isWithinBounds = function (bbox) {\n        return (this.mouseX >= bbox.left &&\n            this.mouseX <= bbox.left + bbox.width &&\n            this.mouseY >= bbox.top &&\n            this.mouseY <= bbox.top + bbox.height);\n    };\n    /**\n     * Find element children matches query\n     */\n    SimpleBarCore.prototype.findChild = function (el, query) {\n        var matches = el.matches ||\n            el.webkitMatchesSelector ||\n            el.mozMatchesSelector ||\n            el.msMatchesSelector;\n        return Array.prototype.filter.call(el.children, function (child) {\n            return matches.call(child, query);\n        })[0];\n    };\n    SimpleBarCore.rtlHelpers = null;\n    SimpleBarCore.defaultOptions = {\n        forceVisible: false,\n        clickOnTrack: true,\n        scrollbarMinSize: 25,\n        scrollbarMaxSize: 0,\n        ariaLabel: 'scrollable content',\n        tabIndex: 0,\n        classNames: {\n            contentEl: 'simplebar-content',\n            contentWrapper: 'simplebar-content-wrapper',\n            offset: 'simplebar-offset',\n            mask: 'simplebar-mask',\n            wrapper: 'simplebar-wrapper',\n            placeholder: 'simplebar-placeholder',\n            scrollbar: 'simplebar-scrollbar',\n            track: 'simplebar-track',\n            heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n            heightAutoObserverEl: 'simplebar-height-auto-observer',\n            visible: 'simplebar-visible',\n            horizontal: 'simplebar-horizontal',\n            vertical: 'simplebar-vertical',\n            hover: 'simplebar-hover',\n            dragging: 'simplebar-dragging',\n            scrolling: 'simplebar-scrolling',\n            scrollable: 'simplebar-scrollable',\n            mouseEntered: 'simplebar-mouse-entered'\n        },\n        scrollableNode: null,\n        contentNode: null,\n        autoHide: true\n    };\n    /**\n     * Static functions\n     */\n    SimpleBarCore.getOptions = getOptions;\n    SimpleBarCore.helpers = helpers;\n    return SimpleBarCore;\n}());\n\nexport { SimpleBarCore as default };\n//# sourceMappingURL=index.mjs.map\n","/**\n * simplebar - v6.3.3\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport SimpleBarCore from 'simplebar-core';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar _a = SimpleBarCore.helpers, getOptions = _a.getOptions, addClasses = _a.addClasses, canUseDOM = _a.canUseDOM;\nvar SimpleBar = /** @class */ (function (_super) {\n    __extends(SimpleBar, _super);\n    function SimpleBar() {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var _this = _super.apply(this, args) || this;\n        // // Save a reference to the instance, so we know this DOM node has already been instancied\n        SimpleBar.instances.set(args[0], _this);\n        return _this;\n    }\n    SimpleBar.initDOMLoadedElements = function () {\n        document.removeEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n        window.removeEventListener('load', this.initDOMLoadedElements);\n        Array.prototype.forEach.call(document.querySelectorAll('[data-simplebar]'), function (el) {\n            if (el.getAttribute('data-simplebar') !== 'init' &&\n                !SimpleBar.instances.has(el))\n                new SimpleBar(el, getOptions(el.attributes));\n        });\n    };\n    SimpleBar.removeObserver = function () {\n        var _a;\n        (_a = SimpleBar.globalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n    };\n    SimpleBar.prototype.initDOM = function () {\n        var _this = this;\n        var _a, _b, _c;\n        // make sure this element doesn't have the elements yet\n        if (!Array.prototype.filter.call(this.el.children, function (child) {\n            return child.classList.contains(_this.classNames.wrapper);\n        }).length) {\n            // Prepare DOM\n            this.wrapperEl = document.createElement('div');\n            this.contentWrapperEl = document.createElement('div');\n            this.offsetEl = document.createElement('div');\n            this.maskEl = document.createElement('div');\n            this.contentEl = document.createElement('div');\n            this.placeholderEl = document.createElement('div');\n            this.heightAutoObserverWrapperEl = document.createElement('div');\n            this.heightAutoObserverEl = document.createElement('div');\n            addClasses(this.wrapperEl, this.classNames.wrapper);\n            addClasses(this.contentWrapperEl, this.classNames.contentWrapper);\n            addClasses(this.offsetEl, this.classNames.offset);\n            addClasses(this.maskEl, this.classNames.mask);\n            addClasses(this.contentEl, this.classNames.contentEl);\n            addClasses(this.placeholderEl, this.classNames.placeholder);\n            addClasses(this.heightAutoObserverWrapperEl, this.classNames.heightAutoObserverWrapperEl);\n            addClasses(this.heightAutoObserverEl, this.classNames.heightAutoObserverEl);\n            while (this.el.firstChild) {\n                this.contentEl.appendChild(this.el.firstChild);\n            }\n            this.contentWrapperEl.appendChild(this.contentEl);\n            this.offsetEl.appendChild(this.contentWrapperEl);\n            this.maskEl.appendChild(this.offsetEl);\n            this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n            this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n            this.wrapperEl.appendChild(this.maskEl);\n            this.wrapperEl.appendChild(this.placeholderEl);\n            this.el.appendChild(this.wrapperEl);\n            (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.setAttribute('tabindex', this.options.tabIndex.toString());\n            (_b = this.contentWrapperEl) === null || _b === void 0 ? void 0 : _b.setAttribute('role', 'region');\n            (_c = this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-label', this.options.ariaLabel);\n        }\n        if (!this.axis.x.track.el || !this.axis.y.track.el) {\n            var track = document.createElement('div');\n            var scrollbar = document.createElement('div');\n            addClasses(track, this.classNames.track);\n            addClasses(scrollbar, this.classNames.scrollbar);\n            track.appendChild(scrollbar);\n            this.axis.x.track.el = track.cloneNode(true);\n            addClasses(this.axis.x.track.el, this.classNames.horizontal);\n            this.axis.y.track.el = track.cloneNode(true);\n            addClasses(this.axis.y.track.el, this.classNames.vertical);\n            this.el.appendChild(this.axis.x.track.el);\n            this.el.appendChild(this.axis.y.track.el);\n        }\n        SimpleBarCore.prototype.initDOM.call(this);\n        this.el.setAttribute('data-simplebar', 'init');\n    };\n    SimpleBar.prototype.unMount = function () {\n        SimpleBarCore.prototype.unMount.call(this);\n        SimpleBar.instances[\"delete\"](this.el);\n    };\n    SimpleBar.initHtmlApi = function () {\n        this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this);\n        // MutationObserver is IE11+\n        if (typeof MutationObserver !== 'undefined') {\n            // Mutation observer to observe dynamically added elements\n            this.globalObserver = new MutationObserver(SimpleBar.handleMutations);\n            this.globalObserver.observe(document, { childList: true, subtree: true });\n        }\n        // Taken from jQuery `ready` function\n        // Instantiate elements already present on the page\n        if (document.readyState === 'complete' || // @ts-ignore: IE specific\n            (document.readyState !== 'loading' && !document.documentElement.doScroll)) {\n            // Handle it asynchronously to allow scripts the opportunity to delay init\n            window.setTimeout(this.initDOMLoadedElements);\n        }\n        else {\n            document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n            window.addEventListener('load', this.initDOMLoadedElements);\n        }\n    };\n    SimpleBar.handleMutations = function (mutations) {\n        mutations.forEach(function (mutation) {\n            mutation.addedNodes.forEach(function (addedNode) {\n                if (addedNode.nodeType === 1) {\n                    if (addedNode.hasAttribute('data-simplebar')) {\n                        !SimpleBar.instances.has(addedNode) &&\n                            document.documentElement.contains(addedNode) &&\n                            new SimpleBar(addedNode, getOptions(addedNode.attributes));\n                    }\n                    else {\n                        addedNode\n                            .querySelectorAll('[data-simplebar]')\n                            .forEach(function (el) {\n                            if (el.getAttribute('data-simplebar') !== 'init' &&\n                                !SimpleBar.instances.has(el) &&\n                                document.documentElement.contains(el))\n                                new SimpleBar(el, getOptions(el.attributes));\n                        });\n                    }\n                }\n            });\n            mutation.removedNodes.forEach(function (removedNode) {\n                var _a;\n                if (removedNode.nodeType === 1) {\n                    if (removedNode.getAttribute('data-simplebar') === 'init') {\n                        !document.documentElement.contains(removedNode) &&\n                            ((_a = SimpleBar.instances.get(removedNode)) === null || _a === void 0 ? void 0 : _a.unMount());\n                    }\n                    else {\n                        Array.prototype.forEach.call(removedNode.querySelectorAll('[data-simplebar=\"init\"]'), function (el) {\n                            var _a;\n                            !document.documentElement.contains(el) &&\n                                ((_a = SimpleBar.instances.get(el)) === null || _a === void 0 ? void 0 : _a.unMount());\n                        });\n                    }\n                }\n            });\n        });\n    };\n    SimpleBar.instances = new WeakMap();\n    return SimpleBar;\n}(SimpleBarCore));\n/**\n * HTML API\n * Called only in a browser env.\n */\nif (canUseDOM) {\n    SimpleBar.initHtmlApi();\n}\n\nexport { SimpleBar as default };\n//# sourceMappingURL=index.mjs.map\n","<script lang=\"ts\">\n  import { mdiChevronLeft, mdiChevronRight } from \"@mdi/js\"\n  import Icon from \"../../../../../../../primitives/_modules/icon/index\"\n\n  type Props = {\n    leftAriaLabel?: string\n    rightAriaLabel?: string\n    leftDisabled?: boolean\n    rightDisabled?: boolean\n    onLeftClick?: () => void\n    onRightClick?: () => void\n  }\n\n  let {\n    leftAriaLabel = \"\",\n    rightAriaLabel = \"\",\n    leftDisabled = false,\n    rightDisabled = false,\n    onLeftClick,\n    onRightClick,\n  }: Props = $props()\n\n  const handleLeftClick = (event: MouseEvent) => {\n    event.stopPropagation()\n    onLeftClick?.()\n  }\n\n  const handleRightClick = (event: MouseEvent) => {\n    event.stopPropagation()\n    onRightClick?.()\n  }\n</script>\n\n<div class=\"column-scroll-buttons\">\n  <button\n    type=\"button\"\n    class=\"column-scroll-button\"\n    aria-label={leftAriaLabel}\n    disabled={leftDisabled}\n    onclickcapture={handleLeftClick}\n  >\n    <Icon path={mdiChevronLeft} />\n  </button>\n  <button\n    type=\"button\"\n    class=\"column-scroll-button\"\n    aria-label={rightAriaLabel}\n    disabled={rightDisabled}\n    onclickcapture={handleRightClick}\n  >\n    <Icon path={mdiChevronRight} />\n  </button>\n</div>\n\n<style lang=\"less\">\n  .column-scroll-buttons {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.15rem;\n  }\n\n  .column-scroll-button {\n    border: none;\n    background: transparent;\n    color: var(--dt-text-muted);\n    padding: 0.25rem;\n    border-radius: 999px;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 0.9rem;\n    transition:\n      background-color 0.15s ease,\n      color 0.15s ease,\n      transform 0.05s ease,\n      opacity 0.1s ease;\n\n    &:hover:not(:disabled) {\n      color: var(--dt-accent-soft);\n      background-color: rgba(116, 30, 32, 0.12);\n      transform: translateY(-1px);\n    }\n\n    &:active:not(:disabled) {\n      transform: translateY(0);\n    }\n\n    &:disabled {\n      opacity: 0.3;\n      cursor: default;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { mdiDotsHorizontal } from \"@mdi/js\"\n  import Icon from \"../../../../../../primitives/_modules/icon/index\"\n  import Popover from \"../../../../../../overlay/_modules/popover/index\"\n  import type { PopoverMenuItem } from \"../../../../../../../core/overlay/popover\"\n\n  let {\n    label,\n    items,\n    disabled = false,\n  }: {\n    label: string\n    items: PopoverMenuItem[]\n    disabled?: boolean\n  } = $props()\n</script>\n\n<Popover {label} {items} {disabled}>\n  {#snippet triggerContent()}<Icon path={mdiDotsHorizontal} />{/snippet}\n</Popover>\n","<script lang=\"ts\">\n  import { mdiMinusCircleOutline, mdiPlusCircleOutline, mdiRestore } from \"@mdi/js\"\n  import CTA from \"../../../../../../../../actions/_modules/cta/index\"\n  import type {\n    DataRow,\n    TableRowControlCommand,\n  } from \"../../../../../../../../../core/layout/table\"\n\n  type Props = {\n    row: DataRow\n    rowIndex: number\n    commands?: TableRowControlCommand[] | null\n    darkMode?: boolean\n  }\n\n  let { row, rowIndex, commands = [], darkMode = false }: Props = $props()\n\n  const visibleCommands = $derived((commands ?? []).filter(Boolean))\n\n  const iconFor = (command: TableRowControlCommand) => {\n    if (command.kind === \"restore\") return mdiPlusCircleOutline\n\n    if (command.kind === \"reset\") return mdiRestore\n\n    return mdiMinusCircleOutline\n  }\n\n  const tooltipFor = (command: TableRowControlCommand) => {\n    if (command.tooltip) return command.tooltip\n\n    if (command.kind === \"restore\") return \"Zeile wieder hinzufügen\"\n\n    if (command.kind === \"reset\") return \"Zeile auf Anfangswerte zurücksetzen\"\n\n    return \"Aus diesem Schritt entfernen\"\n  }\n\n  const testIdFor = (command: TableRowControlCommand) => `table.rowControl.${command.kind}`\n\n  const handleCommandClick = (event: MouseEvent, command: TableRowControlCommand) => {\n    event.stopPropagation()\n\n    if (command.disabled || command.pending) return\n\n    void command.onClick?.(row, { rowIndex })\n  }\n</script>\n\n{#if visibleCommands.length}\n  <div class=\"table-row-controls\">\n    {#each visibleCommands as command, index (`${command.kind}-${index}`)}\n      <CTA\n        type=\"tableButton\"\n        icon={iconFor(command)}\n        disabled={Boolean(command.disabled || command.pending)}\n        tooltipContent={tooltipFor(command)}\n        ariaLabel={tooltipFor(command)}\n        {darkMode}\n        dataTestid={testIdFor(command)}\n        onClick={(event) => handleCommandClick(event, command)}\n      />\n    {/each}\n  </div>\n{/if}\n\n<style>\n  .table-row-controls {\n    align-items: center;\n    display: inline-flex;\n    flex: 0 0 auto;\n    flex-wrap: nowrap;\n    gap: 0.25rem;\n  }\n</style>\n","import type {\n  DataRow,\n  TableRowAction,\n  TableRowActionsConfig,\n  TableRowActionsResolver,\n} from \"../../../../../../../core/layout/table\"\n\nexport type ResolvedRowActions = {\n  primary: TableRowAction | null\n  inline: TableRowAction[]\n  menu: TableRowAction[]\n}\nexport type ResolvedRowActionsResolver = (row: DataRow, rowIndex: number) => ResolvedRowActions\nexport const EMPTY_ROW_ACTIONS: ResolvedRowActions = { primary: null, inline: [], menu: [] }\n\nexport function resolveRowActions(\n  actions: TableRowActionsConfig | TableRowActionsResolver | undefined,\n  row: DataRow,\n  rowIndex: number,\n): ResolvedRowActions {\n  if (!actions) return EMPTY_ROW_ACTIONS\n\n  const structured = typeof actions !== \"function\"\n  const configured = structured ? actions.resolve(row, rowIndex) : null\n  const legacy = structured ? [] : (actions(row, rowIndex) ?? [])\n  const primary = configured\n    ? configured.primary?.visible === false\n      ? null\n      : configured.primary\n    : (legacy.find((action) => action.primary && action.visible !== false) ?? null)\n  const secondary = configured\n    ? configured.secondary.filter((action) => action.visible !== false)\n    : legacy.filter((action) => action !== primary && action.visible !== false)\n\n  if (structured) {\n    const ids = [primary, ...secondary]\n      .filter((action) => action !== null)\n      .map((action) => action.id)\n\n    if (new Set(ids).size !== ids.length) throw new Error(\"Table row action ids must be unique.\")\n\n    if (primary && (!primary.icon || primary.tone === \"danger\"))\n      throw new Error(\"A table primary action requires an icon and must not be destructive.\")\n  }\n\n  return {\n    primary,\n    inline: secondary.filter(\n      (action) => action.display === \"inline\" || (!structured && action.primary),\n    ),\n    menu: secondary.filter((action) => action.display !== \"inline\" && !action.primary),\n  }\n}\n\nexport function rowActionsWidth(actions: ResolvedRowActions, controlCount = 0): number {\n  const count =\n    Number(Boolean(actions.primary)) +\n    actions.inline.length +\n    controlCount +\n    Number(actions.menu.length > 0)\n\n  return Math.max(96, count * 32 + Math.max(0, count - 1) * 4 + 26)\n}\n","/** @import { Source } from '#client' */\nimport { DEV } from 'esm-env';\nimport { set, source, state, increment } from '../internal/client/reactivity/sources.js';\nimport { label, tag } from '../internal/client/dev/tracing.js';\nimport { get, update_version } from '../internal/client/runtime.js';\n\n/**\n * A reactive version of the built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) object.\n * Reading contents of the map (by iterating, or by reading `map.size` or calling `map.get(...)` or `map.has(...)` as in the [tic-tac-toe example](https://svelte.dev/playground/0b0ff4aa49c9443f9b47fe5203c78293) below) in an [effect](https://svelte.dev/docs/svelte/$effect) or [derived](https://svelte.dev/docs/svelte/$derived)\n * will cause it to be re-evaluated as necessary when the map is updated.\n *\n * Note that values in a reactive map are _not_ made [deeply reactive](https://svelte.dev/docs/svelte/$state#Deep-state).\n *\n * ```svelte\n * <script>\n * \timport { SvelteMap } from 'svelte/reactivity';\n * \timport { result } from './game.js';\n *\n * \tlet board = new SvelteMap();\n * \tlet player = $state('x');\n * \tlet winner = $derived(result(board));\n *\n * \tfunction reset() {\n * \t\tplayer = 'x';\n * \t\tboard.clear();\n * \t}\n * </script>\n *\n * <div class=\"board\">\n * \t{#each Array(9), i}\n * \t\t<button\n * \t\t\tdisabled={board.has(i) || winner}\n * \t\t\tonclick={() => {\n * \t\t\t\tboard.set(i, player);\n * \t\t\t\tplayer = player === 'x' ? 'o' : 'x';\n * \t\t\t}}\n * \t\t>{board.get(i)}</button>\n * \t{/each}\n * </div>\n *\n * {#if winner}\n * \t<p>{winner} wins!</p>\n * \t<button onclick={reset}>reset</button>\n * {:else}\n * \t<p>{player} is next</p>\n * {/if}\n * ```\n *\n * @template K\n * @template V\n * @extends {Map<K, V>}\n */\nexport class SvelteMap extends Map {\n\t/** @type {Map<K, Source<number>>} */\n\t#sources = new Map();\n\t#version = state(0);\n\t#size = state(0);\n\t#update_version = update_version || -1;\n\n\t/**\n\t * @param {Iterable<readonly [K, V]> | null | undefined} [value]\n\t */\n\tconstructor(value) {\n\t\tsuper();\n\n\t\tif (DEV) {\n\t\t\t// If the value is invalid then the native exception will fire here\n\t\t\tvalue = new Map(value);\n\n\t\t\ttag(this.#version, 'SvelteMap version');\n\t\t\ttag(this.#size, 'SvelteMap.size');\n\t\t}\n\n\t\tif (value) {\n\t\t\tfor (var [key, v] of value) {\n\t\t\t\tsuper.set(key, v);\n\t\t\t}\n\t\t\tthis.#size.v = super.size;\n\t\t}\n\t}\n\n\t/**\n\t * If the source is being created inside the same reaction as the SvelteMap instance,\n\t * we use `state` so that it will not be a dependency of the reaction. Otherwise we\n\t * use `source` so it will be.\n\t *\n\t * @template T\n\t * @param {T} value\n\t * @returns {Source<T>}\n\t */\n\t#source(value) {\n\t\treturn update_version === this.#update_version ? state(value) : source(value);\n\t}\n\n\t/** @param {K} key */\n\thas(key) {\n\t\tvar sources = this.#sources;\n\t\tvar s = sources.get(key);\n\n\t\tif (s === undefined) {\n\t\t\tif (super.has(key)) {\n\t\t\t\ts = this.#source(0);\n\n\t\t\t\tif (DEV) {\n\t\t\t\t\ttag(s, `SvelteMap get(${label(key)})`);\n\t\t\t\t}\n\n\t\t\t\tsources.set(key, s);\n\t\t\t} else {\n\t\t\t\t// We should always track the version in case\n\t\t\t\t// the Set ever gets this value in the future.\n\t\t\t\tget(this.#version);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tget(s);\n\t\treturn true;\n\t}\n\n\t/**\n\t * @param {(value: V, key: K, map: Map<K, V>) => void} callbackfn\n\t * @param {any} [this_arg]\n\t */\n\tforEach(callbackfn, this_arg) {\n\t\tthis.#read_all();\n\t\tsuper.forEach(callbackfn, this_arg);\n\t}\n\n\t/** @param {K} key */\n\tget(key) {\n\t\tvar sources = this.#sources;\n\t\tvar s = sources.get(key);\n\n\t\tif (s === undefined) {\n\t\t\tif (super.has(key)) {\n\t\t\t\ts = this.#source(0);\n\n\t\t\t\tif (DEV) {\n\t\t\t\t\ttag(s, `SvelteMap get(${label(key)})`);\n\t\t\t\t}\n\n\t\t\t\tsources.set(key, s);\n\t\t\t} else {\n\t\t\t\t// We should always track the version in case\n\t\t\t\t// the Set ever gets this value in the future.\n\t\t\t\tget(this.#version);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget(s);\n\t\treturn super.get(key);\n\t}\n\n\t/**\n\t * @param {K} key\n\t * @param {V} value\n\t * */\n\tset(key, value) {\n\t\tvar sources = this.#sources;\n\t\tvar s = sources.get(key);\n\t\tvar prev_res = super.get(key);\n\t\tvar res = super.set(key, value);\n\t\tvar version = this.#version;\n\n\t\tif (s === undefined) {\n\t\t\ts = this.#source(0);\n\n\t\t\tif (DEV) {\n\t\t\t\ttag(s, `SvelteMap get(${label(key)})`);\n\t\t\t}\n\n\t\t\tsources.set(key, s);\n\t\t\tset(this.#size, super.size);\n\t\t\tincrement(version);\n\t\t} else if (prev_res !== value) {\n\t\t\tincrement(s);\n\n\t\t\t// if not every reaction of s is a reaction of version we need to also include version\n\t\t\tvar v_reactions = version.reactions === null ? null : new Set(version.reactions);\n\t\t\tvar needs_version_increase =\n\t\t\t\tv_reactions === null ||\n\t\t\t\t!s.reactions?.every((r) =>\n\t\t\t\t\t/** @type {NonNullable<typeof v_reactions>} */ (v_reactions).has(r)\n\t\t\t\t);\n\t\t\tif (needs_version_increase) {\n\t\t\t\tincrement(version);\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\t/** @param {K} key */\n\tdelete(key) {\n\t\tvar sources = this.#sources;\n\t\tvar s = sources.get(key);\n\t\tvar res = super.delete(key);\n\n\t\tif (s !== undefined) {\n\t\t\tsources.delete(key);\n\t\t\tset(s, -1);\n\t\t}\n\n\t\tif (res) {\n\t\t\tset(this.#size, super.size);\n\t\t\tincrement(this.#version);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tclear() {\n\t\tif (super.size === 0) {\n\t\t\treturn;\n\t\t}\n\t\t// Clear first, so we get nice console.log outputs with $inspect\n\t\tsuper.clear();\n\t\tvar sources = this.#sources;\n\t\tset(this.#size, 0);\n\t\tfor (var s of sources.values()) {\n\t\t\tset(s, -1);\n\t\t}\n\t\tincrement(this.#version);\n\t\tsources.clear();\n\t}\n\n\t#read_all() {\n\t\tget(this.#version);\n\n\t\tvar sources = this.#sources;\n\t\tif (this.#size.v !== sources.size) {\n\t\t\tfor (var key of super.keys()) {\n\t\t\t\tif (!sources.has(key)) {\n\t\t\t\t\tvar s = this.#source(0);\n\t\t\t\t\tif (DEV) {\n\t\t\t\t\t\ttag(s, `SvelteMap get(${label(key)})`);\n\t\t\t\t\t}\n\n\t\t\t\t\tsources.set(key, s);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ([, s] of this.#sources) {\n\t\t\tget(s);\n\t\t}\n\t}\n\n\tkeys() {\n\t\tget(this.#version);\n\t\treturn super.keys();\n\t}\n\n\tvalues() {\n\t\tthis.#read_all();\n\t\treturn super.values();\n\t}\n\n\tentries() {\n\t\tthis.#read_all();\n\t\treturn super.entries();\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\tget size() {\n\t\tget(this.#size);\n\t\treturn super.size;\n\t}\n}\n","import { SvelteMap } from \"svelte/reactivity\"\nimport type { DataRow, TableRowAction } from \"../../../../../../../core/layout/table\"\n\nexport const TABLE_ACTION_STATE = Symbol(\"table-action-state\")\nexport function createTableActionState(getKey: (row: DataRow) => string) {\n  const states = new SvelteMap<string, \"pending\" | \"success\" | \"error\">()\n  const key = (row: DataRow, action: TableRowAction) => JSON.stringify([getKey(row), action.id])\n\n  return {\n    state: (row: DataRow, action: TableRowAction) => states.get(key(row, action)),\n    async run(row: DataRow, rowIndex: number, action: TableRowAction) {\n      const id = key(row, action)\n\n      if (\n        states.get(id) === \"pending\" ||\n        action.pending ||\n        action.disabled ||\n        action.disabledReason\n      )\n        return\n\n      states.set(id, \"pending\")\n\n      try {\n        await action.onClick(row, { rowIndex })\n        states.set(id, \"success\")\n      } catch {\n        states.set(id, \"error\")\n      }\n    },\n  }\n}\nexport type TableActionState = ReturnType<typeof createTableActionState>\n","<script lang=\"ts\">\n  import { getContext } from \"svelte\"\n  import Icon from \"../../../../../../primitives/_modules/icon/index\"\n  import { tooltip, RICH_TOOLTIP_CLASS } from \"../../../../../../../core/overlay/tooltip\"\n  import TableMenu from \"../table-menu/index\"\n  import type {\n    DataRow,\n    TableRowAction,\n    TableRowActionsConfig,\n    TableRowActionsResolver,\n    TableRowControlCommand,\n  } from \"../../../../../../../core/layout/table\"\n  import TableRowControls from \"./_modules/table-row-controls/index\"\n  import {\n    resolveRowActions,\n    type ResolvedRowActionsResolver,\n  } from \"../../_logic/row-actions/index\"\n  import { getRowKey } from \"../../../../../../../core/layout/index\"\n  import {\n    TABLE_ACTION_STATE,\n    createTableActionState,\n    type TableActionState,\n  } from \"../../_logic/action-state/index\"\n\n  let {\n    row,\n    rowIndex,\n    actions,\n    resolved,\n    controls = [],\n    darkMode = true,\n    disabled = false,\n    muted = false,\n    loading = false,\n  }: {\n    row: DataRow\n    rowIndex: number\n    actions?: TableRowActionsConfig | TableRowActionsResolver\n    resolved?: ResolvedRowActionsResolver | TableRowActionsResolver\n    controls?: TableRowControlCommand[]\n    darkMode?: boolean\n    disabled?: boolean\n    muted?: boolean\n    loading?: boolean\n  } = $props()\n  const actionState =\n    getContext<TableActionState>(TABLE_ACTION_STATE) ?? createTableActionState(getRowKey)\n  const actionSet = $derived.by(() => {\n    const value = resolved?.(row, rowIndex)\n\n    return Array.isArray(value)\n      ? resolveRowActions(() => value, row, rowIndex)\n      : (value ?? resolveRowActions(actions, row, rowIndex))\n  })\n  const primary = $derived(actionSet.primary)\n  const inline = $derived(actionSet.inline)\n  const secondary = $derived(actionSet.menu)\n  const visible = $derived([...(primary ? [primary] : []), ...inline, ...secondary])\n  const pending = (action: TableRowAction) =>\n    action.pending || actionState.state(row, action) === \"pending\"\n  const blocked = (action: TableRowAction) =>\n    loading || disabled || action.disabled || Boolean(action.disabledReason) || pending(action)\n  const failed = $derived(visible.some((action) => actionState.state(row, action) === \"error\"))\n  function run(action: TableRowAction) {\n    if (blocked(action)) return\n\n    void actionState.run(row, rowIndex, action)\n  }\n</script>\n\n{#if loading}\n  <div class=\"row-actions-loading\" role=\"status\" aria-label=\"Aktionen werden geladen\">\n    <span aria-hidden=\"true\"></span>\n  </div>\n{:else if !muted || controls.length}\n  <div class=\"row-actions\" role=\"group\" aria-label=\"Aktionen\">\n    {#if primary && !muted}{@render actionButton(primary, true)}{/if}\n    <TableRowControls {row} {rowIndex} commands={controls} {darkMode} />\n    {#if !muted}\n      {#each inline as action (action.id)}{@render actionButton(action, false)}{/each}\n    {/if}\n    {#if secondary.length && !muted}\n      <div class=\"menu\">\n        <TableMenu\n          label=\"Weitere Aktionen\"\n          {disabled}\n          items={secondary.map((action) => ({\n            id: action.id,\n            label: action.label,\n            icon: action.icon,\n            tone: action.tone,\n            disabled: blocked(action),\n            reason: action.disabledReason ?? action.tooltip,\n            tooltipClassName: action.tooltipClassName ?? (action.tooltip ? RICH_TOOLTIP_CLASS : \"\"),\n            testId: action.testId,\n            onClick: () => run(action),\n          }))}\n        />\n      </div>\n    {/if}\n  </div>\n  {#if failed && !muted}<span role=\"alert\">Aktion fehlgeschlagen.</span>{/if}\n{/if}\n\n{#snippet actionButton(action: TableRowAction, isPrimary: boolean)}\n  <button\n    type=\"button\"\n    data-action-id={action.id}\n    class:danger={action.tone === \"danger\"}\n    class:primary={isPrimary}\n    class:is-muted={action.muted}\n    aria-label={action.label}\n    use:tooltip={{\n      content: action.disabledReason ?? action.tooltip ?? action.label,\n      className: action.tooltipClassName ?? (action.tooltip ? RICH_TOOLTIP_CLASS : \"\"),\n    }}\n    disabled={blocked(action)}\n    data-testid={action.testId}\n    aria-busy={pending(action)}\n    onclick={(event) => {\n      event.stopPropagation()\n      run(action)\n    }}\n  >\n    {#if action.icon}<Icon path={action.icon} />{:else}{action.label}{/if}\n  </button>\n{/snippet}\n\n<style>\n  .row-actions-loading {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 32px;\n  }\n  .row-actions-loading span {\n    width: 32px;\n    height: 12px;\n    background: var(--dt-bg-elevated, #eeeeee);\n  }\n  .row-actions {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 4px;\n    width: 100%;\n    min-width: 0;\n    flex-wrap: nowrap;\n    white-space: nowrap;\n  }\n  .menu {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 32px;\n  }\n  button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    min-width: 32px;\n    min-height: 32px;\n    flex: 0 0 32px;\n    border: 0;\n    background: transparent;\n    color: var(--dt-text-main, inherit);\n    cursor: pointer;\n  }\n  button:hover {\n    background: var(--dt-bg-elevated, #eeeeee);\n  }\n  button:focus-visible {\n    outline: 2px solid var(--primary-100, #008c5a);\n    outline-offset: 2px;\n  }\n  button:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  .danger {\n    color: var(--error-100, #b91c1c);\n  }\n  .primary {\n    color: var(--primary-100, #008c5a);\n  }\n  .is-muted {\n    opacity: 0.5;\n  }\n  [role=\"alert\"] {\n    display: block;\n    margin-top: 4px;\n    font-size: 0.75rem;\n    white-space: normal;\n  }\n</style>\n","//#region src/utils.ts\n/**\n* Applies a TanStack updater to a value.\n*\n* If the updater is a function it is called with the previous value; otherwise the updater value is returned directly.\n*/\nfunction functionalUpdate(updater, input) {\n\treturn typeof updater === \"function\" ? updater(input) : updater;\n}\n/**\n* Clones table state values while preserving non-plain objects.\n*\n* Plain objects and arrays are copied recursively so state updates can avoid mutating existing references.\n*/\nfunction cloneState(value) {\n\tif (Array.isArray(value)) return value.map(cloneState);\n\tif (value && typeof value === \"object\") {\n\t\tconst proto = Object.getPrototypeOf(value);\n\t\tif (proto !== Object.prototype && proto !== null) return value;\n\t\tconst copy = proto === null ? makeObjectMap() : {};\n\t\tconst keys = Object.keys(value);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key = keys[i];\n\t\t\tObject.defineProperty(copy, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: cloneState(value[key]),\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t\treturn copy;\n\t}\n\treturn value;\n}\n/**\n* Copies prototype-instance own properties without carrying over lazy memo\n* closures or the per-row cell cache, both of which are bound to the source\n* instance (cached cells reference the source row).\n*/\nfunction copyInstancePropertiesWithoutMemos(target, source) {\n\tconst keys = Object.keys(source);\n\tconst targetRecord = target;\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tif (!key.startsWith(\"_memo_\") && key !== \"_cellsCache\") targetRecord[key] = source[key];\n\t}\n\treturn target;\n}\n/**\n* Creates an object intended only for string-keyed dictionary lookups.\n*\n* The null prototype keeps user-controlled ids such as `__proto__` and\n* `hasOwnProperty` as plain data keys.\n*/\nfunction makeObjectMap() {\n\treturn Object.create(null);\n}\n/**\n* Checks whether an object owns a key, including null-prototype dictionaries.\n*/\nfunction hasOwn(obj, key) {\n\treturn Object.prototype.hasOwnProperty.call(obj, key);\n}\n/**\n* Creates a table state updater for a single state slice.\n*\n* The updater writes through the table base atom for the slice and supports both value and functional updater forms.\n*/\nfunction makeStateUpdater(key, instance) {\n\treturn (updater) => {\n\t\t(instance.options.atoms?.[key] ?? instance.baseAtoms[key]).set((old) => functionalUpdate(updater, old));\n\t};\n}\n/**\n* Checks whether a value is an array or a plain (or null-prototype) object.\n* Class instances, dates, and other exotic values compare by reference only,\n* mirroring the `cloneState` plain-object policy.\n*/\nfunction isPlainContainer(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tif (Array.isArray(value)) return true;\n\tconst proto = Object.getPrototypeOf(value);\n\treturn proto === Object.prototype || proto === null;\n}\n/**\n* Returns every enumerable own key, including symbols and non-index array\n* properties. Keeping key presence explicit distinguishes sparse array holes\n* from entries whose value is `undefined`.\n*/\nfunction getEnumerableOwnKeys(value) {\n\treturn Reflect.ownKeys(value).filter((key) => Object.prototype.propertyIsEnumerable.call(value, key));\n}\nconst MAX_STATE_COMPARE_DEPTH = 3;\n/**\n* Structurally compares two state slice values as deeply as stock feature\n* state can nest and no deeper.\n*\n* Three container levels cover flat maps and arrays, arrays of state objects,\n* array-valued filter values, and `columnResizing.columnSizingStart` tuples.\n* Deeper containers and non-plain values compare by reference. A `false`\n* result is always safe: the state update simply proceeds.\n*/\nfunction stateSlicesEqual(a, b) {\n\treturn stateSlicesEqualAtDepth(a, b, MAX_STATE_COMPARE_DEPTH);\n}\nfunction stateSlicesEqualAtDepth(a, b, depth) {\n\tif (Object.is(a, b)) return true;\n\tif (depth <= 0 || !isPlainContainer(a) || !isPlainContainer(b)) return false;\n\tif (Array.isArray(a) || Array.isArray(b)) {\n\t\tif (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;\n\t}\n\tconst keysA = getEnumerableOwnKeys(a);\n\tconst keysB = getEnumerableOwnKeys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tconst recordA = a;\n\tconst recordB = b;\n\tfor (let i = 0; i < keysA.length; i++) {\n\t\tconst key = keysA[i];\n\t\tif (!Object.prototype.propertyIsEnumerable.call(b, key)) return false;\n\t\tif (!stateSlicesEqualAtDepth(recordA[key], recordB[key], depth - 1)) return false;\n\t}\n\treturn true;\n}\n/**\n* Routes a state slice update through the slice's `on<State>Change` handler,\n* preserving the owner's current reference for structural no-ops.\n*\n* Equality is evaluated inside the updater received by the state owner, never\n* against the table's potentially stale controlled snapshot. This keeps\n* same-tick updates composable in queued host containers such as React state,\n* evaluates the original updater only when the owner applies it, and lets atom\n* owners suppress notifications by returning their existing reference.\n*\n* A user-provided change handler is still invoked for a no-op because only that\n* handler's state container can know its latest queued value. The guarded\n* updater returns that container's previous reference, preventing a state write\n* or render in state containers with identity bailout semantics.\n*\n* Hot-path slices that skip guarding entirely (selection maps that scale with\n* row count, pointer-frequency resize state) call their change handler\n* directly instead of routing through this util. Custom feature slices with a\n* cheaper or semantic-aware comparison can pass `isEqual` to override the\n* structural default.\n*/\nfunction setStateSlice(instance, key, updater, isEqual = stateSlicesEqual) {\n\tconst onChangeKey = `on${key.charAt(0).toUpperCase()}${key.slice(1)}Change`;\n\tconst onChange = instance.options[onChangeKey];\n\tif (!onChange) return;\n\tonChange((current) => {\n\t\tconst next = functionalUpdate(updater, current);\n\t\treturn isEqual(current, next) ? current : next;\n\t});\n}\n/**\n* Returns whether a value is a function.\n*/\nfunction isFunction(d) {\n\treturn d instanceof Function;\n}\n/**\n* Flattens a tree of nodes by recursively reading child nodes.\n*\n* The original nodes are preserved in depth-first order.\n*/\nfunction flattenBy(arr, getChildren) {\n\tconst flat = [];\n\tconst recurse = (subArr) => {\n\t\tsubArr.forEach((item) => {\n\t\t\tflat.push(item);\n\t\t\tconst children = getChildren(item);\n\t\t\tif (children.length) recurse(children);\n\t\t});\n\t};\n\trecurse(arr);\n\treturn flat;\n}\n/**\n* Creates a dependency-tracked memoized function for table internals.\n*\n* The memo recomputes only when its dependency tuple changes and can emit debug timing information.\n*/\nconst memo = ({ fn, memoDeps, onAfterCompare, onAfterUpdate, onBeforeCompare, onBeforeUpdate }) => {\n\tlet deps = [];\n\tlet result;\n\tconst memoizedFn = (depArgs) => {\n\t\tonBeforeCompare?.();\n\t\tconst newDeps = memoDeps?.(depArgs);\n\t\tlet depsChanged = !newDeps || newDeps.length !== deps?.length;\n\t\tif (!depsChanged && newDeps) {\n\t\t\tfor (let i = 0; i < newDeps.length; i++) if (newDeps[i] !== deps[i]) {\n\t\t\t\tdepsChanged = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tonAfterCompare?.(depsChanged);\n\t\tif (!depsChanged) return result;\n\t\tdeps = newDeps;\n\t\tonBeforeUpdate?.();\n\t\tresult = fn(...newDeps ?? []);\n\t\tonAfterUpdate?.(result);\n\t\treturn result;\n\t};\n\treturn memoizedFn;\n};\n/**\n* Wraps a callback so that its first invocation is skipped.\n*\n* Row-model `onAfterUpdate` hooks schedule auto-resets when their inputs\n* change. The initial computation of a row model is not a change, so state\n* resets must not fire for it — otherwise merely reading a row model on mount\n* would wipe initial or controlled state.\n*/\nfunction skipFirstRun(fn) {\n\tlet hasRun = false;\n\treturn () => {\n\t\tif (!hasRun) {\n\t\t\thasRun = true;\n\t\t\treturn;\n\t\t}\n\t\tfn();\n\t};\n}\nconst pad = (str, num) => {\n\tstr = String(str);\n\twhile (str.length < num) str = \" \" + str;\n\treturn str;\n};\n/**\n* Creates a table-aware memoized function.\n*\n* This wraps `memo` with table debug options and feature metadata so row models and derived APIs can share consistent diagnostics.\n*/\nfunction tableMemo({ feature, fnName, objectId, onAfterUpdate, table, ...memoOptions }) {\n\tlet startCalcTime;\n\tlet endCalcTime;\n\tlet runCount = 0;\n\tlet debug;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tconst { debugAll } = table.options;\n\t\tconst { parentName } = getFunctionNameInfo(fnName, \".\");\n\t\tconst debugByParent = table.options[`debug${(parentName != \"table\" ? parentName + \"s\" : parentName).replace(parentName, parentName.charAt(0).toUpperCase() + parentName.slice(1))}`];\n\t\tconst debugByFeature = feature ? table.options[`debug${feature.charAt(0).toUpperCase() + feature.slice(1)}`] : false;\n\t\tdebug = debugAll || debugByParent || debugByFeature;\n\t}\n\tfunction logTime(time, depsChanged) {\n\t\tconst runType = runCount === 0 ? \"(1st run)\" : depsChanged ? \"(rerun #\" + runCount + \")\" : \"(cache)\";\n\t\trunCount++;\n\t\tconsole.groupCollapsed(`%c⏱ ${pad(`${time.toFixed(1)} ms`, 12)} %c${runType}%c ${fnName}%c ${objectId ? `(${fnName.split(\".\")[0]}Id: ${objectId})` : \"\"}`, `font-size: .6rem; font-weight: bold; ${depsChanged ? `color: hsl(\n        ${Math.max(0, Math.min(120 - Math.log10(time) * 60, 120))}deg 100% 31%);` : \"\"} `, `color: ${runCount < 2 ? \"#FF00FF\" : \"#FF1493\"}`, \"color: #666\", \"color: #87CEEB\");\n\t\tconsole.info({\n\t\t\tfeature,\n\t\t\tstate: table.store.state,\n\t\t\tdeps: memoOptions.memoDeps?.toString()\n\t\t});\n\t\tconsole.trace();\n\t\tconsole.groupEnd();\n\t}\n\tconst onAfterUpdateHandler = () => {\n\t\tif (!onAfterUpdate) return;\n\t\tconst { schedule, untrack } = table._reactivity;\n\t\tschedule(() => untrack(() => onAfterUpdate()));\n\t};\n\tconst debugOptions = process.env.NODE_ENV === \"development\" ? {\n\t\tonBeforeCompare: () => {},\n\t\tonAfterCompare: (depsChanged) => {},\n\t\tonBeforeUpdate: () => {\n\t\t\tif (debug) startCalcTime = performance.now();\n\t\t},\n\t\tonAfterUpdate: () => {\n\t\t\tif (debug) {\n\t\t\t\tendCalcTime = performance.now();\n\t\t\t\tlogTime(Math.round((endCalcTime - startCalcTime) * 100) / 100, true);\n\t\t\t}\n\t\t\tonAfterUpdateHandler();\n\t\t}\n\t} : { onAfterUpdate: () => {\n\t\tonAfterUpdateHandler();\n\t} };\n\treturn memo({\n\t\t...memoOptions,\n\t\t...debugOptions\n\t});\n}\n/**\n* Assumes that a function name is in the format of `parentName_fnKey` and returns the `fnKey` and `fnName` in the format of `parentName.fnKey`.\n*/\nfunction getFunctionNameInfo(staticFnName, splitBy = \"_\") {\n\tconst [parentName, fnKey] = staticFnName.split(splitBy);\n\treturn {\n\t\tfnKey,\n\t\tfnName: `${parentName}.${fnKey}`,\n\t\tparentName\n\t};\n}\n/**\n* Assigns Table API methods directly to the table instance.\n* Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.\n*/\nfunction assignTableAPIs(feature, table, apis) {\n\tfor (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {\n\t\tconst { fnKey, fnName } = getFunctionNameInfo(staticFnName);\n\t\ttable[fnKey] = memoDeps ? tableMemo({\n\t\t\tmemoDeps,\n\t\t\tfn,\n\t\t\tfnName,\n\t\t\ttable,\n\t\t\tfeature\n\t\t}) : fn;\n\t}\n}\n/**\n* Assigns API methods to a prototype object for memory-efficient method sharing.\n* All instances created with this prototype will share the same method references.\n*\n* For memoized methods, the memo state is lazily created and stored on each instance.\n* This provides the best of both worlds: shared method code + per-instance caching.\n*/\nfunction assignPrototypeAPIs(feature, prototype, table, apis) {\n\tfor (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {\n\t\tconst { fnKey, fnName } = getFunctionNameInfo(staticFnName);\n\t\tif (memoDeps) {\n\t\t\tconst memoKey = `_memo_${fnKey}`;\n\t\t\tprototype[fnKey] = function(...args) {\n\t\t\t\tif (!this[memoKey]) {\n\t\t\t\t\tconst self = this;\n\t\t\t\t\tthis[memoKey] = tableMemo({\n\t\t\t\t\t\tmemoDeps: (depArgs) => memoDeps(self, depArgs),\n\t\t\t\t\t\tfn: (...deps) => fn(self, ...deps),\n\t\t\t\t\t\tfnName,\n\t\t\t\t\t\tobjectId: self.id,\n\t\t\t\t\t\ttable,\n\t\t\t\t\t\tfeature\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this[memoKey](...args);\n\t\t\t};\n\t\t} else prototype[fnKey] = function(...args) {\n\t\t\treturn fn(this, ...args);\n\t\t};\n\t}\n}\n/**\n* Looks to run the memoized function with the builder pattern on the object if it exists, otherwise fall back to the static method passed in.\n*/\nfunction callMemoOrStaticFn(obj, fnKey, staticFn, ...args) {\n\treturn obj[fnKey]?.(...args) ?? staticFn(obj, ...args);\n}\n\n//#endregion\nexport { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, flattenBy, functionalUpdate, getFunctionNameInfo, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, setStateSlice, skipFirstRun, stateSlicesEqual, tableMemo };","//#region src/core/cells/coreCellsFeature.utils.ts\n/**\n* Reads this cell's accessor value from its owning row and column.\n*\n* This is the standalone implementation behind `cell.getValue()`, useful when\n* importing static APIs instead of calling methods from the cell prototype.\n*\n* @example\n* ```ts\n* const value = cell_getValue(cell)\n* ```\n*/\nfunction cell_getValue(cell) {\n\treturn cell.row.getValue(cell.column.id);\n}\n/**\n* Reads the value that should be rendered for this cell.\n*\n* Nullish accessor values are replaced with `table.options.renderFallbackValue`,\n* matching the behavior of `cell.renderValue()`.\n*\n* @example\n* ```ts\n* const rendered = cell_renderValue(cell)\n* ```\n*/\nfunction cell_renderValue(cell) {\n\treturn cell.getValue() ?? cell.table.options.renderFallbackValue;\n}\n/**\n* Builds the render context passed to a column's `cell` template.\n*\n* The returned object includes stable references to the table, row, column, and\n* cell, plus bound `getValue` and `renderValue` helpers for render functions.\n*\n* @example\n* ```ts\n* const context = cell_getContext(cell)\n* ```\n*/\nfunction cell_getContext(cell) {\n\treturn {\n\t\ttable: cell.table,\n\t\tcolumn: cell.column,\n\t\trow: cell.row,\n\t\tcell,\n\t\tgetValue: () => cell.getValue(),\n\t\trenderValue: () => cell.renderValue()\n\t};\n}\n\n//#endregion\nexport { cell_getContext, cell_getValue, cell_renderValue };","import { assignPrototypeAPIs } from \"../../utils.js\";\nimport { cell_getContext, cell_getValue, cell_renderValue } from \"./coreCellsFeature.utils.js\";\n\n//#region src/core/cells/coreCellsFeature.ts\n/**\n* Core feature that adds cell value, render, and context APIs.\n*/\nconst coreCellsFeature = { assignCellPrototype: (prototype, table) => {\n\tassignPrototypeAPIs(\"coreCellsFeature\", prototype, table, {\n\t\tcell_getValue: { fn: (cell) => cell_getValue(cell) },\n\t\tcell_renderValue: { fn: (cell) => cell_renderValue(cell) },\n\t\tcell_getContext: {\n\t\t\tfn: (cell) => cell_getContext(cell),\n\t\t\tmemoDeps: (cell) => [cell]\n\t\t}\n\t});\n} };\n\n//#endregion\nexport { coreCellsFeature };","//#region src/core/headers/constructHeader.ts\n/**\n* Creates or retrieves the header prototype for a table.\n* The prototype is cached on the table and shared by all header instances.\n*/\nfunction getHeaderPrototype(table) {\n\tif (!table._headerPrototype) {\n\t\ttable._headerPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignHeaderPrototype?.(table._headerPrototype, table);\n\t}\n\treturn table._headerPrototype;\n}\n/**\n* Constructs a header instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructHeader(table, column, options) {\n\tconst headerPrototype = getHeaderPrototype(table);\n\tconst header = Object.create(headerPrototype);\n\theader.colSpan = 0;\n\theader.column = column;\n\theader.depth = options.depth;\n\theader.headerGroup = null;\n\theader.id = options.id ?? column.id;\n\theader.index = options.index;\n\theader.isPlaceholder = !!options.isPlaceholder;\n\theader.placeholderId = options.placeholderId;\n\theader.rowSpan = 0;\n\theader.subHeaders = [];\n\tconst initFns = table._headerInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](header);\n\treturn header;\n}\n\n//#endregion\nexport { constructHeader };","import { callMemoOrStaticFn, cloneState, setStateSlice } from \"../../utils.js\";\nimport { column_getIsVisible, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { buildHeaderGroups } from \"../../core/headers/buildHeaderGroups.js\";\n\n//#region src/features/column-pinning/columnPinningFeature.utils.ts\n/**\n* Creates the default column pinning state.\n*\n* Both pinning regions start empty. Reset APIs use this value when\n* `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const pinning = getDefaultColumnPinningState()\n* ```\n*/\nfunction getDefaultColumnPinningState() {\n\treturn {\n\t\tstart: [],\n\t\tend: []\n\t};\n}\n/**\n* Moves this column's leaf column ids into a pinning region.\n*\n* Pinning a group column pins all of its leaves. The leaf ids are first removed\n* from both regions, then appended to the requested `'start'` or `'end'`\n* region. Passing `false` unpins them back to the center.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* column_pin(column, 'start')\n* ```\n*/\nfunction column_pin(column, position) {\n\tconst leafColumns = column.getLeafColumns();\n\tconst columnIds = [];\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst id = leafColumns[i].id;\n\t\tif (id) columnIds.push(id);\n\t}\n\ttable_setColumnPinning(column.table, (old) => {\n\t\tif (position === \"end\") return {\n\t\t\tstart: old.start.filter((d) => !columnIds.includes(d)),\n\t\t\tend: [...old.end.filter((d) => !columnIds.includes(d)), ...columnIds]\n\t\t};\n\t\tif (position === \"start\") return {\n\t\t\tstart: [...old.start.filter((d) => !columnIds.includes(d)), ...columnIds],\n\t\t\tend: old.end.filter((d) => !columnIds.includes(d))\n\t\t};\n\t\treturn {\n\t\t\tstart: old.start.filter((d) => !columnIds.includes(d)),\n\t\t\tend: old.end.filter((d) => !columnIds.includes(d))\n\t\t};\n\t});\n}\n/**\n* Checks whether this column or any of its leaf columns can be pinned.\n*\n* Column-level `enablePinning` and table `enableColumnPinning` both default to\n* `true`; at least one leaf column must allow pinning.\n*\n* @example\n* ```ts\n* const canPin = column_getCanPin(column)\n* ```\n*/\nfunction column_getCanPin(column) {\n\treturn column.getLeafColumns().some((leafColumn) => (leafColumn.columnDef.enablePinning ?? true) && (column.table.options.enableColumnPinning ?? true));\n}\n/**\n* Reads this column's current pinning region.\n*\n* Group columns report `'start'` or `'end'` when any leaf column is pinned in\n* that region. Unpinned columns return `false`.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* const position = column_getIsPinned(column)\n* ```\n*/\nfunction column_getIsPinned(column) {\n\tconst leafColumns = column.getLeafColumns();\n\tconst { start, end } = column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tfor (let i = 0; i < leafColumns.length; i++) if (start.includes(leafColumns[i].id)) return \"start\";\n\tfor (let i = 0; i < leafColumns.length; i++) if (end.includes(leafColumns[i].id)) return \"end\";\n\treturn false;\n}\n/**\n* Finds this column's index within its pinned region.\n*\n* Unpinned columns return `0`; pinned columns return their position in\n* `state.columnPinning.start` or `state.columnPinning.end`.\n*\n* @example\n* ```ts\n* const index = column_getPinnedIndex(column)\n* ```\n*/\nfunction column_getPinnedIndex(column) {\n\tconst position = column_getIsPinned(column);\n\treturn position ? column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ?? -1 : 0;\n}\n/**\n* Collects visible cells whose columns are not pinned start or end.\n*\n* The result preserves the row's visible-cell order for center columns.\n*\n* @example\n* ```ts\n* const centerCells = row_getCenterVisibleCells(row)\n* ```\n*/\nfunction row_getCenterVisibleCells(row) {\n\tconst allCells = callMemoOrStaticFn(row, \"getVisibleCells\", row_getVisibleCells);\n\tconst { start, end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return allCells;\n\tconst startAndEnd = [...start, ...end];\n\treturn allCells.filter((d) => !startAndEnd.includes(d.column.id));\n}\n/**\n* Collects visible cells for columns pinned to the start region.\n*\n* Cells are returned in `state.columnPinning.start` order and are marked with\n* `cell.position = 'start'`.\n*\n* @example\n* ```ts\n* const startCells = row_getStartVisibleCells(row)\n* ```\n*/\nfunction row_getStartVisibleCells(row) {\n\tconst { start } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length) return [];\n\tconst allVisibleCells = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst cells = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst cell = allVisibleCells[start[i]];\n\t\tif (cell) {\n\t\t\tcell.position = \"start\";\n\t\t\tcells.push(cell);\n\t\t}\n\t}\n\treturn cells;\n}\n/**\n* Collects visible cells for columns pinned to the end region.\n*\n* Cells are returned in `state.columnPinning.end` order and are marked with\n* `cell.position = 'end'`.\n*\n* @example\n* ```ts\n* const endCells = row_getEndVisibleCells(row)\n* ```\n*/\nfunction row_getEndVisibleCells(row) {\n\tconst { end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!end.length) return [];\n\tconst allVisibleCells = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst cells = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst cell = allVisibleCells[end[i]];\n\t\tif (cell) {\n\t\t\tcell.position = \"end\";\n\t\t\tcells.push(cell);\n\t\t}\n\t}\n\treturn cells;\n}\n/**\n* Routes a column pinning updater through the table's pinning change handler.\n*\n* The updater may be a next `{ start, end }` state or a function of the\n* previous state, matching the instance `table.setColumnPinning` behavior.\n*\n* @example\n* ```ts\n* table_setColumnPinning(table, (old) => ({ ...old, start: ['select'] }))\n* ```\n*/\nfunction table_setColumnPinning(table, updater) {\n\tsetStateSlice(table, \"columnPinning\", updater);\n}\n/**\n* Resets `columnPinning` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnPinning` when it\n* exists. Passing `true` ignores initial state and resets to empty start/end\n* arrays.\n*\n* @example\n* ```ts\n* table_resetColumnPinning(table)\n* table_resetColumnPinning(table, true)\n* ```\n*/\nfunction table_resetColumnPinning(table, defaultState) {\n\ttable_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : cloneState(table.initialState.columnPinning ?? getDefaultColumnPinningState()));\n}\n/**\n* Checks whether any columns are pinned.\n*\n* Omit `position` to check both sides, or pass `'start'`/`'end'` to inspect a\n* single pinning region.\n*\n* @example\n* ```ts\n* const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n* ```\n*/\nfunction table_getIsSomeColumnsPinned(table, position) {\n\tconst pinningState = table.atoms.columnPinning?.get();\n\tif (!position) return Boolean(pinningState?.start.length || pinningState?.end.length);\n\treturn Boolean(pinningState?.[position].length);\n}\n/**\n* Builds header groups for visible columns pinned to the start region.\n*\n* The leaf columns are read in `state.columnPinning.start` order and then passed\n* through the same header-group builder as the unpinned table.\n*\n* @example\n* ```ts\n* const headerGroups = table_getStartHeaderGroups(table)\n* ```\n*/\nfunction table_getStartHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst { start } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst orderedLeafColumns = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) orderedLeafColumns.push(column);\n\t}\n\treturn buildHeaderGroups(allColumns, orderedLeafColumns, table, \"start\");\n}\n/**\n* Builds header groups for visible columns pinned to the end region.\n*\n* The leaf columns are read in `state.columnPinning.end` order and then\n* passed through the same header-group builder as the unpinned table.\n*\n* @example\n* ```ts\n* const headerGroups = table_getEndHeaderGroups(table)\n* ```\n*/\nfunction table_getEndHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst { end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst orderedLeafColumns = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) orderedLeafColumns.push(column);\n\t}\n\treturn buildHeaderGroups(allColumns, orderedLeafColumns, table, \"end\");\n}\n/**\n* Builds header groups for visible columns that are not pinned.\n*\n* Start- and end-pinned column ids are removed from the visible leaf column\n* list before header groups are built for the center region.\n*\n* @example\n* ```ts\n* const headerGroups = table_getCenterHeaderGroups(table)\n* ```\n*/\nfunction table_getCenterHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tlet leafColumns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (start.length || end.length) {\n\t\tconst startAndEnd = [...start, ...end];\n\t\tleafColumns = leafColumns.filter((column) => !startAndEnd.includes(column.id));\n\t}\n\treturn buildHeaderGroups(allColumns, leafColumns, table, \"center\");\n}\n/**\n* Builds footer groups for the start pinned region.\n*\n* Footer groups reuse the start header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getStartFooterGroups(table)\n* ```\n*/\nfunction table_getStartFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)].reverse();\n}\n/**\n* Builds footer groups for the end pinned region.\n*\n* Footer groups reuse the end header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getEndFooterGroups(table)\n* ```\n*/\nfunction table_getEndFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)].reverse();\n}\n/**\n* Builds footer groups for the center, unpinned region.\n*\n* Footer groups reuse the center header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getCenterFooterGroups(table)\n* ```\n*/\nfunction table_getCenterFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)].reverse();\n}\n/**\n* Flattens every header from the start pinned header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getStartFlatHeaders(table)\n* ```\n*/\nfunction table_getStartFlatHeaders(table) {\n\tconst leftHeaderGroups = callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < leftHeaderGroups.length; i++) {\n\t\tconst headers = leftHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Flattens every header from the end pinned header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getEndFlatHeaders(table)\n* ```\n*/\nfunction table_getEndFlatHeaders(table) {\n\tconst rightHeaderGroups = callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < rightHeaderGroups.length; i++) {\n\t\tconst headers = rightHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Flattens every header from the center header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getCenterFlatHeaders(table)\n* ```\n*/\nfunction table_getCenterFlatHeaders(table) {\n\tconst centerHeaderGroups = callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < centerHeaderGroups.length; i++) {\n\t\tconst headers = centerHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Collects leaf headers for the start pinned region.\n*\n* Parent headers are filtered out from the start flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getStartLeafHeaders(table)\n* ```\n*/\nfunction table_getStartLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getStartFlatHeaders\", table_getStartFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Collects leaf headers for the end pinned region.\n*\n* Parent headers are filtered out from the end flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getEndLeafHeaders(table)\n* ```\n*/\nfunction table_getEndLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getEndFlatHeaders\", table_getEndFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Collects leaf headers for the center, unpinned region.\n*\n* Parent headers are filtered out from the center flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getCenterLeafHeaders(table)\n* ```\n*/\nfunction table_getCenterLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterFlatHeaders\", table_getCenterFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Resolves leaf columns pinned to the start region.\n*\n* The result follows `state.columnPinning.start` order and skips stale ids that\n* no longer correspond to a leaf column.\n*\n* @example\n* ```ts\n* const columns = table_getStartLeafColumns(table)\n* ```\n*/\nfunction table_getStartLeafColumns(table) {\n\tconst { start } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst result = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column) result.push(column);\n\t}\n\treturn result;\n}\n/**\n* Resolves leaf columns pinned to the end region.\n*\n* The result follows `state.columnPinning.end` order and skips stale ids that\n* no longer correspond to a leaf column.\n*\n* @example\n* ```ts\n* const columns = table_getEndLeafColumns(table)\n* ```\n*/\nfunction table_getEndLeafColumns(table) {\n\tconst { end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst result = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column) result.push(column);\n\t}\n\treturn result;\n}\n/**\n* Resolves leaf columns that are not pinned to either logical side.\n*\n* Start- and end-pinned ids are removed from `table.getAllLeafColumns()`.\n*\n* @example\n* ```ts\n* const columns = table_getCenterLeafColumns(table)\n* ```\n*/\nfunction table_getCenterLeafColumns(table) {\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return table.getAllLeafColumns();\n\tconst startAndEnd = [...start, ...end];\n\treturn table.getAllLeafColumns().filter((d) => !startAndEnd.includes(d.id));\n}\n/**\n* Resolves leaf columns for a requested pinning region.\n*\n* Pass `'start'`, `'center'`, or `'end'` for a partition, or pass `false` to\n* read all leaf columns without partitioning.\n*\n* @example\n* ```ts\n* const columns = table_getPinnedLeafColumns(table, 'center')\n* ```\n*/\nfunction table_getPinnedLeafColumns(table, position) {\n\treturn !position ? table.getAllLeafColumns() : position === \"start\" ? callMemoOrStaticFn(table, \"getStartLeafColumns\", table_getStartLeafColumns) : position === \"end\" ? callMemoOrStaticFn(table, \"getEndLeafColumns\", table_getEndLeafColumns) : callMemoOrStaticFn(table, \"getCenterLeafColumns\", table_getCenterLeafColumns);\n}\n/**\n* Resolves visible leaf columns pinned to the start region.\n*\n* Hidden pinned columns are filtered out after the start pin order is applied.\n*\n* @example\n* ```ts\n* const columns = table_getStartVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getStartVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getStartLeafColumns\", table_getStartLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns pinned to the end region.\n*\n* Hidden pinned columns are filtered out after the end pin order is applied.\n*\n* @example\n* ```ts\n* const columns = table_getEndVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getEndVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getEndLeafColumns\", table_getEndLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns that are not pinned.\n*\n* This is the center partition used by layouts that render pinned columns\n* separately from the scrollable middle region.\n*\n* @example\n* ```ts\n* const columns = table_getCenterVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getCenterVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterLeafColumns\", table_getCenterLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns for a requested pinning region.\n*\n* Omit `position` to get all visible leaf columns, or pass `'start'`, `'center'`,\n* or `'end'` to get one partition.\n*\n* @example\n* ```ts\n* const columns = table_getPinnedVisibleLeafColumns(table, 'start')\n* ```\n*/\nfunction table_getPinnedVisibleLeafColumns(table, position) {\n\treturn !position ? callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns) : position === \"start\" ? callMemoOrStaticFn(table, \"getStartVisibleLeafColumns\", table_getStartVisibleLeafColumns) : position === \"end\" ? callMemoOrStaticFn(table, \"getEndVisibleLeafColumns\", table_getEndVisibleLeafColumns) : callMemoOrStaticFn(table, \"getCenterVisibleLeafColumns\", table_getCenterVisibleLeafColumns);\n}\n\n//#endregion\nexport { column_getCanPin, column_getIsPinned, column_getPinnedIndex, column_pin, getDefaultColumnPinningState, row_getCenterVisibleCells, row_getEndVisibleCells, row_getStartVisibleCells, table_getCenterFlatHeaders, table_getCenterFooterGroups, table_getCenterHeaderGroups, table_getCenterLeafColumns, table_getCenterLeafHeaders, table_getCenterVisibleLeafColumns, table_getEndFlatHeaders, table_getEndFooterGroups, table_getEndHeaderGroups, table_getEndLeafColumns, table_getEndLeafHeaders, table_getEndVisibleLeafColumns, table_getIsSomeColumnsPinned, table_getPinnedLeafColumns, table_getPinnedVisibleLeafColumns, table_getStartFlatHeaders, table_getStartFooterGroups, table_getStartHeaderGroups, table_getStartLeafColumns, table_getStartLeafHeaders, table_getStartVisibleLeafColumns, table_resetColumnPinning, table_setColumnPinning };","import { callMemoOrStaticFn, cloneState, hasOwn, makeObjectMap, setStateSlice } from \"../../utils.js\";\nimport { getDefaultColumnPinningState } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-visibility/columnVisibilityFeature.utils.ts\n/**\n* Creates the default column visibility state.\n*\n* The feature default is an empty object, where missing column ids are treated\n* as visible. Reset APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const visibility = getDefaultColumnVisibilityState()\n* ```\n*/\nfunction getDefaultColumnVisibilityState() {\n\treturn makeObjectMap();\n}\n/**\n* Updates this column's visibility when hiding is allowed.\n*\n* Passing `visible` stores that value. Omitting it flips the column's current\n* visibility state. Group columns update their hideable leaf columns because\n* visibility state is keyed by leaf column ids. Columns that cannot hide stay\n* unchanged.\n*\n* @example\n* ```ts\n* column_toggleVisibility(column)\n* ```\n*/\nfunction column_toggleVisibility(column, visible) {\n\tif (column_getCanHide(column)) table_setColumnVisibility(column.table, (old) => {\n\t\tconst next = Object.assign(makeObjectMap(), old);\n\t\tconst nextVisible = visible ?? !callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible);\n\t\tconst leafColumns = column.getLeafColumns();\n\t\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\t\tconst leafColumn = leafColumns[i];\n\t\t\tif (column_getCanHide(leafColumn)) next[leafColumn.id] = nextVisible;\n\t\t}\n\t\treturn next;\n\t});\n}\n/**\n* Checks whether this column is visible.\n*\n* Leaf columns read `state.columnVisibility[column.id]`, where missing entries\n* default to visible. Parent columns are visible when at least one child column\n* is visible.\n*\n* @example\n* ```ts\n* const visible = column_getIsVisible(column)\n* ```\n*/\nfunction column_getIsVisible(column) {\n\tconst columnVisibility = column.table.atoms.columnVisibility?.get();\n\tif (!columnVisibility) return true;\n\tconst childColumns = column.columns;\n\tif (childColumns.length) return childColumns.some((childColumn) => callMemoOrStaticFn(childColumn, \"getIsVisible\", column_getIsVisible));\n\treturn (hasOwn(columnVisibility, column.id) ? columnVisibility[column.id] : void 0) ?? true;\n}\n/**\n* Checks whether this column is allowed to be hidden.\n*\n* Both `columnDef.enableHiding` and table `enableHiding` default to `true`.\n*\n* @example\n* ```ts\n* const canHide = column_getCanHide(column)\n* ```\n*/\nfunction column_getCanHide(column) {\n\treturn (column.columnDef.enableHiding ?? true) && (column.table.options.enableHiding ?? true);\n}\n/**\n* Creates a checkbox-style handler that writes this column's visibility.\n*\n* The handler reads `event.target.checked`, so it is intended for visibility\n* controls whose checked state means \"visible\".\n*\n* @example\n* ```ts\n* const onChange = column_getToggleVisibilityHandler(column)\n* ```\n*/\nfunction column_getToggleVisibilityHandler(column) {\n\treturn (e) => {\n\t\tcolumn_toggleVisibility(column, e.target.checked);\n\t};\n}\n/**\n* Collects the cells from this row whose columns are visible.\n*\n* When column pinning is active, the result is ordered as start-pinned cells,\n* center cells, then end-pinned cells.\n*\n* @example\n* ```ts\n* const visibleCells = row_getVisibleCells(row)\n* ```\n*/\nfunction row_getVisibleCells(row) {\n\tconst allCells = row.getAllCells();\n\tconst visibleCells = [];\n\tfor (let i = 0; i < allCells.length; i++) {\n\t\tconst cell = allCells[i];\n\t\tif (callMemoOrStaticFn(cell.column, \"getIsVisible\", column_getIsVisible)) visibleCells.push(cell);\n\t}\n\tconst { start, end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return visibleCells;\n\tconst visibleCellsByColumnId = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst startCells = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst cell = visibleCellsByColumnId[start[i]];\n\t\tif (cell) startCells.push(cell);\n\t}\n\tconst endCells = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst cell = visibleCellsByColumnId[end[i]];\n\t\tif (cell) endCells.push(cell);\n\t}\n\tconst centerCells = [];\n\tfor (let i = 0; i < visibleCells.length; i++) {\n\t\tconst cell = visibleCells[i];\n\t\tconst id = cell.column.id;\n\t\tif (!start.includes(id) && !end.includes(id)) centerCells.push(cell);\n\t}\n\treturn [\n\t\t...startCells,\n\t\t...centerCells,\n\t\t...endCells\n\t];\n}\n/**\n* Builds a lookup map of this row's visible cells keyed by column id.\n*\n* Hidden columns are omitted from the map.\n*\n* @example\n* ```ts\n* const visibleCellsById = row_getVisibleCellsByColumnId(row)\n* ```\n*/\nfunction row_getVisibleCellsByColumnId(row) {\n\tconst result = makeObjectMap();\n\tconst allCells = row.getAllCells();\n\tfor (let i = 0; i < allCells.length; i++) {\n\t\tconst cell = allCells[i];\n\t\tif (callMemoOrStaticFn(cell.column, \"getIsVisible\", column_getIsVisible)) result[cell.column.id] = cell;\n\t}\n\treturn result;\n}\n/**\n* Filters the flat column list down to visible columns.\n*\n* Parent/group columns are included when `column_getIsVisible` considers them\n* visible.\n*\n* @example\n* ```ts\n* const columns = table_getVisibleFlatColumns(table)\n* ```\n*/\nfunction table_getVisibleFlatColumns(table) {\n\treturn table.getAllFlatColumns().filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Filters leaf columns down to those currently visible.\n*\n* This is the column list most row rendering code uses before pinning-specific\n* partitioning.\n*\n* @example\n* ```ts\n* const columns = table_getVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getVisibleLeafColumns(table) {\n\treturn table.getAllLeafColumns().filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Routes a column visibility updater through the table's visibility change handler.\n*\n* The updater may be a next visibility map or a function of the previous map,\n* matching the instance `table.setColumnVisibility` behavior.\n*\n* @example\n* ```ts\n* table_setColumnVisibility(table, (old) => ({ ...old, age: false }))\n* ```\n*/\nfunction table_setColumnVisibility(table, updater) {\n\tsetStateSlice(table, \"columnVisibility\", updater);\n}\n/**\n* Resets `columnVisibility` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnVisibility` when\n* it exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetColumnVisibility(table)\n* table_resetColumnVisibility(table, true)\n* ```\n*/\nfunction table_resetColumnVisibility(table, defaultState) {\n\ttable_setColumnVisibility(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.columnVisibility ?? {})));\n}\n/**\n* Shows or hides every hideable leaf column.\n*\n* Columns that cannot hide stay visible when toggling all columns off.\n*\n* @example\n* ```ts\n* table_toggleAllColumnsVisible(table)\n* ```\n*/\nfunction table_toggleAllColumnsVisible(table, value) {\n\tvalue = value ?? !table_getIsAllColumnsVisible(table);\n\tconst visibility = makeObjectMap();\n\tconst leafColumns = table.getAllLeafColumns();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst column = leafColumns[i];\n\t\tvisibility[column.id] = !value ? !column_getCanHide(column) : value;\n\t}\n\ttable_setColumnVisibility(table, visibility);\n}\n/**\n* Checks whether every leaf column is currently visible.\n*\n* Non-hideable columns are naturally visible because missing visibility entries\n* default to `true`.\n*\n* @example\n* ```ts\n* const allVisible = table_getIsAllColumnsVisible(table)\n* ```\n*/\nfunction table_getIsAllColumnsVisible(table) {\n\treturn !table.getAllLeafColumns().some((column) => !callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Checks whether at least one leaf column is currently visible.\n*\n* This is useful for tri-state \"show all columns\" controls.\n*\n* @example\n* ```ts\n* const someVisible = table_getIsSomeColumnsVisible(table)\n* ```\n*/\nfunction table_getIsSomeColumnsVisible(table) {\n\treturn table.getAllLeafColumns().some((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Creates a checkbox-style handler that shows or hides all columns.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all columns visible\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllColumnsVisibilityHandler(table)\n* ```\n*/\nfunction table_getToggleAllColumnsVisibilityHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllColumnsVisible(table, e.target.checked);\n\t};\n}\n\n//#endregion\nexport { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible };","import { callMemoOrStaticFn } from \"../../utils.js\";\nimport { column_getIsVisible } from \"../../features/column-visibility/columnVisibilityFeature.utils.js\";\nimport { constructHeader } from \"./constructHeader.js\";\n\n//#region src/core/headers/buildHeaderGroups.ts\nfunction getMaxHeaderDepth(columns, depth = 1) {\n\tlet maxDepth = depth;\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tif (callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible) && column.columns.length) maxDepth = Math.max(maxDepth, getMaxHeaderDepth(column.columns, depth + 1));\n\t}\n\treturn maxDepth;\n}\nfunction formatHeaderGroupId(headerFamily, depth) {\n\treturn headerFamily ? `${headerFamily}_${depth}` : String(depth);\n}\nfunction formatHeaderId(headerFamily, depth, columnId, childHeaderId) {\n\tlet id = headerFamily ?? \"\";\n\tif (depth) id = id ? `${id}_${depth}` : String(depth);\n\tif (columnId) id = id ? `${id}_${columnId}` : columnId;\n\tif (childHeaderId) id = id ? `${id}_${childHeaderId}` : childHeaderId;\n\treturn id;\n}\nfunction countPendingHeadersForColumn(headers, column) {\n\tlet count = 0;\n\tfor (let i = 0; i < headers.length; i++) if (headers[i].column === column) count++;\n\treturn count;\n}\nfunction constructHeaderGroup(headersToGroup, depth, table, headerFamily, headerGroups, headerGroupInitFns) {\n\tconst headerGroup = {\n\t\tdepth,\n\t\tid: formatHeaderGroupId(headerFamily, depth),\n\t\theaders: []\n\t};\n\tconst pendingParentHeaders = [];\n\tfor (let i = 0; i < headersToGroup.length; i++) {\n\t\tif (!(i in headersToGroup)) continue;\n\t\tconst headerToGroup = headersToGroup[i];\n\t\tconst latestPendingParentHeader = pendingParentHeaders[pendingParentHeaders.length - 1];\n\t\tconst isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n\t\tlet column;\n\t\tlet isPlaceholder = false;\n\t\tif (isLeafHeader && headerToGroup.column.parent) column = headerToGroup.column.parent;\n\t\telse {\n\t\t\tcolumn = headerToGroup.column;\n\t\t\tisPlaceholder = true;\n\t\t}\n\t\tif (latestPendingParentHeader && latestPendingParentHeader.column === column) latestPendingParentHeader.subHeaders.push(headerToGroup);\n\t\telse {\n\t\t\tconst header = constructHeader(table, column, {\n\t\t\t\tid: formatHeaderId(headerFamily, depth, column.id, headerToGroup.id),\n\t\t\t\tisPlaceholder,\n\t\t\t\tplaceholderId: isPlaceholder ? String(countPendingHeadersForColumn(pendingParentHeaders, column)) : void 0,\n\t\t\t\tdepth,\n\t\t\t\tindex: pendingParentHeaders.length\n\t\t\t});\n\t\t\theader.subHeaders.push(headerToGroup);\n\t\t\tpendingParentHeaders.push(header);\n\t\t}\n\t\theaderGroup.headers.push(headerToGroup);\n\t\theaderToGroup.headerGroup = headerGroup;\n\t}\n\tfor (let i = 0; i < headerGroupInitFns.length; i++) headerGroupInitFns[i](headerGroup);\n\theaderGroups.push(headerGroup);\n\tif (depth > 0) constructHeaderGroup(pendingParentHeaders, depth - 1, table, headerFamily, headerGroups, headerGroupInitFns);\n}\nfunction updateHeaderSpans(headers) {\n\tfor (let i = 0; i < headers.length; i++) {\n\t\tconst header = headers[i];\n\t\tif (!callMemoOrStaticFn(header.column, \"getIsVisible\", column_getIsVisible)) continue;\n\t\tlet colSpan = 0;\n\t\tif (header.subHeaders.length) {\n\t\t\tupdateHeaderSpans(header.subHeaders);\n\t\t\tfor (let j = 0; j < header.subHeaders.length; j++) {\n\t\t\t\tconst child = header.subHeaders[j];\n\t\t\t\tif (!callMemoOrStaticFn(child.column, \"getIsVisible\", column_getIsVisible)) continue;\n\t\t\t\tcolSpan += child.colSpan;\n\t\t\t}\n\t\t} else colSpan = 1;\n\t\theader.colSpan = colSpan;\n\t\tif (header.isPlaceholder && header.subHeaders.length === 1 && header.subHeaders[0].column === header.column) {\n\t\t\tlet rowSpan = 1;\n\t\t\tlet chainChild = header.subHeaders[0];\n\t\t\twhile (chainChild) {\n\t\t\t\tchainChild.rowSpan = 0;\n\t\t\t\trowSpan++;\n\t\t\t\tchainChild = chainChild.subHeaders.length === 1 && chainChild.subHeaders[0].column === header.column ? chainChild.subHeaders[0] : void 0;\n\t\t\t}\n\t\t\theader.rowSpan = rowSpan;\n\t\t} else header.rowSpan = 1;\n\t}\n}\n/**\n* Builds the nested header group structure for a table.\n*\n* The result accounts for visible leaf columns, pinned column groups, and placeholder headers needed to render multi-level headers.\n*/\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n\tconst maxDepth = getMaxHeaderDepth(allColumns);\n\tconst headerGroups = [];\n\tconst headerGroupInitFns = table._headerGroupInstanceInitFns;\n\tconst bottomHeaders = new Array(columnsToGroup.length);\n\tfor (let i = 0; i < columnsToGroup.length; i++) {\n\t\tif (!(i in columnsToGroup)) continue;\n\t\tbottomHeaders[i] = constructHeader(table, columnsToGroup[i], {\n\t\t\tdepth: maxDepth,\n\t\t\tindex: i\n\t\t});\n\t}\n\tconstructHeaderGroup(bottomHeaders, maxDepth - 1, table, headerFamily, headerGroups, headerGroupInitFns);\n\theaderGroups.reverse();\n\tupdateHeaderSpans(headerGroups[0]?.headers ?? []);\n\treturn headerGroups;\n}\n\n//#endregion\nexport { buildHeaderGroups };","//#region src/core/columns/constructColumn.ts\n/**\n* Creates or retrieves the column prototype for a table.\n* The prototype is cached on the table and shared by all column instances.\n*/\nfunction getColumnPrototype(table) {\n\tif (!table._columnPrototype) {\n\t\ttable._columnPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignColumnPrototype?.(table._columnPrototype, table);\n\t}\n\treturn table._columnPrototype;\n}\n/**\n* Constructs a column instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructColumn(table, columnDef, depth, parent) {\n\tconst resolvedColumnDef = {\n\t\t...table.getDefaultColumnDef(),\n\t\t...columnDef\n\t};\n\tconst accessorKey = resolvedColumnDef.accessorKey;\n\tconst accessorKeyString = accessorKey === void 0 ? void 0 : String(accessorKey);\n\tconst id = resolvedColumnDef.id ?? accessorKeyString?.replaceAll(\".\", \"_\") ?? (typeof resolvedColumnDef.header === \"string\" ? resolvedColumnDef.header : void 0);\n\tlet accessorFn;\n\tif (resolvedColumnDef.accessorFn) accessorFn = resolvedColumnDef.accessorFn;\n\telse if (accessorKey !== void 0) if (typeof accessorKey === \"string\" && accessorKey.includes(\".\")) {\n\t\tconst keys = accessorKey.split(\".\");\n\t\taccessorFn = (originalRow) => {\n\t\t\tlet result = originalRow;\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key = keys[i];\n\t\t\t\tresult = result?.[key];\n\t\t\t\tif (process.env.NODE_ENV === \"development\" && result === void 0) console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else accessorFn = (originalRow) => originalRow[resolvedColumnDef.accessorKey];\n\tif (!id) {\n\t\tif (process.env.NODE_ENV === \"development\") throw new Error(resolvedColumnDef.accessorFn ? `coreColumnsFeature require an id when using an accessorFn` : `coreColumnsFeature require an id when using a non-string header`);\n\t\tthrow new Error();\n\t}\n\tconst columnPrototype = getColumnPrototype(table);\n\tconst column = Object.create(columnPrototype);\n\tcolumn.accessorFn = accessorFn;\n\tcolumn.columnDef = resolvedColumnDef;\n\tcolumn.columns = [];\n\tcolumn.depth = depth;\n\tcolumn.id = `${String(id)}`;\n\tcolumn.parent = parent;\n\tconst initFns = table._columnInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](column);\n\treturn column;\n}\n\n//#endregion\nexport { constructColumn };","import { callMemoOrStaticFn, cloneState, makeObjectMap, setStateSlice } from \"../../utils.js\";\nimport { table_getPinnedVisibleLeafColumns } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-ordering/columnOrderingFeature.utils.ts\n/**\n* Creates the default column order state.\n*\n* The feature default is an empty array, meaning leaf columns keep their natural\n* definition order. Reset APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const order = getDefaultColumnOrderState()\n* ```\n*/\nfunction getDefaultColumnOrderState() {\n\treturn [];\n}\n/**\n* Builds column-id to index records for each visible pinning region.\n*\n* All four regions are built in one pass so a single memo entry serves every\n* `column_getIndex` lookup without per-column scans.\n*\n* @example\n* ```ts\n* const indexes = table_getColumnIndexes(table)\n* ```\n*/\nfunction table_getColumnIndexes(table) {\n\tconst buildIndexes = (columns) => {\n\t\tconst indexes = makeObjectMap();\n\t\tfor (let i = 0; i < columns.length; i++) indexes[columns[i].id] = i;\n\t\treturn indexes;\n\t};\n\treturn {\n\t\tall: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n\t\tcenter: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"center\")),\n\t\tstart: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"start\")),\n\t\tend: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"end\"))\n\t};\n}\n/**\n* Finds this column's index within a visible pinning region.\n*\n* Pass `'start'`, `'center'`, or `'end'` to search that region; omit the\n* position to search the full visible leaf column list.\n*\n* @example\n* ```ts\n* const index = column_getIndex(column, 'center')\n* ```\n*/\nfunction column_getIndex(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnIndexes\", table_getColumnIndexes)[position === \"start\" ? \"start\" : position === \"end\" ? \"end\" : position === \"center\" ? \"center\" : \"all\"][column.id] ?? -1;\n}\n/**\n* Checks whether this column is the first visible column in a pinning region.\n*\n* The same `position` semantics as `column_getIndex` apply.\n*\n* @example\n* ```ts\n* const isFirst = column_getIsFirstColumn(column, 'start')\n* ```\n*/\nfunction column_getIsFirstColumn(column, position) {\n\treturn table_getPinnedVisibleLeafColumns(column.table, position)[0]?.id === column.id;\n}\n/**\n* Checks whether this column is the last visible column in a pinning region.\n*\n* The same `position` semantics as `column_getIndex` apply.\n*\n* @example\n* ```ts\n* const isLast = column_getIsLastColumn(column, 'end')\n* ```\n*/\nfunction column_getIsLastColumn(column, position) {\n\tconst columns = table_getPinnedVisibleLeafColumns(column.table, position);\n\treturn columns[columns.length - 1]?.id === column.id;\n}\n/**\n* Routes a column order updater through the table's column-order change handler.\n*\n* The updater may be a next ordered id array or a function of the previous\n* array, matching the instance `table.setColumnOrder` behavior.\n*\n* @example\n* ```ts\n* table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n* ```\n*/\nfunction table_setColumnOrder(table, updater) {\n\tsetStateSlice(table, \"columnOrder\", updater);\n}\n/**\n* Resets `columnOrder` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnOrder` when it\n* exists. Passing `true` ignores initial state and resets to `[]`.\n*\n* @example\n* ```ts\n* table_resetColumnOrder(table)\n* table_resetColumnOrder(table, true)\n* ```\n*/\nfunction table_resetColumnOrder(table, defaultState) {\n\ttable_setColumnOrder(table, defaultState ? [] : cloneState(table.initialState.columnOrder ?? []));\n}\n/**\n* Creates the ordering function used to arrange leaf columns.\n*\n* The returned function applies `state.columnOrder`, preserves unspecified\n* columns in their original order, then delegates to grouping rules.\n*\n* @example\n* ```ts\n* const orderColumnsForTable = table_getOrderColumnsFn(table)\n* ```\n*/\nfunction table_getOrderColumnsFn(table) {\n\tconst columnOrder = table.atoms.columnOrder?.get();\n\treturn (columns) => {\n\t\tlet orderedColumns = [];\n\t\tif (!columnOrder?.length) orderedColumns = columns;\n\t\telse {\n\t\t\tconst remaining = /* @__PURE__ */ new Map();\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tremaining.set(column.id, column);\n\t\t\t}\n\t\t\tfor (let i = 0; i < columnOrder.length; i++) {\n\t\t\t\tconst id = columnOrder[i];\n\t\t\t\tconst column = remaining.get(id);\n\t\t\t\tif (column) {\n\t\t\t\t\torderedColumns.push(column);\n\t\t\t\t\tremaining.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tif (remaining.has(column.id)) orderedColumns.push(column);\n\t\t\t}\n\t\t}\n\t\treturn orderColumns(table, orderedColumns);\n\t};\n}\n/**\n* Applies grouped-column placement rules to an already ordered leaf-column list.\n*\n* `groupedColumnMode: 'remove'` drops grouped columns from the list.\n* `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n* state order.\n*\n* @example\n* ```ts\n* const orderedColumns = orderColumns(table, leafColumns)\n* ```\n*/\nfunction orderColumns(table, leafColumns) {\n\tconst grouping = table.atoms.grouping?.get() ?? [];\n\tconst { groupedColumnMode } = table.options;\n\tif (!grouping.length || !groupedColumnMode) return leafColumns;\n\tconst nonGroupingColumns = leafColumns.filter((col) => !grouping.includes(col.id));\n\tif (groupedColumnMode === \"remove\") return nonGroupingColumns;\n\tconst leafColumnsById = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst col = leafColumns[i];\n\t\tleafColumnsById.set(col.id, col);\n\t}\n\tconst groupingColumns = [];\n\tfor (let i = 0; i < grouping.length; i++) {\n\t\tconst col = leafColumnsById.get(grouping[i]);\n\t\tif (col) groupingColumns.push(col);\n\t}\n\treturn [...groupingColumns, ...nonGroupingColumns];\n}\n\n//#endregion\nexport { column_getIndex, column_getIsFirstColumn, column_getIsLastColumn, getDefaultColumnOrderState, orderColumns, table_getColumnIndexes, table_getOrderColumnsFn, table_resetColumnOrder, table_setColumnOrder };","import { callMemoOrStaticFn, makeObjectMap } from \"../../utils.js\";\nimport { table_getOrderColumnsFn } from \"../../features/column-ordering/columnOrderingFeature.utils.js\";\nimport { constructColumn } from \"./constructColumn.js\";\n\n//#region src/core/columns/coreColumnsFeature.utils.ts\n/**\n* Flattens this column and every descendant column into a single array.\n*\n* Group columns appear before their child columns, which matches the normalized\n* column hierarchy produced during table construction.\n*\n* @example\n* ```ts\n* const flatColumns = column_getFlatColumns(column)\n* ```\n*/\nfunction column_getFlatColumns(column) {\n\treturn [column, ...column.columns.flatMap((col) => col.getFlatColumns())];\n}\n/**\n* Collects the terminal leaf columns below this column.\n*\n* Group columns return their ordered descendants. Non-group columns return an\n* array containing only the column itself.\n*\n* @example\n* ```ts\n* const leafColumns = column_getLeafColumns(column)\n* ```\n*/\nfunction column_getLeafColumns(column) {\n\tif (column.columns.length) {\n\t\tconst leafColumns = column.columns.flatMap((col) => col.getLeafColumns());\n\t\treturn callMemoOrStaticFn(column.table, \"getOrderColumns\", table_getOrderColumnsFn)(leafColumns);\n\t}\n\treturn [column];\n}\n/**\n* Merges built-in, feature, and user default column definitions.\n*\n* Built-in defaults provide a header and fallback cell renderer, feature\n* defaults can add feature-specific column options, and\n* `options.defaultColumn` wins last.\n*\n* @example\n* ```ts\n* const defaultColumn = table_getDefaultColumnDef(table)\n* ```\n*/\nfunction table_getDefaultColumnDef(table) {\n\treturn {\n\t\theader: (props) => {\n\t\t\tconst resolvedColumnDef = props.header.column.columnDef;\n\t\t\tif (resolvedColumnDef.accessorKey) return resolvedColumnDef.accessorKey;\n\t\t\tif (resolvedColumnDef.accessorFn) return resolvedColumnDef.id;\n\t\t\treturn null;\n\t\t},\n\t\tcell: (props) => props.renderValue()?.toString?.() ?? null,\n\t\t...Object.values(table._features).reduce((obj, feature) => {\n\t\t\treturn Object.assign(obj, feature.getDefaultColumnDef?.());\n\t\t}, {}),\n\t\t...table.options.defaultColumn\n\t};\n}\nfunction constructColumns(table, columnDefs, parent, depth = 0) {\n\tconst columns = new Array(columnDefs.length);\n\tfor (let i = 0; i < columnDefs.length; i++) {\n\t\tif (!(i in columnDefs)) continue;\n\t\tconst columnDef = columnDefs[i];\n\t\tconst column = constructColumn(table, columnDef, depth, parent);\n\t\tconst groupingColumnDef = columnDef;\n\t\tcolumn.columns = groupingColumnDef.columns ? constructColumns(table, groupingColumnDef.columns, column, depth + 1) : [];\n\t\tcolumns[i] = column;\n\t}\n\treturn columns;\n}\n/**\n* Normalizes `options.columns` into the table's nested column tree.\n*\n* Each column definition is constructed with its parent and depth, and group\n* column children are recursively constructed.\n*\n* @example\n* ```ts\n* const columns = table_getAllColumns(table)\n* ```\n*/\nfunction table_getAllColumns(table) {\n\treturn constructColumns(table, table.options.columns);\n}\n/**\n* Flattens every table column, including group columns and leaf columns.\n*\n* Use this when parent/group columns must be included in addition to data leaf\n* columns.\n*\n* @example\n* ```ts\n* const flatColumns = table_getAllFlatColumns(table)\n* ```\n*/\nfunction table_getAllFlatColumns(table) {\n\treturn table.getAllColumns().flatMap((column) => column.getFlatColumns());\n}\n/**\n* Builds an id lookup for every flat column in the table.\n*\n* Group columns and leaf columns are included. Later columns with the same id\n* replace earlier entries.\n*\n* @example\n* ```ts\n* const columnsById = table_getAllFlatColumnsById(table)\n* ```\n*/\nfunction table_getAllFlatColumnsById(table) {\n\tconst result = makeObjectMap();\n\tconst flatColumns = table.getAllFlatColumns();\n\tfor (let i = 0; i < flatColumns.length; i++) {\n\t\tconst column = flatColumns[i];\n\t\tresult[column.id] = column;\n\t}\n\treturn result;\n}\n/**\n* Collects all terminal leaf columns in their current table order.\n*\n* Column ordering features can reorder the collected leaves before the result\n* is returned.\n*\n* @example\n* ```ts\n* const leafColumns = table_getAllLeafColumns(table)\n* ```\n*/\nfunction table_getAllLeafColumns(table) {\n\tconst leafColumns = table.getAllColumns().flatMap((c) => c.getLeafColumns());\n\treturn callMemoOrStaticFn(table, \"getOrderColumns\", table_getOrderColumnsFn)(leafColumns);\n}\n/**\n* Builds an id lookup for terminal leaf columns only.\n*\n* Parent/group columns are excluded, making this lookup appropriate for row\n* cells and feature state keyed by data columns.\n*\n* @example\n* ```ts\n* const leavesById = table_getAllLeafColumnsById(table)\n* ```\n*/\nfunction table_getAllLeafColumnsById(table) {\n\tconst result = makeObjectMap();\n\tconst leafColumns = table.getAllLeafColumns();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst column = leafColumns[i];\n\t\tresult[column.id] = column;\n\t}\n\treturn result;\n}\n/**\n* Looks up a column by id from the flat column map.\n*\n* The lookup can return group columns or leaf columns. In development, a\n* missing id logs a warning to help catch stale column references.\n*\n* @example\n* ```ts\n* const column = table_getColumn(table, 'firstName')\n* ```\n*/\nfunction table_getColumn(table, columnId) {\n\tconst column = table.getAllFlatColumnsById()[columnId];\n\tif (process.env.NODE_ENV === \"development\" && !column) console.warn(`[Table] Column with id '${columnId}' does not exist.`);\n\treturn column;\n}\n\n//#endregion\nexport { column_getFlatColumns, column_getLeafColumns, table_getAllColumns, table_getAllFlatColumns, table_getAllFlatColumnsById, table_getAllLeafColumns, table_getAllLeafColumnsById, table_getColumn, table_getDefaultColumnDef };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { column_getFlatColumns, column_getLeafColumns, table_getAllColumns, table_getAllFlatColumns, table_getAllFlatColumnsById, table_getAllLeafColumns, table_getAllLeafColumnsById, table_getColumn, table_getDefaultColumnDef } from \"./coreColumnsFeature.utils.js\";\n\n//#region src/core/columns/coreColumnsFeature.ts\n/**\n* Core feature that builds the column tree and exposes table/column APIs.\n*/\nconst coreColumnsFeature = {\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreColumnsFeature\", prototype, table, {\n\t\t\tcolumn_getFlatColumns: {\n\t\t\t\tfn: (column) => column_getFlatColumns(column),\n\t\t\t\tmemoDeps: (column) => [column.table.options.columns]\n\t\t\t},\n\t\t\tcolumn_getLeafColumns: {\n\t\t\t\tfn: (column) => column_getLeafColumns(column),\n\t\t\t\tmemoDeps: (column) => [\n\t\t\t\t\tcolumn.table.atoms.columnOrder?.get(),\n\t\t\t\t\tcolumn.table.atoms.grouping?.get(),\n\t\t\t\t\tcolumn.table.options.columns,\n\t\t\t\t\tcolumn.table.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreColumnsFeature\", table, {\n\t\t\ttable_getDefaultColumnDef: {\n\t\t\t\tfn: () => table_getDefaultColumnDef(table),\n\t\t\t\tmemoDeps: () => [table.options.defaultColumn]\n\t\t\t},\n\t\t\ttable_getAllColumns: {\n\t\t\t\tfn: () => table_getAllColumns(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllFlatColumns: {\n\t\t\t\tfn: () => table_getAllFlatColumns(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllFlatColumnsById: {\n\t\t\t\tfn: () => table_getAllFlatColumnsById(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllLeafColumns: {\n\t\t\t\tfn: () => table_getAllLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getAllLeafColumnsById: {\n\t\t\t\tfn: () => table_getAllLeafColumnsById(table),\n\t\t\t\tmemoDeps: () => [table.getAllLeafColumns()]\n\t\t\t},\n\t\t\ttable_getColumn: { fn: (columnId) => table_getColumn(table, columnId) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreColumnsFeature };","import { callMemoOrStaticFn } from \"../../utils.js\";\nimport { column_getIsVisible, table_getVisibleLeafColumns } from \"../../features/column-visibility/columnVisibilityFeature.utils.js\";\nimport { buildHeaderGroups } from \"./buildHeaderGroups.js\";\nimport { getDefaultColumnPinningState } from \"../../features/column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/core/headers/coreHeadersFeature.utils.ts\nfunction collectLeafHeaders(header, leafHeaders) {\n\tfor (let i = 0; i < header.subHeaders.length; i++) collectLeafHeaders(header.subHeaders[i], leafHeaders);\n\tleafHeaders.push(header);\n}\n/**\n* Walks a header tree and collects all descendant leaf headers.\n*\n* The header itself is included after its descendants, matching the recursive\n* shape used by nested header groups.\n*\n* @example\n* ```ts\n* const leafHeaders = header_getLeafHeaders(header)\n* ```\n*/\nfunction header_getLeafHeaders(header) {\n\tconst leafHeaders = [];\n\tcollectLeafHeaders(header, leafHeaders);\n\treturn leafHeaders;\n}\n/**\n* Builds the render context passed to a column's `header` or `footer` template.\n*\n* The context contains the header, its column, and the owning table instance.\n*\n* @example\n* ```ts\n* const context = header_getContext(header)\n* ```\n*/\nfunction header_getContext(header) {\n\treturn {\n\t\tcolumn: header.column,\n\t\theader,\n\t\ttable: header.column.table\n\t};\n}\n/**\n* Builds visible header groups for the current column tree.\n*\n* Column visibility and pinning are applied before groups are built. When no\n* columns are pinned, the fast path skips pin partitioning.\n*\n* @example\n* ```ts\n* const headerGroups = table_getHeaderGroups(table)\n* ```\n*/\nfunction table_getHeaderGroups(table) {\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tif (!start.length && !end.length) return buildHeaderGroups(allColumns, leafColumns, table);\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst leftColumns = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) leftColumns.push(column);\n\t}\n\tconst rightColumns = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) rightColumns.push(column);\n\t}\n\tconst centerColumns = leafColumns.filter((column) => !start.includes(column.id) && !end.includes(column.id));\n\treturn buildHeaderGroups(allColumns, [\n\t\t...leftColumns,\n\t\t...centerColumns,\n\t\t...rightColumns\n\t], table);\n}\n/**\n* Builds footer groups by reversing the current header groups.\n*\n* Footer rendering uses the same header objects and grouping structure, but\n* renders them from leaf level back toward the root.\n*\n* @example\n* ```ts\n* const footerGroups = table_getFooterGroups(table)\n* ```\n*/\nfunction table_getFooterGroups(table) {\n\treturn [...table.getHeaderGroups()].reverse();\n}\n/**\n* Flattens every header from every header group into one array.\n*\n* The result includes parent headers and placeholder headers, in header-group\n* order from top to bottom.\n*\n* @example\n* ```ts\n* const flatHeaders = table_getFlatHeaders(table)\n* ```\n*/\nfunction table_getFlatHeaders(table) {\n\tconst headerGroups = table.getHeaderGroups();\n\tconst result = [];\n\tfor (let i = 0; i < headerGroups.length; i++) {\n\t\tconst headers = headerGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Collects only the leaf headers from the current header tree.\n*\n* Parent/group headers are skipped, making the result suitable for rendering\n* one header per visible leaf column.\n*\n* @example\n* ```ts\n* const leafHeaders = table_getLeafHeaders(table)\n* ```\n*/\nfunction table_getLeafHeaders(table) {\n\tconst topHeaders = table.getHeaderGroups()[0]?.headers ?? [];\n\tconst result = [];\n\tfor (let i = 0; i < topHeaders.length; i++) {\n\t\tconst leafHeaders = topHeaders[i].getLeafHeaders();\n\t\tfor (let j = 0; j < leafHeaders.length; j++) result.push(leafHeaders[j]);\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { header_getContext, header_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, table_getLeafHeaders };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { header_getContext, header_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, table_getLeafHeaders } from \"./coreHeadersFeature.utils.js\";\n\n//#region src/core/headers/coreHeadersFeature.ts\n/**\n* Core feature that builds header groups and exposes header context APIs.\n*/\nconst coreHeadersFeature = {\n\tassignHeaderPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreHeadersFeature\", prototype, table, {\n\t\t\theader_getLeafHeaders: {\n\t\t\t\tfn: (header) => header_getLeafHeaders(header),\n\t\t\t\tmemoDeps: (header) => [header.column.table.options.columns]\n\t\t\t},\n\t\t\theader_getContext: {\n\t\t\t\tfn: (header) => header_getContext(header),\n\t\t\t\tmemoDeps: (header) => [header.column.table.options.columns]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreHeadersFeature\", table, {\n\t\t\ttable_getHeaderGroups: {\n\t\t\t\tfn: () => table_getHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getFooterGroups: {\n\t\t\t\tfn: () => table_getFooterGroups(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getFlatHeaders: {\n\t\t\t\tfn: () => table_getFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getLeafHeaders: {\n\t\t\t\tfn: () => table_getLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreHeadersFeature };","import { makeObjectMap } from \"../../utils.js\";\n\n//#region src/core/rows/constructRow.ts\n/**\n* Creates or retrieves the row prototype for a table.\n* The prototype is cached on the table and shared by all row instances.\n*/\nfunction getRowPrototype(table) {\n\tif (!table._rowPrototype) {\n\t\ttable._rowPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignRowPrototype?.(table._rowPrototype, table);\n\t}\n\treturn table._rowPrototype;\n}\n/**\n* Constructs a row instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nconst constructRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n\tconst rowPrototype = getRowPrototype(table);\n\tconst row = Object.create(rowPrototype);\n\trow._displayIndexCache = -1;\n\trow._uniqueValuesCache = makeObjectMap();\n\trow._valuesCache = makeObjectMap();\n\trow.depth = depth;\n\trow.id = id;\n\trow.index = rowIndex;\n\trow.original = original;\n\trow.parentId = parentId;\n\trow.subRows = subRows ?? [];\n\tconst initFns = table._rowInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](row);\n\treturn row;\n};\n\n//#endregion\nexport { constructRow };","//#region src/features/row-sorting/sortFns.ts\n/**\n* Regular expression used to split mixed text and numeric chunks.\n*\n* The alphanumeric sort functions use these chunks for natural sorting of\n* strings like `item2` before `item10`.\n*/\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n/**\n* Builds a `SortFn` from a value-level comparator plus an optional\n* `resolveDataValue` normalizer.\n*\n* The `sort` comparator receives both rows' data values, each already passed\n* through `resolveDataValue` when one is defined. Keeping normalization in the\n* resolver means a variant of an existing sorting function only has to swap\n* the resolver, not re-implement the comparison.\n*\n* The definition is attached to the returned function, so a variant can be\n* created by spreading a built-in sorting function and overriding what\n* differs:\n*\n* ```ts\n* const stripDiacritics = (value: string) =>\n*   value.normalize('NFD').replace(/\\p{Diacritic}/gu, '')\n*\n* const alphanumericIgnoreDiacritics = constructSortFn({\n*   ...sortFn_alphanumeric,\n*   resolveDataValue: (value) =>\n*     stripDiacritics(sortFn_alphanumeric.resolveDataValue!(value)),\n* })\n* ```\n*/\nfunction constructSortFn(def) {\n\tconst sortFn = Object.assign((rowA, rowB, columnId) => {\n\t\tlet dataValueA = rowA.getValue(columnId);\n\t\tlet dataValueB = rowB.getValue(columnId);\n\t\tconst resolveDataValue = sortFn.resolveDataValue;\n\t\tif (resolveDataValue) {\n\t\t\tdataValueA = resolveDataValue(dataValueA);\n\t\t\tdataValueB = resolveDataValue(dataValueB);\n\t\t}\n\t\treturn sortFn.sort(dataValueA, dataValueB, rowA, rowB, columnId);\n\t}, def);\n\treturn sortFn;\n}\n/**\n* Sorts rows with the built-in alphanumeric strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_alphanumeric = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),\n\tsort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in alphanumeric case sensitive strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_alphanumericCaseSensitive = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue),\n\tsort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in text strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_text = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),\n\tsort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in text case sensitive strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_textCaseSensitive = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue),\n\tsort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in datetime strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_datetime = constructSortFn({\n\tresolveDataValue: (dataValue) => toDateSortValue(dataValue),\n\tsort: (dataValueA, dataValueB) => dataValueA > dataValueB ? 1 : dataValueA < dataValueB ? -1 : 0\n});\n/**\n* Sorts rows with the built-in basic strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_basic = constructSortFn({ sort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB) });\nfunction compareBasic(a, b) {\n\treturn a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toDateSortValue(value) {\n\treturn value instanceof Date ? value.getTime() : value;\n}\nfunction toString(a) {\n\tif (typeof a === \"number\") {\n\t\tif (isNaN(a) || a === Infinity || a === -Infinity) return \"\";\n\t\treturn String(a);\n\t}\n\tif (typeof a === \"string\") return a;\n\treturn \"\";\n}\nfunction compareAlphanumeric(aStr, bStr) {\n\tlet ai = 0;\n\tlet bi = 0;\n\tconst aLen = aStr.length;\n\tconst bLen = bStr.length;\n\twhile (ai < aLen && bi < bLen) {\n\t\tconst aIsNumeric = isDigit(aStr.charCodeAt(ai));\n\t\tconst bIsNumeric = isDigit(bStr.charCodeAt(bi));\n\t\tconst aEnd = findChunkEnd(aStr, ai, aIsNumeric);\n\t\tconst bEnd = findChunkEnd(bStr, bi, bIsNumeric);\n\t\tif (!aIsNumeric && !bIsNumeric) {\n\t\t\tconst stringComparison = compareStringChunks(aStr, ai, aEnd, bStr, bi, bEnd);\n\t\t\tif (stringComparison) return stringComparison;\n\t\t\tai = aEnd;\n\t\t\tbi = bEnd;\n\t\t\tcontinue;\n\t\t}\n\t\tif (aIsNumeric !== bIsNumeric) return aIsNumeric ? 1 : -1;\n\t\tconst numericComparison = compareNumericChunks(aStr, ai, aEnd, bStr, bi, bEnd);\n\t\tif (numericComparison) return numericComparison;\n\t\tai = aEnd;\n\t\tbi = bEnd;\n\t}\n\treturn countRemainingChunks(aStr, ai) - countRemainingChunks(bStr, bi);\n}\nfunction isDigit(charCode) {\n\treturn charCode >= 48 && charCode <= 57;\n}\nfunction findChunkEnd(str, start, isNumeric) {\n\tlet end = start + 1;\n\twhile (end < str.length && isDigit(str.charCodeAt(end)) === isNumeric) end++;\n\treturn end;\n}\nfunction compareStringChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {\n\tconst aLength = aEnd - aStart;\n\tconst bLength = bEnd - bStart;\n\tconst minLength = aLength < bLength ? aLength : bLength;\n\tfor (let i = 0; i < minLength; i++) {\n\t\tconst aCode = aStr.charCodeAt(aStart + i);\n\t\tconst bCode = bStr.charCodeAt(bStart + i);\n\t\tif (aCode > bCode) return 1;\n\t\tif (bCode > aCode) return -1;\n\t}\n\tif (aLength > bLength) return 1;\n\tif (bLength > aLength) return -1;\n\treturn 0;\n}\nfunction compareNumericChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {\n\tlet aSignificantStart = aStart;\n\twhile (aSignificantStart < aEnd && aStr.charCodeAt(aSignificantStart) === 48) aSignificantStart++;\n\tlet bSignificantStart = bStart;\n\twhile (bSignificantStart < bEnd && bStr.charCodeAt(bSignificantStart) === 48) bSignificantStart++;\n\tconst aSignificantLength = aEnd - aSignificantStart;\n\tconst bSignificantLength = bEnd - bSignificantStart;\n\tif (aSignificantLength === 0 && bSignificantLength === 0) return 0;\n\tif (aSignificantLength <= 15 && bSignificantLength <= 15) {\n\t\tconst an = parseSmallInt(aStr, aSignificantStart, aEnd);\n\t\tconst bn = parseSmallInt(bStr, bSignificantStart, bEnd);\n\t\tif (an > bn) return 1;\n\t\tif (bn > an) return -1;\n\t\treturn 0;\n\t}\n\tconst an = parseInt(aStr.slice(aStart, aEnd), 10);\n\tconst bn = parseInt(bStr.slice(bStart, bEnd), 10);\n\tif (an > bn) return 1;\n\tif (bn > an) return -1;\n\treturn 0;\n}\nfunction parseSmallInt(str, start, end) {\n\tlet result = 0;\n\tfor (let i = start; i < end; i++) result = result * 10 + str.charCodeAt(i) - 48;\n\treturn result;\n}\nfunction countRemainingChunks(str, start) {\n\tlet count = 0;\n\tlet index = start;\n\twhile (index < str.length) {\n\t\tcount++;\n\t\tindex = findChunkEnd(str, index, isDigit(str.charCodeAt(index)));\n\t}\n\treturn count;\n}\n/**\n* The built-in sorting function registry.\n*\n* Registering this full object opts out of tree-shaking: every built-in\n* sorting function ends up in your bundle. Prefer importing the `sortFn_*`\n* functions you actually use and registering just those in the `sortFns`\n* slot, or passing them directly to the `sortFn` column option.\n*\n* @deprecated Import individual `sortFn_*` functions instead for a smaller\n* bundle. This export still works and is not going away in v9, but built-in\n* name resolution (including `sortFn: 'auto'`) only finds functions you\n* register yourself.\n*/\nconst sortFns = {\n\talphanumeric: sortFn_alphanumeric,\n\talphanumericCaseSensitive: sortFn_alphanumericCaseSensitive,\n\tbasic: sortFn_basic,\n\tdatetime: sortFn_datetime,\n\ttext: sortFn_text,\n\ttextCaseSensitive: sortFn_textCaseSensitive\n};\n\n//#endregion\nexport { constructSortFn, reSplitAlphaNumeric, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns };","import { callMemoOrStaticFn, cloneState, makeObjectMap, setStateSlice } from \"../../utils.js\";\nimport { table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { applyCellSelectionBoundsOperations, expandCellSelectionBounds } from \"./cellSelectionGeometry.js\";\n\n//#region src/features/cell-selection/cellSelectionFeature.utils.ts\n/**\n* Creates the default cell selection state.\n*\n* The feature default is an empty selection. Reset APIs use this value when\n* `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const selection = getDefaultCellSelectionState()\n* ```\n*/\nfunction getDefaultCellSelectionState() {\n\treturn [];\n}\n/**\n* Routes a cell selection updater through the table's selection change handler.\n*\n* @example\n* ```ts\n* table_setCellSelection(table, (old) => old.slice(0, -1))\n* ```\n*/\nfunction table_setCellSelection(table, updater) {\n\ttable.options.onCellSelectionChange?.(updater);\n}\n/**\n* Resets `cellSelection` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.cellSelection` when it\n* exists. Passing `true` ignores initial state and resets to an empty selection.\n*\n* @example\n* ```ts\n* table_resetCellSelection(table, true)\n* ```\n*/\nfunction table_resetCellSelection(table, defaultState) {\n\tsetStateSlice(table, \"cellSelection\", defaultState ? getDefaultCellSelectionState() : cloneState(table.initialState.cellSelection) ?? getDefaultCellSelectionState());\n}\n/**\n* Schedules a cell selection reset after `data` changes.\n*\n* Ranges are stored as row and column ids, so without this a data swap would\n* leave a selection pointing at rows that no longer exist, or silently\n* re-select cells whenever new data reuses ids. The reset runs when\n* `autoResetAll` or `autoResetCellSelection` allows it, defaulting to on.\n*\n* Resetting to `initialState.cellSelection` rather than to empty means the\n* first row-model computation is a no-op, matching `table_autoResetExpanded`.\n*\n* @example\n* ```ts\n* table_autoResetCellSelection(table)\n* ```\n*/\nfunction table_autoResetCellSelection(table) {\n\tif (!table.atoms.cellSelection) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetCellSelection ?? true) table._reactivity.schedule(() => table_resetCellSelection(table));\n}\n/**\n* Returns the visible leaf columns in the order their cells actually render.\n*\n* This is deliberately not `getVisibleLeafColumns()`, which is\n* visibility-filtered but *not* pinning-reordered, and not `column_getIndex()`,\n* which indexes that same unpinned list. Cells render start-pinned first, then\n* center, then end (see `row_getVisibleCells`), so indexing a selection in the\n* unpinned order would make a dragged rectangle contiguous in index space but\n* visually scattered the moment a column is pinned.\n*\n* The pinning read is inlined rather than delegated to the column pinning\n* utils so this stays correct when that feature is absent, and so the ordering\n* provably matches `row_getVisibleCells`.\n*/\nfunction getDisplayOrderedColumns(table) {\n\tconst columns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tconst pinning = table.atoms.columnPinning?.get();\n\tif (!pinning || !pinning.start.length && !pinning.end.length) return columns;\n\tconst byId = makeObjectMap();\n\tfor (let i = 0; i < columns.length; i++) byId[columns[i].id] = columns[i];\n\tconst start = [];\n\tfor (let i = 0; i < pinning.start.length; i++) {\n\t\tconst column = byId[pinning.start[i]];\n\t\tif (column) start.push(column);\n\t}\n\tconst end = [];\n\tfor (let i = 0; i < pinning.end.length; i++) {\n\t\tconst column = byId[pinning.end[i]];\n\t\tif (column) end.push(column);\n\t}\n\tconst center = [];\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tif (!pinning.start.includes(column.id) && !pinning.end.includes(column.id)) center.push(column);\n\t}\n\treturn [\n\t\t...start,\n\t\t...center,\n\t\t...end\n\t];\n}\n/**\n* Builds a column id to render-order index map.\n*\n* Registered by this feature so the lookup stays memoized even when\n* `columnOrderingFeature` is absent, since that feature's `getColumnIndexes`\n* static rebuilds all four maps on every call, which would make per-cell reads\n* O(columns).\n*\n* @example\n* ```ts\n* const index = table_getCellSelectionColumnIndexes(table)[columnId]\n* ```\n*/\nfunction table_getCellSelectionColumnIndexes(table) {\n\tconst columns = getDisplayOrderedColumns(table);\n\tconst indexes = makeObjectMap();\n\tfor (let i = 0; i < columns.length; i++) indexes[columns[i].id] = i;\n\treturn indexes;\n}\nconst EMPTY_MERGE_BOUNDS = [];\nfunction probeCellSpanIndex(table) {\n\treturn table.getCellSpanIndex?.();\n}\n/**\n* Resolves the merged-cell rectangles of the rendered rows into selection's\n* own index space.\n*\n* The span index positions rows by their paginated render order while\n* selection positions them by pre-paginated display order, so each merge is\n* mapped through `row.getDisplayIndex()`. A merge whose rows do not map to a\n* contiguous display range is skipped defensively; it then behaves like\n* unmerged cells instead of corrupting the geometry.\n*\n* Returns an empty array when `cellSpanningFeature` is not registered, which\n* keeps every selection code path identical to the span-unaware behavior.\n*\n* @example\n* ```ts\n* const merges = table_getCellSelectionMergeBounds(table)\n* ```\n*/\nfunction table_getCellSelectionMergeBounds(table) {\n\tconst spanIndex = probeCellSpanIndex(table);\n\tif (!spanIndex) return EMPTY_MERGE_BOUNDS;\n\tconst columnIndexes = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes);\n\tconst merges = [];\n\tfor (const columnId in spanIndex.rowSpans) {\n\t\tconst columnIndex = columnIndexes[columnId];\n\t\tif (columnIndex === void 0) continue;\n\t\tconst spans = spanIndex.rowSpans[columnId];\n\t\tconst spanColumnIndex = spanIndex.columnIndexes[columnId];\n\t\tfor (let r = 0; r < spans.length; r++) {\n\t\t\tconst span = spans[r];\n\t\t\tif (span <= 1) continue;\n\t\t\tconst startRow = spanIndex.rows[r].getDisplayIndex();\n\t\t\tconst endRow = spanIndex.rows[r + span - 1].getDisplayIndex();\n\t\t\tif (startRow < 0 || endRow - startRow !== span - 1) continue;\n\t\t\tconst colSpan = spanColumnIndex === void 0 ? 1 : Math.max(spanIndex.colSpans[r]?.[spanColumnIndex] ?? 1, 1);\n\t\t\tmerges.push({\n\t\t\t\tminRowIndex: startRow,\n\t\t\t\tmaxRowIndex: endRow,\n\t\t\t\tminColumnIndex: columnIndex,\n\t\t\t\tmaxColumnIndex: columnIndex + colSpan - 1\n\t\t\t});\n\t\t}\n\t}\n\tif (spanIndex.colSpans.length) {\n\t\tconst columnIdBySpanIndex = [];\n\t\tfor (const columnId in spanIndex.columnIndexes) columnIdBySpanIndex[spanIndex.columnIndexes[columnId]] = columnId;\n\t\tfor (let r = 0; r < spanIndex.colSpans.length; r++) {\n\t\t\tconst rowColSpans = spanIndex.colSpans[r];\n\t\t\tif (!rowColSpans) continue;\n\t\t\tconst displayRow = spanIndex.rows[r]?.getDisplayIndex() ?? -1;\n\t\t\tif (displayRow < 0) continue;\n\t\t\tfor (let c = 0; c < rowColSpans.length; c++) {\n\t\t\t\tconst span = rowColSpans[c];\n\t\t\t\tif (span <= 1) continue;\n\t\t\t\tconst columnId = columnIdBySpanIndex[c];\n\t\t\t\tif (columnId === void 0) continue;\n\t\t\t\tconst vertical = spanIndex.rowSpans[columnId];\n\t\t\t\tif (vertical && vertical[r] !== 1) continue;\n\t\t\t\tconst columnIndex = columnIndexes[columnId];\n\t\t\t\tif (columnIndex === void 0) continue;\n\t\t\t\tmerges.push({\n\t\t\t\t\tminRowIndex: displayRow,\n\t\t\t\t\tmaxRowIndex: displayRow,\n\t\t\t\t\tminColumnIndex: columnIndex,\n\t\t\t\t\tmaxColumnIndex: columnIndex + span - 1\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn merges;\n}\nfunction findMergeBoundsAt(merges, rowIndex, columnIndex) {\n\tfor (let i = 0; i < merges.length; i++) {\n\t\tconst merge = merges[i];\n\t\tif (rowIndex >= merge.minRowIndex && rowIndex <= merge.maxRowIndex && columnIndex >= merge.minColumnIndex && columnIndex <= merge.maxColumnIndex) return merge;\n\t}\n}\n/**\n* Resolves a row id to its display-order index, or `-1` when it no longer\n* identifies a row in the current order.\n*\n* Callers must have already called `table.getRowsInDisplayOrder()`, which is\n* what populates the display index cache each row reads.\n*/\nfunction resolveRowIndex(table, rows, rowId) {\n\tconst row = table.getPrePaginatedRowModel().rowsById[rowId] ?? table.getCoreRowModel().rowsById[rowId];\n\tif (!row) return -1;\n\tconst index = row.getDisplayIndex();\n\tif (index < 0 || index >= rows.length || rows[index]?.id !== rowId) return -1;\n\treturn index;\n}\n/**\n* Resolves ordered range operations into disjoint, positive display-order\n* index rectangles.\n*\n* This is the single cache every per-cell read goes through, so index lookups\n* happen once per invalidation rather than once per cell. A range whose corners\n* no longer resolve, for example because its anchor row was filtered out, is\n* omitted rather than clamped, so it contributes nothing while remaining in\n* state and returns intact when the filter clears.\n*\n* @example\n* ```ts\n* const bounds = table_getCellSelectionBounds(table)\n* ```\n*/\nfunction table_getCellSelectionBounds(table) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tif (!ranges?.length) return [];\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columnIndexes = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes);\n\tconst operations = [];\n\tfor (let i = 0; i < ranges.length; i++) {\n\t\tconst range = ranges[i];\n\t\tconst anchorRowIndex = resolveRowIndex(table, rows, range.anchorRowId);\n\t\tconst focusRowIndex = resolveRowIndex(table, rows, range.focusRowId);\n\t\tconst anchorColumnIndex = columnIndexes[range.anchorColumnId] ?? -1;\n\t\tconst focusColumnIndex = columnIndexes[range.focusColumnId] ?? -1;\n\t\tif (anchorRowIndex < 0 || focusRowIndex < 0 || anchorColumnIndex < 0 || focusColumnIndex < 0) continue;\n\t\toperations.push({\n\t\t\tminRowIndex: Math.min(anchorRowIndex, focusRowIndex),\n\t\t\tmaxRowIndex: Math.max(anchorRowIndex, focusRowIndex),\n\t\t\tminColumnIndex: Math.min(anchorColumnIndex, focusColumnIndex),\n\t\t\tmaxColumnIndex: Math.max(anchorColumnIndex, focusColumnIndex),\n\t\t\toperation: range.operation ?? \"include\"\n\t\t});\n\t}\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tif (merges.length) for (let i = 0; i < operations.length; i++) {\n\t\tconst operation = operations[i];\n\t\tconst expanded = expandCellSelectionBounds(operation, merges);\n\t\toperation.minRowIndex = expanded.minRowIndex;\n\t\toperation.maxRowIndex = expanded.maxRowIndex;\n\t\toperation.minColumnIndex = expanded.minColumnIndex;\n\t\toperation.maxColumnIndex = expanded.maxColumnIndex;\n\t}\n\treturn applyCellSelectionBoundsOperations(operations);\n}\n/**\n* Tests whether an index pair falls inside any resolved rectangle.\n*/\nfunction isWithinBounds(bounds, rowIndex, columnIndex) {\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tif (rowIndex >= bound.minRowIndex && rowIndex <= bound.maxRowIndex && columnIndex >= bound.minColumnIndex && columnIndex <= bound.maxColumnIndex) return true;\n\t}\n\treturn false;\n}\n/**\n* Checks whether this cell can currently be selected.\n*\n* A column def opting out with `enableCellSelection: false` wins over the table\n* option, matching how the other per-column enable flags resolve.\n*\n* @example\n* ```ts\n* const canSelect = cell_getCanSelect(cell)\n* ```\n*/\nfunction cell_getCanSelect(cell) {\n\tif (cell.column.columnDef.enableCellSelection === false) return false;\n\tconst enabled = cell.table.options.enableCellSelection;\n\tif (typeof enabled === \"function\") return enabled(cell);\n\treturn enabled ?? true;\n}\n/**\n* Resolves a cell to the coordinates every selection read needs.\n*\n* Shared by `getIsSelected` and `getSelectionEdges` so a render pass resolves\n* each cell once. Resolving in both meant every cell paid for the bounds memo,\n* the display index, and the column index map twice over.\n*\n* Returns `null` when the cell cannot participate in a selection at all.\n*/\nfunction resolveCellPosition(cell) {\n\tconst table = cell.table;\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return null;\n\tif (!callMemoOrStaticFn(cell, \"getCanSelect\", cell_getCanSelect)) return null;\n\tconst rowIndex = cell.row.getDisplayIndex();\n\tif (rowIndex < 0) return null;\n\tconst columnIndex = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes)[cell.column.id] ?? -1;\n\tif (columnIndex < 0) return null;\n\treturn {\n\t\tbounds,\n\t\trowIndex,\n\t\tcolumnIndex\n\t};\n}\n/**\n* Checks whether this cell falls inside the final positive selection.\n*\n* Deliberately not memoized. Registering this through `assignPrototypeAPIs`\n* with `memoDeps` would allocate a memo closure and dependency array per cell,\n* which costs more than the handful of integer comparisons it would save.\n*\n* @example\n* ```ts\n* const isSelected = cell_getIsSelected(cell)\n* ```\n*/\nfunction cell_getIsSelected(cell) {\n\tconst position = resolveCellPosition(cell);\n\tif (!position) return false;\n\treturn isWithinBounds(position.bounds, position.rowIndex, position.columnIndex);\n}\n/**\n* Checks whether this cell is the active cell.\n*\n* @example\n* ```ts\n* const isFocused = cell_getIsFocused(cell)\n* ```\n*/\nfunction cell_getIsFocused(cell) {\n\tconst ranges = cell.table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) return false;\n\treturn active.anchorRowId === cell.row.id && active.anchorColumnId === cell.column.id;\n}\n/**\n* Returns `0` for the focused cell and `-1` otherwise, for roving tabindex.\n*\n* @example\n* ```ts\n* const tabIndex = cell_getTabIndex(cell)\n* ```\n*/\nfunction cell_getTabIndex(cell) {\n\treturn callMemoOrStaticFn(cell, \"getIsFocused\", cell_getIsFocused) ? 0 : -1;\n}\n/**\n* Returns which sides of this cell sit on the outer boundary of the selection.\n*\n* A side is an edge when the neighbouring cell in that direction is not itself\n* covered by a range, which is what lets a consumer draw a single outline\n* around an arbitrary union of rectangles.\n*\n* @example\n* ```ts\n* const { top, right, bottom, left } = cell_getSelectionEdges(cell)\n* ```\n*/\nfunction cell_getSelectionEdges(cell) {\n\tconst none = {\n\t\ttop: false,\n\t\tright: false,\n\t\tbottom: false,\n\t\tleft: false\n\t};\n\tconst position = resolveCellPosition(cell);\n\tif (!position) return none;\n\tconst { bounds, rowIndex, columnIndex } = position;\n\tif (!isWithinBounds(bounds, rowIndex, columnIndex)) return none;\n\tconst merges = callMemoOrStaticFn(cell.table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tconst merge = merges.length ? findMergeBoundsAt(merges, rowIndex, columnIndex) : void 0;\n\tif (!merge) return {\n\t\ttop: !isWithinBounds(bounds, rowIndex - 1, columnIndex),\n\t\tright: !isWithinBounds(bounds, rowIndex, columnIndex + 1),\n\t\tbottom: !isWithinBounds(bounds, rowIndex + 1, columnIndex),\n\t\tleft: !isWithinBounds(bounds, rowIndex, columnIndex - 1)\n\t};\n\treturn {\n\t\ttop: isStripOutside(bounds, merge.minRowIndex - 1, merge.minColumnIndex, merge.maxColumnIndex, true),\n\t\tright: isStripOutside(bounds, merge.maxColumnIndex + 1, merge.minRowIndex, merge.maxRowIndex, false),\n\t\tbottom: isStripOutside(bounds, merge.maxRowIndex + 1, merge.minColumnIndex, merge.maxColumnIndex, true),\n\t\tleft: isStripOutside(bounds, merge.minColumnIndex - 1, merge.minRowIndex, merge.maxRowIndex, false)\n\t};\n}\nfunction isStripOutside(bounds, fixedIndex, from, to, fixedIsRow) {\n\tfor (let i = from; i <= to; i++) if (!isWithinBounds(bounds, fixedIsRow ? fixedIndex : i, fixedIsRow ? i : fixedIndex)) return true;\n\treturn false;\n}\n/**\n* Returns the active cell, i.e. the anchor of the most recent operation.\n*\n* Focus is derived rather than stored: in spreadsheet semantics, dragging from\n* A1 to C5 leaves the active cell at A1, so the active range's anchor already\n* is the active cell.\n*\n* @example\n* ```ts\n* const cell = table_getFocusedCell(table)\n* ```\n*/\nfunction table_getFocusedCell(table) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) return void 0;\n\treturn (table.getPrePaginatedRowModel().rowsById[active.anchorRowId] ?? table.getCoreRowModel().rowsById[active.anchorRowId])?.getAllCellsByColumnId()[active.anchorColumnId];\n}\n/**\n* Collapses the selection to a single cell at the given coordinates.\n*\n* @example\n* ```ts\n* table_setFocusedCell(table, '3', 'firstName')\n* ```\n*/\nfunction table_setFocusedCell(table, rowId, columnId) {\n\ttable_selectCellRange(table, {\n\t\tanchorRowId: rowId,\n\t\tanchorColumnId: columnId,\n\t\tfocusRowId: rowId,\n\t\tfocusColumnId: columnId\n\t});\n}\n/**\n* Selects a rectangle using replace, include, or exclude semantics.\n*\n* @example\n* ```ts\n* table_selectCellRange(table, range, { mode: 'exclude' })\n* ```\n*/\nfunction table_selectCellRange(table, range, opts) {\n\tconst mode = opts?.mode ?? (opts?.additive ? \"include\" : \"replace\");\n\tconst { operation: _operation, ...coordinates } = range;\n\tconst nextRange = mode === \"exclude\" ? {\n\t\t...coordinates,\n\t\toperation: \"exclude\"\n\t} : coordinates;\n\ttable_setCellSelection(table, (old) => mode === \"replace\" ? [nextRange] : [...old, nextRange]);\n}\n/**\n* Returns the visible leaf columns that permit selection, in display order.\n*\n* A column-level opt-out is enough to exclude a column here; a per-cell\n* predicate is not consulted, since navigation and select-all work in column\n* space rather than cell space.\n*/\nfunction getSelectableColumns(table) {\n\tconst columns = getDisplayOrderedColumns(table);\n\tif (table.options.enableCellSelection === false) return [];\n\treturn columns.filter((column) => column.columnDef.enableCellSelection !== false);\n}\n/**\n* Selects every selectable cell in the table as one range.\n*\n* @example\n* ```ts\n* table_selectAllCells(table)\n* ```\n*/\nfunction table_selectAllCells(table) {\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columns = getSelectableColumns(table);\n\tif (!rows.length || !columns.length) return;\n\ttable_selectCellRange(table, {\n\t\tanchorRowId: rows[0].id,\n\t\tanchorColumnId: columns[0].id,\n\t\tfocusRowId: rows[rows.length - 1].id,\n\t\tfocusColumnId: columns[columns.length - 1].id\n\t});\n}\n/**\n* Resolves a direction into row and column deltas.\n*/\nfunction getDirectionDelta(direction) {\n\tswitch (direction) {\n\t\tcase \"up\": return {\n\t\t\trowDelta: -1,\n\t\t\tcolumnDelta: 0\n\t\t};\n\t\tcase \"down\": return {\n\t\t\trowDelta: 1,\n\t\t\tcolumnDelta: 0\n\t\t};\n\t\tcase \"left\": return {\n\t\t\trowDelta: 0,\n\t\t\tcolumnDelta: -1\n\t\t};\n\t\tdefault: return {\n\t\t\trowDelta: 0,\n\t\t\tcolumnDelta: 1\n\t\t};\n\t}\n}\n/**\n* Steps one cell in a direction from a starting coordinate.\n*\n* Columns that cannot be selected are skipped over rather than landed on, so\n* arrow navigation never parks on an opted-out column. Returns `null` when the\n* step would leave the grid or find no selectable column.\n*/\nfunction stepCoordinate(table, rowId, columnId, direction) {\n\tconst rows = table.getRowModel().rows;\n\tconst columns = getDisplayOrderedColumns(table);\n\tif (!rows.length || !columns.length) return null;\n\tconst { rowDelta, columnDelta } = getDirectionDelta(direction);\n\tconst rowIndex = rows.findIndex((row) => row.id === rowId);\n\tconst columnIndex = columns.findIndex((column) => column.id === columnId);\n\tif (rowIndex < 0 || columnIndex < 0) return null;\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tlet fromRowIndex = rows[rowIndex].getDisplayIndex();\n\tlet fromColumnIndex = columnIndex;\n\tif (merges.length) {\n\t\tconst startMerge = findMergeBoundsAt(merges, rowIndex, columnIndex);\n\t\tif (startMerge) {\n\t\t\tif (rowDelta > 0) fromRowIndex = startMerge.maxRowIndex;\n\t\t\tif (rowDelta < 0) fromRowIndex = startMerge.minRowIndex;\n\t\t\tif (columnDelta > 0) fromColumnIndex = startMerge.maxColumnIndex;\n\t\t\tif (columnDelta < 0) fromColumnIndex = startMerge.minColumnIndex;\n\t\t}\n\t}\n\tlet nextRowIndex = rowIndex + rowDelta;\n\tif (rowDelta && fromRowIndex !== rows[rowIndex].getDisplayIndex()) {\n\t\tconst edgeRowIndex = rows.findIndex((row) => row.getDisplayIndex() === fromRowIndex);\n\t\tif (edgeRowIndex < 0) return null;\n\t\tnextRowIndex = edgeRowIndex + rowDelta;\n\t}\n\tif (nextRowIndex < 0 || nextRowIndex >= rows.length) return null;\n\tconst selectableColumnIds = new Set(getSelectableColumns(table).map((column) => column.id));\n\tif (!selectableColumnIds.size) return null;\n\tlet nextColumnIndex = fromColumnIndex;\n\tif (columnDelta) do\n\t\tnextColumnIndex += columnDelta;\n\twhile (nextColumnIndex >= 0 && nextColumnIndex < columns.length && !selectableColumnIds.has(columns[nextColumnIndex].id));\n\telse if (!selectableColumnIds.has(columnId)) for (let distance = 1; distance < columns.length; distance++) {\n\t\tconst before = columns[columnIndex - distance];\n\t\tconst after = columns[columnIndex + distance];\n\t\tif (before && selectableColumnIds.has(before.id)) {\n\t\t\tnextColumnIndex = columnIndex - distance;\n\t\t\tbreak;\n\t\t}\n\t\tif (after && selectableColumnIds.has(after.id)) {\n\t\t\tnextColumnIndex = columnIndex + distance;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (nextColumnIndex < 0 || nextColumnIndex >= columns.length || !selectableColumnIds.has(columns[nextColumnIndex].id)) return null;\n\tlet landingRowIndex = nextRowIndex;\n\tlet landingColumnIndex = nextColumnIndex;\n\tif (merges.length) {\n\t\tconst landingMerge = findMergeBoundsAt(merges, rows[nextRowIndex].getDisplayIndex(), nextColumnIndex);\n\t\tif (landingMerge) {\n\t\t\tlandingRowIndex = rows.findIndex((row) => row.getDisplayIndex() === landingMerge.minRowIndex);\n\t\t\tif (landingRowIndex < 0) return null;\n\t\t\tlandingColumnIndex = landingMerge.minColumnIndex;\n\t\t}\n\t}\n\tconst landingRow = rows[landingRowIndex];\n\tconst landingColumn = columns[landingColumnIndex];\n\tif (!landingRow || !landingColumn) return null;\n\treturn {\n\t\trowId: landingRow.id,\n\t\tcolumnId: landingColumn.id\n\t};\n}\n/**\n* Moves the selection one step in a direction, collapsing it to a single cell.\n*\n* With nothing selected, this selects the first selectable cell so keyboard\n* navigation has somewhere to start.\n*\n* @example\n* ```ts\n* table_moveCellSelection(table, 'down')\n* ```\n*/\nfunction table_moveCellSelection(table, direction) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) {\n\t\tconst rows = table.getRowModel().rows;\n\t\tconst columns = getSelectableColumns(table);\n\t\tif (!rows.length || !columns.length) return;\n\t\ttable_setFocusedCell(table, rows[0].id, columns[0].id);\n\t\treturn;\n\t}\n\tconst next = stepCoordinate(table, active.anchorRowId, active.anchorColumnId, direction);\n\tif (!next) return;\n\ttable_setFocusedCell(table, next.rowId, next.columnId);\n}\n/**\n* Extends the active range one step in a direction, keeping its anchor fixed.\n*\n* @example\n* ```ts\n* table_extendCellSelection(table, 'right')\n* ```\n*/\nfunction table_extendCellSelection(table, direction) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) {\n\t\ttable_moveCellSelection(table, direction);\n\t\treturn;\n\t}\n\tconst next = stepCoordinate(table, active.focusRowId, active.focusColumnId, direction);\n\tif (!next) return;\n\ttable_setCellSelection(table, (old) => {\n\t\tif (!old.length) return old;\n\t\tconst nextRanges = old.slice(0, -1);\n\t\tnextRanges.push({\n\t\t\t...old[old.length - 1],\n\t\t\tfocusRowId: next.rowId,\n\t\t\tfocusColumnId: next.columnId\n\t\t});\n\t\treturn nextRanges;\n\t});\n}\n/**\n* Walks each final positive region, invoking a visitor per selectable cell.\n*\n* Every expansion API shares this so the per-cell enable predicate is applied\n* in exactly one place.\n*/\nfunction forEachSelectedCell(table, visit, skipCovered = false) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return;\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columns = getDisplayOrderedColumns(table);\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let rowIndex = bound.minRowIndex; rowIndex <= bound.maxRowIndex; rowIndex++) {\n\t\t\tconst row = rows[rowIndex];\n\t\t\tif (!row) continue;\n\t\t\tconst cellsByColumnId = row.getAllCellsByColumnId();\n\t\t\tfor (let columnIndex = bound.minColumnIndex; columnIndex <= bound.maxColumnIndex; columnIndex++) {\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (!column) continue;\n\t\t\t\tconst cell = cellsByColumnId[column.id];\n\t\t\t\tif (!cell) continue;\n\t\t\t\tif (!callMemoOrStaticFn(cell, \"getCanSelect\", cell_getCanSelect)) continue;\n\t\t\t\tif (skipCovered && cell.getIsCovered?.()) continue;\n\t\t\t\tvisit(cell, i, rowIndex - bound.minRowIndex, columnIndex - bound.minColumnIndex);\n\t\t\t}\n\t\t}\n\t}\n}\n/**\n* Returns the ids of all selected cells, in row-major order.\n*\n* Cells covered by overlapping ranges are returned once, at their first\n* occurrence.\n*\n* @example\n* ```ts\n* const ids = table_getSelectedCellIds(table)\n* ```\n*/\nfunction table_getSelectedCellIds(table) {\n\tconst ids = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tforEachSelectedCell(table, (cell) => {\n\t\tif (seen.has(cell.id)) return;\n\t\tseen.add(cell.id);\n\t\tids.push(cell.id);\n\t}, true);\n\treturn ids;\n}\n/**\n* Returns each final positive region's values as a row-major grid.\n*\n* This is the raw material for clipboard export. Serializing it to text is left\n* to userland, since the delimiter, the null representation, and whether values\n* containing delimiters get quoted are all application decisions.\n*\n* @example\n* ```ts\n* const [firstRange] = table_getSelectedCellRangesData(table)\n* ```\n*/\nfunction table_getSelectedCellRangesData(table) {\n\tconst grids = [];\n\tforEachSelectedCell(table, (cell, rangeIndex, rowOffset) => {\n\t\tconst grid = grids[rangeIndex] ??= [];\n\t\t(grid[rowOffset] ??= []).push(cell.getValue());\n\t});\n\treturn grids;\n}\n/**\n* Returns the number of selected cells.\n*\n* Uses rectangle arithmetic over the normalized, disjoint positive regions.\n* A per-cell `enableCellSelection` predicate requires enumeration.\n*\n* @example\n* ```ts\n* const count = table_getSelectedCellCount(table)\n* ```\n*/\nfunction table_getSelectedCellCount(table) {\n\tif (table.options.enableCellSelection === false) return 0;\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return 0;\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tif (typeof table.options.enableCellSelection === \"function\" || merges.length) {\n\t\tconst ids = /* @__PURE__ */ new Set();\n\t\tforEachSelectedCell(table, (cell) => ids.add(cell.id), true);\n\t\treturn ids.size;\n\t}\n\tconst columns = getDisplayOrderedColumns(table);\n\tlet count = 0;\n\tfor (const bound of bounds) {\n\t\tlet selectableColumns = 0;\n\t\tfor (let columnIndex = bound.minColumnIndex; columnIndex <= bound.maxColumnIndex; columnIndex++) {\n\t\t\tconst column = columns[columnIndex];\n\t\t\tif (!column) continue;\n\t\t\tif (column.columnDef.enableCellSelection !== false) selectableColumns++;\n\t\t}\n\t\tcount += (bound.maxRowIndex - bound.minRowIndex + 1) * selectableColumns;\n\t}\n\treturn count;\n}\n/**\n* Returns the ids of all rows intersected by the selection.\n*\n* @example\n* ```ts\n* const rowIds = table_getCellSelectionRowIds(table)\n* ```\n*/\nfunction table_getCellSelectionRowIds(table) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return [];\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst ids = [];\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let index = bound.minRowIndex; index <= bound.maxRowIndex; index++) {\n\t\t\tconst row = rows[index];\n\t\t\tif (!row || seen.has(row.id)) continue;\n\t\t\tseen.add(row.id);\n\t\t\tids.push(row.id);\n\t\t}\n\t}\n\treturn ids;\n}\n/**\n* Returns the ids of all columns intersected by the selection.\n*\n* @example\n* ```ts\n* const columnIds = table_getCellSelectionColumnIds(table)\n* ```\n*/\nfunction table_getCellSelectionColumnIds(table) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return [];\n\tconst columns = getDisplayOrderedColumns(table);\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst ids = [];\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let index = bound.minColumnIndex; index <= bound.maxColumnIndex; index++) {\n\t\t\tconst column = columns[index];\n\t\t\tif (!column || seen.has(column.id)) continue;\n\t\t\tif (column.columnDef.enableCellSelection === false) continue;\n\t\t\tseen.add(column.id);\n\t\t\tids.push(column.id);\n\t\t}\n\t}\n\treturn ids;\n}\n/**\n* Creates a handler that begins a selection at this cell.\n*\n* Follows `header_getResizeHandler`: the enable check is resolved once outside\n* the returned closure and guarded again inside it, the document is injectable\n* for SSR and cross-document rendering, and the document-level `mouseup`\n* listener is attached here so a drag released outside the table still ends.\n*\n* @example\n* ```tsx\n* <td onMouseDown={cell.getSelectionStartHandler()} />\n* ```\n*/\nfunction cell_getSelectionStartHandler(cell, _contextDocument) {\n\tconst canSelect = cell_getCanSelect(cell);\n\treturn (e) => {\n\t\tif (!canSelect) return;\n\t\tconst table = cell.table;\n\t\tconst options = table.options;\n\t\tconst contextDocument = _contextDocument ?? (typeof document !== \"undefined\" ? document : null);\n\t\tconst isRangeEvent = options.enableCellRangeSelection !== false && (options.isCellRangeSelectionEvent?.(e) ?? false);\n\t\tconst isMultiRangeEvent = options.enableMultiCellRangeSelection !== false && (options.isMultiCellRangeSelectionEvent?.(e) ?? false);\n\t\tif (options.enableCellSelectionDrag !== false && options.enableCellRangeSelection !== false && contextDocument) {\n\t\t\ttable._isSelectingCells = true;\n\t\t\tconst upHandler = () => {\n\t\t\t\tcontextDocument.removeEventListener(\"mouseup\", upHandler);\n\t\t\t\ttable._isSelectingCells = false;\n\t\t\t};\n\t\t\tcontextDocument.addEventListener(\"mouseup\", upHandler);\n\t\t}\n\t\tconst rowId = cell.row.id;\n\t\tconst columnId = cell.column.id;\n\t\tconst shouldExclude = isMultiRangeEvent && callMemoOrStaticFn(cell, \"getIsSelected\", cell_getIsSelected);\n\t\ttable_setCellSelection(table, (old) => {\n\t\t\tconst active = old[old.length - 1];\n\t\t\tif (isRangeEvent && active) {\n\t\t\t\tconst ranges = old.slice(0, -1);\n\t\t\t\tranges.push({\n\t\t\t\t\t...active,\n\t\t\t\t\tfocusRowId: rowId,\n\t\t\t\t\tfocusColumnId: columnId\n\t\t\t\t});\n\t\t\t\treturn ranges;\n\t\t\t}\n\t\t\tconst range = {\n\t\t\t\tanchorRowId: rowId,\n\t\t\t\tanchorColumnId: columnId,\n\t\t\t\tfocusRowId: rowId,\n\t\t\t\tfocusColumnId: columnId,\n\t\t\t\t...shouldExclude ? { operation: \"exclude\" } : {}\n\t\t\t};\n\t\t\treturn isMultiRangeEvent ? [...old, range] : [range];\n\t\t});\n\t};\n}\n/**\n* Creates a handler that extends the active range to this cell during a drag.\n*\n* No rAF coalescing is needed here, unlike the resize handler: `mouseenter`\n* fires once per cell boundary crossed rather than continuously, and deferring\n* it by a frame would only delay the highlight.\n*\n* @example\n* ```tsx\n* <td onMouseEnter={cell.getSelectionExtendHandler()} />\n* ```\n*/\nfunction cell_getSelectionExtendHandler(cell) {\n\tconst canSelect = cell_getCanSelect(cell);\n\treturn (_e) => {\n\t\tif (!canSelect) return;\n\t\tconst table = cell.table;\n\t\tif (!table._isSelectingCells) return;\n\t\tconst ranges = table.atoms.cellSelection?.get();\n\t\tconst active = ranges?.[ranges.length - 1];\n\t\tif (!active) return;\n\t\tconst rowId = cell.row.id;\n\t\tconst columnId = cell.column.id;\n\t\tif (active.focusRowId === rowId && active.focusColumnId === columnId) return;\n\t\ttable_setCellSelection(table, (old) => {\n\t\t\tif (!old.length) return old;\n\t\t\tconst next = old.slice(0, -1);\n\t\t\tnext.push({\n\t\t\t\t...old[old.length - 1],\n\t\t\t\tfocusRowId: rowId,\n\t\t\t\tfocusColumnId: columnId\n\t\t\t});\n\t\t\treturn next;\n\t\t});\n\t};\n}\n\n//#endregion\nexport { cell_getCanSelect, cell_getIsFocused, cell_getIsSelected, cell_getSelectionEdges, cell_getSelectionExtendHandler, cell_getSelectionStartHandler, cell_getTabIndex, getDefaultCellSelectionState, table_autoResetCellSelection, table_extendCellSelection, table_getCellSelectionBounds, table_getCellSelectionColumnIds, table_getCellSelectionColumnIndexes, table_getCellSelectionMergeBounds, table_getCellSelectionRowIds, table_getFocusedCell, table_getSelectedCellCount, table_getSelectedCellIds, table_getSelectedCellRangesData, table_moveCellSelection, table_resetCellSelection, table_selectAllCells, table_selectCellRange, table_setCellSelection, table_setFocusedCell };","import { cloneState, hasOwn, makeObjectMap, setStateSlice } from \"../../utils.js\";\n\n//#region src/features/row-expanding/rowExpandingFeature.utils.ts\n/**\n* Creates the default expanded state.\n*\n* The feature default is an empty map, meaning no rows are expanded. Reset APIs\n* use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const expanded = getDefaultExpandedState()\n* ```\n*/\nfunction getDefaultExpandedState() {\n\treturn makeObjectMap();\n}\n/**\n* Schedules an expanded-state reset after row-structure changes.\n*\n* The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n* client-side expanding behavior allows it. Manual expanding opts out unless\n* the reset options explicitly opt back in.\n*\n* @example\n* ```ts\n* table_autoResetExpanded(table)\n* ```\n*/\nfunction table_autoResetExpanded(table) {\n\tif (!table.atoms.expanded) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) table._reactivity.schedule(() => table_resetExpanded(table));\n}\n/**\n* Routes an expanded-state updater through the table's expanded change handler.\n*\n* The updater may be `true`, a row-id map, or a function of the previous\n* expanded state, matching the instance `table.setExpanded` behavior.\n*\n* @example\n* ```ts\n* table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n* ```\n*/\nfunction table_setExpanded(table, updater) {\n\ttable.options.onExpandedChange?.(updater);\n}\n/**\n* Expands or collapses every row.\n*\n* Passing `true` stores the special expanded-all state. Passing `false` stores\n* an empty map. Omitting the value toggles based on whether all rows are\n* currently expanded.\n*\n* The call is a no-op (no `onExpandedChange`) when no row can expand or when\n* the requested state matches the current state exactly.\n*\n* @example\n* ```ts\n* table_toggleAllRowsExpanded(table)\n* ```\n*/\nfunction table_toggleAllRowsExpanded(table, expanded) {\n\tconst currentExpanded = table.atoms.expanded?.get() ?? {};\n\tif (expanded ?? !table_getIsAllRowsExpanded(table)) {\n\t\tif (currentExpanded === true) return;\n\t\tif (!table_getCanSomeRowsExpand(table)) return;\n\t\ttable_setExpanded(table, true);\n\t} else {\n\t\tif (currentExpanded !== true && !Object.keys(currentExpanded).length) return;\n\t\ttable_setExpanded(table, makeObjectMap());\n\t}\n}\n/**\n* Resets `expanded` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.expanded` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetExpanded(table)\n* table_resetExpanded(table, true)\n* ```\n*/\nfunction table_resetExpanded(table, defaultState) {\n\tconst initialExpanded = table.initialState.expanded;\n\tsetStateSlice(table, \"expanded\", defaultState ? makeObjectMap() : initialExpanded === true ? true : Object.assign(makeObjectMap(), cloneState(initialExpanded ?? {})));\n}\n/**\n* Checks whether at least one pre-paginated row can expand.\n*\n* Pagination is intentionally ignored so controls can reflect expandable rows\n* that may not be on the current page.\n*\n* @example\n* ```ts\n* const canExpand = table_getCanSomeRowsExpand(table)\n* ```\n*/\nfunction table_getCanSomeRowsExpand(table) {\n\treturn table.getPrePaginatedRowModel().flatRows.some((row) => row_getCanExpand(row));\n}\n/**\n* Creates an event handler that toggles all rows expanded.\n*\n* @example\n* ```ts\n* const onClick = table_getToggleAllRowsExpandedHandler(table)\n* ```\n*/\nfunction table_getToggleAllRowsExpandedHandler(table) {\n\treturn (_e) => {\n\t\ttable_toggleAllRowsExpanded(table);\n\t};\n}\n/**\n* Checks whether any row is expanded.\n*\n* The special expanded-all value `true` counts as some rows expanded.\n*\n* @example\n* ```ts\n* const someExpanded = table_getIsSomeRowsExpanded(table)\n* ```\n*/\nfunction table_getIsSomeRowsExpanded(table) {\n\tconst expanded = table.atoms.expanded?.get() ?? {};\n\treturn expanded === true || Object.values(expanded).some(Boolean);\n}\n/**\n* Checks whether every expandable row in the current row model is expanded.\n*\n* The special expanded-all value `true` returns true immediately. Empty\n* expanded state returns false. Rows that cannot expand are ignored, so a\n* materialized expanded-all map (which only contains expandable row ids)\n* still counts as all rows expanded.\n*\n* @example\n* ```ts\n* const allExpanded = table_getIsAllRowsExpanded(table)\n* ```\n*/\nfunction table_getIsAllRowsExpanded(table) {\n\tconst expanded = table.atoms.expanded?.get() ?? {};\n\tif (expanded === true) return true;\n\tif (!Object.keys(expanded).length) return false;\n\tconst expandableRows = table.getRowModel().flatRows.filter((row) => row_getCanExpand(row));\n\tif (!expandableRows.length) return false;\n\tif (expandableRows.some((row) => !row_getIsExpanded(row))) return false;\n\treturn true;\n}\n/**\n* Computes the deepest expanded row id depth.\n*\n* Row ids are split on `.`; expanded-all state scans the current row model's\n* expandable rows, while explicit expanded state scans its expanded id keys.\n*\n* @example\n* ```ts\n* const depth = table_getExpandedDepth(table)\n* ```\n*/\nfunction table_getExpandedDepth(table) {\n\tlet maxDepth = 0;\n\tconst expanded = table.atoms.expanded?.get();\n\t(expanded === true ? Object.values(table.getRowModel().rowsById).filter((row) => row_getCanExpand(row)).map((row) => row.id) : Object.keys(expanded ?? {})).forEach((id) => {\n\t\tconst splitId = id.split(\".\");\n\t\tmaxDepth = Math.max(maxDepth, splitId.length);\n\t});\n\treturn maxDepth;\n}\n/**\n* Expands or collapses this row.\n*\n* Omitting `expanded` toggles the row. If the current state is expanded-all,\n* the function first materializes that state into a row-id map (containing\n* only expandable row ids) before applying the row-specific change.\n*\n* The call is a no-op (no `onExpandedChange`) when the requested state matches\n* the current state, or when expanding a row that cannot expand. Collapsing is\n* always allowed so stale expanded ids can be cleaned up.\n*\n* @example\n* ```ts\n* row_toggleExpanded(row)\n* ```\n*/\nfunction row_toggleExpanded(row, expanded) {\n\tconst currentExpanded = row.table.atoms.expanded?.get() ?? {};\n\tconst currentExists = currentExpanded === true || isExpandedRowId(currentExpanded, row.id);\n\tconst targetExpanded = expanded ?? !currentExists;\n\tif (targetExpanded === currentExists) return;\n\tif (targetExpanded && !row_getCanExpand(row)) return;\n\ttable_setExpanded(row.table, (old) => {\n\t\tconst exists = old === true ? true : isExpandedRowId(old, row.id);\n\t\tlet oldExpanded = makeObjectMap();\n\t\tif (old === true) Object.values(row.table.getRowModel().rowsById).forEach((rowModelRow) => {\n\t\t\tif (row_getCanExpand(rowModelRow)) oldExpanded[rowModelRow.id] = true;\n\t\t});\n\t\telse oldExpanded = Object.assign(makeObjectMap(), old);\n\t\tif (!exists && targetExpanded) {\n\t\t\toldExpanded[row.id] = true;\n\t\t\treturn oldExpanded;\n\t\t}\n\t\tif (exists && !targetExpanded) {\n\t\t\tconst rest = makeObjectMap();\n\t\t\tconst rowIds = Object.keys(oldExpanded);\n\t\t\tfor (let i = 0; i < rowIds.length; i++) {\n\t\t\t\tconst rowId = rowIds[i];\n\t\t\t\tif (rowId !== row.id && oldExpanded[rowId]) rest[rowId] = true;\n\t\t\t}\n\t\t\treturn rest;\n\t\t}\n\t\treturn old;\n\t});\n}\n/**\n* Checks whether this row is expanded.\n*\n* `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n* the row is expanded when expanded state is `true` or contains this row id.\n*\n* @example\n* ```ts\n* const expanded = row_getIsExpanded(row)\n* ```\n*/\nfunction row_getIsExpanded(row) {\n\tconst expanded = row.table.atoms.expanded?.get() ?? {};\n\treturn !!(row.table.options.getIsRowExpanded?.(row) ?? (expanded === true || isExpandedRowId(expanded, row.id)));\n}\nfunction isExpandedRowId(expanded, rowId) {\n\treturn !!(expanded && expanded !== true && hasOwn(expanded, rowId) && expanded[rowId]);\n}\n/**\n* Checks whether this row can be expanded.\n*\n* `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n* expanding is enabled and the row has subRows.\n*\n* @example\n* ```ts\n* const canExpand = row_getCanExpand(row)\n* ```\n*/\nfunction row_getCanExpand(row) {\n\treturn row.table.options.getRowCanExpand?.(row) ?? ((row.table.options.enableExpanding ?? true) && !!row.subRows.length);\n}\n/**\n* Checks whether every ancestor of this row is expanded.\n*\n* The current row is not considered; only its parent chain is walked.\n*\n* @example\n* ```ts\n* const parentsExpanded = row_getIsAllParentsExpanded(row)\n* ```\n*/\nfunction row_getIsAllParentsExpanded(row) {\n\tlet isFullyExpanded = true;\n\tlet currentRow = row;\n\twhile (isFullyExpanded && currentRow.parentId) {\n\t\tcurrentRow = row.table.getRow(currentRow.parentId, true);\n\t\tisFullyExpanded = row_getIsExpanded(currentRow);\n\t}\n\treturn isFullyExpanded;\n}\n/**\n* Creates a row control handler that toggles this row's expanded state.\n*\n* The handler is a no-op when the row cannot expand.\n*\n* @example\n* ```ts\n* const onClick = row_getToggleExpandedHandler(row)\n* ```\n*/\nfunction row_getToggleExpandedHandler(row) {\n\tconst canExpand = row_getCanExpand(row);\n\treturn () => {\n\t\tif (!canExpand) return;\n\t\trow_toggleExpanded(row);\n\t};\n}\n\n//#endregion\nexport { getDefaultExpandedState, row_getCanExpand, row_getIsAllParentsExpanded, row_getIsExpanded, row_getToggleExpandedHandler, row_toggleExpanded, table_autoResetExpanded, table_getCanSomeRowsExpand, table_getExpandedDepth, table_getIsAllRowsExpanded, table_getIsSomeRowsExpanded, table_getToggleAllRowsExpandedHandler, table_resetExpanded, table_setExpanded, table_toggleAllRowsExpanded };","import { cloneState, functionalUpdate, setStateSlice } from \"../../utils.js\";\n\n//#region src/features/row-pagination/rowPaginationFeature.utils.ts\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n/**\n* Creates the default pagination state used by the pagination feature.\n*\n* The feature default starts at the first page with a page size of 10. Reset\n* APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const pagination = getDefaultPaginationState()\n* ```\n*/\nfunction getDefaultPaginationState() {\n\treturn {\n\t\tpageIndex: defaultPageIndex,\n\t\tpageSize: defaultPageSize\n\t};\n}\n/**\n* Resets the page index when a page-altering change should return to page 0.\n*\n* The reset runs when `autoResetAll`, `autoResetPageIndex`, or the default\n* client-side pagination behavior allows it. Manual pagination opts out unless\n* the reset options explicitly opt back in.\n*\n* @example\n* ```ts\n* table_autoResetPageIndex(table)\n* ```\n*/\nfunction table_autoResetPageIndex(table) {\n\tif (table.options.autoResetAll ?? table.options.autoResetPageIndex ?? !table.options.manualPagination) {\n\t\tif ((table.atoms.pagination?.get()?.pageIndex ?? defaultPageIndex) === defaultPageIndex) return;\n\t\ttable_resetPageIndex(table, true);\n\t}\n}\n/**\n* Routes a pagination updater through the table's pagination change handler.\n*\n* The updater may be a next state object or a function of the previous\n* `PaginationState`; controlled state and external atoms observe the same\n* updater path as the instance API.\n*\n* @example\n* ```ts\n* table_setPagination(table, (old) => old)\n* ```\n*/\nfunction table_setPagination(table, updater) {\n\tsetStateSlice(table, \"pagination\", updater);\n}\n/**\n* Resets `pagination` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.pagination` when it\n* exists. Passing `true` ignores initial state and resets to\n* `{ pageIndex: 0, pageSize: 10 }`.\n*\n* @example\n* ```ts\n* table_resetPagination(table)\n* table_resetPagination(table, true)\n* ```\n*/\nfunction table_resetPagination(table, defaultState) {\n\ttable_setPagination(table, defaultState ? getDefaultPaginationState() : cloneState(table.initialState.pagination ?? getDefaultPaginationState()));\n}\n/**\n* Updates `pagination.pageIndex` and clamps it to the known page range.\n*\n* Unknown page counts (`undefined` or `-1`) allow any non-negative page index.\n* Known page counts clamp the index between `0` and `pageCount - 1`.\n*\n* @example\n* ```ts\n* table_setPageIndex(table, (old) => old)\n* ```\n*/\nfunction table_setPageIndex(table, updater) {\n\ttable_setPagination(table, (old) => {\n\t\tlet pageIndex = functionalUpdate(updater, old.pageIndex);\n\t\tconst maxPageIndex = typeof table.options.pageCount === \"undefined\" || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n\t\tpageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n\t\treturn {\n\t\t\t...old,\n\t\t\tpageIndex\n\t\t};\n\t});\n}\n/**\n* Resets only `pagination.pageIndex`.\n*\n* With no argument, the reset uses `table.initialState.pagination?.pageIndex`\n* or `0`. Passing `true` always resets the page index to `0`.\n*\n* @example\n* ```ts\n* table_resetPageIndex(table)\n* table_resetPageIndex(table, true)\n* ```\n*/\nfunction table_resetPageIndex(table, defaultState) {\n\ttable_setPageIndex(table, defaultState ? defaultPageIndex : table.initialState.pagination?.pageIndex ?? defaultPageIndex);\n}\n/**\n* Resets only `pagination.pageSize`.\n*\n* With no argument, the reset uses `table.initialState.pagination?.pageSize`\n* or `10`. Passing `true` always resets the page size to `10`.\n*\n* @example\n* ```ts\n* table_resetPageSize(table)\n* table_resetPageSize(table, true)\n* ```\n*/\nfunction table_resetPageSize(table, defaultState) {\n\ttable_setPageSize(table, defaultState ? defaultPageSize : table.initialState.pagination?.pageSize ?? defaultPageSize);\n}\n/**\n* Updates `pagination.pageSize` while preserving the current top row.\n*\n* The new size is clamped to at least `1`, and `pageIndex` is recalculated so\n* the row that was previously at the top of the page remains in view.\n*\n* @example\n* ```ts\n* table_setPageSize(table, (old) => old)\n* ```\n*/\nfunction table_setPageSize(table, updater) {\n\ttable_setPagination(table, (old) => {\n\t\tconst pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n\t\tconst topRowIndex = old.pageSize === Infinity ? 0 : old.pageSize * old.pageIndex;\n\t\tconst pageIndex = pageSize === Infinity ? 0 : Math.floor(topRowIndex / pageSize);\n\t\treturn {\n\t\t\t...old,\n\t\t\tpageIndex,\n\t\t\tpageSize\n\t\t};\n\t});\n}\n/**\n* Builds the zero-based page indexes available for the current page count.\n*\n* Unknown or empty page counts return an empty array; otherwise the result is\n* `[0, 1, ...pageCount - 1]`.\n*\n* @example\n* ```ts\n* const pageIndexes = table_getPageOptions(table)\n* ```\n*/\nfunction table_getPageOptions(table) {\n\tconst pageCount = table_getPageCount(table);\n\tlet pageOptions = [];\n\tif (pageCount && pageCount > 0) pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n\treturn pageOptions;\n}\n/**\n* Checks whether the current page index can move backward.\n*\n* The first page is page index `0`, so only positive page indexes can navigate\n* to a previous page.\n*\n* @example\n* ```ts\n* const canGoBack = table_getCanPreviousPage(table)\n* ```\n*/\nfunction table_getCanPreviousPage(table) {\n\treturn (table.atoms.pagination?.get()?.pageIndex ?? 0) > 0;\n}\n/**\n* Checks whether the current page index can move forward.\n*\n* A `pageCount` of `-1` means the caller does not know the total page count, so\n* this returns `true`. A page count of `0` returns `false`.\n*\n* @example\n* ```ts\n* const canGoForward = table_getCanNextPage(table)\n* ```\n*/\nfunction table_getCanNextPage(table) {\n\tconst pageIndex = table.atoms.pagination?.get()?.pageIndex ?? defaultPageIndex;\n\tconst pageCount = table_getPageCount(table);\n\tif (pageCount === -1) return true;\n\tif (pageCount === 0) return false;\n\treturn pageIndex < pageCount - 1;\n}\n/**\n* Checks whether a known, finite last page exists after the current page.\n*\n* Unknown (`-1`), empty, and non-finite page counts do not have a navigable\n* last page.\n*\n* @example\n* ```ts\n* const canGoToLastPage = table_getCanLastPage(table)\n* ```\n*/\nfunction table_getCanLastPage(table) {\n\tconst pageIndex = table.atoms.pagination?.get()?.pageIndex ?? defaultPageIndex;\n\tconst pageCount = table_getPageCount(table);\n\treturn Number.isFinite(pageCount) && pageCount > 0 && pageIndex < pageCount - 1;\n}\n/**\n* Moves the table to the previous page.\n*\n* This delegates to `table_setPageIndex` so pagination state ownership and\n* updater semantics remain consistent.\n*\n* @example\n* ```ts\n* table_previousPage(table)\n* ```\n*/\nfunction table_previousPage(table) {\n\treturn table_setPageIndex(table, (old) => old - 1);\n}\n/**\n* Moves the table to the next page.\n*\n* This delegates to `table_setPageIndex` so pagination state ownership and\n* updater semantics remain consistent.\n*\n* @example\n* ```ts\n* table_nextPage(table)\n* ```\n*/\nfunction table_nextPage(table) {\n\treturn table_setPageIndex(table, (old) => {\n\t\treturn old + 1;\n\t});\n}\n/**\n* Moves the table to the first page.\n*\n* This is a convenience wrapper around `table_setPageIndex(table, 0)`.\n*\n* @example\n* ```ts\n* table_firstPage(table)\n* ```\n*/\nfunction table_firstPage(table) {\n\treturn table_setPageIndex(table, 0);\n}\n/**\n* Moves the table to the last known page.\n*\n* Unknown, empty, and non-finite page counts do not have a navigable last\n* page, so this does nothing for those states.\n*\n* @example\n* ```ts\n* table_lastPage(table)\n* ```\n*/\nfunction table_lastPage(table) {\n\tconst pageCount = table_getPageCount(table);\n\tif (!Number.isFinite(pageCount) || pageCount <= 0) return;\n\treturn table_setPageIndex(table, pageCount - 1);\n}\n/**\n* Resolves the number of pages for the current pagination state.\n*\n* `options.pageCount` wins for manual pagination. Otherwise the value is\n* calculated from `table_getRowCount(table)` and the current `pageSize`.\n*\n* @example\n* ```ts\n* const pages = table_getPageCount(table)\n* ```\n*/\nfunction table_getPageCount(table) {\n\tconst configuredPageCount = table.options.pageCount;\n\tif (configuredPageCount != null) return configuredPageCount;\n\tconst rowCount = table_getRowCount(table);\n\tconst pageSize = table.atoms.pagination?.get()?.pageSize ?? defaultPageSize;\n\tif (pageSize === Infinity && Number.isFinite(rowCount) && rowCount > 0) return 1;\n\treturn Math.ceil(rowCount / pageSize);\n}\n/**\n* Resolves the total row count used for pagination math.\n*\n* `options.rowCount` wins for manual pagination. Otherwise the count comes\n* from the pre-paginated row model so filtering, grouping, sorting, and\n* expansion are reflected before the page slice is applied.\n*\n* @example\n* ```ts\n* const rows = table_getRowCount(table)\n* ```\n*/\nfunction table_getRowCount(table) {\n\treturn table.options.rowCount ?? table.getPrePaginatedRowModel().rows.length;\n}\n\n//#endregion\nexport { getDefaultPaginationState, table_autoResetPageIndex, table_firstPage, table_getCanLastPage, table_getCanNextPage, table_getCanPreviousPage, table_getPageCount, table_getPageOptions, table_getRowCount, table_lastPage, table_nextPage, table_previousPage, table_resetPageIndex, table_resetPageSize, table_resetPagination, table_setPageIndex, table_setPageSize, table_setPagination };","import { cloneState, isFunction, setStateSlice } from \"../../utils.js\";\nimport { reSplitAlphaNumeric, sortFn_basic } from \"./sortFns.js\";\n\n//#region src/features/row-sorting/rowSortingFeature.utils.ts\n/**\n* Creates the default sorting state.\n*\n* The feature default is an empty array, meaning no columns are sorted. Reset\n* APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const sorting = getDefaultSortingState()\n* ```\n*/\nfunction getDefaultSortingState() {\n\treturn [];\n}\n/**\n* Routes a sorting updater through the table's sorting change handler.\n*\n* The updater may be a next `SortingState` array or a function of the previous\n* sorting state, matching the instance `table.setSorting` behavior. State\n* owners receive an equality-guarded updater so structurally equal sorting\n* values preserve the owner's existing reference.\n*\n* @example\n* ```ts\n* table_setSorting(table, (old) => [...old, { id: 'age', desc: true }])\n* ```\n*/\nfunction table_setSorting(table, updater) {\n\tsetStateSlice(table, \"sorting\", updater);\n}\n/**\n* Resets `sorting` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.sorting` when it\n* exists. Passing `true` ignores initial state and resets to `[]`.\n*\n* @example\n* ```ts\n* table_resetSorting(table)\n* table_resetSorting(table, true)\n* ```\n*/\nfunction table_resetSorting(table, defaultState) {\n\ttable_setSorting(table, defaultState ? [] : cloneState(table.initialState.sorting ?? []));\n}\n/**\n* Resets sorting after the table data changes when explicitly enabled.\n*\n* Unlike other auto-reset behaviors, sorting is preserved by default. An\n* explicit `autoResetAll` value takes precedence over `autoResetSorting`.\n*\n* @example\n* ```ts\n* table_autoResetSorting(table)\n* ```\n*/\nfunction table_autoResetSorting(table) {\n\tif (!table.atoms.sorting) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetSorting ?? false) table_resetSorting(table);\n}\n/**\n* Chooses a built-in sorting function from sampled filtered row values.\n*\n* Date-like values use `datetime`, mixed text/numeric strings use\n* `alphanumeric`, plain strings use `text`, and unknown values fall back to\n* `basic`.\n*\n* @example\n* ```ts\n* const sortFn = column_getAutoSortFn(column)\n* ```\n*/\nfunction column_getAutoSortFn(column) {\n\tconst sortFns = column.table._rowModelFns.sortFns;\n\tconst firstRows = column.table.getFilteredRowModel().flatRows.slice(0, 10);\n\tlet sortFnName;\n\tlet isString = false;\n\tfor (let i = 0; i < firstRows.length; i++) {\n\t\tconst value = firstRows[i].getValue(column.id);\n\t\tif (Object.prototype.toString.call(value) === \"[object Date]\") {\n\t\t\tsortFnName = \"datetime\";\n\t\t\tbreak;\n\t\t}\n\t\tif (typeof value === \"string\") {\n\t\t\tisString = true;\n\t\t\tif (value.split(reSplitAlphaNumeric).length > 1) {\n\t\t\t\tsortFnName = \"alphanumeric\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (!sortFnName && isString) sortFnName = \"text\";\n\tif (sortFnName) {\n\t\tlet sortFn = sortFns?.[sortFnName];\n\t\tif (!sortFn) {\n\t\t\tif (process.env.NODE_ENV === \"development\") console.warn(`sortFn '${sortFnName}' (auto) for column '${column.id}' is not registered`);\n\t\t\tif (sortFnName === \"alphanumeric\") sortFn = sortFns?.text;\n\t\t}\n\t\tif (sortFn) return sortFn;\n\t}\n\treturn sortFn_basic;\n}\n/**\n* Chooses the default first sort direction from sampled filtered row values.\n*\n* The first non-nullish value among the sampled rows decides: string columns\n* start ascending so alphabetical order is natural; other value types (or\n* columns with no non-nullish sample) start descending. Sampling past leading\n* nullish values keeps the toggle cycle stable when sorting or a data swap\n* moves an empty value into the first row.\n*\n* @example\n* ```ts\n* const direction = column_getAutoSortDir(column)\n* ```\n*/\nfunction column_getAutoSortDir(column) {\n\tconst firstRows = column.table.getFilteredRowModel().flatRows.slice(0, 10);\n\tfor (let i = 0; i < firstRows.length; i++) {\n\t\tconst value = firstRows[i].getValue(column.id);\n\t\tif (value == null) continue;\n\t\treturn typeof value === \"string\" ? \"asc\" : \"desc\";\n\t}\n\treturn \"desc\";\n}\n/**\n* Resolves the sorting function configured for a column.\n*\n* Function-valued `columnDef.sortFn` is returned directly, `'auto'` delegates\n* to `column_getAutoSortFn`, and string values are looked up in the table's\n* sorting function registry before falling back to `basic`.\n*\n* @example\n* ```ts\n* const sortFn = column_getSortFn(column)\n* ```\n*/\nfunction column_getSortFn(column) {\n\tconst sortFns = column.table._rowModelFns.sortFns;\n\tif (isFunction(column.columnDef.sortFn)) return column.columnDef.sortFn;\n\tif (column.columnDef.sortFn === \"auto\") return column_getAutoSortFn(column);\n\tconst sortFn = sortFns?.[column.columnDef.sortFn];\n\tif (process.env.NODE_ENV === \"development\" && !sortFn) console.warn(`sortFn '${String(column.columnDef.sortFn)}' for column '${column.id}' is not registered`);\n\treturn sortFn ?? sortFn_basic;\n}\n/**\n* Applies the next sorting state for this column.\n*\n* The toggle can add, replace, flip, or remove this column's sort entry. Multi\n* sorting respects `enableMultiSort`, `enableMultiRemove`,\n* `maxMultiSortColCount`, and the `multi` argument.\n*\n* @example\n* ```ts\n* column_toggleSorting(column, undefined, true)\n* ```\n*/\nfunction column_toggleSorting(column, desc, multi) {\n\tconst nextSortingOrder = column_getNextSortingOrder(column, multi && column_getCanMultiSort(column));\n\tconst hasManualValue = typeof desc !== \"undefined\";\n\ttable_setSorting(column.table, (old) => {\n\t\tconst existingIndex = old.findIndex((d) => d.id === column.id);\n\t\tconst existingSorting = existingIndex === -1 ? void 0 : old[existingIndex];\n\t\tlet newSorting = [];\n\t\tlet sortAction;\n\t\tconst nextDesc = hasManualValue ? desc : nextSortingOrder === \"desc\";\n\t\tconst isMultiMode = !!(old.length && column_getCanMultiSort(column) && multi);\n\t\tif (isMultiMode) if (existingSorting) sortAction = \"toggle\";\n\t\telse sortAction = \"add\";\n\t\telse if (existingSorting) sortAction = \"toggle\";\n\t\telse sortAction = \"replace\";\n\t\tif (sortAction === \"toggle\") {\n\t\t\tif (!hasManualValue) {\n\t\t\t\tif (!nextSortingOrder) sortAction = \"remove\";\n\t\t\t}\n\t\t}\n\t\tif (sortAction === \"add\") {\n\t\t\tnewSorting = [...old, {\n\t\t\t\tid: column.id,\n\t\t\t\tdesc: nextDesc\n\t\t\t}];\n\t\t\tnewSorting.splice(0, newSorting.length - (column.table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER));\n\t\t} else if (sortAction === \"toggle\") newSorting = isMultiMode ? old.map((d) => {\n\t\t\tif (d.id === column.id) return {\n\t\t\t\t...d,\n\t\t\t\tdesc: nextDesc\n\t\t\t};\n\t\t\treturn d;\n\t\t}) : [{\n\t\t\tid: column.id,\n\t\t\tdesc: nextDesc\n\t\t}];\n\t\telse if (sortAction === \"remove\") newSorting = isMultiMode ? old.filter((d) => d.id !== column.id) : [];\n\t\telse newSorting = [{\n\t\t\tid: column.id,\n\t\t\tdesc: nextDesc\n\t\t}];\n\t\treturn newSorting;\n\t});\n}\n/**\n* Resolves the first direction used when this column begins sorting.\n*\n* Column-level `sortDescFirst` wins, then table-level `sortDescFirst`, then the\n* auto direction inferred from sampled values.\n*\n* @example\n* ```ts\n* const firstDirection = column_getFirstSortDir(column)\n* ```\n*/\nfunction column_getFirstSortDir(column) {\n\treturn column.columnDef.sortDescFirst ?? column.table.options.sortDescFirst ?? column_getAutoSortDir(column) === \"desc\" ? \"desc\" : \"asc\";\n}\n/**\n* Resolves the next sort order for this column's toggle cycle.\n*\n* The cycle starts with the first sort direction, flips between `asc` and\n* `desc`, and can return `false` when sorting removal is enabled.\n*\n* @example\n* ```ts\n* const nextOrder = column_getNextSortingOrder(column)\n* ```\n*/\nfunction column_getNextSortingOrder(column, multi) {\n\tconst firstSortDirection = column_getFirstSortDir(column);\n\tconst isSorted = column_getIsSorted(column);\n\tif (!isSorted) return firstSortDirection;\n\tif (isSorted !== firstSortDirection && (column.table.options.enableSortingRemoval ?? true) && (multi ? column.table.options.enableMultiRemove ?? true : true)) return false;\n\treturn isSorted === \"desc\" ? \"asc\" : \"desc\";\n}\n/**\n* Checks whether this accessor column can participate in sorting.\n*\n* The column must have an accessor and sorting must be enabled by both the\n* column definition and table options.\n*\n* @example\n* ```ts\n* const canSort = column_getCanSort(column)\n* ```\n*/\nfunction column_getCanSort(column) {\n\treturn (column.columnDef.enableSorting ?? true) && (column.table.options.enableSorting ?? true) && !!column.accessorFn;\n}\n/**\n* Checks whether this column can be added to a multi-sort state.\n*\n* Column-level `enableMultiSort` wins over table-level `enableMultiSort`; if\n* neither is set, accessor columns can multi-sort by default.\n*\n* @example\n* ```ts\n* const canMultiSort = column_getCanMultiSort(column)\n* ```\n*/\nfunction column_getCanMultiSort(column) {\n\treturn column.columnDef.enableMultiSort ?? column.table.options.enableMultiSort ?? !!column.accessorFn;\n}\n/**\n* Reads this column's current sort direction.\n*\n* The result is `false` when the column is not sorted, otherwise `'asc'` or\n* `'desc'` based on the column's entry in `state.sorting`.\n*\n* @example\n* ```ts\n* const direction = column_getIsSorted(column)\n* ```\n*/\nfunction column_getIsSorted(column) {\n\tconst columnSort = column.table.atoms.sorting?.get()?.find((d) => d.id === column.id);\n\treturn !columnSort ? false : columnSort.desc ? \"desc\" : \"asc\";\n}\n/**\n* Finds this column's position in the ordered `state.sorting` array.\n*\n* The result is `-1` when the column is not sorted.\n*\n* @example\n* ```ts\n* const index = column_getSortIndex(column)\n* ```\n*/\nfunction column_getSortIndex(column) {\n\treturn column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ?? -1;\n}\n/**\n* Removes this column from the sorting state.\n*\n* Other sorted columns are preserved, including their relative order.\n*\n* @example\n* ```ts\n* column_clearSorting(column)\n* ```\n*/\nfunction column_clearSorting(column) {\n\ttable_setSorting(column.table, (old) => old.length ? old.filter((d) => d.id !== column.id) : []);\n}\n/**\n* Creates a header event handler that toggles this column's sorting.\n*\n* The handler ignores events when the column cannot sort, and asks\n* `options.isMultiSortEvent` whether the event should add to a multi-sort.\n*\n* @example\n* ```ts\n* const onClick = column_getToggleSortingHandler(column)\n* ```\n*/\nfunction column_getToggleSortingHandler(column) {\n\tconst canSort = column_getCanSort(column);\n\treturn (e) => {\n\t\tif (!canSort) return;\n\t\tcolumn_toggleSorting(column, void 0, column_getCanMultiSort(column) ? column.table.options.isMultiSortEvent?.(e) : false);\n\t};\n}\n\n//#endregion\nexport { column_clearSorting, column_getAutoSortDir, column_getAutoSortFn, column_getCanMultiSort, column_getCanSort, column_getFirstSortDir, column_getIsSorted, column_getNextSortingOrder, column_getSortFn, column_getSortIndex, column_getToggleSortingHandler, column_toggleSorting, getDefaultSortingState, table_autoResetSorting, table_resetSorting, table_setSorting };","import { makeObjectMap, skipFirstRun, tableMemo } from \"../../utils.js\";\nimport { constructRow } from \"../rows/constructRow.js\";\nimport { table_autoResetCellSelection } from \"../../features/cell-selection/cellSelectionFeature.utils.js\";\nimport { table_autoResetExpanded } from \"../../features/row-expanding/rowExpandingFeature.utils.js\";\nimport { table_autoResetPageIndex } from \"../../features/row-pagination/rowPaginationFeature.utils.js\";\nimport { table_autoResetSorting } from \"../../features/row-sorting/rowSortingFeature.utils.js\";\n\n//#region src/core/row-models/createCoreRowModel.ts\n/**\n* Creates a memoized core row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*/\nfunction createCoreRowModel() {\n\treturn (table) => {\n\t\treturn tableMemo({\n\t\t\tfeature: \"coreRowModelsFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getCoreRowModel\",\n\t\t\tmemoDeps: () => [table.options.data],\n\t\t\tfn: () => _createCoreRowModel(table, table.options.data),\n\t\t\tonAfterUpdate: skipFirstRun(() => {\n\t\t\t\ttable_autoResetExpanded(table);\n\t\t\t\ttable_autoResetPageIndex(table);\n\t\t\t\ttable_autoResetSorting(table);\n\t\t\t\ttable_autoResetCellSelection(table);\n\t\t\t})\n\t\t});\n\t};\n}\nfunction accessRows(table, rowModel, originalRows, depth = 0, parentRow) {\n\tconst rows = [];\n\tfor (let i = 0; i < originalRows.length; i++) {\n\t\tconst originalRow = originalRows[i];\n\t\tconst row = constructRow(table, table.getRowId(originalRow, i, parentRow), originalRow, i, depth, void 0, parentRow?.id);\n\t\trowModel.flatRows.push(row);\n\t\trowModel.rowsById[row.id] = row;\n\t\trows.push(row);\n\t\tif (table.options.getSubRows) {\n\t\t\trow.originalSubRows = table.options.getSubRows(originalRow, i);\n\t\t\tif (row.originalSubRows?.length) row.subRows = accessRows(table, rowModel, row.originalSubRows, depth + 1, row);\n\t\t}\n\t}\n\treturn rows;\n}\nfunction _createCoreRowModel(table, data) {\n\tconst rowModel = {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\trowModel.rows = accessRows(table, rowModel, data);\n\treturn rowModel;\n}\n\n//#endregion\nexport { createCoreRowModel };","import { createCoreRowModel } from \"./createCoreRowModel.js\";\n\n//#region src/core/row-models/coreRowModelsFeature.utils.ts\n/**\n* Resolves the table's unmodified core row model.\n*\n* The factory is created once per table, either from the `coreRowModel` slot on the `features` option\n* or the built-in `createCoreRowModel()`, then reused for later calls.\n*\n* @example\n* ```ts\n* const coreRows = table_getCoreRowModel(table)\n* ```\n*/\nfunction table_getCoreRowModel(table) {\n\tif (!table._rowModels.coreRowModel) table._rowModels.coreRowModel = table.options.features.coreRowModel?.(table) ?? createCoreRowModel()(table);\n\treturn table._rowModels.coreRowModel();\n}\n/**\n* Reads the row model immediately before column/global filtering.\n*\n* Filtering is the first derived row-model stage, so this currently aliases\n* `table.getCoreRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeFiltering = table_getPreFilteredRowModel(table)\n* ```\n*/\nfunction table_getPreFilteredRowModel(table) {\n\treturn table.getCoreRowModel();\n}\n/**\n* Resolves the row model after column and global filtering.\n*\n* When `manualFiltering` is enabled, or no filtered row-model factory was\n* registered, this returns the pre-filtered row model because filtering is\n* expected to happen outside the table.\n*\n* @example\n* ```ts\n* const filteredRows = table_getFilteredRowModel(table)\n* ```\n*/\nfunction table_getFilteredRowModel(table) {\n\tif (!table._rowModels.filteredRowModel) table._rowModels.filteredRowModel = table.options.features.filteredRowModel?.(table);\n\tif (table.options.manualFiltering || !table._rowModels.filteredRowModel) return table.getPreFilteredRowModel();\n\treturn table._rowModels.filteredRowModel();\n}\n/**\n* Reads the row model immediately before grouping.\n*\n* Grouping runs after filtering, so this aliases `table.getFilteredRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeGrouping = table_getPreGroupedRowModel(table)\n* ```\n*/\nfunction table_getPreGroupedRowModel(table) {\n\treturn table.getFilteredRowModel();\n}\n/**\n* Resolves the row model after grouping has produced grouped rows.\n*\n* When `manualGrouping` is enabled, or no grouped row-model factory was\n* registered, this returns the pre-grouped row model unchanged.\n*\n* @example\n* ```ts\n* const groupedRows = table_getGroupedRowModel(table)\n* ```\n*/\nfunction table_getGroupedRowModel(table) {\n\tif (!table._rowModels.groupedRowModel) table._rowModels.groupedRowModel = table.options.features.groupedRowModel?.(table);\n\tif (table.options.manualGrouping || !table._rowModels.groupedRowModel) return table.getPreGroupedRowModel();\n\treturn table._rowModels.groupedRowModel();\n}\n/**\n* Reads the row model immediately before sorting.\n*\n* Sorting runs after grouping, so this aliases `table.getGroupedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeSorting = table_getPreSortedRowModel(table)\n* ```\n*/\nfunction table_getPreSortedRowModel(table) {\n\treturn table.getGroupedRowModel();\n}\n/**\n* Resolves the row model after sorting has been applied.\n*\n* When `manualSorting` is enabled, or no sorted row-model factory was\n* registered, this returns the pre-sorted row model because sorted data is\n* expected to be supplied by the caller.\n*\n* @example\n* ```ts\n* const sortedRows = table_getSortedRowModel(table)\n* ```\n*/\nfunction table_getSortedRowModel(table) {\n\tif (!table._rowModels.sortedRowModel) table._rowModels.sortedRowModel = table.options.features.sortedRowModel?.(table);\n\tif (table.options.manualSorting || !table._rowModels.sortedRowModel) return table.getPreSortedRowModel();\n\treturn table._rowModels.sortedRowModel();\n}\n/**\n* Reads the row model immediately before row expansion.\n*\n* Expansion runs after sorting, so this aliases `table.getSortedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeExpansion = table_getPreExpandedRowModel(table)\n* ```\n*/\nfunction table_getPreExpandedRowModel(table) {\n\treturn table.getSortedRowModel();\n}\n/**\n* Resolves the row model after expanded rows have been flattened into view.\n*\n* When `manualExpanding` is enabled, or no expanded row-model factory was\n* registered, this returns the pre-expanded row model unchanged.\n*\n* @example\n* ```ts\n* const expandedRows = table_getExpandedRowModel(table)\n* ```\n*/\nfunction table_getExpandedRowModel(table) {\n\tif (!table._rowModels.expandedRowModel) table._rowModels.expandedRowModel = table.options.features.expandedRowModel?.(table);\n\tif (table.options.manualExpanding || !table._rowModels.expandedRowModel) return table.getPreExpandedRowModel();\n\treturn table._rowModels.expandedRowModel();\n}\n/**\n* Reads the row model immediately before pagination.\n*\n* Pagination is the final built-in row-model stage, so this aliases\n* `table.getExpandedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforePagination = table_getPrePaginatedRowModel(table)\n* ```\n*/\nfunction table_getPrePaginatedRowModel(table) {\n\treturn table.getExpandedRowModel();\n}\n/**\n* Resolves the row model after pagination has sliced rows for the current page.\n*\n* When `manualPagination` is enabled, or no paginated row-model factory was\n* registered, this returns the pre-paginated row model because pagination is\n* expected to happen before data reaches the table.\n*\n* @example\n* ```ts\n* const pageRows = table_getPaginatedRowModel(table)\n* ```\n*/\nfunction table_getPaginatedRowModel(table) {\n\tif (!table._rowModels.paginatedRowModel) table._rowModels.paginatedRowModel = table.options.features.paginatedRowModel?.(table);\n\tif (table.options.manualPagination || !table._rowModels.paginatedRowModel) return table.getPrePaginatedRowModel();\n\treturn table._rowModels.paginatedRowModel();\n}\n/**\n* Resolves the final row model consumed by renderers.\n*\n* This is the end of the built-in row-model pipeline: core -> filtering ->\n* grouping -> sorting -> expanding -> pagination.\n*\n* @example\n* ```ts\n* const visibleRows = table_getRowModel(table)\n* ```\n*/\nfunction table_getRowModel(table) {\n\treturn table.getPaginatedRowModel();\n}\n\n//#endregion\nexport { table_getCoreRowModel, table_getExpandedRowModel, table_getFilteredRowModel, table_getGroupedRowModel, table_getPaginatedRowModel, table_getPreExpandedRowModel, table_getPreFilteredRowModel, table_getPreGroupedRowModel, table_getPrePaginatedRowModel, table_getPreSortedRowModel, table_getRowModel, table_getSortedRowModel };","import { assignTableAPIs } from \"../../utils.js\";\nimport { table_getCoreRowModel, table_getExpandedRowModel, table_getFilteredRowModel, table_getGroupedRowModel, table_getPaginatedRowModel, table_getPreExpandedRowModel, table_getPreFilteredRowModel, table_getPreGroupedRowModel, table_getPrePaginatedRowModel, table_getPreSortedRowModel, table_getRowModel, table_getSortedRowModel } from \"./coreRowModelsFeature.utils.js\";\n\n//#region src/core/row-models/coreRowModelsFeature.ts\n/**\n* Core feature that wires table row-model accessors and row-model caches.\n*/\nconst coreRowModelsFeature = { constructTableAPIs: (table) => {\n\tassignTableAPIs(\"coreRowModelsFeature\", table, {\n\t\ttable_getCoreRowModel: { fn: () => table_getCoreRowModel(table) },\n\t\ttable_getPreFilteredRowModel: { fn: () => table_getPreFilteredRowModel(table) },\n\t\ttable_getFilteredRowModel: { fn: () => table_getFilteredRowModel(table) },\n\t\ttable_getPreGroupedRowModel: { fn: () => table_getPreGroupedRowModel(table) },\n\t\ttable_getGroupedRowModel: { fn: () => table_getGroupedRowModel(table) },\n\t\ttable_getPreSortedRowModel: { fn: () => table_getPreSortedRowModel(table) },\n\t\ttable_getSortedRowModel: { fn: () => table_getSortedRowModel(table) },\n\t\ttable_getPreExpandedRowModel: { fn: () => table_getPreExpandedRowModel(table) },\n\t\ttable_getExpandedRowModel: { fn: () => table_getExpandedRowModel(table) },\n\t\ttable_getPrePaginatedRowModel: { fn: () => table_getPrePaginatedRowModel(table) },\n\t\ttable_getPaginatedRowModel: { fn: () => table_getPaginatedRowModel(table) },\n\t\ttable_getRowModel: { fn: () => table_getRowModel(table) }\n\t});\n} };\n\n//#endregion\nexport { coreRowModelsFeature };","//#region src/core/cells/constructCell.ts\n/**\n* Creates or retrieves the cell prototype for a table.\n* The prototype is cached on the table and shared by all cell instances.\n*/\nfunction getCellPrototype(table) {\n\tif (!table._cellPrototype) {\n\t\ttable._cellPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignCellPrototype?.(table._cellPrototype, table);\n\t}\n\treturn table._cellPrototype;\n}\n/**\n* Constructs a cell instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructCell(column, row, table) {\n\tconst cellPrototype = getCellPrototype(table);\n\tconst cell = Object.create(cellPrototype);\n\tcell.column = column;\n\tcell.id = `${row.id}_${column.id}`;\n\tcell.row = row;\n\tconst initFns = table._cellInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](cell);\n\treturn cell;\n}\n\n//#endregion\nexport { constructCell };","import { flattenBy, hasOwn, makeObjectMap } from \"../../utils.js\";\nimport { constructCell } from \"../cells/constructCell.js\";\n\n//#region src/core/rows/coreRowsFeature.utils.ts\n/**\n* Returns this row's zero-based position in the current pre-pagination row\n* model. Rows outside that model return `-1`.\n*/\nfunction row_getDisplayIndex(row) {\n\tconst rows = row.table.getRowsInDisplayOrder();\n\tconst displayIndex = row._displayIndexCache;\n\treturn rows[displayIndex] === row ? displayIndex : -1;\n}\n/**\n* Returns the rows in the current display order after assigning their\n* zero-based display indexes.\n*\n* When expanded rows bypass pagination, expanded descendants are inserted into\n* the returned order even though they are absent from the pre-pagination row\n* model.\n*/\nfunction table_getRowsInDisplayOrder(table) {\n\tconst rows = table.getPrePaginatedRowModel().rows;\n\tif (table.options.paginateExpandedRows === false) {\n\t\tconst displayRows = [];\n\t\tconst handleRow = (row) => {\n\t\t\trow._displayIndexCache = displayRows.length;\n\t\t\tdisplayRows.push(row);\n\t\t\tif (row.subRows.length && row.getIsExpanded?.()) row.subRows.forEach(handleRow);\n\t\t};\n\t\trows.forEach(handleRow);\n\t\treturn displayRows;\n\t}\n\tfor (let i = 0; i < rows.length; i++) rows[i]._displayIndexCache = i;\n\treturn rows;\n}\n/**\n* Reads and caches this row's value for a column.\n*\n* The value is produced by the column accessor. Missing columns or display\n* columns without an accessor return `undefined`.\n*\n* @example\n* ```ts\n* const firstName = row_getValue(row, 'firstName')\n* ```\n*/\nfunction row_getValue(row, columnId) {\n\tif (hasOwn(row._valuesCache, columnId)) return row._valuesCache[columnId];\n\tconst column = row.table.getColumn(columnId);\n\tif (!column?.accessorFn) return;\n\trow._valuesCache[columnId] = column.accessorFn(row.original, row.index);\n\treturn row._valuesCache[columnId];\n}\n/**\n* Reads and caches the values used by faceting/grouping for a column.\n*\n* If the column defines `getUniqueValues`, that result is used. Otherwise the\n* row's accessor value is wrapped in a single-item array.\n*\n* @example\n* ```ts\n* const values = row_getUniqueValues(row, 'tags')\n* ```\n*/\nfunction row_getUniqueValues(row, columnId) {\n\tif (hasOwn(row._uniqueValuesCache, columnId)) return row._uniqueValuesCache[columnId];\n\tconst column = row.table.getColumn(columnId);\n\tif (!column?.accessorFn) return;\n\tif (!column.columnDef.getUniqueValues) {\n\t\trow._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n\t\treturn row._uniqueValuesCache[columnId];\n\t}\n\trow._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, row.index);\n\treturn row._uniqueValuesCache[columnId];\n}\n/**\n* Returns a renderable row value for a column.\n*\n* If the accessor value is nullish, the table's `renderFallbackValue` is used\n* instead.\n*\n* @example\n* ```ts\n* const value = row_renderValue(row, 'firstName')\n* ```\n*/\nfunction row_renderValue(row, columnId) {\n\treturn row.getValue(columnId) ?? row.table.options.renderFallbackValue;\n}\n/**\n* Flattens this row's descendant tree into leaf rows.\n*\n* The row itself is not included; only nested `subRows` are walked.\n*\n* @example\n* ```ts\n* const descendants = row_getLeafRows(row)\n* ```\n*/\nfunction row_getLeafRows(row) {\n\treturn flattenBy(row.subRows, (d) => d.subRows);\n}\n/**\n* Returns the deepest structural row depth in the core row model.\n* Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.\n*/\nfunction table_getMaxSubRowDepth(table) {\n\tconst rows = table.getCoreRowModel().flatRows;\n\tlet maxDepth = 0;\n\tfor (let i = 0; i < rows.length; i++) maxDepth = Math.max(maxDepth, rows[i].depth);\n\treturn maxDepth;\n}\n/**\n* Looks up this row's direct parent, if it has one.\n*\n* Parent lookup prefers the core row model for structural parents, then falls\n* back to the pre-pagination row model for generated parent rows.\n*\n* @example\n* ```ts\n* const parent = row_getParentRow(row)\n* ```\n*/\nfunction row_getParentRow(row) {\n\tif (!row.parentId) return;\n\treturn row.table.getCoreRowModel().rowsById[row.parentId] ?? row.table.getRow(row.parentId, true);\n}\n/**\n* Collects this row's ancestor chain from root to direct parent.\n*\n* The current row is not included. Rows without a parent return an empty array.\n*\n* @example\n* ```ts\n* const ancestors = row_getParentRows(row)\n* ```\n*/\nfunction row_getParentRows(row) {\n\tconst parentRows = [];\n\tlet currentRow = row;\n\twhile (true) {\n\t\tconst parentRow = currentRow.getParentRow();\n\t\tif (!parentRow) break;\n\t\tparentRows.push(parentRow);\n\t\tcurrentRow = parentRow;\n\t}\n\treturn parentRows.reverse();\n}\n/**\n* Constructs one cell for each leaf column in this row.\n*\n* The result follows `table.getAllLeafColumns()` order and includes hidden\n* columns; visibility-specific APIs filter this list later.\n*\n* @example\n* ```ts\n* const cells = row_getAllCells(row)\n* ```\n*/\nfunction row_getAllCells(row) {\n\tconst columns = row.table.getAllLeafColumns();\n\tlet cache = row._cellsCache;\n\tif (!cache) cache = row._cellsCache = /* @__PURE__ */ new WeakMap();\n\tconst cells = new Array(columns.length);\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tlet cell = cache.get(column);\n\t\tif (!cell) {\n\t\t\tcell = constructCell(column, row, row.table);\n\t\t\tcache.set(column, cell);\n\t\t}\n\t\tcells[i] = cell;\n\t}\n\treturn cells;\n}\n/**\n* Builds a lookup map of this row's cells keyed by column id.\n*\n* This is the static implementation behind `row.getAllCellsByColumnId()`.\n*\n* @example\n* ```ts\n* const cellsById = row_getAllCellsByColumnId(row)\n* ```\n*/\nfunction row_getAllCellsByColumnId(row) {\n\tconst result = makeObjectMap();\n\tconst cells = row.getAllCells();\n\tfor (let i = 0; i < cells.length; i++) {\n\t\tconst cell = cells[i];\n\t\tresult[cell.column.id] = cell;\n\t}\n\treturn result;\n}\n/**\n* Resolves the stable id for a row.\n*\n* `options.getRowId` wins when provided. Otherwise root rows use their index\n* and child rows append their index to the parent id, such as `0.2`.\n*\n* @example\n* ```ts\n* const id = table_getRowId(originalRow, table, index, parentRow)\n* ```\n*/\nfunction table_getRowId(originalRow, table, index, parent) {\n\treturn table.options.getRowId?.(originalRow, index, parent) ?? (parent ? `${parent.id}.${index}` : String(index));\n}\n/**\n* Looks up a row by id from the current or full row model.\n*\n* By default this searches `table.getRowModel()`. Passing `searchAll` searches\n* the pre-pagination model first, then falls back to the core model.\n*\n* @example\n* ```ts\n* const row = table_getRow(table, rowId, true)\n* ```\n*/\nfunction table_getRow(table, rowId, searchAll) {\n\tlet row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel()).rowsById[rowId];\n\tif (!row) {\n\t\trow = table.getCoreRowModel().rowsById[rowId];\n\t\tif (!row) {\n\t\t\tif (process.env.NODE_ENV === \"development\") throw new Error(`getRow could not find row with ID: ${rowId}`);\n\t\t\tthrow new Error();\n\t\t}\n\t}\n\treturn row;\n}\n\n//#endregion\nexport { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder } from \"./coreRowsFeature.utils.js\";\n\n//#region src/core/rows/coreRowsFeature.ts\n/**\n* Core feature that creates row APIs for values, cells, and tree traversal.\n*/\nconst coreRowsFeature = {\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreRowsFeature\", prototype, table, {\n\t\t\trow_getDisplayIndex: { fn: (row) => row_getDisplayIndex(row) },\n\t\t\trow_getAllCellsByColumnId: {\n\t\t\t\tfn: (row) => row_getAllCellsByColumnId(row),\n\t\t\t\tmemoDeps: (row) => [row.getAllCells()]\n\t\t\t},\n\t\t\trow_getAllCells: {\n\t\t\t\tfn: (row) => row_getAllCells(row),\n\t\t\t\tmemoDeps: (row) => [row.table.getAllLeafColumns()]\n\t\t\t},\n\t\t\trow_getLeafRows: {\n\t\t\t\tfn: (row) => row_getLeafRows(row),\n\t\t\t\tmemoDeps: (row) => [row.subRows]\n\t\t\t},\n\t\t\trow_getParentRow: { fn: (row) => row_getParentRow(row) },\n\t\t\trow_getParentRows: { fn: (row) => row_getParentRows(row) },\n\t\t\trow_getUniqueValues: { fn: (row, columnId) => row_getUniqueValues(row, columnId) },\n\t\t\trow_getValue: { fn: (row, columnId) => row_getValue(row, columnId) },\n\t\t\trow_renderValue: { fn: (row, columnId) => row_renderValue(row, columnId) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreRowsFeature\", table, {\n\t\t\ttable_getRowsInDisplayOrder: {\n\t\t\t\tfn: () => table_getRowsInDisplayOrder(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getPrePaginatedRowModel().rows,\n\t\t\t\t\ttable.options.paginateExpandedRows,\n\t\t\t\t\ttable.options.paginateExpandedRows === false ? table.atoms.expanded?.get() : void 0\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getRowId: { fn: (originalRow, index, parent) => table_getRowId(originalRow, table, index, parent) },\n\t\t\ttable_getRow: { fn: (id, searchAll) => table_getRow(table, id, searchAll) },\n\t\t\ttable_getMaxSubRowDepth: {\n\t\t\t\tfn: () => table_getMaxSubRowDepth(table),\n\t\t\t\tmemoDeps: () => [table.getCoreRowModel()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreRowsFeature };","import { cloneState, functionalUpdate } from \"../../utils.js\";\n\n//#region src/core/table/coreTablesFeature.utils.ts\n/**\n* Synchronizes externally controlled state slices into the table's base atoms.\n*\n* This keeps `options.state` values mirrored in the atom graph so derived\n* atoms, stores, and table APIs read a consistent snapshot.\n*\n* Adapters that update options during their host's render phase pass the\n* state snapshot captured by the committed render as `capturedState` — the\n* shared options object may already hold values from a newer render that\n* never commits. Pass `null` to publish nothing (a captured \"no controlled\n* state\"); omitting the argument reads the current `table.options.state`\n* instead. An optional `compare` suppresses semantically unchanged slice\n* writes; the default remains reference equality.\n*\n* @example\n* ```ts\n* table_syncExternalStateToBaseAtoms(table)\n* table_syncExternalStateToBaseAtoms(table, capturedState ?? null, shallow)\n* ```\n*/\nfunction table_syncExternalStateToBaseAtoms(table, capturedState, compare = (currentState, externalState) => currentState === externalState) {\n\tconst state = capturedState === void 0 ? table.options.state : capturedState;\n\ttable._reactivity.batch(() => {\n\t\tif (state) for (const key in state) {\n\t\t\tconst baseAtom = table.baseAtoms[key];\n\t\t\tif (!baseAtom) continue;\n\t\t\tconst rawExternalState = state[key];\n\t\t\tconst externalState = rawExternalState === void 0 ? table.initialState[key] : rawExternalState;\n\t\t\tif (!compare(table._reactivity.untrack(() => baseAtom.get()), externalState)) baseAtom.set(() => externalState);\n\t\t}\n\t});\n}\n/**\n* Publishes captured controlled state after a host framework commits.\n*\n* Render-phase adapters stage options without synchronizing base atoms, then\n* pass the state captured by the committed render here. The commit signal also\n* invalidates ownership changes when no base atom was written.\n*/\nfunction table_publishExternalState(table, state, compare = (currentState, externalState) => currentState === externalState) {\n\ttable._reactivity.batch(() => {\n\t\ttable_syncExternalStateToBaseAtoms(table, state, compare);\n\t\ttable._reactivity.commit?.();\n\t});\n}\n/**\n* Resets all internal table base atoms to `table.initialState`, then clears\n* transient instance data through registered feature reset hooks.\n*\n* This resets internally owned state slices in a single reactivity batch. Use\n* feature-specific reset APIs when a slice may be externally owned.\n*\n* @example\n* ```ts\n* table_reset(table)\n* ```\n*/\nfunction table_reset(table) {\n\tconst snap = cloneState(table.initialState);\n\ttable._reactivity.batch(() => {\n\t\tconst keys = Object.keys(snap);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key = keys[i];\n\t\t\ttable.baseAtoms[key].set(snap[key]);\n\t\t}\n\t});\n\tconst features = Object.values(table._features);\n\tfor (let i = 0; i < features.length; i++) features[i].resetTableInstanceData?.(table);\n}\n/**\n* Merges new table options with the current resolved options.\n*\n* If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n* options are shallow-merged. Static options that should never change after\n* initialization are restored on a fresh object so framework merge helpers may\n* return readonly getter/proxy objects.\n*\n* @example\n* ```ts\n* const options = table_mergeOptions(table, nextOptions)\n* ```\n*/\nfunction table_mergeOptions(table, newOptions) {\n\tconst { features, atoms, initialState } = table.options;\n\tif (!table.options.mergeOptions) return {\n\t\t...table.options,\n\t\t...newOptions,\n\t\tfeatures,\n\t\tatoms,\n\t\tinitialState\n\t};\n\tconst mergedOptions = table.options.mergeOptions(table.options, newOptions);\n\tconst descriptors = { ...Object.getOwnPropertyDescriptors(mergedOptions) };\n\treturn Object.defineProperties(Object.create(Object.getPrototypeOf(mergedOptions)), {\n\t\t...descriptors,\n\t\tfeatures: {\n\t\t\tvalue: features,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t},\n\t\tatoms: {\n\t\t\tvalue: atoms,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t},\n\t\tinitialState: {\n\t\t\tvalue: initialState,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t}\n\t});\n}\n/**\n* Updates the table options object.\n*\n* The updater receives the current resolved options and the merged result is\n* immediately assigned to the table instance.\n*\n* @example\n* ```ts\n* table_setOptions(table, (old) => old)\n* table_setOptions(table, (old) => old, { syncExternalState: false })\n* ```\n*/\nfunction table_setOptions(table, updater, options) {\n\tconst mergedOptions = table_mergeOptions(table, functionalUpdate(updater, table.options));\n\tif (table.optionsStore) table.optionsStore.set(() => mergedOptions);\n\telse table.options = mergedOptions;\n\tif (options?.syncExternalState !== false) table_publishExternalState(table, mergedOptions.state ?? null);\n}\n\n//#endregion\nexport { table_mergeOptions, table_publishExternalState, table_reset, table_setOptions, table_syncExternalStateToBaseAtoms };","import { coreCellsFeature } from \"./cells/coreCellsFeature.js\";\nimport { coreColumnsFeature } from \"./columns/coreColumnsFeature.js\";\nimport { coreHeadersFeature } from \"./headers/coreHeadersFeature.js\";\nimport { coreRowModelsFeature } from \"./row-models/coreRowModelsFeature.js\";\nimport { coreRowsFeature } from \"./rows/coreRowsFeature.js\";\nimport { coreTablesFeature } from \"./table/coreTablesFeature.js\";\n\n//#region src/core/coreFeatures.ts\n/**\n* The built-in core feature set required by every table.\n*\n* These features provide table, column, row, header, cell, and core row-model behavior before optional feature plugins are added.\n*/\nconst coreFeatures = {\n\tcoreCellsFeature,\n\tcoreColumnsFeature,\n\tcoreHeadersFeature,\n\tcoreRowModelsFeature,\n\tcoreRowsFeature,\n\tcoreTablesFeature\n};\n\n//#endregion\nexport { coreFeatures };","import { assignTableAPIs } from \"../../utils.js\";\nimport { table_reset, table_setOptions } from \"./coreTablesFeature.utils.js\";\n\n//#region src/core/table/coreTablesFeature.ts\n/**\n* Core feature that adds base table instance APIs such as reset and setOptions.\n*/\nconst coreTablesFeature = { constructTableAPIs: (table) => {\n\tassignTableAPIs(\"coreTablesFeature\", table, {\n\t\ttable_reset: { fn: () => table_reset(table) },\n\t\ttable_setOptions: { fn: (updater) => table_setOptions(table, updater) }\n\t});\n} };\n\n//#endregion\nexport { coreTablesFeature };","//#region src/helpers/tableFeatures.ts\n/**\n* A helper function to help define the features that are to be imported and applied to a table instance.\n* Use this utility to make it easier to have the correct type inference for the features that are being imported.\n* **Note:** It is recommended to use this utility statically outside of a component.\n*\n* Alongside feature modules, this object carries everything else that is\n* statically stitched into the table:\n*\n* - Row model factories (`sortedRowModel`, `filteredRowModel`, etc.)\n* - Row model function registries (`sortFns`, `filterFns`, `aggregationFns`),\n*   whose keys become the valid string values for `sortFn`, `filterFn`,\n*   `globalFilterFn`, and `aggregationFn` with full inference\n* - Type-only `tableMeta`/`columnMeta` slots for declaring per-table meta types\n*   instead of using global declaration merging. The values are phantom\n*   (ignored and stripped at runtime); only their types are used.\n* @example\n* ```\n* import {\n*   columnFilteringFeature,\n*   createFilteredRowModel,\n*   createSortedRowModel,\n*   filterFn_includesString,\n*   rowSortingFeature,\n*   sortFn_alphanumeric,\n*   sortFn_text,\n*   tableFeatures,\n* } from '@tanstack/react-table'\n* const features = tableFeatures({\n*   columnFilteringFeature,\n*   rowSortingFeature,\n*   filteredRowModel: createFilteredRowModel(),\n*   sortedRowModel: createSortedRowModel(),\n*   filterFns: { includesString: filterFn_includesString, myCustomFilterFn },\n*   sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },\n*   tableMeta: {} as { updateData: (rowIndex: number, columnId: string, value: unknown) => void },\n*   columnMeta: {} as { align?: 'left' | 'right' },\n* });\n* const table = useTable({ features, columns, data });\n* ```\n*/\nfunction tableFeatures(features) {\n\treturn features;\n}\n\n//#endregion\nexport { tableFeatures };","//#region src/core/reactivity/coreReactivityFeature.utils.ts\n/**\n* Bridges atom instances to the `Store`/`ReadonlyStore` API by exposing\n* a `state` getter backed by `atom.get()`, and wiring `setState` for\n* writable atoms.\n*\n* @example\n* ```ts\n* const store = atomToStore(atom)\n* ```\n*/\nfunction atomToStore(atom) {\n\tconst store = atom;\n\tObject.defineProperty(atom, \"state\", { get() {\n\t\treturn atom.get();\n\t} });\n\tif (\"set\" in atom) store.setState = atom.set.bind(atom);\n\treturn store;\n}\n\n//#endregion\nexport { atomToStore };","//#region src/alien.ts\nconst NONE = 0;\nconst MUTABLE = 1;\nconst WATCHING = 2;\nconst RECURSED_CHECK = 4;\nconst RECURSED = 8;\nconst DIRTY = 16;\nconst PENDING = 32;\n/* @__NO_SIDE_EFFECTS__ */\nfunction createReactiveSystem({ update, notify, unwatched }) {\n\treturn {\n\t\tlink,\n\t\tunlink,\n\t\tpropagate,\n\t\tcheckDirty,\n\t\tshallowPropagate\n\t};\n\tfunction link(dep, sub, version) {\n\t\tconst prevDep = sub.depsTail;\n\t\tif (prevDep !== void 0 && prevDep.dep === dep) return;\n\t\tconst nextDep = prevDep !== void 0 ? prevDep.nextDep : sub.deps;\n\t\tif (nextDep !== void 0 && nextDep.dep === dep) {\n\t\t\tnextDep.version = version;\n\t\t\tsub.depsTail = nextDep;\n\t\t\treturn;\n\t\t}\n\t\tconst prevSub = dep.subsTail;\n\t\tif (prevSub !== void 0 && prevSub.version === version && prevSub.sub === sub) return;\n\t\tconst newLink = sub.depsTail = dep.subsTail = {\n\t\t\tversion,\n\t\t\tdep,\n\t\t\tsub,\n\t\t\tprevDep,\n\t\t\tnextDep,\n\t\t\tprevSub,\n\t\t\tnextSub: void 0\n\t\t};\n\t\tif (nextDep !== void 0) nextDep.prevDep = newLink;\n\t\tif (prevDep !== void 0) prevDep.nextDep = newLink;\n\t\telse sub.deps = newLink;\n\t\tif (prevSub !== void 0) prevSub.nextSub = newLink;\n\t\telse dep.subs = newLink;\n\t}\n\tfunction unlink(link, sub = link.sub) {\n\t\tconst dep = link.dep;\n\t\tconst prevDep = link.prevDep;\n\t\tconst nextDep = link.nextDep;\n\t\tconst nextSub = link.nextSub;\n\t\tconst prevSub = link.prevSub;\n\t\tif (nextDep !== void 0) nextDep.prevDep = prevDep;\n\t\telse sub.depsTail = prevDep;\n\t\tif (prevDep !== void 0) prevDep.nextDep = nextDep;\n\t\telse sub.deps = nextDep;\n\t\tif (nextSub !== void 0) nextSub.prevSub = prevSub;\n\t\telse dep.subsTail = prevSub;\n\t\tif (prevSub !== void 0) prevSub.nextSub = nextSub;\n\t\telse if ((dep.subs = nextSub) === void 0) unwatched(dep);\n\t\treturn nextDep;\n\t}\n\tfunction propagate(link) {\n\t\tlet next = link.nextSub;\n\t\tlet stack;\n\t\ttop: do {\n\t\t\tconst sub = link.sub;\n\t\t\tlet flags = sub.flags;\n\t\t\tif (!(flags & 60)) sub.flags = flags | 32;\n\t\t\telse if (!(flags & (4 | 8))) flags = 0;\n\t\t\telse if (!(flags & 4)) sub.flags = flags & ~8 | 32;\n\t\t\telse if (!(flags & (16 | 32)) && isValidLink(link, sub)) {\n\t\t\t\tsub.flags = flags | (8 | 32);\n\t\t\t\tflags &= 1;\n\t\t\t} else flags = 0;\n\t\t\tif (flags & 2) notify(sub);\n\t\t\tif (flags & 1) {\n\t\t\t\tconst subSubs = sub.subs;\n\t\t\t\tif (subSubs !== void 0) {\n\t\t\t\t\tconst nextSub = (link = subSubs).nextSub;\n\t\t\t\t\tif (nextSub !== void 0) {\n\t\t\t\t\t\tstack = {\n\t\t\t\t\t\t\tvalue: next,\n\t\t\t\t\t\t\tprev: stack\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnext = nextSub;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((link = next) !== void 0) {\n\t\t\t\tnext = link.nextSub;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\twhile (stack !== void 0) {\n\t\t\t\tlink = stack.value;\n\t\t\t\tstack = stack.prev;\n\t\t\t\tif (link !== void 0) {\n\t\t\t\t\tnext = link.nextSub;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t} while (true);\n\t}\n\tfunction checkDirty(link, sub) {\n\t\tlet stack;\n\t\tlet checkDepth = 0;\n\t\tlet dirty = false;\n\t\ttop: do {\n\t\t\tconst dep = link.dep;\n\t\t\tconst flags = dep.flags;\n\t\t\tif (sub.flags & 16) dirty = true;\n\t\t\telse if ((flags & (1 | 16)) === (1 | 16)) {\n\t\t\t\tif (update(dep)) {\n\t\t\t\t\tconst subs = dep.subs;\n\t\t\t\t\tif (subs.nextSub !== void 0) shallowPropagate(subs);\n\t\t\t\t\tdirty = true;\n\t\t\t\t}\n\t\t\t} else if ((flags & (1 | 32)) === (1 | 32)) {\n\t\t\t\tif (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {\n\t\t\t\t\tvalue: link,\n\t\t\t\t\tprev: stack\n\t\t\t\t};\n\t\t\t\tlink = dep.deps;\n\t\t\t\tsub = dep;\n\t\t\t\t++checkDepth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!dirty) {\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (checkDepth--) {\n\t\t\t\tconst firstSub = sub.subs;\n\t\t\t\tconst hasMultipleSubs = firstSub.nextSub !== void 0;\n\t\t\t\tif (hasMultipleSubs) {\n\t\t\t\t\tlink = stack.value;\n\t\t\t\t\tstack = stack.prev;\n\t\t\t\t} else link = firstSub;\n\t\t\t\tif (dirty) {\n\t\t\t\t\tif (update(sub)) {\n\t\t\t\t\t\tif (hasMultipleSubs) shallowPropagate(firstSub);\n\t\t\t\t\t\tsub = link.sub;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdirty = false;\n\t\t\t\t} else sub.flags &= ~32;\n\t\t\t\tsub = link.sub;\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dirty;\n\t\t} while (true);\n\t}\n\tfunction shallowPropagate(link) {\n\t\tdo {\n\t\t\tconst sub = link.sub;\n\t\t\tconst flags = sub.flags;\n\t\t\tif ((flags & (32 | 16)) === 32) {\n\t\t\t\tsub.flags = flags | 16;\n\t\t\t\tif ((flags & (2 | 4)) === 2) notify(sub);\n\t\t\t}\n\t\t} while ((link = link.nextSub) !== void 0);\n\t}\n\tfunction isValidLink(checkLink, sub) {\n\t\tlet link = sub.depsTail;\n\t\twhile (link !== void 0) {\n\t\t\tif (link === checkLink) return true;\n\t\t\tlink = link.prevDep;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n//#endregion\nexport { createReactiveSystem };\n//# sourceMappingURL=alien.js.map","import { createReactiveSystem } from \"./alien.js\";\n\n//#region src/atom.ts\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n\tconst isObserver = typeof nextHandler === \"object\";\n\tconst self = isObserver ? nextHandler : void 0;\n\treturn {\n\t\tnext: (isObserver ? nextHandler.next : nextHandler)?.bind(self),\n\t\terror: (isObserver ? nextHandler.error : errorHandler)?.bind(self),\n\t\tcomplete: (isObserver ? nextHandler.complete : completionHandler)?.bind(self)\n\t};\n}\nconst queuedEffects = [];\nlet cycle = 0;\nconst { link, unlink, propagate, checkDirty, shallowPropagate } = /* @__PURE__ */ createReactiveSystem({\n\tupdate(atom) {\n\t\treturn atom._update();\n\t},\n\tnotify(effect) {\n\t\tqueuedEffects[queuedEffectsLength++] = effect;\n\t\teffect.flags &= ~2;\n\t},\n\tunwatched(atom) {\n\t\tif (atom.depsTail !== void 0) {\n\t\t\tatom.depsTail = void 0;\n\t\t\tatom.flags = 1 | 16;\n\t\t\tpurgeDeps(atom);\n\t\t}\n\t}\n});\nlet notifyIndex = 0;\nlet queuedEffectsLength = 0;\nlet activeSub;\nlet batchDepth = 0;\nfunction batch(fn) {\n\ttry {\n\t\t++batchDepth;\n\t\tfn();\n\t} finally {\n\t\tif (!--batchDepth) flush();\n\t}\n}\nfunction purgeDeps(sub) {\n\tconst depsTail = sub.depsTail;\n\tlet dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;\n\twhile (dep !== void 0) dep = unlink(dep, sub);\n}\nfunction flush() {\n\tif (batchDepth > 0) return;\n\twhile (notifyIndex < queuedEffectsLength) {\n\t\tconst effect = queuedEffects[notifyIndex];\n\t\tqueuedEffects[notifyIndex++] = void 0;\n\t\teffect.notify();\n\t}\n\tnotifyIndex = 0;\n\tqueuedEffectsLength = 0;\n}\nfunction createAsyncAtom(getValue, options) {\n\tconst ref = {};\n\tconst atom = createAtom(() => {\n\t\tgetValue().then((data) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"done\",\n\t\t\t\tdata\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t}, (error) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"error\",\n\t\t\t\terror\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn { status: \"pending\" };\n\t}, options);\n\tref.current = atom;\n\treturn atom;\n}\nfunction createAtom(valueOrFn, options) {\n\tconst isComputed = typeof valueOrFn === \"function\";\n\tconst getter = valueOrFn;\n\tconst atom = {\n\t\t_snapshot: isComputed ? void 0 : valueOrFn,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tflags: isComputed ? 0 : 1,\n\t\tget() {\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t},\n\t\tsubscribe(observerOrFn) {\n\t\t\tconst obs = toObserver(observerOrFn);\n\t\t\tconst observed = { current: false };\n\t\t\tconst e = effect(() => {\n\t\t\t\tatom.get();\n\t\t\t\tif (!observed.current) observed.current = true;\n\t\t\t\telse {\n\t\t\t\t\tactiveSub = void 0;\n\t\t\t\t\tobs.next?.(atom._snapshot);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn { unsubscribe: () => {\n\t\t\t\te.stop();\n\t\t\t} };\n\t\t},\n\t\t_update(getValue) {\n\t\t\tconst prevSub = activeSub;\n\t\t\tconst compare = options?.compare ?? Object.is;\n\t\t\tif (isComputed) {\n\t\t\t\tactiveSub = atom;\n\t\t\t\t++cycle;\n\t\t\t\tatom.depsTail = void 0;\n\t\t\t} else if (getValue === void 0) return false;\n\t\t\tif (isComputed) atom.flags = 1 | 4;\n\t\t\ttry {\n\t\t\t\tconst oldValue = atom._snapshot;\n\t\t\t\tconst newValue = typeof getValue === \"function\" ? getValue(oldValue) : getValue === void 0 && isComputed ? getter(oldValue) : getValue;\n\t\t\t\tif (oldValue === void 0 || !compare(oldValue, newValue)) {\n\t\t\t\t\tatom._snapshot = newValue;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tactiveSub = prevSub;\n\t\t\t\tif (isComputed) atom.flags &= ~4;\n\t\t\t\tpurgeDeps(atom);\n\t\t\t}\n\t\t}\n\t};\n\tif (isComputed) {\n\t\tatom.flags = 1 | 16;\n\t\tatom.get = function() {\n\t\t\tconst flags = atom.flags;\n\t\t\tif (flags & 16 || flags & 32 && checkDirty(atom.deps, atom)) {\n\t\t\t\tif (atom._update()) {\n\t\t\t\t\tconst subs = atom.subs;\n\t\t\t\t\tif (subs !== void 0) shallowPropagate(subs);\n\t\t\t\t}\n\t\t\t} else if (flags & 32) atom.flags = flags & ~32;\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t};\n\t} else atom.set = function(valueOrFn) {\n\t\tif (atom._update(valueOrFn)) {\n\t\t\tconst subs = atom.subs;\n\t\t\tif (subs !== void 0) {\n\t\t\t\tpropagate(subs);\n\t\t\t\tshallowPropagate(subs);\n\t\t\t\tflush();\n\t\t\t}\n\t\t}\n\t};\n\treturn atom;\n}\nfunction effect(fn) {\n\tconst run = () => {\n\t\tconst prevSub = activeSub;\n\t\tactiveSub = effectObj;\n\t\t++cycle;\n\t\teffectObj.depsTail = void 0;\n\t\teffectObj.flags = 2 | 4;\n\t\ttry {\n\t\t\treturn fn();\n\t\t} finally {\n\t\t\tactiveSub = prevSub;\n\t\t\teffectObj.flags &= ~4;\n\t\t\tpurgeDeps(effectObj);\n\t\t}\n\t};\n\tconst effectObj = {\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tflags: 2 | 4,\n\t\tnotify() {\n\t\t\tconst flags = this.flags;\n\t\t\tif (flags & 16 || flags & 32 && checkDirty(this.deps, this)) run();\n\t\t\telse this.flags = 2;\n\t\t},\n\t\tstop() {\n\t\t\tthis.flags = 0;\n\t\t\tthis.depsTail = void 0;\n\t\t\tpurgeDeps(this);\n\t\t}\n\t};\n\trun();\n\treturn effectObj;\n}\n\n//#endregion\nexport { batch, createAsyncAtom, createAtom, flush, toObserver };\n//# sourceMappingURL=atom.js.map","//#region src/shallow.ts\nfunction shallow(objA, objB) {\n\tif (Object.is(objA, objB)) return true;\n\tif (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) return false;\n\tif (objA instanceof Map && objB instanceof Map) {\n\t\tif (objA.size !== objB.size) return false;\n\t\tfor (const [k, v] of objA) if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n\t\treturn true;\n\t}\n\tif (objA instanceof Set && objB instanceof Set) {\n\t\tif (objA.size !== objB.size) return false;\n\t\tfor (const v of objA) if (!objB.has(v)) return false;\n\t\treturn true;\n\t}\n\tif (objA instanceof Date && objB instanceof Date) {\n\t\tif (objA.getTime() !== objB.getTime()) return false;\n\t\treturn true;\n\t}\n\tconst keysA = getOwnKeys(objA);\n\tif (keysA.length !== getOwnKeys(objB).length) return false;\n\tfor (let i = 0; i < keysA.length; i++) if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) return false;\n\treturn true;\n}\nfunction getOwnKeys(obj) {\n\treturn Object.keys(obj).concat(Object.getOwnPropertySymbols(obj));\n}\n\n//#endregion\nexport { shallow };\n//# sourceMappingURL=shallow.js.map","import { cloneState, hasOwn } from \"../../utils.js\";\nimport { table_syncExternalStateToBaseAtoms } from \"./coreTablesFeature.utils.js\";\nimport { coreFeatures } from \"../coreFeatures.js\";\nimport { atomToStore } from \"../reactivity/coreReactivityFeature.utils.js\";\nimport { shallow } from \"@tanstack/store\";\n\n//#region src/core/table/constructTable.ts\n/**\n* Builds the initial table state from registered features and user initial state.\n*\n* Each feature contributes its default state before user-provided `initialState` values are merged in.\n*/\nfunction getInitialTableState(features, initialState = {}) {\n\tObject.values(features).forEach((feature) => {\n\t\tinitialState = feature.getInitialState?.(initialState) ?? initialState;\n\t});\n\treturn cloneState(initialState);\n}\n/**\n* Constructs a table instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructTable(tableOptions) {\n\tconst _reactivity = tableOptions.features.coreReactivityFeature;\n\tconst { aggregationFns, columnMeta: _columnMeta, coreRowModel, expandedRowModel, facetedMinMaxValues, facetedRowModel, facetedUniqueValues, filterFns, filterMeta: _filterMeta, filteredRowModel, groupedRowModel, paginatedRowModel, sortFns, sortedRowModel, tableMeta: _tableMeta, ...features } = tableOptions.features;\n\tconst table = {\n\t\t_cellInstanceInitFns: [],\n\t\t_columnInstanceInitFns: [],\n\t\t_features: {\n\t\t\t...coreFeatures,\n\t\t\t...features\n\t\t},\n\t\t_headerGroupInstanceInitFns: [],\n\t\t_headerInstanceInitFns: [],\n\t\t_reactivity,\n\t\t_rowInstanceInitFns: [],\n\t\t_rowModelFns: {\n\t\t\taggregationFns,\n\t\t\tfilterFns,\n\t\t\tsortFns\n\t\t},\n\t\t_rowModels: {},\n\t\tatoms: {},\n\t\tbaseAtoms: {}\n\t};\n\tconst featuresList = Object.values(table._features);\n\tconst mergedOptions = {\n\t\t...featuresList.reduce((obj, feature) => {\n\t\t\treturn Object.assign(obj, feature.getDefaultTableOptions?.(table));\n\t\t}, {}),\n\t\t...tableOptions\n\t};\n\tif (_reactivity.wrapExternalAtoms && mergedOptions.atoms) for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n\t\tconst atom = _atom;\n\t\tconst wrappedAtom = _reactivity.createWritableAtom(atom.get(), { debugName: `externalAtom/${atomKey}` });\n\t\tmergedOptions.atoms[atomKey] = wrappedAtom;\n\t\tlet syncExternal = false;\n\t\tconst syncAtomToWrappedSub = atom.subscribe((value) => {\n\t\t\tif (syncExternal) return;\n\t\t\twrappedAtom.set(value);\n\t\t});\n\t\tconst syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n\t\t\tsyncExternal = true;\n\t\t\tatom.set(value);\n\t\t\tsyncExternal = false;\n\t\t});\n\t\t_reactivity.addSubscription(syncAtomToWrappedSub);\n\t\t_reactivity.addSubscription(syncWrappedToAtomSub);\n\t}\n\tif (_reactivity.createOptionsStore) {\n\t\ttable.optionsStore = _reactivity.createWritableAtom(mergedOptions, { debugName: \"table/optionsStore\" });\n\t\tObject.defineProperty(table, \"options\", {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget() {\n\t\t\t\treturn table.optionsStore.get();\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\ttable.optionsStore.set(() => value);\n\t\t\t}\n\t\t});\n\t} else table.options = mergedOptions;\n\ttable.initialState = getInitialTableState(table._features, table.options.initialState);\n\tconst stateKeys = Object.keys(table.initialState);\n\tfor (let i = 0; i < stateKeys.length; i++) {\n\t\tconst key = stateKeys[i];\n\t\ttable.baseAtoms[key] = _reactivity.createWritableAtom(table.initialState[key], { debugName: `table/baseAtoms/${key}` });\n\t\ttable.atoms[key] = _reactivity.createReadonlyAtom(() => {\n\t\t\tconst options = table.options;\n\t\t\tconst externalAtom = options.atoms?.[key];\n\t\t\tconst reactiveState = externalAtom ? externalAtom.get() : table.baseAtoms[key].get();\n\t\t\tif (externalAtom) return reactiveState;\n\t\t\tconst controlledState = options.state;\n\t\t\tif (controlledState && hasOwn(controlledState, key)) {\n\t\t\t\tconst controlledValue = controlledState[key];\n\t\t\t\treturn controlledValue === void 0 ? table.initialState[key] : controlledValue;\n\t\t\t}\n\t\t\treturn reactiveState;\n\t\t}, { debugName: `table/atoms/${key}` });\n\t}\n\ttable_syncExternalStateToBaseAtoms(table);\n\ttable.store = atomToStore(_reactivity.createReadonlyAtom(() => {\n\t\tconst snapshot = {};\n\t\tfor (let i = 0; i < stateKeys.length; i++) {\n\t\t\tconst key = stateKeys[i];\n\t\t\tsnapshot[key] = table.atoms[key].get();\n\t\t}\n\t\treturn snapshot;\n\t}, {\n\t\tcompare: shallow,\n\t\tdebugName: \"table/store\"\n\t}));\n\tfor (let i = 0; i < featuresList.length; i++) {\n\t\tconst feature = featuresList[i];\n\t\tfeature.initTableInstanceData?.(table);\n\t\tif (feature.initCellInstanceData) table._cellInstanceInitFns.push(feature.initCellInstanceData.bind(feature));\n\t\tif (feature.initColumnInstanceData) table._columnInstanceInitFns.push(feature.initColumnInstanceData.bind(feature));\n\t\tif (feature.initHeaderGroupInstanceData) table._headerGroupInstanceInitFns.push(feature.initHeaderGroupInstanceData.bind(feature));\n\t\tif (feature.initHeaderInstanceData) table._headerInstanceInitFns.push(feature.initHeaderInstanceData.bind(feature));\n\t\tif (feature.initRowInstanceData) table._rowInstanceInitFns.push(feature.initRowInstanceData.bind(feature));\n\t\tfeature.constructTableAPIs?.(table);\n\t}\n\tif (process.env.NODE_ENV === \"development\" && (tableOptions.debugAll || tableOptions.debugTable)) {\n\t\tconst features = Object.keys(table._features);\n\t\tconst rowModels = Object.entries({\n\t\t\tcoreRowModel,\n\t\t\tfilteredRowModel,\n\t\t\tgroupedRowModel,\n\t\t\tsortedRowModel,\n\t\t\texpandedRowModel,\n\t\t\tpaginatedRowModel,\n\t\t\tfacetedRowModel,\n\t\t\tfacetedMinMaxValues,\n\t\t\tfacetedUniqueValues\n\t\t}).filter(([, factory]) => factory).map(([key]) => key);\n\t\tconst states = Object.keys(table.initialState);\n\t\tconsole.log(`Constructing Table Instance\n\n  Features:   ${features.join(\"\\n              \")}\n\n  Row Models: ${rowModels.length ? rowModels.join(\"\\n              \") : \"(none)\"}\n\n  States:     ${states.join(\"\\n              \")}\\n`, { table });\n\t}\n\treturn table;\n}\n\n//#endregion\nexport { constructTable, getInitialTableState };","import { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, makeStateUpdater } from \"../../utils.js\";\nimport { table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { column_getCanPin, column_getIsPinned, column_getPinnedIndex, column_pin, getDefaultColumnPinningState, row_getCenterVisibleCells, row_getEndVisibleCells, row_getStartVisibleCells, table_getCenterFlatHeaders, table_getCenterFooterGroups, table_getCenterHeaderGroups, table_getCenterLeafColumns, table_getCenterLeafHeaders, table_getCenterVisibleLeafColumns, table_getEndFlatHeaders, table_getEndFooterGroups, table_getEndHeaderGroups, table_getEndLeafColumns, table_getEndLeafHeaders, table_getEndVisibleLeafColumns, table_getIsSomeColumnsPinned, table_getPinnedLeafColumns, table_getPinnedVisibleLeafColumns, table_getStartFlatHeaders, table_getStartFooterGroups, table_getStartHeaderGroups, table_getStartLeafColumns, table_getStartLeafHeaders, table_getStartVisibleLeafColumns, table_resetColumnPinning, table_setColumnPinning } from \"./columnPinningFeature.utils.js\";\n\n//#region src/features/column-pinning/columnPinningFeature.ts\n/**\n* Feature that adds column pinning state and APIs for logical start, center,\n* and end regions.\n*\n* In LTR languages/layouts, start usually corresponds to left and end to\n* right. In RTL languages/layouts, start usually corresponds to right and end\n* to left.\n*/\nconst columnPinningFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnPinning: {\n\t\t\t\t...getDefaultColumnPinningState(),\n\t\t\t\t...initialState.columnPinning\n\t\t\t},\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnPinningChange: makeStateUpdater(\"columnPinning\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnPinningFeature\", prototype, table, {\n\t\t\tcolumn_pin: { fn: (column, position) => column_pin(column, position) },\n\t\t\tcolumn_getCanPin: { fn: (column) => column_getCanPin(column) },\n\t\t\tcolumn_getPinnedIndex: { fn: (column) => column_getPinnedIndex(column) },\n\t\t\tcolumn_getIsPinned: { fn: (column) => column_getIsPinned(column) }\n\t\t});\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnPinningFeature\", prototype, table, {\n\t\t\trow_getCenterVisibleCells: {\n\t\t\t\tfn: (row) => row_getCenterVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get(),\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getStartVisibleCells: {\n\t\t\t\tfn: (row) => row_getStartVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get()?.start,\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getEndVisibleCells: {\n\t\t\t\tfn: (row) => row_getEndVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get()?.end,\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnPinningFeature\", table, {\n\t\t\ttable_setColumnPinning: { fn: (updater) => table_setColumnPinning(table, updater) },\n\t\t\ttable_resetColumnPinning: { fn: (defaultState) => table_resetColumnPinning(table, defaultState) },\n\t\t\ttable_getIsSomeColumnsPinned: { fn: (position) => table_getIsSomeColumnsPinned(table, position) },\n\t\t\ttable_getStartHeaderGroups: {\n\t\t\t\tfn: () => table_getStartHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get()?.start,\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterHeaderGroups: {\n\t\t\t\tfn: () => table_getCenterHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndHeaderGroups: {\n\t\t\t\tfn: () => table_getEndHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get()?.end,\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getStartFooterGroups: {\n\t\t\t\tfn: () => table_getStartFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterFooterGroups: {\n\t\t\t\tfn: () => table_getCenterFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndFooterGroups: {\n\t\t\t\tfn: () => table_getEndFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartFlatHeaders: {\n\t\t\t\tfn: () => table_getStartFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndFlatHeaders: {\n\t\t\t\tfn: () => table_getEndFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterFlatHeaders: {\n\t\t\t\tfn: () => table_getCenterFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartLeafHeaders: {\n\t\t\t\tfn: () => table_getStartLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndLeafHeaders: {\n\t\t\t\tfn: () => table_getEndLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterLeafHeaders: {\n\t\t\t\tfn: () => table_getCenterLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartLeafColumns: {\n\t\t\t\tfn: () => table_getStartLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndLeafColumns: {\n\t\t\t\tfn: () => table_getEndLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterLeafColumns: {\n\t\t\t\tfn: () => table_getCenterLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getPinnedLeafColumns: { fn: (position) => table_getPinnedLeafColumns(table, position) },\n\t\t\ttable_getStartVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getStartVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getCenterVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getEndVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getPinnedVisibleLeafColumns: { fn: (position) => table_getPinnedVisibleLeafColumns(table, position) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnPinningFeature };","import { callMemoOrStaticFn, cloneState, hasOwn, makeObjectMap } from \"../../utils.js\";\nimport { table_getCenterHeaderGroups, table_getEndHeaderGroups, table_getPinnedVisibleLeafColumns, table_getStartHeaderGroups } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-sizing/columnSizingFeature.utils.ts\n/**\n* Creates the default committed column sizing state.\n*\n* The feature default is an empty map, so columns fall back to their column def\n* size or the built-in sizing defaults.\n*\n* @example\n* ```ts\n* const sizing = getDefaultColumnSizingState()\n* ```\n*/\nfunction getDefaultColumnSizingState() {\n\treturn makeObjectMap();\n}\n/**\n* Creates the built-in sizing defaults for column definitions.\n*\n* Columns default to `size: 150`, `minSize: 20`, and\n* `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n* table defaults.\n*\n* @example\n* ```ts\n* const defaults = getDefaultColumnSizingColumnDef()\n* ```\n*/\nfunction getDefaultColumnSizingColumnDef() {\n\treturn {\n\t\tsize: 150,\n\t\tminSize: 20,\n\t\tmaxSize: Number.MAX_SAFE_INTEGER\n\t};\n}\n/**\n* Resolves a column's current pixel size.\n*\n* Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n* built-in default size. The result is clamped between min and max size.\n*\n* @example\n* ```ts\n* const width = column_getSize(column)\n* ```\n*/\nfunction column_getSize(column) {\n\tconst defaultSizes = getDefaultColumnSizingColumnDef();\n\tconst columnSizing = column.table.atoms.columnSizing?.get();\n\tconst columnSize = columnSizing && hasOwn(columnSizing, column.id) ? columnSizing[column.id] : void 0;\n\treturn Math.min(Math.max(column.columnDef.minSize ?? defaultSizes.minSize, columnSize ?? column.columnDef.size ?? defaultSizes.size), column.columnDef.maxSize ?? defaultSizes.maxSize);\n}\nfunction buildColumnOffsets(columns) {\n\tconst starts = makeObjectMap();\n\tconst afters = makeObjectMap();\n\tconst sizes = new Array(columns.length);\n\tlet start = 0;\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tconst size = callMemoOrStaticFn(column, \"getSize\", column_getSize);\n\t\tsizes[i] = size;\n\t\tstarts[column.id] = start;\n\t\tstart += size;\n\t}\n\tlet after = 0;\n\tfor (let i = columns.length - 1; i >= 0; i--) {\n\t\tafters[columns[i].id] = after;\n\t\tafter += sizes[i];\n\t}\n\treturn {\n\t\tstarts,\n\t\tafters\n\t};\n}\n/**\n* Builds start and after offset maps for every visible leaf column, computed\n* once per pinning region plus the full visible list.\n*\n* A single table-level memo of this result backs all `column.getStart()` and\n* `column.getAfter()` calls with O(1) lookups.\n*\n* @example\n* ```ts\n* const offsets = table_getColumnOffsets(table)\n* const startOffset = offsets.start.starts[column.id]\n* ```\n*/\nfunction table_getColumnOffsets(table) {\n\treturn {\n\t\tall: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table)),\n\t\tcenter: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"center\")),\n\t\tstart: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"start\")),\n\t\tend: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"end\"))\n\t};\n}\nfunction toOffsetsKey(position) {\n\treturn position === \"start\" ? \"start\" : position === \"end\" ? \"end\" : position === \"center\" ? \"center\" : \"all\";\n}\n/**\n* Computes the offset from the start edge of a pinning region to this column.\n*\n* The value is the sum of all previous visible leaf column sizes in the\n* requested `'start'`, `'center'`, or `'end'` region.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* const startOffset = column_getStart(column, 'start')\n* ```\n*/\nfunction column_getStart(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnOffsets\", table_getColumnOffsets)[toOffsetsKey(position)].starts[column.id] ?? 0;\n}\n/**\n* Computes the offset from the end edge of a pinning region after this column.\n*\n* The value is the sum of all following visible leaf column sizes in the\n* requested region.\n*\n* @example\n* ```ts\n* const endOffset = column_getAfter(column, 'end')\n* ```\n*/\nfunction column_getAfter(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnOffsets\", table_getColumnOffsets)[toOffsetsKey(position)].afters[column.id] ?? 0;\n}\n/**\n* Removes this column's committed size override.\n*\n* After reset, the column resolves size from `columnDef.size` or built-in\n* defaults again.\n*\n* @example\n* ```ts\n* column_resetSize(column)\n* ```\n*/\nfunction column_resetSize(column) {\n\ttable_setColumnSizing(column.table, (old) => {\n\t\tconst rest = makeObjectMap();\n\t\tconst columnIds = Object.keys(old);\n\t\tfor (let i = 0; i < columnIds.length; i++) {\n\t\t\tconst columnId = columnIds[i];\n\t\t\tif (columnId !== column.id) rest[columnId] = old[columnId];\n\t\t}\n\t\treturn rest;\n\t});\n}\nfunction sumHeaderSize(header) {\n\tif (!header.subHeaders.length) return column_getSize(header.column);\n\tlet sum = 0;\n\tfor (let i = 0; i < header.subHeaders.length; i++) sum += sumHeaderSize(header.subHeaders[i]);\n\treturn sum;\n}\n/**\n* Computes a header's rendered size from its leaf headers.\n*\n* Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n* their column's current size.\n*\n* @example\n* ```ts\n* const width = header_getSize(header)\n* ```\n*/\nfunction header_getSize(header) {\n\treturn sumHeaderSize(header);\n}\n/**\n* Computes a header's offset from the start of its header group.\n*\n* The offset is the previous sibling header's start plus size, or `0` for the\n* first header in the group.\n*\n* @example\n* ```ts\n* const offset = header_getStart(header)\n* ```\n*/\nfunction header_getStart(header) {\n\tif (header.index > 0) {\n\t\tconst prevSiblingHeader = header.headerGroup?.headers[header.index - 1];\n\t\tif (prevSiblingHeader) return callMemoOrStaticFn(prevSiblingHeader, \"getStart\", header_getStart) + callMemoOrStaticFn(prevSiblingHeader, \"getSize\", header_getSize);\n\t}\n\treturn 0;\n}\n/**\n* Routes a committed column sizing updater through the table's sizing handler.\n*\n* The updater may be a next size map or a function of the previous map,\n* matching the instance `table.setColumnSizing` behavior.\n*\n* @example\n* ```ts\n* table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n* ```\n*/\nfunction table_setColumnSizing(table, updater) {\n\ttable.options.onColumnSizingChange?.(updater);\n}\n/**\n* Resets `columnSizing` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnSizing` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetColumnSizing(table)\n* table_resetColumnSizing(table, true)\n* ```\n*/\nfunction table_resetColumnSizing(table, defaultState) {\n\ttable_setColumnSizing(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.columnSizing ?? {})));\n}\n/**\n* Sums the rendered size of the full table header row.\n*\n* This includes start, center, and end columns in the main header group.\n*\n* @example\n* ```ts\n* const width = table_getTotalSize(table)\n* ```\n*/\nfunction table_getTotalSize(table) {\n\treturn table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the logical start pinned header region.\n*\n* An empty start pinning region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getStartTotalSize(table)\n* ```\n*/\nfunction table_getStartTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the center, unpinned header region.\n*\n* An empty center region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getCenterTotalSize(table)\n* ```\n*/\nfunction table_getCenterTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the logical end pinned header region.\n*\n* An empty end pinning region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getEndTotalSize(table)\n* ```\n*/\nfunction table_getEndTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n\n//#endregion\nexport { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getColumnOffsets, table_getEndTotalSize, table_getStartTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getColumnOffsets, table_getEndTotalSize, table_getStartTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing } from \"./columnSizingFeature.utils.js\";\n\n//#region src/features/column-sizing/columnSizingFeature.ts\n/**\n* Feature that adds column sizing state, defaults, and size measurement APIs.\n*/\nconst columnSizingFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnSizing: getDefaultColumnSizingState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultColumnDef: () => {\n\t\treturn getDefaultColumnSizingColumnDef();\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnSizingChange: makeStateUpdater(\"columnSizing\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnSizingFeature\", prototype, table, {\n\t\t\tcolumn_getSize: {\n\t\t\t\tfn: (column) => column_getSize(column),\n\t\t\t\tmemoDeps: (column) => [table.options.columns, table.atoms.columnSizing?.get()?.[column.id]]\n\t\t\t},\n\t\t\tcolumn_getStart: { fn: (column, position) => column_getStart(column, position) },\n\t\t\tcolumn_getAfter: { fn: (column, position) => column_getAfter(column, position) },\n\t\t\tcolumn_resetSize: { fn: (column) => column_resetSize(column) }\n\t\t});\n\t},\n\tassignHeaderPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnSizingFeature\", prototype, table, {\n\t\t\theader_getSize: {\n\t\t\t\tfn: (header) => header_getSize(header),\n\t\t\t\tmemoDeps: (header) => [table.options.columns, header.column.columns.length > 0 ? table.atoms.columnSizing?.get() : table.atoms.columnSizing?.get()?.[header.column.id]]\n\t\t\t},\n\t\t\theader_getStart: {\n\t\t\t\tfn: (header) => header_getStart(header),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnSizing?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnSizingFeature\", table, {\n\t\t\ttable_getColumnOffsets: {\n\t\t\t\tfn: () => table_getColumnOffsets(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnSizing?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_setColumnSizing: { fn: (updater) => table_setColumnSizing(table, updater) },\n\t\t\ttable_resetColumnSizing: { fn: (defaultState) => table_resetColumnSizing(table, defaultState) },\n\t\t\ttable_getTotalSize: {\n\t\t\t\tfn: () => table_getTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getStartTotalSize: {\n\t\t\t\tfn: () => table_getStartTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getCenterTotalSize: {\n\t\t\t\tfn: () => table_getCenterTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getEndTotalSize: {\n\t\t\t\tfn: () => table_getEndTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnSizingFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible } from \"./columnVisibilityFeature.utils.js\";\n\n//#region src/features/column-visibility/columnVisibilityFeature.ts\n/**\n* Feature that adds column visibility state and APIs for hiding and showing columns.\n*/\nconst columnVisibilityFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnVisibility: getDefaultColumnVisibilityState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnVisibilityChange: makeStateUpdater(\"columnVisibility\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnVisibilityFeature\", prototype, table, {\n\t\t\tcolumn_getIsVisible: {\n\t\t\t\tfn: (column) => column_getIsVisible(column),\n\t\t\t\tmemoDeps: (column) => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\tcolumn.columns\n\t\t\t\t]\n\t\t\t},\n\t\t\tcolumn_getCanHide: { fn: (column) => column_getCanHide(column) },\n\t\t\tcolumn_getToggleVisibilityHandler: { fn: (column) => column_getToggleVisibilityHandler(column) },\n\t\t\tcolumn_toggleVisibility: { fn: (column, visible) => column_toggleVisibility(column, visible) }\n\t\t});\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnVisibilityFeature\", prototype, table, {\n\t\t\trow_getVisibleCells: {\n\t\t\t\tfn: (row) => row_getVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getVisibleCellsByColumnId: {\n\t\t\t\tfn: (row) => row_getVisibleCellsByColumnId(row),\n\t\t\t\tmemoDeps: (row) => [row.getAllCells(), table.atoms.columnVisibility?.get()]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnVisibilityFeature\", table, {\n\t\t\ttable_getVisibleFlatColumns: {\n\t\t\t\tfn: () => table_getVisibleFlatColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_setColumnVisibility: { fn: (updater) => table_setColumnVisibility(table, updater) },\n\t\t\ttable_resetColumnVisibility: { fn: (defaultState) => table_resetColumnVisibility(table, defaultState) },\n\t\t\ttable_toggleAllColumnsVisible: { fn: (value) => table_toggleAllColumnsVisible(table, value) },\n\t\t\ttable_getIsAllColumnsVisible: { fn: () => table_getIsAllColumnsVisible(table) },\n\t\t\ttable_getIsSomeColumnsVisible: { fn: () => table_getIsSomeColumnsVisible(table) },\n\t\t\ttable_getToggleAllColumnsVisibilityHandler: { fn: () => table_getToggleAllColumnsVisibilityHandler(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnVisibilityFeature };","import { callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, hasOwn, makeObjectMap } from \"../../utils.js\";\n\n//#region src/features/row-selection/rowSelectionFeature.utils.ts\n/**\n* Creates the default row selection state.\n*\n* The feature default is an empty map, meaning no rows are selected. Reset APIs\n* use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const selection = getDefaultRowSelectionState()\n* ```\n*/\nfunction getDefaultRowSelectionState() {\n\treturn makeObjectMap();\n}\n/**\n* Routes a row selection updater through the table's selection change handler.\n*\n* The updater may be a next selection map or a function of the previous map,\n* matching the instance `table.setRowSelection` behavior.\n*\n* @example\n* ```ts\n* table_setRowSelection(table, (old) => ({ ...old, [rowId]: true }))\n* ```\n*/\nfunction table_setRowSelection(table, updater) {\n\ttable.options.onRowSelectionChange?.(updater);\n}\n/**\n* Resets `rowSelection` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.rowSelection` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetRowSelection(table)\n* table_resetRowSelection(table, true)\n* ```\n*/\nfunction table_resetRowSelection(table, defaultState) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.rowSelection ?? {})));\n}\n/**\n* Selects or deselects every selectable row before grouping.\n*\n* Omitting `value` toggles based on `table_getIsAllRowsSelected(table)`.\n* Selecting skips sub-rows whose ancestors block descent via\n* `enableSubRowSelection`. Deselecting removes matching selectable ids from the\n* existing selection map; rows that cannot be selected keep their selection\n* unless `opts.deselectAll` is `true`.\n*\n* @example\n* ```ts\n* table_toggleAllRowsSelected(table)\n* ```\n*/\nfunction table_toggleAllRowsSelected(table, value, opts) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, (old) => {\n\t\tvalue = typeof value !== \"undefined\" ? value : !callMemoOrStaticFn(table, \"getIsAllRowsSelected\", table_getIsAllRowsSelected);\n\t\tif (opts?.deselectAll && !value) return makeObjectMap();\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tconst preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\t\tif (value) {\n\t\t\tconst subtreeCache = /* @__PURE__ */ new Map();\n\t\t\tpreGroupedFlatRows.forEach((row) => {\n\t\t\t\tif (isRowSelectableInSelectAll(row, subtreeCache)) rowSelection[row.id] = true;\n\t\t\t});\n\t\t} else preGroupedFlatRows.forEach((row) => {\n\t\t\tif (row_getCanSelect(row)) delete rowSelection[row.id];\n\t\t});\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Selects or deselects every selectable row on the current page.\n*\n* Omitting `value` toggles based on `table_getIsAllPageRowsSelected(table)`.\n* Child rows are included when sub-row selection allows it.\n*\n* @example\n* ```ts\n* table_toggleAllPageRowsSelected(table)\n* ```\n*/\nfunction table_toggleAllPageRowsSelected(table, value, opts) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, (old) => {\n\t\tconst resolvedValue = typeof value !== \"undefined\" ? value : !callMemoOrStaticFn(table, \"getIsAllPageRowsSelected\", table_getIsAllPageRowsSelected);\n\t\tif (opts?.deselectAll && !resolvedValue) return makeObjectMap();\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\ttable.getRowModel().rows.forEach((row) => {\n\t\t\tmutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table, true);\n\t\t});\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Reads the row model before row selection is projected into selected rows.\n*\n* Selection does not alter the base row pipeline, so this returns the core row\n* model.\n*\n* @example\n* ```ts\n* const rowsBeforeSelection = table_getPreSelectedRowModel(table)\n* ```\n*/\nfunction table_getPreSelectedRowModel(table) {\n\treturn table.getCoreRowModel();\n}\n/**\n* Builds a row model containing selected rows from the core row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getSelectedRowModel(table)\n* ```\n*/\nfunction table_getSelectedRowModel(table) {\n\tconst rowModel = table.getCoreRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Builds a row model containing selected rows from the filtered row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getFilteredSelectedRowModel(table)\n* ```\n*/\nfunction table_getFilteredSelectedRowModel(table) {\n\tconst rowModel = table.getFilteredRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Builds a row model containing selected rows from the grouped row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getGroupedSelectedRowModel(table)\n* ```\n*/\nfunction table_getGroupedSelectedRowModel(table) {\n\tconst rowModel = table.getSortedRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Returns the ids of all selected rows.\n*\n* @example\n* ```ts\n* const selectedRowIds = table_getSelectedRowIds(table)\n* ```\n*/\nfunction table_getSelectedRowIds(table) {\n\treturn Object.keys(table.atoms.rowSelection?.get() ?? {});\n}\n/**\n* Checks whether every selectable filtered row is selected.\n*\n* The result is false when there are no filtered rows or when selection state is\n* empty. Sub-rows whose ancestors block descent via `enableSubRowSelection` are\n* ignored, matching the rows that `table_toggleAllRowsSelected` selects.\n*\n* @example\n* ```ts\n* const allSelected = table_getIsAllRowsSelected(table)\n* ```\n*/\nfunction table_getIsAllRowsSelected(table) {\n\tconst preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\tlet isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n\tif (isAllRowsSelected) {\n\t\tconst subtreeCache = /* @__PURE__ */ new Map();\n\t\tif (preGroupedFlatRows.some((row) => !isRowSelected(row, rowSelection) && isRowSelectableInSelectAll(row, subtreeCache))) isAllRowsSelected = false;\n\t}\n\treturn isAllRowsSelected;\n}\n/**\n* Checks whether every selectable row on the current page is selected.\n*\n* Non-selectable rows are ignored for this calculation, as are sub-rows whose\n* ancestors block descent via `enableSubRowSelection`.\n*\n* @example\n* ```ts\n* const allPageRowsSelected = table_getIsAllPageRowsSelected(table)\n* ```\n*/\nfunction table_getIsAllPageRowsSelected(table) {\n\tconst paginationFlatRows = table.getPaginatedRowModel().flatRows;\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\tconst subtreeCache = /* @__PURE__ */ new Map();\n\tlet sawSelectableRow = false;\n\tfor (let i = 0; i < paginationFlatRows.length; i++) {\n\t\tconst row = paginationFlatRows[i];\n\t\tif (!isRowSelected(row, rowSelection)) {\n\t\t\tif (isRowSelectableInSelectAll(row, subtreeCache)) return false;\n\t\t} else if (!sawSelectableRow && isRowSelectableInSelectAll(row, subtreeCache)) sawSelectableRow = true;\n\t}\n\treturn sawSelectableRow;\n}\n/**\n* Checks whether at least one row id is selected.\n*\n* The result stays true when every row is selected.\n*\n* @example\n* ```ts\n* const someRowsSelected = table_getIsSomeRowsSelected(table)\n* ```\n*/\nfunction table_getIsSomeRowsSelected(table) {\n\treturn callMemoOrStaticFn(table, \"getSelectedRowIds\", table_getSelectedRowIds).length > 0;\n}\n/**\n* Checks whether at least one selectable row on the current page is selected.\n*\n* @example\n* ```ts\n* const somePageRowsSelected = table_getIsSomePageRowsSelected(table)\n* ```\n*/\nfunction table_getIsSomePageRowsSelected(table) {\n\treturn table.getPaginatedRowModel().flatRows.filter((row) => row_getCanSelect(row)).some((row) => row_getIsSelected(row) || callMemoOrStaticFn(row, \"getIsSomeSelected\", row_getIsSomeSelected));\n}\n/**\n* Creates a checkbox-style handler that selects or deselects all rows.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all rows selected\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllRowsSelectedHandler(table)\n* ```\n*/\nfunction table_getToggleAllRowsSelectedHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllRowsSelected(table, e.target.checked);\n\t};\n}\n/**\n* Creates a checkbox-style handler that selects or deselects current page rows.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all page rows selected\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllPageRowsSelectedHandler(table)\n* ```\n*/\nfunction table_getToggleAllPageRowsSelectedHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllPageRowsSelected(table, e.target.checked);\n\t};\n}\n/**\n* Selects or deselects this row.\n*\n* Omitting `value` toggles the row. Child rows are selected recursively unless\n* `opts.selectChildren` is `false`, sub-row selection is disabled, or the row\n* only supports single selection. Pass `deselectParents: true` to also remove\n* ancestor row ids from the selection when this row is deselected.\n*\n* @example\n* ```ts\n* row_toggleSelected(row)\n* row_toggleSelected(row, true)\n* row_toggleSelected(row, false)\n* row_toggleSelected(row, true, { selectChildren: false })\n* row_toggleSelected(row, false, { deselectParents: true })\n* ```\n*/\nfunction row_toggleSelected(row, value, opts) {\n\tconst isSelected = row_getIsSelected(row);\n\ttable_setRowSelection(row.table, (old) => {\n\t\tvalue = typeof value !== \"undefined\" ? value : !isSelected;\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tmutateRowIsSelected(rowSelection, row.id, value, (opts?.selectChildren ?? true) && row_getCanMultiSelect(row), row.table);\n\t\tif (!value && opts?.deselectParents) pruneAncestorRowIds(rowSelection, row);\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Checks whether this row id is selected in `state.rowSelection`.\n*\n* Missing row ids are treated as not selected.\n*\n* @example\n* ```ts\n* const selected = row_getIsSelected(row)\n* ```\n*/\nfunction row_getIsSelected(row) {\n\treturn isRowSelected(row, row.table.atoms.rowSelection?.get() ?? {});\n}\n/**\n* Checks whether some, but not all, selectable descendants are selected.\n*\n* This supports indeterminate selection UI for parent rows.\n*\n* @example\n* ```ts\n* const partial = row_getIsSomeSelected(row)\n* ```\n*/\nfunction row_getIsSomeSelected(row) {\n\treturn isSubRowSelected(row) === \"some\";\n}\n/**\n* Checks whether all selectable descendants are selected.\n*\n* Rows without selectable descendants return false.\n*\n* @example\n* ```ts\n* const allChildrenSelected = row_getIsAllSubRowsSelected(row)\n* ```\n*/\nfunction row_getIsAllSubRowsSelected(row) {\n\treturn isSubRowSelected(row) === \"all\";\n}\n/**\n* Checks whether this row can be selected.\n*\n* `options.enableRowSelection` may be a boolean or a row predicate; it defaults\n* to `true`.\n*\n* @example\n* ```ts\n* const canSelect = row_getCanSelect(row)\n* ```\n*/\nfunction row_getCanSelect(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableRowSelection === \"function\") return options.enableRowSelection(row);\n\treturn options.enableRowSelection ?? true;\n}\n/**\n* Checks whether selecting this row should also select its subRows.\n*\n* `options.enableSubRowSelection` may be a boolean or a row predicate; it\n* defaults to `true`.\n*\n* @example\n* ```ts\n* const canSelectChildren = row_getCanSelectSubRows(row)\n* ```\n*/\nfunction row_getCanSelectSubRows(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableSubRowSelection === \"function\") return options.enableSubRowSelection(row);\n\treturn options.enableSubRowSelection ?? true;\n}\n/**\n* Checks whether this row can be selected alongside other rows.\n*\n* `options.enableMultiRowSelection` may be a boolean or a row predicate; it\n* defaults to `true`.\n*\n* @example\n* ```ts\n* const canMultiSelect = row_getCanMultiSelect(row)\n* ```\n*/\nfunction row_getCanMultiSelect(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableMultiRowSelection === \"function\") return options.enableMultiRowSelection(row);\n\treturn options.enableMultiRowSelection ?? true;\n}\n/**\n* Creates a checkbox-style handler that selects or deselects this row.\n*\n* The handler is a no-op when the row cannot be selected and reads\n* `event.target.checked`. Shift events select or deselect the inclusive range\n* from the most recent selectable row handled by this table. Pass\n* `selectChildren: false` to limit changes to rows explicitly present in the\n* display-order interval, and `deselectParents: true` to remove ancestor row\n* ids from the selection when rows are deselected.\n*\n* @example\n* ```ts\n* const onChange = row_getToggleSelectedHandler(row)\n* ```\n*/\nfunction row_getToggleSelectedHandler(row, opts) {\n\tconst canSelect = row_getCanSelect(row);\n\treturn (e) => {\n\t\tif (!canSelect) return;\n\t\tconst event = e;\n\t\tconst table = row.table;\n\t\tconst checked = event.target.checked;\n\t\tconst anchorId = table._lastSelectedRowId;\n\t\tif (!(table.options.enableRowRangeSelection !== false && anchorId !== null && row_getCanMultiSelect(row) && (table.options.isRowRangeSelectionEvent?.(e) ?? false)) || !selectRowRange(row, anchorId, checked, opts)) row_toggleSelected(row, checked, opts);\n\t\ttable._lastSelectedRowId = row.id;\n\t};\n}\n/**\n* Resolves and mutates an inclusive interval in the table's latest logical\n* display order.\n*\n* The anchor is resolved without throwing from the pre-pagination row model,\n* then the core row model. Both endpoint display indexes must still identify\n* those rows in the current order and both endpoints must support\n* multi-selection. Eligible interval rows are applied through one row\n* selection updater; non-selectable and non-multi-selectable rows are skipped.\n* Returns `false` when the interaction should fall back to an ordinary toggle.\n*/\nfunction selectRowRange(row, anchorId, value, opts) {\n\tconst includeChildren = opts?.selectChildren ?? true;\n\tconst table = row.table;\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst anchorRow = table.getPrePaginatedRowModel().rowsById[anchorId] ?? table.getCoreRowModel().rowsById[anchorId];\n\tif (!anchorRow) return false;\n\tconst anchorIndex = anchorRow.getDisplayIndex();\n\tconst rowIndex = row.getDisplayIndex();\n\tconst anchorAtIndex = rows[anchorIndex];\n\tconst rowAtIndex = rows[rowIndex];\n\tif (anchorIndex < 0 || rowIndex < 0 || anchorIndex >= rows.length || rowIndex >= rows.length || anchorAtIndex?.id !== anchorRow.id || rowAtIndex?.id !== row.id || !row_getCanMultiSelect(anchorRow) || !row_getCanMultiSelect(row)) return false;\n\tconst start = Math.min(anchorIndex, rowIndex);\n\tconst end = Math.max(anchorIndex, rowIndex);\n\ttable_setRowSelection(table, (old) => {\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tfor (let index = start; index <= end; index++) {\n\t\t\tconst rangeRow = rows[index];\n\t\t\tif (!row_getCanSelect(rangeRow) || !row_getCanMultiSelect(rangeRow)) continue;\n\t\t\tmutateRowIsSelected(rowSelection, rangeRow.id, value, includeChildren, table);\n\t\t\tif (!value && opts?.deselectParents) pruneAncestorRowIds(rowSelection, rangeRow);\n\t\t}\n\t\treturn rowSelection;\n\t});\n\treturn true;\n}\nfunction mutateRowIsSelected(rowSelection, rowId, value, includeChildren, table, respectCanSelectOnDeselect) {\n\tconst row = table.getRow(rowId, true);\n\tif (value) {\n\t\tif (!row_getCanMultiSelect(row)) Object.keys(rowSelection).forEach((key) => delete rowSelection[key]);\n\t\tif (row_getCanSelect(row)) rowSelection[rowId] = true;\n\t} else if (!respectCanSelectOnDeselect || row_getCanSelect(row)) delete rowSelection[rowId];\n\tif (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) row.subRows.forEach((r) => mutateRowIsSelected(rowSelection, r.id, value, includeChildren, table, respectCanSelectOnDeselect));\n}\n/**\n* Returns whether a select-all cascade can reach this row: the row itself is\n* selectable and no ancestor blocks descent via `enableSubRowSelection`.\n*\n* `subtreeCache` memoizes the per-ancestor verdict for one select-all pass, so\n* ancestor chains shared by sibling rows are only walked (and the\n* `enableSubRowSelection` predicate only invoked) once per unique ancestor.\n*/\nfunction isRowSelectableInSelectAll(row, subtreeCache) {\n\tif (!row_getCanSelect(row)) return false;\n\tconst table = row.table;\n\tif (table.options.enableSubRowSelection === true) return true;\n\tconst parentId = row.parentId;\n\tif (parentId === void 0) return true;\n\tconst cached = subtreeCache.get(parentId);\n\tif (cached !== void 0) return cached;\n\tconst rowsById = table.getCoreRowModel().rowsById;\n\tconst visited = [];\n\tlet selectable = true;\n\tlet currentId = parentId;\n\twhile (currentId !== void 0) {\n\t\tconst known = subtreeCache.get(currentId);\n\t\tif (known !== void 0) {\n\t\t\tselectable = known;\n\t\t\tbreak;\n\t\t}\n\t\tvisited.push(currentId);\n\t\tconst parent = rowsById[currentId] ?? table.getRow(currentId, true);\n\t\tif (!row_getCanSelectSubRows(parent)) {\n\t\t\tselectable = false;\n\t\t\tbreak;\n\t\t}\n\t\tcurrentId = parent.parentId;\n\t}\n\tvisited.forEach((id) => subtreeCache.set(id, selectable));\n\treturn selectable;\n}\nfunction pruneAncestorRowIds(rowSelection, row) {\n\tconst rowsById = row.table.getCoreRowModel().rowsById;\n\tlet parentId = row.parentId;\n\twhile (parentId !== void 0) {\n\t\tdelete rowSelection[parentId];\n\t\tparentId = (rowsById[parentId] ?? row.table.getRow(parentId, true)).parentId;\n\t}\n}\nfunction selectRowsRecursively(rows, rowSelection, selectedFlatRows, selectedRowsById) {\n\tconst result = [];\n\tfor (let i = 0; i < rows.length; i++) {\n\t\tconst row = rows[i];\n\t\tconst isSelected = isRowSelected(row, rowSelection);\n\t\tif (isSelected) {\n\t\t\tselectedFlatRows.push(row);\n\t\t\tselectedRowsById[row.id] = row;\n\t\t}\n\t\tif (row.subRows.length) {\n\t\t\tconst newSubRows = selectRowsRecursively(row.subRows, rowSelection, selectedFlatRows, selectedRowsById);\n\t\t\tif (isSelected) {\n\t\t\t\tconst cloned = Object.create(Object.getPrototypeOf(row));\n\t\t\t\tcopyInstancePropertiesWithoutMemos(cloned, row);\n\t\t\t\tcloned.subRows = newSubRows;\n\t\t\t\tresult.push(cloned);\n\t\t\t}\n\t\t} else if (isSelected) result.push(row);\n\t}\n\treturn result;\n}\n/**\n* Builds a row model containing rows selected by the current row selection state.\n*\n* The result is derived from the supplied row model, so selected ids absent from\n* that model are not materialized as rows.\n*\n* @example\n* ```ts\n* const selectedRows = selectRowsFn(rowModel)\n* ```\n*/\nfunction selectRowsFn(rowModel, table) {\n\tconst newSelectedFlatRows = [];\n\tconst newSelectedRowsById = makeObjectMap();\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\treturn {\n\t\trows: selectRowsRecursively(rowModel.rows, rowSelection, newSelectedFlatRows, newSelectedRowsById),\n\t\tflatRows: newSelectedFlatRows,\n\t\trowsById: newSelectedRowsById\n\t};\n}\n/**\n* Returns whether a row id is selected in the current row selection state.\n*\n* @example\n* ```ts\n* const selected = isRowSelected(row)\n* ```\n*/\nfunction isRowSelected(row, rowSelection) {\n\treturn !!(hasOwn(rowSelection, row.id) && rowSelection[row.id]);\n}\n/**\n* Returns whether all, some, or none of a row's selectable descendants are selected.\n*\n* The result is used to drive indeterminate row selection UI.\n*\n* @example\n* ```ts\n* const selectedState = isSubRowSelected(row)\n* ```\n*/\nfunction isSubRowSelected(row) {\n\tif (!row.subRows.length) return false;\n\tconst rowSelection = row.table.atoms.rowSelection?.get() ?? {};\n\tlet someSelected = false;\n\tlet allChildrenSelected = true;\n\tlet someSelectable = false;\n\tfor (let i = 0; i < row.subRows.length; i++) {\n\t\tconst subRow = row.subRows[i];\n\t\tif (someSelected && !allChildrenSelected) break;\n\t\tif (row_getCanSelect(subRow)) {\n\t\t\tsomeSelectable = true;\n\t\t\tif (isRowSelected(subRow, rowSelection)) someSelected = true;\n\t\t\telse allChildrenSelected = false;\n\t\t}\n\t\tif (subRow.subRows.length) {\n\t\t\tconst subRowChildrenSelected = isSubRowSelected(subRow);\n\t\t\tif (subRowChildrenSelected === \"all\") {\n\t\t\t\tsomeSelected = true;\n\t\t\t\tsomeSelectable = true;\n\t\t\t} else if (subRowChildrenSelected === \"some\") {\n\t\t\t\tsomeSelected = true;\n\t\t\t\tallChildrenSelected = false;\n\t\t\t\tsomeSelectable = true;\n\t\t\t} else allChildrenSelected = false;\n\t\t}\n\t}\n\tif (!someSelectable) return false;\n\treturn allChildrenSelected ? \"all\" : someSelected ? \"some\" : false;\n}\n\n//#endregion\nexport { getDefaultRowSelectionState, isRowSelected, isSubRowSelected, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, selectRowsFn, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowIds, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { getDefaultRowSelectionState, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowIds, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected } from \"./rowSelectionFeature.utils.js\";\n\n//#region src/features/row-selection/rowSelectionFeature.ts\n/**\n* Feature that adds row selection state and APIs for row and page selection.\n*/\nconst rowSelectionFeature = {\n\tinitTableInstanceData: (table) => {\n\t\ttable._lastSelectedRowId = null;\n\t},\n\tresetTableInstanceData: (table) => {\n\t\ttable._lastSelectedRowId = null;\n\t},\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\trowSelection: getDefaultRowSelectionState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tonRowSelectionChange: makeStateUpdater(\"rowSelection\", table),\n\t\t\tenableRowSelection: true,\n\t\t\tenableMultiRowSelection: true,\n\t\t\tenableRowRangeSelection: true,\n\t\t\tenableSubRowSelection: true,\n\t\t\tisRowRangeSelectionEvent: (event) => {\n\t\t\t\tconst rangeEvent = event;\n\t\t\t\treturn Boolean(rangeEvent.shiftKey || rangeEvent.nativeEvent?.shiftKey);\n\t\t\t}\n\t\t};\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"rowSelectionFeature\", prototype, table, {\n\t\t\trow_toggleSelected: { fn: (row, value, opts) => row_toggleSelected(row, value, opts) },\n\t\t\trow_getIsSelected: { fn: (row) => row_getIsSelected(row) },\n\t\t\trow_getIsSomeSelected: {\n\t\t\t\tfn: (row) => row_getIsSomeSelected(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.subRows,\n\t\t\t\t\trow.table.atoms.rowSelection?.get(),\n\t\t\t\t\trow.table.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getIsAllSubRowsSelected: {\n\t\t\t\tfn: (row) => row_getIsAllSubRowsSelected(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.subRows,\n\t\t\t\t\trow.table.atoms.rowSelection?.get(),\n\t\t\t\t\trow.table.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getCanSelect: { fn: (row) => row_getCanSelect(row) },\n\t\t\trow_getCanSelectSubRows: { fn: (row) => row_getCanSelectSubRows(row) },\n\t\t\trow_getCanMultiSelect: { fn: (row) => row_getCanMultiSelect(row) },\n\t\t\trow_getToggleSelectedHandler: { fn: (row, opts) => row_getToggleSelectedHandler(row, opts) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"rowSelectionFeature\", table, {\n\t\t\ttable_setRowSelection: { fn: (updater) => table_setRowSelection(table, updater) },\n\t\t\ttable_resetRowSelection: { fn: (defaultState) => table_resetRowSelection(table, defaultState) },\n\t\t\ttable_toggleAllRowsSelected: { fn: (value, opts) => table_toggleAllRowsSelected(table, value, opts) },\n\t\t\ttable_toggleAllPageRowsSelected: { fn: (value, opts) => table_toggleAllPageRowsSelected(table, value, opts) },\n\t\t\ttable_getPreSelectedRowModel: { fn: () => table_getPreSelectedRowModel(table) },\n\t\t\ttable_getSelectedRowModel: {\n\t\t\t\tfn: () => table_getSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getCoreRowModel()]\n\t\t\t},\n\t\t\ttable_getFilteredSelectedRowModel: {\n\t\t\t\tfn: () => table_getFilteredSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getFilteredRowModel()]\n\t\t\t},\n\t\t\ttable_getGroupedSelectedRowModel: {\n\t\t\t\tfn: () => table_getGroupedSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getSortedRowModel()]\n\t\t\t},\n\t\t\ttable_getSelectedRowIds: {\n\t\t\t\tfn: () => table_getSelectedRowIds(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get()]\n\t\t\t},\n\t\t\ttable_getIsAllRowsSelected: {\n\t\t\t\tfn: () => table_getIsAllRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getFilteredRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection,\n\t\t\t\t\ttable.options.enableSubRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getIsAllPageRowsSelected: {\n\t\t\t\tfn: () => table_getIsAllPageRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getPaginatedRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection,\n\t\t\t\t\ttable.options.enableSubRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getIsSomeRowsSelected: {\n\t\t\t\tfn: () => table_getIsSomeRowsSelected(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get()]\n\t\t\t},\n\t\t\ttable_getIsSomePageRowsSelected: {\n\t\t\t\tfn: () => table_getIsSomePageRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getPaginatedRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getToggleAllRowsSelectedHandler: { fn: () => table_getToggleAllRowsSelectedHandler(table) },\n\t\t\ttable_getToggleAllPageRowsSelectedHandler: { fn: () => table_getToggleAllPageRowsSelectedHandler(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { rowSelectionFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_clearSorting, column_getAutoSortDir, column_getAutoSortFn, column_getCanMultiSort, column_getCanSort, column_getFirstSortDir, column_getIsSorted, column_getNextSortingOrder, column_getSortFn, column_getSortIndex, column_getToggleSortingHandler, column_toggleSorting, getDefaultSortingState, table_resetSorting, table_setSorting } from \"./rowSortingFeature.utils.js\";\n\n//#region src/features/row-sorting/rowSortingFeature.ts\n/**\n* Feature that adds row sorting state, defaults, and column/table sorting APIs.\n*/\nconst rowSortingFeature = {\n\tgetInitialState(initialState) {\n\t\treturn {\n\t\t\tsorting: getDefaultSortingState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultColumnDef() {\n\t\treturn {\n\t\t\tsortFn: \"auto\",\n\t\t\tsortUndefined: 1\n\t\t};\n\t},\n\tgetDefaultTableOptions(table) {\n\t\treturn {\n\t\t\tautoResetSorting: false,\n\t\t\tonSortingChange: makeStateUpdater(\"sorting\", table),\n\t\t\tisMultiSortEvent: (e) => {\n\t\t\t\treturn e.shiftKey;\n\t\t\t}\n\t\t};\n\t},\n\tassignColumnPrototype(prototype, table) {\n\t\tassignPrototypeAPIs(\"rowSortingFeature\", prototype, table, {\n\t\t\tcolumn_getAutoSortFn: { fn: (column) => column_getAutoSortFn(column) },\n\t\t\tcolumn_getAutoSortDir: { fn: (column) => column_getAutoSortDir(column) },\n\t\t\tcolumn_getSortFn: { fn: (column) => column_getSortFn(column) },\n\t\t\tcolumn_toggleSorting: { fn: (column, desc, multi) => column_toggleSorting(column, desc, multi) },\n\t\t\tcolumn_getFirstSortDir: { fn: (column) => column_getFirstSortDir(column) },\n\t\t\tcolumn_getNextSortingOrder: { fn: (column, multi) => column_getNextSortingOrder(column, multi) },\n\t\t\tcolumn_getCanSort: { fn: (column) => column_getCanSort(column) },\n\t\t\tcolumn_getCanMultiSort: { fn: (column) => column_getCanMultiSort(column) },\n\t\t\tcolumn_getIsSorted: { fn: (column) => column_getIsSorted(column) },\n\t\t\tcolumn_getSortIndex: { fn: (column) => column_getSortIndex(column) },\n\t\t\tcolumn_clearSorting: { fn: (column) => column_clearSorting(column) },\n\t\t\tcolumn_getToggleSortingHandler: { fn: (column) => column_getToggleSortingHandler(column) }\n\t\t});\n\t},\n\tconstructTableAPIs(table) {\n\t\tassignTableAPIs(\"rowSortingFeature\", table, {\n\t\t\ttable_setSorting: { fn: (updater) => table_setSorting(table, updater) },\n\t\t\ttable_resetSorting: { fn: (defaultState) => table_resetSorting(table, defaultState) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { rowSortingFeature };","export function mergeObjects(...sources) {\n    const target = {};\n    for (let source of sources) {\n        if (typeof source === 'function')\n            source = source();\n        if (source) {\n            const descriptors = Object.getOwnPropertyDescriptors(source);\n            for (const key in descriptors) {\n                if (key in target)\n                    continue;\n                Object.defineProperty(target, key, {\n                    enumerable: true,\n                    get() {\n                        for (let i = sources.length - 1; i >= 0; i--) {\n                            let v, s = sources[i];\n                            if (typeof s === 'function')\n                                s = s();\n                            // eslint-disable-next-line prefer-const\n                            v = (s || {})[key];\n                            if (v !== undefined)\n                                return v;\n                        }\n                    },\n                });\n            }\n        }\n    }\n    return target;\n}\nexport function flatMerge(...sources) {\n    const result = {};\n    for (let source of sources) {\n        if (typeof source === 'function')\n            source = source();\n        if (!source)\n            continue;\n        for (const key of Reflect.ownKeys(source)) {\n            const value = source[key];\n            if (value !== undefined) {\n                result[key] = value;\n            }\n        }\n    }\n    return result;\n}\n","import { untrack } from 'svelte';\nimport { batch, createAtom } from '@tanstack/svelte-store';\nconst optionsStoreDebugName = 'table/optionsStore';\nfunction observerToCallback(observerOrNext) {\n    return typeof observerOrNext === 'function'\n        ? observerOrNext\n        : (value) => observerOrNext.next?.(value);\n}\nfunction subscribeToRune(getValue, observerOrNext) {\n    const callback = observerToCallback(observerOrNext);\n    const unsubscribe = $effect.root(() => {\n        $effect(() => {\n            const value = getValue();\n            untrack(() => callback(value));\n        });\n    });\n    return { unsubscribe };\n}\nfunction createRuneWritableAtom(initialValue) {\n    let value = $state(initialValue);\n    return {\n        set: (updater) => {\n            value =\n                typeof updater === 'function'\n                    ? updater(value)\n                    : updater;\n        },\n        get: () => value,\n        subscribe: ((observerOrNext) => {\n            return subscribeToRune(() => value, observerOrNext);\n        }),\n    };\n}\n/**\n * Creates the table-core reactivity bindings used by the Svelte adapter.\n *\n * Table state atoms are backed by TanStack Store atoms. The options store stays\n * framework-native because row-model APIs read `table.options` directly during\n * render. Readonly table atoms bridge Store dependency tracking into\n * `$derived.by`, so their `.get()` methods participate in Svelte dependency\n * tracking when called in templates, `$derived`, or `$effect`.\n */\nexport function svelteReactivity() {\n    return {\n        createOptionsStore: true,\n        wrapExternalAtoms: false,\n        addSubscription: () => {\n            throw new Error('Feature not supported in current reactivity implementation');\n        },\n        unmount: () => {\n            throw new Error('Feature not supported in current reactivity implementation');\n        },\n        schedule: (fn) => queueMicrotask(() => fn()),\n        createReadonlyAtom: (fn, _options) => {\n            const storeAtom = createAtom(() => fn(), {\n                compare: _options?.compare,\n            });\n            let version = $state(0);\n            $effect(() => {\n                const subscription = storeAtom.subscribe(() => {\n                    version += 1;\n                });\n                return () => subscription.unsubscribe();\n            });\n            const value = $derived.by(() => {\n                version;\n                return storeAtom.get();\n            });\n            return {\n                get: () => {\n                    // Both reads are load-bearing: the Store read preserves dependency\n                    // tracking between table atoms, while touching `value` registers the\n                    // current Svelte reactive scope with the rune-backed bridge.\n                    const currentValue = storeAtom.get();\n                    value;\n                    return currentValue;\n                },\n                subscribe: ((observerOrNext) => {\n                    return subscribeToRune(() => value, observerOrNext);\n                }),\n            };\n        },\n        createWritableAtom: (initialValue, _options) => {\n            if (_options?.debugName === optionsStoreDebugName) {\n                return createRuneWritableAtom(initialValue);\n            }\n            return createAtom(initialValue, {\n                compare: _options?.compare,\n            });\n        },\n        untrack: untrack,\n        batch,\n    };\n}\n","import { constructTable } from '@tanstack/table-core';\nimport { untrack } from 'svelte';\nimport { flatMerge, mergeObjects } from './merge-objects';\nimport { svelteReactivity } from './reactivity.svelte';\n/**\n * Creates a Svelte 5 table instance backed by rune-aware TanStack Store atoms.\n *\n * Read a specific state slice with `table.atoms.<slice>.get()` and read the\n * complete state with `table.store.get()`. Those reads participate in Svelte\n * dependency tracking when they run in a template, `$derived`, or `$effect`.\n * The adapter syncs options in `$effect.pre`, so reactive option getters and\n * external `$state` values are applied before DOM updates read table APIs such\n * as `getRowModel()`.\n *\n * @example\n * ```svelte\n * <script lang=\"ts\">\n *   const table = createTable({\n *     features,\n *     columns,\n *     get data() {\n *       return data\n *     },\n *   })\n *\n *   const pagination = $derived(table.atoms.pagination.get())\n *   const stateJson = $derived(JSON.stringify(table.store.get(), null, 2))\n * </script>\n *\n * <span>Page {pagination.pageIndex + 1}</span>\n * <pre>{stateJson}</pre>\n * ```\n */\nexport function createTable(tableOptions) {\n    // 1. Merge reactivity into options using mergeObjects (preserves getters)\n    const mergedOptions = mergeObjects(tableOptions, {\n        features: {\n            coreReactivityFeature: svelteReactivity(),\n            ...tableOptions.features,\n        },\n    });\n    // 2. Set up resolved options with mergeOptions handler\n    const resolvedOptions = mergeObjects({\n        mergeOptions: (defaultOptions, newOptions) => {\n            return flatMerge(defaultOptions, newOptions);\n        },\n    }, mergedOptions);\n    // 3. Construct table\n    const table = constructTable(resolvedOptions);\n    // 4. Sync options reactively. When controlled state changes (e.g., $state\n    // inside createTableState), the effect re-runs and calls setOptions.\n    // Use $effect.pre so the table sees updated options BEFORE the DOM renders,\n    // ensuring getRowModel() returns current data (not stale, one-frame-behind data).\n    // Reactive option getters and nested state keys are read OUTSIDE untrack so\n    // they become dependencies. The setOptions call is INSIDE untrack so option\n    // writes do not subscribe this effect to table internals.\n    $effect.pre(() => {\n        // Resolve every option outside untrack so getter-backed data, columns,\n        // callbacks, metadata, and state become dependencies of this effect.\n        const nextOptions = flatMerge(mergedOptions);\n        const state = nextOptions.state;\n        if (state) {\n            for (const key in state) {\n                void state[key];\n            }\n        }\n        untrack(() => {\n            table.setOptions((prev) => {\n                return flatMerge(prev, nextOptions);\n            });\n        });\n    });\n    return table;\n}\n","import {\n  columnPinningFeature,\n  columnSizingFeature,\n  columnVisibilityFeature,\n  createTable,\n  rowSelectionFeature,\n  rowSortingFeature,\n  tableFeatures,\n} from \"@tanstack/svelte-table\"\nimport type { ColumnDef, DataRow, TableSortState } from \"../../../../../../../core/layout/table\"\n\nexport const SELECTION_COLUMN_ID = \"__kw_selection\"\nexport const ACTIONS_COLUMN_ID = \"__kw_actions\"\n\nconst features = tableFeatures({\n  columnPinningFeature,\n  columnSizingFeature,\n  columnVisibilityFeature,\n  rowSelectionFeature,\n  rowSortingFeature,\n})\n\ntype EngineOptions = {\n  columns: () => ColumnDef[]\n  rows: () => DataRow[]\n  widths: () => Record<string, number>\n  visibleIds: () => string[]\n  getRowId: (row: DataRow) => string\n  selection: () => Set<string>\n  isSelectable: (row: DataRow, index: number) => boolean\n  sort: () => TableSortState\n  pinning: () => { start: string[]; end: string[] }\n}\n\nexport function createTableEngine(options: EngineOptions) {\n  const table = createTable({\n    features,\n    get columns() {\n      return options.columns().map((column) => ({\n        id: column.id,\n        accessorFn: (row: DataRow) => row[column.id],\n        enableSorting: column.sortable === true,\n        enablePinning: column.canPin !== false,\n        minSize: column.minWidth ?? 32,\n        maxSize: column.maxWidth ?? 1200,\n      }))\n    },\n    get data() {\n      return options.rows()\n    },\n    getRowId: options.getRowId,\n    enableRowSelection: (row) => options.isSelectable(row.original, row.index),\n    enableRowRangeSelection: false,\n    manualSorting: true,\n    state: {\n      get columnPinning() {\n        return options.pinning()\n      },\n      get columnSizing() {\n        return options.widths()\n      },\n      get columnVisibility() {\n        const visible = new Set(options.visibleIds())\n\n        return Object.fromEntries(\n          options.columns().map((column) => [column.id, visible.has(column.id)]),\n        )\n      },\n      get rowSelection() {\n        return Object.fromEntries(Array.from(options.selection(), (id) => [id, true as const]))\n      },\n      get sorting() {\n        const sort = options.sort()\n\n        return sort ? [{ id: sort.columnId, desc: sort.dir === \"desc\" }] : []\n      },\n    },\n  })\n\n  return {\n    get rows() {\n      return table.getRowModel().rows.map((row) => ({\n        id: row.id,\n        data: row.original,\n        index: row.index,\n      }))\n    },\n    columnStyle(id: string): string {\n      const column = table.getColumn(id)\n\n      if (!column) throw new Error(\"Unknown table column: \" + id)\n\n      const pin = column.getIsPinned()\n      const width = column.getSize()\n      const base = `width:${width}px;min-width:${width}px;max-width:${width}px;`\n\n      if (!pin) return base\n\n      const offset = pin === \"start\" ? column.getStart(\"start\") : column.getAfter(\"end\")\n\n      return base + `position:sticky;inset-inline-${pin}:${offset}px;z-index:2;`\n    },\n    isPinned(id: string) {\n      return table.getColumn(id)?.getIsPinned() ?? false\n    },\n  }\n}\n","import type { ColumnDef, DataRow } from \"../../../../../../../core/layout/table\"\nimport { clamp, estimateColumnWidth, parsePxWidth } from \"../../../../../../../core/layout/index\"\nimport { ACTIONS_COLUMN_ID, SELECTION_COLUMN_ID } from \"./engine.svelte.js\"\n\nexport type ColumnPins = { start: string[]; end: string[] }\n\nexport function measureColumnWidths(\n  columns: ColumnDef[],\n  rows: DataRow[],\n  measure: (text: string) => number,\n): Record<string, number> {\n  return Object.fromEntries(\n    columns.map((column) => {\n      const explicit = parsePxWidth(column.width)\n      let width = Math.max(estimateColumnWidth(column), measure(column.label) + 76)\n\n      if (explicit !== null) width = explicit\n      else {\n        for (const row of rows.slice(0, 20)) {\n          const value = column.measureValue ? column.measureValue(row) : row[column.id]\n\n          if (typeof value === \"string\" || typeof value === \"number\") {\n            width = Math.max(width, measure(String(value).slice(0, 500)) + 32)\n          }\n        }\n      }\n\n      return [column.id, clamp(Math.ceil(width), column.minWidth ?? 80, column.maxWidth ?? 1200)]\n    }),\n  )\n}\n\nexport function resolveColumnLayout(input: {\n  columns: ColumnDef[]\n  widths: Record<string, number>\n  containerWidth: number\n  actionsWidth: number\n  selectionWidth: number\n  pins: ColumnPins\n  mode: \"click\" | \"scroll\"\n  offset: number\n  initialVisibleColumns: number\n}) {\n  const { columns, widths, containerWidth, mode } = input\n  const ids = columns.map((column) => column.id)\n  const valid = new Set(\n    columns.filter((column) => column.canPin !== false).map((column) => column.id),\n  )\n  const start = [...new Set(input.pins.start.filter((id) => valid.has(id)))]\n  const end = [...new Set(input.pins.end.filter((id) => valid.has(id) && !start.includes(id)))]\n  const controls = input.actionsWidth + input.selectionWidth\n  const dataPinnedWidth = [...start, ...end].reduce((sum, id) => sum + widths[id], 0)\n  const pinsFit = containerWidth > 0 && controls + dataPinnedWidth + 120 <= containerWidth\n  const startIds = pinsFit ? start : []\n  const endIds = pinsFit ? end : []\n  const pinned = new Set([...startIds, ...endIds])\n  const middle = ids.filter((id) => !pinned.has(id))\n  const fixedWidth = controls + [...pinned].reduce((sum, id) => sum + widths[id], 0)\n  const available = Math.max(0, containerWidth - fixedWidth)\n  const totalWidth = ids.reduce((sum, id) => sum + widths[id], controls)\n  const overflow =\n    containerWidth > 0 ? totalWidth > containerWidth : middle.length > input.initialVisibleColumns\n  const fit = (candidates: string[]) => {\n    if (mode === \"scroll\" || !overflow) return candidates.length\n\n    if (containerWidth <= 0) return Math.min(candidates.length, input.initialVisibleColumns)\n\n    let used = 0\n    let count = 0\n    for (const id of candidates) {\n      if (count > 0 && used + widths[id] > available) break\n\n      used += widths[id]\n      count++\n    }\n\n    return count\n  }\n  const maxOffset = Math.max(0, middle.length - fit([...middle].reverse()))\n  const offset = mode === \"scroll\" ? 0 : clamp(input.offset, 0, maxOffset)\n  const centerIds = middle.slice(offset, offset + fit(middle.slice(offset)))\n  const visibleIds = [...startIds, ...centerIds, ...endIds]\n  const resolvedWidths = { ...widths }\n  const spare = containerWidth - visibleIds.reduce((sum, id) => sum + widths[id], controls)\n\n  if (mode === \"click\" && spare > 0 && centerIds.length) {\n    for (const id of centerIds) resolvedWidths[id] += spare / centerIds.length\n  }\n\n  return {\n    visibleIds,\n    widths: resolvedWidths,\n    totalWidth,\n    overflow,\n    offset,\n    maxOffset,\n    pinning: {\n      start: pinsFit ? [...(input.selectionWidth ? [SELECTION_COLUMN_ID] : []), ...startIds] : [],\n      end: pinsFit ? [...endIds, ...(input.actionsWidth ? [ACTIONS_COLUMN_ID] : [])] : [],\n    },\n  }\n}\n","function getMeasurementKey(item) {\n  return typeof item === \"object\" ? item.key : item;\n}\nfunction createLazyMeasurementsView(cache, flat) {\n  const count = cache.length;\n  return new Proxy(cache, {\n    get(target, prop, receiver) {\n      if (typeof prop === \"string\") {\n        const c = prop.charCodeAt(0);\n        if (c >= 48 && c <= 57) {\n          const i = +prop;\n          if (Number.isInteger(i) && i >= 0 && i < count) {\n            let v = target[i];\n            if (typeof v !== \"object\") {\n              const s = flat[i * 2];\n              v = target[i] = {\n                index: i,\n                key: v,\n                start: s,\n                size: flat[i * 2 + 1],\n                end: s + flat[i * 2 + 1],\n                lane: 0\n              };\n            }\n            return v;\n          }\n        }\n        if (prop === \"length\") return count;\n      }\n      return Reflect.get(target, prop, receiver);\n    }\n  });\n}\nexport {\n  createLazyMeasurementsView,\n  getMeasurementKey\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n  let deps = opts.initialDeps ?? [];\n  let result;\n  let isInitial = true;\n  function memoizedFunction() {\n    var _a;\n    const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n    let depTime = 0;\n    if (debugEnabled) depTime = Date.now();\n    const newDeps = getDeps();\n    const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n    if (!depsChanged) {\n      return result;\n    }\n    deps = newDeps;\n    let resultTime = 0;\n    if (debugEnabled) resultTime = Date.now();\n    result = fn(...newDeps);\n    if (debugEnabled) {\n      const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n      const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n      const resultFpsPercentage = resultEndTime / 16;\n      const pad = (str, num) => {\n        str = String(str);\n        while (str.length < num) {\n          str = \" \" + str;\n        }\n        return str;\n      };\n      console.info(\n        `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n        `\n            font-size: .6rem;\n            font-weight: bold;\n            color: hsl(${Math.max(\n          0,\n          Math.min(120 - 120 * resultFpsPercentage, 120)\n        )}deg 100% 31%);`,\n        opts == null ? void 0 : opts.key\n      );\n    }\n    if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n      opts.onChange(result);\n    }\n    isInitial = false;\n    return result;\n  }\n  memoizedFunction.updateDeps = (newDeps) => {\n    deps = newDeps;\n  };\n  return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n  if (value === void 0) {\n    throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n  } else {\n    return value;\n  }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n  let timeoutId;\n  return Object.assign(\n    function(...args) {\n      targetWindow.clearTimeout(timeoutId);\n      timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n    },\n    {\n      // The handle is closure-local, so a caller that has already\n      // unsubscribed has no way to stop a queued call. Teardown paths use\n      // this to drop the pending invocation instead of letting it land.\n      cancel: () => {\n        targetWindow.clearTimeout(timeoutId);\n      }\n    }\n  );\n};\nexport {\n  approxEqual,\n  debounce,\n  memo,\n  notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView, getMeasurementKey } from \"./lazy-measurements.js\";\nimport { memo, approxEqual, notUndefined, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n  if (_isIOSResult !== void 0) return _isIOSResult;\n  if (typeof navigator === \"undefined\") return _isIOSResult = false;\n  if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n  const mtp = navigator.maxTouchPoints;\n  return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n  _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n  const { offsetWidth, offsetHeight } = element;\n  return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n  const start = Math.max(range.startIndex - range.overscan, 0);\n  const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n  const len = end - start + 1;\n  const arr = new Array(len);\n  for (let i = 0; i < len; i++) {\n    arr[i] = start + i;\n  }\n  return arr;\n};\nconst observeElementRect = (instance, cb) => {\n  const element = instance.scrollElement;\n  if (!element) {\n    return;\n  }\n  const targetWindow = instance.targetWindow;\n  if (!targetWindow) {\n    return;\n  }\n  const handler = (rect) => {\n    const { width, height } = rect;\n    cb({ width: Math.round(width), height: Math.round(height) });\n  };\n  handler(getRect(element));\n  if (!targetWindow.ResizeObserver) {\n    return () => {\n    };\n  }\n  const observer = new targetWindow.ResizeObserver((entries) => {\n    const run = () => {\n      const entry = entries[0];\n      if (entry == null ? void 0 : entry.borderBoxSize) {\n        const box = entry.borderBoxSize[0];\n        if (box) {\n          handler({ width: box.inlineSize, height: box.blockSize });\n          return;\n        }\n      }\n      handler(getRect(element));\n    };\n    instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n  });\n  observer.observe(element, { box: \"border-box\" });\n  return () => {\n    observer.unobserve(element);\n  };\n};\nconst addEventListenerOptions = {\n  passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n  const element = instance.scrollElement;\n  if (!element) {\n    return;\n  }\n  const handler = () => {\n    cb({ width: element.innerWidth, height: element.innerHeight });\n  };\n  handler();\n  element.addEventListener(\"resize\", handler, addEventListenerOptions);\n  return () => {\n    element.removeEventListener(\"resize\", handler);\n  };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n  const element = instance.scrollElement;\n  if (!element) {\n    return;\n  }\n  const targetWindow = instance.targetWindow;\n  if (!targetWindow) {\n    return;\n  }\n  const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n  let offset = 0;\n  const fallback = registerScrollendEvent ? null : debounce(\n    targetWindow,\n    () => cb(readOffset(element), false),\n    instance.options.isScrollingResetDelay\n  );\n  const createHandler = (isScrolling) => () => {\n    offset = readOffset(element);\n    fallback == null ? void 0 : fallback();\n    cb(offset, isScrolling);\n  };\n  const handler = createHandler(true);\n  const endHandler = createHandler(false);\n  element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n  if (registerScrollendEvent) {\n    element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n  }\n  return () => {\n    element.removeEventListener(\"scroll\", handler);\n    if (registerScrollendEvent) {\n      element.removeEventListener(\"scrollend\", endHandler);\n    }\n    fallback == null ? void 0 : fallback.cancel();\n  };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n  const { horizontal, isRtl } = instance.options;\n  return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n  instance,\n  cb,\n  (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n  if (instance.options.useCachedMeasurements) {\n    const index = instance.indexFromElement(element);\n    const key = instance.options.getItemKey(index);\n    return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n  }\n  if (entry == null ? void 0 : entry.borderBoxSize) {\n    const box = entry.borderBoxSize[0];\n    if (box) {\n      const size = Math.round(\n        box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n      );\n      return size;\n    }\n  }\n  if (!entry) {\n    const index = instance.indexFromElement(element);\n    const key = instance.options.getItemKey(index);\n    const cachedSize = instance.itemSizeCache.get(key);\n    if (cachedSize !== void 0) {\n      return cachedSize;\n    }\n  }\n  return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n  adjustments = 0,\n  behavior\n}, instance) => {\n  var _a, _b;\n  (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n    [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n    behavior\n  });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nfunction isAppendWithTrim(prevCount, nextCount, getPreviousKey, getNextKey) {\n  if (nextCount === 0) return false;\n  const firstKey = getNextKey(0);\n  const removedKeys = /* @__PURE__ */ new Set();\n  let removedCount = 0;\n  while (removedCount < prevCount) {\n    const key = getPreviousKey(removedCount);\n    if (key === firstKey) break;\n    removedKeys.add(key);\n    removedCount++;\n  }\n  const retainedCount = prevCount - removedCount;\n  if (retainedCount === 0 || retainedCount >= nextCount) return false;\n  for (let i = 0; i < retainedCount; i++) {\n    if (getNextKey(i) !== getPreviousKey(removedCount + i)) return false;\n  }\n  for (let i = retainedCount; i < nextCount; i++) {\n    if (removedKeys.has(getNextKey(i))) return false;\n  }\n  return true;\n}\nclass Virtualizer {\n  constructor(opts) {\n    this.unsubs = [];\n    this.scrollElement = null;\n    this.targetWindow = null;\n    this.isScrolling = false;\n    this.scrollState = null;\n    this.measurementsCache = [];\n    this._singleLaneMeasurements = null;\n    this.itemSizeCache = /* @__PURE__ */ new Map();\n    this.itemSizeCacheVersion = 0;\n    this.laneAssignments = /* @__PURE__ */ new Map();\n    this.pendingMin = null;\n    this.prevLanes = void 0;\n    this.lanesChangedFlag = false;\n    this.lanesSettling = false;\n    this.pendingScrollAnchor = null;\n    this.scrollRect = null;\n    this.scrollOffset = null;\n    this.scrollDirection = null;\n    this.scrollAdjustments = 0;\n    this._iosDeferredAdjustment = 0;\n    this._iosTouching = false;\n    this._iosJustTouchEnded = false;\n    this._iosTouchEndTimerId = null;\n    this._intendedScrollOffset = null;\n    this._clampedAdjustment = null;\n    this.elementsCache = /* @__PURE__ */ new Map();\n    this.now = () => {\n      var _a, _b, _c;\n      return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n    };\n    this.observer = /* @__PURE__ */ (() => {\n      let _ro = null;\n      const get = () => {\n        if (_ro) {\n          return _ro;\n        }\n        if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n          return null;\n        }\n        return _ro = new this.targetWindow.ResizeObserver((entries) => {\n          entries.forEach((entry) => {\n            const run = () => {\n              const node = entry.target;\n              const index = this.indexFromElement(node);\n              if (!node.isConnected) {\n                this.observer.unobserve(node);\n                for (const [cacheKey, cachedNode] of this.elementsCache) {\n                  if (cachedNode === node) {\n                    this.elementsCache.delete(cacheKey);\n                    break;\n                  }\n                }\n                return;\n              }\n              if (!this.isIndexInRange(index)) return;\n              if (this.shouldMeasureDuringScroll(index)) {\n                this.resizeItem(\n                  index,\n                  this.options.measureElement(node, entry, this)\n                );\n              }\n            };\n            this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n          });\n        });\n      };\n      return {\n        disconnect: () => {\n          var _a;\n          (_a = get()) == null ? void 0 : _a.disconnect();\n          _ro = null;\n        },\n        observe: (target) => {\n          var _a;\n          return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n        },\n        unobserve: (target) => {\n          var _a;\n          return (_a = get()) == null ? void 0 : _a.unobserve(target);\n        }\n      };\n    })();\n    this.range = null;\n    this.setOptions = (opts2) => {\n      var _a;\n      const merged = {\n        debug: false,\n        initialOffset: 0,\n        overscan: 1,\n        paddingStart: 0,\n        paddingEnd: 0,\n        scrollPaddingStart: 0,\n        scrollPaddingEnd: 0,\n        horizontal: false,\n        getItemKey: defaultKeyExtractor,\n        rangeExtractor: defaultRangeExtractor,\n        onChange: () => {\n        },\n        measureElement,\n        initialRect: { width: 0, height: 0 },\n        scrollMargin: 0,\n        gap: 0,\n        indexAttribute: \"data-index\",\n        initialMeasurementsCache: [],\n        lanes: 1,\n        anchorTo: \"start\",\n        followOnAppend: false,\n        scrollEndThreshold: 1,\n        isScrollingResetDelay: 150,\n        enabled: true,\n        isRtl: false,\n        useScrollendEvent: false,\n        useAnimationFrameWithResizeObserver: false,\n        laneAssignmentMode: \"estimate\",\n        useCachedMeasurements: false\n      };\n      for (const key in opts2) {\n        const v = opts2[key];\n        if (v !== void 0) merged[key] = v;\n      }\n      const prevOptions = this.options;\n      let anchor = null;\n      let followOnAppend = null;\n      let edgeKeysChanged = false;\n      if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n        const prevCount = prevOptions.count;\n        const nextCount = merged.count;\n        const measurements = this.getMeasurements();\n        const previousItems = ((_a = this._singleLaneMeasurements) == null ? void 0 : _a.items) ?? measurements;\n        const getPreviousKey = (index) => getMeasurementKey(previousItems[index]);\n        const prevFirstKey = prevCount > 0 ? getPreviousKey(0) : null;\n        const prevLastKey = prevCount > 0 ? getPreviousKey(prevCount - 1) : null;\n        const didCountChange = nextCount !== prevCount;\n        const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n        if (didEdgeKeysChange) {\n          edgeKeysChanged = true;\n          const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n          if (item) {\n            anchor = [item.key, this.getScrollOffset() - item.start];\n          }\n          const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n          if (behavior && nextCount > 0 && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n            if (nextCount > prevCount || isAppendWithTrim(\n              prevCount,\n              nextCount,\n              getPreviousKey,\n              merged.getItemKey\n            )) {\n              followOnAppend = behavior;\n            }\n          }\n        }\n      }\n      this.options = merged;\n      if (edgeKeysChanged) {\n        this.pendingMin = 0;\n        this.itemSizeCacheVersion++;\n      }\n      let anchorResolved = false;\n      let anchorDelta = 0;\n      if (anchor && this.scrollOffset !== null) {\n        const [anchorKey, anchorOffset] = anchor;\n        const newMeasurements = this.getMeasurements();\n        const { count, getItemKey } = this.options;\n        let idx = 0;\n        while (idx < count && getItemKey(idx) !== anchorKey) {\n          idx++;\n        }\n        if (idx < count) {\n          const anchorItem = newMeasurements[idx];\n          if (anchorItem) {\n            const newOffset = Math.max(0, anchorItem.start + anchorOffset);\n            if (!followOnAppend && newOffset !== this.scrollOffset) {\n              anchorDelta = newOffset - this.scrollOffset;\n              this.scrollOffset = newOffset;\n              anchorResolved = true;\n            }\n          }\n        }\n      }\n      if (anchorResolved || followOnAppend) {\n        this.pendingScrollAnchor = [\n          anchorResolved ? anchor[0] : null,\n          anchorResolved ? anchor[1] : 0,\n          followOnAppend,\n          anchorDelta\n        ];\n      }\n    };\n    this.notify = (sync) => {\n      var _a, _b;\n      (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n    };\n    this.maybeNotify = memo(\n      () => {\n        this.calculateRange();\n        return [\n          this.isScrolling,\n          this.range ? this.range.startIndex : null,\n          this.range ? this.range.endIndex : null\n        ];\n      },\n      (isScrolling) => {\n        this.notify(isScrolling);\n      },\n      {\n        key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n        debug: () => this.options.debug,\n        initialDeps: [\n          this.isScrolling,\n          this.range ? this.range.startIndex : null,\n          this.range ? this.range.endIndex : null\n        ]\n      }\n    );\n    this.cleanup = () => {\n      this.unsubs.filter(Boolean).forEach((d) => d());\n      this.unsubs = [];\n      this.observer.disconnect();\n      if (this.rafId != null && this.targetWindow) {\n        this.targetWindow.cancelAnimationFrame(this.rafId);\n        this.rafId = null;\n      }\n      this.scrollState = null;\n      this.isScrolling = false;\n      this.scrollDirection = null;\n      this._iosDeferredAdjustment = 0;\n      this._iosTouching = false;\n      this._iosJustTouchEnded = false;\n      this._clampedAdjustment = null;\n      this.scrollElement = null;\n      this.targetWindow = null;\n    };\n    this._didMount = () => {\n      return () => {\n        this.cleanup();\n      };\n    };\n    this._willUpdate = () => {\n      var _a, _b;\n      const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n      if (this.scrollElement !== scrollElement) {\n        this.cleanup();\n        if (!scrollElement) {\n          this.maybeNotify();\n          return;\n        }\n        this.scrollElement = scrollElement;\n        if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n          this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n        } else {\n          this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n        }\n        this.elementsCache.forEach((cached) => {\n          this.observer.observe(cached);\n        });\n        this.unsubs.push(\n          this.options.observeElementRect(this, (rect) => {\n            this.scrollRect = rect;\n            this.maybeNotify();\n          })\n        );\n        this.unsubs.push(\n          this.options.observeElementOffset(this, (offset, isScrolling) => {\n            if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n              return;\n            }\n            if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n              offset = this._intendedScrollOffset;\n            }\n            this._intendedScrollOffset = null;\n            if (this._clampedAdjustment !== null && Math.abs(offset - this._clampedAdjustment.maxAtWrite) >= 1.5) {\n              this._clampedAdjustment = null;\n            }\n            this.scrollAdjustments = 0;\n            const prevOffset = this.getScrollOffset();\n            this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n            this.scrollOffset = offset;\n            this.isScrolling = isScrolling;\n            this._flushIosDeferredIfReady();\n            if (this.scrollState) {\n              this.scheduleScrollReconcile();\n            }\n            this.maybeNotify();\n          })\n        );\n        if (\"addEventListener\" in this.scrollElement) {\n          const scrollEl = this.scrollElement;\n          const onTouchStart = () => {\n            this._iosTouching = true;\n            this._iosJustTouchEnded = false;\n            if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n              this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n              this._iosTouchEndTimerId = null;\n            }\n          };\n          const onTouchEnd = () => {\n            this._iosTouching = false;\n            if (!isIOSWebKit() || this.targetWindow == null) {\n              return;\n            }\n            this._iosJustTouchEnded = true;\n            this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n              this._iosJustTouchEnded = false;\n              this._iosTouchEndTimerId = null;\n              this._flushIosDeferredIfReady();\n            }, 150);\n          };\n          scrollEl.addEventListener(\n            \"touchstart\",\n            onTouchStart,\n            addEventListenerOptions\n          );\n          scrollEl.addEventListener(\n            \"touchend\",\n            onTouchEnd,\n            addEventListenerOptions\n          );\n          this.unsubs.push(() => {\n            scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n            scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n            if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n              this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n              this._iosTouchEndTimerId = null;\n            }\n          });\n        }\n        this._scrollToOffset(this.getScrollOffset(), {\n          adjustments: void 0,\n          behavior: void 0\n        });\n      }\n      const anchor = this.pendingScrollAnchor;\n      this.pendingScrollAnchor = null;\n      if (anchor && this.scrollElement && this.options.enabled) {\n        const [key, _offset, followOnAppend, anchorDelta] = anchor;\n        if (key !== null && !followOnAppend) {\n          if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n            if (anchorDelta !== 0) {\n              this._iosDeferredAdjustment += anchorDelta;\n            }\n          } else if (((_b = this.scrollState) == null ? void 0 : _b.behavior) === \"smooth\" && !approxEqual(\n            this.getScrollOffset() - anchorDelta,\n            this.scrollState.lastTargetOffset\n          )) ;\n          else {\n            this._scrollToOffset(this.getScrollOffset(), {\n              adjustments: void 0,\n              behavior: void 0\n            });\n          }\n        }\n        if (followOnAppend) {\n          this.scrollToEnd({ behavior: followOnAppend });\n        }\n      }\n      this._retryClampedAdjustment();\n    };\n    this._retryClampedAdjustment = () => {\n      if (this._clampedAdjustment === null || !this.scrollElement || !this.options.enabled) {\n        return;\n      }\n      const { target, maxAtWrite } = this._clampedAdjustment;\n      const max = this.getMaxScrollOffset();\n      if (max > maxAtWrite + 0.5) {\n        this._clampedAdjustment = target > max + 0.5 ? { target, maxAtWrite: max } : null;\n        this._scrollToOffset(target, {\n          adjustments: void 0,\n          behavior: void 0\n        });\n      }\n    };\n    this._flushIosDeferredIfReady = () => {\n      if (this._iosDeferredAdjustment === 0) return;\n      if (this.isScrolling) return;\n      if (this._iosTouching) return;\n      if (this._iosJustTouchEnded) return;\n      const cur = this.getScrollOffset();\n      const max = this.getMaxScrollOffset();\n      if (cur < 0 || cur > max) return;\n      if (this._iosDeferredAdjustment < 0 && cur >= max - 1) {\n        this._iosDeferredAdjustment = 0;\n        return;\n      }\n      const delta = this._iosDeferredAdjustment;\n      this._iosDeferredAdjustment = 0;\n      this._scrollToOffset(cur, {\n        adjustments: this.scrollAdjustments += delta,\n        behavior: void 0\n      });\n    };\n    this.rafId = null;\n    this.getSize = () => {\n      if (!this.options.enabled) {\n        this.scrollRect = null;\n        return 0;\n      }\n      this.scrollRect = this.scrollRect ?? this.options.initialRect;\n      return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n    };\n    this.getScrollOffset = () => {\n      if (!this.options.enabled) {\n        this.scrollOffset = null;\n        return 0;\n      }\n      this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n      return this.scrollOffset;\n    };\n    this.getMeasurementOptions = memo(\n      () => [\n        this.options.count,\n        this.options.paddingStart,\n        this.options.scrollMargin,\n        this.options.getItemKey,\n        this.options.enabled,\n        this.options.lanes,\n        this.options.laneAssignmentMode,\n        this.options.gap\n      ],\n      (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {\n        const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n        if (lanesChanged) {\n          this.lanesChangedFlag = true;\n        }\n        this.prevLanes = lanes;\n        this.pendingMin = null;\n        return {\n          count,\n          paddingStart,\n          scrollMargin,\n          getItemKey,\n          enabled,\n          lanes,\n          laneAssignmentMode,\n          gap\n        };\n      },\n      {\n        key: false\n      }\n    );\n    this.isIndexInRange = (index) => index >= 0 && index < this.options.count;\n    this.getMeasurements = memo(\n      () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n      ({\n        count,\n        paddingStart,\n        scrollMargin,\n        getItemKey,\n        enabled,\n        lanes,\n        laneAssignmentMode,\n        gap\n      }, _itemSizeCacheVersion) => {\n        var _a;\n        const itemSizeCache = this.itemSizeCache;\n        if (!enabled) {\n          this.measurementsCache = [];\n          this._singleLaneMeasurements = null;\n          this.itemSizeCache.clear();\n          this.laneAssignments.clear();\n          return [];\n        }\n        if (this.laneAssignments.size > count) {\n          for (const index of this.laneAssignments.keys()) {\n            if (index >= count) {\n              this.laneAssignments.delete(index);\n            }\n          }\n        }\n        if (this.lanesChangedFlag) {\n          this.lanesChangedFlag = false;\n          this.lanesSettling = true;\n          this.measurementsCache = [];\n          this._singleLaneMeasurements = null;\n          this.itemSizeCache.clear();\n          this.laneAssignments.clear();\n          this.pendingMin = null;\n        }\n        if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n          this.measurementsCache = this.options.initialMeasurementsCache;\n          this.measurementsCache.forEach((item) => {\n            this.itemSizeCache.set(item.key, item.size);\n          });\n        }\n        const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n        this.pendingMin = null;\n        if (this.lanesSettling && this.measurementsCache.length === count) {\n          this.lanesSettling = false;\n        }\n        if (lanes === 1) {\n          const need = count * 2;\n          let flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n          if (!flat || flat.length < need) {\n            const next = new Float64Array(need);\n            if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n            flat = next;\n          }\n          const items = min === 0 ? new Array(count) : this._singleLaneMeasurements.items.slice();\n          let runningStart;\n          if (min === 0) {\n            runningStart = paddingStart + scrollMargin;\n          } else {\n            const prevIdx = min - 1;\n            runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n          }\n          for (let i = min; i < count; i++) {\n            const key = getItemKey(i);\n            items[i] = key;\n            const measuredSize = itemSizeCache.get(key);\n            const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n            flat[i * 2] = runningStart;\n            flat[i * 2 + 1] = size;\n            runningStart += size + gap;\n          }\n          this._singleLaneMeasurements = { flat, items };\n          const view = createLazyMeasurementsView(items, flat);\n          this.measurementsCache = view;\n          return view;\n        }\n        const measurements = this.measurementsCache.slice(0, min);\n        const laneLastIndex = new Array(lanes).fill(\n          void 0\n        );\n        const laneEnds = new Float64Array(lanes);\n        let filledLanes = 0;\n        for (let m = 0; m < min; m++) {\n          const item = measurements[m];\n          if (item) {\n            if (laneLastIndex[item.lane] === void 0) filledLanes++;\n            laneLastIndex[item.lane] = m;\n            laneEnds[item.lane] = item.end;\n          }\n        }\n        for (let i = min; i < count; i++) {\n          const key = getItemKey(i);\n          const cachedLane = this.laneAssignments.get(i);\n          let lane;\n          let start;\n          const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n          if (cachedLane !== void 0 && this.options.lanes > 1) {\n            lane = cachedLane;\n            const prevIndex = laneLastIndex[lane];\n            const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n            start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;\n          } else if (filledLanes === lanes) {\n            let bestLane = 0;\n            let bestEnd = laneEnds[0];\n            let bestIdx = laneLastIndex[0];\n            for (let l = 1; l < lanes; l++) {\n              const e = laneEnds[l];\n              if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {\n                bestLane = l;\n                bestEnd = e;\n                bestIdx = laneLastIndex[l];\n              }\n            }\n            lane = bestLane;\n            start = bestEnd + gap;\n            if (shouldCacheLane) {\n              this.laneAssignments.set(i, lane);\n            }\n          } else {\n            lane = i % this.options.lanes;\n            start = paddingStart + scrollMargin;\n            if (shouldCacheLane) {\n              this.laneAssignments.set(i, lane);\n            }\n          }\n          const measuredSize = itemSizeCache.get(key);\n          const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n          const end = start + size;\n          measurements[i] = {\n            index: i,\n            start,\n            size,\n            end,\n            key,\n            lane\n          };\n          if (laneLastIndex[lane] === void 0) filledLanes++;\n          laneLastIndex[lane] = i;\n          laneEnds[lane] = end;\n        }\n        this.measurementsCache = measurements;\n        return measurements;\n      },\n      {\n        key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n        debug: () => this.options.debug\n      }\n    );\n    this.calculateRange = memo(\n      () => [\n        this.getMeasurements(),\n        this.getSize(),\n        this.getScrollOffset(),\n        this.options.lanes\n      ],\n      (measurements, outerSize, scrollOffset, lanes) => {\n        if (measurements.length === 0 || outerSize === 0) {\n          this.range = null;\n          return null;\n        }\n        this.range = calculateRangeImpl(\n          measurements,\n          outerSize,\n          scrollOffset,\n          lanes,\n          // Pass the typed array so binary search + forward-walk can read\n          // start/end directly from Float64Array, skipping the Proxy traps.\n          lanes === 1 && this._singleLaneMeasurements !== null ? this._singleLaneMeasurements.flat : null\n        );\n        return this.range;\n      },\n      {\n        key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n        debug: () => this.options.debug\n      }\n    );\n    this.getVirtualIndexes = memo(\n      () => {\n        let startIndex = null;\n        let endIndex = null;\n        const range = this.calculateRange();\n        if (range) {\n          startIndex = range.startIndex;\n          endIndex = range.endIndex;\n        }\n        this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n        return [\n          this.options.rangeExtractor,\n          this.options.overscan,\n          this.options.count,\n          startIndex,\n          endIndex\n        ];\n      },\n      (rangeExtractor, overscan, count, startIndex, endIndex) => {\n        return startIndex === null || endIndex === null ? [] : rangeExtractor({\n          startIndex,\n          endIndex,\n          overscan,\n          count\n        });\n      },\n      {\n        key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n        debug: () => this.options.debug\n      }\n    );\n    this.indexFromElement = (node) => {\n      const attributeName = this.options.indexAttribute;\n      const indexStr = node.getAttribute(attributeName);\n      if (!indexStr) {\n        console.warn(\n          `Missing attribute name '${attributeName}={index}' on measured element.`\n        );\n        return -1;\n      }\n      return parseInt(indexStr, 10);\n    };\n    this.shouldMeasureDuringScroll = (index) => {\n      var _a;\n      if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n        return true;\n      }\n      const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n      if (scrollIndex !== void 0 && this.range) {\n        const bufferSize = Math.max(\n          this.options.overscan,\n          Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n        );\n        const minIndex = Math.max(0, scrollIndex - bufferSize);\n        const maxIndex = Math.min(\n          this.options.count - 1,\n          scrollIndex + bufferSize\n        );\n        return index >= minIndex && index <= maxIndex;\n      }\n      return true;\n    };\n    this.measureElement = (node) => {\n      if (!node) {\n        this.elementsCache.forEach((cached, key2) => {\n          if (!cached.isConnected) {\n            this.observer.unobserve(cached);\n            this.elementsCache.delete(key2);\n          }\n        });\n        return;\n      }\n      const index = this.indexFromElement(node);\n      if (!this.isIndexInRange(index)) return;\n      const key = this.options.getItemKey(index);\n      const prevNode = this.elementsCache.get(key);\n      if (prevNode !== node) {\n        if (prevNode) {\n          this.observer.unobserve(prevNode);\n        }\n        this.observer.observe(node);\n        this.elementsCache.set(key, node);\n      }\n      if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n        this.resizeItem(index, this.options.measureElement(node, void 0, this));\n      }\n    };\n    this.resizeItem = (index, size) => {\n      var _a, _b, _c;\n      if (!this.isIndexInRange(index)) return;\n      let cachedSize;\n      let itemStart;\n      let key;\n      const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n      if (this.options.lanes === 1 && flat != null) {\n        key = this.options.getItemKey(index);\n        itemStart = flat[index * 2];\n        cachedSize = flat[index * 2 + 1];\n      } else {\n        const item = this.measurementsCache[index];\n        if (!item) return;\n        key = item.key;\n        itemStart = item.start;\n        cachedSize = item.size;\n      }\n      const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n      const delta = size - itemSize;\n      if (delta !== 0) {\n        const wasAtEnd = this.options.anchorTo === \"end\" && ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n        const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n        const scrollOffsetWithAdj = this.getScrollOffset() + this.scrollAdjustments;\n        const isFirstMeasure = !this.itemSizeCache.has(key);\n        const defaultShouldAdjust = isFirstMeasure ? (\n          // First measurement: compensate any item whose top sits above the\n          // fold — the estimate→actual delta must be corrected regardless of\n          // scroll direction, since the whole estimated block was above it.\n          itemStart < scrollOffsetWithAdj\n        ) : (\n          // Re-measurement: only compensate an item that is ENTIRELY above the\n          // fold. An item that merely *spans* the fold (top above, bottom\n          // below — e.g. a streaming chat message growing at its bottom)\n          // changes size *below* the anchor point, so shifting scrollTop by the\n          // delta would drag the viewport downward on every growth (#1218).\n          // Also skip during backward scroll to avoid the \"items jump while\n          // scrolling up\" cascade.\n          itemStart + itemSize <= scrollOffsetWithAdj && this.scrollDirection !== \"backward\"\n        );\n        const shouldAdjustScroll = ((_c = this.scrollState) == null ? void 0 : _c.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n          // The callback expects a VirtualItem; build one lazily only\n          // when the consumer actually supplied a custom predicate.\n          this.measurementsCache[index] ?? {\n            index,\n            key,\n            start: itemStart,\n            size: cachedSize,\n            end: itemStart + cachedSize,\n            lane: 0\n          },\n          delta,\n          this\n        ) : defaultShouldAdjust);\n        if (this.pendingMin === null || index < this.pendingMin) {\n          this.pendingMin = index;\n        }\n        this.itemSizeCache.set(key, size);\n        this.itemSizeCacheVersion++;\n        let adjustedSync = false;\n        if (wasAtEnd) {\n          adjustedSync = this.applyScrollAdjustment(\n            this.getTotalSize() - prevTotalSize\n          );\n        } else if (shouldAdjustScroll) {\n          adjustedSync = this.applyScrollAdjustment(delta);\n        }\n        this.notify(adjustedSync);\n        this._retryClampedAdjustment();\n      }\n    };\n    this.getVirtualItems = memo(\n      () => [this.getVirtualIndexes(), this.getMeasurements()],\n      (indexes, measurements) => {\n        const virtualItems = [];\n        for (let k = 0, len = indexes.length; k < len; k++) {\n          const i = indexes[k];\n          const measurement = measurements[i];\n          virtualItems.push(measurement);\n        }\n        return virtualItems;\n      },\n      {\n        key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n        debug: () => this.options.debug\n      }\n    );\n    this.getVirtualItemForOffset = (offset) => {\n      var _a;\n      const measurements = this.getMeasurements();\n      if (measurements.length === 0) {\n        return void 0;\n      }\n      const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n      const useFlat = this.options.lanes === 1 && flat != null;\n      const idx = findNearestBinarySearch(\n        0,\n        measurements.length - 1,\n        useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n        offset\n      );\n      return notUndefined(measurements[idx]);\n    };\n    this.getMaxScrollOffset = () => {\n      if (!this.scrollElement) return 0;\n      if (\"scrollHeight\" in this.scrollElement) {\n        return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n      } else {\n        const doc = this.scrollElement.document.documentElement;\n        return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n      }\n    };\n    this.getVirtualDistanceFromEnd = () => {\n      return Math.max(\n        this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n        0\n      );\n    };\n    this.getDistanceFromEnd = () => {\n      return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n    };\n    this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n      return this.getDistanceFromEnd() <= threshold;\n    };\n    this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n      if (!this.scrollElement) return 0;\n      const size = this.getSize();\n      const scrollOffset = this.getScrollOffset();\n      if (align === \"auto\") {\n        align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n      }\n      if (align === \"center\") {\n        toOffset += (itemSize - size) / 2;\n      } else if (align === \"end\") {\n        toOffset -= size;\n      }\n      const maxOffset = this.getMaxScrollOffset();\n      return Math.max(Math.min(maxOffset, toOffset), 0);\n    };\n    this.getOffsetForIndex = (index, align = \"auto\") => {\n      index = Math.max(0, Math.min(index, this.options.count - 1));\n      const size = this.getSize();\n      const scrollOffset = this.getScrollOffset();\n      const item = this.measurementsCache[index];\n      if (!item) return;\n      if (align === \"auto\") {\n        if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n          align = \"end\";\n        } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n          align = \"start\";\n        } else {\n          return [scrollOffset, align];\n        }\n      }\n      if (align === \"end\" && index === this.options.count - 1) {\n        return [this.getMaxScrollOffset(), align];\n      }\n      const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n      return [\n        this.getOffsetForAlignment(toOffset, align, item.size),\n        align\n      ];\n    };\n    this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n      this._iosDeferredAdjustment = 0;\n      const offset = this.getOffsetForAlignment(toOffset, align);\n      const now = this.now();\n      this.scrollState = {\n        index: null,\n        align,\n        behavior,\n        startedAt: now,\n        lastTargetOffset: offset,\n        stableFrames: 0\n      };\n      this._scrollToOffset(offset, { adjustments: void 0, behavior });\n      this.scheduleScrollReconcile();\n    };\n    this.scrollToIndex = (index, {\n      align: initialAlign = \"auto\",\n      behavior = \"auto\"\n    } = {}) => {\n      this._iosDeferredAdjustment = 0;\n      index = Math.max(0, Math.min(index, this.options.count - 1));\n      const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n      if (!offsetInfo) {\n        return;\n      }\n      const [offset, align] = offsetInfo;\n      const now = this.now();\n      this.scrollState = {\n        index,\n        align,\n        behavior,\n        startedAt: now,\n        lastTargetOffset: offset,\n        stableFrames: 0\n      };\n      this._scrollToOffset(offset, { adjustments: void 0, behavior });\n      this.scheduleScrollReconcile();\n    };\n    this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n      const offset = this.getScrollOffset() + delta;\n      const now = this.now();\n      this.scrollState = {\n        index: null,\n        align: \"start\",\n        behavior,\n        startedAt: now,\n        lastTargetOffset: offset,\n        stableFrames: 0\n      };\n      this._scrollToOffset(offset, { adjustments: void 0, behavior });\n      this.scheduleScrollReconcile();\n    };\n    this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n      if (this.options.count > 0) {\n        this.scrollToIndex(this.options.count - 1, {\n          align: \"end\",\n          behavior\n        });\n        return;\n      }\n      this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n        behavior\n      });\n    };\n    this.getTotalSize = () => {\n      var _a, _b;\n      const measurements = this.getMeasurements();\n      let end;\n      if (measurements.length === 0) {\n        end = this.options.paddingStart;\n      } else if (this.options.lanes === 1) {\n        const lastIdx = measurements.length - 1;\n        const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n        if (flat != null) {\n          end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n        } else {\n          end = ((_b = measurements[lastIdx]) == null ? void 0 : _b.end) ?? 0;\n        }\n      } else {\n        const endByLane = Array(this.options.lanes).fill(null);\n        let endIndex = measurements.length - 1;\n        while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n          const item = measurements[endIndex];\n          if (endByLane[item.lane] === null) {\n            endByLane[item.lane] = item.end;\n          }\n          endIndex--;\n        }\n        end = Math.max(...endByLane.filter((val) => val !== null));\n      }\n      return Math.max(\n        end - this.options.scrollMargin + this.options.paddingEnd,\n        0\n      );\n    };\n    this.takeSnapshot = () => {\n      const snapshot = [];\n      if (this.itemSizeCache.size === 0) return snapshot;\n      const m = this.getMeasurements();\n      for (const item of m) {\n        if (item && this.itemSizeCache.has(item.key)) {\n          snapshot.push({\n            index: item.index,\n            key: item.key,\n            start: item.start,\n            size: item.size,\n            end: item.end,\n            lane: item.lane\n          });\n        }\n      }\n      return snapshot;\n    };\n    this._scrollToOffset = (offset, {\n      adjustments,\n      behavior\n    }) => {\n      this._intendedScrollOffset = offset + (adjustments ?? 0);\n      this.options.scrollToFn(offset, { behavior, adjustments }, this);\n    };\n    this.measure = () => {\n      this.pendingMin = null;\n      this.itemSizeCache.clear();\n      this.laneAssignments.clear();\n      this.itemSizeCacheVersion++;\n      this.notify(false);\n    };\n    this.setOptions(opts);\n  }\n  // Returns `true` when it performed a synchronous `scrollTop` write this\n  // tick, `false` when the delta was zero or the write was deferred (iOS).\n  // `resizeItem` uses that to decide whether the follow-up `notify` must be\n  // synchronous so the grown transforms commit in the same paint (#1227).\n  applyScrollAdjustment(delta, behavior) {\n    if (delta === 0) return false;\n    if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n      console.info(\"correction\", delta);\n    }\n    if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n      this._iosDeferredAdjustment += delta;\n      return false;\n    } else {\n      const target = this.getScrollOffset() + this.scrollAdjustments + delta;\n      const el = this.scrollElement;\n      const maxAtWrite = el !== null && (\"scrollHeight\" in el || \"document\" in el) ? this.getMaxScrollOffset() : null;\n      this._clampedAdjustment = maxAtWrite !== null && target > maxAtWrite + 0.5 ? { target, maxAtWrite } : null;\n      this._scrollToOffset(this.getScrollOffset(), {\n        adjustments: this.scrollAdjustments += delta,\n        behavior\n      });\n      if (this.scrollOffset !== null) {\n        this.scrollOffset += this.scrollAdjustments;\n        if (this.scrollOffset < 0) this.scrollOffset = 0;\n        this.scrollAdjustments = 0;\n      }\n      return true;\n    }\n  }\n  scheduleScrollReconcile() {\n    if (!this.targetWindow) {\n      this.scrollState = null;\n      return;\n    }\n    if (this.rafId != null) return;\n    this.rafId = this.targetWindow.requestAnimationFrame(() => {\n      this.rafId = null;\n      this.reconcileScroll();\n    });\n  }\n  reconcileScroll() {\n    if (!this.scrollState) return;\n    const el = this.scrollElement;\n    if (!el) return;\n    const MAX_RECONCILE_MS = 5e3;\n    if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n      this.scrollState = null;\n      return;\n    }\n    const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n    const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n    const STABLE_FRAMES = 1;\n    const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n    if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n      this.scrollState.stableFrames++;\n      if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n        if (this.getScrollOffset() !== targetOffset) {\n          this._scrollToOffset(targetOffset, {\n            adjustments: void 0,\n            behavior: \"auto\"\n          });\n        }\n        this.scrollState = null;\n        return;\n      }\n    } else {\n      this.scrollState.stableFrames = 0;\n      if (targetChanged) {\n        const viewport = this.getSize() || 600;\n        const distance = Math.abs(targetOffset - this.getScrollOffset());\n        const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n        this.scrollState.lastTargetOffset = targetOffset;\n        if (!keepSmooth) {\n          this.scrollState.behavior = \"auto\";\n        }\n        this._scrollToOffset(targetOffset, {\n          adjustments: void 0,\n          behavior: keepSmooth ? \"smooth\" : \"auto\"\n        });\n      }\n    }\n    this.scheduleScrollReconcile();\n  }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n  while (low <= high) {\n    const middle = (low + high) / 2 | 0;\n    const currentValue = getCurrentValue(middle);\n    if (currentValue < value) {\n      low = middle + 1;\n    } else if (currentValue > value) {\n      high = middle - 1;\n    } else {\n      return middle;\n    }\n  }\n  if (low > 0) {\n    return low - 1;\n  } else {\n    return 0;\n  }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n  let low = 0;\n  while (low <= high) {\n    const middle = (low + high) / 2 | 0;\n    const currentValue = flat[middle * 2];\n    if (currentValue < value) {\n      low = middle + 1;\n    } else if (currentValue > value) {\n      high = middle - 1;\n    } else {\n      return middle;\n    }\n  }\n  return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n  const lastIndex = measurements.length - 1;\n  if (measurements.length <= lanes) {\n    return { startIndex: 0, endIndex: lastIndex };\n  }\n  if (lanes === 1 && flat !== null) {\n    const startIndex2 = findNearestBinarySearchFlat(\n      flat,\n      lastIndex,\n      scrollOffset\n    );\n    let endIndex2 = startIndex2;\n    const limit = scrollOffset + outerSize;\n    while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n      endIndex2++;\n    }\n    return { startIndex: startIndex2, endIndex: endIndex2 };\n  }\n  const getStart = (index) => measurements[index].start;\n  let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n  let endIndex = startIndex;\n  if (lanes === 1) {\n    while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n      endIndex++;\n    }\n  } else if (lanes > 1) {\n    const endPerLane = Array(lanes).fill(0);\n    while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n      const item = measurements[endIndex];\n      endPerLane[item.lane] = item.end;\n      endIndex++;\n    }\n    const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n    while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n      const item = measurements[startIndex];\n      startPerLane[item.lane] = item.start;\n      startIndex--;\n    }\n    startIndex = Math.max(0, startIndex - startIndex % lanes);\n    endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n  }\n  return { startIndex, endIndex };\n}\nexport {\n  Virtualizer,\n  _resetIOSDetectionForTests,\n  approxEqual,\n  debounce,\n  defaultKeyExtractor,\n  defaultRangeExtractor,\n  elementScroll,\n  measureElement,\n  memo,\n  notUndefined,\n  observeElementOffset,\n  observeElementRect,\n  observeWindowOffset,\n  observeWindowRect,\n  windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import { Virtualizer, elementScroll, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll, } from '@tanstack/virtual-core';\nimport { derived, writable } from 'svelte/store';\nexport * from '@tanstack/virtual-core';\nfunction createVirtualizerBase(initialOptions) {\n    const virtualizer = new Virtualizer(initialOptions);\n    const originalSetOptions = virtualizer.setOptions;\n    // eslint-disable-next-line prefer-const\n    let virtualizerWritable;\n    const setOptions = (options) => {\n        const resolvedOptions = {\n            ...virtualizer.options,\n            ...options,\n            onChange: options.onChange,\n        };\n        originalSetOptions({\n            ...resolvedOptions,\n            onChange: (instance, sync) => {\n                virtualizerWritable.set(instance);\n                resolvedOptions.onChange?.(instance, sync);\n            },\n        });\n        virtualizer._willUpdate();\n        // Force store update in case the range didn't change (e.g. count increased\n        // but scroll position stayed the same). Without this, the store only\n        // updates when onChange fires (on range change), so changes like a new\n        // count that don't shift the visible range would not trigger a re-render.\n        virtualizerWritable.set(virtualizer);\n    };\n    virtualizerWritable = writable(virtualizer, () => {\n        setOptions(initialOptions);\n        return virtualizer._didMount();\n    });\n    return derived(virtualizerWritable, (instance) => Object.assign(instance, { setOptions }));\n}\nexport function createVirtualizer(options) {\n    return createVirtualizerBase({\n        observeElementRect: observeElementRect,\n        observeElementOffset: observeElementOffset,\n        scrollToFn: elementScroll,\n        ...options,\n    });\n}\nexport function createWindowVirtualizer(options) {\n    return createVirtualizerBase({\n        getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n        observeElementRect: observeWindowRect,\n        observeElementOffset: observeWindowOffset,\n        scrollToFn: windowScroll,\n        initialOffset: () => (typeof document !== 'undefined' ? window.scrollY : 0),\n        ...options,\n    });\n}\n","import { onMount, untrack, flushSync } from \"svelte\"\nimport {\n  createVirtualizer,\n  createWindowVirtualizer,\n  defaultRangeExtractor,\n} from \"@tanstack/svelte-virtual\"\nimport type { SvelteVirtualizer, VirtualItem } from \"@tanstack/svelte-virtual\"\n\ntype Options = {\n  enabled?: () => boolean\n  count: () => number\n  thresholdCount?: () => number\n  key: (index: number) => string\n  estimateSize: () => number\n}\n\nfunction findScrollOwner(node: HTMLElement): HTMLElement | Window {\n  for (let parent = node.parentElement; parent; parent = parent.parentElement) {\n    if (parent === document.body || parent === document.documentElement) break\n\n    if (parent.hasAttribute(\"data-table-horizontal\")) continue\n\n    if (/(auto|scroll|overlay)/.test(getComputedStyle(parent).overflowY)) return parent\n  }\n\n  return window\n}\n\nexport function createVirtualRows(options: Options) {\n  let owner = $state.raw<HTMLElement | Window | null>(null)\n  let margin = $state(0)\n  let printing = $state(false)\n  let focusedKey = $state<string | null>(null)\n  // Non-reactive DOM registry; mount/unmount actions must not trigger render effects.\n  const renderedRows = new Map<HTMLElement, string>()\n  let attachmentGeneration = 0\n  let revision = $state(0)\n  let elementInstance = $state.raw<SvelteVirtualizer<HTMLElement, HTMLElement> | null>(null)\n  let windowInstance = $state.raw<SvelteVirtualizer<Window, HTMLElement> | null>(null)\n  const enabled = $derived(\n    (options.thresholdCount?.() ?? options.count()) > 100 &&\n      !printing &&\n      (options.enabled?.() ?? true),\n  )\n  const elementStore = createVirtualizer<HTMLElement, HTMLElement>({\n    count: 0,\n    getScrollElement: () => (owner instanceof HTMLElement ? owner : null),\n    initialOffset: () => (owner instanceof HTMLElement ? owner.scrollTop : 0),\n    estimateSize: options.estimateSize,\n    enabled: false,\n  })\n  const windowStore = createWindowVirtualizer<HTMLElement>({\n    count: 0,\n    estimateSize: options.estimateSize,\n    enabled: false,\n  })\n  const active = () => (owner instanceof HTMLElement ? elementInstance : windowInstance)\n  const focusedIndex = $derived.by(() => {\n    if (focusedKey === null) return -1\n\n    for (let index = 0; index < options.count(); index++) {\n      if (options.key(index) === focusedKey) return index\n    }\n\n    return -1\n  })\n\n  onMount(() => {\n    const offElement = elementStore.subscribe((value) => {\n      elementInstance = value\n      revision++\n    })\n    const offWindow = windowStore.subscribe((value) => {\n      windowInstance = value\n      revision++\n    })\n    const beforePrint = () =>\n      flushSync(() => {\n        printing = true\n      })\n    const afterPrint = () => {\n      printing = false\n    }\n    window.addEventListener(\"beforeprint\", beforePrint)\n    window.addEventListener(\"afterprint\", afterPrint)\n\n    return () => {\n      offElement()\n      offWindow()\n      window.removeEventListener(\"beforeprint\", beforePrint)\n      window.removeEventListener(\"afterprint\", afterPrint)\n    }\n  })\n\n  // Publish the range before rendering can replace the non-virtual rows with\n  // an empty, not-yet-configured virtualizer and collapse the scrollable height.\n  $effect.pre(() => {\n    const count = options.count()\n    const estimateSize = options.estimateSize()\n    const scrollMargin = margin\n    const keepIndex = focusedIndex\n    const isEnabled = enabled\n    const isElement = owner instanceof HTMLElement\n    const element = elementInstance\n    const viewport = windowInstance\n    const keys = Array.from({ length: count }, (_, index) => options.key(index))\n    const shared = {\n      count,\n      estimateSize: () => estimateSize,\n      getItemKey: (index: number) => keys[index],\n      scrollMargin,\n      overscan: 8,\n      rangeExtractor: (range: Parameters<typeof defaultRangeExtractor>[0]) => {\n        const indexes = defaultRangeExtractor(range)\n\n        if (keepIndex >= 0 && keepIndex < count && !indexes.includes(keepIndex)) {\n          indexes.push(keepIndex)\n          indexes.sort((a, b) => a - b)\n        }\n\n        return indexes\n      },\n    }\n    untrack(() => {\n      const instance = isElement ? element : viewport\n      // Seed the first virtual range from the rows still in the DOM. Estimates would\n      // otherwise move the visible records when \"load more\" crosses the threshold.\n      let initialMeasurementsCache: VirtualItem[] | undefined\n\n      if (isEnabled && owner !== null && instance && !instance.options.enabled) {\n        const measurements: VirtualItem[] = []\n        for (const [node, key] of renderedRows) {\n          const index = Number(node.getAttribute(\"data-index\"))\n\n          if (!node.isConnected || keys[index] !== key) continue\n\n          const size = node.getBoundingClientRect().height\n\n          if (size <= 0) continue\n\n          measurements.push({ index, key, start: 0, end: 0, size, lane: 0 })\n        }\n        let start = scrollMargin\n        for (const measurement of measurements.sort((a, b) => a.index - b.index)) {\n          measurement.start = start\n          measurement.end = start + measurement.size\n          start = measurement.end\n        }\n        initialMeasurementsCache = measurements\n      }\n\n      const initialMeasurements = initialMeasurementsCache ? { initialMeasurementsCache } : {}\n      element?.setOptions({\n        ...shared,\n        ...(isElement ? initialMeasurements : {}),\n        enabled: isEnabled && isElement,\n      })\n      viewport?.setOptions({\n        ...shared,\n        ...(!isElement ? initialMeasurements : {}),\n        enabled: isEnabled && !isElement && owner !== null,\n      })\n    })\n  })\n\n  function attach(node: HTMLElement) {\n    const generation = ++attachmentGeneration\n    let scrollOwner = findScrollOwner(node)\n    owner = scrollOwner\n    let frame = 0\n    let attached = true\n    let focusSyncPending = false\n    const updateMargin = () => {\n      frame = 0\n\n      if (!attached || generation !== attachmentGeneration) return\n\n      const nextOwner = findScrollOwner(node)\n\n      if (nextOwner !== scrollOwner) {\n        scrollOwner.removeEventListener(\"scroll\", schedule)\n        scrollOwner = nextOwner\n        owner = scrollOwner\n        scrollOwner.addEventListener(\"scroll\", schedule, { passive: true })\n        for (let ancestor: HTMLElement | null = node; ancestor; ancestor = ancestor.parentElement) {\n          observer?.observe(ancestor)\n\n          if (ancestor === scrollOwner) break\n        }\n      }\n\n      const top = node.getBoundingClientRect().top\n      margin =\n        scrollOwner instanceof HTMLElement\n          ? top -\n            scrollOwner.getBoundingClientRect().top +\n            scrollOwner.scrollTop -\n            scrollOwner.clientTop\n          : top + window.scrollY\n    }\n    const schedule = () => {\n      if (!frame) frame = requestAnimationFrame(updateMargin)\n    }\n    const syncFocus = () => {\n      if (!attached || generation !== attachmentGeneration || focusSyncPending) return\n\n      focusSyncPending = true\n      // Native focus events can fire during Svelte's DOM teardown. Read the settled focus later.\n      queueMicrotask(() => {\n        focusSyncPending = false\n\n        if (!attached || generation !== attachmentGeneration) return\n\n        const activeElement = node.ownerDocument.activeElement\n        const target =\n          activeElement instanceof Element && node.contains(activeElement)\n            ? activeElement.closest(\"[data-virtual-index]\")\n            : null\n        const index = Number(target?.getAttribute(\"data-virtual-index\") ?? -1)\n        focusedKey =\n          target &&\n          node.contains(target) &&\n          Number.isInteger(index) &&\n          index >= 0 &&\n          index < options.count()\n            ? options.key(index)\n            : null\n      })\n    }\n    const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(schedule)\n\n    for (let ancestor: HTMLElement | null = node; ancestor; ancestor = ancestor.parentElement) {\n      observer?.observe(ancestor)\n\n      if (ancestor === scrollOwner) break\n    }\n\n    scrollOwner.addEventListener(\"scroll\", schedule, { passive: true })\n    window.addEventListener(\"resize\", schedule)\n    node.addEventListener(\"focusin\", syncFocus)\n    node.addEventListener(\"focusout\", syncFocus)\n    syncFocus()\n    updateMargin()\n    // SimpleBar can wrap the table after its child actions have mounted.\n    schedule()\n\n    return {\n      destroy() {\n        attached = false\n        observer?.disconnect()\n        scrollOwner.removeEventListener(\"scroll\", schedule)\n        window.removeEventListener(\"resize\", schedule)\n        node.removeEventListener(\"focusin\", syncFocus)\n        node.removeEventListener(\"focusout\", syncFocus)\n        cancelAnimationFrame(frame)\n\n        if (generation === attachmentGeneration) owner = null\n      },\n    }\n  }\n\n  function measure(node: HTMLElement) {\n    const index = Number(node.getAttribute(\"data-index\"))\n    renderedRows.set(node, options.key(index))\n    active()?.measureElement(node)\n\n    return {\n      update() {\n        active()?.measureElement(node)\n      },\n      destroy() {\n        renderedRows.delete(node)\n        active()?.measureElement(null)\n      },\n    }\n  }\n\n  return {\n    attach,\n    measure,\n    get enabled() {\n      return enabled\n    },\n    get items(): VirtualItem[] {\n      void revision\n\n      if (!enabled) {\n        return Array.from({ length: options.count() }, (_, index) => ({\n          index,\n          key: options.key(index),\n          start: 0,\n          end: 0,\n          size: 0,\n          lane: 0,\n        }))\n      }\n\n      return active()?.getVirtualItems() ?? []\n    },\n    gapBefore(items: VirtualItem[], index: number) {\n      if (!enabled) return 0\n\n      return Math.max(0, items[index].start - (index === 0 ? margin : items[index - 1].end))\n    },\n    get totalSize() {\n      void revision\n\n      return enabled ? (active()?.getTotalSize() ?? 0) : 0\n    },\n    tail(items: VirtualItem[]) {\n      void revision\n\n      if (!enabled) return 0\n\n      const last = items[items.length - 1]\n\n      return Math.max(0, (active()?.getTotalSize() ?? 0) - (last ? last.end - margin : 0))\n    },\n  }\n}\n","type Sample = { columnId: string; rowKey: string; enabled: boolean }\n\n/** Measure a bounded sample of mounted cells, never duplicate their components. */\nexport function createRenderedColumnSizing(\n  onWidths: (widths: Record<string, number>) => void,\n  { selector = \".cell-content\", measurementClass = \"cell-content--measure\" } = {},\n) {\n  const nodes = new Map<HTMLElement, Sample>()\n  const dirty = new Set<HTMLElement>()\n  const measured = new Map<string, Map<string, number>>()\n  let published: Record<string, number> = {}\n  let frame: number | null = null\n  let generation = 0\n  let destroyed = false\n  let resize: ResizeObserver | null = null\n  let mutations: MutationObserver | null = null\n\n  function publish() {\n    const widths = Object.fromEntries(\n      [...measured]\n        .filter(([, samples]) => samples.size)\n        .map(([id, samples]) => [id, Math.max(...samples.values())]),\n    )\n\n    if (JSON.stringify(widths) === JSON.stringify(published)) return\n\n    published = widths\n    onWidths(widths)\n  }\n\n  function flush() {\n    frame = null\n\n    if (destroyed) return\n\n    const samples = [...dirty].filter((node) => node.isConnected && nodes.has(node))\n    dirty.clear()\n    // Batch style writes, then reads, then restoration to avoid per-cell layout flushes.\n    for (const node of samples) node.classList.add(measurementClass)\n    try {\n      for (const node of samples) {\n        const sample = nodes.get(node)!\n        const cell = node.parentElement!\n        const style = getComputedStyle(cell)\n        const contentWidth = node.getBoundingClientRect().width\n\n        if (contentWidth <= 0) continue\n\n        const extra = [\n          style.paddingLeft,\n          style.paddingRight,\n          style.borderLeftWidth,\n          style.borderRightWidth,\n        ].reduce((sum, value) => sum + (parseFloat(value) || 0), 2)\n        const widths = measured.get(sample.columnId) ?? new Map<string, number>()\n        widths.set(sample.rowKey, Math.ceil(contentWidth + extra))\n        measured.set(sample.columnId, widths)\n      }\n    } finally {\n      for (const node of samples) node.classList.remove(measurementClass)\n    }\n    publish()\n  }\n\n  function schedule() {\n    if (destroyed || frame !== null) return\n\n    const scheduledGeneration = generation\n    frame = requestAnimationFrame(() => {\n      if (destroyed || generation !== scheduledGeneration) return\n\n      flush()\n    })\n  }\n\n  function cancelPending() {\n    generation++\n\n    if (frame !== null) cancelAnimationFrame(frame)\n\n    frame = null\n  }\n\n  function mark(node: HTMLElement) {\n    dirty.add(node)\n    schedule()\n  }\n\n  function measureContent(node: HTMLElement, initial: Sample) {\n    let sample = initial\n    const register = () => {\n      if (!sample.enabled) return\n\n      cancelPending()\n      nodes.set(node, sample)\n\n      if (!resize && typeof ResizeObserver !== \"undefined\") {\n        resize = new ResizeObserver((entries) => {\n          for (const entry of entries) {\n            if (nodes.has(entry.target as HTMLElement)) mark(entry.target as HTMLElement)\n          }\n        })\n      }\n\n      resize?.observe(node)\n      mark(node)\n    }\n    const unregister = () => {\n      cancelPending()\n      resize?.unobserve(node)\n      nodes.delete(node)\n      dirty.delete(node)\n\n      if (dirty.size) schedule()\n    }\n    register()\n\n    return {\n      update(next: Sample) {\n        if (\n          next.columnId === sample.columnId &&\n          next.rowKey === sample.rowKey &&\n          next.enabled === sample.enabled\n        )\n          return\n\n        unregister()\n        sample = next\n        register()\n      },\n      destroy: unregister,\n    }\n  }\n\n  return {\n    measureContent,\n    observe(container: HTMLElement) {\n      if (typeof MutationObserver === \"undefined\") return\n\n      mutations = new MutationObserver((records) => {\n        for (const record of records) {\n          const target =\n            record.target instanceof Element ? record.target : record.target.parentElement\n          const cell = target?.closest<HTMLElement>(selector)\n\n          if (cell && nodes.has(cell)) mark(cell)\n        }\n      })\n      mutations.observe(container, { subtree: true, childList: true, characterData: true })\n    },\n    retain(rowKeys: string[]) {\n      const retainedKeys = new Set(rowKeys)\n      for (const samples of measured.values()) {\n        for (const key of samples.keys()) {\n          if (!retainedKeys.has(key)) samples.delete(key)\n        }\n      }\n      publish()\n    },\n    invalidate() {\n      cancelPending()\n      for (const node of nodes.keys()) dirty.add(node)\n      schedule()\n    },\n    destroy() {\n      destroyed = true\n      resize?.disconnect()\n      mutations?.disconnect()\n\n      cancelPending()\n\n      nodes.clear()\n      dirty.clear()\n    },\n  }\n}\n","import type { Tooltip } from \"./contract\"\n\nimport { sanitizeHtml } from \"../../../../core/security/index\"\n\nfunction removeWhitespaces(inputString: string) {\n  return inputString.replace(/\\s+/g, \"\")\n}\n\nconst replaceHtml = (node: HTMLElement, html: string) => {\n  const template = document.createElement(\"template\")\n  template.innerHTML = sanitizeHtml(html)\n  node.replaceChildren(...Array.from(template.content.childNodes))\n}\n\nconst appendHtml = (node: HTMLElement, html: string) => {\n  const template = document.createElement(\"template\")\n  template.innerHTML = sanitizeHtml(html)\n  node.append(...Array.from(template.content.childNodes))\n}\nexport function tooltip(node: Node, data: Tooltip | false) {\n  let span: HTMLElement | undefined\n  let when: string\n  let doOpen: ((e: MouseEvent) => void) | undefined\n  let doClose: (() => void) | undefined\n  let clickOutside: ((e: MouseEvent) => void) | undefined\n  let keydownHandler: ((event: KeyboardEvent) => void) | undefined\n  let hoverCloseTimeout: number | null = null\n  let hoverMonitorAttached = false\n  let hoverMonitor: ((e: MouseEvent) => void) | undefined\n  const detachEventListeners = () => {\n    if (typeof window === \"undefined\") return\n\n    if (when == \"click\") {\n      if (doOpen) node.removeEventListener(\"click\", doOpen as EventListener, true)\n\n      if (clickOutside) window.removeEventListener(\"click\", clickOutside as EventListener, true)\n    } else {\n      if (doOpen) {\n        node.removeEventListener(\"mouseover\", doOpen as EventListener, true)\n        node.removeEventListener(\"mousemove\", doOpen as EventListener, true)\n      }\n\n      if (doClose) node.removeEventListener(\"mouseout\", doClose, true)\n\n      if (hoverMonitor) document.removeEventListener(\"mousemove\", hoverMonitor, true)\n\n      if (hoverCloseTimeout) {\n        clearTimeout(hoverCloseTimeout)\n        hoverCloseTimeout = null\n      }\n    }\n\n    if (keydownHandler) {\n      document.removeEventListener(\"keydown\", keydownHandler)\n      keydownHandler = undefined\n    }\n\n    doOpen = undefined\n    doClose = undefined\n    clickOutside = undefined\n    hoverMonitor = undefined\n    hoverMonitorAttached = false\n  }\n\n  if (data && !data.content) return\n\n  function createTooltipContent(data: Tooltip) {\n    if (!data) return\n\n    if (window.innerWidth < 1024) {\n      return\n    }\n\n    if (typeof data.content === \"string\") {\n      let clearedString = removeWhitespaces(data.content)\n\n      if (!clearedString.length) return\n    } else if (typeof data?.content?.props?.value === \"string\") {\n      let clearedString = removeWhitespaces(data.content.props.value)\n\n      if (!clearedString.length) return\n    }\n\n    const whenValue = data.when || \"hover\"\n    when = whenValue\n    const span = document.createElement(\"div\")\n\n    const bubbleding = document.createElement(\"div\")\n    bubbleding.className = \"bubbleding\"\n    span.appendChild(bubbleding)\n\n    const content = document.createElement(\"div\")\n    content.className = \"content\"\n    span.appendChild(content)\n\n    const baseClass = \"tooltip active \" + (data.className || \"\")\n    span.className = baseClass\n\n    if (data.style) span.style.cssText = data.style\n\n    let rendered = false\n\n    const resolveTooltipHost = () => {\n      if (typeof document === \"undefined\") return null\n\n      if (node instanceof HTMLElement) {\n        const layerHost = node.closest(\"dialog, [popover]\")\n\n        if (layerHost) return layerHost as HTMLElement\n      }\n\n      return document.querySelector<HTMLElement>(\".dialog-open\")\n    }\n\n    const clearHoverClose = () => {\n      if (hoverCloseTimeout) {\n        clearTimeout(hoverCloseTimeout)\n        hoverCloseTimeout = null\n      }\n    }\n\n    const hoverMonitorHandler = (event: MouseEvent) => {\n      if (!span?.parentNode) return\n\n      const target = event.target as Node | null\n      const overTrigger = node instanceof HTMLElement && !!target && node.contains(target)\n      const overTooltip = !!target && span.contains(target)\n\n      if (!overTrigger && !overTooltip) {\n        clearHoverClose()\n        hoverCloseTimeout = window.setTimeout(() => {\n          if (span?.parentNode) {\n            doClose?.()\n          }\n        }, 200)\n      } else {\n        clearHoverClose()\n      }\n    }\n\n    const attachHoverMonitor = () => {\n      if (whenValue === \"click\" || hoverMonitorAttached) return\n\n      hoverMonitor = hoverMonitorHandler\n      document.addEventListener(\"mousemove\", hoverMonitorHandler, true)\n      hoverMonitorAttached = true\n    }\n\n    const detachHoverMonitor = () => {\n      if (!hoverMonitorAttached || !hoverMonitor) return\n\n      document.removeEventListener(\"mousemove\", hoverMonitor, true)\n      hoverMonitorAttached = false\n      clearHoverClose()\n    }\n\n    const openHandler = (e: MouseEvent) => {\n      clearHoverClose()\n\n      if (typeof data.content == \"string\") {\n        content.replaceChildren()\n        // @ts-ignore\n\n        if (node.scrollWidth > node.clientWidth && !data.forceShow) {\n          if (data.overflowContent && data.overflowContent !== \"undefined\")\n            replaceHtml(content, \"<div style='width: 100%;'>\" + +data.overflowContent + \"</div>\")\n        } else {\n          if (data?.content == \"invalid\") {\n            doClose?.()\n\n            return\n          }\n        }\n\n        if (data.content !== \"invalid\" && content.childNodes.length > 0)\n          appendHtml(content, \"<br />\" + data.content)\n        else if (data.content !== \"invalid\") replaceHtml(content, data.content)\n      } else if (typeof data.content == \"object\" && !rendered) {\n        if (\n          data?.content?.props?.value == \"invalid\" ||\n          (data?.overflowContent && data.overflowContent !== \"undefined\" && data?.optional)\n        ) {\n          // @ts-ignore\n          if (node.scrollWidth > node.clientWidth) data.content.props.value = \"\"\n          else {\n            doClose?.()\n\n            return\n          }\n        }\n\n        rendered = true\n      }\n\n      const tooltipHost = resolveTooltipHost()\n      // Tooltip is styled with `position: fixed`, so we must always position it in viewport coordinates.\n      // Even if we append the tooltip into a <dialog> (top layer), fixed positioning stays relative\n      // to the viewport. Offsetting by the dialog's bounding rect causes the tooltip to be shifted.\n      const fullWith = window.innerWidth\n      const fullHeight = window.innerHeight\n      const dialogOffset = { x: 0, y: 0 }\n\n      const mouseX = e.clientX\n      const mouseY = e.clientY\n\n      setTimeout(() => {\n        let fixedCSSMarginLeft = 100\n        let defaultOffset = 120\n\n        let leftOffset = 0\n\n        if (mouseX < defaultOffset) {\n          leftOffset = defaultOffset - mouseX\n        }\n\n        if (mouseX > window.innerWidth - defaultOffset) {\n          leftOffset = defaultOffset * -1 + (fullWith - mouseX)\n        }\n\n        bubbleding.style.left = fixedCSSMarginLeft - leftOffset + \"px\"\n        span.style.left = mouseX + leftOffset - dialogOffset.x + \"px\"\n\n        if (data.className?.includes(\"bottom\")) {\n          span.style.bottom = \"auto\"\n          span.style.top = mouseY + 20 - dialogOffset.y + \"px\"\n        } else {\n          span.style.bottom = fullHeight - mouseY + 20 + dialogOffset.y + \"px\"\n        }\n      }, 0)\n\n      if (!span.parentNode) {\n        if (document.getElementsByClassName(\"tooltip\").length == 0) {\n          if (tooltipHost) {\n            tooltipHost.appendChild(span)\n          } else {\n            document.body.appendChild(span)\n          }\n\n          attachHoverMonitor()\n        }\n      }\n    }\n    doOpen = openHandler\n    doClose = () => {\n      clearHoverClose()\n      detachHoverMonitor()\n      span.remove()\n    }\n\n    clickOutside = ({ target }) => {\n      if (!span.contains(target as Node)) {\n        doClose?.()\n      }\n    }\n\n    const closeBtn = document.createElement(\"span\")\n    closeBtn.textContent = \"×\"\n    closeBtn.className = \"tooltip-close\"\n    closeBtn.style.position = \"absolute\"\n    closeBtn.style.top = \"5px\" // Positionieren Sie es oben\n    closeBtn.style.right = \"5px\" // und rechts\n    closeBtn.style.color = \"#c4102d\"\n    closeBtn.style.cursor = \"pointer\" // Zeigen Sie den Cursor als Hand, um zu zeigen, dass es anklickbar ist\n    closeBtn.addEventListener(\"click\", doClose) // Fügt den Tooltip-Schließungs-Handler hinzu\n\n    if (whenValue == \"click\") closeBtn.className += \" never-hide\"\n\n    span.appendChild(closeBtn)\n\n    if (typeof window !== \"undefined\") {\n      if (whenValue == \"click\") {\n        node.addEventListener(\"click\", openHandler as EventListener, true)\n        window.addEventListener(\"click\", clickOutside, true)\n      } else {\n        node.addEventListener(\"mousemove\", openHandler as EventListener, true)\n        node.addEventListener(\"mouseout\", doClose, true)\n      }\n\n      keydownHandler = (event: KeyboardEvent) => {\n        if (event.key === \"Escape\") {\n          doClose?.()\n        }\n      }\n      document.addEventListener(\"keydown\", keydownHandler)\n    }\n\n    return span\n  }\n\n  if (data) {\n    span = createTooltipContent(data)\n  }\n\n  return {\n    update(updatedData: any) {\n      if (span && span.parentNode) {\n        doClose?.() // This will handle the tooltip removal and its associated listeners\n      }\n\n      detachEventListeners()\n      span = createTooltipContent(updatedData)\n    },\n    destroy() {\n      Array.from(document.getElementsByClassName(\"tooltip\")).forEach((el) => {\n        el.remove()\n      })\n\n      detachEventListeners()\n    },\n  }\n}\n","<script>export let color = '#FF3E00';\nexport let unit = 'px';\nexport let duration = '0.75s';\nexport let size = '60';\nexport let pause = false;\n</script>\n\n<div\n\tclass=\"circle\"\n\tclass:pause-animation={pause}\n\tstyle=\"--size: {size}{unit}; --color: {color}; --duration: {duration}\"\n/>\n\n<style>\n\t.circle {\n\t\theight: var(--size);\n\t\twidth: var(--size);\n\t\tborder-color: var(--color) transparent var(--color) var(--color);\n\t\tborder-width: calc(var(--size) / 15);\n\t\tborder-style: solid;\n\t\tborder-image: initial;\n\t\tborder-radius: 50%;\n\t\tanimation: var(--duration) linear 0s infinite normal none running rotate;\n\t}\n\t.pause-animation {\n\t\tanimation-play-state: paused;\n\t}\n\t@keyframes rotate {\n\t\t0% {\n\t\t\ttransform: rotate(0);\n\t\t}\n\t\t100% {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n</style>\n","export const durationUnitRegex = /[a-zA-Z]/;\nexport const calculateRgba = (color, opacity) => {\n    if (color[0] === '#') {\n        color = color.slice(1);\n    }\n    if (color.length === 3) {\n        let res = '';\n        color.split('').forEach((c) => {\n            res += c;\n            res += c;\n        });\n        color = res;\n    }\n    const rgbValues = (color.match(/.{2}/g) || []).map((hex) => parseInt(hex, 16)).join(', ');\n    return `rgba(${rgbValues}, ${opacity})`;\n};\nexport const range = (size, startAt = 0) => [...Array(size).keys()].map((i) => i + startAt);\n// export const characterRange = (startChar, endChar) =>\n//   String.fromCharCode(\n//     ...range(\n//       endChar.charCodeAt(0) - startChar.charCodeAt(0),\n//       startChar.charCodeAt(0)\n//     )\n//   );\n// export const zip = (arr, ...arrs) =>\n//   arr.map((val, i) => arrs.reduce((list, curr) => [...list, curr[i]], [val]));\n","<script>import { calculateRgba, range } from './utils';\nexport let color = '#FF3E00';\nexport let unit = 'px';\nexport let duration = '2.1s';\nexport let size = '60';\nexport let pause = false;\nlet rgba;\n$: rgba = calculateRgba(color, 0.2);\n</script>\n\n<div class=\"wrapper\" style=\"--size: {size}{unit}; --rgba:{rgba}\">\n\t{#each range(2, 1) as version}\n\t\t<div\n\t\t\tclass=\"lines small-lines {version}\"\n\t\t\tclass:pause-animation={pause}\n\t\t\tstyle=\"--color: {color}; --duration: {duration};\"\n\t\t/>\n\t{/each}\n</div>\n\n<style>\n\t.wrapper {\n\t\theight: calc(var(--size) / 15);\n\t\twidth: calc(var(--size) * 2);\n\t\tbackground-color: var(--rgba);\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tbackground-clip: padding-box;\n\t}\n\t.lines {\n\t\theight: calc(var(--size) / 15);\n\t\tbackground-color: var(--color);\n\t}\n\n\t.small-lines {\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tbackground-clip: padding-box;\n\t\tdisplay: block;\n\t\tborder-radius: 2px;\n\t\twill-change: left, right;\n\t\tanimation-fill-mode: forwards;\n\t}\n\t.small-lines.\\31 {\n\t\tanimation: var(--duration) cubic-bezier(0.65, 0.815, 0.735, 0.395) 0s infinite normal none\n\t\t\trunning long;\n\t}\n\t.small-lines.\\32 {\n\t\tanimation: var(--duration) cubic-bezier(0.165, 0.84, 0.44, 1) calc((var(--duration) + 0.1) / 2)\n\t\t\tinfinite normal none running short;\n\t}\n\t.pause-animation {\n\t\tanimation-play-state: paused;\n\t}\n\n\t@keyframes long {\n\t\t0% {\n\t\t\tleft: -35%;\n\t\t\tright: 100%;\n\t\t}\n\t\t60% {\n\t\t\tleft: 100%;\n\t\t\tright: -90%;\n\t\t}\n\t\t100% {\n\t\t\tleft: 100%;\n\t\t\tright: -90%;\n\t\t}\n\t}\n\t@keyframes short {\n\t\t0% {\n\t\t\tleft: -200%;\n\t\t\tright: 100%;\n\t\t}\n\t\t60% {\n\t\t\tleft: 107%;\n\t\t\tright: -8%;\n\t\t}\n\t\t100% {\n\t\t\tleft: 107%;\n\t\t\tright: -8%;\n\t\t}\n\t}\n</style>\n","<script lang=\"ts\" module>\n  import \"simplebar\"\n  import \"simplebar/dist/simplebar.css\"\n</script>\n\n<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { onDestroy, onMount, tick, untrack } from \"svelte\"\n  import {\n    mdiArrowCollapseLeft,\n    mdiArrowCollapseRight,\n    mdiArrowDown,\n    mdiArrowUp,\n    mdiChevronLeft,\n    mdiChevronRight,\n    mdiInformationOutline,\n    mdiPinOffOutline,\n  } from \"@mdi/js\"\n  import SimpleBar from \"simplebar\"\n  import Icon from \"../../../../../primitives/_modules/icon/index\"\n  import Input from \"../../../../../forms/_modules/input/index\"\n  import ColumnScrollButtons from \"./_modules/column-scroll-buttons/index\"\n  import type { ResolvedRowActionsResolver } from \"../../_shared/_logic/row-actions/index\"\n  import TableRowActions from \"../../_shared/_modules/table-row-actions/index\"\n  import TableMenu from \"../../_shared/_modules/table-menu/index\"\n  import {\n    createTableEngine,\n    SELECTION_COLUMN_ID,\n    ACTIONS_COLUMN_ID,\n  } from \"./_logic/engine.svelte.js\"\n  import { resolveColumnLayout, measureColumnWidths, type ColumnPins } from \"./_logic/columnLayout\"\n  import { createVirtualRows } from \"../../_shared/_logic/virtual-rows/index\"\n  import { createRenderedColumnSizing } from \"./_logic/renderedColumnSizing\"\n  import { tooltip } from \"../../../../../overlay/_modules/tooltip/index\"\n  import type {\n    ColumnDef,\n    TableRowIdResolver,\n    DataRow,\n    TableRowActionsResolver,\n    TableCellRenderer,\n    TableSortState,\n    TableRowTestIdResolver,\n    TableCellTestIdResolver,\n    TableRowState,\n    TableRowStateResolver,\n    TableRowControlCommand,\n    TableRowControlsResolver,\n  } from \"../../../../../../core/layout/table\"\n  import {\n    CONTROL_WIDTH_ACTIONS_DEFAULT,\n    CONTROL_WIDTH_CHEVRON,\n    clamp,\n    estimateColumnWidth,\n    getCellValue,\n    getColumnAlignClass,\n    getRowKey,\n    parsePxWidth,\n  } from \"../../../../../../core/layout/index\"\n  import { BarLoader } from \"svelte-loading-spinners\"\n\n  type ColumnNavigationMode = \"click\" | \"scroll\"\n\n  type Props = {\n    columns?: ColumnDef[]\n    rows?: DataRow[]\n    virtualize?: boolean\n    getRowId?: TableRowIdResolver\n    requestedPins?: ColumnPins\n    columnNavigationMode?: ColumnNavigationMode\n    showActions?: boolean\n    actionsHeaderLabel?: string\n    actionsWidth?: number\n    darkMode?: boolean\n    enableSelection?: boolean\n    selectionSurfaceTone?: \"light\" | \"dark\"\n    selectedRowKeys?: Set<string>\n    allVisibleSelected?: boolean\n    someVisibleSelected?: boolean\n    onToggleRowSelection?: (row: DataRow) => void\n    onToggleSelectAll?: () => void\n    empty?: Snippet<[]>\n    tableCell?: TableCellRenderer\n    rowActions?: ResolvedRowActionsResolver | TableRowActionsResolver\n    rowControls?: TableRowControlsResolver\n    onRowClick?: (row: DataRow) => void\n    canActivateRow?: (row: DataRow, rowIndex: number) => boolean\n    rowTestId?: TableRowTestIdResolver\n    cellTestId?: TableCellTestIdResolver\n    getRowState?: TableRowStateResolver\n    loading?: boolean\n    loadingMore?: boolean\n    loadingRowCount?: number\n    sort?: TableSortState\n    onSortToggle?: (column: ColumnDef) => void\n    stickyHeaderTop?: string\n\n    // Optional: falls containerWidth initial 0 ist\n    initialVisibleColumns?: number\n    onHorizontalOverflowChange?: (hasOverflow: boolean) => void\n  }\n\n  let {\n    columns = [],\n    rows = [],\n    virtualize = true,\n    getRowId,\n    requestedPins = $bindable({ start: [], end: [] }),\n    columnNavigationMode = \"click\",\n    showActions = false,\n    actionsHeaderLabel = \"Aktionen\",\n    actionsWidth = CONTROL_WIDTH_ACTIONS_DEFAULT,\n    darkMode = true,\n    enableSelection = false,\n    selectionSurfaceTone = \"light\",\n    selectedRowKeys = new Set<string>(),\n    allVisibleSelected = false,\n    someVisibleSelected = false,\n    onToggleRowSelection,\n    onToggleSelectAll,\n    empty,\n    tableCell,\n    rowActions,\n    rowControls,\n    onRowClick,\n    canActivateRow = () => Boolean(onRowClick),\n    rowTestId,\n    cellTestId,\n    getRowState,\n    loading = false,\n    loadingMore = false,\n    loadingRowCount = 6,\n    sort = null,\n    onSortToggle,\n    stickyHeaderTop = \"var(--kw-table-sticky-header-top, var(--kw-page-sticky-header-top, 0px))\",\n    initialVisibleColumns = 1,\n    onHorizontalOverflowChange = undefined,\n  }: Props = $props()\n\n  const SELECTION_COLUMN_WIDTH = 52\n  const headerSelectionInputId = `table-select-all-${Math.random().toString(36).slice(2, 10)}`\n  const selectionCheckboxStyle =\n    \"--kw-input-checkbox-check: var(--dt-selection-checkbox-check, #ffffff); --kw-input-checkbox-border: var(--dt-selection-checkbox-border, currentColor); --kw-input-checkbox-border-width: 2px;\"\n\n  let containerEl = $state<HTMLDivElement | null>(null)\n  let headerScrollEl = $state<HTMLDivElement | null>(null)\n  let topScrollbarEl = $state<HTMLDivElement | null>(null)\n  let bottomScrollbarEl = $state<HTMLDivElement | null>(null)\n  let topSimplebar: SimpleBar | null = null\n  let bottomSimplebar: SimpleBar | null = null\n  let topScrollElement: HTMLElement | null = null\n  let bottomScrollElement: HTMLElement | null = null\n  let horizontalScrollLeft = $state(0)\n  let horizontalMaxScrollLeft = $state(0)\n  let containerWidth = $state(0)\n\n  let offset = $state(0)\n  let autoColumnWidths = $state<Record<string, number>>({})\n  let renderedColumnWidths = $state<Record<string, number>>({})\n  const renderedSizing = createRenderedColumnSizing((widths) => {\n    renderedColumnWidths = widths\n  })\n  onDestroy(renderedSizing.destroy)\n  let renderedHeaderWidths = $state<Record<string, number>>({})\n  const headerSizing = createRenderedColumnSizing(\n    (widths) => {\n      renderedHeaderWidths = widths\n    },\n    { selector: \".header-content\", measurementClass: \"header-content--measure\" },\n  )\n  onDestroy(headerSizing.destroy)\n  let fontRevision = $state(0)\n  const HORIZONTAL_SCROLL_STEP_PX = 480\n  const keyForRow = (row: DataRow) => getRowKey(row, getRowId)\n  const sampleRowKeys = $derived(JSON.stringify(rows.slice(0, 20).map(keyForRow)))\n  $effect(() => {\n    const keys: string[] = JSON.parse(sampleRowKeys)\n    untrack(() => {\n      renderedSizing.retain(keys)\n      renderedSizing.invalidate()\n      headerSizing.invalidate()\n    })\n  })\n  const hasRows = $derived(rows.length > 0)\n  const sizingSignature = $derived(\n    JSON.stringify(\n      columns.map(({ id, label, width, minWidth, maxWidth }) => ({\n        id,\n        label,\n        width,\n        minWidth,\n        maxWidth,\n      })),\n    ),\n  )\n  $effect(() => {\n    sizingSignature\n    fontRevision\n    containerWidth\n    hasRows\n    untrack(() => {\n      let measure = (text: string) => text.length * 8\n\n      if (typeof document !== \"undefined\" && typeof CanvasRenderingContext2D !== \"undefined\") {\n        const context = document.createElement(\"canvas\").getContext(\"2d\")\n\n        if (context) {\n          context.font = containerEl ? getComputedStyle(containerEl).font : \"14px sans-serif\"\n          measure = (text) => context.measureText(text).width\n        }\n      }\n\n      autoColumnWidths = measureColumnWidths(columns, rows, measure)\n      renderedSizing.invalidate()\n      headerSizing.retain(columns.map((column) => column.id))\n      headerSizing.invalidate()\n    })\n  })\n  onMount(() => {\n    let active = true\n\n    if (containerEl) renderedSizing.observe(containerEl)\n\n    if (headerScrollEl) headerSizing.observe(headerScrollEl)\n\n    void document.fonts?.ready.then(() => {\n      if (active) fontRevision++\n    })\n\n    return () => {\n      active = false\n    }\n  })\n\n  // containerWidth (one RO only)\n  onMount(() => {\n    let ro: ResizeObserver | null = null\n    let rafId: number | null = null\n\n    const read = () => {\n      const w = containerEl?.clientWidth ?? 0\n      const next = Math.max(0, Math.round(w))\n\n      if (next !== containerWidth) containerWidth = next\n    }\n\n    const schedule = () => {\n      if (rafId !== null && typeof cancelAnimationFrame === \"function\") cancelAnimationFrame(rafId)\n\n      if (typeof requestAnimationFrame === \"function\") {\n        rafId = requestAnimationFrame(() => {\n          rafId = null\n          read()\n        })\n      } else {\n        read()\n      }\n    }\n\n    schedule()\n\n    if (typeof ResizeObserver !== \"undefined\" && containerEl) {\n      ro = new ResizeObserver(() => schedule())\n      ro.observe(containerEl)\n    }\n\n    return () => {\n      ro?.disconnect()\n\n      if (rafId !== null && typeof cancelAnimationFrame === \"function\") cancelAnimationFrame(rafId)\n    }\n  })\n\n  const layoutReady = $derived(containerWidth > 0)\n  const useHorizontalScrollbars = $derived(columnNavigationMode === \"scroll\")\n  const baseWidths = $derived(\n    Object.fromEntries(\n      columns.map((column) => [\n        column.id,\n        clamp(\n          parsePxWidth(column.width) ??\n            Math.max(\n              autoColumnWidths[column.id] ?? estimateColumnWidth(column),\n              renderedColumnWidths[column.id] ?? 0,\n              renderedHeaderWidths[column.id] ?? 0,\n            ),\n          column.minWidth ?? 80,\n          column.maxWidth ?? 1200,\n        ),\n      ]),\n    ),\n  )\n  const resolvedActionsWidth = $derived(showActions ? actionsWidth : 0)\n  const selectionWidth = $derived(enableSelection ? SELECTION_COLUMN_WIDTH : 0)\n  const preliminaryOverflow = $derived(\n    Object.values(baseWidths).reduce(\n      (sum, width) => sum + width,\n      selectionWidth + resolvedActionsWidth,\n    ) > containerWidth,\n  )\n  const hasControlColumn = $derived(\n    showActions || (!useHorizontalScrollbars && preliminaryOverflow),\n  )\n  const controlWidth = $derived(\n    showActions ? actionsWidth : hasControlColumn ? CONTROL_WIDTH_CHEVRON : 0,\n  )\n  const layout = $derived(\n    resolveColumnLayout({\n      columns,\n      widths: baseWidths,\n      containerWidth,\n      actionsWidth: controlWidth,\n      selectionWidth,\n      pins: requestedPins,\n      mode: columnNavigationMode,\n      offset,\n      initialVisibleColumns,\n    }),\n  )\n  const columnById = $derived(new Map(columns.map((column) => [column.id, column])))\n  const visibleColumns = $derived(layout.visibleIds.map((id) => columnById.get(id)!))\n  const renderedVisibleWidths = $derived(layout.visibleIds.map((id) => layout.widths[id]))\n  const hasDataOverflow = $derived(layout.overflow)\n  const hasOverflow = $derived(!useHorizontalScrollbars && layout.overflow)\n  const hasHorizontalOverflow = $derived(useHorizontalScrollbars && layout.overflow)\n  const horizontalScrollbarWidth = $derived(layout.totalWidth)\n  const canScrollLeft = $derived(hasOverflow && layout.offset > 0)\n  const canScrollRight = $derived(hasOverflow && layout.offset < layout.maxOffset)\n  function scrollColumns(delta: number) {\n    offset = clamp(layout.offset + delta, 0, layout.maxOffset)\n  }\n  function pinColumn(id: string, side: \"start\" | \"end\" | null) {\n    const next = {\n      start: requestedPins.start.filter((entry) => entry !== id),\n      end: requestedPins.end.filter((entry) => entry !== id),\n    }\n\n    if (side) next[side].push(id)\n\n    requestedPins = next\n    offset = 0\n  }\n  const engineColumns = $derived([\n    ...(enableSelection ? [{ id: SELECTION_COLUMN_ID, label: \"\" }] : []),\n    ...columns,\n    ...(hasControlColumn ? [{ id: ACTIONS_COLUMN_ID, label: actionsHeaderLabel }] : []),\n  ])\n  const engine = createTableEngine({\n    columns: () => engineColumns,\n    rows: () => rows,\n    widths: () => ({\n      ...layout.widths,\n      [SELECTION_COLUMN_ID]: selectionWidth,\n      [ACTIONS_COLUMN_ID]: controlWidth,\n    }),\n    visibleIds: () => [\n      ...(enableSelection ? [SELECTION_COLUMN_ID] : []),\n      ...layout.visibleIds,\n      ...(hasControlColumn ? [ACTIONS_COLUMN_ID] : []),\n    ],\n    getRowId: keyForRow,\n    selection: () => selectedRowKeys,\n    isSelectable: (row, index) => rowIsSelectable(row, index),\n    sort: () => sort,\n    pinning: () => layout.pinning,\n  })\n  const engineRows = $derived(engine.rows)\n  const virtualRows = createVirtualRows({\n    enabled: () => virtualize,\n    count: () => engineRows.length,\n    key: (index) => engineRows[index].id,\n    estimateSize: () => 68,\n  })\n  const virtualItems = $derived(virtualRows.items)\n  const tableStyle = $derived(\n    useHorizontalScrollbars\n      ? `width:${Math.max(containerWidth, layout.totalWidth)}px; min-width:${layout.totalWidth}px;`\n      : \"\",\n  )\n  const emptyColspan = $derived(\n    visibleColumns.length + (hasControlColumn ? 1 : 0) + (enableSelection ? 1 : 0),\n  )\n\n  const getColumnSortState = (column: ColumnDef) =>\n    sort && sort.columnId === column.id ? sort : null\n  const isSortableColumn = (column: ColumnDef) => column.sortable === true\n  const resolveAriaSort = (column: ColumnDef) => {\n    const state = getColumnSortState(column)\n\n    if (!state) return isSortableColumn(column) ? \"none\" : undefined\n\n    return state.dir === \"asc\" ? \"ascending\" : \"descending\"\n  }\n\n  const controlColStyle = $derived(\n    hasControlColumn\n      ? engine.columnStyle(ACTIONS_COLUMN_ID) + `--actions-col-width:${controlWidth}px;`\n      : \"\",\n  )\n\n  const rowStateFor = (row: DataRow, rowIndex: number): TableRowState =>\n    getRowState?.(row, rowIndex) ?? {}\n  const rowIsDisabled = (row: DataRow, rowIndex: number) =>\n    Boolean(rowStateFor(row, rowIndex).disabled || rowStateFor(row, rowIndex).loading)\n  const rowIsSelectable = (row: DataRow, rowIndex: number) => {\n    const rowState = rowStateFor(row, rowIndex)\n\n    return !rowState.loading && !rowState.disabled && rowState.selectable !== false\n  }\n  const selectableRows = $derived(rows.filter((row, rowIndex) => rowIsSelectable(row, rowIndex)))\n\n  const handleRowClick = (row: DataRow, rowIndex: number, event: MouseEvent | KeyboardEvent) => {\n    if (\n      event.altKey ||\n      event.ctrlKey ||\n      event.metaKey ||\n      event.shiftKey ||\n      (event instanceof MouseEvent && event.button !== 0)\n    )\n      return\n\n    if (\n      event.target instanceof Element &&\n      event.target.closest(\n        \"button, a, input, select, textarea, [role=button], [role=checkbox], [contenteditable=true]\",\n      )\n    )\n      return\n\n    if (rowIsDisabled(row, rowIndex) || !canActivateRow(row, rowIndex)) return\n\n    onRowClick?.(row)\n  }\n  const isRowSelected = (row: DataRow, rowIndex?: number) => selectedRowKeys.has(keyForRow(row))\n\n  const isPlainTextValue = (value: unknown) =>\n    typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\"\n\n  const rowControlCommandsForState = (\n    commands: TableRowControlCommand[] | null | undefined,\n    isMuted: boolean,\n  ) => {\n    const visibleCommands = commands ?? []\n\n    if (!isMuted) return visibleCommands\n\n    return visibleCommands.filter((command) => command.kind === \"restore\")\n  }\n\n  const syncHorizontalScroll = (\n    source: \"table\" | \"header\" | \"top\" | \"bottom\",\n    nextLeft: number,\n  ) => {\n    if (!useHorizontalScrollbars) return\n\n    const targetLeft = Math.max(0, nextLeft)\n\n    if (source !== \"table\" && containerEl && containerEl.scrollLeft !== targetLeft) {\n      containerEl.scrollLeft = targetLeft\n    }\n\n    if (source !== \"header\" && headerScrollEl && headerScrollEl.scrollLeft !== targetLeft) {\n      headerScrollEl.scrollLeft = targetLeft\n    }\n\n    if (source !== \"top\" && topScrollElement && topScrollElement.scrollLeft !== targetLeft) {\n      topScrollElement.scrollLeft = targetLeft\n    }\n\n    if (\n      source !== \"bottom\" &&\n      bottomScrollElement &&\n      bottomScrollElement.scrollLeft !== targetLeft\n    ) {\n      bottomScrollElement.scrollLeft = targetLeft\n    }\n\n    if (!containerEl) {\n      horizontalScrollLeft = targetLeft\n      horizontalMaxScrollLeft = Math.max(horizontalMaxScrollLeft, targetLeft)\n\n      return\n    }\n\n    horizontalScrollLeft = Math.max(0, containerEl.scrollLeft)\n    horizontalMaxScrollLeft = Math.max(0, containerEl.scrollWidth - containerEl.clientWidth)\n  }\n\n  const handleTableHorizontalScroll = () => {\n    if (!useHorizontalScrollbars || !containerEl) return\n\n    syncHorizontalScroll(\"table\", containerEl.scrollLeft)\n  }\n\n  const handleHeaderHorizontalScroll = () => {\n    if (!useHorizontalScrollbars || !headerScrollEl) return\n\n    syncHorizontalScroll(\"header\", headerScrollEl.scrollLeft)\n  }\n\n  const scrollTableHorizontallyByStep = (delta: number) => {\n    if (!containerEl || !useHorizontalScrollbars) return\n\n    const current = containerEl.scrollLeft\n    const max = Math.max(0, containerEl.scrollWidth - containerEl.clientWidth)\n    const next = clamp(current + delta, 0, max)\n\n    if (next === current) return\n\n    containerEl.scrollLeft = next\n    syncHorizontalScroll(\"table\", next)\n  }\n\n  const canStepHorizontalLeft = $derived(\n    useHorizontalScrollbars && hasHorizontalOverflow && horizontalScrollLeft > 0,\n  )\n  const canStepHorizontalRight = $derived(\n    useHorizontalScrollbars &&\n      hasHorizontalOverflow &&\n      horizontalScrollLeft < horizontalMaxScrollLeft,\n  )\n\n  $effect(() => {\n    onHorizontalOverflowChange?.(layoutReady && hasDataOverflow)\n  })\n\n  const destroyHorizontalSimplebars = () => {\n    topSimplebar?.unMount()\n    bottomSimplebar?.unMount()\n    topSimplebar = null\n    bottomSimplebar = null\n    topScrollElement = null\n    bottomScrollElement = null\n  }\n\n  $effect(() => {\n    useHorizontalScrollbars\n    hasHorizontalOverflow\n    horizontalScrollbarWidth\n    containerWidth\n\n    if (containerEl) {\n      horizontalScrollLeft = Math.max(0, containerEl.scrollLeft)\n      horizontalMaxScrollLeft = Math.max(0, containerEl.scrollWidth - containerEl.clientWidth)\n\n      if (headerScrollEl && headerScrollEl.scrollLeft !== horizontalScrollLeft) {\n        headerScrollEl.scrollLeft = horizontalScrollLeft\n      }\n\n      return\n    }\n\n    horizontalScrollLeft = 0\n    horizontalMaxScrollLeft = 0\n  })\n\n  $effect(() => {\n    if (typeof window === \"undefined\") return\n\n    if (!useHorizontalScrollbars || !hasHorizontalOverflow) {\n      destroyHorizontalSimplebars()\n\n      return\n    }\n\n    horizontalScrollbarWidth\n    containerEl\n    topScrollbarEl\n    bottomScrollbarEl\n\n    if (!containerEl || !topScrollbarEl || !bottomScrollbarEl) return\n\n    topSimplebar =\n      SimpleBar.instances.get(topScrollbarEl) ?? new SimpleBar(topScrollbarEl, { autoHide: false })\n    bottomSimplebar =\n      SimpleBar.instances.get(bottomScrollbarEl) ??\n      new SimpleBar(bottomScrollbarEl, { autoHide: false })\n\n    const topScrollTarget = topSimplebar.getScrollElement()\n    const bottomScrollTarget = bottomSimplebar.getScrollElement()\n\n    if (!topScrollTarget || !bottomScrollTarget) return\n\n    topScrollElement = topScrollTarget\n    bottomScrollElement = bottomScrollTarget\n\n    const handleTopScroll = () => syncHorizontalScroll(\"top\", topScrollTarget.scrollLeft)\n    const handleBottomScroll = () => syncHorizontalScroll(\"bottom\", bottomScrollTarget.scrollLeft)\n\n    topScrollTarget.addEventListener(\"scroll\", handleTopScroll, { passive: true })\n    bottomScrollTarget.addEventListener(\"scroll\", handleBottomScroll, { passive: true })\n\n    syncHorizontalScroll(\"table\", containerEl.scrollLeft)\n\n    return () => {\n      topScrollTarget.removeEventListener(\"scroll\", handleTopScroll)\n      bottomScrollTarget.removeEventListener(\"scroll\", handleBottomScroll)\n    }\n  })\n\n  onDestroy(destroyHorizontalSimplebars)\n</script>\n\n{#snippet tableColgroup()}\n  <colgroup>\n    {#if enableSelection}\n      <col\n        style={`width:${SELECTION_COLUMN_WIDTH}px; min-width:${SELECTION_COLUMN_WIDTH}px; max-width:${SELECTION_COLUMN_WIDTH}px;`}\n      />\n    {/if}\n    {#each renderedVisibleWidths as w, i (i)}\n      <col style={`width:${w}px;`} />\n    {/each}\n    {#if hasControlColumn}\n      <col style={controlColStyle} />\n    {/if}\n  </colgroup>\n{/snippet}\n\n{#snippet tableHeader()}\n  <thead>\n    <tr>\n      {#if enableSelection}\n        <th class=\"selection-header-cell\" style={engine.columnStyle(SELECTION_COLUMN_ID)}>\n          <div class=\"selection-cell-content\">\n            <div class=\"form selection-input-host\">\n              <Input\n                id={headerSelectionInputId}\n                type=\"checkbox\"\n                placeholder=\"\"\n                value={allVisibleSelected}\n                indeterminate={enableSelection && someVisibleSelected && !allVisibleSelected}\n                disabled={loading || selectableRows.length === 0}\n                surfaceTone={selectionSurfaceTone}\n                style={selectionCheckboxStyle}\n                onChange={() => onToggleSelectAll?.()}\n                classList=\"selection-checkbox-control\"\n              />\n            </div>\n          </div>\n        </th>\n      {/if}\n      {#each visibleColumns as column (column.id)}\n        <th\n          class={getColumnAlignClass(column)}\n          class:pinned={engine.isPinned(column.id)}\n          style={engine.columnStyle(column.id)}\n          aria-sort={resolveAriaSort(column)}\n        >\n          <div\n            class=\"header-content\"\n            use:headerSizing.measureContent={{\n              columnId: column.id,\n              rowKey: column.id,\n              enabled: parsePxWidth(column.width) === null,\n            }}\n          >\n            {#if isSortableColumn(column)}\n              <button type=\"button\" class=\"header-button\" onclick={() => onSortToggle?.(column)}>\n                <span class=\"header-label\">\n                  <span class=\"header-text\">{column.label}</span>\n\n                  {#if column.tooltip}\n                    <span\n                      class=\"header-icon\"\n                      aria-label=\"Spalteninfo\"\n                      use:tooltip={{\n                        content: column.tooltip,\n                        className: \"table-header-tooltip bottom\",\n                      }}\n                    >\n                      <Icon path={mdiInformationOutline} size=\"0.95rem\" />\n                    </span>\n                  {/if}\n                </span>\n                {#if getColumnSortState(column)}\n                  <span\n                    class=\"sort-indicator\"\n                    class:is-active={true}\n                    data-dir={getColumnSortState(column)?.dir ?? \"none\"}\n                    aria-hidden=\"true\"\n                  >\n                    <Icon\n                      path={getColumnSortState(column)?.dir === \"asc\" ? mdiArrowUp : mdiArrowDown}\n                      size=\"0.9rem\"\n                    />\n                  </span>\n                {/if}\n              </button>\n            {:else}\n              <span class=\"header-label\">\n                <span class=\"header-text\">{column.label}</span>\n\n                {#if column.tooltip}\n                  <span\n                    class=\"header-icon\"\n                    aria-label=\"Spalteninfo\"\n                    use:tooltip={{\n                      content: column.tooltip,\n                      className: \"table-header-tooltip bottom\",\n                    }}\n                  >\n                    <Icon path={mdiInformationOutline} size=\"0.95rem\" />\n                  </span>\n                {/if}\n              </span>\n            {/if}\n            {#if column.canPin !== false}\n              <span class=\"header-menu\">\n                <TableMenu\n                  label={`Spalte ${column.label} anheften`}\n                  items={[\n                    {\n                      id: \"start\",\n                      label: \"Links anheften\",\n                      icon: mdiArrowCollapseLeft,\n                      onClick: () => pinColumn(column.id, \"start\"),\n                    },\n                    {\n                      id: \"end\",\n                      label: \"Rechts anheften\",\n                      icon: mdiArrowCollapseRight,\n                      onClick: () => pinColumn(column.id, \"end\"),\n                    },\n                    {\n                      id: \"none\",\n                      label: \"Anheftung aufheben\",\n                      icon: mdiPinOffOutline,\n                      disabled:\n                        !requestedPins.start.includes(column.id) &&\n                        !requestedPins.end.includes(column.id),\n                      onClick: () => pinColumn(column.id, null),\n                    },\n                  ]}\n                />\n              </span>\n            {/if}\n          </div>\n        </th>\n      {/each}\n\n      {#if hasControlColumn}\n        <th class=\"cell-actions-header\" style={controlColStyle}>\n          <div class=\"cell-actions-inner\">\n            {#if hasOverflow && !useHorizontalScrollbars}\n              <ColumnScrollButtons\n                leftAriaLabel=\"Spalten nach links schieben\"\n                rightAriaLabel=\"Spalten nach rechts schieben\"\n                leftDisabled={!canScrollLeft}\n                rightDisabled={!canScrollRight}\n                onLeftClick={() => scrollColumns(-1)}\n                onRightClick={() => scrollColumns(1)}\n              />\n            {/if}\n\n            {#if showActions && actionsHeaderLabel}\n              <span class=\"actions-header-label\">{actionsHeaderLabel}</span>\n            {/if}\n          </div>\n        </th>\n      {/if}\n    </tr>\n  </thead>\n{/snippet}\n\n<div class=\"table-sticky-header-stack\" style={`--dt-sticky-header-top:${stickyHeaderTop};`}>\n  {#if useHorizontalScrollbars && hasHorizontalOverflow}\n    <div class=\"table-horizontal-controls table-horizontal-controls--top\">\n      <button\n        type=\"button\"\n        class=\"table-horizontal-step-button\"\n        aria-label=\"Horizontal nach links scrollen\"\n        title={`Nach links (${HORIZONTAL_SCROLL_STEP_PX}px)`}\n        disabled={!canStepHorizontalLeft}\n        onclick={() => scrollTableHorizontallyByStep(-HORIZONTAL_SCROLL_STEP_PX)}\n      >\n        <Icon path={mdiChevronLeft} />\n      </button>\n      <div\n        class=\"table-horizontal-scrollbar table-horizontal-scrollbar--top\"\n        data-simplebar\n        data-simplebar-auto-hide=\"false\"\n        bind:this={topScrollbarEl}\n      >\n        <div\n          class=\"table-horizontal-scrollbar__content\"\n          style={`width:${horizontalScrollbarWidth}px;`}\n        ></div>\n      </div>\n      <button\n        type=\"button\"\n        class=\"table-horizontal-step-button\"\n        aria-label=\"Horizontal nach rechts scrollen\"\n        title={`Nach rechts (${HORIZONTAL_SCROLL_STEP_PX}px)`}\n        disabled={!canStepHorizontalRight}\n        onclick={() => scrollTableHorizontallyByStep(HORIZONTAL_SCROLL_STEP_PX)}\n      >\n        <Icon path={mdiChevronRight} />\n      </button>\n    </div>\n  {/if}\n\n  <div\n    class=\"table-sticky-header-scroll\"\n    class:with-horizontal-scrollbars={useHorizontalScrollbars && hasHorizontalOverflow}\n    bind:this={headerScrollEl}\n    data-navigation-mode={columnNavigationMode}\n    onscroll={handleHeaderHorizontalScroll}\n  >\n    <table class=\"main-table table-sticky-header-table\" style={tableStyle}>\n      {@render tableColgroup()}\n      {@render tableHeader()}\n    </table>\n  </div>\n</div>\n\n<div\n  class=\"table-scroll\"\n  data-table-horizontal\n  class:with-horizontal-scrollbars={useHorizontalScrollbars && hasHorizontalOverflow}\n  bind:this={containerEl}\n  data-navigation-mode={columnNavigationMode}\n  onscroll={handleTableHorizontalScroll}\n>\n  <table class=\"main-table\" style={tableStyle}>\n    {@render tableColgroup()}\n\n    <tbody use:virtualRows.attach>\n      {#if loading}\n        <tr class=\"loading-row\">\n          <td colspan={emptyColspan}>\n            <BarLoader size=\"3\" color=\"#741e20\" unit=\"rem\" />\n          </td>\n        </tr>\n      {:else if rows.length === 0}\n        <tr class=\"empty-row\">\n          <td colspan={emptyColspan}>\n            {#if empty}\n              {@render empty()}\n            {:else}\n              Keine Einträge vorhanden.\n            {/if}\n          </td>\n        </tr>\n      {:else}\n        {#each virtualItems as item, virtualIndex (item.key)}\n          {@const row = engineRows[item.index].data}\n          {@const rowIndex = item.index}\n          {@const gap = virtualRows.gapBefore(virtualItems, virtualIndex)}\n          {#if gap > 0}<tr class=\"virtual-spacer\" aria-hidden=\"true\"\n              ><td colspan={emptyColspan} style={`height:${gap}px;`}></td></tr\n            >{/if}\n          {@const rowState = rowStateFor(row, rowIndex)}\n          {@const isDisabled = Boolean(rowState.disabled || rowState.loading)}\n          {@const isMuted = Boolean(rowState.muted)}\n          {@const isSelectable = rowIsSelectable(row, rowIndex)}\n          {@const controlCommands = rowControlCommandsForState(\n            rowControls?.(row, rowIndex),\n            isMuted,\n          )}\n          <tr\n            data-index={rowIndex}\n            data-virtual-index={rowIndex}\n            use:virtualRows.measure\n            onclick={(event) => handleRowClick(row, rowIndex, event)}\n            tabindex={canActivateRow(row, rowIndex) && !isDisabled ? 0 : undefined}\n            onkeydown={(event) => {\n              if (\n                event.target === event.currentTarget &&\n                (event.key === \"Enter\" || event.key === \" \")\n              ) {\n                event.preventDefault()\n                handleRowClick(row, rowIndex, event)\n              }\n            }}\n            class={rowState.className ?? \"\"}\n            class:even-row={rowIndex % 2 === 1}\n            class:has_action={canActivateRow(row, rowIndex) && !isDisabled}\n            class:is-selected={isRowSelected(row, rowIndex)}\n            class:is-disabled={isDisabled}\n            class:is-muted={isMuted}\n            aria-selected={enableSelection ? isRowSelected(row, rowIndex) : undefined}\n            aria-disabled={isDisabled ? \"true\" : undefined}\n            title={rowState.disabledReason ?? rowState.mutedReason ?? undefined}\n            data-testid={rowTestId?.(row, rowIndex)}\n          >\n            {#if enableSelection}\n              <td\n                class=\"selection-cell\"\n                style={engine.columnStyle(SELECTION_COLUMN_ID)}\n                class:muted-cell={isMuted}\n                onclick={(event) => event.stopPropagation()}\n              >\n                <div class=\"selection-cell-content\">\n                  <div class=\"form selection-input-host\">\n                    <Input\n                      id={`table-row-select-${keyForRow(row)}`}\n                      type=\"checkbox\"\n                      placeholder=\"\"\n                      value={isRowSelected(row, rowIndex)}\n                      surfaceTone={selectionSurfaceTone}\n                      style={selectionCheckboxStyle}\n                      disabled={!isSelectable}\n                      onChange={() => {\n                        if (isSelectable) onToggleRowSelection?.(row)\n                      }}\n                      classList=\"selection-checkbox-control\"\n                    />\n                  </div>\n                </div>\n              </td>\n            {/if}\n            {#each visibleColumns as column (column.id)}\n              <td\n                class={getColumnAlignClass(column)}\n                class:pinned={engine.isPinned(column.id)}\n                style={engine.columnStyle(column.id)}\n                class:muted-cell={isMuted}\n                data-testid={cellTestId?.(row, column, rowIndex)}\n              >\n                <div\n                  class=\"cell-content\"\n                  use:renderedSizing.measureContent={{\n                    columnId: column.id,\n                    rowKey: keyForRow(row),\n                    enabled:\n                      rowIndex < 20 && parsePxWidth(column.width) === null && !column.measureValue,\n                  }}\n                >\n                  {#if tableCell}\n                    {@render tableCell({ row, column })}\n                  {:else}\n                    {@const value = getCellValue(row, column.id)}\n                    {#if isPlainTextValue(value)}\n                      <span\n                        class=\"cell-text-wrap\"\n                        style=\"white-space: normal; word-break: break-word;\"\n                      >\n                        {value}\n                      </span>\n                    {:else}\n                      {value as any}\n                    {/if}\n                  {/if}\n                </div>\n              </td>\n            {/each}\n\n            {#if hasControlColumn}\n              <td class=\"cell-actions\" style={controlColStyle} onclick={(e) => e.stopPropagation()}>\n                <div class=\"cell-actions-inner\">\n                  {#if showActions}\n                    <div class=\"actions\">\n                      <TableRowActions\n                        {row}\n                        {rowIndex}\n                        resolved={rowActions}\n                        controls={controlCommands}\n                        {darkMode}\n                        disabled={isDisabled}\n                        muted={isMuted}\n                        loading={rowState.loading}\n                      />\n                    </div>\n                  {/if}\n                </div>\n              </td>\n            {/if}\n          </tr>\n        {/each}\n        {#if virtualRows.tail(virtualItems) > 0}<tr class=\"virtual-spacer\" aria-hidden=\"true\"\n            ><td colspan={emptyColspan} style={`height:${virtualRows.tail(virtualItems)}px;`}\n            ></td></tr\n          >{/if}\n      {/if}\n\n      {#if !loading && loadingMore}\n        <tr class=\"loading-row\">\n          <td colspan={emptyColspan}>\n            <BarLoader size=\"3\" color=\"#741e20\" unit=\"rem\" />\n          </td>\n        </tr>\n      {/if}\n    </tbody>\n  </table>\n</div>\n\n{#if useHorizontalScrollbars && hasHorizontalOverflow}\n  <div class=\"table-horizontal-controls table-horizontal-controls--bottom\">\n    <button\n      type=\"button\"\n      class=\"table-horizontal-step-button\"\n      aria-label=\"Horizontal nach links scrollen\"\n      title={`Nach links (${HORIZONTAL_SCROLL_STEP_PX}px)`}\n      disabled={!canStepHorizontalLeft}\n      onclick={() => scrollTableHorizontallyByStep(-HORIZONTAL_SCROLL_STEP_PX)}\n    >\n      <Icon path={mdiChevronLeft} />\n    </button>\n    <div\n      class=\"table-horizontal-scrollbar table-horizontal-scrollbar--bottom\"\n      data-simplebar\n      data-simplebar-auto-hide=\"false\"\n      bind:this={bottomScrollbarEl}\n    >\n      <div\n        class=\"table-horizontal-scrollbar__content\"\n        style={`width:${horizontalScrollbarWidth}px;`}\n      ></div>\n    </div>\n    <button\n      type=\"button\"\n      class=\"table-horizontal-step-button\"\n      aria-label=\"Horizontal nach rechts scrollen\"\n      title={`Nach rechts (${HORIZONTAL_SCROLL_STEP_PX}px)`}\n      disabled={!canStepHorizontalRight}\n      onclick={() => scrollTableHorizontallyByStep(HORIZONTAL_SCROLL_STEP_PX)}\n    >\n      <Icon path={mdiChevronRight} />\n    </button>\n  </div>\n{/if}\n\n<style lang=\"less\">\n  .virtual-spacer {\n    pointer-events: none;\n  }\n  .virtual-spacer td {\n    padding: 0;\n    border: 0;\n  }\n  td.pinned {\n    background: inherit;\n  }\n  .pinned {\n    box-shadow:\n      1px 0 0 var(--dt-border-subtle),\n      -1px 0 0 var(--dt-border-subtle);\n  }\n\n  .table-horizontal-controls {\n    width: 100%;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    gap: 0.4rem;\n    background-color: var(--dt-bg-elevated-soft);\n    border-left: 1px solid var(--dt-border-subtle);\n    border-right: 1px solid var(--dt-border-subtle);\n    padding: 0.25rem 0.4rem;\n\n    &--top {\n      border-top: 1px solid var(--dt-border-subtle);\n    }\n\n    &--bottom {\n      border-bottom: 1px solid var(--dt-border-subtle);\n    }\n  }\n\n  .table-sticky-header-stack {\n    position: sticky;\n    top: var(--dt-sticky-header-top, 0px);\n    z-index: 6;\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n    box-sizing: border-box;\n    background-color: var(--dt-bg-elevated-soft);\n  }\n\n  .selection-header-cell,\n  .selection-cell {\n    width: 52px;\n    min-width: 52px;\n    max-width: 52px;\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n    text-align: center;\n    background-color: var(--dt-bg-elevated-soft);\n  }\n\n  .selection-cell {\n    border-right: 1px solid var(--dt-border-subtle);\n  }\n\n  .selection-cell-content {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .selection-input-host {\n    display: inline-flex;\n    flex-direction: row;\n    align-items: center;\n    justify-content: center;\n    gap: 0;\n    width: auto;\n    height: auto;\n  }\n\n  .selection-input-host :global(label.checkbox) {\n    width: auto;\n    max-width: none;\n    height: 1.2rem;\n    max-height: 1.2rem;\n    justify-content: center;\n    gap: 0;\n    --kw-input-checkbox-check: var(--dt-selection-checkbox-check, #ffffff);\n    --kw-input-checkbox-border: var(--dt-selection-checkbox-border, currentColor);\n  }\n\n  .selection-input-host :global(label.checkbox[data-surface-tone]) {\n    --kw-input-checkbox-check: var(--dt-selection-checkbox-check, #ffffff);\n  }\n\n  .selection-input-host :global(.checkit-span) {\n    border-width: var(--kw-input-checkbox-border-width, 2px) !important;\n    border-style: solid !important;\n    border-color: var(--dt-selection-checkbox-border, currentColor) !important;\n    background-color: var(--dt-bg-main) !important;\n  }\n\n  .selection-input-host :global(.checkit-span:focus-visible) {\n    outline: 2px solid var(--dt-accent-soft);\n    outline-offset: 2px;\n  }\n\n  .selection-input-host :global([type=\"checkbox\"]:checked + .checkit-span:before) {\n    color: var(--dt-selection-checkbox-check, #ffffff) !important;\n  }\n\n  .selection-input-host :global(.selection-checkbox-control) {\n    cursor: pointer;\n  }\n\n  .selection-input-host :global(label.checkbox.disabled),\n  .selection-input-host :global(label.checkbox.disabled .checkit-span) {\n    cursor: not-allowed;\n    opacity: 0.6;\n  }\n\n  .table-horizontal-step-button {\n    flex: 0 0 auto;\n    border: none;\n    background: transparent;\n    color: var(--dt-text-muted);\n    padding: 0.25rem;\n    border-radius: 999px;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 1rem;\n    transition:\n      background-color 0.1s ease,\n      color 0.1s ease,\n      transform 0.05s ease,\n      opacity 0.1s ease;\n\n    &:hover:not(:disabled) {\n      color: var(--dt-accent-soft);\n      background-color: rgba(116, 30, 32, 0.12);\n      transform: translateY(-1px);\n    }\n\n    &:active:not(:disabled) {\n      transform: translateY(0);\n    }\n\n    &:disabled {\n      opacity: 0.3;\n      cursor: default;\n    }\n  }\n\n  .table-horizontal-scrollbar {\n    flex: 1 1 auto;\n    min-width: 0;\n    box-sizing: border-box;\n    height: 19px;\n    background-color: var(--dt-bg-elevated-soft);\n\n    &__content {\n      height: 2px;\n    }\n\n    :global(.simplebar-track.simplebar-vertical) {\n      display: none;\n    }\n\n    :global(.simplebar-wrapper),\n    :global(.simplebar-mask),\n    :global(.simplebar-offset),\n    :global(.simplebar-content-wrapper),\n    :global(.simplebar-content) {\n      height: 100%;\n    }\n\n    :global(.simplebar-track.simplebar-horizontal) {\n      width: auto !important;\n      height: 16px !important;\n      top: auto !important;\n      left: 0 !important;\n      right: 0 !important;\n      bottom: 0 !important;\n      margin: 0 !important;\n      overflow: visible !important;\n      background-color: rgba(13, 12, 12, 0.25) !important;\n      box-shadow:\n        inset 0 2px 0 var(--dt-bg-elevated-soft),\n        inset 0 -2px 0 var(--dt-bg-elevated-soft);\n      pointer-events: auto;\n      cursor: pointer;\n    }\n\n    :global(.simplebar-track.simplebar-horizontal .simplebar-scrollbar) {\n      height: 16px !important;\n      min-width: 40px;\n      pointer-events: auto;\n      cursor: grab;\n    }\n\n    :global(.simplebar-track.simplebar-horizontal .simplebar-scrollbar::before) {\n      background-color: #0d0c0c !important;\n      opacity: 1 !important;\n      top: -1px !important;\n      right: -2px !important;\n      bottom: -1px !important;\n      left: -2px !important;\n      width: auto !important;\n      height: auto !important;\n      margin: 0 !important;\n      border-radius: 0;\n      transition-delay: 0s;\n      transition-duration: 0ms;\n    }\n\n    :global(.simplebar-track.simplebar-horizontal .simplebar-scrollbar:active) {\n      cursor: grabbing;\n    }\n\n    :global(.simplebar-track.simplebar-horizontal .simplebar-scrollbar.simplebar-visible::before) {\n      opacity: 1 !important;\n    }\n\n    :global(.simplebar-content-wrapper) {\n      overflow-x: auto !important;\n      overflow-y: hidden !important;\n      scroll-behavior: auto !important;\n    }\n  }\n\n  .table-sticky-header-scroll,\n  .table-scroll {\n    border: 1px solid var(--dt-border-subtle);\n    background-color: var(--dt-bg-elevated);\n    width: 100%;\n    max-width: 100%;\n    min-width: 0;\n    box-sizing: border-box;\n    position: relative;\n    overflow-x: hidden;\n    overflow-y: visible;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n\n    &::-webkit-scrollbar {\n      display: none;\n    }\n\n    &[data-navigation-mode=\"scroll\"] {\n      overflow-x: auto;\n      scroll-behavior: auto;\n    }\n\n    &.with-horizontal-scrollbars {\n      border-top: 0;\n      border-bottom: 0;\n    }\n  }\n\n  .table-sticky-header-scroll {\n    overflow-x: hidden;\n    overflow-y: hidden;\n    border-bottom: 0;\n    background-color: var(--dt-bg-elevated-soft);\n\n    &[data-navigation-mode=\"scroll\"] {\n      overflow-x: auto;\n      scroll-behavior: auto;\n    }\n\n    &.with-horizontal-scrollbars {\n      border-top: 1px solid var(--dt-border-subtle);\n      border-bottom: 0;\n    }\n  }\n\n  .table-scroll {\n    border-top: 0;\n  }\n\n  table {\n    border-collapse: separate;\n    border-spacing: 0;\n  }\n\n  .main-table {\n    width: 100%;\n    table-layout: fixed;\n  }\n\n  thead th {\n    position: static;\n    top: auto;\n    z-index: 3;\n    box-sizing: border-box;\n    padding: 0.65rem 0.75rem;\n    background-color: var(--dt-bg-elevated-soft);\n    color: var(--dt-text-muted);\n    font-weight: 600;\n    font-size: 0.75rem;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    border-bottom: 1px solid var(--dt-border-subtle);\n    white-space: normal;\n\n    .header-content {\n      display: flex;\n      align-items: center;\n      gap: 4px;\n      min-width: 0;\n    }\n\n    .header-content:global(.header-content--measure) {\n      width: max-content;\n      max-width: none;\n    }\n\n    .header-menu {\n      display: inline-flex;\n      flex: 0 0 auto;\n      margin-inline-start: auto;\n    }\n\n    .header-button {\n      display: inline-flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 0.5rem;\n      flex: 1;\n      min-width: 0;\n      padding: 0;\n      margin: 0;\n      border: 0;\n      background: transparent;\n      color: inherit;\n      font: inherit;\n      text-transform: inherit;\n      letter-spacing: inherit;\n      cursor: pointer;\n    }\n\n    .header-label {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.35rem;\n      min-width: 0;\n    }\n\n    .header-text {\n      text-overflow: ellipsis;\n      min-width: 0;\n      white-space: nowrap;\n      overflow: hidden;\n    }\n\n    .header-icon {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      color: var(--dt-text-muted);\n      opacity: 0.8;\n      flex: 0 0 auto;\n    }\n\n    .sort-indicator {\n      display: inline-flex;\n      flex-shrink: 0;\n      align-items: center;\n      justify-content: center;\n      margin-left: auto;\n      min-width: 0.95rem;\n      color: color-mix(in srgb, var(--dt-text-muted) 85%, var(--dt-text-main));\n\n      &.is-active {\n        color: var(--dt-accent);\n      }\n    }\n  }\n\n  tbody tr {\n    background-color: var(--dt-bg-elevated);\n\n    &.even-row {\n      background-color: var(--dt-bg-elevated-soft);\n    }\n\n    &.is-selected,\n    &.is-selected.even-row {\n      background: color-mix(in srgb, var(--dt-accent-soft) 18%, var(--dt-bg-elevated));\n      box-shadow: inset 3px 0 0 var(--dt-accent);\n    }\n\n    &.has_action {\n      cursor: pointer;\n    }\n\n    &.is-disabled,\n    &.is-disabled.even-row {\n      opacity: 0.5;\n      cursor: default;\n    }\n\n    &.is-muted,\n    &.is-muted.even-row {\n      .muted-cell {\n        opacity: 0.5;\n      }\n    }\n\n    td {\n      box-sizing: border-box;\n      padding: 0.65rem 0.75rem;\n      border-bottom: 1px solid var(--dt-border-subtle);\n      white-space: normal;\n      overflow-wrap: anywhere;\n\n      .cell-content {\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n        white-space: normal;\n        overflow-wrap: anywhere;\n      }\n\n      .cell-content:global(.cell-content--measure) {\n        width: max-content;\n        max-width: none;\n        overflow: visible;\n      }\n    }\n\n    &.empty-row td {\n      text-align: center;\n      color: var(--dt-text-muted);\n    }\n  }\n\n  .align-left {\n    text-align: left;\n  }\n  .align-center {\n    text-align: center;\n  }\n  .align-right {\n    text-align: right;\n  }\n\n  .cell-actions-header,\n  .cell-actions {\n    position: relative;\n    z-index: 4;\n    background-color: var(--dt-bg-elevated-soft);\n    white-space: nowrap;\n    max-width: var(--actions-col-width, auto);\n  }\n\n  /* Shadow nur im Header, nicht pro Row (Performance) */\n  .cell-actions {\n    border-left: 1px solid var(--dt-border-subtle);\n    box-shadow: none;\n  }\n\n  .cell-actions-inner {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 0.5rem;\n    width: 100%;\n  }\n\n  .actions {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 0.25rem;\n    width: 100%;\n\n    .row-actions-hidden {\n      display: none;\n    }\n  }\n\n  .loading-row td {\n    background-color: var(--dt-bg-elevated);\n    border-bottom-color: color-mix(in srgb, var(--dt-border-subtle) 60%, transparent);\n  }\n\n  .skeleton-bar {\n    display: block;\n    width: 100%;\n    height: 0.65rem;\n    border-radius: 999px;\n    background: linear-gradient(\n      90deg,\n      color-mix(in srgb, var(--dt-bg-elevated-soft) 60%, transparent),\n      color-mix(in srgb, var(--dt-border-subtle) 80%, transparent),\n      color-mix(in srgb, var(--dt-bg-elevated-soft) 60%, transparent)\n    );\n    background-size: 200% 100%;\n    animation: skeleton-shimmer 1.2s ease-in-out infinite;\n\n    &.small {\n      width: 48%;\n      margin: 0 auto;\n    }\n\n    &.wide {\n      width: 30%;\n      margin: 0 auto;\n    }\n  }\n\n  .loading-more {\n    display: flex;\n    justify-content: center;\n    padding: 0.4rem 0;\n  }\n\n  @keyframes skeleton-shimmer {\n    0% {\n      background-position: 200% 0;\n    }\n    100% {\n      background-position: -200% 0;\n    }\n  }\n\n  @media print {\n    /* Sticky Header/Actions erzeugen in Print-Engines schnell Overlaps/Duplikate. */\n    .table-sticky-header-stack {\n      position: static !important;\n      top: auto !important;\n    }\n\n    thead th {\n      position: static !important;\n      top: auto !important;\n    }\n\n    .cell-actions-header,\n    .cell-actions {\n      position: static !important;\n      right: auto !important;\n    }\n\n    /* Keine \"halb abgeschnittenen\" Zeilen an Seitenumbrüchen. */\n    tbody tr {\n      break-inside: avoid;\n      page-break-inside: avoid;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { onMount } from \"svelte\"\n  import { getRowKey } from \"../../../../../../core/layout/index\"\n  import TableRowActions from \"../../_shared/_modules/table-row-actions/index\"\n  import { createVirtualRows } from \"../../_shared/_logic/virtual-rows/index\"\n  import type {\n    ColumnDef,\n    DataRow,\n    TableRowIdResolver,\n    CardTitleRenderer,\n    CardSubtitleRenderer,\n    CardFieldRenderer,\n    CardCtaRenderer,\n    TableRowActionsResolver,\n    TableRowState,\n    TableRowStateResolver,\n    TableRowControlCommand,\n    TableRowControlsResolver,\n  } from \"../../../../../../core/layout/table\"\n  import type { ResolvedRowActionsResolver } from \"../../_shared/_logic/row-actions/index\"\n  import { Circle } from \"svelte-loading-spinners\"\n  type Props = {\n    rows?: DataRow[]\n    getRowId?: TableRowIdResolver\n    cardColumns?: ColumnDef[]\n    primaryColumnId?: string\n\n    showActions?: boolean\n    darkMode?: boolean\n    rowActions?: ResolvedRowActionsResolver | TableRowActionsResolver\n    rowControls?: TableRowControlsResolver\n\n    cardTitle?: CardTitleRenderer\n    cardSubtitle?: CardSubtitleRenderer\n    cardField?: CardFieldRenderer\n    cardCta?: CardCtaRenderer\n\n    showPrimaryButton?: boolean\n    primaryButtonLabel?: string\n    onPrimaryAction?: (row: DataRow) => void\n    getRowState?: TableRowStateResolver\n\n    cardPageSize?: number | null\n\n    empty?: Snippet<[]>\n    loading?: boolean\n  }\n\n  let {\n    rows = [],\n    getRowId,\n    cardColumns = [],\n    primaryColumnId = \"\",\n    showActions = false,\n    darkMode = true,\n    rowActions,\n    rowControls,\n    cardTitle,\n    cardSubtitle,\n    cardField,\n    cardCta,\n    showPrimaryButton = false,\n    primaryButtonLabel = \"Termin buchen\",\n    onPrimaryAction,\n    getRowState,\n    cardPageSize = 10,\n    empty,\n    loading = false,\n  }: Props = $props()\n\n  let cardOffsets = $state<Record<string, number>>({})\n\n  const keyForRow = (row: DataRow) => getRowKey(row, getRowId)\n  let list = $state<HTMLDivElement>()\n  let width = $state(0)\n  const columnsPerBand = $derived(Math.max(1, Math.floor((width + 16) / 576)))\n  const bandCount = $derived(Math.ceil(rows.length / columnsPerBand))\n  const virtualRows = createVirtualRows({\n    count: () => bandCount,\n    thresholdCount: () => rows.length,\n    key: (index) => keyForRow(rows[index * columnsPerBand]),\n    estimateSize: () => 300,\n  })\n  const virtualItems = $derived(virtualRows.items)\n  onMount(() => {\n    if (!list) return\n\n    const read = () => {\n      width = list?.clientWidth ?? 0\n    }\n    read()\n    const observer = new ResizeObserver(read)\n    observer.observe(list)\n\n    return () => observer.disconnect()\n  })\n\n  function getCellValue(row: DataRow, columnId: string) {\n    const value = row[columnId]\n\n    return value ?? \"\"\n  }\n\n  function getPageSize(): number {\n    if (!cardColumns.length) return 0\n\n    if (cardPageSize == null || cardPageSize <= 0) return cardColumns.length\n\n    return Math.min(cardPageSize, cardColumns.length)\n  }\n\n  function getEffectiveOffset(rowKey: string): number {\n    const total = cardColumns.length\n\n    if (!total) return 0\n\n    const size = getPageSize()\n\n    if (size === 0) return 0\n\n    const maxOffset = Math.max(0, total - size)\n    const base = cardOffsets[rowKey] ?? 0\n\n    return Math.min(Math.max(base, 0), maxOffset)\n  }\n\n  function getVisibleCardColumns(rowKey: string): ColumnDef[] {\n    if (!cardColumns.length) return []\n\n    const size = getPageSize()\n\n    if (size === 0) return []\n\n    const start = getEffectiveOffset(rowKey)\n    const end = Math.min(start + size, cardColumns.length)\n\n    return cardColumns.slice(start, end)\n  }\n\n  function canScrollUp(rowKey: string): boolean {\n    return getEffectiveOffset(rowKey) > 0\n  }\n\n  function canScrollDown(rowKey: string): boolean {\n    const total = cardColumns.length\n\n    if (!total) return false\n\n    const size = getPageSize()\n\n    if (size === 0) return false\n\n    const maxOffset = Math.max(0, total - size)\n\n    return getEffectiveOffset(rowKey) < maxOffset\n  }\n\n  function scrollCard(rowKey: string, delta: number) {\n    const total = cardColumns.length\n\n    if (!total) return\n\n    const size = getPageSize()\n\n    if (size === 0) return\n\n    const maxOffset = Math.max(0, total - size)\n    const current = getEffectiveOffset(rowKey)\n    const next = Math.min(Math.max(current + delta, 0), maxOffset)\n\n    if (next === (cardOffsets[rowKey] ?? 0)) return\n\n    cardOffsets = {\n      ...cardOffsets,\n      [rowKey]: next,\n    }\n  }\n\n  let hasCardColumns = $derived(cardColumns.length > 0)\n  let showScrollControls = $derived(\n    (() => {\n      const size = getPageSize()\n\n      return hasCardColumns && size > 0 && cardColumns.length > size\n    })(),\n  )\n\n  function handlePrimary(row: DataRow) {\n    const rowIndex = rows.findIndex((entry) => entry === row)\n\n    if (\n      rowIndex >= 0 &&\n      (rowStateFor(row, rowIndex).disabled || rowStateFor(row, rowIndex).loading)\n    )\n      return\n\n    onPrimaryAction?.(row)\n  }\n\n  const rowStateFor = (row: DataRow, rowIndex: number): TableRowState =>\n    getRowState?.(row, rowIndex) ?? {}\n\n  const rowControlCommandsForState = (\n    commands: TableRowControlCommand[] | null | undefined,\n    isMuted: boolean,\n  ) => {\n    const visibleCommands = commands ?? []\n\n    if (!isMuted) return visibleCommands\n\n    return visibleCommands.filter((command) => command.kind === \"restore\")\n  }\n\n  const skeletonCards = $derived.by(() => {\n    const size = typeof cardPageSize === \"number\" && cardPageSize > 0 ? cardPageSize : 3\n\n    return Array.from({ length: Math.max(2, Math.min(4, size)) }, (_, i) => i)\n  })\n\n  const getSkeletonWidth = (rowIdx: number) => 45 + ((rowIdx * 13) % 30)\n</script>\n\n<div class=\"card-list\" bind:this={list} use:virtualRows.attach>\n  {#if loading}\n    <Circle size=\"3\" color=\"#741e20\" unit=\"rem\" />\n  {:else if rows.length === 0}\n    <div class=\"empty-cards\">\n      {#if empty}\n        {@render empty()}\n      {:else}\n        Keine Einträge vorhanden.\n      {/if}\n    </div>\n  {:else}\n    {#each virtualItems as item, virtualIndex (item.key)}\n      {@const gap = virtualRows.gapBefore(virtualItems, virtualIndex)}\n      {#if gap > 0}<div aria-hidden=\"true\" style={`height:${gap}px;`}></div>{/if}\n      <div\n        class=\"card-band\"\n        data-index={item.index}\n        data-virtual-index={item.index}\n        use:virtualRows.measure\n      >\n        <div class=\"card-grid\" style:--card-columns={columnsPerBand}>\n          {#each rows.slice(item.index * columnsPerBand, (item.index + 1) * columnsPerBand) as row, columnIndex (keyForRow(row))}\n            {@const rowIndex = item.index * columnsPerBand + columnIndex}\n            {@const rowKey = keyForRow(row)}\n            {@const rowState = rowStateFor(row, rowIndex)}\n            {@const isDisabled = Boolean(rowState.disabled || rowState.loading)}\n            {@const isMuted = Boolean(rowState.muted)}\n            {@const controlCommands = rowControlCommandsForState(\n              rowControls?.(row, rowIndex),\n              isMuted,\n            )}\n            <article\n              class={`card ${rowState.className ?? \"\"}`}\n              class:is-disabled={isDisabled}\n              class:is-muted={isMuted}\n              title={rowState.disabledReason ?? rowState.mutedReason ?? undefined}\n            >\n              <header class=\"card-header\">\n                <div class=\"card-title\">\n                  {#if cardTitle}\n                    {@render cardTitle({ row })}\n                  {:else if primaryColumnId}\n                    {getCellValue(row, primaryColumnId) as any}\n                  {/if}\n\n                  <div class=\"card-subtitle\">\n                    {#if cardSubtitle}\n                      {@render cardSubtitle({ row })}\n                    {/if}\n                  </div>\n                </div>\n\n                {#if showActions}\n                  <div class=\"card-header-actions\">\n                    <TableRowActions\n                      {row}\n                      {rowIndex}\n                      resolved={rowActions}\n                      controls={controlCommands}\n                      {darkMode}\n                      disabled={isDisabled}\n                      muted={isMuted}\n                      loading={rowState.loading}\n                    />\n                  </div>\n                {/if}\n              </header>\n\n              {#if hasCardColumns}\n                <div class=\"card-body\">\n                  {#if showScrollControls}\n                    <div class=\"card-scroll-controls\">\n                      <button\n                        type=\"button\"\n                        class=\"card-scroll-button\"\n                        aria-label=\"Felder nach oben scrollen\"\n                        disabled={!canScrollUp(rowKey)}\n                        onclick={(e) => {\n                          e.stopPropagation()\n                          scrollCard(rowKey, -1)\n                        }}\n                      >\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"\n                          ><title>chevron-up</title><path\n                            d=\"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\"\n                          ></path></svg\n                        >\n                      </button>\n                      <button\n                        type=\"button\"\n                        class=\"card-scroll-button\"\n                        aria-label=\"Felder nach unten scrollen\"\n                        disabled={!canScrollDown(rowKey)}\n                        onclick={(e) => {\n                          e.stopPropagation()\n                          scrollCard(rowKey, 1)\n                        }}\n                      >\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n                          <title>chevron-down</title>\n                          <path d=\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"\n                          ></path>\n                        </svg>\n                      </button>\n                    </div>\n                  {/if}\n\n                  <div class=\"card-body-content\">\n                    {#each getVisibleCardColumns(rowKey) as column (column.id)}\n                      <div class=\"card-row\">\n                        <div class=\"card-label\">\n                          {column.label}\n                        </div>\n                        <div class=\"card-value\">\n                          {#if cardField}\n                            {@render cardField({ row, column })}\n                          {:else}\n                            {getCellValue(row, column.id) as any}\n                          {/if}\n                        </div>\n                      </div>\n                    {/each}\n                  </div>\n                </div>\n              {/if}\n\n              {#if showPrimaryButton}\n                <footer class=\"card-footer\">\n                  {#if cardCta}\n                    {@render cardCta({ row, primaryAction: () => handlePrimary(row) })}\n                  {:else}\n                    <button\n                      type=\"button\"\n                      class=\"primary-btn\"\n                      disabled={isDisabled}\n                      onclick={() => handlePrimary(row)}\n                    >\n                      {primaryButtonLabel}\n                    </button>\n                  {/if}\n                </footer>\n              {/if}\n            </article>\n          {/each}\n        </div>\n      </div>\n    {/each}\n    {#if virtualRows.tail(virtualItems) > 0}<div\n        aria-hidden=\"true\"\n        style={`height:${virtualRows.tail(virtualItems)}px;`}\n      ></div>{/if}\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .card-band {\n    padding-bottom: 1rem;\n  }\n\n  .card-grid {\n    display: grid;\n    grid-template-columns: repeat(var(--card-columns, 1), minmax(0, 1fr));\n    gap: 1rem;\n    width: 100%;\n    min-width: 0;\n\n    .empty-cards {\n      grid-column: 1 / -1;\n      padding: 1.5rem;\n      border-radius: var(--dt-radius);\n      border: 1px dashed var(--dt-border-subtle);\n      text-align: center;\n      color: var(--dt-text-muted);\n      background-color: var(--dt-bg-elevated);\n    }\n\n    .card {\n      border-radius: 2px;\n      border: 1px solid var(--dt-border-subtle);\n      background-color: var(--dt-bg-elevated);\n      display: flex;\n      flex-direction: column;\n      overflow: hidden;\n      min-width: 0;\n      width: 100%;\n\n      &.is-disabled {\n        opacity: 0.5;\n      }\n\n      &.is-muted {\n        .card-title,\n        .card-body,\n        .card-footer {\n          opacity: 0.5;\n        }\n      }\n\n      .card-header {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        padding: 0.75rem 0.9rem 0.6rem 0.9rem;\n        border-bottom: 1px solid var(--dt-border-subtle);\n        gap: 0.5rem;\n        flex-wrap: wrap;\n        min-width: 0;\n\n        .card-title {\n          font-weight: 600;\n          flex: 1 1 auto;\n          font-size: 1.3rem;\n          min-width: 0;\n          overflow-wrap: anywhere;\n          word-break: break-word;\n\n          .card-subtitle {\n            margin-top: 0.15rem;\n            font-size: 0.8rem;\n            color: var(--dt-text-muted);\n            overflow-wrap: anywhere;\n            word-break: break-word;\n          }\n        }\n\n        .card-header-actions {\n          display: flex;\n          flex-direction: column;\n          gap: 0.25rem;\n          row-gap: 0.35rem;\n          flex: 1 0 auto;\n          width: max-content;\n          min-width: 0;\n          max-width: 100%;\n          justify-content: center;\n          align-items: center;\n          flex-wrap: nowrap;\n\n          :global(*) {\n            min-width: 0;\n            max-width: 100%;\n          }\n\n          :global(button) {\n            border: none;\n            background: transparent;\n            color: var(--dt-text-muted);\n            padding: 0.3rem;\n            border-radius: 999px;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            transition:\n              background-color 0.15s ease,\n              color 0.15s ease;\n\n            &:hover {\n              color: var(--dt-accent-soft);\n              background-color: rgba(116, 30, 32, 0.12);\n            }\n          }\n\n          .row-actions-hidden {\n            display: none;\n          }\n        }\n      }\n\n      .card-body {\n        position: relative;\n        padding: 0.6rem 0.9rem 0.4rem 0.9rem;\n        display: flex;\n        flex-direction: column;\n        min-width: 0;\n\n        .card-scroll-controls {\n          position: absolute;\n          top: 0.4rem;\n          right: 0.5rem;\n          display: flex;\n          flex-direction: column;\n          gap: 0.15rem;\n        }\n\n        .card-scroll-button {\n          border: none;\n          background: transparent;\n          color: var(--dt-text-muted);\n          padding: 0.15rem;\n          border-radius: 999px;\n          cursor: pointer;\n          display: inline-flex;\n          align-items: center;\n          justify-content: center;\n          font-size: 0.75rem;\n          transition:\n            background-color 0.15s ease,\n            color 0.15s ease,\n            transform 0.05s ease,\n            opacity 0.1s ease;\n\n          &:hover:not(:disabled) {\n            color: var(--dt-accent-soft);\n            background-color: rgba(116, 30, 32, 0.12);\n            transform: translateY(-1px);\n          }\n\n          &:active:not(:disabled) {\n            transform: translateY(0);\n          }\n\n          &:disabled {\n            opacity: 0.3;\n            cursor: default;\n          }\n        }\n\n        .card-body-content {\n          display: flex;\n          flex-direction: column;\n          gap: 0.3rem;\n          padding-right: 1.1rem; /* Platz für die Buttons rechts */\n          min-width: 0;\n        }\n\n        .card-row {\n          display: grid;\n          grid-template-columns: minmax(0, 200px) 1fr;\n          column-gap: 0.75rem;\n          align-items: start;\n          min-width: 0;\n\n          .card-label {\n            font-size: 0.75rem;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n            color: var(--dt-text-muted);\n            margin: 0;\n            max-width: 200px;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n          }\n\n          .card-value {\n            font-size: 0.86rem;\n            color: var(--dt-text-main);\n            white-space: normal;\n            overflow-wrap: anywhere;\n            word-break: break-word;\n            min-width: 0;\n\n            :global(*) {\n              max-width: 100%;\n              min-width: 0;\n            }\n\n            :global(pre),\n            :global(code),\n            :global(kbd),\n            :global(samp) {\n              white-space: pre-wrap;\n              overflow-wrap: anywhere;\n              word-break: break-word;\n            }\n\n            :global(table) {\n              width: 100%;\n              max-width: 100%;\n              table-layout: fixed;\n            }\n\n            :global(th),\n            :global(td) {\n              white-space: normal;\n              overflow-wrap: anywhere;\n              word-break: break-word;\n            }\n          }\n        }\n      }\n\n      .card-footer {\n        padding: 0.6rem 0.9rem 0.75rem 0.9rem;\n        margin-top: auto;\n        min-width: 0;\n      }\n    }\n\n    .primary-btn {\n      width: 100%;\n      border-radius: 999px;\n      border: none;\n      padding: 0.6rem 1rem;\n      font-weight: 600;\n      font-size: 0.85rem;\n      text-align: center;\n      cursor: pointer;\n      background: linear-gradient(135deg, var(--dt-accent), var(--dt-accent-soft));\n      color: var(--text-100, #f3eed9);\n      box-shadow: 0 10px 25px rgba(116, 30, 32, 0.55);\n      transition:\n        transform 0.08s ease,\n        box-shadow 0.08s ease,\n        filter 0.08s ease;\n\n      &:hover {\n        filter: brightness(1.05);\n        transform: translateY(-1px);\n        box-shadow: 0 14px 30px rgba(116, 30, 32, 0.65);\n      }\n\n      &:active {\n        transform: translateY(0);\n        box-shadow: 0 8px 20px rgba(116, 30, 32, 0.5);\n      }\n    }\n  }\n\n  @media (max-width: 700px) {\n    .card-grid {\n      gap: 0.75rem;\n\n      .card {\n        .card-body {\n          .card-row {\n            grid-template-columns: 1fr;\n            row-gap: 0.15rem;\n\n            .card-label {\n              max-width: 100%;\n              white-space: normal;\n              overflow-wrap: anywhere;\n            }\n          }\n        }\n      }\n    }\n  }\n</style>\n","import type { DataRow, TableFilterValues, TableSortState } from \"../../../../../core/layout/table\"\nimport { getRowKey } from \"../../../../../core/layout/index\"\n\nconst serializeFilterValue = (value: string | string[] | null | undefined): string => {\n  if (Array.isArray(value)) {\n    return JSON.stringify(value.map((entry) => `${entry}`))\n  }\n\n  if (value === null || value === undefined) return \"null\"\n\n  return JSON.stringify(`${value}`)\n}\n\nexport const serializeExternalFilters = (value: TableFilterValues | null | undefined): string => {\n  if (!value) return \"\"\n\n  const keys = Object.keys(value).sort()\n\n  return keys.map((key) => `${key}:${serializeFilterValue(value[key])}`).join(\"|\")\n}\n\nexport const serializeSort = (value: TableSortState | null | undefined): string =>\n  value ? `${value.columnId}:${value.key}:${value.dir}` : \"\"\n\nexport const buildResetFetchSignature = ({\n  filters,\n  limit,\n  offset,\n  sort,\n}: {\n  filters: TableFilterValues\n  limit: number\n  offset: number\n  sort: TableSortState | null\n}): string =>\n  [\n    `filters=${serializeExternalFilters(filters)}`,\n    `limit=${limit}`,\n    `offset=${offset}`,\n    `sort=${serializeSort(sort)}`,\n  ].join(\"&\")\n\nexport const mergeLoadedRows = (\n  existingRows: DataRow[],\n  incomingRows: DataRow[],\n  getRowId: (row: DataRow) => string = getRowKey,\n): DataRow[] => {\n  if (existingRows.length === 0 || incomingRows.length === 0) {\n    return [...existingRows, ...incomingRows]\n  }\n\n  const seenIds = new Set<string>()\n  for (const row of existingRows) {\n    const candidate = getRowId(row)\n\n    if (candidate !== undefined && candidate !== null) {\n      seenIds.add(String(candidate))\n    }\n  }\n\n  if (seenIds.size === 0) {\n    return [...existingRows, ...incomingRows]\n  }\n\n  const merged = [...existingRows]\n  for (const row of incomingRows) {\n    const candidate = getRowId(row)\n\n    if (candidate === undefined || candidate === null) {\n      merged.push(row)\n      continue\n    }\n\n    const key = String(candidate)\n\n    if (seenIds.has(key)) {\n      continue\n    }\n\n    seenIds.add(key)\n    merged.push(row)\n  }\n\n  return merged\n}\n","import {\n  isSameTableSortState,\n  resolveColumnDefaultSortDir,\n  resolveColumnSortKey,\n} from \"../../../../../core/layout/tableSort\"\nimport { replaceUrlWithoutPublishing } from \"../../../../../core/routing/navigation\"\nimport type {\n  ColumnDef,\n  TableFilter,\n  TableFilterValues,\n  TableSortDirection,\n  TableSortState,\n} from \"../../../../../core/layout/table\"\nimport {\n  buildInitialFilterValues,\n  resolveFilterId,\n  tableFilterValuesEqual,\n} from \"../_shared/_logic/filter-state/index\"\n\nconst SORT_DIR_ASC = \"asc\"\nconst SORT_DIR_DESC = \"desc\"\n\nexport const normalizeUrlStateId = (value: string | null | undefined) => {\n  const raw = typeof value === \"string\" ? value.trim() : \"\"\n\n  return raw ? raw.replace(/[^a-zA-Z0-9_-]+/g, \"_\") : \"\"\n}\n\nconst normalizeFilterQueryId = (value: string) => value.replace(/[^a-zA-Z0-9_-]+/g, \"_\")\n\nexport const replaceCurrentUrlParams = (params: URLSearchParams) => {\n  if (typeof window === \"undefined\") return\n\n  const nextSearch = params.toString()\n  const nextUrl = `${window.location.pathname}${nextSearch ? `?${nextSearch}` : \"\"}${window.location.hash ?? \"\"}`\n  const currentUrl = `${window.location.pathname}${window.location.search}${window.location.hash ?? \"\"}`\n\n  if (nextUrl === currentUrl) return\n\n  replaceUrlWithoutPublishing(nextUrl)\n}\n\nconst getFilterQueryParamKey = (id: string, filterId: string) =>\n  `table_${id}_filter_${normalizeFilterQueryId(filterId)}`\n\nconst serializeUrlFilterValue = (value: string | string[] | null | undefined): string | null => {\n  if (Array.isArray(value)) {\n    const entries = value.map((entry) => `${entry}`.trim()).filter(Boolean)\n\n    return entries.length ? JSON.stringify(entries) : null\n  }\n\n  if (value === null || value === undefined) return null\n\n  const normalized = `${value}`.trim()\n\n  return normalized ? JSON.stringify(normalized) : null\n}\n\nconst parseUrlFilterValue = (\n  filter: TableFilter,\n  rawValues: string[],\n): string | string[] | null | undefined => {\n  if (!rawValues.length) return undefined\n\n  const raw = rawValues[rawValues.length - 1] ?? \"\"\n  let parsed: unknown\n  try {\n    parsed = JSON.parse(raw)\n  } catch {\n    parsed = raw\n  }\n\n  if (filter.type === \"status\" || (filter.type === \"select\" && filter.multiple)) {\n    if (filter.multiple === false) {\n      const single = Array.isArray(parsed) ? parsed[0] : parsed\n      const normalized = single === null || single === undefined ? \"\" : `${single}`.trim()\n\n      return normalized || null\n    }\n\n    const values = Array.isArray(parsed) ? parsed : rawValues.length > 1 ? rawValues : [parsed]\n\n    return values.map((entry) => `${entry ?? \"\"}`.trim()).filter(Boolean)\n  }\n\n  const normalized = Array.isArray(parsed) ? `${parsed[0] ?? \"\"}`.trim() : `${parsed ?? \"\"}`.trim()\n\n  return normalized\n}\n\nexport const readFilterStateFromUrl = (id: string, defs: TableFilter[]): TableFilterValues => {\n  if (typeof window === \"undefined\" || !id) return {}\n\n  const params = new URLSearchParams(window.location.search || \"\")\n  const next: TableFilterValues = {}\n  for (const current of defs) {\n    const filterId = resolveFilterId(current)\n\n    if (!filterId) continue\n\n    const value = parseUrlFilterValue(current, params.getAll(getFilterQueryParamKey(id, filterId)))\n\n    if (value !== undefined) {\n      next[filterId] = value\n    }\n  }\n\n  return next\n}\n\nexport const persistFilterStateToUrl = (\n  id: string,\n  defs: TableFilter[],\n  values: TableFilterValues,\n) => {\n  if (typeof window === \"undefined\" || !id) return\n\n  const params = new URLSearchParams(window.location.search || \"\")\n  const defaults = buildInitialFilterValues(defs)\n  for (const current of defs) {\n    const filterId = resolveFilterId(current)\n\n    if (!filterId) continue\n\n    const key = getFilterQueryParamKey(id, filterId)\n    const value = values[filterId]\n\n    if (tableFilterValuesEqual(value, defaults[filterId])) {\n      params.delete(key)\n      continue\n    }\n\n    const serialized = serializeUrlFilterValue(value)\n\n    if (serialized) {\n      params.set(key, serialized)\n    } else {\n      params.delete(key)\n    }\n  }\n  replaceCurrentUrlParams(params)\n}\n\nconst getSortQueryParamKeys = (id: string) => ({\n  by: `table_${id}_sort_by`,\n  dir: `table_${id}_sort_dir`,\n})\n\nexport const readSortStateFromUrl = (id: string, availableColumns: ColumnDef[]): TableSortState => {\n  if (typeof window === \"undefined\" || !id) return null\n\n  const params = new URLSearchParams(window.location.search || \"\")\n  const { by, dir } = getSortQueryParamKeys(id)\n  const rawKey = params.get(by)?.trim()\n\n  if (!rawKey) return null\n\n  const rawDir = params.get(dir)?.trim()\n  const column = availableColumns.find(\n    (entry) => entry.sortable && (entry.id === rawKey || resolveColumnSortKey(entry) === rawKey),\n  )\n\n  if (!column) return null\n\n  return {\n    columnId: column.id,\n    key: resolveColumnSortKey(column),\n    dir:\n      rawDir === SORT_DIR_ASC || rawDir === SORT_DIR_DESC\n        ? (rawDir as TableSortDirection)\n        : resolveColumnDefaultSortDir(column),\n  }\n}\n\nexport const persistSortStateToUrl = (\n  id: string,\n  sort: TableSortState,\n  defaultSortState: TableSortState,\n) => {\n  if (typeof window === \"undefined\" || !id) return\n\n  const params = new URLSearchParams(window.location.search || \"\")\n  const { by, dir } = getSortQueryParamKeys(id)\n\n  if (sort && !isSameTableSortState(sort, defaultSortState)) {\n    params.set(by, sort.key)\n    params.set(dir, sort.dir)\n  } else {\n    params.delete(by)\n    params.delete(dir)\n  }\n\n  replaceCurrentUrlParams(params)\n}\n","import type { ViewToggleOption, ViewToggleSvg } from \"../../../../../core/layout/table\"\nexport type {\n  ViewToggleOption,\n  ViewToggleSvg,\n  ViewToggleSvgPath,\n} from \"../../../../../core/layout/table\"\n\nconst viewToggleCardsSvg: ViewToggleSvg = {\n  viewBox: \"0 0 16 16\",\n  paths: [\n    {\n      d: \"M6 2H2.66667C2.29848 2 2 2.29848 2 2.66667V6C2 6.36819 2.29848 6.66667 2.66667 6.66667H6C6.36819 6.66667 6.66667 6.36819 6.66667 6V2.66667C6.66667 2.29848 6.36819 2 6 2Z\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M13.334 2H10.0007C9.63246 2 9.33398 2.29848 9.33398 2.66667V6C9.33398 6.36819 9.63246 6.66667 10.0007 6.66667H13.334C13.7022 6.66667 14.0007 6.36819 14.0007 6V2.66667C14.0007 2.29848 13.7022 2 13.334 2Z\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M13.334 9.3335H10.0007C9.63246 9.3335 9.33398 9.63197 9.33398 10.0002V13.3335C9.33398 13.7017 9.63246 14.0002 10.0007 14.0002H13.334C13.7022 14.0002 14.0007 13.7017 14.0007 13.3335V10.0002C14.0007 9.63197 13.7022 9.3335 13.334 9.3335Z\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M6 9.3335H2.66667C2.29848 9.3335 2 9.63197 2 10.0002V13.3335C2 13.7017 2.29848 14.0002 2.66667 14.0002H6C6.36819 14.0002 6.66667 13.7017 6.66667 13.3335V10.0002C6.66667 9.63197 6.36819 9.3335 6 9.3335Z\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n  ],\n}\n\nconst viewToggleTableSvg: ViewToggleSvg = {\n  viewBox: \"0 0 16 16\",\n  paths: [\n    {\n      d: \"M8 2V14\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2Z\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M2 6H14\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M2 10H14\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n  ],\n}\n\nconst viewToggleScrollTableSvg: ViewToggleSvg = {\n  viewBox: \"0 0 16 16\",\n  paths: [\n    {\n      d: \"M2 3.5H14\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M2 12.5H14\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M4.5 8H11.5\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M6 6.5L4.5 8L6 9.5\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n    {\n      d: \"M10 6.5L11.5 8L10 9.5\",\n      strokeWidth: \"1.33333\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\",\n    },\n  ],\n}\n\nexport const defaultViewToggleOptions: ViewToggleOption[] = [\n  { value: \"table\", label: \"Tabelle\", svg: viewToggleTableSvg },\n  { value: \"table-scroll\", label: \"Scrollbare Tabelle\", svg: viewToggleScrollTableSvg },\n  { value: \"cards\", label: \"Karten\", svg: viewToggleCardsSvg },\n]\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { onMount, untrack, setContext, flushSync } from \"svelte\"\n  import TableFilters from \"./_modules/table-filters/index\"\n  import TableView from \"./_modules/table-view/index\"\n  import CardView from \"./_modules/card-view/index\"\n  import { createTableActionState, TABLE_ACTION_STATE } from \"./_shared/_logic/action-state/index\"\n  import {\n    EMPTY_ROW_ACTIONS,\n    resolveRowActions,\n    rowActionsWidth,\n  } from \"./_shared/_logic/row-actions/index\"\n  import { getRowKey } from \"../../../../core/layout/index\"\n  import {\n    resolveDefaultTableSort,\n    resolveNextTableSort,\n    sanitizeTableSortState,\n  } from \"../../../../core/layout/tableSort\"\n  import type { StatusDefinition } from \"../../../../core/display/status\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import ToggleCTA from \"../../../actions/_modules/toggle-cta/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiPlus } from \"@mdi/js\"\n  import SectionTitle from \"../../../typography/_modules/section-title/index\"\n  import type { HelpDialogConfig, HelpDialogContext } from \"../../../../core/help/types\"\n  import {\n    buildFilterDefinitionSignature,\n    buildInitialFilterValues,\n    getFiltersPayload,\n    normalizeFilterDefinitions,\n    serializeExternalFilters,\n    tableFilterValuesEqual,\n  } from \"./_shared/_logic/filter-state/index\"\n  import { buildResetFetchSignature, mergeLoadedRows } from \"./_logic/fetchState\"\n  import {\n    normalizeUrlStateId,\n    persistFilterStateToUrl,\n    persistSortStateToUrl,\n    readFilterStateFromUrl,\n    readSortStateFromUrl,\n  } from \"./_logic/urlState\"\n  import { defaultViewToggleOptions } from \"./_logic/viewToggleOptions\"\n  import {\n    registerInvalidationHandler,\n    type InvalidationTarget,\n  } from \"../../../../core/runtime/invalidation\"\n  export type {\n    ViewToggleOption,\n    ViewToggleSvg,\n    ViewToggleSvgPath,\n  } from \"../../../../core/layout/table\"\n  import type {\n    ViewToggleOption,\n    Theme,\n    ViewMode,\n    ColumnDef,\n    DataRow,\n    TextTableFilter,\n    SelectTableFilterOption,\n    SelectTableFilter,\n    StatusTableFilter,\n    TableFilter,\n    TableFilterValues,\n    TableCellRenderer,\n    TableRowIdResolver,\n    TableRowAction,\n    TableRowActionsResolver,\n    TableRowActionsConfig,\n    TableRowActionSet,\n    TablePrimaryRowAction,\n    TableSecondaryRowAction,\n    CardTitleRenderer,\n    CardSubtitleRenderer,\n    CardFieldRenderer,\n    CardCtaRenderer,\n    TableSelectionContext,\n    TableSelectionRenderer,\n    TableSelectionChangeDetail,\n    TableRowTestIdResolver,\n    TableCellTestIdResolver,\n    TableRowState,\n    TableRowStateResolver,\n    TableRowControlKind,\n    TableRowControlCommand,\n    TableRowControlsResolver,\n    TableSortDirection,\n    TableSortState,\n    TableGetRowsParams,\n    TableGetRowsResult,\n    TableGetRows,\n    TableRowsUpdateOptions,\n    TableRowsUpdater,\n    TitleRowConfig,\n    TableProps,\n    TableFilterChangeDetail,\n  } from \"../../../../core/layout/table\"\n  export type {\n    Theme,\n    ViewMode,\n    ColumnDef,\n    DataRow,\n    TextTableFilter,\n    SelectTableFilterOption,\n    SelectTableFilter,\n    StatusTableFilter,\n    TableFilter,\n    TableFilterValues,\n    TableCellRenderer,\n    TableRowIdResolver,\n    TableRowAction,\n    TableRowActionsResolver,\n    TableRowActionsConfig,\n    TableRowActionSet,\n    TablePrimaryRowAction,\n    TableSecondaryRowAction,\n    CardTitleRenderer,\n    CardSubtitleRenderer,\n    CardFieldRenderer,\n    CardCtaRenderer,\n    TableSelectionContext,\n    TableSelectionRenderer,\n    TableSelectionChangeDetail,\n    TableRowTestIdResolver,\n    TableCellTestIdResolver,\n    TableRowState,\n    TableRowStateResolver,\n    TableRowControlKind,\n    TableRowControlCommand,\n    TableRowControlsResolver,\n    TableSortDirection,\n    TableSortState,\n    TableGetRowsParams,\n    TableGetRowsResult,\n    TableGetRows,\n    TableRowsUpdateOptions,\n    TableRowsUpdater,\n    TitleRowConfig,\n    TableProps,\n    TableFilterChangeDetail,\n  } from \"../../../../core/layout/table\"\n  const defaultGetRows: TableGetRows<TableFilterValues> = async ({ limit }) => ({\n    rows: [],\n    total: limit ?? 0,\n  })\n\n  let {\n    columns = [],\n    getRows = defaultGetRows,\n    getRowId,\n    pageSize = 50,\n    autoLoad = true,\n    fetchDebounceMs = 250,\n    loadingRowCount = 6,\n    loading: externalLoading = false,\n    theme = \"dark\",\n    mode = \"auto\",\n    stickyHeaderTop = \"var(--kw-table-sticky-header-top, var(--kw-page-sticky-header-top, 0px))\",\n    defaultMode = null,\n    showFilters = true,\n    defaultSort = null,\n    urlStateId = null,\n    refreshKey,\n    invalidationTargets = null,\n    setRefreshFunction,\n    setRowsUpdater,\n    cardFieldIds = null,\n    maxCardFields = null,\n    cardPageSize = 10,\n    primaryButtonLabel = \"Termin buchen\",\n    showPrimaryButton = false,\n    showActions = false,\n    actionsHeaderLabel = \"Aktionen\",\n    enableSelection = false,\n    batchActions = undefined,\n    showBatchActionCount = true,\n    batchActionsSurfaceTone = undefined,\n    selectionBar = undefined,\n    selectedIds: controlledSelectedIds = null,\n    onSelectionChange = undefined,\n    onSelectedIdsChange = undefined,\n    filter = null,\n    externalFilters = null,\n    onRowsLoaded,\n    onRowClick,\n    onPrimaryAction,\n    onModeChange,\n    rowTestId,\n    cellTestId,\n    getRowState,\n    empty,\n    afterFilters,\n    tableCell,\n    rowActions,\n    rowControls,\n    cardTitle,\n    cardSubtitle,\n    cardField,\n    cardCta,\n    titleRow = null,\n    buttonSnippet,\n    setViewToggleSnippet,\n  }: TableProps = $props()\n\n  const DEFAULT_PAGE_SIZE = 50\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const resolvedBatchActionsSurfaceTone = $derived(batchActionsSurfaceTone ?? theme)\n\n  const VIEW_MODE_STORAGE_KEY = \"kw-table-view-mode\"\n  const sortStateId = $derived.by(() => normalizeUrlStateId(urlStateId))\n\n  const readStoredViewMode = (): ViewMode | null => {\n    if (typeof localStorage === \"undefined\") return null\n\n    const raw = localStorage.getItem(VIEW_MODE_STORAGE_KEY)\n\n    return raw === \"table\" || raw === \"table-scroll\" || raw === \"cards\" || raw === \"auto\"\n      ? (raw as ViewMode)\n      : null\n  }\n\n  const persistViewMode = (nextMode: ViewMode) => {\n    if (typeof localStorage === \"undefined\") return\n\n    try {\n      localStorage.setItem(VIEW_MODE_STORAGE_KEY, nextMode)\n    } catch (err) {\n      console.warn(\"[Table] Could not persist view mode\", err)\n    }\n  }\n\n  const effectiveTitleRow = $derived.by<TitleRowConfig | null>(() => {\n    if (!titleRow) return null\n\n    if (titleRow.buttonSnippet || !buttonSnippet) return titleRow\n\n    return { ...titleRow, buttonSnippet }\n  })\n\n  let hasHorizontalOverflow = $state(false)\n\n  const showFormatToggle = $derived(\n    Boolean(setViewToggleSnippet) || !!effectiveTitleRow?.showFormatButtons,\n  )\n  const effectiveShowActions = $derived(showActions || Boolean(rowActions) || Boolean(rowControls))\n\n  const baseViewToggleOptions = $derived<ViewToggleOption[]>(\n    showFormatToggle\n      ? effectiveTitleRow?.formatOptions?.length\n        ? effectiveTitleRow.formatOptions\n        : defaultViewToggleOptions\n      : [],\n  )\n  const viewToggleOptions = $derived<ViewToggleOption[]>(\n    hasHorizontalOverflow\n      ? baseViewToggleOptions\n      : baseViewToggleOptions.filter((entry) => entry.value !== \"table-scroll\"),\n  )\n\n  const hasInlineViewToggle = $derived(\n    showFormatToggle && viewToggleOptions.length > 0 && !setViewToggleSnippet,\n  )\n  const hasTitleButtons = $derived(hasInlineViewToggle || !!effectiveTitleRow?.buttonSnippet)\n  const titleRowContent = $derived.by(() => {\n    if (!effectiveTitleRow?.content) return \"\"\n\n    if (typeof totalRows !== \"number\") return effectiveTitleRow.content\n\n    return `${effectiveTitleRow.content} (${numberFormatter.format(totalRows)})`\n  })\n\n  const resolveAllowedMode = (preferred: ViewMode | null): ViewMode => {\n    if (!viewToggleOptions.length) return mode\n\n    const allowed = viewToggleOptions.map((entry) => entry.value)\n\n    if (preferred && allowed.includes(preferred)) return preferred\n\n    if (mode && allowed.includes(mode)) return mode\n\n    return allowed[0]\n  }\n\n  let storedViewMode = $state<ViewMode | null>(null)\n  let activeMode = $derived<ViewMode>(resolveAllowedMode(storedViewMode ?? mode))\n\n  // effect-ok: snippet-bridge - parent-owned render slot must be updated when available view modes change.\n  $effect(() => {\n    if (!setViewToggleSnippet) return\n\n    if (!showFormatToggle || viewToggleOptions.length === 0) {\n      setViewToggleSnippet(null)\n\n      return\n    }\n\n    setViewToggleSnippet(viewToggleSnippet)\n\n    return () => setViewToggleSnippet(null)\n  })\n\n  const filters = $derived.by(() => normalizeFilterDefinitions(filter))\n  let filterValues = $state<TableFilterValues>(\n    untrack(() => {\n      const initialFilters = normalizeFilterDefinitions(filter)\n      const initialId = normalizeUrlStateId(urlStateId)\n\n      return buildInitialFilterValues(\n        initialFilters,\n        readFilterStateFromUrl(initialId, initialFilters),\n      )\n    }),\n  )\n  let sortState = $state<TableSortState>(untrack(() => defaultSort))\n  const resolvedDefaultSort = $derived<TableSortState>(\n    resolveDefaultTableSort(columns, defaultSort),\n  )\n  const effectiveSort = $derived<TableSortState>(\n    sanitizeTableSortState(columns, sortState) ?? resolvedDefaultSort,\n  )\n  const hasControlBar = $derived(showFilters && filters.length > 0)\n  const filtersSignature = $derived(`${sortStateId}:${buildFilterDefinitionSignature(filters)}`)\n  let filterResetRevision = $state(0)\n\n  const updateFilterValue = (columnId: string, value: string | string[] | null) => {\n    const current = filterValues[columnId]\n\n    if (tableFilterValuesEqual(current, value)) return\n\n    const nextValues: TableFilterValues = {\n      ...filterValues,\n      [columnId]: value,\n    }\n    filterValues = nextValues\n    persistFilterStateToUrl(sortStateId, filters, nextValues)\n    scheduleFetch(true)\n  }\n\n  const toggleColumnSort = (column: ColumnDef) => {\n    const nextSort = resolveNextTableSort(column, effectiveSort) ?? resolvedDefaultSort\n    const nextEffectiveSort = sanitizeTableSortState(columns, nextSort) ?? resolvedDefaultSort\n    sortState = nextSort\n    persistSortStateToUrl(sortStateId, nextEffectiveSort, resolvedDefaultSort)\n    scheduleFetch(true)\n  }\n\n  // ===== Laden der Daten =====\n\n  const resolvedPageSize = $derived.by(() =>\n    pageSize && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE,\n  )\n  const getRowsFn = $derived.by(() => {\n    if (typeof getRows === \"function\") return getRows\n\n    console.warn(\"[Table] getRows is missing or not a function – returning empty result.\")\n\n    return defaultGetRows\n  })\n\n  let fetchLoading = $state(true)\n  let loadingMore = $state(false)\n  let dataRows = $state<DataRow[]>([])\n  let selectedRowKeys = $state<string[]>([])\n  let totalRows = $state<number | null>(null)\n  let lastBatchSize = $state(0)\n  let fetchError = $state<string | null>(null)\n  let fetchToken = 0\n  let hasMounted = false\n  let filterTimer: ReturnType<typeof setTimeout> | null = null\n  let lastRefreshKey = $state<number | string | undefined>(untrack(() => refreshKey))\n  let lastFiltersSignature = $state(untrack(() => filtersSignature))\n  let lastExternalFiltersSignature = $state(\"\")\n  let lastResetFetchSignature = $state(\"\")\n  let lastInvalidationTargetsSignature = $state(\"\")\n  let unregisterInvalidationHandlers: Array<() => void> = []\n\n  const loading = $derived.by(\n    () => fetchLoading || (Boolean(externalLoading) && dataRows.length === 0),\n  )\n  const keyForRow = (row: DataRow) => getRowKey(row, getRowId)\n  const selectionIdForRow = (row: DataRow, _rowIndex?: number) => keyForRow(row)\n  const actionState = createTableActionState(keyForRow)\n  setContext(TABLE_ACTION_STATE, actionState)\n  let narrowScreen = $state(false)\n  let printing = $state(false)\n  const showCards = $derived(!printing && (narrowScreen || activeMode === \"cards\"))\n  onMount(() => {\n    const media = window.matchMedia(\"(max-width: 899px)\")\n    const update = () => {\n      narrowScreen = media.matches\n    }\n    const beforePrint = () =>\n      flushSync(() => {\n        printing = true\n      })\n    const afterPrint = () => {\n      printing = false\n    }\n    update()\n    media.addEventListener(\"change\", update)\n    window.addEventListener(\"beforeprint\", beforePrint)\n    window.addEventListener(\"afterprint\", afterPrint)\n\n    return () => {\n      media.removeEventListener(\"change\", update)\n      window.removeEventListener(\"beforeprint\", beforePrint)\n      window.removeEventListener(\"afterprint\", afterPrint)\n    }\n  })\n  const validateRows = (rows: DataRow[]) => {\n    const ids = new Set<string>()\n    for (const row of rows) {\n      const id = keyForRow(row)\n\n      if (ids.has(id)) throw new Error(\"Table rows require unique ids.\")\n\n      ids.add(id)\n    }\n\n    return rows\n  }\n  const rowStateFor = (row: DataRow, rowIndex: number): TableRowState =>\n    getRowState?.(row, rowIndex) ?? {}\n  const rowIsDisabled = (row: DataRow, rowIndex: number) =>\n    Boolean(rowStateFor(row, rowIndex).disabled || rowStateFor(row, rowIndex).loading)\n  const rowIsSelectable = (row: DataRow, rowIndex: number) => {\n    const rowState = rowStateFor(row, rowIndex)\n\n    return !rowState.loading && !rowState.disabled && rowState.selectable !== false\n  }\n  const controlledSelection = $derived(Array.isArray(controlledSelectedIds))\n  const controlledSelectionIds = $derived.by(() =>\n    Array.from(new Set((controlledSelectedIds ?? []).map((id) => `${id}`).filter(Boolean))),\n  )\n  const visibleRowKeys = $derived(dataRows.map((row, rowIndex) => keyForRow(row)))\n  const visibleRowKeySet = $derived(new Set(visibleRowKeys))\n  const rowByKey = $derived(new Map(dataRows.map((row) => [keyForRow(row), row])))\n  const controlledSelectionIdSet = $derived(new Set(controlledSelectionIds))\n  const selectableRowKeys = $derived(\n    dataRows\n      .map((row, rowIndex) => (rowIsSelectable(row, rowIndex) ? keyForRow(row) : null))\n      .filter((key): key is string => Boolean(key)),\n  )\n  const selectableRowKeySet = $derived(new Set(selectableRowKeys))\n  const loadedDisabledSelectionIds = $derived(\n    new Set(\n      dataRows\n        .map((row, rowIndex) =>\n          rowIsDisabled(row, rowIndex) ? selectionIdForRow(row, rowIndex) : null,\n        )\n        .filter((id): id is string => Boolean(id)),\n    ),\n  )\n  const effectiveSelectedRowKeys = $derived.by(() =>\n    enableSelection\n      ? controlledSelection\n        ? dataRows\n            .map((row, rowIndex) =>\n              rowIsSelectable(row, rowIndex) &&\n              controlledSelectionIdSet.has(selectionIdForRow(row, rowIndex))\n                ? keyForRow(row)\n                : null,\n            )\n            .filter((key): key is string => Boolean(key))\n        : selectedRowKeys.filter((key) => visibleRowKeySet.has(key) && selectableRowKeySet.has(key))\n      : [],\n  )\n  const selectedRowKeySet = $derived(new Set(effectiveSelectedRowKeys))\n  const rowIndexByKey = $derived(new Map(dataRows.map((row, index) => [keyForRow(row), index])))\n  const actionSets = $derived(\n    new Map(\n      dataRows.map((row, index) => [keyForRow(row), resolveRowActions(rowActions, row, index)]),\n    ),\n  )\n  const actionsForRow = (row: DataRow) => actionSets.get(keyForRow(row)) ?? EMPTY_ROW_ACTIONS\n  const actionsWidth = $derived(\n    Math.max(\n      96,\n      ...dataRows.map((row, index) =>\n        rowActionsWidth(actionsForRow(row), rowControls?.(row, index)?.length ?? 0),\n      ),\n    ),\n  )\n  const canActivateRow = (row: DataRow, rowIndex: number) => {\n    if (rowIsDisabled(row, rowIndex) || getRowState?.(row, rowIndex)?.muted) return false\n\n    if (onRowClick) return true\n\n    const primary = actionsForRow(row).primary\n\n    return Boolean(\n      primary &&\n      !primary.disabled &&\n      !primary.disabledReason &&\n      !primary.pending &&\n      actionState.state(row, primary) !== \"pending\",\n    )\n  }\n  let columnPins = $state<{ start: string[]; end: string[] }>({ start: [], end: [] })\n  const selectedRows = $derived.by(() =>\n    dataRows.filter(\n      (row, rowIndex) => rowIsSelectable(row, rowIndex) && selectedRowKeySet.has(keyForRow(row)),\n    ),\n  )\n  const selectedIds = $derived.by(() =>\n    controlledSelection\n      ? controlledSelectionIds.filter((id) => !loadedDisabledSelectionIds.has(id))\n      : selectedRows.map((row, rowIndex) => selectionIdForRow(row, rowIndex)),\n  )\n  const selectedCount = $derived(controlledSelection ? selectedIds.length : selectedRows.length)\n  const allVisibleSelected = $derived(\n    selectableRowKeys.length > 0 && selectedRows.length === selectableRowKeys.length,\n  )\n  const someVisibleSelected = $derived(\n    selectedRows.length > 0 && selectedRows.length < selectableRowKeys.length,\n  )\n\n  const hasMore = $derived.by(() => {\n    if (loading) return false\n\n    if (!resolvedPageSize) return false\n\n    if (totalRows !== null && totalRows !== undefined) return dataRows.length < totalRows\n\n    return lastBatchSize >= resolvedPageSize\n  })\n\n  const runFetch = async (\n    reset: boolean,\n    options?: { force?: boolean; propagateError?: boolean },\n  ) => {\n    if (!hasMounted) return\n\n    const limit = resolvedPageSize || DEFAULT_PAGE_SIZE\n    const offset = reset ? 0 : dataRows.length\n    const currentFilters = getFiltersPayload(filters, filterValues, externalFilters)\n    const currentSort = effectiveSort\n    const resetFetchSignature = reset\n      ? buildResetFetchSignature({\n          filters: currentFilters,\n          limit,\n          offset,\n          sort: currentSort,\n        })\n      : \"\"\n\n    if (reset && !options?.force && resetFetchSignature === lastResetFetchSignature) return\n\n    if (reset) {\n      lastResetFetchSignature = resetFetchSignature\n    }\n\n    const currentToken = ++fetchToken\n\n    if (reset) {\n      fetchLoading = true\n      loadingMore = false\n      fetchError = null\n    } else {\n      loadingMore = true\n    }\n\n    try {\n      const result = await getRowsFn({\n        filters: currentFilters,\n        limit,\n        offset,\n        sort: currentSort,\n      })\n\n      if (currentToken !== fetchToken) return\n\n      const incoming = result?.rows ?? []\n      lastBatchSize = incoming.length\n      totalRows = typeof result?.total === \"number\" ? result.total : null\n      dataRows = validateRows(reset ? incoming : mergeLoadedRows(dataRows, incoming, keyForRow))\n      fetchError = null\n      emitSelectionChange()\n\n      onRowsLoaded?.({\n        rows: dataRows,\n        total: totalRows,\n      })\n    } catch (err) {\n      if (currentToken !== fetchToken) return\n\n      fetchError = err instanceof Error ? err.message : \"Daten konnten nicht geladen werden.\"\n\n      if (reset) {\n        lastResetFetchSignature = \"\"\n      }\n\n      if (reset) {\n        dataRows = []\n        totalRows = null\n        lastBatchSize = 0\n      }\n\n      if (options?.propagateError) {\n        throw err\n      }\n    } finally {\n      if (currentToken === fetchToken) {\n        fetchLoading = false\n        loadingMore = false\n      }\n    }\n  }\n\n  let scheduledFetchResolve: (() => void) | null = null\n  let explicitRefreshPromise: Promise<void> | null = null\n\n  const clearScheduledFetch = () => {\n    if (filterTimer) {\n      clearTimeout(filterTimer)\n      filterTimer = null\n    }\n\n    scheduledFetchResolve?.()\n    scheduledFetchResolve = null\n  }\n\n  const scheduleFetch = (\n    reset: boolean,\n    options?: { force?: boolean; propagateError?: boolean },\n  ): Promise<void> => {\n    if (!hasMounted || !autoLoad) return Promise.resolve()\n\n    clearScheduledFetch()\n    const delay = Math.max(0, fetchDebounceMs ?? 0)\n\n    return new Promise<void>((resolve, reject) => {\n      scheduledFetchResolve = resolve\n      const handler = () => {\n        const pendingExplicitRefresh = explicitRefreshPromise\n        filterTimer = null\n        scheduledFetchResolve = null\n        void Promise.resolve()\n          .then(async () => {\n            if (pendingExplicitRefresh) {\n              await pendingExplicitRefresh.catch(() => {})\n            }\n\n            await runFetch(reset, options)\n          })\n          .then(resolve, reject)\n      }\n      filterTimer = setTimeout(handler, delay)\n    })\n  }\n\n  const refreshNow = (): Promise<void> => {\n    if (!hasMounted || !autoLoad) return Promise.resolve()\n\n    clearScheduledFetch()\n\n    if (explicitRefreshPromise) return explicitRefreshPromise\n\n    explicitRefreshPromise = runFetch(true, { force: true, propagateError: true }).finally(() => {\n      explicitRefreshPromise = null\n    })\n\n    return explicitRefreshPromise\n  }\n\n  const serializeInvalidationTargets = (targets: InvalidationTarget[] | null | undefined) =>\n    JSON.stringify((targets ?? []).map((target) => [target.topic, target.scope ?? null]))\n\n  const clearInvalidationHandlers = () => {\n    unregisterInvalidationHandlers.forEach((unregister) => unregister())\n    unregisterInvalidationHandlers = []\n  }\n\n  const registerInvalidationTargets = () => {\n    clearInvalidationHandlers()\n    unregisterInvalidationHandlers = (invalidationTargets ?? []).map((target) =>\n      registerInvalidationHandler(target, refreshNow),\n    )\n  }\n\n  const loadMore = () => {\n    if (loading || loadingMore || !hasMore) return\n\n    void runFetch(false)\n  }\n\n  const normalizeSelectionIds = (ids: unknown): string[] =>\n    Array.from(new Set((Array.isArray(ids) ? ids : []).map((id) => `${id}`).filter(Boolean)))\n\n  const resolveSelectionIds = (ids?: string[] | null): string[] =>\n    normalizeSelectionIds(Array.isArray(ids) ? ids : selectedIds)\n\n  const buildSelectionChangeDetail = (ids?: string[] | null): TableSelectionChangeDetail => {\n    const resolvedIds = resolveSelectionIds(ids)\n    const selectedIdSet = new Set(resolvedIds)\n    const visibleSelectedRows = dataRows.filter((row, rowIndex) =>\n      selectedIdSet.has(selectionIdForRow(row, rowIndex)),\n    )\n\n    return {\n      selectedRows: visibleSelectedRows,\n      selectedCount: resolvedIds.length,\n      selectedIds: resolvedIds,\n      clearSelection,\n      selectAllVisible,\n    }\n  }\n\n  const emitSelectionChange = (ids?: string[] | null) => {\n    if (!enableSelection) return\n\n    if (!onSelectionChange && !onSelectedIdsChange) return\n\n    const detail = buildSelectionChangeDetail(ids)\n    onSelectionChange?.(detail)\n    onSelectedIdsChange?.(detail)\n  }\n\n  const clearSelection = () => {\n    if (!selectedIds.length) return\n\n    if (!controlledSelection) {\n      selectedRowKeys = []\n    }\n\n    emitSelectionChange([])\n  }\n\n  const toggleRowSelection = (row: DataRow) => {\n    if (!enableSelection) return\n\n    const rowIndex = rowIndexByKey.get(keyForRow(row)) ?? -1\n\n    if (rowIndex >= 0 && !rowIsSelectable(row, rowIndex)) return\n\n    const key = keyForRow(row)\n    const id = selectionIdForRow(row, rowIndex >= 0 ? rowIndex : undefined)\n\n    if (controlledSelection) {\n      const nextIds = controlledSelectionIdSet.has(id)\n        ? selectedIds.filter((entry) => entry !== id)\n        : Array.from(new Set([...selectedIds, id]))\n      emitSelectionChange(nextIds)\n\n      return\n    }\n\n    selectedRowKeys = selectedRowKeySet.has(key)\n      ? selectedRowKeys.filter((entry) => entry !== key)\n      : [...selectedRowKeys, key]\n    const nextIds = selectedRowKeys.filter((id) => rowByKey.has(id))\n    emitSelectionChange(nextIds)\n  }\n\n  const selectAllVisible = () => {\n    if (!enableSelection) return\n\n    const selectableRows = dataRows.filter((row, rowIndex) => rowIsSelectable(row, rowIndex))\n    const visibleIds = selectableRows.map(keyForRow)\n    const visibleIdSet = new Set(visibleIds)\n\n    if (!visibleIds.length) return\n\n    if (controlledSelection) {\n      const nextIds = allVisibleSelected\n        ? selectedIds.filter((entry) => !visibleIdSet.has(entry))\n        : Array.from(new Set([...selectedIds, ...visibleIds]))\n      emitSelectionChange(nextIds)\n\n      return\n    }\n\n    selectedRowKeys = allVisibleSelected\n      ? selectedRowKeys.filter((id) => !visibleIdSet.has(id))\n      : Array.from(new Set([...selectedRowKeys, ...visibleIds]))\n    emitSelectionChange(selectedRowKeys.filter((id) => rowByKey.has(id)))\n  }\n\n  const updateRowsLocally: TableRowsUpdater = (updateRows, options = {}) => {\n    const nextRows = updateRows(dataRows)\n\n    if (!Array.isArray(nextRows)) return\n\n    dataRows = validateRows(nextRows)\n\n    if (\"total\" in options) {\n      totalRows =\n        typeof options.total === \"function\" ? options.total(totalRows) : (options.total ?? null)\n    }\n\n    const nextVisibleKeys = new Set(dataRows.map((row, rowIndex) => keyForRow(row)))\n    const nextSelectedRowKeys = selectedRowKeys.filter(\n      (key) => nextVisibleKeys.has(key) && selectableRowKeySet.has(key),\n    )\n\n    if (nextSelectedRowKeys.length !== selectedRowKeys.length) {\n      selectedRowKeys = nextSelectedRowKeys\n    }\n\n    emitSelectionChange()\n    onRowsLoaded?.({\n      rows: dataRows,\n      total: totalRows,\n    })\n  }\n\n  onMount(() => {\n    hasMounted = true\n\n    if (setRefreshFunction) setRefreshFunction(refreshNow)\n\n    if (setRowsUpdater) setRowsUpdater(updateRowsLocally)\n\n    if (sortStateId) {\n      sortState = readSortStateFromUrl(sortStateId, columns)\n    } else {\n      sortState = null\n    }\n\n    lastExternalFiltersSignature = serializeExternalFilters(externalFilters)\n\n    if (autoLoad) {\n      void runFetch(true)\n    }\n\n    lastInvalidationTargetsSignature = serializeInvalidationTargets(invalidationTargets)\n    registerInvalidationTargets()\n\n    if (defaultMode) {\n      storedViewMode = defaultMode\n    } else {\n      const stored = readStoredViewMode()\n\n      if (stored) {\n        storedViewMode = stored\n      }\n    }\n\n    return () => {\n      hasMounted = false\n      fetchToken += 1\n      clearScheduledFetch()\n      clearInvalidationHandlers()\n    }\n  })\n\n  // effect-ok: prop-bridge - parent-owned invalidation targets can change with organization/scope.\n  $effect(() => {\n    const signature = serializeInvalidationTargets(invalidationTargets)\n\n    if (!hasMounted) {\n      lastInvalidationTargetsSignature = signature\n\n      return\n    }\n\n    if (signature === lastInvalidationTargetsSignature) return\n\n    lastInvalidationTargetsSignature = signature\n    registerInvalidationTargets()\n  })\n\n  // effect-ok: prop-bridge - refreshKey is a parent-owned invalidation token for the table loader.\n  $effect(() => {\n    if (!hasMounted) {\n      lastRefreshKey = refreshKey\n\n      return\n    }\n\n    if (refreshKey === lastRefreshKey) return\n\n    lastRefreshKey = refreshKey\n    scheduleFetch(true, { force: true })\n  })\n\n  // effect-ok: prop-bridge - filter definitions can change when owners swap table configuration.\n  $effect(() => {\n    const signature = filtersSignature\n\n    if (signature === lastFiltersSignature) return\n\n    lastFiltersSignature = signature\n    filterValues = buildInitialFilterValues(filters, {\n      ...filterValues,\n      ...readFilterStateFromUrl(sortStateId, filters),\n    })\n    filterResetRevision += 1\n\n    if (hasMounted) {\n      scheduleFetch(true, { force: true })\n    }\n  })\n\n  // effect-ok: prop-bridge - external filter objects are parent-owned and may change outside Table controls.\n  $effect(() => {\n    const signature = serializeExternalFilters(externalFilters)\n\n    if (!hasMounted) {\n      lastExternalFiltersSignature = signature\n\n      return\n    }\n\n    if (signature === lastExternalFiltersSignature) return\n\n    lastExternalFiltersSignature = signature\n    scheduleFetch(true)\n  })\n\n  // ===== Card-Spalten / Primary Column =====\n\n  let primaryColumnId = $derived(columns.find((c) => c.isPrimary)?.id ?? columns[0]?.id ?? \"\")\n\n  let cardColumnsBase = $derived(\n    cardFieldIds && cardFieldIds.length\n      ? columns.filter((c) => cardFieldIds!.includes(c.id))\n      : columns.filter((c) => c.showInCards !== false),\n  )\n\n  let cardColumns = $derived(\n    typeof maxCardFields === \"number\" ? cardColumnsBase.slice(0, maxCardFields) : cardColumnsBase,\n  )\n  const isScrollTableMode = $derived(activeMode === \"table-scroll\")\n\n  const handleHorizontalOverflowChange = (nextHasHorizontalOverflow: boolean) => {\n    if (nextHasHorizontalOverflow === hasHorizontalOverflow) return\n\n    hasHorizontalOverflow = nextHasHorizontalOverflow\n  }\n\n  const handleModeToggle = (nextMode: ViewMode) => {\n    if (nextMode === activeMode) return\n\n    activeMode = nextMode\n    storedViewMode = nextMode\n    persistViewMode(nextMode)\n    onModeChange?.(nextMode)\n  }\n\n  function handleRowClick(row: DataRow) {\n    const rowIndex = rowIndexByKey.get(keyForRow(row)) ?? -1\n\n    if (!canActivateRow(row, rowIndex)) return\n\n    if (onRowClick) {\n      onRowClick(row)\n\n      return\n    }\n\n    const primary = actionsForRow(row).primary\n\n    if (primary) void actionState.run(row, rowIndex, primary)\n  }\n\n  function handlePrimaryAction(row: DataRow) {\n    const rowIndex = rowIndexByKey.get(keyForRow(row)) ?? -1\n\n    if (rowIndex >= 0 && rowIsDisabled(row, rowIndex)) return\n\n    onPrimaryAction?.(row)\n  }\n</script>\n\n{#snippet viewToggleSnippet()}\n  <ToggleCTA\n    options={viewToggleOptions}\n    value={activeMode}\n    darkMode={theme === \"dark\"}\n    onChange={(value) => handleModeToggle(value as ViewMode)}\n  />\n{/snippet}\n\n{#if effectiveTitleRow}\n  {#if hasTitleButtons}\n    <SectionTitle\n      title={titleRowContent}\n      subtitle={effectiveTitleRow.subtitle}\n      description={effectiveTitleRow.description}\n      brightBackground={effectiveTitleRow.brightBackground}\n      small={effectiveTitleRow.small}\n      style={effectiveTitleRow.style}\n      styleOuter=\"margin-bottom: 1.2rem; {effectiveTitleRow.styleOuter}\"\n      helpModalTextId={effectiveTitleRow.helpModalTextId}\n      helpModalContext={effectiveTitleRow.helpModalContext}\n      helpModalFallback={effectiveTitleRow.helpModalFallback ?? undefined}\n      helpModalTooltip={effectiveTitleRow.helpModalTooltip}\n    >\n      {#snippet buttonSnippet()}\n        <div class=\"section-title-button\">\n          {#if effectiveTitleRow.buttonSnippet}\n            {@render effectiveTitleRow.buttonSnippet?.()}\n          {/if}\n          {#if hasInlineViewToggle}\n            {@render viewToggleSnippet()}\n          {/if}\n        </div>\n      {/snippet}\n    </SectionTitle>\n  {:else}\n    <SectionTitle\n      title={titleRowContent}\n      subtitle={effectiveTitleRow.subtitle}\n      description={effectiveTitleRow.description}\n      brightBackground={effectiveTitleRow.brightBackground}\n      small={effectiveTitleRow.small}\n      style={effectiveTitleRow.style}\n      styleOuter={effectiveTitleRow.styleOuter}\n      helpModalTextId={effectiveTitleRow.helpModalTextId}\n      helpModalContext={effectiveTitleRow.helpModalContext}\n      helpModalFallback={effectiveTitleRow.helpModalFallback ?? undefined}\n      helpModalTooltip={effectiveTitleRow.helpModalTooltip}\n    />\n  {/if}\n{/if}\n<div class=\"data-table\" data-theme={theme} data-mode={activeMode} data-loading={loading}>\n  {#if hasControlBar}\n    <TableFilters\n      {filters}\n      {filterValues}\n      resetRevision={filterResetRevision}\n      {theme}\n      onFilterCommit={updateFilterValue}\n    />\n  {/if}\n\n  {#if afterFilters}\n    <div class=\"table-after-filters\">\n      {@render afterFilters()}\n    </div>\n  {/if}\n\n  {#if enableSelection && selectedCount > 0}\n    {#if batchActions}\n      <div\n        class:table-batch-actions--custom={!showBatchActionCount}\n        class=\"table-batch-actions\"\n        data-surface-tone={resolvedBatchActionsSurfaceTone}\n        data-testid=\"table.batchActions\"\n      >\n        {#if showBatchActionCount}\n          <span class=\"table-batch-actions__count\"\n            >{numberFormatter.format(selectedCount)} ausgewählt</span\n          >\n        {/if}\n        <div\n          class:table-batch-actions__buttons--full={!showBatchActionCount}\n          class=\"table-batch-actions__buttons\"\n        >\n          {@render batchActions({\n            selectedRows,\n            selectedCount,\n            selectedIds,\n            clearSelection,\n            selectAllVisible,\n          })}\n        </div>\n      </div>\n    {:else if selectionBar}\n      <div class=\"table-selection-bar\">\n        {@render selectionBar({\n          selectedRows,\n          selectedCount,\n          selectedIds,\n          clearSelection,\n          selectAllVisible,\n        })}\n      </div>\n    {/if}\n  {/if}\n\n  <!-- ================== TABELLE (mit Spalten-Chevrons) ================== -->\n  {#if !showCards}\n    <div class=\"table-view\">\n      <TableView\n        bind:requestedPins={columnPins}\n        {columns}\n        {getRowId}\n        virtualize={!printing}\n        rows={dataRows}\n        darkMode={theme === \"dark\"}\n        columnNavigationMode={isScrollTableMode ? \"scroll\" : \"click\"}\n        onHorizontalOverflowChange={handleHorizontalOverflowChange}\n        showActions={effectiveShowActions}\n        {actionsHeaderLabel}\n        {enableSelection}\n        selectionSurfaceTone=\"light\"\n        selectedRowKeys={selectedRowKeySet}\n        {allVisibleSelected}\n        {someVisibleSelected}\n        onToggleRowSelection={toggleRowSelection}\n        onToggleSelectAll={selectAllVisible}\n        {empty}\n        {tableCell}\n        rowActions={actionsForRow}\n        {actionsWidth}\n        {rowControls}\n        {loading}\n        {loadingMore}\n        {loadingRowCount}\n        sort={effectiveSort}\n        onSortToggle={toggleColumnSort}\n        onRowClick={onRowClick || rowActions ? handleRowClick : undefined}\n        {canActivateRow}\n        {rowTestId}\n        {cellTestId}\n        {getRowState}\n        {stickyHeaderTop}\n      />\n    </div>\n\n    <!-- ================== KACHELN (mit vertikalem Carousel) ================== -->\n  {:else}\n    <div class=\"card-view\">\n      <CardView\n        {getRowId}\n        rows={dataRows}\n        darkMode={theme === \"dark\"}\n        {cardColumns}\n        {primaryColumnId}\n        {empty}\n        showActions={effectiveShowActions}\n        rowActions={actionsForRow}\n        {rowControls}\n        {cardTitle}\n        {cardSubtitle}\n        {cardField}\n        {cardCta}\n        {showPrimaryButton}\n        {primaryButtonLabel}\n        {loading}\n        onPrimaryAction={handlePrimaryAction}\n        {getRowState}\n        {cardPageSize}\n      />\n    </div>\n  {/if}\n\n  {#if hasMore}\n    <div class=\"table-footer\">\n      <CTA\n        type=\"primaryButton\"\n        content={loadingMore ? \"Lädt...\" : \"Mehr laden\"}\n        onClick={loadMore}\n        disabled={loadingMore}\n      >\n        {#snippet iconSnippet()}\n          <Icon path={mdiPlus} />\n        {/snippet}\n      </CTA>\n    </div>\n  {/if}\n\n  {#if fetchError}\n    <div class=\"table-error\">{fetchError}</div>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  /* Compact fields belong to table cells; filters and surrounding forms keep their spacing.\n     Selects copy these variables into their portaled option lists. */\n  .data-table :global(td) {\n    --kw-field-inline-padding: 0px;\n    --kw-select-list-padding-inline: 0px;\n    --kw-select-list-scrollbar-gutter: auto;\n  }\n\n  .data-table :global(td .svelte-select) {\n    --padding: 4px 0 !important;\n    --selected-item-padding: 0 !important;\n    --item-padding: 0 !important;\n    --group-item-padding-left: 0px;\n    --group-title-padding: 0;\n  }\n\n  .data-table :global(td .svelte-select .selected-item),\n  .data-table :global(td .svelte-select span.smallVersion),\n  .data-table :global(td label > input),\n  .data-table :global(td label > textarea),\n  .data-table :global(td label > select),\n  .data-table :global(td .date-input) {\n    padding-inline: 0 !important;\n  }\n\n  .data-table :global(td .svelte-select .value-container) {\n    margin-right: 0;\n  }\n\n  .section-title-button {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n  }\n\n  @media (max-width: 600px) {\n    .section-title-button {\n      width: 100%;\n      justify-content: flex-start;\n    }\n  }\n\n  .data-table {\n    /* interne Variablen (bauen auf deinen CSS-Variablen auf) */\n    --dt-radius: 6px;\n    --dt-border-subtle-dark: rgba(255, 255, 255, 0.06);\n    --dt-border-subtle-light: rgba(0, 0, 0, 0.06);\n\n    /* gemeinsame Farben aus deinen Vars */\n    --dt-accent: var(--primary-100, #741e20);\n    --dt-accent-soft: var(--primary-200, #ad514c);\n\n    &[data-theme=\"dark\"] {\n      --dt-bg-main: var(--bg-100, #0d0c0c);\n      --dt-bg-elevated: var(--bg-200, #332d2c);\n      --dt-bg-elevated-soft: #26201f;\n      --dt-border-subtle: var(--dt-border-subtle-dark);\n      --dt-text-main: var(--text-100, #f3eed9);\n      --dt-text-muted: var(--text-300, #625755);\n      --dt-text-soft: var(--text-200, #d1e7e0);\n      --dt-selection-checkbox-border: var(--text-100, #f3eed9);\n      --dt-selection-checkbox-check: #ffffff;\n    }\n\n    &[data-theme=\"light\"] {\n      --dt-bg-main: var(--neutral-white, #ffffff);\n      --dt-bg-elevated: var(--bg-300, #eceaea);\n      --dt-bg-elevated-soft: #f8f6f6;\n      --dt-border-subtle: var(--dt-border-subtle-light);\n      --dt-text-main: var(--text-invers-100, #2f4858);\n      --dt-text-muted: var(--text-invers-150, #6d97b0);\n      --dt-text-soft: var(--text-invers-200, #741e20);\n      --dt-selection-count-text: var(--text-invers-100, #2f4858);\n      --dt-selection-checkbox-border: var(--text-invers-100, #2f4858);\n      --dt-selection-checkbox-check: var(--dt-text-main);\n    }\n\n    color: var(--dt-text-main);\n    font-size: 0.85rem;\n    line-height: 1.4;\n    width: 100%;\n    min-width: 0;\n    max-width: 100%;\n\n    .table-view,\n    .card-view {\n      display: block;\n      min-width: 0;\n      width: 100%;\n      max-width: 100%;\n    }\n  }\n\n  .table-after-filters {\n    width: 100%;\n    margin: 0.75rem 0;\n  }\n\n  .table-footer {\n    margin-top: 0.75rem;\n    display: flex;\n    justify-content: center;\n  }\n\n  .table-batch-actions {\n    margin-bottom: 0.75rem;\n    padding: 0.75rem 0.9rem;\n    border: 1px solid var(--bg-100);\n    background: transparent;\n    border-radius: 0;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 1rem;\n    flex-wrap: wrap;\n  }\n\n  .table-batch-actions--custom {\n    padding: 0;\n    border: 0;\n  }\n\n  .table-batch-actions[data-surface-tone=\"dark\"] {\n    --dt-selection-count-text: var(--neutral-white, #ffffff);\n    border-color: var(--neutral-white, #ffffff);\n    color: var(--neutral-white, #ffffff);\n  }\n\n  .table-batch-actions__count {\n    color: var(--dt-selection-count-text, var(--dt-text-main));\n    font-weight: 700;\n  }\n\n  .table-batch-actions__buttons {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 0.6rem;\n    flex-wrap: wrap;\n  }\n\n  .table-batch-actions__buttons--full {\n    width: 100%;\n    justify-content: stretch;\n  }\n\n  .table-selection-bar {\n    margin-bottom: 0.75rem;\n    padding: 0.75rem 0.9rem;\n    border-radius: var(--dt-radius);\n    border: 1px solid var(--dt-border-subtle);\n    background: var(--dt-bg-elevated-soft);\n  }\n\n  .table-error {\n    margin-top: 0.5rem;\n    padding: 0.65rem 0.75rem;\n    border-radius: var(--dt-radius);\n    border: 1px solid rgba(255, 99, 99, 0.4);\n    color: #ff9b9b;\n    background: rgba(255, 99, 99, 0.05);\n  }\n\n  /* Seitenformat für den Druck auf Querformat setzen */\n  @page {\n    size: landscape;\n  }\n\n  /* Beim Drucken nur die Tabelle sichtbar lassen */\n  @media print {\n    :global(html),\n    :global(body) {\n      margin: 0 !important;\n      padding: 0 !important;\n    }\n\n    :global(.data-table) {\n      /* In Print führt `position: fixed` bei langen Tabellen in Chrome oft zu\n               abgeschnittenen Zeilen und doppelten/überlappenden Seiteninhalten. */\n      position: static !important;\n      width: 100% !important;\n      margin: 0 !important;\n      padding: 0 !important;\n    }\n\n    /* Fallback (Browser ohne :has()) */\n    :global(body *) {\n      visibility: hidden !important;\n    }\n\n    :global(.data-table),\n    :global(.data-table *) {\n      visibility: visible !important;\n    }\n\n    /* Preferred: Collapse layout space, keep only the .data-table subtree.\n           This avoids huge blank areas caused by `visibility: hidden`. */\n    @supports selector(:has(*)) {\n      /* reset fallback visibility */\n      :global(body *) {\n        visibility: visible !important;\n      }\n\n      :global(body *:not(:has(.data-table)):not(.data-table):not(.data-table *)) {\n        display: none !important;\n      }\n\n      /* common app layout wrappers: expand to full page width */\n      :global(.page-template__layout) {\n        grid-template-columns: 1fr !important;\n        gap: 0 !important;\n      }\n\n      :global(.kw-crinkled-section__wrapper) {\n        padding-top: 0 !important;\n        padding-bottom: 0 !important;\n      }\n\n      :global(.kw-crinkled-section__wrapper-content) {\n        width: 100% !important;\n        max-width: none !important;\n        margin-left: 0 !important;\n        margin-right: 0 !important;\n      }\n    }\n  }\n</style>\n","import { type ContextServiceTarget } from \"@kontextwerk/control-web-client\"\nimport { get } from \"svelte/store\"\nimport { captureControlContext, controlContext } from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\nimport { indexContextClient } from \"../control-api\"\nimport {\n  normalizeApiError,\n  parseApiErrorResponse,\n  type ApiFieldError,\n  type NormalizedApiError,\n} from \"@kontextwerk/web-sdk/core/api/errors\"\n\nimport {\n  ANSWER_LIBRARY_MANAGER_ORIGIN,\n  INDEX_SERVER_ORIGIN,\n  MINIO_SYNCER_ORIGIN,\n  SCRAPING_ORCHESTRATOR_ORIGIN,\n  SHAREPOINT_SYNCER_ORIGIN,\n} from \"../runtime-config\"\n\nexport type IndexAdminApiError = Error & {\n  statusCode?: number\n  statusText?: string\n  reasonCode?: string\n  requestId?: string\n  fieldErrors?: ApiFieldError[]\n  detail?: unknown\n  responseText?: string\n  raw?: unknown\n}\n\nexport const toErrorMessage = (error: unknown, fallback?: string): string =>\n  normalizeApiError(error, { fallback }).message\n\ntype ServiceScope = {\n  organizationId?: string | null\n  projectId?: string | null\n}\n\ntype ServiceFetchInit = RequestInit & {\n  serviceScope?: ServiceScope\n}\n\nexport const readResponseError = async (response: Response): Promise<NormalizedApiError> =>\n  parseApiErrorResponse(response)\n\nexport const readResponseErrorMessage = async (response: Response): Promise<string> =>\n  (await readResponseError(response)).message\n\nexport const buildResponseError = async (\n  response: Response,\n  fallback?: string,\n): Promise<IndexAdminApiError> => {\n  const parsed = await readResponseError(response)\n  const message = fallback ? `${fallback}: ${parsed.message}` : parsed.message\n  const error = new Error(message) as IndexAdminApiError\n  error.statusCode = parsed.statusCode\n  error.statusText = parsed.statusText\n  error.reasonCode = parsed.reasonCode\n  error.requestId = parsed.requestId\n  error.fieldErrors = parsed.fieldErrors\n  error.detail = parsed.detail\n  error.responseText = parsed.responseText\n  error.raw = parsed.raw\n\n  return error\n}\n\nexport const throwResponseError = async (response: Response, fallback?: string): Promise<never> => {\n  throw await buildResponseError(response, fallback)\n}\n\nconst SERVICE_TARGETS: Array<{ origin: string; targetService: ContextServiceTarget }> = [\n  { origin: INDEX_SERVER_ORIGIN, targetService: \"kontext-kern-index-server\" },\n  { origin: MINIO_SYNCER_ORIGIN, targetService: \"kontext-minio-syncer\" },\n  { origin: SHAREPOINT_SYNCER_ORIGIN, targetService: \"sharepoint-syncer\" },\n  { origin: ANSWER_LIBRARY_MANAGER_ORIGIN, targetService: \"answer-library-manager\" },\n  { origin: SCRAPING_ORCHESTRATOR_ORIGIN, targetService: \"scraping-orchestrator\" },\n]\n\nconst normalizeOrigin = (value: string): string => new URL(value).origin\n\nconst resolveRequestUrl = (input: RequestInfo | URL): URL | null => {\n  try {\n    if (typeof input === \"string\") {\n      return new URL(input, typeof window !== \"undefined\" ? window.location.href : undefined)\n    }\n\n    if (input instanceof URL) return input\n\n    return new URL(input.url)\n  } catch {\n    return null\n  }\n}\n\nconst resolveServiceTarget = (\n  input: RequestInfo | URL,\n): { targetOrigin: string; targetService: ContextServiceTarget } | null => {\n  const requestUrl = resolveRequestUrl(input)\n\n  if (!requestUrl) return null\n\n  const origin = requestUrl.origin\n  for (const candidate of SERVICE_TARGETS) {\n    if (normalizeOrigin(candidate.origin) === origin) {\n      return { targetOrigin: origin, targetService: candidate.targetService }\n    }\n  }\n\n  return null\n}\n\nconst readJsonScope = (body: BodyInit | null | undefined): Record<string, unknown> => {\n  if (typeof body !== \"string\" || !body.trim().startsWith(\"{\")) return {}\n\n  try {\n    const parsed = JSON.parse(body)\n\n    return parsed && typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {}\n  } catch {\n    return {}\n  }\n}\n\nconst normalizeScopeValue = (value: unknown): string | null =>\n  typeof value === \"string\" && value.trim() ? value.trim() : null\n\nconst resolveScope = (\n  input: RequestInfo | URL,\n  init: ServiceFetchInit,\n): { organizationId?: string; projectId?: string } => {\n  const requestUrl = resolveRequestUrl(input)\n  const body = readJsonScope(init.body)\n\n  return {\n    organizationId:\n      normalizeScopeValue(init.serviceScope?.organizationId) ??\n      normalizeScopeValue(requestUrl?.searchParams.get(\"organization_id\")) ??\n      normalizeScopeValue(body.organization_id) ??\n      normalizeScopeValue(body.organizationId) ??\n      undefined,\n    projectId:\n      normalizeScopeValue(init.serviceScope?.projectId) ??\n      normalizeScopeValue(requestUrl?.searchParams.get(\"project_id\")) ??\n      normalizeScopeValue(body.project_id) ??\n      normalizeScopeValue(body.projectId) ??\n      undefined,\n  }\n}\n\nconst isSafeMethod = (method: string | undefined): boolean =>\n  !method || [\"GET\", \"HEAD\", \"OPTIONS\", \"TRACE\"].includes(method.toUpperCase())\n\nexport const fetchService = async (\n  input: RequestInfo | URL,\n  init: ServiceFetchInit = {},\n): Promise<Response> => {\n  const { serviceScope: _serviceScope, ...requestInit } = init\n  const requestMethod =\n    requestInit.method ??\n    (typeof Request !== \"undefined\" && input instanceof Request ? input.method : undefined)\n  const serviceTarget = resolveServiceTarget(input)\n\n  if (serviceTarget) {\n    const scope = resolveScope(input, init)\n    const context = get(controlContext)\n    const capture = captureControlContext()\n    const url = resolveRequestUrl(input)\n\n    if (!context || !capture || !url)\n      throw new DOMException(\"Confirmed service context required\", \"InvalidStateError\")\n\n    if (\n      scope.organizationId &&\n      context.session.context.kind === \"organization\" &&\n      context.organizationId !== scope.organizationId\n    )\n      throw new DOMException(\"Foreign service organization\", \"SecurityError\")\n\n    const inherited = typeof Request !== \"undefined\" && input instanceof Request ? input : null\n    const callerSignal = requestInit.signal ?? inherited?.signal\n\n    if (callerSignal?.aborted) throw new DOMException(\"Request aborted\", \"AbortError\")\n\n    const signal = callerSignal ? AbortSignal.any([capture.signal, callerSignal]) : capture.signal\n    const body =\n      requestInit.body ??\n      (inherited && !isSafeMethod(requestMethod) ? await inherited.clone().blob() : undefined)\n\n    return indexContextClient.services.run(\n      {\n        session: context.session,\n        destination: {\n          target_service: serviceTarget.targetService,\n          target_origin: serviceTarget.targetOrigin,\n          ...(context.session.context.kind === \"organization\"\n            ? { project_id: scope.projectId ?? null }\n            : {}),\n        },\n        capture: { ...capture, signal },\n      },\n      async (request) => {\n        const response = await request(`${url.pathname}${url.search}`, {\n          method: requestMethod,\n          headers: requestInit.headers ?? inherited?.headers,\n          body,\n          cache: requestInit.cache,\n        })\n        // Keep the body read under the captured context and cookie lock as well.\n        // An ArrayBuffer is realm-neutral; a Blob from another realm is not a body for this Response.\n        const content =\n          response.status === 204 || response.status === 205 ? null : await response.arrayBuffer()\n\n        return new Response(content, {\n          status: response.status,\n          statusText: response.statusText,\n          headers: response.headers,\n        })\n      },\n    )\n  }\n\n  throw new DOMException(\"Unknown Index service origin\", \"SecurityError\")\n}\n","export type SyncJobStatus = \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"skipped\" | \"cancelled\"\n\nexport type SyncJobRecord = {\n  id: string\n  organizationId: string | null\n  projectId: string | null\n  realizationId: string | null\n  scope: string | null\n  parentEntityId: string | null\n  parentEntityLabel: string | null\n  resourceKind: string\n  resourceKey: string\n  resourceLabel: string\n  operation: string\n  trigger: string\n  status: SyncJobStatus\n  attempt: number\n  startedAt: string | null\n  finishedAt: string | null\n  nextRetryAt: string | null\n  error: string | null\n  createdAt: string\n}\n\nexport type SyncJobListResponse = {\n  items: SyncJobRecord[]\n  total: number\n}\n\nexport type SyncJobApiRecord = {\n  id: string\n  organization_id?: string | null\n  organizationId?: string | null\n  project_id?: string | null\n  projectId?: string | null\n  realization_id?: string | null\n  realizationId?: string | null\n  scope?: string | null\n  parent_entity_id?: string | null\n  parentEntityId?: string | null\n  parent_entity_label?: string | null\n  parentEntityLabel?: string | null\n  resource_kind: string\n  resource_key: string\n  resource_label: string\n  operation: string\n  trigger: string\n  status: SyncJobStatus\n  attempt?: number\n  started_at?: string | null\n  startedAt?: string | null\n  finished_at?: string | null\n  finishedAt?: string | null\n  next_retry_at?: string | null\n  nextRetryAt?: string | null\n  error?: string | null\n  created_at?: string\n  createdAt?: string\n}\n\nexport type SyncJobListApiResponse = {\n  items?: SyncJobApiRecord[]\n  total?: number\n}\n\nexport const normalizeSyncJob = (item: SyncJobApiRecord): SyncJobRecord => ({\n  id: item.id,\n  organizationId: item.organization_id ?? item.organizationId ?? null,\n  projectId: item.project_id ?? item.projectId ?? null,\n  realizationId: item.realization_id ?? item.realizationId ?? null,\n  scope: item.scope ?? null,\n  parentEntityId: item.parent_entity_id ?? item.parentEntityId ?? null,\n  parentEntityLabel: item.parent_entity_label ?? item.parentEntityLabel ?? null,\n  resourceKind: item.resource_kind,\n  resourceKey: item.resource_key,\n  resourceLabel: item.resource_label,\n  operation: item.operation,\n  trigger: item.trigger,\n  status: item.status,\n  attempt: Number(item.attempt ?? 0),\n  startedAt: item.started_at ?? item.startedAt ?? null,\n  finishedAt: item.finished_at ?? item.finishedAt ?? null,\n  nextRetryAt: item.next_retry_at ?? item.nextRetryAt ?? null,\n  error: item.error ?? null,\n  createdAt: item.created_at ?? item.createdAt ?? \"\",\n})\n","import { MINIO_SYNCER_API_URL, buildServiceHeaders } from \"../runtime-config\"\nimport { fetchService, throwResponseError, toErrorMessage } from \"../index-api-transport\"\nimport type { SyncJobListApiResponse, SyncJobListResponse } from \"../sync-jobs\"\nimport { normalizeSyncJob } from \"../sync-jobs\"\n\nconst buildQueryString = (\n  entries: Array<[string, string | number | boolean | null | undefined]>,\n): string => {\n  const params = entries\n    .map(([key, value]) => {\n      if (value === undefined || value === null) return null\n\n      return [key, String(value)] as [string, string]\n    })\n    .filter(Boolean) as Array<[string, string]>\n\n  if (!params.length) return \"\"\n\n  const query = new URLSearchParams(params)\n  const rendered = query.toString()\n\n  return rendered ? `?${rendered}` : \"\"\n}\n\nexport type BucketCredentialResponse = {\n  bucket: string\n  s3Endpoint: string\n  publicUrl: string\n  region: string\n  secure: boolean\n  forcePathStyle: boolean\n  accessKey: string\n  secretKey: string\n  sessionToken?: string | null\n  issuedAt: string\n  expiresAt: string\n}\n\nexport type FileCollectionScope = \"organization\" | \"project\" | \"realization\" | \"global\"\n\nexport type FileCollectionRecord = {\n  id: string\n  organizationId: string | null\n  label: string\n  scope: FileCollectionScope\n  projectId: string | null\n  realizationId: string | null\n  bucket: string\n  fileCount: number\n  indexedFileCount: number\n  createdAt: string\n  updatedAt: string\n}\n\nexport type FileCollectionWritePayload = {\n  label: string\n  scope: FileCollectionScope\n  organizationId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n}\n\ntype BucketCredentialApiResponse = {\n  bucket: string\n  s3_endpoint: string\n  public_url: string\n  region: string\n  secure: boolean\n  force_path_style: boolean\n  access_key: string\n  secret_key: string\n  session_token?: string | null\n  issued_at: string\n  expires_at: string\n}\n\ntype FileCollectionApiRecord = {\n  id: string\n  organization_id?: string | null\n  organizationId?: string | null\n  label: string\n  scope: FileCollectionScope\n  project_id?: string | null\n  projectId?: string | null\n  realization_id?: string | null\n  realizationId?: string | null\n  bucket: string\n  file_count?: number\n  fileCount?: number\n  indexed_file_count?: number\n  indexedFileCount?: number\n  created_at: string\n  createdAt?: string\n  updated_at: string\n  updatedAt?: string\n}\n\ntype FileCollectionListApiResponse = {\n  items?: FileCollectionApiRecord[]\n}\n\nconst normalizeBucketCredentialResponse = (\n  payload: BucketCredentialApiResponse,\n): BucketCredentialResponse => ({\n  bucket: payload.bucket,\n  s3Endpoint: payload.s3_endpoint,\n  publicUrl: payload.public_url,\n  region: payload.region,\n  secure: payload.secure,\n  forcePathStyle: payload.force_path_style,\n  accessKey: payload.access_key,\n  secretKey: payload.secret_key,\n  sessionToken: payload.session_token ?? null,\n  issuedAt: payload.issued_at,\n  expiresAt: payload.expires_at,\n})\n\nconst normalizeFileCollection = (payload: FileCollectionApiRecord): FileCollectionRecord => ({\n  id: payload.id,\n  organizationId: payload.organization_id ?? payload.organizationId ?? null,\n  label: payload.label,\n  scope: payload.scope,\n  projectId: payload.project_id ?? payload.projectId ?? null,\n  realizationId: payload.realization_id ?? payload.realizationId ?? null,\n  bucket: payload.bucket,\n  fileCount: Number(payload.file_count ?? payload.fileCount ?? 0),\n  indexedFileCount: Number(payload.indexed_file_count ?? payload.indexedFileCount ?? 0),\n  createdAt: payload.created_at ?? payload.createdAt ?? \"\",\n  updatedAt: payload.updated_at ?? payload.updatedAt ?? \"\",\n})\n\nconst createFileCollectionStorageSession = async (\n  collectionId: string,\n): Promise<BucketCredentialResponse> => {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/storage-session`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dateisammlung konnte nicht geöffnet werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateisammlung konnte nicht geöffnet werden\")\n  }\n\n  return normalizeBucketCredentialResponse((await response.json()) as BucketCredentialApiResponse)\n}\n\nconst fetchFileCollectionsFrom = async (url: string): Promise<FileCollectionRecord[]> => {\n  let response: Response\n  try {\n    response = await fetchService(url, {\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`Dateisammlungen konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateisammlungen konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as FileCollectionListApiResponse\n\n  return Array.isArray(payload.items) ? payload.items.map(normalizeFileCollection) : []\n}\n\nexport async function fetchFileCollections(\n  params: {\n    organizationId?: string | null\n    realizationId?: string | null\n    scope?: FileCollectionScope | null\n  } = {},\n): Promise<FileCollectionRecord[]> {\n  const query = buildQueryString([\n    [\"organization_id\", params.organizationId ?? undefined],\n    [\"realization_id\", params.realizationId ?? undefined],\n    [\"scope\", params.scope ?? undefined],\n  ])\n\n  return fetchFileCollectionsFrom(`${MINIO_SYNCER_API_URL}/admin/file-collections${query}`)\n}\n\nexport async function fetchFileCollection(collectionId: string): Promise<FileCollectionRecord> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dateisammlung konnte nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateisammlung konnte nicht geladen werden\")\n  }\n\n  return normalizeFileCollection((await response.json()) as FileCollectionApiRecord)\n}\n\nconst writeFileCollection = async (\n  method: \"POST\" | \"PATCH\",\n  payload: FileCollectionWritePayload,\n  collectionId?: string,\n): Promise<FileCollectionRecord> => {\n  const url = collectionId\n    ? `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}`\n    : `${MINIO_SYNCER_API_URL}/admin/file-collections`\n  let response: Response\n  try {\n    response = await fetchService(url, {\n      method,\n      headers: {\n        \"Content-Type\": \"application/json\",\n        ...buildServiceHeaders(),\n      },\n      body: JSON.stringify({\n        label: payload.label,\n        scope: payload.scope,\n        organization_id: payload.organizationId ?? null,\n        project_id: payload.projectId ?? null,\n        realization_id: payload.realizationId ?? null,\n      }),\n    })\n  } catch (error) {\n    throw new Error(`Dateisammlung konnte nicht gespeichert werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateisammlung konnte nicht gespeichert werden\")\n  }\n\n  return normalizeFileCollection((await response.json()) as FileCollectionApiRecord)\n}\n\nexport async function createFileCollection(\n  payload: FileCollectionWritePayload,\n): Promise<FileCollectionRecord> {\n  return writeFileCollection(\"POST\", payload)\n}\n\nexport async function updateFileCollection(\n  collectionId: string,\n  payload: FileCollectionWritePayload,\n): Promise<FileCollectionRecord> {\n  return writeFileCollection(\"PATCH\", payload, collectionId)\n}\n\nexport async function deleteFileCollection(collectionId: string): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}`,\n      {\n        method: \"DELETE\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dateisammlung konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateisammlung konnte nicht gelöscht werden\")\n  }\n}\n\nexport async function deleteFileCollectionEntries(\n  collectionId: string,\n  ids: string[],\n): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/objects/delete`,\n      {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          ...buildServiceHeaders(),\n        },\n        body: JSON.stringify({ ids }),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dateien konnten nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Dateien konnten nicht gelöscht werden\")\n  }\n}\n\nexport type SyncObjectRecord = {\n  id: string\n  bucket: string\n  objectKey: string\n  etag?: string | null\n  size?: number | null\n  lastModified?: string | null\n  tenantId: string\n  projectId: string\n  realizationId: string | null\n  scope: string\n  operation: string\n  syncStatus: string\n  retryCount: number\n  nextSyncAt?: string | null\n  lastSyncAt?: string | null\n  lastError?: string | null\n  firstSeenAt: string\n  lastSeenAt: string\n}\n\ntype SyncObjectApiRecord = {\n  id: string\n  bucket: string\n  object_key: string\n  etag?: string | null\n  size?: number | null\n  last_modified?: string | null\n  tenant_id?: string\n  tenantId?: string\n  organization_id?: string\n  organizationId?: string\n  project_id?: string\n  projectId?: string\n  realization_id?: string | null\n  realizationId?: string | null\n  scope: string\n  operation: string\n  sync_status: string\n  retry_count: number\n  next_sync_at?: string | null\n  last_sync_at?: string | null\n  last_error?: string | null\n  first_seen_at: string\n  last_seen_at: string\n}\n\nconst normalizeSyncObject = (payload: SyncObjectApiRecord): SyncObjectRecord => ({\n  id: payload.id,\n  bucket: payload.bucket,\n  objectKey: payload.object_key,\n  etag: payload.etag ?? null,\n  size: payload.size ?? null,\n  lastModified: payload.last_modified ?? null,\n  tenantId:\n    payload.organization_id ??\n    payload.organizationId ??\n    payload.tenant_id ??\n    payload.tenantId ??\n    \"\",\n  projectId: payload.project_id ?? payload.projectId ?? \"\",\n  realizationId: payload.realization_id ?? payload.realizationId ?? null,\n  scope: payload.scope,\n  operation: payload.operation,\n  syncStatus: payload.sync_status,\n  retryCount: payload.retry_count,\n  nextSyncAt: payload.next_sync_at ?? null,\n  lastSyncAt: payload.last_sync_at ?? null,\n  lastError: payload.last_error ?? null,\n  firstSeenAt: payload.first_seen_at,\n  lastSeenAt: payload.last_seen_at,\n})\n\nexport type PaginatedSyncObjects = {\n  items: SyncObjectRecord[]\n  total: number\n}\n\nexport type FetchSyncObjectsParams = {\n  limit?: number\n  offset?: number\n  bucket?: string | null\n  statuses?: string[]\n  search?: string | null\n  active?: boolean | null\n  sortBy?: string | null\n  sortDir?: \"asc\" | \"desc\" | null\n}\n\nexport async function fetchCollectionSyncObjects(\n  collectionId: string,\n  params: FetchSyncObjectsParams = {},\n): Promise<PaginatedSyncObjects> {\n  const query = buildQueryString([\n    [\"limit\", params.limit ?? undefined],\n    [\"offset\", params.offset ?? undefined],\n    [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n    [\"search\", params.search ?? undefined],\n    [\"active\", params.active ?? undefined],\n  ])\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/sync-items${query}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Bestand konnte nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Bestand konnte nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as { items: SyncObjectApiRecord[]; total: number }\n\n  return {\n    items: payload.items.map(normalizeSyncObject),\n    total: payload.total,\n  }\n}\n\nexport const buildFileCollectionSyncStreamUrl = (collectionId: string): string =>\n  `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/sync-items/stream`\n\nexport async function fetchFileSyncJobs(\n  params: {\n    organizationId?: string | null\n    projectId?: string | null\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {},\n): Promise<SyncJobListResponse> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-sync-jobs${buildQueryString([\n        [\"organization_id\", params.organizationId ?? undefined],\n        [\"project_id\", params.projectId ?? undefined],\n        [\"limit\", params.limit ?? undefined],\n        [\"offset\", params.offset ?? undefined],\n        [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n        [\"search\", params.search ?? undefined],\n      ])}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport async function fetchFileCollectionSyncJobs(\n  collectionId: string,\n  params: {\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {},\n): Promise<SyncJobListResponse> {\n  const query = buildQueryString([\n    [\"limit\", params.limit ?? undefined],\n    [\"offset\", params.offset ?? undefined],\n    [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n    [\"search\", params.search ?? undefined],\n  ])\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/sync-jobs${query}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport const buildFileSyncJobsStreamUrl = (params: {\n  organizationId?: string | null\n  projectId?: string | null\n}): string =>\n  `${MINIO_SYNCER_API_URL}/admin/file-sync-jobs/stream${buildQueryString([\n    [\"organization_id\", params.organizationId ?? undefined],\n    [\"project_id\", params.projectId ?? undefined],\n  ])}`\n\nexport const buildFileCollectionSyncJobsStreamUrl = (collectionId: string): string =>\n  `${MINIO_SYNCER_API_URL}/admin/file-collections/${encodeURIComponent(collectionId)}/sync-jobs/stream`\n\nexport async function retrySyncObject(objectId: string): Promise<SyncObjectRecord> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${MINIO_SYNCER_API_URL}/admin/sync-items/${objectId}/actions/resync`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Retry konnte nicht eingeplant werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Retry konnte nicht eingeplant werden\")\n  }\n\n  return normalizeSyncObject((await response.json()) as SyncObjectApiRecord)\n}\n\nexport { createFileCollectionStorageSession }\n","<script lang=\"ts\">\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n\n  type ScopeValue = \"organization\" | \"project\" | \"realization\" | \"global\"\n  type SelectOption = { value: string; name: string }\n\n  interface Props {\n    scope?: ScopeValue\n    scopeOptions?: SelectOption[]\n    projectId?: string\n    projectOptions?: SelectOption[]\n    realizationRef?: string\n    realizationOptions?: SelectOption[]\n    disabled?: boolean\n    rowClass?: string\n    scopeId: string\n    projectIdField?: string\n    realizationIdField?: string\n    scopePlaceholder?: string\n    projectPlaceholder?: string\n    realizationPlaceholder?: string\n    scopeTooltip?: string\n    projectTooltip?: string\n    realizationTooltip?: string\n    onScopeChange?: (nextScope: ScopeValue) => void\n    onProjectChange?: (nextProjectId: string) => void\n    onRealizationChange?: (nextRealizationRef: string) => void\n  }\n\n  let {\n    scope = $bindable(\"organization\"),\n    scopeOptions = [],\n    projectId = $bindable(\"\"),\n    projectOptions = [],\n    realizationRef = $bindable(\"\"),\n    realizationOptions = [],\n    disabled = false,\n    rowClass = \"row many\",\n    scopeId,\n    projectIdField = \"scope-project\",\n    realizationIdField = \"scope-realization\",\n    scopePlaceholder = \"Sync-Ebene\",\n    projectPlaceholder = \"Projekt\",\n    realizationPlaceholder = \"Realisierung\",\n    scopeTooltip = undefined,\n    projectTooltip = undefined,\n    realizationTooltip = undefined,\n    onScopeChange = undefined,\n    onProjectChange = undefined,\n    onRealizationChange = undefined,\n  }: Props = $props()\n\n  const getSelectValue = (event: Event): string => {\n    const detail = (event as CustomEvent<{ value?: string } | string>).detail\n\n    if (typeof detail === \"string\") return detail\n\n    if (detail && typeof detail === \"object\" && typeof detail.value === \"string\")\n      return detail.value\n\n    const target = event.currentTarget as HTMLInputElement | HTMLSelectElement | null\n\n    return String(target?.value ?? \"\").trim()\n  }\n\n  const parseProjectId = (value: string): string => {\n    const [nextProjectId = \"\"] = String(value ?? \"\").split(\"::\", 2)\n\n    return nextProjectId.trim()\n  }\n\n  const handleScopeChange = (event: Event) => {\n    const nextScope = (getSelectValue(event) as ScopeValue) || \"organization\"\n    scope = nextScope\n    onScopeChange?.(nextScope)\n  }\n\n  const handleProjectChange = (event: Event) => {\n    const nextProjectId = getSelectValue(event)\n    projectId = nextProjectId\n    onProjectChange?.(nextProjectId)\n  }\n\n  const handleRealizationChange = (event: Event) => {\n    const nextRealizationRef = getSelectValue(event)\n    realizationRef = nextRealizationRef\n    const nextProjectId = parseProjectId(nextRealizationRef)\n\n    if (nextProjectId) {\n      projectId = nextProjectId\n    }\n\n    onRealizationChange?.(nextRealizationRef)\n  }\n</script>\n\n<div class={rowClass}>\n    <Input\n    id={scopeId}\n    placeholder={scopePlaceholder}\n    type=\"select\"\n    bind:value={scope}\n    options={scopeOptions}\n    {disabled}\n    tooltip={scopeTooltip}\n    onChange={handleScopeChange}\n  />\n\n    {#if scope === \"project\"}\n        <Input\n      id={projectIdField}\n      placeholder={projectPlaceholder}\n      type=\"select\"\n      bind:value={projectId}\n      options={projectOptions}\n      {disabled}\n      tooltip={projectTooltip}\n      onChange={handleProjectChange}\n    />\n    {:else if scope === \"realization\"}\n        <Input\n      id={realizationIdField}\n      placeholder={realizationPlaceholder}\n      type=\"select\"\n      bind:value={realizationRef}\n      options={realizationOptions}\n      {disabled}\n      tooltip={realizationTooltip}\n      onChange={handleRealizationChange}\n    />\n    {/if}\n</div>\n","export type ScopeValue = \"organization\" | \"project\" | \"realization\"\n\nexport type ScopeSelectOption = {\n  value: string\n  name: string\n}\n\nexport type ScopeSelectableRealization = {\n  id?: string | null\n  slug?: string | null\n  name?: string | null\n  realization_name?: string | null\n}\n\nexport type ScopeSelectableProject = {\n  id?: string | null\n  slug?: string | null\n  name?: string | null\n  organization_id?: string | null\n  realizations?: ScopeSelectableRealization[] | null\n}\n\nconst normalizeValue = (value: string | null | undefined): string => String(value ?? \"\").trim()\n\nconst filterProjectsByOrganization = (\n  projects: ReadonlyArray<ScopeSelectableProject>,\n  organizationId?: string | null,\n): ScopeSelectableProject[] => {\n  const normalizedOrganizationId = normalizeValue(organizationId)\n\n  if (!normalizedOrganizationId) {\n    return [...projects]\n  }\n\n  return projects.filter(\n    (project) => normalizeValue(project.organization_id) === normalizedOrganizationId,\n  )\n}\n\nconst resolveProjectLabel = (project: ScopeSelectableProject): string => {\n  return (\n    normalizeValue(project.name) ||\n    normalizeValue(project.slug) ||\n    normalizeValue(project.id) ||\n    \"Unbekannter Agent\"\n  )\n}\n\nconst resolveRealizationLabel = (realization: ScopeSelectableRealization): string => {\n  return (\n    normalizeValue(realization.name) ||\n    normalizeValue(realization.realization_name) ||\n    normalizeValue(realization.slug) ||\n    normalizeValue(realization.id) ||\n    \"Unbekannte Sprache\"\n  )\n}\n\nexport const SCOPE_LEVEL_OPTIONS: ScopeSelectOption[] = [\n  { value: \"organization\", name: \"Organisation\" },\n  { value: \"project\", name: \"Agent\" },\n  { value: \"realization\", name: \"Sprache\" },\n]\n\nexport const encodeScopeRealizationRef = (projectId: string, realizationId: string): string =>\n  `${normalizeValue(projectId)}::${normalizeValue(realizationId)}`\n\nexport const decodeScopeRealizationRef = (\n  value: string | null | undefined,\n): { projectId: string; realizationId: string } => {\n  const [rawProjectId = \"\", rawRealizationId = \"\"] = String(value ?? \"\").split(\"::\", 2)\n\n  return {\n    projectId: normalizeValue(rawProjectId),\n    realizationId: normalizeValue(rawRealizationId),\n  }\n}\n\nexport const buildScopeProjectOptions = (\n  projects: ReadonlyArray<ScopeSelectableProject>,\n  organizationId?: string | null,\n): ScopeSelectOption[] => {\n  return filterProjectsByOrganization(projects, organizationId)\n    .map((project) => {\n      const projectId = normalizeValue(project.id)\n\n      if (!projectId) return null\n\n      return {\n        value: projectId,\n        name: resolveProjectLabel(project),\n      }\n    })\n    .filter(Boolean)\n    .sort((left, right) => left!.name.localeCompare(right!.name, \"de\")) as ScopeSelectOption[]\n}\n\nexport const buildScopeRealizationOptions = (\n  projects: ReadonlyArray<ScopeSelectableProject>,\n  organizationId?: string | null,\n): ScopeSelectOption[] => {\n  return filterProjectsByOrganization(projects, organizationId)\n    .flatMap((project) => {\n      const projectId = normalizeValue(project.id)\n\n      if (!projectId) return []\n\n      const projectLabel = resolveProjectLabel(project)\n\n      return (project.realizations ?? []).flatMap((realization) => {\n        const realizationId = normalizeValue(realization.id)\n\n        if (!realizationId) return []\n\n        return [\n          {\n            value: encodeScopeRealizationRef(projectId, realizationId),\n            name: `${projectLabel} (${resolveRealizationLabel(realization)})`,\n          },\n        ]\n      })\n    })\n    .sort((left, right) => left.name.localeCompare(right.name, \"de\"))\n}\n\nexport const resolveScopeProjectLabel = (\n  projects: ReadonlyArray<ScopeSelectableProject>,\n  projectId?: string | null,\n): string | null => {\n  const normalizedProjectId = normalizeValue(projectId)\n\n  if (!normalizedProjectId) return null\n\n  const project = projects.find((entry) => normalizeValue(entry.id) === normalizedProjectId)\n\n  return project ? resolveProjectLabel(project) : null\n}\n\nexport const resolveScopeRealizationLabel = (\n  projects: ReadonlyArray<ScopeSelectableProject>,\n  projectId?: string | null,\n  realizationId?: string | null,\n): string | null => {\n  const normalizedProjectId = normalizeValue(projectId)\n  const normalizedRealizationId = normalizeValue(realizationId)\n\n  if (!normalizedProjectId || !normalizedRealizationId) return null\n\n  const project = projects.find((entry) => normalizeValue(entry.id) === normalizedProjectId)\n  const realization = project?.realizations?.find(\n    (entry) => normalizeValue(entry.id) === normalizedRealizationId,\n  )\n\n  if (!project || !realization) return null\n\n  return `${resolveProjectLabel(project)} (${resolveRealizationLabel(realization)})`\n}\n\nexport const resolveDefaultScopeProjectId = (\n  projectOptions: ReadonlyArray<ScopeSelectOption>,\n  preferredProjectId?: string | null,\n): string => {\n  const normalizedPreferred = normalizeValue(preferredProjectId)\n\n  if (normalizedPreferred && projectOptions.some((entry) => entry.value === normalizedPreferred)) {\n    return normalizedPreferred\n  }\n\n  return projectOptions[0]?.value ?? \"\"\n}\n\nexport const resolveDefaultScopeRealizationRef = (\n  realizationOptions: ReadonlyArray<ScopeSelectOption>,\n  preferredProjectId?: string | null,\n  preferredRealizationId?: string | null,\n): string => {\n  const normalizedProjectId = normalizeValue(preferredProjectId)\n  const normalizedRealizationId = normalizeValue(preferredRealizationId)\n\n  if (normalizedProjectId && normalizedRealizationId) {\n    const encoded = encodeScopeRealizationRef(normalizedProjectId, normalizedRealizationId)\n\n    if (realizationOptions.some((entry) => entry.value === encoded)) {\n      return encoded\n    }\n  }\n\n  if (normalizedProjectId) {\n    const matchingProjectOption = realizationOptions.find((entry) =>\n      entry.value.startsWith(`${normalizedProjectId}::`),\n    )\n\n    if (matchingProjectOption) return matchingProjectOption.value\n  }\n\n  return realizationOptions[0]?.value ?? \"\"\n}\n","<script lang=\"ts\">\n  import { onDestroy, onMount, untrack } from \"svelte\"\n  import type { Snippet } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { clearOverlays } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiContentSaveOutline, mdiPlus } from \"@mdi/js\"\n\n  import type { FileCollectionRecord, FileCollectionWritePayload } from \"../../_logic/storage\"\n  import { availableProjects } from \"../../_logic/organizations\"\n  import ScopeSelectionRow from \"../scope-selection-row\"\n  import {\n    buildScopeProjectOptions,\n    buildScopeRealizationOptions,\n    decodeScopeRealizationRef,\n    encodeScopeRealizationRef,\n    resolveDefaultScopeProjectId,\n    resolveDefaultScopeRealizationRef,\n    resolveScopeProjectLabel,\n    resolveScopeRealizationLabel,\n    SCOPE_LEVEL_OPTIONS,\n    type ScopeSelectableProject,\n    type ScopeValue,\n  } from \"../../_logic/scope-selection\"\n\n  const {\n    mode = \"project\",\n    organizationId = null,\n    projectId = null,\n    defaultRealizationId: _defaultRealizationId = null,\n    realizationOptions: _realizationOptions = [],\n    collection = null,\n    onSaved,\n    onClose,\n    setActionButtonSnippet = null,\n  }: {\n    mode?: \"project\" | \"global\"\n    organizationId?: string | null\n    projectId?: string | null\n    defaultRealizationId?: string | null\n    realizationOptions?: Array<{ value: string; name: string }>\n    collection?: FileCollectionRecord | null\n    onSaved?: (payload: FileCollectionWritePayload) => Promise<boolean | void>\n    onClose?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  } = $props()\n\n  let label = $state(untrack(() => collection?.label ?? \"\"))\n  let scope = $state<\"organization\" | \"project\" | \"realization\" | \"global\">(\n    untrack(() =>\n      mode === \"global\"\n        ? \"global\"\n        : ((collection?.scope ?? \"organization\") as \"organization\" | \"project\" | \"realization\"),\n    ),\n  )\n  let scopeProjectId = $state(\n    untrack(() =>\n      collection?.scope === \"project\" || collection?.scope === \"realization\"\n        ? (collection?.projectId ?? projectId ?? \"\")\n        : \"\",\n    ),\n  )\n  let scopeRealizationRef = $state(\n    untrack(() =>\n      collection?.scope === \"realization\" && collection?.projectId && collection?.realizationId\n        ? encodeScopeRealizationRef(collection.projectId, collection.realizationId)\n        : \"\",\n    ),\n  )\n  let error = $state<string | null>(null)\n  let saving = $state(false)\n\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const scopeProjectOptions = $derived(buildScopeProjectOptions(scopedProjects, organizationId))\n  const scopeRealizationOptions = $derived(\n    buildScopeRealizationOptions(scopedProjects, organizationId),\n  )\n  const scopeHint = $derived.by(() => {\n    if (scope === \"global\") return \"Diese Sammlung gilt instanzweit für alle Agenten.\"\n\n    if (scope === \"organization\") return \"Diese Sammlung gilt organisationsweit.\"\n\n    if (scope === \"project\") {\n      const projectLabel = resolveScopeProjectLabel(scopedProjects, scopeProjectId)\n\n      return projectLabel\n        ? `Diese Sammlung gilt für den Agenten „${projectLabel}“.`\n        : \"Diese Sammlung gilt für genau einen Agenten.\"\n    }\n\n    const realizationLabel = resolveScopeRealizationLabel(\n      scopedProjects,\n      decodeScopeRealizationRef(scopeRealizationRef).projectId,\n      decodeScopeRealizationRef(scopeRealizationRef).realizationId,\n    )\n\n    return realizationLabel\n      ? `Diese Sammlung gilt nur für „${realizationLabel}“.`\n      : \"Diese Sammlung gilt nur für eine Sprache.\"\n  })\n\n  const ensureScopeSelection = (nextScope: ScopeValue | \"global\") => {\n    if (nextScope === \"project\") {\n      scopeProjectId = resolveDefaultScopeProjectId(\n        scopeProjectOptions,\n        scopeProjectId || projectId,\n      )\n      scopeRealizationRef = \"\"\n\n      return\n    }\n\n    if (nextScope === \"realization\") {\n      scopeRealizationRef = resolveDefaultScopeRealizationRef(\n        scopeRealizationOptions,\n        scopeProjectId || projectId,\n        collection?.realizationId ?? _defaultRealizationId,\n      )\n      scopeProjectId = decodeScopeRealizationRef(scopeRealizationRef).projectId\n\n      return\n    }\n\n    scopeProjectId = \"\"\n    scopeRealizationRef = \"\"\n  }\n\n  const buildPayload = (): FileCollectionWritePayload => {\n    if (scope === \"global\") {\n      return { label: label.trim(), scope: \"global\" }\n    }\n\n    if (scope === \"organization\") {\n      return {\n        label: label.trim(),\n        scope,\n        organizationId,\n        projectId: null,\n        realizationId: null,\n      }\n    }\n\n    if (scope === \"project\") {\n      return {\n        label: label.trim(),\n        scope,\n        organizationId,\n        projectId: scopeProjectId.trim() || null,\n        realizationId: null,\n      }\n    }\n\n    const scopedRealization = decodeScopeRealizationRef(scopeRealizationRef)\n\n    return {\n      label: label.trim(),\n      scope,\n      organizationId,\n      projectId: scopedRealization.projectId || null,\n      realizationId: scopedRealization.realizationId || null,\n    }\n  }\n\n  const handleSubmit = async () => {\n    if (!onSaved) return\n\n    error = null\n\n    if (!label.trim()) {\n      error = \"Bitte einen Namen für die Dateisammlung eintragen.\"\n\n      return\n    }\n\n    if (mode === \"project\" && !organizationId) {\n      error = \"Organisationskontext fehlt.\"\n\n      return\n    }\n\n    if (scope === \"project\" && !scopeProjectId.trim()) {\n      error = \"Bitte einen Agenten auswählen.\"\n\n      return\n    }\n\n    if (scope === \"realization\") {\n      const scopedRealization = decodeScopeRealizationRef(scopeRealizationRef)\n\n      if (!scopedRealization.projectId || !scopedRealization.realizationId) {\n        error = \"Bitte eine Sprache auswählen.\"\n\n        return\n      }\n    }\n\n    saving = true\n    try {\n      await onSaved(buildPayload())\n      clearOverlays()\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      saving = false\n    }\n  }\n\n  onMount(() => {\n    setActionButtonSnippet?.(actionButtons)\n    const input = document.querySelector<HTMLInputElement>(\n      '[data-input-id=\"file-collection-label\"]',\n    )\n    input?.focus()\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n    onClose?.()\n  })\n</script>\n\n<div class=\"overlay form\" data-testid=\"indexAdmin.files.collectionOverlay\">\n    <div class=\"row\">\n        <Input\n      id=\"file-collection-label\"\n      placeholder=\"Name der Dateisammlung\"\n      bind:value={label}\n      required\n      dataTestid=\"indexAdmin.files.collectionOverlay.labelInput\"\n    />\n    </div>\n    {#if mode !== \"global\"}\n        <ScopeSelectionRow\n      scopeId=\"file-collection-scope\"\n      projectIdField=\"file-collection-project\"\n      realizationIdField=\"file-collection-realization\"\n      bind:scope\n      bind:projectId={scopeProjectId}\n      bind:realizationRef={scopeRealizationRef}\n      scopeOptions={SCOPE_LEVEL_OPTIONS}\n      projectOptions={scopeProjectOptions}\n      realizationOptions={scopeRealizationOptions}\n      scopePlaceholder=\"Ebene\"\n      projectPlaceholder=\"Agent\"\n      realizationPlaceholder=\"Agent (Sprache)\"\n      scopeTooltip=\"Legt fest, ob die Dateisammlung organisationsweit, für einen Agenten oder nur für eine Sprache gilt.\"\n      projectTooltip=\"Wählen Sie den Agenten aus, für den diese Dateisammlung gelten soll.\"\n      realizationTooltip=\"Wählen Sie die Sprache aus, für die diese Dateisammlung gelten soll.\"\n      disabled={saving}\n      onScopeChange={ensureScopeSelection}\n      onRealizationChange={(nextRealizationRef) => {\n        scopeRealizationRef = nextRealizationRef\n        scopeProjectId = decodeScopeRealizationRef(nextRealizationRef).projectId\n      }}\n    />\n    {/if}\n    <p class=\"hint\">{scopeHint}</p>\n    {#if error}\n        <p class=\"error\">{error}</p>\n    {/if}\n</div>\n\n{#snippet actionButtons()}\n    <CTA\n    type=\"primaryButton\"\n    content={saving\n      ? \"Speichern…\"\n      : collection\n        ? \"Dateisammlung speichern\"\n        : \"Dateisammlung anlegen\"}\n    onClick={handleSubmit}\n    icon={collection ? mdiContentSaveOutline : mdiPlus}\n    disabled={saving}\n    dataTestid=\"indexAdmin.files.collectionOverlay.submitButton\"\n  />\n{/snippet}\n\n<style lang=\"less\">\n  .overlay {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-100);\n  }\n\n  .row {\n    width: 100%;\n  }\n\n  .hint {\n    margin: 0;\n    color: color-mix(in srgb, var(--text-100) 72%, transparent);\n  }\n\n  .error {\n    margin: 0;\n    color: var(--danger-500, #c62828);\n  }\n</style>\n","import { newApproval, type ApprovalRequest } from \"@kontextwerk/web-sdk/core/overlay/approvals\"\nimport {\n  runImportantActionWithReauth,\n  type ImportantActionReauthConfig,\n} from \"@kontextwerk/web-sdk/ui/security/importantActionReauth\"\n\ntype ConfirmedDestructiveActionConfig = {\n  approval: ApprovalRequest\n  reauth: ImportantActionReauthConfig\n}\n\nexport const runConfirmedDestructiveAction = async (\n  config: ConfirmedDestructiveActionConfig,\n  action: () => Promise<void>,\n): Promise<boolean> => {\n  const approved = await newApproval(config.approval)\n\n  if (!approved) return false\n\n  let completed = false\n  await runImportantActionWithReauth(config.reauth, async () => {\n    await action()\n    completed = true\n  })\n\n  return completed\n}\n","export const RICH_TOOLTIP_CLASS = \"rich-tooltip\"\n\nconst isPresentTooltipValue = (value: unknown): value is string | number | boolean =>\n  value !== null && value !== undefined && String(value).trim().length > 0\n\nexport const escapeTooltipHtml = (value: unknown): string =>\n  String(value ?? \"\")\n    .replaceAll(\"&\", \"&amp;\")\n    .replaceAll(\"<\", \"&lt;\")\n    .replaceAll(\">\", \"&gt;\")\n    .replaceAll('\"', \"&quot;\")\n    .replaceAll(\"'\", \"&#39;\")\n\nexport const tooltipTitle = (label: string): string => `<strong>${label}</strong>`\n\nexport const tooltipText = (value: unknown): string | null =>\n  isPresentTooltipValue(value) ? `<p>${String(value).trim()}</p>` : null\n\nexport const tooltipField = (label: string, value: unknown): string | null =>\n  isPresentTooltipValue(value) ? `<span><b>${label}</b>${String(value).trim()}</span>` : null\n\nexport const safeTooltipText = (value: unknown): string | null =>\n  isPresentTooltipValue(value) ? `<p>${escapeTooltipHtml(String(value).trim())}</p>` : null\n\nexport const safeTooltipField = (label: string, value: unknown): string | null =>\n  isPresentTooltipValue(value)\n    ? `<span><b>${escapeTooltipHtml(label)}</b>${escapeTooltipHtml(String(value).trim())}</span>`\n    : null\n\nexport const tooltipList = (label: string, values: readonly unknown[]): string | null => {\n  const items = values\n    .filter(isPresentTooltipValue)\n    .map((value) => `<li>${String(value).trim()}</li>`)\n\n  if (!items.length) return null\n\n  return `<span><b>${label}</b></span><ul>${items.join(\"\")}</ul>`\n}\n\nexport const buildRichTooltip = (...parts: Array<string | null | undefined | false>): string =>\n  parts.filter(Boolean).join(\"\")\n","import { buildRichTooltip, tooltipField, tooltipTitle } from \"../rich-tooltips\"\n\ntype IndexAction =\n  | \"url-sync\"\n  | \"url-delete\"\n  | \"url-chunks\"\n  | \"discovery-start\"\n  | \"sync-cancel\"\n  | \"sharepoint-sync\"\n  | \"sharepoint-edit\"\n  | \"sharepoint-delete\"\n  | \"collection-delete\"\n  | \"answer-add\"\n  | \"answer-group-open\"\n  | \"answer-group-delete\"\n  | \"answer-activate\"\n  | \"answer-edit\"\n  | \"answer-retry\"\n  | \"answer-delete\"\n  | \"chunks-open\"\n\nconst tooltip = (title: string, action: string, effect: string, hint?: string) =>\n  buildRichTooltip(\n    tooltipTitle(title),\n    tooltipField(\"Was passiert\", action),\n    tooltipField(\"Auswirkung\", effect),\n    tooltipField(\"Hinweis\", hint),\n  )\n\nexport const indexActionTooltip = (action: IndexAction): string => {\n  if (action === \"url-sync\") {\n    return tooltip(\n      \"URL erneut synchronisieren\",\n      \"Startet für diese URL einen neuen Sync-Lauf.\",\n      \"Der Inhalt wird neu gelesen, verarbeitet und im Index aktualisiert.\",\n      \"Bestehende Chunks können dabei ersetzt werden.\",\n    )\n  }\n\n  if (action === \"url-delete\") {\n    return tooltip(\n      \"URL löschen\",\n      \"Entfernt diese URL aus der URL-Liste.\",\n      \"Zugehörige Indexdaten werden aus dem Kontextindex bereinigt und nicht mehr für Antworten genutzt.\",\n    )\n  }\n\n  if (action === \"url-chunks\" || action === \"chunks-open\") {\n    return tooltip(\n      \"Chunks öffnen\",\n      \"Öffnet die erzeugten Index-Chunks und Varianten dieser Quelle.\",\n      \"Nutzen Sie dies zur Prüfung, welche Textbausteine der Bot tatsächlich verwenden kann.\",\n    )\n  }\n\n  if (action === \"discovery-start\") {\n    return tooltip(\n      \"Discovery starten\",\n      \"Durchsucht die Domain nach bekannten oder neuen URLs.\",\n      \"Gefundene URLs können anschließend synchronisiert und im Index aktualisiert werden.\",\n    )\n  }\n\n  if (action === \"sync-cancel\") {\n    return tooltip(\n      \"Sync abbrechen\",\n      \"Bricht den aktuell laufenden Sync für diese Domain ab.\",\n      \"Bereits fertig verarbeitete Daten bleiben erhalten; offene Jobs werden gestoppt.\",\n    )\n  }\n\n  if (action === \"sharepoint-sync\") {\n    return tooltip(\n      \"SharePoint jetzt synchronisieren\",\n      \"Startet sofort einen neuen Sync-Lauf für diese SharePoint-Quelle.\",\n      \"Dateien werden neu geprüft und der Index wird aktualisiert.\",\n    )\n  }\n\n  if (action === \"sharepoint-edit\") {\n    return tooltip(\n      \"SharePoint-Quelle bearbeiten\",\n      \"Öffnet die Konfiguration dieser SharePoint-Quelle.\",\n      \"Änderungen beeinflussen, welche Dateien künftig beobachtet und indiziert werden.\",\n    )\n  }\n\n  if (action === \"sharepoint-delete\") {\n    return tooltip(\n      \"SharePoint-Quelle löschen\",\n      \"Entfernt diese SharePoint-Quelle.\",\n      \"Zugehörige Dokumente und Chunks werden aus dem Index bereinigt.\",\n      \"Die externe Microsoft-Site-Freigabe bleibt davon getrennt.\",\n    )\n  }\n\n  if (action === \"collection-delete\") {\n    return tooltip(\n      \"Dateisammlung löschen\",\n      \"Entfernt diese Dateisammlung aus der Verwaltung.\",\n      \"Die zugehörigen Dateien und Indexdaten stehen danach nicht mehr für Antworten zur Verfügung.\",\n    )\n  }\n\n  if (action === \"answer-add\") {\n    return tooltip(\n      \"Frage hinzufügen\",\n      \"Legt eine neue FAQ-Antwort in dieser Antwortbibliothek an.\",\n      \"Nach Aktivierung und Synchronisation kann der Bot diese Antwort verwenden.\",\n    )\n  }\n\n  if (action === \"answer-group-open\") {\n    return tooltip(\n      \"FAQ-Sammlung öffnen\",\n      \"Öffnet die Fragenliste dieser FAQ-Sammlung.\",\n      \"Dort können Fragen, Antworten, Freigabe und Indexlauf geprüft werden.\",\n    )\n  }\n\n  if (action === \"answer-group-delete\") {\n    return tooltip(\n      \"FAQ-Sammlung löschen\",\n      \"Entfernt diese FAQ-Sammlung samt Fragen aus der Antwortbibliothek.\",\n      \"Die Einträge stehen danach nicht mehr für neue Indexläufe zur Verfügung.\",\n    )\n  }\n\n  if (action === \"answer-activate\") {\n    return tooltip(\n      \"Antwort direkt aktivieren\",\n      \"Speichert die Antwort und markiert sie sofort als aktiv.\",\n      \"Aktive Antworten werden bei der nächsten Synchronisation in den Index übernommen.\",\n    )\n  }\n\n  if (action === \"answer-edit\") {\n    return tooltip(\n      \"Antwort bearbeiten\",\n      \"Öffnet Frage, Antwort und Metadaten dieses FAQ-Eintrags.\",\n      \"Änderungen wirken nach der nächsten Synchronisation auf die Antwortbibliothek.\",\n    )\n  }\n\n  if (action === \"answer-retry\") {\n    return tooltip(\n      \"Synchronisation erneut versuchen\",\n      \"Startet die Verarbeitung dieses FAQ-Eintrags erneut.\",\n      \"Nutzen Sie dies, wenn der letzte Sync fehlgeschlagen ist.\",\n    )\n  }\n\n  return tooltip(\n    \"Antwort löschen\",\n    \"Entfernt diesen FAQ-Eintrag aus der Antwortbibliothek.\",\n    \"Der Eintrag wird aus der FAQ-Sammlung und aus dem Index entfernt.\",\n  )\n}\n","import { mdiPencil, mdiTrashCanOutline } from \"@mdi/js\"\nimport { indexActionTooltip } from \"../../../_logic/index-action-tooltips\"\nimport type { FileCollectionRow } from \"../_shared/_logic/contract\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\n\nexport default function buildRowActions({\n  row,\n  canManage = false,\n  onEdit,\n  onDelete,\n}: {\n  row: FileCollectionRow\n  canManage?: boolean\n  onEdit?: (row: FileCollectionRow) => void\n  onDelete?: (row: FileCollectionRow) => void\n}): TableRowAction[] {\n  const actions: TableRowAction[] = []\n\n  if (canManage) {\n    actions.push({\n      id: \"action-0\",\n      label: \"Bearbeiten\",\n      onClick: () => {\n        onEdit?.(row)\n      },\n      icon: mdiPencil,\n      tooltip: \"Dateisammlung bearbeiten\",\n      testId: `indexAdmin.files.collections.editButton.${row.id}`,\n    })\n\n    actions.push({\n      id: \"action-1\",\n      label: \"Löschen\",\n      onClick: () => {\n        onDelete?.(row)\n      },\n      icon: mdiTrashCanOutline,\n      tooltip: indexActionTooltip(\"collection-delete\"),\n      testId: `indexAdmin.files.collections.deleteButton.${row.id}`,\n      tone: \"danger\",\n    })\n  }\n\n  return actions\n}\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import type { FileTableTag } from \"../../_logic/table-tags\"\n\n  const {\n    tag,\n    class: className = \"\",\n  }: {\n    tag: FileTableTag\n    class?: string\n  } = $props()\n</script>\n\n<StatusTag\n  size=\"sm\"\n  label={tag.label}\n  subLabel={tag.subLabel ?? undefined}\n  color={tag.color}\n  icon={tag.icon ?? undefined}\n  tooltipContent={tag.tooltip ?? \"\"}\n  tooltipHtml={tag.tooltipHtml ?? false}\n  tooltipClassName={tag.tooltipClassName ?? \"\"}\n  disableTitle={true}\n  class={`file-table-tag ${className}`.trim()}\n/>\n","<script lang=\"ts\">\n  import FileTableTag from \"../../../../file-table-tag\"\n  import type { FileCollectionRow } from \"../../_logic/contract\"\n\n  const {\n    row,\n    onOpen,\n  }: {\n    row: FileCollectionRow\n    onOpen?: (collection: FileCollectionRow) => void\n  } = $props()\n</script>\n\n{#if onOpen}\n    <button\n    class=\"collection-link\"\n    type=\"button\"\n    aria-label={row.label}\n    onclick={(event) => {\n      event.stopPropagation()\n      onOpen?.(row)\n    }}\n    data-testid={`indexAdmin.files.collections.link.${row.id}`}\n  >\n        <FileTableTag tag={row.collectionTag} />\n    </button>\n{:else}\n    <FileTableTag tag={row.collectionTag} />\n{/if}\n\n<style lang=\"less\">\n  .collection-link {\n    display: inline-flex;\n    align-items: center;\n    background: none;\n    border: none;\n    padding: 0;\n    margin: 0;\n    color: inherit;\n    cursor: pointer;\n    text-align: left;\n\n    &:hover :global(.status-tag__main-label) {\n      text-decoration: underline;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import FileTableTag from \"../../../file-table-tag\"\n  import type { FileCollectionRow } from \"../../_shared/_logic/contract\"\n  import FileCollectionNameCell from \"../../_shared/_modules/file-collection-name-cell\"\n\n  const {\n    row,\n    column,\n    onOpen,\n  }: {\n    row: FileCollectionRow\n    column: ColumnDef\n    onOpen?: (collection: FileCollectionRow) => void\n  } = $props()\n\n  const cellValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"collection\"}\n    <FileCollectionNameCell {row} {onOpen} />\n{:else if column.id === \"scope\"}\n    <FileTableTag tag={row.scopeTag} />\n{:else if column.id === \"inventory\"}\n    <FileTableTag tag={row.inventoryTag} />\n{:else}\n    {cellValue}\n{/if}\n","import type { StatusDefinition } from \"@kontextwerk/web-sdk/core/display/status\"\n\ntype CoverageCopy = {\n  singular: string\n  plural: string\n}\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst normalizeCount = (value: number | null | undefined): number => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return 0\n\n  return Math.max(0, Math.round(numeric))\n}\n\nexport const formatEntityCount = (value: number | null | undefined): string =>\n  numberFormatter.format(normalizeCount(value))\n\nexport const computeCoveragePercentage = (\n  indexedValue: number | null | undefined,\n  totalValue: number | null | undefined,\n): number => {\n  const indexed = normalizeCount(indexedValue)\n  const total = normalizeCount(totalValue)\n\n  if (total <= 0) return 100\n\n  return Math.max(0, Math.min(100, Math.round((indexed / total) * 100)))\n}\n\nexport const buildCoverageStatus = (\n  indexedValue: number | null | undefined,\n  totalValue: number | null | undefined,\n): StatusDefinition<string> => {\n  const total = normalizeCount(totalValue)\n\n  if (total <= 0) {\n    return { value: \"coverage-empty\", label: \"100 %\", color: \"emerald\" }\n  }\n\n  const percentage = computeCoveragePercentage(indexedValue, total)\n\n  if (percentage < 50) return { value: \"coverage-low\", label: `${percentage} %`, color: \"red\" }\n\n  if (percentage < 70)\n    return { value: \"coverage-medium\", label: `${percentage} %`, color: \"orange\" }\n\n  if (percentage < 90) return { value: \"coverage-high\", label: `${percentage} %`, color: \"amber\" }\n\n  return { value: \"coverage-complete\", label: `${percentage} %`, color: \"emerald\" }\n}\n\nexport const buildCoverageTooltip = (\n  indexedValue: number | null | undefined,\n  totalValue: number | null | undefined,\n  copy: CoverageCopy,\n): string => {\n  const indexed = normalizeCount(indexedValue)\n  const total = normalizeCount(totalValue)\n\n  if (total <= 0) {\n    return `Noch keine ${copy.plural} erfasst. Der Sync-Status steht aktuell bei 100 %.`\n  }\n\n  const percentage = computeCoveragePercentage(indexed, total)\n  const label = total === 1 ? copy.singular : copy.plural\n\n  return `${formatEntityCount(indexed)} von ${formatEntityCount(total)} ${label} wurden bisher synchronisiert (${percentage} %).`\n}\n","import {\n  mdiDatabaseSearchOutline,\n  mdiFileDocumentMultipleOutline,\n  mdiFolderMultiple,\n  mdiOfficeBuildingOutline,\n  mdiRobotOutline,\n  mdiServerNetwork,\n  mdiTranslate,\n} from \"@mdi/js\"\n\nimport type { FileCollectionRecord } from \"../../../_logic/storage\"\nimport {\n  buildRichTooltip,\n  RICH_TOOLTIP_CLASS,\n  safeTooltipField,\n  safeTooltipText,\n  tooltipTitle,\n  escapeTooltipHtml,\n} from \"../../../_logic/rich-tooltips\"\nimport {\n  buildCoverageTooltip,\n  computeCoveragePercentage,\n  formatEntityCount,\n} from \"../../../_logic/sync-coverage\"\nimport {\n  resolveScopeProjectLabel,\n  resolveScopeRealizationLabel,\n} from \"../../../_logic/scope-selection\"\nimport type { FileTableTag } from \"../../../_logic/table-tags\"\nimport type { FileCollectionTableContext } from \"../_shared/_logic/contract\"\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst cleanText = (value: unknown, fallback = \"–\"): string => {\n  const text = typeof value === \"string\" ? value.trim() : value == null ? \"\" : String(value).trim()\n\n  return text || fallback\n}\n\nconst normalizeCount = (value: number | null | undefined): number => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return 0\n\n  return Math.round(numeric)\n}\n\nexport const formatFileCollectionDate = (value?: string | null): string => {\n  const text = cleanText(value, \"\")\n\n  if (!text) return \"–\"\n\n  const parsed = new Date(text)\n\n  if (Number.isNaN(parsed.getTime())) return text\n\n  return parsed.toLocaleString(\"de-DE\")\n}\n\nexport const fileCollectionScopeLabel = (scope: FileCollectionRecord[\"scope\"]): string => {\n  if (scope === \"global\") return \"Instanz\"\n\n  if (scope === \"organization\") return \"Organisation\"\n\n  if (scope === \"project\") return \"Agent\"\n\n  return \"Sprache\"\n}\n\nexport const fileCollectionTargetLabel = (\n  collection: FileCollectionRecord,\n  context: FileCollectionTableContext,\n): string => {\n  if (collection.scope === \"global\") return \"Instanzweit\"\n\n  if (collection.scope === \"organization\") return \"Organisationsweit\"\n\n  if (collection.scope === \"project\") {\n    return (\n      resolveScopeProjectLabel(context.scopedProjects, collection.projectId) ||\n      collection.projectId ||\n      \"Agent\"\n    )\n  }\n\n  return (\n    resolveScopeRealizationLabel(\n      context.scopedProjects,\n      collection.projectId,\n      collection.realizationId,\n    ) ||\n    (collection.realizationId ? context.realizationLabelById[collection.realizationId] : null) ||\n    collection.realizationId ||\n    \"Sprache\"\n  )\n}\n\nconst scopeSortValue = (scope: FileCollectionRecord[\"scope\"]): string => {\n  if (scope === \"global\") return \"0-global\"\n\n  if (scope === \"organization\") return \"1-organization\"\n\n  if (scope === \"project\") return \"2-project\"\n\n  return \"3-realization\"\n}\n\nconst scopeIcon = (scope: FileCollectionRecord[\"scope\"]): string => {\n  if (scope === \"global\") return mdiServerNetwork\n\n  if (scope === \"organization\") return mdiOfficeBuildingOutline\n\n  if (scope === \"project\") return mdiRobotOutline\n\n  return mdiTranslate\n}\n\nconst scopeColor = (scope: FileCollectionRecord[\"scope\"]): FileTableTag[\"color\"] => {\n  if (scope === \"global\") return \"cyan\"\n\n  if (scope === \"organization\") return \"indigo\"\n\n  if (scope === \"project\") return \"blue\"\n\n  return \"teal\"\n}\n\nexport const buildFileCollectionScopeTag = (\n  collection: FileCollectionRecord,\n  context: FileCollectionTableContext,\n): FileTableTag => {\n  const label = fileCollectionScopeLabel(collection.scope)\n  const target = fileCollectionTargetLabel(collection, context)\n\n  return {\n    label,\n    subLabel: target,\n    color: scopeColor(collection.scope),\n    icon: scopeIcon(collection.scope),\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Geltung\"),\n      safeTooltipField(\"Ebene\", label),\n      safeTooltipField(\"Zielkontext\", target),\n      safeTooltipField(\"Organisation\", collection.organizationId),\n      safeTooltipField(\"Projekt\", collection.projectId),\n      safeTooltipField(\"Realisierung\", collection.realizationId),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${target}`,\n    sortValue: scopeSortValue(collection.scope),\n  }\n}\n\nexport const buildFileCollectionInventoryTag = (collection: FileCollectionRecord): FileTableTag => {\n  const total = normalizeCount(collection.fileCount)\n  const indexed = normalizeCount(collection.indexedFileCount)\n\n  if (total <= 0) {\n    return {\n      label: \"0 Dateien\",\n      subLabel: \"noch leer\",\n      color: \"amber\",\n      icon: mdiDatabaseSearchOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Bestand\"),\n        safeTooltipText(\"Noch keine Dateien in dieser Sammlung erfasst.\"),\n      ),\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: \"0 Dateien noch leer\",\n      sortValue: 0,\n    }\n  }\n\n  const open = Math.max(0, total - indexed)\n  const coverage = computeCoveragePercentage(indexed, total)\n\n  return {\n    label: `${numberFormatter.format(indexed)}/${numberFormatter.format(total)} Dateien`,\n    subLabel: open > 0 ? `${numberFormatter.format(open)} offen` : \"vollständig\",\n    color: coverage < 50 ? \"red\" : coverage < 70 ? \"orange\" : coverage < 90 ? \"amber\" : \"emerald\",\n    icon: mdiFileDocumentMultipleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Index-Bestand\"),\n      safeTooltipText(\n        buildCoverageTooltip(indexed, total, { singular: \"Datei\", plural: \"Dateien\" }),\n      ),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${indexed} ${total} Dateien ${coverage} Prozent`,\n    sortValue: coverage,\n  }\n}\n\nexport const buildFileCollectionTag = (\n  collection: FileCollectionRecord,\n  context: FileCollectionTableContext,\n): FileTableTag => {\n  const label = cleanText(collection.label, \"Unbenannte Sammlung\")\n  const bucket = cleanText(collection.bucket, \"Bucket fehlt\")\n  const scopeLabel = fileCollectionScopeLabel(collection.scope)\n  const target = fileCollectionTargetLabel(collection, context)\n  const total = normalizeCount(collection.fileCount)\n  const indexed = normalizeCount(collection.indexedFileCount)\n\n  return {\n    label,\n    subLabel: bucket,\n    color: \"cyan\",\n    icon: mdiFolderMultiple,\n    tooltip: buildRichTooltip(\n      tooltipTitle(escapeTooltipHtml(label)),\n      safeTooltipField(\"Name\", label),\n      safeTooltipField(\"Bucket\", bucket),\n      safeTooltipField(\"Geltung\", scopeLabel),\n      safeTooltipField(\"Zielkontext\", target),\n      safeTooltipField(\"Dateien\", `${formatEntityCount(total)} Dateien`),\n      safeTooltipField(\"Synchronisiert\", `${formatEntityCount(indexed)} Dateien`),\n      safeTooltipField(\"Erstellt\", formatFileCollectionDate(collection.createdAt)),\n      safeTooltipField(\"Geändert\", formatFileCollectionDate(collection.updatedAt)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${bucket} ${scopeLabel} ${target}`,\n    sortValue: label,\n  }\n}\n\nexport const buildFileCollectionTags = (\n  collection: FileCollectionRecord,\n  context: FileCollectionTableContext,\n) => ({\n  collectionTag: buildFileCollectionTag(collection, context),\n  scopeTag: buildFileCollectionScopeTag(collection, context),\n  inventoryTag: buildFileCollectionInventoryTag(collection),\n})\n","import { sortTableRows } from \"@kontextwerk/web-sdk/core/layout/tableSort\"\nimport type { ColumnDef, TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\nimport type { FileCollectionRecord } from \"../../../_logic/storage\"\nimport type { FileCollectionRow, FileCollectionTableContext } from \"../_shared/_logic/contract\"\nimport {\n  buildFileCollectionTags,\n  fileCollectionScopeLabel,\n  fileCollectionTargetLabel,\n} from \"./tags\"\n\nexport const FILE_COLLECTION_CARD_FIELD_IDS = [\"scope\", \"inventory\"]\n\nexport const fileCollectionColumns: ColumnDef[] = [\n  {\n    id: \"collection\",\n    label: \"Sammlung\",\n    isPrimary: true,\n    tooltip: \"Dateisammlung mit Bucket und Zielkontext.\",\n    sortable: true,\n    sortType: \"text\",\n    getSortValue: (row) => (row as FileCollectionRow).collectionTag.sortValue,\n  },\n  {\n    id: \"scope\",\n    label: \"Geltung\",\n    tooltip: \"Wo die Dateien dieser Sammlung im Kontext-Index wirken.\",\n    sortable: true,\n    sortType: \"text\",\n    getSortValue: (row) => (row as FileCollectionRow).scopeTag.sortValue,\n  },\n  {\n    id: \"inventory\",\n    label: \"Bestand\",\n    tooltip: \"Dateibestand und Anteil synchronisierter Dateien.\",\n    sortable: true,\n    sortType: \"number\",\n    getSortValue: (row) => (row as FileCollectionRow).inventoryTag.sortValue,\n  },\n]\n\nconst normalizeCount = (value: number | null | undefined): number => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return 0\n\n  return Math.round(numeric)\n}\n\nexport const mapFileCollectionToRow = (\n  collection: FileCollectionRecord,\n  context: FileCollectionTableContext,\n): FileCollectionRow => {\n  const tags = buildFileCollectionTags(collection, context)\n  const scopeLabel = fileCollectionScopeLabel(collection.scope)\n  const targetLabel = fileCollectionTargetLabel(collection, context)\n  const fileCount = normalizeCount(collection.fileCount)\n  const indexedFileCount = normalizeCount(collection.indexedFileCount)\n\n  return {\n    id: collection.id,\n    collection,\n    label: collection.label,\n    bucket: collection.bucket,\n    scopeLabel,\n    targetLabel,\n    fileCount,\n    indexedFileCount,\n    collectionTag: tags.collectionTag,\n    scopeTag: tags.scopeTag,\n    inventoryTag: tags.inventoryTag,\n    searchText: [\n      tags.collectionTag.searchText,\n      tags.scopeTag.searchText,\n      tags.inventoryTag.searchText,\n    ].join(\" \"),\n  }\n}\n\nexport const createFileCollectionGetRows = (rows: FileCollectionRow[]): TableGetRows => {\n  return ({ limit, offset, sort }) => {\n    const start = Math.max(0, offset ?? 0)\n    const size = typeof limit === \"number\" && limit > 0 ? limit : rows.length\n    const sortedRows = sort ? sortTableRows(rows, fileCollectionColumns, sort) : rows\n\n    return {\n      rows: sortedRows.slice(start, start + size),\n      total: rows.length,\n    }\n  }\n}\n","<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { mdiEyeOutline as tablePrimaryIcon } from \"@mdi/js\"\n\n  import { onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { closeOverlayById, openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiPlus } from \"@mdi/js\"\n\n  import {\n    createFileCollection,\n    deleteFileCollection,\n    fetchFileCollections,\n    updateFileCollection,\n    type FileCollectionRecord,\n    type FileCollectionWritePayload,\n  } from \"../../_logic/storage\"\n  import FileCollectionOverlay from \"../file-collection-overlay\"\n  import { availableProjects } from \"../../_logic/organizations\"\n  import type { ScopeSelectableProject } from \"../../_logic/scope-selection\"\n  import { runConfirmedDestructiveAction } from \"../../../confirmed-destructive-action\"\n  import FileCollectionRowActions from \"./_logic/FileCollectionRowActions.actions\"\n  import FileCollectionNameCell from \"./_shared/_modules/file-collection-name-cell\"\n  import FileCollectionTableCell from \"./_modules/file-collection-table-cell\"\n  import type {\n    FileCollectionRealizationOption,\n    FileCollectionRow,\n    FileCollectionTableContext,\n  } from \"./_shared/_logic/contract\"\n  import {\n    createFileCollectionGetRows,\n    FILE_COLLECTION_CARD_FIELD_IDS,\n    fileCollectionColumns,\n    mapFileCollectionToRow,\n  } from \"./_logic/tableModel\"\n\n  type Props = {\n    mode?: \"project\" | \"global\"\n    organizationId?: string | null\n    projectId?: string | null\n    defaultRealizationId?: string | null\n    realizationOptions?: FileCollectionRealizationOption[]\n    canManage?: boolean\n    title?: string\n    onSelect?: ((collection: FileCollectionRecord) => void) | null\n  }\n\n  const {\n    mode = \"project\",\n    organizationId = null,\n    projectId = null,\n    defaultRealizationId = null,\n    realizationOptions = [],\n    canManage = false,\n    title = \"Dateisammlungen\",\n    onSelect = null,\n  }: Props = $props()\n\n  let collections = $state<FileCollectionRecord[]>([])\n  let loading = $state(false)\n  let loadError = $state<string | null>(null)\n\n  const realizationLabelById = $derived.by(\n    () =>\n      Object.fromEntries(\n        (realizationOptions ?? []).map((entry) => [entry.value, entry.name]),\n      ) as Record<string, string>,\n  )\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const tableContext = $derived.by<FileCollectionTableContext>(() => ({\n    scopedProjects,\n    realizationLabelById,\n  }))\n\n  const rows = $derived<FileCollectionRow[]>(\n    collections.map((collection) => mapFileCollectionToRow(collection, tableContext)),\n  )\n\n  const refreshKey = $derived(\n    rows\n      .map(\n        (row) =>\n          `${row.id}:${row.collectionTag.searchText}:${row.scopeTag.searchText}:${row.inventoryTag.searchText}`,\n      )\n      .join(\"|\"),\n  )\n\n  const getRows: TableGetRows = (args) => createFileCollectionGetRows(rows)(args)\n\n  const loadCollections = async () => {\n    loading = true\n    loadError = null\n    try {\n      collections =\n        mode === \"global\"\n          ? await fetchFileCollections({ scope: \"global\" })\n          : organizationId\n            ? await fetchFileCollections({ organizationId })\n            : []\n    } catch (error) {\n      collections = []\n      loadError = error instanceof Error ? error.message : String(error)\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadCollections()\n  })\n\n  const openCollectionOverlay = (collection: FileCollectionRecord | null) => {\n    const overlayId = openOverlay({\n      title: collection ? \"Dateisammlung bearbeiten\" : \"Dateisammlung anlegen\",\n      content: FileCollectionOverlay,\n      properties: {\n        mode,\n        organizationId,\n        projectId,\n        defaultRealizationId,\n        realizationOptions,\n        collection,\n        onClose: () => closeOverlayById(overlayId),\n        onSaved: async (payload: FileCollectionWritePayload) => {\n          if (collection) {\n            await updateFileCollection(collection.id, payload)\n            newNotification({ class: \"success\", html: \"Dateisammlung gespeichert.\" })\n          } else {\n            await createFileCollection(payload)\n            newNotification({ class: \"success\", html: \"Dateisammlung angelegt.\" })\n          }\n\n          await loadCollections()\n\n          return true\n        },\n      },\n    })\n  }\n\n  const handleDelete = async (collection: FileCollectionRecord) => {\n    await runConfirmedDestructiveAction(\n      {\n        approval: {\n          title: \"Dateisammlung löschen\",\n          description: \"Diese Dateisammlung wirklich löschen?\",\n          approvalLabel: \"Ja, löschen\",\n          declineLabel: \"Abbrechen\",\n        },\n        reauth: {\n          title: \"Dateisammlung löschen\",\n          description:\n            \"Bitte bestätigen Sie das Löschen der Dateisammlung mit Ihrem aktuellen Passwort.\",\n          actionLabel: \"Dateisammlung löschen\",\n        },\n      },\n      async () => {\n        await deleteFileCollection(collection.id)\n        collections = collections.filter((entry) => entry.id !== collection.id)\n        newNotification({ class: \"success\", html: \"Dateisammlung gelöscht.\" })\n      },\n    )\n  }\n\n  const openCollection = (collection: FileCollectionRecord) => {\n    if (onSelect) {\n      onSelect(collection)\n\n      return\n    }\n\n    if (canManage) openCollectionOverlay(collection)\n  }\n\n  const openCollectionRow = (row: FileCollectionRow) => {\n    openCollection(row.collection)\n  }\n</script>\n\n<div class=\"collections-section\" data-testid=\"indexAdmin.files.collections.section\">\n  <SectionTitle\n    brightBackground={true}\n    title={`${title} (${rows.length})`}\n    helpModalTextId=\"indexAdminFileCollections\"\n  >\n    {#snippet buttonSnippet()}\n      <CTA\n        type=\"primaryButton\"\n        content=\"Dateisammlung hinzufügen\"\n        icon={mdiPlus}\n        disabled={!canManage || (mode === \"project\" && !organizationId)}\n        onClick={() => openCollectionOverlay(null)}\n        dataTestid=\"indexAdmin.files.collections.addButton\"\n      />\n    {/snippet}\n  </SectionTitle>\n  {#if loadError}\n    <p class=\"error\">{loadError}</p>\n  {/if}\n  <Table\n    rowActions={{\n      resolve: (row, rowIndex) =>\n        buildTableRowActionSet(\n          [\n            {\n              id: \"open-record\",\n              label: \"Dateisammlung öffnen\",\n              icon: tablePrimaryIcon,\n              onClick: () =>\n                ((row) => {\n                  openCollectionRow(row as FileCollectionRow)\n                })(row),\n            },\n            ...(((row) => {\n              const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n              actions.push(\n                ...FileCollectionRowActions({\n                  row: row as FileCollectionRow,\n                  canManage: canManage,\n                  onEdit: (selectedRow) => openCollectionOverlay(selectedRow.collection),\n                  onDelete: (selectedRow) => void handleDelete(selectedRow.collection),\n                }),\n              )\n\n              return actions\n            })(row) ?? []),\n          ],\n          { primaryId: \"open-record\", inlineIds: [\"action-0\"] },\n        ),\n    }}\n    columns={fileCollectionColumns}\n    {getRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={FILE_COLLECTION_CARD_FIELD_IDS}\n    maxCardFields={4}\n    showActions={true}\n    actionsHeaderLabel=\"Aktionen\"\n    {refreshKey}\n    {loading}\n  >\n    {#snippet empty()}\n      <p>Noch keine Dateisammlungen konfiguriert.</p>\n    {/snippet}\n\n    {#snippet tableCell({ row, column })}\n      <FileCollectionTableCell row={row as FileCollectionRow} {column} onOpen={openCollectionRow} />\n    {/snippet}\n\n    {#snippet cardTitle({ row })}\n      <FileCollectionNameCell row={row as FileCollectionRow} onOpen={openCollectionRow} />\n    {/snippet}\n\n    {#snippet cardSubtitle({ row })}\n      {@const typedRow = row as FileCollectionRow}\n      <span class=\"muted\">\n        {typedRow.scopeTag.label}\n        · {typedRow.inventoryTag.label}\n        · {typedRow.inventoryTag.subLabel}\n      </span>\n    {/snippet}\n\n    {#snippet cardField({ row, column })}\n      <FileCollectionTableCell row={row as FileCollectionRow} {column} onOpen={openCollectionRow} />\n    {/snippet}\n  </Table>\n</div>\n\n<style lang=\"less\">\n  .collections-section {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .error {\n    margin: 0;\n    color: var(--danger-500, #c62828);\n  }\n\n  .muted {\n    color: var(--text-invers-150);\n  }\n</style>\n","<script lang=\"ts\">\n  import FileCollectionTable from \"../file-collection-table\"\n  import { spaNavigate } from \"../../_logic/organization-navigation\"\n\n  type ProjectRef = { id?: string | null; slug?: string | null }\n\n  type DataBasisPanelProps = {\n    scope?: \"organization\" | \"global\"\n    organizationId?: string | null\n    organizationName?: string | null\n    organizationSlug?: string | null\n    projects?: ProjectRef[] | null\n    canManageFileUpload?: boolean\n  }\n\n  const {\n    scope = \"organization\",\n    organizationId = null,\n    canManageFileUpload = true,\n  }: DataBasisPanelProps = $props()\n\n  const navigateToCollection = (collection: { id: string }) => {\n    if (scope === \"global\") {\n      spaNavigate(`/admin/data/files/collections/${encodeURIComponent(collection.id)}`, {\n        noSearchParam: true,\n      })\n    }\n  }\n</script>\n\n<div class=\"databasis\">\n    {#if scope === \"global\"}\n        <FileCollectionTable\n      mode=\"global\"\n      canManage={canManageFileUpload}\n      title=\"Globale Dateisammlungen\"\n      onSelect={navigateToCollection}\n    />\n    {:else}\n        <FileCollectionTable\n      mode=\"project\"\n      {organizationId}\n      projectId={null}\n      canManage={canManageFileUpload}\n      title=\"Dateisammlungen\"\n    />\n    {/if}\n</div>\n\n<style lang=\"less\">\n  .databasis {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n  }\n</style>\n","export type RouteSection = \"root\" | \"projects\" | \"project\"\n\nexport type ParsedRouteContext = {\n  rawPath: string\n  section: RouteSection\n  organizationSlug: string | null\n  projectId: string | null\n  projectPath: string\n  hasRealizationSegment: boolean\n  realizationId: string | null\n  realizationPath: string\n}\n\nexport const normalizeRoutePath = (value: string | null | undefined) => {\n  if (!value) return \"/\"\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return \"/\"\n\n  const normalized = trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`\n\n  if (normalized === \"/\") return \"/\"\n\n  return normalized.replace(/\\/+$/, \"\") || \"/\"\n}\n\nexport const decodeRouteSegment = (value: string | undefined): string | null => {\n  if (!value) return null\n\n  try {\n    return decodeURIComponent(value)\n  } catch {\n    return value\n  }\n}\n\nexport const parseIndexRoute = (path: string | null | undefined): ParsedRouteContext => {\n  const normalized = normalizeRoutePath(path)\n\n  if (normalized === \"/\") {\n    return {\n      rawPath: \"/\",\n      section: \"root\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: \"/\",\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  const segments = normalized.split(\"/\").filter(Boolean)\n\n  if (segments[0] !== \"organizations\") {\n    if (segments[0] === \"projects\") {\n      if (segments.length === 1) {\n        return {\n          rawPath: normalized,\n          section: \"projects\",\n          organizationSlug: null,\n          projectId: null,\n          projectPath: \"/\",\n          hasRealizationSegment: false,\n          realizationId: null,\n          realizationPath: \"/\",\n        }\n      }\n\n      const projectId = decodeRouteSegment(segments[1])\n      const rest = segments.slice(2)\n      const hasRealizationSegment = rest[0] === \"realization\" || rest[0] === \"realizations\"\n      const projectPath = rest.length ? `/${rest.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\" : \"/\"\n      const realizationId = hasRealizationSegment ? decodeRouteSegment(rest[1]) : null\n      const realizationPath =\n        hasRealizationSegment && rest.length > (rest[1] ? 2 : 1)\n          ? `/${rest.slice(rest[1] ? 2 : 1).join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n          : \"/\"\n\n      return {\n        rawPath: normalized,\n        section: \"project\",\n        organizationSlug: null,\n        projectId,\n        projectPath,\n        hasRealizationSegment,\n        realizationId,\n        realizationPath,\n      }\n    }\n\n    return {\n      rawPath: normalized,\n      section: \"root\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: normalized,\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  const organizationSlug = decodeRouteSegment(segments[1])\n\n  if (!organizationSlug) {\n    return {\n      rawPath: normalized,\n      section: \"root\",\n      organizationSlug: null,\n      projectId: null,\n      projectPath: \"/\",\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  if (segments[2] === \"projects\" && segments.length === 3) {\n    return {\n      rawPath: normalized,\n      section: \"projects\",\n      organizationSlug,\n      projectId: null,\n      projectPath: \"/\",\n      hasRealizationSegment: false,\n      realizationId: null,\n      realizationPath: \"/\",\n    }\n  }\n\n  const usesLegacyProjectSegment = segments[2] === \"projects\"\n  const projectId = usesLegacyProjectSegment ? decodeRouteSegment(segments[3]) : null\n  const rest = usesLegacyProjectSegment ? segments.slice(4) : segments.slice(2)\n  const hasRealizationSegment = rest[0] === \"realization\" || rest[0] === \"realizations\"\n  const projectPath = rest.length ? `/${rest.join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\" : \"/\"\n  const realizationId = hasRealizationSegment ? decodeRouteSegment(rest[1]) : null\n  const realizationPath =\n    hasRealizationSegment && rest.length > (rest[1] ? 2 : 1)\n      ? `/${rest.slice(rest[1] ? 2 : 1).join(\"/\")}`.replace(/\\/+$/, \"\") || \"/\"\n      : \"/\"\n\n  return {\n    rawPath: normalized,\n    section: \"project\",\n    organizationSlug,\n    projectId,\n    projectPath,\n    hasRealizationSegment,\n    realizationId,\n    realizationPath,\n  }\n}\n","<script lang=\"ts\">\n  import type { RootRenderState } from \"../../../../_shared/_logic/root-render-contract\"\n\n  let { renderState }: { renderState: RootRenderState } = $props()\n</script>\n\n{#key renderState.key}\n    {@const ActiveComponent = renderState.component}\n    <ActiveComponent {...renderState.props} />\n{/key}\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import {\n    getAppFrame,\n    provideAppSubview,\n    type AppSubviewConfig,\n  } from \"../../../../core/navigation/appFrame\"\n\n  let { config, children }: { config: AppSubviewConfig; children: Snippet } = $props()\n  provideAppSubview(() => config)\n  const frame = getAppFrame()\n  const owner = Symbol(\"app-subview\")\n  $effect(() => frame?.subview.register(owner, config))\n</script>\n\n{@render children()}\n","<script lang=\"ts\">\n  import AppFrame from \"@kontextwerk/web-sdk/ui/layout/AppFrame.svelte\"\n  import AppSubview from \"@kontextwerk/web-sdk/ui/layout/AppSubview.svelte\"\n  import AppFooter from \"@kontextwerk/web-sdk/ui/layout/AppFooter.svelte\"\n  import Header from \"../../_shared/_modules/header\"\n  import LogoHeader from \"../../_shared/_modules/logo-header\"\n  import type { BrandingLogos } from \"../../_shared/_logic/branding\"\n  import RootShell from \"../../_shared/_modules/root-shell\"\n  import type { RootRenderState } from \"../../../_shared/_logic/root-render-contract\"\n  let {\n    renderState,\n    branding,\n    hideLogo,\n    statusCenterLink,\n  }: {\n    renderState: RootRenderState\n    branding: BrandingLogos | null\n    hideLogo: boolean\n    statusCenterLink: string\n  } = $props()\n</script>\n\n{#snippet detail()}\n  {#if renderState.workspace?.subview}\n    <AppSubview config={renderState.workspace.subview}><RootShell {renderState} /></AppSubview>\n  {/if}\n{/snippet}\n\n{#if renderState.workspace}\n  <AppFrame\n    workspaceKey={renderState.workspace.key}\n    showWorkspaceTitle={false}\n    detail={renderState.workspace.subview ? detail : undefined}\n  >\n    {#snippet brand()}<LogoHeader {branding} {hideLogo} />{/snippet}\n    {#snippet actions()}<Header {branding} {hideLogo} />{/snippet}\n    {#snippet footer()}<AppFooter\n        {branding}\n        extraLegalLinks={[{ href: statusCenterLink, label: \"Systemstatus\" }]}\n      />{/snippet}\n    {#snippet children()}\n      {@const Workspace = renderState.workspace.component}\n      <Workspace {...renderState.workspace.props} />\n    {/snippet}\n  </AppFrame>\n{/if}\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  const {\n    lang = \"de\",\n    tags = [\"googleAnalytics\", \"youtube\"],\n    necessaryCookies = [\"ccSA\", \"ccTags\"],\n    privacyPolicyUrl = \"/datenschutz\",\n    bannerScriptSrc = \"https://cookie-consent.kontextwerk.agency/cc.js\",\n    primaryColor = \"#ad514c\",\n    primaryHoverColor = \"#741e20\",\n    secondaryColor = \"#ad514c\",\n    backgroundColor = \"#0d0c0c\",\n    fingerprint = true,\n    fingerprintLabel = null,\n  }: {\n    lang?: string\n    tags?: string | string[] | null\n    necessaryCookies?: string | string[] | null\n    privacyPolicyUrl?: string\n    bannerScriptSrc?: string\n    primaryColor?: string\n    primaryHoverColor?: string\n    secondaryColor?: string\n    backgroundColor?: string\n    fingerprint?: boolean\n    fingerprintLabel?: string | null\n  } = $props()\n\n  const toCsv = (value: string | string[] | null | undefined) => {\n    if (!value) return null\n\n    if (Array.isArray(value)) {\n      const normalized = value\n        .map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n        .filter(Boolean)\n\n      return normalized.length ? normalized.join(\",\") : null\n    }\n\n    const normalized = value.trim()\n\n    return normalized ? normalized : null\n  }\n\n  onMount(() => {\n    if (typeof document === \"undefined\") return\n\n    if (document.getElementById(\"ccScript\")) return\n\n    const script = document.createElement(\"script\")\n    script.id = \"ccScript\"\n    script.src = bannerScriptSrc\n\n    script.setAttribute(\"data-cc-lang\", lang)\n\n    const tagValue = toCsv(tags)\n\n    if (tagValue) {\n      script.setAttribute(\"data-cc-tags\", tagValue)\n    }\n\n    const necessaryValue = toCsv(necessaryCookies)\n\n    if (necessaryValue) {\n      script.setAttribute(\"data-cc-necessary-cookies\", necessaryValue)\n    }\n\n    script.setAttribute(\"data-cc-privacy-policy-url\", privacyPolicyUrl)\n    script.setAttribute(\"data-cc-primary-color\", primaryColor)\n    script.setAttribute(\"data-cc-primary-hover-color\", primaryHoverColor)\n    script.setAttribute(\"data-cc-secondary-color\", secondaryColor)\n    script.setAttribute(\"data-cc-background-color\", backgroundColor)\n\n    if (!fingerprint) {\n      script.setAttribute(\"data-cc-fingerprint\", \"false\")\n    }\n\n    if (fingerprintLabel) {\n      script.setAttribute(\"data-cc-fingerprint-label\", fingerprintLabel)\n    }\n\n    document.head.appendChild(script)\n  })\n</script>\n","<script module lang=\"ts\">\n  export type Theme = \"KontextWerk\" | \"KehrBlatt\"\n</script>\n\n<script lang=\"ts\">\n  type KwGlobals = typeof globalThis & { __kwSetStylingObserver?: MutationObserver }\n\n  const { theme = \"KontextWerk\" }: { theme?: Theme } = $props()\n  const globals = globalThis as KwGlobals\n  const STYLE_MARKERS = ['data-kw-theme=\"KehrBlatt\"', \"data-kw-theme=KehrBlatt\"]\n\n  const dedupeSetStylingStyles = () => {\n    if (typeof document === \"undefined\") return\n\n    const styles = Array.from(document.querySelectorAll(\"style\")).filter((styleEl) => {\n      const content = styleEl.textContent\n\n      return content !== null && STYLE_MARKERS.some((marker) => content.includes(marker))\n    })\n\n    if (styles.length < 2) return\n\n    const seen: Record<string, true> = Object.create(null)\n    styles.forEach((styleEl) => {\n      const key = (styleEl.textContent ?? \"\").trim()\n\n      if (seen[key]) {\n        styleEl.remove()\n\n        return\n      }\n\n      seen[key] = true\n      styleEl.setAttribute(\"data-kw-setstyling\", \"true\")\n    })\n  }\n\n  const ensureStyleDedupe = () => {\n    dedupeSetStylingStyles()\n\n    if (typeof document === \"undefined\" || typeof MutationObserver === \"undefined\") return\n\n    if (globals.__kwSetStylingObserver) return\n\n    const observer = new MutationObserver(dedupeSetStylingStyles)\n    observer.observe(document.documentElement, { childList: true, subtree: true })\n    globals.__kwSetStylingObserver = observer\n  }\n\n  ensureStyleDedupe()\n\n  $effect(() => {\n    if (typeof document === \"undefined\") return\n\n    ensureStyleDedupe()\n    const normalizedTheme: Theme = theme === \"KehrBlatt\" ? \"KehrBlatt\" : \"KontextWerk\"\n    const root = document.documentElement\n    const previousTheme = root.dataset.kwTheme\n    root.dataset.kwTheme = normalizedTheme\n\n    return () => {\n      if (previousTheme === undefined) {\n        root.removeAttribute(\"data-kw-theme\")\n\n        return\n      }\n\n      root.dataset.kwTheme = previousTheme\n    }\n  })\n</script>\n\n<style lang=\"less\" global>\n  @import \"../../tokens.less\";\n  @import \"../../fonts.less\";\n  @import \"../../base.less\";\n  @import \"../../forms.less\";\n  :root {\n    /* Gradients */\n    --wire:\n      linear-gradient(-77.29deg, rgba(0, 0, 0, 0) 0%, rgba(13, 12, 12, 1) 44.86416280269623%),\n      linear-gradient(98.68deg, rgba(0, 0, 0, 0) 0%, rgba(13, 12, 12, 1) 44.86416280269623%),\n      linear-gradient(180deg, rgba(51, 45, 44, 1) 0%, rgba(51, 45, 44, 0) 100%);\n    --bg-grey-cultured: linear-gradient(to left, #0d0c0c, #0d0c0c);\n\n    /* Typography */\n    --quote-font-family: Poly-Italic, sans-serif;\n    --quote-font-size: 20px;\n    --quote-line-height: normal;\n    --quote-font-weight: 400;\n    --quote-font-style: italic;\n    --font-family-base: \"Outfit\", sans-serif;\n    --font-family-regular: \"Outfit-Regular\", sans-serif;\n    --font-family-bold: \"Outfit-Bold\", sans-serif;\n    --font-family-heading: var(--font-family-bold);\n    --font-family: var(--font-family-base);\n\n    /* Shadows */\n    --glow-box-shadow: 0px 0px 20px 0px rgba(209, 231, 224, 1);\n    --glow2-box-shadow: 0px 0px 20px 0px rgba(209, 231, 224, 0.2);\n    --redglow-box-shadow:\n      0px 0px 24px 0px rgba(116, 30, 32, 1), 0px 0px 20px 0px rgba(116, 30, 32, 1);\n    --blackglow-box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 1);\n    --buttunshadow-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.25);\n    --redneonglow-box-shadow: 0px 0px 20px 0px rgba(255, 13, 0, 1);\n    --blueneonglow-box-shadow: 0px 0px 20px 0px rgba(0, 255, 240, 1);\n    --innershadow-box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.25);\n    --redneonglow2-box-shadow:\n      0px 0px 20px 0px rgba(116, 30, 32, 1), inset 0px 0px 1px 0px rgba(0, 0, 0, 1);\n    --dropshadow-box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.2);\n\n    /* Palette */\n    --text-100: #f3eed9;\n    --text-200: #d1e7e0;\n    --text-300: #625755;\n    --text-invers-100: #2f4858;\n    --text-invers-150: #6d97b0;\n    --text-invers-200: #741e20;\n    --primary-100: #741e20;\n    --primary-200: #ad514c;\n    --bg-100: #0d0c0c;\n    --bg-200: #332d2c;\n    --bg-300: #eceaea;\n    --neutral-white: #ffffff;\n\n    /* Layout */\n    --vertical-default-margin: 3rem;\n    --small-max-width: 1392px;\n    --normal-max-width: 1776px;\n    --horizontal-default-margin: 1.2rem;\n\n    /* Legacy compatibility tokens */\n    --primary-050: #f7e6e6;\n    --primary-075: #f0caca;\n    --primary-150: #8c2f2f;\n    --primary-300: #d17670;\n    --text-000: #0d0c0c;\n    --text-050: #202020;\n    --text-075: #2b2a2a;\n    --text-40: rgba(243, 238, 217, 0.4);\n    --text-60: rgba(243, 238, 217, 0.6);\n    --text-muted: rgba(243, 238, 217, 0.72);\n    --text-subtle: rgba(243, 238, 217, 0.55);\n    --text-reverse-100: #202020;\n    --text: var(--text-100);\n    --white-100: #ffffff;\n    --grey-100: #f8f9fa;\n    --grey-200: #dee2e6;\n    --grey-300: #adb5bd;\n    --grey-400: #667085;\n    --grey-500: #475467;\n    --yellow-100: #ffcf00;\n    --confirm-100: #18a999;\n    --red-100: var(--primary-100);\n    --red-200: var(--primary-200);\n    --red-300: #ff6a63;\n    --blue-100: #0f4c75;\n    --green-200: #0c796c;\n    --bg-050: #181414;\n    --bg-075: #241f1f;\n    --bg-150: #1c1818;\n    --bg-250: #3f3a39;\n    --surface-base: #191414;\n    --surface-raised: #221d1c;\n    --surface-overlay: #292322;\n    --surface-muted: #2f2726;\n    --surface-border: rgba(243, 238, 217, 0.12);\n    --surface-border-soft: rgba(243, 238, 217, 0.08);\n    --surface-border-strong: rgba(173, 81, 76, 0.35);\n    --shadow-soft: 0 24px 48px rgba(0, 0, 0, 0.3);\n    --shadow-card: 0 14px 32px rgba(15, 23, 42, 0.35);\n    --card-padding: 1.2rem;\n    --default-gap: 1.2rem;\n    --max-width: var(--normal-max-width);\n    --focus-ring: 0 0 0 3px rgba(173, 81, 76, 0.24);\n    --input-border: rgba(71, 84, 103, 0.24);\n    --input-border-focus: rgba(173, 81, 76, 0.45);\n    --input-focus-ring: 0 0 0 3px rgba(173, 81, 76, 0.25);\n    --input-bg: rgba(255, 255, 255, 0.96);\n    --input-bg-focus: #ffffff;\n    --input-color: var(--text-050);\n    --input-placeholder: rgba(243, 238, 217, 0.64);\n    --input-label-color: var(--text-invers-150);\n    --input-helper-color: rgba(243, 238, 217, 0.55);\n    --input-checkbox-accent: var(--primary-200);\n    --input-active-box-shadow: 0 0 1.2rem rgba(222, 226, 230, 1);\n    --hover-color: var(--text-invers-100);\n    --panel-bg: rgba(19, 18, 18, 0.86);\n    --panel-border: rgba(243, 238, 217, 0.12);\n    --panel-shadow: 0 18px 36px rgba(15, 23, 42, 0.25);\n    --monospace-font:\n      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\",\n      monospace;\n    --kontext-primary: #ad514c;\n    --kontext-primary-hover: #741e20;\n    --kontext-accent: #18a999;\n    --kontext-surface: #0d0c0c;\n    --kontext-panel: #191414;\n    --kontext-panel-muted: #221d1c;\n    --kontext-panel-overlay: #2a2322;\n    --kontext-border: rgba(243, 238, 217, 0.12);\n    --kontext-border-strong: rgba(173, 81, 76, 0.35);\n    --kontext-text: #f3eed9;\n    --kontext-text-muted: rgba(243, 238, 217, 0.72);\n    --kontext-text-subtle: rgba(243, 238, 217, 0.55);\n    --kontext-header-text: #f3eed9;\n    --kontext-error: #ff6a63;\n    --kontext-outline: rgba(173, 81, 76, 0.55);\n    --kontext-bubble-assistant: rgba(41, 35, 34, 0.92);\n    --kontext-bubble-assistant-border: rgba(243, 238, 217, 0.08);\n    --kontext-bubble-assistant-shadow: 0 12px 36px rgba(10, 8, 8, 0.48);\n    --kontext-bubble-user: #ad514c;\n    --kontext-bubble-user-shadow: 0 16px 36px rgba(173, 81, 76, 0.32);\n    --kontext-button-shadow: 0 22px 48px rgba(10, 8, 8, 0.58);\n    --kontext-scrollbar: rgba(173, 81, 76, 0.45);\n    --kontext-shadow: 0 26px 52px rgba(10, 8, 8, 0.55);\n    --skeleton-from: rgba(15, 23, 42, 0.06);\n    --skeleton-mid: rgba(15, 23, 42, 0.14);\n    --skeleton-to: rgba(15, 23, 42, 0.06);\n    --card-fade-strong: rgba(173, 81, 76, 0.45);\n    --card-fade-secondary: rgba(47, 72, 88, 0.55);\n    --card-shadow: var(--redneonglow2-box-shadow);\n    --list-accent: var(--primary-100);\n    --list-hover-strength: 14%;\n  }\n\n  :root[data-kw-theme=\"KehrBlatt\"] {\n    --font-family-base: Helvetica, Arial, sans-serif;\n    --font-family-regular: var(--font-family-base);\n    --font-family-bold: var(--font-family-base);\n    --font-family-heading: var(--font-family-bold);\n    --font-family: var(--font-family-base);\n\n    input,\n    textarea,\n    select {\n      font-family: var(--font-family-base);\n    }\n\n    --confirm-100: #0ed163;\n\n    --kontext-primary: var(--primary-200);\n    --kontext-primary-hover: var(--primary-100);\n    --kontext-accent: #3f3e3e;\n    --kontext-border-strong: color-mix(in srgb, var(--primary-100) 32%, transparent);\n    --kontext-outline: color-mix(in srgb, var(--primary-100) 45%, transparent);\n    --kontext-bubble-user: var(--primary-200);\n    --kontext-bubble-user-shadow: 0 16px 36px\n      color-mix(in srgb, var(--primary-100) 32%, transparent);\n    --kontext-scrollbar: color-mix(in srgb, var(--primary-100) 45%, transparent);\n    --focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary-200) 32%, transparent);\n    --input-border-focus: color-mix(in srgb, var(--primary-100) 55%, transparent);\n    --input-focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary-100) 26%, transparent);\n    --card-fade-strong: color-mix(in srgb, var(--primary-100) 38%, transparent);\n    --card-fade-secondary: color-mix(in srgb, var(--primary-150) 28%, transparent);\n    --card-shadow: 0 18px 42px color-mix(in srgb, var(--primary-100) 24%, rgba(0, 0, 0, 0.6));\n    --list-hover-strength: 10%;\n  }\n\n  @media @tablet {\n    :root {\n      --horizontal-default-margin: 2.4rem;\n    }\n  }\n  @media @large_desktop {\n    :root {\n      --horizontal-default-margin: 3.6rem;\n    }\n  }\n</style>\n","<script lang=\"ts\" module>\n  import \"simplebar\"\n  import \"simplebar/dist/simplebar.css\"\n</script>\n\n<script lang=\"ts\">\n  import { containOverlayFocus } from \"./_logic/contain-focus\"\n  import { mdiCloseCircleOutline, mdiFullscreen, mdiFullscreenExit } from \"@mdi/js\"\n  import type { Snippet } from \"svelte\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import {\n    overlays,\n    isMobile,\n    changeStateOfSite,\n    requestCloseOverlaysFromIndex,\n    setOverlayCloseDisabled,\n  } from \"../../../../core/overlay/globalStores\"\n\n  const resolveIsDark = (overlay: { isDark?: boolean }, index: number) =>\n    overlay.isDark === undefined ? (index + 1) % 2 === 1 : overlay.isDark\n\n  const overlayVisible = $derived($overlays.length > 0)\n  $effect(() => {\n    changeStateOfSite(overlayVisible)\n  })\n\n  let dispatched = $state<boolean[]>([])\n  let isFullscreen = $state(false)\n  let fullscreenSeedOverlayId = $state<string | null>(null)\n  let actionButtonSnippets = $state<Record<string, Snippet | null>>({})\n\n  const visibleOverlayCount = $derived(\n    $overlays.reduce(\n      (count, entry, index) => count + (entry.hideTillDispatch && !dispatched[index] ? 0 : 1),\n      0,\n    ),\n  )\n  const visibleOverlayIndices = $derived(\n    $overlays\n      .map((overlay, index) => ({ overlay, index }))\n      .filter(({ overlay, index }) => !(overlay.hideTillDispatch && !dispatched[index]))\n      .map(({ index }) => index),\n  )\n  const topVisibleOverlayIndex = $derived(\n    visibleOverlayIndices.length ? visibleOverlayIndices[visibleOverlayIndices.length - 1] : -1,\n  )\n  const hasMultipleVisibleOverlays = $derived(visibleOverlayIndices.length > 1)\n  const collapsedOverlayIndices = $derived.by(() => {\n    if ($isMobile) return []\n\n    if (visibleOverlayIndices.length <= 2) return []\n\n    const newest = visibleOverlayIndices[visibleOverlayIndices.length - 1]\n    const secondNewest = visibleOverlayIndices[visibleOverlayIndices.length - 2]\n    const activeIndex = visibleOverlayIndices.find((index) => $overlays[index]?.active) ?? -1\n\n    const expanded = [newest]\n\n    if (activeIndex !== -1 && activeIndex !== newest) {\n      expanded.push(activeIndex)\n    } else if (secondNewest !== undefined) {\n      expanded.push(secondNewest)\n    }\n\n    return visibleOverlayIndices.filter((index) => !expanded.includes(index))\n  })\n  const showFullscreenToggle = $derived(visibleOverlayCount === 1 && !$isMobile)\n  const effectiveFullscreen = $derived(showFullscreenToggle && isFullscreen)\n  const activeOverlay = $derived($overlays.find((entry) => entry.active) ?? null)\n  const effectiveMobileFullscreen = $derived(\n    Boolean($isMobile && activeOverlay?.defaultMobileFullscreen),\n  )\n  const effectiveOverlayFullscreen = $derived(effectiveFullscreen || effectiveMobileFullscreen)\n  const visibleActionButtonSnippets = $derived.by(() => {\n    const activeIds = new Set($overlays.map((entry) => entry.id))\n    const next: Record<string, Snippet | null> = {}\n    Object.entries(actionButtonSnippets).forEach(([id, snippet]) => {\n      if (activeIds.has(id)) next[id] = snippet\n    })\n\n    return next\n  })\n\n  $effect(() => {\n    const activeId = activeOverlay?.id ?? null\n\n    if (!activeId) {\n      isFullscreen = false\n      fullscreenSeedOverlayId = null\n\n      return\n    }\n\n    if (fullscreenSeedOverlayId === activeId) return\n\n    fullscreenSeedOverlayId = activeId\n    isFullscreen = Boolean(activeOverlay?.defaultFullscreen)\n  })\n\n  const setActiveOverlay = (index: number) => {\n    overlays.update((list) =>\n      list.map((entry, position) => ({ ...entry, active: position === index })),\n    )\n  }\n  const ensureActiveOverlay = () => {\n    if (!$overlays.length) return\n\n    if ($overlays.some((entry) => entry.active)) return\n\n    if ($overlays.some((entry) => entry.hideTillDispatch)) {\n      const hidden = $overlays.findIndex((entry) => entry.hideTillDispatch)\n\n      if (hidden > 0) setActiveOverlay(hidden - 1)\n      else if ($overlays.length > 1) setActiveOverlay(1)\n      else setActiveOverlay(0)\n    } else {\n      const lastIndex = $overlays.length - 1\n\n      if (lastIndex >= 0) setActiveOverlay(lastIndex)\n    }\n  }\n\n  $effect(() => {\n    ensureActiveOverlay()\n  })\n\n  const closeModal = async (index: number, force = false) => {\n    const overlayId = $overlays[index]?.id\n\n    if (!force && $overlays.slice(Math.max(0, index)).some((entry) => entry.closeDisabled)) return\n\n    const closingIds = $overlays.slice(Math.max(0, index)).map((entry) => entry.id)\n\n    if (!closingIds.length) return\n\n    if (!(await requestCloseOverlaysFromIndex(index, force))) return\n\n    dispatched = dispatched.slice(0, Math.max(0, index))\n\n    if (overlayId) {\n      const next = { ...actionButtonSnippets }\n      for (const id of closingIds) {\n        delete next[id]\n      }\n      actionButtonSnippets = next\n    }\n  }\n\n  const closeTopVisibleOverlay = () => {\n    if (topVisibleOverlayIndex < 0) return\n\n    closeModal(topVisibleOverlayIndex)\n  }\n\n  const handleShowOverlay = (index: number) => {\n    if (!dispatched[index]) {\n      dispatched[index] = true\n    }\n  }\n\n  const setActionButtonsForOverlay =\n    (overlayId: string) =>\n    (snippet: Snippet | null = null) => {\n      actionButtonSnippets = { ...actionButtonSnippets, [overlayId]: snippet }\n    }\n\n  let overlayRoot: HTMLDivElement | null = $state(null)\n  $effect(() => {\n    if (!overlayRoot) return\n\n    if (!hasMultipleVisibleOverlays) return\n\n    const active = document.activeElement as HTMLElement | null\n\n    if (!active) return\n\n    const blocked = active.closest?.(\".content-block.blocked\")\n\n    if (!blocked) return\n\n    overlayRoot.focus()\n  })\n</script>\n\n<div\n  class=\"sidebarOverlay\"\n  class:visible={$overlays.length}\n  bind:this={overlayRoot}\n  id=\"overlay\"\n  role=\"dialog\"\n  tabindex=\"-1\"\n  aria-labelledby=\"overlayTitle\"\n  aria-label=\"Overlay\"\n  aria-modal=\"true\"\n  onclick={closeTopVisibleOverlay}\n  onkeydown={(event) => {\n    if (event.key !== \"Escape\" || event.defaultPrevented || topVisibleOverlayIndex < 0) return\n\n    if (event.target instanceof Element && event.target.closest(\"dialog[open]\")) return\n\n    // A close guard may open a native confirmation during this key event.\n    event.preventDefault()\n    event.stopPropagation()\n    closeTopVisibleOverlay()\n  }}\n>\n  <section class=\"dark-side\" role=\"presentation\"></section>\n  <div\n    class=\"content-side\"\n    class:mobileFullscreen={effectiveMobileFullscreen}\n    class:fullscreen={effectiveFullscreen}\n  >\n    {#each $overlays as overlay, i (overlay.id)}\n      {@const isDark = resolveIsDark(overlay, i)}\n      {@const visiblePosition = visibleOverlayIndices.indexOf(i)}\n      {@const isVisible = visiblePosition !== -1}\n      {@const isBlocked = hasMultipleVisibleOverlays && isVisible && i !== topVisibleOverlayIndex}\n      {@const leftNeighborIndex =\n        visiblePosition === -1 ? undefined : visibleOverlayIndices[visiblePosition + 1]}\n      {@const leftNeighbor = leftNeighborIndex === undefined ? null : $overlays[leftNeighborIndex]}\n      {@const hasLeftNeighbor = Boolean(leftNeighborIndex !== undefined && leftNeighbor)}\n      {@const leftNeighborIsDark =\n        leftNeighborIndex === undefined || !leftNeighbor\n          ? false\n          : resolveIsDark(leftNeighbor, leftNeighborIndex)}\n      {@const darkOnDark = hasLeftNeighbor && isDark && leftNeighborIsDark}\n      {@const lightOnLight = hasLeftNeighbor && !isDark && !leftNeighborIsDark}\n      {@const crinkleFill = isDark ? \"var(--bg-100)\" : \"var(--neutral-white)\"}\n      <section\n        class=\"content-block\"\n        tabindex=\"-1\"\n        use:containOverlayFocus={isVisible && !isBlocked && overlay.active === true}\n        class:active={overlay.active}\n        class:dark={isDark}\n        class:edgeBody={overlay.bodyPadding === \"none\"}\n        class:recordBody={overlay.layout === \"record\"}\n        class:darkOnDark\n        class:lightOnLight\n        class:blocked={isBlocked}\n        class:hideTillDispatch={overlay.hideTillDispatch}\n        class:hideIt={!dispatched[i]}\n        class:collapsed={collapsedOverlayIndices.includes(i)}\n        class:fullscreen={effectiveOverlayFullscreen && overlay.active}\n        aria-hidden={isBlocked ? \"true\" : undefined}\n        inert={isBlocked}\n        data-overlay-index={i}\n        onclick={(event) => event.stopPropagation()}\n      >\n        {#if isBlocked}\n          <div class=\"interaction-shield\" aria-hidden=\"true\"></div>\n        {/if}\n        <header\n          role=\"button\"\n          tabindex=\"0\"\n          onclick={() => setActiveOverlay(i)}\n          onkeydown={(event) => {\n            if (event.key === \"Enter\" || event.key === \" \") {\n              setActiveOverlay(i)\n            }\n          }}\n        >\n          <div\n            class=\"upper-bar\"\n            class:noBg={i === $overlays.length - 1 ||\n              $overlays.filter((entry) => entry.hideTillDispatch).length >\n                dispatched.filter(Boolean).length}\n          >\n            <div class=\"crinkle desktop-crinkle\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"90\"\n                height=\"88\"\n                viewBox=\"0 0 90 88\"\n                fill=\"none\"\n              >\n                <path d=\"M89.2394 88V0L0 88H89.2394Z\" fill={crinkleFill}></path>\n                <path class=\"crinkle-divider\" d=\"M89.2394 0L0 88\" fill=\"none\"></path>\n              </svg>\n            </div>\n            <div class=\"crinkle mobile-crinkle\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"38\"\n                height=\"70\"\n                viewBox=\"0 0 38 70\"\n                fill=\"none\"\n              >\n                <path d=\"M38.2384 70V0L0 70H38.2384Z\" fill={crinkleFill}></path>\n                <path class=\"crinkle-divider\" d=\"M38.2384 0L0 70\" fill=\"none\"></path>\n              </svg>\n            </div>\n            {#if typeof overlay.title === \"string\"}\n              <h2 id=\"overlayTitle\">\n                {overlay.title.length > 45 ? overlay.title.slice(0, 42) + \"...\" : overlay.title}\n              </h2>\n            {:else if typeof overlay.title === \"function\"}\n              {@const TitleComponent = overlay.title}\n              <TitleComponent />\n            {:else}\n              <h2 id=\"overlayTitle\">Dialog</h2>\n            {/if}\n            <div class=\"close\">\n              {#if showFullscreenToggle}\n                <button\n                  type=\"button\"\n                  aria-label={effectiveFullscreen ? \"Fenster verkleinern\" : \"Vollbild\"}\n                  onclick={(event) => {\n                    event.stopPropagation()\n                    isFullscreen = !effectiveFullscreen\n                  }}\n                  class=\"fullscreen-btn\"\n                >\n                  <Icon\n                    path={effectiveFullscreen ? mdiFullscreenExit : mdiFullscreen}\n                    size={$isMobile ? \"24px\" : \"32px\"}\n                  />\n                </button>\n              {/if}\n              <button\n                type=\"button\"\n                aria-label={overlay.closeDisabled\n                  ? \"Dialog kann während der Verarbeitung nicht geschlossen werden\"\n                  : \"Close\"}\n                disabled={overlay.closeDisabled}\n                onclick={(event) => {\n                  event.stopPropagation()\n                  closeModal(i)\n                }}\n                class=\"close-btn\"\n              >\n                <Icon path={mdiCloseCircleOutline} size={$isMobile ? \"24px\" : \"32px\"} />\n              </button>\n            </div>\n            <div></div>\n          </div>\n          <div class=\"lower-bar\"></div>\n        </header>\n        <div class=\"scroll-container\" class:active={overlay.active} data-simplebar>\n          <div class=\"content-listing\">\n            {#key overlay.reload ?? overlay.id}\n              {@const ContentComponent = overlay.content}\n              {@const overlayId = overlay.id}\n              <ContentComponent\n                onshowOverlay={() => handleShowOverlay(i)}\n                onremoveOverlay={() => closeModal(i, true)}\n                setActionButtonSnippet={setActionButtonsForOverlay(overlayId)}\n                {...overlay.properties ?? {}}\n                setCloseDisabled={(disabled: boolean) =>\n                  setOverlayCloseDisabled(overlayId, disabled)}\n              />\n            {/key}\n          </div>\n        </div>\n        {#if visibleActionButtonSnippets[overlay.id]}\n          <div class=\"overlay-action-footer\">\n            <div class=\"dialog-actions\">\n              {@render visibleActionButtonSnippets[overlay.id]!()}\n            </div>\n          </div>\n        {/if}\n      </section>\n    {/each}\n  </div>\n</div>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n\n  :global .sidebarOverlay {\n    position: fixed;\n    left: 0;\n    right: 0;\n    width: 100vw;\n    height: 100%;\n    top: 0;\n    overflow: hidden;\n    z-index: 9999;\n    background: rgba(0, 0, 0, 0.2);\n    display: flex;\n    align-items: flex-end;\n    bottom: -200%;\n    top: 200%;\n    transition: all 0.25s ease;\n    // Prevent hidden overlays from swallowing taps/swipes (iOS Safari can be\n    // especially sensitive to off-screen fixed layers).\n    pointer-events: none;\n\n    &.visible {\n      bottom: 0;\n      top: 0;\n      left: 0;\n      pointer-events: auto;\n    }\n\n    @media @desktop {\n      top: 0;\n      bottom: 0;\n      right: -100vw;\n      left: 100vw;\n\n      &.visible {\n        right: 0;\n      }\n    }\n\n    .dark-side {\n      flex-grow: 1;\n      height: 100%;\n    }\n\n    .content-side {\n      width: 100vw;\n      display: flex;\n      align-items: flex-end;\n      flex-direction: column-reverse;\n      height: 100%;\n\n      @media @desktop {\n        flex-direction: row-reverse;\n      }\n\n      @media @mobile {\n        height: 70%;\n      }\n\n      &.mobileFullscreen,\n      &.fullscreen {\n        @media @mobile {\n          height: 100%;\n        }\n      }\n\n      .content-block {\n        height: 100%;\n        width: 100%;\n        min-height: 0;\n        display: flex;\n        flex-direction: column;\n        position: relative;\n        @media @mobile {\n          height: unset;\n        }\n        &.hideTillDispatch.hideIt {\n          display: none;\n        }\n\n        header {\n          .upper-bar {\n            width: 100%;\n            display: flex;\n            height: 88px;\n            background-color: var(--bg-100);\n\n            &.noBg {\n              background-color: transparent;\n            }\n\n            .crinkle {\n              height: 100%;\n              width: auto;\n              margin-right: -1px;\n\n              .crinkle-divider {\n                stroke: transparent;\n                stroke-width: 1px;\n                vector-effect: non-scaling-stroke;\n                shape-rendering: crispEdges;\n              }\n            }\n\n            .mobile-crinkle {\n              display: none;\n            }\n\n            @media @mobile {\n              height: 70px;\n\n              .desktop-crinkle {\n                display: none;\n              }\n\n              .mobile-crinkle {\n                display: block;\n              }\n            }\n\n            h2 {\n              background-color: var(--neutral-white);\n              flex-grow: 1;\n              color: var(--text-invers-100);\n              display: flex;\n              align-items: flex-end;\n              font-size: 22px;\n              font-weight: 700;\n              line-height: 1.3;\n\n              @media (max-width: 767px) {\n                font-size: 19px;\n              }\n            }\n\n            .close {\n              background-color: var(--neutral-white);\n              padding-top: 0.6rem;\n              padding-right: 27px;\n              color: var(--text-invers-100);\n              display: flex;\n              align-items: flex-end;\n              gap: 0.6rem;\n\n              button {\n                color: var(--text-invers-100);\n                border: none;\n                background: transparent;\n                cursor: pointer;\n              }\n\n              .close-btn {\n                transform: none;\n              }\n            }\n          }\n\n          .lower-bar {\n            height: 1.2rem;\n            background-color: white;\n            width: 100%;\n          }\n        }\n\n        &.active {\n          @media @mobile {\n            height: unset;\n            max-height: calc(100vh - 200px);\n            flex-grow: 1;\n          }\n        }\n\n        .simplebar-content {\n          height: 100%;\n\n          @media @mobile {\n            padding-top: 12px !important;\n          }\n        }\n\n        .simplebar-track {\n          @media @mobile {\n            margin-top: 12px !important;\n            margin-bottom: 12px;\n          }\n        }\n\n        &:only-child {\n          height: 100%;\n        }\n\n        @media @desktop {\n          width: 50vw;\n          border-left: 1px solid var(--bg-invers-100, var(--bg-100));\n        }\n\n        .interaction-shield {\n          position: absolute;\n          inset: 0;\n          z-index: 10;\n          background: transparent;\n        }\n\n        &.darkOnDark {\n          @media @desktop {\n            border-left: 1px solid var(--neutral-white);\n          }\n\n          header {\n            .upper-bar {\n              .crinkle {\n                background-color: var(--bg-100);\n                position: relative;\n\n                &::before {\n                  content: \"\";\n                  position: absolute;\n                  top: 0;\n                  bottom: 0;\n                  left: -2px;\n                  width: 2px;\n                  background-color: var(--bg-100);\n                  pointer-events: none;\n                }\n\n                .crinkle-divider {\n                  stroke: var(--neutral-white);\n                }\n              }\n            }\n          }\n        }\n\n        &.lightOnLight {\n          @media @desktop {\n            border-left: 1px solid var(--bg-invers-100, var(--bg-100));\n\n            &::before {\n              content: \"\";\n              position: absolute;\n              top: 88px;\n              bottom: 0;\n              left: 0;\n              z-index: 2;\n              width: 1px;\n              background-color: var(--bg-invers-100, var(--bg-100));\n              pointer-events: none;\n            }\n          }\n\n          header {\n            .upper-bar {\n              .crinkle {\n                background-color: var(--neutral-white);\n                position: relative;\n\n                &::before {\n                  content: \"\";\n                  position: absolute;\n                  top: 0;\n                  bottom: 0;\n                  left: -2px;\n                  width: 2px;\n                  background-color: var(--neutral-white);\n                  pointer-events: none;\n                }\n\n                .crinkle-divider {\n                  stroke: var(--bg-invers-100, var(--bg-100));\n                }\n              }\n            }\n          }\n        }\n\n        @media @large_desktop {\n          width: max(40vw, 828px);\n        }\n\n        &.fullscreen {\n          @media @desktop {\n            width: 100vw;\n            max-width: 100vw;\n            border-left: none;\n          }\n\n          @media @mobile {\n            height: 100%;\n            max-height: 100%;\n            flex-grow: 1;\n          }\n        }\n\n        &.collapsed {\n          @media @desktop {\n            width: 88px;\n            min-width: 88px;\n            max-width: 88px;\n            flex: 0 0 88px;\n            border-left: 1px solid var(--bg-invers-100, var(--bg-100));\n\n            &.darkOnDark {\n              border-left: 1px solid var(--neutral-white);\n            }\n\n            overflow: hidden;\n            background-color: var(--neutral-white);\n\n            header {\n              .upper-bar {\n                justify-content: flex-start;\n              }\n\n              h2,\n              .close {\n                display: none;\n              }\n\n              .lower-bar {\n                display: none;\n              }\n            }\n\n            .scroll-container {\n              display: none;\n            }\n\n            .overlay-action-footer {\n              display: none;\n            }\n          }\n        }\n\n        .scroll-container {\n          flex: 1 1 auto;\n          min-height: 0;\n          padding-right: 1.6rem;\n          transition: height 0.3s;\n          background-color: var(--neutral-white);\n          padding-top: 2.4rem;\n\n          @media @mobile {\n            &:not(.active) {\n              height: 0;\n              max-height: 0;\n              padding-top: 0;\n              overflow: hidden;\n            }\n          }\n\n          .simplebar-track {\n            background-color: rgba(13, 12, 12, 0.25);\n            width: 7px;\n            overflow: visible;\n            margin-left: 5px;\n            margin-right: 1.6rem;\n            margin-top: 2.4rem;\n\n            @media @mobile {\n              margin-right: 1rem;\n            }\n          }\n\n          .simplebar-scrollbar {\n            transition-duration: 0ms !important;\n            cursor: pointer;\n\n            &::before {\n              background-color: var(--bg-100);\n              top: -2px;\n              left: -2px;\n              opacity: 1;\n              border-radius: 0;\n              width: 11px;\n              height: calc(100% + 2px);\n              transition-delay: 0s;\n            }\n          }\n        }\n\n        .content-listing {\n          width: 100%;\n          box-sizing: border-box;\n          background-color: var(--neutral-white);\n          display: flex;\n          padding-left: 88px;\n          padding-right: 0.4rem;\n          @media @mobile {\n            padding-left: 38px;\n            padding-right: 0.4rem;\n          }\n          flex-direction: column;\n          flex-grow: 1;\n        }\n\n        &.edgeBody {\n          --progress-content-padding-top: 2.4rem;\n          --progress-content-padding-left: 88px;\n          --progress-content-padding-right: 2rem;\n          --progress-content-padding-bottom: 0px;\n\n          @media @mobile {\n            --progress-content-padding-left: 38px;\n            --progress-content-padding-right: 1.4rem;\n          }\n\n          header {\n            flex: 0 0 auto;\n\n            &:focus-visible {\n              outline: 2px solid var(--primary-200);\n              outline-offset: -2px;\n            }\n\n            .upper-bar h2,\n            .upper-bar .close {\n              align-items: center;\n            }\n\n            .upper-bar .close {\n              padding-top: 0;\n            }\n\n            .lower-bar {\n              height: 0;\n            }\n          }\n          .scroll-container {\n            padding: 0;\n          }\n          .content-listing {\n            padding: 0;\n            min-width: 0;\n          }\n          .simplebar-content {\n            padding-top: 0 !important;\n          }\n          .simplebar-track {\n            margin-top: 0 !important;\n            margin-right: 0;\n          }\n        }\n\n        .overlay-action-footer {\n          position: sticky;\n          bottom: 0;\n          z-index: 1;\n          padding-top: 0.4rem;\n          padding-left: 88px;\n          padding-right: 1.6rem;\n          padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1.2rem);\n          background-color: var(--neutral-white);\n\n          @media @mobile {\n            padding-left: 38px;\n            padding-right: 1rem;\n          }\n\n          .dialog-actions {\n            display: flex;\n            justify-content: flex-start;\n            gap: 0.8rem;\n            margin-top: 1.2rem;\n            padding-top: 0.8rem;\n            border-top: 1px solid color-mix(in srgb, var(--text-invers-100) 14%, transparent);\n          }\n        }\n\n        &.dark {\n          p:not(.record-header--overlay p):not(.field-editor-popover p) {\n            color: var(--text-100) !important;\n          }\n          @media @desktop {\n            &.collapsed {\n              background-color: var(--bg-100);\n            }\n          }\n\n          header {\n            .upper-bar {\n              background-color: var(--neutral-white);\n\n              &.noBg {\n                background-color: transparent;\n              }\n\n              h2 {\n                background-color: var(--bg-100);\n                color: var(--text-100);\n              }\n\n              .close {\n                background-color: var(--bg-100);\n\n                button {\n                  color: var(--text-100) !important;\n                  transform: translate(0, 25%);\n\n                  @media @mobile {\n                    transform: translate(-50%, 25%);\n                  }\n\n                  svg {\n                    fill: var(--text-100);\n                  }\n                }\n\n                .close-btn {\n                  transform: translate(25%, 25%);\n\n                  @media @mobile {\n                    transform: translate(-50%, 25%);\n                  }\n                }\n              }\n            }\n\n            .lower-bar {\n              background-color: var(--bg-100);\n            }\n          }\n\n          .scroll-container {\n            background-color: var(--bg-100);\n\n            .simplebar-track {\n              background-color: rgba(255, 255, 255, 0.2);\n            }\n\n            .simplebar-scrollbar::before {\n              background-color: white;\n            }\n          }\n\n          .content-listing {\n            background-color: var(--bg-100);\n            color: var(--text-100);\n          }\n\n          .overlay-action-footer {\n            background-color: var(--bg-100);\n\n            .dialog-actions {\n              border-top: 1px solid color-mix(in srgb, var(--text-100) 18%, transparent);\n            }\n          }\n        }\n        &.recordBody:not(.collapsed) {\n          --kw-record-overlay-inset: 24px;\n          @media (max-width: 767px) {\n            --kw-record-overlay-inset: 16px;\n          }\n          > header {\n            flex: 0 0 auto;\n            .upper-bar {\n              height: 52px;\n              background: var(--neutral-white);\n              padding-left: var(--kw-record-overlay-inset);\n              box-sizing: border-box;\n              .crinkle {\n                display: none;\n              }\n              h2 {\n                margin: 0;\n                font-size: 16px;\n                letter-spacing: 0;\n                align-items: center;\n              }\n              .close {\n                padding: 0 var(--kw-record-overlay-inset) 0 12px;\n                align-items: center;\n                gap: 4px;\n                button,\n                button.close-btn {\n                  transform: none;\n                  width: 36px;\n                  height: 44px;\n                  padding: 0;\n                }\n                button svg {\n                  width: 22px;\n                  height: 22px;\n                }\n              }\n            }\n            .lower-bar {\n              display: none;\n            }\n          }\n          &.dark > header .upper-bar {\n            background: var(--bg-100);\n          }\n          .scroll-container,\n          .content-listing {\n            padding: 0;\n          }\n          .record-overlay-content {\n            padding: 20px var(--kw-record-overlay-inset);\n            box-sizing: border-box;\n            min-width: 0;\n          }\n          .overlay-action-footer {\n            padding-inline: var(--kw-record-overlay-inset);\n            padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 16px);\n          }\n        }\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import ModalDialog from \"../modal-dialog/index\"\n  import {\n    approvals,\n    resolveApproval,\n    type ApprovalEntry,\n  } from \"../../../../core/overlay/approvals\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiWindowClose, mdiCheck } from \"@mdi/js\"\n  const activeApproval = $derived($approvals[0] ?? null)\n  let processing = $state(false)\n\n  const handleApproval = async (entry: ApprovalEntry, approved: boolean) => {\n    if (processing || !entry) return\n\n    processing = true\n    try {\n      await resolveApproval(entry, approved)\n    } catch (err) {\n      console.error(\"approval_action_failed\", err)\n    } finally {\n      processing = false\n    }\n  }\n</script>\n\n{#if activeApproval}\n  <ModalDialog\n    appearance=\"plain\"\n    title={activeApproval.title}\n    size=\"medium\"\n    closeLabel={activeApproval.declineLabel}\n    onClose={() => handleApproval(activeApproval, false)}\n  >\n    {#snippet content()}\n      <div class=\"approval-modal\">\n        <p class=\"approval__description\">{activeApproval.description}</p>\n      </div>\n    {/snippet}\n\n    {#snippet footerSnippet()}\n      <div class=\"approval-modal\"\n        ><div class=\"approval__actions\">\n          <CTA\n            darkMode={false}\n            type=\"secondaryButton\"\n            onClick={() => handleApproval(activeApproval, false)}\n            content={activeApproval.declineLabel}\n          >\n            {#snippet iconSnippet()}\n              <Icon path={mdiWindowClose} />\n            {/snippet}\n          </CTA>\n          <CTA\n            darkMode={false}\n            type=\"primaryButton\"\n            onClick={() => handleApproval(activeApproval, true)}\n            content={processing ? \"Bitte warten...\" : activeApproval.approvalLabel}\n          >\n            {#snippet iconSnippet()}\n              <Icon path={mdiCheck} />\n            {/snippet}\n          </CTA>\n        </div></div\n      >\n    {/snippet}\n  </ModalDialog>\n{/if}\n\n<style lang=\"less\" global>\n  @import \"../../../../theme/tokens.less\";\n\n  .approval-modal {\n    display: flex;\n    flex-direction: column;\n    gap: 1.4rem;\n\n    .approval__description {\n      margin: 0;\n      color: var(--text-invers-100);\n      line-height: 1.5;\n    }\n\n    .approval__actions {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: center;\n      gap: 0.8rem;\n      width: 100%;\n      & > * {\n        flex: 1;\n        width: 0px;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { notifications, removeNotification } from \"../../../../core/overlay/notifications\"\n  import SafeHtml from \"../../../security/_modules/safe-html/index\"\n\n  function animateIt(node: HTMLElement) {\n    node.classList.add(\"activate\")\n\n    return {}\n  }\n</script>\n\n{#each $notifications as n (n)}\n  {#if n.blockUI}\n    <div class=\"blocker\"></div>\n  {/if}\n{/each}\n\n<div class=\"container\">\n  {#each $notifications as n (n)}\n    <div class=\"notification {n.class}\" use:animateIt>\n      <!-- svelte-ignore a11y_click_events_have_key_events -->\n      <!-- svelte-ignore a11y_no_static_element_interactions -->\n      <button class=\"close\" aria-label=\"Close notification\" onclick={() => removeNotification(n)}>\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n          ><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g\n            id=\"SVGRepo_tracerCarrier\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n          ></g><g id=\"SVGRepo_iconCarrier\">\n            <path\n              fill-rule=\"evenodd\"\n              clip-rule=\"evenodd\"\n              d=\"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z\"\n              fill=\"#0F1729\"\n            ></path>\n          </g></svg\n        >\n      </button>\n      <SafeHtml html={n.html} />\n    </div>\n  {/each}\n</div>\n\n<style lang=\"less\">\n  .container {\n    position: fixed;\n    top: 80px;\n    right: var(--horizontal-default-margin);\n    width: 300px;\n    min-width: 300px;\n    opacity: 0.9;\n    z-index: 9999;\n    .notification:nth-child(1) {\n      margin-top: 0px;\n    }\n    @media (max-width: 768px) {\n      width: auto;\n    }\n  }\n\n  .notification {\n    --kw-notification-background: #464646;\n    --kw-notification-color: #ffffff;\n    padding: 20px;\n    top: 40px;\n    border-radius: 5px;\n    z-index: 9999;\n    margin-top: 12px;\n    position: relative;\n    max-width: 300px;\n    min-width: 200px;\n    width: fit-content;\n    word-break: break-all;\n    background-color: var(--kw-notification-background);\n    color: var(--kw-notification-color) !important;\n\n    &.info {\n      --kw-notification-background: #464646;\n      --kw-notification-color: #ffffff;\n    }\n\n    &.success {\n      --kw-notification-background: #16a34a;\n      --kw-notification-color: #ffffff;\n    }\n\n    &.warning {\n      --kw-notification-background: #f97316;\n      --kw-notification-color: #ffffff;\n    }\n\n    &.error {\n      --kw-notification-background: #dc2626;\n      --kw-notification-color: #ffffff;\n    }\n    &.activate {\n      animation: fadeinUp 0.5s; /* 'forwards' behält den Endzustand der Animation bei */\n    }\n    @keyframes fadeinUp {\n      from {\n        position: absolute; /* Geändert zu 'absolute' für bessere Kontrolle */\n        transform: translateY(100%); /* Initial außerhalb des Sichtbereichs */\n        opacity: 0; /* Set initial opacity to 0 */\n        width: fit-content;\n      }\n      to {\n        position: absolute; /* Geändert zu 'absolute' für bessere Kontrolle */\n        opacity: 1;\n        transform: translateY(0); /* Endposition */\n        width: fit-content;\n      }\n    }\n    .close {\n      position: absolute;\n      top: 5px;\n      right: 5px;\n      cursor: pointer;\n      opacity: 0.5;\n      color: var(--neutral-white);\n    }\n  }\n\n  .blocker {\n    position: absolute;\n    background: #525151b8;\n    top: 0px;\n    left: 0px;\n    width: 100%;\n    height: 100%;\n    z-index: 2000;\n  }\n  .inModal {\n    top: initial;\n    top: calc(50% - 50vh + 100px) !important;\n    right: calc(50% - 50vw) !important;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import SetCookieConsent from \"../../../../theme/_modules/set-cookie-consent/index\"\n  import SetStyling from \"../../../../theme/_modules/set-styling/index\"\n  import type { Theme } from \"../../../../theme/_modules/set-styling/index\"\n  import HelpDialog from \"../../../help/_modules/help-dialog/index\"\n  import {\n    closeHelpDialog,\n    normalizeHelpDialogs,\n    resolvedHelpDialog,\n    setHelpDialogs,\n    type HelpDialogsResponse,\n  } from \"../../../../core/help/helpDialogs\"\n  import SidebarPanel from \"../../../layout/_modules/sidebar-panel/index\"\n  import Approvals from \"../../../overlay/_modules/approvals/index\"\n  import Notifications from \"../../../overlay/_modules/notifications/index\"\n\n  type HelpDialogMountConfig = {\n    enabled?: boolean\n    loader?: (() => Promise<HelpDialogsResponse | null>) | null\n  }\n\n  let {\n    theme,\n    cookieConsentTags = null,\n    showSidebar = false,\n    showApprovals = false,\n    showNotifications = false,\n    helpDialogs = null,\n  }: {\n    theme?: Theme\n    cookieConsentTags?: string[] | null\n    showSidebar?: boolean\n    showApprovals?: boolean\n    showNotifications?: boolean\n    helpDialogs?: HelpDialogMountConfig | null\n  } = $props()\n\n  const shouldRenderCookieConsent = $derived.by(\n    () => (cookieConsentTags ?? []).map((tag) => tag.trim()).filter(Boolean).length > 0,\n  )\n  const helpDialogLoader = $derived.by(() => {\n    if (!helpDialogs || helpDialogs.enabled === false) return null\n\n    return helpDialogs.loader ?? null\n  })\n\n  onMount(() => {\n    if (!helpDialogLoader) return\n\n    void (async () => {\n      try {\n        const payload = await helpDialogLoader()\n        setHelpDialogs(normalizeHelpDialogs(payload ?? {}))\n      } catch (err) {\n        console.error(\"support_mounts_help_dialogs_failed\", err)\n      }\n    })()\n  })\n</script>\n\n{#if shouldRenderCookieConsent}\n  <SetCookieConsent tags={cookieConsentTags ?? []} />\n{/if}\n<SetStyling {theme} />\n{#if showSidebar}\n  <SidebarPanel />\n{/if}\n{#if showApprovals}\n  <Approvals />\n{/if}\n{#if showNotifications}\n  <Notifications />\n{/if}\n{#if $resolvedHelpDialog}\n  <HelpDialog\n    open={true}\n    onClose={closeHelpDialog}\n    config={$resolvedHelpDialog.config}\n    context={$resolvedHelpDialog.context}\n  />\n{/if}\n","<script lang=\"ts\">\n  import {\n    initSentryClient,\n    setSentryRouteContext,\n    setSentryUserContext,\n    type SentryOptions,\n    type SentryRouteContext,\n    type SentryUserContextInput,\n  } from \"../../../../core/observability/sentry\"\n\n  let {\n    options = null,\n    route = null,\n    user = null,\n  }: {\n    options?: SentryOptions | null\n    route?: SentryRouteContext | null\n    user?: SentryUserContextInput\n  } = $props()\n\n  const sentryOptions = $derived.by(() => {\n    if (!options) return null\n\n    const hasProjectId = options.projectId !== undefined && options.projectId !== null\n    const hasDsn = Boolean(options.dsn)\n\n    if (!hasProjectId && !hasDsn) return null\n\n    return {\n      ...options,\n      environment: options.environment ?? undefined,\n    }\n  })\n\n  const sentryConfigKey = (opts: typeof sentryOptions) =>\n    opts ? `${opts.dsn ?? \"\"}:${opts.projectId ?? \"\"}:${opts.environment ?? \"\"}` : null\n\n  let lastSentryConfigKey: string | null = null\n\n  $effect(() => {\n    const opts = sentryOptions\n\n    if (!opts) {\n      lastSentryConfigKey = null\n\n      return\n    }\n\n    const key = sentryConfigKey(opts)\n\n    if (key !== lastSentryConfigKey) {\n      initSentryClient(opts)\n      lastSentryConfigKey = key\n    }\n\n    setSentryUserContext(user ?? null)\n    const ctx = route ?? {}\n    setSentryRouteContext({\n      path: ctx.path ?? \"/\",\n      search: ctx.search ?? null,\n      viewId: ctx.viewId ?? null,\n      orgSlug: ctx.orgSlug ?? null,\n      projectSlug: ctx.projectSlug ?? null,\n      realizationSlug: ctx.realizationSlug ?? null,\n    })\n  })\n</script>\n","<script lang=\"ts\">\n  import { onDestroy } from \"svelte\"\n  import type { AssistWidgetConfig } from \"../../../../core/assist/index\"\n  import { ensureAssistWidgetLoader, type WidgetLoaderOptions } from \"../../../../core/assist/index\"\n  import {\n    acquireBubbleSuppression,\n    releaseBubbleSuppression,\n    enableAssistBubble,\n    disableAssistBubble,\n  } from \"../../../../core/assist/index\"\n\n  type LoaderOverrides = Partial<WidgetLoaderOptions>\n\n  type Props = {\n    config?: AssistWidgetConfig | null\n    renderEmbed?: boolean\n    embed?: boolean\n    class?: string\n    style?: string\n    element?: \"web-chat-frame\" | \"web-chat\"\n    elementAttributes?: Record<string, string | null | undefined> | null\n    loaderOptions?: LoaderOverrides | null\n    widgetElement?: HTMLElement | null\n  }\n\n  let {\n    config = null,\n    renderEmbed = false,\n    embed = false,\n    class: className = \"\",\n    style = \"\",\n    element = \"web-chat-frame\",\n    elementAttributes = null,\n    loaderOptions = null,\n    widgetElement = $bindable<HTMLElement | null>(null),\n  }: Props = $props()\n\n  const shouldEmbed = $derived(renderEmbed || embed)\n  const suppressBubbleOnEmbed = $derived((loaderOptions?.suppressBubbleOnEmbed ?? false) === true)\n  let suppressionToken: symbol | null = null\n  let bubbleManagedByThisMount = false\n  let bubbleLoadRunId = 0\n\n  const normalizeValue = (value: string | null | undefined): string | null => {\n    if (!value) return null\n\n    const trimmed = value.trim()\n\n    return trimmed || null\n  }\n\n  const resolvedLoaderOptions = $derived.by(() => {\n    const overrides = loaderOptions ?? {}\n    const cfg = config ?? null\n    const project = overrides.project ?? cfg?.projectSlug ?? null\n    let cdnBase = overrides.cdnBase ?? cfg?.cdnBase ?? null\n\n    if (!project || !cdnBase) return null\n\n    const disableProjectHeader = overrides.disableProjectHeader ?? false\n    const organizationId = normalizeValue(\n      \"organizationId\" in overrides || \"orgId\" in overrides\n        ? (overrides.organizationId ?? overrides.orgId ?? null)\n        : (cfg?.organizationId ?? null),\n    )\n    const projectId = normalizeValue(\n      disableProjectHeader\n        ? ((\"projectId\" in overrides ? overrides.projectId : null) ?? null)\n        : ((\"projectId\" in overrides ? overrides.projectId : cfg?.projectId) ?? null),\n    )\n    const omitRealization = overrides.omitRealization ?? false\n    const rawRealizationId =\n      \"realizationId\" in overrides\n        ? (overrides.realizationId ?? null)\n        : (cfg?.realizationId ?? null)\n    const realizationId = omitRealization ? null : normalizeValue(rawRealizationId)\n\n    if (typeof window !== \"undefined\" && window.location.host.includes(\".org\")) {\n      const hostname = window.location.hostname\n      const hostParts = hostname.split(\".\").filter(Boolean)\n\n      if (hostParts.length >= 3) {\n        hostParts[0] = \"widgets\"\n        const port = window.location.port ? `:${window.location.port}` : \"\"\n        cdnBase = `${window.location.protocol}//${hostParts.join(\".\")}${port}`\n      }\n    }\n\n    return {\n      project,\n      cdnBase,\n      apiBase: overrides.apiBase ?? cfg?.apiBase ?? null,\n      chatStream: overrides.chatStream ?? cfg?.chatStream ?? null,\n      transcriptionStream: overrides.transcriptionStream ?? cfg?.transcriptionStream ?? null,\n      adminKey: overrides.adminKey ?? cfg?.adminKey ?? null,\n      organizationId,\n      orgId: organizationId,\n      projectId,\n      realizationId,\n      disableProjectHeader,\n      omitRealization,\n      workOrderId: overrides.workOrderId ?? null,\n      propertyId: overrides.propertyId ?? null,\n      contactStepId: overrides.contactStepId ?? null,\n      contactOrderId: overrides.contactOrderId ?? null,\n      contactSource: overrides.contactSource ?? null,\n      contactUuid: overrides.contactUuid ?? null,\n      bubbleWhenNoEmbed: overrides.bubbleWhenNoEmbed ?? false,\n      registerOnly: overrides.registerOnly ?? true,\n    } satisfies WidgetLoaderOptions\n  })\n\n  const overridesRealization = (\n    attrs: Record<string, string | null | undefined>,\n  ): string | undefined => {\n    const candidate = attrs[\"realization\"] ?? attrs[\"realization-id\"] ?? attrs[\"realizationId\"]\n\n    return candidate ?? undefined\n  }\n\n  const elementProps = $derived.by(() => {\n    if (!config) return null\n\n    const attrs = elementAttributes ?? {}\n    const loader = resolvedLoaderOptions\n    const explicitRealization = overridesRealization(attrs)\n    const realization =\n      loader?.omitRealization === true\n        ? explicitRealization\n        : (explicitRealization ?? config.realizationId ?? undefined)\n\n    return {\n      project: config.projectSlug,\n      \"api-base\": config.apiBase ?? undefined,\n      \"chat-stream\": config.chatStream ?? undefined,\n      \"transcription-stream\": config.transcriptionStream ?? undefined,\n      \"admin-key\": config.adminKey ?? undefined,\n      \"organization-id\": loader?.organizationId ?? undefined,\n      \"project-id\": loader?.projectId ?? undefined,\n      \"realization-id\": loader?.realizationId ?? undefined,\n      \"disable-project-header\": loader?.disableProjectHeader ? \"true\" : undefined,\n      realization,\n      ...attrs,\n    }\n  })\n\n  $effect(() => {\n    if (!shouldEmbed || !suppressBubbleOnEmbed) {\n      if (suppressionToken) {\n        releaseBubbleSuppression(suppressionToken)\n      }\n\n      suppressionToken = null\n\n      return\n    }\n\n    if (suppressionToken) return\n\n    suppressionToken = acquireBubbleSuppression()\n  })\n\n  $effect(() => {\n    const loader = resolvedLoaderOptions\n\n    if (!loader) {\n      if (!shouldEmbed && bubbleManagedByThisMount) {\n        disableAssistBubble()\n        bubbleManagedByThisMount = false\n      }\n\n      return\n    }\n\n    if (shouldEmbed && bubbleManagedByThisMount) {\n      disableAssistBubble()\n      bubbleManagedByThisMount = false\n    }\n\n    const runId = ++bubbleLoadRunId\n    const loaderOptions: WidgetLoaderOptions = {\n      project: loader.project,\n      apiBase: loader.apiBase ?? undefined,\n      chatStream: loader.chatStream ?? undefined,\n      transcriptionStream: loader.transcriptionStream ?? undefined,\n      cdnBase: loader.cdnBase,\n      adminKey: loader.adminKey ?? undefined,\n      organizationId: loader.organizationId ?? undefined,\n      orgId: loader.orgId ?? undefined,\n      projectId: loader.projectId ?? undefined,\n      realizationId: loader.realizationId ?? undefined,\n      disableProjectHeader: loader.disableProjectHeader ?? undefined,\n      omitRealization: loader.omitRealization ?? undefined,\n      workOrderId: loader.workOrderId ?? undefined,\n      propertyId: loader.propertyId ?? undefined,\n      contactStepId: loader.contactStepId ?? undefined,\n      contactOrderId: loader.contactOrderId ?? undefined,\n      contactSource: loader.contactSource ?? undefined,\n      contactUuid: loader.contactUuid ?? undefined,\n      bubbleWhenNoEmbed: loader.bubbleWhenNoEmbed ?? false,\n      registerOnly: loader.registerOnly ?? true,\n    }\n\n    // Bubble mounts must be fully controlled from here so scope IDs can update reliably.\n    if (!shouldEmbed) {\n      loaderOptions.registerOnly = true\n      loaderOptions.bubbleWhenNoEmbed = false\n    }\n\n    void (async () => {\n      await ensureAssistWidgetLoader(loaderOptions)\n\n      if (runId !== bubbleLoadRunId) return\n\n      if (shouldEmbed) return\n\n      if (!config) {\n        if (bubbleManagedByThisMount) {\n          disableAssistBubble()\n          bubbleManagedByThisMount = false\n        }\n\n        return\n      }\n\n      bubbleManagedByThisMount = true\n      await enableAssistBubble({\n        ...config,\n        organizationId: loader.organizationId ?? config.organizationId ?? null,\n        projectId: loader.projectId ?? config.projectId ?? null,\n        realizationId: loader.realizationId ?? config.realizationId ?? null,\n      })\n    })().catch((error) => {\n      console.warn(\"[assist] Failed to initialize assist widget mount\", error)\n    })\n  })\n\n  onDestroy(() => {\n    if (bubbleManagedByThisMount) {\n      disableAssistBubble()\n      bubbleManagedByThisMount = false\n    }\n\n    if (suppressionToken) {\n      releaseBubbleSuppression(suppressionToken)\n    }\n  })\n</script>\n\n{#if shouldEmbed}\n  <div class={`assist-embed ${className}`.trim()} style=\"height: 100%; {style} \">\n    {#if config && elementProps}\n      <svelte:element\n        this={element}\n        bind:this={widgetElement}\n        {...elementProps}\n        style=\"display: flex;flex-direction: column; height: 100%; width: 100%;\"\n        style-attr=\"display: flex;flex-direction: column; height: 100%;\"\n      ></svelte:element>\n    {:else}\n      <div class=\"assist-embed__warning\">Assist Widget ist nicht konfiguriert.</div>\n    {/if}\n  </div>\n{/if}\n\n<style lang=\"less\">\n  .assist-embed {\n    width: 100%;\n    height: 100%;\n    min-height: 0;\n    min-width: 0;\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n  }\n\n  .assist-embed__warning {\n    padding: 1rem;\n    border: 1px dashed var(--border-90);\n    border-radius: 10px;\n    color: var(--text-80);\n    background: color-mix(in srgb, var(--bg-100) 70%, transparent);\n  }\n</style>\n","<script lang=\"ts\">\n  import AssistWidgetMount from \"@kontextwerk/web-sdk/ui/assist/AssistWidgetMount.svelte\"\n  import {\n    internalAssistWidgetConfig,\n    isInternalAssistConfigured,\n  } from \"../../_logic/internal-assist\"\n  import { assistWidgetState as internalChatAssistState } from \"@kontextwerk/web-sdk/core\"\n\n  interface Props {\n    renderEmbed?: boolean\n    embed?: boolean\n    className?: string\n    style?: string\n    loaderOptions?: Record<string, any> | null\n    widgetElement?: HTMLElement | null\n  }\n  let {\n    renderEmbed = false,\n    embed = false,\n    className = \"\",\n    style = \"\",\n    loaderOptions = null,\n    widgetElement = $bindable<HTMLElement | null>(null),\n  }: Props = $props()\n\n  const syncWidgetElement = (host: HTMLDivElement | null) => {\n    widgetElement = host?.querySelector<HTMLElement>(\"web-chat, web-chat-frame, webchat\") ?? null\n  }\n\n  const observeWidgetHost = (host: HTMLDivElement) => {\n    syncWidgetElement(host)\n\n    if (typeof MutationObserver === \"undefined\") {\n      return {\n        destroy() {\n          syncWidgetElement(null)\n        },\n      }\n    }\n\n    const observer = new MutationObserver(() => syncWidgetElement(host))\n    observer.observe(host, {\n      childList: true,\n      subtree: true,\n    })\n\n    return {\n      destroy() {\n        observer.disconnect()\n        syncWidgetElement(null)\n      },\n    }\n  }\n\n  const readBooleanEnvFlag = (key: string): boolean => {\n    if (typeof globalThis === \"undefined\" || !globalThis) return false\n\n    const runtime = (\n      globalThis as typeof globalThis & {\n        process?: { env?: Record<string, string | undefined> }\n      }\n    ).process\n    const raw = runtime?.env?.[key]\n\n    return [\"1\", \"true\", \"yes\", \"on\"].includes(\n      String(raw ?? \"\")\n        .trim()\n        .toLowerCase(),\n    )\n  }\n  const isE2EMode = (() => {\n    return readBooleanEnvFlag(\"KW_E2E_MODE\")\n  })()\n\n  const scopedOrganizationId = $derived(\n    ($internalChatAssistState.organizationId ?? \"\").trim() || null,\n  )\n\n  const resolvedLoaderOptions = $derived.by(() => {\n    const overrides = loaderOptions ?? {}\n    const hasOrganizationOverride = \"organizationId\" in overrides || \"orgId\" in overrides\n    const organizationId = hasOrganizationOverride\n      ? ((overrides.organizationId ?? overrides.orgId ?? null) as string | null)\n      : scopedOrganizationId\n    const scopedRouting: {\n      organizationId: string | null\n      orgId: string | null\n    } = {\n      organizationId,\n      orgId: organizationId,\n    }\n\n    return {\n      bubbleWhenNoEmbed: false,\n      registerOnly: true,\n      ...scopedRouting,\n      ...overrides,\n      ...scopedRouting,\n    }\n  })\n</script>\n\n{#if !isE2EMode && $isInternalAssistConfigured && $internalAssistWidgetConfig}\n  <div class=\"internal-assist-mount\" use:observeWidgetHost>\n    <AssistWidgetMount\n      config={$internalAssistWidgetConfig}\n      {renderEmbed}\n      {embed}\n      class={className}\n      {style}\n      loaderOptions={resolvedLoaderOptions}\n    />\n  </div>\n{/if}\n\n<style lang=\"less\">\n  .internal-assist-mount {\n    display: contents;\n  }\n</style>\n","<script lang=\"ts\">\n  import type {\n    SentryOptions,\n    SentryRouteContext,\n    SentryUserContextInput,\n  } from \"@kontextwerk/web-sdk/core/observability/sentry\"\n  import type { Theme } from \"@kontextwerk/web-sdk/theme/SetStyling.svelte\"\n  import SupportMounts from \"@kontextwerk/web-sdk/ui/runtime/SupportMounts.svelte\"\n  import type { HelpDialogsResponse } from \"@kontextwerk/web-sdk/core/help/helpDialogs\"\n  import SetSentry from \"@kontextwerk/web-sdk/ui/observability/SetSentry.svelte\"\n  import InternalAssistMount from \"@kontextwerk/control-web-frame/shared/modules/internal-assist-mount\"\n  import { CONTROL_SERVER_ORIGIN } from \"../../../_shared/_logic/runtime-config\"\n\n  let {\n    theme,\n    isE2EMode = false,\n    showSidebar = false,\n    showApprovals = false,\n    showNotifications = false,\n    assistOrganizationId = null,\n    sentryOptions = null,\n    controlUser = null,\n    route = null,\n  }: {\n    theme?: Theme\n    isE2EMode?: boolean\n    showSidebar?: boolean\n    showApprovals?: boolean\n    showNotifications?: boolean\n    assistOrganizationId?: string | null\n    sentryOptions?: SentryOptions | null\n    controlUser?: SentryUserContextInput\n    route?: SentryRouteContext | null\n  } = $props()\n\n  const loadHelpDialogs = async (): Promise<HelpDialogsResponse | null> => {\n    try {\n      const res = await fetch(`${CONTROL_SERVER_ORIGIN}/api/v1/public/app/help-dialogs`, {\n        credentials: \"include\",\n      })\n\n      if (!res.ok) {\n        console.warn(\"public_help_dialogs_fetch_failed\", res.status)\n\n        return null\n      }\n\n      return (await res.json()) as HelpDialogsResponse\n    } catch (err) {\n      console.error(\"public_help_dialogs_fetch_failed\", err)\n\n      return null\n    }\n  }\n</script>\n\n<SupportMounts\n  {theme}\n  cookieConsentTags={isE2EMode ? null : [\"youtube\"]}\n  {showSidebar}\n  {showApprovals}\n  {showNotifications}\n  helpDialogs={{ loader: loadHelpDialogs }}\n/>\n<SetSentry options={sentryOptions} user={controlUser} {route} />\n{#if !isE2EMode}\n    <InternalAssistMount\n    loaderOptions={{\n      organizationId: assistOrganizationId,\n      orgId: assistOrganizationId,\n    }}\n  />\n{/if}\n","<script lang=\"ts\">\n  import { type Writable } from \"svelte/store\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import PageTemplate from \"../../../layout/_modules/page-template/index\"\n  import {\n    location as defaultLocation,\n    type LocationState,\n  } from \"../../../../core/routing/navigation\"\n  import type { PageNavigationEntry, PageTabConfig } from \"../../../../core/navigation/types\"\n  import SectionTitle from \"../../../typography/_modules/section-title/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiOpenInApp } from \"@mdi/js\"\n\n  type HomeTabBuilder =\n    | PageTabConfig[]\n    | null\n    | undefined\n    | (() => PageTabConfig[] | null | undefined)\n\n  type DefaultHomePageProps = {\n    title?: string\n    subtitle?: string | null\n    description?: string\n    ctaLabel?: string\n    onNavigate?: (() => void) | null\n    highlightLabel?: string | null\n    brightBackground?: boolean\n    border?: boolean\n    maxWidthAndCentered?: boolean\n    secondarySlotLabel?: string | null\n    children?: () => any\n    customTabs?: HomeTabBuilder\n    overviewTabTitle?: string\n    homePath?: string | null\n    locationStore?: Writable<LocationState>\n  }\n\n  let {\n    title = \"Willkommen\",\n    subtitle = null,\n    description = \"Starte über das Kontextwerk Control Admin Portal, um deine Projekte zu verwalten.\",\n    ctaLabel = \"Zur Projektübersicht\",\n    onNavigate = null,\n    highlightLabel = null,\n    brightBackground = true,\n    border = true,\n    maxWidthAndCentered = true,\n    children = null,\n    customTabs = null,\n    overviewTabTitle = \"Übersicht\",\n    homePath = null,\n    locationStore = defaultLocation,\n  }: DefaultHomePageProps = $props()\n\n  const normalizeTabs = (builder: HomeTabBuilder): PageTabConfig[] => {\n    const resolved = typeof builder === \"function\" ? builder() : builder\n\n    if (!Array.isArray(resolved)) return []\n\n    return resolved.filter(Boolean).map((tab) => ({\n      title: tab.title,\n      content: tab.content,\n    }))\n  }\n\n  const overviewTab: PageTabConfig = $derived.by(() => ({\n    title: overviewTabTitle,\n    content: overviewContent,\n  }))\n\n  const additionalTabs = $derived(normalizeTabs(customTabs))\n\n  const navigationPath = $derived.by(() => {\n    if (typeof homePath === \"string\" && homePath.trim()) {\n      return homePath.trim()\n    }\n\n    const current = $locationStore?.path ?? \"/\"\n\n    return current || \"/\"\n  })\n\n  const pageNavigation: PageNavigationEntry[] = $derived([\n    {\n      title: \"Homepage\",\n      path: navigationPath,\n      tabs: [overviewTab, ...additionalTabs],\n    },\n  ])\n</script>\n\n{#snippet overviewContent()}\n  <SectionTitle {title} {description} {subtitle} {brightBackground}>\n    {#snippet buttonSnippet()}\n      <CTA\n        type=\"primaryButton\"\n        content={ctaLabel}\n        onClick={() => {\n          onNavigate?.()\n        }}\n      >\n        {#snippet iconSnippet()}\n          <Icon path={mdiOpenInApp} />\n        {/snippet}\n      </CTA>\n    {/snippet}\n  </SectionTitle>\n  <div class=\"home-page\">\n    {#if children}\n      {@render children()}\n    {/if}\n  </div>\n{/snippet}\n\n<PageTemplate\n  viewKey={`default-home:${navigationPath}`}\n  {title}\n  subtitle={subtitle ?? undefined}\n  {pageNavigation}\n  {locationStore}\n/>\n\n<style lang=\"less\">\n</style>\n","<script lang=\"ts\">\n  import type { CardImportantNumber } from \"../../../../core/layout/card\"\n  import { tooltip } from \"../../../overlay/_modules/tooltip/index\"\n\n  interface Props {\n    contentSnippet?: () => any\n    children?: () => any\n    styles?: string\n    classes?: string\n    onClick?: (e: any) => void\n    ariaLabel?: string\n    hoverEffect?: boolean\n    innerStyles?: string\n    brightBackground?: boolean\n    inactive?: boolean\n    importantNumbers?: CardImportantNumber[]\n  }\n  let {\n    contentSnippet,\n    children,\n    styles,\n    innerStyles = \"\",\n    classes,\n    onClick,\n    ariaLabel,\n    hoverEffect = false,\n    brightBackground = false,\n    inactive = false,\n    importantNumbers = [],\n  }: Props = $props()\n  const slotContent = $derived(contentSnippet ?? children)\n  const keyboardAction = $derived(Boolean(onClick && ariaLabel))\n  const visibleImportantNumbers = $derived.by(() =>\n    (importantNumbers ?? []).filter(\n      (item) => Boolean(item?.key) && Boolean(String(item?.label ?? \"\").trim()),\n    ),\n  )\n\n  const formatImportantNumberValue = (value: number | string | null | undefined) => {\n    if (value === null || value === undefined || value === \"\") return \"–\"\n\n    if (typeof value === \"number\") return value.toLocaleString(\"de-DE\")\n\n    return value\n  }\n\n  const handleKeydown = (event: KeyboardEvent) => {\n    if (!keyboardAction || event.target !== event.currentTarget) return\n\n    if (event.key !== \"Enter\" && event.key !== \" \") return\n\n    event.preventDefault()\n\n    if (event.currentTarget instanceof HTMLElement) event.currentTarget.click()\n  }\n</script>\n\n<!-- svelte-ignore a11y_no_noninteractive_tabindex (named action cards expose a button role) -->\n<section\n  class=\"card {classes}\"\n  class:brightBackground\n  class:inactive\n  class:interactive={!!onClick}\n  class:hoverEffect\n  style={styles}\n  role={keyboardAction ? \"button\" : undefined}\n  tabindex={keyboardAction ? 0 : undefined}\n  aria-label={ariaLabel}\n  onclick={onClick}\n  onkeydown={handleKeydown}\n>\n  <div class=\"top-bar\">\n    <svg width=\"25\" height=\"24\" viewBox=\"0 0 25 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n      <g clip-path=\"url(#clip0_222_1800)\">\n        <path d=\"M24.338 24V0L0 24H24.338Z\" fill=\"var(--card-crinkle-fill)\"></path>\n      </g>\n      <defs>\n        <clipPath id=\"clip0_222_1800\">\n          <rect width=\"24.338\" height=\"24\" fill=\"white\"></rect>\n        </clipPath>\n      </defs>\n    </svg>\n    <div></div>\n  </div>\n\n  {#if slotContent}\n    <div class=\"card-content\" style={innerStyles}>\n      {@render slotContent()}\n    </div>\n  {/if}\n\n  {#if visibleImportantNumbers.length}\n    <div class=\"card-footer\">\n      {#each visibleImportantNumbers as item (item.key)}\n        <div class=\"card-footer__item\">\n          <div\n            class=\"card-footer__label\"\n            title={item.description}\n            use:tooltip={item.description ? { content: item.description } : false}\n          >\n            {item.label}\n          </div>\n          <div class=\"card-footer__value\">{formatImportantNumberValue(item.value)}</div>\n        </div>\n      {/each}\n    </div>\n  {/if}\n</section>\n\n<style lang=\"less\">\n  .card {\n    --card-crinkle-fill: var(--bg-100);\n\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    flex-direction: column;\n\n    @media (max-width: 600px) {\n      padding: 1.2rem;\n    }\n\n    &.interactive {\n      cursor: pointer;\n\n      &:focus-visible {\n        outline: 2px solid var(--primary-100);\n        outline-offset: 2px;\n      }\n    }\n\n    .top-bar {\n      height: 24px;\n      display: flex;\n\n      svg {\n        height: 25px;\n        width: 25px;\n        margin-right: -1px;\n      }\n\n      & > div {\n        flex: 1;\n        background: var(--bg-100);\n      }\n    }\n\n    .card-content {\n      position: relative; /* needed for ::before overlay */\n      padding: 1.2rem;\n      padding-top: 0px;\n      flex: 1;\n\n      /* base color (shows through transparent parts) */\n      background-color: var(--bg-100);\n\n      /* base cover/gradient */\n      background-image: linear-gradient(\n        to top,\n        color-mix(in srgb, var(--primary-200) 45%, transparent) 0%,\n        color-mix(in srgb, var(--primary-100) 35%, transparent) 30%,\n        color-mix(in srgb, var(--primary-100) 25%, transparent) 60%,\n        color-mix(in srgb, var(--primary-100) 0%, transparent) 100%\n      );\n      background-repeat: no-repeat;\n      background-size: 100% 100%;\n\n      /* hover overlay (transitioned) */\n      &::before {\n        content: \"\";\n        position: absolute;\n        inset: 0;\n\n        background-image: linear-gradient(\n          to top,\n          color-mix(in srgb, var(--primary-300) 55%, transparent) 0%,\n          color-mix(in srgb, var(--primary-200) 45%, transparent) 30%,\n          color-mix(in srgb, var(--primary-100) 35%, transparent) 60%,\n          color-mix(in srgb, var(--primary-100) 0%, transparent) 100%\n        );\n        background-repeat: no-repeat;\n        background-size: 100% 100%;\n\n        opacity: 0;\n        transition: opacity 0.5s;\n        will-change: opacity;\n        pointer-events: none;\n        z-index: 0;\n      }\n    }\n\n    .card-footer {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n      gap: 0;\n      padding: 0;\n      background-color: var(--bg-100);\n      background-image: linear-gradient(\n        to bottom,\n        color-mix(in srgb, var(--primary-200) 45%, transparent) 0%,\n        color-mix(in srgb, var(--primary-200) 41%, transparent) 18%,\n        color-mix(in srgb, var(--primary-100) 30%, transparent) 46%,\n        color-mix(in srgb, var(--primary-100) 18%, transparent) 72%,\n        color-mix(in srgb, var(--primary-100) 8%, transparent) 100%\n      );\n    }\n\n    .card-footer__item {\n      min-width: 0;\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) auto;\n      align-items: center;\n      gap: 0.45rem;\n      min-height: 2.2rem;\n      padding: 0.42rem 0.4rem 0.44rem;\n      background: transparent;\n\n      &:not(:first-child) {\n        border-left: 1px solid color-mix(in srgb, var(--text-100) 8%, transparent);\n      }\n    }\n\n    .card-footer__label {\n      min-width: 0;\n      overflow: hidden;\n      display: -webkit-box;\n      -webkit-box-orient: vertical;\n      -webkit-line-clamp: 2;\n      line-clamp: 2;\n      font-size: 0.76rem;\n      line-height: 1.05;\n      font-weight: 720;\n      letter-spacing: 0.01em;\n      color: color-mix(in srgb, var(--text-100) 78%, transparent);\n    }\n\n    .card-footer__value {\n      flex: 0 0 auto;\n      padding-left: 0.1rem;\n      font-size: 0.95rem;\n      line-height: 1.1;\n      font-weight: 780;\n      letter-spacing: 0.01em;\n      color: var(--text-100);\n      text-align: right;\n    }\n\n    &.brightBackground {\n      --card-crinkle-fill: #fff;\n\n      .top-bar {\n        & > div {\n          background: white;\n        }\n      }\n\n      .card-content {\n        background-color: white;\n\n        /* base gradient stays the same, just different base color */\n        background-image: linear-gradient(\n          to top,\n          color-mix(in srgb, var(--primary-200) 45%, transparent) 0%,\n          color-mix(in srgb, var(--primary-100) 35%, transparent) 30%,\n          color-mix(in srgb, var(--primary-100) 25%, transparent) 60%,\n          color-mix(in srgb, var(--primary-100) 0%, transparent) 100%\n        );\n      }\n\n      .card-footer {\n        background-color: white;\n        background-image: linear-gradient(\n          to bottom,\n          color-mix(in srgb, var(--primary-200) 45%, white 55%) 0%,\n          color-mix(in srgb, var(--primary-200) 34%, white 66%) 18%,\n          color-mix(in srgb, var(--primary-100) 22%, white 78%) 46%,\n          color-mix(in srgb, var(--primary-100) 12%, white 88%) 72%,\n          color-mix(in srgb, var(--primary-100) 8%, white 92%) 100%\n        );\n      }\n\n      .card-footer__item {\n        &:not(:first-child) {\n          border-left-color: color-mix(in srgb, var(--primary-100) 10%, transparent);\n        }\n      }\n\n      .card-footer__label {\n        color: color-mix(in srgb, var(--text-100) 72%, transparent);\n      }\n    }\n    &.inactive {\n      .card-content {\n        background-color: var(--bg-100) !important;\n        background-image: none !important;\n      }\n\n      .card-footer {\n        background-color: var(--bg-100) !important;\n        background-image: none !important;\n        border-top-color: transparent;\n      }\n\n      .card-footer__item {\n        background: color-mix(in srgb, var(--bg-200) 88%, var(--bg-100) 12%) !important;\n        border-color: transparent !important;\n      }\n    }\n    &.hoverEffect {\n      .card-content {\n        &:hover::before {\n          opacity: 1;\n        }\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import Card from \"../../../layout/_modules/card/index\"\n  import CrinkledSection from \"../../../layout/_modules/crinkled-section/index\"\n  import StatusPill from \"../../../display/_modules/status-pill/index\"\n  import ContactFormRow from \"../../../forms/_modules/contact-form-row/index\"\n  import type { Snippet } from \"svelte\"\n\n  type ControlAdminHostContext = {\n    id: \"werk-admin\" | \"index-admin\"\n    label: string\n    hostMarkers: string[]\n  }\n\n  const CONTROL_ADMIN_CONTEXTS: ControlAdminHostContext[] = [\n    {\n      id: \"werk-admin\",\n      label: \"Werk Admin\",\n      hostMarkers: [\"werk-admin\"],\n    },\n    {\n      id: \"index-admin\",\n      label: \"Index Admin\",\n      hostMarkers: [\"index-admin\"],\n    },\n  ]\n\n  const DEFAULT_CONTROL_ADMIN_ORIGIN = \"https://app.kontextwerk.dev\"\n  const isBrowser = typeof window !== \"undefined\"\n\n  type AccessDeniedPageProps = {\n    title?: string\n    statusLabel?: string | null\n    tone?: \"danger\" | \"positive\" | \"neutral\"\n    message?: string\n    hint?: string | null\n    brightBackground?: boolean\n    border?: boolean\n    maxWidthAndCentered?: boolean\n    contactEndpoint?: string | null\n    contactSectionId?: string\n    children?: Snippet\n    autoRedirectToControlAdmin?: boolean\n    controlAdminOrigin?: string | null\n    controlAdminLoginPath?: string\n    controlAdminRedirectDelayMs?: number\n  }\n\n  let {\n    title = \"Zugriff verweigert\",\n    statusLabel = \"Zugriff verweigert\",\n    tone = \"danger\",\n    message = \"Bitte öffne dieses Dashboard über das Kontextwerk Control Admin Portal und versuche es erneut.\",\n    hint = null,\n    brightBackground = true,\n    border = true,\n    maxWidthAndCentered = true,\n    contactEndpoint = null,\n    contactSectionId = \"kontakt-access-denied\",\n    children,\n    autoRedirectToControlAdmin = true,\n    controlAdminOrigin = null,\n    controlAdminLoginPath = \"/login\",\n    controlAdminRedirectDelayMs = 900,\n  }: AccessDeniedPageProps = $props()\n\n  type ControlAdminRedirectPlan = {\n    url: string\n    label: string\n  }\n\n  const normalizeOrigin = (value: string | null | undefined) => {\n    if (!value) return null\n\n    const trimmed = value.trim()\n\n    if (!trimmed) return null\n\n    return trimmed.replace(/\\/+$/, \"\")\n  }\n\n  const replaceHostMarker = (host: string, marker: string) => {\n    if (!marker) return null\n\n    const lowerHost = host.toLowerCase()\n    const lowerMarker = marker.toLowerCase()\n    const idx = lowerHost.indexOf(lowerMarker)\n\n    if (idx === -1) return null\n\n    return `${host.slice(0, idx)}app${host.slice(idx + marker.length)}`\n  }\n\n  const resolveHostContext = (): ControlAdminHostContext | null => {\n    if (!isBrowser) return null\n\n    const hostname = window.location.hostname.toLowerCase()\n\n    return (\n      CONTROL_ADMIN_CONTEXTS.find((context) =>\n        context.hostMarkers.some((marker) => hostname.includes(marker.toLowerCase())),\n      ) ?? null\n    )\n  }\n\n  const computeControlAdminOrigin = (markers?: string[]) => {\n    const provided = normalizeOrigin(controlAdminOrigin)\n\n    if (provided) {\n      return provided\n    }\n\n    if (!isBrowser) {\n      return DEFAULT_CONTROL_ADMIN_ORIGIN\n    }\n\n    const { protocol, hostname } = window.location\n    const lowerHost = hostname.toLowerCase()\n    const isLocal =\n      lowerHost.includes(\"localhost\") ||\n      lowerHost.startsWith(\"127.\") ||\n      lowerHost.endsWith(\".local\")\n\n    if (isLocal) {\n      return DEFAULT_CONTROL_ADMIN_ORIGIN\n    }\n\n    if (markers) {\n      for (const marker of markers) {\n        const replaced = replaceHostMarker(hostname, marker)\n\n        if (replaced) {\n          const scheme = protocol || \"https:\"\n\n          return `${scheme}//${replaced}`.replace(/\\/+$/, \"\")\n        }\n      }\n    }\n\n    return DEFAULT_CONTROL_ADMIN_ORIGIN\n  }\n\n  const buildLoginUrl = (origin: string) => {\n    try {\n      const loginPath = (controlAdminLoginPath?.trim() || \"/login\").replace(/\\/+$/, \"\")\n      const targetUrl = new URL(loginPath.startsWith(\"/\") ? loginPath : `/${loginPath}`, origin)\n\n      return targetUrl.toString()\n    } catch (err) {\n      console.warn(\"AccessDeniedPage: Failed to build Control Admin login URL\", err)\n\n      return null\n    }\n  }\n\n  const computeRedirectPlan = (): ControlAdminRedirectPlan | null => {\n    if (!isBrowser) return null\n\n    const context = resolveHostContext()\n    const origin = computeControlAdminOrigin(context?.hostMarkers)\n\n    if (!origin) {\n      return null\n    }\n\n    const planUrl = buildLoginUrl(origin)\n\n    if (!planUrl) {\n      return null\n    }\n\n    return {\n      url: planUrl,\n      label: context?.label ?? \"Control Admin\",\n    }\n  }\n\n  let redirectPlan = $state<ControlAdminRedirectPlan | null>(null)\n  let redirectTimer: number | null = null\n  let retryTimer: number | null = null\n\n  const scheduleRedirect = (plan: ControlAdminRedirectPlan) => {\n    redirectPlan = plan\n    const delay = Math.max(0, controlAdminRedirectDelayMs ?? 0)\n    console.info(\"[werk-admin][AccessDenied]\", \"redirect-planned\", {\n      label: plan.label,\n      url: plan.url,\n      delay,\n    })\n    redirectTimer = window.setTimeout(() => {\n      try {\n        window.location.assign(plan.url)\n      } catch (err) {\n        console.warn(\"AccessDeniedPage: Failed to navigate to Control Admin login\", err)\n      }\n    }, delay)\n  }\n\n  onMount(() => {\n    if (!autoRedirectToControlAdmin) {\n      return\n    }\n\n    const tryPlan = () => {\n      const plan = computeRedirectPlan()\n\n      if (plan) {\n        scheduleRedirect(plan)\n\n        return true\n      }\n\n      return false\n    }\n\n    const initialPlanned = tryPlan()\n\n    if (!initialPlanned) {\n      // Retry once shortly after mount to avoid races with other components stripping query params\n      const retryDelay = Math.max(50, Math.min(500, controlAdminRedirectDelayMs ?? 100))\n      retryTimer = window.setTimeout(() => {\n        if (redirectPlan || !autoRedirectToControlAdmin) return\n\n        console.info(\"[werk-admin][AccessDenied]\", \"redirect-retry\")\n        void tryPlan()\n      }, retryDelay)\n    } else {\n      console.info(\"[werk-admin][AccessDenied]\", \"redirect-initialized\")\n    }\n  })\n\n  onDestroy(() => {\n    if (redirectTimer !== null) {\n      clearTimeout(redirectTimer)\n      redirectTimer = null\n    }\n\n    if (retryTimer !== null) {\n      clearTimeout(retryTimer)\n      retryTimer = null\n    }\n  })\n</script>\n\n<CrinkledSection {brightBackground} {border} {maxWidthAndCentered}>\n  <Card>\n    {#snippet contentSnippet()}\n      <div class=\"access-denied\">\n        {#if statusLabel}\n          <StatusPill {tone}>{statusLabel}</StatusPill>\n        {/if}\n        <h1>{title}</h1>\n        <p class=\"message\">{message}</p>\n        {#if hint}\n          <p class=\"hint\">{hint}</p>\n        {/if}\n        {#if redirectPlan}\n          <p class=\"redirect-hint\">\n            Wir leiten dich gleich zum {redirectPlan.label} Login weiter.\n            <a href={redirectPlan.url}>Hier klicken</a>, falls nichts passiert.\n          </p>\n        {/if}\n        {@render children?.()}\n      </div>\n    {/snippet}\n  </Card>\n</CrinkledSection>\n\n<style lang=\"less\">\n  .access-denied {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n    padding: 3rem 2.4rem;\n    text-align: start;\n\n    h1 {\n      margin: 0;\n      font-size: clamp(1.6rem, 3vw, 2rem);\n      color: var(--text-100);\n    }\n\n    .message {\n      margin: 0;\n      color: color-mix(in srgb, var(--text-100) 80%, transparent);\n      line-height: 1.5;\n    }\n\n    .hint {\n      margin: 0;\n      font-size: 0.95rem;\n      color: color-mix(in srgb, var(--text-100) 70%, transparent);\n    }\n\n    :global(.cta-row) {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.8rem;\n      align-items: center;\n    }\n\n    .redirect-hint {\n      margin: 0;\n      font-size: 0.9rem;\n      color: color-mix(in srgb, var(--text-100) 65%, transparent);\n\n      a {\n        color: var(--primary-200);\n        text-decoration: underline;\n      }\n    }\n  }\n</style>\n","import { baseAPIURL, buildServiceHeaders } from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\n\nexport type DataSourceMetrics = {\n  data_source: string\n  metrics: Record<string, number>\n  captured_at: string\n  last_activity_at?: string | null\n}\n\nexport type RealizationMetrics = {\n  realization_id: string\n  realization_name: string\n  data_sources: DataSourceMetrics[]\n}\n\nexport type OrganizationAnalytics = {\n  organization_id: string\n  totals: Record<string, number>\n  data_sources: DataSourceMetrics[]\n}\n\nexport type OrganizationAnalyticsResponse = {\n  generated_at: string\n  organization: OrganizationAnalytics\n}\n\nexport async function fetchOrganizationAnalytics(\n  organizationId: string,\n): Promise<OrganizationAnalyticsResponse> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${baseAPIURL}/admin/metrics/organizations/${encodeURIComponent(organizationId)}`,\n      {\n        headers: buildServiceHeaders(),\n        cache: \"no-store\",\n      },\n    )\n  } catch (error) {\n    throw new Error(`Organisation-Analytics konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Organisation-Analytics konnten nicht geladen werden\")\n  }\n\n  return (await response.json()) as OrganizationAnalyticsResponse\n}\n","import { get, writable } from \"svelte/store\"\nimport { controlContext } from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\n\nimport { fetchOrganizationAnalytics, type OrganizationAnalytics } from \"../analytics\"\n\nconst organizationAnalytics = writable<OrganizationAnalytics | null>(null)\nconst analyticsLoading = writable(false)\nconst analyticsError = writable<string | null>(null)\n\nlet pendingOrganizationId: string | null = null\nlet analyticsRequestId = 0\ncontrolContext.subscribe(() => {\n  analyticsRequestId += 1\n  pendingOrganizationId = null\n  analyticsLoading.set(false)\n  analyticsError.set(null)\n  organizationAnalytics.set(null)\n})\n\ntype EnsureOrganizationAnalyticsOptions = {\n  force?: boolean\n}\n\nexport async function ensureOrganizationAnalytics(\n  organizationId: string | null,\n  options: EnsureOrganizationAnalyticsOptions = {},\n): Promise<void> {\n  const normalizedOrganizationId = String(organizationId ?? \"\").trim() || null\n  const forceReload = options.force === true\n\n  if (!normalizedOrganizationId) {\n    analyticsRequestId += 1\n    pendingOrganizationId = null\n    analyticsLoading.set(false)\n    analyticsError.set(null)\n    organizationAnalytics.set(null)\n\n    return\n  }\n\n  const current = get(organizationAnalytics)\n\n  if (!forceReload && current?.organization_id === normalizedOrganizationId) {\n    return\n  }\n\n  if (pendingOrganizationId === normalizedOrganizationId) {\n    return\n  }\n\n  const requestId = ++analyticsRequestId\n  pendingOrganizationId = normalizedOrganizationId\n  analyticsLoading.set(true)\n  analyticsError.set(null)\n\n  try {\n    const response = await fetchOrganizationAnalytics(normalizedOrganizationId)\n\n    if (requestId !== analyticsRequestId) return\n\n    organizationAnalytics.set(response.organization)\n  } catch (error) {\n    if (requestId !== analyticsRequestId) return\n\n    analyticsError.set(error instanceof Error ? error.message : String(error))\n    organizationAnalytics.set(null)\n  } finally {\n    if (requestId === analyticsRequestId) {\n      analyticsLoading.set(false)\n      pendingOrganizationId = null\n    }\n  }\n}\n\nexport { organizationAnalytics, analyticsLoading, analyticsError }\n","<script lang=\"ts\">\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import SectionTitle from \"../../../typography/_modules/section-title/index\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { mdiAccountOutline, mdiMessageTextOutline } from \"@mdi/js\"\n\n  interface Props {\n    title: string\n    subtitle?: string | null\n    description?: string | null\n    brightBackground?: boolean\n    maxWidth?: string\n    gap?: string\n    bodySnippet?: (() => any) | null\n    children?: (() => any) | null\n    onProfileClick?: (() => void) | null\n    profileButtonLabel?: string\n    profileButtonVisible?: boolean\n    feedbackHref?: string | null\n    onFeedbackClick?: (() => void) | null\n    feedbackPrompt?: string\n    feedbackCtaLabel?: string\n    feedbackOpenInNewTab?: boolean\n    feedbackVisible?: boolean\n  }\n\n  let {\n    title,\n    subtitle = null,\n    description = null,\n    brightBackground = true,\n    maxWidth = \"1120px\",\n    gap = \"2rem\",\n    bodySnippet = null,\n    children = null,\n    onProfileClick = null,\n    profileButtonLabel = \"Zum Profil\",\n    profileButtonVisible = true,\n    feedbackHref = null,\n    onFeedbackClick = null,\n    feedbackPrompt = \"Was soll auf die Startseite?\",\n    feedbackCtaLabel = \"Feedback teilen\",\n    feedbackOpenInNewTab = false,\n    feedbackVisible = true,\n  }: Props = $props()\n\n  const slotContent = $derived(bodySnippet ?? children)\n  const canShowProfileButton = $derived.by(() => Boolean(profileButtonVisible && onProfileClick))\n  const canShowFeedbackRow = $derived.by(() => {\n    if (!feedbackVisible) return false\n\n    return Boolean(onFeedbackClick || (feedbackHref && feedbackHref.trim()))\n  })\n  const wrapperStyle = $derived(`max-width: ${maxWidth}; gap: ${gap};`)\n\n  const openFeedback = () => {\n    if (onFeedbackClick) {\n      onFeedbackClick()\n\n      return\n    }\n\n    const href = feedbackHref?.trim()\n\n    if (!href || typeof window === \"undefined\") return\n\n    if (feedbackOpenInNewTab) {\n      window.open(href, \"_blank\", \"noopener,noreferrer\")\n\n      return\n    }\n\n    window.location.assign(href)\n  }\n\n  const handleFeedbackKeyDown = (event: KeyboardEvent) => {\n    if (event.key !== \"Enter\" && event.key !== \" \") return\n\n    event.preventDefault()\n    openFeedback()\n  }\n</script>\n\n<div class=\"homepage\" style={wrapperStyle}>\n  <SectionTitle\n    {title}\n    {subtitle}\n    {description}\n    {brightBackground}\n    styleOuter=\"margin-bottom: 0.4rem;\"\n  >\n    {#snippet secondaryCTA()}\n      {#if canShowProfileButton}\n        <CTA\n          type=\"tertiaryButton\"\n          content={profileButtonLabel}\n          icon={mdiAccountOutline}\n          darkMode={false}\n          onClick={() => onProfileClick?.()}\n          small={true}\n        />\n      {/if}\n    {/snippet}\n  </SectionTitle>\n\n  {#if slotContent}\n    <div class=\"homepage__body\">\n      {@render slotContent()}\n    </div>\n  {/if}\n\n  {#if canShowFeedbackRow}\n    <div\n      class=\"homepage__feedback-row\"\n      role=\"button\"\n      tabindex=\"0\"\n      onclick={openFeedback}\n      onkeydown={handleFeedbackKeyDown}\n    >\n      <div class=\"homepage__feedback-left\">\n        <Icon path={mdiMessageTextOutline} />\n        <span>{feedbackPrompt}</span>\n      </div>\n      <span class=\"homepage__feedback-right\">{feedbackCtaLabel}</span>\n    </div>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .homepage {\n    display: flex;\n    flex-direction: column;\n    width: 100%;\n    margin: 0 auto;\n  }\n\n  .homepage__body {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n  }\n\n  .homepage__feedback-row {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 1rem;\n    padding: 1.1rem 1.2rem;\n    border: 1px solid var(--bg-100);\n    background: color-mix(in srgb, var(--bg-100) 3%, transparent);\n    cursor: pointer;\n    user-select: none;\n\n    &:hover {\n      background: color-mix(in srgb, var(--bg-100) 7%, transparent);\n    }\n  }\n\n  .homepage__feedback-left {\n    display: flex;\n    align-items: center;\n    gap: 0.8rem;\n    color: var(--text-invers-100) !important;\n  }\n\n  .homepage__feedback-right {\n    font-weight: 700;\n    white-space: nowrap;\n    color: var(--text-invers-100) !important;\n  }\n  @media (max-width: 768px) {\n    .homepage__feedback-row {\n      padding: 0.9rem 1rem;\n    }\n  }\n</style>\n","import { baseAPIURL, buildServiceHeaders } from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\n\nexport type RetrieveDailyRequestPoint = {\n  date: string\n  requestCount: number\n}\n\nexport type RetrieveDailyLatencyPoint = {\n  date: string\n  p95Ms: number | null\n}\n\nexport type RetrieveDailyLatencyP50Point = {\n  date: string\n  p50Ms: number | null\n}\n\nexport type RetrieveOutcomeStats = {\n  success: number\n  no_result: number\n  partial_failure: number\n  full_failure: number\n  no_targets: number\n  internal_error: number\n}\n\nexport type RetrieveStatsResponse = {\n  totalRequests: number\n  noResultCount: number\n  noResultRate: number\n  latencyP50Ms: number | null\n  latencyP95Ms: number | null\n  outcomes: RetrieveOutcomeStats\n  topDocs: Array<{ dataId: string; sourceId: string | null; hits: number }>\n  topQueries: Array<{ queryHash: string; count: number; sampleQuery: string | null }>\n  dailyRequests: RetrieveDailyRequestPoint[]\n  dailyLatencyP50Ms: RetrieveDailyLatencyP50Point[]\n  dailyLatencyP95Ms: RetrieveDailyLatencyPoint[]\n  fromTs: string\n  toTs: string\n}\n\ntype RetrieveStatsApiResponse = {\n  total_requests: number\n  no_result_count: number\n  no_result_rate: number\n  latency_p50_ms: number | null\n  latency_p95_ms: number | null\n  outcomes: RetrieveOutcomeStats\n  top_docs: Array<{ data_id: string; source_id: string | null; hits: number }>\n  top_queries: Array<{ query_hash: string; count: number; sample_query: string | null }>\n  daily_requests: Array<{ date: string; request_count: number }>\n  daily_latency_p50_ms: Array<{ date: string; p50_ms: number | null }>\n  daily_latency_p95_ms: Array<{ date: string; p95_ms: number | null }>\n  from_ts: string\n  to_ts: string\n}\n\ntype RetrieveStatsParams = {\n  tenantId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n}\n\nexport async function fetchRetrieveStats(\n  { tenantId, projectId, realizationId }: RetrieveStatsParams,\n  days = 30,\n  limit = 10,\n  options: { includeTopDocs?: boolean; includeTopQueries?: boolean } = {},\n): Promise<RetrieveStatsResponse> {\n  const params = new URLSearchParams({\n    days: String(days),\n    limit: String(limit),\n  })\n  params.set(\"include_top_docs\", String(options.includeTopDocs ?? true))\n  params.set(\"include_top_queries\", String(options.includeTopQueries ?? true))\n\n  if (tenantId?.trim()) {\n    params.set(\"tenant_id\", tenantId.trim())\n  }\n\n  if (projectId?.trim()) {\n    params.set(\"project_id\", projectId.trim())\n  }\n\n  if (realizationId?.trim()) {\n    params.set(\"realization_id\", realizationId.trim())\n  }\n\n  let response: Response\n  try {\n    response = await fetchService(`${baseAPIURL}/admin/metrics/retrieval?${params.toString()}`, {\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`Retrieve-Statistiken konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Retrieve-Statistiken konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as RetrieveStatsApiResponse\n\n  return {\n    totalRequests: payload.total_requests,\n    noResultCount: payload.no_result_count,\n    noResultRate: payload.no_result_rate,\n    latencyP50Ms: payload.latency_p50_ms,\n    latencyP95Ms: payload.latency_p95_ms,\n    outcomes: payload.outcomes,\n    topDocs: payload.top_docs.map((item) => ({\n      dataId: item.data_id,\n      sourceId: item.source_id,\n      hits: item.hits,\n    })),\n    topQueries: payload.top_queries.map((item) => ({\n      queryHash: item.query_hash,\n      count: item.count,\n      sampleQuery: item.sample_query,\n    })),\n    dailyRequests: payload.daily_requests.map((item) => ({\n      date: item.date,\n      requestCount: item.request_count,\n    })),\n    dailyLatencyP50Ms: payload.daily_latency_p50_ms.map((item) => ({\n      date: item.date,\n      p50Ms: item.p50_ms,\n    })),\n    dailyLatencyP95Ms: payload.daily_latency_p95_ms.map((item) => ({\n      date: item.date,\n      p95Ms: item.p95_ms,\n    })),\n    fromTs: payload.from_ts,\n    toTs: payload.to_ts,\n  }\n}\n","<script lang=\"ts\">\n  import { Chart, type ChartConfiguration, type Plugin } from \"chart.js\"\n  import { onDestroy, onMount } from \"svelte\"\n  import { registerKwCharts } from \"../../../../core/charts/index\"\n\n  interface Props {\n    config: ChartConfiguration<any> | null\n    height?: number\n    plugins?: Plugin<any>[]\n    ariaLabel?: string\n  }\n\n  let { config, height = 240, plugins = undefined, ariaLabel = undefined }: Props = $props()\n\n  let canvas = $state<HTMLCanvasElement | null>(null)\n  let chart = $state<Chart | null>(null)\n\n  const pluginsEqual = (a: Plugin<any>[] | undefined, b: Plugin<any>[] | undefined) => {\n    const aa = a ?? []\n    const bb = b ?? []\n\n    if (aa.length !== bb.length) return false\n\n    for (let i = 0; i < aa.length; i++) {\n      if (aa[i] !== bb[i]) return false\n    }\n\n    return true\n  }\n\n  const destroyChart = () => {\n    chart?.destroy()\n    chart = null\n  }\n\n  const renderChart = () => {\n    if (!canvas || !config) return\n\n    registerKwCharts()\n\n    destroyChart()\n\n    const ctx = canvas.getContext(\"2d\")\n\n    if (!ctx) return\n\n    const chartConfig: ChartConfiguration<any> = {\n      ...config,\n      plugins: plugins ?? config.plugins,\n      options: {\n        responsive: true,\n        maintainAspectRatio: false,\n        ...(config.options ?? {}),\n      },\n    }\n\n    chart = new Chart(ctx, chartConfig)\n  }\n\n  onMount(() => {\n    renderChart()\n\n    return destroyChart\n  })\n\n  $effect(() => {\n    const cfg = config\n\n    if (!cfg) {\n      destroyChart()\n\n      return\n    }\n\n    if (!canvas) return\n\n    if (!chart) {\n      renderChart()\n\n      return\n    }\n\n    const nextType = (cfg as { type?: string }).type\n    const currentType = (chart.config as { type?: string }).type\n\n    if (nextType && currentType && nextType !== currentType) {\n      renderChart()\n\n      return\n    }\n\n    chart.options = {\n      responsive: true,\n      maintainAspectRatio: false,\n      ...(cfg.options ?? {}),\n    } as any\n\n    chart.data = cfg.data as any\n\n    const nextPlugins = plugins ?? cfg.plugins\n\n    if (!pluginsEqual(chart.config.plugins as any, nextPlugins as any)) {\n      // Chart.js' Config.plugins is getter-only; update the underlying config object.\n      ;(chart.config as any)._config.plugins = nextPlugins as any\n    }\n\n    chart.update()\n  })\n\n  onDestroy(destroyChart)\n</script>\n\n<div class=\"chart-shell\" style={`height:${height}px`}>\n  <canvas bind:this={canvas} aria-label={ariaLabel}></canvas>\n</div>\n\n<style lang=\"less\">\n  .chart-shell {\n    width: 100%;\n    position: relative;\n  }\n\n  .chart-shell canvas {\n    width: 100% !important;\n    height: 100% !important;\n  }\n\n  :global(.kw-usage-tooltip) {\n    position: absolute;\n    left: 0;\n    top: 0;\n    transform: translate3d(0, 0, 0);\n    pointer-events: none;\n    opacity: 0;\n    /* Match the default in-chart tooltip style (dark, square). */\n    background: rgba(13, 12, 12, 0.92);\n    border: 1px solid rgba(243, 238, 217, 0.28);\n    border: 1px solid color-mix(in srgb, var(--text-100, #f3eed9) 28%, transparent);\n    border-radius: 0;\n    padding: 10px 12px;\n    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);\n    color: var(--text-100, #f3eed9);\n    font-family: var(--font-family-base, \"Outfit\", sans-serif);\n    min-width: 160px;\n    z-index: 10;\n  }\n\n  :global(.kw-usage-tooltip__title) {\n    font-size: 13px;\n    font-weight: 700;\n    line-height: 1.2;\n    margin-bottom: 6px;\n    color: var(--text-100, #f3eed9);\n  }\n\n  :global(.kw-usage-tooltip__rows) {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n  }\n\n  :global(.kw-usage-tooltip__row) {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n    font-size: 13px;\n    font-weight: 600;\n    color: var(--text-200, #d1e7e0);\n    white-space: nowrap;\n  }\n\n  :global(.kw-usage-tooltip__label) {\n    opacity: 0.95;\n  }\n\n  :global(.kw-usage-tooltip__value) {\n    opacity: 0.98;\n    color: var(--text-100, #f3eed9);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ChartConfiguration } from \"chart.js\"\n  import Card from \"../../../layout/_modules/card/index\"\n  import ChartCanvas from \"../chart-canvas/index\"\n  import { resolveChartTheme } from \"../../../../core/charts/theme/resolveTheme\"\n  import {\n    buildTrendChartConfig,\n    type TrendPoint,\n    type TrendSeries,\n  } from \"../../../../core/charts/trendChartCard\"\n\n  interface Props {\n    title: string\n    subtitle?: string | null\n    points?: TrendPoint[]\n    series?: TrendSeries[]\n    unit?: string | null\n    fractionDigits?: number\n    emptyLabel?: string\n    renderEmptyChart?: boolean\n  }\n\n  let {\n    title,\n    subtitle = null,\n    points = [],\n    series = undefined,\n    unit = null,\n    fractionDigits = 0,\n    emptyLabel = \"Keine Daten verfügbar.\",\n    renderEmptyChart = false,\n  }: Props = $props()\n\n  let rootEl = $state<HTMLDivElement | null>(null)\n  const theme = $derived.by(() => resolveChartTheme(rootEl, { variant: \"dark\" }))\n\n  const chartConfig = $derived.by((): ChartConfiguration<\"line\"> | null => {\n    return buildTrendChartConfig({\n      title,\n      points,\n      series,\n      unit,\n      fractionDigits,\n      allowEmpty: renderEmptyChart,\n      theme,\n    })\n  })\n  const hasData = $derived(chartConfig !== null)\n</script>\n\n<div class=\"trend-card\" bind:this={rootEl}>\n  <Card>\n    <div class=\"trend-card__header\">\n      <h3>{title}</h3>\n      {#if subtitle}\n        <p>{subtitle}</p>\n      {/if}\n    </div>\n\n    {#if hasData}\n      <div class=\"trend-card__chart\">\n        <ChartCanvas config={chartConfig} height={260} ariaLabel={title} />\n      </div>\n    {:else}\n      <div class=\"trend-card__empty\">{emptyLabel}</div>\n    {/if}\n  </Card>\n</div>\n\n<style lang=\"less\">\n  .trend-card {\n    display: flex;\n    flex-direction: column;\n  }\n\n  .trend-card__header {\n    margin-bottom: 0.4rem;\n\n    h3 {\n      margin: 0;\n      font-size: 1.05rem;\n      color: var(--text-100, #f8fafc);\n    }\n\n    p {\n      margin: 0.2rem 0 0;\n      color: color-mix(in srgb, var(--text-100, #f8fafc) 68%, transparent);\n      font-size: 0.86rem;\n    }\n  }\n\n  .trend-card__chart {\n    min-height: 260px;\n  }\n\n  .trend-card__empty {\n    margin-top: 0.5rem;\n    padding: 0.85rem 1rem;\n    border-radius: 0.75rem;\n    background: color-mix(in srgb, var(--bg-200, #0f172a) 64%, transparent);\n    color: color-mix(in srgb, var(--text-100, #f8fafc) 78%, transparent);\n    border: 1px dashed color-mix(in srgb, var(--bg-200, #0f172a) 78%, transparent);\n  }\n</style>\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    { id: \"home\", title: \"Startseite\", widthType: \"large\" },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import Homepage from \"@kontextwerk/web-sdk/ui/layout/Homepage.svelte\"\n\n  import { fetchRetrieveStats, type RetrieveStatsResponse } from \"./retrieval-api\"\n  import { CONTROL_ADMIN_ORIGIN } from \"../../../_shared/_logic/runtime-config\"\n  import { getCachedUser } from \"../../../_shared/_logic/control-api\"\n  import RetrieveTrendChartCard from \"@kontextwerk/web-sdk/ui/charts/components/TrendChartCard.svelte\"\n  import type { TrendSeries } from \"@kontextwerk/web-sdk/core/charts/trendChartCard\"\n\n  type Props = {\n    organizationId: string | null\n  }\n\n  const { organizationId }: Props = $props()\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let stats = $state<RetrieveStatsResponse | null>(null)\n  let requestId = 0\n\n  const todayLabel = $derived.by(() =>\n    new Date().toLocaleDateString(\"de-DE\", {\n      weekday: \"long\",\n      day: \"2-digit\",\n      month: \"long\",\n      year: \"numeric\",\n    }),\n  )\n\n  const firstName = $derived.by(() => {\n    const user = getCachedUser()\n    const first = (user?.first_name ?? \"\").trim()\n\n    if (first) return first\n\n    const raw = (user?.username ?? user?.email ?? \"\").trim()\n\n    return raw ? raw.replace(/\\s+/g, \" \").split(\" \")[0] : \"\"\n  })\n  const welcomeTitle = $derived.by(() => (firstName ? `Willkommen, ${firstName}!` : \"Willkommen!\"))\n\n  const chartSubtitle = $derived.by(() => {\n    if (!stats?.fromTs || !stats?.toTs) return null\n\n    const from = new Date(stats.fromTs)\n    const to = new Date(stats.toTs)\n\n    if (Number.isNaN(from.getTime()) || Number.isNaN(to.getTime())) return null\n\n    return `${from.toLocaleDateString(\"de-DE\")} bis ${to.toLocaleDateString(\"de-DE\")}`\n  })\n  const feedbackHref = $derived.by(() => {\n    try {\n      return new URL(\"/admin/feedback\", CONTROL_ADMIN_ORIGIN).toString()\n    } catch {\n      return null\n    }\n  })\n  const hasContext = $derived(Boolean(organizationId))\n\n  const requestsTrend = $derived.by(() =>\n    (stats?.dailyRequests ?? []).map((item) => ({\n      date: item.date,\n      value: Number(item.requestCount || 0),\n    })),\n  )\n\n  const latencySeries = $derived.by((): TrendSeries[] => {\n    const p95 = (stats?.dailyLatencyP95Ms ?? []).map((item) => ({\n      date: item.date,\n      value: item.p95Ms,\n    }))\n    const p50 = (stats?.dailyLatencyP50Ms ?? []).map((item) => ({\n      date: item.date,\n      value: item.p50Ms,\n    }))\n\n    return [\n      {\n        label: \"P95\",\n        points: p95,\n        fill: true,\n      },\n      {\n        label: \"P50\",\n        points: p50,\n        fill: false,\n        borderDash: [6, 4],\n      },\n    ]\n  })\n\n  const loadStats = async () => {\n    if (!organizationId) {\n      stats = null\n      error = null\n      loading = false\n\n      return\n    }\n\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const response = await fetchRetrieveStats(\n        {\n          tenantId: organizationId,\n        },\n        30,\n        10,\n        {\n          includeTopDocs: false,\n          includeTopQueries: false,\n        },\n      )\n\n      if (current !== requestId) return\n\n      stats = response\n    } catch (err) {\n      if (current !== requestId) return\n\n      stats = null\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) {\n        loading = false\n      }\n    }\n  }\n\n  const openControlAdmin = () => {\n    window.open(CONTROL_ADMIN_ORIGIN, \"_blank\", \"noopener,noreferrer\")\n  }\n\n  onMount(() => {\n    void loadStats()\n  })\n</script>\n\n<Homepage\n  title={welcomeTitle}\n  subtitle={todayLabel}\n  onProfileClick={openControlAdmin}\n  profileButtonLabel=\"Zum Profil\"\n  {feedbackHref}\n  feedbackOpenInNewTab={true}\n>\n    {#if loading}\n        <Circle size=\"2\" color=\"#741e20\" unit=\"rem\" />\n    {:else if error}\n        <div class=\"home-page__state error\">{error}</div>\n    {:else if !hasContext}\n        <Circle size=\"2\" color=\"#741e20\" unit=\"rem\" />\n    {:else if !stats}\n        <div class=\"home-page__state\">Keine Retrieval-Statistiken verfügbar.</div>\n    {:else}\n        <div class=\"home-page__charts\">\n            <RetrieveTrendChartCard\n        title=\"Daily Requests\"\n        subtitle={chartSubtitle}\n        points={requestsTrend}\n        unit=\"Anfragen\"\n        emptyLabel=\"Noch keine Requests im gewählten Zeitraum.\"\n      />\n            <RetrieveTrendChartCard\n        title=\"Daily Latency P95/P50\"\n        subtitle={chartSubtitle}\n        series={latencySeries}\n        unit=\"ms\"\n        fractionDigits={1}\n        emptyLabel=\"Noch keine Latenzwerte im gewählten Zeitraum.\"\n        renderEmptyChart={true}\n      />\n        </div>\n    {/if}\n</Homepage>\n\n<style lang=\"less\">\n  .home-page__state {\n    padding: 0.9rem 1rem;\n    border-radius: 0.85rem;\n    background: color-mix(in srgb, var(--bg-200, #0f172a) 82%, #0b1224);\n    color: var(--text-100, #e5e7eb);\n  }\n\n  .home-page__state.error {\n    border: 1px solid color-mix(in srgb, #f04438 55%, transparent);\n    color: #fca5a5;\n  }\n\n  .home-page__charts {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 1rem;\n  }\n\n  @media (max-width: 1080px) {\n    .home-page__charts {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","const CATEGORY_LABELS: Record<string, string> = {\n  data_target: \"Speicherziel\",\n  data_source: \"Datenquelle\",\n  external_datasource: \"Externe Quelle\",\n}\n\nconst DETAIL_LABELS: Record<string, string> = {\n  weaviate: \"Wissensindex\",\n  minio: \"Dateiuploads\",\n  website: \"Website Sammlung\",\n  scraping: \"Website Sammlung\",\n  \"answer-library\": \"FAQ-Sammlung\",\n  generic: \"Generische API\",\n  unknown: \"Unbekannte Quelle\",\n}\n\nconst LEGACY_SOURCE_KEYS: Record<string, { category: string; detail: string }> = {\n  vectorstore: { category: \"data_target\", detail: \"weaviate\" },\n  storage: { category: \"data_source\", detail: \"minio\" },\n  scraping: { category: \"data_source\", detail: \"website\" },\n  website: { category: \"data_source\", detail: \"website\" },\n  \"answer-library\": { category: \"data_source\", detail: \"answer-library\" },\n}\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\nconst dateTimeFormatter = new Intl.DateTimeFormat(\"de-DE\", {\n  dateStyle: \"medium\",\n  timeStyle: \"short\",\n})\nconst relativeTimeFormatter = new Intl.RelativeTimeFormat(\"de-DE\", {\n  numeric: \"auto\",\n})\n\nconst normalizeDetail = (value: string | null | undefined): string => {\n  const detail = (value ?? \"unknown\").trim().toLowerCase()\n\n  if (!detail) return \"unknown\"\n\n  if ([\"answer-library\", \"answer_library\", \"faq-sammlung\"].includes(detail)) {\n    return \"answer-library\"\n  }\n\n  if ([\"scraping\", \"scraping-orchestrator\", \"scraping orchestrator\"].includes(detail)) {\n    return \"website\"\n  }\n\n  if ([\"website-sammlung\", \"website sammlung\"].includes(detail)) {\n    return \"website\"\n  }\n\n  return detail\n}\n\nfunction formatLabel(value: string): string {\n  const cleaned = value.replace(/[_-]/g, \" \").trim()\n\n  if (!cleaned) {\n    return \"Unbekannt\"\n  }\n\n  return cleaned.charAt(0).toUpperCase() + cleaned.slice(1)\n}\n\nexport function parseDataSourceKey(key: string | null | undefined): {\n  category: string\n  detail: string\n} {\n  if (!key) {\n    return { category: \"external_datasource\", detail: \"unknown\" }\n  }\n\n  const trimmed = key.trim()\n\n  if (trimmed.includes(\"::\")) {\n    const [categoryRaw, detailRaw] = trimmed.split(\"::\")\n    const detail = normalizeDetail(detailRaw)\n    const category =\n      detail === \"answer-library\" ? \"data_source\" : categoryRaw || \"external_datasource\"\n\n    return { category, detail }\n  }\n\n  const normalizedKey = normalizeDetail(trimmed)\n  const legacy = LEGACY_SOURCE_KEYS[normalizedKey]\n\n  if (legacy) {\n    return legacy\n  }\n\n  const category = normalizedKey === \"answer-library\" ? \"data_source\" : \"external_datasource\"\n\n  return { category, detail: normalizedKey }\n}\n\nexport function describeDataSource(key: string): {\n  label: string\n  category: string\n  detail: string\n  categoryLabel: string\n  detailLabel: string\n} {\n  const { category, detail } = parseDataSourceKey(key)\n  const categoryLabel = CATEGORY_LABELS[category] ?? formatLabel(category)\n  const detailLabel = detail.startsWith(\"sharepoint\")\n    ? \"SharePoint-Anbindung\"\n    : (DETAIL_LABELS[detail] ?? formatLabel(detail))\n\n  return {\n    label: detailLabel,\n    category,\n    detail,\n    categoryLabel,\n    detailLabel,\n  }\n}\n\nexport function formatNumber(value: number | string | null | undefined): string {\n  const parsed = Number(value ?? 0)\n\n  if (!Number.isFinite(parsed)) {\n    return \"0\"\n  }\n\n  return numberFormatter.format(parsed)\n}\n\nexport function formatRate(value: number | string | null | undefined): string {\n  const parsed = Number(value ?? 0)\n\n  if (!Number.isFinite(parsed)) {\n    return \"–\"\n  }\n\n  return `${numberFormatter.format(Math.round(parsed * 100) / 100)} / Tag`\n}\n\nexport function formatTimestamp(value: string | number | Date | null | undefined): string {\n  if (!value) return \"–\"\n\n  const date = value instanceof Date ? value : new Date(value)\n\n  if (!Number.isFinite(date.getTime())) {\n    return String(value)\n  }\n\n  return dateTimeFormatter.format(date)\n}\n\nexport function formatRelative(value: string | number | Date | null | undefined): string {\n  if (!value) return \"–\"\n\n  const date = value instanceof Date ? value : new Date(value)\n\n  if (!Number.isFinite(date.getTime())) {\n    return String(value)\n  }\n\n  const diffMs = date.getTime() - Date.now()\n  const diffMinutes = Math.round(diffMs / 60_000)\n\n  if (Math.abs(diffMinutes) < 60) {\n    return relativeTimeFormatter.format(diffMinutes, \"minute\")\n  }\n\n  const diffHours = Math.round(diffMs / 3_600_000)\n\n  if (Math.abs(diffHours) < 24) {\n    return relativeTimeFormatter.format(diffHours, \"hour\")\n  }\n\n  const diffDays = Math.round(diffMs / 86_400_000)\n\n  if (Math.abs(diffDays) < 30) {\n    return relativeTimeFormatter.format(diffDays, \"day\")\n  }\n\n  const diffMonths = Math.round(diffDays / 30)\n\n  if (Math.abs(diffMonths) < 12) {\n    return relativeTimeFormatter.format(diffMonths, \"month\")\n  }\n\n  const diffYears = Math.round(diffDays / 365)\n\n  return relativeTimeFormatter.format(diffYears, \"year\")\n}\n","<script lang=\"ts\">\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import Table, {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import {\n    describeDataSource,\n    formatNumber,\n    formatTimestamp,\n    parseDataSourceKey,\n  } from \"../../../../../../../_shared/_logic/metrics-utils\"\n  import type { OrganizationAnalytics } from \"../../../../../../_shared/_logic/analytics\"\n\n  type SourceInfo = {\n    detailLabel: string\n    categoryLabel: string\n    detail: string\n  }\n\n  type ExternalSource = {\n    key: string\n    info: SourceInfo\n    captured: string | null\n    documents: number | null\n    documentsLastMinute: number | null\n    perDay: number | null\n  }\n\n  type ExternalSourcesSectionProps = {\n    analytics?: OrganizationAnalytics | null\n    analyticsLoading?: boolean\n  }\n\n  const { analytics = null, analyticsLoading = false }: ExternalSourcesSectionProps = $props()\n\n  const displayLabel = (info: SourceInfo) =>\n    info.detail !== \"unknown\" ? info.detailLabel : info.categoryLabel\n\n  const buildExternalSources = (): ExternalSource[] => {\n    if (!analytics) return []\n\n    return analytics.data_sources\n      .filter((source) => parseDataSourceKey(source.data_source).category === \"external_datasource\")\n      .map((source) => {\n        const info = describeDataSource(source.data_source)\n        const metrics = source.metrics ?? {}\n\n        return {\n          key: source.data_source,\n          captured: source.captured_at,\n          info,\n          documents: typeof metrics.documents_total === \"number\" ? metrics.documents_total : null,\n          documentsLastMinute:\n            typeof metrics.documents_last_minute === \"number\"\n              ? metrics.documents_last_minute\n              : null,\n          perDay:\n            typeof metrics.documents_total_per_day === \"number\"\n              ? metrics.documents_total_per_day\n              : null,\n        }\n      })\n  }\n\n  const externalSources = $derived(buildExternalSources())\n\n  const createStaticGetRows = (source: DataRow[]): TableGetRows => {\n    return ({ filters: _filters, limit, offset, sort: _sort }) => {\n      const start = Math.max(0, offset ?? 0)\n      const size = typeof limit === \"number\" && limit > 0 ? limit : source.length\n      const end = start + size\n\n      return { rows: source.slice(start, end), total: source.length }\n    }\n  }\n\n  type ExternalSourceRow = DataRow & {\n    id: string\n    label: string\n    type: string\n    documents: number | null\n    documentsLastMinute: number | null\n    perDay: number | null\n    captured: string | null\n  }\n\n  const externalColumns: ColumnDef[] = [\n    {\n      id: \"label\",\n      label: \"Externe Datenquelle\",\n      isPrimary: true,\n      tooltip: \"Integrierte Anwendung, aus der Daten bezogen werden.\",\n    },\n    { id: \"type\", label: \"Typ\", tooltip: \"Technologie oder API-Typ der Quelle.\" },\n    {\n      id: \"documents\",\n      label: \"Index-Chunks\",\n      tooltip: \"Anzahl der aktuell indizierten Chunks.\",\n    },\n    {\n      id: \"documentsLastMinute\",\n      label: \"Letzte Minute\",\n      tooltip: \"Nettoänderung der Chunks in den letzten 60 Sekunden.\",\n    },\n    {\n      id: \"perDay\",\n      label: \"Letzte 24 Stunden\",\n      tooltip: \"Nettoänderung der Chunks in den letzten 24 Stunden.\",\n    },\n    {\n      id: \"captured\",\n      label: \"Letzte Aktualisierung\",\n      tooltip: \"Zeitpunkt der letzten Messung.\",\n    },\n  ]\n\n  const externalRows = $derived<ExternalSourceRow[]>(\n    externalSources.map((item) => ({\n      id: item.key,\n      label: displayLabel(item.info),\n      type: item.info.detailLabel,\n      documents: item.documents ?? null,\n      documentsLastMinute: item.documentsLastMinute ?? null,\n      perDay: item.perDay ?? null,\n      captured: item.captured ?? null,\n    })),\n  )\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const titleWithCount = $derived.by(\n    () => `Externe Datenquellen (${numberFormatter.format(externalRows.length)})`,\n  )\n  const externalSourcesLoading = $derived(analyticsLoading)\n  const externalRefreshKey = $derived(externalSources.map((s) => s.key ?? \"\").join(\"|\"))\n  const getExternalRows: TableGetRows = ({ filters, limit, offset, sort }) =>\n    createStaticGetRows(externalRows)({ filters, limit, offset, sort })\n\n  const formatNumberOrDash = (value: number | null | undefined) =>\n    value == null ? \"–\" : formatNumber(value)\n  const formatLastMinuteOrDash = (value: number | null | undefined) => {\n    if (value == null) return \"–\"\n\n    const prefix = value > 0 ? \"+\" : value < 0 ? \"-\" : \"\"\n\n    return `${prefix}${formatNumber(Math.abs(value))} Stück`\n  }\n  const formatDayDeltaOrDash = (value: number | null | undefined) => {\n    if (value == null) return \"–\"\n\n    const prefix = value > 0 ? \"+\" : value < 0 ? \"-\" : \"\"\n\n    return `${prefix}${formatNumber(Math.abs(value))} Stück`\n  }\n  const formatTimestampOrDash = (value: string | null) => formatTimestamp(value ?? null)\n</script>\n\n<div class=\"sources-section\">\n    <SectionTitle\n    brightBackground={true}\n    title={titleWithCount}\n    helpModalTextId=\"indexAdminExternalSources\"\n  />\n    <Table\n    columns={externalColumns}\n    getRows={getExternalRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={[\"documents\", \"documentsLastMinute\", \"perDay\", \"captured\"]}\n    maxCardFields={4}\n    showActions={false}\n    showPrimaryButton={false}\n    refreshKey={externalRefreshKey}\n    loading={externalSourcesLoading}\n  >\n        {#snippet empty()}\n            <p>\n                Es wurden noch keine externen Datenquellen erfasst. Dieser Tab ist auch nur für integrierte Anwendungen\n                relevant, in der Daten über eine API reinfließen.\n            </p>\n        {/snippet}\n\n        {#snippet tableCell({ row, column })}\n            {#if column.id === \"documents\"}\n                {formatNumberOrDash((row as ExternalSourceRow).documents)}\n            {:else if column.id === \"documentsLastMinute\"}\n                {formatLastMinuteOrDash((row as ExternalSourceRow).documentsLastMinute)}\n            {:else if column.id === \"perDay\"}\n                {formatDayDeltaOrDash((row as ExternalSourceRow).perDay)}\n            {:else if column.id === \"captured\"}\n                {formatTimestampOrDash((row as ExternalSourceRow).captured)}\n            {:else}\n                {row[column.id] as any}\n            {/if}\n        {/snippet}\n\n        {#snippet cardTitle({ row })}\n            {(row as ExternalSourceRow).label}\n        {/snippet}\n\n        {#snippet cardSubtitle({ row })}\n            <span class=\"muted\">{(row as ExternalSourceRow).type}</span>\n        {/snippet}\n    </Table>\n</div>\n\n<style lang=\"less\">\n  .sources-section {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n\n    p {\n      margin: 0;\n      color: color-mix(in srgb, var(--text-invers-100) 65%, transparent);\n    }\n\n    .muted {\n      color: color-mix(in srgb, var(--text-invers-100) 55%, transparent);\n    }\n  }\n</style>\n","import { baseAPIURL, buildServiceHeaders } from \"../runtime-config\"\nimport { fetchService, throwResponseError, toErrorMessage } from \"../index-api-transport\"\n\nexport type ChunkSourceType =\n  | \"all\"\n  | \"minio\"\n  | \"scraping\"\n  | \"sharepoint\"\n  | \"external\"\n  | \"answer-library\"\nexport type ChunkScopeType = \"organization\" | \"project\" | \"realization\"\n\nexport type ChunkSummary = {\n  index_item_id: string\n  data_id: string\n  data_label?: string | null\n  source_id: string | null\n  scope?: \"organization\" | \"project\" | \"realization\" | null\n  chunk_count: number\n  chunk_variants?: string[]\n  total_word_count: number | null\n  average_word_count: number | null\n}\n\nexport type ChunkSummaryResponse = {\n  items: ChunkSummary[]\n  offset: number\n  limit: number\n  total: number | null\n  has_more: boolean\n}\n\nexport type ChunkRecord = {\n  id: string\n  data_id: string\n  data_label?: string | null\n  source_id: string | null\n  scope?: \"organization\" | \"project\" | \"realization\" | null\n  chunk_variant?: string | null\n  source_uri?: string | null\n  canonical_uri?: string | null\n  page_type?: string | null\n  chunk_index: number | null\n  chunk_count: number | null\n  word_count: number | null\n  text: string | null\n}\n\nexport type ChunkRecordResponse = {\n  items: ChunkRecord[]\n  offset: number\n  limit: number\n  total: number | null\n  has_more: boolean\n}\n\nexport type ChunkSourceDeleteResponse = {\n  source_id: string\n  scope?: ChunkScopeType | null\n  deleted_objects: number\n  collections: string[]\n  failed_collections: string[]\n}\n\nexport type IndexItemIdContext = {\n  projectId?: string | null\n  organizationId?: string | null\n  realizationId?: string | null\n  scope?: ChunkScopeType | null\n  sourceId?: string | null\n  dataId: string\n}\n\ntype SummaryOptions = {\n  organizationId?: string | null\n  realizationId?: string | null\n  scope?: ChunkScopeType | null\n  source?: ChunkSourceType\n  sortBy?: string | null\n  sortDir?: \"asc\" | \"desc\" | null\n  limit?: number\n  offset?: number\n}\n\ntype EntriesOptions = {\n  indexItemId: string\n  limit?: number\n  offset?: number\n}\n\ntype DeleteSourceOptions = {\n  organizationId?: string | null\n  realizationId?: string | null\n  scope?: ChunkScopeType | null\n  sourceId: string\n}\n\nconst appendParam = (params: URLSearchParams, key: string, value: string | null | undefined) => {\n  const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n  if (!normalized) return\n\n  params.set(key, normalized)\n}\n\nconst normalizeOptionalString = (value: string | null | undefined): string | null => {\n  const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n  return normalized || null\n}\n\nconst encodeUtf8Base64Url = (value: string): string => {\n  const bytes = new TextEncoder().encode(value)\n  let binary = \"\"\n  for (const byte of bytes) {\n    binary += String.fromCharCode(byte)\n  }\n\n  return btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/g, \"\")\n}\n\nexport const encodeIndexItemId = (context: IndexItemIdContext): string => {\n  const dataId = normalizeOptionalString(context.dataId)\n\n  if (!dataId) {\n    throw new Error(\"dataId ist erforderlich.\")\n  }\n\n  const payload = {\n    project_id: normalizeOptionalString(context.projectId),\n    organization_id: normalizeOptionalString(context.organizationId),\n    realization_id: normalizeOptionalString(context.realizationId),\n    scope: context.scope ?? null,\n    source_id: normalizeOptionalString(context.sourceId),\n    data_id: dataId,\n  }\n\n  return encodeUtf8Base64Url(JSON.stringify(payload))\n}\n\nconst resolveProjectParam = (\n  projectId: string | null,\n  organizationId: string | null | undefined,\n  _scope: ChunkScopeType | null | undefined,\n): string | null => {\n  if (!projectId) return null\n\n  if (!organizationId) return projectId\n\n  return null\n}\n\nexport async function fetchChunkSummaries(\n  projectId: string | null,\n  options: SummaryOptions,\n): Promise<ChunkSummaryResponse> {\n  const params = new URLSearchParams()\n  appendParam(\n    params,\n    \"project_id\",\n    resolveProjectParam(projectId, options.organizationId, options.scope),\n  )\n  appendParam(params, \"organization_id\", options.organizationId)\n  appendParam(params, \"realization_id\", options.realizationId)\n  appendParam(params, \"scope\", options.scope)\n\n  if (options.source) params.set(\"source\", options.source)\n\n  appendParam(params, \"sort_by\", options.sortBy)\n  appendParam(params, \"sort_dir\", options.sortDir)\n\n  if (typeof options.limit === \"number\") params.set(\"limit\", String(options.limit))\n\n  if (typeof options.offset === \"number\") params.set(\"offset\", String(options.offset))\n\n  let response: Response\n  try {\n    response = await fetchService(`${baseAPIURL}/admin/indexed-items?${params.toString()}`, {\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`Chunks konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Chunks konnten nicht geladen werden\")\n  }\n\n  return (await response.json()) as ChunkSummaryResponse\n}\n\nexport async function fetchChunkEntries(\n  _projectId: string | null,\n  options: EntriesOptions,\n): Promise<ChunkRecordResponse> {\n  const params = new URLSearchParams()\n\n  if (typeof options.limit === \"number\") params.set(\"limit\", String(options.limit))\n\n  if (typeof options.offset === \"number\") params.set(\"offset\", String(options.offset))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${baseAPIURL}/admin/indexed-items/${encodeURIComponent(options.indexItemId)}/chunks${\n        params.toString() ? `?${params.toString()}` : \"\"\n      }`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Chunk-Details konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Chunk-Details konnten nicht geladen werden\")\n  }\n\n  return (await response.json()) as ChunkRecordResponse\n}\n\nexport async function deleteChunksBySource(\n  projectId: string | null,\n  options: DeleteSourceOptions,\n): Promise<ChunkSourceDeleteResponse> {\n  const sourceId = options.sourceId?.trim()\n\n  if (!sourceId) {\n    throw new Error(\"sourceId ist erforderlich.\")\n  }\n\n  let response: Response\n  try {\n    response = await fetchService(`${baseAPIURL}/admin/indexed-item-deletions`, {\n      method: \"POST\",\n      headers: {\n        ...buildServiceHeaders(),\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({\n        project_id: resolveProjectParam(projectId, options.organizationId, options.scope),\n        organization_id: options.organizationId ?? undefined,\n        realization_id: options.realizationId ?? undefined,\n        scope: options.scope ?? undefined,\n        source_id: sourceId,\n      }),\n    })\n  } catch (error) {\n    throw new Error(`Quelle konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Quelle konnte nicht gelöscht werden\")\n  }\n\n  return (await response.json()) as ChunkSourceDeleteResponse\n}\n","import { buildServiceHeaders, scrapingAPIURL } from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\nimport type {\n  SyncJobListApiResponse,\n  SyncJobListResponse,\n} from \"../../../../_shared/_logic/sync-jobs\"\nimport { normalizeSyncJob } from \"../../../../_shared/_logic/sync-jobs\"\n\nexport type ClassificationRule = {\n  pattern: string\n  listTypes: string[]\n  pageType?: string | null\n  ignoreCase?: boolean\n}\n\nexport type DomainRecord = {\n  id: string\n  project_id: string | null\n  organization_id: string\n  tenant_id?: string\n  realization_id: string | null\n  scope: \"organization\" | \"project\" | \"realization\"\n  domain: string\n  crawl_interval_seconds: number\n  default_page_type?: string | null\n  default_list_types: string[]\n  classification_rules: ClassificationRule[]\n  url_count?: number\n  indexed_url_count?: number\n  last_discovered_at?: string | null\n  next_discovery_at?: string | null\n  created_at?: string\n  updated_at?: string\n}\n\nexport type DomainCreatePayload = {\n  project_id?: string | null\n  organization_id?: string\n  tenant_id?: string\n  realization_id: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  domain: string\n  crawl_interval_seconds?: number\n  default_page_type?: string | null\n  default_list_types?: string[]\n  classification_rules?: ClassificationRule[]\n}\n\nexport type DomainUpdatePayload = {\n  project_id?: string | null\n  realization_id?: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  crawl_interval_seconds?: number\n}\n\nexport type DomainSyncCancelResponse = {\n  status: string\n  domainId: string\n  affectedUrls: number\n}\n\ntype DomainSyncCancelApiResponse = {\n  status: string\n  domain_id: string\n  affected_urls: number\n}\n\nexport type UrlRecord = {\n  id: string\n  project_id: string | null\n  domain_id: string\n  organization_id: string\n  tenant_id?: string\n  url: string\n  auto_page_type?: string | null\n  manual_page_type?: string | null\n  effective_page_type?: string | null\n  auto_list_types: string[]\n  manual_list_types?: string[] | null\n  effective_list_types: string[]\n  auto_classification_enabled: boolean\n  sync_status: string\n  retry_count: number\n  next_sync_at?: string | null\n  last_sync_at?: string | null\n  last_error?: string | null\n  first_seen_at: string\n  last_seen_at: string\n  last_crawled_at?: string | null\n}\n\nexport type UrlAssignmentPayload = {\n  manual_page_type?: string | null\n  manual_list_types?: string[] | null\n  auto_classification_enabled?: boolean | null\n}\n\nexport type UrlSyncPayload = {\n  page_type?: string | null\n  list_types?: string[] | null\n  force?: boolean\n}\n\nexport type PaginationParams = {\n  limit?: number | null\n  offset?: number | null\n}\n\nexport type SortDir = \"asc\" | \"desc\"\ntype DomainScope = \"organization\" | \"project\" | \"realization\"\n\nexport type FetchDomainsParams = PaginationParams & {\n  organizationId?: string | null\n  realizationId?: string | null\n  search?: string | null\n  sortBy?: string | null\n  sortDir?: SortDir | null\n}\n\nexport type FetchDomainUrlsParams = PaginationParams & {\n  search?: string | null\n  statuses?: string[] | null\n  sortBy?: string | null\n  sortDir?: SortDir | null\n}\n\nexport type PaginatedResult<T> = {\n  items: T[]\n  total: number | null\n}\n\ntype DomainApiRecord = {\n  id: string\n  project_id?: string\n  projectId?: string\n  organization_id?: string\n  organizationId?: string\n  tenant_id?: string\n  tenantId?: string\n  realization_id?: string | null\n  realizationId?: string | null\n  scope?: string | null\n  domain?: string\n  crawl_interval_seconds?: number\n  crawlIntervalSeconds?: number\n  default_page_type?: string | null\n  defaultPageType?: string | null\n  default_list_types?: string[]\n  defaultListTypes?: string[]\n  classification_rules?: any[]\n  classificationRules?: any[]\n  url_count?: number\n  urlCount?: number\n  indexed_url_count?: number\n  indexedUrlCount?: number\n  last_discovered_at?: string | null\n  lastDiscoveredAt?: string | null\n  next_discovery_at?: string | null\n  nextDiscoveryAt?: string | null\n  created_at?: string\n  createdAt?: string\n  updated_at?: string\n  updatedAt?: string\n}\n\ntype UrlApiRecord = {\n  id: string\n  project_id?: string\n  projectId?: string\n  domain_id?: string\n  domainId?: string\n  organization_id?: string\n  organizationId?: string\n  tenant_id?: string\n  tenantId?: string\n  url?: string\n  auto_page_type?: string | null\n  autoPageType?: string | null\n  manual_page_type?: string | null\n  manualPageType?: string | null\n  effective_page_type?: string | null\n  effectivePageType?: string | null\n  auto_list_types?: string[]\n  autoListTypes?: string[]\n  manual_list_types?: string[] | null\n  manualListTypes?: string[] | null\n  effective_list_types?: string[]\n  effectiveListTypes?: string[]\n  auto_classification_enabled?: boolean\n  autoClassificationEnabled?: boolean\n  sync_status?: string\n  syncStatus?: string\n  retry_count?: number\n  retryCount?: number\n  next_sync_at?: string | null\n  nextSyncAt?: string | null\n  last_sync_at?: string | null\n  lastSyncAt?: string | null\n  last_error?: string | null\n  lastError?: string | null\n  first_seen_at?: string\n  firstSeenAt?: string\n  last_seen_at?: string\n  lastSeenAt?: string\n  last_crawled_at?: string | null\n  lastCrawledAt?: string | null\n}\n\ntype PaginatedApiEnvelope<T> = {\n  items?: T[]\n  total?: number | null\n  total_count?: number | null\n  count?: number | null\n}\n\ntype PaginatedApiResponse<T> = PaginatedApiEnvelope<T> | T[]\n\nconst coerceStringArray = (value: unknown): string[] => {\n  if (!Array.isArray(value)) return []\n\n  return value\n    .map((item) => (typeof item === \"string\" ? item.trim() : String(item ?? \"\").trim()))\n    .filter((item) => item.length > 0)\n}\n\nconst buildQueryString = (entries: Array<[string, string | number | null | undefined]>): string => {\n  const searchParams = new URLSearchParams()\n  for (const [key, value] of entries) {\n    if (value === null || value === undefined) continue\n\n    const normalized = typeof value === \"string\" ? value.trim() : `${value}`\n\n    if (normalized === \"\") continue\n\n    searchParams.set(key, normalized)\n  }\n  const query = searchParams.toString()\n\n  return query ? `?${query}` : \"\"\n}\n\nconst trimOrNull = (value: string | null | undefined): string | null => {\n  const normalized = (value ?? \"\").trim()\n\n  return normalized || null\n}\n\nconst requireDomainScope = (value: DomainScope | null | undefined): DomainScope => {\n  const normalized = (value ?? \"organization\").trim()\n\n  if (normalized === \"organization\" || normalized === \"project\" || normalized === \"realization\") {\n    return normalized\n  }\n\n  throw new Error(\"Ungültiger Domain-Scope.\")\n}\n\nconst resolveTotal = (payload: PaginatedApiEnvelope<any>, fallback: number): number | null => {\n  const candidate =\n    payload.total ??\n    (payload as any)?.total_count ??\n    (payload as any)?.totalCount ??\n    (payload as any)?.count ??\n    null\n\n  return typeof candidate === \"number\" ? candidate : fallback\n}\n\nconst normalizePaginatedResponse = <T>(\n  payload: PaginatedApiResponse<any>,\n  normalize: (entry: any) => T,\n): PaginatedResult<T> => {\n  if (Array.isArray(payload)) {\n    const items = payload.map(normalize)\n\n    return { items, total: items.length }\n  }\n\n  const items = (payload.items ?? []).map(normalize)\n  const total = resolveTotal(payload, items.length)\n\n  return { items, total }\n}\n\nconst BULK_PAGE_SIZE = 200\n\nconst normalizeClassificationRule = (rule: any): ClassificationRule => {\n  const listTypes = coerceStringArray(rule?.listTypes ?? rule?.list_types)\n  const pageTypeSource =\n    typeof rule?.pageType === \"string\"\n      ? rule.pageType\n      : typeof rule?.page_type === \"string\"\n        ? rule.page_type\n        : null\n  const pageType = pageTypeSource?.trim() || undefined\n  const ignoreCaseSource =\n    typeof rule?.ignoreCase === \"boolean\"\n      ? rule.ignoreCase\n      : typeof rule?.ignore_case === \"boolean\"\n        ? rule.ignore_case\n        : undefined\n\n  return {\n    pattern: typeof rule?.pattern === \"string\" ? rule.pattern : \"\",\n    listTypes,\n    pageType,\n    ignoreCase: ignoreCaseSource ?? true,\n  }\n}\n\nconst normalizeDomainRecord = (record: DomainApiRecord): DomainRecord => {\n  const defaultListTypes = coerceStringArray(record.default_list_types ?? record.defaultListTypes)\n  const defaultPageTypeSource =\n    typeof record.default_page_type === \"string\"\n      ? record.default_page_type\n      : typeof record.defaultPageType === \"string\"\n        ? record.defaultPageType\n        : null\n  const defaultPageType = defaultPageTypeSource?.trim() || null\n  const classificationRules = (record.classification_rules ?? record.classificationRules ?? []).map(\n    normalizeClassificationRule,\n  )\n  const projectIdValue =\n    typeof record.project_id === \"string\"\n      ? record.project_id\n      : typeof record.projectId === \"string\"\n        ? record.projectId\n        : \"\"\n  const tenantIdValue =\n    typeof record.tenant_id === \"string\"\n      ? record.tenant_id\n      : typeof record.tenantId === \"string\"\n        ? record.tenantId\n        : \"\"\n  const domainValue =\n    typeof record.domain === \"string\"\n      ? record.domain\n      : record.domain !== undefined && record.domain !== null\n        ? String(record.domain)\n        : \"\"\n  const scopeSource = typeof record.scope === \"string\" ? record.scope.trim().toLowerCase() : \"\"\n  const scopeValue =\n    scopeSource === \"project\" || scopeSource === \"realization\" || scopeSource === \"organization\"\n      ? scopeSource\n      : \"organization\"\n\n  return {\n    id: record.id,\n    project_id: projectIdValue.trim() || null,\n    organization_id:\n      typeof record.organization_id === \"string\"\n        ? record.organization_id\n        : typeof record.organizationId === \"string\"\n          ? record.organizationId\n          : tenantIdValue,\n    tenant_id: tenantIdValue,\n    realization_id:\n      typeof record.realization_id === \"string\"\n        ? record.realization_id\n        : typeof record.realizationId === \"string\"\n          ? record.realizationId\n          : null,\n    scope: scopeValue,\n    domain: domainValue,\n    crawl_interval_seconds: record.crawl_interval_seconds ?? record.crawlIntervalSeconds ?? 0,\n    default_page_type: defaultPageType,\n    default_list_types: defaultListTypes,\n    classification_rules: classificationRules,\n    url_count: record.url_count ?? record.urlCount ?? 0,\n    indexed_url_count: record.indexed_url_count ?? record.indexedUrlCount ?? 0,\n    last_discovered_at: record.last_discovered_at ?? record.lastDiscoveredAt ?? null,\n    next_discovery_at: record.next_discovery_at ?? record.nextDiscoveryAt ?? null,\n    created_at: record.created_at ?? record.createdAt,\n    updated_at: record.updated_at ?? record.updatedAt,\n  }\n}\n\nconst normalizeUrlRecord = (record: UrlApiRecord): UrlRecord => {\n  const projectIdValue =\n    typeof record.project_id === \"string\"\n      ? record.project_id\n      : typeof record.projectId === \"string\"\n        ? record.projectId\n        : \"\"\n  const domainIdValue =\n    typeof record.domain_id === \"string\"\n      ? record.domain_id\n      : typeof record.domainId === \"string\"\n        ? record.domainId\n        : \"\"\n  const tenantIdValue =\n    typeof record.tenant_id === \"string\"\n      ? record.tenant_id\n      : typeof record.tenantId === \"string\"\n        ? record.tenantId\n        : \"\"\n  const urlValue =\n    typeof record.url === \"string\" ? record.url : record.url ? String(record.url) : \"\"\n  const syncStatusValue =\n    typeof record.sync_status === \"string\"\n      ? record.sync_status\n      : typeof record.syncStatus === \"string\"\n        ? record.syncStatus\n        : \"pending\"\n  const manualListSource =\n    record.manual_list_types !== undefined || record.manualListTypes !== undefined\n      ? (record.manual_list_types ?? record.manualListTypes)\n      : undefined\n\n  return {\n    id: record.id,\n    project_id: projectIdValue.trim() || null,\n    domain_id: domainIdValue,\n    organization_id:\n      typeof record.organization_id === \"string\"\n        ? record.organization_id\n        : typeof record.organizationId === \"string\"\n          ? record.organizationId\n          : tenantIdValue,\n    tenant_id: tenantIdValue,\n    url: urlValue,\n    auto_page_type: record.auto_page_type ?? record.autoPageType ?? null,\n    manual_page_type: record.manual_page_type ?? record.manualPageType ?? null,\n    effective_page_type: record.effective_page_type ?? record.effectivePageType ?? null,\n    auto_list_types: coerceStringArray(record.auto_list_types ?? record.autoListTypes),\n    manual_list_types:\n      manualListSource === undefined\n        ? null\n        : manualListSource === null\n          ? null\n          : coerceStringArray(manualListSource),\n    effective_list_types: coerceStringArray(\n      record.effective_list_types ?? record.effectiveListTypes,\n    ),\n    auto_classification_enabled:\n      typeof record.auto_classification_enabled === \"boolean\"\n        ? record.auto_classification_enabled\n        : typeof record.autoClassificationEnabled === \"boolean\"\n          ? record.autoClassificationEnabled\n          : true,\n    sync_status: syncStatusValue,\n    retry_count: record.retry_count ?? record.retryCount ?? 0,\n    next_sync_at: record.next_sync_at ?? record.nextSyncAt ?? null,\n    last_sync_at: record.last_sync_at ?? record.lastSyncAt ?? null,\n    last_error: record.last_error ?? record.lastError ?? null,\n    first_seen_at:\n      typeof record.first_seen_at === \"string\"\n        ? record.first_seen_at\n        : typeof record.firstSeenAt === \"string\"\n          ? record.firstSeenAt\n          : \"\",\n    last_seen_at:\n      typeof record.last_seen_at === \"string\"\n        ? record.last_seen_at\n        : typeof record.lastSeenAt === \"string\"\n          ? record.lastSeenAt\n          : \"\",\n    last_crawled_at: record.last_crawled_at ?? record.lastCrawledAt ?? null,\n  }\n}\n\nconst handleResponse = async <T>(response: Response, errorPrefix: string): Promise<T> => {\n  if (!response.ok) {\n    await throwResponseError(response, errorPrefix)\n  }\n\n  return (await response.json()) as T\n}\n\nexport async function fetchDomains(\n  params: FetchDomainsParams = {},\n): Promise<PaginatedResult<DomainRecord>> {\n  const organizationId = (params.organizationId ?? \"\").trim()\n\n  if (!organizationId) return { items: [], total: 0 }\n\n  const query = buildQueryString([\n    [\"organization_id\", organizationId],\n    [\"limit\", params.limit ?? undefined],\n    [\"offset\", params.offset ?? undefined],\n    [\"realization_id\", params.realizationId ?? undefined],\n    [\"search\", params.search ?? undefined],\n    [\"sort_by\", params.sortBy ?? undefined],\n    [\"sort_dir\", params.sortDir ?? undefined],\n  ])\n\n  let response: Response\n  try {\n    response = await fetchService(`${scrapingAPIURL}/admin/domains${query}`, {\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`Domains konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n  const payload = await handleResponse<PaginatedApiResponse<DomainApiRecord>>(\n    response,\n    \"Domains konnten nicht geladen werden\",\n  )\n\n  return normalizePaginatedResponse(payload, normalizeDomainRecord)\n}\n\nexport async function createDomain(payload: DomainCreatePayload): Promise<DomainRecord> {\n  const scope = requireDomainScope(payload.scope)\n  const projectId = trimOrNull(payload.project_id)\n  const realizationId = trimOrNull(payload.realization_id)\n  let response: Response\n  try {\n    response = await fetchService(`${scrapingAPIURL}/admin/domains`, {\n      method: \"POST\",\n      headers: {\n        ...buildServiceHeaders(),\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({\n        organization_id: trimOrNull(payload.organization_id ?? payload.tenant_id),\n        project_id: scope === \"organization\" ? null : projectId,\n        realization_id: scope === \"realization\" ? realizationId : null,\n        scope,\n        domain: payload.domain,\n        crawl_interval_seconds: payload.crawl_interval_seconds,\n        default_page_type: payload.default_page_type,\n        default_list_types: payload.default_list_types,\n        classification_rules: payload.classification_rules,\n      }),\n    })\n  } catch (error) {\n    throw new Error(`Domain konnte nicht erstellt werden: ${toErrorMessage(error)}`)\n  }\n  const responseBody = await handleResponse<DomainApiRecord>(\n    response,\n    \"Domain konnte nicht erstellt werden\",\n  )\n\n  return normalizeDomainRecord(responseBody)\n}\n\nexport async function updateDomain(\n  domainId: string,\n  payload: DomainUpdatePayload,\n): Promise<DomainRecord> {\n  const body: DomainUpdatePayload = {}\n\n  if (payload.project_id !== undefined) body.project_id = trimOrNull(payload.project_id)\n\n  if (payload.realization_id !== undefined) body.realization_id = trimOrNull(payload.realization_id)\n\n  if (payload.scope !== undefined) body.scope = requireDomainScope(payload.scope)\n\n  if (payload.crawl_interval_seconds !== undefined)\n    body.crawl_interval_seconds = payload.crawl_interval_seconds\n\n  let response: Response\n  try {\n    response = await fetchService(`${scrapingAPIURL}/admin/domains/${domainId}`, {\n      method: \"PATCH\",\n      headers: {\n        ...buildServiceHeaders(),\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify(body),\n    })\n  } catch (error) {\n    throw new Error(`Domain konnte nicht aktualisiert werden: ${toErrorMessage(error)}`)\n  }\n  const responseBody = await handleResponse<DomainApiRecord>(\n    response,\n    \"Domain konnte nicht aktualisiert werden\",\n  )\n\n  return normalizeDomainRecord(responseBody)\n}\n\nexport async function triggerDiscovery(domainId: string, force = false): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(`${scrapingAPIURL}/admin/domains/${domainId}/actions/discover`, {\n      method: \"POST\",\n      headers: {\n        ...buildServiceHeaders(),\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({ force }),\n    })\n  } catch (error) {\n    throw new Error(`Discovery konnte nicht gestartet werden: ${toErrorMessage(error)}`)\n  }\n  await handleResponse(response, \"Discovery konnte nicht gestartet werden\")\n}\n\nexport async function cancelDomainSync(domainId: string): Promise<DomainSyncCancelResponse> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${domainId}/actions/cancel-sync`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Sync konnte nicht abgebrochen werden: ${toErrorMessage(error)}`)\n  }\n  const payload = await handleResponse<DomainSyncCancelApiResponse>(\n    response,\n    \"Sync konnte nicht abgebrochen werden\",\n  )\n\n  return {\n    status: payload.status,\n    domainId: payload.domain_id,\n    affectedUrls: payload.affected_urls,\n  }\n}\n\nexport async function deleteDomain(domainId: string): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(`${scrapingAPIURL}/admin/domains/${domainId}`, {\n      method: \"DELETE\",\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`Domain konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Domain konnte nicht gelöscht werden\")\n  }\n}\n\nexport async function fetchDomainUrls(\n  domainId: string,\n  params: FetchDomainUrlsParams = {},\n): Promise<PaginatedResult<UrlRecord>> {\n  const query = buildQueryString([\n    [\"limit\", params.limit ?? undefined],\n    [\"offset\", params.offset ?? undefined],\n    [\"search\", params.search ?? undefined],\n    [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n    [\"sort_by\", params.sortBy ?? undefined],\n    [\"sort_dir\", params.sortDir ?? undefined],\n  ])\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/urls${query}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`URLs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n  const payload = await handleResponse<PaginatedApiResponse<UrlApiRecord>>(\n    response,\n    \"URLs konnten nicht geladen werden\",\n  )\n\n  return normalizePaginatedResponse(payload, normalizeUrlRecord)\n}\n\nexport const buildDomainUrlsStreamUrl = (domainId: string): string =>\n  `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/urls/stream`\n\nexport async function fetchScrapingSyncJobs(\n  params: {\n    organizationId: string\n    projectId?: string | null\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {\n    organizationId: \"\",\n  },\n): Promise<SyncJobListResponse> {\n  const organizationId = (params.organizationId ?? \"\").trim()\n\n  if (!organizationId) {\n    return { items: [], total: 0 }\n  }\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domain-sync-jobs${buildQueryString([\n        [\"organization_id\", organizationId],\n        [\"project_id\", (params.projectId ?? \"\").trim() || undefined],\n        [\"limit\", params.limit ?? undefined],\n        [\"offset\", params.offset ?? undefined],\n        [\"search\", params.search ?? undefined],\n        [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n      ])}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n  const payload = await handleResponse<SyncJobListApiResponse>(\n    response,\n    \"Synchronisationsjobs konnten nicht geladen werden\",\n  )\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport async function fetchDomainScrapingSyncJobs(\n  domainId: string,\n  params: {\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {},\n): Promise<SyncJobListResponse> {\n  const query = buildQueryString([\n    [\"limit\", params.limit ?? undefined],\n    [\"offset\", params.offset ?? undefined],\n    [\"search\", params.search ?? undefined],\n    [\"status\", params.statuses?.length ? params.statuses.join(\",\") : undefined],\n  ])\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/sync-jobs${query}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n  const payload = await handleResponse<SyncJobListApiResponse>(\n    response,\n    \"Synchronisationsjobs konnten nicht geladen werden\",\n  )\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport const buildScrapingSyncJobsStreamUrl = (params: {\n  organizationId: string\n  projectId?: string | null\n}): string =>\n  `${scrapingAPIURL}/admin/domain-sync-jobs/stream${buildQueryString([\n    [\"organization_id\", params.organizationId],\n    [\"project_id\", (params.projectId ?? \"\").trim() || undefined],\n  ])}`\n\nexport const buildDomainScrapingSyncJobsStreamUrl = (domainId: string): string =>\n  `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/sync-jobs/stream`\n\nexport async function fetchAllDomains(\n  params: FetchDomainsParams = {},\n): Promise<PaginatedResult<DomainRecord>> {\n  const limit = params.limit && params.limit > 0 ? params.limit : BULK_PAGE_SIZE\n  let offset = params.offset ?? 0\n  const items: DomainRecord[] = []\n  let total: number | null = null\n\n  while (true) {\n    const page = await fetchDomains({ ...params, limit, offset })\n    items.push(...page.items)\n\n    if (total === null) total = page.total\n\n    offset += page.items.length\n\n    if (!page.items.length) break\n\n    if (page.total !== null && items.length >= page.total) break\n\n    if (page.total === null && page.items.length < limit) break\n  }\n\n  return { items, total: total ?? items.length }\n}\n\nexport async function fetchAllDomainUrls(\n  domainId: string,\n  params: FetchDomainUrlsParams = {},\n): Promise<PaginatedResult<UrlRecord>> {\n  const limit = params.limit && params.limit > 0 ? params.limit : BULK_PAGE_SIZE\n  let offset = params.offset ?? 0\n  const items: UrlRecord[] = []\n  let total: number | null = null\n\n  while (true) {\n    const page = await fetchDomainUrls(domainId, { ...params, limit, offset })\n    items.push(...page.items)\n\n    if (total === null) total = page.total\n\n    offset += page.items.length\n\n    if (!page.items.length) break\n\n    if (page.total !== null && items.length >= page.total) break\n\n    if (page.total === null && page.items.length < limit) break\n  }\n\n  return { items, total: total ?? items.length }\n}\n\nexport async function updateUrlAssignment(\n  domainId: string,\n  urlId: string,\n  payload: UrlAssignmentPayload,\n): Promise<UrlRecord> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/urls/${urlId}`,\n      {\n        method: \"PATCH\",\n        headers: {\n          ...buildServiceHeaders(),\n          \"Content-Type\": \"application/json\",\n        },\n        body: JSON.stringify(payload),\n      },\n    )\n  } catch (error) {\n    throw new Error(`URL konnte nicht aktualisiert werden: ${toErrorMessage(error)}`)\n  }\n  const result = await handleResponse<UrlApiRecord>(\n    response,\n    \"URL konnte nicht aktualisiert werden\",\n  )\n\n  return normalizeUrlRecord(result)\n}\n\nexport async function triggerUrlSync(\n  domainId: string,\n  urlId: string,\n  payload: UrlSyncPayload,\n): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/urls/${urlId}/actions/sync`,\n      {\n        method: \"POST\",\n        headers: {\n          ...buildServiceHeaders(),\n          \"Content-Type\": \"application/json\",\n        },\n        body: JSON.stringify(payload),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Sync konnte nicht geplant werden: ${toErrorMessage(error)}`)\n  }\n  await handleResponse(response, \"Sync konnte nicht geplant werden\")\n}\n\nexport async function deleteUrl(domainId: string, urlId: string): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${scrapingAPIURL}/admin/domains/${encodeURIComponent(domainId)}/urls/${urlId}`,\n      {\n        method: \"DELETE\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`URL konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"URL konnte nicht gelöscht werden\")\n  }\n}\n","import {\n  mdiApi,\n  mdiClockOutline,\n  mdiDatabaseAlertOutline,\n  mdiDatabaseCheckOutline,\n  mdiDatabaseClockOutline,\n  mdiDatabaseSearchOutline,\n  mdiFileDocumentMultipleOutline,\n  mdiFolderUploadOutline,\n  mdiFrequentlyAskedQuestions,\n  mdiHelpCircleOutline,\n  mdiMicrosoftSharepoint,\n  mdiSync,\n  mdiSyncAlert,\n  mdiTimerSand,\n  mdiWeb,\n} from \"@mdi/js\"\n\nimport { buildRichTooltip } from \"../../../../../../../../../../_shared/_logic/rich-tooltips\"\nimport {\n  formatNumber,\n  formatRelative,\n  formatTimestamp,\n} from \"../../../../../../../../../../_shared/_logic/metrics-utils\"\nimport type { InternalSource, ScrapingStats, TableTagPresentation } from \"../contract\"\n\nconst escapeHtml = (value: unknown): string =>\n  String(value ?? \"\")\n    .replaceAll(\"&\", \"&amp;\")\n    .replaceAll(\"<\", \"&lt;\")\n    .replaceAll(\">\", \"&gt;\")\n    .replaceAll('\"', \"&quot;\")\n    .replaceAll(\"'\", \"&#39;\")\n\nconst isPresent = (value: unknown) =>\n  value !== null && value !== undefined && String(value).trim().length > 0\n\nconst tooltipTitle = (label: string): string => `<strong>${escapeHtml(label)}</strong>`\n\nconst tooltipText = (value: unknown): string | null =>\n  isPresent(value) ? `<p>${escapeHtml(value)}</p>` : null\n\nconst tooltipField = (label: string, value: unknown): string | null =>\n  isPresent(value) ? `<span><b>${escapeHtml(label)}</b>${escapeHtml(value)}</span>` : null\n\nconst detailKind = (detail: string | null | undefined) => (detail ?? \"\").trim().toLowerCase()\n\nconst isWebsiteDetail = (detail: string) => detail === \"website\" || detail === \"scraping\"\n\nconst sourceDescription = (detail: string) => {\n  if (detail === \"minio\")\n    return \"Dateiuploads werden extrahiert, in Chunks zerlegt und im Wissensindex gespeichert.\"\n\n  if (isWebsiteDetail(detail))\n    return \"Domains und URLs werden gecrawlt, extrahiert und im Wissensindex abgelegt.\"\n\n  if (detail === \"answer-library\")\n    return \"Fragen und Antworten werden als FAQ-Wissen synchronisiert und indiziert.\"\n\n  if (detail.startsWith(\"sharepoint\"))\n    return \"SharePoint-Dokumentbibliotheken werden beobachtet und im Index bereitgestellt.\"\n\n  if (detail === \"generic\" || detail === \"external\")\n    return \"Inhalte werden ueber eine API oder externe Integration eingespeist.\"\n\n  return \"Quelle ohne spezifische Klassifikation.\"\n}\n\nconst websiteSubLabel = (scraping: ScrapingStats | null) => {\n  if (!scraping) return \"Website-Crawl\"\n\n  return `${formatNumber(scraping.domains)} Domains · ${formatNumber(scraping.urls)} URLs`\n}\n\nexport const buildSourceTag = (\n  source: Pick<InternalSource, \"info\" | \"scraping\">,\n): TableTagPresentation => {\n  const detail = detailKind(source.info.detail)\n  const label =\n    source.info.detail !== \"unknown\" ? source.info.detailLabel : source.info.categoryLabel\n\n  if (detail === \"minio\") {\n    return {\n      id: \"source-minio\",\n      label,\n      subLabel: \"Dateisammlungen\",\n      color: \"emerald\",\n      icon: mdiFolderUploadOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(label),\n        tooltipText(sourceDescription(detail)),\n        tooltipField(\"Typ\", \"Dateiuploads\"),\n      ),\n      tooltipHtml: true,\n      searchText: `${label} Dateisammlungen Dateiuploads`,\n      sortValue: label,\n    }\n  }\n\n  if (isWebsiteDetail(detail)) {\n    return {\n      id: \"source-website\",\n      label,\n      subLabel: websiteSubLabel(source.scraping),\n      color: \"teal\",\n      icon: mdiWeb,\n      tooltip: buildRichTooltip(\n        tooltipTitle(label),\n        tooltipText(sourceDescription(detail)),\n        tooltipField(\"Statistik\", websiteSubLabel(source.scraping)),\n      ),\n      tooltipHtml: true,\n      searchText: `${label} Website Crawl Domains URLs`,\n      sortValue: label,\n    }\n  }\n\n  if (detail === \"answer-library\") {\n    return {\n      id: \"source-answer-library\",\n      label,\n      subLabel: \"FAQ-Wissen\",\n      color: \"indigo\",\n      icon: mdiFrequentlyAskedQuestions,\n      tooltip: buildRichTooltip(\n        tooltipTitle(label),\n        tooltipText(sourceDescription(detail)),\n        tooltipField(\"Typ\", \"FAQ-Wissen\"),\n      ),\n      tooltipHtml: true,\n      searchText: `${label} FAQ Wissen Fragen Antworten`,\n      sortValue: label,\n    }\n  }\n\n  if (detail.startsWith(\"sharepoint\")) {\n    return {\n      id: \"source-sharepoint\",\n      label,\n      subLabel: \"Dokumentbibliotheken\",\n      color: \"blue\",\n      icon: mdiMicrosoftSharepoint,\n      tooltip: buildRichTooltip(\n        tooltipTitle(label),\n        tooltipText(sourceDescription(detail)),\n        tooltipField(\"Typ\", \"SharePoint-Dokumentbibliotheken\"),\n      ),\n      tooltipHtml: true,\n      searchText: `${label} SharePoint Dokumentbibliotheken`,\n      sortValue: label,\n    }\n  }\n\n  if (detail === \"generic\" || detail === \"external\") {\n    return {\n      id: `source-${detail}`,\n      label,\n      subLabel: \"API-Import\",\n      color: \"orange\",\n      icon: mdiApi,\n      tooltip: buildRichTooltip(\n        tooltipTitle(label),\n        tooltipText(sourceDescription(detail)),\n        tooltipField(\"Typ\", \"API-Import\"),\n      ),\n      tooltipHtml: true,\n      searchText: `${label} API Import`,\n      sortValue: label,\n    }\n  }\n\n  return {\n    id: `source-${detail || \"unknown\"}`,\n    label,\n    subLabel: \"nicht klassifiziert\",\n    color: \"amber\",\n    icon: mdiHelpCircleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(label),\n      tooltipText(sourceDescription(detail)),\n      tooltipField(\"Detail\", detail || \"unknown\"),\n    ),\n    tooltipHtml: true,\n    searchText: `${label} unbekannt nicht klassifiziert`,\n    sortValue: label,\n  }\n}\n\nexport const formatChunksLabel = (value: number | null | undefined) =>\n  value == null ? \"nicht gemessen\" : `${formatNumber(value)} Chunks`\n\nexport const formatChunkDeltaLabel = (value: number | null | undefined) => {\n  if (value == null) return \"keine Delta-Messung\"\n\n  const prefix = value > 0 ? \"+\" : value < 0 ? \"-\" : \"\"\n\n  return `${prefix}${formatNumber(Math.abs(value))} letzte Minute`\n}\n\nexport const formatOpenSyncsLegacy = (value: number | null | undefined) =>\n  value == null ? \"–\" : formatNumber(value)\n\nexport const buildIndexTag = ({\n  chunks,\n  chunksLastMinute,\n}: {\n  chunks: number | null\n  chunksLastMinute: number | null\n}): TableTagPresentation => {\n  const label = formatChunksLabel(chunks)\n  const subLabel = formatChunkDeltaLabel(chunksLastMinute)\n  const color = chunks == null ? \"blue\" : chunks > 0 ? \"emerald\" : \"amber\"\n\n  return {\n    id: \"index-content\",\n    label,\n    subLabel,\n    color,\n    icon: mdiDatabaseSearchOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Indexbestand\"),\n      tooltipText(\"Chunks sind die Textbausteine, die aus dieser Quelle im Wissensindex liegen.\"),\n      tooltipField(\"Aktuell\", label),\n      tooltipField(\n        \"Letzte Minute\",\n        \"Nettoänderung der Chunks in den letzten 60 Sekunden: \" + subLabel,\n      ),\n    ),\n    tooltipHtml: true,\n    searchText: `${label} ${subLabel}`,\n    sortValue: chunks,\n  }\n}\n\nexport const buildProcessingTag = ({\n  detail,\n  chunks,\n  openSyncs,\n  scraping,\n  scrapingError,\n}: {\n  detail: string\n  chunks: number | null\n  openSyncs: number | null\n  scraping: ScrapingStats | null\n  scrapingError: string | null\n}): TableTagPresentation => {\n  const normalizedDetail = detailKind(detail)\n\n  if (isWebsiteDetail(normalizedDetail)) {\n    if (scrapingError) {\n      return {\n        id: \"processing-website-error\",\n        label: \"Sync unklar\",\n        subLabel: \"Scraping-Status nicht geladen\",\n        color: \"rose\",\n        icon: mdiSyncAlert,\n        tooltip: buildRichTooltip(\n          tooltipTitle(\"Website-Verarbeitung\"),\n          tooltipField(\"Fehler\", scrapingError),\n        ),\n        tooltipHtml: true,\n        searchText: `Sync unklar ${scrapingError}`,\n        sortValue: -1,\n      }\n    }\n\n    if (openSyncs == null || !scraping) {\n      return {\n        id: \"processing-website-unknown\",\n        label: \"Sync unklar\",\n        subLabel: \"URL-Status nicht gemessen\",\n        color: \"blue\",\n        icon: mdiSyncAlert,\n        tooltip: buildRichTooltip(\n          tooltipTitle(\"Website-Verarbeitung\"),\n          tooltipText(\"Fuer diese Quelle liegen aktuell keine URL-Sync-Statistiken vor.\"),\n        ),\n        tooltipHtml: true,\n        searchText: \"Sync unklar URL Status nicht gemessen\",\n        sortValue: null,\n      }\n    }\n\n    const syncedLabel = `${formatNumber(scraping.urlsWithSync)} von ${formatNumber(scraping.urls)} URLs synchronisiert`\n\n    if (openSyncs > 0) {\n      return {\n        id: \"processing-website-open\",\n        label: `${formatNumber(openSyncs)} offen`,\n        subLabel: syncedLabel,\n        color: \"amber\",\n        icon: mdiTimerSand,\n        tooltip: buildRichTooltip(\n          tooltipTitle(\"Website-Verarbeitung\"),\n          tooltipField(\"Offene URLs\", formatNumber(openSyncs)),\n          tooltipField(\"Synchronisiert\", syncedLabel),\n        ),\n        tooltipHtml: true,\n        searchText: `${openSyncs} offen ${syncedLabel}`,\n        sortValue: openSyncs,\n      }\n    }\n\n    return {\n      id: \"processing-website-ok\",\n      label: \"Alles synchron\",\n      subLabel: syncedLabel,\n      color: \"emerald\",\n      icon: mdiSync,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Website-Verarbeitung\"),\n        tooltipText(\"Alle bekannten URLs haben einen abgeschlossenen Sync.\"),\n        tooltipField(\"Synchronisiert\", syncedLabel),\n      ),\n      tooltipHtml: true,\n      searchText: `Alles synchron ${syncedLabel}`,\n      sortValue: 0,\n    }\n  }\n\n  if (chunks == null) {\n    return {\n      id: \"processing-unknown\",\n      label: \"nicht gemessen\",\n      subLabel: \"keine Indexmetrik\",\n      color: \"blue\",\n      icon: mdiDatabaseClockOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Verarbeitung\"),\n        tooltipText(\"Fuer diese Quelle liegen aktuell keine Indexmetriken vor.\"),\n      ),\n      tooltipHtml: true,\n      searchText: \"nicht gemessen keine Indexmetrik\",\n      sortValue: null,\n    }\n  }\n\n  if (chunks === 0) {\n    return {\n      id: \"processing-empty\",\n      label: \"Noch leer\",\n      subLabel: \"keine Chunks im Index\",\n      color: \"amber\",\n      icon: mdiDatabaseAlertOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Verarbeitung\"),\n        tooltipText(\"Die Quelle ist bekannt, hat aber aktuell keine Chunks im Index.\"),\n      ),\n      tooltipHtml: true,\n      searchText: \"Noch leer keine Chunks\",\n      sortValue: 0,\n    }\n  }\n\n  return {\n    id: \"processing-active\",\n    label: \"Index aktiv\",\n    subLabel: \"Chunks vorhanden\",\n    color: \"emerald\",\n    icon: mdiDatabaseCheckOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Verarbeitung\"),\n      tooltipText(\"Diese Quelle liefert Inhalte, die im Wissensindex vorhanden sind.\"),\n      tooltipField(\"Chunks\", formatNumber(chunks)),\n    ),\n    tooltipHtml: true,\n    searchText: \"Index aktiv Chunks vorhanden\",\n    sortValue: chunks,\n  }\n}\n\nconst parseTimestamp = (value: string | null | undefined): Date | null => {\n  if (!value) return null\n\n  const date = new Date(value)\n\n  return Number.isFinite(date.getTime()) ? date : null\n}\n\nexport const formatActivityLegacy = (value: string | null | undefined) =>\n  value ? formatRelative(value) : \"–\"\n\nexport const buildActivityTag = (\n  value: string | null | undefined,\n  now: Date = new Date(),\n): TableTagPresentation => {\n  if (!value) {\n    return {\n      id: \"activity-empty\",\n      label: \"keine Aktivität\",\n      subLabel: \"letzte Indexänderung\",\n      color: \"orange\",\n      icon: mdiClockOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Aktivität\"),\n        tooltipText(\"Fuer diese Quelle wurde noch keine Indexaktivitaet gemessen.\"),\n      ),\n      tooltipHtml: true,\n      searchText: \"keine Aktivität letzte Indexänderung\",\n      sortValue: null,\n    }\n  }\n\n  const date = parseTimestamp(value)\n\n  if (!date) {\n    return {\n      id: \"activity-invalid\",\n      label: \"Zeitpunkt unklar\",\n      subLabel: \"letzte Indexänderung\",\n      color: \"blue\",\n      icon: mdiClockOutline,\n      tooltip: buildRichTooltip(tooltipTitle(\"Aktivität\"), tooltipField(\"Rohwert\", value)),\n      tooltipHtml: true,\n      searchText: `Zeitpunkt unklar ${value}`,\n      sortValue: null,\n    }\n  }\n\n  const ageMs = now.getTime() - date.getTime()\n  const color = ageMs < 86_400_000 ? \"emerald\" : ageMs < 604_800_000 ? \"blue\" : \"amber\"\n  const label = formatRelative(date)\n\n  return {\n    id: \"activity-known\",\n    label,\n    subLabel: \"letzte Indexänderung\",\n    color,\n    icon: mdiFileDocumentMultipleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Aktivität\"),\n      tooltipField(\"Relativ\", label),\n      tooltipField(\"Zeitpunkt\", formatTimestamp(date)),\n    ),\n    tooltipHtml: true,\n    searchText: `${label} letzte Indexänderung ${formatTimestamp(date)}`,\n    sortValue: date.getTime(),\n  }\n}\n","import type { ColumnDef, DataRow, TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\nimport type {\n  InternalSource,\n  InternalSourceChunkPaths,\n  InternalSourceOpenAction,\n  InternalSourceTableRow,\n} from \"../_shared/_logic/contract\"\nimport {\n  buildActivityTag,\n  buildIndexTag,\n  buildProcessingTag,\n  buildSourceTag,\n} from \"../_shared/_logic/presentation\"\nimport {\n  canonicalSourceDetail,\n  displayLabel,\n  pickLatest,\n  sourceTestId,\n  sumNullable,\n} from \"./sourceRows\"\n\nexport const protectedSourceDetails = new Set([\n  \"website\",\n  \"scraping\",\n  \"minio\",\n  \"answer-library\",\n  \"sharepoint\",\n])\n\nexport const internalColumns: ColumnDef[] = [\n  {\n    id: \"source\",\n    label: \"Indexquelle\",\n    isPrimary: true,\n    tooltip: \"Quelle, aus der Inhalte in den Wissensindex gelangen.\",\n    sortable: true,\n    sortType: \"text\",\n    getSortValue: (row) => (row as InternalSourceTableRow).sourceTag.sortValue,\n  },\n  {\n    id: \"indexContent\",\n    label: \"Indexbestand\",\n    tooltip: \"Aktuelle Chunks und Nettoänderung in der letzten Minute.\",\n    sortable: true,\n    sortType: \"number\",\n    getSortValue: (row) => (row as InternalSourceTableRow).indexTag.sortValue,\n  },\n  {\n    id: \"processing\",\n    label: \"Verarbeitung\",\n    tooltip: \"Fachlicher Verarbeitungs- und Sync-Status dieser Quelle.\",\n    sortable: true,\n    sortType: \"number\",\n    getSortValue: (row) => (row as InternalSourceTableRow).processingTag.sortValue,\n  },\n  {\n    id: \"activity\",\n    label: \"Aktivität\",\n    tooltip: \"Letzte bekannte Änderung dieser Quelle im Index.\",\n    sortable: true,\n    sortType: \"date\",\n    getSortValue: (row) => (row as InternalSourceTableRow).activityTag.sortValue,\n  },\n]\n\nexport const internalCardFields = [\"indexContent\", \"processing\", \"activity\"]\n\nexport const createStaticGetRows = (source: DataRow[]): TableGetRows => {\n  return ({ filters: _filters, limit, offset, sort: _sort }) => {\n    const start = Math.max(0, offset ?? 0)\n    const size = typeof limit === \"number\" && limit > 0 ? limit : source.length\n    const end = start + size\n\n    return { rows: source.slice(start, end), total: source.length }\n  }\n}\n\nexport const resolveDeleteSourceId = (detail: string | null | undefined): string | null => {\n  const normalizedDetail = canonicalSourceDetail(detail)\n\n  if (!normalizedDetail || protectedSourceDetails.has(normalizedDetail)) return null\n\n  return normalizedDetail\n}\n\nexport const buildEffectiveInternalSources = ({\n  internalSources,\n  externalSources,\n  deletedSourceDetails,\n}: {\n  internalSources: InternalSource[]\n  externalSources: InternalSource[]\n  deletedSourceDetails: ReadonlySet<string>\n}): InternalSource[] => {\n  const byDetail: Record<string, InternalSource> = {}\n  const mergeEntry = (entry: InternalSource) => {\n    const detail = canonicalSourceDetail(entry.info?.detail) || \"unknown\"\n    const current = byDetail[detail]\n    byDetail[detail] = {\n      ...(current ?? entry),\n      ...entry,\n      documents: sumNullable(current?.documents, entry.documents),\n      documentsLastMinute: sumNullable(current?.documentsLastMinute, entry.documentsLastMinute),\n      lastActivity: pickLatest(current?.lastActivity ?? null, entry.lastActivity ?? null),\n    }\n  }\n\n  internalSources.forEach(mergeEntry)\n  externalSources.forEach((item) =>\n    mergeEntry({\n      ...item,\n      scraping: null,\n    }),\n  )\n\n  return Object.values(byDetail).filter((entry) => {\n    const detail = canonicalSourceDetail(entry.info?.detail)\n\n    if (!deletedSourceDetails.has(detail)) return true\n\n    return protectedSourceDetails.has(detail)\n  })\n}\n\nconst isWebsiteDetail = (detail: string) => detail === \"scraping\" || detail === \"website\"\n\nexport const resolveInternalSourceOpenAction = (\n  row: Pick<InternalSourceTableRow, \"detail\">,\n  {\n    chunkPaths,\n    answersPath,\n  }: {\n    chunkPaths: InternalSourceChunkPaths | null\n    answersPath: string | null\n  },\n): InternalSourceOpenAction | null => {\n  const detail = (row.detail || \"\").toLowerCase()\n\n  if (!chunkPaths) {\n    if (detail === \"answer-library\" && answersPath) {\n      return { label: \"FAQ-Sammlung öffnen\", target: answersPath }\n    }\n\n    return null\n  }\n\n  if (detail === \"answer-library\") {\n    return { label: \"FAQ-Chunks öffnen\", target: chunkPaths.answerLibrary }\n  }\n\n  if (detail === \"minio\") {\n    return { label: \"Dateiupload-Chunks öffnen\", target: chunkPaths.minio }\n  }\n\n  if (isWebsiteDetail(detail)) {\n    return { label: \"Website-Chunks öffnen\", target: chunkPaths.scraping }\n  }\n\n  if (detail.startsWith(\"sharepoint\")) {\n    return { label: \"SharePoint-Chunks öffnen\", target: chunkPaths.sharepoint }\n  }\n\n  if ([\"external\", \"generic\", \"unknown\"].includes(detail)) {\n    return { label: \"API-Chunks öffnen\", target: chunkPaths.external }\n  }\n\n  return { label: \"Chunks öffnen\", target: chunkPaths.all }\n}\n\nexport const buildInternalSourceTableRows = ({\n  sources,\n  deletedSourceDetails,\n  scrapingError,\n  chunkPaths,\n  answersPath,\n}: {\n  sources: InternalSource[]\n  deletedSourceDetails: ReadonlySet<string>\n  scrapingError: string | null\n  chunkPaths: InternalSourceChunkPaths | null\n  answersPath: string | null\n}): InternalSourceTableRow[] =>\n  sources.map((item) => {\n    const detail = canonicalSourceDetail(item.info.detail)\n    const scraping = isWebsiteDetail(detail) ? item.scraping : null\n    const openSyncs = scraping != null ? Math.max(scraping.urls - scraping.urlsWithSync, 0) : null\n    const isLocallyDeleted = deletedSourceDetails.has(detail)\n    const chunks = isLocallyDeleted ? 0 : (item.documents ?? null)\n    const chunksLastMinute = isLocallyDeleted ? 0 : (item.documentsLastMinute ?? null)\n    const lastActivity = isLocallyDeleted\n      ? null\n      : scraping?.lastSync\n        ? pickLatest(item.lastActivity ?? null, scraping.lastSync)\n        : (item.lastActivity ?? null)\n    const baseRow = {\n      id: item.key,\n      label: displayLabel(item.info),\n      type: item.info.categoryLabel,\n      detail: item.info.detail,\n      testId: sourceTestId({ detail: item.info.detail, id: item.key }),\n      openSyncs,\n      lastActivity,\n      chunks,\n      chunksLastMinute,\n      sourceTag: buildSourceTag(item),\n      indexTag: buildIndexTag({ chunks, chunksLastMinute }),\n      processingTag: buildProcessingTag({\n        detail,\n        chunks,\n        openSyncs,\n        scraping,\n        scrapingError,\n      }),\n      activityTag: buildActivityTag(lastActivity),\n      deleteSourceId: resolveDeleteSourceId(item.info.detail),\n    } satisfies Omit<InternalSourceTableRow, \"openAction\">\n\n    return {\n      ...baseRow,\n      openAction: resolveInternalSourceOpenAction(baseRow, { chunkPaths, answersPath }),\n    }\n  })\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import { RICH_TOOLTIP_CLASS } from \"../../../../../../../../../_shared/_logic/rich-tooltips\"\n  import type { InternalSourceTableRow } from \"../../_shared/_logic/contract\"\n\n  type Props = {\n    row: InternalSourceTableRow\n  }\n\n  const { row }: Props = $props()\n</script>\n\n<div data-testid={`indexAdmin.datasources.internal.row.label.${row.testId}`}>\n    <StatusTag\n    size=\"sm\"\n    label={row.sourceTag.label}\n    subLabel={row.sourceTag.subLabel ?? undefined}\n    icon={row.sourceTag.icon ?? undefined}\n    iconText={row.sourceTag.iconText ?? undefined}\n    color={row.sourceTag.color}\n    tooltipContent={row.sourceTag.tooltip ?? \"\"}\n    tooltipHtml={row.sourceTag.tooltipHtml ?? false}\n    tooltipClassName={row.sourceTag.tooltipHtml ? RICH_TOOLTIP_CLASS : \"\"}\n    disableTitle={true}\n  />\n</div>\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import { RICH_TOOLTIP_CLASS } from \"../../../../../../../../../_shared/_logic/rich-tooltips\"\n  import type { InternalSourceTableRow } from \"../../_shared/_logic/contract\"\n  import { formatChunkDeltaLabel, formatChunksLabel } from \"../../_shared/_logic/presentation\"\n\n  type Props = {\n    row: InternalSourceTableRow\n  }\n\n  const { row }: Props = $props()\n</script>\n\n<div class=\"metric-cell\">\n    <StatusTag\n    size=\"sm\"\n    label={row.indexTag.label}\n    subLabel={row.indexTag.subLabel ?? undefined}\n    icon={row.indexTag.icon ?? undefined}\n    color={row.indexTag.color}\n    tooltipContent={row.indexTag.tooltip ?? \"\"}\n    tooltipHtml={row.indexTag.tooltipHtml ?? false}\n    tooltipClassName={row.indexTag.tooltipHtml ? RICH_TOOLTIP_CLASS : \"\"}\n    disableTitle={true}\n  />\n    <span\n    class=\"legacy-metric\"\n    data-testid={`indexAdmin.datasources.internal.row.chunks.${row.testId}`}\n  >\n        {formatChunksLabel(row.chunks)}\n    </span>\n    <span\n    class=\"legacy-metric\"\n    data-testid={`indexAdmin.datasources.internal.row.chunksLastMinute.${row.testId}`}\n  >\n        {formatChunkDeltaLabel(row.chunksLastMinute)}\n    </span>\n</div>\n\n<style lang=\"less\">\n  .metric-cell {\n    position: relative;\n    display: inline-flex;\n    max-width: 100%;\n  }\n\n  .legacy-metric {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    margin: -1px;\n    padding: 0;\n    overflow: hidden;\n    clip: rect(0 0 0 0);\n    white-space: nowrap;\n    border: 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import { RICH_TOOLTIP_CLASS } from \"../../../../../../../../../_shared/_logic/rich-tooltips\"\n  import type { InternalSourceTableRow } from \"../../_shared/_logic/contract\"\n  import { formatOpenSyncsLegacy } from \"../../_shared/_logic/presentation\"\n\n  type Props = {\n    row: InternalSourceTableRow\n  }\n\n  const { row }: Props = $props()\n</script>\n\n<div class=\"metric-cell\">\n    <StatusTag\n    size=\"sm\"\n    label={row.processingTag.label}\n    subLabel={row.processingTag.subLabel ?? undefined}\n    icon={row.processingTag.icon ?? undefined}\n    color={row.processingTag.color}\n    tooltipContent={row.processingTag.tooltip ?? \"\"}\n    tooltipHtml={row.processingTag.tooltipHtml ?? false}\n    tooltipClassName={row.processingTag.tooltipHtml ? RICH_TOOLTIP_CLASS : \"\"}\n    disableTitle={true}\n  />\n    <span\n    class=\"legacy-metric\"\n    data-testid={`indexAdmin.datasources.internal.row.openSyncs.${row.testId}`}\n  >\n        {formatOpenSyncsLegacy(row.openSyncs)}\n    </span>\n</div>\n\n<style lang=\"less\">\n  .metric-cell {\n    position: relative;\n    display: inline-flex;\n    max-width: 100%;\n  }\n\n  .legacy-metric {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    margin: -1px;\n    padding: 0;\n    overflow: hidden;\n    clip: rect(0 0 0 0);\n    white-space: nowrap;\n    border: 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import { RICH_TOOLTIP_CLASS } from \"../../../../../../../../../_shared/_logic/rich-tooltips\"\n  import type { InternalSourceTableRow } from \"../../_shared/_logic/contract\"\n  import { formatActivityLegacy } from \"../../_shared/_logic/presentation\"\n\n  type Props = {\n    row: InternalSourceTableRow\n  }\n\n  const { row }: Props = $props()\n</script>\n\n<div class=\"metric-cell\">\n    <StatusTag\n    size=\"sm\"\n    label={row.activityTag.label}\n    subLabel={row.activityTag.subLabel ?? undefined}\n    icon={row.activityTag.icon ?? undefined}\n    color={row.activityTag.color}\n    tooltipContent={row.activityTag.tooltip ?? \"\"}\n    tooltipHtml={row.activityTag.tooltipHtml ?? false}\n    tooltipClassName={row.activityTag.tooltipHtml ? RICH_TOOLTIP_CLASS : \"\"}\n    disableTitle={true}\n  />\n    <span\n    class=\"legacy-metric\"\n    data-testid={`indexAdmin.datasources.internal.row.lastActivity.${row.testId}`}\n  >\n        {formatActivityLegacy(row.lastActivity)}\n    </span>\n</div>\n\n<style lang=\"less\">\n  .metric-cell {\n    position: relative;\n    display: inline-flex;\n    max-width: 100%;\n  }\n\n  .legacy-metric {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    margin: -1px;\n    padding: 0;\n    overflow: hidden;\n    clip: rect(0 0 0 0);\n    white-space: nowrap;\n    border: 0;\n  }\n</style>\n","import { mdiOpenInApp, mdiTrashCanOutline } from \"@mdi/js\"\nimport type { InternalSourceTableRow } from \"../_shared/_logic/contract\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\ntype Props = {\n  row: InternalSourceTableRow\n  deleting?: boolean\n  onOpen: (row: InternalSourceTableRow) => void\n  onDelete: (row: InternalSourceTableRow) => void\n}\nexport default function buildRowActions({\n  row,\n  deleting = false,\n  onOpen,\n  onDelete,\n}: Props): TableRowAction[] {\n  const actions: TableRowAction[] = []\n\n  if (row.openAction) {\n    actions.push({\n      id: \"action-0\",\n      label: row.openAction.label,\n      onClick: () => {\n        onOpen(row)\n      },\n      icon: mdiOpenInApp,\n      tooltip: row.openAction.label,\n      testId: `indexAdmin.datasources.internal.row.openButton.${row.testId}`,\n    })\n  }\n\n  if (row.deleteSourceId) {\n    actions.push({\n      id: \"action-1\",\n      label: \"Alle Chunks dieser Quelle löschen\",\n      onClick: () => {\n        onDelete(row)\n      },\n      icon: mdiTrashCanOutline,\n      disabled: deleting,\n      tooltip: \"Alle Chunks dieser Quelle löschen\",\n      testId: `indexAdmin.datasources.internal.row.deleteButton.${row.testId}`,\n      tone: \"danger\",\n    })\n  }\n\n  return actions\n}\n","<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import { onMount } from \"svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import {\n    formatNumber,\n    parseDataSourceKey,\n  } from \"../../../../../../../_shared/_logic/metrics-utils\"\n  import {\n    spaNavigate,\n    buildCurrentProjectPath,\n  } from \"../../../../../../../_shared/_logic/organization-navigation\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { deleteChunksBySource } from \"../../../../../../../_shared/_logic/chunks\"\n  import { fetchAllDomains, fetchAllDomainUrls } from \"../../../../../../_shared/_logic/scraping\"\n  import type {\n    InternalSourceChunkPaths,\n    InternalSourcesSectionProps,\n    InternalSourceTableRow,\n    ScrapingStats,\n  } from \"./_shared/_logic/contract\"\n  import {\n    buildExternalSources,\n    buildInternalSources,\n    computeScrapingStats,\n  } from \"./_logic/sourceRows\"\n  import {\n    buildEffectiveInternalSources,\n    buildInternalSourceTableRows,\n    createStaticGetRows,\n    internalCardFields,\n    internalColumns,\n  } from \"./_logic/tableModel\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../confirmed-destructive-action\"\n  import SourceCell from \"./_modules/source-cell\"\n  import IndexContentCell from \"./_modules/index-content-cell\"\n  import ProcessingCell from \"./_modules/processing-cell\"\n  import ActivityCell from \"./_modules/activity-cell\"\n  import InternalSourceRowActions from \"./_logic/InternalSourceRowActions.actions\"\n\n  const {\n    analytics = null,\n    analyticsLoading = false,\n    organizationId = null,\n    projectId = null,\n    active = false,\n    hasWorkspaceData = false,\n  }: InternalSourcesSectionProps = $props()\n\n  const internalSourcesBase = $derived(buildInternalSources(analytics))\n  const externalSources = $derived(buildExternalSources(analytics))\n\n  let scrapingStats = $state<ScrapingStats | null>(null)\n  let scrapingLoading = $state(false)\n  let scrapingError = $state<string | null>(null)\n  let scrapingRequestId = 0\n  let deletingSourceDetails = $state<Set<string>>(new Set())\n  let deletedSourceDetails = $state<Set<string>>(new Set())\n\n  const setDeletingSource = (sourceId: string, deleting: boolean) => {\n    const next = new Set(deletingSourceDetails)\n\n    if (deleting) next.add(sourceId)\n    else next.delete(sourceId)\n\n    deletingSourceDetails = next\n  }\n\n  const loadScrapingStats = async () => {\n    if (!projectId) {\n      scrapingRequestId += 1\n      scrapingStats = null\n      scrapingError = null\n      scrapingLoading = false\n      deletedSourceDetails = new Set()\n\n      return\n    }\n\n    const requestId = ++scrapingRequestId\n    scrapingLoading = true\n    scrapingError = null\n\n    try {\n      const { items: domains } = await fetchAllDomains({\n        organizationId,\n      })\n      const urlPages = await Promise.all(domains.map((domain) => fetchAllDomainUrls(domain.id)))\n      const urls = urlPages.flatMap((page) => page.items)\n\n      if (requestId !== scrapingRequestId) {\n        return\n      }\n\n      scrapingStats = computeScrapingStats(domains, urls, null)\n    } catch (error) {\n      if (requestId !== scrapingRequestId) {\n        return\n      }\n\n      scrapingError = error instanceof Error ? error.message : String(error)\n      scrapingStats = null\n    } finally {\n      if (requestId === scrapingRequestId) {\n        scrapingLoading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    if (!active || !hasWorkspaceData) {\n      scrapingStats = null\n      scrapingError = null\n      scrapingLoading = false\n      deletedSourceDetails = new Set()\n\n      return\n    }\n\n    deletedSourceDetails = new Set()\n\n    if (!organizationId) {\n      scrapingStats = null\n      scrapingError = null\n      scrapingLoading = false\n\n      return\n    }\n\n    void loadScrapingStats()\n  })\n\n  const internalSources = $derived(\n    internalSourcesBase.map((item) => {\n      const parsed = parseDataSourceKey(item.key)\n      const isWebsiteSource = [\"scraping\", \"website\"].includes(parsed.detail)\n\n      return { ...item, scraping: isWebsiteSource ? scrapingStats : null }\n    }),\n  )\n\n  const effectiveInternalSources = $derived.by(() =>\n    buildEffectiveInternalSources({\n      internalSources,\n      externalSources,\n      deletedSourceDetails,\n    }),\n  )\n\n  const chunkBase = $derived(buildCurrentProjectPath({ suffix: \"/chunks\" }))\n  const chunkPaths = $derived<InternalSourceChunkPaths | null>(\n    chunkBase\n      ? {\n          all: chunkBase,\n          minio: `${chunkBase}/minio`,\n          scraping: `${chunkBase}/scraping`,\n          sharepoint: `${chunkBase}/sharepoint`,\n          answerLibrary: `${chunkBase}/answer-library`,\n          external: `${chunkBase}/external`,\n        }\n      : null,\n  )\n  const answersPath = $derived(buildCurrentProjectPath({ suffix: \"/answers\" }))\n\n  const internalRows = $derived<InternalSourceTableRow[]>(\n    buildInternalSourceTableRows({\n      sources: effectiveInternalSources,\n      deletedSourceDetails,\n      scrapingError,\n      chunkPaths,\n      answersPath,\n    }),\n  )\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const titleWithCount = $derived.by(\n    () => `Indexquellen (${numberFormatter.format(internalRows.length)})`,\n  )\n  const internalSourcesLoading = $derived(active && (analyticsLoading || scrapingLoading))\n  const internalRefreshKey = $derived(\n    internalRows\n      .map((row) =>\n        [\n          row.id,\n          row.chunks ?? \"\",\n          row.chunksLastMinute ?? \"\",\n          row.openSyncs ?? \"\",\n          row.lastActivity ?? \"\",\n        ].join(\":\"),\n      )\n      .join(\"|\"),\n  )\n  const getInternalRows: TableGetRows = ({ filters, limit, offset, sort }) =>\n    createStaticGetRows(internalRows)({ filters, limit, offset, sort })\n\n  const isDeletingSource = (row: InternalSourceTableRow) =>\n    row.deleteSourceId ? deletingSourceDetails.has(row.deleteSourceId) : false\n\n  const handleOpen = (row: InternalSourceTableRow) => {\n    if (row.openAction?.target) {\n      spaNavigate(row.openAction.target, { noSearchParam: true })\n    }\n  }\n\n  const handleDeleteSource = async (row: InternalSourceTableRow) => {\n    const sourceId = row.deleteSourceId\n\n    if (!sourceId) return\n\n    if (!organizationId) {\n      newNotification({ class: \"error\", html: \"Organisationskontext fehlt.\" })\n\n      return\n    }\n\n    setDeletingSource(sourceId, true)\n    try {\n      await runConfirmedDestructiveAction(\n        {\n          approval: {\n            title: \"Quelle löschen\",\n            description: `Alle Chunks der Quelle „${row.label}“ werden gelöscht. Fortfahren?`,\n            approvalLabel: \"Ja, löschen\",\n            declineLabel: \"Abbrechen\",\n          },\n          reauth: {\n            title: \"Quelle löschen\",\n            description:\n              \"Bitte bestätigen Sie das Löschen dieser Index-Quelle mit Ihrem aktuellen Passwort.\",\n            actionLabel: \"Quelle löschen\",\n          },\n        },\n        async () => {\n          const result = await deleteChunksBySource(null, {\n            organizationId,\n            scope: \"organization\",\n            sourceId,\n          })\n          const next = new Set(deletedSourceDetails)\n          next.add(sourceId)\n          deletedSourceDetails = next\n\n          if (result.deleted_objects > 0) {\n            newNotification({\n              class: \"success\",\n              html: `${formatNumber(result.deleted_objects)} Chunks aus „${row.label}“ gelöscht.`,\n            })\n          } else {\n            newNotification({\n              class: \"success\",\n              html: `Quelle „${row.label}“ wurde entfernt (keine Chunks mehr vorhanden).`,\n            })\n          }\n        },\n      )\n    } catch (error) {\n      const message = error instanceof Error ? error.message : String(error)\n      newNotification({ class: \"error\", html: message })\n    } finally {\n      setDeletingSource(sourceId, false)\n    }\n  }\n</script>\n\n<div class=\"sources-section\" data-testid=\"indexAdmin.datasources.internal\">\n  <SectionTitle\n    brightBackground={true}\n    title={titleWithCount}\n    helpModalTextId=\"indexAdminInternalSources\"\n  />\n\n  <div data-testid=\"indexAdmin.datasources.internal.table\">\n    <Table\n      rowActions={{\n        resolve: (row, rowIndex) =>\n          buildTableRowActionSet(\n            ((row) => {\n              const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n              const internalRow = row as InternalSourceTableRow\n\n              actions.push(\n                ...InternalSourceRowActions({\n                  row: internalRow,\n                  deleting: isDeletingSource(internalRow),\n                  onOpen: handleOpen,\n                  onDelete: (sourceRow) => {\n                    void handleDeleteSource(sourceRow)\n                  },\n                }),\n              )\n\n              return actions\n            })(row) ?? [],\n            { primaryId: \"action-0\", inlineIds: [] },\n          ),\n      }}\n      columns={internalColumns}\n      getRows={getInternalRows}\n      mode=\"auto\"\n      theme=\"light\"\n      cardFieldIds={internalCardFields}\n      maxCardFields={8}\n      showActions={true}\n      actionsHeaderLabel=\"Aktionen\"\n      showPrimaryButton={false}\n      refreshKey={internalRefreshKey}\n      loading={internalSourcesLoading}\n    >\n      {#snippet empty()}\n        <p>Für diese Realisierung wurden noch keine Indexquellen registriert.</p>\n      {/snippet}\n\n      {#snippet tableCell({ row, column })}\n        {@const internalRow = row as InternalSourceTableRow}\n        {#if column.id === \"source\"}\n          <SourceCell row={internalRow} />\n        {:else if column.id === \"indexContent\"}\n          <IndexContentCell row={internalRow} />\n        {:else if column.id === \"processing\"}\n          <ProcessingCell row={internalRow} />\n        {:else if column.id === \"activity\"}\n          <ActivityCell row={internalRow} />\n        {/if}\n      {/snippet}\n\n      {#snippet cardTitle({ row })}\n        {(row as InternalSourceTableRow).sourceTag.label}\n      {/snippet}\n\n      {#snippet cardSubtitle({ row })}\n        <span class=\"muted\">\n          {(row as InternalSourceTableRow).sourceTag.subLabel ??\n            (row as InternalSourceTableRow).type}\n        </span>\n      {/snippet}\n    </Table>\n  </div>\n</div>\n\n<style lang=\"less\">\n  .sources-section {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n\n    p {\n      margin: 0;\n      color: color-mix(in srgb, var(--text-invers-100) 65%, transparent);\n    }\n\n    .muted {\n      color: color-mix(in srgb, var(--text-invers-100) 55%, transparent);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { OrganizationAnalytics } from \"../../../../_shared/_logic/analytics\"\n  import { parseDataSourceKey } from \"../../../../../_shared/_logic/metrics-utils\"\n  import ExternalSourcesSection from \"./_modules/external-sources-section\"\n  import InternalSourcesSection from \"./_modules/internal-sources-section\"\n  import type { InternalTabProps } from \"./_logic/types\"\n\n  const {\n    active = false,\n    hasWorkspaceData = false,\n    organizationId = null,\n    projectId = null,\n    analytics = null,\n    analyticsLoading = false,\n    emptyContent,\n  }: InternalTabProps = $props()\n\n  const hasExternalSources = $derived(\n    (analytics?.data_sources ?? []).some(\n      (source: OrganizationAnalytics[\"data_sources\"][number]) =>\n        parseDataSourceKey(source.data_source).category === \"external_datasource\",\n    ),\n  )\n</script>\n\n{#if !hasWorkspaceData}\n    {@render emptyContent?.()}\n{:else}\n    <div class=\"section-stack\">\n        {#key `${organizationId ?? \"none\"}:${active ? \"active\" : \"inactive\"}`}\n            <InternalSourcesSection\n        {analytics}\n        {analyticsLoading}\n        {organizationId}\n        {projectId}\n        {active}\n        {hasWorkspaceData}\n      />\n        {/key}\n    </div>\n{/if}\n\n<style lang=\"less\">\n  .section-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import Table, {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import {\n    describeDataSource,\n    formatNumber,\n    formatRelative,\n    parseDataSourceKey,\n  } from \"../../../../../../../_shared/_logic/metrics-utils\"\n  import type { OrganizationAnalytics } from \"../../../../../../_shared/_logic/analytics\"\n\n  type SourceInfo = {\n    detailLabel: string\n    categoryLabel: string\n    detail: string\n  }\n\n  type TargetSource = {\n    key: string\n    info: SourceInfo\n    lastActivity: string | null\n    documents: number | null\n    documentsLastMinute: number | null\n  }\n\n  type TargetSourcesSectionProps = {\n    analytics?: OrganizationAnalytics | null\n    analyticsLoading?: boolean\n  }\n\n  const { analytics = null, analyticsLoading = false }: TargetSourcesSectionProps = $props()\n\n  const displayLabel = (info: SourceInfo) =>\n    info.detail !== \"unknown\" ? info.detailLabel : info.categoryLabel\n\n  const buildTargetSources = (): TargetSource[] => {\n    if (!analytics) return []\n\n    return analytics.data_sources\n      .filter((source) => parseDataSourceKey(source.data_source).category === \"data_target\")\n      .map((source) => {\n        const info = describeDataSource(source.data_source)\n        const metrics = source.metrics ?? {}\n\n        return {\n          key: source.data_source,\n          lastActivity: source.last_activity_at ?? null,\n          info,\n          documents: typeof metrics.documents_total === \"number\" ? metrics.documents_total : null,\n          documentsLastMinute:\n            typeof metrics.documents_last_minute === \"number\"\n              ? metrics.documents_last_minute\n              : null,\n        }\n      })\n      .sort((a, b) => (b.documents ?? 0) - (a.documents ?? 0))\n  }\n\n  const targetSources = $derived(buildTargetSources())\n\n  const createStaticGetRows = (source: DataRow[]): TableGetRows => {\n    return ({ filters: _filters, limit, offset, sort: _sort }) => {\n      const start = Math.max(0, offset ?? 0)\n      const size = typeof limit === \"number\" && limit > 0 ? limit : source.length\n      const end = start + size\n\n      return { rows: source.slice(start, end), total: source.length }\n    }\n  }\n\n  type TargetSourceRow = DataRow & {\n    id: string\n    label: string\n    detail: string\n    chunks: number | null\n    chunksLastMinute: number | null\n    lastActivity: string | null\n  }\n\n  const targetColumns: ColumnDef[] = [\n    {\n      id: \"label\",\n      label: \"Ziel\",\n      isPrimary: true,\n      tooltip: \"Speicherziel, in dem Daten abgelegt werden.\",\n    },\n    {\n      id: \"chunks\",\n      label: \"Chunks\",\n      tooltip: \"Anzahl der Index-Chunks in diesem Speicherziel.\",\n    },\n    {\n      id: \"chunksLastMinute\",\n      label: \"Letzte Minute\",\n      tooltip: \"Nettoänderung der Chunks in den letzten 60 Sekunden.\",\n    },\n    {\n      id: \"lastActivity\",\n      label: \"Letzte Aktivität\",\n      tooltip: \"Wann sich dieses Speicherziel zuletzt verändert hat.\",\n    },\n  ]\n\n  const targetRows = $derived<TargetSourceRow[]>(\n    targetSources.map((item) => ({\n      id: item.key,\n      label: displayLabel(item.info),\n      detail: item.info.detail,\n      chunks: item.documents ?? null,\n      chunksLastMinute: item.documentsLastMinute ?? null,\n      lastActivity: item.lastActivity ?? null,\n    })),\n  )\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const titleWithCount = $derived.by(\n    () => `Speicherziele (${numberFormatter.format(targetRows.length)})`,\n  )\n  const targetSourcesLoading = $derived(analyticsLoading)\n  const targetRefreshKey = $derived(targetSources.map((s) => s.key ?? \"\").join(\"|\"))\n  const getTargetRows: TableGetRows = ({ filters, limit, offset, sort }) =>\n    createStaticGetRows(targetRows)({ filters, limit, offset, sort })\n\n  const formatRelativeOrDash = (value: string | null) => (value ? formatRelative(value) : \"–\")\n  const formatChunksOrDash = (value: number | null | undefined) =>\n    value == null ? \"–\" : `${formatNumber(value)} Stück`\n  const formatChunksLastMinuteOrDash = (value: number | null | undefined) => {\n    if (value == null) return \"–\"\n\n    const prefix = value > 0 ? \"+\" : value < 0 ? \"-\" : \"\"\n\n    return `${prefix}${formatNumber(Math.abs(value))} Stück`\n  }\n\n  const targetLabelStatus = (row: TargetSourceRow) => {\n    const detail = (row.detail || \"\").toLowerCase()\n\n    if (detail === \"weaviate\") {\n      return { value: \"target-weaviate\", label: row.label, color: \"violet\" as const }\n    }\n\n    if (detail === \"minio\") {\n      return { value: \"target-minio\", label: row.label, color: \"emerald\" as const }\n    }\n\n    return { value: `target-${detail || \"unknown\"}`, label: row.label, color: \"blue\" as const }\n  }\n</script>\n\n<div class=\"sources-section\">\n    <SectionTitle\n    brightBackground={true}\n    title={titleWithCount}\n    helpModalTextId=\"indexAdminTargetSources\"\n  />\n    <Table\n    columns={targetColumns}\n    getRows={getTargetRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={[\"chunks\", \"chunksLastMinute\", \"lastActivity\"]}\n    maxCardFields={4}\n    showActions={false}\n    showPrimaryButton={false}\n    refreshKey={targetRefreshKey}\n    loading={targetSourcesLoading}\n  >\n        {#snippet empty()}\n            <p>Für diese Realisierung wurden noch keine Speicherziele registriert.</p>\n        {/snippet}\n\n        {#snippet tableCell({ row, column })}\n            {#if column.id === \"label\"}\n                <StatusTag size=\"sm\" status={targetLabelStatus(row as TargetSourceRow)} />\n            {:else if column.id === \"chunks\"}\n                {formatChunksOrDash((row as TargetSourceRow).chunks)}\n            {:else if column.id === \"chunksLastMinute\"}\n                {formatChunksLastMinuteOrDash((row as TargetSourceRow).chunksLastMinute)}\n            {:else if column.id === \"lastActivity\"}\n                {formatRelativeOrDash((row as TargetSourceRow).lastActivity)}\n            {:else}\n                {row[column.id] as any}\n            {/if}\n        {/snippet}\n\n        {#snippet cardTitle({ row })}\n            {(row as TargetSourceRow).label}\n        {/snippet}\n    </Table>\n</div>\n\n<style lang=\"less\">\n  .sources-section {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n\n    p {\n      margin: 0;\n      color: color-mix(in srgb, var(--text-invers-100) 65%, transparent);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import TargetSourcesSection from \"./_modules/target-sources-section\"\n  import type { TargetsTabProps } from \"./_logic/types\"\n\n  const { analytics = null, analyticsLoading = false }: TargetsTabProps = $props()\n</script>\n\n<TargetSourcesSection {analytics} {analyticsLoading} />\n","import {\n  baseAPIURL,\n  buildServiceHeaders,\n} from \"../../../../../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../../../../../_shared/_logic/index-api-transport\"\n\nexport type DuplicateCleanupScope = \"realization\" | \"project\" | \"organization\" | \"global\"\n\nexport type DuplicateCleanupRuntimeReport = {\n  projectId?: string | null\n  realizationId?: string | null\n  organizationId?: string | null\n  organizationName?: string | null\n  projectName?: string | null\n  realizationName?: string | null\n  scope: DuplicateCleanupScope\n  indexName: string\n  scannedObjects: number\n  uniqueSyncKeys: number\n  unkeyedObjects?: number\n  duplicateKeys: number\n  duplicatesFound: number\n  removedObjects: number\n  dryRun: boolean\n  stoppedEarly: boolean\n  errors: string[]\n  availableObjects: number\n  tenantName: string | null\n  orphanOriginsChecked?: number\n  orphanOriginsFound?: number\n  orphanObjectsFound?: number\n  orphanObjectsRemoved?: number\n  orphanErrors?: string[]\n}\n\nexport type DuplicateCleanupSummary = {\n  dryRun: boolean\n  totalRuntimes: number\n  totalScannedObjects: number\n  totalDuplicateKeys: number\n  totalDuplicatesFound: number\n  totalRemovedObjects: number\n  totalUnkeyedObjects?: number\n  totalOrphanOriginsChecked?: number\n  totalOrphanOriginsFound?: number\n  totalOrphanObjectsFound?: number\n  totalOrphanObjectsRemoved?: number\n  limitReached: boolean\n  runtimes: DuplicateCleanupRuntimeReport[]\n}\n\nexport type DuplicateCleanupPayload = {\n  organizationId?: string | null\n  projectId?: string | null\n  realizationId?: string | null\n  scopes?: DuplicateCleanupScope[] | null\n  dryRun?: boolean\n  limit?: number | null\n}\n\nconst toCleanupError = (error: unknown) =>\n  new Error(`Bereinigungsanfrage fehlgeschlagen: ${toErrorMessage(error)}`)\n\nexport async function triggerDuplicateCleanup(\n  payload: DuplicateCleanupPayload,\n): Promise<DuplicateCleanupSummary> {\n  let response: Response\n  try {\n    response = await fetchService(`${baseAPIURL}/admin/maintenance/sync-deduplications`, {\n      method: \"POST\",\n      headers: {\n        ...buildServiceHeaders(),\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({\n        organization_id: payload.organizationId ?? undefined,\n        project_id: payload.projectId ?? undefined,\n        realization_id: payload.realizationId ?? undefined,\n        scopes: payload.scopes ?? undefined,\n        dry_run: payload.dryRun ?? false,\n        limit: payload.limit ?? undefined,\n      }),\n    })\n  } catch (error) {\n    throw toCleanupError(error)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Bereinigungsanfrage fehlgeschlagen\")\n  }\n\n  try {\n    return (await response.json()) as DuplicateCleanupSummary\n  } catch (error) {\n    throw new Error(`Bereinigungsergebnis konnte nicht gelesen werden: ${toErrorMessage(error)}`)\n  }\n}\n","<script lang=\"ts\">\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  interface Information {\n    title: string\n    tooltip?: string\n    value: string | number\n  }\n  let {\n    infos = [] as Information[],\n    brightBackground = false,\n  }: {\n    infos?: Information[]\n    brightBackground?: boolean\n  } = $props()\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\n  const formatNumber = (value?: number | null) => numberFormatter.format(value ?? 0)\n</script>\n\n<div class=\"infos\" class:bright-background={brightBackground}>\n  {#each infos as { title, tooltip: tip, value }}\n    <div class=\"info-item\" use:tooltip={{ content: tip }}>\n      <span class=\"label\">{title}</span>\n      <span class=\"value\">{typeof value === \"number\" ? formatNumber(value) : value}</span>\n    </div>\n  {/each}\n</div>\n\n<style lang=\"less\">\n  @import \"../../../../theme/tokens.less\";\n  .infos {\n    width: 100%;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    column-gap: 1rem;\n    row-gap: 1rem;\n    color: color-mix(in srgb, var(--text-100) 70%, transparent);\n    .info-item {\n      flex: 0 1 250px;\n      min-width: 250px;\n      text-align: left;\n      display: flex;\n      flex-direction: column;\n      gap: 0.2rem;\n      .label {\n        font-size: 0.72rem;\n        text-transform: uppercase;\n        letter-spacing: 0.14em;\n        color: color-mix(in srgb, var(--text-100) 55%, transparent);\n      }\n\n      .value {\n        margin: 0;\n        font-size: 0.95rem;\n        font-weight: 500;\n      }\n    }\n    &.bright-background {\n      .info-item {\n        .label,\n        .value {\n          color: var(--text-invers-100);\n        }\n      }\n    }\n  }\n</style>\n","import { formatNumber } from \"../../../../../../../../_shared/_logic/metrics-utils\"\n\nexport const describeRuntimeError = (value: string): string => {\n  const raw = (value ?? \"\").trim()\n\n  if (!raw) return \"Unbekannter Fehler\"\n\n  if (raw === \"scan_failed:0_objects_read\") return \"Scan fehlgeschlagen (0 Chunks gelesen)\"\n\n  if (raw.startsWith(\"scan_incomplete:\")) {\n    const detail = raw.slice(\"scan_incomplete:\".length).trim()\n\n    return detail ? `Scan unvollständig (${detail} gelesen)` : \"Scan unvollständig\"\n  }\n\n  if (raw.startsWith(\"scan_failed:\")) {\n    const detail = raw.slice(\"scan_failed:\".length).trim()\n\n    if (!detail || detail === \"unknown\") return \"Scan fehlgeschlagen\"\n\n    const shortDetail = detail.length > 120 ? `${detail.slice(0, 117)}...` : detail\n\n    return `Scan fehlgeschlagen (${shortDetail})`\n  }\n\n  if (raw.startsWith(\"collection_error:\")) return \"Collection nicht verfügbar\"\n\n  if (raw.startsWith(\"tenant_attach_failed:\")) return \"Tenant konnte nicht angebunden werden\"\n\n  if (raw === \"missing_id\") return \"Objekt-ID fehlt\"\n\n  return raw\n}\n\nexport const describeOrphanError = (value: string): string => {\n  const raw = (value ?? \"\").trim()\n\n  if (!raw) return \"Unbekannter Fehler\"\n\n  const sourceStatusMatch = raw.match(/^([a-z-]+)_status_failed:(.*)$/i)\n\n  if (sourceStatusMatch) {\n    const source = sourceStatusMatch[1]\n    const detail = sourceStatusMatch[2]?.trim()\n    const sourceLabel =\n      source === \"answer-library\"\n        ? \"FAQ-Sammlung\"\n        : source === \"minio\"\n          ? \"MinIO\"\n          : source === \"scraping\"\n            ? \"Scraping\"\n            : source\n\n    if (!detail) return `Origin-Check fehlgeschlagen (${sourceLabel})`\n\n    const shortDetail = detail.length > 120 ? `${detail.slice(0, 117)}...` : detail\n\n    return `Origin-Check fehlgeschlagen (${sourceLabel}: ${shortDetail})`\n  }\n\n  return raw.length > 120 ? `${raw.slice(0, 117)}...` : raw\n}\n\nexport const formatCoverage = (scanned: number, available: number): string => {\n  const safeScanned = Number.isFinite(scanned) ? scanned : 0\n  const safeAvailable = Number.isFinite(available) ? available : 0\n  const base = `${formatNumber(safeScanned)} / ${formatNumber(safeAvailable)}`\n\n  if (safeAvailable <= 0) return base\n\n  const percent = Math.round((safeScanned / safeAvailable) * 100)\n\n  if (!Number.isFinite(percent)) return base\n\n  return `${base} (${percent}%)`\n}\n","<script lang=\"ts\">\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import InfoRow from \"@kontextwerk/web-sdk/ui/display/InfoRow.svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Table, {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import type {\n    DuplicateCleanupScope,\n    DuplicateCleanupSummary,\n  } from \"../../_shared/_logic/maintenance\"\n  import { formatNumber } from \"../../../../../../../_shared/_logic/metrics-utils\"\n  import { describeOrphanError, describeRuntimeError, formatCoverage } from \"./_logic/presentation\"\n  import type { CleanupProps, RuntimeRow } from \"./_logic/types\"\n\n  const {\n    cleanupLimit = \"\",\n    cleanupScopes = [\"organization\", \"project\", \"realization\"],\n    cleanupRunning = false,\n    cleanupSummary = null,\n    cleanupError = null,\n    cleanupActionDisabled = false,\n    cleanupButtonLabel = \"Säuberung starten\",\n    onLimit,\n    onScopes,\n    onRun,\n  }: CleanupProps = $props()\n\n  const triggerCleanup = () => {\n    onRun?.()\n  }\n\n  const scopeLabels: Record<DuplicateCleanupScope, string> = {\n    realization: \"Realisierung\",\n    project: \"Projekt\",\n    organization: \"Organisation\",\n    global: \"Global\",\n  }\n\n  const totalAvailable = $derived.by(() =>\n    cleanupSummary\n      ? cleanupSummary.runtimes.reduce(\n          (total, runtime) => total + (runtime.availableObjects ?? 0),\n          0,\n        )\n      : 0,\n  )\n  const totalUniqueKeys = $derived.by(() =>\n    cleanupSummary\n      ? cleanupSummary.runtimes.reduce((total, runtime) => total + (runtime.uniqueSyncKeys ?? 0), 0)\n      : 0,\n  )\n  const totalUnkeyed = $derived.by(() =>\n    cleanupSummary\n      ? cleanupSummary.runtimes.reduce((total, runtime) => total + (runtime.unkeyedObjects ?? 0), 0)\n      : 0,\n  )\n  const hasScanIssues = $derived.by(() => {\n    if (!cleanupSummary) return false\n\n    return cleanupSummary.runtimes.some((runtime) => {\n      const available = runtime.availableObjects ?? 0\n      const scanned = runtime.scannedObjects ?? 0\n\n      if (runtime.errors?.length) return true\n\n      if (available > 0 && scanned === 0) return true\n\n      if (available > 0 && scanned < available && !runtime.stoppedEarly) return true\n\n      return false\n    })\n  })\n\n  const runtimeColumns: ColumnDef[] = [\n    {\n      id: \"scope\",\n      label: \"Sync-Ebene\",\n      tooltip:\n        \"In welcher Sync-Ebene die Collection liegt: Realisierung (pro Bot), Projekt (geteilt), Organisation (geteilt) oder Global (projektübergreifend).\",\n    },\n    {\n      id: \"organization\",\n      label: \"Organisation\",\n      tooltip: \"Organisation, zu der dieser Lauf gehört.\",\n    },\n    { id: \"project\", label: \"Projekt\", tooltip: \"Projekt/Agent (Name aus der Konfiguration).\" },\n    {\n      id: \"realization\",\n      label: \"Realisierung\",\n      tooltip: \"Sprach-/Realisierungsname aus der Konfiguration.\",\n    },\n    {\n      id: \"coverage\",\n      label: \"Gelesen\",\n      tooltip: \"Gelesene Chunks im Verhältnis zu den verfügbaren Chunks in diesem Lauf.\",\n    },\n    {\n      id: \"uniqueKeys\",\n      label: \"Sync-Keys (gesamt)\",\n      tooltip:\n        \"Anzahl der unterschiedlichen Sync-Keys. Pro Sync-Key sollte genau ein Chunk existieren.\",\n    },\n    {\n      id: \"duplicateKeys\",\n      label: \"Sync-Keys doppelt\",\n      tooltip: \"Anzahl der Sync-Keys, die mehrfach vorkommen.\",\n    },\n    {\n      id: \"duplicates\",\n      label: \"Duplikate (Chunks)\",\n      tooltip:\n        \"Chunks, die über den einen pro Sync-Key hinausgehen. Diese werden bei „Säuberung starten“ entfernt.\",\n    },\n    {\n      id: \"orphanOrigins\",\n      label: \"Verwaiste Origins\",\n      tooltip: \"Anzahl erkannter Ursprünge, die in den Quellsystemen nicht mehr vorhanden sind.\",\n    },\n    {\n      id: \"orphanObjects\",\n      label: \"Verwaiste Chunks\",\n      tooltip: \"Chunks, die zu nicht mehr vorhandenen Ursprüngen gehören.\",\n    },\n    {\n      id: \"removed\",\n      label: \"Entfernt (Chunks)\",\n      tooltip:\n        \"Entfernte Chunks insgesamt (Duplikat-Bereinigung + verwaiste Chunks; im Trockenlauf nur rechnerisch).\",\n    },\n    {\n      id: \"status\",\n      label: \"Status\",\n      tooltip: \"Zusammenfassung von Scan-, Duplikat- und Orphan-Checks.\",\n    },\n  ]\n\n  const rows = $derived(\n    cleanupSummary\n      ? cleanupSummary.runtimes.map((runtime) => {\n          const available = runtime.availableObjects ?? 0\n          const scanned = runtime.scannedObjects ?? 0\n          const unkeyed = runtime.unkeyedObjects ?? 0\n\n          const duplicateErrors = Array.isArray(runtime.errors) ? runtime.errors : []\n          const orphanErrors = Array.isArray(runtime.orphanErrors) ? runtime.orphanErrors : []\n          const allErrors = [...duplicateErrors, ...orphanErrors]\n          const orphanOrigins = runtime.orphanOriginsFound ?? 0\n          const orphanObjects = runtime.orphanObjectsFound ?? 0\n          const isRealizationScope = runtime.scope === \"realization\"\n          const isProjectScope = runtime.scope === \"project\"\n          const isGlobalScope = runtime.scope === \"global\"\n\n          const status = (() => {\n            if (allErrors.length) {\n              const described = [\n                ...duplicateErrors.map(describeRuntimeError).filter(Boolean),\n                ...orphanErrors.map(describeOrphanError).filter(Boolean),\n              ]\n              const tone = allErrors.every(\n                (error) =>\n                  error.startsWith(\"scan_incomplete:\") || error.startsWith(\"tenant_attach_failed:\"),\n              )\n                ? (\"warning\" as const)\n                : (\"danger\" as const)\n\n              return { tone, label: described.join(\" · \") || \"Fehler\" }\n            }\n\n            const notes: string[] = []\n\n            if (available > 0 && scanned === 0) {\n              return {\n                tone: \"danger\" as const,\n                label: `Scan fehlgeschlagen (${formatNumber(0)} / ${formatNumber(available)} gelesen)`,\n              }\n            }\n\n            if (available > 0 && scanned < available) {\n              notes.push(`${formatNumber(scanned)} / ${formatNumber(available)} gelesen`)\n            }\n\n            if (unkeyed > 0) {\n              notes.push(`${formatNumber(unkeyed)} ohne Sync-Key`)\n            }\n\n            if (orphanOrigins > 0) {\n              notes.push(`${formatNumber(orphanOrigins)} verwaiste Origins`)\n            }\n\n            if (orphanObjects > 0) {\n              notes.push(`${formatNumber(orphanObjects)} verwaiste Chunks`)\n            }\n\n            if (runtime.stoppedEarly) {\n              return {\n                tone: \"warning\" as const,\n                label: notes.length ? `Limit erreicht (${notes.join(\" · \")})` : \"Limit erreicht\",\n              }\n            }\n\n            if (available > 0 && scanned < available) {\n              return {\n                tone: \"warning\" as const,\n                label: notes.length ? `Unvollständig (${notes.join(\" · \")})` : \"Unvollständig\",\n              }\n            }\n\n            if (notes.length) {\n              return {\n                tone: \"warning\" as const,\n                label: `${cleanupSummary.dryRun ? \"Analysiert\" : \"Bereinigt\"} (${notes.join(\" · \")})`,\n              }\n            }\n\n            return {\n              tone: \"success\" as const,\n              label: cleanupSummary.dryRun ? \"Analysiert\" : \"Bereinigt\",\n            }\n          })()\n\n          return {\n            id: `${runtime.scope}:${runtime.indexName}:${runtime.organizationId ?? \"\"}:${runtime.projectId ?? \"\"}:${runtime.realizationId ?? \"\"}`,\n            organization: isGlobalScope\n              ? \"—\"\n              : (runtime.organizationName ?? runtime.organizationId ?? \"—\"),\n            project:\n              isRealizationScope || isProjectScope\n                ? (runtime.projectName ?? runtime.projectId ?? \"—\")\n                : \"—\",\n            realization: isRealizationScope\n              ? (runtime.realizationName ?? runtime.realizationId ?? \"—\")\n              : \"—\",\n            scope: runtime.scope,\n            coverage: formatCoverage(scanned, available),\n            uniqueKeys: runtime.uniqueSyncKeys,\n            duplicateKeys: runtime.duplicateKeys,\n            duplicates: runtime.duplicatesFound,\n            orphanOrigins,\n            orphanObjects,\n            removed: (runtime.removedObjects ?? 0) + (runtime.orphanObjectsRemoved ?? 0),\n            status,\n          } satisfies RuntimeRow\n        })\n      : [],\n  )\n  const refreshKey = $derived(\n    cleanupSummary\n      ? `${cleanupSummary.totalRuntimes}-${cleanupSummary.totalDuplicatesFound}-${rows.length}`\n      : \"none\",\n  )\n  const getRuntimeRows: TableGetRows = ({ limit, offset }) => {\n    const start = Math.max(0, offset ?? 0)\n    const size = typeof limit === \"number\" && limit > 0 ? limit : rows.length\n    const end = start + size\n\n    return { rows: rows.slice(start, end), total: rows.length }\n  }\n</script>\n\n{#if cleanupSummary}\n    <div class=\"cleanup-result\" data-dry-run={cleanupSummary.dryRun}>\n        <SectionTitle\n      brightBackground={true}\n      title=\"Zusammenfassung\"\n      small={true}\n      helpModalTextId=\"indexAdminWeaviateCleanup\"\n    >\n            {#snippet buttonSnippet()}\n                <CTA\n          type=\"primaryButton\"\n          content={cleanupButtonLabel}\n          tooltipContent=\"Macht eine tatsächliche Bereinigung der Duplikate in Weaviate (der Vektordatenbank). Diese Aktion löscht doppelte Objekte unwiderruflich.\"\n          disabled={cleanupActionDisabled}\n          small={true}\n          onClick={triggerCleanup}\n        />\n            {/snippet}\n        </SectionTitle>\n        <InfoRow\n      brightBackground={true}\n      infos={[\n        {\n          title: \"Chunks im Index\",\n          value: formatNumber(totalAvailable),\n        },\n        {\n          title: \"Sync-Keys (gesamt)\",\n          value: formatNumber(totalUniqueKeys),\n        },\n        {\n          title: \"Sync-Keys doppelt\",\n          value: formatNumber(cleanupSummary.totalDuplicateKeys),\n        },\n        {\n          title: \"Überzählige Chunks\",\n          value: formatNumber(cleanupSummary.totalDuplicatesFound),\n        },\n        {\n          title: \"Verwaiste Origins\",\n          value: formatNumber(cleanupSummary.totalOrphanOriginsFound ?? 0),\n        },\n        {\n          title: \"Verwaiste Chunks\",\n          value: formatNumber(cleanupSummary.totalOrphanObjectsFound ?? 0),\n        },\n        {\n          title: \"Entfernt (Chunks)\",\n          value: formatNumber(cleanupSummary.totalRemovedObjects),\n        },\n      ]}\n    />\n\n        {#if cleanupSummary.runtimes.length > 0}\n            <Table\n        mode=\"table\"\n        theme=\"light\"\n        columns={runtimeColumns}\n        getRows={getRuntimeRows}\n        showPrimaryButton={false}\n        {refreshKey}\n      >\n                {#snippet tableCell({ row, column })}\n                    {#if column.id === \"coverage\"}\n                        {(row as RuntimeRow).coverage}\n                    {:else if column.id === \"uniqueKeys\" || column.id === \"duplicateKeys\" || column.id === \"duplicates\" || column.id === \"orphanOrigins\" || column.id === \"orphanObjects\" || column.id === \"removed\"}\n                        {formatNumber((row as RuntimeRow)[column.id] as number)}\n                    {:else if column.id === \"scope\"}\n                        {scopeLabels[(row as RuntimeRow).scope] ?? (row as RuntimeRow).scope}\n                    {:else if column.id === \"status\"}\n                        <span class={`status-chip ${(row as RuntimeRow).status.tone}`}>\n                            {(row as RuntimeRow).status.label}\n                        </span>\n                    {:else}\n                        {(row as RuntimeRow)[column.id] as any}\n                    {/if}\n                {/snippet}\n            </Table>\n        {/if}\n    </div>\n{/if}\n{#if cleanupError}\n    <p class=\"cleanup-error\">{cleanupError}</p>\n{/if}\n\n<style lang=\"less\">\n  .cleanup-description {\n    margin: 0.6rem 0 0;\n    color: color-mix(in srgb, var(--text-invers-100) 80%, transparent);\n    max-width: 780px;\n  }\n  .cleanup-controls {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n  .controls-card {\n    margin-top: 1rem;\n  }\n  .control-row {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n  }\n  .control-label {\n    font-weight: 600;\n    color: var(--text-invers-100);\n  }\n  .control-hint {\n    margin: 0;\n    color: color-mix(in srgb, var(--text-invers-100) 70%, transparent);\n    font-size: 0.95rem;\n  }\n  .scope-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n    gap: 0.4rem 1rem;\n  }\n  .scope-item {\n    display: flex;\n    align-items: center;\n    gap: 0.55rem;\n    color: var(--text-invers-100);\n    user-select: none;\n  }\n  .cleanup-result {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n    margin-top: 1.2rem;\n  }\n\n  .cleanup-error,\n  .cleanup-warning {\n    margin: 0;\n    padding: 0.85rem 1rem;\n    border-radius: 0.85rem;\n    border: 1px solid rgba(0, 0, 0, 0.1);\n    background: rgba(0, 0, 0, 0.04);\n    color: var(--text-100, #1f2937);\n    max-width: 920px;\n  }\n\n  .cleanup-warning {\n    border-color: color-mix(in srgb, #f59e0b 55%, rgba(0, 0, 0, 0.1));\n    background: color-mix(in srgb, #f59e0b 10%, rgba(0, 0, 0, 0.04));\n  }\n\n  .cleanup-error {\n    border-color: color-mix(in srgb, #ef4444 55%, rgba(0, 0, 0, 0.1));\n    background: color-mix(in srgb, #ef4444 10%, rgba(0, 0, 0, 0.04));\n  }\n\n  .status-chip {\n    display: inline-flex;\n    align-items: center;\n    padding: 0.3rem 0.65rem;\n    border-radius: 999px;\n    border: 1px solid rgba(0, 0, 0, 0.1);\n    background: rgba(0, 0, 0, 0.04);\n    font-size: 0.85rem;\n    color: var(--text-100, #1f2937);\n    max-width: 520px;\n    white-space: normal;\n    word-break: break-word;\n    line-height: 1.2;\n\n    &.success {\n      border-color: color-mix(in srgb, #16a34a 55%, rgba(0, 0, 0, 0.1));\n      background: color-mix(in srgb, #16a34a 10%, rgba(0, 0, 0, 0.04));\n    }\n\n    &.warning {\n      border-color: color-mix(in srgb, #f59e0b 55%, rgba(0, 0, 0, 0.1));\n      background: color-mix(in srgb, #f59e0b 10%, rgba(0, 0, 0, 0.04));\n    }\n\n    &.danger {\n      border-color: color-mix(in srgb, #ef4444 55%, rgba(0, 0, 0, 0.1));\n      background: color-mix(in srgb, #ef4444 10%, rgba(0, 0, 0, 0.04));\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import {\n    triggerDuplicateCleanup,\n    type DuplicateCleanupScope,\n    type DuplicateCleanupSummary,\n  } from \"./_shared/_logic/maintenance\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import DuplicateCleanupPanel from \"./_modules/duplicate-cleanup-panel\"\n  import type { CleanupTabProps } from \"./_logic/types\"\n  import { runConfirmedDestructiveAction } from \"../../../../../confirmed-destructive-action\"\n\n  const {\n    hasWorkspaceData = false,\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    emptyContent,\n  }: CleanupTabProps = $props()\n\n  let cleanupLimit = $state(\"\")\n  let cleanupScopes = $state<DuplicateCleanupScope[]>([\"organization\", \"project\", \"realization\"])\n  let cleanupRunning = $state(false)\n  let cleanupSummary = $state<DuplicateCleanupSummary | null>(null)\n  let cleanupError = $state<string | null>(null)\n  const cleanupActionDisabled = $derived(\n    cleanupRunning || cleanupScopes.length === 0 || (!organizationId && !projectId),\n  )\n\n  const runDuplicateCleanup = async ({\n    dryRun,\n    notifySuccess = true,\n    notifyError = true,\n  }: {\n    dryRun: boolean\n    notifySuccess?: boolean\n    notifyError?: boolean\n  }) => {\n    cleanupError = null\n\n    if (!organizationId && !projectId) {\n      cleanupError = \"Organisation oder Projekt muss gesetzt sein.\"\n\n      if (notifyError) {\n        newNotification({ class: \"error\", html: cleanupError })\n      }\n\n      return\n    }\n\n    if (cleanupScopes.length === 0) {\n      cleanupError = \"Mindestens eine Sync-Ebene muss ausgewählt sein.\"\n\n      if (notifyError) {\n        newNotification({ class: \"error\", html: cleanupError })\n      }\n\n      return\n    }\n\n    let parsedLimit: number | undefined\n    const trimmed = cleanupLimit.trim()\n\n    if (trimmed) {\n      const parsed = Number.parseInt(trimmed, 10)\n\n      if (Number.isNaN(parsed) || parsed < 0) {\n        cleanupError = \"Limit muss eine nicht-negative Ganzzahl sein.\"\n\n        return\n      }\n\n      if (parsed > 0) {\n        parsedLimit = parsed\n      }\n    }\n\n    cleanupRunning = true\n    cleanupSummary = null\n\n    try {\n      const isOrganizationCleanup = Boolean((organizationId ?? \"\").trim())\n      let summary: DuplicateCleanupSummary | null = null\n      const triggerCleanup = async () => {\n        summary = await triggerDuplicateCleanup({\n          organizationId,\n          projectId: isOrganizationCleanup ? null : projectId,\n          realizationId: isOrganizationCleanup ? null : realizationId,\n          dryRun,\n          limit: parsedLimit,\n          scopes: cleanupScopes,\n        })\n      }\n\n      if (dryRun) {\n        await triggerCleanup()\n      } else {\n        const completed = await runConfirmedDestructiveAction(\n          {\n            approval: {\n              title: \"Bereinigung starten\",\n              description: \"Diese Bereinigung löscht Duplikate unwiderruflich. Fortfahren?\",\n              approvalLabel: \"Ja, bereinigen\",\n              declineLabel: \"Abbrechen\",\n            },\n            reauth: {\n              title: \"Bereinigung starten\",\n              description:\n                \"Bitte bestätigen Sie die endgültige Duplikat-Bereinigung mit Ihrem aktuellen Passwort.\",\n              actionLabel: \"Bereinigung starten\",\n            },\n          },\n          triggerCleanup,\n        )\n\n        if (!completed) return\n      }\n\n      if (!summary) return\n\n      cleanupSummary = summary\n\n      if (notifySuccess) {\n        const mode = dryRun ? \"Analyse\" : \"Bereinigung\"\n        newNotification({ class: \"success\", html: `${mode} abgeschlossen.` })\n      }\n    } catch (error) {\n      const message = error instanceof Error ? error.message : String(error)\n      cleanupError = message\n      cleanupSummary = null\n\n      if (notifyError) {\n        newNotification({ class: \"error\", html: message })\n      }\n    } finally {\n      cleanupRunning = false\n    }\n  }\n\n  onMount(() => {\n    if (!hasWorkspaceData) return\n\n    if (!organizationId && !projectId) return\n\n    void runDuplicateCleanup({\n      dryRun: true,\n      notifySuccess: false,\n      notifyError: false,\n    })\n  })\n</script>\n\n{#if !hasWorkspaceData}\n    {@render emptyContent?.()}\n{:else}\n    <div class=\"section-stack\">\n        <DuplicateCleanupPanel\n      {cleanupLimit}\n      {cleanupScopes}\n      {cleanupRunning}\n      {cleanupSummary}\n      {cleanupError}\n      {cleanupActionDisabled}\n      onLimit={(limit) => {\n        cleanupLimit = limit\n        cleanupError = null\n      }}\n      onScopes={(scopes) => {\n        cleanupScopes = scopes\n        cleanupError = null\n      }}\n      onRun={() => runDuplicateCleanup({ dryRun: false })}\n    />\n    </div>\n{/if}\n\n<style lang=\"less\">\n  .section-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n</style>\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (ctx: {\n    canCleanupData: boolean\n    canViewKontextIndex: boolean\n  }): PageTabWithId[] => [\n    ...(ctx.canViewKontextIndex\n      ? [\n          {\n            id: \"internal\",\n            title: \"Datenquellen\",\n            testId: \"indexAdmin.organizationView.tab.datasources.internal\",\n          },\n          {\n            id: \"targets\",\n            title: \"Speicherziele\",\n            testId: \"indexAdmin.organizationView.tab.datasources.targets\",\n          },\n        ]\n      : []),\n    ...(ctx.canCleanupData\n      ? [\n          {\n            id: \"cleanup\",\n            title: \"Datenbereinigung\",\n            testId: \"indexAdmin.organizationView.tab.datasources.cleanup\",\n          },\n        ]\n      : []),\n  ]\n</script>\n\n<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  import type { OrganizationAnalytics } from \"../../_shared/_logic/analytics\"\n  import { ensureOrganizationAnalytics } from \"../../_shared/_logic/organization-analytics\"\n  import InternalTab from \"./tabs/Internal\"\n  import TargetsTab from \"./tabs/Targets\"\n  import CleanupTab from \"./tabs/Cleanup\"\n\n  type DatasourcesSectionProps = {\n    active?: boolean\n    hasWorkspaceData?: boolean\n    organizationId?: string | null\n    analytics?: OrganizationAnalytics | null\n    analyticsLoading?: boolean\n    projectName?: string\n    realizationSubtitle?: string | null\n    emptyContent?: () => any\n    activeTab?: \"targets\" | \"internal\" | \"cleanup\"\n  }\n\n  const {\n    active = false,\n    hasWorkspaceData = false,\n    organizationId = null,\n    analytics = null,\n    analyticsLoading = false,\n    emptyContent,\n    activeTab = \"internal\",\n  }: DatasourcesSectionProps = $props()\n\n  const refreshIntervalMilliseconds = 15_000\n  let browserTabVisible = $state(\n    typeof document !== \"undefined\" && document.visibilityState === \"visible\",\n  )\n\n  onMount(() => {\n    const updateVisibility = () => {\n      browserTabVisible = document.visibilityState === \"visible\"\n    }\n    updateVisibility()\n    document.addEventListener(\"visibilitychange\", updateVisibility)\n\n    return () => document.removeEventListener(\"visibilitychange\", updateVisibility)\n  })\n\n  $effect(() => {\n    const currentOrganizationId = String(organizationId ?? \"\").trim()\n\n    if (!active || activeTab === \"cleanup\" || !browserTabVisible || !currentOrganizationId) return\n\n    void ensureOrganizationAnalytics(currentOrganizationId, { force: true })\n    const intervalId = window.setInterval(() => {\n      void ensureOrganizationAnalytics(currentOrganizationId, { force: true })\n    }, refreshIntervalMilliseconds)\n\n    return () => window.clearInterval(intervalId)\n  })\n</script>\n\n<div class=\"section-stack\">\n    {#if activeTab === \"cleanup\"}\n        <CleanupTab\n      {hasWorkspaceData}\n      {organizationId}\n      projectId={null}\n      realizationId={null}\n      {emptyContent}\n    />\n    {:else if activeTab === \"targets\"}\n        <TargetsTab {analytics} {analyticsLoading} />\n    {:else}\n        <InternalTab\n      {analytics}\n      {analyticsLoading}\n      {organizationId}\n      projectId={null}\n      {active}\n      {hasWorkspaceData}\n      {emptyContent}\n    />\n    {/if}\n</div>\n\n<style lang=\"less\">\n  .section-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n</style>\n","import { mdiCogOutline, mdiOpenInApp, mdiRefresh, mdiTrashCanOutline } from \"@mdi/js\"\nimport type { DomainRow } from \"../../../_shared/_logic/domain-row\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\n\nexport default function buildRowActions({\n  row,\n  canManage = true,\n  onOpen,\n  onConfig,\n  onDiscover,\n  onDelete,\n}: {\n  row: DomainRow\n  canManage?: boolean\n  onOpen?: (domain: DomainRow) => void\n  onConfig?: (domain: DomainRow) => void\n  onDiscover?: (domain: DomainRow) => void\n  onDelete?: (domain: DomainRow) => void\n}): TableRowAction[] {\n  const actions: TableRowAction[] = []\n\n  if (onOpen) {\n    actions.push({\n      id: \"action-0\",\n      label: \"Website öffnen\",\n      onClick: () => {\n        onOpen?.(row)\n      },\n      icon: mdiOpenInApp,\n      tooltip: \"Website öffnen\",\n      testId: `indexAdmin.scraping.domain.openButton.${row.id}`,\n    })\n  }\n\n  if (onConfig) {\n    actions.push({\n      id: \"action-1\",\n      label: \"Website konfigurieren\",\n      onClick: () => {\n        onConfig?.(row)\n      },\n      icon: mdiCogOutline,\n      tooltip: \"Website konfigurieren\",\n      testId: `indexAdmin.scraping.domain.configButton.${row.id}`,\n    })\n  }\n\n  if (canManage) {\n    actions.push({\n      id: \"action-2\",\n      label: \"URL Discovery starten & bestehende Daten aktualisieren\",\n      onClick: () => {\n        onDiscover?.(row)\n      },\n      icon: mdiRefresh,\n      tooltip: \"URL Discovery starten & bestehende Daten aktualisieren\",\n      testId: `indexAdmin.scraping.domain.discoverButton.${row.id}`,\n    })\n\n    actions.push({\n      id: \"action-3\",\n      label: \"Website löschen\",\n      onClick: () => {\n        onDelete?.(row)\n      },\n      icon: mdiTrashCanOutline,\n      tooltip: \"Website löschen\",\n      testId: `indexAdmin.scraping.domain.deleteButton.${row.id}`,\n      tone: \"danger\",\n    })\n  }\n\n  return actions\n}\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import type { ScrapingTableTag } from \"../../_logic/scraping-table-tags\"\n\n  const {\n    tag,\n    class: className = \"\",\n  }: {\n    tag: ScrapingTableTag\n    class?: string\n  } = $props()\n</script>\n\n<StatusTag\n  size=\"sm\"\n  label={tag.label}\n  subLabel={tag.subLabel ?? undefined}\n  color={tag.color}\n  icon={tag.icon ?? undefined}\n  tooltipContent={tag.tooltip ?? \"\"}\n  tooltipHtml={tag.tooltipHtml ?? false}\n  tooltipClassName={tag.tooltipClassName ?? \"\"}\n  disableTitle={true}\n  class={`scraping-table-tag ${className}`.trim()}\n/>\n","<script lang=\"ts\">\n  import ScrapingTableTag from \"../../../../../../../../../../../../_shared/_modules/scraping-table-tag\"\n  import type { DomainRow } from \"../../../../../../_shared/_logic/domain-row\"\n\n  const {\n    row,\n    onOpen,\n  }: {\n    row: DomainRow\n    onOpen?: (domain: DomainRow) => void\n  } = $props()\n</script>\n\n{#if onOpen}\n    <button\n    class=\"domain-link\"\n    type=\"button\"\n    aria-label={row.domain}\n    onclick={(event) => {\n      event.stopPropagation()\n      onOpen?.(row)\n    }}\n    data-testid={`indexAdmin.scraping.domain.link.${row.id}`}\n  >\n        <ScrapingTableTag tag={row.websiteTag} />\n    </button>\n{:else}\n    <ScrapingTableTag tag={row.websiteTag} />\n{/if}\n\n<style lang=\"less\">\n  .domain-link {\n    display: inline-flex;\n    align-items: center;\n    background: none;\n    border: none;\n    padding: 0;\n    margin: 0;\n    color: inherit;\n    cursor: pointer;\n    text-align: left;\n\n    &:hover :global(.status-tag__main-label) {\n      text-decoration: underline;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import ScrapingTableTag from \"../../../../../../../../../../_shared/_modules/scraping-table-tag\"\n  import type { DomainRow } from \"../../../../_shared/_logic/domain-row\"\n  import DomainWebsiteCell from \"./_modules/domain-website-cell\"\n\n  const {\n    row,\n    column,\n    onOpen,\n  }: {\n    row: DomainRow\n    column: ColumnDef\n    onOpen?: (domain: DomainRow) => void\n  } = $props()\n\n  const cellValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"website\"}\n    <DomainWebsiteCell {row} {onOpen} />\n{:else if column.id === \"scope\"}\n    <ScrapingTableTag tag={row.scopeTag} />\n{:else if column.id === \"discovery\"}\n    <ScrapingTableTag tag={row.discoveryTag} />\n{:else if column.id === \"classification\"}\n    <ScrapingTableTag tag={row.classificationTag} />\n{:else if column.id === \"index\"}\n    <ScrapingTableTag tag={row.indexTag} />\n{:else}\n    {cellValue}\n{/if}\n","import {\n  mdiAccountGroupOutline,\n  mdiCalendarSearch,\n  mdiDatabaseSearchOutline,\n  mdiOfficeBuildingOutline,\n  mdiRobotOutline,\n  mdiTagMultipleOutline,\n  mdiTranslate,\n  mdiWeb,\n} from \"@mdi/js\"\n\nimport type { DomainRecord } from \"../../../../../../../../../_shared/_logic/scraping\"\nimport type { ScrapingTableTag } from \"../../../../../../../../../_shared/_logic/scraping-table-tags\"\nimport {\n  buildRichTooltip,\n  RICH_TOOLTIP_CLASS,\n  tooltipField,\n  tooltipText,\n  tooltipTitle,\n} from \"../../../../../../../../../../_shared/_logic/rich-tooltips\"\nimport {\n  buildCoverageTooltip,\n  computeCoveragePercentage,\n  formatEntityCount,\n} from \"../../../../../../../../../../_shared/_logic/sync-coverage\"\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst normalizeCount = (value: number | null | undefined): number => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return 0\n\n  return Math.round(numeric)\n}\n\nexport const formatDomainDate = (value?: string | null): string => {\n  if (!value) return \"–\"\n\n  const parsed = new Date(value)\n\n  if (Number.isNaN(parsed.getTime())) return value\n\n  return parsed.toLocaleString()\n}\n\nconst formatDateSubLabel = (value?: string | null): string => {\n  if (!value) return \"noch nie\"\n\n  const parsed = new Date(value)\n\n  if (Number.isNaN(parsed.getTime())) return \"zuletzt unbekannt\"\n\n  return `zuletzt ${parsed.toLocaleDateString(\"de-DE\")}`\n}\n\nconst escapeHtml = (value: unknown): string =>\n  String(value ?? \"\")\n    .replaceAll(\"&\", \"&amp;\")\n    .replaceAll(\"<\", \"&lt;\")\n    .replaceAll(\">\", \"&gt;\")\n    .replaceAll('\"', \"&quot;\")\n    .replaceAll(\"'\", \"&#39;\")\n\nconst safeField = (label: string, value: unknown): string | null => {\n  const normalized = String(value ?? \"\").trim()\n\n  return normalized ? tooltipField(label, escapeHtml(normalized)) : null\n}\n\nconst safeText = (value: unknown): string | null => {\n  const normalized = String(value ?? \"\").trim()\n\n  return normalized ? tooltipText(escapeHtml(normalized)) : null\n}\n\nconst listLabel = (values: readonly string[] | null | undefined): string => {\n  const normalized = (values ?? []).map((value) => value.trim()).filter(Boolean)\n\n  if (!normalized.length) return \"–\"\n\n  return normalized.join(\", \")\n}\n\nexport const domainScopeLabel = (scope: DomainRecord[\"scope\"]): string => {\n  if (scope === \"realization\") return \"Sprache\"\n\n  if (scope === \"project\") return \"Agent\"\n\n  return \"Organisation\"\n}\n\nconst domainScopeSubLabel = (domain: DomainRecord): string => {\n  if (domain.scope === \"realization\")\n    return domain.realization_id ? `Sprache ${domain.realization_id}` : \"ein Sprachkontext\"\n\n  if (domain.scope === \"project\") return \"ein Agent\"\n\n  return \"alle Agenten\"\n}\n\nexport const buildDomainScopeTag = (domain: DomainRecord): ScrapingTableTag => {\n  const label = domainScopeLabel(domain.scope)\n  const subLabel = domainScopeSubLabel(domain)\n  const tooltip = buildRichTooltip(\n    tooltipTitle(\"Geltung im Index\"),\n    safeField(\"Ebene\", label),\n    safeField(\"Wirkung\", subLabel),\n    safeField(\"Organisation\", domain.organization_id || domain.tenant_id),\n    safeField(\"Projekt\", domain.project_id),\n    safeField(\"Realisierung\", domain.realization_id),\n  )\n\n  if (domain.scope === \"realization\") {\n    return {\n      label,\n      subLabel,\n      color: \"teal\",\n      icon: mdiTranslate,\n      tooltip,\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: `${label} ${subLabel}`,\n      sortValue: \"3-realization\",\n    }\n  }\n\n  if (domain.scope === \"project\") {\n    return {\n      label,\n      subLabel,\n      color: \"blue\",\n      icon: mdiRobotOutline,\n      tooltip,\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: `${label} ${subLabel}`,\n      sortValue: \"2-project\",\n    }\n  }\n\n  return {\n    label,\n    subLabel,\n    color: \"indigo\",\n    icon: mdiOfficeBuildingOutline,\n    tooltip,\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel}`,\n    sortValue: \"1-organization\",\n  }\n}\n\nconst describeInterval = (seconds?: number | null): string => {\n  if (seconds === null || seconds === undefined) return \"Unklar\"\n\n  if (seconds <= 0) return \"Manuell\"\n\n  if (seconds % 86_400 === 0)\n    return `Alle ${numberFormatter.format(Math.round(seconds / 86_400))} Tage`\n\n  if (seconds % 3_600 === 0)\n    return `Alle ${numberFormatter.format(Math.round(seconds / 3_600))} Stunden`\n\n  return `Alle ${numberFormatter.format(seconds)} Sekunden`\n}\n\nexport const buildDomainDiscoveryTag = (domain: DomainRecord): ScrapingTableTag => {\n  const seconds = domain.crawl_interval_seconds\n  const label = describeInterval(seconds)\n  const lastDiscovery = formatDomainDate(domain.last_discovered_at)\n  const nextDiscovery = formatDomainDate(domain.next_discovery_at)\n  const isManual = seconds !== null && seconds !== undefined && seconds <= 0\n  const isUnknown = seconds === null || seconds === undefined\n\n  return {\n    label,\n    subLabel: formatDateSubLabel(domain.last_discovered_at),\n    color: isUnknown ? \"amber\" : isManual ? \"orange\" : \"cyan\",\n    icon: mdiCalendarSearch,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Discovery\"),\n      safeField(\"Automatik\", label),\n      safeField(\"Letzte Discovery\", lastDiscovery),\n      safeField(\"Nächste Discovery\", nextDiscovery),\n      isManual\n        ? safeText(\n            \"Automatische Discovery ist deaktiviert; Discovery kann manuell gestartet werden.\",\n          )\n        : null,\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${lastDiscovery} ${nextDiscovery}`,\n    sortValue: domain.last_discovered_at ?? domain.next_discovery_at ?? \"\",\n  }\n}\n\nexport const buildDomainClassificationTag = (domain: DomainRecord): ScrapingTableTag => {\n  const defaultPageType = (domain.default_page_type ?? \"\").trim()\n  const listCount = domain.default_list_types?.length ?? 0\n  const ruleCount = domain.classification_rules?.length ?? 0\n  const label =\n    defaultPageType || (ruleCount > 0 ? \"Regeln\" : listCount > 0 ? \"Listen\" : \"Standard\")\n  const subParts = [\n    ruleCount ? `${numberFormatter.format(ruleCount)} Regel${ruleCount === 1 ? \"\" : \"n\"}` : null,\n    listCount ? `${numberFormatter.format(listCount)} Liste${listCount === 1 ? \"\" : \"n\"}` : null,\n  ].filter(Boolean)\n  const subLabel = subParts.length ? subParts.join(\" · \") : \"keine Regeln\"\n\n  return {\n    label,\n    subLabel,\n    color: defaultPageType ? \"blue\" : ruleCount > 0 ? \"violet\" : listCount > 0 ? \"teal\" : \"amber\",\n    icon: mdiTagMultipleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Klassifikation\"),\n      safeField(\"Standard-Seitentyp\", defaultPageType || \"–\"),\n      safeField(\"Standard-Listen\", listLabel(domain.default_list_types)),\n      safeField(\"Regeln\", ruleCount ? numberFormatter.format(ruleCount) : \"–\"),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel} ${listLabel(domain.default_list_types)}`,\n    sortValue: `${label} ${subLabel}`,\n  }\n}\n\nexport const buildDomainIndexTag = (domain: DomainRecord): ScrapingTableTag => {\n  const total = normalizeCount(domain.url_count)\n  const indexed = normalizeCount(domain.indexed_url_count)\n\n  if (total <= 0) {\n    return {\n      label: \"0 URLs\",\n      subLabel: \"noch keine URLs\",\n      color: \"amber\",\n      icon: mdiDatabaseSearchOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Index\"),\n        safeText(\n          \"Noch keine URLs erfasst. Starten Sie Discovery, um Seiten dieser Website zu finden.\",\n        ),\n      ),\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: \"0 URLs noch keine URLs\",\n      sortValue: 0,\n    }\n  }\n\n  const percentage = computeCoveragePercentage(indexed, total)\n  const open = Math.max(0, total - indexed)\n\n  return {\n    label: `${numberFormatter.format(indexed)}/${numberFormatter.format(total)} URLs`,\n    subLabel: open > 0 ? `${numberFormatter.format(open)} offen` : \"vollständig\",\n    color:\n      percentage < 50 ? \"red\" : percentage < 70 ? \"orange\" : percentage < 90 ? \"amber\" : \"emerald\",\n    icon: mdiDatabaseSearchOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Index-Abdeckung\"),\n      safeText(buildCoverageTooltip(indexed, total, { singular: \"URL\", plural: \"URLs\" })),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${indexed} ${total} URLs ${percentage} Prozent`,\n    sortValue: percentage,\n  }\n}\n\nexport const buildDomainWebsiteTag = (domain: DomainRecord): ScrapingTableTag => {\n  const total = normalizeCount(domain.url_count)\n  const defaultPageType = (domain.default_page_type ?? \"\").trim()\n  const subLabel = defaultPageType\n    ? `${formatEntityCount(total)} URLs · ${defaultPageType}`\n    : `${formatEntityCount(total)} URLs`\n\n  return {\n    label: domain.domain,\n    subLabel,\n    color: \"cyan\",\n    icon: mdiWeb,\n    tooltip: buildRichTooltip(\n      tooltipTitle(escapeHtml(domain.domain || \"Website\")),\n      safeField(\"Domain\", domain.domain),\n      safeField(\"Geltung\", domainScopeLabel(domain.scope)),\n      safeField(\"URLs\", formatEntityCount(total)),\n      safeField(\"Synchronisiert\", `${formatEntityCount(domain.indexed_url_count)} URLs`),\n      safeField(\"Standard-Seitentyp\", defaultPageType || \"–\"),\n      safeField(\"Standard-Listen\", listLabel(domain.default_list_types)),\n      safeField(\n        \"Regeln\",\n        domain.classification_rules?.length\n          ? numberFormatter.format(domain.classification_rules.length)\n          : \"–\",\n      ),\n      safeField(\"Erstellt\", formatDomainDate(domain.created_at)),\n      safeField(\"Geändert\", formatDomainDate(domain.updated_at)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${domain.domain} ${subLabel} ${listLabel(domain.default_list_types)}`,\n    sortValue: domain.domain,\n  }\n}\n\nexport const buildDomainTags = (domain: DomainRecord) => ({\n  websiteTag: buildDomainWebsiteTag(domain),\n  scopeTag: buildDomainScopeTag(domain),\n  discoveryTag: buildDomainDiscoveryTag(domain),\n  classificationTag: buildDomainClassificationTag(domain),\n  indexTag: buildDomainIndexTag(domain),\n})\n","import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\nimport type { DomainRecord } from \"../../../../../../../../../_shared/_logic/scraping\"\nimport type { DomainRow } from \"../../../_shared/_logic/domain-row\"\nimport { buildDomainTags, domainScopeLabel } from \"./tags\"\n\nexport const DOMAIN_CARD_FIELD_IDS = [\"scope\", \"classification\", \"discovery\", \"index\"]\n\nexport const domainTableColumns: ColumnDef[] = [\n  {\n    id: \"website\",\n    label: \"Website\",\n    isPrimary: true,\n    tooltip: \"Website-Domain mit URL-Bestand und Standard-Klassifikation.\",\n    sortable: true,\n    sortKey: \"domain\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as DomainRow).websiteTag.sortValue,\n  },\n  {\n    id: \"scope\",\n    label: \"Geltung\",\n    tooltip: \"Wo die Website-Inhalte im Kontext-Index wirken.\",\n    sortable: true,\n    sortKey: \"scope\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as DomainRow).scopeTag.sortValue,\n  },\n  {\n    id: \"discovery\",\n    label: \"Discovery\",\n    tooltip: \"Discovery-Intervall und letzter Erkundungslauf.\",\n    sortable: true,\n    sortKey: \"last_discovered_at\",\n    sortType: \"date\",\n    defaultSortDir: \"desc\",\n    getSortValue: (row) => (row as DomainRow).discoveryTag.sortValue,\n  },\n  {\n    id: \"classification\",\n    label: \"Klassifikation\",\n    tooltip: \"Standard-Seitentyp, Listen und URL-Klassifikationsregeln.\",\n    getSortValue: (row) => (row as DomainRow).classificationTag.sortValue,\n  },\n  {\n    id: \"index\",\n    label: \"Index\",\n    tooltip: \"URL-Bestand und Anteil synchronisierter URLs.\",\n    getSortValue: (row) => (row as DomainRow).indexTag.sortValue,\n  },\n]\n\nexport const mapDomainToRow = (domain: DomainRecord): DomainRow => {\n  const urlCount = Number(domain.url_count ?? 0)\n  const indexedUrlCount = Number(domain.indexed_url_count ?? 0)\n  const tags = buildDomainTags(domain)\n\n  return {\n    id: domain.id,\n    domain: domain.domain,\n    website: tags.websiteTag.searchText,\n    scope: tags.scopeTag.searchText,\n    discovery: tags.discoveryTag.searchText,\n    classification: tags.classificationTag.searchText,\n    index: tags.indexTag.searchText,\n    scopeLabel: domainScopeLabel(domain.scope),\n    urlCount,\n    indexedUrlCount,\n    crawlIntervalSeconds: domain.crawl_interval_seconds,\n    lastDiscovery: domain.last_discovered_at,\n    ...tags,\n    record: domain,\n  }\n}\n","<script lang=\"ts\" module>\n  export type { DomainRow } from \"../../_shared/_logic/domain-row\"\n</script>\n\n<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { mdiEyeOutline as tablePrimaryIcon } from \"@mdi/js\"\n\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { mdiPlus } from \"@mdi/js\"\n\n  import { fetchDomains } from \"../../../../../../../../_shared/_logic/scraping\"\n  import DomainRowActions from \"./_logic/DomainRowActions.actions\"\n  import DomainTableCell from \"./_modules/domain-table-cell\"\n  import type { DomainRow } from \"../../_shared/_logic/domain-row\"\n  import { DOMAIN_CARD_FIELD_IDS, domainTableColumns, mapDomainToRow } from \"./_logic/tableModel\"\n\n  const {\n    projectId,\n    organizationId = null,\n    realizationId = null,\n    canManage = true,\n    onCreate,\n    onDiscover,\n    onDelete,\n    onOpen,\n    setRefreshFunction,\n    onConfig,\n  }: {\n    projectId: string | null\n    organizationId?: string | null\n    realizationId?: string | null\n    canManage?: boolean\n    onCreate?: () => void\n    onDiscover?: (domain: DomainRow) => void\n    onDelete?: (domain: DomainRow) => void\n    onOpen?: (domain: DomainRow) => void\n    setRefreshFunction?: (refresh: () => void) => void\n    onConfig?: (domain: DomainRow) => void\n  } = $props()\n\n  const PAGE_SIZE = 25\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  let totalCount = $state<number | null>(null)\n  const tableStateId = $derived(\n    `index-admin-domains-${organizationId ?? projectId ?? \"global\"}-${realizationId ?? \"all\"}`,\n  )\n\n  const getDomainRows: TableGetRows = async ({ limit, offset, sort }) => {\n    if (!projectId && !organizationId) return { rows: [], total: 0 }\n\n    const result = await fetchDomains({\n      organizationId,\n      limit: typeof limit === \"number\" ? limit : PAGE_SIZE,\n      offset: typeof offset === \"number\" ? offset : 0,\n      realizationId,\n      sortBy: sort?.key ?? undefined,\n      sortDir: sort?.dir ?? undefined,\n    })\n\n    return {\n      rows: result.items.map(mapDomainToRow),\n      total: result.total,\n    }\n  }\n</script>\n\n<div class=\"domains\" data-testid=\"indexAdmin.scraping.domain.list\">\n  <SectionTitle\n    brightBackground={true}\n    title={`Websites (${numberFormatter.format(totalCount ?? 0)})`}\n    helpModalTextId=\"indexAdminDomainList\"\n  >\n    {#snippet buttonSnippet()}\n      {#if canManage}\n        <CTA\n          content=\"Website hinzufügen\"\n          type=\"primaryButton\"\n          onClick={() => onCreate?.()}\n          dataTestid=\"indexAdmin.scraping.domain.createButton\"\n        >\n          {#snippet iconSnippet()}\n            <Icon path={mdiPlus} size=\"16\" />\n          {/snippet}\n        </CTA>\n      {/if}\n    {/snippet}\n  </SectionTitle>\n  <Table\n    rowActions={{\n      resolve: (row, rowIndex) =>\n        buildTableRowActionSet(\n          [\n            {\n              id: \"open-record\",\n              label: \"Domain öffnen\",\n              icon: tablePrimaryIcon,\n              visible: Boolean(onOpen),\n              onClick: () =>\n                ((row) => {\n                  onOpen?.(row as DomainRow)\n                })(row),\n            },\n            ...(((row) => {\n              const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n              actions.push(\n                ...DomainRowActions({\n                  row: row as DomainRow,\n                  canManage: canManage,\n                  onOpen: onOpen,\n                  onConfig: onConfig,\n                  onDiscover: onDiscover,\n                  onDelete: onDelete,\n                }),\n              )\n\n              return actions\n            })(row) ?? []),\n          ],\n          { primaryId: \"open-record\", inlineIds: [\"action-1\"] },\n        ),\n    }}\n    columns={domainTableColumns}\n    getRows={getDomainRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={DOMAIN_CARD_FIELD_IDS}\n    maxCardFields={6}\n    showActions={true}\n    actionsHeaderLabel=\"Aktionen\"\n    pageSize={PAGE_SIZE}\n    urlStateId={tableStateId}\n    {setRefreshFunction}\n    onRowsLoaded={(result) => {\n      totalCount = typeof result?.total === \"number\" ? result.total : (result?.rows?.length ?? 0)\n    }}\n  >\n    {#snippet empty()}\n      <div class=\"empty\">Noch keine Websites hinterlegt.</div>\n    {/snippet}\n\n    {#snippet tableCell({ row, column })}\n      <DomainTableCell row={row as DomainRow} {column} {onOpen} />\n    {/snippet}\n\n    {#snippet cardTitle({ row })}\n      <DomainTableCell row={row as DomainRow} column={domainTableColumns[0]} {onOpen} />\n    {/snippet}\n\n    {#snippet cardSubtitle({ row })}\n      <span class=\"muted\">\n        {(row as DomainRow).scopeTag.label}\n        · {(row as DomainRow).indexTag.label}\n        · {(row as DomainRow).discoveryTag.label}\n      </span>\n    {/snippet}\n\n    {#snippet cardField({ row, column })}\n      <DomainTableCell row={row as DomainRow} {column} {onOpen} />\n    {/snippet}\n  </Table>\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .domains {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .empty {\n    padding: 1.1rem;\n    text-align: center;\n    color: var(--text-invers-100);\n  }\n\n  .muted {\n    color: var(--text-invers-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { mdiTrashCanOutline, mdiPencil } from \"@mdi/js\"\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n\n  type CardWrapperProps = {\n    clickable?: boolean\n    red?: boolean\n    white?: boolean\n    style?: string\n    editLabel?: string\n    smallTitle?: string\n    onDelete?: () => any\n    header?: Snippet | null\n    rightCorner?: Snippet | null\n    onEdit?: () => any\n    children?: Snippet | null\n    footer?: Snippet | null\n    onClick?: (event: MouseEvent | KeyboardEvent) => void\n  }\n\n  let {\n    clickable = false,\n    red = false,\n    white = false,\n    style = \"\",\n    editLabel = \"\",\n    smallTitle = \"\",\n    header,\n    rightCorner,\n    children,\n    footer,\n    onDelete,\n    onEdit,\n    onClick,\n  }: CardWrapperProps = $props()\n\n  let headerContentHeight = $state(0)\n\n  const syncHeaderHeight = (node: HTMLDivElement) => {\n    const updateHeight = () => {\n      headerContentHeight = node.getBoundingClientRect().height\n    }\n\n    updateHeight()\n\n    if (typeof ResizeObserver !== \"function\") {\n      return\n    }\n\n    const observer = new ResizeObserver(updateHeight)\n    observer.observe(node)\n\n    return {\n      destroy: () => observer.disconnect(),\n    }\n  }\n\n  const handleClick = (event: MouseEvent) => {\n    event.preventDefault()\n    event.stopPropagation()\n    onClick?.(event)\n  }\n\n  const handleKeyDown = (event: KeyboardEvent) => {\n    if (event.key !== \"Enter\" && event.key !== \" \") {\n      return\n    }\n\n    event.preventDefault()\n    event.stopPropagation()\n    onClick?.(event)\n  }\n</script>\n\n<div\n  class:red\n  class:white\n  class=\"card-wrapper\"\n  style:--header-content-height={headerContentHeight ? `${headerContentHeight}px` : null}\n  {style}\n>\n  {#if onDelete}\n    <button\n      onclick={onDelete}\n      class=\"delete-btn\"\n      aria-label=\"Löschen\"\n      use:tooltip={{ content: \"Löschen\" }}\n    >\n      <Icon path={mdiTrashCanOutline} size=\"0.8rem\" />\n    </button>\n  {/if}\n\n  {#if clickable}\n    <div role=\"button\" tabindex=\"0\" onclick={handleClick} onkeydown={handleKeyDown}>\n      <div class=\"header\">\n        <span class=\"bar\"></span>\n        <span class=\"crinkle\">\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 48 48\">\n            <path\n              d=\"M1.32395 0.999996L50 49\"\n              stroke={red ? \"#EB5757\" : white ? \"#FFFFFF\" : \"#0D0C0C\"}\n            ></path>\n          </svg>\n        </span>\n      </div>\n      <div class=\"body\">\n        {@render children?.()}\n      </div>\n    </div>\n  {:else}\n    <div class=\"header\">\n      <span class=\"bar\">\n        {#if smallTitle}\n          <span class=\"title\">\n            {smallTitle}\n          </span>\n        {/if}\n      </span>\n      <span class=\"crinkle\">\n        {#if red}\n          <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"49\"\n            height=\"48\"\n            viewBox=\"0 0 49 48\"\n            fill=\"none\"\n          >\n            <path d=\"M0.323948 -8.07009e-06L49 48L0.323948 48L0.323948 -8.07009e-06Z\" fill=\"#EB5757\"\n            ></path>\n          </svg>\n        {:else}\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 48 48\">\n            <path d=\"M1.32395 0.999996L50 49\" stroke={white ? \"#FFFFFF\" : \"#0D0C0C\"}></path>\n          </svg>\n        {/if}\n      </span>\n      <div class=\"rightCorner\">\n        {@render rightCorner?.()}\n      </div>\n    </div>\n    <div class=\"header-content\" use:syncHeaderHeight>\n      {@render header?.()}\n    </div>\n    <div class=\"body\" style=\"height: calc(100% - 2.4rem)\">\n      {@render children?.()}\n      {#if onEdit}\n        <button onclick={onEdit} class=\"edit-btn\">\n          <span>{editLabel ? editLabel : \"Bearbeiten\"}</span><span class=\"sr-only\"\n            ><Icon path={mdiPencil} size=\"0.9rem\" /></span\n          >\n        </button>\n      {:else if footer}\n        <div class=\"footer\">\n          {@render footer?.()}\n        </div>\n      {/if}\n    </div>\n  {/if}\n</div>\n\n<style lang=\"less\" global>\n  div.card-wrapper {\n    display: flex;\n    flex-direction: column;\n    position: relative;\n    .edit-btn {\n      background-color: var(--bg-100);\n      color: var(--neutral-white);\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      width: 100%;\n      padding: 0.6rem;\n      span {\n        font-weight: 700;\n      }\n    }\n    .delete-btn {\n      position: absolute;\n      top: -0.4rem;\n      left: -0.4rem;\n      background: transparent;\n      border: none;\n      color: var(--text-invers-100);\n      cursor: pointer;\n      height: 1.2rem;\n      width: 1.2rem;\n      z-index: 9;\n      border: 1px solid var(--bg-100);\n      background-color: white;\n      &:hover {\n        background-color: var(--text-invers-100) !important;\n        color: white !important;\n      }\n    }\n    .action-button-line,\n    .action-line {\n      display: flex;\n      flex-direction: row;\n      align-items: center;\n      justify-content: space-between;\n    }\n    .action-line {\n      background: var(--bg-100);\n      padding: 0.6rem 3.3rem 0.6rem 3.3rem;\n      display: flex;\n      flex-direction: row;\n      align-items: center;\n      min-height: 2.4rem;\n      justify-content: space-between;\n      p,\n      span {\n        color: var(--neutral-white);\n      }\n    }\n    & > div[role=\"button\"] {\n      width: 100%;\n      height: 100%;\n      display: flex;\n      flex-direction: column;\n      flex-grow: 1;\n    }\n    .header-content {\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      margin-top: 0;\n      min-height: 1.8rem;\n      padding: 0.6rem;\n      box-sizing: border-box;\n      z-index: 9;\n      color: var(--text-invers-100);\n    }\n    .header {\n      display: flex;\n      height: 2.4rem;\n      position: relative;\n      .rightCorner {\n        position: absolute;\n        top: 0px;\n        right: 0px;\n        z-index: 999;\n      }\n      .bar {\n        flex-grow: 1;\n        height: 100%;\n        border-top: 1px solid var(--bg-100);\n        border-left: 1px solid var(--bg-100);\n        display: flex;\n        align-items: flex-start;\n        justify-content: flex-start;\n        .title {\n          background-color: var(--bg-100);\n          padding: 4px 8px;\n          text-transform: uppercase;\n          font-size: 14px;\n          font-weight: 700;\n          height: fit-content;\n        }\n      }\n      .crinkle {\n        width: 2.4rem;\n        height: 2.4rem;\n        overflow: hidden;\n        margin-left: -2px;\n      }\n    }\n    .body {\n      width: 100%;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      flex-grow: 1;\n      gap: 1.2rem;\n      border: 1px solid var(--bg-100);\n      border-top: 0px solid black;\n      .header-content-placeholder {\n        flex-shrink: 0;\n        height: max(0px, calc(var(--header-content-height, 1.8rem) - 1.8rem));\n      }\n      .footer {\n        display: flex;\n        width: 100% !important;\n        gap: 1px;\n        & > * {\n          flex: 1;\n          width: 0px;\n        }\n      }\n    }\n    &.red {\n      .bar {\n        background-color: #eb5757;\n        border-color: #eb5757;\n      }\n      .body {\n        background-color: #eb5757;\n        border-color: #eb5757;\n      }\n    }\n    &.white {\n      .edit-btn {\n        border-top: 1px solid white;\n      }\n      & > .header > .bar {\n        border-top-color: #ffffff;\n        border-left-color: #ffffff;\n      }\n      & > .body {\n        border-color: #ffffff;\n      }\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { LoadingWrapperProps } from \"./contract\"\n\n  import { Circle } from \"svelte-loading-spinners\"\n\n  const {\n    loading: loadingProp = false,\n    active = undefined,\n    error = null,\n    styles = \"\",\n    progress = null,\n    progressLabel = null,\n    darkMode = false,\n    children = () => null,\n  }: LoadingWrapperProps = $props()\n\n  const isLoading = $derived(active ?? loadingProp)\n  const normalizedProgress = $derived.by(() => {\n    if (progress === null || progress === undefined) return null\n\n    if (Number.isNaN(progress)) return null\n\n    return Math.min(100, Math.max(0, Math.round(progress)))\n  })\n  const wrapperState = $derived(isLoading ? \"loading\" : error ? \"error\" : \"ready\")\n</script>\n\n<div\n  class=\"loadingWrapper\"\n  class:darkMode\n  class:lightMode={!darkMode}\n  data-state={wrapperState}\n  data-theme={darkMode ? \"dark\" : \"light\"}\n>\n  {#if isLoading}\n    <div class=\"spinner\">\n      <Circle size=\"3\" color=\"var(--primary-100, #741e20)\" unit=\"rem\" />\n\n      {#if normalizedProgress !== null}\n        <span>{normalizedProgress} %</span>\n      {:else if progressLabel}\n        <span>{progressLabel}</span>\n      {/if}\n    </div>\n  {:else if error}\n    <div class=\"status-block error\">\n      <p>{error}</p>\n    </div>\n  {:else}\n    <div class=\"content\" style={styles}>\n      {@render children()}\n    </div>\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .loadingWrapper {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    min-height: 120px;\n    padding: 0;\n    margin: 0;\n  }\n\n  .spinner {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 1rem;\n    text-align: center;\n\n    span {\n      color: var(--text-invers-100);\n      font-size: 1rem;\n    }\n  }\n\n  .loadingWrapper.darkMode .spinner span {\n    color: var(--text-100);\n  }\n\n  .status-block {\n    padding: 1rem 1.2rem;\n    border-radius: 12px;\n    background: color-mix(in srgb, var(--bg-300) 65%, #fff 35%);\n    border: 1px solid color-mix(in srgb, var(--text-invers-100) 12%, transparent);\n    color: var(--text-invers-100);\n    text-align: center;\n\n    p {\n      margin: 0;\n    }\n\n    &.error {\n      border-color: color-mix(in srgb, var(--red-300) 55%, transparent);\n      background: color-mix(in srgb, var(--red-300) 18%, #fff 82%);\n    }\n  }\n\n  .loadingWrapper.darkMode .status-block {\n    border-color: color-mix(in srgb, var(--text-100) 16%, transparent);\n    background: color-mix(in srgb, var(--bg-200) 78%, var(--bg-100) 22%);\n    color: var(--text-100);\n\n    &.error {\n      border-color: color-mix(in srgb, var(--red-300) 55%, transparent);\n      background: color-mix(in srgb, var(--red-300) 14%, transparent);\n    }\n  }\n\n  .content {\n    width: 100%;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Mode, FormContext } from \"./contract\"\n\n  import { onMount, type Snippet } from \"svelte\"\n  import CTA from \"../../../actions/_modules/cta/index\"\n  import { mdiUndoVariant } from \"@mdi/js\"\n  import { removeAllErrors } from \"../../../../core/forms/formValidation\"\n  import LoadingWrapper from \"../loading-wrapper/index\"\n\n  type Theme = \"light\" | \"dark\"\n\n  type ValidateArgs<T = Record<string, unknown>> = { data: T; form: HTMLFormElement | null }\n\n  interface Props<T = Record<string, unknown>> {\n    theme?: Theme\n    mode?: Mode\n    formSnippet: Snippet<[FormContext<any>]>\n    actionButtonSnippet?: Snippet<[FormContext<any>]>\n    getInitObject: () => T\n    validateData?: (args: ValidateArgs<any>) => boolean | Promise<boolean>\n    loadData?: () => Promise<T>\n    onSubmit?: (data: any) => void | Promise<void>\n    onReset?: (data: any) => void | Promise<void>\n    setSubmitFn?: (submit: () => Promise<void>) => void\n    submitting?: boolean\n    submitLabel?: string\n    resetLabel?: string\n    showReset?: boolean\n    reinitKey?: string | number | boolean\n    hideSubmit?: boolean\n    submitButtonSnippet?: Snippet\n    submitButtonTestId?: string\n    resetButtonTestId?: string\n  }\n\n  let {\n    theme = \"light\",\n    mode = \"create\",\n    formSnippet,\n    actionButtonSnippet,\n    getInitObject,\n    validateData = undefined,\n    loadData = undefined,\n    onSubmit = async () => {},\n    onReset = async () => {},\n    setSubmitFn = undefined,\n    submitting = $bindable(false),\n    submitLabel = undefined,\n    resetLabel = \"Zurücksetzen\",\n    showReset = true,\n    reinitKey = mode,\n    hideSubmit = false,\n    submitButtonSnippet = undefined,\n    submitButtonTestId = undefined,\n    resetButtonTestId = undefined,\n  }: Props = $props()\n\n  const resolveInitialData = () => getInitObject()\n  let dataObject: any = $state(resolveInitialData())\n  let formElement: HTMLFormElement | null = $state(null)\n  let loading = $state(false)\n  let hydrationToken = $state(0)\n  let lastReinitKey: string | number | boolean | null = null\n\n  const hydrate = async () => {\n    const token = ++hydrationToken\n    const shouldLoad = mode === \"edit\" && typeof loadData === \"function\"\n    loading = shouldLoad\n    try {\n      const next = shouldLoad ? await loadData() : getInitObject()\n\n      if (token === hydrationToken) {\n        dataObject = next\n      }\n    } catch (err) {\n      console.error(\"form_wrapper_load_failed\", err)\n    } finally {\n      if (token === hydrationToken) {\n        loading = false\n      }\n    }\n  }\n\n  const runValidation = async () => {\n    if (!validateData) return true\n\n    const result = validateData({ data: dataObject, form: formElement })\n\n    return result instanceof Promise ? await result : result\n  }\n\n  const handleSubmit = async (event?: Event) => {\n    event?.preventDefault()\n\n    if (submitting || loading) return\n\n    removeAllErrors(formElement ?? undefined)\n    const valid = await runValidation()\n\n    if (!valid) return\n\n    submitting = true\n    try {\n      await onSubmit(dataObject)\n    } catch (err) {\n      console.error(\"form_wrapper_submit_failed\", err)\n    } finally {\n      submitting = false\n    }\n  }\n\n  const handleReset = async () => {\n    if (submitting) return\n\n    removeAllErrors(formElement ?? undefined)\n    await hydrate()\n    await onReset(dataObject)\n  }\n\n  const context = $derived<FormContext<any>>({\n    data: dataObject,\n    setData: (next) => (dataObject = next),\n    updateData: (next) => (dataObject = { ...dataObject, ...next }),\n    submitting,\n    loading,\n    mode,\n    submit: handleSubmit,\n    reset: handleReset,\n  })\n\n  const effectiveSubmitLabel = $derived(submitLabel ?? (mode === \"edit\" ? \"Speichern\" : \"Anlegen\"))\n\n  $effect(() => {\n    if (lastReinitKey === null) {\n      lastReinitKey = reinitKey\n\n      return\n    }\n\n    if (reinitKey !== lastReinitKey) {\n      lastReinitKey = reinitKey\n      hydrate()\n    }\n  })\n\n  onMount(() => {\n    setSubmitFn?.(() => handleSubmit())\n    hydrate()\n    lastReinitKey = reinitKey\n  })\n</script>\n\n<LoadingWrapper {loading}>\n  <form\n    class={`form ${theme}`}\n    bind:this={formElement}\n    onsubmit={(e) => {\n      e.preventDefault()\n    }}\n  >\n    {@render formSnippet(context)}\n    {#if actionButtonSnippet || showReset || !hideSubmit}\n      <section class=\"formActions\">\n        {#if actionButtonSnippet}\n          <div class=\"formActions__secondary\">\n            {@render actionButtonSnippet(context)}\n          </div>\n        {/if}\n        <div class=\"formActions__primary\" class:showReset>\n          {#if showReset}\n            <CTA\n              type=\"secondaryButton\"\n              content={resetLabel}\n              icon={mdiUndoVariant}\n              disabled={submitting || loading}\n              onClick={handleReset}\n              dataTestid={resetButtonTestId}\n            />\n          {/if}\n          {#if !hideSubmit}\n            <CTA\n              type=\"primaryButton\"\n              content={effectiveSubmitLabel}\n              disabled={submitting || loading}\n              onClick={handleSubmit}\n              dataTestid={submitButtonTestId}\n            >\n              {#snippet iconSnippet()}\n                {#if submitButtonSnippet}\n                  {@render submitButtonSnippet()}\n                {/if}\n              {/snippet}\n            </CTA>\n          {/if}\n        </div>\n      </section>\n    {/if}\n  </form>\n</LoadingWrapper>\n\n<style lang=\"less\">\n  .formActions {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 1rem;\n\n    .formActions__primary {\n      display: flex;\n      gap: 0.6rem;\n      align-items: center;\n      justify-content: flex-end;\n      width: 100%;\n      &.showReset {\n        justify-content: space-between;\n        width: 100%;\n      }\n    }\n  }\n</style>\n","export const NEVER_INTERVAL_SECONDS = 0\nexport const MONTHLY_INTERVAL_SECONDS = 60 * 60 * 24 * 30\nexport const QUARTERLY_INTERVAL_SECONDS = 60 * 60 * 24 * 90\n\nexport const crawlIntervalOptions = [\n  { name: \"Nie (Standard)\", value: `${NEVER_INTERVAL_SECONDS}` },\n  { name: \"Quartalsweise (~90 Tage)\", value: `${QUARTERLY_INTERVAL_SECONDS}` },\n  { name: \"Monatlich (~30 Tage)\", value: `${MONTHLY_INTERVAL_SECONDS}` },\n]\n\nexport const parseIntervalInput = (value: string | number | null | undefined): number => {\n  const parsed = typeof value === \"number\" ? value : Number.parseInt(`${value ?? \"\"}`, 10)\n\n  if (!Number.isFinite(parsed) || parsed < 0) return NEVER_INTERVAL_SECONDS\n\n  return parsed\n}\n\nexport const describeInterval = (seconds?: number | null): string => {\n  if (seconds === null || seconds === undefined) return \"–\"\n\n  if (seconds <= NEVER_INTERVAL_SECONDS) return \"Nie\"\n\n  if (seconds === QUARTERLY_INTERVAL_SECONDS) return \"Quartalsweise\"\n\n  if (seconds === MONTHLY_INTERVAL_SECONDS) return \"Monatlich\"\n\n  if (seconds % 86_400 === 0) return `${Math.round(seconds / 86_400)} Tage`\n\n  if (seconds % 3_600 === 0) return `${Math.round(seconds / 3_600)} Stunden`\n\n  return `${seconds} Sekunden`\n}\n\nexport const withCustomIntervalOption = (\n  value: string | null | undefined,\n  options = crawlIntervalOptions,\n) => {\n  if (!value) return options\n\n  if (options.some((option) => option.value === value)) return options\n\n  return [...options, { name: `Benutzerdefiniert (${value} Sekunden)`, value }]\n}\n","import type { RuleDraft, RuleMatchMode } from \"./types\"\n\nexport const createRuleDraft = (): RuleDraft => ({\n  matchMode: \"contains\",\n  matchValue: \"\",\n  listTypes: \"\",\n  pageType: \"\",\n})\n\nconst escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/gu, \"\\\\$&\")\n\nconst unescapeRegexLiteral = (value: string): string =>\n  value.replace(/\\\\([.*+?^${}()|[\\]\\\\])/gu, \"$1\")\n\nconst hasRegexSyntax = (value: string): boolean => {\n  const strippedEscapes = value.replace(/\\\\./gu, \"\")\n\n  return /[.*+?^${}()|[\\]]/u.test(strippedEscapes)\n}\n\nexport const parsePatternToDraft = (\n  pattern: string | null | undefined,\n): Pick<RuleDraft, \"matchMode\" | \"matchValue\"> => {\n  const raw = (pattern ?? \"\").trim()\n\n  if (!raw) {\n    return { matchMode: \"contains\", matchValue: \"\" }\n  }\n\n  const hasStartAnchor = raw.startsWith(\"^\")\n  const hasEndAnchor = raw.endsWith(\"$\")\n  let core = raw\n\n  if (hasStartAnchor) core = core.slice(1)\n\n  if (hasEndAnchor) core = core.slice(0, -1)\n\n  if (!hasRegexSyntax(core)) {\n    const literal = unescapeRegexLiteral(core)\n\n    if (hasStartAnchor && hasEndAnchor) return { matchMode: \"exact\", matchValue: literal }\n\n    if (hasStartAnchor) return { matchMode: \"startsWith\", matchValue: literal }\n\n    if (hasEndAnchor) return { matchMode: \"endsWith\", matchValue: literal }\n\n    return { matchMode: \"contains\", matchValue: literal }\n  }\n\n  return { matchMode: \"regex\", matchValue: raw }\n}\n\nexport const buildPatternFromRule = (rule: RuleDraft): string => {\n  const value = rule.matchValue.trim()\n\n  if (!value) return \"\"\n\n  if (rule.matchMode === \"regex\") return value\n\n  const escaped = escapeRegex(value)\n\n  if (rule.matchMode === \"startsWith\") return `^${escaped}`\n\n  if (rule.matchMode === \"endsWith\") return `${escaped}$`\n\n  if (rule.matchMode === \"exact\") return `^${escaped}$`\n\n  return escaped\n}\n\nexport const getRuleValuePlaceholder = (mode: RuleMatchMode): string => {\n  if (mode === \"startsWith\") return \"z. B. /blog/\"\n\n  if (mode === \"endsWith\") return \"z. B. /kontakt\"\n\n  if (mode === \"exact\") return \"z. B. /impressum\"\n\n  if (mode === \"regex\") return \"z. B. ^/(blog|news)/\"\n\n  return \"z. B. /blog\"\n}\n\nexport const getSelectValue = (event: Event): string => {\n  const detail = (event as CustomEvent<{ value?: string } | string>).detail\n\n  if (typeof detail === \"string\") return detail\n\n  if (detail && typeof detail === \"object\" && typeof detail.value === \"string\") return detail.value\n\n  const target = event.target as HTMLInputElement | null\n\n  return target?.value ?? \"\"\n}\n\nconst urlSchemePattern = /^[a-z][a-z\\d+.-]*:\\/\\//iu\nconst ipv4Pattern = /^\\d{1,3}(?:\\.\\d{1,3}){3}$/u\n\nconst isIpv4Literal = (hostname: string): boolean => {\n  if (!ipv4Pattern.test(hostname)) return false\n\n  return hostname.split(\".\").every((part) => {\n    const value = Number.parseInt(part, 10)\n\n    return Number.isInteger(value) && value >= 0 && value <= 255\n  })\n}\n\nconst isIpLiteral = (hostname: string): boolean => {\n  const normalized = hostname.replace(/^\\[/u, \"\").replace(/\\]$/u, \"\").toLowerCase()\n\n  return isIpv4Literal(normalized) || normalized.includes(\":\")\n}\n\nconst isLocalHostname = (hostname: string): boolean => {\n  const normalized = hostname.toLowerCase()\n\n  return normalized === \"localhost\" || normalized.endsWith(\".localhost\")\n}\n\nexport const normalizeDomain = (value: string): string | null => {\n  const trimmed = value.trim()\n\n  if (!trimmed) return null\n\n  const candidate = urlSchemePattern.test(trimmed) ? trimmed : `https://${trimmed}`\n  try {\n    const parsed = new URL(candidate)\n\n    if (!parsed.hostname) return null\n\n    if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return null\n\n    if (parsed.username || parsed.password) return null\n\n    const hostname = parsed.hostname.toLowerCase().replace(/\\.$/u, \"\")\n\n    if (!hostname) return null\n\n    if (isLocalHostname(hostname) || isIpLiteral(hostname)) return null\n\n    const port = parsed.port.trim()\n\n    if (!port) return hostname\n\n    const isDefaultPort =\n      (parsed.protocol === \"http:\" && port === \"80\") ||\n      (parsed.protocol === \"https:\" && port === \"443\")\n\n    return isDefaultPort ? hostname : `${hostname}:${port}`\n  } catch {\n    return null\n  }\n}\n\nexport const validateDomain = (\n  value: string | number | boolean | null | undefined,\n): string | null => {\n  const rawValue = typeof value === \"string\" ? value : `${value ?? \"\"}`\n\n  if (!rawValue.trim()) return \"Dieses Feld ist erforderlich.\"\n\n  return normalizeDomain(rawValue)\n    ? null\n    : \"Bitte eine gültige Domain angeben (z. B. kontextwerk.agency). Pfade werden automatisch entfernt.\"\n}\n","<script lang=\"ts\">\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import CardWrapper from \"@kontextwerk/web-sdk/ui/layout/CardWrapper.svelte\"\n  import FormWrapper, { type FormContext } from \"@kontextwerk/web-sdk/ui/layout/FormWrapper.svelte\"\n  import { validateField, validateInput } from \"@kontextwerk/web-sdk/core/forms/formValidation\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import type {\n    ClassificationRule,\n    DomainCreatePayload,\n    DomainRecord,\n    DomainUpdatePayload,\n  } from \"../../../../../../../../_shared/_logic/scraping\"\n  import { mdiCloseCircleOutline, mdiPlusCircleOutline } from \"@mdi/js\"\n  import {\n    crawlIntervalOptions,\n    NEVER_INTERVAL_SECONDS,\n    parseIntervalInput,\n    withCustomIntervalOption,\n  } from \"../../../../../../../../_shared/_logic/interval-options\"\n  import { availableProjects } from \"../../../../../../../../../_shared/_logic/organizations\"\n  import ScopeSelectionRow from \"../../../../../../../../../_shared/_modules/scope-selection-row\"\n  import {\n    buildScopeProjectOptions,\n    buildScopeRealizationOptions,\n    decodeScopeRealizationRef,\n    encodeScopeRealizationRef,\n    resolveDefaultScopeProjectId,\n    resolveDefaultScopeRealizationRef,\n    SCOPE_LEVEL_OPTIONS,\n    type ScopeSelectableProject,\n  } from \"../../../../../../../../../_shared/_logic/scope-selection\"\n  import type { FormData, RuleDraft, RuleMatchMode, ScopeProject } from \"./_logic/types\"\n  import {\n    buildPatternFromRule,\n    createRuleDraft,\n    getRuleValuePlaceholder,\n    getSelectValue,\n    normalizeDomain,\n    parsePatternToDraft,\n    validateDomain,\n  } from \"./_logic/rules\"\n\n  let {\n    projectId: _projectId = null as string | null,\n    organizationId = null as string | null,\n    projects: _projects = [] as ScopeProject[],\n    onSubmit,\n    onUpdateDomain = null as\n      | ((payload: DomainUpdatePayload, domain: DomainRecord) => void | Promise<void>)\n      | null,\n    onUpdateInterval = null as\n      | ((intervalSeconds: number, domain: DomainRecord) => void | Promise<void>)\n      | null,\n    onCancel,\n    defaultRealizationId: _defaultRealizationId = null as string | null,\n    defaultScope: _defaultScope = \"organization\" as \"organization\" | \"project\" | \"realization\",\n    title = null as string | null,\n    submitLabel = null as string | null,\n    readOnly = false,\n    allowIntervalEdit = false,\n    allowScopeEdit = false,\n    initialDomain = null as DomainRecord | null,\n  }: {\n    projectId: string | null\n    organizationId?: string | null\n    projects?: ScopeProject[]\n    defaultRealizationId?: string | null\n    defaultScope?: \"organization\" | \"project\" | \"realization\"\n    onSubmit?: (payload: DomainCreatePayload) => void\n    onUpdateDomain?: (payload: DomainUpdatePayload, domain: DomainRecord) => void | Promise<void>\n    onUpdateInterval?: (intervalSeconds: number, domain: DomainRecord) => void | Promise<void>\n    onCancel?: () => void\n    title?: string | null\n    submitLabel?: string | null\n    readOnly?: boolean\n    allowIntervalEdit?: boolean\n    allowScopeEdit?: boolean\n    initialDomain?: DomainRecord | null\n  } = $props()\n\n  const ruleModeOptions = [\n    { name: \"Pfad enthält\", value: \"contains\" },\n    { name: \"Pfad beginnt mit\", value: \"startsWith\" },\n    { name: \"Pfad endet mit\", value: \"endsWith\" },\n    { name: \"Pfad ist genau\", value: \"exact\" },\n    { name: \"Erweitert (Regex)\", value: \"regex\" },\n  ]\n\n  const buildFormDataFromDomain = (domain: DomainRecord | null): FormData => {\n    if (!domain) {\n      return {\n        domain: \"\",\n        scope: \"organization\",\n        scopeProjectId: \"\",\n        scopeRealizationRef: \"\",\n        defaultPageType: \"\",\n        defaultListTypes: \"\",\n        crawlInterval: `${NEVER_INTERVAL_SECONDS}`,\n        rules: [],\n      }\n    }\n\n    const currentProjectId = (domain.project_id ?? \"\").trim()\n    const currentRealization = (domain.realization_id ?? \"\").trim()\n\n    return {\n      domain: domain.domain ?? \"\",\n      scope:\n        domain.scope === \"project\" ||\n        domain.scope === \"realization\" ||\n        domain.scope === \"organization\"\n          ? domain.scope\n          : \"organization\",\n      scopeProjectId: currentProjectId,\n      scopeRealizationRef:\n        currentProjectId && currentRealization ? `${currentProjectId}::${currentRealization}` : \"\",\n      defaultPageType: domain.default_page_type ?? \"\",\n      defaultListTypes: (domain.default_list_types ?? []).join(\", \"),\n      crawlInterval: `${domain.crawl_interval_seconds ?? NEVER_INTERVAL_SECONDS}`,\n      rules: (domain.classification_rules ?? []).map<RuleDraft>((rule) => ({\n        ...parsePatternToDraft(rule.pattern),\n        listTypes: (rule.listTypes ?? []).join(\", \"),\n        pageType: rule.pageType ?? \"\",\n      })),\n    }\n  }\n\n  const getInitObject = (): FormData => buildFormDataFromDomain(initialDomain)\n\n  const fieldIds = {\n    domain: \"scraping-domain\",\n    scope: \"scraping-scope\",\n    scopeProjectId: \"scraping-scope-project\",\n    scopeRealizationRef: \"scraping-scope-realization\",\n    crawlInterval: \"scraping-crawl-interval\",\n    defaultPageType: \"scraping-default-page-type\",\n    defaultListTypes: \"scraping-default-list-types\",\n    rules: {\n      matchMode: (index: number) => `scraping-rule-${index}-mode`,\n      matchValue: (index: number) => `scraping-rule-${index}-value`,\n      pageType: (index: number) => `scraping-rule-${index}-page-type`,\n      listTypes: (index: number) => `scraping-rule-${index}-list-types`,\n    },\n  }\n\n  const canEditScope = $derived(Boolean(allowScopeEdit || onUpdateDomain))\n  const canEditInterval = $derived(Boolean(allowIntervalEdit || onUpdateDomain))\n  const isViewOnly = $derived(readOnly && !canEditInterval && !canEditScope)\n  const scopedProjects = $derived.by(() => {\n    const baseProjects =\n      _projects.length > 0\n        ? (_projects as ScopeSelectableProject[])\n        : (($availableProjects ?? []) as ScopeSelectableProject[])\n\n    return baseProjects.filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    )\n  })\n  const scopeProjectOptions = $derived(buildScopeProjectOptions(scopedProjects, organizationId))\n  const scopeRealizationOptions = $derived(\n    buildScopeRealizationOptions(scopedProjects, organizationId),\n  )\n\n  let resetToken = $state(0)\n  const reinitKey = $derived(\n    `${_projectId ?? \"none\"}-${organizationId ?? \"none\"}-${_defaultRealizationId ?? \"none\"}-${initialDomain?.id ?? \"new\"}-${resetToken}-${isViewOnly ? \"view\" : \"edit\"}`,\n  )\n\n  const effectiveSubmitLabel = $derived(submitLabel ?? (isViewOnly ? \"Schließen\" : \"Speichern\"))\n  const formMode = $derived(isViewOnly ? \"view\" : \"create\")\n\n  const validateDomainForm = ({ data }: { data: FormData; form: HTMLFormElement | null }) => {\n    if (isViewOnly) return true\n\n    let valid = true\n    const isExistingDomain = Boolean(initialDomain?.id)\n\n    if (!isExistingDomain) {\n      if (!organizationId) {\n        newNotification({ class: \"error\", html: \"Organisation fehlt. Bitte erneut laden.\" })\n\n        return false\n      }\n\n      const requiredFields = [\n        { id: fieldIds.domain, value: data.domain, validator: validateDomain },\n      ]\n      for (const { id, value, validator } of requiredFields) {\n        if (!validateField(id, value, validator)) valid = false\n      }\n    }\n\n    if (!isExistingDomain || canEditScope) {\n      if (!validateField(fieldIds.scope, data.scope, validateInput)) valid = false\n\n      if (data.scope === \"project\") {\n        if (!validateField(fieldIds.scopeProjectId, data.scopeProjectId, validateInput))\n          valid = false\n      }\n\n      if (data.scope === \"realization\") {\n        if (!validateField(fieldIds.scopeRealizationRef, data.scopeRealizationRef, validateInput))\n          valid = false\n      }\n    }\n\n    if (!isExistingDomain || canEditInterval) {\n      const intervalSeconds = Number.parseInt(data.crawlInterval, 10)\n      const intervalValid =\n        Number.isFinite(intervalSeconds) &&\n        intervalSeconds >= 0 &&\n        (intervalSeconds === 0 || intervalSeconds >= 300)\n\n      if (!intervalValid) {\n        if (\n          !validateField(\n            fieldIds.crawlInterval,\n            data.crawlInterval,\n            () => \"Bitte ein Intervall auswählen. 0 = Nie, ansonsten mindestens 300 Sekunden.\",\n          )\n        ) {\n          valid = false\n        }\n      }\n    }\n\n    if (!isExistingDomain) {\n      data.rules.forEach((rule, index) => {\n        const value = rule.matchValue.trim()\n\n        if (!value) return\n\n        if (rule.matchMode !== \"regex\") return\n\n        try {\n          new RegExp(value, \"i\")\n        } catch {\n          if (\n            !validateField(\n              fieldIds.rules.matchValue(index),\n              value,\n              () => \"Ungültiger Regex-Ausdruck. Bitte prüfen oder Regeltyp ändern.\",\n            )\n          ) {\n            valid = false\n          }\n        }\n      })\n    }\n\n    return valid\n  }\n\n  const validateDomainFormProxy = (args: {\n    data: Record<string, unknown>\n    form: HTMLFormElement | null\n  }) =>\n    validateDomainForm({\n      data: args.data as FormData,\n      form: args.form,\n    })\n\n  const handleSubmit = async (data: FormData) => {\n    if (isViewOnly) {\n      onCancel?.()\n\n      return\n    }\n\n    const intervalSeconds = parseIntervalInput(data.crawlInterval)\n    const effectiveInterval =\n      intervalSeconds === 0 || intervalSeconds >= 300 ? intervalSeconds : NEVER_INTERVAL_SECONDS\n\n    const scope = (data.scope ?? \"organization\") as \"organization\" | \"project\" | \"realization\"\n    const organizationIdentifier = (\n      organizationId ??\n      initialDomain?.organization_id ??\n      initialDomain?.tenant_id ??\n      \"\"\n    ).trim()\n\n    if (!organizationIdentifier) {\n      newNotification({ class: \"error\", html: \"Organisation fehlt. Bitte erneut laden.\" })\n\n      return\n    }\n\n    const scopedRealization = decodeScopeRealizationRef(data.scopeRealizationRef)\n    const projectIdentifier =\n      scope === \"project\"\n        ? data.scopeProjectId.trim()\n        : scope === \"realization\"\n          ? scopedRealization.projectId\n          : \"\"\n    const realizationId = scope === \"realization\" ? scopedRealization.realizationId || null : null\n\n    if (initialDomain?.id && onUpdateDomain) {\n      const updatePayload: DomainUpdatePayload = {\n        project_id: scope === \"organization\" ? null : projectIdentifier || null,\n        realization_id: realizationId,\n        scope,\n        crawl_interval_seconds: effectiveInterval,\n      }\n      try {\n        await onUpdateDomain(updatePayload, initialDomain)\n        resetToken += 1\n      } catch {\n        return\n      }\n\n      return\n    }\n\n    if (allowIntervalEdit && initialDomain?.id) {\n      if (!onUpdateInterval) {\n        newNotification({ class: \"error\", html: \"Update nicht möglich – kein Handler hinterlegt.\" })\n\n        return\n      }\n\n      try {\n        await onUpdateInterval(effectiveInterval, initialDomain)\n        resetToken += 1\n      } catch {\n        return\n      }\n\n      return\n    }\n\n    const classificationRules = data.rules\n      .map<ClassificationRule | null>((rule) => {\n        const pattern = buildPatternFromRule(rule)\n\n        if (!pattern) return null\n\n        return {\n          pattern,\n          listTypes: rule.listTypes\n            .split(\",\")\n            .map((value) => value.trim())\n            .filter(Boolean),\n          pageType: rule.pageType.trim() || undefined,\n          ignoreCase: true,\n        }\n      })\n      .filter((rule): rule is ClassificationRule => Boolean(rule))\n    const normalizedDomain = normalizeDomain(data.domain)\n\n    if (!normalizedDomain) {\n      validateField(fieldIds.domain, data.domain, validateDomain)\n\n      return\n    }\n\n    const payload: DomainCreatePayload = {\n      organization_id: organizationIdentifier,\n      project_id: scope === \"organization\" ? null : projectIdentifier || null,\n      realization_id: realizationId,\n      scope,\n      domain: normalizedDomain,\n      crawl_interval_seconds: effectiveInterval,\n      default_page_type: data.defaultPageType.trim() || undefined,\n      default_list_types: data.defaultListTypes\n        .split(\",\")\n        .map((value) => value.trim())\n        .filter(Boolean),\n      classification_rules: classificationRules,\n    }\n\n    await onSubmit?.(payload)\n    resetToken += 1\n  }\n\n  const handleSubmitProxy = async (data: Record<string, unknown>) => handleSubmit(data as FormData)\n\n  const addRule = (data: FormData, setData: (next: FormData) => void) => {\n    if (readOnly) return\n\n    setData({ ...data, rules: [...data.rules, createRuleDraft()] })\n  }\n\n  const removeRule = (index: number, data: FormData, setData: (next: FormData) => void) => {\n    if (readOnly) return\n\n    setData({ ...data, rules: data.rules.filter((_, i) => i !== index) })\n  }\n\n  const updateRule = (\n    index: number,\n    patch: Partial<RuleDraft>,\n    data: FormData,\n    setData: (next: FormData) => void,\n  ) => {\n    const nextRules = data.rules.map((rule, i) => (i === index ? { ...rule, ...patch } : rule))\n    setData({ ...data, rules: nextRules })\n  }\n\n  const getIntervalOptions = (value: string) =>\n    withCustomIntervalOption(value, crawlIntervalOptions)\n</script>\n\n<FormWrapper\n  theme=\"light\"\n  mode={formMode}\n  {getInitObject}\n  {reinitKey}\n  validateData={validateDomainFormProxy}\n  onSubmit={handleSubmitProxy}\n  submitLabel={effectiveSubmitLabel}\n  submitButtonTestId=\"indexAdmin.scraping.domain.submitButton\"\n  showReset={false}\n  formSnippet={formContent}\n  actionButtonSnippet={isViewOnly ? undefined : actionButtons}\n/>\n\n{#snippet formContent({ data, setData, submitting }: FormContext<FormData>)}\n    <div class=\"row many\">\n        <Input\n      id={fieldIds.domain}\n      placeholder=\"z. B. kontextwerk.agency\"\n      bind:value={data.domain}\n      disabled={submitting || readOnly || Boolean(initialDomain?.id)}\n      tooltip=\"Start-Domain für den Website-Index. Es wird nur die Domain gespeichert, ohne Pfad oder Query.\"\n      dataTestid=\"indexAdmin.scraping.domain.input\"\n    />\n\n        <Input\n      id={fieldIds.crawlInterval}\n      placeholder=\"Index Intervall\"\n      type=\"select\"\n      bind:value={data.crawlInterval}\n      options={getIntervalOptions(data.crawlInterval)}\n      disabled={submitting || (readOnly && !canEditInterval)}\n      tooltip=\"Gibt an, in welchem Intervall die Domain erneut indiziert wird. 'Nie' deaktiviert Recrawls.\"\n      dataTestid=\"indexAdmin.scraping.domain.intervalInput\"\n    />\n    </div>\n\n    {#if !isViewOnly || canEditScope}\n        <ScopeSelectionRow\n      scopeId={fieldIds.scope}\n      projectIdField={fieldIds.scopeProjectId}\n      realizationIdField={fieldIds.scopeRealizationRef}\n      scope={data.scope}\n      projectId={data.scopeProjectId}\n      realizationRef={data.scopeRealizationRef}\n      scopeOptions={SCOPE_LEVEL_OPTIONS}\n      projectOptions={scopeProjectOptions}\n      realizationOptions={scopeRealizationOptions}\n      scopePlaceholder=\"Ebene\"\n      projectPlaceholder=\"Agent\"\n      realizationPlaceholder=\"Agent (Sprache)\"\n      scopeTooltip=\"Legt fest, ob die Domain organisationsweit, für einen Agenten oder nur für eine Sprache im Index gilt.\"\n      projectTooltip=\"Wählen Sie den Agenten aus, für den diese Domain gelten soll.\"\n      realizationTooltip=\"Wählen Sie die Sprache aus, für die diese Domain gelten soll.\"\n      disabled={submitting || readOnly}\n      onScopeChange={(nextScope: \"organization\" | \"project\" | \"realization\" | \"global\") => {\n        if (nextScope === \"project\") {\n          setData({\n            ...data,\n            scope: \"project\",\n            scopeProjectId: resolveDefaultScopeProjectId(\n              scopeProjectOptions,\n              data.scopeProjectId || _projectId,\n            ),\n            scopeRealizationRef: \"\",\n          })\n\n          return\n        }\n\n        if (nextScope === \"realization\") {\n          const nextRealizationRef = resolveDefaultScopeRealizationRef(\n            scopeRealizationOptions,\n            data.scopeProjectId || _projectId,\n            decodeScopeRealizationRef(data.scopeRealizationRef).realizationId ||\n              _defaultRealizationId,\n          )\n          setData({\n            ...data,\n            scope: \"realization\",\n            scopeProjectId: decodeScopeRealizationRef(nextRealizationRef).projectId,\n            scopeRealizationRef: nextRealizationRef,\n          })\n\n          return\n        }\n\n        setData({\n          ...data,\n          scope: \"organization\",\n          scopeProjectId: \"\",\n          scopeRealizationRef: \"\",\n        })\n      }}\n      onProjectChange={(nextProjectId: string) =>\n        setData({\n          ...data,\n          scopeProjectId: nextProjectId,\n        })}\n      onRealizationChange={(nextRealizationRef: string) =>\n        setData({\n          ...data,\n          scopeProjectId: decodeScopeRealizationRef(nextRealizationRef).projectId,\n          scopeRealizationRef: nextRealizationRef,\n        })}\n    />\n    {/if}\n\n    <SectionTitle small={true} title=\"Regeln\" helpModalTextId=\"indexAdminScrapingRules\">\n        {#snippet buttonSnippet()}\n            {#if !readOnly}\n                <CTA\n          content=\"Regel hinzufügen\"\n          type=\"secondaryButton\"\n          icon={mdiPlusCircleOutline}\n          onClick={() => addRule(data, setData)}\n          disabled={submitting || readOnly}\n          dataTestid=\"indexAdmin.scraping.domain.addRuleButton\"\n        />\n            {/if}\n        {/snippet}\n    </SectionTitle>\n\n    <div class=\"row single\">\n        <div class=\"rules-card-content\">\n            {#if data.rules.length === 0}\n                <p class=\"rules-empty\">\n                    Ohne Regeln werden alle Unterseiten der Domain in den Index aufgenommen. Regeln erlauben, die\n                    Unterseiten zu filtern.\n                </p>\n            {/if}\n            {#each data.rules as rule, index (index)}\n                <CardWrapper\n          white={true}\n          onDelete={readOnly ? undefined : () => removeRule(index, data, setData)}\n        >\n                    {#snippet header()}\n                        <SectionTitle small={true} title={`Regel ${index + 1}`} />\n                    {/snippet}\n                    <div class=\"row many\" style=\"padding: 0.6rem;\">\n                        <Input\n              id={fieldIds.rules.matchMode(index)}\n              placeholder=\"Regeltyp\"\n              type=\"select\"\n              bind:value={data.rules[index].matchMode}\n              options={ruleModeOptions}\n              disabled={submitting || readOnly}\n              tooltip=\"Wie der URL-Pfad abgeglichen wird.\"\n              onChange={(event) =>\n                updateRule(\n                  index,\n                  { matchMode: (getSelectValue(event) as RuleMatchMode) || \"contains\" },\n                  data,\n                  setData,\n                )}\n            />\n                        <Input\n              id={fieldIds.rules.matchValue(index)}\n              placeholder={getRuleValuePlaceholder(data.rules[index].matchMode)}\n              bind:value={data.rules[index].matchValue}\n              disabled={submitting || readOnly}\n              tooltip=\"Der zu prüfende Pfadteil. Beispiel: /blog oder /produkte. Groß / Kleinschreibung ist egal.\"\n              onChange={(event) =>\n                updateRule(\n                  index,\n                  { matchValue: (event.currentTarget as HTMLInputElement).value },\n                  data,\n                  setData,\n                )}\n            />\n                    </div>\n                </CardWrapper>\n            {/each}\n        </div>\n    </div>\n{/snippet}\n\n{#snippet actionButtons({ submitting }: FormContext<FormData>)}\n    <CTA\n    content=\"Abbrechen\"\n    type=\"secondaryButton\"\n    onClick={() => onCancel?.()}\n    icon={mdiCloseCircleOutline}\n    disabled={submitting}\n    dataTestid=\"indexAdmin.scraping.domain.cancelButton\"\n  />\n{/snippet}\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .rules-card-content {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));\n    gap: 1rem;\n    padding: 1rem 0px;\n  }\n\n  .rules-empty {\n    margin: 0;\n    color: var(--text-100);\n  }\n\n  .row {\n    padding: 0;\n  }\n</style>\n","import { baseAPIURL, buildServiceHeaders } from \"../../../../../_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../../_logic/index-api-transport\"\nimport type { ChunkScopeType } from \"../../../../../_logic/chunks\"\n\nexport type IndexedDocumentDetail = {\n  index_item_id?: string | null\n  indexed_document_id: string\n  data_id: string\n  data_label?: string | null\n  source_id?: string | null\n  scope?: ChunkScopeType | null\n  source_uri?: string | null\n  canonical_uri?: string | null\n  page_type?: string | null\n  chunk_count: number\n  chunk_variants: string[]\n  total_word_count: number | null\n  average_word_count: number | null\n  document_available: boolean\n  document_word_count: number | null\n  document_segment_count: number | null\n}\n\nexport type IndexedDocumentDocument = {\n  index_item_id?: string | null\n  indexed_document_id: string\n  data_id: string\n  data_label?: string | null\n  source_id?: string | null\n  scope?: ChunkScopeType | null\n  source_uri?: string | null\n  canonical_uri?: string | null\n  page_type?: string | null\n  document_available: boolean\n  total_word_count: number\n  segment_count: number\n  text: string\n}\n\nconst readJson = async <T>(response: Response, label: string): Promise<T> => {\n  if (!response.ok) {\n    await throwResponseError(response, `${label} konnte nicht geladen werden`)\n  }\n\n  return (await response.json()) as T\n}\n\nexport async function fetchIndexedDocumentDetail(\n  indexItemId: string,\n): Promise<IndexedDocumentDetail> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${baseAPIURL}/admin/indexed-items/${encodeURIComponent(indexItemId)}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dokumentdetails konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  return readJson<IndexedDocumentDetail>(response, \"Dokumentdetails\")\n}\n\nexport async function fetchIndexedDocumentDocument(\n  indexItemId: string,\n): Promise<IndexedDocumentDocument> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${baseAPIURL}/admin/indexed-items/${encodeURIComponent(indexItemId)}/document`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Dokument konnte nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  return readJson<IndexedDocumentDocument>(response, \"Dokument\")\n}\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import type { Snippet } from \"svelte\"\n  import { Circle } from \"svelte-loading-spinners\"\n\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { mdiChevronDown } from \"@mdi/js\"\n  import CardWrapper from \"@kontextwerk/web-sdk/ui/layout/CardWrapper.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import {\n    encodeIndexItemId,\n    fetchChunkEntries,\n    type ChunkRecord,\n    type ChunkScopeType,\n  } from \"../../../../_logic/chunks\"\n  import { formatNumber } from \"../../../../_logic/metrics-utils\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    realizationId = null,\n    indexItemId = null,\n    dataId = null,\n    sourceId = null,\n    scope = null,\n    dataLabel = null,\n    brightBackground = false,\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: {\n    projectId?: string | null\n    organizationId?: string | null\n    realizationId?: string | null\n    indexItemId?: string | null\n    dataId?: string | null\n    sourceId?: string | null\n    scope?: ChunkScopeType | null\n    dataLabel?: string | null\n    brightBackground?: boolean\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  } = $props()\n\n  const PAGE_SIZE = 12\n\n  let entries = $state<ChunkRecord[]>([])\n  let offset = $state(0)\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let hasMore = $state(false)\n\n  type ChunkGroup = {\n    key: string\n    label: string\n    totalChunks: number | null\n    chunkVariants: string[]\n    entries: ChunkRecord[]\n  }\n\n  const normalizeLabel = (value: string | null | undefined): string | null => {\n    const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n    return normalized || null\n  }\n\n  const chunkRecordKey = (entry: ChunkRecord) =>\n    normalizeLabel(entry.id) ??\n    [\n      normalizeLabel(entry.data_id) ?? \"unknown-data\",\n      normalizeLabel(entry.source_id) ?? \"unknown-source\",\n      normalizeLabel(entry.chunk_variant) ?? \"default\",\n      typeof entry.chunk_index === \"number\" ? String(entry.chunk_index) : \"no-index\",\n    ].join(\"::\")\n\n  const dedupeChunkEntries = (items: ChunkRecord[]) => {\n    const seen = new Set<string>()\n    const result: ChunkRecord[] = []\n    for (const item of items) {\n      const key = chunkRecordKey(item)\n\n      if (seen.has(key)) continue\n\n      seen.add(key)\n      result.push(item)\n    }\n\n    return result\n  }\n\n  const mergeChunkEntries = (current: ChunkRecord[], incoming: ChunkRecord[]) => {\n    if (!current.length) return dedupeChunkEntries(incoming)\n\n    return dedupeChunkEntries([...current, ...incoming])\n  }\n\n  const resolveIndexItemId = () => {\n    const explicit = typeof indexItemId === \"string\" ? indexItemId.trim() : \"\"\n\n    if (explicit) return explicit\n\n    const normalizedDataId = typeof dataId === \"string\" ? dataId.trim() : \"\"\n\n    if (!normalizedDataId) return null\n\n    return encodeIndexItemId({\n      projectId,\n      organizationId,\n      realizationId,\n      scope,\n      sourceId,\n      dataId: normalizedDataId,\n    })\n  }\n\n  const resolvedIndexItemId = $derived.by(resolveIndexItemId)\n\n  const computeHasMore = (\n    result: { has_more?: boolean; items: ChunkRecord[]; total?: number | null },\n    newOffset: number,\n  ) =>\n    Boolean(\n      result.has_more ||\n      (typeof result.total === \"number\" && newOffset < (result.total ?? 0)) ||\n      result.items.length >= PAGE_SIZE,\n    )\n\n  const loadEntries = async (reset = false) => {\n    if (!projectId && !organizationId) {\n      error = \"Projekt- oder Organisationskontext fehlt.\"\n\n      return\n    }\n\n    if (!resolvedIndexItemId) {\n      error = \"Chunk-Kontext ist unvollständig.\"\n\n      return\n    }\n\n    const nextOffset = reset ? 0 : offset\n    loading = true\n    error = null\n    try {\n      const result = await fetchChunkEntries(projectId, {\n        indexItemId: resolvedIndexItemId,\n        limit: PAGE_SIZE,\n        offset: nextOffset,\n      })\n      entries = reset ? dedupeChunkEntries(result.items) : mergeChunkEntries(entries, result.items)\n      const newOffset = nextOffset + result.items.length\n      offset = newOffset\n      hasMore = computeHasMore(result, newOffset)\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      loading = false\n    }\n  }\n\n  const chunkLabel = (entry: ChunkRecord) => {\n    const idx = typeof entry.chunk_index === \"number\" ? entry.chunk_index + 1 : null\n    const total = entry.chunk_count ?? null\n\n    if (idx === null && total === null) return \"Chunk\"\n\n    if (idx !== null && total !== null) return `Chunk ${idx} / ${total}`\n\n    if (idx !== null) return `Chunk ${idx}`\n\n    return \"Chunk\"\n  }\n\n  const entryGroups = $derived.by(() => {\n    const groups: ChunkGroup[] = []\n    for (const entry of entries) {\n      const key = normalizeLabel(entry.data_id) ?? entry.id\n      const label =\n        normalizeLabel(entry.data_label) ??\n        normalizeLabel(entry.data_id) ??\n        normalizeLabel(dataLabel) ??\n        \"Unbekannte Quelle\"\n      const chunkTotal = typeof entry.chunk_count === \"number\" ? entry.chunk_count : null\n      const existing = groups.find((group) => group.key === key)\n\n      if (existing) {\n        existing.entries.push(entry)\n        existing.totalChunks =\n          chunkTotal == null\n            ? existing.totalChunks\n            : Math.max(existing.totalChunks ?? 0, chunkTotal)\n\n        if (\n          (entry.chunk_variant === \"chatbot\" || entry.chunk_variant === \"voicebot\") &&\n          !existing.chunkVariants.includes(entry.chunk_variant)\n        ) {\n          existing.chunkVariants = [...existing.chunkVariants, entry.chunk_variant]\n        }\n\n        continue\n      }\n\n      groups.push({\n        key,\n        label,\n        totalChunks: chunkTotal,\n        chunkVariants:\n          entry.chunk_variant === \"chatbot\" || entry.chunk_variant === \"voicebot\"\n            ? [entry.chunk_variant]\n            : [],\n        entries: [entry],\n      })\n    }\n\n    return groups\n  })\n\n  const hasMultipleDocuments = $derived(entryGroups.length > 1)\n  const resolvedDataLabel = $derived.by(\n    () =>\n      normalizeLabel(dataLabel) ??\n      (entryGroups.length === 1 ? (entryGroups[0]?.label ?? null) : null),\n  )\n\n  const scopeStatus = (entryScope?: ChunkScopeType | null) => {\n    const effectiveScope = entryScope\n\n    if (effectiveScope === \"organization\") {\n      return { value: \"organization\", label: \"Organisation\", color: \"indigo\" as const }\n    }\n\n    if (effectiveScope === \"realization\") {\n      return { value: \"realization\", label: \"Sprache\", color: \"teal\" as const }\n    }\n\n    if (effectiveScope === \"project\") {\n      return { value: \"project\", label: \"Agent\", color: \"blue\" as const }\n    }\n\n    if (organizationId) {\n      return { value: \"organization\", label: \"Organisation\", color: \"indigo\" as const }\n    }\n\n    if (realizationId) {\n      return { value: \"realization\", label: \"Sprache\", color: \"teal\" as const }\n    }\n\n    return { value: \"project\", label: \"Agent\", color: \"blue\" as const }\n  }\n\n  const formatWords = (value: number | null | undefined) =>\n    value == null ? \"–\" : `${formatNumber(value)} Wörter`\n\n  const chunkVariantStatus = (variant?: string | null) => {\n    if (variant === \"voicebot\") {\n      return { value: \"voicebot\", label: \"Voice\", color: \"orange\" as const }\n    }\n\n    return { value: \"chatbot\", label: \"Chat\", color: \"green\" as const }\n  }\n\n  onMount(() => {\n    onshowOverlay?.()\n    setActionButtonSnippet?.(null)\n    void loadEntries(true)\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n</script>\n\n{#snippet renderEntry(entry: ChunkRecord)}\n    <CardWrapper white={!brightBackground}>\n        {#snippet header()}\n            <div class=\"card-header\">\n                <span class=\"label\"></span>\n            </div>\n            <SectionTitle title={`Quelle: ${entry.source_id} ${chunkLabel(entry)}`} small={true}>\n                {#snippet buttonSnippet()}\n                    <div class=\"meta-tags\">\n                        <StatusTag size=\"sm\" status={scopeStatus(entry.scope)} />\n                        {#if entry.chunk_variant === \"chatbot\" || entry.chunk_variant === \"voicebot\"}\n                            <StatusTag size=\"sm\" status={chunkVariantStatus(entry.chunk_variant)} />\n                        {/if}\n                        <StatusTag size=\"sm\" label={formatWords(entry.word_count)} color=\"blue\" />\n                    </div>\n                {/snippet}\n            </SectionTitle>\n        {/snippet}\n        <div class=\"card-body\" data-testid={`indexAdmin.chunkList.entry.${entry.id}`}>\n            {entry.text ?? \"Kein Text hinterlegt.\"}\n        </div>\n    </CardWrapper>\n{/snippet}\n\n<div class=\"chunk-list\" data-testid=\"indexAdmin.chunkList\">\n    {#if hasMultipleDocuments}\n        {#each entryGroups as group (group.key)}\n            <section class=\"document-group\" data-testid={`indexAdmin.chunkList.group.${group.key}`}>\n                <SectionTitle title={group.label} small={true}>\n                    {#snippet buttonSnippet()}\n                        {#if group.totalChunks !== null}\n                            <StatusTag\n                size=\"sm\"\n                label={`${formatNumber(group.totalChunks)} Chunks`}\n                color=\"indigo\"\n              />\n                        {/if}\n                        {#each group.chunkVariants as chunkVariant (chunkVariant)}\n                            <StatusTag size=\"sm\" status={chunkVariantStatus(chunkVariant)} />\n                        {/each}\n                    {/snippet}\n                </SectionTitle>\n                <div class=\"document-group-entries\">\n                    {#each group.entries as entry (chunkRecordKey(entry))}\n                        {@render renderEntry(entry)}\n                    {/each}\n                </div>\n            </section>\n        {/each}\n    {:else}\n        {#each entries as entry (chunkRecordKey(entry))}\n            {@render renderEntry(entry)}\n        {/each}\n    {/if}\n\n    {#if !loading && !entries.length && !error}\n        <p class=\"muted\" data-testid=\"indexAdmin.chunkList.empty\">\n            Keine Chunks gefunden – möglicherweise noch nicht indiziert.\n        </p>\n    {/if}\n\n    {#if error}\n        <p class=\"error\" data-testid=\"indexAdmin.chunkList.error\"\n      >Chunks konnten nicht geladen werden: {error}</p\n    >\n    {/if}\n</div>\n\n{#if loading}\n    <div class=\"loading-state\" role=\"status\" aria-label=\"Chunks werden geladen\">\n        <Circle size=\"2\" color=\"var(--text-invers-100)\" unit=\"rem\" />\n    </div>\n{/if}\n\n{#if hasMore && !loading}\n    <div class=\"load-more\">\n        <CTA\n      type=\"secondaryButton\"\n      content=\"Mehr laden\"\n      icon={mdiChevronDown}\n      onClick={() => loadEntries(false)}\n    />\n    </div>\n{/if}\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .chunk-list {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n    min-width: 0;\n    width: 100%;\n    padding-right: 1.2rem;\n  }\n\n  .chunk-list :global(.card-wrapper) {\n    min-width: 0;\n    width: 100%;\n  }\n\n  .document-group {\n    display: flex;\n    flex-direction: column;\n    gap: 0.8rem;\n    padding: 0.2rem 0;\n  }\n\n  .document-group-entries {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .card-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 0.5rem;\n    color: var(--text-invers-100);\n  }\n\n  .card-body {\n    display: flex;\n    flex-direction: column;\n    gap: 0.4rem;\n    padding: 0.6rem;\n    color: var(--text-invers-100);\n    min-width: 0;\n    max-width: 100%;\n    white-space: pre-wrap;\n    overflow-wrap: anywhere;\n    word-break: break-word;\n  }\n\n  .meta-tags {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 0.4rem;\n    margin-right: 2rem;\n    max-width: 100%;\n  }\n\n  .muted {\n    color: color-mix(in srgb, var(--text-invers-100) 68%, transparent);\n  }\n\n  .error {\n    color: var(--danger-100);\n  }\n\n  .load-more {\n    display: flex;\n    justify-content: center;\n    margin-top: 0.4rem;\n    margin-bottom: 1.2rem;\n  }\n\n  .loading-state {\n    display: flex;\n    justify-content: center;\n    padding: 1rem 0;\n  }\n\n  @media @max-mobile {\n    .card-body {\n      padding: 0.45rem;\n    }\n\n    .meta-tags {\n      margin-right: 0.5rem;\n      justify-content: flex-end;\n      row-gap: 0.3rem;\n      column-gap: 0.3rem;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n\n  import {\n    fetchIndexedDocumentDocument,\n    type IndexedDocumentDocument,\n  } from \"../../_shared/_logic/indexed-documents\"\n  import { formatNumber } from \"../../../../_logic/metrics-utils\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { mdiOpenInNew } from \"@mdi/js\"\n\n  const {\n    indexItemId,\n    dataLabel = null,\n  }: {\n    indexItemId: string\n    dataLabel?: string | null\n  } = $props()\n\n  let document = $state<IndexedDocumentDocument | null>(null)\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n\n  const normalizeString = (value: string | null | undefined): string | null => {\n    const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n    return normalized || null\n  }\n\n  const title = $derived(\n    normalizeString(document?.data_label) ??\n      normalizeString(dataLabel) ??\n      normalizeString(document?.data_id) ??\n      \"Index-Dokument\",\n  )\n\n  const sourceUrl = $derived(normalizeString(document?.source_uri))\n  const canonicalUrl = $derived(normalizeString(document?.canonical_uri))\n\n  const scopeStatus = (value?: string | null) => {\n    if (value === \"organization\") return { value, label: \"Organisation\", color: \"indigo\" as const }\n\n    if (value === \"realization\") return { value, label: \"Sprache\", color: \"teal\" as const }\n\n    if (value === \"project\") return { value, label: \"Agent\", color: \"blue\" as const }\n\n    return { value: \"unknown\", label: \"Scope unbekannt\", color: \"slate\" as const }\n  }\n\n  const sourceStatus = (value?: string | null) => {\n    if (value === \"scraping\") return { value, label: \"Website\", color: \"green\" as const }\n\n    if (value === \"sharepoint\") return { value, label: \"SharePoint\", color: \"blue\" as const }\n\n    if (value === \"minio\") return { value, label: \"Datei\", color: \"orange\" as const }\n\n    if (value === \"answer-library\") return { value, label: \"FAQ\", color: \"teal\" as const }\n\n    return {\n      value: value ?? \"unknown\",\n      label: value ?? \"Quelle unbekannt\",\n      color: \"slate\" as const,\n    }\n  }\n\n  const loadDocument = async () => {\n    loading = true\n    error = null\n    try {\n      document = await fetchIndexedDocumentDocument(indexItemId)\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadDocument()\n  })\n</script>\n\n<div class=\"document-overlay\" data-testid=\"indexAdmin.indexedDocumentDocument\">\n    <SectionTitle {title} small={true} brightBackground={true}>\n        {#snippet buttonSnippet()}\n            <CTA\n        onClick={() => {\n          if (sourceUrl) window.open(sourceUrl, \"_blank\", \"noopener\")\n        }}\n        content=\"Öffnen\"\n        icon={mdiOpenInNew}\n        type=\"primaryButton\"\n        small={true}\n      />\n        {/snippet}\n    </SectionTitle>\n\n    {#if loading}\n        <div class=\"loading-state\" role=\"status\" aria-label=\"Vollständiges Dokument wird geladen\">\n            <Circle size=\"2\" color=\"var(--text-100)\" unit=\"rem\" />\n        </div>\n    {:else if error}\n        <p class=\"error\">Dokument konnte nicht geladen werden: {error}</p>\n    {:else if document && document.document_available && document.text}\n        <article style=\"white-space: pre-wrap; overflow-wrap: anywhere;\">\n            {document.text}\n        </article>\n    {:else}\n        <p class=\"muted\"\n      >Kein vollständiger Snapshot gespeichert. Prüfe die Chunk-Ansicht für Diagnosedaten.</p\n    >\n    {/if}\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .document-overlay {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    padding-right: 1.2rem;\n    color: var(--text-invers-100);\n    min-width: 0;\n  }\n\n  .tags,\n  .links {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 0.45rem;\n  }\n\n  .links a {\n    color: var(--primary-100);\n    font-weight: 700;\n  }\n\n  .muted {\n    color: var(--text-invers-100);\n  }\n\n  .error {\n    color: var(--danger-100);\n  }\n\n  .loading-state {\n    display: flex;\n    justify-content: center;\n    padding: 1.4rem 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import { mdiDatabaseSearch, mdiFileDocumentOutline } from \"@mdi/js\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import { openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n\n  import {\n    fetchIndexedDocumentDetail,\n    type IndexedDocumentDetail,\n  } from \"./_shared/_logic/indexed-documents\"\n  import { formatNumber } from \"../../_logic/metrics-utils\"\n  import ChunkListOverlay from \"./_modules/chunk-list-overlay\"\n  import IndexedDocumentDocumentOverlay from \"./_modules/indexed-document-document-overlay\"\n  import type { IndexedDocumentInspectorContext } from \"./types\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    realizationId = null,\n    indexItemId,\n    dataId = null,\n    sourceId = null,\n    scope = null,\n    dataLabel = null,\n    knownChunkCount = null,\n    knownTotalWordCount = null,\n    knownAverageWordCount = null,\n    knownChunkVariants = null,\n  }: IndexedDocumentInspectorContext & { indexItemId: string } = $props()\n\n  let detail = $state<IndexedDocumentDetail | null>(null)\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n\n  const normalizeString = (value: string | null | undefined): string | null => {\n    const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n    return normalized || null\n  }\n\n  const label = $derived(\n    normalizeString(detail?.data_label) ??\n      normalizeString(dataLabel) ??\n      normalizeString(detail?.data_id) ??\n      normalizeString(dataId) ??\n      \"Index-Dokument\",\n  )\n  const effectiveDataId = $derived(normalizeString(detail?.data_id) ?? normalizeString(dataId))\n  const effectiveSourceId = $derived(\n    normalizeString(detail?.source_id) ?? normalizeString(sourceId),\n  )\n  const effectiveScope = $derived(detail?.scope ?? scope)\n  const chunkCount = $derived(detail?.chunk_count ?? knownChunkCount ?? null)\n  const totalWordCount = $derived(detail?.total_word_count ?? knownTotalWordCount ?? null)\n  const averageWordCount = $derived(detail?.average_word_count ?? knownAverageWordCount ?? null)\n  const variants = $derived(\n    detail?.chunk_variants?.length ? detail.chunk_variants : (knownChunkVariants ?? []),\n  )\n\n  const sourceUrl = $derived(normalizeString(detail?.source_uri))\n  const canonicalUrl = $derived(normalizeString(detail?.canonical_uri))\n\n  const formatOptionalNumber = (value: number | null | undefined, fallback = \"Nicht verfügbar\") =>\n    typeof value === \"number\" && Number.isFinite(value) ? formatNumber(value) : fallback\n\n  const scopeStatus = (value?: string | null) => {\n    if (value === \"organization\") return { value, label: \"Organisation\", color: \"indigo\" as const }\n\n    if (value === \"realization\") return { value, label: \"Sprache\", color: \"teal\" as const }\n\n    if (value === \"project\") return { value, label: \"Agent\", color: \"blue\" as const }\n\n    return { value: \"unknown\", label: \"Scope unbekannt\", color: \"slate\" as const }\n  }\n\n  const sourceStatus = (value?: string | null) => {\n    if (value === \"scraping\") return { value, label: \"Website\", color: \"green\" as const }\n\n    if (value === \"sharepoint\") return { value, label: \"SharePoint\", color: \"blue\" as const }\n\n    if (value === \"minio\") return { value, label: \"Datei\", color: \"orange\" as const }\n\n    if (value === \"answer-library\") return { value, label: \"FAQ\", color: \"teal\" as const }\n\n    return {\n      value: value ?? \"unknown\",\n      label: value ?? \"Quelle unbekannt\",\n      color: \"slate\" as const,\n    }\n  }\n\n  const variantStatus = (value: string) => {\n    if (value === \"voicebot\") return { value, label: \"Voice\", color: \"orange\" as const }\n\n    if (value === \"chatbot\") return { value, label: \"Chat\", color: \"green\" as const }\n\n    return { value, label: value, color: \"blue\" as const }\n  }\n\n  const loadDetail = async () => {\n    loading = true\n    error = null\n    try {\n      detail = await fetchIndexedDocumentDetail(indexItemId)\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      loading = false\n    }\n  }\n\n  const openDocumentOverlay = () => {\n    if (!detail?.document_available) return\n\n    openOverlay({\n      title: `Dokument · ${label}`,\n      content: IndexedDocumentDocumentOverlay,\n      properties: {\n        indexItemId,\n        dataLabel: label,\n      },\n      closeOnParentOpen: false,\n    })\n  }\n\n  const openChunksOverlay = () => {\n    openOverlay({\n      title: `Chunks · ${label}`,\n      content: ChunkListOverlay,\n      properties: {\n        projectId,\n        organizationId,\n        realizationId,\n        indexItemId,\n        dataId: effectiveDataId,\n        sourceId: effectiveSourceId,\n        scope: effectiveScope,\n        dataLabel: label,\n        brightBackground: true,\n      },\n      closeOnParentOpen: false,\n    })\n  }\n\n  onMount(() => {\n    void loadDetail()\n  })\n</script>\n\n<div class=\"document-inspector\" data-testid=\"indexAdmin.indexedDocumentInspector\">\n    {#if error}\n        <p class=\"error\">Dokumentdetails konnten nicht geladen werden: {error}</p>\n    {/if}\n\n    <section class=\"metrics\">\n        <div class=\"metric-card\">\n            <span>Wörter gesamt</span>\n            <strong>{formatOptionalNumber(totalWordCount)}</strong>\n        </div>\n        <div class=\"metric-card\">\n            <span>Chunks</span>\n            <strong>{formatOptionalNumber(chunkCount)}</strong>\n        </div>\n        <div class=\"metric-card\">\n            <span>Ø Wörter/Chunk</span>\n            <strong>{formatOptionalNumber(averageWordCount)}</strong>\n        </div>\n        <div class=\"metric-card\">\n            <span>Dokument-Snapshot</span>\n            <strong>{detail?.document_available ? \"Verfügbar\" : \"Nicht verfügbar\"}</strong>\n        </div>\n    </section>\n\n    <section class=\"details\">\n        <SectionTitle title=\"Metadaten\" small={true} brightBackground={true} />\n        <dl class=\"metadata-grid\">\n            <div>\n                <dt>data_id</dt>\n                <dd>{effectiveDataId ?? \"Nicht verfügbar\"}</dd>\n            </div>\n            <div>\n                <dt>source_id</dt>\n                <dd>{effectiveSourceId ?? \"Nicht verfügbar\"}</dd>\n            </div>\n            <div>\n                <dt>Source-URL</dt>\n                <dd>\n                    {#if sourceUrl}\n                        <a href={sourceUrl} target=\"_blank\" rel=\"noreferrer\">{sourceUrl}</a>\n                    {:else}\n                        Nicht verfügbar\n                    {/if}\n                </dd>\n            </div>\n            <div>\n                <dt>Canonical-URL</dt>\n                <dd>\n                    {#if canonicalUrl}\n                        <a href={canonicalUrl} target=\"_blank\" rel=\"noreferrer\">{canonicalUrl}</a>\n                    {:else}\n                        Nicht verfügbar\n                    {/if}\n                </dd>\n            </div>\n        </dl>\n    </section>\n\n    <section class=\"actions\">\n        <button\n      class:disabled={!detail?.document_available}\n      type=\"button\"\n      onclick={openDocumentOverlay}\n      aria-disabled={!detail?.document_available}\n    >\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d={mdiFileDocumentOutline}></path></svg>\n            <span>\n                <strong>Ganzes Dokument öffnen</strong>\n                <small>\n                    {#if detail?.document_available}\n                        Canonical Snapshot mit {formatOptionalNumber(detail.document_word_count, \"0\")} Wörtern anzeigen.\n                    {:else}\n                        Kein vollständiger Snapshot gespeichert. Nutze die Chunk-Ansicht zur Diagnose.\n                    {/if}\n                </small>\n            </span>\n        </button>\n\n        <button type=\"button\" onclick={openChunksOverlay}>\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d={mdiDatabaseSearch}></path></svg>\n            <span>\n                <strong>Chunks öffnen</strong>\n                <small>Generierte Weaviate-Chunks mit Varianten und Wortzahlen anzeigen.</small>\n            </span>\n        </button>\n    </section>\n\n    {#if loading}\n        <div class=\"loading-state\" role=\"status\" aria-label=\"Dokumentdetails werden geladen\">\n            <Circle size=\"2\" color=\"var(--text-100)\" unit=\"rem\" />\n        </div>\n    {/if}\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .document-inspector {\n    display: flex;\n    flex-direction: column;\n    gap: 1.35rem;\n    color: var(--text-100);\n    min-width: 0;\n  }\n\n  .metrics {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    gap: 0.75rem;\n  }\n\n  .metric-card {\n    display: flex;\n    flex-direction: column;\n    gap: 0.25rem;\n    padding: 0.85rem;\n    background: rgba(255, 255, 255, 0.03);\n    border: 1px solid color-mix(in srgb, var(--text-100) 13%, transparent);\n    min-width: 0;\n  }\n\n  .metric-card span,\n  dt {\n    color: color-mix(in srgb, var(--text-100) 62%, transparent);\n  }\n\n  .metric-card strong {\n    color: var(--text-100);\n    font-size: 1.1rem;\n  }\n\n  .details {\n    display: flex;\n    flex-direction: column;\n    gap: 0.7rem;\n  }\n\n  .metadata-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 0.8rem;\n    margin: 0;\n  }\n\n  .metadata-grid div {\n    min-width: 0;\n  }\n\n  dt {\n    font-size: 0.75rem;\n    font-weight: 800;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n  }\n\n  dd {\n    margin: 0.2rem 0 0;\n    color: var(--text-100);\n    overflow-wrap: anywhere;\n  }\n\n  a {\n    color: var(--primary-100);\n  }\n\n  .actions {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 0.9rem;\n  }\n\n  button {\n    display: grid;\n    grid-template-columns: 2.4rem minmax(0, 1fr);\n    align-items: center;\n    gap: 0.9rem;\n    min-height: 7rem;\n    padding: 1rem;\n    border: 1px solid color-mix(in srgb, var(--text-100) 13%, transparent);\n    background: rgba(255, 255, 255, 0.03);\n    color: var(--text-100);\n    text-align: left;\n    cursor: pointer;\n  }\n\n  button:hover {\n    border-color: var(--primary-100);\n  }\n\n  button.disabled {\n    cursor: not-allowed;\n    opacity: 0.55;\n  }\n\n  button svg {\n    width: 2.1rem;\n    height: 2.1rem;\n    fill: var(--primary-100);\n  }\n\n  button span {\n    display: flex;\n    flex-direction: column;\n    gap: 0.35rem;\n    min-width: 0;\n  }\n\n  button strong {\n    font-size: 1rem;\n  }\n\n  button small {\n    color: color-mix(in srgb, var(--text-100) 62%, transparent);\n    line-height: 1.35;\n  }\n\n  .loading-state {\n    display: flex;\n    justify-content: center;\n    padding: 1rem 0;\n  }\n\n  .error {\n    color: var(--danger-100);\n  }\n\n  @media @max-mobile {\n    .metrics,\n    .metadata-grid,\n    .actions {\n      grid-template-columns: 1fr;\n    }\n  }\n</style>\n","import { openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n\nimport { encodeIndexItemId } from \"../../_logic/chunks\"\nimport IndexedDocumentInspectorOverlay from \"./IndexedDocumentInspectorOverlay.svelte\"\nimport type { IndexedDocumentInspectorContext } from \"./types\"\n\nconst normalizeString = (value: string | null | undefined): string | null => {\n  const normalized = typeof value === \"string\" ? value.trim() : \"\"\n\n  return normalized || null\n}\n\nexport const resolveIndexedDocumentItemId = (\n  context: IndexedDocumentInspectorContext,\n): string | null => {\n  const explicit = normalizeString(context.indexItemId)\n\n  if (explicit) return explicit\n\n  const dataId = normalizeString(context.dataId)\n\n  if (!dataId) return null\n\n  return encodeIndexItemId({\n    projectId: context.projectId,\n    organizationId: context.organizationId,\n    realizationId: context.realizationId,\n    scope: context.scope,\n    sourceId: context.sourceId,\n    dataId,\n  })\n}\n\nexport function openIndexedDocumentInspector(context: IndexedDocumentInspectorContext) {\n  const indexItemId = resolveIndexedDocumentItemId(context)\n\n  if (!indexItemId) return\n\n  const title =\n    normalizeString(context.dataLabel) ?? normalizeString(context.dataId) ?? \"Index-Dokument\"\n  openOverlay({\n    title: `Dokument · ${title}`,\n    content: IndexedDocumentInspectorOverlay,\n    properties: {\n      ...context,\n      indexItemId,\n    },\n    closeOnParentOpen: true,\n  })\n}\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import { createLiveStateConnector } from \"@kontextwerk/web-sdk/core/runtime/liveState\"\n\n  const {\n    url,\n    debounceMs = 250,\n    onInvalidate,\n    onHealthChange,\n  }: {\n    url: string\n    debounceMs?: number\n    onInvalidate?: () => void\n    onHealthChange?: (healthy: boolean) => void\n  } = $props()\n\n  onMount(() => {\n    const targetUrl = url.trim()\n\n    if (!targetUrl) {\n      onHealthChange?.(false)\n\n      return\n    }\n\n    const connector = createLiveStateConnector({\n      url: targetUrl,\n      debounceMs,\n      onInvalidate,\n      onHealthChange,\n    })\n    connector.start()\n\n    return () => {\n      connector.stop()\n    }\n  })\n</script>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  const {\n    intervalMs,\n    onTick,\n  }: {\n    intervalMs: number\n    onTick: () => void\n  } = $props()\n\n  onMount(() => {\n    if (!Number.isFinite(intervalMs) || intervalMs <= 0) return\n\n    const timer = setInterval(() => {\n      onTick()\n    }, intervalMs)\n\n    return () => {\n      clearInterval(timer)\n    }\n  })\n</script>\n","import { writable } from \"svelte/store\"\n\nconst ENTRY_TTL_MS = 15 * 60 * 1000\n\ntype OptimisticBaseEntry = {\n  id: string\n  projectId: string\n  createdAt: string\n  expiresAt: number\n}\n\nexport type OptimisticFileSyncEntry = OptimisticBaseEntry & {\n  realizationId: string | null\n  bucket: string\n  objectKey: string\n  scope: \"organization\" | \"project\" | \"realization\"\n}\n\nexport type OptimisticScrapingSyncEntry = OptimisticBaseEntry & {\n  realizationId: string | null\n  domainId: string | null\n  url: string\n}\n\nexport type OptimisticAnswerSyncEntry = OptimisticBaseEntry & {\n  realizationId: string | null\n  groupId: string | null\n  groupName: string | null\n  title: string\n  syncId: string | null\n}\n\nexport type OptimisticSyncState = {\n  files: OptimisticFileSyncEntry[]\n  scraping: OptimisticScrapingSyncEntry[]\n  answers: OptimisticAnswerSyncEntry[]\n}\n\nconst initialState: OptimisticSyncState = {\n  files: [],\n  scraping: [],\n  answers: [],\n}\n\nconst store = writable<OptimisticSyncState>(initialState)\nexport const clearOptimisticSyncState = () => store.set({ files: [], scraping: [], answers: [] })\n\nconst nowMs = (): number => Date.now()\nconst nowIso = (): string => new Date().toISOString()\n\nconst makeId = (prefix: string): string =>\n  `${prefix}:${Math.random().toString(36).slice(2, 8)}:${nowMs().toString(36)}`\n\nconst pruneEntries = <T extends { expiresAt: number }>(entries: T[]): T[] => {\n  const now = nowMs()\n\n  return entries.filter((entry) => entry.expiresAt > now)\n}\n\nconst withFreshState = (updater: (state: OptimisticSyncState) => OptimisticSyncState): void => {\n  store.update((state) => {\n    const fresh: OptimisticSyncState = {\n      files: pruneEntries(state.files),\n      scraping: pruneEntries(state.scraping),\n      answers: pruneEntries(state.answers),\n    }\n\n    return updater(fresh)\n  })\n}\n\nexport const normalizeUrlIdentity = (value: string): string => {\n  const raw = (value ?? \"\").trim()\n\n  if (!raw) return \"\"\n\n  const prefixed = /^[a-z][a-z0-9+.-]*:\\/\\//i.test(raw) ? raw : `https://${raw}`\n  try {\n    const parsed = new URL(prefixed)\n    const protocol = parsed.protocol.toLowerCase()\n    const host = parsed.host.toLowerCase()\n    const pathname = (parsed.pathname || \"/\").replace(/\\/+$/u, \"\") || \"/\"\n\n    return `${protocol}//${host}${pathname}`\n  } catch {\n    return raw.toLowerCase().replace(/\\/+$/u, \"\")\n  }\n}\n\nexport const normalizeDomainToRootUrl = (value: string): string | null => {\n  const raw = (value ?? \"\").trim()\n\n  if (!raw) return null\n\n  const prefixed = /^[a-z][a-z0-9+.-]*:\\/\\//i.test(raw) ? raw : `https://${raw}`\n  try {\n    const parsed = new URL(prefixed)\n\n    if (!parsed.hostname || parsed.username || parsed.password) return null\n\n    parsed.protocol = parsed.protocol === \"http:\" ? \"http:\" : \"https:\"\n    parsed.pathname = \"/\"\n    parsed.search = \"\"\n    parsed.hash = \"\"\n\n    return parsed.toString()\n  } catch {\n    return null\n  }\n}\n\nexport const addOptimisticFileSync = (entry: {\n  projectId: string\n  realizationId?: string | null\n  bucket: string\n  objectKey: string\n  scope?: \"organization\" | \"project\" | \"realization\"\n}): string => {\n  const id = makeId(\"file\")\n  const expiresAt = nowMs() + ENTRY_TTL_MS\n  const createdAt = nowIso()\n  withFreshState((state) => {\n    const dedupeKey = `${entry.projectId}:${entry.bucket}:${entry.objectKey}`\n    const others = state.files.filter(\n      (item) => `${item.projectId}:${item.bucket}:${item.objectKey}` !== dedupeKey,\n    )\n\n    return {\n      ...state,\n      files: [\n        {\n          id,\n          projectId: entry.projectId,\n          realizationId: entry.realizationId ?? null,\n          bucket: entry.bucket,\n          objectKey: entry.objectKey,\n          scope: entry.scope ?? \"realization\",\n          createdAt,\n          expiresAt,\n        },\n        ...others,\n      ],\n    }\n  })\n\n  return id\n}\n\nexport const removeOptimisticFileSync = (id: string): void => {\n  withFreshState((state) => ({\n    ...state,\n    files: state.files.filter((entry) => entry.id !== id),\n  }))\n}\n\nexport const addOptimisticScrapingSync = (entry: {\n  projectId: string\n  realizationId?: string | null\n  domainId?: string | null\n  url: string\n}): string => {\n  const normalized = normalizeUrlIdentity(entry.url)\n  const id = makeId(\"url\")\n  const expiresAt = nowMs() + ENTRY_TTL_MS\n  const createdAt = nowIso()\n\n  withFreshState((state) => {\n    const others = state.scraping.filter(\n      (item) =>\n        !(item.projectId === entry.projectId && normalizeUrlIdentity(item.url) === normalized),\n    )\n\n    return {\n      ...state,\n      scraping: [\n        {\n          id,\n          projectId: entry.projectId,\n          realizationId: entry.realizationId ?? null,\n          domainId: entry.domainId ?? null,\n          url: entry.url,\n          createdAt,\n          expiresAt,\n        },\n        ...others,\n      ],\n    }\n  })\n\n  return id\n}\n\nexport const removeOptimisticScrapingSync = (id: string): void => {\n  withFreshState((state) => ({\n    ...state,\n    scraping: state.scraping.filter((entry) => entry.id !== id),\n  }))\n}\n\nexport const addOptimisticAnswerSync = (entry: {\n  projectId: string\n  realizationId?: string | null\n  groupId?: string | null\n  groupName?: string | null\n  title: string\n  syncId?: string | null\n}): string => {\n  const id = makeId(\"answer\")\n  const expiresAt = nowMs() + ENTRY_TTL_MS\n  const createdAt = nowIso()\n\n  withFreshState((state) => ({\n    ...state,\n    answers: [\n      {\n        id,\n        projectId: entry.projectId,\n        realizationId: entry.realizationId ?? null,\n        groupId: entry.groupId ?? null,\n        groupName: entry.groupName ?? null,\n        title: entry.title,\n        syncId: entry.syncId ?? null,\n        createdAt,\n        expiresAt,\n      },\n      ...state.answers,\n    ],\n  }))\n\n  return id\n}\n\nexport const removeOptimisticAnswerSync = (id: string): void => {\n  withFreshState((state) => ({\n    ...state,\n    answers: state.answers.filter((entry) => entry.id !== id),\n  }))\n}\n\nexport const optimisticSyncState = {\n  subscribe: store.subscribe,\n}\n","import { mdiOpenInNew, mdiRefresh, mdiTrashCanOutline } from \"@mdi/js\"\nimport { indexActionTooltip } from \"../../../../../_shared/_logic/index-action-tooltips\"\nimport type { ChunkContext, UrlRow } from \"../../../_logic/types\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\n\nexport default function buildRowActions({\n  row,\n  chunkContext,\n  canManage = true,\n  canViewChunks = true,\n  onSync,\n  onDelete,\n  onOpenChunks,\n}: {\n  row: UrlRow\n  chunkContext: ChunkContext\n  canManage?: boolean\n  canViewChunks?: boolean\n  onSync?: (row: UrlRow) => void\n  onDelete?: (row: UrlRow) => void\n  onOpenChunks: (row: UrlRow) => void\n}): TableRowAction[] {\n  const optimisticDisabledReason =\n    \"Diese URL ist lokal vorgemerkt. Sync und Löschen sind möglich, sobald das Backend die URL bestätigt hat.\"\n  const chunkDisabledReason =\n    \"Chunks können erst geöffnet werden, wenn die Sync-Geltung eindeutig auflösbar ist.\"\n  const chunksDisabled = !(chunkContext.projectId || chunkContext.organizationId)\n  const actions: TableRowAction[] = []\n\n  if (canManage) {\n    actions.push({\n      id: \"action-0\",\n      label: \"Sync\",\n      onClick: () => {\n        onSync?.(row)\n      },\n      icon: mdiRefresh,\n      disabled: row.isOptimistic,\n      tooltip: row.isOptimistic ? optimisticDisabledReason : indexActionTooltip(\"url-sync\"),\n      testId: `indexAdmin.scraping.urlTable.syncButton.${row.id}`,\n    })\n\n    actions.push({\n      id: \"action-1\",\n      label: \"Löschen\",\n      onClick: () => {\n        onDelete?.(row)\n      },\n      icon: mdiTrashCanOutline,\n      disabled: row.isOptimistic,\n      tooltip: row.isOptimistic ? optimisticDisabledReason : indexActionTooltip(\"url-delete\"),\n      testId: `indexAdmin.scraping.urlTable.deleteButton.${row.id}`,\n      tone: \"danger\",\n    })\n  }\n\n  if (canViewChunks) {\n    actions.push({\n      id: \"action-2\",\n      label: \"Chunks\",\n      onClick: () => {\n        onOpenChunks(row)\n      },\n      icon: mdiOpenInNew,\n      disabled: chunksDisabled,\n      tooltip: chunksDisabled ? chunkDisabledReason : indexActionTooltip(\"url-chunks\"),\n      testId: `indexAdmin.scraping.urlTable.chunksButton.${row.id}`,\n    })\n  }\n\n  return actions\n}\n","<script lang=\"ts\">\n  import ScrapingTableTag from \"../../../../scraping-table-tag\"\n  import type { UrlRow } from \"../../../../../_logic/types\"\n\n  const { row }: { row: UrlRow } = $props()\n</script>\n\n<a\n  class=\"url-link\"\n  href={row.url}\n  aria-label={row.url}\n  title={row.url}\n  target=\"_blank\"\n  rel=\"noreferrer\"\n>\n    <ScrapingTableTag tag={row.pageTag} />\n</a>\n\n<style lang=\"less\">\n  .url-link {\n    display: inline-flex;\n    max-width: min(42rem, 100%);\n    color: var(--text-invers-100);\n    text-decoration: none;\n\n    &:hover :global(.status-tag__main-label) {\n      text-decoration: underline;\n    }\n\n    :global(.status-tag) {\n      max-width: 100%;\n      white-space: normal;\n    }\n\n    :global(.status-tag__main-label) {\n      max-width: 32rem;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n  }\n</style>\n","import {\n  mdiAlertCircleOutline,\n  mdiCalendarClock,\n  mdiCheckBold,\n  mdiClockOutline,\n  mdiCloseCircleOutline,\n  mdiFileDocumentOutline,\n  mdiOfficeBuildingOutline,\n  mdiRobotOutline,\n  mdiSkipForward,\n  mdiSync,\n  mdiTagMultipleOutline,\n  mdiTranslate,\n  mdiWeb,\n} from \"@mdi/js\"\n\nimport type { DomainRecord, UrlRecord } from \"../../../../../_logic/scraping\"\nimport {\n  buildRichTooltip,\n  RICH_TOOLTIP_CLASS,\n  tooltipField,\n  tooltipText,\n  tooltipTitle,\n} from \"../../../../../../../_shared/_logic/rich-tooltips\"\nimport type { ScrapingTableTag } from \"../../../../../_logic/scraping-table-tags\"\nimport type { UrlRow } from \"../../../../../_logic/types\"\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\ntype UrlTagSource = Partial<UrlRecord> & Partial<UrlRow> & { url: string }\n\nconst asUrlTagSource = (url: UrlRecord | UrlRow): UrlTagSource => url as UrlTagSource\n\nexport const formatUrlDate = (value?: string | null): string => {\n  if (!value) return \"–\"\n\n  const parsed = new Date(value)\n\n  if (Number.isNaN(parsed.getTime())) return value\n\n  return parsed.toLocaleString()\n}\n\nconst formatShortDate = (value?: string | null): string | null => {\n  if (!value) return null\n\n  const parsed = new Date(value)\n\n  if (Number.isNaN(parsed.getTime())) return value\n\n  return parsed.toLocaleDateString(\"de-DE\")\n}\n\nconst escapeHtml = (value: unknown): string =>\n  String(value ?? \"\")\n    .replaceAll(\"&\", \"&amp;\")\n    .replaceAll(\"<\", \"&lt;\")\n    .replaceAll(\">\", \"&gt;\")\n    .replaceAll('\"', \"&quot;\")\n    .replaceAll(\"'\", \"&#39;\")\n\nconst safeField = (label: string, value: unknown): string | null => {\n  const normalized = String(value ?? \"\").trim()\n\n  return normalized ? tooltipField(label, escapeHtml(normalized)) : null\n}\n\nconst safeText = (value: unknown): string | null => {\n  const normalized = String(value ?? \"\").trim()\n\n  return normalized ? tooltipText(escapeHtml(normalized)) : null\n}\n\nconst formatList = (values: readonly string[] | null | undefined): string => {\n  const normalized = (values ?? []).map((value) => value.trim()).filter(Boolean)\n\n  return normalized.length ? normalized.join(\", \") : \"–\"\n}\n\nexport const urlParts = (value: string): { label: string; host: string; href: string } => {\n  const trimmed = value.trim()\n  try {\n    const parsed = new URL(trimmed)\n    const path = `${parsed.pathname}${parsed.search}`.trim()\n\n    return {\n      label: path && path !== \"/\" ? path : parsed.hostname,\n      host: path && path !== \"/\" ? parsed.hostname : \"Startseite\",\n      href: parsed.href,\n    }\n  } catch {\n    return {\n      label: trimmed || \"Unbekannte Seite\",\n      host: \"URL nicht lesbar\",\n      href: trimmed,\n    }\n  }\n}\n\nexport const buildUrlPageTag = (url: UrlRecord | UrlRow): ScrapingTableTag => {\n  const source = asUrlTagSource(url)\n  const parts = urlParts(url.url)\n  const firstSeen = source.first_seen_at ?? source.firstSeen ?? null\n  const lastSeen = source.last_seen_at ?? source.lastSeen ?? null\n  const lastCrawled = source.last_crawled_at ?? source.lastCrawled ?? null\n\n  return {\n    label: parts.label,\n    subLabel: parts.host,\n    color: \"cyan\",\n    icon: mdiWeb,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Seite\"),\n      safeField(\"URL\", url.url),\n      safeField(\"Host\", parts.host),\n      safeField(\"Entdeckt\", formatUrlDate(firstSeen)),\n      safeField(\"Zuletzt gesehen\", formatUrlDate(lastSeen)),\n      safeField(\"Zuletzt gecrawlt\", formatUrlDate(lastCrawled)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${parts.label} ${parts.host} ${url.url}`,\n    sortValue: url.url,\n  }\n}\n\nexport const buildUrlClassificationTag = (url: UrlRecord): ScrapingTableTag => {\n  const manualPageType = (url.manual_page_type ?? \"\").trim()\n  const autoPageType = (url.auto_page_type ?? \"\").trim()\n  const effectivePageType = (url.effective_page_type ?? \"\").trim() || manualPageType || autoPageType\n  const listCount = url.effective_list_types?.length ?? 0\n  const source = manualPageType\n    ? \"Manuell\"\n    : url.auto_classification_enabled === false\n      ? \"Auto aus\"\n      : autoPageType\n        ? \"Automatisch\"\n        : \"Unklar\"\n  const label = effectivePageType || \"Unbekannt\"\n  const subLabel = listCount\n    ? `${source} · ${numberFormatter.format(listCount)} Liste${listCount === 1 ? \"\" : \"n\"}`\n    : source\n\n  return {\n    label,\n    subLabel,\n    color: manualPageType\n      ? \"indigo\"\n      : source === \"Auto aus\"\n        ? \"orange\"\n        : effectivePageType\n          ? \"blue\"\n          : \"amber\",\n    icon: mdiTagMultipleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Klassifikation\"),\n      safeField(\"Effektiver Seitentyp\", label),\n      safeField(\"Quelle\", source),\n      safeField(\"Manuell\", manualPageType || \"–\"),\n      safeField(\"Automatisch\", autoPageType || \"–\"),\n      safeField(\"Listen\", formatList(url.effective_list_types)),\n      safeField(\"Auto-Klassifikation\", url.auto_classification_enabled === false ? \"aus\" : \"aktiv\"),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel} ${formatList(url.effective_list_types)}`,\n    sortValue: `${label} ${subLabel}`,\n  }\n}\n\nconst syncStatusDefinition = (\n  status: string,\n): Pick<ScrapingTableTag, \"label\" | \"color\" | \"icon\"> => {\n  const normalized = status.trim().toLowerCase()\n\n  if (normalized === \"syncing\") return { label: \"Sync läuft\", color: \"blue\", icon: mdiSync }\n\n  if (normalized === \"success\") return { label: \"Erledigt\", color: \"emerald\", icon: mdiCheckBold }\n\n  if (normalized === \"failed\")\n    return { label: \"Fehlgeschlagen\", color: \"red\", icon: mdiCloseCircleOutline }\n\n  if (normalized === \"skipped\")\n    return { label: \"Übersprungen\", color: \"amber\", icon: mdiSkipForward }\n\n  if (normalized === \"pending\")\n    return { label: \"Ausstehend\", color: \"amber\", icon: mdiClockOutline }\n\n  return { label: status || \"Unbekannt\", color: \"amber\", icon: mdiAlertCircleOutline }\n}\n\nconst shortenError = (value?: string | null): string | null => {\n  const normalized = (value ?? \"\").trim()\n\n  if (!normalized) return null\n\n  return normalized.length > 22 ? `${normalized.slice(0, 21)}…` : normalized\n}\n\nexport const buildUrlSyncTag = (url: UrlRecord | UrlRow): ScrapingTableTag => {\n  const source = asUrlTagSource(url)\n  const syncStatus = String(source.sync_status ?? source.syncStatus ?? \"pending\")\n  const retryCount = Math.max(0, Number(source.retry_count ?? source.retryCount ?? 0))\n  const lastError = source.last_error ?? source.lastError ?? null\n  const lastSync = source.last_sync_at ?? source.lastSync ?? null\n  const nextSync = source.next_sync_at ?? source.nextSync ?? null\n  const definition = syncStatusDefinition(syncStatus)\n  const normalized = syncStatus.trim().toLowerCase()\n  const retryLabel =\n    retryCount > 0\n      ? `${numberFormatter.format(retryCount)} Versuch${retryCount === 1 ? \"\" : \"e\"}`\n      : null\n  const subLabel =\n    normalized === \"failed\"\n      ? (retryLabel ?? shortenError(lastError) ?? \"Fehler\")\n      : normalized === \"syncing\"\n        ? \"läuft\"\n        : normalized === \"pending\"\n          ? \"wartet\"\n          : normalized === \"success\"\n            ? \"aktuell\"\n            : normalized === \"skipped\"\n              ? \"übersprungen\"\n              : \"unbekannt\"\n\n  return {\n    ...definition,\n    subLabel,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Sync\"),\n      safeField(\"Status\", definition.label),\n      safeField(\"Letzter Sync\", formatUrlDate(lastSync)),\n      safeField(\"Nächster Sync\", formatUrlDate(nextSync)),\n      safeField(\"Versuche\", retryCount > 0 ? numberFormatter.format(retryCount) : \"–\"),\n      safeField(\"Fehler\", lastError || \"–\"),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${definition.label} ${subLabel} ${lastError ?? \"\"}`,\n    sortValue: syncStatus,\n  }\n}\n\nexport const buildUrlFreshnessTag = (url: UrlRecord | UrlRow): ScrapingTableTag => {\n  const source = asUrlTagSource(url)\n  const lastSync = source.last_sync_at ?? source.lastSync ?? null\n  const nextSync = source.next_sync_at ?? source.nextSync ?? null\n  const firstSeen = source.first_seen_at ?? source.firstSeen ?? null\n  const lastSeen = source.last_seen_at ?? source.lastSeen ?? null\n  const label = lastSync ? (formatShortDate(lastSync) ?? \"Letzter Sync\") : \"Noch nicht\"\n  const subLabel = nextSync\n    ? `nächster ${formatShortDate(nextSync) ?? \"geplant\"}`\n    : firstSeen\n      ? `gefunden ${formatShortDate(firstSeen) ?? \"unbekannt\"}`\n      : \"kein Sync\"\n\n  return {\n    label,\n    subLabel,\n    color: lastSync ? \"emerald\" : nextSync ? \"blue\" : \"amber\",\n    icon: mdiCalendarClock,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Aktualität\"),\n      safeField(\"Letzter Sync\", formatUrlDate(lastSync)),\n      safeField(\"Nächster Sync\", formatUrlDate(nextSync)),\n      safeField(\"Entdeckt\", formatUrlDate(firstSeen)),\n      safeField(\"Zuletzt gesehen\", formatUrlDate(lastSeen)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel}`,\n    sortValue: lastSync ?? nextSync ?? firstSeen ?? \"\",\n  }\n}\n\nexport const domainScopeLabel = (scope: DomainRecord[\"scope\"]): string => {\n  if (scope === \"realization\") return \"Sprache\"\n\n  if (scope === \"project\") return \"Agent\"\n\n  return \"Organisation\"\n}\n\nconst domainScopeSubLabel = (domain: DomainRecord): string => {\n  if (domain.scope === \"realization\")\n    return domain.realization_id ? `Sprache ${domain.realization_id}` : domain.domain\n\n  if (domain.scope === \"project\") return domain.domain || \"ein Agent\"\n\n  return domain.domain || \"alle Agenten\"\n}\n\nexport const buildUrlScopeTag = (\n  row: UrlRow,\n  domain: DomainRecord | null | undefined,\n  domainLookupError: string | null,\n): ScrapingTableTag => {\n  if (!domain) {\n    const reason = domainLookupError\n      ? `Domain konnte nicht geladen werden: ${domainLookupError}`\n      : \"Domain konnte noch nicht zugeordnet werden.\"\n\n    return {\n      label: \"Unbekannt\",\n      subLabel: \"Domain fehlt\",\n      color: \"amber\",\n      icon: mdiAlertCircleOutline,\n      tooltip: buildRichTooltip(tooltipTitle(\"Geltung\"), safeText(reason)),\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: `Unbekannt ${row.domainId ?? \"\"}`,\n      sortValue: \"\",\n    }\n  }\n\n  const label = domainScopeLabel(domain.scope)\n  const subLabel = domainScopeSubLabel(domain)\n\n  return {\n    label,\n    subLabel,\n    color: domain.scope === \"realization\" ? \"teal\" : domain.scope === \"project\" ? \"blue\" : \"indigo\",\n    icon:\n      domain.scope === \"realization\"\n        ? mdiTranslate\n        : domain.scope === \"project\"\n          ? mdiRobotOutline\n          : mdiOfficeBuildingOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Geltung im Index\"),\n      safeField(\"Ebene\", label),\n      safeField(\"Website\", domain.domain),\n      safeField(\"Organisation\", domain.organization_id || domain.tenant_id),\n      safeField(\"Projekt\", domain.project_id),\n      safeField(\"Realisierung\", domain.realization_id),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel}`,\n    sortValue: domain.scope,\n  }\n}\n\nexport const buildUrlTags = (url: UrlRecord) => ({\n  pageTag: buildUrlPageTag(url),\n  classificationTag: buildUrlClassificationTag(url),\n  syncTag: buildUrlSyncTag(url),\n  freshnessTag: buildUrlFreshnessTag(url),\n})\n\nexport const buildOptimisticUrlTags = (entry: {\n  id: string\n  domainId: string | null\n  url: string\n  createdAt: string\n}) => {\n  const rowLike: UrlRow = {\n    id: entry.id,\n    domainId: entry.domainId ?? null,\n    url: entry.url,\n    firstSeen: entry.createdAt,\n    lastSeen: entry.createdAt,\n    lastCrawled: null,\n    pageTypeLabel: \"Wird erkannt\",\n    pageTypeSource: \"Aus Domain-Anlage\",\n    effectiveListTypes: [],\n    autoClassificationEnabled: true,\n    hasManualPageType: false,\n    syncStatus: \"pending\",\n    lastSync: null,\n    nextSync: entry.createdAt,\n    lastError: null,\n    retryCount: 0,\n    isOptimistic: true,\n    pageTag: {\n      label: \"\",\n      color: \"cyan\",\n      searchText: \"\",\n      sortValue: \"\",\n    },\n    classificationTag: {\n      label: \"\",\n      color: \"cyan\",\n      searchText: \"\",\n      sortValue: \"\",\n    },\n    syncTag: {\n      label: \"\",\n      color: \"cyan\",\n      searchText: \"\",\n      sortValue: \"\",\n    },\n    freshnessTag: {\n      label: \"\",\n      color: \"cyan\",\n      searchText: \"\",\n      sortValue: \"\",\n    },\n  }\n\n  return {\n    pageTag: buildUrlPageTag(rowLike),\n    classificationTag: {\n      label: \"Wird erkannt\",\n      subLabel: \"aus Domain-Anlage\",\n      color: \"amber\",\n      icon: mdiFileDocumentOutline,\n      tooltip: buildRichTooltip(\n        tooltipTitle(\"Klassifikation\"),\n        safeText(\n          \"Die URL wurde lokal vorgemerkt. Die Klassifikation wird sichtbar, sobald das Backend sie zurückliefert.\",\n        ),\n      ),\n      tooltipHtml: true,\n      tooltipClassName: RICH_TOOLTIP_CLASS,\n      searchText: \"Wird erkannt aus Domain-Anlage\",\n      sortValue: \"Wird erkannt\",\n    } satisfies ScrapingTableTag,\n    syncTag: buildUrlSyncTag(rowLike),\n    freshnessTag: buildUrlFreshnessTag(rowLike),\n  }\n}\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import type { DomainRecord } from \"../../../../_logic/scraping\"\n  import ScrapingTableTag from \"../../../scraping-table-tag\"\n  import { buildUrlScopeTag } from \"../../_shared/_logic/tags\"\n  import type { UrlRow } from \"../../../../_logic/types\"\n  import UrlPageCell from \"../../_shared/_modules/url-page-cell\"\n\n  const {\n    row,\n    column,\n    domainById,\n    domainLookupError,\n  }: {\n    row: UrlRow\n    column: ColumnDef\n    domainById: Record<string, DomainRecord>\n    domainLookupError: string | null\n  } = $props()\n\n  const domain = $derived(row.domainId ? domainById[row.domainId] : null)\n  const scopeTag = $derived(buildUrlScopeTag(row, domain, domainLookupError))\n  const cellValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"page\"}\n    <UrlPageCell {row} />\n{:else if column.id === \"classification\"}\n    <ScrapingTableTag tag={row.classificationTag} />\n{:else if column.id === \"scope\"}\n    <ScrapingTableTag tag={scopeTag} />\n{:else if column.id === \"sync\"}\n    <ScrapingTableTag tag={row.syncTag} />\n{:else if column.id === \"freshness\"}\n    <ScrapingTableTag tag={row.freshnessTag} />\n{:else}\n    {cellValue}\n{/if}\n","import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\nimport type { DomainRecord } from \"../../../_logic/scraping\"\nimport type { FilterDisplayMode, UrlRow } from \"../../../_logic/types\"\n\nexport const urlCardFieldIds = (mode: FilterDisplayMode): string[] =>\n  mode === \"detailed\"\n    ? [\"classification\", \"scope\", \"sync\", \"freshness\"]\n    : [\"classification\", \"sync\", \"freshness\"]\n\nexport const buildUrlTableColumns = (\n  mode: FilterDisplayMode,\n  domainById: Record<string, DomainRecord>,\n): ColumnDef[] => {\n  const base: ColumnDef[] = [\n    {\n      id: \"page\",\n      label: \"Seite\",\n      isPrimary: true,\n      tooltip: \"Gefundene Seite. Klick öffnet die URL in einem neuen Tab.\",\n      sortable: true,\n      sortKey: \"url\",\n      sortType: \"text\",\n      getSortValue: (row) => (row as UrlRow).pageTag.sortValue,\n    },\n    {\n      id: \"classification\",\n      label: \"Klassifikation\",\n      tooltip: \"Seitentyp, Listen und Quelle der Klassifikation.\",\n      getSortValue: (row) => (row as UrlRow).classificationTag.sortValue,\n    },\n  ]\n\n  if (mode === \"detailed\") {\n    base.push({\n      id: \"scope\",\n      label: \"Geltung\",\n      tooltip: \"Sync-Ebene, in der diese Seite in den Index geschrieben wird.\",\n      sortable: true,\n      sortKey: \"scope\",\n      sortType: \"text\",\n      getSortValue: (row) => {\n        const typedRow = row as UrlRow\n        const domain = typedRow.domainId ? domainById[typedRow.domainId] : null\n\n        return domain?.scope ?? \"\"\n      },\n    })\n  }\n\n  return [\n    ...base,\n    {\n      id: \"sync\",\n      label: \"Sync\",\n      tooltip: \"Letzter Sync-Status inkl. Fehlermeldung, falls vorhanden.\",\n      sortable: true,\n      sortKey: \"sync_status\",\n      sortType: \"text\",\n      getSortValue: (row) => (row as UrlRow).syncTag.sortValue,\n    },\n    {\n      id: \"freshness\",\n      label: \"Aktualität\",\n      tooltip: \"Letzter erfolgreicher Sync und Discovery-Zeitpunkte.\",\n      sortable: true,\n      sortKey: \"last_sync_at\",\n      sortType: \"date\",\n      defaultSortDir: \"desc\",\n      getSortValue: (row) => (row as UrlRow).freshnessTag.sortValue,\n    },\n  ]\n}\n","import type { DomainRecord, UrlRecord } from \"../../../_logic/scraping\"\nimport type { ChunkContext, UrlRow } from \"../../../_logic/types\"\nimport { buildOptimisticUrlTags, buildUrlTags } from \"../_shared/_logic/tags\"\n\nconst PROCESSING_SYNC_STATUSES = new Set([\"pending\", \"syncing\"])\n\nexport const rowsContainProcessingSync = (rows: UrlRow[]): boolean =>\n  rows.some((row) => PROCESSING_SYNC_STATUSES.has((row.syncStatus ?? \"\").trim().toLowerCase()))\n\nexport { formatUrlDate } from \"../_shared/_logic/tags\"\n\nexport const mapUrlToRow = (url: UrlRecord): UrlRow => {\n  const tags = buildUrlTags(url)\n  const pageTypeLabel =\n    url.effective_page_type ?? url.manual_page_type ?? url.auto_page_type ?? \"Unbekannt\"\n\n  return {\n    id: url.id,\n    domainId: url.domain_id,\n    url: url.url,\n    firstSeen: url.first_seen_at,\n    lastSeen: url.last_seen_at,\n    lastCrawled: url.last_crawled_at,\n    pageTypeLabel,\n    pageTypeSource: url.manual_page_type\n      ? \"Manuell gesetzt\"\n      : url.auto_page_type\n        ? \"Automatisch\"\n        : \"Unbekannt\",\n    effectiveListTypes: url.effective_list_types ?? [],\n    autoClassificationEnabled: url.auto_classification_enabled,\n    hasManualPageType: Boolean(url.manual_page_type),\n    syncStatus: url.sync_status,\n    lastSync: url.last_sync_at,\n    nextSync: url.next_sync_at,\n    lastError: url.last_error,\n    retryCount: url.retry_count,\n    isOptimistic: false,\n    ...tags,\n  }\n}\n\nexport const mapOptimisticToRow = (entry: {\n  id: string\n  domainId: string | null\n  url: string\n  createdAt: string\n}): UrlRow => {\n  const tags = buildOptimisticUrlTags(entry)\n\n  return {\n    id: entry.id,\n    domainId: entry.domainId ?? null,\n    url: entry.url,\n    firstSeen: entry.createdAt,\n    lastSeen: entry.createdAt,\n    lastCrawled: null,\n    pageTypeLabel: \"Wird erkannt\",\n    pageTypeSource: \"Aus Domain-Anlage\",\n    effectiveListTypes: [],\n    autoClassificationEnabled: true,\n    hasManualPageType: false,\n    syncStatus: \"pending\",\n    lastSync: null,\n    nextSync: entry.createdAt,\n    lastError: null,\n    retryCount: 0,\n    isOptimistic: true,\n    ...tags,\n  }\n}\n\nexport const resolveChunkContext = (\n  row: UrlRow,\n  domainById: Record<string, DomainRecord>,\n  projectId: string | null,\n  organizationId: string | null,\n  realizationId: string | null,\n): ChunkContext => {\n  const domain = row.domainId ? domainById[row.domainId] : null\n  const scope = domain?.scope ?? null\n  const scopedProjectId = String(domain?.project_id ?? projectId ?? \"\").trim() || null\n  const scopedOrganizationId =\n    String(domain?.organization_id ?? domain?.tenant_id ?? organizationId ?? \"\").trim() || null\n\n  if (scope === \"organization\") {\n    return {\n      projectId: null,\n      organizationId: scopedOrganizationId,\n      realizationId: null,\n      scope: \"organization\",\n    }\n  }\n\n  if (scope === \"realization\") {\n    return {\n      projectId: scopedProjectId,\n      organizationId: scopedOrganizationId,\n      realizationId: (domain?.realization_id ?? \"\").trim() || realizationId,\n      scope: \"realization\",\n    }\n  }\n\n  if (scope === \"project\") {\n    return {\n      projectId: scopedProjectId,\n      organizationId: scopedOrganizationId,\n      realizationId: null,\n      scope: \"project\",\n    }\n  }\n\n  return {\n    projectId: scopedOrganizationId ? null : scopedProjectId,\n    organizationId: scopedOrganizationId,\n    realizationId,\n    scope: scopedOrganizationId ? \"organization\" : \"project\",\n  }\n}\n","<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import { onMount } from \"svelte\"\n  import ToggleCTA from \"@kontextwerk/web-sdk/ui/actions/ToggleCTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import { sortTableRows } from \"@kontextwerk/web-sdk/core/layout/tableSort\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n\n  import {\n    buildDomainUrlsStreamUrl,\n    fetchDomains,\n    fetchDomainUrls,\n    type DomainRecord,\n  } from \"../../_logic/scraping\"\n  import { openIndexedDocumentInspector } from \"../../../../_shared/_modules/indexed-document-inspector-overlay\"\n  import LiveStateConnectorMount from \"../../../../_shared/_modules/live-state-connector-mount\"\n  import PollingInterval from \"../../../../_shared/_modules/polling-interval\"\n  import {\n    optimisticSyncState,\n    normalizeUrlIdentity,\n    removeOptimisticScrapingSync,\n  } from \"../../../../_shared/_logic/optimistic-sync-state\"\n  import UrlRowActions from \"./_logic/UrlRowActions.actions\"\n  import UrlPageCell from \"./_shared/_modules/url-page-cell\"\n  import UrlTableCell from \"./_modules/url-table-cell\"\n  import { buildUrlTableColumns, urlCardFieldIds } from \"./_logic/tableModel\"\n  import {\n    mapOptimisticToRow,\n    mapUrlToRow,\n    resolveChunkContext,\n    rowsContainProcessingSync,\n  } from \"./_logic/rows\"\n  import type { FilterDisplayMode, UrlRow } from \"../../_logic/types\"\n\n  const {\n    projectId,\n    organizationId = null,\n    realizationId = null,\n    domainId = null,\n    canManage = true,\n    canViewChunks = true,\n    forcePolling = false,\n    onSync,\n    onDelete,\n    setRefreshFunction,\n    buttonSnippetOuter,\n  }: {\n    projectId: string | null\n    organizationId?: string | null\n    realizationId?: string | null\n    domainId?: string | null\n    canManage?: boolean\n    canViewChunks?: boolean\n    forcePolling?: boolean\n    onSync?: (row: UrlRow) => void\n    onDelete?: (row: UrlRow) => void\n    setRefreshFunction?: (refresh: () => void) => void\n    buttonSnippetOuter?: () => any\n  } = $props()\n\n  const PAGE_SIZE = 10\n  let refreshTable: (() => void) | null = null\n  let hasProcessingRows = $state(false)\n  let streamHealthy = $state(false)\n  let totalCount = $state<number | null>(null)\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  let filterMode = $state<FilterDisplayMode>(\"compact\")\n  const filterModeOptions = [\n    { value: \"compact\", label: \"Kompakt\" },\n    { value: \"detailed\", label: \"Ausführlich\" },\n  ]\n  const titleWithCount = $derived.by(() => {\n    const base = domainId ? \"Gefundene Seiten\" : \"Website-Seiten\"\n\n    return `${base} (${numberFormatter.format(totalCount ?? 0)})`\n  })\n  const tableStateId = $derived(\n    `index-admin-urls-${organizationId ?? projectId ?? \"global\"}-${realizationId ?? \"all\"}-${domainId ?? \"all\"}`,\n  )\n\n  const statusOptions = [\n    { name: \"Ausstehend\", value: \"pending\" },\n    { name: \"Sync läuft\", value: \"syncing\" },\n    { name: \"Erledigt\", value: \"success\" },\n    { name: \"Fehlgeschlagen\", value: \"failed\" },\n    { name: \"Übersprungen\", value: \"skipped\" },\n  ]\n  let statusFilter = $state(statusOptions.map((entry) => entry.value))\n\n  let searchDraft = $state(\"\")\n  const searchTerm = $derived(searchDraft.trim())\n  const tableKey = $derived(\n    `${organizationId ?? \"\"}|${projectId ?? \"\"}|${realizationId ?? \"\"}|${domainId ?? \"\"}|${filterMode}|${searchTerm}|${statusFilter.join(\",\")}|${($optimisticSyncState.scraping ?? []).map((entry) => entry.id).join(\",\")}`,\n  )\n\n  const streamUrl = $derived.by(() => {\n    return domainId ? buildDomainUrlsStreamUrl(domainId) : null\n  })\n  const shouldPoll = $derived(\n    Boolean(refreshTable) && (forcePolling || (!streamHealthy && hasProcessingRows)),\n  )\n\n  let domainById = $state<Record<string, DomainRecord>>({})\n  let domainLookupError = $state<string | null>(null)\n  let domainLookupSeq = 0\n  const columns = $derived(buildUrlTableColumns(filterMode, domainById))\n  const cardFieldIds = $derived(urlCardFieldIds(filterMode))\n\n  const loadDomains = async (context: {\n    projectId: string | null\n    organizationId: string | null\n  }) => {\n    const seq = ++domainLookupSeq\n    domainLookupError = null\n\n    const mapping: Record<string, DomainRecord> = {}\n    const limit = 200\n    let offset = 0\n\n    try {\n      const targetOrganizationId = (context.organizationId ?? \"\").trim()\n      while (true) {\n        const page = await fetchDomains({\n          organizationId: targetOrganizationId || undefined,\n          limit,\n          offset,\n        })\n        for (const domain of page.items) {\n          mapping[domain.id] = domain\n        }\n\n        if (page.items.length < limit) break\n\n        offset += limit\n\n        if (typeof page.total === \"number\" && offset >= page.total) break\n\n        if (offset > 5000) break\n      }\n\n      if (seq !== domainLookupSeq) return\n\n      domainById = mapping\n    } catch (error) {\n      if (seq !== domainLookupSeq) return\n\n      domainLookupError = error instanceof Error ? error.message : String(error)\n      domainById = {}\n    }\n  }\n\n  onMount(() => {\n    const targetOrganizationId = (organizationId ?? \"\").trim()\n    const targetProjectId = (projectId ?? \"\").trim()\n\n    if (!targetOrganizationId && !targetProjectId) {\n      domainById = {}\n      domainLookupError = null\n\n      return\n    }\n\n    void loadDomains({\n      projectId: targetProjectId || null,\n      organizationId: targetOrganizationId || null,\n    })\n  })\n\n  const getUrlRows: TableGetRows = async ({ limit, offset, sort }) => {\n    if (!domainId) return { rows: [], total: 0 }\n\n    const requestedLimit = typeof limit === \"number\" ? limit : PAGE_SIZE\n    const requestedOffset = typeof offset === \"number\" ? offset : 0\n    const optimisticCandidates = ($optimisticSyncState.scraping ?? [])\n      .filter((entry) => entry.projectId === projectId)\n      .filter((entry) => !domainId || entry.domainId === domainId)\n      .filter((entry) => {\n        if (!searchTerm) return true\n\n        return entry.url.toLowerCase().includes(searchTerm.toLowerCase())\n      })\n      .filter((entry) => {\n        if (filterMode !== \"detailed\") return true\n\n        if (!statusFilter.length) return false\n\n        return statusFilter.includes(\"pending\")\n      })\n    const optimisticCount = optimisticCandidates.length\n    const backendOffset =\n      requestedOffset > 0 ? Math.max(0, requestedOffset - optimisticCount) : requestedOffset\n    const result = await fetchDomainUrls(domainId, {\n      limit: requestedLimit,\n      offset: backendOffset,\n      search: searchTerm || undefined,\n      statuses:\n        filterMode === \"detailed\" &&\n        statusFilter.length &&\n        statusFilter.length < statusOptions.length\n          ? statusFilter\n          : undefined,\n      sortBy: sort?.key ?? undefined,\n      sortDir: sort?.dir ?? undefined,\n    })\n    const backendRows = result.items.map(mapUrlToRow)\n    const backendByUrl = new Set(backendRows.map((row) => normalizeUrlIdentity(row.url)))\n    const optimistic =\n      requestedOffset === 0\n        ? optimisticCandidates\n            .filter((entry) => {\n              const key = normalizeUrlIdentity(entry.url)\n\n              if (backendByUrl.has(key)) {\n                removeOptimisticScrapingSync(entry.id)\n\n                return false\n              }\n\n              return true\n            })\n            .map((entry) => mapOptimisticToRow(entry))\n        : []\n    const combinedRows = requestedOffset === 0 ? [...optimistic, ...backendRows] : backendRows\n    const rows =\n      requestedOffset === 0 && optimistic.length && sort\n        ? sortTableRows(combinedRows, columns, sort).slice(0, requestedLimit)\n        : combinedRows.slice(0, requestedLimit)\n\n    return {\n      rows,\n      total:\n        (result.total ?? backendRows.length) +\n        (requestedOffset === 0 ? optimistic.length : optimisticCount),\n    }\n  }\n\n  const registerRefresh = (fn: () => void) => {\n    refreshTable = fn\n    setRefreshFunction?.(fn)\n  }\n\n  const handleStatusChange = (value: string[]) => {\n    statusFilter = value?.length ? value : []\n    refreshTable?.()\n  }\n\n  const openChunksOverlay = (row: UrlRow) => {\n    const context = resolveChunkContext(row, domainById, projectId, organizationId, realizationId)\n\n    if (!context.projectId && !context.organizationId) return\n\n    openIndexedDocumentInspector({\n      projectId: context.projectId,\n      organizationId: context.organizationId,\n      realizationId: context.realizationId,\n      scope: context.scope,\n      dataId: row.url,\n      dataLabel: row.url,\n      sourceId: \"scraping\",\n    })\n  }\n</script>\n\n<div class=\"urls\" data-testid=\"indexAdmin.scraping.urlTable\">\n  {#if streamUrl}\n    {#key streamUrl}\n      <LiveStateConnectorMount\n        url={streamUrl}\n        debounceMs={250}\n        onInvalidate={() => refreshTable?.()}\n        onHealthChange={(healthy) => {\n          streamHealthy = healthy\n        }}\n      />\n    {/key}\n  {/if}\n  {#if shouldPoll}\n    <PollingInterval intervalMs={5_000} onTick={() => refreshTable?.()} />\n  {/if}\n\n  <SectionTitle brightBackground={true} title={titleWithCount} helpModalTextId=\"indexAdminUrlTable\">\n    {#snippet buttonSnippet()}\n      {#if buttonSnippetOuter}\n        {@render buttonSnippetOuter()}\n      {/if}\n      <ToggleCTA\n        options={filterModeOptions}\n        value={filterMode}\n        darkMode={false}\n        onChange={(value) => {\n          const next = `${value ?? filterMode}`.toLowerCase()\n          filterMode = next === \"detailed\" ? \"detailed\" : \"compact\"\n          refreshTable?.()\n        }}\n        dataTestid=\"indexAdmin.scraping.urlTable.filterMode\"\n      />\n    {/snippet}\n  </SectionTitle>\n  <div class=\"form\">\n    <div class=\"row\">\n      <Input\n        type=\"text\"\n        placeholder=\"Suche (Seite oder URL)\"\n        bind:value={searchDraft}\n        brightBackground={true}\n        dataTestid=\"indexAdmin.scraping.urlTable.searchInput\"\n      />\n      {#if filterMode === \"detailed\"}\n        <Input\n          type=\"select\"\n          placeholder=\"Status\"\n          multiple={true}\n          bind:value={statusFilter}\n          options={statusOptions}\n          brightBackground={true}\n          onChange={(event) => {\n            const detail = (event as CustomEvent)?.detail\n            handleStatusChange((detail?.value as string[]) || statusFilter)\n          }}\n          dataTestid=\"indexAdmin.scraping.urlTable.statusFilterInput\"\n        />\n      {/if}\n    </div>\n  </div>\n\n  <Table\n    rowActions={{\n      resolve: (row, rowIndex) =>\n        buildTableRowActionSet(\n          ((row) => {\n            const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n            const _row = row as UrlRow\n\n            const chunkContext = resolveChunkContext(\n              _row,\n              domainById,\n              projectId,\n              organizationId,\n              realizationId,\n            )\n\n            actions.push(\n              ...UrlRowActions({\n                row: _row,\n                chunkContext: chunkContext,\n                canManage: canManage,\n                canViewChunks: canViewChunks,\n                onSync: onSync,\n                onDelete: onDelete,\n                onOpenChunks: openChunksOverlay,\n              }),\n            )\n\n            return actions\n          })(row) ?? [],\n          { primaryId: \"action-2\", inlineIds: [\"action-0\"] },\n        ),\n    }}\n    {columns}\n    getRows={getUrlRows}\n    mode=\"auto\"\n    theme=\"light\"\n    {cardFieldIds}\n    maxCardFields={6}\n    showActions={true}\n    actionsHeaderLabel=\"Aktionen\"\n    showPrimaryButton={false}\n    pageSize={PAGE_SIZE}\n    setRefreshFunction={registerRefresh}\n    urlStateId={tableStateId}\n    refreshKey={tableKey}\n    onRowsLoaded={(result) => {\n      totalCount = typeof result?.total === \"number\" ? result.total : (result?.rows?.length ?? 0)\n      hasProcessingRows = rowsContainProcessingSync((result?.rows ?? []) as UrlRow[])\n    }}\n  >\n    {#snippet empty()}\n      <div class=\"info\">Noch keine Seiten erfasst.</div>\n    {/snippet}\n\n    {#snippet tableCell({ row, column })}\n      <UrlTableCell row={row as UrlRow} {column} {domainById} {domainLookupError} />\n    {/snippet}\n\n    {#snippet cardTitle({ row })}\n      <UrlPageCell row={row as UrlRow} />\n    {/snippet}\n\n    {#snippet cardSubtitle({ row })}\n      <span class=\"muted\">\n        {(row as UrlRow).classificationTag.label}\n        · {(row as UrlRow).syncTag.label}\n        · {(row as UrlRow).freshnessTag.label}\n      </span>\n    {/snippet}\n\n    {#snippet cardField({ row, column })}\n      <UrlTableCell row={row as UrlRow} {column} {domainById} {domainLookupError} />\n    {/snippet}\n  </Table>\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .urls {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-invers-100);\n  }\n\n  .info {\n    margin: 0;\n    color: var(--text-invers-100);\n  }\n\n  .muted {\n    color: var(--text-invers-100);\n  }\n\n  :global(.urls .data-table .table-view table td) {\n    vertical-align: top;\n  }\n</style>\n","<script lang=\"ts\">\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import DomainList, { type DomainRow } from \"./_modules/domain-list\"\n  import DomainForm from \"./_modules/domain-form\"\n  import UrlTable from \"../../../../../../_shared/_modules/url-table\"\n  import type { UrlRow } from \"../../../../../../_shared/_logic/types\"\n  import {\n    createDomain,\n    deleteDomain,\n    deleteUrl,\n    triggerDiscovery,\n    triggerUrlSync,\n    updateDomain,\n    type DomainCreatePayload,\n    type DomainUpdatePayload,\n  } from \"../../../../../../_shared/_logic/scraping\"\n  import {\n    addOptimisticScrapingSync,\n    normalizeDomainToRootUrl,\n  } from \"../../../../../../../_shared/_logic/optimistic-sync-state\"\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../../../../../_shared/_logic/organization-navigation\"\n  import { clearOverlays, openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../confirmed-destructive-action\"\n\n  let {\n    organizationId: providedOrganizationId = null as string | null,\n    projectId: providedProjectId = null as string | null,\n    realizationId: filterRealizationId = null as string | null,\n    view = \"domains\",\n    canManage = true,\n    canViewChunks = true,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n    view?: \"domains\" | \"urls\"\n    canManage?: boolean\n    canViewChunks?: boolean\n  } = $props()\n\n  const projectId = $derived(providedProjectId ?? null)\n  const organizationId = $derived(providedOrganizationId ?? null)\n  const projectKey = $derived(`${organizationId ?? \"\"}|${filterRealizationId ?? \"\"}`)\n\n  let domainTableRefresh: (() => void) | null = null\n  let urlTableRefresh: (() => void) | null = null\n\n  const setDomainRefresh = (refresh: () => void) => {\n    domainTableRefresh = refresh\n  }\n\n  const setUrlRefresh = (refresh: () => void) => {\n    urlTableRefresh = refresh\n  }\n\n  const handleOpenDomain = (domain: DomainRow) => {\n    const target = buildCurrentProjectPath({\n      realizationId: filterRealizationId ?? undefined,\n      suffix: `/scraping/domains/${encodeURIComponent(domain.id)}`,\n    })\n\n    if (target) {\n      spaNavigate(target, { noSearchParam: true })\n    }\n  }\n\n  const openCreateDomainOverlay = () => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    if (!organizationId) {\n      newNotification({ class: \"error\", html: \"Organisation fehlt. Bitte erneut laden.\" })\n\n      return\n    }\n\n    openOverlay({\n      title: \"Domain hinzufügen\",\n      content: DomainForm,\n      properties: {\n        organizationId,\n        onSubmit: handleCreateDomain,\n        onCancel: () => clearOverlays(),\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const openDomainConfig = (domain: DomainRow) => {\n    if (!domain?.record) return\n\n    openOverlay({\n      title: `Domain · ${domain.domain}`,\n      content: DomainForm,\n      properties: {\n        organizationId: domain.record.organization_id ?? domain.record.tenant_id ?? organizationId,\n        initialDomain: domain.record,\n        readOnly: true,\n        allowIntervalEdit: canManage,\n        allowScopeEdit: canManage,\n        submitLabel: \"Speichern\",\n        title: `Domain anzeigen${domain.record.domain ? ` · ${domain.record.domain}` : \"\"}`,\n        onUpdateDomain: (payload: DomainUpdatePayload) =>\n          handleUpdateDomainConfig(payload, domain.record),\n        onCancel: () => clearOverlays(),\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const handleCreateDomain = async (payload: DomainCreatePayload) => {\n    if (!canManage) return\n\n    try {\n      const result = await createDomain(payload)\n      const rootUrl = normalizeDomainToRootUrl(result.domain || payload.domain)\n\n      if (rootUrl && (result.project_id || payload.project_id)) {\n        addOptimisticScrapingSync({\n          projectId: result.project_id || payload.project_id || \"\",\n          realizationId: filterRealizationId ?? payload.realization_id ?? null,\n          domainId: result.id,\n          url: rootUrl,\n        })\n      }\n\n      newNotification({ class: \"success\", html: `Domain ${result.domain} wurde registriert.` })\n      clearOverlays()\n      domainTableRefresh?.()\n      urlTableRefresh?.()\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Domain konnte nicht erstellt werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleUpdateDomainConfig = async (\n    payload: DomainUpdatePayload,\n    domain: DomainRow[\"record\"],\n  ) => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n      throw new Error(\"missing_manage_permission\")\n    }\n\n    try {\n      await updateDomain(domain.id, payload)\n      newNotification({ class: \"success\", html: \"Domain-Einstellungen wurden aktualisiert.\" })\n      clearOverlays()\n      domainTableRefresh?.()\n      urlTableRefresh?.()\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Domain konnte nicht aktualisiert werden.\",\n        includeRequestId: true,\n      })\n      throw error\n    }\n  }\n\n  const handleDiscover = async (domain: DomainRow) => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await triggerDiscovery(domain.id, true)\n      newNotification({ class: \"info\", html: \"Discovery wurde gestartet.\" })\n      domainTableRefresh?.()\n      urlTableRefresh?.()\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Discovery konnte nicht gestartet werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleDeleteDomain = async (domain: DomainRow) => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await runConfirmedDestructiveAction(\n        {\n          approval: {\n            title: \"Domain löschen\",\n            description: \"Diese Website-Domain wirklich löschen?\",\n            approvalLabel: \"Ja, löschen\",\n            declineLabel: \"Abbrechen\",\n          },\n          reauth: {\n            title: \"Domain löschen\",\n            description:\n              \"Bitte bestätigen Sie das Löschen dieser Website-Domain mit Ihrem aktuellen Passwort.\",\n            actionLabel: \"Domain löschen\",\n          },\n        },\n        async () => {\n          await deleteDomain(domain.id)\n          newNotification({ class: \"success\", html: \"Domain wurde gelöscht.\" })\n          domainTableRefresh?.()\n          urlTableRefresh?.()\n        },\n      )\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Domain konnte nicht gelöscht werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleSyncUrl = async (row: UrlRow) => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await triggerUrlSync(row.domainId, row.id, { force: true })\n      newNotification({ class: \"info\", html: \"Sync wurde geplant.\" })\n      urlTableRefresh?.()\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Sync konnte nicht geplant werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleDeleteUrl = async (row: UrlRow) => {\n    if (!canManage) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await runConfirmedDestructiveAction(\n        {\n          approval: {\n            title: \"URL löschen\",\n            description: \"Diese Website-URL wirklich löschen?\",\n            approvalLabel: \"Ja, löschen\",\n            declineLabel: \"Abbrechen\",\n          },\n          reauth: {\n            title: \"URL löschen\",\n            description:\n              \"Bitte bestätigen Sie das Löschen dieser Website-URL mit Ihrem aktuellen Passwort.\",\n            actionLabel: \"URL löschen\",\n          },\n        },\n        async () => {\n          await deleteUrl(row.domainId, row.id)\n          newNotification({ class: \"success\", html: \"URL wurde gelöscht.\" })\n          urlTableRefresh?.()\n        },\n      )\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"URL konnte nicht gelöscht werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n</script>\n\n<div class=\"scraping\" data-testid={`indexAdmin.scrapingManager.${view}`}>\n    {#if organizationId}\n        {#if view === \"domains\"}\n            {#key projectKey}\n                <DomainList\n          {projectId}\n          {organizationId}\n          realizationId={filterRealizationId}\n          {canManage}\n          onCreate={openCreateDomainOverlay}\n          onDiscover={handleDiscover}\n          onDelete={handleDeleteDomain}\n          onOpen={handleOpenDomain}\n          onConfig={openDomainConfig}\n          setRefreshFunction={setDomainRefresh}\n        />\n            {/key}\n        {:else}\n            {#key projectKey}\n                <UrlTable\n          {projectId}\n          {organizationId}\n          realizationId={filterRealizationId}\n          {canManage}\n          {canViewChunks}\n          onSync={handleSyncUrl}\n          onDelete={handleDeleteUrl}\n          setRefreshFunction={setUrlRefresh}\n        />\n            {/key}\n        {/if}\n    {/if}\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .scraping {\n    display: flex;\n    flex-direction: column;\n    gap: 2rem;\n    width: 100%;\n  }\n</style>\n","<script lang=\"ts\">\n  import ScrapingManager from \"./_modules/scraping-manager\"\n  import type { DomainsTabProps } from \"./_logic/types\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    canManage = true,\n    canViewChunks = true,\n  }: DomainsTabProps = $props()\n</script>\n\n<ScrapingManager\n  {organizationId}\n  {projectId}\n  {realizationId}\n  view=\"domains\"\n  {canManage}\n  {canViewChunks}\n/>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import type { TableRowActionsConfig } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import Table, { type ColumnDef, type DataRow } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n\n  import LiveStateConnectorMount from \"../live-state-connector-mount\"\n  import PollingInterval from \"../polling-interval\"\n  import type { SyncStateTableAdapter } from \"../../_logic/sync-state-contracts\"\n\n  type TableCellContext = { row: DataRow; column: ColumnDef }\n  type RowContext = { row: DataRow }\n  type CardFieldContext = { row: DataRow; column: ColumnDef }\n\n  const {\n    adapter,\n    count = 0,\n    loading = false,\n    error = null,\n    refreshKey = \"\",\n    filtersSnippet: customFiltersSnippet,\n    buttonSnippet: customHeaderSnippet,\n    emptySnippet: customEmptySnippet,\n    tableCellSnippet: customTableCellSnippet,\n    rowActions,\n    cardTitleSnippet: customCardTitleSnippet,\n    cardSubtitleSnippet: customCardSubtitleSnippet,\n    cardFieldSnippet: customCardFieldSnippet,\n    setRefreshFunction,\n    onRowsLoaded,\n  }: {\n    adapter: SyncStateTableAdapter<any>\n    count?: number\n    loading?: boolean\n    error?: string | null\n    refreshKey?: string\n    filtersSnippet?: Snippet\n    buttonSnippet?: Snippet\n    emptySnippet?: Snippet\n    tableCellSnippet?: Snippet<[TableCellContext]>\n    rowActions?: TableRowActionsConfig\n    cardTitleSnippet?: Snippet<[RowContext]>\n    cardSubtitleSnippet?: Snippet<[RowContext]>\n    cardFieldSnippet?: Snippet<[CardFieldContext]>\n    setRefreshFunction?: (fn: () => void) => void\n    onRowsLoaded?: ((result: { rows?: DataRow[]; total?: number }) => void) | undefined\n  } = $props()\n\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  let refreshTable: (() => void) | null = $state(null)\n  let visibleRows = $state<DataRow[]>([])\n  let streamHealthy = $state(false)\n\n  const registerRefreshFunction = (fn: () => void) => {\n    refreshTable = fn\n    setRefreshFunction?.(fn)\n  }\n\n  const handleRowsLoaded = (result: { rows?: DataRow[]; total?: number }) => {\n    visibleRows = result?.rows ?? []\n    onRowsLoaded?.(result)\n  }\n\n  const hasVisibleActiveRows = (rows: DataRow[]): boolean => {\n    const matcher = adapter.hasActiveRow\n\n    if (!matcher) return false\n\n    return rows.some((row) => matcher(row))\n  }\n  const liveStateUrl = $derived(adapter.liveStateUrl?.trim() ?? \"\")\n  const pollingMs = $derived(adapter.fallbackPollingMs ?? 0)\n  const isBootstrapEmpty = $derived((count ?? 0) === 0 && visibleRows.length === 0)\n  const shouldPoll = $derived(\n    pollingMs > 0 &&\n      Boolean(refreshTable) &&\n      (isBootstrapEmpty || (!streamHealthy && hasVisibleActiveRows(visibleRows))),\n  )\n</script>\n\n<div class=\"sync-state\" data-testid=\"indexAdmin.syncJobsTable\">\n    {#if liveStateUrl}\n        {#key liveStateUrl}\n            <LiveStateConnectorMount\n        url={liveStateUrl}\n        debounceMs={adapter.liveStateDebounceMs ?? 250}\n        onInvalidate={() => refreshTable?.()}\n        onHealthChange={(healthy) => {\n          streamHealthy = healthy\n        }}\n      />\n        {/key}\n    {/if}\n    {#if shouldPoll}\n        <PollingInterval intervalMs={pollingMs} onTick={() => refreshTable?.()} />\n    {/if}\n\n    <SectionTitle\n    title={`${adapter.title} (${numberFormatter.format(count ?? 0)})`}\n    brightBackground={true}\n    helpModalTextId={adapter.helpModalTextId}\n    tooltipContent={adapter.tooltipContent}\n  >\n        {#snippet buttonSnippet()}\n            <div class=\"header-actions\">\n                {@render customHeaderSnippet?.()}\n            </div>\n        {/snippet}\n    </SectionTitle>\n\n    {#if customFiltersSnippet}\n        <div class=\"form\">\n            {@render customFiltersSnippet()}\n        </div>\n    {/if}\n\n    {#if error}\n        <div class=\"error\" data-testid=\"indexAdmin.syncJobsTable.error\">{error}</div>\n    {/if}\n\n    <Table\n    columns={adapter.columns}\n    getRows={adapter.getRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={adapter.cardFieldIds}\n    maxCardFields={adapter.maxCardFields ?? 4}\n    showActions={adapter.showActions ?? Boolean(rowActions)}\n    {rowActions}\n    actionsHeaderLabel={adapter.actionsHeaderLabel ?? \"Aktionen\"}\n    showPrimaryButton={false}\n    pageSize={adapter.pageSize}\n    setRefreshFunction={registerRefreshFunction}\n    urlStateId={adapter.tableStateId}\n    {refreshKey}\n    {loading}\n    onRowsLoaded={handleRowsLoaded}\n  >\n        {#snippet empty()}\n            {#if customEmptySnippet}\n                {@render customEmptySnippet()}\n            {:else}\n                <div class=\"muted\">{adapter.emptyMessage ?? \"Noch keine Einträge erfasst.\"}</div>\n            {/if}\n        {/snippet}\n\n        {#snippet tableCell(props: TableCellContext)}\n            {#if customTableCellSnippet}\n                {@render customTableCellSnippet(props)}\n            {/if}\n        {/snippet}\n\n\n        {#snippet cardTitle(props: RowContext)}\n            {#if customCardTitleSnippet}\n                {@render customCardTitleSnippet(props)}\n            {/if}\n        {/snippet}\n\n        {#snippet cardSubtitle(props: RowContext)}\n            {#if customCardSubtitleSnippet}\n                {@render customCardSubtitleSnippet(props)}\n            {/if}\n        {/snippet}\n\n        {#snippet cardField(props: CardFieldContext)}\n            {#if customCardFieldSnippet}\n                {@render customCardFieldSnippet(props)}\n            {/if}\n        {/snippet}\n    </Table>\n</div>\n\n<style lang=\"less\">\n  .sync-state {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n  }\n\n  .header-actions {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 0.75rem;\n    flex-wrap: wrap;\n  }\n\n  .form {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n  }\n\n  .muted {\n    color: var(--text-invers-100);\n  }\n\n  .error {\n    color: var(--danger-600, #c62828);\n  }\n\n  :global(.sync-state .input-wrapper) {\n    min-width: 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import type { SyncJobTableTag } from \"../../_logic/contract\"\n\n  const {\n    tag,\n    class: className = \"\",\n  }: {\n    tag: SyncJobTableTag\n    class?: string\n  } = $props()\n</script>\n\n<StatusTag\n  class={`sync-job-tag ${className}`.trim()}\n  size=\"sm\"\n  label={tag.label}\n  subLabel={tag.subLabel ?? undefined}\n  color={tag.color}\n  icon={tag.icon ?? undefined}\n  iconText={tag.iconText ?? undefined}\n  tooltipContent={tag.tooltip ?? tag.ariaLabel ?? tag.label}\n  tooltipHtml={tag.tooltipHtml ?? false}\n  tooltipClassName={tag.tooltipClassName ?? \"\"}\n  disableTitle={true}\n/>\n\n<style lang=\"less\">\n  :global(.sync-job-tag.status-tag) {\n    max-width: min(var(--sync-job-tag-max, 24rem), 100%);\n    vertical-align: middle;\n  }\n\n  :global(.sync-job-tag .status-tag__label) {\n    min-width: 0;\n    max-width: 100%;\n    overflow: hidden;\n  }\n\n  :global(.sync-job-tag .status-tag__label:not(.status-tag__label--stacked)),\n  :global(.sync-job-tag .status-tag__main-label),\n  :global(.sync-job-tag .status-tag__sub-label) {\n    min-width: 0;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SyncJobTableRow } from \"../../../../_shared/_logic/contract\"\n  import SyncJobTag from \"../../../../_shared/_modules/sync-job-tag\"\n\n  const { row }: { row: SyncJobTableRow } = $props()\n</script>\n\n<div class=\"sync-job-action-cell\">\n    <SyncJobTag tag={row.action} />\n</div>\n\n<style lang=\"less\">\n  .sync-job-action-cell {\n    min-width: 0;\n    --sync-job-tag-max: 15rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SyncJobTableRow } from \"../../_logic/contract\"\n  import SyncJobTag from \"../sync-job-tag\"\n\n  const { row }: { row: SyncJobTableRow } = $props()\n</script>\n\n<div class=\"sync-job-object-cell\">\n    <SyncJobTag tag={row.object} />\n</div>\n\n<style lang=\"less\">\n  .sync-job-object-cell {\n    min-width: 0;\n    --sync-job-tag-max: 28rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SyncJobTableRow } from \"../../_logic/contract\"\n  import SyncJobTag from \"../sync-job-tag\"\n\n  const { row }: { row: SyncJobTableRow } = $props()\n</script>\n\n<div class=\"sync-job-result-cell\">\n    <SyncJobTag tag={row.result} />\n</div>\n\n<style lang=\"less\">\n  .sync-job-result-cell {\n    min-width: 0;\n    --sync-job-tag-max: 17rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SyncJobTableRow } from \"../../../../_shared/_logic/contract\"\n  import SyncJobTag from \"../../../../_shared/_modules/sync-job-tag\"\n\n  const { row }: { row: SyncJobTableRow } = $props()\n</script>\n\n<div class=\"sync-job-time-cell\">\n    <SyncJobTag tag={row.time} />\n</div>\n\n<style lang=\"less\">\n  .sync-job-time-cell {\n    min-width: 0;\n    --sync-job-tag-max: 17rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import type { SyncJobColumnId, SyncJobTableRow } from \"../../_shared/_logic/contract\"\n  import ActionCell from \"./_modules/action-cell\"\n  import ObjectCell from \"../../_shared/_modules/object-cell\"\n  import ResultCell from \"../../_shared/_modules/result-cell\"\n  import TimeCell from \"./_modules/time-cell\"\n\n  const {\n    row,\n    column,\n  }: {\n    row: SyncJobTableRow\n    column: ColumnDef\n  } = $props()\n\n  const columnId = $derived(column.id as SyncJobColumnId)\n</script>\n\n{#if columnId === \"object\"}\n    <ObjectCell {row} />\n{:else if columnId === \"action\"}\n    <ActionCell {row} />\n{:else if columnId === \"result\"}\n    <ResultCell {row} />\n{:else if columnId === \"time\"}\n    <TimeCell {row} />\n{:else}\n    {row[column.id] as any}\n{/if}\n","import type { StatusColorName, StatusDefinition } from \"@kontextwerk/web-sdk/core/display/status\"\nimport type { ColumnDef, DataRow } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\nimport {\n  mdiAccountOutline,\n  mdiAlertCircleOutline,\n  mdiCalendarClockOutline,\n  mdiCancel,\n  mdiCheckBold,\n  mdiClockOutline,\n  mdiCloseCircleOutline,\n  mdiCogOutline,\n  mdiCompassOutline,\n  mdiDatabaseSearchOutline,\n  mdiDeleteOutline,\n  mdiFileDocumentOutline,\n  mdiHelpCircleOutline,\n  mdiMicrosoftSharepoint,\n  mdiPencilOutline,\n  mdiPlusCircleOutline,\n  mdiReload,\n  mdiSkipNextOutline,\n  mdiSync,\n  mdiTimerSand,\n  mdiWeb,\n} from \"@mdi/js\"\n\nimport type { SyncJobRecord, SyncJobStatus } from \"../../../_logic/sync-jobs\"\nimport { RICH_TOOLTIP_CLASS } from \"../../../_logic/rich-tooltips\"\nimport type {\n  SyncJobColumnId,\n  SyncJobResourceKindFallback,\n  SyncJobTableContext,\n  SyncJobTableRow,\n  SyncJobTableTag,\n} from \"../_shared/_logic/contract\"\n\ntype ResourcePresentation = {\n  label: string\n  color: StatusColorName\n  icon: string\n}\n\ntype OperationPresentation = {\n  label: string\n  color: StatusColorName\n  icon: string\n}\n\ntype TriggerPresentation = {\n  label: string\n  icon: string\n}\n\nconst emptyLabel = \"Nicht hinterlegt\"\nconst missingLabel = \"-\"\n\nexport const syncJobStatusDefinitions: StatusDefinition<SyncJobStatus>[] = [\n  { value: \"queued\", label: \"Eingeplant\", icon: mdiClockOutline, color: \"amber\" },\n  { value: \"running\", label: \"Läuft\", icon: mdiSync, color: \"blue\" },\n  { value: \"succeeded\", label: \"Erfolgreich\", icon: mdiCheckBold, color: \"emerald\" },\n  { value: \"failed\", label: \"Fehlgeschlagen\", icon: mdiCloseCircleOutline, color: \"rose\" },\n  { value: \"skipped\", label: \"Übersprungen\", icon: mdiSkipNextOutline, color: \"indigo\" },\n  { value: \"cancelled\", label: \"Abgebrochen\", icon: mdiCancel, color: \"orange\" },\n]\n\nexport const syncJobStatusOptions = syncJobStatusDefinitions.map((entry) => ({\n  name: entry.label,\n  value: entry.value,\n}))\n\nconst statusByValue = Object.fromEntries(\n  syncJobStatusDefinitions.map((entry) => [entry.value, entry]),\n) as Record<SyncJobStatus, StatusDefinition<SyncJobStatus>>\n\nconst defaultContext: SyncJobTableContext = {\n  showParentEntity: true,\n  parentEntityLabel: \"Quelle\",\n  resourceLabel: \"Ressource\",\n  resourceKindFallback: \"generic\",\n}\n\nconst resourceFallbackPresentation: Record<SyncJobResourceKindFallback, ResourcePresentation> = {\n  web: { label: \"Webseite\", color: \"blue\", icon: mdiWeb },\n  file: { label: \"Datei\", color: \"indigo\", icon: mdiFileDocumentOutline },\n  answer: { label: \"FAQ\", color: \"magenta\", icon: mdiHelpCircleOutline },\n  sharepoint: { label: \"SharePoint\", color: \"teal\", icon: mdiMicrosoftSharepoint },\n  generic: { label: \"Ressource\", color: \"cyan\", icon: mdiDatabaseSearchOutline },\n}\n\nconst knownResourceKindPresentation: Record<string, ResourcePresentation> = {\n  url: resourceFallbackPresentation.web,\n  web: resourceFallbackPresentation.web,\n  webpage: resourceFallbackPresentation.web,\n  website: resourceFallbackPresentation.web,\n  scraping_url: resourceFallbackPresentation.web,\n  file: resourceFallbackPresentation.file,\n  document: resourceFallbackPresentation.file,\n  storage_file: resourceFallbackPresentation.file,\n  answer: resourceFallbackPresentation.answer,\n  answer_group: resourceFallbackPresentation.answer,\n  faq: resourceFallbackPresentation.answer,\n  sharepoint: resourceFallbackPresentation.sharepoint,\n  sharepoint_item: resourceFallbackPresentation.sharepoint,\n  sharepoint_source: resourceFallbackPresentation.sharepoint,\n}\n\nconst operationPresentation: Record<string, OperationPresentation> = {\n  insert: { label: \"Neu aufnehmen\", color: \"emerald\", icon: mdiPlusCircleOutline },\n  update: { label: \"Aktualisieren\", color: \"blue\", icon: mdiPencilOutline },\n  delete: { label: \"Entfernen\", color: \"rose\", icon: mdiDeleteOutline },\n  sync: { label: \"Synchronisieren\", color: \"cyan\", icon: mdiSync },\n}\n\nconst triggerPresentation: Record<string, TriggerPresentation> = {\n  manual: { label: \"Manuell\", icon: mdiAccountOutline },\n  schedule: { label: \"Zeitplan\", icon: mdiCalendarClockOutline },\n  startup: { label: \"Systemstart\", icon: mdiCogOutline },\n  retry: { label: \"Retry\", icon: mdiReload },\n  discovery: { label: \"Discovery\", icon: mdiCompassOutline },\n  mutation: { label: \"Änderung\", icon: mdiPencilOutline },\n  reconcile: { label: \"Abgleich\", icon: mdiSync },\n  system: { label: \"System\", icon: mdiCogOutline },\n}\n\nconst knownErrorLabels: Record<string, string> = {\n  SCRAPE_NO_CONTENT_AFTER_FALLBACK: \"Kein Seiteninhalt\",\n  \"dead_letter:max_attempts\": \"Max. Versuche erreicht\",\n}\n\nconst cleanText = (value: unknown, fallback = missingLabel): string => {\n  const text =\n    typeof value === \"string\"\n      ? value.trim()\n      : value === null || value === undefined\n        ? \"\"\n        : String(value).trim()\n\n  return text || fallback\n}\n\nconst optionalText = (value: unknown): string | null => {\n  const text = cleanText(value, \"\")\n\n  return text || null\n}\n\nconst normalizeKey = (value: unknown): string =>\n  cleanText(value, \"\").toLowerCase().replaceAll(\"-\", \"_\")\n\nconst escapeHtml = (value: unknown): string =>\n  cleanText(value, \"\")\n    .replaceAll(\"&\", \"&amp;\")\n    .replaceAll(\"<\", \"&lt;\")\n    .replaceAll(\">\", \"&gt;\")\n    .replaceAll('\"', \"&quot;\")\n    .replaceAll(\"'\", \"&#39;\")\n\nconst tooltipTitle = (value: unknown): string | null => {\n  const text = optionalText(value)\n\n  return text ? `<strong>${escapeHtml(text)}</strong>` : null\n}\n\nconst tooltipField = (label: string, value: unknown): string | null => {\n  const text = optionalText(value)\n\n  return text ? `<span><b>${escapeHtml(label)}</b>${escapeHtml(text)}</span>` : null\n}\n\nconst buildTooltip = (parts: Array<string | null | undefined | false>): string =>\n  parts.filter(Boolean).join(\"\")\n\nconst firstPresent = (...values: unknown[]): string | null => {\n  for (const value of values) {\n    const text = optionalText(value)\n\n    if (text) return text\n  }\n\n  return null\n}\n\nconst parseDate = (value?: string | null): Date | null => {\n  if (!value) return null\n\n  const parsed = new Date(value)\n\n  return Number.isNaN(parsed.getTime()) ? null : parsed\n}\n\nconst formatDateTime = (value?: string | null): string => {\n  const parsed = parseDate(value)\n\n  if (!parsed) return missingLabel\n\n  return parsed.toLocaleString(\"de-DE\", {\n    day: \"2-digit\",\n    month: \"2-digit\",\n    year: \"numeric\",\n    hour: \"2-digit\",\n    minute: \"2-digit\",\n  })\n}\n\nconst formatShortDateTime = (value?: string | null): string => {\n  const parsed = parseDate(value)\n\n  if (!parsed) return missingLabel\n\n  return parsed.toLocaleString(\"de-DE\", {\n    day: \"2-digit\",\n    month: \"2-digit\",\n    hour: \"2-digit\",\n    minute: \"2-digit\",\n  })\n}\n\nconst timestamp = (value?: string | null): number | null => {\n  const parsed = parseDate(value)\n\n  return parsed ? parsed.getTime() : null\n}\n\nconst formatDuration = (\n  from?: string | null,\n  to?: string | null,\n  now: Date = new Date(),\n): string | null => {\n  const start = timestamp(from)\n\n  if (start === null) return null\n\n  const end = timestamp(to) ?? now.getTime()\n  const diffMs = Math.max(0, end - start)\n  const totalSeconds = Math.round(diffMs / 1000)\n\n  if (totalSeconds < 1) return \"<1 Sek.\"\n\n  if (totalSeconds < 60) return `${totalSeconds} Sek.`\n\n  const totalMinutes = Math.round(totalSeconds / 60)\n\n  if (totalMinutes < 60) return `${totalMinutes} Min.`\n\n  const hours = Math.floor(totalMinutes / 60)\n  const minutes = totalMinutes % 60\n\n  return minutes ? `${hours} Std. ${minutes} Min.` : `${hours} Std.`\n}\n\nconst humanizeCode = (value?: string | null): string => {\n  const text = cleanText(value, \"\")\n\n  if (!text) return emptyLabel\n\n  return text\n    .replaceAll(\"_\", \" \")\n    .replaceAll(\"-\", \" \")\n    .replace(/\\s+/g, \" \")\n    .trim()\n    .replace(/^./, (char) => char.toUpperCase())\n}\n\nconst compactErrorLabel = (error?: string | null): string | null => {\n  const text = optionalText(error)\n\n  if (!text) return null\n\n  const known = knownErrorLabels[text]\n\n  if (known) return known\n\n  return text.length > 30 ? `${text.slice(0, 27).trimEnd()}...` : text\n}\n\nconst resourcePresentationFor = (\n  item: SyncJobRecord,\n  context: SyncJobTableContext,\n): ResourcePresentation => {\n  const normalized = normalizeKey(item.resourceKind)\n\n  return (\n    knownResourceKindPresentation[normalized] ??\n    resourceFallbackPresentation[context.resourceKindFallback]\n  )\n}\n\nconst operationFor = (value?: string | null): OperationPresentation => {\n  const normalized = normalizeKey(value)\n\n  return (\n    operationPresentation[normalized] ?? {\n      label: humanizeCode(value),\n      color: \"cyan\",\n      icon: mdiSync,\n    }\n  )\n}\n\nconst triggerFor = (value?: string | null): TriggerPresentation => {\n  const normalized = normalizeKey(value)\n\n  return triggerPresentation[normalized] ?? { label: humanizeCode(value), icon: mdiCogOutline }\n}\n\nconst attemptLabel = (attempt: number): string => {\n  const normalized = Number.isFinite(attempt) && attempt > 0 ? attempt : 1\n\n  return `Versuch ${normalized}`\n}\n\nconst buildSearchText = (parts: unknown[]): string =>\n  parts\n    .map((part) => cleanText(part, \"\"))\n    .filter(Boolean)\n    .join(\" \")\n    .toLowerCase()\n\nexport const buildSyncJobColumns = (context: Partial<SyncJobTableContext> = {}): ColumnDef[] => {\n  const resolved = { ...defaultContext, ...context }\n  const parentHint = resolved.showParentEntity ? `, ${resolved.parentEntityLabel}` : \"\"\n\n  return [\n    {\n      id: \"object\" satisfies SyncJobColumnId,\n      label: \"Objekt\",\n      tooltip: `${resolved.resourceLabel}${parentHint} und technischer Schlüssel des Synchronisationslaufs.`,\n      isPrimary: true,\n      getSortValue: (row: DataRow) => (row as SyncJobTableRow).object.sortValue,\n    },\n    {\n      id: \"action\" satisfies SyncJobColumnId,\n      label: \"Aktion\",\n      tooltip: \"Vorgang und Auslöser des Synchronisationslaufs.\",\n      width: \"14rem\",\n      getSortValue: (row: DataRow) => (row as SyncJobTableRow).action.sortValue,\n    },\n    {\n      id: \"result\" satisfies SyncJobColumnId,\n      label: \"Ergebnis\",\n      tooltip: \"Aktueller Status, Fehlerhinweis und Retry-Information.\",\n      width: \"16rem\",\n      getSortValue: (row: DataRow) => (row as SyncJobTableRow).result.sortValue,\n    },\n    {\n      id: \"time\" satisfies SyncJobColumnId,\n      label: \"Zeit\",\n      tooltip: \"Erstellt-, Start-, Ende- und Retry-Zeitpunkt kompakt zusammengefasst.\",\n      width: \"16rem\",\n      getSortValue: (row: DataRow) => (row as SyncJobTableRow).time.sortValue,\n    },\n  ]\n}\n\nexport const buildObjectTag = (\n  item: SyncJobRecord,\n  context: SyncJobTableContext,\n): SyncJobTableTag => {\n  const presentation = resourcePresentationFor(item, context)\n  const label = firstPresent(item.resourceLabel, item.resourceKey) ?? emptyLabel\n  const parent = context.showParentEntity ? optionalText(item.parentEntityLabel) : null\n  const subLabel = parent ?? presentation.label\n  const tooltip = buildTooltip([\n    tooltipTitle(label),\n    tooltipField(\"Typ\", presentation.label),\n    tooltipField(context.resourceLabel, item.resourceLabel),\n    tooltipField(\"Schlüssel\", item.resourceKey),\n    context.showParentEntity\n      ? tooltipField(context.parentEntityLabel, item.parentEntityLabel)\n      : null,\n    tooltipField(\"Bereich\", item.scope),\n    tooltipField(\"Resource Kind\", item.resourceKind),\n  ])\n\n  return {\n    id: `${item.id}:object`,\n    label,\n    subLabel,\n    color: presentation.color,\n    icon: presentation.icon,\n    tooltip,\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    ariaLabel: [label, subLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([label, subLabel, item.resourceKey, item.resourceKind, item.scope]),\n    sortValue: label.toLowerCase(),\n  }\n}\n\nexport const buildActionTag = (item: SyncJobRecord): SyncJobTableTag => {\n  const operation = operationFor(item.operation)\n  const trigger = triggerFor(item.trigger)\n  const tooltip = buildTooltip([\n    tooltipTitle(operation.label),\n    tooltipField(\"Vorgang\", operation.label),\n    tooltipField(\"Auslöser\", trigger.label),\n    tooltipField(\"Rohwert Vorgang\", item.operation),\n    tooltipField(\"Rohwert Auslöser\", item.trigger),\n    tooltipField(\"Versuch\", attemptLabel(item.attempt)),\n  ])\n\n  return {\n    id: `${item.id}:action`,\n    label: operation.label,\n    subLabel: trigger.label,\n    color: operation.color,\n    icon: trigger.icon || operation.icon,\n    tooltip,\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    ariaLabel: `${operation.label}, ausgelöst durch ${trigger.label}`,\n    searchText: buildSearchText([\n      operation.label,\n      trigger.label,\n      item.operation,\n      item.trigger,\n      attemptLabel(item.attempt),\n    ]),\n    sortValue: `${operation.label} ${trigger.label}`.toLowerCase(),\n  }\n}\n\nexport const buildResultTag = (item: SyncJobRecord): SyncJobTableTag => {\n  const status = statusByValue[item.status] ?? statusByValue.failed\n  const errorLabel = compactErrorLabel(item.error)\n  const retryLabel = item.nextRetryAt ? \"Retry geplant\" : null\n  const subLabel =\n    item.status === \"failed\"\n      ? (errorLabel ?? retryLabel ?? attemptLabel(item.attempt))\n      : attemptLabel(item.attempt)\n  const tooltip = buildTooltip([\n    tooltipTitle(status.label),\n    tooltipField(\"Status\", status.label),\n    tooltipField(\"Fehler\", item.error),\n    tooltipField(\"Nächster Retry\", formatDateTime(item.nextRetryAt)),\n    tooltipField(\"Erstellt\", formatDateTime(item.createdAt)),\n    tooltipField(\"Gestartet\", formatDateTime(item.startedAt)),\n    tooltipField(\"Beendet\", formatDateTime(item.finishedAt)),\n    tooltipField(\"Versuch\", attemptLabel(item.attempt)),\n  ])\n\n  return {\n    id: `${item.id}:result`,\n    label: status.label,\n    subLabel,\n    color: (status.color ?? \"cyan\") as StatusColorName,\n    icon: status.icon,\n    tooltip,\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    ariaLabel: [status.label, subLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      status.label,\n      subLabel,\n      item.status,\n      item.error,\n      item.nextRetryAt,\n    ]),\n    sortValue: item.status,\n  }\n}\n\nexport const buildTimeTag = (item: SyncJobRecord, now: Date = new Date()): SyncJobTableTag => {\n  const duration = formatDuration(item.startedAt, item.finishedAt, now)\n  const baseTime = firstPresent(item.finishedAt, item.startedAt, item.createdAt)\n  let label = `Erstellt ${formatShortDateTime(item.createdAt)}`\n  let icon = mdiClockOutline\n  let color: StatusColorName = \"cyan\"\n\n  if (item.status === \"running\") {\n    label = `Seit ${formatShortDateTime(firstPresent(item.startedAt, item.createdAt))}`\n    icon = mdiTimerSand\n    color = \"blue\"\n  } else if (item.status === \"failed\" && item.nextRetryAt) {\n    label = `Retry ${formatShortDateTime(item.nextRetryAt)}`\n    icon = mdiReload\n    color = \"amber\"\n  } else if (item.status === \"queued\") {\n    label = `Erstellt ${formatShortDateTime(item.createdAt)}`\n    icon = mdiClockOutline\n    color = \"amber\"\n  } else if (item.status === \"succeeded\") {\n    label = `Beendet ${formatShortDateTime(item.finishedAt ?? baseTime)}`\n    icon = mdiCheckBold\n    color = \"emerald\"\n  } else if (item.status === \"failed\") {\n    label = `Beendet ${formatShortDateTime(item.finishedAt ?? baseTime)}`\n    icon = mdiAlertCircleOutline\n    color = \"rose\"\n  } else if (item.status === \"cancelled\") {\n    label = `Beendet ${formatShortDateTime(item.finishedAt ?? baseTime)}`\n    icon = mdiCancel\n    color = \"orange\"\n  } else if (item.status === \"skipped\") {\n    label = `Beendet ${formatShortDateTime(item.finishedAt ?? baseTime)}`\n    icon = mdiSkipNextOutline\n    color = \"indigo\"\n  }\n\n  const subLabel =\n    duration ?? (item.startedAt ? `Start ${formatShortDateTime(item.startedAt)}` : \"Start offen\")\n  const tooltip = buildTooltip([\n    tooltipTitle(\"Timeline\"),\n    tooltipField(\"Erstellt\", formatDateTime(item.createdAt)),\n    tooltipField(\"Gestartet\", formatDateTime(item.startedAt)),\n    tooltipField(\"Beendet\", formatDateTime(item.finishedAt)),\n    tooltipField(\"Nächster Versuch\", formatDateTime(item.nextRetryAt)),\n    tooltipField(\"Laufzeit\", duration),\n  ])\n\n  return {\n    id: `${item.id}:time`,\n    label,\n    subLabel,\n    color,\n    icon,\n    tooltip,\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    ariaLabel: [label, subLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      label,\n      subLabel,\n      item.createdAt,\n      item.startedAt,\n      item.finishedAt,\n      item.nextRetryAt,\n      duration,\n    ]),\n    sortValue:\n      timestamp(item.nextRetryAt) ??\n      timestamp(item.finishedAt) ??\n      timestamp(item.startedAt) ??\n      timestamp(item.createdAt),\n  }\n}\n\nexport const buildSyncJobRow = (\n  item: SyncJobRecord,\n  context: Partial<SyncJobTableContext> = {},\n  now: Date = new Date(),\n): SyncJobTableRow => {\n  const resolvedContext = { ...defaultContext, ...context }\n  const object = buildObjectTag(item, resolvedContext)\n  const action = buildActionTag(item)\n  const result = buildResultTag(item)\n  const time = buildTimeTag(item, now)\n\n  return {\n    id: item.id,\n    raw: item,\n    object,\n    action,\n    result,\n    time,\n    searchText: buildSearchText([\n      object.searchText,\n      action.searchText,\n      result.searchText,\n      time.searchText,\n    ]),\n  }\n}\n","<script lang=\"ts\">\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import type { SyncJobListResponse, SyncJobRecord, SyncJobStatus } from \"../../_logic/sync-jobs\"\n  import SyncStateTableShell from \"../sync-state-table-shell\"\n  import type { SyncStateTableAdapter } from \"../../_logic/sync-state-contracts\"\n  import type {\n    SyncJobResourceKindFallback,\n    SyncJobTableContext,\n    SyncJobTableRow,\n  } from \"./_shared/_logic/contract\"\n  import SyncJobTableCell from \"./_modules/sync-job-table-cell\"\n  import ObjectCell from \"./_shared/_modules/object-cell\"\n  import ResultCell from \"./_shared/_modules/result-cell\"\n  import { buildSyncJobColumns, buildSyncJobRow, syncJobStatusOptions } from \"./_logic/presentation\"\n\n  type FetchJobsParams = {\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  }\n\n  const {\n    title = \"Synchronisationsläufe\",\n    helpModalTextId,\n    tooltipContent = \"Hier sehen Sie laufende und kürzlich abgeschlossene Synchronisationsversuche.\",\n    emptyMessage = \"Noch keine Synchronisationsjobs erfasst.\",\n    fetchJobs,\n    liveStateUrl = null,\n    showParentEntity = true,\n    parentEntityLabel = \"Quelle\",\n    resourceLabel = \"Ressource\",\n    resourceKindFallback = \"generic\",\n    setRefreshFunction,\n  }: {\n    title?: string\n    helpModalTextId: string\n    tooltipContent?: string\n    emptyMessage?: string\n    fetchJobs: (params: FetchJobsParams) => Promise<SyncJobListResponse>\n    liveStateUrl?: string | null\n    showParentEntity?: boolean\n    parentEntityLabel?: string\n    resourceLabel?: string\n    resourceKindFallback?: SyncJobResourceKindFallback\n    setRefreshFunction?: (fn: () => void) => void\n  } = $props()\n\n  const activeStatuses: SyncJobStatus[] = [\"queued\", \"running\"]\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let totalCount = $state<number>(0)\n  let searchDraft = $state(\"\")\n  let selectedStatuses = $state<string[]>([...activeStatuses, \"succeeded\", \"failed\"])\n\n  const refreshKey = $derived(`${searchDraft.trim()}|${selectedStatuses.join(\",\")}`)\n  const tableContext = $derived.by<SyncJobTableContext>(() => ({\n    showParentEntity,\n    parentEntityLabel,\n    resourceLabel,\n    resourceKindFallback,\n  }))\n  const columns = $derived.by<ColumnDef[]>(() => buildSyncJobColumns(tableContext))\n\n  const mapJob = (item: SyncJobRecord): SyncJobTableRow => buildSyncJobRow(item, tableContext)\n\n  const getRows: TableGetRows = async ({ limit, offset }) => {\n    loading = true\n    error = null\n    try {\n      const response = await fetchJobs({\n        limit,\n        offset,\n        search: searchDraft.trim() || null,\n        statuses: selectedStatuses,\n      })\n      totalCount = response.total\n\n      return {\n        rows: response.items.map(mapJob),\n        total: response.total,\n      }\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n      totalCount = 0\n\n      return { rows: [], total: 0 }\n    } finally {\n      loading = false\n    }\n  }\n\n  const adapter = $derived.by<SyncStateTableAdapter<SyncJobTableRow>>(() => ({\n    title,\n    helpModalTextId,\n    tooltipContent,\n    columns,\n    getRows,\n    showActions: false,\n    pageSize: 10,\n    cardFieldIds: [\"result\", \"action\", \"time\"],\n    maxCardFields: 3,\n    emptyMessage,\n    liveStateUrl,\n    fallbackPollingMs: 5_000,\n    hasActiveRow: (row: SyncJobTableRow) => activeStatuses.includes(row.raw.status),\n  }))\n</script>\n\n<SyncStateTableShell\n  {adapter}\n  count={totalCount}\n  {loading}\n  {error}\n  {refreshKey}\n  filtersSnippet={filters}\n  emptySnippet={emptyState}\n  tableCellSnippet={tableCell}\n  cardTitleSnippet={cardTitle}\n  cardSubtitleSnippet={cardSubtitle}\n  cardFieldSnippet={cardField}\n  {setRefreshFunction}\n/>\n\n{#snippet filters()}\n    <div class=\"row\">\n        <Input\n      id={`${title}-sync-jobs-search`}\n      type=\"text\"\n      placeholder=\"Objekt, Quelle, Fehler oder Auslöser suchen\"\n      bind:value={searchDraft}\n      brightBackground={true}\n    />\n        <Input\n      id={`${title}-sync-jobs-status`}\n      type=\"select\"\n      placeholder=\"Status\"\n      multiple={true}\n      bind:value={selectedStatuses}\n      options={syncJobStatusOptions}\n      brightBackground={true}\n      onChange={(event) => {\n        const detail = (event as CustomEvent<{ value?: string[] }>)?.detail\n        selectedStatuses = detail?.value?.length ? detail.value : []\n      }}\n    />\n    </div>\n{/snippet}\n\n{#snippet emptyState()}\n    <p>{emptyMessage}</p>\n{/snippet}\n\n{#snippet tableCell({ row, column }: { row: DataRow; column: ColumnDef })}\n    <SyncJobTableCell row={row as SyncJobTableRow} {column} />\n{/snippet}\n\n{#snippet cardTitle({ row }: { row: DataRow })}\n    <ObjectCell row={row as SyncJobTableRow} />\n{/snippet}\n\n{#snippet cardSubtitle({ row }: { row: DataRow })}\n    <ResultCell row={row as SyncJobTableRow} />\n{/snippet}\n\n{#snippet cardField({ row, column }: { row: DataRow; column: ColumnDef })}\n    <SyncJobTableCell row={row as SyncJobTableRow} {column} />\n{/snippet}\n\n<style lang=\"less\">\n  p {\n    margin: 0;\n  }\n\n  .row {\n    display: grid;\n    gap: 0.8rem;\n    grid-template-columns: minmax(0, 1.6fr) minmax(14rem, 1fr);\n  }\n\n  @media (max-width: 900px) {\n    .row {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import {\n    buildScrapingSyncJobsStreamUrl,\n    buildDomainScrapingSyncJobsStreamUrl,\n    fetchDomainScrapingSyncJobs,\n    fetchScrapingSyncJobs,\n  } from \"../../_logic/scraping\"\n  import SyncJobsTable from \"../../../../_shared/_modules/sync-jobs-table\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    domainId = null,\n  }: {\n    projectId?: string | null\n    organizationId?: string | null\n    domainId?: string | null\n  } = $props()\n\n  const liveStateUrl = $derived.by(() => {\n    if (domainId) return buildDomainScrapingSyncJobsStreamUrl(domainId)\n\n    if (organizationId) return buildScrapingSyncJobsStreamUrl({ organizationId })\n\n    return null\n  })\n</script>\n\n<SyncJobsTable\n  title=\"Synchronisationsläufe\"\n  helpModalTextId=\"indexAdminScrapingSyncJobs\"\n  tooltipContent=\"Hier sehen Sie laufende und kürzlich abgeschlossene Website-Synchronisationen.\"\n  emptyMessage=\"Noch keine Website-Synchronisationsjobs erfasst.\"\n  fetchJobs={(params) => {\n    if (domainId) return fetchDomainScrapingSyncJobs(domainId, params)\n\n    if (organizationId) return fetchScrapingSyncJobs({ organizationId, projectId, ...params })\n\n    return Promise.resolve({ items: [], total: 0 })\n  }}\n  {liveStateUrl}\n  showParentEntity={!domainId}\n  parentEntityLabel=\"Domain\"\n  resourceLabel=\"URL\"\n  resourceKindFallback=\"web\"\n/>\n","<script lang=\"ts\">\n  import ScrapingSyncJobsTable from \"../../../../_shared/_modules/scraping-sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n<ScrapingSyncJobsTable {organizationId} {projectId} />\n","import {\n  ANSWER_LIBRARY_MANAGER_API_URL,\n  buildServiceHeaders,\n  MINIO_SYNCER_API_URL,\n  SHAREPOINT_SYNCER_API_URL,\n  scrapingAPIURL,\n} from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\n\nexport type SourceUsageResponse = {\n  source_kind: string\n  organization_id: string\n  unit: string\n  used: number\n  reserved: number\n  limit: number | null\n  remaining: number | null\n  enforcement_enabled: boolean\n  last_reconciled_at: string | null\n}\n\nasync function fetchSourceUsage(\n  baseUrl: string,\n  organizationId: string,\n  label: string,\n): Promise<SourceUsageResponse> {\n  const params = new URLSearchParams({\n    organization_id: organizationId,\n  })\n  let response: Response\n  try {\n    response = await fetchService(`${baseUrl}/admin/usage?${params.toString()}`, {\n      headers: buildServiceHeaders(),\n    })\n  } catch (error) {\n    throw new Error(`${label} konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, `${label} konnten nicht geladen werden`)\n  }\n\n  return (await response.json()) as SourceUsageResponse\n}\n\nexport async function fetchScrapingUsage(organizationId: string): Promise<SourceUsageResponse> {\n  return fetchSourceUsage(scrapingAPIURL, organizationId, \"Seiten-Limits\")\n}\n\nexport async function fetchFileUploadUsage(organizationId: string): Promise<SourceUsageResponse> {\n  return fetchSourceUsage(MINIO_SYNCER_API_URL, organizationId, \"Upload-Limits\")\n}\n\nexport async function fetchSharePointUsage(organizationId: string): Promise<SourceUsageResponse> {\n  return fetchSourceUsage(SHAREPOINT_SYNCER_API_URL, organizationId, \"SharePoint-Limits\")\n}\n\nexport async function fetchAnswerLibraryUsage(\n  organizationId: string,\n): Promise<SourceUsageResponse> {\n  return fetchSourceUsage(ANSWER_LIBRARY_MANAGER_API_URL, organizationId, \"Answer-Limits\")\n}\n","<script lang=\"ts\">\n  import type { GaugeSize } from \"./contract\"\n\n  interface Props {\n    value: string\n    percent?: number | null\n    percentText?: string | null\n    size?: GaugeSize\n    brightBackground?: boolean\n    ariaLabel?: string\n  }\n\n  let {\n    value = \"–\",\n    percent = null,\n    percentText = null,\n    size = \"md\",\n    brightBackground = false,\n    ariaLabel = undefined,\n  }: Props = $props()\n\n  const clamp01 = (v: number) => Math.max(0, Math.min(1, v))\n\n  const pct = $derived.by(() => {\n    if (percent === null || percent === undefined) return null\n\n    const n = Number(percent)\n\n    if (Number.isNaN(n)) return null\n\n    return clamp01(n)\n  })\n\n  const resolvedPercentText = $derived.by(() => {\n    const override =\n      percentText === null || percentText === undefined ? \"\" : String(percentText).trim()\n\n    if (override) return override\n\n    if (pct === null) return \"–\"\n\n    return `${Math.round(pct * 100)}%`\n  })\n\n  const R = 46\n  const C = 2 * Math.PI * R\n\n  const ARC_RATIO = 0.78\n  const ARC = C * ARC_RATIO\n  const GAP = C - ARC\n\n  const dashBg = `${ARC} ${GAP}`\n  const dashFg = $derived.by(() => `${ARC * (pct ?? 0)} ${C}`)\n\n  const ROTATE_DEG = 135\n  const strokeWidth = $derived(size === \"sm\" ? 12 : 14)\n</script>\n\n<div class=\"gauge-shell\" data-theme={brightBackground ? \"light\" : \"dark\"} data-size={size}>\n  <svg\n    class=\"gauge\"\n    viewBox=\"0 0 120 120\"\n    aria-label={ariaLabel}\n    role={ariaLabel ? \"img\" : undefined}\n  >\n    <g transform={`rotate(${ROTATE_DEG} 60 60)`}>\n      <circle\n        class=\"gauge__track\"\n        cx=\"60\"\n        cy=\"60\"\n        r={R}\n        fill=\"none\"\n        stroke-width={strokeWidth}\n        stroke-linecap=\"round\"\n        stroke-dasharray={dashBg}\n      ></circle>\n      <circle\n        class=\"gauge__value\"\n        cx=\"60\"\n        cy=\"60\"\n        r={R}\n        fill=\"none\"\n        stroke-width={strokeWidth}\n        stroke-linecap=\"round\"\n        stroke-dasharray={dashFg}\n      ></circle>\n    </g>\n  </svg>\n\n  <div class=\"gauge-center\" aria-hidden={ariaLabel ? \"true\" : \"true\"}>\n    <div></div>\n    <div class=\"gauge-center__value\">{value}</div>\n    <div class=\"gauge-center__percent\">{resolvedPercentText}</div>\n  </div>\n</div>\n\n<style lang=\"less\">\n  .gauge-shell {\n    --gauge-text: var(--text-100);\n    --gauge-muted: color-mix(in srgb, var(--text-100) 85%, transparent);\n\n    position: relative;\n    display: grid;\n    place-items: center;\n    padding: 0.15rem 0;\n  }\n\n  .gauge-shell[data-theme=\"light\"] {\n    --gauge-text: var(--text-invers-100);\n    --gauge-muted: color-mix(in srgb, var(--text-invers-100) 70%, transparent);\n  }\n\n  .gauge-shell[data-size=\"md\"] {\n    --gauge-w: 140px;\n    --gauge-h: 110px;\n    --gauge-scale: 1.3;\n    --gauge-value-size: 1rem;\n    --gauge-percent-size: 0.9rem;\n  }\n\n  .gauge-shell[data-size=\"sm\"] {\n    --gauge-w: 120px;\n    --gauge-h: 94px;\n    --gauge-scale: 1.15;\n    --gauge-value-size: 1rem;\n    --gauge-percent-size: 0.82rem;\n  }\n\n  .gauge {\n    width: var(--gauge-w);\n    height: var(--gauge-h);\n    transform: scale(var(--gauge-scale));\n    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.22));\n  }\n\n  .gauge__track {\n    stroke: color-mix(in srgb, var(--primary-100) 22%, transparent);\n    opacity: 0.9;\n  }\n\n  .gauge__value {\n    stroke: var(--primary-100);\n    opacity: 1;\n    filter: drop-shadow(0 0 10px color-mix(in srgb, var(--primary-100) 45%, transparent));\n  }\n\n  .gauge-center {\n    position: absolute;\n    inset: 0;\n    display: grid;\n    place-items: center;\n    transform: translateY(3px);\n    pointer-events: none;\n    text-align: center;\n    gap: 0.15rem;\n  }\n\n  .gauge-center__value {\n    font-size: var(--gauge-value-size);\n    font-weight: 750;\n    line-height: 1;\n    margin-top: 0.15rem;\n    color: var(--gauge-text);\n  }\n\n  .gauge-center__percent {\n    font-size: var(--gauge-percent-size);\n    color: var(--gauge-muted);\n    line-height: 1;\n    transform: translateY(10px);\n  }\n</style>\n","<script lang=\"ts\">\n  import Card from \"../../../layout/_modules/card/index\"\n  import type { CardImportantNumber } from \"../../../../core/layout/card\"\n  import Gauge, { type GaugeSize } from \"../gauge/index\"\n\n  type FootItem = { label: string; value: string }\n\n  interface Props {\n    title: string\n    description?: string\n    value: string\n    percent?: number | null\n    percentText?: string | null\n    importantNumbers?: CardImportantNumber[]\n    footLeft?: FootItem\n    footRight?: FootItem\n    brightBackground?: boolean\n    size?: GaugeSize\n    onClick?: ((event: MouseEvent) => void) | null\n  }\n\n  let {\n    title,\n    description = \"\",\n    value = \"–\",\n    percent = null,\n    percentText = null,\n    importantNumbers = [],\n    footLeft,\n    footRight,\n    brightBackground = false,\n    size = \"md\",\n    onClick = null,\n  }: Props = $props()\n\n  const resolvedImportantNumbers = $derived.by<CardImportantNumber[]>(() => {\n    if (importantNumbers.length) return importantNumbers\n\n    return [footLeft, footRight]\n      .filter((item): item is FootItem => Boolean(item?.label))\n      .map((item, index) => ({\n        key: `kpi-foot-${index}`,\n        label: item.label,\n        value: item.value,\n      }))\n  })\n</script>\n\n<Card\n  importantNumbers={resolvedImportantNumbers}\n  onClick={onClick ?? undefined}\n  hoverEffect={Boolean(onClick)}\n>\n  {#snippet contentSnippet()}\n    <div class=\"kpi-card\">\n      <div class=\"kpi-card__head\">\n        <h4>{title}</h4>\n        {#if description}\n          <small class=\"kpi-card__desc\">{description}</small>\n        {/if}\n      </div>\n\n      <div class=\"kpi-card__gauge\">\n        <Gauge {value} {percent} {percentText} {brightBackground} {size} ariaLabel={title} />\n      </div>\n    </div>\n  {/snippet}\n</Card>\n\n<style lang=\"less\">\n  .kpi-card {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n    padding: 0.25rem 0.1rem;\n    min-height: 176px;\n  }\n\n  .kpi-card__head {\n    text-align: center;\n\n    h4 {\n      color: var(--text-100);\n      font-size: 14px !important;\n    }\n  }\n\n  .kpi-card__desc {\n    display: block;\n    margin-top: 0.15rem;\n    font-size: 10px !important;\n    color: color-mix(in srgb, var(--text-100) 70%, transparent);\n    line-height: 1.2;\n  }\n\n  .kpi-card__gauge {\n    display: grid;\n    place-items: center;\n    padding: 0.15rem 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import KpiGaugeCard from \"@kontextwerk/web-sdk/ui/charts/components/KpiGaugeCard.svelte\"\n\n  type Props = {\n    title: string\n    subtitle?: string | null\n    used?: number\n    limit?: number | null\n    unit?: string | null\n  }\n\n  const { title, subtitle = null, used = 0, limit = null, unit = null }: Props = $props()\n\n  const normalizedUsed = $derived(Math.max(0, Number.isFinite(used) ? Number(used) : 0))\n  const normalizedLimit = $derived.by(() => {\n    if (limit === null || limit === undefined) return null\n\n    const parsed = Number(limit)\n\n    return Number.isFinite(parsed) ? Math.max(0, parsed) : null\n  })\n\n  const isUnlimited = $derived(!normalizedLimit || normalizedLimit <= 0)\n  const remaining = $derived.by(() => {\n    if (isUnlimited) return null\n\n    return Math.max((normalizedLimit ?? 0) - normalizedUsed, 0)\n  })\n\n  const unitLabel = $derived(unit && unit.trim() ? ` ${unit.trim()}` : \"\")\n\n  const formatValue = (value: number | null | undefined) => {\n    if (value === null || value === undefined) return \"–\"\n\n    return `${Number(value).toLocaleString(\"de-DE\")}${unitLabel}`\n  }\n\n  const usagePercent = $derived.by(() => {\n    if (isUnlimited) return null\n\n    const base = normalizedLimit ?? 0\n\n    if (!base || base <= 0) return null\n\n    return Math.max(0, Math.min(1, normalizedUsed / base))\n  })\n\n  const percentText = $derived.by(() => {\n    if (isUnlimited) return \"Unbegrenzt\"\n\n    if (usagePercent === null) return \"–\"\n\n    const percentValue = usagePercent * 100\n\n    if (percentValue > 0 && percentValue < 1) return \"<1%\"\n\n    return `${Math.round(percentValue)}%`\n  })\n\n  const footLeft = $derived({ label: \"Verbrauch\", value: formatValue(normalizedUsed) })\n  const footRight = $derived.by(() => ({\n    label: isUnlimited ? \"Limit\" : \"Frei\",\n    value: isUnlimited ? \"Unbegrenzt\" : formatValue(remaining ?? 0),\n  }))\n</script>\n\n<div class=\"chart-card\">\n    <KpiGaugeCard\n    {title}\n    description={subtitle ?? \"\"}\n    value={formatValue(normalizedUsed)}\n    percent={usagePercent}\n    {percentText}\n    {footLeft}\n    {footRight}\n    brightBackground={false}\n  />\n</div>\n\n<style>\n  .chart-card {\n    max-width: 420px;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n\n  import type { LimitsPanelShellProps } from \"./_logic/types\"\n\n  const {\n    title,\n    helpModalTextId,\n    tooltipContent = \"\",\n    loading = false,\n    loadingMessage = \"Daten werden geladen…\",\n    error = null,\n    isEmpty = false,\n    emptyMessage = \"Keine Daten verfügbar.\",\n    contentSnippet,\n  }: LimitsPanelShellProps & {\n    contentSnippet?: Snippet\n  } = $props()\n</script>\n\n<div class=\"limits\">\n    <SectionTitle\n    {title}\n    brightBackground={true}\n    styleOuter=\"margin-bottom: 1.2rem;\"\n    {helpModalTextId}\n    {tooltipContent}\n  />\n\n    {#if loading}\n        <div class=\"loading\" aria-label={loadingMessage}>\n            <Circle size=\"2\" color=\"#741e20\" unit=\"rem\" />\n        </div>\n    {:else if error}\n        <div class=\"state error\">{error}</div>\n    {:else if isEmpty}\n        <div class=\"state\">{emptyMessage}</div>\n    {:else}\n        {@render contentSnippet?.()}\n    {/if}\n</div>\n\n<style lang=\"less\">\n  .limits {\n    display: flex;\n    flex-direction: column;\n    gap: 0.8rem;\n  }\n\n  .loading {\n    display: flex;\n    justify-content: center;\n    padding: 1rem 0;\n  }\n\n  .state {\n    padding: 0.95rem 1rem;\n    border-radius: 0.85rem;\n    border: 1px solid color-mix(in srgb, var(--bg-300, #1f2937) 18%, transparent);\n    background: color-mix(in srgb, var(--bg-200, #0f172a) 82%, #0b1224);\n    color: var(--text-100, #e5e7eb);\n  }\n\n  .state.error {\n    border-color: color-mix(in srgb, #f04438 55%, transparent);\n    color: #fca5a5;\n  }\n</style>\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  import { fetchScrapingUsage, type SourceUsageResponse } from \"../../../../_shared/_logic/usage\"\n  import UsageLimitChart from \"../../../../_shared/_modules/usage-limit-chart\"\n  import LimitsPanelShell from \"../../../../_shared/_modules/limits-panel-shell\"\n\n  type Props = {\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n    projectName?: string | null\n  }\n\n  const {\n    organizationId = null,\n    projectId: _projectId = null,\n    realizationId: _realizationId = null,\n    projectName: _projectName = null,\n  }: Props = $props()\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let limits = $state<SourceUsageResponse | null>(null)\n  let requestId = 0\n\n  const loadLimits = async () => {\n    if (!organizationId) {\n      limits = null\n      error = \"Organisationskontext fehlt.\"\n\n      return\n    }\n\n    const currentRequest = ++requestId\n    loading = true\n    error = null\n    try {\n      const response = await fetchScrapingUsage(organizationId)\n\n      if (currentRequest !== requestId) return\n\n      limits = response\n    } catch (err) {\n      if (currentRequest !== requestId) return\n\n      error = err instanceof Error ? err.message : String(err)\n      limits = null\n    } finally {\n      if (currentRequest === requestId) {\n        loading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    void loadLimits()\n  })\n\n  const chartUsed = $derived(limits?.used ?? 0)\n  const chartLimit = $derived(limits?.limit ?? null)\n  const chartSubtitle = $derived(\"Organisationsweit über alle Domains\")\n</script>\n\n<LimitsPanelShell\n  title=\"Seiten-Limits\"\n  helpModalTextId=\"indexAdminScrapingLimits\"\n  {loading}\n  loadingMessage=\"Limits werden geladen…\"\n  {error}\n  isEmpty={!limits}\n  emptyMessage=\"Keine Daten vorhanden.\"\n  contentSnippet={content}\n/>\n\n{#snippet content()}\n    {#if limits}\n        <UsageLimitChart\n      title=\"Gefundene URLs\"\n      subtitle={chartSubtitle}\n      used={chartUsed}\n      limit={chartLimit}\n      unit=\"Seiten\"\n    />\n    {/if}\n{/snippet}\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    {\n      id: \"domains\",\n      title: \"Domains\",\n      testId: \"indexAdmin.organizationView.tab.scraping.domains\",\n    },\n    {\n      id: \"jobs\",\n      title: \"Synchronisationsjobs\",\n      testId: \"indexAdmin.organizationView.tab.scraping.jobs\",\n    },\n    {\n      id: \"limits\",\n      title: \"Limits\",\n      testId: \"indexAdmin.organizationView.tab.scraping.limits\",\n    },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import DomainsTab from \"./tabs/Domains\"\n  import JobsTab from \"./tabs/Jobs\"\n  import LimitsTab from \"./tabs/Limits\"\n\n  type ScrapingView = \"domains\" | \"jobs\" | \"limits\"\n\n  type ScrapingSectionProps = {\n    hasWorkspaceData?: boolean\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n    projectName?: string\n    canManage?: boolean\n    canViewChunks?: boolean\n    emptyContent?: () => any\n    activeTab?: ScrapingView\n  }\n\n  const {\n    hasWorkspaceData = false,\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    projectName,\n    canManage = true,\n    canViewChunks = true,\n    emptyContent,\n    activeTab = \"domains\",\n  }: ScrapingSectionProps = $props()\n</script>\n\n<div data-testid={`indexAdmin.scrapingPage.${activeTab}`}>\n    {#if !hasWorkspaceData}\n        {@render emptyContent?.()}\n    {:else}\n        <div class=\"section-stack\">\n            {#if activeTab === \"limits\"}\n                <LimitsTab {organizationId} {projectId} {realizationId} {projectName} />\n            {:else if activeTab === \"jobs\"}\n                <JobsTab {organizationId} {projectId} />\n            {:else}\n                <DomainsTab {organizationId} {projectId} {realizationId} {canManage} {canViewChunks} />\n            {/if}\n        </div>\n    {/if}\n</div>\n\n<style lang=\"less\">\n  .section-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n</style>\n","import {\n  SHAREPOINT_SYNCER_API_URL,\n  buildServiceHeaders,\n} from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\nimport type {\n  SyncJobListApiResponse,\n  SyncJobListResponse,\n} from \"../../../../_shared/_logic/sync-jobs\"\nimport { normalizeSyncJob } from \"../../../../_shared/_logic/sync-jobs\"\n\nexport type SharePointConnectionOption = {\n  organizationId: string\n  connectionId: string\n  label: string\n  isDefault: boolean\n  hasClientSecret: boolean\n  siteGrants: SharePointSiteGrantOption[]\n}\n\nexport type SharePointSiteGrantOption = {\n  siteId: string\n  siteName: string | null\n  siteUrl: string\n  role: string | null\n}\n\nexport type SharePointLibraryOption = {\n  libraryName: string\n  driveId: string\n  listId: string\n}\n\nexport type SharePointScope = \"organization\" | \"project\" | \"realization\"\n\nexport type SharePointSource = {\n  sourceId: string\n  organizationId: string\n  label: string\n  connectionId: string\n  enabled: boolean\n  indexed: boolean\n  scope: SharePointScope\n  projectId: string | null\n  realizationId: string | null\n  target: {\n    siteUrl: string\n    libraryName: string\n    folderPath: string | null\n  }\n  resolved: {\n    siteId: string\n    siteName: string | null\n    listId: string\n    driveId: string\n    driveName: string | null\n    folderId: string | null\n    folderName: string | null\n  }\n  sync: {\n    recursive: boolean\n    pollIntervalSeconds: number\n    deleteBehavior: \"remove_from_index\" | \"keep_indexed\"\n  }\n  ingest: {\n    fileExtensions: string[]\n    maxFileSizeMb: number\n    downloadPolicy: \"always\" | \"on_ctag_change\"\n  }\n  stats?: SharePointSourceSummary | null\n}\n\nexport type SharePointSourceWritePayload = {\n  organizationId: string\n  projectId: string | null\n  label: string\n  connectionId: string\n  enabled: boolean\n  indexed: boolean\n  scope: SharePointScope\n  realizationId: string | null\n  target: {\n    siteUrl: string\n    libraryName: string\n    folderPath: string | null\n  }\n  sync: {\n    recursive: boolean\n    pollIntervalSeconds: number\n    deleteBehavior: \"remove_from_index\" | \"keep_indexed\"\n  }\n  ingest: {\n    fileExtensions: string[]\n    maxFileSizeMb: number\n    downloadPolicy: \"always\" | \"on_ctag_change\"\n  }\n}\n\nexport type SharePointSourcesResponse = {\n  sources: SharePointSource[]\n  connections: SharePointConnectionOption[]\n}\n\nexport type SharePointSourceHealthStatus = \"pending\" | \"ready\" | \"failed\" | \"throttled\"\nexport type SharePointSourceItemStatus = \"indexed\" | \"filtered\" | \"deleted\" | \"failed\"\nexport type SharePointSourceSyncActionStatus = \"scheduled\" | \"already_running\"\n\nexport type SharePointSourceSummary = {\n  sourceId: string\n  organizationId: string\n  status: SharePointSourceHealthStatus\n  trackedItems: number\n  indexedItems: number\n  filteredItems: number\n  deletedItems: number\n  failedItems: number\n  totalSizeBytes: number\n  largestItemSizeBytes: number\n  lastSyncedAt: string | null\n  nextSyncAt: string | null\n  throttleUntil: string | null\n  retryCount: number\n  lastError: string | null\n}\n\nexport type SharePointSourceItem = {\n  itemId: string\n  sourceId: string\n  organizationId: string\n  dataId: string\n  driveId: string\n  path: string | null\n  name: string | null\n  size: number | null\n  cTag: string | null\n  eTag: string | null\n  isIndexed: boolean\n  isDeleted: boolean\n  status: SharePointSourceItemStatus\n  lastSeenAt: string | null\n  lastSyncedAt: string | null\n  lastError: string | null\n}\n\nexport type SharePointSourceItemsResponse = {\n  items: SharePointSourceItem[]\n  total: number\n}\n\nexport type SharePointSourceSyncActionResponse = {\n  sourceId: string\n  organizationId: string\n  status: SharePointSourceSyncActionStatus\n}\n\nexport type SharePointSourceItemSyncActionResponse = {\n  sourceId: string\n  organizationId: string\n  itemId: string\n  status: SharePointSourceSyncActionStatus\n}\n\ntype ApiConnectionOption = {\n  organization_id: string\n  connection_id: string\n  label: string\n  is_default: boolean\n  has_client_secret: boolean\n  site_grants?: Array<{\n    site_id: string\n    site_name?: string | null\n    site_url: string\n    role?: string | null\n  }>\n}\n\ntype ApiSource = {\n  source_id: string\n  organization_id: string\n  label: string\n  connection_id: string\n  enabled: boolean\n  indexed: boolean\n  scope: SharePointScope\n  project_id?: string | null\n  realization_id?: string | null\n  target: {\n    site_url: string\n    library_name: string\n    folder_path?: string | null\n  }\n  resolved: {\n    site_id: string\n    site_name?: string | null\n    list_id: string\n    drive_id: string\n    drive_name?: string | null\n    folder_id?: string | null\n    folder_name?: string | null\n  }\n  sync: {\n    recursive: boolean\n    poll_interval_seconds: number\n    delete_behavior: \"remove_from_index\" | \"keep_indexed\"\n  }\n  ingest: {\n    file_extensions: string[]\n    max_file_size_mb: number\n    download_policy: \"always\" | \"on_ctag_change\"\n  }\n  stats?: ApiSourceSummary | null\n}\n\ntype ApiListResponse = {\n  sources?: ApiSource[]\n  connections?: ApiConnectionOption[]\n}\n\ntype ApiSourceSummary = {\n  source_id: string\n  organization_id: string\n  status: SharePointSourceHealthStatus\n  tracked_items: number\n  indexed_items: number\n  filtered_items: number\n  deleted_items: number\n  failed_items: number\n  total_size_bytes: number\n  largest_item_size_bytes?: number\n  last_synced_at?: string | null\n  next_sync_at?: string | null\n  throttle_until?: string | null\n  retry_count: number\n  last_error?: string | null\n}\n\ntype ApiSourceItem = {\n  item_id: string\n  source_id: string\n  organization_id: string\n  data_id: string\n  drive_id: string\n  path?: string | null\n  name?: string | null\n  size?: number | null\n  c_tag?: string | null\n  e_tag?: string | null\n  is_indexed: boolean\n  is_deleted: boolean\n  status: SharePointSourceItemStatus\n  last_seen_at?: string | null\n  last_synced_at?: string | null\n  last_error?: string | null\n}\n\ntype ApiSourceItemsResponse = {\n  items?: ApiSourceItem[]\n  total?: number\n}\n\ntype ApiSourceSyncActionResponse = {\n  source_id: string\n  organization_id: string\n  status: SharePointSourceSyncActionStatus\n}\n\ntype ApiSourceItemSyncActionResponse = {\n  source_id: string\n  organization_id: string\n  item_id: string\n  status: SharePointSourceSyncActionStatus\n}\n\ntype ApiLibraryOption = {\n  library_name: string\n  drive_id: string\n  list_id: string\n}\n\ntype ApiLibraryListResponse = {\n  connection_id: string\n  site_url: string\n  libraries?: ApiLibraryOption[]\n}\n\nconst normalizeConnection = (entry: ApiConnectionOption): SharePointConnectionOption => ({\n  organizationId: entry.organization_id,\n  connectionId: entry.connection_id,\n  label: entry.label,\n  isDefault: Boolean(entry.is_default),\n  hasClientSecret: Boolean(entry.has_client_secret),\n  siteGrants: Array.isArray(entry.site_grants)\n    ? entry.site_grants.map((grant) => ({\n        siteId: grant.site_id,\n        siteName: grant.site_name ?? null,\n        siteUrl: grant.site_url,\n        role: grant.role ?? null,\n      }))\n    : [],\n})\n\nconst normalizeSource = (entry: ApiSource): SharePointSource => ({\n  sourceId: entry.source_id,\n  organizationId: entry.organization_id,\n  label: entry.label,\n  connectionId: entry.connection_id,\n  enabled: Boolean(entry.enabled),\n  indexed: Boolean(entry.indexed),\n  scope: entry.scope,\n  projectId: entry.project_id ?? null,\n  realizationId: entry.realization_id ?? null,\n  target: {\n    siteUrl: entry.target.site_url,\n    libraryName: entry.target.library_name,\n    folderPath: entry.target.folder_path ?? null,\n  },\n  resolved: {\n    siteId: entry.resolved.site_id,\n    siteName: entry.resolved.site_name ?? null,\n    listId: entry.resolved.list_id,\n    driveId: entry.resolved.drive_id,\n    driveName: entry.resolved.drive_name ?? null,\n    folderId: entry.resolved.folder_id ?? null,\n    folderName: entry.resolved.folder_name ?? null,\n  },\n  sync: {\n    recursive: Boolean(entry.sync.recursive),\n    pollIntervalSeconds: entry.sync.poll_interval_seconds,\n    deleteBehavior: entry.sync.delete_behavior,\n  },\n  ingest: {\n    fileExtensions: Array.isArray(entry.ingest.file_extensions) ? entry.ingest.file_extensions : [],\n    maxFileSizeMb: entry.ingest.max_file_size_mb,\n    downloadPolicy: entry.ingest.download_policy,\n  },\n  stats: entry.stats ? normalizeSourceSummary(entry.stats) : null,\n})\n\nconst normalizeSourceSummary = (entry: ApiSourceSummary): SharePointSourceSummary => ({\n  sourceId: entry.source_id,\n  organizationId: entry.organization_id,\n  status: entry.status,\n  trackedItems: Number(entry.tracked_items ?? 0),\n  indexedItems: Number(entry.indexed_items ?? 0),\n  filteredItems: Number(entry.filtered_items ?? 0),\n  deletedItems: Number(entry.deleted_items ?? 0),\n  failedItems: Number(entry.failed_items ?? 0),\n  totalSizeBytes: Number(entry.total_size_bytes ?? 0),\n  largestItemSizeBytes: Number(entry.largest_item_size_bytes ?? 0),\n  lastSyncedAt: entry.last_synced_at ?? null,\n  nextSyncAt: entry.next_sync_at ?? null,\n  throttleUntil: entry.throttle_until ?? null,\n  retryCount: Number(entry.retry_count ?? 0),\n  lastError: entry.last_error ?? null,\n})\n\nconst normalizeSourceSyncAction = (\n  entry: ApiSourceSyncActionResponse,\n): SharePointSourceSyncActionResponse => ({\n  sourceId: entry.source_id,\n  organizationId: entry.organization_id,\n  status: entry.status,\n})\n\nconst normalizeSourceItemSyncAction = (\n  entry: ApiSourceItemSyncActionResponse,\n): SharePointSourceItemSyncActionResponse => ({\n  sourceId: entry.source_id,\n  organizationId: entry.organization_id,\n  itemId: entry.item_id,\n  status: entry.status,\n})\n\nconst normalizeSourceItem = (entry: ApiSourceItem): SharePointSourceItem => ({\n  itemId: entry.item_id,\n  sourceId: entry.source_id,\n  organizationId: entry.organization_id,\n  dataId: entry.data_id,\n  driveId: entry.drive_id,\n  path: entry.path ?? null,\n  name: entry.name ?? null,\n  size: entry.size ?? null,\n  cTag: entry.c_tag ?? null,\n  eTag: entry.e_tag ?? null,\n  isIndexed: Boolean(entry.is_indexed),\n  isDeleted: Boolean(entry.is_deleted),\n  status: entry.status,\n  lastSeenAt: entry.last_seen_at ?? null,\n  lastSyncedAt: entry.last_synced_at ?? null,\n  lastError: entry.last_error ?? null,\n})\n\nconst serializePayload = (payload: SharePointSourceWritePayload) => ({\n  organization_id: payload.organizationId,\n  project_id: payload.scope === \"organization\" ? null : payload.projectId,\n  label: payload.label,\n  connection_id: payload.connectionId,\n  enabled: payload.enabled,\n  indexed: payload.indexed,\n  scope: payload.scope,\n  realization_id: payload.scope === \"realization\" ? payload.realizationId : null,\n  target: {\n    site_url: payload.target.siteUrl,\n    library_name: payload.target.libraryName,\n    folder_path: payload.target.folderPath,\n  },\n  sync: {\n    recursive: payload.sync.recursive,\n    poll_interval_seconds: payload.sync.pollIntervalSeconds,\n    delete_behavior: payload.sync.deleteBehavior,\n  },\n  ingest: {\n    file_extensions: payload.ingest.fileExtensions,\n    max_file_size_mb: payload.ingest.maxFileSizeMb,\n    download_policy: payload.ingest.downloadPolicy,\n  },\n})\n\nexport async function fetchSharePointSources(params: {\n  organizationId: string\n}): Promise<SharePointSourcesResponse> {\n  const query = new URLSearchParams({ organization_id: params.organizationId.trim() })\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Quellen konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Quellen konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as ApiListResponse\n\n  return {\n    sources: (payload.sources ?? []).map(normalizeSource),\n    connections: (payload.connections ?? []).map(normalizeConnection),\n  }\n}\n\nexport async function fetchSharePointLibraries(\n  organizationId: string,\n  connectionId: string,\n  siteUrl: string,\n): Promise<SharePointLibraryOption[]> {\n  const params = new URLSearchParams({\n    organization_id: organizationId.trim(),\n    connection_id: connectionId.trim(),\n    site_url: siteUrl.trim(),\n  })\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-libraries?${params.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(\n      `SharePoint-Dokumentbibliotheken konnten nicht geladen werden: ${toErrorMessage(error)}`,\n    )\n  }\n\n  if (!response.ok) {\n    await throwResponseError(\n      response,\n      \"SharePoint-Dokumentbibliotheken konnten nicht geladen werden\",\n    )\n  }\n\n  const payload = (await response.json()) as ApiLibraryListResponse\n\n  return (payload.libraries ?? []).map((entry) => ({\n    libraryName: entry.library_name,\n    driveId: entry.drive_id,\n    listId: entry.list_id,\n  }))\n}\n\nexport async function createSharePointSource(\n  payload: SharePointSourceWritePayload,\n): Promise<SharePointSource> {\n  let response: Response\n  try {\n    response = await fetchService(`${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources`, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        ...buildServiceHeaders(),\n      },\n      body: JSON.stringify(serializePayload(payload)),\n    })\n  } catch (error) {\n    throw new Error(`SharePoint-Quelle konnte nicht angelegt werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Quelle konnte nicht angelegt werden\")\n  }\n\n  return normalizeSource((await response.json()) as ApiSource)\n}\n\nexport async function updateSharePointSource(\n  sourceId: string,\n  payload: SharePointSourceWritePayload,\n): Promise<SharePointSource> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}`,\n      {\n        method: \"PATCH\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          ...buildServiceHeaders(),\n        },\n        body: JSON.stringify(serializePayload(payload)),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Quelle konnte nicht aktualisiert werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Quelle konnte nicht aktualisiert werden\")\n  }\n\n  return normalizeSource((await response.json()) as ApiSource)\n}\n\nexport async function deleteSharePointSource(sourceId: string): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}`,\n      {\n        method: \"DELETE\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Quelle konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Quelle konnte nicht gelöscht werden\")\n  }\n}\n\nexport async function fetchSharePointSource(sourceId: string): Promise<SharePointSource> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Quelle konnte nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Quelle konnte nicht geladen werden\")\n  }\n\n  return normalizeSource((await response.json()) as ApiSource)\n}\n\nexport async function triggerSharePointSourceSync(\n  sourceId: string,\n): Promise<SharePointSourceSyncActionResponse> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/actions/sync`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Sync konnte nicht gestartet werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Sync konnte nicht gestartet werden\")\n  }\n\n  return normalizeSourceSyncAction((await response.json()) as ApiSourceSyncActionResponse)\n}\n\nexport async function retrySharePointSourceItemSync(\n  sourceId: string,\n  itemId: string,\n): Promise<SharePointSourceItemSyncActionResponse> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/items/${encodeURIComponent(itemId.trim())}/actions/resync`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(\n      `SharePoint-Datei konnte nicht neu synchronisiert werden: ${toErrorMessage(error)}`,\n    )\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Datei konnte nicht neu synchronisiert werden\")\n  }\n\n  return normalizeSourceItemSyncAction((await response.json()) as ApiSourceItemSyncActionResponse)\n}\n\nexport async function fetchSharePointSourceItems(\n  sourceId: string,\n  params: {\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: SharePointSourceItemStatus[]\n  } = {},\n): Promise<SharePointSourceItemsResponse> {\n  const query = new URLSearchParams()\n\n  if (typeof params.limit === \"number\") query.set(\"limit\", String(params.limit))\n\n  if (typeof params.offset === \"number\") query.set(\"offset\", String(params.offset))\n\n  if (params.search?.trim()) query.set(\"search\", params.search.trim())\n\n  if (params.statuses?.length) query.set(\"status\", params.statuses.join(\",\"))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/items?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`SharePoint-Bestand konnte nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"SharePoint-Bestand konnte nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as ApiSourceItemsResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSourceItem),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport const buildSharePointSourceItemsStreamUrl = (sourceId: string): string =>\n  `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/items/stream`\n\nexport async function fetchSharePointSyncJobs(\n  params: {\n    organizationId: string\n    projectId?: string | null\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = { organizationId: \"\" },\n): Promise<SyncJobListResponse> {\n  const query = new URLSearchParams({ organization_id: params.organizationId.trim() })\n\n  if (params.projectId?.trim()) query.set(\"project_id\", params.projectId.trim())\n\n  if (typeof params.limit === \"number\") query.set(\"limit\", String(params.limit))\n\n  if (typeof params.offset === \"number\") query.set(\"offset\", String(params.offset))\n\n  if (params.search?.trim()) query.set(\"search\", params.search.trim())\n\n  if (params.statuses?.length) query.set(\"status\", params.statuses.join(\",\"))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sync-jobs?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport async function fetchSharePointSourceSyncJobs(\n  sourceId: string,\n  params: {\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {},\n): Promise<SyncJobListResponse> {\n  const query = new URLSearchParams()\n\n  if (typeof params.limit === \"number\") query.set(\"limit\", String(params.limit))\n\n  if (typeof params.offset === \"number\") query.set(\"offset\", String(params.offset))\n\n  if (params.search?.trim()) query.set(\"search\", params.search.trim())\n\n  if (params.statuses?.length) query.set(\"status\", params.statuses.join(\",\"))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/sync-jobs?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport const buildSharePointSyncJobsStreamUrl = (params: {\n  organizationId: string\n  projectId?: string | null\n}): string => {\n  const query = new URLSearchParams({ organization_id: params.organizationId.trim() })\n\n  if (params.projectId?.trim()) query.set(\"project_id\", params.projectId.trim())\n\n  return `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sync-jobs/stream?${query.toString()}`\n}\n\nexport const buildSharePointSourceSyncJobsStreamUrl = (sourceId: string): string =>\n  `${SHAREPOINT_SYNCER_API_URL}/admin/sharepoint-sources/${encodeURIComponent(sourceId.trim())}/sync-jobs/stream`\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import type { Snippet } from \"svelte\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { mdiContentSaveOutline } from \"@mdi/js\"\n  import { availableProjects } from \"../../../../_shared/_logic/organizations\"\n  import ScopeSelectionRow from \"../../../../_shared/_modules/scope-selection-row\"\n  import {\n    buildScopeProjectOptions,\n    buildScopeRealizationOptions,\n    decodeScopeRealizationRef,\n    encodeScopeRealizationRef,\n    resolveDefaultScopeProjectId,\n    resolveDefaultScopeRealizationRef,\n    SCOPE_LEVEL_OPTIONS,\n    type ScopeSelectableProject,\n    type ScopeValue,\n  } from \"../../../../_shared/_logic/scope-selection\"\n\n  import {\n    fetchSharePointLibraries,\n    type SharePointConnectionOption,\n    type SharePointScope,\n    type SharePointSource,\n    type SharePointSourceWritePayload,\n  } from \"../../_logic/sharepoint\"\n\n  const DEFAULT_POLL_INTERVAL_SECONDS = 900\n  const FIXED_MAX_FILE_SIZE_MB = 500\n  const FIXED_FILE_EXTENSIONS = [\n    \".pdf\",\n    \".doc\",\n    \".docx\",\n    \".docm\",\n    \".ppt\",\n    \".pptx\",\n    \".pptm\",\n    \".xls\",\n    \".xlsx\",\n    \".xlsm\",\n    \".txt\",\n    \".md\",\n    \".csv\",\n    \".tsv\",\n    \".rtf\",\n    \".odt\",\n    \".ods\",\n    \".odp\",\n    \".json\",\n    \".xml\",\n    \".html\",\n    \".htm\",\n  ]\n\n  const {\n    organizationId,\n    projectId = null,\n    defaultRealizationId: _defaultRealizationId = null,\n    source = null,\n    connections = [],\n    onSaved,\n    onClose,\n    setActionButtonSnippet = null,\n  }: {\n    organizationId: string\n    projectId?: string | null\n    defaultRealizationId?: string | null\n    source?: SharePointSource | null\n    connections?: SharePointConnectionOption[]\n    onSaved?: (payload: SharePointSourceWritePayload) => Promise<boolean>\n    onClose?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  } = $props()\n\n  const pollIntervalOptions = [\n    { name: \"Alle 15 Minuten (Standard)\", value: \"900\" },\n    { name: \"Alle 30 Minuten\", value: \"1800\" },\n    { name: \"Stündlich\", value: \"3600\" },\n    { name: \"Alle 6 Stunden\", value: \"21600\" },\n    { name: \"Täglich\", value: \"86400\" },\n  ]\n  const getSelectValue = (event: Event): string => {\n    const target = event.currentTarget as HTMLSelectElement | null\n\n    return String(target?.value ?? \"\").trim()\n  }\n\n  const withCurrentOption = (\n    value: string,\n    options: Array<{ value: string; name: string }>,\n    suffix?: string,\n  ) => {\n    const normalizedValue = value.trim()\n\n    if (!normalizedValue) return options\n\n    if (options.some((entry) => entry.value === normalizedValue)) return options\n\n    return [\n      ...options,\n      { value: normalizedValue, name: suffix ? `${normalizedValue} ${suffix}` : normalizedValue },\n    ]\n  }\n\n  const describePollInterval = (value: string): string => {\n    const seconds = Number(value)\n\n    if (!Number.isFinite(seconds) || seconds <= 0) return \"Aktuell\"\n\n    if (seconds % 86400 === 0) return `(${Math.round(seconds / 86400)} Tage)`\n\n    if (seconds % 3600 === 0) return `(${Math.round(seconds / 3600)} Stunden)`\n\n    if (seconds % 60 === 0) return `(${Math.round(seconds / 60)} Minuten)`\n\n    return `(${seconds} Sekunden)`\n  }\n\n  const buildSiteOptionsForConnection = (connectionId: string) => {\n    const connection = connections.find((entry) => entry.connectionId === connectionId) ?? null\n    const uniqueByUrl = new Map<string, { value: string; name: string }>()\n    for (const grant of connection?.siteGrants ?? []) {\n      const siteUrl = grant.siteUrl.trim()\n\n      if (!siteUrl || uniqueByUrl.has(siteUrl)) continue\n\n      const siteName = grant.siteName?.trim() ?? \"\"\n      uniqueByUrl.set(siteUrl, {\n        value: siteUrl,\n        name: siteName ? `${siteName} · ${siteUrl}` : siteUrl,\n      })\n    }\n\n    return Array.from(uniqueByUrl.values()).sort((left, right) =>\n      left.name.localeCompare(right.name, \"de\"),\n    )\n  }\n\n  const buildInitialDraft = () => {\n    const initialScope = (source?.scope ?? \"organization\") as SharePointScope\n\n    return {\n      connectionId: source?.connectionId ?? connections[0]?.connectionId ?? \"\",\n      scope: initialScope,\n      scopeProjectId:\n        initialScope === \"project\" || initialScope === \"realization\"\n          ? (source?.projectId ?? projectId ?? \"\")\n          : \"\",\n      scopeRealizationRef:\n        initialScope === \"realization\" && source?.projectId && source?.realizationId\n          ? encodeScopeRealizationRef(source.projectId, source.realizationId)\n          : \"\",\n      siteUrl: source?.target.siteUrl ?? \"\",\n      libraryName: source?.target.libraryName ?? \"\",\n      folderPath: source?.target.folderPath ?? \"\",\n      pollIntervalSeconds: String(\n        source?.sync.pollIntervalSeconds ?? DEFAULT_POLL_INTERVAL_SECONDS,\n      ),\n    }\n  }\n\n  let draft = $state(buildInitialDraft())\n  let libraryOptionsState = $state<Array<{ value: string; name: string }>>([])\n  let saving = $state(false)\n  let loadingLibraries = $state(false)\n  let error = $state<string | null>(null)\n  let libraryError = $state<string | null>(null)\n  let lastLibraryKey = $state<string | null>(null)\n  let libraryRequestId = 0\n\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const scopeProjectOptions = $derived(buildScopeProjectOptions(scopedProjects, organizationId))\n  const scopeRealizationOptions = $derived(\n    buildScopeRealizationOptions(scopedProjects, organizationId),\n  )\n\n  const connectionSelectOptions = $derived(\n    withCurrentOption(\n      draft.connectionId,\n      connections.map((entry) => ({\n        value: entry.connectionId,\n        name: `${entry.label}${entry.hasClientSecret ? \"\" : \" (noch nicht bereit)\"}`,\n      })),\n      \"(nicht mehr verfügbar)\",\n    ),\n  )\n  const siteOptions = $derived(\n    withCurrentOption(\n      draft.siteUrl,\n      buildSiteOptionsForConnection(draft.connectionId),\n      \"(nicht mehr freigegeben)\",\n    ),\n  )\n  const libraryOptions = $derived(\n    withCurrentOption(draft.libraryName, libraryOptionsState, \"(nicht mehr verfügbar)\"),\n  )\n  const pollOptions = $derived(\n    withCurrentOption(\n      draft.pollIntervalSeconds,\n      pollIntervalOptions,\n      describePollInterval(draft.pollIntervalSeconds),\n    ),\n  )\n\n  const ensureScopeSelection = (nextScope: ScopeValue | \"global\") => {\n    if (nextScope === \"project\") {\n      draft = {\n        ...draft,\n        scope: \"project\",\n        scopeProjectId: resolveDefaultScopeProjectId(\n          scopeProjectOptions,\n          draft.scopeProjectId || projectId,\n        ),\n        scopeRealizationRef: \"\",\n      }\n\n      return\n    }\n\n    if (nextScope === \"realization\") {\n      const nextRealizationRef = resolveDefaultScopeRealizationRef(\n        scopeRealizationOptions,\n        draft.scopeProjectId || projectId,\n        source?.realizationId ?? _defaultRealizationId,\n      )\n      draft = {\n        ...draft,\n        scope: \"realization\",\n        scopeProjectId: decodeScopeRealizationRef(nextRealizationRef).projectId,\n        scopeRealizationRef: nextRealizationRef,\n      }\n\n      return\n    }\n\n    draft = {\n      ...draft,\n      scope: \"organization\",\n      scopeProjectId: \"\",\n      scopeRealizationRef: \"\",\n    }\n  }\n\n  const loadLibraries = async (connectionId: string, siteUrl: string) => {\n    const requestId = ++libraryRequestId\n    loadingLibraries = true\n    libraryError = null\n    try {\n      const libraries = await fetchSharePointLibraries(organizationId, connectionId, siteUrl)\n\n      if (requestId !== libraryRequestId) return\n\n      libraryOptionsState = libraries\n        .map((entry) => ({\n          value: entry.libraryName,\n          name: entry.libraryName,\n        }))\n        .sort((left, right) => left.name.localeCompare(right.name, \"de\"))\n\n      if (!draft.libraryName.trim() && libraryOptionsState[0]?.value) {\n        draft = { ...draft, libraryName: libraryOptionsState[0].value }\n      }\n    } catch (err) {\n      if (requestId !== libraryRequestId) return\n\n      libraryOptionsState = []\n      libraryError = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (requestId === libraryRequestId) loadingLibraries = false\n    }\n  }\n\n  const syncLibraries = (connectionId: string, siteUrl: string) => {\n    const normalizedConnectionId = connectionId.trim()\n    const normalizedSiteUrl = siteUrl.trim()\n    const key =\n      normalizedConnectionId && normalizedSiteUrl\n        ? `${organizationId}:${normalizedConnectionId}:${normalizedSiteUrl}`\n        : null\n\n    if (!key) {\n      lastLibraryKey = null\n      libraryOptionsState = []\n      libraryError = null\n      loadingLibraries = false\n\n      return\n    }\n\n    if (key === lastLibraryKey) return\n\n    lastLibraryKey = key\n    void loadLibraries(normalizedConnectionId, normalizedSiteUrl)\n  }\n\n  const validate = (): string | null => {\n    if (!draft.connectionId.trim()) return \"Bitte eine Microsoft-Verbindung auswählen.\"\n\n    if (!draft.siteUrl.trim()) return \"Bitte eine freigegebene SharePoint-Site auswählen.\"\n\n    if (!draft.libraryName.trim()) return \"Bitte eine Dokumentbibliothek auswählen.\"\n\n    const pollInterval = Number(draft.pollIntervalSeconds)\n\n    if (!Number.isFinite(pollInterval) || pollInterval < 60) {\n      return \"Bitte ein gültiges Polling-Intervall auswählen.\"\n    }\n\n    if (draft.scope === \"project\" && !draft.scopeProjectId.trim()) {\n      return \"Bitte einen Agenten auswählen.\"\n    }\n\n    if (draft.scope === \"realization\") {\n      const scopedRealization = decodeScopeRealizationRef(draft.scopeRealizationRef)\n\n      if (!scopedRealization.projectId || !scopedRealization.realizationId) {\n        return \"Bitte eine Sprache auswählen.\"\n      }\n    }\n\n    return null\n  }\n\n  const resolveProjectId = (): string | null => {\n    if (draft.scope === \"organization\") return null\n\n    if (draft.scope === \"project\") return draft.scopeProjectId.trim() || null\n\n    return decodeScopeRealizationRef(draft.scopeRealizationRef).projectId || null\n  }\n\n  const resolveRealizationId = (): string | null => {\n    if (draft.scope !== \"realization\") return null\n\n    return decodeScopeRealizationRef(draft.scopeRealizationRef).realizationId || null\n  }\n\n  const buildPayload = (): SharePointSourceWritePayload => ({\n    organizationId,\n    projectId: resolveProjectId(),\n    label: draft.siteUrl.trim(),\n    connectionId: draft.connectionId.trim(),\n    enabled: true,\n    indexed: true,\n    scope: draft.scope,\n    realizationId: resolveRealizationId(),\n    target: {\n      siteUrl: draft.siteUrl.trim(),\n      libraryName: draft.libraryName.trim(),\n      folderPath: draft.folderPath.trim() || null,\n    },\n    sync: {\n      recursive: true,\n      pollIntervalSeconds: Number(draft.pollIntervalSeconds),\n      deleteBehavior: \"remove_from_index\",\n    },\n    ingest: {\n      fileExtensions: FIXED_FILE_EXTENSIONS,\n      maxFileSizeMb: FIXED_MAX_FILE_SIZE_MB,\n      downloadPolicy: \"on_ctag_change\",\n    },\n  })\n\n  const handleSubmit = async () => {\n    if (!onSaved || saving || loadingLibraries) return\n\n    error = validate()\n\n    if (error) return\n\n    saving = true\n    try {\n      const ok = await onSaved(buildPayload())\n\n      if (ok) onClose?.()\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      saving = false\n    }\n  }\n\n  onMount(() => {\n    draft = buildInitialDraft()\n\n    if (!draft.siteUrl && draft.connectionId) {\n      const options = buildSiteOptionsForConnection(draft.connectionId)\n\n      if (options[0]?.value) {\n        draft = { ...draft, siteUrl: options[0].value }\n      }\n    }\n\n    syncLibraries(draft.connectionId, draft.siteUrl)\n    setActionButtonSnippet?.(actionButtons)\n    const input = document.querySelector<HTMLInputElement>(\n      '[data-input-id=\"sharepoint-source-connection\"]',\n    )\n    input?.focus()\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n</script>\n\n<div class=\"overlay form\">\n    <div class=\"row two\">\n        <Input\n      id=\"sharepoint-source-connection\"\n      placeholder=\"Microsoft-Verbindung\"\n      type=\"select\"\n      bind:value={draft.connectionId}\n      options={connectionSelectOptions}\n      disabled={saving}\n      tooltip=\"Die organisationsweit hinterlegte Microsoft-Verbindung, über die die SharePoint-Site gelesen wird.\"\n      required\n      onChange={(event) => {\n        const nextConnectionId = getSelectValue(event)\n        const nextSiteOptions = buildSiteOptionsForConnection(nextConnectionId)\n        const nextSiteUrl =\n          nextSiteOptions.find((entry) => entry.value === draft.siteUrl)?.value ??\n          nextSiteOptions[0]?.value ??\n          \"\"\n        draft = {\n          ...draft,\n          connectionId: nextConnectionId,\n          siteUrl: nextSiteUrl,\n          libraryName: \"\",\n        }\n        syncLibraries(nextConnectionId, nextSiteUrl)\n      }}\n    />\n        <Input\n      id=\"sharepoint-source-site\"\n      placeholder=\"Site-URL\"\n      type=\"select\"\n      bind:value={draft.siteUrl}\n      options={siteOptions}\n      disabled={saving || siteOptions.length === 0}\n      tooltip=\"Nur SharePoint-Sites, die organisationsweit bereits freigegeben wurden, stehen hier zur Auswahl.\"\n      required\n      onChange={(event) => {\n        draft = {\n          ...draft,\n          siteUrl: getSelectValue(event),\n          libraryName: \"\",\n        }\n        syncLibraries(draft.connectionId, getSelectValue(event))\n      }}\n    />\n    </div>\n\n    <ScopeSelectionRow\n    scopeId=\"sharepoint-source-scope\"\n    projectIdField=\"sharepoint-source-project\"\n    realizationIdField=\"sharepoint-source-realization\"\n    bind:scope={draft.scope}\n    bind:projectId={draft.scopeProjectId}\n    bind:realizationRef={draft.scopeRealizationRef}\n    scopeOptions={SCOPE_LEVEL_OPTIONS}\n    projectOptions={scopeProjectOptions}\n    realizationOptions={scopeRealizationOptions}\n    scopePlaceholder=\"Ebene\"\n    projectPlaceholder=\"Agent\"\n    realizationPlaceholder=\"Agent (Sprache)\"\n    scopeTooltip=\"Legt fest, ob diese SharePoint-Quelle organisationsweit, für einen Agenten oder nur für eine Sprache verwendet wird.\"\n    projectTooltip=\"Wählen Sie den Agenten aus, für den diese SharePoint-Quelle gelten soll.\"\n    realizationTooltip=\"Wählen Sie die Sprache aus, für die diese SharePoint-Quelle gelten soll.\"\n    disabled={saving}\n    rowClass=\"row two\"\n    onScopeChange={ensureScopeSelection}\n    onProjectChange={(nextProjectId) => {\n      draft = { ...draft, scopeProjectId: nextProjectId }\n    }}\n    onRealizationChange={(nextRealizationRef) => {\n      draft = {\n        ...draft,\n        scopeRealizationRef: nextRealizationRef,\n        scopeProjectId: decodeScopeRealizationRef(nextRealizationRef).projectId,\n      }\n    }}\n  />\n\n    {#if loadingLibraries && draft.siteUrl}\n        <div class=\"loading-state\" role=\"status\" aria-live=\"polite\">\n            <Circle size=\"2.25\" color=\"#741e20\" unit=\"rem\" />\n            <div class=\"loading-copy\">\n                <strong>Dokumentbibliotheken werden geladen</strong>\n                <span\n          >Die weiteren Eingabefelder erscheinen, sobald die ausgewählte SharePoint-Site ausgelesen wurde.</span\n        >\n            </div>\n        </div>\n    {:else}\n        <div class=\"row two\">\n            <Input\n        id=\"sharepoint-source-library\"\n        placeholder=\"Dokumentbibliothek\"\n        type=\"select\"\n        bind:value={draft.libraryName}\n        options={libraryOptions}\n        disabled={saving || libraryOptions.length === 0}\n        tooltip=\"Die Bibliotheken werden direkt aus der ausgewählten SharePoint-Site gelesen.\"\n        required\n      />\n\n            <Input\n        id=\"sharepoint-source-poll\"\n        placeholder=\"Polling-Intervall\"\n        type=\"select\"\n        bind:value={draft.pollIntervalSeconds}\n        options={pollOptions}\n        disabled={saving}\n        tooltip=\"Wie häufig nach Änderungen in SharePoint geschaut wird.\"\n      />\n        </div>\n    {/if}\n\n    {#if !siteOptions.length}\n        <p class=\"hint\">Für diese Microsoft-Verbindung sind noch keine SharePoint-Sites freigegeben.</p>\n    {/if}\n    {#if libraryError}\n        <p class=\"error\">{libraryError}</p>\n    {:else if draft.siteUrl && !loadingLibraries && !libraryOptionsState.length}\n        <p class=\"hint\">Für diese Site wurden keine Dokumentbibliotheken gefunden.</p>\n    {/if}\n    {#if error}\n        <p class=\"error\">{error}</p>\n    {/if}\n</div>\n\n{#snippet actionButtons()}\n    <CTA\n    type=\"primaryButton\"\n    content={saving ? \"Speichern...\" : source ? \"Quelle speichern\" : \"Quelle anlegen\"}\n    icon={mdiContentSaveOutline}\n    disabled={saving || loadingLibraries}\n    onClick={handleSubmit}\n  />\n{/snippet}\n\n<style lang=\"less\">\n  .overlay {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-100);\n  }\n\n  .row {\n    width: 100%;\n  }\n\n  .row.two {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 0.8rem;\n  }\n\n  .loading-state {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 1rem;\n    min-height: 8.5rem;\n    padding: 1.25rem 1.5rem;\n    border: 1px solid var(--surface-border, rgba(0, 0, 0, 0.1));\n  }\n\n  .loading-copy {\n    display: flex;\n    flex-direction: column;\n    gap: 0.35rem;\n    max-width: 28rem;\n    color: var(--kontext-text-subtle, rgba(0, 0, 0, 0.72));\n  }\n\n  .loading-copy strong {\n    color: var(--kontext-text, inherit);\n    font-size: 0.95rem;\n    font-weight: 600;\n  }\n\n  .loading-copy span {\n    font-size: 0.9rem;\n    line-height: 1.45;\n  }\n\n  .hint,\n  .error {\n    margin: 0;\n  }\n\n  .hint {\n    color: var(--text-400);\n  }\n\n  .error {\n    color: var(--danger-600, #c62828);\n  }\n\n  @media (max-width: 1000px) {\n    .row.two {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","import { mdiPencil, mdiRefresh, mdiTrashCanOutline } from \"@mdi/js\"\nimport { indexActionTooltip } from \"../../../../../../../../_shared/_logic/index-action-tooltips\"\nimport type { SharePointSourceRow } from \"../_shared/_logic/contract\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\n\nexport default function buildRowActions({\n  row,\n  canManage = false,\n  syncingSourceId = null,\n  onSync,\n  onEdit,\n  onDelete,\n}: {\n  row: SharePointSourceRow\n  canManage?: boolean\n  syncingSourceId?: string | null\n  onSync: (row: SharePointSourceRow) => void | Promise<void>\n  onEdit: (row: SharePointSourceRow) => void\n  onDelete: (row: SharePointSourceRow) => void | Promise<void>\n}): TableRowAction[] {\n  const actions: TableRowAction[] = []\n\n  actions.push({\n    id: \"action-0\",\n    label: \"SharePoint jetzt synchronisieren\",\n    onClick: () => {\n      void onSync(row)\n    },\n    icon: mdiRefresh,\n    disabled: !canManage || syncingSourceId === row.source.sourceId,\n    tooltip: indexActionTooltip(\"sharepoint-sync\"),\n  })\n\n  actions.push({\n    id: \"action-1\",\n    label: \"SharePoint-Quelle bearbeiten\",\n    onClick: () => {\n      onEdit(row)\n    },\n    icon: mdiPencil,\n    disabled: !canManage,\n    tooltip: indexActionTooltip(\"sharepoint-edit\"),\n  })\n\n  actions.push({\n    id: \"action-2\",\n    label: \"SharePoint-Quelle löschen\",\n    onClick: () => {\n      void onDelete(row)\n    },\n    icon: mdiTrashCanOutline,\n    disabled: !canManage,\n    tooltip: indexActionTooltip(\"sharepoint-delete\"),\n    tone: \"danger\",\n  })\n\n  return actions\n}\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n\n  import type { SharePointSourceTag } from \"../../_logic/contract\"\n\n  const {\n    tag,\n    class: className = \"\",\n  }: {\n    tag: SharePointSourceTag\n    class?: string\n  } = $props()\n</script>\n\n<StatusTag\n  class={`sharepoint-source-tag ${className}`.trim()}\n  size=\"sm\"\n  label={tag.label}\n  subLabel={tag.subLabel ?? undefined}\n  color={tag.color}\n  icon={tag.icon ?? undefined}\n  iconText={tag.iconText ?? undefined}\n  tooltipContent={tag.tooltip ?? tag.ariaLabel ?? tag.label}\n  tooltipHtml={tag.tooltipHtml ?? false}\n  tooltipClassName={tag.tooltipClassName ?? \"\"}\n  disableTitle={true}\n/>\n\n<style lang=\"less\">\n  :global(.sharepoint-source-tag.status-tag) {\n    max-width: min(var(--sharepoint-source-tag-max, 24rem), 100%);\n    vertical-align: middle;\n  }\n\n  :global(.sharepoint-source-tag .status-tag__label) {\n    min-width: 0;\n    max-width: 100%;\n    overflow: hidden;\n  }\n\n  :global(.sharepoint-source-tag .status-tag__label:not(.status-tag__label--stacked)),\n  :global(.sharepoint-source-tag .status-tag__main-label),\n  :global(.sharepoint-source-tag .status-tag__sub-label) {\n    min-width: 0;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SharePointSourceRow } from \"../../_logic/contract\"\n  import SharePointSourceTag from \"../share-point-source-tag\"\n\n  const { row }: { row: SharePointSourceRow } = $props()\n</script>\n\n<div class=\"sharepoint-source-cell\">\n    <SharePointSourceTag tag={row.sourceTag} />\n</div>\n\n<style lang=\"less\">\n  .sharepoint-source-cell {\n    min-width: 0;\n    --sharepoint-source-tag-max: 28rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SharePointSourceRow } from \"../../_logic/contract\"\n  import SharePointSourceTag from \"../share-point-source-tag\"\n\n  const { row }: { row: SharePointSourceRow } = $props()\n</script>\n\n<div class=\"sharepoint-state-cell\">\n    <SharePointSourceTag tag={row.stateTag} />\n</div>\n\n<style lang=\"less\">\n  .sharepoint-state-cell {\n    min-width: 0;\n    --sharepoint-source-tag-max: 17rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SharePointSourceRow } from \"../../../../_shared/_logic/contract\"\n  import SharePointSourceTag from \"../../../../_shared/_modules/share-point-source-tag\"\n\n  const { row }: { row: SharePointSourceRow } = $props()\n</script>\n\n<div class=\"sharepoint-sync-cell\">\n    <SharePointSourceTag tag={row.syncTag} />\n</div>\n\n<style lang=\"less\">\n  .sharepoint-sync-cell {\n    min-width: 0;\n    --sharepoint-source-tag-max: 18rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { SharePointSourceRow } from \"../../../../_shared/_logic/contract\"\n  import SharePointSourceTag from \"../../../../_shared/_modules/share-point-source-tag\"\n\n  const { row }: { row: SharePointSourceRow } = $props()\n</script>\n\n<div class=\"sharepoint-target-cell\">\n    <SharePointSourceTag tag={row.targetTag} />\n</div>\n\n<style lang=\"less\">\n  .sharepoint-target-cell {\n    min-width: 0;\n    --sharepoint-source-tag-max: 19rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import type { SharePointSourceColumnId, SharePointSourceRow } from \"../../_shared/_logic/contract\"\n  import SourceCell from \"../../_shared/_modules/source-cell\"\n  import StateCell from \"../../_shared/_modules/state-cell\"\n  import SyncCell from \"./_modules/sync-cell\"\n  import TargetCell from \"./_modules/target-cell\"\n\n  const {\n    row,\n    column,\n  }: {\n    row: SharePointSourceRow\n    column: ColumnDef\n  } = $props()\n\n  const columnId = $derived(column.id as SharePointSourceColumnId)\n</script>\n\n{#if columnId === \"source\"}\n    <SourceCell {row} />\n{:else if columnId === \"target\"}\n    <TargetCell {row} />\n{:else if columnId === \"sync\"}\n    <SyncCell {row} />\n{:else if columnId === \"state\"}\n    <StateCell {row} />\n{:else}\n    {row[column.id] as any}\n{/if}\n","import type { StatusDefinition } from \"@kontextwerk/web-sdk/core/display/status\"\n\nimport type { SharePointSource } from \"../sharepoint\"\n\ntype RealizationOption = { value: string; name: string }\n\ntype ScopeSource = Pick<SharePointSource, \"scope\" | \"realizationId\">\ntype StatusSource = Pick<SharePointSource, \"enabled\" | \"indexed\">\n\nexport const formatSharePointFolder = (folderPath?: string | null) => {\n  const normalized = String(folderPath ?? \"\").trim()\n\n  return normalized || \"Gesamte Bibliothek\"\n}\n\nexport const describeSharePointPollInterval = (seconds?: number | null): string => {\n  const value = Number(seconds ?? 0)\n\n  if (!Number.isFinite(value) || value <= 0) return \"Manuell\"\n\n  if (value === 900) return \"Alle 15 Minuten\"\n\n  if (value === 1_800) return \"Alle 30 Minuten\"\n\n  if (value === 3_600) return \"Stündlich\"\n\n  if (value === 21_600) return \"Alle 6 Stunden\"\n\n  if (value === 86_400) return \"Täglich\"\n\n  if (value % 86_400 === 0) return `Alle ${Math.round(value / 86_400)} Tage`\n\n  if (value % 3_600 === 0) return `Alle ${Math.round(value / 3_600)} Stunden`\n\n  if (value % 60 === 0) return `Alle ${Math.round(value / 60)} Minuten`\n\n  return `${value} Sekunden`\n}\n\nexport const statusForSharePointPollInterval = (\n  seconds?: number | null,\n): StatusDefinition<string> => {\n  const value = Number(seconds ?? 0)\n  const label = describeSharePointPollInterval(value)\n\n  if (!Number.isFinite(value) || value <= 0) {\n    return { value: \"poll-manual\", label, color: \"amber\" }\n  }\n\n  if (value <= 3_600) {\n    return { value: \"poll-fast\", label, color: \"emerald\" }\n  }\n\n  if (value <= 86_400) {\n    return { value: \"poll-regular\", label, color: \"blue\" }\n  }\n\n  return { value: \"poll-slow\", label, color: \"cyan\" }\n}\n\nexport const describeSharePointScope = (\n  source: ScopeSource,\n  realizationOptions: ReadonlyArray<RealizationOption> = [],\n): string => {\n  if (source.scope === \"organization\") return \"Organisation\"\n\n  if (source.scope === \"project\") return \"Agent\"\n\n  const realizationLabel =\n    realizationOptions.find((entry) => entry.value === source.realizationId)?.name ??\n    source.realizationId\n\n  return realizationLabel ? `Sprache · ${realizationLabel}` : \"Sprache\"\n}\n\nexport const statusForSharePointScope = (\n  source: ScopeSource,\n  realizationOptions: ReadonlyArray<RealizationOption> = [],\n): StatusDefinition<string> => {\n  const label = describeSharePointScope(source, realizationOptions)\n\n  if (source.scope === \"organization\")\n    return { value: \"scope-organization\", label, color: \"indigo\" }\n\n  if (source.scope === \"project\") return { value: \"scope-project\", label, color: \"blue\" }\n\n  return { value: \"scope-realization\", label, color: \"teal\" }\n}\n\nexport const statusForSharePointSource = (source: StatusSource): StatusDefinition<string> => {\n  if (!source.enabled) return { value: \"disabled\", label: \"Inaktiv\", color: \"slate\" }\n\n  if (!source.indexed) return { value: \"stored\", label: \"Nicht indiziert\", color: \"amber\" }\n\n  return { value: \"indexed\", label: \"Indiziert\", color: \"emerald\" }\n}\n","import type { StatusColorName } from \"@kontextwerk/web-sdk/core/display/status\"\nimport type { ColumnDef, DataRow } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\nimport {\n  mdiAlertCircleOutline,\n  mdiCancel,\n  mdiCloudAlert,\n  mdiCloudCheckOutline,\n  mdiCloudSync,\n  mdiFolderUploadOutline,\n  mdiMicrosoftSharepoint,\n  mdiPauseCircleOutline,\n  mdiTimerSand,\n} from \"@mdi/js\"\n\nimport type {\n  SharePointSource,\n  SharePointSourceHealthStatus,\n} from \"../../../../../../../_shared/_logic/sharepoint\"\nimport {\n  describeSharePointPollInterval,\n  describeSharePointScope,\n  formatSharePointFolder,\n} from \"../../../../../../../_shared/_logic/share-point-presentation\"\nimport {\n  buildRichTooltip,\n  escapeTooltipHtml,\n  safeTooltipField,\n  tooltipTitle,\n} from \"../../../../../../../../_shared/_logic/rich-tooltips\"\nimport type {\n  SharePointSourceColumnId,\n  SharePointSourceRow,\n  SharePointSourceTableContext,\n  SharePointSourceTag,\n} from \"../_shared/_logic/contract\"\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst emptyLabel = \"Nicht hinterlegt\"\nconst missingLabel = \"-\"\n\nconst defaultContext: SharePointSourceTableContext = {\n  realizationOptions: [],\n}\n\nconst cleanText = (value: unknown, fallback = missingLabel): string => {\n  const text =\n    typeof value === \"string\"\n      ? value.trim()\n      : value === null || value === undefined\n        ? \"\"\n        : String(value).trim()\n\n  return text || fallback\n}\n\nconst optionalText = (value: unknown): string | null => {\n  const text = cleanText(value, \"\")\n\n  return text || null\n}\n\nconst numberValue = (value: unknown): number => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return 0\n\n  return Math.round(numeric)\n}\n\nconst formatCount = (value: unknown): string => numberFormatter.format(numberValue(value))\n\nconst plural = (value: number, singular: string, pluralLabel: string): string =>\n  value === 1 ? singular : pluralLabel\n\nconst formatFileCount = (value: unknown): string => {\n  const count = numberValue(value)\n\n  return `${formatCount(count)} ${plural(count, \"Datei\", \"Dateien\")}`\n}\n\nconst formatFractionFileCount = (indexedValue: unknown, totalValue: unknown): string => {\n  const indexed = numberValue(indexedValue)\n  const total = numberValue(totalValue)\n\n  if (total <= 0) return \"0 Dateien\"\n\n  return `${formatCount(indexed)}/${formatCount(total)} Dateien`\n}\n\nconst coveragePercentage = (indexedValue: unknown, totalValue: unknown): number => {\n  const indexed = numberValue(indexedValue)\n  const total = numberValue(totalValue)\n\n  if (total <= 0) return 100\n\n  return Math.max(0, Math.min(100, Math.round((indexed / total) * 100)))\n}\n\nconst formatDateTime = (value?: string | null): string => {\n  if (!value) return missingLabel\n\n  const date = new Date(value)\n\n  if (!Number.isFinite(date.getTime())) return value\n\n  return date.toLocaleString(\"de-DE\", {\n    day: \"2-digit\",\n    month: \"2-digit\",\n    year: \"numeric\",\n    hour: \"2-digit\",\n    minute: \"2-digit\",\n  })\n}\n\nconst timestamp = (value?: string | null): number | null => {\n  if (!value) return null\n\n  const date = new Date(value)\n\n  return Number.isFinite(date.getTime()) ? date.getTime() : null\n}\n\nconst formatBytes = (value?: number | null): string => {\n  const bytes = Number(value ?? 0)\n\n  if (!Number.isFinite(bytes) || bytes <= 0) return \"0 B\"\n\n  const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"]\n  const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1)\n  const normalized = bytes / 1024 ** exponent\n\n  return `${normalized.toLocaleString(\"de-DE\", { maximumFractionDigits: exponent === 0 ? 0 : 1 })} ${units[exponent]}`\n}\n\nconst formatMegabytes = (value?: number | null): string => {\n  const mb = Number(value ?? 0)\n\n  if (!Number.isFinite(mb) || mb <= 0) return missingLabel\n\n  return `${numberFormatter.format(mb)} MB`\n}\n\nconst formatExtensions = (values?: string[] | null): string => {\n  const extensions = (values ?? [])\n    .map((entry) => entry.trim())\n    .filter(Boolean)\n    .map((entry) => (entry.startsWith(\".\") ? entry : `.${entry}`))\n\n  return extensions.length ? extensions.join(\", \") : \"Alle Dateitypen\"\n}\n\nconst formatDownloadPolicy = (\n  value?: SharePointSource[\"ingest\"][\"downloadPolicy\"] | null,\n): string => {\n  if (value === \"on_ctag_change\") return \"Bei cTag-Änderung\"\n\n  return \"Immer herunterladen\"\n}\n\nconst healthLabel = (value?: SharePointSourceHealthStatus | null): string => {\n  if (value === \"ready\") return \"Bereit\"\n\n  if (value === \"failed\") return \"Fehler\"\n\n  if (value === \"throttled\") return \"Gedrosselt\"\n\n  if (value === \"pending\") return \"Wartet\"\n\n  return \"Noch nicht geprüft\"\n}\n\nconst legacySourceStatusLabel = (source: SharePointSource): string => {\n  if (!source.enabled) return \"Inaktiv\"\n\n  if (!source.indexed) return \"Nicht indiziert\"\n\n  return \"Indiziert\"\n}\n\nconst compactError = (value?: string | null): string | null => {\n  const text = optionalText(value)\n\n  if (!text) return null\n\n  return text.length > 34 ? `${text.slice(0, 31).trimEnd()}...` : text\n}\n\nconst buildSearchText = (parts: unknown[]): string =>\n  parts\n    .map((part) => cleanText(part, \"\"))\n    .filter(Boolean)\n    .join(\" \")\n    .toLowerCase()\n\nconst richTitle = (value: unknown): string =>\n  tooltipTitle(escapeTooltipHtml(cleanText(value, emptyLabel)))\n\nexport const describeSiteUrl = (siteUrl: string) => {\n  try {\n    const parsed = new URL(siteUrl)\n    const host = parsed.host || siteUrl\n    const path = `${parsed.pathname}${parsed.search}`.trim() || \"/\"\n\n    return { host, path }\n  } catch {\n    return { host: siteUrl, path: \"\" }\n  }\n}\n\nexport const buildSharePointSourceColumns = (): ColumnDef[] => [\n  {\n    id: \"source\" satisfies SharePointSourceColumnId,\n    label: \"Quelle\",\n    isPrimary: true,\n    tooltip: \"SharePoint-Quelle, Site und Microsoft-Zielkennung.\",\n    getSortValue: (row: DataRow) => (row as SharePointSourceRow).sourceTag.sortValue,\n  },\n  {\n    id: \"target\" satisfies SharePointSourceColumnId,\n    label: \"Ziel\",\n    tooltip: \"Dokumentbibliothek, Ordner und Ingest-Regeln.\",\n    width: \"18rem\",\n    getSortValue: (row: DataRow) => (row as SharePointSourceRow).targetTag.sortValue,\n  },\n  {\n    id: \"sync\" satisfies SharePointSourceColumnId,\n    label: \"Sync\",\n    tooltip: \"Synchronisationsabdeckung, Intervall und letzte Aktivität.\",\n    width: \"17rem\",\n    getSortValue: (row: DataRow) => (row as SharePointSourceRow).syncTag.sortValue,\n  },\n  {\n    id: \"state\" satisfies SharePointSourceColumnId,\n    label: \"Zustand\",\n    tooltip: \"Scope, Aktivierung, Indexierung und Health-Status.\",\n    width: \"16rem\",\n    getSortValue: (row: DataRow) => (row as SharePointSourceRow).stateTag.sortValue,\n  },\n]\n\nexport const buildSourceTag = (source: SharePointSource): SharePointSourceTag => {\n  const site = describeSiteUrl(source.target.siteUrl)\n  const label = optionalText(source.label) ?? site.host ?? emptyLabel\n  const subLabel = optionalText(source.resolved.siteName) ?? optionalText(site.path) ?? site.host\n\n  return {\n    id: `${source.sourceId}:source`,\n    label,\n    subLabel,\n    color: \"teal\",\n    icon: mdiMicrosoftSharepoint,\n    tooltip: buildRichTooltip(\n      richTitle(label),\n      safeTooltipField(\"Site-URL\", source.target.siteUrl),\n      safeTooltipField(\"Connection-ID\", source.connectionId),\n      safeTooltipField(\"Source-ID\", source.sourceId),\n      safeTooltipField(\"Site-ID\", source.resolved.siteId),\n      safeTooltipField(\"Drive-ID\", source.resolved.driveId),\n      safeTooltipField(\"List-ID\", source.resolved.listId),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: \"rich-tooltip\",\n    ariaLabel: [label, subLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      label,\n      subLabel,\n      source.target.siteUrl,\n      source.connectionId,\n      source.sourceId,\n      source.resolved.siteId,\n      source.resolved.driveId,\n      source.resolved.listId,\n    ]),\n    sortValue: label.toLowerCase(),\n  }\n}\n\nexport const buildTargetTag = (source: SharePointSource): SharePointSourceTag => {\n  const label = cleanText(source.target.libraryName, \"Dokumentbibliothek\")\n  const subLabel = formatSharePointFolder(source.target.folderPath)\n  const extensions = formatExtensions(source.ingest.fileExtensions)\n\n  return {\n    id: `${source.sourceId}:target`,\n    label,\n    subLabel,\n    color: \"blue\",\n    icon: mdiFolderUploadOutline,\n    tooltip: buildRichTooltip(\n      richTitle(\"Ziel\"),\n      safeTooltipField(\"Bibliothek\", label),\n      safeTooltipField(\"Ordner\", subLabel),\n      safeTooltipField(\"Rekursiv\", source.sync.recursive ? \"Ja\" : \"Nein\"),\n      safeTooltipField(\"Dateitypen\", extensions),\n      safeTooltipField(\"Max. Dateigröße\", formatMegabytes(source.ingest.maxFileSizeMb)),\n      safeTooltipField(\"Download\", formatDownloadPolicy(source.ingest.downloadPolicy)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: \"rich-tooltip\",\n    ariaLabel: [label, subLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      label,\n      subLabel,\n      extensions,\n      source.sync.recursive ? \"rekursiv\" : \"nicht rekursiv\",\n    ]),\n    sortValue: `${label} ${subLabel}`.toLowerCase(),\n  }\n}\n\nexport const buildSyncTag = (source: SharePointSource): SharePointSourceTag => {\n  const stats = source.stats ?? null\n  const tracked = numberValue(stats?.trackedItems)\n  const indexed = numberValue(stats?.indexedItems)\n  const failed = numberValue(stats?.failedItems)\n  const percentage = coveragePercentage(indexed, tracked)\n  const interval = describeSharePointPollInterval(source.sync.pollIntervalSeconds)\n  const health = stats?.status ?? null\n  let color: StatusColorName =\n    tracked <= 0 ? \"cyan\" : percentage >= 100 ? \"emerald\" : percentage >= 70 ? \"amber\" : \"orange\"\n  let icon = percentage >= 100 ? mdiCloudCheckOutline : mdiCloudSync\n\n  if (failed > 0 || health === \"failed\") {\n    color = \"rose\"\n    icon = mdiCloudAlert\n  } else if (health === \"throttled\") {\n    color = \"amber\"\n    icon = mdiTimerSand\n  }\n\n  return {\n    id: `${source.sourceId}:sync`,\n    label: formatFractionFileCount(indexed, tracked),\n    subLabel: interval,\n    color,\n    icon,\n    tooltip: buildRichTooltip(\n      richTitle(\"Sync\"),\n      safeTooltipField(\"Status\", healthLabel(health)),\n      safeTooltipField(\"Erfasst\", formatFileCount(tracked)),\n      safeTooltipField(\"Indiziert\", formatFileCount(indexed)),\n      safeTooltipField(\"Ausgefiltert\", formatFileCount(stats?.filteredItems)),\n      safeTooltipField(\"Gelöscht\", formatFileCount(stats?.deletedItems)),\n      safeTooltipField(\"Fehlgeschlagen\", formatFileCount(failed)),\n      safeTooltipField(\"Gesamtgröße\", formatBytes(stats?.totalSizeBytes)),\n      safeTooltipField(\"Größte Datei\", formatBytes(stats?.largestItemSizeBytes)),\n      safeTooltipField(\"Letzter Sync\", formatDateTime(stats?.lastSyncedAt)),\n      safeTooltipField(\"Nächster Sync\", formatDateTime(stats?.nextSyncAt)),\n      safeTooltipField(\"Retry\", formatCount(stats?.retryCount)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: \"rich-tooltip\",\n    ariaLabel: [formatFractionFileCount(indexed, tracked), interval].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      formatFractionFileCount(indexed, tracked),\n      interval,\n      healthLabel(health),\n      stats?.lastError,\n      stats?.lastSyncedAt,\n      stats?.nextSyncAt,\n    ]),\n    sortValue: percentage,\n  }\n}\n\nexport const buildStateTag = (\n  source: SharePointSource,\n  context: SharePointSourceTableContext = defaultContext,\n): SharePointSourceTag => {\n  const scopeLabel = describeSharePointScope(source, context.realizationOptions)\n  const health = source.stats?.status ?? null\n  const errorLabel = compactError(source.stats?.lastError)\n  let label = source.indexed ? \"Indiziert\" : \"Nicht indiziert\"\n  let color: StatusColorName = source.indexed ? \"emerald\" : \"indigo\"\n  let icon = source.indexed ? mdiCloudCheckOutline : mdiPauseCircleOutline\n  let rank = source.indexed ? 0 : 3\n\n  if (!source.enabled) {\n    label = \"Inaktiv\"\n    color = \"indigo\"\n    icon = mdiCancel\n    rank = 5\n  } else if (source.indexed && health === \"pending\") {\n    label = \"Wartet\"\n    color = \"blue\"\n    icon = mdiTimerSand\n    rank = 2\n  } else if (source.indexed && health === \"throttled\") {\n    label = \"Gedrosselt\"\n    color = \"amber\"\n    icon = mdiTimerSand\n    rank = 4\n  } else if (source.indexed && health === \"failed\") {\n    label = \"Fehler\"\n    color = \"rose\"\n    icon = mdiAlertCircleOutline\n    rank = 6\n  } else if (source.indexed && !health) {\n    label = \"Noch nicht geprüft\"\n    color = \"blue\"\n    icon = mdiTimerSand\n    rank = 1\n  }\n\n  return {\n    id: `${source.sourceId}:state`,\n    label,\n    subLabel: scopeLabel,\n    color,\n    icon,\n    tooltip: buildRichTooltip(\n      richTitle(\"Zustand\"),\n      safeTooltipField(\"Status\", label),\n      safeTooltipField(\"Scope\", scopeLabel),\n      safeTooltipField(\"Aktiv\", source.enabled ? \"Ja\" : \"Nein\"),\n      safeTooltipField(\"Indiziert\", source.indexed ? \"Ja\" : \"Nein\"),\n      safeTooltipField(\"Health\", healthLabel(health)),\n      safeTooltipField(\"Throttle bis\", formatDateTime(source.stats?.throttleUntil)),\n      safeTooltipField(\"Letzter Fehler\", source.stats?.lastError),\n      safeTooltipField(\"Projekt-ID\", source.projectId),\n      safeTooltipField(\"Realisierung-ID\", source.realizationId),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: \"rich-tooltip\",\n    ariaLabel: [label, scopeLabel, errorLabel].filter(Boolean).join(\", \"),\n    searchText: buildSearchText([\n      label,\n      scopeLabel,\n      healthLabel(health),\n      source.enabled ? \"aktiv\" : \"inaktiv\",\n      source.indexed ? \"indiziert\" : \"nicht indiziert\",\n      source.scope,\n      source.projectId,\n      source.realizationId,\n      source.stats?.lastError,\n    ]),\n    sortValue: `${rank}:${scopeLabel}`.toLowerCase(),\n  }\n}\n\nexport const buildSharePointSourceRow = (\n  source: SharePointSource,\n  context: Partial<SharePointSourceTableContext> = {},\n): SharePointSourceRow => {\n  const resolvedContext = { ...defaultContext, ...context }\n  const site = describeSiteUrl(source.target.siteUrl)\n  const sourceTag = buildSourceTag(source)\n  const targetTag = buildTargetTag(source)\n  const syncTag = buildSyncTag(source)\n  const stateTag = buildStateTag(source, resolvedContext)\n\n  return {\n    id: source.sourceId,\n    source,\n    siteUrl: source.target.siteUrl,\n    siteHost: site.host,\n    sitePath: site.path,\n    scopeLabel: describeSharePointScope(source, resolvedContext.realizationOptions),\n    libraryLabel: source.target.libraryName,\n    folderLabel: formatSharePointFolder(source.target.folderPath),\n    trackedItems: numberValue(source.stats?.trackedItems),\n    indexedItems: numberValue(source.stats?.indexedItems),\n    pollIntervalLabel: describeSharePointPollInterval(source.sync.pollIntervalSeconds),\n    statusLabel: legacySourceStatusLabel(source),\n    sourceTag,\n    targetTag,\n    syncTag,\n    stateTag,\n    searchText: buildSearchText([\n      sourceTag.searchText,\n      targetTag.searchText,\n      syncTag.searchText,\n      stateTag.searchText,\n      source.connectionId,\n    ]),\n  }\n}\n\nexport const mapSharePointRows = (\n  sources: SharePointSource[],\n  realizationOptions: Array<{ value: string; name: string }> = [],\n): SharePointSourceRow[] =>\n  sources.map((source) => buildSharePointSourceRow(source, { realizationOptions }))\n\nexport const buildSharePointRefreshKey = (rows: SharePointSourceRow[]): string =>\n  rows\n    .map((row) =>\n      [\n        row.id,\n        row.scopeLabel,\n        row.sourceTag.label,\n        row.targetTag.label,\n        row.targetTag.subLabel,\n        row.syncTag.label,\n        row.syncTag.subLabel,\n        row.stateTag.label,\n        row.stateTag.subLabel,\n        timestamp(row.source.stats?.lastSyncedAt) ?? \"\",\n        timestamp(row.source.stats?.nextSyncAt) ?? \"\",\n        row.source.stats?.lastError ?? \"\",\n      ].join(\":\"),\n    )\n    .join(\"|\")\n","<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { mdiCheck as tableSelectionIcon } from \"@mdi/js\"\n  import { onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { closeOverlayById, openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiPlus } from \"@mdi/js\"\n\n  import {\n    createSharePointSource,\n    deleteSharePointSource,\n    fetchSharePointSources,\n    triggerSharePointSourceSync,\n    updateSharePointSource,\n    type SharePointConnectionOption,\n    type SharePointSource,\n    type SharePointSourceWritePayload,\n  } from \"../../../../../../_shared/_logic/sharepoint\"\n  import { availableProjects } from \"../../../../../../../_shared/_logic/organizations\"\n  import SharePointSourceOverlay from \"../../../../../../_shared/_modules/share-point-source-overlay\"\n  import SharePointSourceRowActions from \"./_logic/SharePointSourceRowActions.actions\"\n  import SharePointSourceTableCell from \"./_modules/share-point-source-table-cell\"\n  import SourceCell from \"./_shared/_modules/source-cell\"\n  import StateCell from \"./_shared/_modules/state-cell\"\n  import {\n    buildSharePointRefreshKey,\n    buildSharePointSourceColumns,\n    mapSharePointRows,\n  } from \"./_logic/presentation\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../confirmed-destructive-action\"\n  import type { SharePointSourceRow, SharePointSourceTableProps } from \"./_shared/_logic/contract\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    canManage = false,\n    title = \"SharePoint-Quellen\",\n    onSelect = null,\n  }: SharePointSourceTableProps = $props()\n\n  const columns = buildSharePointSourceColumns()\n\n  let loading = $state(false)\n  let loadError = $state<string | null>(null)\n  let sources = $state<SharePointSource[]>([])\n  let connections = $state<SharePointConnectionOption[]>([])\n  let syncingSourceId = $state<string | null>(null)\n\n  const realizationOptions = $derived.by(() => {\n    return ($availableProjects ?? [])\n      .filter(\n        (entry: any) =>\n          String(entry?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n      )\n      .flatMap((entry: any) =>\n        (entry?.realizations ?? []).map((realization: any) => {\n          const id = String(realization?.id ?? \"\").trim()\n\n          if (!id) return null\n\n          const projectLabel =\n            String(entry?.name ?? entry?.slug ?? entry?.id ?? \"\").trim() ||\n            String(entry?.id ?? \"\").trim()\n          const realizationLabel =\n            String(\n              realization?.name ??\n                realization?.slug ??\n                realization?.realization_name ??\n                realization?.id ??\n                \"\",\n            ).trim() || id\n\n          return {\n            value: id,\n            name: `${projectLabel} · ${realizationLabel}`,\n          }\n        }),\n      )\n      .filter(Boolean) as Array<{ value: string; name: string }>\n  })\n  const rows = $derived<SharePointSourceRow[]>(mapSharePointRows(sources, realizationOptions))\n  const refreshKey = $derived(buildSharePointRefreshKey(rows))\n  const titleWithCount = $derived(`${title} (${rows.length})`)\n\n  const getRows: TableGetRows = ({ limit, offset }) => {\n    const start = Math.max(0, offset ?? 0)\n    const size = typeof limit === \"number\" && limit > 0 ? limit : rows.length\n    const end = start + size\n\n    return { rows: rows.slice(start, end), total: rows.length }\n  }\n\n  const loadSources = async () => {\n    if (!organizationId) {\n      sources = []\n      connections = []\n      loadError = null\n      loading = false\n\n      return\n    }\n\n    loading = true\n    loadError = null\n    try {\n      const result = await fetchSharePointSources({ organizationId })\n      sources = result.sources\n      connections = result.connections\n    } catch (error) {\n      loadError = error instanceof Error ? error.message : String(error)\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadSources()\n  })\n\n  const openSourceOverlay = (source: SharePointSource | null) => {\n    if (!organizationId) return\n\n    const overlayId = openOverlay({\n      title: source ? \"SharePoint-Quelle bearbeiten\" : \"SharePoint-Quelle anlegen\",\n      content: SharePointSourceOverlay,\n      properties: {\n        organizationId,\n        projectId,\n        defaultRealizationId: realizationId,\n        source,\n        connections,\n        onClose: () => closeOverlayById(overlayId),\n        onSaved: async (payload: SharePointSourceWritePayload) => {\n          if (source) {\n            await updateSharePointSource(source.sourceId, payload)\n            newNotification({ class: \"success\", html: \"SharePoint-Quelle gespeichert.\" })\n          } else {\n            await createSharePointSource(payload)\n            newNotification({ class: \"success\", html: \"SharePoint-Quelle angelegt.\" })\n          }\n\n          await loadSources()\n\n          return true\n        },\n      },\n    })\n  }\n\n  const handleDelete = async (source: SharePointSource) => {\n    if (!organizationId) return\n\n    await runConfirmedDestructiveAction(\n      {\n        approval: {\n          title: \"SharePoint-Quelle löschen\",\n          description: \"Diese SharePoint-Quelle wirklich löschen?\",\n          approvalLabel: \"Ja, löschen\",\n          declineLabel: \"Abbrechen\",\n        },\n        reauth: {\n          title: \"SharePoint-Quelle löschen\",\n          description:\n            \"Bitte bestätigen Sie das Löschen dieser SharePoint-Quelle mit Ihrem aktuellen Passwort.\",\n          actionLabel: \"SharePoint-Quelle löschen\",\n        },\n      },\n      async () => {\n        await deleteSharePointSource(source.sourceId)\n        newNotification({ class: \"success\", html: \"SharePoint-Quelle gelöscht.\" })\n        await loadSources()\n      },\n    )\n  }\n\n  const handleSync = async (source: SharePointSource) => {\n    if (!organizationId || syncingSourceId === source.sourceId) return\n\n    syncingSourceId = source.sourceId\n    try {\n      const result = await triggerSharePointSourceSync(source.sourceId)\n      newNotification({\n        class: \"success\",\n        html:\n          result.status === \"already_running\"\n            ? \"SharePoint-Sync läuft bereits.\"\n            : \"SharePoint-Sync wurde gestartet.\",\n      })\n      await loadSources()\n    } catch (error) {\n      newNotification({\n        class: \"error\",\n        html: error instanceof Error ? error.message : String(error),\n      })\n    } finally {\n      syncingSourceId = null\n    }\n  }\n</script>\n\n<div class=\"sources-section\">\n  <SectionTitle\n    brightBackground={true}\n    title={titleWithCount}\n    helpModalTextId=\"indexAdminSharePointSources\"\n    tooltipContent=\"Eine SharePoint-Quelle zeigt auf einen konkreten Ort in SharePoint, der beobachtet und bei Bedarf indiziert wird.\"\n  >\n    {#snippet buttonSnippet()}\n      <CTA\n        type=\"primaryButton\"\n        content=\"Quelle hinzufügen\"\n        icon={mdiPlus}\n        disabled={!canManage || !organizationId}\n        onClick={() => openSourceOverlay(null)}\n      />\n    {/snippet}\n  </SectionTitle>\n  {#if loadError}\n    <p class=\"error\">{loadError}</p>\n  {/if}\n  <Table\n    rowActions={{\n      resolve: (row) => {\n        const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n        actions.push(\n          ...SharePointSourceRowActions({\n            row: row as SharePointSourceRow,\n            canManage: canManage,\n            syncingSourceId: syncingSourceId,\n            onSync: (entry) => handleSync(entry.source),\n            onEdit: (entry) => openSourceOverlay(entry.source),\n            onDelete: (entry) => handleDelete(entry.source),\n          }),\n        )\n\n        if (onSelect) {\n          actions.unshift({\n            id: \"select\",\n            label: \"Quelle auswählen\",\n            icon: tableSelectionIcon,\n            display: \"inline\",\n            onClick: () => onSelect?.((row as SharePointSourceRow).source),\n          })\n        }\n\n        return buildTableRowActionSet(actions, {\n          primaryId: !onSelect && canManage ? \"action-1\" : null,\n          inlineIds: [\"action-0\", \"select\"],\n        })\n      },\n    }}\n    {columns}\n    {getRows}\n    mode=\"auto\"\n    theme=\"light\"\n    cardFieldIds={[\"state\", \"target\", \"sync\"]}\n    maxCardFields={3}\n    showActions={true}\n    actionsHeaderLabel=\"Aktionen\"\n    {refreshKey}\n    {loading}\n  >\n    {#snippet empty()}\n      <p>\n        Noch keine SharePoint-Quellen für diese Organisation konfiguriert.\n        {#if connections.length === 0}\n          Lege zuerst in Control Webframe eine Microsoft-Verbindung an.{/if}\n      </p>\n    {/snippet}\n\n    {#snippet tableCell({ row, column })}\n      <SharePointSourceTableCell row={row as SharePointSourceRow} {column} />\n    {/snippet}\n\n    {#snippet cardTitle({ row })}\n      <SourceCell row={row as SharePointSourceRow} />\n    {/snippet}\n\n    {#snippet cardSubtitle({ row })}\n      <StateCell row={row as SharePointSourceRow} />\n    {/snippet}\n\n    {#snippet cardField({ row, column })}\n      <SharePointSourceTableCell row={row as SharePointSourceRow} {column} />\n    {/snippet}\n  </Table>\n</div>\n\n<style lang=\"less\">\n  .sources-section {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n\n    p {\n      margin: 0;\n      color: var(--text-invers-150);\n    }\n  }\n\n  .error {\n    color: var(--danger-600, #c62828);\n  }\n</style>\n","<script lang=\"ts\">\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../../../_shared/_logic/organization-navigation\"\n  import type { SharePointSource } from \"../../../../_shared/_logic/sharepoint\"\n  import SharePointSourceTable from \"./_modules/share-point-source-table\"\n  import type { SourcesTabProps } from \"./_logic/types\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    canManage = false,\n  }: SourcesTabProps = $props()\n\n  const navigateToSource = (source: SharePointSource) => {\n    const basePath = buildCurrentProjectPath({ suffix: \"/sharepoint/sources\" })\n\n    if (!basePath) return\n\n    spaNavigate(`${basePath}/${encodeURIComponent(source.sourceId)}`, { noSearchParam: true })\n  }\n</script>\n\n<SharePointSourceTable\n  {organizationId}\n  {projectId}\n  {realizationId}\n  {canManage}\n  title=\"SharePoint-Quellen\"\n  onSelect={navigateToSource}\n/>\n","<script lang=\"ts\">\n  import {\n    buildSharePointSyncJobsStreamUrl,\n    buildSharePointSourceSyncJobsStreamUrl,\n    fetchSharePointSyncJobs,\n    fetchSharePointSourceSyncJobs,\n  } from \"../../_logic/sharepoint\"\n  import SyncJobsTable from \"../../../../_shared/_modules/sync-jobs-table\"\n\n  const {\n    organizationId,\n    projectId = null,\n    sourceId = null,\n  }: {\n    organizationId: string\n    projectId?: string | null\n    sourceId?: string | null\n  } = $props()\n\n  const liveStateUrl = $derived.by(() =>\n    sourceId\n      ? buildSharePointSourceSyncJobsStreamUrl(sourceId)\n      : buildSharePointSyncJobsStreamUrl({ organizationId }),\n  )\n</script>\n\n<SyncJobsTable\n  title=\"Synchronisationsläufe\"\n  helpModalTextId=\"indexAdminSharePointSyncJobs\"\n  tooltipContent=\"Hier sehen Sie laufende und kürzlich abgeschlossene SharePoint-Synchronisationen.\"\n  emptyMessage=\"Noch keine SharePoint-Synchronisationsjobs erfasst.\"\n  fetchJobs={(params) =>\n    sourceId\n      ? fetchSharePointSourceSyncJobs(sourceId, params)\n      : fetchSharePointSyncJobs({ organizationId, projectId, ...params })}\n  {liveStateUrl}\n  showParentEntity={!sourceId}\n  parentEntityLabel=\"Quelle\"\n  resourceLabel=\"Quelle\"\n  resourceKindFallback=\"sharepoint\"\n/>\n","<script lang=\"ts\">\n  import SharePointSyncJobsTable from \"../../../../_shared/_modules/share-point-sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n<SharePointSyncJobsTable {organizationId} {projectId} />\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  import { fetchSharePointUsage } from \"../../../../../../_shared/_logic/usage\"\n  import UsageLimitChart from \"../../../../../../_shared/_modules/usage-limit-chart\"\n  import LimitsPanelShell from \"../../../../../../_shared/_modules/limits-panel-shell\"\n\n  type Props = {\n    organizationId: string\n    projectId?: string | null\n  }\n\n  const { organizationId, projectId: _projectId = null }: Props = $props()\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let usedBytes = $state(0)\n  let limitBytes = $state<number | null>(null)\n  let requestId = 0\n\n  const toNonNegativeNumber = (value: unknown) => {\n    const parsed = Number(value)\n\n    if (!Number.isFinite(parsed) || parsed < 0) return 0\n\n    return parsed\n  }\n\n  const normalizeMb = (value: number | null | undefined) => {\n    if (value === null || value === undefined) return 0\n\n    const parsed = Number(value)\n\n    if (!Number.isFinite(parsed)) return 0\n\n    return Math.round(parsed * 100) / 100\n  }\n\n  const usedMb = $derived(normalizeMb(usedBytes / (1024 * 1024)))\n  const limitMb = $derived(normalizeMb(limitBytes === null ? null : limitBytes / (1024 * 1024)))\n  const subtitle = $derived(\"Organisationsweit über alle SharePoint-Quellen\")\n\n  const loadLimits = async () => {\n    if (!organizationId) {\n      loading = false\n      usedBytes = 0\n      limitBytes = null\n      error = \"Organisationskontext fehlt.\"\n\n      return\n    }\n\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const response = await fetchSharePointUsage(organizationId)\n\n      if (current !== requestId) return\n\n      usedBytes = toNonNegativeNumber(response.used)\n      limitBytes = response.limit === null ? null : toNonNegativeNumber(response.limit)\n    } catch (err) {\n      if (current !== requestId) return\n\n      usedBytes = 0\n      limitBytes = null\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) {\n        loading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    void loadLimits()\n  })\n</script>\n\n<LimitsPanelShell\n  title=\"SharePoint-Limits\"\n  helpModalTextId=\"indexAdminSharePointLimits\"\n  tooltipContent=\"Hier sehen Sie, wie viel indizierbares Volumen die SharePoint-Quellen der aktuellen Organisation gemeinsam bereits belegen.\"\n  {loading}\n  {error}\n  isEmpty={false}\n  contentSnippet={content}\n/>\n\n{#snippet content()}\n    <UsageLimitChart\n    title=\"Indizierbares Volumen\"\n    {subtitle}\n    used={usedMb}\n    limit={limitMb}\n    unit=\"MB\"\n  />\n{/snippet}\n","<script lang=\"ts\">\n  import SharePointUsageLimits from \"./_modules/share-point-usage-limits\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n<SharePointUsageLimits {organizationId} {projectId} />\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    {\n      id: \"sources\",\n      title: \"Quellen\",\n      testId: \"indexAdmin.organizationView.tab.sharepoint.sources\",\n    },\n    {\n      id: \"jobs\",\n      title: \"Synchronisationsjobs\",\n      testId: \"indexAdmin.organizationView.tab.sharepoint.jobs\",\n    },\n    {\n      id: \"limits\",\n      title: \"Limits\",\n      testId: \"indexAdmin.organizationView.tab.sharepoint.limits\",\n    },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import SourcesTab from \"./tabs/Sources\"\n  import JobsTab from \"./tabs/Jobs\"\n  import LimitsTab from \"./tabs/Limits\"\n\n  type Props = {\n    activeTab?: \"sources\" | \"jobs\" | \"limits\"\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n    canManage?: boolean\n  }\n\n  const {\n    activeTab = \"sources\",\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    canManage = false,\n  }: Props = $props()\n</script>\n\n{#if !organizationId}\n  <p class=\"state\">Organisationskontext fehlt.</p>\n{:else if activeTab === \"jobs\"}\n  <JobsTab {organizationId} projectId={null} />\n{:else if activeTab === \"limits\"}\n  <LimitsTab {organizationId} projectId={null} />\n{:else}\n  <SourcesTab {organizationId} projectId={null} realizationId={null} {canManage} />\n{/if}\n\n<style lang=\"less\">\n  .state {\n    margin: 0;\n    color: var(--text-80);\n    padding: 1rem 0;\n  }\n</style>\n","<script lang=\"ts\">\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../../../_shared/_logic/organization-navigation\"\n  import FileCollectionTable from \"../../../../../_shared/_modules/file-collection-table\"\n  import type { CollectionsTabProps } from \"./_logic/types\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    defaultRealizationId = null,\n    realizationOptions = [],\n    canManage = false,\n  }: CollectionsTabProps = $props()\n\n  const navigateToCollection = (collection: { id: string }) => {\n    const basePath = buildCurrentProjectPath({ suffix: \"/files/collections\" })\n\n    if (!basePath) return\n\n    spaNavigate(`${basePath}/${encodeURIComponent(collection.id)}`, { noSearchParam: true })\n  }\n</script>\n\n<FileCollectionTable\n  mode=\"project\"\n  {organizationId}\n  {projectId}\n  {defaultRealizationId}\n  {realizationOptions}\n  {canManage}\n  title=\"Dateisammlungen\"\n  onSelect={navigateToCollection}\n/>\n","<script lang=\"ts\">\n  import {\n    buildFileSyncJobsStreamUrl,\n    buildFileCollectionSyncJobsStreamUrl,\n    fetchFileSyncJobs,\n    fetchFileCollectionSyncJobs,\n  } from \"../../_logic/storage\"\n  import SyncJobsTable from \"../sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    collectionId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n    collectionId?: string | null\n  } = $props()\n\n  const liveStateUrl = $derived.by(() => {\n    if (collectionId) return buildFileCollectionSyncJobsStreamUrl(collectionId)\n\n    if (organizationId) {\n      return buildFileSyncJobsStreamUrl({\n        organizationId,\n      })\n    }\n\n    if (projectId) return buildFileSyncJobsStreamUrl({ projectId })\n\n    return null\n  })\n</script>\n\n<div data-testid=\"indexAdmin.files.collectionJobs\">\n    <SyncJobsTable\n    title=\"Synchronisationsläufe\"\n    helpModalTextId=\"indexAdminFileSyncJobs\"\n    tooltipContent=\"Hier sehen Sie laufende und kürzlich abgeschlossene Datei-Synchronisationen.\"\n    emptyMessage=\"Noch keine Datei-Synchronisationsjobs erfasst.\"\n    fetchJobs={(params) =>\n      collectionId\n        ? fetchFileCollectionSyncJobs(collectionId, params)\n        : fetchFileSyncJobs({ organizationId, projectId, ...params })}\n    {liveStateUrl}\n    showParentEntity={!collectionId}\n    parentEntityLabel=\"Sammlung\"\n    resourceLabel=\"Datei\"\n    resourceKindFallback=\"file\"\n  />\n</div>\n","<script lang=\"ts\">\n  import FileSyncJobsTable from \"../../../../../_shared/_modules/file-sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n<FileSyncJobsTable {organizationId} {projectId} />\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  import {\n    fetchFileUploadUsage,\n    type SourceUsageResponse,\n  } from \"../../../../../../_shared/_logic/usage\"\n  import UsageLimitChart from \"../../../../../../_shared/_modules/usage-limit-chart\"\n  import LimitsPanelShell from \"../../../../../../_shared/_modules/limits-panel-shell\"\n\n  type Props = {\n    organizationId: string\n    projectId?: string | null\n    realizationId?: string | null\n  }\n\n  const {\n    organizationId,\n    projectId: _projectId = null,\n    realizationId: _realizationId = null,\n  }: Props = $props()\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let usage = $state<SourceUsageResponse | null>(null)\n  let requestId = 0\n\n  const normalizeMb = (value: number | null | undefined) => {\n    if (value === null || value === undefined) return null\n\n    const parsed = Number(value)\n\n    if (!Number.isFinite(parsed)) return null\n\n    return Math.round(parsed * 100) / 100\n  }\n\n  const usedMb = $derived(normalizeMb(usage ? usage.used / (1024 * 1024) : null) ?? 0)\n  const limitMb = $derived(normalizeMb(usage ? (usage.limit ?? null) / (1024 * 1024) : null))\n  const subtitle = $derived.by(() =>\n    usage ? \"Organisationsweit über alle Dateisammlungen und Upload-Quellen\" : null,\n  )\n\n  const loadUsage = async () => {\n    if (!organizationId) {\n      usage = null\n      error = \"Organisationskontext fehlt.\"\n\n      return\n    }\n\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const response = await fetchFileUploadUsage(organizationId)\n\n      if (current !== requestId) return\n\n      usage = response\n    } catch (err) {\n      if (current !== requestId) return\n\n      usage = null\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) {\n        loading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    void loadUsage()\n  })\n</script>\n\n<LimitsPanelShell\n  title=\"Upload-Limits\"\n  helpModalTextId=\"indexAdminFileUsageLimits\"\n  {loading}\n  {error}\n  isEmpty={!usage}\n  emptyMessage=\"Keine Nutzungsdaten verfügbar.\"\n  contentSnippet={content}\n/>\n\n{#snippet content()}\n    {#if usage}\n        <UsageLimitChart title=\"Genutztes Volumen\" {subtitle} used={usedMb} limit={limitMb} unit=\"MB\" />\n    {/if}\n{/snippet}\n","<script lang=\"ts\">\n  import FileUsageLimits from \"./_modules/file-usage-limits\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n  } = $props()\n</script>\n\n<FileUsageLimits {organizationId} {projectId} {realizationId} />\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    {\n      id: \"collections\",\n      title: \"Sammlungen\",\n      testId: \"indexAdmin.organizationView.tab.files.collections\",\n    },\n    {\n      id: \"jobs\",\n      title: \"Synchronisationsjobs\",\n      testId: \"indexAdmin.organizationView.tab.files.jobs\",\n    },\n    {\n      id: \"limits\",\n      title: \"Limits\",\n      testId: \"indexAdmin.organizationView.tab.files.limits\",\n    },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import CollectionsTab from \"./tabs/Collections\"\n  import JobsTab from \"./tabs/Jobs\"\n  import LimitsTab from \"./tabs/Limits\"\n\n  type Props = {\n    activeTab?: \"collections\" | \"jobs\" | \"limits\"\n    active?: boolean\n    hasWorkspaceData?: boolean\n    organizationId?: string | null\n    projectId?: string | null\n    realizationId?: string | null\n    canManage?: boolean\n  }\n\n  const {\n    activeTab = \"collections\",\n    active: _active = false,\n    hasWorkspaceData: _hasWorkspaceData = true,\n    organizationId = null,\n    projectId = null,\n    realizationId = null,\n    canManage = false,\n  }: Props = $props()\n</script>\n\n<div data-testid={`indexAdmin.filesPage.${activeTab}`}>\n    {#if !organizationId}\n        <p class=\"state\">Organisationskontext fehlt.</p>\n    {:else if !_hasWorkspaceData}\n        <p class=\"state\">Für diese Organisation stehen aktuell keine Workspace-Daten zur Verfügung.</p>\n    {:else if activeTab === \"limits\"}\n        <LimitsTab {organizationId} projectId={null} realizationId={null} />\n    {:else if activeTab === \"jobs\"}\n        <JobsTab {organizationId} projectId={null} />\n    {:else}\n        <CollectionsTab\n      {organizationId}\n      projectId={null}\n      defaultRealizationId={null}\n      realizationOptions={[]}\n      {canManage}\n    />\n    {/if}\n</div>\n\n<style lang=\"less\">\n  .state {\n    margin: 0;\n    color: var(--text-80);\n    padding: 1rem 0;\n  }\n</style>\n","import {\n  ANSWER_LIBRARY_MANAGER_API_URL,\n  buildServiceHeaders,\n} from \"../../../../_shared/_logic/runtime-config\"\nimport {\n  fetchService,\n  throwResponseError,\n  toErrorMessage,\n} from \"../../../../_shared/_logic/index-api-transport\"\nimport type {\n  SyncJobListApiResponse,\n  SyncJobListResponse,\n} from \"../../../../_shared/_logic/sync-jobs\"\nimport { normalizeSyncJob } from \"../../../../_shared/_logic/sync-jobs\"\n\nexport type AnswerGroup = {\n  id: string\n  projectId: string | null\n  organizationId?: string | null\n  tenantId?: string | null\n  realizationId?: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  name: string\n  groupType: string\n  createdAt: string\n  updatedAt: string\n  questionCount: number\n  activeCount: number\n  syncedCount: number\n}\n\nexport type AnswerQuestion = {\n  id: string\n  groupId: string\n  projectId?: string\n  organizationId?: string\n  tenantId?: string\n  realizationId?: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  title: string\n  answer: string\n  status: \"active\" | \"inactive\"\n  syncId: string\n  groupType?: string | null\n  syncStatus?: \"pending\" | \"syncing\" | \"skipped\" | \"success\" | \"failed\"\n  retryCount?: number\n  nextSyncAt?: string | null\n  lastSyncAt?: string | null\n  lastError?: string | null\n  createdAt: string\n  updatedAt: string\n}\n\ntype CreateGroupPayload = {\n  organizationId?: string | null\n  projectId?: string | null\n  name: string\n  groupType?: string\n  scope?: \"organization\" | \"project\" | \"realization\"\n  realizationId?: string | null\n  questions?: CreateQuestionPayload[]\n}\n\ntype CreateQuestionPayload = {\n  title: string\n  answer: string\n  status?: \"active\" | \"inactive\"\n  syncId?: string | null\n}\n\ntype UpdateQuestionPayload = Partial<CreateQuestionPayload>\ntype UpdateGroupPayload = {\n  name?: string\n  groupType?: string\n}\n\ntype AnswerGroupListScope = {\n  organizationId?: string | null\n  realizationId?: string | null\n}\n\ntype AnswerQuestionListScope = {\n  organizationId?: string | null\n  projectId?: string | null\n}\n\ntype AnswerQuestionWriteScope = AnswerQuestionListScope\ntype ServiceScope = {\n  organizationId?: string | null\n  projectId?: string | null\n}\n\ntype AnswerGroupApi = {\n  id: string\n  project_id?: string\n  projectId?: string\n  organization_id?: string\n  organizationId?: string\n  tenant_id?: string\n  tenantId?: string\n  realization_id?: string | null\n  realizationId?: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  name: string\n  group_type?: string\n  groupType?: string\n  created_at?: string\n  createdAt?: string\n  updated_at?: string\n  updatedAt?: string\n  question_count?: number\n  questionCount?: number\n  active_count?: number\n  activeCount?: number\n  synced_count?: number\n  syncedCount?: number\n}\n\ntype AnswerQuestionApi = {\n  id: string\n  group_id?: string\n  groupId?: string\n  project_id?: string\n  projectId?: string\n  organization_id?: string\n  organizationId?: string\n  tenant_id?: string\n  tenantId?: string\n  realization_id?: string | null\n  realizationId?: string | null\n  scope?: \"organization\" | \"project\" | \"realization\"\n  title: string\n  answer: string\n  status: \"active\" | \"inactive\"\n  sync_id?: string\n  syncId?: string\n  group_type?: string | null\n  groupType?: string | null\n  sync_status?: \"pending\" | \"syncing\" | \"skipped\" | \"success\" | \"failed\"\n  syncStatus?: \"pending\" | \"syncing\" | \"skipped\" | \"success\" | \"failed\"\n  retry_count?: number\n  retryCount?: number\n  next_sync_at?: string | null\n  nextSyncAt?: string | null\n  last_sync_at?: string | null\n  lastSyncAt?: string | null\n  last_error?: string | null\n  lastError?: string | null\n  created_at?: string\n  createdAt?: string\n  updated_at?: string\n  updatedAt?: string\n}\n\nconst normalizeAnswerGroup = (item: AnswerGroupApi): AnswerGroup => ({\n  id: item.id,\n  projectId: item.project_id ?? item.projectId ?? null,\n  organizationId:\n    item.organization_id ?? item.organizationId ?? item.tenant_id ?? item.tenantId ?? null,\n  tenantId: item.organization_id ?? item.organizationId ?? item.tenant_id ?? item.tenantId ?? null,\n  realizationId: item.realization_id ?? item.realizationId ?? null,\n  scope: item.scope,\n  name: item.name,\n  groupType: item.group_type ?? item.groupType ?? \"default\",\n  createdAt: item.created_at ?? item.createdAt ?? \"\",\n  updatedAt: item.updated_at ?? item.updatedAt ?? item.created_at ?? item.createdAt ?? \"\",\n  questionCount: item.question_count ?? item.questionCount ?? 0,\n  activeCount: item.active_count ?? item.activeCount ?? 0,\n  syncedCount: item.synced_count ?? item.syncedCount ?? 0,\n})\n\nconst normalizeAnswerQuestion = (item: AnswerQuestionApi): AnswerQuestion => ({\n  id: item.id,\n  groupId: item.group_id ?? item.groupId ?? \"\",\n  projectId: item.project_id ?? item.projectId,\n  organizationId: item.organization_id ?? item.organizationId ?? item.tenant_id ?? item.tenantId,\n  tenantId: item.organization_id ?? item.organizationId ?? item.tenant_id ?? item.tenantId,\n  realizationId: item.realization_id ?? item.realizationId ?? null,\n  scope: item.scope,\n  title: item.title,\n  answer: item.answer,\n  status: item.status,\n  syncId: item.sync_id ?? item.syncId ?? \"\",\n  groupType: item.group_type ?? item.groupType ?? null,\n  syncStatus: item.sync_status ?? item.syncStatus,\n  retryCount: item.retry_count ?? item.retryCount ?? 0,\n  nextSyncAt: item.next_sync_at ?? item.nextSyncAt ?? null,\n  lastSyncAt: item.last_sync_at ?? item.lastSyncAt ?? null,\n  lastError: item.last_error ?? item.lastError ?? null,\n  createdAt: item.created_at ?? item.createdAt ?? \"\",\n  updatedAt: item.updated_at ?? item.updatedAt ?? \"\",\n})\n\nconst buildQuestionServiceScope = (\n  scope: AnswerQuestionWriteScope = {},\n  projectId?: string | null,\n): ServiceScope => ({\n  organizationId: scope.organizationId?.trim() || null,\n  projectId: (projectId ?? scope.projectId ?? \"\").trim() || null,\n})\n\nexport async function fetchAnswerGroups(scope: AnswerGroupListScope = {}): Promise<AnswerGroup[]> {\n  const organizationId = (scope.organizationId ?? \"\").trim()\n\n  if (!organizationId) {\n    return []\n  }\n\n  const query = new URLSearchParams({ organization_id: organizationId })\n\n  if (scope.realizationId?.trim()) query.set(\"realization_id\", scope.realizationId.trim())\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Answer-Gruppen konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Answer-Gruppen konnten nicht geladen werden\")\n  }\n\n  const data = (await response.json()) as { items: AnswerGroupApi[] }\n\n  return data.items.map(normalizeAnswerGroup)\n}\n\nexport async function createAnswerGroup(payload: CreateGroupPayload): Promise<AnswerGroup> {\n  const scope = payload.scope ?? \"organization\"\n  const organizationId = (payload.organizationId ?? \"\").trim() || null\n  const projectId = (payload.projectId ?? \"\").trim() || null\n\n  let response: Response\n  try {\n    response = await fetchService(`${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups`, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        ...buildServiceHeaders(),\n      },\n      body: JSON.stringify({\n        organization_id: organizationId,\n        project_id: scope === \"organization\" ? null : projectId,\n        name: payload.name,\n        group_type: payload.groupType ?? \"default\",\n        scope,\n        realization_id: scope === \"realization\" ? (payload.realizationId ?? null) : null,\n        questions: (payload.questions ?? []).map((question) => ({\n          title: question.title,\n          answer: question.answer,\n          status: question.status ?? \"active\",\n          sync_id: question.syncId,\n        })),\n      }),\n    })\n  } catch (error) {\n    throw new Error(`Gruppe konnte nicht angelegt werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Gruppe konnte nicht angelegt werden\")\n  }\n\n  const created = normalizeAnswerGroup((await response.json()) as AnswerGroupApi)\n  const expectedQuestionCount = payload.questions?.length ?? 0\n\n  if (expectedQuestionCount > 0 && created.questionCount < expectedQuestionCount) {\n    throw new Error(\n      `Gruppe wurde ohne vollständigen Fragen-Batch angelegt (${created.questionCount}/${expectedQuestionCount}).`,\n    )\n  }\n\n  return created\n}\n\nexport async function updateAnswerGroup(\n  groupId: string,\n  payload: UpdateGroupPayload,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<AnswerGroup> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}`,\n      {\n        method: \"PATCH\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          ...buildServiceHeaders(),\n        },\n        body: JSON.stringify({\n          name: payload.name,\n          group_type: payload.groupType,\n        }),\n        serviceScope: buildQuestionServiceScope(scope),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Gruppe konnte nicht aktualisiert werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Gruppe konnte nicht aktualisiert werden\")\n  }\n\n  return normalizeAnswerGroup((await response.json()) as AnswerGroupApi)\n}\n\nexport async function deleteAnswerGroup(\n  _projectId: string,\n  groupId: string,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}`,\n      {\n        method: \"DELETE\",\n        headers: buildServiceHeaders(),\n        serviceScope: buildQuestionServiceScope(scope),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Gruppe konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Gruppe konnte nicht gelöscht werden\")\n  }\n}\n\nexport async function fetchAnswerQuestions(\n  groupId: string,\n  scope: AnswerQuestionListScope = {},\n): Promise<AnswerQuestion[]> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}/questions`,\n      {\n        headers: buildServiceHeaders(),\n        serviceScope: buildQuestionServiceScope(scope),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Fragen konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Fragen konnten nicht geladen werden\")\n  }\n\n  const data = (await response.json()) as { items: AnswerQuestionApi[]; total?: number }\n\n  return data.items.map(normalizeAnswerQuestion)\n}\n\nexport async function createAnswerQuestion(\n  projectId: string | null,\n  groupId: string,\n  payload: CreateQuestionPayload,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<AnswerQuestion> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}/questions`,\n      {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          ...buildServiceHeaders(),\n        },\n        body: JSON.stringify({\n          title: payload.title,\n          answer: payload.answer,\n          status: payload.status ?? \"active\",\n          sync_id: payload.syncId,\n        }),\n        serviceScope: buildQuestionServiceScope(scope, projectId),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Frage konnte nicht erstellt werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Frage konnte nicht erstellt werden\")\n  }\n\n  return normalizeAnswerQuestion((await response.json()) as AnswerQuestionApi)\n}\n\nexport async function updateAnswerQuestion(\n  projectId: string | null,\n  _groupId: string,\n  questionId: string,\n  payload: UpdateQuestionPayload,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<AnswerQuestion> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-questions/${encodeURIComponent(questionId)}`,\n      {\n        method: \"PATCH\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          ...buildServiceHeaders(),\n        },\n        body: JSON.stringify({\n          title: payload.title,\n          answer: payload.answer,\n          status: payload.status,\n          sync_id: payload.syncId,\n        }),\n        serviceScope: buildQuestionServiceScope(scope, projectId),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Frage konnte nicht aktualisiert werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Frage konnte nicht aktualisiert werden\")\n  }\n\n  return normalizeAnswerQuestion((await response.json()) as AnswerQuestionApi)\n}\n\nexport async function deleteAnswerQuestion(\n  _projectId: string | null,\n  _groupId: string,\n  questionId: string,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<void> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-questions/${encodeURIComponent(questionId)}`,\n      {\n        method: \"DELETE\",\n        headers: buildServiceHeaders(),\n        serviceScope: buildQuestionServiceScope(scope, _projectId),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Frage konnte nicht gelöscht werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Frage konnte nicht gelöscht werden\")\n  }\n}\n\nexport async function retryAnswerQuestionSync(\n  _projectId: string | null,\n  _groupId: string,\n  questionId: string,\n  scope: AnswerQuestionWriteScope = {},\n): Promise<AnswerQuestion> {\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-questions/${encodeURIComponent(questionId)}/actions/sync`,\n      {\n        method: \"POST\",\n        headers: buildServiceHeaders(),\n        serviceScope: buildQuestionServiceScope(scope, _projectId),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Sync konnte nicht angestoßen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Sync konnte nicht angestoßen werden\")\n  }\n\n  return normalizeAnswerQuestion((await response.json()) as AnswerQuestionApi)\n}\n\nexport const buildAnswerGroupQuestionsStreamUrl = (\n  groupId: string,\n  _scope: AnswerQuestionListScope = {},\n): string =>\n  `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}/questions/stream`\n\nexport async function fetchAnswerSyncJobs(params: {\n  organizationId: string\n  projectId?: string | null\n  limit?: number\n  offset?: number\n  search?: string | null\n  statuses?: string[] | null\n}): Promise<SyncJobListResponse> {\n  const organizationId = params.organizationId.trim()\n\n  if (!organizationId) {\n    return { items: [], total: 0 }\n  }\n\n  const query = new URLSearchParams({ organization_id: organizationId })\n\n  if (params.projectId?.trim()) query.set(\"project_id\", params.projectId.trim())\n\n  if (typeof params.limit === \"number\") query.set(\"limit\", String(params.limit))\n\n  if (typeof params.offset === \"number\") query.set(\"offset\", String(params.offset))\n\n  if (params.search?.trim()) query.set(\"search\", params.search.trim())\n\n  if (params.statuses?.length) query.set(\"status\", params.statuses.join(\",\"))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-sync-jobs?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport async function fetchAnswerGroupSyncJobs(\n  groupId: string,\n  params: {\n    organizationId?: string | null\n    limit?: number\n    offset?: number\n    search?: string | null\n    statuses?: string[] | null\n  } = {},\n): Promise<SyncJobListResponse> {\n  const query = new URLSearchParams()\n\n  if (typeof params.limit === \"number\") query.set(\"limit\", String(params.limit))\n\n  if (typeof params.offset === \"number\") query.set(\"offset\", String(params.offset))\n\n  if (params.search?.trim()) query.set(\"search\", params.search.trim())\n\n  if (params.statuses?.length) query.set(\"status\", params.statuses.join(\",\"))\n\n  let response: Response\n  try {\n    response = await fetchService(\n      `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}/sync-jobs?${query.toString()}`,\n      {\n        headers: buildServiceHeaders(),\n        serviceScope: buildQuestionServiceScope({ organizationId: params.organizationId }),\n      },\n    )\n  } catch (error) {\n    throw new Error(`Synchronisationsjobs konnten nicht geladen werden: ${toErrorMessage(error)}`)\n  }\n\n  if (!response.ok) {\n    await throwResponseError(response, \"Synchronisationsjobs konnten nicht geladen werden\")\n  }\n\n  const payload = (await response.json()) as SyncJobListApiResponse\n\n  return {\n    items: (payload.items ?? []).map(normalizeSyncJob),\n    total: Number(payload.total ?? 0),\n  }\n}\n\nexport const buildAnswerSyncJobsStreamUrl = (params: {\n  organizationId: string\n  projectId?: string | null\n}): string => {\n  const query = new URLSearchParams({ organization_id: params.organizationId.trim() })\n\n  if (params.projectId?.trim()) query.set(\"project_id\", params.projectId.trim())\n\n  return `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-sync-jobs/stream?${query.toString()}`\n}\n\nexport const buildAnswerGroupSyncJobsStreamUrl = (\n  groupId: string,\n  _params: { organizationId?: string | null } = {},\n): string =>\n  `${ANSWER_LIBRARY_MANAGER_API_URL}/admin/answer-groups/${encodeURIComponent(groupId)}/sync-jobs/stream`\n","export const downloadJsonFile = (filename: string, payload: unknown): void => {\n  const blob = new Blob([JSON.stringify(payload, null, 2)], { type: \"application/json\" })\n  const link = document.createElement(\"a\")\n  const url = URL.createObjectURL(blob)\n  link.href = url\n  link.download = filename\n  link.click()\n  URL.revokeObjectURL(url)\n}\n\nexport const readJsonFile = async (file: File): Promise<unknown> => {\n  const text = await file.text()\n\n  return JSON.parse(text)\n}\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { clearOverlays } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiPlus } from \"@mdi/js\"\n  import type { Snippet } from \"svelte\"\n  import { availableProjects } from \"../../../../../../../../../_shared/_logic/organizations\"\n  import ScopeSelectionRow from \"../../../../../../../../../_shared/_modules/scope-selection-row\"\n  import {\n    buildScopeProjectOptions,\n    buildScopeRealizationOptions,\n    decodeScopeRealizationRef,\n    resolveDefaultScopeProjectId,\n    resolveDefaultScopeRealizationRef,\n    SCOPE_LEVEL_OPTIONS,\n    type ScopeValue,\n    type ScopeSelectableProject,\n  } from \"../../../../../../../../../_shared/_logic/scope-selection\"\n\n  const {\n    onSave,\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n    organizationId = null,\n  }: {\n    onSave?: (payload: {\n      organizationId: string | null\n      projectId: string | null\n      name: string\n      groupType: string\n      scope: ScopeValue\n      realizationId: string | null\n    }) => Promise<void>\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n    organizationId?: string | null\n  } = $props()\n\n  let name = $state(\"\")\n  const groupType = \"default\"\n  let scope = $state<ScopeValue>(\"organization\")\n  let scopeProjectId = $state(\"\")\n  let scopeRealizationRef = $state(\"\")\n  let error = $state<string | null>(null)\n  let saving = $state(false)\n\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const scopeProjectOptions = $derived(buildScopeProjectOptions(scopedProjects, organizationId))\n  const scopeRealizationOptions = $derived(\n    buildScopeRealizationOptions(scopedProjects, organizationId),\n  )\n\n  const ensureScopeSelection = (nextScope: ScopeValue | \"global\") => {\n    if (nextScope === \"project\") {\n      scopeProjectId = resolveDefaultScopeProjectId(scopeProjectOptions, scopeProjectId)\n      scopeRealizationRef = \"\"\n\n      return\n    }\n\n    if (nextScope === \"realization\") {\n      scopeRealizationRef = resolveDefaultScopeRealizationRef(\n        scopeRealizationOptions,\n        scopeProjectId,\n        decodeScopeRealizationRef(scopeRealizationRef).realizationId,\n      )\n      scopeProjectId = decodeScopeRealizationRef(scopeRealizationRef).projectId\n\n      return\n    }\n\n    scopeProjectId = \"\"\n    scopeRealizationRef = \"\"\n  }\n\n  const handleSubmit = async () => {\n    if (!onSave) return\n\n    error = null\n\n    if (!name.trim()) {\n      error = \"Bitte einen Gruppennamen eintragen.\"\n\n      return\n    }\n\n    const resolvedOrganizationId = (organizationId ?? \"\").trim() || null\n\n    if (!resolvedOrganizationId) {\n      error = \"Bitte eine Organisation auswählen.\"\n\n      return\n    }\n\n    let resolvedProjectId: string | null = null\n    let resolvedRealizationId: string | null = null\n\n    if (scope === \"project\") {\n      resolvedProjectId = scopeProjectId.trim() || null\n\n      if (!resolvedProjectId) {\n        error = \"Bitte einen Agenten auswählen.\"\n\n        return\n      }\n    }\n\n    if (scope === \"realization\") {\n      const scopedSelection = decodeScopeRealizationRef(scopeRealizationRef)\n      resolvedProjectId = scopedSelection.projectId || null\n      resolvedRealizationId = scopedSelection.realizationId || null\n\n      if (!resolvedProjectId || !resolvedRealizationId) {\n        error = \"Bitte eine Sprache auswählen.\"\n\n        return\n      }\n    }\n\n    saving = true\n    try {\n      await onSave({\n        organizationId: resolvedOrganizationId,\n        projectId: resolvedProjectId,\n        name: name.trim(),\n        groupType,\n        scope,\n        realizationId: resolvedRealizationId,\n      })\n      clearOverlays()\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      saving = false\n    }\n  }\n\n  onMount(() => {\n    onshowOverlay?.()\n    setActionButtonSnippet?.(actionButtons)\n    const input = document.querySelector<HTMLInputElement>('[data-input-id=\\\"answer-group-name\\\"]')\n    input?.focus()\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n</script>\n\n<div class=\"overlay form\" data-testid=\"indexAdmin.answers.groupOverlay\">\n    <div class=\"row\">\n        <Input\n      id=\"answer-group-name\"\n      placeholder=\"Name\"\n      bind:value={name}\n      required\n      dataTestid=\"indexAdmin.answers.groupOverlay.nameInput\"\n    />\n    </div>\n    <ScopeSelectionRow\n    scopeId=\"answer-group-scope\"\n    projectIdField=\"answer-group-project\"\n    realizationIdField=\"answer-group-realization\"\n    bind:scope\n    bind:projectId={scopeProjectId}\n    bind:realizationRef={scopeRealizationRef}\n    scopeOptions={SCOPE_LEVEL_OPTIONS}\n    projectOptions={scopeProjectOptions}\n    realizationOptions={scopeRealizationOptions}\n    scopePlaceholder=\"Ebene\"\n    projectPlaceholder=\"Agent\"\n    realizationPlaceholder=\"Agent (Sprache)\"\n    scopeTooltip=\"Legt fest, ob diese FAQ-Sammlung organisationsweit, für einen Agenten oder nur für eine Sprache gilt.\"\n    projectTooltip=\"Wählen Sie den Agenten aus, für den diese FAQ-Sammlung gelten soll.\"\n    realizationTooltip=\"Wählen Sie die Sprache aus, für die diese FAQ-Sammlung gelten soll.\"\n    disabled={saving}\n    onScopeChange={ensureScopeSelection}\n    onRealizationChange={(nextRealizationRef) => {\n      scopeRealizationRef = nextRealizationRef\n      scopeProjectId = decodeScopeRealizationRef(nextRealizationRef).projectId\n    }}\n  />\n    <p class=\"hint\">Typ: Default</p>\n    {#if error}\n        <p class=\"error\">{error}</p>\n    {/if}\n</div>\n\n{#snippet actionButtons()}\n    <CTA\n    type=\"primaryButton\"\n    content={saving ? \"Speichern…\" : \"Gruppe erstellen\"}\n    onClick={handleSubmit}\n    icon={mdiPlus}\n    disabled={saving}\n    dataTestid=\"indexAdmin.answers.groupOverlay.submitButton\"\n  />\n{/snippet}\n\n<style lang=\"less\">\n  .overlay {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-100);\n    .row {\n      width: 100%;\n    }\n    .hint {\n      margin: 0;\n      color: color-mix(in srgb, var(--text-100) 70%, transparent);\n    }\n    .error {\n      color: var(--text-100);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import { onDestroy, onMount, type Snippet } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n\n  interface Props {\n    instructions?: string[]\n    subtitle?: string | null\n    introText?: string | null\n    outroText?: string | null\n    note?: string | null\n    hintText?: string | null\n\n    onremoveOverlay?: () => void\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  }\n\n  let {\n    instructions = [],\n    subtitle = null,\n    introText = null,\n    outroText = null,\n    note = null,\n    hintText = null,\n    onremoveOverlay = null,\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: Props = $props()\n\n  const defaultInstructions: string[] = [\n    \"Im Quellsystem die gewünschten Daten öffnen.\",\n    \"Export in einem gängigen Format (CSV, DOCX, PDF oder TXT) durchführen.\",\n    \"Datei speichern und im Import-Assistenten hochladen.\",\n  ]\n\n  const resolvedSteps = $derived(instructions.length ? instructions : defaultInstructions)\n  const resolvedHintText = $derived(\n    hintText ??\n      \"Die Anleitung ist exemplarisch. Menüpunkte können je nach Version abweichen. Entscheidend ist ein vollständiger Export.\",\n  )\n\n  const closeOverlay = () => onremoveOverlay?.()\n\n  onMount(() => {\n    onshowOverlay?.()\n    setActionButtonSnippet?.(footerActions)\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n</script>\n\n{#if subtitle}\n  <p class=\"lead\">{subtitle}</p>\n{/if}\n\n{#if introText}\n  <p class=\"hint\">{introText}</p>\n{/if}\n\n<ul class=\"primary-list primary-list--light\">\n  {#each resolvedSteps as step, idx (idx)}\n    <li>{step}</li>\n  {/each}\n</ul>\n\n<p class=\"hint\">{resolvedHintText}</p>\n\n{#if note}\n  <p class=\"note\">{note}</p>\n{/if}\n\n{#if outroText}\n  <p class=\"hint\">{outroText}</p>\n{/if}\n\n{#snippet footerActions()}\n  <CTA type=\"secondaryButton\" content=\"Schließen\" onClick={closeOverlay} />\n{/snippet}\n","<script lang=\"ts\">\n  import { onDestroy, onMount, type Snippet } from \"svelte\"\n  import { mdiDotsHorizontal } from \"@mdi/js\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import CardWrapper from \"@kontextwerk/web-sdk/ui/layout/CardWrapper.svelte\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import ProgressSteps from \"@kontextwerk/web-sdk/ui/navigation/ProgressSteps.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import type { WidgetContextState } from \"@kontextwerk/web-sdk/core\"\n  import { getWidgetContextSnapshot, updateWidgetContext } from \"@kontextwerk/web-sdk/core\"\n  import InternalAssistMount from \"../internal-assist-mount\"\n  import AiImportInstructionsOverlay from \"./_modules/ai-import-instructions-overlay\"\n  import type { AiImportFlowAdapter, AiImportFlowConfig, AiImportFlowCustomStep } from \"./contract\"\n\n  type OverlayHostProps = {\n    onremoveOverlay?: () => void\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  }\n\n  type Props = {\n    flow: AiImportFlowConfig\n    widgetContextPatch?: Partial<WidgetContextState> | null\n  }\n\n  let {\n    flow,\n    widgetContextPatch = null,\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: Props & OverlayHostProps = $props()\n\n  let previousContext: WidgetContextState | null = null\n  let hasTriggeredFreshSession = false\n  let freshSessionRetryHandle: ReturnType<typeof setTimeout> | null = null\n\n  const FRESH_SESSION_MAX_RETRIES = 300\n  const FRESH_SESSION_RETRY_DELAY_MS = 100\n\n  const chatEmbedHeightPx = $derived(flow.chatEmbedHeightPx ?? 920)\n  const introTitle = $derived(flow.introTitle ?? \"Was passiert?\")\n  const reviewTitle = $derived(flow.reviewTitle ?? \"Ergebnisse prüfen\")\n  const reviewSnippet = $derived(flow.reviewSnippet ?? null)\n  const reviewAction = $derived(flow.reviewAction ?? null)\n  const showReviewStep = $derived(flow.showReviewStep ?? true)\n  const adapterButtonPrefix = $derived(flow.adapterButtonPrefix ?? \"Anleitung:\")\n  const hasAdapters = $derived((flow.adapters?.length ?? 0) > 0)\n  const customSteps = $derived(flow.customSteps ?? [])\n  const postChatSteps = $derived(flow.postChatSteps ?? [])\n  const introSteps = $derived(\n    flow.skipIntroStep\n      ? []\n      : [\n          {\n            id: \"intro\",\n            label: \"Erklärung\",\n            description: \"\",\n            actionLabel: \"Weiter\",\n            snippet: introStep,\n          },\n        ],\n  )\n  let reviewActionPending = $state(false)\n  let widgetElement = $state<HTMLElement | null>(null)\n\n  const toggleWidgetMenu = () => {\n    const target = widgetElement as (HTMLElement & { toggleMenu?: () => void }) | null\n    target?.toggleMenu?.()\n  }\n\n  const openInstructionOverlay = (adapter: AiImportFlowAdapter) => {\n    openOverlay({\n      title: adapter.label,\n      content: AiImportInstructionsOverlay,\n      closeOnParentOpen: false,\n      properties: {\n        instructions: adapter.instructions,\n        subtitle: adapter.subtitle ?? null,\n        introText: adapter.introText ?? null,\n        outroText: adapter.outroText ?? null,\n        note: adapter.note ?? null,\n        hintText: flow.instructionsHintText ?? null,\n      },\n    })\n  }\n\n  const runReviewAction = async () => {\n    if (!reviewAction || reviewActionPending) return\n\n    reviewActionPending = true\n    try {\n      await reviewAction.onClick()\n    } finally {\n      reviewActionPending = false\n    }\n  }\n\n  const clearFreshSessionRetry = () => {\n    if (freshSessionRetryHandle !== null) {\n      clearTimeout(freshSessionRetryHandle)\n      freshSessionRetryHandle = null\n    }\n  }\n\n  const tryStartFreshImportSession = (attempt = 0) => {\n    if (hasTriggeredFreshSession) return\n\n    if (typeof window === \"undefined\") return\n\n    const global = window as typeof window & { chatWidgetContext?: Record<string, unknown> }\n    const ctx = global.chatWidgetContext ?? {}\n    const candidate =\n      (ctx as { startNewChat?: unknown })?.startNewChat ??\n      (window as { startNewChat?: unknown }).startNewChat\n\n    if (typeof candidate === \"function\") {\n      clearFreshSessionRetry()\n      hasTriggeredFreshSession = true\n      void Promise.resolve(candidate()).catch((error) => {\n        console.warn(\"Assistent Widget: konnte keine frische Import-Session starten\", error)\n      })\n\n      return\n    }\n\n    if (attempt >= FRESH_SESSION_MAX_RETRIES) return\n\n    clearFreshSessionRetry()\n    freshSessionRetryHandle = setTimeout(\n      () => tryStartFreshImportSession(attempt + 1),\n      FRESH_SESSION_RETRY_DELAY_MS,\n    )\n  }\n\n  const triggerFreshSessionForChatStep = () => {\n    if (hasTriggeredFreshSession) return\n\n    tryStartFreshImportSession()\n  }\n\n  const triggerFreshSessionOnMount = (_node: HTMLElement) => {\n    triggerFreshSessionForChatStep()\n\n    return {\n      destroy: () => {\n        clearFreshSessionRetry()\n      },\n    }\n  }\n\n  onMount(() => {\n    onshowOverlay?.()\n    setActionButtonSnippet?.(null)\n\n    previousContext = getWidgetContextSnapshot()\n    const mergedPatch = {\n      ...(widgetContextPatch ?? {}),\n      ...(flow.chatStartProfileId ? { chatStartProfileId: flow.chatStartProfileId } : {}),\n    }\n\n    if (Object.keys(mergedPatch).length > 0) {\n      updateWidgetContext(mergedPatch)\n    }\n  })\n\n  onDestroy(() => {\n    clearFreshSessionRetry()\n    setActionButtonSnippet?.(null)\n\n    if (previousContext) {\n      updateWidgetContext(previousContext)\n    }\n  })\n\n  const mapCustomStep = (step: AiImportFlowCustomStep) => ({\n    id: step.id,\n    label: step.label,\n    description: step.description ?? \"\",\n    actionLabel: step.actionLabel ?? \"Weiter\",\n    hideDefaultAction: step.hideDefaultAction ?? false,\n    disableNext: step.disableNext ?? false,\n    onNext: step.onNext,\n    snippet: step.snippet,\n  })\n\n  const steps = $derived.by<any[]>(() => {\n    const configuredSteps = [\n      ...introSteps,\n      ...customSteps.map(mapCustomStep),\n      {\n        id: \"chat\",\n        label: flow.chatStepLabel ?? \"Chatbot\",\n        description: \"\",\n        actionLabel: \"Weiter\",\n        snippet: chatStep,\n      },\n      ...postChatSteps.map(mapCustomStep),\n    ]\n\n    if (!showReviewStep) return configuredSteps\n\n    return [\n      ...configuredSteps,\n      {\n        id: \"review\",\n        label: \"Prüfen\",\n        description: \"\",\n        hideDefaultAction: true,\n        snippet: reviewStep,\n      },\n    ]\n  })\n</script>\n\n<ProgressSteps {steps} showControls={true} darkMode={true} syncUrl={false} />\n\n{#snippet introStep()}\n  <h3>{introTitle}</h3>\n  <ul class=\"primary-list\">\n    {#each flow.introBullets as bullet, idx (idx)}\n      <li>{bullet}</li>\n    {/each}\n  </ul>\n\n  {#if flow.introHintText}\n    <p class=\"hint\">{flow.introHintText}</p>\n  {/if}\n\n  {#if hasAdapters}\n    {#if flow.adapterSectionTitle}\n      <h4 class=\"adapter-section-title\">{flow.adapterSectionTitle}</h4>\n    {/if}\n    <div class=\"adapter-buttons\">\n      {#each flow.adapters ?? [] as adapter (adapter.id)}\n        <CTA\n          type=\"tertiaryButton\"\n          darkMode={true}\n          content={adapter.buttonLabel ?? `${adapterButtonPrefix} ${adapter.label}`}\n          onClick={() => openInstructionOverlay(adapter)}\n        />\n      {/each}\n    </div>\n  {/if}\n{/snippet}\n\n{#snippet chatStep()}\n  <div class=\"chat-step-enter\" use:triggerFreshSessionOnMount>\n    <CardWrapper white={true}>\n      {#snippet rightCorner()}\n        <button\n          class=\"btn widget-menu-button\"\n          type=\"button\"\n          onclick={toggleWidgetMenu}\n          title=\"Weitere Optionen\"\n          aria-label=\"Weitere Optionen\"\n        >\n          <Icon path={mdiDotsHorizontal} />\n        </button>\n      {/snippet}\n      {#snippet header()}\n        <SectionTitle\n          title={flow.chatStepTitle ?? \"Assist\"}\n          small={true}\n          helpModalTextId={flow.chatStepHelpModalTextId ?? \"\"}\n          helpModalTooltip={flow.chatStepHelpModalTooltip ?? \"\"}\n        />\n      {/snippet}\n      <InternalAssistMount\n        embed\n        style={`display: flex; min-height: ${chatEmbedHeightPx}px; height: ${chatEmbedHeightPx}px; width: 100%;`}\n        bind:widgetElement\n      />\n    </CardWrapper>\n  </div>\n{/snippet}\n\n{#snippet reviewStep()}\n  <h3>{reviewTitle}</h3>\n  {#if reviewSnippet}\n    {@render reviewSnippet()}\n  {:else}\n    <ul class=\"primary-list\">\n      {#each flow.reviewBullets as bullet, idx (idx)}\n        <li>{bullet}</li>\n      {/each}\n    </ul>\n  {/if}\n  {#if reviewAction}\n    <div class=\"review-actions\">\n      <CTA\n        type=\"primaryButton\"\n        darkMode={true}\n        content={reviewAction.label}\n        icon={reviewAction.icon ?? \"\"}\n        disabled={reviewActionPending}\n        onClick={runReviewAction}\n      />\n    </div>\n  {/if}\n{/snippet}\n\n<style lang=\"less\">\n  h3 {\n    margin-bottom: 1.2rem;\n  }\n\n  .adapter-section-title {\n    margin-top: 1.2rem;\n    margin-bottom: 0.6rem;\n  }\n  .widget-menu-button {\n    color: white !important;\n  }\n  .adapter-buttons {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 0.6rem;\n    margin-top: 0.4rem;\n  }\n  .hint {\n    color: var(--text-100);\n  }\n  .review-actions {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: 1.2rem;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import AiImportFlowOverlay from \"@kontextwerk/control-web-frame/shared/modules/ai-import-flow-overlay\"\n  import type { AiImportFlowConfig } from \"@kontextwerk/control-web-frame/shared/modules/ai-import-flow-overlay\"\n\n  type OverlayHostProps = {\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  }\n\n  type Props = {\n    organizationId?: string | null\n    onReloadGroups?: (() => Promise<void> | void) | null\n  }\n\n  let {\n    organizationId = null,\n    onReloadGroups = null,\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: Props & OverlayHostProps = $props()\n\n  const overlayStartedAt = new Date().toISOString()\n\n  const normalizedOrganizationId = $derived((organizationId ?? \"\").trim() || null)\n\n  const widgetContextPatch = $derived.by(() => ({\n    page: \"ANSWER_LIBRARY_GENERATION\",\n    taskHint:\n      \"Schritt 1: Organisationskontext prüfen. Schritt 2: Im Assist-Widget eine indexierte Website auswählen. Schritt 3: Die Collection generieren und danach das Ergebnis prüfen.\",\n    organizationId: normalizedOrganizationId,\n    externalState: {\n      answerLibraryGeneration: {\n        organizationId: normalizedOrganizationId,\n        overlayStartedAt,\n        startedFromUi: true,\n      },\n    },\n  }))\n\n  const flow: AiImportFlowConfig = {\n    chatStartProfileId: \"answer_library_generation\",\n    introTitle: \"Was passiert?\",\n    introBullets: [\n      \"Sie werden im nächsten Schritt in ein Assist-Widget weitergeleitet, das Sie durch den Prozess führt.\",\n      \"Dort können Sie eine bereits von Ihnen hinterlegte Website auswählen, die dann von einen KI Agenten in ein FAQ Format überführt und als FAQ Sammlung angelegt wird.\",\n      \"Dieser Prozess dauert in der Regel einige Zeit, Sie müssen ihn allerdings nur starten - Sie brauchen das Fenster nicht offen halten.\",\n      \"Der Vorgang kann anschließend die Antwortqualität des KI Agenten signifikant verbessern, da er auf diese Weise Zugriff auf ein hochoptimiertes Datenformat erhält.\",\n      \"Nach Abschluss der Generierung können Sie die Ergebnisse direkt in der Answer Library prüfen und bei Bedarf Anpassungen vornehmen.\",\n    ],\n    chatStepTitle: \"Website wählen & Collection generieren\",\n    reviewTitle: \"Ergebnisse prüfen\",\n    reviewBullets: [],\n    reviewSnippet,\n  }\n</script>\n\n<AiImportFlowOverlay {flow} {widgetContextPatch} {onshowOverlay} {setActionButtonSnippet} />\n\n{#snippet reviewSnippet()}\n    <div class=\"step-stack\">\n        <p class=\"muted\">\n            Die Website-Auswahl und der komplette Generierungsfortschritt laufen direkt im eingebetteten Assist-Widget\n            dieser Session.\n        </p>\n        <p class=\"muted\">\n            Sobald der Assist die Collection angelegt hat, erscheint sie nach dem Aktualisieren der Gruppenliste auf der\n            Answer-Library-Seite.\n        </p>\n    </div>\n{/snippet}\n\n<style lang=\"less\">\n  .step-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .muted {\n    margin: 0;\n    color: var(--text-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import {\n    buildAnswerGroupSyncJobsStreamUrl,\n    buildAnswerSyncJobsStreamUrl,\n    fetchAnswerGroupSyncJobs,\n    fetchAnswerSyncJobs,\n  } from \"../../_logic/answers\"\n  import SyncJobsTable from \"../../../../_shared/_modules/sync-jobs-table\"\n\n  const {\n    organizationId,\n    projectId = null,\n    groupId = null,\n  }: {\n    organizationId: string\n    projectId?: string | null\n    groupId?: string | null\n  } = $props()\n\n  const liveStateUrl = $derived.by(() => {\n    if (groupId) return buildAnswerGroupSyncJobsStreamUrl(groupId, { organizationId })\n\n    return buildAnswerSyncJobsStreamUrl({ organizationId })\n  })\n</script>\n\n<div data-testid=\"indexAdmin.answers.syncJobs\">\n    <SyncJobsTable\n    title=\"Synchronisationsläufe\"\n    helpModalTextId=\"indexAdminAnswerSyncJobs\"\n    tooltipContent=\"Hier sehen Sie laufende und kürzlich abgeschlossene Synchronisationen der FAQ-Sammlung.\"\n    emptyMessage=\"Noch keine Synchronisationsjobs für die FAQ-Sammlung erfasst.\"\n    fetchJobs={(params) =>\n      groupId\n        ? fetchAnswerGroupSyncJobs(groupId, { organizationId, ...params })\n        : fetchAnswerSyncJobs({ organizationId, projectId, ...params })}\n    {liveStateUrl}\n    showParentEntity={!groupId}\n    parentEntityLabel=\"Gruppe\"\n    resourceLabel=\"Frage\"\n    resourceKindFallback=\"answer\"\n  />\n</div>\n","export const describeAnswerGroupScope = (scope?: \"organization\" | \"project\" | \"realization\") => {\n  if (scope === \"realization\") return \"Sprache\"\n\n  if (scope === \"project\") return \"Agent\"\n\n  return \"Organisation\"\n}\n\nexport const formatGroupTypeLabel = (groupType?: string | null) => {\n  const normalized = (groupType ?? \"\").trim().toLowerCase()\n\n  if (!normalized || normalized === \"default\") return \"Default\"\n\n  return (groupType ?? \"\").trim()\n}\n\nexport const answerGroupScopeStatus = (scope?: \"organization\" | \"project\" | \"realization\") => {\n  if (scope === \"realization\") {\n    return { value: \"realization\", label: \"Sprache\", color: \"teal\" as const }\n  }\n\n  if (scope === \"project\") {\n    return { value: \"project\", label: \"Agent\", color: \"blue\" as const }\n  }\n\n  return { value: \"organization\", label: \"Organisation\", color: \"indigo\" as const }\n}\n\nexport const answerGroupTypeStatus = (groupType?: string | null) => {\n  const normalized = (groupType ?? \"\").trim().toLowerCase()\n  const label = formatGroupTypeLabel(groupType)\n\n  if (!normalized || normalized === \"default\") {\n    return { value: \"default\", label, color: \"emerald\" as const }\n  }\n\n  return { value: normalized, label, color: \"cyan\" as const }\n}\n","import type { AnswerGroup, AnswerQuestion } from \"../../../../../../../_shared/_logic/answers\"\n\nexport const ANSWER_GROUP_EXPORT_KIND = \"kontext-kern.answer-library.groups\"\nexport const ANSWER_GROUP_EXPORT_VERSION = 1\n\nexport type AnswerGroupScope = \"organization\" | \"project\" | \"realization\"\n\nexport type AnswerGroupImportQuestion = {\n  title: string\n  answer: string\n  status: \"active\" | \"inactive\"\n}\n\nexport type AnswerGroupImportItem = {\n  name: string\n  groupType: string\n  scope: AnswerGroupScope\n  projectId: string | null\n  realizationId: string | null\n  questions: AnswerGroupImportQuestion[]\n}\n\nexport type AnswerGroupExportPayload = {\n  kind: typeof ANSWER_GROUP_EXPORT_KIND\n  version: typeof ANSWER_GROUP_EXPORT_VERSION\n  exportedAt: string\n  organizationId: string | null\n  collections: AnswerGroupImportItem[]\n}\n\nconst getString = (value: unknown): string => (typeof value === \"string\" ? value.trim() : \"\")\n\nconst getRecord = (value: unknown): Record<string, unknown> | null =>\n  value && typeof value === \"object\" && !Array.isArray(value)\n    ? (value as Record<string, unknown>)\n    : null\n\nconst normalizeScope = (value: unknown): AnswerGroupScope => {\n  const normalized = getString(value).toLowerCase()\n\n  return normalized === \"project\" || normalized === \"realization\" ? normalized : \"organization\"\n}\n\nconst normalizeQuestionStatus = (value: unknown): \"active\" | \"inactive\" =>\n  getString(value).toLowerCase() === \"inactive\" ? \"inactive\" : \"active\"\n\nconst normalizeImportQuestion = (\n  value: unknown,\n  groupName: string,\n  index: number,\n): AnswerGroupImportQuestion => {\n  const source = getRecord(value)\n\n  if (!source) {\n    throw new Error(`Frage ${index + 1} in „${groupName}” ist kein gültiges Objekt.`)\n  }\n\n  const title = getString(source.title ?? source.question ?? source.name)\n  const answer = getString(source.answer ?? source.response)\n\n  if (!title || !answer) {\n    throw new Error(`Frage ${index + 1} in „${groupName}” benötigt Titel und Antwort.`)\n  }\n\n  return {\n    title,\n    answer,\n    status: normalizeQuestionStatus(source.status),\n  }\n}\n\nconst normalizeImportGroup = (value: unknown, index: number): AnswerGroupImportItem => {\n  const source = getRecord(value)\n\n  if (!source) {\n    throw new Error(`FAQ-Sammlung ${index + 1} ist kein gültiges Objekt.`)\n  }\n\n  const name = getString(source.name ?? source.title)\n\n  if (!name) {\n    throw new Error(`FAQ-Sammlung ${index + 1} benötigt einen Namen.`)\n  }\n\n  const scope = normalizeScope(source.scope)\n  const questionsRaw = Array.isArray(source.questions) ? source.questions : []\n\n  return {\n    name,\n    groupType: getString(source.groupType ?? source.group_type) || \"default\",\n    scope,\n    projectId:\n      scope === \"organization\" ? null : getString(source.projectId ?? source.project_id) || null,\n    realizationId:\n      scope === \"realization\"\n        ? getString(source.realizationId ?? source.realization_id) || null\n        : null,\n    questions: questionsRaw.map((question, questionIndex) =>\n      normalizeImportQuestion(question, name, questionIndex),\n    ),\n  }\n}\n\nconst extractCollectionArray = (payload: unknown): unknown[] => {\n  if (Array.isArray(payload)) return payload\n\n  const source = getRecord(payload)\n\n  if (!source) return []\n\n  if (Array.isArray(source.collections)) return source.collections\n\n  if (Array.isArray(source.groups)) return source.groups\n\n  return []\n}\n\nexport const extractAnswerGroupImportItems = (payload: unknown): AnswerGroupImportItem[] => {\n  const items = extractCollectionArray(payload).map(normalizeImportGroup)\n\n  if (!items.length) {\n    throw new Error(\"Keine FAQ-Sammlungen in der Datei gefunden.\")\n  }\n\n  return items\n}\n\nexport const buildAnswerGroupExportPayload = ({\n  groups,\n  organizationId,\n  questionsByGroupId,\n}: {\n  groups: AnswerGroup[]\n  organizationId: string | null\n  questionsByGroupId: Map<string, AnswerQuestion[]>\n}): AnswerGroupExportPayload => ({\n  kind: ANSWER_GROUP_EXPORT_KIND,\n  version: ANSWER_GROUP_EXPORT_VERSION,\n  exportedAt: new Date().toISOString(),\n  organizationId,\n  collections: groups.map((group) => ({\n    name: group.name,\n    groupType: group.groupType || \"default\",\n    scope: normalizeScope(group.scope),\n    projectId: group.projectId ?? null,\n    realizationId: group.scope === \"realization\" ? (group.realizationId ?? null) : null,\n    questions: (questionsByGroupId.get(group.id) ?? []).map((question) => ({\n      title: question.title,\n      answer: question.answer,\n      status: normalizeQuestionStatus(question.status),\n    })),\n  })),\n})\n\nexport const buildAnswerGroupCreatePayload = (\n  item: AnswerGroupImportItem,\n  organizationId: string,\n  fallbackProjectId: string | null,\n) => {\n  const projectId = item.scope === \"organization\" ? null : (item.projectId ?? fallbackProjectId)\n\n  if (item.scope !== \"organization\" && !projectId) {\n    throw new Error(`FAQ-Sammlung „${item.name}” benötigt für ${item.scope}-Scope eine Projekt-ID.`)\n  }\n\n  if (item.scope === \"realization\" && !item.realizationId) {\n    throw new Error(\n      `FAQ-Sammlung „${item.name}” benötigt für Realization-Scope eine Realization-ID.`,\n    )\n  }\n\n  return {\n    organizationId,\n    projectId,\n    name: item.name,\n    groupType: item.groupType,\n    scope: item.scope,\n    realizationId: item.scope === \"realization\" ? item.realizationId : null,\n  }\n}\n","import {\n  mdiAlertCircleOutline,\n  mdiCloudAlert,\n  mdiCloudCheckOutline,\n  mdiCloudSync,\n  mdiFrequentlyAskedQuestions,\n  mdiOfficeBuilding,\n  mdiRobotOutline,\n  mdiTextBoxCheckOutline,\n  mdiTranslate,\n} from \"@mdi/js\"\n\nimport type { AnswerGroup } from \"../../../../../../../_shared/_logic/answers\"\nimport type { AnswerLibraryTableTagPresentation } from \"../../../../../../../_shared/_logic/answer-library-table-tags\"\nimport { formatTimestamp } from \"../../../../../../../../_shared/_logic/metrics-utils\"\nimport {\n  buildRichTooltip,\n  safeTooltipField,\n  tooltipTitle,\n} from \"../../../../../../../../_shared/_logic/rich-tooltips\"\nimport {\n  resolveScopeProjectLabel,\n  resolveScopeRealizationLabel,\n  type ScopeSelectableProject,\n} from \"../../../../../../../../_shared/_logic/scope-selection\"\nimport { formatGroupTypeLabel } from \"./presentation\"\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst normalizeScope = (\n  scope: AnswerGroup[\"scope\"],\n): \"organization\" | \"project\" | \"realization\" => {\n  if (scope === \"project\" || scope === \"realization\") return scope\n\n  return \"organization\"\n}\n\nconst scopeRank: Record<\"organization\" | \"project\" | \"realization\", number> = {\n  organization: 0,\n  project: 1,\n  realization: 2,\n}\n\nconst formatCount = (value: number): string => numberFormatter.format(Math.max(0, value))\n\nconst normalizeText = (value: string | null | undefined, fallback: string): string => {\n  const trimmed = (value ?? \"\").trim()\n\n  return trimmed || fallback\n}\n\nexport const resolveAnswerGroupTargetLabel = (\n  group: AnswerGroup,\n  scopedProjects: ScopeSelectableProject[] = [],\n): string => {\n  const scope = normalizeScope(group.scope)\n\n  if (scope === \"organization\") return \"organisationsweit\"\n\n  if (scope === \"project\") {\n    return resolveScopeProjectLabel(scopedProjects, group.projectId) || group.projectId || \"Agent\"\n  }\n\n  return (\n    resolveScopeRealizationLabel(scopedProjects, group.projectId, group.realizationId) ||\n    group.realizationId ||\n    \"Sprache\"\n  )\n}\n\nexport const buildAnswerGroupCollectionTag = (\n  group: AnswerGroup,\n): AnswerLibraryTableTagPresentation => {\n  const label = normalizeText(group.name, \"Unbenannte Sammlung\")\n  const typeLabel = formatGroupTypeLabel(group.groupType)\n  const normalizedType = (group.groupType ?? \"\").trim().toLowerCase() || \"default\"\n\n  return {\n    id: \"collection\",\n    label,\n    subLabel: typeLabel,\n    color: normalizedType === \"default\" ? \"emerald\" : \"cyan\",\n    icon: mdiFrequentlyAskedQuestions,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"FAQ-Sammlung\"),\n      safeTooltipField(\"Name\", label),\n      safeTooltipField(\"Typ\", typeLabel),\n      safeTooltipField(\"Gruppen-ID\", group.id),\n      safeTooltipField(\"Erstellt\", formatTimestamp(group.createdAt)),\n      safeTooltipField(\"Aktualisiert\", formatTimestamp(group.updatedAt)),\n    ),\n    searchText: [label, typeLabel, group.id].join(\" \"),\n    sortValue: label.toLowerCase(),\n  }\n}\n\nexport const buildAnswerGroupScopeTag = (\n  group: AnswerGroup,\n  scopedProjects: ScopeSelectableProject[] = [],\n): AnswerLibraryTableTagPresentation => {\n  const scope = normalizeScope(group.scope)\n  const targetLabel = resolveAnswerGroupTargetLabel(group, scopedProjects)\n  const projectLabel =\n    scope !== \"organization\"\n      ? resolveScopeProjectLabel(scopedProjects, group.projectId) || group.projectId || null\n      : null\n  const label = scope === \"realization\" ? \"Sprache\" : scope === \"project\" ? \"Agent\" : \"Organisation\"\n  const description =\n    scope === \"realization\"\n      ? \"Gilt nur für die ausgewählte Sprache eines Agenten.\"\n      : scope === \"project\"\n        ? \"Gilt für einen Agenten innerhalb der Organisation.\"\n        : \"Gilt organisationsweit für alle Agenten.\"\n\n  return {\n    id: \"scope\",\n    label,\n    subLabel: targetLabel,\n    color: scope === \"realization\" ? \"teal\" : scope === \"project\" ? \"blue\" : \"indigo\",\n    icon:\n      scope === \"realization\"\n        ? mdiTranslate\n        : scope === \"project\"\n          ? mdiRobotOutline\n          : mdiOfficeBuilding,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Gültigkeit\"),\n      safeTooltipField(\"Ebene\", label),\n      safeTooltipField(\"Ziel\", targetLabel),\n      safeTooltipField(\"Agent\", projectLabel),\n      safeTooltipField(\"Beschreibung\", description),\n    ),\n    searchText: [label, targetLabel, projectLabel].filter(Boolean).join(\" \"),\n    sortValue: `${scopeRank[scope]}:${targetLabel.toLowerCase()}`,\n  }\n}\n\nexport const buildAnswerGroupContentTag = (\n  group: AnswerGroup,\n): AnswerLibraryTableTagPresentation => {\n  const total = Math.max(0, Number(group.questionCount ?? 0))\n  const active = Math.min(total, Math.max(0, Number(group.activeCount ?? 0)))\n  const inactive = Math.max(0, total - active)\n  const label = total === 1 ? \"1 Frage\" : `${formatCount(total)} Fragen`\n  const subLabel =\n    total === 0\n      ? \"leer\"\n      : inactive > 0\n        ? `${formatCount(active)} aktiv · ${formatCount(inactive)} inaktiv`\n        : \"alle aktiv\"\n  const color = total === 0 ? \"rose\" : inactive > 0 ? \"amber\" : \"emerald\"\n\n  return {\n    id: \"content\",\n    label,\n    subLabel,\n    color,\n    icon: total === 0 ? mdiAlertCircleOutline : mdiTextBoxCheckOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Inhalt\"),\n      safeTooltipField(\"Fragen gesamt\", formatCount(total)),\n      safeTooltipField(\"Aktive Fragen\", formatCount(active)),\n      safeTooltipField(\"Inaktive Fragen\", formatCount(inactive)),\n    ),\n    searchText: [label, subLabel].join(\" \"),\n    sortValue: total,\n  }\n}\n\nexport const buildAnswerGroupIndexTag = (group: AnswerGroup): AnswerLibraryTableTagPresentation => {\n  const total = Math.max(0, Number(group.questionCount ?? 0))\n  const synced = Math.min(total, Math.max(0, Number(group.syncedCount ?? 0)))\n  const coverage = total > 0 ? Math.round((synced / total) * 100) : 0\n  const label = total === 0 ? \"Kein Index\" : `${coverage} %`\n  const subLabel = `${formatCount(synced)}/${formatCount(total)} synchronisiert`\n  const color = total === 0 || coverage === 0 ? \"rose\" : coverage >= 100 ? \"emerald\" : \"amber\"\n  const icon =\n    total === 0 || coverage === 0\n      ? mdiCloudAlert\n      : coverage >= 100\n        ? mdiCloudCheckOutline\n        : mdiCloudSync\n\n  return {\n    id: \"index\",\n    label,\n    subLabel,\n    color,\n    icon,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Index\"),\n      safeTooltipField(\"Synchronisiert\", `${formatCount(synced)} von ${formatCount(total)} Fragen`),\n      safeTooltipField(\"Abdeckung\", `${coverage} %`),\n    ),\n    searchText: [label, subLabel].join(\" \"),\n    sortValue: coverage,\n  }\n}\n\nexport const buildAnswerGroupSearchText = (tags: AnswerLibraryTableTagPresentation[]): string =>\n  tags\n    .map((tag) => tag.searchText)\n    .join(\" \")\n    .toLowerCase()\n","import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\nimport type { AnswerGroup } from \"../../../../../../../_shared/_logic/answers\"\nimport type { ScopeSelectableProject } from \"../../../../../../../../_shared/_logic/scope-selection\"\nimport type { GroupRow } from \"../_shared/_logic/contract\"\nimport {\n  buildAnswerGroupCollectionTag,\n  buildAnswerGroupContentTag,\n  buildAnswerGroupIndexTag,\n  buildAnswerGroupScopeTag,\n  buildAnswerGroupSearchText,\n  resolveAnswerGroupTargetLabel,\n} from \"./tags\"\n\nexport const answerGroupColumns: ColumnDef[] = [\n  {\n    id: \"name\",\n    label: \"Sammlung\",\n    tooltip: \"Name und Typ der FAQ-Sammlung.\",\n    isPrimary: true,\n    sortable: true,\n    sortKey: \"name\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as GroupRow).collectionSortValue,\n  },\n  {\n    id: \"scopeLabel\",\n    label: \"Gültigkeit\",\n    tooltip: \"Ebene und Zielkontext, in dem diese FAQ-Sammlung gilt.\",\n    sortable: true,\n    sortKey: \"scopeLabel\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as GroupRow).scopeSortValue,\n  },\n  {\n    id: \"questionCount\",\n    label: \"Inhalt\",\n    tooltip: \"Fragenbestand und Aktivierungsstatus der Sammlung.\",\n    sortable: true,\n    sortKey: \"questionCount\",\n    sortType: \"number\",\n    defaultSortDir: \"desc\",\n    getSortValue: (row) => (row as GroupRow).contentSortValue,\n  },\n  {\n    id: \"syncCoverage\",\n    label: \"Index\",\n    tooltip: \"Anteil der Fragen, die bereits im Kontextindex synchronisiert sind.\",\n    sortable: true,\n    sortKey: \"syncCoverage\",\n    sortType: \"number\",\n    defaultSortDir: \"desc\",\n    getSortValue: (row) => (row as GroupRow).indexSortValue,\n  },\n]\n\nexport const buildAnswerGroupRows = ({\n  groups,\n  scopedProjects = [],\n}: {\n  groups: AnswerGroup[]\n  scopedProjects?: ScopeSelectableProject[]\n}): GroupRow[] =>\n  groups.map((group) => {\n    const collectionTag = buildAnswerGroupCollectionTag(group)\n    const scopeTag = buildAnswerGroupScopeTag(group, scopedProjects)\n    const contentTag = buildAnswerGroupContentTag(group)\n    const indexTag = buildAnswerGroupIndexTag(group)\n    const scopeLabel = scopeTag.label\n    const targetLabel = resolveAnswerGroupTargetLabel(group, scopedProjects)\n    const syncCoverage = Number(indexTag.sortValue ?? 0)\n\n    return {\n      ...group,\n      id: group.id,\n      scopeLabel,\n      targetLabel,\n      syncCoverage,\n      collectionTag,\n      scopeTag,\n      contentTag,\n      indexTag,\n      searchableText: buildAnswerGroupSearchText([collectionTag, scopeTag, contentTag, indexTag]),\n      collectionSortValue: String(collectionTag.sortValue ?? \"\"),\n      scopeSortValue: String(scopeTag.sortValue ?? \"\"),\n      contentSortValue: Number(contentTag.sortValue ?? 0),\n      indexSortValue: syncCoverage,\n    }\n  })\n","<script lang=\"ts\">\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import { RICH_TOOLTIP_CLASS } from \"../../../../_shared/_logic/rich-tooltips\"\n  import type { AnswerLibraryTableTagPresentation } from \"../../_logic/answer-library-table-tags\"\n\n  type Props = {\n    tag: AnswerLibraryTableTagPresentation\n    size?: \"sm\" | \"md\"\n  }\n\n  const { tag, size = \"sm\" }: Props = $props()\n</script>\n\n<span class=\"answer-library-table-tag\">\n    <StatusTag\n    {size}\n    label={tag.label}\n    subLabel={tag.subLabel ?? undefined}\n    color={tag.color}\n    icon={tag.icon ?? undefined}\n    tooltipContent={tag.tooltip ?? undefined}\n    tooltipHtml={true}\n    tooltipClassName={RICH_TOOLTIP_CLASS}\n    disableTitle={true}\n  />\n</span>\n\n<style lang=\"less\">\n  .answer-library-table-tag {\n    display: inline-flex;\n    max-width: 100%;\n    min-width: 0;\n  }\n\n  .answer-library-table-tag :global(.status-tag) {\n    max-width: 100%;\n  }\n\n  .answer-library-table-tag :global(.status-tag__label) {\n    min-width: 0;\n    overflow: hidden;\n  }\n\n  .answer-library-table-tag :global(.status-tag__main-label),\n  .answer-library-table-tag :global(.status-tag__sub-label),\n  .answer-library-table-tag :global(.status-tag__label:not(.status-tag__label--stacked)) {\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import AnswerLibraryTableTag from \"../../../../../../../../_shared/_modules/answer-library-table-tag\"\n  import type { GroupRow } from \"../../_shared/_logic/contract\"\n\n  type Props = {\n    row: GroupRow\n    column: ColumnDef\n  }\n\n  const { row, column }: Props = $props()\n  const fallbackValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"name\"}\n    <AnswerLibraryTableTag tag={row.collectionTag} />\n{:else if column.id === \"scopeLabel\"}\n    <AnswerLibraryTableTag tag={row.scopeTag} />\n{:else if column.id === \"questionCount\"}\n    <AnswerLibraryTableTag tag={row.contentTag} />\n{:else if column.id === \"syncCoverage\"}\n    <AnswerLibraryTableTag tag={row.indexTag} />\n{:else}\n    {fallbackValue}\n{/if}\n","<script lang=\"ts\">\n  import { mdiEyeOutline as standardDetailsIcon } from \"@mdi/js\"\n\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import { onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import ToggleCTA from \"@kontextwerk/web-sdk/ui/actions/ToggleCTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import { getSortedTablePage } from \"@kontextwerk/web-sdk/core/layout/tableSort\"\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n  import { openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import {\n    mdiAutoFix,\n    mdiDownload,\n    mdiOpenInApp,\n    mdiPlus,\n    mdiTrashCanOutline,\n    mdiUpload,\n  } from \"@mdi/js\"\n\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../../../../../_shared/_logic/organization-navigation\"\n  import {\n    createAnswerGroup,\n    deleteAnswerGroup,\n    fetchAnswerGroups,\n    fetchAnswerQuestions,\n    type AnswerGroup,\n  } from \"../../../../../../_shared/_logic/answers\"\n  import { downloadJsonFile, readJsonFile } from \"./_logic/jsonImportExport\"\n  import { indexActionTooltip } from \"../../../../../../../_shared/_logic/index-action-tooltips\"\n  import AnswerGroupOverlay from \"./_modules/answer-group-overlay\"\n  import AnswerLibraryGenerationOverlay from \"./_modules/answer-library-generation-overlay\"\n  import AnswerSyncJobsTable from \"../../../../../../_shared/_modules/answer-sync-jobs-table\"\n  import type { FilterDisplayMode, GroupRow } from \"./_logic/types\"\n  import { formatGroupTypeLabel } from \"./_logic/presentation\"\n  import {\n    buildAnswerGroupCreatePayload,\n    buildAnswerGroupExportPayload,\n    extractAnswerGroupImportItems,\n    type AnswerGroupImportItem,\n  } from \"./_logic/importExport\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../confirmed-destructive-action\"\n  import { availableProjects } from \"../../../../../../../_shared/_logic/organizations\"\n  import type { ScopeSelectableProject } from \"../../../../../../../_shared/_logic/scope-selection\"\n  import { answerGroupColumns, buildAnswerGroupRows } from \"./_logic/tableModel\"\n  import AnswerGroupTableCell from \"./_modules/answer-group-table-cell\"\n\n  const {\n    projectId,\n    organizationId = null,\n    canManage = true,\n    view = \"groups\",\n  }: {\n    projectId: string | null\n    organizationId?: string | null\n    canManage?: boolean\n    view?: \"groups\" | \"jobs\"\n  } = $props()\n\n  let groups = $state<AnswerGroup[]>([])\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let filterMode = $state<FilterDisplayMode>(\"compact\")\n  let searchDraft = $state(\"\")\n  let groupTypeFilter = $state(\"__all__\")\n  let importInput = $state<HTMLInputElement | null>(null)\n  let exportLoading = $state(false)\n  let importLoading = $state(false)\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const titleWithCount = $derived.by(\n    () => `FAQ-Sammlung (${numberFormatter.format(filteredGroups.length)})`,\n  )\n  const exportFileName = $derived(`${organizationId ?? \"organisation\"}-faq-sammlungen.json`)\n  const filterModeOptions = [\n    { value: \"compact\", label: \"Kompakt\" },\n    { value: \"detailed\", label: \"Ausführlich\" },\n  ]\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const rows = $derived.by(() => buildAnswerGroupRows({ groups, scopedProjects }))\n  const normalizedSearch = $derived(searchDraft.trim().toLowerCase())\n  const groupTypeOptions = $derived.by(() => {\n    const values = Array.from(\n      new Set(groups.map((group) => (group.groupType || \"\").trim()).filter(Boolean)),\n    ).sort()\n\n    return [\n      { name: \"Alle Typen\", value: \"__all__\" },\n      ...values.map((value) => ({ name: formatGroupTypeLabel(value), value })),\n    ]\n  })\n  const filteredGroups = $derived.by(() => {\n    return rows.filter((group) => {\n      if (groupTypeFilter !== \"__all__\" && group.groupType !== groupTypeFilter) return false\n\n      if (!normalizedSearch) return true\n\n      return group.searchableText.includes(normalizedSearch)\n    })\n  })\n  const groupsRefreshKey = $derived(\n    `${filterMode}|${searchDraft.trim().toLowerCase()}|${groupTypeFilter}|${filteredGroups.map((group) => `${group.id}:${group.name}:${group.questionCount}:${group.activeCount}:${group.syncedCount}:${group.updatedAt}`).join(\"|\")}`,\n  )\n\n  const loadGroups = async () => {\n    if (!organizationId) {\n      groups = []\n      error = null\n\n      return\n    }\n\n    loading = true\n    error = null\n    try {\n      const items = await fetchAnswerGroups({ organizationId })\n      groups = items\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadGroups()\n  })\n\n  const getRows: TableGetRows = ({ limit, offset, sort }) =>\n    getSortedTablePage({\n      rows: filteredGroups,\n      columns: answerGroupColumns,\n      sort,\n      limit,\n      offset,\n    })\n\n  const handleCreateGroup = () => {\n    if (!canManage) return\n\n    if (!organizationId) return\n\n    openOverlay({\n      title: \"Gruppe hinzufügen\",\n      content: AnswerGroupOverlay,\n      properties: {\n        organizationId,\n        onSave: async ({\n          organizationId: targetOrganizationId,\n          name,\n          groupType,\n          scope,\n          projectId,\n          realizationId,\n        }: {\n          organizationId: string | null\n          projectId: string | null\n          name: string\n          groupType: string\n          scope: \"organization\" | \"project\" | \"realization\"\n          realizationId: string | null\n        }) => {\n          const created = await createAnswerGroup({\n            organizationId: targetOrganizationId,\n            projectId,\n            name,\n            groupType,\n            scope,\n            realizationId,\n          })\n          groups = [...groups, created]\n        },\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const handleGenerateCollection = () => {\n    if (!canManage) return\n\n    if (!organizationId) {\n      newNotification({\n        class: \"error\",\n        html: \"Bitte stellen Sie sicher, dass eine Organisation im externen Scope angegeben ist.\",\n      })\n\n      return\n    }\n\n    openOverlay({\n      title: \"Collection generieren\",\n      content: AnswerLibraryGenerationOverlay,\n      bodyPadding: \"none\",\n      properties: {\n        organizationId,\n        onReloadGroups: loadGroups,\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const triggerImport = () => {\n    importInput?.click()\n  }\n\n  const handleExport = async () => {\n    if (exportLoading || importLoading) return\n\n    if (!organizationId) {\n      newNotification({ class: \"error\", html: \"Organisationskontext fehlt.\" })\n\n      return\n    }\n\n    exportLoading = true\n    try {\n      const questionsByGroupId = new Map<string, Awaited<ReturnType<typeof fetchAnswerQuestions>>>()\n      for (const group of groups) {\n        questionsByGroupId.set(group.id, await fetchAnswerQuestions(group.id, { organizationId }))\n      }\n      downloadJsonFile(\n        exportFileName,\n        buildAnswerGroupExportPayload({\n          groups,\n          organizationId,\n          questionsByGroupId,\n        }),\n      )\n      newNotification({ class: \"success\", html: \"FAQ-Sammlungen exportiert.\" })\n    } catch (err) {\n      console.error(\"answer_groups_export_failed\", err)\n      notifyApiError(err, {\n        fallback: \"Export der FAQ-Sammlungen fehlgeschlagen.\",\n        includeRequestId: true,\n      })\n    } finally {\n      exportLoading = false\n    }\n  }\n\n  const importCollection = async (item: AnswerGroupImportItem) => {\n    if (!organizationId) throw new Error(\"Organisationskontext fehlt.\")\n\n    await createAnswerGroup({\n      ...buildAnswerGroupCreatePayload(item, organizationId, projectId),\n      questions: item.questions,\n    })\n  }\n\n  const handleImportFile = async (event: Event) => {\n    const target = event.currentTarget as HTMLInputElement | null\n    const file = target?.files?.[0]\n\n    if (!file || importLoading) return\n\n    importLoading = true\n    try {\n      const parsed = await readJsonFile(file)\n      const collections = extractAnswerGroupImportItems(parsed)\n      for (const collection of collections) {\n        await importCollection(collection)\n      }\n      await loadGroups()\n      newNotification({\n        class: \"success\",\n        html: `${collections.length} FAQ-Sammlung${collections.length === 1 ? \"\" : \"en\"} importiert.`,\n      })\n    } catch (err) {\n      console.error(\"answer_groups_import_failed\", err)\n      notifyApiError(err, {\n        fallback: \"Import der FAQ-Sammlungen fehlgeschlagen.\",\n        includeRequestId: true,\n      })\n    } finally {\n      importLoading = false\n\n      if (target) target.value = \"\"\n    }\n  }\n\n  const openGroup = (group: GroupRow) => {\n    const target = buildCurrentProjectPath({ suffix: `/answers/${group.id}` })\n\n    if (target) spaNavigate(target, { noSearchParam: true })\n  }\n\n  const handleDelete = async (group: GroupRow) => {\n    if (!canManage) return\n\n    await runConfirmedDestructiveAction(\n      {\n        approval: {\n          title: \"Gruppe löschen\",\n          description: `Diese Gruppe wirklich löschen?\\n${group.name} wird anschließend samt Inhalt nicht mehr verfügbar sein.`,\n          approvalLabel: \"Ja, löschen\",\n          declineLabel: \"Abbrechen\",\n        },\n        reauth: {\n          title: \"Gruppe löschen\",\n          description:\n            \"Bitte bestätigen Sie das Löschen dieser Antwortgruppe mit Ihrem aktuellen Passwort.\",\n          actionLabel: \"Gruppe löschen\",\n        },\n      },\n      async () => {\n        await deleteAnswerGroup(group.projectId ?? \"\", group.id, { organizationId })\n        groups = groups.filter((item) => item.id !== group.id)\n      },\n    )\n  }\n</script>\n\n{#if view === \"jobs\"}\n  {#if organizationId}\n    <AnswerSyncJobsTable {organizationId} />\n  {:else}\n    <p class=\"state\">Organisationskontext fehlt.</p>\n  {/if}\n{:else}\n  <div class=\"group-list\" data-testid=\"indexAdmin.answers.groups\">\n    <SectionTitle\n      brightBackground={true}\n      title={titleWithCount}\n      helpModalTextId=\"indexAdminAnswerGroups\"\n    >\n      {#snippet buttonSnippet()}\n        <ToggleCTA\n          options={filterModeOptions}\n          value={filterMode}\n          darkMode={false}\n          onChange={(value) => {\n            const next = `${value ?? filterMode}`.toLowerCase()\n            filterMode = next === \"detailed\" ? \"detailed\" : \"compact\"\n          }}\n        />\n        {#if canManage}\n          <input\n            class=\"file-input\"\n            type=\"file\"\n            accept=\"application/json\"\n            bind:this={importInput}\n            onchange={handleImportFile}\n            aria-label=\"FAQ-Sammlungen importieren\"\n          />\n          <CTA\n            type=\"primaryButton\"\n            content=\"Gruppe hinzufügen\"\n            tooltipContent=\"Eine Gruppe bündelt thematisch zusammengehörige Fragen und Antworten.\"\n            onClick={handleCreateGroup}\n            dataTestid=\"indexAdmin.answers.groups.createButton\"\n            options={{\n              label: \"FAQ-Gruppenoptionen\",\n              items: [\n                {\n                  id: \"generate\",\n                  label: \"Aus Website generieren …\",\n                  icon: mdiAutoFix,\n                  reason:\n                    \"Erstellt eine neue FAQ-Sammlung aus bereits indexierten Website-Inhalten.\",\n                  testId: \"indexAdmin.answers.groups.generateButton\",\n                  onClick: handleGenerateCollection,\n                },\n                {\n                  id: \"import\",\n                  label: \"FAQ-Sammlungen importieren …\",\n                  icon: mdiUpload,\n                  reason: \"Bestehende Sammlungen werden nicht überschrieben.\",\n                  disabled: importLoading || exportLoading || loading,\n                  testId: \"indexAdmin.answers.groups.importButton\",\n                  onClick: triggerImport,\n                },\n                {\n                  id: \"export\",\n                  label: \"Alle FAQ-Sammlungen exportieren\",\n                  icon: mdiDownload,\n                  reason: \"Exportiert alle FAQ-Sammlungen inklusive Fragen und Antworten.\",\n                  disabled: exportLoading || importLoading || loading,\n                  testId: \"indexAdmin.answers.groups.exportButton\",\n                  onClick: () => void handleExport(),\n                },\n              ],\n            }}\n          >\n            {#snippet iconSnippet()}\n              <Icon path={mdiPlus} size=\"1rem\" />\n            {/snippet}\n          </CTA>\n        {/if}\n      {/snippet}\n    </SectionTitle>\n    <div class=\"form\">\n      <div class=\"row\">\n        <Input\n          type=\"text\"\n          placeholder=\"Suche (Sammlung, Typ, Gültigkeit)\"\n          bind:value={searchDraft}\n          brightBackground={true}\n          tooltip=\"Durchsucht Sammlung, Typ, Gültigkeit, Inhalt und Indexstatus.\"\n        />\n        {#if filterMode === \"detailed\"}\n          <Input\n            type=\"select\"\n            placeholder=\"Typ\"\n            bind:value={groupTypeFilter}\n            options={groupTypeOptions}\n            brightBackground={true}\n            tooltip=\"Filtert auf einen bestimmten Gruppentyp.\"\n          />\n        {/if}\n      </div>\n    </div>\n    {#if error}\n      <p class=\"muted\">{error}</p>\n    {/if}\n    <Table\n      rowActions={{\n        resolve: (row, rowIndex) =>\n          buildTableRowActionSet(\n            ((row) => {\n              const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n              actions.push({\n                id: \"action-0\",\n                label: \"FAQ-Sammlung öffnen\",\n                onClick: () => {\n                  openGroup(row as GroupRow)\n                },\n                icon: standardDetailsIcon,\n                tooltip: indexActionTooltip(\"answer-group-open\"),\n                testId: `indexAdmin.answers.groups.openButton.${(row as GroupRow).id}`,\n              })\n\n              if (canManage) {\n                actions.push({\n                  id: \"action-1\",\n                  label: \"FAQ-Sammlung löschen\",\n                  onClick: () => {\n                    handleDelete(row as GroupRow)\n                  },\n                  icon: mdiTrashCanOutline,\n                  tooltip: indexActionTooltip(\"answer-group-delete\"),\n                  testId: `indexAdmin.answers.groups.deleteButton.${(row as GroupRow).id}`,\n                  tone: \"danger\",\n                })\n              }\n\n              return actions\n            })(row) ?? [],\n            { primaryId: \"action-0\", inlineIds: [] },\n          ),\n      }}\n      columns={answerGroupColumns}\n      {getRows}\n      mode=\"auto\"\n      theme=\"light\"\n      cardFieldIds={[\"scopeLabel\", \"questionCount\", \"syncCoverage\"]}\n      maxCardFields={3}\n      showActions={true}\n      actionsHeaderLabel=\"Aktionen\"\n      showPrimaryButton={false}\n      refreshKey={groupsRefreshKey}\n      urlStateId={organizationId ? `index-answer-groups-${organizationId}` : \"index-answer-groups\"}\n      {loading}\n    >\n      {#snippet cardSubtitle({ row })}\n        <span class=\"muted\">\n          {(row as GroupRow).scopeTag.label}: {(row as GroupRow).scopeTag.subLabel}\n          • {(row as GroupRow).contentTag.label}\n          • Index: {(row as GroupRow).indexTag.label}\n        </span>\n      {/snippet}\n\n      {#snippet tableCell({ row, column })}\n        <span\n          data-testid={column.id === \"name\"\n            ? `indexAdmin.answers.groups.name.${(row as GroupRow).id}`\n            : undefined}\n        >\n          <AnswerGroupTableCell row={row as GroupRow} {column} />\n        </span>\n      {/snippet}\n\n      {#snippet cardField({ row, column })}\n        <AnswerGroupTableCell row={row as GroupRow} {column} />\n      {/snippet}\n\n      {#snippet empty()}\n        <div class=\"muted\">Noch keine Gruppen vorhanden.</div>\n      {/snippet}\n    </Table>\n  </div>\n{/if}\n\n<style lang=\"less\">\n  .group-list {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-invers-100);\n  }\n\n  .state {\n    margin: 0;\n    color: var(--text-80);\n    padding: 1rem 0;\n  }\n  .actions {\n    display: flex;\n    gap: 0.25rem;\n  }\n\n  .file-input {\n    display: none;\n  }\n\n  .muted {\n    color: var(--text-400);\n  }\n</style>\n","<script lang=\"ts\">\n  import AnswerGroupListPage from \"./_modules/answer-group-list\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    canManage = true,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n    canManage?: boolean\n  } = $props()\n</script>\n\n<AnswerGroupListPage {organizationId} {projectId} {canManage} view=\"groups\" />\n","<script lang=\"ts\">\n  import AnswerSyncJobsTable from \"../../../../_shared/_modules/answer-sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n{#if organizationId}\n    <AnswerSyncJobsTable {organizationId} {projectId} />\n{/if}\n","export const toNonNegativeNumber = (value: unknown) => {\n  const parsed = Number(value)\n\n  if (!Number.isFinite(parsed) || parsed < 0) return 0\n\n  return parsed\n}\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n\n  import { fetchAnswerLibraryUsage } from \"../../../../../../_shared/_logic/usage\"\n  import UsageLimitChart from \"../../../../../../_shared/_modules/usage-limit-chart\"\n  import LimitsPanelShell from \"../../../../../../_shared/_modules/limits-panel-shell\"\n  import { toNonNegativeNumber } from \"./_logic/limits\"\n  import type { AnswerLibraryLimitsProps } from \"./_logic/types\"\n\n  const { organizationId, projectId: _projectId = null }: AnswerLibraryLimitsProps = $props()\n\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let questionCount = $state(0)\n  let answerLimit = $state<number | null>(null)\n  let requestId = 0\n\n  const subtitle = $derived(\"Organisationsweit über alle Answer-Gruppen\")\n\n  const loadLimits = async () => {\n    if (!organizationId) {\n      loading = false\n      questionCount = 0\n      answerLimit = null\n      error = \"Organisationskontext fehlt.\"\n\n      return\n    }\n\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const usage = await fetchAnswerLibraryUsage(organizationId)\n\n      if (current !== requestId) return\n\n      questionCount = toNonNegativeNumber(usage.used)\n      answerLimit = usage.limit === null ? null : toNonNegativeNumber(usage.limit)\n    } catch (err) {\n      if (current !== requestId) return\n\n      questionCount = 0\n      answerLimit = null\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) {\n        loading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    void loadLimits()\n  })\n</script>\n\n<LimitsPanelShell\n  title=\"Answer-Limits\"\n  helpModalTextId=\"indexAdminAnswerLimits\"\n  tooltipContent=\"Hier sehen Sie, wie viele Frage-Antwort-Paare in der aktuellen Organisation bereits in der FAQ-Sammlung liegen.\"\n  {loading}\n  {error}\n  isEmpty={false}\n  contentSnippet={content}\n/>\n\n{#snippet content()}\n    <UsageLimitChart\n    title=\"Frage-Antwort-Paare\"\n    {subtitle}\n    used={questionCount}\n    limit={answerLimit}\n    unit=\"Paare\"\n  />\n{/snippet}\n","<script lang=\"ts\">\n  import AnswerLibraryLimits from \"./_modules/answer-library-limits\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n{#if organizationId}\n    <AnswerLibraryLimits {organizationId} {projectId} />\n{/if}\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    {\n      id: \"groups\",\n      title: \"Gruppen\",\n      testId: \"indexAdmin.organizationView.tab.answers.groups\",\n    },\n    {\n      id: \"jobs\",\n      title: \"Synchronisationsjobs\",\n      testId: \"indexAdmin.organizationView.tab.answers.jobs\",\n    },\n    {\n      id: \"limits\",\n      title: \"Limits\",\n      testId: \"indexAdmin.organizationView.tab.answers.limits\",\n    },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import GroupsTab from \"./tabs/Groups\"\n  import JobsTab from \"./tabs/Jobs\"\n  import LimitsTab from \"./tabs/Limits\"\n\n  const {\n    activeTab = \"groups\",\n    organizationId = null,\n    projectId = null,\n    canManage = true,\n  }: {\n    activeTab?: \"groups\" | \"jobs\" | \"limits\"\n    organizationId?: string | null\n    projectId?: string | null\n    canManage?: boolean\n  } = $props()\n</script>\n\n{#if activeTab === \"jobs\"}\n    <JobsTab {organizationId} {projectId} />\n{:else if activeTab === \"limits\"}\n    <LimitsTab {organizationId} {projectId} />\n{:else}\n    <GroupsTab {organizationId} {projectId} {canManage} />\n{/if}\n","import { mdiChatQuestion, mdiDatabase, mdiEarth, mdiFolder, mdiHome } from \"@mdi/js\"\nimport {\n  buildViewNavigation,\n  type PageTabWithId,\n  type ViewPageSpec,\n  type ViewPageSnippets,\n} from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { OrganizationViewCapabilities } from \"./_logic/capabilities\"\nimport type { ProjectViewTabPaths, WorkspaceSection } from \"./_logic/types\"\n\nexport type ProjectViewNavigationContext = {\n  canCleanupData: boolean\n  canViewKontextIndex: boolean\n}\n\nconst getHomeTabs = (): PageTabWithId[] => [{ id: \"home\", title: \"Startseite\", widthType: \"large\" }]\n\nconst getDatasourcesTabs = (ctx: ProjectViewNavigationContext): PageTabWithId[] => [\n  ...(ctx.canViewKontextIndex\n    ? [\n        {\n          id: \"internal\",\n          title: \"Datenquellen\",\n          testId: \"indexAdmin.organizationView.tab.datasources.internal\",\n        },\n        {\n          id: \"targets\",\n          title: \"Speicherziele\",\n          testId: \"indexAdmin.organizationView.tab.datasources.targets\",\n        },\n      ]\n    : []),\n  ...(ctx.canCleanupData\n    ? [\n        {\n          id: \"cleanup\",\n          title: \"Datenbereinigung\",\n          testId: \"indexAdmin.organizationView.tab.datasources.cleanup\",\n        },\n      ]\n    : []),\n]\n\nconst getScrapingTabs = (): PageTabWithId[] => [\n  {\n    id: \"domains\",\n    title: \"Domains\",\n    testId: \"indexAdmin.organizationView.tab.scraping.domains\",\n  },\n  {\n    id: \"jobs\",\n    title: \"Synchronisationsjobs\",\n    testId: \"indexAdmin.organizationView.tab.scraping.jobs\",\n  },\n  {\n    id: \"limits\",\n    title: \"Limits\",\n    testId: \"indexAdmin.organizationView.tab.scraping.limits\",\n  },\n]\n\nconst getSharePointTabs = (): PageTabWithId[] => [\n  {\n    id: \"sources\",\n    title: \"Quellen\",\n    testId: \"indexAdmin.organizationView.tab.sharepoint.sources\",\n  },\n  {\n    id: \"jobs\",\n    title: \"Synchronisationsjobs\",\n    testId: \"indexAdmin.organizationView.tab.sharepoint.jobs\",\n  },\n  {\n    id: \"limits\",\n    title: \"Limits\",\n    testId: \"indexAdmin.organizationView.tab.sharepoint.limits\",\n  },\n]\n\nconst getFilesTabs = (): PageTabWithId[] => [\n  {\n    id: \"collections\",\n    title: \"Sammlungen\",\n    testId: \"indexAdmin.organizationView.tab.files.collections\",\n  },\n  {\n    id: \"jobs\",\n    title: \"Synchronisationsjobs\",\n    testId: \"indexAdmin.organizationView.tab.files.jobs\",\n  },\n  {\n    id: \"limits\",\n    title: \"Limits\",\n    testId: \"indexAdmin.organizationView.tab.files.limits\",\n  },\n]\n\nconst getAnswersTabs = (): PageTabWithId[] => [\n  {\n    id: \"groups\",\n    title: \"Gruppen\",\n    testId: \"indexAdmin.organizationView.tab.answers.groups\",\n  },\n  {\n    id: \"jobs\",\n    title: \"Synchronisationsjobs\",\n    testId: \"indexAdmin.organizationView.tab.answers.jobs\",\n  },\n  {\n    id: \"limits\",\n    title: \"Limits\",\n    testId: \"indexAdmin.organizationView.tab.answers.limits\",\n  },\n]\n\nconst PAGE_SPECS: Array<\n  ViewPageSpec<ProjectViewNavigationContext, ProjectViewTabPaths, OrganizationViewCapabilities>\n> = [\n  {\n    id: \"home\",\n    title: \"Startseite\",\n    icon: mdiHome,\n    testId: \"indexAdmin.organizationView.page.home\",\n    resolvePath: (paths) => paths.home,\n    canOpen: (capabilities) => capabilities.canViewKontextIndex,\n    getTabs: getHomeTabs,\n  },\n  {\n    id: \"datasources\",\n    title: \"Datenquellen\",\n    icon: mdiDatabase,\n    testId: \"indexAdmin.organizationView.page.datasources\",\n    resolvePath: (paths) => paths.datasources,\n    canOpen: (capabilities) => capabilities.canViewKontextIndex || capabilities.canCleanupData,\n    getTabs: getDatasourcesTabs,\n  },\n  {\n    id: \"scraping\",\n    title: \"Websites\",\n    icon: mdiEarth,\n    testId: \"indexAdmin.organizationView.page.scraping\",\n    resolvePath: (paths) => paths.scraping,\n    canOpen: (capabilities) => capabilities.canViewWebsiteIndex,\n    getTabs: getScrapingTabs,\n  },\n  {\n    id: \"sharepoint\",\n    title: \"SharePoint\",\n    icon: mdiDatabase,\n    testId: \"indexAdmin.organizationView.page.sharepoint\",\n    resolvePath: (paths) => paths.sharepoint,\n    canOpen: (capabilities) => capabilities.canViewSharePoint,\n    getTabs: getSharePointTabs,\n  },\n  {\n    id: \"files\",\n    title: \"Dateisammlungen\",\n    icon: mdiFolder,\n    testId: \"indexAdmin.organizationView.page.files\",\n    resolvePath: (paths) => paths.files,\n    canOpen: (capabilities) => capabilities.canViewFileUpload,\n    getTabs: getFilesTabs,\n  },\n  {\n    id: \"answers\",\n    title: \"FAQ-Sammlung\",\n    icon: mdiChatQuestion,\n    testId: \"indexAdmin.organizationView.page.answers\",\n    resolvePath: (paths) => paths.answers,\n    canOpen: (capabilities) => capabilities.canViewAnswerLibrary,\n    getTabs: getAnswersTabs,\n  },\n]\n\nexport const buildAllowedSections = (args: {\n  canCleanupData?: boolean\n  canViewKontextIndex: boolean\n  canViewWebsiteIndex: boolean\n  canViewSharePoint: boolean\n  canViewFileUpload: boolean\n  canViewAnswerLibrary: boolean\n}): WorkspaceSection[] => {\n  const sections: WorkspaceSection[] = []\n\n  if (args.canViewKontextIndex) sections.push(\"home\")\n\n  if (args.canViewKontextIndex || args.canCleanupData) sections.push(\"datasources\")\n\n  if (args.canViewWebsiteIndex) sections.push(\"scraping\")\n\n  if (args.canViewSharePoint) sections.push(\"sharepoint\")\n\n  if (args.canViewFileUpload) sections.push(\"files\")\n\n  if (args.canViewAnswerLibrary) sections.push(\"answers\")\n\n  return sections\n}\n\nexport const buildTabPaths = (tabBasePath: string | null): ProjectViewTabPaths | null =>\n  tabBasePath\n    ? {\n        home: `${tabBasePath}/home`,\n        datasources: `${tabBasePath}/datasources`,\n        scraping: `${tabBasePath}/scraping`,\n        sharepoint: `${tabBasePath}/sharepoint`,\n        files: `${tabBasePath}/files`,\n        answers: `${tabBasePath}/answers`,\n      }\n    : null\n\nexport const buildProjectPageNavigation = ({\n  currentPath,\n  tabPaths,\n  capabilities,\n  snippets,\n}: {\n  currentPath: string\n  tabPaths: ProjectViewTabPaths | null\n  capabilities: OrganizationViewCapabilities\n  snippets: ViewPageSnippets\n}) => {\n  if (!tabPaths) {\n    return [{ title: \"Organisation\", path: currentPath, icon: mdiDatabase, tabs: [] }]\n  }\n\n  const navigation = buildViewNavigation({\n    specs: PAGE_SPECS,\n    context: {\n      canCleanupData: capabilities.canCleanupData,\n      canViewKontextIndex: capabilities.canViewKontextIndex,\n    },\n    paths: tabPaths,\n    capabilities,\n    snippets,\n  })\n\n  return navigation.length\n    ? navigation\n    : [{ title: \"Organisation\", path: currentPath, icon: mdiDatabase, tabs: [] }]\n}\n","import type { PermissionState } from \"../../_shared/_logic/permissions\"\nimport { allowsPlatformOperation } from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\nimport type { WorkspaceSection } from \"../../_shared/_logic/root-render-contract\"\n\nexport type OrganizationViewCapabilities = {\n  canCleanupData: boolean\n  canOpenPlatform: boolean\n  canViewKontextIndex: boolean\n  canManageKontextIndex: boolean\n  canViewAnswerLibrary: boolean\n  canManageAnswerLibrary: boolean\n  canViewFileUpload: boolean\n  canManageFileUpload: boolean\n  canViewWebsiteIndex: boolean\n  canManageWebsiteIndex: boolean\n  canViewSharePoint: boolean\n  canManageSharePoint: boolean\n  allowedSections: WorkspaceSection[]\n}\n\nexport const buildAllowedSections = (\n  capabilities: Pick<\n    OrganizationViewCapabilities,\n    | \"canViewKontextIndex\"\n    | \"canViewWebsiteIndex\"\n    | \"canViewSharePoint\"\n    | \"canViewFileUpload\"\n    | \"canViewAnswerLibrary\"\n  > & { canCleanupData?: boolean },\n): WorkspaceSection[] => {\n  const sections: WorkspaceSection[] = []\n\n  if (capabilities.canViewKontextIndex) sections.push(\"home\")\n\n  if (capabilities.canViewKontextIndex || capabilities.canCleanupData) sections.push(\"datasources\")\n\n  if (capabilities.canViewWebsiteIndex) sections.push(\"scraping\")\n\n  if (capabilities.canViewSharePoint) sections.push(\"sharepoint\")\n\n  if (capabilities.canViewFileUpload) sections.push(\"files\")\n\n  if (capabilities.canViewAnswerLibrary) sections.push(\"answers\")\n\n  return sections\n}\n\nexport const buildViewCapabilities = (\n  permissions: PermissionState,\n): OrganizationViewCapabilities => {\n  const capabilities: Omit<OrganizationViewCapabilities, \"allowedSections\"> = {\n    canCleanupData: allowsPlatformOperation(permissions),\n    canOpenPlatform: allowsPlatformOperation(permissions),\n    canViewKontextIndex: permissions.allows(\"core.kontext_index\", \"view\"),\n    canManageKontextIndex: permissions.allows(\"core.kontext_index\", \"manage\"),\n    canViewAnswerLibrary: permissions.allows(\"core.kontext_answer_library\", \"view\"),\n    canManageAnswerLibrary: permissions.allows(\"core.kontext_answer_library\", \"manage\"),\n    canViewFileUpload: permissions.allows(\"core.kontext_file_upload\", \"view\"),\n    canManageFileUpload: permissions.allows(\"core.kontext_file_upload\", \"manage\"),\n    canViewWebsiteIndex: permissions.allows(\"core.kontext_website_index\", \"view\"),\n    canManageWebsiteIndex: permissions.allows(\"core.kontext_website_index\", \"manage\"),\n    canViewSharePoint: permissions.allows(\"core.kontext_sharepoint\", \"view\"),\n    canManageSharePoint: permissions.allows(\"core.kontext_sharepoint\", \"manage\"),\n  }\n\n  return {\n    ...capabilities,\n    allowedSections: buildAllowedSections(capabilities),\n  }\n}\n\nexport const normalizeWorkspaceSection = (section: WorkspaceSection): WorkspaceSection =>\n  section === \"cleanup\" ? \"datasources\" : section\n\nexport const findFirstAllowedSection = (\n  capabilities: OrganizationViewCapabilities,\n): WorkspaceSection | null => capabilities.allowedSections[0] ?? null\n","import type { ProjectViewTabPaths, WorkspaceSection } from \"./types\"\n\ntype NavigationIntent = {\n  to: string\n  replace: boolean\n  noSearchParam: boolean\n}\n\nexport type OrganizationViewAutomationPlan = {\n  navigate?: NavigationIntent\n}\n\nexport type OrganizationViewAutomationSnapshot = {\n  isWorkspaceBaseRoute: boolean\n  normalizedSection: WorkspaceSection\n  firstAllowedSection: WorkspaceSection | null\n  tabPaths: ProjectViewTabPaths | null\n}\n\nexport const buildOrganizationViewAutomationPlan = (\n  snapshot: OrganizationViewAutomationSnapshot,\n): OrganizationViewAutomationPlan => {\n  if (\n    snapshot.isWorkspaceBaseRoute &&\n    snapshot.firstAllowedSection &&\n    snapshot.tabPaths?.[snapshot.firstAllowedSection as keyof ProjectViewTabPaths]\n  ) {\n    return {\n      navigate: {\n        to: snapshot.tabPaths[snapshot.firstAllowedSection as keyof ProjectViewTabPaths],\n        replace: true,\n        noSearchParam: true,\n      },\n    }\n  }\n\n  if (snapshot.normalizedSection === \"cleanup\" && snapshot.tabPaths?.datasources) {\n    return {\n      navigate: {\n        to: snapshot.tabPaths.datasources,\n        replace: true,\n        noSearchParam: true,\n      },\n    }\n  }\n\n  return {}\n}\n","import { getContext, setContext } from \"svelte\"\nimport type { Readable } from \"svelte/store\"\nimport type { IdentityResponse } from \"@kontextwerk/control-web-client\"\n\nimport type { PermissionState } from \"../permissions\"\n\nexport type IndexAdminAuthContext = {\n  user: IdentityResponse | null\n  permissions: PermissionState\n}\n\nconst indexAdminAuthContextKey = Symbol(\"index-admin-auth-context\")\n\nexport const setIndexAdminAuthContext = (store: Readable<IndexAdminAuthContext>) => {\n  setContext(indexAdminAuthContextKey, store)\n\n  return store\n}\n\nexport const getIndexAdminAuthContext = () =>\n  getContext<Readable<IndexAdminAuthContext>>(indexAdminAuthContextKey)\n","import { mdiForumOutline, mdiOpenInNew, mdiViewDashboardOutline } from \"@mdi/js\"\nimport type { AppUtilityNavigationItem } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\nimport { CONTROL_ADMIN_ORIGIN, WERK_ADMIN_ORIGIN } from \"../../_shared/_logic/runtime-config\"\n\n/** Open the other admin portals in the authorized organization's workspace. */\nexport const buildIndexAdminPortalNavigation = (\n  organizationSlug?: string | null,\n): AppUtilityNavigationItem[] => {\n  const organization = organizationSlug?.trim()\n\n  if (!organization) return []\n\n  const organizationPath = `/organizations/${encodeURIComponent(organization)}`\n\n  return [\n    {\n      id: \"portals\",\n      title: \"Portale\",\n      icon: mdiOpenInNew,\n      placement: \"bottom\",\n      items: [\n        {\n          id: \"werk-admin\",\n          title: \"Werk Admin\",\n          icon: mdiForumOutline,\n          href: `${WERK_ADMIN_ORIGIN}${organizationPath}/projects`,\n          target: \"_blank\",\n        },\n        {\n          id: \"control-admin\",\n          title: \"Control Admin\",\n          icon: mdiViewDashboardOutline,\n          href: `${CONTROL_ADMIN_ORIGIN}${organizationPath}/overview`,\n          target: \"_blank\",\n        },\n      ],\n    },\n  ]\n}\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import PageTemplate from \"@kontextwerk/web-sdk/ui/layout/PageTemplate.svelte\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n\n  import { spaNavigate, buildCurrentProjectPath } from \"../_shared/_logic/organization-navigation\"\n  import { activeOrganization } from \"../_shared/_logic/organization\"\n  import { analyticsLoading, organizationAnalytics } from \"./_shared/_logic/organization-analytics\"\n  import HomePage from \"./pages/Home\"\n  import DatasourcesPage from \"./pages/Datasources\"\n  import ScrapingPage from \"./pages/Scraping\"\n  import SharePointPage from \"./pages/SharePoint\"\n  import FilesPage from \"./pages/Files\"\n  import AnswersPage from \"./pages/Answers\"\n  import { buildProjectPageNavigation, buildTabPaths } from \"./navigation\"\n  import {\n    buildViewCapabilities,\n    findFirstAllowedSection,\n    normalizeWorkspaceSection,\n  } from \"./_logic/capabilities\"\n  import type { WorkspaceSection } from \"./_logic/types\"\n  import { buildOrganizationViewAutomationPlan } from \"./_logic/automation\"\n  import { getIndexAdminAuthContext } from \"../_shared/_logic/auth-context\"\n  import { buildIndexAdminPortalNavigation } from \"./_logic/portalNavigation\"\n\n  let {\n    projectPath = \"/\",\n  }: {\n    projectPath?: string\n  } = $props()\n\n  const organization = $derived($activeOrganization)\n  const organizationId = $derived(organization?.id ?? null)\n  const organizationLabel = $derived(\n    organization?.name ?? organization?.slug ?? organization?.id ?? \"Organisation\",\n  )\n  const authContext = getIndexAdminAuthContext()\n  const permissions = $derived($authContext.permissions)\n  const capabilities = $derived(buildViewCapabilities(permissions))\n  const resolvedBackLink = $derived(capabilities.canOpenPlatform ? \"/admin/organizations\" : \"\")\n  const analytics = $derived.by(() => {\n    if (!organizationId) return null\n\n    return $organizationAnalytics?.organization_id === organizationId\n      ? $organizationAnalytics\n      : null\n  })\n  const isAnalyticsLoading = $derived($analyticsLoading)\n\n  const normalizedProjectPath = $derived((projectPath ?? \"/\").replace(/\\/+$/, \"\") || \"/\")\n  const normalizedSection = $derived.by<WorkspaceSection>(() => {\n    const segments = normalizedProjectPath.split(\"/\").filter(Boolean)\n\n    if (!segments.length) return \"home\"\n\n    if ([\"realizations\", \"realization\"].includes(segments[0])) {\n      return normalizeWorkspaceSection((segments[2] as WorkspaceSection | undefined) ?? \"home\")\n    }\n\n    return normalizeWorkspaceSection((segments[0] as WorkspaceSection | undefined) ?? \"home\")\n  })\n  const allowedSections = $derived(capabilities.allowedSections)\n  const effectiveSection = $derived.by<WorkspaceSection>(() => {\n    if (!allowedSections.length) return normalizedSection as WorkspaceSection\n\n    if (allowedSections.includes(normalizedSection as WorkspaceSection))\n      return normalizedSection as WorkspaceSection\n\n    return allowedSections[0]\n  })\n  const firstAllowedSection = $derived(findFirstAllowedSection(capabilities))\n  const isWorkspaceBaseRoute = $derived(normalizedProjectPath === \"/\")\n  const isForbiddenSection = $derived(\n    !isWorkspaceBaseRoute &&\n      Boolean(allowedSections.length) &&\n      !allowedSections.includes(normalizedSection),\n  )\n  const accessDeniedCopy = $derived.by(() => {\n    if (!allowedSections.length) {\n      return {\n        title: \"Kein Bereich freigeschaltet\",\n        message: \"Für diese Organisation ist kein Kontextkern-Bereich freigegeben.\",\n        hint: \"Bitte fordere mindestens eine Ansicht-Berechtigung für den Kontextkern an.\",\n      }\n    }\n\n    switch (normalizedSection) {\n      case \"datasources\":\n      case \"cleanup\":\n      case \"home\":\n        return {\n          title: \"Datenindex gesperrt\",\n          message: \"Du darfst den Datenindex nicht ansehen.\",\n          hint: \"Bitte fordere die Berechtigung „Datenindex ansehen“ an.\",\n        }\n      case \"scraping\":\n        return {\n          title: \"Website-Index gesperrt\",\n          message: \"Du darfst den Website-Index nicht ansehen.\",\n          hint: \"Bitte fordere die Berechtigung „Website-Index ansehen“ an.\",\n        }\n      case \"sharepoint\":\n        return {\n          title: \"SharePoint gesperrt\",\n          message: \"Du darfst SharePoint-Quellen nicht ansehen.\",\n          hint: \"Bitte fordere die Berechtigung „SharePoint ansehen“ an.\",\n        }\n      case \"files\":\n        return {\n          title: \"Dateisammlungen gesperrt\",\n          message: \"Du darfst die Dateisammlungen nicht ansehen.\",\n          hint: \"Bitte fordere die Berechtigung „Dateiupload ansehen“ an.\",\n        }\n      case \"answers\":\n        return {\n          title: \"FAQ-Sammlung gesperrt\",\n          message: \"Du darfst die FAQ-Sammlung nicht ansehen.\",\n          hint: \"Bitte fordere die Berechtigung „FAQ-Sammlung ansehen“ an.\",\n        }\n      default:\n        return {\n          title: \"Bereich gesperrt\",\n          message: \"Dieser Bereich ist für dich nicht freigeschaltet.\",\n          hint: \"Bitte wende dich an einen Administrator.\",\n        }\n    }\n  })\n\n  const isDatasources = $derived(effectiveSection === \"datasources\")\n  const isFiles = $derived(effectiveSection === \"files\")\n  const hasWorkspaceData = $derived(Boolean(organizationId))\n  const tabBasePath = $derived(buildCurrentProjectPath())\n  const tabPaths = $derived(buildTabPaths(tabBasePath))\n  const automationPlan = $derived.by(() =>\n    buildOrganizationViewAutomationPlan({\n      isWorkspaceBaseRoute,\n      normalizedSection,\n      firstAllowedSection,\n      tabPaths,\n    }),\n  )\n\n  $effect(() => {\n    if (automationPlan.navigate) {\n      spaNavigate(automationPlan.navigate.to, {\n        replace: automationPlan.navigate.replace,\n        noSearchParam: automationPlan.navigate.noSearchParam,\n      })\n    }\n  })\n</script>\n\n{#if !allowedSections.length || isForbiddenSection}\n  <AccessDeniedPage\n    title={accessDeniedCopy.title}\n    statusLabel=\"Berechtigung fehlt\"\n    message={accessDeniedCopy.message}\n    hint={accessDeniedCopy.hint}\n  />\n{:else}\n  {#snippet homeContent(_activeTab: string)}\n    <HomePage {organizationId} />\n  {/snippet}\n\n  {#snippet datasourcesContent(activeTab: string)}\n    <DatasourcesPage\n      active={isDatasources}\n      hasWorkspaceData={activeTab === \"cleanup\" ? hasWorkspaceData : Boolean(analytics)}\n      {organizationId}\n      {analytics}\n      analyticsLoading={isAnalyticsLoading}\n      activeTab={activeTab === \"cleanup\"\n        ? \"cleanup\"\n        : activeTab === \"targets\"\n          ? \"targets\"\n          : \"internal\"}\n    />\n  {/snippet}\n\n  {#snippet scrapingContent(activeTab: string)}\n    <ScrapingPage\n      activeTab={activeTab === \"limits\" ? \"limits\" : activeTab === \"jobs\" ? \"jobs\" : \"domains\"}\n      {hasWorkspaceData}\n      {organizationId}\n      projectId={null}\n      realizationId={null}\n      projectName={null}\n      canManage={capabilities.canManageWebsiteIndex}\n      canViewChunks={capabilities.canViewKontextIndex}\n    />\n  {/snippet}\n\n  {#snippet filesContent(activeTab: string)}\n    <FilesPage\n      activeTab={activeTab === \"limits\" ? \"limits\" : activeTab === \"jobs\" ? \"jobs\" : \"collections\"}\n      active={isFiles}\n      {hasWorkspaceData}\n      {organizationId}\n      projectId={null}\n      realizationId={null}\n      canManage={capabilities.canManageFileUpload}\n    />\n  {/snippet}\n\n  {#snippet sharePointContent(activeTab: string)}\n    <SharePointPage\n      activeTab={activeTab === \"limits\" ? \"limits\" : activeTab === \"jobs\" ? \"jobs\" : \"sources\"}\n      {organizationId}\n      projectId={null}\n      realizationId={null}\n      canManage={capabilities.canManageSharePoint}\n    />\n  {/snippet}\n\n  {#snippet answersContent(activeTab: string)}\n    <AnswersPage\n      activeTab={activeTab === \"limits\" ? \"limits\" : activeTab === \"jobs\" ? \"jobs\" : \"groups\"}\n      {organizationId}\n      projectId={null}\n      canManage={capabilities.canManageAnswerLibrary}\n    />\n  {/snippet}\n\n  {@const pageNavigation = buildProjectPageNavigation({\n    currentPath: $location.path ?? \"/\",\n    tabPaths,\n    capabilities,\n    snippets: {\n      home: homeContent,\n      datasources: datasourcesContent,\n      scraping: scrapingContent,\n      sharepoint: sharePointContent,\n      files: filesContent,\n      answers: answersContent,\n    },\n  })}\n\n  <PageTemplate\n    viewKey={`index-org:${organizationId ?? \"no-org\"}`}\n    title={organizationLabel}\n    {pageNavigation}\n    workspaceNavigation={{\n      items: pageNavigation.map((page) => ({\n        id: page.id ?? page.path,\n        title: page.title,\n        href: page.path,\n        icon: page.icon,\n      })),\n      footerItems: buildIndexAdminPortalNavigation(organization?.slug ?? organizationId),\n    }}\n    locationStore={location}\n    gobackLink={resolvedBackLink}\n    testId=\"indexAdmin.organizationView\"\n  />\n{/if}\n","export const workspaceConfig = { id: \"organization\" } as const\n","import type { PermissionState } from \"../../../../_shared/_logic/permissions\"\n\nexport type ChunkViewCapabilities = {\n  canViewChunks: boolean\n}\n\nexport const buildViewCapabilities = (permissions: PermissionState): ChunkViewCapabilities => ({\n  canViewChunks: permissions.allows(\"core.kontext_index\", \"view\"),\n})\n","import type { ChunkSummary, ChunkSummaryResponse } from \"../../../../../../_shared/_logic/chunks\"\nimport { formatNumber } from \"../../../../../../_shared/_logic/metrics-utils\"\nimport type { ChunkRow, TruncatedText } from \"./types\"\n\nconst CELL_TEXT_LIMIT = 60\n\nexport const chunkScopeStatus = (scope: ChunkRow[\"scope\"]) => {\n  if (scope === \"realization\") {\n    return { value: \"realization\", label: \"Sprache\", color: \"teal\" as const }\n  }\n\n  if (scope === \"project\") {\n    return { value: \"project\", label: \"Agent\", color: \"blue\" as const }\n  }\n\n  return { value: \"organization\", label: \"Organisation\", color: \"indigo\" as const }\n}\n\nexport const mapSummaryToRow = (\n  item: ChunkSummary,\n  organizationId: string | null,\n  realizationId: string | null,\n): ChunkRow => ({\n  id: item.index_item_id,\n  indexItemId: item.index_item_id,\n  dataId: item.data_id,\n  dataLabel: item.data_label ?? item.data_id,\n  sourceId: item.source_id,\n  scope:\n    item.scope === \"organization\" || item.scope === \"project\" || item.scope === \"realization\"\n      ? item.scope\n      : organizationId\n        ? \"organization\"\n        : realizationId\n          ? \"realization\"\n          : \"project\",\n  chunkCount: item.chunk_count,\n  averageWordCount: item.average_word_count,\n  totalWordCount: item.total_word_count,\n})\n\nexport const estimateTotal = (result: ChunkSummaryResponse, offset: number, rows: ChunkRow[]) =>\n  typeof result.total === \"number\" && !Number.isNaN(result.total)\n    ? result.total\n    : offset + rows.length + (result.has_more ? 1 : 0)\n\nexport const formatChunkValue = (value: number | null) =>\n  value == null ? \"–\" : formatNumber(value)\nexport const formatChunkAverage = (value: number | null) =>\n  formatChunkValue(value == null ? null : Math.round(value))\n\nexport const truncateCellText = (value?: string | null, limit = CELL_TEXT_LIMIT): TruncatedText => {\n  const full = value?.trim() || \"–\"\n\n  if (full === \"–\" || full.length <= limit) {\n    return {\n      full,\n      display: full,\n      truncated: false,\n    }\n  }\n\n  return {\n    full,\n    display: `${full.slice(0, Math.max(limit - 3, 1)).trimEnd()}...`,\n    truncated: true,\n  }\n}\n","<script lang=\"ts\">\n  import { mdiEyeOutline as standardDetailsIcon } from \"@mdi/js\"\n\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import Table, {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { mdiOpenInNew } from \"@mdi/js\"\n\n  import { openIndexedDocumentInspector } from \"../../../../../_shared/_modules/indexed-document-inspector-overlay\"\n  import { formatNumber } from \"../../../../../_shared/_logic/metrics-utils\"\n  import { tooltip } from \"@kontextwerk/web-sdk/core/overlay/tooltip\"\n  import {\n    fetchChunkSummaries,\n    type ChunkSummaryResponse,\n    type ChunkSourceType,\n  } from \"../../../../../_shared/_logic/chunks\"\n  import {\n    chunkScopeStatus,\n    estimateTotal,\n    formatChunkAverage,\n    formatChunkValue,\n    mapSummaryToRow,\n    truncateCellText,\n  } from \"./_logic/rows\"\n  import type { ChunkRow } from \"./_logic/types\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    realizationId = null,\n    source = \"all\",\n    title = \"Chunks\",\n    subtitle = null,\n  }: {\n    projectId?: string | null\n    organizationId?: string | null\n    realizationId?: string | null\n    source?: ChunkSourceType\n    title?: string\n    subtitle?: string | null\n  } = $props()\n\n  const columns: ColumnDef[] = [\n    {\n      id: \"dataId\",\n      label: \"Quelle\",\n      tooltip: \"Datenpunkt (z. B. URL, Dateiname, API-ID).\",\n      sortable: true,\n      sortKey: \"data_id\",\n      sortType: \"text\",\n    },\n    {\n      id: \"scope\",\n      label: \"Sync-Ebene\",\n      tooltip: \"Sync-Ebene, in der diese Chunks gespeichert sind.\",\n      sortable: true,\n      sortKey: \"scope\",\n      sortType: \"text\",\n    },\n    {\n      id: \"chunkCount\",\n      label: \"Chunks\",\n      tooltip: \"Anzahl der Chunks für diesen Datenpunkt.\",\n      sortable: true,\n      sortKey: \"chunk_count\",\n      sortType: \"number\",\n      defaultSortDir: \"desc\",\n    },\n    {\n      id: \"averageWordCount\",\n      label: \"Ø Wörter/Chunk\",\n      tooltip: \"Durchschnittliche Wortanzahl pro Chunk.\",\n      sortable: true,\n      sortKey: \"average_word_count\",\n      sortType: \"number\",\n      defaultSortDir: \"desc\",\n    },\n    {\n      id: \"totalWordCount\",\n      label: \"Wörter gesamt\",\n      tooltip: \"Wortanzahl über alle Chunks des Datenpunkts.\",\n      sortable: true,\n      sortKey: \"total_word_count\",\n      sortType: \"number\",\n      defaultSortDir: \"desc\",\n    },\n  ]\n\n  const PAGE_SIZE = 10\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  let totalCount = $state<number | null>(null)\n  const tableStateId = $derived(\n    `index-admin-chunks-${organizationId ?? projectId ?? \"global\"}-${realizationId ?? \"all\"}-${source}`,\n  )\n\n  const getRows: TableGetRows = async ({ limit, offset, sort }) => {\n    if (!projectId && !organizationId) return { rows: [], total: 0 }\n\n    const effectiveLimit = typeof limit === \"number\" && limit > 0 ? limit : PAGE_SIZE\n    const effectiveOffset = typeof offset === \"number\" && offset >= 0 ? offset : 0\n\n    const result = await fetchChunkSummaries(projectId, {\n      organizationId,\n      realizationId,\n      source,\n      sortBy: sort?.key ?? undefined,\n      sortDir: sort?.dir ?? undefined,\n      limit: effectiveLimit,\n      offset: effectiveOffset,\n    })\n    const rows = result.items.map((item) => mapSummaryToRow(item, organizationId, realizationId))\n\n    return {\n      rows,\n      total: estimateTotal(result, effectiveOffset, rows),\n    }\n  }\n\n  const openDetailsOverlay = (row: ChunkRow) => {\n    if (!projectId && !organizationId) return\n\n    openIndexedDocumentInspector({\n      projectId,\n      organizationId,\n      realizationId,\n      indexItemId: row.indexItemId,\n      dataId: row.dataId,\n      sourceId: row.sourceId,\n      scope: row.scope,\n      dataLabel: row.dataLabel,\n      knownChunkCount: row.chunkCount,\n      knownTotalWordCount: row.totalWordCount,\n      knownAverageWordCount: row.averageWordCount,\n    })\n  }\n\n  const sourceRefreshKey = $derived(\n    `${organizationId ?? \"none\"}-${projectId ?? \"none\"}-${realizationId ?? \"none\"}-${source}`,\n  )\n</script>\n\n<div class=\"chunk-source\">\n  <SectionTitle\n    brightBackground={true}\n    title={`${title} (${numberFormatter.format(totalCount ?? 0)})`}\n    subtitle={subtitle ?? undefined}\n    helpModalTextId=\"indexAdminChunks\"\n  />\n\n  <Table\n    rowActions={{\n      resolve: (row, rowIndex) =>\n        buildTableRowActionSet(\n          ((row) => {\n            const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n            actions.push({\n              id: \"action-0\",\n\n              label: \"Öffnen\",\n              onClick: () => {\n                openDetailsOverlay(row as ChunkRow)\n              },\n              icon: standardDetailsIcon,\n              tooltip: \"Chunks in der Seitenleiste öffnen\",\n            })\n\n            return actions\n          })(row) ?? [],\n          { primaryId: \"action-0\", inlineIds: [] },\n        ),\n    }}\n    {columns}\n    {getRows}\n    mode=\"auto\"\n    theme=\"light\"\n    showActions={true}\n    actionsHeaderLabel=\"Öffnen\"\n    showPrimaryButton={false}\n    pageSize={PAGE_SIZE}\n    urlStateId={tableStateId}\n    refreshKey={sourceRefreshKey}\n    onRowsLoaded={(result) => {\n      totalCount = typeof result?.total === \"number\" ? result.total : (result?.rows?.length ?? 0)\n    }}\n  >\n    {#snippet empty()}\n      <div class=\"info\">Keine Chunks für diese Quelle gefunden.</div>\n    {/snippet}\n\n    {#snippet tableCell({ row, column })}\n      {#if column.id === \"chunkCount\"}\n        <span class=\"number\">{formatChunkValue((row as ChunkRow).chunkCount)}</span>\n      {:else if column.id === \"scope\"}\n        <StatusTag size=\"sm\" status={chunkScopeStatus((row as ChunkRow).scope)} />\n      {:else if column.id === \"averageWordCount\"}\n        <span class=\"number\">{formatChunkAverage((row as ChunkRow).averageWordCount)}</span>\n      {:else if column.id === \"totalWordCount\"}\n        <span class=\"number\">{formatChunkValue((row as ChunkRow).totalWordCount)}</span>\n      {:else}\n        {@const sourceText = truncateCellText((row as ChunkRow).dataLabel)}\n        <div class=\"source-cell\">\n          {#if sourceText.truncated}\n            <span class=\"cell-text text\" use:tooltip={{ content: sourceText.full }}\n              >{sourceText.display}</span\n            >\n          {:else}\n            <span class=\"cell-text text\">{sourceText.display}</span>\n          {/if}\n        </div>\n      {/if}\n    {/snippet}\n  </Table>\n</div>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .chunk-source {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-invers-100);\n    min-width: 0;\n  }\n\n  .info {\n    margin: 0;\n    color: var(--text-invers-100);\n  }\n\n  .number {\n    display: inline-block;\n    min-width: 64px;\n    text-align: right;\n    color: var(--text-invers-100);\n  }\n\n  .text {\n    color: var(--text-invers-100);\n  }\n\n  .cell-text {\n    display: inline-block;\n    max-width: min(60ch, 100%);\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    vertical-align: bottom;\n  }\n\n  .source-cell {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    min-width: 0;\n    flex-wrap: wrap;\n  }\n\n  @media @max-mobile {\n    .number {\n      min-width: 0;\n    }\n  }\n</style>\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    { id: \"all\", title: \"Gesamt\", testId: \"indexAdmin.chunkView.tab.all\" },\n    { id: \"minio\", title: \"MinIO\", testId: \"indexAdmin.chunkView.tab.minio\" },\n    { id: \"scraping\", title: \"Website Scraper\", testId: \"indexAdmin.chunkView.tab.scraping\" },\n    { id: \"sharepoint\", title: \"SharePoint\", testId: \"indexAdmin.chunkView.tab.sharepoint\" },\n    {\n      id: \"answer-library\",\n      title: \"FAQ-Sammlung\",\n      testId: \"indexAdmin.chunkView.tab.answerLibrary\",\n    },\n    { id: \"external\", title: \"Externe API\", testId: \"indexAdmin.chunkView.tab.external\" },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import ChunkSourcePage from \"../ChunkSource\"\n\n  let {\n    activeTab = \"all\",\n    organizationId = null,\n    projectId = null,\n  }: {\n    activeTab?: \"all\" | \"minio\" | \"scraping\" | \"sharepoint\" | \"answer-library\" | \"external\"\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n\n  const resolvedSource = $derived.by(() => {\n    if (activeTab === \"minio\") return \"minio\"\n\n    if (activeTab === \"scraping\") return \"scraping\"\n\n    if (activeTab === \"sharepoint\") return \"sharepoint\"\n\n    if (activeTab === \"answer-library\") return \"answer-library\"\n\n    if (activeTab === \"external\") return \"external\"\n\n    return \"all\"\n  })\n\n  const resolvedTitle = $derived.by(() => {\n    if (activeTab === \"minio\") return \"MinIO\"\n\n    if (activeTab === \"scraping\") return \"Website Scraper\"\n\n    if (activeTab === \"sharepoint\") return \"SharePoint\"\n\n    if (activeTab === \"answer-library\") return \"FAQ-Sammlung\"\n\n    if (activeTab === \"external\") return \"Externe API\"\n\n    return \"Alle Quellen\"\n  })\n</script>\n\n<ChunkSourcePage\n  title={resolvedTitle}\n  {projectId}\n  {organizationId}\n  realizationId={null}\n  source={resolvedSource}\n/>\n","import { mdiDatabaseEye } from \"@mdi/js\"\nimport {\n  buildViewNavigation,\n  type PageTabWithId,\n  type ViewPageSpec,\n  type ViewPageSnippets,\n} from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { ChunkViewCapabilities } from \"./_logic/capabilities\"\n\nexport type ChunkViewPaths = {\n  chunks: string | null\n}\n\nconst getChunkTabs = (): PageTabWithId[] => [\n  { id: \"all\", title: \"Gesamt\", testId: \"indexAdmin.chunkView.tab.all\" },\n  { id: \"minio\", title: \"MinIO\", testId: \"indexAdmin.chunkView.tab.minio\" },\n  { id: \"scraping\", title: \"Website Scraper\", testId: \"indexAdmin.chunkView.tab.scraping\" },\n  { id: \"sharepoint\", title: \"SharePoint\", testId: \"indexAdmin.chunkView.tab.sharepoint\" },\n  { id: \"answer-library\", title: \"FAQ-Sammlung\", testId: \"indexAdmin.chunkView.tab.answerLibrary\" },\n  { id: \"external\", title: \"Externe API\", testId: \"indexAdmin.chunkView.tab.external\" },\n]\n\nconst PAGE_SPECS: Array<\n  ViewPageSpec<Record<string, never>, ChunkViewPaths, ChunkViewCapabilities>\n> = [\n  {\n    id: \"chunks\",\n    title: \"Chunk Explorer\",\n    icon: mdiDatabaseEye,\n    resolvePath: (paths) => paths.chunks,\n    canOpen: (capabilities) => capabilities.canViewChunks,\n    getTabs: getChunkTabs,\n  },\n]\n\nexport const buildChunkViewPaths = (tabBasePath: string | null): ChunkViewPaths => ({\n  chunks: tabBasePath,\n})\n\nexport const buildChunkViewNavigation = ({\n  paths,\n  capabilities,\n  snippets,\n}: {\n  paths: ChunkViewPaths\n  capabilities: ChunkViewCapabilities\n  snippets: ViewPageSnippets\n}) =>\n  buildViewNavigation({\n    specs: PAGE_SPECS,\n    context: {},\n    paths,\n    capabilities,\n    snippets,\n  })\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import PageTemplate from \"@kontextwerk/web-sdk/ui/layout/PageTemplate.svelte\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n\n  import { buildCurrentProjectPath } from \"../../../_shared/_logic/organization-navigation\"\n  import { activeOrganization } from \"../../../_shared/_logic/organization\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import ChunksPage from \"./pages/Chunks\"\n  import { getIndexAdminAuthContext } from \"../../../_shared/_logic/auth-context\"\n  import { buildChunkViewNavigation, buildChunkViewPaths } from \"./navigation\"\n\n  const organizationId = $derived($activeOrganization?.id ?? null)\n  const projectId = $derived<string | null>(null)\n  const pageTitle = \"Chunk Explorer\"\n  const resolvedBackLink = $derived(buildCurrentProjectPath({ suffix: \"/datasources\" }) ?? \"\")\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n\n  const tabBasePath = $derived(buildCurrentProjectPath({ suffix: \"/chunks\" }))\n  const viewPaths = $derived.by(() => buildChunkViewPaths(tabBasePath))\n</script>\n\n{#if capabilities.canViewChunks}\n  {#snippet chunksContent(activeTab: string)}\n    <ChunksPage\n      activeTab={activeTab === \"minio\" ||\n      activeTab === \"scraping\" ||\n      activeTab === \"sharepoint\" ||\n      activeTab === \"answer-library\" ||\n      activeTab === \"external\"\n        ? activeTab\n        : \"all\"}\n      {projectId}\n      {organizationId}\n    />\n  {/snippet}\n\n  {@const pageNavigation = buildChunkViewNavigation({\n    paths: viewPaths,\n    capabilities,\n    snippets: {\n      chunks: chunksContent,\n    },\n  })}\n\n  <PageTemplate\n    viewKey={`chunk:${organizationId ?? \"no-org\"}`}\n    title={pageTitle}\n    {pageNavigation}\n    locationStore={location}\n    gobackLink={resolvedBackLink}\n  />\n{:else}\n  <AccessDeniedPage\n    title=\"Chunk Explorer gesperrt\"\n    statusLabel=\"Berechtigung fehlt\"\n    message=\"Du darfst den Datenindex nicht ansehen.\"\n    hint=\"Bitte fordere die Berechtigung „Datenindex ansehen“ an.\"\n  />\n{/if}\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"chunk\",\n  parentPageId: \"datasources\",\n  parentTabTitle: \"Datenquellen\",\n} satisfies AppSubviewConfig\n","import type { PermissionState } from \"../../../../_shared/_logic/permissions\"\n\nexport type DomainViewCapabilities = {\n  canViewDomain: boolean\n  canManageDomain: boolean\n  canViewChunks: boolean\n}\n\nexport const buildViewCapabilities = (permissions: PermissionState): DomainViewCapabilities => ({\n  canViewDomain: permissions.allows(\"core.kontext_website_index\", \"view\"),\n  canManageDomain: permissions.allows(\"core.kontext_website_index\", \"manage\"),\n  canViewChunks: permissions.allows(\"core.kontext_index\", \"view\"),\n})\n","import type { Snippet } from \"svelte\"\nimport type { PageTabConfig } from \"@kontextwerk/web-sdk/core/navigation/types\"\n\ntype MaybeGetter<T> = T | (() => T)\n\nexport type DetailTabWithId = Omit<PageTabConfig, \"content\"> & { id: string }\n\nconst asGetter = <T>(value: MaybeGetter<T>): (() => T) =>\n  typeof value === \"function\" ? (value as () => T) : () => value\n\nexport const filterTabs = <T extends DetailTabWithId>(tabs: Array<T | null | undefined>): T[] =>\n  tabs.filter((tab): tab is T => Boolean(tab))\n\nexport const bindSnippet = <TArgs extends unknown[]>(\n  snippet: Snippet<TArgs>,\n  ...argsOrGetters: { [K in keyof TArgs]: MaybeGetter<TArgs[K]> }\n): PageTabConfig[\"content\"] => {\n  const getters = argsOrGetters.map((entry) => asGetter(entry)) as Array<() => unknown>\n\n  return ((anchor: unknown) =>\n    (snippet as unknown as (anchor: unknown, ...args: unknown[]) => void)(\n      anchor,\n      ...getters,\n    )) as PageTabConfig[\"content\"]\n}\n\nexport const withTabContent = <T extends DetailTabWithId, TContext>(\n  tabs: T[],\n  snippet: Snippet<[string, TContext]>,\n  contextOrGetter: MaybeGetter<TContext>,\n): PageTabConfig[] =>\n  tabs.map((tab) => ({\n    ...tab,\n    content: bindSnippet(snippet, tab.id, contextOrGetter),\n  }))\n","<script lang=\"ts\" generics=\"TEntity\">\n  import type { Snippet } from \"svelte\"\n  import PageTemplate from \"@kontextwerk/web-sdk/ui/layout/PageTemplate.svelte\"\n  import type { PageNavigationEntry } from \"@kontextwerk/web-sdk/core/navigation/types\"\n  import type { RecordDetailConfig } from \"@kontextwerk/web-sdk/ui/layout/recordDetail/types\"\n  import type { PopoverMenuItem } from \"@kontextwerk/web-sdk/ui/overlay/popover/types\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n\n  import { withTabContent } from \"../../_logic/detail-tabs\"\n  import type {\n    EntityCollectionFrameDefinition,\n    EntityCollectionViewFrameContext,\n  } from \"../../_logic/entity-collection-contracts\"\n\n  type Props = {\n    definition: EntityCollectionFrameDefinition<TEntity>\n    recordScopeKey: string | null\n    /** Wraps the record page from the route on; receives null until the record is confirmed. */\n    recordActionController?: Snippet<[TEntity | null, Snippet<[PopoverMenuItem[]]>]>\n    entities?: TEntity[]\n    routeEntityId?: string | null\n    backLink?: string\n    noContextMessage?: string | null\n    loading?: boolean\n    loadingMessage?: string\n    error?: string | null\n    tabContent?: Snippet<[string, EntityCollectionViewFrameContext<TEntity>]>\n  }\n\n  const {\n    definition,\n    recordScopeKey,\n    recordActionController,\n    entities = [],\n    routeEntityId = null,\n    backLink = \"\",\n    noContextMessage = null,\n    loading = false,\n    loadingMessage = \"Einträge werden geladen…\",\n    error = null,\n    tabContent,\n  }: Props = $props()\n\n  const resolvedActiveEntityId = $derived.by(() => {\n    if (!entities.length) return null\n\n    if (\n      routeEntityId &&\n      entities.some((entity) => definition.getEntityId(entity) === routeEntityId)\n    ) {\n      return routeEntityId\n    }\n\n    return definition.getEntityId(entities[0]) ?? null\n  })\n\n  const activeEntity = $derived.by(() => {\n    if (!resolvedActiveEntityId) return null\n\n    return (\n      entities.find((entity) => definition.getEntityId(entity) === resolvedActiveEntityId) ?? null\n    )\n  })\n\n  const frameContext = $derived<EntityCollectionViewFrameContext<TEntity>>({\n    entities,\n    activeEntity,\n    activeEntityId: resolvedActiveEntityId,\n  })\n\n  const pageTabs = $derived.by(() => {\n    if (!tabContent) return []\n\n    return withTabContent(definition.getTabs(frameContext), tabContent, () => frameContext)\n  })\n\n  // The route names the record before its collection arrives, so the record frame stands from\n  // then on. A failed load keeps the frame without facts; an unauthorized scope never gets one.\n  const recordPhase = $derived.by<\"confirmed\" | \"loading\" | \"failed\" | null>(() => {\n    if (noContextMessage || !recordScopeKey) return null\n\n    if (error) return routeEntityId ? \"failed\" : null\n\n    if (activeEntity) return \"confirmed\"\n\n    return loading && routeEntityId ? \"loading\" : null\n  })\n  const confirmedEntity = $derived(recordPhase === \"confirmed\" ? activeEntity : null)\n  const pendingRecord = $derived(recordPhase === \"loading\" || recordPhase === \"failed\")\n  const recordEntityId = $derived(confirmedEntity ? resolvedActiveEntityId : routeEntityId)\n  // Loading and confirmed share the route identity, so the arriving record does not remount.\n  const recordKey = $derived(\n    recordPhase && recordEntityId\n      ? `entity-collection:${recordScopeKey}:${definition.title}:${recordEntityId}`\n      : null,\n  )\n  const displayedEntity = $derived(recordKey ? confirmedEntity : activeEntity)\n\n  const pageNavigation = $derived<PageNavigationEntry[]>(\n    pendingRecord\n      ? [\n          {\n            id: \"pending-record\",\n            title: definition.title,\n            path: $location.path ?? \"\",\n            icon: definition.icon ?? null,\n            content: pendingRecordContent,\n          },\n        ]\n      : entities.map((entity) => ({\n          title: definition.getEntityTitle(entity),\n          path: definition.getEntityPath(entity),\n          icon: definition.icon ?? null,\n          tabs: pageTabs,\n          testId: definition.getEntityTestId?.(entity),\n        })),\n  )\n\n  const getRecordDetail = (actions: PopoverMenuItem[]): RecordDetailConfig | undefined => {\n    if (!recordKey) return undefined\n\n    if (confirmedEntity) {\n      return {\n        key: recordKey,\n        loading: false,\n        header: definition.getRecordHeader(confirmedEntity, frameContext),\n        actions,\n      }\n    }\n\n    return {\n      key: recordKey,\n      loading: recordPhase === \"loading\",\n      header: { icon: definition.recordIcon, fields: [] },\n      actions,\n    }\n  }\n</script>\n\n{#if noContextMessage}\n  <p class=\"state\">{noContextMessage}</p>\n{:else if recordKey}\n  {#if recordActionController}\n    {@render recordActionController(confirmedEntity, recordPage)}\n  {:else}\n    {@render recordPage([])}\n  {/if}\n{:else if loading && !entities.length && !error}\n  <p class=\"state\">{loadingMessage}</p>\n{:else if error}\n  <p class=\"state error\">{error}</p>\n{:else if !entities.length}\n  <p class=\"state\">{definition.emptyMessage}</p>\n{:else}\n  {@render recordPage([])}\n{/if}\n\n{#snippet pendingRecordContent()}\n  {#if error}\n    <p class=\"state error\">{error}</p>\n  {:else}\n    <p class=\"state\">{loadingMessage}</p>\n  {/if}\n{/snippet}\n\n{#snippet recordPage(actions: PopoverMenuItem[])}\n  <PageTemplate\n    viewKey={recordKey ?? `entity-collection:${definition.title}:none`}\n    title={displayedEntity ? definition.getEntityTitle(displayedEntity) : definition.title}\n    recordDetail={getRecordDetail(actions)}\n    helpModalTextId={definition.helpModalTextId}\n    helpModalTooltip={definition.helpModalTooltip}\n    {pageNavigation}\n    locationStore={location}\n    gobackLink={backLink}\n    testId={definition.testId}\n  />\n{/snippet}\n\n<style lang=\"less\">\n  .state {\n    margin: 0;\n    color: var(--text-400);\n  }\n\n  .state.error {\n    color: var(--danger-600, #c62828);\n  }\n</style>\n","<script lang=\"ts\">\n  import ScrapingSyncJobsTable from \"../../../../../../_shared/_modules/scraping-sync-jobs-table\"\n\n  const {\n    domainId,\n    organizationId = null,\n    projectId = null,\n  }: {\n    domainId: string\n    organizationId?: string | null\n    projectId?: string | null\n  } = $props()\n</script>\n\n<ScrapingSyncJobsTable {projectId} {organizationId} {domainId} />\n","<script lang=\"ts\">\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { mdiCloseCircleOutline, mdiRefresh } from \"@mdi/js\"\n\n  import UrlTable from \"../../../../../../_shared/_modules/url-table\"\n  import type { UrlRow } from \"../../../../../../_shared/_logic/types\"\n  import type { DomainRecord } from \"../../../../../../_shared/_logic/scraping\"\n  import { indexActionTooltip } from \"../../../../../../../_shared/_logic/index-action-tooltips\"\n\n  type Props = {\n    activeDomain: DomainRecord\n    organizationId?: string | null\n    projectId?: string | null\n    canManageWebsiteIndex?: boolean\n    canViewKontextIndex?: boolean\n    hasActiveSync?: boolean\n    forcePolling?: boolean\n    onSync: (row: UrlRow) => Promise<void> | void\n    onDelete: (row: UrlRow) => Promise<void> | void\n    onDiscover: (domain: DomainRecord) => Promise<void> | void\n    onCancelSync: (domain: DomainRecord) => Promise<void> | void\n    registerUrlRefresh?: ((refresh: () => void) => void) | null\n  }\n\n  const {\n    activeDomain,\n    organizationId = null,\n    projectId = null,\n    canManageWebsiteIndex = true,\n    canViewKontextIndex = true,\n    hasActiveSync = false,\n    forcePolling = false,\n    onSync,\n    onDelete,\n    onDiscover,\n    onCancelSync,\n    registerUrlRefresh = null,\n  }: Props = $props()\n</script>\n\n<div class=\"domain-content\">\n    {#key `${organizationId ?? \"none\"}:${projectId ?? \"none\"}:${activeDomain.id}`}\n        <UrlTable\n      {projectId}\n      {organizationId}\n      realizationId={null}\n      domainId={activeDomain.id}\n      canManage={canManageWebsiteIndex}\n      canViewChunks={canViewKontextIndex}\n      {forcePolling}\n      {onSync}\n      {onDelete}\n      setRefreshFunction={registerUrlRefresh ?? undefined}\n    >\n            {#snippet buttonSnippetOuter()}\n                {#if canManageWebsiteIndex}\n                    {#if hasActiveSync}\n                        <CTA\n              type=\"secondaryButton\"\n              icon={mdiCloseCircleOutline}\n              content=\"Sync Abbrechen\"\n              tooltipContent={indexActionTooltip(\"sync-cancel\")}\n              small={true}\n              onClick={() => onCancelSync(activeDomain)}\n              dataTestid=\"indexAdmin.domainView.cancelSyncButton\"\n            />\n                    {/if}\n                    <CTA\n            type=\"secondaryButton\"\n            icon={mdiRefresh}\n            small={true}\n            content=\"Discovery starten\"\n            tooltipContent={indexActionTooltip(\"discovery-start\")}\n            onClick={() => onDiscover(activeDomain)}\n            dataTestid=\"indexAdmin.domainView.startDiscoveryButton\"\n          />\n                {/if}\n            {/snippet}\n        </UrlTable>\n    {/key}\n</div>\n\n<style lang=\"less\">\n  .domain-content {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n</style>\n","import { mdiWeb } from \"@mdi/js\"\nimport type { RecordDetailHeaderPresentation } from \"@kontextwerk/web-sdk/ui/layout/recordDetail/types\"\n\nimport type { DomainRecord } from \"../../../../../_shared/_logic/scraping\"\nimport { describeInterval } from \"../../../../../_shared/_logic/interval-options\"\n\nexport const domainRecordIcon = mdiWeb\n\nconst scopeLabels: Record<DomainRecord[\"scope\"], string> = {\n  organization: \"Organisation\",\n  project: \"Agent\",\n  realization: \"Sprache\",\n}\n\nexport const buildDomainRecordHeader = (\n  domain: Pick<DomainRecord, \"scope\" | \"crawl_interval_seconds\" | \"last_discovered_at\">,\n): RecordDetailHeaderPresentation => {\n  const fields: RecordDetailHeaderPresentation[\"fields\"] = [\n    { id: \"scope\", label: \"Sync-Ebene\", value: scopeLabels[domain.scope] },\n  ]\n\n  if (Number.isFinite(domain.crawl_interval_seconds) && domain.crawl_interval_seconds >= 0) {\n    fields.push({\n      id: \"crawl-interval\",\n      label: \"Crawl-Intervall\",\n      value: describeInterval(domain.crawl_interval_seconds),\n    })\n  }\n\n  if (domain.last_discovered_at) {\n    const date = new Date(domain.last_discovered_at)\n\n    if (Number.isFinite(date.getTime())) {\n      fields.push({\n        id: \"last-discovery\",\n        label: \"Letzte Discovery\",\n        value: date.toLocaleString(\"de-DE\", {\n          day: \"2-digit\",\n          month: \"2-digit\",\n          year: \"numeric\",\n          hour: \"2-digit\",\n          minute: \"2-digit\",\n        }),\n      })\n    }\n  }\n\n  return { icon: domainRecordIcon, fields }\n}\n","import { mdiWeb } from \"@mdi/js\"\nimport type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { DomainRecord } from \"../../../../../_shared/_logic/scraping\"\nimport type { DomainFrameContext, DomainFrameDefinition } from \"./types\"\nimport { buildDomainRecordHeader, domainRecordIcon } from \"./recordHeader\"\n\nexport const buildDomainPath = (basePath: string | null, id?: string | null) =>\n  id && basePath ? `${basePath}/${encodeURIComponent(id)}` : (basePath ?? null)\n\nconst getDomainTabs = (): PageTabWithId[] => [\n  { id: \"urls\", title: \"Gefundene URLs\", testId: \"indexAdmin.domainView.tab.urls\" },\n  { id: \"jobs\", title: \"Synchronisationsjobs\", testId: \"indexAdmin.domainView.tab.jobs\" },\n]\n\nexport const createDomainFrameDefinition = (\n  getEntityPath: (domain: DomainRecord) => string,\n): DomainFrameDefinition => ({\n  title: \"Domains\",\n  emptyMessage: \"Keine Domains verfügbar.\",\n  icon: mdiWeb,\n  recordIcon: domainRecordIcon,\n  testId: \"indexAdmin.domainView\",\n  getEntityId: (domain) => domain.id,\n  getEntityTitle: (domain) => domain.domain,\n  getRecordHeader: buildDomainRecordHeader,\n  getEntityPath,\n  getEntityTestId: (domain) => `indexAdmin.domainView.page.${domain.id}`,\n  getTabs: (context: DomainFrameContext) => (context.activeEntity ? getDomainTabs() : []),\n})\n","import type { DomainRecord } from \"../../../../../_shared/_logic/scraping\"\nimport { buildDomainPath } from \"./frame\"\n\nexport const resolveDomainAutomationTarget = (snapshot: {\n  domainBasePath: string | null\n  routeDomainId: string | null\n  entries: DomainRecord[]\n}): string | null => {\n  if (!snapshot.entries.length) return null\n\n  const resolvedId =\n    snapshot.routeDomainId && snapshot.entries.some((entry) => entry.id === snapshot.routeDomainId)\n      ? snapshot.routeDomainId\n      : (snapshot.entries[0]?.id ?? null)\n\n  if (!resolvedId || resolvedId === snapshot.routeDomainId) return null\n\n  return buildDomainPath(snapshot.domainBasePath, resolvedId)\n}\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    { id: \"urls\", title: \"Gefundene URLs\", testId: \"indexAdmin.domainView.tab.urls\" },\n    { id: \"jobs\", title: \"Synchronisationsjobs\", testId: \"indexAdmin.domainView.tab.jobs\" },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { mdiArrowLeft } from \"@mdi/js\"\n\n  import type { UrlRow } from \"../../../../_shared/_logic/types\"\n  import {\n    fetchAllDomains,\n    fetchDomainUrls,\n    triggerDiscovery,\n    deleteUrl,\n    triggerUrlSync,\n    cancelDomainSync,\n    type DomainRecord,\n  } from \"../../../../_shared/_logic/scraping\"\n  import {\n    spaNavigate,\n    buildCurrentProjectPath,\n  } from \"../../../../../_shared/_logic/organization-navigation\"\n  import { activeOrganization } from \"../../../../../_shared/_logic/organization\"\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import EntityCollectionViewFrame from \"../../../../../_shared/_modules/entity-collection-view-frame\"\n  import type {\n    EntityCollectionFrameDefinition,\n    EntityCollectionViewFrameContext,\n  } from \"../../../../../_shared/_logic/entity-collection-contracts\"\n  import JobsTab from \"./tabs/Jobs\"\n  import UrlsTab from \"./tabs/Urls\"\n  import { buildDomainPath, createDomainFrameDefinition } from \"./_logic/frame\"\n  import { resolveDomainAutomationTarget } from \"./_logic/automation\"\n  import { runConfirmedDestructiveAction } from \"../../../../../confirmed-destructive-action\"\n  import type { DomainViewProps } from \"./_logic/types\"\n\n  let {\n    domainId: routeDomainId = null,\n    canManageWebsiteIndex = true,\n    canViewKontextIndex = true,\n  }: DomainViewProps = $props()\n\n  const projectId = $derived<string | null>(null)\n  const organizationId = $derived($activeOrganization?.id ?? null)\n  const domainBasePath = $derived(buildCurrentProjectPath({ suffix: \"/scraping/domains\" }))\n  const scrapingOverviewPath = $derived(buildCurrentProjectPath({ suffix: \"/scraping\" }))\n  const resolvedBackLink = $derived(scrapingOverviewPath ?? \"\")\n  const resolveDomainPath = (id?: string | null) => buildDomainPath(domainBasePath, id)\n\n  let domains = $state<DomainRecord[]>([])\n  let domainsLoading = $state(false)\n  let domainsError = $state<string | null>(null)\n  let domainsRequestId = 0\n  const loadDomains = async () => {\n    if (!projectId && !organizationId) {\n      domains = []\n      domainsError = null\n      domainsLoading = false\n\n      return domains\n    }\n\n    const requestId = ++domainsRequestId\n    domainsLoading = true\n    domainsError = null\n\n    try {\n      const response = await fetchAllDomains({\n        organizationId,\n      })\n\n      if (requestId !== domainsRequestId) {\n        return domains\n      }\n\n      const nextDomains = response.items.sort((a, b) => a.domain.localeCompare(b.domain))\n      domains = nextDomains\n      const target = resolveDomainAutomationTarget({\n        domainBasePath,\n        routeDomainId,\n        entries: nextDomains,\n      })\n\n      if (target) {\n        spaNavigate(target, { replace: true, noSearchParam: true })\n      }\n\n      queueMicrotask(() => {\n        void loadActiveSyncCount({ force: true })\n      })\n\n      return domains\n    } catch (error) {\n      if (requestId !== domainsRequestId) {\n        return domains\n      }\n\n      domains = []\n      domainsError = error instanceof Error ? error.message : String(error)\n\n      return domains\n    } finally {\n      if (requestId === domainsRequestId) {\n        domainsLoading = false\n      }\n    }\n  }\n\n  const availableDomains = $derived(domains ?? [])\n  const resolvedDomainId = $derived.by(() => {\n    if (!availableDomains.length) return null\n\n    if (routeDomainId && availableDomains.some((entry) => entry.id === routeDomainId)) {\n      return routeDomainId\n    }\n\n    return availableDomains[0]?.id ?? null\n  })\n  const activeDomain = $derived(\n    resolvedDomainId\n      ? (availableDomains.find((entry) => entry.id === resolvedDomainId) ?? null)\n      : null,\n  )\n\n  const frameDefinition = $derived.by<EntityCollectionFrameDefinition<DomainRecord>>(() =>\n    createDomainFrameDefinition((domain) => resolveDomainPath(domain.id) ?? \"/\"),\n  )\n\n  const handleBackToScraping = () => {\n    if (scrapingOverviewPath) {\n      spaNavigate(scrapingOverviewPath, { noSearchParam: true })\n    }\n  }\n\n  let urlTableRefresh: (() => void) | null = null\n  const registerUrlRefresh = (refresh: () => void) => {\n    urlTableRefresh = refresh\n  }\n\n  let activeSyncCount = $state<number | null>(null)\n  let activeSyncLoading = $state(false)\n  let activeSyncRequestId = 0\n  let lastActiveSyncKey: string | null = null\n\n  let discoveryRefreshActive = $state(false)\n  let discoveryRefreshTimer: ReturnType<typeof setTimeout> | null = null\n  let discoveryRefreshInterval: ReturnType<typeof setInterval> | null = null\n\n  const stopDiscoveryRefreshWindow = () => {\n    discoveryRefreshActive = false\n\n    if (discoveryRefreshTimer) {\n      clearTimeout(discoveryRefreshTimer)\n      discoveryRefreshTimer = null\n    }\n\n    if (discoveryRefreshInterval) {\n      clearInterval(discoveryRefreshInterval)\n      discoveryRefreshInterval = null\n    }\n  }\n\n  const startDiscoveryRefreshWindow = () => {\n    stopDiscoveryRefreshWindow()\n    discoveryRefreshActive = true\n    discoveryRefreshInterval = setInterval(() => {\n      urlTableRefresh?.()\n      void loadActiveSyncCount({ force: true })\n    }, 5_000)\n    discoveryRefreshTimer = setTimeout(() => {\n      stopDiscoveryRefreshWindow()\n      void loadActiveSyncCount({ force: true })\n    }, 180_000)\n  }\n\n  onDestroy(() => {\n    domainsRequestId += 1\n    activeSyncRequestId += 1\n    stopDiscoveryRefreshWindow()\n  })\n\n  const loadActiveSyncCount = async ({ force = false }: { force?: boolean } = {}) => {\n    if ((!projectId && !organizationId) || !activeDomain?.id) {\n      activeSyncCount = null\n      activeSyncLoading = false\n\n      return\n    }\n\n    const key = `${organizationId ?? \"\"}|${projectId ?? \"\"}|${activeDomain.id}`\n\n    if (!force && key === lastActiveSyncKey && activeSyncCount !== null) {\n      return\n    }\n\n    lastActiveSyncKey = key\n\n    const requestId = ++activeSyncRequestId\n    activeSyncLoading = true\n    try {\n      const result = await fetchDomainUrls(activeDomain.id, {\n        statuses: [\"pending\", \"syncing\"],\n        limit: 1,\n        offset: 0,\n      })\n\n      if (requestId !== activeSyncRequestId) {\n        return\n      }\n\n      if (typeof result.total === \"number\") {\n        activeSyncCount = result.total\n      } else {\n        activeSyncCount = result.items.length\n      }\n    } catch {\n      if (requestId !== activeSyncRequestId) {\n        return\n      }\n\n      activeSyncCount = null\n    } finally {\n      if (requestId === activeSyncRequestId) {\n        activeSyncLoading = false\n      }\n    }\n  }\n\n  const hasActiveSync = $derived.by(() => {\n    if (activeSyncLoading && activeSyncCount === null) return false\n\n    return (activeSyncCount ?? 0) > 0\n  })\n\n  const handleDiscover = async (domain: DomainRecord | null) => {\n    if (!canManageWebsiteIndex) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    if (!domain) return\n\n    try {\n      await triggerDiscovery(domain.id, true)\n      newNotification({ class: \"info\", html: \"Discovery wurde gestartet.\" })\n      activeSyncCount = Math.max(activeSyncCount ?? 0, 1)\n      startDiscoveryRefreshWindow()\n      urlTableRefresh?.()\n      void loadDomains()\n      void loadActiveSyncCount({ force: true })\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Discovery konnte nicht gestartet werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleCancelSync = async (domain: DomainRecord | null) => {\n    if (!canManageWebsiteIndex) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    if (!domain) return\n\n    try {\n      const result = await cancelDomainSync(domain.id)\n      const affected = typeof result?.affectedUrls === \"number\" ? result.affectedUrls : null\n      const suffix = affected !== null ? ` (${affected} URLs markiert)` : \"\"\n      newNotification({ class: \"info\", html: `Sync abgebrochen${suffix}.` })\n      urlTableRefresh?.()\n      void loadDomains()\n      activeSyncCount = 0\n      void loadActiveSyncCount({ force: true })\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Sync konnte nicht abgebrochen werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleSyncUrl = async (row: UrlRow) => {\n    if (!canManageWebsiteIndex) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await triggerUrlSync(row.domainId, row.id, { force: true })\n      newNotification({ class: \"info\", html: \"Sync wurde geplant.\" })\n      activeSyncCount = Math.max(activeSyncCount ?? 0, 1)\n      urlTableRefresh?.()\n      void loadActiveSyncCount({ force: true })\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Sync konnte nicht geplant werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleDeleteUrl = async (row: UrlRow) => {\n    if (!canManageWebsiteIndex) {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Website-Index verwalten“ erforderlich.\",\n      })\n\n      return\n    }\n\n    try {\n      await runConfirmedDestructiveAction(\n        {\n          approval: {\n            title: \"URL löschen\",\n            description: \"Diese Website-URL wirklich löschen?\",\n            approvalLabel: \"Ja, löschen\",\n            declineLabel: \"Abbrechen\",\n          },\n          reauth: {\n            title: \"URL löschen\",\n            description:\n              \"Bitte bestätigen Sie das Löschen dieser Website-URL mit Ihrem aktuellen Passwort.\",\n            actionLabel: \"URL löschen\",\n          },\n        },\n        async () => {\n          await deleteUrl(row.domainId, row.id)\n          newNotification({ class: \"success\", html: \"URL wurde gelöscht.\" })\n          urlTableRefresh?.()\n          void loadActiveSyncCount({ force: true })\n        },\n      )\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"URL konnte nicht gelöscht werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  onMount(() => {\n    void loadDomains()\n  })\n\n  onMount(() => {\n    activeSyncCount = null\n    lastActiveSyncKey = null\n    void loadActiveSyncCount()\n  })\n</script>\n\n<EntityCollectionViewFrame\n  definition={frameDefinition}\n  recordScopeKey={organizationId ? `organization:${organizationId}` : null}\n  entities={availableDomains}\n  routeEntityId={routeDomainId}\n  backLink={resolvedBackLink}\n  loading={domainsLoading}\n  loadingMessage=\"Domains werden geladen…\"\n  error={domainsError}\n  tabContent={domainTabContent}\n/>\n\n{#snippet domainTabContent(tabId: string, context: EntityCollectionViewFrameContext<DomainRecord>)}\n  {@const activeDomain = context.activeEntity}\n  {#if activeDomain && tabId === \"urls\"}\n    <UrlsTab\n      {activeDomain}\n      {projectId}\n      {organizationId}\n      {canManageWebsiteIndex}\n      {canViewKontextIndex}\n      {hasActiveSync}\n      forcePolling={hasActiveSync || discoveryRefreshActive}\n      onSync={handleSyncUrl}\n      onDelete={handleDeleteUrl}\n      onDiscover={handleDiscover}\n      onCancelSync={handleCancelSync}\n      {registerUrlRefresh}\n    />\n  {:else if activeDomain && tabId === \"jobs\"}\n    <JobsTab {projectId} {organizationId} domainId={activeDomain.id} />\n  {:else}\n    {@render emptyDomainContent()}\n  {/if}\n{/snippet}\n\n{#snippet emptyDomainContent()}\n  <div class=\"empty-state\">\n    {#if domainsLoading}\n      <p>Domains werden geladen…</p>\n    {:else if domainsError}\n      <p>Domains konnten nicht geladen werden: {domainsError}</p>\n    {:else}\n      <p>Keine Domains verfügbar.</p>\n    {/if}\n    {#if scrapingOverviewPath}\n      <CTA\n        type=\"secondaryButton\"\n        content=\"Zur Übersicht\"\n        icon={mdiArrowLeft}\n        onClick={handleBackToScraping}\n        dataTestid=\"indexAdmin.domainView.backToOverviewButton\"\n      />\n    {/if}\n  </div>\n{/snippet}\n\n<style lang=\"less\">\n  .empty-state {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    color: var(--text-invers-100);\n  }\n</style>\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import { activeOrganization } from \"../../../_shared/_logic/organization\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import DomainPage from \"./pages/Domain\"\n  import { getIndexAdminAuthContext } from \"../../../_shared/_logic/auth-context\"\n\n  let {\n    domainId = null,\n  }: {\n    domainId?: string | null\n  } = $props()\n\n  const routeKey = $derived(`${$activeOrganization?.id ?? \"no-org\"}:${domainId ?? \"no-domain\"}`)\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n</script>\n\n{#key routeKey}\n  {#if capabilities.canViewDomain}\n    <DomainPage\n      {domainId}\n      canManageWebsiteIndex={capabilities.canManageDomain}\n      canViewKontextIndex={capabilities.canViewChunks}\n    />\n  {:else}\n    <AccessDeniedPage\n      title=\"Website-Index gesperrt\"\n      statusLabel=\"Berechtigung fehlt\"\n      message=\"Du darfst den Website-Index nicht ansehen.\"\n      hint=\"Bitte fordere die Berechtigung „Website-Index ansehen“ an.\"\n    />\n  {/if}\n{/key}\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"domain\",\n  parentPageId: \"scraping\",\n  parentTabTitle: \"Websites\",\n} satisfies AppSubviewConfig\n","import type { PermissionState } from \"../../../../_shared/_logic/permissions\"\n\nexport type AnswerLibraryCapabilities = {\n  canViewAnswerLibrary: boolean\n  canManageAnswerLibrary: boolean\n}\n\nexport const buildViewCapabilities = (permissions: PermissionState): AnswerLibraryCapabilities => ({\n  canViewAnswerLibrary: permissions.allows(\"core.kontext_answer_library\", \"view\"),\n  canManageAnswerLibrary: permissions.allows(\"core.kontext_answer_library\", \"manage\"),\n})\n","<script lang=\"ts\">\n  import AnswerSyncJobsTable from \"../../../../../../_shared/_modules/answer-sync-jobs-table\"\n\n  const {\n    organizationId,\n    projectId = null,\n    groupId,\n  }: {\n    organizationId: string\n    projectId?: string | null\n    groupId: string\n  } = $props()\n</script>\n\n<div data-testid=\"indexAdmin.answers.jobs\">\n    <AnswerSyncJobsTable {organizationId} {projectId} {groupId} />\n</div>\n","<script lang=\"ts\">\n  import { onDestroy, onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { clearOverlays } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import type { Snippet } from \"svelte\"\n\n  const {\n    onSave,\n    initialTitle = \"\",\n    initialAnswer = \"\",\n    initialStatus = \"active\",\n    onshowOverlay = null,\n    setActionButtonSnippet = null,\n  }: {\n    onSave?: (payload: {\n      title: string\n      answer: string\n      status: \"active\" | \"inactive\"\n    }) => Promise<void>\n    initialTitle?: string\n    initialAnswer?: string\n    initialStatus?: \"active\" | \"inactive\"\n    onshowOverlay?: () => void\n    setActionButtonSnippet?: (snippet: Snippet | null) => void\n  } = $props()\n\n  let title = $state(\"\")\n  let answer = $state(\"\")\n  let status = $state<\"active\" | \"inactive\">(\"active\")\n  let error = $state<string | null>(null)\n  let saving = $state(false)\n  const maxTitleLength = 255\n  const maxAnswerLength = 20000\n\n  const statusOptions = [\n    { label: \"Aktiv (wird synchronisiert)\", value: \"active\" },\n    { label: \"Inaktiv (wartet auf Freigabe)\", value: \"inactive\" },\n  ]\n\n  const handleSubmit = async () => {\n    if (!onSave) return\n\n    error = null\n\n    if (!title.trim()) {\n      error = \"Bitte einen Fragetitel angeben.\"\n\n      return\n    }\n\n    if (title.trim().length > maxTitleLength) {\n      error = `Der Fragetitel darf maximal ${maxTitleLength} Zeichen lang sein.`\n\n      return\n    }\n\n    if (!answer.trim()) {\n      error = \"Bitte eine Antwort eintragen.\"\n\n      return\n    }\n\n    if (answer.trim().length > maxAnswerLength) {\n      error = `Die Antwort darf maximal ${maxAnswerLength} Zeichen lang sein.`\n\n      return\n    }\n\n    saving = true\n    try {\n      await onSave({ title: title.trim(), answer: answer.trim(), status })\n      clearOverlays()\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      saving = false\n    }\n  }\n\n  onMount(() => {\n    title = initialTitle\n    answer = initialAnswer\n    status = initialStatus\n    onshowOverlay?.()\n    setActionButtonSnippet?.(actionButtons)\n    const input = document.querySelector<HTMLInputElement>(\n      '[data-input-id=\"answer-question-title\"]',\n    )\n    input?.focus()\n  })\n\n  onDestroy(() => {\n    setActionButtonSnippet?.(null)\n  })\n</script>\n\n<div class=\"overlay form\" data-testid=\"indexAdmin.answers.questionOverlay\">\n    <div class=\"row\">\n        <Input\n      id=\"answer-question-title\"\n      placeholder=\"Frage\"\n      autocomplete=\"off\"\n      bind:value={title}\n      required\n      dataTestid=\"indexAdmin.answers.questionOverlay.titleInput\"\n    />\n        <Input\n      type=\"select\"\n      placeholder=\"Status\"\n      bind:value={status}\n      options={statusOptions}\n      selectedOptionIndex={statusOptions.findIndex((o) => o.value === status)}\n      dataTestid=\"indexAdmin.answers.questionOverlay.statusInput\"\n    />\n    </div>\n    <div class=\"row\">\n        <Input\n      type=\"textarea\"\n      placeholder=\"Antwort\"\n      bind:value={answer}\n      required\n      dataTestid=\"indexAdmin.answers.questionOverlay.answerInput\"\n    />\n    </div>\n\n    {#if error}\n        <p class=\"error\">{error}</p>\n    {/if}\n</div>\n\n{#snippet actionButtons()}\n    <CTA\n    type=\"primaryButton\"\n    content={saving ? \"Speichern…\" : \"Speichern\"}\n    onClick={handleSubmit}\n    disabled={saving}\n    dataTestid=\"indexAdmin.answers.questionOverlay.submitButton\"\n  />\n{/snippet}\n\n<style lang=\"less\">\n  .overlay {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-invers-100);\n  }\n\n  .error {\n    color: var(--danger-100);\n    margin: 0;\n  }\n</style>\n","import type { QuestionRow } from \"./types\"\n\nexport const formatQuestionDate = (value?: string | null) => {\n  if (!value) return \"–\"\n\n  try {\n    return new Date(value).toLocaleString()\n  } catch {\n    return value\n  }\n}\n\nexport const escapeAttributeValue = (value: string) =>\n  value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"')\n\nexport const findRouteQuestion = (questionId: string | null, questions: QuestionRow[]) => {\n  if (!questionId) return null\n\n  return questions.find((entry) => entry.id === questionId) ?? null\n}\n","import {\n  mdiAlertCircleOutline,\n  mdiCheckBold,\n  mdiClockOutline,\n  mdiCloseCircleOutline,\n  mdiFileQuestionOutline,\n  mdiSync,\n  mdiTimerSand,\n} from \"@mdi/js\"\n\nimport type { AnswerQuestion } from \"../../../../../_shared/_logic/answers\"\nimport type { AnswerLibraryTableTagPresentation } from \"../../../../../_shared/_logic/answer-library-table-tags\"\nimport { formatTimestamp } from \"../../../../../../_shared/_logic/metrics-utils\"\nimport {\n  buildRichTooltip,\n  safeTooltipField,\n  safeTooltipText,\n  tooltipTitle,\n} from \"../../../../../../_shared/_logic/rich-tooltips\"\n\ntype QuestionSyncStatus = NonNullable<AnswerQuestion[\"syncStatus\"]>\n\nconst normalizeText = (value: string | null | undefined, fallback: string): string => {\n  const trimmed = (value ?? \"\").replace(/\\s+/g, \" \").trim()\n\n  return trimmed || fallback\n}\n\nconst truncate = (value: string, maxLength: number): string =>\n  value.length > maxLength ? `${value.slice(0, Math.max(0, maxLength - 1)).trimEnd()}…` : value\n\nconst timestampValue = (value: string | null | undefined): number => {\n  if (!value) return 0\n\n  const parsed = new Date(value).getTime()\n\n  return Number.isFinite(parsed) ? parsed : 0\n}\n\nconst syncStatusRank: Record<QuestionSyncStatus, number> = {\n  failed: 0,\n  pending: 1,\n  syncing: 2,\n  skipped: 3,\n  success: 4,\n}\n\nconst syncStatusPresentation: Record<\n  QuestionSyncStatus,\n  Pick<AnswerLibraryTableTagPresentation, \"label\" | \"color\" | \"icon\">\n> = {\n  pending: { label: \"Ausstehend\", color: \"amber\", icon: mdiClockOutline },\n  syncing: { label: \"Sync läuft\", color: \"blue\", icon: mdiSync },\n  skipped: { label: \"Wartet\", color: \"amber\", icon: mdiTimerSand },\n  success: { label: \"Erledigt\", color: \"emerald\", icon: mdiCheckBold },\n  failed: { label: \"Fehlgeschlagen\", color: \"rose\", icon: mdiCloseCircleOutline },\n}\n\nexport const buildQuestionIdentityTag = (\n  question: AnswerQuestion,\n): AnswerLibraryTableTagPresentation => {\n  const label = normalizeText(question.title, \"Unbenannte Frage\")\n  const answer = normalizeText(question.answer, \"\")\n  const syncId = normalizeText(question.syncId, \"\")\n  const subLabel = answer\n    ? truncate(answer, 72)\n    : syncId\n      ? `Sync-ID ${truncate(syncId, 36)}`\n      : \"ohne Antworttext\"\n\n  return {\n    id: \"question\",\n    label,\n    subLabel,\n    color: \"cyan\",\n    icon: mdiFileQuestionOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Frage\"),\n      safeTooltipField(\"Titel\", label),\n      safeTooltipText(answer),\n      safeTooltipField(\"Sync-ID\", syncId),\n    ),\n    searchText: [label, answer, syncId].join(\" \"),\n    sortValue: label.toLowerCase(),\n  }\n}\n\nexport const buildQuestionPublicationTag = (\n  question: AnswerQuestion,\n): AnswerLibraryTableTagPresentation => {\n  const active = question.status !== \"inactive\"\n  const label = active ? \"Aktiv\" : \"Inaktiv\"\n  const updatedLabel = formatTimestamp(question.updatedAt)\n\n  return {\n    id: \"publication\",\n    label,\n    subLabel: updatedLabel === \"–\" ? \"ohne Update-Zeit\" : `aktualisiert ${updatedLabel}`,\n    color: active ? \"emerald\" : \"rose\",\n    icon: active ? mdiCheckBold : mdiCloseCircleOutline,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Freigabe\"),\n      safeTooltipField(\"Status\", label),\n      safeTooltipField(\"Aktualisiert\", updatedLabel),\n      safeTooltipField(\"Erstellt\", formatTimestamp(question.createdAt)),\n    ),\n    searchText: [label, updatedLabel].join(\" \"),\n    sortValue: `${active ? 0 : 1}:${timestampValue(question.updatedAt)}`,\n  }\n}\n\nexport const buildQuestionSyncTag = (\n  question: AnswerQuestion,\n): AnswerLibraryTableTagPresentation => {\n  const status = question.syncStatus ?? \"pending\"\n  const presentation = syncStatusPresentation[status]\n  const lastSyncLabel = formatTimestamp(question.lastSyncAt)\n  const nextSyncLabel = formatTimestamp(question.nextSyncAt)\n  const retryCount = Math.max(0, Number(question.retryCount ?? 0))\n  const subLabel =\n    status === \"success\" && lastSyncLabel !== \"–\"\n      ? `zuletzt ${lastSyncLabel}`\n      : status === \"failed\" && retryCount > 0\n        ? `${retryCount} Versuch${retryCount === 1 ? \"\" : \"e\"}`\n        : nextSyncLabel !== \"–\"\n          ? `nächster Versuch ${nextSyncLabel}`\n          : lastSyncLabel !== \"–\"\n            ? `zuletzt ${lastSyncLabel}`\n            : \"noch nicht synchronisiert\"\n\n  return {\n    id: \"sync\",\n    label: presentation.label,\n    subLabel,\n    color: presentation.color,\n    icon: presentation.icon,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Indexlauf\"),\n      safeTooltipField(\"Status\", presentation.label),\n      safeTooltipField(\"Letzter Sync\", lastSyncLabel),\n      safeTooltipField(\"Nächster Versuch\", nextSyncLabel),\n      safeTooltipField(\"Retries\", retryCount),\n      safeTooltipField(\"Letzter Fehler\", question.lastError),\n    ),\n    searchText: [presentation.label, subLabel, question.lastError ?? \"\"].join(\" \"),\n    sortValue: `${syncStatusRank[status]}:${timestampValue(question.lastSyncAt || question.nextSyncAt)}`,\n  }\n}\n\nexport const buildQuestionSearchText = (tags: AnswerLibraryTableTagPresentation[]): string =>\n  tags\n    .map((tag) => tag.searchText)\n    .join(\" \")\n    .toLowerCase()\n","import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\nimport type { AnswerQuestion } from \"../../../../../_shared/_logic/answers\"\nimport type { QuestionRow } from \"../_shared/_logic/contract\"\nimport {\n  buildQuestionIdentityTag,\n  buildQuestionPublicationTag,\n  buildQuestionSearchText,\n  buildQuestionSyncTag,\n} from \"./tags\"\n\nexport const questionColumns: ColumnDef[] = [\n  {\n    id: \"title\",\n    label: \"Frage\",\n    tooltip: \"Frage, Antwortauszug und Sync-ID.\",\n    isPrimary: true,\n    sortable: true,\n    sortKey: \"title\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as QuestionRow).questionSortValue,\n  },\n  {\n    id: \"status\",\n    label: \"Freigabe\",\n    tooltip: \"Ob diese Frage aktiv in die Antwortbibliothek übernommen wird.\",\n    sortable: true,\n    sortKey: \"status\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as QuestionRow).publicationSortValue,\n  },\n  {\n    id: \"syncStatus\",\n    label: \"Indexlauf\",\n    tooltip: \"Aktueller Synchronisationszustand dieses FAQ-Eintrags.\",\n    sortable: true,\n    sortKey: \"syncStatus\",\n    sortType: \"text\",\n    getSortValue: (row) => (row as QuestionRow).syncSortValue,\n  },\n]\n\nexport const buildQuestionRow = (question: AnswerQuestion): QuestionRow => {\n  const questionTag = buildQuestionIdentityTag(question)\n  const publicationTag = buildQuestionPublicationTag(question)\n  const syncTag = buildQuestionSyncTag(question)\n\n  return {\n    ...question,\n    id: question.id,\n    questionTag,\n    publicationTag,\n    syncTag,\n    searchableText: buildQuestionSearchText([questionTag, publicationTag, syncTag]),\n    questionSortValue: String(questionTag.sortValue ?? \"\"),\n    publicationSortValue: String(publicationTag.sortValue ?? \"\"),\n    syncSortValue: String(syncTag.sortValue ?? \"\"),\n  }\n}\n\nexport const buildQuestionRows = (questions: AnswerQuestion[]): QuestionRow[] =>\n  questions.map(buildQuestionRow)\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import AnswerLibraryTableTag from \"../../../../../../_shared/_modules/answer-library-table-tag\"\n  import type { QuestionRow } from \"../../_shared/_logic/contract\"\n\n  type Props = {\n    row: QuestionRow\n    column: ColumnDef\n    highlightedQuestionId?: string | null\n  }\n\n  const { row, column, highlightedQuestionId = null }: Props = $props()\n  const fallbackValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"title\"}\n    <span\n    class=\"question-tag\"\n    class:question-tag--highlight={row.id === highlightedQuestionId}\n    data-answer-question-id={row.id}\n    data-testid={`indexAdmin.answers.questions.title.${row.id}`}\n  >\n        <AnswerLibraryTableTag tag={row.questionTag} />\n    </span>\n{:else if column.id === \"status\"}\n    <AnswerLibraryTableTag tag={row.publicationTag} />\n{:else if column.id === \"syncStatus\"}\n    <AnswerLibraryTableTag tag={row.syncTag} />\n{:else}\n    {fallbackValue}\n{/if}\n\n<style lang=\"less\">\n  .question-tag {\n    display: inline-flex;\n    max-width: 100%;\n    border-radius: 0.35rem;\n    transition: background-color 0.2s ease;\n  }\n\n  .question-tag--highlight {\n    background-color: rgba(59, 130, 246, 0.15);\n  }\n</style>\n","<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import { onMount } from \"svelte\"\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import ToggleCTA from \"@kontextwerk/web-sdk/ui/actions/ToggleCTA.svelte\"\n  import Table, { type TableGetRows } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import { getSortedTablePage } from \"@kontextwerk/web-sdk/core/layout/tableSort\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import Icon from \"@kontextwerk/web-sdk/ui/primitives/Icon.svelte\"\n  import { mdiPlus, mdiTrashCanOutline, mdiRefresh, mdiCheckBold, mdiPen } from \"@mdi/js\"\n  import { openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n  import { runConfirmedDestructiveAction } from \"../../../../../confirmed-destructive-action\"\n\n  import {\n    fetchAnswerGroups,\n    fetchAnswerQuestions,\n    createAnswerQuestion,\n    updateAnswerQuestion,\n    deleteAnswerQuestion,\n    retryAnswerQuestionSync,\n  } from \"../../../../_shared/_logic/answers\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import AnswerQuestionOverlay from \"./_modules/answer-question-overlay\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import {\n    addOptimisticAnswerSync,\n    removeOptimisticAnswerSync,\n  } from \"../../../../../_shared/_logic/optimistic-sync-state\"\n  import { indexActionTooltip } from \"../../../../../_shared/_logic/index-action-tooltips\"\n  import { escapeAttributeValue, findRouteQuestion } from \"./_logic/questions\"\n  import type { FilterDisplayMode, QuestionRow } from \"./_logic/types\"\n  import { buildQuestionRow, buildQuestionRows, questionColumns } from \"./_logic/tableModel\"\n  import QuestionTableCell from \"./_modules/question-table-cell\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    groupId,\n    canManage = true,\n  }: {\n    projectId?: string | null\n    organizationId?: string | null\n    groupId: string\n    canManage?: boolean\n  } = $props()\n\n  let groupName = $state<string | null>(null)\n  let groupProjectId = $state<string | null>(null)\n  let questions = $state<QuestionRow[]>([])\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let autoOpenedQuestionId = $state<string | null>(null)\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  let filterMode = $state<FilterDisplayMode>(\"compact\")\n  let searchDraft = $state(\"\")\n  let contentSearchDraft = $state(\"\")\n  let statusFilter = $state<Array<\"active\" | \"inactive\">>([\"active\", \"inactive\"])\n  const filterModeOptions = [\n    { value: \"compact\", label: \"Kompakt\" },\n    { value: \"detailed\", label: \"Ausführlich\" },\n  ]\n  const statusOptions = [\n    { name: \"Aktiv\", value: \"active\" },\n    { name: \"Inaktiv\", value: \"inactive\" },\n  ]\n  const filteredQuestions = $derived.by(() => {\n    const search = searchDraft.trim().toLowerCase()\n    const contentSearch = contentSearchDraft.trim().toLowerCase()\n    const statusSet = new Set(statusFilter)\n\n    return questions.filter((question) => {\n      if (filterMode === \"detailed\" && statusSet.size && !statusSet.has(question.status))\n        return false\n\n      if (search) {\n        if (!question.searchableText.includes(search)) return false\n      }\n\n      if (filterMode === \"detailed\" && contentSearch) {\n        const answer = `${question.answer ?? \"\"}`.toLowerCase()\n\n        if (!answer.includes(contentSearch)) return false\n      }\n\n      return true\n    })\n  })\n  const titleWithCount = $derived.by(\n    () => `${groupName ?? \"Gruppe\"} (${numberFormatter.format(filteredQuestions.length)})`,\n  )\n  const questionsRefreshKey = $derived(\n    `${filterMode}|${searchDraft.trim().toLowerCase()}|${contentSearchDraft.trim().toLowerCase()}|${statusFilter.join(\",\")}|${filteredQuestions.map((entry) => `${entry.id}:${entry.status}:${entry.syncStatus ?? \"\"}:${entry.lastSyncAt ?? \"\"}:${entry.nextSyncAt ?? \"\"}:${entry.retryCount ?? 0}:${entry.updatedAt ?? \"\"}`).join(\"|\")}`,\n  )\n  let syncingId = $state<string | null>(null)\n  let activatingId = $state<string | null>(null)\n  let highlightedQuestionId = $state<string | null>(null)\n\n  const loadGroup = async () => {\n    if (!organizationId) return\n\n    try {\n      const list = await fetchAnswerGroups({ organizationId })\n      const match = list.find((g) => g.id === groupId)\n\n      if (match) {\n        groupName = match.name\n        groupProjectId = match.projectId\n      } else {\n        groupName = \"Unbekannte Gruppe\"\n        groupProjectId = projectId\n      }\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    }\n  }\n\n  const loadQuestions = async () => {\n    if (!organizationId) return\n\n    loading = true\n    error = null\n    try {\n      const items = await fetchAnswerQuestions(groupId, { organizationId })\n      questions = buildQuestionRows(items)\n      autoOpenRouteQuestion(questions)\n      const firstProjectId = items.find((item) => item.projectId)?.projectId ?? null\n\n      if (!groupProjectId && firstProjectId) {\n        groupProjectId = firstProjectId\n      }\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      loading = false\n    }\n  }\n\n  onMount(() => {\n    if (!organizationId) return\n\n    void loadGroup()\n    void loadQuestions()\n  })\n\n  const routeQuestionId = $derived.by(() => {\n    try {\n      return new URLSearchParams(($location.search || \"\").replace(/^\\?/, \"\")).get(\"question\")\n    } catch {\n      return null\n    }\n  })\n\n  const scrollToQuestion = (questionId: string) => {\n    if (typeof document === \"undefined\") return\n\n    requestAnimationFrame(() => {\n      const selector = `[data-answer-question-id=\"${escapeAttributeValue(questionId)}\"]`\n      const target = document.querySelector<HTMLElement>(selector)\n\n      if (!target) return\n\n      target.scrollIntoView({ behavior: \"smooth\", block: \"center\" })\n    })\n  }\n\n  function autoOpenRouteQuestion(questionList: QuestionRow[] = questions) {\n    const target = routeQuestionId\n\n    if (!target) return\n\n    if (autoOpenedQuestionId === target) return\n\n    const match = findRouteQuestion(target, questionList)\n\n    if (!match) return\n\n    autoOpenedQuestionId = target\n    highlightedQuestionId = target\n    scrollToQuestion(target)\n  }\n\n  const resolveProjectId = (row?: QuestionRow | null): string | null => {\n    const candidates = [row?.projectId, groupProjectId, projectId]\n    for (const candidate of candidates) {\n      const normalized = (candidate ?? \"\").trim()\n\n      if (normalized) return normalized\n    }\n\n    return null\n  }\n\n  const getRows: TableGetRows = ({ limit, offset, sort }) =>\n    getSortedTablePage({\n      rows: filteredQuestions,\n      columns: questionColumns,\n      sort,\n      limit,\n      offset,\n    })\n\n  const handleRetry = async (row: QuestionRow) => {\n    if (!canManage) return\n\n    const targetProjectId = resolveProjectId(row)\n    syncingId = row.id\n    try {\n      const refreshed = await retryAnswerQuestionSync(targetProjectId, groupId, row.id, {\n        organizationId,\n      })\n      questions = questions.map((item) =>\n        item.id === refreshed.id ? buildQuestionRow(refreshed) : item,\n      )\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      syncingId = null\n    }\n  }\n\n  const handleActivate = async (row: QuestionRow) => {\n    if (!canManage) return\n\n    const targetProjectId = resolveProjectId(row)\n\n    if (row.status === \"active\") return\n\n    activatingId = row.id\n    try {\n      const updated = await updateAnswerQuestion(\n        targetProjectId,\n        groupId,\n        row.id,\n        { status: \"active\" },\n        { organizationId },\n      )\n      questions = questions.map((item) =>\n        item.id === updated.id ? buildQuestionRow(updated) : item,\n      )\n      newNotification({ class: \"success\", html: \"Eintrag wurde aktiviert.\" })\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n      notifyApiError(err, {\n        fallback: \"Eintrag konnte nicht aktiviert werden.\",\n        includeRequestId: true,\n      })\n    } finally {\n      activatingId = null\n    }\n  }\n\n  const handleCreate = () => {\n    if (!canManage) return\n\n    const targetProjectId = resolveProjectId()\n    openOverlay({\n      title: \"Frage hinzufügen\",\n      content: AnswerQuestionOverlay,\n      properties: {\n        onSave: async ({\n          title,\n          answer,\n          status,\n        }: {\n          title: string\n          answer: string\n          status: \"active\" | \"inactive\"\n        }) => {\n          const optimisticId = addOptimisticAnswerSync({\n            projectId: targetProjectId,\n            realizationId: null,\n            groupId,\n            groupName,\n            title,\n          })\n          try {\n            const created = await createAnswerQuestion(\n              targetProjectId,\n              groupId,\n              { title, answer, status },\n              { organizationId },\n            )\n            removeOptimisticAnswerSync(optimisticId)\n            questions = [...questions, buildQuestionRow(created)]\n          } catch (error) {\n            removeOptimisticAnswerSync(optimisticId)\n            throw error\n          }\n        },\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const handleEdit = (row: QuestionRow) => {\n    if (!canManage) return\n\n    const targetProjectId = resolveProjectId(row)\n    openOverlay({\n      title: \"Frage bearbeiten\",\n      content: AnswerQuestionOverlay,\n      properties: {\n        initialTitle: row.title,\n        initialAnswer: row.answer,\n        initialStatus: row.status,\n        onSave: async ({\n          title,\n          answer,\n          status,\n        }: {\n          title: string\n          answer: string\n          status: \"active\" | \"inactive\"\n        }) => {\n          const updated = await updateAnswerQuestion(\n            targetProjectId,\n            groupId,\n            row.id,\n            {\n              title,\n              answer,\n              status,\n            },\n            { organizationId },\n          )\n          questions = questions.map((item) =>\n            item.id === updated.id ? buildQuestionRow(updated) : item,\n          )\n        },\n      },\n      closeOnParentOpen: true,\n    })\n  }\n\n  const handleDelete = async (row: QuestionRow) => {\n    if (!canManage) return\n\n    const targetProjectId = resolveProjectId(row)\n    try {\n      await runConfirmedDestructiveAction(\n        {\n          approval: {\n            title: \"Frage löschen\",\n            description: \"Diese Frage wirklich löschen?\",\n            approvalLabel: \"Ja, löschen\",\n            declineLabel: \"Abbrechen\",\n          },\n          reauth: {\n            title: \"Frage löschen\",\n            description:\n              \"Bitte bestätigen Sie das Löschen dieser Frage mit Ihrem aktuellen Passwort.\",\n            actionLabel: \"Frage löschen\",\n          },\n        },\n        async () => {\n          await deleteAnswerQuestion(targetProjectId, groupId, row.id, { organizationId })\n          questions = questions.filter((item) => item.id !== row.id)\n        },\n      )\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n    }\n  }\n</script>\n\n<div class=\"answer-group-detail\" data-testid=\"indexAdmin.answers.groupDetail\">\n  <SectionTitle\n    brightBackground={true}\n    title={titleWithCount}\n    styleOuter=\"margin-bottom: 1.2rem;\"\n    helpModalTextId=\"indexAdminAnswerGroupQuestions\"\n  >\n    {#snippet buttonSnippet()}\n      <ToggleCTA\n        options={filterModeOptions}\n        value={filterMode}\n        darkMode={false}\n        dataTestid=\"indexAdmin.answers.questions.filterMode\"\n        onChange={(value) => {\n          const next = `${value ?? filterMode}`.toLowerCase()\n          filterMode = next === \"detailed\" ? \"detailed\" : \"compact\"\n        }}\n      />\n      {#if canManage}\n        <CTA\n          type=\"primaryButton\"\n          content=\"Frage hinzufügen\"\n          tooltipContent={indexActionTooltip(\"answer-add\")}\n          onClick={handleCreate}\n          dataTestid=\"indexAdmin.answers.questions.createButton\"\n        >\n          {#snippet iconSnippet()}\n            <Icon path={mdiPlus} size=\"1rem\" />\n          {/snippet}\n        </CTA>\n      {/if}\n    {/snippet}\n  </SectionTitle>\n  <div class=\"form\">\n    <div class=\"row\">\n      <Input\n        type=\"text\"\n        placeholder=\"Suche (Frage, Antwort, Sync-ID)\"\n        bind:value={searchDraft}\n        brightBackground={true}\n        tooltip=\"Durchsucht Frage, Antwort, Sync-ID, Freigabe und Indexlauf.\"\n        dataTestid=\"indexAdmin.answers.questions.searchInput\"\n      />\n      {#if filterMode === \"detailed\"}\n        <Input\n          type=\"select\"\n          placeholder=\"Status\"\n          multiple={true}\n          bind:value={statusFilter}\n          options={statusOptions}\n          brightBackground={true}\n          tooltip=\"Filtert nach aktiv/inaktiv.\"\n          dataTestid=\"indexAdmin.answers.questions.statusFilter\"\n        />\n        <Input\n          type=\"text\"\n          placeholder=\"Inhaltsuche (Antwort)\"\n          bind:value={contentSearchDraft}\n          brightBackground={true}\n          tooltip=\"Durchsucht den Antwortinhalt der Einträge.\"\n          dataTestid=\"indexAdmin.answers.questions.answerSearchInput\"\n        />\n      {/if}\n    </div>\n  </div>\n  {#if error}\n    <p class=\"muted\">{error}</p>\n  {/if}\n  <div data-testid=\"indexAdmin.answers.questions.table\">\n    <Table\n      rowActions={{\n        resolve: (row, rowIndex) =>\n          buildTableRowActionSet(\n            ((row) => {\n              const actions: import(\"@kontextwerk/web-sdk/core/layout/table\").TableRowAction[] = []\n\n              if (canManage) {\n                if ((row as QuestionRow).status === \"inactive\") {\n                  actions.push({\n                    id: \"action-0\",\n                    label: \"Antwort direkt aktivieren\",\n                    onClick: () => handleActivate(row as QuestionRow),\n                    icon: mdiCheckBold,\n                    disabled: activatingId === (row as QuestionRow).id,\n                    tooltip: indexActionTooltip(\"answer-activate\"),\n                    testId: `indexAdmin.answers.questions.activateButton.${(row as QuestionRow).id}`,\n                  })\n                }\n\n                actions.push({\n                  id: \"action-1\",\n                  label: \"Antwort bearbeiten\",\n                  onClick: () => handleEdit(row as QuestionRow),\n                  icon: mdiPen,\n                  tooltip: indexActionTooltip(\"answer-edit\"),\n                  testId: `indexAdmin.answers.questions.editButton.${(row as QuestionRow).id}`,\n                })\n\n                actions.push({\n                  id: \"action-2\",\n                  label: \"Synchronisation erneut versuchen\",\n                  onClick: () => handleRetry(row as QuestionRow),\n                  icon: mdiRefresh,\n                  disabled:\n                    syncingId === (row as QuestionRow).id ||\n                    (row as QuestionRow).syncStatus === \"skipped\",\n                  tooltip: indexActionTooltip(\"answer-retry\"),\n                  testId: `indexAdmin.answers.questions.retryButton.${(row as QuestionRow).id}`,\n                })\n\n                actions.push({\n                  id: \"action-3\",\n                  label: \"Antwort löschen\",\n                  onClick: () => handleDelete(row as QuestionRow),\n                  icon: mdiTrashCanOutline,\n                  tooltip: indexActionTooltip(\"answer-delete\"),\n                  testId: `indexAdmin.answers.questions.deleteButton.${(row as QuestionRow).id}`,\n                  tone: \"danger\",\n                })\n              }\n\n              return actions\n            })(row) ?? [],\n            { primaryId: \"action-1\", inlineIds: [\"action-0\", \"action-2\"] },\n          ),\n      }}\n      columns={questionColumns}\n      {getRows}\n      pageSize={200}\n      mode=\"auto\"\n      theme=\"light\"\n      showActions={true}\n      actionsHeaderLabel=\"Aktionen\"\n      showPrimaryButton={false}\n      refreshKey={questionsRefreshKey}\n      urlStateId={`index-answer-group-detail-${groupId}`}\n      {loading}\n    >\n      {#snippet tableCell({ row, column })}\n        <QuestionTableCell row={row as QuestionRow} {column} {highlightedQuestionId} />\n      {/snippet}\n\n      {#snippet empty()}\n        <div class=\"muted\">Noch keine Fragen in dieser Gruppe.</div>\n      {/snippet}\n    </Table>\n  </div>\n</div>\n\n<style lang=\"less\">\n  .answer-group-detail {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .actions {\n    display: flex;\n    gap: 0.25rem;\n  }\n  .muted {\n    color: var(--text-400);\n  }\n</style>\n","<script lang=\"ts\">\n  import AnswerGroupDetailPage from \"../../../AnswerGroupDetail\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    groupId,\n    canManage = true,\n  }: {\n    projectId?: string | null\n    organizationId?: string | null\n    groupId: string\n    canManage?: boolean\n  } = $props()\n</script>\n\n<div data-testid=\"indexAdmin.answers.questions\">\n    <AnswerGroupDetailPage {projectId} {organizationId} {groupId} {canManage} />\n</div>\n","import type { AnswerGroupPageView } from \"./types\"\n\nexport const normalizeAnswerGroupView = (value?: string | null): AnswerGroupPageView =>\n  value === \"jobs\" ? \"jobs\" : \"questions\"\n","<script lang=\"ts\">\n  import JobsTab from \"./tabs/Jobs\"\n  import QuestionsTab from \"./tabs/Questions\"\n  import { normalizeAnswerGroupView } from \"./_logic/tabIds\"\n  import type { AnswerGroupPageProps } from \"./_logic/types\"\n\n  const {\n    projectId = null,\n    organizationId = null,\n    groupId,\n    canManage = true,\n    activeTab = \"questions\",\n  }: AnswerGroupPageProps = $props()\n\n  const normalizedView = $derived(normalizeAnswerGroupView(activeTab))\n</script>\n\n{#if normalizedView === \"jobs\" && organizationId}\n    <JobsTab {organizationId} {projectId} {groupId} />\n{:else}\n    <QuestionsTab {projectId} {organizationId} {groupId} {canManage} />\n{/if}\n","import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nexport const getTabs = (): PageTabWithId[] => [\n  { id: \"questions\", title: \"Fragen\", testId: \"indexAdmin.answersView.tab.questions\" },\n  { id: \"jobs\", title: \"Synchronisationsjobs\", testId: \"indexAdmin.answersView.tab.jobs\" },\n]\n","import type { AnswerGroup } from \"../../../_shared/_logic/answers\"\n\nexport const resolveAnswerLibraryAutomationTarget = (snapshot: {\n  answersBasePath: string | null\n  routeGroupId: string | null\n  groups: AnswerGroup[]\n}): string | null => {\n  if (!snapshot.answersBasePath || !snapshot.groups.length) return null\n\n  const resolvedGroupId =\n    snapshot.routeGroupId && snapshot.groups.some((group) => group.id === snapshot.routeGroupId)\n      ? snapshot.routeGroupId\n      : (snapshot.groups[0]?.id ?? null)\n\n  if (!resolvedGroupId || resolvedGroupId === snapshot.routeGroupId) return null\n\n  return `${snapshot.answersBasePath}/${encodeURIComponent(resolvedGroupId)}`\n}\n","import { mdiChatQuestion } from \"@mdi/js\"\nimport type { RecordDetailHeaderPresentation } from \"@kontextwerk/web-sdk/ui/layout/recordDetail/types\"\n\nimport type { AnswerGroup } from \"../../../_shared/_logic/answers\"\n\nexport const answerGroupRecordIcon = mdiChatQuestion\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nexport const buildAnswerGroupRecordHeader = (\n  group: Pick<AnswerGroup, \"groupType\" | \"questionCount\" | \"activeCount\" | \"syncedCount\">,\n): RecordDetailHeaderPresentation => {\n  const fields: RecordDetailHeaderPresentation[\"fields\"] = []\n  const groupType = group.groupType?.trim()\n\n  if (groupType) {\n    fields.push({\n      id: \"group-type\",\n      label: \"Gruppentyp\",\n      value: groupType.toLowerCase() === \"default\" ? \"Default\" : groupType,\n    })\n  }\n\n  const counts = [\n    { id: \"questions\", label: \"Fragen\", count: group.questionCount },\n    { id: \"active-questions\", label: \"Aktiv\", count: group.activeCount },\n    { id: \"synced-questions\", label: \"Synchronisiert\", count: group.syncedCount },\n  ]\n\n  for (const { id, label, count } of counts) {\n    if (Number.isFinite(count) && count >= 0) {\n      fields.push({ id, label, value: numberFormatter.format(count) })\n    }\n  }\n\n  return { icon: answerGroupRecordIcon, fields }\n}\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import { mdiChatQuestion } from \"@mdi/js\"\n\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../_shared/_logic/organization-navigation\"\n  import { activeOrganization } from \"../../../_shared/_logic/organization\"\n  import { fetchAnswerGroups, type AnswerGroup } from \"../../_shared/_logic/answers\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import AnswerGroupPage from \"./pages/AnswerGroup\"\n  import { getTabs as getAnswerGroupTabs } from \"./pages/AnswerGroup/navigation\"\n  import EntityCollectionViewFrame from \"../../../_shared/_modules/entity-collection-view-frame\"\n  import type {\n    EntityCollectionFrameDefinition,\n    EntityCollectionViewFrameContext,\n  } from \"../../../_shared/_logic/entity-collection-contracts\"\n  import { resolveAnswerLibraryAutomationTarget } from \"./_logic/automation\"\n  import { answerGroupRecordIcon, buildAnswerGroupRecordHeader } from \"./_logic/recordHeader\"\n  import { getIndexAdminAuthContext } from \"../../../_shared/_logic/auth-context\"\n\n  const {\n    organizationId: providedOrganizationId = null,\n  }: {\n    organizationId?: string | null\n  } = $props()\n\n  const projectId = $derived<string | null>(null)\n  const organizationId = $derived(providedOrganizationId ?? $activeOrganization?.id ?? null)\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n\n  let groups = $state<AnswerGroup[]>([])\n  let groupsLoading = $state(false)\n  let groupsError = $state<string | null>(null)\n  let requestId = 0\n\n  const answersBasePath = $derived(buildCurrentProjectPath({ suffix: \"/answers\" }))\n  const resolvedBackLink = $derived(answersBasePath ?? \"\")\n\n  const routeGroupId = $derived.by(() => {\n    const path = $location.path || \"\"\n    const segments = path.split(\"/\").filter(Boolean)\n    const idx = segments.lastIndexOf(\"answers\")\n\n    if (idx !== -1 && segments[idx + 1]) {\n      const candidate = segments[idx + 1]\n      try {\n        return decodeURIComponent(candidate)\n      } catch {\n        return candidate\n      }\n    }\n\n    return null\n  })\n\n  const buildGroupPath = (id?: string | null) =>\n    !answersBasePath ? null : id ? `${answersBasePath}/${encodeURIComponent(id)}` : answersBasePath\n\n  const frameDefinition: EntityCollectionFrameDefinition<AnswerGroup> = {\n    title: \"FAQ-Sammlung\",\n    emptyMessage: \"Für diese Organisation wurden noch keine Gruppen angelegt.\",\n    icon: mdiChatQuestion,\n    recordIcon: answerGroupRecordIcon,\n    testId: \"indexAdmin.answersView\",\n    getEntityId: (group) => group.id,\n    getEntityTitle: (group) => group.name,\n    getRecordHeader: buildAnswerGroupRecordHeader,\n    getEntityPath: (group) => buildGroupPath(group.id) ?? \"/\",\n    getEntityTestId: (group) => `indexAdmin.answersView.group.${group.id}`,\n    getTabs: (context: EntityCollectionViewFrameContext<AnswerGroup>) =>\n      context.activeEntity ? getAnswerGroupTabs() : [],\n  }\n\n  const resetGroups = () => {\n    requestId += 1\n    groups = []\n    groupsError = null\n    groupsLoading = false\n  }\n\n  const loadGroups = async () => {\n    if (!capabilities.canViewAnswerLibrary) {\n      resetGroups()\n\n      return\n    }\n\n    if (!organizationId) {\n      resetGroups()\n\n      return\n    }\n\n    const currentRequest = ++requestId\n    groupsLoading = true\n    groupsError = null\n    try {\n      const list = await fetchAnswerGroups({ organizationId })\n\n      if (currentRequest !== requestId) return\n\n      groups = list\n      const target = resolveAnswerLibraryAutomationTarget({\n        answersBasePath,\n        routeGroupId,\n        groups: list,\n      })\n\n      if (target) {\n        spaNavigate(target, { replace: true, noSearchParam: true })\n      }\n    } catch (error) {\n      if (currentRequest !== requestId) return\n\n      groups = []\n      groupsError = error instanceof Error ? error.message : String(error)\n    } finally {\n      if (currentRequest === requestId) {\n        groupsLoading = false\n      }\n    }\n  }\n\n  onMount(() => {\n    void loadGroups()\n  })\n</script>\n\n{#if capabilities.canViewAnswerLibrary}\n  <EntityCollectionViewFrame\n    definition={frameDefinition}\n    recordScopeKey={organizationId ? `organization:${organizationId}` : null}\n    entities={groups}\n    routeEntityId={routeGroupId}\n    backLink={resolvedBackLink}\n    noContextMessage={!organizationId ? \"Keine Organisation gewählt.\" : null}\n    loading={groupsLoading}\n    loadingMessage=\"Gruppen werden geladen…\"\n    error={groupsError}\n    tabContent={answerLibraryTabContent}\n  />\n{:else}\n  <AccessDeniedPage\n    title=\"FAQ-Sammlung gesperrt\"\n    statusLabel=\"Berechtigung fehlt\"\n    message=\"Du darfst die FAQ-Sammlung nicht ansehen.\"\n    hint=\"Bitte fordere die Berechtigung „FAQ-Sammlung ansehen“ an.\"\n  />\n{/if}\n\n{#snippet answerLibraryTabContent(\n  tabId: string,\n  context: EntityCollectionViewFrameContext<AnswerGroup>,\n)}\n  {@const activeGroup = context.activeEntity}\n  {#if activeGroup && tabId === \"questions\"}\n    {#key activeGroup.id}\n      <AnswerGroupPage\n        {projectId}\n        {organizationId}\n        groupId={activeGroup.id}\n        canManage={capabilities.canManageAnswerLibrary}\n        activeTab=\"questions\"\n      />\n    {/key}\n  {:else if activeGroup && organizationId && tabId === \"jobs\"}\n    {#key `${activeGroup.id}:jobs`}\n      <AnswerGroupPage\n        {projectId}\n        {organizationId}\n        groupId={activeGroup.id}\n        canManage={capabilities.canManageAnswerLibrary}\n        activeTab=\"jobs\"\n      />\n    {/key}\n  {:else}\n    <p class=\"muted\">Keine Gruppe ausgewählt.</p>\n  {/if}\n{/snippet}\n\n<style lang=\"less\">\n  .muted {\n    color: var(--text-400);\n  }\n</style>\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"answer-group\",\n  parentPageId: \"answers\",\n  parentTabTitle: \"FAQ-Sammlung\",\n} satisfies AppSubviewConfig\n","import type { PermissionState } from \"../../../../_shared/_logic/permissions\"\n\nexport type SharePointCapabilities = {\n  canViewSharePoint: boolean\n  canManageSharePoint: boolean\n}\n\nexport const buildViewCapabilities = (permissions: PermissionState): SharePointCapabilities => ({\n  canViewSharePoint: permissions.allows(\"core.kontext_sharepoint\", \"view\"),\n  canManageSharePoint: permissions.allows(\"core.kontext_sharepoint\", \"manage\"),\n})\n","<script lang=\"ts\">\n  import ActionBox from \"@kontextwerk/web-sdk/ui/layout/ActionBox.svelte\"\n\n  export type DetailFactsRow = {\n    label: string\n    value: string | number | null | undefined\n  }\n\n  const {\n    label,\n    rows = [],\n  }: {\n    label: string\n    rows?: DetailFactsRow[]\n  } = $props()\n</script>\n\n<ActionBox {label} darkMode={true}>\n    <table class=\"detail-table\">\n        <tbody>\n            {#each rows as entry (entry.label)}\n                <tr>\n                    <th scope=\"row\">{entry.label}</th>\n                    <td class=\"value-cell\">{entry.value ?? \"–\"}</td>\n                </tr>\n            {/each}\n        </tbody>\n    </table>\n</ActionBox>\n\n<style lang=\"less\">\n  .detail-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 0;\n  }\n\n  .detail-table tr + tr {\n    border-top: 1px solid color-mix(in srgb, var(--bg-300, #1f2937) 12%, transparent);\n  }\n\n  .detail-table th,\n  .detail-table td {\n    padding: 0.72rem 0;\n    vertical-align: top;\n    text-align: left;\n  }\n\n  .detail-table th {\n    width: 34%;\n    color: var(--text-invers-150);\n    font-size: 0.9rem;\n    font-weight: 500;\n  }\n\n  .detail-table td {\n    color: var(--text-invers-100);\n    word-break: break-word;\n  }\n\n  .value-cell {\n    font-size: 0.98rem;\n    line-height: 1.45;\n  }\n</style>\n","<script lang=\"ts\">\n  import Icon from \"../../../primitives/_modules/icon/index\"\n  import { tooltip } from \"../../../../core/overlay/tooltip\"\n  import { mdiInformationOutline } from \"@mdi/js\"\n\n  let {\n    totalsCards,\n  }: {\n    totalsCards: {\n      key: string\n      label: string\n      value: number | string | null\n      tooltipContent?: string | null\n    }[]\n  } = $props()\n\n  const formatValue = (value: number | string | null) => {\n    if (value === null || value === \"\") return \"—\"\n\n    if (typeof value === \"number\") return value.toLocaleString(\"de-DE\")\n\n    return value\n  }\n</script>\n\n<section class=\"totals-grid\">\n  {#each totalsCards as card (card.key)}\n    <div class=\"totals-card\">\n      <div class=\"totals-card__label\">{card.label}</div>\n      <div class=\"totals-card__value-group\">\n        <div class=\"totals-card__value\">{formatValue(card.value)}</div>\n        {#if card.tooltipContent}\n          <button\n            type=\"button\"\n            class=\"totals-card__info\"\n            aria-label={`${card.label} Details anzeigen`}\n            use:tooltip={{ content: card.tooltipContent }}\n          >\n            <Icon path={mdiInformationOutline} size=\"0.95rem\" />\n          </button>\n        {/if}\n      </div>\n    </div>\n  {/each}\n</section>\n\n<style lang=\"less\">\n  .totals-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n    gap: 0.75rem;\n    margin-top: 0.6rem;\n  }\n\n  .totals-card {\n    padding: 4px 8px;\n    background: var(--bg-100);\n    border: 1px solid rgba(255, 255, 255, 0.06);\n    display: flex;\n    justify-content: space-between;\n    align-items: baseline;\n    gap: 0.75rem;\n  }\n\n  .totals-card__label {\n    font-weight: 600;\n    color: white !important;\n  }\n\n  .totals-card__value {\n    font-size: 1.2rem;\n    font-weight: 800;\n    color: white !important;\n  }\n\n  .totals-card__value-group {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 0.45rem;\n    min-width: 0;\n  }\n\n  .totals-card__info {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    color: rgba(255, 255, 255, 0.72);\n    cursor: help;\n    flex: 0 0 auto;\n  }\n\n  .totals-card__info:hover,\n  .totals-card__info:focus-visible {\n    color: white;\n  }\n\n  .totals-card__info:focus-visible {\n    outline: 2px solid rgba(255, 255, 255, 0.9);\n    outline-offset: 2px;\n  }\n</style>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import DashboardNumberBlock from \"@kontextwerk/web-sdk/ui/analytics/sessions/components/charts/DashboardNumberBlock.svelte\"\n\n  type DashboardCard = {\n    key: string\n    label: string\n    value: string | number | null | undefined\n    tooltipContent?: string | null\n  }\n\n  const {\n    summaryCards = [],\n    bottomSummaryCards = [],\n    contentActionsSnippet,\n    contentSnippet: bodyContentSnippet,\n  }: {\n    summaryCards?: DashboardCard[]\n    bottomSummaryCards?: DashboardCard[]\n    contentActionsSnippet?: Snippet\n    contentSnippet?: Snippet\n  } = $props()\n</script>\n\n<div class=\"details-page\">\n  {#if contentActionsSnippet}\n    <div class=\"content-actions\">{@render contentActionsSnippet()}</div>\n  {/if}\n\n  {#if summaryCards.length}\n    <DashboardNumberBlock totalsCards={summaryCards} />\n  {/if}\n\n  {@render bodyContentSnippet?.()}\n\n  {#if bottomSummaryCards.length}\n    <DashboardNumberBlock totalsCards={bottomSummaryCards} />\n  {/if}\n</div>\n\n<style lang=\"less\">\n  .details-page {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    color: var(--text-invers-100);\n  }\n\n  :global(.details-page .totals-grid) {\n    margin-top: 0;\n  }\n\n  .content-actions {\n    display: flex;\n    justify-content: flex-end;\n    gap: 0.75rem;\n    flex-wrap: wrap;\n  }\n</style>\n","<script lang=\"ts\">\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { mdiRefresh } from \"@mdi/js\"\n\n  import {\n    triggerSharePointSourceSync,\n    type SharePointConnectionOption,\n    type SharePointSource,\n  } from \"../../../../../../../../_shared/_logic/sharepoint\"\n  import {\n    describeSharePointPollInterval,\n    describeSharePointScope,\n    formatSharePointFolder,\n    statusForSharePointPollInterval,\n    statusForSharePointScope,\n    statusForSharePointSource,\n  } from \"../../../../../../../../_shared/_logic/share-point-presentation\"\n  import DetailFactsCard from \"../../../../../../../../../_shared/_modules/detail-facts-card\"\n  import DetailOverviewShell from \"../../../../../../../../../_shared/_modules/detail-overview-shell\"\n  import { indexActionTooltip } from \"../../../../../../../../../_shared/_logic/index-action-tooltips\"\n\n  type Props = {\n    organizationId: string\n    projectId?: string | null\n    realizationId?: string | null\n    source: SharePointSource\n    connections?: SharePointConnectionOption[]\n    realizationOptions?: Array<{ value: string; name: string }>\n    canManage?: boolean\n    onUpdated?: (() => Promise<void>) | null\n    onDeleted?: (() => void) | null\n  }\n\n  const {\n    organizationId,\n    projectId = null,\n    realizationId = null,\n    source,\n    connections = [],\n    realizationOptions = [],\n    canManage = false,\n    onUpdated = null,\n    onDeleted = null,\n  }: Props = $props()\n\n  const sourceStatus = $derived(statusForSharePointSource(source))\n  const scopeStatus = $derived(statusForSharePointScope(source, realizationOptions))\n  const pollStatus = $derived(statusForSharePointPollInterval(source.sync.pollIntervalSeconds))\n  const dashboardCards = $derived([\n    { key: \"status\", label: \"Status\", value: sourceStatus.label ?? \"–\" },\n    { key: \"scope\", label: \"Sync-Ebene\", value: scopeStatus.label ?? \"–\" },\n    { key: \"interval\", label: \"Index-Intervall\", value: pollStatus.label ?? \"–\" },\n  ])\n  const microsoftCards = $derived([\n    {\n      key: \"site\",\n      label: \"Site\",\n      value: source.resolved.siteName?.trim() || source.target.siteUrl,\n      tooltipContent: `Site-ID: ${source.resolved.siteId}`,\n    },\n    {\n      key: \"library\",\n      label: \"Bibliothek\",\n      value: source.resolved.driveName?.trim() || source.target.libraryName,\n      tooltipContent: `Drive-ID: ${source.resolved.driveId}\\nList-ID: ${source.resolved.listId}`,\n    },\n    {\n      key: \"folder\",\n      label: \"Ordner\",\n      value: source.resolved.folderName?.trim() || formatSharePointFolder(source.target.folderPath),\n      tooltipContent: source.resolved.folderId ? `Folder-ID: ${source.resolved.folderId}` : null,\n    },\n  ])\n  const sourceRows = $derived([\n    { label: \"Site-URL\", value: source.target.siteUrl },\n    { label: \"Dokumentbibliothek\", value: source.target.libraryName },\n    { label: \"Unterordner\", value: formatSharePointFolder(source.target.folderPath) },\n  ])\n  const indexingRows = $derived([\n    { label: \"Sync-Ebene\", value: describeSharePointScope(source, realizationOptions) },\n    {\n      label: \"Index-Intervall\",\n      value: describeSharePointPollInterval(source.sync.pollIntervalSeconds),\n    },\n    { label: \"Rekursive Erfassung\", value: source.sync.recursive ? \"Ja\" : \"Nein\" },\n    { label: \"Max. Dateigröße\", value: `${source.ingest.maxFileSizeMb} MB` },\n  ])\n  let syncing = $state(false)\n\n  const handleSync = async () => {\n    if (syncing) return\n\n    syncing = true\n    try {\n      const result = await triggerSharePointSourceSync(source.sourceId)\n      newNotification({\n        class: \"success\",\n        html:\n          result.status === \"already_running\"\n            ? \"SharePoint-Sync läuft bereits.\"\n            : \"SharePoint-Sync wurde gestartet.\",\n      })\n      await onUpdated?.()\n    } catch (error) {\n      newNotification({\n        class: \"error\",\n        html: error instanceof Error ? error.message : String(error),\n      })\n    } finally {\n      syncing = false\n    }\n  }\n</script>\n\n<DetailOverviewShell\n  summaryCards={dashboardCards}\n  bottomSummaryCards={microsoftCards}\n  contentActionsSnippet={syncAction}\n  contentSnippet={detailsContent}\n/>\n\n{#snippet syncAction()}\n  {#if canManage}\n    <CTA\n      type=\"secondaryButton\"\n      content={syncing ? \"Sync läuft…\" : \"Jetzt synchronisieren\"}\n      icon={mdiRefresh}\n      tooltipContent={indexActionTooltip(\"sharepoint-sync\")}\n      disabled={syncing}\n      onClick={() => void handleSync()}\n    />\n  {/if}\n{/snippet}\n\n{#snippet detailsContent()}\n  <div class=\"card-grid\">\n    <DetailFactsCard label=\"Quelle\" rows={sourceRows} />\n    <DetailFactsCard label=\"Indexierung\" rows={indexingRows} />\n  </div>\n{/snippet}\n\n<style lang=\"less\">\n  .card-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 1rem;\n  }\n\n  @media (max-width: 900px) {\n    .card-grid {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type {\n    SharePointConnectionOption,\n    SharePointSource,\n  } from \"../../../../../../_shared/_logic/sharepoint\"\n\n  import SharePointSourceDetails from \"./_modules/share-point-source-details\"\n\n  const {\n    organizationId,\n    projectId = null,\n    realizationId = null,\n    source,\n    connections = [],\n    realizationOptions = [],\n    canManage = false,\n    onUpdated = null,\n    onDeleted = null,\n  }: {\n    organizationId: string\n    projectId?: string | null\n    realizationId?: string | null\n    source: SharePointSource\n    connections?: SharePointConnectionOption[]\n    realizationOptions?: Array<{ value: string; name: string }>\n    canManage?: boolean\n    onUpdated?: (() => Promise<void>) | null\n    onDeleted?: (() => void) | null\n  } = $props()\n</script>\n\n<SharePointSourceDetails\n  {organizationId}\n  {projectId}\n  {realizationId}\n  {source}\n  {connections}\n  {realizationOptions}\n  {canManage}\n  {onUpdated}\n  {onDeleted}\n/>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import type { PopoverMenuItem } from \"@kontextwerk/web-sdk/ui/overlay/popover/types\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { closeOverlayById, openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiPencil, mdiTrashCanOutline } from \"@mdi/js\"\n  import {\n    deleteSharePointSource,\n    updateSharePointSource,\n    type SharePointConnectionOption,\n    type SharePointSource,\n    type SharePointSourceWritePayload,\n  } from \"../../../../../../_shared/_logic/sharepoint\"\n  import SharePointSourceOverlay from \"../../../../../../_shared/_modules/share-point-source-overlay\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../confirmed-destructive-action\"\n  import { indexActionTooltip } from \"../../../../../../../_shared/_logic/index-action-tooltips\"\n\n  const {\n    organizationId,\n    projectId,\n    realizationId,\n    source,\n    connections,\n    canManage,\n    onUpdated,\n    onDeleted,\n    children,\n  }: {\n    organizationId: string\n    projectId: string | null\n    realizationId: string | null\n    /** Null until the owner has confirmed the record; no actions are offered meanwhile. */\n    source: SharePointSource | null\n    connections: SharePointConnectionOption[]\n    canManage: boolean\n    onUpdated: () => Promise<void>\n    onDeleted: () => void\n    children: Snippet<[PopoverMenuItem[]]>\n  } = $props()\n\n  const openEditOverlay = () => {\n    if (!canManage || !source) return\n\n    const selectedSource = source\n    const overlayId = openOverlay({\n      title: \"SharePoint-Quelle bearbeiten\",\n      content: SharePointSourceOverlay,\n      properties: {\n        organizationId,\n        projectId,\n        defaultRealizationId: realizationId,\n        source: selectedSource,\n        connections,\n        onClose: () => closeOverlayById(overlayId),\n        onSaved: async (payload: SharePointSourceWritePayload) => {\n          await updateSharePointSource(selectedSource.sourceId, payload)\n          newNotification({ class: \"success\", html: \"SharePoint-Quelle gespeichert.\" })\n          await onUpdated()\n\n          return true\n        },\n      },\n    })\n  }\n\n  const handleDelete = async () => {\n    if (!canManage || !source) return\n\n    const sourceId = source.sourceId\n    await runConfirmedDestructiveAction(\n      {\n        approval: {\n          title: \"SharePoint-Quelle löschen\",\n          description: \"Diese SharePoint-Quelle wirklich löschen?\",\n          approvalLabel: \"Ja, löschen\",\n          declineLabel: \"Abbrechen\",\n        },\n        reauth: {\n          title: \"SharePoint-Quelle löschen\",\n          description:\n            \"Bitte bestätigen Sie das Löschen dieser SharePoint-Quelle mit Ihrem aktuellen Passwort.\",\n          actionLabel: \"SharePoint-Quelle löschen\",\n        },\n      },\n      async () => {\n        await deleteSharePointSource(sourceId)\n        newNotification({ class: \"success\", html: \"SharePoint-Quelle gelöscht.\" })\n        onDeleted()\n      },\n    )\n  }\n\n  const actions = $derived<PopoverMenuItem[]>(\n    canManage && source\n      ? [\n          {\n            id: \"edit\",\n            label: \"Bearbeiten\",\n            icon: mdiPencil,\n            reason: indexActionTooltip(\"sharepoint-edit\"),\n            onClick: openEditOverlay,\n          },\n          {\n            id: \"delete\",\n            label: \"Löschen\",\n            icon: mdiTrashCanOutline,\n            reason: indexActionTooltip(\"sharepoint-delete\"),\n            tone: \"danger\",\n            separatorBefore: true,\n            onClick: () => void handleDelete(),\n          },\n        ]\n      : [],\n  )\n</script>\n\n{@render children(actions)}\n","<script lang=\"ts\">\n  import type {\n    TableRowAction,\n    TableRowActionsConfig,\n  } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import CTA from \"@kontextwerk/web-sdk/ui/actions/CTA.svelte\"\n  import StatusTag from \"@kontextwerk/web-sdk/ui/display/StatusTag.svelte\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import { mdiEyeOutline, mdiRefresh } from \"@mdi/js\"\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n\n  import {\n    buildSharePointSourceItemsStreamUrl,\n    fetchSharePointSourceItems,\n    retrySharePointSourceItemSync,\n    type SharePointSourceItem,\n    type SharePointSourceItemStatus,\n  } from \"../../../../../../../../_shared/_logic/sharepoint\"\n  import { openIndexedDocumentInspector } from \"../../../../../../../../../_shared/_modules/indexed-document-inspector-overlay\"\n  import type { ChunkScopeType } from \"../../../../../../../../../_shared/_logic/chunks\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import SyncStateTableShell from \"../../../../../../../../../_shared/_modules/sync-state-table-shell\"\n  import type { SyncStateTableAdapter } from \"../../../../../../../../../_shared/_logic/sync-state-contracts\"\n  import { indexActionTooltip } from \"../../../../../../../../../_shared/_logic/index-action-tooltips\"\n\n  type Props = {\n    organizationId: string\n    sourceId: string\n    projectId?: string | null\n    realizationId?: string | null\n    sourceScope?: ChunkScopeType | null\n    title?: string\n  }\n\n  type SharePointItemRow = DataRow & SharePointSourceItem\n\n  const {\n    organizationId,\n    sourceId,\n    projectId = null,\n    realizationId = null,\n    sourceScope = \"project\",\n    title = \"Bestand\",\n  }: Props = $props()\n\n  const columns: ColumnDef[] = [\n    { id: \"path\", label: \"Datei\", isPrimary: true },\n    { id: \"status\", label: \"Status\" },\n    { id: \"sizeLabel\", label: \"Größe\" },\n    { id: \"lastSyncedAtLabel\", label: \"Letzter Sync\" },\n    { id: \"lastSeenAtLabel\", label: \"Zuletzt gesehen\" },\n  ]\n\n  const statusOptions: Array<{ name: string; value: SharePointSourceItemStatus }> = [\n    { name: \"Indiziert\", value: \"indexed\" },\n    { name: \"Ausgefiltert\", value: \"filtered\" },\n    { name: \"Gelöscht\", value: \"deleted\" },\n    { name: \"Fehlgeschlagen\", value: \"failed\" },\n  ]\n\n  let error = $state<string | null>(null)\n  let loading = $state(false)\n  let totalCount = $state<number>(0)\n  let refreshTable: (() => void) | null = $state(null)\n  let searchDraft = $state(\"\")\n  let selectedStatuses = $state<SharePointSourceItemStatus[]>(\n    statusOptions.map((entry) => entry.value),\n  )\n\n  const searchTerm = $derived(searchDraft.trim())\n  const refreshKey = $derived(`${sourceId}|${searchTerm}|${selectedStatuses.join(\",\")}`)\n\n  const formatDate = (value?: string | null) => {\n    if (!value) return \"–\"\n\n    try {\n      return new Date(value).toLocaleString(\"de-DE\")\n    } catch {\n      return value\n    }\n  }\n\n  const formatBytes = (value?: number | null) => {\n    const bytes = Number(value ?? 0)\n\n    if (!Number.isFinite(bytes) || bytes <= 0) return \"–\"\n\n    const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"]\n    const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1)\n    const normalized = bytes / 1024 ** exponent\n\n    return `${normalized.toLocaleString(\"de-DE\", { maximumFractionDigits: exponent === 0 ? 0 : 1 })} ${units[exponent]}`\n  }\n\n  const statusDef = (status: SharePointSourceItemStatus) => {\n    if (status === \"indexed\")\n      return { value: \"indexed\", label: \"Indiziert\", color: \"emerald\" as const }\n\n    if (status === \"deleted\")\n      return { value: \"deleted\", label: \"Gelöscht\", color: \"slate\" as const }\n\n    if (status === \"failed\") return { value: \"failed\", label: \"Fehler\", color: \"red\" as const }\n\n    return { value: \"filtered\", label: \"Ausgefiltert\", color: \"amber\" as const }\n  }\n\n  const resolveChunkContext = (): {\n    projectId: string | null\n    organizationId: string | null\n    realizationId: string | null\n    scope: ChunkScopeType\n  } => {\n    if (sourceScope === \"organization\") {\n      return {\n        projectId: null,\n        organizationId,\n        realizationId: null,\n        scope: \"organization\" as const,\n      }\n    }\n\n    if (sourceScope === \"realization\") {\n      return {\n        projectId,\n        organizationId: null,\n        realizationId,\n        scope: \"realization\" as const,\n      }\n    }\n\n    return {\n      projectId,\n      organizationId: null,\n      realizationId: null,\n      scope: \"project\" as const,\n    }\n  }\n\n  const openChunksOverlay = (row: SharePointItemRow) => {\n    const context = resolveChunkContext()\n\n    if (!row.dataId || (!context.projectId && !context.organizationId)) return\n\n    openIndexedDocumentInspector({\n      projectId: context.projectId,\n      organizationId: context.organizationId,\n      realizationId: context.realizationId,\n      scope: context.scope,\n      dataId: row.dataId,\n      dataLabel: row.path ?? row.name ?? row.itemId,\n      sourceId: row.sourceId,\n    })\n  }\n\n  const getRows: TableGetRows = async ({ limit, offset }) => {\n    loading = true\n    error = null\n    try {\n      const response = await fetchSharePointSourceItems(sourceId, {\n        limit,\n        offset,\n        search: searchTerm || null,\n        statuses: selectedStatuses,\n      })\n      totalCount = response.total\n      const rows: SharePointItemRow[] = response.items.map((item) => ({\n        ...item,\n        id: item.itemId,\n        path: item.path ?? item.name ?? item.itemId,\n        sizeLabel: formatBytes(item.size),\n        lastSyncedAtLabel: formatDate(item.lastSyncedAt),\n        lastSeenAtLabel: formatDate(item.lastSeenAt),\n      }))\n\n      return { rows, total: response.total }\n    } catch (err) {\n      error = err instanceof Error ? err.message : String(err)\n      totalCount = 0\n\n      return { rows: [], total: 0 }\n    } finally {\n      loading = false\n    }\n  }\n\n  const registerRefresh = (fn: () => void) => {\n    refreshTable = fn\n  }\n\n  const handleRetry = async (row: SharePointItemRow) => {\n    try {\n      await retrySharePointSourceItemSync(row.sourceId, row.itemId)\n      newNotification({ class: \"info\", html: \"Resync wurde eingeplant.\" })\n      refreshTable?.()\n    } catch (err) {\n      notifyApiError(err, {\n        fallback: \"SharePoint-Datei konnte nicht neu synchronisiert werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const adapter = $derived.by<SyncStateTableAdapter<SharePointItemRow>>(() => ({\n    title,\n    helpModalTextId: \"indexAdminSharePointSourceState\",\n    tooltipContent:\n      \"Hier sehen Sie pro Datei, ob sie gefunden, gefiltert, gelöscht oder erfolgreich indiziert wurde.\",\n    columns,\n    getRows,\n    cardFieldIds: [\"status\", \"sizeLabel\", \"lastSyncedAtLabel\", \"lastSeenAtLabel\"],\n    maxCardFields: 4,\n    showActions: true,\n    actionsHeaderLabel: \"Aktionen\",\n    emptyMessage: \"Für diese SharePoint-Quelle wurden noch keine Dateistände erfasst.\",\n    liveStateUrl: buildSharePointSourceItemsStreamUrl(sourceId),\n    fallbackPollingMs: 5_000,\n  }))\n\n  const rowActions: TableRowActionsConfig = {\n    resolve: (row) => {\n      const actions: TableRowAction[] = []\n\n      actions.push({\n        id: \"action-0\",\n        label: \"Resync\",\n        onClick: () => {\n          return handleRetry(row as SharePointItemRow)\n        },\n        icon: mdiRefresh,\n        disabled: !((row as SharePointItemRow).itemId || \"\").trim(),\n        tooltip: indexActionTooltip(\"sharepoint-sync\"),\n      })\n\n      actions.push({\n        id: \"action-1\",\n        label: \"Chunks\",\n        onClick: () => {\n          openChunksOverlay(row as SharePointItemRow)\n        },\n        icon: mdiEyeOutline,\n        disabled: !((row as SharePointItemRow).dataId || \"\").trim(),\n        tooltip: indexActionTooltip(\"chunks-open\"),\n      })\n\n      return buildTableRowActionSet(actions, { primaryId: \"action-1\", inlineIds: [\"action-0\"] })\n    },\n  }\n</script>\n\n<SyncStateTableShell\n  {adapter}\n  count={totalCount}\n  {loading}\n  {error}\n  {refreshKey}\n  setRefreshFunction={registerRefresh}\n  filtersSnippet={filters}\n  emptySnippet={emptyState}\n  tableCellSnippet={tableCell}\n  {rowActions}\n/>\n\n{#snippet filters()}\n  <div class=\"row\">\n    <Input\n      id=\"sharepoint-state-search\"\n      placeholder=\"Suche (Dateiname oder Pfad)\"\n      bind:value={searchDraft}\n      tooltip=\"Durchsucht Dateiname und Pfad innerhalb dieser SharePoint-Quelle.\"\n      brightBackground={true}\n    />\n    <Input\n      id=\"sharepoint-state-status\"\n      placeholder=\"Status\"\n      type=\"select\"\n      multiple={true}\n      bind:value={selectedStatuses}\n      options={statusOptions}\n      tooltip=\"Zeigt nur Dateien mit den ausgewählten Zuständen.\"\n      brightBackground={true}\n      onChange={(event) => {\n        const detail = (event as CustomEvent)?.detail\n        selectedStatuses = (detail?.value as SharePointSourceItemStatus[]) || selectedStatuses\n      }}\n    />\n  </div>\n{/snippet}\n\n{#snippet emptyState()}\n  <p>Für diese SharePoint-Quelle wurden noch keine Dateistände erfasst.</p>\n{/snippet}\n\n{#snippet tableCell({ row, column }: { row: DataRow; column: ColumnDef })}\n  {@const r = row as SharePointItemRow}\n  {#if column.id === \"path\"}\n    <div class=\"primary-cell\">\n      <span>{r.path}</span>\n      {#if r.lastError}\n        <small>{r.lastError}</small>\n      {/if}\n    </div>\n  {:else if column.id === \"status\"}\n    <StatusTag size=\"sm\" status={statusDef(r.status)} />\n  {:else}\n    {r[column.id] as any}\n  {/if}\n{/snippet}\n\n<style lang=\"less\">\n  p {\n    margin: 0;\n  }\n\n  .row {\n    display: grid;\n    gap: 0.8rem;\n    grid-template-columns: minmax(0, 1.6fr) minmax(14rem, 1fr);\n  }\n\n  .primary-cell {\n    display: flex;\n    flex-direction: column;\n    gap: 0.25rem;\n  }\n\n  small {\n    color: color-mix(in srgb, var(--text-100, #111827) 70%, transparent);\n  }\n\n  @media (max-width: 900px) {\n    .row {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import type { ChunkScopeType } from \"../../../../../../../_shared/_logic/chunks\"\n\n  import SharePointSourceStateTable from \"./_modules/share-point-source-state-table\"\n\n  const {\n    organizationId,\n    sourceId,\n    projectId = null,\n    realizationId = null,\n    sourceScope = \"project\",\n  }: {\n    organizationId: string\n    sourceId: string\n    projectId?: string | null\n    realizationId?: string | null\n    sourceScope?: ChunkScopeType | null\n  } = $props()\n</script>\n\n<SharePointSourceStateTable {organizationId} {sourceId} {projectId} {realizationId} {sourceScope} />\n","<script lang=\"ts\">\n  import SharePointSyncJobsTable from \"../../../../../../_shared/_modules/share-point-sync-jobs-table\"\n\n  const {\n    organizationId,\n    sourceId,\n  }: {\n    organizationId: string\n    sourceId: string\n  } = $props()\n</script>\n\n<SharePointSyncJobsTable {organizationId} {sourceId} />\n","import { mdiMicrosoftSharepoint } from \"@mdi/js\"\nimport type { RecordDetailHeaderPresentation } from \"@kontextwerk/web-sdk/ui/layout/recordDetail/types\"\n\nimport type { SharePointSource } from \"../../../../../_shared/_logic/sharepoint\"\nimport {\n  describeSharePointScope,\n  formatSharePointFolder,\n} from \"../../../../../_shared/_logic/share-point-presentation\"\n\nexport const sharePointRecordIcon = mdiMicrosoftSharepoint\n\nexport const buildSharePointRecordHeader = (\n  source: Pick<SharePointSource, \"label\" | \"enabled\" | \"scope\" | \"realizationId\" | \"target\">,\n): RecordDetailHeaderPresentation => ({\n  icon: sharePointRecordIcon,\n  subtitle:\n    source.label.trim() && source.label.trim() !== source.target.siteUrl.trim()\n      ? source.label.trim()\n      : undefined,\n  status:\n    typeof source.enabled === \"boolean\"\n      ? {\n          label: source.enabled ? \"Aktiv\" : \"Inaktiv\",\n          tone: source.enabled ? \"success\" : \"neutral\",\n        }\n      : undefined,\n  fields: [\n    { id: \"site\", label: \"Site\", value: source.target.siteUrl },\n    { id: \"library\", label: \"Bibliothek\", value: source.target.libraryName },\n    { id: \"folder\", label: \"Ordner\", value: formatSharePointFolder(source.target.folderPath) },\n    { id: \"scope\", label: \"Sync-Ebene\", value: describeSharePointScope(source) },\n  ],\n})\n","import { mdiDatabase } from \"@mdi/js\"\nimport type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { SharePointSource } from \"../../../../../_shared/_logic/sharepoint\"\nimport type { SharePointFrameContext, SharePointFrameDefinition } from \"./types\"\nimport { buildSharePointRecordHeader, sharePointRecordIcon } from \"./recordHeader\"\n\nexport const buildSharePointSourcePath = (basePath: string | null, sourceId?: string | null) =>\n  sourceId && basePath ? `${basePath}/${encodeURIComponent(sourceId)}` : (basePath ?? null)\n\nconst getSharePointTabs = (): PageTabWithId[] => [\n  { id: \"details\", title: \"Quelle\" },\n  { id: \"inventory\", title: \"Bestand\" },\n  { id: \"jobs\", title: \"Synchronisationsjobs\" },\n]\n\nexport const createSharePointFrameDefinition = (\n  getEntityPath: (source: SharePointSource) => string,\n): SharePointFrameDefinition => ({\n  title: \"SharePoint\",\n  emptyMessage: \"Für dieses Projekt wurden noch keine SharePoint-Quellen angelegt.\",\n  icon: mdiDatabase,\n  recordIcon: sharePointRecordIcon,\n  getEntityId: (source) => source.sourceId,\n  getEntityTitle: (source) => source.target.siteUrl,\n  getRecordHeader: buildSharePointRecordHeader,\n  getEntityPath,\n  getTabs: (context: SharePointFrameContext) => (context.activeEntity ? getSharePointTabs() : []),\n})\n","import type { SharePointSource } from \"../../../../../_shared/_logic/sharepoint\"\nimport { buildSharePointSourcePath } from \"./frame\"\n\nexport const resolveSharePointAutomationTarget = (snapshot: {\n  detailBasePath: string | null\n  routeSourceId: string | null\n  entries: SharePointSource[]\n}): string | null => {\n  if (!snapshot.entries.length) return null\n\n  const resolvedId =\n    snapshot.routeSourceId &&\n    snapshot.entries.some((entry) => entry.sourceId === snapshot.routeSourceId)\n      ? snapshot.routeSourceId\n      : (snapshot.entries[0]?.sourceId ?? null)\n\n  if (!resolvedId || resolvedId === snapshot.routeSourceId) return null\n\n  return buildSharePointSourcePath(snapshot.detailBasePath, resolvedId)\n}\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    { id: \"details\", title: \"Quelle\" },\n    { id: \"inventory\", title: \"Bestand\" },\n    { id: \"jobs\", title: \"Synchronisationsjobs\" },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import { onMount, type Snippet } from \"svelte\"\n  import type { PopoverMenuItem } from \"@kontextwerk/web-sdk/ui/overlay/popover/types\"\n  import { mdiDatabase } from \"@mdi/js\"\n\n  import {\n    fetchSharePointSources,\n    type SharePointConnectionOption,\n    type SharePointSource,\n  } from \"../../../../_shared/_logic/sharepoint\"\n  import {\n    buildCurrentProjectPath,\n    spaNavigate,\n  } from \"../../../../../_shared/_logic/organization-navigation\"\n  import { activeOrganization } from \"../../../../../_shared/_logic/organization\"\n  import DetailsTab from \"./tabs/Details\"\n  import SharePointRecordActions from \"./_modules/share-point-record-actions\"\n  import InventoryTab from \"./tabs/Inventory\"\n  import JobsTab from \"./tabs/Jobs\"\n  import EntityCollectionViewFrame from \"../../../../../_shared/_modules/entity-collection-view-frame\"\n  import type {\n    EntityCollectionFrameDefinition,\n    EntityCollectionViewFrameContext,\n  } from \"../../../../../_shared/_logic/entity-collection-contracts\"\n  import { buildSharePointSourcePath, createSharePointFrameDefinition } from \"./_logic/frame\"\n  import { resolveSharePointAutomationTarget } from \"./_logic/automation\"\n  import type { SharePointViewProps } from \"./_logic/types\"\n\n  const { sourceId: routeSourceId = null, canManageSharePoint = true }: SharePointViewProps =\n    $props()\n\n  const projectId = $derived<string | null>(null)\n  const organizationId = $derived($activeOrganization?.id ?? null)\n  const realizationId = $derived<string | null>(null)\n  const realizationOptions = $derived<Array<{ value: string; name: string }>>([])\n\n  let sources = $state<SharePointSource[]>([])\n  let connections = $state<SharePointConnectionOption[]>([])\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let requestId = 0\n\n  const sharePointOverviewPath = $derived(buildCurrentProjectPath({ suffix: \"/sharepoint\" }))\n  const sharePointDetailBasePath = $derived(\n    buildCurrentProjectPath({ suffix: \"/sharepoint/sources\" }),\n  )\n  const buildSourcePath = (sourceId?: string | null) =>\n    buildSharePointSourcePath(sharePointDetailBasePath, sourceId)\n  const frameDefinition = $derived.by<EntityCollectionFrameDefinition<SharePointSource>>(() =>\n    createSharePointFrameDefinition((source) => buildSourcePath(source.sourceId) ?? \"/\"),\n  )\n\n  const loadSources = async () => {\n    if (!organizationId) {\n      sources = []\n      connections = []\n      error = null\n      loading = false\n\n      return\n    }\n\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const result = await fetchSharePointSources({ organizationId })\n\n      if (current !== requestId) return\n\n      sources = result.sources\n      connections = result.connections\n      const target = resolveSharePointAutomationTarget({\n        detailBasePath: sharePointDetailBasePath,\n        routeSourceId,\n        entries: result.sources,\n      })\n\n      if (target) {\n        spaNavigate(target, { replace: true, noSearchParam: true })\n      }\n    } catch (err) {\n      if (current !== requestId) return\n\n      sources = []\n      connections = []\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadSources()\n\n    return () => {\n      requestId += 1\n    }\n  })\n</script>\n\n<EntityCollectionViewFrame\n  definition={{\n    ...frameDefinition,\n    helpModalTextId: \"indexAdminSharePointSourceDetail\",\n    helpModalTooltip:\n      \"Hier sehen Sie die feste Konfiguration dieser SharePoint-Quelle und die von Microsoft aufgelösten Zielinformationen.\",\n  }}\n  recordScopeKey={organizationId ? `organization:${organizationId}` : null}\n  recordActionController={sharePointRecordActions}\n  entities={sources}\n  routeEntityId={routeSourceId}\n  backLink={sharePointOverviewPath ?? \"\"}\n  noContextMessage={!organizationId\n    ? \"Keine SharePoint-Quelle verfügbar, weil der Organisationskontext fehlt.\"\n    : null}\n  {loading}\n  loadingMessage=\"SharePoint-Quellen werden geladen…\"\n  {error}\n  tabContent={sharePointTabContent}\n/>\n\n{#snippet sharePointRecordActions(\n  source: SharePointSource | null,\n  children: Snippet<[PopoverMenuItem[]]>,\n)}\n  {#if organizationId}\n    <SharePointRecordActions\n      {organizationId}\n      {projectId}\n      {realizationId}\n      {source}\n      {connections}\n      canManage={canManageSharePoint}\n      onUpdated={loadSources}\n      onDeleted={() => {\n        spaNavigate(\n          sharePointOverviewPath ?? buildCurrentProjectPath({ suffix: \"/sharepoint\" }) ?? \"/\",\n          { replace: true, noSearchParam: true },\n        )\n      }}\n      {children}\n    />\n  {/if}\n{/snippet}\n\n{#snippet sharePointTabContent(\n  tabId: string,\n  context: EntityCollectionViewFrameContext<SharePointSource>,\n)}\n  {@const activeSource = context.activeEntity}\n  {#if activeSource && organizationId && tabId === \"details\"}\n    <DetailsTab\n      {organizationId}\n      projectId={null}\n      {realizationId}\n      source={activeSource}\n      {connections}\n      {realizationOptions}\n      canManage={canManageSharePoint}\n      onUpdated={loadSources}\n      onDeleted={() => {\n        spaNavigate(\n          sharePointOverviewPath ?? buildCurrentProjectPath({ suffix: \"/sharepoint\" }) ?? \"/\",\n          {\n            replace: true,\n            noSearchParam: true,\n          },\n        )\n      }}\n    />\n  {:else if activeSource && organizationId && tabId === \"inventory\"}\n    <InventoryTab\n      {organizationId}\n      sourceId={activeSource.sourceId}\n      projectId={activeSource.scope === \"organization\" ? null : activeSource.projectId}\n      realizationId={activeSource.scope === \"realization\" ? activeSource.realizationId : null}\n      sourceScope={activeSource.scope}\n    />\n  {:else if activeSource && organizationId && tabId === \"jobs\"}\n    <JobsTab {organizationId} sourceId={activeSource.sourceId} />\n  {:else}\n    <p class=\"state\">Keine Quelle ausgewählt.</p>\n  {/if}\n{/snippet}\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import { activeOrganization } from \"../../../_shared/_logic/organization\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import SharePointPage from \"./pages/SharePoint\"\n  import { getIndexAdminAuthContext } from \"../../../_shared/_logic/auth-context\"\n\n  const {\n    sourceId = null,\n  }: {\n    sourceId?: string | null\n  } = $props()\n\n  const routeKey = $derived(`${$activeOrganization?.id ?? \"no-org\"}:${sourceId ?? \"no-source\"}`)\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n</script>\n\n{#key routeKey}\n  {#if capabilities.canViewSharePoint}\n    <SharePointPage {sourceId} canManageSharePoint={capabilities.canManageSharePoint} />\n  {:else}\n    <AccessDeniedPage\n      title=\"SharePoint gesperrt\"\n      statusLabel=\"Berechtigung fehlt\"\n      message=\"Du darfst SharePoint-Quellen nicht ansehen.\"\n      hint=\"Bitte fordere die Berechtigung „SharePoint ansehen“ an.\"\n    />\n  {/if}\n{/key}\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"sharepoint-source\",\n  parentPageId: \"sharepoint\",\n  parentTabTitle: \"SharePoint\",\n} satisfies AppSubviewConfig\n","import type { PermissionState } from \"../../_logic/permissions\"\n\nexport type FileCollectionCapabilities = {\n  canViewFileCollections: boolean\n  canManageFileUpload: boolean\n}\n\nexport const buildViewCapabilities = (\n  permissions: PermissionState,\n): FileCollectionCapabilities => ({\n  canViewFileCollections: permissions.allows(\"core.kontext_file_upload\", \"view\"),\n  canManageFileUpload: permissions.allows(\"core.kontext_file_upload\", \"manage\"),\n})\n","// src/locate.ts\nfunction locate(el, attr = \"data-id\") {\n  let node = el;\n  if (!node.tagName && el.target)\n    node = el.target;\n  while (node) {\n    if (node.getAttribute) {\n      const id3 = node.getAttribute(attr);\n      if (id3) return node;\n    }\n    node = node.parentNode;\n  }\n  return null;\n}\nfunction locateAttr(el, attr = \"data-id\") {\n  const node = locate(el, attr);\n  if (node) return node.getAttribute(attr);\n  return null;\n}\nfunction locateID(el, attr = \"data-id\") {\n  const node = locate(el, attr);\n  if (node) {\n    return getID(node, attr);\n  }\n  return null;\n}\nfunction getID(el, attr = \"data-id\") {\n  const value = el.getAttribute(attr);\n  if (!value) return null;\n  return id(value);\n}\nfunction locateNode(el, node) {\n  let n = el;\n  while (n) {\n    if (n === node) {\n      return true;\n    }\n    n = n?.parentNode;\n  }\n  return null;\n}\nfunction setID(id3) {\n  return typeof id3 === \"string\" ? \":\" + id3 : id3;\n}\nfunction id(value) {\n  if (value.startsWith(\":\")) return value.substring(1);\n  const t = value * 1;\n  if (!isNaN(t)) return t;\n  return value;\n}\n\n// src/env.ts\nfunction getEnv() {\n  return {\n    detect: () => true,\n    addEvent: function(node, event, handler) {\n      node.addEventListener(event, handler);\n      return () => node.removeEventListener(event, handler);\n    },\n    addGlobalEvent: function(event, handler) {\n      document.addEventListener(event, handler);\n      return () => document.removeEventListener(event, handler);\n    },\n    getTopNode: function() {\n      return window.document.body;\n    }\n  };\n}\nvar env = getEnv();\nfunction setEnv(update) {\n  Object.assign(env, update);\n}\n\n// src/delegateClick.ts\nfunction delegateEvent(node, handlers, event) {\n  function handleEvent(ev) {\n    const node2 = locate(ev);\n    if (!node2) return;\n    const id3 = getID(node2);\n    if (typeof handlers === \"function\") return handlers(id3, ev);\n    let action;\n    let test = ev.target;\n    while (test != node2) {\n      action = test.dataset ? test.dataset.action : null;\n      if (action) {\n        if (handlers[action]) {\n          handlers[action](id3, ev);\n          return;\n        }\n      }\n      test = test.parentNode;\n    }\n    if (handlers[event]) handlers[event](id3, ev);\n  }\n  env.addEvent(node, event, handleEvent);\n}\nfunction delegateClick(node, handlers) {\n  delegateEvent(node, handlers, \"click\");\n  if (handlers.dblclick) delegateEvent(node, handlers.dblclick, \"dblclick\");\n}\n\n// src/array.ts\nfunction remove(items, node) {\n  for (let i = items.length - 1; i >= 0; i--) {\n    if (items[i] === node) {\n      items.splice(i, 1);\n      break;\n    }\n  }\n}\n\n// src/clickOutside.ts\nvar activationDate = /* @__PURE__ */ new Date();\nvar skipNext = false;\nvar outsideHandlers = [];\nvar outsideListners = [];\nvar handleOutsideClick = (event) => {\n  if (skipNext) {\n    skipNext = false;\n    return;\n  }\n  for (let i = outsideListners.length - 1; i >= 0; i--) {\n    const { node, date, props } = outsideListners[i];\n    if (date > activationDate) continue;\n    if (!node.contains(event.target) && node !== event.target) {\n      if (props.callback) props.callback(event);\n      if (props.modal || event.defaultPrevented) break;\n    }\n  }\n};\nvar handleMouseDown = (event) => {\n  activationDate = /* @__PURE__ */ new Date();\n  skipNext = true;\n  for (let i = outsideListners.length - 1; i >= 0; i--) {\n    const { node } = outsideListners[i];\n    if (!node.contains(event.target) && node !== event.target) {\n      skipNext = false;\n      break;\n    }\n  }\n};\nfunction clickOutside(node, props) {\n  if (!outsideHandlers.length) {\n    outsideHandlers = [\n      env.addGlobalEvent(\"click\", handleOutsideClick, node),\n      env.addGlobalEvent(\"contextmenu\", handleOutsideClick, node),\n      env.addGlobalEvent(\"mousedown\", handleMouseDown, node)\n    ];\n  }\n  if (typeof props !== \"object\") {\n    props = { callback: props };\n  }\n  const pack = { node, date: /* @__PURE__ */ new Date(), props };\n  outsideListners.push(pack);\n  return {\n    destroy() {\n      remove(outsideListners, pack);\n      if (!outsideListners.length) {\n        outsideHandlers.forEach((e) => e());\n        outsideHandlers = [];\n      }\n    }\n  };\n}\n\n// src/positioning.ts\nvar isBottom = (mode) => mode.indexOf(\"bottom\") !== -1;\nvar isLeft = (mode) => mode.indexOf(\"left\") !== -1;\nvar isRight = (mode) => mode.indexOf(\"right\") !== -1;\nvar isTop = (mode) => mode.indexOf(\"top\") !== -1;\nvar isFit = (mode) => mode.indexOf(\"fit\") !== -1;\nvar isOverlap = (mode) => mode.indexOf(\"overlap\") !== -1;\nvar isCenter = (mode) => {\n  return mode.split(\"-\").every((v) => [\"center\", \"fit\"].indexOf(v) > -1);\n};\nvar getAlign = (mode) => {\n  const match = mode.match(/(start|center|end)/);\n  return match ? match[0] : null;\n};\nfunction getMaxIndex(p, ap) {\n  let zi = 0;\n  const top = env.getTopNode(p);\n  while (p) {\n    if (p === top) break;\n    const pos2 = getComputedStyle(p)[\"position\"];\n    if (pos2 === \"absolute\" || pos2 === \"relative\" || pos2 === \"fixed\") {\n      zi = parseInt(getComputedStyle(p)[\"zIndex\"]) || 0;\n    }\n    p = p.parentNode;\n    if (p === ap) break;\n  }\n  return zi;\n}\nvar x;\nvar y;\nvar width;\nvar pos;\nfunction calculatePosition(self, parent, at = \"bottom\", left = 0, top = 0) {\n  if (!self) return null;\n  x = left;\n  y = top;\n  width = \"auto\";\n  let z = 0;\n  let fixLeft = 0;\n  const body = getAbsParent(self);\n  const cont = isOverlap(at) ? env.getTopNode(self) : body;\n  if (!body) return null;\n  const bodyRect = body.getBoundingClientRect();\n  const selfRect = self.getBoundingClientRect();\n  const contRect = cont.getBoundingClientRect();\n  const contStyle = window.getComputedStyle(cont);\n  const border = {\n    left: 0,\n    top: 0,\n    bottom: 0,\n    right: 0\n  };\n  for (const key in border) {\n    const style = `border-${key}-width`;\n    border[key] = parseFloat(contStyle.getPropertyValue(style));\n  }\n  if (parent) {\n    const zi = getMaxIndex(parent, body);\n    z = Math.max(zi + 1, 20);\n  }\n  if (parent) {\n    pos = parent.getBoundingClientRect();\n    if (isFit(at)) width = pos.width + \"px\";\n    if (at !== \"point\") {\n      if (isCenter(at)) {\n        if (isFit(at)) {\n          x = 0;\n        } else {\n          x = contRect.width / 2;\n          fixLeft = 1;\n        }\n        y = (contRect.height - selfRect.height) / 2;\n      } else {\n        const fix = isOverlap(at) ? 0 : 1;\n        x = isRight(at) ? pos.right + fix : pos.left - fix;\n        y = isBottom(at) ? pos.bottom + 1 : pos.top;\n        const align = getAlign(at);\n        if (align) {\n          if (isRight(at) || isLeft(at)) {\n            if (align === \"center\") y -= (selfRect.height - pos.height) / 2;\n            else if (align === \"end\") y -= selfRect.height - pos.height;\n          } else if (isBottom(at) || isTop(at)) {\n            if (align === \"center\") x -= (selfRect.width - pos.width) / 2;\n            else if (align === \"end\") x -= selfRect.width - pos.width;\n            if (!isOverlap(at)) x += 1;\n          }\n        }\n      }\n    }\n  } else pos = { left, right: left, top, bottom: top };\n  const isCorner = (isLeft(at) || isRight(at)) && (isBottom(at) || isTop(at));\n  if (isLeft(at)) {\n    fixLeft = 2;\n  }\n  const dxL = x - selfRect.width - contRect.left;\n  if (parent && isLeft(at) && !isCorner && dxL < 0) {\n    x = pos.right;\n    fixLeft = 0;\n  }\n  const dxR = x + selfRect.width * (1 - fixLeft / 2) - contRect.right;\n  if (dxR > 0) {\n    if (!isRight(at)) {\n      x = contRect.right - border.right - selfRect.width;\n    } else {\n      const dx = pos.left - contRect.x - selfRect.width;\n      if (parent && !isCorner && dx >= 0) {\n        x = pos.left - selfRect.width;\n      } else {\n        x -= dxR + border.right;\n      }\n    }\n  }\n  if (fixLeft) {\n    x = Math.round(x - selfRect.width * fixLeft / 2);\n  }\n  const needSwap = dxL < 0 || dxR > 0 || !isCorner;\n  if (isTop(at)) {\n    y = pos.top - selfRect.height;\n    if (parent && y < contRect.y && needSwap) {\n      y = pos.bottom;\n    }\n  }\n  const dy = y + selfRect.height - contRect.bottom;\n  if (dy > 0) {\n    if (parent && isBottom(at) && needSwap) {\n      y -= selfRect.height + pos.height + 1;\n    } else {\n      y -= dy + border.bottom;\n    }\n  }\n  x -= bodyRect.left + border.left;\n  y -= bodyRect.top + border.top;\n  x = (isOverlap(at) ? x : Math.max(x, 0)) + cont.scrollLeft;\n  y = (isOverlap(at) ? y : Math.max(y, 0)) + cont.scrollTop;\n  width = width || \"auto\";\n  return { x, y, z, width };\n}\nfunction getAbsParent(el) {\n  const top = env.getTopNode(el);\n  if (el) el = el.parentElement;\n  while (el) {\n    const pos2 = getComputedStyle(el)[\"position\"];\n    if (el === top || pos2 === \"relative\" || pos2 === \"absolute\" || pos2 === \"fixed\")\n      return el;\n    el = el.parentNode;\n  }\n  return null;\n}\n\n// src/common.ts\nvar id2 = (/* @__PURE__ */ new Date()).valueOf();\nfunction uid() {\n  id2 += 1;\n  return id2;\n}\n\n// src/hotkeys.ts\nvar ScreenKeys = class {\n  constructor() {\n    this.store = /* @__PURE__ */ new Map();\n  }\n  configure(hotkeys2, node) {\n    this.node = node;\n    for (const hotkey in hotkeys2) {\n      if (hotkeys2[hotkey]) {\n        const hotkeyFormatted = hotkey.toLowerCase().replace(/[ ]/g, \"\");\n        const handler = hotkeys2[hotkey];\n        this.store.set(hotkeyFormatted, handler);\n      }\n    }\n  }\n};\nvar chain = [];\nvar hotkeys = {\n  subscribe: (v) => {\n    init_once();\n    const t = new ScreenKeys();\n    chain.push(t);\n    v(t);\n    return () => {\n      const ind = chain.findIndex((a) => a === t);\n      if (ind >= 0) chain.splice(ind, 1);\n    };\n  }\n};\nvar ready = false;\nfunction init_once() {\n  if (ready) return;\n  ready = true;\n  document.addEventListener(\"keydown\", (ev) => {\n    if (chain.length && (ev.ctrlKey || ev.altKey || ev.metaKey || ev.shiftKey || ev.key.length > 1 || ev.key === \" \")) {\n      const code = [];\n      if (ev.ctrlKey) code.push(\"ctrl\");\n      if (ev.altKey) code.push(\"alt\");\n      if (ev.metaKey) code.push(\"meta\");\n      if (ev.shiftKey) code.push(\"shift\");\n      let evKey = ev.code.replace(\"Key\", \"\").toLocaleLowerCase();\n      if (ev.key === \" \") {\n        evKey = \"space\";\n      }\n      code.push(evKey);\n      const key = code.join(\"+\");\n      for (let i = chain.length - 1; i >= 0; i--) {\n        const target = chain[i];\n        const handler = target.store.get(key) || target.store.get(evKey);\n        if (handler && target.node.contains(ev.target)) {\n          handler(ev, { key, evKey });\n        }\n      }\n    }\n  });\n}\n\n// src/dates.ts\nfunction toFixed(num) {\n  if (num < 10) return \"0\" + num;\n  return num.toString();\n}\nfunction toFixedMs(num) {\n  const temp = toFixed(num);\n  return temp.length == 2 ? \"0\" + temp : temp;\n}\nfunction getDuodecade(year) {\n  const start = Math.floor(year / 11) * 11;\n  return {\n    start,\n    end: start + 11\n  };\n}\nfunction getWeekNumber(ndate, weekStart = 1) {\n  let nday = ndate.getDay();\n  if (nday === 0) {\n    nday = 7;\n  }\n  nday = (nday - weekStart + 7) % 7;\n  const first_thursday = new Date(ndate.valueOf());\n  first_thursday.setDate(ndate.getDate() + (3 - nday));\n  const year_number = first_thursday.getFullYear();\n  const ordinal_date = Math.floor(\n    (first_thursday.getTime() - new Date(year_number, 0, 1).getTime()) / 864e5\n  );\n  return 1 + Math.floor(ordinal_date / 7);\n}\nvar emptyAmPm = [\"\", \"\"];\nfunction date2str(mask, date, locale2) {\n  switch (mask) {\n    case \"%d\":\n      return toFixed(date.getDate());\n    case \"%m\":\n      return toFixed(date.getMonth() + 1);\n    case \"%j\":\n      return date.getDate();\n    case \"%n\":\n      return date.getMonth() + 1;\n    case \"%y\":\n      return toFixed(date.getFullYear() % 100);\n    case \"%Y\":\n      return date.getFullYear();\n    case \"%D\":\n      return locale2.dayShort[date.getDay()];\n    case \"%l\":\n      return locale2.dayFull[date.getDay()];\n    case \"%M\":\n      return locale2.monthShort[date.getMonth()];\n    case \"%F\":\n      return locale2.monthFull[date.getMonth()];\n    case \"%h\":\n      return toFixed((date.getHours() + 11) % 12 + 1);\n    case \"%g\":\n      return (date.getHours() + 11) % 12 + 1;\n    case \"%G\":\n      return date.getHours();\n    case \"%H\":\n      return toFixed(date.getHours());\n    case \"%i\":\n      return toFixed(date.getMinutes());\n    case \"%a\":\n      return ((date.getHours() > 11 ? locale2.pm : locale2.am) || emptyAmPm)[0];\n    case \"%A\":\n      return ((date.getHours() > 11 ? locale2.pm : locale2.am) || emptyAmPm)[1];\n    case \"%s\":\n      return toFixed(date.getSeconds());\n    case \"%S\":\n      return toFixedMs(date.getMilliseconds());\n    case \"%W\":\n      return toFixed(getWeekNumber(date));\n    case \"%w\":\n      return toFixed(getWeekNumber(date, locale2.weekStart ?? 1));\n    case \"%c\": {\n      let str = date.getFullYear() + \"\";\n      str += \"-\" + toFixed(date.getMonth() + 1);\n      str += \"-\" + toFixed(date.getDate());\n      str += \"T\";\n      str += toFixed(date.getHours());\n      str += \":\" + toFixed(date.getMinutes());\n      str += \":\" + toFixed(date.getSeconds());\n      return str;\n    }\n    case \"%Q\":\n      return Math.floor(date.getMonth() / 3) + 1;\n    default:\n      return mask;\n  }\n}\nvar formatFlags = /%[a-zA-Z]/g;\nfunction dateToString(format, locale2) {\n  if (typeof format == \"function\") return format;\n  return function(date) {\n    if (!date) return \"\";\n    if (!date.getMonth) date = new Date(date);\n    return format.replace(\n      formatFlags,\n      (s) => date2str(s, date, locale2)\n    );\n  };\n}\n\n// src/locale.ts\nfunction isObject(a) {\n  return a && typeof a === \"object\" && !Array.isArray(a);\n}\nfunction extend(a, b) {\n  for (const key in b) {\n    const from = b[key];\n    if (isObject(a[key]) && isObject(from)) {\n      a[key] = extend(\n        { ...a[key] },\n        b[key]\n      );\n    } else {\n      a[key] = b[key];\n    }\n  }\n  return a;\n}\nfunction locale(words) {\n  return {\n    getGroup(group) {\n      const block = words[group];\n      return (key) => {\n        return block ? block[key] || key : key;\n      };\n    },\n    getRaw() {\n      return words;\n    },\n    extend(values, optional) {\n      if (!values) return this;\n      let data;\n      if (optional) {\n        data = extend({ ...values }, words);\n      } else {\n        data = extend({ ...words }, values);\n      }\n      return locale(data);\n    }\n  };\n}\n\n// src/salesforce.ts\nvar salesForceEnv = {\n  detect() {\n    if (typeof window === \"undefined\") return false;\n    return (\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      !!window[\"Sfdc\"] || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      !!window[\"$A\"] || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      !!window[\"Aura\"] || \"$shadowResolver$\" in document.body\n    );\n  },\n  addGlobalEvent: function(event, handler, rel) {\n    const d = salesForceEnv.getTopNode(rel);\n    d.addEventListener(event, handler);\n    return () => d.removeEventListener(event, handler);\n  },\n  getTopNode: function(rel) {\n    return rel.closest('[data-wx-root=\"true\"]');\n  }\n};\n\nexport { calculatePosition, clickOutside, dateToString, delegateClick, delegateEvent, env, getAbsParent, getDuodecade, getID, hotkeys, locale, locate, locateAttr, locateID, locateNode, salesForceEnv, setEnv, setID, uid };\n//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map","import { uid } from \"@svar-ui/lib-dom\";\n\nexport function walkData(data, cb) {\n\tdata.forEach(a => {\n\t\tcb(a);\n\t\tif (a.data && a.data.length) walkData(a.data, cb);\n\t});\n}\n\nexport function mapData(data, cb) {\n\treturn data.map(a => {\n\t\tconst out = cb(a);\n\t\tif (a.data && a.data.length) out.data = mapData(a.data, cb);\n\t\treturn out;\n\t});\n}\n\nexport function filterMenu(data, cb) {\n\tconst out = [];\n\tdata.forEach(a => {\n\t\tif (a.data) {\n\t\t\tconst sub = filterMenu(a.data, cb);\n\t\t\tif (sub.length) out.push({ ...a, data: sub });\n\t\t} else {\n\t\t\tif (cb(a)) out.push(a);\n\t\t}\n\t});\n\n\treturn out;\n}\n\nexport function prepareMenuData(data) {\n\treturn mapData(data, a => {\n\t\t// [deprecated] option.type to be deprecated in 3.0\n\t\tconst opt = { ...a, id: a.id || uid() };\n\t\tif (opt.type) opt.comp = opt.type;\n\t\treturn opt;\n\t});\n}\n\nconst handlers = {};\nexport function getItemHandler(type) {\n\treturn handlers[type] || type;\n}\nexport function registerMenuItem(type, handler) {\n\thandlers[type] = handler;\n}\n","<script>\n\timport { setID } from \"@svar-ui/lib-dom\";\n\timport { getItemHandler } from \"../helpers\";\n\n\tlet { option, onclick, onshow } = $props();\n\n\tlet element;\n\tfunction onHover() {\n\t\tonshow(option.data ? option.id : false, element);\n\t}\n\tfunction onClick(ev) {\n\t\tif (option.data) {\n\t\t\tev.stopPropagation();\n\t\t\tonshow(option.id, element);\n\t\t\treturn;\n\t\t}\n\t\tonclick(ev);\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tbind:this={element}\n\tclass=\"wx-option {option.css || ''}\"\n\tclass:wx-disabled={option.disabled}\n\tdata-id={setID(option.id)}\n\tonmouseenter={onHover}\n\tonclick={onClick}\n>\n\t{#if option.icon}<i class=\"wx-icon {option.icon}\"></i>{/if}\n\t{#if option.comp}\n\t\t{@const SvelteComponent = getItemHandler(option.comp)}\n\t\t<!-- [deprecated] item property will be deprecated in 3.0-->\n\t\t<SvelteComponent item={option} {option} />\n\t{:else}<span class=\"wx-value\"> {option.text} </span>{/if}\n\t{#if option.subtext}<span class=\"wx-subtext\">{option.subtext}</span>{/if}\n\t{#if option.data}<i class=\"wx-sub-icon wxi-angle-right\"></i>{/if}\n</div>\n\n<style>\n\t.wx-option {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\theight: 36px;\n\t\tline-height: 36px;\n\t\tpadding: 2px 12px;\n\t\tfont-family: var(--wx-font-family);\n\t\tfont-weight: var(--wx-font-weight);\n\t\tfont-size: var(--wx-font-size);\n\t\tbackground-color: var(--wx-background);\n\t\tcursor: pointer;\n\t}\n\n\t.wx-option:hover {\n\t\tbackground: var(--wx-background-alt);\n\t}\n\n\t.wx-option:first-child {\n\t\tborder-top-left-radius: inherit;\n\t\tborder-top-right-radius: inherit;\n\t}\n\n\t.wx-option:last-child {\n\t\tborder-bottom-left-radius: inherit;\n\t\tborder-bottom-right-radius: inherit;\n\t}\n\n\t.wx-value {\n\t\tflex-grow: 1;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--wx-color-font);\n\t}\n\t.wx-icon,\n\t.wx-sub-icon {\n\t\tvertical-align: middle;\n\t\theight: inherit;\n\t\tline-height: inherit;\n\t\tfont-size: var(--wx-icon-size);\n\t\tcolor: var(--wx-icon-color);\n\t}\n\n\t.wx-icon {\n\t\tmargin-right: 8px;\n\t}\n\n\t.wx-subtext {\n\t\tcolor: var(--wx-color-font-disabled);\n\t\tmargin-left: 20px;\n\t\twhite-space: nowrap;\n\t}\n\n\t.wx-disabled {\n\t\tpointer-events: none;\n\t}\n\t.wx-disabled .wx-value,\n\t.wx-disabled .wx-icon,\n\t.wx-disabled .wx-sub-icon {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n</style>\n","<script>\n\timport Menu from \"./Menu.svelte\";\n\n\timport { clickOutside, calculatePosition } from \"@svar-ui/lib-dom\";\n\timport { onMount } from \"svelte\";\n\n\timport MenuOption from \"./MenuOption.svelte\";\n\timport { prepareMenuData } from \"../helpers\";\n\n\tlet {\n\t\toptions,\n\t\tleft = 0,\n\t\ttop = 0,\n\t\tat = \"bottom\",\n\t\tparent = null,\n\t\tmount = null,\n\t\tcontext = null,\n\t\tcss = \"\",\n\t\tonclick,\n\t} = $props();\n\n\tlet x = $state(-10000);\n\tlet y = $state(-10000);\n\tlet z = $state(20);\n\tlet width = $state();\n\n\tlet self = $state();\n\tlet showSub = $state(false);\n\tlet activeOption = $state(null);\n\n\tfunction updatePosition() {\n\t\tconst result = calculatePosition(self, parent, at, left, top);\n\t\tif (result) {\n\t\t\tx = result.x;\n\t\t\ty = result.y;\n\t\t\tz = result.z;\n\t\t\twidth = result.width;\n\t\t}\n\t}\n\n\t// unfortunately svelte doesn't guarantee that afterUpdate of child component\n\t// will be called after onMount in the parent one, so to be sure that Portal is already\n\t// moved menu to the correct parent we are registering single time handler\n\tif (mount) mount(updatePosition);\n\tonMount(updatePosition);\n\n\tfunction onLeave() {\n\t\tshowSub = false;\n\t}\n\tfunction cancel() {\n\t\t//[deprecated] action will be deprecated in 3.0\n\t\tonclick && onclick({ action: null, option: null });\n\t}\n\tfunction onshow(id, el) {\n\t\tshowSub = id;\n\t\tactiveOption = el;\n\t}\n\n\tconst finalOptions = $derived(prepareMenuData(options));\n\t$effect(() => {\n\t\tupdatePosition(parent);\n\t});\n</script>\n\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tuse:clickOutside={{ callback: cancel, modal: true }}\n\tbind:this={self}\n\tdata-wx-menu=\"true\"\n\tclass=\"wx-menu {css}\"\n\tstyle=\"position:absolute;top:{y}px;left:{x}px;width:{width};z-index:{z}\"\n\tonmouseleave={onLeave}\n>\n\t{#each finalOptions as option (option.id)}\n\t\t{#if option.comp === \"separator\"}\n\t\t\t<div class=\"wx-separator\"></div>\n\t\t{:else}\n\t\t\t<MenuOption\n\t\t\t\t{option}\n\t\t\t\t{onshow}\n\t\t\t\tonclick={ev => {\n\t\t\t\t\tif (!option.data && !ev.defaultPrevented) {\n\t\t\t\t\t\t//[deprecated] action will be deprecated in 3.0\n\t\t\t\t\t\tconst pack = {\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\taction: option,\n\t\t\t\t\t\t\toption,\n\t\t\t\t\t\t\tevent: ev,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (option.handler) option.handler(pack);\n\t\t\t\t\t\tonclick && onclick(pack);\n\n\t\t\t\t\t\t// it is a rare case when we need to stop event bubbling\n\t\t\t\t\t\t// clicking on menu is isolated action which must not affect any other elements on the page\n\t\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t{/if}\n\t\t{#if option.data && showSub === option.id}\n\t\t\t<Menu\n\t\t\t\t{css}\n\t\t\t\toptions={option.data}\n\t\t\t\tat=\"right-overlap\"\n\t\t\t\tparent={activeOption}\n\t\t\t\t{context}\n\t\t\t\t{onclick}\n\t\t\t/>\n\t\t{/if}\n\t{/each}\n</div>\n\n<style>\n\t.wx-menu {\n\t\tposition: absolute;\n\t\tbox-shadow: var(--wx-shadow-light);\n\n\t\tmin-width: 125px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tz-index: 20;\n\t\tborder-radius: var(--wx-border-radius);\n\t\tbackground-color: var(--wx-background);\n\t\tpadding: 4px 0;\n\t}\n\n\t.wx-separator {\n\t\twidth: 100%;\n\t\tborder-top: var(--wx-border-medium);\n\t}\n</style>\n","import { getContext } from \"svelte\";\nimport { uid } from \"@svar-ui/lib-dom\";\n\nexport function getInputId(id) {\n\tconst contextId = getContext(\"wx-input-id\");\n\treturn id || contextId || uid();\n}\n","<script>\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tlet {\n\t\tvalue = $bindable(\"\"),\n\t\tid,\n\t\tplaceholder = \"\",\n\t\ttitle = \"\",\n\t\tdisabled = false,\n\t\terror = false,\n\t\treadonly = false,\n\t\tonchange,\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n</script>\n\n<textarea\n\tclass=\"wx-textarea\"\n\tclass:wx-error={error}\n\tbind:value\n\tid={inputId}\n\t{disabled}\n\t{placeholder}\n\t{readonly}\n\t{title}\n\toninput={() => onchange && onchange({ value, input: true })}\n\tonchange={() => onchange && onchange({ value })}\n></textarea>\n\n<style>\n\t.wx-textarea {\n\t\tdisplay: block;\n\t\tresize: vertical;\n\t\twidth: var(--wx-input-width);\n\t\tmax-width: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\toutline: none;\n\t\tmin-height: 100px;\n\t\tfont-family: var(--wx-input-font-family);\n\t\tfont-size: var(--wx-input-font-size);\n\t\tline-height: var(--wx-input-line-height);\n\t\tfont-weight: var(--wx-input-font-weight);\n\t\ttext-align: var(--wx-input-text-align);\n\t\tcolor: var(--wx-input-font-color);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tbackground: var(--wx-input-background);\n\t}\n\t.wx-textarea:focus {\n\t\tborder: var(--wx-input-border-focus);\n\t}\n\t.wx-textarea::placeholder {\n\t\tcolor: var(--wx-input-placeholder-color);\n\t}\n\n\t.wx-textarea[disabled] {\n\t\tcursor: not-allowed;\n\t\tborder: var(--wx-input-border-disabled);\n\t\tcolor: var(--wx-color-font-disabled);\n\t\tbackground: var(--wx-input-background-disabled);\n\t\tresize: none;\n\t}\n\t.wx-textarea[disabled]::placeholder {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\n\t.wx-textarea.wx-error {\n\t\tborder-color: var(--wx-color-danger);\n\t\tcolor: var(--wx-color-danger);\n\t}\n</style>\n","<script>\n\tlet {\n\t\ttype = \"\",\n\t\tcss = \"\",\n\t\ticon = \"\",\n\t\tdisabled = false,\n\t\ttitle = \"\",\n\t\ttext = \"\",\n\t\tchildren,\n\t\tonclick,\n\t} = $props();\n\n\tlet buttonCss = $derived.by(() => {\n\t\tlet cssType = type\n\t\t\t? type\n\t\t\t\t\t.split(\" \")\n\t\t\t\t\t.filter(a => a !== \"\")\n\t\t\t\t\t.map(x => \"wx-\" + x)\n\t\t\t\t\t.join(\" \")\n\t\t\t: \"\";\n\t\treturn css + (css ? \" \" : \"\") + cssType;\n\t});\n\n\tconst handleClick = ev => {\n\t\tonclick && onclick(ev);\n\t};\n</script>\n\n<button\n\t{title}\n\tclass={`wx-button ${buttonCss}`}\n\tclass:wx-icon={icon && !children}\n\t{disabled}\n\tonclick={handleClick}\n>\n\t{#if icon}<i class={icon}></i>{/if}\n\t{#if children}{@render children()}{:else}{text}{/if}\n</button>\n\n<style>\n\t.wx-button {\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\ttext-decoration: none;\n\t\ttext-align: center;\n\t\tletter-spacing: normal;\n\t\ttext-transform: var(--wx-button-text-transform);\n\t\tfont-family: var(--wx-button-font-family);\n\t\tfont-size: var(--wx-button-font-size);\n\t\tline-height: var(--wx-button-line-height);\n\t\tfont-weight: var(--wx-button-font-weight);\n\t\tpadding: var(--wx-button-padding);\n\t\tborder: var(--wx-button-border);\n\t\tborder-radius: var(--wx-button-border-radius);\n\t\tbackground-color: var(--wx-button-background);\n\t\tcolor: var(--wx-button-font-color);\n\t\tcursor: pointer;\n\t\tbox-shadow: none;\n\t\ttransition: none;\n\t\tmax-width: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tuser-select: none;\n\t\tmin-width: var(--wx-button-width);\n\t}\n\n\t.wx-button:hover {\n\t\tbackground-image: linear-gradient(\n\t\t\trgba(0, 0, 0, 0.1) 0%,\n\t\t\trgba(0, 0, 0, 0.1) 100%\n\t\t);\n\t}\n\n\t.wx-button,\n\t.wx-button:focus,\n\t.wx-button:active {\n\t\toutline: none;\n\t}\n\n\t.wx-button[disabled] {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-color-disabled);\n\t\tborder-color: transparent;\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\n\t.wx-block {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.wx-square {\n\t\tborder-radius: 0;\n\t}\n\n\ti {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\tfont-size: var(--wx-button-icon-size);\n\t\tline-height: 1;\n\t\theight: var(--wx-button-line-height);\n\t\tmargin-right: 2px;\n\t\topacity: 0.7;\n\t}\n\ti:before {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t}\n\n\t.wx-icon {\n\t\tpadding-left: var(--wx-button-icon-indent);\n\t\tpadding-right: var(--wx-button-icon-indent);\n\t\tmin-width: auto;\n\t}\n\t.wx-icon i {\n\t\tmargin: 0;\n\t\topacity: 1;\n\t}\n\n\t.wx-primary {\n\t\tbackground-color: var(--wx-color-primary);\n\t\tcolor: var(--wx-color-primary-font);\n\t}\n\n\t.wx-pressed,\n\t.wx-pressed:hover,\n\t.wx-pressed:active,\n\t.wx-pressed[disabled] {\n\t\tbackground-color: var(--wx-button-pressed);\n\t\tbox-shadow: var(--wx-button-box-shadow);\n\t}\n\n\t.wx-primary.wx-pressed:not(:global([disabled])),\n\t.wx-primary.wx-pressed:hover:not(:global([disabled])),\n\t.wx-primary.wx-pressed:active:not(:global([disabled])) {\n\t\tbackground-color: var(--wx-button-primary-pressed);\n\t\tbox-shadow: var(--wx-button-primary-box-shadow);\n\t}\n\n\t.wx-danger.wx-pressed:not(:global([disabled])),\n\t.wx-danger.wx-pressed:hover:not(:global([disabled])),\n\t.wx-danger.wx-pressed:active:not(:global([disabled])) {\n\t\tbackground-color: var(--wx-button-danger-pressed);\n\t\tbox-shadow: var(--wx-button-primary-box-shadow);\n\t}\n\n\t.wx-secondary {\n\t\tbackground: var(--wx-color-secondary);\n\t\tcolor: var(--wx-color-secondary-font);\n\t\tborder-color: var(--wx-color-secondary-border);\n\t}\n\t.wx-secondary:hover:not(:global([disabled])) {\n\t\tbackground: var(--wx-color-secondary-hover);\n\t}\n\t.wx-secondary.wx-pressed:not(:global([disabled])),\n\t.wx-secondary.wx-pressed:hover:not(:global([disabled])),\n\t.wx-secondary.wx-pressed:active:not(:global([disabled])) {\n\t\tbackground: var(--wx-color-secondary-hover);\n\t\tbox-shadow: var(--wx-button-primary-box-shadow);\n\t}\n\t.wx-secondary[disabled] {\n\t\tborder-color: var(--wx-color-secondary-border-disabled);\n\t}\n\n\t.wx-danger {\n\t\tbackground-color: var(--wx-color-danger);\n\t\tcolor: var(--wx-button-danger-font-color);\n\t}\n\n\t.wx-link {\n\t\tcolor: var(--wx-color-link);\n\t\tpadding: 0;\n\t\tborder: none;\n\t\tvertical-align: baseline;\n\t}\n\t.wx-link,\n\t.wx-link:hover,\n\t.wx-link[disabled] {\n\t\tbackground: transparent;\n\t}\n\t.wx-link[disabled] {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n</style>\n","<script>\n\timport { getInputId } from \"./helpers/getInputId\";\n\n\tlet {\n\t\tid,\n\t\tlabel = \"\",\n\t\tinputValue = \"\",\n\t\tvalue = $bindable(false),\n\t\tstyle = \"\",\n\t\tdisabled = false,\n\t\tonchange,\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tfunction handlerChange({ target }) {\n\t\tvalue = target.checked;\n\t\tonchange && onchange({ value, inputValue });\n\t}\n</script>\n\n<div {style} class=\"wx-checkbox\">\n\t<input\n\t\ttype=\"checkbox\"\n\t\tid={inputId}\n\t\t{disabled}\n\t\tchecked={value}\n\t\tvalue={inputValue}\n\t\tonchange={handlerChange}\n\t/>\n\t<label for={inputId}>\n\t\t<span></span>\n\t\t{#if label}<span>{label}</span>{/if}\n\t</label>\n</div>\n\n<style>\n\t.wx-checkbox {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\tmax-width: var(--wx-input-width);\n\t}\n\tinput {\n\t\tappearance: none;\n\t\twidth: 0;\n\t\theight: 0;\n\t\topacity: 0;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\tlabel {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: flex-start;\n\t\tfont-family: var(--wx-checkbox-font-family);\n\t\tfont-size: var(--wx-checkbox-font-size);\n\t\tline-height: var(--wx-checkbox-line-height);\n\t\tfont-weight: var(--wx-checkbox-font-weight);\n\t\tcolor: var(--wx-checkbox-font-color);\n\t\tcursor: pointer;\n\t}\n\tspan {\n\t\tdisplay: block;\n\t}\n\tspan + span {\n\t\tmargin-left: 8px;\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-checkbox-height) - var(--wx-checkbox-line-height)) / 2\n\t\t);\n\t\tpadding-bottom: calc(\n\t\t\t(var(--wx-checkbox-height) - var(--wx-checkbox-line-height)) / 2\n\t\t);\n\t}\n\tspan:first-child {\n\t\tposition: relative;\n\t\tflex-shrink: 0;\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-checkbox-height) - var(--wx-checkbox-size)) / 2\n\t\t);\n\t\tpadding-bottom: calc(\n\t\t\t(var(--wx-checkbox-height) - var(--wx-checkbox-size)) / 2\n\t\t);\n\t}\n\tspan:first-child:before {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\twidth: var(--wx-checkbox-size);\n\t\theight: var(--wx-checkbox-size);\n\t\tborder: var(--wx-checkbox-border-width) solid\n\t\t\tvar(--wx-checkbox-border-color);\n\t\tborder-radius: var(--wx-checkbox-border-radius);\n\t\tbackground: var(--wx-input-background);\n\t}\n\tspan:first-child:after {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tdisplay: none;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\twidth: calc(var(--wx-checkbox-size) * 0.56);\n\t\theight: calc(var(--wx-checkbox-size) * 0.32);\n\t\tborder-style: solid;\n\t\tborder-color: var(--wx-color-primary-font);\n\t\tborder-width: 0 0 calc(var(--wx-checkbox-size) * 0.12)\n\t\t\tcalc(var(--wx-checkbox-size) * 0.12);\n\t\ttransform: rotate(-45deg);\n\t\tmargin-left: calc(var(--wx-checkbox-size) * -0.26);\n\t\tmargin-top: calc(var(--wx-checkbox-size) * -0.24);\n\t}\n\tinput:checked ~ label span:first-child:before {\n\t\tbackground: var(--wx-color-primary);\n\t\tborder-color: transparent;\n\t}\n\tinput:checked ~ label span:first-child:after {\n\t\tdisplay: block;\n\t}\n\tinput[disabled] ~ label {\n\t\tcolor: var(--wx-checkbox-border-color-disabled);\n\t\tcursor: not-allowed;\n\t}\n\tinput[disabled]:not(:global(:checked)) ~ label span:first-child:before {\n\t\tborder-color: var(--wx-checkbox-border-color-disabled);\n\t}\n\tinput[disabled]:checked ~ label span:first-child:before {\n\t\tbackground: var(--wx-checkbox-border-color-disabled);\n\t}\n\tinput[disabled] ~ label span:first-child:after {\n\t\tborder-color: var(--wx-input-background);\n\t}\n</style>\n","<script>\n\timport { clickOutside, calculatePosition, getAbsParent } from \"@svar-ui/lib-dom\";\n\timport { onMount } from \"svelte\";\n\n\tlet {\n\t\tleft = 0,\n\t\ttop = 0,\n\t\tat = \"bottom\",\n\t\tparent = null,\n\t\twidth = \"auto\",\n\t\tcss = \"\",\n\t\toncancel,\n\t\tchildren,\n\t\ttrackScroll = false,\n\t} = $props();\n\n\tlet self = $state(null);\n\tlet x = $state(0);\n\tlet y = $state(0);\n\tlet w = $state(\"auto\");\n\tlet portal;\n\n\tfunction getWidth(calcWidth) {\n\t\tif (parent && (width + \"\").indexOf(\"%\") > -1) {\n\t\t\treturn width.replace(/(\\d+)%/, (match, value) => {\n\t\t\t\tvalue = (value * parent.offsetWidth) / 100 + \"px\";\n\t\t\t\treturn width.replace(match, value);\n\t\t\t});\n\t\t}\n\t\treturn width && width !== \"auto\" ? width : calcWidth;\n\t}\n\n\tfunction updatePosition() {\n\t\tif (!self) return;\n\t\tconst result = calculatePosition(self, parent, at, left, top);\n\t\tif (result) {\n\t\t\tx = result.x;\n\t\t\ty = result.y;\n\t\t\tw = getWidth(result.width);\n\t\t}\n\t}\n\n\tfunction onScroll(e) {\n\t\tif (oncancel && e.target !== portal && !self.contains(e.target))\n\t\t\toncancel(e);\n\t}\n\n\tonMount(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tupdatePosition();\n\t\t\tif (trackScroll) {\n\t\t\t\tportal = getAbsParent(self);\n\t\t\t\tif (portal) portal.addEventListener(\"scroll\", onScroll, true);\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\tif (trackScroll && portal)\n\t\t\t\tportal.removeEventListener(\"scroll\", onScroll, true);\n\t\t};\n\t});\n\n\t$effect(() => {\n\t\tupdatePosition();\n\t});\n\n\tfunction down(e) {\n\t\toncancel && oncancel(e);\n\t}\n</script>\n\n<div\n\tuse:clickOutside={down}\n\tbind:this={self}\n\tclass=\"wx-popup {css}\"\n\tstyle=\"position:absolute;top:{y}px;left:{x}px;width:{w};\"\n>\n\t{@render children?.()}\n</div>\n\n<style>\n\t.wx-popup {\n\t\tz-index: var(--wx-popup-z-index);\n\t\tbackground: var(--wx-popup-background);\n\t\tbox-shadow: var(--wx-popup-shadow);\n\t\tborder: var(--wx-popup-border);\n\t\tborder-radius: var(--wx-popup-border-radius);\n\t\toverflow: hidden;\n\t}\n</style>\n","<script>\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\n\tlet {\n\t\tposition = \"bottom\",\n\t\talign = \"start\",\n\t\tautoFit = true,\n\t\toncancel = null,\n\t\twidth = \"100%\",\n\t\tcss = \"\",\n\t\tchildren,\n\t} = $props();\n\n\tlet node;\n\t$effect(() => {\n\t\tif (autoFit) {\n\t\t\tconst nodeCoords = node.getBoundingClientRect();\n\t\t\tconst bodyCoords = document.body.getBoundingClientRect();\n\n\t\t\tif (nodeCoords.right >= bodyCoords.right) {\n\t\t\t\talign = \"end\";\n\t\t\t}\n\n\t\t\tif (nodeCoords.bottom >= bodyCoords.bottom) {\n\t\t\t\tposition = \"top\";\n\t\t\t}\n\t\t\treturn `${position}-${align}`;\n\t\t}\n\t});\n\n\tfunction down(e) {\n\t\toncancel && oncancel(e);\n\t}\n</script>\n\n<div\n\tuse:clickOutside={down}\n\tbind:this={node}\n\tclass=\"wx-dropdown {`wx-${position}-${align}`} {css}\"\n\tstyle=\"width:{width}\"\n>\n\t{@render children?.()}\n</div>\n\n<style>\n\t.wx-dropdown {\n\t\tposition: absolute;\n\t\tz-index: 5;\n\t\tbackground: var(--wx-popup-background);\n\t\tbox-shadow: var(--wx-popup-shadow);\n\t\tborder: var(--wx-popup-border);\n\t\tborder-radius: var(--wx-popup-border-radius);\n\t\toverflow: hidden;\n\t}\n\n\t.wx-top-center {\n\t\ttop: 0;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, -100%) translateY(-2px);\n\t}\n\n\t.wx-top-start {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: translateY(-100%) translateY(-2px);\n\t}\n\n\t.wx-top-end {\n\t\ttop: 0;\n\t\tright: 0;\n\t\ttransform: translateY(-100%) translateY(-2px);\n\t}\n\n\t.wx-bottom-center {\n\t\tbottom: 0;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, 100%) translateY(2px);\n\t}\n\n\t.wx-bottom-start {\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\ttransform: translateY(100%) translateY(2px);\n\t}\n\n\t.wx-bottom-end {\n\t\tbottom: 0;\n\t\tright: 0;\n\t\ttransform: translateY(100%) translateY(2px);\n\t}\n\n\t.wx-left-center {\n\t\tbottom: 50%;\n\t\tleft: 0;\n\t\ttransform: translate(-100%, 50%) translateX(-2px);\n\t}\n\n\t.wx-left-start {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: translateX(-100%) translateX(-2px);\n\t}\n\n\t.wx-left-end {\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\ttransform: translateX(-100%) translateX(-2px);\n\t}\n\n\t.wx-right-center {\n\t\tbottom: 50%;\n\t\tright: 0;\n\t\ttransform: translate(100%, 50%) translateX(2px);\n\t}\n\n\t.wx-right-start {\n\t\ttop: 0;\n\t\tright: 0;\n\t\ttransform: translateX(100%) translateX(2px);\n\t}\n\n\t.wx-right-end {\n\t\tbottom: 0;\n\t\tright: 0;\n\t\ttransform: translateX(100%) translateX(2px);\n\t}\n</style>\n","<script>\n\timport Dropdown from \"./Dropdown.svelte\";\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tconst defaultColors = [\n\t\t\"#00a037\",\n\t\t\"#37a9ef\",\n\t\t\"#f5a623\",\n\t\t\"#ff4c3b\",\n\t\t\"#a0a0a0\",\n\t\t\"#000000\",\n\t\t\"#ffffff\",\n\t];\n\n\tlet {\n\t\tcolors = defaultColors,\n\t\tvalue = $bindable(\"\"),\n\t\tid,\n\t\tclear = false,\n\t\tplaceholder = \"\",\n\t\ttitle = \"\",\n\t\tdisabled = false,\n\t\terror = false,\n\t\tonchange,\n\t\tdropdown = {},\n\t} = $props();\n\tconst inputId = $state(getInputId(id));\n\n\tlet popup = $state(false);\n\n\tfunction selectColor(ev, color) {\n\t\tev.stopPropagation();\n\t\tvalue = color;\n\t\tpopup = false;\n\t\tonchange && onchange({ value });\n\t}\n\tfunction unselectColor(ev) {\n\t\tev.stopPropagation();\n\t\tvalue = \"\";\n\t\tonchange && onchange({ value });\n\t}\n\tfunction handlePopup() {\n\t\tif (disabled) return false;\n\t\tpopup = true;\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-colorselect\" onclick={handlePopup}>\n\t<input\n\t\t{title}\n\t\t{value}\n\t\treadonly\n\t\tid={inputId}\n\t\t{placeholder}\n\t\t{disabled}\n\t\tclass:wx-error={error}\n\t\tclass:wx-focus={popup}\n\t/>\n\n\t{#if clear && value && !disabled}\n\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t<i class=\"wx-clear wxi-close\" onclick={unselectColor}></i>\n\t{/if}\n\n\t{#if value}\n\t\t<div\n\t\t\tclass=\"wx-color wx-selected\"\n\t\t\tstyle=\"background-color: {value || '#00a037'}\"\n\t\t></div>\n\t{:else}\n\t\t<div class=\"wx-empty wx-selected\"></div>\n\t{/if}\n\n\t{#if popup}\n\t\t<Dropdown oncancel={() => (popup = false)} {...dropdown}>\n\t\t\t<div class=\"wx-colors\">\n\t\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t\t<div class=\"wx-empty\" onclick={ev => selectColor(ev, \"\")}></div>\n\t\t\t\t{#each colors as color}\n\t\t\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"wx-color\"\n\t\t\t\t\t\tstyle=\"background-color: {color}\"\n\t\t\t\t\t\tonclick={ev => selectColor(ev, color)}\n\t\t\t\t\t></div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-colorselect {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n\n\t.wx-selected {\n\t\tposition: absolute;\n\t\tleft: var(--wx-input-icon-indent);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t}\n\n\t.wx-colors {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 8px;\n\t\tpadding: 8px;\n\t}\n\n\t.wx-color {\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tcursor: pointer;\n\t}\n\n\tinput {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: var(--wx-input-height);\n\t\toutline: none;\n\t\tbackground: var(--wx-input-background);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont-family: var(--wx-input-font-family);\n\t\tfont-size: var(--wx-input-font-size);\n\t\tline-height: var(--wx-input-line-height);\n\t\tfont-weight: var(--wx-input-font-weight);\n\t\ttext-align: var(--wx-input-text-align);\n\t\tcolor: var(--wx-input-font-color);\n\t\tpadding: var(--wx-input-padding);\n\t\tpadding-right: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t\tpadding-left: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\tinput.wx-focus {\n\t\tborder: var(--wx-input-border-focus);\n\t}\n\tinput::placeholder {\n\t\tcolor: var(--wx-input-placeholder-color);\n\t}\n\tinput[disabled] {\n\t\tcursor: not-allowed;\n\t\tborder: var(--wx-input-border-disabled);\n\t\tcolor: var(--wx-color-font-disabled);\n\t\tbackground: var(--wx-input-background-disabled);\n\t}\n\tinput[disabled]::placeholder {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\tinput[disabled] ~ .wx-color,\n\tinput[disabled] ~ .wx-empty {\n\t\tcursor: not-allowed;\n\t}\n\tinput.wx-error {\n\t\tborder-color: var(--wx-color-danger);\n\t\tcolor: var(--wx-color-danger);\n\t}\n\n\t.wx-empty {\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tbackground: linear-gradient(\n\t\t\tto top left,\n\t\t\trgba(0, 0, 0, 0) 0%,\n\t\t\trgba(0, 0, 0, 0) calc(50% - 1px),\n\t\t\trgb(255, 0, 0) 50%,\n\t\t\trgba(0, 0, 0, 0) calc(50% + 1px),\n\t\t\trgba(0, 0, 0, 0) 100%\n\t\t);\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t}\n\n\t.wxi-close {\n\t\tposition: absolute;\n\t\tright: var(--wx-input-icon-indent);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tfont-size: var(--wx-input-icon-size);\n\t\tline-height: 1;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tcolor: var(--wx-input-icon-color);\n\t\tcursor: pointer;\n\t}\n\t.wxi-close:hover {\n\t\tbackground: var(--wx-background-hover);\n\t\tborder-radius: var(--wx-icon-border-radius);\n\t}\n</style>\n","const lang = \"en-US\";\n\nconst calendar = {\n\tmonthFull: [\n\t\t\"January\",\n\t\t\"February\",\n\t\t\"March\",\n\t\t\"April\",\n\t\t\"May\",\n\t\t\"June\",\n\t\t\"July\",\n\t\t\"August\",\n\t\t\"September\",\n\t\t\"October\",\n\t\t\"November\",\n\t\t\"December\",\n\t],\n\tmonthShort: [\n\t\t\"Jan\",\n\t\t\"Feb\",\n\t\t\"Mar\",\n\t\t\"Apr\",\n\t\t\"May\",\n\t\t\"Jun\",\n\t\t\"Jul\",\n\t\t\"Aug\",\n\t\t\"Sep\",\n\t\t\"Oct\",\n\t\t\"Nov\",\n\t\t\"Dec\",\n\t],\n\tdayFull: [\n\t\t\"Sunday\",\n\t\t\"Monday\",\n\t\t\"Tuesday\",\n\t\t\"Wednesday\",\n\t\t\"Thursday\",\n\t\t\"Friday\",\n\t\t\"Saturday\",\n\t],\n\tdayShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\thours: \"Hours\",\n\tminutes: \"Minutes\",\n\tdone: \"Done\",\n\tclear: \"Clear\",\n\ttoday: \"Today\",\n\tam: [\"am\", \"AM\"],\n\tpm: [\"pm\", \"PM\"],\n\n\tweekStart: 0,\n\tclockFormat: 24,\n};\n\nconst core = {\n\tok: \"OK\",\n\tcancel: \"Cancel\",\n\tselect: \"Select\",\n\t\"No data\": \"No data\",\n\t\"Rows per page\": \"Rows per page\",\n\t\"Total pages\": \"Total pages\",\n};\n\nconst formats = {\n\ttimeFormat: \"%H:%i\",\n\tdateFormat: \"%m/%d/%Y\",\n\tmonthYearFormat: \"%F %Y\",\n\tyearFormat: \"%Y\",\n};\n\nconst data = {\n\tcore,\n\tcalendar,\n\tformats,\n\tlang,\n};\n\nexport default data;\n","import { locale } from \"@svar-ui/lib-dom\";\nimport { en } from \"@svar-ui/core-locales\";\n\nexport function defaultLocale() {\n\treturn locale(en);\n}\n","<script>\n\timport Dropdown from \"./Dropdown.svelte\";\n\timport ColorBoard from \"./ColorBoard.svelte\";\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tlet {\n\t\tvalue = $bindable(\"\"),\n\t\tid,\n\t\tplaceholder = \"\",\n\t\ttitle = \"\",\n\t\tdisabled = false,\n\t\terror = false,\n\t\tclear = false,\n\t\tonchange,\n\t\tdropdown = {},\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tlet popup = $state(false);\n\n\tfunction handlePopup() {\n\t\tif (disabled) return false;\n\t\tpopup = true;\n\t}\n\n\tfunction selectColor(ev) {\n\t\tif (ev.input) return;\n\n\t\tpopup = false;\n\t\tvalue = ev.value;\n\t\tonchange && onchange({ value });\n\t}\n\n\tfunction unselectColor(ev) {\n\t\tev.stopPropagation();\n\t\tvalue = \"\";\n\t\tonchange && onchange({ value });\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-colorpicker\" onclick={handlePopup}>\n\t<input\n\t\t{title}\n\t\t{value}\n\t\treadonly\n\t\tid={inputId}\n\t\t{placeholder}\n\t\t{disabled}\n\t\tclass:wx-error={error}\n\t\tclass:wx-focus={popup}\n\t/>\n\t<div class=\"wx-color\" style=\"background: {value}\"></div>\n\n\t{#if clear && !disabled && value}\n\t\t<i class=\"wxi-close\" onclick={unselectColor}></i>\n\t{/if}\n\n\t{#if popup}\n\t\t<Dropdown oncancel={() => (popup = false)} {...dropdown}>\n\t\t\t<ColorBoard {value} button=\"true\" onchange={selectColor} />\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-colorpicker {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n\n\t.wx-color {\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tcursor: pointer;\n\t\tposition: absolute;\n\t\tleft: var(--wx-input-icon-indent);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t}\n\n\tinput {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: var(--wx-input-height);\n\t\toutline: none;\n\t\tbackground: var(--wx-input-background);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont-family: var(--wx-input-font-family);\n\t\tfont-size: var(--wx-input-font-size);\n\t\tline-height: var(--wx-input-line-height);\n\t\tfont-weight: var(--wx-input-font-weight);\n\t\ttext-align: var(--wx-input-text-align);\n\t\tcolor: var(--wx-input-font-color);\n\t\tpadding: var(--wx-input-padding);\n\t\tpadding-right: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t\tpadding-left: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\tinput.wx-focus {\n\t\tborder: var(--wx-input-border-focus);\n\t}\n\tinput::placeholder {\n\t\tcolor: var(--wx-input-placeholder-color);\n\t}\n\tinput[disabled] {\n\t\tcursor: not-allowed;\n\t\tborder: var(--wx-input-border-disabled);\n\t\tcolor: var(--wx-color-font-disabled);\n\t\tbackground: var(--wx-input-background-disabled);\n\t}\n\tinput[disabled]::placeholder {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\tinput[disabled] ~ .wx-color {\n\t\tcursor: not-allowed;\n\t}\n\tinput.wx-error {\n\t\tborder-color: var(--wx-color-danger);\n\t\tcolor: var(--wx-color-danger);\n\t}\n\n\t.wxi-close {\n\t\tposition: absolute;\n\t\tright: var(--wx-input-icon-indent);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tfont-size: var(--wx-input-icon-size);\n\t\tline-height: 1;\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tuser-select: none;\n\t\tcolor: var(--wx-input-icon-color);\n\t\tcursor: pointer;\n\t}\n\t.wxi-close:before {\n\t\tdisplay: block;\n\t}\n\t.wxi-close:hover {\n\t\tbackground: var(--wx-background-hover);\n\t\tborder-radius: var(--wx-icon-border-radius);\n\t}\n</style>\n","import { locateID } from \"@svar-ui/lib-dom\";\n\nexport function getListHandlers() {\n\tlet navIndex = null;\n\tlet isVisible = false;\n\tlet virtualized = false;\n\tlet list, options, navCallback, selectCallback;\n\tconst init = (l, o, n, c, v) => {\n\t\tlist = l;\n\t\toptions = o;\n\t\tnavCallback = n;\n\t\tselectCallback = c;\n\t\tvirtualized = v;\n\t};\n\n\tconst setNav = index => {\n\t\tnavIndex = index;\n\t\tisVisible = navIndex !== null;\n\t\tnavCallback(navIndex);\n\t};\n\tconst navigate = (dir, ev) => {\n\t\tconst index =\n\t\t\tdir === null\n\t\t\t\t? null\n\t\t\t\t: Math.max(0, Math.min(navIndex + dir, options.length - 1));\n\t\tif (index === navIndex) return;\n\t\tsetNav(index);\n\n\t\tif (list) scrollTo(index, ev);\n\t\telse requestAnimationFrame(() => scrollTo(index, ev));\n\t};\n\n\tconst scrollTo = (navIndex, ev) => {\n\t\tif (!virtualized && navIndex !== null && list) {\n\t\t\tconst next = list.querySelectorAll(`.wx-list > .wx-item`)[navIndex];\n\t\t\tif (next) {\n\t\t\t\tnext.scrollIntoView({ block: \"nearest\" });\n\t\t\t\tif (ev) ev.preventDefault();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst move = ev => {\n\t\tconst id = locateID(ev);\n\t\tconst index = options.findIndex(a => a.id === id);\n\n\t\tif (index !== navIndex) {\n\t\t\tsetNav(index);\n\t\t}\n\t};\n\n\tconst keydown = (ev, position) => {\n\t\tswitch (ev.code) {\n\t\t\tcase \"Enter\":\n\t\t\t\tif (isVisible) selectCallback();\n\t\t\t\telse setNav(0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Space\":\n\t\t\t\tif (!isVisible) setNav(0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Escape\":\n\t\t\t\tnavCallback((navIndex = null));\n\t\t\t\tbreak;\n\n\t\t\tcase \"Tab\":\n\t\t\t\tnavCallback((navIndex = null));\n\t\t\t\tbreak;\n\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tnavigate(isVisible ? 1 : position || 0, ev);\n\t\t\t\tbreak;\n\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tnavigate(isVisible ? -1 : position || 0, ev);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn { move, keydown, init, navigate };\n}\n","<script>\n\timport { onMount } from \"svelte\";\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tlet {\n\t\tvalue = $bindable(\"\"),\n\t\tid,\n\t\treadonly = false,\n\t\tfocus = false,\n\t\tselect = false,\n\t\ttype = \"text\",\n\t\tplaceholder = \"\",\n\t\tdisabled = false,\n\t\terror = false,\n\t\tinputStyle = \"\",\n\t\ttitle = \"\",\n\t\tcss = \"\",\n\t\ticon = \"\",\n\t\tclear = false,\n\t\tonchange,\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tlet cssString = $derived(\n\t\ticon && css.indexOf(\"wx-icon-left\") === -1\n\t\t\t? \"wx-icon-right \" + css\n\t\t\t: css\n\t);\n\tlet hasLeftIcon = $derived(icon && css.indexOf(\"wx-icon-left\") !== -1);\n\n\t// svelte-ignore non_reactive_update\n\tlet input;\n\tonMount(() => {\n\t\t// wait till the source click processing will end\n\t\tsetTimeout(() => {\n\t\t\tif (focus && input) input.focus();\n\t\t\tif (select && input) input.select();\n\t\t}, 1);\n\t});\n\n\tconst oninput = () => onchange && onchange({ value, input: true });\n\tconst change = () => onchange && onchange({ value });\n\n\tfunction clearValue(ev) {\n\t\tev.stopPropagation();\n\t\tvalue = \"\";\n\t\tonchange && onchange({ value });\n\t}\n</script>\n\n<div\n\tclass=\"wx-text {cssString}\"\n\tclass:wx-error={error}\n\tclass:wx-disabled={disabled}\n\tclass:wx-clear={clear}\n>\n\t{#if type == \"password\"}\n\t\t<input\n\t\t\tbind:value\n\t\t\tbind:this={input}\n\t\t\tid={inputId}\n\t\t\t{readonly}\n\t\t\t{disabled}\n\t\t\t{placeholder}\n\t\t\ttype=\"password\"\n\t\t\tstyle={inputStyle}\n\t\t\t{title}\n\t\t\t{oninput}\n\t\t\tonchange={change}\n\t\t/>\n\t{:else if type == \"number\"}\n\t\t<input\n\t\t\tbind:value\n\t\t\tbind:this={input}\n\t\t\tid={inputId}\n\t\t\t{readonly}\n\t\t\t{disabled}\n\t\t\t{placeholder}\n\t\t\ttype=\"number\"\n\t\t\tstyle={inputStyle}\n\t\t\t{title}\n\t\t\t{oninput}\n\t\t\tonchange={change}\n\t\t/>\n\t{:else}\n\t\t<input\n\t\t\tbind:value\n\t\t\tbind:this={input}\n\t\t\tid={inputId}\n\t\t\t{readonly}\n\t\t\t{disabled}\n\t\t\t{placeholder}\n\t\t\t{title}\n\t\t\tstyle={inputStyle}\n\t\t\t{oninput}\n\t\t\tonchange={change}\n\t\t/>\n\t{/if}\n\n\t{#if clear && !disabled && value}\n\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t<i class=\"wx-icon wxi-close\" onclick={clearValue}></i>\n\t\t{#if hasLeftIcon}<i class=\"wx-icon {icon}\"></i>{/if}\n\t{:else if icon}<i class=\"wx-icon {icon}\"></i>{/if}\n</div>\n\n<style>\n\t.wx-text {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n\t.wx-text.wx-disabled .wx-icon {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\t.wx-text.wx-error .wx-icon {\n\t\tcolor: var(--wx-color-danger);\n\t}\n\t.wx-icon {\n\t\tposition: absolute;\n\t\tright: var(--wx-input-icon-indent);\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tfont-size: var(--wx-input-icon-size);\n\t\tline-height: 1;\n\t\twidth: var(--wx-input-icon-size);\n\t\theight: var(--wx-input-icon-size);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tpointer-events: none;\n\t\tuser-select: none;\n\t\tcolor: var(--wx-input-icon-color);\n\t}\n\t.wx-icon:before {\n\t\tdisplay: block;\n\t}\n\n\t.wx-icon-left .wx-icon:not(.wxi-close) {\n\t\tright: auto;\n\t\tleft: var(--wx-input-icon-indent);\n\t}\n\n\t.wx-icon.wxi-close {\n\t\tpointer-events: all;\n\t\tcursor: pointer;\n\t}\n\t.wx-icon.wxi-close:hover {\n\t\tbackground: var(--wx-background-hover);\n\t\tborder-radius: var(--wx-icon-border-radius);\n\t}\n\n\tinput {\n\t\tdisplay: block;\n\t\twidth: var(--wx-input-width);\n\t\theight: var(--wx-input-height);\n\t\tmax-width: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\toutline: none;\n\t\tfont-family: var(--wx-input-font-family);\n\t\tfont-size: var(--wx-input-font-size);\n\t\tline-height: var(--wx-input-line-height);\n\t\tfont-weight: var(--wx-input-font-weight);\n\t\ttext-align: var(--wx-input-text-align);\n\t\tcolor: var(--wx-input-font-color);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tbackground: var(--wx-input-background);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\tinput:focus {\n\t\tborder: var(--wx-input-border-focus);\n\t}\n\tinput::placeholder {\n\t\tcolor: var(--wx-input-placeholder-color);\n\t}\n\n\t.wx-icon-left input {\n\t\tpadding-left: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t}\n\t.wx-icon-right input,\n\t.wx-text.wx-clear input {\n\t\tpadding-right: calc(\n\t\t\tvar(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2\n\t\t);\n\t}\n\n\tinput[disabled] {\n\t\tcursor: not-allowed !important;\n\t\tborder: var(--wx-input-border-disabled);\n\t\tcolor: var(--wx-color-font-disabled);\n\t\tbackground: var(--wx-input-background-disabled);\n\t\tpointer-events: none;\n\t}\n\tinput[disabled]::placeholder {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\n\t.wx-error input {\n\t\tborder-color: var(--wx-color-danger);\n\t\tcolor: var(--wx-color-danger);\n\t}\n</style>\n","<script>\n\timport { dateToString, getDuodecade } from \"@svar-ui/lib-dom\";\n\timport { getContext } from \"svelte\";\n\n\tconst { calendar, formats } = getContext(\"wx-i18n\").getRaw();\n\n\tlet { date, type, part, onshift } = $props();\n\n\tconst year = $derived(date.getFullYear());\n\tconst label = $derived.by(() => {\n\t\tswitch (type) {\n\t\t\tcase \"month\":\n\t\t\t\treturn dateToString(formats.monthYearFormat, calendar)(date);\n\t\t\tcase \"year\":\n\t\t\t\treturn dateToString(formats.yearFormat, calendar)(date);\n\t\t\tcase \"duodecade\": {\n\t\t\t\tconst { start, end } = getDuodecade(year);\n\t\t\t\tconst yearFormat = dateToString(formats.yearFormat, calendar);\n\t\t\t\treturn `${yearFormat(new Date(start, 0, 1))} - ${yearFormat(new Date(end, 11, 31))}`;\n\t\t\t}\n\t\t}\n\t});\n\n\tfunction changeType() {\n\t\tonshift && onshift({ diff: 0, type });\n\t}\n</script>\n\n<div class=\"wx-header\">\n\t{#if part != \"right\"}\n\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t<i\n\t\t\tclass=\"wx-pager wxi-angle-left\"\n\t\t\tonclick={() => onshift && onshift({ diff: -1, type })}\n\t\t></i>\n\t{:else}<span class=\"wx-spacer\"></span>{/if}\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<span class=\"wx-label\" onclick={changeType}>{label}</span>\n\t{#if part != \"left\"}\n\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t<i\n\t\t\tclass=\"wx-pager wxi-angle-right\"\n\t\t\tonclick={() => onshift && onshift({ diff: 1, type })}\n\t\t></i>\n\t{:else}<span class=\"wx-spacer\"></span>{/if}\n</div>\n\n<style>\n\t.wx-header {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tmargin-bottom: calc(var(--wx-calendar-gap) * 2);\n\t\tfont-size: var(--wx-calendar-header-font-size);\n\t\tline-height: var(--wx-calendar-header-line-height);\n\t\tfont-weight: var(--wx-calendar-header-font-weight);\n\t}\n\n\t.wx-spacer,\n\t.wx-pager {\n\t\twidth: var(--wx-calendar-cell-size);\n\t\theight: var(--wx-calendar-cell-size);\n\t\tflex-shrink: 0;\n\t}\n\t.wx-pager {\n\t\tcursor: pointer;\n\t\tborder-radius: 50%;\n\t\tline-height: 1;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tuser-select: none;\n\t\tcolor: var(--wx-calendar-icon-color);\n\t\tfont-size: var(--wx-calendar-icon-size);\n\t}\n\t.wx-pager:before {\n\t\tdisplay: block;\n\t}\n\t.wx-pager:hover {\n\t\tbackground-color: var(--wx-background-hover);\n\t}\n\n\t.wx-label {\n\t\tflex: 0 0 calc(100% - var(--wx-calendar-cell-size) * 2);\n\t\tmax-width: calc(100% - var(--wx-calendar-cell-size) * 2);\n\t\ttext-align: center;\n\t\tcolor: var(--wx-color-link);\n\t\tcursor: pointer;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { delegateClick } from \"@svar-ui/lib-dom\";\n\timport { defaultLocale } from \"../helpers/locale\";\n\n\tlet {\n\t\tvalue,\n\t\tcurrent = $bindable(),\n\t\tpart = \"\",\n\t\tmarkers = null,\n\t\toncancel,\n\t\tonchange,\n\t} = $props();\n\n\tconst locale = (getContext(\"wx-i18n\") || defaultLocale()).getRaw().calendar;\n\tconst weekStart = (locale.weekStart || 7) % 7;\n\tconst weekdays = locale.dayShort\n\t\t.slice(weekStart)\n\t\t.concat(locale.dayShort.slice(0, weekStart));\n\n\tconst dv = (d, dm, dd) =>\n\t\tnew Date(\n\t\t\td.getFullYear(),\n\t\t\td.getMonth() + (dm || 0),\n\t\t\td.getDate() + (dd || 0)\n\t\t);\n\tlet ranges = part !== \"normal\";\n\n\tfunction isWeekEnd(date) {\n\t\tconst d = date.getDay();\n\t\treturn d === 0 || d === 6;\n\t}\n\n\tfunction getStart() {\n\t\tconst start = dv(current, 0, 1 - current.getDate());\n\t\tstart.setDate(\n\t\t\tstart.getDate() - ((start.getDay() - (weekStart - 7)) % 7)\n\t\t);\n\t\treturn start;\n\t}\n\tfunction getEnd() {\n\t\tconst end = dv(current, 1, -current.getDate());\n\t\tend.setDate(end.getDate() + ((6 - end.getDay() + weekStart) % 7));\n\t\treturn end;\n\t}\n\n\tconst selectDates = {\n\t\tclick: selectDate,\n\t};\n\n\tfunction selectDate(date, e) {\n\t\te.stopPropagation();\n\t\tonchange && onchange(new Date(date));\n\t\toncancel && oncancel();\n\t}\n\n\tconst date = $derived.by(() => {\n\t\tif (part == \"normal\") return [value ? dv(value).valueOf() : 0];\n\t\treturn value\n\t\t\t? [\n\t\t\t\t\tvalue.start ? dv(value.start).valueOf() : 0,\n\t\t\t\t\tvalue.end ? dv(value.end).valueOf() : 0,\n\t\t\t\t]\n\t\t\t: [0, 0];\n\t});\n\n\tconst days = $derived.by(() => {\n\t\tconst start = getStart();\n\t\tconst end = getEnd();\n\t\tconst curMonth = current.getMonth();\n\n\t\tlet days = [];\n\t\tfor (let d = start; d <= end; d.setDate(d.getDate() + 1)) {\n\t\t\tconst day = {\n\t\t\t\tday: d.getDate(),\n\t\t\t\tin: d.getMonth() === curMonth,\n\t\t\t\tdate: d.valueOf(),\n\t\t\t};\n\n\t\t\tlet css = \"\";\n\t\t\tcss += !day.in ? \" wx-inactive\" : \"\";\n\t\t\tcss += date.indexOf(day.date) > -1 ? \" wx-selected\" : \"\";\n\n\t\t\tif (ranges) {\n\t\t\t\tconst s = day.date == date[0];\n\t\t\t\tconst e = day.date == date[1];\n\t\t\t\tif (s && !e) css += \" wx-left\";\n\t\t\t\telse if (e && !s) css += \" wx-right\";\n\n\t\t\t\tif (day.date > date[0] && day.date < date[1])\n\t\t\t\t\tcss += \" wx-inrange\";\n\t\t\t}\n\n\t\t\tcss += isWeekEnd(d) ? \" wx-weekend\" : \"\";\n\t\t\tif (markers) {\n\t\t\t\tconst mark = markers(d);\n\t\t\t\tif (mark) css += \" \" + mark;\n\t\t\t}\n\n\t\t\tdays.push({ ...day, css });\n\t\t}\n\t\treturn days;\n\t});\n</script>\n\n<div>\n\t<div class=\"wx-weekdays\">\n\t\t{#each weekdays as day}\n\t\t\t<div class=\"wx-weekday\">{day}</div>\n\t\t{/each}\n\t</div>\n\t<div class=\"wx-days\" use:delegateClick={selectDates}>\n\t\t{#each days as day (day.date)}\n\t\t\t<div\n\t\t\t\tclass=\"wx-day {day.css}\"\n\t\t\t\tclass:wx-out={!day.in}\n\t\t\t\tdata-id={day.date}\n\t\t\t>\n\t\t\t\t{day.day}\n\t\t\t</div>\n\t\t{/each}\n\t</div>\n</div>\n\n<style>\n\t.wx-weekdays {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\tmargin-bottom: calc(var(--wx-calendar-gap) * 1.5);\n\t}\n\n\t.wx-weekday {\n\t\tflex: 0 0 calc(100% / 7);\n\t\tmax-width: calc(100% / 7);\n\t\tfont-size: var(--wx-font-size-sm);\n\t\tline-height: var(--wx-line-height-sm);\n\t\tcolor: var(--wx-color-font-alt);\n\t\ttext-align: center;\n\t}\n\n\t.wx-days {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.wx-day {\n\t\tborder-radius: var(--wx-calendar-border-radius);\n\t\tflex: 0 0 calc(100% / 7);\n\t\tmax-width: calc(100% / 7);\n\t\theight: calc(\n\t\t\tvar(--wx-calendar-cell-size) - var(--wx-calendar-line-gap) * 2\n\t\t);\n\t\tmargin: calc(var(--wx-calendar-line-gap) / 2) 0;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\ttext-align: center;\n\t}\n\t.wx-day:not(:global(.wx-out)):not(:global(.wx-selected)) {\n\t\tcursor: pointer;\n\t}\n\t.wx-day:not(:global(.wx-out)):not(:global(.wx-selected)):hover {\n\t\tbackground: var(--wx-background-hover);\n\t}\n\t.wx-day.wx-out {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\t.wx-day.wx-selected:not(:global(.wx-out)) {\n\t\tbackground: var(--wx-color-primary);\n\t\tcolor: var(--wx-color-primary-font);\n\t}\n\t.wx-day.wx-selected.wx-left:not(:global(.wx-out)) {\n\t\tborder-radius: calc(var(--wx-calendar-border-radius)) 0 0\n\t\t\tcalc(var(--wx-calendar-border-radius));\n\t}\n\t.wx-day.wx-selected.wx-right:not(:global(.wx-out)) {\n\t\tborder-radius: 0 calc(var(--wx-calendar-border-radius))\n\t\t\tcalc(var(--wx-calendar-border-radius)) 0;\n\t}\n\t.wx-day.wx-inrange:not(:global(.wx-out)) {\n\t\tborder-radius: 0;\n\t\tbackground: var(--wx-color-primary-selected);\n\t}\n\t.wx-day.wx-weekend:not(:global(.wx-selected)):not(:global(.wx-out)) {\n\t\tcolor: var(--wx-color-primary);\n\t}\n\t.wx-day.wx-inactive {\n\t\tpointer-events: none;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { delegateClick } from \"@svar-ui/lib-dom\";\n\timport Button from \"./Button.svelte\";\n\timport { getPartValue } from \"./helpers\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tcurrent = $bindable(),\n\t\tpart,\n\t\toncancel,\n\t\tonchange,\n\t\tonshift,\n\t} = $props();\n\n\tconst locale = getContext(\"wx-i18n\").getRaw().calendar;\n\tconst months = locale.monthShort;\n\n\tconst monthNum = $derived.by(() => current.getMonth());\n\n\tconst selectMonths = {\n\t\tclick: selectMonth,\n\t};\n\tfunction selectMonth(month, e) {\n\t\tif (month || month === 0) {\n\t\t\te.stopPropagation();\n\t\t\tcurrent.setMonth(month);\n\t\t\tcurrent = new Date(current);\n\n\t\t\tonshift && onshift({});\n\t\t}\n\n\t\tif (part === \"normal\") value = new Date(current);\n\n\t\toncancel && oncancel();\n\t}\n\n\tfunction done() {\n\t\tconst date = new Date(getPartValue(value, part) || current);\n\n\t\tdate.setMonth(current.getMonth());\n\t\tdate.setFullYear(current.getFullYear());\n\n\t\tonchange && onchange(date);\n\t}\n</script>\n\n<div class=\"wx-months\" use:delegateClick={selectMonths}>\n\t{#each months as month, i}\n\t\t<div class=\"wx-month\" class:wx-current={monthNum === i} data-id={i}>\n\t\t\t{month}\n\t\t</div>\n\t{/each}\n</div>\n<div class=\"wx-buttons\">\n\t<Button onclick={done}>{locale.done}</Button>\n</div>\n\n<style>\n\t.wx-months {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: var(--wx-calendar-gap);\n\t}\n\n\t.wx-month {\n\t\tflex: 0 0 calc(100% / 4 - var(--wx-calendar-gap) * 2);\n\t\tmax-width: calc(100% / 4 - var(--wx-calendar-gap) * 2);\n\t\tmargin: calc(var(--wx-calendar-gap) * 2) var(--wx-calendar-gap);\n\t\ttext-align: center;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: var(--wx-calendar-cell-size);\n\t\tborder-radius: var(--wx-calendar-border-radius);\n\t}\n\t.wx-month.wx-current {\n\t\tbackground: var(--wx-color-primary);\n\t\tcolor: var(--wx-color-primary-font);\n\t}\n\t.wx-month:not(:global(.wx-current)):hover {\n\t\tbackground-color: var(--wx-background-hover);\n\t}\n\n\t.wx-buttons {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tmargin-top: var(--wx-calendar-gap);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { getDuodecade, delegateClick } from \"@svar-ui/lib-dom\";\n\timport Button from \"./Button.svelte\";\n\timport { getPartValue } from \"./helpers\";\n\n\tconst _ = getContext(\"wx-i18n\").getRaw().calendar;\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tcurrent = $bindable(),\n\t\toncancel,\n\t\tonchange,\n\t\tonshift,\n\t\tpart,\n\t} = $props();\n\n\tconst year = $derived(current.getFullYear());\n\tconst years = $derived.by(() => {\n\t\tconst { start, end } = getDuodecade(year);\n\t\tconst years = [];\n\t\tfor (let y = start; y <= end; ++y) {\n\t\t\tyears.push(y);\n\t\t}\n\t\treturn years;\n\t});\n\n\tconst selectYears = {\n\t\tclick: selectYear,\n\t};\n\tfunction selectYear(year, e) {\n\t\tif (year) {\n\t\t\te.stopPropagation();\n\t\t\tcurrent.setFullYear(year);\n\t\t\tcurrent = new Date(current);\n\n\t\t\tonshift && onshift({});\n\t\t}\n\n\t\tif (part === \"normal\") value = new Date(current);\n\n\t\toncancel && oncancel();\n\t}\n\n\tfunction done() {\n\t\tconst date = new Date(getPartValue(value, part) || current);\n\n\t\tdate.setFullYear(current.getFullYear());\n\n\t\tonchange && onchange(date);\n\t}\n</script>\n\n<div class=\"wx-years\" use:delegateClick={selectYears}>\n\t{#each years as y, i}\n\t\t<div\n\t\t\tclass=\"wx-year\"\n\t\t\tclass:wx-current={year == y}\n\t\t\tclass:wx-prev-decade={i === 0}\n\t\t\tclass:wx-next-decade={i === 11}\n\t\t\tdata-id={y}\n\t\t>\n\t\t\t{y}\n\t\t</div>\n\t{/each}\n</div>\n<div class=\"wx-buttons\">\n\t<Button onclick={done}>{_.done}</Button>\n</div>\n\n<style>\n\t.wx-years {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: var(--wx-calendar-gap);\n\t}\n\n\t.wx-year {\n\t\tflex: 0 0 calc(100% / 4 - var(--wx-calendar-gap) * 2);\n\t\tmax-width: calc(100% / 4 - var(--wx-calendar-gap) * 2);\n\t\tmargin: calc(var(--wx-calendar-gap) * 2) var(--wx-calendar-gap);\n\t\ttext-align: center;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: var(--wx-calendar-cell-size);\n\t\tborder-radius: var(--wx-calendar-border-radius);\n\t}\n\t.wx-year.wx-current {\n\t\tbackground: var(--wx-color-primary);\n\t\tcolor: var(--wx-color-primary-font);\n\t}\n\t.wx-year:not(:global(.wx-current)):hover {\n\t\tbackground-color: var(--wx-background-hover);\n\t}\n\t.wx-prev-decade,\n\t.wx-next-decade {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n\t.wx-buttons {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tmargin-top: var(--wx-calendar-gap);\n\t}\n</style>\n","import Month from \"./Month.svelte\";\nimport Year from \"./Year.svelte\";\nimport Duodecade from \"./Duodecade.svelte\";\n\nexport const configs = {\n\tmonth: {\n\t\tcomponent: Month,\n\t\tnext: nextMonth,\n\t\tprev: prevMonth,\n\t},\n\tyear: {\n\t\tcomponent: Year,\n\t\tnext: nextYear,\n\t\tprev: prevYear,\n\t},\n\tduodecade: {\n\t\tcomponent: Duodecade,\n\t\tnext: nextDuodecade,\n\t\tprev: prevDuodecade,\n\t},\n};\n\nfunction prevMonth(current) {\n\tcurrent = new Date(current);\n\tcurrent.setMonth(current.getMonth() - 1);\n\treturn current;\n}\nfunction nextMonth(current) {\n\tcurrent = new Date(current);\n\tcurrent.setMonth(current.getMonth() + 1);\n\treturn current;\n}\nfunction prevYear(current) {\n\tcurrent = new Date(current);\n\tcurrent.setFullYear(current.getFullYear() - 1);\n\treturn current;\n}\nfunction nextYear(current) {\n\tcurrent = new Date(current);\n\tcurrent.setFullYear(current.getFullYear() + 1);\n\treturn current;\n}\nfunction prevDuodecade(current) {\n\tcurrent = new Date(current);\n\tcurrent.setFullYear(current.getFullYear() - 10);\n\treturn current;\n}\nfunction nextDuodecade(current) {\n\tcurrent = new Date(current);\n\tcurrent.setFullYear(current.getFullYear() + 10);\n\treturn current;\n}\n\nexport function getPartValue(value, part) {\n\tlet date;\n\tif (part === \"normal\") date = value;\n\telse {\n\t\tconst { start, end } = value;\n\t\tif (part === \"left\") date = start;\n\t\telse if (part == \"right\") date = end;\n\t\telse date = start ? end : start;\n\t}\n\n\treturn date;\n}\n","<script>\n\timport { getContext } from \"svelte\";\n\timport Header from \"./Header.svelte\";\n\timport Button from \"./Button.svelte\";\n\timport { configs } from \"./helpers\";\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"calendar\");\n\n\tlet {\n\t\tvalue,\n\t\tcurrent = $bindable(),\n\t\tpart = \"normal\",\n\t\tmarkers = null,\n\t\tbuttons = [\"clear\", \"today\"],\n\t\tonshift: shift,\n\t\tonchange: change,\n\t} = $props();\n\n\tlet type = $state(\"month\");\n\n\tlet buttonList = $derived.by(() => {\n\t\tif (Array.isArray(buttons)) return buttons;\n\t\treturn buttons ? [\"clear\", \"today\"] : [];\n\t});\n\n\tfunction selectDate(ev, date) {\n\t\tev.preventDefault();\n\t\tchange && change({ value: date });\n\t}\n\n\tfunction oncancel() {\n\t\tif (type === \"duodecade\") type = \"year\";\n\t\telse if (type === \"year\") type = \"month\";\n\t}\n\n\tfunction onshift(ev) {\n\t\tconst { diff } = ev;\n\n\t\tif (diff === 0) {\n\t\t\tif (type === \"month\") type = \"year\";\n\t\t\telse if (type === \"year\") type = \"duodecade\";\n\t\t\treturn;\n\t\t}\n\t\tif (diff) {\n\t\t\tconst obj = configs[type];\n\t\t\tcurrent = diff > 0 ? obj.next(current) : obj.prev(current);\n\t\t}\n\t\tshift && shift();\n\t}\n\n\tfunction onchange(value) {\n\t\ttype = \"month\";\n\t\tchange && change({ select: true, value });\n\t}\n\n\tfunction getButtonValue(btn) {\n\t\tif (btn === \"done\") return -1;\n\t\tif (btn === \"clear\") return null;\n\t\tif (btn === \"today\") return new Date();\n\t}\n\n\tconst SvelteComponent = $derived(configs[type].component);\n</script>\n\n<div\n\tclass=\"wx-calendar {part !== 'normal' && part !== 'both' ? 'wx-part' : ''}\"\n>\n\t<div class=\"wx-wrap\">\n\t\t<Header date={current} {part} {type} {onshift} />\n\t\t<div>\n\t\t\t<SvelteComponent\n\t\t\t\t{value}\n\t\t\t\tbind:current\n\t\t\t\t{part}\n\t\t\t\t{markers}\n\t\t\t\t{onchange}\n\t\t\t\t{oncancel}\n\t\t\t\t{onshift}\n\t\t\t/>\n\n\t\t\t{#if type === \"month\" && buttonList.length > 0}\n\t\t\t\t<div class=\"wx-buttons\">\n\t\t\t\t\t{#each buttonList as btn}\n\t\t\t\t\t\t<div class=\"wx-button-item\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonclick={e =>\n\t\t\t\t\t\t\t\t\tselectDate(e, getButtonValue(btn))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{_(btn)}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{/each}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t</div>\n\t</div>\n</div>\n\n<style>\n\t.wx-calendar {\n\t\theight: auto;\n\t\twidth: 100%;\n\t\tpadding: var(--wx-calendar-padding);\n\t\tcursor: default;\n\t\tfont-family: var(--wx-calendar-font-family);\n\t\tfont-size: var(--wx-calendar-font-size);\n\t\tline-height: var(--wx-calendar-line-height);\n\t\tfont-weight: var(--wx-calendar-font-weight);\n\t\tcolor: var(--wx-calendar-font-color);\n\t}\n\t.wx-calendar.wx-part {\n\t\tpadding-bottom: 0;\n\t}\n\t.wx-wrap {\n\t\twidth: calc(var(--wx-calendar-cell-size) * 7);\n\t\tmargin: 0 auto;\n\t}\n\t.wx-buttons {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t\tmargin-top: calc(var(--wx-calendar-gap) * 2);\n\t}\n\t.wx-button-item + .wx-button-item {\n\t\tmargin-left: calc(var(--wx-calendar-gap) * 3);\n\t}\n</style>\n","<script>\n\timport { getContext, setContext } from \"svelte\";\n\timport { locale } from \"@svar-ui/lib-dom\";\n\timport { en } from \"@svar-ui/core-locales\";\n\n\tlet { words = null, optional = false, children } = $props();\n\n\tlet l = getContext(\"wx-i18n\");\n\tif (!l || words !== null) {\n\t\tif (!l) {\n\t\t\tl = locale(en);\n\t\t}\n\t\tl = l.extend(words, optional);\n\t\tsetContext(\"wx-i18n\", l);\n\t}\n</script>\n\n{@render children?.()}\n","<script>\n\timport Panel from \"./calendar/Panel.svelte\";\n\timport Locale from \"../Locale.svelte\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tcurrent = $bindable(),\n\t\tmarkers = null,\n\t\tbuttons = [\"clear\", \"today\"],\n\t\tonchange,\n\t} = $props();\n\n\tfunction fixCurrent(force) {\n\t\tif (!current || force) current = value ? new Date(value) : new Date();\n\t\tcurrent.setDate(1);\n\t}\n\tfixCurrent(value);\n\n\tfunction change(v) {\n\t\tconst x = v.value;\n\t\tif (x) {\n\t\t\tvalue = new Date(x);\n\t\t\tfixCurrent(true);\n\t\t} else {\n\t\t\tvalue = null;\n\t\t}\n\n\t\tonchange && onchange({ value });\n\t}\n</script>\n\n<Locale>\n\t<Panel {value} bind:current {markers} {buttons} onchange={change} />\n</Locale>\n","export function toDateDropdown(dropdown) {\n\tif (!dropdown) dropdown = {};\n\tif (!dropdown.width) dropdown.width = \"unset\";\n\treturn dropdown;\n}\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { dateToString } from \"@svar-ui/lib-dom\";\n\n\timport Text from \"./Text.svelte\";\n\timport Dropdown from \"./Dropdown.svelte\";\n\timport Calendar from \"./Calendar.svelte\";\n\timport { defaultLocale } from \"./helpers/locale\";\n\timport { toDateDropdown } from \"./helpers/dropdown\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tid,\n\t\tdisabled = false,\n\t\terror = false,\n\t\tplaceholder = \"\",\n\t\tformat = \"\",\n\t\tbuttons = [\"clear\", \"today\"],\n\t\tcss = \"\",\n\t\ttitle = \"\",\n\t\teditable = false,\n\t\tclear = false,\n\t\tonchange,\n\t\tdropdown = {},\n\t} = $props();\n\n\tconst { calendar: calendarLocale, formats } = (\n\t\tgetContext(\"wx-i18n\") || defaultLocale()\n\t).getRaw();\n\tconst f = format || formats.dateFormat;\n\tlet dateFormat =\n\t\ttypeof f === \"function\" ? f : dateToString(f, calendarLocale);\n\n\tlet popup = $state();\n\n\tfunction oncancel() {\n\t\tpopup = false;\n\t}\n\n\tfunction doChange(v) {\n\t\t// skip \"select\" event if the same value\n\t\t// or different objects with the same value\n\t\tconst skipEvent =\n\t\t\tv === value ||\n\t\t\t(v && value && v.valueOf() === value.valueOf()) ||\n\t\t\t(!v && !value);\n\n\t\tvalue = v;\n\t\tif (!skipEvent) {\n\t\t\tonchange && onchange({ value });\n\t\t}\n\n\t\t// fire after on-click finished\n\t\tsetTimeout(oncancel, 1);\n\t}\n\n\tconst formattedValue = $derived(value ? dateFormat(value) : \"\");\n\n\tfunction change({ value: v, input }) {\n\t\tif (!editable && !clear) return;\n\t\tif (input) return;\n\n\t\t// convert to date, but ignore empty string input\n\t\tlet date =\n\t\t\ttypeof editable === \"function\"\n\t\t\t\t? editable(v)\n\t\t\t\t: v\n\t\t\t\t\t? new Date(v)\n\t\t\t\t\t: null;\n\n\t\t// if date is invalid ( incorrect text input ) then use old value\n\t\t// else use the entered date\n\t\t// in any case fallback to null, to prevent undefined as value\n\t\tdate = isNaN(date) ? value || null : date || null;\n\t\tdoChange(date);\n\t}\n</script>\n\n<svelte:window onscroll={oncancel} />\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-datepicker\" onclick={() => (popup = true)}>\n\t<Text\n\t\t{css}\n\t\t{title}\n\t\tvalue={formattedValue}\n\t\t{id}\n\t\treadonly={!editable}\n\t\t{disabled}\n\t\t{error}\n\t\t{placeholder}\n\t\toninput={oncancel}\n\t\tonchange={change}\n\t\ticon=\"wxi-calendar\"\n\t\tinputStyle=\"cursor: pointer; width: 100%; padding-right: calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2);\"\n\t\t{clear}\n\t/>\n\n\t{#if popup && !disabled}\n\t\t<Dropdown {oncancel} {...toDateDropdown(dropdown)}>\n\t\t\t<Calendar {buttons} {value} onchange={e => doChange(e.value)} />\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-datepicker {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n</style>\n","<script>\n\timport { untrack } from \"svelte\";\n\timport Panel from \"./calendar/Panel.svelte\";\n\timport Locale from \"../Locale.svelte\";\n\n\tlet {\n\t\tstart = $bindable(),\n\t\tend = $bindable(),\n\t\tcurrent,\n\t\tmonths = 2,\n\t\tmarkers = null,\n\t\tbuttons = [\"clear\", \"today\"],\n\t\tonchange,\n\t} = $props();\n\n\tfunction addMonth(l, diff, rPrev) {\n\t\tconst r = new Date(l);\n\t\tr.setMonth(r.getMonth() + diff);\n\t\tif (rPrev && r.valueOf() == rPrev.valueOf()) return rPrev;\n\t\treturn r;\n\t}\n\n\tlet leftCurrent = $state(),\n\t\trightCurrent = $state();\n\n\t$effect.pre(() => {\n\t\tstart;\n\t\tcurrent;\n\t\tuntrack(() => {\n\t\t\tif (!leftCurrent) {\n\t\t\t\tonLeft(start ? new Date(start) : current || new Date());\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction onLeft(v) {\n\t\tleftCurrent = v;\n\t\tleftCurrent.setDate(1);\n\t\tif (leftCurrent) rightCurrent = addMonth(leftCurrent, 1);\n\t}\n\tfunction onRight(v) {\n\t\trightCurrent = v;\n\t\trightCurrent.setDate(1);\n\t\tif (rightCurrent) leftCurrent = addMonth(rightCurrent, -1);\n\t}\n\n\tfunction doChangeStart(v) {\n\t\tselectChange(v);\n\t\tif (start) onLeft(new Date(start));\n\t}\n\tfunction doChangeEnd(v) {\n\t\tselectChange(v);\n\t\tif (end) onRight(new Date(end));\n\t}\n\tfunction selectChange(ev) {\n\t\tconst v = ev.value;\n\t\tconst final = v === -1;\n\t\tif (!final) {\n\t\t\tif (ev.select) {\n\t\t\t\tif (!start || end) {\n\t\t\t\t\tstart = v;\n\t\t\t\t\tend = null;\n\t\t\t\t} else {\n\t\t\t\t\tif (start > v) {\n\t\t\t\t\t\tend = start;\n\t\t\t\t\t\tstart = v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tend = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!v) {\n\t\t\t\t\tstart = end = null;\n\t\t\t\t} else {\n\t\t\t\t\tstart = new Date(v);\n\t\t\t\t\tend = new Date(v);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (final || !buttons.includes(\"done\"))\n\t\t\tonchange && onchange({ start, end });\n\t}\n</script>\n\n<Locale>\n\t{#if months == 1}\n\t\t<Panel\n\t\t\tvalue={{ start, end }}\n\t\t\tbind:current={leftCurrent}\n\t\t\t{markers}\n\t\t\t{buttons}\n\t\t\tpart=\"both\"\n\t\t\tonchange={doChangeStart}\n\t\t/>\n\t{:else}\n\t\t<div class=\"wx-rangecalendar\">\n\t\t\t<div class=\"wx-half\">\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={{ start, end }}\n\t\t\t\t\tbind:current={leftCurrent}\n\t\t\t\t\t{markers}\n\t\t\t\t\tbuttons={false}\n\t\t\t\t\tpart=\"left\"\n\t\t\t\t\tonshift={() => onLeft(leftCurrent)}\n\t\t\t\t\tonchange={doChangeStart}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"wx-half\">\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={{ start, end }}\n\t\t\t\t\tbind:current={rightCurrent}\n\t\t\t\t\t{markers}\n\t\t\t\t\t{buttons}\n\t\t\t\t\tpart=\"right\"\n\t\t\t\t\tonshift={() => onRight(rightCurrent)}\n\t\t\t\t\tonchange={doChangeEnd}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t{/if}\n</Locale>\n\n<style>\n\t.wx-rangecalendar {\n\t\tdisplay: flex;\n\t\tpadding-bottom: var(--wx-calendar-padding);\n\t}\n\n\t.wx-half {\n\t\tflex: 1;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { dateToString } from \"@svar-ui/lib-dom\";\n\n\timport Text from \"./Text.svelte\";\n\timport Dropdown from \"./Dropdown.svelte\";\n\timport RangeCalendar from \"./RangeCalendar.svelte\";\n\timport { defaultLocale } from \"./helpers/locale\";\n\timport { toDateDropdown } from \"./helpers/dropdown\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tid,\n\t\tdisabled = false,\n\t\terror = false,\n\t\tplaceholder = \"\",\n\t\tcss = \"\",\n\t\ttitle = \"\",\n\t\tformat = \"\",\n\t\tmonths = 2,\n\t\tbuttons = [\"clear\", \"today\"],\n\t\teditable = false,\n\t\tclear = false,\n\t\tonchange,\n\t\tdropdown,\n\t} = $props();\n\n\tconst { calendar: calendarLocale, formats } = (\n\t\tgetContext(\"wx-i18n\") || defaultLocale()\n\t).getRaw();\n\tconst f = format || formats?.dateFormat;\n\tlet dateFormat =\n\t\ttypeof f === \"function\" ? f : dateToString(f, calendarLocale);\n\tlet popup = $state();\n\n\tfunction oncancel() {\n\t\t// popup was closed before full range selected\n\t\tif (value && value.start && !value.end) onchange && onchange({ value });\n\t\tpopup = false;\n\t}\n\n\tlet formattedValue = $derived(\n\t\tvalue\n\t\t\t? value.start\n\t\t\t\t? dateFormat(value.start) +\n\t\t\t\t\t(value.end ? ` - ${dateFormat(value.end)}` : \"\")\n\t\t\t\t: dateFormat(value)\n\t\t\t: \"\"\n\t);\n\n\tfunction doChange(d) {\n\t\tvalue = d.start || d.end ? { start: d.start, end: d.end } : null;\n\t\t// fire after on-click finished\n\t\tif ((d.start && d.end) || (!d.start && !d.end)) {\n\t\t\t// FIXME - select event will trigger even if the same value\n\t\t\tonchange && onchange({ value });\n\t\t\tsetTimeout(oncancel, 1);\n\t\t}\n\t}\n\n\tfunction doInputChange(ev) {\n\t\tif (!editable && !clear) return;\n\n\t\tconst { value: v, input } = ev;\n\t\tif (input) return;\n\n\t\tconst [s, e] = v.split(\" -\").map((a, i) => {\n\t\t\tconst av = a.trim();\n\t\t\tlet date =\n\t\t\t\ttypeof editable === \"function\"\n\t\t\t\t\t? editable(av)\n\t\t\t\t\t: av\n\t\t\t\t\t\t? new Date(av)\n\t\t\t\t\t\t: null;\n\n\t\t\t// if date is invalid ( incorrect text input ) then use old value\n\t\t\t// else use the entered date\n\t\t\t// in any case fallback to null, to prevent undefined as value\n\t\t\tlet value = i === 0 ? start : end;\n\t\t\treturn isNaN(date) ? (value ? value : null) : date || null;\n\t\t});\n\n\t\tdoChange({ start: s, end: e });\n\t}\n\n\tconst start = $derived(value ? value.start || null : null);\n\tconst end = $derived(value ? value.end || null : null);\n</script>\n\n<svelte:window onscroll={oncancel} />\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tclass=\"wx-daterangepicker\"\n\tclass:wx-disabled={disabled}\n\tclass:wx-error={error}\n\tonclick={() => (popup = true)}\n>\n\t<Text\n\t\t{css}\n\t\t{title}\n\t\tvalue={formattedValue}\n\t\t{id}\n\t\treadonly={!editable}\n\t\t{disabled}\n\t\t{placeholder}\n\t\t{error}\n\t\tonchange={doInputChange}\n\t\ticon=\"wxi-calendar\"\n\t\tinputStyle=\"cursor: pointer; width: 100%; padding-right: calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2);\"\n\t\t{clear}\n\t/>\n\n\t{#if popup && !disabled}\n\t\t<Dropdown {oncancel} {...toDateDropdown(dropdown)}>\n\t\t\t<RangeCalendar\n\t\t\t\t{oncancel}\n\t\t\t\t{buttons}\n\t\t\t\t{start}\n\t\t\t\t{end}\n\t\t\t\t{months}\n\t\t\t\tonchange={doChange}\n\t\t\t/>\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-daterangepicker {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n</style>\n","<script>\n\timport { hotkeys } from \"@svar-ui/lib-dom\";\n\timport Button from \"./Button.svelte\";\n\n\tlet { hotkey = null, toggleButton, children } = $props();\n\n\t$effect(() => {\n\t\tif (hotkey)\n\t\t\t$hotkeys.configure(\n\t\t\t\t{\n\t\t\t\t\t[hotkey]: toggleFullscreen,\n\t\t\t\t},\n\t\t\t\tnode\n\t\t\t);\n\t});\n\n\tlet node = null;\n\tlet inFullscreen = $state(false);\n\tlet icon = $derived(`wxi-${inFullscreen ? \"collapse\" : \"expand\"}`);\n\n\tfunction toggleFullscreen() {\n\t\tif (!inFullscreen && node) {\n\t\t\tnode.requestFullscreen();\n\t\t} else if (inFullscreen) {\n\t\t\tdocument.exitFullscreen();\n\t\t}\n\t\tinFullscreen = !inFullscreen;\n\t}\n\n\tconst setFullscreenState = () => {\n\t\tinFullscreen = document.fullscreenElement === node;\n\t};\n\n\t$effect(() => {\n\t\tdocument.addEventListener(\"fullscreenchange\", setFullscreenState);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t\"fullscreenchange\",\n\t\t\t\tsetFullscreenState\n\t\t\t);\n\t\t};\n\t});\n</script>\n\n<div class=\"wx-fullscreen\" bind:this={node} tabindex=\"-1\">\n\t{@render children?.()}\n\t{#if toggleButton}\n\t\t{@render toggleButton(toggleFullscreen, inFullscreen)}\n\t{:else}\n\t\t<Button css=\"wx-fullscreen-button\" onclick={toggleFullscreen}>\n\t\t\t<i class={`${icon} wx-fullscreen-icon`}> </i>\n\t\t</Button>\n\t{/if}\n</div>\n\n<style>\n\t.wx-fullscreen::backdrop {\n\t\tbackground-color: var(--wx-background);\n\t}\n\t.wx-fullscreen {\n\t\tposition: relative;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\toutline: none;\n\t}\n\t.wx-fullscreen-icon {\n\t\tfont-size: 20px;\n\t\theight: 20px;\n\t\tmargin: auto;\n\t}\n\t.wx-fullscreen :global(.wx-fullscreen-button) {\n\t\twidth: 40px;\n\t\theight: 40px;\n\t\tborder: none;\n\t\tborder-radius: 50%;\n\t\tposition: absolute;\n\t\tright: 25px;\n\t\tbottom: 35px;\n\t\tdisplay: flex;\n\t\tpadding: initial;\n\t}\n</style>\n","<script>\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tlet {\n\t\tid,\n\t\tlabel = \"\",\n\t\twidth = \"\",\n\t\tmin = 0,\n\t\tmax = 100,\n\t\tvalue = $bindable(0),\n\t\tstep = 1,\n\t\ttitle = \"\",\n\t\tdisabled = false,\n\t\tonchange,\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tlet bgStyle = $derived(() => {\n\t\treturn disabled\n\t\t\t? \"\"\n\t\t\t: `background: linear-gradient(90deg, var(--wx-slider-primary) 0% ${progress}, var(--wx-slider-background) ${progress} 100%);`;\n\t});\n\n\tlet progress = $derived(((value - min) / (max - min)) * 100 + \"%\");\n\n\tlet previousInput = value;\n\tlet previousValue = value;\n\tfunction oninput({ target }) {\n\t\tvalue = target.value * 1;\n\t\tonchange && onchange({ value, previous: previousInput, input: true });\n\t\tpreviousInput = value;\n\t}\n\tfunction change({ target }) {\n\t\tvalue = target.value * 1;\n\t\tonchange && onchange({ value, previous: previousValue });\n\t\tpreviousValue = value;\n\t}\n</script>\n\n<div class=\"wx-slider\" style={width ? `width: ${width}` : \"\"} {title}>\n\t{#if label}<label for={id}>{label}</label>{/if}\n\t<div>\n\t\t<input\n\t\t\tid={inputId}\n\t\t\ttype=\"range\"\n\t\t\t{min}\n\t\t\t{max}\n\t\t\t{step}\n\t\t\t{disabled}\n\t\t\t{value}\n\t\t\t{oninput}\n\t\t\tonchange={change}\n\t\t\tstyle={bgStyle()}\n\t\t/>\n\t</div>\n</div>\n\n<style>\n\t.wx-slider {\n\t\twidth: var(--wx-input-width);\n\t}\n\n\tlabel {\n\t\tdisplay: block;\n\t\tmargin: var(--wx-slider-label-margin);\n\t\tfont-family: var(--wx-slider-label-font-family);\n\t\tfont-size: var(--wx-slider-label-font-size);\n\t\tline-height: var(--wx-slider-label-line-height);\n\t\tfont-weight: var(--wx-slider-label-font-weight);\n\t\tcolor: var(--wx-slider-label-font-color);\n\t}\n\n\t.wx-slider div {\n\t\tpadding: calc(\n\t\t\t\t(var(--wx-slider-height) - var(--wx-slider-track-height)) / 2\n\t\t\t)\n\t\t\t0;\n\t}\n\n\tinput {\n\t\t-webkit-appearance: none;\n\t\t-moz-appearance: none;\n\t\tappearance: none;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: var(--wx-slider-track-height);\n\t\tbackground: var(--wx-slider-background);\n\t\tborder: none;\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t\tmargin: 0;\n\t}\n\n\tinput:focus {\n\t\toutline: none;\n\t}\n\n\tinput::-webkit-slider-runnable-track {\n\t\tmargin: 0;\n\t\twidth: 100%;\n\t\theight: var(--wx-slider-track-height);\n\t\tborder: none;\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t\tcursor: pointer;\n\t\tbackground: transparent;\n\t}\n\n\tinput::-webkit-slider-thumb {\n\t\tmargin-top: calc(\n\t\t\t(var(--wx-slider-track-height) - var(--wx-slider-thumb-size)) / 2\n\t\t);\n\t\twidth: var(--wx-slider-thumb-size);\n\t\theight: var(--wx-slider-thumb-size);\n\t\tbackground: var(--wx-slider-primary);\n\t\tborder: var(--wx-slider-thumb-border);\n\t\tbox-shadow: var(--wx-slider-thumb-shadow);\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n\t\tappearance: none;\n\t}\n\n\tinput::-moz-range-track {\n\t\tmargin: 0;\n\t\twidth: 100%;\n\t\theight: var(--wx-slider-track-height);\n\t\tborder: none;\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t\tcursor: pointer;\n\t\tbackground: transparent;\n\t}\n\n\tinput::-moz-range-thumb {\n\t\tmargin-top: calc(\n\t\t\t(var(--wx-slider-track-height) - var(--wx-slider-thumb-size)) / 2\n\t\t);\n\t\twidth: var(--wx-slider-thumb-size);\n\t\theight: var(--wx-slider-thumb-size);\n\t\tbackground: var(--wx-slider-primary);\n\t\tborder: var(--wx-slider-thumb-border);\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n\t\tappearance: none;\n\t}\n\n\tinput::-moz-range-progress {\n\t\tbackground-color: var(--wx-slider-primary);\n\t\theight: var(--wx-slider-track-height);\n\t\tborder-top-left-radius: var(--wx-slider-track-border-radius);\n\t\tborder-bottom-left-radius: var(--wx-slider-track-border-radius);\n\t}\n\n\tinput::-ms-track {\n\t\tcolor: transparent;\n\t\tmargin: 0;\n\t\twidth: 100%;\n\t\theight: var(--wx-slider-track-height);\n\t\tborder: none;\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t\tcursor: pointer;\n\t\tbackground: transparent;\n\t}\n\n\tinput::-ms-fill-lower {\n\t\tbackground: var(--wx-slider-primary);\n\t\tborder: 0.2px solid var(--wx-slider-primary);\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t}\n\n\tinput::-ms-fill-upper {\n\t\tbackground: var(--wx-slider-background);\n\t\tborder: 0.2px solid var(--wx-slider-background);\n\t\tborder-radius: var(--wx-slider-track-border-radius);\n\t}\n\n\tinput::-ms-thumb {\n\t\tmargin-top: calc(\n\t\t\t(var(--wx-slider-track-height) - var(--wx-slider-thumb-size)) / 2\n\t\t);\n\t\twidth: var(--wx-slider-thumb-size);\n\t\theight: var(--wx-slider-thumb-size);\n\t\tbackground: var(--wx-slider-primary);\n\t\tborder: var(--wx-slider-thumb-border);\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n\t\tappearance: none;\n\t}\n\n\tinput:focus::-ms-fill-lower {\n\t\tbackground: var(--wx-slider-primary);\n\t}\n\n\tinput:focus::-ms-fill-upper {\n\t\tbackground: var(--wx-slider-background);\n\t}\n\n\tinput[disabled] {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-color-disabled);\n\t}\n\tinput[disabled]::-webkit-slider-runnable-track {\n\t\tcursor: not-allowed;\n\t}\n\tinput[disabled]::-webkit-slider-thumb {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-background);\n\t\tborder: var(--wx-slider-thumb-border-disabled);\n\t}\n\tinput[disabled]::-moz-range-track {\n\t\tcursor: not-allowed;\n\t}\n\tinput[disabled]::-moz-range-thumb {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-background);\n\t\tborder: var(--wx-slider-thumb-border-disabled);\n\t}\n\tinput[disabled]::-moz-range-progress {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-color-disabled);\n\t}\n\tinput[disabled]::-ms-track {\n\t\tcursor: not-allowed;\n\t}\n\tinput[disabled]::-ms-fill-lower {\n\t\tbackground: var(--wx-color-disabled);\n\t\tborder-color: var(--wx-color-disabled);\n\t}\n\tinput[disabled]::-ms-fill-upper {\n\t\tbackground: var(--wx-color-disabled);\n\t\tborder-color: var(--wx-color-disabled);\n\t}\n\tinput[disabled]::-ms-thumb {\n\t\tcursor: not-allowed;\n\t\tbackground: var(--wx-background);\n\t\tborder: var(--wx-slider-thumb-border-disabled);\n\t}\n\tinput[disabled]:focus::-ms-fill-lower {\n\t\tbackground: var(--wx-color-disabled);\n\t}\n\tinput[disabled]:focus::-ms-fill-upper {\n\t\tbackground: var(--wx-color-disabled);\n\t}\n</style>\n","<script>\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\n\tlet { id, value = $bindable(false), disabled = false, onchange } = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tfunction onChange(event) {\n\t\tvalue = event.target.checked;\n\t\tonchange && onchange({ value });\n\t}\n</script>\n\n<label class=\"wx-switch\">\n\t<input\n\t\ttype=\"checkbox\"\n\t\tchecked={value}\n\t\tonchange={onChange}\n\t\t{disabled}\n\t\tid={inputId}\n\t/>\n\t<span></span>\n</label>\n\n<style>\n\t.wx-switch {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\tmargin: 0;\n\t\tcursor: default;\n\t}\n\n\tinput {\n\t\tappearance: none;\n\t\twidth: 0;\n\t\theight: 0;\n\t\topacity: 0;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\tspan {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\twidth: var(--wx-switch-width);\n\t\theight: var(--wx-switch-height);\n\t\tborder: var(--wx-switch-border-width) solid\n\t\t\tvar(--wx-switch-border-color);\n\t\tborder-radius: calc(var(--wx-switch-height) / 2);\n\t\tbackground-color: var(--wx-switch-background);\n\t\ttransition: background-color 0.4s ease;\n\t\tcursor: pointer;\n\t\toverflow: hidden;\n\t}\n\n\tspan:before {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tleft: var(--wx-switch-thumb-offset);\n\t\ttop: var(--wx-switch-thumb-offset);\n\t\theight: calc(\n\t\t\tvar(--wx-switch-height) - var(--wx-switch-thumb-offset) * 2 -\n\t\t\t\tvar(--wx-switch-border-width) * 2\n\t\t);\n\t\twidth: calc(\n\t\t\tvar(--wx-switch-height) - var(--wx-switch-thumb-offset) * 2 -\n\t\t\t\tvar(--wx-switch-border-width) * 2\n\t\t);\n\t\tborder: var(--wx-switch-thumb-border);\n\t\tborder-radius: 50%;\n\t\tbackground: var(--wx-switch-thumb-background);\n\t\tbox-shadow: var(--wx-switch-thumb-shadow);\n\t\ttransition: transform 0.4s ease;\n\t}\n\n\tinput:checked ~ span {\n\t\tbackground-color: var(--wx-switch-primary);\n\t}\n\n\tinput:checked ~ span:before {\n\t\ttransform: translateX(\n\t\t\tcalc(var(--wx-switch-width) - var(--wx-switch-height))\n\t\t);\n\t}\n\n\tinput[disabled] ~ span {\n\t\tbackground-color: var(--wx-color-disabled);\n\t\tborder-color: var(--wx-switch-border-color-disabled);\n\t\tcursor: not-allowed;\n\t}\n\tinput[disabled] ~ span:before {\n\t\tborder: var(--wx-switch-thumb-border-disabled);\n\t\tbackground: var(--wx-switch-thumb-background-disabled);\n\t}\n</style>\n","<script>\n\timport { onMount, getContext } from \"svelte\";\n\timport { fade } from \"svelte/transition\";\n\timport Button from \"./Button.svelte\";\n\timport { defaultLocale } from \"./helpers/locale\";\n\n\tconst _ = (getContext(\"wx-i18n\") || defaultLocale()).getGroup(\"core\");\n\n\tconst {\n\t\ttitle = \"\",\n\t\tbuttons = [\"cancel\", \"ok\"],\n\t\theader,\n\t\tchildren,\n\t\tfooter,\n\t\tonconfirm,\n\t\toncancel,\n\t} = $props();\n\n\tfunction keydown(ev) {\n\t\tswitch (ev.code) {\n\t\t\tcase \"Enter\": {\n\t\t\t\tconst from = ev.target.tagName;\n\t\t\t\tif (from === \"TEXTAREA\" || from === \"BUTTON\") return;\n\t\t\t\tonconfirm && onconfirm({ event: ev });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"Escape\":\n\t\t\t\toncancel && oncancel({ event: ev });\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfunction onclick(ev, button) {\n\t\tconst pack = { event: ev, button };\n\t\tif (button === \"cancel\") {\n\t\t\toncancel && oncancel(pack);\n\t\t} else {\n\t\t\tonconfirm && onconfirm(pack);\n\t\t}\n\t}\n\n\tlet modal;\n\tonMount(() => {\n\t\tmodal.focus();\n\t});\n</script>\n\n<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tclass=\"wx-modal\"\n\tbind:this={modal}\n\ttransition:fade={{ duration: 100 }}\n\ttabindex=\"0\"\n\tonkeydown={keydown}\n>\n\t<div class=\"wx-window\">\n\t\t{#if header}\n\t\t\t{@render header()}\n\t\t{:else if title}\n\t\t\t<div class=\"wx-header\">{title}</div>\n\t\t{/if}\n\t\t<div>\n\t\t\t{@render children()}\n\t\t</div>\n\t\t{#if footer}\n\t\t\t{@render footer()}\n\t\t{:else if buttons}\n\t\t\t<div class=\"wx-buttons\">\n\t\t\t\t{#each buttons as button}\n\t\t\t\t\t<div class=\"wx-button\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"block {button === 'ok'\n\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t: 'secondary'}\"\n\t\t\t\t\t\t\tonclick={ev => onclick(ev, button)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{_(button)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/if}\n\t</div>\n</div>\n\n<style>\n\t.wx-modal {\n\t\tposition: fixed;\n\t\tz-index: var(--wx-modal-z-index);\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: var(--wx-modal-backdrop);\n\t\ttext-align: center;\n\t}\n\n\t.wx-window {\n\t\tbackground: var(--wx-modal-background);\n\t\tbox-shadow: var(--wx-modal-shadow);\n\t\tborder: var(--wx-modal-border);\n\t\tborder-radius: var(--wx-modal-border-radius);\n\t\tpadding: var(--wx-modal-padding);\n\t\tmin-width: var(--wx-modal-width);\n\t}\n\n\t.wx-header {\n\t\tfont-family: var(--wx-modal-header-font-family);\n\t\tfont-size: var(--wx-modal-header-font-size);\n\t\tline-height: var(--wx-modal-header-line-height);\n\t\tfont-weight: var(--wx-modal-header-font-weight);\n\t\tcolor: var(--wx-modal-header-font-color);\n\t\tmargin-bottom: var(--wx-modal-gutter);\n\t}\n\n\t.wx-buttons {\n\t\tmargin-top: var(--wx-modal-gutter);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-left: calc(var(--wx-modal-gutter) / -2);\n\t\tmargin-right: calc(var(--wx-modal-gutter) / -2);\n\t}\n\n\t.wx-button {\n\t\tflex: 1;\n\t\tmax-width: 50%;\n\t\tpadding: 0 calc(var(--wx-modal-gutter) / 2);\n\t}\n</style>\n","<script>\n\timport { setContext } from \"svelte\";\n\n\timport Notices from \"./Notices.svelte\";\n\timport Modal from \"./Modal.svelte\";\n\n\timport { uid } from \"@svar-ui/lib-dom\";\n\n\tlet { children } = $props();\n\n\tlet modal = $state(null);\n\tfunction showModal(msg) {\n\t\tmodal = { ...msg };\n\t\treturn new Promise((res, rej) => {\n\t\t\tmodal.resolve = v => {\n\t\t\t\tmodal = null;\n\t\t\t\tres(v);\n\t\t\t};\n\t\t\tmodal.reject = v => {\n\t\t\t\tmodal = null;\n\t\t\t\trej(v);\n\t\t\t};\n\t\t});\n\t}\n\n\tlet notices = $state([]);\n\tfunction showNotice(msg) {\n\t\tmsg = { ...msg };\n\t\tmsg.id = msg.id || uid();\n\t\tmsg.remove = () => (notices = notices.filter(a => a.id !== msg.id));\n\n\t\tif (msg.expire != -1) {\n\t\t\tsetTimeout(msg.remove, msg.expire || 5100);\n\t\t}\n\t\tnotices = [...notices, msg];\n\t}\n\n\tsetContext(\"wx-helpers\", {\n\t\tshowNotice,\n\t\tshowModal,\n\t});\n</script>\n\n{@render children?.()}\n{#if modal}\n\t<Modal\n\t\ttitle={modal.title}\n\t\tbuttons={modal.buttons}\n\t\tonconfirm={modal.resolve}\n\t\toncancel={modal.reject}\n\t>\n\t\t{modal.message}\n\t</Modal>\n{/if}\n<Notices data={notices} />\n","<script>\n\timport { uid } from \"@svar-ui/lib-dom\";\n\timport { setContext } from \"svelte\";\n\tlet {\n\t\tlabel = \"\",\n\t\tposition = \"\",\n\t\twidth = \"\",\n\t\terror = false,\n\t\ttype = \"\",\n\t\trequired = false,\n\t\tid,\n\t\tchildren,\n\t} = $props();\n\n\tconst inputId = id === undefined ? uid() : id;\n\tsetContext(\"wx-input-id\", inputId);\n</script>\n\n<div\n\tclass=\"wx-field wx-{position}\"\n\tclass:wx-error={error}\n\tclass:wx-required={required}\n\tstyle={width ? `width: ${width}` : \"\"}\n>\n\t{#if label}\n\t\t{#if inputId}\n\t\t\t<label class=\"wx-label\" for={inputId}>{label}</label>\n\t\t{:else}\n\t\t\t<div class=\"wx-label\">{label}</div>\n\t\t{/if}\n\t{/if}\n\t<div class=\"wx-field-control wx-{type}\">\n\t\t{@render children?.()}\n\t</div>\n</div>\n\n<style>\n\t.wx-field {\n\t\twidth: var(--wx-field-width);\n\t\tmax-width: 100%;\n\t\tmargin-bottom: var(--wx-field-gutter);\n\t}\n\t.wx-field.wx-left {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\talign-items: flex-start;\n\t}\n\t.wx-field.wx-left > .wx-label {\n\t\twidth: var(--wx-label-width);\n\t\tflex-shrink: 0;\n\t\tmargin: 0 var(--wx-field-gutter) 0 0;\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-label-line-height)) / 2\n\t\t);\n\t\ttext-align: right;\n\t}\n\t.wx-field.wx-left > .wx-field-control {\n\t\tmax-width: calc(100% - var(--wx-label-width) - var(--wx-field-gutter));\n\t}\n\t.wx-field.wx-error .wx-label {\n\t\tcolor: var(--wx-color-danger);\n\t}\n\n\t.wx-field.wx-left .wx-field-control.wx-checkbox {\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-checkbox-height)) / 2\n\t\t);\n\t\tpadding-bottom: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-checkbox-height)) / 2\n\t\t);\n\t}\n\t.wx-field.wx-left .wx-field-control.wx-slider {\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-slider-height)) / 2\n\t\t);\n\t\tpadding-bottom: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-slider-height)) / 2\n\t\t);\n\t}\n\t.wx-field.wx-left .wx-field-control.wx-switch {\n\t\tpadding-top: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-switch-height)) / 2\n\t\t);\n\t\tpadding-bottom: calc(\n\t\t\t(var(--wx-input-height) - var(--wx-switch-height)) / 2\n\t\t);\n\t}\n\n\t.wx-label {\n\t\tdisplay: block;\n\t\tmargin: var(--wx-label-margin);\n\t\tpadding: var(--wx-label-padding);\n\t\tfont-family: var(--wx-label-font-family);\n\t\tfont-size: var(--wx-label-font-size);\n\t\tline-height: var(--wx-label-line-height);\n\t\tfont-weight: var(--wx-label-font-weight);\n\t\tcolor: var(--wx-label-font-color);\n\t}\n\n\t.wx-required .wx-label::after {\n\t\tcontent: \" *\";\n\t\tcolor: var(--wx-color-danger);\n\t}\n\n\t.wx-field-control {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t}\n</style>\n","<script>\n\timport Button from \"./Button.svelte\";\n\n\tlet {\n\t\tvalue = false,\n\t\ttype = \"\",\n\t\ticon = \"\",\n\t\tdisabled = false,\n\t\ticonActive = \"\",\n\t\tonclick,\n\t\ttitle = \"\",\n\t\tcss = \"\",\n\t\ttext = \"\",\n\t\ttextActive = \"\",\n\t\tchildren,\n\t\tactive,\n\t\tonchange,\n\t} = $props();\n\n\tlet typeStr = $derived((value ? \"pressed\" : \"\") + (type ? \" \" + type : \"\"));\n\n\tfunction handleClick(ev) {\n\t\tlet next = !value;\n\t\tif (onclick) onclick(ev);\n\t\tif (!ev.defaultPrevented) {\n\t\t\tvalue = next;\n\t\t\tonchange && onchange({ value });\n\t\t}\n\t}\n</script>\n\n{#if value && active}\n\t<Button\n\t\t{title}\n\t\ttext={(value && textActive) || text}\n\t\t{css}\n\t\ttype={typeStr}\n\t\ticon={(value && iconActive) || icon}\n\t\tonclick={handleClick}\n\t\t{disabled}\n\t>\n\t\t{@render active()}\n\t</Button>\n{:else if children}\n\t<Button\n\t\t{title}\n\t\ttext={(value && textActive) || text}\n\t\t{css}\n\t\ttype={typeStr}\n\t\ticon={(value && iconActive) || icon}\n\t\tonclick={handleClick}\n\t\t{disabled}\n\t>\n\t\t{@render children()}\n\t</Button>\n{:else}\n\t<Button\n\t\t{title}\n\t\ttext={(value && textActive) || text}\n\t\t{css}\n\t\ttype={typeStr}\n\t\ticon={(value && iconActive) || icon}\n\t\tonclick={handleClick}\n\t\t{disabled}\n\t/>\n{/if}\n","<script>\n\timport Field from \"./Field.svelte\";\n\timport Text from \"./Text.svelte\";\n\timport Dropdown from \"./Dropdown.svelte\";\n\timport Slider from \"./Slider.svelte\";\n\timport TwoState from \"./TwoState.svelte\";\n\n\timport { getContext } from \"svelte\";\n\timport { dateToString } from \"@svar-ui/lib-dom\";\n\timport { defaultLocale } from \"./helpers/locale\";\n\timport { getInputId } from \"./helpers/getInputId.js\";\n\timport { toDateDropdown } from \"./helpers/dropdown.js\";\n\n\tconst defValue = new Date(0, 0, 0, 0, 0);\n\n\tlet {\n\t\tvalue = $bindable(defValue),\n\t\tid,\n\t\ttitle = \"\",\n\t\tcss = \"\",\n\t\tdisabled = false,\n\t\terror = false,\n\t\tformat = \"\",\n\t\tonchange,\n\t\tdropdown,\n\t} = $props();\n\n\tconst inputId = $state(getInputId(id));\n\n\tconst { calendar: calendarLocale, formats } = (\n\t\tgetContext(\"wx-i18n\") || defaultLocale()\n\t).getRaw();\n\tconst h12 = calendarLocale.clockFormat == 12;\n\n\tconst maxH = 23;\n\tconst maxM = 59;\n\n\tconst update = (v, max) => {\n\t\tv = getNumber(v);\n\t\treturn Math.min(v, max);\n\t};\n\n\tlet popup = $state();\n\n\tconst safeValue = $derived(value || defValue);\n\tlet h = $derived(update(safeValue.getHours(), maxH));\n\tlet m = $derived(update(safeValue.getMinutes(), maxM));\n\n\tconst pm = $derived(h > 12);\n\tconst hText = $derived(formatH(h));\n\tconst mText = $derived(formatM(m));\n\tconst textValue = $derived(timeFormat(new Date(0, 0, 0, h, m)));\n\n\tfunction click() {\n\t\tpopup = true;\n\t}\n\n\tfunction togglePM() {\n\t\tconst next = new Date(safeValue);\n\t\tnext.setHours(next.getHours() + (pm ? -12 : 12));\n\t\tvalue = next;\n\t\tonchange && onchange({ value });\n\t}\n\tfunction setHours({ value: v }) {\n\t\tif (safeValue.getHours() === v) return;\n\n\t\tconst next = new Date(safeValue);\n\t\tnext.setHours(v);\n\t\tvalue = next;\n\t\tonchange && onchange({ value });\n\t}\n\tfunction setMinutes({ value: v }) {\n\t\tif (safeValue.getMinutes() === v) return;\n\n\t\tconst next = new Date(safeValue);\n\t\tnext.setMinutes(v);\n\t\tvalue = next;\n\t\tonchange && onchange({ value });\n\t}\n\tfunction formatH(v) {\n\t\tif (h12) {\n\t\t\tv = v % 12;\n\t\t\tif (v === 0) return \"12\";\n\t\t}\n\t\treturn formatTime(v, zeroBased);\n\t}\n\n\tfunction formatM(v) {\n\t\treturn formatTime(v, true);\n\t}\n\tfunction updateH(v) {\n\t\tv = update(v, maxH);\n\t\tif (h12) {\n\t\t\tv = v * 1;\n\t\t\tif (v === 12) v = 0;\n\t\t\tif (pm) v += 12;\n\t\t}\n\t\treturn v;\n\t}\n\n\tfunction getNumber(v) {\n\t\treturn `${v}`.replace(/[^\\d]/g, \"\") || 0;\n\t}\n\n\tfunction formatTime(v, zeroBased) {\n\t\treturn (v < 10 && zeroBased ? `0${v}` : `${v}`).slice(-2);\n\t}\n\n\tfunction oncancel() {\n\t\tpopup = null;\n\t}\n\n\tconst timeFormat = $derived.by(() => {\n\t\tconst f = format || formats.timeFormat;\n\t\treturn typeof f === \"function\" ? f : dateToString(f, calendarLocale);\n\t});\n\tconst zeroBased = $derived(\n\t\ttimeFormat(new Date(0, 0, 0, 1)).indexOf(\"01\") != -1\n\t);\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tclass=\"wx-timepicker\"\n\tclass:wx-error={error}\n\tclass:wx-disabled={disabled}\n\tonclick={click}\n>\n\t<Text\n\t\tid={inputId}\n\t\t{css}\n\t\t{title}\n\t\tvalue={textValue}\n\t\treadonly={true}\n\t\t{disabled}\n\t\t{error}\n\t\ticon=\"wxi-clock\"\n\t\tinputStyle=\"cursor: pointer; width: 100%; padding-right: calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2);\"\n\t/>\n\n\t{#if popup && !disabled}\n\t\t<Dropdown {oncancel} {...toDateDropdown(dropdown)}>\n\t\t\t<div class=\"wx-wrapper\">\n\t\t\t\t<div class=\"wx-timer\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"wx-digit\"\n\t\t\t\t\t\tvalue={hText}\n\t\t\t\t\t\tonblur={function () {\n\t\t\t\t\t\t\tsetHours({ value: updateH(this.value) });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"wx-separator\">:</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"wx-digit\"\n\t\t\t\t\t\tvalue={mText}\n\t\t\t\t\t\tonblur={function () {\n\t\t\t\t\t\t\tsetMinutes({ value: update(this.value, maxM) });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t{#if h12}\n\t\t\t\t\t\t<TwoState value={pm} onclick={togglePM}>\n\t\t\t\t\t\t\t<span>am</span>\n\t\t\t\t\t\t\t{#snippet active()}\n\t\t\t\t\t\t\t\t<span>pm</span>\n\t\t\t\t\t\t\t{/snippet}\n\t\t\t\t\t\t</TwoState>\n\t\t\t\t\t{/if}\n\t\t\t\t</div>\n\t\t\t\t<Field width={\"unset\"}>\n\t\t\t\t\t<Slider\n\t\t\t\t\t\tlabel={calendarLocale.hours}\n\t\t\t\t\t\twidth={\"unset\"}\n\t\t\t\t\t\tvalue={h}\n\t\t\t\t\t\tonchange={setHours}\n\t\t\t\t\t\tmax={maxH}\n\t\t\t\t\t/>\n\t\t\t\t</Field>\n\t\t\t\t<Field width={\"unset\"}>\n\t\t\t\t\t<Slider\n\t\t\t\t\t\tlabel={calendarLocale.minutes}\n\t\t\t\t\t\twidth={\"unset\"}\n\t\t\t\t\t\tvalue={m}\n\t\t\t\t\t\tonchange={setMinutes}\n\t\t\t\t\t\tmax={maxM}\n\t\t\t\t\t/>\n\t\t\t\t</Field>\n\t\t\t</div>\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-timepicker {\n\t\tposition: relative;\n\t\twidth: var(--wx-input-width);\n\t}\n\n\t.wx-wrapper {\n\t\tpadding: 10px 20px;\n\t}\n\n\t.wx-timer {\n\t\tdisplay: flex;\n\t\ttext-align: center;\n\t\tjustify-content: center;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.wx-digit {\n\t\tdisplay: block;\n\t\twidth: 50px;\n\t\theight: 38px;\n\t\tborder: none;\n\t\tborder-bottom: var(--wx-input-border);\n\t\tfont-family: var(--wx-input-font-family);\n\t\tfont-size: 24px;\n\t\tline-height: 28px;\n\t\tpadding: 5px;\n\t\ttext-align: center;\n\t\tcolor: var(--wx-input-font-color);\n\t\tbackground-color: transparent;\n\t\toutline: none;\n\t}\n\n\t.wx-digit:focus {\n\t\tborder-bottom: var(--wx-input-border-focus);\n\t}\n\n\t.wx-separator {\n\t\tfont-size: 24px;\n\t\tline-height: 38px;\n\t}\n</style>\n","<script>\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\timport { fly } from \"svelte/transition\";\n\n\tlet { position = \"right\", children, oncancel } = $props();\n</script>\n\n<div\n\tclass=\"wx-sidearea wx-pos-{position}\"\n\tuse:clickOutside={() => oncancel && oncancel()}\n\ttransition:fly={{ x: 650, opacity: 1 }}\n>\n\t{@render children?.()}\n</div>\n\n<style>\n\t.wx-sidearea {\n\t\tposition: absolute;\n\t\tz-index: var(--wx-popup-z-index);\n\t\tbackground: var(--wx-modal-background);\n\t\tbox-shadow: var(--wx-modal-shadow);\n\t\tborder: var(--wx-modal-border);\n\t\tborder-radius: var(--wx-modal-border-radius);\n\t\tmin-width: var(--wx-modal-width);\n\t\theight: 100vh;\n\t}\n\t.wx-sidearea.wx-pos-right {\n\t\tright: 0;\n\t\ttop: 0;\n\t}\n</style>\n","<script>\n\timport { setContext } from \"svelte\";\n\timport FontOpenSans from \"./FontOpenSans.svelte\";\n\n\tlet { fonts = true, children } = $props();\n\tsetContext(\"wx-theme\", \"willow\");\n</script>\n\n{#if children}\n\t<div class=\"wx-theme wx-willow-theme\" style=\"height:100%\">\n\t\t{@render children()}\n\t</div>\n{/if}\n\n<svelte:head>\n\t{#if fonts}\n\t\t<link rel=\"preconnect\" href=\"https://cdn.svar.dev\" crossorigin />\n\t\t<FontOpenSans />\n\t\t<link\n\t\t\trel=\"stylesheet\"\n\t\t\thref=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n\t\t/>\n\t{/if}\n</svelte:head>\n\n<style>\n\t:global(.wx-willow-theme) {\n\t\t/* base colors */\n\t\t--wx-color-primary: #37a9ef;\n\t\t--wx-color-primary-selected: #d5eaf7;\n\t\t--wx-color-primary-font: #fff;\n\t\t--wx-color-secondary: transparent;\n\t\t--wx-color-secondary-hover: rgba(55, 169, 239, 0.12);\n\t\t--wx-color-secondary-font: var(--wx-color-primary);\n\t\t--wx-color-secondary-font-hover: var(--wx-color-primary);\n\t\t--wx-color-secondary-border: var(--wx-color-primary);\n\t\t--wx-color-secondary-border-disabled: #c0c3ce;\n\n\t\t--wx-color-success: #77d257;\n\t\t--wx-color-warning: #fcba2e;\n\t\t--wx-color-info: #37a9ef;\n\t\t--wx-color-danger: #fe6158;\n\t\t--wx-color-disabled: #f2f3f7;\n\t\t--wx-color-disabled-alt: #e9e9e9;\n\n\t\t--wx-color-font: #2c2f3c;\n\t\t--wx-color-font-alt: #9fa1ae;\n\t\t--wx-color-font-disabled: #c0c3ce;\n\t\t--wx-color-link: var(--wx-color-primary);\n\n\t\t--wx-background: #ffffff;\n\t\t--wx-background-alt: #f2f3f7;\n\t\t--wx-background-hover: #eaedf5;\n\t\t/* end base colors */\n\n\t\t/* font */\n\t\t--wx-font-family: \"Open Sans\", Arial, Helvetica, sans-serif;\n\t\t--wx-font-size: 14px;\n\t\t--wx-line-height: 20px;\n\t\t--wx-font-size-md: 14px;\n\t\t--wx-line-height-md: 24px;\n\t\t--wx-font-size-hd: 16px;\n\t\t--wx-line-height-hd: 30px;\n\t\t--wx-font-size-sm: 12px;\n\t\t--wx-line-height-sm: 16px;\n\t\t--wx-font-weight: 400;\n\t\t--wx-font-weight-md: 600;\n\t\t--wx-font-weight-b: 700;\n\t\t/* end font */\n\n\t\t/* icons */\n\t\t--wx-icon-color: #9fa1ae;\n\t\t--wx-icon-size: var(--wx-line-height);\n\t\t--wx-icon-border-radius: 2px;\n\t\t/* end icons */\n\n\t\t/* other */\n\t\t--wx-border: 1px solid #e6e6e6;\n\t\t--wx-border-radius: 3px;\n\t\t--wx-radius-major: 6px;\n\n\t\t--wx-border-light: none;\n\t\t--wx-border-medium: 1px solid #eaedf5;\n\n\t\t--wx-shadow-light: 0px 3px 10px 0px rgba(44, 47, 60, 0.12),\n\t\t\t0px 1px 2px 0px rgba(44, 47, 60, 0.06);\n\t\t--wx-shadow-medium: 0px 4px 20px 0px rgba(44, 47, 60, 0.12);\n\t\t/* LEGACY start */\n\t\t--wx-box-shadow: 0px 1px 2px rgba(44, 47, 60, 0.06),\n\t\t\t0px 3px 10px rgba(44, 47, 60, 0.12);\n\t\t--wx-box-shadow-strong: 0px 4px 20px rgba(44, 47, 60, 0.16);\n\t\t/* LEGACY END */\n\n\t\t--wx-padding: 8px;\n\t\t/* end other */\n\n\t\t/* field */\n\t\t--wx-field-gutter: 16px;\n\t\t--wx-field-width: 400px;\n\t\t/* end field */\n\n\t\t/* input */\n\t\t--wx-input-font-family: var(--wx-font-family);\n\t\t--wx-input-font-size: var(--wx-font-size);\n\t\t--wx-input-line-height: var(--wx-line-height);\n\t\t--wx-input-font-weight: var(--wx-font-weight);\n\t\t--wx-input-text-align: left;\n\t\t--wx-input-font-color: var(--wx-color-font);\n\t\t--wx-input-background: var(--wx-background);\n\t\t--wx-input-background-disabled: var(--wx-color-disabled);\n\t\t--wx-input-placeholder-color: var(--wx-color-font-alt);\n\t\t--wx-input-border: var(--wx-border);\n\t\t--wx-input-border-focus: 1px solid var(--wx-color-primary);\n\t\t--wx-input-border-disabled: var(--wx-border);\n\t\t--wx-input-border-radius: 3px;\n\t\t--wx-input-height: 32px;\n\t\t--wx-input-width: 100%;\n\t\t--wx-input-padding: 5px 8px;\n\t\t--wx-input-icon-indent: 6px;\n\t\t--wx-input-icon-color: var(--wx-icon-color);\n\t\t--wx-input-icon-size: var(--wx-icon-size);\n\t\t/* end input */\n\n\t\t/* multi combo */\n\t\t--wx-multicombo-tag-gap: 3px;\n\t\t--wx-multicombo-tag-border: none;\n\t\t--wx-multicombo-tag-border-radius: var(--wx-input-border-radius);\n\t\t--wx-multicombo-tag-pading: 2px 8px;\n\t\t--wx-multicombo-tag-background: var(--wx-background-alt);\n\t\t/* end multi combo */\n\n\t\t/* checkbox and radio */\n\t\t--wx-checkbox-height: var(--wx-line-height);\n\t\t--wx-checkbox-size: var(--wx-checkbox-height);\n\t\t--wx-checkbox-border-width: 2px;\n\t\t--wx-checkbox-border-color: var(--wx-color-font-alt);\n\t\t--wx-checkbox-border-color-disabled: var(--wx-color-disabled);\n\t\t--wx-checkbox-border-radius: var(--wx-input-border-radius);\n\t\t--wx-checkbox-font-family: var(--wx-font-family);\n\t\t--wx-checkbox-font-size: var(--wx-font-size);\n\t\t--wx-checkbox-line-height: var(--wx-line-height);\n\t\t--wx-checkbox-font-weight: var(--wx-font-weight);\n\t\t--wx-checkbox-font-color: var(--wx-color-font);\n\t\t/* end checkbox and radio */\n\n\t\t/* label */\n\t\t--wx-label-width: 100px;\n\t\t--wx-label-margin: 0 0 4px;\n\t\t--wx-label-padding: 0;\n\t\t--wx-label-font-family: var(--wx-font-family);\n\t\t--wx-label-font-size: var(--wx-font-size);\n\t\t--wx-label-line-height: var(--wx-line-height);\n\t\t--wx-label-font-weight: var(--wx-font-weight-md);\n\t\t--wx-label-font-color: var(--wx-color-font);\n\t\t/* end label */\n\n\t\t/* button */\n\t\t--wx-button-font-family: var(--wx-font-family);\n\t\t--wx-button-font-size: var(--wx-font-size-md);\n\t\t--wx-button-line-height: var(--wx-line-height);\n\t\t--wx-button-font-weight: var(--wx-font-weight-md);\n\t\t--wx-button-text-transform: none;\n\t\t--wx-button-font-color: var(--wx-color-font);\n\t\t--wx-button-danger-font-color: #fff;\n\t\t--wx-button-background: var(--wx-background-alt);\n\t\t--wx-button-border: 1px solid transparent;\n\t\t--wx-button-border-radius: var(--wx-border-radius);\n\t\t--wx-button-height: 32px;\n\t\t--wx-button-padding: 5px 16px;\n\t\t--wx-button-icon-indent: 5px;\n\t\t--wx-button-icon-size: 20px;\n\n\t\t--wx-button-pressed: #d7dde3;\n\t\t--wx-button-danger-pressed: #cb4e46;\n\t\t--wx-button-primary-pressed: #098cdc;\n\n\t\t--wx-button-box-shadow: -2px -2px 4px 0px rgba(255, 255, 255, 0.56) inset,\n\t\t\t2px 2px 3px 1px rgba(0, 0, 0, 0.12) inset;\n\t\t--wx-button-primary-box-shadow: -2px -2px 4px 0px rgba(\n\t\t\t\t\t255,\n\t\t\t\t\t255,\n\t\t\t\t\t255,\n\t\t\t\t\t0.26\n\t\t\t\t) inset,\n\t\t\t2px 2px 3px 1px rgba(0, 0, 0, 0.16) inset;\n\t\t/* end button */\n\n\t\t/* segmented */\n\t\t--wx-segmented-background: var(--wx-background-alt);\n\t\t--wx-segmented-background-hover: var(--wx-background-hover);\n\t\t--wx-segmented-border: none;\n\t\t--wx-segmented-border-radius: 6px;\n\t\t--wx-segmented-padding: 0px;\n\t\t/* end segmented */\n\n\t\t/* tabs */\n\t\t--wx-tabs-background: var(--wx-background);\n\t\t--wx-tabs-background-hover: transparent;\n\t\t--wx-tabs-hover-border: #9fa1ae;\n\t\t--wx-tabs-border-width: 1px;\n\t\t--wx-tabs-border-radius: var(--wx-border-radius);\n\t\t--wx-tabs-divider-width: 1px;\n\t\t--wx-tabs-divider-height: 60%;\n\t\t--wx-tabs-divider-color: transparent;\n\t\t--wx-tabs-cell-min-width: 100px;\n\t\t--wx-tabs-active-background: transparent;\n\t\t--wx-tabs-active-color: var(--wx-color-primary);\n\t\t--wx-tabs-active-border: var(--wx-tabs-active-color);\n\t\t/* end tabs */\n\n\t\t/* slider */\n\t\t--wx-slider-height: 14px;\n\t\t--wx-slider-primary: var(--wx-color-primary);\n\t\t--wx-slider-background: var(--wx-background-alt);\n\t\t--wx-slider-track-height: 4px;\n\t\t--wx-slider-track-border-radius: 2px;\n\t\t--wx-slider-thumb-size: var(--wx-slider-height);\n\t\t--wx-slider-thumb-border: none;\n\t\t--wx-slider-thumb-border-disabled: none;\n\t\t--wx-slider-thumb-shadow: var(--wx-box-shadow-strong);\n\t\t--wx-slider-label-margin: 0 0 5px;\n\t\t--wx-slider-label-font-family: var(--wx-font-family);\n\t\t--wx-slider-label-font-size: var(--wx-font-size);\n\t\t--wx-slider-label-line-height: var(--wx-line-height);\n\t\t--wx-slider-label-font-weight: var(--wx-font-weight-md);\n\t\t--wx-slider-label-font-color: var(--wx-color-font);\n\t\t/* end slider */\n\n\t\t/* switch */\n\t\t--wx-switch-primary: var(--wx-color-primary);\n\t\t--wx-switch-background: #9fa1ae;\n\t\t--wx-switch-width: 48px;\n\t\t--wx-switch-height: 24px;\n\t\t--wx-switch-border-width: 0px;\n\t\t--wx-switch-border-color: transparent;\n\t\t--wx-switch-border-color-disabled: transparent;\n\t\t--wx-switch-thumb-offset: 1px;\n\t\t--wx-switch-thumb-border: none;\n\t\t--wx-switch-thumb-border-disabled: 1px solid #c0c3ce;\n\t\t--wx-switch-thumb-background: var(--wx-background);\n\t\t--wx-switch-thumb-background-disabled: var(--wx-color-disabled);\n\t\t--wx-switch-thumb-shadow: none;\n\t\t/* end switch */\n\n\t\t/* popup and dropdown */\n\t\t--wx-popup-z-index: 1001;\n\t\t--wx-popup-background: var(--wx-background);\n\t\t--wx-popup-shadow: var(--wx-shadow-light);\n\t\t--wx-popup-border: 1px solid transparent;\n\t\t--wx-popup-border-radius: var(--wx-border-radius);\n\t\t/* end popup and dropdown */\n\n\t\t/* modal */\n\t\t--wx-modal-z-index: 1000;\n\t\t--wx-modal-background: var(--wx-background);\n\t\t--wx-modal-shadow: var(--wx-shadow-medium);\n\t\t--wx-modal-border: none;\n\t\t--wx-modal-border-radius: var(--wx-border-radius);\n\t\t--wx-modal-width: 280px;\n\t\t--wx-modal-padding: 16px 20px;\n\t\t--wx-modal-gutter: 14px;\n\t\t--wx-modal-backdrop: rgba(108, 114, 131, 0.2);\n\t\t--wx-modal-header-font-family: var(--wx-font-family);\n\t\t--wx-modal-header-font-size: var(--wx-font-size-hd);\n\t\t--wx-modal-header-line-height: var(--wx-line-height-hd);\n\t\t--wx-modal-header-font-weight: var(--wx-font-weight-b);\n\t\t--wx-modal-header-font-color: #000;\n\t\t/* end modal */\n\n\t\t/* notice */\n\t\t--wx-notice-z-index: 1010;\n\t\t--wx-notice-background: var(--wx-background);\n\t\t--wx-notice-shadow: var(--wx-shadow-medium);\n\t\t--wx-notice-border: none;\n\t\t--wx-notice-border-radius: 0 var(--wx-border-radius)\n\t\t\tvar(--wx-border-radius) 0;\n\t\t--wx-notice-margin: 6px 12px;\n\t\t--wx-notice-font-family: var(--wx-font-family);\n\t\t--wx-notice-font-size: var(--wx-font-size);\n\t\t--wx-notice-line-height: var(--wx-line-height);\n\t\t--wx-notice-font-weight: var(--wx-font-weight);\n\t\t--wx-notice-font-color: var(--wx-color-font);\n\t\t--wx-notice-padding: 14px;\n\t\t--wx-notice-width: 240px;\n\t\t--wx-notice-icon-size: var(--wx-icon-size);\n\t\t--wx-notice-icon-color: var(--wx-icon-color);\n\t\t--wx-notice-type-border-width: 4px;\n\t\t--wx-notice-type-border-color: var(--wx-icon-color);\n\t\t--wx-notice-type-font-color: var(--wx-color-font);\n\t\t--wx-notice-type-icon-color: var(--wx-icon-color);\n\t\t--wx-notice-type-background-opacity: 0;\n\t\t--wx-notice-type-close-hover-opacity: 1;\n\t\t/* end notice */\n\n\t\t/* calendar */\n\t\t--wx-calendar-padding: 16px;\n\t\t--wx-calendar-cell-size: 32px;\n\t\t--wx-calendar-gap: 4px;\n\t\t--wx-calendar-line-gap: 4px;\n\t\t--wx-calendar-border-radius: var(--wx-border-radius);\n\t\t--wx-calendar-font-family: var(--wx-font-family);\n\t\t--wx-calendar-font-size: var(--wx-font-size);\n\t\t--wx-calendar-line-height: var(--wx-line-height);\n\t\t--wx-calendar-font-weight: var(--wx-font-weight);\n\t\t--wx-calendar-font-color: var(--wx-color-font);\n\t\t--wx-calendar-icon-color: var(--wx-icon-color);\n\t\t--wx-calendar-icon-size: var(--wx-icon-size);\n\t\t--wx-calendar-header-font-size: var(--wx-font-size);\n\t\t--wx-calendar-header-line-height: var(--wx-line-height);\n\t\t--wx-calendar-header-font-weight: var(--wx-font-weight-md);\n\t\t--wx-calendar-controls-font-family: var(--wx-button-font-family);\n\t\t--wx-calendar-controls-font-size: var(--wx-font-size);\n\t\t--wx-calendar-controls-line-height: var(--wx-line-height);\n\t\t--wx-calendar-controls-font-weight: var(--wx-font-weight);\n\t\t--wx-calendar-controls-font-color: var(--wx-color-font);\n\t\t/* end calendar */\n\t}\n\n\t:global(.wx-willow-theme) {\n\t\tfont-family: var(--wx-font-family);\n\t\tfont-size: var(--wx-font-size);\n\t\tline-height: var(--wx-line-height);\n\t\tfont-weight: var(--wx-font-weight);\n\t\tfont-style: normal;\n\t\tletter-spacing: normal;\n\t\ttext-align: left;\n\t\tcolor: var(--wx-color-font);\n\t\tbackground: var(--wx-background);\n\t}\n\t:global(\n\t\t\t.wx-willow-theme *,\n\t\t\t.wx-willow-theme *:before,\n\t\t\t.wx-willow-theme *:after\n\t\t) {\n\t\tbox-sizing: border-box;\n\t}\n</style>\n","import { isSame, deepCopy } from '@svar-ui/lib-state';\n\n// node_modules/svelte/src/internal/shared/utils.js\nvar is_array = Array.isArray;\nvar define_property = Object.defineProperty;\nvar noop = () => {\n};\nfunction run_all(arr) {\n  for (var i = 0; i < arr.length; i++) {\n    arr[i]();\n  }\n}\nfunction safe_not_equal(a, b) {\n  return a != a ? b == b : a !== b || a !== null && typeof a === \"object\" || typeof a === \"function\";\n}\n\n// node_modules/esm-env/dev-fallback.js\nvar node_env = globalThis.process?.env?.NODE_ENV;\nvar dev_fallback_default = node_env && !node_env.toLowerCase().startsWith(\"prod\");\nfunction rune_outside_svelte(rune) {\n  if (dev_fallback_default) {\n    const error = new Error(`rune_outside_svelte\nThe \\`${rune}\\` rune is only available inside \\`.svelte\\` and \\`.svelte.js/ts\\` files\nhttps://svelte.dev/e/rune_outside_svelte`);\n    error.name = \"Svelte error\";\n    throw error;\n  } else {\n    throw new Error(`https://svelte.dev/e/rune_outside_svelte`);\n  }\n}\n\n// node_modules/svelte/src/internal/client/dom/task.js\nvar micro_tasks = [];\nfunction run_micro_tasks() {\n  var tasks = micro_tasks;\n  micro_tasks = [];\n  run_all(tasks);\n}\nfunction queue_micro_task(fn) {\n  if (micro_tasks.length === 0 && true) {\n    var tasks = micro_tasks;\n    queueMicrotask(() => {\n      if (tasks === micro_tasks) run_micro_tasks();\n    });\n  }\n  micro_tasks.push(fn);\n}\n\n// node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js\nfunction without_reactive_context(fn) {\n  try {\n    return fn();\n  } finally {\n  }\n}\nfunction create_event(event_name, dom, handler, options = {}) {\n  function target_handler(event2) {\n    if (!options.capture) {\n      handle_event_propagation.call(dom, event2);\n    }\n    if (!event2.cancelBubble) {\n      return without_reactive_context(() => {\n        return handler?.call(this, event2);\n      });\n    }\n  }\n  if (event_name.startsWith(\"pointer\") || event_name.startsWith(\"touch\") || event_name === \"wheel\") {\n    queue_micro_task(() => {\n      dom.addEventListener(event_name, target_handler, options);\n    });\n  } else {\n    dom.addEventListener(event_name, target_handler, options);\n  }\n  return target_handler;\n}\nfunction on(element2, type, handler, options = {}) {\n  var target_handler = create_event(type, element2, handler, options);\n  return () => {\n    element2.removeEventListener(type, target_handler, options);\n  };\n}\nvar last_propagated_event = null;\nfunction handle_event_propagation(event2) {\n  var handler_element = this;\n  var owner_document = (\n    /** @type {Node} */\n    handler_element.ownerDocument\n  );\n  var event_name = event2.type;\n  var path = event2.composedPath?.() || [];\n  var current_target = (\n    /** @type {null | Element} */\n    path[0] || event2.target\n  );\n  last_propagated_event = event2;\n  var path_idx = 0;\n  var handled_at = last_propagated_event === event2 && event2.__root;\n  if (handled_at) {\n    var at_idx = path.indexOf(handled_at);\n    if (at_idx !== -1 && (handler_element === document || handler_element === /** @type {any} */\n    window)) {\n      event2.__root = handler_element;\n      return;\n    }\n    var handler_idx = path.indexOf(handler_element);\n    if (handler_idx === -1) {\n      return;\n    }\n    if (at_idx <= handler_idx) {\n      path_idx = at_idx;\n    }\n  }\n  current_target = /** @type {Element} */\n  path[path_idx] || event2.target;\n  if (current_target === handler_element) return;\n  define_property(event2, \"currentTarget\", {\n    configurable: true,\n    get() {\n      return current_target || owner_document;\n    }\n  });\n  try {\n    var throw_error;\n    var other_errors = [];\n    while (current_target !== null) {\n      var parent_element = current_target.assignedSlot || current_target.parentNode || /** @type {any} */\n      current_target.host || null;\n      try {\n        var delegated = current_target[\"__\" + event_name];\n        if (delegated != null && (!/** @type {any} */\n        current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n        // -> the target could not have been disabled because it emits the event in the first place\n        event2.target === current_target)) {\n          if (is_array(delegated)) {\n            var [fn, ...data] = delegated;\n            fn.apply(current_target, [event2, ...data]);\n          } else {\n            delegated.call(current_target, event2);\n          }\n        }\n      } catch (error) {\n        if (throw_error) {\n          other_errors.push(error);\n        } else {\n          throw_error = error;\n        }\n      }\n      if (event2.cancelBubble || parent_element === handler_element || parent_element === null) {\n        break;\n      }\n      current_target = parent_element;\n    }\n    if (throw_error) {\n      for (let error of other_errors) {\n        queueMicrotask(() => {\n          throw error;\n        });\n      }\n      throw throw_error;\n    }\n  } finally {\n    event2.__root = handler_element;\n    delete event2.currentTarget;\n  }\n}\n\n// node_modules/svelte/src/index-client.js\nif (dev_fallback_default) {\n  let throw_rune_error = function(rune) {\n    if (!(rune in globalThis)) {\n      let value;\n      Object.defineProperty(globalThis, rune, {\n        configurable: true,\n        // eslint-disable-next-line getter-return\n        get: () => {\n          if (value !== void 0) {\n            return value;\n          }\n          rune_outside_svelte(rune);\n        },\n        set: (v) => {\n          value = v;\n        }\n      });\n    }\n  };\n  throw_rune_error(\"$state\");\n  throw_rune_error(\"$effect\");\n  throw_rune_error(\"$derived\");\n  throw_rune_error(\"$inspect\");\n  throw_rune_error(\"$props\");\n  throw_rune_error(\"$bindable\");\n}\n\n// node_modules/svelte/src/store/shared/index.js\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n  let stop = null;\n  const subscribers = /* @__PURE__ */ new Set();\n  function set2(new_value) {\n    if (safe_not_equal(value, new_value)) {\n      value = new_value;\n      if (stop) {\n        const run_queue = !subscriber_queue.length;\n        for (const subscriber of subscribers) {\n          subscriber[1]();\n          subscriber_queue.push(subscriber, value);\n        }\n        if (run_queue) {\n          for (let i = 0; i < subscriber_queue.length; i += 2) {\n            subscriber_queue[i][0](subscriber_queue[i + 1]);\n          }\n          subscriber_queue.length = 0;\n        }\n      }\n    }\n  }\n  function update2(fn) {\n    set2(fn(\n      /** @type {T} */\n      value\n    ));\n  }\n  function subscribe(run2, invalidate = noop) {\n    const subscriber = [run2, invalidate];\n    subscribers.add(subscriber);\n    if (subscribers.size === 1) {\n      stop = start(set2, update2) || noop;\n    }\n    run2(\n      /** @type {T} */\n      value\n    );\n    return () => {\n      subscribers.delete(subscriber);\n      if (subscribers.size === 0 && stop) {\n        stop();\n        stop = null;\n      }\n    };\n  }\n  return { set: set2, update: update2, subscribe };\n}\nfunction copy(obj, deep) {\n  if (deep) return deepCopy(obj);\n  return { ...obj };\n}\nfunction form(v, changes, config) {\n  const deepCopyMode = config && config.deepCopy;\n  let ready = false;\n  let timer = null;\n  const store = writable(v);\n  const { set: set2 } = store;\n  let base = copy(v, deepCopyMode);\n  store.set = function(nv) {\n    if (!isSame(base, nv)) {\n      base = copy(nv, deepCopyMode);\n      set2(nv);\n    }\n  };\n  store.update = function(upd) {\n    const nv = upd(copy(base, deepCopyMode));\n    if (!isSame(base, nv)) {\n      base = copy(nv, deepCopyMode);\n      set2(nv);\n    }\n  };\n  store.reset = function(v2) {\n    ready = false;\n    base = {};\n    store.set(v2);\n  };\n  store.subscribe((v2) => {\n    if (ready) {\n      if (v2) {\n        if (!config || !config.debounce) changes(v2);\n        else {\n          clearTimeout(timer);\n          timer = setTimeout(() => changes(v2), config.debounce);\n        }\n      }\n    } else ready = true;\n  });\n  return store;\n}\n\n// src/env.ts\nvar env = {\n  addEvent: on\n};\n\nexport { env, form };\n//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map","<script>\n\timport { Portal } from \"@svar-ui/svelte-core\";\n\timport Menu from \"./Menu.svelte\";\n\timport { filterMenu } from \"../helpers\";\n\timport { locateID } from \"@svar-ui/lib-dom\";\n\n\tlet {\n\t\toptions,\n\t\tat = \"bottom\",\n\t\tresolver = null,\n\t\tdataKey = \"contextId\",\n\t\tfilter = null,\n\t\tcss = \"\",\n\t\tchildren,\n\t\tonclick,\n\t} = $props();\n\n\tconst attrName = $derived(\n\t\t`data-${dataKey.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase()}`\n\t);\n\n\tconst filteredOptions = $derived.by(() => {\n\t\tif (item !== null && filter) {\n\t\t\treturn filterMenu(options, v => filter(v, item));\n\t\t}\n\t\treturn options;\n\t});\n\n\tlet item = $state(null);\n\tlet parent = $state(null);\n\tlet left = $state(0),\n\t\ttop = $state(0);\n\n\tfunction onClick(ev) {\n\t\tparent = null;\n\t\tonclick && onclick(ev);\n\t}\n\n\texport function show(ev, obj) {\n\t\tif (!ev) {\n\t\t\tparent = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif (ev.defaultPrevented) return;\n\n\t\tconst target = ev.target;\n\t\tif (target && target.dataset && target.dataset.menuIgnore) return;\n\n\t\tleft = ev.clientX + 1;\n\t\ttop = ev.clientY + 1;\n\n\t\titem = typeof obj !== \"undefined\" ? obj : locateID(target, attrName);\n\t\tif (resolver) {\n\t\t\titem = resolver(item, ev);\n\t\t\tif (!item) return;\n\t\t}\n\n\t\tparent = target;\n\n\t\tev.preventDefault();\n\t}\n\n\t// about #key in markup below\n\t// we need to be sure that menu is closed before it is shown again\n\t// its the only way to reinit click-outside\n\t// otherwise, the menu will be hidden as click-ouside occurs after show call\n</script>\n\n{#if children}\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<span onclick={show} data-menu-ignore=\"true\">\n\t\t{@render children?.()}\n\t</span>\n{/if}\n\n{#if parent}\n\t<Portal>\n\t\t{#snippet children({ mount })}\n\t\t\t{#key parent}\n\t\t\t\t<Menu\n\t\t\t\t\t{css}\n\t\t\t\t\t{at}\n\t\t\t\t\t{top}\n\t\t\t\t\t{left}\n\t\t\t\t\t{mount}\n\t\t\t\t\t{parent}\n\t\t\t\t\tcontext={item}\n\t\t\t\t\tonclick={onClick}\n\t\t\t\t\toptions={filteredOptions}\n\t\t\t\t/>\n\t\t\t{/key}\n\t\t{/snippet}\n\t</Portal>\n{/if}\n","<script>\n\timport ActionMenu from \"./ActionMenu.svelte\";\n\timport { prepareMenuData } from \"../helpers\";\n\n\tlet menu;\n\tlet { css = \"\", menuCss = \"\", options, onclick } = $props();\n\n\tconst finalOptions = $derived(prepareMenuData(options));\n\n\tlet active = $state(false);\n\tlet menuOptions = $state([]);\n\n\tfunction doClick(ev) {\n\t\tactive = null;\n\t\tonclick && onclick(ev);\n\t}\n\n\tfunction setMenu(ev, option, trigger) {\n\t\t// if the option has a submenu, show it and enable hover mode\n\t\tif (option.data && option.data.length) {\n\t\t\tif (active && trigger) {\n\t\t\t\t// second click on option with submenu disables hover mode\n\t\t\t\tactive = null;\n\t\t\t} else {\n\t\t\t\tmenuOptions = option.data;\n\t\t\t\tactive = option.id;\n\t\t\t\tmenu.show(ev, option);\n\t\t\t}\n\t\t} else {\n\t\t\t// hide the submenu\n\t\t\tmenu.show(null);\n\t\t\t// if it was the click action, dispatch it and end hover mode\n\t\t\tif (trigger) {\n\t\t\t\t//[deprecated] action will be deprecated in 3.0\n\t\t\t\tonclick && onclick({ action: option, option });\n\t\t\t\tactive = null;\n\t\t\t} else {\n\t\t\t\t// do not remove active flag, to preserve the hover mode\n\t\t\t\tactive = -1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onHover(ev, option) {\n\t\tif (active) setMenu(ev, option);\n\t}\n</script>\n\n<div class=\"wx-menubar {css}\">\n\t{#each finalOptions as option (option.id)}\n\t\t<button\n\t\t\tclass=\"wx-option {active === option.id ? 'wx-active' : ''}\"\n\t\t\tclass:wx-disabled={option.disabled}\n\t\t\tonmouseenter={ev => onHover(ev, option)}\n\t\t\tonclick={ev => setMenu(ev, option, true)}>{option.text}</button\n\t\t>\n\t{/each}\n</div>\n\n<ActionMenu\n\tcss={menuCss}\n\tonclick={doClick}\n\toptions={menuOptions}\n\tbind:this={menu}\n/>\n\n<style>\n\t.wx-menubar {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t\twidth: fit-content;\n\t}\n\n\t.wx-option {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tcolor: var(--wx-color-font);\n\t\tbox-sizing: border-box;\n\t\theight: 36px;\n\t\tline-height: 30px;\n\t\tpadding: 2px 12px;\n\t\tfont-family: var(--wx-font-family);\n\t\tfont-weight: var(--wx-font-weight);\n\t\tfont-size: var(--wx-font-size);\n\n\t\tcursor: pointer;\n\t\toutline: none;\n\t\twhite-space: nowrap;\n\t}\n\n\t.wx-active,\n\t.wx-option:hover {\n\t\tbackground-color: var(--wx-background-alt);\n\t\tborder-radius: var(--wx-button-border-radius);\n\t}\n\t.wx-disabled {\n\t\tpointer-events: none;\n\t}\n\t.wx-disabled {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n</style>\n","<script>\n\timport { Portal } from \"@svar-ui/svelte-core\";\n\timport Menu from \"./Menu.svelte\";\n\n\tlet { options, at = \"bottom\", css = \"\", children, onclick } = $props();\n\n\texport function show(ev) {\n\t\tparent = ev.target;\n\t\tev.preventDefault();\n\t}\n\n\tlet parent = $state(null);\n\tfunction onClick(ev) {\n\t\tparent = null;\n\t\tonclick && onclick(ev);\n\t}\n\tfunction showAt(ev) {\n\t\tlet target = ev.target;\n\t\twhile (!target.dataset.menuIgnore) {\n\t\t\tparent = target;\n\t\t\ttarget = target.parentNode;\n\t\t}\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<span onclick={showAt} data-menu-ignore=\"true\">\n\t{@render children?.()}\n</span>\n{#if parent}\n\t<Portal>\n\t\t{#snippet children({ mount })}\n\t\t\t{#key parent}\n\t\t\t\t<Menu {css} {at} {mount} {parent} {options} onclick={onClick} />\n\t\t\t{/key}\n\t\t{/snippet}\n\t</Portal>\n{/if}\n","<script>\n\timport ActionMenu from \"./ActionMenu.svelte\";\n\n\t// svelte-ignore non_reactive_update\n\tlet menu = null;\n\texport function show(ev, obj) {\n\t\tmenu.show(ev, obj);\n\t}\n\n\tlet {\n\t\toptions,\n\t\tat = \"bottom\",\n\t\tresolver = null,\n\t\tdataKey = \"contextId\",\n\t\tfilter = null,\n\t\tcss = \"\",\n\t\tchildren,\n\t\tonclick,\n\t} = $props();\n</script>\n\n{#if children}\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<span oncontextmenu={show} data-menu-ignore=\"true\">\n\t\t{@render children?.()}\n\t</span>\n{/if}\n\n<ActionMenu\n\t{css}\n\t{at}\n\t{options}\n\t{resolver}\n\t{dataKey}\n\t{filter}\n\tbind:this={menu}\n\t{onclick}\n/>\n","export default {\n\tuploader: {\n\t\tB: \"B\",\n\t\tKB: \"KB\",\n\t\tMB: \"MB\",\n\t\tGB: \"GB\",\n\t\tTB: \"TB\",\n\t\tPB: \"PB\",\n\t\tEB: \"EB\",\n\t\t\"Drop files here or\": \"Drop files here or\",\n\t\t\"select files\": \"select files\",\n\t},\n};\n","<script>\n\timport { locale, uid } from \"@svar-ui/lib-dom\";\n\timport { onMount, setContext, getContext } from \"svelte\";\n\timport { apiKey } from \"../helpers/consts\";\n\timport { en } from \"@svar-ui/uploader-locales\";\n\n\tlet {\n\t\tdata = $bindable([]),\n\t\tready = $bindable(new Promise(() => ({}))),\n\n\t\taccept = \"\",\n\t\tmultiple = true,\n\t\tfolder = false,\n\t\tuploadURL = \"\",\n\t\tapiOnly = false,\n\t\tdisabled = false,\n\t\tchildren,\n\t\tonchange,\n\t\tonupload,\n\t} = $props();\n\n\tlet input = $state();\n\tlet drag = $state();\n\tlet count = 0;\n\tlet lastCtx = {};\n\n\t// set locale\n\tlet l = getContext(\"wx-i18n\");\n\tif (!l) {\n\t\tl = locale(en);\n\t\tsetContext(\"wx-i18n\", l);\n\t}\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"uploader\");\n\n\texport const droparea = (node, ctx) => {\n\t\tif (disabled) return;\n\n\t\tctx = ctx || {};\n\t\tnode.addEventListener(\"dragenter\", () => {\n\t\t\tif (ctx.dragEnter) ctx.dragEnter();\n\t\t\tdragenter();\n\t\t});\n\t\tnode.addEventListener(\"dragleave\", () => {\n\t\t\tif (ctx.dragEnter) ctx.dragLeave();\n\t\t\tdragleave();\n\t\t});\n\n\t\tnode.addEventListener(\"dragover\", ev => ev.preventDefault(), true);\n\t\tnode.addEventListener(\n\t\t\t\"drop\",\n\t\t\tev => {\n\t\t\t\tev.preventDefault();\n\t\t\t\tlastCtx = ctx;\n\t\t\t\tdrop(ev);\n\t\t\t\tif (ctx.dragEnter) ctx.dragLeave();\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t};\n\n\tonMount(() => {\n\t\tinput.webkitdirectory = folder;\n\t});\n\n\tfunction add(ev) {\n\t\tconst files = Array.from(ev.target.files);\n\t\tfiles.forEach(f => addFile(f));\n\t}\n\n\tfunction drop(ev) {\n\t\tconst items = Array.from(ev.dataTransfer.items);\n\n\t\titems.forEach(item => {\n\t\t\tconst entry = item.webkitGetAsEntry();\n\t\t\tif (entry) flatten(entry);\n\t\t});\n\n\t\tdrag = false;\n\t\tcount = 0;\n\t}\n\n\tfunction flatten(item, path) {\n\t\tpath = path || \"\";\n\t\tif (item.isFile) {\n\t\t\titem.file(file => {\n\t\t\t\taddFile(file);\n\t\t\t});\n\t\t} else if (item.isDirectory) {\n\t\t\tconst dir = item.createReader();\n\t\t\tdir.readEntries(files => {\n\t\t\t\tfiles.forEach(file => {\n\t\t\t\t\tflatten(file, path + file.name + \"/\");\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction addFile(file) {\n\t\tconst obj = {\n\t\t\t...lastCtx,\n\t\t\tid: uid(),\n\t\t\tstatus: \"client\",\n\t\t\tname: file.name,\n\t\t\tfile,\n\t\t};\n\n\t\tif (obj.selected) obj.selected(obj);\n\t\tonchange && onchange(obj);\n\n\t\tif (multiple) {\n\t\t\tdata = [...data, obj];\n\t\t} else {\n\t\t\tdata = [obj];\n\t\t}\n\n\t\tupload(obj);\n\t\tinput.value = \"\";\n\t}\n\n\tfunction defaultUploader(obj) {\n\t\tconst formData = new FormData();\n\t\tformData.append(\"upload\", obj.file);\n\n\t\tconst config = {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: formData,\n\t\t};\n\n\t\treturn fetch(uploadURL, config)\n\t\t\t.then(res => res.json())\n\t\t\t.then(\n\t\t\t\tdata => ({ id: obj.id, ...data }),\n\t\t\t\t() => ({ id: obj.id, status: \"error\" })\n\t\t\t)\n\t\t\t.catch(error => console.log(error));\n\t}\n\n\tfunction upload(obj) {\n\t\tif (!obj) return;\n\n\t\tconst request =\n\t\t\ttypeof uploadURL === \"function\"\n\t\t\t\t? uploadURL(obj)\n\t\t\t\t: defaultUploader(obj);\n\n\t\tready = request\n\t\t\t.then(r => {\n\t\t\t\tr.status = r.status || \"server\";\n\t\t\t\tupdateData(obj.id, r);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tupdateData(obj.id, { status: \"error\", error });\n\t\t\t});\n\t}\n\n\t// returns client if any file is being uploaded\n\t// returns error if any file has failed and no file is being uploaded\n\t// returns server if all files have been uploaded\n\texport function getState() {\n\t\tlet status = \"server\";\n\t\tfor (let i = 0; i < data.length; i++) {\n\t\t\tif (data[i].status === \"client\") return \"client\";\n\t\t\tif (data[i].status === \"error\") status = \"error\";\n\t\t}\n\n\t\treturn status;\n\t}\n\n\tfunction updateData(id, result) {\n\t\tconst ind = data.findIndex(i => i.id == id);\n\t\tconst file = (data[ind] = { ...data[ind], ...result });\n\n\t\tconst res = { ...file, status: getState() };\n\t\tif (file && file.uploaded) file.uploaded(res);\n\t\tonupload && onupload(res);\n\n\t\tif (file.temp) data = data.filter(i => i.id != id);\n\t}\n\n\tfunction dragenter() {\n\t\tif (count === 0) drag = true;\n\t\tcount++;\n\t}\n\n\tfunction dragleave() {\n\t\tcount--;\n\t\tif (count === 0) drag = false;\n\t}\n\n\texport function open(ctx) {\n\t\tlastCtx = ctx || {};\n\t\tinput.click();\n\t}\n\n\tsetContext(apiKey, { open, getState, droparea });\n</script>\n\n{#if apiOnly}\n\t<input\n\t\ttype=\"file\"\n\t\tclass=\"input\"\n\t\tbind:this={input}\n\t\tonchange={add}\n\t\t{accept}\n\t\t{multiple}\n\t\t{disabled}\n\t/>\n\t{@render children?.()}\n{:else}\n\t<div\n\t\tclass=\"label\"\n\t\tclass:active={drag}\n\t\tclass:wx-disabled={disabled}\n\t\tuse:droparea\n\t>\n\t\t<input\n\t\t\ttype=\"file\"\n\t\t\tclass=\"input\"\n\t\t\tbind:this={input}\n\t\t\tonchange={add}\n\t\t\t{accept}\n\t\t\t{multiple}\n\t\t\t{disabled}\n\t\t/>\n\t\t{#if children}{@render children({ open })}{:else}\n\t\t\t<div class=\"dropzone\">\n\t\t\t\t<span>\n\t\t\t\t\t{_(\"Drop files here or\")}\n\t\t\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t\t\t<span class=\"action\" onclick={open}\n\t\t\t\t\t\t>{_(\"select files\")}</span\n\t\t\t\t\t>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t{/if}\n\t</div>\n{/if}\n\n<style>\n\t.label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.label.active:not(.wx-disabled) .dropzone {\n\t\tbackground-color: var(--wx-background-alt);\n\t}\n\t.input {\n\t\tposition: absolute;\n\t\twidth: 0;\n\t\theight: 0;\n\t\topacity: 0;\n\t}\n\n\t.dropzone {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tpadding: var(--wx-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-style: dashed;\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tbackground: var(--wx-uploader-background);\n\t}\n\t.label:not(.wx-disabled) .action {\n\t\tcursor: pointer;\n\t\tcolor: var(--wx-color-link);\n\t\ttext-decoration: underline;\n\t}\n\n\t.label.wx-disabled .dropzone {\n\t\tbackground: var(--wx-color-disabled);\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n</style>\n","<script>\n\timport { getContext, setContext } from \"svelte\";\n\n\timport { locale } from \"@svar-ui/lib-dom\";\n\timport { en } from \"@svar-ui/uploader-locales\";\n\n\tlet { data = $bindable([]) } = $props();\n\n\t// set locale\n\tlet l = getContext(\"wx-i18n\");\n\tif (!l) {\n\t\tl = locale(en);\n\t\tsetContext(\"wx-i18n\", l);\n\t}\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"uploader\");\n\n\tconst fileSize = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"];\n\n\tfunction removeAll() {\n\t\tdata = [];\n\t}\n\n\tfunction remove(id) {\n\t\tdata = data.filter(i => i.id !== id);\n\t}\n\n\tfunction formatSize(size) {\n\t\tlet index = 0;\n\t\twhile (size > 1024) {\n\t\t\tindex++;\n\t\t\tsize = size / 1024;\n\t\t}\n\t\treturn Math.round(size * 100) / 100 + \" \" + _(fileSize[index]);\n\t}\n</script>\n\n{#if data.length}\n\t<div class=\"layout\">\n\t\t<div class=\"header\">\n\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t<i class=\"icon wxi-close\" onclick={removeAll}></i>\n\t\t</div>\n\t\t<div class=\"list\">\n\t\t\t{#each data as obj (obj.id)}\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"file-icon\"></div>\n\t\t\t\t\t<div class=\"name\">{obj.name}</div>\n\t\t\t\t\t{#if obj.file}\n\t\t\t\t\t\t<div class=\"size\">{formatSize(obj.file.size)}</div>\n\t\t\t\t\t{/if}\n\t\t\t\t\t<div class=\"controls\">\n\t\t\t\t\t\t{#if obj.status === \"client\"}\n\t\t\t\t\t\t\t<i class=\"icon wxi-spin wxi-loading\"></i>\n\t\t\t\t\t\t{:else if obj.status === \"error\"}\n\t\t\t\t\t\t\t<i class=\"icon wxi-alert\"></i>\n\t\t\t\t\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t\t\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclass=\"icon wxi-close\"\n\t\t\t\t\t\t\t\tonclick={() => remove(obj.id)}\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t{:else if !obj.status || obj.status === \"server\"}\n\t\t\t\t\t\t\t<i class=\"icon wxi-check\"></i>\n\t\t\t\t\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t\t\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclass=\"icon wxi-close\"\n\t\t\t\t\t\t\t\tonclick={() => remove(obj.id)}\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/each}\n\t\t</div>\n\t</div>\n{/if}\n\n<style>\n\t.layout {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n\n\t.header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t\tpadding: var(--wx-padding);\n\t\tborder-bottom: var(--wx-border);\n\t}\n\n\t.list {\n\t\toverflow: auto;\n\t}\n\n\t.row {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: var(--wx-padding);\n\t\tpadding: var(--wx-padding);\n\t\tborder-bottom: var(--wx-border);\n\t}\n\n\t.name {\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.icon {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: var(--wx-icon-size);\n\t\theight: var(--wx-icon-size);\n\t\tfont-size: var(--wx-icon-size);\n\t\tline-height: 1;\n\t\tborder-radius: var(--wx-border-radius);\n\t\tcolor: var(--wx-icon-color);\n\t\tcursor: pointer;\n\t}\n\t.icon:before {\n\t\tdisplay: block;\n\t}\n\t.icon:hover {\n\t\tbackground-color: var(--wx-background-hover);\n\t}\n\n\t.row:hover .wxi-close {\n\t\tdisplay: flex;\n\t}\n\t.row:hover .wxi-check,\n\t.row:hover .wxi-alert {\n\t\tdisplay: none;\n\t}\n\n\t.row .wxi-close {\n\t\tdisplay: none;\n\t}\n\n\t.wxi-check,\n\t.wxi-alert {\n\t\tdisplay: flex;\n\t}\n</style>\n","new Date().valueOf();var L=class{constructor(a){const t={id:0,$level:0,data:[],parent:null},e=new Map;e.set(0,t),this._pool=e,a&&a.length&&this.parse(a,0)}parse(a,t){const e=this._pool;for(let o=0;o<a.length;o++){const i=a[o];i.parent=i.parent||t,i.data=null,e.set(i.id,i)}for(let o=0;o<a.length;o++){const i=a[o],n=e.get(i.parent);n&&(n.data||(n.data=[]),n.data.push(i))}const s=e.get(t);this.setLevel(s,s.$level+1,!1)}add(a,t){const e=this._pool.get(a.parent||0);a.$level=e.$level+1,this._pool.set(a.id,a),e.data?t===-1?e.data=[...e.data,a]:P(e,t,a):e.data=[a]}addAfter(a,t){if(!t)return this.add(a,-1);const e=this.byId(t),s=this.byId(e.parent),o=w(s,e.id)+1;a.parent=s.id,a.$level=s.$level+1,this.add(a,o)}remove(a){const t=this._pool.get(a);this._remove(t);const e=this._pool.get(t.parent);e.data=e.data.filter(s=>s.id!=a),this._clearBranch(e)}_remove(a){a.data&&a.data.forEach(t=>this._remove(t)),this._pool.delete(a.id)}update(a,t){let e=this._pool.get(a);const s=this._pool.get(e.parent),o=w(s,e.id);e={...e,...t},s&&o>=0&&(s.data[o]=e,s.data=[...s.data]),this._pool.set(e.id,e)}move(a,t,e){const s=this._pool.get(a),o=t===\"child\",i=this._pool.get(e),n=i.$level+(o?1:0);if(!s||!i)return;const r=this._pool.get(s.parent),l=o?i:this._pool.get(i.parent);l.data||(l.data=[]);const c=w(r,s.id);N(r,c);const d=o?l.data.length:w(l,i.id)+(t===\"after\"?1:0);if(P(l,d,s),r.id===l.id&&c===d)return null;s.parent=l.id,s.$level!==n&&(s.$level=n,this.setLevel(s,n+1,!0)),this.update(s.id,s),this._clearBranch(r)}_clearBranch(a){a.data&&!a.data.length&&(a.open&&delete a.open,this.update(a.id,{data:null}))}toArray(){const a=[],t=this._pool.get(0).data;return t&&E(t,a),a}byId(a){return this._pool.get(a)}getBranch(a){return this._pool.get(a).data}forEach(a){this._pool.forEach((t,e)=>{e!==0&&a(t)})}eachChild(a,t){const e=this.byId(t);!e||!e.data||e.data.forEach((s,o)=>{a(this.byId(s.id),o),this.eachChild(a,s.id)})}setLevel(a,t,e){a.data&&(a.data=a.data.map(s=>(e&&(s={...s},this._pool.set(s.id,s)),s.$level=t,s.data&&this.setLevel(s,t+1,e),s)))}};function E(a,t){a.forEach(e=>{t.push(e),e.open===!0&&E(e.data,t)})}function N(a,t){const e=[...a.data];e.splice(t,1),a.data=e}function P(a,t,e){const s=[...a.data];s.splice(t,0,e),a.data=s}function w(a,t){return a?.data.findIndex(e=>e.id===t)}var $=2,D=class{constructor(a){a&&(this._writable=a.writable,this._async=a.async),this._values={},this._state={}}setState(a,t=0){const e={};return this._wrapProperties(a,this._state,this._values,\"\",e,t),e}getState(){return this._values}getReactive(){return this._state}_wrapProperties(a,t,e,s,o,i){for(const n in a){const r=t[n],l=e[n],c=a[n];if(r&&(l===c&&typeof c!=\"object\"||c instanceof Date&&l instanceof Date&&l.getTime()===c.getTime()))continue;const d=s+(s?\".\":\"\")+n;r?(r.__parse(c,d,o,i)&&(e[n]=c),i&$?o[d]=r.__trigger:r.__trigger()):(c&&c.__reactive?t[n]=this._wrapNested(c,c,d,o):t[n]=this._wrapWritable(c),e[n]=c),o[d]=o[d]||null}}_wrapNested(a,t,e,s){const o=this._wrapWritable(a);return this._wrapProperties(a,o,t,e,s,0),o.__parse=(i,n,r,l)=>(this._wrapProperties(i,o,t,n,r,l),!1),o}_wrapWritable(a){const t=[],e=function(){for(let s=0;s<t.length;s++)t[s](a)};return{subscribe:s=>(t.push(s),this._async?setTimeout(s,1,a):s(a),()=>{const o=t.indexOf(s);o>=0&&t.splice(o,1)}),__trigger:()=>{t.length&&(this._async?setTimeout(e,1):e())},__parse:function(s){return a=s,!0}}}};function C(a,t){return Object.defineProperty(a,\"__reactive\",{value:!0,enumerable:!1,writable:!1}),a}var T=class{constructor(a,t,e,s){typeof a==\"function\"?this._setter=a:this._setter=a.setState.bind(a),this._routes=t,this._parsers=e,this._prev={},this._triggers=new Map,this._sources=new Map,this._routes.forEach(o=>{o.in.forEach(i=>{const n=this._triggers.get(i)||[];n.push(o),this._triggers.set(i,n)}),o.out.forEach(i=>{const n=this._sources.get(i)||{};o.in.forEach(r=>n[r]=!0),this._sources.set(i,n)})}),this._routes.forEach(o=>{o.length=Math.max(...o.in.map(i=>O(i,this._sources,1)))}),this._bus=s}init(a){const t={};for(const e in a)if(this._prev[e]!==a[e]){const s=this._parsers[e];t[e]=s?s(a[e]):a[e]}this._prev=this._prev?{...this._prev,...a}:{...a},this.setState(t),this._bus&&this._bus.exec(\"init-state\",t)}setStateAsync(a){const t=this._setter(a,$);return this._async?Object.assign(this._async.signals,t):this._async={signals:t,timer:setTimeout(this._applyState.bind(this),1)},t}_applyState(){const a=this._async;if(a){this._async=null,this._triggerUpdates(a.signals,[]);for(const t in a.signals){const e=a.signals[t];e&&e()}}}setState(a,t=[]){const e=this._setter(a);return this._triggerUpdates(e,t),e}_triggerUpdates(a,t){const e=Object.keys(a),s=!t.length;t=t||[];for(let o=0;o<e.length;o++){const i=e[o],n=this._triggers.get(i);n&&n.forEach(r=>{t.indexOf(r)==-1&&t.push(r)})}s&&this._execNext(t)}_execNext(a){for(;a.length;){a.sort((e,s)=>e.length<s.length?1:-1);const t=a[a.length-1];a.splice(a.length-1),t.exec(a)}}};function O(a,t,e){const s=t.get(a);if(!s)return e;const o=Object.keys(s).map(i=>O(i,t,e+1));return Math.max(...o)}var A=class{constructor(){this._nextHandler=null,this._handlers={},this._tag=new WeakMap,this.exec=this.exec.bind(this)}on(a,t,e){let s=this._handlers[a];s?e&&e.intercept?s.unshift(t):s.push(t):s=this._handlers[a]=[t],e&&e.tag&&this._tag.set(t,e.tag)}intercept(a,t,e){this.on(a,t,{...e,intercept:!0})}detach(a){for(const t in this._handlers){const e=this._handlers[t];for(let s=e.length-1;s>=0;s--)this._tag.get(e[s])===a&&e.splice(s,1)}}async exec(a,t){const e=this._handlers[a];if(e)for(let s=0;s<e.length;s++){const o=e[s](t);if(o===!1||o&&o.then&&await o===!1)return}return this._nextHandler&&await this._nextHandler.exec(a,t),t}setNext(a){return this._nextHandler=a}};function M(a){if(a<1024)return`${a} b`;if(a>=1024&&a<1e6)return`${(a/1e3).toFixed(1)} kb`;if(a>=1e6&&a<1e9)return`${(a/1e6).toFixed(1)} Mb`;if(a>=1e9)return`${(a/1e9).toFixed(1)} Gb`}function k(a,t){t||(t={key:\"name\",order:\"asc\"});const e=a.filter(n=>n.type===\"folder\"),s=a.filter(n=>n.type!==\"folder\"),o=e.sort(F(t)),i=s.sort(F(t));return[...o,...i]}function j(a,t){return typeof a==\"string\"?a.localeCompare(t,void 0,{numeric:!0}):typeof a==\"object\"?a.getTime()-t.getTime():(a??0)-(t??0)}function B(a,t){return typeof a==\"string\"?-a.localeCompare(t,void 0,{numeric:!0}):typeof t==\"object\"?t.getTime()-a.getTime():(t??0)-(a??0)}function F({key:a,order:t}){const e=t===\"asc\"?j:B;return(s,o)=>e(s[a],o[a])}function z(a,t){const e=a===\"/\"?1:a.split(\"/\").length;return e>=t.length?null:t[e].id}function H(a){return a.length>1?a[a.length-2].id:null}class K extends L{constructor(t){const e={id:\"/\",name:\"My files\",open:!0,$level:1,parent:0,ext:\"\",type:\"folder\"};super([e]),this.parse(t,\"/\")}parse(t,e,s){!t||!t.length||(t.forEach(o=>this.parseId(o,s?e:void 0)),super.parse(t,e))}parseId(t,e){if(t.parent===0)return;const s=t.id,o=s.lastIndexOf(\"/\");if(t.parent=e??(o===0?\"/\":s.slice(0,o)),t.name=s.slice(o+1),t.type=t.type||\"file\",t.type!==\"folder\"){const i=t.name.lastIndexOf(\".\"),n=i!==-1?t.name.slice(i+1):\"\";t.ext=n!==\"new\"?n?.toLocaleLowerCase():\"\"}}getParents(t){const e=[];let s=this.byId(t);if(!s)return e;for(;s.id!==0;)e.push(s),s=this.byId(s.parent);return e.reverse()}findFiles(t,e=\"/\"){const s=[],o=t.toLocaleLowerCase();return this.eachChild(i=>{i.name.toLowerCase().indexOf(o)!==-1&&s.push(i)},e),s}add(t,e){const s=this.byId(t.parent||\"/\"),o=t.data?[...t.data]:null;t.data=null,super.add(t,e??s.data?s.data.length:0),o&&o.forEach(i=>this.add(i))}renameFiles(t,e,s){const o=this.byId(t),i=this.normalizeFile(o,e),n=[];return i.data?.forEach(r=>n.push(this.renameFiles(r.id,i.id,s))),n.length&&(i.data=n),s[t]=i.id,i}copyFiles(t,e,s){const o={};return t.forEach(i=>{const n=this.renameFiles(i,e,o);this.add(n),s&&this.remove(i),o[i]=n.id}),o}moveFiles(t,e){if(this.byId(t[0]).parent!==e)return this.copyFiles(t,e,!0)}serialize(t=\"/\"){const e=[],s=this.byId(t);return s?(s.data?.forEach(o=>{const{id:i,date:n,type:r,size:l,lazy:c}=o,d={id:i,date:n,type:r??\"file\"};c&&(d.lazy=c),l&&(d.size=l),e.push(d);const h=this.serialize(i);h.length&&e.push(...h)}),e):null}normalizeFile(t,e){const s=t.name,o=s.lastIndexOf(\".\"),i=o!==-1?s.slice(o+1):\"\",n=i?`.${i}`:\"\";let r=o!==-1?s.slice(0,o):s,l=e+(e===\"/\"?\"\":\"/\")+r;for(;this.byId(l+n);){const c=\".new\";l+=c,r+=c}return{...t,id:l+n,name:r+n,parent:e,ext:i.toLocaleLowerCase()}}}class U extends D{in;_router;constructor(t){super({writable:t,async:!1});const e=[];for(let i=0;i<2;i++)e.push({in:[\"data\",`panels.${i}.path`],out:[`panels.${i}._crumbs`],exec:n=>{const{data:r,panels:l}=this.getState(),c=[];c[i]={_crumbs:r.getParents(l[i].path)},this.setState({panels:c},n)}}),e.push({in:[\"data\",`panels.${i}.path`,`panels.${i}._sorts`,\"search\"],out:[`panels.${i}._files`],exec:n=>{const{data:r,panels:l,search:c}=this.getState();let d;c?d=r.findFiles(c,l[i].path):d=r.byId(l[i].path)?.data||[];const{path:h,_sorts:p}=l[i];d=k(d,p[h]);const u=[];u[i]={_files:d},this.setState({panels:u},n)}}),e.push({in:[\"data\",`panels.${i}.selected`,`panels.${i}._sorts`],out:[`panels.${i}._selected`],exec:n=>{const{data:r,panels:l}=this.getState(),c=l[i].selected.map(_=>r.byId(_)),{path:d,_sorts:h}=l[i],p=k(c,h[d]),u=[];u[i]={_selected:p},this.setState({panels:u},n)}});this._router=new T(super.setState.bind(this),e,{data:i=>new K(i)});const s=this.in=new A;s.on(\"select-file\",({id:i,toggle:n,range:r,panel:l,type:c})=>{const{panels:d,activePanel:h}=this.getState();typeof l>\"u\"&&(l=h),i||(n=r=!1);let p=[...d[l].selected];if(n){const _=p.indexOf(i);_===-1?p.push(i):p.splice(_,1)}else if(r&&d[l]._lastSelected){const _=d[l]._files;let m=_.findIndex(g=>g.id==d[l]._lastSelected),f=_.findIndex(g=>g.id==i);f<m&&([m,f]=[f,m]);const y=_.slice(m,f+1).map(g=>g.id);p=[...new Set([...p,...y])]}else p=i?[i]:[];const u=[];u[l]={selected:p,_lastSelected:i,_selectNavigation:c===\"navigation\"},this.setState({panels:u})}),s.on(\"set-path\",({id:i,panel:n,selected:r})=>{const{data:l,activePanel:c}=this.getState(),d=l.byId(i);if(d){const h=[];typeof n>\"u\"&&(n=c),h[n]={path:i},this.setState({panels:h}),s.exec(\"select-file\",{panel:n}),r&&r.forEach(p=>s.exec(\"select-file\",{id:p,panel:n,toggle:!0})),d.lazy&&s.exec(\"request-data\",{id:i})}}),s.on(\"provide-data\",({id:i,data:n})=>{const{mode:r,data:l}=this.getState(),c=l.byId(i);c&&(c.lazy||(c.data=[]),c.lazy=!1,l.parse(n,i,r===\"search\"),this.setState({data:l}))}),s.on(\"open-tree-folder\",({id:i,mode:n})=>{const{data:r}=this.getState();r.update(i,{open:n}),this.setState({data:r})}),s.on(\"show-preview\",({mode:i})=>{this.setState({preview:i})}),s.on(\"rename-file\",i=>{const{id:n,name:r}=i,{data:l,panels:c}=this.getState(),d=l.byId(n);if(d.name!==r){d.name=r;const h=l.normalizeFile(d,d.parent);i.newId=h.id,h.data=null,l.add(h);let p={[n]:h.id};d.data?.forEach(_=>p={...l.moveFiles([_.id],h.id),...p});const u=c.map(_=>({selected:_.selected,_crumbs:_._crumbs,_lastSelected:_._lastSelected,_sorts:_._sorts}));l.remove(n),this._updatePanels(u,p),this.setState({data:l,panels:u})}}),s.on(\"create-file\",i=>{const{file:n,parent:r}=i,{data:l}=this.getState(),c=l.normalizeFile(n,r);c.type=n.type||\"file\",i.newId=c.id,l.add(c),this.setState({data:l}),s.exec(\"select-file\",{id:c.id})}),s.on(\"delete-files\",({ids:i})=>{const{data:n,panels:r}=this.getState(),l=r.map(c=>({selected:c.selected,_crumbs:c._crumbs,_lastSelected:c._lastSelected,_sorts:c._sorts}));i.forEach(c=>n.remove(c)),this._updatePanels(l,{}),this.setState({data:n,panels:l})}),s.on(\"copy-files\",i=>{const{ids:n,target:r}=i;if(this._isPlacedIntoSelf(n,r)){console.error(\"You cannot copy a folder into itself\"),i.skipProvider=!0;return}const{data:l,panels:c,activePanel:d}=this.getState(),h=l.copyFiles(n,r);i.newIds=n.map(p=>h[p]),this.setState({data:l}),c[d].path==r&&(s.exec(\"select-file\",{}),n.forEach(p=>{s.exec(\"select-file\",{id:h[p],toggle:!0})}))}),s.on(\"move-files\",i=>{const{ids:n,target:r}=i;if(this._isPlacedIntoSelf(n,r)){console.error(\"You cannot move a folder into itself\"),i.skipProvider=!0;return}const{data:l,panels:c,activePanel:d}=this.getState(),h=l.moveFiles(n,r);if(h){i.newIds=n.map(u=>h[u]);const p=c.map(u=>({selected:u.selected,_crumbs:u._crumbs,_lastSelected:u._lastSelected,_sorts:u._sorts}));this._updatePanels(p,h,!0),this.setState({data:l,panels:p}),c[d].path==r&&(s.exec(\"select-file\",{}),n.forEach(u=>{s.exec(\"select-file\",{id:h[u],toggle:!0})}))}});let o=null;s.on(\"filter-files\",({text:i})=>{if(!i){o&&this.setState({...o});return}s.exec(\"select-file\",{});const{panels:n,mode:r}=this.getState();o||(o={panels:n,mode:r,search:\"\"}),this.setState({mode:\"search\",search:i})}),s.on(\"set-mode\",({mode:i})=>{const{activePanel:n}=this.getState(),r=[];r[n]={_selectNavigation:!1};const l={mode:i,search:\"\",panels:r};o=null,this.setState(l)}),s.on(\"set-active-panel\",({panel:i})=>{this.setState({activePanel:i})}),s.on(\"sort-files\",({key:i,order:n,panel:r,path:l})=>{const{activePanel:c,panels:d}=this.getState();r=r??c,l=l??d[r].path;const h=[];h[r]={_sorts:{...d[r]._sorts,[l]:{key:i,order:n}}},this.setState({panels:h})}),this.initOnce()}initOnce(){const t=[];for(let s=0;s<2;s++)t[s]=C({_crumbs:[],_files:[],_selected:[],_sorts:{},path:\"/\",selected:[],...t[s]});const e={panels:C(t),data:[],search:\"\"};this._router.init(e)}init(t){const e={...t};this._router.init(e)}setState(t,e){return this._router.setState(t,e)}getFile(t){const{data:e}=this.getState();return e.byId(t)||null}serialize(t){const{data:e}=this.getState();return e.serialize(t)}_updatePanels(t,e,s){const{data:o}=this.getState();t.forEach(i=>{const n=[];i.selected.forEach(c=>{o.byId(c)?n.push(c):!s&&e[c]&&n.push(e[c])}),i.selected=n,o.byId(i._lastSelected)||(i._lastSelected=s?null:e[i._lastSelected]||null);const r={};Object.keys(i._sorts).forEach(c=>{o.byId(c)?r[c]=i._sorts[c]:e[c]&&!s&&(r[e[c]]=i._sorts[c])}),i._sorts=r;const l=i._crumbs[i._crumbs.length-1];l?.id!==\"/\"&&(e[l.id]?i.path=e[l.id]:o.byId(l.id)||(i.path=\"/\"))})}_isPlacedIntoSelf(t,e){return t.some(s=>s===e||this.getState().data.getParents(e).some(o=>o.id===s))}}function W(a){switch(a){case\"body\":return[{icon:\"wxi-content-paste\",text:\"Paste\",hotkey:\"Ctrl+V\",id:\"paste\"}];case\"add\":return[{icon:\"mdi mdi-folder-plus-outline\",text:\"Add new file\",id:\"add-file\"},{icon:\"mdi mdi-file-plus-outline\",text:\"Add new folder\",id:\"add-folder\"},{icon:\"mdi mdi-file-upload-outline\",text:\"Upload file\",id:\"upload\",comp:\"upload\"}];case\"multiselect\":return[{icon:\"wxi-content-copy\",text:\"Copy\",hotkey:\"Ctrl+C\",id:\"copy\"},{icon:\"wxi-content-cut\",text:\"Cut\",hotkey:\"Ctrl+X\",id:\"move\"},{comp:\"separator\"},{icon:\"wxi-close\",text:\"Delete\",hotkey:\"Delete\",id:\"delete\"}];default:return[a===\"folder\"?null:{icon:\"wxi-download\",text:\"Download\",hotkey:\"Ctrl+D\",id:\"download\"},{icon:\"wxi-content-copy\",text:\"Copy\",hotkey:\"Ctrl+C\",id:\"copy\"},{icon:\"wxi-content-cut\",text:\"Cut\",hotkey:\"Ctrl+X\",id:\"move\"},{icon:\"wxi-content-paste\",text:\"Paste\",hotkey:\"Ctrl+V\",id:\"paste\"},{comp:\"separator\"},{icon:\"wxi-edit\",text:\"Rename\",hotkey:\"Ctrl+R\",id:\"rename\"},{icon:\"wxi-close\",text:\"Delete\",hotkey:\"Delete\",id:\"delete\"}].filter(t=>t!==null)}}function R(a,t=\"data-id\"){let e=a;for(!e.tagName&&a.target&&(e=a.target);e;){if(e.getAttribute&&e.getAttribute(t))return e;e=e.parentNode}return null}function V(a,t=\"data-id\"){const e=R(a,t);return e?e.getAttribute(t):null}new Date().valueOf();function X(a,t){const{api:e}=t;function s(i,n){const r=t.getPanel(),l=r.selected,c=n.ctrlKey||n.metaKey,d=n.shiftKey;let h;const p=l?.[0]?e.getFile(l[0]):null;l?.length?l.length>1?h=t.menuOptions(\"multiselect\"):h=t.menuOptions(p.type,p):h=t.menuOptions(\"body\");const u=`${c?\"ctrl+\":\"\"}${d?\"shift+\":\"\"}${i}`,_=h?h.find(f=>f.hotkey?.toLowerCase()===u):!1,m=t.performAction;if(_)switch(u){case\"ctrl+c\":m(\"copy\");break;case\"ctrl+x\":m(\"move\");break;case\"ctrl+v\":m(\"paste\",p);break;case\"delete\":m(\"delete\");break;case\"ctrl+r\":n.preventDefault(),m(\"rename\",p);break;case\"ctrl+d\":n.preventDefault(),m(\"download\",p);break;default:_.handler?.({context:p})}switch(i){case\"enter\":{if(c||d)break;const{_crumbs:f,_selectNavigation:y}=r;if(y){const g=H(f);if(g){const v=z(g,f);e.exec(\"set-path\",{id:g,selected:[v]})}}else if(l.length===1){const g=e.getFile(l[0]);g&&e.exec(g.type===\"folder\"?\"set-path\":\"open-file\",{id:g.id})}break}case\"arrowup\":case\"arrowleft\":{const{_files:f,_selected:y,path:g,_selectNavigation:v}=r;let x;if(y.length){const I=y.at(0).id,S=f.findIndex(b=>b.id===I);if(S!==-1){const b=S-1;f[b]?x=f[b].id:g!==\"/\"&&!(c||d)&&e.exec(\"select-file\",{type:\"navigation\"})}}else{if(v)break;if(g!==\"/\"){e.exec(\"select-file\",{type:\"navigation\"});break}x=f.at(0)?.id}x&&e.exec(\"select-file\",{id:x,toggle:c,range:d});break}case\"arrowdown\":case\"arrowright\":{const{_files:f,_selected:y,path:g,_selectNavigation:v}=r;let x;if(y.length){const I=y.at(-1).id,S=f.findIndex(b=>b.id===I);if(S!==-1){const b=S+1;f[b]&&(x=f[b].id)}}else{if(g!==\"/\"&&!v){e.exec(\"select-file\",{type:\"navigation\"});break}x=f.at(0)?.id}x&&e.exec(\"select-file\",{id:x,toggle:c,range:d});break}}}function o(i){const n=i.code.replace(\"Key\",\"\").toLowerCase();s(n,i),n==\"tab\"&&setTimeout(()=>{const r=document.activeElement;r.className.indexOf(\"table\")!=-1&&e.exec(\"set-active-panel\",{panel:+V(r,\"data-panel\")})})}return a.addEventListener(\"keydown\",o),{destroy:()=>{a.removeEventListener(\"keydown\",o)}}}export{U as DataStore,M as formatSize,W as getMenuOptions,z as getSelectionOnNavigation,X as hotkeys,k as sort};\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { setID } from \"@svar-ui/lib-dom\";\n\n\tlet { item } = $props();\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst templates = getContext(\"filemanager-store\").templates;\n\n\tlet { panels, activePanel, mode } = api.getReactiveState();\n\n\tconst selection = $derived($panels[$activePanel].selected);\n\n\tlet preview = $derived(templates.preview(item, 214, 163));\n\tlet icon = $derived(templates.icon(item, \"big\"));\n</script>\n\n{#if item.id === \"/wx-filemanager-parent-link\"}\n\t{#if $mode !== \"search\"}\n\t\t<div class=\"wx-back-item\">\n\t\t\t<div\n\t\t\t\tclass=\"wx-back\"\n\t\t\t\tdata-id={setID(\"/wx-filemanager-parent-link\")}\n\t\t\t\tclass:wx-selected={item.navigation}\n\t\t\t>\n\t\t\t\t<i class=\"wxi-arrow-left\"></i>\n\t\t\t\t<span> {_(\"Back to parent folder\")}</span>\n\t\t\t</div>\n\t\t</div>\n\t{/if}\n{:else}\n\t<div\n\t\tclass=\"wx-item\"\n\t\tclass:wx-selected={selection?.length && selection.indexOf(item.id) >= 0}\n\t\tdata-id={setID(item.id)}\n\t>\n\t\t{#if preview}\n\t\t\t<div class=\"wx-preview wx-file-preview\">\n\t\t\t\t<img\n\t\t\t\t\tclass=\"wx-card-preview\"\n\t\t\t\t\talt={_(\"A miniature file preview\")}\n\t\t\t\t\tsrc={preview}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t{:else if icon}\n\t\t\t<div class=\"wx-preview wx-file-icon\">\n\t\t\t\t<img class=\"wx-card-preview\" alt=\"\" src={icon} />\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<div class=\"wx-preview\"><i class=\"wxi-{item.type}\"></i></div>\n\t\t{/if}\n\t\t{#if item.type === \"folder\"}\n\t\t\t<div class=\"wx-info\">\n\t\t\t\t<div class=\"wx-folder-name\">\n\t\t\t\t\t<span class=\"wx-type\">{_(\"Folder\")}</span>\n\t\t\t\t\t<span class=\"wx-name\">{item.name}</span>\n\t\t\t\t</div>\n\t\t\t\t<div data-action-id={setID(item.id)} class=\"wx-more\">\n\t\t\t\t\t<i class=\"wxi-dots-v\"></i>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<div class=\"wx-info\">\n\t\t\t\t<div class=\"wx-file-name\">\n\t\t\t\t\t<span class=\"wx-name\">{item.name}</span>\n\t\t\t\t</div>\n\t\t\t\t<div data-action-id={setID(item.id)} class=\"wx-more\">\n\t\t\t\t\t<i class=\"wxi-dots-v\"></i>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t{/if}\n\t</div>\n{/if}\n\n<style>\n\t.wx-item {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 210px;\n\t\theight: 200px;\n\t\tmargin: 0 20px 20px 0;\n\t\toverflow: hidden;\n\t\tcursor: pointer;\n\t\tbackground-color: var(--wx-background);\n\t\tborder-radius: 6px;\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t}\n\n\t.wx-preview {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tflex-grow: 1;\n\t}\n\n\t.wx-preview i {\n\t\tfont-size: 105px;\n\t\tcolor: var(--wx-color-primary);\n\t}\n\n\t.wx-preview i:before {\n\t\tline-height: 105px;\n\t}\n\t.wx-file-preview .wx-card-preview {\n\t\theight: 154px;\n\t\twidth: 100%;\n\t}\n\n\t.wx-file-icon .wx-card-preview {\n\t\theight: 100px;\n\t\twidth: 100px;\n\t}\n\n\t.wx-selected {\n\t\toutline: 1px solid var(--wx-color-primary);\n\t}\n\t.wx-info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 46px;\n\t\tpadding: 0 6px 3px 10px;\n\t}\n\t.wx-folder-name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex-grow: 1;\n\t\tmax-width: 80%;\n\t}\n\t.wx-more {\n\t\tdisplay: flex;\n\t\tpadding: 4px;\n\t\tline-height: 1;\n\t}\n\n\t.wx-more i {\n\t\tfont-size: 24px;\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tcolor: var(--wx-icon-color);\n\t}\n\n\t.wx-more:hover {\n\t\tbackground-color: var(--wx-button-background);\n\t\tborder-radius: 50%;\n\t}\n\t.wx-info .wx-type {\n\t\tcolor: var(--wx-color-font-alt);\n\t\tfont-size: 12px;\n\t\theight: 18px;\n\t}\n\t.wx-file-name {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\t\tmax-width: 160px;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t.wx-name {\n\t\tdisplay: inline-block;\n\t\tfont-size: 14px;\n\t\tfont-weight: var(--wx-font-weight-md);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n\t.wx-back-item {\n\t\twidth: 100%;\n\t\tmargin: 6px 0;\n\t\tfont-size: 12px;\n\t\tline-height: 18px;\n\t}\n\t.wx-back {\n\t\tdisplay: flex;\n\t\twidth: fit-content;\n\t\tcolor: var(--wx-color-primary);\n\t\tuser-select: none;\n\t}\n\n\t.wx-back i {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmargin-right: 8px;\n\t\tfont-size: 20px;\n\t}\n\n\t.wx-back i,\n\t.wx-back span {\n\t\tcursor: pointer;\n\t}\n</style>\n","<script>\n\tlet { name = \"\", spin = false, onclick } = $props();\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<i\n\tdata-menu-ignore=\"true\"\n\tclass=\"wx-icon wxi-{name} \n\t{spin ? 'wx-spin' : ''} \n\t{onclick ? 'wx-clickable' : ''}\"\n\tonclick={() => {\n\t\tonclick && onclick();\n\t}}\n></i>\n\n<style>\n\t.wx-icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 38px;\n\t\twidth: 38px;\n\t\tfont-size: var(--wx-icon-size);\n\t\tcolor: var(--wx-icon-color);\n\t\tborder-radius: 50%;\n\t}\n\n\t.wx-icon.wx-clickable {\n\t\tcursor: pointer;\n\t}\n\n\t.wx-icon.wx-clickable:hover {\n\t\tbackground-color: var(--wx-background-alt);\n\t}\n\n\t.wx-spin:before {\n\t\tcolor: var(--wx-color-primary);\n\t\tanimation-name: spin;\n\t\tanimation-duration: 2000ms;\n\t\tanimation-iteration-count: infinite;\n\t\tanimation-timing-function: linear;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport Panel from \"./Cards/Panel.svelte\";\n\timport Icon from \"./ui/Icon.svelte\";\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst api = getContext(\"filemanager-store\");\n\n\tlet { panels, activePanel } = api.getReactiveState();\n\tlet crumbs = $derived($panels[$activePanel]._crumbs);\n\n\tfunction clearSearch() {\n\t\tapi.exec(\"filter-files\", {\n\t\t\ttext: \"\",\n\t\t});\n\t}\n</script>\n\n<div class=\"wx-search\">\n\t<div class=\"wx-toolbar\">\n\t\t<div class=\"wx-back-icon\">\n\t\t\t<Icon name=\"angle-left\" onclick={clearSearch} />\n\t\t</div>\n\t\t<div class=\"wx-text\">\n\t\t\t{_(\"Search results in\")}\n\t\t\t{#each crumbs as crumb, i}\n\t\t\t\t{#if i}/{/if}\n\t\t\t\t{crumb.id == \"/\" ? _(crumb.name) : crumb.name}\n\t\t\t{/each}\n\t\t</div>\n\t</div>\n\t<Panel />\n</div>\n\n<style>\n\t.wx-search {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tmax-height: 100%;\n\t\tmax-width: 100%;\n\t\tflex-shrink: 1;\n\t\tpadding: 10px;\n\t\tpadding-top: 0;\n\t}\n\t.wx-toolbar {\n\t\tflex: 0 0 48px;\n\t\tdisplay: flex;\n\t\tjustify-content: flex-start;\n\t\talign-items: center;\n\t\tpadding: 0 12px;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--wx-background);\n\t\tborder: 1px solid var(--wx-border);\n\t}\n\n\t.wx-text {\n\t\tfont-size: 16px;\n\t}\n\n\t.wx-back-icon {\n\t\tmargin-right: 4px;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { dateToString } from \"@svar-ui/lib-dom\";\n\timport { formatSize } from \"@svar-ui/filemanager-store\";\n\timport Icon from \"./ui/Icon.svelte\";\n\n\tconst { preview, icon } = getContext(\"filemanager-store\").templates;\n\n\tconst api = getContext(\"filemanager-store\");\n\n\tlet { narrowMode, extraInfo } = $props();\n\n\tlet {\n\t\tpanels,\n\t\tactivePanel,\n\t\tpreview: rPreview,\n\t\tsearch,\n\t} = api.getReactiveState();\n\n\tconst locale = getContext(\"wx-i18n\");\n\tconst _ = locale.getGroup(\"filemanager\");\n\tconst format = dateToString(\n\t\t\"%D, %d %F %Y, %H:%i\",\n\t\tlocale.getRaw().calendar\n\t);\n\n\tconst found = $derived($search && !$panels[$activePanel]._selected.length);\n\tconst items = $derived(\n\t\tfound ? $panels[$activePanel]._files : $panels[$activePanel]._selected\n\t);\n\n\tfunction downloadFile() {\n\t\tapi.exec(\"download-file\", {\n\t\t\tid: items[0].id,\n\t\t});\n\t}\n\n\tfunction getTotalCount(folders, files) {\n\t\treturn (\n\t\t\t(folders\n\t\t\t\t? `${folders} ${_(folders > 1 ? \"folders\" : \"folder\")} `\n\t\t\t\t: \"\") +\n\t\t\t(files ? `${files} ${_(files > 1 ? \"files\" : \"file\")}` : \"\")\n\t\t);\n\t}\n\n\tfunction closePreview() {\n\t\tapi.exec(\"show-preview\", { mode: !$rPreview });\n\t}\n\n\tfunction getItemType(item) {\n\t\treturn item.type === \"folder\"\n\t\t\t? _(\"Folder\")\n\t\t\t: item.ext || _(\"Unknown file\");\n\t}\n\n\tconst basic = $derived.by(() => {\n\t\tlet name,\n\t\t\titem,\n\t\t\tpreviewSrc,\n\t\t\ticonSrc,\n\t\t\tshowDownloadIcon,\n\t\t\ttype,\n\t\t\ttotalCount,\n\t\t\ttotalSize;\n\n\t\tif (items.length === 1 && !found) {\n\t\t\titem = items[0];\n\t\t\tname = item.name;\n\t\t\tconst prev = preview(item, 400, 500);\n\t\t\tif (prev) {\n\t\t\t\tpreviewSrc = prev;\n\t\t\t\ticonSrc = \"\";\n\t\t\t} else {\n\t\t\t\ticonSrc = icon(item, \"big\");\n\t\t\t\tpreviewSrc = \"\";\n\t\t\t}\n\t\t\tshowDownloadIcon = item.type !== \"folder\";\n\t\t} else {\n\t\t\titem = showDownloadIcon = null;\n\t\t\tname = \"\";\n\t\t\tif (items.length) {\n\t\t\t\tlet sum = 0;\n\t\t\t\tlet folders = 0;\n\t\t\t\tlet files = 0;\n\t\t\t\tlet extArr = [];\n\t\t\t\tlet incorrectSize;\n\t\t\t\titems.forEach(item => {\n\t\t\t\t\tif (typeof item.size === \"undefined\") {\n\t\t\t\t\t\tincorrectSize = true;\n\t\t\t\t\t\tsum = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!incorrectSize) {\n\t\t\t\t\t\tsum += item.size;\n\t\t\t\t\t}\n\n\t\t\t\t\textArr.push(getItemType(item));\n\t\t\t\t\titem.type === \"folder\" ? folders++ : files++;\n\t\t\t\t});\n\n\t\t\t\tconst singleExt = new Set(extArr);\n\t\t\t\ttype = singleExt.size > 1 ? _(\"multiple\") : [...singleExt][0];\n\t\t\t\ttotalCount = getTotalCount(folders, files);\n\t\t\t\ttotalSize = sum;\n\t\t\t\tif (!found) name = _(\"Multiple files\");\n\t\t\t}\n\t\t\ticonSrc = icon(\n\t\t\t\t{\n\t\t\t\t\ttype: found ? \"search\" : items.length ? \"multiple\" : \"none\",\n\t\t\t\t},\n\t\t\t\t\"big\"\n\t\t\t);\n\t\t\tpreviewSrc = \"\";\n\t\t}\n\n\t\treturn {\n\t\t\tname,\n\t\t\titem,\n\t\t\tpreviewSrc,\n\t\t\ticonSrc,\n\t\t\tshowDownloadIcon,\n\t\t\ttype,\n\t\t\ttotalCount,\n\t\t\ttotalSize,\n\t\t};\n\t});\n\n\tasync function getExtraInfo(item) {\n\t\tif (!extraInfo || !item) return null;\n\t\ttry {\n\t\t\treturn await extraInfo(item);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tconst info = $derived(getExtraInfo(basic.item));\n</script>\n\n<div class=\"wx-wrapper\">\n\t{#if items.length}\n\t\t<div class=\"wx-preview\">\n\t\t\t<div class=\"wx-toolbar\">\n\t\t\t\t<div class=\"wx-name\">{name}</div>\n\t\t\t\t<div class=\"wx-icons\">\n\t\t\t\t\t{#if basic.showDownloadIcon}\n\t\t\t\t\t\t<Icon name=\"download\" onclick={downloadFile} />\n\t\t\t\t\t{/if}\n\t\t\t\t\t{#if narrowMode}\n\t\t\t\t\t\t<Icon name=\"close\" onclick={closePreview} />\n\t\t\t\t\t{/if}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{#if basic.previewSrc}\n\t\t\t\t<div class=\"wx-img-wrapper\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={basic.previewSrc}\n\t\t\t\t\t\talt={_(\"A miniature file preview\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t{:else if basic.iconSrc}\n\t\t\t\t<div class=\"wx-icon-wrapper\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={basic.iconSrc}\n\t\t\t\t\t\talt={_(\"A miniature file preview\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t{:else}\n\t\t\t\t<div class=\"wx-icon-wrapper\">\n\t\t\t\t\t{#if basic.item}\n\t\t\t\t\t\t<i class=\"wx-icon wxi-{basic.item.type}\"></i>\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t<i\n\t\t\t\t\t\t\tclass=\"wx-icon wxi-{found\n\t\t\t\t\t\t\t\t? 'search'\n\t\t\t\t\t\t\t\t: 'file-multiple-outline'}\"\n\t\t\t\t\t\t></i>\n\t\t\t\t\t{/if}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t</div>\n\t\t<div class=\"wx-info-panel\">\n\t\t\t<div class=\"wx-title\">{found ? _(\"Found\") : _(\"Information\")}</div>\n\t\t\t<div class=\"wx-list\">\n\t\t\t\t{#if basic.item}\n\t\t\t\t\t<span class=\"wx-name\">{_(\"Type\")}</span>\n\t\t\t\t\t<span class=\"wx-value\">{getItemType(basic.item)}</span>\n\t\t\t\t\t{#if typeof basic.item.size !== \"undefined\"}\n\t\t\t\t\t\t<span class=\"wx-name\">{_(\"Size\")}</span>\n\t\t\t\t\t\t<span class=\"wx-value\"\n\t\t\t\t\t\t\t>{formatSize(basic.item.size)}</span\n\t\t\t\t\t\t>\n\t\t\t\t\t{/if}\n\t\t\t\t\t<span class=\"wx-name\">{_(\"Date\")}</span>\n\t\t\t\t\t<span class=\"wx-value\">{format(basic.item.date)} </span>\n\t\t\t\t{:else}\n\t\t\t\t\t<span class=\"wx-name\">{_(\"Count\")}</span>\n\t\t\t\t\t<span class=\"wx-value\">{basic.totalCount}</span>\n\t\t\t\t\t<span class=\"wx-name\">{_(\"Type\")}</span>\n\t\t\t\t\t<span class=\"wx-value\">{basic.type}</span>\n\t\t\t\t\t{#if typeof basic.totalSize !== \"undefined\"}\n\t\t\t\t\t\t<span class=\"wx-name\">{_(\"Size\")}</span>\n\t\t\t\t\t\t<span class=\"wx-value\"\n\t\t\t\t\t\t\t>{formatSize(basic.totalSize)}</span\n\t\t\t\t\t\t>\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t\t{#await info then values}\n\t\t\t\t\t{#if values}\n\t\t\t\t\t\t{#each Object.entries(values) as [name, value]}\n\t\t\t\t\t\t\t<span class=\"wx-name\">{name}</span>\n\t\t\t\t\t\t\t<span class=\"wx-value\">{value}</span>\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t{/if}\n\t\t\t\t{/await}\n\t\t\t</div>\n\t\t</div>\n\t{:else}\n\t\t<div class=\"wx-no-info-panel\">\n\t\t\t<div class=\"wx-toolbar\">\n\t\t\t\t<div class=\"wx-name\">{name}</div>\n\t\t\t\t<div class=\"wx-icons\">\n\t\t\t\t\t{#if narrowMode}\n\t\t\t\t\t\t<Icon name=\"close\" onclick={closePreview} />\n\t\t\t\t\t{/if}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"wx-no-info-wrapper\">\n\t\t\t\t<div class=\"wx-no-info\">\n\t\t\t\t\t{#if basic.previewSrc}\n\t\t\t\t\t\t<div class=\"wx-img-wrapper\">\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={basic.previewSrc}\n\t\t\t\t\t\t\t\talt={_(\"A miniature file preview\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{:else if basic.iconSrc}\n\t\t\t\t\t\t<div class=\"wx-icon-wrapper\">\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={basic.iconSrc}\n\t\t\t\t\t\t\t\talt={_(\"A miniature file preview\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t<div class=\"wx-icon-wrapper\">\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclass=\"wx-icon wxi-{found\n\t\t\t\t\t\t\t\t\t? 'search'\n\t\t\t\t\t\t\t\t\t: 'message-question-outline'}\"\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{/if}\n\t\t\t\t\t<span class=\"wx-text\"\n\t\t\t\t\t\t>{found\n\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t: _(\"Select file or folder to view details\")}</span\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t{/if}\n</div>\n\n<style>\n\t.wx-wrapper {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tcursor: default;\n\t\tpadding: 0 10px 10px;\n\t}\n\t.wx-toolbar {\n\t\tflex: 0 0 48px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\tpadding: 0 12px;\n\t\twidth: 100%;\n\t\tbackground-color: var(--wx-background);\n\t\tborder-radius: 6px 6px 0 0;\n\t\theight: 48px;\n\t}\n\t.wx-toolbar .wx-name {\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tfont-weight: var(--wx-font-weight-md);\n\t\tfont-size: 16px;\n\t}\n\t.wx-toolbar .wx-icons {\n\t\tdisplay: flex;\n\t}\n\t.wx-preview {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t\theight: 60%;\n\t\tmargin-bottom: 10px;\n\t\tborder-radius: 6px;\n\t}\n\t.wx-preview .wx-img-wrapper,\n\t.wx-preview .wx-icon-wrapper {\n\t\tborder-top: none;\n\t\tflex-grow: 1;\n\t\tborder-radius: 0 0 6px 6px;\n\t}\n\t.wx-preview .wx-icon-wrapper {\n\t\tpadding: 20px;\n\t}\n\t.wx-preview .wx-img-wrapper {\n\t\theight: calc(100% - 48px);\n\t}\n\n\t.wx-preview .wx-img-wrapper img {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tobject-fit: cover;\n\t}\n\t.wx-img-wrapper,\n\t.wx-icon-wrapper {\n\t\tbackground-color: var(--wx-background);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\t.wx-icon {\n\t\tcolor: var(--wx-color-primary);\n\t}\n\t.wx-preview .wx-icon {\n\t\tfont-size: 105px;\n\t}\n\t.wx-img-wrapper img {\n\t\tmax-width: 100%;\n\t}\n\t.wx-info-panel {\n\t\tflex-grow: 1;\n\t\theight: calc(40% - 10px);\n\t\tborder-radius: 6px;\n\t\tbackground-color: var(--wx-background);\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t}\n\t.wx-title {\n\t\tdisplay: flex;\n\t\tborder-bottom: var(--wx-fm-grid-border);\n\t\tfont-weight: var(--wx-font-weight-md);\n\t\talign-items: center;\n\t\tjustify-content: flex-start;\n\t\tpadding: 15px;\n\t\tfont-size: 16px;\n\t}\n\t.wx-list {\n\t\tpadding: 14px;\n\t\tmax-height: calc(100% - 51px);\n\t\tdisplay: grid;\n\t\tgrid-template-columns: minmax(40px, max-content) 1fr;\n\t\tgrid-auto-rows: auto;\n\t\tcolumn-gap: 25px;\n\t\toverflow-y: auto;\n\t}\n\t.wx-list span {\n\t\tpadding: 6px;\n\t}\n\t.wx-list .wx-name {\n\t\tfont-size: 14px;\n\t\tfont-weight: var(--wx-font-weight-md);\n\t\tgrid-column: 1 / 2;\n\t\tmin-width: 60px;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t.wx-list .wx-value {\n\t\tgrid-column: 2 / 3;\n\t\tpadding: 6px;\n\t}\n\t.wx-no-info-panel {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tbackground-color: var(--wx-background);\n\t\tborder-radius: 6px;\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t}\n\t.wx-no-info-wrapper {\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\t.wx-no-info {\n\t\tpadding: 5px;\n\t\ttext-align: center;\n\t}\n\t.wx-no-info .wx-icon-wrapper {\n\t\tmin-height: 120px;\n\t}\n\t.wx-no-info .wx-icon {\n\t\tfont-size: 120px;\n\t}\n\t.wx-no-info .wx-text {\n\t\tfont-size: var(--wx-font-size);\n\t\tline-height: var(--wx-line-height);\n\t\tfont-weight: var(--wx-font-weight-md);\n\t\ttext-align: center;\n\t}\n</style>\n","export default {\n\tgrid: {\n\t\t\"Add before\": \"Add before\",\n\t\t\"Add after\": \"Add after\",\n\t\tCopy: \"Copy\",\n\t\tCut: \"Cut\",\n\t\tPaste: \"Paste\",\n\t\tDelete: \"Delete\",\n\t\t\"New row\": \"New row\",\n\t\t\"Move up\": \"Move up\",\n\t\t\"Move down\": \"Move down\",\n\t\tUndo: \"Undo\",\n\t\tRedo: \"Redo\",\n\t},\n};\n","var j=new Date().valueOf(),V=()=>j++;function F(r,e){if(Object.keys(r).length!==Object.keys(e).length)return!1;for(const o in e){const t=r[o],n=e[o];if(!k(t,n))return!1}return!0}function k(r,e){if(typeof r==\"number\"||typeof r==\"string\"||typeof r==\"boolean\"||r===null)return r===e;if(typeof r!=typeof e||(r===null||e===null)&&r!==e||r instanceof Date&&e instanceof Date&&r.getTime()!==e.getTime())return!1;if(typeof r==\"object\")if(Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return!1;for(let o=r.length-1;o>=0;o--)if(!k(r[o],e[o]))return!1;return!0}else return F(r,e);return r===e}function D(r){if(typeof r!=\"object\"||r===null)return r;if(r instanceof Date)return new Date(r);if(r instanceof Array)return r.map(D);const e={};for(const o in r)e[o]=D(r[o]);return e}var T=2,W=class{constructor(r){r&&(this._writable=r.writable,this._async=r.async),this._values={},this._state={}}setState(r,e=0){const o={};return this._wrapProperties(r,this._state,this._values,\"\",o,e),o}getState(){return this._values}getReactive(){return this._state}_wrapProperties(r,e,o,t,n,i){for(const a in r){const s=e[a],c=o[a],l=r[a];if(s&&(c===l&&typeof l!=\"object\"||l instanceof Date&&c instanceof Date&&c.getTime()===l.getTime()))continue;const d=t+(t?\".\":\"\")+a;s?(s.__parse(l,d,n,i)&&(o[a]=l),i&T?n[d]=s.__trigger:s.__trigger()):(l&&l.__reactive?e[a]=this._wrapNested(l,l,d,n):e[a]=this._wrapWritable(l),o[a]=l),n[d]=n[d]||null}}_wrapNested(r,e,o,t){const n=this._wrapWritable(r);return this._wrapProperties(r,n,e,o,t,0),n.__parse=(i,a,s,c)=>(this._wrapProperties(i,n,e,a,s,c),!1),n}_wrapWritable(r){const e=[],o=function(){for(let t=0;t<e.length;t++)e[t](r)};return{subscribe:t=>(e.push(t),this._async?setTimeout(t,1,r):t(r),()=>{const n=e.indexOf(t);n>=0&&e.splice(n,1)}),__trigger:()=>{e.length&&(this._async?setTimeout(o,1):o())},__parse:function(t){return r=t,!0}}}},U=class{constructor(r,e,o,t){typeof r==\"function\"?this._setter=r:this._setter=r.setState.bind(r),this._routes=e,this._parsers=o,this._prev={},this._triggers=new Map,this._sources=new Map,this._routes.forEach(n=>{n.in.forEach(i=>{const a=this._triggers.get(i)||[];a.push(n),this._triggers.set(i,a)}),n.out.forEach(i=>{const a=this._sources.get(i)||{};n.in.forEach(s=>a[s]=!0),this._sources.set(i,a)})}),this._routes.forEach(n=>{n.length=Math.max(...n.in.map(i=>H(i,this._sources,1)))}),this._bus=t}init(r){const e={};for(const o in r)if(this._prev[o]!==r[o]){const t=this._parsers[o];e[o]=t?t(r[o]):r[o]}this._prev=this._prev?{...this._prev,...r}:{...r},this.setState(e),this._bus&&this._bus.exec(\"init-state\",e)}setStateAsync(r){const e=this._setter(r,T);return this._async?Object.assign(this._async.signals,e):this._async={signals:e,timer:setTimeout(this._applyState.bind(this),1)},e}_applyState(){const r=this._async;if(r){this._async=null,this._triggerUpdates(r.signals,[]);for(const e in r.signals){const o=r.signals[e];o&&o()}}}setState(r,e=[]){const o=this._setter(r);return this._triggerUpdates(o,e),o}_triggerUpdates(r,e){const o=Object.keys(r),t=!e.length;e=e||[];for(let n=0;n<o.length;n++){const i=o[n],a=this._triggers.get(i);a&&a.forEach(s=>{e.indexOf(s)==-1&&e.push(s)})}t&&this._execNext(e)}_execNext(r){for(;r.length;){r.sort((o,t)=>o.length<t.length?1:-1);const e=r[r.length-1];r.splice(r.length-1),e.exec(r)}}};function H(r,e,o){const t=e.get(r);if(!t)return o;const n=Object.keys(t).map(i=>H(i,e,o+1));return Math.max(...n)}var K=class{constructor(){this._nextHandler=null,this._handlers={},this._tag=new WeakMap,this.exec=this.exec.bind(this)}on(r,e,o){let t=this._handlers[r];t?o&&o.intercept?t.unshift(e):t.push(e):t=this._handlers[r]=[e],o&&o.tag&&this._tag.set(e,o.tag)}intercept(r,e,o){this.on(r,e,{...o,intercept:!0})}detach(r){for(const e in this._handlers){const o=this._handlers[e];for(let t=o.length-1;t>=0;t--)this._tag.get(o[t])===r&&o.splice(t,1)}}async exec(r,e){const o=this._handlers[r];if(o)for(let t=0;t<o.length;t++){const n=o[t](e);if(n===!1||n&&n.then&&await n===!1)return}return this._nextHandler&&await this._nextHandler.exec(r,e),e}setNext(r){return this._nextHandler=r}};function B(r){return e=>e[r]}function Y(r){return(e,o)=>e[r]=o}function y(r,e){return(e.getter||B(e.id))(r)}function I(r,e,o){return(e.setter||Y(e.id))(r,o)}function X(r){return r.filter(e=>!!e.editor).map(e=>{let o={key:e.id||V(),label:e.header};e.options&&(o.options=e.options);let t=e.editor;return typeof t==\"function\"&&(t=t()),typeof t==\"object\"?(o={...o,...t},o.comp=t.type):o.comp=t,o})}function q(r,e){const o=document.createElement(\"a\");o.href=URL.createObjectURL(r),o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o)}function S(r,e){let o=y(r,e)??\"\";return e.template?o=e.template(o,r,e):e.optionsMap&&(Array.isArray(o)?o=o.map(t=>e.optionsMap.get(t)):o=e.optionsMap.get(o)),typeof o>\"u\"?\"\":o+\"\"}function Z(r,e){const o=/\\n|\"|;|,/;let t=\"\";const n=e.rows||`\n`,i=e.cols||\"\t\",a=r._columns,s=r.flatData;e.header!==!1&&a[0].header&&(t=P(\"header\",a,t,i,n));for(let c=0;c<s.length;c++){const l=[];for(let d=0;d<a.length;d++){let h=S(s[c],a[d]);o.test(h)&&(h='\"'+h.replace(/\"/g,'\"\"')+'\"'),l.push(h)}t+=(t?n:\"\")+l.join(i)}return e.footer!==!1&&a[0].footer&&(t=P(\"footer\",a,t,i,n)),t}function P(r,e,o,t,n){const i=/\\n|\"|;|,/;for(let a=0;a<e[0][r].length;a++){const s=[];for(let c=0;c<e.length;c++){let l=(e[c][r][a].text||\"\")+\"\";i.test(l)&&(l='\"'+l.replace(/\"/g,'\"\"')+'\"'),s.push(l)}o+=(o?n:\"\")+s.join(t)}return o}const G=\"portrait\",J=100,Q=\"a4\",ee={a3:{width:11.7,height:16.5},a4:{width:8.27,height:11.7},letter:{width:8.5,height:11}};function te(r,e){const o=[];let t=[],n=0;const i=r.filter(s=>!s.hidden),a=ne(e);return i.forEach((s,c)=>{n+s.width<=a?(n+=s.width,t.push(s)):(t.length&&o.push(t),t=[s],n=s.width),c===i.length-1&&t.length&&o.push(t)}),o}function oe(r,e,o){const t=[];return r.forEach((n,i)=>{const a=n[e];for(let s=0;s<o.length;s++){t[s]||(t[s]=[]);const c={...a[s]};if(t[s][i]!==null){if(!i&&!c.rowspan&&!c.colspan){let l=1,d=r[i+l][e][s],h=c.width;for(;!d.rowspan&&!d.colspan;)l++,d=r[i+l][e][s],h+=d.width;c.colspan=l,c.width=h,c.height=o[s]}if(t[s].push(c),!c.collapsed&&c.colspan>1){let l=c.colspan-1;if(c.colspan+i>r.length){const d=c.colspan-(c.colspan+i-r.length);c.colspan=d,c.width=r.slice(i,i+l+1).reduce((h,u)=>h+u.width,0),d>1&&(l=d-1)}for(let d=0;d<l;d++)t[s].push(null)}if(c.rowspan>1){const l=c.rowspan;for(let d=1;d<l;d++)t[s+d]||(t[s+d]=[]),t[s+d].push(null)}}}if(n.collapsed)for(let s=0;s<t.length;s++){const c=t[s],l=c[i];if(l&&l.collapsed){if(c[i]=null,!s)break}else{const d=l||c.findLast(h=>h?.colspan>=1);d&&(d.colspan=d.colspan-1,d.width=d.width-n.width)}}}),t.map(n=>n.filter(i=>i&&i.colspan!==0))}function ne(r){const{mode:e,ppi:o,paper:t}=r,{width:n,height:i}=ee[t];return ie(e===\"portrait\"?n:i,o)}function ie(r,e){return r*e}function re(r={}){const{mode:e,ppi:o,paper:t}=r;return{mode:e||G,ppi:o||J,paper:t||Q}}function se(r,e){return r.flexgrow?`min-width:${e}px;width:auto`:`width:${r.width}px; max-width:${r.width}px; height:${r.height}px`}function ae(r,e,o){let t=r[o.id];if(o.filter.type===\"richselect\"&&t){const n=o.filter.config?.options||e.find(({id:i})=>i==o.id).options;n&&(t=n.find(({id:i})=>i==t).label)}return t??\"\"}const z=[\"resize-column\",\"hide-column\",\"update-cell\"],ce=[\"delete-row\",\"update-row\",\"update-cell\"],le=[\"move-item\"],de=[\"resize-column\",\"move-item\"];class he{undo=[];redo=[];progress={};in;getState;setState;_previousValues={};constructor(e,o,t){this.in=e,this.getState=o,this.setState=t,this.setHandlers(),this.resetStateHistory()}getHandlers(){return{\"add-row\":{handler:e=>({action:\"delete-row\",data:{id:e.id},source:{action:\"add-row\",data:e}})},\"delete-row\":{handler:e=>{const{id:o}=e,{data:t}=this.getPrev(),n=t.findIndex(i=>i.id===o);return{action:\"add-row\",data:{id:o,row:t[n],before:n<t.length-1?t[n+1].id:void 0},source:{action:\"delete-row\",data:e}}}},\"update-cell\":{handler:e=>{const{id:o,column:t}=e,n=this.getRow(o),i=this.getColumn(t),a=y(n,i);return k(a,e.value)?null:{action:\"update-cell\",data:{id:o,column:t,value:a},source:{action:\"update-cell\",data:e}}}},\"update-row\":{handler:e=>{const{id:o,row:t}=e,n=this.getRow(o);for(const i in t)Object.keys(n).includes(i)||(n[i]=void 0);return{action:\"update-row\",data:{id:o,row:n},source:{action:\"update-row\",data:e}}}},\"copy-row\":{handler:e=>{const{id:o}=e,{data:t}=this.getState(),n=t.findIndex(a=>a.id===o),i=t[n];return{action:\"delete-row\",data:{id:o},source:{action:\"add-row\",data:{id:o,row:i,before:n<t.length-1?t[n+1].id:void 0}}}}},\"resize-column\":{handler:e=>{const{id:o,width:t}=e,n=this.getColumn(o),{_sizes:i}=this.getState();return{action:\"resize-column\",data:{id:o,width:n.width??i.columnWidth},source:{action:\"resize-column\",data:{id:o,width:t}}}}},\"hide-column\":{handler:e=>{const{id:o}=e,t=this.getColumn(o);return{action:\"hide-column\",data:{id:o,mode:t.hidden},source:{action:\"hide-column\",data:e}}}},\"collapse-column\":{handler:e=>{const{id:o,row:t,mode:n}=e;return{action:\"collapse-column\",data:{id:o,row:t,mode:typeof n==\"boolean\"?!n:n},source:{action:\"collapse-column\",data:e}}}},\"move-item\":{handler:e=>{const{id:o,target:t,mode:n}=e,{flatData:i}=this.getPrev(),a=i.findIndex(s=>s.id===o);return{action:\"move-item\",data:{id:o,target:i[a+(a?-1:1)].id,mode:a?\"after\":\"before\"},source:{action:\"move-item\",data:{id:o,target:t,mode:n}}}}},\"open-row\":{handler:e=>{const{id:o,nested:t}=e;return{action:\"close-row\",data:{id:o,nested:t},source:{action:\"open-row\",data:e}}}},\"close-row\":{handler:e=>{const{id:o,nested:t}=e;return{action:\"open-row\",data:{id:o,nested:t},source:{action:\"close-row\",data:e}}}}}}resetHistory(){this.undo=[],this.redo=[],this.progress={},this.resetStateHistory()}getPrev(){return this._previousValues}setHandlers(){const e=this.getHandlers();for(const o in e)this.in.intercept(o,t=>{if(!(t.eventSource===\"undo\"||t.eventSource===\"redo\"||t.skipUndo)){if(de.includes(o)){(t.inProgress&&!this.progress[o]||typeof t.inProgress!=\"boolean\")&&(le.includes(o)&&this.setPrev(\"flatData\"),z.includes(o)&&this.setPrev(\"columns\")),this.progress[o]=t.inProgress;return}ce.includes(o)&&this.setPrev(\"data\"),z.includes(o)&&this.setPrev(\"columns\")}}),this.in.on(o,t=>{if(t.eventSource===\"undo\"||t.eventSource===\"redo\"||t.skipUndo||t.inProgress)return;const n=e[o].handler(t);n&&this.addToHistory(n)})}setPrev(e){this._previousValues[e]=D(this.getState()[e])}addToHistory(e){this.undo.push(e),this.redo=[],this.setStateHistory()}handleUndo(){if(!this.undo.length)return;const e=this.undo.pop();this.redo.push({...e.source,source:e}),this.in.exec(e.action,{...e.data,eventSource:\"undo\"}),this.setStateHistory()}handleRedo(){if(!this.redo.length)return;const e=this.redo.pop();this.undo.push({...e.source,source:e}),this.in.exec(e.action,{...e.data,eventSource:\"redo\"}),this.setStateHistory()}resetStateHistory(){this.setState({history:{undo:0,redo:0}})}setStateHistory(){this.setState({history:{undo:this.undo.length,redo:this.redo.length}})}getRow(e){const{data:o}=this.getPrev();return this.getState().tree?this.getTreeRow(o,e):o.find(t=>t.id===e)}getTreeRow(e,o){for(let t=0;t<e.length;t++){if(e[t].id===o)return e[t];if(e[t].data){const n=this.getTreeRow(e[t].data,o);if(n)return n}}return null}getColumn(e){const{columns:o}=this.getPrev();return o.find(t=>t.id===e)}}function ue(){return{gen:1}}function fe(){return!0}function A(r,e){return typeof r>\"u\"||r===null?-1:typeof e>\"u\"||e===null?1:r===e?0:r>e?1:-1}function ge(r,e){return-A(r,e)}function pe(r,e){if(typeof e.sort==\"function\")return function(t,n){const i=e.sort(t,n);return r===\"asc\"?i:-i};const o=r===\"asc\"?A:ge;return function(t,n){return o(y(t,e),y(n,e))}}function we(r,e){if(!r||!r.length)return;const o=r.map(t=>{const n=e.find(i=>i.id==t.key);return pe(t.order,n)});return r.length===1?o[0]:function(t,n){for(let i=0;i<o.length;i++){const a=o[i](t,n);if(a!==0)return a}return 0}}const C=28,me=20;function xe(){if(typeof document>\"u\")return\"willow\";const r=document.querySelector('[class^=\"wx\"][class$=\"theme\"]');return r?r.className.substring(3,r.className.length-6):\"willow\"}function R(r,e,o,t,n){const i=document.createElement(\"div\"),a=document.createElement(\"div\"),s=document.body;n=n?`${n}px`:\"auto\";let c,l;a.className=e,i.classList.add(`wx-${o}-theme`),i.style.cssText=`height:auto;position:absolute;top:0px;left:100px;overflow:hidden;width=${n};white-space:nowrap;`,i.appendChild(a),s.appendChild(i),typeof r!=\"object\"&&(r=[r]);for(let d=0;d<r.length;d++){a.innerText=r[d]+\"\";const h=i.getBoundingClientRect(),u=Math.ceil(h.width)+(t&&t.length?t[d]:0),f=Math.ceil(h.height);c=Math.max(c||0,u),l=Math.max(l||0,f)}return i.remove(),{width:c,height:l}}function L(r,e,o,t,n){const i=[];for(let a=0;a<r.length;a++){const s=r[a][e],c=s.length;for(let l=0;l<c;l++){const{text:d,vertical:h,collapsed:u,rowspan:f,css:p}=s[l];if(!d){i[l]=Math.max(i[l]||0,t);continue}let g=0;if(h&&!u){let w=`wx-measure-cell-${e}`;if(w+=p?` ${p}`:\"\",g=R(d,w,n).width,(f>1||!s[l+1])&&o>l+1){const x=f||o-l,m=i.slice(l,l+x).reduce((v,_)=>v+_,0);if(m<g){const v=Math.ceil((g-m)/x);for(let _=l;_<l+x;_++)i[_]=(i[_]||t)+v}continue}}i[l]=Math.max(i[l]||t,g)}}return i}function ye(r,e,o){const t=[],n=[];let i=\"wx-measure-cell-body\";i+=r.css?` ${r.css}`:\"\";for(let a=0;a<e.length;a++){const s=e[a],c=S(s,r);c&&(t.push(c),r.treetoggle?n.push(e[a].$level*C+(e[a].$count?C:0)+(r.draggable?C:0)):r.draggable&&n.push(C))}return R(t,i,o,n).width}function _e(r,e){const o=\"wx-measure-cell-header\",t=r.sort?me:0;let n=r.header;if(typeof n==\"string\")return R(n,o,e).width+t;let i;Array.isArray(n)||(n=[n]);for(let a=0;a<n.length;a++){const s=n[a],c=typeof s==\"string\"?s:s.text,l=o+(typeof s==\"string\"?\"\":` ${s.css}`);let d=R(c,l,e).width;a===n.length-1&&(d+=t),i=Math.max(i||0,d)}return i}const Se={text:(r,e)=>r?r.toString().toLowerCase().indexOf(e.toLowerCase())!==-1:!e,richselect:(r,e)=>typeof e!=\"number\"&&!e?!0:r==e,datepicker:(r,e)=>e?r&&be(r,e):!0};function $(r){return Se[r]}function N(r,e){const o=[];for(const t in r){const n=e.find(c=>c.id==t),{config:i,type:a}=n.header.find(c=>c.filter).filter,s=r[t];o.push(c=>{const l=y(c,n);return i?.handler?i.handler(l,s):$(a)(l,s)})}return t=>{for(let n=0;n<o.length;n++)if(!o[n](t))return!1;return!0}}function be(r,e){return r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate()}class ve extends W{in;_router;_branches;_xlsxWorker;_historyManager;constructor(e){super({writable:e,async:!1});const o={rowHeight:37,columnWidth:160,headerHeight:36,footerHeight:36};this._router=new U(super.setState.bind(this),[{in:[\"columns\",\"sizes\",\"_skin\"],out:[\"_columns\",\"_sizes\"],exec:n=>{const{columns:i,sizes:a,_skin:s}=this.getState(),c=this.copyColumns(i),l=c.reduce((u,f)=>Math.max(f.header.length,u),0),d=c.reduce((u,f)=>Math.max(f.footer.length,u),0);c.forEach(this.setCollapsibleColumns);const h=this.normalizeSizes(c,a,l,d,s);for(let u=0;u<c.length;u++)this.normalizeColumns(c,u,\"header\",l,h),this.normalizeColumns(c,u,\"footer\",d,h);this.setState({_columns:c,_sizes:h},n)}},{in:[\"data\",\"tree\",\"_filterIds\"],out:[\"flatData\",\"_rowHeightFromData\"],exec:n=>{const{data:i,tree:a,dynamic:s,_filterIds:c}=this.getState(),l=c&&new Set(c),d=a?this.flattenRows(i,[],c):l?i.filter(u=>l.has(u.id)):i,h=!s&&d.some(u=>u.rowHeight);this.setState({flatData:d,_rowHeightFromData:h},n)}}],{sizes:n=>({...o,...n})});const t=this.in=new K;t.on(\"close-editor\",({ignore:n})=>{const{editor:i}=this.getState();i&&(n||t.exec(\"update-cell\",i),this.setState({editor:null}))}),t.on(\"open-editor\",({id:n,column:i})=>{let a=this.getState().editor;a&&t.exec(\"close-editor\",{});const s=this.getRow(n),c=i?this.getColumn(i):this.getNextEditor(s);if(c?.editor){let l=c.editor;if(typeof l==\"function\"&&(l=l(s,c)),!l)return;a={column:c.id,id:n,value:y(s,c)??\"\",renderedValue:S(s,c),type:l.type||l},typeof l==\"object\"&&l.config&&(a.config=l.config,l.config.options&&(a.options=l.config.options)),c.options&&!a.options&&(a.options=c.options),this.setState({editor:a})}}),t.on(\"editor\",({value:n})=>{const i=this.getState().editor;if(i){i.value=n;const a=this.getColumn(i.column),s={...this.getRow(i.id)};I(s,a,n),i.renderedValue=S(s,a),this.setState({editor:i})}}),t.on(\"add-row\",n=>{const i=this.getState();let{data:a}=i;const{select:s,_filterIds:c}=i,{row:l,before:d,after:h,select:u}=n;if(n.id=l.id=n.id||l.id||E(),d||h){const p=d||h,g=a.findIndex(w=>w.id===p);a=[...a],a.splice(g+(h?1:0),0,n.row)}else a=[...a,n.row];const f={data:a};c&&(f._filterIds=[...c,n.id]),this.setState(f),!(typeof u==\"boolean\"&&!u)&&(u||s)&&t.exec(\"select-row\",{id:l.id,show:!0})}),t.on(\"delete-row\",n=>{const{data:i,selectedRows:a,focusCell:s,editor:c}=this.getState(),{id:l}=n,d={data:i.filter(h=>h.id!==l)};this.isSelected(l)&&(d.selectedRows=a.filter(h=>h!==l)),c?.id===l&&(d.editor=null),this.setState(d),s?.row===l&&this.in.exec(\"focus-cell\",{eventSource:\"delete-row\"})}),t.on(\"update-cell\",n=>{const i=this.getState();let{data:a}=i;a=[...a];const{tree:s}=i,{id:c,column:l,value:d}=n,h=this.getColumn(l);if(s){const u={...this._branches[c]};I(u,h,d);const f=this.updateTreeRow(u);u.$parent===0&&(a=f)}else{const u=a.findIndex(p=>p.id===c),f={...a[u]};I(f,h,d),a[u]=f}this.setState({data:a})}),t.on(\"update-row\",n=>{let{data:i}=this.getState();const{id:a,row:s}=n,c=i.findIndex(l=>l.id===a);i=[...i],i[c]={...i[c],...s},this.setState({data:i})}),t.on(\"select-row\",({id:n,toggle:i,range:a,mode:s,show:c,column:l})=>{const d=this.getState(),{focusCell:h}=d;let{selectedRows:u}=d;if(u.length||(a=i=!1),a){const{data:f}=this.getState();let p=f.findIndex(w=>w.id===u[u.length-1]),g=f.findIndex(w=>w.id===n);p>g&&([p,g]=[g,p]),f.slice(p,g+1).forEach(w=>{this.isSelected(w.id)||u.push(w.id)})}else if(i&&this.isSelected(n)){if(s===!0)return;u=u.filter(f=>f!==n)}else if(i){if(s===!1)return;u.push(n)}else u=[n];this.setState({selectedRows:[...u]}),h?.row!==n&&this.in.exec(\"focus-cell\",{eventSource:\"select-row\"}),c&&this.in.exec(\"scroll\",{row:n,column:l})}),this.in.on(\"focus-cell\",n=>{const{row:i,column:a,eventSource:s}=n,{_columns:c,split:l}=this.getState();i&&a?(this.setState({focusCell:{row:i,column:a}}),s!==\"click\"&&((!l.left||c.findIndex(d=>d.id===n.column)>=l.left)&&(!l.right||c.findIndex(d=>d.id===n.column)<c.length-l.right)?this.in.exec(\"scroll\",{row:i,column:a}):this.in.exec(\"scroll\",{row:i}))):this.setState({focusCell:null})}),t.on(\"resize-column\",n=>{const{id:i,auto:a,maxRows:s,inProgress:c}=n;if(c===!1)return;let l=n.width||0;const d=[...this.getState().columns],h=this.getColumn(i);if(a){if(a===\"data\"||a===!0){const{flatData:u,_skin:f}=this.getState();let p=u.length;s&&(p=Math.min(s,p));const g=u.slice(0,p);l=ye(h,g,f)}if(a===\"header\"||a===!0){const{_skin:u}=this.getState();l=Math.max(_e(h,u),l)}}h.width=Math.max(17,l),delete h.flexgrow,this.setState({columns:d})}),t.on(\"hide-column\",n=>{const{id:i,mode:a}=n,s=[...this.getState().columns],c=this.getColumn(i),l=s.reduce((d,h)=>d+(h.hidden?0:1),0);!a||l>1?(c.hidden=!c.hidden,this.setState({columns:s})):n.skipUndo=!0}),t.on(\"sort-rows\",n=>{const{key:i,add:a,sort:s}=n,c=this.getState(),{columns:l,data:d,tree:h}=c;if(s){const m=[...d];m.sort(s),this.setState({data:m});return}const{order:u=\"asc\"}=n;let f=c.sortMarks;const p=Object.keys(f),g=p.length;!a||!g||g===1&&f[i]?f={[i]:{order:u}}:(g===1&&(f[p[0]]={...f[p[0]],index:0}),f={...f,[i]:{order:u,index:typeof a==\"number\"?a:f[i]?.index??g}});const w=Object.keys(f).sort((m,v)=>f[m].index-f[v].index).map(m=>({key:m,order:f[m].order}));this.setState({sortMarks:f});const x=we(w,l);if(x){const m=[...d];h?this.sortTree(m,x):m.sort(x),this.setState({data:m})}}),t.on(\"filter-rows\",n=>{const{value:i,key:a,filter:s}=n;if(!Object.keys(n).length){this.setState({filterValues:{},_filterIds:null});return}const c=this.getState(),{data:l,tree:d,_columns:h}=c;let u=c.filterValues;const f={};a&&(u={...u,[a]:i},f.filterValues=u);const p=s??N(u,h);let g=[];d?g=this.filterTree(l,p,g):l.forEach(w=>{p(w)&&g.push(w.id)}),f._filterIds=g,this.setState(f)}),t.on(\"collapse-column\",n=>{const{id:i,row:a,mode:s}=n,c=[...this.getState().columns],l=this.getColumn(i).header,d=Array.isArray(l)?l[a]:l;typeof d==\"object\"&&(d.collapsed=s??!d.collapsed,this.setState({columns:c}))}),t.on(\"move-item\",n=>{const{id:i,inProgress:a}=n;let{target:s,mode:c=\"after\"}=n;const{data:l,flatData:d,tree:h}=this.getState(),u=d.findIndex(g=>g.id===i);let f;if(c===\"up\"||c===\"down\"){if(c===\"up\"){if(u===0)return;f=u-1,c=\"before\"}else if(c===\"down\"){if(u===d.length-1)return;f=u+1,c=\"after\"}s=d[f]&&d[f].id}else f=d.findIndex(g=>g.id===s);if(u===-1||f===-1||a===!1)return;let p;h||(p=this.moveItem(i,s,l,c)),this.setState({data:h?this.normalizeTreeRows(p):p})}),t.on(\"copy-row\",n=>{const{id:i,target:a,mode:s=\"after\"}=n,c=this.getState(),{flatData:l,_filterIds:d}=c;let{data:h}=c;const u=this.getRow(i);if(!u)return;const f={...u,id:E()};n.id=f.id;const p=l.findIndex(w=>w.id===a);if(p===-1)return;h.splice(p+(s===\"after\"?1:0),0,f),h=[...h];const g={data:h};d&&(g._filterIds=[...d,f.id]),this.setState(g)}),t.on(\"open-row\",n=>{const{id:i,nested:a}=n;this.toggleBranch(i,!0,a)}),t.on(\"close-row\",n=>{const{id:i,nested:a}=n;this.toggleBranch(i,!1,a)}),t.on(\"export-data\",n=>new Promise((i,a)=>{const s=n.format||\"csv\",c=`${n.fileName||\"data\"}.${s}`;if(s===\"csv\"){const l=Z(this.getState(),n.csv||{});n.download!==!1?q(new Blob([\"\\uFEFF\"+l],{type:\"text/csv\"}),c):n.result=l,i(!0)}else a()})),t.on(\"hotkey\",({key:n,event:i,isInput:a})=>{switch(n){case\"arrowup\":{const{flatData:s,focusCell:c,select:l}=this.getState();if(i.preventDefault(),a)return;const d=c?c.column:this._getFirstVisibleColumn()?.id,h=c?this.getPrevRow(c.row)?.id:s[s.length-1]?.id;d&&h&&(this.in.exec(\"focus-cell\",{row:h,column:d,eventSource:\"key\"}),l&&this.in.exec(\"select-row\",{id:h}));break}case\"arrowdown\":{const{flatData:s,focusCell:c,select:l}=this.getState();if(i.preventDefault(),a)return;const d=c?c.column:this._getFirstVisibleColumn()?.id,h=c?this.getNextRow(c.row)?.id:s[0]?.id;d&&h&&(this.in.exec(\"focus-cell\",{row:h,column:d,eventSource:\"key\"}),l&&this.in.exec(\"select-row\",{id:h}));break}case\"arrowright\":{const{focusCell:s}=this.getState();if(a)return;if(i.preventDefault(),s){const c=this.getNextColumn(s.column,!0)?.id;c&&this.in.exec(\"focus-cell\",{row:s.row,column:c,eventSource:\"key\"})}break}case\"arrowleft\":{const{focusCell:s}=this.getState();if(a)return;if(i.preventDefault(),s){const c=this.getPrevColumn(s.column,!0)?.id;c&&this.in.exec(\"focus-cell\",{row:s.row,column:c,eventSource:\"key\"})}break}case\"tab\":{const{editor:s,focusCell:c,select:l}=this.getState();if(s){i.preventDefault();const d=s.column;let h=s.id,u=this.getNextEditor(this.getRow(h),this.getColumn(d));if(!u){const f=this.getNextRow(h);f&&(h=f.id,u=this.getNextEditor(f))}u&&(this.in.exec(\"open-editor\",{id:h,column:u.id}),this.in.exec(\"focus-cell\",{row:h,column:u.id,eventSource:\"key\"}),l&&!this.isSelected(h)&&this.in.exec(\"select-row\",{id:h}))}else c&&this.in.exec(\"focus-cell\",{eventSource:\"key\"});break}case\"shift+tab\":{const{editor:s,focusCell:c,select:l}=this.getState();if(s){i.preventDefault();const d=s.column;let h=s.id,u=this.getPrevEditor(this.getRow(h),this.getColumn(d));if(!u){const f=this.getPrevRow(h);f&&(h=f.id,u=this.getPrevEditor(f))}u&&(this.in.exec(\"open-editor\",{id:h,column:u.id}),this.in.exec(\"focus-cell\",{row:h,column:u.id,eventSource:\"key\"}),l&&!this.isSelected(h)&&this.in.exec(\"select-row\",{id:h}))}else c&&this.in.exec(\"focus-cell\",{eventSource:\"key\"});break}case\"escape\":{const{editor:s}=this.getState();s&&(this.in.exec(\"close-editor\",{ignore:s.type!=\"multiselect\"}),this.in.exec(\"focus-cell\",{row:s.id,column:s.column,eventSource:\"key\"}));break}case\"f2\":{const{editor:s,focusCell:c}=this.getState();!s&&c&&this.in.exec(\"open-editor\",{id:c.row,column:c.column});break}case\"enter\":{const{focusCell:s,tree:c}=this.getState();if(!a&&c&&s&&this.getColumn(s.column).treetoggle){const l=this.getRow(s.row);if(!l.data)return;this.in.exec(l.open?\"close-row\":\"open-row\",{id:s.row,nested:!0})}break}case\"home\":{const{editor:s,focusCell:c}=this.getState();if(!s&&c){i.preventDefault();const l=this._getFirstVisibleColumn()?.id;this.in.exec(\"focus-cell\",{row:c.row,column:l,eventSource:\"key\"})}break}case\"ctrl+home\":{const{editor:s,focusCell:c,flatData:l,select:d}=this.getState();if(!s&&c){i.preventDefault();const h=l[0]?.id,u=this._getFirstVisibleColumn()?.id;h&&u&&(this.in.exec(\"focus-cell\",{row:h,column:u,eventSource:\"key\"}),d&&!this.isSelected(h)&&this.in.exec(\"select-row\",{id:h}))}break}case\"end\":{const{editor:s,focusCell:c}=this.getState();if(!s&&c){i.preventDefault();const l=this._getLastVisibleColumn()?.id,d=c.row;this.in.exec(\"focus-cell\",{row:d,column:l,eventSource:\"key\"})}break}case\"ctrl+end\":{const{editor:s,focusCell:c,flatData:l,select:d}=this.getState();if(!s&&c){i.preventDefault();const h=l.at(-1).id,u=this._getLastVisibleColumn()?.id;h&&u&&(this.in.exec(\"focus-cell\",{row:h,column:u,eventSource:\"key\"}),d&&!this.isSelected(h)&&this.in.exec(\"select-row\",{id:h}))}break}case\"ctrl+z\":{this.in.exec(\"undo\",{});break}case\"ctrl+y\":{this.in.exec(\"redo\",{});break}}}),t.on(\"scroll\",n=>{const{_columns:i,split:a,_sizes:s,flatData:c,dynamic:l,_rowHeightFromData:d}=this.getState();let h=-1,u=-1,f=0,p=0;if(n.column){h=0;const g=i.findIndex(w=>w.id===n.column);f=i[g].width;for(let w=a.left??0;w<g;w++){const x=i[w];x.hidden||(h+=x.width)}}if(n.row&&!l){const g=c.findIndex(w=>w.id===n.row);g>=0&&(d?(u=c.slice(0,g).reduce((w,x)=>w+(x.rowHeight||s.rowHeight),0),p=c[g].rowHeight):u=s.rowHeight*g)}this.setState({scroll:{top:u,left:h,width:f,height:p||s.rowHeight}})}),t.on(\"print\",n=>{const i=re(n);this.setState({_print:i}),this.setStateAsync({_print:null})}),t.on(\"undo\",()=>{this._historyManager?.handleUndo()}),t.on(\"redo\",()=>{this._historyManager?.handleRedo()}),this.initOnce()}getXlsxWorker(e){if(!this._xlsxWorker){const o=window.URL.createObjectURL(new Blob([`importScripts('${e}');`],{type:\"text/javascript\"}));this._xlsxWorker=new Promise(t=>{const n=new Worker(o);n.addEventListener(\"message\",i=>{i.data.type===\"init\"&&t(n)})})}return this._xlsxWorker}initOnce(){const e={sortMarks:{},_filterIds:null,data:[],filterValues:{},scroll:null,editor:null,focusCell:null,_print:null,history:{undo:0,redo:0},search:null};this._router.init(e)}init(e){e.hasOwnProperty(\"_skin\")&&!e._skin&&(e._skin=xe()),e.columns&&e.columns.forEach(o=>{o.options&&(o.optionsMap=new Map(o.options.map(t=>[t.id,t.label])))}),k(this.getState().data,e.data)||(e.tree?e.data=this.normalizeTreeRows(e.data):e.data=this.normalizeRows(e.data),this.setState({_filterIds:null,filterValues:{},sortMarks:{},search:null}),this._historyManager&&this._historyManager.resetHistory()),e.tree&&(e.undo=!1,e.reorder=!1),e.split?.right&&(e.split.right=0),e.undo&&!this._historyManager&&(this._historyManager=new he(this.in,this.getState.bind(this),this.setState.bind(this))),this._router.init({...e})}setState(e,o){return this._router.setState(e,o)}setStateAsync(e){this._router.setStateAsync(e)}getRow(e){const{tree:o}=this.getState();return o?this._branches[e]:this.getState().data.find(t=>t.id===e)}getRowIndex(e,o){return o||(o=this.getState().flatData),o.findIndex(t=>t.id===e)}getNextRow(e){const o=this.getState().flatData,t=this.getRowIndex(e,o);return o[t+1]}getPrevRow(e){const o=this.getState().flatData,t=this.getRowIndex(e,o);return o[t-1]}getColumn(e){return this.getState().columns.find(o=>o.id===e)}getNextColumn(e,o){const t=this.getState()._columns,n=t.findIndex(i=>i.id===e);return o?this._getFirstVisibleColumn(n+1):t[n+1]}getPrevColumn(e,o){const t=this.getState()._columns,n=t.findIndex(i=>i.id===e);return o?this._getLastVisibleColumn(n-1):t[n-1]}_getFirstVisibleColumn(e){const o=this.getState()._columns;let t=e??0;for(;t<o.length&&(o[t]?.hidden||o[t]?.collapsed);)t++;return o[t]}_getLastVisibleColumn(e){const o=this.getState()._columns;let t=e??o.length-1;for(;t<o.length&&(o[t]?.hidden||o[t]?.collapsed);)t--;return o[t]}isCellEditable(e,o){const{editor:t,hidden:n}=o;return!t||n?!1:typeof t==\"function\"?t(e,o):!0}getNextEditor(e,o){let t=this.getState().columns;if(o){const n=t.findIndex(i=>i.id===o.id);t=t.slice(n+1)}return t.find(n=>this.isCellEditable(e,n))}getPrevEditor(e,o){let t=this.getState().columns;if(o){const n=t.findLastIndex(i=>i.id===o.id);t=t.slice(0,n)}return t.findLast(n=>this.isCellEditable(e,n))}toggleBranch(e,o,t){let n=this._branches[e],{data:i}=this.getState();if(i=[...i],e!==0){n={...n,open:o};const a=this.updateTreeRow(n);n.$parent===0&&(i=a)}t&&n.data?.length&&n.data.forEach(a=>{const s=this.toggleKids(a,o,t);e===0&&(i=s)}),this.setState({data:i})}toggleKids(e,o,t){e={...e,open:o};const n=this.updateTreeRow(e);return t&&e.data?.length&&e.data.forEach(i=>{this.toggleKids(i,o,t)}),n}updateTreeRow(e){const o=e.id;this._branches[o]=e;const t=this._branches[e.$parent],n=t.data.findIndex(i=>i.id===o);return t.data=[...t.data],t.data[n]=e,t.data}isSelected(e){return this.getState().selectedRows.indexOf(e)!==-1}findAndRemove(e,o){for(let t=0;t<e.length;t++){if(e[t].id===o)return e.splice(t,1)[0];if(e[t].data){const n=[...e[t].data],i=this.findAndRemove(n,o);if(i)return e[t]={...e[t],data:n},i}}return null}insertItem(e,o,t,n){for(let i=0;i<e.length;i++){if(e[i].id===o){const a=e[i],s=n===\"before\"?i:i+1;if(a.data){if(n===\"before\"){const c=i>0?e[i-1]:null;return c?.data&&c.open?e[i-1]={...c,data:[...c.data,t]}:e.splice(s,0,t),!0}else if(a.open)return e[i]={...a,data:[t,...a.data]},!0}return e.splice(s,0,t),!0}if(e[i].data&&(e[i]={...e[i],data:[...e[i].data]},this.insertItem(e[i].data,o,t,n)))return!0}return!1}moveItem(e,o,t,n){const i=[...t],a=this.findAndRemove(i,e);return this.insertItem(i,o,a,n),i}copyColumns(e){const o=[];for(let t=0;t<e.length;t++){const n={...e[t]};this.copyHeaderFooter(n,\"header\"),this.copyHeaderFooter(n,\"footer\"),o[t]=n}return o}copyHeaderFooter(e,o){let t=e[o];t=Array.isArray(t)?[...t]:[t],t.forEach((n,i)=>{t[i]=typeof n==\"string\"?{text:n}:{...n}}),e[o]=t}setCollapsibleColumns(e,o,t){let n=e.header;for(let i=0;i<n.length;i++){const a=n[i];if(a.collapsible&&a.collapsed){if(a.collapsible!==\"first\"){e.collapsed=!0,e.width=36,a.vertical=!0;const c=n.length-i;n=n.slice(0,i+1),n[i].rowspan=c}const s=a.colspan;if(s){const c=n[i+1];let l=1;c&&c.colspan&&!c.collapsed&&(l=c.colspan);for(let d=l;d<s;d++){const h=t[o+d];h&&(h.hidden=!0)}}}}}normalizeColumns(e,o,t,n,i){const a=e[o];a.width||(a.width=a.flexgrow?17:i.columnWidth),a._colindex=o+1;const s=a[t],c=i[`${t}RowHeights`];for(let l=0;l<n;l++){const d=s[l];d.id=a.id,l===s.length-1&&(d.rowspan=d.rowspan?Math.min(d.rowspan,n-l):n-l);for(let h=1;h<d.rowspan;h++){s.splice(l+h,0,{_hidden:!0});for(let u=1;u<d.colspan;u++)e[o+u][t].splice(l+h,0,{})}if(d.rowspan){const h=(d.rowspan===n?c:c.slice(l,d.rowspan+l)).reduce((u,f)=>u+f,0);d.height=h,l+d.rowspan!=n&&d.height--}if(d.colspan){let h=a.width,u=a.flexgrow||0;const f=d.colspan;for(let p=1;p<f;p++){const g=e[o+p];g&&(g.hidden?d.colspan-=1:g.flexgrow?u+=g.flexgrow:h+=g.width||i.columnWidth),u?d.flexgrow=u:d.width=h}}else d.width=a.width,d.flexgrow=a.flexgrow;t===\"header\"&&d.filter&&typeof d.filter==\"string\"&&(d.filter={type:d.filter})}s.length>n&&(s.length=n),a[t]=s}normalizeRows(e){for(let o=0;o<e.length;o++)e[o].id||(e[o].id=E());return e}normalizeTreeRows(e,o,t){return!o&&!t&&(this._branches={0:{data:e}}),e.forEach(n=>{n.id||(n.id=E()),n.$level=o||0,n.$parent=t||0,this._branches[n.id]=n,n.data&&(n.data.length?(n.$count=n.data.length,this.normalizeTreeRows(n.data,n.$level+1,n.id)):(delete n.data,delete n.$count,delete n.open))}),e}sortTree(e,o){e.sort(o),e.forEach(t=>{t.data&&this.sortTree(t.data,o)})}filterTree(e,o,t){return e.forEach(n=>{o(n)&&t.push(n.id),n.data&&this.filterTree(n.data,o,t)}),t}flattenRows(e,o,t){const n=o;return e.forEach(i=>{(!t||t.includes(i.id))&&n.push(i),i.data?.length&&i.open!==!1&&this.flattenRows(i.data,n,t)}),n}createFilter(e){const{_columns:o}=this.getState(),t=[];for(const n in e){const i=o.find(l=>l.id==n),{config:a,type:s}=i.header.find(l=>l.filter).filter,c=e[n];t.push(l=>{const d=y(l,i);return a?.handler?a.handler(d,c):$(s)(d,c)})}return n=>{for(let i=0;i<t.length;i++)if(!t[i](n))return!1;return!0}}searchRows(e,o){e=e.trim().toLowerCase();const t={};if(!e)return t;const{flatData:n,columns:i}=this.getState(),a=o?i.filter(s=>o[s.id]):i;return n.forEach(s=>{const c={};a.forEach(l=>{const d=S(s,l);String(d).toLowerCase().includes(e)&&(c[l.id]=!0)}),Object.keys(c).length&&(t[s.id]=c)}),t}normalizeSizes(e,o,t,n,i){const a=L(e,\"header\",t,o.headerHeight,i),s=L(e,\"footer\",n,o.footerHeight,i),c=a.reduce((d,h)=>d+h,0),l=s.reduce((d,h)=>d+h,0);return{...o,headerRowHeights:a,footerRowHeights:s,headerHeight:c,footerHeight:l}}}let ke=new Date().valueOf();function E(){return\"temp://\"+ke++}function Ce(r,e=\"data-id\"){let o=r;for(!o.tagName&&r.target&&(o=r.target);o;){if(o.getAttribute&&o.getAttribute(e))return o;o=o.parentNode}return null}new Date().valueOf();var Re=class{constructor(){this.store=new Map}configure(r,e){this.node=e;for(const o in r)if(r[o]){const t=o.toLowerCase().replace(/[ ]/g,\"\"),n=r[o];this.store.set(t,n)}}},b=[],Ee={subscribe:r=>{De();const e=new Re;return b.push(e),r(e),()=>{const o=b.findIndex(t=>t===e);o>=0&&b.splice(o,1)}}},O=!1;function De(){O||(O=!0,document.addEventListener(\"keydown\",r=>{if(b.length&&(r.ctrlKey||r.altKey||r.metaKey||r.shiftKey||r.key.length>1||r.key===\" \")){const e=[];r.ctrlKey&&e.push(\"ctrl\"),r.altKey&&e.push(\"alt\"),r.metaKey&&e.push(\"meta\"),r.shiftKey&&e.push(\"shift\");let o=r.code.replace(\"Key\",\"\").toLocaleLowerCase();r.key===\" \"&&(o=\"space\"),e.push(o);const t=e.join(\"+\");for(let n=b.length-1;n>=0;n--){const i=b[n],a=i.store.get(t)||i.store.get(o);a&&i.node.contains(r.target)&&a(r,{key:t,evKey:o})}}}))}const Ie={tab:!0,\"shift+tab\":!0,arrowup:!0,arrowdown:!0,arrowright:!0,arrowleft:!0,enter:!0,escape:!0,f2:!0,home:!0,end:!0,\"ctrl+home\":!0,\"ctrl+end\":!0,\"ctrl+z\":!0,\"ctrl+y\":!0};function Me(r,{keys:e,exec:o}){if(!e)return;function t(a){const s=a.target;return s.tagName===\"INPUT\"||s.tagName===\"TEXTAREA\"||Ce(s,\"data-header-id\")?.classList.contains(\"wx-filter\")||!!s.closest(\".wx-cell.wx-editor\")}const n={};for(const a in e){const s=e[a];typeof s<\"u\"&&(typeof s==\"function\"?n[a]=s:s&&(n[a]=c=>{const l=t(c);o({key:a,event:c,isInput:l})}))}const i=Ee.subscribe(a=>{a.configure(n,r)});return{destroy:()=>{i()}}}function Te(r,e){let o=null;e.scroll.subscribe(t=>{if(!t||t===o)return;o=t;const{left:n,top:i,height:a,width:s}=t,c=e.getHeight(),l=e.getWidth(),d=e.getScrollMargin();if(i>=0){const h=r.scrollTop;i<h?r.scrollTop=i:i+a>h+c&&(r.scrollTop=i-c+a)}if(n>=0){const h=r.scrollLeft;n<h?r.scrollLeft=n:n+s>h+l-d&&(r.scrollLeft=n-l+s+d)}})}function M(r){return r.map(e=>{switch(e={...e},e.data&&(e.data=M(e.data)),e.items&&(e.data=M(e.items)),e.id){case\"move-item:up\":e.isDisabled=(o,t)=>He(o,t);break;case\"move-item:down\":e.isDisabled=(o,t)=>Pe(o,t);break;case\"undo\":e.isDisabled=o=>!o.undo;break;case\"redo\":e.isDisabled=o=>!o.redo;break;case\"paste-row\":e.isDisabled=o=>!o._temp?.length;break}return e})}function He(r,e){return r.some(o=>e[0]?.id===o)}function Pe(r,e){return r.some(o=>e[e.length-1]?.id===o)}const ze=[{id:\"add-row\",comp:\"button\",icon:\"wxi-plus\",text:\"New row\",type:\"primary\"},{id:\"open-editor\",comp:\"icon\",icon:\"wxi-edit\",menuText:\"Edit\",text:\"Edit\"},{id:\"delete-row\",comp:\"icon\",icon:\"wxi-delete\",menuText:\"Delete\",text:\"Delete\"},{id:\"copy-row\",comp:\"icon\",icon:\"wxi-content-copy\",menuText:\"Copy\",text:\"Copy\"},{id:\"cut-row\",comp:\"icon\",icon:\"wxi-content-cut\",menuText:\"Cut\",text:\"Cut\"},{id:\"paste-row\",comp:\"icon\",icon:\"wxi-content-paste\",menuText:\"Paste\",text:\"Paste\"},{id:\"move-item:up\",comp:\"icon\",icon:\"wxi-angle-up\",menuText:\"Move up\",text:\"Move up\"},{id:\"move-item:down\",comp:\"icon\",icon:\"wxi-angle-down\",menuText:\"Move down\",text:\"Move down\"},{comp:\"separator\"},{id:\"undo\",comp:\"icon\",icon:\"wxi-undo\",menuText:\"Undo\",text:\"Ctrl+Z\"},{id:\"redo\",comp:\"icon\",icon:\"wxi-redo\",menuText:\"Redo\",text:\"Ctrl+Y\"}],Ae=[{id:\"add-row:before\",text:\"Add before\",icon:\"wxi-table-row-plus-before\"},{id:\"add-row:after\",text:\"Add after\",icon:\"wxi-table-row-plus-after\"},{id:\"copy-row\",text:\"Copy\",icon:\"wxi-content-copy\"},{id:\"cut-row\",text:\"Cut\",icon:\"wxi-content-cut\"},{id:\"paste-row\",text:\"Paste\",icon:\"wxi-content-paste\"},{id:\"move-item:up\",text:\"Move up\",icon:\"wxi-angle-up\"},{id:\"move-item:down\",text:\"Move down\",icon:\"wxi-angle-down\"},{comp:\"separator\"},{id:\"delete-row\",text:\"Delete\",icon:\"wxi-delete-outline\"}];function Le(r,e){const{selectedRows:o,data:t,focusCell:n}=r.getState();switch(e!==\"paste-row\"&&(r._temp=null),e){case\"add-row\":{o.length?o.forEach(i=>r.exec(\"add-row\",{row:{},after:i})):r.exec(\"add-row\",{row:{}});break}case\"add-row:before\":{o.forEach(i=>r.exec(\"add-row\",{row:{},before:i}));break}case\"add-row:after\":{o.forEach(i=>r.exec(\"add-row\",{row:{},after:i}));break}case\"open-editor\":{if(n&&o.includes(n.row)){const i=r.getColumn(n.column);r.exec(\"open-editor\",{id:n.row,column:i.editor?n.column:void 0})}else r.exec(\"open-editor\",{id:o[0]});break}case\"copy-row\":{o.forEach(i=>{r._temp||(r._temp=[]),r._temp.push({id:i,cut:!1})});break}case\"cut-row\":{o.forEach(i=>{r._temp||(r._temp=[]),r._temp.push({id:i,cut:!0})});break}case\"paste-row\":{r._temp?.length&&[...r._temp].sort((i,a)=>t.findIndex(s=>s.id===a.id)-t.findIndex(s=>s.id===i.id)).forEach((i,a)=>{o.forEach((s,c)=>{const l={id:i.id,target:s,mode:\"after\"};r.exec(i.cut?\"move-item\":\"copy-row\",l),i.cut||r.exec(\"select-row\",{id:l.id,toggle:!!a||!!c})})});break}case\"delete-row\":o.forEach(i=>r.exec(\"delete-row\",{id:i}));break;case\"move-item:up\":{[...o].sort((i,a)=>t.findIndex(s=>s.id===i)-t.findIndex(s=>s.id===a)).forEach(i=>{r.exec(\"move-item\",{id:i,mode:\"up\"})});break}case\"move-item:down\":{[...o].sort((i,a)=>t.findIndex(s=>s.id===a)-t.findIndex(s=>s.id===i)).forEach(i=>{r.exec(\"move-item\",{id:i,mode:\"down\"})});break}case\"undo\":r.exec(\"undo\");break;case\"redo\":r.exec(\"redo\");break}}export{ve as DataStore,M as assignChecks,N as createFilter,Ie as defaultHotkeys,Ae as defaultMenuOptions,ze as defaultToolbarButtons,X as getEditorConfig,oe as getHeaderFooterPrintColumns,se as getPrintCellStyle,te as getPrintColumns,ae as getPrintFilterValue,S as getRenderValue,ue as getStamp,y as getValue,Le as handleAction,Me as hotkeys,fe as isCommunity,Te as scrollTo};\n","export function onresize(node, handler) {\n\tconst ro = new ResizeObserver(data => {\n\t\trequestAnimationFrame(() => handler(data[0].contentRect));\n\t});\n\n\tro.observe(node.parentNode);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tro.disconnect();\n\t\t},\n\t};\n}\n","import { locate, getID } from \"@svar-ui/lib-dom\";\n\nconst SHIFT = 5;\nconst LONG_TOUCH_DELAY = 700;\n\nexport function getOffset(node) {\n\tconst box = node.getBoundingClientRect();\n\tconst body = document.body;\n\tconst top = box.top + body.scrollTop - body.clientTop || 0;\n\tconst left = box.left + body.scrollLeft - body.clientLeft || 0;\n\treturn {\n\t\ty: Math.round(top),\n\t\tx: Math.round(left),\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight,\n\t};\n}\n\nexport function getPos(ev, node) {\n\tconst offset = getOffset(node);\n\treturn { x: ev.clientX - offset.x, y: ev.clientY - offset.y };\n}\n\nexport function reorder(node, config) {\n\tlet context = null;\n\tlet touchTimer, startPos;\n\tlet started = false,\n\t\ttouched = false;\n\tconst container = document.createElement(\"DIV\");\n\tcontainer.className = \"wx-drag-zone\";\n\tcontainer.setAttribute(\"tabindex\", -1);\n\n\tfunction resetTimer() {\n\t\tclearTimeout(touchTimer);\n\t\ttouchTimer = null;\n\t}\n\n\tfunction down(ev) {\n\t\tconst source = locate(ev);\n\t\tif (!source) return;\n\n\t\tcontext = {\n\t\t\tcontainer,\n\t\t\tsourceNode: ev.target,\n\t\t\tfrom: getID(source),\n\t\t\tpos: getPos(ev, node),\n\t\t};\n\t\tstartPos = context.pos;\n\t\tmove(ev);\n\t}\n\n\tfunction move(ev) {\n\t\tif (!context) return;\n\t\tconst p = (context.pos = getPos(ev, node));\n\n\t\tif (!started) {\n\t\t\tif (\n\t\t\t\t!touched &&\n\t\t\t\t!ev?.target?.getAttribute(\"draggable-data\") &&\n\t\t\t\tMath.abs(startPos.x - p.x) < SHIFT &&\n\t\t\t\tMath.abs(startPos.y - p.y) < SHIFT\n\t\t\t)\n\t\t\t\treturn;\n\t\t\telse {\n\t\t\t\tif (start(ev) === false) return end();\n\t\t\t}\n\t\t}\n\n\t\tif (touched) {\n\t\t\tconst scrollLeft =\n\t\t\t\twindow.scrollX ||\n\t\t\t\tdocument.documentElement.scrollLeft ||\n\t\t\t\tdocument.body.scrollLeft;\n\t\t\tconst scrollTop =\n\t\t\t\twindow.scrollY ||\n\t\t\t\tdocument.documentElement.scrollTop ||\n\t\t\t\tdocument.body.scrollTop;\n\n\t\t\tcontext.targetNode = document.elementFromPoint(\n\t\t\t\tev.pageX - scrollLeft,\n\t\t\t\tev.pageY - scrollTop\n\t\t\t);\n\t\t} else context.targetNode = ev.target;\n\n\t\tif (config?.move) config.move(ev, context);\n\n\t\tcontainer.style.left = -(context.offset ? context.offset.x : 0) + \"px\";\n\t\tcontainer.style.top =\n\t\t\tcontext.pos.y + (context.offset ? context.offset.y : 0) + \"px\";\n\t}\n\n\tfunction up(ev) {\n\t\tif (container.parentNode) container.parentNode.removeChild(container);\n\t\tcontainer.innerHTML = \"\";\n\n\t\tif (started && config?.end) config.end(ev, context);\n\t\tcontext = startPos = null;\n\n\t\tend();\n\t}\n\n\tfunction handleMouseDown(ev) {\n\t\tif (!config?.getReorder()) return;\n\t\tif (ev.button !== 0) return;\n\n\t\t// native dragscroll prevention\n\t\tpreventUserSelect(ev);\n\n\t\twindow.addEventListener(\"mousemove\", handleMouseMove);\n\t\twindow.addEventListener(\"mouseup\", handleMouseUp);\n\n\t\tdown(ev);\n\t}\n\n\tfunction handleMouseMove(ev) {\n\t\tmove(ev);\n\t}\n\n\tfunction handleMouseUp(ev) {\n\t\tup(ev);\n\t}\n\n\tfunction handleTouchStart(ev) {\n\t\tif (!config?.getReorder()) return;\n\n\t\ttouchTimer = setTimeout(() => {\n\t\t\ttouched = true;\n\t\t\tdown(ev.touches[0]);\n\t\t}, LONG_TOUCH_DELAY);\n\n\t\t// prevent user selection on touch (pre-drag)\n\t\tpreventUserSelect(ev);\n\n\t\tfunction handleTouchEnd() {\n\t\t\tif (touchTimer) resetTimer();\n\n\t\t\t// removed elements will still have touch events pointed at them, and these events won't necessarily bubble up\n\t\t\t// this creates an issue where the touchmove/touchend events are no longer called if we attach them directly to the parent node, and the event target is removed from DOM\n\t\t\t// best practice suggests attaching event handlers directly to the touch event target\n\t\t\t// in this case, touch events will continue to fire normally\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Touch/target\n\n\t\t\tev.target.removeEventListener(\"touchmove\", handleTouchMove);\n\t\t\tev.target.removeEventListener(\"touchend\", handleTouchEnd);\n\n\t\t\tup(ev);\n\t\t}\n\n\t\tev.target.addEventListener(\"touchmove\", handleTouchMove);\n\t\tev.target.addEventListener(\"touchend\", handleTouchEnd);\n\t\tnode.addEventListener(\"contextmenu\", handleContext);\n\t}\n\n\tfunction handleTouchMove(ev) {\n\t\tif (started) {\n\t\t\tev.preventDefault();\n\t\t\tmove(ev.touches[0]);\n\t\t} else if (touchTimer) resetTimer();\n\t}\n\n\tfunction handleContext(ev) {\n\t\tif (started || touchTimer) {\n\t\t\tev.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction preventDefault(ev) {\n\t\tev.preventDefault();\n\t}\n\n\tfunction preventUserSelect(ev) {\n\t\tconst { hasDraggable } = config.getDraggableInfo();\n\n\t\tif (!hasDraggable || ev.target.getAttribute(\"draggable-data\")) {\n\t\t\tdocument.body.style.userSelect = \"none\";\n\t\t\tdocument.body.style.webkitUserSelect = \"none\";\n\t\t}\n\t}\n\n\tfunction start(ev) {\n\t\tstarted = true;\n\n\t\tif (config?.start) {\n\t\t\tif (config.start(ev, context) === false) return false;\n\t\t\telse {\n\t\t\t\tnode.appendChild(container);\n\t\t\t\tdocument.body.style.cursor = \"move\";\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction end(full) {\n\t\tstarted = touched = false;\n\t\tdocument.body.style.cursor = \"\";\n\t\tdocument.body.style.userSelect = \"\";\n\t\tdocument.body.style.webkitUserSelect = \"\";\n\n\t\twindow.removeEventListener(\"mousemove\", handleMouseMove);\n\t\twindow.removeEventListener(\"mouseup\", handleMouseUp);\n\n\t\tif (full) {\n\t\t\tnode.removeEventListener(\"mousedown\", handleMouseDown);\n\t\t\tnode.removeEventListener(\"touchstart\", handleTouchStart);\n\t\t\tnode.removeEventListener(\"dragstart\", preventDefault);\n\t\t}\n\t}\n\n\tnode.addEventListener(\"mousedown\", handleMouseDown);\n\tnode.addEventListener(\"touchstart\", handleTouchStart);\n\tnode.addEventListener(\"dragstart\", preventDefault);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tend(true);\n\t\t},\n\t};\n}\n","import { getPos } from \"./reorder\";\n\nconst SCROLL_SPEED_DELTA = 0.004;\n\nfunction initScrollState() {\n\treturn {\n\t\tdirX: 0,\n\t\tdirY: 0,\n\t\tscrollSpeedFactor: 1,\n\t};\n}\n\nexport function tryAutoScroll(ev, box, context, dragScrollConfig) {\n\tconst { node, left, top, bottom, sense, xScroll, yScroll } =\n\t\tdragScrollConfig;\n\tconst rPos = getPos(ev, node);\n\n\tif (!context.scrollState) context.scrollState = initScrollState();\n\n\tlet newDirX = 0;\n\tlet newDirY = 0;\n\n\tif (rPos.x < left + sense) {\n\t\tnewDirX = -1;\n\t} else if (rPos.x > box.width - sense) {\n\t\tnewDirX = 1;\n\t}\n\n\tif (rPos.y < top + Math.round(sense / 2)) {\n\t\tnewDirY = -1;\n\t} else if (rPos.y > box.height - bottom - Math.round(sense / 2)) {\n\t\tnewDirY = 1;\n\t}\n\n\tif (\n\t\tcontext.scrollState.dirX !== newDirX ||\n\t\tcontext.scrollState.dirY !== newDirY\n\t) {\n\t\tresetAutoScroll(context);\n\t\tcontext.scrollState.dirX = newDirX;\n\t\tcontext.scrollState.dirY = newDirY;\n\t}\n\n\tif (\n\t\t(xScroll && context.scrollState.dirX !== 0) ||\n\t\t(yScroll && context.scrollState.dirY !== 0)\n\t) {\n\t\tstartAutoScroll(context, dragScrollConfig, {\n\t\t\tx: context.scrollState.dirX,\n\t\t\ty: context.scrollState.dirY,\n\t\t});\n\t}\n}\n\nexport function startAutoScroll(context, config, dir) {\n\tif (context.autoScrollTimer) return;\n\n\tcontext.autoScrollTimer = setTimeout(() => {\n\t\tcontext.activeAutoScroll = setInterval(\n\t\t\tautoScroll,\n\t\t\t15,\n\t\t\tcontext,\n\t\t\tconfig,\n\t\t\tdir\n\t\t);\n\t}, 250);\n}\n\nexport function resetAutoScroll(context) {\n\tcontext.scrollSpeedFactor = 1;\n\tif (context.autoScrollTimer) {\n\t\tcontext.autoScrollTimer = clearTimeout(context.autoScrollTimer);\n\t\tcontext.activeAutoScroll = clearInterval(context.activeAutoScroll);\n\t}\n}\n\nfunction autoScroll(context, config, dir) {\n\tconst { x, y } = dir;\n\n\tcontext.scrollSpeedFactor += SCROLL_SPEED_DELTA;\n\n\tif (x !== 0) autoXScroll(context, config, x);\n\tif (y !== 0) autoYScroll(context, config, y);\n}\n\nfunction autoYScroll(context, config, dir) {\n\tconst scroll = config.node.scrollTop;\n\n\tautoScrollTo(\n\t\tscroll + Math.round(config.sense / 3) * context.scrollSpeedFactor * dir,\n\t\t\"scrollTop\",\n\t\tconfig\n\t);\n}\n\nfunction autoXScroll(context, config, dir) {\n\tconst scroll = config.node.scrollLeft;\n\n\tautoScrollTo(\n\t\tscroll + Math.round(config.sense / 3) * context.scrollSpeedFactor * dir,\n\t\t\"scrollLeft\",\n\t\tconfig\n\t);\n}\n\nfunction autoScrollTo(value, mode, config) {\n\tconfig.node[mode] = value;\n}\n","export function getStyle(width, flexgrow, fixed, left, right, height) {\n\tconst w = width ? `width:${width}px;` : \"\";\n\tconst mw = width ? `min-width:${width}px;` : \"\";\n\tconst fl = flexgrow ? `flex-grow:${flexgrow};` : \"\";\n\tconst h = height ? `height:${height}px;` : \"\";\n\n\tlet fx = \"\";\n\tif (fixed) {\n\t\tif (fixed.left) fx = `position:sticky;left:${left}px;`;\n\t\tif (fixed.right) fx = `position:sticky;right:${right}px;`;\n\t}\n\n\treturn `${mw}${w}${h}${fl}${fx}`;\n}\n\nexport function getCssName(column, cell, columnStyle) {\n\tlet css = \"\";\n\n\tif (column.fixed) {\n\t\tfor (const pos in column.fixed) {\n\t\t\tcss += column.fixed[pos] === -1 ? \"wx-shadow \" : \"wx-fixed \";\n\t\t}\n\t}\n\tcss += cell.rowspan > 1 ? \"wx-rowspan \" : \"\";\n\tcss += cell.colspan > 1 ? \"wx-colspan \" : \"\";\n\tcss += cell.vertical ? \"wx-vertical \" : \"\";\n\tcss += columnStyle ? columnStyle(column) + \" \" : \"\";\n\treturn css;\n}\n","<script>\n\timport { onDestroy, getContext, untrack } from \"svelte\";\n\timport { getStyle } from \"../helpers/columnWidth\";\n\timport { getRenderValue } from \"@svar-ui/grid-store\";\n\timport { setID } from \"@svar-ui/lib-dom\";\n\n\tlet {\n\t\trow,\n\t\tcolumn,\n\t\tcellStyle = null,\n\t\tcolumnStyle = null,\n\t\tchildren,\n\t\tfocusable,\n\t} = $props();\n\n\tlet style = $derived(\n\t\t\tgetStyle(\n\t\t\t\tcolumn.width,\n\t\t\t\tcolumn.flexgrow,\n\t\t\t\tcolumn.fixed,\n\t\t\t\tcolumn.left,\n\t\t\t\tcolumn.right\n\t\t\t)\n\t\t),\n\t\tcss = $derived(buildCellCss(columnStyle, cellStyle));\n\n\tconst api = getContext(\"grid-store\");\n\tconst { focusCell, search, reorder } = api.getReactiveState();\n\n\tconst shouldHighlight = $derived(\n\t\t$search?.rows[row.id] && $search.rows[row.id][column.id]\n\t);\n\n\tconst isDraggable = $derived(\n\t\ttypeof column.draggable === \"function\"\n\t\t\t? column.draggable(row, column) !== false\n\t\t\t: column.draggable\n\t);\n\n\tlet cellEl;\n\t$effect(() => {\n\t\t$focusCell;\n\t\tfocusable;\n\t\tuntrack(() => {\n\t\t\tif (cellEl && focusable) {\n\t\t\t\tconst needFocus =\n\t\t\t\t\t$focusCell?.row === row.id &&\n\t\t\t\t\t$focusCell?.column === column.id;\n\t\t\t\tif (needFocus) cellEl.focus();\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction buildCellCss(columnStyle, cellStyle) {\n\t\tlet css = \"wx-cell\";\n\t\tcss += column.fixed\n\t\t\t? \" \" + (column.fixed === -1 ? \"wx-shadow\" : \"wx-fixed\")\n\t\t\t: \"\";\n\t\tcss += columnStyle ? \" \" + columnStyle(column) : \"\";\n\t\tcss += cellStyle ? \" \" + cellStyle(row, column) : \"\";\n\t\tcss += column.treetoggle ? \" wx-tree-cell\" : \"\";\n\t\treturn css;\n\t}\n\n\tfunction toggleFocusAction() {\n\t\tif (focusable && !$focusCell) {\n\t\t\tapi.exec(\"focus-cell\", {\n\t\t\t\trow: row.id,\n\t\t\t\tcolumn: column.id,\n\t\t\t\teventSource: \"focus\",\n\t\t\t});\n\t\t}\n\t}\n\n\tonDestroy(() => {\n\t\tif (focusable && $focusCell) {\n\t\t\tapi.exec(\"focus-cell\", { eventSource: \"destroy\" });\n\t\t\tfocusable = false;\n\t\t}\n\t});\n\n\tfunction highlightText(text) {\n\t\tconst regex = new RegExp(`(${$search.value.trim()})`, \"gi\");\n\t\tconst parts = String(text).split(regex);\n\n\t\treturn parts.map(text => ({ text, highlight: regex.test(text) }));\n\t}\n</script>\n\n<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n<div\n\tclass={css}\n\tclass:wx-shadow={(column.fixed && column.fixed.left === -1) ||\n\t\tcolumn.fixed.right === -1}\n\tbind:this={cellEl}\n\tonfocus={toggleFocusAction}\n\tclass:wx-fixed-right={column.fixed && column.fixed.right}\n\t{style}\n\tdata-row-id={setID(row.id)}\n\tdata-col-id={setID(column.id)}\n\ttabindex={focusable ? \"0\" : \"-1\"}\n\trole={\"gridcell\"}\n\taria-colindex={column._colindex}\n\taria-readonly={!column.editor ? true : undefined}\n>\n\t{#if $reorder && column.draggable}\n\t\t{#if isDraggable}\n\t\t\t<i draggable-data=\"true\" class=\"wx-draggable wxi-drag\"></i>\n\t\t{:else}\n\t\t\t<i class=\"wx-draggable-stub\"></i>\n\t\t{/if}\n\t{/if}\n\t{#if column.treetoggle}\n\t\t<span style=\"margin-left:{row.$level * 28}px;\"></span>\n\t\t{#if row.$count}\n\t\t\t<i\n\t\t\t\tdata-action=\"toggle-row\"\n\t\t\t\tclass=\"wx-table-tree-toggle wxi-menu-{row.open !== false\n\t\t\t\t\t? 'down'\n\t\t\t\t\t: 'right'}\"\n\t\t\t></i>\n\t\t{/if}\n\t{/if}\n\t{#if column.cell}\n\t\t<column.cell\n\t\t\t{api}\n\t\t\t{row}\n\t\t\t{column}\n\t\t\tonaction={({ action, data }) => api.exec(action, data)}\n\t\t/>\n\t{:else if children}{@render children()}\n\t{:else if shouldHighlight}\n\t\t<span>\n\t\t\t{#each highlightText(getRenderValue(row, column)) as { highlight, text }}\n\t\t\t\t{#if highlight}\n\t\t\t\t\t<mark class=\"wx-search\">{text}</mark>\n\t\t\t\t{:else}{text}{/if}\n\t\t\t{/each}\n\t\t</span>\n\t{:else}\n\t\t{getRenderValue(row, column)}\n\t{/if}\n</div>\n\n<style>\n\t:global(.wx-measure-cell-body),\n\t:global(.wx-print-cell),\n\t.wx-cell {\n\t\tbackground: inherit;\n\t\tbox-sizing: border-box;\n\t\tpadding: 8px;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n\t:global(.wx-print-tree-cell),\n\t.wx-tree-cell {\n\t\tdisplay: flex;\n\t}\n\n\t:global(.wx-measure-cell-body),\n\t.wx-cell:not(:last-child) {\n\t\tborder-right: var(--wx-table-cell-border);\n\t}\n\n\t:global(.wx-print-draggable),\n\t.wx-draggable,\n\t.wx-draggable-stub {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-right: 3px;\n\t\tfont-size: 20px;\n\t\theight: 20px;\n\t\twidth: 20px;\n\t}\n\n\t.wx-draggable {\n\t\tcursor: move;\n\t}\n\n\t.wx-shadow.wx-cell {\n\t\tborder-right: var(--wx-table-fixed-column-border);\n\t\tclip-path: inset(0px -15px 0px 0px);\n\t\tz-index: 1;\n\t}\n\n\t.wx-fixed-right.wx-shadow.wx-cell {\n\t\tborder-right: var(--wx-table-cell-border);\n\t\tborder-left: var(--wx-table-fixed-column-border);\n\t}\n\t.wx-fixed-right.wx-shadow.wx-cell:last-child {\n\t\tborder-right: none;\n\t}\n\n\t:global(.wx-print-grid-tree-toggle),\n\t.wx-table-tree-toggle {\n\t\tfont-size: 20px;\n\t\tcursor: pointer;\n\t\tmargin: 0 4px 0 0;\n\t\tdisplay: inline-block;\n\t}\n\n\t.wx-cell[tabindex=\"0\"]:focus {\n\t\toutline: 1px solid var(--wx-color-primary);\n\t\toutline-offset: -1px;\n\t}\n\n\t.wx-search {\n\t\tbackground-color: #ffeb3b;\n\t}\n</style>\n","export function resize(node, config) {\n\tlet x, dx;\n\n\tfunction down(ev) {\n\t\tx = ev.clientX;\n\n\t\tnode.style.opacity = 1;\n\n\t\tdocument.body.style.cursor = \"ew-resize\";\n\t\tdocument.body.style.userSelect = \"none\";\n\n\t\twindow.addEventListener(\"mousemove\", move);\n\t\twindow.addEventListener(\"mouseup\", up);\n\n\t\tif (config && config.down) config.down(node);\n\t}\n\n\tfunction move(ev) {\n\t\tdx = ev.clientX - x;\n\n\t\tif (config && config.move) config.move(dx);\n\t}\n\n\tfunction up() {\n\t\tnode.style.opacity = \"\";\n\n\t\tdocument.body.style.cursor = \"\";\n\t\tdocument.body.style.userSelect = \"\";\n\n\t\tif (config && config.up) config.up(dx);\n\n\t\twindow.removeEventListener(\"mousemove\", move);\n\t\twindow.removeEventListener(\"mouseup\", up);\n\t}\n\n\tnode.addEventListener(\"mousedown\", down);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tnode.removeEventListener(\"mousedown\", down);\n\t\t},\n\t};\n}\n","<script>\n\timport { Text } from \"@svar-ui/svelte-core\";\n\n\tlet { filter, column, action, filterValue } = $props();\n\n\tfunction filterRows({ value }) {\n\t\taction({ value, key: column.id });\n\t}\n</script>\n\n<Text {...filter.config ?? {}} value={filterValue} onchange={filterRows} />\n\n<style>\n\t:global(.wx-print-filter),\n\t:global(.wx-cell.wx-filter > .wx-text > input) {\n\t\theight: 28px;\n\t\tpadding: 4px 8px;\n\t}\n\n\t:global(.wx-print-filter) {\n\t\tborder: var(--wx-table-border);\n\t\tbackground: var(--wx-background);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont-weight: 400;\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { RichSelect } from \"@svar-ui/svelte-core\";\n\timport { getValue } from \"@svar-ui/grid-store\";\n\n\tlet { filter, column, action, filterValue } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { flatData: data } = api.getReactiveState();\n\n\tlet options = $derived(\n\t\tfilter?.config?.options || column.options || getOptions($data)\n\t);\n\tlet template = $derived(filter?.config?.template);\n\n\tfunction getOptions() {\n\t\tconst options = [];\n\t\t$data.forEach(d => {\n\t\t\tconst value = getValue(d, column);\n\t\t\tif (!options.includes(value)) options.push(value);\n\t\t});\n\t\treturn options.map(opt => ({ id: opt, label: opt }));\n\t}\n\n\tfunction filterRows({ value }) {\n\t\taction({ value, key: column.id });\n\t}\n\n\tfunction handleKeyDown(ev) {\n\t\tif (ev.key !== \"Tab\") ev.preventDefault();\n\t}\n</script>\n\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div style=\"width:100%;\" onkeydown={handleKeyDown}>\n\t<RichSelect\n\t\tplaceholder={\"\"}\n\t\tclear={true}\n\t\t{...filter.config ?? {}}\n\t\t{options}\n\t\tvalue={filterValue}\n\t\tonchange={filterRows}\n\t>\n\t\t{#snippet children(option)}\n\t\t\t{#if template}\n\t\t\t\t{template(option)}\n\t\t\t{:else}\n\t\t\t\t{option.label}\n\t\t\t{/if}\n\t\t{/snippet}\n\t</RichSelect>\n</div>\n\n<style>\n\t:global(.wx-cell.wx-filter div.wx-richselect) {\n\t\tmin-height: 28px;\n\t\theight: 28px;\n\t\tpadding: 4px 8px;\n\t}\n\t:global(.wx-cell.wx-filter div.wx-richselect .wx-label) {\n\t\tpadding: 0;\n\t}\n</style>\n","<script>\n\timport { DatePicker } from \"@svar-ui/svelte-core\";\n\n\tlet { filter, column, action, filterValue } = $props();\n\n\tfunction filterRows({ value }) {\n\t\taction({ value, key: column.id });\n\t}\n</script>\n\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div style=\"width:100%;\">\n\t<DatePicker\n\t\tplaceholder={\"\"}\n\t\tclear={true}\n\t\t{...filter.config ?? {}}\n\t\tvalue={filterValue}\n\t\tonchange={filterRows}\n\t/>\n</div>\n\n<style>\n\t:global(.wx-cell.wx-filter div.wx-datepicker input) {\n\t\theight: 28px;\n\t\tpadding: 4px 8px;\n\t}\n</style>\n","import Text from \"./Text.svelte\";\nimport Richselect from \"./Richselect.svelte\";\nimport DatePicker from \"./DatePicker.svelte\";\n\nexport const filters = {\n\ttext: Text,\n\trichselect: Richselect,\n\tdatepicker: DatePicker,\n};\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { filters } from \"./filters\";\n\n\tlet { filter, column } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { filterValues } = api.getReactiveState();\n\n\tfunction filterRows(data) {\n\t\tapi.exec(\"filter-rows\", data);\n\t}\n\n\tconst SvelteComponent = $derived(filters[filter.type]);\n</script>\n\n<SvelteComponent\n\t{filter}\n\t{column}\n\taction={filterRows}\n\tfilterValue={$filterValues[column.id]}\n/>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { resize } from \"../helpers/actions/resize\";\n\timport { getCssName, getStyle } from \"../helpers/columnWidth\";\n\timport Filter from \"./inlineFilters/Filter.svelte\";\n\timport { setID } from \"@svar-ui/lib-dom\";\n\n\tlet {\n\t\tcell,\n\t\tcolumn,\n\t\trow,\n\t\tlastRow,\n\t\tsortRow,\n\t\tcolumnStyle,\n\t\tbodyHeight,\n\t\thasSplit,\n\t} = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { sortMarks } = api.getReactiveState();\n\n\tlet start;\n\n\tlet sortMark = $derived($sortMarks[column.id]);\n\n\tfunction down(node) {\n\t\tstart = cell.flexgrow ? node.parentNode.clientWidth : cell.width;\n\t}\n\n\tfunction move(dx) {\n\t\tresizeColumn(dx, true);\n\t}\n\n\tfunction up(dx) {\n\t\tresizeColumn(dx, false);\n\t}\n\n\tfunction resizeColumn(dx, inProgress) {\n\t\tapi.exec(\"resize-column\", {\n\t\t\tid: cell.id,\n\t\t\twidth: Math.max(1, start + dx),\n\t\t\tinProgress,\n\t\t});\n\t}\n\n\tfunction sort(ev) {\n\t\tif (!column.sort || cell.filter) return;\n\t\tif (sortMark?.order) {\n\t\t\tsortMark.order = sortMark?.order === \"asc\" ? \"desc\" : \"asc\";\n\t\t}\n\t\tapi.exec(\"sort-rows\", {\n\t\t\tkey: cell.id,\n\t\t\tadd: ev.ctrlKey || ev.metaKey,\n\t\t\torder: sortMark?.order,\n\t\t});\n\t}\n\tfunction collapse(ev) {\n\t\tif (ev) ev.stopPropagation();\n\t\tapi.exec(\"collapse-column\", { id: cell.id, row });\n\t}\n\n\tfunction toggleCollapseColumn(ev) {\n\t\tif (ev.key === \"Enter\") collapse();\n\t}\n\n\tfunction toggleSortColumn(ev) {\n\t\tif (ev.key === \"Enter\" && !cell.filter) sort(ev);\n\t}\n\n\tlet isCollapsed = $derived(cell.collapsed && column.collapsed);\n\tlet overlay = $derived(\n\t\tisCollapsed && !hasSplit && cell.collapsible !== \"header\"\n\t);\n\tlet collapsedTextStyle = $derived(\n\t\toverlay ? `top:-${bodyHeight / 2}px;position:absolute;` : \"\"\n\t);\n\n\tlet style = $derived(\n\t\tgetStyle(\n\t\t\tcell.width,\n\t\t\tcell.flexgrow,\n\t\t\tcolumn.fixed,\n\t\t\tcolumn.left,\n\t\t\tcell.right ?? column.right,\n\t\t\tcell.height + (isCollapsed && overlay ? bodyHeight : 0)\n\t\t)\n\t);\n\n\tconst css = $derived(getCssName(column, cell, columnStyle));\n\n\tfunction getCell() {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(cell).filter(([key]) => key !== \"cell\")\n\t\t);\n\t}\n</script>\n\n{#if isCollapsed}\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<div\n\t\tclass=\"wx-cell {css} {cell.css || ''} wx-collapsed\"\n\t\t{style}\n\t\trole=\"button\"\n\t\taria-label={`Expand column ${cell.text || \"\"}`}\n\t\taria-expanded={!cell.collapsed}\n\t\ttabindex=\"0\"\n\t\tonkeydown={toggleCollapseColumn}\n\t\tonclick={collapse}\n\t\tdata-header-id={setID(column.id)}\n\t>\n\t\t<div class=\"wx-text\" style={collapsedTextStyle}>\n\t\t\t{cell.text || \"\"}\n\t\t</div>\n\t</div>\n{:else}\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<div\n\t\tclass=\"wx-cell {css} {cell.css || ''}\"\n\t\tclass:wx-filter={cell.filter}\n\t\tclass:wx-fixed-right={column.fixed && column.fixed.right}\n\t\t{style}\n\t\tonclick={sort}\n\t\tdata-header-id={setID(column.id)}\n\t\ttabindex={!cell._hidden && column.sort && !cell.filter\n\t\t\t? \"0\"\n\t\t\t: undefined}\n\t\trole=\"columnheader\"\n\t\taria-colindex={cell._colindex}\n\t\taria-colspan={cell.colspan > 1 ? cell.colspan : undefined}\n\t\taria-rowspan={cell.rowspan > 1 ? cell.rowspan : undefined}\n\t\taria-sort={!sortMark?.order || cell.filter\n\t\t\t? \"none\"\n\t\t\t: sortMark?.order === \"asc\"\n\t\t\t\t? \"ascending\"\n\t\t\t\t: \"descending\"}\n\t\tonkeydown={toggleSortColumn}\n\t>\n\t\t{#if cell.collapsible}\n\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t<div\n\t\t\t\tclass=\"wx-collapse\"\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={cell.collapsed\n\t\t\t\t\t? \"Expand column\"\n\t\t\t\t\t: \"Collapse column\"}\n\t\t\t\taria-expanded={!cell.collapsed}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\tonkeydown={toggleCollapseColumn}\n\t\t\t\tonclick={collapse}\n\t\t\t>\n\t\t\t\t<i class=\"wxi-angle-{cell.collapsed ? 'down' : 'right'}\"></i>\n\t\t\t</div>\n\t\t{/if}\n\n\t\t{#if cell.cell}\n\t\t\t<cell.cell\n\t\t\t\t{api}\n\t\t\t\tcell={getCell()}\n\t\t\t\t{column}\n\t\t\t\t{row}\n\t\t\t\tonaction={({ action, data }) => api.exec(action, data)}\n\t\t\t/>\n\t\t{:else if cell.filter}\n\t\t\t<Filter filter={cell.filter} {column} />\n\t\t{:else}\n\t\t\t<div class=\"wx-text\">{cell.text || \"\"}</div>\n\t\t{/if}\n\n\t\t{#if column.resize && lastRow && !cell._hidden}\n\t\t\t<div\n\t\t\t\tclass=\"wx-grip\"\n\t\t\t\trole=\"presentation\"\n\t\t\t\taria-label=\"Resize column\"\n\t\t\t\tuse:resize={{ down, move, up }}\n\t\t\t\tonclick={ev => ev.stopPropagation()}\n\t\t\t>\n\t\t\t\t<div></div>\n\t\t\t</div>\n\t\t{/if}\n\n\t\t{#if sortRow}\n\t\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t<div class=\"wx-sort\">\n\t\t\t\t{#if sortMark}\n\t\t\t\t\t{#if typeof sortMark.index !== \"undefined\"}\n\t\t\t\t\t\t<div class=\"wx-order\">{sortMark.index + 1}</div>\n\t\t\t\t\t{/if}\n\t\t\t\t\t<i\n\t\t\t\t\t\tclass=\"wxi-arrow-{sortMark.order === 'asc'\n\t\t\t\t\t\t\t? 'up'\n\t\t\t\t\t\t\t: 'down'}\"\n\t\t\t\t\t></i>\n\t\t\t\t{/if}\n\t\t\t</div>\n\t\t{/if}\n\t</div>\n{/if}\n\n<style>\n\t:global(.wx-measure-cell-header),\n\t:global(.wx-print-cell-header),\n\t.wx-cell {\n\t\tpadding: 8px;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tfont-weight: var(--wx-header-font-weight);\n\t\tbackground: var(--wx-table-header-background);\n\t\tline-height: 20px;\n\t}\n\n\t.wx-cell:focus {\n\t\toutline: 1px solid var(--wx-color-primary);\n\t\toutline-offset: -1px;\n\t}\n\n\t:global(.wx-print-cell-header) {\n\t\tdisplay: table-cell;\n\t\tposition: static;\n\t}\n\n\t.wx-cell.wx-vertical {\n\t\talign-items: flex-end;\n\t}\n\n\t:global(.wx-measure-cell-header),\n\t.wx-cell:not(:last-child) {\n\t\tborder-right: var(--wx-table-header-cell-border);\n\t}\n\n\t:global(.wx-print-cell-filter),\n\t.wx-cell.wx-filter {\n\t\tpadding: 4px;\n\t\tz-index: 8;\n\t}\n\n\t:global(.wx-print-cell-header .wx-text),\n\t.wx-text {\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t}\n\n\t:global(.wx-print-cell-header.wx-vertical .wx-text),\n\t.wx-vertical .wx-text {\n\t\theight: 100%;\n\t\ttransform: rotate(-180deg);\n\t\twriting-mode: vertical-lr;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t:global(.wx-print-cell-header.wx-vertical .wx-text) {\n\t\tdisplay: block;\n\t}\n\t.wx-cell.wx-shadow {\n\t\tclip-path: inset(0px -15px 0px 0px);\n\t\tborder-right: var(--wx-table-fixed-column-border);\n\t}\n\n\t.wx-cell.wx-fixed-right.wx-shadow {\n\t\tborder-right: var(--wx-table-cell-border);\n\t\tborder-left: var(--wx-table-fixed-column-border);\n\t}\n\n\t.wx-cell.wx-fixed-right.wx-cell:last-child {\n\t\tborder-right: none;\n\t}\n\n\t.wx-shadow,\n\t.wx-fixed {\n\t\tz-index: 7; /* because colspans have z-index: 6 */\n\t}\n\n\t.wx-shadow.wx-rowspan,\n\t.wx-shadow.wx-colspan,\n\t.wx-fixed.wx-rowspan,\n\t.wx-fixed.wx-colspan {\n\t\tz-index: 8; /* because fixed columns have z-index: 7 */\n\t}\n\n\t.wx-grip {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tright: -4px;\n\t\twidth: 9px;\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\t\tcursor: ew-resize;\n\t\tz-index: 8;\n\t}\n\t.wx-grip div {\n\t\tmargin-left: 5px;\n\t\twidth: 1px;\n\t\theight: 100%;\n\t\tbackground-color: var(--wx-color-primary);\n\t}\n\t.wx-cell:last-child .wx-grip {\n\t\twidth: 5px;\n\t\tright: 0;\n\t}\n\t.wx-cell:last-child .wx-grip div {\n\t\tmargin-left: 4px;\n\t}\n\n\t.wx-grip::before,\n\t.wx-cell:not(:last-child) .wx-grip::after {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: auto;\n\t}\n\n\t.wx-grip::before {\n\t\tborder: 3px dashed transparent;\n\t\tborder-right: 3px solid var(--wx-color-primary);\n\t\tright: 7px;\n\t}\n\t.wx-cell:last-child .wx-grip::before {\n\t\tright: 3px;\n\t}\n\n\t.wx-cell:not(:last-child) .wx-grip::after {\n\t\tborder: 3px dashed transparent;\n\t\tborder-left: 3px solid var(--wx-color-primary);\n\t\tleft: 9px;\n\t}\n\n\t.wx-cell:has(.wx-grip:hover) {\n\t\tz-index: 9;\n\t}\n\n\t.wx-grip:hover {\n\t\topacity: 1;\n\t}\n\n\t.wx-sort {\n\t\theight: 100%;\n\t\tmargin-left: auto;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.wx-order {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tline-height: 16px;\n\t\tborder-radius: 50%;\n\t\tfont-size: 12px;\n\t\ttext-align: center;\n\t\tcolor: #fff;\n\t\tbackground-color: #3498ff;\n\t}\n\n\t.wx-collapse:focus {\n\t\toutline: none;\n\t}\n\t.wx-collapse:focus i,\n\t.wx-collapse:hover i {\n\t\tcolor: var(--wx-color-primary);\n\t}\n\n\t.wx-rowspan,\n\t.wx-colspan {\n\t\tz-index: 6; /* because resize grips have z-index: 5 */\n\t}\n\n\t.wx-collapse,\n\t.wx-collapsed {\n\t\tcursor: pointer;\n\t\tz-index: 1;\n\t}\n\t.wx-collapsed {\n\t\tposition: relative;\n\t}\n\t.wx-collapse i {\n\t\tmargin-right: 4px;\n\t}\n\n\t:global(.wx-h-row:not(:last-child)) .wx-cell:not(.wx-rowspan) {\n\t\tborder-bottom: var(--wx-table-header-cell-border);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { getStyle, getCssName } from \"../helpers/columnWidth\";\n\n\tconst api = getContext(\"grid-store\");\n\n\tlet { cell, column, row, columnStyle } = $props();\n\n\tlet style = $derived(\n\t\tgetStyle(\n\t\t\tcell.width,\n\t\t\tcell.flexgrow,\n\t\t\tcolumn.fixed,\n\t\t\tcolumn.left,\n\t\t\tcell.right ?? column.right,\n\t\t\tcell.height\n\t\t)\n\t);\n\n\tlet css = $derived(getCssName(column, cell, columnStyle));\n\n\tfunction getCell() {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(cell).filter(([key]) => key !== \"cell\")\n\t\t);\n\t}\n</script>\n\n<div\n\tclass=\"wx-cell {css} {cell.css || ''}\"\n\tclass:wx-fixed-right={column.fixed && column.fixed.right}\n\t{style}\n>\n\t{#if !column.collapsed && !cell.collapsed}\n\t\t{#if cell.cell}\n\t\t\t<cell.cell\n\t\t\t\t{api}\n\t\t\t\tcell={getCell()}\n\t\t\t\t{column}\n\t\t\t\t{row}\n\t\t\t\tonaction={({ action, data }) => api.exec(action, data)}\n\t\t\t/>\n\t\t{:else}\n\t\t\t<div class=\"wx-text\">{cell.text || \"\"}</div>\n\t\t{/if}\n\t{/if}\n</div>\n\n<style>\n\t:global(.wx-measure-cell-footer),\n\t:global(.wx-print-cell-footer),\n\t.wx-cell {\n\t\tpadding: 8px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tfont-weight: var(--wx-header-font-weight);\n\t\tbackground: var(--wx-table-header-background);\n\t\toverflow: hidden;\n\t}\n\n\t:global(.wx-print-cell-footer) {\n\t\tdisplay: table-cell;\n\t}\n\n\t.wx-cell:not(:last-child) {\n\t\tborder-right: var(--wx-table-footer-cell-border);\n\t}\n\n\t.wx-cell.wx-vertical {\n\t\talign-items: flex-end;\n\t}\n\n\t:global(.wx-print-cell-footer .wx-text),\n\t.wx-text {\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t}\n\n\t:global(.wx-print-cell-footer.wx-vertical .wx-text),\n\t.wx-vertical .wx-text {\n\t\ttransform: rotate(-90deg) translateY(100%);\n\t\ttransform-origin: left bottom;\n\t\ttext-overflow: clip;\n\t\toverflow: unset;\n\t}\n\n\t:global(.wx-print-cell-footer.wx-vertical .wx-text) {\n\t\tdisplay: block;\n\t}\n\n\t.wx-cell.wx-shadow {\n\t\tclip-path: inset(0px -15px 0px 0px);\n\t\tborder-right: var(--wx-table-fixed-column-border);\n\t}\n\n\t.wx-cell.wx-fixed-right.wx-shadow {\n\t\tborder-right: var(--wx-table-cell-border);\n\t\tborder-left: var(--wx-table-fixed-column-border);\n\t}\n\n\t.wx-cell.wx-fixed-right.wx-cell:last-child {\n\t\tborder-right: none;\n\t}\n\n\t.wx-shadow,\n\t.wx-fixed {\n\t\tz-index: 3;\n\t}\n\n\t.wx-rowspan {\n\t\tz-index: 2;\n\t}\n\n\t.wx-rowspan.wx-shadow,\n\t.wx-rowspan.wx-fixed,\n\t.wx-colspan.wx-shadow,\n\t.wx-colspan.wx-fixed {\n\t\tz-index: 4;\n\t}\n\n\t:global(.wx-f-row:not(:last-child)) .wx-cell:not(.wx-rowspan) {\n\t\tborder-bottom: var(--wx-table-header-cell-border);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport HeaderCell from \"./HeaderCell.svelte\";\n\timport FooterCell from \"./FooterCell.svelte\";\n\timport { isCommunity } from \"@svar-ui/grid-store\";\n\n\tlet {\n\t\tdeltaLeft,\n\t\tcontentWidth,\n\t\tcolumns,\n\t\ttype = \"header\",\n\t\tcolumnStyle,\n\t\tbodyHeight,\n\t} = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { _sizes: sizes, split } = api.getReactiveState();\n\tlet rowHeights = $derived($sizes[`${type}RowHeights`]);\n\n\tlet renderedHeader = $derived.by(() => {\n\t\tlet res = [];\n\t\tif (columns.length) {\n\t\t\tconst rowsCount = columns[0][type].length;\n\t\t\tfor (let ri = 0; ri < rowsCount; ri++) {\n\t\t\t\tlet inSpan = 0;\n\t\t\t\tres.push([]);\n\t\t\t\tcolumns.forEach((col, ci) => {\n\t\t\t\t\tconst cell = { ...col[type][ri] };\n\t\t\t\t\tif (!inSpan) {\n\t\t\t\t\t\tres[ri].push(cell);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cell.colspan > 1) {\n\t\t\t\t\t\tinSpan = cell.colspan - 1;\n\n\t\t\t\t\t\tif (!isCommunity()) {\n\t\t\t\t\t\t\tif (col.right) {\n\t\t\t\t\t\t\t\t// if column is fixed on the right and have colspan we need to recalculate right position\n\t\t\t\t\t\t\t\tlet right = col.right;\n\t\t\t\t\t\t\t\tfor (let i = 1; i < cell.colspan; i++) {\n\t\t\t\t\t\t\t\t\tright -= columns[ci + i].width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcell.right = right;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (inSpan) inSpan--;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t});\n\n\tconst hasSplit = $derived($split?.left || $split?.right);\n\n\tfunction getColumn(id) {\n\t\treturn columns.find(c => c.id === id);\n\t}\n\n\tfunction isLast(cell, ind) {\n\t\tif (cell.rowspan) ind += cell.rowspan - 1;\n\t\treturn ind === renderedHeader.length - 1;\n\t}\n\n\tfunction isSort(cell, ind, column) {\n\t\tif (!column.sort) return false;\n\t\tfor (let i = renderedHeader.length - 1; i >= 0; i--) {\n\t\t\tconst cell = column.header[i];\n\t\t\tif (!cell.filter && !cell._hidden) return ind === i;\n\t\t}\n\t\treturn isLast(cell, ind);\n\t}\n</script>\n\n<div\n\tclass={`wx-${type}`}\n\tstyle=\"padding-left:{deltaLeft}px;width:{contentWidth}px;\"\n\trole=\"rowgroup\"\n>\n\t{#each renderedHeader as row, i}\n\t\t<div\n\t\t\tclass={type === \"header\" ? \"wx-h-row\" : \"wx-f-row\"}\n\t\t\tstyle=\"height:{rowHeights[i]}px; display: flex\"\n\t\t\trole=\"row\"\n\t\t>\n\t\t\t{#each row as cell (cell.id)}\n\t\t\t\t{@const column = getColumn(cell.id)}\n\t\t\t\t{#if type === \"header\"}\n\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\t{cell}\n\t\t\t\t\t\t{columnStyle}\n\t\t\t\t\t\t{column}\n\t\t\t\t\t\trow={i}\n\t\t\t\t\t\tlastRow={isLast(cell, i)}\n\t\t\t\t\t\t{bodyHeight}\n\t\t\t\t\t\tsortRow={isSort(cell, i, column)}\n\t\t\t\t\t\t{hasSplit}\n\t\t\t\t\t/>\n\t\t\t\t{:else}\n\t\t\t\t\t<FooterCell\n\t\t\t\t\t\t{cell}\n\t\t\t\t\t\t{columnStyle}\n\t\t\t\t\t\tcolumn={getColumn(cell.id)}\n\t\t\t\t\t\trow={i}\n\t\t\t\t\t/>\n\t\t\t\t{/if}\n\t\t\t{/each}\n\t\t</div>\n\t{/each}\n</div>\n\n<style>\n\t.wx-header,\n\t.wx-footer {\n\t\tfont-weight: 500;\n\t}\n\n\t.wx-header {\n\t\ttop: 0;\n\t\tborder-bottom: var(--wx-table-header-border);\n\t}\n\n\t.wx-footer {\n\t\tposition: sticky;\n\t\tz-index: 2;\n\t\tbottom: 0;\n\t\tborder-top: var(--wx-table-header-border);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\tlet { overlay } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tfunction isComponent(prop) {\n\t\treturn typeof prop === \"function\";\n\t}\n</script>\n\n<div class=\"wx-overlay\">\n\t{#if isComponent(overlay)}\n\t\t{@const SvelteComponent = overlay}\n\t\t<SvelteComponent\n\t\t\tonaction={({ action, data }) => api.exec(action, data)}\n\t\t/>\n\t{:else}{overlay}{/if}\n</div>\n\n<style>\n\t.wx-overlay {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tposition: absolute;\n\t\tz-index: 5;\n\t\tbackground-color: var(--wx-background);\n\t\tpadding: 14px 8px;\n\t\ttext-align: center;\n\t}\n</style>\n","<script>\n\timport { onMount } from \"svelte\";\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\n\tlet { editor, onsave, onapply } = $props();\n\n\tlet value = $state(editor.value || \"\");\n\n\tlet node = $state();\n\tonMount(() => node.focus());\n\n\tfunction updateValue() {\n\t\tvalue = node.value;\n\t\tonapply(node.value);\n\t}\n\n\tfunction closeAndSave({ key }) {\n\t\tif (key === \"Enter\") onsave();\n\t}\n</script>\n\n<input\n\tuse:clickOutside={() => onsave(true)}\n\tclass=\"wx-text\"\n\toninput={updateValue}\n\tonkeydown={closeAndSave}\n\tbind:this={node}\n\ttype=\"text\"\n\t{value}\n/>\n\n<style>\n\t.wx-text {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tborder: none;\n\t\toutline: none;\n\t\tpadding-left: 8px;\n\t\tfont: inherit;\n\t\tbackground: var(--wx-background);\n\t\tcolor: var(--wx-color-font);\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n</style>\n","<script>\n\timport { onMount } from \"svelte\";\n\timport { SuggestDropdown } from \"@svar-ui/svelte-core\";\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\n\tlet { editor, onaction, onsave, onapply } = $props();\n\n\tlet { value, renderedValue: text, options: filterOptions } = $state(editor);\n\tlet { template, cell } = $state(editor?.config || {});\n\n\tlet index = $derived(filterOptions.findIndex(a => a.id === value));\n\n\tfunction updateValue({ id }) {\n\t\tonapply(id);\n\t\tonsave();\n\t}\n\n\tlet navigate;\n\tlet keydown = $state();\n\n\tfunction ready(ev) {\n\t\tnavigate = ev.navigate;\n\t\tkeydown = ev.keydown;\n\t\tnavigate(index);\n\t}\n\n\tfunction input() {\n\t\tfilterOptions = text\n\t\t\t? editor.options.filter(i =>\n\t\t\t\t\ti.label.toLowerCase().includes(text.toLowerCase())\n\t\t\t\t)\n\t\t\t: editor.options;\n\n\t\tif (filterOptions.length) navigate(-Infinity);\n\t\telse navigate(null);\n\t}\n\n\tlet node = $state();\n\tonMount(() => {\n\t\tnode.focus();\n\t});\n</script>\n\n<input\n\tclass=\"wx-input\"\n\tbind:this={node}\n\tbind:value={text}\n\toninput={input}\n\tonkeydown={e => keydown(e, index)}\n\tuse:clickOutside={() => onsave(true)}\n/>\n<SuggestDropdown items={filterOptions} onready={ready} onselect={updateValue}>\n\t{#snippet children({ option })}\n\t\t{#if template}\n\t\t\t{template(option)}\n\t\t{:else if cell}\n\t\t\t{@const SvelteComponent_1 = cell}\n\t\t\t<SvelteComponent_1 data={option} {onaction} />\n\t\t{:else}{option.label}{/if}\n\t{/snippet}\n</SuggestDropdown>\n\n<style>\n\t.wx-input {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tborder: none;\n\t\toutline: none;\n\t\tpadding-left: 8px;\n\t\tfont: inherit;\n\t\tbackground: var(--wx-background);\n\t\tcolor: var(--wx-color-font);\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n</style>\n","<script>\n\timport { onMount } from \"svelte\";\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\n\timport { Calendar, Dropdown } from \"@svar-ui/svelte-core\";\n\n\tlet { editor, onaction, onsave, onapply, oncancel } = $props();\n\n\tlet value = $state(editor.value || new Date());\n\n\tlet template = $state(editor.config?.template);\n\tlet cell = $state(editor.config?.cell);\n\n\tfunction updateValue({ value }) {\n\t\tonapply(value);\n\t\tonsave();\n\t}\n\n\tlet node;\n\tonMount(() => {\n\t\tnode.focus();\n\t\tif (window.getSelection) {\n\t\t\twindow.getSelection().removeAllRanges();\n\t\t}\n\t});\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tclass=\"wx-value\"\n\tbind:this={node}\n\ttabindex=\"0\"\n\tonclick={oncancel}\n\tonkeydown={ev => ev.preventDefault()}\n>\n\t{#if template}\n\t\t{template(value)}\n\t{:else if cell}\n\t\t{@const SvelteComponent = cell}\n\t\t<SvelteComponent data={editor.value} {onaction} />\n\t{:else}<span class=\"wx-text\">{editor.renderedValue}</span>{/if}\n</div>\n<Dropdown width={\"auto\"}>\n\t<div use:clickOutside={() => onsave(true)}>\n\t\t<Calendar\n\t\t\t{value}\n\t\t\tonchange={updateValue}\n\t\t\tbuttons={editor.config?.buttons}\n\t\t/>\n\t</div>\n</Dropdown>\n\n<style>\n\t.wx-value {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tpadding: 8px;\n\t\toverflow: hidden;\n\t\toutline: none;\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n\t.wx-text {\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tdisplay: block;\n\t}\n</style>\n","<script>\n\timport { onMount } from \"svelte\";\n\timport { SuggestDropdown } from \"@svar-ui/svelte-core\";\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\n\tlet { editor, onaction, onsave, onapply, oncancel } = $props();\n\n\tlet data = $state(editor.options.find(opt => opt.id === editor.value));\n\tlet { value, options } = $state(editor);\n\tlet { template, cell } = $state(editor?.config || {});\n\n\tlet index = $derived(options.findIndex(a => a.id === value));\n\n\tfunction updateValue({ id }) {\n\t\tonapply(id);\n\t\tonsave();\n\t}\n\n\tlet navigate;\n\tlet keydown = $state();\n\n\tfunction ready(ev) {\n\t\tnavigate = ev.navigate;\n\t\tkeydown = ev.keydown;\n\t\tnavigate(index);\n\t}\n\n\tlet node = $state();\n\tonMount(() => {\n\t\tnode.focus();\n\t\tif (window && window.getSelection) {\n\t\t\twindow.getSelection().removeAllRanges();\n\t\t}\n\t});\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n<div\n\tbind:this={node}\n\tclass=\"wx-value\"\n\ttabindex=\"0\"\n\tonclick={oncancel}\n\tonkeydown={ev => {\n\t\tkeydown(ev, index);\n\t\tev.preventDefault();\n\t}}\n\tuse:clickOutside={() => onsave(true)}\n>\n\t{#if template}\n\t\t{template(data)}\n\t{:else if cell}\n\t\t{@const SvelteComponent = cell}\n\t\t<SvelteComponent {data} {onaction} />\n\t{:else}<span class=\"wx-text\">{editor.renderedValue}</span>{/if}\n</div>\n<SuggestDropdown items={options} onready={ready} onselect={updateValue}>\n\t{#snippet children({ option })}\n\t\t{#if template}\n\t\t\t{template(option)}\n\t\t{:else if cell}\n\t\t\t{@const SvelteComponent_1 = cell}\n\t\t\t<SvelteComponent_1 data={option} {onaction} />\n\t\t{:else}{option.label}{/if}\n\t{/snippet}\n</SuggestDropdown>\n\n<style>\n\t.wx-value {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tpadding: 8px;\n\t\toverflow: hidden;\n\t\toutline: none;\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n\t.wx-text {\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.wx-value:focus {\n\t\toutline: none;\n\t\tdisplay: block;\n\t}\n</style>\n","<script>\n\timport { SuggestDropdown } from \"@svar-ui/svelte-core\";\n\timport { clickOutside } from \"@svar-ui/lib-dom\";\n\timport { onMount } from \"svelte\";\n\n\tlet { editor, onaction, onsave, onapply, oncancel } = $props();\n\tlet { config } = $state(editor);\n\n\tconst options = $derived(editor?.options ?? []);\n\tlet value = $derived(editor?.value || []);\n\tlet renderedValue = $derived(editor?.renderedValue);\n\tlet index = $derived.by(() => {\n\t\tconst firstSelected = options.find(opt => value.includes(opt.id));\n\t\treturn firstSelected ? options.indexOf(firstSelected) : -1;\n\t});\n\n\tfunction updateValue({ id }) {\n\t\tonapply(id);\n\t\tnode.focus();\n\t}\n\n\tlet navigate;\n\tlet keydown = $state();\n\n\tfunction ready(ev) {\n\t\tnavigate = ev.navigate;\n\t\tkeydown = ev.keydown;\n\t\tnavigate(index);\n\t}\n\n\tlet node = $state();\n\tonMount(() => {\n\t\tnode.focus();\n\t\tif (window && window.getSelection) {\n\t\t\twindow.getSelection().removeAllRanges();\n\t\t}\n\t});\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n<div\n\tbind:this={node}\n\tclass=\"wx-value\"\n\ttabindex=\"0\"\n\tonclick={oncancel}\n\tonkeydown={ev => {\n\t\tkeydown(ev, index);\n\t\tev.preventDefault();\n\t}}\n\tuse:clickOutside={() => onsave(true)}\n>\n\t{#if config?.template}\n\t\t{config.template(value?.map(id => options.find(opt => opt.id === id)))}\n\t{:else if config?.cell}\n\t\t{@const SvelteComponent = config.cell}\n\t\t<SvelteComponent\n\t\t\tdata={value.map(id => options.find(opt => opt.id === id))}\n\t\t/>\n\t{:else}\n\t\t<span class=\"wx-text\">{renderedValue}</span>\n\t{/if}\n</div>\n\n<SuggestDropdown\n\titems={options}\n\tonready={ready}\n\tonselect={updateValue}\n\tcheckboxes={true}\n\tmultiselect={true}\n\t{value}\n>\n\t{#snippet children({ option })}\n\t\t<div class=\"wx-option\">\n\t\t\t{#if config?.template}\n\t\t\t\t{config.template(option)}\n\t\t\t{:else if config?.cell}\n\t\t\t\t{@const SvelteComponent = config.cell}\n\t\t\t\t<SvelteComponent data={option} {onaction} />\n\t\t\t{:else}\n\t\t\t\t{option.label}\n\t\t\t{/if}\n\t\t</div>\n\t{/snippet}\n</SuggestDropdown>\n\n<style>\n\t.wx-option {\n\t\tdisplay: flex;\n\t\tdirection: row;\n\t\talign-items: center;\n\t\tjustify-content: flex-start;\n\t\tgap: 8px;\n\t}\n\t.wx-text {\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.wx-value {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tpadding: 8px;\n\t\toverflow: hidden;\n\t\toutline: none;\n\t\tborder: 1px solid var(--wx-color-primary);\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n</style>\n","import Text from \"./Text.svelte\";\nimport Combo from \"./Combo.svelte\";\nimport Datepicker from \"./Datepicker.svelte\";\nimport Richselect from \"./Richselect.svelte\";\nimport Multiselect from \"./MultiSelect.svelte\";\n\nexport const editors = {\n\ttext: Text,\n\tcombo: Combo,\n\tdatepicker: Datepicker,\n\trichselect: Richselect,\n\tmultiselect: Multiselect,\n};\n\nexport function registerInlineEditor(type, component) {\n\teditors[type] = component;\n}\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { getStyle } from \"../../helpers/columnWidth\";\n\timport { editors } from \"./editors\";\n\n\tlet { column, row } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { editor } = api.getReactiveState();\n\n\tfunction save(ignoreFocus) {\n\t\tconst cell = ignoreFocus\n\t\t\t? null\n\t\t\t: { row: $editor.id, column: $editor.column };\n\t\tcloseEditor(false, cell);\n\t}\n\n\tfunction cancel() {\n\t\tcloseEditor(true, { row: $editor.id, column: $editor.column });\n\t}\n\n\tfunction updateValue(value) {\n\t\tapi.exec(\"editor\", { value });\n\t}\n\n\tfunction closeEditor(ignore, cell) {\n\t\tapi.exec(\"close-editor\", { ignore });\n\t\tif (cell) {\n\t\t\tapi.exec(\"focus-cell\", {\n\t\t\t\t...cell,\n\t\t\t\teventSource: \"click\",\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction keyHandler(ev) {\n\t\tif (ev.key === \"Enter\" && $editor) {\n\t\t\tif (column.editor.type === \"multiselect\") {\n\t\t\t\tupdateValue($editor.value);\n\t\t\t} else {\n\t\t\t\tcancel();\n\t\t\t}\n\t\t}\n\t}\n\n\tlet style = $derived(\n\t\tgetStyle(\n\t\t\tcolumn.width,\n\t\t\tcolumn.flexgrow,\n\t\t\tcolumn.fixed,\n\t\t\tcolumn.left,\n\t\t\tcolumn.right\n\t\t)\n\t);\n\n\tconst SvelteComponent = $derived.by(() => {\n\t\tlet editor = column.editor;\n\t\tif (typeof editor === \"function\") editor = editor(row, column);\n\t\tlet type = typeof editor === \"string\" ? editor : editor.type;\n\t\treturn editors[type];\n\t});\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div\n\tclass=\"wx-cell wx-editor\"\n\t{style}\n\trole={typeof row.$parent !== \"undefined\" ? \"gridcell\" : \"cell\"}\n\taria-readonly={typeof row.$parent !== \"undefined\"\n\t\t? column.editor\n\t\t\t? false\n\t\t\t: true\n\t\t: undefined}\n\ttabindex=\"-1\"\n\tonclick={ev => ev.stopPropagation()}\n\tondblclick={ev => ev.stopPropagation()}\n\tonkeydown={keyHandler}\n>\n\t<SvelteComponent\n\t\teditor={$editor}\n\t\tonsave={save}\n\t\tonapply={updateValue}\n\t\toncancel={cancel}\n\t\tonaction={({ action, data }) => api.exec(action, data)}\n\t/>\n</div>\n\n<style>\n\t.wx-cell {\n\t\tbox-sizing: border-box;\n\t\tpadding: 0;\n\t\tbackground-color: var(--wx-background);\n\t\tcolor: var(--wx-color-font);\n\t\tposition: relative;\n\t\tz-index: 3;\n\t}\n\t.wx-cell :global(.wx-dropdown) {\n\t\tborder: var(--wx-table-editor-dropdown-border);\n\t\tbox-shadow: var(--wx-table-editor-dropdown-shadow);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { getPrintCellStyle, getPrintFilterValue } from \"@svar-ui/grid-store\";\n\n\tlet { columns, type, columnStyle } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { filterValues, _columns, _sizes: sizes } = api.getState();\n\n\tfunction getColumnCss(column) {\n\t\treturn columnStyle ? \" \" + columnStyle(column) : \"\";\n\t}\n</script>\n\n{#each columns as row, i}\n\t<tr>\n\t\t{#each row as cell (cell.id)}\n\t\t\t{@const column = _columns.find(c => c.id === cell.id)}\n\t\t\t<th\n\t\t\t\tstyle={getPrintCellStyle(cell, sizes.columnWidth)}\n\t\t\t\tclass=\"wx-print-cell-{type} {getColumnCss(column)}\"\n\t\t\t\tclass:wx-print-cell-filter={cell.filter}\n\t\t\t\tclass:wx-vertical={cell.vertical}\n\t\t\t\trowspan={cell.rowspan}\n\t\t\t\tcolspan={cell.colspan}\n\t\t\t>\n\t\t\t\t{#if cell.cell}\n\t\t\t\t\t<cell.cell\n\t\t\t\t\t\t{api}\n\t\t\t\t\t\tcell={Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(cell).filter(\n\t\t\t\t\t\t\t\t([key]) => key !== \"cell\"\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{column}\n\t\t\t\t\t\trow={i}\n\t\t\t\t\t/>\n\t\t\t\t{:else if cell.filter}\n\t\t\t\t\t<div class=\"wx-print-filter\">\n\t\t\t\t\t\t{getPrintFilterValue(filterValues, _columns, cell)}\n\t\t\t\t\t</div>\n\t\t\t\t{:else}\n\t\t\t\t\t<div class=\"wx-text\">{cell.text ?? \"\"}</div>\n\t\t\t\t{/if}\n\t\t\t</th>\n\t\t{/each}\n\t</tr>\n{/each}\n\n<style>\n\t:global(.wx-print-grid .wx-vertical) {\n\t\tvertical-align: bottom;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport {\n\t\tgetRenderValue,\n\t\tgetHeaderFooterPrintColumns,\n\t\tgetPrintCellStyle,\n\t} from \"@svar-ui/grid-store\";\n\timport HeaderFooter from \"./HeaderFooter.svelte\";\n\n\tlet { columns, rowStyle, columnStyle, cellStyle, header, footer, reorder } =\n\t\t$props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { flatData: data, _sizes: sizes } = api.getState();\n\n\tconst headerColumns =\n\t\theader &&\n\t\tgetHeaderFooterPrintColumns(columns, \"header\", sizes.headerRowHeights);\n\tconst footerColumns =\n\t\tfooter &&\n\t\tgetHeaderFooterPrintColumns(columns, \"footer\", sizes.footerRowHeights);\n\n\tfunction buildCellCss(row, column) {\n\t\tlet css = \"\";\n\t\tcss += columnStyle ? \" \" + columnStyle(column) : \"\";\n\t\tcss += cellStyle ? \" \" + cellStyle(row, column) : \"\";\n\t\treturn css;\n\t}\n\n\tfunction isDraggableIcon(row, column) {\n\t\treturn typeof column.draggable === \"function\"\n\t\t\t? column.draggable(row, column) !== false\n\t\t\t: column.draggable;\n\t}\n</script>\n\n<table\n\tclass=\"wx-print-grid\"\n\tclass:wx-flex-columns={columns.some(c => c.flexgrow)}\n>\n\t{#if header}\n\t\t<thead>\n\t\t\t<HeaderFooter\n\t\t\t\tcolumns={headerColumns}\n\t\t\t\ttype={\"header\"}\n\t\t\t\t{columnStyle}\n\t\t\t/>\n\t\t</thead>\n\t{/if}\n\n\t<tbody>\n\t\t{#each data as row}\n\t\t\t<tr\n\t\t\t\tclass={\"wx-row\" + (rowStyle ? \" \" + rowStyle(row) : \"\")}\n\t\t\t\tstyle={`height:${row.rowHeight || sizes.rowHeight}px;`}\n\t\t\t>\n\t\t\t\t{#each columns as column (column.id)}\n\t\t\t\t\t{#if !column.collapsed}\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"wx-print-cell wx-cell {buildCellCss(\n\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\tcolumn\n\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\tstyle={getPrintCellStyle(column, sizes.columnWidth)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{#if reorder && column.draggable}\n\t\t\t\t\t\t\t\t<span class=\"wx-print-draggable\">\n\t\t\t\t\t\t\t\t\t{#if isDraggableIcon(row, column)}\n\t\t\t\t\t\t\t\t\t\t<i class=\"wxi-drag\"></i>\n\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{#if column.treetoggle}\n\t\t\t\t\t\t\t\t<span style=\"margin-left:{row.$level * 28}px;\"\n\t\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t\t{#if row.$count}\n\t\t\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\t\t\tclass=\"wx-print-grid-tree-toggle wxi-menu-{row.open !==\n\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t? 'down'\n\t\t\t\t\t\t\t\t\t\t\t: 'right'}\"\n\t\t\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{#if column.cell}\n\t\t\t\t\t\t\t\t<column.cell {api} {row} {column} />\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t<span>{getRenderValue(row, column)}</span>\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t{/if}\n\t\t\t\t{/each}\n\t\t\t</tr>\n\t\t{/each}\n\t</tbody>\n\t{#if footer}\n\t\t<tfoot>\n\t\t\t<HeaderFooter\n\t\t\t\tcolumns={footerColumns}\n\t\t\t\ttype={\"footer\"}\n\t\t\t\t{columnStyle}\n\t\t\t/>\n\t\t</tfoot>\n\t{/if}\n</table>\n\n<style>\n\t.wx-flex-columns {\n\t\twidth: 100%;\n\t}\n</style>\n","<script>\n\timport { getContext, onMount } from \"svelte\";\n\timport Grid from \"./Grid.svelte\";\n\timport { getPrintColumns } from \"@svar-ui/grid-store\";\n\n\tlet { config, ...restProps } = $props();\n\n\tconst api = getContext(\"grid-store\");\n\tconst { _skin: skin, _columns: columns } = api.getState();\n\n\tlet grids = getPrintColumns(columns, config);\n\tlet node = $state();\n\n\tonMount(() => {\n\t\tconst target = document.body;\n\t\ttarget.classList.add(\"wx-print\");\n\n\t\tconst cloned = node.cloneNode(true);\n\t\ttarget.appendChild(cloned);\n\n\t\tconst rule = `@media print { @page { size: ${config.paper} ${config.mode}; }`;\n\t\tconst style = document.createElement(\"style\");\n\t\tstyle.setAttribute(\"type\", \"text/css\");\n\t\tstyle.setAttribute(\"media\", \"print\");\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(style);\n\t\tstyle.appendChild(document.createTextNode(rule));\n\n\t\twindow.print();\n\n\t\tstyle.remove();\n\t\ttarget.classList.remove(\"wx-print\");\n\n\t\tcloned.remove();\n\t});\n</script>\n\n<div class=\"wx-{skin}-theme wx-print-container\" bind:this={node}>\n\t{#each grids as cols}\n\t\t<div class=\"wx-print-grid-wrapper\">\n\t\t\t<Grid columns={cols} {...restProps} />\n\t\t</div>\n\t{/each}\n</div>\n\n<style>\n\t:global(.wx-print-container) {\n\t\tdisplay: none;\n\t}\n\n\t:global(.wx-print-grid) {\n\t\tborder-collapse: collapse;\n\t\ttable-layout: fixed;\n\t\tborder: var(--wx-table-border);\n\t\tborder-spacing: 0;\n\t\ttext-indent: initial;\n\t\tprint-color-adjust: exact;\n\t\t-webkit-print-color-adjust: exact;\n\t}\n\n\t:global(.wx-print-grid tr, .wx-print-grid th, .wx-print-grid td) {\n\t\tborder: var(--wx-table-border);\n\t}\n\n\t@media print {\n\t\t:global(.wx-print > *) {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:global(.wx-print-container > .wx-print-grid-wrapper) {\n\t\t\tpage-break-after: always;\n\t\t\tbreak-after: page;\n\t\t}\n\n\t\t:global(.wx-print-container) {\n\t\t\tdisplay: block !important;\n\t\t}\n\t}\n</style>\n","<script>\n\timport { getContext, tick, onMount } from \"svelte\";\n\timport { onresize } from \"../helpers/actions/onresize\";\n\timport { reorder as drag, getOffset } from \"../helpers/actions/reorder\";\n\timport {\n\t\tresetAutoScroll,\n\t\ttryAutoScroll,\n\t} from \"../helpers/actions/dragscroll\";\n\timport {\n\t\tclickOutside,\n\t\tdelegateClick,\n\t\tlocate,\n\t\tsetID,\n\t\tlocateID,\n\t\tgetID,\n\t} from \"@svar-ui/lib-dom\";\n\n\timport { hotkeys, defaultHotkeys } from \"@svar-ui/grid-store\";\n\timport { scrollTo } from \"@svar-ui/grid-store\";\n\n\timport Cell from \"./Cell.svelte\";\n\timport HeaderFooter from \"./HeaderFooter.svelte\";\n\timport Overlay from \"./Overlay.svelte\";\n\timport Editor from \"./inlineEditors/Editor.svelte\";\n\timport Print from \"./print/Print.svelte\";\n\n\tlet {\n\t\theader,\n\t\tfooter,\n\t\toverlay,\n\t\tmultiselect,\n\t\tonreorder,\n\t\trowStyle,\n\t\tcolumnStyle,\n\t\tcellStyle,\n\t\tautoRowHeight,\n\t\tresize,\n\t\tclientWidth,\n\t\tclientHeight,\n\t\tresponsiveLevel,\n\t\thotkeys: hotkeysConfig,\n\t} = $props();\n\n\tconst api = getContext(\"grid-store\");\n\n\tconst {\n\t\tdynamic,\n\t\t_columns,\n\t\tflatData: data,\n\t\tsplit,\n\t\t_sizes,\n\t\tselectedRows,\n\t\tselect,\n\t\teditor,\n\t\tscroll,\n\t\ttree,\n\t\tfocusCell,\n\t\t_print,\n\t\tundo,\n\t\treorder,\n\t\t_rowHeightFromData,\n\t} = api.getReactiveState();\n\n\t// will be calculated once, after rendering\n\tlet SCROLLSIZE = $state(0);\n\tonMount(() => (SCROLLSIZE = getScrollSize()));\n\n\tlet scrollLeft = $state(0),\n\t\tscrollTop = $state(0);\n\tconst hasAny = $derived.by(() => {\n\t\treturn $_columns.some(col => !col.hidden && col.flexgrow);\n\t});\n\n\tconst defaultRowHeight = $derived($_sizes.rowHeight);\n\tlet tableNode;\n\n\t// reorder\n\tlet dragItem = $state(null),\n\t\tdragNode = $state(null);\n\n\tconst fullHeight = $derived.by(() => {\n\t\tconst count = $dynamic ? $dynamic.rowCount : $data.length;\n\n\t\tif (autoRowHeight) {\n\t\t\treturn (\n\t\t\t\trenderedHeight +\n\t\t\t\trenderRows.d +\n\t\t\t\t(count - renderEnd) * defaultRowHeight\n\t\t\t);\n\t\t}\n\t\tif (!$_rowHeightFromData) {\n\t\t\treturn count * defaultRowHeight;\n\t\t}\n\n\t\tlet totalHeight = 0;\n\t\tfor (let i = 0; i < count; i++)\n\t\t\ttotalHeight += $data[i].rowHeight || defaultRowHeight;\n\n\t\treturn totalHeight;\n\t});\n\n\tconst fullWidth = $derived(\n\t\t$_columns.reduce((acc, col) => {\n\t\t\tif (!col.hidden) {\n\t\t\t\tacc += col.width;\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, 0)\n\t);\n\t// $inspect(fullWidth, \"fullWidth\");\n\n\t// mark split left columns\n\tconst leftColumns = $derived.by(() => {\n\t\tlet columns = [];\n\t\tlet width = 0;\n\n\t\tif ($split.left) {\n\t\t\tcolumns = $_columns\n\t\t\t\t.slice(0, $split.left)\n\t\t\t\t.filter(c => !c.hidden)\n\t\t\t\t.map(a => ({ ...a }));\n\t\t\tcolumns.forEach(a => {\n\t\t\t\ta.fixed = { left: 1 };\n\t\t\t\ta.left = width;\n\t\t\t\twidth += a.width;\n\t\t\t});\n\t\t\tif (columns.length)\n\t\t\t\tcolumns[columns.length - 1].fixed = { left: -1 };\n\t\t}\n\n\t\treturn { columns, width };\n\t});\n\n\t// mark split right columns\n\tconst rightColumns = $derived.by(() => {\n\t\tlet columns = [];\n\t\tlet width = 0;\n\n\t\tif ($split.right) {\n\t\t\tcolumns = $_columns\n\t\t\t\t.slice($split.right * -1)\n\t\t\t\t.filter(c => !c.hidden)\n\t\t\t\t.map(a => ({ ...a }));\n\t\t\tfor (let i = columns.length - 1; i >= 0; i--) {\n\t\t\t\tconst col = columns[i];\n\t\t\t\tcol.fixed = { right: 1 };\n\t\t\t\tcol.right = width;\n\t\t\t\twidth += col.width;\n\t\t\t}\n\t\t\tif (columns.length) columns[0].fixed = { right: -1 };\n\t\t}\n\n\t\treturn { columns, width };\n\t});\n\t// $inspect(leftColumns, \"leftColumns\");\n\n\tconst centerColumns = $derived.by(() => {\n\t\tconst center = $_columns\n\t\t\t.slice($split.left, $_columns.length - ($split.right ?? 0))\n\t\t\t.filter(c => !c.hidden);\n\t\tcenter.forEach(a => {\n\t\t\ta.fixed = 0;\n\t\t});\n\t\treturn center;\n\t});\n\n\tconst EXTRACOLUMNS = 1;\n\tconst renderColumns = $derived.by(() => {\n\t\tlet data, header, footer;\n\n\t\t// get visible columns\n\t\tconst left = scrollLeft;\n\t\tconst right = scrollLeft + clientWidth;\n\n\t\tlet start = 0;\n\t\tlet end = 0;\n\t\tlet sum = 0;\n\n\t\tlet d = 0;\n\t\tcenterColumns.forEach((col, index) => {\n\t\t\tif (left > sum) {\n\t\t\t\tstart = index;\n\t\t\t\td = sum;\n\t\t\t}\n\t\t\tsum = sum + col.width;\n\n\t\t\tif (right > sum) end = index + EXTRACOLUMNS;\n\t\t});\n\n\t\t// header and footer cells correction depending on colSpans\n\t\tconst rightSpanDelta = { header: 0, footer: 0 };\n\t\tfor (let i = end; i >= start; i--) {\n\t\t\t[\"header\", \"footer\"].forEach(key => {\n\t\t\t\tif (centerColumns[i])\n\t\t\t\t\tcenterColumns[i][key].forEach(hCell => {\n\t\t\t\t\t\tconst colspan = hCell.colspan;\n\t\t\t\t\t\tif (colspan && colspan > 1) {\n\t\t\t\t\t\t\tconst diff = colspan - (end - i + 1);\n\t\t\t\t\t\t\tif (diff > 0) {\n\t\t\t\t\t\t\t\trightSpanDelta[key] = Math.max(\n\t\t\t\t\t\t\t\t\trightSpanDelta[key],\n\t\t\t\t\t\t\t\t\tdiff\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// include visible header/footer spans\n\t\tconst headerPos = getHeaderPosition(start, d, \"header\");\n\t\tconst footerPos = getHeaderPosition(start, d, \"footer\");\n\n\t\tconst dh = headerPos.delta;\n\t\tconst csH = headerPos.index;\n\n\t\tconst df = footerPos.delta;\n\t\tconst csF = footerPos.index;\n\n\t\tif (hasAny && fullWidth > clientWidth) {\n\t\t\tdata =\n\t\t\t\theader =\n\t\t\t\tfooter =\n\t\t\t\t\t[\n\t\t\t\t\t\t...leftColumns.columns,\n\t\t\t\t\t\t...centerColumns,\n\t\t\t\t\t\t...rightColumns.columns,\n\t\t\t\t\t];\n\t\t} else {\n\t\t\tdata = [\n\t\t\t\t...leftColumns.columns,\n\t\t\t\t...centerColumns.slice(start, end + 1),\n\t\t\t\t...rightColumns.columns,\n\t\t\t];\n\t\t\theader = [\n\t\t\t\t...leftColumns.columns,\n\t\t\t\t...centerColumns.slice(csH, end + rightSpanDelta.header + 1),\n\t\t\t\t...rightColumns.columns,\n\t\t\t];\n\t\t\tfooter = [\n\t\t\t\t...leftColumns.columns,\n\t\t\t\t...centerColumns.slice(csF, end + rightSpanDelta.footer + 1),\n\t\t\t\t...rightColumns.columns,\n\t\t\t];\n\t\t}\n\n\t\treturn { data, header, footer, d, df, dh };\n\t});\n\t// $inspect(renderColumns, \"renderColumns\");\n\n\tconst contentWidth = $derived(\n\t\thasAny && fullWidth <= clientWidth\n\t\t\t? clientWidth - (hasVScroll ? SCROLLSIZE : 0)\n\t\t\t: fullWidth\n\t);\n\t// $inspect(contentWidth, \"contentWidth\");\n\n\tconst headerHeight = $derived(header ? $_sizes.headerHeight : 0);\n\tconst footerHeight = $derived(footer ? $_sizes.footerHeight : 0);\n\n\tconst hasVScroll = $derived(\n\t\tclientWidth && clientHeight\n\t\t\t? fullHeight + headerHeight + footerHeight >=\n\t\t\t\t\tclientHeight - (fullWidth >= clientWidth ? SCROLLSIZE : 0)\n\t\t\t: false\n\t);\n\tconst hasHScroll = $derived(\n\t\tclientWidth && clientHeight ? fullWidth >= clientWidth : false\n\t);\n\n\t// set global width\n\t// if we have flexible columns\n\t// then ignore the fullWidth as it doesn't include flex columns and has no meaning in this context\n\tconst globalWidth = $derived(\n\t\thasAny && fullWidth <= clientWidth\n\t\t\t? clientWidth\n\t\t\t: contentWidth < clientWidth\n\t\t\t\t? fullWidth + (hasVScroll ? SCROLLSIZE : 0)\n\t\t\t\t: -1\n\t);\n\t// $inspect(globalWidth, \"globalWidth\");\n\n\t// hom many rows visible\n\tconst visibleRowsHeight = $derived(\n\t\tclientHeight -\n\t\t\theaderHeight -\n\t\t\tfooterHeight -\n\t\t\t(hasHScroll ? SCROLLSIZE : 0)\n\t);\n\n\tconst visibleRows = $derived(\n\t\tMath.ceil(visibleRowsHeight / defaultRowHeight) + 1\n\t);\n\n\t// request data if necessary\n\tconst EXTRAROWS = 2;\n\tconst renderRows = $derived.by(() => {\n\t\tlet start = 0,\n\t\t\tdeltaTop = 0;\n\t\tif (autoRowHeight) {\n\t\t\tlet st = scrollTop;\n\t\t\twhile (st > 0) {\n\t\t\t\tst -= rowHeights[start] || defaultRowHeight;\n\t\t\t\tstart++;\n\t\t\t}\n\n\t\t\t// space to first rendered row\n\t\t\tdeltaTop = scrollTop - st;\n\t\t\tfor (let i = Math.max(0, start - EXTRAROWS - 1); i < start; i++)\n\t\t\t\tdeltaTop -= rowHeights[start - i] || defaultRowHeight;\n\n\t\t\tstart = Math.max(0, start - EXTRAROWS);\n\t\t} else {\n\t\t\tif ($_rowHeightFromData) {\n\t\t\t\tlet startInd = 0;\n\t\t\t\tlet topHeight = 0;\n\t\t\t\tfor (let i = 0; i < $data.length; i++) {\n\t\t\t\t\tconst height = $data[i].rowHeight || defaultRowHeight;\n\t\t\t\t\tif (topHeight + height > scrollTop) {\n\t\t\t\t\t\tstartInd = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ttopHeight += height;\n\t\t\t\t}\n\t\t\t\tstart = Math.max(0, startInd - EXTRAROWS);\n\n\t\t\t\tfor (let i = 0; i < start; i++) {\n\t\t\t\t\tdeltaTop += $data[i].rowHeight || defaultRowHeight;\n\t\t\t\t}\n\n\t\t\t\tlet visibleRowsCount = 0;\n\t\t\t\tlet currentHeight = 0;\n\t\t\t\tfor (let i = startInd + 1; i < $data.length; i++) {\n\t\t\t\t\tconst height = $data[i].rowHeight || defaultRowHeight;\n\t\t\t\t\tvisibleRowsCount++;\n\t\t\t\t\tif (currentHeight + height > visibleRowsHeight) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentHeight += height;\n\t\t\t\t}\n\n\t\t\t\tconst end = Math.min(\n\t\t\t\t\t$dynamic ? $dynamic.rowCount : $data.length,\n\t\t\t\t\tstartInd + visibleRowsCount + EXTRAROWS\n\t\t\t\t);\n\n\t\t\t\treturn { d: deltaTop, start, end };\n\t\t\t}\n\n\t\t\tstart = Math.floor(scrollTop / defaultRowHeight);\n\t\t\tstart = Math.max(0, start - EXTRAROWS);\n\t\t\tdeltaTop = start * defaultRowHeight;\n\t\t}\n\n\t\tconst end = Math.min(\n\t\t\t$dynamic ? $dynamic.rowCount : $data.length,\n\t\t\tstart + visibleRows + EXTRAROWS\n\t\t);\n\n\t\treturn { d: deltaTop, start, end };\n\t});\n\n\tlet lastCall = {};\n\t$effect(() => {\n\t\tif (\n\t\t\t$dynamic &&\n\t\t\t(lastCall.start !== renderRows.start ||\n\t\t\t\tlastCall.end !== renderRows.end)\n\t\t) {\n\t\t\tconst { start, end } = renderRows;\n\t\t\tlastCall = { start, end };\n\t\t\tapi.exec(\"request-data\", { row: { start, end } });\n\t\t}\n\t});\n\n\tconst dataRows = $derived.by(() => {\n\t\tif ($dynamic) return $data;\n\t\telse {\n\t\t\treturn $data.slice(renderRows.start, renderRows.end);\n\t\t}\n\t});\n\n\t//get visible selection\n\tconst visibleSelection = $derived(\n\t\t$selectedRows.filter(s => dataRows.some(r => r.id === s))\n\t);\n\n\tlet renderStart = $derived(renderRows.start);\n\tlet renderEnd = $state();\n\n\tfunction onScroll(ev) {\n\t\tscrollTop = ev.target.scrollTop;\n\t\tscrollLeft = ev.target.scrollLeft;\n\t}\n\n\tfunction lockSelection(ev) {\n\t\t// we prevent default on mousedown reaction to stop the unwanted text selection\n\t\t// in the same time we need to have focus-in, so trigger it manually\n\t\t//\n\t\t// in future, it will be optimal to block text selection directly, without affecting focus related event\n\t\tif (ev.shiftKey) ev.preventDefault();\n\t\ttableNode.focus();\n\t}\n\n\tfunction checkDraggable() {\n\t\treturn !!$_columns.find(c => !!c.draggable);\n\t}\n\n\tlet postDrag;\n\tlet movementY;\n\n\tconst bodyClickHandlers = {\n\t\tdblclick: (id, ev) => {\n\t\t\tconst data = { id, column: locateID(ev, \"data-col-id\") };\n\t\t\tapi.exec(\"open-editor\", data);\n\t\t},\n\t\tclick: (id, ev) => {\n\t\t\tif (postDrag) return;\n\t\t\tconst column = locateID(ev, \"data-col-id\");\n\t\t\tif ($focusCell?.id !== id)\n\t\t\t\tapi.exec(\"focus-cell\", {\n\t\t\t\t\trow: id,\n\t\t\t\t\tcolumn,\n\t\t\t\t\teventSource: \"click\",\n\t\t\t\t});\n\n\t\t\tif ($select === false) return;\n\n\t\t\tconst toggle = multiselect && (ev.ctrlKey || ev.metaKey);\n\t\t\tconst range = multiselect && ev.shiftKey;\n\n\t\t\tif (\n\t\t\t\ttoggle ||\n\t\t\t\t$selectedRows.length > 1 ||\n\t\t\t\t!$selectedRows.includes(id)\n\t\t\t) {\n\t\t\t\tapi.exec(\"select-row\", { id, toggle, range });\n\t\t\t}\n\t\t},\n\t\t\"toggle-row\": id => {\n\t\t\tconst row = api.getRow(id);\n\t\t\tapi.exec(row.open !== false ? \"close-row\" : \"open-row\", { id });\n\t\t},\n\t\t\"ignore-click\": () => {\n\t\t\treturn false;\n\t\t},\n\t};\n\n\tconst dragScrollConfig = $derived({\n\t\ttop: headerHeight,\n\t\tbottom: footerHeight,\n\t\tleft: leftColumns.width,\n\t\txScroll: hasHScroll,\n\t\tyScroll: hasVScroll,\n\t\tsense:\n\t\t\tautoRowHeight && dragNode\n\t\t\t\t? dragNode.offsetHeight\n\t\t\t\t: Math.max($_sizes.rowHeight, 40),\n\t\tnode: tableNode && tableNode.firstElementChild,\n\t});\n\n\tfunction startDrag(ev, context) {\n\t\tconst { container, sourceNode, from } = context;\n\t\tconst hasDraggable = checkDraggable();\n\n\t\tif (hasDraggable && !sourceNode.getAttribute(\"draggable-data\"))\n\t\t\treturn false;\n\n\t\tdragItem = from;\n\n\t\tif ($tree && api.getRow(dragItem).open)\n\t\t\tapi.exec(\"close-row\", { id: dragItem, nested: true });\n\n\t\t// default to drag source (target may be shifted by this moment)\n\t\tconst itemNode = locate(sourceNode);\n\t\tdragNode = itemNode.cloneNode(true);\n\t\tdragNode.classList.remove(\"wx-selected\");\n\t\tdragNode\n\t\t\t.querySelectorAll(\"[tabindex]\")\n\t\t\t.forEach(element => element.setAttribute(\"tabindex\", \"-1\"));\n\t\tcontainer.appendChild(dragNode);\n\n\t\tconst offsetX = scrollLeft - renderColumns.d;\n\t\tconst vScrollSize = hasVScroll ? SCROLLSIZE : 0;\n\n\t\tcontainer.style.width =\n\t\t\tMath.min(\n\t\t\t\tclientWidth - vScrollSize,\n\t\t\t\thasAny && fullWidth <= clientWidth\n\t\t\t\t\t? contentWidth\n\t\t\t\t\t: contentWidth - vScrollSize\n\t\t\t) +\n\t\t\toffsetX +\n\t\t\t\"px\";\n\n\t\tconst itemPos = getOffset(itemNode);\n\t\tcontext.offset = {\n\t\t\tx: offsetX,\n\t\t\ty: -Math.round(itemPos.height / 2),\n\t\t};\n\n\t\tif (!movementY) movementY = ev.clientY;\n\t}\n\n\tfunction moveDrag(ev, context) {\n\t\tconst { from } = context;\n\t\tconst pos = context.pos;\n\t\tconst box = getOffset(tableNode);\n\n\t\tpos.x = box.x;\n\n\t\tconst min = dragScrollConfig.top;\n\t\tif (pos.y < min) pos.y = min;\n\t\telse {\n\t\t\tconst max =\n\t\t\t\tbox.height -\n\t\t\t\t(hasHScroll && SCROLLSIZE > 0\n\t\t\t\t\t? SCROLLSIZE\n\t\t\t\t\t: Math.round(dragScrollConfig.sense / 2)) -\n\t\t\t\tdragScrollConfig.bottom;\n\t\t\tif (pos.y > max) pos.y = max;\n\t\t}\n\n\t\tif (tableNode.contains(context.targetNode)) {\n\t\t\tconst targetRow = locate(context.targetNode);\n\t\t\tconst to = targetRow && getID(targetRow);\n\n\t\t\tif (to && to !== from) {\n\t\t\t\tcontext.to = to;\n\n\t\t\t\tconst rowHeight = autoRowHeight\n\t\t\t\t\t? dragNode?.offsetHeight\n\t\t\t\t\t: $_sizes.rowHeight;\n\n\t\t\t\tif (scrollTop === 0 || pos.y > min + rowHeight - 1) {\n\t\t\t\t\tconst targetRect = targetRow.getBoundingClientRect();\n\t\t\t\t\tconst dragNodeOffset = getOffset(dragNode);\n\n\t\t\t\t\tconst dragNodePos = dragNodeOffset.y;\n\t\t\t\t\tconst targetNodePos = targetRect.y;\n\n\t\t\t\t\tconst dir = dragNodePos > targetNodePos ? -1 : 1;\n\t\t\t\t\tconst initialMode = dir === 1 ? \"after\" : \"before\";\n\t\t\t\t\tconst diff = Math.abs(\n\t\t\t\t\t\tapi.getRowIndex(from) - api.getRowIndex(to)\n\t\t\t\t\t);\n\n\t\t\t\t\tconst mode =\n\t\t\t\t\t\tdiff !== 1\n\t\t\t\t\t\t\t? initialMode === \"before\"\n\t\t\t\t\t\t\t\t? \"after\"\n\t\t\t\t\t\t\t\t: \"before\"\n\t\t\t\t\t\t\t: initialMode;\n\n\t\t\t\t\tif (diff === 1) {\n\t\t\t\t\t\t// prevent moving items near borders\n\t\t\t\t\t\tif (dir === -1 && ev.clientY > movementY) return;\n\t\t\t\t\t\tif (dir === 1 && ev.clientY < movementY) return;\n\t\t\t\t\t}\n\n\t\t\t\t\tmovementY = ev.clientY;\n\n\t\t\t\t\tapi.exec(\"move-item\", {\n\t\t\t\t\t\tid: from,\n\t\t\t\t\t\ttarget: to,\n\t\t\t\t\t\tmode,\n\t\t\t\t\t\tinProgress: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonreorder && onreorder({ event: ev, context });\n\t\t}\n\n\t\ttryAutoScroll(ev, box, context, dragScrollConfig);\n\t}\n\n\tfunction endDrag(ev, context) {\n\t\tconst { from, to } = context;\n\n\t\tapi.exec(\"move-item\", {\n\t\t\tid: from,\n\t\t\ttarget: to,\n\t\t\tinProgress: false,\n\t\t});\n\n\t\t// block potential clicks after mouseup\n\t\tpostDrag = setTimeout(() => {\n\t\t\tpostDrag = 0;\n\t\t}, 1);\n\n\t\tdragItem = dragNode = movementY = null;\n\t\tresetAutoScroll(context);\n\t}\n\n\t// for header and footer (e.g. type): include visible spans\n\tfunction getHeaderPosition(start, deltaLeft, type) {\n\t\tlet delta = deltaLeft;\n\t\tlet index = start;\n\n\t\tif (centerColumns.length) {\n\t\t\tlet spanStartInd = centerColumns.length; // max value to compare with\n\t\t\t// find min index of the column which colspan is visible\n\t\t\tfor (let i = start; i >= 0; i--) {\n\t\t\t\tconst colHeader = centerColumns[i][type];\n\t\t\t\tcolHeader.forEach(h => {\n\t\t\t\t\tif (\n\t\t\t\t\t\th.colspan > 1 &&\n\t\t\t\t\t\ti > start - h.colspan &&\n\t\t\t\t\t\ti < spanStartInd\n\t\t\t\t\t) {\n\t\t\t\t\t\tspanStartInd = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (spanStartInd !== centerColumns.length && spanStartInd < start) {\n\t\t\t\tfor (let i = spanStartInd; i < start; i++) {\n\t\t\t\t\tdelta -= centerColumns[i].width;\n\t\t\t\t}\n\t\t\t\tindex = spanStartInd;\n\t\t\t}\n\t\t}\n\n\t\treturn { index, delta };\n\t}\n\n\tfunction getScrollSize() {\n\t\tconst div = document.createElement(\"div\");\n\t\tdiv.style.cssText =\n\t\t\t\"position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;min-height:100px;overflow-y:scroll;\";\n\t\tdocument.body.appendChild(div);\n\t\tconst width = div.offsetWidth - div.clientWidth;\n\t\tdocument.body.removeChild(div);\n\t\treturn width;\n\t}\n\n\tconst style = $derived(globalWidth > 0 ? `width:${globalWidth}px;` : \"\");\n\n\tlet dataEl;\n\tlet rowHeights = [];\n\tlet renderedHeight = $state(0);\n\tfunction adjustHeight() {\n\t\t// make sure the UI is updated before syncing the state\n\t\ttick().then(() => {\n\t\t\tlet rh = 0;\n\t\t\tlet re = renderStart;\n\t\t\tArray.from(dataEl.children).forEach((row, i) => {\n\t\t\t\trowHeights[renderStart + i] = row.offsetHeight;\n\t\t\t\trh += row.offsetHeight;\n\t\t\t\tre++;\n\t\t\t});\n\n\t\t\trenderedHeight = rh;\n\t\t\trenderEnd = re;\n\t\t});\n\t}\n\n\t$effect(() => dataRows && autoRowHeight && adjustHeight());\n\n\t/* focus is a focusable cell which either belongs to visible selection \n\t   or is the first visible cell in grid, which maybe scrolled up due to EXTRAROWS \n\t   If select is false, focusCell can be outside selection*/\n\tlet focus = $state();\n\n\t$effect(() => {\n\t\tif (\n\t\t\t$focusCell &&\n\t\t\t(!$select ||\n\t\t\t\t!visibleSelection.length ||\n\t\t\t\tvisibleSelection.includes($focusCell.row))\n\t\t)\n\t\t\tfocus = { ...$focusCell };\n\t\telse if (dataRows.length && renderColumns.data.length) {\n\t\t\tif (\n\t\t\t\t!focus ||\n\t\t\t\t(visibleSelection.length &&\n\t\t\t\t\t!visibleSelection.includes(focus.row)) ||\n\t\t\t\tdataRows.findIndex(r => r.id === focus.row) === -1 ||\n\t\t\t\trenderColumns.data.findIndex(\n\t\t\t\t\tc => c.id === focus.column && !c.collapsed\n\t\t\t\t) === -1\n\t\t\t) {\n\t\t\t\tconst row = visibleSelection[0] || dataRows[0].id;\n\t\t\t\tconst cind = renderColumns.data.findIndex(c => !c.collapsed);\n\t\t\t\tif (cind !== -1)\n\t\t\t\t\tfocus = { row, column: renderColumns.data[cind].id };\n\t\t\t\telse focus = null;\n\t\t\t}\n\t\t} else focus = null;\n\t});\n</script>\n\n<div\n\tclass={`wx-grid ${responsiveLevel ? `wx-responsive-${responsiveLevel}` : \"\"}`}\n\tstyle=\"--header-height:{headerHeight}px; --footer-height:{footerHeight}px;--split-left-width:{leftColumns.width}px;\n\t\t--split-right-width:{rightColumns.width}px;\"\n>\n\t<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<div\n\t\tbind:this={tableNode}\n\t\tclass=\"wx-table-box\"\n\t\tuse:onresize={resize}\n\t\tuse:drag={{\n\t\t\tstart: startDrag,\n\t\t\tmove: moveDrag,\n\t\t\tend: endDrag,\n\t\t\tgetReorder: () => $reorder,\n\t\t\tgetDraggableInfo: () => ({ hasDraggable: checkDraggable() }),\n\t\t}}\n\t\tuse:hotkeys={{\n\t\t\tkeys: hotkeysConfig !== false && {\n\t\t\t\t...defaultHotkeys,\n\t\t\t\t\"ctrl+z\": $undo,\n\t\t\t\t\"ctrl+y\": $undo,\n\t\t\t\t...hotkeysConfig,\n\t\t\t},\n\t\t\texec: v => api.exec(\"hotkey\", v),\n\t\t}}\n\t\t{style}\n\t\trole={$tree ? \"treegrid\" : \"grid\"}\n\t\taria-colcount={renderColumns.data.length}\n\t\taria-rowcount={dataRows.length}\n\t\taria-multiselectable={$tree && multiselect ? true : undefined}\n\t>\n\t\t<div\n\t\t\tclass=\"wx-scroll\"\n\t\t\tstyle=\"overflow-x:{hasHScroll\n\t\t\t\t? 'scroll'\n\t\t\t\t: 'hidden'};overflow-y:{hasVScroll ? 'scroll' : 'hidden'};\"\n\t\t\tonscroll={onScroll}\n\t\t\tuse:scrollTo={{\n\t\t\t\tscroll,\n\t\t\t\tgetWidth: () => clientWidth - (hasVScroll ? SCROLLSIZE : 0),\n\t\t\t\tgetHeight: () => visibleRowsHeight,\n\t\t\t\tgetScrollMargin: () => leftColumns.width + rightColumns.width,\n\t\t\t}}\n\t\t>\n\t\t\t{#if header}\n\t\t\t\t<div class=\"wx-header-wrapper\">\n\t\t\t\t\t<HeaderFooter\n\t\t\t\t\t\t{contentWidth}\n\t\t\t\t\t\tdeltaLeft={renderColumns.dh}\n\t\t\t\t\t\tcolumns={renderColumns.header}\n\t\t\t\t\t\t{columnStyle}\n\t\t\t\t\t\tbodyHeight={visibleRowsHeight - +footer}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t\t<div\n\t\t\t\tclass=\"wx-body\"\n\t\t\t\tstyle=\"width:{contentWidth}px;height:{fullHeight}px;\"\n\t\t\t\tonmousedown={ev => lockSelection(ev)}\n\t\t\t\tuse:clickOutside={() =>\n\t\t\t\t\t$focusCell &&\n\t\t\t\t\tapi.exec(\"focus-cell\", { eventSource: \"click\" })}\n\t\t\t\tuse:delegateClick={bodyClickHandlers}\n\t\t\t>\n\t\t\t\t{#if overlay}\n\t\t\t\t\t<Overlay {overlay} />\n\t\t\t\t{/if}\n\t\t\t\t<div\n\t\t\t\t\tbind:this={dataEl}\n\t\t\t\t\tclass=\"wx-data\"\n\t\t\t\t\tstyle=\"padding-top:{renderRows.d}px;padding-left:{renderColumns.d}px;\"\n\t\t\t\t>\n\t\t\t\t\t{#each dataRows as row, rIndex (row.id)}\n\t\t\t\t\t\t{@const isSelected =\n\t\t\t\t\t\t\t$selectedRows.indexOf(row.id) !== -1}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass:wx-autoheight={autoRowHeight}\n\t\t\t\t\t\t\tclass={\"wx-row\" +\n\t\t\t\t\t\t\t\t(rowStyle ? \" \" + rowStyle(row) : \"\")}\n\t\t\t\t\t\t\tdata-id={setID(row.id)}\n\t\t\t\t\t\t\tdata-context-id={setID(row.id)}\n\t\t\t\t\t\t\tclass:wx-selected={isSelected}\n\t\t\t\t\t\t\tclass:wx-inactive={dragItem === row.id}\n\t\t\t\t\t\t\tstyle={`${autoRowHeight ? \"min-height\" : \"height\"}:${row.rowHeight || defaultRowHeight}px;`}\n\t\t\t\t\t\t\trole=\"row\"\n\t\t\t\t\t\t\taria-rowindex={rIndex}\n\t\t\t\t\t\t\taria-expanded={row.open}\n\t\t\t\t\t\t\taria-level={$tree ? row.$level + 1 : undefined}\n\t\t\t\t\t\t\taria-selected={$tree ? isSelected : undefined}\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{#each renderColumns.data as column (column.id)}\n\t\t\t\t\t\t\t\t{#if column.collapsed}\n\t\t\t\t\t\t\t\t\t<div class=\"wx-cell wx-collapsed\"></div>\n\t\t\t\t\t\t\t\t{:else if $editor?.id === row.id && $editor.column === column.id}\n\t\t\t\t\t\t\t\t\t<Editor {row} {column} />\n\t\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t\t<Cell\n\t\t\t\t\t\t\t\t\t\t{row}\n\t\t\t\t\t\t\t\t\t\t{column}\n\t\t\t\t\t\t\t\t\t\t{columnStyle}\n\t\t\t\t\t\t\t\t\t\t{cellStyle}\n\t\t\t\t\t\t\t\t\t\t{reorder}\n\t\t\t\t\t\t\t\t\t\tfocusable={focus?.row === row.id &&\n\t\t\t\t\t\t\t\t\t\t\tfocus?.column === column.id}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t{/each}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{#if footer && $data.length}\n\t\t\t\t<HeaderFooter\n\t\t\t\t\ttype={\"footer\"}\n\t\t\t\t\t{contentWidth}\n\t\t\t\t\tdeltaLeft={renderColumns.df}\n\t\t\t\t\tcolumns={renderColumns.footer}\n\t\t\t\t\t{columnStyle}\n\t\t\t\t/>\n\t\t\t{/if}\n\t\t</div>\n\t</div>\n</div>\n{#if $_print}\n\t<Print\n\t\tconfig={$_print}\n\t\t{rowStyle}\n\t\t{columnStyle}\n\t\t{cellStyle}\n\t\t{header}\n\t\t{footer}\n\t\t{reorder}\n\t/>\n{/if}\n\n<style>\n\t.wx-grid {\n\t\theight: 100%;\n\t}\n\n\t.wx-table-box {\n\t\toutline: none;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tborder: var(--wx-table-cell-border);\n\t\toverflow: hidden;\n\t\tbox-sizing: content-box;\n\t}\n\n\t.wx-header-wrapper {\n\t\tposition: sticky;\n\t\tz-index: 3;\n\t\ttop: 0px;\n\t}\n\n\t.wx-body {\n\t\tposition: relative;\n\t}\n\n\t.wx-data {\n\t\tposition: relative;\n\t}\n\n\t.wx-scroll {\n\t\tposition: relative;\n\t\tflex: 1;\n\t\tscroll-padding-top: var(--header-height);\n\t\tscroll-padding-bottom: var(--footer-height);\n\t}\n\n\t.wx-row {\n\t\tdisplay: flex;\n\t\tbox-sizing: border-box;\n\t\tbackground-color: var(--wx-background);\n\t}\n\n\t.wx-row:not(:last-child) {\n\t\tborder-bottom: var(--wx-table-cell-border);\n\t}\n\n\t.wx-row.wx-autoheight :global(.wx-cell) {\n\t\toverflow: visible;\n\t\ttext-overflow: initial;\n\t\twhite-space: normal;\n\t\tword-break: break-all;\n\t}\n\n\t.wx-row.wx-autoheight {\n\t\theight: max-content;\n\t}\n\n\t.wx-selected {\n\t\tcolor: var(--wx-table-select-color);\n\t\tbackground-color: var(--wx-table-select-background);\n\t}\n\n\t.wx-selected :global(.wx-cell:first-child) {\n\t\tbox-shadow: var(--wx-table-select-border);\n\t}\n\n\t.wx-inactive {\n\t\tcolor: var(--wx-table-drag-over-background);\n\t\tbackground-color: var(--wx-table-drag-over-background);\n\t\t--wx-table-select-border: none;\n\t}\n\n\t:global(.wx-drag-zone) {\n\t\tz-index: 10;\n\t\tposition: absolute;\n\t\tpointer-events: none;\n\t\toverflow: hidden;\n\t\tbox-shadow: var(--wx-table-drag-zone-shadow);\n\t}\n\n\t.wx-cell.wx-collapsed {\n\t\twidth: 36px;\n\t\tborder-right: var(--wx-table-cell-border);\n\t}\n</style>\n","<script>\n\t// svelte core\n\timport { getContext, setContext } from \"svelte\";\n\timport { writable } from \"svelte/store\";\n\n\t// core widgets lib\n\timport { Locale } from \"@svar-ui/svelte-core\";\n\timport { en } from \"@svar-ui/grid-locales\";\n\n\t// stores\n\timport { EventBusRouter } from \"@svar-ui/lib-state\";\n\timport { DataStore } from \"@svar-ui/grid-store\";\n\n\t// ui\n\timport Layout from \"./Layout.svelte\";\n\n\tlet {\n\t\tdata = [],\n\t\tcolumns = [],\n\t\trowStyle = null,\n\t\tcolumnStyle = null,\n\t\tcellStyle = null,\n\t\tselectedRows = [],\n\t\tselect = true,\n\t\tmultiselect = false,\n\t\theader = true,\n\t\tfooter = false,\n\t\tdynamic = null,\n\t\toverlay = null,\n\t\treorder = false,\n\t\tonreorder = null,\n\t\tautoRowHeight = false,\n\t\tsizes = {},\n\t\tsplit = { left: 0 },\n\t\ttree = false,\n\t\tautoConfig = false,\n\t\tinit = null,\n\t\tresponsive = null,\n\t\tsortMarks = {},\n\t\tundo = false,\n\t\thotkeys = null,\n\t\tfilterValues = {},\n\t\t...restProps\n\t} = $props();\n\n\tlet clientWidth = $state(0);\n\tlet clientHeight = $state(0);\n\tlet responsiveLevel = $state(null);\n\tlet responsiveConfig = $state(null);\n\n\t// init stores\n\tconst dataStore = new DataStore(writable);\n\n\t// define event route\n\tlet firstInRoute = dataStore.in;\n\n\tconst dash = /-/g;\n\tlet lastInRoute = new EventBusRouter((a, b) => {\n\t\tconst name = \"on\" + a.replace(dash, \"\");\n\t\tif (restProps[name]) {\n\t\t\trestProps[name](b);\n\t\t}\n\t});\n\tfirstInRoute.setNext(lastInRoute);\n\n\t// public API\n\texport const // state\n\t\tgetState = dataStore.getState.bind(dataStore),\n\t\tgetReactiveState = dataStore.getReactive.bind(dataStore),\n\t\tgetStores = () => ({ data: dataStore }),\n\t\t// events\n\t\texec = firstInRoute.exec,\n\t\tsetNext = ev => (lastInRoute = lastInRoute.setNext(ev)),\n\t\tintercept = firstInRoute.intercept.bind(firstInRoute),\n\t\ton = firstInRoute.on.bind(firstInRoute),\n\t\tdetach = firstInRoute.detach.bind(firstInRoute),\n\t\t// extra api\n\t\tgetRow = id => dataStore.getRow(id),\n\t\tgetColumn = id => dataStore.getColumn(id);\n\n\tconst api = {\n\t\texec,\n\t\tsetNext,\n\t\tintercept,\n\t\ton,\n\t\tdetach,\n\t\tgetRow,\n\t\tgetColumn,\n\t\tgetState,\n\t\tgetReactiveState,\n\t\tgetStores,\n\t};\n\n\t// common API available in components\n\tsetContext(\"grid-store\", {\n\t\tgetState: dataStore.getState.bind(dataStore),\n\t\tgetReactiveState: dataStore.getReactive.bind(dataStore),\n\t\texec: firstInRoute.exec.bind(firstInRoute),\n\t\tgetRow: dataStore.getRow.bind(dataStore),\n\t\tgetRowIndex: dataStore.getRowIndex.bind(dataStore),\n\t});\n\t// auto config columns\n\tconst finalColumns = $derived.by(() => {\n\t\tif (autoConfig && !columns.length && data.length) {\n\t\t\tconst test = data[0];\n\t\t\tconst autoCols = [];\n\n\t\t\tfor (let key in test) {\n\t\t\t\tif (key !== \"id\" && key[0] !== \"$\") {\n\t\t\t\t\tlet col = {\n\t\t\t\t\t\tid: key,\n\t\t\t\t\t\theader: key[0].toUpperCase() + key.slice(1),\n\t\t\t\t\t};\n\n\t\t\t\t\tif (typeof autoConfig === \"object\") {\n\t\t\t\t\t\tcol = { ...col, ...autoConfig };\n\t\t\t\t\t}\n\t\t\t\t\tautoCols.push(col);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn autoCols;\n\t\t}\n\n\t\treturn responsiveConfig?.columns ?? columns;\n\t});\n\n\tconst finalSizes = $derived(responsiveConfig?.sizes ?? sizes);\n\n\tfunction resize(rect) {\n\t\tclientWidth = rect.width;\n\t\tclientHeight = rect.height;\n\n\t\tif (responsive) {\n\t\t\tconst levels = Object.keys(responsive)\n\t\t\t\t.map(Number)\n\t\t\t\t.sort((a, b) => a - b);\n\n\t\t\tconst newLevel = levels.find(level => clientWidth <= level) ?? null;\n\n\t\t\tif (newLevel !== responsiveLevel) {\n\t\t\t\tresponsiveConfig = responsive[newLevel];\n\t\t\t\tresponsiveLevel = newLevel;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet _skin = $derived(getContext(\"wx-theme\"));\n\tlet init_once = true;\n\n\tconst reinitStore = () => {\n\t\tdataStore.init({\n\t\t\tdata,\n\t\t\tcolumns: finalColumns,\n\t\t\tsplit,\n\t\t\tsizes: finalSizes,\n\t\t\tselectedRows,\n\t\t\tdynamic,\n\t\t\ttree,\n\t\t\tsortMarks,\n\t\t\tfilterValues,\n\t\t\tselect,\n\t\t\tundo,\n\t\t\treorder,\n\t\t\t_skin,\n\t\t});\n\n\t\tif (init_once && init) {\n\t\t\tinit(api);\n\t\t\tinit_once = false;\n\t\t}\n\t};\n\n\treinitStore();\n\t$effect(reinitStore);\n</script>\n\n<Locale words={en} optional={true}>\n\t<Layout\n\t\t{header}\n\t\t{footer}\n\t\t{overlay}\n\t\t{rowStyle}\n\t\t{columnStyle}\n\t\t{cellStyle}\n\t\t{onreorder}\n\t\t{multiselect}\n\t\t{autoRowHeight}\n\t\t{clientWidth}\n\t\t{clientHeight}\n\t\t{responsiveLevel}\n\t\t{resize}\n\t\t{hotkeys}\n\t/>\n</Locale>\n","<script>\n\tlet { item } = $props();\n</script>\n\n<div\n\ttabindex=\"-1\"\n\trole=\"menuitem\"\n\taria-label={item.hidden\n\t\t? `Show ${item.text} column`\n\t\t: `Hide ${item.text} column`}\n>\n\t<div class=\"wx-icon\" class:wx-hidden={!!item.hidden}>\n\t\t<i class=\"wxi-eye\"></i>\n\t</div>\n\t<span>{item.text}</span>\n</div>\n\n<style>\n\t.wx-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-right: 4px;\n\t}\n\n\t.wx-hidden {\n\t\tcolor: var(--wx-color-font-disabled);\n\t}\n</style>\n","<script>\n\timport { getRenderValue } from \"@svar-ui/grid-store\";\n\timport { getID } from \"@svar-ui/lib-dom\";\n\n\tlet { content: Content = null, api, children } = $props();\n\n\tlet area;\n\tlet tooltipNode = $state();\n\tlet areaCoords = $state();\n\tlet tooltipData = $state();\n\tlet pos = $state();\n\n\tfunction findAttribute(node) {\n\t\twhile (node) {\n\t\t\tif (node.getAttribute) {\n\t\t\t\tconst id = getID(node, \"data-row-id\");\n\t\t\t\tconst colId = getID(node, \"data-col-id\");\n\t\t\t\tif (id && api && colId) {\n\t\t\t\t\tconst col = api.getColumn(colId);\n\t\t\t\t\treturn { id, col, target: node };\n\t\t\t\t}\n\t\t\t}\n\t\t\tnode = node.parentNode;\n\t\t}\n\t\treturn { id: null, col: null, target: null };\n\t}\n\n\t$effect(() => {\n\t\tif (tooltipNode) {\n\t\t\tlet tooltipCoords = tooltipNode.getBoundingClientRect();\n\t\t\tif (tooltipCoords.right >= areaCoords.right) {\n\t\t\t\tpos.left = areaCoords.width - tooltipCoords.width - 5;\n\t\t\t}\n\t\t\tif (tooltipCoords.bottom >= areaCoords.bottom) {\n\t\t\t\tpos.top -= tooltipCoords.bottom - areaCoords.bottom + 2;\n\t\t\t}\n\t\t}\n\t});\n\n\tlet timer;\n\tconst TIMEOUT = 300;\n\tconst debounce = code => {\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => {\n\t\t\tcode();\n\t\t}, TIMEOUT);\n\t};\n\tfunction move(e) {\n\t\tlet { id, target, col } = findAttribute(e.target);\n\t\tpos = null;\n\t\tif (!id) {\n\t\t\tclearTimeout(timer);\n\t\t\treturn;\n\t\t}\n\t\tdebounce(() => {\n\t\t\tlet text = \"\";\n\t\t\tif (id) {\n\t\t\t\ttooltipData = getTooltipData(id);\n\t\t\t\ttext = getTooltipText(col);\n\t\t\t}\n\t\t\tlet targetCoords = target.getBoundingClientRect();\n\t\t\tareaCoords = area.getBoundingClientRect();\n\t\t\tconst top = targetCoords.top + targetCoords.height - areaCoords.top;\n\t\t\tconst left = e.clientX - areaCoords.left;\n\t\t\tpos = { top, left, col, text };\n\t\t});\n\t}\n\n\tfunction getTooltipData(id) {\n\t\treturn api.getRow(id);\n\t}\n\n\tfunction getTooltipText(col) {\n\t\tif (typeof col.tooltip === \"function\") return col.tooltip(tooltipData);\n\t\treturn getRenderValue(tooltipData, col) || \"\";\n\t}\n</script>\n\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-area\" bind:this={area} onmousemove={move}>\n\t{#if pos && pos.col.tooltip !== false && (Content || pos.text)}\n\t\t<!-- svelte-ignore a11y_no_noninteractive_tabindex -->\n\t\t<div\n\t\t\tclass=\"tooltip\"\n\t\t\trole=\"alert\"\n\t\t\ttabindex=\"0\"\n\t\t\tbind:this={tooltipNode}\n\t\t\tstyle=\"top:{pos.top}px;left:{pos.left}px\"\n\t\t>\n\t\t\t{#if Content}\n\t\t\t\t<Content data={tooltipData} />\n\t\t\t{:else}{pos.text}{/if}\n\t\t</div>\n\t{/if}\n\t{@render children()}\n</div>\n\n<style>\n\t.wx-area {\n\t\tposition: relative;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\t:global(.tooltip) {\n\t\tpadding: 2px 10px;\n\t\tborder-radius: 2px;\n\t\tbox-shadow: var(--wx-box-shadow);\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tz-index: 10;\n\t\tfont-size: var(--wx-font-size-sm);\n\t\tfont-family: var(--wx-font-family);\n\t\tcolor: var(--wx-color-primary-font);\n\t\tbackground-color: #1a1e21;\n\t}\n</style>\n","const handlers = {};\nexport function getItemHandler(type) {\n\treturn handlers[type] || type;\n}\nexport function registerToolbarItem(type, handler) {\n\thandlers[type] = handler;\n}\n","<script>\n\timport { setID } from \"@svar-ui/lib-dom\";\n\timport { getItemHandler } from \"../helpers\";\n\timport Separator from \"../buttons/Separator.svelte\";\n\timport Spacer from \"../buttons/Spacer.svelte\";\n\n\tlet { item = {}, menu = false, values, onclick, onchange } = $props();\n\n\tlet itemComponent = $derived(getItemHandler(item.comp || \"label\"));\n\n\tfunction onClick() {\n\t\tif (item.handler) item.handler(item);\n\t\tonclick && onclick({ item });\n\t}\n\n\tlet value = $derived(item.key ? values[item.key] : undefined);\n\tfunction detectChange({ value }) {\n\t\tif (item.handler) item.handler(item, value);\n\t\tonchange && onchange({ value, item });\n\t}\n\n\tconst text = $derived(menu ? item.menuText || item.text : item.text);\n</script>\n\n{#if item.comp == \"spacer\"}\n\t<Spacer />\n{:else if item.comp == \"separator\"}\n\t<Separator {menu} />\n{:else}\n\t{@const SvelteComponent = itemComponent}\n\t<div\n\t\tclass=\"wx-tb-element {item.css || ''}\"\n\t\tclass:wx-spacer={item.spacer}\n\t\tclass:wx-menu={menu}\n\t\tdata-id={setID(item.id)}\n\t>\n\t\t<SvelteComponent\n\t\t\t{value}\n\t\t\tonchange={detectChange}\n\t\t\tonclick={onClick}\n\t\t\t{menu}\n\t\t\t{...item}\n\t\t\t{text}\n\t\t/>\n\t</div>\n{/if}\n\n<style>\n\t.wx-spacer {\n\t\tflex: 1;\n\t}\n\t.wx-tb-element {\n\t\tpadding: 4px;\n\t\tflex-shrink: 0;\n\t\talign-self: center;\n\t\tdisplay: flex;\n\t}\n\t.wx-menu.wx-tb-element {\n\t\theight: 36px;\n\t\tline-height: 36px;\n\t\tpadding: 2px 8px;\n\t\tbackground-color: var(--wx-background);\n\t}\n\n\t.wx-menu :global(button) {\n\t\twidth: 100%;\n\t\tbackground: transparent;\n\t\ttext-align: left;\n\t\tpadding-left: 0;\n\t\tfont-weight: var(--wx-font-weight);\n\t\tfont-size: var(--wx-font-size);\n\t}\n\t.wx-menu :global(.wx-tb-element) {\n\t\talign-self: stretch;\n\t}\n\t.wx-menu.wx-tb-element :global(button:hover) {\n\t\tbackground: var(--wx-background-alt);\n\t}\n\t.wx-menu :global(button i) {\n\t\tmargin-right: 4px;\n\t\tfont-size: var(--wx-icon-size);\n\t}\n\t.wx-menu.wx-tb-element:hover {\n\t\tbackground: var(--wx-background-alt);\n\t}\n</style>\n","<script>\n\timport Group from \"./Group.svelte\";\n\n\timport BarComponent from \"./BarComponent.svelte\";\n\timport { Dropdown } from \"@svar-ui/svelte-core\";\n\n\tlet { item, values = null, menu = false, onchange, onclick } = $props();\n\n\tlet collapsedState = $state(true);\n\n\tconst onClick = ev => {\n\t\toncancel();\n\t\tonclick && onclick(ev);\n\t};\n\n\tconst show = () => (collapsedState = false);\n\tconst oncancel = () => (collapsedState = true);\n</script>\n\n<div\n\tclass=\"wx-tb-group {item.css || ''}\"\n\tclass:wx-column={item.layout == \"column\"}\n\tclass:wx-group-collapsed={item.collapsed && !menu}\n>\n\t{#if item.collapsed && !menu}\n\t\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t\t<div class=\"wx-collapsed\" onclick={show}>\n\t\t\t{#if item.icon}<i class=\"icon {item.icon}\"></i>{/if}\n\t\t\t{#if item.text}\n\t\t\t\t<div class=\"wx-label-text\">{item.text}</div>\n\t\t\t{/if}\n\t\t\t{#if item.text && !item.icon}\n\t\t\t\t<i class=\"wx-label-arrow wxi-angle-down\"></i>\n\t\t\t{/if}\n\t\t</div>\n\t\t{#if !collapsedState}\n\t\t\t<Dropdown width=\"\" {oncancel}>\n\t\t\t\t<div class=\"wx-drop-group\">\n\t\t\t\t\t<Group\n\t\t\t\t\t\titem={{ ...item, text: \"\", collapsed: false }}\n\t\t\t\t\t\t{values}\n\t\t\t\t\t\t{menu}\n\t\t\t\t\t\t{onchange}\n\t\t\t\t\t\tonclick={onClick}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Dropdown>\n\t\t{/if}\n\t{:else}\n\t\t<div class=\"wx-tb-body\">\n\t\t\t{#each item.items as sub}\n\t\t\t\t{#if sub.items}\n\t\t\t\t\t<Group item={sub} {values} onclick={onClick} {onchange} />\n\t\t\t\t{:else}\n\t\t\t\t\t<BarComponent\n\t\t\t\t\t\titem={sub}\n\t\t\t\t\t\t{values}\n\t\t\t\t\t\tonclick={onClick}\n\t\t\t\t\t\t{onchange}\n\t\t\t\t\t/>\n\t\t\t\t{/if}\n\t\t\t{/each}\n\t\t</div>\n\t\t{#if item.text}\n\t\t\t<div class=\"wx-label\">{item.text}</div>\n\t\t{/if}\n\t{/if}\n</div>\n\n<style>\n\t.wx-tb-group {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-flow: column;\n\t}\n\t.wx-group-collapsed {\n\t\tflex-flow: row;\n\t}\n\t.wx-collapsed {\n\t\tdisplay: flex;\n\t\tpadding: 10px;\n\t\tflex-flow: row;\n\t\tcursor: pointer;\n\t}\n\t.wx-group-collapsed .wx-collapsed {\n\t\talign-items: center;\n\t}\n\n\t.wx-label {\n\t\tfont-weight: var(--wx-label-font-weight);\n\t\tfont-size: var(--wx-font-size-sm);\n\t\tcolor: var(--wx-color-font);\n\t\ttext-align: center;\n\t\tdisplay: flex;\n\t\tpadding: 4px 2px 4px 12px;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\t.wx-tb-group :global(.wx-dropdown) {\n\t\toverflow: inherit;\n\t}\n\t.wx-column {\n\t\talign-items: stretch;\n\t}\n\t.wx-column :global(.wx-tb-element) {\n\t\talign-self: stretch;\n\t}\n\t.wx-tb-body {\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t}\n\t.wx-column > .wx-tb-body {\n\t\tflex-flow: column;\n\t}\n</style>\n","<script>\n\timport BarComponent from \"./BarComponent.svelte\";\n\timport Group from \"./Group.svelte\";\n\timport { Dropdown, Button } from \"@svar-ui/svelte-core\";\n\n\tlet { items = [], css, values, width, onclick, onchange } = $props();\n\n\tlet popup = $state();\n\tlet div = $state();\n\n\tfunction oncancel() {\n\t\tpopup = null;\n\t}\n\tfunction showMenu() {\n\t\tpopup = true;\n\t}\n\tfunction menuClick(ev) {\n\t\toncancel();\n\t\tonclick && onclick(ev);\n\t}\n</script>\n\n<div class=\"wx-menu {css || ''}\" bind:this={div} data-id=\"$menu\">\n\t<Button icon=\"wxi-dots-h\" onclick={showMenu} />\n\t{#if popup}\n\t\t<Dropdown width=\"{width}px\" {oncancel}>\n\t\t\t<div class=\"wx-drop-menu\">\n\t\t\t\t{#each items as item}\n\t\t\t\t\t{#if item.items}\n\t\t\t\t\t\t<Group\n\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t{values}\n\t\t\t\t\t\t\tmenu={true}\n\t\t\t\t\t\t\tonclick={menuClick}\n\t\t\t\t\t\t\t{onchange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t<BarComponent\n\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t{values}\n\t\t\t\t\t\t\tmenu={true}\n\t\t\t\t\t\t\tonclick={menuClick}\n\t\t\t\t\t\t\t{onchange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t{/if}\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t</Dropdown>\n\t{/if}\n</div>\n\n<style>\n\t.wx-menu {\n\t\tposition: absolute;\n\t\toverflow: visible;\n\t\tpadding: 4px;\n\t\tright: 4px;\n\t}\n\n\t.wx-menu :global(.wx-dropdown) {\n\t\toverflow: visible;\n\t}\n\t.wx-drop-menu {\n\t\tpadding: 4px;\n\t}\n</style>\n","<script>\n\tlet { id = \"\", text = \"\", css = \"\", icon = \"\", onclick } = $props();\n\n\tfunction handleClick() {\n\t\tonclick && onclick({ id });\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-label {css}\" onclick={handleClick}>\n\t{#if icon}\n\t\t<i class={icon}></i>\n\t{/if}\n\t{text}\n</div>\n\n<style>\n\t.wx-label {\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--wx-input-font-color);\n\t\tpadding: var(--wx-input-padding);\n\t\toverflow: hidden;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\ti {\n\t\tmargin-right: 8px;\n\t\tfont-size: var(--wx-icon-size);\n\t}\n\n\t.wx-label:hover {\n\t\tbackground-image: linear-gradient(\n\t\t\trgba(0, 0, 0, 0.1) 0%,\n\t\t\trgba(0, 0, 0, 0.1) 100%\n\t\t);\n\t}\n</style>\n","import Toolbar from \"./components/Toolbar.svelte\";\nimport { registerToolbarItem } from \"./helpers.js\";\n\nimport Separator from \"./buttons/Separator.svelte\";\nimport Spacer from \"./buttons/Spacer.svelte\";\nimport Button from \"./buttons/Button.svelte\";\nimport Label from \"./buttons/Label.svelte\";\nimport Icon from \"./buttons/Icon.svelte\";\nimport Item from \"./buttons/Item.svelte\";\n\nregisterToolbarItem(\"button\", Button);\nregisterToolbarItem(\"separator\", Separator);\nregisterToolbarItem(\"spacer\", Spacer);\nregisterToolbarItem(\"label\", Label);\nregisterToolbarItem(\"item\", Item);\nregisterToolbarItem(\"icon\", Icon);\n\nexport { Toolbar, registerToolbarItem };\n","import Grid from \"./components/Grid.svelte\";\nimport HeaderMenu from \"./components/menus/HeaderMenu.svelte\";\nimport Tooltip from \"./components/Tooltip.svelte\";\nimport ContextMenu from \"./components/menus/ContextMenu.svelte\";\nimport Toolbar from \"./components/Toolbar.svelte\";\n\nimport Material from \"./themes/Material.svelte\";\nimport Willow from \"./themes/Willow.svelte\";\nimport WillowDark from \"./themes/WillowDark.svelte\";\n\nexport {\n\tgetEditorConfig,\n\tdefaultMenuOptions,\n\tdefaultToolbarButtons,\n} from \"@svar-ui/grid-store\";\n\nimport { setEnv } from \"@svar-ui/lib-dom\";\nimport { env } from \"@svar-ui/lib-svelte\";\nsetEnv(env);\n\nexport { registerInlineEditor } from \"./components/inlineEditors/editors\";\n\nexport {\n\tGrid,\n\tHeaderMenu,\n\tTooltip,\n\tContextMenu,\n\tToolbar,\n\tMaterial,\n\tWillow,\n\tWillowDark,\n};\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { delegateClick, setID } from \"@svar-ui/lib-dom\";\n\timport { getSelectionOnNavigation } from \"@svar-ui/filemanager-store\";\n\timport Icon from \"./ui/Icon.svelte\";\n\n\tlet { panel } = $props();\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tconst { panels } = api.getReactiveState();\n\tconst files = $derived($panels[panel]._files);\n\tconst crumbs = $derived($panels[panel]._crumbs);\n\n\tfunction click(id) {\n\t\tconst selectedId = getSelectionOnNavigation(id, crumbs);\n\t\tapi.exec(\"set-path\", {\n\t\t\tid,\n\t\t\tpanel,\n\t\t\t...(selectedId && { selected: [selectedId] }),\n\t\t});\n\t}\n\n\tlet loading = $state(null);\n\n\t$effect(() => {\n\t\tif (files) loading = null;\n\t});\n\n\tfunction refresh() {\n\t\tloading = true;\n\t\tapi.exec(\"request-data\", {\n\t\t\tid: crumbs[crumbs.length - 1].id,\n\t\t});\n\t\t//if data was not loaded - stop spinner anyway\n\t\tsetTimeout(() => {\n\t\t\tloading = null;\n\t\t}, 5000);\n\t}\n</script>\n\n<div\n\tclass=\"wx-breadcrumbs\"\n\tuse:delegateClick={{ click }}\n\tdata-menu-ignore=\"true\"\n>\n\t<div class=\"wx-refresh-icon\">\n\t\t<Icon name=\"refresh\" spin={!!loading} onclick={refresh} />\n\t</div>\n\t{#each crumbs as crumb, i}\n\t\t{#if i}\n\t\t\t<Icon name=\"angle-right\" />\n\t\t{/if}\n\t\t<div class=\"wx-item\" data-id={setID(crumb.id)} data-menu-ignore=\"true\">\n\t\t\t{crumb.id == \"/\" ? _(crumb.name) : crumb.name}\n\t\t</div>\n\t{/each}\n</div>\n\n<style>\n\t.wx-breadcrumbs {\n\t\tflex: 0 0 48px;\n\t\tdisplay: flex;\n\t\tjustify-content: flex-start;\n\t\talign-items: center;\n\t\tpadding: 0 4px;\n\t\tmax-width: 100%;\n\t\tborder-radius: 6px 6px 0 0;\n\t\tbackground-color: var(--wx-background);\n\t\tfont-size: 16px;\n\t\toverflow: hidden;\n\t}\n\n\t.wx-refresh-icon {\n\t\tmargin-right: 4px;\n\t}\n\n\t.wx-item {\n\t\tcursor: pointer;\n\t\tfont-size: 16px;\n\t\tfont-weight: 300;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t.wx-item:hover {\n\t\tcolor: var(--wx-color-primary);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\n\tlet { row } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst templates = getContext(\"filemanager-store\").templates;\n\n\tconst icon = templates.icon(row, \"small\");\n</script>\n\n<div class=\"wx-name-cell\">\n\t{#if row.id === \"/wx-filemanager-parent-link\"}\n\t\t<i class=\"wxi-arrow-left\"></i>\n\t\t<span class=\"wx-name\"> {_(\"Back to parent folder\")}</span>\n\t{:else}\n\t\t{#if icon}\n\t\t\t<img class=\"wx-icon\" alt=\"\" src={icon} height=\"24px\" width=\"24px\" />\n\t\t{:else}<i class=\"wxi-{row.type}\"></i>{/if}\n\t\t<span class=\"wx-name\"> {row.name} </span>\n\t{/if}\n</div>\n\n<style>\n\t.wx-name-cell {\n\t\tpadding: 0 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 100%;\n\t\toverflow: hidden;\n\t\tflex-shrink: 0;\n\t\ttext-overflow: clip;\n\t}\n\ti,\n\t.wx-icon {\n\t\tmargin-right: 10px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\ti {\n\t\tfont-size: 24px;\n\t\tcolor: var(--wx-color-primary);\n\t}\n\t.wx-name {\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { apiKey } from \"@svar-ui/svelte-uploader\";\n\timport { locateAttr } from \"@svar-ui/lib-dom\";\n\n\tlet { children } = $props();\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst activePanel = api.getReactiveState().activePanel;\n\n\tconst uploaderApi = getContext(apiKey);\n\n\tconst apiSettings = {\n\t\tselected: () => {\n\t\t\tconst panel = locateAttr(self, \"data-panel\");\n\t\t\tif (panel && panel != $activePanel) {\n\t\t\t\tapi.exec(\"set-active-panel\", {\n\t\t\t\t\tpanel: panel * 1,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdragEnter: () => self.classList.toggle(\"wx-active\"),\n\t\tdragLeave: () => self.classList.toggle(\"wx-active\"),\n\t};\n\n\tlet self = $state();\n</script>\n\n<div\n\tclass=\"wx-upload-area\"\n\tclass:wx-active={false}\n\tbind:this={self}\n\tuse:uploaderApi.droparea={{ ...apiSettings }}\n>\n\t{@render children?.()}\n</div>\n\n<style>\n\t.wx-upload-area {\n\t\theight: 100%;\n\t}\n\t.wx-upload-area.wx-active {\n\t\tbackground: var(--wx-color-primary-selected);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { formatSize } from \"@svar-ui/filemanager-store\";\n\timport { delegateClick, dateToString, setID } from \"@svar-ui/lib-dom\";\n\timport { Grid } from \"@svar-ui/svelte-grid\";\n\n\timport Breadcrumbs from \"../Breadcrumbs.svelte\";\n\timport NameCell from \"./NameCell.svelte\";\n\timport UploadDropArea from \"../UploadDropArea.svelte\";\n\n\tlet { panel, active = false, onclick, oncontextmenu } = $props();\n\n\tconst api = getContext(\"filemanager-store\");\n\n\tconst locale = getContext(\"wx-i18n\");\n\tconst _ = locale.getGroup(\"filemanager\");\n\tconst format = dateToString(\"%d %M %Y\", locale.getRaw().calendar);\n\n\tlet { panels } = api.getReactiveState();\n\n\tconst selection = $derived($panels[panel].selected);\n\tconst path = $derived($panels[panel].path);\n\tconst crumbs = $derived($panels[panel]._crumbs);\n\tconst sorts = $derived($panels[panel]._sorts);\n\tconst selectNavigation = $derived($panels[panel]._selectNavigation);\n\tconst files = $derived($panels[panel]._files);\n\n\tconst columns = [\n\t\t{\n\t\t\tid: \"name\",\n\t\t\theader: _(\"Name\"),\n\t\t\tflexgrow: 3,\n\t\t\tsort: true,\n\t\t\tresize: true,\n\t\t\tcell: NameCell,\n\t\t},\n\t\t{\n\t\t\tid: \"size\",\n\t\t\theader: _(\"Size\"),\n\t\t\twidth: 100,\n\t\t\tsort: true,\n\t\t\tresize: true,\n\t\t\ttemplate: v => (typeof v === \"number\" ? formatSize(v) : \"\"),\n\t\t},\n\t\t{\n\t\t\tid: \"date\",\n\t\t\theader: _(\"Date\"),\n\t\t\twidth: 120,\n\t\t\tsort: true,\n\t\t\tresize: true,\n\t\t\ttemplate: v => (v ? format(v) : \"\"),\n\t\t},\n\t];\n\n\tlet sortClick = null;\n\tlet resizeClick = null;\n\n\tconst tableSelection = $derived(\n\t\tselectNavigation ? [\"/wx-filemanager-parent-link\"] : [...selection]\n\t);\n\n\tfunction click(id, e) {\n\t\t//[FIXME] grip is wx-table classname which may change\n\t\tif (e && e.target.className.indexOf(\"wx-grip\") !== -1) return;\n\n\t\tconst ctrl = e && (e.ctrlKey || e.metaKey);\n\t\tconst shift = e && e.shiftKey;\n\n\t\tif (id === \"/wx-filemanager-parent-link\") {\n\t\t\tif (selection.length && (ctrl || shift)) return;\n\t\t\tapi.exec(\"select-file\", {\n\t\t\t\ttype: \"navigation\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst isFile = id !== \"body\";\n\t\tlet newSelection = !isFile && e ? null : id;\n\n\t\tif (!sortClick && !resizeClick) {\n\t\t\tapi.exec(\"select-file\", {\n\t\t\t\tid: newSelection,\n\t\t\t\ttoggle: ctrl,\n\t\t\t\trange: shift,\n\t\t\t\tpanel: panel,\n\t\t\t});\n\t\t} else sortClick = resizeClick = null;\n\t}\n\n\tfunction backToParent() {\n\t\tif (crumbs.length > 1) {\n\t\t\tapi.exec(\"set-path\", {\n\t\t\t\tid: crumbs[crumbs.length - 2].id,\n\t\t\t\tpanel: panel,\n\t\t\t\tselected: [crumbs[crumbs.length - 1].id],\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction dblclick(id) {\n\t\tif (id === \"/wx-filemanager-parent-link\") {\n\t\t\treturn backToParent();\n\t\t}\n\t\tconst item = files.find(a => a.id === id);\n\n\t\tif (item) {\n\t\t\tif (item.type == \"folder\") {\n\t\t\t\tapi.exec(\"set-path\", {\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tpanel: panel,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tapi.exec(\"open-file\", {\n\t\t\t\t\tid: item.id,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction handleSort(e) {\n\t\tconst col = e.key;\n\t\tconst prevSort = sorts[path];\n\t\tlet order = !prevSort ? \"desc\" : \"asc\";\n\n\t\tif (prevSort && prevSort.key === col) {\n\t\t\torder = prevSort.order === \"asc\" ? \"desc\" : \"asc\";\n\t\t}\n\n\t\tapi.exec(\"sort-files\", {\n\t\t\tkey: col,\n\t\t\torder,\n\t\t\tpanel,\n\t\t\tpath,\n\t\t});\n\t}\n\n\tfunction initTable(api) {\n\t\tapi.intercept(\"sort-rows\", e => {\n\t\t\tsortClick = true;\n\t\t\thandleSort(e);\n\t\t\treturn false;\n\t\t});\n\n\t\tapi.intercept(\"select-row\", () => false);\n\n\t\tapi.on(\"resize-column\", () => (resizeClick = true));\n\n\t\tapi.intercept(\"hotkey\", () => false);\n\t}\n\n\tlet renderedFiles = $derived(\n\t\tpath !== \"/\"\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"/wx-filemanager-parent-link\",\n\t\t\t\t\t\tname: _(\"Back to parent folder\"),\n\t\t\t\t\t},\n\t\t\t\t\t...files,\n\t\t\t\t]\n\t\t\t: files\n\t);\n\n\tlet sortMarks = $derived.by(() => {\n\t\tif (renderedFiles && sorts[path]) {\n\t\t\tconst { key, order } = sorts[path];\n\t\t\treturn { [key]: { order } };\n\t\t}\n\t});\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div {onclick} {oncontextmenu} class=\"wx-wrapper\">\n\t<Breadcrumbs {panel} />\n\t<div\n\t\tdata-id={setID(\"body\")}\n\t\tclass=\"wx-list\"\n\t\tclass:wx-active={active}\n\t\tuse:delegateClick={{ click, dblclick }}\n\t>\n\t\t<UploadDropArea>\n\t\t\t<Grid\n\t\t\t\tinit={initTable}\n\t\t\t\tdata={renderedFiles}\n\t\t\t\t{columns}\n\t\t\t\tselectedRows={tableSelection}\n\t\t\t\tcolumnStyle={() => \"wx-each-cell\"}\n\t\t\t\tsizes={{ rowHeight: 42, headerHeight: 42 }}\n\t\t\t\t{sortMarks}\n\t\t\t/>\n\t\t</UploadDropArea>\n\t</div>\n</div>\n\n<style>\n\t.wx-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tmax-height: 100%;\n\t\tmax-width: 100%;\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t\tborder-radius: 6px;\n\t}\n\n\t.wx-list {\n\t\theight: calc(100% - 50px);\n\t}\n\t.wx-list > :global(.wx-upload-area .wx-grid) {\n\t\t--wx-table-cell-border: var(--wx-fm-grid-border);\n\t\t--wx-table-header-border: var(--wx-fm-grid-border);\n\t\t--wx-table-header-cell-border: var(--wx-fm-grid-border);\n\t}\n\t.wx-list > :global(.wx-upload-area .wx-body .wx-each-cell) {\n\t\tborder-right: none;\n\t}\n\t.wx-list\n\t\t> :global(.wx-upload-area .wx-header .wx-cell:first-child .wx-text) {\n\t\tpadding: 0 6px;\n\t}\n\t.wx-list > :global(.wx-upload-area .wx-table) {\n\t\tborder-radius: 0 0 6px 6px;\n\t}\n\n\t.wx-list.wx-active > :global(.wx-upload-area .wx-grid),\n\t.wx-list > :global(.wx-upload-area.wx-active .wx-grid) {\n\t\t--wx-table-cell-border: 1px solid var(--wx-color-primary);\n\t}\n\t.wx-list.wx-active > :global(.wx-upload-area .wx-row) {\n\t\t--wx-table-cell-border: var(--wx-fm-grid-border);\n\t}\n\n\t.wx-list > :global(.wx-upload-area.wx-active .wx-row) {\n\t\tbackground: var(--wx-color-primary-selected);\n\t\t--wx-table-cell-border: 1px solid var(--wx-color-primary-selected);\n\t}\n\t/*switch off focus due to filamanager own navigation system*/\n\t.wx-list > :global(.wx-upload-area .wx-grid .wx-cell) {\n\t\toutline: none;\n\t}\n\n\t/* temp hack to align toolbar and table body (with 1.75px full match) */\n\t.wx-list > :global(.wx-upload-area) {\n\t\tborder-right: 1px solid transparent;\n\t}\n</style>\n","<script>\n\timport TableView from \"./Table/View.svelte\";\n\timport { getContext } from \"svelte\";\n\timport { setID } from \"@svar-ui/lib-dom\";\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst activePanel = api.getReactiveState().activePanel;\n\n\tfunction toggleActive(panel) {\n\t\tapi.exec(\"set-active-panel\", { panel });\n\t}\n</script>\n\n<div class=\"wx-panels\" data-id={setID(\"body\")}>\n\t<div class=\"wx-item\" data-panel={0}>\n\t\t<TableView\n\t\t\tpanel={0}\n\t\t\tactive={$activePanel == 0}\n\t\t\tonclick={() => toggleActive(0)}\n\t\t\toncontextmenu={() => toggleActive(0)}\n\t\t/>\n\t</div>\n\t<div class=\"wx-item\" data-panel={1}>\n\t\t<TableView\n\t\t\tpanel={1}\n\t\t\tactive={$activePanel == 1}\n\t\t\tonclick={() => toggleActive(1)}\n\t\t\toncontextmenu={() => toggleActive(1)}\n\t\t/>\n\t</div>\n</div>\n\n<style>\n\t.wx-panels {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t\theight: 100%;\n\t}\n\t.wx-item {\n\t\tflex-grow: 1;\n\t\tflex-shrink: 0;\n\t\twidth: calc(50% - 10px);\n\t}\n\t.wx-item:first-child {\n\t\tmargin-right: 10px;\n\t}\n</style>\n","<script>\n\timport { setID } from \"@svar-ui/lib-dom\";\n\timport Folder from \"./Folder.svelte\";\n\timport { getContext } from \"svelte\";\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst { panels, activePanel } = api.getReactiveState();\n\n\tlet path = $derived($panels[$activePanel].path);\n\n\tlet { folderIcon = false, folder = {} } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tconst hasFolders = $derived(!!folder.data?.find(i => i.type === \"folder\"));\n\tconst name = $derived(folder.id == \"/\" ? _(folder.name) : folder.name);\n\tconst padding = $derived(folder.$level > 1 ? (folder.$level - 1) * 20 : 0);\n\tconst open = $derived(folder.open);\n</script>\n\n<li\n\tdata-id={setID(folder.id)}\n\tclass=\"wx-folder\"\n\tclass:wx-selected={path === folder.id}\n\tstyle=\"padding-left: {padding}px\"\n>\n\t{#if hasFolders}\n\t\t<i\n\t\t\tclass=\"wx-toggle wxi-{open ? 'angle-down' : 'angle-right'}\"\n\t\t\tdata-action=\"toggle\"\n\t\t></i>\n\t{:else}<span class=\"wx-toggle-placeholder\"></span>{/if}\n\t<i class={folderIcon || \"wxi-folder\"}></i>\n\t<span class=\"wx-name\"> {name} </span>\n</li>\n\n{#if open && folder.data && folder.data.length && hasFolders}\n\t{#each folder.data as folder (folder.id)}\n\t\t{#if folder.type === \"folder\"}\n\t\t\t<Folder {folder} />\n\t\t{/if}\n\t{/each}\n{/if}\n\n<style>\n\t.wx-folder {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tcursor: default;\n\t\tletter-spacing: 0.2px;\n\t\twidth: 100%;\n\t\theight: 32px;\n\t\tvertical-align: top;\n\t\twhite-space: nowrap;\n\t\tposition: relative;\n\t}\n\n\t.wx-selected {\n\t\tbackground-color: var(--wx-fm-select-background);\n\t}\n\ti {\n\t\tfont-size: 22px;\n\t\tmargin-right: 8px;\n\t\tmax-height: 100%;\n\t\tcolor: var(--wx-color-primary);\n\t}\n\t.wx-toggle {\n\t\tcursor: pointer;\n\t\tcolor: var(--wx-icon-color);\n\t\tfont-size: 24px;\n\t\tmargin-right: -2px;\n\t}\n\t.wx-toggle-placeholder {\n\t\twidth: 23px;\n\t\tflex-shrink: 0;\n\t}\n\t.wx-name {\n\t\tpadding-right: 8px;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\n\timport { delegateClick } from \"@svar-ui/lib-dom\";\n\timport Folder from \"./Folder.svelte\";\n\timport { getSelectionOnNavigation } from \"@svar-ui/filemanager-store\";\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst { data, panels, activePanel } = api.getReactiveState();\n\n\tconst crumbs = $derived($panels[$activePanel]._crumbs);\n\n\tfunction toggle(id) {\n\t\tapi.exec(\"open-tree-folder\", {\n\t\t\tid,\n\t\t\tmode: !$data.byId(id).open,\n\t\t});\n\t}\n\n\tfunction click(id) {\n\t\tconst selectedId = getSelectionOnNavigation(id, crumbs);\n\t\tapi.exec(\"set-path\", {\n\t\t\tid,\n\t\t\tpanel: $activePanel,\n\t\t\t...(selectedId && { selected: [selectedId] }),\n\t\t});\n\t}\n\n\tlet folders = $state([]);\n\t$effect(() => (folders = $data.byId(0).data));\n</script>\n\n<ul use:delegateClick={{ click, toggle }}>\n\t{#each folders as folder (folder.id)}\n\t\t{#if folder.type === \"folder\"}\n\t\t\t<Folder {folder} />\n\t\t{/if}\n\t{/each}\n</ul>\n\n<style>\n\tul {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\theight: 100%;\n\t\tmin-width: 100%;\n\t\twidth: fit-content;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { formatSize } from \"@svar-ui/filemanager-store\";\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst drive = api.getReactiveState().drive;\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tlet used = $derived($drive ? $drive.used : \"\");\n\tlet total = $derived($drive ? $drive.total : \"\");\n</script>\n\n{#if used && total}\n\t<div class=\"wx-drive\">\n\t\t<progress value={used} max={total} class=\"wx-progress\"></progress>\n\t\t<p>{formatSize(used)} {_(\"of\")} {formatSize(total)} {_(\"used\")}</p>\n\t</div>\n{/if}\n\n<style>\n\t.wx-drive {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 8px;\n\t}\n\t.wx-progress {\n\t\twidth: 100%;\n\t\theight: 8px;\n\t\tborder-radius: 20px;\n\t\tbackground-color: var(--wx-button-background);\n\t\tborder: none;\n\t}\n\t.wx-progress[value]::-webkit-progress-bar {\n\t\tborder-radius: 20px;\n\t\tbackground-color: var(--wx-fm-progress-bar-color);\n\t}\n\t.wx-progress[value]::-moz-progress-bar {\n\t\tbackground-color: var(--wx-color-primary);\n\t\tborder-radius: 10px;\n\t}\n\n\t.wx-progress[value]::-webkit-progress-value {\n\t\tbackground-color: var(--wx-color-primary);\n\t\tborder-radius: 10px;\n\t}\n\t.wx-drive p {\n\t\tmargin: 20px 0;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { apiKey } from \"@svar-ui/svelte-uploader\";\n\n\tlet { option } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst uploaderApi = getContext(apiKey);\n\n\tfunction openFileChooserDialog() {\n\t\tuploaderApi.open({});\n\t}\n</script>\n\n<!-- svelte-ignore a11y_click_events_have_key_events -->\n<!-- svelte-ignore a11y_no_static_element_interactions -->\n<div class=\"wx-upload-button\" onclick={openFileChooserDialog}>\n\t<span>{_(option.text)}</span>\n</div>\n\n<style>\n\t.wx-upload-button {\n\t\twidth: 100%;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\n\timport { Button } from \"@svar-ui/svelte-core\";\n\timport { DropDownMenu, registerMenuItem } from \"@svar-ui/svelte-menu\";\n\n\timport Tree from \"./Tree/Tree.svelte\";\n\timport Drive from \"./Drive.svelte\";\n\timport UploadButton from \"./UploadButton.svelte\";\n\n\tlet { readonly, menuOptions } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst { showPrompt } = getContext(\"filemanager-modals\");\n\n\tregisterMenuItem(\"upload\", UploadButton);\n\n\tfunction handleClick({ action }) {\n\t\tif (action) {\n\t\t\tif (action.id === \"add-file\")\n\t\t\t\tshowPrompt({\n\t\t\t\t\titem: {\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\tsize: 0,\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t},\n\t\t\t\t\tadd: true,\n\t\t\t\t});\n\t\t\telse if (action.id === \"add-folder\")\n\t\t\t\tshowPrompt({\n\t\t\t\t\titem: {\n\t\t\t\t\t\ttype: \"folder\",\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t},\n\t\t\t\t\tadd: true,\n\t\t\t\t});\n\t\t}\n\t}\n\n\tlet options = $derived(\n\t\tmenuOptions(\"add\").map(option => {\n\t\t\toption.text = _(option.text);\n\t\t\treturn option;\n\t\t})\n\t);\n</script>\n\n<div class=\"wx-wrapper\">\n\t{#if !readonly}\n\t\t<div class=\"wx-button\">\n\t\t\t<DropDownMenu {options} at=\"bottom-fit\" onclick={handleClick}>\n\t\t\t\t<Button type=\"primary block\">{_(\"Add New\")}</Button>\n\t\t\t</DropDownMenu>\n\t\t</div>\n\t{/if}\n\t<div class=\"wx-tree\">\n\t\t<Tree />\n\t</div>\n\t<Drive />\n</div>\n\n<style>\n\t.wx-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tbackground-color: var(--wx-background);\n\t\tborder-radius: 6px;\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t}\n\n\t.wx-button {\n\t\tpadding: 8px 8px 0;\n\t}\n\n\t.wx-tree {\n\t\tpadding-top: 8px;\n\t\tflex-grow: 1;\n\t\toverflow-x: auto;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\n\tlet { value = \"\", onsearch } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tlet node = null;\n\tlet icon = $derived(value !== \"\" ? \"wxi-close\" : \"wxi-search\");\n\n\tfunction oninput(e) {\n\t\tvalue = e.target.value;\n\t\tonsearch && onsearch({ value });\n\t}\n\n\tfunction clear() {\n\t\tvalue = \"\";\n\t\tnode.focus();\n\t\tonsearch && onsearch({ value });\n\t}\n</script>\n\n<div class=\"wx-search-input\">\n\t<!-- svelte-ignore a11y_click_events_have_key_events -->\n\t<!-- svelte-ignore a11y_no_static_element_interactions -->\n\t<i class=\"wx-icon {icon}\" onclick={clear}></i>\n\t<input\n\t\ttype=\"text\"\n\t\tclass=\"wx-text\"\n\t\tbind:this={node}\n\t\t{value}\n\t\t{oninput}\n\t\tplaceholder={_(\"Search\")}\n\t/>\n</div>\n\n<style>\n\t.wx-search-input {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 30px;\n\t}\n\n\t.wx-icon {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tposition: absolute;\n\t\ttop: 4px;\n\t\tbottom: 4px;\n\t\tright: 1px;\n\t\twidth: 25px;\n\t\tcolor: #94a1b3;\n\t\tfont-size: 20px;\n\t\tcursor: pointer;\n\t}\n\n\t.wx-text {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: 30px;\n\t\tpadding-left: 12px;\n\t\tborder: var(--wx-border);\n\t\toutline: none;\n\t\tbackground-color: var(--wx-background);\n\t\tborder-radius: 2px;\n\t}\n\n\t.wx-text::placeholder {\n\t\tcolor: #94a1b3;\n\t}\n\n\t.wx-text:focus {\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\timport { Segmented, TwoState } from \"@svar-ui/svelte-core\";\n\timport { setID } from \"@svar-ui/lib-dom\";\n\timport Search from \"./ui/Search.svelte\";\n\timport Icon from \"./ui/Icon.svelte\";\n\n\tlet { narrowMode = false, onshowtree } = $props();\n\n\tconst api = getContext(\"filemanager-store\");\n\n\tconst { mode, preview: info, search: searchValue } = api.getReactiveState();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tconst options = [\n\t\t{ icon: \"wxi-view-sequential\", id: \"table\" },\n\t\t{ icon: \"wxi-view-grid\", id: \"cards\" },\n\t\t{ icon: \"wxi-view-column\", id: \"panels\" },\n\t];\n\n\tfunction changeMode({ value }) {\n\t\tapi.exec(\"set-mode\", { mode: value });\n\t}\n\tfunction toggleInfo(e) {\n\t\te.preventDefault();\n\t\tapi.exec(\"show-preview\", { mode: !$info });\n\t}\n\tfunction search(e) {\n\t\tapi.exec(\"filter-files\", { text: e.value });\n\t}\n</script>\n\n<div class=\"wx-toolbar\">\n\t<div class=\"wx-left {narrowMode ? 'wx-left-narrow' : ''}\">\n\t\t{#if !narrowMode}\n\t\t\t<div class=\"wx-name\">{_(\"Files\")}</div>\n\t\t{:else if !($mode == \"panels\" || $mode == \"search\")}\n\t\t\t<div class=\"wx-sidebar-icon\" data-id={setID(\"toggle-tree\")}>\n\t\t\t\t<Icon\n\t\t\t\t\tonclick={() => onshowtree && onshowtree()}\n\t\t\t\t\tname=\"subtask\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t{/if}\n\t\t<Search onsearch={search} value={$searchValue} />\n\t</div>\n\n\t<div class=\"wx-right\">\n\t\t{#if !narrowMode}\n\t\t\t<div class=\"wx-preview-icon\">\n\t\t\t\t<TwoState onclick={toggleInfo} value={$info}>\n\t\t\t\t\t<i class=\"wxi-eye\"></i>\n\t\t\t\t</TwoState>\n\t\t\t</div>\n\t\t{/if}\n\t\t<div class=\"wx-modes\">\n\t\t\t<Segmented value={$mode} {options} onchange={changeMode} />\n\t\t</div>\n\t</div>\n</div>\n\n<style>\n\t.wx-toolbar {\n\t\theight: var(--wx-fm-toolbar-height);\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\tpadding: 0 12px;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--wx-background);\n\t\tbox-shadow: var(--wx-fm-box-shadow);\n\t\tgap: 8px;\n\t}\n\n\t.wx-left,\n\t.wx-right {\n\t\tdisplay: flex;\n\t}\n\n\t.wx-left {\n\t\talign-items: center;\n\t\twidth: 35%;\n\t\tjustify-content: space-between;\n\t}\n\t.wx-left-narrow {\n\t\twidth: 70%;\n\t}\n\t.wx-name {\n\t\tmargin-right: 20px;\n\t\tfont-size: 16px;\n\t\tfont-weight: var(--wx-font-weight-md);\n\t}\n\n\t.wx-sidebar-icon {\n\t\tmargin-right: 20px;\n\t}\n\n\t.wx-preview-icon {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tmargin-right: 20px;\n\n\t\t--wx-button-icon-size: 22px;\n\t\t--wx-button-line-height: 25px;\n\t\t--wx-button-padding: 4px 10px;\n\t\t--wx-button-border-radius: 6px;\n\t}\n\n\t.wx-preview-icon i {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\tfont-size: var(--wx-button-icon-size);\n\t\tline-height: 1;\n\t\theight: var(--wx-button-line-height);\n\t}\n\n\t.wx-preview-icon i:before {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tcolor: var(--wx-fm-button-font-color);\n\t}\n\n\t.wx-modes {\n\t\t--wx-button-font-color: var(--wx-fm-button-font-color);\n\t\t--wx-segmented-padding: 1.5px;\n\t\t--wx-segmented-background-hover: linear-gradient(\n\t\t\trgba(0, 0, 0, 0.1) 0%,\n\t\t\trgba(0, 0, 0, 0.1) 100%\n\t\t);\n\t\t--wx-button-icon-size: 22px;\n\t\t--wx-segmented-border-radius: 6px;\n\t\t--wx-segmented-border: none;\n\t}\n</style>\n","<script>\n\timport { getContext } from \"svelte\";\n\n\timport Breadcrumbs from \"../Breadcrumbs.svelte\";\n\timport Panel from \"./Panel.svelte\";\n\timport UploadDropArea from \"../UploadDropArea.svelte\";\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst { activePanel } = api.getReactiveState();\n\n</script>\n\n<div class=\"wx-wrapper\">\n\t<Breadcrumbs panel={$activePanel} />\n\t<UploadDropArea>\n\t\t<Panel />\n\t</UploadDropArea>\n</div>\n\n<style>\n\t.wx-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tmax-height: 100%;\n\t\tmax-width: 100%;\n\t\tflex-shrink: 1;\n\t}\n\n\t.wx-wrapper > :global(.wx-upload-area) {\n\t\theight: calc(100% - 48px);\n\t}\n\n\t.wx-wrapper > :global(.wx-upload-area) {\n\t\toverflow-y: auto;\n\t\tborder: 1px solid transparent;\n\t\tborder-radius: 0 0 6px 6px;\n\t}\n\t.wx-wrapper > :global(.wx-upload-area.wx-active) {\n\t\tborder: 1px solid var(--wx-color-primary);\n\t}\n\n</style>\n","<script>\n\timport { clickOutside, locateID, setID } from \"@svar-ui/lib-dom\";\n\timport { ActionMenu, ContextMenu } from \"@svar-ui/svelte-menu\";\n\timport { Uploader } from \"@svar-ui/svelte-uploader\";\n\timport { hotkeys } from \"@svar-ui/filemanager-store\";\n\n\timport { getContext, tick } from \"svelte\";\n\n\timport SearchView from \"./SearchView.svelte\";\n\timport Info from \"./Info.svelte\";\n\timport Panels from \"./Panels.svelte\";\n\timport Sidebar from \"./Sidebar.svelte\";\n\timport Toolbar from \"./Toolbar.svelte\";\n\timport TableView from \"./Table/View.svelte\";\n\timport CardsView from \"./Cards/View.svelte\";\n\n\tlet { readonly = false, menuOptions, extraInfo } = $props();\n\n\tlet sidebarWidth = $state();\n\n\tlet narrowMode = $state();\n\tlet showSidebar = $state(false);\n\n\tfunction resize(node) {\n\t\tconst ro = new ResizeObserver(entries => {\n\t\t\tnarrowMode = entries[0].borderBoxSize[0].inlineSize < 768;\n\t\t});\n\t\tro.observe(node);\n\t}\n\n\tfunction toggleSidebar() {\n\t\tshowSidebar = !showSidebar;\n\t}\n\n\tfunction hideSidebar(ev) {\n\t\tif (narrowMode && locateID(ev) !== \"toggle-tree\") {\n\t\t\tshowSidebar = false;\n\t\t}\n\t}\n\n\tconst api = getContext(\"filemanager-store\");\n\tconst { showPrompt, showConfirm } = getContext(\"filemanager-modals\");\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\n\tconst {\n\t\tmode: rMode,\n\t\tpreview: rPreview,\n\t\tactivePanel: rActivePanel,\n\t\tpanels: rPanels,\n\t} = api.getReactiveState();\n\n\tconst selected = $derived($rPanels[$rActivePanel].selected);\n\tconst path = $derived($rPanels[$rActivePanel].path);\n\tlet contextMenuOptions = $state([]);\n\n\tconst previewOption = {\n\t\ticon: \"wxi-eye\",\n\t\ttext: \"Preview\",\n\t\tid: \"preview\",\n\t};\n\n\tfunction getReadonlyMenu(type) {\n\t\tlet options = narrowMode ? [previewOption] : [];\n\t\tif (type === \"file\")\n\t\t\toptions = [\n\t\t\t\t...options,\n\t\t\t\t...menuOptions().filter(o => o.id === \"download\"),\n\t\t\t];\n\t\treturn options;\n\t}\n\n\tfunction resolveContext(id, e) {\n\t\tconst item = id ? api.getFile(id) : null;\n\t\tconst inTree = e.target.closest(\".tree-item.folder\");\n\n\t\tlet options;\n\n\t\tif (readonly) {\n\t\t\toptions = getReadonlyMenu(item?.type);\n\t\t} else {\n\t\t\tswitch (id) {\n\t\t\t\tcase \"body\":\n\t\t\t\t\toptions = menuOptions(id);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (item) {\n\t\t\t\t\t\tif (!inTree && selected.length > 1) {\n\t\t\t\t\t\t\toptions = narrowMode\n\t\t\t\t\t\t\t\t? [previewOption, ...menuOptions(\"multiselect\")]\n\t\t\t\t\t\t\t\t: menuOptions(\"multiselect\");\n\t\t\t\t\t\t} else if (id === \"/\") {\n\t\t\t\t\t\t\toptions = menuOptions(\"folder\", item).filter(\n\t\t\t\t\t\t\t\to => o.id === \"paste\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mOptions = menuOptions(item.type, item);\n\t\t\t\t\t\t\tif (mOptions) {\n\t\t\t\t\t\t\t\toptions = narrowMode\n\t\t\t\t\t\t\t\t\t? [previewOption, ...mOptions]\n\t\t\t\t\t\t\t\t\t: mOptions;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t}\n\t\t\tif ($rMode === \"search\") {\n\t\t\t\toptions = options?.filter(o => o.id !== \"paste\");\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\titem?.id &&\n\t\t\t(!selected.length || !selected.some(i => i === item.id)) &&\n\t\t\t!inTree\n\t\t) {\n\t\t\tapi.exec(\"select-file\", { id: item.id });\n\t\t}\n\n\t\tif (options?.length) {\n\t\t\toptions.forEach(o => {\n\t\t\t\tif (inTree) o.hotkey = \"\";\n\t\t\t\tif (o.text) o.text = _(o.text);\n\t\t\t\tif (o.hotkey) o.subtext = o.hotkey;\n\t\t\t});\n\t\t\tcontextMenuOptions = options;\n\t\t\treturn item || {};\n\t\t}\n\t}\n\n\tlet copy = null;\n\tfunction handleMenu(e) {\n\t\tconst { action, context } = e;\n\t\tif (action) {\n\t\t\tperformAction(action.id, context, !action.hotkey);\n\t\t}\n\t}\n\n\tfunction performAction(action, context, inTree) {\n\t\tconst ids = inTree ? [context.id] : selected;\n\t\tswitch (action) {\n\t\t\tcase \"download\":\n\t\t\t\tapi.exec(\"download-file\", { id: context.id });\n\t\t\t\tbreak;\n\t\t\tcase \"copy\":\n\t\t\tcase \"move\":\n\t\t\t\tcopy = {\n\t\t\t\t\taction,\n\t\t\t\t\tids: ids,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase \"paste\":\n\t\t\t\tif (copy) {\n\t\t\t\t\tapi.exec(\n\t\t\t\t\t\tcopy.action === \"copy\" ? \"copy-files\" : \"move-files\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tids: copy.ids,\n\t\t\t\t\t\t\ttarget:\n\t\t\t\t\t\t\t\tcontext?.type === \"folder\" ? context.id : path,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"rename\":\n\t\t\t\tshowPrompt({ item: context });\n\t\t\t\tbreak;\n\t\t\tcase \"delete\":\n\t\t\t\tshowConfirm({ selected: ids });\n\t\t\t\tbreak;\n\t\t\tcase \"preview\":\n\t\t\t\tapi.exec(\"show-preview\", { mode: !$rPreview });\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfunction getPanel() {\n\t\treturn $rPanels[$rActivePanel];\n\t}\n\n\tasync function handleUpload(f) {\n\t\t//if active panel was changed before upload, wait until for it\n\t\tawait tick();\n\t\tconst { name, size } = f.file;\n\n\t\tapi.exec(\"create-file\", {\n\t\t\tfile: {\n\t\t\t\tname,\n\t\t\t\tsize,\n\t\t\t\tdate: new Date(),\n\t\t\t\tfile: f.file,\n\t\t\t},\n\t\t\tparent: path,\n\t\t});\n\t}\n</script>\n\n<div\n\tclass=\"wx-filemanager wx-flex\"\n\tuse:resize\n\tuse:hotkeys={{\n\t\tapi,\n\t\tmenuOptions: readonly ? getReadonlyMenu : menuOptions,\n\t\tperformAction,\n\t\tgetPanel,\n\t}}\n>\n\t{#if narrowMode && $rPreview}\n\t\t<div class=\"wx-info-narrow\">\n\t\t\t<Info {narrowMode} {extraInfo} />\n\t\t</div>\n\t{:else}\n\t\t<Toolbar {narrowMode} onshowtree={toggleSidebar} />\n\t\t<ContextMenu\n\t\t\tdataKey={\"id\"}\n\t\t\tat={\"point\"}\n\t\t\toptions={contextMenuOptions}\n\t\t\tresolver={resolveContext}\n\t\t\tonclick={handleMenu}\n\t\t>\n\t\t\t<ActionMenu\n\t\t\t\tdataKey=\"actionId\"\n\t\t\t\toptions={contextMenuOptions}\n\t\t\t\tresolver={resolveContext}\n\t\t\t\tonclick={handleMenu}\n\t\t\t>\n\t\t\t\t<Uploader apiOnly={true} uploadURL={handleUpload}>\n\t\t\t\t\t<div class=\"wx-content-wrapper wx-flex\">\n\t\t\t\t\t\t{#if $rMode !== \"panels\" && $rMode !== \"search\"}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tuse:clickOutside={hideSidebar}\n\t\t\t\t\t\t\t\tclass=\"wx-sidebar\"\n\t\t\t\t\t\t\t\tclass:wx-sidebar-narrow={narrowMode}\n\t\t\t\t\t\t\t\tclass:wx-sidebar-visible={showSidebar}\n\t\t\t\t\t\t\t\tbind:clientWidth={sidebarWidth}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Sidebar {readonly} {menuOptions} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"wx-content\"\n\t\t\t\t\t\t\t\tstyle=\"width: calc(100% - {sidebarWidth}px - 10px)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclass=\"wx-content-item{$rPreview\n\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t: '-fit'}\"\n\t\t\t\t\t\t\t\t\tdata-id={setID(\"body\")}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{#if $rMode === \"table\"}\n\t\t\t\t\t\t\t\t\t\t<TableView panel={$rActivePanel} />\n\t\t\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t\t\t<CardsView />\n\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{#if $rPreview}\n\t\t\t\t\t\t\t\t\t<div class=\"wx-info\">\n\t\t\t\t\t\t\t\t\t\t<Info {extraInfo} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"wx-content-item{$rPreview ? '' : '-fit'}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{#if $rMode === \"panels\"}\n\t\t\t\t\t\t\t\t\t<Panels />\n\t\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t\t<SearchView />\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{#if $rPreview}\n\t\t\t\t\t\t\t\t<div class=\"wx-info\">\n\t\t\t\t\t\t\t\t\t<Info {extraInfo} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t</div>\n\t\t\t\t</Uploader>\n\t\t\t</ActionMenu>\n\t\t</ContextMenu>\n\t{/if}\n</div>\n\n<style>\n\t.wx-flex {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t}\n\t.wx-filemanager {\n\t\tmax-width: 100vw;\n\t\tmax-height: 100vh;\n\t\toverflow: hidden;\n\t\tbackground-color: var(--wx-fm-background);\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t}\n\t.wx-content {\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t\tflex-shrink: 0;\n\t}\n\t.wx-content-item-fit {\n\t\twidth: 100%;\n\t\tpadding: 0 10px 10px;\n\t}\n\t.wx-content-item {\n\t\twidth: 67%;\n\t\tpadding: 0 10px 10px;\n\t}\n\t.wx-content-wrapper {\n\t\tmargin-top: 10px;\n\t\tmax-width: 100%;\n\t\tmax-height: 100%;\n\t\tposition: relative;\n\t}\n\t.wx-info {\n\t\twidth: 38%;\n\t}\n\t.wx-sidebar {\n\t\tflex: 0 0 auto;\n\t\twidth: 238px;\n\t\tpadding: 0 10px 10px;\n\t\theight: 100%;\n\t}\n\t.wx-sidebar-narrow {\n\t\tposition: absolute !important;\n\t\tz-index: 5;\n\t\tleft: -300px;\n\t\ttransition-duration: 0.6s;\n\t}\n\t.wx-sidebar-visible {\n\t\tleft: 0;\n\t}\n\t.wx-info-narrow {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tpadding-top: 10px;\n\t}\n\t.wx-filemanager > :global(div[data-menu-ignore=\"true\"]) {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\t.wx-filemanager > :global(span[data-menu-ignore=\"true\"]),\n\t.wx-filemanager\n\t\t> :global(span[data-menu-ignore=\"true\"])\n\t\t> :global(span[data-menu-ignore=\"true\"]) {\n\t\tmin-height: 0;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t}\n</style>\n","export default {\n\tfilemanager: {\n\t\t\"My files\": \"My files\",\n\n\t\t\"Add New\": \"Add New\",\n\t\tOk: \"Ok\",\n\t\tCancel: \"Cancel\",\n\n\t\t\"Delete files\": \"Delete Files\",\n\t\tFiles: \"Files\",\n\t\tFolder: \"Folder\",\n\t\t\"Back to parent folder\": \"Back to parent folder\",\n\n\t\tInformation: \"Information\",\n\t\tFound: \"Found\",\n\n\t\t\"Are you sure you want to delete these items:\":\n\t\t\t\"Are you sure you want to delete these items:\",\n\t\t\"Enter file name\": \"Enter file name\",\n\t\t\"Enter folder name\": \"Enter folder name\",\n\n\t\tResult: \"Result\",\n\t\tSearch: \"Search\",\n\t\t\"Search results in\": \"Search results in\",\n\t\t\"Add new file\": \"Add new file\",\n\t\t\"Add new folder\": \"Add new folder\",\n\t\t\"Upload file\": \"Upload file\",\n\n\t\tSize: \"Size\",\n\t\tName: \"Name\",\n\t\tType: \"Type\",\n\t\tDate: \"Date\",\n\n\t\tRename: \"Rename\",\n\t\tCut: \"Cut\",\n\t\tDelete: \"Delete\",\n\t\tCopy: \"Copy\",\n\t\tPaste: \"Paste\",\n\t\tDownload: \"Download\",\n\t\tCount: \"Count\",\n\t\tfolder: \"folder\",\n\t\tfolders: \"folders\",\n\t\tfile: \"file\",\n\t\tfiles: \"files\",\n\t\t\"Multiple files\": \"Multiple files\",\n\t\tmultiple: \"multiple\",\n\t\tPreview: \"Preview\",\n\t\tof: \"of\",\n\t\tused: \"used\",\n\t\t\"Select file or folder to view details\":\n\t\t\t\"Select file or folder to view details\",\n\t\t\"Looks like nothing is here\": \"Looks like nothing is here\",\n\t\t\"Unknown file\": \"Unknown file\",\n\n\t\t\"A miniature file preview\": \"A miniature file preview\",\n\t},\n};\n","<script>\n\timport { getContext, setContext } from \"svelte\";\n\timport { Globals, Modal, Text } from \"@svar-ui/svelte-core\";\n\n\tlet { children } = $props();\n\n\tconst _ = getContext(\"wx-i18n\").getGroup(\"filemanager\");\n\tconst api = getContext(\"filemanager-store\");\n\n\tconst { panels: rPanels, activePanel: rActivePanel } =\n\t\tapi.getReactiveState();\n\n\tconst path = $derived($rPanels[$rActivePanel].path);\n\tlet prompt = $state(null);\n\tlet confirm = $state(null);\n\tlet value = $state(\"\");\n\tlet initialName = $state(\"\");\n\tlet error = $state(false);\n\n\tfunction promptOk() {\n\t\tconst name = value.trim();\n\t\tif (!name) {\n\t\t\terror = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (prompt.add) {\n\t\t\tapi.exec(\"create-file\", {\n\t\t\t\tfile: {\n\t\t\t\t\t...prompt.item,\n\t\t\t\t\tname,\n\t\t\t\t},\n\t\t\t\tparent: path,\n\t\t\t});\n\t\t} else {\n\t\t\tif (initialName !== name)\n\t\t\t\tapi.exec(\"rename-file\", { id: prompt.item.id, name });\n\t\t}\n\n\t\tclosePrompt();\n\t}\n\n\tfunction closePrompt() {\n\t\tprompt = error = null;\n\t\tinitialName = value = \"\";\n\t}\n\n\tfunction confirmOk() {\n\t\tapi.exec(\"delete-files\", { ids: confirm.selected });\n\t\tconfirm = null;\n\t}\n\n\tsetContext(\"filemanager-modals\", {\n\t\tshowPrompt(config) {\n\t\t\tinitialName = value =\n\t\t\t\tconfig.item.name ||\n\t\t\t\t(config.item.type === \"folder\"\n\t\t\t\t\t? _(\"New folder\")\n\t\t\t\t\t: `${_(\"New file\")}.txt`);\n\t\t\tprompt = { ...config };\n\t\t},\n\t\tshowConfirm(config) {\n\t\t\tconfirm = { ...config };\n\t\t},\n\t});\n</script>\n\n<Globals>\n\t{@render children?.()}\n</Globals>\n\n{#if prompt}\n\t<Modal\n\t\ttitle={_(`Enter ${prompt.item.type} name`)}\n\t\tonconfirm={promptOk}\n\t\toncancel={closePrompt}\n\t>\n\t\t<!-- [todo] add selection mask to exclude extensions as a Text feature -->\n\t\t<Text {error} select={true} focus={true} bind:value />\n\t</Modal>\n{/if}\n\n{#if confirm}\n\t<Modal\n\t\ttitle={_(\"Are you sure you want to delete these items:\")}\n\t\tonconfirm={confirmOk}\n\t\toncancel={() => (confirm = null)}\n\t>\n\t\t{#if confirm.selected}\n\t\t\t<ul class=\"wx-list\">\n\t\t\t\t{#each confirm.selected as item}\n\t\t\t\t\t<li>{item}</li>\n\t\t\t\t{/each}\n\t\t\t</ul>\n\t\t{/if}\n\t</Modal>\n{/if}\n\n<style>\n\t.wx-list {\n\t\ttext-align: left;\n\t\tpadding-left: 20px;\n\t\tmax-height: 300px;\n\t\toverflow: auto;\n\t}\n\n\t.wx-list li {\n\t\tfont-weight: var(--wx-font-weight-md);\n\t}\n</style>\n","export let whitelist = {\n\t\"7z\": true,\n\trar: true,\n\tzip: true,\n\tcss: true,\n\thtml: true,\n\tjs: true,\n\tphp: true,\n\tmd: true,\n\txml: true,\n\tsql: true,\n\taif: true,\n\tmid: true,\n\tmp3: true,\n\twaw: true,\n\twma: true,\n\tdoc: true,\n\tdocx: true,\n\ttxt: true,\n\tavi: true,\n\tmov: true,\n\tmp4: true,\n\tmpeg: true,\n\tmpg: true,\n\tpdf: true,\n\txls: true,\n\txlsx: true,\n\tgif: true,\n\tjpg: true,\n\tjpeg: true,\n\tpng: true,\n\tpsd: true,\n\ttiff: true,\n\tsvg: true,\n\tfolder: true,\n\tfile: true,\n\tmultiple: true,\n\tsearch: true,\n\tnone: true,\n};\n","<script>\n\timport { setContext } from \"svelte\";\n\n\timport Layout from \"./Layout.svelte\";\n\n\timport { Locale } from \"@svar-ui/svelte-core\";\n\timport { en } from \"@svar-ui/filemanager-locales\";\n\n\t// stores\n\timport { EventBusRouter } from \"@svar-ui/lib-state\";\n\timport { DataStore, getMenuOptions } from \"@svar-ui/filemanager-store\";\n\timport Modals from \"./Modals.svelte\";\n\timport { whitelist } from \"../icons\";\n\n\tlet {\n\t\tdata = [],\n\t\tmode = \"cards\",\n\t\tdrive = null,\n\t\tpreview = false,\n\t\tpanels = [],\n\t\tactivePanel = 0,\n\t\treadonly = false,\n\t\tmenuOptions = getMenuOptions,\n\t\textraInfo = null,\n\t\tinit = null,\n\t\ticons = function (file, size) {\n\t\t\tconst { type, ext } = file;\n\n\t\t\tif (type === \"folder\") return false;\n\n\t\t\tlet icon;\n\n\t\t\tif (type && type !== \"file\" && whitelist[type]) {\n\t\t\t\ticon = type;\n\t\t\t} else if (ext) {\n\t\t\t\ticon = whitelist[ext] ? ext : \"file\";\n\t\t\t} else icon = \"unknown\";\n\n\t\t\treturn `https://cdn.svar.dev/icons/filemanager/vivid/${size}/${icon}.svg`;\n\t\t},\n\t\tpreviews = null,\n\t\t...restProps\n\t} = $props();\n\n\t// init stores\n\tconst dataStore = new DataStore();\n\n\t// define event route\n\tlet firstInRoute = dataStore.in;\n\n\tconst dash = /-/g;\n\tlet lastInRoute = new EventBusRouter((a, b) => {\n\t\tconst name = \"on\" + a.replace(dash, \"\");\n\t\tif (restProps[name]) {\n\t\t\trestProps[name](b);\n\t\t}\n\t});\n\tfirstInRoute.setNext(lastInRoute);\n\n\t// public API\n\texport const // state\n\t\tgetState = dataStore.getState.bind(dataStore),\n\t\tgetReactiveState = dataStore.getReactive.bind(dataStore),\n\t\tgetStores = () => ({ data: dataStore }),\n\t\t// events\n\t\texec = firstInRoute.exec,\n\t\tsetNext = ev => (lastInRoute = lastInRoute.setNext(ev)),\n\t\tintercept = firstInRoute.intercept.bind(firstInRoute),\n\t\ton = firstInRoute.on.bind(firstInRoute),\n\t\tdetach = firstInRoute.detach.bind(firstInRoute),\n\t\t//specific\n\t\tgetFile = id => dataStore.getFile(id),\n\t\tserialize = id => dataStore.serialize(id);\n\n\tconst api = {\n\t\tgetState,\n\t\tgetReactiveState,\n\t\tgetStores,\n\t\texec,\n\t\tsetNext,\n\t\tintercept,\n\t\ton,\n\t\tdetach,\n\t\tgetFile,\n\t\tserialize,\n\t};\n\n\tconst none = () => null;\n\t// common API available in components\n\tsetContext(\"filemanager-store\", {\n\t\tgetReactiveState: dataStore.getReactive.bind(dataStore),\n\t\texec: firstInRoute.exec.bind(firstInRoute),\n\t\ttemplates: {\n\t\t\tpreview: previews || none,\n\t\t\ticon: icons == \"simple\" ? none : icons,\n\t\t},\n\t\tgetFile: dataStore.getFile.bind(dataStore),\n\t});\n\n\tlet init_once = true;\n\tconst reinitStore = () => {\n\t\tdataStore.init({\n\t\t\tdata,\n\t\t\tmode,\n\t\t\tdrive,\n\t\t\tpreview,\n\t\t\tpanels,\n\t\t\tactivePanel,\n\t\t});\n\n\t\tif (init_once && init) {\n\t\t\tinit(api);\n\t\t\tinit_once = false;\n\t\t}\n\t};\n\treinitStore();\n\t$effect(reinitStore);\n</script>\n\n<Locale words={en} optional={true}>\n\t<Modals>\n\t\t<Layout {readonly} {menuOptions} {extraInfo} />\n\t</Modals>\n</Locale>\n","<script>\n\timport { Willow } from \"@svar-ui/svelte-core\";\n\tlet { fonts = true, children } = $props();\n</script>\n\n{#if children}\n\t<Willow {fonts}>{@render children()}</Willow>\n{:else}\n\t<Willow {fonts} />\n{/if}\n\n<style>\n\t:global(.wx-willow-theme) {\n\t\t--wx-theme-name: willow;\n\n\t\t--wx-fm-background: #f2f3f7;\n\t\t--wx-fm-box-shadow: 0px 1px 2px rgba(44, 47, 60, 0.06),\n\t\t\t0px 3px 10px rgba(44, 47, 60, 0.12);\n\t\t--wx-fm-select-background: #eaedf5;\n\t\t--wx-fm-grid-border: 1px solid #ededf1;\n\t\t--wx-fm-grid-header-color: #fafafb;\n\t\t--wx-fm-button-font-color: #9fa1ae;\n\t\t--wx-fm-toolbar-height: 56px;\n\t}\n</style>\n","import Filemanager from \"./components/Filemanager.svelte\";\n\nimport Material from \"./themes/Material.svelte\";\nimport Willow from \"./themes/Willow.svelte\";\nimport WillowDark from \"./themes/WillowDark.svelte\";\n\nexport { Filemanager, Material, Willow, WillowDark };\n\nexport { getMenuOptions } from \"@svar-ui/filemanager-store\";\n\nimport { setEnv } from \"@svar-ui/lib-dom\";\nimport { env } from \"@svar-ui/lib-svelte\";\nsetEnv(env);\n","export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n    return {\n        setHttpHandler(handler) {\n            runtimeConfig.httpHandler = handler;\n        },\n        httpHandler() {\n            return runtimeConfig.httpHandler;\n        },\n        updateHttpClientConfig(key, value) {\n            runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n        },\n        httpHandlerConfigs() {\n            return runtimeConfig.httpHandler.httpHandlerConfigs();\n        },\n    };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n    return {\n        httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n    };\n};\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n    EndpointURLScheme[\"HTTP\"] = \"http\";\n    EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export var AlgorithmId;\n(function (AlgorithmId) {\n    AlgorithmId[\"MD5\"] = \"md5\";\n    AlgorithmId[\"CRC32\"] = \"crc32\";\n    AlgorithmId[\"CRC32C\"] = \"crc32c\";\n    AlgorithmId[\"SHA1\"] = \"sha1\";\n    AlgorithmId[\"SHA256\"] = \"sha256\";\n})(AlgorithmId || (AlgorithmId = {}));\nexport const getChecksumConfiguration = (runtimeConfig) => {\n    const checksumAlgorithms = [];\n    if (runtimeConfig.sha256 !== undefined) {\n        checksumAlgorithms.push({\n            algorithmId: () => AlgorithmId.SHA256,\n            checksumConstructor: () => runtimeConfig.sha256,\n        });\n    }\n    if (runtimeConfig.md5 != undefined) {\n        checksumAlgorithms.push({\n            algorithmId: () => AlgorithmId.MD5,\n            checksumConstructor: () => runtimeConfig.md5,\n        });\n    }\n    return {\n        addChecksumAlgorithm(algo) {\n            checksumAlgorithms.push(algo);\n        },\n        checksumAlgorithms() {\n            return checksumAlgorithms;\n        },\n    };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n    const runtimeConfig = {};\n    clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n        runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n    });\n    return runtimeConfig;\n};\n","export const SMITHY_CONTEXT_KEY = \"__smithy_context\";\n","export class HttpRequest {\n    method;\n    protocol;\n    hostname;\n    port;\n    path;\n    query;\n    headers;\n    username;\n    password;\n    fragment;\n    body;\n    constructor(options) {\n        this.method = options.method || \"GET\";\n        this.hostname = options.hostname || \"localhost\";\n        this.port = options.port;\n        this.query = options.query || {};\n        this.headers = options.headers || {};\n        this.body = options.body;\n        this.protocol = options.protocol\n            ? options.protocol.slice(-1) !== \":\"\n                ? `${options.protocol}:`\n                : options.protocol\n            : \"https:\";\n        this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n        this.username = options.username;\n        this.password = options.password;\n        this.fragment = options.fragment;\n    }\n    static clone(request) {\n        const cloned = new HttpRequest({\n            ...request,\n            headers: { ...request.headers },\n        });\n        if (cloned.query) {\n            cloned.query = cloneQuery(cloned.query);\n        }\n        return cloned;\n    }\n    static isInstance(request) {\n        if (!request) {\n            return false;\n        }\n        const req = request;\n        return (\"method\" in req &&\n            \"protocol\" in req &&\n            \"hostname\" in req &&\n            \"path\" in req &&\n            typeof req[\"query\"] === \"object\" &&\n            typeof req[\"headers\"] === \"object\");\n    }\n    clone() {\n        return HttpRequest.clone(this);\n    }\n}\nfunction cloneQuery(query) {\n    return Object.keys(query).reduce((carry, paramName) => {\n        const param = query[paramName];\n        return {\n            ...carry,\n            [paramName]: Array.isArray(param) ? [...param] : param,\n        };\n    }, {});\n}\n","export class HttpResponse {\n    statusCode;\n    reason;\n    headers;\n    body;\n    constructor(options) {\n        this.statusCode = options.statusCode;\n        this.reason = options.reason;\n        this.headers = options.headers || {};\n        this.body = options.body;\n    }\n    static isInstance(response) {\n        if (!response)\n            return false;\n        const resp = response;\n        return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n    }\n}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n    return (next) => async (args) => {\n        const { request } = args;\n        if (options.expectContinueHeader !== false &&\n            HttpRequest.isInstance(request) &&\n            request.body &&\n            options.runtime === \"node\" &&\n            options.requestHandler?.constructor?.name !== \"FetchHttpHandler\") {\n            let sendHeader = true;\n            if (typeof options.expectContinueHeader === \"number\") {\n                try {\n                    const bodyLength = Number(request.headers?.[\"content-length\"]) ?? options.bodyLengthChecker?.(request.body) ?? Infinity;\n                    sendHeader = bodyLength >= options.expectContinueHeader;\n                }\n                catch (e) { }\n            }\n            else {\n                sendHeader = !!options.expectContinueHeader;\n            }\n            if (sendHeader) {\n                request.headers.Expect = \"100-continue\";\n            }\n        }\n        return next({\n            ...args,\n            request,\n        });\n    };\n}\nexport const addExpectContinueMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n    name: \"addExpectContinueMiddleware\",\n    override: true,\n};\nexport const getAddExpectContinuePlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n    },\n});\n","export const RequestChecksumCalculation = {\n    WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n    WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport const ResponseChecksumValidation = {\n    WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n    WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport var ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n    ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n    ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n    ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n    ChecksumAlgorithm[\"CRC64NVME\"] = \"CRC64NVME\";\n    ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n    ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm || (ChecksumAlgorithm = {}));\nexport var ChecksumLocation;\n(function (ChecksumLocation) {\n    ChecksumLocation[\"HEADER\"] = \"header\";\n    ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation || (ChecksumLocation = {}));\nexport const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;\n","export function setCredentialFeature(credentials, feature, value) {\n    if (!credentials.$source) {\n        credentials.$source = {};\n    }\n    credentials.$source[feature] = value;\n    return credentials;\n}\n","export function setFeature(context, feature, value) {\n    if (!context.__aws_sdk_context) {\n        context.__aws_sdk_context = {\n            features: {},\n        };\n    }\n    else if (!context.__aws_sdk_context.features) {\n        context.__aws_sdk_context.features = {};\n    }\n    context.__aws_sdk_context.features[feature] = value;\n}\n","const chars = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;\nexport const alphabetByEncoding = Object.entries(chars).reduce((acc, [i, c]) => {\n    acc[c] = Number(i);\n    return acc;\n}, {});\nexport const alphabetByValue = chars.split(\"\");\nexport const bitsPerLetter = 6;\nexport const bitsPerByte = 8;\nexport const maxLetterValue = 0b111111;\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n    let totalByteLength = (input.length / 4) * 3;\n    if (input.slice(-2) === \"==\") {\n        totalByteLength -= 2;\n    }\n    else if (input.slice(-1) === \"=\") {\n        totalByteLength--;\n    }\n    const out = new ArrayBuffer(totalByteLength);\n    const dataView = new DataView(out);\n    for (let i = 0; i < input.length; i += 4) {\n        let bits = 0;\n        let bitLength = 0;\n        for (let j = i, limit = i + 3; j <= limit; j++) {\n            if (input[j] !== \"=\") {\n                if (!(input[j] in alphabetByEncoding)) {\n                    throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n                }\n                bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n                bitLength += bitsPerLetter;\n            }\n            else {\n                bits >>= bitsPerLetter;\n            }\n        }\n        const chunkOffset = (i / 4) * 3;\n        bits >>= bitLength % bitsPerByte;\n        const byteLength = Math.floor(bitLength / bitsPerByte);\n        for (let k = 0; k < byteLength; k++) {\n            const offset = (byteLength - k - 1) * bitsPerByte;\n            dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n        }\n    }\n    return new Uint8Array(out);\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (data) => {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n};\n","export const toUtf8 = (input) => {\n    if (typeof input === \"string\") {\n        return input;\n    }\n    if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n        throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n    }\n    return new TextDecoder(\"utf-8\").decode(input);\n};\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(_input) {\n    let input;\n    if (typeof _input === \"string\") {\n        input = fromUtf8(_input);\n    }\n    else {\n        input = _input;\n    }\n    const isArrayLike = typeof input === \"object\" && typeof input.length === \"number\";\n    const isUint8Array = typeof input === \"object\" &&\n        typeof input.byteOffset === \"number\" &&\n        typeof input.byteLength === \"number\";\n    if (!isArrayLike && !isUint8Array) {\n        throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n    }\n    let str = \"\";\n    for (let i = 0; i < input.length; i += 3) {\n        let bits = 0;\n        let bitLength = 0;\n        for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n            bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n            bitLength += bitsPerByte;\n        }\n        const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n        bits <<= bitClusterCount * bitsPerLetter - bitLength;\n        for (let k = 1; k <= bitClusterCount; k++) {\n            const offset = (bitClusterCount - k) * bitsPerLetter;\n            str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n        }\n        str += \"==\".slice(0, 4 - bitClusterCount);\n    }\n    return str;\n}\n","import { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n    static fromString(source, encoding = \"utf-8\") {\n        if (typeof source === \"string\") {\n            if (encoding === \"base64\") {\n                return Uint8ArrayBlobAdapter.mutate(fromBase64(source));\n            }\n            return Uint8ArrayBlobAdapter.mutate(fromUtf8(source));\n        }\n        throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n    }\n    static mutate(source) {\n        Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n        return source;\n    }\n    transformToString(encoding = \"utf-8\") {\n        if (encoding === \"base64\") {\n            return toBase64(this);\n        }\n        return toUtf8(this);\n    }\n}\n","const ReadableStreamRef = typeof ReadableStream === \"function\" ? ReadableStream : function () { };\nexport class ChecksumStream extends ReadableStreamRef {\n}\n","export const isReadableStream = (stream) => typeof ReadableStream === \"function\" &&\n    (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream);\nexport const isBlob = (blob) => {\n    return typeof Blob === \"function\" && (blob?.constructor?.name === Blob.name || blob instanceof Blob);\n};\n","import { toBase64 } from \"@smithy/util-base64\";\nimport { isReadableStream } from \"../stream-type-check\";\nimport { ChecksumStream } from \"./ChecksumStream.browser\";\nexport const createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => {\n    if (!isReadableStream(source)) {\n        throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n    }\n    const encoder = base64Encoder ?? toBase64;\n    if (typeof TransformStream !== \"function\") {\n        throw new Error(\"@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.\");\n    }\n    const transform = new TransformStream({\n        start() { },\n        async transform(chunk, controller) {\n            checksum.update(chunk);\n            controller.enqueue(chunk);\n        },\n        async flush(controller) {\n            const digest = await checksum.digest();\n            const received = encoder(digest);\n            if (expectedChecksum !== received) {\n                const error = new Error(`Checksum mismatch: expected \"${expectedChecksum}\" but received \"${received}\"` +\n                    ` in response header \"${checksumSourceLocation}\".`);\n                controller.error(error);\n            }\n            else {\n                controller.terminate();\n            }\n        },\n    });\n    source.pipeThrough(transform);\n    const readable = transform.readable;\n    Object.setPrototypeOf(readable, ChecksumStream.prototype);\n    return readable;\n};\n","export class ByteArrayCollector {\n    allocByteArray;\n    byteLength = 0;\n    byteArrays = [];\n    constructor(allocByteArray) {\n        this.allocByteArray = allocByteArray;\n    }\n    push(byteArray) {\n        this.byteArrays.push(byteArray);\n        this.byteLength += byteArray.byteLength;\n    }\n    flush() {\n        if (this.byteArrays.length === 1) {\n            const bytes = this.byteArrays[0];\n            this.reset();\n            return bytes;\n        }\n        const aggregation = this.allocByteArray(this.byteLength);\n        let cursor = 0;\n        for (let i = 0; i < this.byteArrays.length; ++i) {\n            const bytes = this.byteArrays[i];\n            aggregation.set(bytes, cursor);\n            cursor += bytes.byteLength;\n        }\n        this.reset();\n        return aggregation;\n    }\n    reset() {\n        this.byteArrays = [];\n        this.byteLength = 0;\n    }\n}\n","import { ByteArrayCollector } from \"./ByteArrayCollector\";\nexport function createBufferedReadableStream(upstream, size, logger) {\n    const reader = upstream.getReader();\n    let streamBufferingLoggedWarning = false;\n    let bytesSeen = 0;\n    const buffers = [\"\", new ByteArrayCollector((size) => new Uint8Array(size))];\n    let mode = -1;\n    const pull = async (controller) => {\n        const { value, done } = await reader.read();\n        const chunk = value;\n        if (done) {\n            if (mode !== -1) {\n                const remainder = flush(buffers, mode);\n                if (sizeOf(remainder) > 0) {\n                    controller.enqueue(remainder);\n                }\n            }\n            controller.close();\n        }\n        else {\n            const chunkMode = modeOf(chunk, false);\n            if (mode !== chunkMode) {\n                if (mode >= 0) {\n                    controller.enqueue(flush(buffers, mode));\n                }\n                mode = chunkMode;\n            }\n            if (mode === -1) {\n                controller.enqueue(chunk);\n                return;\n            }\n            const chunkSize = sizeOf(chunk);\n            bytesSeen += chunkSize;\n            const bufferSize = sizeOf(buffers[mode]);\n            if (chunkSize >= size && bufferSize === 0) {\n                controller.enqueue(chunk);\n            }\n            else {\n                const newSize = merge(buffers, mode, chunk);\n                if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n                    streamBufferingLoggedWarning = true;\n                    logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n                }\n                if (newSize >= size) {\n                    controller.enqueue(flush(buffers, mode));\n                }\n                else {\n                    await pull(controller);\n                }\n            }\n        }\n    };\n    return new ReadableStream({\n        pull,\n    });\n}\nexport const createBufferedReadable = createBufferedReadableStream;\nexport function merge(buffers, mode, chunk) {\n    switch (mode) {\n        case 0:\n            buffers[0] += chunk;\n            return sizeOf(buffers[0]);\n        case 1:\n        case 2:\n            buffers[mode].push(chunk);\n            return sizeOf(buffers[mode]);\n    }\n}\nexport function flush(buffers, mode) {\n    switch (mode) {\n        case 0:\n            const s = buffers[0];\n            buffers[0] = \"\";\n            return s;\n        case 1:\n        case 2:\n            return buffers[mode].flush();\n    }\n    throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`);\n}\nexport function sizeOf(chunk) {\n    return chunk?.byteLength ?? chunk?.length ?? 0;\n}\nexport function modeOf(chunk, allowBuffer = true) {\n    if (allowBuffer && typeof Buffer !== \"undefined\" && chunk instanceof Buffer) {\n        return 2;\n    }\n    if (chunk instanceof Uint8Array) {\n        return 1;\n    }\n    if (typeof chunk === \"string\") {\n        return 0;\n    }\n    return -1;\n}\n","export const getAwsChunkedEncodingStream = (readableStream, options) => {\n    const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n    const checksumRequired = base64Encoder !== undefined &&\n        bodyLengthChecker !== undefined &&\n        checksumAlgorithmFn !== undefined &&\n        checksumLocationName !== undefined &&\n        streamHasher !== undefined;\n    const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n    const reader = readableStream.getReader();\n    return new ReadableStream({\n        async pull(controller) {\n            const { value, done } = await reader.read();\n            if (done) {\n                controller.enqueue(`0\\r\\n`);\n                if (checksumRequired) {\n                    const checksum = base64Encoder(await digest);\n                    controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n                    controller.enqueue(`\\r\\n`);\n                }\n                controller.close();\n            }\n            else {\n                controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n            }\n        },\n    });\n};\n","export async function headStream(stream, bytes) {\n    let byteLengthCounter = 0;\n    const chunks = [];\n    const reader = stream.getReader();\n    let isDone = false;\n    while (!isDone) {\n        const { done, value } = await reader.read();\n        if (value) {\n            chunks.push(value);\n            byteLengthCounter += value?.byteLength ?? 0;\n        }\n        if (byteLengthCounter >= bytes) {\n            break;\n        }\n        isDone = done;\n    }\n    reader.releaseLock();\n    const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n    let offset = 0;\n    for (const chunk of chunks) {\n        if (chunk.byteLength > collected.byteLength - offset) {\n            collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n            break;\n        }\n        else {\n            collected.set(chunk, offset);\n        }\n        offset += chunk.length;\n    }\n    return collected;\n}\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nexport function buildQueryString(query) {\n    const parts = [];\n    for (let key of Object.keys(query).sort()) {\n        const value = query[key];\n        key = escapeUri(key);\n        if (Array.isArray(value)) {\n            for (let i = 0, iLen = value.length; i < iLen; i++) {\n                parts.push(`${key}=${escapeUri(value[i])}`);\n            }\n        }\n        else {\n            let qsEntry = key;\n            if (value || typeof value === \"string\") {\n                qsEntry += `=${escapeUri(value)}`;\n            }\n            parts.push(qsEntry);\n        }\n    }\n    return parts.join(\"&\");\n}\n","export function createRequest(url, requestOptions) {\n    return new Request(url, requestOptions);\n}\n","export function requestTimeout(timeoutInMs = 0) {\n    return new Promise((resolve, reject) => {\n        if (timeoutInMs) {\n            setTimeout(() => {\n                const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n                timeoutError.name = \"TimeoutError\";\n                reject(timeoutError);\n            }, timeoutInMs);\n        }\n    });\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { buildQueryString } from \"@smithy/querystring-builder\";\nimport { createRequest } from \"./create-request\";\nimport { requestTimeout as requestTimeoutFn } from \"./request-timeout\";\nexport const keepAliveSupport = {\n    supported: undefined,\n};\nexport class FetchHttpHandler {\n    config;\n    configProvider;\n    static create(instanceOrOptions) {\n        if (typeof instanceOrOptions?.handle === \"function\") {\n            return instanceOrOptions;\n        }\n        return new FetchHttpHandler(instanceOrOptions);\n    }\n    constructor(options) {\n        if (typeof options === \"function\") {\n            this.configProvider = options().then((opts) => opts || {});\n        }\n        else {\n            this.config = options ?? {};\n            this.configProvider = Promise.resolve(this.config);\n        }\n        if (keepAliveSupport.supported === undefined) {\n            keepAliveSupport.supported = Boolean(typeof Request !== \"undefined\" && \"keepalive\" in createRequest(\"https://[::1]\"));\n        }\n    }\n    destroy() {\n    }\n    async handle(request, { abortSignal, requestTimeout } = {}) {\n        if (!this.config) {\n            this.config = await this.configProvider;\n        }\n        const requestTimeoutInMs = requestTimeout ?? this.config.requestTimeout;\n        const keepAlive = this.config.keepAlive === true;\n        const credentials = this.config.credentials;\n        if (abortSignal?.aborted) {\n            const abortError = buildAbortError(abortSignal);\n            return Promise.reject(abortError);\n        }\n        let path = request.path;\n        const queryString = buildQueryString(request.query || {});\n        if (queryString) {\n            path += `?${queryString}`;\n        }\n        if (request.fragment) {\n            path += `#${request.fragment}`;\n        }\n        let auth = \"\";\n        if (request.username != null || request.password != null) {\n            const username = request.username ?? \"\";\n            const password = request.password ?? \"\";\n            auth = `${username}:${password}@`;\n        }\n        const { port, method } = request;\n        const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n        const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n        const requestOptions = {\n            body,\n            headers: new Headers(request.headers),\n            method: method,\n            credentials,\n        };\n        if (this.config?.cache) {\n            requestOptions.cache = this.config.cache;\n        }\n        if (body) {\n            requestOptions.duplex = \"half\";\n        }\n        if (typeof AbortController !== \"undefined\") {\n            requestOptions.signal = abortSignal;\n        }\n        if (keepAliveSupport.supported) {\n            requestOptions.keepalive = keepAlive;\n        }\n        if (typeof this.config.requestInit === \"function\") {\n            Object.assign(requestOptions, this.config.requestInit(request));\n        }\n        let removeSignalEventListener = () => { };\n        const fetchRequest = createRequest(url, requestOptions);\n        const raceOfPromises = [\n            fetch(fetchRequest).then((response) => {\n                const fetchHeaders = response.headers;\n                const transformedHeaders = {};\n                for (const pair of fetchHeaders.entries()) {\n                    transformedHeaders[pair[0]] = pair[1];\n                }\n                const hasReadableStream = response.body != undefined;\n                if (!hasReadableStream) {\n                    return response.blob().then((body) => ({\n                        response: new HttpResponse({\n                            headers: transformedHeaders,\n                            reason: response.statusText,\n                            statusCode: response.status,\n                            body,\n                        }),\n                    }));\n                }\n                return {\n                    response: new HttpResponse({\n                        headers: transformedHeaders,\n                        reason: response.statusText,\n                        statusCode: response.status,\n                        body: response.body,\n                    }),\n                };\n            }),\n            requestTimeoutFn(requestTimeoutInMs),\n        ];\n        if (abortSignal) {\n            raceOfPromises.push(new Promise((resolve, reject) => {\n                const onAbort = () => {\n                    const abortError = buildAbortError(abortSignal);\n                    reject(abortError);\n                };\n                if (typeof abortSignal.addEventListener === \"function\") {\n                    const signal = abortSignal;\n                    signal.addEventListener(\"abort\", onAbort, { once: true });\n                    removeSignalEventListener = () => signal.removeEventListener(\"abort\", onAbort);\n                }\n                else {\n                    abortSignal.onabort = onAbort;\n                }\n            }));\n        }\n        return Promise.race(raceOfPromises).finally(removeSignalEventListener);\n    }\n    updateHttpClientConfig(key, value) {\n        this.config = undefined;\n        this.configProvider = this.configProvider.then((config) => {\n            config[key] = value;\n            return config;\n        });\n    }\n    httpHandlerConfigs() {\n        return this.config ?? {};\n    }\n}\nfunction buildAbortError(abortSignal) {\n    const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n        ? abortSignal.reason\n        : undefined;\n    if (reason) {\n        if (reason instanceof Error) {\n            const abortError = new Error(\"Request aborted\");\n            abortError.name = \"AbortError\";\n            abortError.cause = reason;\n            return abortError;\n        }\n        const abortError = new Error(String(reason));\n        abortError.name = \"AbortError\";\n        return abortError;\n    }\n    const abortError = new Error(\"Request aborted\");\n    abortError.name = \"AbortError\";\n    return abortError;\n}\n","import { fromBase64 } from \"@smithy/util-base64\";\nexport const streamCollector = async (stream) => {\n    if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n        if (Blob.prototype.arrayBuffer !== undefined) {\n            return new Uint8Array(await stream.arrayBuffer());\n        }\n        return collectBlob(stream);\n    }\n    return collectStream(stream);\n};\nasync function collectBlob(blob) {\n    const base64 = await readToBase64(blob);\n    const arrayBuffer = fromBase64(base64);\n    return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n    const chunks = [];\n    const reader = stream.getReader();\n    let isDone = false;\n    let length = 0;\n    while (!isDone) {\n        const { done, value } = await reader.read();\n        if (value) {\n            chunks.push(value);\n            length += value.length;\n        }\n        isDone = done;\n    }\n    const collected = new Uint8Array(length);\n    let offset = 0;\n    for (const chunk of chunks) {\n        collected.set(chunk, offset);\n        offset += chunk.length;\n    }\n    return collected;\n}\nfunction readToBase64(blob) {\n    return new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onloadend = () => {\n            if (reader.readyState !== 2) {\n                return reject(new Error(\"Reader aborted too early\"));\n            }\n            const result = (reader.result ?? \"\");\n            const commaIndex = result.indexOf(\",\");\n            const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n            resolve(result.substring(dataOffset));\n        };\n        reader.onabort = () => reject(new Error(\"Read aborted\"));\n        reader.onerror = () => reject(reader.error);\n        reader.readAsDataURL(blob);\n    });\n}\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n    let encodedByte = i.toString(16).toLowerCase();\n    if (encodedByte.length === 1) {\n        encodedByte = `0${encodedByte}`;\n    }\n    SHORT_TO_HEX[i] = encodedByte;\n    HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n    if (encoded.length % 2 !== 0) {\n        throw new Error(\"Hex encoded strings must have an even number length\");\n    }\n    const out = new Uint8Array(encoded.length / 2);\n    for (let i = 0; i < encoded.length; i += 2) {\n        const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n        if (encodedByte in HEX_TO_SHORT) {\n            out[i / 2] = HEX_TO_SHORT[encodedByte];\n        }\n        else {\n            throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n        }\n    }\n    return out;\n}\nexport function toHex(bytes) {\n    let out = \"\";\n    for (let i = 0; i < bytes.byteLength; i++) {\n        out += SHORT_TO_HEX[bytes[i]];\n    }\n    return out;\n}\n","import { streamCollector } from \"@smithy/fetch-http-handler\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nimport { isReadableStream } from \"./stream-type-check\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n    if (!isBlobInstance(stream) && !isReadableStream(stream)) {\n        const name = stream?.__proto__?.constructor?.name || stream;\n        throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n    }\n    let transformed = false;\n    const transformToByteArray = async () => {\n        if (transformed) {\n            throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n        }\n        transformed = true;\n        return await streamCollector(stream);\n    };\n    const blobToWebStream = (blob) => {\n        if (typeof blob.stream !== \"function\") {\n            throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n                \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n        }\n        return blob.stream();\n    };\n    return Object.assign(stream, {\n        transformToByteArray: transformToByteArray,\n        transformToString: async (encoding) => {\n            const buf = await transformToByteArray();\n            if (encoding === \"base64\") {\n                return toBase64(buf);\n            }\n            else if (encoding === \"hex\") {\n                return toHex(buf);\n            }\n            else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n                return toUtf8(buf);\n            }\n            else if (typeof TextDecoder === \"function\") {\n                return new TextDecoder(encoding).decode(buf);\n            }\n            else {\n                throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n            }\n        },\n        transformToWebStream: () => {\n            if (transformed) {\n                throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n            }\n            transformed = true;\n            if (isBlobInstance(stream)) {\n                return blobToWebStream(stream);\n            }\n            else if (isReadableStream(stream)) {\n                return stream;\n            }\n            else {\n                throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n            }\n        },\n    });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n","export async function splitStream(stream) {\n    if (typeof stream.stream === \"function\") {\n        stream = stream.stream();\n    }\n    const readableStream = stream;\n    return readableStream.tee();\n}\n","import { DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nexport const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {\n    if (!requestAlgorithmMember) {\n        return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired\n            ? DEFAULT_CHECKSUM_ALGORITHM\n            : undefined;\n    }\n    if (!input[requestAlgorithmMember]) {\n        return undefined;\n    }\n    const checksumAlgorithm = input[requestAlgorithmMember];\n    return checksumAlgorithm;\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const getChecksumLocationName = (algorithm) => algorithm === ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\n","export const hasHeader = (header, headers) => {\n    const soughtHeader = header.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (soughtHeader === headerName.toLowerCase()) {\n            return true;\n        }\n    }\n    return false;\n};\n","export const hasHeaderWithPrefix = (headerPrefix, headers) => {\n    const soughtHeaderPrefix = headerPrefix.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {\n            return true;\n        }\n    }\n    return false;\n};\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n    Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nexport const isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !isArrayBuffer(body);\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n  ownKeys = Object.getOwnPropertyNames || function (o) {\n    var ar = [];\n    for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n    return ar;\n  };\n  return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n        }\n        else s |= 1;\n      }\n      catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n  if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n      return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n          return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n      });\n  }\n  return path;\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __esDecorate,\n  __runInitializers,\n  __propKey,\n  __setFunctionName,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n  __rewriteRelativeImportExtension,\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n    ? function (input) { return Buffer.from(input, \"utf8\"); }\n    : fromUtf8Browser;\nexport function convertToBuffer(data) {\n    // Already a Uint8, do nothing\n    if (data instanceof Uint8Array)\n        return data;\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n//# sourceMappingURL=convertToBuffer.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable) {\n    if (!Uint32Array.from) {\n        var return_array = new Uint32Array(a_lookUpTable.length);\n        var a_index = 0;\n        while (a_index < a_lookUpTable.length) {\n            return_array[a_index] = a_lookUpTable[a_index];\n            a_index += 1;\n        }\n        return return_array;\n    }\n    return Uint32Array.from(a_lookUpTable);\n}\n//# sourceMappingURL=uint32ArrayFrom.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function numToUint8(num) {\n    return new Uint8Array([\n        (num & 0xff000000) >> 24,\n        (num & 0x00ff0000) >> 16,\n        (num & 0x0000ff00) >> 8,\n        num & 0x000000ff,\n    ]);\n}\n//# sourceMappingURL=numToUint8.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32c } from \"./index\";\nvar AwsCrc32c = /** @class */ (function () {\n    function AwsCrc32c() {\n        this.crc32c = new Crc32c();\n    }\n    AwsCrc32c.prototype.update = function (toHash) {\n        if (isEmptyData(toHash))\n            return;\n        this.crc32c.update(convertToBuffer(toHash));\n    };\n    AwsCrc32c.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, numToUint8(this.crc32c.digest())];\n            });\n        });\n    };\n    AwsCrc32c.prototype.reset = function () {\n        this.crc32c = new Crc32c();\n    };\n    return AwsCrc32c;\n}());\nexport { AwsCrc32c };\n//# sourceMappingURL=aws_crc32c.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32c(data) {\n    return new Crc32c().update(data).digest();\n}\nvar Crc32c = /** @class */ (function () {\n    function Crc32c() {\n        this.checksum = 0xffffffff;\n    }\n    Crc32c.prototype.update = function (data) {\n        var e_1, _a;\n        try {\n            for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n                var byte = data_1_1.value;\n                this.checksum =\n                    (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return this;\n    };\n    Crc32c.prototype.digest = function () {\n        return (this.checksum ^ 0xffffffff) >>> 0;\n    };\n    return Crc32c;\n}());\nexport { Crc32c };\n// prettier-ignore\nvar a_lookupTable = [\n    0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n    0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n    0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n    0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n    0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n    0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n    0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n    0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n    0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n    0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n    0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n    0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n    0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n    0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n    0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n    0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n    0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n    0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n    0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n    0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n    0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n    0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n    0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n    0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n    0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n    0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n    0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n    0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n    0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n    0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n    0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n    0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = uint32ArrayFrom(a_lookupTable);\nexport { AwsCrc32c } from \"./aws_crc32c\";\n//# sourceMappingURL=index.js.map","const generateCRC64NVMETable = () => {\n    const sliceLength = 8;\n    const tables = new Array(sliceLength);\n    for (let slice = 0; slice < sliceLength; slice++) {\n        const table = new Array(512);\n        for (let i = 0; i < 256; i++) {\n            let crc = BigInt(i);\n            for (let j = 0; j < 8 * (slice + 1); j++) {\n                if (crc & 1n) {\n                    crc = (crc >> 1n) ^ 0x9a6c9329ac4bc9b5n;\n                }\n                else {\n                    crc = crc >> 1n;\n                }\n            }\n            table[i * 2] = Number((crc >> 32n) & 0xffffffffn);\n            table[i * 2 + 1] = Number(crc & 0xffffffffn);\n        }\n        tables[slice] = new Uint32Array(table);\n    }\n    return tables;\n};\nlet CRC64_NVME_REVERSED_TABLE;\nlet t0, t1, t2, t3;\nlet t4, t5, t6, t7;\nconst ensureTablesInitialized = () => {\n    if (!CRC64_NVME_REVERSED_TABLE) {\n        CRC64_NVME_REVERSED_TABLE = generateCRC64NVMETable();\n        [t0, t1, t2, t3, t4, t5, t6, t7] = CRC64_NVME_REVERSED_TABLE;\n    }\n};\nexport class Crc64Nvme {\n    c1 = 0;\n    c2 = 0;\n    constructor() {\n        ensureTablesInitialized();\n        this.reset();\n    }\n    update(data) {\n        const len = data.length;\n        let i = 0;\n        let crc1 = this.c1;\n        let crc2 = this.c2;\n        while (i + 8 <= len) {\n            const idx0 = ((crc2 ^ data[i++]) & 255) << 1;\n            const idx1 = (((crc2 >>> 8) ^ data[i++]) & 255) << 1;\n            const idx2 = (((crc2 >>> 16) ^ data[i++]) & 255) << 1;\n            const idx3 = (((crc2 >>> 24) ^ data[i++]) & 255) << 1;\n            const idx4 = ((crc1 ^ data[i++]) & 255) << 1;\n            const idx5 = (((crc1 >>> 8) ^ data[i++]) & 255) << 1;\n            const idx6 = (((crc1 >>> 16) ^ data[i++]) & 255) << 1;\n            const idx7 = (((crc1 >>> 24) ^ data[i++]) & 255) << 1;\n            crc1 = t7[idx0] ^ t6[idx1] ^ t5[idx2] ^ t4[idx3] ^ t3[idx4] ^ t2[idx5] ^ t1[idx6] ^ t0[idx7];\n            crc2 =\n                t7[idx0 + 1] ^\n                    t6[idx1 + 1] ^\n                    t5[idx2 + 1] ^\n                    t4[idx3 + 1] ^\n                    t3[idx4 + 1] ^\n                    t2[idx5 + 1] ^\n                    t1[idx6 + 1] ^\n                    t0[idx7 + 1];\n        }\n        while (i < len) {\n            const idx = ((crc2 ^ data[i]) & 255) << 1;\n            crc2 = ((crc2 >>> 8) | ((crc1 & 255) << 24)) >>> 0;\n            crc1 = (crc1 >>> 8) ^ t0[idx];\n            crc2 ^= t0[idx + 1];\n            i++;\n        }\n        this.c1 = crc1;\n        this.c2 = crc2;\n    }\n    async digest() {\n        const c1 = this.c1 ^ 4294967295;\n        const c2 = this.c2 ^ 4294967295;\n        return new Uint8Array([\n            c1 >>> 24,\n            (c1 >>> 16) & 255,\n            (c1 >>> 8) & 255,\n            c1 & 255,\n            c2 >>> 24,\n            (c2 >>> 16) & 255,\n            (c2 >>> 8) & 255,\n            c2 & 255,\n        ]);\n    }\n    reset() {\n        this.c1 = 4294967295;\n        this.c2 = 4294967295;\n    }\n}\n","export const crc64NvmeCrtContainer = {\n    CrtCrc64Nvme: null,\n};\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\nvar AwsCrc32 = /** @class */ (function () {\n    function AwsCrc32() {\n        this.crc32 = new Crc32();\n    }\n    AwsCrc32.prototype.update = function (toHash) {\n        if (isEmptyData(toHash))\n            return;\n        this.crc32.update(convertToBuffer(toHash));\n    };\n    AwsCrc32.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, numToUint8(this.crc32.digest())];\n            });\n        });\n    };\n    AwsCrc32.prototype.reset = function () {\n        this.crc32 = new Crc32();\n    };\n    return AwsCrc32;\n}());\nexport { AwsCrc32 };\n//# sourceMappingURL=aws_crc32.js.map","import { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32(data) {\n    return new Crc32().update(data).digest();\n}\nvar Crc32 = /** @class */ (function () {\n    function Crc32() {\n        this.checksum = 0xffffffff;\n    }\n    Crc32.prototype.update = function (data) {\n        var e_1, _a;\n        try {\n            for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n                var byte = data_1_1.value;\n                this.checksum =\n                    (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return this;\n    };\n    Crc32.prototype.digest = function () {\n        return (this.checksum ^ 0xffffffff) >>> 0;\n    };\n    return Crc32;\n}());\nexport { Crc32 };\n// prettier-ignore\nvar a_lookUpTable = [\n    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = uint32ArrayFrom(a_lookUpTable);\nexport { AwsCrc32 } from \"./aws_crc32\";\n//# sourceMappingURL=index.js.map","import { AwsCrc32 } from \"@aws-crypto/crc32\";\nexport const getCrc32ChecksumAlgorithmFunction = () => AwsCrc32;\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const CLIENT_SUPPORTED_ALGORITHMS = [\n    ChecksumAlgorithm.CRC32,\n    ChecksumAlgorithm.CRC32C,\n    ChecksumAlgorithm.CRC64NVME,\n    ChecksumAlgorithm.SHA1,\n    ChecksumAlgorithm.SHA256,\n];\nexport const PRIORITY_ORDER_ALGORITHMS = [\n    ChecksumAlgorithm.SHA256,\n    ChecksumAlgorithm.SHA1,\n    ChecksumAlgorithm.CRC32,\n    ChecksumAlgorithm.CRC32C,\n    ChecksumAlgorithm.CRC64NVME,\n];\n","import { AwsCrc32c } from \"@aws-crypto/crc32c\";\nimport { Crc64Nvme, crc64NvmeCrtContainer } from \"@aws-sdk/crc64-nvme\";\nimport { ChecksumAlgorithm } from \"./constants\";\nimport { getCrc32ChecksumAlgorithmFunction } from \"./getCrc32ChecksumAlgorithmFunction\";\nimport { CLIENT_SUPPORTED_ALGORITHMS } from \"./types\";\nexport const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => {\n    const { checksumAlgorithms = {} } = config;\n    switch (checksumAlgorithm) {\n        case ChecksumAlgorithm.MD5:\n            return checksumAlgorithms?.MD5 ?? config.md5;\n        case ChecksumAlgorithm.CRC32:\n            return checksumAlgorithms?.CRC32 ?? getCrc32ChecksumAlgorithmFunction();\n        case ChecksumAlgorithm.CRC32C:\n            return checksumAlgorithms?.CRC32C ?? AwsCrc32c;\n        case ChecksumAlgorithm.CRC64NVME:\n            if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== \"function\") {\n                return checksumAlgorithms?.CRC64NVME ?? Crc64Nvme;\n            }\n            return checksumAlgorithms?.CRC64NVME ?? crc64NvmeCrtContainer.CrtCrc64Nvme;\n        case ChecksumAlgorithm.SHA1:\n            return checksumAlgorithms?.SHA1 ?? config.sha1;\n        case ChecksumAlgorithm.SHA256:\n            return checksumAlgorithms?.SHA256 ?? config.sha256;\n        default:\n            if (checksumAlgorithms?.[checksumAlgorithm]) {\n                return checksumAlgorithms[checksumAlgorithm];\n            }\n            throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n                ` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}, or provide an implementation to ` +\n                ` the client constructor checksums field.`);\n    }\n};\n","import { toUint8Array } from \"@smithy/util-utf8\";\nexport const stringHasher = (checksumAlgorithmFn, body) => {\n    const hash = new checksumAlgorithmFn();\n    hash.update(toUint8Array(body || \"\"));\n    return hash.digest();\n};\n","import { setFeature } from \"@aws-sdk/core/client\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { createBufferedReadable } from \"@smithy/util-stream\";\nimport { ChecksumAlgorithm, DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nimport { getChecksumAlgorithmForRequest } from \"./getChecksumAlgorithmForRequest\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { hasHeader } from \"./hasHeader\";\nimport { hasHeaderWithPrefix } from \"./hasHeaderWithPrefix\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nimport { stringHasher } from \"./stringHasher\";\nexport const flexibleChecksumsMiddlewareOptions = {\n    name: \"flexibleChecksumsMiddleware\",\n    step: \"build\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    if (hasHeaderWithPrefix(\"x-amz-checksum-\", args.request.headers)) {\n        return next(args);\n    }\n    const { request, input } = args;\n    const { body: requestBody, headers } = request;\n    const { base64Encoder, streamHasher } = config;\n    const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n    const requestChecksumCalculation = await config.requestChecksumCalculation();\n    const requestAlgorithmMemberName = requestAlgorithmMember?.name;\n    const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;\n    if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {\n        if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {\n            input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;\n            if (requestAlgorithmMemberHttpHeader) {\n                headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;\n            }\n        }\n    }\n    const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n        requestChecksumRequired,\n        requestAlgorithmMember: requestAlgorithmMember?.name,\n        requestChecksumCalculation,\n    });\n    let updatedBody = requestBody;\n    let updatedHeaders = headers;\n    if (checksumAlgorithm) {\n        switch (checksumAlgorithm) {\n            case ChecksumAlgorithm.CRC32:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32\", \"U\");\n                break;\n            case ChecksumAlgorithm.CRC32C:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32C\", \"V\");\n                break;\n            case ChecksumAlgorithm.CRC64NVME:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC64\", \"W\");\n                break;\n            case ChecksumAlgorithm.SHA1:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA1\", \"X\");\n                break;\n            case ChecksumAlgorithm.SHA256:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA256\", \"Y\");\n                break;\n        }\n        const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n        const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n        if (isStreaming(requestBody)) {\n            const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n            updatedBody = getAwsChunkedEncodingStream(typeof config.requestStreamBufferSize === \"number\" && config.requestStreamBufferSize >= 8 * 1024\n                ? createBufferedReadable(requestBody, config.requestStreamBufferSize, context.logger)\n                : requestBody, {\n                base64Encoder,\n                bodyLengthChecker,\n                checksumLocationName,\n                checksumAlgorithmFn,\n                streamHasher,\n            });\n            updatedHeaders = {\n                ...headers,\n                \"content-encoding\": headers[\"content-encoding\"]\n                    ? `${headers[\"content-encoding\"]},aws-chunked`\n                    : \"aws-chunked\",\n                \"transfer-encoding\": \"chunked\",\n                \"x-amz-decoded-content-length\": headers[\"content-length\"],\n                \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n                \"x-amz-trailer\": checksumLocationName,\n            };\n            delete updatedHeaders[\"content-length\"];\n        }\n        else if (!hasHeader(checksumLocationName, headers)) {\n            const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n            updatedHeaders = {\n                ...headers,\n                [checksumLocationName]: base64Encoder(rawChecksum),\n            };\n        }\n    }\n    try {\n        const result = await next({\n            ...args,\n            request: {\n                ...request,\n                headers: updatedHeaders,\n                body: updatedBody,\n            },\n        });\n        return result;\n    }\n    catch (e) {\n        if (e instanceof Error && e.name === \"InvalidChunkSizeError\") {\n            try {\n                if (!e.message.endsWith(\".\")) {\n                    e.message += \".\";\n                }\n                e.message +=\n                    \" Set [requestStreamBufferSize=number e.g. 65_536] in client constructor to instruct AWS SDK to buffer your input stream.\";\n            }\n            catch (ignored) {\n            }\n        }\n        throw e;\n    }\n};\n","import { setFeature } from \"@aws-sdk/core/client\";\nimport { RequestChecksumCalculation, ResponseChecksumValidation } from \"./constants\";\nexport const flexibleChecksumsInputMiddlewareOptions = {\n    name: \"flexibleChecksumsInputMiddleware\",\n    toMiddleware: \"serializerMiddleware\",\n    relation: \"before\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsInputMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    const input = args.input;\n    const { requestValidationModeMember } = middlewareConfig;\n    const requestChecksumCalculation = await config.requestChecksumCalculation();\n    const responseChecksumValidation = await config.responseChecksumValidation();\n    switch (requestChecksumCalculation) {\n        case RequestChecksumCalculation.WHEN_REQUIRED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED\", \"a\");\n            break;\n        case RequestChecksumCalculation.WHEN_SUPPORTED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED\", \"Z\");\n            break;\n    }\n    switch (responseChecksumValidation) {\n        case ResponseChecksumValidation.WHEN_REQUIRED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED\", \"c\");\n            break;\n        case ResponseChecksumValidation.WHEN_SUPPORTED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED\", \"b\");\n            break;\n    }\n    if (requestValidationModeMember && !input[requestValidationModeMember]) {\n        if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {\n            input[requestValidationModeMember] = \"ENABLED\";\n        }\n    }\n    return next(args);\n};\n","import { PRIORITY_ORDER_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n    const validChecksumAlgorithms = [];\n    let i = PRIORITY_ORDER_ALGORITHMS.length;\n    for (const algorithm of responseAlgorithms) {\n        const priority = PRIORITY_ORDER_ALGORITHMS.indexOf(algorithm);\n        if (priority !== -1) {\n            validChecksumAlgorithms[priority] = algorithm;\n        }\n        else {\n            validChecksumAlgorithms[i++] = algorithm;\n        }\n    }\n    return validChecksumAlgorithms.filter(Boolean);\n};\n","export const isChecksumWithPartNumber = (checksum) => {\n    const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n    if (lastHyphenIndex !== -1) {\n        const numberPart = checksum.slice(lastHyphenIndex + 1);\n        if (!numberPart.startsWith(\"0\")) {\n            const number = parseInt(numberPart, 10);\n            if (!isNaN(number) && number >= 1 && number <= 10000) {\n                return true;\n            }\n        }\n    }\n    return false;\n};\n","import { stringHasher } from \"./stringHasher\";\nexport const getChecksum = async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body));\n","import { createChecksumStream } from \"@smithy/util-stream\";\nimport { ChecksumAlgorithm } from \"./constants\";\nimport { getChecksum } from \"./getChecksum\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nexport const validateChecksumFromResponse = async (response, { config, responseAlgorithms, logger }) => {\n    const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n    const { body: responseBody, headers: responseHeaders } = response;\n    for (const algorithm of checksumAlgorithms) {\n        const responseHeader = getChecksumLocationName(algorithm);\n        const checksumFromResponse = responseHeaders[responseHeader];\n        if (checksumFromResponse) {\n            let checksumAlgorithmFn;\n            try {\n                checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n            }\n            catch (error) {\n                if (algorithm === ChecksumAlgorithm.CRC64NVME) {\n                    logger?.warn(`Skipping ${ChecksumAlgorithm.CRC64NVME} checksum validation: ${error.message}`);\n                    continue;\n                }\n                throw error;\n            }\n            const { base64Encoder } = config;\n            if (isStreaming(responseBody)) {\n                response.body = createChecksumStream({\n                    expectedChecksum: checksumFromResponse,\n                    checksumSourceLocation: responseHeader,\n                    checksum: new checksumAlgorithmFn(),\n                    source: responseBody,\n                    base64Encoder,\n                });\n                return;\n            }\n            const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });\n            if (checksum === checksumFromResponse) {\n                break;\n            }\n            throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n                ` in response header \"${responseHeader}\".`);\n        }\n    }\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isChecksumWithPartNumber } from \"./isChecksumWithPartNumber\";\nimport { validateChecksumFromResponse } from \"./validateChecksumFromResponse\";\nexport const flexibleChecksumsResponseMiddlewareOptions = {\n    name: \"flexibleChecksumsResponseMiddleware\",\n    toMiddleware: \"deserializerMiddleware\",\n    relation: \"after\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const input = args.input;\n    const result = await next(args);\n    const response = result.response;\n    const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n    if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n        const { clientName, commandName } = context;\n        const customChecksumAlgorithms = Object.keys(config.checksumAlgorithms ?? {}).filter((algorithm) => {\n            const responseHeader = getChecksumLocationName(algorithm);\n            return response.headers[responseHeader] !== undefined;\n        });\n        const algoList = getChecksumAlgorithmListForResponse([\n            ...(responseAlgorithms ?? []),\n            ...customChecksumAlgorithms,\n        ]);\n        const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" &&\n            commandName === \"GetObjectCommand\" &&\n            algoList.every((algorithm) => {\n                const responseHeader = getChecksumLocationName(algorithm);\n                const checksumFromResponse = response.headers[responseHeader];\n                return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n            });\n        if (isS3WholeObjectMultipartGetResponseChecksum) {\n            return result;\n        }\n        await validateChecksumFromResponse(response, {\n            config,\n            responseAlgorithms: algoList,\n            logger: context.logger,\n        });\n    }\n    return result;\n};\n","import { flexibleChecksumsInputMiddleware, flexibleChecksumsInputMiddlewareOptions, } from \"./flexibleChecksumsInputMiddleware\";\nimport { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions } from \"./flexibleChecksumsMiddleware\";\nimport { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from \"./flexibleChecksumsResponseMiddleware\";\nexport const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n        clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config, middlewareConfig), flexibleChecksumsInputMiddlewareOptions);\n        clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);\n    },\n});\n","import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n","export const normalizeProvider = (input) => {\n    if (typeof input === \"function\")\n        return input;\n    const promisified = Promise.resolve(input);\n    return () => promisified;\n};\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { DEFAULT_REQUEST_CHECKSUM_CALCULATION, DEFAULT_RESPONSE_CHECKSUM_VALIDATION } from \"./constants\";\nexport const resolveFlexibleChecksumsConfig = (input) => {\n    const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;\n    return Object.assign(input, {\n        requestChecksumCalculation: normalizeProvider(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),\n        responseChecksumValidation: normalizeProvider(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),\n        requestStreamBufferSize: Number(requestStreamBufferSize ?? 0),\n        checksumAlgorithms: input.checksumAlgorithms ?? {},\n    });\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n    return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n    if (!HttpRequest.isInstance(args.request))\n        return next(args);\n    const { request } = args;\n    const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n    if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n        delete request.headers[\"host\"];\n        request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n    }\n    else if (!request.headers[\"host\"]) {\n        let host = request.hostname;\n        if (request.port != null)\n            host += `:${request.port}`;\n        request.headers[\"host\"] = host;\n    }\n    return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n    name: \"hostHeaderMiddleware\",\n    step: \"build\",\n    priority: \"low\",\n    tags: [\"HOST\"],\n    override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n    },\n});\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n    try {\n        const response = await next(args);\n        const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n        const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n        const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n        const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n        const { $metadata, ...outputWithoutMetadata } = response.output;\n        logger?.info?.({\n            clientName,\n            commandName,\n            input: inputFilterSensitiveLog(args.input),\n            output: outputFilterSensitiveLog(outputWithoutMetadata),\n            metadata: $metadata,\n        });\n        return response;\n    }\n    catch (error) {\n        const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n        const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n        const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n        logger?.error?.({\n            clientName,\n            commandName,\n            input: inputFilterSensitiveLog(args.input),\n            error,\n            metadata: error.$metadata,\n        });\n        throw error;\n    }\n};\nexport const loggerMiddlewareOptions = {\n    name: \"loggerMiddleware\",\n    tags: [\"LOGGER\"],\n    step: \"initialize\",\n    override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n    },\n});\n","export const recursionDetectionMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"RECURSION_DETECTION\"],\n    name: \"recursionDetectionMiddleware\",\n    override: true,\n    priority: \"low\",\n};\n","export const recursionDetectionMiddleware = () => (next) => async (args) => next(args);\n","import { recursionDetectionMiddlewareOptions } from \"./configuration\";\nimport { recursionDetectionMiddleware } from \"./recursionDetectionMiddleware\";\nexport const getRecursionDetectionPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n    },\n});\n","const getAllAliases = (name, aliases) => {\n    const _aliases = [];\n    if (name) {\n        _aliases.push(name);\n    }\n    if (aliases) {\n        for (const alias of aliases) {\n            _aliases.push(alias);\n        }\n    }\n    return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n    return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nexport const constructStack = () => {\n    let absoluteEntries = [];\n    let relativeEntries = [];\n    let identifyOnResolve = false;\n    const entriesNameSet = new Set();\n    const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n        priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n    const removeByName = (toRemove) => {\n        let isRemoved = false;\n        const filterCb = (entry) => {\n            const aliases = getAllAliases(entry.name, entry.aliases);\n            if (aliases.includes(toRemove)) {\n                isRemoved = true;\n                for (const alias of aliases) {\n                    entriesNameSet.delete(alias);\n                }\n                return false;\n            }\n            return true;\n        };\n        absoluteEntries = absoluteEntries.filter(filterCb);\n        relativeEntries = relativeEntries.filter(filterCb);\n        return isRemoved;\n    };\n    const removeByReference = (toRemove) => {\n        let isRemoved = false;\n        const filterCb = (entry) => {\n            if (entry.middleware === toRemove) {\n                isRemoved = true;\n                for (const alias of getAllAliases(entry.name, entry.aliases)) {\n                    entriesNameSet.delete(alias);\n                }\n                return false;\n            }\n            return true;\n        };\n        absoluteEntries = absoluteEntries.filter(filterCb);\n        relativeEntries = relativeEntries.filter(filterCb);\n        return isRemoved;\n    };\n    const cloneTo = (toStack) => {\n        absoluteEntries.forEach((entry) => {\n            toStack.add(entry.middleware, { ...entry });\n        });\n        relativeEntries.forEach((entry) => {\n            toStack.addRelativeTo(entry.middleware, { ...entry });\n        });\n        toStack.identifyOnResolve?.(stack.identifyOnResolve());\n        return toStack;\n    };\n    const expandRelativeMiddlewareList = (from) => {\n        const expandedMiddlewareList = [];\n        from.before.forEach((entry) => {\n            if (entry.before.length === 0 && entry.after.length === 0) {\n                expandedMiddlewareList.push(entry);\n            }\n            else {\n                expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n            }\n        });\n        expandedMiddlewareList.push(from);\n        from.after.reverse().forEach((entry) => {\n            if (entry.before.length === 0 && entry.after.length === 0) {\n                expandedMiddlewareList.push(entry);\n            }\n            else {\n                expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n            }\n        });\n        return expandedMiddlewareList;\n    };\n    const getMiddlewareList = (debug = false) => {\n        const normalizedAbsoluteEntries = [];\n        const normalizedRelativeEntries = [];\n        const normalizedEntriesNameMap = {};\n        absoluteEntries.forEach((entry) => {\n            const normalizedEntry = {\n                ...entry,\n                before: [],\n                after: [],\n            };\n            for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n                normalizedEntriesNameMap[alias] = normalizedEntry;\n            }\n            normalizedAbsoluteEntries.push(normalizedEntry);\n        });\n        relativeEntries.forEach((entry) => {\n            const normalizedEntry = {\n                ...entry,\n                before: [],\n                after: [],\n            };\n            for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n                normalizedEntriesNameMap[alias] = normalizedEntry;\n            }\n            normalizedRelativeEntries.push(normalizedEntry);\n        });\n        normalizedRelativeEntries.forEach((entry) => {\n            if (entry.toMiddleware) {\n                const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n                if (toMiddleware === undefined) {\n                    if (debug) {\n                        return;\n                    }\n                    throw new Error(`${entry.toMiddleware} is not found when adding ` +\n                        `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n                        `middleware ${entry.relation} ${entry.toMiddleware}`);\n                }\n                if (entry.relation === \"after\") {\n                    toMiddleware.after.push(entry);\n                }\n                if (entry.relation === \"before\") {\n                    toMiddleware.before.push(entry);\n                }\n            }\n        });\n        const mainChain = sort(normalizedAbsoluteEntries)\n            .map(expandRelativeMiddlewareList)\n            .reduce((wholeList, expandedMiddlewareList) => {\n            wholeList.push(...expandedMiddlewareList);\n            return wholeList;\n        }, []);\n        return mainChain;\n    };\n    const stack = {\n        add: (middleware, options = {}) => {\n            const { name, override, aliases: _aliases } = options;\n            const entry = {\n                step: \"initialize\",\n                priority: \"normal\",\n                middleware,\n                ...options,\n            };\n            const aliases = getAllAliases(name, _aliases);\n            if (aliases.length > 0) {\n                if (aliases.some((alias) => entriesNameSet.has(alias))) {\n                    if (!override)\n                        throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n                    for (const alias of aliases) {\n                        const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n                        if (toOverrideIndex === -1) {\n                            continue;\n                        }\n                        const toOverride = absoluteEntries[toOverrideIndex];\n                        if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n                            throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n                                `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n                                `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n                                `${entry.priority} priority in ${entry.step} step.`);\n                        }\n                        absoluteEntries.splice(toOverrideIndex, 1);\n                    }\n                }\n                for (const alias of aliases) {\n                    entriesNameSet.add(alias);\n                }\n            }\n            absoluteEntries.push(entry);\n        },\n        addRelativeTo: (middleware, options) => {\n            const { name, override, aliases: _aliases } = options;\n            const entry = {\n                middleware,\n                ...options,\n            };\n            const aliases = getAllAliases(name, _aliases);\n            if (aliases.length > 0) {\n                if (aliases.some((alias) => entriesNameSet.has(alias))) {\n                    if (!override)\n                        throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n                    for (const alias of aliases) {\n                        const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n                        if (toOverrideIndex === -1) {\n                            continue;\n                        }\n                        const toOverride = relativeEntries[toOverrideIndex];\n                        if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n                            throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n                                `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n                                `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n                                `\"${entry.toMiddleware}\" middleware.`);\n                        }\n                        relativeEntries.splice(toOverrideIndex, 1);\n                    }\n                }\n                for (const alias of aliases) {\n                    entriesNameSet.add(alias);\n                }\n            }\n            relativeEntries.push(entry);\n        },\n        clone: () => cloneTo(constructStack()),\n        use: (plugin) => {\n            plugin.applyToStack(stack);\n        },\n        remove: (toRemove) => {\n            if (typeof toRemove === \"string\")\n                return removeByName(toRemove);\n            else\n                return removeByReference(toRemove);\n        },\n        removeByTag: (toRemove) => {\n            let isRemoved = false;\n            const filterCb = (entry) => {\n                const { tags, name, aliases: _aliases } = entry;\n                if (tags && tags.includes(toRemove)) {\n                    const aliases = getAllAliases(name, _aliases);\n                    for (const alias of aliases) {\n                        entriesNameSet.delete(alias);\n                    }\n                    isRemoved = true;\n                    return false;\n                }\n                return true;\n            };\n            absoluteEntries = absoluteEntries.filter(filterCb);\n            relativeEntries = relativeEntries.filter(filterCb);\n            return isRemoved;\n        },\n        concat: (from) => {\n            const cloned = cloneTo(constructStack());\n            cloned.use(from);\n            cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n            return cloned;\n        },\n        applyToStack: cloneTo,\n        identify: () => {\n            return getMiddlewareList(true).map((mw) => {\n                const step = mw.step ??\n                    mw.relation +\n                        \" \" +\n                        mw.toMiddleware;\n                return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n            });\n        },\n        identifyOnResolve(toggle) {\n            if (typeof toggle === \"boolean\")\n                identifyOnResolve = toggle;\n            return identifyOnResolve;\n        },\n        resolve: (handler, context) => {\n            for (const middleware of getMiddlewareList()\n                .map((entry) => entry.middleware)\n                .reverse()) {\n                handler = middleware(handler, context);\n            }\n            if (identifyOnResolve) {\n                console.log(stack.identify());\n            }\n            return handler;\n        },\n    };\n    return stack;\n};\nconst stepWeights = {\n    initialize: 5,\n    serialize: 4,\n    build: 3,\n    finalizeRequest: 2,\n    deserialize: 1,\n};\nconst priorityWeights = {\n    high: 3,\n    normal: 2,\n    low: 1,\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Client {\n    config;\n    middlewareStack = constructStack();\n    initConfig;\n    handlers;\n    constructor(config) {\n        this.config = config;\n        const { protocol, protocolSettings } = config;\n        if (protocolSettings) {\n            if (typeof protocol === \"function\") {\n                config.protocol = new protocol(protocolSettings);\n            }\n        }\n    }\n    send(command, optionsOrCb, cb) {\n        const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n        const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n        const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n        let handler;\n        if (useHandlerCache) {\n            if (!this.handlers) {\n                this.handlers = new WeakMap();\n            }\n            const handlers = this.handlers;\n            if (handlers.has(command.constructor)) {\n                handler = handlers.get(command.constructor);\n            }\n            else {\n                handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n                handlers.set(command.constructor, handler);\n            }\n        }\n        else {\n            delete this.handlers;\n            handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n        }\n        if (callback) {\n            handler(command)\n                .then((result) => callback(null, result.output), (err) => callback(err))\n                .catch(() => { });\n        }\n        else {\n            return handler(command).then((result) => result.output);\n        }\n    }\n    destroy() {\n        this.config?.requestHandler?.destroy?.();\n        delete this.handlers;\n    }\n}\n","import { Uint8ArrayBlobAdapter } from \"@smithy/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n    if (streamBody instanceof Uint8Array) {\n        return Uint8ArrayBlobAdapter.mutate(streamBody);\n    }\n    if (!streamBody) {\n        return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n    }\n    const fromContext = context.streamCollector(streamBody);\n    return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","export function extendedEncodeURIComponent(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n        return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n    });\n}\n","export const deref = (schemaRef) => {\n    if (typeof schemaRef === \"function\") {\n        return schemaRef();\n    }\n    return schemaRef;\n};\n","export const operation = (namespace, name, traits, input, output) => ({\n    name,\n    namespace,\n    traits,\n    input,\n    output,\n});\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { operation } from \"../schemas/operation\";\nexport const schemaDeserializationMiddleware = (config) => (next, context) => async (args) => {\n    const { response } = await next(args);\n    const { operationSchema } = getSmithyContext(context);\n    const [, ns, n, t, i, o] = operationSchema ?? [];\n    try {\n        const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), {\n            ...config,\n            ...context,\n        }, response);\n        return {\n            response,\n            output: parsed,\n        };\n    }\n    catch (error) {\n        Object.defineProperty(error, \"$response\", {\n            value: response,\n            enumerable: false,\n            writable: false,\n            configurable: false,\n        });\n        if (!(\"$metadata\" in error)) {\n            const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n            try {\n                error.message += \"\\n  \" + hint;\n            }\n            catch (e) {\n                if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n                    console.warn(hint);\n                }\n                else {\n                    context.logger?.warn?.(hint);\n                }\n            }\n            if (typeof error.$responseBodyText !== \"undefined\") {\n                if (error.$response) {\n                    error.$response.body = error.$responseBodyText;\n                }\n            }\n            try {\n                if (HttpResponse.isInstance(response)) {\n                    const { headers = {} } = response;\n                    const headerEntries = Object.entries(headers);\n                    error.$metadata = {\n                        httpStatusCode: response.statusCode,\n                        requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n                        extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n                        cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n                    };\n                }\n            }\n            catch (e) {\n            }\n        }\n        throw error;\n    }\n};\nconst findHeader = (pattern, headers) => {\n    return (headers.find(([k]) => {\n        return k.match(pattern);\n    }) || [void 0, void 1])[1];\n};\n","export function parseQueryString(querystring) {\n    const query = {};\n    querystring = querystring.replace(/^\\?/, \"\");\n    if (querystring) {\n        for (const pair of querystring.split(\"&\")) {\n            let [key, value = null] = pair.split(\"=\");\n            key = decodeURIComponent(key);\n            if (value) {\n                value = decodeURIComponent(value);\n            }\n            if (!(key in query)) {\n                query[key] = value;\n            }\n            else if (Array.isArray(query[key])) {\n                query[key].push(value);\n            }\n            else {\n                query[key] = [query[key], value];\n            }\n        }\n    }\n    return query;\n}\n","import { parseQueryString } from \"@smithy/querystring-parser\";\nexport const parseUrl = (url) => {\n    if (typeof url === \"string\") {\n        return parseUrl(new URL(url));\n    }\n    const { hostname, pathname, port, protocol, search } = url;\n    let query;\n    if (search) {\n        query = parseQueryString(search);\n    }\n    return {\n        hostname,\n        port: port ? parseInt(port) : undefined,\n        protocol,\n        path: pathname,\n        query,\n    };\n};\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n    if (typeof endpoint === \"object\") {\n        if (\"url\" in endpoint) {\n            const v1Endpoint = parseUrl(endpoint.url);\n            if (endpoint.headers) {\n                v1Endpoint.headers = {};\n                for (const [name, values] of Object.entries(endpoint.headers)) {\n                    v1Endpoint.headers[name.toLowerCase()] = values.join(\", \");\n                }\n            }\n            return v1Endpoint;\n        }\n        return endpoint;\n    }\n    return parseUrl(endpoint);\n};\n","import { toEndpointV1 } from \"@smithy/core/endpoints\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { operation } from \"../schemas/operation\";\nexport const schemaSerializationMiddleware = (config) => (next, context) => async (args) => {\n    const { operationSchema } = getSmithyContext(context);\n    const [, ns, n, t, i, o] = operationSchema ?? [];\n    const endpoint = context.endpointV2\n        ? async () => toEndpointV1(context.endpointV2)\n        : config.endpoint;\n    const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, {\n        ...config,\n        ...context,\n        endpoint,\n    });\n    return next({\n        ...args,\n        request,\n    });\n};\n","import { schemaDeserializationMiddleware } from \"./schemaDeserializationMiddleware\";\nimport { schemaSerializationMiddleware } from \"./schemaSerializationMiddleware\";\nexport const deserializerMiddlewareOption = {\n    name: \"deserializerMiddleware\",\n    step: \"deserialize\",\n    tags: [\"DESERIALIZER\"],\n    override: true,\n};\nexport const serializerMiddlewareOption = {\n    name: \"serializerMiddleware\",\n    step: \"serialize\",\n    tags: [\"SERIALIZER\"],\n    override: true,\n};\nexport function getSchemaSerdePlugin(config) {\n    return {\n        applyToStack: (commandStack) => {\n            commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption);\n            commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption);\n            config.protocol.setSerdeContext(config);\n        },\n    };\n}\n","export const traitsCache = [];\nexport function translateTraits(indicator) {\n    if (typeof indicator === \"object\") {\n        return indicator;\n    }\n    indicator = indicator | 0;\n    if (traitsCache[indicator]) {\n        return traitsCache[indicator];\n    }\n    const traits = {};\n    let i = 0;\n    for (const trait of [\n        \"httpLabel\",\n        \"idempotent\",\n        \"idempotencyToken\",\n        \"sensitive\",\n        \"httpPayload\",\n        \"httpResponseCode\",\n        \"httpQueryParams\",\n    ]) {\n        if (((indicator >> i++) & 1) === 1) {\n            traits[trait] = 1;\n        }\n    }\n    return (traitsCache[indicator] = traits);\n}\n","import { deref } from \"../deref\";\nimport { translateTraits } from \"./translateTraits\";\nconst anno = {\n    it: Symbol.for(\"@smithy/nor-struct-it\"),\n    ns: Symbol.for(\"@smithy/ns\"),\n};\nexport const simpleSchemaCacheN = [];\nexport const simpleSchemaCacheS = {};\nexport class NormalizedSchema {\n    ref;\n    memberName;\n    static symbol = Symbol.for(\"@smithy/nor\");\n    symbol = NormalizedSchema.symbol;\n    name;\n    schema;\n    _isMemberSchema;\n    traits;\n    memberTraits;\n    normalizedTraits;\n    constructor(ref, memberName) {\n        this.ref = ref;\n        this.memberName = memberName;\n        const traitStack = [];\n        let _ref = ref;\n        let schema = ref;\n        this._isMemberSchema = false;\n        while (isMemberSchema(_ref)) {\n            traitStack.push(_ref[1]);\n            _ref = _ref[0];\n            schema = deref(_ref);\n            this._isMemberSchema = true;\n        }\n        if (traitStack.length > 0) {\n            this.memberTraits = {};\n            for (let i = traitStack.length - 1; i >= 0; --i) {\n                const traitSet = traitStack[i];\n                Object.assign(this.memberTraits, translateTraits(traitSet));\n            }\n        }\n        else {\n            this.memberTraits = 0;\n        }\n        if (schema instanceof NormalizedSchema) {\n            const computedMemberTraits = this.memberTraits;\n            Object.assign(this, schema);\n            this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits());\n            this.normalizedTraits = void 0;\n            this.memberName = memberName ?? schema.memberName;\n            return;\n        }\n        this.schema = deref(schema);\n        if (isStaticSchema(this.schema)) {\n            this.name = `${this.schema[1]}#${this.schema[2]}`;\n            this.traits = this.schema[3];\n        }\n        else {\n            this.name = this.memberName ?? String(schema);\n            this.traits = 0;\n        }\n        if (this._isMemberSchema && !memberName) {\n            throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`);\n        }\n    }\n    static [Symbol.hasInstance](lhs) {\n        const isPrototype = this.prototype.isPrototypeOf(lhs);\n        if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n            const ns = lhs;\n            return ns.symbol === this.symbol;\n        }\n        return isPrototype;\n    }\n    static of(ref) {\n        const keyAble = typeof ref === \"function\" || (typeof ref === \"object\" && ref !== null);\n        if (typeof ref === \"number\") {\n            if (simpleSchemaCacheN[ref]) {\n                return simpleSchemaCacheN[ref];\n            }\n        }\n        else if (typeof ref === \"string\") {\n            if (simpleSchemaCacheS[ref]) {\n                return simpleSchemaCacheS[ref];\n            }\n        }\n        else if (keyAble) {\n            if (ref[anno.ns]) {\n                return ref[anno.ns];\n            }\n        }\n        const sc = deref(ref);\n        if (sc instanceof NormalizedSchema) {\n            return sc;\n        }\n        if (isMemberSchema(sc)) {\n            const [ns, traits] = sc;\n            if (ns instanceof NormalizedSchema) {\n                Object.assign(ns.getMergedTraits(), translateTraits(traits));\n                return ns;\n            }\n            throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`);\n        }\n        const ns = new NormalizedSchema(sc);\n        if (keyAble) {\n            return (ref[anno.ns] = ns);\n        }\n        if (typeof sc === \"string\") {\n            return (simpleSchemaCacheS[sc] = ns);\n        }\n        if (typeof sc === \"number\") {\n            return (simpleSchemaCacheN[sc] = ns);\n        }\n        return ns;\n    }\n    getSchema() {\n        const sc = this.schema;\n        if (Array.isArray(sc) && sc[0] === 0) {\n            return sc[4];\n        }\n        return sc;\n    }\n    getName(withNamespace = false) {\n        const { name } = this;\n        const short = !withNamespace && name && name.includes(\"#\");\n        return short ? name.split(\"#\")[1] : name || undefined;\n    }\n    getMemberName() {\n        return this.memberName;\n    }\n    isMemberSchema() {\n        return this._isMemberSchema;\n    }\n    isListSchema() {\n        const sc = this.getSchema();\n        return typeof sc === \"number\"\n            ? sc >= 64 && sc < 128\n            : sc[0] === 1;\n    }\n    isMapSchema() {\n        const sc = this.getSchema();\n        return typeof sc === \"number\"\n            ? sc >= 128 && sc <= 0b1111_1111\n            : sc[0] === 2;\n    }\n    isStructSchema() {\n        const sc = this.getSchema();\n        if (typeof sc !== \"object\") {\n            return false;\n        }\n        const id = sc[0];\n        return (id === 3 ||\n            id === -3 ||\n            id === 4);\n    }\n    isUnionSchema() {\n        const sc = this.getSchema();\n        if (typeof sc !== \"object\") {\n            return false;\n        }\n        return sc[0] === 4;\n    }\n    isBlobSchema() {\n        const sc = this.getSchema();\n        return sc === 21 || sc === 42;\n    }\n    isTimestampSchema() {\n        const sc = this.getSchema();\n        return (typeof sc === \"number\" &&\n            sc >= 4 &&\n            sc <= 7);\n    }\n    isUnitSchema() {\n        return this.getSchema() === \"unit\";\n    }\n    isDocumentSchema() {\n        return this.getSchema() === 15;\n    }\n    isStringSchema() {\n        return this.getSchema() === 0;\n    }\n    isBooleanSchema() {\n        return this.getSchema() === 2;\n    }\n    isNumericSchema() {\n        return this.getSchema() === 1;\n    }\n    isBigIntegerSchema() {\n        return this.getSchema() === 17;\n    }\n    isBigDecimalSchema() {\n        return this.getSchema() === 19;\n    }\n    isStreaming() {\n        const { streaming } = this.getMergedTraits();\n        return !!streaming || this.getSchema() === 42;\n    }\n    isIdempotencyToken() {\n        return !!this.getMergedTraits().idempotencyToken;\n    }\n    getMergedTraits() {\n        return (this.normalizedTraits ??\n            (this.normalizedTraits = {\n                ...this.getOwnTraits(),\n                ...this.getMemberTraits(),\n            }));\n    }\n    getMemberTraits() {\n        return translateTraits(this.memberTraits);\n    }\n    getOwnTraits() {\n        return translateTraits(this.traits);\n    }\n    getKeySchema() {\n        const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()];\n        if (!isDoc && !isMap) {\n            throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`);\n        }\n        const schema = this.getSchema();\n        const memberSchema = isDoc\n            ? 15\n            : schema[4] ?? 0;\n        return member([memberSchema, 0], \"key\");\n    }\n    getValueSchema() {\n        const sc = this.getSchema();\n        const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()];\n        const memberSchema = typeof sc === \"number\"\n            ? 0b0011_1111 & sc\n            : sc && typeof sc === \"object\" && (isMap || isList)\n                ? sc[3 + sc[0]]\n                : isDoc\n                    ? 15\n                    : void 0;\n        if (memberSchema != null) {\n            return member([memberSchema, 0], isMap ? \"value\" : \"member\");\n        }\n        throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`);\n    }\n    getMemberSchema(memberName) {\n        const struct = this.getSchema();\n        if (this.isStructSchema() && struct[4].includes(memberName)) {\n            const i = struct[4].indexOf(memberName);\n            const memberSchema = struct[5][i];\n            return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName);\n        }\n        if (this.isDocumentSchema()) {\n            return member([15, 0], memberName);\n        }\n        throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`);\n    }\n    getMemberSchemas() {\n        const buffer = {};\n        try {\n            for (const [k, v] of this.structIterator()) {\n                buffer[k] = v;\n            }\n        }\n        catch (ignored) { }\n        return buffer;\n    }\n    getEventStreamMember() {\n        if (this.isStructSchema()) {\n            for (const [memberName, memberSchema] of this.structIterator()) {\n                if (memberSchema.isStreaming() && memberSchema.isStructSchema()) {\n                    return memberName;\n                }\n            }\n        }\n        return \"\";\n    }\n    *structIterator() {\n        if (this.isUnitSchema()) {\n            return;\n        }\n        if (!this.isStructSchema()) {\n            throw new Error(\"@smithy/core/schema - cannot iterate non-struct schema.\");\n        }\n        const struct = this.getSchema();\n        const z = struct[4].length;\n        let it = struct[anno.it];\n        if (it && z === it.length) {\n            yield* it;\n            return;\n        }\n        it = Array(z);\n        for (let i = 0; i < z; ++i) {\n            const k = struct[4][i];\n            const v = member([struct[5][i], 0], k);\n            yield (it[i] = [k, v]);\n        }\n        struct[anno.it] = it;\n    }\n}\nfunction member(memberSchema, memberName) {\n    if (memberSchema instanceof NormalizedSchema) {\n        return Object.assign(memberSchema, {\n            memberName,\n            _isMemberSchema: true,\n        });\n    }\n    const internalCtorAccess = NormalizedSchema;\n    return new internalCtorAccess(memberSchema, memberName);\n}\nconst isMemberSchema = (sc) => Array.isArray(sc) && sc.length === 2;\nexport const isStaticSchema = (sc) => Array.isArray(sc) && sc.length >= 5;\n","export class TypeRegistry {\n    namespace;\n    schemas;\n    exceptions;\n    static registries = new Map();\n    constructor(namespace, schemas = new Map(), exceptions = new Map()) {\n        this.namespace = namespace;\n        this.schemas = schemas;\n        this.exceptions = exceptions;\n    }\n    static for(namespace) {\n        if (!TypeRegistry.registries.has(namespace)) {\n            TypeRegistry.registries.set(namespace, new TypeRegistry(namespace));\n        }\n        return TypeRegistry.registries.get(namespace);\n    }\n    copyFrom(other) {\n        const { schemas, exceptions } = this;\n        for (const [k, v] of other.schemas) {\n            if (!schemas.has(k)) {\n                schemas.set(k, v);\n            }\n        }\n        for (const [k, v] of other.exceptions) {\n            if (!exceptions.has(k)) {\n                exceptions.set(k, v);\n            }\n        }\n    }\n    register(shapeId, schema) {\n        const qualifiedName = this.normalizeShapeId(shapeId);\n        for (const r of [this, TypeRegistry.for(qualifiedName.split(\"#\")[0])]) {\n            r.schemas.set(qualifiedName, schema);\n        }\n    }\n    getSchema(shapeId) {\n        const id = this.normalizeShapeId(shapeId);\n        if (!this.schemas.has(id)) {\n            throw new Error(`@smithy/core/schema - schema not found for ${id}`);\n        }\n        return this.schemas.get(id);\n    }\n    registerError(es, ctor) {\n        const $error = es;\n        const ns = $error[1];\n        for (const r of [this, TypeRegistry.for(ns)]) {\n            r.schemas.set(ns + \"#\" + $error[2], $error);\n            r.exceptions.set($error, ctor);\n        }\n    }\n    getErrorCtor(es) {\n        const $error = es;\n        if (this.exceptions.has($error)) {\n            return this.exceptions.get($error);\n        }\n        const registry = TypeRegistry.for($error[1]);\n        return registry.exceptions.get($error);\n    }\n    getBaseException() {\n        for (const exceptionKey of this.exceptions.keys()) {\n            if (Array.isArray(exceptionKey)) {\n                const [, ns, name] = exceptionKey;\n                const id = ns + \"#\" + name;\n                if (id.startsWith(\"smithy.ts.sdk.synthetic.\") && id.endsWith(\"ServiceException\")) {\n                    return exceptionKey;\n                }\n            }\n        }\n        return undefined;\n    }\n    find(predicate) {\n        return [...this.schemas.values()].find(predicate);\n    }\n    clear() {\n        this.schemas.clear();\n        this.exceptions.clear();\n    }\n    normalizeShapeId(shapeId) {\n        if (shapeId.includes(\"#\")) {\n            return shapeId;\n        }\n        return this.namespace + \"#\" + shapeId;\n    }\n}\n","export const parseBoolean = (value) => {\n    switch (value) {\n        case \"true\":\n            return true;\n        case \"false\":\n            return false;\n        default:\n            throw new Error(`Unable to parse boolean value \"${value}\"`);\n    }\n};\nexport const expectBoolean = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"number\") {\n        if (value === 0 || value === 1) {\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n        }\n        if (value === 0) {\n            return false;\n        }\n        if (value === 1) {\n            return true;\n        }\n    }\n    if (typeof value === \"string\") {\n        const lower = value.toLowerCase();\n        if (lower === \"false\" || lower === \"true\") {\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n        }\n        if (lower === \"false\") {\n            return false;\n        }\n        if (lower === \"true\") {\n            return true;\n        }\n    }\n    if (typeof value === \"boolean\") {\n        return value;\n    }\n    throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"string\") {\n        const parsed = parseFloat(value);\n        if (!Number.isNaN(parsed)) {\n            if (String(parsed) !== String(value)) {\n                logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n            }\n            return parsed;\n        }\n    }\n    if (typeof value === \"number\") {\n        return value;\n    }\n    throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n    const expected = expectNumber(value);\n    if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n        if (Math.abs(expected) > MAX_FLOAT) {\n            throw new TypeError(`Expected 32-bit float, got ${value}`);\n        }\n    }\n    return expected;\n};\nexport const expectLong = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (Number.isInteger(value) && !Number.isNaN(value)) {\n        return value;\n    }\n    throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n    const expected = expectLong(value);\n    if (expected !== undefined && castInt(expected, size) !== expected) {\n        throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n    }\n    return expected;\n};\nconst castInt = (value, size) => {\n    switch (size) {\n        case 32:\n            return Int32Array.of(value)[0];\n        case 16:\n            return Int16Array.of(value)[0];\n        case 8:\n            return Int8Array.of(value)[0];\n    }\n};\nexport const expectNonNull = (value, location) => {\n    if (value === null || value === undefined) {\n        if (location) {\n            throw new TypeError(`Expected a non-null value for ${location}`);\n        }\n        throw new TypeError(\"Expected a non-null value\");\n    }\n    return value;\n};\nexport const expectObject = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"object\" && !Array.isArray(value)) {\n        return value;\n    }\n    const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n    throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"string\") {\n        return value;\n    }\n    if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n        logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n        return String(value);\n    }\n    throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    const asObject = expectObject(value);\n    const setKeys = Object.entries(asObject)\n        .filter(([, v]) => v != null)\n        .map(([k]) => k);\n    if (setKeys.length === 0) {\n        throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n    }\n    if (setKeys.length > 1) {\n        throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n    }\n    return asObject;\n};\nexport const strictParseDouble = (value) => {\n    if (typeof value == \"string\") {\n        return expectNumber(parseNumber(value));\n    }\n    return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n    if (typeof value == \"string\") {\n        return expectFloat32(parseNumber(value));\n    }\n    return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n    const matches = value.match(NUMBER_REGEX);\n    if (matches === null || matches[0].length !== value.length) {\n        throw new TypeError(`Expected real number, got implicit NaN`);\n    }\n    return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n    if (typeof value == \"string\") {\n        return parseFloatString(value);\n    }\n    return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n    if (typeof value == \"string\") {\n        return parseFloatString(value);\n    }\n    return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n    switch (value) {\n        case \"NaN\":\n            return NaN;\n        case \"Infinity\":\n            return Infinity;\n        case \"-Infinity\":\n            return -Infinity;\n        default:\n            throw new Error(`Unable to parse float value: ${value}`);\n    }\n};\nexport const strictParseLong = (value) => {\n    if (typeof value === \"string\") {\n        return expectLong(parseNumber(value));\n    }\n    return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n    if (typeof value === \"string\") {\n        return expectInt32(parseNumber(value));\n    }\n    return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n    if (typeof value === \"string\") {\n        return expectShort(parseNumber(value));\n    }\n    return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n    if (typeof value === \"string\") {\n        return expectByte(parseNumber(value));\n    }\n    return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n    return String(new TypeError(message).stack || message)\n        .split(\"\\n\")\n        .slice(0, 5)\n        .filter((s) => !s.includes(\"stackTraceWarning\"))\n        .join(\"\\n\");\n};\nexport const logger = {\n    warn: console.warn,\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n    const year = date.getUTCFullYear();\n    const month = date.getUTCMonth();\n    const dayOfWeek = date.getUTCDay();\n    const dayOfMonthInt = date.getUTCDate();\n    const hoursInt = date.getUTCHours();\n    const minutesInt = date.getUTCMinutes();\n    const secondsInt = date.getUTCSeconds();\n    const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n    const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n    const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n    const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n    return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value !== \"string\") {\n        throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n    }\n    const match = RFC3339.exec(value);\n    if (!match) {\n        throw new TypeError(\"Invalid RFC-3339 date-time value\");\n    }\n    const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n    const year = strictParseShort(stripLeadingZeroes(yearStr));\n    const month = parseDateValue(monthStr, \"month\", 1, 12);\n    const day = parseDateValue(dayStr, \"day\", 1, 31);\n    return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value !== \"string\") {\n        throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n    }\n    const match = RFC3339_WITH_OFFSET.exec(value);\n    if (!match) {\n        throw new TypeError(\"Invalid RFC-3339 date-time value\");\n    }\n    const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n    const year = strictParseShort(stripLeadingZeroes(yearStr));\n    const month = parseDateValue(monthStr, \"month\", 1, 12);\n    const day = parseDateValue(dayStr, \"day\", 1, 31);\n    const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n    if (offsetStr.toUpperCase() != \"Z\") {\n        date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n    }\n    return date;\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value !== \"string\") {\n        throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n    }\n    let match = IMF_FIXDATE.exec(value);\n    if (match) {\n        const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n        return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n    }\n    match = RFC_850_DATE.exec(value);\n    if (match) {\n        const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n        return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n            hours,\n            minutes,\n            seconds,\n            fractionalMilliseconds,\n        }));\n    }\n    match = ASC_TIME.exec(value);\n    if (match) {\n        const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n        return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n    }\n    throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    let valueAsDouble;\n    if (typeof value === \"number\") {\n        valueAsDouble = value;\n    }\n    else if (typeof value === \"string\") {\n        valueAsDouble = strictParseDouble(value);\n    }\n    else if (typeof value === \"object\" && value.tag === 1) {\n        valueAsDouble = value.value;\n    }\n    else {\n        throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n    }\n    if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n        throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n    }\n    return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n    const adjustedMonth = month - 1;\n    validateDayOfMonth(year, adjustedMonth, day);\n    return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n    const thisYear = new Date().getUTCFullYear();\n    const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n    if (valueInThisCentury < thisYear) {\n        return valueInThisCentury + 100;\n    }\n    return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n    if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n        return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n    }\n    return input;\n};\nconst parseMonthByShortName = (value) => {\n    const monthIdx = MONTHS.indexOf(value);\n    if (monthIdx < 0) {\n        throw new TypeError(`Invalid month: ${value}`);\n    }\n    return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n    let maxDays = DAYS_IN_MONTH[month];\n    if (month === 1 && isLeapYear(year)) {\n        maxDays = 29;\n    }\n    if (day > maxDays) {\n        throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n    }\n};\nconst isLeapYear = (year) => {\n    return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n    const dateVal = strictParseByte(stripLeadingZeroes(value));\n    if (dateVal < lower || dateVal > upper) {\n        throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n    }\n    return dateVal;\n};\nconst parseMilliseconds = (value) => {\n    if (value === null || value === undefined) {\n        return 0;\n    }\n    return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n    const directionStr = value[0];\n    let direction = 1;\n    if (directionStr == \"+\") {\n        direction = 1;\n    }\n    else if (directionStr == \"-\") {\n        direction = -1;\n    }\n    else {\n        throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n    }\n    const hour = Number(value.substring(1, 3));\n    const minute = Number(value.substring(4, 6));\n    return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n    let idx = 0;\n    while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n        idx++;\n    }\n    if (idx === 0) {\n        return value;\n    }\n    return value.slice(idx);\n};\n","export const randomUUID = typeof crypto !== \"undefined\" && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n","import { randomUUID } from \"./randomUUID\";\nconst decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\nexport const v4 = () => {\n    if (randomUUID) {\n        return randomUUID();\n    }\n    const rnds = new Uint8Array(16);\n    crypto.getRandomValues(rnds);\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    return (decimalToHex[rnds[0]] +\n        decimalToHex[rnds[1]] +\n        decimalToHex[rnds[2]] +\n        decimalToHex[rnds[3]] +\n        \"-\" +\n        decimalToHex[rnds[4]] +\n        decimalToHex[rnds[5]] +\n        \"-\" +\n        decimalToHex[rnds[6]] +\n        decimalToHex[rnds[7]] +\n        \"-\" +\n        decimalToHex[rnds[8]] +\n        decimalToHex[rnds[9]] +\n        \"-\" +\n        decimalToHex[rnds[10]] +\n        decimalToHex[rnds[11]] +\n        decimalToHex[rnds[12]] +\n        decimalToHex[rnds[13]] +\n        decimalToHex[rnds[14]] +\n        decimalToHex[rnds[15]]);\n};\n","export const LazyJsonString = function LazyJsonString(val) {\n    const str = Object.assign(new String(val), {\n        deserializeJSON() {\n            return JSON.parse(String(val));\n        },\n        toString() {\n            return String(val);\n        },\n        toJSON() {\n            return String(val);\n        },\n    });\n    return str;\n};\nLazyJsonString.from = (object) => {\n    if (object && typeof object === \"object\" && (object instanceof LazyJsonString || \"deserializeJSON\" in object)) {\n        return object;\n    }\n    else if (typeof object === \"string\" || Object.getPrototypeOf(object) === String.prototype) {\n        return LazyJsonString(String(object));\n    }\n    return LazyJsonString(JSON.stringify(object));\n};\nLazyJsonString.fromObject = LazyJsonString.from;\n","export function quoteHeader(part) {\n    if (part.includes(\",\") || part.includes('\"')) {\n        part = `\"${part.replace(/\"/g, '\\\\\"')}\"`;\n    }\n    return part;\n}\n","const ddd = `(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?`;\nconst mmm = `(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)`;\nconst time = `(\\\\d?\\\\d):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))?`;\nconst date = `(\\\\d?\\\\d)`;\nconst year = `(\\\\d{4})`;\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d\\d)-(\\d\\d)[tT](\\d\\d):(\\d\\d):(\\d\\d)(\\.(\\d+))?(([-+]\\d\\d:\\d\\d)|[zZ])$/);\nconst IMF_FIXDATE = new RegExp(`^${ddd}, ${date} ${mmm} ${year} ${time} GMT$`);\nconst RFC_850_DATE = new RegExp(`^${ddd}, ${date}-${mmm}-(\\\\d\\\\d) ${time} GMT$`);\nconst ASC_TIME = new RegExp(`^${ddd} ${mmm} ( [1-9]|\\\\d\\\\d) ${time} ${year}$`);\nconst months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport const _parseEpochTimestamp = (value) => {\n    if (value == null) {\n        return void 0;\n    }\n    let num = NaN;\n    if (typeof value === \"number\") {\n        num = value;\n    }\n    else if (typeof value === \"string\") {\n        if (!/^-?\\d*\\.?\\d+$/.test(value)) {\n            throw new TypeError(`parseEpochTimestamp - numeric string invalid.`);\n        }\n        num = Number.parseFloat(value);\n    }\n    else if (typeof value === \"object\" && value.tag === 1) {\n        num = value.value;\n    }\n    if (isNaN(num) || Math.abs(num) === Infinity) {\n        throw new TypeError(\"Epoch timestamps must be valid finite numbers.\");\n    }\n    return new Date(Math.round(num * 1000));\n};\nexport const _parseRfc3339DateTimeWithOffset = (value) => {\n    if (value == null) {\n        return void 0;\n    }\n    if (typeof value !== \"string\") {\n        throw new TypeError(\"RFC3339 timestamps must be strings\");\n    }\n    const matches = RFC3339_WITH_OFFSET.exec(value);\n    if (!matches) {\n        throw new TypeError(`Invalid RFC3339 timestamp format ${value}`);\n    }\n    const [, yearStr, monthStr, dayStr, hours, minutes, seconds, , ms, offsetStr] = matches;\n    range(monthStr, 1, 12);\n    range(dayStr, 1, 31);\n    range(hours, 0, 23);\n    range(minutes, 0, 59);\n    range(seconds, 0, 60);\n    const date = new Date(Date.UTC(Number(yearStr), Number(monthStr) - 1, Number(dayStr), Number(hours), Number(minutes), Number(seconds), Number(ms) ? Math.round(parseFloat(`0.${ms}`) * 1000) : 0));\n    date.setUTCFullYear(Number(yearStr));\n    if (offsetStr.toUpperCase() != \"Z\") {\n        const [, sign, offsetH, offsetM] = /([+-])(\\d\\d):(\\d\\d)/.exec(offsetStr) || [void 0, \"+\", 0, 0];\n        const scalar = sign === \"-\" ? 1 : -1;\n        date.setTime(date.getTime() + scalar * (Number(offsetH) * 60 * 60 * 1000 + Number(offsetM) * 60 * 1000));\n    }\n    return date;\n};\nexport const _parseRfc7231DateTime = (value) => {\n    if (value == null) {\n        return void 0;\n    }\n    if (typeof value !== \"string\") {\n        throw new TypeError(\"RFC7231 timestamps must be strings.\");\n    }\n    let day;\n    let month;\n    let year;\n    let hour;\n    let minute;\n    let second;\n    let fraction;\n    let matches;\n    if ((matches = IMF_FIXDATE.exec(value))) {\n        [, day, month, year, hour, minute, second, fraction] = matches;\n    }\n    else if ((matches = RFC_850_DATE.exec(value))) {\n        [, day, month, year, hour, minute, second, fraction] = matches;\n        year = (Number(year) + 1900).toString();\n    }\n    else if ((matches = ASC_TIME.exec(value))) {\n        [, month, day, hour, minute, second, fraction, year] = matches;\n    }\n    if (year && second) {\n        const timestamp = Date.UTC(Number(year), months.indexOf(month), Number(day), Number(hour), Number(minute), Number(second), fraction ? Math.round(parseFloat(`0.${fraction}`) * 1000) : 0);\n        range(day, 1, 31);\n        range(hour, 0, 23);\n        range(minute, 0, 59);\n        range(second, 0, 60);\n        const date = new Date(timestamp);\n        date.setUTCFullYear(Number(year));\n        return date;\n    }\n    throw new TypeError(`Invalid RFC7231 date-time value ${value}.`);\n};\nfunction range(v, min, max) {\n    const _v = Number(v);\n    if (_v < min || _v > max) {\n        throw new Error(`Value ${_v} out of range [${min}, ${max}]`);\n    }\n}\n","export function splitEvery(value, delimiter, numDelimiters) {\n    if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n        throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n    }\n    const segments = value.split(delimiter);\n    if (numDelimiters === 1) {\n        return segments;\n    }\n    const compoundSegments = [];\n    let currentSegment = \"\";\n    for (let i = 0; i < segments.length; i++) {\n        if (currentSegment === \"\") {\n            currentSegment = segments[i];\n        }\n        else {\n            currentSegment += delimiter + segments[i];\n        }\n        if ((i + 1) % numDelimiters === 0) {\n            compoundSegments.push(currentSegment);\n            currentSegment = \"\";\n        }\n    }\n    if (currentSegment !== \"\") {\n        compoundSegments.push(currentSegment);\n    }\n    return compoundSegments;\n}\n","export const splitHeader = (value) => {\n    const z = value.length;\n    const values = [];\n    let withinQuotes = false;\n    let prevChar = undefined;\n    let anchor = 0;\n    for (let i = 0; i < z; ++i) {\n        const char = value[i];\n        switch (char) {\n            case `\"`:\n                if (prevChar !== \"\\\\\") {\n                    withinQuotes = !withinQuotes;\n                }\n                break;\n            case \",\":\n                if (!withinQuotes) {\n                    values.push(value.slice(anchor, i));\n                    anchor = i + 1;\n                }\n                break;\n            default:\n        }\n        prevChar = char;\n    }\n    values.push(value.slice(anchor));\n    return values.map((v) => {\n        v = v.trim();\n        const z = v.length;\n        if (z < 2) {\n            return v;\n        }\n        if (v[0] === `\"` && v[z - 1] === `\"`) {\n            v = v.slice(1, z - 1);\n        }\n        return v.replace(/\\\\\"/g, '\"');\n    });\n};\n","const format = /^-?\\d*(\\.\\d+)?$/;\nexport class NumericValue {\n    string;\n    type;\n    constructor(string, type) {\n        this.string = string;\n        this.type = type;\n        if (!format.test(string)) {\n            throw new Error(`@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point \".\", and an optional negation prefix \"-\".`);\n        }\n    }\n    toString() {\n        return this.string;\n    }\n    static [Symbol.hasInstance](object) {\n        if (!object || typeof object !== \"object\") {\n            return false;\n        }\n        const _nv = object;\n        return NumericValue.prototype.isPrototypeOf(object) || (_nv.type === \"bigDecimal\" && format.test(_nv.string));\n    }\n}\nexport function nv(input) {\n    return new NumericValue(String(input), \"bigDecimal\");\n}\n","export class SerdeContext {\n    serdeContext;\n    setSerdeContext(serdeContext) {\n        this.serdeContext = serdeContext;\n    }\n}\n","import { NormalizedSchema, translateTraits, TypeRegistry } from \"@smithy/core/schema\";\nimport { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { SerdeContext } from \"./SerdeContext\";\nexport class HttpProtocol extends SerdeContext {\n    options;\n    compositeErrorRegistry;\n    constructor(options) {\n        super();\n        this.options = options;\n        this.compositeErrorRegistry = TypeRegistry.for(options.defaultNamespace);\n        for (const etr of options.errorTypeRegistries ?? []) {\n            this.compositeErrorRegistry.copyFrom(etr);\n        }\n    }\n    getRequestType() {\n        return HttpRequest;\n    }\n    getResponseType() {\n        return HttpResponse;\n    }\n    setSerdeContext(serdeContext) {\n        this.serdeContext = serdeContext;\n        this.serializer.setSerdeContext(serdeContext);\n        this.deserializer.setSerdeContext(serdeContext);\n        if (this.getPayloadCodec()) {\n            this.getPayloadCodec().setSerdeContext(serdeContext);\n        }\n    }\n    updateServiceEndpoint(request, endpoint) {\n        if (\"url\" in endpoint) {\n            request.protocol = endpoint.url.protocol;\n            request.hostname = endpoint.url.hostname;\n            request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n            request.path = endpoint.url.pathname;\n            request.fragment = endpoint.url.hash || void 0;\n            request.username = endpoint.url.username || void 0;\n            request.password = endpoint.url.password || void 0;\n            if (!request.query) {\n                request.query = {};\n            }\n            for (const [k, v] of endpoint.url.searchParams.entries()) {\n                request.query[k] = v;\n            }\n            if (endpoint.headers) {\n                for (const [name, values] of Object.entries(endpoint.headers)) {\n                    request.headers[name] = values.join(\", \");\n                }\n            }\n            return request;\n        }\n        else {\n            request.protocol = endpoint.protocol;\n            request.hostname = endpoint.hostname;\n            request.port = endpoint.port ? Number(endpoint.port) : undefined;\n            request.path = endpoint.path;\n            request.query = {\n                ...endpoint.query,\n            };\n            if (endpoint.headers) {\n                for (const [name, value] of Object.entries(endpoint.headers)) {\n                    request.headers[name] = value;\n                }\n            }\n            return request;\n        }\n    }\n    setHostPrefix(request, operationSchema, input) {\n        if (this.serdeContext?.disableHostPrefix) {\n            return;\n        }\n        const inputNs = NormalizedSchema.of(operationSchema.input);\n        const opTraits = translateTraits(operationSchema.traits ?? {});\n        if (opTraits.endpoint) {\n            let hostPrefix = opTraits.endpoint?.[0];\n            if (typeof hostPrefix === \"string\") {\n                const hostLabelInputs = [...inputNs.structIterator()].filter(([, member]) => member.getMergedTraits().hostLabel);\n                for (const [name] of hostLabelInputs) {\n                    const replacement = input[name];\n                    if (typeof replacement !== \"string\") {\n                        throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n                    }\n                    hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n                }\n                request.hostname = hostPrefix + request.hostname;\n            }\n        }\n    }\n    deserializeMetadata(output) {\n        return {\n            httpStatusCode: output.statusCode,\n            requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n            extendedRequestId: output.headers[\"x-amz-id-2\"],\n            cfId: output.headers[\"x-amz-cf-id\"],\n        };\n    }\n    async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n        const eventStreamSerde = await this.loadEventStreamCapability();\n        return eventStreamSerde.serializeEventStream({\n            eventStream,\n            requestSchema,\n            initialRequest,\n        });\n    }\n    async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n        const eventStreamSerde = await this.loadEventStreamCapability();\n        return eventStreamSerde.deserializeEventStream({\n            response,\n            responseSchema,\n            initialResponseContainer,\n        });\n    }\n    async loadEventStreamCapability() {\n        const { EventStreamSerde } = await import(\"@smithy/core/event-streams\");\n        return new EventStreamSerde({\n            marshaller: this.getEventStreamMarshaller(),\n            serializer: this.serializer,\n            deserializer: this.deserializer,\n            serdeContext: this.serdeContext,\n            defaultContentType: this.getDefaultContentType(),\n        });\n    }\n    getDefaultContentType() {\n        throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n    }\n    async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n        void schema;\n        void context;\n        void response;\n        void arg4;\n        void arg5;\n        return [];\n    }\n    getEventStreamMarshaller() {\n        const context = this.serdeContext;\n        if (!context.eventStreamMarshaller) {\n            throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n        }\n        return context.eventStreamMarshaller;\n    }\n}\n","import { NormalizedSchema, translateTraits } from \"@smithy/core/schema\";\nimport { splitEvery, splitHeader } from \"@smithy/core/serde\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { sdkStreamMixin } from \"@smithy/util-stream\";\nimport { collectBody } from \"./collect-stream-body\";\nimport { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nimport { HttpProtocol } from \"./HttpProtocol\";\nexport class HttpBindingProtocol extends HttpProtocol {\n    async serializeRequest(operationSchema, _input, context) {\n        const input = _input && typeof _input === \"object\" ? _input : {};\n        const serializer = this.serializer;\n        const query = {};\n        const headers = {};\n        const endpoint = await context.endpoint();\n        const ns = NormalizedSchema.of(operationSchema?.input);\n        const payloadMemberNames = [];\n        const payloadMemberSchemas = [];\n        let hasNonHttpBindingMember = false;\n        let payload;\n        const request = new HttpRequest({\n            protocol: \"\",\n            hostname: \"\",\n            port: undefined,\n            path: \"\",\n            fragment: undefined,\n            query: query,\n            headers: headers,\n            body: undefined,\n        });\n        if (endpoint) {\n            this.updateServiceEndpoint(request, endpoint);\n            this.setHostPrefix(request, operationSchema, input);\n            const opTraits = translateTraits(operationSchema.traits);\n            if (opTraits.http) {\n                request.method = opTraits.http[0];\n                const [path, search] = opTraits.http[1].split(\"?\");\n                if (request.path == \"/\") {\n                    request.path = path;\n                }\n                else {\n                    request.path += path;\n                }\n                const traitSearchParams = new URLSearchParams(search ?? \"\");\n                Object.assign(query, Object.fromEntries(traitSearchParams));\n            }\n        }\n        for (const [memberName, memberNs] of ns.structIterator()) {\n            const memberTraits = memberNs.getMergedTraits() ?? {};\n            const inputMemberValue = input[memberName];\n            if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {\n                if (memberTraits.httpLabel) {\n                    if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {\n                        throw new Error(`No value provided for input HTTP label: ${memberName}.`);\n                    }\n                }\n                continue;\n            }\n            if (memberTraits.httpPayload) {\n                const isStreaming = memberNs.isStreaming();\n                if (isStreaming) {\n                    const isEventStream = memberNs.isStructSchema();\n                    if (isEventStream) {\n                        if (input[memberName]) {\n                            payload = await this.serializeEventStream({\n                                eventStream: input[memberName],\n                                requestSchema: ns,\n                            });\n                        }\n                    }\n                    else {\n                        payload = inputMemberValue;\n                    }\n                }\n                else {\n                    serializer.write(memberNs, inputMemberValue);\n                    payload = serializer.flush();\n                }\n            }\n            else if (memberTraits.httpLabel) {\n                serializer.write(memberNs, inputMemberValue);\n                const replacement = serializer.flush();\n                if (request.path.includes(`{${memberName}+}`)) {\n                    request.path = request.path.replace(`{${memberName}+}`, replacement.split(\"/\").map(extendedEncodeURIComponent).join(\"/\"));\n                }\n                else if (request.path.includes(`{${memberName}}`)) {\n                    request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement));\n                }\n            }\n            else if (memberTraits.httpHeader) {\n                serializer.write(memberNs, inputMemberValue);\n                headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush());\n            }\n            else if (typeof memberTraits.httpPrefixHeaders === \"string\") {\n                for (const [key, val] of Object.entries(inputMemberValue)) {\n                    const amalgam = memberTraits.httpPrefixHeaders + key;\n                    serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val);\n                    headers[amalgam.toLowerCase()] = serializer.flush();\n                }\n            }\n            else if (memberTraits.httpQuery || memberTraits.httpQueryParams) {\n                this.serializeQuery(memberNs, inputMemberValue, query);\n            }\n            else {\n                hasNonHttpBindingMember = true;\n                payloadMemberNames.push(memberName);\n                payloadMemberSchemas.push(memberNs);\n            }\n        }\n        if (hasNonHttpBindingMember && input) {\n            const [namespace, name] = (ns.getName(true) ?? \"#Unknown\").split(\"#\");\n            const requiredMembers = ns.getSchema()[6];\n            const payloadSchema = [\n                3,\n                namespace,\n                name,\n                ns.getMergedTraits(),\n                payloadMemberNames,\n                payloadMemberSchemas,\n                undefined,\n            ];\n            if (requiredMembers) {\n                payloadSchema[6] = requiredMembers;\n            }\n            else {\n                payloadSchema.pop();\n            }\n            serializer.write(payloadSchema, input);\n            payload = serializer.flush();\n        }\n        request.headers = headers;\n        request.query = query;\n        request.body = payload;\n        return request;\n    }\n    serializeQuery(ns, data, query) {\n        const serializer = this.serializer;\n        const traits = ns.getMergedTraits();\n        if (traits.httpQueryParams) {\n            for (const [key, val] of Object.entries(data)) {\n                if (!(key in query)) {\n                    const valueSchema = ns.getValueSchema();\n                    Object.assign(valueSchema.getMergedTraits(), {\n                        ...traits,\n                        httpQuery: key,\n                        httpQueryParams: undefined,\n                    });\n                    this.serializeQuery(valueSchema, val, query);\n                }\n            }\n            return;\n        }\n        if (ns.isListSchema()) {\n            const sparse = !!ns.getMergedTraits().sparse;\n            const buffer = [];\n            for (const item of data) {\n                serializer.write([ns.getValueSchema(), traits], item);\n                const serializable = serializer.flush();\n                if (sparse || serializable !== undefined) {\n                    buffer.push(serializable);\n                }\n            }\n            query[traits.httpQuery] = buffer;\n        }\n        else {\n            serializer.write([ns, traits], data);\n            query[traits.httpQuery] = serializer.flush();\n        }\n    }\n    async deserializeResponse(operationSchema, context, response) {\n        const deserializer = this.deserializer;\n        const ns = NormalizedSchema.of(operationSchema.output);\n        const dataObject = {};\n        if (response.statusCode >= 300) {\n            const bytes = await collectBody(response.body, context);\n            if (bytes.byteLength > 0) {\n                Object.assign(dataObject, await deserializer.read(15, bytes));\n            }\n            await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n            throw new Error(\"@smithy/core/protocols - HTTP Protocol error handler failed to throw.\");\n        }\n        for (const header in response.headers) {\n            const value = response.headers[header];\n            delete response.headers[header];\n            response.headers[header.toLowerCase()] = value;\n        }\n        const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject);\n        if (nonHttpBindingMembers.length) {\n            const bytes = await collectBody(response.body, context);\n            if (bytes.byteLength > 0) {\n                const dataFromBody = await deserializer.read(ns, bytes);\n                for (const member of nonHttpBindingMembers) {\n                    if (dataFromBody[member] != null) {\n                        dataObject[member] = dataFromBody[member];\n                    }\n                }\n            }\n        }\n        else if (nonHttpBindingMembers.discardResponseBody) {\n            await collectBody(response.body, context);\n        }\n        dataObject.$metadata = this.deserializeMetadata(response);\n        return dataObject;\n    }\n    async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n        let dataObject;\n        if (arg4 instanceof Set) {\n            dataObject = arg5;\n        }\n        else {\n            dataObject = arg4;\n        }\n        let discardResponseBody = true;\n        const deserializer = this.deserializer;\n        const ns = NormalizedSchema.of(schema);\n        const nonHttpBindingMembers = [];\n        for (const [memberName, memberSchema] of ns.structIterator()) {\n            const memberTraits = memberSchema.getMemberTraits();\n            if (memberTraits.httpPayload) {\n                discardResponseBody = false;\n                const isStreaming = memberSchema.isStreaming();\n                if (isStreaming) {\n                    const isEventStream = memberSchema.isStructSchema();\n                    if (isEventStream) {\n                        dataObject[memberName] = await this.deserializeEventStream({\n                            response,\n                            responseSchema: ns,\n                        });\n                    }\n                    else {\n                        dataObject[memberName] = sdkStreamMixin(response.body);\n                    }\n                }\n                else if (response.body) {\n                    const bytes = await collectBody(response.body, context);\n                    if (bytes.byteLength > 0) {\n                        dataObject[memberName] = await deserializer.read(memberSchema, bytes);\n                    }\n                }\n            }\n            else if (memberTraits.httpHeader) {\n                const key = String(memberTraits.httpHeader).toLowerCase();\n                const value = response.headers[key];\n                if (null != value) {\n                    if (memberSchema.isListSchema()) {\n                        const headerListValueSchema = memberSchema.getValueSchema();\n                        headerListValueSchema.getMergedTraits().httpHeader = key;\n                        let sections;\n                        if (headerListValueSchema.isTimestampSchema() &&\n                            headerListValueSchema.getSchema() === 4) {\n                            sections = splitEvery(value, \",\", 2);\n                        }\n                        else {\n                            sections = splitHeader(value);\n                        }\n                        const list = [];\n                        for (const section of sections) {\n                            list.push(await deserializer.read(headerListValueSchema, section.trim()));\n                        }\n                        dataObject[memberName] = list;\n                    }\n                    else {\n                        dataObject[memberName] = await deserializer.read(memberSchema, value);\n                    }\n                }\n            }\n            else if (memberTraits.httpPrefixHeaders !== undefined) {\n                dataObject[memberName] = {};\n                for (const [header, value] of Object.entries(response.headers)) {\n                    if (header.startsWith(memberTraits.httpPrefixHeaders)) {\n                        const valueSchema = memberSchema.getValueSchema();\n                        valueSchema.getMergedTraits().httpHeader = header;\n                        dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value);\n                    }\n                }\n            }\n            else if (memberTraits.httpResponseCode) {\n                dataObject[memberName] = response.statusCode;\n            }\n            else {\n                nonHttpBindingMembers.push(memberName);\n            }\n        }\n        nonHttpBindingMembers.discardResponseBody = discardResponseBody;\n        return nonHttpBindingMembers;\n    }\n}\n","export function determineTimestampFormat(ns, settings) {\n    if (settings.timestampFormat.useTrait) {\n        if (ns.isTimestampSchema() &&\n            (ns.getSchema() === 5 ||\n                ns.getSchema() === 6 ||\n                ns.getSchema() === 7)) {\n            return ns.getSchema();\n        }\n    }\n    const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n    const bindingFormat = settings.httpBindings\n        ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n            ? 6\n            : Boolean(httpQuery) || Boolean(httpLabel)\n                ? 5\n                : undefined\n        : undefined;\n    return bindingFormat ?? settings.timestampFormat.default;\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nimport { _parseEpochTimestamp, _parseRfc3339DateTimeWithOffset, _parseRfc7231DateTime, LazyJsonString, NumericValue, splitHeader, } from \"@smithy/core/serde\";\nimport { fromBase64 } from \"@smithy/util-base64\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nimport { SerdeContext } from \"../SerdeContext\";\nimport { determineTimestampFormat } from \"./determineTimestampFormat\";\nexport class FromStringShapeDeserializer extends SerdeContext {\n    settings;\n    constructor(settings) {\n        super();\n        this.settings = settings;\n    }\n    read(_schema, data) {\n        const ns = NormalizedSchema.of(_schema);\n        if (ns.isListSchema()) {\n            return splitHeader(data).map((item) => this.read(ns.getValueSchema(), item));\n        }\n        if (ns.isBlobSchema()) {\n            return (this.serdeContext?.base64Decoder ?? fromBase64)(data);\n        }\n        if (ns.isTimestampSchema()) {\n            const format = determineTimestampFormat(ns, this.settings);\n            switch (format) {\n                case 5:\n                    return _parseRfc3339DateTimeWithOffset(data);\n                case 6:\n                    return _parseRfc7231DateTime(data);\n                case 7:\n                    return _parseEpochTimestamp(data);\n                default:\n                    console.warn(\"Missing timestamp format, parsing value with Date constructor:\", data);\n                    return new Date(data);\n            }\n        }\n        if (ns.isStringSchema()) {\n            const mediaType = ns.getMergedTraits().mediaType;\n            let intermediateValue = data;\n            if (mediaType) {\n                if (ns.getMergedTraits().httpHeader) {\n                    intermediateValue = this.base64ToUtf8(intermediateValue);\n                }\n                const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n                if (isJson) {\n                    intermediateValue = LazyJsonString.from(intermediateValue);\n                }\n                return intermediateValue;\n            }\n        }\n        if (ns.isNumericSchema()) {\n            return Number(data);\n        }\n        if (ns.isBigIntegerSchema()) {\n            return BigInt(data);\n        }\n        if (ns.isBigDecimalSchema()) {\n            return new NumericValue(data, \"bigDecimal\");\n        }\n        if (ns.isBooleanSchema()) {\n            return String(data).toLowerCase() === \"true\";\n        }\n        return data;\n    }\n    base64ToUtf8(base64String) {\n        return (this.serdeContext?.utf8Encoder ?? toUtf8)((this.serdeContext?.base64Decoder ?? fromBase64)(base64String));\n    }\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { SerdeContext } from \"../SerdeContext\";\nimport { FromStringShapeDeserializer } from \"./FromStringShapeDeserializer\";\nexport class HttpInterceptingShapeDeserializer extends SerdeContext {\n    codecDeserializer;\n    stringDeserializer;\n    constructor(codecDeserializer, codecSettings) {\n        super();\n        this.codecDeserializer = codecDeserializer;\n        this.stringDeserializer = new FromStringShapeDeserializer(codecSettings);\n    }\n    setSerdeContext(serdeContext) {\n        this.stringDeserializer.setSerdeContext(serdeContext);\n        this.codecDeserializer.setSerdeContext(serdeContext);\n        this.serdeContext = serdeContext;\n    }\n    read(schema, data) {\n        const ns = NormalizedSchema.of(schema);\n        const traits = ns.getMergedTraits();\n        const toString = this.serdeContext?.utf8Encoder ?? toUtf8;\n        if (traits.httpHeader || traits.httpResponseCode) {\n            return this.stringDeserializer.read(ns, toString(data));\n        }\n        if (traits.httpPayload) {\n            if (ns.isBlobSchema()) {\n                const toBytes = this.serdeContext?.utf8Decoder ?? fromUtf8;\n                if (typeof data === \"string\") {\n                    return toBytes(data);\n                }\n                return data;\n            }\n            else if (ns.isStringSchema()) {\n                if (\"byteLength\" in data) {\n                    return toString(data);\n                }\n                return data;\n            }\n        }\n        return this.codecDeserializer.read(ns, data);\n    }\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nimport { dateToUtcString, generateIdempotencyToken, LazyJsonString, quoteHeader } from \"@smithy/core/serde\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { SerdeContext } from \"../SerdeContext\";\nimport { determineTimestampFormat } from \"./determineTimestampFormat\";\nexport class ToStringShapeSerializer extends SerdeContext {\n    settings;\n    stringBuffer = \"\";\n    constructor(settings) {\n        super();\n        this.settings = settings;\n    }\n    write(schema, value) {\n        const ns = NormalizedSchema.of(schema);\n        switch (typeof value) {\n            case \"object\":\n                if (value === null) {\n                    this.stringBuffer = \"null\";\n                    return;\n                }\n                if (ns.isTimestampSchema()) {\n                    if (!(value instanceof Date)) {\n                        throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`);\n                    }\n                    const format = determineTimestampFormat(ns, this.settings);\n                    switch (format) {\n                        case 5:\n                            this.stringBuffer = value.toISOString().replace(\".000Z\", \"Z\");\n                            break;\n                        case 6:\n                            this.stringBuffer = dateToUtcString(value);\n                            break;\n                        case 7:\n                            this.stringBuffer = String(value.getTime() / 1000);\n                            break;\n                        default:\n                            console.warn(\"Missing timestamp format, using epoch seconds\", value);\n                            this.stringBuffer = String(value.getTime() / 1000);\n                    }\n                    return;\n                }\n                if (ns.isBlobSchema() && \"byteLength\" in value) {\n                    this.stringBuffer = (this.serdeContext?.base64Encoder ?? toBase64)(value);\n                    return;\n                }\n                if (ns.isListSchema() && Array.isArray(value)) {\n                    let buffer = \"\";\n                    for (const item of value) {\n                        this.write([ns.getValueSchema(), ns.getMergedTraits()], item);\n                        const headerItem = this.flush();\n                        const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : quoteHeader(headerItem);\n                        if (buffer !== \"\") {\n                            buffer += \", \";\n                        }\n                        buffer += serialized;\n                    }\n                    this.stringBuffer = buffer;\n                    return;\n                }\n                this.stringBuffer = JSON.stringify(value, null, 2);\n                break;\n            case \"string\":\n                const mediaType = ns.getMergedTraits().mediaType;\n                let intermediateValue = value;\n                if (mediaType) {\n                    const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n                    if (isJson) {\n                        intermediateValue = LazyJsonString.from(intermediateValue);\n                    }\n                    if (ns.getMergedTraits().httpHeader) {\n                        this.stringBuffer = (this.serdeContext?.base64Encoder ?? toBase64)(intermediateValue.toString());\n                        return;\n                    }\n                }\n                this.stringBuffer = value;\n                break;\n            default:\n                if (ns.isIdempotencyToken()) {\n                    this.stringBuffer = generateIdempotencyToken();\n                }\n                else {\n                    this.stringBuffer = String(value);\n                }\n        }\n    }\n    flush() {\n        const buffer = this.stringBuffer;\n        this.stringBuffer = \"\";\n        return buffer;\n    }\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nimport { ToStringShapeSerializer } from \"./ToStringShapeSerializer\";\nexport class HttpInterceptingShapeSerializer {\n    codecSerializer;\n    stringSerializer;\n    buffer;\n    constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) {\n        this.codecSerializer = codecSerializer;\n        this.stringSerializer = stringSerializer;\n    }\n    setSerdeContext(serdeContext) {\n        this.codecSerializer.setSerdeContext(serdeContext);\n        this.stringSerializer.setSerdeContext(serdeContext);\n    }\n    write(schema, value) {\n        const ns = NormalizedSchema.of(schema);\n        const traits = ns.getMergedTraits();\n        if (traits.httpHeader || traits.httpLabel || traits.httpQuery) {\n            this.stringSerializer.write(ns, value);\n            this.buffer = this.stringSerializer.flush();\n            return;\n        }\n        return this.codecSerializer.write(ns, value);\n    }\n    flush() {\n        if (this.buffer !== undefined) {\n            const buffer = this.buffer;\n            this.buffer = undefined;\n            return buffer;\n        }\n        return this.codecSerializer.flush();\n    }\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nconst SENSITIVE_STRING = \"***SensitiveInformation***\";\nexport function schemaLogFilter(schema, data) {\n    if (data == null) {\n        return data;\n    }\n    const ns = NormalizedSchema.of(schema);\n    if (ns.getMergedTraits().sensitive) {\n        return SENSITIVE_STRING;\n    }\n    if (ns.isListSchema()) {\n        const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive;\n        if (isSensitive) {\n            return SENSITIVE_STRING;\n        }\n    }\n    else if (ns.isMapSchema()) {\n        const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive;\n        if (isSensitive) {\n            return SENSITIVE_STRING;\n        }\n    }\n    else if (ns.isStructSchema() && typeof data === \"object\") {\n        const object = data;\n        const newObject = {};\n        for (const [member, memberNs] of ns.structIterator()) {\n            if (object[member] != null) {\n                newObject[member] = schemaLogFilter(memberNs, object[member]);\n            }\n        }\n        return newObject;\n    }\n    return data;\n}\n","import { constructStack } from \"@smithy/middleware-stack\";\nimport { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nimport { schemaLogFilter } from \"./schemaLogFilter\";\nexport class Command {\n    middlewareStack = constructStack();\n    schema;\n    static classBuilder() {\n        return new ClassBuilder();\n    }\n    resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n        for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n            this.middlewareStack.use(mw);\n        }\n        const stack = clientStack.concat(this.middlewareStack);\n        const { logger } = configuration;\n        const handlerExecutionContext = {\n            logger,\n            clientName,\n            commandName,\n            inputFilterSensitiveLog,\n            outputFilterSensitiveLog,\n            [SMITHY_CONTEXT_KEY]: {\n                commandInstance: this,\n                ...smithyContext,\n            },\n            ...additionalContext,\n        };\n        const { requestHandler } = configuration;\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n    }\n}\nclass ClassBuilder {\n    _init = () => { };\n    _ep = {};\n    _middlewareFn = () => [];\n    _commandName = \"\";\n    _clientName = \"\";\n    _additionalContext = {};\n    _smithyContext = {};\n    _inputFilterSensitiveLog = undefined;\n    _outputFilterSensitiveLog = undefined;\n    _serializer = null;\n    _deserializer = null;\n    _operationSchema;\n    init(cb) {\n        this._init = cb;\n    }\n    ep(endpointParameterInstructions) {\n        this._ep = endpointParameterInstructions;\n        return this;\n    }\n    m(middlewareSupplier) {\n        this._middlewareFn = middlewareSupplier;\n        return this;\n    }\n    s(service, operation, smithyContext = {}) {\n        this._smithyContext = {\n            service,\n            operation,\n            ...smithyContext,\n        };\n        return this;\n    }\n    c(additionalContext = {}) {\n        this._additionalContext = additionalContext;\n        return this;\n    }\n    n(clientName, commandName) {\n        this._clientName = clientName;\n        this._commandName = commandName;\n        return this;\n    }\n    f(inputFilter = (_) => _, outputFilter = (_) => _) {\n        this._inputFilterSensitiveLog = inputFilter;\n        this._outputFilterSensitiveLog = outputFilter;\n        return this;\n    }\n    ser(serializer) {\n        this._serializer = serializer;\n        return this;\n    }\n    de(deserializer) {\n        this._deserializer = deserializer;\n        return this;\n    }\n    sc(operation) {\n        this._operationSchema = operation;\n        this._smithyContext.operationSchema = operation;\n        return this;\n    }\n    build() {\n        const closure = this;\n        let CommandRef;\n        return (CommandRef = class extends Command {\n            input;\n            static getEndpointParameterInstructions() {\n                return closure._ep;\n            }\n            constructor(...[input]) {\n                super();\n                this.input = input ?? {};\n                closure._init(this);\n                this.schema = closure._operationSchema;\n            }\n            resolveMiddleware(stack, configuration, options) {\n                const op = closure._operationSchema;\n                const input = op?.[4] ?? op?.input;\n                const output = op?.[5] ?? op?.output;\n                return this.resolveMiddlewareWithContext(stack, configuration, options, {\n                    CommandCtor: CommandRef,\n                    middlewareFn: closure._middlewareFn,\n                    clientName: closure._clientName,\n                    commandName: closure._commandName,\n                    inputFilterSensitiveLog: closure._inputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, input) : (_) => _),\n                    outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, output) : (_) => _),\n                    smithyContext: closure._smithyContext,\n                    additionalContext: closure._additionalContext,\n                });\n            }\n            serialize = closure._serializer;\n            deserialize = closure._deserializer;\n        });\n    }\n}\n","export class ServiceException extends Error {\n    $fault;\n    $response;\n    $retryable;\n    $metadata;\n    constructor(options) {\n        super(options.message);\n        Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n        this.name = options.name;\n        this.$fault = options.$fault;\n        this.$metadata = options.$metadata;\n    }\n    static isInstance(value) {\n        if (!value)\n            return false;\n        const candidate = value;\n        return (ServiceException.prototype.isPrototypeOf(candidate) ||\n            (Boolean(candidate.$fault) &&\n                Boolean(candidate.$metadata) &&\n                (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n    }\n    static [Symbol.hasInstance](instance) {\n        if (!instance)\n            return false;\n        const candidate = instance;\n        if (this === ServiceException) {\n            return ServiceException.isInstance(instance);\n        }\n        if (ServiceException.isInstance(instance)) {\n            if (candidate.name && this.name) {\n                return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n            }\n            return this.prototype.isPrototypeOf(instance);\n        }\n        return false;\n    }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n    Object.entries(additions)\n        .filter(([, v]) => v !== undefined)\n        .forEach(([k, v]) => {\n        if (exception[k] == undefined || exception[k] === \"\") {\n            exception[k] = v;\n        }\n    });\n    const message = exception.message || exception.Message || \"UnknownError\";\n    exception.message = message;\n    delete exception.Message;\n    return exception;\n};\n","export const loadConfigsForDefaultMode = (mode) => {\n    switch (mode) {\n        case \"standard\":\n            return {\n                retryMode: \"standard\",\n                connectionTimeout: 3100,\n            };\n        case \"in-region\":\n            return {\n                retryMode: \"standard\",\n                connectionTimeout: 1100,\n            };\n        case \"cross-region\":\n            return {\n                retryMode: \"standard\",\n                connectionTimeout: 3100,\n            };\n        case \"mobile\":\n            return {\n                retryMode: \"standard\",\n                connectionTimeout: 30000,\n            };\n        default:\n            return {};\n    }\n};\n","import { AlgorithmId } from \"@smithy/types\";\nexport { AlgorithmId };\nconst knownAlgorithms = Object.values(AlgorithmId);\nexport const getChecksumConfiguration = (runtimeConfig) => {\n    const checksumAlgorithms = [];\n    for (const id in AlgorithmId) {\n        const algorithmId = AlgorithmId[id];\n        if (runtimeConfig[algorithmId] === undefined) {\n            continue;\n        }\n        checksumAlgorithms.push({\n            algorithmId: () => algorithmId,\n            checksumConstructor: () => runtimeConfig[algorithmId],\n        });\n    }\n    for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) {\n        checksumAlgorithms.push({\n            algorithmId: () => id,\n            checksumConstructor: () => ChecksumCtor,\n        });\n    }\n    return {\n        addChecksumAlgorithm(algo) {\n            runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {};\n            const id = algo.algorithmId();\n            const ctor = algo.checksumConstructor();\n            if (knownAlgorithms.includes(id)) {\n                runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor;\n            }\n            else {\n                runtimeConfig.checksumAlgorithms[id] = ctor;\n            }\n            checksumAlgorithms.push(algo);\n        },\n        checksumAlgorithms() {\n            return checksumAlgorithms;\n        },\n    };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n    const runtimeConfig = {};\n    clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n        const id = checksumAlgorithm.algorithmId();\n        if (knownAlgorithms.includes(id)) {\n            runtimeConfig[id] = checksumAlgorithm.checksumConstructor();\n        }\n    });\n    return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n    return {\n        setRetryStrategy(retryStrategy) {\n            runtimeConfig.retryStrategy = retryStrategy;\n        },\n        retryStrategy() {\n            return runtimeConfig.retryStrategy;\n        },\n    };\n};\nexport const resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n    const runtimeConfig = {};\n    runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n    return runtimeConfig;\n};\n","import { getChecksumConfiguration, resolveChecksumRuntimeConfig } from \"./checksum\";\nimport { getRetryConfiguration, resolveRetryRuntimeConfig } from \"./retry\";\nexport const getDefaultExtensionConfiguration = (runtimeConfig) => {\n    return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig));\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n    return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config));\n};\n","export const getValueFromTextNode = (obj) => {\n    const textNodeName = \"#text\";\n    for (const key in obj) {\n        if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n            obj[key] = obj[key][textNodeName];\n        }\n        else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n            obj[key] = getValueFromTextNode(obj[key]);\n        }\n    }\n    return obj;\n};\n","export class NoOpLogger {\n    trace() { }\n    debug() { }\n    info() { }\n    warn() { }\n    error() { }\n}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nconst DECODED_CONTENT_LENGTH_HEADER = \"x-amz-decoded-content-length\";\nexport function checkContentLengthHeader() {\n    return (next, context) => async (args) => {\n        const { request } = args;\n        if (HttpRequest.isInstance(request)) {\n            if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {\n                const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n                if (typeof context?.logger?.warn === \"function\" && !(context.logger instanceof NoOpLogger)) {\n                    context.logger.warn(message);\n                }\n                else {\n                    console.warn(message);\n                }\n            }\n        }\n        return next({ ...args });\n    };\n}\nexport const checkContentLengthHeaderMiddlewareOptions = {\n    step: \"finalizeRequest\",\n    tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n    name: \"getCheckContentLengthHeaderPlugin\",\n    override: true,\n};\nexport const getCheckContentLengthHeaderPlugin = (unused) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n    },\n});\n","export const regionRedirectEndpointMiddleware = (config) => {\n    return (next, context) => async (args) => {\n        const originalRegion = await config.region();\n        const regionProviderRef = config.region;\n        let unlock = () => { };\n        if (context.__s3RegionRedirect) {\n            Object.defineProperty(config, \"region\", {\n                writable: false,\n                value: async () => {\n                    return context.__s3RegionRedirect;\n                },\n            });\n            unlock = () => Object.defineProperty(config, \"region\", {\n                writable: true,\n                value: regionProviderRef,\n            });\n        }\n        try {\n            const result = await next(args);\n            if (context.__s3RegionRedirect) {\n                unlock();\n                const region = await config.region();\n                if (originalRegion !== region) {\n                    throw new Error(\"Region was not restored following S3 region redirect.\");\n                }\n            }\n            return result;\n        }\n        catch (e) {\n            unlock();\n            throw e;\n        }\n    };\n};\nexport const regionRedirectEndpointMiddlewareOptions = {\n    tags: [\"REGION_REDIRECT\", \"S3\"],\n    name: \"regionRedirectEndpointMiddleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: \"endpointV2Middleware\",\n};\n","import { regionRedirectEndpointMiddleware, regionRedirectEndpointMiddlewareOptions, } from \"./region-redirect-endpoint-middleware\";\nexport function regionRedirectMiddleware(clientConfig) {\n    return (next, context) => async (args) => {\n        try {\n            return await next(args);\n        }\n        catch (err) {\n            if (clientConfig.followRegionRedirects) {\n                const statusCode = err?.$metadata?.httpStatusCode;\n                const isHeadBucket = context.commandName === \"HeadBucketCommand\";\n                const bucketRegionHeader = err?.$response?.headers?.[\"x-amz-bucket-region\"];\n                if (bucketRegionHeader) {\n                    if (statusCode === 301 ||\n                        (statusCode === 400 && (err?.name === \"IllegalLocationConstraintException\" || isHeadBucket))) {\n                        try {\n                            const actualRegion = bucketRegionHeader;\n                            context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n                            context.__s3RegionRedirect = actualRegion;\n                        }\n                        catch (e) {\n                            throw new Error(\"Region redirect failed: \" + e);\n                        }\n                        return next(args);\n                    }\n                }\n            }\n            throw err;\n        }\n    };\n}\nexport const regionRedirectMiddlewareOptions = {\n    step: \"initialize\",\n    tags: [\"REGION_REDIRECT\", \"S3\"],\n    name: \"regionRedirectMiddleware\",\n    override: true,\n};\nexport const getRegionRedirectMiddlewarePlugin = (clientConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n        clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n    },\n});\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { parseRfc7231DateTime } from \"@smithy/smithy-client\";\nexport const s3ExpiresMiddleware = (config) => {\n    return (next, context) => async (args) => {\n        const result = await next(args);\n        const { response } = result;\n        if (HttpResponse.isInstance(response)) {\n            if (response.headers.expires) {\n                response.headers.expiresstring = response.headers.expires;\n                try {\n                    parseRfc7231DateTime(response.headers.expires);\n                }\n                catch (e) {\n                    context.logger?.warn(`AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`);\n                    delete response.headers.expires;\n                }\n            }\n        }\n        return result;\n    };\n};\nexport const s3ExpiresMiddlewareOptions = {\n    tags: [\"S3\"],\n    name: \"s3ExpiresMiddleware\",\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"deserializerMiddleware\",\n};\nexport const getS3ExpiresMiddlewarePlugin = (clientConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);\n    },\n});\n","export class S3ExpressIdentityCache {\n    data;\n    lastPurgeTime = Date.now();\n    static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 30_000;\n    constructor(data = {}) {\n        this.data = data;\n    }\n    get(key) {\n        const entry = this.data[key];\n        if (!entry) {\n            return;\n        }\n        return entry;\n    }\n    set(key, entry) {\n        this.data[key] = entry;\n        return entry;\n    }\n    delete(key) {\n        delete this.data[key];\n    }\n    async purgeExpired() {\n        const now = Date.now();\n        if (this.lastPurgeTime + S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {\n            return;\n        }\n        for (const key in this.data) {\n            const entry = this.data[key];\n            if (!entry.isRefreshing) {\n                const credential = await entry.identity;\n                if (credential.expiration) {\n                    if (credential.expiration.getTime() < now) {\n                        delete this.data[key];\n                    }\n                }\n            }\n        }\n    }\n}\n","export class S3ExpressIdentityCacheEntry {\n    _identity;\n    isRefreshing;\n    accessed;\n    constructor(_identity, isRefreshing = false, accessed = Date.now()) {\n        this._identity = _identity;\n        this.isRefreshing = isRefreshing;\n        this.accessed = accessed;\n    }\n    get identity() {\n        this.accessed = Date.now();\n        return this._identity;\n    }\n}\n","import { S3ExpressIdentityCache } from \"./S3ExpressIdentityCache\";\nimport { S3ExpressIdentityCacheEntry } from \"./S3ExpressIdentityCacheEntry\";\nexport class S3ExpressIdentityProviderImpl {\n    createSessionFn;\n    cache;\n    static REFRESH_WINDOW_MS = 60_000;\n    constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {\n        this.createSessionFn = createSessionFn;\n        this.cache = cache;\n    }\n    async getS3ExpressIdentity(awsIdentity, identityProperties) {\n        const key = identityProperties.Bucket;\n        const { cache } = this;\n        const entry = cache.get(key);\n        if (entry) {\n            return entry.identity.then((identity) => {\n                const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();\n                if (isExpired) {\n                    return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n                }\n                const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;\n                if (isExpiringSoon && !entry.isRefreshing) {\n                    entry.isRefreshing = true;\n                    this.getIdentity(key).then((id) => {\n                        cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));\n                    });\n                }\n                return identity;\n            });\n        }\n        return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n    }\n    async getIdentity(key) {\n        await this.cache.purgeExpired().catch((error) => {\n            console.warn(\"Error while clearing expired entries in S3ExpressIdentityCache: \\n\" + error);\n        });\n        const session = await this.createSessionFn(key);\n        if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {\n            throw new Error(\"s3#createSession response credential missing AccessKeyId or SecretAccessKey.\");\n        }\n        const identity = {\n            accessKeyId: session.Credentials.AccessKeyId,\n            secretAccessKey: session.Credentials.SecretAccessKey,\n            sessionToken: session.Credentials.SessionToken,\n            expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : undefined,\n        };\n        return identity;\n    }\n}\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n    authorization: true,\n    \"cache-control\": true,\n    connection: true,\n    expect: true,\n    from: true,\n    \"keep-alive\": true,\n    \"max-forwards\": true,\n    pragma: true,\n    referer: true,\n    te: true,\n    trailer: true,\n    \"transfer-encoding\": true,\n    upgrade: true,\n    \"user-agent\": true,\n    \"x-amzn-trace-id\": true,\n};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n    const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n    const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n    if (cacheKey in signingKeyCache) {\n        return signingKeyCache[cacheKey];\n    }\n    cacheQueue.push(cacheKey);\n    while (cacheQueue.length > MAX_CACHE_SIZE) {\n        delete signingKeyCache[cacheQueue.shift()];\n    }\n    let key = `AWS4${credentials.secretAccessKey}`;\n    for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n        key = await hmac(sha256Constructor, key, signable);\n    }\n    return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n    cacheQueue.length = 0;\n    Object.keys(signingKeyCache).forEach((cacheKey) => {\n        delete signingKeyCache[cacheKey];\n    });\n};\nconst hmac = (ctor, secret, data) => {\n    const hash = new ctor(secret);\n    hash.update(toUint8Array(data));\n    return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n    const canonical = {};\n    for (const headerName of Object.keys(headers).sort()) {\n        if (headers[headerName] == undefined) {\n            continue;\n        }\n        const canonicalHeaderName = headerName.toLowerCase();\n        if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n            unsignableHeaders?.has(canonicalHeaderName) ||\n            PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n            SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n            if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n                continue;\n            }\n        }\n        canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n    }\n    return canonical;\n};\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n    for (const headerName of Object.keys(headers)) {\n        if (headerName.toLowerCase() === SHA256_HEADER) {\n            return headers[headerName];\n        }\n    }\n    if (body == undefined) {\n        return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n    }\n    else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n        const hashCtor = new hashConstructor();\n        hashCtor.update(toUint8Array(body));\n        return toHex(await hashCtor.digest());\n    }\n    return UNSIGNED_PAYLOAD;\n};\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { fromUtf8 } from \"@smithy/util-utf8\";\nexport class HeaderFormatter {\n    format(headers) {\n        const chunks = [];\n        for (const headerName of Object.keys(headers)) {\n            const bytes = fromUtf8(headerName);\n            chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n        }\n        const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n        let position = 0;\n        for (const chunk of chunks) {\n            out.set(chunk, position);\n            position += chunk.byteLength;\n        }\n        return out;\n    }\n    formatHeaderValue(header) {\n        switch (header.type) {\n            case \"boolean\":\n                return Uint8Array.from([header.value ? 0 : 1]);\n            case \"byte\":\n                return Uint8Array.from([2, header.value]);\n            case \"short\":\n                const shortView = new DataView(new ArrayBuffer(3));\n                shortView.setUint8(0, 3);\n                shortView.setInt16(1, header.value, false);\n                return new Uint8Array(shortView.buffer);\n            case \"integer\":\n                const intView = new DataView(new ArrayBuffer(5));\n                intView.setUint8(0, 4);\n                intView.setInt32(1, header.value, false);\n                return new Uint8Array(intView.buffer);\n            case \"long\":\n                const longBytes = new Uint8Array(9);\n                longBytes[0] = 5;\n                longBytes.set(header.value.bytes, 1);\n                return longBytes;\n            case \"binary\":\n                const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n                binView.setUint8(0, 6);\n                binView.setUint16(1, header.value.byteLength, false);\n                const binBytes = new Uint8Array(binView.buffer);\n                binBytes.set(header.value, 3);\n                return binBytes;\n            case \"string\":\n                const utf8Bytes = fromUtf8(header.value);\n                const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n                strView.setUint8(0, 7);\n                strView.setUint16(1, utf8Bytes.byteLength, false);\n                const strBytes = new Uint8Array(strView.buffer);\n                strBytes.set(utf8Bytes, 3);\n                return strBytes;\n            case \"timestamp\":\n                const tsBytes = new Uint8Array(9);\n                tsBytes[0] = 8;\n                tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n                return tsBytes;\n            case \"uuid\":\n                if (!UUID_PATTERN.test(header.value)) {\n                    throw new Error(`Invalid UUID received: ${header.value}`);\n                }\n                const uuidBytes = new Uint8Array(17);\n                uuidBytes[0] = 9;\n                uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n                return uuidBytes;\n        }\n    }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nexport class Int64 {\n    bytes;\n    constructor(bytes) {\n        this.bytes = bytes;\n        if (bytes.byteLength !== 8) {\n            throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n        }\n    }\n    static fromNumber(number) {\n        if (number > 9_223_372_036_854_775_807 || number < -9_223_372_036_854_775_808) {\n            throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n        }\n        const bytes = new Uint8Array(8);\n        for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n            bytes[i] = remaining;\n        }\n        if (number < 0) {\n            negate(bytes);\n        }\n        return new Int64(bytes);\n    }\n    valueOf() {\n        const bytes = this.bytes.slice(0);\n        const negative = bytes[0] & 0b10000000;\n        if (negative) {\n            negate(bytes);\n        }\n        return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n    }\n    toString() {\n        return String(this.valueOf());\n    }\n}\nfunction negate(bytes) {\n    for (let i = 0; i < 8; i++) {\n        bytes[i] ^= 0xff;\n    }\n    for (let i = 7; i > -1; i--) {\n        bytes[i]++;\n        if (bytes[i] !== 0)\n            break;\n    }\n}\n","export const hasHeader = (soughtHeader, headers) => {\n    soughtHeader = soughtHeader.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (soughtHeader === headerName.toLowerCase()) {\n            return true;\n        }\n    }\n    return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n    soughtHeader = soughtHeader.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (soughtHeader === headerName.toLowerCase()) {\n            return headers[headerName];\n        }\n    }\n    return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n    soughtHeader = soughtHeader.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (soughtHeader === headerName.toLowerCase()) {\n            delete headers[headerName];\n        }\n    }\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n    const { headers, query = {} } = HttpRequest.clone(request);\n    for (const name of Object.keys(headers)) {\n        const lname = name.toLowerCase();\n        if ((lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) ||\n            options.hoistableHeaders?.has(lname)) {\n            query[name] = headers[name];\n            delete headers[name];\n        }\n    }\n    return {\n        ...request,\n        headers,\n        query,\n    };\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n    request = HttpRequest.clone(request);\n    for (const headerName of Object.keys(request.headers)) {\n        if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n            delete request.headers[headerName];\n        }\n    }\n    return request;\n};\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n    const keys = [];\n    const serialized = {};\n    for (const key of Object.keys(query)) {\n        if (key.toLowerCase() === SIGNATURE_HEADER) {\n            continue;\n        }\n        const encodedKey = escapeUri(key);\n        keys.push(encodedKey);\n        const value = query[key];\n        if (typeof value === \"string\") {\n            serialized[encodedKey] = `${encodedKey}=${escapeUri(value)}`;\n        }\n        else if (Array.isArray(value)) {\n            serialized[encodedKey] = value\n                .slice(0)\n                .reduce((encoded, value) => encoded.concat([`${encodedKey}=${escapeUri(value)}`]), [])\n                .sort()\n                .join(\"&\");\n        }\n    }\n    return keys\n        .sort()\n        .map((key) => serialized[key])\n        .filter((serialized) => serialized)\n        .join(\"&\");\n};\n","export const iso8601 = (time) => toDate(time)\n    .toISOString()\n    .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const toDate = (time) => {\n    if (typeof time === \"number\") {\n        return new Date(time * 1000);\n    }\n    if (typeof time === \"string\") {\n        if (Number(time)) {\n            return new Date(Number(time) * 1000);\n        }\n        return new Date(time);\n    }\n    return time;\n};\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nimport { escapeUri } from \"@smithy/util-uri-escape\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4Base {\n    service;\n    regionProvider;\n    credentialProvider;\n    sha256;\n    uriEscapePath;\n    applyChecksum;\n    constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n        this.service = service;\n        this.sha256 = sha256;\n        this.uriEscapePath = uriEscapePath;\n        this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n        this.regionProvider = normalizeProvider(region);\n        this.credentialProvider = normalizeProvider(credentials);\n    }\n    createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n        const sortedHeaders = Object.keys(canonicalHeaders).sort();\n        return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n    }\n    async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) {\n        const hash = new this.sha256();\n        hash.update(toUint8Array(canonicalRequest));\n        const hashedRequest = await hash.digest();\n        return `${algorithmIdentifier}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n    }\n    getCanonicalPath({ path }) {\n        if (this.uriEscapePath) {\n            const normalizedPathSegments = [];\n            for (const pathSegment of path.split(\"/\")) {\n                if (pathSegment?.length === 0)\n                    continue;\n                if (pathSegment === \".\")\n                    continue;\n                if (pathSegment === \"..\") {\n                    normalizedPathSegments.pop();\n                }\n                else {\n                    normalizedPathSegments.push(pathSegment);\n                }\n            }\n            const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n            const doubleEncoded = escapeUri(normalizedPath);\n            return doubleEncoded.replace(/%2F/g, \"/\");\n        }\n        return path;\n    }\n    validateResolvedCredentials(credentials) {\n        if (typeof credentials !== \"object\" ||\n            typeof credentials.accessKeyId !== \"string\" ||\n            typeof credentials.secretAccessKey !== \"string\") {\n            throw new Error(\"Resolved credential object is not valid\");\n        }\n    }\n    formatDate(now) {\n        const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n        return {\n            longDate,\n            shortDate: longDate.slice(0, 8),\n        };\n    }\n    getCanonicalHeaderList(headers) {\n        return Object.keys(headers).sort().join(\";\");\n    }\n}\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { HeaderFormatter } from \"./HeaderFormatter\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { SignatureV4Base } from \"./SignatureV4Base\";\nexport class SignatureV4 extends SignatureV4Base {\n    headerFormatter = new HeaderFormatter();\n    constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n        super({\n            applyChecksum,\n            credentials,\n            region,\n            service,\n            sha256,\n            uriEscapePath,\n        });\n    }\n    async presign(originalRequest, options = {}) {\n        const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = signingRegion ?? (await this.regionProvider());\n        const { longDate, shortDate } = this.formatDate(signingDate);\n        if (expiresIn > MAX_PRESIGNED_TTL) {\n            return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n        }\n        const scope = createScope(shortDate, region, signingService ?? this.service);\n        const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders });\n        if (credentials.sessionToken) {\n            request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        }\n        request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n        request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n        request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n        request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n        const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n        request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders);\n        request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n        return request;\n    }\n    async sign(toSign, options) {\n        if (typeof toSign === \"string\") {\n            return this.signString(toSign, options);\n        }\n        else if (toSign.headers && toSign.payload) {\n            return this.signEvent(toSign, options);\n        }\n        else if (toSign.message) {\n            return this.signMessage(toSign, options);\n        }\n        else {\n            return this.signRequest(toSign, options);\n        }\n    }\n    async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n        const region = signingRegion ?? (await this.regionProvider());\n        const { shortDate, longDate } = this.formatDate(signingDate);\n        const scope = createScope(shortDate, region, signingService ?? this.service);\n        const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n        const hash = new this.sha256();\n        hash.update(headers);\n        const hashedHeaders = toHex(await hash.digest());\n        const stringToSign = [\n            EVENT_ALGORITHM_IDENTIFIER,\n            longDate,\n            scope,\n            priorSignature,\n            hashedHeaders,\n            hashedPayload,\n        ].join(\"\\n\");\n        return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n    }\n    async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n        const promise = this.signEvent({\n            headers: this.headerFormatter.format(signableMessage.message.headers),\n            payload: signableMessage.message.body,\n        }, {\n            signingDate,\n            signingRegion,\n            signingService,\n            priorSignature: signableMessage.priorSignature,\n        });\n        return promise.then((signature) => {\n            return { message: signableMessage.message, signature };\n        });\n    }\n    async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = signingRegion ?? (await this.regionProvider());\n        const { shortDate } = this.formatDate(signingDate);\n        const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n        hash.update(toUint8Array(stringToSign));\n        return toHex(await hash.digest());\n    }\n    async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = signingRegion ?? (await this.regionProvider());\n        const request = prepareRequest(requestToSign);\n        const { longDate, shortDate } = this.formatDate(signingDate);\n        const scope = createScope(shortDate, region, signingService ?? this.service);\n        request.headers[AMZ_DATE_HEADER] = longDate;\n        if (credentials.sessionToken) {\n            request.headers[TOKEN_HEADER] = credentials.sessionToken;\n        }\n        const payloadHash = await getPayloadHash(request, this.sha256);\n        if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n            request.headers[SHA256_HEADER] = payloadHash;\n        }\n        const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n        const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n        request.headers[AUTH_HEADER] =\n            `${ALGORITHM_IDENTIFIER} ` +\n                `Credential=${credentials.accessKeyId}/${scope}, ` +\n                `SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, ` +\n                `Signature=${signature}`;\n        return request;\n    }\n    async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n        const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER);\n        const hash = new this.sha256(await keyPromise);\n        hash.update(toUint8Array(stringToSign));\n        return toHex(await hash.digest());\n    }\n    getSigningKey(credentials, region, shortDate, service) {\n        return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n    }\n}\n","export const signatureV4aContainer = {\n    SignatureV4a: null,\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const S3_EXPRESS_BUCKET_TYPE = \"Directory\";\nexport const S3_EXPRESS_BACKEND = \"S3Express\";\nexport const S3_EXPRESS_AUTH_SCHEME = \"sigv4-s3express\";\nexport const SESSION_TOKEN_QUERY_PARAM = \"X-Amz-S3session-Token\";\nexport const SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = \"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = \"s3_disable_express_session_auth\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {\n    environmentVariableSelector: (env) => booleanSelector(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, SelectorType.ENV),\n    configFileSelector: (profile) => booleanSelector(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, SelectorType.CONFIG),\n    default: false,\n};\n","import { SignatureV4 } from \"@smithy/signature-v4\";\nimport { SESSION_TOKEN_HEADER, SESSION_TOKEN_QUERY_PARAM } from \"../constants\";\nexport class SignatureV4S3Express extends SignatureV4 {\n    async signWithCredentials(requestToSign, credentials, options) {\n        const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n        requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;\n        const privateAccess = this;\n        setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n        return privateAccess.signRequest(requestToSign, options ?? {});\n    }\n    async presignWithCredentials(requestToSign, credentials, options) {\n        const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n        delete requestToSign.headers[SESSION_TOKEN_HEADER];\n        requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        requestToSign.query = requestToSign.query ?? {};\n        requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        const privateAccess = this;\n        setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n        return this.presign(requestToSign, options);\n    }\n}\nfunction getCredentialsWithoutSessionToken(credentials) {\n    const credentialsWithoutSessionToken = {\n        accessKeyId: credentials.accessKeyId,\n        secretAccessKey: credentials.secretAccessKey,\n        expiration: credentials.expiration,\n    };\n    return credentialsWithoutSessionToken;\n}\nfunction setSingleOverride(privateAccess, credentialsWithoutSessionToken) {\n    const id = setTimeout(() => {\n        throw new Error(\"SignatureV4S3Express credential override was created but not called.\");\n    }, 10);\n    const currentCredentialProvider = privateAccess.credentialProvider;\n    const overrideCredentialsProviderOnce = () => {\n        clearTimeout(id);\n        privateAccess.credentialProvider = currentCredentialProvider;\n        return Promise.resolve(credentialsWithoutSessionToken);\n    };\n    privateAccess.credentialProvider = overrideCredentialsProviderOnce;\n}\n","import { setFeature } from \"@aws-sdk/core/client\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { S3_EXPRESS_AUTH_SCHEME, S3_EXPRESS_BACKEND, S3_EXPRESS_BUCKET_TYPE, SESSION_TOKEN_HEADER } from \"../constants\";\nexport const s3ExpressMiddleware = (options) => {\n    return (next, context) => async (args) => {\n        if (context.endpointV2) {\n            const endpoint = context.endpointV2;\n            const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;\n            const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND ||\n                endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;\n            if (isS3ExpressBucket) {\n                setFeature(context, \"S3_EXPRESS_BUCKET\", \"J\");\n                context.isS3ExpressBucket = true;\n            }\n            if (isS3ExpressAuth) {\n                const requestBucket = args.input.Bucket;\n                if (requestBucket) {\n                    const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(await options.credentials(), {\n                        Bucket: requestBucket,\n                    });\n                    context.s3ExpressIdentity = s3ExpressIdentity;\n                    if (HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {\n                        args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;\n                    }\n                }\n            }\n        }\n        return next(args);\n    };\n};\nexport const s3ExpressMiddlewareOptions = {\n    name: \"s3ExpressMiddleware\",\n    step: \"build\",\n    tags: [\"S3\", \"S3_EXPRESS\"],\n    override: true,\n};\nexport const getS3ExpressPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);\n    },\n});\n","export const resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => {\n    if (!authSchemePreference || authSchemePreference.length === 0) {\n        return candidateAuthOptions;\n    }\n    const preferredAuthOptions = [];\n    for (const preferredSchemeName of authSchemePreference) {\n        for (const candidateAuthOption of candidateAuthOptions) {\n            const candidateAuthSchemeName = candidateAuthOption.schemeId.split(\"#\")[1];\n            if (candidateAuthSchemeName === preferredSchemeName) {\n                preferredAuthOptions.push(candidateAuthOption);\n            }\n        }\n    }\n    for (const candidateAuthOption of candidateAuthOptions) {\n        if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) {\n            preferredAuthOptions.push(candidateAuthOption);\n        }\n    }\n    return preferredAuthOptions;\n};\n","import { getSmithyContext } from \"@smithy/util-middleware\";\nimport { resolveAuthOptions } from \"./resolveAuthOptions\";\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n    const map = new Map();\n    for (const scheme of httpAuthSchemes) {\n        map.set(scheme.schemeId, scheme);\n    }\n    return map;\n}\nexport const httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n    const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n    const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : [];\n    const resolvedOptions = resolveAuthOptions(options, authSchemePreference);\n    const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n    const smithyContext = getSmithyContext(context);\n    const failureReasons = [];\n    for (const option of resolvedOptions) {\n        const scheme = authSchemes.get(option.schemeId);\n        if (!scheme) {\n            failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n            continue;\n        }\n        const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n        if (!identityProvider) {\n            failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n            continue;\n        }\n        const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n        option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n        option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n        smithyContext.selectedHttpAuthScheme = {\n            httpAuthOption: option,\n            identity: await identityProvider(option.identityProperties),\n            signer: scheme.signer,\n        };\n        break;\n    }\n    if (!smithyContext.selectedHttpAuthScheme) {\n        throw new Error(failureReasons.join(\"\\n\"));\n    }\n    return next(args);\n};\n","import { httpAuthSchemeMiddleware } from \"./httpAuthSchemeMiddleware\";\nexport const httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n    step: \"serialize\",\n    tags: [\"HTTP_AUTH_SCHEME\"],\n    name: \"httpAuthSchemeMiddleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: \"endpointV2Middleware\",\n};\nexport const getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n            httpAuthSchemeParametersProvider,\n            identityProviderConfigProvider,\n        }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n    },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n    throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const httpSigningMiddleware = (config) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const smithyContext = getSmithyContext(context);\n    const scheme = smithyContext.selectedHttpAuthScheme;\n    if (!scheme) {\n        throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n    }\n    const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n    const output = await next({\n        ...args,\n        request: await signer.sign(args.request, identity, signingProperties),\n    }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n    (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n    return output;\n};\n","import { httpSigningMiddleware } from \"./httpSigningMiddleware\";\nexport const httpSigningMiddlewareOptions = {\n    step: \"finalizeRequest\",\n    tags: [\"HTTP_SIGNING\"],\n    name: \"httpSigningMiddleware\",\n    aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"retryMiddleware\",\n};\nexport const getHttpSigningPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions);\n    },\n});\n","export const normalizeProvider = (input) => {\n    if (typeof input === \"function\")\n        return input;\n    const promisified = Promise.resolve(input);\n    return () => promisified;\n};\n","export function setFeature(context, feature, value) {\n    if (!context.__smithy_context) {\n        context.__smithy_context = {\n            features: {},\n        };\n    }\n    else if (!context.__smithy_context.features) {\n        context.__smithy_context.features = {};\n    }\n    context.__smithy_context.features[feature] = value;\n}\n","export class DefaultIdentityProviderConfig {\n    authSchemes = new Map();\n    constructor(config) {\n        for (const [key, value] of Object.entries(config)) {\n            if (value !== undefined) {\n                this.authSchemes.set(key, value);\n            }\n        }\n    }\n    getIdentityProvider(schemeId) {\n        return this.authSchemes.get(schemeId);\n    }\n}\n","export const createIsIdentityExpiredFunction = (expirationMs) => function isIdentityExpired(identity) {\n    return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\n};\nexport const EXPIRATION_MS = 300_000;\nexport const isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nexport const doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nexport const memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n    if (provider === undefined) {\n        return undefined;\n    }\n    const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n    let resolved;\n    let pending;\n    let hasResult;\n    let isConstant = false;\n    const coalesceProvider = async (options) => {\n        if (!pending) {\n            pending = normalizedProvider(options);\n        }\n        try {\n            resolved = await pending;\n            hasResult = true;\n            isConstant = false;\n        }\n        finally {\n            pending = undefined;\n        }\n        return resolved;\n    };\n    if (isExpired === undefined) {\n        return async (options) => {\n            if (!hasResult || options?.forceRefresh) {\n                resolved = await coalesceProvider(options);\n            }\n            return resolved;\n        };\n    }\n    return async (options) => {\n        if (!hasResult || options?.forceRefresh) {\n            resolved = await coalesceProvider(options);\n        }\n        if (isConstant) {\n            return resolved;\n        }\n        if (!requiresRefresh(resolved)) {\n            isConstant = true;\n            return resolved;\n        }\n        if (isExpired(resolved)) {\n            await coalesceProvider(options);\n            return resolved;\n        }\n        return resolved;\n    };\n};\n","export const signS3Express = async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {\n    const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});\n    if (signedRequest.headers[\"X-Amz-Security-Token\"] || signedRequest.headers[\"x-amz-security-token\"]) {\n        throw new Error(\"X-Amz-Security-Token must not be set for s3-express requests.\");\n    }\n    return signedRequest;\n};\n","import { httpSigningMiddlewareOptions } from \"@smithy/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { signS3Express } from \"./signS3Express\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n    throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const s3ExpressHttpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexport const s3ExpressHttpSigningMiddleware = (config) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const smithyContext = getSmithyContext(context);\n    const scheme = smithyContext.selectedHttpAuthScheme;\n    if (!scheme) {\n        throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n    }\n    const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n    let request;\n    if (context.s3ExpressIdentity) {\n        request = await signS3Express(context.s3ExpressIdentity, signingProperties, args.request, await config.signer());\n    }\n    else {\n        request = await signer.sign(args.request, identity, signingProperties);\n    }\n    const output = await next({\n        ...args,\n        request,\n    }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n    (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n    return output;\n};\nexport const getS3ExpressHttpSigningPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(s3ExpressHttpSigningMiddleware(config), httpSigningMiddlewareOptions);\n    },\n});\n","import { S3ExpressIdentityProviderImpl } from \"./s3-express\";\nexport const resolveS3Config = (input, { session, }) => {\n    const [s3ClientProvider, CreateSessionCommandCtor] = session;\n    const { forcePathStyle, useAccelerateEndpoint, disableMultiregionAccessPoints, followRegionRedirects, s3ExpressIdentityProvider, bucketEndpoint, expectContinueHeader, } = input;\n    return Object.assign(input, {\n        forcePathStyle: forcePathStyle ?? false,\n        useAccelerateEndpoint: useAccelerateEndpoint ?? false,\n        disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,\n        followRegionRedirects: followRegionRedirects ?? false,\n        s3ExpressIdentityProvider: s3ExpressIdentityProvider ??\n            new S3ExpressIdentityProviderImpl(async (key) => s3ClientProvider().send(new CreateSessionCommandCtor({\n                Bucket: key,\n            }))),\n        bucketEndpoint: bucketEndpoint ?? false,\n        expectContinueHeader: expectContinueHeader ?? 2_097_152,\n    });\n};\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { headStream, splitStream } from \"@smithy/util-stream\";\nconst THROW_IF_EMPTY_BODY = {\n    CopyObjectCommand: true,\n    UploadPartCopyCommand: true,\n    CompleteMultipartUploadCommand: true,\n};\nconst MAX_BYTES_TO_INSPECT = 3000;\nexport const throw200ExceptionsMiddleware = (config) => (next, context) => async (args) => {\n    const result = await next(args);\n    const { response } = result;\n    if (!HttpResponse.isInstance(response)) {\n        return result;\n    }\n    const { statusCode, body: sourceBody } = response;\n    if (statusCode < 200 || statusCode >= 300) {\n        return result;\n    }\n    const isSplittableStream = typeof sourceBody?.stream === \"function\" ||\n        typeof sourceBody?.pipe === \"function\" ||\n        typeof sourceBody?.tee === \"function\";\n    if (!isSplittableStream) {\n        return result;\n    }\n    let bodyCopy = sourceBody;\n    let body = sourceBody;\n    if (sourceBody && typeof sourceBody === \"object\" && !(sourceBody instanceof Uint8Array)) {\n        [bodyCopy, body] = await splitStream(sourceBody);\n    }\n    response.body = body;\n    const bodyBytes = await collectBody(bodyCopy, {\n        streamCollector: async (stream) => {\n            return headStream(stream, MAX_BYTES_TO_INSPECT);\n        },\n    });\n    if (typeof bodyCopy?.destroy === \"function\") {\n        bodyCopy.destroy();\n    }\n    const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));\n    if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {\n        const err = new Error(\"S3 aborted request\");\n        err.name = \"InternalError\";\n        throw err;\n    }\n    if (bodyStringTail && bodyStringTail.endsWith(\"</Error>\")) {\n        response.statusCode = 400;\n    }\n    return result;\n};\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n    if (streamBody instanceof Uint8Array) {\n        return Promise.resolve(streamBody);\n    }\n    return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nexport const throw200ExceptionsMiddlewareOptions = {\n    relation: \"after\",\n    toMiddleware: \"deserializerMiddleware\",\n    tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n    name: \"throw200ExceptionsMiddleware\",\n    override: true,\n};\nexport const getThrow200ExceptionsPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n    },\n});\n","export const validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexport const parse = (arn) => {\n    const segments = arn.split(\":\");\n    if (segments.length < 6 || segments[0] !== \"arn\")\n        throw new Error(\"Malformed ARN\");\n    const [, partition, service, region, accountId, ...resource] = segments;\n    return {\n        partition,\n        service,\n        region,\n        accountId,\n        resource: resource.join(\":\"),\n    };\n};\nexport const build = (arnObject) => {\n    const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n    if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n        throw new Error(\"Input ARN object is invalid\");\n    }\n    return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\n","export function bucketEndpointMiddleware(options) {\n    return (next, context) => async (args) => {\n        if (options.bucketEndpoint) {\n            const endpoint = context.endpointV2;\n            if (endpoint) {\n                const bucket = args.input.Bucket;\n                if (typeof bucket === \"string\") {\n                    try {\n                        const bucketEndpointUrl = new URL(bucket);\n                        context.endpointV2 = {\n                            ...endpoint,\n                            url: bucketEndpointUrl,\n                        };\n                    }\n                    catch (e) {\n                        const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;\n                        if (context.logger?.constructor?.name === \"NoOpLogger\") {\n                            console.warn(warning);\n                        }\n                        else {\n                            context.logger?.warn?.(warning);\n                        }\n                        throw e;\n                    }\n                }\n            }\n        }\n        return next(args);\n    };\n}\nexport const bucketEndpointMiddlewareOptions = {\n    name: \"bucketEndpointMiddleware\",\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"endpointV2Middleware\",\n};\n","import { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketEndpointMiddleware, bucketEndpointMiddlewareOptions } from \"./bucket-endpoint-middleware\";\nexport function validateBucketNameMiddleware({ bucketEndpoint }) {\n    return (next) => async (args) => {\n        const { input: { Bucket }, } = args;\n        if (!bucketEndpoint && typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n            const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n            err.name = \"InvalidBucketName\";\n            throw err;\n        }\n        return next({ ...args });\n    };\n}\nexport const validateBucketNameMiddlewareOptions = {\n    step: \"initialize\",\n    tags: [\"VALIDATE_BUCKET_NAME\"],\n    name: \"validateBucketNameMiddleware\",\n    override: true,\n};\nexport const getValidateBucketNamePlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);\n        clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n    },\n});\n","const TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nexport const calculateBodyLength = (body) => {\n    if (typeof body === \"string\") {\n        if (TEXT_ENCODER) {\n            return TEXT_ENCODER.encode(body).byteLength;\n        }\n        let len = body.length;\n        for (let i = len - 1; i >= 0; i--) {\n            const code = body.charCodeAt(i);\n            if (code > 0x7f && code <= 0x7ff)\n                len++;\n            else if (code > 0x7ff && code <= 0xffff)\n                len += 2;\n            if (code >= 0xdc00 && code <= 0xdfff)\n                i--;\n        }\n        return len;\n    }\n    else if (typeof body.byteLength === \"number\") {\n        return body.byteLength;\n    }\n    else if (typeof body.size === \"number\") {\n        return body.size;\n    }\n    throw new Error(`Body Length computation failed for ${body}`);\n};\n","import { NormalizedSchema, TypeRegistry } from \"@smithy/core/schema\";\nimport { decorateServiceException } from \"@smithy/smithy-client\";\nexport class ProtocolLib {\n    queryCompat;\n    errorRegistry;\n    constructor(queryCompat = false) {\n        this.queryCompat = queryCompat;\n    }\n    resolveRestContentType(defaultContentType, inputSchema) {\n        const members = inputSchema.getMemberSchemas();\n        const httpPayloadMember = Object.values(members).find((m) => {\n            return !!m.getMergedTraits().httpPayload;\n        });\n        if (httpPayloadMember) {\n            const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n            if (mediaType) {\n                return mediaType;\n            }\n            else if (httpPayloadMember.isStringSchema()) {\n                return \"text/plain\";\n            }\n            else if (httpPayloadMember.isBlobSchema()) {\n                return \"application/octet-stream\";\n            }\n            else {\n                return defaultContentType;\n            }\n        }\n        else if (!inputSchema.isUnitSchema()) {\n            const hasBody = Object.values(members).find((m) => {\n                const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n                const noPrefixHeaders = httpPrefixHeaders === void 0;\n                return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n            });\n            if (hasBody) {\n                return defaultContentType;\n            }\n        }\n    }\n    async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n        let errorName = errorIdentifier;\n        if (errorIdentifier.includes(\"#\")) {\n            [, errorName] = errorIdentifier.split(\"#\");\n        }\n        const errorMetadata = {\n            $metadata: metadata,\n            $fault: response.statusCode < 500 ? \"client\" : \"server\",\n        };\n        if (!this.errorRegistry) {\n            throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n        }\n        try {\n            const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n                this.errorRegistry.getSchema(errorIdentifier);\n            return { errorSchema, errorMetadata };\n        }\n        catch (e) {\n            dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n            const synthetic = this.errorRegistry;\n            const baseExceptionSchema = synthetic.getBaseException();\n            if (baseExceptionSchema) {\n                const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n                throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n            }\n            const d = dataObject;\n            const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n            throw this.decorateServiceException(Object.assign(new Error(message), {\n                name: errorName,\n            }, errorMetadata), dataObject);\n        }\n    }\n    compose(composite, errorIdentifier, defaultNamespace) {\n        let namespace = defaultNamespace;\n        if (errorIdentifier.includes(\"#\")) {\n            [namespace] = errorIdentifier.split(\"#\");\n        }\n        const staticRegistry = TypeRegistry.for(namespace);\n        const defaultSyntheticRegistry = TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n        composite.copyFrom(staticRegistry);\n        composite.copyFrom(defaultSyntheticRegistry);\n        this.errorRegistry = composite;\n    }\n    decorateServiceException(exception, additions = {}) {\n        if (this.queryCompat) {\n            const msg = exception.Message ?? additions.Message;\n            const error = decorateServiceException(exception, additions);\n            if (msg) {\n                error.message = msg;\n            }\n            error.Error = {\n                ...error.Error,\n                Type: error.Error?.Type,\n                Code: error.Error?.Code,\n                Message: error.Error?.message ?? error.Error?.Message ?? msg,\n            };\n            const reqId = error.$metadata.requestId;\n            if (reqId) {\n                error.RequestId = reqId;\n            }\n            return error;\n        }\n        return decorateServiceException(exception, additions);\n    }\n    setQueryCompatError(output, response) {\n        const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n        if (output !== undefined && queryErrorHeader != null) {\n            const [Code, Type] = queryErrorHeader.split(\";\");\n            const entries = Object.entries(output);\n            const Error = {\n                Code,\n                Type,\n            };\n            Object.assign(output, Error);\n            for (const [k, v] of entries) {\n                Error[k === \"message\" ? \"Message\" : k] = v;\n            }\n            delete Error.__type;\n            output.Error = Error;\n        }\n    }\n    queryCompatOutput(queryCompatErrorData, errorData) {\n        if (queryCompatErrorData.Error) {\n            errorData.Error = queryCompatErrorData.Error;\n        }\n        if (queryCompatErrorData.Type) {\n            errorData.Type = queryCompatErrorData.Type;\n        }\n        if (queryCompatErrorData.Code) {\n            errorData.Code = queryCompatErrorData.Code;\n        }\n    }\n    findQueryCompatibleError(registry, errorName) {\n        try {\n            return registry.getSchema(errorName);\n        }\n        catch (e) {\n            return registry.find((schema) => NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName);\n        }\n    }\n}\n","export class SerdeContextConfig {\n    serdeContext;\n    setSerdeContext(serdeContext) {\n        this.serdeContext = serdeContext;\n    }\n}\n","export class UnionSerde {\n    from;\n    to;\n    keys;\n    constructor(from, to) {\n        this.from = from;\n        this.to = to;\n        this.keys = new Set(Object.keys(this.from).filter((k) => k !== \"__type\"));\n    }\n    mark(key) {\n        this.keys.delete(key);\n    }\n    hasUnknown() {\n        return this.keys.size === 1 && Object.keys(this.to).length === 0;\n    }\n    writeUnknown() {\n        if (this.hasUnknown()) {\n            const k = this.keys.values().next().value;\n            const v = this.from[k];\n            this.to.$unknown = [k, v];\n        }\n    }\n}\n","const ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n};\nexport function escapeAttribute(value) {\n    return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n","const ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n    \"&\": \"&amp;\",\n    '\"': \"&quot;\",\n    \"'\": \"&apos;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    \"\\r\": \"&#x0D;\",\n    \"\\n\": \"&#x0A;\",\n    \"\\u0085\": \"&#x85;\",\n    \"\\u2028\": \"&#x2028;\",\n};\nexport function escapeElement(value) {\n    return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n","import { escapeElement } from \"./escape-element\";\nexport class XmlText {\n    value;\n    constructor(value) {\n        this.value = value;\n    }\n    toString() {\n        return escapeElement(\"\" + this.value);\n    }\n}\n","import { escapeAttribute } from \"./escape-attribute\";\nimport { XmlText } from \"./XmlText\";\nexport class XmlNode {\n    name;\n    children;\n    attributes = {};\n    static of(name, childText, withName) {\n        const node = new XmlNode(name);\n        if (childText !== undefined) {\n            node.addChildNode(new XmlText(childText));\n        }\n        if (withName !== undefined) {\n            node.withName(withName);\n        }\n        return node;\n    }\n    constructor(name, children = []) {\n        this.name = name;\n        this.children = children;\n    }\n    withName(name) {\n        this.name = name;\n        return this;\n    }\n    addAttribute(name, value) {\n        this.attributes[name] = value;\n        return this;\n    }\n    addChildNode(child) {\n        this.children.push(child);\n        return this;\n    }\n    removeAttribute(name) {\n        delete this.attributes[name];\n        return this;\n    }\n    n(name) {\n        this.name = name;\n        return this;\n    }\n    c(child) {\n        this.children.push(child);\n        return this;\n    }\n    a(name, value) {\n        if (value != null) {\n            this.attributes[name] = value;\n        }\n        return this;\n    }\n    cc(input, field, withName = field) {\n        if (input[field] != null) {\n            const node = XmlNode.of(field, input[field]).withName(withName);\n            this.c(node);\n        }\n    }\n    l(input, listName, memberName, valueProvider) {\n        if (input[listName] != null) {\n            const nodes = valueProvider();\n            nodes.map((node) => {\n                node.withName(memberName);\n                this.c(node);\n            });\n        }\n    }\n    lc(input, listName, memberName, valueProvider) {\n        if (input[listName] != null) {\n            const nodes = valueProvider();\n            const containerNode = new XmlNode(memberName);\n            nodes.map((node) => {\n                containerNode.c(node);\n            });\n            this.c(containerNode);\n        }\n    }\n    toString() {\n        const hasChildren = Boolean(this.children.length);\n        let xmlText = `<${this.name}`;\n        const attributes = this.attributes;\n        for (const attributeName of Object.keys(attributes)) {\n            const attribute = attributes[attributeName];\n            if (attribute != null) {\n                xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n            }\n        }\n        return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}</${this.name}>`);\n    }\n}\n","let parser;\nexport function parseXML(xmlString) {\n    if (!parser) {\n        parser = new DOMParser();\n    }\n    const xmlDocument = parser.parseFromString(xmlString, \"application/xml\");\n    if (xmlDocument.getElementsByTagName(\"parsererror\").length > 0) {\n        throw new Error(\"DOMParser XML parsing error.\");\n    }\n    const xmlToObj = (node) => {\n        if (node.nodeType === Node.TEXT_NODE) {\n            if (node.textContent?.trim()) {\n                return node.textContent;\n            }\n        }\n        if (node.nodeType === Node.ELEMENT_NODE) {\n            const element = node;\n            if (element.attributes.length === 0 && element.childNodes.length === 0) {\n                return \"\";\n            }\n            const obj = {};\n            const attributes = Array.from(element.attributes);\n            for (const attr of attributes) {\n                obj[`${attr.name}`] = attr.value;\n            }\n            const childNodes = Array.from(element.childNodes);\n            for (const child of childNodes) {\n                const childResult = xmlToObj(child);\n                if (childResult != null) {\n                    const childName = child.nodeName;\n                    if (childNodes.length === 1 && attributes.length === 0 && childName === \"#text\") {\n                        return childResult;\n                    }\n                    if (obj[childName]) {\n                        if (Array.isArray(obj[childName])) {\n                            obj[childName].push(childResult);\n                        }\n                        else {\n                            obj[childName] = [obj[childName], childResult];\n                        }\n                    }\n                    else {\n                        obj[childName] = childResult;\n                    }\n                }\n                else if (childNodes.length === 1 && attributes.length === 0) {\n                    return element.textContent;\n                }\n            }\n            return obj;\n        }\n        return null;\n    };\n    return {\n        [xmlDocument.documentElement.nodeName]: xmlToObj(xmlDocument.documentElement),\n    };\n}\n","import { parseXML } from \"@aws-sdk/xml-builder\";\nimport { FromStringShapeDeserializer } from \"@smithy/core/protocols\";\nimport { NormalizedSchema } from \"@smithy/core/schema\";\nimport { getValueFromTextNode } from \"@smithy/smithy-client\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nimport { SerdeContextConfig } from \"../ConfigurableSerdeContext\";\nimport { UnionSerde } from \"../UnionSerde\";\nexport class XmlShapeDeserializer extends SerdeContextConfig {\n    settings;\n    stringDeserializer;\n    constructor(settings) {\n        super();\n        this.settings = settings;\n        this.stringDeserializer = new FromStringShapeDeserializer(settings);\n    }\n    setSerdeContext(serdeContext) {\n        this.serdeContext = serdeContext;\n        this.stringDeserializer.setSerdeContext(serdeContext);\n    }\n    read(schema, bytes, key) {\n        const ns = NormalizedSchema.of(schema);\n        const memberSchemas = ns.getMemberSchemas();\n        const isEventPayload = ns.isStructSchema() &&\n            ns.isMemberSchema() &&\n            !!Object.values(memberSchemas).find((memberNs) => {\n                return !!memberNs.getMemberTraits().eventPayload;\n            });\n        if (isEventPayload) {\n            const output = {};\n            const memberName = Object.keys(memberSchemas)[0];\n            const eventMemberSchema = memberSchemas[memberName];\n            if (eventMemberSchema.isBlobSchema()) {\n                output[memberName] = bytes;\n            }\n            else {\n                output[memberName] = this.read(memberSchemas[memberName], bytes);\n            }\n            return output;\n        }\n        const xmlString = (this.serdeContext?.utf8Encoder ?? toUtf8)(bytes);\n        const parsedObject = this.parseXml(xmlString);\n        return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n    }\n    readSchema(_schema, value) {\n        const ns = NormalizedSchema.of(_schema);\n        if (ns.isUnitSchema()) {\n            return;\n        }\n        const traits = ns.getMergedTraits();\n        if (ns.isListSchema() && !Array.isArray(value)) {\n            return this.readSchema(ns, [value]);\n        }\n        if (value == null) {\n            return value;\n        }\n        if (typeof value === \"object\") {\n            const flat = !!traits.xmlFlattened;\n            if (ns.isListSchema()) {\n                const listValue = ns.getValueSchema();\n                const buffer = [];\n                const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n                const source = flat ? value : (value[0] ?? value)[sourceKey];\n                if (source == null) {\n                    return buffer;\n                }\n                const sourceArray = Array.isArray(source) ? source : [source];\n                for (const v of sourceArray) {\n                    buffer.push(this.readSchema(listValue, v));\n                }\n                return buffer;\n            }\n            const buffer = {};\n            if (ns.isMapSchema()) {\n                const keyNs = ns.getKeySchema();\n                const memberNs = ns.getValueSchema();\n                let entries;\n                if (flat) {\n                    entries = Array.isArray(value) ? value : [value];\n                }\n                else {\n                    entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n                }\n                const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n                const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n                for (const entry of entries) {\n                    const key = entry[keyProperty];\n                    const value = entry[valueProperty];\n                    buffer[key] = this.readSchema(memberNs, value);\n                }\n                return buffer;\n            }\n            if (ns.isStructSchema()) {\n                const union = ns.isUnionSchema();\n                let unionSerde;\n                if (union) {\n                    unionSerde = new UnionSerde(value, buffer);\n                }\n                for (const [memberName, memberSchema] of ns.structIterator()) {\n                    const memberTraits = memberSchema.getMergedTraits();\n                    const xmlObjectKey = !memberTraits.httpPayload\n                        ? memberSchema.getMemberTraits().xmlName ?? memberName\n                        : memberTraits.xmlName ?? memberSchema.getName();\n                    if (union) {\n                        unionSerde.mark(xmlObjectKey);\n                    }\n                    if (value[xmlObjectKey] != null) {\n                        buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n                    }\n                }\n                if (union) {\n                    unionSerde.writeUnknown();\n                }\n                return buffer;\n            }\n            if (ns.isDocumentSchema()) {\n                return value;\n            }\n            throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n        }\n        if (ns.isListSchema()) {\n            return [];\n        }\n        if (ns.isMapSchema() || ns.isStructSchema()) {\n            return {};\n        }\n        return this.stringDeserializer.read(ns, value);\n    }\n    parseXml(xml) {\n        if (xml.length) {\n            let parsedObj;\n            try {\n                parsedObj = parseXML(xml);\n            }\n            catch (e) {\n                if (e && typeof e === \"object\") {\n                    Object.defineProperty(e, \"$responseBodyText\", {\n                        value: xml,\n                    });\n                }\n                throw e;\n            }\n            const textNodeName = \"#text\";\n            const key = Object.keys(parsedObj)[0];\n            const parsedObjToReturn = parsedObj[key];\n            if (parsedObjToReturn[textNodeName]) {\n                parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n                delete parsedObjToReturn[textNodeName];\n            }\n            return getValueFromTextNode(parsedObjToReturn);\n        }\n        return {};\n    }\n}\n","import { parseXML } from \"@aws-sdk/xml-builder\";\nimport { getValueFromTextNode } from \"@smithy/smithy-client\";\nimport { collectBodyString } from \"../common\";\nexport const parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n    if (encoded.length) {\n        let parsedObj;\n        try {\n            parsedObj = parseXML(encoded);\n        }\n        catch (e) {\n            if (e && typeof e === \"object\") {\n                Object.defineProperty(e, \"$responseBodyText\", {\n                    value: encoded,\n                });\n            }\n            throw e;\n        }\n        const textNodeName = \"#text\";\n        const key = Object.keys(parsedObj)[0];\n        const parsedObjToReturn = parsedObj[key];\n        if (parsedObjToReturn[textNodeName]) {\n            parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n            delete parsedObjToReturn[textNodeName];\n        }\n        return getValueFromTextNode(parsedObjToReturn);\n    }\n    return {};\n});\nexport const parseXmlErrorBody = async (errorBody, context) => {\n    const value = await parseXmlBody(errorBody, context);\n    if (value.Error) {\n        value.Error.message = value.Error.message ?? value.Error.Message;\n    }\n    return value;\n};\nexport const loadRestXmlErrorCode = (output, data) => {\n    if (data?.Error?.Code !== undefined) {\n        return data.Error.Code;\n    }\n    if (data?.Code !== undefined) {\n        return data.Code;\n    }\n    if (output.statusCode == 404) {\n        return \"NotFound\";\n    }\n};\n","import { XmlNode, XmlText } from \"@aws-sdk/xml-builder\";\nimport { determineTimestampFormat } from \"@smithy/core/protocols\";\nimport { NormalizedSchema } from \"@smithy/core/schema\";\nimport { generateIdempotencyToken, NumericValue } from \"@smithy/core/serde\";\nimport { dateToUtcString } from \"@smithy/smithy-client\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { SerdeContextConfig } from \"../ConfigurableSerdeContext\";\nexport class XmlShapeSerializer extends SerdeContextConfig {\n    settings;\n    stringBuffer;\n    byteBuffer;\n    buffer;\n    constructor(settings) {\n        super();\n        this.settings = settings;\n    }\n    write(schema, value) {\n        const ns = NormalizedSchema.of(schema);\n        if (ns.isStringSchema() && typeof value === \"string\") {\n            this.stringBuffer = value;\n        }\n        else if (ns.isBlobSchema()) {\n            this.byteBuffer =\n                \"byteLength\" in value\n                    ? value\n                    : (this.serdeContext?.base64Decoder ?? fromBase64)(value);\n        }\n        else {\n            this.buffer = this.writeStruct(ns, value, undefined);\n            const traits = ns.getMergedTraits();\n            if (traits.httpPayload && !traits.xmlName) {\n                this.buffer.withName(ns.getName());\n            }\n        }\n    }\n    flush() {\n        if (this.byteBuffer !== undefined) {\n            const bytes = this.byteBuffer;\n            delete this.byteBuffer;\n            return bytes;\n        }\n        if (this.stringBuffer !== undefined) {\n            const str = this.stringBuffer;\n            delete this.stringBuffer;\n            return str;\n        }\n        const buffer = this.buffer;\n        if (this.settings.xmlNamespace) {\n            if (!buffer?.attributes?.[\"xmlns\"]) {\n                buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n            }\n        }\n        delete this.buffer;\n        return buffer.toString();\n    }\n    writeStruct(ns, value, parentXmlns) {\n        const traits = ns.getMergedTraits();\n        const name = ns.isMemberSchema() && !traits.httpPayload\n            ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n            : traits.xmlName ?? ns.getName();\n        if (!name || !ns.isStructSchema()) {\n            throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n        }\n        const structXmlNode = XmlNode.of(name);\n        const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n        for (const [memberName, memberSchema] of ns.structIterator()) {\n            const val = value[memberName];\n            if (val != null || memberSchema.isIdempotencyToken()) {\n                if (memberSchema.getMergedTraits().xmlAttribute) {\n                    structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n                    continue;\n                }\n                if (memberSchema.isListSchema()) {\n                    this.writeList(memberSchema, val, structXmlNode, xmlns);\n                }\n                else if (memberSchema.isMapSchema()) {\n                    this.writeMap(memberSchema, val, structXmlNode, xmlns);\n                }\n                else if (memberSchema.isStructSchema()) {\n                    structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n                }\n                else {\n                    const memberNode = XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n                    this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n                    structXmlNode.addChildNode(memberNode);\n                }\n            }\n        }\n        const { $unknown } = value;\n        if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n            const [k, v] = $unknown;\n            const node = XmlNode.of(k);\n            if (typeof v !== \"string\") {\n                if (value instanceof XmlNode || value instanceof XmlText) {\n                    structXmlNode.addChildNode(value);\n                }\n                else {\n                    throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n                        `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n                }\n            }\n            this.writeSimpleInto(0, v, node, xmlns);\n            structXmlNode.addChildNode(node);\n        }\n        if (xmlns) {\n            structXmlNode.addAttribute(xmlnsAttr, xmlns);\n        }\n        return structXmlNode;\n    }\n    writeList(listMember, array, container, parentXmlns) {\n        if (!listMember.isMemberSchema()) {\n            throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n        }\n        const listTraits = listMember.getMergedTraits();\n        const listValueSchema = listMember.getValueSchema();\n        const listValueTraits = listValueSchema.getMergedTraits();\n        const sparse = !!listValueTraits.sparse;\n        const flat = !!listTraits.xmlFlattened;\n        const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n        const writeItem = (container, value) => {\n            if (listValueSchema.isListSchema()) {\n                this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n            }\n            else if (listValueSchema.isMapSchema()) {\n                this.writeMap(listValueSchema, value, container, xmlns);\n            }\n            else if (listValueSchema.isStructSchema()) {\n                const struct = this.writeStruct(listValueSchema, value, xmlns);\n                container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n            }\n            else {\n                const listItemNode = XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n                this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n                container.addChildNode(listItemNode);\n            }\n        };\n        if (flat) {\n            for (const value of array) {\n                if (sparse || value != null) {\n                    writeItem(container, value);\n                }\n            }\n        }\n        else {\n            const listNode = XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n            if (xmlns) {\n                listNode.addAttribute(xmlnsAttr, xmlns);\n            }\n            for (const value of array) {\n                if (sparse || value != null) {\n                    writeItem(listNode, value);\n                }\n            }\n            container.addChildNode(listNode);\n        }\n    }\n    writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n        if (!mapMember.isMemberSchema()) {\n            throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n        }\n        const mapTraits = mapMember.getMergedTraits();\n        const mapKeySchema = mapMember.getKeySchema();\n        const mapKeyTraits = mapKeySchema.getMergedTraits();\n        const keyTag = mapKeyTraits.xmlName ?? \"key\";\n        const mapValueSchema = mapMember.getValueSchema();\n        const mapValueTraits = mapValueSchema.getMergedTraits();\n        const valueTag = mapValueTraits.xmlName ?? \"value\";\n        const sparse = !!mapValueTraits.sparse;\n        const flat = !!mapTraits.xmlFlattened;\n        const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n        const addKeyValue = (entry, key, val) => {\n            const keyNode = XmlNode.of(keyTag, key);\n            const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n            if (keyXmlns) {\n                keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n            }\n            entry.addChildNode(keyNode);\n            let valueNode = XmlNode.of(valueTag);\n            if (mapValueSchema.isListSchema()) {\n                this.writeList(mapValueSchema, val, valueNode, xmlns);\n            }\n            else if (mapValueSchema.isMapSchema()) {\n                this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n            }\n            else if (mapValueSchema.isStructSchema()) {\n                valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n            }\n            else {\n                this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n            }\n            entry.addChildNode(valueNode);\n        };\n        if (flat) {\n            for (const [key, val] of Object.entries(map)) {\n                if (sparse || val != null) {\n                    const entry = XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n                    addKeyValue(entry, key, val);\n                    container.addChildNode(entry);\n                }\n            }\n        }\n        else {\n            let mapNode;\n            if (!containerIsMap) {\n                mapNode = XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n                if (xmlns) {\n                    mapNode.addAttribute(xmlnsAttr, xmlns);\n                }\n                container.addChildNode(mapNode);\n            }\n            for (const [key, val] of Object.entries(map)) {\n                if (sparse || val != null) {\n                    const entry = XmlNode.of(\"entry\");\n                    addKeyValue(entry, key, val);\n                    (containerIsMap ? container : mapNode).addChildNode(entry);\n                }\n            }\n        }\n    }\n    writeSimple(_schema, value) {\n        if (null === value) {\n            throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n        }\n        const ns = NormalizedSchema.of(_schema);\n        let nodeContents = null;\n        if (value && typeof value === \"object\") {\n            if (ns.isBlobSchema()) {\n                nodeContents = (this.serdeContext?.base64Encoder ?? toBase64)(value);\n            }\n            else if (ns.isTimestampSchema() && value instanceof Date) {\n                const format = determineTimestampFormat(ns, this.settings);\n                switch (format) {\n                    case 5:\n                        nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n                        break;\n                    case 6:\n                        nodeContents = dateToUtcString(value);\n                        break;\n                    case 7:\n                        nodeContents = String(value.getTime() / 1000);\n                        break;\n                    default:\n                        console.warn(\"Missing timestamp format, using http date\", value);\n                        nodeContents = dateToUtcString(value);\n                        break;\n                }\n            }\n            else if (ns.isBigDecimalSchema() && value) {\n                if (value instanceof NumericValue) {\n                    return value.string;\n                }\n                return String(value);\n            }\n            else if (ns.isMapSchema() || ns.isListSchema()) {\n                throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n            }\n            else {\n                throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n            }\n        }\n        if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n            nodeContents = String(value);\n        }\n        if (ns.isStringSchema()) {\n            if (value === undefined && ns.isIdempotencyToken()) {\n                nodeContents = generateIdempotencyToken();\n            }\n            else {\n                nodeContents = String(value);\n            }\n        }\n        if (nodeContents === null) {\n            throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n        }\n        return nodeContents;\n    }\n    writeSimpleInto(_schema, value, into, parentXmlns) {\n        const nodeContents = this.writeSimple(_schema, value);\n        const ns = NormalizedSchema.of(_schema);\n        const content = new XmlText(nodeContents);\n        const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n        if (xmlns) {\n            into.addAttribute(xmlnsAttr, xmlns);\n        }\n        into.addChildNode(content);\n    }\n    getXmlnsAttribute(ns, parentXmlns) {\n        const traits = ns.getMergedTraits();\n        const [prefix, xmlns] = traits.xmlNamespace ?? [];\n        if (xmlns && xmlns !== parentXmlns) {\n            return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n        }\n        return [void 0, void 0];\n    }\n}\n","import { SerdeContextConfig } from \"../ConfigurableSerdeContext\";\nimport { XmlShapeDeserializer } from \"./XmlShapeDeserializer\";\nimport { XmlShapeSerializer } from \"./XmlShapeSerializer\";\nexport class XmlCodec extends SerdeContextConfig {\n    settings;\n    constructor(settings) {\n        super();\n        this.settings = settings;\n    }\n    createSerializer() {\n        const serializer = new XmlShapeSerializer(this.settings);\n        serializer.setSerdeContext(this.serdeContext);\n        return serializer;\n    }\n    createDeserializer() {\n        const deserializer = new XmlShapeDeserializer(this.settings);\n        deserializer.setSerdeContext(this.serdeContext);\n        return deserializer;\n    }\n}\n","import { HttpBindingProtocol, HttpInterceptingShapeDeserializer, HttpInterceptingShapeSerializer, } from \"@smithy/core/protocols\";\nimport { NormalizedSchema } from \"@smithy/core/schema\";\nimport { ProtocolLib } from \"../ProtocolLib\";\nimport { loadRestXmlErrorCode } from \"./parseXmlBody\";\nimport { XmlCodec } from \"./XmlCodec\";\nexport class AwsRestXmlProtocol extends HttpBindingProtocol {\n    codec;\n    serializer;\n    deserializer;\n    mixin = new ProtocolLib();\n    constructor(options) {\n        super(options);\n        const settings = {\n            timestampFormat: {\n                useTrait: true,\n                default: 5,\n            },\n            httpBindings: true,\n            xmlNamespace: options.xmlNamespace,\n            serviceNamespace: options.defaultNamespace,\n        };\n        this.codec = new XmlCodec(settings);\n        this.serializer = new HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n        this.deserializer = new HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n        this.compositeErrorRegistry;\n    }\n    getPayloadCodec() {\n        return this.codec;\n    }\n    getShapeId() {\n        return \"aws.protocols#restXml\";\n    }\n    async serializeRequest(operationSchema, input, context) {\n        const request = await super.serializeRequest(operationSchema, input, context);\n        const inputSchema = NormalizedSchema.of(operationSchema.input);\n        if (!request.headers[\"content-type\"]) {\n            const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n            if (contentType) {\n                request.headers[\"content-type\"] = contentType;\n            }\n        }\n        if (typeof request.body === \"string\" &&\n            request.headers[\"content-type\"] === this.getDefaultContentType() &&\n            !request.body.startsWith(\"<?xml \") &&\n            !this.hasUnstructuredPayloadBinding(inputSchema)) {\n            request.body = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' + request.body;\n        }\n        return request;\n    }\n    async deserializeResponse(operationSchema, context, response) {\n        return super.deserializeResponse(operationSchema, context, response);\n    }\n    async handleError(operationSchema, context, response, dataObject, metadata) {\n        const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n        this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n        if (dataObject.Error && typeof dataObject.Error === \"object\") {\n            for (const key of Object.keys(dataObject.Error)) {\n                dataObject[key] = dataObject.Error[key];\n                if (key.toLowerCase() === \"message\") {\n                    dataObject.message = dataObject.Error[key];\n                }\n            }\n        }\n        if (dataObject.RequestId && !metadata.requestId) {\n            metadata.requestId = dataObject.RequestId;\n        }\n        const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n        const ns = NormalizedSchema.of(errorSchema);\n        const message = dataObject.Error?.message ??\n            dataObject.Error?.Message ??\n            dataObject.message ??\n            dataObject.Message ??\n            \"UnknownError\";\n        const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n        const exception = new ErrorCtor(message);\n        await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n        const output = {};\n        for (const [name, member] of ns.structIterator()) {\n            const target = member.getMergedTraits().xmlName ?? name;\n            const value = dataObject.Error?.[target] ?? dataObject[target];\n            output[name] = this.codec.createDeserializer().readSchema(member, value);\n        }\n        throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n            $fault: ns.getMergedTraits().error,\n            message,\n        }, output), dataObject);\n    }\n    getDefaultContentType() {\n        return \"application/xml\";\n    }\n    hasUnstructuredPayloadBinding(ns) {\n        for (const [, member] of ns.structIterator()) {\n            if (member.getMergedTraits().httpPayload) {\n                return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n            }\n        }\n        return false;\n    }\n}\n","import { AwsRestXmlProtocol } from \"@aws-sdk/core/protocols\";\nimport { NormalizedSchema } from \"@smithy/core/schema\";\nexport class S3RestXmlProtocol extends AwsRestXmlProtocol {\n    async serializeRequest(operationSchema, input, context) {\n        const request = await super.serializeRequest(operationSchema, input, context);\n        const ns = NormalizedSchema.of(operationSchema.input);\n        const staticStructureSchema = ns.getSchema();\n        let bucketMemberIndex = 0;\n        const requiredMemberCount = staticStructureSchema[6] ?? 0;\n        if (input && typeof input === \"object\") {\n            for (const [memberName, memberNs] of ns.structIterator()) {\n                if (++bucketMemberIndex > requiredMemberCount) {\n                    break;\n                }\n                if (memberName === \"Bucket\") {\n                    if (!input.Bucket && memberNs.getMergedTraits().httpLabel) {\n                        throw new Error(`No value provided for input HTTP label: Bucket.`);\n                    }\n                    break;\n                }\n            }\n        }\n        return request;\n    }\n}\n","import { normalizeProvider } from \"@smithy/core\";\nexport const DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n    if (appId === undefined) {\n        return true;\n    }\n    return typeof appId === \"string\" && appId.length <= 50;\n}\nexport function resolveUserAgentConfig(input) {\n    const normalizedAppIdProvider = normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n    const { customUserAgent } = input;\n    return Object.assign(input, {\n        customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n        userAgentAppId: async () => {\n            const appId = await normalizedAppIdProvider();\n            if (!isValidUserAgentAppId(appId)) {\n                const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n                if (typeof appId !== \"string\") {\n                    logger?.warn(\"userAgentAppId must be a string or undefined.\");\n                }\n                else if (appId.length > 50) {\n                    logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n                }\n            }\n            return appId;\n        },\n    });\n}\n","export class EndpointCache {\n    capacity;\n    data = new Map();\n    parameters = [];\n    constructor({ size, params }) {\n        this.capacity = size ?? 50;\n        if (params) {\n            this.parameters = params;\n        }\n    }\n    get(endpointParams, resolver) {\n        const key = this.hash(endpointParams);\n        if (key === false) {\n            return resolver();\n        }\n        if (!this.data.has(key)) {\n            if (this.data.size > this.capacity + 10) {\n                const keys = this.data.keys();\n                let i = 0;\n                while (true) {\n                    const { value, done } = keys.next();\n                    this.data.delete(value);\n                    if (done || ++i > 10) {\n                        break;\n                    }\n                }\n            }\n            this.data.set(key, resolver());\n        }\n        return this.data.get(key);\n    }\n    size() {\n        return this.data.size;\n    }\n    hash(endpointParams) {\n        let buffer = \"\";\n        const { parameters } = this;\n        if (parameters.length === 0) {\n            return false;\n        }\n        for (const param of parameters) {\n            const val = String(endpointParams[param] ?? \"\");\n            if (val.includes(\"|;\")) {\n                return false;\n            }\n            buffer += val + \"|;\";\n        }\n        return buffer;\n    }\n}\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n    if (!allowSubDomains) {\n        return VALID_HOST_LABEL_REGEX.test(value);\n    }\n    const labels = value.split(\".\");\n    for (const label of labels) {\n        if (!isValidHostLabel(label)) {\n            return false;\n        }\n    }\n    return true;\n};\n","export const customEndpointFunctions = {};\n","export const debugId = \"endpoints\";\n","export function toDebugString(input) {\n    if (typeof input !== \"object\" || input == null) {\n        return input;\n    }\n    if (\"ref\" in input) {\n        return `$${toDebugString(input.ref)}`;\n    }\n    if (\"fn\" in input) {\n        return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n    }\n    return JSON.stringify(input, null, 2);\n}\n","export class EndpointError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"EndpointError\";\n    }\n}\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n    const parts = path.split(\".\");\n    const pathList = [];\n    for (const part of parts) {\n        const squareBracketIndex = part.indexOf(\"[\");\n        if (squareBracketIndex !== -1) {\n            if (part.indexOf(\"]\") !== part.length - 1) {\n                throw new EndpointError(`Path: '${path}' does not end with ']'`);\n            }\n            const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n            if (Number.isNaN(parseInt(arrayIndex))) {\n                throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n            }\n            if (squareBracketIndex !== 0) {\n                pathList.push(part.slice(0, squareBracketIndex));\n            }\n            pathList.push(arrayIndex);\n        }\n        else {\n            pathList.push(part);\n        }\n    }\n    return pathList;\n};\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n    if (typeof acc !== \"object\") {\n        throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n    }\n    else if (Array.isArray(acc)) {\n        return acc[parseInt(index)];\n    }\n    return acc[index];\n}, value);\n","export const isSet = (value) => value != null;\n","export const not = (value) => !value;\n","import { EndpointURLScheme } from \"@smithy/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n    [EndpointURLScheme.HTTP]: 80,\n    [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n    const whatwgURL = (() => {\n        try {\n            if (value instanceof URL) {\n                return value;\n            }\n            if (typeof value === \"object\" && \"hostname\" in value) {\n                const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n                const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n                url.search = Object.entries(query)\n                    .map(([k, v]) => `${k}=${v}`)\n                    .join(\"&\");\n                return url;\n            }\n            return new URL(value);\n        }\n        catch (error) {\n            return null;\n        }\n    })();\n    if (!whatwgURL) {\n        console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n        return null;\n    }\n    const urlString = whatwgURL.href;\n    const { host, hostname, pathname, protocol, search } = whatwgURL;\n    if (search) {\n        return null;\n    }\n    const scheme = protocol.slice(0, -1);\n    if (!Object.values(EndpointURLScheme).includes(scheme)) {\n        return null;\n    }\n    const isIp = isIpAddress(hostname);\n    const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n        (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n    const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n    return {\n        scheme,\n        authority,\n        path: pathname,\n        normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n        isIp,\n    };\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n    if (start >= stop || input.length < stop || /[^\\u0000-\\u007f]/.test(input)) {\n        return null;\n    }\n    if (!reverse) {\n        return input.substring(start, stop);\n    }\n    return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { EndpointError } from \"../types\";\nimport { customEndpointFunctions } from \"./customEndpointFunctions\";\nimport { endpointFunctions } from \"./endpointFunctions\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n    if (typeof obj === \"string\") {\n        return evaluateTemplate(obj, options);\n    }\n    else if (obj[\"fn\"]) {\n        return group.callFunction(obj, options);\n    }\n    else if (obj[\"ref\"]) {\n        return getReferenceValue(obj, options);\n    }\n    throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\nexport const callFunction = ({ fn, argv }, options) => {\n    const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : group.evaluateExpression(arg, \"arg\", options));\n    const fnSegments = fn.split(\".\");\n    if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {\n        return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);\n    }\n    return endpointFunctions[fn](...evaluatedArgs);\n};\nexport const group = {\n    evaluateExpression,\n    callFunction,\n};\n","import { booleanEquals, getAttr, isSet, isValidHostLabel, not, parseURL, stringEquals, substring, uriEncode, } from \"../lib\";\nexport const endpointFunctions = {\n    booleanEquals,\n    getAttr,\n    isSet,\n    isValidHostLabel,\n    not,\n    parseURL,\n    stringEquals,\n    substring,\n    uriEncode,\n};\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n    const evaluatedTemplateArr = [];\n    const templateContext = {\n        ...options.endpointParams,\n        ...options.referenceRecord,\n    };\n    let currentIndex = 0;\n    while (currentIndex < template.length) {\n        const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n        if (openingBraceIndex === -1) {\n            evaluatedTemplateArr.push(template.slice(currentIndex));\n            break;\n        }\n        evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n        const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n        if (closingBraceIndex === -1) {\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n            break;\n        }\n        if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n            currentIndex = closingBraceIndex + 2;\n        }\n        const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n        if (parameterName.includes(\"#\")) {\n            const [refName, attrName] = parameterName.split(\"#\");\n            evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n        }\n        else {\n            evaluatedTemplateArr.push(templateContext[parameterName]);\n        }\n        currentIndex = closingBraceIndex + 1;\n    }\n    return evaluatedTemplateArr.join(\"\");\n};\n","export const getReferenceValue = ({ ref }, options) => {\n    const referenceRecord = {\n        ...options.endpointParams,\n        ...options.referenceRecord,\n    };\n    return referenceRecord[ref];\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n    if (assign && assign in options.referenceRecord) {\n        throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n    }\n    const value = callFunction(fnArgs, options);\n    options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n    return {\n        result: value === \"\" ? true : !!value,\n        ...(assign != null && { toAssign: { name: assign, value } }),\n    };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n    const conditionsReferenceRecord = {};\n    for (const condition of conditions) {\n        const { result, toAssign } = evaluateCondition(condition, {\n            ...options,\n            referenceRecord: {\n                ...options.referenceRecord,\n                ...conditionsReferenceRecord,\n            },\n        });\n        if (!result) {\n            return { result };\n        }\n        if (toAssign) {\n            conditionsReferenceRecord[toAssign.name] = toAssign.value;\n            options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n        }\n    }\n    return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n    ...acc,\n    [headerKey]: headerVal.map((headerValEntry) => {\n        const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n        if (typeof processedExpr !== \"string\") {\n            throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n        }\n        return processedExpr;\n    }),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n    ...acc,\n    [propertyKey]: group.getEndpointProperty(propertyVal, options),\n}), {});\nexport const getEndpointProperty = (property, options) => {\n    if (Array.isArray(property)) {\n        return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n    }\n    switch (typeof property) {\n        case \"string\":\n            return evaluateTemplate(property, options);\n        case \"object\":\n            if (property === null) {\n                throw new EndpointError(`Unexpected endpoint property: ${property}`);\n            }\n            return group.getEndpointProperties(property, options);\n        case \"boolean\":\n            return property;\n        default:\n            throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n    }\n};\nexport const group = {\n    getEndpointProperty,\n    getEndpointProperties,\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n    const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n    if (typeof expression === \"string\") {\n        try {\n            return new URL(expression);\n        }\n        catch (error) {\n            console.error(`Failed to construct URL with ${expression}`, error);\n            throw error;\n        }\n    }\n    throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n    const { conditions, endpoint } = endpointRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    const endpointRuleOptions = {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    };\n    const { url, properties, headers } = endpoint;\n    options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n    return {\n        ...(headers != undefined && {\n            headers: getEndpointHeaders(headers, endpointRuleOptions),\n        }),\n        ...(properties != undefined && {\n            properties: getEndpointProperties(properties, endpointRuleOptions),\n        }),\n        url: getEndpointUrl(url, endpointRuleOptions),\n    };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n    const { conditions, error } = errorRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    throw new EndpointError(evaluateExpression(error, \"Error\", {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    }));\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nexport const evaluateRules = (rules, options) => {\n    for (const rule of rules) {\n        if (rule.type === \"endpoint\") {\n            const endpointOrUndefined = evaluateEndpointRule(rule, options);\n            if (endpointOrUndefined) {\n                return endpointOrUndefined;\n            }\n        }\n        else if (rule.type === \"error\") {\n            evaluateErrorRule(rule, options);\n        }\n        else if (rule.type === \"tree\") {\n            const endpointOrUndefined = group.evaluateTreeRule(rule, options);\n            if (endpointOrUndefined) {\n                return endpointOrUndefined;\n            }\n        }\n        else {\n            throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n        }\n    }\n    throw new EndpointError(`Rules evaluation failed`);\n};\nexport const evaluateTreeRule = (treeRule, options) => {\n    const { conditions, rules } = treeRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    return group.evaluateRules(rules, {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    });\n};\nexport const group = {\n    evaluateRules,\n    evaluateTreeRule,\n};\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n    const { endpointParams, logger } = options;\n    const { parameters, rules } = ruleSetObject;\n    options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n    const paramsWithDefault = Object.entries(parameters)\n        .filter(([, v]) => v.default != null)\n        .map(([k, v]) => [k, v.default]);\n    if (paramsWithDefault.length > 0) {\n        for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n            endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n        }\n    }\n    const requiredParams = Object.entries(parameters)\n        .filter(([, v]) => v.required)\n        .map(([k]) => k);\n    for (const requiredParam of requiredParams) {\n        if (endpointParams[requiredParam] == null) {\n            throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n        }\n    }\n    const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n    options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n    return endpoint;\n};\n","import { isValidHostLabel } from \"@smithy/util-endpoints\";\nimport { isIpAddress } from \"../isIpAddress\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n    if (allowSubDomains) {\n        for (const label of value.split(\".\")) {\n            if (!isVirtualHostableS3Bucket(label)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    if (!isValidHostLabel(value)) {\n        return false;\n    }\n    if (value.length < 3 || value.length > 63) {\n        return false;\n    }\n    if (value !== value.toLowerCase()) {\n        return false;\n    }\n    if (isIpAddress(value)) {\n        return false;\n    }\n    return true;\n};\n","const ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nexport const parseArn = (value) => {\n    const segments = value.split(ARN_DELIMITER);\n    if (segments.length < 6)\n        return null;\n    const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n    if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n        return null;\n    const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n    return {\n        partition,\n        service,\n        region,\n        accountId,\n        resourceId,\n    };\n};\n","{\n    \"partitions\": [{\n            \"id\": \"aws\",\n            \"outputs\": {\n                \"dnsSuffix\": \"amazonaws.com\",\n                \"dualStackDnsSuffix\": \"api.aws\",\n                \"implicitGlobalRegion\": \"us-east-1\",\n                \"name\": \"aws\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"af-south-1\": {\n                    \"description\": \"Africa (Cape Town)\"\n                },\n                \"ap-east-1\": {\n                    \"description\": \"Asia Pacific (Hong Kong)\"\n                },\n                \"ap-east-2\": {\n                    \"description\": \"Asia Pacific (Taipei)\"\n                },\n                \"ap-northeast-1\": {\n                    \"description\": \"Asia Pacific (Tokyo)\"\n                },\n                \"ap-northeast-2\": {\n                    \"description\": \"Asia Pacific (Seoul)\"\n                },\n                \"ap-northeast-3\": {\n                    \"description\": \"Asia Pacific (Osaka)\"\n                },\n                \"ap-south-1\": {\n                    \"description\": \"Asia Pacific (Mumbai)\"\n                },\n                \"ap-south-2\": {\n                    \"description\": \"Asia Pacific (Hyderabad)\"\n                },\n                \"ap-southeast-1\": {\n                    \"description\": \"Asia Pacific (Singapore)\"\n                },\n                \"ap-southeast-2\": {\n                    \"description\": \"Asia Pacific (Sydney)\"\n                },\n                \"ap-southeast-3\": {\n                    \"description\": \"Asia Pacific (Jakarta)\"\n                },\n                \"ap-southeast-4\": {\n                    \"description\": \"Asia Pacific (Melbourne)\"\n                },\n                \"ap-southeast-5\": {\n                    \"description\": \"Asia Pacific (Malaysia)\"\n                },\n                \"ap-southeast-6\": {\n                    \"description\": \"Asia Pacific (New Zealand)\"\n                },\n                \"ap-southeast-7\": {\n                    \"description\": \"Asia Pacific (Thailand)\"\n                },\n                \"aws-global\": {\n                    \"description\": \"aws global region\"\n                },\n                \"ca-central-1\": {\n                    \"description\": \"Canada (Central)\"\n                },\n                \"ca-west-1\": {\n                    \"description\": \"Canada West (Calgary)\"\n                },\n                \"eu-central-1\": {\n                    \"description\": \"Europe (Frankfurt)\"\n                },\n                \"eu-central-2\": {\n                    \"description\": \"Europe (Zurich)\"\n                },\n                \"eu-north-1\": {\n                    \"description\": \"Europe (Stockholm)\"\n                },\n                \"eu-south-1\": {\n                    \"description\": \"Europe (Milan)\"\n                },\n                \"eu-south-2\": {\n                    \"description\": \"Europe (Spain)\"\n                },\n                \"eu-west-1\": {\n                    \"description\": \"Europe (Ireland)\"\n                },\n                \"eu-west-2\": {\n                    \"description\": \"Europe (London)\"\n                },\n                \"eu-west-3\": {\n                    \"description\": \"Europe (Paris)\"\n                },\n                \"il-central-1\": {\n                    \"description\": \"Israel (Tel Aviv)\"\n                },\n                \"me-central-1\": {\n                    \"description\": \"Middle East (UAE)\"\n                },\n                \"me-south-1\": {\n                    \"description\": \"Middle East (Bahrain)\"\n                },\n                \"mx-central-1\": {\n                    \"description\": \"Mexico (Central)\"\n                },\n                \"sa-east-1\": {\n                    \"description\": \"South America (Sao Paulo)\"\n                },\n                \"us-east-1\": {\n                    \"description\": \"US East (N. Virginia)\"\n                },\n                \"us-east-2\": {\n                    \"description\": \"US East (Ohio)\"\n                },\n                \"us-west-1\": {\n                    \"description\": \"US West (N. California)\"\n                },\n                \"us-west-2\": {\n                    \"description\": \"US West (Oregon)\"\n                }\n            }\n        }, {\n            \"id\": \"aws-cn\",\n            \"outputs\": {\n                \"dnsSuffix\": \"amazonaws.com.cn\",\n                \"dualStackDnsSuffix\": \"api.amazonwebservices.com.cn\",\n                \"implicitGlobalRegion\": \"cn-northwest-1\",\n                \"name\": \"aws-cn\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-cn-global\": {\n                    \"description\": \"aws-cn global region\"\n                },\n                \"cn-north-1\": {\n                    \"description\": \"China (Beijing)\"\n                },\n                \"cn-northwest-1\": {\n                    \"description\": \"China (Ningxia)\"\n                }\n            }\n        }, {\n            \"id\": \"aws-eusc\",\n            \"outputs\": {\n                \"dnsSuffix\": \"amazonaws.eu\",\n                \"dualStackDnsSuffix\": \"api.amazonwebservices.eu\",\n                \"implicitGlobalRegion\": \"eusc-de-east-1\",\n                \"name\": \"aws-eusc\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"eusc-de-east-1\": {\n                    \"description\": \"AWS European Sovereign Cloud (Germany)\"\n                }\n            }\n        }, {\n            \"id\": \"aws-iso\",\n            \"outputs\": {\n                \"dnsSuffix\": \"c2s.ic.gov\",\n                \"dualStackDnsSuffix\": \"api.aws.ic.gov\",\n                \"implicitGlobalRegion\": \"us-iso-east-1\",\n                \"name\": \"aws-iso\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-iso-global\": {\n                    \"description\": \"aws-iso global region\"\n                },\n                \"us-iso-east-1\": {\n                    \"description\": \"US ISO East\"\n                },\n                \"us-iso-west-1\": {\n                    \"description\": \"US ISO WEST\"\n                }\n            }\n        }, {\n            \"id\": \"aws-iso-b\",\n            \"outputs\": {\n                \"dnsSuffix\": \"sc2s.sgov.gov\",\n                \"dualStackDnsSuffix\": \"api.aws.scloud\",\n                \"implicitGlobalRegion\": \"us-isob-east-1\",\n                \"name\": \"aws-iso-b\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-iso-b-global\": {\n                    \"description\": \"aws-iso-b global region\"\n                },\n                \"us-isob-east-1\": {\n                    \"description\": \"US ISOB East (Ohio)\"\n                },\n                \"us-isob-west-1\": {\n                    \"description\": \"US ISOB West\"\n                }\n            }\n        }, {\n            \"id\": \"aws-iso-e\",\n            \"outputs\": {\n                \"dnsSuffix\": \"cloud.adc-e.uk\",\n                \"dualStackDnsSuffix\": \"api.cloud-aws.adc-e.uk\",\n                \"implicitGlobalRegion\": \"eu-isoe-west-1\",\n                \"name\": \"aws-iso-e\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-iso-e-global\": {\n                    \"description\": \"aws-iso-e global region\"\n                },\n                \"eu-isoe-west-1\": {\n                    \"description\": \"EU ISOE West\"\n                }\n            }\n        }, {\n            \"id\": \"aws-iso-f\",\n            \"outputs\": {\n                \"dnsSuffix\": \"csp.hci.ic.gov\",\n                \"dualStackDnsSuffix\": \"api.aws.hci.ic.gov\",\n                \"implicitGlobalRegion\": \"us-isof-south-1\",\n                \"name\": \"aws-iso-f\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-iso-f-global\": {\n                    \"description\": \"aws-iso-f global region\"\n                },\n                \"us-isof-east-1\": {\n                    \"description\": \"US ISOF EAST\"\n                },\n                \"us-isof-south-1\": {\n                    \"description\": \"US ISOF SOUTH\"\n                }\n            }\n        }, {\n            \"id\": \"aws-us-gov\",\n            \"outputs\": {\n                \"dnsSuffix\": \"amazonaws.com\",\n                \"dualStackDnsSuffix\": \"api.aws\",\n                \"implicitGlobalRegion\": \"us-gov-west-1\",\n                \"name\": \"aws-us-gov\",\n                \"supportsDualStack\": true,\n                \"supportsFIPS\": true\n            },\n            \"regionRegex\": \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n            \"regions\": {\n                \"aws-us-gov-global\": {\n                    \"description\": \"aws-us-gov global region\"\n                },\n                \"us-gov-east-1\": {\n                    \"description\": \"AWS GovCloud (US-East)\"\n                },\n                \"us-gov-west-1\": {\n                    \"description\": \"AWS GovCloud (US-West)\"\n                }\n            }\n        }],\n    \"version\": \"1.1\"\n}\n","import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n    const { partitions } = selectedPartitionsInfo;\n    for (const partition of partitions) {\n        const { regions, outputs } = partition;\n        for (const [region, regionData] of Object.entries(regions)) {\n            if (region === value) {\n                return {\n                    ...outputs,\n                    ...regionData,\n                };\n            }\n        }\n    }\n    for (const partition of partitions) {\n        const { regionRegex, outputs } = partition;\n        if (new RegExp(regionRegex).test(value)) {\n            return {\n                ...outputs,\n            };\n        }\n    }\n    const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n    if (!DEFAULT_PARTITION) {\n        throw new Error(\"Provided region was not found in the partition array or regex,\" +\n            \" and default partition with id 'aws' doesn't exist.\");\n    }\n    return {\n        ...DEFAULT_PARTITION.outputs,\n    };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n    selectedPartitionsInfo = partitionsInfo;\n    selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n    setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","import { customEndpointFunctions } from \"@smithy/util-endpoints\";\nimport { isVirtualHostableS3Bucket } from \"./lib/aws/isVirtualHostableS3Bucket\";\nimport { parseArn } from \"./lib/aws/parseArn\";\nimport { partition } from \"./lib/aws/partition\";\nexport const awsEndpointFunctions = {\n    isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n    parseArn: parseArn,\n    partition: partition,\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n","export const CLOCK_SKEW_ERROR_CODES = [\n    \"AuthFailure\",\n    \"InvalidSignatureException\",\n    \"RequestExpired\",\n    \"RequestInTheFuture\",\n    \"RequestTimeTooSkewed\",\n    \"SignatureDoesNotMatch\",\n];\nexport const THROTTLING_ERROR_CODES = [\n    \"BandwidthLimitExceeded\",\n    \"EC2ThrottledException\",\n    \"LimitExceededException\",\n    \"PriorRequestNotComplete\",\n    \"ProvisionedThroughputExceededException\",\n    \"RequestLimitExceeded\",\n    \"RequestThrottled\",\n    \"RequestThrottledException\",\n    \"SlowDown\",\n    \"ThrottledException\",\n    \"Throttling\",\n    \"ThrottlingException\",\n    \"TooManyRequestsException\",\n    \"TransactionInProgressException\",\n];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\nexport const NODEJS_NETWORK_ERROR_CODES = [\"EHOSTUNREACH\", \"ENETUNREACH\", \"ENOTFOUND\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_NETWORK_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error?.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nexport const isBrowserNetworkError = (error) => {\n    const errorMessages = new Set([\n        \"Failed to fetch\",\n        \"NetworkError when attempting to fetch resource\",\n        \"The Internet connection appears to be offline\",\n        \"Load failed\",\n        \"Network request failed\",\n    ]);\n    const isValid = error && error instanceof TypeError;\n    if (!isValid) {\n        return false;\n    }\n    return errorMessages.has(error.message);\n};\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n    THROTTLING_ERROR_CODES.includes(error.name) ||\n    error.$retryable?.throttling == true;\nexport const isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||\n    isClockSkewCorrectedError(error) ||\n    TRANSIENT_ERROR_CODES.includes(error.name) ||\n    NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n    NODEJS_NETWORK_ERROR_CODES.includes(error?.code || \"\") ||\n    TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n    isBrowserNetworkError(error) ||\n    (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\nexport const isServerError = (error) => {\n    if (error.$metadata?.httpStatusCode !== undefined) {\n        const statusCode = error.$metadata.httpStatusCode;\n        if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n            return true;\n        }\n        return false;\n    }\n    return false;\n};\n","import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n    static setTimeoutFn = setTimeout;\n    beta;\n    minCapacity;\n    minFillRate;\n    scaleConstant;\n    smooth;\n    enabled = false;\n    availableTokens = 0;\n    lastMaxRate = 0;\n    measuredTxRate = 0;\n    requestCount = 0;\n    fillRate;\n    lastThrottleTime;\n    lastTimestamp = 0;\n    lastTxRateBucket;\n    maxCapacity;\n    timeWindow = 0;\n    constructor(options) {\n        this.beta = options?.beta ?? 0.7;\n        this.minCapacity = options?.minCapacity ?? 1;\n        this.minFillRate = options?.minFillRate ?? 0.5;\n        this.scaleConstant = options?.scaleConstant ?? 0.4;\n        this.smooth = options?.smooth ?? 0.8;\n        const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n        this.lastThrottleTime = currentTimeInSeconds;\n        this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n        this.fillRate = this.minFillRate;\n        this.maxCapacity = this.minCapacity;\n    }\n    getCurrentTimeInSeconds() {\n        return Date.now() / 1000;\n    }\n    async getSendToken() {\n        return this.acquireTokenBucket(1);\n    }\n    async acquireTokenBucket(amount) {\n        if (!this.enabled) {\n            return;\n        }\n        this.refillTokenBucket();\n        if (amount > this.availableTokens) {\n            const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;\n            await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));\n        }\n        this.availableTokens = this.availableTokens - amount;\n    }\n    refillTokenBucket() {\n        const timestamp = this.getCurrentTimeInSeconds();\n        if (!this.lastTimestamp) {\n            this.lastTimestamp = timestamp;\n            return;\n        }\n        const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n        this.availableTokens = Math.min(this.maxCapacity, this.availableTokens + fillAmount);\n        this.lastTimestamp = timestamp;\n    }\n    updateClientSendingRate(response) {\n        let calculatedRate;\n        this.updateMeasuredRate();\n        const retryErrorInfo = response;\n        const isThrottling = retryErrorInfo?.errorType === \"THROTTLING\" || isThrottlingError(retryErrorInfo?.error ?? response);\n        if (isThrottling) {\n            const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n            this.lastMaxRate = rateToUse;\n            this.calculateTimeWindow();\n            this.lastThrottleTime = this.getCurrentTimeInSeconds();\n            calculatedRate = this.cubicThrottle(rateToUse);\n            this.enableTokenBucket();\n        }\n        else {\n            this.calculateTimeWindow();\n            calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n        }\n        const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n        this.updateTokenBucketRate(newRate);\n    }\n    calculateTimeWindow() {\n        this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n    }\n    cubicThrottle(rateToUse) {\n        return this.getPrecise(rateToUse * this.beta);\n    }\n    cubicSuccess(timestamp) {\n        return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n    }\n    enableTokenBucket() {\n        this.enabled = true;\n    }\n    updateTokenBucketRate(newRate) {\n        this.refillTokenBucket();\n        this.fillRate = Math.max(newRate, this.minFillRate);\n        this.maxCapacity = Math.max(newRate, this.minCapacity);\n        this.availableTokens = Math.min(this.availableTokens, this.maxCapacity);\n    }\n    updateMeasuredRate() {\n        const t = this.getCurrentTimeInSeconds();\n        const timeBucket = Math.floor(t * 2) / 2;\n        this.requestCount++;\n        if (timeBucket > this.lastTxRateBucket) {\n            const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n            this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n            this.requestCount = 0;\n            this.lastTxRateBucket = timeBucket;\n        }\n    }\n    getPrecise(num) {\n        return parseFloat(num.toFixed(8));\n    }\n}\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n    let delayBase = DEFAULT_RETRY_DELAY_BASE;\n    const computeNextBackoffDelay = (attempts) => {\n        return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n    };\n    const setDelayBase = (delay) => {\n        delayBase = delay;\n    };\n    return {\n        computeNextBackoffDelay,\n        setDelayBase,\n    };\n};\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n    const getRetryCount = () => retryCount;\n    const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n    const getRetryCost = () => retryCost;\n    return {\n        getRetryCount,\n        getRetryDelay,\n        getRetryCost,\n    };\n};\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n    maxAttempts;\n    mode = RETRY_MODES.STANDARD;\n    capacity = INITIAL_RETRY_TOKENS;\n    retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n    maxAttemptsProvider;\n    constructor(maxAttempts) {\n        this.maxAttempts = maxAttempts;\n        this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n    }\n    async acquireInitialRetryToken(retryTokenScope) {\n        return createDefaultRetryToken({\n            retryDelay: DEFAULT_RETRY_DELAY_BASE,\n            retryCount: 0,\n        });\n    }\n    async refreshRetryTokenForRetry(token, errorInfo) {\n        const maxAttempts = await this.getMaxAttempts();\n        if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n            const errorType = errorInfo.errorType;\n            this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n            const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n            const retryDelay = errorInfo.retryAfterHint\n                ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n                : delayFromErrorType;\n            const capacityCost = this.getCapacityCost(errorType);\n            this.capacity -= capacityCost;\n            return createDefaultRetryToken({\n                retryDelay,\n                retryCount: token.getRetryCount() + 1,\n                retryCost: capacityCost,\n            });\n        }\n        throw new Error(\"No retry token available\");\n    }\n    recordSuccess(token) {\n        this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n    }\n    getCapacity() {\n        return this.capacity;\n    }\n    async getMaxAttempts() {\n        try {\n            return await this.maxAttemptsProvider();\n        }\n        catch (error) {\n            console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n            return DEFAULT_MAX_ATTEMPTS;\n        }\n    }\n    shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n        const attempts = tokenToRenew.getRetryCount() + 1;\n        return (attempts < maxAttempts &&\n            this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n            this.isRetryableError(errorInfo.errorType));\n    }\n    getCapacityCost(errorType) {\n        return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n    }\n    isRetryableError(errorType) {\n        return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n    }\n}\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n    maxAttemptsProvider;\n    rateLimiter;\n    standardRetryStrategy;\n    mode = RETRY_MODES.ADAPTIVE;\n    constructor(maxAttemptsProvider, options) {\n        this.maxAttemptsProvider = maxAttemptsProvider;\n        const { rateLimiter } = options ?? {};\n        this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n        this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n    }\n    async acquireInitialRetryToken(retryTokenScope) {\n        await this.rateLimiter.getSendToken();\n        return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n    }\n    async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n        this.rateLimiter.updateClientSendingRate(errorInfo);\n        return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n    }\n    recordSuccess(token) {\n        this.rateLimiter.updateClientSendingRate({});\n        this.standardRetryStrategy.recordSuccess(token);\n    }\n}\n","import { setFeature } from \"@aws-sdk/core/client\";\nimport { RETRY_MODES } from \"@smithy/util-retry\";\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nexport async function checkFeatures(context, config, args) {\n    const request = args.request;\n    if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n        setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n    }\n    if (typeof config.retryStrategy === \"function\") {\n        const retryStrategy = await config.retryStrategy();\n        if (typeof retryStrategy.mode === \"string\") {\n            switch (retryStrategy.mode) {\n                case RETRY_MODES.ADAPTIVE:\n                    setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n                    break;\n                case RETRY_MODES.STANDARD:\n                    setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n                    break;\n            }\n        }\n    }\n    if (typeof config.accountIdEndpointMode === \"function\") {\n        const endpointV2 = context.endpointV2;\n        if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n            setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n        }\n        switch (await config.accountIdEndpointMode?.()) {\n            case \"disabled\":\n                setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n                break;\n            case \"preferred\":\n                setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n                break;\n            case \"required\":\n                setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n                break;\n        }\n    }\n    const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n    if (identity?.$source) {\n        const credentials = identity;\n        if (credentials.accountId) {\n            setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n        }\n        for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n            setFeature(context, key, value);\n        }\n    }\n}\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","const BYTE_LIMIT = 1024;\nexport function encodeFeatures(features) {\n    let buffer = \"\";\n    for (const key in features) {\n        const val = features[key];\n        if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n            if (buffer.length) {\n                buffer += \",\" + val;\n            }\n            else {\n                buffer += val;\n            }\n            continue;\n        }\n        break;\n    }\n    return buffer;\n}\n","import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { checkFeatures } from \"./check-features\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nimport { encodeFeatures } from \"./encode-features\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n    const { request } = args;\n    if (!HttpRequest.isInstance(request)) {\n        return next(args);\n    }\n    const { headers } = request;\n    const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n    const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n    await checkFeatures(context, options, args);\n    const awsContext = context;\n    defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n    const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n    const appId = await options.userAgentAppId();\n    if (appId) {\n        defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n    }\n    const prefix = getUserAgentPrefix();\n    const sdkUserAgentValue = (prefix ? [prefix] : [])\n        .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n        .join(SPACE);\n    const normalUAValue = [\n        ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n        ...customUserAgent,\n    ].join(SPACE);\n    if (options.runtime !== \"browser\") {\n        if (normalUAValue) {\n            headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n                ? `${headers[USER_AGENT]} ${normalUAValue}`\n                : normalUAValue;\n        }\n        headers[USER_AGENT] = sdkUserAgentValue;\n    }\n    else {\n        headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n    }\n    return next({\n        ...args,\n        request,\n    });\n};\nconst escapeUserAgent = (userAgentPair) => {\n    const name = userAgentPair[0]\n        .split(UA_NAME_SEPARATOR)\n        .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n        .join(UA_NAME_SEPARATOR);\n    const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n    const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n    const prefix = name.substring(0, prefixSeparatorIndex);\n    let uaName = name.substring(prefixSeparatorIndex + 1);\n    if (prefix === \"api\") {\n        uaName = uaName.toLowerCase();\n    }\n    return [prefix, uaName, version]\n        .filter((item) => item && item.length > 0)\n        .reduce((acc, item, index) => {\n        switch (index) {\n            case 0:\n                return item;\n            case 1:\n                return `${acc}/${item}`;\n            default:\n                return `${acc}#${item}`;\n        }\n    }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n    name: \"getUserAgentMiddleware\",\n    step: \"build\",\n    priority: \"low\",\n    tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n    override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n    },\n});\n","import { isValidHostLabel } from \"@smithy/util-endpoints\";\nconst validRegions = new Set();\nexport const checkRegion = (region, check = isValidHostLabel) => {\n    if (!validRegions.has(region) && !check(region)) {\n        if (region === \"*\") {\n            console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of \"*\". See \"sigv4a\" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`);\n        }\n        else {\n            throw new Error(`Region not accepted: region=\"${region}\" is not a valid hostname component.`);\n        }\n    }\n    else {\n        validRegions.add(region);\n    }\n};\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n    ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n        ? \"us-east-1\"\n        : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n    : region;\n","import { checkRegion } from \"./checkRegion\";\nimport { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n    const { region, useFipsEndpoint } = input;\n    if (!region) {\n        throw new Error(\"Region is missing\");\n    }\n    return Object.assign(input, {\n        region: async () => {\n            const providedRegion = typeof region === \"function\" ? await region() : region;\n            const realRegion = getRealRegion(providedRegion);\n            checkRegion(realRegion);\n            return realRegion;\n        },\n        useFipsEndpoint: async () => {\n            const providedRegion = typeof region === \"string\" ? region : await region();\n            if (isFipsRegion(providedRegion)) {\n                return true;\n            }\n            return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n        },\n    });\n};\n","export const resolveEventStreamSerdeConfig = (input) => Object.assign(input, {\n    eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n    return (next) => async (args) => {\n        const request = args.request;\n        if (HttpRequest.isInstance(request)) {\n            const { body, headers } = request;\n            if (body &&\n                Object.keys(headers)\n                    .map((str) => str.toLowerCase())\n                    .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n                try {\n                    const length = bodyLengthChecker(body);\n                    request.headers = {\n                        ...request.headers,\n                        [CONTENT_LENGTH_HEADER]: String(length),\n                    };\n                }\n                catch (error) {\n                }\n            }\n        }\n        return next({\n            ...args,\n            request,\n        });\n    };\n}\nexport const contentLengthMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n    name: \"contentLengthMiddleware\",\n    override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n    },\n});\n","export const resolveParamsForS3 = async (endpointParams) => {\n    const bucket = endpointParams?.Bucket || \"\";\n    if (typeof endpointParams.Bucket === \"string\") {\n        endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n    }\n    if (isArnBucketName(bucket)) {\n        if (endpointParams.ForcePathStyle === true) {\n            throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n        }\n    }\n    else if (!isDnsCompatibleBucketName(bucket) ||\n        (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n        bucket.toLowerCase() !== bucket ||\n        bucket.length < 3) {\n        endpointParams.ForcePathStyle = true;\n    }\n    if (endpointParams.DisableMultiRegionAccessPoints) {\n        endpointParams.disableMultiRegionAccessPoints = true;\n        endpointParams.DisableMRAP = true;\n    }\n    return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n    const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n    const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n    const isValidArn = Boolean(isArn && partition && service && bucket);\n    if (isArn && !isValidArn) {\n        throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n    }\n    return isValidArn;\n};\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config, isClientContextParam = false) => {\n    const configProvider = async () => {\n        let configValue;\n        if (isClientContextParam) {\n            const clientContextParams = config.clientContextParams;\n            const nestedValue = clientContextParams?.[configKey];\n            configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey];\n        }\n        else {\n            configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n        }\n        if (typeof configValue === \"function\") {\n            return configValue();\n        }\n        return configValue;\n    };\n    if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n        return async () => {\n            const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n            const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n            return configValue;\n        };\n    }\n    if (configKey === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n        return async () => {\n            const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n            const configValue = credentials?.accountId ?? credentials?.AccountId;\n            return configValue;\n        };\n    }\n    if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n        return async () => {\n            if (config.isCustomEndpoint === false) {\n                return undefined;\n            }\n            const endpoint = await configProvider();\n            if (endpoint && typeof endpoint === \"object\") {\n                if (\"url\" in endpoint) {\n                    return endpoint.url.href;\n                }\n                if (\"hostname\" in endpoint) {\n                    const { protocol, hostname, port, path } = endpoint;\n                    return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n                }\n            }\n            return endpoint;\n        };\n    }\n    return configProvider;\n};\n","export const getEndpointFromConfig = async (serviceId) => undefined;\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n    if (typeof endpoint === \"object\") {\n        if (\"url\" in endpoint) {\n            const v1Endpoint = parseUrl(endpoint.url);\n            if (endpoint.headers) {\n                v1Endpoint.headers = {};\n                for (const [name, values] of Object.entries(endpoint.headers)) {\n                    v1Endpoint.headers[name.toLowerCase()] = values.join(\", \");\n                }\n            }\n            return v1Endpoint;\n        }\n        return endpoint;\n    }\n    return parseUrl(endpoint);\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { getEndpointFromConfig } from \"./getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n    if (!clientConfig.isCustomEndpoint) {\n        let endpointFromConfig;\n        if (clientConfig.serviceConfiguredEndpoint) {\n            endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n        }\n        else {\n            endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId);\n        }\n        if (endpointFromConfig) {\n            clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n            clientConfig.isCustomEndpoint = true;\n        }\n    }\n    const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n    if (typeof clientConfig.endpointProvider !== \"function\") {\n        throw new Error(\"config.endpointProvider is not set.\");\n    }\n    const endpoint = clientConfig.endpointProvider(endpointParams, context);\n    if (clientConfig.isCustomEndpoint && clientConfig.endpoint) {\n        const customEndpoint = await clientConfig.endpoint();\n        if (customEndpoint?.headers) {\n            endpoint.headers ??= {};\n            for (const [name, value] of Object.entries(customEndpoint.headers)) {\n                endpoint.headers[name] = Array.isArray(value) ? value : [value];\n            }\n        }\n    }\n    return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n    const endpointParams = {};\n    const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n    for (const [name, instruction] of Object.entries(instructions)) {\n        switch (instruction.type) {\n            case \"staticContextParams\":\n                endpointParams[name] = instruction.value;\n                break;\n            case \"contextParams\":\n                endpointParams[name] = commandInput[instruction.name];\n                break;\n            case \"clientContextParams\":\n            case \"builtInParams\":\n                endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig, instruction.type !== \"builtInParams\")();\n                break;\n            case \"operationContextParams\":\n                endpointParams[name] = instruction.get(commandInput);\n                break;\n            default:\n                throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n        }\n    }\n    if (Object.keys(instructions).length === 0) {\n        Object.assign(endpointParams, clientConfig);\n    }\n    if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n        await resolveParamsForS3(endpointParams);\n    }\n    return endpointParams;\n};\n","import { setFeature } from \"@smithy/core\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n    return (next, context) => async (args) => {\n        if (config.isCustomEndpoint) {\n            setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n        }\n        const endpoint = await getEndpointFromInstructions(args.input, {\n            getEndpointParameterInstructions() {\n                return instructions;\n            },\n        }, { ...config }, context);\n        context.endpointV2 = endpoint;\n        context.authSchemes = endpoint.properties?.authSchemes;\n        const authScheme = context.authSchemes?.[0];\n        if (authScheme) {\n            context[\"signing_region\"] = authScheme.signingRegion;\n            context[\"signing_service\"] = authScheme.signingName;\n            const smithyContext = getSmithyContext(context);\n            const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n            if (httpAuthOption) {\n                httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n                    signing_region: authScheme.signingRegion,\n                    signingRegion: authScheme.signingRegion,\n                    signing_service: authScheme.signingName,\n                    signingName: authScheme.signingName,\n                    signingRegionSet: authScheme.signingRegionSet,\n                }, authScheme.properties);\n            }\n        }\n        return next({\n            ...args,\n        });\n    };\n};\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n    name: \"deserializerMiddleware\",\n    step: \"deserialize\",\n    tags: [\"DESERIALIZER\"],\n    override: true,\n};\nexport const serializerMiddlewareOption = {\n    name: \"serializerMiddleware\",\n    step: \"serialize\",\n    tags: [\"SERIALIZER\"],\n    override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n    return {\n        applyToStack: (commandStack) => {\n            commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n            commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n        },\n    };\n}\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n    step: \"serialize\",\n    tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n    name: \"endpointV2Middleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(endpointMiddleware({\n            config,\n            instructions,\n        }), endpointMiddlewareOptions);\n    },\n});\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { getEndpointFromConfig } from \"./adaptors/getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n    const tls = input.tls ?? true;\n    const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n    const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n    const isCustomEndpoint = !!endpoint;\n    const resolvedConfig = Object.assign(input, {\n        endpoint: customEndpointProvider,\n        tls,\n        isCustomEndpoint,\n        useDualstackEndpoint: normalizeProvider(useDualstackEndpoint ?? false),\n        useFipsEndpoint: normalizeProvider(useFipsEndpoint ?? false),\n    });\n    let configuredEndpointPromise = undefined;\n    resolvedConfig.serviceConfiguredEndpoint = async () => {\n        if (input.serviceId && !configuredEndpointPromise) {\n            configuredEndpointPromise = getEndpointFromConfig(input.serviceId);\n        }\n        return configuredEndpointPromise;\n    };\n    return resolvedConfig;\n};\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => {\n        const value = env[ENV_MAX_ATTEMPTS];\n        if (!value)\n            return undefined;\n        const maxAttempt = parseInt(value);\n        if (Number.isNaN(maxAttempt)) {\n            throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n        }\n        return maxAttempt;\n    },\n    configFileSelector: (profile) => {\n        const value = profile[CONFIG_MAX_ATTEMPTS];\n        if (!value)\n            return undefined;\n        const maxAttempt = parseInt(value);\n        if (Number.isNaN(maxAttempt)) {\n            throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n        }\n        return maxAttempt;\n    },\n    default: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n    const { retryStrategy, retryMode } = input;\n    const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n    let controller = retryStrategy\n        ? Promise.resolve(retryStrategy)\n        : undefined;\n    const getDefault = async () => (await normalizeProvider(retryMode)()) === RETRY_MODES.ADAPTIVE\n        ? new AdaptiveRetryStrategy(maxAttempts)\n        : new StandardRetryStrategy(maxAttempts);\n    return Object.assign(input, {\n        maxAttempts,\n        retryStrategy: () => (controller ??= getDefault()),\n    });\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n    configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n    default: DEFAULT_RETRY_MODE,\n};\n","export const asSdkError = (error) => {\n    if (error instanceof Error)\n        return error;\n    if (error instanceof Object)\n        return Object.assign(new Error(), error);\n    if (typeof error === \"string\")\n        return new Error(error);\n    return new Error(`AWS SDK error wrapper for ${error}`);\n};\n","export const isStreamingPayload = (request) => request?.body instanceof ReadableStream;\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"@smithy/uuid\";\nimport { isStreamingPayload } from \"./isStreamingPayload/isStreamingPayload\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n    let retryStrategy = await options.retryStrategy();\n    const maxAttempts = await options.maxAttempts();\n    if (isRetryStrategyV2(retryStrategy)) {\n        retryStrategy = retryStrategy;\n        let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n        let lastError = new Error();\n        let attempts = 0;\n        let totalRetryDelay = 0;\n        const { request } = args;\n        const isRequest = HttpRequest.isInstance(request);\n        if (isRequest) {\n            request.headers[INVOCATION_ID_HEADER] = v4();\n        }\n        while (true) {\n            try {\n                if (isRequest) {\n                    request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n                }\n                const { response, output } = await next(args);\n                retryStrategy.recordSuccess(retryToken);\n                output.$metadata.attempts = attempts + 1;\n                output.$metadata.totalRetryDelay = totalRetryDelay;\n                return { response, output };\n            }\n            catch (e) {\n                const retryErrorInfo = getRetryErrorInfo(e);\n                lastError = asSdkError(e);\n                if (isRequest && isStreamingPayload(request)) {\n                    (context.logger instanceof NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n                    throw lastError;\n                }\n                try {\n                    retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n                }\n                catch (refreshError) {\n                    if (!lastError.$metadata) {\n                        lastError.$metadata = {};\n                    }\n                    lastError.$metadata.attempts = attempts + 1;\n                    lastError.$metadata.totalRetryDelay = totalRetryDelay;\n                    throw lastError;\n                }\n                attempts = retryToken.getRetryCount();\n                const delay = retryToken.getRetryDelay();\n                totalRetryDelay += delay;\n                await new Promise((resolve) => setTimeout(resolve, delay));\n            }\n        }\n    }\n    else {\n        retryStrategy = retryStrategy;\n        if (retryStrategy?.mode)\n            context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n        return retryStrategy.retry(next, args);\n    }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n    typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n    typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n    const errorInfo = {\n        error,\n        errorType: getRetryErrorType(error),\n    };\n    const retryAfterHint = getRetryAfterHint(error.$response);\n    if (retryAfterHint) {\n        errorInfo.retryAfterHint = retryAfterHint;\n    }\n    return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n    if (isThrottlingError(error))\n        return \"THROTTLING\";\n    if (isTransientError(error))\n        return \"TRANSIENT\";\n    if (isServerError(error))\n        return \"SERVER_ERROR\";\n    return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n    name: \"retryMiddleware\",\n    tags: [\"RETRY\"],\n    step: \"finalizeRequest\",\n    priority: \"high\",\n    override: true,\n};\nexport const getRetryPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n    },\n});\nexport const getRetryAfterHint = (response) => {\n    if (!HttpResponse.isInstance(response))\n        return;\n    const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n    if (!retryAfterHeaderName)\n        return;\n    const retryAfter = response.headers[retryAfterHeaderName];\n    const retryAfterSeconds = Number(retryAfter);\n    if (!Number.isNaN(retryAfterSeconds))\n        return new Date(retryAfterSeconds * 1000);\n    const retryAfterDate = new Date(retryAfter);\n    return retryAfterDate;\n};\n","import { HttpResponse } from \"@smithy/protocol-http\";\nexport const getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n","export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n    const clockTimeInMs = Date.parse(clockTime);\n    if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n        return clockTimeInMs - Date.now();\n    }\n    return currentSystemClockOffset;\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getDateHeader, getSkewCorrectedDate, getUpdatedSystemClockOffset } from \"../utils\";\nconst throwSigningPropertyError = (name, property) => {\n    if (!property) {\n        throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n    }\n    return property;\n};\nexport const validateSigningProperties = async (signingProperties) => {\n    const context = throwSigningPropertyError(\"context\", signingProperties.context);\n    const config = throwSigningPropertyError(\"config\", signingProperties.config);\n    const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n    const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n    const signer = await signerFunction(authScheme);\n    const signingRegion = signingProperties?.signingRegion;\n    const signingRegionSet = signingProperties?.signingRegionSet;\n    const signingName = signingProperties?.signingName;\n    return {\n        config,\n        signer,\n        signingRegion,\n        signingRegionSet,\n        signingName,\n    };\n};\nexport class AwsSdkSigV4Signer {\n    async sign(httpRequest, identity, signingProperties) {\n        if (!HttpRequest.isInstance(httpRequest)) {\n            throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n        }\n        const validatedProps = await validateSigningProperties(signingProperties);\n        const { config, signer } = validatedProps;\n        let { signingRegion, signingName } = validatedProps;\n        const handlerExecutionContext = signingProperties.context;\n        if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n            const [first, second] = handlerExecutionContext.authSchemes;\n            if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n                signingRegion = second?.signingRegion ?? signingRegion;\n                signingName = second?.signingName ?? signingName;\n            }\n        }\n        const signedRequest = await signer.sign(httpRequest, {\n            signingDate: getSkewCorrectedDate(config.systemClockOffset),\n            signingRegion: signingRegion,\n            signingService: signingName,\n        });\n        return signedRequest;\n    }\n    errorHandler(signingProperties) {\n        return (error) => {\n            const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n            if (serverTime) {\n                const config = throwSigningPropertyError(\"config\", signingProperties.config);\n                const initialSystemClockOffset = config.systemClockOffset;\n                config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n                const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n                if (clockSkewCorrected && error.$metadata) {\n                    error.$metadata.clockSkewCorrected = true;\n                }\n            }\n            throw error;\n        };\n    }\n    successHandler(httpResponse, signingProperties) {\n        const dateHeader = getDateHeader(httpResponse);\n        if (dateHeader) {\n            const config = throwSigningPropertyError(\"config\", signingProperties.config);\n            config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n        }\n    }\n}\nexport const AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getSkewCorrectedDate } from \"../utils\";\nimport { AwsSdkSigV4Signer, validateSigningProperties } from \"./AwsSdkSigV4Signer\";\nexport class AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n    async sign(httpRequest, identity, signingProperties) {\n        if (!HttpRequest.isInstance(httpRequest)) {\n            throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n        }\n        const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n        const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n        const multiRegionOverride = (configResolvedSigningRegionSet ??\n            signingRegionSet ?? [signingRegion]).join(\",\");\n        const signedRequest = await signer.sign(httpRequest, {\n            signingDate: getSkewCorrectedDate(config.systemClockOffset),\n            signingRegion: multiRegionOverride,\n            signingService: signingName,\n        });\n        return signedRequest;\n    }\n}\n","export const memoize = (provider, isExpired, requiresRefresh) => {\n    let resolved;\n    let pending;\n    let hasResult;\n    let isConstant = false;\n    const coalesceProvider = async () => {\n        if (!pending) {\n            pending = provider();\n        }\n        try {\n            resolved = await pending;\n            hasResult = true;\n            isConstant = false;\n        }\n        finally {\n            pending = undefined;\n        }\n        return resolved;\n    };\n    if (isExpired === undefined) {\n        return async (options) => {\n            if (!hasResult || options?.forceRefresh) {\n                resolved = await coalesceProvider();\n            }\n            return resolved;\n        };\n    }\n    return async (options) => {\n        if (!hasResult || options?.forceRefresh) {\n            resolved = await coalesceProvider();\n        }\n        if (isConstant) {\n            return resolved;\n        }\n        if (requiresRefresh && !requiresRefresh(resolved)) {\n            isConstant = true;\n            return resolved;\n        }\n        if (isExpired(resolved)) {\n            await coalesceProvider();\n            return resolved;\n        }\n        return resolved;\n    };\n};\n","import { normalizeProvider } from \"@smithy/core\";\nimport { ProviderError } from \"@smithy/property-provider\";\nexport const resolveAwsSdkSigV4AConfig = (config) => {\n    config.sigv4aSigningRegionSet = normalizeProvider(config.sigv4aSigningRegionSet);\n    return config;\n};\nexport const NODE_SIGV4A_CONFIG_OPTIONS = {\n    environmentVariableSelector(env) {\n        if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n            return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n        }\n        throw new ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n            tryNextLink: true,\n        });\n    },\n    configFileSelector(profile) {\n        if (profile.sigv4a_signing_region_set) {\n            return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n        }\n        throw new ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n            tryNextLink: true,\n        });\n    },\n    default: undefined,\n};\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { doesIdentityRequireRefresh, isIdentityExpired, memoizeIdentityProvider, normalizeProvider, } from \"@smithy/core\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nexport const resolveAwsSdkSigV4Config = (config) => {\n    let inputCredentials = config.credentials;\n    let isUserSupplied = !!config.credentials;\n    let resolvedCredentials = undefined;\n    Object.defineProperty(config, \"credentials\", {\n        set(credentials) {\n            if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n                isUserSupplied = true;\n            }\n            inputCredentials = credentials;\n            const memoizedProvider = normalizeCredentialProvider(config, {\n                credentials: inputCredentials,\n                credentialDefaultProvider: config.credentialDefaultProvider,\n            });\n            const boundProvider = bindCallerConfig(config, memoizedProvider);\n            if (isUserSupplied && !boundProvider.attributed) {\n                const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n                resolvedCredentials = async (options) => {\n                    const creds = await boundProvider(options);\n                    const attributedCreds = creds;\n                    if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n                        return setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n                    }\n                    return attributedCreds;\n                };\n                resolvedCredentials.memoized = boundProvider.memoized;\n                resolvedCredentials.configBound = boundProvider.configBound;\n                resolvedCredentials.attributed = true;\n            }\n            else {\n                resolvedCredentials = boundProvider;\n            }\n        },\n        get() {\n            return resolvedCredentials;\n        },\n        enumerable: true,\n        configurable: true,\n    });\n    config.credentials = inputCredentials;\n    const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n    let signer;\n    if (config.signer) {\n        signer = normalizeProvider(config.signer);\n    }\n    else if (config.regionInfoProvider) {\n        signer = () => normalizeProvider(config.region)()\n            .then(async (region) => [\n            (await config.regionInfoProvider(region, {\n                useFipsEndpoint: await config.useFipsEndpoint(),\n                useDualstackEndpoint: await config.useDualstackEndpoint(),\n            })) || {},\n            region,\n        ])\n            .then(([regionInfo, region]) => {\n            const { signingRegion, signingService } = regionInfo;\n            config.signingRegion = config.signingRegion || signingRegion || region;\n            config.signingName = config.signingName || signingService || config.serviceId;\n            const params = {\n                ...config,\n                credentials: config.credentials,\n                region: config.signingRegion,\n                service: config.signingName,\n                sha256,\n                uriEscapePath: signingEscapePath,\n            };\n            const SignerCtor = config.signerConstructor || SignatureV4;\n            return new SignerCtor(params);\n        });\n    }\n    else {\n        signer = async (authScheme) => {\n            authScheme = Object.assign({}, {\n                name: \"sigv4\",\n                signingName: config.signingName || config.defaultSigningName,\n                signingRegion: await normalizeProvider(config.region)(),\n                properties: {},\n            }, authScheme);\n            const signingRegion = authScheme.signingRegion;\n            const signingService = authScheme.signingName;\n            config.signingRegion = config.signingRegion || signingRegion;\n            config.signingName = config.signingName || signingService || config.serviceId;\n            const params = {\n                ...config,\n                credentials: config.credentials,\n                region: config.signingRegion,\n                service: config.signingName,\n                sha256,\n                uriEscapePath: signingEscapePath,\n            };\n            const SignerCtor = config.signerConstructor || SignatureV4;\n            return new SignerCtor(params);\n        };\n    }\n    const resolvedConfig = Object.assign(config, {\n        systemClockOffset,\n        signingEscapePath,\n        signer,\n    });\n    return resolvedConfig;\n};\nexport const resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n    let credentialsProvider;\n    if (credentials) {\n        if (!credentials?.memoized) {\n            credentialsProvider = memoizeIdentityProvider(credentials, isIdentityExpired, doesIdentityRequireRefresh);\n        }\n        else {\n            credentialsProvider = credentials;\n        }\n    }\n    else {\n        if (credentialDefaultProvider) {\n            credentialsProvider = normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n                parentClientConfig: config,\n            })));\n        }\n        else {\n            credentialsProvider = async () => {\n                throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n            };\n        }\n    }\n    credentialsProvider.memoized = true;\n    return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n    if (credentialsProvider.configBound) {\n        return credentialsProvider;\n    }\n    const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n    fn.memoized = credentialsProvider.memoized;\n    fn.configBound = true;\n    return fn;\n}\n","export const signatureV4CrtContainer = {\n    CrtSignerV4: null,\n};\n","import { SignatureV4S3Express } from \"@aws-sdk/middleware-sdk-s3\";\nimport { signatureV4aContainer } from \"@smithy/signature-v4\";\nimport { signatureV4CrtContainer } from \"./signature-v4-crt-container\";\nexport class SignatureV4MultiRegion {\n    sigv4aSigner;\n    sigv4Signer;\n    signerOptions;\n    static sigv4aDependency() {\n        if (typeof signatureV4CrtContainer.CrtSignerV4 === \"function\") {\n            return \"crt\";\n        }\n        else if (typeof signatureV4aContainer.SignatureV4a === \"function\") {\n            return \"js\";\n        }\n        return \"none\";\n    }\n    constructor(options) {\n        this.sigv4Signer = new SignatureV4S3Express(options);\n        this.signerOptions = options;\n    }\n    async sign(requestToSign, options = {}) {\n        if (options.signingRegion === \"*\") {\n            return this.getSigv4aSigner().sign(requestToSign, options);\n        }\n        return this.sigv4Signer.sign(requestToSign, options);\n    }\n    async signWithCredentials(requestToSign, credentials, options = {}) {\n        if (options.signingRegion === \"*\") {\n            const signer = this.getSigv4aSigner();\n            const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n            if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n                return signer.signWithCredentials(requestToSign, credentials, options);\n            }\n            else {\n                throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. ` +\n                    `Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. ` +\n                    `You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] ` +\n                    `or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. ` +\n                    `For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);\n            }\n        }\n        return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options);\n    }\n    async presign(originalRequest, options = {}) {\n        if (options.signingRegion === \"*\") {\n            const signer = this.getSigv4aSigner();\n            const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n            if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n                return signer.presign(originalRequest, options);\n            }\n            else {\n                throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. ` +\n                    `Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. ` +\n                    `You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] ` +\n                    `or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. ` +\n                    `For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);\n            }\n        }\n        return this.sigv4Signer.presign(originalRequest, options);\n    }\n    async presignWithCredentials(originalRequest, credentials, options = {}) {\n        if (options.signingRegion === \"*\") {\n            throw new Error(\"Method presignWithCredentials is not supported for [signingRegion=*].\");\n        }\n        return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options);\n    }\n    getSigv4aSigner() {\n        if (!this.sigv4aSigner) {\n            const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n            const JsSigV4aSigner = signatureV4aContainer.SignatureV4a;\n            if (this.signerOptions.runtime === \"node\") {\n                if (!CrtSignerV4 && !JsSigV4aSigner) {\n                    throw new Error(\"Neither CRT nor JS SigV4a implementation is available. \" +\n                        \"Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. \" +\n                        \"For more information please go to \" +\n                        \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\");\n                }\n                if (CrtSignerV4 && typeof CrtSignerV4 === \"function\") {\n                    this.sigv4aSigner = new CrtSignerV4({\n                        ...this.signerOptions,\n                        signingAlgorithm: 1,\n                    });\n                }\n                else if (JsSigV4aSigner && typeof JsSigV4aSigner === \"function\") {\n                    this.sigv4aSigner = new JsSigV4aSigner({\n                        ...this.signerOptions,\n                    });\n                }\n                else {\n                    throw new Error(\"Available SigV4a implementation is not a valid constructor. \" +\n                        \"Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.\" +\n                        \"For more information please go to \" +\n                        \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\");\n                }\n            }\n            else {\n                if (!JsSigV4aSigner || typeof JsSigV4aSigner !== \"function\") {\n                    throw new Error(\"JS SigV4a implementation is not available or not a valid constructor. \" +\n                        \"Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. \" +\n                        \"You must also register the package by calling [require('@aws-sdk/signature-v4a');] \" +\n                        \"or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. \" +\n                        \"For more information please go to \" +\n                        \"https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a\");\n                }\n                this.sigv4aSigner = new JsSigV4aSigner({\n                    ...this.signerOptions,\n                });\n            }\n        }\n        return this.sigv4aSigner;\n    }\n}\n","const cs = \"required\", ct = \"type\", cu = \"rules\", cv = \"conditions\", cw = \"fn\", cx = \"argv\", cy = \"ref\", cz = \"assign\", cA = \"url\", cB = \"properties\", cC = \"backend\", cD = \"authSchemes\", cE = \"disableDoubleEncoding\", cF = \"signingName\", cG = \"signingRegion\", cH = \"headers\", cI = \"signingRegionSet\";\nconst a = 6, b = false, c = true, d = \"isSet\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"bucketSuffix\", m = \"parseURL\", n = \"endpoint\", o = \"tree\", p = \"aws.isVirtualHostableS3Bucket\", q = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", r = \"not\", s = \"accessPointSuffix\", t = \"{url#scheme}://{url#authority}{url#path}\", u = \"hardwareType\", v = \"regionPrefix\", w = \"bucketAliasSuffix\", x = \"outpostId\", y = \"isValidHostLabel\", z = \"sigv4a\", A = \"s3-outposts\", B = \"s3\", C = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", D = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", E = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", F = \"aws.parseArn\", G = \"bucketArn\", H = \"arnType\", I = \"\", J = \"s3-object-lambda\", K = \"accesspoint\", L = \"accessPointName\", M = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", N = \"mrapPartition\", O = \"outpostType\", P = \"arnPrefix\", Q = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", R = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", S = \"https://s3.{partitionResult#dnsSuffix}\", T = { [cs]: false, [ct]: \"string\" }, U = { [cs]: true, \"default\": false, [ct]: \"boolean\" }, V = { [cs]: false, [ct]: \"boolean\" }, W = { [cw]: e, [cx]: [{ [cy]: \"Accelerate\" }, true] }, X = { [cw]: e, [cx]: [{ [cy]: \"UseFIPS\" }, true] }, Y = { [cw]: e, [cx]: [{ [cy]: \"UseDualStack\" }, true] }, Z = { [cw]: d, [cx]: [{ [cy]: \"Endpoint\" }] }, aa = { [cw]: g, [cx]: [{ [cy]: \"Region\" }], [cz]: \"partitionResult\" }, ab = { [cw]: h, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"partitionResult\" }, j] }, \"aws-cn\"] }, ac = { [cw]: d, [cx]: [{ [cy]: \"Bucket\" }] }, ad = { [cy]: \"Bucket\" }, ae = { [cv]: [W], [f]: \"S3Express does not support S3 Accelerate.\", [ct]: f }, af = { [cv]: [Z, { [cw]: m, [cx]: [{ [cy]: \"Endpoint\" }], [cz]: \"url\" }], [cu]: [{ [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }, true] }], [cu]: [{ [cv]: [{ [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }], [cu]: [{ [cv]: [{ [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }], [cu]: [{ [n]: { [cA]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: p, [cx]: [ad, false] }], [cu]: [{ [n]: { [cA]: q, [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }], [ct]: o }, { [cv]: [{ [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }], [cu]: [{ [cv]: [{ [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }], [cu]: [{ [n]: { [cA]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: p, [cx]: [ad, false] }], [cu]: [{ [n]: { [cA]: q, [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], [ct]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }], [ct]: o }, ag = { [cw]: m, [cx]: [{ [cy]: \"Endpoint\" }], [cz]: \"url\" }, ah = { [cw]: e, [cx]: [{ [cw]: i, [cx]: [{ [cy]: \"url\" }, \"isIp\"] }, true] }, ai = { [cy]: \"url\" }, aj = { [cw]: \"uriEncode\", [cx]: [ad], [cz]: \"uri_encoded_bucket\" }, ak = { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, al = {}, am = { [cw]: p, [cx]: [ad, false] }, an = { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [ct]: f }, ao = { [cw]: d, [cx]: [{ [cy]: \"UseS3ExpressControlEndpoint\" }] }, ap = { [cw]: e, [cx]: [{ [cy]: \"UseS3ExpressControlEndpoint\" }, true] }, aq = { [cw]: r, [cx]: [Z] }, ar = { [cw]: e, [cx]: [{ [cy]: \"UseDualStack\" }, false] }, as = { [cw]: e, [cx]: [{ [cy]: \"UseFIPS\" }, false] }, at = { [f]: \"Unrecognized S3Express bucket name format.\", [ct]: f }, au = { [cw]: r, [cx]: [ac] }, av = { [cy]: u }, aw = { [cv]: [aq], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [ct]: f }, ax = { [cD]: [{ [cE]: true, [j]: z, [cF]: A, [cI]: [\"*\"] }, { [cE]: true, [j]: \"sigv4\", [cF]: A, [cG]: \"{Region}\" }] }, ay = { [cw]: e, [cx]: [{ [cy]: \"ForcePathStyle\" }, false] }, az = { [cy]: \"ForcePathStyle\" }, aA = { [cw]: e, [cx]: [{ [cy]: \"Accelerate\" }, false] }, aB = { [cw]: h, [cx]: [{ [cy]: \"Region\" }, \"aws-global\"] }, aC = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"us-east-1\" }] }, aD = { [cw]: r, [cx]: [aB] }, aE = { [cw]: e, [cx]: [{ [cy]: \"UseGlobalEndpoint\" }, true] }, aF = { [cA]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{Region}\" }] }, [cH]: {} }, aG = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{Region}\" }] }, aH = { [cw]: e, [cx]: [{ [cy]: \"UseGlobalEndpoint\" }, false] }, aI = { [cA]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aJ = { [cA]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aK = { [cA]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aL = { [cw]: e, [cx]: [{ [cw]: i, [cx]: [ai, \"isIp\"] }, false] }, aM = { [cA]: C, [cB]: aG, [cH]: {} }, aN = { [cA]: q, [cB]: aG, [cH]: {} }, aO = { [n]: aN, [ct]: n }, aP = { [cA]: D, [cB]: aG, [cH]: {} }, aQ = { [cA]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, aR = { [f]: \"Invalid region: region was not a valid DNS name.\", [ct]: f }, aS = { [cy]: G }, aT = { [cy]: H }, aU = { [cw]: i, [cx]: [aS, \"service\"] }, aV = { [cy]: L }, aW = { [cv]: [Y], [f]: \"S3 Object Lambda does not support Dual-stack\", [ct]: f }, aX = { [cv]: [W], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [ct]: f }, aY = { [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"DisableAccessPoints\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [ct]: f }, aZ = { [cv]: [{ [cw]: d, [cx]: [{ [cy]: \"UseArnRegion\" }] }, { [cw]: e, [cx]: [{ [cy]: \"UseArnRegion\" }, false] }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [ct]: f }, ba = { [cw]: i, [cx]: [{ [cy]: \"bucketPartition\" }, j] }, bb = { [cw]: i, [cx]: [aS, \"accountId\"] }, bc = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: J, [cG]: \"{bucketArn#region}\" }] }, bd = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [ct]: f }, be = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [ct]: f }, bf = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [ct]: f }, bg = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [ct]: f }, bh = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [ct]: f }, bi = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided\", [ct]: f }, bj = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: B, [cG]: \"{bucketArn#region}\" }] }, bk = { [cD]: [{ [cE]: true, [j]: z, [cF]: A, [cI]: [\"*\"] }, { [cE]: true, [j]: \"sigv4\", [cF]: A, [cG]: \"{bucketArn#region}\" }] }, bl = { [cw]: F, [cx]: [ad] }, bm = { [cA]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bn = { [cA]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bo = { [cA]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, bp = { [cA]: Q, [cB]: aG, [cH]: {} }, bq = { [cA]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aG, [cH]: {} }, br = { [cy]: \"UseObjectLambdaEndpoint\" }, bs = { [cD]: [{ [cE]: true, [j]: \"sigv4\", [cF]: J, [cG]: \"{Region}\" }] }, bt = { [cA]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bu = { [cA]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bv = { [cA]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, bw = { [cA]: t, [cB]: aG, [cH]: {} }, bx = { [cA]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [cB]: aG, [cH]: {} }, by = [{ [cy]: \"Region\" }], bz = [{ [cy]: \"Endpoint\" }], bA = [ad], bB = [W], bC = [Z, ag], bD = [{ [cw]: d, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }] }, { [cw]: e, [cx]: [{ [cy]: \"DisableS3ExpressSessionAuth\" }, true] }], bE = [aj], bF = [am], bG = [aa], bH = [X, Y], bI = [X, ar], bJ = [as, Y], bK = [as, ar], bL = [{ [cw]: k, [cx]: [ad, 6, 14, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 14, 16, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bM = [{ [cv]: [X, Y], [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bI, [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bJ, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }, { [cv]: bK, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: {} }, [ct]: n }], bN = [{ [cw]: k, [cx]: [ad, 6, 15, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 15, 17, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bO = [{ [cw]: k, [cx]: [ad, 6, 19, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 19, 21, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bP = [{ [cw]: k, [cx]: [ad, 6, 20, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 20, 22, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bQ = [{ [cw]: k, [cx]: [ad, 6, 26, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 26, 28, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bR = [{ [cv]: [X, Y], [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bI, [n]: { [cA]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bJ, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }, { [cv]: bK, [n]: { [cA]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cB]: { [cC]: \"S3Express\", [cD]: [{ [cE]: true, [j]: \"sigv4-s3express\", [cF]: \"s3express\", [cG]: \"{Region}\" }] }, [cH]: {} }, [ct]: n }], bS = [ad, 0, 7, true], bT = [{ [cw]: k, [cx]: [ad, 7, 15, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 15, 17, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bU = [{ [cw]: k, [cx]: [ad, 7, 16, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 16, 18, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bV = [{ [cw]: k, [cx]: [ad, 7, 20, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 20, 22, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bW = [{ [cw]: k, [cx]: [ad, 7, 21, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 21, 23, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bX = [{ [cw]: k, [cx]: [ad, 7, 27, true], [cz]: \"s3expressAvailabilityZoneId\" }, { [cw]: k, [cx]: [ad, 27, 29, true], [cz]: \"s3expressAvailabilityZoneDelim\" }, { [cw]: h, [cx]: [{ [cy]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bY = [ac], bZ = [{ [cw]: y, [cx]: [{ [cy]: x }, false] }], ca = [{ [cw]: h, [cx]: [{ [cy]: v }, \"beta\"] }], cb = [\"*\"], cc = [{ [cw]: y, [cx]: [{ [cy]: \"Region\" }, false] }], cd = [{ [cw]: h, [cx]: [{ [cy]: \"Region\" }, \"us-east-1\"] }], ce = [{ [cw]: h, [cx]: [aT, K] }], cf = [{ [cw]: i, [cx]: [aS, \"resourceId[1]\"], [cz]: L }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [aV, I] }] }], cg = [aS, \"resourceId[1]\"], ch = [Y], ci = [{ [cw]: r, [cx]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, I] }] }], cj = [{ [cw]: r, [cx]: [{ [cw]: d, [cx]: [{ [cw]: i, [cx]: [aS, \"resourceId[2]\"] }] }] }], ck = [aS, \"resourceId[2]\"], cl = [{ [cw]: g, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }], [cz]: \"bucketPartition\" }], cm = [{ [cw]: h, [cx]: [ba, { [cw]: i, [cx]: [{ [cy]: \"partitionResult\" }, j] }] }], cn = [{ [cw]: y, [cx]: [{ [cw]: i, [cx]: [aS, \"region\"] }, true] }], co = [{ [cw]: y, [cx]: [bb, false] }], cp = [{ [cw]: y, [cx]: [aV, false] }], cq = [X], cr = [{ [cw]: y, [cx]: [{ [cy]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: T, Region: T, UseFIPS: U, UseDualStack: U, Endpoint: T, ForcePathStyle: U, Accelerate: U, UseGlobalEndpoint: U, UseObjectLambdaEndpoint: V, Key: T, Prefix: T, CopySource: T, DisableAccessPoints: V, DisableMultiRegionAccessPoints: U, UseArnRegion: V, UseS3ExpressControlEndpoint: V, DisableS3ExpressSessionAuth: V }, [cu]: [{ [cv]: [{ [cw]: d, [cx]: by }], [cu]: [{ [cv]: [W, X], error: \"Accelerate cannot be used with FIPS\", [ct]: f }, { [cv]: [Y, Z], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [ct]: f }, { [cv]: [Z, X], error: \"A custom endpoint cannot be combined with FIPS\", [ct]: f }, { [cv]: [Z, W], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [ct]: f }, { [cv]: [X, aa, ab], error: \"Partition does not support FIPS\", [ct]: f }, { [cv]: [ac, { [cw]: k, [cx]: [ad, 0, a, c], [cz]: l }, { [cw]: h, [cx]: [{ [cy]: l }, \"--x-s3\"] }], [cu]: [ae, af, { [cv]: [ao, ap], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [aj, aq], [cu]: [{ [cv]: bH, endpoint: { [cA]: \"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: ak, [cH]: al }, [ct]: n }], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: bF, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bD, [cu]: [{ [cv]: bL, [cu]: bM, [ct]: o }, { [cv]: bN, [cu]: bM, [ct]: o }, { [cv]: bO, [cu]: bM, [ct]: o }, { [cv]: bP, [cu]: bM, [ct]: o }, { [cv]: bQ, [cu]: bM, [ct]: o }, at], [ct]: o }, { [cv]: bL, [cu]: bR, [ct]: o }, { [cv]: bN, [cu]: bR, [ct]: o }, { [cv]: bO, [cu]: bR, [ct]: o }, { [cv]: bP, [cu]: bR, [ct]: o }, { [cv]: bQ, [cu]: bR, [ct]: o }, at], [ct]: o }], [ct]: o }, an], [ct]: o }, { [cv]: [ac, { [cw]: k, [cx]: bS, [cz]: s }, { [cw]: h, [cx]: [{ [cy]: s }, \"--xa-s3\"] }], [cu]: [ae, af, { [cv]: bF, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bD, [cu]: [{ [cv]: bT, [cu]: bM, [ct]: o }, { [cv]: bU, [cu]: bM, [ct]: o }, { [cv]: bV, [cu]: bM, [ct]: o }, { [cv]: bW, [cu]: bM, [ct]: o }, { [cv]: bX, [cu]: bM, [ct]: o }, at], [ct]: o }, { [cv]: bT, [cu]: bR, [ct]: o }, { [cv]: bU, [cu]: bR, [ct]: o }, { [cv]: bV, [cu]: bR, [ct]: o }, { [cv]: bW, [cu]: bR, [ct]: o }, { [cv]: bX, [cu]: bR, [ct]: o }, at], [ct]: o }], [ct]: o }, an], [ct]: o }, { [cv]: [au, ao, ap], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: bC, endpoint: { [cA]: t, [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bH, endpoint: { [cA]: \"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}\", [cB]: ak, [cH]: al }, [ct]: n }], [ct]: o }], [ct]: o }, { [cv]: [ac, { [cw]: k, [cx]: [ad, 49, 50, c], [cz]: u }, { [cw]: k, [cx]: [ad, 8, 12, c], [cz]: v }, { [cw]: k, [cx]: bS, [cz]: w }, { [cw]: k, [cx]: [ad, 32, 49, c], [cz]: x }, { [cw]: g, [cx]: by, [cz]: \"regionPartition\" }, { [cw]: h, [cx]: [{ [cy]: w }, \"--op-s3\"] }], [cu]: [{ [cv]: bZ, [cu]: [{ [cv]: bF, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [av, \"e\"] }], [cu]: [{ [cv]: ca, [cu]: [aw, { [cv]: bC, endpoint: { [cA]: \"https://{Bucket}.ec2.{url#authority}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { endpoint: { [cA]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { [cv]: [{ [cw]: h, [cx]: [av, \"o\"] }], [cu]: [{ [cv]: ca, [cu]: [aw, { [cv]: bC, endpoint: { [cA]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { endpoint: { [cA]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cB]: ax, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [ct]: f }], [ct]: o }, { error: \"Invalid Outposts Bucket alias - it must be a valid bucket name.\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [ct]: f }], [ct]: o }, { [cv]: bY, [cu]: [{ [cv]: [Z, { [cw]: r, [cx]: [{ [cw]: d, [cx]: [{ [cw]: m, [cx]: bz }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [ct]: f }, { [cv]: [ay, am], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cc, [cu]: [{ [cv]: [W, ab], error: \"S3 Accelerate cannot be used in this region\", [ct]: f }, { [cv]: [Y, X, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, X, aA, aq, aD, aE], [cu]: [{ endpoint: aF, [ct]: n }], [ct]: o }, { [cv]: [Y, X, aA, aq, aD, aH], endpoint: aF, [ct]: n }, { [cv]: [ar, X, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, X, aA, aq, aD, aE], [cu]: [{ endpoint: aI, [ct]: n }], [ct]: o }, { [cv]: [ar, X, aA, aq, aD, aH], endpoint: aI, [ct]: n }, { [cv]: [Y, as, W, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, as, W, aq, aD, aE], [cu]: [{ endpoint: aJ, [ct]: n }], [ct]: o }, { [cv]: [Y, as, W, aq, aD, aH], endpoint: aJ, [ct]: n }, { [cv]: [Y, as, aA, aq, aB], endpoint: { [cA]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, as, aA, aq, aD, aE], [cu]: [{ endpoint: aK, [ct]: n }], [ct]: o }, { [cv]: [Y, as, aA, aq, aD, aH], endpoint: aK, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, ah, aB], endpoint: { [cA]: C, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, aL, aB], endpoint: { [cA]: q, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, ah, aD, aE], [cu]: [{ [cv]: cd, endpoint: aM, [ct]: n }, { endpoint: aM, [ct]: n }], [ct]: o }, { [cv]: [ar, as, aA, Z, ag, aL, aD, aE], [cu]: [{ [cv]: cd, endpoint: aN, [ct]: n }, aO], [ct]: o }, { [cv]: [ar, as, aA, Z, ag, ah, aD, aH], endpoint: aM, [ct]: n }, { [cv]: [ar, as, aA, Z, ag, aL, aD, aH], endpoint: aN, [ct]: n }, { [cv]: [ar, as, W, aq, aB], endpoint: { [cA]: D, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, W, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: aP, [ct]: n }, { endpoint: aP, [ct]: n }], [ct]: o }, { [cv]: [ar, as, W, aq, aD, aH], endpoint: aP, [ct]: n }, { [cv]: [ar, as, aA, aq, aB], endpoint: { [cA]: E, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, as, aA, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: E, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: aQ, [ct]: n }], [ct]: o }, { [cv]: [ar, as, aA, aq, aD, aH], endpoint: aQ, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [Z, ag, { [cw]: h, [cx]: [{ [cw]: i, [cx]: [ai, \"scheme\"] }, \"http\"] }, { [cw]: p, [cx]: [ad, c] }, ay, as, ar, aA], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cc, [cu]: [aO], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [ay, { [cw]: F, [cx]: bA, [cz]: G }], [cu]: [{ [cv]: [{ [cw]: i, [cx]: [aS, \"resourceId[0]\"], [cz]: H }, { [cw]: r, [cx]: [{ [cw]: h, [cx]: [aT, I] }] }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [aU, J] }], [cu]: [{ [cv]: ce, [cu]: [{ [cv]: cf, [cu]: [aW, aX, { [cv]: ci, [cu]: [aY, { [cv]: cj, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cm, [cu]: [{ [cv]: cn, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [bb, I] }], error: \"Invalid ARN: Missing account id\", [ct]: f }, { [cv]: co, [cu]: [{ [cv]: cp, [cu]: [{ [cv]: bC, endpoint: { [cA]: M, [cB]: bc, [cH]: al }, [ct]: n }, { [cv]: cq, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bc, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bc, [cH]: al }, [ct]: n }], [ct]: o }, bd], [ct]: o }, be], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, bh], [ct]: o }, { error: \"Invalid ARN: bucket ARN is missing a region\", [ct]: f }], [ct]: o }, bi], [ct]: o }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [ct]: f }], [ct]: o }, { [cv]: ce, [cu]: [{ [cv]: cf, [cu]: [{ [cv]: ci, [cu]: [{ [cv]: ce, [cu]: [{ [cv]: ci, [cu]: [aY, { [cv]: cj, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [ba, \"{partitionResult#name}\"] }], [cu]: [{ [cv]: cn, [cu]: [{ [cv]: [{ [cw]: h, [cx]: [aU, B] }], [cu]: [{ [cv]: co, [cu]: [{ [cv]: cp, [cu]: [{ [cv]: bB, error: \"Access Points do not support S3 Accelerate\", [ct]: f }, { [cv]: bH, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bI, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bJ, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: [as, ar, Z, ag], endpoint: { [cA]: M, [cB]: bj, [cH]: al }, [ct]: n }, { [cv]: bK, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bj, [cH]: al }, [ct]: n }], [ct]: o }, bd], [ct]: o }, be], [ct]: o }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [ct]: f }], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, bh], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: y, [cx]: [aV, c] }], [cu]: [{ [cv]: ch, error: \"S3 MRAP does not support dual-stack\", [ct]: f }, { [cv]: cq, error: \"S3 MRAP does not support FIPS\", [ct]: f }, { [cv]: bB, error: \"S3 MRAP does not support S3 Accelerate\", [ct]: f }, { [cv]: [{ [cw]: e, [cx]: [{ [cy]: \"DisableMultiRegionAccessPoints\" }, c] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [ct]: f }, { [cv]: [{ [cw]: g, [cx]: by, [cz]: N }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [{ [cw]: i, [cx]: [{ [cy]: N }, j] }, { [cw]: i, [cx]: [aS, \"partition\"] }] }], [cu]: [{ endpoint: { [cA]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [cB]: { [cD]: [{ [cE]: c, name: z, [cF]: B, [cI]: cb }] }, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [ct]: f }], [ct]: o }], [ct]: o }, { error: \"Invalid Access Point Name\", [ct]: f }], [ct]: o }, bi], [ct]: o }, { [cv]: [{ [cw]: h, [cx]: [aU, A] }], [cu]: [{ [cv]: ch, error: \"S3 Outposts does not support Dual-stack\", [ct]: f }, { [cv]: cq, error: \"S3 Outposts does not support FIPS\", [ct]: f }, { [cv]: bB, error: \"S3 Outposts does not support S3 Accelerate\", [ct]: f }, { [cv]: [{ [cw]: d, [cx]: [{ [cw]: i, [cx]: [aS, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [ct]: f }, { [cv]: [{ [cw]: i, [cx]: cg, [cz]: x }], [cu]: [{ [cv]: bZ, [cu]: [aZ, { [cv]: cl, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cm, [cu]: [{ [cv]: cn, [cu]: [{ [cv]: co, [cu]: [{ [cv]: [{ [cw]: i, [cx]: ck, [cz]: O }], [cu]: [{ [cv]: [{ [cw]: i, [cx]: [aS, \"resourceId[3]\"], [cz]: L }], [cu]: [{ [cv]: [{ [cw]: h, [cx]: [{ [cy]: O }, K] }], [cu]: [{ [cv]: bC, endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [cB]: bk, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cB]: bk, [cH]: al }, [ct]: n }], [ct]: o }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: expected an access point name\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: Expected a 4-component resource\", [ct]: f }], [ct]: o }, be], [ct]: o }, bf], [ct]: o }, bg], [ct]: o }], [ct]: o }], [ct]: o }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: The Outpost Id was not set\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [ct]: f }], [ct]: o }, { error: \"Invalid ARN: No ARN type specified\", [ct]: f }], [ct]: o }, { [cv]: [{ [cw]: k, [cx]: [ad, 0, 4, b], [cz]: P }, { [cw]: h, [cx]: [{ [cy]: P }, \"arn:\"] }, { [cw]: r, [cx]: [{ [cw]: d, [cx]: [bl] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [ct]: f }, { [cv]: [{ [cw]: e, [cx]: [az, c] }, bl], error: \"Path-style addressing cannot be used with ARN buckets\", [ct]: f }, { [cv]: bE, [cu]: [{ [cv]: bG, [cu]: [{ [cv]: [aA], [cu]: [{ [cv]: [Y, aq, X, aB], endpoint: { [cA]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, aq, X, aD, aE], [cu]: [{ endpoint: bm, [ct]: n }], [ct]: o }, { [cv]: [Y, aq, X, aD, aH], endpoint: bm, [ct]: n }, { [cv]: [ar, aq, X, aB], endpoint: { [cA]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, aq, X, aD, aE], [cu]: [{ endpoint: bn, [ct]: n }], [ct]: o }, { [cv]: [ar, aq, X, aD, aH], endpoint: bn, [ct]: n }, { [cv]: [Y, aq, as, aB], endpoint: { [cA]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [Y, aq, as, aD, aE], [cu]: [{ endpoint: bo, [ct]: n }], [ct]: o }, { [cv]: [Y, aq, as, aD, aH], endpoint: bo, [ct]: n }, { [cv]: [ar, Z, ag, as, aB], endpoint: { [cA]: Q, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, Z, ag, as, aD, aE], [cu]: [{ [cv]: cd, endpoint: bp, [ct]: n }, { endpoint: bp, [ct]: n }], [ct]: o }, { [cv]: [ar, Z, ag, as, aD, aH], endpoint: bp, [ct]: n }, { [cv]: [ar, aq, as, aB], endpoint: { [cA]: R, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [ar, aq, as, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: R, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: bq, [ct]: n }], [ct]: o }, { [cv]: [ar, aq, as, aD, aH], endpoint: bq, [ct]: n }], [ct]: o }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [ct]: f }], [ct]: o }], [ct]: o }], [ct]: o }, { [cv]: [{ [cw]: d, [cx]: [br] }, { [cw]: e, [cx]: [br, c] }], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cr, [cu]: [aW, aX, { [cv]: bC, endpoint: { [cA]: t, [cB]: bs, [cH]: al }, [ct]: n }, { [cv]: cq, endpoint: { [cA]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [cB]: bs, [cH]: al }, [ct]: n }, { endpoint: { [cA]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [cB]: bs, [cH]: al }, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }, { [cv]: [au], [cu]: [{ [cv]: bG, [cu]: [{ [cv]: cr, [cu]: [{ [cv]: [X, Y, aq, aB], endpoint: { [cA]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [X, Y, aq, aD, aE], [cu]: [{ endpoint: bt, [ct]: n }], [ct]: o }, { [cv]: [X, Y, aq, aD, aH], endpoint: bt, [ct]: n }, { [cv]: [X, ar, aq, aB], endpoint: { [cA]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [X, ar, aq, aD, aE], [cu]: [{ endpoint: bu, [ct]: n }], [ct]: o }, { [cv]: [X, ar, aq, aD, aH], endpoint: bu, [ct]: n }, { [cv]: [as, Y, aq, aB], endpoint: { [cA]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, Y, aq, aD, aE], [cu]: [{ endpoint: bv, [ct]: n }], [ct]: o }, { [cv]: [as, Y, aq, aD, aH], endpoint: bv, [ct]: n }, { [cv]: [as, ar, Z, ag, aB], endpoint: { [cA]: t, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, ar, Z, ag, aD, aE], [cu]: [{ [cv]: cd, endpoint: bw, [ct]: n }, { endpoint: bw, [ct]: n }], [ct]: o }, { [cv]: [as, ar, Z, ag, aD, aH], endpoint: bw, [ct]: n }, { [cv]: [as, ar, aq, aB], endpoint: { [cA]: S, [cB]: aC, [cH]: al }, [ct]: n }, { [cv]: [as, ar, aq, aD, aE], [cu]: [{ [cv]: cd, endpoint: { [cA]: S, [cB]: aG, [cH]: al }, [ct]: n }, { endpoint: bx, [ct]: n }], [ct]: o }, { [cv]: [as, ar, aq, aD, aH], endpoint: bx, [ct]: n }], [ct]: o }, aR], [ct]: o }], [ct]: o }], [ct]: o }, { error: \"A region must be set when sending requests to S3.\", [ct]: f }] };\nexport const ruleSet = _data;\n","import { awsEndpointFunctions } from \"@aws-sdk/util-endpoints\";\nimport { customEndpointFunctions, EndpointCache, resolveEndpoint } from \"@smithy/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nconst cache = new EndpointCache({\n    size: 50,\n    params: [\n        \"Accelerate\",\n        \"Bucket\",\n        \"DisableAccessPoints\",\n        \"DisableMultiRegionAccessPoints\",\n        \"DisableS3ExpressSessionAuth\",\n        \"Endpoint\",\n        \"ForcePathStyle\",\n        \"Region\",\n        \"UseArnRegion\",\n        \"UseDualStack\",\n        \"UseFIPS\",\n        \"UseGlobalEndpoint\",\n        \"UseObjectLambdaEndpoint\",\n        \"UseS3ExpressControlEndpoint\",\n    ],\n});\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n    return cache.get(endpointParams, () => resolveEndpoint(ruleSet, {\n        endpointParams: endpointParams,\n        logger: context.logger,\n    }));\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n","import { resolveAwsSdkSigV4AConfig, resolveAwsSdkSigV4Config, } from \"@aws-sdk/core/httpAuthSchemes\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { resolveParams } from \"@smithy/middleware-endpoint\";\nimport { getSmithyContext, normalizeProvider } from \"@smithy/util-middleware\";\nimport { defaultEndpointResolver } from \"../endpoint/endpointResolver\";\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n    if (!input) {\n        throw new Error(\"Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`\");\n    }\n    const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n    const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor\n        ?.getEndpointParameterInstructions;\n    if (!instructionsFn) {\n        throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`);\n    }\n    const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);\n    return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultS3HttpAuthSchemeParametersProvider = async (config, context, input) => {\n    return {\n        operation: getSmithyContext(context).operation,\n        region: await normalizeProvider(config.region)() || (() => {\n            throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n        })(),\n    };\n};\nexport const defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultS3HttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n    return {\n        schemeId: \"aws.auth#sigv4\",\n        signingProperties: {\n            name: \"s3\",\n            region: authParameters.region,\n        },\n        propertiesExtractor: (config, context) => ({\n            signingProperties: {\n                config,\n                context,\n            },\n        }),\n    };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n    return {\n        schemeId: \"aws.auth#sigv4a\",\n        signingProperties: {\n            name: \"s3\",\n            region: authParameters.region,\n        },\n        propertiesExtractor: (config, context) => ({\n            signingProperties: {\n                config,\n                context,\n            },\n        }),\n    };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n    const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n        const endpoint = defaultEndpointResolver(authParameters);\n        const authSchemes = endpoint.properties?.authSchemes;\n        if (!authSchemes) {\n            return defaultHttpAuthSchemeResolver(authParameters);\n        }\n        const options = [];\n        for (const scheme of authSchemes) {\n            const { name: resolvedName, properties = {}, ...rest } = scheme;\n            const name = resolvedName.toLowerCase();\n            if (resolvedName !== name) {\n                console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name}'`);\n            }\n            let schemeId;\n            if (name === \"sigv4a\") {\n                schemeId = \"aws.auth#sigv4a\";\n                const sigv4Present = authSchemes.find((s) => {\n                    const name = s.name.toLowerCase();\n                    return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n                });\n                if (SignatureV4MultiRegion.sigv4aDependency() === \"none\" && sigv4Present) {\n                    continue;\n                }\n            }\n            else if (name.startsWith(\"sigv4\")) {\n                schemeId = \"aws.auth#sigv4\";\n            }\n            else {\n                throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name}'`);\n            }\n            const createOption = createHttpAuthOptionFunctions[schemeId];\n            if (!createOption) {\n                throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`);\n            }\n            const option = createOption(authParameters);\n            option.schemeId = schemeId;\n            option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n            options.push(option);\n        }\n        return options;\n    };\n    return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultS3HttpAuthSchemeProvider = (authParameters) => {\n    const options = [];\n    switch (authParameters.operation) {\n        default: {\n            options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n            options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n        }\n    }\n    return options;\n};\nexport const defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver, _defaultS3HttpAuthSchemeProvider, {\n    \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n    \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nexport const resolveHttpAuthSchemeConfig = (config) => {\n    const config_0 = resolveAwsSdkSigV4Config(config);\n    const config_1 = resolveAwsSdkSigV4AConfig(config_0);\n    return Object.assign(config_1, {\n        authSchemePreference: normalizeProvider(config.authSchemePreference ?? []),\n    });\n};\n","const clientContextParamDefaults = {};\nexport const resolveClientEndpointParameters = (options) => {\n    return Object.assign(options, {\n        useFipsEndpoint: options.useFipsEndpoint ?? false,\n        useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n        forcePathStyle: options.forcePathStyle ?? false,\n        useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n        useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n        disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n        defaultSigningName: \"s3\",\n        clientContextParams: options.clientContextParams ?? {},\n    });\n};\nexport const commonParams = {\n    ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n    UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n    DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n    Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n    DisableS3ExpressSessionAuth: { type: \"clientContextParams\", name: \"disableS3ExpressSessionAuth\" },\n    UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n    UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n    Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n    Region: { type: \"builtInParams\", name: \"region\" },\n    UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class S3ServiceException extends __ServiceException {\n    constructor(options) {\n        super(options);\n        Object.setPrototypeOf(this, S3ServiceException.prototype);\n    }\n}\n","import { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport class NoSuchUpload extends __BaseException {\n    name = \"NoSuchUpload\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchUpload\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchUpload.prototype);\n    }\n}\nexport class AccessDenied extends __BaseException {\n    name = \"AccessDenied\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"AccessDenied\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, AccessDenied.prototype);\n    }\n}\nexport class ObjectNotInActiveTierError extends __BaseException {\n    name = \"ObjectNotInActiveTierError\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"ObjectNotInActiveTierError\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n    }\n}\nexport class BucketAlreadyExists extends __BaseException {\n    name = \"BucketAlreadyExists\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"BucketAlreadyExists\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n    }\n}\nexport class BucketAlreadyOwnedByYou extends __BaseException {\n    name = \"BucketAlreadyOwnedByYou\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"BucketAlreadyOwnedByYou\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n    }\n}\nexport class NoSuchBucket extends __BaseException {\n    name = \"NoSuchBucket\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchBucket\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchBucket.prototype);\n    }\n}\nexport class InvalidObjectState extends __BaseException {\n    name = \"InvalidObjectState\";\n    $fault = \"client\";\n    StorageClass;\n    AccessTier;\n    constructor(opts) {\n        super({\n            name: \"InvalidObjectState\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidObjectState.prototype);\n        this.StorageClass = opts.StorageClass;\n        this.AccessTier = opts.AccessTier;\n    }\n}\nexport class NoSuchKey extends __BaseException {\n    name = \"NoSuchKey\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchKey\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchKey.prototype);\n    }\n}\nexport class NotFound extends __BaseException {\n    name = \"NotFound\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NotFound\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NotFound.prototype);\n    }\n}\nexport class EncryptionTypeMismatch extends __BaseException {\n    name = \"EncryptionTypeMismatch\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"EncryptionTypeMismatch\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, EncryptionTypeMismatch.prototype);\n    }\n}\nexport class InvalidRequest extends __BaseException {\n    name = \"InvalidRequest\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"InvalidRequest\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidRequest.prototype);\n    }\n}\nexport class InvalidWriteOffset extends __BaseException {\n    name = \"InvalidWriteOffset\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"InvalidWriteOffset\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidWriteOffset.prototype);\n    }\n}\nexport class TooManyParts extends __BaseException {\n    name = \"TooManyParts\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"TooManyParts\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, TooManyParts.prototype);\n    }\n}\nexport class IdempotencyParameterMismatch extends __BaseException {\n    name = \"IdempotencyParameterMismatch\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"IdempotencyParameterMismatch\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, IdempotencyParameterMismatch.prototype);\n    }\n}\nexport class ObjectAlreadyInActiveTierError extends __BaseException {\n    name = \"ObjectAlreadyInActiveTierError\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"ObjectAlreadyInActiveTierError\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n    }\n}\n","const _A = \"Account\";\nconst _AAO = \"AnalyticsAndOperator\";\nconst _AC = \"AccelerateConfiguration\";\nconst _ACL = \"AccessControlList\";\nconst _ACL_ = \"ACL\";\nconst _ACLn = \"AnalyticsConfigurationList\";\nconst _ACP = \"AccessControlPolicy\";\nconst _ACT = \"AccessControlTranslation\";\nconst _ACn = \"AnalyticsConfiguration\";\nconst _AD = \"AccessDenied\";\nconst _ADb = \"AbortDate\";\nconst _AED = \"AnalyticsExportDestination\";\nconst _AF = \"AnalyticsFilter\";\nconst _AH = \"AllowedHeaders\";\nconst _AHl = \"AllowedHeader\";\nconst _AI = \"AccountId\";\nconst _AIMU = \"AbortIncompleteMultipartUpload\";\nconst _AKI = \"AccessKeyId\";\nconst _AM = \"AllowedMethods\";\nconst _AMU = \"AbortMultipartUpload\";\nconst _AMUO = \"AbortMultipartUploadOutput\";\nconst _AMUR = \"AbortMultipartUploadRequest\";\nconst _AMl = \"AllowedMethod\";\nconst _AO = \"AllowedOrigins\";\nconst _AOl = \"AllowedOrigin\";\nconst _APA = \"AccessPointAlias\";\nconst _APAc = \"AccessPointArn\";\nconst _AQRD = \"AllowQuotedRecordDelimiter\";\nconst _AR = \"AcceptRanges\";\nconst _ARI = \"AbortRuleId\";\nconst _AS = \"AbacStatus\";\nconst _ASBD = \"AnalyticsS3BucketDestination\";\nconst _ASSEBD = \"ApplyServerSideEncryptionByDefault\";\nconst _ASr = \"ArchiveStatus\";\nconst _AT = \"AccessTier\";\nconst _An = \"And\";\nconst _B = \"Bucket\";\nconst _BA = \"BucketArn\";\nconst _BAE = \"BucketAlreadyExists\";\nconst _BAI = \"BucketAccountId\";\nconst _BAOBY = \"BucketAlreadyOwnedByYou\";\nconst _BET = \"BlockedEncryptionTypes\";\nconst _BGR = \"BypassGovernanceRetention\";\nconst _BI = \"BucketInfo\";\nconst _BKE = \"BucketKeyEnabled\";\nconst _BLC = \"BucketLifecycleConfiguration\";\nconst _BLN = \"BucketLocationName\";\nconst _BLS = \"BucketLoggingStatus\";\nconst _BLT = \"BucketLocationType\";\nconst _BN = \"BucketNamespace\";\nconst _BNu = \"BucketName\";\nconst _BP = \"BytesProcessed\";\nconst _BPA = \"BlockPublicAcls\";\nconst _BPP = \"BlockPublicPolicy\";\nconst _BR = \"BucketRegion\";\nconst _BRy = \"BytesReturned\";\nconst _BS = \"BytesScanned\";\nconst _Bo = \"Body\";\nconst _Bu = \"Buckets\";\nconst _C = \"Checksum\";\nconst _CA = \"ChecksumAlgorithm\";\nconst _CACL = \"CannedACL\";\nconst _CB = \"CreateBucket\";\nconst _CBC = \"CreateBucketConfiguration\";\nconst _CBMC = \"CreateBucketMetadataConfiguration\";\nconst _CBMCR = \"CreateBucketMetadataConfigurationRequest\";\nconst _CBMTC = \"CreateBucketMetadataTableConfiguration\";\nconst _CBMTCR = \"CreateBucketMetadataTableConfigurationRequest\";\nconst _CBO = \"CreateBucketOutput\";\nconst _CBR = \"CreateBucketRequest\";\nconst _CC = \"CacheControl\";\nconst _CCRC = \"ChecksumCRC32\";\nconst _CCRCC = \"ChecksumCRC32C\";\nconst _CCRCNVME = \"ChecksumCRC64NVME\";\nconst _CC_ = \"Cache-Control\";\nconst _CD = \"CreationDate\";\nconst _CD_ = \"Content-Disposition\";\nconst _CDo = \"ContentDisposition\";\nconst _CE = \"ContinuationEvent\";\nconst _CE_ = \"Content-Encoding\";\nconst _CEo = \"ContentEncoding\";\nconst _CF = \"CloudFunction\";\nconst _CFC = \"CloudFunctionConfiguration\";\nconst _CL = \"ContentLanguage\";\nconst _CL_ = \"Content-Language\";\nconst _CL__ = \"Content-Length\";\nconst _CLo = \"ContentLength\";\nconst _CM = \"Content-MD5\";\nconst _CMD = \"ContentMD5\";\nconst _CMU = \"CompletedMultipartUpload\";\nconst _CMUO = \"CompleteMultipartUploadOutput\";\nconst _CMUOr = \"CreateMultipartUploadOutput\";\nconst _CMUR = \"CompleteMultipartUploadResult\";\nconst _CMURo = \"CompleteMultipartUploadRequest\";\nconst _CMURr = \"CreateMultipartUploadRequest\";\nconst _CMUo = \"CompleteMultipartUpload\";\nconst _CMUr = \"CreateMultipartUpload\";\nconst _CMh = \"ChecksumMode\";\nconst _CO = \"CopyObject\";\nconst _COO = \"CopyObjectOutput\";\nconst _COR = \"CopyObjectResult\";\nconst _CORSC = \"CORSConfiguration\";\nconst _CORSR = \"CORSRules\";\nconst _CORSRu = \"CORSRule\";\nconst _CORo = \"CopyObjectRequest\";\nconst _CP = \"CommonPrefix\";\nconst _CPL = \"CommonPrefixList\";\nconst _CPLo = \"CompletedPartList\";\nconst _CPR = \"CopyPartResult\";\nconst _CPo = \"CompletedPart\";\nconst _CPom = \"CommonPrefixes\";\nconst _CR = \"ContentRange\";\nconst _CRSBA = \"ConfirmRemoveSelfBucketAccess\";\nconst _CR_ = \"Content-Range\";\nconst _CS = \"CopySource\";\nconst _CSHA = \"ChecksumSHA1\";\nconst _CSHAh = \"ChecksumSHA256\";\nconst _CSIM = \"CopySourceIfMatch\";\nconst _CSIMS = \"CopySourceIfModifiedSince\";\nconst _CSINM = \"CopySourceIfNoneMatch\";\nconst _CSIUS = \"CopySourceIfUnmodifiedSince\";\nconst _CSO = \"CreateSessionOutput\";\nconst _CSR = \"CreateSessionResult\";\nconst _CSRo = \"CopySourceRange\";\nconst _CSRr = \"CreateSessionRequest\";\nconst _CSSSECA = \"CopySourceSSECustomerAlgorithm\";\nconst _CSSSECK = \"CopySourceSSECustomerKey\";\nconst _CSSSECKMD = \"CopySourceSSECustomerKeyMD5\";\nconst _CSV = \"CSV\";\nconst _CSVI = \"CopySourceVersionId\";\nconst _CSVIn = \"CSVInput\";\nconst _CSVO = \"CSVOutput\";\nconst _CSo = \"ConfigurationState\";\nconst _CSr = \"CreateSession\";\nconst _CT = \"ChecksumType\";\nconst _CT_ = \"Content-Type\";\nconst _CTl = \"ClientToken\";\nconst _CTo = \"ContentType\";\nconst _CTom = \"CompressionType\";\nconst _CTon = \"ContinuationToken\";\nconst _Co = \"Condition\";\nconst _Cod = \"Code\";\nconst _Com = \"Comments\";\nconst _Con = \"Contents\";\nconst _Cont = \"Cont\";\nconst _Cr = \"Credentials\";\nconst _D = \"Days\";\nconst _DAI = \"DaysAfterInitiation\";\nconst _DB = \"DeleteBucket\";\nconst _DBAC = \"DeleteBucketAnalyticsConfiguration\";\nconst _DBACR = \"DeleteBucketAnalyticsConfigurationRequest\";\nconst _DBC = \"DeleteBucketCors\";\nconst _DBCR = \"DeleteBucketCorsRequest\";\nconst _DBE = \"DeleteBucketEncryption\";\nconst _DBER = \"DeleteBucketEncryptionRequest\";\nconst _DBIC = \"DeleteBucketInventoryConfiguration\";\nconst _DBICR = \"DeleteBucketInventoryConfigurationRequest\";\nconst _DBITC = \"DeleteBucketIntelligentTieringConfiguration\";\nconst _DBITCR = \"DeleteBucketIntelligentTieringConfigurationRequest\";\nconst _DBL = \"DeleteBucketLifecycle\";\nconst _DBLR = \"DeleteBucketLifecycleRequest\";\nconst _DBMC = \"DeleteBucketMetadataConfiguration\";\nconst _DBMCR = \"DeleteBucketMetadataConfigurationRequest\";\nconst _DBMCRe = \"DeleteBucketMetricsConfigurationRequest\";\nconst _DBMCe = \"DeleteBucketMetricsConfiguration\";\nconst _DBMTC = \"DeleteBucketMetadataTableConfiguration\";\nconst _DBMTCR = \"DeleteBucketMetadataTableConfigurationRequest\";\nconst _DBOC = \"DeleteBucketOwnershipControls\";\nconst _DBOCR = \"DeleteBucketOwnershipControlsRequest\";\nconst _DBP = \"DeleteBucketPolicy\";\nconst _DBPR = \"DeleteBucketPolicyRequest\";\nconst _DBR = \"DeleteBucketRequest\";\nconst _DBRR = \"DeleteBucketReplicationRequest\";\nconst _DBRe = \"DeleteBucketReplication\";\nconst _DBT = \"DeleteBucketTagging\";\nconst _DBTR = \"DeleteBucketTaggingRequest\";\nconst _DBW = \"DeleteBucketWebsite\";\nconst _DBWR = \"DeleteBucketWebsiteRequest\";\nconst _DE = \"DataExport\";\nconst _DIM = \"DestinationIfMatch\";\nconst _DIMS = \"DestinationIfModifiedSince\";\nconst _DINM = \"DestinationIfNoneMatch\";\nconst _DIUS = \"DestinationIfUnmodifiedSince\";\nconst _DM = \"DeleteMarker\";\nconst _DME = \"DeleteMarkerEntry\";\nconst _DMR = \"DeleteMarkerReplication\";\nconst _DMVI = \"DeleteMarkerVersionId\";\nconst _DMe = \"DeleteMarkers\";\nconst _DN = \"DisplayName\";\nconst _DO = \"DeletedObject\";\nconst _DOO = \"DeleteObjectOutput\";\nconst _DOOe = \"DeleteObjectsOutput\";\nconst _DOR = \"DeleteObjectRequest\";\nconst _DORe = \"DeleteObjectsRequest\";\nconst _DOT = \"DeleteObjectTagging\";\nconst _DOTO = \"DeleteObjectTaggingOutput\";\nconst _DOTR = \"DeleteObjectTaggingRequest\";\nconst _DOe = \"DeletedObjects\";\nconst _DOel = \"DeleteObject\";\nconst _DOele = \"DeleteObjects\";\nconst _DPAB = \"DeletePublicAccessBlock\";\nconst _DPABR = \"DeletePublicAccessBlockRequest\";\nconst _DR = \"DataRedundancy\";\nconst _DRe = \"DefaultRetention\";\nconst _DRel = \"DeleteResult\";\nconst _DRes = \"DestinationResult\";\nconst _Da = \"Date\";\nconst _De = \"Delete\";\nconst _Del = \"Deleted\";\nconst _Deli = \"Delimiter\";\nconst _Des = \"Destination\";\nconst _Desc = \"Description\";\nconst _Det = \"Details\";\nconst _E = \"Expiration\";\nconst _EA = \"EmailAddress\";\nconst _EBC = \"EventBridgeConfiguration\";\nconst _EBO = \"ExpectedBucketOwner\";\nconst _EC = \"EncryptionConfiguration\";\nconst _ECr = \"ErrorCode\";\nconst _ED = \"ErrorDetails\";\nconst _EDr = \"ErrorDocument\";\nconst _EE = \"EndEvent\";\nconst _EH = \"ExposeHeaders\";\nconst _EHx = \"ExposeHeader\";\nconst _EM = \"ErrorMessage\";\nconst _EODM = \"ExpiredObjectDeleteMarker\";\nconst _EOR = \"ExistingObjectReplication\";\nconst _ES = \"ExpiresString\";\nconst _ESBO = \"ExpectedSourceBucketOwner\";\nconst _ET = \"EncryptionType\";\nconst _ETL = \"EncryptionTypeList\";\nconst _ETM = \"EncryptionTypeMismatch\";\nconst _ETa = \"ETag\";\nconst _ETn = \"EncodingType\";\nconst _ETv = \"EventThreshold\";\nconst _ETx = \"ExpressionType\";\nconst _En = \"Encryption\";\nconst _Ena = \"Enabled\";\nconst _End = \"End\";\nconst _Er = \"Errors\";\nconst _Err = \"Error\";\nconst _Ev = \"Events\";\nconst _Eve = \"Event\";\nconst _Ex = \"Expires\";\nconst _Exp = \"Expression\";\nconst _F = \"Filter\";\nconst _FD = \"FieldDelimiter\";\nconst _FHI = \"FileHeaderInfo\";\nconst _FO = \"FetchOwner\";\nconst _FR = \"FilterRule\";\nconst _FRL = \"FilterRuleList\";\nconst _FRi = \"FilterRules\";\nconst _Fi = \"Field\";\nconst _Fo = \"Format\";\nconst _Fr = \"Frequency\";\nconst _G = \"Grants\";\nconst _GBA = \"GetBucketAbac\";\nconst _GBAC = \"GetBucketAccelerateConfiguration\";\nconst _GBACO = \"GetBucketAccelerateConfigurationOutput\";\nconst _GBACOe = \"GetBucketAnalyticsConfigurationOutput\";\nconst _GBACR = \"GetBucketAccelerateConfigurationRequest\";\nconst _GBACRe = \"GetBucketAnalyticsConfigurationRequest\";\nconst _GBACe = \"GetBucketAnalyticsConfiguration\";\nconst _GBAO = \"GetBucketAbacOutput\";\nconst _GBAOe = \"GetBucketAclOutput\";\nconst _GBAR = \"GetBucketAbacRequest\";\nconst _GBARe = \"GetBucketAclRequest\";\nconst _GBAe = \"GetBucketAcl\";\nconst _GBC = \"GetBucketCors\";\nconst _GBCO = \"GetBucketCorsOutput\";\nconst _GBCR = \"GetBucketCorsRequest\";\nconst _GBE = \"GetBucketEncryption\";\nconst _GBEO = \"GetBucketEncryptionOutput\";\nconst _GBER = \"GetBucketEncryptionRequest\";\nconst _GBIC = \"GetBucketInventoryConfiguration\";\nconst _GBICO = \"GetBucketInventoryConfigurationOutput\";\nconst _GBICR = \"GetBucketInventoryConfigurationRequest\";\nconst _GBITC = \"GetBucketIntelligentTieringConfiguration\";\nconst _GBITCO = \"GetBucketIntelligentTieringConfigurationOutput\";\nconst _GBITCR = \"GetBucketIntelligentTieringConfigurationRequest\";\nconst _GBL = \"GetBucketLocation\";\nconst _GBLC = \"GetBucketLifecycleConfiguration\";\nconst _GBLCO = \"GetBucketLifecycleConfigurationOutput\";\nconst _GBLCR = \"GetBucketLifecycleConfigurationRequest\";\nconst _GBLO = \"GetBucketLocationOutput\";\nconst _GBLOe = \"GetBucketLoggingOutput\";\nconst _GBLR = \"GetBucketLocationRequest\";\nconst _GBLRe = \"GetBucketLoggingRequest\";\nconst _GBLe = \"GetBucketLogging\";\nconst _GBMC = \"GetBucketMetadataConfiguration\";\nconst _GBMCO = \"GetBucketMetadataConfigurationOutput\";\nconst _GBMCOe = \"GetBucketMetricsConfigurationOutput\";\nconst _GBMCR = \"GetBucketMetadataConfigurationResult\";\nconst _GBMCRe = \"GetBucketMetadataConfigurationRequest\";\nconst _GBMCRet = \"GetBucketMetricsConfigurationRequest\";\nconst _GBMCe = \"GetBucketMetricsConfiguration\";\nconst _GBMTC = \"GetBucketMetadataTableConfiguration\";\nconst _GBMTCO = \"GetBucketMetadataTableConfigurationOutput\";\nconst _GBMTCR = \"GetBucketMetadataTableConfigurationResult\";\nconst _GBMTCRe = \"GetBucketMetadataTableConfigurationRequest\";\nconst _GBNC = \"GetBucketNotificationConfiguration\";\nconst _GBNCR = \"GetBucketNotificationConfigurationRequest\";\nconst _GBOC = \"GetBucketOwnershipControls\";\nconst _GBOCO = \"GetBucketOwnershipControlsOutput\";\nconst _GBOCR = \"GetBucketOwnershipControlsRequest\";\nconst _GBP = \"GetBucketPolicy\";\nconst _GBPO = \"GetBucketPolicyOutput\";\nconst _GBPR = \"GetBucketPolicyRequest\";\nconst _GBPS = \"GetBucketPolicyStatus\";\nconst _GBPSO = \"GetBucketPolicyStatusOutput\";\nconst _GBPSR = \"GetBucketPolicyStatusRequest\";\nconst _GBR = \"GetBucketReplication\";\nconst _GBRO = \"GetBucketReplicationOutput\";\nconst _GBRP = \"GetBucketRequestPayment\";\nconst _GBRPO = \"GetBucketRequestPaymentOutput\";\nconst _GBRPR = \"GetBucketRequestPaymentRequest\";\nconst _GBRR = \"GetBucketReplicationRequest\";\nconst _GBT = \"GetBucketTagging\";\nconst _GBTO = \"GetBucketTaggingOutput\";\nconst _GBTR = \"GetBucketTaggingRequest\";\nconst _GBV = \"GetBucketVersioning\";\nconst _GBVO = \"GetBucketVersioningOutput\";\nconst _GBVR = \"GetBucketVersioningRequest\";\nconst _GBW = \"GetBucketWebsite\";\nconst _GBWO = \"GetBucketWebsiteOutput\";\nconst _GBWR = \"GetBucketWebsiteRequest\";\nconst _GFC = \"GrantFullControl\";\nconst _GJP = \"GlacierJobParameters\";\nconst _GO = \"GetObject\";\nconst _GOA = \"GetObjectAcl\";\nconst _GOAO = \"GetObjectAclOutput\";\nconst _GOAOe = \"GetObjectAttributesOutput\";\nconst _GOAP = \"GetObjectAttributesParts\";\nconst _GOAR = \"GetObjectAclRequest\";\nconst _GOARe = \"GetObjectAttributesResponse\";\nconst _GOARet = \"GetObjectAttributesRequest\";\nconst _GOAe = \"GetObjectAttributes\";\nconst _GOLC = \"GetObjectLockConfiguration\";\nconst _GOLCO = \"GetObjectLockConfigurationOutput\";\nconst _GOLCR = \"GetObjectLockConfigurationRequest\";\nconst _GOLH = \"GetObjectLegalHold\";\nconst _GOLHO = \"GetObjectLegalHoldOutput\";\nconst _GOLHR = \"GetObjectLegalHoldRequest\";\nconst _GOO = \"GetObjectOutput\";\nconst _GOR = \"GetObjectRequest\";\nconst _GORO = \"GetObjectRetentionOutput\";\nconst _GORR = \"GetObjectRetentionRequest\";\nconst _GORe = \"GetObjectRetention\";\nconst _GOT = \"GetObjectTagging\";\nconst _GOTO = \"GetObjectTaggingOutput\";\nconst _GOTOe = \"GetObjectTorrentOutput\";\nconst _GOTR = \"GetObjectTaggingRequest\";\nconst _GOTRe = \"GetObjectTorrentRequest\";\nconst _GOTe = \"GetObjectTorrent\";\nconst _GPAB = \"GetPublicAccessBlock\";\nconst _GPABO = \"GetPublicAccessBlockOutput\";\nconst _GPABR = \"GetPublicAccessBlockRequest\";\nconst _GR = \"GrantRead\";\nconst _GRACP = \"GrantReadACP\";\nconst _GW = \"GrantWrite\";\nconst _GWACP = \"GrantWriteACP\";\nconst _Gr = \"Grant\";\nconst _Gra = \"Grantee\";\nconst _HB = \"HeadBucket\";\nconst _HBO = \"HeadBucketOutput\";\nconst _HBR = \"HeadBucketRequest\";\nconst _HECRE = \"HttpErrorCodeReturnedEquals\";\nconst _HN = \"HostName\";\nconst _HO = \"HeadObject\";\nconst _HOO = \"HeadObjectOutput\";\nconst _HOR = \"HeadObjectRequest\";\nconst _HRC = \"HttpRedirectCode\";\nconst _I = \"Id\";\nconst _IC = \"InventoryConfiguration\";\nconst _ICL = \"InventoryConfigurationList\";\nconst _ID = \"ID\";\nconst _IDn = \"IndexDocument\";\nconst _IDnv = \"InventoryDestination\";\nconst _IE = \"IsEnabled\";\nconst _IEn = \"InventoryEncryption\";\nconst _IF = \"InventoryFilter\";\nconst _IL = \"IsLatest\";\nconst _IM = \"IfMatch\";\nconst _IMIT = \"IfMatchInitiatedTime\";\nconst _IMLMT = \"IfMatchLastModifiedTime\";\nconst _IMS = \"IfMatchSize\";\nconst _IMS_ = \"If-Modified-Since\";\nconst _IMSf = \"IfModifiedSince\";\nconst _IMUR = \"InitiateMultipartUploadResult\";\nconst _IM_ = \"If-Match\";\nconst _INM = \"IfNoneMatch\";\nconst _INM_ = \"If-None-Match\";\nconst _IOF = \"InventoryOptionalFields\";\nconst _IOS = \"InvalidObjectState\";\nconst _IOV = \"IncludedObjectVersions\";\nconst _IP = \"IsPublic\";\nconst _IPA = \"IgnorePublicAcls\";\nconst _IPM = \"IdempotencyParameterMismatch\";\nconst _IR = \"InvalidRequest\";\nconst _IRIP = \"IsRestoreInProgress\";\nconst _IS = \"InputSerialization\";\nconst _ISBD = \"InventoryS3BucketDestination\";\nconst _ISn = \"InventorySchedule\";\nconst _IT = \"IsTruncated\";\nconst _ITAO = \"IntelligentTieringAndOperator\";\nconst _ITC = \"IntelligentTieringConfiguration\";\nconst _ITCL = \"IntelligentTieringConfigurationList\";\nconst _ITCR = \"InventoryTableConfigurationResult\";\nconst _ITCU = \"InventoryTableConfigurationUpdates\";\nconst _ITCn = \"InventoryTableConfiguration\";\nconst _ITF = \"IntelligentTieringFilter\";\nconst _IUS = \"IfUnmodifiedSince\";\nconst _IUS_ = \"If-Unmodified-Since\";\nconst _IWO = \"InvalidWriteOffset\";\nconst _In = \"Initiator\";\nconst _Ini = \"Initiated\";\nconst _JSON = \"JSON\";\nconst _JSONI = \"JSONInput\";\nconst _JSONO = \"JSONOutput\";\nconst _JTC = \"JournalTableConfiguration\";\nconst _JTCR = \"JournalTableConfigurationResult\";\nconst _JTCU = \"JournalTableConfigurationUpdates\";\nconst _K = \"Key\";\nconst _KC = \"KeyCount\";\nconst _KI = \"KeyId\";\nconst _KKA = \"KmsKeyArn\";\nconst _KM = \"KeyMarker\";\nconst _KMSC = \"KMSContext\";\nconst _KMSKA = \"KMSKeyArn\";\nconst _KMSKI = \"KMSKeyId\";\nconst _KMSMKID = \"KMSMasterKeyID\";\nconst _KPE = \"KeyPrefixEquals\";\nconst _L = \"Location\";\nconst _LAMBR = \"ListAllMyBucketsResult\";\nconst _LAMDBR = \"ListAllMyDirectoryBucketsResult\";\nconst _LB = \"ListBuckets\";\nconst _LBAC = \"ListBucketAnalyticsConfigurations\";\nconst _LBACO = \"ListBucketAnalyticsConfigurationsOutput\";\nconst _LBACR = \"ListBucketAnalyticsConfigurationResult\";\nconst _LBACRi = \"ListBucketAnalyticsConfigurationsRequest\";\nconst _LBIC = \"ListBucketInventoryConfigurations\";\nconst _LBICO = \"ListBucketInventoryConfigurationsOutput\";\nconst _LBICR = \"ListBucketInventoryConfigurationsRequest\";\nconst _LBITC = \"ListBucketIntelligentTieringConfigurations\";\nconst _LBITCO = \"ListBucketIntelligentTieringConfigurationsOutput\";\nconst _LBITCR = \"ListBucketIntelligentTieringConfigurationsRequest\";\nconst _LBMC = \"ListBucketMetricsConfigurations\";\nconst _LBMCO = \"ListBucketMetricsConfigurationsOutput\";\nconst _LBMCR = \"ListBucketMetricsConfigurationsRequest\";\nconst _LBO = \"ListBucketsOutput\";\nconst _LBR = \"ListBucketsRequest\";\nconst _LBRi = \"ListBucketResult\";\nconst _LC = \"LocationConstraint\";\nconst _LCi = \"LifecycleConfiguration\";\nconst _LDB = \"ListDirectoryBuckets\";\nconst _LDBO = \"ListDirectoryBucketsOutput\";\nconst _LDBR = \"ListDirectoryBucketsRequest\";\nconst _LE = \"LoggingEnabled\";\nconst _LEi = \"LifecycleExpiration\";\nconst _LFA = \"LambdaFunctionArn\";\nconst _LFC = \"LambdaFunctionConfiguration\";\nconst _LFCL = \"LambdaFunctionConfigurationList\";\nconst _LFCa = \"LambdaFunctionConfigurations\";\nconst _LH = \"LegalHold\";\nconst _LI = \"LocationInfo\";\nconst _LICR = \"ListInventoryConfigurationsResult\";\nconst _LM = \"LastModified\";\nconst _LMCR = \"ListMetricsConfigurationsResult\";\nconst _LMT = \"LastModifiedTime\";\nconst _LMU = \"ListMultipartUploads\";\nconst _LMUO = \"ListMultipartUploadsOutput\";\nconst _LMUR = \"ListMultipartUploadsResult\";\nconst _LMURi = \"ListMultipartUploadsRequest\";\nconst _LM_ = \"Last-Modified\";\nconst _LO = \"ListObjects\";\nconst _LOO = \"ListObjectsOutput\";\nconst _LOR = \"ListObjectsRequest\";\nconst _LOV = \"ListObjectsV2\";\nconst _LOVO = \"ListObjectsV2Output\";\nconst _LOVOi = \"ListObjectVersionsOutput\";\nconst _LOVR = \"ListObjectsV2Request\";\nconst _LOVRi = \"ListObjectVersionsRequest\";\nconst _LOVi = \"ListObjectVersions\";\nconst _LP = \"ListParts\";\nconst _LPO = \"ListPartsOutput\";\nconst _LPR = \"ListPartsResult\";\nconst _LPRi = \"ListPartsRequest\";\nconst _LR = \"LifecycleRule\";\nconst _LRAO = \"LifecycleRuleAndOperator\";\nconst _LRF = \"LifecycleRuleFilter\";\nconst _LRi = \"LifecycleRules\";\nconst _LVR = \"ListVersionsResult\";\nconst _M = \"Metadata\";\nconst _MAO = \"MetricsAndOperator\";\nconst _MAS = \"MaxAgeSeconds\";\nconst _MB = \"MaxBuckets\";\nconst _MC = \"MetadataConfiguration\";\nconst _MCL = \"MetricsConfigurationList\";\nconst _MCR = \"MetadataConfigurationResult\";\nconst _MCe = \"MetricsConfiguration\";\nconst _MD = \"MetadataDirective\";\nconst _MDB = \"MaxDirectoryBuckets\";\nconst _MDf = \"MfaDelete\";\nconst _ME = \"MetadataEntry\";\nconst _MF = \"MetricsFilter\";\nconst _MFA = \"MFA\";\nconst _MFAD = \"MFADelete\";\nconst _MK = \"MaxKeys\";\nconst _MM = \"MissingMeta\";\nconst _MOS = \"MpuObjectSize\";\nconst _MP = \"MaxParts\";\nconst _MTC = \"MetadataTableConfiguration\";\nconst _MTCR = \"MetadataTableConfigurationResult\";\nconst _MTEC = \"MetadataTableEncryptionConfiguration\";\nconst _MU = \"MultipartUpload\";\nconst _MUL = \"MultipartUploadList\";\nconst _MUa = \"MaxUploads\";\nconst _Ma = \"Marker\";\nconst _Me = \"Metrics\";\nconst _Mes = \"Message\";\nconst _Mi = \"Minutes\";\nconst _Mo = \"Mode\";\nconst _N = \"Name\";\nconst _NC = \"NotificationConfiguration\";\nconst _NCF = \"NotificationConfigurationFilter\";\nconst _NCT = \"NextContinuationToken\";\nconst _ND = \"NoncurrentDays\";\nconst _NEKKAS = \"NonEmptyKmsKeyArnString\";\nconst _NF = \"NotFound\";\nconst _NKM = \"NextKeyMarker\";\nconst _NM = \"NextMarker\";\nconst _NNV = \"NewerNoncurrentVersions\";\nconst _NPNM = \"NextPartNumberMarker\";\nconst _NSB = \"NoSuchBucket\";\nconst _NSK = \"NoSuchKey\";\nconst _NSU = \"NoSuchUpload\";\nconst _NUIM = \"NextUploadIdMarker\";\nconst _NVE = \"NoncurrentVersionExpiration\";\nconst _NVIM = \"NextVersionIdMarker\";\nconst _NVT = \"NoncurrentVersionTransitions\";\nconst _NVTL = \"NoncurrentVersionTransitionList\";\nconst _NVTo = \"NoncurrentVersionTransition\";\nconst _O = \"Owner\";\nconst _OA = \"ObjectAttributes\";\nconst _OAIATE = \"ObjectAlreadyInActiveTierError\";\nconst _OC = \"OwnershipControls\";\nconst _OCR = \"OwnershipControlsRule\";\nconst _OCRw = \"OwnershipControlsRules\";\nconst _OE = \"ObjectEncryption\";\nconst _OF = \"OptionalFields\";\nconst _OI = \"ObjectIdentifier\";\nconst _OIL = \"ObjectIdentifierList\";\nconst _OL = \"OutputLocation\";\nconst _OLC = \"ObjectLockConfiguration\";\nconst _OLE = \"ObjectLockEnabled\";\nconst _OLEFB = \"ObjectLockEnabledForBucket\";\nconst _OLLH = \"ObjectLockLegalHold\";\nconst _OLLHS = \"ObjectLockLegalHoldStatus\";\nconst _OLM = \"ObjectLockMode\";\nconst _OLR = \"ObjectLockRetention\";\nconst _OLRUD = \"ObjectLockRetainUntilDate\";\nconst _OLRb = \"ObjectLockRule\";\nconst _OLb = \"ObjectList\";\nconst _ONIATE = \"ObjectNotInActiveTierError\";\nconst _OO = \"ObjectOwnership\";\nconst _OOA = \"OptionalObjectAttributes\";\nconst _OP = \"ObjectParts\";\nconst _OPb = \"ObjectPart\";\nconst _OS = \"ObjectSize\";\nconst _OSGT = \"ObjectSizeGreaterThan\";\nconst _OSLT = \"ObjectSizeLessThan\";\nconst _OSV = \"OutputSchemaVersion\";\nconst _OSu = \"OutputSerialization\";\nconst _OV = \"ObjectVersion\";\nconst _OVL = \"ObjectVersionList\";\nconst _Ob = \"Objects\";\nconst _Obj = \"Object\";\nconst _P = \"Prefix\";\nconst _PABC = \"PublicAccessBlockConfiguration\";\nconst _PBA = \"PutBucketAbac\";\nconst _PBAC = \"PutBucketAccelerateConfiguration\";\nconst _PBACR = \"PutBucketAccelerateConfigurationRequest\";\nconst _PBACRu = \"PutBucketAnalyticsConfigurationRequest\";\nconst _PBACu = \"PutBucketAnalyticsConfiguration\";\nconst _PBAR = \"PutBucketAbacRequest\";\nconst _PBARu = \"PutBucketAclRequest\";\nconst _PBAu = \"PutBucketAcl\";\nconst _PBC = \"PutBucketCors\";\nconst _PBCR = \"PutBucketCorsRequest\";\nconst _PBE = \"PutBucketEncryption\";\nconst _PBER = \"PutBucketEncryptionRequest\";\nconst _PBIC = \"PutBucketInventoryConfiguration\";\nconst _PBICR = \"PutBucketInventoryConfigurationRequest\";\nconst _PBITC = \"PutBucketIntelligentTieringConfiguration\";\nconst _PBITCR = \"PutBucketIntelligentTieringConfigurationRequest\";\nconst _PBL = \"PutBucketLogging\";\nconst _PBLC = \"PutBucketLifecycleConfiguration\";\nconst _PBLCO = \"PutBucketLifecycleConfigurationOutput\";\nconst _PBLCR = \"PutBucketLifecycleConfigurationRequest\";\nconst _PBLR = \"PutBucketLoggingRequest\";\nconst _PBMC = \"PutBucketMetricsConfiguration\";\nconst _PBMCR = \"PutBucketMetricsConfigurationRequest\";\nconst _PBNC = \"PutBucketNotificationConfiguration\";\nconst _PBNCR = \"PutBucketNotificationConfigurationRequest\";\nconst _PBOC = \"PutBucketOwnershipControls\";\nconst _PBOCR = \"PutBucketOwnershipControlsRequest\";\nconst _PBP = \"PutBucketPolicy\";\nconst _PBPR = \"PutBucketPolicyRequest\";\nconst _PBR = \"PutBucketReplication\";\nconst _PBRP = \"PutBucketRequestPayment\";\nconst _PBRPR = \"PutBucketRequestPaymentRequest\";\nconst _PBRR = \"PutBucketReplicationRequest\";\nconst _PBT = \"PutBucketTagging\";\nconst _PBTR = \"PutBucketTaggingRequest\";\nconst _PBV = \"PutBucketVersioning\";\nconst _PBVR = \"PutBucketVersioningRequest\";\nconst _PBW = \"PutBucketWebsite\";\nconst _PBWR = \"PutBucketWebsiteRequest\";\nconst _PC = \"PartsCount\";\nconst _PDS = \"PartitionDateSource\";\nconst _PE = \"ProgressEvent\";\nconst _PI = \"ParquetInput\";\nconst _PL = \"PartsList\";\nconst _PN = \"PartNumber\";\nconst _PNM = \"PartNumberMarker\";\nconst _PO = \"PutObject\";\nconst _POA = \"PutObjectAcl\";\nconst _POAO = \"PutObjectAclOutput\";\nconst _POAR = \"PutObjectAclRequest\";\nconst _POLC = \"PutObjectLockConfiguration\";\nconst _POLCO = \"PutObjectLockConfigurationOutput\";\nconst _POLCR = \"PutObjectLockConfigurationRequest\";\nconst _POLH = \"PutObjectLegalHold\";\nconst _POLHO = \"PutObjectLegalHoldOutput\";\nconst _POLHR = \"PutObjectLegalHoldRequest\";\nconst _POO = \"PutObjectOutput\";\nconst _POR = \"PutObjectRequest\";\nconst _PORO = \"PutObjectRetentionOutput\";\nconst _PORR = \"PutObjectRetentionRequest\";\nconst _PORu = \"PutObjectRetention\";\nconst _POT = \"PutObjectTagging\";\nconst _POTO = \"PutObjectTaggingOutput\";\nconst _POTR = \"PutObjectTaggingRequest\";\nconst _PP = \"PartitionedPrefix\";\nconst _PPAB = \"PutPublicAccessBlock\";\nconst _PPABR = \"PutPublicAccessBlockRequest\";\nconst _PS = \"PolicyStatus\";\nconst _Pa = \"Parts\";\nconst _Par = \"Part\";\nconst _Parq = \"Parquet\";\nconst _Pay = \"Payer\";\nconst _Payl = \"Payload\";\nconst _Pe = \"Permission\";\nconst _Po = \"Policy\";\nconst _Pr = \"Progress\";\nconst _Pri = \"Priority\";\nconst _Pro = \"Protocol\";\nconst _Q = \"Quiet\";\nconst _QA = \"QueueArn\";\nconst _QC = \"QuoteCharacter\";\nconst _QCL = \"QueueConfigurationList\";\nconst _QCu = \"QueueConfigurations\";\nconst _QCue = \"QueueConfiguration\";\nconst _QEC = \"QuoteEscapeCharacter\";\nconst _QF = \"QuoteFields\";\nconst _Qu = \"Queue\";\nconst _R = \"Rules\";\nconst _RART = \"RedirectAllRequestsTo\";\nconst _RC = \"RequestCharged\";\nconst _RCC = \"ResponseCacheControl\";\nconst _RCD = \"ResponseContentDisposition\";\nconst _RCE = \"ResponseContentEncoding\";\nconst _RCL = \"ResponseContentLanguage\";\nconst _RCT = \"ResponseContentType\";\nconst _RCe = \"ReplicationConfiguration\";\nconst _RD = \"RecordDelimiter\";\nconst _RE = \"ResponseExpires\";\nconst _RED = \"RestoreExpiryDate\";\nconst _REe = \"RecordExpiration\";\nconst _REec = \"RecordsEvent\";\nconst _RKKID = \"ReplicaKmsKeyID\";\nconst _RKPW = \"ReplaceKeyPrefixWith\";\nconst _RKW = \"ReplaceKeyWith\";\nconst _RM = \"ReplicaModifications\";\nconst _RO = \"RenameObject\";\nconst _ROO = \"RenameObjectOutput\";\nconst _ROOe = \"RestoreObjectOutput\";\nconst _ROP = \"RestoreOutputPath\";\nconst _ROR = \"RenameObjectRequest\";\nconst _RORe = \"RestoreObjectRequest\";\nconst _ROe = \"RestoreObject\";\nconst _RP = \"RequestPayer\";\nconst _RPB = \"RestrictPublicBuckets\";\nconst _RPC = \"RequestPaymentConfiguration\";\nconst _RPe = \"RequestProgress\";\nconst _RR = \"RoutingRules\";\nconst _RRAO = \"ReplicationRuleAndOperator\";\nconst _RRF = \"ReplicationRuleFilter\";\nconst _RRe = \"ReplicationRule\";\nconst _RRep = \"ReplicationRules\";\nconst _RReq = \"RequestRoute\";\nconst _RRes = \"RestoreRequest\";\nconst _RRo = \"RoutingRule\";\nconst _RS = \"ReplicationStatus\";\nconst _RSe = \"RestoreStatus\";\nconst _RSen = \"RenameSource\";\nconst _RT = \"ReplicationTime\";\nconst _RTV = \"ReplicationTimeValue\";\nconst _RTe = \"RequestToken\";\nconst _RUD = \"RetainUntilDate\";\nconst _Ra = \"Range\";\nconst _Re = \"Restore\";\nconst _Rec = \"Records\";\nconst _Red = \"Redirect\";\nconst _Ret = \"Retention\";\nconst _Ro = \"Role\";\nconst _Ru = \"Rule\";\nconst _S = \"Status\";\nconst _SA = \"StartAfter\";\nconst _SAK = \"SecretAccessKey\";\nconst _SAs = \"SseAlgorithm\";\nconst _SB = \"StreamingBlob\";\nconst _SBD = \"S3BucketDestination\";\nconst _SC = \"StorageClass\";\nconst _SCA = \"StorageClassAnalysis\";\nconst _SCADE = \"StorageClassAnalysisDataExport\";\nconst _SCV = \"SessionCredentialValue\";\nconst _SCe = \"SessionCredentials\";\nconst _SCt = \"StatusCode\";\nconst _SDV = \"SkipDestinationValidation\";\nconst _SE = \"StatsEvent\";\nconst _SIM = \"SourceIfMatch\";\nconst _SIMS = \"SourceIfModifiedSince\";\nconst _SINM = \"SourceIfNoneMatch\";\nconst _SIUS = \"SourceIfUnmodifiedSince\";\nconst _SK = \"SSE-KMS\";\nconst _SKEO = \"SseKmsEncryptedObjects\";\nconst _SKF = \"S3KeyFilter\";\nconst _SKe = \"S3Key\";\nconst _SL = \"S3Location\";\nconst _SM = \"SessionMode\";\nconst _SOC = \"SelectObjectContent\";\nconst _SOCES = \"SelectObjectContentEventStream\";\nconst _SOCO = \"SelectObjectContentOutput\";\nconst _SOCR = \"SelectObjectContentRequest\";\nconst _SP = \"SelectParameters\";\nconst _SPi = \"SimplePrefix\";\nconst _SR = \"ScanRange\";\nconst _SS = \"SSE-S3\";\nconst _SSC = \"SourceSelectionCriteria\";\nconst _SSE = \"ServerSideEncryption\";\nconst _SSEA = \"SSEAlgorithm\";\nconst _SSEBD = \"ServerSideEncryptionByDefault\";\nconst _SSEC = \"ServerSideEncryptionConfiguration\";\nconst _SSECA = \"SSECustomerAlgorithm\";\nconst _SSECK = \"SSECustomerKey\";\nconst _SSECKMD = \"SSECustomerKeyMD5\";\nconst _SSEKMS = \"SSEKMS\";\nconst _SSEKMSE = \"SSEKMSEncryption\";\nconst _SSEKMSEC = \"SSEKMSEncryptionContext\";\nconst _SSEKMSKI = \"SSEKMSKeyId\";\nconst _SSER = \"ServerSideEncryptionRule\";\nconst _SSERe = \"ServerSideEncryptionRules\";\nconst _SSES = \"SSES3\";\nconst _ST = \"SessionToken\";\nconst _STD = \"S3TablesDestination\";\nconst _STDR = \"S3TablesDestinationResult\";\nconst _S_ = \"S3\";\nconst _Sc = \"Schedule\";\nconst _Si = \"Size\";\nconst _St = \"Start\";\nconst _Sta = \"Stats\";\nconst _Su = \"Suffix\";\nconst _T = \"Tags\";\nconst _TA = \"TableArn\";\nconst _TAo = \"TopicArn\";\nconst _TB = \"TargetBucket\";\nconst _TBA = \"TableBucketArn\";\nconst _TBT = \"TableBucketType\";\nconst _TC = \"TagCount\";\nconst _TCL = \"TopicConfigurationList\";\nconst _TCo = \"TopicConfigurations\";\nconst _TCop = \"TopicConfiguration\";\nconst _TD = \"TaggingDirective\";\nconst _TDMOS = \"TransitionDefaultMinimumObjectSize\";\nconst _TG = \"TargetGrants\";\nconst _TGa = \"TargetGrant\";\nconst _TL = \"TieringList\";\nconst _TLr = \"TransitionList\";\nconst _TMP = \"TooManyParts\";\nconst _TN = \"TableNamespace\";\nconst _TNa = \"TableName\";\nconst _TOKF = \"TargetObjectKeyFormat\";\nconst _TP = \"TargetPrefix\";\nconst _TPC = \"TotalPartsCount\";\nconst _TS = \"TagSet\";\nconst _TSa = \"TableStatus\";\nconst _Ta = \"Tag\";\nconst _Tag = \"Tagging\";\nconst _Ti = \"Tier\";\nconst _Tie = \"Tierings\";\nconst _Tier = \"Tiering\";\nconst _Tim = \"Time\";\nconst _To = \"Token\";\nconst _Top = \"Topic\";\nconst _Tr = \"Transitions\";\nconst _Tra = \"Transition\";\nconst _Ty = \"Type\";\nconst _U = \"Uploads\";\nconst _UBMITC = \"UpdateBucketMetadataInventoryTableConfiguration\";\nconst _UBMITCR = \"UpdateBucketMetadataInventoryTableConfigurationRequest\";\nconst _UBMJTC = \"UpdateBucketMetadataJournalTableConfiguration\";\nconst _UBMJTCR = \"UpdateBucketMetadataJournalTableConfigurationRequest\";\nconst _UI = \"UploadId\";\nconst _UIM = \"UploadIdMarker\";\nconst _UM = \"UserMetadata\";\nconst _UOE = \"UpdateObjectEncryption\";\nconst _UOER = \"UpdateObjectEncryptionRequest\";\nconst _UOERp = \"UpdateObjectEncryptionResponse\";\nconst _UP = \"UploadPart\";\nconst _UPC = \"UploadPartCopy\";\nconst _UPCO = \"UploadPartCopyOutput\";\nconst _UPCR = \"UploadPartCopyRequest\";\nconst _UPO = \"UploadPartOutput\";\nconst _UPR = \"UploadPartRequest\";\nconst _URI = \"URI\";\nconst _Up = \"Upload\";\nconst _V = \"Value\";\nconst _VC = \"VersioningConfiguration\";\nconst _VI = \"VersionId\";\nconst _VIM = \"VersionIdMarker\";\nconst _Ve = \"Versions\";\nconst _Ver = \"Version\";\nconst _WC = \"WebsiteConfiguration\";\nconst _WGOR = \"WriteGetObjectResponse\";\nconst _WGORR = \"WriteGetObjectResponseRequest\";\nconst _WOB = \"WriteOffsetBytes\";\nconst _WRL = \"WebsiteRedirectLocation\";\nconst _Y = \"Years\";\nconst _ar = \"accept-ranges\";\nconst _br = \"bucket-region\";\nconst _c = \"client\";\nconst _ct = \"continuation-token\";\nconst _d = \"delimiter\";\nconst _e = \"error\";\nconst _eP = \"eventPayload\";\nconst _en = \"endpoint\";\nconst _et = \"encoding-type\";\nconst _fo = \"fetch-owner\";\nconst _h = \"http\";\nconst _hC = \"httpChecksum\";\nconst _hE = \"httpError\";\nconst _hH = \"httpHeader\";\nconst _hL = \"hostLabel\";\nconst _hP = \"httpPayload\";\nconst _hPH = \"httpPrefixHeaders\";\nconst _hQ = \"httpQuery\";\nconst _hi = \"http://www.w3.org/2001/XMLSchema-instance\";\nconst _i = \"id\";\nconst _iT = \"idempotencyToken\";\nconst _km = \"key-marker\";\nconst _m = \"marker\";\nconst _mb = \"max-buckets\";\nconst _mdb = \"max-directory-buckets\";\nconst _mk = \"max-keys\";\nconst _mp = \"max-parts\";\nconst _mu = \"max-uploads\";\nconst _p = \"prefix\";\nconst _pN = \"partNumber\";\nconst _pnm = \"part-number-marker\";\nconst _rcc = \"response-cache-control\";\nconst _rcd = \"response-content-disposition\";\nconst _rce = \"response-content-encoding\";\nconst _rcl = \"response-content-language\";\nconst _rct = \"response-content-type\";\nconst _re = \"response-expires\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.s3\";\nconst _sa = \"start-after\";\nconst _st = \"streaming\";\nconst _uI = \"uploadId\";\nconst _uim = \"upload-id-marker\";\nconst _vI = \"versionId\";\nconst _vim = \"version-id-marker\";\nconst _x = \"xsi\";\nconst _xA = \"xmlAttribute\";\nconst _xF = \"xmlFlattened\";\nconst _xN = \"xmlName\";\nconst _xNm = \"xmlNamespace\";\nconst _xaa = \"x-amz-acl\";\nconst _xaad = \"x-amz-abort-date\";\nconst _xaapa = \"x-amz-access-point-alias\";\nconst _xaari = \"x-amz-abort-rule-id\";\nconst _xaas = \"x-amz-archive-status\";\nconst _xaba = \"x-amz-bucket-arn\";\nconst _xabgr = \"x-amz-bypass-governance-retention\";\nconst _xabln = \"x-amz-bucket-location-name\";\nconst _xablt = \"x-amz-bucket-location-type\";\nconst _xabn = \"x-amz-bucket-namespace\";\nconst _xabole = \"x-amz-bucket-object-lock-enabled\";\nconst _xabolt = \"x-amz-bucket-object-lock-token\";\nconst _xabr = \"x-amz-bucket-region\";\nconst _xaca = \"x-amz-checksum-algorithm\";\nconst _xacc = \"x-amz-checksum-crc32\";\nconst _xacc_ = \"x-amz-checksum-crc32c\";\nconst _xacc__ = \"x-amz-checksum-crc64nvme\";\nconst _xacm = \"x-amz-checksum-mode\";\nconst _xacrsba = \"x-amz-confirm-remove-self-bucket-access\";\nconst _xacs = \"x-amz-checksum-sha1\";\nconst _xacs_ = \"x-amz-checksum-sha256\";\nconst _xacs__ = \"x-amz-copy-source\";\nconst _xacsim = \"x-amz-copy-source-if-match\";\nconst _xacsims = \"x-amz-copy-source-if-modified-since\";\nconst _xacsinm = \"x-amz-copy-source-if-none-match\";\nconst _xacsius = \"x-amz-copy-source-if-unmodified-since\";\nconst _xacsm = \"x-amz-create-session-mode\";\nconst _xacsr = \"x-amz-copy-source-range\";\nconst _xacssseca = \"x-amz-copy-source-server-side-encryption-customer-algorithm\";\nconst _xacssseck = \"x-amz-copy-source-server-side-encryption-customer-key\";\nconst _xacssseckM = \"x-amz-copy-source-server-side-encryption-customer-key-MD5\";\nconst _xacsvi = \"x-amz-copy-source-version-id\";\nconst _xact = \"x-amz-checksum-type\";\nconst _xact_ = \"x-amz-client-token\";\nconst _xadm = \"x-amz-delete-marker\";\nconst _xae = \"x-amz-expiration\";\nconst _xaebo = \"x-amz-expected-bucket-owner\";\nconst _xafec = \"x-amz-fwd-error-code\";\nconst _xafem = \"x-amz-fwd-error-message\";\nconst _xafhCC = \"x-amz-fwd-header-Cache-Control\";\nconst _xafhCD = \"x-amz-fwd-header-Content-Disposition\";\nconst _xafhCE = \"x-amz-fwd-header-Content-Encoding\";\nconst _xafhCL = \"x-amz-fwd-header-Content-Language\";\nconst _xafhCR = \"x-amz-fwd-header-Content-Range\";\nconst _xafhCT = \"x-amz-fwd-header-Content-Type\";\nconst _xafhE = \"x-amz-fwd-header-ETag\";\nconst _xafhE_ = \"x-amz-fwd-header-Expires\";\nconst _xafhLM = \"x-amz-fwd-header-Last-Modified\";\nconst _xafhar = \"x-amz-fwd-header-accept-ranges\";\nconst _xafhxacc = \"x-amz-fwd-header-x-amz-checksum-crc32\";\nconst _xafhxacc_ = \"x-amz-fwd-header-x-amz-checksum-crc32c\";\nconst _xafhxacc__ = \"x-amz-fwd-header-x-amz-checksum-crc64nvme\";\nconst _xafhxacs = \"x-amz-fwd-header-x-amz-checksum-sha1\";\nconst _xafhxacs_ = \"x-amz-fwd-header-x-amz-checksum-sha256\";\nconst _xafhxadm = \"x-amz-fwd-header-x-amz-delete-marker\";\nconst _xafhxae = \"x-amz-fwd-header-x-amz-expiration\";\nconst _xafhxamm = \"x-amz-fwd-header-x-amz-missing-meta\";\nconst _xafhxampc = \"x-amz-fwd-header-x-amz-mp-parts-count\";\nconst _xafhxaollh = \"x-amz-fwd-header-x-amz-object-lock-legal-hold\";\nconst _xafhxaolm = \"x-amz-fwd-header-x-amz-object-lock-mode\";\nconst _xafhxaolrud = \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\";\nconst _xafhxar = \"x-amz-fwd-header-x-amz-restore\";\nconst _xafhxarc = \"x-amz-fwd-header-x-amz-request-charged\";\nconst _xafhxars = \"x-amz-fwd-header-x-amz-replication-status\";\nconst _xafhxasc = \"x-amz-fwd-header-x-amz-storage-class\";\nconst _xafhxasse = \"x-amz-fwd-header-x-amz-server-side-encryption\";\nconst _xafhxasseakki = \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xafhxassebke = \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xafhxasseca = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\";\nconst _xafhxasseckM = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5\";\nconst _xafhxatc = \"x-amz-fwd-header-x-amz-tagging-count\";\nconst _xafhxavi = \"x-amz-fwd-header-x-amz-version-id\";\nconst _xafs = \"x-amz-fwd-status\";\nconst _xagfc = \"x-amz-grant-full-control\";\nconst _xagr = \"x-amz-grant-read\";\nconst _xagra = \"x-amz-grant-read-acp\";\nconst _xagw = \"x-amz-grant-write\";\nconst _xagwa = \"x-amz-grant-write-acp\";\nconst _xaimit = \"x-amz-if-match-initiated-time\";\nconst _xaimlmt = \"x-amz-if-match-last-modified-time\";\nconst _xaims = \"x-amz-if-match-size\";\nconst _xam = \"x-amz-meta-\";\nconst _xam_ = \"x-amz-mfa\";\nconst _xamd = \"x-amz-metadata-directive\";\nconst _xamm = \"x-amz-missing-meta\";\nconst _xamos = \"x-amz-mp-object-size\";\nconst _xamp = \"x-amz-max-parts\";\nconst _xampc = \"x-amz-mp-parts-count\";\nconst _xaoa = \"x-amz-object-attributes\";\nconst _xaollh = \"x-amz-object-lock-legal-hold\";\nconst _xaolm = \"x-amz-object-lock-mode\";\nconst _xaolrud = \"x-amz-object-lock-retain-until-date\";\nconst _xaoo = \"x-amz-object-ownership\";\nconst _xaooa = \"x-amz-optional-object-attributes\";\nconst _xaos = \"x-amz-object-size\";\nconst _xapnm = \"x-amz-part-number-marker\";\nconst _xar = \"x-amz-restore\";\nconst _xarc = \"x-amz-request-charged\";\nconst _xarop = \"x-amz-restore-output-path\";\nconst _xarp = \"x-amz-request-payer\";\nconst _xarr = \"x-amz-request-route\";\nconst _xars = \"x-amz-replication-status\";\nconst _xars_ = \"x-amz-rename-source\";\nconst _xarsim = \"x-amz-rename-source-if-match\";\nconst _xarsims = \"x-amz-rename-source-if-modified-since\";\nconst _xarsinm = \"x-amz-rename-source-if-none-match\";\nconst _xarsius = \"x-amz-rename-source-if-unmodified-since\";\nconst _xart = \"x-amz-request-token\";\nconst _xasc = \"x-amz-storage-class\";\nconst _xasca = \"x-amz-sdk-checksum-algorithm\";\nconst _xasdv = \"x-amz-skip-destination-validation\";\nconst _xasebo = \"x-amz-source-expected-bucket-owner\";\nconst _xasse = \"x-amz-server-side-encryption\";\nconst _xasseakki = \"x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xassebke = \"x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xassec = \"x-amz-server-side-encryption-context\";\nconst _xasseca = \"x-amz-server-side-encryption-customer-algorithm\";\nconst _xasseck = \"x-amz-server-side-encryption-customer-key\";\nconst _xasseckM = \"x-amz-server-side-encryption-customer-key-MD5\";\nconst _xat = \"x-amz-tagging\";\nconst _xatc = \"x-amz-tagging-count\";\nconst _xatd = \"x-amz-tagging-directive\";\nconst _xatdmos = \"x-amz-transition-default-minimum-object-size\";\nconst _xavi = \"x-amz-version-id\";\nconst _xawob = \"x-amz-write-offset-bytes\";\nconst _xawrl = \"x-amz-website-redirect-location\";\nconst _xs = \"xsi:type\";\nconst n0 = \"com.amazonaws.s3\";\nimport { TypeRegistry } from \"@smithy/core/schema\";\nimport { AccessDenied, BucketAlreadyExists, BucketAlreadyOwnedByYou, EncryptionTypeMismatch, IdempotencyParameterMismatch, InvalidObjectState, InvalidRequest, InvalidWriteOffset, NoSuchBucket, NoSuchKey, NoSuchUpload, NotFound, ObjectAlreadyInActiveTierError, ObjectNotInActiveTierError, TooManyParts, } from \"../models/errors\";\nimport { S3ServiceException } from \"../models/S3ServiceException\";\nconst _s_registry = TypeRegistry.for(_s);\nexport var S3ServiceException$ = [-3, _s, \"S3ServiceException\", 0, [], []];\n_s_registry.registerError(S3ServiceException$, S3ServiceException);\nconst n0_registry = TypeRegistry.for(n0);\nexport var AccessDenied$ = [-3, n0, _AD,\n    { [_e]: _c, [_hE]: 403 },\n    [],\n    []\n];\nn0_registry.registerError(AccessDenied$, AccessDenied);\nexport var BucketAlreadyExists$ = [-3, n0, _BAE,\n    { [_e]: _c, [_hE]: 409 },\n    [],\n    []\n];\nn0_registry.registerError(BucketAlreadyExists$, BucketAlreadyExists);\nexport var BucketAlreadyOwnedByYou$ = [-3, n0, _BAOBY,\n    { [_e]: _c, [_hE]: 409 },\n    [],\n    []\n];\nn0_registry.registerError(BucketAlreadyOwnedByYou$, BucketAlreadyOwnedByYou);\nexport var EncryptionTypeMismatch$ = [-3, n0, _ETM,\n    { [_e]: _c, [_hE]: 400 },\n    [],\n    []\n];\nn0_registry.registerError(EncryptionTypeMismatch$, EncryptionTypeMismatch);\nexport var IdempotencyParameterMismatch$ = [-3, n0, _IPM,\n    { [_e]: _c, [_hE]: 400 },\n    [],\n    []\n];\nn0_registry.registerError(IdempotencyParameterMismatch$, IdempotencyParameterMismatch);\nexport var InvalidObjectState$ = [-3, n0, _IOS,\n    { [_e]: _c, [_hE]: 403 },\n    [_SC, _AT],\n    [0, 0]\n];\nn0_registry.registerError(InvalidObjectState$, InvalidObjectState);\nexport var InvalidRequest$ = [-3, n0, _IR,\n    { [_e]: _c, [_hE]: 400 },\n    [],\n    []\n];\nn0_registry.registerError(InvalidRequest$, InvalidRequest);\nexport var InvalidWriteOffset$ = [-3, n0, _IWO,\n    { [_e]: _c, [_hE]: 400 },\n    [],\n    []\n];\nn0_registry.registerError(InvalidWriteOffset$, InvalidWriteOffset);\nexport var NoSuchBucket$ = [-3, n0, _NSB,\n    { [_e]: _c, [_hE]: 404 },\n    [],\n    []\n];\nn0_registry.registerError(NoSuchBucket$, NoSuchBucket);\nexport var NoSuchKey$ = [-3, n0, _NSK,\n    { [_e]: _c, [_hE]: 404 },\n    [],\n    []\n];\nn0_registry.registerError(NoSuchKey$, NoSuchKey);\nexport var NoSuchUpload$ = [-3, n0, _NSU,\n    { [_e]: _c, [_hE]: 404 },\n    [],\n    []\n];\nn0_registry.registerError(NoSuchUpload$, NoSuchUpload);\nexport var NotFound$ = [-3, n0, _NF,\n    { [_e]: _c },\n    [],\n    []\n];\nn0_registry.registerError(NotFound$, NotFound);\nexport var ObjectAlreadyInActiveTierError$ = [-3, n0, _OAIATE,\n    { [_e]: _c, [_hE]: 403 },\n    [],\n    []\n];\nn0_registry.registerError(ObjectAlreadyInActiveTierError$, ObjectAlreadyInActiveTierError);\nexport var ObjectNotInActiveTierError$ = [-3, n0, _ONIATE,\n    { [_e]: _c, [_hE]: 403 },\n    [],\n    []\n];\nn0_registry.registerError(ObjectNotInActiveTierError$, ObjectNotInActiveTierError);\nexport var TooManyParts$ = [-3, n0, _TMP,\n    { [_e]: _c, [_hE]: 400 },\n    [],\n    []\n];\nn0_registry.registerError(TooManyParts$, TooManyParts);\nexport const errorTypeRegistries = [\n    _s_registry,\n    n0_registry,\n];\nvar CopySourceSSECustomerKey = [0, n0, _CSSSECK, 8, 0];\nvar NonEmptyKmsKeyArnString = [0, n0, _NEKKAS, 8, 0];\nvar SessionCredentialValue = [0, n0, _SCV, 8, 0];\nvar SSECustomerKey = [0, n0, _SSECK, 8, 0];\nvar SSEKMSEncryptionContext = [0, n0, _SSEKMSEC, 8, 0];\nvar SSEKMSKeyId = [0, n0, _SSEKMSKI, 8, 0];\nvar StreamingBlob = [0, n0, _SB, { [_st]: 1 }, 42];\nexport var AbacStatus$ = [3, n0, _AS,\n    0,\n    [_S],\n    [0]\n];\nexport var AbortIncompleteMultipartUpload$ = [3, n0, _AIMU,\n    0,\n    [_DAI],\n    [1]\n];\nexport var AbortMultipartUploadOutput$ = [3, n0, _AMUO,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var AbortMultipartUploadRequest$ = [3, n0, _AMUR,\n    0,\n    [_B, _K, _UI, _RP, _EBO, _IMIT],\n    [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [6, { [_hH]: _xaimit }]], 3\n];\nexport var AccelerateConfiguration$ = [3, n0, _AC,\n    0,\n    [_S],\n    [0]\n];\nexport var AccessControlPolicy$ = [3, n0, _ACP,\n    0,\n    [_G, _O],\n    [[() => Grants, { [_xN]: _ACL }], () => Owner$]\n];\nexport var AccessControlTranslation$ = [3, n0, _ACT,\n    0,\n    [_O],\n    [0], 1\n];\nexport var AnalyticsAndOperator$ = [3, n0, _AAO,\n    0,\n    [_P, _T],\n    [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var AnalyticsConfiguration$ = [3, n0, _ACn,\n    0,\n    [_I, _SCA, _F],\n    [0, () => StorageClassAnalysis$, [() => AnalyticsFilter$, 0]], 2\n];\nexport var AnalyticsExportDestination$ = [3, n0, _AED,\n    0,\n    [_SBD],\n    [() => AnalyticsS3BucketDestination$], 1\n];\nexport var AnalyticsS3BucketDestination$ = [3, n0, _ASBD,\n    0,\n    [_Fo, _B, _BAI, _P],\n    [0, 0, 0, 0], 2\n];\nexport var BlockedEncryptionTypes$ = [3, n0, _BET,\n    0,\n    [_ET],\n    [[() => EncryptionTypeList, { [_xF]: 1 }]]\n];\nexport var Bucket$ = [3, n0, _B,\n    0,\n    [_N, _CD, _BR, _BA],\n    [0, 4, 0, 0]\n];\nexport var BucketInfo$ = [3, n0, _BI,\n    0,\n    [_DR, _Ty],\n    [0, 0]\n];\nexport var BucketLifecycleConfiguration$ = [3, n0, _BLC,\n    0,\n    [_R],\n    [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var BucketLoggingStatus$ = [3, n0, _BLS,\n    0,\n    [_LE],\n    [[() => LoggingEnabled$, 0]]\n];\nexport var Checksum$ = [3, n0, _C,\n    0,\n    [_CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT],\n    [0, 0, 0, 0, 0, 0]\n];\nexport var CommonPrefix$ = [3, n0, _CP,\n    0,\n    [_P],\n    [0]\n];\nexport var CompletedMultipartUpload$ = [3, n0, _CMU,\n    0,\n    [_Pa],\n    [[() => CompletedPartList, { [_xF]: 1, [_xN]: _Par }]]\n];\nexport var CompletedPart$ = [3, n0, _CPo,\n    0,\n    [_ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _PN],\n    [0, 0, 0, 0, 0, 0, 1]\n];\nexport var CompleteMultipartUploadOutput$ = [3, n0, _CMUO,\n    { [_xN]: _CMUR },\n    [_L, _B, _K, _E, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _SSE, _VI, _SSEKMSKI, _BKE, _RC],\n    [0, 0, 0, [0, { [_hH]: _xae }], 0, 0, 0, 0, 0, 0, 0, [0, { [_hH]: _xasse }], [0, { [_hH]: _xavi }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var CompleteMultipartUploadRequest$ = [3, n0, _CMURo,\n    0,\n    [_B, _K, _UI, _MU, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _MOS, _RP, _EBO, _IM, _INM, _SSECA, _SSECK, _SSECKMD],\n    [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [() => CompletedMultipartUpload$, { [_hP]: 1, [_xN]: _CMUo }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [1, { [_hH]: _xamos }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }]], 3\n];\nexport var Condition$ = [3, n0, _Co,\n    0,\n    [_HECRE, _KPE],\n    [0, 0]\n];\nexport var ContinuationEvent$ = [3, n0, _CE,\n    0,\n    [],\n    []\n];\nexport var CopyObjectOutput$ = [3, n0, _COO,\n    0,\n    [_COR, _E, _CSVI, _VI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC],\n    [[() => CopyObjectResult$, 16], [0, { [_hH]: _xae }], [0, { [_hH]: _xacsvi }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var CopyObjectRequest$ = [3, n0, _CORo,\n    0,\n    [_B, _CS, _K, _ACL_, _CC, _CA, _CDo, _CEo, _CL, _CTo, _CSIM, _CSIMS, _CSINM, _CSIUS, _Ex, _GFC, _GR, _GRACP, _GWACP, _IM, _INM, _M, _MD, _TD, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO, _ESBO],\n    [[0, 1], [0, { [_hH]: _xacs__ }], [0, 1], [0, { [_hH]: _xaa }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _xaca }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _xacsim }], [4, { [_hH]: _xacsims }], [0, { [_hH]: _xacsinm }], [4, { [_hH]: _xacsius }], [4, { [_hH]: _Ex }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xamd }], [0, { [_hH]: _xatd }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH]: _xacssseck }], [0, { [_hH]: _xacssseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasebo }]], 3\n];\nexport var CopyObjectResult$ = [3, n0, _COR,\n    0,\n    [_ETa, _LM, _CT, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n    [0, 4, 0, 0, 0, 0, 0, 0]\n];\nexport var CopyPartResult$ = [3, n0, _CPR,\n    0,\n    [_ETa, _LM, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n    [0, 4, 0, 0, 0, 0, 0]\n];\nexport var CORSConfiguration$ = [3, n0, _CORSC,\n    0,\n    [_CORSR],\n    [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]], 1\n];\nexport var CORSRule$ = [3, n0, _CORSRu,\n    0,\n    [_AM, _AO, _ID, _AH, _EH, _MAS],\n    [[64 | 0, { [_xF]: 1, [_xN]: _AMl }], [64 | 0, { [_xF]: 1, [_xN]: _AOl }], 0, [64 | 0, { [_xF]: 1, [_xN]: _AHl }], [64 | 0, { [_xF]: 1, [_xN]: _EHx }], 1], 2\n];\nexport var CreateBucketConfiguration$ = [3, n0, _CBC,\n    0,\n    [_LC, _L, _B, _T],\n    [0, () => LocationInfo$, () => BucketInfo$, [() => TagSet, 0]]\n];\nexport var CreateBucketMetadataConfigurationRequest$ = [3, n0, _CBMCR,\n    0,\n    [_B, _MC, _CMD, _CA, _EBO],\n    [[0, 1], [() => MetadataConfiguration$, { [_hP]: 1, [_xN]: _MC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var CreateBucketMetadataTableConfigurationRequest$ = [3, n0, _CBMTCR,\n    0,\n    [_B, _MTC, _CMD, _CA, _EBO],\n    [[0, 1], [() => MetadataTableConfiguration$, { [_hP]: 1, [_xN]: _MTC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var CreateBucketOutput$ = [3, n0, _CBO,\n    0,\n    [_L, _BA],\n    [[0, { [_hH]: _L }], [0, { [_hH]: _xaba }]]\n];\nexport var CreateBucketRequest$ = [3, n0, _CBR,\n    0,\n    [_B, _ACL_, _CBC, _GFC, _GR, _GRACP, _GW, _GWACP, _OLEFB, _OO, _BN],\n    [[0, 1], [0, { [_hH]: _xaa }], [() => CreateBucketConfiguration$, { [_hP]: 1, [_xN]: _CBC }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [2, { [_hH]: _xabole }], [0, { [_hH]: _xaoo }], [0, { [_hH]: _xabn }]], 1\n];\nexport var CreateMultipartUploadOutput$ = [3, n0, _CMUOr,\n    { [_xN]: _IMUR },\n    [_ADb, _ARI, _B, _K, _UI, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RC, _CA, _CT],\n    [[4, { [_hH]: _xaad }], [0, { [_hH]: _xaari }], [0, { [_xN]: _B }], 0, 0, [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xaca }], [0, { [_hH]: _xact }]]\n];\nexport var CreateMultipartUploadRequest$ = [3, n0, _CMURr,\n    0,\n    [_B, _K, _ACL_, _CC, _CDo, _CEo, _CL, _CTo, _Ex, _GFC, _GR, _GRACP, _GWACP, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO, _CA, _CT],\n    [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xaca }], [0, { [_hH]: _xact }]], 2\n];\nexport var CreateSessionOutput$ = [3, n0, _CSO,\n    { [_xN]: _CSR },\n    [_Cr, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE],\n    [[() => SessionCredentials$, { [_xN]: _Cr }], [0, { [_hH]: _xasse }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }]], 1\n];\nexport var CreateSessionRequest$ = [3, n0, _CSRr,\n    0,\n    [_B, _SM, _SSE, _SSEKMSKI, _SSEKMSEC, _BKE],\n    [[0, 1], [0, { [_hH]: _xacsm }], [0, { [_hH]: _xasse }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }]], 1\n];\nexport var CSVInput$ = [3, n0, _CSVIn,\n    0,\n    [_FHI, _Com, _QEC, _RD, _FD, _QC, _AQRD],\n    [0, 0, 0, 0, 0, 0, 2]\n];\nexport var CSVOutput$ = [3, n0, _CSVO,\n    0,\n    [_QF, _QEC, _RD, _FD, _QC],\n    [0, 0, 0, 0, 0]\n];\nexport var DefaultRetention$ = [3, n0, _DRe,\n    0,\n    [_Mo, _D, _Y],\n    [0, 1, 1]\n];\nexport var Delete$ = [3, n0, _De,\n    0,\n    [_Ob, _Q],\n    [[() => ObjectIdentifierList, { [_xF]: 1, [_xN]: _Obj }], 2], 1\n];\nexport var DeleteBucketAnalyticsConfigurationRequest$ = [3, n0, _DBACR,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketCorsRequest$ = [3, n0, _DBCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketEncryptionRequest$ = [3, n0, _DBER,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketIntelligentTieringConfigurationRequest$ = [3, n0, _DBITCR,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketInventoryConfigurationRequest$ = [3, n0, _DBICR,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketLifecycleRequest$ = [3, n0, _DBLR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetadataConfigurationRequest$ = [3, n0, _DBMCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetadataTableConfigurationRequest$ = [3, n0, _DBMTCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketMetricsConfigurationRequest$ = [3, n0, _DBMCRe,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeleteBucketOwnershipControlsRequest$ = [3, n0, _DBOCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketPolicyRequest$ = [3, n0, _DBPR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketReplicationRequest$ = [3, n0, _DBRR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketRequest$ = [3, n0, _DBR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketTaggingRequest$ = [3, n0, _DBTR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeleteBucketWebsiteRequest$ = [3, n0, _DBWR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var DeletedObject$ = [3, n0, _DO,\n    0,\n    [_K, _VI, _DM, _DMVI],\n    [0, 0, 2, 0]\n];\nexport var DeleteMarkerEntry$ = [3, n0, _DME,\n    0,\n    [_O, _K, _VI, _IL, _LM],\n    [() => Owner$, 0, 0, 2, 4]\n];\nexport var DeleteMarkerReplication$ = [3, n0, _DMR,\n    0,\n    [_S],\n    [0]\n];\nexport var DeleteObjectOutput$ = [3, n0, _DOO,\n    0,\n    [_DM, _VI, _RC],\n    [[2, { [_hH]: _xadm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xarc }]]\n];\nexport var DeleteObjectRequest$ = [3, n0, _DOR,\n    0,\n    [_B, _K, _MFA, _VI, _RP, _BGR, _EBO, _IM, _IMLMT, _IMS],\n    [[0, 1], [0, 1], [0, { [_hH]: _xam_ }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _IM_ }], [6, { [_hH]: _xaimlmt }], [1, { [_hH]: _xaims }]], 2\n];\nexport var DeleteObjectsOutput$ = [3, n0, _DOOe,\n    { [_xN]: _DRel },\n    [_Del, _RC, _Er],\n    [[() => DeletedObjects, { [_xF]: 1 }], [0, { [_hH]: _xarc }], [() => Errors, { [_xF]: 1, [_xN]: _Err }]]\n];\nexport var DeleteObjectsRequest$ = [3, n0, _DORe,\n    0,\n    [_B, _De, _MFA, _RP, _BGR, _EBO, _CA],\n    [[0, 1], [() => Delete$, { [_hP]: 1, [_xN]: _De }], [0, { [_hH]: _xam_ }], [0, { [_hH]: _xarp }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var DeleteObjectTaggingOutput$ = [3, n0, _DOTO,\n    0,\n    [_VI],\n    [[0, { [_hH]: _xavi }]]\n];\nexport var DeleteObjectTaggingRequest$ = [3, n0, _DOTR,\n    0,\n    [_B, _K, _VI, _EBO],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var DeletePublicAccessBlockRequest$ = [3, n0, _DPABR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var Destination$ = [3, n0, _Des,\n    0,\n    [_B, _A, _SC, _ACT, _EC, _RT, _Me],\n    [0, 0, 0, () => AccessControlTranslation$, () => EncryptionConfiguration$, () => ReplicationTime$, () => Metrics$], 1\n];\nexport var DestinationResult$ = [3, n0, _DRes,\n    0,\n    [_TBT, _TBA, _TN],\n    [0, 0, 0]\n];\nexport var Encryption$ = [3, n0, _En,\n    0,\n    [_ET, _KMSKI, _KMSC],\n    [0, [() => SSEKMSKeyId, 0], 0], 1\n];\nexport var EncryptionConfiguration$ = [3, n0, _EC,\n    0,\n    [_RKKID],\n    [0]\n];\nexport var EndEvent$ = [3, n0, _EE,\n    0,\n    [],\n    []\n];\nexport var _Error$ = [3, n0, _Err,\n    0,\n    [_K, _VI, _Cod, _Mes],\n    [0, 0, 0, 0]\n];\nexport var ErrorDetails$ = [3, n0, _ED,\n    0,\n    [_ECr, _EM],\n    [0, 0]\n];\nexport var ErrorDocument$ = [3, n0, _EDr,\n    0,\n    [_K],\n    [0], 1\n];\nexport var EventBridgeConfiguration$ = [3, n0, _EBC,\n    0,\n    [],\n    []\n];\nexport var ExistingObjectReplication$ = [3, n0, _EOR,\n    0,\n    [_S],\n    [0], 1\n];\nexport var FilterRule$ = [3, n0, _FR,\n    0,\n    [_N, _V],\n    [0, 0]\n];\nexport var GetBucketAbacOutput$ = [3, n0, _GBAO,\n    0,\n    [_AS],\n    [[() => AbacStatus$, 16]]\n];\nexport var GetBucketAbacRequest$ = [3, n0, _GBAR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketAccelerateConfigurationOutput$ = [3, n0, _GBACO,\n    { [_xN]: _AC },\n    [_S, _RC],\n    [0, [0, { [_hH]: _xarc }]]\n];\nexport var GetBucketAccelerateConfigurationRequest$ = [3, n0, _GBACR,\n    0,\n    [_B, _EBO, _RP],\n    [[0, 1], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 1\n];\nexport var GetBucketAclOutput$ = [3, n0, _GBAOe,\n    { [_xN]: _ACP },\n    [_O, _G],\n    [() => Owner$, [() => Grants, { [_xN]: _ACL }]]\n];\nexport var GetBucketAclRequest$ = [3, n0, _GBARe,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketAnalyticsConfigurationOutput$ = [3, n0, _GBACOe,\n    0,\n    [_ACn],\n    [[() => AnalyticsConfiguration$, 16]]\n];\nexport var GetBucketAnalyticsConfigurationRequest$ = [3, n0, _GBACRe,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketCorsOutput$ = [3, n0, _GBCO,\n    { [_xN]: _CORSC },\n    [_CORSR],\n    [[() => CORSRules, { [_xF]: 1, [_xN]: _CORSRu }]]\n];\nexport var GetBucketCorsRequest$ = [3, n0, _GBCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketEncryptionOutput$ = [3, n0, _GBEO,\n    0,\n    [_SSEC],\n    [[() => ServerSideEncryptionConfiguration$, 16]]\n];\nexport var GetBucketEncryptionRequest$ = [3, n0, _GBER,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketIntelligentTieringConfigurationOutput$ = [3, n0, _GBITCO,\n    0,\n    [_ITC],\n    [[() => IntelligentTieringConfiguration$, 16]]\n];\nexport var GetBucketIntelligentTieringConfigurationRequest$ = [3, n0, _GBITCR,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketInventoryConfigurationOutput$ = [3, n0, _GBICO,\n    0,\n    [_IC],\n    [[() => InventoryConfiguration$, 16]]\n];\nexport var GetBucketInventoryConfigurationRequest$ = [3, n0, _GBICR,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketLifecycleConfigurationOutput$ = [3, n0, _GBLCO,\n    { [_xN]: _LCi },\n    [_R, _TDMOS],\n    [[() => LifecycleRules, { [_xF]: 1, [_xN]: _Ru }], [0, { [_hH]: _xatdmos }]]\n];\nexport var GetBucketLifecycleConfigurationRequest$ = [3, n0, _GBLCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketLocationOutput$ = [3, n0, _GBLO,\n    { [_xN]: _LC },\n    [_LC],\n    [0]\n];\nexport var GetBucketLocationRequest$ = [3, n0, _GBLR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketLoggingOutput$ = [3, n0, _GBLOe,\n    { [_xN]: _BLS },\n    [_LE],\n    [[() => LoggingEnabled$, 0]]\n];\nexport var GetBucketLoggingRequest$ = [3, n0, _GBLRe,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataConfigurationOutput$ = [3, n0, _GBMCO,\n    0,\n    [_GBMCR],\n    [[() => GetBucketMetadataConfigurationResult$, 16]]\n];\nexport var GetBucketMetadataConfigurationRequest$ = [3, n0, _GBMCRe,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataConfigurationResult$ = [3, n0, _GBMCR,\n    0,\n    [_MCR],\n    [() => MetadataConfigurationResult$], 1\n];\nexport var GetBucketMetadataTableConfigurationOutput$ = [3, n0, _GBMTCO,\n    0,\n    [_GBMTCR],\n    [[() => GetBucketMetadataTableConfigurationResult$, 16]]\n];\nexport var GetBucketMetadataTableConfigurationRequest$ = [3, n0, _GBMTCRe,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketMetadataTableConfigurationResult$ = [3, n0, _GBMTCR,\n    0,\n    [_MTCR, _S, _Err],\n    [() => MetadataTableConfigurationResult$, 0, () => ErrorDetails$], 2\n];\nexport var GetBucketMetricsConfigurationOutput$ = [3, n0, _GBMCOe,\n    0,\n    [_MCe],\n    [[() => MetricsConfiguration$, 16]]\n];\nexport var GetBucketMetricsConfigurationRequest$ = [3, n0, _GBMCRet,\n    0,\n    [_B, _I, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetBucketNotificationConfigurationRequest$ = [3, n0, _GBNCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketOwnershipControlsOutput$ = [3, n0, _GBOCO,\n    0,\n    [_OC],\n    [[() => OwnershipControls$, 16]]\n];\nexport var GetBucketOwnershipControlsRequest$ = [3, n0, _GBOCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketPolicyOutput$ = [3, n0, _GBPO,\n    0,\n    [_Po],\n    [[0, 16]]\n];\nexport var GetBucketPolicyRequest$ = [3, n0, _GBPR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketPolicyStatusOutput$ = [3, n0, _GBPSO,\n    0,\n    [_PS],\n    [[() => PolicyStatus$, 16]]\n];\nexport var GetBucketPolicyStatusRequest$ = [3, n0, _GBPSR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketReplicationOutput$ = [3, n0, _GBRO,\n    0,\n    [_RCe],\n    [[() => ReplicationConfiguration$, 16]]\n];\nexport var GetBucketReplicationRequest$ = [3, n0, _GBRR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketRequestPaymentOutput$ = [3, n0, _GBRPO,\n    { [_xN]: _RPC },\n    [_Pay],\n    [0]\n];\nexport var GetBucketRequestPaymentRequest$ = [3, n0, _GBRPR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketTaggingOutput$ = [3, n0, _GBTO,\n    { [_xN]: _Tag },\n    [_TS],\n    [[() => TagSet, 0]], 1\n];\nexport var GetBucketTaggingRequest$ = [3, n0, _GBTR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketVersioningOutput$ = [3, n0, _GBVO,\n    { [_xN]: _VC },\n    [_S, _MFAD],\n    [0, [0, { [_xN]: _MDf }]]\n];\nexport var GetBucketVersioningRequest$ = [3, n0, _GBVR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetBucketWebsiteOutput$ = [3, n0, _GBWO,\n    { [_xN]: _WC },\n    [_RART, _IDn, _EDr, _RR],\n    [() => RedirectAllRequestsTo$, () => IndexDocument$, () => ErrorDocument$, [() => RoutingRules, 0]]\n];\nexport var GetBucketWebsiteRequest$ = [3, n0, _GBWR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetObjectAclOutput$ = [3, n0, _GOAO,\n    { [_xN]: _ACP },\n    [_O, _G, _RC],\n    [() => Owner$, [() => Grants, { [_xN]: _ACL }], [0, { [_hH]: _xarc }]]\n];\nexport var GetObjectAclRequest$ = [3, n0, _GOAR,\n    0,\n    [_B, _K, _VI, _RP, _EBO],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectAttributesOutput$ = [3, n0, _GOAOe,\n    { [_xN]: _GOARe },\n    [_DM, _LM, _VI, _RC, _ETa, _C, _OP, _SC, _OS],\n    [[2, { [_hH]: _xadm }], [4, { [_hH]: _LM_ }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xarc }], 0, () => Checksum$, [() => GetObjectAttributesParts$, 0], 0, 1]\n];\nexport var GetObjectAttributesParts$ = [3, n0, _GOAP,\n    0,\n    [_TPC, _PNM, _NPNM, _MP, _IT, _Pa],\n    [[1, { [_xN]: _PC }], 0, 0, 1, 2, [() => PartsList, { [_xF]: 1, [_xN]: _Par }]]\n];\nexport var GetObjectAttributesRequest$ = [3, n0, _GOARet,\n    0,\n    [_B, _K, _OA, _VI, _MP, _PNM, _SSECA, _SSECK, _SSECKMD, _RP, _EBO],\n    [[0, 1], [0, 1], [64 | 0, { [_hH]: _xaoa }], [0, { [_hQ]: _vI }], [1, { [_hH]: _xamp }], [0, { [_hH]: _xapnm }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var GetObjectLegalHoldOutput$ = [3, n0, _GOLHO,\n    0,\n    [_LH],\n    [[() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }]]\n];\nexport var GetObjectLegalHoldRequest$ = [3, n0, _GOLHR,\n    0,\n    [_B, _K, _VI, _RP, _EBO],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectLockConfigurationOutput$ = [3, n0, _GOLCO,\n    0,\n    [_OLC],\n    [[() => ObjectLockConfiguration$, 16]]\n];\nexport var GetObjectLockConfigurationRequest$ = [3, n0, _GOLCR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GetObjectOutput$ = [3, n0, _GOO,\n    0,\n    [_Bo, _DM, _AR, _E, _Re, _LM, _CLo, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _MM, _VI, _CC, _CDo, _CEo, _CL, _CR, _CTo, _Ex, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC, _RS, _PC, _TC, _OLM, _OLRUD, _OLLHS],\n    [[() => StreamingBlob, 16], [2, { [_hH]: _xadm }], [0, { [_hH]: _ar }], [0, { [_hH]: _xae }], [0, { [_hH]: _xar }], [4, { [_hH]: _LM_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [1, { [_hH]: _xamm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CR_ }], [0, { [_hH]: _CT_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _ES }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xars }], [1, { [_hH]: _xampc }], [1, { [_hH]: _xatc }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }]]\n];\nexport var GetObjectRequest$ = [3, n0, _GOR,\n    0,\n    [_B, _K, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh],\n    [[0, 1], [0, 1], [0, { [_hH]: _IM_ }], [4, { [_hH]: _IMS_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _Ra }], [0, { [_hQ]: _rcc }], [0, { [_hQ]: _rcd }], [0, { [_hQ]: _rce }], [0, { [_hQ]: _rcl }], [0, { [_hQ]: _rct }], [6, { [_hQ]: _re }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [1, { [_hQ]: _pN }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xacm }]], 2\n];\nexport var GetObjectRetentionOutput$ = [3, n0, _GORO,\n    0,\n    [_Ret],\n    [[() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }]]\n];\nexport var GetObjectRetentionRequest$ = [3, n0, _GORR,\n    0,\n    [_B, _K, _VI, _RP, _EBO],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetObjectTaggingOutput$ = [3, n0, _GOTO,\n    { [_xN]: _Tag },\n    [_TS, _VI],\n    [[() => TagSet, 0], [0, { [_hH]: _xavi }]], 1\n];\nexport var GetObjectTaggingRequest$ = [3, n0, _GOTR,\n    0,\n    [_B, _K, _VI, _EBO, _RP],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 2\n];\nexport var GetObjectTorrentOutput$ = [3, n0, _GOTOe,\n    0,\n    [_Bo, _RC],\n    [[() => StreamingBlob, 16], [0, { [_hH]: _xarc }]]\n];\nexport var GetObjectTorrentRequest$ = [3, n0, _GOTRe,\n    0,\n    [_B, _K, _RP, _EBO],\n    [[0, 1], [0, 1], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var GetPublicAccessBlockOutput$ = [3, n0, _GPABO,\n    0,\n    [_PABC],\n    [[() => PublicAccessBlockConfiguration$, 16]]\n];\nexport var GetPublicAccessBlockRequest$ = [3, n0, _GPABR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var GlacierJobParameters$ = [3, n0, _GJP,\n    0,\n    [_Ti],\n    [0], 1\n];\nexport var Grant$ = [3, n0, _Gr,\n    0,\n    [_Gra, _Pe],\n    [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0]\n];\nexport var Grantee$ = [3, n0, _Gra,\n    0,\n    [_Ty, _DN, _EA, _ID, _URI],\n    [[0, { [_xA]: 1, [_xN]: _xs }], 0, 0, 0, 0], 1\n];\nexport var HeadBucketOutput$ = [3, n0, _HBO,\n    0,\n    [_BA, _BLT, _BLN, _BR, _APA],\n    [[0, { [_hH]: _xaba }], [0, { [_hH]: _xablt }], [0, { [_hH]: _xabln }], [0, { [_hH]: _xabr }], [2, { [_hH]: _xaapa }]]\n];\nexport var HeadBucketRequest$ = [3, n0, _HBR,\n    0,\n    [_B, _EBO],\n    [[0, 1], [0, { [_hH]: _xaebo }]], 1\n];\nexport var HeadObjectOutput$ = [3, n0, _HOO,\n    0,\n    [_DM, _AR, _E, _Re, _ASr, _LM, _CLo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _ETa, _MM, _VI, _CC, _CDo, _CEo, _CL, _CTo, _CR, _Ex, _ES, _WRL, _SSE, _M, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _SC, _RC, _RS, _PC, _TC, _OLM, _OLRUD, _OLLHS],\n    [[2, { [_hH]: _xadm }], [0, { [_hH]: _ar }], [0, { [_hH]: _xae }], [0, { [_hH]: _xar }], [0, { [_hH]: _xaas }], [4, { [_hH]: _LM_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [0, { [_hH]: _ETa }], [1, { [_hH]: _xamm }], [0, { [_hH]: _xavi }], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _CR_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _ES }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasse }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xarc }], [0, { [_hH]: _xars }], [1, { [_hH]: _xampc }], [1, { [_hH]: _xatc }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }]]\n];\nexport var HeadObjectRequest$ = [3, n0, _HOR,\n    0,\n    [_B, _K, _IM, _IMSf, _INM, _IUS, _Ra, _RCC, _RCD, _RCE, _RCL, _RCT, _RE, _VI, _SSECA, _SSECK, _SSECKMD, _RP, _PN, _EBO, _CMh],\n    [[0, 1], [0, 1], [0, { [_hH]: _IM_ }], [4, { [_hH]: _IMS_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _Ra }], [0, { [_hQ]: _rcc }], [0, { [_hQ]: _rcd }], [0, { [_hQ]: _rce }], [0, { [_hQ]: _rcl }], [0, { [_hQ]: _rct }], [6, { [_hQ]: _re }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [1, { [_hQ]: _pN }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xacm }]], 2\n];\nexport var IndexDocument$ = [3, n0, _IDn,\n    0,\n    [_Su],\n    [0], 1\n];\nexport var Initiator$ = [3, n0, _In,\n    0,\n    [_ID, _DN],\n    [0, 0]\n];\nexport var InputSerialization$ = [3, n0, _IS,\n    0,\n    [_CSV, _CTom, _JSON, _Parq],\n    [() => CSVInput$, 0, () => JSONInput$, () => ParquetInput$]\n];\nexport var IntelligentTieringAndOperator$ = [3, n0, _ITAO,\n    0,\n    [_P, _T],\n    [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var IntelligentTieringConfiguration$ = [3, n0, _ITC,\n    0,\n    [_I, _S, _Tie, _F],\n    [0, 0, [() => TieringList, { [_xF]: 1, [_xN]: _Tier }], [() => IntelligentTieringFilter$, 0]], 3\n];\nexport var IntelligentTieringFilter$ = [3, n0, _ITF,\n    0,\n    [_P, _Ta, _An],\n    [0, () => Tag$, [() => IntelligentTieringAndOperator$, 0]]\n];\nexport var InventoryConfiguration$ = [3, n0, _IC,\n    0,\n    [_Des, _IE, _I, _IOV, _Sc, _F, _OF],\n    [[() => InventoryDestination$, 0], 2, 0, 0, () => InventorySchedule$, () => InventoryFilter$, [() => InventoryOptionalFields, 0]], 5\n];\nexport var InventoryDestination$ = [3, n0, _IDnv,\n    0,\n    [_SBD],\n    [[() => InventoryS3BucketDestination$, 0]], 1\n];\nexport var InventoryEncryption$ = [3, n0, _IEn,\n    0,\n    [_SSES, _SSEKMS],\n    [[() => SSES3$, { [_xN]: _SS }], [() => SSEKMS$, { [_xN]: _SK }]]\n];\nexport var InventoryFilter$ = [3, n0, _IF,\n    0,\n    [_P],\n    [0], 1\n];\nexport var InventoryS3BucketDestination$ = [3, n0, _ISBD,\n    0,\n    [_B, _Fo, _AI, _P, _En],\n    [0, 0, 0, 0, [() => InventoryEncryption$, 0]], 2\n];\nexport var InventorySchedule$ = [3, n0, _ISn,\n    0,\n    [_Fr],\n    [0], 1\n];\nexport var InventoryTableConfiguration$ = [3, n0, _ITCn,\n    0,\n    [_CSo, _EC],\n    [0, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var InventoryTableConfigurationResult$ = [3, n0, _ITCR,\n    0,\n    [_CSo, _TSa, _Err, _TNa, _TA],\n    [0, 0, () => ErrorDetails$, 0, 0], 1\n];\nexport var InventoryTableConfigurationUpdates$ = [3, n0, _ITCU,\n    0,\n    [_CSo, _EC],\n    [0, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var JournalTableConfiguration$ = [3, n0, _JTC,\n    0,\n    [_REe, _EC],\n    [() => RecordExpiration$, () => MetadataTableEncryptionConfiguration$], 1\n];\nexport var JournalTableConfigurationResult$ = [3, n0, _JTCR,\n    0,\n    [_TSa, _TNa, _REe, _Err, _TA],\n    [0, 0, () => RecordExpiration$, () => ErrorDetails$, 0], 3\n];\nexport var JournalTableConfigurationUpdates$ = [3, n0, _JTCU,\n    0,\n    [_REe],\n    [() => RecordExpiration$], 1\n];\nexport var JSONInput$ = [3, n0, _JSONI,\n    0,\n    [_Ty],\n    [0]\n];\nexport var JSONOutput$ = [3, n0, _JSONO,\n    0,\n    [_RD],\n    [0]\n];\nexport var LambdaFunctionConfiguration$ = [3, n0, _LFC,\n    0,\n    [_LFA, _Ev, _I, _F],\n    [[0, { [_xN]: _CF }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var LifecycleExpiration$ = [3, n0, _LEi,\n    0,\n    [_Da, _D, _EODM],\n    [5, 1, 2]\n];\nexport var LifecycleRule$ = [3, n0, _LR,\n    0,\n    [_S, _E, _ID, _P, _F, _Tr, _NVT, _NVE, _AIMU],\n    [0, () => LifecycleExpiration$, 0, 0, [() => LifecycleRuleFilter$, 0], [() => TransitionList, { [_xF]: 1, [_xN]: _Tra }], [() => NoncurrentVersionTransitionList, { [_xF]: 1, [_xN]: _NVTo }], () => NoncurrentVersionExpiration$, () => AbortIncompleteMultipartUpload$], 1\n];\nexport var LifecycleRuleAndOperator$ = [3, n0, _LRAO,\n    0,\n    [_P, _T, _OSGT, _OSLT],\n    [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }], 1, 1]\n];\nexport var LifecycleRuleFilter$ = [3, n0, _LRF,\n    0,\n    [_P, _Ta, _OSGT, _OSLT, _An],\n    [0, () => Tag$, 1, 1, [() => LifecycleRuleAndOperator$, 0]]\n];\nexport var ListBucketAnalyticsConfigurationsOutput$ = [3, n0, _LBACO,\n    { [_xN]: _LBACR },\n    [_IT, _CTon, _NCT, _ACLn],\n    [2, 0, 0, [() => AnalyticsConfigurationList, { [_xF]: 1, [_xN]: _ACn }]]\n];\nexport var ListBucketAnalyticsConfigurationsRequest$ = [3, n0, _LBACRi,\n    0,\n    [_B, _CTon, _EBO],\n    [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketIntelligentTieringConfigurationsOutput$ = [3, n0, _LBITCO,\n    0,\n    [_IT, _CTon, _NCT, _ITCL],\n    [2, 0, 0, [() => IntelligentTieringConfigurationList, { [_xF]: 1, [_xN]: _ITC }]]\n];\nexport var ListBucketIntelligentTieringConfigurationsRequest$ = [3, n0, _LBITCR,\n    0,\n    [_B, _CTon, _EBO],\n    [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketInventoryConfigurationsOutput$ = [3, n0, _LBICO,\n    { [_xN]: _LICR },\n    [_CTon, _ICL, _IT, _NCT],\n    [0, [() => InventoryConfigurationList, { [_xF]: 1, [_xN]: _IC }], 2, 0]\n];\nexport var ListBucketInventoryConfigurationsRequest$ = [3, n0, _LBICR,\n    0,\n    [_B, _CTon, _EBO],\n    [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketMetricsConfigurationsOutput$ = [3, n0, _LBMCO,\n    { [_xN]: _LMCR },\n    [_IT, _CTon, _NCT, _MCL],\n    [2, 0, 0, [() => MetricsConfigurationList, { [_xF]: 1, [_xN]: _MCe }]]\n];\nexport var ListBucketMetricsConfigurationsRequest$ = [3, n0, _LBMCR,\n    0,\n    [_B, _CTon, _EBO],\n    [[0, 1], [0, { [_hQ]: _ct }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var ListBucketsOutput$ = [3, n0, _LBO,\n    { [_xN]: _LAMBR },\n    [_Bu, _O, _CTon, _P],\n    [[() => Buckets, 0], () => Owner$, 0, 0]\n];\nexport var ListBucketsRequest$ = [3, n0, _LBR,\n    0,\n    [_MB, _CTon, _P, _BR],\n    [[1, { [_hQ]: _mb }], [0, { [_hQ]: _ct }], [0, { [_hQ]: _p }], [0, { [_hQ]: _br }]]\n];\nexport var ListDirectoryBucketsOutput$ = [3, n0, _LDBO,\n    { [_xN]: _LAMDBR },\n    [_Bu, _CTon],\n    [[() => Buckets, 0], 0]\n];\nexport var ListDirectoryBucketsRequest$ = [3, n0, _LDBR,\n    0,\n    [_CTon, _MDB],\n    [[0, { [_hQ]: _ct }], [1, { [_hQ]: _mdb }]]\n];\nexport var ListMultipartUploadsOutput$ = [3, n0, _LMUO,\n    { [_xN]: _LMUR },\n    [_B, _KM, _UIM, _NKM, _P, _Deli, _NUIM, _MUa, _IT, _U, _CPom, _ETn, _RC],\n    [0, 0, 0, 0, 0, 0, 0, 1, 2, [() => MultipartUploadList, { [_xF]: 1, [_xN]: _Up }], [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListMultipartUploadsRequest$ = [3, n0, _LMURi,\n    0,\n    [_B, _Deli, _ETn, _KM, _MUa, _P, _UIM, _EBO, _RP],\n    [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _km }], [1, { [_hQ]: _mu }], [0, { [_hQ]: _p }], [0, { [_hQ]: _uim }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 1\n];\nexport var ListObjectsOutput$ = [3, n0, _LOO,\n    { [_xN]: _LBRi },\n    [_IT, _Ma, _NM, _Con, _N, _P, _Deli, _MK, _CPom, _ETn, _RC],\n    [2, 0, 0, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectsRequest$ = [3, n0, _LOR,\n    0,\n    [_B, _Deli, _ETn, _Ma, _MK, _P, _RP, _EBO, _OOA],\n    [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _m }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListObjectsV2Output$ = [3, n0, _LOVO,\n    { [_xN]: _LBRi },\n    [_IT, _Con, _N, _P, _Deli, _MK, _CPom, _ETn, _KC, _CTon, _NCT, _SA, _RC],\n    [2, [() => ObjectList, { [_xF]: 1 }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, 1, 0, 0, 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectsV2Request$ = [3, n0, _LOVR,\n    0,\n    [_B, _Deli, _ETn, _MK, _P, _CTon, _FO, _SA, _RP, _EBO, _OOA],\n    [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hQ]: _ct }], [2, { [_hQ]: _fo }], [0, { [_hQ]: _sa }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListObjectVersionsOutput$ = [3, n0, _LOVOi,\n    { [_xN]: _LVR },\n    [_IT, _KM, _VIM, _NKM, _NVIM, _Ve, _DMe, _N, _P, _Deli, _MK, _CPom, _ETn, _RC],\n    [2, 0, 0, 0, 0, [() => ObjectVersionList, { [_xF]: 1, [_xN]: _Ver }], [() => DeleteMarkers, { [_xF]: 1, [_xN]: _DM }], 0, 0, 0, 1, [() => CommonPrefixList, { [_xF]: 1 }], 0, [0, { [_hH]: _xarc }]]\n];\nexport var ListObjectVersionsRequest$ = [3, n0, _LOVRi,\n    0,\n    [_B, _Deli, _ETn, _KM, _MK, _P, _VIM, _EBO, _RP, _OOA],\n    [[0, 1], [0, { [_hQ]: _d }], [0, { [_hQ]: _et }], [0, { [_hQ]: _km }], [1, { [_hQ]: _mk }], [0, { [_hQ]: _p }], [0, { [_hQ]: _vim }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }], [64 | 0, { [_hH]: _xaooa }]], 1\n];\nexport var ListPartsOutput$ = [3, n0, _LPO,\n    { [_xN]: _LPR },\n    [_ADb, _ARI, _B, _K, _UI, _PNM, _NPNM, _MP, _IT, _Pa, _In, _O, _SC, _RC, _CA, _CT],\n    [[4, { [_hH]: _xaad }], [0, { [_hH]: _xaari }], 0, 0, 0, 0, 0, 1, 2, [() => Parts, { [_xF]: 1, [_xN]: _Par }], () => Initiator$, () => Owner$, 0, [0, { [_hH]: _xarc }], 0, 0]\n];\nexport var ListPartsRequest$ = [3, n0, _LPRi,\n    0,\n    [_B, _K, _UI, _MP, _PNM, _RP, _EBO, _SSECA, _SSECK, _SSECKMD],\n    [[0, 1], [0, 1], [0, { [_hQ]: _uI }], [1, { [_hQ]: _mp }], [0, { [_hQ]: _pnm }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }]], 3\n];\nexport var LocationInfo$ = [3, n0, _LI,\n    0,\n    [_Ty, _N],\n    [0, 0]\n];\nexport var LoggingEnabled$ = [3, n0, _LE,\n    0,\n    [_TB, _TP, _TG, _TOKF],\n    [0, 0, [() => TargetGrants, 0], [() => TargetObjectKeyFormat$, 0]], 2\n];\nexport var MetadataConfiguration$ = [3, n0, _MC,\n    0,\n    [_JTC, _ITCn],\n    [() => JournalTableConfiguration$, () => InventoryTableConfiguration$], 1\n];\nexport var MetadataConfigurationResult$ = [3, n0, _MCR,\n    0,\n    [_DRes, _JTCR, _ITCR],\n    [() => DestinationResult$, () => JournalTableConfigurationResult$, () => InventoryTableConfigurationResult$], 1\n];\nexport var MetadataEntry$ = [3, n0, _ME,\n    0,\n    [_N, _V],\n    [0, 0]\n];\nexport var MetadataTableConfiguration$ = [3, n0, _MTC,\n    0,\n    [_STD],\n    [() => S3TablesDestination$], 1\n];\nexport var MetadataTableConfigurationResult$ = [3, n0, _MTCR,\n    0,\n    [_STDR],\n    [() => S3TablesDestinationResult$], 1\n];\nexport var MetadataTableEncryptionConfiguration$ = [3, n0, _MTEC,\n    0,\n    [_SAs, _KKA],\n    [0, 0], 1\n];\nexport var Metrics$ = [3, n0, _Me,\n    0,\n    [_S, _ETv],\n    [0, () => ReplicationTimeValue$], 1\n];\nexport var MetricsAndOperator$ = [3, n0, _MAO,\n    0,\n    [_P, _T, _APAc],\n    [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }], 0]\n];\nexport var MetricsConfiguration$ = [3, n0, _MCe,\n    0,\n    [_I, _F],\n    [0, [() => MetricsFilter$, 0]], 1\n];\nexport var MultipartUpload$ = [3, n0, _MU,\n    0,\n    [_UI, _K, _Ini, _SC, _O, _In, _CA, _CT],\n    [0, 0, 4, 0, () => Owner$, () => Initiator$, 0, 0]\n];\nexport var NoncurrentVersionExpiration$ = [3, n0, _NVE,\n    0,\n    [_ND, _NNV],\n    [1, 1]\n];\nexport var NoncurrentVersionTransition$ = [3, n0, _NVTo,\n    0,\n    [_ND, _SC, _NNV],\n    [1, 0, 1]\n];\nexport var NotificationConfiguration$ = [3, n0, _NC,\n    0,\n    [_TCo, _QCu, _LFCa, _EBC],\n    [[() => TopicConfigurationList, { [_xF]: 1, [_xN]: _TCop }], [() => QueueConfigurationList, { [_xF]: 1, [_xN]: _QCue }], [() => LambdaFunctionConfigurationList, { [_xF]: 1, [_xN]: _CFC }], () => EventBridgeConfiguration$]\n];\nexport var NotificationConfigurationFilter$ = [3, n0, _NCF,\n    0,\n    [_K],\n    [[() => S3KeyFilter$, { [_xN]: _SKe }]]\n];\nexport var _Object$ = [3, n0, _Obj,\n    0,\n    [_K, _LM, _ETa, _CA, _CT, _Si, _SC, _O, _RSe],\n    [0, 4, 0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, () => Owner$, () => RestoreStatus$]\n];\nexport var ObjectIdentifier$ = [3, n0, _OI,\n    0,\n    [_K, _VI, _ETa, _LMT, _Si],\n    [0, 0, 0, 6, 1], 1\n];\nexport var ObjectLockConfiguration$ = [3, n0, _OLC,\n    0,\n    [_OLE, _Ru],\n    [0, () => ObjectLockRule$]\n];\nexport var ObjectLockLegalHold$ = [3, n0, _OLLH,\n    0,\n    [_S],\n    [0]\n];\nexport var ObjectLockRetention$ = [3, n0, _OLR,\n    0,\n    [_Mo, _RUD],\n    [0, 5]\n];\nexport var ObjectLockRule$ = [3, n0, _OLRb,\n    0,\n    [_DRe],\n    [() => DefaultRetention$]\n];\nexport var ObjectPart$ = [3, n0, _OPb,\n    0,\n    [_PN, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n    [1, 1, 0, 0, 0, 0, 0]\n];\nexport var ObjectVersion$ = [3, n0, _OV,\n    0,\n    [_ETa, _CA, _CT, _Si, _SC, _K, _VI, _IL, _LM, _O, _RSe],\n    [0, [64 | 0, { [_xF]: 1 }], 0, 1, 0, 0, 0, 2, 4, () => Owner$, () => RestoreStatus$]\n];\nexport var OutputLocation$ = [3, n0, _OL,\n    0,\n    [_S_],\n    [[() => S3Location$, 0]]\n];\nexport var OutputSerialization$ = [3, n0, _OSu,\n    0,\n    [_CSV, _JSON],\n    [() => CSVOutput$, () => JSONOutput$]\n];\nexport var Owner$ = [3, n0, _O,\n    0,\n    [_DN, _ID],\n    [0, 0]\n];\nexport var OwnershipControls$ = [3, n0, _OC,\n    0,\n    [_R],\n    [[() => OwnershipControlsRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var OwnershipControlsRule$ = [3, n0, _OCR,\n    0,\n    [_OO],\n    [0], 1\n];\nexport var ParquetInput$ = [3, n0, _PI,\n    0,\n    [],\n    []\n];\nexport var Part$ = [3, n0, _Par,\n    0,\n    [_PN, _LM, _ETa, _Si, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh],\n    [1, 4, 0, 1, 0, 0, 0, 0, 0]\n];\nexport var PartitionedPrefix$ = [3, n0, _PP,\n    { [_xN]: _PP },\n    [_PDS],\n    [0]\n];\nexport var PolicyStatus$ = [3, n0, _PS,\n    0,\n    [_IP],\n    [[2, { [_xN]: _IP }]]\n];\nexport var Progress$ = [3, n0, _Pr,\n    0,\n    [_BS, _BP, _BRy],\n    [1, 1, 1]\n];\nexport var ProgressEvent$ = [3, n0, _PE,\n    0,\n    [_Det],\n    [[() => Progress$, { [_eP]: 1 }]]\n];\nexport var PublicAccessBlockConfiguration$ = [3, n0, _PABC,\n    0,\n    [_BPA, _IPA, _BPP, _RPB],\n    [[2, { [_xN]: _BPA }], [2, { [_xN]: _IPA }], [2, { [_xN]: _BPP }], [2, { [_xN]: _RPB }]]\n];\nexport var PutBucketAbacRequest$ = [3, n0, _PBAR,\n    0,\n    [_B, _AS, _CMD, _CA, _EBO],\n    [[0, 1], [() => AbacStatus$, { [_hP]: 1, [_xN]: _AS }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketAccelerateConfigurationRequest$ = [3, n0, _PBACR,\n    0,\n    [_B, _AC, _EBO, _CA],\n    [[0, 1], [() => AccelerateConfiguration$, { [_hP]: 1, [_xN]: _AC }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var PutBucketAclRequest$ = [3, n0, _PBARu,\n    0,\n    [_B, _ACL_, _ACP, _CMD, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _EBO],\n    [[0, 1], [0, { [_hH]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var PutBucketAnalyticsConfigurationRequest$ = [3, n0, _PBACRu,\n    0,\n    [_B, _I, _ACn, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [() => AnalyticsConfiguration$, { [_hP]: 1, [_xN]: _ACn }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketCorsRequest$ = [3, n0, _PBCR,\n    0,\n    [_B, _CORSC, _CMD, _CA, _EBO],\n    [[0, 1], [() => CORSConfiguration$, { [_hP]: 1, [_xN]: _CORSC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketEncryptionRequest$ = [3, n0, _PBER,\n    0,\n    [_B, _SSEC, _CMD, _CA, _EBO],\n    [[0, 1], [() => ServerSideEncryptionConfiguration$, { [_hP]: 1, [_xN]: _SSEC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketIntelligentTieringConfigurationRequest$ = [3, n0, _PBITCR,\n    0,\n    [_B, _I, _ITC, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [() => IntelligentTieringConfiguration$, { [_hP]: 1, [_xN]: _ITC }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketInventoryConfigurationRequest$ = [3, n0, _PBICR,\n    0,\n    [_B, _I, _IC, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [() => InventoryConfiguration$, { [_hP]: 1, [_xN]: _IC }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketLifecycleConfigurationOutput$ = [3, n0, _PBLCO,\n    0,\n    [_TDMOS],\n    [[0, { [_hH]: _xatdmos }]]\n];\nexport var PutBucketLifecycleConfigurationRequest$ = [3, n0, _PBLCR,\n    0,\n    [_B, _CA, _LCi, _EBO, _TDMOS],\n    [[0, 1], [0, { [_hH]: _xasca }], [() => BucketLifecycleConfiguration$, { [_hP]: 1, [_xN]: _LCi }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xatdmos }]], 1\n];\nexport var PutBucketLoggingRequest$ = [3, n0, _PBLR,\n    0,\n    [_B, _BLS, _CMD, _CA, _EBO],\n    [[0, 1], [() => BucketLoggingStatus$, { [_hP]: 1, [_xN]: _BLS }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketMetricsConfigurationRequest$ = [3, n0, _PBMCR,\n    0,\n    [_B, _I, _MCe, _EBO],\n    [[0, 1], [0, { [_hQ]: _i }], [() => MetricsConfiguration$, { [_hP]: 1, [_xN]: _MCe }], [0, { [_hH]: _xaebo }]], 3\n];\nexport var PutBucketNotificationConfigurationRequest$ = [3, n0, _PBNCR,\n    0,\n    [_B, _NC, _EBO, _SDV],\n    [[0, 1], [() => NotificationConfiguration$, { [_hP]: 1, [_xN]: _NC }], [0, { [_hH]: _xaebo }], [2, { [_hH]: _xasdv }]], 2\n];\nexport var PutBucketOwnershipControlsRequest$ = [3, n0, _PBOCR,\n    0,\n    [_B, _OC, _CMD, _EBO, _CA],\n    [[0, 1], [() => OwnershipControls$, { [_hP]: 1, [_xN]: _OC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasca }]], 2\n];\nexport var PutBucketPolicyRequest$ = [3, n0, _PBPR,\n    0,\n    [_B, _Po, _CMD, _CA, _CRSBA, _EBO],\n    [[0, 1], [0, 16], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [2, { [_hH]: _xacrsba }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketReplicationRequest$ = [3, n0, _PBRR,\n    0,\n    [_B, _RCe, _CMD, _CA, _To, _EBO],\n    [[0, 1], [() => ReplicationConfiguration$, { [_hP]: 1, [_xN]: _RCe }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xabolt }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketRequestPaymentRequest$ = [3, n0, _PBRPR,\n    0,\n    [_B, _RPC, _CMD, _CA, _EBO],\n    [[0, 1], [() => RequestPaymentConfiguration$, { [_hP]: 1, [_xN]: _RPC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketTaggingRequest$ = [3, n0, _PBTR,\n    0,\n    [_B, _Tag, _CMD, _CA, _EBO],\n    [[0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketVersioningRequest$ = [3, n0, _PBVR,\n    0,\n    [_B, _VC, _CMD, _CA, _MFA, _EBO],\n    [[0, 1], [() => VersioningConfiguration$, { [_hP]: 1, [_xN]: _VC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xam_ }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutBucketWebsiteRequest$ = [3, n0, _PBWR,\n    0,\n    [_B, _WC, _CMD, _CA, _EBO],\n    [[0, 1], [() => WebsiteConfiguration$, { [_hP]: 1, [_xN]: _WC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectAclOutput$ = [3, n0, _POAO,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectAclRequest$ = [3, n0, _POAR,\n    0,\n    [_B, _K, _ACL_, _ACP, _CMD, _CA, _GFC, _GR, _GRACP, _GW, _GWACP, _RP, _VI, _EBO],\n    [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [() => AccessControlPolicy$, { [_hP]: 1, [_xN]: _ACP }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagw }], [0, { [_hH]: _xagwa }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectLegalHoldOutput$ = [3, n0, _POLHO,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectLegalHoldRequest$ = [3, n0, _POLHR,\n    0,\n    [_B, _K, _LH, _RP, _VI, _CMD, _CA, _EBO],\n    [[0, 1], [0, 1], [() => ObjectLockLegalHold$, { [_hP]: 1, [_xN]: _LH }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectLockConfigurationOutput$ = [3, n0, _POLCO,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectLockConfigurationRequest$ = [3, n0, _POLCR,\n    0,\n    [_B, _OLC, _RP, _To, _CMD, _CA, _EBO],\n    [[0, 1], [() => ObjectLockConfiguration$, { [_hP]: 1, [_xN]: _OLC }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xabolt }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 1\n];\nexport var PutObjectOutput$ = [3, n0, _POO,\n    0,\n    [_E, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _CT, _SSE, _VI, _SSECA, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _Si, _RC],\n    [[0, { [_hH]: _xae }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xact }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xavi }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [1, { [_hH]: _xaos }], [0, { [_hH]: _xarc }]]\n];\nexport var PutObjectRequest$ = [3, n0, _POR,\n    0,\n    [_B, _K, _ACL_, _Bo, _CC, _CDo, _CEo, _CL, _CLo, _CMD, _CTo, _CA, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _Ex, _IM, _INM, _GFC, _GR, _GRACP, _GWACP, _WOB, _M, _SSE, _SC, _WRL, _SSECA, _SSECK, _SSECKMD, _SSEKMSKI, _SSEKMSEC, _BKE, _RP, _Tag, _OLM, _OLRUD, _OLLHS, _EBO],\n    [[0, 1], [0, 1], [0, { [_hH]: _xaa }], [() => StreamingBlob, 16], [0, { [_hH]: _CC_ }], [0, { [_hH]: _CD_ }], [0, { [_hH]: _CE_ }], [0, { [_hH]: _CL_ }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _CM }], [0, { [_hH]: _CT_ }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [4, { [_hH]: _Ex }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [0, { [_hH]: _xagfc }], [0, { [_hH]: _xagr }], [0, { [_hH]: _xagra }], [0, { [_hH]: _xagwa }], [1, { [_hH]: _xawob }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasc }], [0, { [_hH]: _xawrl }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [() => SSEKMSEncryptionContext, { [_hH]: _xassec }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xat }], [0, { [_hH]: _xaolm }], [5, { [_hH]: _xaolrud }], [0, { [_hH]: _xaollh }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectRetentionOutput$ = [3, n0, _PORO,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var PutObjectRetentionRequest$ = [3, n0, _PORR,\n    0,\n    [_B, _K, _Ret, _RP, _VI, _BGR, _CMD, _CA, _EBO],\n    [[0, 1], [0, 1], [() => ObjectLockRetention$, { [_hP]: 1, [_xN]: _Ret }], [0, { [_hH]: _xarp }], [0, { [_hQ]: _vI }], [2, { [_hH]: _xabgr }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var PutObjectTaggingOutput$ = [3, n0, _POTO,\n    0,\n    [_VI],\n    [[0, { [_hH]: _xavi }]]\n];\nexport var PutObjectTaggingRequest$ = [3, n0, _POTR,\n    0,\n    [_B, _K, _Tag, _VI, _CMD, _CA, _EBO, _RP],\n    [[0, 1], [0, 1], [() => Tagging$, { [_hP]: 1, [_xN]: _Tag }], [0, { [_hQ]: _vI }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xarp }]], 3\n];\nexport var PutPublicAccessBlockRequest$ = [3, n0, _PPABR,\n    0,\n    [_B, _PABC, _CMD, _CA, _EBO],\n    [[0, 1], [() => PublicAccessBlockConfiguration$, { [_hP]: 1, [_xN]: _PABC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var QueueConfiguration$ = [3, n0, _QCue,\n    0,\n    [_QA, _Ev, _I, _F],\n    [[0, { [_xN]: _Qu }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var RecordExpiration$ = [3, n0, _REe,\n    0,\n    [_E, _D],\n    [0, 1], 1\n];\nexport var RecordsEvent$ = [3, n0, _REec,\n    0,\n    [_Payl],\n    [[21, { [_eP]: 1 }]]\n];\nexport var Redirect$ = [3, n0, _Red,\n    0,\n    [_HN, _HRC, _Pro, _RKPW, _RKW],\n    [0, 0, 0, 0, 0]\n];\nexport var RedirectAllRequestsTo$ = [3, n0, _RART,\n    0,\n    [_HN, _Pro],\n    [0, 0], 1\n];\nexport var RenameObjectOutput$ = [3, n0, _ROO,\n    0,\n    [],\n    []\n];\nexport var RenameObjectRequest$ = [3, n0, _ROR,\n    0,\n    [_B, _K, _RSen, _DIM, _DINM, _DIMS, _DIUS, _SIM, _SINM, _SIMS, _SIUS, _CTl],\n    [[0, 1], [0, 1], [0, { [_hH]: _xars_ }], [0, { [_hH]: _IM_ }], [0, { [_hH]: _INM_ }], [4, { [_hH]: _IMS_ }], [4, { [_hH]: _IUS_ }], [0, { [_hH]: _xarsim }], [0, { [_hH]: _xarsinm }], [6, { [_hH]: _xarsims }], [6, { [_hH]: _xarsius }], [0, { [_hH]: _xact_, [_iT]: 1 }]], 3\n];\nexport var ReplicaModifications$ = [3, n0, _RM,\n    0,\n    [_S],\n    [0], 1\n];\nexport var ReplicationConfiguration$ = [3, n0, _RCe,\n    0,\n    [_Ro, _R],\n    [0, [() => ReplicationRules, { [_xF]: 1, [_xN]: _Ru }]], 2\n];\nexport var ReplicationRule$ = [3, n0, _RRe,\n    0,\n    [_S, _Des, _ID, _Pri, _P, _F, _SSC, _EOR, _DMR],\n    [0, () => Destination$, 0, 1, 0, [() => ReplicationRuleFilter$, 0], () => SourceSelectionCriteria$, () => ExistingObjectReplication$, () => DeleteMarkerReplication$], 2\n];\nexport var ReplicationRuleAndOperator$ = [3, n0, _RRAO,\n    0,\n    [_P, _T],\n    [0, [() => TagSet, { [_xF]: 1, [_xN]: _Ta }]]\n];\nexport var ReplicationRuleFilter$ = [3, n0, _RRF,\n    0,\n    [_P, _Ta, _An],\n    [0, () => Tag$, [() => ReplicationRuleAndOperator$, 0]]\n];\nexport var ReplicationTime$ = [3, n0, _RT,\n    0,\n    [_S, _Tim],\n    [0, () => ReplicationTimeValue$], 2\n];\nexport var ReplicationTimeValue$ = [3, n0, _RTV,\n    0,\n    [_Mi],\n    [1]\n];\nexport var RequestPaymentConfiguration$ = [3, n0, _RPC,\n    0,\n    [_Pay],\n    [0], 1\n];\nexport var RequestProgress$ = [3, n0, _RPe,\n    0,\n    [_Ena],\n    [2]\n];\nexport var RestoreObjectOutput$ = [3, n0, _ROOe,\n    0,\n    [_RC, _ROP],\n    [[0, { [_hH]: _xarc }], [0, { [_hH]: _xarop }]]\n];\nexport var RestoreObjectRequest$ = [3, n0, _RORe,\n    0,\n    [_B, _K, _VI, _RRes, _RP, _CA, _EBO],\n    [[0, 1], [0, 1], [0, { [_hQ]: _vI }], [() => RestoreRequest$, { [_hP]: 1, [_xN]: _RRes }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var RestoreRequest$ = [3, n0, _RRes,\n    0,\n    [_D, _GJP, _Ty, _Ti, _Desc, _SP, _OL],\n    [1, () => GlacierJobParameters$, 0, 0, 0, () => SelectParameters$, [() => OutputLocation$, 0]]\n];\nexport var RestoreStatus$ = [3, n0, _RSe,\n    0,\n    [_IRIP, _RED],\n    [2, 4]\n];\nexport var RoutingRule$ = [3, n0, _RRo,\n    0,\n    [_Red, _Co],\n    [() => Redirect$, () => Condition$], 1\n];\nexport var S3KeyFilter$ = [3, n0, _SKF,\n    0,\n    [_FRi],\n    [[() => FilterRuleList, { [_xF]: 1, [_xN]: _FR }]]\n];\nexport var S3Location$ = [3, n0, _SL,\n    0,\n    [_BNu, _P, _En, _CACL, _ACL, _Tag, _UM, _SC],\n    [0, 0, [() => Encryption$, 0], 0, [() => Grants, 0], [() => Tagging$, 0], [() => UserMetadata, 0], 0], 2\n];\nexport var S3TablesDestination$ = [3, n0, _STD,\n    0,\n    [_TBA, _TNa],\n    [0, 0], 2\n];\nexport var S3TablesDestinationResult$ = [3, n0, _STDR,\n    0,\n    [_TBA, _TNa, _TA, _TN],\n    [0, 0, 0, 0], 4\n];\nexport var ScanRange$ = [3, n0, _SR,\n    0,\n    [_St, _End],\n    [1, 1]\n];\nexport var SelectObjectContentOutput$ = [3, n0, _SOCO,\n    0,\n    [_Payl],\n    [[() => SelectObjectContentEventStream$, 16]]\n];\nexport var SelectObjectContentRequest$ = [3, n0, _SOCR,\n    0,\n    [_B, _K, _Exp, _ETx, _IS, _OSu, _SSECA, _SSECK, _SSECKMD, _RPe, _SR, _EBO],\n    [[0, 1], [0, 1], 0, 0, () => InputSerialization$, () => OutputSerialization$, [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], () => RequestProgress$, () => ScanRange$, [0, { [_hH]: _xaebo }]], 6\n];\nexport var SelectParameters$ = [3, n0, _SP,\n    0,\n    [_IS, _ETx, _Exp, _OSu],\n    [() => InputSerialization$, 0, 0, () => OutputSerialization$], 4\n];\nexport var ServerSideEncryptionByDefault$ = [3, n0, _SSEBD,\n    0,\n    [_SSEA, _KMSMKID],\n    [0, [() => SSEKMSKeyId, 0]], 1\n];\nexport var ServerSideEncryptionConfiguration$ = [3, n0, _SSEC,\n    0,\n    [_R],\n    [[() => ServerSideEncryptionRules, { [_xF]: 1, [_xN]: _Ru }]], 1\n];\nexport var ServerSideEncryptionRule$ = [3, n0, _SSER,\n    0,\n    [_ASSEBD, _BKE, _BET],\n    [[() => ServerSideEncryptionByDefault$, 0], 2, [() => BlockedEncryptionTypes$, 0]]\n];\nexport var SessionCredentials$ = [3, n0, _SCe,\n    0,\n    [_AKI, _SAK, _ST, _E],\n    [[0, { [_xN]: _AKI }], [() => SessionCredentialValue, { [_xN]: _SAK }], [() => SessionCredentialValue, { [_xN]: _ST }], [4, { [_xN]: _E }]], 4\n];\nexport var SimplePrefix$ = [3, n0, _SPi,\n    { [_xN]: _SPi },\n    [],\n    []\n];\nexport var SourceSelectionCriteria$ = [3, n0, _SSC,\n    0,\n    [_SKEO, _RM],\n    [() => SseKmsEncryptedObjects$, () => ReplicaModifications$]\n];\nexport var SSEKMS$ = [3, n0, _SSEKMS,\n    { [_xN]: _SK },\n    [_KI],\n    [[() => SSEKMSKeyId, 0]], 1\n];\nexport var SseKmsEncryptedObjects$ = [3, n0, _SKEO,\n    0,\n    [_S],\n    [0], 1\n];\nexport var SSEKMSEncryption$ = [3, n0, _SSEKMSE,\n    { [_xN]: _SK },\n    [_KMSKA, _BKE],\n    [[() => NonEmptyKmsKeyArnString, 0], 2], 1\n];\nexport var SSES3$ = [3, n0, _SSES,\n    { [_xN]: _SS },\n    [],\n    []\n];\nexport var Stats$ = [3, n0, _Sta,\n    0,\n    [_BS, _BP, _BRy],\n    [1, 1, 1]\n];\nexport var StatsEvent$ = [3, n0, _SE,\n    0,\n    [_Det],\n    [[() => Stats$, { [_eP]: 1 }]]\n];\nexport var StorageClassAnalysis$ = [3, n0, _SCA,\n    0,\n    [_DE],\n    [() => StorageClassAnalysisDataExport$]\n];\nexport var StorageClassAnalysisDataExport$ = [3, n0, _SCADE,\n    0,\n    [_OSV, _Des],\n    [0, () => AnalyticsExportDestination$], 2\n];\nexport var Tag$ = [3, n0, _Ta,\n    0,\n    [_K, _V],\n    [0, 0], 2\n];\nexport var Tagging$ = [3, n0, _Tag,\n    0,\n    [_TS],\n    [[() => TagSet, 0]], 1\n];\nexport var TargetGrant$ = [3, n0, _TGa,\n    0,\n    [_Gra, _Pe],\n    [[() => Grantee$, { [_xNm]: [_x, _hi] }], 0]\n];\nexport var TargetObjectKeyFormat$ = [3, n0, _TOKF,\n    0,\n    [_SPi, _PP],\n    [[() => SimplePrefix$, { [_xN]: _SPi }], [() => PartitionedPrefix$, { [_xN]: _PP }]]\n];\nexport var Tiering$ = [3, n0, _Tier,\n    0,\n    [_D, _AT],\n    [1, 0], 2\n];\nexport var TopicConfiguration$ = [3, n0, _TCop,\n    0,\n    [_TAo, _Ev, _I, _F],\n    [[0, { [_xN]: _Top }], [64 | 0, { [_xF]: 1, [_xN]: _Eve }], 0, [() => NotificationConfigurationFilter$, 0]], 2\n];\nexport var Transition$ = [3, n0, _Tra,\n    0,\n    [_Da, _D, _SC],\n    [5, 1, 0]\n];\nexport var UpdateBucketMetadataInventoryTableConfigurationRequest$ = [3, n0, _UBMITCR,\n    0,\n    [_B, _ITCn, _CMD, _CA, _EBO],\n    [[0, 1], [() => InventoryTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _ITCn }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var UpdateBucketMetadataJournalTableConfigurationRequest$ = [3, n0, _UBMJTCR,\n    0,\n    [_B, _JTC, _CMD, _CA, _EBO],\n    [[0, 1], [() => JournalTableConfigurationUpdates$, { [_hP]: 1, [_xN]: _JTC }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xaebo }]], 2\n];\nexport var UpdateObjectEncryptionRequest$ = [3, n0, _UOER,\n    0,\n    [_B, _K, _OE, _VI, _RP, _EBO, _CMD, _CA],\n    [[0, 1], [0, 1], [() => ObjectEncryption$, 16], [0, { [_hQ]: _vI }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }]], 3\n];\nexport var UpdateObjectEncryptionResponse$ = [3, n0, _UOERp,\n    0,\n    [_RC],\n    [[0, { [_hH]: _xarc }]]\n];\nexport var UploadPartCopyOutput$ = [3, n0, _UPCO,\n    0,\n    [_CSVI, _CPR, _SSE, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC],\n    [[0, { [_hH]: _xacsvi }], [() => CopyPartResult$, 16], [0, { [_hH]: _xasse }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var UploadPartCopyRequest$ = [3, n0, _UPCR,\n    0,\n    [_B, _CS, _K, _PN, _UI, _CSIM, _CSIMS, _CSINM, _CSIUS, _CSRo, _SSECA, _SSECK, _SSECKMD, _CSSSECA, _CSSSECK, _CSSSECKMD, _RP, _EBO, _ESBO],\n    [[0, 1], [0, { [_hH]: _xacs__ }], [0, 1], [1, { [_hQ]: _pN }], [0, { [_hQ]: _uI }], [0, { [_hH]: _xacsim }], [4, { [_hH]: _xacsims }], [0, { [_hH]: _xacsinm }], [4, { [_hH]: _xacsius }], [0, { [_hH]: _xacsr }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xacssseca }], [() => CopySourceSSECustomerKey, { [_hH]: _xacssseck }], [0, { [_hH]: _xacssseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }], [0, { [_hH]: _xasebo }]], 5\n];\nexport var UploadPartOutput$ = [3, n0, _UPO,\n    0,\n    [_SSE, _ETa, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _SSECA, _SSECKMD, _SSEKMSKI, _BKE, _RC],\n    [[0, { [_hH]: _xasse }], [0, { [_hH]: _ETa }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xasseca }], [0, { [_hH]: _xasseckM }], [() => SSEKMSKeyId, { [_hH]: _xasseakki }], [2, { [_hH]: _xassebke }], [0, { [_hH]: _xarc }]]\n];\nexport var UploadPartRequest$ = [3, n0, _UPR,\n    0,\n    [_B, _K, _PN, _UI, _Bo, _CLo, _CMD, _CA, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _SSECA, _SSECK, _SSECKMD, _RP, _EBO],\n    [[0, 1], [0, 1], [1, { [_hQ]: _pN }], [0, { [_hQ]: _uI }], [() => StreamingBlob, 16], [1, { [_hH]: _CL__ }], [0, { [_hH]: _CM }], [0, { [_hH]: _xasca }], [0, { [_hH]: _xacc }], [0, { [_hH]: _xacc_ }], [0, { [_hH]: _xacc__ }], [0, { [_hH]: _xacs }], [0, { [_hH]: _xacs_ }], [0, { [_hH]: _xasseca }], [() => SSECustomerKey, { [_hH]: _xasseck }], [0, { [_hH]: _xasseckM }], [0, { [_hH]: _xarp }], [0, { [_hH]: _xaebo }]], 4\n];\nexport var VersioningConfiguration$ = [3, n0, _VC,\n    0,\n    [_MFAD, _S],\n    [[0, { [_xN]: _MDf }], 0]\n];\nexport var WebsiteConfiguration$ = [3, n0, _WC,\n    0,\n    [_EDr, _IDn, _RART, _RR],\n    [() => ErrorDocument$, () => IndexDocument$, () => RedirectAllRequestsTo$, [() => RoutingRules, 0]]\n];\nexport var WriteGetObjectResponseRequest$ = [3, n0, _WGORR,\n    0,\n    [_RReq, _RTe, _Bo, _SCt, _ECr, _EM, _AR, _CC, _CDo, _CEo, _CL, _CLo, _CR, _CTo, _CCRC, _CCRCC, _CCRCNVME, _CSHA, _CSHAh, _DM, _ETa, _Ex, _E, _LM, _MM, _M, _OLM, _OLLHS, _OLRUD, _PC, _RS, _RC, _Re, _SSE, _SSECA, _SSEKMSKI, _SSECKMD, _SC, _TC, _VI, _BKE],\n    [[0, { [_hL]: 1, [_hH]: _xarr }], [0, { [_hH]: _xart }], [() => StreamingBlob, 16], [1, { [_hH]: _xafs }], [0, { [_hH]: _xafec }], [0, { [_hH]: _xafem }], [0, { [_hH]: _xafhar }], [0, { [_hH]: _xafhCC }], [0, { [_hH]: _xafhCD }], [0, { [_hH]: _xafhCE }], [0, { [_hH]: _xafhCL }], [1, { [_hH]: _CL__ }], [0, { [_hH]: _xafhCR }], [0, { [_hH]: _xafhCT }], [0, { [_hH]: _xafhxacc }], [0, { [_hH]: _xafhxacc_ }], [0, { [_hH]: _xafhxacc__ }], [0, { [_hH]: _xafhxacs }], [0, { [_hH]: _xafhxacs_ }], [2, { [_hH]: _xafhxadm }], [0, { [_hH]: _xafhE }], [4, { [_hH]: _xafhE_ }], [0, { [_hH]: _xafhxae }], [4, { [_hH]: _xafhLM }], [1, { [_hH]: _xafhxamm }], [128 | 0, { [_hPH]: _xam }], [0, { [_hH]: _xafhxaolm }], [0, { [_hH]: _xafhxaollh }], [5, { [_hH]: _xafhxaolrud }], [1, { [_hH]: _xafhxampc }], [0, { [_hH]: _xafhxars }], [0, { [_hH]: _xafhxarc }], [0, { [_hH]: _xafhxar }], [0, { [_hH]: _xafhxasse }], [0, { [_hH]: _xafhxasseca }], [() => SSEKMSKeyId, { [_hH]: _xafhxasseakki }], [0, { [_hH]: _xafhxasseckM }], [0, { [_hH]: _xafhxasc }], [1, { [_hH]: _xafhxatc }], [0, { [_hH]: _xafhxavi }], [2, { [_hH]: _xafhxassebke }]], 2\n];\nvar __Unit = \"unit\";\nvar AllowedHeaders = 64 | 0;\nvar AllowedMethods = 64 | 0;\nvar AllowedOrigins = 64 | 0;\nvar AnalyticsConfigurationList = [1, n0, _ACLn,\n    0, [() => AnalyticsConfiguration$,\n        0]\n];\nvar Buckets = [1, n0, _Bu,\n    0, [() => Bucket$,\n        { [_xN]: _B }]\n];\nvar ChecksumAlgorithmList = 64 | 0;\nvar CommonPrefixList = [1, n0, _CPL,\n    0, () => CommonPrefix$\n];\nvar CompletedPartList = [1, n0, _CPLo,\n    0, () => CompletedPart$\n];\nvar CORSRules = [1, n0, _CORSR,\n    0, [() => CORSRule$,\n        0]\n];\nvar DeletedObjects = [1, n0, _DOe,\n    0, () => DeletedObject$\n];\nvar DeleteMarkers = [1, n0, _DMe,\n    0, () => DeleteMarkerEntry$\n];\nvar EncryptionTypeList = [1, n0, _ETL,\n    0, [0,\n        { [_xN]: _ET }]\n];\nvar Errors = [1, n0, _Er,\n    0, () => _Error$\n];\nvar EventList = 64 | 0;\nvar ExposeHeaders = 64 | 0;\nvar FilterRuleList = [1, n0, _FRL,\n    0, () => FilterRule$\n];\nvar Grants = [1, n0, _G,\n    0, [() => Grant$,\n        { [_xN]: _Gr }]\n];\nvar IntelligentTieringConfigurationList = [1, n0, _ITCL,\n    0, [() => IntelligentTieringConfiguration$,\n        0]\n];\nvar InventoryConfigurationList = [1, n0, _ICL,\n    0, [() => InventoryConfiguration$,\n        0]\n];\nvar InventoryOptionalFields = [1, n0, _IOF,\n    0, [0,\n        { [_xN]: _Fi }]\n];\nvar LambdaFunctionConfigurationList = [1, n0, _LFCL,\n    0, [() => LambdaFunctionConfiguration$,\n        0]\n];\nvar LifecycleRules = [1, n0, _LRi,\n    0, [() => LifecycleRule$,\n        0]\n];\nvar MetricsConfigurationList = [1, n0, _MCL,\n    0, [() => MetricsConfiguration$,\n        0]\n];\nvar MultipartUploadList = [1, n0, _MUL,\n    0, () => MultipartUpload$\n];\nvar NoncurrentVersionTransitionList = [1, n0, _NVTL,\n    0, () => NoncurrentVersionTransition$\n];\nvar ObjectAttributesList = 64 | 0;\nvar ObjectIdentifierList = [1, n0, _OIL,\n    0, () => ObjectIdentifier$\n];\nvar ObjectList = [1, n0, _OLb,\n    0, [() => _Object$,\n        0]\n];\nvar ObjectVersionList = [1, n0, _OVL,\n    0, [() => ObjectVersion$,\n        0]\n];\nvar OptionalObjectAttributesList = 64 | 0;\nvar OwnershipControlsRules = [1, n0, _OCRw,\n    0, () => OwnershipControlsRule$\n];\nvar Parts = [1, n0, _Pa,\n    0, () => Part$\n];\nvar PartsList = [1, n0, _PL,\n    0, () => ObjectPart$\n];\nvar QueueConfigurationList = [1, n0, _QCL,\n    0, [() => QueueConfiguration$,\n        0]\n];\nvar ReplicationRules = [1, n0, _RRep,\n    0, [() => ReplicationRule$,\n        0]\n];\nvar RoutingRules = [1, n0, _RR,\n    0, [() => RoutingRule$,\n        { [_xN]: _RRo }]\n];\nvar ServerSideEncryptionRules = [1, n0, _SSERe,\n    0, [() => ServerSideEncryptionRule$,\n        0]\n];\nvar TagSet = [1, n0, _TS,\n    0, [() => Tag$,\n        { [_xN]: _Ta }]\n];\nvar TargetGrants = [1, n0, _TG,\n    0, [() => TargetGrant$,\n        { [_xN]: _Gr }]\n];\nvar TieringList = [1, n0, _TL,\n    0, () => Tiering$\n];\nvar TopicConfigurationList = [1, n0, _TCL,\n    0, [() => TopicConfiguration$,\n        0]\n];\nvar TransitionList = [1, n0, _TLr,\n    0, () => Transition$\n];\nvar UserMetadata = [1, n0, _UM,\n    0, [() => MetadataEntry$,\n        { [_xN]: _ME }]\n];\nvar Metadata = 128 | 0;\nexport var AnalyticsFilter$ = [4, n0, _AF,\n    0,\n    [_P, _Ta, _An],\n    [0, () => Tag$, [() => AnalyticsAndOperator$, 0]]\n];\nexport var MetricsFilter$ = [4, n0, _MF,\n    0,\n    [_P, _Ta, _APAc, _An],\n    [0, () => Tag$, 0, [() => MetricsAndOperator$, 0]]\n];\nexport var ObjectEncryption$ = [4, n0, _OE,\n    0,\n    [_SSEKMS],\n    [[() => SSEKMSEncryption$, { [_xN]: _SK }]]\n];\nexport var SelectObjectContentEventStream$ = [4, n0, _SOCES,\n    { [_st]: 1 },\n    [_Rec, _Sta, _Pr, _Cont, _End],\n    [[() => RecordsEvent$, 0], [() => StatsEvent$, 0], [() => ProgressEvent$, 0], () => ContinuationEvent$, () => EndEvent$]\n];\nexport var AbortMultipartUpload$ = [9, n0, _AMU,\n    { [_h]: [\"DELETE\", \"/{Key+}?x-id=AbortMultipartUpload\", 204] }, () => AbortMultipartUploadRequest$, () => AbortMultipartUploadOutput$\n];\nexport var CompleteMultipartUpload$ = [9, n0, _CMUo,\n    { [_h]: [\"POST\", \"/{Key+}\", 200] }, () => CompleteMultipartUploadRequest$, () => CompleteMultipartUploadOutput$\n];\nexport var CopyObject$ = [9, n0, _CO,\n    { [_h]: [\"PUT\", \"/{Key+}?x-id=CopyObject\", 200] }, () => CopyObjectRequest$, () => CopyObjectOutput$\n];\nexport var CreateBucket$ = [9, n0, _CB,\n    { [_h]: [\"PUT\", \"/\", 200] }, () => CreateBucketRequest$, () => CreateBucketOutput$\n];\nexport var CreateBucketMetadataConfiguration$ = [9, n0, _CBMC,\n    { [_hC]: \"-\", [_h]: [\"POST\", \"/?metadataConfiguration\", 200] }, () => CreateBucketMetadataConfigurationRequest$, () => __Unit\n];\nexport var CreateBucketMetadataTableConfiguration$ = [9, n0, _CBMTC,\n    { [_hC]: \"-\", [_h]: [\"POST\", \"/?metadataTable\", 200] }, () => CreateBucketMetadataTableConfigurationRequest$, () => __Unit\n];\nexport var CreateMultipartUpload$ = [9, n0, _CMUr,\n    { [_h]: [\"POST\", \"/{Key+}?uploads\", 200] }, () => CreateMultipartUploadRequest$, () => CreateMultipartUploadOutput$\n];\nexport var CreateSession$ = [9, n0, _CSr,\n    { [_h]: [\"GET\", \"/?session\", 200] }, () => CreateSessionRequest$, () => CreateSessionOutput$\n];\nexport var DeleteBucket$ = [9, n0, _DB,\n    { [_h]: [\"DELETE\", \"/\", 204] }, () => DeleteBucketRequest$, () => __Unit\n];\nexport var DeleteBucketAnalyticsConfiguration$ = [9, n0, _DBAC,\n    { [_h]: [\"DELETE\", \"/?analytics\", 204] }, () => DeleteBucketAnalyticsConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketCors$ = [9, n0, _DBC,\n    { [_h]: [\"DELETE\", \"/?cors\", 204] }, () => DeleteBucketCorsRequest$, () => __Unit\n];\nexport var DeleteBucketEncryption$ = [9, n0, _DBE,\n    { [_h]: [\"DELETE\", \"/?encryption\", 204] }, () => DeleteBucketEncryptionRequest$, () => __Unit\n];\nexport var DeleteBucketIntelligentTieringConfiguration$ = [9, n0, _DBITC,\n    { [_h]: [\"DELETE\", \"/?intelligent-tiering\", 204] }, () => DeleteBucketIntelligentTieringConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketInventoryConfiguration$ = [9, n0, _DBIC,\n    { [_h]: [\"DELETE\", \"/?inventory\", 204] }, () => DeleteBucketInventoryConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketLifecycle$ = [9, n0, _DBL,\n    { [_h]: [\"DELETE\", \"/?lifecycle\", 204] }, () => DeleteBucketLifecycleRequest$, () => __Unit\n];\nexport var DeleteBucketMetadataConfiguration$ = [9, n0, _DBMC,\n    { [_h]: [\"DELETE\", \"/?metadataConfiguration\", 204] }, () => DeleteBucketMetadataConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketMetadataTableConfiguration$ = [9, n0, _DBMTC,\n    { [_h]: [\"DELETE\", \"/?metadataTable\", 204] }, () => DeleteBucketMetadataTableConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketMetricsConfiguration$ = [9, n0, _DBMCe,\n    { [_h]: [\"DELETE\", \"/?metrics\", 204] }, () => DeleteBucketMetricsConfigurationRequest$, () => __Unit\n];\nexport var DeleteBucketOwnershipControls$ = [9, n0, _DBOC,\n    { [_h]: [\"DELETE\", \"/?ownershipControls\", 204] }, () => DeleteBucketOwnershipControlsRequest$, () => __Unit\n];\nexport var DeleteBucketPolicy$ = [9, n0, _DBP,\n    { [_h]: [\"DELETE\", \"/?policy\", 204] }, () => DeleteBucketPolicyRequest$, () => __Unit\n];\nexport var DeleteBucketReplication$ = [9, n0, _DBRe,\n    { [_h]: [\"DELETE\", \"/?replication\", 204] }, () => DeleteBucketReplicationRequest$, () => __Unit\n];\nexport var DeleteBucketTagging$ = [9, n0, _DBT,\n    { [_h]: [\"DELETE\", \"/?tagging\", 204] }, () => DeleteBucketTaggingRequest$, () => __Unit\n];\nexport var DeleteBucketWebsite$ = [9, n0, _DBW,\n    { [_h]: [\"DELETE\", \"/?website\", 204] }, () => DeleteBucketWebsiteRequest$, () => __Unit\n];\nexport var DeleteObject$ = [9, n0, _DOel,\n    { [_h]: [\"DELETE\", \"/{Key+}?x-id=DeleteObject\", 204] }, () => DeleteObjectRequest$, () => DeleteObjectOutput$\n];\nexport var DeleteObjects$ = [9, n0, _DOele,\n    { [_hC]: \"-\", [_h]: [\"POST\", \"/?delete\", 200] }, () => DeleteObjectsRequest$, () => DeleteObjectsOutput$\n];\nexport var DeleteObjectTagging$ = [9, n0, _DOT,\n    { [_h]: [\"DELETE\", \"/{Key+}?tagging\", 204] }, () => DeleteObjectTaggingRequest$, () => DeleteObjectTaggingOutput$\n];\nexport var DeletePublicAccessBlock$ = [9, n0, _DPAB,\n    { [_h]: [\"DELETE\", \"/?publicAccessBlock\", 204] }, () => DeletePublicAccessBlockRequest$, () => __Unit\n];\nexport var GetBucketAbac$ = [9, n0, _GBA,\n    { [_h]: [\"GET\", \"/?abac\", 200] }, () => GetBucketAbacRequest$, () => GetBucketAbacOutput$\n];\nexport var GetBucketAccelerateConfiguration$ = [9, n0, _GBAC,\n    { [_h]: [\"GET\", \"/?accelerate\", 200] }, () => GetBucketAccelerateConfigurationRequest$, () => GetBucketAccelerateConfigurationOutput$\n];\nexport var GetBucketAcl$ = [9, n0, _GBAe,\n    { [_h]: [\"GET\", \"/?acl\", 200] }, () => GetBucketAclRequest$, () => GetBucketAclOutput$\n];\nexport var GetBucketAnalyticsConfiguration$ = [9, n0, _GBACe,\n    { [_h]: [\"GET\", \"/?analytics&x-id=GetBucketAnalyticsConfiguration\", 200] }, () => GetBucketAnalyticsConfigurationRequest$, () => GetBucketAnalyticsConfigurationOutput$\n];\nexport var GetBucketCors$ = [9, n0, _GBC,\n    { [_h]: [\"GET\", \"/?cors\", 200] }, () => GetBucketCorsRequest$, () => GetBucketCorsOutput$\n];\nexport var GetBucketEncryption$ = [9, n0, _GBE,\n    { [_h]: [\"GET\", \"/?encryption\", 200] }, () => GetBucketEncryptionRequest$, () => GetBucketEncryptionOutput$\n];\nexport var GetBucketIntelligentTieringConfiguration$ = [9, n0, _GBITC,\n    { [_h]: [\"GET\", \"/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration\", 200] }, () => GetBucketIntelligentTieringConfigurationRequest$, () => GetBucketIntelligentTieringConfigurationOutput$\n];\nexport var GetBucketInventoryConfiguration$ = [9, n0, _GBIC,\n    { [_h]: [\"GET\", \"/?inventory&x-id=GetBucketInventoryConfiguration\", 200] }, () => GetBucketInventoryConfigurationRequest$, () => GetBucketInventoryConfigurationOutput$\n];\nexport var GetBucketLifecycleConfiguration$ = [9, n0, _GBLC,\n    { [_h]: [\"GET\", \"/?lifecycle\", 200] }, () => GetBucketLifecycleConfigurationRequest$, () => GetBucketLifecycleConfigurationOutput$\n];\nexport var GetBucketLocation$ = [9, n0, _GBL,\n    { [_h]: [\"GET\", \"/?location\", 200] }, () => GetBucketLocationRequest$, () => GetBucketLocationOutput$\n];\nexport var GetBucketLogging$ = [9, n0, _GBLe,\n    { [_h]: [\"GET\", \"/?logging\", 200] }, () => GetBucketLoggingRequest$, () => GetBucketLoggingOutput$\n];\nexport var GetBucketMetadataConfiguration$ = [9, n0, _GBMC,\n    { [_h]: [\"GET\", \"/?metadataConfiguration\", 200] }, () => GetBucketMetadataConfigurationRequest$, () => GetBucketMetadataConfigurationOutput$\n];\nexport var GetBucketMetadataTableConfiguration$ = [9, n0, _GBMTC,\n    { [_h]: [\"GET\", \"/?metadataTable\", 200] }, () => GetBucketMetadataTableConfigurationRequest$, () => GetBucketMetadataTableConfigurationOutput$\n];\nexport var GetBucketMetricsConfiguration$ = [9, n0, _GBMCe,\n    { [_h]: [\"GET\", \"/?metrics&x-id=GetBucketMetricsConfiguration\", 200] }, () => GetBucketMetricsConfigurationRequest$, () => GetBucketMetricsConfigurationOutput$\n];\nexport var GetBucketNotificationConfiguration$ = [9, n0, _GBNC,\n    { [_h]: [\"GET\", \"/?notification\", 200] }, () => GetBucketNotificationConfigurationRequest$, () => NotificationConfiguration$\n];\nexport var GetBucketOwnershipControls$ = [9, n0, _GBOC,\n    { [_h]: [\"GET\", \"/?ownershipControls\", 200] }, () => GetBucketOwnershipControlsRequest$, () => GetBucketOwnershipControlsOutput$\n];\nexport var GetBucketPolicy$ = [9, n0, _GBP,\n    { [_h]: [\"GET\", \"/?policy\", 200] }, () => GetBucketPolicyRequest$, () => GetBucketPolicyOutput$\n];\nexport var GetBucketPolicyStatus$ = [9, n0, _GBPS,\n    { [_h]: [\"GET\", \"/?policyStatus\", 200] }, () => GetBucketPolicyStatusRequest$, () => GetBucketPolicyStatusOutput$\n];\nexport var GetBucketReplication$ = [9, n0, _GBR,\n    { [_h]: [\"GET\", \"/?replication\", 200] }, () => GetBucketReplicationRequest$, () => GetBucketReplicationOutput$\n];\nexport var GetBucketRequestPayment$ = [9, n0, _GBRP,\n    { [_h]: [\"GET\", \"/?requestPayment\", 200] }, () => GetBucketRequestPaymentRequest$, () => GetBucketRequestPaymentOutput$\n];\nexport var GetBucketTagging$ = [9, n0, _GBT,\n    { [_h]: [\"GET\", \"/?tagging\", 200] }, () => GetBucketTaggingRequest$, () => GetBucketTaggingOutput$\n];\nexport var GetBucketVersioning$ = [9, n0, _GBV,\n    { [_h]: [\"GET\", \"/?versioning\", 200] }, () => GetBucketVersioningRequest$, () => GetBucketVersioningOutput$\n];\nexport var GetBucketWebsite$ = [9, n0, _GBW,\n    { [_h]: [\"GET\", \"/?website\", 200] }, () => GetBucketWebsiteRequest$, () => GetBucketWebsiteOutput$\n];\nexport var GetObject$ = [9, n0, _GO,\n    { [_hC]: \"-\", [_h]: [\"GET\", \"/{Key+}?x-id=GetObject\", 200] }, () => GetObjectRequest$, () => GetObjectOutput$\n];\nexport var GetObjectAcl$ = [9, n0, _GOA,\n    { [_h]: [\"GET\", \"/{Key+}?acl\", 200] }, () => GetObjectAclRequest$, () => GetObjectAclOutput$\n];\nexport var GetObjectAttributes$ = [9, n0, _GOAe,\n    { [_h]: [\"GET\", \"/{Key+}?attributes\", 200] }, () => GetObjectAttributesRequest$, () => GetObjectAttributesOutput$\n];\nexport var GetObjectLegalHold$ = [9, n0, _GOLH,\n    { [_h]: [\"GET\", \"/{Key+}?legal-hold\", 200] }, () => GetObjectLegalHoldRequest$, () => GetObjectLegalHoldOutput$\n];\nexport var GetObjectLockConfiguration$ = [9, n0, _GOLC,\n    { [_h]: [\"GET\", \"/?object-lock\", 200] }, () => GetObjectLockConfigurationRequest$, () => GetObjectLockConfigurationOutput$\n];\nexport var GetObjectRetention$ = [9, n0, _GORe,\n    { [_h]: [\"GET\", \"/{Key+}?retention\", 200] }, () => GetObjectRetentionRequest$, () => GetObjectRetentionOutput$\n];\nexport var GetObjectTagging$ = [9, n0, _GOT,\n    { [_h]: [\"GET\", \"/{Key+}?tagging\", 200] }, () => GetObjectTaggingRequest$, () => GetObjectTaggingOutput$\n];\nexport var GetObjectTorrent$ = [9, n0, _GOTe,\n    { [_h]: [\"GET\", \"/{Key+}?torrent\", 200] }, () => GetObjectTorrentRequest$, () => GetObjectTorrentOutput$\n];\nexport var GetPublicAccessBlock$ = [9, n0, _GPAB,\n    { [_h]: [\"GET\", \"/?publicAccessBlock\", 200] }, () => GetPublicAccessBlockRequest$, () => GetPublicAccessBlockOutput$\n];\nexport var HeadBucket$ = [9, n0, _HB,\n    { [_h]: [\"HEAD\", \"/\", 200] }, () => HeadBucketRequest$, () => HeadBucketOutput$\n];\nexport var HeadObject$ = [9, n0, _HO,\n    { [_h]: [\"HEAD\", \"/{Key+}\", 200] }, () => HeadObjectRequest$, () => HeadObjectOutput$\n];\nexport var ListBucketAnalyticsConfigurations$ = [9, n0, _LBAC,\n    { [_h]: [\"GET\", \"/?analytics&x-id=ListBucketAnalyticsConfigurations\", 200] }, () => ListBucketAnalyticsConfigurationsRequest$, () => ListBucketAnalyticsConfigurationsOutput$\n];\nexport var ListBucketIntelligentTieringConfigurations$ = [9, n0, _LBITC,\n    { [_h]: [\"GET\", \"/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations\", 200] }, () => ListBucketIntelligentTieringConfigurationsRequest$, () => ListBucketIntelligentTieringConfigurationsOutput$\n];\nexport var ListBucketInventoryConfigurations$ = [9, n0, _LBIC,\n    { [_h]: [\"GET\", \"/?inventory&x-id=ListBucketInventoryConfigurations\", 200] }, () => ListBucketInventoryConfigurationsRequest$, () => ListBucketInventoryConfigurationsOutput$\n];\nexport var ListBucketMetricsConfigurations$ = [9, n0, _LBMC,\n    { [_h]: [\"GET\", \"/?metrics&x-id=ListBucketMetricsConfigurations\", 200] }, () => ListBucketMetricsConfigurationsRequest$, () => ListBucketMetricsConfigurationsOutput$\n];\nexport var ListBuckets$ = [9, n0, _LB,\n    { [_h]: [\"GET\", \"/?x-id=ListBuckets\", 200] }, () => ListBucketsRequest$, () => ListBucketsOutput$\n];\nexport var ListDirectoryBuckets$ = [9, n0, _LDB,\n    { [_h]: [\"GET\", \"/?x-id=ListDirectoryBuckets\", 200] }, () => ListDirectoryBucketsRequest$, () => ListDirectoryBucketsOutput$\n];\nexport var ListMultipartUploads$ = [9, n0, _LMU,\n    { [_h]: [\"GET\", \"/?uploads\", 200] }, () => ListMultipartUploadsRequest$, () => ListMultipartUploadsOutput$\n];\nexport var ListObjects$ = [9, n0, _LO,\n    { [_h]: [\"GET\", \"/\", 200] }, () => ListObjectsRequest$, () => ListObjectsOutput$\n];\nexport var ListObjectsV2$ = [9, n0, _LOV,\n    { [_h]: [\"GET\", \"/?list-type=2\", 200] }, () => ListObjectsV2Request$, () => ListObjectsV2Output$\n];\nexport var ListObjectVersions$ = [9, n0, _LOVi,\n    { [_h]: [\"GET\", \"/?versions\", 200] }, () => ListObjectVersionsRequest$, () => ListObjectVersionsOutput$\n];\nexport var ListParts$ = [9, n0, _LP,\n    { [_h]: [\"GET\", \"/{Key+}?x-id=ListParts\", 200] }, () => ListPartsRequest$, () => ListPartsOutput$\n];\nexport var PutBucketAbac$ = [9, n0, _PBA,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?abac\", 200] }, () => PutBucketAbacRequest$, () => __Unit\n];\nexport var PutBucketAccelerateConfiguration$ = [9, n0, _PBAC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?accelerate\", 200] }, () => PutBucketAccelerateConfigurationRequest$, () => __Unit\n];\nexport var PutBucketAcl$ = [9, n0, _PBAu,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?acl\", 200] }, () => PutBucketAclRequest$, () => __Unit\n];\nexport var PutBucketAnalyticsConfiguration$ = [9, n0, _PBACu,\n    { [_h]: [\"PUT\", \"/?analytics\", 200] }, () => PutBucketAnalyticsConfigurationRequest$, () => __Unit\n];\nexport var PutBucketCors$ = [9, n0, _PBC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?cors\", 200] }, () => PutBucketCorsRequest$, () => __Unit\n];\nexport var PutBucketEncryption$ = [9, n0, _PBE,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?encryption\", 200] }, () => PutBucketEncryptionRequest$, () => __Unit\n];\nexport var PutBucketIntelligentTieringConfiguration$ = [9, n0, _PBITC,\n    { [_h]: [\"PUT\", \"/?intelligent-tiering\", 200] }, () => PutBucketIntelligentTieringConfigurationRequest$, () => __Unit\n];\nexport var PutBucketInventoryConfiguration$ = [9, n0, _PBIC,\n    { [_h]: [\"PUT\", \"/?inventory\", 200] }, () => PutBucketInventoryConfigurationRequest$, () => __Unit\n];\nexport var PutBucketLifecycleConfiguration$ = [9, n0, _PBLC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?lifecycle\", 200] }, () => PutBucketLifecycleConfigurationRequest$, () => PutBucketLifecycleConfigurationOutput$\n];\nexport var PutBucketLogging$ = [9, n0, _PBL,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?logging\", 200] }, () => PutBucketLoggingRequest$, () => __Unit\n];\nexport var PutBucketMetricsConfiguration$ = [9, n0, _PBMC,\n    { [_h]: [\"PUT\", \"/?metrics\", 200] }, () => PutBucketMetricsConfigurationRequest$, () => __Unit\n];\nexport var PutBucketNotificationConfiguration$ = [9, n0, _PBNC,\n    { [_h]: [\"PUT\", \"/?notification\", 200] }, () => PutBucketNotificationConfigurationRequest$, () => __Unit\n];\nexport var PutBucketOwnershipControls$ = [9, n0, _PBOC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?ownershipControls\", 200] }, () => PutBucketOwnershipControlsRequest$, () => __Unit\n];\nexport var PutBucketPolicy$ = [9, n0, _PBP,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?policy\", 200] }, () => PutBucketPolicyRequest$, () => __Unit\n];\nexport var PutBucketReplication$ = [9, n0, _PBR,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?replication\", 200] }, () => PutBucketReplicationRequest$, () => __Unit\n];\nexport var PutBucketRequestPayment$ = [9, n0, _PBRP,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?requestPayment\", 200] }, () => PutBucketRequestPaymentRequest$, () => __Unit\n];\nexport var PutBucketTagging$ = [9, n0, _PBT,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?tagging\", 200] }, () => PutBucketTaggingRequest$, () => __Unit\n];\nexport var PutBucketVersioning$ = [9, n0, _PBV,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?versioning\", 200] }, () => PutBucketVersioningRequest$, () => __Unit\n];\nexport var PutBucketWebsite$ = [9, n0, _PBW,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?website\", 200] }, () => PutBucketWebsiteRequest$, () => __Unit\n];\nexport var PutObject$ = [9, n0, _PO,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?x-id=PutObject\", 200] }, () => PutObjectRequest$, () => PutObjectOutput$\n];\nexport var PutObjectAcl$ = [9, n0, _POA,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?acl\", 200] }, () => PutObjectAclRequest$, () => PutObjectAclOutput$\n];\nexport var PutObjectLegalHold$ = [9, n0, _POLH,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?legal-hold\", 200] }, () => PutObjectLegalHoldRequest$, () => PutObjectLegalHoldOutput$\n];\nexport var PutObjectLockConfiguration$ = [9, n0, _POLC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?object-lock\", 200] }, () => PutObjectLockConfigurationRequest$, () => PutObjectLockConfigurationOutput$\n];\nexport var PutObjectRetention$ = [9, n0, _PORu,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?retention\", 200] }, () => PutObjectRetentionRequest$, () => PutObjectRetentionOutput$\n];\nexport var PutObjectTagging$ = [9, n0, _POT,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?tagging\", 200] }, () => PutObjectTaggingRequest$, () => PutObjectTaggingOutput$\n];\nexport var PutPublicAccessBlock$ = [9, n0, _PPAB,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?publicAccessBlock\", 200] }, () => PutPublicAccessBlockRequest$, () => __Unit\n];\nexport var RenameObject$ = [9, n0, _RO,\n    { [_h]: [\"PUT\", \"/{Key+}?renameObject\", 200] }, () => RenameObjectRequest$, () => RenameObjectOutput$\n];\nexport var RestoreObject$ = [9, n0, _ROe,\n    { [_hC]: \"-\", [_h]: [\"POST\", \"/{Key+}?restore\", 200] }, () => RestoreObjectRequest$, () => RestoreObjectOutput$\n];\nexport var SelectObjectContent$ = [9, n0, _SOC,\n    { [_h]: [\"POST\", \"/{Key+}?select&select-type=2\", 200] }, () => SelectObjectContentRequest$, () => SelectObjectContentOutput$\n];\nexport var UpdateBucketMetadataInventoryTableConfiguration$ = [9, n0, _UBMITC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?metadataInventoryTable\", 200] }, () => UpdateBucketMetadataInventoryTableConfigurationRequest$, () => __Unit\n];\nexport var UpdateBucketMetadataJournalTableConfiguration$ = [9, n0, _UBMJTC,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/?metadataJournalTable\", 200] }, () => UpdateBucketMetadataJournalTableConfigurationRequest$, () => __Unit\n];\nexport var UpdateObjectEncryption$ = [9, n0, _UOE,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?encryption\", 200] }, () => UpdateObjectEncryptionRequest$, () => UpdateObjectEncryptionResponse$\n];\nexport var UploadPart$ = [9, n0, _UP,\n    { [_hC]: \"-\", [_h]: [\"PUT\", \"/{Key+}?x-id=UploadPart\", 200] }, () => UploadPartRequest$, () => UploadPartOutput$\n];\nexport var UploadPartCopy$ = [9, n0, _UPC,\n    { [_h]: [\"PUT\", \"/{Key+}?x-id=UploadPartCopy\", 200] }, () => UploadPartCopyRequest$, () => UploadPartCopyOutput$\n];\nexport var WriteGetObjectResponse$ = [9, n0, _WGOR,\n    { [_en]: [\"{RequestRoute}.\"], [_h]: [\"POST\", \"/WriteGetObjectResponse\", 200] }, () => WriteGetObjectResponseRequest$, () => __Unit\n];\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CreateSession$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class CreateSessionCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CreateSession\", {})\n    .n(\"S3Client\", \"CreateSessionCommand\")\n    .sc(CreateSession$)\n    .build() {\n}\n","{\n  \"name\": \"@aws-sdk/client-s3\",\n  \"description\": \"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native\",\n  \"version\": \"3.1024.0\",\n  \"scripts\": {\n    \"build\": \"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs\",\n    \"build:cjs\": \"node ../../scripts/compilation/inline client-s3\",\n    \"build:es\": \"tsc -p tsconfig.es.json\",\n    \"build:include:deps\": \"yarn g:turbo run build -F=\\\"$npm_package_name\\\"\",\n    \"build:types\": \"tsc -p tsconfig.types.json\",\n    \"build:types:downlevel\": \"downlevel-dts dist-types dist-types/ts3.4\",\n    \"clean\": \"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo\",\n    \"extract:docs\": \"api-extractor run --local\",\n    \"generate:client\": \"node ../../scripts/generate-clients/single-service --solo s3\",\n    \"test\": \"yarn g:vitest run\",\n    \"test:browser\": \"node ./test/browser-build/esbuild && yarn g:vitest run -c vitest.config.browser.mts\",\n    \"test:browser:watch\": \"node ./test/browser-build/esbuild && yarn g:vitest watch -c vitest.config.browser.mts\",\n    \"test:e2e\": \"yarn g:vitest run -c vitest.config.e2e.mts && yarn test:browser\",\n    \"test:e2e:watch\": \"yarn g:vitest watch -c vitest.config.e2e.mts\",\n    \"test:index\": \"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs\",\n    \"test:integration\": \"yarn g:vitest run -c vitest.config.integ.mts\",\n    \"test:integration:watch\": \"yarn g:vitest watch -c vitest.config.integ.mts\",\n    \"test:watch\": \"yarn g:vitest watch\"\n  },\n  \"main\": \"./dist-cjs/index.js\",\n  \"types\": \"./dist-types/index.d.ts\",\n  \"module\": \"./dist-es/index.js\",\n  \"sideEffects\": false,\n  \"dependencies\": {\n    \"@aws-crypto/sha1-browser\": \"5.2.0\",\n    \"@aws-crypto/sha256-browser\": \"5.2.0\",\n    \"@aws-crypto/sha256-js\": \"5.2.0\",\n    \"@aws-sdk/core\": \"^3.973.26\",\n    \"@aws-sdk/credential-provider-node\": \"^3.972.29\",\n    \"@aws-sdk/middleware-bucket-endpoint\": \"^3.972.8\",\n    \"@aws-sdk/middleware-expect-continue\": \"^3.972.8\",\n    \"@aws-sdk/middleware-flexible-checksums\": \"^3.974.6\",\n    \"@aws-sdk/middleware-host-header\": \"^3.972.8\",\n    \"@aws-sdk/middleware-location-constraint\": \"^3.972.8\",\n    \"@aws-sdk/middleware-logger\": \"^3.972.8\",\n    \"@aws-sdk/middleware-recursion-detection\": \"^3.972.9\",\n    \"@aws-sdk/middleware-sdk-s3\": \"^3.972.27\",\n    \"@aws-sdk/middleware-ssec\": \"^3.972.8\",\n    \"@aws-sdk/middleware-user-agent\": \"^3.972.28\",\n    \"@aws-sdk/region-config-resolver\": \"^3.972.10\",\n    \"@aws-sdk/signature-v4-multi-region\": \"^3.996.15\",\n    \"@aws-sdk/types\": \"^3.973.6\",\n    \"@aws-sdk/util-endpoints\": \"^3.996.5\",\n    \"@aws-sdk/util-user-agent-browser\": \"^3.972.8\",\n    \"@aws-sdk/util-user-agent-node\": \"^3.973.14\",\n    \"@smithy/config-resolver\": \"^4.4.13\",\n    \"@smithy/core\": \"^3.23.13\",\n    \"@smithy/eventstream-serde-browser\": \"^4.2.12\",\n    \"@smithy/eventstream-serde-config-resolver\": \"^4.3.12\",\n    \"@smithy/eventstream-serde-node\": \"^4.2.12\",\n    \"@smithy/fetch-http-handler\": \"^5.3.15\",\n    \"@smithy/hash-blob-browser\": \"^4.2.13\",\n    \"@smithy/hash-node\": \"^4.2.12\",\n    \"@smithy/hash-stream-node\": \"^4.2.12\",\n    \"@smithy/invalid-dependency\": \"^4.2.12\",\n    \"@smithy/md5-js\": \"^4.2.12\",\n    \"@smithy/middleware-content-length\": \"^4.2.12\",\n    \"@smithy/middleware-endpoint\": \"^4.4.28\",\n    \"@smithy/middleware-retry\": \"^4.4.46\",\n    \"@smithy/middleware-serde\": \"^4.2.16\",\n    \"@smithy/middleware-stack\": \"^4.2.12\",\n    \"@smithy/node-config-provider\": \"^4.3.12\",\n    \"@smithy/node-http-handler\": \"^4.5.1\",\n    \"@smithy/protocol-http\": \"^5.3.12\",\n    \"@smithy/smithy-client\": \"^4.12.8\",\n    \"@smithy/types\": \"^4.13.1\",\n    \"@smithy/url-parser\": \"^4.2.12\",\n    \"@smithy/util-base64\": \"^4.3.2\",\n    \"@smithy/util-body-length-browser\": \"^4.2.2\",\n    \"@smithy/util-body-length-node\": \"^4.2.3\",\n    \"@smithy/util-defaults-mode-browser\": \"^4.3.44\",\n    \"@smithy/util-defaults-mode-node\": \"^4.2.48\",\n    \"@smithy/util-endpoints\": \"^3.3.3\",\n    \"@smithy/util-middleware\": \"^4.2.12\",\n    \"@smithy/util-retry\": \"^4.2.13\",\n    \"@smithy/util-stream\": \"^4.5.21\",\n    \"@smithy/util-utf8\": \"^4.2.2\",\n    \"@smithy/util-waiter\": \"^4.2.14\",\n    \"tslib\": \"^2.6.2\"\n  },\n  \"devDependencies\": {\n    \"@aws-sdk/signature-v4-crt\": \"3.1024.0\",\n    \"@smithy/snapshot-testing\": \"^2.0.4\",\n    \"@tsconfig/node20\": \"20.1.8\",\n    \"@types/node\": \"^20.14.8\",\n    \"concurrently\": \"7.0.0\",\n    \"downlevel-dts\": \"0.10.1\",\n    \"premove\": \"4.0.0\",\n    \"typescript\": \"~5.8.3\",\n    \"vitest\": \"^4.0.17\"\n  },\n  \"engines\": {\n    \"node\": \">=20.0.0\"\n  },\n  \"typesVersions\": {\n    \"<4.5\": {\n      \"dist-types/*\": [\n        \"dist-types/ts3.4/*\"\n      ]\n    }\n  },\n  \"files\": [\n    \"dist-*/**\"\n  ],\n  \"author\": {\n    \"name\": \"AWS SDK for JavaScript Team\",\n    \"url\": \"https://aws.amazon.com/javascript/\"\n  },\n  \"license\": \"Apache-2.0\",\n  \"browser\": {\n    \"./dist-es/runtimeConfig\": \"./dist-es/runtimeConfig.browser\"\n  },\n  \"react-native\": {\n    \"./dist-es/runtimeConfig\": \"./dist-es/runtimeConfig.native\"\n  },\n  \"homepage\": \"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/aws/aws-sdk-js-v3.git\",\n    \"directory\": \"clients/client-s3\"\n  }\n}\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","export function isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map","const fallbackWindow = {};\nexport function locateWindow() {\n    if (typeof window !== \"undefined\") {\n        return window;\n    }\n    else if (typeof self !== \"undefined\") {\n        return self;\n    }\n    return fallbackWindow;\n}\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { isEmptyData } from \"./isEmptyData\";\nimport { EMPTY_DATA_SHA_1, SHA_1_HASH, SHA_1_HMAC_ALGO } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nvar Sha1 = /** @class */ (function () {\n    function Sha1(secret) {\n        this.toHash = new Uint8Array(0);\n        if (secret !== void 0) {\n            this.key = new Promise(function (resolve, reject) {\n                locateWindow()\n                    .crypto.subtle.importKey(\"raw\", convertToBuffer(secret), SHA_1_HMAC_ALGO, false, [\"sign\"])\n                    .then(resolve, reject);\n            });\n            this.key.catch(function () { });\n        }\n    }\n    Sha1.prototype.update = function (data) {\n        if (isEmptyData(data)) {\n            return;\n        }\n        var update = convertToBuffer(data);\n        var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n        typedArray.set(this.toHash, 0);\n        typedArray.set(update, this.toHash.byteLength);\n        this.toHash = typedArray;\n    };\n    Sha1.prototype.digest = function () {\n        var _this = this;\n        if (this.key) {\n            return this.key.then(function (key) {\n                return locateWindow()\n                    .crypto.subtle.sign(SHA_1_HMAC_ALGO, key, _this.toHash)\n                    .then(function (data) { return new Uint8Array(data); });\n            });\n        }\n        if (isEmptyData(this.toHash)) {\n            return Promise.resolve(EMPTY_DATA_SHA_1);\n        }\n        return Promise.resolve()\n            .then(function () { return locateWindow().crypto.subtle.digest(SHA_1_HASH, _this.toHash); })\n            .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n    };\n    Sha1.prototype.reset = function () {\n        this.toHash = new Uint8Array(0);\n    };\n    return Sha1;\n}());\nexport { Sha1 };\nfunction convertToBuffer(data) {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n//# sourceMappingURL=webCryptoSha1.js.map","import { __awaiter, __generator } from \"tslib\";\nvar subtleCryptoMethods = [\n    \"decrypt\",\n    \"digest\",\n    \"encrypt\",\n    \"exportKey\",\n    \"generateKey\",\n    \"importKey\",\n    \"sign\",\n    \"verify\"\n];\nexport function supportsWebCrypto(window) {\n    if (supportsSecureRandom(window) &&\n        typeof window.crypto.subtle === \"object\") {\n        var subtle = window.crypto.subtle;\n        return supportsSubtleCrypto(subtle);\n    }\n    return false;\n}\nexport function supportsSecureRandom(window) {\n    if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n        var getRandomValues = window.crypto.getRandomValues;\n        return typeof getRandomValues === \"function\";\n    }\n    return false;\n}\nexport function supportsSubtleCrypto(subtle) {\n    return (subtle &&\n        subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexport function supportsZeroByteGCM(subtle) {\n    return __awaiter(this, void 0, void 0, function () {\n        var key, zeroByteAuthTag, _a;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    if (!supportsSubtleCrypto(subtle))\n                        return [2 /*return*/, false];\n                    _b.label = 1;\n                case 1:\n                    _b.trys.push([1, 4, , 5]);\n                    return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n                case 2:\n                    key = _b.sent();\n                    return [4 /*yield*/, subtle.encrypt({\n                            name: \"AES-GCM\",\n                            iv: new Uint8Array(Array(12)),\n                            additionalData: new Uint8Array(Array(16)),\n                            tagLength: 128\n                        }, key, new Uint8Array(0))];\n                case 3:\n                    zeroByteAuthTag = _b.sent();\n                    return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n                case 4:\n                    _a = _b.sent();\n                    return [2 /*return*/, false];\n                case 5: return [2 /*return*/];\n            }\n        });\n    });\n}\n//# sourceMappingURL=supportsWebCrypto.js.map","import { Sha1 as WebCryptoSha1 } from \"./webCryptoSha1\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\nvar Sha1 = /** @class */ (function () {\n    function Sha1(secret) {\n        if (supportsWebCrypto(locateWindow())) {\n            this.hash = new WebCryptoSha1(secret);\n        }\n        else {\n            throw new Error(\"SHA1 not supported\");\n        }\n    }\n    Sha1.prototype.update = function (data, encoding) {\n        this.hash.update(convertToBuffer(data));\n    };\n    Sha1.prototype.digest = function () {\n        return this.hash.digest();\n    };\n    Sha1.prototype.reset = function () {\n        this.hash.reset();\n    };\n    return Sha1;\n}());\nexport { Sha1 };\n//# sourceMappingURL=crossPlatformSha1.js.map","export var SHA_256_HASH = { name: \"SHA-256\" };\nexport var SHA_256_HMAC_ALGO = {\n    name: \"HMAC\",\n    hash: SHA_256_HASH\n};\nexport var EMPTY_DATA_SHA_256 = new Uint8Array([\n    227,\n    176,\n    196,\n    66,\n    152,\n    252,\n    28,\n    20,\n    154,\n    251,\n    244,\n    200,\n    153,\n    111,\n    185,\n    36,\n    39,\n    174,\n    65,\n    228,\n    100,\n    155,\n    147,\n    76,\n    164,\n    149,\n    153,\n    27,\n    120,\n    82,\n    184,\n    85\n]);\n//# sourceMappingURL=constants.js.map","import { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport { EMPTY_DATA_SHA_256, SHA_256_HASH, SHA_256_HMAC_ALGO, } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        this.toHash = new Uint8Array(0);\n        this.secret = secret;\n        this.reset();\n    }\n    Sha256.prototype.update = function (data) {\n        if (isEmptyData(data)) {\n            return;\n        }\n        var update = convertToBuffer(data);\n        var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n        typedArray.set(this.toHash, 0);\n        typedArray.set(update, this.toHash.byteLength);\n        this.toHash = typedArray;\n    };\n    Sha256.prototype.digest = function () {\n        var _this = this;\n        if (this.key) {\n            return this.key.then(function (key) {\n                return locateWindow()\n                    .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, _this.toHash)\n                    .then(function (data) { return new Uint8Array(data); });\n            });\n        }\n        if (isEmptyData(this.toHash)) {\n            return Promise.resolve(EMPTY_DATA_SHA_256);\n        }\n        return Promise.resolve()\n            .then(function () {\n            return locateWindow().crypto.subtle.digest(SHA_256_HASH, _this.toHash);\n        })\n            .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n    };\n    Sha256.prototype.reset = function () {\n        var _this = this;\n        this.toHash = new Uint8Array(0);\n        if (this.secret && this.secret !== void 0) {\n            this.key = new Promise(function (resolve, reject) {\n                locateWindow()\n                    .crypto.subtle.importKey(\"raw\", convertToBuffer(_this.secret), SHA_256_HMAC_ALGO, false, [\"sign\"])\n                    .then(resolve, reject);\n            });\n            this.key.catch(function () { });\n        }\n    };\n    return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=webCryptoSha256.js.map","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexport var KEY = new Uint32Array([\n    0x428a2f98,\n    0x71374491,\n    0xb5c0fbcf,\n    0xe9b5dba5,\n    0x3956c25b,\n    0x59f111f1,\n    0x923f82a4,\n    0xab1c5ed5,\n    0xd807aa98,\n    0x12835b01,\n    0x243185be,\n    0x550c7dc3,\n    0x72be5d74,\n    0x80deb1fe,\n    0x9bdc06a7,\n    0xc19bf174,\n    0xe49b69c1,\n    0xefbe4786,\n    0x0fc19dc6,\n    0x240ca1cc,\n    0x2de92c6f,\n    0x4a7484aa,\n    0x5cb0a9dc,\n    0x76f988da,\n    0x983e5152,\n    0xa831c66d,\n    0xb00327c8,\n    0xbf597fc7,\n    0xc6e00bf3,\n    0xd5a79147,\n    0x06ca6351,\n    0x14292967,\n    0x27b70a85,\n    0x2e1b2138,\n    0x4d2c6dfc,\n    0x53380d13,\n    0x650a7354,\n    0x766a0abb,\n    0x81c2c92e,\n    0x92722c85,\n    0xa2bfe8a1,\n    0xa81a664b,\n    0xc24b8b70,\n    0xc76c51a3,\n    0xd192e819,\n    0xd6990624,\n    0xf40e3585,\n    0x106aa070,\n    0x19a4c116,\n    0x1e376c08,\n    0x2748774c,\n    0x34b0bcb5,\n    0x391c0cb3,\n    0x4ed8aa4a,\n    0x5b9cca4f,\n    0x682e6ff3,\n    0x748f82ee,\n    0x78a5636f,\n    0x84c87814,\n    0x8cc70208,\n    0x90befffa,\n    0xa4506ceb,\n    0xbef9a3f7,\n    0xc67178f2\n]);\n/**\n * @internal\n */\nexport var INIT = [\n    0x6a09e667,\n    0xbb67ae85,\n    0x3c6ef372,\n    0xa54ff53a,\n    0x510e527f,\n    0x9b05688c,\n    0x1f83d9ab,\n    0x5be0cd19\n];\n/**\n * @internal\n */\nexport var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=constants.js.map","import { BLOCK_SIZE, DIGEST_LENGTH, INIT, KEY, MAX_HASHABLE_LENGTH } from \"./constants\";\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n    function RawSha256() {\n        this.state = Int32Array.from(INIT);\n        this.temp = new Int32Array(64);\n        this.buffer = new Uint8Array(64);\n        this.bufferLength = 0;\n        this.bytesHashed = 0;\n        /**\n         * @internal\n         */\n        this.finished = false;\n    }\n    RawSha256.prototype.update = function (data) {\n        if (this.finished) {\n            throw new Error(\"Attempted to update an already finished hash.\");\n        }\n        var position = 0;\n        var byteLength = data.byteLength;\n        this.bytesHashed += byteLength;\n        if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n            throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n        }\n        while (byteLength > 0) {\n            this.buffer[this.bufferLength++] = data[position++];\n            byteLength--;\n            if (this.bufferLength === BLOCK_SIZE) {\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n        }\n    };\n    RawSha256.prototype.digest = function () {\n        if (!this.finished) {\n            var bitsHashed = this.bytesHashed * 8;\n            var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n            var undecoratedLength = this.bufferLength;\n            bufferView.setUint8(this.bufferLength++, 0x80);\n            // Ensure the final block has enough room for the hashed length\n            if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n                for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n                    bufferView.setUint8(i, 0);\n                }\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n            for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n                bufferView.setUint8(i, 0);\n            }\n            bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n            bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n            this.hashBuffer();\n            this.finished = true;\n        }\n        // The value in state is little-endian rather than big-endian, so flip\n        // each word into a new Uint8Array\n        var out = new Uint8Array(DIGEST_LENGTH);\n        for (var i = 0; i < 8; i++) {\n            out[i * 4] = (this.state[i] >>> 24) & 0xff;\n            out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n            out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n            out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n        }\n        return out;\n    };\n    RawSha256.prototype.hashBuffer = function () {\n        var _a = this, buffer = _a.buffer, state = _a.state;\n        var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n        for (var i = 0; i < BLOCK_SIZE; i++) {\n            if (i < 16) {\n                this.temp[i] =\n                    ((buffer[i * 4] & 0xff) << 24) |\n                        ((buffer[i * 4 + 1] & 0xff) << 16) |\n                        ((buffer[i * 4 + 2] & 0xff) << 8) |\n                        (buffer[i * 4 + 3] & 0xff);\n            }\n            else {\n                var u = this.temp[i - 2];\n                var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n                u = this.temp[i - 15];\n                var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n                this.temp[i] =\n                    ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n            }\n            var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n                ((state4 >>> 11) | (state4 << 21)) ^\n                ((state4 >>> 25) | (state4 << 7))) +\n                ((state4 & state5) ^ (~state4 & state6))) |\n                0) +\n                ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n                0;\n            var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n                ((state0 >>> 13) | (state0 << 19)) ^\n                ((state0 >>> 22) | (state0 << 10))) +\n                ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n                0;\n            state7 = state6;\n            state6 = state5;\n            state5 = state4;\n            state4 = (state3 + t1) | 0;\n            state3 = state2;\n            state2 = state1;\n            state1 = state0;\n            state0 = (t1 + t2) | 0;\n        }\n        state[0] += state0;\n        state[1] += state1;\n        state[2] += state2;\n        state[3] += state3;\n        state[4] += state4;\n        state[5] += state5;\n        state[6] += state6;\n        state[7] += state7;\n    };\n    return RawSha256;\n}());\nexport { RawSha256 };\n//# sourceMappingURL=RawSha256.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        this.secret = secret;\n        this.hash = new RawSha256();\n        this.reset();\n    }\n    Sha256.prototype.update = function (toHash) {\n        if (isEmptyData(toHash) || this.error) {\n            return;\n        }\n        try {\n            this.hash.update(convertToBuffer(toHash));\n        }\n        catch (e) {\n            this.error = e;\n        }\n    };\n    /* This synchronous method keeps compatibility\n     * with the v2 aws-sdk.\n     */\n    Sha256.prototype.digestSync = function () {\n        if (this.error) {\n            throw this.error;\n        }\n        if (this.outer) {\n            if (!this.outer.finished) {\n                this.outer.update(this.hash.digest());\n            }\n            return this.outer.digest();\n        }\n        return this.hash.digest();\n    };\n    /* The underlying digest method here is synchronous.\n     * To keep the same interface with the other hash functions\n     * the default is to expose this as an async method.\n     * However, it can sometimes be useful to have a sync method.\n     */\n    Sha256.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, this.digestSync()];\n            });\n        });\n    };\n    Sha256.prototype.reset = function () {\n        this.hash = new RawSha256();\n        if (this.secret) {\n            this.outer = new RawSha256();\n            var inner = bufferFromSecret(this.secret);\n            var outer = new Uint8Array(BLOCK_SIZE);\n            outer.set(inner);\n            for (var i = 0; i < BLOCK_SIZE; i++) {\n                inner[i] ^= 0x36;\n                outer[i] ^= 0x5c;\n            }\n            this.hash.update(inner);\n            this.outer.update(outer);\n            // overwrite the copied key in memory\n            for (var i = 0; i < inner.byteLength; i++) {\n                inner[i] = 0;\n            }\n        }\n    };\n    return Sha256;\n}());\nexport { Sha256 };\nfunction bufferFromSecret(secret) {\n    var input = convertToBuffer(secret);\n    if (input.byteLength > BLOCK_SIZE) {\n        var bufferHash = new RawSha256();\n        bufferHash.update(input);\n        input = bufferHash.digest();\n    }\n    var buffer = new Uint8Array(BLOCK_SIZE);\n    buffer.set(input);\n    return buffer;\n}\n//# sourceMappingURL=jsSha256.js.map","import { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        if (supportsWebCrypto(locateWindow())) {\n            this.hash = new WebCryptoSha256(secret);\n        }\n        else {\n            this.hash = new JsSha256(secret);\n        }\n    }\n    Sha256.prototype.update = function (data, encoding) {\n        this.hash.update(convertToBuffer(data));\n    };\n    Sha256.prototype.digest = function () {\n        return this.hash.digest();\n    };\n    Sha256.prototype.reset = function () {\n        this.hash.reset();\n    };\n    return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=crossPlatformSha256.js.map","export { createUserAgentStringParsingProvider } from \"./createUserAgentStringParsingProvider\";\nexport const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => {\n    const navigator = typeof window !== \"undefined\" ? window.navigator : undefined;\n    const uaString = navigator?.userAgent ?? \"\";\n    const osName = navigator?.userAgentData?.platform ?? fallback.os(uaString) ?? \"other\";\n    const osVersion = undefined;\n    const brands = navigator?.userAgentData?.brands ?? [];\n    const brand = brands[brands.length - 1];\n    const browserName = brand?.brand ?? fallback.browser(uaString) ?? \"unknown\";\n    const browserVersion = brand?.version ?? \"unknown\";\n    const sections = [\n        [\"aws-sdk-js\", clientVersion],\n        [\"ua\", \"2.1\"],\n        [`os/${osName}`, osVersion],\n        [\"lang/js\"],\n        [\"md/browser\", `${browserName}_${browserVersion}`],\n    ];\n    if (serviceId) {\n        sections.push([`api/${serviceId}`, clientVersion]);\n    }\n    const appId = await config?.userAgentAppId?.();\n    if (appId) {\n        sections.push([`app/${appId}`]);\n    }\n    return sections;\n};\nexport const fallback = {\n    os(ua) {\n        if (/iPhone|iPad|iPod/.test(ua))\n            return \"iOS\";\n        if (/Macintosh|Mac OS X/.test(ua))\n            return \"macOS\";\n        if (/Windows NT/.test(ua))\n            return \"Windows\";\n        if (/Android/.test(ua))\n            return \"Android\";\n        if (/Linux/.test(ua))\n            return \"Linux\";\n        return undefined;\n    },\n    browser(ua) {\n        if (/EdgiOS|EdgA|Edg\\//.test(ua))\n            return \"Microsoft Edge\";\n        if (/Firefox\\//.test(ua))\n            return \"Firefox\";\n        if (/Chrome\\//.test(ua))\n            return \"Chrome\";\n        if (/Safari\\//.test(ua))\n            return \"Safari\";\n        return undefined;\n    },\n};\nexport const defaultUserAgent = createDefaultUserAgentProvider;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n    bytes;\n    constructor(bytes) {\n        this.bytes = bytes;\n        if (bytes.byteLength !== 8) {\n            throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n        }\n    }\n    static fromNumber(number) {\n        if (number > 9_223_372_036_854_775_807 || number < -9_223_372_036_854_775_808) {\n            throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n        }\n        const bytes = new Uint8Array(8);\n        for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n            bytes[i] = remaining;\n        }\n        if (number < 0) {\n            negate(bytes);\n        }\n        return new Int64(bytes);\n    }\n    valueOf() {\n        const bytes = this.bytes.slice(0);\n        const negative = bytes[0] & 0b10000000;\n        if (negative) {\n            negate(bytes);\n        }\n        return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n    }\n    toString() {\n        return String(this.valueOf());\n    }\n}\nfunction negate(bytes) {\n    for (let i = 0; i < 8; i++) {\n        bytes[i] ^= 0xff;\n    }\n    for (let i = 7; i > -1; i--) {\n        bytes[i]++;\n        if (bytes[i] !== 0)\n            break;\n    }\n}\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n    toUtf8;\n    fromUtf8;\n    constructor(toUtf8, fromUtf8) {\n        this.toUtf8 = toUtf8;\n        this.fromUtf8 = fromUtf8;\n    }\n    format(headers) {\n        const chunks = [];\n        for (const headerName of Object.keys(headers)) {\n            const bytes = this.fromUtf8(headerName);\n            chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n        }\n        const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n        let position = 0;\n        for (const chunk of chunks) {\n            out.set(chunk, position);\n            position += chunk.byteLength;\n        }\n        return out;\n    }\n    formatHeaderValue(header) {\n        switch (header.type) {\n            case \"boolean\":\n                return Uint8Array.from([header.value ? 0 : 1]);\n            case \"byte\":\n                return Uint8Array.from([2, header.value]);\n            case \"short\":\n                const shortView = new DataView(new ArrayBuffer(3));\n                shortView.setUint8(0, 3);\n                shortView.setInt16(1, header.value, false);\n                return new Uint8Array(shortView.buffer);\n            case \"integer\":\n                const intView = new DataView(new ArrayBuffer(5));\n                intView.setUint8(0, 4);\n                intView.setInt32(1, header.value, false);\n                return new Uint8Array(intView.buffer);\n            case \"long\":\n                const longBytes = new Uint8Array(9);\n                longBytes[0] = 5;\n                longBytes.set(header.value.bytes, 1);\n                return longBytes;\n            case \"binary\":\n                const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n                binView.setUint8(0, 6);\n                binView.setUint16(1, header.value.byteLength, false);\n                const binBytes = new Uint8Array(binView.buffer);\n                binBytes.set(header.value, 3);\n                return binBytes;\n            case \"string\":\n                const utf8Bytes = this.fromUtf8(header.value);\n                const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n                strView.setUint8(0, 7);\n                strView.setUint16(1, utf8Bytes.byteLength, false);\n                const strBytes = new Uint8Array(strView.buffer);\n                strBytes.set(utf8Bytes, 3);\n                return strBytes;\n            case \"timestamp\":\n                const tsBytes = new Uint8Array(9);\n                tsBytes[0] = 8;\n                tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n                return tsBytes;\n            case \"uuid\":\n                if (!UUID_PATTERN.test(header.value)) {\n                    throw new Error(`Invalid UUID received: ${header.value}`);\n                }\n                const uuidBytes = new Uint8Array(17);\n                uuidBytes[0] = 9;\n                uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n                return uuidBytes;\n        }\n    }\n    parse(headers) {\n        const out = {};\n        let position = 0;\n        while (position < headers.byteLength) {\n            const nameLength = headers.getUint8(position++);\n            const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n            position += nameLength;\n            switch (headers.getUint8(position++)) {\n                case 0:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: true,\n                    };\n                    break;\n                case 1:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: false,\n                    };\n                    break;\n                case 2:\n                    out[name] = {\n                        type: BYTE_TAG,\n                        value: headers.getInt8(position++),\n                    };\n                    break;\n                case 3:\n                    out[name] = {\n                        type: SHORT_TAG,\n                        value: headers.getInt16(position, false),\n                    };\n                    position += 2;\n                    break;\n                case 4:\n                    out[name] = {\n                        type: INT_TAG,\n                        value: headers.getInt32(position, false),\n                    };\n                    position += 4;\n                    break;\n                case 5:\n                    out[name] = {\n                        type: LONG_TAG,\n                        value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n                    };\n                    position += 8;\n                    break;\n                case 6:\n                    const binaryLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: BINARY_TAG,\n                        value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n                    };\n                    position += binaryLength;\n                    break;\n                case 7:\n                    const stringLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: STRING_TAG,\n                        value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n                    };\n                    position += stringLength;\n                    break;\n                case 8:\n                    out[name] = {\n                        type: TIMESTAMP_TAG,\n                        value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n                    };\n                    position += 8;\n                    break;\n                case 9:\n                    const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n                    position += 16;\n                    out[name] = {\n                        type: UUID_TAG,\n                        value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n                    };\n                    break;\n                default:\n                    throw new Error(`Unrecognized header type tag`);\n            }\n        }\n        return out;\n    }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n    if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n        throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n    }\n    const view = new DataView(buffer, byteOffset, byteLength);\n    const messageLength = view.getUint32(0, false);\n    if (byteLength !== messageLength) {\n        throw new Error(\"Reported message length does not match received message length\");\n    }\n    const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n    const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n    const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n    const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n    if (expectedPreludeChecksum !== checksummer.digest()) {\n        throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n    }\n    checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n    if (expectedMessageChecksum !== checksummer.digest()) {\n        throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n    }\n    return {\n        headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n        body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n    };\n}\n","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n    headerMarshaller;\n    messageBuffer;\n    isEndOfStream;\n    constructor(toUtf8, fromUtf8) {\n        this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n        this.messageBuffer = [];\n        this.isEndOfStream = false;\n    }\n    feed(message) {\n        this.messageBuffer.push(this.decode(message));\n    }\n    endOfStream() {\n        this.isEndOfStream = true;\n    }\n    getMessage() {\n        const message = this.messageBuffer.pop();\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessage() {\n                return message;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    getAvailableMessages() {\n        const messages = this.messageBuffer;\n        this.messageBuffer = [];\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessages() {\n                return messages;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    encode({ headers: rawHeaders, body }) {\n        const headers = this.headerMarshaller.format(rawHeaders);\n        const length = headers.byteLength + body.byteLength + 16;\n        const out = new Uint8Array(length);\n        const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n        const checksum = new Crc32();\n        view.setUint32(0, length, false);\n        view.setUint32(4, headers.byteLength, false);\n        view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n        out.set(headers, 12);\n        out.set(body, headers.byteLength + 12);\n        view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n        return out;\n    }\n    decode(message) {\n        const { headers, body } = splitMessage(message);\n        return { headers: this.headerMarshaller.parse(headers), body };\n    }\n    formatHeaders(rawHeaders) {\n        return this.headerMarshaller.format(rawHeaders);\n    }\n}\n","export class MessageDecoderStream {\n    options;\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const bytes of this.options.inputStream) {\n            const decoded = this.options.decoder.decode(bytes);\n            yield decoded;\n        }\n    }\n}\n","export class MessageEncoderStream {\n    options;\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const msg of this.options.messageStream) {\n            const encoded = this.options.encoder.encode(msg);\n            yield encoded;\n        }\n        if (this.options.includeEndFrame) {\n            yield new Uint8Array(0);\n        }\n    }\n}\n","export class SmithyMessageDecoderStream {\n    options;\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const message of this.options.messageStream) {\n            const deserialized = await this.options.deserializer(message);\n            if (deserialized === undefined)\n                continue;\n            yield deserialized;\n        }\n    }\n}\n","export class SmithyMessageEncoderStream {\n    options;\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const chunk of this.options.inputStream) {\n            const payloadBuf = this.options.serializer(chunk);\n            yield payloadBuf;\n        }\n    }\n}\n","export function getChunkedStream(source) {\n    let currentMessageTotalLength = 0;\n    let currentMessagePendingLength = 0;\n    let currentMessage = null;\n    let messageLengthBuffer = null;\n    const allocateMessage = (size) => {\n        if (typeof size !== \"number\") {\n            throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n        }\n        currentMessageTotalLength = size;\n        currentMessagePendingLength = 4;\n        currentMessage = new Uint8Array(size);\n        const currentMessageView = new DataView(currentMessage.buffer);\n        currentMessageView.setUint32(0, size, false);\n    };\n    const iterator = async function* () {\n        const sourceIterator = source[Symbol.asyncIterator]();\n        while (true) {\n            const { value, done } = await sourceIterator.next();\n            if (done) {\n                if (!currentMessageTotalLength) {\n                    return;\n                }\n                else if (currentMessageTotalLength === currentMessagePendingLength) {\n                    yield currentMessage;\n                }\n                else {\n                    throw new Error(\"Truncated event message received.\");\n                }\n                return;\n            }\n            const chunkLength = value.length;\n            let currentOffset = 0;\n            while (currentOffset < chunkLength) {\n                if (!currentMessage) {\n                    const bytesRemaining = chunkLength - currentOffset;\n                    if (!messageLengthBuffer) {\n                        messageLengthBuffer = new Uint8Array(4);\n                    }\n                    const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n                    messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n                    currentMessagePendingLength += numBytesForTotal;\n                    currentOffset += numBytesForTotal;\n                    if (currentMessagePendingLength < 4) {\n                        break;\n                    }\n                    allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n                    messageLengthBuffer = null;\n                }\n                const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n                currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n                currentMessagePendingLength += numBytesToWrite;\n                currentOffset += numBytesToWrite;\n                if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n                    yield currentMessage;\n                    currentMessage = null;\n                    currentMessageTotalLength = 0;\n                    currentMessagePendingLength = 0;\n                }\n            }\n        }\n    };\n    return {\n        [Symbol.asyncIterator]: iterator,\n    };\n}\n","export function getUnmarshalledStream(source, options) {\n    const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n    return {\n        [Symbol.asyncIterator]: async function* () {\n            for await (const chunk of source) {\n                const message = options.eventStreamCodec.decode(chunk);\n                const type = await messageUnmarshaller(message);\n                if (type === undefined)\n                    continue;\n                yield type;\n            }\n        },\n    };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n    return async function (message) {\n        const { value: messageType } = message.headers[\":message-type\"];\n        if (messageType === \"error\") {\n            const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n            unmodeledError.name = message.headers[\":error-code\"].value;\n            throw unmodeledError;\n        }\n        else if (messageType === \"exception\") {\n            const code = message.headers[\":exception-type\"].value;\n            const exception = { [code]: message };\n            const deserializedException = await deserializer(exception);\n            if (deserializedException.$unknown) {\n                const error = new Error(toUtf8(message.body));\n                error.name = code;\n                throw error;\n            }\n            throw deserializedException[code];\n        }\n        else if (messageType === \"event\") {\n            const event = {\n                [message.headers[\":event-type\"].value]: message,\n            };\n            const deserialized = await deserializer(event);\n            if (deserialized.$unknown)\n                return;\n            return deserialized;\n        }\n        else {\n            throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n        }\n    };\n}\n","import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@smithy/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n    eventStreamCodec;\n    utfEncoder;\n    constructor({ utf8Encoder, utf8Decoder }) {\n        this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n        this.utfEncoder = utf8Encoder;\n    }\n    deserialize(body, deserializer) {\n        const inputStream = getChunkedStream(body);\n        return new SmithyMessageDecoderStream({\n            messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n            deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n        });\n    }\n    serialize(inputStream, serializer) {\n        return new MessageEncoderStream({\n            messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n            encoder: this.eventStreamCodec,\n            includeEndFrame: true,\n        });\n    }\n}\n","export const readableStreamtoIterable = (readableStream) => ({\n    [Symbol.asyncIterator]: async function* () {\n        const reader = readableStream.getReader();\n        try {\n            while (true) {\n                const { done, value } = await reader.read();\n                if (done)\n                    return;\n                yield value;\n            }\n        }\n        finally {\n            reader.releaseLock();\n        }\n    },\n});\nexport const iterableToReadableStream = (asyncIterable) => {\n    const iterator = asyncIterable[Symbol.asyncIterator]();\n    return new ReadableStream({\n        async pull(controller) {\n            const { done, value } = await iterator.next();\n            if (done) {\n                return controller.close();\n            }\n            controller.enqueue(value);\n        },\n    });\n};\n","import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@smithy/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n    universalMarshaller;\n    constructor({ utf8Encoder, utf8Decoder }) {\n        this.universalMarshaller = new UniversalEventStreamMarshaller({\n            utf8Decoder,\n            utf8Encoder,\n        });\n    }\n    deserialize(body, deserializer) {\n        const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n        return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n    }\n    serialize(input, serializer) {\n        const serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n        return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n    }\n}\nconst isReadableStream = (body) => typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","export async function blobReader(blob, onChunk, chunkSize = 1024 * 1024) {\n    const size = blob.size;\n    let totalBytesRead = 0;\n    while (totalBytesRead < size) {\n        const slice = blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize));\n        onChunk(new Uint8Array(await slice.arrayBuffer()));\n        totalBytesRead += slice.size;\n    }\n}\n","import { blobReader } from \"@smithy/chunked-blob-reader\";\nexport const blobHasher = async function blobHasher(hashCtor, blob) {\n    const hash = new hashCtor();\n    await blobReader(blob, (chunk) => {\n        hash.update(chunk);\n    });\n    return hash.digest();\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","export const BLOCK_SIZE = 64;\nexport const DIGEST_LENGTH = 16;\nexport const INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nexport class Md5 {\n    state;\n    buffer;\n    bufferLength;\n    bytesHashed;\n    finished;\n    constructor() {\n        this.reset();\n    }\n    update(sourceData) {\n        if (isEmptyData(sourceData)) {\n            return;\n        }\n        else if (this.finished) {\n            throw new Error(\"Attempted to update an already finished hash.\");\n        }\n        const data = convertToBuffer(sourceData);\n        let position = 0;\n        let { byteLength } = data;\n        this.bytesHashed += byteLength;\n        while (byteLength > 0) {\n            this.buffer.setUint8(this.bufferLength++, data[position++]);\n            byteLength--;\n            if (this.bufferLength === BLOCK_SIZE) {\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n        }\n    }\n    async digest() {\n        if (!this.finished) {\n            const { buffer, bufferLength: undecoratedLength, bytesHashed } = this;\n            const bitsHashed = bytesHashed * 8;\n            buffer.setUint8(this.bufferLength++, 0b10000000);\n            if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n                for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n                    buffer.setUint8(i, 0);\n                }\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n            for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n                buffer.setUint8(i, 0);\n            }\n            buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n            buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n            this.hashBuffer();\n            this.finished = true;\n        }\n        const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n        for (let i = 0; i < 4; i++) {\n            out.setUint32(i * 4, this.state[i], true);\n        }\n        return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n    }\n    hashBuffer() {\n        const { buffer, state } = this;\n        let a = state[0], b = state[1], c = state[2], d = state[3];\n        a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n        d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n        c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n        b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n        a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n        d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n        c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n        b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n        a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n        d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n        c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n        b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n        a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n        d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n        c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n        b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n        a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n        d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n        c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n        b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n        a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n        d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n        c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n        b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n        a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n        d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n        c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n        b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n        a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n        d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n        c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n        b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n        a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n        d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n        c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n        b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n        a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n        d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n        c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n        b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n        a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n        d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n        c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n        b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n        a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n        d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n        c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n        b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n        a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n        d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n        c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n        b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n        a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n        d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n        c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n        b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n        a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n        d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n        c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n        b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n        a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n        d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n        c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n        b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n        state[0] = (a + state[0]) & 0xffffffff;\n        state[1] = (b + state[1]) & 0xffffffff;\n        state[2] = (c + state[2]) & 0xffffffff;\n        state[3] = (d + state[3]) & 0xffffffff;\n    }\n    reset() {\n        this.state = Uint32Array.from(INIT);\n        this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n        this.bufferLength = 0;\n        this.bytesHashed = 0;\n        this.finished = false;\n    }\n}\nfunction cmn(q, a, b, x, s, t) {\n    a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n    return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n    return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n    return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n    return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n    return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { memoize } from \"@smithy/property-provider\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n    const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n    switch (mode?.toLowerCase()) {\n        case \"auto\":\n            return Promise.resolve(useMobileConfiguration() ? \"mobile\" : \"standard\");\n        case \"mobile\":\n        case \"in-region\":\n        case \"cross-region\":\n        case \"standard\":\n        case \"legacy\":\n            return Promise.resolve(mode?.toLocaleLowerCase());\n        case undefined:\n            return Promise.resolve(\"legacy\");\n        default:\n            throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n    }\n});\nconst useMobileConfiguration = () => {\n    const navigator = window?.navigator;\n    if (navigator?.connection) {\n        const { effectiveType, rtt, downlink } = navigator?.connection;\n        const slow = (typeof effectiveType === \"string\" && effectiveType !== \"4g\") || Number(rtt) > 100 || Number(downlink) < 10;\n        if (slow) {\n            return true;\n        }\n    }\n    return (navigator?.userAgentData?.mobile || (typeof navigator?.maxTouchPoints === \"number\" && navigator?.maxTouchPoints > 1));\n};\n","import { AwsSdkSigV4ASigner, AwsSdkSigV4Signer } from \"@aws-sdk/core/httpAuthSchemes\";\nimport { S3RestXmlProtocol } from \"@aws-sdk/middleware-sdk-s3\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { getAwsChunkedEncodingStream, sdkStreamMixin } from \"@smithy/util-stream\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultS3HttpAuthSchemeProvider } from \"./auth/httpAuthSchemeProvider\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nimport { errorTypeRegistries } from \"./schemas/schemas_0\";\nexport const getRuntimeConfig = (config) => {\n    return {\n        apiVersion: \"2006-03-01\",\n        base64Decoder: config?.base64Decoder ?? fromBase64,\n        base64Encoder: config?.base64Encoder ?? toBase64,\n        disableHostPrefix: config?.disableHostPrefix ?? false,\n        endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n        extensions: config?.extensions ?? [],\n        getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream,\n        httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultS3HttpAuthSchemeProvider,\n        httpAuthSchemes: config?.httpAuthSchemes ?? [\n            {\n                schemeId: \"aws.auth#sigv4\",\n                identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n                signer: new AwsSdkSigV4Signer(),\n            },\n            {\n                schemeId: \"aws.auth#sigv4a\",\n                identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n                signer: new AwsSdkSigV4ASigner(),\n            },\n        ],\n        logger: config?.logger ?? new NoOpLogger(),\n        protocol: config?.protocol ?? S3RestXmlProtocol,\n        protocolSettings: config?.protocolSettings ?? {\n            defaultNamespace: \"com.amazonaws.s3\",\n            errorTypeRegistries,\n            xmlNamespace: \"http://s3.amazonaws.com/doc/2006-03-01/\",\n            version: \"2006-03-01\",\n            serviceTarget: \"AmazonS3\",\n        },\n        sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin,\n        serviceId: config?.serviceId ?? \"S3\",\n        signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n        signingEscapePath: config?.signingEscapePath ?? false,\n        urlParser: config?.urlParser ?? parseUrl,\n        useArnRegion: config?.useArnRegion ?? undefined,\n        utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n        utf8Encoder: config?.utf8Encoder ?? toUtf8,\n    };\n};\n","import packageInfo from \"../package.json\";\nimport { Sha1 } from \"@aws-crypto/sha1-browser\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { createDefaultUserAgentProvider } from \"@aws-sdk/util-user-agent-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@smithy/config-resolver\";\nimport { eventStreamSerdeProvider } from \"@smithy/eventstream-serde-browser\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@smithy/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@smithy/hash-blob-browser\";\nimport { invalidProvider } from \"@smithy/invalid-dependency\";\nimport { Md5 } from \"@smithy/md5-js\";\nimport { loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-browser\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nexport const getRuntimeConfig = (config) => {\n    const defaultsMode = resolveDefaultsModeConfig(config);\n    const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n    const clientSharedValues = getSharedRuntimeConfig(config);\n    return {\n        ...clientSharedValues,\n        ...config,\n        runtime: \"browser\",\n        defaultsMode,\n        bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n        credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n        defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n        eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider,\n        maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n        md5: config?.md5 ?? Md5,\n        region: config?.region ?? invalidProvider(\"Region is missing\"),\n        requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),\n        retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n        sha1: config?.sha1 ?? Sha1,\n        sha256: config?.sha256 ?? Sha256,\n        streamCollector: config?.streamCollector ?? streamCollector,\n        streamHasher: config?.streamHasher ?? streamHasher,\n        useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n        useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n    };\n};\n","export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n    return {\n        setRegion(region) {\n            runtimeConfig.region = region;\n        },\n        region() {\n            return runtimeConfig.region;\n        },\n    };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n    return {\n        region: awsRegionExtensionConfiguration.region(),\n    };\n};\n","export const getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n    const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n    let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n    let _credentials = runtimeConfig.credentials;\n    return {\n        setHttpAuthScheme(httpAuthScheme) {\n            const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n            if (index === -1) {\n                _httpAuthSchemes.push(httpAuthScheme);\n            }\n            else {\n                _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n            }\n        },\n        httpAuthSchemes() {\n            return _httpAuthSchemes;\n        },\n        setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n            _httpAuthSchemeProvider = httpAuthSchemeProvider;\n        },\n        httpAuthSchemeProvider() {\n            return _httpAuthSchemeProvider;\n        },\n        setCredentials(credentials) {\n            _credentials = credentials;\n        },\n        credentials() {\n            return _credentials;\n        },\n    };\n};\nexport const resolveHttpAuthRuntimeConfig = (config) => {\n    return {\n        httpAuthSchemes: config.httpAuthSchemes(),\n        httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n        credentials: config.credentials(),\n    };\n};\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nimport { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from \"./auth/httpAuthExtensionConfiguration\";\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n    const extensionConfiguration = Object.assign(getAwsRegionExtensionConfiguration(runtimeConfig), getDefaultExtensionConfiguration(runtimeConfig), getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n    extensions.forEach((extension) => extension.configure(extensionConfiguration));\n    return Object.assign(runtimeConfig, resolveAwsRegionExtensionConfiguration(extensionConfiguration), resolveDefaultRuntimeConfig(extensionConfiguration), resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n","import { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { resolveFlexibleChecksumsConfig, } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRegionRedirectMiddlewarePlugin, getS3ExpressHttpSigningPlugin, getS3ExpressPlugin, getValidateBucketNamePlugin, resolveS3Config, } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { DefaultIdentityProviderConfig, getHttpAuthSchemeEndpointRuleSetPlugin, getHttpSigningPlugin, } from \"@smithy/core\";\nimport { getSchemaSerdePlugin } from \"@smithy/core/schema\";\nimport { resolveEventStreamSerdeConfig, } from \"@smithy/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig, } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig, } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { defaultS3HttpAuthSchemeParametersProvider, resolveHttpAuthSchemeConfig, } from \"./auth/httpAuthSchemeProvider\";\nimport { CreateSessionCommand, } from \"./commands/CreateSessionCommand\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class S3Client extends __Client {\n    config;\n    constructor(...[configuration]) {\n        const _config_0 = __getRuntimeConfig(configuration || {});\n        super(_config_0);\n        this.initConfig = _config_0;\n        const _config_1 = resolveClientEndpointParameters(_config_0);\n        const _config_2 = resolveUserAgentConfig(_config_1);\n        const _config_3 = resolveFlexibleChecksumsConfig(_config_2);\n        const _config_4 = resolveRetryConfig(_config_3);\n        const _config_5 = resolveRegionConfig(_config_4);\n        const _config_6 = resolveHostHeaderConfig(_config_5);\n        const _config_7 = resolveEndpointConfig(_config_6);\n        const _config_8 = resolveEventStreamSerdeConfig(_config_7);\n        const _config_9 = resolveHttpAuthSchemeConfig(_config_8);\n        const _config_10 = resolveS3Config(_config_9, { session: [() => this, CreateSessionCommand] });\n        const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);\n        this.config = _config_11;\n        this.middlewareStack.use(getSchemaSerdePlugin(this.config));\n        this.middlewareStack.use(getUserAgentPlugin(this.config));\n        this.middlewareStack.use(getRetryPlugin(this.config));\n        this.middlewareStack.use(getContentLengthPlugin(this.config));\n        this.middlewareStack.use(getHostHeaderPlugin(this.config));\n        this.middlewareStack.use(getLoggerPlugin(this.config));\n        this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n        this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n            httpAuthSchemeParametersProvider: defaultS3HttpAuthSchemeParametersProvider,\n            identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({\n                \"aws.auth#sigv4\": config.credentials,\n                \"aws.auth#sigv4a\": config.credentials,\n            }),\n        }));\n        this.middlewareStack.use(getHttpSigningPlugin(this.config));\n        this.middlewareStack.use(getValidateBucketNamePlugin(this.config));\n        this.middlewareStack.use(getAddExpectContinuePlugin(this.config));\n        this.middlewareStack.use(getRegionRedirectMiddlewarePlugin(this.config));\n        this.middlewareStack.use(getS3ExpressPlugin(this.config));\n        this.middlewareStack.use(getS3ExpressHttpSigningPlugin(this.config));\n    }\n    destroy() {\n        super.destroy();\n    }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { AbortMultipartUpload$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class AbortMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"AbortMultipartUpload\", {})\n    .n(\"S3Client\", \"AbortMultipartUploadCommand\")\n    .sc(AbortMultipartUpload$)\n    .build() {\n}\n","export function ssecMiddleware(options) {\n    return (next) => async (args) => {\n        const input = { ...args.input };\n        const properties = [\n            {\n                target: \"SSECustomerKey\",\n                hash: \"SSECustomerKeyMD5\",\n            },\n            {\n                target: \"CopySourceSSECustomerKey\",\n                hash: \"CopySourceSSECustomerKeyMD5\",\n            },\n        ];\n        for (const prop of properties) {\n            const value = input[prop.target];\n            if (value) {\n                let valueForHash;\n                if (typeof value === \"string\") {\n                    if (isValidBase64EncodedSSECustomerKey(value, options)) {\n                        valueForHash = options.base64Decoder(value);\n                    }\n                    else {\n                        valueForHash = options.utf8Decoder(value);\n                        input[prop.target] = options.base64Encoder(valueForHash);\n                    }\n                }\n                else {\n                    valueForHash = ArrayBuffer.isView(value)\n                        ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n                        : new Uint8Array(value);\n                    input[prop.target] = options.base64Encoder(valueForHash);\n                }\n                const hash = new options.md5();\n                hash.update(valueForHash);\n                input[prop.hash] = options.base64Encoder(await hash.digest());\n            }\n        }\n        return next({\n            ...args,\n            input,\n        });\n    };\n}\nexport const ssecMiddlewareOptions = {\n    name: \"ssecMiddleware\",\n    step: \"initialize\",\n    tags: [\"SSE\"],\n    override: true,\n};\nexport const getSsecPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n    },\n});\nexport function isValidBase64EncodedSSECustomerKey(str, options) {\n    const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n    if (!base64Regex.test(str))\n        return false;\n    try {\n        const decodedBytes = options.base64Decoder(str);\n        return decodedBytes.length === 32;\n    }\n    catch {\n        return false;\n    }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CompleteMultipartUpload$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class CompleteMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CompleteMultipartUpload\", {})\n    .n(\"S3Client\", \"CompleteMultipartUploadCommand\")\n    .sc(CompleteMultipartUpload$)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CopyObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class CopyObjectCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n    CopySource: { type: \"contextParams\", name: \"CopySource\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CopyObject\", {})\n    .n(\"S3Client\", \"CopyObjectCommand\")\n    .sc(CopyObject$)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CreateMultipartUpload$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class CreateMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CreateMultipartUpload\", {})\n    .n(\"S3Client\", \"CreateMultipartUploadCommand\")\n    .sc(CreateMultipartUpload$)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { DeleteObjects$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class DeleteObjectsCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestAlgorithmMember: { 'httpHeader': 'x-amz-sdk-checksum-algorithm', 'name': 'ChecksumAlgorithm' },\n            requestChecksumRequired: true,\n        }),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"DeleteObjects\", {})\n    .n(\"S3Client\", \"DeleteObjectsCommand\")\n    .sc(DeleteObjects$)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getS3ExpiresMiddlewarePlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { GetObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class GetObjectCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestChecksumRequired: false,\n            requestValidationModeMember: 'ChecksumMode',\n            'responseAlgorithms': ['CRC64NVME', 'CRC32', 'CRC32C', 'SHA256', 'SHA1'],\n        }),\n        getSsecPlugin(config),\n        getS3ExpiresMiddlewarePlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"GetObject\", {})\n    .n(\"S3Client\", \"GetObjectCommand\")\n    .sc(GetObject$)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { ListObjectsV2$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class ListObjectsV2Command extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Prefix: { type: \"contextParams\", name: \"Prefix\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"ListObjectsV2\", {})\n    .n(\"S3Client\", \"ListObjectsV2Command\")\n    .sc(ListObjectsV2$)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { ListParts$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class ListPartsCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"ListParts\", {})\n    .n(\"S3Client\", \"ListPartsCommand\")\n    .sc(ListParts$)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getCheckContentLengthHeaderPlugin, getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { PutObject$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class PutObjectCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestAlgorithmMember: { 'httpHeader': 'x-amz-sdk-checksum-algorithm', 'name': 'ChecksumAlgorithm' },\n            requestChecksumRequired: false,\n        }),\n        getCheckContentLengthHeaderPlugin(config),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"PutObject\", {})\n    .n(\"S3Client\", \"PutObjectCommand\")\n    .sc(PutObject$)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { UploadPart$ } from \"../schemas/schemas_0\";\nexport { $Command };\nexport class UploadPartCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestAlgorithmMember: { 'httpHeader': 'x-amz-sdk-checksum-algorithm', 'name': 'ChecksumAlgorithm' },\n            requestChecksumRequired: false,\n        }),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"UploadPart\", {})\n    .n(\"S3Client\", \"UploadPartCommand\")\n    .sc(UploadPart$)\n    .build() {\n}\n","import { buildQueryString } from \"@smithy/querystring-builder\";\nexport function formatUrl(request) {\n    const { port, query } = request;\n    let { protocol, path, hostname } = request;\n    if (protocol && protocol.slice(-1) !== \":\") {\n        protocol += \":\";\n    }\n    if (port) {\n        hostname += `:${port}`;\n    }\n    if (path && path.charAt(0) !== \"/\") {\n        path = `/${path}`;\n    }\n    let queryString = query ? buildQueryString(query) : \"\";\n    if (queryString && queryString[0] !== \"?\") {\n        queryString = `?${queryString}`;\n    }\n    let auth = \"\";\n    if (request.username != null || request.password != null) {\n        const username = request.username ?? \"\";\n        const password = request.password ?? \"\";\n        auth = `${username}:${password}@`;\n    }\n    let fragment = \"\";\n    if (request.fragment) {\n        fragment = `#${request.fragment}`;\n    }\n    return `${protocol}//${auth}${hostname}${path}${queryString}${fragment}`;\n}\n","export const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const SHA256_HEADER = \"X-Amz-Content-Sha256\";\nexport const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const HOST_HEADER = \"host\";\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n","import { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport class S3RequestPresigner {\n    signer;\n    constructor(options) {\n        const resolvedOptions = {\n            service: options.signingName || options.service || \"s3\",\n            uriEscapePath: options.uriEscapePath || false,\n            applyChecksum: options.applyChecksum || false,\n            ...options,\n        };\n        this.signer = new SignatureV4MultiRegion(resolvedOptions);\n    }\n    presign(requestToSign, { unsignableHeaders = new Set(), hoistableHeaders = new Set(), unhoistableHeaders = new Set(), ...options } = {}) {\n        this.prepareRequest(requestToSign, {\n            unsignableHeaders,\n            unhoistableHeaders,\n            hoistableHeaders,\n        });\n        return this.signer.presign(requestToSign, {\n            expiresIn: 900,\n            unsignableHeaders,\n            unhoistableHeaders,\n            ...options,\n        });\n    }\n    presignWithCredentials(requestToSign, credentials, { unsignableHeaders = new Set(), hoistableHeaders = new Set(), unhoistableHeaders = new Set(), ...options } = {}) {\n        this.prepareRequest(requestToSign, {\n            unsignableHeaders,\n            unhoistableHeaders,\n            hoistableHeaders,\n        });\n        return this.signer.presignWithCredentials(requestToSign, credentials, {\n            expiresIn: 900,\n            unsignableHeaders,\n            unhoistableHeaders,\n            ...options,\n        });\n    }\n    prepareRequest(requestToSign, { unsignableHeaders = new Set(), unhoistableHeaders = new Set(), hoistableHeaders = new Set(), } = {}) {\n        unsignableHeaders.add(\"content-type\");\n        Object.keys(requestToSign.headers)\n            .map((header) => header.toLowerCase())\n            .filter((header) => header.startsWith(\"x-amz-server-side-encryption\"))\n            .forEach((header) => {\n            if (!hoistableHeaders.has(header)) {\n                unhoistableHeaders.add(header);\n            }\n        });\n        requestToSign.headers[SHA256_HEADER] = UNSIGNED_PAYLOAD;\n        const currentHostHeader = requestToSign.headers.host;\n        const port = requestToSign.port;\n        const expectedHostHeader = `${requestToSign.hostname}${requestToSign.port != null ? \":\" + port : \"\"}`;\n        if (!currentHostHeader || (currentHostHeader === requestToSign.hostname && requestToSign.port != null)) {\n            requestToSign.headers.host = expectedHostHeader;\n        }\n    }\n}\n","import { formatUrl } from \"@aws-sdk/util-format-url\";\nimport { getEndpointFromInstructions } from \"@smithy/middleware-endpoint\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { S3RequestPresigner } from \"./presigner\";\nexport const getSignedUrl = async (client, command, options = {}) => {\n    let s3Presigner;\n    let region;\n    if (typeof client.config.endpointProvider === \"function\") {\n        const endpointV2 = await getEndpointFromInstructions(command.input, command.constructor, client.config);\n        const authScheme = endpointV2.properties?.authSchemes?.[0];\n        if (authScheme?.name === \"sigv4a\") {\n            region = authScheme?.signingRegionSet?.join(\",\");\n        }\n        else {\n            region = authScheme?.signingRegion;\n        }\n        s3Presigner = new S3RequestPresigner({\n            ...client.config,\n            signingName: authScheme?.signingName,\n            region: async () => region,\n        });\n    }\n    else {\n        s3Presigner = new S3RequestPresigner(client.config);\n    }\n    const presignInterceptMiddleware = (next, context) => async (args) => {\n        const { request } = args;\n        if (!HttpRequest.isInstance(request)) {\n            throw new Error(\"Request to be presigned is not an valid HTTP request.\");\n        }\n        delete request.headers[\"amz-sdk-invocation-id\"];\n        delete request.headers[\"amz-sdk-request\"];\n        delete request.headers[\"x-amz-user-agent\"];\n        let presigned;\n        const presignerOptions = {\n            ...options,\n            signingRegion: options.signingRegion ?? context[\"signing_region\"] ?? region,\n            signingService: options.signingService ?? context[\"signing_service\"],\n        };\n        if (context.s3ExpressIdentity) {\n            presigned = await s3Presigner.presignWithCredentials(request, context.s3ExpressIdentity, presignerOptions);\n        }\n        else {\n            presigned = await s3Presigner.presign(request, presignerOptions);\n        }\n        return {\n            response: {},\n            output: {\n                $metadata: { httpStatusCode: 200 },\n                presigned,\n            },\n        };\n    };\n    const middlewareName = \"presignInterceptMiddleware\";\n    const clientStack = client.middlewareStack.clone();\n    clientStack.addRelativeTo(presignInterceptMiddleware, {\n        name: middlewareName,\n        relation: \"before\",\n        toMiddleware: \"awsAuthMiddleware\",\n        override: true,\n    });\n    const handler = command.resolveMiddleware(clientStack, client.config, {});\n    const { output } = await handler({ input: command.input });\n    const { presigned } = output;\n    return formatUrl(presigned);\n};\n","import {\n  AbortMultipartUploadCommand,\n  CompleteMultipartUploadCommand,\n  CopyObjectCommand,\n  CreateMultipartUploadCommand,\n  DeleteObjectsCommand,\n  GetObjectCommand,\n  ListPartsCommand,\n  ListObjectsV2Command,\n  PutObjectCommand,\n  S3Client,\n  UploadPartCommand,\n  type ObjectIdentifier,\n} from \"@aws-sdk/client-s3\"\nimport { getSignedUrl } from \"@aws-sdk/s3-request-presigner\"\n\nexport const ROOT_ID = \"/\"\nconst MIN_MULTIPART_PART_SIZE = 5 * 1024 * 1024\nconst DEFAULT_MULTIPART_PART_SIZE = 8 * 1024 * 1024\nconst DEFAULT_MULTIPART_QUEUE_SIZE = 3\nconst DEFAULT_MULTIPART_RETRY_ATTEMPTS = 4\nconst MULTIPART_STATE_VERSION = 1\nconst MULTIPART_STATE_PREFIX = \"kontextwerk:minio-upload\"\n\nconst forceHttps = (value: string | undefined | null): string | undefined => {\n  if (!value) return value ?? undefined\n\n  const trimmed = value.trim()\n\n  if (!trimmed) return undefined\n\n  const prefixed = /^https?:\\/\\//i.test(trimmed) ? trimmed : `https://${trimmed}`\n  try {\n    const url = new URL(prefixed)\n\n    if (url.protocol !== \"https:\") {\n      url.protocol = \"https:\"\n    }\n\n    return url.toString()\n  } catch {\n    return prefixed.replace(/^http:/i, \"https:\")\n  }\n}\n\nexport type BucketCredentials = {\n  bucket: string\n  s3Endpoint: string\n  publicUrl: string\n  region: string\n  secure: boolean\n  forcePathStyle: boolean\n  accessKey: string\n  secretKey: string\n  sessionToken?: string | null\n  issuedAt: Date\n  expiresAt: Date\n}\n\nexport type FileManagerEntry = {\n  id: string\n  type: \"file\" | \"folder\"\n  size?: number\n  date?: Date\n  lazy?: boolean\n}\n\nexport type UploadProgressSnapshot = {\n  loadedBytes: number\n  totalBytes: number\n  percentage: number\n  uploadedParts: number\n  totalParts: number\n  resumed: boolean\n  retries: number\n}\n\nexport type UploadFileOptions = {\n  onProgress?: (snapshot: UploadProgressSnapshot) => void\n  partSizeBytes?: number\n  queueSize?: number\n  retryAttempts?: number\n}\n\ntype MultipartPersistedPart = {\n  partNumber: number\n  etag: string\n  size: number\n}\n\ntype MultipartUploadState = {\n  version: number\n  uploadId: string\n  key: string\n  bucket: string\n  fileSize: number\n  fileLastModified: number\n  partSize: number\n  parts: MultipartPersistedPart[]\n  createdAt: string\n  updatedAt: string\n}\n\nconst normalizeId = (value: string): string => {\n  if (!value) return ROOT_ID\n\n  return value.startsWith(\"/\") ? value : `/${value}`\n}\n\nconst stripLeadingSlash = (value: string): string => value.replace(/^\\/+/u, \"\")\nconst ensureTrailingSlash = (value: string): string => (value.endsWith(\"/\") ? value : `${value}/`)\n\nexport const parentIdOf = (value: string): string => {\n  const id = normalizeId(value)\n\n  if (id === ROOT_ID) {\n    return ROOT_ID\n  }\n\n  const segments = stripLeadingSlash(id).split(\"/\")\n  segments.pop()\n\n  if (segments.length === 0) {\n    return ROOT_ID\n  }\n\n  return `/${segments.join(\"/\")}`\n}\n\nexport const nameFromId = (value: string): string => {\n  const id = normalizeId(value)\n\n  if (id === ROOT_ID) return \"\"\n\n  const segments = stripLeadingSlash(id).split(\"/\")\n\n  return segments[segments.length - 1] ?? \"\"\n}\n\nconst toPrefix = (value: string): string => {\n  const id = normalizeId(value)\n\n  if (id === ROOT_ID) {\n    return \"\"\n  }\n\n  return ensureTrailingSlash(stripLeadingSlash(id))\n}\n\nconst toKey = (value: string): string => stripLeadingSlash(normalizeId(value))\n\nconst encodeCopySource = (bucket: string, key: string): string => {\n  const encodedKey = encodeURIComponent(key).replace(/%2F/gu, \"/\")\n\n  return `${bucket}/${encodedKey}`\n}\n\nconst sortEntries = (items: FileManagerEntry[]): FileManagerEntry[] => {\n  return items.slice().sort((a, b) => {\n    if (a.type !== b.type) {\n      return a.type === \"folder\" ? -1 : 1\n    }\n\n    const nameA = nameFromId(a.id).toLocaleLowerCase()\n    const nameB = nameFromId(b.id).toLocaleLowerCase()\n\n    if (nameA < nameB) return -1\n\n    if (nameA > nameB) return 1\n\n    return 0\n  })\n}\n\nconst isFolderEntry = (\n  entry: FileManagerEntry | undefined,\n): entry is FileManagerEntry & { type: \"folder\" } => entry?.type === \"folder\"\n\nconst ensureMinimumPartSize = (value: number | undefined): number => {\n  const requested = Number.isFinite(value)\n    ? Math.floor(value as number)\n    : DEFAULT_MULTIPART_PART_SIZE\n\n  return Math.max(requested, MIN_MULTIPART_PART_SIZE)\n}\n\nconst sleep = async (milliseconds: number): Promise<void> =>\n  new Promise((resolve) => {\n    globalThis.setTimeout(resolve, milliseconds)\n  })\n\nconst isReadableStreamGetReaderError = (error: unknown): boolean => {\n  if (!error) return false\n\n  const message =\n    error instanceof Error\n      ? `${error.name || \"\"} ${error.message || \"\"}`.trim()\n      : String(error ?? \"\")\n  const normalized = message.toLowerCase()\n\n  return normalized.includes(\"getreader\") && normalized.includes(\"not a function\")\n}\n\nconst blobToUint8Array = async (blob: Blob): Promise<Uint8Array> => {\n  const anyBlob = blob as unknown as { arrayBuffer?: () => Promise<ArrayBuffer> }\n\n  if (typeof anyBlob.arrayBuffer === \"function\") {\n    return new Uint8Array(await anyBlob.arrayBuffer())\n  }\n\n  return await new Promise<Uint8Array>((resolve, reject) => {\n    try {\n      const reader = new FileReader()\n      reader.onerror = () => reject(reader.error ?? new Error(\"Blob konnte nicht gelesen werden.\"))\n      reader.onload = () => resolve(new Uint8Array(reader.result as ArrayBuffer))\n      reader.readAsArrayBuffer(blob)\n    } catch (error) {\n      reject(error)\n    }\n  })\n}\n\nconst toCompletedPartArray = (\n  parts: MultipartPersistedPart[],\n): { ETag: string; PartNumber: number }[] =>\n  parts\n    .slice()\n    .sort((a, b) => a.partNumber - b.partNumber)\n    .map((part) => ({\n      ETag: part.etag,\n      PartNumber: part.partNumber,\n    }))\n\nexport class MinioFileManagerClient {\n  private readonly s3: S3Client\n  private readonly bucket: string\n  private readonly itemCache = new Map<string, FileManagerEntry>()\n  private readonly folderCache = new Map<string, FileManagerEntry[]>()\n\n  constructor(private readonly credentials: BucketCredentials) {\n    const endpoint = forceHttps(credentials.s3Endpoint || credentials.publicUrl)\n    this.s3 = new S3Client({\n      region: credentials.region || \"us-east-1\",\n      endpoint,\n      forcePathStyle: credentials.forcePathStyle,\n      tls: true,\n      credentials: {\n        accessKeyId: credentials.accessKey,\n        secretAccessKey: credentials.secretKey,\n        sessionToken: credentials.sessionToken ?? undefined,\n      },\n    })\n    this.bucket = credentials.bucket\n    this.itemCache.set(ROOT_ID, { id: ROOT_ID, type: \"folder\", lazy: true })\n  }\n\n  get issuedAt(): Date {\n    return this.credentials.issuedAt\n  }\n\n  get expiresAt(): Date {\n    return this.credentials.expiresAt\n  }\n\n  getCachedItem(id: string): FileManagerEntry | undefined {\n    return this.itemCache.get(normalizeId(id))\n  }\n\n  async listFolder(id: string): Promise<FileManagerEntry[]> {\n    const folderId = normalizeId(id)\n    const prefix = toPrefix(folderId)\n    const seenFolders = new Set<string>()\n    const result: FileManagerEntry[] = []\n\n    let continuationToken: string | undefined\n    do {\n      const response = await this.s3.send(\n        new ListObjectsV2Command({\n          Bucket: this.bucket,\n          Prefix: prefix,\n          Delimiter: \"/\",\n          ContinuationToken: continuationToken,\n        }),\n      )\n\n      for (const entry of response.CommonPrefixes ?? []) {\n        const childPrefix = entry.Prefix\n\n        if (!childPrefix) continue\n\n        const childId = normalizeId(stripLeadingSlash(childPrefix).replace(/\\/$/u, \"\"))\n\n        if (!childId || childId === folderId) continue\n\n        if (seenFolders.has(childId)) continue\n\n        seenFolders.add(childId)\n        const folderEntry: FileManagerEntry = {\n          id: childId,\n          type: \"folder\",\n          lazy: true,\n        }\n        result.push(folderEntry)\n        this.itemCache.set(childId, folderEntry)\n      }\n\n      for (const object of response.Contents ?? []) {\n        const key = object.Key\n\n        if (!key) continue\n\n        if (key === prefix) continue\n\n        if (key.endsWith(\"/\")) {\n          // folders are covered via CommonPrefixes\n          continue\n        }\n\n        const fileId = normalizeId(key)\n        const fileEntry: FileManagerEntry = {\n          id: fileId,\n          type: \"file\",\n          size: object.Size ?? undefined,\n          date: object.LastModified ? new Date(object.LastModified) : undefined,\n        }\n        result.push(fileEntry)\n        this.itemCache.set(fileId, fileEntry)\n      }\n\n      continuationToken = response.IsTruncated ? response.NextContinuationToken : undefined\n    } while (continuationToken)\n\n    const sorted = sortEntries(result)\n    this.folderCache.set(folderId, sorted)\n\n    return sorted\n  }\n\n  public async ensureItem(id: string): Promise<FileManagerEntry | undefined> {\n    const normalized = normalizeId(id)\n    const cached = this.itemCache.get(normalized)\n\n    if (cached) {\n      return cached\n    }\n\n    const parent = parentIdOf(normalized)\n\n    if (!this.folderCache.has(parent)) {\n      try {\n        await this.listFolder(parent)\n      } catch {\n        return undefined\n      }\n    }\n\n    return this.itemCache.get(normalized)\n  }\n\n  public async createFolder(parent: string, name: string): Promise<void> {\n    const parentId = normalizeId(parent)\n    const prefix = toPrefix(parentId)\n    const targetPrefix = ensureTrailingSlash(`${prefix}${name}`)\n    await this.putPlaceholder(targetPrefix)\n    this.clearDescendants(parentId)\n  }\n\n  public async uploadFile(\n    parent: string,\n    file: File,\n    options: UploadFileOptions = {},\n  ): Promise<void> {\n    const parentId = normalizeId(parent)\n    const prefix = toPrefix(parentId)\n    const key = `${prefix}${file.name}`\n    const totalBytes = file.size || 0\n\n    if (file.size < MIN_MULTIPART_PART_SIZE) {\n      options.onProgress?.({\n        loadedBytes: 0,\n        totalBytes,\n        percentage: totalBytes > 0 ? 0 : 100,\n        uploadedParts: totalBytes > 0 ? 0 : 1,\n        totalParts: 1,\n        resumed: false,\n        retries: 0,\n      })\n\n      try {\n        await this.s3.send(\n          new PutObjectCommand({\n            Bucket: this.bucket,\n            Key: key,\n            Body: file,\n            ContentType: file.type || undefined,\n          }),\n        )\n      } catch (error) {\n        // Some environments/polyfills surface a non-standard stream implementation which breaks\n        // the AWS SDK browser stream collector (e.g. \"readableStream.getReader is not a function\").\n        // For small files, fall back to an eager buffer upload.\n        if (!isReadableStreamGetReaderError(error)) {\n          throw error\n        }\n\n        const bufferBody = await blobToUint8Array(file)\n        await this.s3.send(\n          new PutObjectCommand({\n            Bucket: this.bucket,\n            Key: key,\n            Body: bufferBody,\n            ContentType: file.type || undefined,\n          }),\n        )\n      }\n\n      options.onProgress?.({\n        loadedBytes: totalBytes,\n        totalBytes,\n        percentage: 100,\n        uploadedParts: 1,\n        totalParts: 1,\n        resumed: false,\n        retries: 0,\n      })\n\n      this.clearDescendants(parentId)\n\n      return\n    }\n\n    const configuredPartSize = ensureMinimumPartSize(options.partSizeBytes)\n    const queueSize = Math.max(1, Math.floor(options.queueSize ?? DEFAULT_MULTIPART_QUEUE_SIZE))\n    const retryAttempts = Math.max(\n      0,\n      Math.floor(options.retryAttempts ?? DEFAULT_MULTIPART_RETRY_ATTEMPTS),\n    )\n\n    const stateInfo = await this.loadOrCreateMultipartState(\n      key,\n      file,\n      Math.min(configuredPartSize, file.size),\n    )\n    const partSize = Math.min(ensureMinimumPartSize(stateInfo.state.partSize), file.size)\n    const totalParts = Math.ceil(file.size / partSize)\n    const persistedParts = new Map<number, MultipartPersistedPart>()\n    for (const part of stateInfo.state.parts) {\n      persistedParts.set(part.partNumber, part)\n    }\n\n    let retries = 0\n    let loadedBytes = Array.from(persistedParts.values()).reduce((sum, part) => sum + part.size, 0)\n    const emitProgress = () => {\n      const percentage =\n        totalBytes > 0 ? Math.min(100, Math.round((loadedBytes / totalBytes) * 100)) : 100\n      options.onProgress?.({\n        loadedBytes,\n        totalBytes,\n        percentage,\n        uploadedParts: persistedParts.size,\n        totalParts,\n        resumed: stateInfo.resumed,\n        retries,\n      })\n    }\n\n    emitProgress()\n\n    const missingPartNumbers: number[] = []\n    for (let partNumber = 1; partNumber <= totalParts; partNumber += 1) {\n      if (!persistedParts.has(partNumber)) {\n        missingPartNumbers.push(partNumber)\n      }\n    }\n\n    let nextPartIndex = 0\n    const workers = Array.from({ length: Math.min(queueSize, missingPartNumbers.length) }, () =>\n      (async () => {\n        while (true) {\n          const currentIndex = nextPartIndex\n          nextPartIndex += 1\n          const partNumber = missingPartNumbers[currentIndex]\n\n          if (!partNumber) {\n            return\n          }\n\n          const start = (partNumber - 1) * partSize\n          const end = Math.min(start + partSize, file.size)\n          const body = file.slice(start, end)\n          const partBytes = end - start\n\n          const etag = await this.uploadMultipartPartWithRetry({\n            key,\n            uploadId: stateInfo.state.uploadId,\n            partNumber,\n            body,\n            retryAttempts,\n            onRetry: () => {\n              retries += 1\n              emitProgress()\n            },\n          })\n\n          persistedParts.set(partNumber, {\n            partNumber,\n            etag,\n            size: partBytes,\n          })\n\n          loadedBytes += partBytes\n          this.persistMultipartState(key, file, {\n            ...stateInfo.state,\n            parts: Array.from(persistedParts.values()),\n            updatedAt: new Date().toISOString(),\n          })\n          emitProgress()\n        }\n      })(),\n    )\n\n    try {\n      await Promise.all(workers)\n      await this.s3.send(\n        new CompleteMultipartUploadCommand({\n          Bucket: this.bucket,\n          Key: key,\n          UploadId: stateInfo.state.uploadId,\n          MultipartUpload: {\n            Parts: toCompletedPartArray(Array.from(persistedParts.values())),\n          },\n        }),\n      )\n      this.removeMultipartState(key, file)\n      loadedBytes = totalBytes\n      emitProgress()\n      this.clearDescendants(parentId)\n    } catch (error) {\n      if (this.isNoSuchUploadError(error)) {\n        this.removeMultipartState(key, file)\n        try {\n          await this.s3.send(\n            new AbortMultipartUploadCommand({\n              Bucket: this.bucket,\n              Key: key,\n              UploadId: stateInfo.state.uploadId,\n            }),\n          )\n        } catch {\n          // no-op\n        }\n      }\n\n      throw error\n    }\n  }\n\n  public async deleteEntries(ids: string[]): Promise<void> {\n    for (const id of ids) {\n      const normalized = normalizeId(id)\n      const entry = await this.ensureItem(normalized)\n\n      if (isFolderEntry(entry)) {\n        const prefix = toPrefix(normalized)\n        const keys = await this.collectKeys(prefix)\n\n        if (keys.length) {\n          await this.deleteKeys(keys)\n        }\n\n        await this.deleteKeys([prefix])\n        this.clearDescendants(normalized)\n      } else {\n        const key = toKey(normalized)\n        await this.deleteKeys([key])\n      }\n\n      const parent = parentIdOf(normalized)\n      this.clearDescendants(parent)\n      this.itemCache.delete(normalized)\n    }\n  }\n\n  public async renameEntry(id: string, name: string): Promise<void> {\n    const normalized = normalizeId(id)\n    const entry = await this.ensureItem(normalized)\n\n    if (!entry) {\n      throw new Error(\"Element konnte nicht geladen werden.\")\n    }\n\n    const parent = parentIdOf(normalized)\n    const targetPrefix = toPrefix(parent)\n\n    if (isFolderEntry(entry)) {\n      const sourcePrefix = toPrefix(normalized)\n      const destinationPrefix = ensureTrailingSlash(`${targetPrefix}${name}`)\n\n      if (destinationPrefix === sourcePrefix) {\n        return\n      }\n\n      if (destinationPrefix.startsWith(`${sourcePrefix}`)) {\n        throw new Error(\"Ordner kann nicht in sich selbst verschoben werden.\")\n      }\n\n      await this.copyFolder(sourcePrefix, destinationPrefix, true)\n      this.clearDescendants(normalized)\n    } else {\n      const sourceKey = toKey(normalized)\n      const destinationKey = `${targetPrefix}${name}`\n\n      if (sourceKey === destinationKey) {\n        return\n      }\n\n      await this.copyObject(sourceKey, destinationKey)\n      await this.deleteKeys([sourceKey])\n    }\n\n    this.clearDescendants(parent)\n    this.itemCache.delete(normalized)\n  }\n\n  public async copyEntries(\n    ids: string[],\n    targetFolder: string,\n    removeSource: boolean,\n  ): Promise<void> {\n    const destinationId = normalizeId(targetFolder)\n    const destinationPrefix = toPrefix(destinationId)\n\n    for (const id of ids) {\n      const normalized = normalizeId(id)\n\n      if (destinationId === normalized) {\n        throw new Error(\"Zielordner entspricht dem Quellordner.\")\n      }\n\n      if (destinationId.startsWith(`${normalized}/`)) {\n        throw new Error(\"Ordner kann nicht in einen Unterordner verschoben werden.\")\n      }\n    }\n\n    for (const id of ids) {\n      const normalized = normalizeId(id)\n      const entry = await this.ensureItem(normalized)\n\n      if (!entry) {\n        throw new Error(`Element ${id} konnte nicht geladen werden.`)\n      }\n\n      const name = nameFromId(normalized)\n\n      if (isFolderEntry(entry)) {\n        const sourcePrefix = toPrefix(normalized)\n        const targetPrefix = ensureTrailingSlash(`${destinationPrefix}${name}`)\n\n        if (targetPrefix === sourcePrefix) {\n          continue\n        }\n\n        if (targetPrefix.startsWith(`${sourcePrefix}`)) {\n          throw new Error(\"Ordner kann nicht in einen Unterordner verschoben werden.\")\n        }\n\n        await this.copyFolder(sourcePrefix, targetPrefix, removeSource)\n\n        if (removeSource) {\n          this.clearDescendants(normalized)\n        }\n      } else {\n        const sourceKey = toKey(normalized)\n        const targetKey = `${destinationPrefix}${name}`\n\n        if (sourceKey === targetKey) {\n          continue\n        }\n\n        await this.copyObject(sourceKey, targetKey)\n\n        if (removeSource) {\n          await this.deleteKeys([sourceKey])\n          this.itemCache.delete(normalized)\n        }\n      }\n    }\n\n    for (const id of ids) {\n      const parent = parentIdOf(id)\n      this.clearDescendants(parent)\n    }\n    this.clearDescendants(destinationId)\n  }\n\n  public async getDownloadUrl(id: string, expiresInSeconds = 900): Promise<string> {\n    const key = toKey(id)\n    const command = new GetObjectCommand({ Bucket: this.bucket, Key: key })\n\n    return getSignedUrl(this.s3, command, { expiresIn: expiresInSeconds })\n  }\n\n  private async copyFolder(\n    sourcePrefix: string,\n    targetPrefix: string,\n    removeSource: boolean,\n  ): Promise<void> {\n    await this.putPlaceholder(targetPrefix)\n    const keys = await this.collectKeys(sourcePrefix)\n    for (const key of keys) {\n      const relative = key.slice(sourcePrefix.length)\n      const destinationKey = `${targetPrefix}${relative}`\n      await this.copyObject(key, destinationKey)\n    }\n\n    if (removeSource) {\n      if (keys.length) {\n        await this.deleteKeys(keys)\n      }\n\n      await this.deleteKeys([sourcePrefix])\n    }\n  }\n\n  private async collectKeys(prefix: string): Promise<string[]> {\n    const keys: string[] = []\n    let continuationToken: string | undefined\n    do {\n      const response = await this.s3.send(\n        new ListObjectsV2Command({\n          Bucket: this.bucket,\n          Prefix: prefix,\n          ContinuationToken: continuationToken,\n        }),\n      )\n      for (const object of response.Contents ?? []) {\n        if (object.Key) {\n          keys.push(object.Key)\n        }\n      }\n      continuationToken = response.IsTruncated ? response.NextContinuationToken : undefined\n    } while (continuationToken)\n\n    return keys\n  }\n\n  private async copyObject(sourceKey: string, destinationKey: string): Promise<void> {\n    if (sourceKey === destinationKey) {\n      return\n    }\n\n    await this.s3.send(\n      new CopyObjectCommand({\n        Bucket: this.bucket,\n        Key: destinationKey,\n        CopySource: encodeCopySource(this.bucket, sourceKey),\n      }),\n    )\n  }\n\n  private async deleteKeys(keys: string[]): Promise<void> {\n    const batches: ObjectIdentifier[][] = []\n    for (let index = 0; index < keys.length; index += 1000) {\n      batches.push(keys.slice(index, index + 1000).map((key) => ({ Key: key })))\n    }\n    for (const batch of batches) {\n      if (batch.length === 0) continue\n\n      await this.s3.send(\n        new DeleteObjectsCommand({\n          Bucket: this.bucket,\n          Delete: {\n            Objects: batch,\n            Quiet: true,\n          },\n        }),\n      )\n    }\n  }\n\n  private async putPlaceholder(prefix: string): Promise<void> {\n    if (!prefix) return\n\n    const key = ensureTrailingSlash(prefix)\n    await this.s3.send(\n      new PutObjectCommand({\n        Bucket: this.bucket,\n        Key: key,\n        Body: new Uint8Array(0),\n      }),\n    )\n  }\n\n  private clearDescendants(folderId: string): void {\n    const normalized = normalizeId(folderId)\n    this.folderCache.delete(normalized)\n    const prefix = normalized === ROOT_ID ? \"/\" : `${normalized}/`\n    for (const key of Array.from(this.itemCache.keys())) {\n      if (key === normalized) continue\n\n      if (key.startsWith(prefix)) {\n        this.itemCache.delete(key)\n      }\n    }\n  }\n\n  private isRetryableUploadError(error: unknown): boolean {\n    if (!error || typeof error !== \"object\") {\n      return false\n    }\n\n    const retryableError = error as {\n      name?: string\n      $retryable?: unknown\n      $metadata?: { httpStatusCode?: number }\n    }\n\n    if (retryableError.$retryable) {\n      return true\n    }\n\n    const statusCode = retryableError.$metadata?.httpStatusCode\n\n    if (typeof statusCode === \"number\" && statusCode >= 500) {\n      return true\n    }\n\n    return new Set([\n      \"TimeoutError\",\n      \"RequestTimeout\",\n      \"RequestTimeoutException\",\n      \"TooManyRequestsException\",\n      \"Throttling\",\n      \"ThrottlingException\",\n      \"SlowDown\",\n      \"InternalError\",\n      \"ServiceUnavailable\",\n      \"NetworkingError\",\n    ]).has(retryableError.name ?? \"\")\n  }\n\n  private isNoSuchUploadError(error: unknown): boolean {\n    if (!(error instanceof Error)) {\n      return false\n    }\n\n    return error.name === \"NoSuchUpload\" || error.name === \"NotFound\"\n  }\n\n  private async uploadMultipartPartWithRetry(params: {\n    key: string\n    uploadId: string\n    partNumber: number\n    body: Blob\n    retryAttempts: number\n    onRetry?: () => void\n  }): Promise<string> {\n    let retryCount = 0\n    while (true) {\n      try {\n        const response = await this.s3.send(\n          new UploadPartCommand({\n            Bucket: this.bucket,\n            Key: params.key,\n            UploadId: params.uploadId,\n            PartNumber: params.partNumber,\n            Body: params.body,\n          }),\n        )\n\n        if (!response.ETag) {\n          throw new Error(\"Multipart-Upload-Part ohne ETag empfangen.\")\n        }\n\n        return response.ETag\n      } catch (error) {\n        if (isReadableStreamGetReaderError(error)) {\n          const bufferBody = await blobToUint8Array(params.body)\n          const response = await this.s3.send(\n            new UploadPartCommand({\n              Bucket: this.bucket,\n              Key: params.key,\n              UploadId: params.uploadId,\n              PartNumber: params.partNumber,\n              Body: bufferBody,\n            }),\n          )\n\n          if (!response.ETag) {\n            throw new Error(\"Multipart-Upload-Part ohne ETag empfangen.\")\n          }\n\n          return response.ETag\n        }\n\n        if (!this.isRetryableUploadError(error) || retryCount >= params.retryAttempts) {\n          throw error\n        }\n\n        retryCount += 1\n        params.onRetry?.()\n        const delay = Math.min(3000, 300 * 2 ** retryCount)\n        await sleep(delay)\n      }\n    }\n  }\n\n  private getMultipartStateStorageKey(key: string, file: File): string {\n    const encodedKey = encodeURIComponent(key)\n\n    return `${MULTIPART_STATE_PREFIX}:${this.bucket}:${encodedKey}:${file.size}:${file.lastModified}`\n  }\n\n  private canUseStorage(): boolean {\n    return typeof globalThis.localStorage !== \"undefined\"\n  }\n\n  private readMultipartState(key: string, file: File): MultipartUploadState | null {\n    if (!this.canUseStorage()) {\n      return null\n    }\n\n    try {\n      const raw = globalThis.localStorage.getItem(this.getMultipartStateStorageKey(key, file))\n\n      if (!raw) {\n        return null\n      }\n\n      const parsed = JSON.parse(raw) as MultipartUploadState\n\n      if (\n        parsed.version !== MULTIPART_STATE_VERSION ||\n        parsed.bucket !== this.bucket ||\n        parsed.key !== key ||\n        parsed.fileSize !== file.size ||\n        parsed.fileLastModified !== file.lastModified ||\n        !parsed.uploadId\n      ) {\n        return null\n      }\n\n      return parsed\n    } catch {\n      return null\n    }\n  }\n\n  private persistMultipartState(key: string, file: File, state: MultipartUploadState): void {\n    if (!this.canUseStorage()) {\n      return\n    }\n\n    try {\n      globalThis.localStorage.setItem(\n        this.getMultipartStateStorageKey(key, file),\n        JSON.stringify(state),\n      )\n    } catch {\n      // ignore local storage write failures\n    }\n  }\n\n  private removeMultipartState(key: string, file: File): void {\n    if (!this.canUseStorage()) {\n      return\n    }\n\n    try {\n      globalThis.localStorage.removeItem(this.getMultipartStateStorageKey(key, file))\n    } catch {\n      // ignore local storage removal failures\n    }\n  }\n\n  private async listUploadedMultipartParts(\n    key: string,\n    uploadId: string,\n  ): Promise<MultipartPersistedPart[]> {\n    const parts: MultipartPersistedPart[] = []\n    let marker: string | undefined\n    do {\n      const response = await this.s3.send(\n        new ListPartsCommand({\n          Bucket: this.bucket,\n          Key: key,\n          UploadId: uploadId,\n          PartNumberMarker: marker,\n        }),\n      )\n      for (const part of response.Parts ?? []) {\n        if (!part.PartNumber || !part.ETag) {\n          continue\n        }\n\n        parts.push({\n          partNumber: part.PartNumber,\n          etag: part.ETag,\n          size: part.Size ?? 0,\n        })\n      }\n      marker = response.IsTruncated ? response.NextPartNumberMarker : undefined\n    } while (marker)\n\n    return parts\n  }\n\n  private async loadOrCreateMultipartState(\n    key: string,\n    file: File,\n    partSize: number,\n  ): Promise<{ state: MultipartUploadState; resumed: boolean }> {\n    const persisted = this.readMultipartState(key, file)\n\n    if (persisted) {\n      try {\n        const parts = await this.listUploadedMultipartParts(key, persisted.uploadId)\n        const nextState: MultipartUploadState = {\n          ...persisted,\n          partSize: ensureMinimumPartSize(persisted.partSize),\n          parts,\n          updatedAt: new Date().toISOString(),\n        }\n        this.persistMultipartState(key, file, nextState)\n\n        return {\n          state: nextState,\n          resumed: parts.length > 0,\n        }\n      } catch (error) {\n        if (!this.isNoSuchUploadError(error)) {\n          throw error\n        }\n\n        this.removeMultipartState(key, file)\n      }\n    }\n\n    const response = await this.s3.send(\n      new CreateMultipartUploadCommand({\n        Bucket: this.bucket,\n        Key: key,\n        ContentType: file.type || undefined,\n      }),\n    )\n\n    if (!response.UploadId) {\n      throw new Error(\"Multipart-Upload konnte nicht initialisiert werden.\")\n    }\n\n    const createdAt = new Date().toISOString()\n    const state: MultipartUploadState = {\n      version: MULTIPART_STATE_VERSION,\n      uploadId: response.UploadId,\n      key,\n      bucket: this.bucket,\n      fileSize: file.size,\n      fileLastModified: file.lastModified,\n      partSize,\n      parts: [],\n      createdAt,\n      updatedAt: createdAt,\n    }\n    this.persistMultipartState(key, file, state)\n\n    return { state, resumed: false }\n  }\n}\n\nexport default MinioFileManagerClient\n","<script lang=\"ts\">\n  import { onMount } from \"svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import { Filemanager, Willow } from \"@svar-ui/svelte-filemanager\"\n  import { Locale } from \"@svar-ui/svelte-core\"\n  import { Circle } from \"svelte-loading-spinners\"\n  import type { BucketCredentialResponse } from \"../../../../../../../../../_logic/storage\"\n  import MinioFileManagerClient, {\n    ROOT_ID,\n    parentIdOf,\n    type BucketCredentials,\n    type FileManagerEntry,\n    type UploadProgressSnapshot,\n  } from \"./_logic/minioClient\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { addOptimisticFileSync } from \"../../../../../../../../../_logic/optimistic-sync-state\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../../../../../confirmed-destructive-action\"\n\n  type FilemanagerApi = {\n    on: (action: string, handler: (payload: any) => void | Promise<void>) => void\n    intercept: (\n      action: string,\n      handler: (payload: any) => boolean | void | Promise<boolean | void>,\n    ) => void\n    exec: (action: string, payload: any) => Promise<any>\n  }\n\n  type BucketFileManagerProps = {\n    active?: boolean\n    title?: string\n    description?: string | null\n    canManage?: boolean\n    allowFolderCreation?: boolean\n    projectId?: string | null\n    realizationId?: string | null\n    collectionScope?: \"organization\" | \"project\" | \"realization\" | \"global\" | null\n    loadCredentials?: (force?: boolean) => Promise<BucketCredentialResponse>\n    deleteEntries?: (ids: string[]) => Promise<void>\n    testIdPrefix?: string\n  }\n\n  const {\n    active = false,\n    title = \"Dateiupload\",\n    description = null,\n    canManage = true,\n    allowFolderCreation = true,\n    projectId = null,\n    realizationId = null,\n    collectionScope = null,\n    loadCredentials,\n    deleteEntries,\n    testIdPrefix = \"\",\n  }: BucketFileManagerProps = $props()\n\n  let credentials = $state<BucketCredentials | null>(null)\n  let client = $state<MinioFileManagerClient | null>(null)\n  let fileManagerData = $state<FileManagerEntry[]>([])\n  let fileManagerApi = $state<FilemanagerApi | null>(null)\n  let activeFolderId = $state(ROOT_ID)\n  let loading = $state(false)\n  let operationLabel = $state<string | null>(null)\n  let uploadProgress = $state<UploadProgressSnapshot | null>(null)\n  let error = $state<string | null>(null)\n  let newFolderName = $state(\"\")\n  let folderValidation = $state<string | null>(null)\n  let lastCredentialScopeKey = \"\"\n  let lastVisibilityKey = \"\"\n\n  const folderLabel = $derived(\"Ordner\")\n  const folderLabelPlural = $derived(\"Ordner\")\n  const folderNameLabel = $derived(\"Ordnername\")\n  const folderNameLabelAccusative = $derived(\"Ordnernamen\")\n\n  let loadRequestId = 0\n\n  const resetState = () => {\n    loadRequestId += 1\n    credentials = null\n    client = null\n    fileManagerApi = null\n    fileManagerData = []\n    activeFolderId = ROOT_ID\n    loading = false\n    operationLabel = null\n    uploadProgress = null\n    error = null\n    folderValidation = null\n    newFolderName = \"\"\n    lastVisibilityKey = \"\"\n  }\n\n  const forceHttps = (value: string): string => {\n    const trimmed = (value ?? \"\").trim()\n\n    if (!trimmed) return \"\"\n\n    const prefixed = /^https?:\\/\\//i.test(trimmed) ? trimmed : `https://${trimmed}`\n    try {\n      const url = new URL(prefixed)\n\n      if (url.protocol !== \"https:\") url.protocol = \"https:\"\n\n      return url.toString()\n    } catch {\n      return prefixed.replace(/^http:/i, \"https:\")\n    }\n  }\n\n  const parseCredentials = (payload: BucketCredentialResponse): BucketCredentials => ({\n    bucket: payload.bucket,\n    s3Endpoint: forceHttps(payload.s3Endpoint),\n    publicUrl: forceHttps(payload.publicUrl),\n    region: payload.region,\n    secure: true,\n    forcePathStyle: payload.forcePathStyle,\n    accessKey: payload.accessKey,\n    secretKey: payload.secretKey,\n    sessionToken: payload.sessionToken ?? null,\n    issuedAt: new Date(payload.issuedAt),\n    expiresAt: new Date(payload.expiresAt),\n  })\n\n  const normalizeFileManagerId = (value: string | null | undefined): string => {\n    const trimmed = (value ?? \"\").trim()\n\n    if (!trimmed) return ROOT_ID\n\n    return trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`\n  }\n\n  const encodeStorageId = (value: string): string => normalizeFileManagerId(value)\n\n  const decodeUiId = (value: string): string => normalizeFileManagerId(value)\n\n  const filterVisibleEntries = (items: FileManagerEntry[], _parentId: string): FileManagerEntry[] =>\n    items\n\n  const encodeEntries = (items: FileManagerEntry[], parentId: string): FileManagerEntry[] =>\n    filterVisibleEntries(items, parentId).map((entry) => ({\n      ...entry,\n      id: encodeStorageId(entry.id),\n    }))\n\n  const visibilityFilterKey = $derived(\"file-collection-bucket\")\n\n  const loadBucketCredentials = async (force = false) => {\n    if (!loadCredentials) return\n\n    const requestId = ++loadRequestId\n    loading = true\n    error = null\n\n    try {\n      const response = await loadCredentials(force)\n\n      if (requestId !== loadRequestId) {\n        return\n      }\n\n      const parsed = parseCredentials(response)\n      const nextClient = new MinioFileManagerClient(parsed)\n      const rootItems = await nextClient.listFolder(ROOT_ID)\n\n      if (requestId !== loadRequestId) {\n        return\n      }\n\n      credentials = parsed\n      client = nextClient\n      fileManagerData = encodeEntries(rootItems, ROOT_ID)\n      activeFolderId = ROOT_ID\n    } catch (err) {\n      if (requestId !== loadRequestId) {\n        return\n      }\n\n      credentials = null\n      client = null\n      fileManagerData = []\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (requestId === loadRequestId) {\n        loading = false\n      }\n    }\n  }\n\n  const triggerCredentialRefresh = async () => {\n    await loadBucketCredentials(true)\n\n    if (!error) {\n      newNotification({\n        class: \"info\",\n        html: \"Zugangsdaten wurden aktualisiert. Bitte Aktion erneut ausführen.\",\n      })\n    }\n  }\n\n  const handleOperationError = async (err: unknown) => {\n    const message = err instanceof Error ? err.message : String(err)\n\n    if (/expired/i.test(message) || /accessdenied/i.test(message)) {\n      newNotification({\n        class: \"error\",\n        html: \"Zugangsberechtigung ist abgelaufen. Zugang wird neu aufgebaut…\",\n      })\n      await triggerCredentialRefresh()\n    } else {\n      newNotification({ class: \"error\", html: message })\n    }\n  }\n\n  const withOperation = async (label: string, run: () => Promise<void>) => {\n    operationLabel = label\n    try {\n      await run()\n    } catch (err) {\n      await handleOperationError(err)\n      throw err\n    } finally {\n      operationLabel = null\n    }\n  }\n\n  const clearSelection = async () => {\n    if (fileManagerApi) {\n      await fileManagerApi.exec(\"select-file\", {})\n    }\n  }\n\n  const refreshFolder = async (folderId: string) => {\n    if (!client) return\n\n    const storageFolderId = decodeUiId(folderId)\n    const items = encodeEntries(await client.listFolder(storageFolderId), storageFolderId)\n\n    if (normalizeFileManagerId(folderId) === ROOT_ID) {\n      fileManagerData = items\n    } else if (fileManagerApi) {\n      fileManagerApi.exec(\"provide-data\", { id: folderId, data: items })\n    }\n\n    if (folderId === activeFolderId) {\n      folderValidation = null\n    }\n  }\n\n  const handleRequestData = async ({ id }: { id: string }) => {\n    if (!client || !fileManagerApi) return\n\n    try {\n      activeFolderId = id\n      folderValidation = null\n      const storageId = decodeUiId(id)\n      const items = encodeEntries(await client.listFolder(storageId), storageId)\n      fileManagerApi.exec(\"provide-data\", { id, data: items })\n    } catch (err) {\n      await handleOperationError(err)\n    }\n  }\n\n  const registerHandlers = (api: FilemanagerApi) => {\n    api.on(\"request-data\", handleRequestData)\n\n    const denyManageAction = () => {\n      newNotification({\n        class: \"error\",\n        html: \"Für diese Aktion ist „Dateiupload verwalten“ erforderlich.\",\n      })\n\n      return false\n    }\n\n    const uploadFilesToFolder = async (target: string, files: File[]): Promise<void> => {\n      if (!client || files.length === 0) return\n\n      const storageTarget = decodeUiId(target)\n      uploadProgress = null\n      try {\n        await withOperation(\n          files.length === 1 ? \"Datei wird hochgeladen…\" : \"Dateien werden hochgeladen…\",\n          async () => {\n            for (const file of files) {\n              await client.uploadFile(storageTarget, file, {\n                onProgress: (progress) => {\n                  uploadProgress = progress\n                },\n              })\n\n              if (projectId && credentials?.bucket) {\n                addOptimisticFileSync({\n                  projectId,\n                  realizationId,\n                  bucket: credentials.bucket,\n                  objectKey: objectKeyForParent(storageTarget, file.name),\n                  scope: resolveOptimisticScope(),\n                })\n              }\n            }\n            newNotification({\n              class: \"success\",\n              html:\n                files.length === 1\n                  ? `${files[0]?.name ?? \"Datei\"} hochgeladen.`\n                  : `${files.length} Dateien hochgeladen.`,\n            })\n            await refreshFolder(target)\n          },\n        )\n      } finally {\n        uploadProgress = null\n      }\n    }\n\n    api.intercept(\"create-file\", async ({ parent, file }: { parent: string; file: any }) => {\n      if (!canManage) return denyManageAction()\n\n      if (!client) return false\n\n      const target = parent || ROOT_ID\n      const storageTarget = decodeUiId(target)\n      try {\n        await withOperation(\n          file?.file ? \"Datei wird hochgeladen…\" : `${folderLabel} wird erstellt…`,\n          async () => {\n            if (file?.type === \"folder\" || (!file?.file && file?.name)) {\n              if (!allowFolderCreation) {\n                newNotification({\n                  class: \"error\",\n                  html: `${folderLabelPlural} werden automatisch gepflegt und können hier nicht neu erstellt werden.`,\n                })\n\n                return\n              }\n\n              await client.createFolder(storageTarget, file.name)\n              newNotification({ class: \"success\", html: `${folderLabel} ${file.name} erstellt.` })\n            } else if (file?.file instanceof File) {\n              await uploadFilesToFolder(target, [file.file])\n            } else {\n              throw new Error(\"Unbekannter Dateityp.\")\n            }\n\n            if (!(file?.file instanceof File)) {\n              await refreshFolder(target)\n            }\n          },\n        )\n      } catch {\n        return false\n      }\n\n      return false\n    })\n\n    api.intercept(\"delete-files\", async ({ ids }: { ids: string[] }) => {\n      if (!canManage) return denyManageAction()\n\n      if (!client || ids.length === 0) return false\n\n      try {\n        const completed = await runConfirmedDestructiveAction(\n          {\n            approval: {\n              title: \"Dateien löschen\",\n              description:\n                ids.length === 1\n                  ? \"Dieses Element wirklich löschen?\"\n                  : `${ids.length} Elemente wirklich löschen?`,\n              approvalLabel: \"Ja, löschen\",\n              declineLabel: \"Abbrechen\",\n            },\n            reauth: {\n              title: \"Dateien löschen\",\n              description:\n                \"Bitte bestätigen Sie das Löschen der Dateien mit Ihrem aktuellen Passwort.\",\n              actionLabel: \"Dateien löschen\",\n            },\n          },\n          async () => {\n            await withOperation(\"Elemente werden gelöscht…\", async () => {\n              const storageIds = ids.map(decodeUiId)\n\n              if (deleteEntries) {\n                await deleteEntries(storageIds)\n              } else {\n                await client.deleteEntries(storageIds)\n              }\n\n              const parents = new Set(ids.map((id) => parentIdOf(id)))\n              for (const parent of parents) {\n                await refreshFolder(parent)\n              }\n              newNotification({\n                class: \"success\",\n                html: ids.length === 1 ? \"Element gelöscht.\" : `${ids.length} Elemente gelöscht.`,\n              })\n            })\n          },\n        )\n\n        if (!completed) return false\n\n        await clearSelection()\n      } catch {\n        return false\n      }\n\n      return false\n    })\n\n    api.intercept(\"rename-file\", async ({ id, name }: { id: string; name: string }) => {\n      if (!canManage) return denyManageAction()\n\n      if (!client) return false\n\n      try {\n        await withOperation(\"Element wird umbenannt…\", async () => {\n          await client.renameEntry(decodeUiId(id), name)\n          await refreshFolder(parentIdOf(id))\n          newNotification({ class: \"success\", html: \"Element umbenannt.\" })\n        })\n        await clearSelection()\n      } catch {\n        return false\n      }\n\n      return false\n    })\n\n    api.intercept(\"copy-files\", async ({ ids, target }: { ids: string[]; target: string }) => {\n      if (!canManage) return denyManageAction()\n\n      if (!client || ids.length === 0) return false\n\n      try {\n        await withOperation(\"Elemente werden kopiert…\", async () => {\n          await client.copyEntries(ids.map(decodeUiId), decodeUiId(target), false)\n          const parents = new Set([...ids.map((id) => parentIdOf(id)), target])\n          for (const folder of parents) {\n            await refreshFolder(folder)\n          }\n          newNotification({ class: \"success\", html: \"Elemente kopiert.\" })\n        })\n      } catch {\n        return false\n      }\n\n      return false\n    })\n\n    api.intercept(\"move-files\", async ({ ids, target }: { ids: string[]; target: string }) => {\n      if (!canManage) return denyManageAction()\n\n      if (!client || ids.length === 0) return false\n\n      try {\n        await withOperation(\"Elemente werden verschoben…\", async () => {\n          await client.copyEntries(ids.map(decodeUiId), decodeUiId(target), true)\n          const parents = new Set([...ids.map((id) => parentIdOf(id)), target])\n          for (const folder of parents) {\n            await refreshFolder(folder)\n          }\n          newNotification({ class: \"success\", html: \"Elemente verschoben.\" })\n        })\n        await clearSelection()\n      } catch {\n        return false\n      }\n\n      return false\n    })\n\n    api.intercept(\"download-file\", async ({ id }: { id: string }) => {\n      if (!client) return false\n\n      try {\n        const entry = await client.ensureItem(decodeUiId(id))\n        await withOperation(\"Download wird vorbereitet…\", async () => {\n          if (!entry || entry.type !== \"file\") {\n            throw new Error(`${folderLabelPlural} können nicht direkt heruntergeladen werden.`)\n          }\n\n          const url = await client.getDownloadUrl(decodeUiId(id))\n          window.open(url, \"_blank\", \"noopener\")\n        })\n      } catch {\n        return false\n      }\n\n      return false\n    })\n  }\n\n  const handleInit = (api: FilemanagerApi) => {\n    if (fileManagerApi === api) {\n      return\n    }\n\n    fileManagerApi = api\n    registerHandlers(api)\n  }\n\n  const handleTestUploadInputChange = async (event: Event) => {\n    const input = event.currentTarget as HTMLInputElement | null\n    const files = Array.from(input?.files ?? [])\n\n    if (!canManage || !client || files.length === 0) {\n      if (input) input.value = \"\"\n\n      return\n    }\n\n    const target = activeFolderId || ROOT_ID\n    const storageTarget = decodeUiId(target)\n    uploadProgress = null\n    try {\n      await withOperation(\n        files.length === 1 ? \"Datei wird hochgeladen…\" : \"Dateien werden hochgeladen…\",\n        async () => {\n          for (const file of files) {\n            await client.uploadFile(storageTarget, file, {\n              onProgress: (progress) => {\n                uploadProgress = progress\n              },\n            })\n\n            if (projectId && credentials?.bucket) {\n              addOptimisticFileSync({\n                projectId,\n                realizationId,\n                bucket: credentials.bucket,\n                objectKey: objectKeyForParent(storageTarget, file.name),\n                scope: resolveOptimisticScope(),\n              })\n            }\n          }\n          newNotification({\n            class: \"success\",\n            html:\n              files.length === 1\n                ? `${files[0]?.name ?? \"Datei\"} hochgeladen.`\n                : `${files.length} Dateien hochgeladen.`,\n          })\n          await refreshFolder(target)\n        },\n      )\n    } catch {\n      // Fehler werden über Notification/Operation-Pfad angezeigt.\n    } finally {\n      uploadProgress = null\n\n      if (input) input.value = \"\"\n    }\n  }\n\n  const validateFolderName = (value: string): string | null => {\n    if (!value.trim()) {\n      return `Bitte einen ${folderNameLabelAccusative} eingeben.`\n    }\n\n    if (/[\\\\/]/u.test(value)) {\n      return `Schrägstriche sind im ${folderNameLabel} nicht erlaubt.`\n    }\n\n    if (value.trim().length > 120) {\n      return `${folderNameLabel} ist zu lang.`\n    }\n\n    return null\n  }\n\n  const objectKeyForParent = (parent: string, filename: string): string => {\n    const normalizedParent = (parent || ROOT_ID).replace(/^\\/+/u, \"\").replace(/\\/+$/u, \"\")\n\n    return normalizedParent ? `${normalizedParent}/${filename}` : filename\n  }\n\n  const resolveOptimisticScope = (): \"organization\" | \"project\" | \"realization\" => {\n    if (collectionScope === \"project\") return \"project\"\n\n    if (collectionScope === \"realization\") return \"realization\"\n\n    return \"organization\"\n  }\n\n  const formatBytes = (bytes: number): string => {\n    if (!Number.isFinite(bytes) || bytes <= 0) {\n      return \"0 B\"\n    }\n\n    const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"]\n    const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1)\n    const value = bytes / 1024 ** exponent\n    const precision = value >= 100 || exponent === 0 ? 0 : 1\n\n    return `${value.toFixed(precision)} ${units[exponent]}`\n  }\n\n  const formatUploadProgress = (progress: UploadProgressSnapshot): string => {\n    const loaded = formatBytes(progress.loadedBytes)\n    const total = formatBytes(progress.totalBytes)\n    const status: string[] = [`${progress.percentage}%`, `(${loaded} / ${total})`]\n\n    if (progress.uploadedParts > 0 && progress.totalParts > 1) {\n      status.push(`Teile ${progress.uploadedParts}/${progress.totalParts}`)\n    }\n\n    if (progress.retries > 0) {\n      status.push(`Retries ${progress.retries}`)\n    }\n\n    if (progress.resumed) {\n      status.push(\"Fortsetzung aktiv\")\n    }\n\n    return status.join(\" · \")\n  }\n\n  const showBucketInitLoader = $derived(active && !client && (loading || !error))\n  const showBucketInitError = $derived(active && !client && Boolean(error))\n\n  onMount(() => {\n    if (!active || !loadCredentials) {\n      lastCredentialScopeKey = \"\"\n      resetState()\n\n      return\n    }\n\n    const scopeKey = `${projectId ?? \"\"}::${realizationId ?? \"\"}`\n    const scopeChanged = scopeKey !== lastCredentialScopeKey\n    lastCredentialScopeKey = scopeKey\n\n    if (scopeChanged) {\n      resetState()\n    }\n\n    void loadBucketCredentials(scopeChanged)\n  })\n  const de = $derived.by(() => ({\n    // Kalender\n    calendar: {\n      monthFull: [\n        \"Januar\",\n        \"Februar\",\n        \"März\",\n        \"April\",\n        \"Mai\",\n        \"Juni\",\n        \"Juli\",\n        \"August\",\n        \"September\",\n        \"Oktober\",\n        \"November\",\n        \"Dezember\",\n      ],\n      monthShort: [\n        \"Jan\",\n        \"Feb\",\n        \"Mär\",\n        \"Apr\",\n        \"Mai\",\n        \"Jun\",\n        \"Jul\",\n        \"Aug\",\n        \"Sep\",\n        \"Okt\",\n        \"Nov\",\n        \"Dez\",\n      ],\n\n      dayFull: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"],\n\n      dayShort: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n      hours: \"Stunden\",\n      minutes: \"Minuten\",\n      done: \"Fertig\",\n      clear: \"Zurücksetzen\",\n      today: \"Heute\",\n      am: [\"vorm.\", \"AM\"],\n      pm: [\"nachm.\", \"PM\"],\n\n      weekStart: 1, // Montag\n      clockFormat: 24,\n    },\n\n    // Core\n    core: {\n      ok: \"OK\",\n      cancel: \"Abbrechen\",\n      select: \"Auswählen\",\n      \"No data\": \"Keine Daten\",\n    },\n\n    // Formate\n    formats: {\n      dateFormat: \"%d.%m.%Y\",\n      timeFormat: \"%H:%i\",\n    },\n\n    lang: \"de-DE\",\n\n    // File Manager\n    filemanager: {\n      \"My files\": \"Meine Wissensbasis\",\n\n      \"Add New\": \"Neu hinzufügen\",\n      Ok: \"OK\",\n      Cancel: \"Abbrechen\",\n\n      \"Delete files\": \"Dateien löschen\",\n      Files: \"Dateien\",\n      Folder: folderLabel,\n      \"Back to parent folder\": `Zum übergeordneten ${folderLabel}`,\n\n      Information: \"Informationen\",\n      Found: \"Gefunden\",\n\n      \"Are you sure you want to delete these items:\":\n        \"Möchten Sie die folgenden Elemente wirklich löschen:\",\n      \"Enter file name\": \"Dateinamen eingeben\",\n      \"Enter folder name\": `${folderNameLabelAccusative} eingeben`,\n\n      Result: \"Ergebnis\",\n      Search: \"Suchen\",\n      \"Search results in\": \"Suchergebnisse in\",\n      \"Add new file\": \"Neue Datei hinzufügen\",\n      \"Add new folder\": `Neuen ${folderLabel} hinzufügen`,\n      \"Upload file\": \"Datei hochladen\",\n\n      Size: \"Größe\",\n      Name: \"Name\",\n      Type: \"Typ\",\n      Date: \"Datum\",\n\n      Rename: \"Umbenennen\",\n      Cut: \"Ausschneiden\",\n      Delete: \"Löschen\",\n      Copy: \"Kopieren\",\n      Paste: \"Einfügen\",\n      Download: \"Herunterladen\",\n      Count: \"Anzahl\",\n      folder: folderLabel,\n      folders: folderLabelPlural,\n      file: \"Datei\",\n      files: \"Dateien\",\n      \"Multiple files\": \"Mehrere Dateien\",\n      multiple: \"mehrere\",\n      Preview: \"Vorschau\",\n      of: \"von\",\n      used: \"verwendet\",\n      \"Select file or folder to view details\": `Datei oder ${folderLabel} auswählen, um Details anzuzeigen`,\n      \"Looks like nothing is here\": \"Hier sind keine Inhalte vorhanden\",\n      \"Unknown file\": \"Unbekannte Datei\",\n\n      \"A miniature file preview\": \"Miniaturansicht der Datei\",\n    },\n  }))\n</script>\n\n<Locale words={{ ...de }}>\n    <div class=\"section-stack\" data-testid={testIdPrefix ? `${testIdPrefix}.root` : undefined}>\n        {#if operationLabel}\n            <p\n        class=\"insight-loading\"\n        data-testid={testIdPrefix ? `${testIdPrefix}.operation` : undefined}\n      >\n                {operationLabel}\n                {#if uploadProgress}\n                    <span class=\"upload-progress-meta\">{formatUploadProgress(uploadProgress)}</span>\n                {/if}\n            </p>\n        {/if}\n\n        {#if showBucketInitLoader}\n            <div\n        class=\"bucket-loading\"\n        data-testid={testIdPrefix ? `${testIdPrefix}.loading` : undefined}\n      >\n                <Circle size=\"2.2\" color=\"#741e20\" unit=\"rem\" />\n                <p class=\"insight-loading\">Bucket-Zugang wird aufgebaut…</p>\n            </div>\n        {:else if showBucketInitError}\n            <p class=\"insight-loading\" data-testid={testIdPrefix ? `${testIdPrefix}.error` : undefined}\n        >{error}</p\n      >\n        {:else if client}\n            <div\n        class=\"file-manager-wrapper\"\n        data-testid={testIdPrefix ? `${testIdPrefix}.fileManager` : undefined}\n      >\n                {#if canManage && testIdPrefix}\n                    <input\n            type=\"file\"\n            class=\"test-upload-input\"\n            data-testid={`${testIdPrefix}.uploadInput`}\n            onchange={handleTestUploadInputChange}\n          />\n                {/if}\n                <Willow>\n                    <Filemanager data={fileManagerData} init={handleInit} />\n                </Willow>\n            </div>\n        {/if}\n    </div>\n</Locale>\n\n<style lang=\"less\">\n  .insight-loading {\n    padding: 1rem 0;\n    color: var(--text-invers-100);\n  }\n\n  .section-stack {\n    display: flex;\n    flex-direction: column;\n    gap: 1.2rem;\n  }\n\n  .bucket-loading {\n    min-height: 180px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 0.9rem;\n  }\n\n  .upload-progress-meta {\n    margin-left: 0.5rem;\n    font-variant-numeric: tabular-nums;\n    opacity: 0.9;\n  }\n\n  .file-manager-wrapper {\n    position: relative;\n    height: 700px;\n    padding: 0.4rem;\n    overflow: hidden;\n  }\n\n  .test-upload-input {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border: 0;\n    pointer-events: none;\n  }\n\n  .file-manager-wrapper :global(.svar-willow) {\n    --svar-theme-primary: var(--primary-100);\n    --svar-theme-surface: color-mix(in srgb, var(--surface-raised) 96%, transparent);\n    --svar-theme-border: color-mix(in srgb, var(--primary-100) 18%, transparent);\n    --svar-theme-muted: color-mix(in srgb, var(--text-invers-100) 70%, transparent);\n    --svar-theme-contrast: var(--text-invers-100);\n    font-family: var(--font-family, \"Inter\", sans-serif);\n  }\n</style>\n","<script lang=\"ts\">\n  import {\n    createFileCollectionStorageSession,\n    deleteFileCollectionEntries,\n    type FileCollectionRecord,\n  } from \"../../../../../../../_logic/storage\"\n  import BucketFileManager from \"./_modules/bucket-file-manager\"\n  import DetailFactsCard from \"../../../../../../../_modules/detail-facts-card\"\n  import DetailOverviewShell from \"../../../../../../../_modules/detail-overview-shell\"\n  import { availableProjects } from \"../../../../../../../_logic/organizations\"\n  import {\n    resolveScopeProjectLabel,\n    resolveScopeRealizationLabel,\n    type ScopeSelectableProject,\n  } from \"../../../../../../../_logic/scope-selection\"\n\n  type RealizationOption = { value: string; name: string }\n\n  const {\n    mode = \"project\",\n    collection,\n    organizationId = null,\n    projectId = null,\n    defaultRealizationId = null,\n    realizationOptions = [],\n    canManage = false,\n    onUpdated = null,\n    onDeleted = null,\n  }: {\n    mode?: \"project\" | \"global\"\n    collection: FileCollectionRecord\n    organizationId?: string | null\n    projectId?: string | null\n    defaultRealizationId?: string | null\n    realizationOptions?: RealizationOption[]\n    canManage?: boolean\n    onUpdated?: (() => Promise<void>) | null\n    onDeleted?: (() => void) | null\n  } = $props()\n\n  const scopeLabel = $derived(\n    collection.scope === \"organization\"\n      ? \"Organisation\"\n      : collection.scope === \"project\"\n        ? \"Agent\"\n        : collection.scope === \"realization\"\n          ? \"Sprache\"\n          : \"Instanz\",\n  )\n  const scopedProjects = $derived.by(() =>\n    (($availableProjects ?? []) as ScopeSelectableProject[]).filter(\n      (project) =>\n        String(project?.organization_id ?? \"\").trim() === String(organizationId ?? \"\").trim(),\n    ),\n  )\n  const realizationLabel = $derived(\n    resolveScopeRealizationLabel(scopedProjects, collection.projectId, collection.realizationId) ||\n      (collection.realizationId\n        ? (realizationOptions.find((entry) => entry.value === collection.realizationId)?.name ??\n          collection.realizationId)\n        : null),\n  )\n  const summaryCards = $derived([\n    { key: \"scope\", label: \"Sync-Ebene\", value: scopeLabel },\n    { key: \"bucket\", label: \"Bucket\", value: collection.bucket },\n  ])\n  const detailRows = $derived([\n    { label: \"Name\", value: collection.label },\n    { label: \"Sync-Ebene\", value: scopeLabel },\n    {\n      label: \"Zielkontext\",\n      value:\n        collection.scope === \"global\"\n          ? \"Instanzweit\"\n          : collection.scope === \"organization\"\n            ? \"Organisationsweit\"\n            : collection.scope === \"project\"\n              ? (resolveScopeProjectLabel(scopedProjects, collection.projectId) ??\n                collection.projectId ??\n                \"Agent\")\n              : realizationLabel || collection.realizationId || \"Sprache\",\n    },\n    { label: \"Bucket\", value: collection.bucket },\n  ])\n  const loadCredentials = async () => createFileCollectionStorageSession(collection.id)\n  const deleteEntries = async (ids: string[]) => deleteFileCollectionEntries(collection.id, ids)\n</script>\n\n<div data-testid=\"indexAdmin.files.collectionDetail\">\n  <DetailOverviewShell contentSnippet={detailsContent} />\n</div>\n\n{#snippet detailsContent()}\n  <BucketFileManager\n    active={true}\n    collectionScope={collection.scope}\n    {loadCredentials}\n    {deleteEntries}\n    {canManage}\n    testIdPrefix=\"indexAdmin.files.collectionDetail.fileManager\"\n  />\n{/snippet}\n\n<style lang=\"less\">\n</style>\n","<script lang=\"ts\">\n  import type { FileCollectionRecord } from \"../../../../../_logic/storage\"\n\n  import FileCollectionDetails from \"./_modules/file-collection-details\"\n\n  type RealizationOption = { value: string; name: string }\n\n  const {\n    mode = \"project\",\n    collection,\n    organizationId = null,\n    projectId = null,\n    defaultRealizationId = null,\n    realizationOptions = [],\n    canManage = false,\n    onUpdated = null,\n    onDeleted = null,\n  }: {\n    mode?: \"project\" | \"global\"\n    collection: FileCollectionRecord\n    organizationId?: string | null\n    projectId?: string | null\n    defaultRealizationId?: string | null\n    realizationOptions?: RealizationOption[]\n    canManage?: boolean\n    onUpdated?: (() => Promise<void>) | null\n    onDeleted?: (() => void) | null\n  } = $props()\n</script>\n\n<FileCollectionDetails\n  {mode}\n  {collection}\n  {organizationId}\n  {projectId}\n  {defaultRealizationId}\n  {realizationOptions}\n  {canManage}\n  {onUpdated}\n  {onDeleted}\n/>\n","<script lang=\"ts\">\n  import type { Snippet } from \"svelte\"\n  import type { PopoverMenuItem } from \"@kontextwerk/web-sdk/ui/overlay/popover/types\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { closeOverlayById, openOverlay } from \"@kontextwerk/web-sdk/core/overlay/globalStores\"\n  import { mdiPencil, mdiTrashCanOutline } from \"@mdi/js\"\n  import {\n    deleteFileCollection,\n    updateFileCollection,\n    type FileCollectionRecord,\n    type FileCollectionWritePayload,\n  } from \"../../../../../_logic/storage\"\n  import FileCollectionOverlay from \"../../../../../_modules/file-collection-overlay\"\n  import { runConfirmedDestructiveAction } from \"../../../../../../confirmed-destructive-action\"\n\n  const {\n    mode,\n    collection,\n    organizationId,\n    projectId,\n    defaultRealizationId,\n    realizationOptions,\n    canManage,\n    onUpdated,\n    onDeleted,\n    children,\n  }: {\n    mode: \"project\" | \"global\"\n    /** Null until the owner has confirmed the record; no actions are offered meanwhile. */\n    collection: FileCollectionRecord | null\n    organizationId: string | null\n    projectId: string | null\n    defaultRealizationId: string | null\n    realizationOptions: Array<{ value: string; name: string }>\n    canManage: boolean\n    onUpdated: () => Promise<void>\n    onDeleted: () => void\n    children: Snippet<[PopoverMenuItem[]]>\n  } = $props()\n\n  const openEditOverlay = () => {\n    if (!canManage || !collection) return\n\n    const selectedCollection = collection\n    const overlayId = openOverlay({\n      title: \"Dateisammlung bearbeiten\",\n      content: FileCollectionOverlay,\n      properties: {\n        mode,\n        organizationId,\n        projectId,\n        defaultRealizationId,\n        realizationOptions,\n        collection: selectedCollection,\n        onClose: () => closeOverlayById(overlayId),\n        onSaved: async (payload: FileCollectionWritePayload) => {\n          await updateFileCollection(selectedCollection.id, payload)\n          newNotification({ class: \"success\", html: \"Dateisammlung gespeichert.\" })\n          await onUpdated()\n\n          return true\n        },\n      },\n    })\n  }\n\n  const handleDelete = async () => {\n    if (!canManage || !collection) return\n\n    const collectionId = collection.id\n    await runConfirmedDestructiveAction(\n      {\n        approval: {\n          title: \"Dateisammlung löschen\",\n          description: \"Diese Dateisammlung wirklich löschen?\",\n          approvalLabel: \"Ja, löschen\",\n          declineLabel: \"Abbrechen\",\n        },\n        reauth: {\n          title: \"Dateisammlung löschen\",\n          description:\n            \"Bitte bestätigen Sie das Löschen der Dateisammlung mit Ihrem aktuellen Passwort.\",\n          actionLabel: \"Dateisammlung löschen\",\n        },\n      },\n      async () => {\n        await deleteFileCollection(collectionId)\n        newNotification({ class: \"success\", html: \"Dateisammlung gelöscht.\" })\n        onDeleted()\n      },\n    )\n  }\n\n  const actions = $derived<PopoverMenuItem[]>(\n    canManage && collection\n      ? [\n          {\n            id: \"edit\",\n            label: \"Bearbeiten\",\n            icon: mdiPencil,\n            onClick: openEditOverlay,\n            testId: \"indexAdmin.files.collectionDetail.editButton\",\n          },\n          {\n            id: \"delete\",\n            label: \"Löschen\",\n            icon: mdiTrashCanOutline,\n            tone: \"danger\",\n            separatorBefore: true,\n            onClick: () => void handleDelete(),\n            testId: \"indexAdmin.files.collectionDetail.deleteButton\",\n          },\n        ]\n      : [],\n  )\n</script>\n\n{@render children(actions)}\n","import {\n  mdiAlertCircleOutline,\n  mdiCalendarClock,\n  mdiCheckBold,\n  mdiClockOutline,\n  mdiCloseCircleOutline,\n  mdiDeleteOutline,\n  mdiFileCodeOutline,\n  mdiFileDelimitedOutline,\n  mdiFileDocumentOutline,\n  mdiFileExcelBox,\n  mdiFileImageOutline,\n  mdiFilePdfBox,\n  mdiFilePowerpointBox,\n  mdiFileQuestionOutline,\n  mdiFileWordBox,\n  mdiOfficeBuildingOutline,\n  mdiPencilOutline,\n  mdiPlusCircleOutline,\n  mdiRobotOutline,\n  mdiSync,\n  mdiTranslate,\n} from \"@mdi/js\"\n\nimport type { FileTableTag } from \"../../../../../../../../_logic/table-tags\"\nimport {\n  buildRichTooltip,\n  RICH_TOOLTIP_CLASS,\n  escapeTooltipHtml,\n  safeTooltipField,\n  safeTooltipText,\n  tooltipTitle,\n} from \"../../../../../../../../_logic/rich-tooltips\"\nimport type { FileSyncTableContext } from \"../_shared/_logic/contract\"\n\nexport type FileSyncTagSource = {\n  id: string\n  objectKey: string\n  bucket: string\n  tenantId: string\n  projectId: string\n  scope: string\n  realizationId: string | null\n  syncStatus: string\n  operation: string\n  etag: string | null\n  size: number | null\n  lastModified: string | null\n  lastSync: string | null\n  nextSync: string | null\n  firstSeen: string | null\n  lastSeen: string | null\n  lastError: string | null\n  retryCount: number\n  isOptimistic: boolean\n}\n\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nconst cleanText = (value: unknown, fallback = \"–\"): string => {\n  const text = typeof value === \"string\" ? value.trim() : value == null ? \"\" : String(value).trim()\n\n  return text || fallback\n}\n\nexport const formatFileSyncDate = (value?: string | null): string => {\n  const text = cleanText(value, \"\")\n\n  if (!text) return \"–\"\n\n  const parsed = new Date(text)\n\n  if (Number.isNaN(parsed.getTime())) return text\n\n  return parsed.toLocaleString(\"de-DE\")\n}\n\nconst formatShortDate = (value?: string | null): string | null => {\n  const text = cleanText(value, \"\")\n\n  if (!text) return null\n\n  const parsed = new Date(text)\n\n  if (Number.isNaN(parsed.getTime())) return text\n\n  return parsed.toLocaleDateString(\"de-DE\")\n}\n\nexport const formatFileSize = (value?: number | null): string => {\n  const numeric = Number(value ?? 0)\n\n  if (!Number.isFinite(numeric) || numeric <= 0) return \"Größe unbekannt\"\n\n  if (numeric < 1024) return `${numberFormatter.format(Math.round(numeric))} B`\n\n  const units = [\"KB\", \"MB\", \"GB\", \"TB\"]\n  let scaled = numeric / 1024\n  for (const unit of units) {\n    if (scaled < 1024 || unit === units[units.length - 1]) {\n      return `${numberFormatter.format(Number(scaled.toFixed(scaled >= 10 ? 1 : 2)))} ${unit}`\n    }\n\n    scaled /= 1024\n  }\n\n  return `${numberFormatter.format(Math.round(numeric))} B`\n}\n\nconst fileParts = (objectKey: string): { name: string; path: string | null; extension: string } => {\n  const cleaned = cleanText(objectKey, \"Unbekannte Datei\")\n  const segments = cleaned.split(\"/\").filter(Boolean)\n  const name = segments.at(-1) ?? cleaned\n  const path = segments.length > 1 ? segments.slice(0, -1).join(\"/\") : null\n  const dotIndex = name.lastIndexOf(\".\")\n  const extension = dotIndex >= 0 ? name.slice(dotIndex + 1).toLowerCase() : \"\"\n\n  return { name, path, extension }\n}\n\nconst fileTypePresentation = (extension: string): Pick<FileTableTag, \"color\" | \"icon\"> => {\n  if (extension === \"pdf\") return { color: \"red\", icon: mdiFilePdfBox }\n\n  if ([\"doc\", \"docx\", \"odt\"].includes(extension)) return { color: \"blue\", icon: mdiFileWordBox }\n\n  if ([\"xls\", \"xlsx\", \"ods\"].includes(extension)) return { color: \"emerald\", icon: mdiFileExcelBox }\n\n  if ([\"ppt\", \"pptx\", \"odp\"].includes(extension))\n    return { color: \"orange\", icon: mdiFilePowerpointBox }\n\n  if ([\"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"svg\"].includes(extension))\n    return { color: \"violet\", icon: mdiFileImageOutline }\n\n  if ([\"csv\", \"tsv\"].includes(extension)) return { color: \"teal\", icon: mdiFileDelimitedOutline }\n\n  if ([\"json\", \"xml\", \"html\", \"md\", \"txt\"].includes(extension))\n    return { color: \"cyan\", icon: mdiFileCodeOutline }\n\n  if (!extension) return { color: \"amber\", icon: mdiFileQuestionOutline }\n\n  return { color: \"indigo\", icon: mdiFileDocumentOutline }\n}\n\nconst realizationLabel = (context: FileSyncTableContext, row: FileSyncTagSource): string | null => {\n  const cleaned = cleanText(row.realizationId, \"\")\n\n  if (!cleaned) return null\n\n  const project = context.projectById[context.projectId ?? row.projectId] ?? null\n  const realizations = Array.isArray(project?.realizations) ? project.realizations : []\n  const match = realizations.find((entry) => cleanText(entry?.id, \"\") === cleaned)\n\n  return cleanText(match?.slug ?? match?.name ?? match?.id, cleaned)\n}\n\nexport const fileSyncScopeLabel = (scope: string): string => {\n  const normalized = scope.trim().toLowerCase()\n\n  if (normalized === \"organization\") return \"Organisation\"\n\n  if (normalized === \"project\") return \"Agent\"\n\n  return \"Sprache\"\n}\n\nconst fileSyncScopeSubLabel = (row: FileSyncTagSource, context: FileSyncTableContext): string => {\n  const normalized = row.scope.trim().toLowerCase()\n\n  if (normalized === \"organization\")\n    return row.tenantId || context.organizationId || \"Organisationsweit\"\n\n  if (normalized === \"project\") return context.projectId || row.projectId || \"Agent\"\n\n  return realizationLabel(context, row) || row.realizationId || \"Sprache\"\n}\n\nconst scopeSortValue = (scope: string): string => {\n  const normalized = scope.trim().toLowerCase()\n\n  if (normalized === \"organization\") return \"1-organization\"\n\n  if (normalized === \"project\") return \"2-project\"\n\n  return \"3-realization\"\n}\n\nexport const buildFileSyncFileTag = (row: FileSyncTagSource): FileTableTag => {\n  const parts = fileParts(row.objectKey)\n  const fileType = fileTypePresentation(parts.extension)\n  const subParts = [parts.path, formatFileSize(row.size)].filter(Boolean)\n\n  return {\n    label: parts.name,\n    subLabel: subParts.join(\" · \") || row.bucket,\n    ...fileType,\n    tooltip: buildRichTooltip(\n      tooltipTitle(escapeTooltipHtml(parts.name)),\n      safeTooltipField(\"Objekt\", row.objectKey),\n      safeTooltipField(\"Bucket\", row.bucket),\n      safeTooltipField(\"Größe\", formatFileSize(row.size)),\n      safeTooltipField(\"Geändert\", formatFileSyncDate(row.lastModified)),\n      safeTooltipField(\"ETag\", row.etag),\n      safeTooltipField(\"Erstmals gesehen\", formatFileSyncDate(row.firstSeen)),\n      safeTooltipField(\"Zuletzt gesehen\", formatFileSyncDate(row.lastSeen)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${parts.name} ${parts.path ?? \"\"} ${row.objectKey} ${row.bucket} ${parts.extension}`,\n    sortValue: row.objectKey,\n  }\n}\n\nexport const buildFileSyncScopeTag = (\n  row: FileSyncTagSource,\n  context: FileSyncTableContext,\n): FileTableTag => {\n  const normalized = row.scope.trim().toLowerCase()\n  const label = fileSyncScopeLabel(row.scope)\n  const subLabel = fileSyncScopeSubLabel(row, context)\n\n  return {\n    label,\n    subLabel,\n    color: normalized === \"organization\" ? \"indigo\" : normalized === \"project\" ? \"blue\" : \"teal\",\n    icon:\n      normalized === \"organization\"\n        ? mdiOfficeBuildingOutline\n        : normalized === \"project\"\n          ? mdiRobotOutline\n          : mdiTranslate,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Geltung\"),\n      safeTooltipField(\"Ebene\", label),\n      safeTooltipField(\"Zielkontext\", subLabel),\n      safeTooltipField(\"Organisation\", row.tenantId || context.organizationId),\n      safeTooltipField(\"Projekt\", context.projectId || row.projectId),\n      safeTooltipField(\"Realisierung\", row.realizationId),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel}`,\n    sortValue: scopeSortValue(row.scope),\n  }\n}\n\nconst operationPresentation = (\n  operation: string,\n): Pick<FileTableTag, \"label\" | \"color\" | \"icon\"> => {\n  const normalized = operation.trim().toLowerCase()\n\n  if (normalized === \"insert\")\n    return { label: \"Neu aufnehmen\", color: \"emerald\", icon: mdiPlusCircleOutline }\n\n  if (normalized === \"update\")\n    return { label: \"Aktualisieren\", color: \"blue\", icon: mdiPencilOutline }\n\n  if (normalized === \"delete\") return { label: \"Entfernen\", color: \"red\", icon: mdiDeleteOutline }\n\n  if (normalized === \"sync\") return { label: \"Synchronisieren\", color: \"cyan\", icon: mdiSync }\n\n  return { label: cleanText(operation, \"Unbekannt\"), color: \"amber\", icon: mdiAlertCircleOutline }\n}\n\nexport const buildFileSyncOperationTag = (row: FileSyncTagSource): FileTableTag => {\n  const definition = operationPresentation(row.operation)\n\n  return {\n    ...definition,\n    subLabel: row.bucket,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Vorgang\"),\n      safeTooltipField(\"Operation\", definition.label),\n      safeTooltipField(\"Rohwert\", row.operation),\n      safeTooltipField(\"Bucket\", row.bucket),\n      safeTooltipField(\"Objekt\", row.objectKey),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${definition.label} ${row.operation} ${row.bucket}`,\n    sortValue: row.operation,\n  }\n}\n\nconst syncStatusPresentation = (\n  row: FileSyncTagSource,\n): Pick<FileTableTag, \"label\" | \"color\" | \"icon\"> => {\n  const normalized = row.syncStatus.trim().toLowerCase()\n  const isDelete = row.operation.trim().toLowerCase() === \"delete\"\n\n  if (normalized === \"syncing\") {\n    return { label: isDelete ? \"Löschung läuft\" : \"Sync läuft\", color: \"blue\", icon: mdiSync }\n  }\n\n  if (normalized === \"success\") {\n    return { label: isDelete ? \"Gelöscht\" : \"Erledigt\", color: \"emerald\", icon: mdiCheckBold }\n  }\n\n  if (normalized === \"failed\") {\n    return {\n      label: isDelete ? \"Löschung fehlgeschlagen\" : \"Fehlgeschlagen\",\n      color: \"red\",\n      icon: mdiCloseCircleOutline,\n    }\n  }\n\n  if (normalized === \"pending\") {\n    return {\n      label: isDelete ? \"Löschung geplant\" : \"Ausstehend\",\n      color: \"amber\",\n      icon: mdiClockOutline,\n    }\n  }\n\n  return {\n    label: cleanText(row.syncStatus, \"Unbekannt\"),\n    color: \"amber\",\n    icon: mdiAlertCircleOutline,\n  }\n}\n\nconst shortenError = (value?: string | null): string | null => {\n  const text = cleanText(value, \"\")\n\n  if (!text) return null\n\n  return text.length > 24 ? `${text.slice(0, 23).trimEnd()}…` : text\n}\n\nexport const buildFileSyncStatusTag = (row: FileSyncTagSource): FileTableTag => {\n  const definition = syncStatusPresentation(row)\n  const normalized = row.syncStatus.trim().toLowerCase()\n  const retryLabel =\n    row.retryCount > 0\n      ? `${numberFormatter.format(row.retryCount)} Versuch${row.retryCount === 1 ? \"\" : \"e\"}`\n      : null\n  const subLabel =\n    normalized === \"failed\"\n      ? (retryLabel ?? shortenError(row.lastError) ?? \"Fehler\")\n      : normalized === \"syncing\"\n        ? \"läuft\"\n        : normalized === \"pending\"\n          ? \"wartet\"\n          : normalized === \"success\"\n            ? row.operation.trim().toLowerCase() === \"delete\"\n              ? \"bereinigt\"\n              : \"aktuell\"\n            : \"unbekannt\"\n\n  return {\n    ...definition,\n    subLabel,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Sync\"),\n      safeTooltipField(\"Status\", definition.label),\n      safeTooltipField(\"Vorgang\", operationPresentation(row.operation).label),\n      safeTooltipField(\"Letzter Sync\", formatFileSyncDate(row.lastSync)),\n      safeTooltipField(\"Nächster Versuch\", formatFileSyncDate(row.nextSync)),\n      safeTooltipField(\n        \"Versuche\",\n        row.retryCount > 0 ? numberFormatter.format(row.retryCount) : \"–\",\n      ),\n      safeTooltipField(\"Fehler\", row.lastError || \"–\"),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${definition.label} ${subLabel} ${row.lastError ?? \"\"}`,\n    sortValue: row.syncStatus,\n  }\n}\n\nexport const buildFileSyncFreshnessTag = (row: FileSyncTagSource): FileTableTag => {\n  const label = row.lastSync ? (formatShortDate(row.lastSync) ?? \"Letzter Sync\") : \"Noch nicht\"\n  const subLabel = row.nextSync\n    ? `nächster ${formatShortDate(row.nextSync) ?? \"geplant\"}`\n    : row.lastSeen\n      ? `gesehen ${formatShortDate(row.lastSeen) ?? \"unbekannt\"}`\n      : \"nicht gesehen\"\n\n  return {\n    label,\n    subLabel,\n    color: row.lastSync ? \"emerald\" : row.nextSync ? \"blue\" : \"amber\",\n    icon: mdiCalendarClock,\n    tooltip: buildRichTooltip(\n      tooltipTitle(\"Aktualität\"),\n      safeTooltipField(\"Letzter Sync\", formatFileSyncDate(row.lastSync)),\n      safeTooltipField(\"Nächster Versuch\", formatFileSyncDate(row.nextSync)),\n      safeTooltipField(\"Erstmals gesehen\", formatFileSyncDate(row.firstSeen)),\n      safeTooltipField(\"Zuletzt gesehen\", formatFileSyncDate(row.lastSeen)),\n      safeTooltipField(\"Objekt geändert\", formatFileSyncDate(row.lastModified)),\n    ),\n    tooltipHtml: true,\n    tooltipClassName: RICH_TOOLTIP_CLASS,\n    searchText: `${label} ${subLabel}`,\n    sortValue: row.lastSync ?? row.nextSync ?? row.lastSeen ?? row.firstSeen ?? \"\",\n  }\n}\n\nexport const buildFileSyncTags = (row: FileSyncTagSource, context: FileSyncTableContext) => ({\n  fileTag: buildFileSyncFileTag(row),\n  scopeTag: buildFileSyncScopeTag(row, context),\n  operationTag: buildFileSyncOperationTag(row),\n  syncTag: buildFileSyncStatusTag(row),\n  freshnessTag: buildFileSyncFreshnessTag(row),\n})\n","import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\nimport type { SyncObjectRecord } from \"../../../../../../../../_logic/storage\"\nimport type { OptimisticFileSyncEntry } from \"../../../../../../../../_logic/optimistic-sync-state\"\nimport type {\n  FileSyncChunkContext,\n  FileSyncFilterDisplayMode,\n  FileSyncRow,\n  FileSyncTableContext,\n} from \"../_shared/_logic/contract\"\nimport { buildFileSyncTags, type FileSyncTagSource } from \"./tags\"\n\nexport const FILE_SYNC_PAGE_SIZE = 10\n\nexport const FILE_SYNC_PROCESSING_STATUSES = new Set([\"pending\", \"syncing\"])\n\nexport const fileSyncStatusOptions = [\n  { name: \"Ausstehend\", value: \"pending\" },\n  { name: \"Sync läuft\", value: \"syncing\" },\n  { name: \"Erledigt\", value: \"success\" },\n  { name: \"Fehlgeschlagen\", value: \"failed\" },\n]\n\nexport const fileSyncCardFieldIds = (mode: FileSyncFilterDisplayMode): string[] =>\n  mode === \"detailed\" ? [\"scope\", \"operation\", \"sync\", \"freshness\"] : [\"sync\", \"freshness\"]\n\nexport const buildFileSyncColumns = (mode: FileSyncFilterDisplayMode): ColumnDef[] => {\n  const columns: ColumnDef[] = [\n    {\n      id: \"file\",\n      label: \"Datei\",\n      isPrimary: true,\n      tooltip: \"Datei, Object-Key, Bucket und technische Metadaten.\",\n      sortable: true,\n      sortKey: \"object_key\",\n      sortType: \"text\",\n      getSortValue: (row) => (row as FileSyncRow).fileTag.sortValue,\n    },\n  ]\n\n  if (mode === \"detailed\") {\n    columns.push(\n      {\n        id: \"scope\",\n        label: \"Geltung\",\n        tooltip: \"Sync-Ebene, in der diese Datei in den Index geschrieben wird.\",\n        sortable: true,\n        sortKey: \"scope\",\n        sortType: \"text\",\n        getSortValue: (row) => (row as FileSyncRow).scopeTag.sortValue,\n      },\n      {\n        id: \"operation\",\n        label: \"Vorgang\",\n        tooltip: \"Aktueller Datei-Vorgang wie Aufnahme, Aktualisierung oder Löschung.\",\n        sortable: true,\n        sortKey: \"operation\",\n        sortType: \"text\",\n        getSortValue: (row) => (row as FileSyncRow).operationTag.sortValue,\n      },\n    )\n  }\n\n  columns.push(\n    {\n      id: \"sync\",\n      label: \"Sync\",\n      tooltip: \"Letzter Sync-Status inkl. Fehler und Retry-Information.\",\n      sortable: true,\n      sortKey: \"sync_status\",\n      sortType: \"text\",\n      getSortValue: (row) => (row as FileSyncRow).syncTag.sortValue,\n    },\n    {\n      id: \"freshness\",\n      label: \"Aktualität\",\n      tooltip: \"Letzter erfolgreicher Sync, nächster Versuch und Sichtungszeitpunkte.\",\n      sortable: true,\n      sortKey: \"last_sync_at\",\n      sortType: \"date\",\n      defaultSortDir: \"desc\",\n      getSortValue: (row) => (row as FileSyncRow).freshnessTag.sortValue,\n    },\n  )\n\n  return columns\n}\n\nconst normalizeNullableText = (value: string | null | undefined): string | null => {\n  const text = (value ?? \"\").trim()\n\n  return text || null\n}\n\ntype FileSyncRowSource = FileSyncTagSource & {\n  raw: FileSyncRow[\"raw\"]\n}\n\nconst buildRow = (source: FileSyncRowSource, context: FileSyncTableContext): FileSyncRow => {\n  const tags = buildFileSyncTags(source, context)\n\n  return {\n    ...source,\n    ...tags,\n    searchText: [\n      tags.fileTag.searchText,\n      tags.scopeTag.searchText,\n      tags.operationTag.searchText,\n      tags.syncTag.searchText,\n      tags.freshnessTag.searchText,\n    ].join(\" \"),\n  }\n}\n\nexport const mapSyncObjectToFileSyncRow = (\n  item: SyncObjectRecord,\n  context: FileSyncTableContext,\n): FileSyncRow =>\n  buildRow(\n    {\n      id: item.id,\n      objectKey: item.objectKey,\n      bucket: item.bucket,\n      tenantId: item.tenantId,\n      projectId: item.projectId,\n      scope: item.scope,\n      realizationId: item.realizationId ?? null,\n      syncStatus: item.syncStatus,\n      operation: item.operation,\n      etag: normalizeNullableText(item.etag),\n      size: typeof item.size === \"number\" ? item.size : null,\n      lastModified: normalizeNullableText(item.lastModified),\n      lastSync: normalizeNullableText(item.lastSyncAt),\n      nextSync: normalizeNullableText(item.nextSyncAt),\n      firstSeen: normalizeNullableText(item.firstSeenAt),\n      lastSeen: normalizeNullableText(item.lastSeenAt),\n      lastError: normalizeNullableText(item.lastError),\n      retryCount: Math.max(0, Number(item.retryCount ?? 0)),\n      isOptimistic: false,\n      raw: item,\n    },\n    context,\n  )\n\nexport const mapOptimisticFileSyncToRow = (\n  entry: OptimisticFileSyncEntry,\n  context: FileSyncTableContext,\n): FileSyncRow =>\n  buildRow(\n    {\n      id: entry.id,\n      objectKey: entry.objectKey,\n      bucket: entry.bucket,\n      tenantId: context.organizationId ?? \"\",\n      projectId: entry.projectId,\n      scope: entry.scope,\n      realizationId:\n        entry.scope === \"realization\"\n          ? (entry.realizationId ?? context.realizationId ?? null)\n          : null,\n      syncStatus: \"pending\",\n      operation: \"insert\",\n      etag: null,\n      size: null,\n      lastModified: null,\n      lastSync: null,\n      nextSync: entry.createdAt,\n      firstSeen: entry.createdAt,\n      lastSeen: entry.createdAt,\n      lastError: null,\n      retryCount: 0,\n      isOptimistic: true,\n      raw: entry,\n    },\n    context,\n  )\n\nexport const resolveFileSyncChunkContext = (\n  row: FileSyncRow,\n  context: FileSyncTableContext,\n): FileSyncChunkContext => {\n  const normalizedScope = (row.scope || \"\").trim().toLowerCase()\n  const firstRealizationId = (row.realizationId ?? \"\").trim() || null\n  const scopedProjectId = (context.projectId ?? \"\").trim() || null\n  const scopedOrganizationId =\n    normalizedScope === \"organization\"\n      ? (row.tenantId ?? context.organizationId ?? \"\").trim() || null\n      : (context.organizationId ?? \"\").trim() || null\n  const scopedRealizationId =\n    normalizedScope === \"realization\" ? (firstRealizationId ?? context.realizationId ?? null) : null\n\n  return {\n    projectId: scopedProjectId,\n    organizationId: scopedOrganizationId,\n    realizationId: scopedRealizationId,\n  }\n}\n\nexport const canOpenFileSyncChunks = (context: FileSyncChunkContext): boolean =>\n  Boolean(context.projectId || context.organizationId)\n","import { mdiOpenInNew, mdiRefresh } from \"@mdi/js\"\nimport { indexActionTooltip } from \"../../../../../../../../_logic/index-action-tooltips\"\nimport type { FileSyncChunkContext, FileSyncRow } from \"../_shared/_logic/contract\"\nimport { canOpenFileSyncChunks } from \"./tableModel\"\nimport type { TableRowAction } from \"@kontextwerk/web-sdk/core/layout/table\"\n\nexport default function buildRowActions({\n  row,\n  chunkContext,\n  onOpenChunks,\n  onRetry,\n}: {\n  row: FileSyncRow\n  chunkContext: FileSyncChunkContext\n  onOpenChunks: (row: FileSyncRow) => void\n  onRetry: (row: FileSyncRow) => void\n}): TableRowAction[] {\n  const retryDisabled = row.isOptimistic || row.id.startsWith(\"file:\")\n  const chunksDisabled = !canOpenFileSyncChunks(chunkContext)\n  const retryDisabledReason =\n    \"Diese Datei ist lokal vorgemerkt. Retry ist möglich, sobald das Backend den Bestandseintrag bestätigt hat.\"\n  const chunksDisabledReason =\n    \"Chunks können erst geöffnet werden, wenn die Sync-Geltung eindeutig auflösbar ist.\"\n  const actions: TableRowAction[] = []\n\n  actions.push({\n    id: \"action-0\",\n    label: \"Chunks\",\n    onClick: () => {\n      onOpenChunks(row)\n    },\n    icon: mdiOpenInNew,\n    disabled: chunksDisabled,\n    tooltip: chunksDisabled ? chunksDisabledReason : indexActionTooltip(\"chunks-open\"),\n    testId: `indexAdmin.files.inventory.chunksButton.${row.id}`,\n  })\n\n  actions.push({\n    id: \"action-1\",\n    label: \"Retry\",\n    onClick: () => {\n      onRetry(row)\n    },\n    icon: mdiRefresh,\n    disabled: retryDisabled,\n    tooltip: retryDisabled ? retryDisabledReason : \"Retry einplanen\",\n    testId: `indexAdmin.files.inventory.retryButton.${row.id}`,\n  })\n\n  return actions\n}\n","<script lang=\"ts\">\n  import FileTableTag from \"../../../../../../../../../../_modules/file-table-tag\"\n  import type { FileSyncRow } from \"../../_logic/contract\"\n\n  const {\n    row,\n  }: {\n    row: FileSyncRow\n  } = $props()\n</script>\n\n<FileTableTag tag={row.fileTag} />\n","<script lang=\"ts\">\n  import type { ColumnDef } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n\n  import FileTableTag from \"../../../../../../../../../_modules/file-table-tag\"\n  import type { FileSyncRow } from \"../../_shared/_logic/contract\"\n  import FileSyncFileCell from \"../../_shared/_modules/file-sync-file-cell\"\n\n  const {\n    row,\n    column,\n  }: {\n    row: FileSyncRow\n    column: ColumnDef\n  } = $props()\n\n  const cellValue = $derived((row as Record<string, unknown>)[column.id] ?? \"\")\n</script>\n\n{#if column.id === \"file\"}\n    <FileSyncFileCell {row} />\n{:else if column.id === \"scope\"}\n    <FileTableTag tag={row.scopeTag} />\n{:else if column.id === \"operation\"}\n    <FileTableTag tag={row.operationTag} />\n{:else if column.id === \"sync\"}\n    <FileTableTag tag={row.syncTag} />\n{:else if column.id === \"freshness\"}\n    <FileTableTag tag={row.freshnessTag} />\n{:else}\n    {cellValue}\n{/if}\n","<script lang=\"ts\">\n  import type {\n    TableRowAction,\n    TableRowActionsConfig,\n  } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n\n  import ToggleCTA from \"@kontextwerk/web-sdk/ui/actions/ToggleCTA.svelte\"\n  import {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import { sortTableRows } from \"@kontextwerk/web-sdk/core/layout/tableSort\"\n  import Input from \"@kontextwerk/web-sdk/ui/forms/Input.svelte\"\n  import { notifyApiError } from \"@kontextwerk/web-sdk/core/overlay/apiErrorNotifications\"\n\n  import {\n    buildFileCollectionSyncStreamUrl,\n    fetchCollectionSyncObjects,\n    retrySyncObject,\n  } from \"../../../../../../../_logic/storage\"\n  import { newNotification } from \"@kontextwerk/web-sdk/core/overlay/notifications\"\n  import { openIndexedDocumentInspector } from \"../../../../../../../_modules/indexed-document-inspector-overlay\"\n  import {\n    optimisticSyncState,\n    removeOptimisticFileSync,\n  } from \"../../../../../../../_logic/optimistic-sync-state\"\n  import { availableProjects } from \"../../../../../../../_logic/organizations\"\n  import SyncStateTableShell from \"../../../../../../../_modules/sync-state-table-shell\"\n  import type { SyncStateTableAdapter } from \"../../../../../../../_logic/sync-state-contracts\"\n  import FileSyncRowActions from \"./_logic/FileSyncRowActions.actions\"\n  import FileSyncFileCell from \"./_shared/_modules/file-sync-file-cell\"\n  import FileSyncStateTableCell from \"./_modules/file-sync-state-table-cell\"\n  import type {\n    FileSyncActivityMode,\n    FileSyncFilterDisplayMode,\n    FileSyncProjectLookupEntry,\n    FileSyncRow,\n    FileSyncTableContext,\n  } from \"./_shared/_logic/contract\"\n  import {\n    buildFileSyncColumns,\n    fileSyncCardFieldIds,\n    FILE_SYNC_PAGE_SIZE,\n    FILE_SYNC_PROCESSING_STATUSES,\n    fileSyncStatusOptions,\n    mapOptimisticFileSyncToRow,\n    mapSyncObjectToFileSyncRow,\n    resolveFileSyncChunkContext,\n  } from \"./_logic/tableModel\"\n\n  const {\n    organizationId = null,\n    projectId,\n    realizationId = null,\n    collectionId = null,\n    bucket = null,\n    setRefreshFunction,\n  }: {\n    organizationId?: string | null\n    projectId: string | null\n    realizationId?: string | null\n    collectionId?: string | null\n    bucket?: string | null\n    setRefreshFunction?: (fn: () => void) => void\n  } = $props()\n\n  let refreshTable: (() => void) | null = null\n  let totalCount = $state<number | null>(null)\n  const tableStateId = $derived(\n    `index-admin-file-sync-${organizationId ?? projectId ?? \"global\"}-${collectionId ?? bucket ?? \"all\"}-${realizationId ?? \"all\"}`,\n  )\n\n  let searchDraft = $state(\"\")\n  const searchTerm = $derived(searchDraft.trim())\n\n  let selectedStatuses = $state(fileSyncStatusOptions.map((entry) => entry.value))\n  let filterMode = $state<FileSyncFilterDisplayMode>(\"compact\")\n  let activityMode = $state<FileSyncActivityMode>(\"active\")\n  const filterModeOptions = [\n    { value: \"compact\", label: \"Kompakt\" },\n    { value: \"detailed\", label: \"Ausführlich\" },\n  ]\n  const activityModeOptions = [\n    { value: \"active\", label: \"Aktiv\" },\n    { value: \"inactive\", label: \"Nicht aktiv\" },\n  ]\n\n  const tableKey = $derived(\n    `${projectId ?? \"\"}|${collectionId ?? \"\"}|${bucket ?? \"\"}|${activityMode}|${filterMode}|${searchTerm}|${selectedStatuses.join(\",\")}|${($optimisticSyncState.files ?? []).map((entry) => entry.id).join(\",\")}`,\n  )\n\n  const projectById = $derived.by<Record<string, FileSyncProjectLookupEntry>>(() => {\n    const entries = ($availableProjects ?? [])\n      .map((project: any) => {\n        const id = String(project?.id ?? \"\").trim()\n\n        if (!id) return null\n\n        return [id, project] as const\n      })\n      .filter(Boolean) as Array<readonly [string, FileSyncProjectLookupEntry]>\n\n    return Object.fromEntries(entries)\n  })\n  const tableContext = $derived.by<FileSyncTableContext>(() => ({\n    projectId,\n    organizationId,\n    realizationId,\n    projectById,\n  }))\n  const columns = $derived.by<ColumnDef[]>(() => buildFileSyncColumns(filterMode))\n  const cardFieldIds = $derived.by(() => fileSyncCardFieldIds(filterMode))\n\n  const toTimestamp = (value?: string | null): number | null => {\n    if (!value) return null\n\n    const parsed = Date.parse(value)\n\n    return Number.isFinite(parsed) ? parsed : null\n  }\n\n  const getRows: TableGetRows = async ({ limit, offset, sort }) => {\n    const requestedLimit = typeof limit === \"number\" ? limit : FILE_SYNC_PAGE_SIZE\n    const requestedOffset = typeof offset === \"number\" ? offset : 0\n    const optimisticCandidates =\n      !projectId || activityMode === \"inactive\"\n        ? []\n        : ($optimisticSyncState.files ?? [])\n            .filter((entry) => entry.projectId === projectId)\n            .filter((entry) => !bucket || entry.bucket === bucket)\n            .filter((entry) => !realizationId || entry.realizationId === realizationId)\n            .filter((entry) => {\n              if (!searchTerm) return true\n\n              return entry.objectKey.toLowerCase().includes(searchTerm.toLowerCase())\n            })\n            .filter((entry) => {\n              if (filterMode !== \"detailed\") return true\n\n              if (!selectedStatuses.length) return false\n\n              return selectedStatuses.includes(\"pending\")\n            })\n    const optimisticCount = optimisticCandidates.length\n    const backendOffset =\n      requestedOffset > 0 ? Math.max(0, requestedOffset - optimisticCount) : requestedOffset\n\n    if (!collectionId) return { rows: [], total: 0 }\n\n    const page = await fetchCollectionSyncObjects(collectionId, {\n      limit: requestedLimit,\n      offset: backendOffset,\n      active: activityMode === \"active\",\n      statuses:\n        filterMode === \"detailed\" &&\n        selectedStatuses.length &&\n        selectedStatuses.length < fileSyncStatusOptions.length\n          ? selectedStatuses\n          : undefined,\n      search: searchTerm || undefined,\n      sortBy: sort?.key ?? undefined,\n      sortDir: sort?.dir ?? undefined,\n      bucket: bucket || undefined,\n    })\n    const backendRows = page.items.map((item) => mapSyncObjectToFileSyncRow(item, tableContext))\n    const backendByKey = Object.fromEntries(\n      backendRows.map((row) => [`${row.bucket}:${row.objectKey}`, row] as const),\n    ) as Record<string, FileSyncRow>\n    const optimistic =\n      requestedOffset === 0\n        ? optimisticCandidates\n            .filter((entry) => {\n              const key = `${entry.bucket}:${entry.objectKey}`\n              const backend = backendByKey[key]\n\n              if (!backend) return true\n\n              const optimisticTs = toTimestamp(entry.createdAt)\n              const backendTs = toTimestamp(backend.lastSeen)\n              const backendRepresentsCurrentUpload =\n                optimisticTs !== null && backendTs !== null\n                  ? backendTs + 2_000 >= optimisticTs\n                  : false\n\n              if (backendRepresentsCurrentUpload) {\n                removeOptimisticFileSync(entry.id)\n\n                return false\n              }\n\n              return true\n            })\n            .map((entry) => mapOptimisticFileSyncToRow(entry, tableContext))\n        : []\n    const combinedRows = requestedOffset === 0 ? [...optimistic, ...backendRows] : backendRows\n    const rows =\n      requestedOffset === 0 && optimistic.length && sort\n        ? sortTableRows(combinedRows, columns, sort).slice(0, requestedLimit)\n        : combinedRows.slice(0, requestedLimit)\n\n    return {\n      rows,\n      total:\n        (page.total ?? backendRows.length) +\n        (requestedOffset === 0 ? optimistic.length : optimisticCount),\n    }\n  }\n\n  const adapter = $derived.by<SyncStateTableAdapter<FileSyncRow>>(() => ({\n    title: \"Dateibestand\",\n    helpModalTextId: \"indexAdminFileSyncState\",\n    columns,\n    getRows,\n    cardFieldIds,\n    maxCardFields: 6,\n    showActions: true,\n    actionsHeaderLabel: \"Aktionen\",\n    pageSize: FILE_SYNC_PAGE_SIZE,\n    tableStateId,\n    emptyMessage: \"Noch keine Dateien im Bestand erfasst.\",\n    liveStateUrl: collectionId ? buildFileCollectionSyncStreamUrl(collectionId) : null,\n    fallbackPollingMs: 5_000,\n    hasActiveRow: (row) =>\n      FILE_SYNC_PROCESSING_STATUSES.has(\n        ((row as FileSyncRow).syncStatus ?? \"\").trim().toLowerCase(),\n      ),\n  }))\n\n  const registerRefresh = (fn: () => void) => {\n    refreshTable = fn\n    setRefreshFunction?.(fn)\n  }\n\n  const handleRetry = async (row: FileSyncRow) => {\n    try {\n      await retrySyncObject(row.id)\n      newNotification({ class: \"info\", html: \"Retry wurde eingeplant.\" })\n      refreshTable?.()\n    } catch (error) {\n      notifyApiError(error, {\n        fallback: \"Retry konnte nicht eingeplant werden.\",\n        includeRequestId: true,\n      })\n    }\n  }\n\n  const handleStatusChange = (value: string[]) => {\n    selectedStatuses = value?.length ? value : []\n    refreshTable?.()\n  }\n\n  const openChunksOverlay = (row: FileSyncRow) => {\n    const context = resolveFileSyncChunkContext(row, tableContext)\n\n    if (!context.projectId && !context.organizationId) return\n\n    const dataId = `${row.bucket}:${row.objectKey}`\n    openIndexedDocumentInspector({\n      projectId: context.projectId,\n      organizationId: context.organizationId,\n      realizationId: context.realizationId,\n      // Scope offen lassen: dieselbe Datei kann parallel in mehreren Ebenen liegen.\n      scope: null,\n      dataId,\n      dataLabel: row.objectKey,\n      sourceId: \"minio\",\n    })\n  }\n\n  const rowActions: TableRowActionsConfig = {\n    resolve: (row, rowIndex) => {\n      const actions: TableRowAction[] = []\n\n      const typedRow = row as FileSyncRow\n\n      actions.push(\n        ...FileSyncRowActions({\n          row: typedRow,\n          chunkContext: resolveFileSyncChunkContext(typedRow, tableContext),\n          onOpenChunks: openChunksOverlay,\n          onRetry: handleRetry,\n        }),\n      )\n\n      return buildTableRowActionSet(actions, { primaryId: \"action-0\", inlineIds: [\"action-1\"] })\n    },\n  }\n</script>\n\n<div data-testid=\"indexAdmin.files.collectionInventory\">\n  <SyncStateTableShell\n    {adapter}\n    count={totalCount ?? 0}\n    refreshKey={tableKey}\n    buttonSnippet={headerButtons}\n    filtersSnippet={filters}\n    emptySnippet={emptyState}\n    tableCellSnippet={tableCell}\n    {rowActions}\n    cardTitleSnippet={cardTitle}\n    cardSubtitleSnippet={cardSubtitle}\n    cardFieldSnippet={cardField}\n    setRefreshFunction={registerRefresh}\n    onRowsLoaded={(result: { rows?: DataRow[]; total?: number }) => {\n      totalCount = typeof result?.total === \"number\" ? result.total : (result?.rows?.length ?? 0)\n    }}\n  />\n</div>\n\n{#snippet headerButtons()}\n  <div class=\"toggles\">\n    <ToggleCTA\n      options={activityModeOptions}\n      value={activityMode}\n      darkMode={false}\n      onChange={(value) => {\n        const next = `${value ?? activityMode}`.toLowerCase()\n        activityMode = next === \"inactive\" ? \"inactive\" : \"active\"\n        refreshTable?.()\n      }}\n    />\n    <ToggleCTA\n      options={filterModeOptions}\n      value={filterMode}\n      darkMode={false}\n      onChange={(value) => {\n        const next = `${value ?? filterMode}`.toLowerCase()\n        filterMode = next === \"detailed\" ? \"detailed\" : \"compact\"\n        refreshTable?.()\n      }}\n    />\n  </div>\n{/snippet}\n\n{#snippet filters()}\n  <div class=\"row\">\n    <Input\n      type=\"text\"\n      placeholder=\"Suche (Datei oder Objekt-Key)\"\n      bind:value={searchDraft}\n      brightBackground={true}\n    />\n    {#if filterMode === \"detailed\"}\n      <Input\n        type=\"select\"\n        placeholder=\"Status\"\n        multiple={true}\n        bind:value={selectedStatuses}\n        options={fileSyncStatusOptions}\n        brightBackground={true}\n        onChange={(event) => {\n          const detail = (event as CustomEvent)?.detail\n          handleStatusChange((detail?.value as string[]) || selectedStatuses)\n        }}\n      />\n    {/if}\n  </div>\n{/snippet}\n\n{#snippet emptyState()}\n  <div class=\"info\">Noch keine Einträge erfasst.</div>\n{/snippet}\n\n{#snippet tableCell({ row, column }: { row: DataRow; column: ColumnDef })}\n  <FileSyncStateTableCell row={row as FileSyncRow} {column} />\n{/snippet}\n\n{#snippet cardTitle({ row }: { row: DataRow })}\n  <FileSyncFileCell row={row as FileSyncRow} />\n{/snippet}\n\n{#snippet cardSubtitle({ row }: { row: DataRow })}\n  {@const typedRow = row as FileSyncRow}\n  <span class=\"muted\">\n    {typedRow.syncTag.label}\n    · {typedRow.freshnessTag.label}\n    · {typedRow.freshnessTag.subLabel}\n  </span>\n{/snippet}\n\n{#snippet cardField({ row, column }: { row: DataRow; column: ColumnDef })}\n  <FileSyncStateTableCell row={row as FileSyncRow} {column} />\n{/snippet}\n\n<style lang=\"less\">\n  .toggles {\n    display: flex;\n    align-items: center;\n    gap: 0.6rem;\n  }\n\n  .row {\n    display: grid;\n    gap: 0.8rem;\n    grid-template-columns: minmax(0, 1.6fr) minmax(14rem, 1fr);\n  }\n\n  .info {\n    color: var(--text-80);\n    padding: 0.6rem 0;\n  }\n\n  .muted {\n    color: var(--text-70);\n  }\n\n  @media (max-width: 900px) {\n    .row {\n      grid-template-columns: minmax(0, 1fr);\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import FileSyncStateTable from \"./_modules/file-sync-state-table\"\n\n  const {\n    organizationId = null,\n    projectId,\n    realizationId = null,\n    collectionId = null,\n    bucket = null,\n  }: {\n    organizationId?: string | null\n    projectId: string | null\n    realizationId?: string | null\n    collectionId?: string | null\n    bucket?: string | null\n  } = $props()\n</script>\n\n<FileSyncStateTable {organizationId} {projectId} {realizationId} {collectionId} {bucket} />\n","<script lang=\"ts\">\n  import FileSyncJobsTable from \"../../../../../_modules/file-sync-jobs-table\"\n\n  const {\n    organizationId = null,\n    projectId = null,\n    collectionId = null,\n  }: {\n    organizationId?: string | null\n    projectId?: string | null\n    collectionId?: string | null\n  } = $props()\n</script>\n\n<FileSyncJobsTable {organizationId} {projectId} {collectionId} />\n","import { mdiFolderMultiple } from \"@mdi/js\"\nimport type { RecordDetailHeaderPresentation } from \"@kontextwerk/web-sdk/ui/layout/recordDetail/types\"\n\nimport type { FileCollectionRecord } from \"../../../../_logic/storage\"\n\nconst scopeLabels: Record<FileCollectionRecord[\"scope\"], string> = {\n  organization: \"Organisation\",\n  project: \"Agent\",\n  realization: \"Sprache\",\n  global: \"Global\",\n}\nexport const fileCollectionRecordIcon = mdiFolderMultiple\nconst numberFormatter = new Intl.NumberFormat(\"de-DE\")\n\nexport const buildFileCollectionRecordHeader = (\n  collection: Pick<FileCollectionRecord, \"scope\" | \"fileCount\" | \"indexedFileCount\">,\n): RecordDetailHeaderPresentation => {\n  const fields: RecordDetailHeaderPresentation[\"fields\"] = [\n    { id: \"scope\", label: \"Sync-Ebene\", value: scopeLabels[collection.scope] },\n  ]\n\n  if (Number.isFinite(collection.fileCount) && collection.fileCount >= 0) {\n    fields.push({\n      id: \"files\",\n      label: \"Dateien\",\n      value: numberFormatter.format(collection.fileCount),\n    })\n  }\n\n  if (Number.isFinite(collection.indexedFileCount) && collection.indexedFileCount >= 0) {\n    fields.push({\n      id: \"indexed-files\",\n      label: \"Indiziert\",\n      value: numberFormatter.format(collection.indexedFileCount),\n    })\n  }\n\n  return { icon: fileCollectionRecordIcon, fields }\n}\n","import { mdiFolderMultiple } from \"@mdi/js\"\nimport type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { FileCollectionRecord } from \"../../../../_logic/storage\"\nimport type { FileCollectionFrameContext, FileCollectionFrameDefinition } from \"./types\"\nimport { buildFileCollectionRecordHeader, fileCollectionRecordIcon } from \"./recordHeader\"\n\nexport const buildFileCollectionPath = (\n  mode: \"project\" | \"global\",\n  projectBasePath: string | null,\n  id?: string | null,\n) =>\n  id\n    ? mode === \"global\"\n      ? `/admin/data/files/collections/${encodeURIComponent(id)}`\n      : projectBasePath\n        ? `${projectBasePath}/${encodeURIComponent(id)}`\n        : \"/\"\n    : null\n\nconst getFileCollectionTabs = (): PageTabWithId[] => [\n  { id: \"details\", title: \"Sammlung\", testId: \"indexAdmin.fileCollectionView.tab.details\" },\n  { id: \"inventory\", title: \"Bestand\", testId: \"indexAdmin.fileCollectionView.tab.inventory\" },\n  { id: \"jobs\", title: \"Synchronisationsjobs\", testId: \"indexAdmin.fileCollectionView.tab.jobs\" },\n]\n\nexport const createFileCollectionFrameDefinition = (\n  mode: \"project\" | \"global\",\n  getEntityPath: (collection: FileCollectionRecord) => string,\n): FileCollectionFrameDefinition => ({\n  title: \"Dateisammlungen\",\n  emptyMessage:\n    mode === \"global\"\n      ? \"Für die globale Datenbasis wurden noch keine Dateisammlungen angelegt.\"\n      : \"Für diese Organisation wurden noch keine Dateisammlungen angelegt.\",\n  icon: mdiFolderMultiple,\n  recordIcon: fileCollectionRecordIcon,\n  testId: \"indexAdmin.fileCollectionView\",\n  getEntityId: (collection) => collection.id,\n  getEntityTitle: (collection) => collection.label,\n  getRecordHeader: buildFileCollectionRecordHeader,\n  getEntityPath,\n  getEntityTestId: (collection) => `indexAdmin.fileCollectionView.page.${collection.id}`,\n  getTabs: (context: FileCollectionFrameContext) =>\n    context.activeEntity ? getFileCollectionTabs() : [],\n})\n","import type { FileCollectionRecord } from \"../../../../_logic/storage\"\nimport { buildFileCollectionPath } from \"./frame\"\n\nexport const resolveFileCollectionAutomationTarget = (snapshot: {\n  mode: \"project\" | \"global\"\n  collectionBasePath: string | null\n  routeCollectionId: string | null\n  entries: FileCollectionRecord[]\n}): string | null => {\n  if (!snapshot.entries.length) return null\n\n  const resolvedId =\n    snapshot.routeCollectionId &&\n    snapshot.entries.some((entry) => entry.id === snapshot.routeCollectionId)\n      ? snapshot.routeCollectionId\n      : (snapshot.entries[0]?.id ?? null)\n\n  if (!resolvedId || resolvedId === snapshot.routeCollectionId) return null\n\n  return buildFileCollectionPath(snapshot.mode, snapshot.collectionBasePath, resolvedId)\n}\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export const getTabs = (): PageTabWithId[] => [\n    { id: \"details\", title: \"Sammlung\", testId: \"indexAdmin.fileCollectionView.tab.details\" },\n    { id: \"inventory\", title: \"Bestand\", testId: \"indexAdmin.fileCollectionView.tab.inventory\" },\n    { id: \"jobs\", title: \"Synchronisationsjobs\", testId: \"indexAdmin.fileCollectionView.tab.jobs\" },\n  ]\n</script>\n\n<script lang=\"ts\">\n  import { onMount, type Snippet } from \"svelte\"\n  import type { PopoverMenuItem } from \"@kontextwerk/web-sdk/ui/overlay/popover/types\"\n  import { mdiFolderMultiple } from \"@mdi/js\"\n\n  import { fetchFileCollections, type FileCollectionRecord } from \"../../../_logic/storage\"\n  import { buildCurrentProjectPath, spaNavigate } from \"../../../_logic/organization-navigation\"\n  import { activeOrganization } from \"../../../_logic/organization\"\n  import DetailsTab from \"./tabs/Details\"\n  import FileCollectionRecordActions from \"./_modules/file-collection-record-actions\"\n  import InventoryTab from \"./tabs/Inventory\"\n  import JobsTab from \"./tabs/Jobs\"\n  import EntityCollectionViewFrame from \"../../../_modules/entity-collection-view-frame\"\n  import type {\n    EntityCollectionFrameDefinition,\n    EntityCollectionViewFrameContext,\n  } from \"../../../_logic/entity-collection-contracts\"\n  import { buildFileCollectionPath, createFileCollectionFrameDefinition } from \"./_logic/frame\"\n  import { resolveFileCollectionAutomationTarget } from \"./_logic/automation\"\n  import type { FileCollectionViewProps } from \"./_logic/types\"\n\n  const {\n    collectionId,\n    mode = \"project\",\n    canManageFileUpload = true,\n  }: FileCollectionViewProps = $props()\n\n  const organizationId = $derived($activeOrganization?.id ?? null)\n  const projectId = $derived<string | null>(null)\n  const realizationOptions = $derived<Array<{ value: string; name: string }>>([])\n  const defaultRealizationId = $derived<string | null>(null)\n\n  let collections = $state<FileCollectionRecord[]>([])\n  let loading = $state(false)\n  let error = $state<string | null>(null)\n  let requestId = 0\n\n  const projectBackLink = $derived(buildCurrentProjectPath({ suffix: \"/files\" }) ?? \"\")\n  const globalBackLink = \"/admin/data\"\n  const backLink = $derived(mode === \"global\" ? globalBackLink : projectBackLink)\n\n  const collectionBasePath = $derived(buildCurrentProjectPath({ suffix: \"/files/collections\" }))\n  const buildCollectionPath = (id?: string | null) =>\n    buildFileCollectionPath(mode, collectionBasePath, id)\n  const frameDefinition = $derived.by<EntityCollectionFrameDefinition<FileCollectionRecord>>(() =>\n    createFileCollectionFrameDefinition(\n      mode,\n      (collection) => buildCollectionPath(collection.id) ?? \"/\",\n    ),\n  )\n\n  const loadCollections = async () => {\n    const current = ++requestId\n    loading = true\n    error = null\n    try {\n      const result =\n        mode === \"global\"\n          ? await fetchFileCollections({ scope: \"global\" })\n          : organizationId\n            ? await fetchFileCollections({ organizationId })\n            : []\n\n      if (current !== requestId) return\n\n      collections = result\n      const target = resolveFileCollectionAutomationTarget({\n        mode,\n        collectionBasePath,\n        routeCollectionId: collectionId,\n        entries: result,\n      })\n\n      if (target) {\n        spaNavigate(target, { replace: true, noSearchParam: true })\n      }\n    } catch (err) {\n      if (current !== requestId) return\n\n      collections = []\n      error = err instanceof Error ? err.message : String(err)\n    } finally {\n      if (current === requestId) loading = false\n    }\n  }\n\n  onMount(() => {\n    void loadCollections()\n\n    return () => {\n      requestId += 1\n    }\n  })\n</script>\n\n<EntityCollectionViewFrame\n  definition={{\n    ...frameDefinition,\n    helpModalTextId: \"indexAdminFileCollectionDetail\",\n    helpModalTooltip:\n      \"Eine Dateisammlung entspricht genau einem Bucket mit einer festen Scope-Zuordnung.\",\n  }}\n  recordScopeKey={mode === \"global\"\n    ? \"admin:global\"\n    : organizationId\n      ? `organization:${organizationId}`\n      : null}\n  recordActionController={fileCollectionRecordActions}\n  entities={collections}\n  routeEntityId={collectionId}\n  {backLink}\n  noContextMessage={mode === \"project\" && !organizationId\n    ? \"Keine Dateisammlung verfügbar, weil der Organisationskontext fehlt.\"\n    : null}\n  {loading}\n  loadingMessage=\"Dateisammlungen werden geladen…\"\n  {error}\n  tabContent={fileCollectionTabContent}\n/>\n\n{#snippet fileCollectionRecordActions(\n  collection: FileCollectionRecord | null,\n  children: Snippet<[PopoverMenuItem[]]>,\n)}\n  <FileCollectionRecordActions\n    {mode}\n    {collection}\n    {organizationId}\n    {projectId}\n    {defaultRealizationId}\n    {realizationOptions}\n    canManage={canManageFileUpload}\n    onUpdated={loadCollections}\n    onDeleted={() => {\n      spaNavigate(backLink || \"/\", { replace: true, noSearchParam: true })\n    }}\n    {children}\n  />\n{/snippet}\n\n{#snippet fileCollectionTabContent(\n  tabId: string,\n  context: EntityCollectionViewFrameContext<FileCollectionRecord>,\n)}\n  {@const collection = context.activeEntity}\n  {#if collection && tabId === \"details\"}\n    <DetailsTab\n      {mode}\n      {collection}\n      {organizationId}\n      {projectId}\n      {defaultRealizationId}\n      {realizationOptions}\n      canManage={canManageFileUpload}\n      onUpdated={loadCollections}\n      onDeleted={() => {\n        spaNavigate(backLink || \"/\", { replace: true, noSearchParam: true })\n      }}\n    />\n  {:else if collection && tabId === \"inventory\"}\n    <InventoryTab\n      organizationId={mode === \"global\" ? null : organizationId}\n      projectId={mode === \"global\" ? null : projectId}\n      collectionId={collection.id}\n      bucket={collection.bucket}\n    />\n  {:else if collection && tabId === \"jobs\"}\n    <JobsTab\n      organizationId={mode === \"global\" ? null : organizationId}\n      projectId={mode === \"global\" ? null : projectId}\n      collectionId={collection.id}\n    />\n  {/if}\n{/snippet}\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import { activeOrganization } from \"../_logic/organization\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import FileCollectionPage from \"./pages/FileCollection\"\n  import { getIndexAdminAuthContext } from \"../_logic/auth-context\"\n\n  const {\n    collectionId,\n    mode = \"project\",\n  }: {\n    collectionId: string\n    mode?: \"project\" | \"global\"\n  } = $props()\n\n  const routeKey = $derived(`${mode}:${$activeOrganization?.id ?? \"no-org\"}:${collectionId}`)\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n</script>\n\n{#key routeKey}\n    {#if capabilities.canViewFileCollections}\n        <FileCollectionPage\n      {collectionId}\n      {mode}\n      canManageFileUpload={capabilities.canManageFileUpload}\n    />\n    {:else}\n        <AccessDeniedPage\n      title=\"Dateisammlungen gesperrt\"\n      statusLabel=\"Berechtigung fehlt\"\n      message=\"Du darfst die Dateisammlungen nicht ansehen.\"\n      hint=\"Bitte fordere die Berechtigung „Dateiupload ansehen“ an.\"\n    />\n    {/if}\n{/key}\n","<script lang=\"ts\">\n  import FileCollectionDetail from \"../../../_shared/file-collection-detail\"\n  let { collectionId }: { collectionId: string } = $props()\n</script>\n\n<FileCollectionDetail {collectionId} mode=\"project\" />\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"file-collection\",\n  parentPageId: \"files\",\n  parentTabTitle: \"Dateisammlungen\",\n} satisfies AppSubviewConfig\n","<script lang=\"ts\">\n  import FileCollectionDetail from \"../../../_shared/file-collection-detail\"\n  let { collectionId }: { collectionId: string } = $props()\n</script>\n\n<FileCollectionDetail {collectionId} mode=\"global\" />\n","import type { AppSubviewConfig } from \"@kontextwerk/web-sdk/core/navigation/appFrame\"\n\nexport const subviewConfig = {\n  id: \"global-file-collection\",\n  parentPageId: \"admin\",\n  parentTabTitle: \"Globale Dateisammlungen\",\n} satisfies AppSubviewConfig\n","import type { PermissionState } from \"../../_shared/_logic/permissions\"\nimport { allowsPlatformOperation } from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\n\nexport type AdminViewCapabilities = {\n  canOpenAdmin: boolean\n  canManageFileUpload: boolean\n}\n\nexport const buildViewCapabilities = (permissions: PermissionState): AdminViewCapabilities => ({\n  canOpenAdmin: allowsPlatformOperation(permissions),\n  canManageFileUpload: allowsPlatformOperation(permissions),\n})\n","<script lang=\"ts\">\n  import type { OrganizationSummary } from \"@kontextwerk/control-web-client\"\n  import CleanupTab from \"../../../../../OrgaView/pages/Datasources/tabs/Cleanup\"\n\n  let { organizations }: { organizations: OrganizationSummary[] } = $props()\n  let selected = $state(\"\")\n  const organizationId = $derived(\n    organizations.some((item) => item.id === selected) ? selected : null,\n  )\n</script>\n\n<section aria-label=\"Index-Datenbereinigung\">\n  <label\n    >Organisation<select bind:value={selected}>\n    <option value=\"\">Organisation auswaehlen</option>\n    {#each organizations as organization (organization.id)}\n      <option value={organization.id}>{organization.name}</option>\n    {/each}\n  </select></label\n  >\n  {#if organizationId}\n    {#key organizationId}<CleanupTab {organizationId} hasWorkspaceData />{/key}\n  {/if}\n</section>\n\n<style>\n  section {\n    display: grid;\n    gap: 1rem;\n  }\n  label {\n    display: grid;\n    gap: 0.5rem;\n    max-width: 28rem;\n  }\n  select {\n    min-width: 0;\n    font: inherit;\n    min-height: 2.5rem;\n  }\n</style>\n","<script module lang=\"ts\">\n  import type { PageTabWithId } from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\n  export type AdminPageTabsContext = {\n    organizationsPath: string | null\n    dataPath: string | null\n  }\n\n  export const getTabs = (ctx: AdminPageTabsContext): PageTabWithId[] => {\n    const tabs: PageTabWithId[] = []\n\n    if (ctx.organizationsPath) {\n      tabs.push({\n        id: \"organizations\",\n        title: \"Organisationen\",\n        path: ctx.organizationsPath,\n      })\n    }\n\n    if (ctx.dataPath) {\n      tabs.push({\n        id: \"data\",\n        title: \"Datenbasis\",\n        path: ctx.dataPath,\n      })\n    }\n\n    tabs.push({ id: \"maintenance\", title: \"Datenbereinigung\", path: \"/admin/maintenance\" })\n\n    return tabs\n  }\n</script>\n\n<script lang=\"ts\">\n  import { buildTableRowActionSet } from \"@kontextwerk/web-sdk/core/layout/table\"\n  import { mdiEyeOutline as tablePrimaryIcon } from \"@mdi/js\"\n\n  import Table, {\n    type ColumnDef,\n    type DataRow,\n    type TableGetRows,\n  } from \"@kontextwerk/web-sdk/ui/layout/Table.svelte\"\n  import SectionTitle from \"@kontextwerk/web-sdk/ui/typography/SectionTitle.svelte\"\n  import type { OrganizationSummary } from \"@kontextwerk/control-web-client\"\n\n  import DataBasisPanel from \"../../../_shared/_modules/data-basis-panel\"\n  import { spaNavigate } from \"../../../_shared/_logic/organization-navigation\"\n  import IndexMaintenance from \"./_modules/index-maintenance\"\n\n  type AdminViewProps = {\n    activeTab?: \"organizations\" | \"data\" | \"maintenance\"\n    organizations?: OrganizationSummary[]\n    projects?: any[]\n    canManageFileUpload?: boolean\n  }\n\n  type OrganizationRow = DataRow & {\n    id: string\n    slug: string\n    name: string\n    projectCount: number\n    realizationCount: number\n    routePath: string | null\n  }\n\n  const {\n    activeTab = \"organizations\",\n    organizations = [],\n    projects = [],\n    canManageFileUpload = false,\n  }: AdminViewProps = $props()\n  const normalizedTab = $derived(activeTab)\n\n  const numberFormatter = new Intl.NumberFormat(\"de-DE\")\n  const columns: ColumnDef[] = [\n    { id: \"name\", label: \"Organisation\", isPrimary: true },\n    { id: \"slug\", label: \"Slug\" },\n    { id: \"projectCount\", label: \"Projekte\" },\n    { id: \"realizationCount\", label: \"Realisierungen\" },\n  ]\n  const PAGE_SIZE = 25\n\n  const organizationRows = $derived.by<OrganizationRow[]>(() => {\n    const realizationCountByOrganization = new Map<string, number>()\n    for (const project of projects ?? []) {\n      const organizationId = String(project?.organization_id ?? \"\").trim()\n\n      if (!organizationId) continue\n\n      const realizations = Array.isArray(project?.realizations) ? project.realizations.length : 0\n      realizationCountByOrganization.set(\n        organizationId,\n        (realizationCountByOrganization.get(organizationId) ?? 0) + realizations,\n      )\n    }\n\n    return (organizations ?? [])\n      .map<OrganizationRow>((organization) => ({\n        id: organization.id,\n        slug: organization.slug,\n        name:\n          organization.name || organization.slug || organization.id || \"Unbenannte Organisation\",\n        routePath: `/organizations/${encodeURIComponent(organization.slug || organization.id)}/home`,\n        projectCount: Number(organization.project_count ?? 0),\n        realizationCount: realizationCountByOrganization.get(organization.id) ?? 0,\n      }))\n      .sort((a, b) => a.name.localeCompare(b.name))\n  })\n\n  const organizationsTitle = $derived(\n    `Organisationen (${numberFormatter.format(organizationRows.length)})`,\n  )\n\n  const getRows: TableGetRows = ({ limit, offset, filters: _filters }) => {\n    const start = Math.max(0, offset ?? 0)\n    const end = limit ? start + limit : organizationRows.length\n    const rows = organizationRows.slice(start, end)\n\n    return {\n      rows,\n      total: organizationRows.length,\n    }\n  }\n\n  const openOrganization = (row: OrganizationRow) => {\n    if (!row.routePath) return\n\n    const currentPath =\n      typeof window !== \"undefined\"\n        ? (window.location.pathname || \"\").replace(/\\/+$/, \"\") || \"/\"\n        : \"\"\n    const targetPath = row.routePath.replace(/\\/+$/, \"\") || \"/\"\n\n    if (currentPath && currentPath === targetPath) return\n\n    spaNavigate(row.routePath, { noSearchParam: true })\n  }\n</script>\n\n{#if normalizedTab === \"maintenance\"}\n    <IndexMaintenance {organizations} />\n{:else if normalizedTab === \"data\"}\n    <DataBasisPanel scope=\"global\" {projects} {canManageFileUpload} />\n{:else}\n    <div class=\"admin-organizations\">\n        <SectionTitle brightBackground={true} title={organizationsTitle} />\n        <Table\n      rowActions={{\n        resolve: (row, rowIndex) =>\n          buildTableRowActionSet(\n            [\n              {\n                id: \"open-record\",\n                label: \"Organisation öffnen\",\n                icon: tablePrimaryIcon,\n                onClick: () => ((row) => openOrganization(row as OrganizationRow))(row),\n              },\n              ...[],\n            ],\n            { primaryId: \"open-record\", inlineIds: [] },\n          ),\n      }}\n      {columns}\n      {getRows}\n      mode=\"auto\"\n      theme=\"light\"\n      pageSize={PAGE_SIZE}\n      showActions={false}\n      showPrimaryButton={false}\n    >\n            {#snippet tableCell({ row, column })}\n                {#if column.id === \"projectCount\" || column.id === \"realizationCount\"}\n                    <span class=\"number\"\n            >{numberFormatter.format(((row as OrganizationRow)[column.id] as number) ?? 0)}</span\n          >\n                {:else if column.id === \"slug\"}\n                    <code>{(row as OrganizationRow).slug}</code>\n                {:else}\n                    {(row as OrganizationRow)[column.id] as any}\n                {/if}\n            {/snippet}\n\n            {#snippet empty()}\n                <div class=\"muted\">Keine Organisationen verfügbar.</div>\n            {/snippet}\n        </Table>\n    </div>\n{/if}\n\n<style lang=\"less\">\n  .admin-organizations {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .number {\n    display: inline-block;\n    min-width: 2.5rem;\n    text-align: right;\n  }\n\n  .muted {\n    color: var(--text-400);\n  }\n</style>\n","import { mdiDatabase, mdiOfficeBuilding } from \"@mdi/js\"\nimport {\n  buildViewNavigation,\n  type PageTabWithId,\n  type ViewPageSnippets,\n  type ViewPageSpec,\n} from \"@kontextwerk/web-sdk/core/navigation/viewNavigation\"\n\nimport type { AdminViewCapabilities } from \"./_logic/capabilities\"\n\nexport type AdminViewPaths = {\n  admin: string | null\n  organizations: string | null\n  data: string | null\n}\n\nexport type AdminViewNavigationContext = {\n  organizationsPath: string | null\n  dataPath: string | null\n}\n\nconst getAdminTabs = (ctx: AdminViewNavigationContext): PageTabWithId[] => {\n  const tabs: PageTabWithId[] = []\n\n  if (ctx.organizationsPath) {\n    tabs.push({\n      id: \"organizations\",\n      title: \"Organisationen\",\n      path: ctx.organizationsPath,\n    })\n  }\n\n  if (ctx.dataPath) {\n    tabs.push({\n      id: \"data\",\n      title: \"Datenbasis\",\n      path: ctx.dataPath,\n    })\n  }\n\n  tabs.push({ id: \"maintenance\", title: \"Datenbereinigung\", path: \"/admin/maintenance\" })\n\n  return tabs\n}\n\nconst PAGE_SPECS: Array<\n  ViewPageSpec<AdminViewNavigationContext, AdminViewPaths, AdminViewCapabilities>\n> = [\n  {\n    id: \"admin\",\n    title: \"Admin\",\n    icon: ({ context }) => (context.organizationsPath ? mdiOfficeBuilding : mdiDatabase),\n    resolvePath: (paths) => paths.admin,\n    canOpen: (capabilities) => capabilities.canOpenAdmin,\n    getTabs: getAdminTabs,\n  },\n]\n\nexport const buildAdminViewPaths = (paths: AdminViewPaths): AdminViewPaths => paths\n\nexport const buildAdminViewNavigation = ({\n  capabilities,\n  context,\n  paths,\n  snippets,\n}: {\n  capabilities: AdminViewCapabilities\n  context: AdminViewNavigationContext\n  paths: AdminViewPaths\n  snippets: ViewPageSnippets\n}) =>\n  buildViewNavigation({\n    specs: PAGE_SPECS,\n    context,\n    paths,\n    capabilities,\n    snippets,\n  })\n\nexport const buildAdminViewTabPaths = ({\n  organizationsPath = \"/admin/organizations\",\n  dataPath = \"/admin/data\",\n}: {\n  organizationsPath?: string | null\n  dataPath?: string | null\n} = {}): { organizationsPath: string | null; dataPath: string | null; tabs: PageTabWithId[] } => {\n  const context = { organizationsPath, dataPath }\n\n  return {\n    ...context,\n    tabs: getAdminTabs(context),\n  }\n}\n","<script lang=\"ts\">\n  import AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\n  import PageTemplate from \"@kontextwerk/web-sdk/ui/layout/PageTemplate.svelte\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import type { OrganizationSummary } from \"@kontextwerk/control-web-client\"\n  import { buildViewCapabilities } from \"./_logic/capabilities\"\n  import AdminPage from \"./pages/Admin\"\n  import { getIndexAdminAuthContext } from \"../_shared/_logic/auth-context\"\n  import { buildAdminViewNavigation, buildAdminViewPaths } from \"./navigation\"\n\n  const {\n    organizations = [],\n    projects = [],\n  }: {\n    organizations?: OrganizationSummary[]\n    projects?: any[]\n  } = $props()\n\n  const authContext = getIndexAdminAuthContext()\n  const capabilities = $derived(buildViewCapabilities($authContext.permissions))\n  const pageNavigation = $derived.by(() =>\n    buildAdminViewNavigation({\n      capabilities,\n      context: {\n        organizationsPath: \"/admin/organizations\",\n        dataPath: \"/admin/data\",\n      },\n      paths: buildAdminViewPaths({\n        admin: \"/admin\",\n        organizations: \"/admin/organizations\",\n        data: \"/admin/data\",\n      }),\n      snippets: {\n        admin: adminContent,\n      },\n    }),\n  )\n</script>\n\n{#if capabilities.canOpenAdmin}\n  <PageTemplate\n    viewKey=\"index-admin\"\n    title=\"Admin\"\n    {pageNavigation}\n    locationStore={location}\n    gobackLink=\"\"\n  />\n{:else}\n  <AccessDeniedPage\n    title=\"Kein Admin-Zugriff\"\n    statusLabel=\"Berechtigung fehlt\"\n    message=\"Diese Plattformoperation erfordert eine aktive Plattformzuweisung.\"\n    hint=\"Bitte wende dich an einen Administrator oder nutze die organisationsbezogenen Ansichten.\"\n  />\n{/if}\n\n{#snippet adminContent(activeTab: string)}\n  <AdminPage\n    activeTab={activeTab === \"data\" || activeTab === \"maintenance\" ? activeTab : \"organizations\"}\n    {organizations}\n    {projects}\n    canManageFileUpload={capabilities.canManageFileUpload}\n  />\n{/snippet}\n","export const workspaceConfig = { id: \"admin\" } as const\n","<script lang=\"ts\">\n  import Card from \"@kontextwerk/web-sdk/ui/layout/Card.svelte\"\n  import CrinkledSection from \"@kontextwerk/web-sdk/ui/layout/CrinkledSection.svelte\"\n</script>\n\n<CrinkledSection maxWidthAndCentered={true}>\n    <Card brightBackground={true}>\n        {#snippet contentSnippet()}\n            <div class=\"loader-card\">\n                <div class=\"spinner\" aria-hidden=\"true\"></div>\n                <h2>Initialisiere Index Admin…</h2>\n                <p>Wir laden die Projektdaten und stellen die Verbindung zum Index Server her.</p>\n            </div>\n        {/snippet}\n    </Card>\n</CrinkledSection>\n\n<style lang=\"less\">\n  @import \"@kontextwerk/web-sdk/theme/tokens.less\";\n\n  .loader-card {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 1rem;\n    padding: 2rem 2.4rem;\n    text-align: center;\n    color: var(--text-invers-100);\n\n    h2 {\n      margin: 0;\n      font-size: 1.4rem;\n      color: var(--text-invers-100);\n    }\n\n    p {\n      margin: 0;\n      color: var(--text-invers-100);\n    }\n  }\n\n  .spinner {\n    width: 52px;\n    height: 52px;\n    border-radius: 999px;\n    border: 4px solid rgba(173, 81, 76, 0.2);\n    border-top-color: var(--primary-200);\n    animation: spin 1s linear infinite;\n  }\n\n  @keyframes spin {\n    0% {\n      transform: rotate(0deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n</style>\n","import DefaultHomePage from \"@kontextwerk/web-sdk/ui/runtime/DefaultHomePage.svelte\"\nimport AccessDeniedPage from \"@kontextwerk/web-sdk/ui/runtime/AccessDeniedPage.svelte\"\nimport {\n  OrgaViewFrame as OrganizationViewFrame,\n  workspaceConfig as organizationWorkspace,\n} from \"../OrgaView\"\nimport ChunkViewFrame from \"../OrgaView/subviews/Chunk\"\nimport DomainViewFrame from \"../OrgaView/subviews/Domain\"\nimport AnswerLibraryFrame from \"../OrgaView/subviews/AnswerLibrary\"\nimport SharePointViewFrame from \"../OrgaView/subviews/SharePoint\"\nimport FileCollectionViewFrame from \"../OrgaView/subviews/FileCollection\"\nimport GlobalFileCollectionSubview from \"../AdminView/subviews/FileCollection\"\nimport { AdminViewFrame, workspaceConfig as adminWorkspace } from \"../AdminView\"\nimport LoadingScreen from \"./_modules/loading-screen\"\nimport type { RootRenderState } from \"../_shared/_logic/root-render-contract\"\nimport { subviewConfig as chunkSubview } from \"../OrgaView/subviews/Chunk/config\"\nimport { subviewConfig as domainSubview } from \"../OrgaView/subviews/Domain/config\"\nimport { subviewConfig as answerSubview } from \"../OrgaView/subviews/AnswerLibrary/config\"\nimport { subviewConfig as sharePointSubview } from \"../OrgaView/subviews/SharePoint/config\"\nimport { subviewConfig as fileSubview } from \"../OrgaView/subviews/FileCollection/config\"\nimport { subviewConfig as globalFileSubview } from \"../AdminView/subviews/FileCollection/config\"\n\ntype ResolveRootRenderStateArgs = {\n  userId?: string | null\n  bootstrapError: string | null\n  controlAdminHint: string\n  controlAdminOrigin: string\n  initializing: boolean\n  isDefaultLandingRoute: boolean\n  isAdminRoute: boolean\n  hasActiveOrganizationContext: boolean\n  organizationSlugFromRoute: string | null\n  isAdminDataRoute: boolean\n  isAdminGlobalFileCollectionPath: boolean\n  routeAdminFileCollectionId: string | null\n  routeViewKey: string\n  isChunkViewPath: boolean\n  isDomainViewPath: boolean\n  routeDomainId: string | null\n  isAnswerLibraryPath: boolean\n  activeOrganizationId: string | null\n  isSharePointSourcePath: boolean\n  routeSharePointSourceId: string | null\n  isFileCollectionPath: boolean\n  routeFileCollectionId: string | null\n  projectPath: string\n  availableOrganizations: any[]\n  availableProjects: any[]\n  homeTabs: any[]\n  contactEndpoint: string | null\n  onDefaultHomeNavigate: () => void\n}\n\nconst accessDeniedState = (key: string, props: Record<string, unknown>): RootRenderState => ({\n  key,\n  component: AccessDeniedPage,\n  props,\n  shell: {\n    showHeader: true,\n    showFooter: true,\n    showSidebar: true,\n    showNotifications: true,\n    showApprovals: true,\n  },\n})\n\nconst resolveContentState = (args: ResolveRootRenderStateArgs): RootRenderState => {\n  const activeOrgId = args.activeOrganizationId ?? \"no-org\"\n  const answerGroupId = args.projectPath.split(\"/\").filter(Boolean).at(-1) ?? \"root\"\n\n  if (args.bootstrapError) {\n    return accessDeniedState(\"bootstrap-error\", {\n      title: \"Index Admin gesperrt\",\n      statusLabel: \"Zugriff verweigert\",\n      message: args.bootstrapError,\n      hint: args.controlAdminHint,\n      brightBackground: false,\n      controlAdminOrigin: args.controlAdminOrigin,\n      suppressRedirectWhenCodeInUrl: false,\n      controlAdminRedirectDelayMs: 0,\n      contactEndpoint: args.contactEndpoint,\n    })\n  }\n\n  if (args.initializing) {\n    return {\n      key: \"loading\",\n      component: LoadingScreen,\n      props: {},\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isDefaultLandingRoute) {\n    return {\n      key: \"default-home\",\n      component: DefaultHomePage,\n      props: {\n        title: \"Index Admin\",\n        subtitle: \"Knowledge Control\",\n        description:\n          \"Der Index Admin ermöglicht die Verwaltung der Datenbasis, die der Bot für Antworten nutzt. \",\n        ctaLabel: \"Zur Organisation\",\n        highlightLabel: \"Kontextwerk\",\n        customTabs: args.homeTabs,\n        onNavigate: args.onDefaultHomeNavigate,\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isAdminRoute) {\n    if (args.isAdminGlobalFileCollectionPath && args.routeAdminFileCollectionId) {\n      return {\n        key: `admin-file-collection:global:${args.routeAdminFileCollectionId}`,\n        component: GlobalFileCollectionSubview,\n        props: {\n          collectionId: args.routeAdminFileCollectionId,\n          mode: \"global\",\n        },\n        shell: {\n          showHeader: true,\n          showFooter: true,\n          showSidebar: true,\n          showNotifications: true,\n          showApprovals: true,\n        },\n      }\n    }\n\n    return {\n      key: args.isAdminDataRoute ? \"admin:data\" : \"admin:organizations\",\n      component: AdminViewFrame,\n      props: {\n        section: args.isAdminDataRoute ? \"data\" : \"organizations\",\n        organizations: args.availableOrganizations,\n        projects: args.availableProjects,\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (!args.hasActiveOrganizationContext) {\n    return accessDeniedState(\"missing-organization\", {\n      title: \"Keine Organisation gewählt\",\n      statusLabel: \"Organisation nicht verfügbar\",\n      message: args.organizationSlugFromRoute\n        ? \"Diese Organisation konnte im Index Admin nicht aufgelöst werden.\"\n        : \"Es konnte kein Organisationskontext aufgebaut werden.\",\n      hint: args.organizationSlugFromRoute\n        ? \"Bitte prüfe den Organisations-Link oder deine Berechtigungen im Control Admin.\"\n        : \"Öffne den Index Admin über einen Organisations-Link aus dem Control Admin.\",\n      contactEndpoint: args.contactEndpoint,\n      controlAdminOrigin: args.controlAdminOrigin,\n    })\n  }\n\n  if (args.isChunkViewPath) {\n    return {\n      key: `chunk:${activeOrgId}:${args.projectPath}`,\n      component: ChunkViewFrame,\n      props: {},\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isDomainViewPath) {\n    return {\n      key: `domain:${activeOrgId}:${args.routeDomainId ?? \"no-domain\"}`,\n      component: DomainViewFrame,\n      props: {\n        domainId: args.routeDomainId,\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isAnswerLibraryPath) {\n    return {\n      key: `answers:${activeOrgId}:${answerGroupId}`,\n      component: AnswerLibraryFrame,\n      props: {\n        organizationId: args.activeOrganizationId,\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isSharePointSourcePath) {\n    return {\n      key: `sharepoint:${activeOrgId}:${args.routeSharePointSourceId ?? \"no-source\"}`,\n      component: SharePointViewFrame,\n      props: {\n        sourceId: args.routeSharePointSourceId,\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  if (args.isFileCollectionPath && args.routeFileCollectionId) {\n    return {\n      key: `file-collection:project:${activeOrgId}:${args.routeFileCollectionId}`,\n      component: FileCollectionViewFrame,\n      props: {\n        collectionId: args.routeFileCollectionId,\n        mode: \"project\",\n      },\n      shell: {\n        showHeader: true,\n        showFooter: true,\n        showSidebar: true,\n        showNotifications: true,\n        showApprovals: true,\n      },\n    }\n  }\n\n  return {\n    key: `organization:${activeOrgId}`,\n    component: OrganizationViewFrame,\n    props: {\n      projectPath: args.projectPath,\n    },\n    shell: {\n      showHeader: true,\n      showFooter: true,\n      showSidebar: true,\n      showNotifications: true,\n      showApprovals: true,\n    },\n  }\n}\n\nexport const resolveRootRenderState = (args: ResolveRootRenderStateArgs): RootRenderState => {\n  const state = resolveContentState(args)\n  const subview =\n    state.component === ChunkViewFrame\n      ? chunkSubview\n      : state.component === DomainViewFrame\n        ? domainSubview\n        : state.component === AnswerLibraryFrame\n          ? answerSubview\n          : state.component === SharePointViewFrame\n            ? sharePointSubview\n            : state.component === FileCollectionViewFrame\n              ? fileSubview\n              : state.component === GlobalFileCollectionSubview\n                ? globalFileSubview\n                : undefined\n  const isAdmin =\n    state.component === AdminViewFrame || state.component === GlobalFileCollectionSubview\n\n  if (!subview && !isAdmin && state.component !== OrganizationViewFrame) return state\n\n  return {\n    ...state,\n    workspace: {\n      key: `index:${args.userId ?? \"anonymous\"}:${isAdmin ? adminWorkspace.id : `${organizationWorkspace.id}:${args.activeOrganizationId}`}`,\n      component: isAdmin ? AdminViewFrame : OrganizationViewFrame,\n      props: isAdmin\n        ? {\n            section: args.isAdminDataRoute || subview ? \"data\" : \"organizations\",\n            organizations: args.availableOrganizations,\n            projects: args.availableProjects,\n          }\n        : { projectPath: subview ? `/${subview.parentPageId}` : args.projectPath },\n      subview: subview\n        ? { ...subview, parentPageId: isAdmin ? \"admin\" : subview.parentPageId }\n        : undefined,\n    },\n  }\n}\n","import { parseContextSession } from \"@kontextwerk/control-web-client\"\nimport { CORE_CAPABILITY_DEFINITIONS } from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\nimport {\n    buildPermissionState as projectCapabilities,\n    NO_PERMISSIONS,\n    type PermissionState,\n    type PermissionLevel,\n} from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\n\nexport type { PermissionState, PermissionLevel }\n\n/** One confirmed V2 context, without interpreting identity roles or legacy string grants. */\nexport const buildPermissionState = (session: unknown): PermissionState => {\n  try {\n    return projectCapabilities(parseContextSession(session), CORE_CAPABILITY_DEFINITIONS)\n  } catch {\n    return NO_PERMISSIONS\n  }\n}\n\nexport const EMPTY_PERMISSION_STATE = NO_PERMISSIONS\n","import { derived } from \"svelte/store\"\nimport { controlContext } from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\nimport { EMPTY_PERMISSION_STATE } from \"../../_shared/_logic/permissions\"\n\nexport const controlAdminUser = derived(controlContext, (context) => context?.actor ?? null)\nexport const controlAdminPermissions = derived(\n  controlContext,\n  (context) => context?.permissions ?? EMPTY_PERMISSION_STATE,\n)\n","<script lang=\"ts\">\n  import { derived, get } from \"svelte/store\"\n  import { onMount } from \"svelte\"\n  import { startBootstrap, type BootstrapState } from \"@kontextwerk/web-sdk/core/runtime/bootstrap\"\n  import Header from \"./_shared/_modules/header\"\n  import AppFooter from \"@kontextwerk/web-sdk/ui/layout/AppFooter.svelte\"\n  import {\n    availableOrganizations,\n    organizationsLoading,\n    organizationsError,\n    availableProjects,\n    projectsLoading,\n    projectsError,\n    applySelectedOrganization,\n  } from \"../_shared/_logic/organizations\"\n  import { activeOrganization } from \"../_shared/_logic/organization\"\n  import {\n    fetchAdminOrganization,\n    fetchAdminProjectByIdentifier,\n    initControlAdmin,\n  } from \"../_shared/_logic/control-api\"\n  import { location } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n  import { contactEndpoint, THEME, CONTROL_ADMIN_ORIGIN } from \"../_shared/_logic/runtime-config\"\n  import { initializeInternalAssistForOrg } from \"@kontextwerk/control-web-frame/shared/logic/internal-assist\"\n  import { ControlClientError } from \"@kontextwerk/control-web-client\"\n  import {\n    branding,\n    loadBranding,\n    loadOrganizationBranding,\n    type BrandingLogos,\n  } from \"./_shared/_logic/branding\"\n  import { spaNavigate, buildProjectsRootPath } from \"../_shared/_logic/organization-navigation\"\n  import DataBasisPanel from \"../_shared/_modules/data-basis-panel\"\n  import { parseIndexRoute } from \"./_logic/routing\"\n  import {\n    buildStatusCenterUrl,\n    startStatusCenterBannerPolling,\n  } from \"@kontextwerk/web-sdk/core/runtime/statusCenter\"\n  import RootShell from \"./_shared/_modules/root-shell\"\n  import WorkspaceContent from \"./_modules/workspace-content\"\n  import RootSupportMounts from \"./_modules/root-support-mounts\"\n  import { resolveRootRenderState } from \"./render-state\"\n  import { controlAdminUser } from \"./_logic/controlAdmin\"\n  import { allowsPlatformOperation } from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\n  import { captureControlContext } from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\n  import { controlAdminPermissions } from \"./_logic/controlAdmin\"\n  import { setIndexAdminAuthContext } from \"../_shared/_logic/auth-context\"\n\n  let bootstrapError = $state<string | null>(null)\n  const ownerCapture = captureControlContext()\n  let mounted = true\n  const isCurrentOwner = () => mounted && ownerCapture?.isCurrent() === true\n  let initializing = $state(true)\n  let globalBrandingLogos = $state<BrandingLogos | null>(get(branding))\n  let organizationBrandingLogos = $state<BrandingLogos | null>(null)\n  let organizationBrandingPending = $state(false)\n  let lastBootstrapToken = $state<string | null>(null)\n  let activeBrandingOrganizationId = $state<string | null>(null)\n  let brandingLoadToken = 0\n  let bootstrapHandle: { stop: () => void } | null = null\n  setIndexAdminAuthContext(\n    derived([controlAdminUser, controlAdminPermissions], ([user, permissions]) => {\n      return {\n        user,\n        permissions,\n      }\n    }),\n  )\n  const controlAdminHint = \"Bitte öffne den Index Admin über das Kontextwerk Control Admin Portal.\"\n  const sentryOptions = {\n    projectId: 4,\n    dsn: \"https://63eebb806f1c646890053d36f5ea6c7c@sentry-console.kontextwerk.agency/4\",\n  }\n  const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i\n  const statusCenterLink = $derived(buildStatusCenterUrl({}))\n\n  const routeContext = $derived(parseIndexRoute($location.path))\n  const organizationSlugFromRoute = $derived(routeContext.organizationSlug ?? null)\n  const projectRoutePath = $derived(\n    routeContext.section === \"project\" ? routeContext.projectPath : \"/\",\n  )\n  const normalizedLocationPath = $derived(($location.path || \"\").replace(/\\/+$/, \"\") || \"/\")\n  const isAdminOrganizationsRoute = $derived(\n    normalizedLocationPath === \"/admin\" ||\n      normalizedLocationPath === \"/admin/organizations\" ||\n      normalizedLocationPath === \"/admin/maintenance\",\n  )\n  const isAdminDataRoute = $derived(normalizedLocationPath === \"/admin/data\")\n  const isAdminGlobalFileCollectionPath = $derived(\n    normalizedLocationPath.startsWith(\"/admin/data/files/collections/\"),\n  )\n  const routeViewKey = $derived(`${$activeOrganization?.id ?? \"no-org\"}:${normalizedLocationPath}`)\n  const isAdminRoute = $derived(\n    isAdminOrganizationsRoute || isAdminDataRoute || isAdminGlobalFileCollectionPath,\n  )\n  const isDefaultLandingRoute = $derived(\n    routeContext.section === \"root\" && routeContext.rawPath === \"/\",\n  )\n  const hasActiveOrganizationContext = $derived.by(() => {\n    if (routeContext.section !== \"project\" || !$activeOrganization) return false\n\n    if (!organizationSlugFromRoute) return true\n\n    const candidates = [\n      ($activeOrganization.slug ?? \"\").trim(),\n      ($activeOrganization.id ?? \"\").trim(),\n    ].filter(Boolean)\n\n    return candidates.includes(organizationSlugFromRoute)\n  })\n\n  const canOpenPlatform = $derived(allowsPlatformOperation($controlAdminPermissions))\n  const homeTabs = $derived([])\n\n  let redirectingToControlAdmin = $state(false)\n  const redirectToControlAdminLogin = () => {\n    if (typeof window === \"undefined\" || redirectingToControlAdmin) return\n\n    redirectingToControlAdmin = true\n    try {\n      const url = new URL(\"/login\", CONTROL_ADMIN_ORIGIN)\n      window.location.assign(url.toString())\n    } catch (err) {\n      console.warn(\"redirectToControlAdminLogin_failed\", err)\n      redirectingToControlAdmin = false\n    }\n  }\n\n  const normalizedProjectPath = $derived(projectRoutePath.replace(/\\/+$/, \"\") || \"/\")\n  const canonicalProjectPath = $derived.by(() => {\n    const segments = normalizedProjectPath.split(\"/\").filter(Boolean)\n\n    if (!segments.length) return \"/home\"\n\n    if (segments[0] === \"realization\" || segments[0] === \"realizations\") {\n      const stripped = segments.slice(2)\n\n      if (!stripped.length) return \"/home\"\n\n      return `/${stripped.join(\"/\")}`\n    }\n\n    return `/${segments.join(\"/\")}`\n  })\n  const pathSegments = $derived(normalizedProjectPath.split(\"/\").filter(Boolean))\n\n  const isChunkViewPath = $derived.by(() => {\n    if (!pathSegments.length) return false\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return pathSegments[2] === \"chunks\"\n    }\n\n    return pathSegments[0] === \"chunks\"\n  })\n\n  const isDomainViewPath = $derived.by(() => {\n    if (!pathSegments.length) return false\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return pathSegments[2] === \"scraping\" && pathSegments[3] === \"domains\"\n    }\n\n    return pathSegments[0] === \"scraping\" && pathSegments[1] === \"domains\"\n  })\n\n  const isAnswerLibraryPath = $derived.by(() => {\n    if (!pathSegments.length) return false\n\n    const answersIndex = pathSegments.indexOf(\"answers\")\n\n    if (answersIndex === -1) return false\n\n    return Boolean(pathSegments[answersIndex + 1])\n  })\n\n  const isSharePointSourcePath = $derived.by(() => {\n    if (!pathSegments.length) return false\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return (\n        pathSegments[2] === \"sharepoint\" &&\n        pathSegments[3] === \"sources\" &&\n        Boolean(pathSegments[4])\n      )\n    }\n\n    return (\n      pathSegments[0] === \"sharepoint\" && pathSegments[1] === \"sources\" && Boolean(pathSegments[2])\n    )\n  })\n\n  const isFileCollectionPath = $derived.by(() => {\n    if (!pathSegments.length) return false\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return (\n        pathSegments[2] === \"files\" && pathSegments[3] === \"collections\" && Boolean(pathSegments[4])\n      )\n    }\n\n    return (\n      pathSegments[0] === \"files\" && pathSegments[1] === \"collections\" && Boolean(pathSegments[2])\n    )\n  })\n\n  const routeDomainId = $derived.by(() => {\n    if (!isDomainViewPath) return null\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return pathSegments[4] ?? null\n    }\n\n    return pathSegments[2] ?? null\n  })\n\n  const routeSharePointSourceId = $derived.by(() => {\n    if (!isSharePointSourcePath) return null\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return pathSegments[4] ?? null\n    }\n\n    return pathSegments[2] ?? null\n  })\n\n  const routeFileCollectionId = $derived.by(() => {\n    if (!isFileCollectionPath) return null\n\n    if ([\"realizations\", \"realization\"].includes(pathSegments[0])) {\n      return pathSegments[4] ?? null\n    }\n\n    return pathSegments[2] ?? null\n  })\n\n  const routeAdminFileCollectionId = $derived.by(() => {\n    if (!isAdminGlobalFileCollectionPath) return null\n\n    const segments = normalizedLocationPath.split(\"/\").filter(Boolean)\n\n    return segments[4] ?? null\n  })\n\n  const assistOrganizationId = $derived.by(() => {\n    if (hasActiveOrganizationContext) {\n      const activeOrgId = ($activeOrganization?.id ?? \"\").trim()\n\n      if (activeOrgId) return activeOrgId\n    }\n\n    return null\n  })\n  const internalAssistProjectName = $derived.by(() => {\n    if (typeof window === \"undefined\") return \"plattform-control-assist\"\n\n    const host = window.location.hostname.toLowerCase()\n\n    if (host.includes(\"clari-call\") || host.includes(\"claricall\")) return \"clari-call-assist\"\n\n    if (host.includes(\"kehrblatt\")) return \"kehrblatt-control-assist\"\n\n    return \"plattform-control-assist\"\n  })\n  const isE2EMode = (() => {\n    const raw = process.env.KW_E2E_MODE\n\n    return [\"1\", \"true\", \"yes\", \"on\"].includes(\n      String(raw ?? \"\")\n        .trim()\n        .toLowerCase(),\n    )\n  })()\n\n  const pickPreferredOrganization = (\n    organizations: Array<{ id?: string | null; slug?: string | null }>,\n  ): any | null => {\n    if (!organizationSlugFromRoute) return organizations[0] ?? null\n\n    return (\n      organizations.find((organization) => {\n        const candidates = [\n          String(organization?.slug ?? \"\").trim(),\n          String(organization?.id ?? \"\").trim(),\n        ].filter(Boolean)\n\n        return candidates.includes(organizationSlugFromRoute)\n      }) ?? null\n    )\n  }\n\n  const ensureCanonicalProjectRoute = () => {\n    if (initializing || isDefaultLandingRoute || isAdminRoute) return\n\n    if (routeContext.section !== \"project\") return\n\n    const active = $activeOrganization\n\n    if (!active) return\n\n    if (organizationSlugFromRoute) {\n      const activeOrgCandidates = [(active.slug ?? \"\").trim(), (active.id ?? \"\").trim()].filter(\n        Boolean,\n      )\n\n      if (!activeOrgCandidates.includes(organizationSlugFromRoute)) return\n    }\n\n    const orgSlug = (active.slug ?? active.id ?? \"\").trim()\n\n    if (!orgSlug) return\n\n    const targetPath = `/organizations/${encodeURIComponent(orgSlug)}${canonicalProjectPath}`\n\n    if (targetPath === normalizedLocationPath) return\n\n    spaNavigate(targetPath, { replace: true, noSearchParam: true })\n  }\n\n  const upsertOrganization = <T extends { id?: string | null }>(\n    organizations: T[],\n    organization: T | null,\n  ): T[] => {\n    if (!organization?.id) return organizations\n\n    const next = organizations.filter((candidate) => candidate.id !== organization.id)\n    next.unshift(organization)\n\n    return next\n  }\n\n  const upsertProject = <T extends { id?: string | null }>(\n    projects: T[],\n    project: T | null,\n  ): T[] => {\n    if (!project?.id) return projects\n\n    const next = projects.filter((candidate) => candidate.id !== project.id)\n    next.unshift(project)\n\n    return next\n  }\n\n  const loadRouteOrganizationDirectly = async () => {\n    const identifier = routeContext.organizationSlug ?? null\n\n    if (!identifier) return null\n\n    try {\n      return await fetchAdminOrganization(identifier)\n    } catch (err) {\n      console.warn(\"index_admin:route_organization_direct_load_failed\", err)\n\n      return null\n    }\n  }\n\n  const loadRouteProjectDirectly = async () => {\n    if (routeContext.section !== \"project\" || !routeContext.projectId) return null\n\n    try {\n      return await fetchAdminProjectByIdentifier(routeContext.projectId, {\n        organizationIdentifier: routeContext.organizationSlug ?? null,\n      })\n    } catch (err) {\n      console.warn(\"index_admin:route_project_direct_load_failed\", err)\n\n      return null\n    }\n  }\n\n  const runBootstrap = async (state: BootstrapState) => {\n    if (!isCurrentOwner()) return\n\n    const bootstrapKey = state.projectParam ?? \"\"\n\n    if (bootstrapKey === lastBootstrapToken && !initializing) return\n\n    lastBootstrapToken = bootstrapKey\n\n    organizationsLoading.set(true)\n    organizationsError.set(null)\n    projectsLoading.set(true)\n    projectsError.set(null)\n    try {\n      const directOrganizationPromise = loadRouteOrganizationDirectly()\n      const directProjectPromise = loadRouteProjectDirectly()\n      void directOrganizationPromise.then((organization) => {\n        if (!isCurrentOwner() || !organization || !initializing) return\n\n        availableOrganizations.set(upsertOrganization(get(availableOrganizations), organization))\n        applySelectedOrganization(organization)\n      })\n      void directProjectPromise.then((project) => {\n        if (!isCurrentOwner() || !project || !initializing) return\n\n        availableProjects.set(upsertProject(get(availableProjects), project))\n      })\n\n      const controlState = await initControlAdmin()\n      const [directOrganization, directProject] = await Promise.all([\n        directOrganizationPromise,\n        directProjectPromise,\n      ])\n\n      if (!isCurrentOwner()) return\n\n      const organizations = upsertOrganization(controlState.organizations ?? [], directOrganization)\n      const projects = upsertProject(controlState.projects ?? [], directProject)\n      availableOrganizations.set(organizations)\n      availableProjects.set(projects)\n      applySelectedOrganization(pickPreferredOrganization(organizations) ?? directOrganization)\n      bootstrapError = null\n    } catch (err) {\n      if (!isCurrentOwner()) return\n\n      const isUnauthorized = err instanceof ControlClientError && err.status === 401\n\n      if (isUnauthorized) {\n        redirectToControlAdminLogin()\n      }\n\n      bootstrapError = err instanceof Error ? err.message : \"Initialisierung fehlgeschlagen.\"\n      organizationsError.set(bootstrapError)\n      projectsError.set(bootstrapError)\n      availableOrganizations.set([])\n      availableProjects.set([])\n      applySelectedOrganization(null)\n    } finally {\n      if (isCurrentOwner()) {\n        organizationsLoading.set(false)\n        projectsLoading.set(false)\n        initializing = false\n        handleRouteChange()\n      }\n    }\n  }\n\n  const syncRouteSelection = () => {\n    if (initializing) return\n\n    const organizations = $availableOrganizations ?? []\n    const match = pickPreferredOrganization(organizations)\n\n    if (match?.id !== $activeOrganization?.id) {\n      applySelectedOrganization(match)\n    }\n  }\n\n  const syncInternalAssist = () => {\n    if (typeof window === \"undefined\" || isE2EMode) return\n\n    void initializeInternalAssistForOrg(assistOrganizationId, {\n      projectName: internalAssistProjectName,\n    })\n  }\n\n  const resolveCurrentBrandingOrganizationId = () => {\n    if (isAdminRoute || !hasActiveOrganizationContext) return null\n\n    const activeOrgId = ($activeOrganization?.id ?? \"\").trim()\n\n    return activeOrgId || null\n  }\n\n  const syncRootBranding = () => {\n    const canUseOrganizationBranding = routeContext.section === \"project\" && !isAdminRoute\n    const organizationId = resolveCurrentBrandingOrganizationId()\n\n    if (!canUseOrganizationBranding) {\n      brandingLoadToken += 1\n      activeBrandingOrganizationId = null\n      organizationBrandingLogos = null\n      organizationBrandingPending = false\n\n      return\n    }\n\n    if (!organizationId) {\n      brandingLoadToken += 1\n      activeBrandingOrganizationId = null\n      organizationBrandingLogos = null\n      organizationBrandingPending = true\n\n      return\n    }\n\n    if (organizationId === activeBrandingOrganizationId) return\n\n    activeBrandingOrganizationId = organizationId\n    organizationBrandingLogos = null\n    organizationBrandingPending = true\n    const token = ++brandingLoadToken\n    void loadOrganizationBranding(organizationId)\n      .then((logos) => {\n        if (token !== brandingLoadToken || activeBrandingOrganizationId !== organizationId) return\n\n        organizationBrandingLogos = logos\n      })\n      .catch((err) => {\n        if (token !== brandingLoadToken || activeBrandingOrganizationId !== organizationId) return\n\n        console.error(\"index_admin_organization_branding_load_failed\", err)\n        organizationBrandingLogos = null\n      })\n      .finally(() => {\n        if (token !== brandingLoadToken || activeBrandingOrganizationId !== organizationId) return\n\n        organizationBrandingPending = false\n      })\n  }\n\n  const handleRouteChange = () => {\n    if (!isCurrentOwner()) return\n\n    syncRouteSelection()\n    ensureCanonicalProjectRoute()\n    syncInternalAssist()\n    syncRootBranding()\n  }\n\n  const renderState = $derived.by(() =>\n    resolveRootRenderState({\n      userId: $controlAdminUser?.id,\n      bootstrapError,\n      controlAdminHint,\n      controlAdminOrigin: CONTROL_ADMIN_ORIGIN,\n      initializing,\n      isDefaultLandingRoute,\n      isAdminRoute,\n      hasActiveOrganizationContext,\n      organizationSlugFromRoute,\n      isAdminDataRoute,\n      isAdminGlobalFileCollectionPath,\n      routeAdminFileCollectionId,\n      routeViewKey,\n      isChunkViewPath,\n      isDomainViewPath,\n      routeDomainId,\n      isAnswerLibraryPath,\n      activeOrganizationId: $activeOrganization?.id ?? null,\n      isSharePointSourcePath,\n      routeSharePointSourceId,\n      isFileCollectionPath,\n      routeFileCollectionId,\n      projectPath: routeContext.projectPath ?? \"/\",\n      availableOrganizations: $availableOrganizations,\n      availableProjects: $availableProjects,\n      homeTabs,\n      contactEndpoint,\n      onDefaultHomeNavigate: () =>\n        spaNavigate(canOpenPlatform ? \"/admin/organizations\" : buildProjectsRootPath()),\n    }),\n  )\n\n  onMount(() => {\n    bootstrapHandle = startBootstrap({\n      onBootstrap: (state) => {\n        void runBootstrap(state)\n      },\n    })\n    const unsubscribeLocation = location.subscribe(handleRouteChange)\n    const unsubscribeBranding = branding.subscribe((value) => {\n      globalBrandingLogos = value\n    })\n    const unsubscribeOrganization = activeOrganization.subscribe(() => {\n      handleRouteChange()\n    })\n\n    void loadBranding()\n    const stopBannerPolling = startStatusCenterBannerPolling({})\n\n    handleRouteChange()\n\n    return () => {\n      mounted = false\n      brandingLoadToken += 1\n      bootstrapHandle?.stop()\n      unsubscribeLocation()\n      unsubscribeBranding()\n      unsubscribeOrganization()\n      stopBannerPolling()\n    }\n  })\n\n  const brandingLogos = $derived(\n    organizationBrandingPending ? null : (organizationBrandingLogos ?? globalBrandingLogos),\n  )\n</script>\n\n{#snippet globalDataBasisTab()}\n  <DataBasisPanel scope=\"global\" projects={$availableProjects} canManageFileUpload={false} />\n{/snippet}\n\n<RootSupportMounts\n  theme={THEME}\n  {isE2EMode}\n  showSidebar={renderState.shell.showSidebar}\n  showApprovals={renderState.shell.showApprovals}\n  showNotifications={renderState.shell.showNotifications}\n  {assistOrganizationId}\n  {sentryOptions}\n  controlUser={$controlAdminUser}\n  route={{\n    path: $location.path,\n    search: $location.search,\n    viewId: routeContext.section ?? \"unknown\",\n    orgSlug: routeContext.organizationSlug,\n    projectSlug: null,\n    realizationSlug: null,\n  }}\n/>\n{#if renderState.workspace}\n  {#key renderState.workspace.key}\n    <WorkspaceContent\n      {renderState}\n      branding={brandingLogos}\n      hideLogo={organizationBrandingPending}\n      {statusCenterLink}\n    />\n  {/key}\n{:else}\n  {#if renderState.shell.showHeader}\n    <Header branding={brandingLogos} hideLogo={organizationBrandingPending} />\n  {/if}\n  <RootShell {renderState} />\n  {#if renderState.shell.showFooter}\n    {#if organizationBrandingPending}\n      <div class=\"footer-placeholder\"></div>\n      <div class=\"pending-footer-branding\" aria-hidden=\"true\">\n        <div class=\"line\">\n          <div class=\"line-1\"></div>\n          <span class=\"brand-logo-placeholder\"></span>\n          <div class=\"line-2\"></div>\n        </div>\n      </div>\n    {:else}\n      <AppFooter\n        branding={brandingLogos}\n        extraLegalLinks={[{ href: statusCenterLink, label: \"Systemstatus\" }]}\n      />\n    {/if}\n  {/if}\n{/if}\n\n<style lang=\"less\">\n  .footer-placeholder {\n    width: 100%;\n    height: 3rem;\n    margin-top: -3rem;\n    background-color: var(--neutral-white);\n  }\n\n  .pending-footer-branding {\n    display: flex;\n    width: 100%;\n    justify-content: center;\n    background: var(--neutral-white);\n\n    .line {\n      display: flex;\n      width: 100%;\n      max-width: var(--small-max-width);\n      align-items: center;\n      gap: 1.5rem;\n      padding: 0 var(--horizontal-default-margin);\n      overflow: hidden;\n    }\n\n    .line-1,\n    .line-2 {\n      flex: 1;\n      height: 0;\n      border-top: 0.0625rem solid var(--text-invers-100);\n    }\n\n    .brand-logo-placeholder {\n      flex: 0 0 60px;\n      width: 60px;\n      height: 60px;\n    }\n  }\n</style>\n","<script lang=\"ts\">\n  import ProtectedContextRoot from \"@kontextwerk/control-web-frame/shared/modules/protected-context-root\"\n  import { CORE_CAPABILITY_DEFINITIONS } from \"@kontextwerk/control-web-frame/shared/logic/authorization\"\n  import { indexContextClient } from \"../_shared/_logic/control-api\"\n  import RootHost from \"./RootHost.svelte\"\n  import { onDestroy } from \"svelte\"\n  import { controlContext } from \"@kontextwerk/control-web-frame/shared/logic/authentication\"\n  import {\n    availableOrganizations,\n    availableProjects,\n    organizationsLoading,\n    projectsLoading,\n    organizationsError,\n    projectsError,\n    applySelectedOrganization,\n  } from \"../_shared/_logic/organizations\"\n  import { clearOptimisticSyncState } from \"../_shared/_logic/optimistic-sync-state\"\n\n  const stop = controlContext.subscribe(() => {\n    availableOrganizations.set([])\n    availableProjects.set([])\n    organizationsLoading.set(false)\n    projectsLoading.set(false)\n    organizationsError.set(null)\n    projectsError.set(null)\n    applySelectedOrganization(null)\n    clearOptimisticSyncState()\n  })\n  onDestroy(stop)\n</script>\n\n<ProtectedContextRoot client={indexContextClient} definitions={CORE_CAPABILITY_DEFINITIONS}>\n  {#snippet shell(gate)}<main class=\"access-gate\">{@render gate()}</main>{/snippet}\n  {#snippet workspace()}<RootHost />{/snippet}\n</ProtectedContextRoot>\n\n<style>\n  .access-gate {\n    min-height: 60vh;\n    padding: 2rem 1rem;\n    display: grid;\n    justify-items: center;\n    align-content: center;\n  }\n</style>\n","<script lang=\"ts\">\n  import RootHost from \"./routes/Root\"\n</script>\n\n<RootHost />\n","type BrowserNavigation = Pick<Window, \"location\" | \"history\">\n\n/**\n * Normalize a Stripe Checkout return before the application's router is initialized.\n * Importing the frame never changes browser history; repeated initialization keeps the success route.\n * Returns whether this call replaced the current URL.\n */\nexport function initializeControlFrameBrowser(browser?: BrowserNavigation): boolean {\n  const navigation = browser ?? (typeof window !== \"undefined\" ? window : null)\n\n  if (!navigation) return false\n\n  const search = navigation.location.search\n\n  if (!search) return false\n\n  const parameters = new URLSearchParams(search.startsWith(\"?\") ? search.slice(1) : search)\n  const sessionId =\n    parameters.get(\"session_id\") ||\n    parameters.get(\"session\") ||\n    parameters.get(\"checkout_session_id\")\n\n  // Other products also use session_id; only a Checkout Session may select this route.\n  if (!sessionId?.startsWith(\"cs_\")) return false\n\n  const pathname = navigation.location.pathname.replace(/\\/+$/, \"\") || \"/\"\n\n  if (pathname.startsWith(\"/onboarding/success\")) return false\n\n  navigation.history.replaceState(\n    null,\n    \"\",\n    `/onboarding/success?session_id=${encodeURIComponent(sessionId)}`,\n  )\n\n  return true\n}\n","import App from \"./App.svelte\"\n\nimport { initializeControlFrameBrowser } from \"@kontextwerk/control-web-frame/shared/logic/browser-initialization\"\nimport { hydrate } from \"svelte\"\nimport { initSpaRouter } from \"@kontextwerk/web-sdk/core/routing/navigation\"\n\ninitializeControlFrameBrowser()\n\ninitSpaRouter({ stickyParams: [\"userPreview\"] })\n\nlet appContainer = document?.getElementById(\"appContainer\")\nconst app = hydrate(App, { target: appContainer })\n\nexport default app\n",null,null,null],"file":"index.mjs"}